[
  {
    "path": ".circleci/config.yml",
    "content": "version: 2\n\n# global environment variables\n# '& ' syntax is a YAML thing for creating referenceable documents\nenv-shared: &env-shared\n  environment:\n    GOFLAGS: \"-mod=vendor\"\n\n# build steps shared across different jobs\nbuild-shared: &build-shared\n  steps:\n    - checkout\n    - run:\n        name: Run gofmt -s\n        command: |\n          if [ $(find . ! -path \"./vendor/*\" -name \"*.go\" -exec gofmt -s -d {} \\;|wc -l) -gt 0 ]; then\n           find . ! -path \"./vendor/*\" -name \"*.go\" -exec gofmt -s -d {} \\;\n           exit 1;\n          fi\n    - restore_cache:\n        keys:\n          - pkg-cache-{{ checksum \"go.sum\" }}-v5\n    - run:\n        name: Run tests\n        command: |\n          go test -v ./...\n    - run:\n        name: Get gox\n        # -mod=vendor doesn't work with go get while in source tree with go.mod in it\n        working_directory: \"/tmp\"\n        command: |\n          go get github.com/mitchellh/gox\n    - run:\n        name: Compile project on every platform\n        command: |\n          gox -parallel 10 -os \"linux freebsd\" -osarch \"darwin/i386 darwin/amd64 windows/i386 windows/amd64\"\n    - save_cache:\n        key: pkg-cache-{{ checksum \"go.sum\" }}-v5\n        paths:\n          - ~/.cache/go-build\n\njobs:\n  # matrix build jobs run on every commit\n  # building on versioned Go and the latest one\n  # '<<: *' syntax is a YAML thing for including documents\n  \"golang:1.17\":\n    <<: *env-shared\n    <<: *build-shared\n    docker:\n      - image: circleci/golang:1.17\n  \"golang:latest\":\n    <<: *env-shared\n    <<: *build-shared\n    docker:\n      - image: circleci/golang:latest\n  # release job run only when a commit is tagged\n  release:\n    <<: *env-shared\n    docker:\n      - image: circleci/golang:1.17\n    steps:\n      - checkout\n      - run:\n          name: Run gorelease\n          command: |\n            curl -sL https://git.io/goreleaser | bash\n      - run:\n          name: Update docs\n          command: |\n            ./.circleci/update_docs.sh\n\nworkflows:\n  version: 2\n  build:\n    jobs:\n      # build matrix\n      - \"golang:1.17\"\n      - \"golang:latest\"\n  release:\n    jobs:\n      - release:\n          filters:\n            tags:\n              only: /v[0-9]+(\\.[0-9]+)*/\n            branches:\n              ignore: /.*/\n"
  },
  {
    "path": ".circleci/install_snapcraft.sh",
    "content": "#!/bin/bash\n\nsudo apt-get update\n\nsudo apt-get install -y \\\n    squashfs-tools \\\n    python3-pip \\\n    python3-apt \\\n    python3-debian \\\n    python3-pyelftools \\\n    python3-yaml \\\n    python3-tabulate \\\n    python3-jsonschema \\\n    python3-click \\\n    python3-pymacaroons \\\n    python3-simplejson \\\n    python3-progressbar \\\n    python3-requests-toolbelt \\\n    python3-requests-unixsocket\n\nsudo pip3 install \\\n    petname \\\n    snapcraft\n\nsnapcraft --version\n"
  },
  {
    "path": ".circleci/update_docs.sh",
    "content": "#!/bin/bash\n\nset -ex\n\n# see if we have a new cheatsheet\n# if other docs end up being generated automatically we can chuck in the relevant scripts here\ngo run scripts/generate_cheatsheet.go\n\n# commit and push if we have a change\nif [[ -z $(git status -s -- docs/*) ]]; then\n  echo \"no changes to commit in the docs directory\"\n  exit 0\nfi\n\necho \"committing updated docs\"\n\ngit config user.name \"lazydocker bot\"\ngit config user.email \"jessedduffield@gmail.com\"\n\ngit checkout master # just making sure we're up to date\ngit pull\ngit add docs/*\ngit commit -m \"update docs\"\ngit push -u origin master"
  },
  {
    "path": ".claude/settings.json",
    "content": "{\n  \"hooks\": {\n    \"PostToolUse\": [\n      {\n        \"matcher\": \"Edit|Write\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"jq -r '.tool_input.file_path // empty' | xargs -I{} gofumpt -w {}\"\n          }\n        ]\n      }\n    ]\n  }\n}\n"
  },
  {
    "path": ".devcontainer/Dockerfile",
    "content": "FROM mcr.microsoft.com/devcontainers/go:bullseye\n\nRUN apt-get update && apt-get install -y \\\n      curl \\\n      git \\\n    && rm -rf /var/lib/apt/lists/*\n\nRUN go install mvdan.cc/gofumpt@latest\nENV PATH=\"/root/go/bin:${PATH}\"\nRUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.50.0\nRUN golangci-lint --version\n"
  },
  {
    "path": ".devcontainer/devcontainer.json",
    "content": "{\n  \"name\": \"Docker in Docker\",\n  \"build\": {\n    \"dockerfile\": \"./Dockerfile\",\n    \"context\": \".\"\n  },\n  \"features\": {\n    \"ghcr.io/devcontainers/features/common-utils:1\": {\n      \"installZsh\": \"true\",\n      \"upgradePackages\": \"false\",\n      \"uid\": \"1000\",\n      \"gid\": \"1000\",\n      \"installOhMyZsh\": \"true\",\n      \"nonFreePackages\": \"true\"\n    },\n    \"ghcr.io/devcontainers/features/docker-from-docker:1\": {\n      \"version\": \"latest\",\n      \"enableNonRootDocker\": \"true\",\n      \"moby\": \"true\"\n    },\n    \"ghcr.io/devcontainers/features/git:1\": {},\n    \"ghcr.io/devcontainers/features/go:1\": {}\n  },\n  // Configure tool-specific properties.\n  \"customizations\": {\n    // Configure properties specific to VS Code.\n    \"vscode\": {\n      // Set *default* container specific settings.json values on container create.\n      \"settings\": {\n        \"go.toolsManagement.checkForUpdates\": \"local\",\n        \"go.useLanguageServer\": true,\n        \"go.gopath\": \"~/go\",\n        \"[go]\": {\n          \"editor.formatOnSave\": true,\n          \"editor.codeActionsOnSave\": {\n            \"source.organizeImports\": true\n          }\n        },\n        \"go.lintTool\": \"golangci-lint\",\n        \"gopls\": {\n          \"formatting.gofumpt\": true,\n          \"usePlaceholders\": false // add parameter placeholders when completing a function\n        },\n        \"files.eol\": \"\\n\"\n      },\n      // Add the IDs of extensions you want installed when the container is created.\n      \"extensions\": [\n        \"golang.Go\"\n      ]\n    }\n  }\n  // TODO: make this work.\n  // \"postStartCommand\": \"echo \\\"alias gr=\\\\\\\"go run /workspaces/lazydocker/main.go\\\\\\\"\\\" >> ~/.zhsrc\"\n}\n"
  },
  {
    "path": ".dockerignore",
    "content": ".circleci\n.github\ndocs\ntest\n.gitignore\n.goreleaser.yml\n*.md\ncoverage.txt\nDockerfile\nLICENSE\ntest.sh\n.git\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: [jesseduffield]\ncustom: ['https://donorbox.org/lazygit']\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: bug\nassignees: ''\n\n---\n\n**Describe the bug**\nA clear and concise description of what the bug is.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Go to '...'\n2. Click on '....'\n3. Scroll down to '....'\n4. See error\n\n**Expected behaviour**\nA clear and concise description of what you expected to happen.\n\n**Screenshots**\nIf applicable, add screenshots to help explain your problem.\n\n**Desktop (please complete the following information):**\n - OS: [e.g. Windows]\n - Lazydocker Version [e.g. v0.1.45]\n - The last commit id if you built project from sources (run : ```git rev-parse HEAD```)\n\n**Additional context**\nAdd any other context about the problem here.\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/discussion.md",
    "content": "---\nname: Discussion\nabout: For starting a discussion\ntitle: ''\nlabels: discussion\nassignees: ''\n\n---\n\n\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: enhancement\nassignees: ''\n\n---\n\n**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n"
  },
  {
    "path": ".github/workflows/cd.yml",
    "content": "name: Continuous Delivery\n\non:\n  push:\n    tags:\n      - \"v*\"\n\njobs:\n  goreleaser:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v2\n      - name: Unshallow repo\n        run: git fetch --prune --unshallow\n      - name: Setup Go\n        uses: actions/setup-go@v6\n        with:\n          go-version: 1.24.x\n      - name: Run goreleaser\n        uses: goreleaser/goreleaser-action@v1\n        with:\n          distribution: goreleaser\n          version: v1.17.2\n          args: release --clean\n        env:\n          GITHUB_TOKEN: ${{secrets.TOKEN_GITHUB}}\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: Continuous Integration\n\nenv:\n  GO_VERSION: 1.24\n\non:\n  push:\n    branches:\n      - master\n  pull_request:\n\njobs:\n  ci:\n    strategy:\n      fail-fast: false\n      matrix:\n        os:\n          - ubuntu-latest\n          - windows-latest\n    name: ci - ${{matrix.os}}\n    runs-on: ${{matrix.os}}\n    env:\n      GOFLAGS: -mod=vendor\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v2\n      - name: Setup Go\n        uses: actions/setup-go@v6\n        with:\n          go-version: 1.24.x\n      - name: Cache build\n        uses: actions/cache@v4\n        with:\n          path: ~/.cache/go-build\n          key: ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-test\n          restore-keys: |\n            ${{runner.os}}-go-\n      - name: Test code\n        run: |\n          bash ./test.sh\n  build:\n    runs-on: ubuntu-latest\n    env:\n      GOFLAGS: -mod=vendor\n      GOARCH: amd64\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v2\n      - name: Setup Go\n        uses: actions/setup-go@v6\n        with:\n          go-version: 1.24.x\n      - name: Cache build\n        uses: actions/cache@v4\n        with:\n          path: ~/.cache/go-build\n          key: ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-build\n          restore-keys: |\n            ${{runner.os}}-go-\n      - name: Build linux binary\n        run: |\n          GOOS=linux go build\n      - name: Build windows binary\n        run: |\n          GOOS=windows go build\n      - name: Build darwin binary\n        run: |\n          GOOS=darwin go build\n  check-codebase:\n    runs-on: ubuntu-latest\n    env:\n      GOFLAGS: -mod=vendor\n      GOARCH: amd64\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v2\n      - name: Setup Go\n        uses: actions/setup-go@v6\n        with:\n          go-version: 1.24.x\n      - name: Cache build\n        uses: actions/cache@v4\n        with:\n          path: |\n            ~/.cache/go-build\n            ~/go/pkg/mod\n          key: ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-build\n          restore-keys: |\n            ${{runner.os}}-go-\n      - name: Check Cheatsheet\n        run: |\n          go run scripts/cheatsheet/main.go check\n      - name: Check Vendor Directory\n        # ensure our vendor directory matches up with our go modules\n        run: |\n          go mod vendor && git diff --exit-code || (echo \"Unexpected change to vendor directory. Run 'go mod vendor' locally and commit the changes\" && exit 1)\n  lint:\n    runs-on: ubuntu-latest\n    env:\n      GOFLAGS: -mod=vendor\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@v2\n      - name: Setup Go\n        uses: actions/setup-go@v6\n        with:\n          go-version: 1.24.x\n      - name: Cache build\n        uses: actions/cache@v4\n        with:\n          path: ~/.cache/go-build\n          key: ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-test\n          restore-keys: |\n            ${{runner.os}}-go-\n      - name: Lint\n        uses: golangci/golangci-lint-action@v3.1.0\n        with:\n          version: latest\n      - name: Format code\n        run: |\n          if [ $(find . ! -path \"./vendor/*\" -name \"*.go\" -exec gofmt -s -d {} \\;|wc -l) -gt 0 ]; then\n           find . ! -path \"./vendor/*\" -name \"*.go\" -exec gofmt -s -d {} \\;\n           exit 1\n          fi\n      - name: errors\n        run: golangci-lint run\n        if: ${{ failure() }}\n"
  },
  {
    "path": ".github/workflows/sponsors.yml",
    "content": "# see https://github.com/JamesIves/github-sponsors-readme-action\nname: Generate Sponsors README\non:\n  push:\n    branches:\n      - master\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout 🛎️\n        uses: actions/checkout@v3\n\n      - name: Generate Sponsors 💖\n        uses: JamesIves/github-sponsors-readme-action@v1.2.2\n        with:\n          token: ${{ secrets.TOKEN_GITHUB }}\n          file: \"README.md\"\n        if: ${{ github.repository == 'jesseduffield/lazydocker' }}\n\n      - name: Create Pull Request 🚀\n        uses: peter-evans/create-pull-request@v6\n        with:\n          commit-message: \"README.md: Update Sponsors\"\n          title: \"README.md: Update Sponsors\"\n          author: \"github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\"\n          labels: \"ignore-for-release\"\n          delete-branch: true\n"
  },
  {
    "path": ".gitignore",
    "content": "lazydocker*\nTODO.md\nLazydocker.code-workspace\n.vscode\n.idea\n"
  },
  {
    "path": ".golangci.yml",
    "content": "linters:\n  enable:\n    - gofumpt\n    - thelper\n    - goimports\n    - tparallel\n    - wastedassign\n    - unparam\n    - prealloc\n    - unconvert\n    - exhaustive\n    - makezero\n    - nakedret\n    # - goconst # TODO: enable and fix issues\n  fast: false\n\nlinters-settings:\n  exhaustive:\n    default-signifies-exhaustive: true\n\n  nakedret:\n    # the gods will judge me but I just don't like naked returns at all\n    max-func-lines: 0\n\nrun:\n  go: '1.21'\n  timeout: 10m\n"
  },
  {
    "path": ".goreleaser.yml",
    "content": "# This is an example goreleaser.yaml file with some sane defaults.\n# Make sure to check the documentation at http://goreleaser.com\nenv:\n  - CGO_ENABLED=0\n  - GOFLAGS=-mod=vendor\n  - GO111MODULE=auto\n\nbuilds:\n  - id: binary\n    goos:\n      # - freebsd\n      - windows\n      - darwin\n      - linux\n    goarch:\n      - amd64\n      - arm\n      - arm64\n      - 386\n    goarm:\n      - 6\n      - 7\n    ldflags:\n      - -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} -X main.buildSource=binaryRelease\n  - id: snap\n    goos:\n      - linux\n    goarch:\n      - amd64\n      - arm\n      - arm64\n      - 386\n    ldflags:\n      - -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} -X main.buildSource=snap\n\narchives:\n  - builds:\n      - binary\n    replacements:\n      darwin: Darwin\n      linux: Linux\n      windows: Windows\n      386: x86\n      amd64: x86_64\n    format_overrides:\n      - goos: windows\n        format: zip\n\nchecksum:\n  name_template: \"checksums.txt\"\n\nsnapshot:\n  name_template: \"{{ .Tag }}-next\"\n\nchangelog:\n  sort: asc\n  filters:\n    exclude:\n      - \"^docs:\"\n      - \"^test:\"\n      - \"^bump\"\n\nbrews:\n  - tap:\n      owner: jesseduffield\n      name: homebrew-lazydocker\n\n    # Your app's homepage.\n    # Default is empty.\n    homepage: \"https://github.com/jesseduffield/lazydocker/\"\n\n    # Your app's description.\n    # Default is empty.\n    description: \"A simple terminal UI for docker, written in Go\"\n#snapcrafts:\n#  - builds:\n#      - snap\n#\n#    replacements:\n#      linux: Linux\n#      386: x86\n#      amd64: x86_64\n#\n#    # Wether to publish the snap to the snapcraft store.\n#    # Remember you need to `snapcraft login` first.\n#    # Defaults to false.\n#    publish: false\n#\n#    # Single-line elevator pitch for your amazing snap.\n#    # 79 char long at most.\n#    summary: The lazier way to manage everything docker\n#\n#    # This the description of your snap. You have a paragraph or two to tell the\n#    # most important story about your snap. Keep it under 100 words though,\n#    # we live in tweetspace and your description wants to look good in the snap\n#    # store.\n#    description: 'A simple terminal UI for docker, written in Go'\n#\n#    # A guardrail to prevent you from releasing a snap to all your users before\n#    # it is ready.\n#    # `devel` will let you release only to the `edge` and `beta` channels in the\n#    # store. `stable` will let you release also to the `candidate` and `stable`\n#    # channels. More info about channels here:\n#    # https://snapcraft.io/docs/reference/channels\n#    # TODO: reset to `stable` when we've been manually reviewed: https://forum.snapcraft.io/t/request-for-classic-confinement-for-lazydocker/12155\n#    grade: devel\n#\n#    # Snaps can be setup to follow three different confinement policies:\n#    # `strict`, `devmode` and `classic`. A strict confinement where the snap\n#    # can only read and write in its own namespace is recommended. Extra\n#    # permissions for strict snaps can be declared as `plugs` for the app, which\n#    # are explained later. More info about confinement here:\n#    # https://snapcraft.io/docs/reference/confinement\n#    confinement: classic\n#\n#    # Your app's license, based on SPDX license expressions: https://spdx.org/licenses\n#    # Default is empty.\n#    license: MIT\n#\n#    # # Each binary built by GoReleaser is an app inside the snap. In this section\n#    # # you can declare extra details for those binaries. It is optional.\n#    # apps:\n#\n#    #   # The name of the app must be the same name as the binary built or the snapcraft name.\n#    #   lazydocker:\n#\n#    #     # If your app requires extra permissions to work outside of its default\n#    #     # confined space, declare them here.\n#    #     # You can read the documentation about the available plugs and the\n#    #     # things they allow:\n#    #     # https://snapcraft.io/docs/reference/interfaces.\n#    #     plugs: []\n"
  },
  {
    "path": "CODE-OF-CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, sex characteristics, gender identity and expression,\nlevel of experience, education, socio-economic status, nationality, personal\nappearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\n  advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the [project leader](https://github.com/jesseduffield). \nAll complaints will be reviewed and investigated and will result in a response that\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html\n\n[homepage]: https://www.contributor-covenant.org\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing\n\nWanna learn Go? This is the project for you!\n\nWhen contributing to this repository, please first discuss the change you wish\nto make via issue, email, or any other method with the owners of this repository\nbefore making a change.\n\n## So all code changes happen through Pull Requests\n\nPull requests are the best way to propose changes to the codebase. We actively\nwelcome your pull requests:\n\n1. Fork the repo and create your branch from `master`.\n2. If you've added code that should be tested, add tests.\n3. If you've added code that need documentation, update the documentation.\n4. Make sure your code follows the [effective go](https://golang.org/doc/effective_go.html) guidelines as much as possible.\n5. Be sure to test your modifications.\n6. Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).\n7. Issue that pull request!\n\n## Vendoring\n\nWe use a vendor directory to store all dependent files. A vendor directory ensures a single source of truth, so that it's clear in each PR what changes are being made, as well as allowing quick testing-out of ideas across various dependent package, or searching the files in your dependent packages via your editor.\n\nBUT this currently comes at a cost. I have begrudgingly migrated from dep to go modules, and go modules are still working on their support for vendor directories:\nhttps://github.com/golang/go/issues/27227\nhttps://github.com/golang/go/issues/30240\n\nThis means there is a little overhead in working with the code base. If you need to make changes to dependent packages, you have two approaches you can take:\n\n# 1)\n\na) Set `export GOFLAGS=-mod=vendor` in your ~/.bashrc file\nb) use `go run main.go` to run lazydocker\nc) if you need to bump a dependency e.g. jesseduffield/gocui, use\n\n```\nGOFLAGS= go get -u github.com/jesseduffield/gocui@master\ngo mod tidy\ngo mod vendor\n```\n\n# 2)\n\na) don't worry about your ~/.bashrc file\nb) use `go run -mod=vendor main.go` to run lazydocker\nc) if you need to bump a dependency e.g. jesseduffield/gocui, use\n\n```\ngo get -u github.com/jesseduffield/gocui@master\ngo mod tidy\ngo mod vendor\n```\n\nHopefully this will be much more streamlined in the future :)\n\n## Code of conduct\n\nPlease note by participating in this project, you agree to abide by the [code of conduct].\n\n[code of conduct]: https://github.com/jesseduffield/lazydocker/blob/master/CODE-OF-CONDUCT.md\n\n## Any contributions you make will be under the MIT Software License\n\nIn short, when you submit code changes, your submissions are understood to be\nunder the same [MIT License](http://choosealicense.com/licenses/mit/) that\ncovers the project. Feel free to contact the maintainers if that's a concern.\n\n## Report bugs using Github's [issues](https://github.com/jesseduffield/lazydocker/issues)\n\nWe use GitHub issues to track public bugs. Report a bug by [opening a new\nissue](https://github.com/jesseduffield/lazydocker/issues/new); it's that easy!\n"
  },
  {
    "path": "Dockerfile",
    "content": "ARG BASE_IMAGE_BUILDER=golang\nARG ALPINE_VERSION=3.20\nARG GO_VERSION=1.23\n\nFROM ${BASE_IMAGE_BUILDER}:${GO_VERSION}-alpine${ALPINE_VERSION} AS builder\nARG GOARCH=amd64\nARG GOARM\nARG VERSION\nARG VCS_REF\nWORKDIR /tmp/gobuild\nCOPY ./ .\nRUN CGO_ENABLED=0 GOOS=linux GOARCH=${GOARCH} GOARM=${GOARM} \\\n    go build -a -mod=vendor \\\n    -ldflags=\"-s -w \\\n    -X main.commit=${VCS_REF} \\\n    -X main.version=${VERSION} \\\n    -X main.buildSource=Docker\"\n\nFROM ${BASE_IMAGE_BUILDER}:${GO_VERSION}-alpine${ALPINE_VERSION} AS docker-builder\nARG GOARCH=amd64\nARG GOARM\nARG DOCKER_VERSION=v27.0.3\nRUN apk add -U -q --progress --no-cache git bash coreutils gcc musl-dev\nWORKDIR /go/src/github.com/docker/cli\nRUN git clone --branch ${DOCKER_VERSION} --single-branch --depth 1 https://github.com/docker/cli.git . > /dev/null 2>&1\nENV CGO_ENABLED=0 \\\n    GOARCH=${GOARCH} \\\n    GOARM=${GOARM} \\\n    DISABLE_WARN_OUTSIDE_CONTAINER=1\nRUN ./scripts/build/binary\nRUN rm build/docker && mv build/docker-linux-* build/docker\n\nFROM scratch\nARG BUILD_DATE\nARG VCS_REF\nARG VERSION\nLABEL \\\n    org.opencontainers.image.authors=\"jessedduffield@gmail.com\" \\\n    org.opencontainers.image.created=$BUILD_DATE \\\n    org.opencontainers.image.version=$VERSION \\\n    org.opencontainers.image.revision=$VCS_REF \\\n    org.opencontainers.image.url=\"https://github.com/jesseduffield/lazydocker\" \\\n    org.opencontainers.image.documentation=\"https://github.com/jesseduffield/lazydocker\" \\\n    org.opencontainers.image.source=\"https://github.com/jesseduffield/lazydocker\" \\\n    org.opencontainers.image.title=\"lazydocker\" \\\n    org.opencontainers.image.description=\"The lazier way to manage everything docker\"\nENTRYPOINT [ \"/bin/lazydocker\" ]\nCOPY --from=docker-builder /go/src/github.com/docker/cli/build/docker /bin/docker\nCOPY --from=builder /tmp/gobuild/lazydocker /bin/lazydocker\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2018 Jesse Duffield\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "<div align=\"center\">\n<sup>Special thanks to:</sup>\n<br>\n<br>\n<a href=\"https://www.warp.dev/?utm_source=github&utm_medium=referral&utm_campaign=lazydocker_20231023\">\n  <div>\n    <img src=\"https://github.com/warpdotdev/brand-assets/blob/main/Github/Sponsor/Warp-Github-LG-02.png?raw=true\" width=\"400\" alt=\"Warp\">\n  </div>\n  <b>Warp, the intelligent terminal</b>\n  <br>\n  <b>Available for MacOS and Linux</b>\n  <br>\n  <div>\n    <sup>Visit warp.dev to learn more.</sup>\n  </div>\n</a>\n<br>\n<hr>\n<a href=\"https://tuple.app/lazydocker\">\n  <div>\n    <img src=\"assets/tuple.png\" width=\"400\" alt=\"Tuple\">\n  </div>\n  <b>Tuple, the premier screen sharing app for developers on macOS and Windows.</b>\n</a>\n<br>\n<hr>\n<br>\n<a href=\"https://www.subble.com/jobs/engineer\">\n  <div>\n    <img src=\"assets/subble-job-ad.jpg\" width=\"400\" alt=\"Subble\">\n  </div>\n  <b>Click here to learn more</b>\n</a>\n<br>\n\n<hr>\n</div>\n\n<p align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/8456633/59972109-8e9c8480-95cc-11e9-8350-38f7f86ba76d.png\">\n</p>\n\nA simple terminal UI for both docker and docker-compose, written in Go with the [gocui](https://github.com/jroimartin/gocui 'gocui') library.\n\n![CI](https://github.com/jesseduffield/lazygit/workflows/Continuous%20Integration/badge.svg)\n[![Go Report Card](https://goreportcard.com/badge/github.com/jesseduffield/lazydocker)](https://goreportcard.com/report/github.com/jesseduffield/lazydocker)\n[![GolangCI](https://golangci.com/badges/github.com/jesseduffield/lazydocker.svg)](https://golangci.com)\n[![GoDoc](https://godoc.org/github.com/jesseduffield/lazydocker?status.svg)](http://godoc.org/github.com/jesseduffield/lazydocker)\n![GitHub repo size](https://img.shields.io/github/repo-size/jesseduffield/lazydocker)\n[![GitHub Releases](https://img.shields.io/github/downloads/jesseduffield/lazydocker/total)](https://github.com/jesseduffield/lazydocker/releases)\n[![GitHub tag](https://img.shields.io/github/tag/jesseduffield/lazydocker.svg)](https://github.com/jesseduffield/lazydocker/releases/latest)\n[![homebrew](https://img.shields.io/homebrew/v/lazydocker)](https://github.com/Homebrew/homebrew-core/blob/master/Formula/lazydocker.rb)\n\n![Gif](/docs/resources/demo3.gif)\n\n[Demo](https://youtu.be/NICqQPxwJWw)\n\n## Sponsors\n\n<p align=\"center\">\n Maintenance of this project is made possible by all the <a href=\"https://github.com/jesseduffield/lazydocker/graphs/contributors\">contributors</a> and <a href=\"https://github.com/sponsors/jesseduffield\">sponsors</a>. If you'd like to sponsor this project and have your avatar or company logo appear below <a href=\"https://github.com/sponsors/jesseduffield\">click here</a>. 💙\n</p>\n\n<p align=\"center\">\n<!-- sponsors --><a href=\"https://github.com/intabulas\"><img src=\"https://github.com/intabulas.png\" width=\"60px\" alt=\"Mark Lussier\" /></a><a href=\"https://github.com/peppy\"><img src=\"https://github.com/peppy.png\" width=\"60px\" alt=\"Dean Herbert\" /></a><a href=\"https://github.com/piot\"><img src=\"https://github.com/piot.png\" width=\"60px\" alt=\"Peter Bjorklund\" /></a><a href=\"https://github.com/rgwood\"><img src=\"https://github.com/rgwood.png\" width=\"60px\" alt=\"Reilly Wood\" /></a><a href=\"https://github.com/oliverguenther\"><img src=\"https://github.com/oliverguenther.png\" width=\"60px\" alt=\"Oliver Günther\" /></a><a href=\"https://github.com/pawanjay176\"><img src=\"https://github.com/pawanjay176.png\" width=\"60px\" alt=\"Pawan Dhananjay\" /></a><a href=\"https://github.com/bdach\"><img src=\"https://github.com/bdach.png\" width=\"60px\" alt=\"Bartłomiej Dach\" /></a><a href=\"https://github.com/davidklsn\"><img src=\"https://github.com/davidklsn.png\" width=\"60px\" alt=\"David Karlsson\" /></a><a href=\"https://github.com/carstengehling\"><img src=\"https://github.com/carstengehling.png\" width=\"60px\" alt=\"Carsten Gehling\" /></a><a href=\"https://github.com/ceuk\"><img src=\"https://github.com/ceuk.png\" width=\"60px\" alt=\"CEUK\" /></a><a href=\"https://github.com/akospwc\"><img src=\"https://github.com/akospwc.png\" width=\"60px\" alt=\"Akos Putz\" /></a><a href=\"https://github.com/Xetera\"><img src=\"https://github.com/Xetera.png\" width=\"60px\" alt=\"Xetera\" /></a><a href=\"https://github.com/HoldenLucas\"><img src=\"https://github.com/HoldenLucas.png\" width=\"60px\" alt=\"Holden Lucas\" /></a><a href=\"https://github.com/nartc\"><img src=\"https://github.com/nartc.png\" width=\"60px\" alt=\"Chau Tran\" /></a><a href=\"https://github.com/matejcik\"><img src=\"https://github.com/matejcik.png\" width=\"60px\" alt=\"matejcik\" /></a><a href=\"https://github.com/lucatume\"><img src=\"https://github.com/lucatume.png\" width=\"60px\" alt=\"theAverageDev (Luca Tumedei)\" /></a><a href=\"https://github.com/IvanZuy\"><img src=\"https://github.com/IvanZuy.png\" width=\"60px\" alt=\"Ivan Zaitsev\" /></a><a href=\"https://github.com/nicholascloud\"><img src=\"https://github.com/nicholascloud.png\" width=\"60px\" alt=\"Nicholas Cloud\" /></a><a href=\"https://github.com/PhotonQuantum\"><img src=\"https://github.com/PhotonQuantum.png\" width=\"60px\" alt=\"LightQuantum\" /></a><a href=\"https://github.com/GitSquared\"><img src=\"https://github.com/GitSquared.png\" width=\"60px\" alt=\"Gabriel Saillard\" /></a><a href=\"https://github.com/ava1ar\"><img src=\"https://github.com/ava1ar.png\" width=\"60px\" alt=\"Aliaksandr Stelmachonak\" /></a><a href=\"https://github.com/minidfx\"><img src=\"https://github.com/minidfx.png\" width=\"60px\" alt=\"Burgy Benjamin\" /></a><a href=\"https://github.com/JoeKlemmer\"><img src=\"https://github.com/JoeKlemmer.png\" width=\"60px\" alt=\"Joe Klemmer\" /></a><a href=\"https://github.com/tobi\"><img src=\"https://github.com/tobi.png\" width=\"60px\" alt=\"Tobias Lütke\" /></a><a href=\"https://github.com/benbfortis\"><img src=\"https://github.com/benbfortis.png\" width=\"60px\" alt=\"Ben Beaumont\" /></a><a href=\"https://github.com/jakewarren\"><img src=\"https://github.com/jakewarren.png\" width=\"60px\" alt=\"\" /></a><a href=\"https://github.com/tgpholly\"><img src=\"https://github.com/tgpholly.png\" width=\"60px\" alt=\"Holly\" /></a><a href=\"https://github.com/jisantuc\"><img src=\"https://github.com/jisantuc.png\" width=\"60px\" alt=\"James Santucci\" /></a><a href=\"https://github.com/bitprophet\"><img src=\"https://github.com/bitprophet.png\" width=\"60px\" alt=\"Jeff Forcier\" /></a><a href=\"https://github.com/tayleighr\"><img src=\"https://github.com/tayleighr.png\" width=\"60px\" alt=\"\" /></a><a href=\"https://github.com/Novakov\"><img src=\"https://github.com/Novakov.png\" width=\"60px\" alt=\"Maciej T. Nowak\" /></a><a href=\"https://github.com/farzadmf\"><img src=\"https://github.com/farzadmf.png\" width=\"60px\" alt=\"Farzad Majidfayyaz\" /></a><a href=\"https://github.com/nekhaevskiy\"><img src=\"https://github.com/nekhaevskiy.png\" width=\"60px\" alt=\"Yury\" /></a><a href=\"https://github.com/reivilibre\"><img src=\"https://github.com/reivilibre.png\" width=\"60px\" alt=\"\" /></a><a href=\"https://github.com/andreaskurth\"><img src=\"https://github.com/andreaskurth.png\" width=\"60px\" alt=\"Andreas Kurth\" /></a><a href=\"https://github.com/BSteffaniak\"><img src=\"https://github.com/BSteffaniak.png\" width=\"60px\" alt=\"Braden Steffaniak\" /></a><a href=\"https://github.com/jordan-gillard\"><img src=\"https://github.com/jordan-gillard.png\" width=\"60px\" alt=\"Jordan Gillard\" /></a><a href=\"https://github.com/smangels\"><img src=\"https://github.com/smangels.png\" width=\"60px\" alt=\"Sebastian\" /></a><a href=\"https://github.com/George-Spanos\"><img src=\"https://github.com/George-Spanos.png\" width=\"60px\" alt=\"George Spanos\" /></a><a href=\"https://github.com/frantisekstanko\"><img src=\"https://github.com/frantisekstanko.png\" width=\"60px\" alt=\"Frantisek Stanko\" /></a><a href=\"https://github.com/amslezak\"><img src=\"https://github.com/amslezak.png\" width=\"60px\" alt=\"Andy Slezak\" /></a><a href=\"https://github.com/mkock\"><img src=\"https://github.com/mkock.png\" width=\"60px\" alt=\"Martin Kock\" /></a><a href=\"https://github.com/illarionvk\"><img src=\"https://github.com/illarionvk.png\" width=\"60px\" alt=\"Illarion Koperski\" /></a><a href=\"https://github.com/WhiteBlackGoose\"><img src=\"https://github.com/WhiteBlackGoose.png\" width=\"60px\" alt=\"\" /></a><a href=\"https://github.com/jessealama\"><img src=\"https://github.com/jessealama.png\" width=\"60px\" alt=\"Jesse Alama\" /></a><a href=\"https://github.com/codacy\"><img src=\"https://github.com/codacy.png\" width=\"60px\" alt=\"Codacy\" /></a><a href=\"https://github.com/colbr\"><img src=\"https://github.com/colbr.png\" width=\"60px\" alt=\"Brett\" /></a><a href=\"https://github.com/heijmans\"><img src=\"https://github.com/heijmans.png\" width=\"60px\" alt=\"Jan Heijmans\" /></a><a href=\"https://github.com/Vesther\"><img src=\"https://github.com/Vesther.png\" width=\"60px\" alt=\"Kevin Nowald\" /></a><a href=\"https://github.com/sempruijs\"><img src=\"https://github.com/sempruijs.png\" width=\"60px\" alt=\"sem pruijs\" /></a><a href=\"https://github.com/omarluq\"><img src=\"https://github.com/omarluq.png\" width=\"60px\" alt=\"Omar Luq \" /></a><a href=\"https://github.com/ethanjli\"><img src=\"https://github.com/ethanjli.png\" width=\"60px\" alt=\"Ethan Li\" /></a><a href=\"https://github.com/phubaba\"><img src=\"https://github.com/phubaba.png\" width=\"60px\" alt=\"\" /></a><a href=\"https://github.com/fomrat\"><img src=\"https://github.com/fomrat.png\" width=\"60px\" alt=\"Brian MacAskill\" /></a><a href=\"https://github.com/canhazcodez\"><img src=\"https://github.com/canhazcodez.png\" width=\"60px\" alt=\"Maxi\" /></a><a href=\"https://github.com/nikbrunner\"><img src=\"https://github.com/nikbrunner.png\" width=\"60px\" alt=\"nbr\" /></a><a href=\"https://github.com/neunkasulle\"><img src=\"https://github.com/neunkasulle.png\" width=\"60px\" alt=\"Jan Zenkner\" /></a><a href=\"https://github.com/ahkohd\"><img src=\"https://github.com/ahkohd.png\" width=\"60px\" alt=\"Victor Aremu\" /></a><a href=\"https://github.com/RVxLab\"><img src=\"https://github.com/RVxLab.png\" width=\"60px\" alt=\"\" /></a><a href=\"https://github.com/igor-ramazanov\"><img src=\"https://github.com/igor-ramazanov.png\" width=\"60px\" alt=\"Igor Ramazanov\" /></a><a href=\"https://github.com/glotchimo\"><img src=\"https://github.com/glotchimo.png\" width=\"60px\" alt=\"Elliott Maguire\" /></a><a href=\"https://github.com/n8nio\"><img src=\"https://github.com/n8nio.png\" width=\"60px\" alt=\"n8n - Workflow Automation\" /></a><a href=\"https://github.com/kaleballmon\"><img src=\"https://github.com/kaleballmon.png\" width=\"60px\" alt=\"kaleb allmon\" /></a><a href=\"https://github.com/joshuadavidthomas\"><img src=\"https://github.com/joshuadavidthomas.png\" width=\"60px\" alt=\"Josh Thomas\" /></a><a href=\"https://github.com/josephjacks\"><img src=\"https://github.com/josephjacks.png\" width=\"60px\" alt=\"JJ\" /></a><a href=\"https://github.com/FrederickGeek8\"><img src=\"https://github.com/FrederickGeek8.png\" width=\"60px\" alt=\"Frederick Morlock\" /></a><a href=\"https://github.com/agrippanux\"><img src=\"https://github.com/agrippanux.png\" width=\"60px\" alt=\"Darren Craine\" /></a><a href=\"https://github.com/ezdac\"><img src=\"https://github.com/ezdac.png\" width=\"60px\" alt=\"Maximilian Langenfeld\" /></a><a href=\"https://github.com/sarzhann\"><img src=\"https://github.com/sarzhann.png\" width=\"60px\" alt=\"Nurzhan\" /></a><a href=\"https://github.com/dbuls\"><img src=\"https://github.com/dbuls.png\" width=\"60px\" alt=\"Davis Buls\" /></a><a href=\"https://github.com/MGreek\"><img src=\"https://github.com/MGreek.png\" width=\"60px\" alt=\"Grec Marc\" /></a><a href=\"https://github.com/sainu\"><img src=\"https://github.com/sainu.png\" width=\"60px\" alt=\"sainu\" /></a><a href=\"https://github.com/mguellsegarra\"><img src=\"https://github.com/mguellsegarra.png\" width=\"60px\" alt=\"Marc Güell Segarra\" /></a><a href=\"https://github.com/lppassos\"><img src=\"https://github.com/lppassos.png\" width=\"60px\" alt=\"\" /></a><a href=\"https://github.com/chrisolsen\"><img src=\"https://github.com/chrisolsen.png\" width=\"60px\" alt=\"Chris Olsen\" /></a><a href=\"https://github.com/vladimir-popov\"><img src=\"https://github.com/vladimir-popov.png\" width=\"60px\" alt=\"Vladimir Popov\" /></a><a href=\"https://github.com/neilcode\"><img src=\"https://github.com/neilcode.png\" width=\"60px\" alt=\"Neil Lambert\" /></a><a href=\"https://github.com/shaungarwood\"><img src=\"https://github.com/shaungarwood.png\" width=\"60px\" alt=\"Shaun Garwood\" /></a><a href=\"https://github.com/dhh\"><img src=\"https://github.com/dhh.png\" width=\"60px\" alt=\"David Heinemeier Hansson\" /></a><a href=\"https://github.com/wayanjimmy\"><img src=\"https://github.com/wayanjimmy.png\" width=\"60px\" alt=\"Wayan jimmy\" /></a><!-- sponsors -->\n</p>\n\n## Elevator Pitch\n\nMinor rant incoming: Something's not working? Maybe a service is down. `docker-compose ps`. Yep, it's that microservice that's still buggy. No issue, I'll just restart it: `docker-compose restart`. Okay now let's try again. Oh wait the issue is still there. Hmm. `docker-compose ps`. Right so the service must have just stopped immediately after starting. I probably would have known that if I was reading the log stream, but there is a lot of clutter in there from other services. I could get the logs for just that one service with `docker compose logs --follow myservice` but that dies everytime the service dies so I'd need to run that command every time I restart the service. I could alternatively run `docker-compose up myservice` and in that terminal window if the service is down I could just `up` it again, but now I've got one service hogging a terminal window even after I no longer care about its logs. I guess when I want to reclaim the terminal realestate I can do `ctrl+P,Q`, but... wait, that's not working for some reason. Should I use ctrl+C instead? I can't remember if that closes the foreground process or kills the actual service.\n\nWhat a headache!\n\nMemorising docker commands is hard. Memorising aliases is slightly less hard. Keeping track of your containers across multiple terminal windows is near impossible. What if you had all the information you needed in one terminal window with every common command living one keypress away (and the ability to add custom commands as well). Lazydocker's goal is to make that dream a reality.\n\n- [Requirements](https://github.com/jesseduffield/lazydocker#requirements)\n- [Installation](https://github.com/jesseduffield/lazydocker#installation)\n- [Usage](https://github.com/jesseduffield/lazydocker#usage)\n- [Keybindings](/docs/keybindings)\n- [Cool Features](https://github.com/jesseduffield/lazydocker#cool-features)\n- [Contributing](https://github.com/jesseduffield/lazydocker#contributing)\n- [Video Tutorial](https://youtu.be/NICqQPxwJWw)\n- [Config Docs](/docs/Config.md)\n- [Twitch Stream](https://www.twitch.tv/jesseduffield)\n- [FAQ](https://github.com/jesseduffield/lazydocker#faq)\n\n## Requirements\n\n- Docker >= **29.0.0** (API >= **1.24**)\n- Docker-Compose >= **1.23.2** (optional)\n\n## Installation\n\n### Homebrew\n\nNormally `lazydocker` formula can be found in the Homebrew core but we suggest you to tap our formula to get frequently updated one. It works with Linux, too.\n\n**Tap**:\n```sh\nbrew install jesseduffield/lazydocker/lazydocker\n```\n\n**Core**:\n```sh\nbrew install lazydocker\n```\n\n### Scoop (Windows)\n\nYou can install `lazydocker` using [scoop](https://scoop.sh/):\n\n```sh\nscoop install lazydocker\n```\n### Chocolatey (Windows)\n\nYou can install `lazydocker` using [Chocolatey](https://chocolatey.org/):\n\n```sh\nchoco install lazydocker\n```\n### asdf-vm\n\nYou can install [asdf-lazydocker plugin](https://github.com/comdotlinux/asdf-lazydocker) using [asdf-vm](https://asdf-vm.com/):\n#### Setup (Once)\n```sh\nasdf plugin add lazydocker https://github.com/comdotlinux/asdf-lazydocker.git\n```\n\n#### For Install / Upgrade\n```sh\nasdf list all lazydocker\nasdf install lazydocker latest\nasdf global lazydocker latest\n```\n\n### Binary Release (Linux/OSX/Windows)\n\nYou can manually download a binary release from [the release page](https://github.com/jesseduffield/lazydocker/releases).\n\nAutomated install/update, don't forget to always verify what you're piping into bash:\n\n```sh\ncurl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash\n```\nThe script installs downloaded binary to `$HOME/.local/bin` directory by default, but it can be changed by setting `DIR` environment variable.\n\n### Go\n\nRequired Go Version >= **1.19**\n\n```sh\ngo install github.com/jesseduffield/lazydocker@latest\n```\n\nRequired Go version >= **1.8**, <= **1.17**\n\n```sh\ngo get github.com/jesseduffield/lazydocker\n```\n\n### Arch Linux AUR\n\nYou can install lazydocker using the [AUR](https://aur.archlinux.org/packages/lazydocker) by running:\n\n```sh\nyay -S lazydocker\n```\n\n### Docker\n\n[![Docker Pulls](https://img.shields.io/docker/pulls/lazyteam/lazydocker.svg)](https://hub.docker.com/r/lazyteam/lazydocker)\n[![Docker Stars](https://img.shields.io/docker/stars/lazyteam/lazydocker.svg)](https://hub.docker.com/r/lazyteam/lazydocker)\n[![Docker Automated](https://img.shields.io/docker/cloud/automated/lazyteam/lazydocker.svg)](https://hub.docker.com/r/lazyteam/lazydocker)\n\n1. <details><summary>Click if you have an ARM device</summary><p>\n\n    - If you have a ARM 32 bit v6 architecture\n\n        ```sh\n        docker build -t lazyteam/lazydocker \\\n        --build-arg BASE_IMAGE_BUILDER=arm32v6/golang \\\n        --build-arg GOARCH=arm \\\n        --build-arg GOARM=6 \\\n        https://github.com/jesseduffield/lazydocker.git\n        ```\n\n    - If you have a ARM 32 bit v7 architecture\n\n        ```sh\n        docker build -t lazyteam/lazydocker \\\n        --build-arg BASE_IMAGE_BUILDER=arm32v7/golang \\\n        --build-arg GOARCH=arm \\\n        --build-arg GOARM=7 \\\n        https://github.com/jesseduffield/lazydocker.git\n        ```\n\n    - If you have a ARM 64 bit v8 architecture\n\n        ```sh\n        docker build -t lazyteam/lazydocker \\\n        --build-arg BASE_IMAGE_BUILDER=arm64v8/golang \\\n        --build-arg GOARCH=arm64 \\\n        https://github.com/jesseduffield/lazydocker.git\n        ```\n\n    </p></details>\n\n1. Run the container\n\n    ```sh\n    docker run --rm -it -v \\\n    /var/run/docker.sock:/var/run/docker.sock \\\n    -v /yourpath:/.config/jesseduffield/lazydocker \\\n    lazyteam/lazydocker\n    ```\n\n    - Don't forget to change `/yourpath` to an actual path you created to store lazydocker's config\n    - You can also use this [docker-compose.yml](https://github.com/jesseduffield/lazydocker/blob/master/docker-compose.yml)\n    - You might want to create an alias, for example:\n\n        ```sh\n        echo \"alias lzd='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v /yourpath/config:/.config/jesseduffield/lazydocker lazyteam/lazydocker'\" >> ~/.zshrc\n        ```\n\n\n\nFor development, you can build the image using:\n\n```sh\ngit clone https://github.com/jesseduffield/lazydocker.git\ncd lazydocker\ndocker build -t lazyteam/lazydocker \\\n    --build-arg BUILD_DATE=`date -u +\"%Y-%m-%dT%H:%M:%SZ\"` \\\n    --build-arg VCS_REF=`git rev-parse --short HEAD` \\\n    --build-arg VERSION=`git describe --abbrev=0 --tag` \\\n    .\n```\n\nIf you encounter a compatibility issue with Docker bundled binary, try rebuilding\nthe image with the build argument `--build-arg DOCKER_VERSION=\"v$(docker -v | cut -d\" \" -f3 | rev | cut -c 2- | rev)\"`\nso that the bundled docker binary matches your host docker binary version.\n\n### Manual\n\nYou'll need to [install Go](https://golang.org/doc/install)\n\n```\ngit clone https://github.com/jesseduffield/lazydocker.git\ncd lazydocker\ngo install\n```\n\nYou can also use `go run main.go` to compile and run in one go (pun definitely intended)\n\n## Usage\n\nCall `lazydocker` in your terminal. I personally use this a lot so I've made an alias for it like so:\n\n```\necho \"alias lzd='lazydocker'\" >> ~/.zshrc\n```\n\n(you can substitute .zshrc for whatever rc file you're using)\n\n- Basic video tutorial [here](https://youtu.be/NICqQPxwJWw).\n- List of keybindings\n  [here](/docs/keybindings).\n\n## Cool features\n\neverything is one keypress away (or one click away! Mouse support FTW):\n\n- viewing the state of your docker or docker-compose container environment at a glance\n- viewing logs for a container/service\n- viewing ascii graphs of your containers' metrics so that you can not only feel but also look like a developer\n- customising those graphs to measure nearly any metric you want\n- attaching to a container/service\n- restarting/removing/rebuilding containers/services\n- viewing the ancestor layers of a given image\n- pruning containers, images, or volumes that are hogging up disk space\n\n## Contributing\n\nThere is still a lot of work to go! Please check out the [contributing guide](CONTRIBUTING.md).\nFor contributor discussion about things not better discussed here in the repo, join the discord channel\n\n<a href=\"https://discord.gg/ehwFt2t4wt\"><img src='/docs/resources/discord.png' width='75'></a>\n\n## Donate\n\nIf you would like to support the development of lazydocker, consider [sponsoring me](https://github.com/sponsors/jesseduffield) (github is matching all donations dollar-for-dollar for 12 months)\n\n## Social\n\nIf you want to see what I (Jesse) am up to in terms of development, follow me on\n[twitter](https://twitter.com/DuffieldJesse) or watch me program on\n[twitch](https://www.twitch.tv/jesseduffield)\n\n## FAQ\n\n### How do I edit my config?\n\nBy opening lazydocker, clicking on the 'project' panel in the top left, and pressing 'o' (or 'e' if your editor is vim). See [Config Docs](/docs/Config.md)\n\n### How do I get text to wrap in my main panel?\n\nIn the future I want to make this the default, but for now there are some CPU issues that arise with wrapping. If you want to enable wrapping, use `gui.wrapMainPanel: true`\n\n### How do you select text?\n\nBecause we support mouse events, you will need to hold option while dragging the mouse to indicate you're trying to select text rather than click on something. Alternatively you can disable mouse events via the `gui.ignoreMouseEvents` config value.\n\nMac Users: See [Issue #190](https://github.com/jesseduffield/lazydocker/issues/190) for other options.\n\n### Why can't I see my container's logs?\n\nBy default we only show logs from the last hour, so that we're not putting too much strain on the machine. This may be why you can't see logs when you first start lazydocker. This can be overwritten in the config's `commandTemplates`\n\nIf you are running lazydocker in Docker container, it is a know bug, that you can't see logs or CPU usage.\n\n## Alternatives\n\n- [docui](https://github.com/skanehira/docui) - Skanehira beat me to the punch on making a docker terminal UI, so definitely check out that repo as well! I think the two repos can live in harmony though: lazydocker is more about managing existing containers/services, and docui is more about creating and configuring them.\n- [Portainer](https://github.com/portainer/portainer) - Portainer tries to solve the same problem but it's accessed via your browser rather than your terminal. It also supports docker swarm.\n- See [Awesome Docker list](https://github.com/veggiemonk/awesome-docker/blob/master/README.md#terminal) for similar tools to work with Docker.\n"
  },
  {
    "path": "config/config.yml",
    "content": ""
  },
  {
    "path": "coverage.txt",
    "content": "\nmode: atomic\nmode: atomic\nmode: atomic\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:341.36,343.16 2 4\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:343.16,344.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:347.2,462.3 1 4\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:479.157,481.16 2 4\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:481.16,483.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:485.2,486.16 2 4\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:486.16,488.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:491.2,491.27 1 4\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:491.27,493.3 1 2\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:495.2,507.23 2 4\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:510.67,512.24 2 8\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:512.24,514.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:515.2,516.32 2 8\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:519.43,521.67 2 4\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:521.67,523.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:524.2,525.24 2 4\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:528.64,532.16 3 4\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:532.16,534.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:536.2,536.20 1 4\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:539.72,543.2 2 4\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:545.78,548.45 2 6\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:548.45,549.25 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:549.25,551.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:551.18,553.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:554.4,554.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:555.9,557.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:560.2,561.16 2 6\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:561.16,563.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:565.2,565.54 1 6\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:565.54,567.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:569.2,569.18 1 6\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:576.83,578.16 2 2\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:578.16,580.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:582.2,582.49 1 2\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:582.49,584.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:586.2,587.16 2 2\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:587.16,589.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:591.2,591.49 1 2\ngithub.com/jesseduffield/lazydocker/pkg/config/app_config.go:595.45,597.2 1 4\ngithub.com/jesseduffield/lazydocker/pkg/config/config_default_platform.go:7.42,12.2 1 4\nmode: atomic\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:29.50,31.54 2 3\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:31.54,33.3 1 2\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:34.2,35.31 2 1\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:35.31,37.3 1 1\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:38.2,38.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:42.50,44.33 2 8\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:44.33,46.3 1 1\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:47.2,47.61 1 7\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:52.71,54.37 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:54.37,56.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:57.2,58.41 2 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:67.43,68.46 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:68.46,70.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:71.2,73.36 3 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:73.36,78.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:79.2,79.38 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:79.38,84.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:85.2,85.38 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:85.38,90.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:91.2,91.38 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:91.38,96.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:97.2,97.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:102.79,105.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:109.66,111.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:114.44,118.2 3 4\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:121.22,127.2 5 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:130.79,131.36 1 7\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:131.36,133.3 1 5\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:134.2,134.12 1 7\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:138.24,139.11 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:139.11,141.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:142.2,142.10 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:146.59,147.28 1 3\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:147.28,149.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:150.2,150.41 1 3\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:150.41,152.3 1 1\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:154.2,157.54 3 2\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:161.36,164.2 2 16\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:166.50,167.31 1 5\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:167.31,169.3 1 2\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:170.2,171.27 2 3\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:171.27,172.40 1 4\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:172.40,174.43 2 8\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:174.43,176.5 1 4\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:179.2,179.18 1 3\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:182.81,184.43 2 3\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:184.43,185.28 1 6\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:185.28,186.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:188.3,188.38 1 6\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:188.38,190.4 1 6\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:191.3,191.57 1 6\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:193.2,193.29 1 3\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:198.57,199.39 1 5\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:199.39,200.43 1 10\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:200.43,202.4 1 2\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:204.2,204.13 1 3\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:207.38,210.29 3 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:210.29,211.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:211.26,213.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:213.9,215.22 2 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:215.22,217.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:218.4,218.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:221.2,221.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:224.39,227.29 3 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:227.29,228.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:228.26,230.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:230.9,232.22 2 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:232.22,234.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:235.4,235.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:238.2,238.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:241.59,245.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:248.52,264.13 3 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:264.13,266.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:267.2,267.27 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:271.52,286.13 3 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:286.13,288.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:289.2,289.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:293.38,295.29 2 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:295.29,297.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:297.22,299.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:301.2,301.33 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:305.65,307.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:310.57,311.17 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:311.17,313.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:315.2,318.21 3 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:318.21,320.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:321.2,322.27 2 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:322.27,324.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:326.2,326.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:331.34,334.24 3 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:334.24,336.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:337.2,337.19 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:340.43,342.28 2 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:342.28,344.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:344.17,346.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:348.2,348.19 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:348.19,350.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:351.2,351.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:354.49,355.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:355.22,357.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:357.8,359.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:362.37,363.32 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:363.32,365.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:367.2,367.17 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:367.17,369.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:371.2,371.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:371.29,372.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:373.117,374.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:375.11,376.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:380.2,380.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:384.40,386.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:390.56,392.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:394.73,397.16 2 3\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:397.16,399.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:400.2,400.16 1 3\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:401.14,402.23 1 1\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:403.14,406.63 2 1\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:406.63,408.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:409.3,409.34 1 1\ngithub.com/jesseduffield/lazydocker/pkg/utils/utils.go:410.10,411.86 1 1\nmode: atomic\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:20.51,22.36 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:22.36,23.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:23.26,25.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:27.2,27.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:30.55,38.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:40.50,41.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:41.26,43.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:44.2,45.39 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:45.39,47.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:48.2,48.23 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:52.70,53.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:53.12,56.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:56.16,58.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:60.3,60.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:60.13,63.23 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:63.23,65.24 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:65.24,67.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:68.5,68.75 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:68.75,70.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:74.3,74.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:74.29,75.42 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:75.42,77.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/app_status_manager.go:81.2,81.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:16.110,20.52 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:20.52,22.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:24.2,28.18 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:28.18,30.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:32.2,34.21 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:34.21,36.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:38.2,64.60 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:67.51,76.68 5 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:76.68,79.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:79.8,80.42 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:80.42,82.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:82.9,82.49 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:82.49,84.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:87.2,87.45 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:90.95,93.24 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:93.24,100.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:102.2,102.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:102.29,113.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:115.2,129.15 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:132.42,133.100 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:133.100,135.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:137.2,137.83 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:137.83,139.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:142.75,146.80 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:146.80,147.55 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:147.55,148.31 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:148.31,153.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:153.10,158.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:161.3,161.76 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:161.76,163.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:165.8,165.25 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:165.25,167.66 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:167.66,168.59 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:168.59,173.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:175.4,175.21 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:178.3,183.76 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:183.76,185.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:186.8,188.19 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:188.19,190.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:192.3,192.62 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:192.62,193.31 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:193.31,198.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:198.10,203.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:206.3,206.76 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/arrangement.go:206.76,208.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:16.127,17.49 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:17.49,18.55 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:18.55,20.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:22.3,22.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:22.22,23.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:23.41,25.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:28.3,28.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:32.49,33.42 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:33.42,35.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:36.2,38.12 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:41.76,45.10 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:45.10,46.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:46.30,48.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:49.8,51.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:52.2,52.18 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:55.95,63.2 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:65.106,68.16 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:68.16,70.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:71.2,72.54 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:75.86,79.16 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:79.16,81.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:82.2,83.15 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:83.15,85.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:86.2,88.40 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:88.40,90.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:91.2,91.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:94.35,97.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:102.133,104.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:106.142,108.40 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:108.40,109.46 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:109.46,110.56 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:110.56,112.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:114.3,115.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:115.17,117.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:118.3,119.69 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:119.69,121.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:122.3,122.59 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:124.2,124.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:127.116,129.135 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:129.135,131.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:132.2,132.124 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:132.124,134.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:136.2,136.131 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:136.131,138.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:139.2,139.122 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:139.122,141.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:143.2,143.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:146.56,150.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/confirmation_panel.go:152.51,158.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:19.89,21.64 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:21.64,23.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:26.41,26.64 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:32.127,34.15 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:34.15,36.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:38.2,40.73 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:40.73,42.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:46.2,48.6 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:48.6,49.10 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:50.21,51.10 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:52.19,54.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:54.18,58.5 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:59.4,59.28 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:59.28,61.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:66.67,71.12 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:71.12,75.3 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:77.2,77.40 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:77.40,80.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:82.2,82.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:82.15,83.40 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:83.40,85.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:88.2,88.74 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:88.74,91.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:93.2,93.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:96.34,97.50 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:97.50,101.41 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:101.41,103.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:107.112,116.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:116.16,118.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:120.2,120.63 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:120.63,122.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:122.17,124.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:125.8,127.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:127.17,129.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/container_logs.go:132.2,132.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:22.81,24.68 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:24.68,25.54 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:25.54,27.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:29.3,29.98 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:29.98,31.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:34.2,36.62 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:36.62,64.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:65.71,72.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:82.65,84.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:85.52,89.89 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:89.89,91.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:93.4,93.80 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:93.80,95.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:97.4,97.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:109.89,110.16 1 7\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:110.16,112.3 1 3\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:114.2,116.29 3 4\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:116.29,118.3 1 1\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:120.2,120.80 1 3\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:123.82,124.53 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:124.53,124.91 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:127.68,128.32 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:128.32,130.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:132.2,132.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:132.44,134.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:136.2,136.90 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:136.90,140.24 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:140.24,142.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:143.3,146.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:149.2,150.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:150.16,153.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:155.2,155.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:158.85,159.53 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:159.53,159.97 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:162.74,163.32 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:163.32,165.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:167.2,177.39 10 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:177.39,179.50 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:179.50,180.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:180.30,182.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:182.10,184.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:186.8,188.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:190.2,191.54 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:191.54,193.61 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:193.61,194.27 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:194.27,196.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:198.8,200.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:202.2,203.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:203.16,205.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:207.2,209.15 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:212.84,214.64 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:214.64,216.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:216.18,218.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:220.4,220.36 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:223.41,223.64 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:229.82,231.64 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:231.64,233.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:233.18,235.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:237.4,237.36 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:240.41,240.64 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:246.54,247.33 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:247.33,250.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:253.2,260.16 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:260.16,262.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:264.2,268.23 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:268.23,269.63 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:269.63,270.40 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:270.40,271.37 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:271.37,272.11 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:274.5,275.34 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:280.2,280.42 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:283.53,284.46 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:284.46,285.60 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:285.60,287.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:290.2,290.61 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:290.61,292.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:294.2,294.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:297.80,301.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:303.79,305.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:305.16,307.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:309.2,309.82 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:309.82,310.68 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:310.68,311.58 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:311.58,312.63 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:312.63,313.132 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:313.132,314.72 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:314.72,317.8 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:320.5,320.45 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:322.4,322.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:326.2,329.31 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:329.31,329.95 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:333.31,333.114 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:337.2,340.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:343.69,344.72 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:344.72,345.37 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:345.37,347.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:347.9,349.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:351.3,351.17 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:351.17,353.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:355.3,355.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:359.73,361.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:361.16,363.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:365.2,365.38 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:368.72,370.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:370.16,372.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:374.2,374.115 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:374.115,375.68 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:375.68,376.43 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:376.43,378.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:380.4,380.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:385.75,387.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:387.16,389.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:391.2,391.69 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:391.69,392.45 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:392.45,394.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:396.3,396.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:400.74,402.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:402.16,404.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:406.2,407.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:407.16,409.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:411.2,411.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:414.47,415.124 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:415.124,416.67 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:416.67,418.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:418.18,420.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:421.4,421.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:426.76,428.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:428.16,430.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:432.2,434.12 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:437.78,439.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:439.16,441.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:443.2,443.42 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:446.73,456.2 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:458.82,460.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:460.16,462.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:464.2,470.67 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:473.46,474.123 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:474.123,475.68 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:475.68,476.71 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:476.71,477.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:477.44,479.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:482.4,482.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:487.48,488.125 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:488.125,489.68 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:489.68,490.71 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:490.71,491.93 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:491.93,493.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:496.4,496.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:501.80,521.2 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:524.89,526.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:526.16,528.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:530.2,530.46 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:533.77,535.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:535.41,537.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:539.2,540.19 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:540.19,542.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:543.2,544.21 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:544.21,546.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/containers_panel.go:547.2,548.37 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:12.154,13.96 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:13.96,16.27 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:16.27,17.39 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:17.39,19.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:21.4,22.21 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:22.21,24.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:27.4,27.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:27.22,29.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:31.4,31.61 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:31.61,32.69 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:32.69,34.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:35.5,35.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:39.3,45.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:48.2,51.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:54.124,56.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/custom_commands.go:58.122,60.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:9.42,11.9 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:11.9,13.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:15.2,15.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:15.30,17.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:19.2,22.42 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:25.55,29.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:31.169,32.78 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:32.78,34.14 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:34.14,35.73 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:35.73,37.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:39.3,39.17 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:43.44,44.42 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:44.42,46.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:48.2,48.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:51.37,58.18 6 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:58.18,60.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:62.2,64.29 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:68.38,69.35 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:69.35,70.43 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:70.43,72.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:75.2,75.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/filtering.go:78.39,80.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:8.53,9.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:9.14,11.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:13.2,14.8 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:14.8,16.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:18.2,18.18 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:19.22,20.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:21.14,23.13 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:24.16,25.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:26.10,27.59 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:32.56,37.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:39.59,43.64 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:43.64,45.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:47.2,49.49 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:49.49,51.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:53.2,55.106 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:55.106,56.43 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:56.43,58.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:62.2,62.40 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:62.40,64.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:66.2,66.36 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:69.37,73.35 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:73.35,75.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:77.2,79.16 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:79.16,81.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:83.2,83.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:86.55,90.89 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:90.89,92.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:96.39,99.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:99.22,100.90 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:100.90,102.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:106.2,106.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:106.44,108.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:111.2,111.89 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:111.89,113.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:115.2,115.57 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:119.48,123.53 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:123.53,124.65 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:124.65,126.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:129.2,129.39 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:132.46,137.39 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:137.39,140.49 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:140.49,142.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/focus.go:145.2,145.39 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gocui.go:25.52,26.32 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gocui.go:26.32,29.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gocui.go:31.2,32.13 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gocui.go:32.13,34.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gocui.go:35.2,35.27 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gocui.go:39.51,41.27 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gocui.go:41.27,43.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gocui.go:44.2,44.18 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:118.189,147.2 5 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:149.45,157.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:159.72,161.12 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:161.12,164.22 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:164.22,165.34 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:165.34,167.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:169.4,169.18 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:175.29,180.16 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:180.16,182.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:183.2,186.50 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:186.50,188.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:190.2,194.65 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:194.65,196.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:198.2,198.45 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:198.45,200.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:202.2,205.12 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:205.12,206.34 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:206.34,207.18 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:207.18,208.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:210.4,210.58 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:210.58,213.13 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:215.4,215.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:219.2,221.45 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:221.45,223.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:224.2,224.52 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:224.52,226.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:229.2,231.42 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:231.42,233.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:235.2,235.32 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:235.32,238.17 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:238.17,240.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:242.3,242.47 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:242.47,244.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:247.2,253.12 5 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:253.12,261.3 5 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:263.2,264.26 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:264.26,266.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:267.2,267.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:270.29,280.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:282.48,284.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:286.27,287.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:287.12,288.46 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:288.46,290.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:292.2,292.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:292.12,293.60 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:293.60,295.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:297.2,297.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:297.12,298.45 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:298.45,300.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:302.2,302.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:302.12,303.46 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:303.46,305.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:307.2,307.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:307.12,308.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:308.44,310.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:314.70,317.29 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:317.29,318.17 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:318.17,320.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:321.3,322.30 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:325.1,326.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:326.6,329.21 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:329.21,330.11 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:331.22,332.11 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:333.26,335.19 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:336.12,345.19 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:349.3,349.7 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:349.7,350.11 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:351.22,352.11 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:353.34,359.62 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:360.26,362.19 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:369.47,371.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:373.38,375.21 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:375.21,377.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:378.2,378.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:378.26,379.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:379.41,381.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:383.2,383.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:386.57,387.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:387.41,388.102 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:388.102,390.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:392.2,392.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:397.32,398.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:398.29,400.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:402.2,402.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:405.65,406.18 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:406.18,408.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:410.2,411.29 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:411.29,413.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:414.2,414.76 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:417.49,419.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:419.16,421.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:423.2,423.31 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:426.49,427.57 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:427.57,429.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:430.2,430.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:433.72,434.98 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:434.98,437.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:440.48,441.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:441.44,443.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:445.2,446.13 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:449.51,450.46 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:450.46,452.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:453.2,453.21 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:456.42,458.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:460.40,461.38 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:461.38,461.52 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:464.60,469.6 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:469.6,470.10 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:471.21,472.10 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:473.19,474.71 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:474.71,475.35 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:475.35,477.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:486.32,488.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:488.16,489.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:491.2,493.45 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:493.45,494.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/gui.go:497.2,497.17 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:21.73,26.58 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:26.58,34.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:35.63,37.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:45.57,46.50 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:46.50,48.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:50.4,50.50 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:50.50,52.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:54.4,54.24 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:54.24,56.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:58.4,58.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:58.22,60.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:62.4,62.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:68.77,70.32 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:70.32,70.68 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:76.62,86.16 9 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:86.16,88.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:90.2,92.15 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:95.38,96.49 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:96.49,98.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:100.2,100.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:103.44,105.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:105.16,107.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:109.2,111.12 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:114.55,115.79 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:115.79,117.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:119.2,119.32 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:122.75,130.16 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:130.16,132.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:134.2,160.86 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:160.86,166.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:166.26,167.62 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:167.62,169.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:171.5,171.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:176.2,179.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:182.43,183.120 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:183.120,184.67 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:184.67,186.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:186.18,188.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:189.4,189.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:194.78,196.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:196.16,198.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:200.2,206.67 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/images_panel.go:209.76,221.2 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:21.35,24.22 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:25.12,26.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:27.17,28.31 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:32.2,32.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:33.10,34.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:35.10,36.17 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:37.10,38.17 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:39.13,40.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:41.13,42.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:43.13,44.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:45.13,46.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:47.13,48.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:49.13,50.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:53.2,53.31 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:57.52,514.44 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:514.44,523.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:525.2,525.112 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:525.112,535.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:537.2,537.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:537.44,539.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:541.2,543.44 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:543.44,567.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:569.2,569.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:569.44,570.32 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:570.32,578.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:581.2,581.17 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:584.49,587.35 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:587.35,588.107 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:588.107,590.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:593.2,593.73 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:593.73,595.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:597.2,597.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:600.73,601.49 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/keybindings.go:601.49,603.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:10.59,12.34 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:12.34,14.45 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:14.45,16.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:18.3,18.67 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:18.67,22.4 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:23.3,23.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:27.39,29.37 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:29.37,31.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:32.2,32.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:35.65,36.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:36.14,38.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:40.2,40.39 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:40.39,42.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:45.2,47.40 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:50.40,51.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:51.14,53.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:55.2,57.42 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:61.44,69.89 5 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:69.89,73.17 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:73.17,75.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:77.3,77.10 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:77.10,85.4 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:87.3,88.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:88.17,90.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:91.3,101.19 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:104.2,104.57 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:104.57,106.58 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:106.58,108.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:115.2,115.39 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:118.52,119.17 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:119.17,121.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:123.2,124.8 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:124.8,126.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/layout.go:129.67,133.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:9.38,15.2 5 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:17.40,23.49 5 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:23.49,26.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:28.2,29.36 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:29.36,31.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:33.2,33.74 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:36.67,42.2 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:44.68,50.30 5 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:50.30,51.43 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:51.43,53.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:56.2,57.43 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:57.43,59.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:61.2,61.74 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:64.67,67.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:69.66,74.2 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:76.52,81.9 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:81.9,83.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:85.2,86.40 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:89.68,94.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:96.67,99.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:101.41,102.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:102.29,104.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:106.2,108.34 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:108.34,110.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/main_panel.go:112.2,112.40 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:16.71,27.28 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:27.28,29.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:38.61,39.46 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:39.46,41.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:43.2,43.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:43.29,45.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:47.2,47.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:50.41,52.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:52.16,54.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:56.2,56.42 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:59.52,60.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:60.22,64.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:64.26,66.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:70.2,72.34 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:72.34,73.31 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:73.31,75.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:77.3,77.21 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:77.21,79.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:81.3,81.67 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:84.2,84.34 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:84.34,85.45 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:85.45,89.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:92.2,95.55 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:95.55,97.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:99.2,102.40 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:107.43,114.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:116.41,121.47 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:121.47,122.43 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:122.43,124.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:129.3,129.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/menu_panel.go:132.2,132.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:18.77,21.60 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:21.60,29.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:30.67,32.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:43.61,45.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:50.79,51.53 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:51.53,51.93 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:54.68,67.41 12 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:67.41,69.48 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:69.48,71.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:72.8,74.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:76.2,80.15 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:83.40,84.51 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:84.51,86.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:88.2,88.43 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:91.46,93.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:93.16,95.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:97.2,99.12 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:102.77,104.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:104.16,106.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:108.2,120.88 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:120.88,123.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:123.26,124.70 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:124.70,125.45 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:125.45,127.7 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:128.6,128.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:134.2,137.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:140.45,141.122 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:141.122,142.67 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:142.67,144.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:144.18,146.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:147.4,147.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:152.80,154.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:154.16,156.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:158.2,164.67 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/networks_panel.go:167.78,179.2 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:10.55,15.35 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:15.35,16.58 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:16.58,17.28 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:18.12,19.53 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:20.18,21.51 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:27.2,27.25 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:27.25,29.36 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:29.36,30.59 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:30.59,31.48 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:31.48,33.47 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:33.47,34.50 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:34.50,35.18 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:38.6,38.52 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:46.2,47.49 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:50.76,51.32 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:51.32,53.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:55.2,55.88 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:55.88,58.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:58.26,59.27 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:59.27,61.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:63.5,63.33 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/options_menu_panel.go:68.2,72.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels.go:5.45,7.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:22.76,25.60 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:25.60,26.49 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:26.49,44.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:46.5,52.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:54.67,56.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:66.61,68.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:75.40,78.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:80.41,82.46 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:82.46,83.66 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:83.66,85.53 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:85.53,87.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:91.2,91.20 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:94.74,95.53 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:95.53,95.80 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:98.37,113.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:115.74,119.35 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:119.35,135.14 7 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:135.14,137.51 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:137.51,139.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:142.4,142.18 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:147.86,148.53 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:148.53,150.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:153.69,155.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:157.69,159.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:161.31,172.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:175.70,177.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:177.16,179.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/project_panel.go:181.2,181.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:20.77,23.60 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:23.60,51.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:52.67,53.33 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:53.33,55.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:56.5,56.107 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:66.61,67.48 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:67.48,69.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:71.4,71.48 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:71.48,73.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:75.4,75.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:78.21,80.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:84.88,85.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:85.30,86.54 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:86.54,86.83 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:89.2,89.53 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:92.85,93.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:93.30,94.54 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:94.54,94.83 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:97.2,97.50 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:100.78,101.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:101.30,102.54 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:102.54,102.83 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:105.2,105.52 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:108.76,110.64 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:110.64,112.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:112.18,114.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:116.4,116.36 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:119.41,119.64 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:125.77,126.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:126.30,127.54 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:127.54,127.93 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:130.2,130.57 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:139.54,141.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:143.76,145.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:145.16,147.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:149.2,162.82 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:162.82,165.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:165.26,166.70 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:166.70,167.69 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:167.69,169.7 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:171.6,171.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:177.2,180.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:183.71,185.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:185.16,187.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:188.2,188.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:188.30,190.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:192.2,192.46 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:195.70,197.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:197.16,199.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:201.2,201.113 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:201.113,202.68 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:202.68,203.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:203.41,205.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:207.4,207.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:212.68,214.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:214.16,216.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:218.2,218.72 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:218.72,219.38 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:219.38,221.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:223.3,223.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:227.73,229.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:229.16,231.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:233.2,233.69 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:233.69,234.43 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:234.43,236.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:238.3,238.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:242.71,244.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:244.16,246.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:248.2,248.67 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:248.67,249.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:249.41,251.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:253.3,253.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:257.72,259.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:259.16,261.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:263.2,263.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:263.30,265.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:267.2,268.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:268.16,270.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:272.2,272.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:275.82,277.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:277.16,279.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:281.2,282.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:282.16,284.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:286.2,286.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:289.68,290.118 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:290.118,296.73 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:296.73,297.59 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:297.59,299.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:300.4,300.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:305.70,320.26 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:320.26,321.69 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:321.69,322.66 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:322.66,324.7 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:325.6,325.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:332.26,333.69 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:333.69,334.77 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:334.77,336.7 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:337.6,337.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:343.2,343.82 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:343.82,348.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:350.2,353.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:356.77,358.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:358.16,360.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:362.2,379.26 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:379.26,380.72 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:380.72,381.46 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:381.46,383.7 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:384.6,384.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:394.26,395.72 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:395.72,396.70 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:396.70,398.7 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:399.6,399.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:409.26,411.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:415.2,415.82 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:415.82,420.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:422.2,425.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:428.80,430.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:430.16,432.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:434.2,444.44 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:444.44,445.33 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:445.33,447.14 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:449.3,449.48 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:449.48,450.35 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:450.35,453.15 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:458.2,458.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:458.30,460.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:462.2,462.67 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:465.78,470.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:472.76,474.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:474.16,476.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:478.2,479.22 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:479.22,481.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:483.2,483.42 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:486.87,488.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:488.16,490.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:492.2,493.22 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:493.22,495.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/services_panel.go:497.2,497.46 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/subprocess.go:15.52,19.40 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/subprocess.go:19.40,21.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/subprocess.go:23.2,27.39 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/subprocess.go:27.39,29.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/subprocess.go:31.2,33.12 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/subprocess.go:36.43,44.12 6 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/subprocess.go:44.12,48.49 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/subprocess.go:48.49,50.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/subprocess.go:53.2,55.34 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/subprocess.go:55.34,59.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/subprocess.go:61.2,65.22 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:10.62,12.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:34.79,38.35 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:38.35,40.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:43.2,43.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:47.84,53.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:55.55,56.35 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:56.35,62.3 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:68.67,71.36 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:71.36,72.25 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:72.25,74.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:75.3,79.7 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:79.7,80.11 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:81.25,83.11 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:84.22,86.11 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:87.22,89.34 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/tasks_adapter.go:94.2,100.30 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/theme.go:8.60,10.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/theme.go:13.40,19.2 5 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:15.61,18.65 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:18.65,20.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:20.8,22.32 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:22.32,23.36 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:23.36,25.10 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:27.4,27.33 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:27.33,30.5 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:33.2,34.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:34.16,35.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:37.2,38.37 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:41.65,44.46 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:44.46,46.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:46.8,48.32 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:48.32,49.36 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:49.36,51.10 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:53.4,53.33 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:53.33,56.5 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:59.2,60.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:60.16,61.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:63.2,64.37 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:67.33,70.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:74.88,75.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:75.44,77.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:78.2,89.29 9 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:89.29,91.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:91.8,91.34 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:91.34,93.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:95.2,95.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:95.29,98.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:100.2,100.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:100.22,102.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:104.2,105.22 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:105.22,107.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:110.69,112.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:114.44,117.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:119.46,122.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:124.63,128.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:131.70,132.34 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:132.34,134.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:134.17,136.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:137.3,137.43 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:137.43,139.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:140.3,140.43 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:140.43,142.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:143.3,143.34 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:145.2,145.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:148.44,150.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:153.46,155.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:158.52,159.38 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:159.38,161.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:161.17,163.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:164.3,164.34 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:168.73,170.43 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:170.43,172.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:173.2,174.41 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:177.70,179.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:181.43,183.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:185.54,187.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:189.42,192.24 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:192.24,194.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:195.2,195.27 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:198.61,200.32 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:200.32,202.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:203.2,203.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:206.55,212.54 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:212.54,214.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:215.2,216.12 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:219.44,221.28 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:222.14,223.33 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:224.22,225.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:227.2,227.34 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:230.52,232.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:234.42,236.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:238.33,243.2 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:245.111,246.65 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:246.65,248.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:249.2,249.76 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:252.137,253.72 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:253.72,255.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:257.2,262.25 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:262.25,264.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:266.2,266.35 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:266.35,268.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:270.2,272.39 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:272.39,273.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:273.44,275.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:278.2,278.31 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:281.40,282.37 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:282.37,286.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:288.2,290.12 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:293.40,294.37 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:294.37,298.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:300.2,302.12 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:305.93,306.25 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:306.25,307.21 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:307.21,308.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:308.22,310.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:311.4,311.18 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:314.2,314.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:317.93,318.25 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:318.25,319.21 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:319.21,320.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:320.13,322.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:323.4,323.24 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:326.2,326.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:329.43,331.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:333.66,336.48 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:336.48,337.45 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:337.45,339.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:342.2,342.19 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:346.66,349.48 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:349.48,350.45 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:350.45,352.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:355.2,355.19 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:358.57,367.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:369.57,371.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/view_helpers.go:373.54,375.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:19.29,20.27 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:20.27,23.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:25.2,25.24 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:65.61,92.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:94.40,96.56 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:96.56,98.58 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:98.58,100.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:101.3,101.50 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:104.2,118.94 10 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:118.94,120.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:120.8,122.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:124.2,164.12 31 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:167.47,168.92 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:168.92,170.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:172.2,174.12 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:177.48,179.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:179.18,181.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:183.2,184.24 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:184.24,186.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:188.2,189.38 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:192.43,194.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:197.52,198.102 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:198.102,200.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:202.2,202.75 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/views.go:202.75,204.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:18.75,21.59 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:21.59,29.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:30.65,32.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:43.59,44.61 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:44.61,46.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:47.4,47.61 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:47.61,49.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:50.4,50.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:56.76,57.53 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:57.53,57.91 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:60.65,71.33 10 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:71.33,73.42 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:73.42,75.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:76.8,78.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:80.2,80.36 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:80.36,83.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:85.2,85.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:88.39,89.50 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:89.50,91.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:93.2,93.42 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:96.45,98.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:98.16,100.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:102.2,104.12 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:107.76,109.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:109.16,111.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:113.2,132.87 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:132.87,135.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:135.26,136.70 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:136.70,137.56 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:137.56,139.7 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:140.6,140.16 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:146.2,149.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:152.44,153.121 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:153.121,154.67 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:154.67,156.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:156.18,158.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:159.4,159.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:164.79,166.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:166.16,168.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:170.2,176.67 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/volumes_panel.go:179.77,191.2 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/window.go:10.50,12.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/window.go:14.48,16.2 1 0\nmode: atomic\nmode: atomic\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/context_state.go:33.58,34.71 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/context_state.go:34.71,36.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/context_state.go:39.66,41.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/context_state.go:43.61,45.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/context_state.go:47.50,50.20 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/context_state.go:50.20,52.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/context_state.go:54.2,54.53 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/context_state.go:57.50,60.20 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/context_state.go:60.20,62.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/context_state.go:64.2,64.65 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/context_state.go:67.57,69.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:16.55,18.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:20.50,26.30 5 2\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:26.30,28.3 1 4\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:31.63,36.37 4 2\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:36.37,37.22 1 6\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:37.22,39.4 1 3\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:43.57,47.17 3 2\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:47.17,49.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:51.2,51.47 1 2\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:51.47,53.3 1 5\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:56.47,61.2 3 3\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:63.58,67.45 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:67.45,70.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:72.2,72.49 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:76.40,81.2 3 2\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:83.51,87.37 3 3\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:87.37,88.35 1 4\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:88.35,90.4 1 2\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:92.2,92.11 1 1\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:95.45,100.37 4 2\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:100.37,102.3 1 4\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:103.2,103.15 1 2\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/filtered_list.go:106.48,111.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/list_panel.go:14.57,16.25 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/list_panel.go:16.25,18.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/list_panel.go:20.2,20.33 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/list_panel.go:23.50,26.33 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/list_panel.go:26.33,28.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/list_panel.go:32.55,34.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/list_panel.go:36.44,38.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/list_panel.go:40.44,42.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:80.51,85.95 4 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:85.95,87.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:89.2,89.25 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:89.25,91.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:91.17,93.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:96.2,96.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:99.53,101.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:103.52,105.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:105.16,106.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:106.41,108.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:110.3,110.32 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:110.32,111.53 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:111.53,111.83 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:114.3,114.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:117.2,119.33 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:122.59,123.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:123.30,125.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:127.2,128.34 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:128.34,130.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:132.2,138.33 5 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:141.60,145.9 3 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:145.9,148.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:150.2,150.18 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:153.54,157.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:159.54,163.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:165.57,166.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:166.30,168.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:170.2,172.28 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:175.57,176.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:176.30,178.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:180.2,182.28 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:185.41,187.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:189.51,192.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:194.47,197.48 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:197.48,198.47 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:198.47,200.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:202.3,202.67 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:202.67,203.78 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:203.78,205.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:206.6,208.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:210.3,210.25 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:210.25,211.78 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:211.78,213.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:216.3,216.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:219.2,221.29 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:224.52,227.31 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:227.31,229.74 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:229.74,231.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:232.3,233.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:233.17,235.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:236.3,238.29 2 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:238.29,239.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:239.44,241.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:244.3,244.40 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:244.40,246.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:247.3,247.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:250.2,250.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:253.58,254.30 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:254.30,256.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:258.2,258.42 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:261.55,263.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:265.47,266.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:266.22,268.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/gui/panels/side_list_panel.go:270.2,270.20 1 0\nmode: atomic\nmode: atomic\nmode: atomic\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:46.78,48.86 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:48.86,49.100 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:49.100,55.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:56.3,56.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:59.2,59.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:63.34,66.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:69.35,72.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:75.37,78.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:81.37,84.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:87.49,88.24 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:88.24,90.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:93.2,93.33 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:93.33,95.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:97.2,97.35 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:97.35,99.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:101.2,104.17 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:108.84,110.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:110.16,112.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:115.2,115.27 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:115.27,117.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:119.2,119.53 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:123.49,126.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:129.66,131.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:134.68,136.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:136.16,138.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:140.2,140.82 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container.go:144.42,146.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:138.68,143.23 4 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:143.23,145.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:146.2,146.14 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:150.66,152.23 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:152.23,154.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:155.2,155.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:158.82,164.2 4 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:167.64,168.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:168.22,170.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:172.2,172.37 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:172.37,173.48 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:173.48,176.4 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:180.59,184.23 4 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:184.23,186.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/container_stats.go:187.2,187.38 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:66.75,70.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:73.161,75.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:75.16,77.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:79.2,80.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:80.16,82.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:84.2,85.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:85.16,87.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:89.2,113.16 5 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:113.16,116.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:118.2,118.27 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:121.39,123.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:125.71,128.16 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:128.16,134.3 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:136.2,139.21 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:139.21,154.3 5 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:156.2,156.35 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:159.148,164.16 4 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:164.16,166.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:168.2,170.28 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:170.28,172.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:172.8,174.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:174.17,176.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:179.2,181.34 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:184.98,186.35 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:186.35,187.40 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:187.40,188.66 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:188.66,190.15 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:193.3,193.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:198.94,203.16 4 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:203.16,205.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:207.2,209.39 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:209.39,213.56 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:213.56,214.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:214.44,216.10 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:221.3,221.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:221.26,230.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:232.3,234.47 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:234.47,236.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:236.9,238.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:239.3,244.34 5 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:247.2,247.27 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:251.59,252.31 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:252.31,254.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:256.2,258.16 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:258.16,260.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:266.2,268.28 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:268.28,276.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:278.2,278.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:283.79,287.39 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:287.39,289.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:289.17,291.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:291.9,293.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:296.2,296.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:300.58,311.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:314.54,321.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:321.16,323.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:324.2,324.15 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:332.44,335.36 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:335.36,337.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:339.2,340.26 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:340.26,342.53 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:342.53,344.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:345.3,346.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:346.17,348.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:349.3,349.37 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:352.2,352.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:352.26,357.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:359.2,360.22 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:360.22,360.56 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:361.74,361.108 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:364.2,366.16 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:366.16,368.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:369.2,370.9 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:370.9,372.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:373.2,374.9 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:374.9,376.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:378.2,378.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:378.29,380.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/docker.go:388.2,388.31 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/dummies.go:14.37,16.2 1 19\ngithub.com/jesseduffield/lazydocker/pkg/commands/dummies.go:19.44,29.2 2 19\ngithub.com/jesseduffield/lazydocker/pkg/commands/dummies.go:32.34,36.2 3 19\ngithub.com/jesseduffield/lazydocker/pkg/commands/dummies.go:39.45,41.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/dummies.go:44.78,52.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/errors.go:18.33,19.16 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/errors.go:19.16,21.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/errors.go:23.2,23.28 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/errors.go:35.61,39.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/errors.go:42.52,44.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/errors.go:46.39,48.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/errors.go:51.45,53.35 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/errors.go:53.35,55.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/errors.go:56.2,56.14 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:31.70,32.85 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:32.85,34.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:36.2,36.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:39.85,41.25 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:41.25,43.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:45.2,46.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:46.18,48.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:49.2,50.23 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:50.23,52.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:54.2,56.64 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:56.64,60.3 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:62.2,66.18 4 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:66.18,68.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:70.2,75.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:79.49,81.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:81.16,83.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:85.2,85.85 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:85.85,87.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:89.2,92.33 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:96.59,98.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:98.16,100.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:102.2,104.31 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:104.31,107.20 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:107.20,109.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:111.3,114.25 4 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:114.25,118.88 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:118.88,119.40 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:119.40,121.11 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:126.3,135.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:138.2,138.23 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/image.go:142.45,145.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/network.go:23.63,25.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/network.go:25.16,27.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/network.go:29.2,31.35 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/network.go:31.35,40.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/network.go:42.2,42.25 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/network.go:46.47,49.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/network.go:52.34,54.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:42.75,50.2 1 19\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:54.71,56.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:59.74,65.2 5 5\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:68.102,74.2 5 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:77.76,79.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:82.56,85.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:88.71,91.2 2 5\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:94.99,97.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:99.73,102.32 2 2\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:102.32,111.3 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:111.8,113.3 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:115.2,115.86 1 2\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:119.54,122.2 2 3\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:125.50,127.16 2 4\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:127.16,129.3 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:130.2,130.22 1 3\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:130.22,132.3 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:133.2,133.15 1 2\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:136.71,138.16 2 5\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:138.16,142.9 2 3\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:142.9,144.4 1 2\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:145.3,145.28 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:147.2,147.26 1 2\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:151.53,160.2 5 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:163.49,172.2 5 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:176.66,178.18 2 4\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:178.18,180.3 1 3\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:181.2,181.18 1 4\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:181.18,182.50 1 2\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:182.50,184.4 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:186.2,186.18 1 4\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:186.18,188.3 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:190.2,190.51 1 3\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:194.88,196.2 1 3\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:199.50,201.32 2 5\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:201.32,207.3 2 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:207.8,215.3 2 4\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:216.2,216.32 1 5\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:221.52,223.2 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:226.67,228.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:228.16,230.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:231.2,234.16 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:234.16,236.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:237.2,237.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:241.78,243.16 2 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:243.16,246.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:248.2,248.56 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:248.56,251.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:252.2,252.40 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:252.40,255.3 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:257.2,257.28 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:261.51,264.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:267.59,268.41 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:268.41,269.25 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:269.25,271.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:272.3,272.20 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:274.2,274.18 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:280.61,284.16 4 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:284.16,285.26 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:285.26,287.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:288.3,288.31 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:290.2,290.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:294.48,296.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:296.16,298.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:299.2,299.29 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:303.64,305.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:308.66,311.37 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:311.37,313.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:315.2,315.35 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:315.35,317.17 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:317.17,319.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:321.3,321.27 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:327.2,332.27 4 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:332.27,334.13 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:334.13,336.18 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:336.18,338.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:340.4,340.45 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:340.45,342.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:344.4,344.52 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:344.52,345.19 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:345.19,347.6 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:350.4,350.44 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:350.44,352.5 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:354.4,354.13 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:358.2,360.26 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:360.26,362.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:363.2,363.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:367.47,369.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os.go:372.55,374.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/os_default_platform.go:10.30,18.2 1 19\ngithub.com/jesseduffield/lazydocker/pkg/commands/service.go:23.76,25.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/service.go:28.32,30.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/service.go:33.30,35.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/service.go:38.35,40.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/service.go:43.33,45.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/service.go:47.59,53.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/service.go:56.47,58.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/service.go:61.49,72.2 5 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/service.go:75.66,83.2 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/volume.go:23.61,25.16 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/volume.go:25.16,27.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/volume.go:29.2,33.33 3 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/volume.go:33.33,42.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/volume.go:44.2,44.24 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/volume.go:48.46,51.2 2 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/volume.go:54.43,56.2 1 0\nmode: atomic\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:32.53,36.83 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:36.83,38.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:39.39,39.61 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:48.66,52.16 4 3\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:52.16,55.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:58.2,58.23 1 3\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:58.23,60.17 2 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:60.17,62.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:63.3,64.17 2 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:64.17,66.4 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:68.3,68.21 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:70.2,70.26 1 2\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:75.33,75.47 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:85.44,87.2 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:89.117,91.16 2 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:91.16,93.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:94.2,97.16 3 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:97.16,99.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:103.2,108.16 5 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:108.16,110.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:113.2,118.8 2 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:123.87,127.6 3 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:127.6,128.10 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:129.21,130.20 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:131.14,131.14 0 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:134.3,135.17 2 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:135.17,136.12 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:138.3,138.13 1 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:143.79,145.16 2 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:145.16,147.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:148.2,149.12 2 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:152.101,156.16 4 1\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:156.16,158.3 1 0\ngithub.com/jesseduffield/lazydocker/pkg/commands/ssh/ssh.go:159.2,159.17 1 1\nmode: atomic\nmode: atomic\n"
  },
  {
    "path": "docker-compose.yml",
    "content": "services:\n  lazydocker:\n    build:\n      context: https://github.com/jesseduffield/lazydocker.git\n      args:\n        BASE_IMAGE_BUILDER: golang\n        GOARCH: amd64\n        GOARM:\n    image: lazyteam/lazydocker\n    container_name: lazydocker\n    stdin_open: true\n    tty: true\n    volumes:\n      - /var/run/docker.sock:/var/run/docker.sock\n      - ./config:/.config/jesseduffield/lazydocker\n"
  },
  {
    "path": "docs/Config.md",
    "content": "# User Config:\n\n## Opening The User Config\n\nThe location of the user config will differ depending on your OS. You can open it via lazydocker by opening the application, clicking on the 'project' panel at the top left and pressing 'o' (or pressing 'e' if your files open in vim).\n\nChanges to the user config will only take place after closing and re-opening lazydocker\n\n### Locations:\n\n- OSX: `~/Library/Application Support/jesseduffield/lazydocker/config.yml`\n- Linux: `~/.config/lazydocker/config.yml`\n- Windows: `C:\\Users\\<User>\\AppData\\Roaming\\lazydocker\\config.yml`\n\nJSON schema is available for `config.yml` so that IntelliSense in Visual Studio Code\n(completion and error checking) is automatically enabled when the [YAML Red Hat][yaml]\nextension is installed. However, note that automatic schema detection only works\nif your config file is in one of the standard paths mentioned above. If you\noverride the path to the file, you can still make IntelliSense work by adding\n\n```yaml\n# yaml-language-server: $schema=https://json.schemastore.org/lazydocker.json\n```\n\nto the top of your config file or via [Visual Studio Code settings.json config][settings].\n\n[yaml]: https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml\n[settings]: https://github.com/redhat-developer/vscode-yaml#associating-a-schema-to-a-glob-pattern-via-yamlschemas\n\n## Default:\n\n```yml\ngui:\n  scrollHeight: 2\n  language: \"auto\" # one of 'auto' | 'en' | 'pl' | 'nl' | 'de' | 'tr'\n  border: \"rounded\" # one of 'rounded' | 'single' | 'double' | 'hidden'\n  theme:\n    activeBorderColor:\n      - green\n      - bold\n    inactiveBorderColor:\n      - white\n    selectedLineBgColor:\n      - blue\n    optionsTextColor:\n      - blue\n  returnImmediately: false\n  wrapMainPanel: true\n  # Side panel width as a ratio of the screen's width\n  sidePanelWidth: 0.333\n  # Determines whether we show the bottom line (the one containing keybinding\n  # info and the status of the app).\n  showBottomLine: true\n  # When true, increases vertical space used by focused side panel,\n  # creating an accordion effect\n  expandFocusedSidePanel: false\n  # Determines which screen mode will be used on startup\n  screenMode: \"normal\" # one of 'normal' | 'half' | 'fullscreen'\n  # Determines the style of the container status and container health display in the\n  # containers panel. \"long\": full words (default), \"short\": one or two characters,\n  # \"icon\": unicode emoji.\n  containerStatusHealthStyle: \"long\"\nlogs:\n  timestamps: false\n  since: '60m' # set to '' to show all logs\n  tail: '' # set to 200 to show last 200 lines of logs\ncommandTemplates:\n  dockerCompose: docker compose # Determines the Docker Compose command to run, referred to as .DockerCompose in commandTemplates\n  restartService: '{{ .DockerCompose }} restart {{ .Service.Name }}'\n  up:  '{{ .DockerCompose }} up -d'\n  down: '{{ .DockerCompose }} down'\n  downWithVolumes: '{{ .DockerCompose }} down --volumes'\n  upService:  '{{ .DockerCompose }} up -d {{ .Service.Name }}'\n  startService: '{{ .DockerCompose }} start {{ .Service.Name }}'\n  stopService: '{{ .DockerCompose }} stop {{ .Service.Name }}'\n  serviceLogs: '{{ .DockerCompose }} logs --since=60m --follow {{ .Service.Name }}'\n  viewServiceLogs: '{{ .DockerCompose }} logs --follow {{ .Service.Name }}'\n  rebuildService: '{{ .DockerCompose }} up -d --build {{ .Service.Name }}'\n  recreateService: '{{ .DockerCompose }} up -d --force-recreate {{ .Service.Name }}'\n  allLogs: '{{ .DockerCompose }} logs --tail=300 --follow'\n  viewAlLogs: '{{ .DockerCompose }} logs'\n  dockerComposeConfig: '{{ .DockerCompose }} config'\n  checkDockerComposeConfig: '{{ .DockerCompose }} config --quiet'\n  serviceTop: '{{ .DockerCompose }} top {{ .Service.Name }}'\noS:\n  openCommand: open {{filename}}\n  openLinkCommand: open {{link}}\nstats:\n  graphs:\n    - caption: CPU (%)\n      statPath: DerivedStats.CPUPercentage\n      color: blue\n    - caption: Memory (%)\n      statPath: DerivedStats.MemoryPercentage\n      color: green\n```\n\n## To see what all of the config options mean, and what other options you can set, see [here](https://godoc.org/github.com/jesseduffield/lazydocker/pkg/config)\n\n## Color Attributes:\n\nFor color attributes you can choose an array of attributes (with max one color attribute)\nThe available attributes are:\n\n- default\n- black\n- red\n- green\n- yellow\n- blue\n- magenta\n- cyan\n- white\n- bold\n- reverse # useful for high-contrast\n- underline\n\n## Custom Commands\n\nYou can add custom commands like so:\n\n```yaml\ncustomCommands:\n  containers:\n    - name: bash\n      attach: true\n      command: 'docker exec -it {{ .Container.ID }} bash'\n      serviceNames: []\n```\n\nYou may use the following go templates (such as `{{ .Container.ID }}` above) in your commands:\n- `{{ .DockerCompose }}`: the docker compose command (default: `docker-compose`)\n- [`{{ .Container }}`](https://pkg.go.dev/github.com/jesseduffield/lazydocker@v0.20.0/pkg/commands#Container) and its fields. For example: `{{ .Container.Container.ImageID }}`\n- [`{{ .Service }}`](https://pkg.go.dev/github.com/jesseduffield/lazydocker@v0.20.0/pkg/commands#Service) and its fields. For example: `{{ .Service.Name }}`\n\n## Replacements\n\nYou can add replacements like so:\n\n```yaml\nreplacements:\n  imageNamePrefixes:\n    '123456789012.dkr.ecr.us-east-1.amazonaws.com': '<prod>'\n    '923456789999.dkr.ecr.us-east-1.amazonaws.com': '<dev>'\n```\n"
  },
  {
    "path": "docs/keybindings/Keybindings_de.md",
    "content": "_This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run `go run scripts/cheatsheet/main.go generate` from the project root._\n\n# Lazydocker menü\n\n## Projekt\n\n<pre>\n  <kbd>e</kbd>: bearbeite lazydocker Konfiguration\n  <kbd>o</kbd>: öffne lazydocker Konfiguration\n  <kbd>m</kbd>: zeige Protokolle\n  <kbd>enter</kbd>: fokussieren aufs Hauptpanel\n  <kbd>[</kbd>: vorheriges Tab\n  <kbd>]</kbd>: nächstes Tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Container\n\n<pre>\n  <kbd>d</kbd>: entfernen\n  <kbd>e</kbd>: hide/show stopped containers\n  <kbd>p</kbd>: pause\n  <kbd>s</kbd>: anhalten\n  <kbd>r</kbd>: neustarten\n  <kbd>a</kbd>: anbinden\n  <kbd>m</kbd>: zeige Protokolle\n  <kbd>E</kbd>: exec shell\n  <kbd>c</kbd>: führe vordefinierten benutzerdefinierten Befehl aus\n  <kbd>b</kbd>: view bulk commands\n  <kbd>w</kbd>: open in browser (first port is http)\n  <kbd>enter</kbd>: fokussieren aufs Hauptpanel\n  <kbd>[</kbd>: vorheriges Tab\n  <kbd>]</kbd>: nächstes Tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Dienste\n\n<pre>\n  <kbd>u</kbd>: up service\n  <kbd>d</kbd>: entferne Container\n  <kbd>s</kbd>: anhalten\n  <kbd>p</kbd>: pause\n  <kbd>r</kbd>: neustarten\n  <kbd>S</kbd>: start\n  <kbd>a</kbd>: anbinden\n  <kbd>m</kbd>: zeige Protokolle\n  <kbd>U</kbd>: up project\n  <kbd>D</kbd>: down project\n  <kbd>R</kbd>: zeige Neustartoptionen\n  <kbd>c</kbd>: führe vordefinierten benutzerdefinierten Befehl aus\n  <kbd>b</kbd>: view bulk commands\n  <kbd>E</kbd>: exec shell\n  <kbd>w</kbd>: open in browser (first port is http)\n  <kbd>enter</kbd>: fokussieren aufs Hauptpanel\n  <kbd>[</kbd>: vorheriges Tab\n  <kbd>]</kbd>: nächstes Tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Images\n\n<pre>\n  <kbd>c</kbd>: führe vordefinierten benutzerdefinierten Befehl aus\n  <kbd>d</kbd>: entferne Image\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: fokussieren aufs Hauptpanel\n  <kbd>[</kbd>: vorheriges Tab\n  <kbd>]</kbd>: nächstes Tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Volumes\n\n<pre>\n  <kbd>c</kbd>: führe vordefinierten benutzerdefinierten Befehl aus\n  <kbd>d</kbd>: entferne Volume\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: fokussieren aufs Hauptpanel\n  <kbd>[</kbd>: vorheriges Tab\n  <kbd>]</kbd>: nächstes Tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Netzwerk\n\n<pre>\n  <kbd>c</kbd>: führe vordefinierten benutzerdefinierten Befehl aus\n  <kbd>d</kbd>: entferne Netzwerk\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: fokussieren aufs Hauptpanel\n  <kbd>[</kbd>: vorheriges Tab\n  <kbd>]</kbd>: nächstes Tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Haupt\n\n<pre>\n  <kbd>esc</kbd>: zurück\n</pre>\n\n## Global\n\n<pre>\n  <kbd>+</kbd>: next screen mode (normal/half/fullscreen)\n  <kbd>_</kbd>: prev screen mode\n  <kbd>1</kbd>: focus projects panel\n  <kbd>2</kbd>: focus services panel\n  <kbd>3</kbd>: focus containers panel\n  <kbd>4</kbd>: focus images panel\n  <kbd>5</kbd>: focus volumes panel\n  <kbd>6</kbd>: focus networks panel\n</pre>\n"
  },
  {
    "path": "docs/keybindings/Keybindings_en.md",
    "content": "_This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run `go run scripts/cheatsheet/main.go generate` from the project root._\n\n# Lazydocker menu\n\n## Project\n\n<pre>\n  <kbd>e</kbd>: edit lazydocker config\n  <kbd>o</kbd>: open lazydocker config\n  <kbd>m</kbd>: view logs\n  <kbd>enter</kbd>: focus main panel\n  <kbd>[</kbd>: previous tab\n  <kbd>]</kbd>: next tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Containers\n\n<pre>\n  <kbd>d</kbd>: remove\n  <kbd>e</kbd>: hide/show stopped containers\n  <kbd>p</kbd>: pause\n  <kbd>s</kbd>: stop\n  <kbd>r</kbd>: restart\n  <kbd>a</kbd>: attach\n  <kbd>m</kbd>: view logs\n  <kbd>E</kbd>: exec shell\n  <kbd>c</kbd>: run predefined custom command\n  <kbd>b</kbd>: view bulk commands\n  <kbd>w</kbd>: open in browser (first port is http)\n  <kbd>enter</kbd>: focus main panel\n  <kbd>[</kbd>: previous tab\n  <kbd>]</kbd>: next tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Services\n\n<pre>\n  <kbd>u</kbd>: up service\n  <kbd>d</kbd>: remove containers\n  <kbd>s</kbd>: stop\n  <kbd>p</kbd>: pause\n  <kbd>r</kbd>: restart\n  <kbd>S</kbd>: start\n  <kbd>a</kbd>: attach\n  <kbd>m</kbd>: view logs\n  <kbd>U</kbd>: up project\n  <kbd>D</kbd>: down project\n  <kbd>R</kbd>: view restart options\n  <kbd>c</kbd>: run predefined custom command\n  <kbd>b</kbd>: view bulk commands\n  <kbd>E</kbd>: exec shell\n  <kbd>w</kbd>: open in browser (first port is http)\n  <kbd>enter</kbd>: focus main panel\n  <kbd>[</kbd>: previous tab\n  <kbd>]</kbd>: next tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Images\n\n<pre>\n  <kbd>c</kbd>: run predefined custom command\n  <kbd>d</kbd>: remove image\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: focus main panel\n  <kbd>[</kbd>: previous tab\n  <kbd>]</kbd>: next tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Volumes\n\n<pre>\n  <kbd>c</kbd>: run predefined custom command\n  <kbd>d</kbd>: remove volume\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: focus main panel\n  <kbd>[</kbd>: previous tab\n  <kbd>]</kbd>: next tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Networks\n\n<pre>\n  <kbd>c</kbd>: run predefined custom command\n  <kbd>d</kbd>: remove network\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: focus main panel\n  <kbd>[</kbd>: previous tab\n  <kbd>]</kbd>: next tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Main\n\n<pre>\n  <kbd>esc</kbd>: return\n</pre>\n\n## Global\n\n<pre>\n  <kbd>+</kbd>: next screen mode (normal/half/fullscreen)\n  <kbd>_</kbd>: prev screen mode\n  <kbd>1</kbd>: focus projects panel\n  <kbd>2</kbd>: focus services panel\n  <kbd>3</kbd>: focus containers panel\n  <kbd>4</kbd>: focus images panel\n  <kbd>5</kbd>: focus volumes panel\n  <kbd>6</kbd>: focus networks panel\n</pre>\n"
  },
  {
    "path": "docs/keybindings/Keybindings_es.md",
    "content": "_This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run `go run scripts/cheatsheet/main.go generate` from the project root._\n\n# Lazydocker menú\n\n## Proyecto\n\n<pre>\n  <kbd>e</kbd>: editar configuración de lazydocker\n  <kbd>o</kbd>: abrir configuración de lazydocker\n  <kbd>m</kbd>: ver logs\n  <kbd>enter</kbd>: enfocar panel principal\n  <kbd>[</kbd>: anterior pestaña\n  <kbd>]</kbd>: siguiente pestaña\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Contenedores\n\n<pre>\n  <kbd>d</kbd>: borrar\n  <kbd>e</kbd>: esconder/mostrar contenedores parados\n  <kbd>p</kbd>: pausa\n  <kbd>s</kbd>: parar\n  <kbd>r</kbd>: reiniciar\n  <kbd>a</kbd>: attach\n  <kbd>m</kbd>: ver logs\n  <kbd>E</kbd>: ejecutar shell\n  <kbd>c</kbd>: ejecutar comando personalizado\n  <kbd>b</kbd>: ver comandos masivos\n  <kbd>w</kbd>: abrir en navegador (first port is http)\n  <kbd>enter</kbd>: enfocar panel principal\n  <kbd>[</kbd>: anterior pestaña\n  <kbd>]</kbd>: siguiente pestaña\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Servicios\n\n<pre>\n  <kbd>u</kbd>: levantar servicio\n  <kbd>d</kbd>: borrar contenedores\n  <kbd>s</kbd>: parar\n  <kbd>p</kbd>: pausa\n  <kbd>r</kbd>: reiniciar\n  <kbd>S</kbd>: iniciar\n  <kbd>a</kbd>: attach\n  <kbd>m</kbd>: ver logs\n  <kbd>U</kbd>: levantar proyecto\n  <kbd>D</kbd>: dar de baja el proyecto\n  <kbd>R</kbd>: ver opciones de reinicio\n  <kbd>c</kbd>: ejecutar comando personalizado\n  <kbd>b</kbd>: ver comandos masivos\n  <kbd>E</kbd>: ejecutar shell\n  <kbd>w</kbd>: abrir en navegador (first port is http)\n  <kbd>enter</kbd>: enfocar panel principal\n  <kbd>[</kbd>: anterior pestaña\n  <kbd>]</kbd>: siguiente pestaña\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Imágenes\n\n<pre>\n  <kbd>c</kbd>: ejecutar comando personalizado\n  <kbd>d</kbd>: limpiar imagen\n  <kbd>b</kbd>: ver comandos masivos\n  <kbd>enter</kbd>: enfocar panel principal\n  <kbd>[</kbd>: anterior pestaña\n  <kbd>]</kbd>: siguiente pestaña\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Volúmenes\n\n<pre>\n  <kbd>c</kbd>: ejecutar comando personalizado\n  <kbd>d</kbd>: limpiar volúmen\n  <kbd>b</kbd>: ver comandos masivos\n  <kbd>enter</kbd>: enfocar panel principal\n  <kbd>[</kbd>: anterior pestaña\n  <kbd>]</kbd>: siguiente pestaña\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Redes\n\n<pre>\n  <kbd>c</kbd>: ejecutar comando personalizado\n  <kbd>d</kbd>: limpiar red\n  <kbd>b</kbd>: ver comandos masivos\n  <kbd>enter</kbd>: enfocar panel principal\n  <kbd>[</kbd>: anterior pestaña\n  <kbd>]</kbd>: siguiente pestaña\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Inicio\n\n<pre>\n  <kbd>esc</kbd>: regresar\n</pre>\n\n## Global\n\n<pre>\n  <kbd>+</kbd>: next screen mode (normal/half/fullscreen)\n  <kbd>_</kbd>: prev screen mode\n  <kbd>1</kbd>: focus projects panel\n  <kbd>2</kbd>: focus services panel\n  <kbd>3</kbd>: focus containers panel\n  <kbd>4</kbd>: focus images panel\n  <kbd>5</kbd>: focus volumes panel\n  <kbd>6</kbd>: focus networks panel\n</pre>\n"
  },
  {
    "path": "docs/keybindings/Keybindings_fr.md",
    "content": "_This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run `go run scripts/cheatsheet/main.go generate` from the project root._\n\n# Lazydocker menu\n\n## Projet\n\n<pre>\n  <kbd>e</kbd>: modifier la configuration lazydocker\n  <kbd>o</kbd>: ouvrir la configuration lazydocker\n  <kbd>m</kbd>: voir les enregistrements\n  <kbd>enter</kbd>: focus panneau principal\n  <kbd>[</kbd>: onglet précédent\n  <kbd>]</kbd>: onglet suivant\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Conteneurs\n\n<pre>\n  <kbd>d</kbd>: supprimer\n  <kbd>e</kbd>: cacher/montrer les conteneurs arrêtés\n  <kbd>p</kbd>: pause\n  <kbd>s</kbd>: arrêter\n  <kbd>r</kbd>: redémarrer\n  <kbd>a</kbd>: attacher\n  <kbd>m</kbd>: voir les enregistrements\n  <kbd>E</kbd>: exécuter le shell\n  <kbd>c</kbd>: exécuter une commande prédéfinie\n  <kbd>b</kbd>: voir les commandes groupées\n  <kbd>w</kbd>: ouvrir dans le navigateur (le premier port est http)\n  <kbd>enter</kbd>: focus panneau principal\n  <kbd>[</kbd>: onglet précédent\n  <kbd>]</kbd>: onglet suivant\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Services\n\n<pre>\n  <kbd>u</kbd>: up service\n  <kbd>d</kbd>: supprimer les conteneurs\n  <kbd>s</kbd>: arrêter\n  <kbd>p</kbd>: pause\n  <kbd>r</kbd>: redémarrer\n  <kbd>S</kbd>: démarrer\n  <kbd>a</kbd>: attacher\n  <kbd>m</kbd>: voir les enregistrements\n  <kbd>U</kbd>: up project\n  <kbd>D</kbd>: down project\n  <kbd>R</kbd>: voir les options de redémarrage\n  <kbd>c</kbd>: exécuter une commande prédéfinie\n  <kbd>b</kbd>: voir les commandes groupées\n  <kbd>E</kbd>: exécuter le shell\n  <kbd>w</kbd>: ouvrir dans le navigateur (le premier port est http)\n  <kbd>enter</kbd>: focus panneau principal\n  <kbd>[</kbd>: onglet précédent\n  <kbd>]</kbd>: onglet suivant\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Images\n\n<pre>\n  <kbd>c</kbd>: exécuter une commande prédéfinie\n  <kbd>d</kbd>: supprimer l'image\n  <kbd>b</kbd>: voir les commandes groupées\n  <kbd>enter</kbd>: focus panneau principal\n  <kbd>[</kbd>: onglet précédent\n  <kbd>]</kbd>: onglet suivant\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Volumes\n\n<pre>\n  <kbd>c</kbd>: exécuter une commande prédéfinie\n  <kbd>d</kbd>: supprimer le volume\n  <kbd>b</kbd>: voir les commandes groupées\n  <kbd>enter</kbd>: focus panneau principal\n  <kbd>[</kbd>: onglet précédent\n  <kbd>]</kbd>: onglet suivant\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Réseaux\n\n<pre>\n  <kbd>c</kbd>: exécuter une commande prédéfinie\n  <kbd>d</kbd>: supprimer le réseau\n  <kbd>b</kbd>: voir les commandes groupées\n  <kbd>enter</kbd>: focus panneau principal\n  <kbd>[</kbd>: onglet précédent\n  <kbd>]</kbd>: onglet suivant\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Principal\n\n<pre>\n  <kbd>esc</kbd>: retour\n</pre>\n\n## Global\n\n<pre>\n  <kbd>+</kbd>: next screen mode (normal/half/fullscreen)\n  <kbd>_</kbd>: prev screen mode\n  <kbd>1</kbd>: focus projects panel\n  <kbd>2</kbd>: focus services panel\n  <kbd>3</kbd>: focus containers panel\n  <kbd>4</kbd>: focus images panel\n  <kbd>5</kbd>: focus volumes panel\n  <kbd>6</kbd>: focus networks panel\n</pre>\n"
  },
  {
    "path": "docs/keybindings/Keybindings_nl.md",
    "content": "_This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run `go run scripts/cheatsheet/main.go generate` from the project root._\n\n# Lazydocker menu\n\n## Project\n\n<pre>\n  <kbd>e</kbd>: verander de lazydocker configuratie\n  <kbd>o</kbd>: open de lazydocker configuratie\n  <kbd>m</kbd>: bekijk logs\n  <kbd>enter</kbd>: focus hoofdpaneel\n  <kbd>[</kbd>: vorige tab\n  <kbd>]</kbd>: volgende tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Containers\n\n<pre>\n  <kbd>d</kbd>: verwijder\n  <kbd>e</kbd>: verberg gestopte containers\n  <kbd>p</kbd>: pause\n  <kbd>s</kbd>: stop\n  <kbd>r</kbd>: herstart\n  <kbd>a</kbd>: verbinden\n  <kbd>m</kbd>: bekijk logs\n  <kbd>E</kbd>: exec shell\n  <kbd>c</kbd>: draai een vooraf bedacht aangepaste opdracht\n  <kbd>b</kbd>: view bulk commands\n  <kbd>w</kbd>: open in browser (first port is http)\n  <kbd>enter</kbd>: focus hoofdpaneel\n  <kbd>[</kbd>: vorige tab\n  <kbd>]</kbd>: volgende tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Diensten\n\n<pre>\n  <kbd>u</kbd>: up service\n  <kbd>d</kbd>: verwijder containers\n  <kbd>s</kbd>: stop\n  <kbd>p</kbd>: pause\n  <kbd>r</kbd>: herstart\n  <kbd>S</kbd>: start\n  <kbd>a</kbd>: verbinden\n  <kbd>m</kbd>: bekijk logs\n  <kbd>U</kbd>: up project\n  <kbd>D</kbd>: down project\n  <kbd>R</kbd>: bekijk herstart opties\n  <kbd>c</kbd>: draai een vooraf bedacht aangepaste opdracht\n  <kbd>b</kbd>: view bulk commands\n  <kbd>E</kbd>: exec shell\n  <kbd>w</kbd>: open in browser (first port is http)\n  <kbd>enter</kbd>: focus hoofdpaneel\n  <kbd>[</kbd>: vorige tab\n  <kbd>]</kbd>: volgende tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Images\n\n<pre>\n  <kbd>c</kbd>: draai een vooraf bedacht aangepaste opdracht\n  <kbd>d</kbd>: verwijder image\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: focus hoofdpaneel\n  <kbd>[</kbd>: vorige tab\n  <kbd>]</kbd>: volgende tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Volumes\n\n<pre>\n  <kbd>c</kbd>: draai een vooraf bedacht aangepaste opdracht\n  <kbd>d</kbd>: verwijder volume\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: focus hoofdpaneel\n  <kbd>[</kbd>: vorige tab\n  <kbd>]</kbd>: volgende tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Networks\n\n<pre>\n  <kbd>c</kbd>: draai een vooraf bedacht aangepaste opdracht\n  <kbd>d</kbd>: verwijder network\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: focus hoofdpaneel\n  <kbd>[</kbd>: vorige tab\n  <kbd>]</kbd>: volgende tab\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Hoofd\n\n<pre>\n  <kbd>esc</kbd>: terug\n</pre>\n\n## Globaal\n\n<pre>\n  <kbd>+</kbd>: next screen mode (normal/half/fullscreen)\n  <kbd>_</kbd>: prev screen mode\n  <kbd>1</kbd>: focus projects panel\n  <kbd>2</kbd>: focus services panel\n  <kbd>3</kbd>: focus containers panel\n  <kbd>4</kbd>: focus images panel\n  <kbd>5</kbd>: focus volumes panel\n  <kbd>6</kbd>: focus networks panel\n</pre>\n"
  },
  {
    "path": "docs/keybindings/Keybindings_pl.md",
    "content": "_This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run `go run scripts/cheatsheet/main.go generate` from the project root._\n\n# Lazydocker menu\n\n## Projekt\n\n<pre>\n  <kbd>e</kbd>: edytuj konfigurację\n  <kbd>o</kbd>: otwórz konfigurację\n  <kbd>m</kbd>: pokaż logi\n  <kbd>enter</kbd>: skup na głównym panelu\n  <kbd>[</kbd>: poprzednia zakładka\n  <kbd>]</kbd>: następna zakładka\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Kontenery\n\n<pre>\n  <kbd>d</kbd>: usuń\n  <kbd>e</kbd>: hide/show stopped containers\n  <kbd>p</kbd>: pause\n  <kbd>s</kbd>: zatrzymaj\n  <kbd>r</kbd>: restartuj\n  <kbd>a</kbd>: przyczep\n  <kbd>m</kbd>: pokaż logi\n  <kbd>E</kbd>: exec shell\n  <kbd>c</kbd>: wykonaj predefiniowaną własną komende\n  <kbd>b</kbd>: view bulk commands\n  <kbd>w</kbd>: open in browser (first port is http)\n  <kbd>enter</kbd>: skup na głównym panelu\n  <kbd>[</kbd>: poprzednia zakładka\n  <kbd>]</kbd>: następna zakładka\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Serwisy\n\n<pre>\n  <kbd>u</kbd>: up service\n  <kbd>d</kbd>: usuń kontenery\n  <kbd>s</kbd>: zatrzymaj\n  <kbd>p</kbd>: pause\n  <kbd>r</kbd>: restartuj\n  <kbd>S</kbd>: start\n  <kbd>a</kbd>: przyczep\n  <kbd>m</kbd>: pokaż logi\n  <kbd>U</kbd>: up project\n  <kbd>D</kbd>: down project\n  <kbd>R</kbd>: pokaż opcje restartu\n  <kbd>c</kbd>: wykonaj predefiniowaną własną komende\n  <kbd>b</kbd>: view bulk commands\n  <kbd>E</kbd>: exec shell\n  <kbd>w</kbd>: open in browser (first port is http)\n  <kbd>enter</kbd>: skup na głównym panelu\n  <kbd>[</kbd>: poprzednia zakładka\n  <kbd>]</kbd>: następna zakładka\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Obrazy\n\n<pre>\n  <kbd>c</kbd>: wykonaj predefiniowaną własną komende\n  <kbd>d</kbd>: usuń obraz\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: skup na głównym panelu\n  <kbd>[</kbd>: poprzednia zakładka\n  <kbd>]</kbd>: następna zakładka\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Wolumeny\n\n<pre>\n  <kbd>c</kbd>: wykonaj predefiniowaną własną komende\n  <kbd>d</kbd>: usuń wolumen\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: skup na głównym panelu\n  <kbd>[</kbd>: poprzednia zakładka\n  <kbd>]</kbd>: następna zakładka\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Sieci\n\n<pre>\n  <kbd>c</kbd>: wykonaj predefiniowaną własną komende\n  <kbd>d</kbd>: usuń sieci\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: skup na głównym panelu\n  <kbd>[</kbd>: poprzednia zakładka\n  <kbd>]</kbd>: następna zakładka\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Główne\n\n<pre>\n  <kbd>esc</kbd>: powrót\n</pre>\n\n## Globalne\n\n<pre>\n  <kbd>+</kbd>: next screen mode (normal/half/fullscreen)\n  <kbd>_</kbd>: prev screen mode\n  <kbd>1</kbd>: focus projects panel\n  <kbd>2</kbd>: focus services panel\n  <kbd>3</kbd>: focus containers panel\n  <kbd>4</kbd>: focus images panel\n  <kbd>5</kbd>: focus volumes panel\n  <kbd>6</kbd>: focus networks panel\n</pre>\n"
  },
  {
    "path": "docs/keybindings/Keybindings_pt.md",
    "content": "_This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run `go run scripts/cheatsheet/main.go generate` from the project root._\n\n# Lazydocker menu\n\n## Projeto\n\n<pre>\n  <kbd>e</kbd>: editar configuração do lazydocker\n  <kbd>o</kbd>: abrir configuração do lazydocker\n  <kbd>m</kbd>: ver logs\n  <kbd>enter</kbd>: focar no painel principal\n  <kbd>[</kbd>: aba anterior\n  <kbd>]</kbd>: próxima aba\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Contêineres\n\n<pre>\n  <kbd>d</kbd>: remover\n  <kbd>e</kbd>: ocultar/mostrar contêineres parados\n  <kbd>p</kbd>: pausar\n  <kbd>s</kbd>: parar\n  <kbd>r</kbd>: reiniciar\n  <kbd>a</kbd>: anexar\n  <kbd>m</kbd>: ver logs\n  <kbd>E</kbd>: executar shell\n  <kbd>c</kbd>: executar comando personalizado predefinido\n  <kbd>b</kbd>: ver comandos em massa\n  <kbd>w</kbd>: abrir no navegador (primeira porta é http)\n  <kbd>enter</kbd>: focar no painel principal\n  <kbd>[</kbd>: aba anterior\n  <kbd>]</kbd>: próxima aba\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Serviços\n\n<pre>\n  <kbd>u</kbd>: subir serviço\n  <kbd>d</kbd>: remover contêineres\n  <kbd>s</kbd>: parar\n  <kbd>p</kbd>: pausar\n  <kbd>r</kbd>: reiniciar\n  <kbd>S</kbd>: iniciar\n  <kbd>a</kbd>: anexar\n  <kbd>m</kbd>: ver logs\n  <kbd>U</kbd>: subir projeto\n  <kbd>D</kbd>: derrubar projeto\n  <kbd>R</kbd>: ver opções de reinício\n  <kbd>c</kbd>: executar comando personalizado predefinido\n  <kbd>b</kbd>: ver comandos em massa\n  <kbd>E</kbd>: executar shell\n  <kbd>w</kbd>: abrir no navegador (primeira porta é http)\n  <kbd>enter</kbd>: focar no painel principal\n  <kbd>[</kbd>: aba anterior\n  <kbd>]</kbd>: próxima aba\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Imagens\n\n<pre>\n  <kbd>c</kbd>: executar comando personalizado predefinido\n  <kbd>d</kbd>: remover imagem\n  <kbd>b</kbd>: ver comandos em massa\n  <kbd>enter</kbd>: focar no painel principal\n  <kbd>[</kbd>: aba anterior\n  <kbd>]</kbd>: próxima aba\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Volumes\n\n<pre>\n  <kbd>c</kbd>: executar comando personalizado predefinido\n  <kbd>d</kbd>: remover volume\n  <kbd>b</kbd>: ver comandos em massa\n  <kbd>enter</kbd>: focar no painel principal\n  <kbd>[</kbd>: aba anterior\n  <kbd>]</kbd>: próxima aba\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Redes\n\n<pre>\n  <kbd>c</kbd>: executar comando personalizado predefinido\n  <kbd>d</kbd>: remover rede\n  <kbd>b</kbd>: ver comandos em massa\n  <kbd>enter</kbd>: focar no painel principal\n  <kbd>[</kbd>: aba anterior\n  <kbd>]</kbd>: próxima aba\n  <kbd>/</kbd>: filtrar lista\n</pre>\n\n## Principal\n\n<pre>\n  <kbd>esc</kbd>: retornar\n</pre>\n\n## Global\n\n<pre>\n  <kbd>+</kbd>: modo de tela seguinte (normal/meia/tela cheia)\n  <kbd>_</kbd>: modo de tela anterior\n  <kbd>1</kbd>: focus projects panel\n  <kbd>2</kbd>: focus services panel\n  <kbd>3</kbd>: focus containers panel\n  <kbd>4</kbd>: focus images panel\n  <kbd>5</kbd>: focus volumes panel\n  <kbd>6</kbd>: focus networks panel\n</pre>\n"
  },
  {
    "path": "docs/keybindings/Keybindings_tr.md",
    "content": "_This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run `go run scripts/cheatsheet/main.go generate` from the project root._\n\n# Lazydocker menü\n\n## Proje\n\n<pre>\n  <kbd>e</kbd>: lazzydocker ayarlarını düzenle\n  <kbd>o</kbd>: lazydocker ayarlarını aç\n  <kbd>m</kbd>: kayıt defterini görüntüle\n  <kbd>enter</kbd>: ana panele odaklan\n  <kbd>[</kbd>: önceki sekme\n  <kbd>]</kbd>: sonraki sekme\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Konteynerler\n\n<pre>\n  <kbd>d</kbd>: kaldır\n  <kbd>e</kbd>: hide/show stopped containers\n  <kbd>p</kbd>: pause\n  <kbd>s</kbd>: durdur\n  <kbd>r</kbd>: yeniden başlat\n  <kbd>a</kbd>: bağlan/iliştir\n  <kbd>m</kbd>: kayıt defterini görüntüle\n  <kbd>E</kbd>: exec shell\n  <kbd>c</kbd>: önceden tanımlanmış özel komutu çalıştır\n  <kbd>b</kbd>: view bulk commands\n  <kbd>w</kbd>: open in browser (first port is http)\n  <kbd>enter</kbd>: ana panele odaklan\n  <kbd>[</kbd>: önceki sekme\n  <kbd>]</kbd>: sonraki sekme\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Servisler\n\n<pre>\n  <kbd>u</kbd>: up service\n  <kbd>d</kbd>: konteynerleri kaldır\n  <kbd>s</kbd>: durdur\n  <kbd>p</kbd>: pause\n  <kbd>r</kbd>: yeniden başlat\n  <kbd>S</kbd>: start\n  <kbd>a</kbd>: bağlan/iliştir\n  <kbd>m</kbd>: kayıt defterini görüntüle\n  <kbd>U</kbd>: up project\n  <kbd>D</kbd>: down project\n  <kbd>R</kbd>: yeniden başlatma seçeneklerini görüntüle\n  <kbd>c</kbd>: önceden tanımlanmış özel komutu çalıştır\n  <kbd>b</kbd>: view bulk commands\n  <kbd>E</kbd>: exec shell\n  <kbd>w</kbd>: open in browser (first port is http)\n  <kbd>enter</kbd>: ana panele odaklan\n  <kbd>[</kbd>: önceki sekme\n  <kbd>]</kbd>: sonraki sekme\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Imajlar\n\n<pre>\n  <kbd>c</kbd>: önceden tanımlanmış özel komutu çalıştır\n  <kbd>d</kbd>: imajı kaldır\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: ana panele odaklan\n  <kbd>[</kbd>: önceki sekme\n  <kbd>]</kbd>: sonraki sekme\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Alanlar\n\n<pre>\n  <kbd>c</kbd>: önceden tanımlanmış özel komutu çalıştır\n  <kbd>d</kbd>: alanı kaldır\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: ana panele odaklan\n  <kbd>[</kbd>: önceki sekme\n  <kbd>]</kbd>: sonraki sekme\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Ağları\n\n<pre>\n  <kbd>c</kbd>: önceden tanımlanmış özel komutu çalıştır\n  <kbd>d</kbd>: ağı kaldır\n  <kbd>b</kbd>: view bulk commands\n  <kbd>enter</kbd>: ana panele odaklan\n  <kbd>[</kbd>: önceki sekme\n  <kbd>]</kbd>: sonraki sekme\n  <kbd>/</kbd>: filter list\n</pre>\n\n## Ana\n\n<pre>\n  <kbd>esc</kbd>: dönüş\n</pre>\n\n## Global\n\n<pre>\n  <kbd>+</kbd>: next screen mode (normal/half/fullscreen)\n  <kbd>_</kbd>: prev screen mode\n  <kbd>1</kbd>: focus projects panel\n  <kbd>2</kbd>: focus services panel\n  <kbd>3</kbd>: focus containers panel\n  <kbd>4</kbd>: focus images panel\n  <kbd>5</kbd>: focus volumes panel\n  <kbd>6</kbd>: focus networks panel\n</pre>\n"
  },
  {
    "path": "docs/keybindings/Keybindings_zh.md",
    "content": "_This file is auto-generated. To update, make the changes in the pkg/i18n directory and then run `go run scripts/cheatsheet/main.go generate` from the project root._\n\n# Lazydocker 菜单\n\n## 项目\n\n<pre>\n  <kbd>e</kbd>: 编辑lazydocker配置\n  <kbd>o</kbd>: 打开lazydocker配置\n  <kbd>m</kbd>: 查看日志\n  <kbd>enter</kbd>: 聚焦主面板\n  <kbd>[</kbd>: 上一个选项卡\n  <kbd>]</kbd>: 下一个选项卡\n  <kbd>/</kbd>: 过滤列表\n</pre>\n\n## 容器\n\n<pre>\n  <kbd>d</kbd>: 移除\n  <kbd>e</kbd>: 隐藏/显示已停止的容器\n  <kbd>p</kbd>: 暂停\n  <kbd>s</kbd>: 停止\n  <kbd>r</kbd>: 重新启动\n  <kbd>a</kbd>: attach\n  <kbd>m</kbd>: 查看日志\n  <kbd>E</kbd>: 执行shell\n  <kbd>c</kbd>: 运行预定义的自定义命令\n  <kbd>b</kbd>: 查看批量命令\n  <kbd>w</kbd>: 在浏览器中打开(第一个端口为http)\n  <kbd>enter</kbd>: 聚焦主面板\n  <kbd>[</kbd>: 上一个选项卡\n  <kbd>]</kbd>: 下一个选项卡\n  <kbd>/</kbd>: 过滤列表\n</pre>\n\n## 服务\n\n<pre>\n  <kbd>u</kbd>: 启动服务\n  <kbd>d</kbd>: 移除容器\n  <kbd>s</kbd>: 停止\n  <kbd>p</kbd>: 暂停\n  <kbd>r</kbd>: 重新启动\n  <kbd>S</kbd>: 启动项目\n  <kbd>a</kbd>: attach\n  <kbd>m</kbd>: 查看日志\n  <kbd>U</kbd>: 创建并启动容器\n  <kbd>D</kbd>: 停止并移除容器\n  <kbd>R</kbd>: 查看重启选项\n  <kbd>c</kbd>: 运行预定义的自定义命令\n  <kbd>b</kbd>: 查看批量命令\n  <kbd>E</kbd>: 执行shell\n  <kbd>w</kbd>: 在浏览器中打开(第一个端口为http)\n  <kbd>enter</kbd>: 聚焦主面板\n  <kbd>[</kbd>: 上一个选项卡\n  <kbd>]</kbd>: 下一个选项卡\n  <kbd>/</kbd>: 过滤列表\n</pre>\n\n## 镜像\n\n<pre>\n  <kbd>c</kbd>: 运行预定义的自定义命令\n  <kbd>d</kbd>: 移除镜像\n  <kbd>b</kbd>: 查看批量命令\n  <kbd>enter</kbd>: 聚焦主面板\n  <kbd>[</kbd>: 上一个选项卡\n  <kbd>]</kbd>: 下一个选项卡\n  <kbd>/</kbd>: 过滤列表\n</pre>\n\n## 卷\n\n<pre>\n  <kbd>c</kbd>: 运行预定义的自定义命令\n  <kbd>d</kbd>: 移除卷\n  <kbd>b</kbd>: 查看批量命令\n  <kbd>enter</kbd>: 聚焦主面板\n  <kbd>[</kbd>: 上一个选项卡\n  <kbd>]</kbd>: 下一个选项卡\n  <kbd>/</kbd>: 过滤列表\n</pre>\n\n## 网络\n\n<pre>\n  <kbd>c</kbd>: 运行预定义的自定义命令\n  <kbd>d</kbd>: 移除网络\n  <kbd>b</kbd>: 查看批量命令\n  <kbd>enter</kbd>: 聚焦主面板\n  <kbd>[</kbd>: 上一个选项卡\n  <kbd>]</kbd>: 下一个选项卡\n  <kbd>/</kbd>: 过滤列表\n</pre>\n\n## 主要\n\n<pre>\n  <kbd>esc</kbd>: 返回\n</pre>\n\n## 全局\n\n<pre>\n  <kbd>+</kbd>: 下一个屏幕模式（正常/半屏/全屏）\n  <kbd>_</kbd>: 上一个屏幕模式\n  <kbd>1</kbd>: focus projects panel\n  <kbd>2</kbd>: focus services panel\n  <kbd>3</kbd>: focus containers panel\n  <kbd>4</kbd>: focus images panel\n  <kbd>5</kbd>: focus volumes panel\n  <kbd>6</kbd>: focus networks panel\n</pre>\n"
  },
  {
    "path": "go.mod",
    "content": "module github.com/jesseduffield/lazydocker\n\ngo 1.22\n\ntoolchain go1.23.6\n\nrequire (\n\tgithub.com/OpenPeeDeeP/xdg v0.2.1-0.20190312153938-4ba9e1eb294c\n\tgithub.com/boz/go-throttle v0.0.0-20160922054636-fdc4eab740c1\n\tgithub.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21\n\tgithub.com/docker/cli v27.1.1+incompatible\n\tgithub.com/docker/docker v28.5.2+incompatible\n\tgithub.com/fatih/color v1.10.0\n\tgithub.com/go-errors/errors v1.5.1\n\tgithub.com/gookit/color v1.5.0\n\tgithub.com/imdario/mergo v0.3.16\n\tgithub.com/integrii/flaggy v1.4.0\n\tgithub.com/jesseduffield/asciigraph v0.0.0-20190605104717-6d88e39309ee\n\tgithub.com/jesseduffield/gocui v0.3.1-0.20240418080333-8cd33929c513\n\tgithub.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10\n\tgithub.com/jesseduffield/lazycore v0.0.0-20221023210126-718a4caea996\n\tgithub.com/jesseduffield/yaml v0.0.0-20190702115811-b900b7e08b56\n\tgithub.com/mattn/go-runewidth v0.0.15\n\tgithub.com/mcuadros/go-lookup v0.0.0-20171110082742-5650f26be767\n\tgithub.com/mgutz/str v1.2.0\n\tgithub.com/pmezard/go-difflib v1.0.0\n\tgithub.com/samber/lo v1.31.0\n\tgithub.com/sasha-s/go-deadlock v0.3.1\n\tgithub.com/sirupsen/logrus v1.9.3\n\tgithub.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad\n\tgithub.com/stretchr/testify v1.9.0\n\tgolang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1\n)\n\nrequire (\n\tgithub.com/containerd/errdefs v1.0.0 // indirect\n\tgithub.com/containerd/errdefs/pkg v0.3.0 // indirect\n\tgithub.com/moby/sys/atomicwriter v0.1.0 // indirect\n\tgithub.com/moby/sys/sequential v0.6.0 // indirect\n)\n\nrequire (\n\tgithub.com/Microsoft/go-winio v0.6.2 // indirect\n\tgithub.com/containerd/log v0.1.0 // indirect\n\tgithub.com/davecgh/go-spew v1.1.1 // indirect\n\tgithub.com/distribution/reference v0.6.0 // indirect\n\tgithub.com/docker/docker-credential-helpers v0.8.2 // indirect\n\tgithub.com/docker/go-connections v0.5.0 // indirect\n\tgithub.com/docker/go-units v0.5.0 // indirect\n\tgithub.com/felixge/httpsnoop v1.0.4 // indirect\n\tgithub.com/fvbommel/sortorder v1.1.0 // indirect\n\tgithub.com/gdamore/encoding v1.0.1 // indirect\n\tgithub.com/gdamore/tcell/v2 v2.7.4 // indirect\n\tgithub.com/go-logr/logr v1.4.2 // indirect\n\tgithub.com/go-logr/stdr v1.2.2 // indirect\n\tgithub.com/goccy/go-yaml v1.11.0\n\tgithub.com/lucasb-eyer/go-colorful v1.2.0 // indirect\n\tgithub.com/mattn/go-colorable v0.1.8 // indirect\n\tgithub.com/mattn/go-isatty v0.0.12 // indirect\n\tgithub.com/moby/docker-image-spec v1.3.1 // indirect\n\tgithub.com/moby/term v0.5.0 // indirect\n\tgithub.com/morikuni/aec v1.0.0 // indirect\n\tgithub.com/onsi/ginkgo v1.8.0 // indirect\n\tgithub.com/onsi/gomega v1.5.0 // indirect\n\tgithub.com/opencontainers/go-digest v1.0.0 // indirect\n\tgithub.com/opencontainers/image-spec v1.1.0 // indirect\n\tgithub.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect\n\tgithub.com/pkg/errors v0.9.1 // indirect\n\tgithub.com/rivo/uniseg v0.4.7 // indirect\n\tgithub.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect\n\tgo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect\n\tgo.opentelemetry.io/otel v1.28.0 // indirect\n\tgo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0 // indirect\n\tgo.opentelemetry.io/otel/metric v1.28.0 // indirect\n\tgo.opentelemetry.io/otel/sdk v1.28.0 // indirect\n\tgo.opentelemetry.io/otel/trace v1.28.0 // indirect\n\tgolang.org/x/crypto v0.24.0 // indirect\n\tgolang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect\n\tgolang.org/x/sys v0.24.0 // indirect\n\tgolang.org/x/term v0.21.0 // indirect\n\tgolang.org/x/text v0.16.0 // indirect\n\tgolang.org/x/time v0.5.0 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n\tgotest.tools/v3 v3.5.1 // indirect\n)\n"
  },
  {
    "path": "go.sum",
    "content": "github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=\ngithub.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=\ngithub.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=\ngithub.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=\ngithub.com/OpenPeeDeeP/xdg v0.2.1-0.20190312153938-4ba9e1eb294c h1:YDsGA6tou+tAxVe0Dre29iSbQ8TrWdWfwOisKArJT5E=\ngithub.com/OpenPeeDeeP/xdg v0.2.1-0.20190312153938-4ba9e1eb294c/go.mod h1:tMoSueLQlMf0TCldjrJLNIjAc5qAOIcHt5REi88/Ygo=\ngithub.com/boz/go-throttle v0.0.0-20160922054636-fdc4eab740c1 h1:1fx+RA5lk1ZkzPAUP7DEgZnVHYxEcHO77vQO/V8z/2Q=\ngithub.com/boz/go-throttle v0.0.0-20160922054636-fdc4eab740c1/go.mod h1:z0nyIb42Zs97wyX1V+8MbEFhHeTw1OgFQfR6q57ZuHc=\ngithub.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=\ngithub.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=\ngithub.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 h1:tuijfIjZyjZaHq9xDUh0tNitwXshJpbLkqMOJv4H3do=\ngithub.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21/go.mod h1:po7NpZ/QiTKzBKyrsEAxwnTamCoh8uDk/egRpQ7siIc=\ngithub.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI=\ngithub.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M=\ngithub.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE=\ngithub.com/containerd/errdefs/pkg v0.3.0/go.mod h1:NJw6s9HwNuRhnjJhM7pylWwMyAkmCQvQ4GpJHEqRLVk=\ngithub.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=\ngithub.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=\ngithub.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=\ngithub.com/docker/cli v27.1.1+incompatible h1:goaZxOqs4QKxznZjjBWKONQci/MywhtRv2oNn0GkeZE=\ngithub.com/docker/cli v27.1.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=\ngithub.com/docker/docker v28.5.2+incompatible h1:DBX0Y0zAjZbSrm1uzOkdr1onVghKaftjlSWt4AFexzM=\ngithub.com/docker/docker v28.5.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=\ngithub.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo=\ngithub.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=\ngithub.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c=\ngithub.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc=\ngithub.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=\ngithub.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=\ngithub.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg=\ngithub.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=\ngithub.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=\ngithub.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=\ngithub.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=\ngithub.com/fvbommel/sortorder v1.1.0 h1:fUmoe+HLsBTctBDoaBwpQo5N+nrCp8g/BjKb/6ZQmYw=\ngithub.com/fvbommel/sortorder v1.1.0/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=\ngithub.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=\ngithub.com/gdamore/encoding v1.0.1 h1:YzKZckdBL6jVt2Gc+5p82qhrGiqMdG/eNs6Wy0u3Uhw=\ngithub.com/gdamore/encoding v1.0.1/go.mod h1:0Z0cMFinngz9kS1QfMjCP8TY7em3bZYeeklsSDPivEo=\ngithub.com/gdamore/tcell/v2 v2.7.4 h1:sg6/UnTM9jGpZU+oFYAsDahfchWAFW8Xx2yFinNSAYU=\ngithub.com/gdamore/tcell/v2 v2.7.4/go.mod h1:dSXtXTSK0VsW1biw65DZLZ2NKr7j0qP/0J7ONmsraWg=\ngithub.com/go-errors/errors v1.0.2/go.mod h1:psDX2osz5VnTOnFWbDeWwS7yejl+uV3FEWEp4lssFEs=\ngithub.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk=\ngithub.com/go-errors/errors v1.5.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=\ngithub.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=\ngithub.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=\ngithub.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=\ngithub.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=\ngithub.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=\ngithub.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q=\ngithub.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=\ngithub.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no=\ngithub.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=\ngithub.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE=\ngithub.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4=\ngithub.com/goccy/go-yaml v1.11.0 h1:n7Z+zx8S9f9KgzG6KtQKf+kwqXZlLNR2F6018Dgau54=\ngithub.com/goccy/go-yaml v1.11.0/go.mod h1:H+mJrWtjPTJAHvRbV09MCK9xYwODM+wRTVFFTWckfng=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=\ngithub.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=\ngithub.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/gookit/color v1.5.0 h1:1Opow3+BWDwqor78DcJkJCIwnkviFi+rrOANki9BUFw=\ngithub.com/gookit/color v1.5.0/go.mod h1:43aQb+Zerm/BWh2GnrgOQm7ffz7tvQXEKV6BFMl7wAo=\ngithub.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=\ngithub.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=\ngithub.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=\ngithub.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=\ngithub.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=\ngithub.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=\ngithub.com/integrii/flaggy v1.4.0 h1:A1x7SYx4jqu5NSrY14z8Z+0UyX2S5ygfJJrfolWR3zM=\ngithub.com/integrii/flaggy v1.4.0/go.mod h1:tnTxHeTJbah0gQ6/K0RW0J7fMUBk9MCF5blhm43LNpI=\ngithub.com/jesseduffield/asciigraph v0.0.0-20190605104717-6d88e39309ee h1:7Zi/OQlGbMz4MT2V1+prN/gv1C64NDyVb/MbJnS0ZfA=\ngithub.com/jesseduffield/asciigraph v0.0.0-20190605104717-6d88e39309ee/go.mod h1:Z9UKHveKXXgyo8ME7R8yxh/BUTFOK+FgfWKlhy8oOAg=\ngithub.com/jesseduffield/gocui v0.3.1-0.20240418080333-8cd33929c513 h1:Y1bw5iItrsDCumATc/rklIJ/6K+68ieiWZJedhrNuXo=\ngithub.com/jesseduffield/gocui v0.3.1-0.20240418080333-8cd33929c513/go.mod h1:XtEbqCbn45keRXEu+OMZkjN5gw6AEob59afsgHjokZ8=\ngithub.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10 h1:jmpr7KpX2+2GRiE91zTgfq49QvgiqB0nbmlwZ8UnOx0=\ngithub.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10/go.mod h1:aA97kHeNA+sj2Hbki0pvLslmE4CbDyhBeSSTUUnOuVo=\ngithub.com/jesseduffield/lazycore v0.0.0-20221023210126-718a4caea996 h1:CH1en6GpXSwnXl5Ehc4WX1NpS3uw9qbi7o9A4T2YYmA=\ngithub.com/jesseduffield/lazycore v0.0.0-20221023210126-718a4caea996/go.mod h1:qxN4mHOAyeIDLP7IK7defgPClM/z1Kze8VVQiaEjzsQ=\ngithub.com/jesseduffield/yaml v0.0.0-20190702115811-b900b7e08b56 h1:33wSxJWU/f2TAozHYtJ8zqBxEnEVYM+22moLoiAkxvg=\ngithub.com/jesseduffield/yaml v0.0.0-20190702115811-b900b7e08b56/go.mod h1:FZJBwOhE+RXz8EVZfY+xnbCw2cVOwxlK3/aIi581z/s=\ngithub.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=\ngithub.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=\ngithub.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y=\ngithub.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=\ngithub.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=\ngithub.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=\ngithub.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=\ngithub.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=\ngithub.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=\ngithub.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=\ngithub.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=\ngithub.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=\ngithub.com/mcuadros/go-lookup v0.0.0-20171110082742-5650f26be767 h1:BrhJNdEFWGuiJk/3/SwsG5Rex3zjFxYsDi2bpd7382Y=\ngithub.com/mcuadros/go-lookup v0.0.0-20171110082742-5650f26be767/go.mod h1:ct+byCpkFokm4J0tiuAvB8cf2ttm6GcCe89Yr25nGKg=\ngithub.com/mgutz/str v1.2.0 h1:4IzWSdIz9qPQWLfKZ0rJcV0jcUDpxvP4JVZ4GXQyvSw=\ngithub.com/mgutz/str v1.2.0/go.mod h1:w1v0ofgLaJdoD0HpQ3fycxKD1WtxpjSo151pK/31q6w=\ngithub.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=\ngithub.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=\ngithub.com/moby/sys/atomicwriter v0.1.0 h1:kw5D/EqkBwsBFi0ss9v1VG3wIkVhzGvLklJ+w3A14Sw=\ngithub.com/moby/sys/atomicwriter v0.1.0/go.mod h1:Ul8oqv2ZMNHOceF643P6FKPXeCmYtlQMvpizfsSoaWs=\ngithub.com/moby/sys/sequential v0.6.0 h1:qrx7XFUd/5DxtqcoH1h438hF5TmOvzC/lspjy7zgvCU=\ngithub.com/moby/sys/sequential v0.6.0/go.mod h1:uyv8EUTrca5PnDsdMGXhZe6CCe8U/UiTWd+lL+7b/Ko=\ngithub.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=\ngithub.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=\ngithub.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=\ngithub.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=\ngithub.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=\ngithub.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=\ngithub.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/ginkgo v1.8.0 h1:VkHVNpR4iVnU8XQR6DBm8BqYjN7CRzw+xKUbVVbbW9w=\ngithub.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=\ngithub.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo=\ngithub.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=\ngithub.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=\ngithub.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=\ngithub.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=\ngithub.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=\ngithub.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ=\ngithub.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o=\ngithub.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=\ngithub.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=\ngithub.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=\ngithub.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=\ngithub.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=\ngithub.com/samber/lo v1.31.0 h1:Sfa+/064Tdo4SvlohQUQzBhgSer9v/coGvKQI/XLWAM=\ngithub.com/samber/lo v1.31.0/go.mod h1:HLeWcJRRyLKp3+/XBJvOrerCQn9mhdKMHyd7IRlgeQ8=\ngithub.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0=\ngithub.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM=\ngithub.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=\ngithub.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=\ngithub.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad h1:fiWzISvDn0Csy5H0iwgAuJGQTUpVfEMJJd4nRFXogbc=\ngithub.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=\ngithub.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=\ngithub.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=\ngithub.com/thoas/go-funk v0.9.1 h1:O549iLZqPpTUQ10ykd26sZhzD+rmR5pWhuElrhbC20M=\ngithub.com/thoas/go-funk v0.9.1/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q=\ngithub.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8=\ngithub.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs=\ngithub.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA=\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg=\ngo.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo=\ngo.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4=\ngo.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 h1:3Q/xZUyC1BBkualc9ROb4G8qkH90LXEIICcs5zv1OYY=\ngo.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0/go.mod h1:s75jGIWA9OfCMzF0xr+ZgfrB5FEbbV7UuYo32ahUiFI=\ngo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0 h1:j9+03ymgYhPKmeXGk5Zu+cIZOlVzd9Zv7QIiyItjFBU=\ngo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0/go.mod h1:Y5+XiUG4Emn1hTfciPzGPJaSI+RpDts6BnCIir0SLqk=\ngo.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q=\ngo.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s=\ngo.opentelemetry.io/otel/sdk v1.28.0 h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE=\ngo.opentelemetry.io/otel/sdk v1.28.0/go.mod h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg=\ngo.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g=\ngo.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI=\ngo.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=\ngo.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=\ngolang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI=\ngolang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=\ngolang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=\ngolang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=\ngolang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=\ngolang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=\ngolang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=\ngolang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=\ngolang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=\ngolang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=\ngolang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=\ngolang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=\ngolang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg=\ngolang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=\ngolang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=\ngolang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=\ngolang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=\ngolang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=\ngolang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA=\ngolang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=\ngolang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=\ngolang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=\ngolang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=\ngolang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=\ngolang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=\ngolang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=\ngolang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=\ngolang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngoogle.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 h1:0+ozOGcrp+Y8Aq8TLNN2Aliibms5LEzsq99ZZmAGYm0=\ngoogle.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094/go.mod h1:fJ/e3If/Q67Mj99hin0hMhiNyCRmt6BQ2aWIJshUSJw=\ngoogle.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=\ngoogle.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=\ngoogle.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw=\ngoogle.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA=\ngoogle.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=\ngoogle.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=\ngopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=\ngopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=\ngopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=\ngopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=\ngopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=\ngotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=\n"
  },
  {
    "path": "hooks/build",
    "content": "#!/bin/bash\n\ndocker build --build-arg BUILD_DATE=`date -u +\"%Y-%m-%dT%H:%M:%SZ\"` \\\n             --build-arg VCS_REF=`git rev-parse --short HEAD` \\\n             --build-arg VERSION=`git describe --abbrev=0 --tag` \\\n             -t $IMAGE_NAME .\n"
  },
  {
    "path": "main.go",
    "content": "package main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"runtime\"\n\t\"runtime/debug\"\n\n\t\"github.com/docker/docker/client\"\n\t\"github.com/go-errors/errors\"\n\t\"github.com/integrii/flaggy\"\n\t\"github.com/jesseduffield/lazydocker/pkg/app\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/jesseduffield/yaml\"\n\t\"github.com/samber/lo\"\n)\n\nconst DEFAULT_VERSION = \"unversioned\"\n\nvar (\n\tcommit      string\n\tversion     = DEFAULT_VERSION\n\tdate        string\n\tbuildSource = \"unknown\"\n\n\tconfigFlag    = false\n\tdebuggingFlag = false\n\tcomposeFiles  []string\n\tprojectName   string\n)\n\nfunc main() {\n\tupdateBuildInfo()\n\n\tinfo := fmt.Sprintf(\n\t\t\"%s\\nDate: %s\\nBuildSource: %s\\nCommit: %s\\nOS: %s\\nArch: %s\",\n\t\tversion,\n\t\tdate,\n\t\tbuildSource,\n\t\tcommit,\n\t\truntime.GOOS,\n\t\truntime.GOARCH,\n\t)\n\n\tflaggy.SetName(\"lazydocker\")\n\tflaggy.SetDescription(\"The lazier way to manage everything docker\")\n\tflaggy.DefaultParser.AdditionalHelpPrepend = \"https://github.com/jesseduffield/lazydocker\"\n\n\tflaggy.Bool(&configFlag, \"c\", \"config\", \"Print the current default config\")\n\tflaggy.Bool(&debuggingFlag, \"d\", \"debug\", \"a boolean\")\n\tflaggy.StringSlice(&composeFiles, \"f\", \"file\", \"Specify alternate compose files\")\n\tflaggy.String(&projectName, \"p\", \"project\", \"Specify a docker compose project name\")\n\tflaggy.SetVersion(info)\n\n\tflaggy.Parse()\n\n\tif configFlag {\n\t\tvar buf bytes.Buffer\n\t\tencoder := yaml.NewEncoder(&buf)\n\t\terr := encoder.Encode(config.GetDefaultConfig())\n\t\tif err != nil {\n\t\t\tlog.Fatal(err.Error())\n\t\t}\n\t\tfmt.Printf(\"%v\\n\", buf.String())\n\t\tos.Exit(0)\n\t}\n\n\tprojectDir, err := os.Getwd()\n\tif err != nil {\n\t\tlog.Fatal(err.Error())\n\t}\n\n\tappConfig, err := config.NewAppConfig(\"lazydocker\", version, commit, date, buildSource, debuggingFlag, composeFiles, projectDir, projectName)\n\tif err != nil {\n\t\tlog.Fatal(err.Error())\n\t}\n\n\tapp, err := app.NewApp(appConfig)\n\tif err == nil {\n\t\terr = app.Run()\n\t}\n\tapp.Close()\n\n\tif err != nil {\n\t\tif errMessage, known := app.KnownError(err); known {\n\t\t\tlog.Println(errMessage)\n\t\t\tos.Exit(0)\n\t\t}\n\n\t\tif client.IsErrConnectionFailed(err) {\n\t\t\tlog.Println(app.Tr.ConnectionFailed)\n\t\t\tos.Exit(0)\n\t\t}\n\n\t\tnewErr := errors.Wrap(err, 0)\n\t\tstackTrace := newErr.ErrorStack()\n\t\tapp.Log.Error(stackTrace)\n\n\t\tlog.Fatalf(\"%s\\n\\n%s\", app.Tr.ErrorOccurred, stackTrace)\n\t}\n}\n\nfunc updateBuildInfo() {\n\tif version == DEFAULT_VERSION {\n\t\tif buildInfo, ok := debug.ReadBuildInfo(); ok {\n\t\t\trevision, ok := lo.Find(buildInfo.Settings, func(setting debug.BuildSetting) bool {\n\t\t\t\treturn setting.Key == \"vcs.revision\"\n\t\t\t})\n\t\t\tif ok {\n\t\t\t\tcommit = revision.Value\n\t\t\t\t// if lazydocker was built from source we'll show the version as the\n\t\t\t\t// abbreviated commit hash\n\t\t\t\tversion = utils.SafeTruncate(revision.Value, 7)\n\t\t\t}\n\n\t\t\t// if version hasn't been set we assume that neither has the date\n\t\t\ttime, ok := lo.Find(buildInfo.Settings, func(setting debug.BuildSetting) bool {\n\t\t\t\treturn setting.Key == \"vcs.time\"\n\t\t\t})\n\t\t\tif ok {\n\t\t\t\tdate = time.Value\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/app/app.go",
    "content": "package app\n\nimport (\n\t\"io\"\n\t\"strings\"\n\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/i18n\"\n\t\"github.com/jesseduffield/lazydocker/pkg/log\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// App struct\ntype App struct {\n\tclosers []io.Closer\n\n\tConfig        *config.AppConfig\n\tLog           *logrus.Entry\n\tOSCommand     *commands.OSCommand\n\tDockerCommand *commands.DockerCommand\n\tGui           *gui.Gui\n\tTr            *i18n.TranslationSet\n\tErrorChan     chan error\n}\n\n// NewApp bootstrap a new application\nfunc NewApp(config *config.AppConfig) (*App, error) {\n\tapp := &App{\n\t\tclosers:   []io.Closer{},\n\t\tConfig:    config,\n\t\tErrorChan: make(chan error),\n\t}\n\tvar err error\n\tapp.Log = log.NewLogger(config, \"23432119147a4367abf7c0de2aa99a2d\")\n\tapp.Tr, err = i18n.NewTranslationSetFromConfig(app.Log, config.UserConfig.Gui.Language)\n\tif err != nil {\n\t\treturn app, err\n\t}\n\tapp.OSCommand = commands.NewOSCommand(app.Log, config)\n\n\t// here is the place to make use of the docker-compose.yml file in the current directory\n\n\tapp.DockerCommand, err = commands.NewDockerCommand(app.Log, app.OSCommand, app.Tr, app.Config, app.ErrorChan)\n\tif err != nil {\n\t\treturn app, err\n\t}\n\tapp.closers = append(app.closers, app.DockerCommand)\n\tapp.Gui, err = gui.NewGui(app.Log, app.DockerCommand, app.OSCommand, app.Tr, config, app.ErrorChan)\n\tif err != nil {\n\t\treturn app, err\n\t}\n\treturn app, nil\n}\n\nfunc (app *App) Run() error {\n\treturn app.Gui.Run()\n}\n\nfunc (app *App) Close() error {\n\treturn utils.CloseMany(app.closers)\n}\n\ntype errorMapping struct {\n\toriginalError string\n\tnewError      string\n}\n\n// KnownError takes an error and tells us whether it's an error that we know about where we can print a nicely formatted version of it rather than panicking with a stack trace\nfunc (app *App) KnownError(err error) (string, bool) {\n\terrorMessage := err.Error()\n\n\tmappings := []errorMapping{\n\t\t{\n\t\t\toriginalError: \"Got permission denied while trying to connect to the Docker daemon socket\",\n\t\t\tnewError:      app.Tr.CannotAccessDockerSocketError,\n\t\t},\n\t}\n\n\tfor _, mapping := range mappings {\n\t\tif strings.Contains(errorMessage, mapping.originalError) {\n\t\t\treturn mapping.newError, true\n\t\t}\n\t}\n\n\treturn \"\", false\n}\n"
  },
  {
    "path": "pkg/cheatsheet/generate.go",
    "content": "// This \"script\" generates a file called Keybindings_{{.LANG}}.md\n// in current working directory.\n//\n// The content of this generated file is a keybindings cheatsheet.\n//\n// To generate cheatsheet in english run:\n//   LANG=en go run scripts/cheatsheet/main.go generate\n\npackage cheatsheet\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\n\t\"github.com/jesseduffield/lazydocker/pkg/app\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/i18n\"\n)\n\nconst (\n\tgenerateCheatsheetCmd = \"go run scripts/cheatsheet/main.go generate\"\n)\n\ntype bindingSection struct {\n\ttitle    string\n\tbindings []*gui.Binding\n}\n\nfunc Generate() {\n\tgenerateAtDir(GetKeybindingsDir())\n}\n\nfunc generateAtDir(dir string) {\n\tmConfig, err := config.NewAppConfig(\"lazydocker\", \"\", \"\", \"\", \"\", true, nil, \"\", \"\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfor lang := range i18n.GetTranslationSets() {\n\t\tos.Setenv(\"LC_ALL\", lang)\n\t\tmApp, _ := app.NewApp(mConfig)\n\t\tmApp.Gui.SetupFakeGui()\n\n\t\tfile, err := os.Create(dir + \"/Keybindings_\" + lang + \".md\")\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\tbindingSections := getBindingSections(mApp)\n\t\tcontent := formatSections(mApp, bindingSections)\n\t\tcontent = fmt.Sprintf(\n\t\t\t\"_This file is auto-generated. To update, make the changes in the \"+\n\t\t\t\t\"pkg/i18n directory and then run `%s` from the project root._\\n\\n%s\",\n\t\t\tgenerateCheatsheetCmd,\n\t\t\tcontent,\n\t\t)\n\t\twriteString(file, content)\n\t}\n}\n\nfunc writeString(file *os.File, str string) {\n\t_, err := file.WriteString(str)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n}\n\nfunc formatTitle(title string) string {\n\treturn fmt.Sprintf(\"\\n## %s\\n\\n\", title)\n}\n\nfunc formatBinding(binding *gui.Binding) string {\n\treturn fmt.Sprintf(\"  <kbd>%s</kbd>: %s\\n\", binding.GetKey(), binding.Description)\n}\n\nfunc getBindingSections(mApp *app.App) []*bindingSection {\n\tbindingSections := []*bindingSection{}\n\n\tfor _, binding := range mApp.Gui.GetInitialKeybindings() {\n\t\tif binding.Description == \"\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tviewName := binding.ViewName\n\t\tif viewName == \"\" {\n\t\t\tviewName = \"global\"\n\t\t}\n\n\t\ttitleMap := map[string]string{\n\t\t\t\"global\":     mApp.Tr.GlobalTitle,\n\t\t\t\"main\":       mApp.Tr.MainTitle,\n\t\t\t\"project\":    mApp.Tr.ProjectTitle,\n\t\t\t\"services\":   mApp.Tr.ServicesTitle,\n\t\t\t\"containers\": mApp.Tr.ContainersTitle,\n\t\t\t\"images\":     mApp.Tr.ImagesTitle,\n\t\t\t\"volumes\":    mApp.Tr.VolumesTitle,\n\t\t\t\"networks\":   mApp.Tr.NetworksTitle,\n\t\t}\n\n\t\tbindingSections = addBinding(titleMap[viewName], bindingSections, binding)\n\t}\n\n\treturn bindingSections\n}\n\nfunc addBinding(title string, bindingSections []*bindingSection, binding *gui.Binding) []*bindingSection {\n\tif binding.Description == \"\" {\n\t\treturn bindingSections\n\t}\n\n\tfor _, section := range bindingSections {\n\t\tif title == section.title {\n\t\t\tsection.bindings = append(section.bindings, binding)\n\t\t\treturn bindingSections\n\t\t}\n\t}\n\n\tsection := &bindingSection{\n\t\ttitle:    title,\n\t\tbindings: []*gui.Binding{binding},\n\t}\n\n\treturn append(bindingSections, section)\n}\n\nfunc formatSections(mApp *app.App, bindingSections []*bindingSection) string {\n\tcontent := fmt.Sprintf(\"# Lazydocker %s\\n\", mApp.Tr.Menu)\n\n\tfor _, section := range bindingSections {\n\t\tcontent += formatTitle(section.title)\n\t\tcontent += \"<pre>\\n\"\n\t\tfor _, binding := range section.bindings {\n\t\t\tcontent += formatBinding(binding)\n\t\t}\n\t\tcontent += \"</pre>\\n\"\n\t}\n\n\treturn content\n}\n"
  },
  {
    "path": "pkg/cheatsheet/validate.go",
    "content": "package cheatsheet\n\nimport (\n\t\"fmt\"\n\t\"io/fs\"\n\t\"log\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"regexp\"\n\n\t\"github.com/jesseduffield/lazycore/pkg/utils\"\n\t\"github.com/pmezard/go-difflib/difflib\"\n)\n\nfunc Check() {\n\tdir := GetKeybindingsDir()\n\ttmpDir := filepath.Join(os.TempDir(), \"lazydocker_cheatsheet\")\n\n\terr := os.RemoveAll(tmpDir)\n\tif err != nil {\n\t\tlog.Fatalf(\"Error occurred while checking if cheatsheets are up to date: %v\", err)\n\t}\n\tdefer os.RemoveAll(tmpDir)\n\n\tif err = os.Mkdir(tmpDir, 0o700); err != nil {\n\t\tlog.Fatalf(\"Error occurred while checking if cheatsheets are up to date: %v\", err)\n\t}\n\n\tgenerateAtDir(tmpDir)\n\n\tactualContent := obtainContent(dir)\n\texpectedContent := obtainContent(tmpDir)\n\n\tif expectedContent == \"\" {\n\t\tlog.Fatal(\"empty expected content\")\n\t}\n\n\tif actualContent != expectedContent {\n\t\tif err := difflib.WriteUnifiedDiff(os.Stdout, difflib.UnifiedDiff{\n\t\t\tA:        difflib.SplitLines(expectedContent),\n\t\t\tB:        difflib.SplitLines(actualContent),\n\t\t\tFromFile: \"Expected\",\n\t\t\tFromDate: \"\",\n\t\t\tToFile:   \"Actual\",\n\t\t\tToDate:   \"\",\n\t\t\tContext:  1,\n\t\t}); err != nil {\n\t\t\tlog.Fatalf(\"Error occurred while checking if cheatsheets are up to date: %v\", err)\n\t\t}\n\t\tfmt.Printf(\n\t\t\t\"\\nCheatsheets are out of date. Please run `%s` at the project root and commit the changes. \"+\n\t\t\t\t\"If you run the script and no keybindings files are updated as a result, try rebasing onto master\"+\n\t\t\t\t\"and trying again.\\n\",\n\t\t\tgenerateCheatsheetCmd,\n\t\t)\n\t\tos.Exit(1)\n\t}\n\n\tfmt.Println(\"\\nCheatsheets are up to date\")\n}\n\nfunc GetKeybindingsDir() string {\n\treturn utils.GetLazyRootDirectory() + \"/docs/keybindings\"\n}\n\nfunc obtainContent(dir string) string {\n\tre := regexp.MustCompile(`Keybindings_\\w+\\.md$`)\n\n\tcontent := \"\"\n\terr := filepath.WalkDir(dir, func(path string, d fs.DirEntry, err error) error {\n\t\tif re.MatchString(path) {\n\t\t\tbytes, err := os.ReadFile(path)\n\t\t\tif err != nil {\n\t\t\t\tlog.Fatalf(\"Error occurred while checking if cheatsheets are up to date: %v\", err)\n\t\t\t}\n\t\t\tcontent += fmt.Sprintf(\"\\n%s\\n\\n\", filepath.Base(path))\n\t\t\tcontent += string(bytes)\n\t\t}\n\n\t\treturn nil\n\t})\n\tif err != nil {\n\t\tlog.Fatalf(\"Error occurred while checking if cheatsheets are up to date: %v\", err)\n\t}\n\n\treturn content\n}\n"
  },
  {
    "path": "pkg/commands/container.go",
    "content": "package commands\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os/exec\"\n\t\"strings\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/client\"\n\t\"github.com/go-errors/errors\"\n\t\"github.com/jesseduffield/lazydocker/pkg/i18n\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/sasha-s/go-deadlock\"\n\t\"github.com/sirupsen/logrus\"\n\t\"golang.org/x/xerrors\"\n)\n\n// Container : A docker Container\ntype Container struct {\n\tName            string\n\tServiceName     string\n\tContainerNumber string // might make this an int in the future if need be\n\n\t// OneOff tells us if the container is just a job container or is actually bound to the service\n\tOneOff          bool\n\tProjectName     string\n\tID              string\n\tContainer       container.Summary\n\tClient          *client.Client\n\tOSCommand       *OSCommand\n\tLog             *logrus.Entry\n\tStatHistory     []*RecordedStats\n\tDetails         container.InspectResponse\n\tMonitoringStats bool\n\tDockerCommand   LimitedDockerCommand\n\tTr              *i18n.TranslationSet\n\n\tStatsMutex deadlock.Mutex\n}\n\n// Remove removes the container\nfunc (c *Container) Remove(options container.RemoveOptions) error {\n\tc.Log.Warn(fmt.Sprintf(\"removing container %s\", c.Name))\n\tif err := c.Client.ContainerRemove(context.Background(), c.ID, options); err != nil {\n\t\tif strings.Contains(err.Error(), \"Stop the container before attempting removal or force remove\") {\n\t\t\treturn ComplexError{\n\t\t\t\tCode:    MustStopContainer,\n\t\t\t\tMessage: err.Error(),\n\t\t\t\tframe:   xerrors.Caller(1),\n\t\t\t}\n\t\t}\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// Start starts the container\nfunc (c *Container) Start() error {\n\tc.Log.Warn(fmt.Sprintf(\"starting container %s\", c.Name))\n\treturn c.Client.ContainerStart(context.Background(), c.ID, container.StartOptions{})\n}\n\n// Stop stops the container\nfunc (c *Container) Stop() error {\n\tc.Log.Warn(fmt.Sprintf(\"stopping container %s\", c.Name))\n\treturn c.Client.ContainerStop(context.Background(), c.ID, container.StopOptions{})\n}\n\n// Pause pauses the container\nfunc (c *Container) Pause() error {\n\tc.Log.Warn(fmt.Sprintf(\"pausing container %s\", c.Name))\n\treturn c.Client.ContainerPause(context.Background(), c.ID)\n}\n\n// Unpause unpauses the container\nfunc (c *Container) Unpause() error {\n\tc.Log.Warn(fmt.Sprintf(\"unpausing container %s\", c.Name))\n\treturn c.Client.ContainerUnpause(context.Background(), c.ID)\n}\n\n// Restart restarts the container\nfunc (c *Container) Restart() error {\n\tc.Log.Warn(fmt.Sprintf(\"restarting container %s\", c.Name))\n\treturn c.Client.ContainerRestart(context.Background(), c.ID, container.StopOptions{})\n}\n\n// Attach attaches the container\nfunc (c *Container) Attach() (*exec.Cmd, error) {\n\tif !c.DetailsLoaded() {\n\t\treturn nil, errors.New(c.Tr.WaitingForContainerInfo)\n\t}\n\n\t// verify that we can in fact attach to this container\n\tif !c.Details.Config.OpenStdin {\n\t\treturn nil, errors.New(c.Tr.UnattachableContainerError)\n\t}\n\n\tif c.Container.State == \"exited\" {\n\t\treturn nil, errors.New(c.Tr.CannotAttachStoppedContainerError)\n\t}\n\n\tc.Log.Warn(fmt.Sprintf(\"attaching to container %s\", c.Name))\n\t// TODO: use SDK\n\tcmd := c.OSCommand.NewCmd(\"docker\", \"attach\", \"--sig-proxy=false\", c.ID)\n\treturn cmd, nil\n}\n\n// Top returns process information\nfunc (c *Container) Top(ctx context.Context) (container.TopResponse, error) {\n\tdetail, err := c.Inspect()\n\tif err != nil {\n\t\treturn container.TopResponse{}, err\n\t}\n\n\t// check container status\n\tif !detail.State.Running {\n\t\treturn container.TopResponse{}, errors.New(\"container is not running\")\n\t}\n\n\treturn c.Client.ContainerTop(ctx, c.ID, []string{})\n}\n\n// PruneContainers prunes containers\nfunc (c *DockerCommand) PruneContainers() error {\n\t_, err := c.Client.ContainersPrune(context.Background(), filters.Args{})\n\treturn err\n}\n\n// Inspect returns details about the container\nfunc (c *Container) Inspect() (container.InspectResponse, error) {\n\treturn c.Client.ContainerInspect(context.Background(), c.ID)\n}\n\n// RenderTop returns details about the container\nfunc (c *Container) RenderTop(ctx context.Context) (string, error) {\n\tresult, err := c.Top(ctx)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn utils.RenderTable(append([][]string{result.Titles}, result.Processes...))\n}\n\n// DetailsLoaded tells us whether we have yet loaded the details for a container.\n// Sometimes it takes some time for a container to have its details loaded\n// after it starts.\nfunc (c *Container) DetailsLoaded() bool {\n\treturn c.Details.ContainerJSONBase != nil\n}\n"
  },
  {
    "path": "pkg/commands/container_stats.go",
    "content": "package commands\n\nimport (\n\t\"math\"\n\t\"time\"\n)\n\n// RecordedStats contains both the container stats we've received from docker, and our own derived stats  from those container stats. When configuring a graph, you're basically specifying the path of a value in this struct\ntype RecordedStats struct {\n\tClientStats  ContainerStats\n\tDerivedStats DerivedStats\n\tRecordedAt   time.Time\n}\n\n// DerivedStats contains some useful stats that we've calculated based on the raw container stats that we got back from docker\ntype DerivedStats struct {\n\tCPUPercentage    float64\n\tMemoryPercentage float64\n}\n\n// ContainerStats autogenerated at https://mholt.github.io/json-to-go/\ntype ContainerStats struct {\n\tRead      time.Time `json:\"read\"`\n\tPreread   time.Time `json:\"preread\"`\n\tPidsStats struct {\n\t\tCurrent int `json:\"current\"`\n\t} `json:\"pids_stats\"`\n\tBlkioStats struct {\n\t\tIoServiceBytesRecursive []struct {\n\t\t\tMajor int    `json:\"major\"`\n\t\t\tMinor int    `json:\"minor\"`\n\t\t\tOp    string `json:\"op\"`\n\t\t\tValue int    `json:\"value\"`\n\t\t} `json:\"io_service_bytes_recursive\"`\n\t\tIoServicedRecursive []struct {\n\t\t\tMajor int    `json:\"major\"`\n\t\t\tMinor int    `json:\"minor\"`\n\t\t\tOp    string `json:\"op\"`\n\t\t\tValue int    `json:\"value\"`\n\t\t} `json:\"io_serviced_recursive\"`\n\t\tIoQueueRecursive       []interface{} `json:\"io_queue_recursive\"`\n\t\tIoServiceTimeRecursive []interface{} `json:\"io_service_time_recursive\"`\n\t\tIoWaitTimeRecursive    []interface{} `json:\"io_wait_time_recursive\"`\n\t\tIoMergedRecursive      []interface{} `json:\"io_merged_recursive\"`\n\t\tIoTimeRecursive        []interface{} `json:\"io_time_recursive\"`\n\t\tSectorsRecursive       []interface{} `json:\"sectors_recursive\"`\n\t} `json:\"blkio_stats\"`\n\tNumProcs     int      `json:\"num_procs\"`\n\tStorageStats struct{} `json:\"storage_stats\"`\n\tCPUStats     struct {\n\t\tCPUUsage struct {\n\t\t\tTotalUsage        int64   `json:\"total_usage\"`\n\t\t\tPercpuUsage       []int64 `json:\"percpu_usage\"`\n\t\t\tUsageInKernelmode int64   `json:\"usage_in_kernelmode\"`\n\t\t\tUsageInUsermode   int64   `json:\"usage_in_usermode\"`\n\t\t} `json:\"cpu_usage\"`\n\t\tSystemCPUUsage int64 `json:\"system_cpu_usage\"`\n\t\tOnlineCpus     int   `json:\"online_cpus\"`\n\t\tThrottlingData struct {\n\t\t\tPeriods          int `json:\"periods\"`\n\t\t\tThrottledPeriods int `json:\"throttled_periods\"`\n\t\t\tThrottledTime    int `json:\"throttled_time\"`\n\t\t} `json:\"throttling_data\"`\n\t} `json:\"cpu_stats\"`\n\tPrecpuStats struct {\n\t\tCPUUsage struct {\n\t\t\tTotalUsage        int64   `json:\"total_usage\"`\n\t\t\tPercpuUsage       []int64 `json:\"percpu_usage\"`\n\t\t\tUsageInKernelmode int64   `json:\"usage_in_kernelmode\"`\n\t\t\tUsageInUsermode   int64   `json:\"usage_in_usermode\"`\n\t\t} `json:\"cpu_usage\"`\n\t\tSystemCPUUsage int64 `json:\"system_cpu_usage\"`\n\t\tOnlineCpus     int   `json:\"online_cpus\"`\n\t\tThrottlingData struct {\n\t\t\tPeriods          int `json:\"periods\"`\n\t\t\tThrottledPeriods int `json:\"throttled_periods\"`\n\t\t\tThrottledTime    int `json:\"throttled_time\"`\n\t\t} `json:\"throttling_data\"`\n\t} `json:\"precpu_stats\"`\n\tMemoryStats struct {\n\t\tUsage    int `json:\"usage\"`\n\t\tMaxUsage int `json:\"max_usage\"`\n\t\tStats    struct {\n\t\t\tActiveAnon              int   `json:\"active_anon\"`\n\t\t\tActiveFile              int   `json:\"active_file\"`\n\t\t\tCache                   int   `json:\"cache\"`\n\t\t\tDirty                   int   `json:\"dirty\"`\n\t\t\tHierarchicalMemoryLimit int64 `json:\"hierarchical_memory_limit\"`\n\t\t\tHierarchicalMemswLimit  int64 `json:\"hierarchical_memsw_limit\"`\n\t\t\tInactiveAnon            int   `json:\"inactive_anon\"`\n\t\t\tInactiveFile            int   `json:\"inactive_file\"`\n\t\t\tMappedFile              int   `json:\"mapped_file\"`\n\t\t\tPgfault                 int   `json:\"pgfault\"`\n\t\t\tPgmajfault              int   `json:\"pgmajfault\"`\n\t\t\tPgpgin                  int   `json:\"pgpgin\"`\n\t\t\tPgpgout                 int   `json:\"pgpgout\"`\n\t\t\tRss                     int   `json:\"rss\"`\n\t\t\tRssHuge                 int   `json:\"rss_huge\"`\n\t\t\tTotalActiveAnon         int   `json:\"total_active_anon\"`\n\t\t\tTotalActiveFile         int   `json:\"total_active_file\"`\n\t\t\tTotalCache              int   `json:\"total_cache\"`\n\t\t\tTotalDirty              int   `json:\"total_dirty\"`\n\t\t\tTotalInactiveAnon       int   `json:\"total_inactive_anon\"`\n\t\t\tTotalInactiveFile       int   `json:\"total_inactive_file\"`\n\t\t\tTotalMappedFile         int   `json:\"total_mapped_file\"`\n\t\t\tTotalPgfault            int   `json:\"total_pgfault\"`\n\t\t\tTotalPgmajfault         int   `json:\"total_pgmajfault\"`\n\t\t\tTotalPgpgin             int   `json:\"total_pgpgin\"`\n\t\t\tTotalPgpgout            int   `json:\"total_pgpgout\"`\n\t\t\tTotalRss                int   `json:\"total_rss\"`\n\t\t\tTotalRssHuge            int   `json:\"total_rss_huge\"`\n\t\t\tTotalUnevictable        int   `json:\"total_unevictable\"`\n\t\t\tTotalWriteback          int   `json:\"total_writeback\"`\n\t\t\tUnevictable             int   `json:\"unevictable\"`\n\t\t\tWriteback               int   `json:\"writeback\"`\n\t\t} `json:\"stats\"`\n\t\tLimit int64 `json:\"limit\"`\n\t} `json:\"memory_stats\"`\n\tName     string `json:\"name\"`\n\tID       string `json:\"id\"`\n\tNetworks struct {\n\t\tEth0 struct {\n\t\t\tRxBytes   int `json:\"rx_bytes\"`\n\t\t\tRxPackets int `json:\"rx_packets\"`\n\t\t\tRxErrors  int `json:\"rx_errors\"`\n\t\t\tRxDropped int `json:\"rx_dropped\"`\n\t\t\tTxBytes   int `json:\"tx_bytes\"`\n\t\t\tTxPackets int `json:\"tx_packets\"`\n\t\t\tTxErrors  int `json:\"tx_errors\"`\n\t\t\tTxDropped int `json:\"tx_dropped\"`\n\t\t} `json:\"eth0\"`\n\t} `json:\"networks\"`\n}\n\n// CalculateContainerCPUPercentage calculates the cpu usage of the container as a percent of total CPU usage\n// to calculate CPU usage, we take the increase in CPU time from the container since the last poll, divide that by the total increase in CPU time since the last poll, times by the number of cores, and times by 100 to get a percentage\n// I'm not entirely sure why we need to multiply by the number of cores, but the numbers work\nfunc (s *ContainerStats) CalculateContainerCPUPercentage() float64 {\n\tcpuUsageDelta := s.CPUStats.CPUUsage.TotalUsage - s.PrecpuStats.CPUUsage.TotalUsage\n\tcpuTotalUsageDelta := s.CPUStats.SystemCPUUsage - s.PrecpuStats.SystemCPUUsage\n\n\tvalue := float64(cpuUsageDelta*100) / float64(cpuTotalUsageDelta)\n\tif math.IsNaN(value) {\n\t\treturn 0\n\t}\n\treturn value\n}\n\n// CalculateContainerMemoryUsage calculates the memory usage of the container as a percent of total available memory\nfunc (s *ContainerStats) CalculateContainerMemoryUsage() float64 {\n\tvalue := float64(s.MemoryStats.Usage*100) / float64(s.MemoryStats.Limit)\n\tif math.IsNaN(value) {\n\t\treturn 0\n\t}\n\treturn value\n}\n\nfunc (c *Container) appendStats(stats *RecordedStats, maxDuration time.Duration) {\n\tc.StatsMutex.Lock()\n\tdefer c.StatsMutex.Unlock()\n\n\tc.StatHistory = append(c.StatHistory, stats)\n\tc.eraseOldHistory(maxDuration)\n}\n\n// eraseOldHistory removes any history before the user-specified max duration\nfunc (c *Container) eraseOldHistory(maxDuration time.Duration) {\n\tif maxDuration == 0 {\n\t\treturn\n\t}\n\n\tfor i, stat := range c.StatHistory {\n\t\tif time.Since(stat.RecordedAt) < maxDuration {\n\t\t\tc.StatHistory = c.StatHistory[i:]\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (c *Container) GetLastStats() (*RecordedStats, bool) {\n\tc.StatsMutex.Lock()\n\tdefer c.StatsMutex.Unlock()\n\thistory := c.StatHistory\n\tif len(history) == 0 {\n\t\treturn nil, false\n\t}\n\treturn history[len(history)-1], true\n}\n"
  },
  {
    "path": "pkg/commands/container_stats_test.go",
    "content": "package commands\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestCalculateContainerCPUPercentage(t *testing.T) {\n\tcontainer := &ContainerStats{}\n\tcontainer.CPUStats.CPUUsage.TotalUsage = 10\n\tcontainer.CPUStats.SystemCPUUsage = 10\n\tcontainer.PrecpuStats.CPUUsage.TotalUsage = 5\n\tcontainer.PrecpuStats.SystemCPUUsage = 2\n\n\tassert.EqualValues(t, 62.5, container.CalculateContainerCPUPercentage())\n}\n"
  },
  {
    "path": "pkg/commands/docker.go",
    "content": "package commands\n\nimport (\n\t\"bufio\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\togLog \"log\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\tcliconfig \"github.com/docker/cli/cli/config\"\n\tddocker \"github.com/docker/cli/cli/context/docker\"\n\tctxstore \"github.com/docker/cli/cli/context/store\"\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/client\"\n\t\"github.com/imdario/mergo\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands/ssh\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/i18n\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/sasha-s/go-deadlock\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nconst (\n\tdockerHostEnvKey = \"DOCKER_HOST\"\n)\n\n// DockerCommand is our main docker interface\ntype DockerCommand struct {\n\tLog                    *logrus.Entry\n\tOSCommand              *OSCommand\n\tTr                     *i18n.TranslationSet\n\tConfig                 *config.AppConfig\n\tClient                 *client.Client\n\tInDockerComposeProject bool\n\t// LocalProjectName is the compose project name for the directory where lazydocker was launched.\n\tLocalProjectName string\n\tErrorChan        chan error\n\tContainerMutex   deadlock.Mutex\n\tServiceMutex     deadlock.Mutex\n\n\tClosers []io.Closer\n}\n\nvar _ io.Closer = &DockerCommand{}\n\n// LimitedDockerCommand is a stripped-down DockerCommand with just the methods the container/service/image might need\ntype LimitedDockerCommand interface {\n\tNewCommandObject(CommandObject) CommandObject\n}\n\n// CommandObject is what we pass to our template resolvers when we are running a custom command. We do not guarantee that all fields will be populated: just the ones that make sense for the current context\ntype CommandObject struct {\n\tDockerCompose string\n\tService       *Service\n\tContainer     *Container\n\tImage         *Image\n\tVolume        *Volume\n\tNetwork       *Network\n\tProject       *Project\n}\n\n// NewCommandObject takes a command object and returns a default command object with the passed command object merged in\nfunc (c *DockerCommand) NewCommandObject(obj CommandObject) CommandObject {\n\tdefaultObj := CommandObject{DockerCompose: c.Config.UserConfig.CommandTemplates.DockerCompose}\n\t_ = mergo.Merge(&defaultObj, obj)\n\n\t// When operating on a specific project, include -p flag so that\n\t// docker compose targets the correct project.\n\tif obj.Service != nil && obj.Service.ProjectName != \"\" {\n\t\tdefaultObj.DockerCompose = fmt.Sprintf(\"%s -p %s\", defaultObj.DockerCompose, obj.Service.ProjectName)\n\t} else if obj.Project != nil && obj.Project.Name != \"\" {\n\t\tdefaultObj.DockerCompose = fmt.Sprintf(\"%s -p %s\", defaultObj.DockerCompose, obj.Project.Name)\n\t}\n\n\treturn defaultObj\n}\n\n// newDockerClient creates a Docker client with the given host.\n// We avoid using client.FromEnv because it includes WithVersionFromEnv() which\n// sets manualOverride=true when DOCKER_API_VERSION is set, preventing API version\n// negotiation even when WithAPIVersionNegotiation() is specified.\n// Instead, we explicitly configure only what we need, and rely on proper\n// API version negotiation to support older Docker daemons.\n// See https://github.com/jesseduffield/lazydocker/issues/715\nfunc newDockerClient(dockerHost string) (*client.Client, error) {\n\treturn client.NewClientWithOpts(\n\t\tclient.WithTLSClientConfigFromEnv(),\n\t\tclient.WithAPIVersionNegotiation(),\n\t\tclient.WithHost(dockerHost),\n\t)\n}\n\n// NewDockerCommand it runs docker commands\nfunc NewDockerCommand(log *logrus.Entry, osCommand *OSCommand, tr *i18n.TranslationSet, config *config.AppConfig, errorChan chan error) (*DockerCommand, error) {\n\tdockerHost, err := determineDockerHost()\n\tif err != nil {\n\t\togLog.Printf(\"> could not determine host %v\", err)\n\t}\n\n\t// NOTE: Inject the determined docker host to the environment. This allows the\n\t//       `SSHHandler.HandleSSHDockerHost()` to create a local unix socket tunneled\n\t//       over SSH to the specified ssh host.\n\tif strings.HasPrefix(dockerHost, \"ssh://\") {\n\t\tos.Setenv(dockerHostEnvKey, dockerHost)\n\t}\n\n\ttunnelCloser, err := ssh.NewSSHHandler(osCommand).HandleSSHDockerHost()\n\tif err != nil {\n\t\togLog.Fatal(err)\n\t}\n\n\t// Retrieve the docker host from the environment which could have been set by\n\t// the `SSHHandler.HandleSSHDockerHost()` and override `dockerHost`.\n\tdockerHostFromEnv := os.Getenv(dockerHostEnvKey)\n\tif dockerHostFromEnv != \"\" {\n\t\tdockerHost = dockerHostFromEnv\n\t}\n\n\tcli, err := newDockerClient(dockerHost)\n\tif err != nil {\n\t\togLog.Fatal(err)\n\t}\n\n\tdockerCommand := &DockerCommand{\n\t\tLog:                    log,\n\t\tOSCommand:              osCommand,\n\t\tTr:                     tr,\n\t\tConfig:                 config,\n\t\tClient:                 cli,\n\t\tErrorChan:              errorChan,\n\t\tInDockerComposeProject: true,\n\t\tClosers:                []io.Closer{tunnelCloser},\n\t}\n\n\tdockerCommand.setDockerComposeCommand(config)\n\n\terr = osCommand.RunCommand(\n\t\tutils.ApplyTemplate(\n\t\t\tconfig.UserConfig.CommandTemplates.CheckDockerComposeConfig,\n\t\t\tdockerCommand.NewCommandObject(CommandObject{}),\n\t\t),\n\t)\n\tif err != nil {\n\t\tdockerCommand.InDockerComposeProject = false\n\t\tlog.Warn(err.Error())\n\t}\n\n\treturn dockerCommand, nil\n}\n\nfunc (c *DockerCommand) setDockerComposeCommand(config *config.AppConfig) {\n\tif config.UserConfig.CommandTemplates.DockerCompose != \"docker compose\" {\n\t\treturn\n\t}\n\n\t// it's possible that a user is still using docker-compose, so we'll check if 'docker comopose' is available, and if not, we'll fall back to 'docker-compose'\n\terr := c.OSCommand.RunCommand(\"docker compose version\")\n\tif err != nil {\n\t\tconfig.UserConfig.CommandTemplates.DockerCompose = \"docker-compose\"\n\t}\n}\n\nfunc (c *DockerCommand) Close() error {\n\treturn utils.CloseMany(c.Closers)\n}\n\nfunc (c *DockerCommand) CreateClientStatMonitor(container *Container) {\n\tcontainer.MonitoringStats = true\n\tstream, err := c.Client.ContainerStats(context.Background(), container.ID, true)\n\tif err != nil {\n\t\t// not creating error panel because if we've disconnected from docker we'll\n\t\t// have already created an error panel\n\t\tc.Log.Error(err)\n\t\tcontainer.MonitoringStats = false\n\t\treturn\n\t}\n\n\tdefer stream.Body.Close()\n\n\tscanner := bufio.NewScanner(stream.Body)\n\tfor scanner.Scan() {\n\t\tdata := scanner.Bytes()\n\t\tvar stats ContainerStats\n\t\t_ = json.Unmarshal(data, &stats)\n\n\t\trecordedStats := &RecordedStats{\n\t\t\tClientStats: stats,\n\t\t\tDerivedStats: DerivedStats{\n\t\t\t\tCPUPercentage:    stats.CalculateContainerCPUPercentage(),\n\t\t\t\tMemoryPercentage: stats.CalculateContainerMemoryUsage(),\n\t\t\t},\n\t\t\tRecordedAt: time.Now(),\n\t\t}\n\n\t\tcontainer.appendStats(recordedStats, c.Config.UserConfig.Stats.MaxDuration)\n\t}\n\n\tcontainer.MonitoringStats = false\n}\n\nfunc (c *DockerCommand) RefreshContainersAndServices(currentContainers []*Container) ([]*Container, []*Service, error) {\n\tc.ServiceMutex.Lock()\n\tdefer c.ServiceMutex.Unlock()\n\n\tcontainers, err := c.GetContainers(currentContainers)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\t// Derive services from container labels (covers all projects)\n\tservices := c.GetServicesFromContainers(containers)\n\n\tvar composeServices []*Service\n\tif c.InDockerComposeProject {\n\t\tcomposeServices, err = c.GetServices()\n\t\tif err != nil {\n\t\t\tc.Log.Warn(\"Failed to get compose services: \" + err.Error())\n\t\t}\n\t}\n\n\t// Determine the local project name before merging services, since\n\t// mergeServices needs it. We match compose service names against container\n\t// labels to handle cases where the project name differs from the directory\n\t// name (e.g. a `name:` directive in the compose file).\n\tif c.LocalProjectName == \"\" && c.InDockerComposeProject && composeServices != nil {\n\t\tfor _, ctr := range containers {\n\t\t\tif ctr.ProjectName == \"\" || ctr.ServiceName == \"\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfor _, svc := range composeServices {\n\t\t\t\tif ctr.ServiceName == svc.Name {\n\t\t\t\t\tc.LocalProjectName = ctr.ProjectName\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif c.LocalProjectName != \"\" {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Fall back to directory name\n\t\tif c.LocalProjectName == \"\" && c.Config.ProjectDir != \"\" {\n\t\t\tc.LocalProjectName = filepath.Base(c.Config.ProjectDir)\n\t\t}\n\t}\n\n\t// Merge compose services (which include stopped services) with\n\t// container-derived services from all projects\n\tif composeServices != nil {\n\t\tservices = c.mergeServices(services, composeServices)\n\t}\n\n\tc.assignContainersToServices(containers, services)\n\n\treturn containers, services, nil\n}\n\n// GetServicesFromContainers derives services from container labels for all projects\nfunc (c *DockerCommand) GetServicesFromContainers(containers []*Container) []*Service {\n\t// Use project+service as key to avoid duplicates\n\ttype serviceKey struct {\n\t\tproject string\n\t\tservice string\n\t}\n\tseen := make(map[serviceKey]bool)\n\tservices := make([]*Service, 0, len(containers))\n\n\tfor _, ctr := range containers {\n\t\tif ctr.ServiceName == \"\" || ctr.OneOff {\n\t\t\tcontinue\n\t\t}\n\t\tkey := serviceKey{project: ctr.ProjectName, service: ctr.ServiceName}\n\t\tif seen[key] {\n\t\t\tcontinue\n\t\t}\n\t\tseen[key] = true\n\t\tservices = append(services, &Service{\n\t\t\tName:          ctr.ServiceName,\n\t\t\tID:            ctr.ProjectName + \"-\" + ctr.ServiceName,\n\t\t\tProjectName:   ctr.ProjectName,\n\t\t\tOSCommand:     c.OSCommand,\n\t\t\tLog:           c.Log,\n\t\t\tDockerCommand: c,\n\t\t})\n\t}\n\n\treturn services\n}\n\n// mergeServices merges compose services (which may lack ProjectName) with\n// container-derived services. Compose services take priority because they\n// include services without running containers.\nfunc (c *DockerCommand) mergeServices(containerServices []*Service, composeServices []*Service) []*Service {\n\t// Set project name on compose services\n\tfor _, svc := range composeServices {\n\t\tif svc.ProjectName == \"\" {\n\t\t\tsvc.ProjectName = c.LocalProjectName\n\t\t}\n\t}\n\n\t// Build a set of compose service names for the local project\n\tcomposeServiceNames := make(map[string]bool)\n\tfor _, svc := range composeServices {\n\t\tcomposeServiceNames[svc.Name] = true\n\t}\n\n\t// Start with compose services, then add container-derived services\n\t// that aren't already covered by compose (i.e. from other projects)\n\tresult := make([]*Service, 0, len(composeServices)+len(containerServices))\n\tresult = append(result, composeServices...)\n\n\tfor _, svc := range containerServices {\n\t\tif svc.ProjectName == c.LocalProjectName && composeServiceNames[svc.Name] {\n\t\t\tcontinue // already covered by compose service\n\t\t}\n\t\tresult = append(result, svc)\n\t}\n\n\treturn result\n}\n\n// GetProjectNames returns all unique project names from containers\nfunc (c *DockerCommand) GetProjectNames(containers []*Container) []string {\n\tseen := make(map[string]bool)\n\tvar names []string\n\tfor _, ctr := range containers {\n\t\tif ctr.ProjectName != \"\" && !seen[ctr.ProjectName] {\n\t\t\tseen[ctr.ProjectName] = true\n\t\t\tnames = append(names, ctr.ProjectName)\n\t\t}\n\t}\n\tsort.Strings(names)\n\treturn names\n}\n\nfunc (c *DockerCommand) assignContainersToServices(containers []*Container, services []*Service) {\nL:\n\tfor _, service := range services {\n\t\tfor _, ctr := range containers {\n\t\t\tif !ctr.OneOff && ctr.ServiceName == service.Name && ctr.ProjectName == service.ProjectName {\n\t\t\t\tservice.Container = ctr\n\t\t\t\tcontinue L\n\t\t\t}\n\t\t}\n\t\tservice.Container = nil\n\t}\n}\n\n// GetContainers gets the docker containers\nfunc (c *DockerCommand) GetContainers(existingContainers []*Container) ([]*Container, error) {\n\tc.ContainerMutex.Lock()\n\tdefer c.ContainerMutex.Unlock()\n\n\tcontainers, err := c.Client.ContainerList(context.Background(), container.ListOptions{All: true})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\townContainers := make([]*Container, len(containers))\n\n\tfor i, ctr := range containers {\n\t\tvar newContainer *Container\n\n\t\t// check if we already have data stored against the container\n\t\tfor _, existingContainer := range existingContainers {\n\t\t\tif existingContainer.ID == ctr.ID {\n\t\t\t\tnewContainer = existingContainer\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// initialise the container if it's completely new\n\t\tif newContainer == nil {\n\t\t\tnewContainer = &Container{\n\t\t\t\tID:            ctr.ID,\n\t\t\t\tClient:        c.Client,\n\t\t\t\tOSCommand:     c.OSCommand,\n\t\t\t\tLog:           c.Log,\n\t\t\t\tDockerCommand: c,\n\t\t\t\tTr:            c.Tr,\n\t\t\t}\n\t\t}\n\n\t\tnewContainer.Container = ctr\n\t\t// if the container is made with a name label we will use that\n\t\tif name, ok := ctr.Labels[\"name\"]; ok {\n\t\t\tnewContainer.Name = name\n\t\t} else {\n\t\t\tif len(ctr.Names) > 0 {\n\t\t\t\tnewContainer.Name = strings.TrimLeft(ctr.Names[0], \"/\")\n\t\t\t} else {\n\t\t\t\tnewContainer.Name = ctr.ID\n\t\t\t}\n\t\t}\n\t\tnewContainer.ServiceName = ctr.Labels[\"com.docker.compose.service\"]\n\t\tnewContainer.ProjectName = ctr.Labels[\"com.docker.compose.project\"]\n\t\tnewContainer.ContainerNumber = ctr.Labels[\"com.docker.compose.container\"]\n\t\tnewContainer.OneOff = ctr.Labels[\"com.docker.compose.oneoff\"] == \"True\"\n\n\t\townContainers[i] = newContainer\n\t}\n\n\tc.SetContainerDetails(ownContainers)\n\n\treturn ownContainers, nil\n}\n\n// GetServices gets services\nfunc (c *DockerCommand) GetServices() ([]*Service, error) {\n\tif !c.InDockerComposeProject {\n\t\treturn nil, nil\n\t}\n\n\tcomposeCommand := c.Config.UserConfig.CommandTemplates.DockerCompose\n\toutput, err := c.OSCommand.RunCommandWithOutput(fmt.Sprintf(\"%s config --services\", composeCommand))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// output looks like:\n\t// service1\n\t// service2\n\n\tlines := utils.SplitLines(output)\n\tservices := make([]*Service, len(lines))\n\tfor i, str := range lines {\n\t\tservices[i] = &Service{\n\t\t\tName:          str,\n\t\t\tID:            c.LocalProjectName + \"-\" + str,\n\t\t\tProjectName:   c.LocalProjectName,\n\t\t\tOSCommand:     c.OSCommand,\n\t\t\tLog:           c.Log,\n\t\t\tDockerCommand: c,\n\t\t}\n\t}\n\n\treturn services, nil\n}\n\nfunc (c *DockerCommand) RefreshContainerDetails(containers []*Container) error {\n\tc.ContainerMutex.Lock()\n\tdefer c.ContainerMutex.Unlock()\n\n\tc.SetContainerDetails(containers)\n\n\treturn nil\n}\n\n// Attaches the details returned from docker inspect to each of the containers\n// this contains a bit more info than what you get from the go-docker client\nfunc (c *DockerCommand) SetContainerDetails(containers []*Container) {\n\twg := sync.WaitGroup{}\n\tfor _, ctr := range containers {\n\t\tctr := ctr\n\t\twg.Add(1)\n\t\tgo func() {\n\t\t\tdetails, err := c.Client.ContainerInspect(context.Background(), ctr.ID)\n\t\t\tif err != nil {\n\t\t\t\tc.Log.Error(err)\n\t\t\t} else {\n\t\t\t\tctr.Details = details\n\t\t\t}\n\t\t\twg.Done()\n\t\t}()\n\t}\n\twg.Wait()\n}\n\n// ViewAllLogs attaches to a subprocess viewing all the logs from docker-compose\nfunc (c *DockerCommand) ViewAllLogs(project *Project) (*exec.Cmd, error) {\n\tcmd := c.OSCommand.ExecutableFromString(\n\t\tutils.ApplyTemplate(\n\t\t\tc.OSCommand.Config.UserConfig.CommandTemplates.ViewAllLogs,\n\t\t\tc.NewCommandObject(CommandObject{Project: project}),\n\t\t),\n\t)\n\n\tc.OSCommand.PrepareForChildren(cmd)\n\n\treturn cmd, nil\n}\n\n// DockerComposeConfig returns the result of 'docker-compose config'\nfunc (c *DockerCommand) DockerComposeConfig() string {\n\treturn c.DockerComposeConfigForProject(nil)\n}\n\n// DockerComposeConfigForProject returns the result of 'docker-compose config' for a specific project\nfunc (c *DockerCommand) DockerComposeConfigForProject(project *Project) string {\n\toutput, err := c.OSCommand.RunCommandWithOutput(\n\t\tutils.ApplyTemplate(\n\t\t\tc.OSCommand.Config.UserConfig.CommandTemplates.DockerComposeConfig,\n\t\t\tc.NewCommandObject(CommandObject{Project: project}),\n\t\t),\n\t)\n\tif err != nil {\n\t\toutput = err.Error()\n\t}\n\treturn output\n}\n\n// determineDockerHost tries to the determine the docker host that we should connect to\n// in the following order of decreasing precedence:\n//   - value of \"DOCKER_HOST\" environment variable\n//   - host retrieved from the current context (specified via DOCKER_CONTEXT)\n//   - \"default docker host\" for the host operating system, otherwise\nfunc determineDockerHost() (string, error) {\n\t// If the docker host is explicitly set via the \"DOCKER_HOST\" environment variable,\n\t// then its a no-brainer :shrug:\n\tif os.Getenv(\"DOCKER_HOST\") != \"\" {\n\t\treturn os.Getenv(\"DOCKER_HOST\"), nil\n\t}\n\n\tcurrentContext := os.Getenv(\"DOCKER_CONTEXT\")\n\tif currentContext == \"\" {\n\t\tcf, err := cliconfig.Load(cliconfig.Dir())\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tcurrentContext = cf.CurrentContext\n\t}\n\n\t// On some systems (windows) `default` is stored in the docker config as the currentContext.\n\tif currentContext == \"\" || currentContext == \"default\" {\n\t\t// If a docker context is neither specified via the \"DOCKER_CONTEXT\" environment variable nor via the\n\t\t// $HOME/.docker/config file, then we fall back to connecting to the \"default docker host\" meant for\n\t\t// the host operating system.\n\t\treturn defaultDockerHost, nil\n\t}\n\n\tstoreConfig := ctxstore.NewConfig(\n\t\tfunc() interface{} { return &ddocker.EndpointMeta{} },\n\t\tctxstore.EndpointTypeGetter(ddocker.DockerEndpoint, func() interface{} { return &ddocker.EndpointMeta{} }),\n\t)\n\n\tst := ctxstore.New(cliconfig.ContextStoreDir(), storeConfig)\n\tmd, err := st.GetMetadata(currentContext)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdockerEP, ok := md.Endpoints[ddocker.DockerEndpoint]\n\tif !ok {\n\t\treturn \"\", err\n\t}\n\tdockerEPMeta, ok := dockerEP.(ddocker.EndpointMeta)\n\tif !ok {\n\t\treturn \"\", fmt.Errorf(\"expected docker.EndpointMeta, got %T\", dockerEP)\n\t}\n\n\tif dockerEPMeta.Host != \"\" {\n\t\treturn dockerEPMeta.Host, nil\n\t}\n\n\t// We might end up here, if the context was created with the `host` set to an empty value (i.e. '').\n\t// For example:\n\t// ```sh\n\t// docker context create foo --docker \"host=\"\n\t// ```\n\t// In such scenario, we mimic the `docker` cli and try to connect to the \"default docker host\".\n\treturn defaultDockerHost, nil\n}\n"
  },
  {
    "path": "pkg/commands/docker_host_unix.go",
    "content": "//go:build !windows\n\npackage commands\n\nconst (\n\tdefaultDockerHost = \"unix:///var/run/docker.sock\"\n)\n"
  },
  {
    "path": "pkg/commands/docker_host_windows.go",
    "content": "package commands\n\nconst (\n\tdefaultDockerHost = \"npipe:////./pipe/docker_engine\"\n)\n"
  },
  {
    "path": "pkg/commands/docker_test.go",
    "content": "package commands\n\nimport (\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/docker/docker/client\"\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// TestNewDockerClientVersionNegotiation verifies that newDockerClient allows\n// API version negotiation even when DOCKER_API_VERSION is set.\n//\n// This is a regression test for https://github.com/jesseduffield/lazydocker/issues/715\n// where users got \"client version 1.25 is too old\" errors because FromEnv()\n// includes WithVersionFromEnv() which sets manualOverride=true, preventing\n// API version negotiation.\nfunc TestNewDockerClientVersionNegotiation(t *testing.T) {\n\t// Save original env var and restore after test\n\toriginalAPIVersion := os.Getenv(\"DOCKER_API_VERSION\")\n\tdefer func() {\n\t\tif originalAPIVersion == \"\" {\n\t\t\tos.Unsetenv(\"DOCKER_API_VERSION\")\n\t\t} else {\n\t\t\tos.Setenv(\"DOCKER_API_VERSION\", originalAPIVersion)\n\t\t}\n\t}()\n\n\t// Set DOCKER_API_VERSION to an old version that would cause\n\t// \"client version 1.25 is too old\" errors if negotiation is disabled\n\tos.Setenv(\"DOCKER_API_VERSION\", \"1.25\")\n\n\tt.Run(\"FromEnv locks version preventing negotiation\", func(t *testing.T) {\n\t\t// This demonstrates the problematic behavior we're avoiding.\n\t\t// When using FromEnv with DOCKER_API_VERSION set, the client\n\t\t// version gets locked to 1.25 and negotiation is disabled.\n\t\tcli, err := client.NewClientWithOpts(\n\t\t\tclient.FromEnv,\n\t\t\tclient.WithAPIVersionNegotiation(),\n\t\t)\n\t\tassert.NoError(t, err)\n\t\tdefer cli.Close()\n\n\t\t// Version is locked to the env var value\n\t\tassert.Equal(t, \"1.25\", cli.ClientVersion())\n\t})\n\n\tt.Run(\"newDockerClient allows version negotiation\", func(t *testing.T) {\n\t\t// Test the actual production function.\n\t\t// Use DefaultDockerHost for cross-platform compatibility\n\t\t// (unix socket on Linux/macOS, named pipe on Windows).\n\t\tcli, err := newDockerClient(client.DefaultDockerHost)\n\t\tassert.NoError(t, err)\n\t\tdefer cli.Close()\n\n\t\t// Version is NOT locked to the env var value (1.25).\n\t\t// Instead, it uses the library's default version and will negotiate\n\t\t// with the server on first request. This is the key difference that\n\t\t// fixes the \"version too old\" error.\n\t\tassert.NotEqual(t, \"1.25\", cli.ClientVersion(),\n\t\t\t\"client version should not be locked to DOCKER_API_VERSION env var\")\n\t})\n}\n"
  },
  {
    "path": "pkg/commands/dummies.go",
    "content": "package commands\n\nimport (\n\t\"io\"\n\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/i18n\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// This file exports dummy constructors for use by tests in other packages\n\n// NewDummyOSCommand creates a new dummy OSCommand for testing\nfunc NewDummyOSCommand() *OSCommand {\n\treturn NewOSCommand(NewDummyLog(), NewDummyAppConfig())\n}\n\n// NewDummyAppConfig creates a new dummy AppConfig for testing\nfunc NewDummyAppConfig() *config.AppConfig {\n\tappConfig := &config.AppConfig{\n\t\tName:        \"lazydocker\",\n\t\tVersion:     \"unversioned\",\n\t\tCommit:      \"\",\n\t\tBuildDate:   \"\",\n\t\tDebug:       false,\n\t\tBuildSource: \"\",\n\t}\n\treturn appConfig\n}\n\n// NewDummyLog creates a new dummy Log for testing\nfunc NewDummyLog() *logrus.Entry {\n\tlog := logrus.New()\n\tlog.Out = io.Discard\n\treturn log.WithField(\"test\", \"test\")\n}\n\n// NewDummyDockerCommand creates a new dummy DockerCommand for testing\nfunc NewDummyDockerCommand() *DockerCommand {\n\treturn NewDummyDockerCommandWithOSCommand(NewDummyOSCommand())\n}\n\n// NewDummyDockerCommandWithOSCommand creates a new dummy DockerCommand for testing\nfunc NewDummyDockerCommandWithOSCommand(osCommand *OSCommand) *DockerCommand {\n\tnewAppConfig := NewDummyAppConfig()\n\treturn &DockerCommand{\n\t\tLog:       NewDummyLog(),\n\t\tOSCommand: osCommand,\n\t\tTr:        i18n.NewTranslationSet(NewDummyLog(), newAppConfig.UserConfig.Gui.Language),\n\t\tConfig:    newAppConfig,\n\t}\n}\n"
  },
  {
    "path": "pkg/commands/errors.go",
    "content": "package commands\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/go-errors/errors\"\n\t\"golang.org/x/xerrors\"\n)\n\nconst (\n\t// MustStopContainer tells us that we must stop the container before removing it\n\tMustStopContainer = iota\n)\n\n// WrapError wraps an error for the sake of showing a stack trace at the top level\n// the go-errors package, for some reason, does not return nil when you try to wrap\n// a non-error, so we're just doing it here\nfunc WrapError(err error) error {\n\tif err == nil {\n\t\treturn err\n\t}\n\n\treturn errors.Wrap(err, 0)\n}\n\n// ComplexError an error which carries a code so that calling code has an easier job to do\n// adapted from https://medium.com/yakka/better-go-error-handling-with-xerrors-1987650e0c79\ntype ComplexError struct {\n\tMessage string\n\tCode    int\n\tframe   xerrors.Frame\n}\n\n// FormatError is a function\nfunc (ce ComplexError) FormatError(p xerrors.Printer) error {\n\tp.Printf(\"%d %s\", ce.Code, ce.Message)\n\tce.frame.Format(p)\n\treturn nil\n}\n\n// Format is a function\nfunc (ce ComplexError) Format(f fmt.State, c rune) {\n\txerrors.FormatError(ce, f, c)\n}\n\nfunc (ce ComplexError) Error() string {\n\treturn fmt.Sprint(ce)\n}\n\n// HasErrorCode is a function\nfunc HasErrorCode(err error, code int) bool {\n\tvar originalErr ComplexError\n\tif xerrors.As(err, &originalErr) {\n\t\treturn originalErr.Code == MustStopContainer\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "pkg/commands/image.go",
    "content": "package commands\n\nimport (\n\t\"context\"\n\t\"strings\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/image\"\n\t\"github.com/docker/docker/client\"\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/samber/lo\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// Image : A docker Image\ntype Image struct {\n\tName          string\n\tTag           string\n\tID            string\n\tImage         image.Summary\n\tClient        *client.Client\n\tOSCommand     *OSCommand\n\tLog           *logrus.Entry\n\tDockerCommand LimitedDockerCommand\n}\n\n// Remove removes the image\nfunc (i *Image) Remove(options image.RemoveOptions) error {\n\tif _, err := i.Client.ImageRemove(context.Background(), i.ID, options); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc getHistoryResponseItemDisplayStrings(layer image.HistoryResponseItem) []string {\n\ttag := \"\"\n\tif len(layer.Tags) > 0 {\n\t\ttag = layer.Tags[0]\n\t}\n\n\tid := strings.TrimPrefix(layer.ID, \"sha256:\")\n\tif len(id) > 10 {\n\t\tid = id[0:10]\n\t}\n\tidColor := color.FgWhite\n\tif id == \"<missing>\" {\n\t\tidColor = color.FgBlue\n\t}\n\n\tdockerFileCommandPrefix := \"/bin/sh -c #(nop) \"\n\tcreatedBy := layer.CreatedBy\n\tif strings.Contains(layer.CreatedBy, dockerFileCommandPrefix) {\n\t\tcreatedBy = strings.Trim(strings.TrimPrefix(layer.CreatedBy, dockerFileCommandPrefix), \" \")\n\t\tsplit := strings.Split(createdBy, \" \")\n\t\tcreatedBy = utils.ColoredString(split[0], color.FgYellow) + \" \" + strings.Join(split[1:], \" \")\n\t}\n\n\tcreatedBy = strings.Replace(createdBy, \"\\t\", \" \", -1)\n\n\tsize := utils.FormatBinaryBytes(int(layer.Size))\n\tsizeColor := color.FgWhite\n\tif size == \"0B\" {\n\t\tsizeColor = color.FgBlue\n\t}\n\n\treturn []string{\n\t\tutils.ColoredString(id, idColor),\n\t\tutils.ColoredString(tag, color.FgGreen),\n\t\tutils.ColoredString(size, sizeColor),\n\t\tcreatedBy,\n\t}\n}\n\n// RenderHistory renders the history of the image\nfunc (i *Image) RenderHistory() (string, error) {\n\thistory, err := i.Client.ImageHistory(context.Background(), i.ID)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\ttableBody := lo.Map(history, func(layer image.HistoryResponseItem, _ int) []string {\n\t\treturn getHistoryResponseItemDisplayStrings(layer)\n\t})\n\n\theaders := [][]string{{\"ID\", \"TAG\", \"SIZE\", \"COMMAND\"}}\n\ttable := append(headers, tableBody...)\n\n\treturn utils.RenderTable(table)\n}\n\n// RefreshImages returns a slice of docker images\nfunc (c *DockerCommand) RefreshImages() ([]*Image, error) {\n\timages, err := c.Client.ImageList(context.Background(), image.ListOptions{})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\townImages := make([]*Image, len(images))\n\n\tfor i, img := range images {\n\t\tfirstTag := \"\"\n\t\ttags := img.RepoTags\n\t\tif len(tags) > 0 {\n\t\t\tfirstTag = tags[0]\n\t\t}\n\n\t\tnameParts := strings.Split(firstTag, \":\")\n\t\ttag := \"\"\n\t\tname := \"none\"\n\t\tif len(nameParts) > 1 {\n\t\t\ttag = nameParts[len(nameParts)-1]\n\t\t\tname = strings.Join(nameParts[:len(nameParts)-1], \":\")\n\n\t\t\tfor prefix, replacement := range c.Config.UserConfig.Replacements.ImageNamePrefixes {\n\t\t\t\tif strings.HasPrefix(name, prefix) {\n\t\t\t\t\tname = strings.Replace(name, prefix, replacement, 1)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\townImages[i] = &Image{\n\t\t\tID:            img.ID,\n\t\t\tName:          name,\n\t\t\tTag:           tag,\n\t\t\tImage:         img,\n\t\t\tClient:        c.Client,\n\t\t\tOSCommand:     c.OSCommand,\n\t\t\tLog:           c.Log,\n\t\t\tDockerCommand: c,\n\t\t}\n\t}\n\n\treturn ownImages, nil\n}\n\n// PruneImages prunes images\nfunc (c *DockerCommand) PruneImages() error {\n\t_, err := c.Client.ImagesPrune(context.Background(), filters.Args{})\n\treturn err\n}\n"
  },
  {
    "path": "pkg/commands/network.go",
    "content": "package commands\n\nimport (\n\t\"context\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/network\"\n\t\"github.com/docker/docker/client\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// Network : A docker Network\ntype Network struct {\n\tName          string\n\tNetwork       network.Inspect\n\tClient        *client.Client\n\tOSCommand     *OSCommand\n\tLog           *logrus.Entry\n\tDockerCommand LimitedDockerCommand\n}\n\n// RefreshNetworks gets the networks and stores them\nfunc (c *DockerCommand) RefreshNetworks() ([]*Network, error) {\n\tnetworks, err := c.Client.NetworkList(context.Background(), network.ListOptions{})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\townNetworks := make([]*Network, len(networks))\n\n\tfor i, nw := range networks {\n\t\townNetworks[i] = &Network{\n\t\t\tName:          nw.Name,\n\t\t\tNetwork:       nw,\n\t\t\tClient:        c.Client,\n\t\t\tOSCommand:     c.OSCommand,\n\t\t\tLog:           c.Log,\n\t\t\tDockerCommand: c,\n\t\t}\n\t}\n\n\treturn ownNetworks, nil\n}\n\n// PruneNetworks prunes networks\nfunc (c *DockerCommand) PruneNetworks() error {\n\t_, err := c.Client.NetworksPrune(context.Background(), filters.Args{})\n\treturn err\n}\n\n// Remove removes the network\nfunc (v *Network) Remove() error {\n\treturn v.Client.NetworkRemove(context.Background(), v.Name)\n}\n"
  },
  {
    "path": "pkg/commands/os.go",
    "content": "package commands\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/go-errors/errors\"\n\n\t\"github.com/jesseduffield/kill\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/mgutz/str\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// Platform stores the os state\ntype Platform struct {\n\tos              string\n\tshell           string\n\tshellArg        string\n\topenCommand     string\n\topenLinkCommand string\n}\n\n// OSCommand holds all the os commands\ntype OSCommand struct {\n\tLog      *logrus.Entry\n\tPlatform *Platform\n\tConfig   *config.AppConfig\n\tcommand  func(string, ...string) *exec.Cmd\n\tgetenv   func(string) string\n}\n\n// NewOSCommand os command runner\nfunc NewOSCommand(log *logrus.Entry, config *config.AppConfig) *OSCommand {\n\treturn &OSCommand{\n\t\tLog:      log,\n\t\tPlatform: getPlatform(),\n\t\tConfig:   config,\n\t\tcommand:  exec.Command,\n\t\tgetenv:   os.Getenv,\n\t}\n}\n\n// SetCommand sets the command function used by the struct.\n// To be used for testing only\nfunc (c *OSCommand) SetCommand(cmd func(string, ...string) *exec.Cmd) {\n\tc.command = cmd\n}\n\n// RunCommandWithOutput wrapper around commands returning their output and error\nfunc (c *OSCommand) RunCommandWithOutput(command string) (string, error) {\n\tcmd := c.ExecutableFromString(command)\n\tbefore := time.Now()\n\toutput, err := sanitisedCommandOutput(cmd.Output())\n\tc.Log.Warn(fmt.Sprintf(\"'%s': %s\", command, time.Since(before)))\n\treturn output, err\n}\n\n// RunCommandWithOutput wrapper around commands returning their output and error\nfunc (c *OSCommand) RunCommandWithOutputContext(ctx context.Context, command string) (string, error) {\n\tcmd := c.ExecutableFromStringContext(ctx, command)\n\tbefore := time.Now()\n\toutput, err := sanitisedCommandOutput(cmd.Output())\n\tc.Log.Warn(fmt.Sprintf(\"'%s': %s\", command, time.Since(before)))\n\treturn output, err\n}\n\n// RunExecutableWithOutput runs an executable file and returns its output\nfunc (c *OSCommand) RunExecutableWithOutput(cmd *exec.Cmd) (string, error) {\n\treturn sanitisedCommandOutput(cmd.CombinedOutput())\n}\n\n// RunExecutable runs an executable file and returns an error if there was one\nfunc (c *OSCommand) RunExecutable(cmd *exec.Cmd) error {\n\t_, err := c.RunExecutableWithOutput(cmd)\n\treturn err\n}\n\n// ExecutableFromString takes a string like `docker ps -a` and returns an executable command for it\nfunc (c *OSCommand) ExecutableFromString(commandStr string) *exec.Cmd {\n\tsplitCmd := str.ToArgv(commandStr)\n\treturn c.NewCmd(splitCmd[0], splitCmd[1:]...)\n}\n\n// Same as ExecutableFromString but cancellable via a context\nfunc (c *OSCommand) ExecutableFromStringContext(ctx context.Context, commandStr string) *exec.Cmd {\n\tsplitCmd := str.ToArgv(commandStr)\n\treturn exec.CommandContext(ctx, splitCmd[0], splitCmd[1:]...)\n}\n\nfunc (c *OSCommand) NewCmd(cmdName string, commandArgs ...string) *exec.Cmd {\n\tcmd := c.command(cmdName, commandArgs...)\n\tcmd.Env = os.Environ()\n\treturn cmd\n}\n\nfunc (c *OSCommand) NewCommandStringWithShell(commandStr string) string {\n\tvar quotedCommand string\n\t// Windows does not seem to like quotes around the command\n\tif c.Platform.os == \"windows\" {\n\t\tquotedCommand = strings.NewReplacer(\n\t\t\t\"^\", \"^^\",\n\t\t\t\"&\", \"^&\",\n\t\t\t\"|\", \"^|\",\n\t\t\t\"<\", \"^<\",\n\t\t\t\">\", \"^>\",\n\t\t\t\"%\", \"^%\",\n\t\t).Replace(commandStr)\n\t} else {\n\t\tquotedCommand = c.Quote(commandStr)\n\t}\n\n\treturn fmt.Sprintf(\"%s %s %s\", c.Platform.shell, c.Platform.shellArg, quotedCommand)\n}\n\n// RunCommand runs a command and just returns the error\nfunc (c *OSCommand) RunCommand(command string) error {\n\t_, err := c.RunCommandWithOutput(command)\n\treturn err\n}\n\n// FileType tells us if the file is a file, directory or other\nfunc (c *OSCommand) FileType(path string) string {\n\tfileInfo, err := os.Stat(path)\n\tif err != nil {\n\t\treturn \"other\"\n\t}\n\tif fileInfo.IsDir() {\n\t\treturn \"directory\"\n\t}\n\treturn \"file\"\n}\n\nfunc sanitisedCommandOutput(output []byte, err error) (string, error) {\n\toutputString := string(output)\n\tif err != nil {\n\t\t// errors like 'exit status 1' are not very useful so we'll create an error\n\t\t// from stderr if we got an ExitError\n\t\texitError, ok := err.(*exec.ExitError)\n\t\tif ok {\n\t\t\treturn outputString, errors.New(string(exitError.Stderr))\n\t\t}\n\t\treturn \"\", WrapError(err)\n\t}\n\treturn outputString, nil\n}\n\n// OpenFile opens a file with the given\nfunc (c *OSCommand) OpenFile(filename string) error {\n\tcommandTemplate := c.Config.UserConfig.OS.OpenCommand\n\ttemplateValues := map[string]string{\n\t\t\"filename\": c.Quote(filename),\n\t}\n\n\tcommand := utils.ResolvePlaceholderString(commandTemplate, templateValues)\n\terr := c.RunCommand(command)\n\treturn err\n}\n\n// OpenLink opens a file with the given\nfunc (c *OSCommand) OpenLink(link string) error {\n\tcommandTemplate := c.Config.UserConfig.OS.OpenLinkCommand\n\ttemplateValues := map[string]string{\n\t\t\"link\": c.Quote(link),\n\t}\n\n\tcommand := utils.ResolvePlaceholderString(commandTemplate, templateValues)\n\terr := c.RunCommand(command)\n\treturn err\n}\n\n// EditFile opens a file in a subprocess using whatever editor is available,\n// falling back to core.editor, VISUAL, EDITOR, then vi\nfunc (c *OSCommand) EditFile(filename string) (*exec.Cmd, error) {\n\teditor := c.getenv(\"VISUAL\")\n\tif editor == \"\" {\n\t\teditor = c.getenv(\"EDITOR\")\n\t}\n\tif editor == \"\" {\n\t\tif err := c.RunCommand(\"which vi\"); err == nil {\n\t\t\teditor = \"vi\"\n\t\t}\n\t}\n\tif editor == \"\" {\n\t\treturn nil, errors.New(\"No editor defined in $VISUAL or $EDITOR\")\n\t}\n\n\treturn c.NewCmd(editor, filename), nil\n}\n\n// Quote wraps a message in platform-specific quotation marks\nfunc (c *OSCommand) Quote(message string) string {\n\tvar quote string\n\tif c.Platform.os == \"windows\" {\n\t\tquote = `\\\"`\n\t\tmessage = strings.NewReplacer(\n\t\t\t`\"`, `\"'\"'\"`,\n\t\t\t`\\\"`, `\\\\\"`,\n\t\t).Replace(message)\n\t} else {\n\t\tquote = `\"`\n\t\tmessage = strings.NewReplacer(\n\t\t\t`\\`, `\\\\`,\n\t\t\t`\"`, `\\\"`,\n\t\t\t`$`, `\\$`,\n\t\t\t\"`\", \"\\\\`\",\n\t\t).Replace(message)\n\t}\n\treturn quote + message + quote\n}\n\n// Unquote removes wrapping quotations marks if they are present\n// this is needed for removing quotes from staged filenames with spaces\nfunc (c *OSCommand) Unquote(message string) string {\n\treturn strings.Replace(message, `\"`, \"\", -1)\n}\n\n// AppendLineToFile adds a new line in file\nfunc (c *OSCommand) AppendLineToFile(filename, line string) error {\n\tf, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0o600)\n\tif err != nil {\n\t\treturn WrapError(err)\n\t}\n\tdefer f.Close()\n\n\t_, err = f.WriteString(\"\\n\" + line)\n\tif err != nil {\n\t\treturn WrapError(err)\n\t}\n\treturn nil\n}\n\n// CreateTempFile writes a string to a new temp file and returns the file's name\nfunc (c *OSCommand) CreateTempFile(filename, content string) (string, error) {\n\ttmpfile, err := os.CreateTemp(\"\", filename)\n\tif err != nil {\n\t\tc.Log.Error(err)\n\t\treturn \"\", WrapError(err)\n\t}\n\n\tif _, err := tmpfile.WriteString(content); err != nil {\n\t\tc.Log.Error(err)\n\t\treturn \"\", WrapError(err)\n\t}\n\tif err := tmpfile.Close(); err != nil {\n\t\tc.Log.Error(err)\n\t\treturn \"\", WrapError(err)\n\t}\n\n\treturn tmpfile.Name(), nil\n}\n\n// Remove removes a file or directory at the specified path\nfunc (c *OSCommand) Remove(filename string) error {\n\terr := os.RemoveAll(filename)\n\treturn WrapError(err)\n}\n\n// FileExists checks whether a file exists at the specified path\nfunc (c *OSCommand) FileExists(path string) (bool, error) {\n\tif _, err := os.Stat(path); err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn false, nil\n\t\t}\n\t\treturn false, err\n\t}\n\treturn true, nil\n}\n\n// RunPreparedCommand takes a pointer to an exec.Cmd and runs it\n// this is useful if you need to give your command some environment variables\n// before running it\nfunc (c *OSCommand) RunPreparedCommand(cmd *exec.Cmd) error {\n\tout, err := cmd.CombinedOutput()\n\toutString := string(out)\n\tc.Log.Info(outString)\n\tif err != nil {\n\t\tif len(outString) == 0 {\n\t\t\treturn err\n\t\t}\n\t\treturn errors.New(outString)\n\t}\n\treturn nil\n}\n\n// GetLazydockerPath returns the path of the currently executed file\nfunc (c *OSCommand) GetLazydockerPath() string {\n\tex, err := os.Executable() // get the executable path for docker to use\n\tif err != nil {\n\t\tex = os.Args[0] // fallback to the first call argument if needed\n\t}\n\treturn filepath.ToSlash(ex)\n}\n\n// RunCustomCommand returns the pointer to a custom command\nfunc (c *OSCommand) RunCustomCommand(command string) *exec.Cmd {\n\treturn c.NewCmd(c.Platform.shell, c.Platform.shellArg, command)\n}\n\n// PipeCommands runs a heap of commands and pipes their inputs/outputs together like A | B | C\nfunc (c *OSCommand) PipeCommands(commandStrings ...string) error {\n\tcmds := make([]*exec.Cmd, len(commandStrings))\n\n\tfor i, str := range commandStrings {\n\t\tcmds[i] = c.ExecutableFromString(str)\n\t}\n\n\tfor i := 0; i < len(cmds)-1; i++ {\n\t\tstdout, err := cmds[i].StdoutPipe()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcmds[i+1].Stdin = stdout\n\t}\n\n\t// keeping this here in case I adapt this code for some other purpose in the future\n\t// cmds[len(cmds)-1].Stdout = os.Stdout\n\n\tfinalErrors := []string{}\n\n\twg := sync.WaitGroup{}\n\twg.Add(len(cmds))\n\n\tfor _, cmd := range cmds {\n\t\tcurrentCmd := cmd\n\t\tgo func() {\n\t\t\tstderr, err := currentCmd.StderrPipe()\n\t\t\tif err != nil {\n\t\t\t\tc.Log.Error(err)\n\t\t\t}\n\n\t\t\tif err := currentCmd.Start(); err != nil {\n\t\t\t\tc.Log.Error(err)\n\t\t\t}\n\n\t\t\tif b, err := io.ReadAll(stderr); err == nil {\n\t\t\t\tif len(b) > 0 {\n\t\t\t\t\tfinalErrors = append(finalErrors, string(b))\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif err := currentCmd.Wait(); err != nil {\n\t\t\t\tc.Log.Error(err)\n\t\t\t}\n\n\t\t\twg.Done()\n\t\t}()\n\t}\n\n\twg.Wait()\n\n\tif len(finalErrors) > 0 {\n\t\treturn errors.New(strings.Join(finalErrors, \"\\n\"))\n\t}\n\treturn nil\n}\n\n// Kill kills a process. If the process has Setpgid == true, then we have anticipated that it might spawn its own child processes, so we've given it a process group ID (PGID) equal to its process id (PID) and given its child processes will inherit the PGID, we can kill that group, rather than killing the process itself.\nfunc (c *OSCommand) Kill(cmd *exec.Cmd) error {\n\treturn kill.Kill(cmd)\n}\n\n// PrepareForChildren sets Setpgid to true on the cmd, so that when we run it as a subprocess, we can kill its group rather than the process itself. This is because some commands, like `docker-compose logs` spawn multiple children processes, and killing the parent process isn't sufficient for killing those child processes. We set the group id here, and then in subprocess.go we check if the group id is set and if so, we kill the whole group rather than just the one process.\nfunc (c *OSCommand) PrepareForChildren(cmd *exec.Cmd) {\n\tkill.PrepareForChildren(cmd)\n}\n"
  },
  {
    "path": "pkg/commands/os_default_platform.go",
    "content": "//go:build !windows\n// +build !windows\n\npackage commands\n\nimport (\n\t\"runtime\"\n)\n\nfunc getPlatform() *Platform {\n\treturn &Platform{\n\t\tos:              runtime.GOOS,\n\t\tshell:           \"bash\",\n\t\tshellArg:        \"-c\",\n\t\topenCommand:     \"open {{filename}}\",\n\t\topenLinkCommand: \"open {{link}}\",\n\t}\n}\n"
  },
  {
    "path": "pkg/commands/os_test.go",
    "content": "package commands\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"os/exec\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// TestOSCommandRunCommandWithOutput is a function.\nfunc TestOSCommandRunCommandWithOutput(t *testing.T) {\n\ttype scenario struct {\n\t\tcommand string\n\t\ttest    func(string, error)\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\t\"echo -n '123'\",\n\t\t\tfunc(output string, err error) {\n\t\t\t\tassert.NoError(t, err)\n\t\t\t\tassert.EqualValues(t, \"123\", output)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t\"rmdir unexisting-folder\",\n\t\t\tfunc(output string, err error) {\n\t\t\t\tassert.Regexp(t, \"rmdir.*unexisting-folder.*\", err.Error())\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\ts.test(NewDummyOSCommand().RunCommandWithOutput(s.command))\n\t}\n}\n\n// TestOSCommandRunCommand is a function.\nfunc TestOSCommandRunCommand(t *testing.T) {\n\ttype scenario struct {\n\t\tcommand string\n\t\ttest    func(error)\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\t\"rmdir unexisting-folder\",\n\t\t\tfunc(err error) {\n\t\t\t\tassert.Regexp(t, \"rmdir.*unexisting-folder.*\", err.Error())\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\ts.test(NewDummyOSCommand().RunCommand(s.command))\n\t}\n}\n\n// TestOSCommandEditFile is a function.\nfunc TestOSCommandEditFile(t *testing.T) {\n\ttype scenario struct {\n\t\tfilename string\n\t\tcommand  func(string, ...string) *exec.Cmd\n\t\tgetenv   func(string) string\n\t\ttest     func(*exec.Cmd, error)\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\t\"test\",\n\t\t\tfunc(name string, arg ...string) *exec.Cmd {\n\t\t\t\treturn exec.Command(\"exit\", \"1\")\n\t\t\t},\n\t\t\tfunc(env string) string {\n\t\t\t\treturn \"\"\n\t\t\t},\n\t\t\tfunc(cmd *exec.Cmd, err error) {\n\t\t\t\tassert.EqualError(t, err, \"No editor defined in $VISUAL or $EDITOR\")\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t\"test\",\n\t\t\tfunc(name string, arg ...string) *exec.Cmd {\n\t\t\t\tif name == \"which\" {\n\t\t\t\t\treturn exec.Command(\"exit\", \"1\")\n\t\t\t\t}\n\n\t\t\t\tassert.EqualValues(t, \"nano\", name)\n\n\t\t\t\treturn exec.Command(\"exit\", \"0\")\n\t\t\t},\n\t\t\tfunc(env string) string {\n\t\t\t\tif env == \"VISUAL\" {\n\t\t\t\t\treturn \"nano\"\n\t\t\t\t}\n\n\t\t\t\treturn \"\"\n\t\t\t},\n\t\t\tfunc(cmd *exec.Cmd, err error) {\n\t\t\t\tassert.NoError(t, err)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t\"test\",\n\t\t\tfunc(name string, arg ...string) *exec.Cmd {\n\t\t\t\tif name == \"which\" {\n\t\t\t\t\treturn exec.Command(\"exit\", \"1\")\n\t\t\t\t}\n\n\t\t\t\tassert.EqualValues(t, \"emacs\", name)\n\n\t\t\t\treturn exec.Command(\"exit\", \"0\")\n\t\t\t},\n\t\t\tfunc(env string) string {\n\t\t\t\tif env == \"EDITOR\" {\n\t\t\t\t\treturn \"emacs\"\n\t\t\t\t}\n\n\t\t\t\treturn \"\"\n\t\t\t},\n\t\t\tfunc(cmd *exec.Cmd, err error) {\n\t\t\t\tassert.NoError(t, err)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t\"test\",\n\t\t\tfunc(name string, arg ...string) *exec.Cmd {\n\t\t\t\tif name == \"which\" {\n\t\t\t\t\treturn exec.Command(\"echo\")\n\t\t\t\t}\n\n\t\t\t\tassert.EqualValues(t, \"vi\", name)\n\n\t\t\t\treturn exec.Command(\"exit\", \"0\")\n\t\t\t},\n\t\t\tfunc(env string) string {\n\t\t\t\treturn \"\"\n\t\t\t},\n\t\t\tfunc(cmd *exec.Cmd, err error) {\n\t\t\t\tassert.NoError(t, err)\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\tOSCmd := NewDummyOSCommand()\n\t\tOSCmd.command = s.command\n\t\tOSCmd.getenv = s.getenv\n\n\t\ts.test(OSCmd.EditFile(s.filename))\n\t}\n}\n\nfunc TestOSCommandQuote(t *testing.T) {\n\tosCommand := NewDummyOSCommand()\n\n\tosCommand.Platform.os = \"linux\"\n\n\tactual := osCommand.Quote(\"hello `test`\")\n\n\texpected := \"\\\"hello \\\\`test\\\\`\\\"\"\n\n\tassert.EqualValues(t, expected, actual)\n}\n\n// TestOSCommandQuoteSingleQuote tests the quote function with ' quotes explicitly for Linux\nfunc TestOSCommandQuoteSingleQuote(t *testing.T) {\n\tosCommand := NewDummyOSCommand()\n\n\tosCommand.Platform.os = \"linux\"\n\n\tactual := osCommand.Quote(\"hello 'test'\")\n\n\texpected := `\"hello 'test'\"`\n\n\tassert.EqualValues(t, expected, actual)\n}\n\n// TestOSCommandQuoteDoubleQuote tests the quote function with \" quotes explicitly for Linux\nfunc TestOSCommandQuoteDoubleQuote(t *testing.T) {\n\tosCommand := NewDummyOSCommand()\n\n\tosCommand.Platform.os = \"linux\"\n\n\tactual := osCommand.Quote(`hello \"test\"`)\n\n\texpected := `\"hello \\\"test\\\"\"`\n\n\tassert.EqualValues(t, expected, actual)\n}\n\n// TestOSCommandQuoteWindows tests the quote function for Windows\nfunc TestOSCommandQuoteWindows(t *testing.T) {\n\tosCommand := NewDummyOSCommand()\n\n\tosCommand.Platform.os = \"windows\"\n\n\tactual := osCommand.Quote(`hello \"test\" 'test2'`)\n\n\texpected := `\\\"hello \"'\"'\"test\"'\"'\" 'test2'\\\"`\n\n\tassert.EqualValues(t, expected, actual)\n}\n\n// TestOSCommandUnquote is a function.\nfunc TestOSCommandUnquote(t *testing.T) {\n\tosCommand := NewDummyOSCommand()\n\n\tactual := osCommand.Unquote(`hello \"test\"`)\n\n\texpected := \"hello test\"\n\n\tassert.EqualValues(t, expected, actual)\n}\n\n// TestOSCommandFileType is a function.\nfunc TestOSCommandFileType(t *testing.T) {\n\ttype scenario struct {\n\t\tpath  string\n\t\tsetup func()\n\t\ttest  func(string)\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\t\"testFile\",\n\t\t\tfunc() {\n\t\t\t\tif _, err := os.Create(\"testFile\"); err != nil {\n\t\t\t\t\tpanic(err)\n\t\t\t\t}\n\t\t\t},\n\t\t\tfunc(output string) {\n\t\t\t\tassert.EqualValues(t, \"file\", output)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t\"file with spaces\",\n\t\t\tfunc() {\n\t\t\t\tif _, err := os.Create(\"file with spaces\"); err != nil {\n\t\t\t\t\tpanic(err)\n\t\t\t\t}\n\t\t\t},\n\t\t\tfunc(output string) {\n\t\t\t\tassert.EqualValues(t, \"file\", output)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t\"testDirectory\",\n\t\t\tfunc() {\n\t\t\t\tif err := os.Mkdir(\"testDirectory\", 0o644); err != nil {\n\t\t\t\t\tpanic(err)\n\t\t\t\t}\n\t\t\t},\n\t\t\tfunc(output string) {\n\t\t\t\tassert.EqualValues(t, \"directory\", output)\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t\"nonExistant\",\n\t\t\tfunc() {},\n\t\t\tfunc(output string) {\n\t\t\t\tassert.EqualValues(t, \"other\", output)\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\ts.setup()\n\t\ts.test(NewDummyOSCommand().FileType(s.path))\n\t\t_ = os.RemoveAll(s.path)\n\t}\n}\n\nfunc TestOSCommandCreateTempFile(t *testing.T) {\n\ttype scenario struct {\n\t\ttestName string\n\t\tfilename string\n\t\tcontent  string\n\t\ttest     func(string, error)\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\t\"valid case\",\n\t\t\t\"filename\",\n\t\t\t\"content\",\n\t\t\tfunc(path string, err error) {\n\t\t\t\tassert.NoError(t, err)\n\n\t\t\t\tcontent, err := os.ReadFile(path)\n\t\t\t\tassert.NoError(t, err)\n\n\t\t\t\tassert.Equal(t, \"content\", string(content))\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\tt.Run(s.testName, func(t *testing.T) {\n\t\t\ts.test(NewDummyOSCommand().CreateTempFile(s.filename, s.content))\n\t\t})\n\t}\n}\n\nfunc TestOSCommandExecutableFromStringWithShellLinux(t *testing.T) {\n\tosCommand := NewDummyOSCommand()\n\n\tosCommand.Platform.os = \"linux\"\n\n\ttests := []struct {\n\t\tname       string\n\t\tcommandStr string\n\t\twant       string\n\t}{\n\t\t{\n\t\t\t\"success\",\n\t\t\t\"pwd\",\n\t\t\tfmt.Sprintf(\"%v %v %v\", osCommand.Platform.shell, osCommand.Platform.shellArg, \"\\\"pwd\\\"\"),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := osCommand.NewCommandStringWithShell(tt.commandStr)\n\t\t\tassert.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n\nfunc TestOSCommandNewCommandStringWithShellWindows(t *testing.T) {\n\tosCommand := NewDummyOSCommand()\n\n\tosCommand.Platform.os = \"windows\"\n\n\ttests := []struct {\n\t\tname       string\n\t\tcommandStr string\n\t\twant       string\n\t}{\n\t\t{\n\t\t\t\"success\",\n\t\t\t\"pwd\",\n\t\t\tfmt.Sprintf(\"%v %v %v\", osCommand.Platform.shell, osCommand.Platform.shellArg, \"pwd\"),\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tt.Run(tt.name, func(t *testing.T) {\n\t\t\tgot := osCommand.NewCommandStringWithShell(tt.commandStr)\n\t\t\tassert.Equal(t, tt.want, got)\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/commands/os_windows.go",
    "content": "package commands\n\nfunc getPlatform() *Platform {\n\treturn &Platform{\n\t\tos:       \"windows\",\n\t\tshell:    \"cmd\",\n\t\tshellArg: \"/c\",\n\t}\n}\n"
  },
  {
    "path": "pkg/commands/project.go",
    "content": "package commands\n\ntype Project struct {\n\tName string\n}\n"
  },
  {
    "path": "pkg/commands/service.go",
    "content": "package commands\n\nimport (\n\t\"context\"\n\t\"os/exec\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// Service : A docker Service\ntype Service struct {\n\tName          string\n\tID            string\n\tProjectName   string\n\tOSCommand     *OSCommand\n\tLog           *logrus.Entry\n\tContainer     *Container\n\tDockerCommand LimitedDockerCommand\n}\n\n// Remove removes the service's containers\nfunc (s *Service) Remove(options container.RemoveOptions) error {\n\treturn s.Container.Remove(options)\n}\n\n// Stop stops the service's containers\nfunc (s *Service) Stop() error {\n\treturn s.runCommand(s.OSCommand.Config.UserConfig.CommandTemplates.StopService)\n}\n\n// Up up's the service\nfunc (s *Service) Up() error {\n\treturn s.runCommand(s.OSCommand.Config.UserConfig.CommandTemplates.UpService)\n}\n\n// Restart restarts the service\nfunc (s *Service) Restart() error {\n\treturn s.runCommand(s.OSCommand.Config.UserConfig.CommandTemplates.RestartService)\n}\n\n// Start starts the service\nfunc (s *Service) Start() error {\n\treturn s.runCommand(s.OSCommand.Config.UserConfig.CommandTemplates.StartService)\n}\n\nfunc (s *Service) runCommand(templateCmdStr string) error {\n\tcommand := utils.ApplyTemplate(\n\t\ttemplateCmdStr,\n\t\ts.DockerCommand.NewCommandObject(CommandObject{Service: s}),\n\t)\n\treturn s.OSCommand.RunCommand(command)\n}\n\n// Attach attaches to the service\nfunc (s *Service) Attach() (*exec.Cmd, error) {\n\treturn s.Container.Attach()\n}\n\n// ViewLogs attaches to a subprocess viewing the service's logs\nfunc (s *Service) ViewLogs() (*exec.Cmd, error) {\n\ttemplateString := s.OSCommand.Config.UserConfig.CommandTemplates.ViewServiceLogs\n\tcommand := utils.ApplyTemplate(\n\t\ttemplateString,\n\t\ts.DockerCommand.NewCommandObject(CommandObject{Service: s}),\n\t)\n\n\tcmd := s.OSCommand.ExecutableFromString(command)\n\ts.OSCommand.PrepareForChildren(cmd)\n\n\treturn cmd, nil\n}\n\n// RenderTop renders the process list of the service\nfunc (s *Service) RenderTop(ctx context.Context) (string, error) {\n\ttemplateString := s.OSCommand.Config.UserConfig.CommandTemplates.ServiceTop\n\tcommand := utils.ApplyTemplate(\n\t\ttemplateString,\n\t\ts.DockerCommand.NewCommandObject(CommandObject{Service: s}),\n\t)\n\n\treturn s.OSCommand.RunCommandWithOutputContext(ctx, command)\n}\n"
  },
  {
    "path": "pkg/commands/ssh/ssh.go",
    "content": "package ssh\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"net/url\"\n\t\"os\"\n\t\"os/exec\"\n\t\"path\"\n\t\"time\"\n)\n\n// we only need these two methods from our OSCommand struct, for killing commands\ntype CmdKiller interface {\n\tKill(cmd *exec.Cmd) error\n\tPrepareForChildren(cmd *exec.Cmd)\n}\n\ntype SSHHandler struct {\n\toSCommand CmdKiller\n\n\tdialContext func(ctx context.Context, network, addr string) (io.Closer, error)\n\tstartCmd    func(*exec.Cmd) error\n\ttempDir     func(dir string, pattern string) (name string, err error)\n\tgetenv      func(key string) string\n\tsetenv      func(key, value string) error\n}\n\nfunc NewSSHHandler(oSCommand CmdKiller) *SSHHandler {\n\treturn &SSHHandler{\n\t\toSCommand: oSCommand,\n\n\t\tdialContext: func(ctx context.Context, network, addr string) (io.Closer, error) {\n\t\t\treturn (&net.Dialer{}).DialContext(ctx, network, addr)\n\t\t},\n\t\tstartCmd: func(cmd *exec.Cmd) error { return cmd.Start() },\n\t\ttempDir:  os.MkdirTemp,\n\t\tgetenv:   os.Getenv,\n\t\tsetenv:   os.Setenv,\n\t}\n}\n\n// HandleSSHDockerHost overrides the DOCKER_HOST environment variable\n// to point towards a local unix socket tunneled over SSH to the specified ssh host.\nfunc (self *SSHHandler) HandleSSHDockerHost() (io.Closer, error) {\n\tconst key = \"DOCKER_HOST\"\n\tctx := context.Background()\n\tu, err := url.Parse(self.getenv(key))\n\tif err != nil {\n\t\t// if no or an invalid docker host is specified, continue nominally\n\t\treturn noopCloser{}, nil\n\t}\n\n\t// if the docker host scheme is \"ssh\", forward the docker socket before creating the client\n\tif u.Scheme == \"ssh\" {\n\t\ttunnel, err := self.createDockerHostTunnel(ctx, u.Host)\n\t\tif err != nil {\n\t\t\treturn noopCloser{}, fmt.Errorf(\"tunnel ssh docker host: %w\", err)\n\t\t}\n\t\terr = self.setenv(key, tunnel.socketPath)\n\t\tif err != nil {\n\t\t\treturn noopCloser{}, fmt.Errorf(\"override DOCKER_HOST to tunneled socket: %w\", err)\n\t\t}\n\n\t\treturn tunnel, nil\n\t}\n\treturn noopCloser{}, nil\n}\n\ntype noopCloser struct{}\n\nfunc (noopCloser) Close() error { return nil }\n\ntype tunneledDockerHost struct {\n\tsocketPath string\n\tcmd        *exec.Cmd\n\toSCommand  CmdKiller\n}\n\nvar _ io.Closer = (*tunneledDockerHost)(nil)\n\nfunc (t *tunneledDockerHost) Close() error {\n\treturn t.oSCommand.Kill(t.cmd)\n}\n\nfunc (self *SSHHandler) createDockerHostTunnel(ctx context.Context, remoteHost string) (*tunneledDockerHost, error) {\n\tsocketDir, err := self.tempDir(\"/tmp\", \"lazydocker-sshtunnel-\")\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"create ssh tunnel tmp file: %w\", err)\n\t}\n\tlocalSocket := path.Join(socketDir, \"dockerhost.sock\")\n\n\tcmd, err := self.tunnelSSH(ctx, remoteHost, localSocket)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"tunnel docker host over ssh: %w\", err)\n\t}\n\n\t// set a reasonable timeout, then wait for the socket to dial successfully\n\t// before attempting to create a new docker client\n\tconst socketTunnelTimeout = 8 * time.Second\n\tctx, cancel := context.WithTimeout(ctx, socketTunnelTimeout)\n\tdefer cancel()\n\n\terr = self.retrySocketDial(ctx, localSocket)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"ssh tunneled socket never became available: %w\", err)\n\t}\n\n\t// construct the new DOCKER_HOST url with the proper scheme\n\tnewDockerHostURL := url.URL{Scheme: \"unix\", Path: localSocket}\n\treturn &tunneledDockerHost{\n\t\tsocketPath: newDockerHostURL.String(),\n\t\tcmd:        cmd,\n\t\toSCommand:  self.oSCommand,\n\t}, nil\n}\n\n// Attempt to dial the socket until it becomes available.\n// The retry loop will continue until the parent context is canceled.\nfunc (self *SSHHandler) retrySocketDial(ctx context.Context, socketPath string) error {\n\tt := time.NewTicker(1 * time.Second)\n\tdefer t.Stop()\n\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase <-t.C:\n\t\t}\n\t\t// attempt to dial the socket, exit on success\n\t\terr := self.tryDial(ctx, socketPath)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// Try to dial the specified unix socket, immediately close the connection if successfully created.\nfunc (self *SSHHandler) tryDial(ctx context.Context, socketPath string) error {\n\tconn, err := self.dialContext(ctx, \"unix\", socketPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer conn.Close()\n\treturn nil\n}\n\nfunc (self *SSHHandler) tunnelSSH(ctx context.Context, host, localSocket string) (*exec.Cmd, error) {\n\tcmd := exec.CommandContext(ctx, \"ssh\", \"-L\", localSocket+\":/var/run/docker.sock\", host, \"-N\")\n\tself.oSCommand.PrepareForChildren(cmd)\n\terr := self.startCmd(cmd)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn cmd, nil\n}\n"
  },
  {
    "path": "pkg/commands/ssh/ssh_test.go",
    "content": "package ssh\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"os/exec\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestSSHHandlerHandleSSHDockerHost(t *testing.T) {\n\ttype scenario struct {\n\t\ttestName                 string\n\t\tenvVarValue              string\n\t\texpectedDialContextCount int\n\t\texpectedStartCmdCount    int\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\ttestName:                 \"No env var set\",\n\t\t\tenvVarValue:              \"\",\n\t\t\texpectedDialContextCount: 0,\n\t\t\texpectedStartCmdCount:    0,\n\t\t},\n\t\t{\n\t\t\ttestName:                 \"Env var set with https scheme\",\n\t\t\tenvVarValue:              \"https://myhost.com\",\n\t\t\texpectedStartCmdCount:    0,\n\t\t\texpectedDialContextCount: 0,\n\t\t},\n\t\t{\n\t\t\ttestName:                 \"Env var set with ssh scheme\",\n\t\t\tenvVarValue:              \"ssh://myhost@192.168.5.178\",\n\t\t\texpectedStartCmdCount:    1,\n\t\t\texpectedDialContextCount: 1,\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\ts := s\n\t\tt.Run(s.testName, func(t *testing.T) {\n\t\t\tgetenv := func(key string) string {\n\t\t\t\tif key != \"DOCKER_HOST\" {\n\t\t\t\t\tt.Errorf(\"Expected key to be DOCKER_HOST, got %s\", key)\n\t\t\t\t}\n\n\t\t\t\treturn s.envVarValue\n\t\t\t}\n\n\t\t\ttempDir := func(dir string, pattern string) (string, error) {\n\t\t\t\tassert.Equal(t, \"/tmp\", dir)\n\t\t\t\tassert.Equal(t, \"lazydocker-sshtunnel-\", pattern)\n\n\t\t\t\treturn \"/tmp/lazydocker-ssh-tunnel-12345\", nil\n\t\t\t}\n\n\t\t\tsetenv := func(key, value string) error {\n\t\t\t\tassert.Equal(t, \"DOCKER_HOST\", key)\n\t\t\t\tassert.Equal(t, \"unix:///tmp/lazydocker-ssh-tunnel-12345/dockerhost.sock\", value)\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tstartCmdCount := 0\n\t\t\tstartCmd := func(cmd *exec.Cmd) error {\n\t\t\t\tassert.EqualValues(t, []string{\"ssh\", \"-L\", \"/tmp/lazydocker-ssh-tunnel-12345/dockerhost.sock:/var/run/docker.sock\", \"192.168.5.178\", \"-N\"}, cmd.Args)\n\n\t\t\t\tstartCmdCount++\n\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tdialContextCount := 0\n\t\t\tdialContext := func(ctx context.Context, network string, address string) (io.Closer, error) {\n\t\t\t\tassert.Equal(t, \"unix\", network)\n\t\t\t\tassert.Equal(t, \"/tmp/lazydocker-ssh-tunnel-12345/dockerhost.sock\", address)\n\n\t\t\t\tdialContextCount++\n\n\t\t\t\treturn noopCloser{}, nil\n\t\t\t}\n\n\t\t\thandler := &SSHHandler{\n\t\t\t\toSCommand: &fakeCmdKiller{},\n\n\t\t\t\tdialContext: dialContext,\n\t\t\t\tstartCmd:    startCmd,\n\t\t\t\ttempDir:     tempDir,\n\t\t\t\tgetenv:      getenv,\n\t\t\t\tsetenv:      setenv,\n\t\t\t}\n\n\t\t\t_, err := handler.HandleSSHDockerHost()\n\t\t\tassert.NoError(t, err)\n\n\t\t\tassert.Equal(t, s.expectedDialContextCount, dialContextCount)\n\t\t\tassert.Equal(t, s.expectedStartCmdCount, startCmdCount)\n\t\t})\n\t}\n}\n\ntype fakeCmdKiller struct{}\n\nfunc (self *fakeCmdKiller) Kill(cmd *exec.Cmd) error {\n\treturn nil\n}\n\nfunc (self *fakeCmdKiller) PrepareForChildren(cmd *exec.Cmd) {}\n"
  },
  {
    "path": "pkg/commands/volume.go",
    "content": "package commands\n\nimport (\n\t\"context\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/volume\"\n\t\"github.com/docker/docker/client\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// Volume : A docker Volume\ntype Volume struct {\n\tName          string\n\tVolume        *volume.Volume\n\tClient        *client.Client\n\tOSCommand     *OSCommand\n\tLog           *logrus.Entry\n\tDockerCommand LimitedDockerCommand\n}\n\n// RefreshVolumes gets the volumes and stores them\nfunc (c *DockerCommand) RefreshVolumes() ([]*Volume, error) {\n\tresult, err := c.Client.VolumeList(context.Background(), volume.ListOptions{})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvolumes := result.Volumes\n\n\townVolumes := make([]*Volume, len(volumes))\n\n\tfor i, vol := range volumes {\n\t\townVolumes[i] = &Volume{\n\t\t\tName:          vol.Name,\n\t\t\tVolume:        vol,\n\t\t\tClient:        c.Client,\n\t\t\tOSCommand:     c.OSCommand,\n\t\t\tLog:           c.Log,\n\t\t\tDockerCommand: c,\n\t\t}\n\t}\n\n\treturn ownVolumes, nil\n}\n\n// PruneVolumes prunes volumes\nfunc (c *DockerCommand) PruneVolumes() error {\n\t_, err := c.Client.VolumesPrune(context.Background(), filters.Args{})\n\treturn err\n}\n\n// Remove removes the volume\nfunc (v *Volume) Remove(force bool) error {\n\treturn v.Client.VolumeRemove(context.Background(), v.Name, force)\n}\n"
  },
  {
    "path": "pkg/config/app_config.go",
    "content": "// Package config handles all the user-configuration. The fields here are\n// all in PascalCase but in your actual config.yml they'll be in camelCase.\n// You can view the default config with `lazydocker --config`.\n// You can open your config file by going to the status panel (using left-arrow)\n// and pressing 'o'.\n// You can directly edit the file (e.g. in vim) by pressing 'e' instead.\n// To see the final config after your user-specific options have been merged\n// with the defaults, go to the 'about' tab in the status panel.\n// Because of the way we merge your user config with the defaults you may need\n// to be careful: if for example you set a `commandTemplates:` yaml key but then\n// give it no child values, it will scrap all of the defaults and the app will\n// probably crash.\npackage config\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/OpenPeeDeeP/xdg\"\n\t\"github.com/jesseduffield/yaml\"\n)\n\n// UserConfig holds all of the user-configurable options\ntype UserConfig struct {\n\t// Gui is for configuring visual things like colors and whether we show or\n\t// hide things\n\tGui GuiConfig `yaml:\"gui,omitempty\"`\n\n\t// ConfirmOnQuit when enabled prompts you to confirm you want to quit when you\n\t// hit esc or q when no confirmation panels are open\n\tConfirmOnQuit bool `yaml:\"confirmOnQuit,omitempty\"`\n\n\t// Logs determines how we render/filter a container's logs\n\tLogs LogsConfig `yaml:\"logs,omitempty\"`\n\n\t// CommandTemplates determines what commands actually get called when we run\n\t// certain commands\n\tCommandTemplates CommandTemplatesConfig `yaml:\"commandTemplates,omitempty\"`\n\n\t// CustomCommands determines what shows up in your custom commands menu when\n\t// you press 'c'. You can use go templates to access three items on the\n\t// struct: the DockerCompose command (defaulted to 'docker-compose'), the\n\t// Service if present, and the Container if present. The struct types for\n\t// those are found in the commands package\n\tCustomCommands CustomCommands `yaml:\"customCommands,omitempty\"`\n\n\t// BulkCommands are commands that apply to all items in a panel e.g.\n\t// killing all containers, stopping all services, or pruning all images\n\tBulkCommands CustomCommands `yaml:\"bulkCommands,omitempty\"`\n\n\t// OS determines what defaults are set for opening files and links\n\tOS OSConfig `yaml:\"oS,omitempty\"`\n\n\t// Stats determines how long lazydocker will gather container stats for, and\n\t// what stat info to graph\n\tStats StatsConfig `yaml:\"stats,omitempty\"`\n\n\t// Replacements determines how we render an item's info\n\tReplacements Replacements `yaml:\"replacements,omitempty\"`\n\n\t// For demo purposes: any list item with one of these strings as a substring\n\t// will be filtered out and not displayed.\n\t// Not documented because it's subject to change\n\tIgnore []string `yaml:\"ignore,omitempty\"`\n}\n\n// ThemeConfig is for setting the colors of panels and some text.\ntype ThemeConfig struct {\n\tActiveBorderColor   []string `yaml:\"activeBorderColor,omitempty\"`\n\tInactiveBorderColor []string `yaml:\"inactiveBorderColor,omitempty\"`\n\tSelectedLineBgColor []string `yaml:\"selectedLineBgColor,omitempty\"`\n\tOptionsTextColor    []string `yaml:\"optionsTextColor,omitempty\"`\n}\n\n// GuiConfig is for configuring visual things like colors and whether we show or\n// hide things\ntype GuiConfig struct {\n\t// ScrollHeight determines how many characters you scroll at a time when\n\t// scrolling the main panel\n\tScrollHeight int `yaml:\"scrollHeight,omitempty\"`\n\n\t// Language determines which language the GUI displayed.\n\tLanguage string `yaml:\"language,omitempty\"`\n\n\t// ScrollPastBottom determines whether you can scroll past the bottom of the\n\t// main view\n\tScrollPastBottom bool `yaml:\"scrollPastBottom,omitempty\"`\n\n\t// IgnoreMouseEvents is for when you do not want to use your mouse to interact\n\t// with anything\n\tIgnoreMouseEvents bool `yaml:\"mouseEvents,omitempty\"`\n\n\t// Theme determines what colors and color attributes your panel borders have.\n\t// I always set inactiveBorderColor to black because in my terminal it's more\n\t// of a grey, but that doesn't work in your average terminal. I highly\n\t// recommended finding a combination that works for you\n\tTheme ThemeConfig `yaml:\"theme,omitempty\"`\n\n\t// ShowAllContainers determines whether the Containers panel contains all the\n\t// containers returned by `docker ps -a`, or just those containers that aren't\n\t// directly linked to a service. It is probably desirable to enable this if\n\t// you have multiple containers per service, but otherwise it can cause a lot\n\t// of clutter\n\tShowAllContainers bool `yaml:\"showAllContainers,omitempty\"`\n\n\t// ReturnImmediately determines whether you get the 'press enter to return to\n\t// lazydocker' message after a subprocess has completed. You would set this to\n\t// true if you often want to see the output of subprocesses before returning\n\t// to lazydocker. I would default this to false but then people who want it\n\t// set to true won't even know the config option exists.\n\tReturnImmediately bool `yaml:\"returnImmediately,omitempty\"`\n\n\t// WrapMainPanel determines whether we use word wrap on the main panel\n\tWrapMainPanel bool `yaml:\"wrapMainPanel,omitempty\"`\n\n\t// LegacySortContainers determines if containers should be sorted using legacy approach.\n\t// By default, containers are now sorted by status. This setting allows users to\n\t// use legacy behaviour instead.\n\tLegacySortContainers bool `yaml:\"legacySortContainers,omitempty\"`\n\n\t// If 0.333, then the side panels will be 1/3 of the screen's width\n\tSidePanelWidth float64 `yaml:\"sidePanelWidth\"`\n\n\t// Determines whether we show the bottom line (the one containing keybinding\n\t// info and the status of the app).\n\tShowBottomLine bool `yaml:\"showBottomLine\"`\n\n\t// When true, increases vertical space used by focused side panel,\n\t// creating an accordion effect\n\tExpandFocusedSidePanel bool `yaml:\"expandFocusedSidePanel\"`\n\n\t// ScreenMode allow user to specify which screen mode will be used on startup\n\tScreenMode string `yaml:\"screenMode,omitempty\"`\n\n\t// Determines the style of the container status and container health display in the\n\t// containers panel. \"long\": full words (default), \"short\": one or two characters,\n\t// \"icon\": unicode emoji.\n\tContainerStatusHealthStyle string `yaml:\"containerStatusHealthStyle\"`\n\n\t// Window border style.\n\t// One of 'rounded' (default) | 'single' | 'double' | 'hidden'\n\tBorder string `yaml:\"border\"`\n}\n\n// CommandTemplatesConfig determines what commands actually get called when we\n// run certain commands\ntype CommandTemplatesConfig struct {\n\t// RestartService is for restarting a service. docker-compose restart {{\n\t// .Service.Name }} works but I prefer docker-compose up --force-recreate {{\n\t// .Service.Name }}\n\tRestartService string `yaml:\"restartService,omitempty\"`\n\n\t// StartService is just like the above but for starting\n\tStartService string `yaml:\"startService,omitempty\"`\n\n\t// UpService ups the service (creates and starts)\n\tUpService string `yaml:\"upService,omitempty\"`\n\n\t// Runs \"docker-compose up -d\"\n\tUp string `yaml:\"up,omitempty\"`\n\n\t// downs everything\n\tDown string `yaml:\"down,omitempty\"`\n\t// downs and removes volumes\n\tDownWithVolumes string `yaml:\"downWithVolumes,omitempty\"`\n\n\t// DockerCompose is for your docker-compose command. You may want to combine a\n\t// few different docker-compose.yml files together, in which case you can set\n\t// this to \"docker compose -f foo/docker-compose.yml -f\n\t// bah/docker-compose.yml\". The reason that the other docker-compose command\n\t// templates all start with {{ .DockerCompose }} is so that they can make use\n\t// of whatever you've set in this value rather than you having to copy and\n\t// paste it to all the other commands\n\tDockerCompose string `yaml:\"dockerCompose,omitempty\"`\n\n\t// StopService is the command for stopping a service\n\tStopService string `yaml:\"stopService,omitempty\"`\n\n\t// ServiceLogs get the logs for a service. This is actually not currently\n\t// used; we just get the logs of the corresponding container. But we should\n\t// probably support explicitly returning the logs of the service when you've\n\t// selected the service, given that a service may have multiple containers.\n\tServiceLogs string `yaml:\"serviceLogs,omitempty\"`\n\n\t// ViewServiceLogs is for when you want to view the logs of a service as a\n\t// subprocess. This defaults to having no filter, unlike the in-app logs\n\t// commands which will usually filter down to the last hour for the sake of\n\t// performance.\n\tViewServiceLogs string `yaml:\"viewServiceLogs,omitempty\"`\n\n\t// RebuildService is the command for rebuilding a service. Defaults to\n\t// something along the lines of `{{ .DockerCompose }} up --build {{\n\t// .Service.Name }}`\n\tRebuildService string `yaml:\"rebuildService,omitempty\"`\n\n\t// RecreateService is for force-recreating a service. I prefer this to\n\t// restarting a service because it will also restart any dependent services\n\t// and ensure they're running before trying to run the service at hand\n\tRecreateService string `yaml:\"recreateService,omitempty\"`\n\n\t// AllLogs is for showing what you get from doing `docker compose logs`. It\n\t// combines all the logs together\n\tAllLogs string `yaml:\"allLogs,omitempty\"`\n\n\t// ViewAllLogs is the command we use when you want to see all logs in a subprocess with no filtering\n\tViewAllLogs string `yaml:\"viewAlLogs,omitempty\"`\n\n\t// DockerComposeConfig is the command for viewing the config of your docker\n\t// compose. It basically prints out the yaml from your docker-compose.yml\n\t// file(s)\n\tDockerComposeConfig string `yaml:\"dockerComposeConfig,omitempty\"`\n\n\t// CheckDockerComposeConfig is what we use to check whether we are in a\n\t// docker-compose context. If the command returns an error then we clearly\n\t// aren't in a docker-compose config and we then just hide the services panel\n\t// and only show containers\n\tCheckDockerComposeConfig string `yaml:\"checkDockerComposeConfig,omitempty\"`\n\n\t// ServiceTop is the command for viewing the processes under a given service\n\tServiceTop string `yaml:\"serviceTop,omitempty\"`\n}\n\n// OSConfig contains config on the level of the os\ntype OSConfig struct {\n\t// OpenCommand is the command for opening a file\n\tOpenCommand string `yaml:\"openCommand,omitempty\"`\n\n\t// OpenCommand is the command for opening a link\n\tOpenLinkCommand string `yaml:\"openLinkCommand,omitempty\"`\n}\n\n// GraphConfig specifies how to make a graph of recorded container stats\ntype GraphConfig struct {\n\t// Min sets the minimum value that you want to display. If you want to set\n\t// this, you should also set MinType to \"static\". The reason for this is that\n\t// if Min == 0, it's not clear if it has not been set (given that the\n\t// zero-value of an int is 0) or if it's intentionally been set to 0.\n\tMin float64 `yaml:\"min,omitempty\"`\n\n\t// Max sets the maximum value that you want to display. If you want to set\n\t// this, you should also set MaxType to \"static\". The reason for this is that\n\t// if Max == 0, it's not clear if it has not been set (given that the\n\t// zero-value of an int is 0) or if it's intentionally been set to 0.\n\tMax float64 `yaml:\"max,omitempty\"`\n\n\t// Height sets the height of the graph in ascii characters\n\tHeight int `yaml:\"height,omitempty\"`\n\n\t// Caption sets the caption of the graph. If you want to show CPU Percentage\n\t// you could set this to \"CPU (%)\"\n\tCaption string `yaml:\"caption,omitempty\"`\n\n\t// This is the path to the stat that you want to display. It is based on the\n\t// RecordedStats struct in container_stats.go, so feel free to look there to\n\t// see all the options available. Alternatively if you go into lazydocker and\n\t// go to the stats tab, you'll see that same struct in JSON format, so you can\n\t// just PascalCase the path and you'll have a valid path. E.g.\n\t// ClientStats.blkio_stats -> \"ClientStats.BlkioStats\"\n\tStatPath string `yaml:\"statPath,omitempty\"`\n\n\t// This determines the color of the graph. This can be any color attribute,\n\t// e.g. 'blue', 'green'\n\tColor string `yaml:\"color,omitempty\"`\n\n\t// MinType and MaxType are each one of \"\", \"static\". blank means the min/max\n\t// of the data set will be used. \"static\" means the min/max specified will be\n\t// used\n\tMinType string `yaml:\"minType,omitempty\"`\n\n\t// MaxType is just like MinType but for the max value\n\tMaxType string `yaml:\"maxType,omitempty\"`\n}\n\n// StatsConfig contains the stuff relating to stats and graphs\ntype StatsConfig struct {\n\t// Graphs contains the configuration for the stats graphs we want to show in\n\t// the app\n\tGraphs []GraphConfig\n\n\t// MaxDuration tells us how long to collect stats for. Currently this defaults\n\t// to \"5m\" i.e. 5 minutes.\n\tMaxDuration time.Duration `yaml:\"maxDuration,omitempty\"`\n}\n\n// CustomCommands contains the custom commands that you might want to use on any\n// given service or container\ntype CustomCommands struct {\n\t// Containers contains the custom commands for containers\n\tContainers []CustomCommand `yaml:\"containers,omitempty\"`\n\n\t// Services contains the custom commands for services\n\tServices []CustomCommand `yaml:\"services,omitempty\"`\n\n\t// Images contains the custom commands for images\n\tImages []CustomCommand `yaml:\"images,omitempty\"`\n\n\t// Volumes contains the custom commands for volumes\n\tVolumes []CustomCommand `yaml:\"volumes,omitempty\"`\n\n\t// Networks contains the custom commands for networks\n\tNetworks []CustomCommand `yaml:\"networks,omitempty\"`\n}\n\n// Replacements contains the stuff relating to rendering a container's info\ntype Replacements struct {\n\t// ImageNamePrefixes tells us how to replace a prefix in the Docker image name\n\tImageNamePrefixes map[string]string `yaml:\"imageNamePrefixes,omitempty\"`\n}\n\n// CustomCommand is a template for a command we want to run against a service or\n// container\ntype CustomCommand struct {\n\t// Name is the name of the command, purely for visual display\n\tName string `yaml:\"name\"`\n\n\t// Attach tells us whether to switch to a subprocess to interact with the\n\t// called program, or just read its output. If Attach is set to false, the\n\t// command will run in the background. I'm open to the idea of having a third\n\t// option where the output plays in the main panel.\n\tAttach bool `yaml:\"attach\"`\n\n\t// Shell indicates whether to invoke the Command on a shell or not.\n\t// Example of a bash invoked command: `/bin/bash -c \"{Command}\".\n\tShell bool `yaml:\"shell\"`\n\n\t// Command is the command we want to run. We can use the go templates here as\n\t// well. One example might be `{{ .DockerCompose }} exec {{ .Service.Name }}\n\t// /bin/sh`\n\tCommand string `yaml:\"command\"`\n\n\t// ServiceNames is used to restrict this command to just one or more services.\n\t// An example might be 'rails migrate' for your rails api service(s). This\n\t// field has no effect on customcommands under the 'communications' part of\n\t// the customCommand config.\n\tServiceNames []string `yaml:\"serviceNames\"`\n\n\t// InternalFunction is the name of a function inside lazydocker that we want to run, as opposed to a command-line command. This is only used internally and can't be configured by the user\n\tInternalFunction func() error `yaml:\"-\"`\n}\n\ntype LogsConfig struct {\n\tTimestamps bool   `yaml:\"timestamps,omitempty\"`\n\tSince      string `yaml:\"since,omitempty\"`\n\tTail       string `yaml:\"tail,omitempty\"`\n}\n\n// GetDefaultConfig returns the application default configuration NOTE (to\n// contributors, not users): do not default a boolean to true, because false is\n// the boolean zero value and this will be ignored when parsing the user's\n// config\nfunc GetDefaultConfig() UserConfig {\n\tduration, err := time.ParseDuration(\"3m\")\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\treturn UserConfig{\n\t\tGui: GuiConfig{\n\t\t\tScrollHeight:      2,\n\t\t\tLanguage:          \"auto\",\n\t\t\tScrollPastBottom:  false,\n\t\t\tIgnoreMouseEvents: false,\n\t\t\tTheme: ThemeConfig{\n\t\t\t\tActiveBorderColor:   []string{\"green\", \"bold\"},\n\t\t\t\tInactiveBorderColor: []string{\"default\"},\n\t\t\t\tSelectedLineBgColor: []string{\"blue\"},\n\t\t\t\tOptionsTextColor:    []string{\"blue\"},\n\t\t\t},\n\t\t\tShowAllContainers:          false,\n\t\t\tReturnImmediately:          false,\n\t\t\tWrapMainPanel:              true,\n\t\t\tLegacySortContainers:       false,\n\t\t\tSidePanelWidth:             0.3333,\n\t\t\tShowBottomLine:             true,\n\t\t\tExpandFocusedSidePanel:     false,\n\t\t\tScreenMode:                 \"normal\",\n\t\t\tContainerStatusHealthStyle: \"long\",\n\t\t},\n\t\tConfirmOnQuit: false,\n\t\tLogs: LogsConfig{\n\t\t\tTimestamps: false,\n\t\t\tSince:      \"60m\",\n\t\t\tTail:       \"\",\n\t\t},\n\t\tCommandTemplates: CommandTemplatesConfig{\n\t\t\tDockerCompose:            \"docker compose\",\n\t\t\tRestartService:           \"{{ .DockerCompose }} restart {{ .Service.Name }}\",\n\t\t\tStartService:             \"{{ .DockerCompose }} start {{ .Service.Name }}\",\n\t\t\tUp:                       \"{{ .DockerCompose }} up -d\",\n\t\t\tDown:                     \"{{ .DockerCompose }} down\",\n\t\t\tDownWithVolumes:          \"{{ .DockerCompose }} down --volumes\",\n\t\t\tUpService:                \"{{ .DockerCompose }} up -d {{ .Service.Name }}\",\n\t\t\tRebuildService:           \"{{ .DockerCompose }} up -d --build {{ .Service.Name }}\",\n\t\t\tRecreateService:          \"{{ .DockerCompose }} up -d --force-recreate {{ .Service.Name }}\",\n\t\t\tStopService:              \"{{ .DockerCompose }} stop {{ .Service.Name }}\",\n\t\t\tServiceLogs:              \"{{ .DockerCompose }} logs --since=60m --follow {{ .Service.Name }}\",\n\t\t\tViewServiceLogs:          \"{{ .DockerCompose }} logs --follow {{ .Service.Name }}\",\n\t\t\tAllLogs:                  \"{{ .DockerCompose }} logs --tail=300 --follow\",\n\t\t\tViewAllLogs:              \"{{ .DockerCompose }} logs\",\n\t\t\tDockerComposeConfig:      \"{{ .DockerCompose }} config\",\n\t\t\tCheckDockerComposeConfig: \"{{ .DockerCompose }} config --quiet\",\n\t\t\tServiceTop:               \"{{ .DockerCompose }} top {{ .Service.Name }}\",\n\t\t},\n\t\tCustomCommands: CustomCommands{\n\t\t\tContainers: []CustomCommand{},\n\t\t\tServices:   []CustomCommand{},\n\t\t\tImages:     []CustomCommand{},\n\t\t\tVolumes:    []CustomCommand{},\n\t\t},\n\t\tBulkCommands: CustomCommands{\n\t\t\tServices: []CustomCommand{\n\t\t\t\t{\n\t\t\t\t\tName:    \"up\",\n\t\t\t\t\tCommand: \"{{ .DockerCompose }} up -d\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:    \"up (attached)\",\n\t\t\t\t\tCommand: \"{{ .DockerCompose }} up\",\n\t\t\t\t\tAttach:  true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:    \"stop\",\n\t\t\t\t\tCommand: \"{{ .DockerCompose }} stop\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:    \"pull\",\n\t\t\t\t\tCommand: \"{{ .DockerCompose }} pull\",\n\t\t\t\t\tAttach:  true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:    \"build\",\n\t\t\t\t\tCommand: \"{{ .DockerCompose }} build --parallel --force-rm\",\n\t\t\t\t\tAttach:  true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:    \"down\",\n\t\t\t\t\tCommand: \"{{ .DockerCompose }} down\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:    \"down with volumes\",\n\t\t\t\t\tCommand: \"{{ .DockerCompose }} down --volumes\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:    \"down with images\",\n\t\t\t\t\tCommand: \"{{ .DockerCompose }} down --rmi all\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tName:    \"down with volumes and images\",\n\t\t\t\t\tCommand: \"{{ .DockerCompose }} down --volumes --rmi all\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tContainers: []CustomCommand{},\n\t\t\tImages:     []CustomCommand{},\n\t\t\tVolumes:    []CustomCommand{},\n\t\t},\n\t\tOS: GetPlatformDefaultConfig(),\n\t\tStats: StatsConfig{\n\t\t\tMaxDuration: duration,\n\t\t\tGraphs: []GraphConfig{\n\t\t\t\t{\n\t\t\t\t\tCaption:  \"CPU (%)\",\n\t\t\t\t\tStatPath: \"DerivedStats.CPUPercentage\",\n\t\t\t\t\tColor:    \"cyan\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tCaption:  \"Memory (%)\",\n\t\t\t\t\tStatPath: \"DerivedStats.MemoryPercentage\",\n\t\t\t\t\tColor:    \"green\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tReplacements: Replacements{\n\t\t\tImageNamePrefixes: map[string]string{},\n\t\t},\n\t}\n}\n\n// AppConfig contains the base configuration fields required for lazydocker.\ntype AppConfig struct {\n\tDebug       bool   `long:\"debug\" env:\"DEBUG\" default:\"false\"`\n\tVersion     string `long:\"version\" env:\"VERSION\" default:\"unversioned\"`\n\tCommit      string `long:\"commit\" env:\"COMMIT\"`\n\tBuildDate   string `long:\"build-date\" env:\"BUILD_DATE\"`\n\tName        string `long:\"name\" env:\"NAME\" default:\"lazydocker\"`\n\tBuildSource string `long:\"build-source\" env:\"BUILD_SOURCE\" default:\"\"`\n\tUserConfig  *UserConfig\n\tConfigDir   string\n\tProjectDir  string\n\tProjectName string\n}\n\n// NewAppConfig makes a new app config\nfunc NewAppConfig(name, version, commit, date string, buildSource string, debuggingFlag bool, composeFiles []string, projectDir string, projectName string) (*AppConfig, error) {\n\tconfigDir, err := findOrCreateConfigDir(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tuserConfig, err := loadUserConfigWithDefaults(configDir)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Pass compose files as individual -f flags to docker compose\n\tif len(composeFiles) > 0 {\n\t\tuserConfig.CommandTemplates.DockerCompose += \" -f \" + strings.Join(composeFiles, \" -f \")\n\t}\n\n\tappConfig := &AppConfig{\n\t\tName:        name,\n\t\tVersion:     version,\n\t\tCommit:      commit,\n\t\tBuildDate:   date,\n\t\tDebug:       debuggingFlag || os.Getenv(\"DEBUG\") == \"TRUE\",\n\t\tBuildSource: buildSource,\n\t\tUserConfig:  userConfig,\n\t\tConfigDir:   configDir,\n\t\tProjectDir:  projectDir,\n\t\tProjectName: projectName,\n\t}\n\n\treturn appConfig, nil\n}\n\nfunc configDirForVendor(vendor string, projectName string) string {\n\tenvConfigDir := os.Getenv(\"CONFIG_DIR\")\n\tif envConfigDir != \"\" {\n\t\treturn envConfigDir\n\t}\n\tconfigDirs := xdg.New(vendor, projectName)\n\treturn configDirs.ConfigHome()\n}\n\nfunc configDir(projectName string) string {\n\tlegacyConfigDirectory := configDirForVendor(\"jesseduffield\", projectName)\n\tif _, err := os.Stat(legacyConfigDirectory); !os.IsNotExist(err) {\n\t\treturn legacyConfigDirectory\n\t}\n\tconfigDirectory := configDirForVendor(\"\", projectName)\n\treturn configDirectory\n}\n\nfunc findOrCreateConfigDir(projectName string) (string, error) {\n\tfolder := configDir(projectName)\n\n\terr := os.MkdirAll(folder, 0o755)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn folder, nil\n}\n\nfunc loadUserConfigWithDefaults(configDir string) (*UserConfig, error) {\n\tconfig := GetDefaultConfig()\n\n\treturn loadUserConfig(configDir, &config)\n}\n\nfunc loadUserConfig(configDir string, base *UserConfig) (*UserConfig, error) {\n\tfileName := filepath.Join(configDir, \"config.yml\")\n\n\tif _, err := os.Stat(fileName); err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\tfile, err := os.Create(fileName)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tfile.Close()\n\t\t} else {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tcontent, err := os.ReadFile(fileName)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := yaml.Unmarshal(content, base); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn base, nil\n}\n\n// WriteToUserConfig allows you to set a value on the user config to be saved\n// note that if you set a zero-value, it may be ignored e.g. a false or 0 or\n// empty string this is because we are using the omitempty yaml directive so\n// that we don't write a heap of zero values to the user's config.yml\nfunc (c *AppConfig) WriteToUserConfig(updateConfig func(*UserConfig) error) error {\n\tuserConfig, err := loadUserConfig(c.ConfigDir, &UserConfig{})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := updateConfig(userConfig); err != nil {\n\t\treturn err\n\t}\n\n\tfile, err := os.OpenFile(c.ConfigFilename(), os.O_WRONLY|os.O_CREATE, 0o666)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn yaml.NewEncoder(file).Encode(userConfig)\n}\n\n// ConfigFilename returns the filename of the current config file\nfunc (c *AppConfig) ConfigFilename() string {\n\treturn filepath.Join(c.ConfigDir, \"config.yml\")\n}\n"
  },
  {
    "path": "pkg/config/app_config_test.go",
    "content": "package config\n\nimport (\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/jesseduffield/yaml\"\n)\n\nfunc TestDockerComposeCommandNoFiles(t *testing.T) {\n\tcomposeFiles := []string{}\n\tconf, err := NewAppConfig(\"name\", \"version\", \"commit\", \"date\", \"buildSource\", false, composeFiles, \"projectDir\", \"\")\n\tif err != nil {\n\t\tt.Fatalf(\"Unexpected error: %s\", err)\n\t}\n\n\tactual := conf.UserConfig.CommandTemplates.DockerCompose\n\texpected := \"docker compose\"\n\tif actual != expected {\n\t\tt.Fatalf(\"Expected %s but got %s\", expected, actual)\n\t}\n}\n\nfunc TestDockerComposeCommandSingleFile(t *testing.T) {\n\tcomposeFiles := []string{\"one.yml\"}\n\tconf, err := NewAppConfig(\"name\", \"version\", \"commit\", \"date\", \"buildSource\", false, composeFiles, \"projectDir\", \"\")\n\tif err != nil {\n\t\tt.Fatalf(\"Unexpected error: %s\", err)\n\t}\n\n\tactual := conf.UserConfig.CommandTemplates.DockerCompose\n\texpected := \"docker compose -f one.yml\"\n\tif actual != expected {\n\t\tt.Fatalf(\"Expected %s but got %s\", expected, actual)\n\t}\n}\n\nfunc TestDockerComposeCommandMultipleFiles(t *testing.T) {\n\tcomposeFiles := []string{\"one.yml\", \"two.yml\", \"three.yml\"}\n\tconf, err := NewAppConfig(\"name\", \"version\", \"commit\", \"date\", \"buildSource\", false, composeFiles, \"projectDir\", \"\")\n\tif err != nil {\n\t\tt.Fatalf(\"Unexpected error: %s\", err)\n\t}\n\n\tactual := conf.UserConfig.CommandTemplates.DockerCompose\n\texpected := \"docker compose -f one.yml -f two.yml -f three.yml\"\n\tif actual != expected {\n\t\tt.Fatalf(\"Expected %s but got %s\", expected, actual)\n\t}\n}\n\nfunc TestWritingToConfigFile(t *testing.T) {\n\t// init the AppConfig\n\temptyComposeFiles := []string{}\n\tconf, err := NewAppConfig(\"name\", \"version\", \"commit\", \"date\", \"buildSource\", false, emptyComposeFiles, \"projectDir\", \"\")\n\tif err != nil {\n\t\tt.Fatalf(\"Unexpected error: %s\", err)\n\t}\n\n\ttestFn := func(t *testing.T, ac *AppConfig, newValue bool) {\n\t\tt.Helper()\n\t\tupdateFn := func(uc *UserConfig) error {\n\t\t\tuc.ConfirmOnQuit = newValue\n\t\t\treturn nil\n\t\t}\n\n\t\terr = ac.WriteToUserConfig(updateFn)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Unexpected error: %s\", err)\n\t\t}\n\n\t\tfile, err := os.OpenFile(ac.ConfigFilename(), os.O_RDONLY, 0o660)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Unexpected error: %s\", err)\n\t\t}\n\n\t\tsampleUC := UserConfig{}\n\t\terr = yaml.NewDecoder(file).Decode(&sampleUC)\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Unexpected error: %s\", err)\n\t\t}\n\n\t\terr = file.Close()\n\t\tif err != nil {\n\t\t\tt.Fatalf(\"Unexpected error: %s\", err)\n\t\t}\n\n\t\tif sampleUC.ConfirmOnQuit != newValue {\n\t\t\tt.Fatalf(\"Got %v, Expected %v\\n\", sampleUC.ConfirmOnQuit, newValue)\n\t\t}\n\t}\n\n\t// insert value into an empty file\n\ttestFn(t, conf, true)\n\n\t// modifying an existing file that already has 'ConfirmOnQuit'\n\ttestFn(t, conf, false)\n}\n"
  },
  {
    "path": "pkg/config/config_default_platform.go",
    "content": "//go:build !windows && !linux\n// +build !windows,!linux\n\npackage config\n\n// GetPlatformDefaultConfig gets the defaults for the platform\nfunc GetPlatformDefaultConfig() OSConfig {\n\treturn OSConfig{\n\t\tOpenCommand:     \"open {{filename}}\",\n\t\tOpenLinkCommand: \"open {{link}}\",\n\t}\n}\n"
  },
  {
    "path": "pkg/config/config_linux.go",
    "content": "package config\n\n// GetPlatformDefaultConfig gets the defaults for the platform\nfunc GetPlatformDefaultConfig() OSConfig {\n\treturn OSConfig{\n\t\tOpenCommand:     `sh -c \"xdg-open {{filename}} >/dev/null\"`,\n\t\tOpenLinkCommand: `sh -c \"xdg-open {{link}} >/dev/null\"`,\n\t}\n}\n"
  },
  {
    "path": "pkg/config/config_windows.go",
    "content": "package config\n\n// GetPlatformDefaultConfig gets the defaults for the platform\nfunc GetPlatformDefaultConfig() OSConfig {\n\treturn OSConfig{\n\t\tOpenCommand:     `cmd /c \"start \"\" {{filename}}\"`,\n\t\tOpenLinkCommand: `cmd /c \"start \"\" {{link}}\"`,\n\t}\n}\n"
  },
  {
    "path": "pkg/gui/app_status_manager.go",
    "content": "package gui\n\nimport (\n\t\"time\"\n\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n)\n\ntype appStatus struct {\n\tname       string\n\tstatusType string\n\tduration   int\n}\n\ntype statusManager struct {\n\tstatuses []appStatus\n}\n\nfunc (m *statusManager) removeStatus(name string) {\n\tnewStatuses := []appStatus{}\n\tfor _, status := range m.statuses {\n\t\tif status.name != name {\n\t\t\tnewStatuses = append(newStatuses, status)\n\t\t}\n\t}\n\tm.statuses = newStatuses\n}\n\nfunc (m *statusManager) addWaitingStatus(name string) {\n\tm.removeStatus(name)\n\tnewStatus := appStatus{\n\t\tname:       name,\n\t\tstatusType: \"waiting\",\n\t\tduration:   0,\n\t}\n\tm.statuses = append([]appStatus{newStatus}, m.statuses...)\n}\n\nfunc (m *statusManager) getStatusString() string {\n\tif len(m.statuses) == 0 {\n\t\treturn \"\"\n\t}\n\ttopStatus := m.statuses[0]\n\tif topStatus.statusType == \"waiting\" {\n\t\treturn topStatus.name + \" \" + utils.Loader()\n\t}\n\treturn topStatus.name\n}\n\n// WithWaitingStatus wraps a function and shows a waiting status while the function is still executing\nfunc (gui *Gui) WithWaitingStatus(name string, f func() error) error {\n\tgo func() {\n\t\tgui.statusManager.addWaitingStatus(name)\n\n\t\tdefer func() {\n\t\t\tgui.statusManager.removeStatus(name)\n\t\t}()\n\n\t\tgo func() {\n\t\t\tticker := time.NewTicker(time.Millisecond * 50)\n\t\t\tdefer ticker.Stop()\n\t\t\tfor range ticker.C {\n\t\t\t\tappStatus := gui.statusManager.getStatusString()\n\t\t\t\tif appStatus == \"\" {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif err := gui.renderString(gui.g, \"appStatus\", appStatus); err != nil {\n\t\t\t\t\tgui.Log.Warn(err)\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\n\t\tif err := f(); err != nil {\n\t\t\tgui.g.Update(func(g *gocui.Gui) error {\n\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t})\n\t\t}\n\t}()\n\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/gui/arrangement.go",
    "content": "package gui\n\nimport (\n\t\"github.com/jesseduffield/lazycore/pkg/boxlayout\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/panels\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/mattn/go-runewidth\"\n\t\"github.com/samber/lo\"\n)\n\n// In this file we use the boxlayout package, along with knowledge about the app's state,\n// to arrange the windows (i.e. panels) on the screen.\n\nconst INFO_SECTION_PADDING = \" \"\n\nfunc (gui *Gui) getWindowDimensions(informationStr string, appStatus string) map[string]boxlayout.Dimensions {\n\tminimumHeight := 9\n\tminimumWidth := 10\n\twidth, height := gui.g.Size()\n\tif width < minimumWidth || height < minimumHeight {\n\t\treturn boxlayout.ArrangeWindows(&boxlayout.Box{Window: \"limit\"}, 0, 0, width, height)\n\t}\n\n\tsideSectionWeight, mainSectionWeight := gui.getMidSectionWeights()\n\n\tsidePanelsDirection := boxlayout.COLUMN\n\tportraitMode := width <= 84 && height > 45\n\tif portraitMode {\n\t\tsidePanelsDirection = boxlayout.ROW\n\t}\n\n\tshowInfoSection := gui.Config.UserConfig.Gui.ShowBottomLine || gui.State.Filter.active\n\tinfoSectionSize := 0\n\tif showInfoSection {\n\t\tinfoSectionSize = 1\n\t}\n\n\troot := &boxlayout.Box{\n\t\tDirection: boxlayout.ROW,\n\t\tChildren: []*boxlayout.Box{\n\t\t\t{\n\t\t\t\tDirection: sidePanelsDirection,\n\t\t\t\tWeight:    1,\n\t\t\t\tChildren: []*boxlayout.Box{\n\t\t\t\t\t{\n\t\t\t\t\t\tDirection:           boxlayout.ROW,\n\t\t\t\t\t\tWeight:              sideSectionWeight,\n\t\t\t\t\t\tConditionalChildren: gui.sidePanelChildren,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tWindow: \"main\",\n\t\t\t\t\t\tWeight: mainSectionWeight,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tDirection: boxlayout.COLUMN,\n\t\t\t\tSize:      infoSectionSize,\n\t\t\t\tChildren:  gui.infoSectionChildren(informationStr, appStatus),\n\t\t\t},\n\t\t},\n\t}\n\n\treturn boxlayout.ArrangeWindows(root, 0, 0, width, height)\n}\n\nfunc (gui *Gui) getMidSectionWeights() (int, int) {\n\tcurrentWindow := gui.currentStaticWindowName()\n\n\t// we originally specified this as a ratio i.e. .20 would correspond to a weight of 1 against 4\n\tsidePanelWidthRatio := gui.Config.UserConfig.Gui.SidePanelWidth\n\t// we could make this better by creating ratios like 2:3 rather than always 1:something\n\tmainSectionWeight := int(1/sidePanelWidthRatio) - 1\n\tsideSectionWeight := 1\n\n\tif currentWindow == \"main\" && gui.State.ScreenMode == SCREEN_FULL {\n\t\tmainSectionWeight = 1\n\t\tsideSectionWeight = 0\n\t} else {\n\t\tif gui.State.ScreenMode == SCREEN_HALF {\n\t\t\tmainSectionWeight = 1\n\t\t} else if gui.State.ScreenMode == SCREEN_FULL {\n\t\t\tmainSectionWeight = 0\n\t\t}\n\t}\n\n\treturn sideSectionWeight, mainSectionWeight\n}\n\nfunc (gui *Gui) infoSectionChildren(informationStr string, appStatus string) []*boxlayout.Box {\n\tresult := []*boxlayout.Box{}\n\n\tif len(appStatus) > 0 {\n\t\tresult = append(result,\n\t\t\t&boxlayout.Box{\n\t\t\t\tWindow: \"appStatus\",\n\t\t\t\tSize:   runewidth.StringWidth(appStatus) + runewidth.StringWidth(INFO_SECTION_PADDING),\n\t\t\t},\n\t\t)\n\t}\n\n\tif gui.State.Filter.active {\n\t\treturn append(result, []*boxlayout.Box{\n\t\t\t{\n\t\t\t\tWindow: \"filterPrefix\",\n\t\t\t\tSize:   runewidth.StringWidth(gui.filterPrompt()),\n\t\t\t},\n\t\t\t{\n\t\t\t\tWindow: \"filter\",\n\t\t\t\tWeight: 1,\n\t\t\t},\n\t\t}...)\n\t}\n\n\tresult = append(result,\n\t\t[]*boxlayout.Box{\n\t\t\t{\n\t\t\t\tWindow: \"options\",\n\t\t\t\tWeight: 1,\n\t\t\t},\n\t\t\t{\n\t\t\t\tWindow: \"information\",\n\t\t\t\t// unlike appStatus, informationStr has various colors so we need to decolorise before taking the length\n\t\t\t\tSize: runewidth.StringWidth(INFO_SECTION_PADDING) + runewidth.StringWidth(utils.Decolorise(informationStr)),\n\t\t\t},\n\t\t}...,\n\t)\n\n\treturn result\n}\n\nfunc (gui *Gui) sideViewNames() []string {\n\tvisibleSidePanels := lo.Filter(gui.allSidePanels(), func(panel panels.ISideListPanel, _ int) bool {\n\t\treturn !panel.IsHidden()\n\t})\n\n\treturn lo.Map(visibleSidePanels, func(panel panels.ISideListPanel, _ int) string {\n\t\treturn panel.GetView().Name()\n\t})\n}\n\nfunc (gui *Gui) sidePanelChildren(width int, height int) []*boxlayout.Box {\n\tcurrentWindow := gui.currentSideWindowName()\n\tsideWindowNames := gui.sideViewNames()\n\n\tif gui.State.ScreenMode == SCREEN_FULL || gui.State.ScreenMode == SCREEN_HALF {\n\t\tfullHeightBox := func(window string) *boxlayout.Box {\n\t\t\tif window == currentWindow {\n\t\t\t\treturn &boxlayout.Box{\n\t\t\t\t\tWindow: window,\n\t\t\t\t\tWeight: 1,\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn &boxlayout.Box{\n\t\t\t\t\tWindow: window,\n\t\t\t\t\tSize:   0,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn lo.Map(sideWindowNames, func(window string, _ int) *boxlayout.Box {\n\t\t\treturn fullHeightBox(window)\n\t\t})\n\n\t} else if height >= 28 {\n\t\taccordionMode := gui.Config.UserConfig.Gui.ExpandFocusedSidePanel\n\t\taccordionBox := func(defaultBox *boxlayout.Box) *boxlayout.Box {\n\t\t\tif accordionMode && defaultBox.Window == currentWindow {\n\t\t\t\treturn &boxlayout.Box{\n\t\t\t\t\tWindow: defaultBox.Window,\n\t\t\t\t\tWeight: 2,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn defaultBox\n\t\t}\n\n\t\t// The project panel is compact (Size: 3) when not focused, but expands\n\t\t// when focused to show the list of projects.\n\t\tprojectBox := &boxlayout.Box{\n\t\t\tWindow: sideWindowNames[0],\n\t\t\tSize:   3,\n\t\t}\n\t\tif currentWindow == sideWindowNames[0] {\n\t\t\tprojectBox = &boxlayout.Box{\n\t\t\t\tWindow: sideWindowNames[0],\n\t\t\t\tWeight: 2,\n\t\t\t}\n\t\t}\n\n\t\treturn append([]*boxlayout.Box{\n\t\t\tprojectBox,\n\t\t}, lo.Map(sideWindowNames[1:], func(window string, _ int) *boxlayout.Box {\n\t\t\treturn accordionBox(&boxlayout.Box{Window: window, Weight: 1})\n\t\t})...)\n\t} else {\n\t\tsquashedHeight := 1\n\t\tif height >= 21 {\n\t\t\tsquashedHeight = 3\n\t\t}\n\n\t\tsquashedSidePanelBox := func(window string) *boxlayout.Box {\n\t\t\tif window == currentWindow {\n\t\t\t\treturn &boxlayout.Box{\n\t\t\t\t\tWindow: window,\n\t\t\t\t\tWeight: 1,\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn &boxlayout.Box{\n\t\t\t\t\tWindow: window,\n\t\t\t\t\tSize:   squashedHeight,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn lo.Map(sideWindowNames, func(window string, _ int) *boxlayout.Box {\n\t\t\treturn squashedSidePanelBox(window)\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "pkg/gui/confirmation_panel.go",
    "content": "// lots of this has been directly ported from one of the example files, will brush up later\n\n// Copyright 2014 The gocui Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage gui\n\nimport (\n\t\"strings\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/gocui\"\n)\n\nfunc (gui *Gui) wrappedConfirmationFunction(function func(*gocui.Gui, *gocui.View) error) func(*gocui.Gui, *gocui.View) error {\n\treturn func(g *gocui.Gui, v *gocui.View) error {\n\t\tif err := gui.closeConfirmationPrompt(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif function != nil {\n\t\t\tif err := function(g, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\treturn nil\n\t}\n}\n\nfunc (gui *Gui) closeConfirmationPrompt() error {\n\tif err := gui.returnFocus(); err != nil {\n\t\treturn err\n\t}\n\tgui.g.DeleteViewKeybindings(\"confirmation\")\n\tgui.Views.Confirmation.Visible = false\n\treturn nil\n}\n\nfunc (gui *Gui) getMessageHeight(wrap bool, message string, width int) int {\n\tlines := strings.Split(message, \"\\n\")\n\tlineCount := 0\n\t// if we need to wrap, calculate height to fit content within view's width\n\tif wrap {\n\t\tfor _, line := range lines {\n\t\t\tlineCount += len(line)/width + 1\n\t\t}\n\t} else {\n\t\tlineCount = len(lines)\n\t}\n\treturn lineCount\n}\n\nfunc (gui *Gui) getConfirmationPanelDimensions(wrap bool, prompt string) (int, int, int, int) {\n\twidth, height := gui.g.Size()\n\tpanelWidth := width / 2\n\tpanelHeight := gui.getMessageHeight(wrap, prompt, panelWidth)\n\treturn width/2 - panelWidth/2,\n\t\theight/2 - panelHeight/2 - panelHeight%2 - 1,\n\t\twidth/2 + panelWidth/2,\n\t\theight/2 + panelHeight/2\n}\n\nfunc (gui *Gui) createPromptPanel(title string, handleConfirm func(*gocui.Gui, *gocui.View) error) error {\n\tgui.onNewPopupPanel()\n\terr := gui.prepareConfirmationPanel(title, \"\")\n\tif err != nil {\n\t\treturn err\n\t}\n\tgui.Views.Confirmation.Editable = true\n\treturn gui.setKeyBindings(gui.g, handleConfirm, nil)\n}\n\nfunc (gui *Gui) prepareConfirmationPanel(title, prompt string) error {\n\tx0, y0, x1, y1 := gui.getConfirmationPanelDimensions(true, prompt)\n\tconfirmationView := gui.Views.Confirmation\n\t_, err := gui.g.SetView(\"confirmation\", x0, y0, x1, y1, 0)\n\tif err != nil {\n\t\treturn err\n\t}\n\tconfirmationView.Title = title\n\tconfirmationView.Visible = true\n\tgui.g.Update(func(g *gocui.Gui) error {\n\t\treturn gui.switchFocus(confirmationView)\n\t})\n\treturn nil\n}\n\nfunc (gui *Gui) onNewPopupPanel() {\n\tgui.Views.Menu.Visible = false\n\tgui.Views.Confirmation.Visible = false\n}\n\n// It is very important that within this function we never include the original prompt in any error messages, because it may contain e.g. a user password.\n// The golangcilint unparam linter complains that handleClose is alwans nil but one day it won't be nil.\n// nolint:unparam\nfunc (gui *Gui) createConfirmationPanel(title, prompt string, handleConfirm, handleClose func(*gocui.Gui, *gocui.View) error) error {\n\treturn gui.createPopupPanel(title, prompt, handleConfirm, handleClose)\n}\n\nfunc (gui *Gui) createPopupPanel(title, prompt string, handleConfirm, handleClose func(*gocui.Gui, *gocui.View) error) error {\n\tgui.onNewPopupPanel()\n\tgui.g.Update(func(g *gocui.Gui) error {\n\t\tif gui.currentViewName() == \"confirmation\" {\n\t\t\tif err := gui.closeConfirmationPrompt(); err != nil {\n\t\t\t\tgui.Log.Error(err.Error())\n\t\t\t}\n\t\t}\n\t\terr := gui.prepareConfirmationPanel(title, prompt)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgui.Views.Confirmation.Editable = false\n\t\tif err := gui.renderString(g, \"confirmation\", prompt); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn gui.setKeyBindings(g, handleConfirm, handleClose)\n\t})\n\treturn nil\n}\n\nfunc (gui *Gui) setKeyBindings(g *gocui.Gui, handleConfirm, handleClose func(*gocui.Gui, *gocui.View) error) error {\n\t// would use a loop here but because the function takes an interface{} and slices of interfaces require even more boilerplate\n\tif err := g.SetKeybinding(\"confirmation\", gocui.KeyEnter, gocui.ModNone, gui.wrappedConfirmationFunction(handleConfirm)); err != nil {\n\t\treturn err\n\t}\n\tif err := g.SetKeybinding(\"confirmation\", 'y', gocui.ModNone, gui.wrappedConfirmationFunction(handleConfirm)); err != nil {\n\t\treturn err\n\t}\n\n\tif err := g.SetKeybinding(\"confirmation\", gocui.KeyEsc, gocui.ModNone, gui.wrappedConfirmationFunction(handleClose)); err != nil {\n\t\treturn err\n\t}\n\tif err := g.SetKeybinding(\"confirmation\", 'n', gocui.ModNone, gui.wrappedConfirmationFunction(handleClose)); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (gui *Gui) createErrorPanel(message string) error {\n\tcolorFunction := color.New(color.FgRed).SprintFunc()\n\tcoloredMessage := colorFunction(strings.TrimSpace(message))\n\treturn gui.createConfirmationPanel(gui.Tr.ErrorTitle, coloredMessage, nil, nil)\n}\n\nfunc (gui *Gui) renderConfirmationOptions() error {\n\toptionsMap := map[string]string{\n\t\t\"n/esc\":   gui.Tr.No,\n\t\t\"y/enter\": gui.Tr.Yes,\n\t}\n\treturn gui.renderOptionsMap(optionsMap)\n}\n"
  },
  {
    "path": "pkg/gui/container_logs.go",
    "content": "package gui\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"os/signal\"\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/pkg/stdcopy\"\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/tasks\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n)\n\nfunc (gui *Gui) renderContainerLogsToMain(container *commands.Container) tasks.TaskFunc {\n\treturn gui.NewTickerTask(TickerTaskOpts{\n\t\tFunc: func(ctx context.Context, notifyStopped chan struct{}) {\n\t\t\tgui.renderContainerLogsToMainAux(container, ctx, notifyStopped)\n\t\t},\n\t\tDuration: time.Millisecond * 200,\n\t\t// TODO: see why this isn't working (when switching from Top tab to Logs tab in the services panel, the tops tab's content isn't removed)\n\t\tBefore:     func(ctx context.Context) { gui.clearMainView() },\n\t\tWrap:       gui.Config.UserConfig.Gui.WrapMainPanel,\n\t\tAutoscroll: true,\n\t})\n}\n\nfunc (gui *Gui) renderContainerLogsToMainAux(container *commands.Container, ctx context.Context, notifyStopped chan struct{}) {\n\tgui.clearMainView()\n\tdefer func() {\n\t\tnotifyStopped <- struct{}{}\n\t}()\n\n\tmainView := gui.Views.Main\n\n\tif err := gui.writeContainerLogs(container, ctx, mainView); err != nil {\n\t\tgui.Log.Error(err)\n\t}\n\n\t// if we are here because the task has been stopped, we should return\n\t// if we are here then the container must have exited, meaning we should wait until it's back again before\n\tticker := time.NewTicker(time.Millisecond * 100)\n\tdefer ticker.Stop()\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn\n\t\tcase <-ticker.C:\n\t\t\tresult, err := container.Inspect()\n\t\t\tif err != nil {\n\t\t\t\t// if we get an error, then the container has probably been removed so we'll get out of here\n\t\t\t\tgui.Log.Error(err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif result.State.Running {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (gui *Gui) renderLogsToStdout(container *commands.Container) {\n\tstop := make(chan os.Signal, 1)\n\tdefer signal.Stop(stop)\n\n\tctx, cancel := context.WithCancel(context.Background())\n\tgo func() {\n\t\tsignal.Notify(stop, os.Interrupt)\n\t\t<-stop\n\t\tcancel()\n\t}()\n\n\tif err := gui.g.Suspend(); err != nil {\n\t\tgui.Log.Error(err)\n\t\treturn\n\t}\n\n\tdefer func() {\n\t\tif err := gui.g.Resume(); err != nil {\n\t\t\tgui.Log.Error(err)\n\t\t}\n\t}()\n\n\tif err := gui.writeContainerLogs(container, ctx, os.Stdout); err != nil {\n\t\tgui.Log.Error(err)\n\t\treturn\n\t}\n\n\tgui.promptToReturn()\n}\n\nfunc (gui *Gui) promptToReturn() {\n\tif !gui.Config.UserConfig.Gui.ReturnImmediately {\n\t\tfmt.Fprintf(os.Stdout, \"\\n\\n%s\", utils.ColoredString(gui.Tr.PressEnterToReturn, color.FgGreen))\n\n\t\t// wait for enter press\n\t\tif _, err := fmt.Scanln(); err != nil {\n\t\t\tgui.Log.Error(err)\n\t\t}\n\t}\n}\n\nfunc (gui *Gui) writeContainerLogs(ctr *commands.Container, ctx context.Context, writer io.Writer) error {\n\treadCloser, err := gui.DockerCommand.Client.ContainerLogs(ctx, ctr.ID, container.LogsOptions{\n\t\tShowStdout: true,\n\t\tShowStderr: true,\n\t\tTimestamps: gui.Config.UserConfig.Logs.Timestamps,\n\t\tSince:      gui.Config.UserConfig.Logs.Since,\n\t\tTail:       gui.Config.UserConfig.Logs.Tail,\n\t\tFollow:     true,\n\t})\n\tif err != nil {\n\t\tgui.Log.Error(err)\n\t\treturn err\n\t}\n\tdefer readCloser.Close()\n\n\tif !ctr.DetailsLoaded() {\n\t\t// loop until the details load or context is cancelled, using timer\n\t\tticker := time.NewTicker(time.Millisecond * 100)\n\t\tdefer ticker.Stop()\n\touter:\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn nil\n\t\t\tcase <-ticker.C:\n\t\t\t\tif ctr.DetailsLoaded() {\n\t\t\t\t\tbreak outer\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif ctr.Details.Config.Tty {\n\t\t_, err = io.Copy(writer, readCloser)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\t_, err = stdcopy.StdCopy(writer, writer, readCloser)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/gui/containers_panel.go",
    "content": "package gui\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/panels\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/presentation\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/types\"\n\t\"github.com/jesseduffield/lazydocker/pkg/tasks\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/samber/lo\"\n)\n\nfunc (gui *Gui) getContainersPanel() *panels.SideListPanel[*commands.Container] {\n\t// Standalone containers are containers which are either one-off containers, or whose service is not part of this docker-compose context.\n\tisStandaloneContainer := func(container *commands.Container) bool {\n\t\tif container.OneOff || container.ServiceName == \"\" {\n\t\t\treturn true\n\t\t}\n\n\t\treturn !lo.SomeBy(gui.Panels.Services.List.GetAllItems(), func(service *commands.Service) bool {\n\t\t\treturn service.Name == container.ServiceName && service.ProjectName == container.ProjectName\n\t\t})\n\t}\n\n\treturn &panels.SideListPanel[*commands.Container]{\n\t\tContextState: &panels.ContextState[*commands.Container]{\n\t\t\tGetMainTabs: func() []panels.MainTab[*commands.Container] {\n\t\t\t\treturn []panels.MainTab[*commands.Container]{\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"logs\",\n\t\t\t\t\t\tTitle:  gui.Tr.LogsTitle,\n\t\t\t\t\t\tRender: gui.renderContainerLogsToMain,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"stats\",\n\t\t\t\t\t\tTitle:  gui.Tr.StatsTitle,\n\t\t\t\t\t\tRender: gui.renderContainerStats,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"env\",\n\t\t\t\t\t\tTitle:  gui.Tr.EnvTitle,\n\t\t\t\t\t\tRender: gui.renderContainerEnv,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"config\",\n\t\t\t\t\t\tTitle:  gui.Tr.ConfigTitle,\n\t\t\t\t\t\tRender: gui.renderContainerConfig,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"top\",\n\t\t\t\t\t\tTitle:  gui.Tr.TopTitle,\n\t\t\t\t\t\tRender: gui.renderContainerTop,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t\tGetItemContextCacheKey: func(container *commands.Container) string {\n\t\t\t\t// Including the container state in the cache key so that if the container\n\t\t\t\t// restarts we re-read the logs. In the past we've had some glitchiness\n\t\t\t\t// where a container restarts but the new logs don't get read.\n\t\t\t\t// Note that this might be jarring if we have a lot of logs and the container\n\t\t\t\t// restarts a lot, so let's keep an eye on it.\n\t\t\t\treturn \"containers-\" + container.ID + \"-\" + container.Container.State\n\t\t\t},\n\t\t},\n\t\tListPanel: panels.ListPanel[*commands.Container]{\n\t\t\tList: panels.NewFilteredList[*commands.Container](),\n\t\t\tView: gui.Views.Containers,\n\t\t},\n\t\tNoItemsMessage: gui.Tr.NoContainers,\n\t\tGui:            gui.intoInterface(),\n\t\t// sortedContainers returns containers sorted by state if c.SortContainersByState is true (follows 1- running, 2- exited, 3- created)\n\t\t// and sorted by name if c.SortContainersByState is false\n\t\tSort: func(a *commands.Container, b *commands.Container) bool {\n\t\t\treturn sortContainers(a, b, gui.Config.UserConfig.Gui.LegacySortContainers)\n\t\t},\n\t\tFilter: func(container *commands.Container) bool {\n\t\t\t// Note that this is O(N*M) time complexity where N is the number of services\n\t\t\t// and M is the number of containers. We expect N to be small but M may be large,\n\t\t\t// so we will need to keep an eye on this.\n\t\t\tif !gui.Config.UserConfig.Gui.ShowAllContainers && !isStandaloneContainer(container) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif !gui.State.ShowExitedContainers && container.Container.State == \"exited\" {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Filter by selected project. Containers with no project (truly\n\t\t\t// standalone, not from any compose project) are always shown.\n\t\t\tselectedProject := gui.getSelectedProjectName()\n\t\t\tif selectedProject == \"\" {\n\t\t\t\tselectedProject = gui.DockerCommand.LocalProjectName\n\t\t\t}\n\t\t\tif selectedProject != \"\" && container.ProjectName != \"\" && container.ProjectName != selectedProject {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t},\n\t\tGetTableCells: func(container *commands.Container) []string {\n\t\t\treturn presentation.GetContainerDisplayStrings(&gui.Config.UserConfig.Gui, container)\n\t\t},\n\t}\n}\n\nvar containerStates = map[string]int{\n\t\"running\": 1,\n\t\"exited\":  2,\n\t\"created\": 3,\n}\n\nfunc sortContainers(a *commands.Container, b *commands.Container, legacySort bool) bool {\n\tif legacySort {\n\t\treturn a.Name < b.Name\n\t}\n\n\tstateLeft := containerStates[a.Container.State]\n\tstateRight := containerStates[b.Container.State]\n\tif stateLeft == stateRight {\n\t\treturn a.Name < b.Name\n\t}\n\n\treturn containerStates[a.Container.State] < containerStates[b.Container.State]\n}\n\nfunc (gui *Gui) renderContainerEnv(container *commands.Container) tasks.TaskFunc {\n\treturn gui.NewSimpleRenderStringTask(func() string { return gui.containerEnv(container) })\n}\n\nfunc (gui *Gui) containerEnv(container *commands.Container) string {\n\tif !container.DetailsLoaded() {\n\t\treturn gui.Tr.WaitingForContainerInfo\n\t}\n\n\tif len(container.Details.Config.Env) == 0 {\n\t\treturn gui.Tr.NothingToDisplay\n\t}\n\n\tenvVarsList := lo.Map(container.Details.Config.Env, func(envVar string, _ int) []string {\n\t\tsplitEnv := strings.SplitN(envVar, \"=\", 2)\n\t\tkey := splitEnv[0]\n\t\tvalue := \"\"\n\t\tif len(splitEnv) > 1 {\n\t\t\tvalue = splitEnv[1]\n\t\t}\n\t\treturn []string{\n\t\t\tutils.ColoredString(key+\":\", color.FgGreen),\n\t\t\tutils.ColoredString(value, color.FgYellow),\n\t\t}\n\t})\n\n\toutput, err := utils.RenderTable(envVarsList)\n\tif err != nil {\n\t\tgui.Log.Error(err)\n\t\treturn gui.Tr.CannotDisplayEnvVariables\n\t}\n\n\treturn output\n}\n\nfunc (gui *Gui) renderContainerConfig(container *commands.Container) tasks.TaskFunc {\n\treturn gui.NewSimpleRenderStringTask(func() string { return gui.containerConfigStr(container) })\n}\n\nfunc (gui *Gui) containerConfigStr(container *commands.Container) string {\n\tif !container.DetailsLoaded() {\n\t\treturn gui.Tr.WaitingForContainerInfo\n\t}\n\n\tpadding := 10\n\toutput := \"\"\n\toutput += utils.WithPadding(\"ID: \", padding) + container.ID + \"\\n\"\n\toutput += utils.WithPadding(\"Name: \", padding) + container.Name + \"\\n\"\n\toutput += utils.WithPadding(\"Image: \", padding) + container.Details.Config.Image + \"\\n\"\n\toutput += utils.WithPadding(\"Command: \", padding) + strings.Join(append([]string{container.Details.Path}, container.Details.Args...), \" \") + \"\\n\"\n\toutput += utils.WithPadding(\"Labels: \", padding) + utils.FormatMap(padding, container.Details.Config.Labels)\n\toutput += \"\\n\"\n\n\toutput += utils.WithPadding(\"Mounts: \", padding)\n\tif len(container.Details.Mounts) > 0 {\n\t\toutput += \"\\n\"\n\t\tfor _, mount := range container.Details.Mounts {\n\t\t\tif mount.Type == \"volume\" {\n\t\t\t\toutput += fmt.Sprintf(\"%s%s %s\\n\", strings.Repeat(\" \", padding), utils.ColoredString(string(mount.Type)+\":\", color.FgYellow), mount.Name)\n\t\t\t} else {\n\t\t\t\toutput += fmt.Sprintf(\"%s%s %s:%s\\n\", strings.Repeat(\" \", padding), utils.ColoredString(string(mount.Type)+\":\", color.FgYellow), mount.Source, mount.Destination)\n\t\t\t}\n\t\t}\n\t} else {\n\t\toutput += \"none\\n\"\n\t}\n\n\toutput += utils.WithPadding(\"Ports: \", padding)\n\tif len(container.Details.NetworkSettings.Ports) > 0 {\n\t\toutput += \"\\n\"\n\t\tfor k, v := range container.Details.NetworkSettings.Ports {\n\t\t\tfor _, host := range v {\n\t\t\t\toutput += fmt.Sprintf(\"%s%s %s\\n\", strings.Repeat(\" \", padding), utils.ColoredString(host.HostPort+\":\", color.FgYellow), k)\n\t\t\t}\n\t\t}\n\t} else {\n\t\toutput += \"none\\n\"\n\t}\n\n\tdata, err := utils.MarshalIntoYaml(&container.Details)\n\tif err != nil {\n\t\treturn fmt.Sprintf(\"Error marshalling container details: %v\", err)\n\t}\n\n\toutput += fmt.Sprintf(\"\\nFull details:\\n\\n%s\", utils.ColoredYamlString(string(data)))\n\n\treturn output\n}\n\nfunc (gui *Gui) renderContainerStats(container *commands.Container) tasks.TaskFunc {\n\treturn gui.NewTickerTask(TickerTaskOpts{\n\t\tFunc: func(ctx context.Context, notifyStopped chan struct{}) {\n\t\t\tcontents, err := presentation.RenderStats(gui.Config.UserConfig, container, gui.Views.Main.Width())\n\t\t\tif err != nil {\n\t\t\t\t_ = gui.createErrorPanel(err.Error())\n\t\t\t}\n\n\t\t\tgui.reRenderStringMain(contents)\n\t\t},\n\t\tDuration:   time.Second,\n\t\tBefore:     func(ctx context.Context) { gui.clearMainView() },\n\t\tWrap:       false, // wrapping looks bad here so we're overriding the config value\n\t\tAutoscroll: false,\n\t})\n}\n\nfunc (gui *Gui) renderContainerTop(container *commands.Container) tasks.TaskFunc {\n\treturn gui.NewTickerTask(TickerTaskOpts{\n\t\tFunc: func(ctx context.Context, notifyStopped chan struct{}) {\n\t\t\tcontents, err := container.RenderTop(ctx)\n\t\t\tif err != nil {\n\t\t\t\tgui.RenderStringMain(err.Error())\n\t\t\t}\n\n\t\t\tgui.reRenderStringMain(contents)\n\t\t},\n\t\tDuration:   time.Second,\n\t\tBefore:     func(ctx context.Context) { gui.clearMainView() },\n\t\tWrap:       gui.Config.UserConfig.Gui.WrapMainPanel,\n\t\tAutoscroll: false,\n\t})\n}\n\nfunc (gui *Gui) refreshContainersAndServices() error {\n\tif gui.Views.Containers == nil {\n\t\t// if the containersView hasn't been instantiated yet we just return\n\t\treturn nil\n\t}\n\n\t// keep track of current service selected so that we can reposition our cursor if it moves position in the list\n\toriginalSelectedLineIdx := gui.Panels.Services.SelectedIdx\n\tselectedService, isServiceSelected := gui.Panels.Services.List.TryGet(originalSelectedLineIdx)\n\n\tcontainers, services, err := gui.DockerCommand.RefreshContainersAndServices(\n\t\tgui.Panels.Containers.List.GetAllItems(),\n\t)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tgui.Panels.Services.SetItems(services)\n\tgui.Panels.Containers.SetItems(containers)\n\n\t// see if our selected service has moved\n\tif isServiceSelected {\n\t\tfor i, service := range gui.Panels.Services.List.GetItems() {\n\t\t\tif service.ID == selectedService.ID {\n\t\t\t\tif i == originalSelectedLineIdx {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tgui.Panels.Services.SetSelectedLineIdx(i)\n\t\t\t\tgui.Panels.Services.Refocus()\n\t\t\t}\n\t\t}\n\t}\n\n\treturn gui.renderContainersAndServices()\n}\n\nfunc (gui *Gui) renderContainersAndServices() error {\n\tif err := gui.Panels.Services.RerenderList(); err != nil {\n\t\treturn err\n\t}\n\n\tif err := gui.Panels.Containers.RerenderList(); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (gui *Gui) handleHideStoppedContainers(g *gocui.Gui, v *gocui.View) error {\n\tgui.State.ShowExitedContainers = !gui.State.ShowExitedContainers\n\n\treturn gui.Panels.Containers.RerenderList()\n}\n\nfunc (gui *Gui) handleContainersRemoveMenu(g *gocui.Gui, v *gocui.View) error {\n\tctr, err := gui.Panels.Containers.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\thandleMenuPress := func(configOptions container.RemoveOptions) error {\n\t\treturn gui.WithWaitingStatus(gui.Tr.RemovingStatus, func() error {\n\t\t\tif err := ctr.Remove(configOptions); err != nil {\n\t\t\t\tif commands.HasErrorCode(err, commands.MustStopContainer) {\n\t\t\t\t\treturn gui.createConfirmationPanel(gui.Tr.Confirm, gui.Tr.MustForceToRemoveContainer, func(g *gocui.Gui, v *gocui.View) error {\n\t\t\t\t\t\treturn gui.WithWaitingStatus(gui.Tr.RemovingStatus, func() error {\n\t\t\t\t\t\t\tconfigOptions.Force = true\n\t\t\t\t\t\t\treturn ctr.Remove(configOptions)\n\t\t\t\t\t\t})\n\t\t\t\t\t}, nil)\n\t\t\t\t}\n\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t}\n\t\t\treturn nil\n\t\t})\n\t}\n\n\tmenuItems := []*types.MenuItem{\n\t\t{\n\t\t\tLabelColumns: []string{gui.Tr.Remove, \"docker rm \" + ctr.ID[1:10]},\n\t\t\tOnPress:      func() error { return handleMenuPress(container.RemoveOptions{}) },\n\t\t},\n\t\t{\n\t\t\tLabelColumns: []string{gui.Tr.RemoveWithVolumes, \"docker rm --volumes \" + ctr.ID[1:10]},\n\t\t\tOnPress:      func() error { return handleMenuPress(container.RemoveOptions{RemoveVolumes: true}) },\n\t\t},\n\t}\n\n\treturn gui.Menu(CreateMenuOptions{\n\t\tTitle: \"\",\n\t\tItems: menuItems,\n\t})\n}\n\nfunc (gui *Gui) PauseContainer(container *commands.Container) error {\n\treturn gui.WithWaitingStatus(gui.Tr.PausingStatus, func() (err error) {\n\t\tif container.Details.State.Paused {\n\t\t\terr = container.Unpause()\n\t\t} else {\n\t\t\terr = container.Pause()\n\t\t}\n\n\t\tif err != nil {\n\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t}\n\n\t\treturn gui.refreshContainersAndServices()\n\t})\n}\n\nfunc (gui *Gui) handleContainerPause(g *gocui.Gui, v *gocui.View) error {\n\tctr, err := gui.Panels.Containers.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\treturn gui.PauseContainer(ctr)\n}\n\nfunc (gui *Gui) handleContainerStop(g *gocui.Gui, v *gocui.View) error {\n\tctr, err := gui.Panels.Containers.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\treturn gui.createConfirmationPanel(gui.Tr.Confirm, gui.Tr.StopContainer, func(g *gocui.Gui, v *gocui.View) error {\n\t\treturn gui.WithWaitingStatus(gui.Tr.StoppingStatus, func() error {\n\t\t\tif err := ctr.Stop(); err != nil {\n\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t}\n\n\t\t\treturn nil\n\t\t})\n\t}, nil)\n}\n\nfunc (gui *Gui) handleContainerRestart(g *gocui.Gui, v *gocui.View) error {\n\tctr, err := gui.Panels.Containers.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\treturn gui.WithWaitingStatus(gui.Tr.RestartingStatus, func() error {\n\t\tif err := ctr.Restart(); err != nil {\n\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t}\n\n\t\treturn nil\n\t})\n}\n\nfunc (gui *Gui) handleContainerAttach(g *gocui.Gui, v *gocui.View) error {\n\tctr, err := gui.Panels.Containers.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tc, err := ctr.Attach()\n\tif err != nil {\n\t\treturn gui.createErrorPanel(err.Error())\n\t}\n\n\treturn gui.runSubprocessWithMessage(c, gui.Tr.DetachFromContainerShortCut)\n}\n\nfunc (gui *Gui) handlePruneContainers() error {\n\treturn gui.createConfirmationPanel(gui.Tr.Confirm, gui.Tr.ConfirmPruneContainers, func(g *gocui.Gui, v *gocui.View) error {\n\t\treturn gui.WithWaitingStatus(gui.Tr.PruningStatus, func() error {\n\t\t\terr := gui.DockerCommand.PruneContainers()\n\t\t\tif err != nil {\n\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t}\n\t\t\treturn nil\n\t\t})\n\t}, nil)\n}\n\nfunc (gui *Gui) handleContainerViewLogs(g *gocui.Gui, v *gocui.View) error {\n\tctr, err := gui.Panels.Containers.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tgui.renderLogsToStdout(ctr)\n\n\treturn nil\n}\n\nfunc (gui *Gui) handleContainersExecShell(g *gocui.Gui, v *gocui.View) error {\n\tctr, err := gui.Panels.Containers.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\treturn gui.containerExecShell(ctr)\n}\n\nfunc (gui *Gui) containerExecShell(container *commands.Container) error {\n\tcommandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{\n\t\tContainer: container,\n\t})\n\n\t// TODO: use SDK\n\tresolvedCommand := utils.ApplyTemplate(\"docker exec -it {{ .Container.ID }} /bin/sh -c 'eval $(grep ^$(id -un): /etc/passwd | cut -d : -f 7-)'\", commandObject)\n\t// attach and return the subprocess error\n\tcmd := gui.OSCommand.ExecutableFromString(resolvedCommand)\n\treturn gui.runSubprocess(cmd)\n}\n\nfunc (gui *Gui) handleContainersCustomCommand(g *gocui.Gui, v *gocui.View) error {\n\tctr, err := gui.Panels.Containers.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tcommandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{\n\t\tContainer: ctr,\n\t})\n\n\tcustomCommands := gui.Config.UserConfig.CustomCommands.Containers\n\n\treturn gui.createCustomCommandMenu(customCommands, commandObject)\n}\n\nfunc (gui *Gui) handleStopContainers() error {\n\treturn gui.createConfirmationPanel(gui.Tr.Confirm, gui.Tr.ConfirmStopContainers, func(g *gocui.Gui, v *gocui.View) error {\n\t\treturn gui.WithWaitingStatus(gui.Tr.StoppingStatus, func() error {\n\t\t\tfor _, ctr := range gui.Panels.Containers.List.GetAllItems() {\n\t\t\t\tif err := ctr.Stop(); err != nil {\n\t\t\t\t\tgui.Log.Error(err)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn nil\n\t\t})\n\t}, nil)\n}\n\nfunc (gui *Gui) handleRemoveContainers() error {\n\treturn gui.createConfirmationPanel(gui.Tr.Confirm, gui.Tr.ConfirmRemoveContainers, func(g *gocui.Gui, v *gocui.View) error {\n\t\treturn gui.WithWaitingStatus(gui.Tr.RemovingStatus, func() error {\n\t\t\tfor _, ctr := range gui.Panels.Containers.List.GetAllItems() {\n\t\t\t\tif err := ctr.Remove(container.RemoveOptions{Force: true}); err != nil {\n\t\t\t\t\tgui.Log.Error(err)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn nil\n\t\t})\n\t}, nil)\n}\n\nfunc (gui *Gui) handleContainersBulkCommand(g *gocui.Gui, v *gocui.View) error {\n\tbaseBulkCommands := []config.CustomCommand{\n\t\t{\n\t\t\tName:             gui.Tr.StopAllContainers,\n\t\t\tInternalFunction: gui.handleStopContainers,\n\t\t},\n\t\t{\n\t\t\tName:             gui.Tr.RemoveAllContainers,\n\t\t\tInternalFunction: gui.handleRemoveContainers,\n\t\t},\n\t\t{\n\t\t\tName:             gui.Tr.PruneContainers,\n\t\t\tInternalFunction: gui.handlePruneContainers,\n\t\t},\n\t}\n\n\tbulkCommands := append(baseBulkCommands, gui.Config.UserConfig.BulkCommands.Containers...)\n\tcommandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{})\n\n\treturn gui.createBulkCommandMenu(bulkCommands, commandObject)\n}\n\n// Open first port in browser\nfunc (gui *Gui) handleContainersOpenInBrowserCommand(g *gocui.Gui, v *gocui.View) error {\n\tctr, err := gui.Panels.Containers.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\treturn gui.openContainerInBrowser(ctr)\n}\n\nfunc (gui *Gui) openContainerInBrowser(ctr *commands.Container) error {\n\t// skip if no any ports\n\tif len(ctr.Container.Ports) == 0 {\n\t\treturn nil\n\t}\n\t// skip if the first port is not published\n\tport := ctr.Container.Ports[0]\n\tif port.IP == \"\" {\n\t\treturn nil\n\t}\n\tip := port.IP\n\tif ip == \"0.0.0.0\" {\n\t\tip = \"localhost\"\n\t}\n\tlink := fmt.Sprintf(\"http://%s:%d/\", ip, port.PublicPort)\n\treturn gui.OSCommand.OpenLink(link)\n}\n"
  },
  {
    "path": "pkg/gui/custom_commands.go",
    "content": "package gui\n\nimport (\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/types\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/samber/lo\"\n)\n\nfunc (gui *Gui) createCommandMenu(customCommands []config.CustomCommand, commandObject commands.CommandObject, title string, waitingStatus string) error {\n\tmenuItems := lo.Map(customCommands, func(command config.CustomCommand, _ int) *types.MenuItem {\n\t\tresolvedCommand := utils.ApplyTemplate(command.Command, commandObject)\n\n\t\tonPress := func() error {\n\t\t\tif command.InternalFunction != nil {\n\t\t\t\treturn command.InternalFunction()\n\t\t\t}\n\n\t\t\tif command.Shell {\n\t\t\t\tresolvedCommand = gui.OSCommand.NewCommandStringWithShell(resolvedCommand)\n\t\t\t}\n\n\t\t\t// if we have a command for attaching, we attach and return the subprocess error\n\t\t\tif command.Attach {\n\t\t\t\treturn gui.runSubprocess(gui.OSCommand.ExecutableFromString(resolvedCommand))\n\t\t\t}\n\n\t\t\treturn gui.WithWaitingStatus(waitingStatus, func() error {\n\t\t\t\tif err := gui.OSCommand.RunCommand(resolvedCommand); err != nil {\n\t\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t})\n\t\t}\n\n\t\treturn &types.MenuItem{\n\t\t\tLabelColumns: []string{\n\t\t\t\tcommand.Name,\n\t\t\t\tutils.ColoredString(utils.WithShortSha(resolvedCommand), color.FgCyan),\n\t\t\t},\n\t\t\tOnPress: onPress,\n\t\t}\n\t})\n\n\treturn gui.Menu(CreateMenuOptions{\n\t\tTitle: title,\n\t\tItems: menuItems,\n\t})\n}\n\nfunc (gui *Gui) createCustomCommandMenu(customCommands []config.CustomCommand, commandObject commands.CommandObject) error {\n\treturn gui.createCommandMenu(customCommands, commandObject, gui.Tr.CustomCommandTitle, gui.Tr.RunningCustomCommandStatus)\n}\n\nfunc (gui *Gui) createBulkCommandMenu(customCommands []config.CustomCommand, commandObject commands.CommandObject) error {\n\treturn gui.createCommandMenu(customCommands, commandObject, gui.Tr.BulkCommandTitle, gui.Tr.RunningBulkCommandStatus)\n}\n"
  },
  {
    "path": "pkg/gui/filtering.go",
    "content": "package gui\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/jesseduffield/gocui\"\n)\n\nfunc (gui *Gui) handleOpenFilter() error {\n\tpanel, ok := gui.currentListPanel()\n\tif !ok {\n\t\treturn nil\n\t}\n\n\tif panel.IsFilterDisabled() {\n\t\treturn nil\n\t}\n\n\tgui.State.Filter.active = true\n\tgui.State.Filter.panel = panel\n\n\treturn gui.switchFocus(gui.Views.Filter)\n}\n\nfunc (gui *Gui) onNewFilterNeedle(value string) error {\n\tgui.State.Filter.needle = value\n\tgui.ResetOrigin(gui.State.Filter.panel.GetView())\n\treturn gui.State.Filter.panel.RerenderList()\n}\n\nfunc (gui *Gui) wrapEditor(f func(v *gocui.View, key gocui.Key, ch rune, mod gocui.Modifier) bool) func(v *gocui.View, key gocui.Key, ch rune, mod gocui.Modifier) bool {\n\treturn func(v *gocui.View, key gocui.Key, ch rune, mod gocui.Modifier) bool {\n\t\tmatched := f(v, key, ch, mod)\n\t\tif matched {\n\t\t\tif err := gui.onNewFilterNeedle(v.TextArea.GetContent()); err != nil {\n\t\t\t\tgui.Log.Error(err)\n\t\t\t}\n\t\t}\n\t\treturn matched\n\t}\n}\n\nfunc (gui *Gui) escapeFilterPrompt() error {\n\tif err := gui.clearFilter(); err != nil {\n\t\treturn err\n\t}\n\n\treturn gui.returnFocus()\n}\n\nfunc (gui *Gui) clearFilter() error {\n\tgui.State.Filter.needle = \"\"\n\tgui.State.Filter.active = false\n\tpanel := gui.State.Filter.panel\n\tgui.State.Filter.panel = nil\n\tgui.Views.Filter.ClearTextArea()\n\n\tif panel == nil {\n\t\treturn nil\n\t}\n\n\tgui.ResetOrigin(panel.GetView())\n\n\treturn panel.RerenderList()\n}\n\n// returns to the list view with the filter still applied\nfunc (gui *Gui) commitFilter() error {\n\tif gui.State.Filter.needle == \"\" {\n\t\tif err := gui.clearFilter(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn gui.returnFocus()\n}\n\nfunc (gui *Gui) filterPrompt() string {\n\treturn fmt.Sprintf(\"%s: \", gui.Tr.FilterPrompt)\n}\n"
  },
  {
    "path": "pkg/gui/focus.go",
    "content": "package gui\n\nimport (\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/samber/lo\"\n)\n\nfunc (gui *Gui) newLineFocused(v *gocui.View) error {\n\tif v == nil {\n\t\treturn nil\n\t}\n\n\tcurrentListPanel, ok := gui.currentListPanel()\n\tif ok {\n\t\treturn currentListPanel.HandleSelect()\n\t}\n\n\tswitch v.Name() {\n\tcase \"confirmation\":\n\t\treturn nil\n\tcase \"main\":\n\t\tv.Highlight = false\n\t\treturn nil\n\tcase \"filter\":\n\t\treturn nil\n\tdefault:\n\t\tpanic(gui.Tr.NoViewMachingNewLineFocusedSwitchStatement)\n\t}\n}\n\n// TODO: move some of this logic into our onFocusLost and onFocus hooks\nfunc (gui *Gui) switchFocus(newView *gocui.View) error {\n\tgui.Mutexes.ViewStackMutex.Lock()\n\tdefer gui.Mutexes.ViewStackMutex.Unlock()\n\n\treturn gui.switchFocusAux(newView)\n}\n\nfunc (gui *Gui) switchFocusAux(newView *gocui.View) error {\n\tgui.pushView(newView.Name())\n\tgui.Log.Info(\"setting highlight to true for view \" + newView.Name())\n\tgui.Log.Info(\"new focused view is \" + newView.Name())\n\tif _, err := gui.g.SetCurrentView(newView.Name()); err != nil {\n\t\treturn err\n\t}\n\n\tgui.g.Cursor = newView.Editable\n\n\tif err := gui.renderPanelOptions(); err != nil {\n\t\treturn err\n\t}\n\n\tnewViewStack := gui.State.ViewStack\n\n\tif gui.State.Filter.panel != nil && !lo.Contains(newViewStack, gui.State.Filter.panel.GetView().Name()) {\n\t\tif err := gui.clearFilter(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// TODO: add 'onFocusLost' hook\n\tif !lo.Contains(newViewStack, \"menu\") {\n\t\tgui.Views.Menu.Visible = false\n\t}\n\n\treturn gui.newLineFocused(newView)\n}\n\nfunc (gui *Gui) returnFocus() error {\n\tgui.Mutexes.ViewStackMutex.Lock()\n\tdefer gui.Mutexes.ViewStackMutex.Unlock()\n\n\tif len(gui.State.ViewStack) <= 1 {\n\t\treturn nil\n\t}\n\n\tpreviousViewName := gui.State.ViewStack[len(gui.State.ViewStack)-2]\n\tpreviousView, err := gui.g.View(previousViewName)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn gui.switchFocusAux(previousView)\n}\n\nfunc (gui *Gui) removeViewFromStack(view *gocui.View) {\n\tgui.Mutexes.ViewStackMutex.Lock()\n\tdefer gui.Mutexes.ViewStackMutex.Unlock()\n\n\tgui.State.ViewStack = lo.Filter(gui.State.ViewStack, func(viewName string, _ int) bool {\n\t\treturn viewName != view.Name()\n\t})\n}\n\n// Not to be called directly. Use `switchFocus` instead\nfunc (gui *Gui) pushView(name string) {\n\t// No matter what view we're pushing, we first remove all popup panels from the stack\n\t// (unless it's the search view because we may be searching the menu panel)\n\tif name != \"filter\" {\n\t\tgui.State.ViewStack = lo.Filter(gui.State.ViewStack, func(viewName string, _ int) bool {\n\t\t\treturn !gui.isPopupPanel(viewName)\n\t\t})\n\t}\n\n\t// If we're pushing a side panel, we remove all other panels\n\tif lo.Contains(gui.sideViewNames(), name) {\n\t\tgui.State.ViewStack = []string{}\n\t}\n\n\t// If we're pushing a panel that's already in the stack, we remove it\n\tgui.State.ViewStack = lo.Filter(gui.State.ViewStack, func(viewName string, _ int) bool {\n\t\treturn viewName != name\n\t})\n\n\tgui.State.ViewStack = append(gui.State.ViewStack, name)\n}\n\n// excludes popups\nfunc (gui *Gui) currentStaticViewName() string {\n\tgui.Mutexes.ViewStackMutex.Lock()\n\tdefer gui.Mutexes.ViewStackMutex.Unlock()\n\n\tfor i := len(gui.State.ViewStack) - 1; i >= 0; i-- {\n\t\tif !lo.Contains(gui.popupViewNames(), gui.State.ViewStack[i]) {\n\t\t\treturn gui.State.ViewStack[i]\n\t\t}\n\t}\n\n\treturn gui.initiallyFocusedViewName()\n}\n\nfunc (gui *Gui) currentSideViewName() string {\n\tgui.Mutexes.ViewStackMutex.Lock()\n\tdefer gui.Mutexes.ViewStackMutex.Unlock()\n\n\t// we expect that there is a side window somewhere in the view stack, so we will search from top to bottom\n\tfor idx := range gui.State.ViewStack {\n\t\treversedIdx := len(gui.State.ViewStack) - 1 - idx\n\t\tviewName := gui.State.ViewStack[reversedIdx]\n\t\tif lo.Contains(gui.sideViewNames(), viewName) {\n\t\t\treturn viewName\n\t\t}\n\t}\n\n\treturn gui.initiallyFocusedViewName()\n}\n"
  },
  {
    "path": "pkg/gui/gocui.go",
    "content": "package gui\n\nimport (\n\t\"github.com/gookit/color\"\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n)\n\nvar gocuiColorMap = map[string]gocui.Attribute{\n\t\"default\":   gocui.ColorDefault,\n\t\"black\":     gocui.ColorBlack,\n\t\"red\":       gocui.ColorRed,\n\t\"green\":     gocui.ColorGreen,\n\t\"yellow\":    gocui.ColorYellow,\n\t\"blue\":      gocui.ColorBlue,\n\t\"magenta\":   gocui.ColorMagenta,\n\t\"cyan\":      gocui.ColorCyan,\n\t\"white\":     gocui.ColorWhite,\n\t\"bold\":      gocui.AttrBold,\n\t\"reverse\":   gocui.AttrReverse,\n\t\"underline\": gocui.AttrUnderline,\n}\n\n// GetAttribute gets the gocui color attribute from the string\nfunc GetGocuiAttribute(key string) gocui.Attribute {\n\tif utils.IsValidHexValue(key) {\n\t\tvalues := color.HEX(key).Values()\n\t\treturn gocui.NewRGBColor(int32(values[0]), int32(values[1]), int32(values[2]))\n\t}\n\n\tvalue, present := gocuiColorMap[key]\n\tif present {\n\t\treturn value\n\t}\n\treturn gocui.ColorDefault\n}\n\n// GetGocuiStyle bitwise OR's a list of attributes obtained via the given keys\nfunc GetGocuiStyle(keys []string) gocui.Attribute {\n\tvar attribute gocui.Attribute\n\tfor _, key := range keys {\n\t\tattribute |= GetGocuiAttribute(key)\n\t}\n\treturn attribute\n}\n"
  },
  {
    "path": "pkg/gui/gui.go",
    "content": "package gui\n\nimport (\n\t\"context\"\n\t\"os\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/events\"\n\n\t\"github.com/go-errors/errors\"\n\n\tthrottle \"github.com/boz/go-throttle\"\n\t\"github.com/jesseduffield/gocui\"\n\tlcUtils \"github.com/jesseduffield/lazycore/pkg/utils\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/panels\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/types\"\n\t\"github.com/jesseduffield/lazydocker/pkg/i18n\"\n\t\"github.com/jesseduffield/lazydocker/pkg/tasks\"\n\t\"github.com/sasha-s/go-deadlock\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// Gui wraps the gocui Gui object which handles rendering and events\ntype Gui struct {\n\tg             *gocui.Gui\n\tLog           *logrus.Entry\n\tDockerCommand *commands.DockerCommand\n\tOSCommand     *commands.OSCommand\n\tState         guiState\n\tConfig        *config.AppConfig\n\tTr            *i18n.TranslationSet\n\tstatusManager *statusManager\n\ttaskManager   *tasks.TaskManager\n\tErrorChan     chan error\n\tViews         Views\n\n\t// if we've suspended the gui (e.g. because we've switched to a subprocess)\n\t// we typically want to pause some things that are running like background\n\t// file refreshes\n\tPauseBackgroundThreads bool\n\n\tMutexes\n\n\tPanels Panels\n}\n\ntype Panels struct {\n\tProjects   *panels.SideListPanel[*commands.Project]\n\tServices   *panels.SideListPanel[*commands.Service]\n\tContainers *panels.SideListPanel[*commands.Container]\n\tImages     *panels.SideListPanel[*commands.Image]\n\tVolumes    *panels.SideListPanel[*commands.Volume]\n\tNetworks   *panels.SideListPanel[*commands.Network]\n\tMenu       *panels.SideListPanel[*types.MenuItem]\n}\n\ntype Mutexes struct {\n\tSubprocessMutex deadlock.Mutex\n\tViewStackMutex  deadlock.Mutex\n}\n\ntype mainPanelState struct {\n\t// ObjectKey tells us what context we are in. For example, if we are looking at the logs of a particular service in the services panel this key might be 'services-<service id>-logs'. The key is made so that if something changes which might require us to re-run the logs command or run a different command, the key will be different, and we'll then know to do whatever is required. Object key probably isn't the best name for this but Context is already used to refer to tabs. Maybe I should just call them tabs.\n\tObjectKey string\n}\n\ntype panelStates struct {\n\tMain *mainPanelState\n}\n\ntype guiState struct {\n\t// the names of views in the current focus stack (last item is the current view)\n\tViewStack        []string\n\tPlatform         commands.Platform\n\tPanels           *panelStates\n\tSubProcessOutput string\n\tStats            map[string]commands.ContainerStats\n\n\t// if true, we show containers with an 'exited' status in the containers panel\n\tShowExitedContainers bool\n\n\tScreenMode WindowMaximisation\n\n\t// Maintains the state of manual filtering i.e. typing in a substring\n\t// to filter on in the current panel.\n\tFilter filterState\n}\n\ntype filterState struct {\n\t// If true then we're either currently inside the filter view\n\t// or we've committed the filter and we're back in the list view\n\tactive bool\n\t// The panel that we're filtering.\n\tpanel panels.ISideListPanel\n\t// The string that we're filtering on\n\tneedle string\n}\n\n// screen sizing determines how much space your selected window takes up (window\n// as in panel, not your terminal's window). Sometimes you want a bit more space\n// to see the contents of a panel, and this keeps track of how much maximisation\n// you've set\ntype WindowMaximisation int\n\nconst (\n\tSCREEN_NORMAL WindowMaximisation = iota\n\tSCREEN_HALF\n\tSCREEN_FULL\n)\n\nfunc getScreenMode(config *config.AppConfig) WindowMaximisation {\n\tswitch config.UserConfig.Gui.ScreenMode {\n\tcase \"normal\":\n\t\treturn SCREEN_NORMAL\n\tcase \"half\":\n\t\treturn SCREEN_HALF\n\tcase \"fullscreen\":\n\t\treturn SCREEN_FULL\n\tdefault:\n\t\treturn SCREEN_NORMAL\n\t}\n}\n\n// NewGui builds a new gui handler\nfunc NewGui(log *logrus.Entry, dockerCommand *commands.DockerCommand, oSCommand *commands.OSCommand, tr *i18n.TranslationSet, config *config.AppConfig, errorChan chan error) (*Gui, error) {\n\tinitialState := guiState{\n\t\tPlatform: *oSCommand.Platform,\n\t\tPanels: &panelStates{\n\t\t\tMain: &mainPanelState{\n\t\t\t\tObjectKey: \"\",\n\t\t\t},\n\t\t},\n\t\tViewStack: []string{},\n\n\t\tShowExitedContainers: true,\n\t\tScreenMode:           getScreenMode(config),\n\t}\n\n\tgui := &Gui{\n\t\tLog:           log,\n\t\tDockerCommand: dockerCommand,\n\t\tOSCommand:     oSCommand,\n\t\tState:         initialState,\n\t\tConfig:        config,\n\t\tTr:            tr,\n\t\tstatusManager: &statusManager{},\n\t\ttaskManager:   tasks.NewTaskManager(log, tr),\n\t\tErrorChan:     errorChan,\n\t}\n\n\tdeadlock.Opts.Disable = !gui.Config.Debug\n\tdeadlock.Opts.DeadlockTimeout = 10 * time.Second\n\n\treturn gui, nil\n}\n\nfunc (gui *Gui) renderGlobalOptions() error {\n\treturn gui.renderOptionsMap(map[string]string{\n\t\t\"PgUp/PgDn\": gui.Tr.Scroll,\n\t\t\"← → ↑ ↓\":   gui.Tr.Navigate,\n\t\t\"q\":         gui.Tr.Quit,\n\t\t\"b\":         gui.Tr.ViewBulkCommands,\n\t\t\"x\":         gui.Tr.Menu,\n\t})\n}\n\nfunc (gui *Gui) goEvery(interval time.Duration, function func() error) {\n\t_ = function() // time.Tick doesn't run immediately so we'll do that here // TODO: maybe change\n\tgo func() {\n\t\tticker := time.NewTicker(interval)\n\t\tdefer ticker.Stop()\n\t\tfor range ticker.C {\n\t\t\tif !gui.PauseBackgroundThreads {\n\t\t\t\t_ = function()\n\t\t\t}\n\t\t}\n\t}()\n}\n\n// Run setup the gui with keybindings and start the mainloop\nfunc (gui *Gui) Run() error {\n\t// closing our task manager which in turn closes the current task if there is any, so we aren't leaving processes lying around after closing lazydocker\n\tdefer gui.taskManager.Close()\n\n\tg, err := gocui.NewGui(gocui.NewGuiOpts{\n\t\tOutputMode:       gocui.OutputTrue,\n\t\tRuneReplacements: map[rune]string{},\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer g.Close()\n\n\t// forgive the double-negative, this is because of my yaml `omitempty` woes\n\tif !gui.Config.UserConfig.Gui.IgnoreMouseEvents {\n\t\tg.Mouse = true\n\t}\n\n\tgui.g = g // TODO: always use gui.g rather than passing g around everywhere\n\n\t// if the deadlock package wants to report a deadlock, we first need to\n\t// close the gui so that we can actually read what it prints.\n\tdeadlock.Opts.LogBuf = lcUtils.NewOnceWriter(os.Stderr, func() {\n\t\tgui.g.Close()\n\t})\n\n\tif err := gui.SetColorScheme(); err != nil {\n\t\treturn err\n\t}\n\n\tthrottledRefresh := throttle.ThrottleFunc(time.Millisecond*50, true, gui.refresh)\n\tdefer throttledRefresh.Stop()\n\n\tgo func() {\n\t\tfor err := range gui.ErrorChan {\n\t\t\tif err == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif strings.Contains(err.Error(), \"No such container\") {\n\t\t\t\t// this happens all the time when e.g. restarting containers so we won't worry about it\n\t\t\t\tgui.Log.Warn(err)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t_ = gui.createErrorPanel(err.Error())\n\t\t}\n\t}()\n\n\tg.SetManager(gocui.ManagerFunc(gui.layout), gocui.ManagerFunc(gui.getFocusLayout()))\n\n\tif err := gui.createAllViews(); err != nil {\n\t\treturn err\n\t}\n\tif err := gui.setInitialViewContent(); err != nil {\n\t\treturn err\n\t}\n\n\t// TODO: see if we can avoid the circular dependency\n\tgui.setPanels()\n\n\tif err = gui.keybindings(g); err != nil {\n\t\treturn err\n\t}\n\n\tif gui.g.CurrentView() == nil {\n\t\tviewName := gui.initiallyFocusedViewName()\n\t\tview, err := gui.g.View(viewName)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := gui.switchFocus(view); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tctx, finish := context.WithCancel(context.Background())\n\tdefer finish()\n\n\tgo gui.listenForEvents(ctx, throttledRefresh.Trigger)\n\tgo gui.monitorContainerStats(ctx)\n\n\tgo func() {\n\t\tthrottledRefresh.Trigger()\n\n\t\tgui.goEvery(time.Millisecond*30, gui.reRenderMain)\n\t\tgui.goEvery(time.Millisecond*1000, gui.updateContainerDetails)\n\t\tgui.goEvery(time.Millisecond*1000, gui.checkForContextChange)\n\t\t// we need to regularly re-render these because their stats will be changed in the background\n\t\tgui.goEvery(time.Millisecond*1000, gui.renderContainersAndServices)\n\t}()\n\n\terr = g.MainLoop()\n\tif err == gocui.ErrQuit {\n\t\treturn nil\n\t}\n\treturn err\n}\n\nfunc (gui *Gui) setPanels() {\n\tgui.Panels = Panels{\n\t\tProjects:   gui.getProjectPanel(),\n\t\tServices:   gui.getServicesPanel(),\n\t\tContainers: gui.getContainersPanel(),\n\t\tImages:     gui.getImagesPanel(),\n\t\tVolumes:    gui.getVolumesPanel(),\n\t\tNetworks:   gui.getNetworksPanel(),\n\t\tMenu:       gui.getMenuPanel(),\n\t}\n}\n\nfunc (gui *Gui) updateContainerDetails() error {\n\treturn gui.DockerCommand.RefreshContainerDetails(gui.Panels.Containers.List.GetAllItems())\n}\n\nfunc (gui *Gui) refresh() {\n\tgo func() {\n\t\t// Refresh containers/services first, then projects (which depend on\n\t\t// container labels to discover projects).\n\t\tif err := gui.refreshContainersAndServices(); err != nil {\n\t\t\tgui.Log.Error(err)\n\t\t}\n\t\tif err := gui.refreshProject(); err != nil {\n\t\t\tgui.Log.Error(err)\n\t\t}\n\t}()\n\tgo func() {\n\t\tif err := gui.reloadVolumes(); err != nil {\n\t\t\tgui.Log.Error(err)\n\t\t}\n\t}()\n\tgo func() {\n\t\tif err := gui.reloadNetworks(); err != nil {\n\t\t\tgui.Log.Error(err)\n\t\t}\n\t}()\n\tgo func() {\n\t\tif err := gui.reloadImages(); err != nil {\n\t\t\tgui.Log.Error(err)\n\t\t}\n\t}()\n}\n\nfunc (gui *Gui) listenForEvents(ctx context.Context, refresh func()) {\n\terrorCount := 0\n\n\tonError := func(err error) {\n\t\tif err != nil {\n\t\t\tgui.ErrorChan <- errors.Errorf(\"Docker event stream returned error: %s\\nRetry count: %d\", err.Error(), errorCount)\n\t\t}\n\t\terrorCount++\n\t\ttime.Sleep(time.Second * 2)\n\t}\n\nouter:\n\tfor {\n\t\tmessageChan, errChan := gui.DockerCommand.Client.Events(context.Background(), events.ListOptions{})\n\n\t\tif errorCount > 0 {\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn\n\t\t\tcase err := <-errChan:\n\t\t\t\tonError(err)\n\t\t\t\tcontinue outer\n\t\t\tdefault:\n\t\t\t\t// If we're here then we lost connection to docker and we just got it back.\n\t\t\t\t// The reason we do this refresh explicitly is because successfully\n\t\t\t\t// reconnecting with docker does not mean it's going to send us a new\n\t\t\t\t// event any time soon.\n\n\t\t\t\t// Assuming the confirmation prompt currently holds the given error\n\t\t\t\t_ = gui.closeConfirmationPrompt()\n\t\t\t\trefresh()\n\t\t\t\terrorCount = 0\n\t\t\t}\n\t\t}\n\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn\n\t\t\tcase message := <-messageChan:\n\t\t\t\t// We could be more granular about what events should trigger which refreshes.\n\t\t\t\t// At the moment it's pretty efficient though, and it might not be worth\n\t\t\t\t// the maintenance burden of mapping specific events to specific refreshes\n\t\t\t\trefresh()\n\n\t\t\t\tgui.Log.Infof(\"received event of type: %s\", message.Type)\n\t\t\tcase err := <-errChan:\n\t\t\t\tonError(err)\n\t\t\t\tcontinue outer\n\t\t\t}\n\t\t}\n\t}\n}\n\n// checkForContextChange runs the currently focused panel's 'select' function, simulating the current item having just been selected. This will then trigger a check to see if anything's changed (e.g. a service has a new container) and if so, the appropriate code will run. For example, if you're reading logs from a service and all of a sudden its container changes, this will trigger the 'select' function, which will work out that the context is not different because of the new container, and then it will re-attempt to get the logs, this time for the correct container. This 'context' is stored in the main panel's ObjectKey. I'm using the term 'context' here more broadly than just the different tabs you can view in a panel.\nfunc (gui *Gui) checkForContextChange() error {\n\treturn gui.newLineFocused(gui.g.CurrentView())\n}\n\nfunc (gui *Gui) reRenderMain() error {\n\tmainView := gui.Views.Main\n\tif mainView == nil {\n\t\treturn nil\n\t}\n\tif mainView.IsTainted() {\n\t\tgui.g.Update(func(g *gocui.Gui) error {\n\t\t\treturn nil\n\t\t})\n\t}\n\treturn nil\n}\n\nfunc (gui *Gui) quit(g *gocui.Gui, v *gocui.View) error {\n\tif gui.Config.UserConfig.ConfirmOnQuit {\n\t\treturn gui.createConfirmationPanel(\"\", gui.Tr.ConfirmQuit, func(g *gocui.Gui, v *gocui.View) error {\n\t\t\treturn gocui.ErrQuit\n\t\t}, nil)\n\t}\n\treturn gocui.ErrQuit\n}\n\n// this handler is executed when we press escape when there is only one view\n// on the stack.\nfunc (gui *Gui) escape() error {\n\tif gui.State.Filter.active {\n\t\treturn gui.clearFilter()\n\t}\n\n\treturn nil\n}\n\nfunc (gui *Gui) handleDonate(g *gocui.Gui, v *gocui.View) error {\n\tif !gui.g.Mouse {\n\t\treturn nil\n\t}\n\n\tcx, _ := v.Cursor()\n\tif cx > len(gui.Tr.Donate) {\n\t\treturn nil\n\t}\n\treturn gui.OSCommand.OpenLink(\"https://github.com/sponsors/jesseduffield\")\n}\n\nfunc (gui *Gui) editFile(filename string) error {\n\tcmd, err := gui.OSCommand.EditFile(filename)\n\tif err != nil {\n\t\treturn gui.createErrorPanel(err.Error())\n\t}\n\n\treturn gui.runSubprocess(cmd)\n}\n\nfunc (gui *Gui) openFile(filename string) error {\n\tif err := gui.OSCommand.OpenFile(filename); err != nil {\n\t\treturn gui.createErrorPanel(err.Error())\n\t}\n\treturn nil\n}\n\nfunc (gui *Gui) handleCustomCommand(g *gocui.Gui, v *gocui.View) error {\n\treturn gui.createPromptPanel(gui.Tr.CustomCommandTitle, func(g *gocui.Gui, v *gocui.View) error {\n\t\tcommand := gui.trimmedContent(v)\n\t\treturn gui.runSubprocess(gui.OSCommand.RunCustomCommand(command))\n\t})\n}\n\nfunc (gui *Gui) ShouldRefresh(key string) bool {\n\tif gui.State.Panels.Main.ObjectKey == key {\n\t\treturn false\n\t}\n\n\tgui.State.Panels.Main.ObjectKey = key\n\treturn true\n}\n\nfunc (gui *Gui) initiallyFocusedViewName() string {\n\tif gui.DockerCommand.InDockerComposeProject {\n\t\treturn \"services\"\n\t}\n\treturn \"containers\"\n}\n\nfunc (gui *Gui) IgnoreStrings() []string {\n\treturn gui.Config.UserConfig.Ignore\n}\n\nfunc (gui *Gui) Update(f func() error) {\n\tgui.g.Update(func(*gocui.Gui) error { return f() })\n}\n\nfunc (gui *Gui) monitorContainerStats(ctx context.Context) {\n\t// periodically loop through running containers and see if we need to create a monitor goroutine for any\n\t// every second we check if we need to spawn a new goroutine\n\tticker := time.NewTicker(time.Second)\n\tdefer ticker.Stop()\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn\n\t\tcase <-ticker.C:\n\t\t\tfor _, container := range gui.Panels.Containers.List.GetAllItems() {\n\t\t\t\tif !container.MonitoringStats {\n\t\t\t\t\tgo gui.DockerCommand.CreateClientStatMonitor(container)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// this is used by our cheatsheet code to generate keybindings. We need some views\n// and panels to exist for us to know what keybindings there are, so we invoke\n// gocui in headless mode and create them.\nfunc (gui *Gui) SetupFakeGui() {\n\tg, err := gocui.NewGui(gocui.NewGuiOpts{\n\t\tOutputMode:       gocui.OutputTrue,\n\t\tRuneReplacements: map[rune]string{},\n\t\tHeadless:         true,\n\t})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tgui.g = g\n\tdefer g.Close()\n\tif err := gui.createAllViews(); err != nil {\n\t\tpanic(err)\n\t}\n\n\tgui.setPanels()\n}\n"
  },
  {
    "path": "pkg/gui/images_panel.go",
    "content": "package gui\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/image\"\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/panels\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/presentation\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/types\"\n\t\"github.com/jesseduffield/lazydocker/pkg/tasks\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/samber/lo\"\n)\n\nfunc (gui *Gui) getImagesPanel() *panels.SideListPanel[*commands.Image] {\n\tnoneLabel := \"<none>\"\n\n\treturn &panels.SideListPanel[*commands.Image]{\n\t\tContextState: &panels.ContextState[*commands.Image]{\n\t\t\tGetMainTabs: func() []panels.MainTab[*commands.Image] {\n\t\t\t\treturn []panels.MainTab[*commands.Image]{\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"config\",\n\t\t\t\t\t\tTitle:  gui.Tr.ConfigTitle,\n\t\t\t\t\t\tRender: gui.renderImageConfigTask,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t\tGetItemContextCacheKey: func(image *commands.Image) string {\n\t\t\t\treturn \"images-\" + image.ID\n\t\t\t},\n\t\t},\n\t\tListPanel: panels.ListPanel[*commands.Image]{\n\t\t\tList: panels.NewFilteredList[*commands.Image](),\n\t\t\tView: gui.Views.Images,\n\t\t},\n\t\tNoItemsMessage: gui.Tr.NoImages,\n\t\tGui:            gui.intoInterface(),\n\t\tSort: func(a *commands.Image, b *commands.Image) bool {\n\t\t\tif a.Name == noneLabel && b.Name != noneLabel {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif a.Name != noneLabel && b.Name == noneLabel {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\tif a.Name != b.Name {\n\t\t\t\treturn a.Name < b.Name\n\t\t\t}\n\n\t\t\tif a.Tag != b.Tag {\n\t\t\t\treturn a.Tag < b.Tag\n\t\t\t}\n\n\t\t\treturn a.ID < b.ID\n\t\t},\n\t\tGetTableCells: presentation.GetImageDisplayStrings,\n\t}\n}\n\nfunc (gui *Gui) renderImageConfigTask(image *commands.Image) tasks.TaskFunc {\n\treturn gui.NewRenderStringTask(RenderStringTaskOpts{\n\t\tGetStrContent: func() string { return gui.imageConfigStr(image) },\n\t\tAutoscroll:    false,\n\t\tWrap:          false, // don't care what your config is this page is ugly without wrapping\n\t})\n}\n\nfunc (gui *Gui) imageConfigStr(image *commands.Image) string {\n\tpadding := 10\n\toutput := \"\"\n\toutput += utils.WithPadding(\"Name: \", padding) + image.Name + \"\\n\"\n\toutput += utils.WithPadding(\"ID: \", padding) + image.Image.ID + \"\\n\"\n\toutput += utils.WithPadding(\"Tags: \", padding) + utils.ColoredString(strings.Join(image.Image.RepoTags, \", \"), color.FgGreen) + \"\\n\"\n\toutput += utils.WithPadding(\"Size: \", padding) + utils.FormatDecimalBytes(int(image.Image.Size)) + \"\\n\"\n\toutput += utils.WithPadding(\"Created: \", padding) + fmt.Sprintf(\"%v\", time.Unix(image.Image.Created, 0).Format(time.RFC1123)) + \"\\n\"\n\n\thistory, err := image.RenderHistory()\n\tif err != nil {\n\t\tgui.Log.Error(err)\n\t}\n\n\toutput += \"\\n\\n\" + history\n\n\treturn output\n}\n\nfunc (gui *Gui) reloadImages() error {\n\tif err := gui.refreshStateImages(); err != nil {\n\t\treturn err\n\t}\n\n\treturn gui.Panels.Images.RerenderList()\n}\n\nfunc (gui *Gui) refreshStateImages() error {\n\timages, err := gui.DockerCommand.RefreshImages()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tgui.Panels.Images.SetItems(images)\n\n\treturn nil\n}\n\nfunc (gui *Gui) FilterString(view *gocui.View) string {\n\tif gui.State.Filter.panel != nil && gui.State.Filter.panel.GetView() != view {\n\t\treturn \"\"\n\t}\n\n\treturn gui.State.Filter.needle\n}\n\nfunc (gui *Gui) handleImagesRemoveMenu(g *gocui.Gui, v *gocui.View) error {\n\ttype removeImageOption struct {\n\t\tdescription   string\n\t\tcommand       string\n\t\tconfigOptions image.RemoveOptions\n\t}\n\n\timg, err := gui.Panels.Images.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tshortSha := img.ID[7:17]\n\n\t// TODO: have a way of toggling in a menu instead of showing each permutation as a separate menu item\n\toptions := []*removeImageOption{\n\t\t{\n\t\t\tdescription:   gui.Tr.Remove,\n\t\t\tcommand:       \"docker image rm \" + shortSha,\n\t\t\tconfigOptions: image.RemoveOptions{PruneChildren: true, Force: false},\n\t\t},\n\t\t{\n\t\t\tdescription:   gui.Tr.RemoveWithoutPrune,\n\t\t\tcommand:       \"docker image rm --no-prune \" + shortSha,\n\t\t\tconfigOptions: image.RemoveOptions{PruneChildren: false, Force: false},\n\t\t},\n\t\t{\n\t\t\tdescription:   gui.Tr.RemoveWithForce,\n\t\t\tcommand:       \"docker image rm --force \" + shortSha,\n\t\t\tconfigOptions: image.RemoveOptions{PruneChildren: true, Force: true},\n\t\t},\n\t\t{\n\t\t\tdescription:   gui.Tr.RemoveWithoutPruneWithForce,\n\t\t\tcommand:       \"docker image rm --no-prune --force \" + shortSha,\n\t\t\tconfigOptions: image.RemoveOptions{PruneChildren: false, Force: true},\n\t\t},\n\t}\n\n\tmenuItems := lo.Map(options, func(option *removeImageOption, _ int) *types.MenuItem {\n\t\treturn &types.MenuItem{\n\t\t\tLabelColumns: []string{\n\t\t\t\toption.description,\n\t\t\t\tcolor.New(color.FgRed).Sprint(option.command),\n\t\t\t},\n\t\t\tOnPress: func() error {\n\t\t\t\tif err := img.Remove(option.configOptions); err != nil {\n\t\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t\t}\n\n\t\t\t\treturn nil\n\t\t\t},\n\t\t}\n\t})\n\n\treturn gui.Menu(CreateMenuOptions{\n\t\tTitle: \"\",\n\t\tItems: menuItems,\n\t})\n}\n\nfunc (gui *Gui) handlePruneImages() error {\n\treturn gui.createConfirmationPanel(gui.Tr.Confirm, gui.Tr.ConfirmPruneImages, func(g *gocui.Gui, v *gocui.View) error {\n\t\treturn gui.WithWaitingStatus(gui.Tr.PruningStatus, func() error {\n\t\t\terr := gui.DockerCommand.PruneImages()\n\t\t\tif err != nil {\n\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t}\n\t\t\treturn gui.reloadImages()\n\t\t})\n\t}, nil)\n}\n\nfunc (gui *Gui) handleImagesCustomCommand(g *gocui.Gui, v *gocui.View) error {\n\timg, err := gui.Panels.Images.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tcommandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{\n\t\tImage: img,\n\t})\n\n\tcustomCommands := gui.Config.UserConfig.CustomCommands.Images\n\n\treturn gui.createCustomCommandMenu(customCommands, commandObject)\n}\n\nfunc (gui *Gui) handleImagesBulkCommand(g *gocui.Gui, v *gocui.View) error {\n\tbaseBulkCommands := []config.CustomCommand{\n\t\t{\n\t\t\tName:             gui.Tr.PruneImages,\n\t\t\tInternalFunction: gui.handlePruneImages,\n\t\t},\n\t}\n\n\tbulkCommands := append(baseBulkCommands, gui.Config.UserConfig.BulkCommands.Images...)\n\tcommandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{})\n\n\treturn gui.createBulkCommandMenu(bulkCommands, commandObject)\n}\n"
  },
  {
    "path": "pkg/gui/keybindings.go",
    "content": "package gui\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/jesseduffield/gocui\"\n)\n\n// Binding - a keybinding mapping a key and modifier to a handler. The keypress\n// is only handled if the given view has focus, or handled globally if the view\n// is \"\"\ntype Binding struct {\n\tViewName    string\n\tHandler     func(*gocui.Gui, *gocui.View) error\n\tKey         interface{} // FIXME: find out how to get `gocui.Key | rune`\n\tModifier    gocui.Modifier\n\tDescription string\n}\n\n// GetKey is a function.\nfunc (b *Binding) GetKey() string {\n\tkey := 0\n\n\tswitch b.Key.(type) {\n\tcase rune:\n\t\tkey = int(b.Key.(rune))\n\tcase gocui.Key:\n\t\tkey = int(b.Key.(gocui.Key))\n\t}\n\n\t// special keys\n\tswitch key {\n\tcase 27:\n\t\treturn \"esc\"\n\tcase 13:\n\t\treturn \"enter\"\n\tcase 32:\n\t\treturn \"space\"\n\tcase 65514:\n\t\treturn \"►\"\n\tcase 65515:\n\t\treturn \"◄\"\n\tcase 65517:\n\t\treturn \"▲\"\n\tcase 65516:\n\t\treturn \"▼\"\n\tcase 65508:\n\t\treturn \"PgUp\"\n\tcase 65507:\n\t\treturn \"PgDn\"\n\t}\n\n\treturn fmt.Sprintf(\"%c\", key)\n}\n\n// GetInitialKeybindings is a function.\nfunc (gui *Gui) GetInitialKeybindings() []*Binding {\n\tbindings := []*Binding{\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      gocui.KeyEsc,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.escape),\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      'q',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.quit,\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      gocui.KeyCtrlC,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.quit,\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      gocui.KeyPgup,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.scrollUpMain),\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      gocui.KeyPgdn,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.scrollDownMain),\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      gocui.KeyCtrlU,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.scrollUpMain),\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      gocui.KeyCtrlD,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.scrollDownMain),\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      gocui.KeyEnd,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.autoScrollMain,\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      gocui.KeyHome,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.jumpToTopMain,\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      'x',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.handleCreateOptionsMenu,\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      '?',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.handleCreateOptionsMenu,\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      'X',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.handleCustomCommand,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"project\",\n\t\t\tKey:         'e',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleEditConfig,\n\t\t\tDescription: gui.Tr.EditConfig,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"project\",\n\t\t\tKey:         'o',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleOpenConfig,\n\t\t\tDescription: gui.Tr.OpenConfig,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"project\",\n\t\t\tKey:         'm',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleViewAllLogs,\n\t\t\tDescription: gui.Tr.ViewLogs,\n\t\t},\n\t\t{\n\t\t\tViewName: \"menu\",\n\t\t\tKey:      gocui.KeyEsc,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.handleMenuClose),\n\t\t},\n\t\t{\n\t\t\tViewName: \"menu\",\n\t\t\tKey:      'q',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.handleMenuClose),\n\t\t},\n\t\t{\n\t\t\tViewName: \"menu\",\n\t\t\tKey:      ' ',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.handleMenuPress),\n\t\t},\n\t\t{\n\t\t\tViewName: \"menu\",\n\t\t\tKey:      gocui.KeyEnter,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.handleMenuPress),\n\t\t},\n\t\t{\n\t\t\tViewName: \"menu\",\n\t\t\tKey:      'y',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.handleMenuPress),\n\t\t},\n\t\t{\n\t\t\tViewName: \"information\",\n\t\t\tKey:      gocui.MouseLeft,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.handleDonate,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"containers\",\n\t\t\tKey:         'd',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleContainersRemoveMenu,\n\t\t\tDescription: gui.Tr.Remove,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"containers\",\n\t\t\tKey:         'e',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleHideStoppedContainers,\n\t\t\tDescription: gui.Tr.HideStopped,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"containers\",\n\t\t\tKey:         'p',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleContainerPause,\n\t\t\tDescription: gui.Tr.Pause,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"containers\",\n\t\t\tKey:         's',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleContainerStop,\n\t\t\tDescription: gui.Tr.Stop,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"containers\",\n\t\t\tKey:         'r',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleContainerRestart,\n\t\t\tDescription: gui.Tr.Restart,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"containers\",\n\t\t\tKey:         'a',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleContainerAttach,\n\t\t\tDescription: gui.Tr.Attach,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"containers\",\n\t\t\tKey:         'm',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleContainerViewLogs,\n\t\t\tDescription: gui.Tr.ViewLogs,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"containers\",\n\t\t\tKey:         'E',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleContainersExecShell,\n\t\t\tDescription: gui.Tr.ExecShell,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"containers\",\n\t\t\tKey:         'c',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleContainersCustomCommand,\n\t\t\tDescription: gui.Tr.RunCustomCommand,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"containers\",\n\t\t\tKey:         'b',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleContainersBulkCommand,\n\t\t\tDescription: gui.Tr.ViewBulkCommands,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"containers\",\n\t\t\tKey:         'w',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleContainersOpenInBrowserCommand,\n\t\t\tDescription: gui.Tr.OpenInBrowser,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'u',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServiceUp,\n\t\t\tDescription: gui.Tr.UpService,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'd',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServiceRemoveMenu,\n\t\t\tDescription: gui.Tr.RemoveService,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         's',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServiceStop,\n\t\t\tDescription: gui.Tr.Stop,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'p',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServicePause,\n\t\t\tDescription: gui.Tr.Pause,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'r',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServiceRestart,\n\t\t\tDescription: gui.Tr.Restart,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'S',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServiceStart,\n\t\t\tDescription: gui.Tr.Start,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'a',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServiceAttach,\n\t\t\tDescription: gui.Tr.Attach,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'm',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServiceRenderLogsToMain,\n\t\t\tDescription: gui.Tr.ViewLogs,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'U',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleProjectUp,\n\t\t\tDescription: gui.Tr.UpProject,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'D',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleProjectDown,\n\t\t\tDescription: gui.Tr.DownProject,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'R',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServiceRestartMenu,\n\t\t\tDescription: gui.Tr.ViewRestartOptions,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'c',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServicesCustomCommand,\n\t\t\tDescription: gui.Tr.RunCustomCommand,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'b',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServicesBulkCommand,\n\t\t\tDescription: gui.Tr.ViewBulkCommands,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'E',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServicesExecShell,\n\t\t\tDescription: gui.Tr.ExecShell,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"services\",\n\t\t\tKey:         'w',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleServicesOpenInBrowserCommand,\n\t\t\tDescription: gui.Tr.OpenInBrowser,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"images\",\n\t\t\tKey:         'c',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleImagesCustomCommand,\n\t\t\tDescription: gui.Tr.RunCustomCommand,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"images\",\n\t\t\tKey:         'd',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleImagesRemoveMenu,\n\t\t\tDescription: gui.Tr.RemoveImage,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"images\",\n\t\t\tKey:         'b',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleImagesBulkCommand,\n\t\t\tDescription: gui.Tr.ViewBulkCommands,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"volumes\",\n\t\t\tKey:         'c',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleVolumesCustomCommand,\n\t\t\tDescription: gui.Tr.RunCustomCommand,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"volumes\",\n\t\t\tKey:         'd',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleVolumesRemoveMenu,\n\t\t\tDescription: gui.Tr.RemoveVolume,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"volumes\",\n\t\t\tKey:         'b',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleVolumesBulkCommand,\n\t\t\tDescription: gui.Tr.ViewBulkCommands,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"networks\",\n\t\t\tKey:         'c',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleNetworksCustomCommand,\n\t\t\tDescription: gui.Tr.RunCustomCommand,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"networks\",\n\t\t\tKey:         'd',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleNetworksRemoveMenu,\n\t\t\tDescription: gui.Tr.RemoveNetwork,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"networks\",\n\t\t\tKey:         'b',\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleNetworksBulkCommand,\n\t\t\tDescription: gui.Tr.ViewBulkCommands,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"main\",\n\t\t\tKey:         gocui.KeyEsc,\n\t\t\tModifier:    gocui.ModNone,\n\t\t\tHandler:     gui.handleExitMain,\n\t\t\tDescription: gui.Tr.Return,\n\t\t},\n\t\t{\n\t\t\tViewName: \"main\",\n\t\t\tKey:      gocui.KeyArrowLeft,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.scrollLeftMain,\n\t\t},\n\t\t{\n\t\t\tViewName: \"main\",\n\t\t\tKey:      gocui.KeyArrowRight,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.scrollRightMain,\n\t\t},\n\t\t{\n\t\t\tViewName: \"main\",\n\t\t\tKey:      'h',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.scrollLeftMain,\n\t\t},\n\t\t{\n\t\t\tViewName: \"main\",\n\t\t\tKey:      'l',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.scrollRightMain,\n\t\t},\n\t\t{\n\t\t\tViewName: \"filter\",\n\t\t\tKey:      gocui.KeyEnter,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.commitFilter),\n\t\t},\n\t\t{\n\t\t\tViewName: \"filter\",\n\t\t\tKey:      gocui.KeyEsc,\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.escapeFilterPrompt),\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      'J',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.scrollDownMain),\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      'K',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  wrappedHandler(gui.scrollUpMain),\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      'H',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.scrollLeftMain,\n\t\t},\n\t\t{\n\t\t\tViewName: \"\",\n\t\t\tKey:      'L',\n\t\t\tModifier: gocui.ModNone,\n\t\t\tHandler:  gui.scrollRightMain,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"\",\n\t\t\tKey:         '+',\n\t\t\tHandler:     wrappedHandler(gui.nextScreenMode),\n\t\t\tDescription: gui.Tr.LcNextScreenMode,\n\t\t},\n\t\t{\n\t\t\tViewName:    \"\",\n\t\t\tKey:         '_',\n\t\t\tHandler:     wrappedHandler(gui.prevScreenMode),\n\t\t\tDescription: gui.Tr.LcPrevScreenMode,\n\t\t},\n\t}\n\n\tfor _, panel := range gui.allSidePanels() {\n\t\tbindings = append(bindings, []*Binding{\n\t\t\t{ViewName: panel.GetView().Name(), Key: gocui.KeyArrowLeft, Modifier: gocui.ModNone, Handler: gui.previousView},\n\t\t\t{ViewName: panel.GetView().Name(), Key: gocui.KeyArrowRight, Modifier: gocui.ModNone, Handler: gui.nextView},\n\t\t\t{ViewName: panel.GetView().Name(), Key: 'h', Modifier: gocui.ModNone, Handler: gui.previousView},\n\t\t\t{ViewName: panel.GetView().Name(), Key: 'l', Modifier: gocui.ModNone, Handler: gui.nextView},\n\t\t\t{ViewName: panel.GetView().Name(), Key: gocui.KeyTab, Modifier: gocui.ModNone, Handler: gui.nextView},\n\t\t\t{ViewName: panel.GetView().Name(), Key: gocui.KeyBacktab, Modifier: gocui.ModNone, Handler: gui.previousView},\n\t\t}...)\n\t}\n\n\tsetUpDownClickBindings := func(viewName string, onUp func() error, onDown func() error, onClick func() error) {\n\t\tbindings = append(bindings, []*Binding{\n\t\t\t{ViewName: viewName, Key: 'k', Modifier: gocui.ModNone, Handler: wrappedHandler(onUp)},\n\t\t\t{ViewName: viewName, Key: gocui.KeyArrowUp, Modifier: gocui.ModNone, Handler: wrappedHandler(onUp)},\n\t\t\t{ViewName: viewName, Key: gocui.MouseWheelUp, Modifier: gocui.ModNone, Handler: wrappedHandler(onUp)},\n\t\t\t{ViewName: viewName, Key: 'j', Modifier: gocui.ModNone, Handler: wrappedHandler(onDown)},\n\t\t\t{ViewName: viewName, Key: gocui.KeyArrowDown, Modifier: gocui.ModNone, Handler: wrappedHandler(onDown)},\n\t\t\t{ViewName: viewName, Key: gocui.MouseWheelDown, Modifier: gocui.ModNone, Handler: wrappedHandler(onDown)},\n\t\t\t{ViewName: viewName, Key: gocui.MouseLeft, Modifier: gocui.ModNone, Handler: wrappedHandler(onClick)},\n\t\t}...)\n\t}\n\n\tbindings = append(bindings, []*Binding{\n\t\t{Handler: gui.handleGoTo(gui.Panels.Projects.View), Key: '1', Description: gui.Tr.FocusProjects},\n\t\t{Handler: gui.handleGoTo(gui.Panels.Services.View), Key: '2', Description: gui.Tr.FocusServices},\n\t\t{Handler: gui.handleGoTo(gui.Panels.Containers.View), Key: '3', Description: gui.Tr.FocusContainers},\n\t\t{Handler: gui.handleGoTo(gui.Panels.Images.View), Key: '4', Description: gui.Tr.FocusImages},\n\t\t{Handler: gui.handleGoTo(gui.Panels.Volumes.View), Key: '5', Description: gui.Tr.FocusVolumes},\n\t\t{Handler: gui.handleGoTo(gui.Panels.Networks.View), Key: '6', Description: gui.Tr.FocusNetworks},\n\t}...)\n\n\tfor _, panel := range gui.allListPanels() {\n\t\tsetUpDownClickBindings(panel.GetView().Name(), panel.HandlePrevLine, panel.HandleNextLine, panel.HandleClick)\n\t}\n\n\tsetUpDownClickBindings(\"main\", gui.scrollUpMain, gui.scrollDownMain, gui.handleMainClick)\n\n\tfor _, panel := range gui.allSidePanels() {\n\t\tbindings = append(bindings,\n\t\t\t&Binding{\n\t\t\t\tViewName:    panel.GetView().Name(),\n\t\t\t\tKey:         gocui.KeyEnter,\n\t\t\t\tModifier:    gocui.ModNone,\n\t\t\t\tHandler:     gui.handleEnterMain,\n\t\t\t\tDescription: gui.Tr.FocusMain,\n\t\t\t},\n\t\t\t&Binding{\n\t\t\t\tViewName:    panel.GetView().Name(),\n\t\t\t\tKey:         '[',\n\t\t\t\tModifier:    gocui.ModNone,\n\t\t\t\tHandler:     wrappedHandler(panel.HandlePrevMainTab),\n\t\t\t\tDescription: gui.Tr.PreviousContext,\n\t\t\t},\n\t\t\t&Binding{\n\t\t\t\tViewName:    panel.GetView().Name(),\n\t\t\t\tKey:         ']',\n\t\t\t\tModifier:    gocui.ModNone,\n\t\t\t\tHandler:     wrappedHandler(panel.HandleNextMainTab),\n\t\t\t\tDescription: gui.Tr.NextContext,\n\t\t\t},\n\t\t)\n\t}\n\n\tfor _, panel := range gui.allListPanels() {\n\t\tif !panel.IsFilterDisabled() {\n\t\t\tbindings = append(bindings, &Binding{\n\t\t\t\tViewName:    panel.GetView().Name(),\n\t\t\t\tKey:         '/',\n\t\t\t\tModifier:    gocui.ModNone,\n\t\t\t\tHandler:     wrappedHandler(gui.handleOpenFilter),\n\t\t\t\tDescription: gui.Tr.LcFilter,\n\t\t\t})\n\t\t}\n\t}\n\n\treturn bindings\n}\n\nfunc (gui *Gui) keybindings(g *gocui.Gui) error {\n\tbindings := gui.GetInitialKeybindings()\n\n\tfor _, binding := range bindings {\n\t\tif err := g.SetKeybinding(binding.ViewName, binding.Key, binding.Modifier, binding.Handler); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif err := g.SetTabClickBinding(\"main\", gui.onMainTabClick); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc wrappedHandler(f func() error) func(*gocui.Gui, *gocui.View) error {\n\treturn func(g *gocui.Gui, v *gocui.View) error {\n\t\treturn f()\n\t}\n}\n"
  },
  {
    "path": "pkg/gui/layout.go",
    "content": "package gui\n\nimport (\n\t\"github.com/jesseduffield/gocui\"\n)\n\nconst UNKNOWN_VIEW_ERROR_MSG = \"unknown view\"\n\n// getFocusLayout returns a manager function for when view gain and lose focus\nfunc (gui *Gui) getFocusLayout() func(g *gocui.Gui) error {\n\tvar previousView *gocui.View\n\treturn func(g *gocui.Gui) error {\n\t\tnewView := gui.g.CurrentView()\n\t\tif err := gui.onFocusChange(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// for now we don't consider losing focus to a popup panel as actually losing focus\n\t\tif newView != previousView && !gui.isPopupPanel(newView.Name()) {\n\t\t\tgui.onFocusLost(previousView, newView)\n\t\t\tgui.onFocus(newView)\n\t\t\tpreviousView = newView\n\t\t}\n\t\treturn nil\n\t}\n}\n\nfunc (gui *Gui) onFocusChange() error {\n\tcurrentView := gui.g.CurrentView()\n\tfor _, view := range gui.g.Views() {\n\t\tview.Highlight = view == currentView && view.Name() != \"main\"\n\t}\n\treturn nil\n}\n\nfunc (gui *Gui) onFocusLost(v *gocui.View, newView *gocui.View) {\n\tif v == nil {\n\t\treturn\n\t}\n\n\tif !gui.isPopupPanel(newView.Name()) {\n\t\tv.ParentView = nil\n\t}\n\n\t// refocusing because in responsive mode (when the window is very short) we want to ensure that after the view size changes we can still see the last selected item\n\tgui.focusPointInView(v)\n\n\tgui.Log.Info(v.Name() + \" focus lost\")\n}\n\nfunc (gui *Gui) onFocus(v *gocui.View) {\n\tif v == nil {\n\t\treturn\n\t}\n\n\tgui.focusPointInView(v)\n\n\tgui.Log.Info(v.Name() + \" focus gained\")\n}\n\n// layout is called for every screen re-render e.g. when the screen is resized\nfunc (gui *Gui) layout(g *gocui.Gui) error {\n\tg.Highlight = true\n\twidth, height := g.Size()\n\n\tappStatus := gui.statusManager.getStatusString()\n\n\tviewDimensions := gui.getWindowDimensions(gui.getInformationContent(), appStatus)\n\t// we assume that the view has already been created.\n\tsetViewFromDimensions := func(viewName string, windowName string) (*gocui.View, error) {\n\t\tdimensionsObj, ok := viewDimensions[windowName]\n\n\t\tview, err := g.View(viewName)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif !ok {\n\t\t\t// view not specified in dimensions object: so create the view and hide it\n\t\t\t// making the view take up the whole space in the background in case it needs\n\t\t\t// to render content as soon as it appears, because lazyloaded content (via a pty task)\n\t\t\t// cares about the size of the view.\n\t\t\t_, err := g.SetView(viewName, 0, 0, width, height, 0)\n\t\t\tview.Visible = false\n\t\t\treturn view, err\n\t\t}\n\n\t\tframeOffset := 1\n\t\tif view.Frame {\n\t\t\tframeOffset = 0\n\t\t}\n\t\t_, err = g.SetView(\n\t\t\tviewName,\n\t\t\tdimensionsObj.X0-frameOffset,\n\t\t\tdimensionsObj.Y0-frameOffset,\n\t\t\tdimensionsObj.X1+frameOffset,\n\t\t\tdimensionsObj.Y1+frameOffset,\n\t\t\t0,\n\t\t)\n\t\tview.Visible = true\n\n\t\treturn view, err\n\t}\n\n\tfor _, viewName := range gui.autoPositionedViewNames() {\n\t\t_, err := setViewFromDimensions(viewName, viewName)\n\t\tif err != nil && err.Error() != UNKNOWN_VIEW_ERROR_MSG {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// here is a good place log some stuff\n\t// if you download humanlog and do tail -f development.log | humanlog\n\t// this will let you see these branches as prettified json\n\t// gui.Log.Info(utils.AsJson(gui.State.Branches[0:4]))\n\treturn gui.resizeCurrentPopupPanel(g)\n}\n\nfunc (gui *Gui) focusPointInView(view *gocui.View) {\n\tif view == nil {\n\t\treturn\n\t}\n\n\tfor _, panel := range gui.allListPanels() {\n\t\tif panel.GetView() == view {\n\t\t\tpanel.Refocus()\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (gui *Gui) prepareView(viewName string) (*gocui.View, error) {\n\t// arbitrarily giving the view enough size so that we don't get an error, but\n\t// it's expected that the view will be given the correct size before being shown\n\treturn gui.g.SetView(viewName, 0, 0, 10, 10, 0)\n}\n"
  },
  {
    "path": "pkg/gui/main_panel.go",
    "content": "package gui\n\nimport (\n\t\"math\"\n\n\t\"github.com/jesseduffield/gocui\"\n)\n\nfunc (gui *Gui) scrollUpMain() error {\n\tmainView := gui.Views.Main\n\tmainView.Autoscroll = false\n\tox, oy := mainView.Origin()\n\tnewOy := int(math.Max(0, float64(oy-gui.Config.UserConfig.Gui.ScrollHeight)))\n\treturn mainView.SetOrigin(ox, newOy)\n}\n\nfunc (gui *Gui) scrollDownMain() error {\n\tmainView := gui.Views.Main\n\tmainView.Autoscroll = false\n\tox, oy := mainView.Origin()\n\n\treservedLines := 0\n\tif !gui.Config.UserConfig.Gui.ScrollPastBottom {\n\t\t_, sizeY := mainView.Size()\n\t\treservedLines = sizeY\n\t}\n\n\ttotalLines := mainView.ViewLinesHeight()\n\tif oy+reservedLines >= totalLines {\n\t\treturn nil\n\t}\n\n\treturn mainView.SetOrigin(ox, oy+gui.Config.UserConfig.Gui.ScrollHeight)\n}\n\nfunc (gui *Gui) scrollLeftMain(g *gocui.Gui, v *gocui.View) error {\n\tmainView := gui.Views.Main\n\tox, oy := mainView.Origin()\n\tnewOx := int(math.Max(0, float64(ox-gui.Config.UserConfig.Gui.ScrollHeight)))\n\n\treturn mainView.SetOrigin(newOx, oy)\n}\n\nfunc (gui *Gui) scrollRightMain(g *gocui.Gui, v *gocui.View) error {\n\tmainView := gui.Views.Main\n\tox, oy := mainView.Origin()\n\n\tcontent := mainView.ViewBufferLines()\n\tvar largestNumberOfCharacters int\n\tfor _, txt := range content {\n\t\tif len(txt) > largestNumberOfCharacters {\n\t\t\tlargestNumberOfCharacters = len(txt)\n\t\t}\n\t}\n\n\tsizeX, _ := mainView.Size()\n\tif ox+sizeX >= largestNumberOfCharacters {\n\t\treturn nil\n\t}\n\n\treturn mainView.SetOrigin(ox+gui.Config.UserConfig.Gui.ScrollHeight, oy)\n}\n\nfunc (gui *Gui) autoScrollMain(g *gocui.Gui, v *gocui.View) error {\n\tgui.Views.Main.Autoscroll = true\n\treturn nil\n}\n\nfunc (gui *Gui) jumpToTopMain(g *gocui.Gui, v *gocui.View) error {\n\tgui.Views.Main.Autoscroll = false\n\t_ = gui.Views.Main.SetOrigin(0, 0)\n\t_ = gui.Views.Main.SetCursor(0, 0)\n\treturn nil\n}\n\nfunc (gui *Gui) onMainTabClick(tabIndex int) error {\n\tgui.Log.Warn(tabIndex)\n\n\tcurrentSidePanel, ok := gui.currentSidePanel()\n\n\tif !ok {\n\t\treturn nil\n\t}\n\n\tcurrentSidePanel.SetMainTabIndex(tabIndex)\n\treturn currentSidePanel.HandleSelect()\n}\n\nfunc (gui *Gui) handleEnterMain(g *gocui.Gui, v *gocui.View) error {\n\tmainView := gui.Views.Main\n\tmainView.ParentView = v\n\n\treturn gui.switchFocus(mainView)\n}\n\nfunc (gui *Gui) handleExitMain(g *gocui.Gui, v *gocui.View) error {\n\tv.ParentView = nil\n\treturn gui.returnFocus()\n}\n\nfunc (gui *Gui) handleMainClick() error {\n\tif gui.popupPanelFocused() {\n\t\treturn nil\n\t}\n\n\tcurrentView := gui.g.CurrentView()\n\n\tif currentView.Name() != \"main\" {\n\t\tgui.Views.Main.ParentView = currentView\n\t}\n\n\treturn gui.switchFocus(gui.Views.Main)\n}\n"
  },
  {
    "path": "pkg/gui/menu_panel.go",
    "content": "package gui\n\nimport (\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/panels\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/presentation\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/types\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n)\n\ntype CreateMenuOptions struct {\n\tTitle      string\n\tItems      []*types.MenuItem\n\tHideCancel bool\n}\n\nfunc (gui *Gui) getMenuPanel() *panels.SideListPanel[*types.MenuItem] {\n\treturn &panels.SideListPanel[*types.MenuItem]{\n\t\tListPanel: panels.ListPanel[*types.MenuItem]{\n\t\t\tList: panels.NewFilteredList[*types.MenuItem](),\n\t\t\tView: gui.Views.Menu,\n\t\t},\n\t\tNoItemsMessage: \"\",\n\t\tGui:            gui.intoInterface(),\n\t\tOnClick:        gui.onMenuPress,\n\t\tSort:           nil,\n\t\tGetTableCells:  presentation.GetMenuItemDisplayStrings,\n\t\tOnRerender: func() error {\n\t\t\treturn gui.resizePopupPanel(gui.Views.Menu)\n\t\t},\n\t\t// so that we can avoid some UI trickiness, the menu will not have filtering\n\t\t// abillity yet. To support it, we would need to have filter state against\n\t\t// each panel (e.g. for when you filter the images panel, then bring up\n\t\t// the options menu, then try to filter that too.\n\t\tDisableFilter: true,\n\t}\n}\n\nfunc (gui *Gui) onMenuPress(menuItem *types.MenuItem) error {\n\tif err := gui.handleMenuClose(); err != nil {\n\t\treturn err\n\t}\n\n\tif menuItem.OnPress != nil {\n\t\treturn menuItem.OnPress()\n\t}\n\n\treturn nil\n}\n\nfunc (gui *Gui) handleMenuPress() error {\n\tselectedMenuItem, err := gui.Panels.Menu.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\treturn gui.onMenuPress(selectedMenuItem)\n}\n\nfunc (gui *Gui) Menu(opts CreateMenuOptions) error {\n\tif !opts.HideCancel {\n\t\t// this is mutative but I'm okay with that for now\n\t\topts.Items = append(opts.Items, &types.MenuItem{\n\t\t\tLabelColumns: []string{gui.Tr.Cancel},\n\t\t\tOnPress: func() error {\n\t\t\t\treturn nil\n\t\t\t},\n\t\t})\n\t}\n\n\tmaxColumnSize := 1\n\n\tfor _, item := range opts.Items {\n\t\tif item.LabelColumns == nil {\n\t\t\titem.LabelColumns = []string{item.Label}\n\t\t}\n\n\t\tif item.OpensMenu {\n\t\t\titem.LabelColumns[0] = utils.OpensMenuStyle(item.LabelColumns[0])\n\t\t}\n\n\t\tmaxColumnSize = utils.Max(maxColumnSize, len(item.LabelColumns))\n\t}\n\n\tfor _, item := range opts.Items {\n\t\tif len(item.LabelColumns) < maxColumnSize {\n\t\t\t// we require that each item has the same number of columns so we're padding out with blank strings\n\t\t\t// if this item has too few\n\t\t\titem.LabelColumns = append(item.LabelColumns, make([]string, maxColumnSize-len(item.LabelColumns))...)\n\t\t}\n\t}\n\n\tgui.Panels.Menu.SetItems(opts.Items)\n\tgui.Panels.Menu.SetSelectedLineIdx(0)\n\n\tif err := gui.Panels.Menu.RerenderList(); err != nil {\n\t\treturn err\n\t}\n\n\tgui.Views.Menu.Title = opts.Title\n\tgui.Views.Menu.Visible = true\n\n\treturn gui.switchFocus(gui.Views.Menu)\n}\n\n// specific functions\n\nfunc (gui *Gui) renderMenuOptions() error {\n\toptionsMap := map[string]string{\n\t\t\"esc\":   gui.Tr.Close,\n\t\t\"↑ ↓\":   gui.Tr.Navigate,\n\t\t\"enter\": gui.Tr.Execute,\n\t}\n\treturn gui.renderOptionsMap(optionsMap)\n}\n\nfunc (gui *Gui) handleMenuClose() error {\n\tgui.Views.Menu.Visible = false\n\n\t// this code is here for when we do add filter ability to the menu panel,\n\t// though it's currently disabled\n\tif gui.State.Filter.panel == gui.Panels.Menu {\n\t\tif err := gui.clearFilter(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// we need to remove the view from the view stack because we're about to\n\t\t// return focus and don't want to land in the search view when it was searching\n\t\t// the menu in the first place\n\t\tgui.removeViewFromStack(gui.Views.Filter)\n\t}\n\n\treturn gui.returnFocus()\n}\n"
  },
  {
    "path": "pkg/gui/networks_panel.go",
    "content": "package gui\n\nimport (\n\t\"strconv\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/panels\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/presentation\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/types\"\n\t\"github.com/jesseduffield/lazydocker/pkg/tasks\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/samber/lo\"\n)\n\nfunc (gui *Gui) getNetworksPanel() *panels.SideListPanel[*commands.Network] {\n\treturn &panels.SideListPanel[*commands.Network]{\n\t\tContextState: &panels.ContextState[*commands.Network]{\n\t\t\tGetMainTabs: func() []panels.MainTab[*commands.Network] {\n\t\t\t\treturn []panels.MainTab[*commands.Network]{\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"config\",\n\t\t\t\t\t\tTitle:  gui.Tr.ConfigTitle,\n\t\t\t\t\t\tRender: gui.renderNetworkConfig,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t\tGetItemContextCacheKey: func(network *commands.Network) string {\n\t\t\t\treturn \"networks-\" + network.Name\n\t\t\t},\n\t\t},\n\t\tListPanel: panels.ListPanel[*commands.Network]{\n\t\t\tList: panels.NewFilteredList[*commands.Network](),\n\t\t\tView: gui.Views.Networks,\n\t\t},\n\t\tNoItemsMessage: gui.Tr.NoNetworks,\n\t\tGui:            gui.intoInterface(),\n\t\t// we're sorting these networks based on whether they have labels defined,\n\t\t// because those are the ones you typically care about.\n\t\t// Within that, we also sort them alphabetically\n\t\tSort: func(a *commands.Network, b *commands.Network) bool {\n\t\t\treturn a.Name < b.Name\n\t\t},\n\t\tGetTableCells: presentation.GetNetworkDisplayStrings,\n\t}\n}\n\nfunc (gui *Gui) renderNetworkConfig(network *commands.Network) tasks.TaskFunc {\n\treturn gui.NewSimpleRenderStringTask(func() string { return gui.networkConfigStr(network) })\n}\n\nfunc (gui *Gui) networkConfigStr(network *commands.Network) string {\n\tpadding := 15\n\toutput := \"\"\n\toutput += utils.WithPadding(\"ID: \", padding) + network.Network.ID + \"\\n\"\n\toutput += utils.WithPadding(\"Name: \", padding) + network.Name + \"\\n\"\n\toutput += utils.WithPadding(\"Driver: \", padding) + network.Network.Driver + \"\\n\"\n\toutput += utils.WithPadding(\"Scope: \", padding) + network.Network.Scope + \"\\n\"\n\toutput += utils.WithPadding(\"EnabledIPV6: \", padding) + strconv.FormatBool(network.Network.EnableIPv6) + \"\\n\"\n\toutput += utils.WithPadding(\"Internal: \", padding) + strconv.FormatBool(network.Network.Internal) + \"\\n\"\n\toutput += utils.WithPadding(\"Attachable: \", padding) + strconv.FormatBool(network.Network.Attachable) + \"\\n\"\n\toutput += utils.WithPadding(\"Ingress: \", padding) + strconv.FormatBool(network.Network.Ingress) + \"\\n\"\n\n\toutput += utils.WithPadding(\"Containers: \", padding)\n\tif len(network.Network.Containers) > 0 {\n\t\toutput += \"\\n\"\n\t\tfor _, v := range network.Network.Containers {\n\t\t\toutput += utils.FormatMapItem(padding, v.Name, v.EndpointID)\n\t\t}\n\t} else {\n\t\toutput += \"none\\n\"\n\t}\n\n\toutput += \"\\n\"\n\toutput += utils.WithPadding(\"Labels: \", padding) + utils.FormatMap(padding, network.Network.Labels) + \"\\n\"\n\toutput += utils.WithPadding(\"Options: \", padding) + utils.FormatMap(padding, network.Network.Options)\n\n\treturn output\n}\n\nfunc (gui *Gui) reloadNetworks() error {\n\tif err := gui.refreshStateNetworks(); err != nil {\n\t\treturn err\n\t}\n\n\treturn gui.Panels.Networks.RerenderList()\n}\n\nfunc (gui *Gui) refreshStateNetworks() error {\n\tnetworks, err := gui.DockerCommand.RefreshNetworks()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tgui.Panels.Networks.SetItems(networks)\n\n\treturn nil\n}\n\nfunc (gui *Gui) handleNetworksRemoveMenu(g *gocui.Gui, v *gocui.View) error {\n\tnetwork, err := gui.Panels.Networks.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\ttype removeNetworkOption struct {\n\t\tdescription string\n\t\tcommand     string\n\t}\n\n\toptions := []*removeNetworkOption{\n\t\t{\n\t\t\tdescription: gui.Tr.Remove,\n\t\t\tcommand:     utils.WithShortSha(\"docker network rm \" + network.Name),\n\t\t},\n\t}\n\n\tmenuItems := lo.Map(options, func(option *removeNetworkOption, _ int) *types.MenuItem {\n\t\treturn &types.MenuItem{\n\t\t\tLabelColumns: []string{option.description, color.New(color.FgRed).Sprint(option.command)},\n\t\t\tOnPress: func() error {\n\t\t\t\treturn gui.WithWaitingStatus(gui.Tr.RemovingStatus, func() error {\n\t\t\t\t\tif err := network.Remove(); err != nil {\n\t\t\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t\t\t}\n\t\t\t\t\treturn nil\n\t\t\t\t})\n\t\t\t},\n\t\t}\n\t})\n\n\treturn gui.Menu(CreateMenuOptions{\n\t\tTitle: \"\",\n\t\tItems: menuItems,\n\t})\n}\n\nfunc (gui *Gui) handlePruneNetworks() error {\n\treturn gui.createConfirmationPanel(gui.Tr.Confirm, gui.Tr.ConfirmPruneNetworks, func(g *gocui.Gui, v *gocui.View) error {\n\t\treturn gui.WithWaitingStatus(gui.Tr.PruningStatus, func() error {\n\t\t\terr := gui.DockerCommand.PruneNetworks()\n\t\t\tif err != nil {\n\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t}\n\t\t\treturn nil\n\t\t})\n\t}, nil)\n}\n\nfunc (gui *Gui) handleNetworksCustomCommand(g *gocui.Gui, v *gocui.View) error {\n\tnetwork, err := gui.Panels.Networks.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tcommandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{\n\t\tNetwork: network,\n\t})\n\n\tcustomCommands := gui.Config.UserConfig.CustomCommands.Networks\n\n\treturn gui.createCustomCommandMenu(customCommands, commandObject)\n}\n\nfunc (gui *Gui) handleNetworksBulkCommand(g *gocui.Gui, v *gocui.View) error {\n\tbaseBulkCommands := []config.CustomCommand{\n\t\t{\n\t\t\tName:             gui.Tr.PruneNetworks,\n\t\t\tInternalFunction: gui.handlePruneNetworks,\n\t\t},\n\t}\n\n\tbulkCommands := append(baseBulkCommands, gui.Config.UserConfig.BulkCommands.Networks...)\n\tcommandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{})\n\n\treturn gui.createBulkCommandMenu(bulkCommands, commandObject)\n}\n"
  },
  {
    "path": "pkg/gui/options_menu_panel.go",
    "content": "package gui\n\nimport (\n\t\"github.com/samber/lo\"\n\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/types\"\n)\n\nfunc (gui *Gui) getBindings(v *gocui.View) []*Binding {\n\tvar bindingsGlobal, bindingsPanel []*Binding\n\n\tbindings := gui.GetInitialKeybindings()\n\n\tfor _, binding := range bindings {\n\t\tif binding.GetKey() != \"\" && binding.Description != \"\" {\n\t\t\tswitch binding.ViewName {\n\t\t\tcase \"\":\n\t\t\t\tbindingsGlobal = append(bindingsGlobal, binding)\n\t\t\tcase v.Name():\n\t\t\t\tbindingsPanel = append(bindingsPanel, binding)\n\t\t\t}\n\t\t}\n\t}\n\n\t// check if we have any keybindings from our parent view to add\n\tif v.ParentView != nil {\n\tL:\n\t\tfor _, binding := range bindings {\n\t\t\tif binding.GetKey() != \"\" && binding.Description != \"\" {\n\t\t\t\tif binding.ViewName == v.ParentView.Name() {\n\t\t\t\t\t// if we haven't got a conflict we will display the binding\n\t\t\t\t\tfor _, ownBinding := range bindingsPanel {\n\t\t\t\t\t\tif ownBinding.GetKey() == binding.GetKey() {\n\t\t\t\t\t\t\tcontinue L\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbindingsPanel = append(bindingsPanel, binding)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// append dummy element to have a separator between\n\t// panel and global keybindings\n\tbindingsPanel = append(bindingsPanel, &Binding{})\n\treturn append(bindingsPanel, bindingsGlobal...)\n}\n\nfunc (gui *Gui) handleCreateOptionsMenu(g *gocui.Gui, v *gocui.View) error {\n\tif gui.isPopupPanel(v.Name()) {\n\t\treturn nil\n\t}\n\n\tmenuItems := lo.Map(gui.getBindings(v), func(binding *Binding, _ int) *types.MenuItem {\n\t\treturn &types.MenuItem{\n\t\t\tLabelColumns: []string{binding.GetKey(), binding.Description},\n\t\t\tOnPress: func() error {\n\t\t\t\tif binding.Key == nil {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\n\t\t\t\treturn binding.Handler(g, v)\n\t\t\t},\n\t\t}\n\t})\n\n\treturn gui.Menu(CreateMenuOptions{\n\t\tTitle:      gui.Tr.MenuTitle,\n\t\tItems:      menuItems,\n\t\tHideCancel: true,\n\t})\n}\n"
  },
  {
    "path": "pkg/gui/panels/context_state.go",
    "content": "package panels\n\nimport (\n\t\"github.com/jesseduffield/lazydocker/pkg/tasks\"\n\t\"github.com/samber/lo\"\n)\n\n// A 'context' generally corresponds to an item and the tab in the main panel that we're\n// displaying. So if we switch to a new item, or change the tab in the panel panel\n// for the current item, we end up with a new context. When we have a new context,\n// we render new content to the main panel.\ntype ContextState[T any] struct {\n\t// index of the currently selected tab in the main view.\n\tmainTabIdx int\n\t// this function returns the tabs that we can display for an item (the tabs\n\t// are shown on the main view)\n\tGetMainTabs func() []MainTab[T]\n\t// This tells us whether we need to re-render to the main panel for a given item.\n\t// This should include the item's ID and if you want to invalidate the cache for\n\t// some other reason, you can add that to the key as well (e.g. the container's state).\n\tGetItemContextCacheKey func(item T) string\n}\n\ntype MainTab[T any] struct {\n\t// key used as part of the context cache key\n\tKey string\n\t// title of the tab, rendered in the main view\n\tTitle string\n\t// function to render the content of the tab\n\tRender func(item T) tasks.TaskFunc\n}\n\nfunc (self *ContextState[T]) GetMainTabTitles() []string {\n\treturn lo.Map(self.GetMainTabs(), func(tab MainTab[T], _ int) string {\n\t\treturn tab.Title\n\t})\n}\n\nfunc (self *ContextState[T]) GetCurrentContextKey(item T) string {\n\treturn self.GetItemContextCacheKey(item) + \"-\" + self.GetCurrentMainTab().Key\n}\n\nfunc (self *ContextState[T]) GetCurrentMainTab() MainTab[T] {\n\treturn self.GetMainTabs()[self.mainTabIdx]\n}\n\nfunc (self *ContextState[T]) HandleNextMainTab() {\n\ttabs := self.GetMainTabs()\n\n\tif len(tabs) == 0 {\n\t\treturn\n\t}\n\n\tself.mainTabIdx = (self.mainTabIdx + 1) % len(tabs)\n}\n\nfunc (self *ContextState[T]) HandlePrevMainTab() {\n\ttabs := self.GetMainTabs()\n\n\tif len(tabs) == 0 {\n\t\treturn\n\t}\n\n\tself.mainTabIdx = (self.mainTabIdx - 1 + len(tabs)) % len(tabs)\n}\n\nfunc (self *ContextState[T]) SetMainTabIndex(index int) {\n\tself.mainTabIdx = index\n}\n"
  },
  {
    "path": "pkg/gui/panels/filtered_list.go",
    "content": "package panels\n\nimport (\n\t\"sort\"\n\t\"sync\"\n)\n\ntype FilteredList[T comparable] struct {\n\tallItems []T\n\t// indices of items in the allItems slice that are included in the filtered list\n\tindices []int\n\n\tmutex sync.RWMutex\n}\n\nfunc NewFilteredList[T comparable]() *FilteredList[T] {\n\treturn &FilteredList[T]{}\n}\n\nfunc (self *FilteredList[T]) SetItems(items []T) {\n\tself.mutex.Lock()\n\tdefer self.mutex.Unlock()\n\n\tself.allItems = items\n\tself.indices = make([]int, len(items))\n\tfor i := range self.indices {\n\t\tself.indices[i] = i\n\t}\n}\n\nfunc (self *FilteredList[T]) Filter(filter func(T, int) bool) {\n\tself.mutex.Lock()\n\tdefer self.mutex.Unlock()\n\n\tself.indices = self.indices[:0]\n\tfor i, item := range self.allItems {\n\t\tif filter(item, i) {\n\t\t\tself.indices = append(self.indices, i)\n\t\t}\n\t}\n}\n\nfunc (self *FilteredList[T]) Sort(less func(T, T) bool) {\n\tself.mutex.Lock()\n\tdefer self.mutex.Unlock()\n\n\tif less == nil {\n\t\treturn\n\t}\n\n\tsort.Slice(self.indices, func(i, j int) bool {\n\t\treturn less(self.allItems[self.indices[i]], self.allItems[self.indices[j]])\n\t})\n}\n\nfunc (self *FilteredList[T]) Get(index int) T {\n\tself.mutex.RLock()\n\tdefer self.mutex.RUnlock()\n\n\treturn self.allItems[self.indices[index]]\n}\n\nfunc (self *FilteredList[T]) TryGet(index int) (T, bool) {\n\tself.mutex.RLock()\n\tdefer self.mutex.RUnlock()\n\n\tif index < 0 || index >= len(self.indices) {\n\t\tvar zero T\n\t\treturn zero, false\n\t}\n\n\treturn self.allItems[self.indices[index]], true\n}\n\n// returns the length of the filtered list\nfunc (self *FilteredList[T]) Len() int {\n\tself.mutex.RLock()\n\tdefer self.mutex.RUnlock()\n\n\treturn len(self.indices)\n}\n\nfunc (self *FilteredList[T]) GetIndex(item T) int {\n\tself.mutex.RLock()\n\tdefer self.mutex.RUnlock()\n\n\tfor i, index := range self.indices {\n\t\tif self.allItems[index] == item {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\nfunc (self *FilteredList[T]) GetItems() []T {\n\tself.mutex.RLock()\n\tdefer self.mutex.RUnlock()\n\n\tresult := make([]T, len(self.indices))\n\tfor i, index := range self.indices {\n\t\tresult[i] = self.allItems[index]\n\t}\n\treturn result\n}\n\nfunc (self *FilteredList[T]) GetAllItems() []T {\n\tself.mutex.RLock()\n\tdefer self.mutex.RUnlock()\n\n\treturn self.allItems\n}\n"
  },
  {
    "path": "pkg/gui/panels/filtered_list_test.go",
    "content": "package panels\n\nimport (\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc TestFilteredListGet(t *testing.T) {\n\ttests := []struct {\n\t\tf    *FilteredList[int]\n\t\targs int\n\t\twant int\n\t}{\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t\targs: 1,\n\t\t\twant: 2,\n\t\t},\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t\targs: 2,\n\t\t\twant: 3,\n\t\t},\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{1}},\n\t\t\targs: 0,\n\t\t\twant: 2,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tif got := tt.f.Get(tt.args); got != tt.want {\n\t\t\tt.Errorf(\"FilteredList.Get() = %v, want %v\", got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestFilteredListLen(t *testing.T) {\n\ttests := []struct {\n\t\tf    *FilteredList[int]\n\t\twant int\n\t}{\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t\twant: 3,\n\t\t},\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{1}},\n\t\t\twant: 1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tif got := tt.f.Len(); got != tt.want {\n\t\t\tt.Errorf(\"FilteredList.Len() = %v, want %v\", got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestFilteredListFilter(t *testing.T) {\n\ttests := []struct {\n\t\tf    *FilteredList[int]\n\t\targs func(int, int) bool\n\t\twant *FilteredList[int]\n\t}{\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t\targs: func(i int, _ int) bool { return i%2 == 0 },\n\t\t\twant: &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{1}},\n\t\t},\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t\targs: func(i int, _ int) bool { return i%2 == 1 },\n\t\t\twant: &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 2}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttt.f.Filter(tt.args)\n\t\tassert.EqualValues(t, tt.f.indices, tt.want.indices)\n\t}\n}\n\nfunc TestFilteredListSort(t *testing.T) {\n\ttests := []struct {\n\t\tf    *FilteredList[int]\n\t\targs func(int, int) bool\n\t\twant *FilteredList[int]\n\t}{\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t\targs: func(i int, j int) bool { return i < j },\n\t\t\twant: &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t},\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t\targs: func(i int, j int) bool { return i > j },\n\t\t\twant: &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{2, 1, 0}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttt.f.Sort(tt.args)\n\t\tassert.EqualValues(t, tt.f.indices, tt.want.indices)\n\t}\n}\n\nfunc TestFilteredListGetIndex(t *testing.T) {\n\ttests := []struct {\n\t\tf    *FilteredList[int]\n\t\targs int\n\t\twant int\n\t}{\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t\targs: 1,\n\t\t\twant: 0,\n\t\t},\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t\targs: 2,\n\t\t\twant: 1,\n\t\t},\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{1}},\n\t\t\targs: 0,\n\t\t\twant: -1,\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tif got := tt.f.GetIndex(tt.args); got != tt.want {\n\t\t\tt.Errorf(\"FilteredList.GetIndex() = %v, want %v\", got, tt.want)\n\t\t}\n\t}\n}\n\nfunc TestFilteredListGetItems(t *testing.T) {\n\ttests := []struct {\n\t\tf    *FilteredList[int]\n\t\twant []int\n\t}{\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t\twant: []int{1, 2, 3},\n\t\t},\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{1}},\n\t\t\twant: []int{2},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\tgot := tt.f.GetItems()\n\t\tassert.EqualValues(t, got, tt.want)\n\t}\n}\n\nfunc TestFilteredListSetItems(t *testing.T) {\n\ttests := []struct {\n\t\tf    *FilteredList[int]\n\t\targs []int\n\t\twant *FilteredList[int]\n\t}{\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{0, 1, 2}},\n\t\t\targs: []int{4, 5, 6},\n\t\t\twant: &FilteredList[int]{allItems: []int{4, 5, 6}, indices: []int{0, 1, 2}},\n\t\t},\n\t\t{\n\t\t\tf:    &FilteredList[int]{allItems: []int{1, 2, 3}, indices: []int{1}},\n\t\t\targs: []int{4},\n\t\t\twant: &FilteredList[int]{allItems: []int{4}, indices: []int{0}},\n\t\t},\n\t}\n\n\tfor _, tt := range tests {\n\t\ttt.f.SetItems(tt.args)\n\t\tassert.EqualValues(t, tt.f.indices, tt.want.indices)\n\t\tassert.EqualValues(t, tt.f.allItems, tt.want.allItems)\n\t}\n}\n"
  },
  {
    "path": "pkg/gui/panels/list_panel.go",
    "content": "package panels\n\nimport (\n\t\"github.com/jesseduffield/gocui\"\n\tlcUtils \"github.com/jesseduffield/lazycore/pkg/utils\"\n)\n\ntype ListPanel[T comparable] struct {\n\tSelectedIdx int\n\tList        *FilteredList[T]\n\tView        *gocui.View\n}\n\nfunc (self *ListPanel[T]) SetSelectedLineIdx(value int) {\n\tclampedValue := 0\n\tif self.List.Len() > 0 {\n\t\tclampedValue = lcUtils.Clamp(value, 0, self.List.Len()-1)\n\t}\n\n\tself.SelectedIdx = clampedValue\n}\n\nfunc (self *ListPanel[T]) clampSelectedLineIdx() {\n\tclamped := lcUtils.Clamp(self.SelectedIdx, 0, self.List.Len()-1)\n\n\tif clamped != self.SelectedIdx {\n\t\tself.SelectedIdx = clamped\n\t}\n}\n\n// moves the cursor up or down by the given amount (up for negative values)\nfunc (self *ListPanel[T]) moveSelectedLine(delta int) {\n\tself.SetSelectedLineIdx(self.SelectedIdx + delta)\n}\n\nfunc (self *ListPanel[T]) SelectNextLine() {\n\tself.moveSelectedLine(1)\n}\n\nfunc (self *ListPanel[T]) SelectPrevLine() {\n\tself.moveSelectedLine(-1)\n}\n"
  },
  {
    "path": "pkg/gui/panels/side_list_panel.go",
    "content": "package panels\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/go-errors/errors\"\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/tasks\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/samber/lo\"\n)\n\ntype ISideListPanel interface {\n\tSetMainTabIndex(int)\n\tHandleSelect() error\n\tGetView() *gocui.View\n\tRefocus()\n\tRerenderList() error\n\tIsFilterDisabled() bool\n\tIsHidden() bool\n\tHandleNextLine() error\n\tHandlePrevLine() error\n\tHandleClick() error\n\tHandlePrevMainTab() error\n\tHandleNextMainTab() error\n}\n\n// list panel at the side of the screen that renders content to the main panel\ntype SideListPanel[T comparable] struct {\n\tContextState *ContextState[T]\n\n\tListPanel[T]\n\n\t// message to render in the main view if there are no items in the panel\n\t// and it has focus. Leave empty if you don't want to render anything\n\tNoItemsMessage string\n\n\t// a representation of the gui\n\tGui IGui\n\n\t// this Filter is applied on top of additional default filters\n\tFilter func(T) bool\n\tSort   func(a, b T) bool\n\n\t// a callback to invoke when the item is clicked\n\tOnClick func(T) error\n\n\t// a callback to invoke when a new item is selected (e.g. keyboard navigation)\n\tOnSelect func(T) error\n\n\t// returns the cells that we render to the view in a table format. The cells will\n\t// be rendered with padding.\n\tGetTableCells func(T) []string\n\n\t// function to be called after re-rendering list. Can be nil\n\tOnRerender func() error\n\n\t// set this to true if you don't want to allow manual filtering via '/'\n\tDisableFilter bool\n\n\t// This can be nil if you want to always show the panel\n\tHide func() bool\n}\n\nvar _ ISideListPanel = &SideListPanel[int]{}\n\ntype IGui interface {\n\tHandleClick(v *gocui.View, itemCount int, selectedLine *int, handleSelect func() error) error\n\tNewSimpleRenderStringTask(getContent func() string) tasks.TaskFunc\n\tFocusY(selectedLine int, itemCount int, view *gocui.View)\n\tShouldRefresh(contextKey string) bool\n\tGetMainView() *gocui.View\n\tIsCurrentView(*gocui.View) bool\n\tFilterString(view *gocui.View) string\n\tIgnoreStrings() []string\n\tUpdate(func() error)\n\n\tQueueTask(f func(ctx context.Context)) error\n}\n\nfunc (self *SideListPanel[T]) HandleClick() error {\n\titemCount := self.List.Len()\n\thandleSelect := self.HandleSelect\n\tselectedLine := &self.SelectedIdx\n\n\tif err := self.Gui.HandleClick(self.View, itemCount, selectedLine, handleSelect); err != nil {\n\t\treturn err\n\t}\n\n\tif self.OnClick != nil {\n\t\tselectedItem, err := self.GetSelectedItem()\n\t\tif err == nil {\n\t\t\treturn self.OnClick(selectedItem)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (self *SideListPanel[T]) GetView() *gocui.View {\n\treturn self.View\n}\n\nfunc (self *SideListPanel[T]) HandleSelect() error {\n\titem, err := self.GetSelectedItem()\n\tif err != nil {\n\t\tif err.Error() != self.NoItemsMessage {\n\t\t\treturn err\n\t\t}\n\n\t\tif self.NoItemsMessage != \"\" {\n\t\t\tself.Gui.NewSimpleRenderStringTask(func() string { return self.NoItemsMessage })\n\t\t}\n\n\t\treturn nil\n\t}\n\n\tself.Refocus()\n\n\tif self.OnSelect != nil {\n\t\tif err := self.OnSelect(item); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn self.renderContext(item)\n}\n\nfunc (self *SideListPanel[T]) renderContext(item T) error {\n\tif self.ContextState == nil {\n\t\treturn nil\n\t}\n\n\tkey := self.ContextState.GetCurrentContextKey(item)\n\tif !self.Gui.ShouldRefresh(key) {\n\t\treturn nil\n\t}\n\n\tmainView := self.Gui.GetMainView()\n\tmainView.Tabs = self.ContextState.GetMainTabTitles()\n\tmainView.TabIndex = self.ContextState.mainTabIdx\n\n\ttask := self.ContextState.GetCurrentMainTab().Render(item)\n\n\treturn self.Gui.QueueTask(task)\n}\n\nfunc (self *SideListPanel[T]) GetSelectedItem() (T, error) {\n\tvar zero T\n\n\titem, ok := self.List.TryGet(self.SelectedIdx)\n\tif !ok {\n\t\t// could probably have a better error here\n\t\treturn zero, errors.New(self.NoItemsMessage)\n\t}\n\n\treturn item, nil\n}\n\nfunc (self *SideListPanel[T]) HandleNextLine() error {\n\tself.SelectNextLine()\n\n\treturn self.HandleSelect()\n}\n\nfunc (self *SideListPanel[T]) HandlePrevLine() error {\n\tself.SelectPrevLine()\n\n\treturn self.HandleSelect()\n}\n\nfunc (self *SideListPanel[T]) HandleNextMainTab() error {\n\tif self.ContextState == nil {\n\t\treturn nil\n\t}\n\n\tself.ContextState.HandleNextMainTab()\n\n\treturn self.HandleSelect()\n}\n\nfunc (self *SideListPanel[T]) HandlePrevMainTab() error {\n\tif self.ContextState == nil {\n\t\treturn nil\n\t}\n\n\tself.ContextState.HandlePrevMainTab()\n\n\treturn self.HandleSelect()\n}\n\nfunc (self *SideListPanel[T]) Refocus() {\n\tself.Gui.FocusY(self.SelectedIdx, self.List.Len(), self.View)\n}\n\nfunc (self *SideListPanel[T]) SetItems(items []T) {\n\tself.List.SetItems(items)\n\tself.FilterAndSort()\n}\n\nfunc (self *SideListPanel[T]) FilterAndSort() {\n\tfilterString := self.Gui.FilterString(self.View)\n\n\tself.List.Filter(func(item T, index int) bool {\n\t\tif self.Filter != nil && !self.Filter(item) {\n\t\t\treturn false\n\t\t}\n\n\t\tif lo.SomeBy(self.Gui.IgnoreStrings(), func(ignore string) bool {\n\t\t\treturn lo.SomeBy(self.GetTableCells(item), func(searchString string) bool {\n\t\t\t\treturn strings.Contains(searchString, ignore)\n\t\t\t})\n\t\t}) {\n\t\t\treturn false\n\t\t}\n\n\t\tif filterString != \"\" {\n\t\t\treturn lo.SomeBy(self.GetTableCells(item), func(searchString string) bool {\n\t\t\t\treturn strings.Contains(searchString, filterString)\n\t\t\t})\n\t\t}\n\n\t\treturn true\n\t})\n\n\tself.List.Sort(self.Sort)\n\n\tself.clampSelectedLineIdx()\n}\n\nfunc (self *SideListPanel[T]) RerenderList() error {\n\tself.FilterAndSort()\n\n\tself.Gui.Update(func() error {\n\t\tself.View.Clear()\n\t\ttable := lo.Map(self.List.GetItems(), func(item T, index int) []string {\n\t\t\treturn self.GetTableCells(item)\n\t\t})\n\t\trenderedTable, err := utils.RenderTable(table)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfmt.Fprint(self.View, renderedTable)\n\n\t\tif self.OnRerender != nil {\n\t\t\tif err := self.OnRerender(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif self.Gui.IsCurrentView(self.View) {\n\t\t\treturn self.HandleSelect()\n\t\t}\n\t\treturn nil\n\t})\n\n\treturn nil\n}\n\nfunc (self *SideListPanel[T]) SetMainTabIndex(index int) {\n\tif self.ContextState == nil {\n\t\treturn\n\t}\n\n\tself.ContextState.SetMainTabIndex(index)\n}\n\nfunc (self *SideListPanel[T]) IsFilterDisabled() bool {\n\treturn self.DisableFilter\n}\n\nfunc (self *SideListPanel[T]) IsHidden() bool {\n\tif self.Hide == nil {\n\t\treturn false\n\t}\n\n\treturn self.Hide()\n}\n"
  },
  {
    "path": "pkg/gui/panels.go",
    "content": "package gui\n\nimport \"github.com/jesseduffield/lazydocker/pkg/gui/panels\"\n\nfunc (gui *Gui) intoInterface() panels.IGui {\n\treturn gui\n}\n"
  },
  {
    "path": "pkg/gui/presentation/container_stats.go",
    "content": "package presentation\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/asciigraph\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/mcuadros/go-lookup\"\n\t\"github.com/samber/lo\"\n)\n\nfunc RenderStats(userConfig *config.UserConfig, container *commands.Container, viewWidth int) (string, error) {\n\tstats, ok := container.GetLastStats()\n\tif !ok {\n\t\treturn \"\", nil\n\t}\n\n\tgraphSpecs := userConfig.Stats.Graphs\n\tgraphs := make([]string, len(graphSpecs))\n\tfor i, spec := range graphSpecs {\n\t\tgraph, err := plotGraph(container, spec, viewWidth-10)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tgraphs[i] = utils.ColoredString(graph, utils.GetColorAttribute(spec.Color))\n\t}\n\n\tpidsCount := fmt.Sprintf(\"PIDs: %d\", stats.ClientStats.PidsStats.Current)\n\tdataReceived := fmt.Sprintf(\"Traffic received: %s\", utils.FormatDecimalBytes(stats.ClientStats.Networks.Eth0.RxBytes))\n\tdataSent := fmt.Sprintf(\"Traffic sent: %s\", utils.FormatDecimalBytes(stats.ClientStats.Networks.Eth0.TxBytes))\n\n\toriginalStats, err := utils.MarshalIntoYaml(stats)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tcontents := fmt.Sprintf(\"\\n\\n%s\\n\\n%s\\n\\n%s\\n%s\\n\\n%s\",\n\t\tutils.ColoredString(strings.Join(graphs, \"\\n\\n\"), color.FgGreen),\n\t\tpidsCount,\n\t\tdataReceived,\n\t\tdataSent,\n\t\tutils.ColoredYamlString(string(originalStats)),\n\t)\n\n\treturn contents, nil\n}\n\n// plotGraph returns the plotted graph based on the graph spec and the stat history\nfunc plotGraph(container *commands.Container, spec config.GraphConfig, width int) (string, error) {\n\tcontainer.StatsMutex.Lock()\n\tdefer container.StatsMutex.Unlock()\n\n\tdata := make([]float64, len(container.StatHistory))\n\n\tfor i, stats := range container.StatHistory {\n\t\tvalue, err := lookup.LookupString(stats, spec.StatPath)\n\t\tif err != nil {\n\t\t\treturn \"Could not find key: \" + spec.StatPath, nil\n\t\t}\n\t\tfloatValue, err := getFloat(value.Interface())\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\tdata[i] = floatValue\n\t}\n\n\tmax := spec.Max\n\tif spec.MaxType == \"\" {\n\t\tmax = lo.Max(data)\n\t}\n\n\tmin := spec.Min\n\tif spec.MinType == \"\" {\n\t\tmin = lo.Min(data)\n\t}\n\n\theight := 10\n\tif spec.Height > 0 {\n\t\theight = spec.Height\n\t}\n\n\tcaption := fmt.Sprintf(\n\t\t\"%s: %0.2f (%v)\",\n\t\tspec.Caption,\n\t\tdata[len(data)-1],\n\t\ttime.Since(container.StatHistory[0].RecordedAt).Round(time.Second),\n\t)\n\n\treturn asciigraph.Plot(\n\t\tdata,\n\t\tasciigraph.Height(height),\n\t\tasciigraph.Width(width),\n\t\tasciigraph.Min(min),\n\t\tasciigraph.Max(max),\n\t\tasciigraph.Caption(caption),\n\t), nil\n}\n\n// from Dave C's answer at https://stackoverflow.com/questions/20767724/converting-unknown-interface-to-float64-in-golang\nfunc getFloat(unk interface{}) (float64, error) {\n\tfloatType := reflect.TypeOf(float64(0))\n\tstringType := reflect.TypeOf(\"\")\n\n\tswitch i := unk.(type) {\n\tcase float64:\n\t\treturn i, nil\n\tcase float32:\n\t\treturn float64(i), nil\n\tcase int64:\n\t\treturn float64(i), nil\n\tcase int32:\n\t\treturn float64(i), nil\n\tcase int:\n\t\treturn float64(i), nil\n\tcase uint64:\n\t\treturn float64(i), nil\n\tcase uint32:\n\t\treturn float64(i), nil\n\tcase uint:\n\t\treturn float64(i), nil\n\tcase string:\n\t\treturn strconv.ParseFloat(i, 64)\n\tdefault:\n\t\tv := reflect.ValueOf(unk)\n\t\tv = reflect.Indirect(v)\n\t\tif v.Type().ConvertibleTo(floatType) {\n\t\t\tfv := v.Convert(floatType)\n\t\t\treturn fv.Float(), nil\n\t\t} else if v.Type().ConvertibleTo(stringType) {\n\t\t\tsv := v.Convert(stringType)\n\t\t\ts := sv.String()\n\t\t\treturn strconv.ParseFloat(s, 64)\n\t\t} else {\n\t\t\treturn math.NaN(), fmt.Errorf(\"Can't convert %v to float64\", v.Type())\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/gui/presentation/containers.go",
    "content": "package presentation\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/samber/lo\"\n)\n\nfunc GetContainerDisplayStrings(guiConfig *config.GuiConfig, container *commands.Container) []string {\n\treturn []string{\n\t\tgetContainerDisplayStatus(guiConfig, container),\n\t\tgetContainerDisplaySubstatus(guiConfig, container),\n\t\tcontainer.Name,\n\t\tgetDisplayCPUPerc(container),\n\t\tutils.ColoredString(displayPorts(container), color.FgYellow),\n\t\tutils.ColoredString(displayContainerImage(container), color.FgMagenta),\n\t}\n}\n\nfunc displayContainerImage(container *commands.Container) string {\n\treturn strings.TrimPrefix(container.Container.Image, \"sha256:\")\n}\n\nfunc displayPorts(c *commands.Container) string {\n\tportStrings := lo.Map(c.Container.Ports, func(port container.Port, _ int) string {\n\t\tif port.PublicPort == 0 {\n\t\t\treturn fmt.Sprintf(\"%d/%s\", port.PrivatePort, port.Type)\n\t\t}\n\n\t\t// docker ps will show '0.0.0.0:80->80/tcp' but we'll show\n\t\t// '80->80/tcp' instead to save space (unless the IP is something other than\n\t\t// 0.0.0.0)\n\t\tipString := \"\"\n\t\tif port.IP != \"0.0.0.0\" {\n\t\t\tipString = port.IP + \":\"\n\t\t}\n\t\treturn fmt.Sprintf(\"%s%d->%d/%s\", ipString, port.PublicPort, port.PrivatePort, port.Type)\n\t})\n\n\t// sorting because the order of the ports is not deterministic\n\t// and we don't want to have them constantly swapping\n\tsort.Strings(portStrings)\n\n\treturn strings.Join(portStrings, \", \")\n}\n\n// getContainerDisplayStatus returns the colored status of the container\nfunc getContainerDisplayStatus(guiConfig *config.GuiConfig, c *commands.Container) string {\n\tshortStatusMap := map[string]string{\n\t\t\"paused\":     \"P\",\n\t\t\"exited\":     \"X\",\n\t\t\"created\":    \"C\",\n\t\t\"removing\":   \"RM\",\n\t\t\"restarting\": \"RS\",\n\t\t\"running\":    \"R\",\n\t\t\"dead\":       \"D\",\n\t}\n\n\ticonStatusMap := map[string]rune{\n\t\t\"paused\":     '◫',\n\t\t\"exited\":     '⨯',\n\t\t\"created\":    '+',\n\t\t\"removing\":   '−',\n\t\t\"restarting\": '⟳',\n\t\t\"running\":    '▶',\n\t\t\"dead\":       '!',\n\t}\n\n\tvar containerState string\n\tswitch guiConfig.ContainerStatusHealthStyle {\n\tcase \"short\":\n\t\tcontainerState = shortStatusMap[c.Container.State]\n\tcase \"icon\":\n\t\tcontainerState = string(iconStatusMap[c.Container.State])\n\tcase \"long\":\n\t\tfallthrough\n\tdefault:\n\t\tcontainerState = c.Container.State\n\t}\n\n\treturn utils.ColoredString(containerState, getContainerColor(c))\n}\n\n// GetDisplayStatus returns the exit code if the container has exited, and the health status if the container is running (and has a health check)\nfunc getContainerDisplaySubstatus(guiConfig *config.GuiConfig, c *commands.Container) string {\n\tif !c.DetailsLoaded() {\n\t\treturn \"\"\n\t}\n\n\tswitch c.Container.State {\n\tcase \"exited\":\n\t\treturn utils.ColoredString(\n\t\t\tfmt.Sprintf(\"(%s)\", strconv.Itoa(c.Details.State.ExitCode)), getContainerColor(c),\n\t\t)\n\tcase \"running\":\n\t\treturn getHealthStatus(guiConfig, c)\n\tdefault:\n\t\treturn \"\"\n\t}\n}\n\nfunc getHealthStatus(guiConfig *config.GuiConfig, c *commands.Container) string {\n\tif !c.DetailsLoaded() {\n\t\treturn \"\"\n\t}\n\n\thealthStatusColorMap := map[string]color.Attribute{\n\t\t\"healthy\":   color.FgGreen,\n\t\t\"unhealthy\": color.FgRed,\n\t\t\"starting\":  color.FgYellow,\n\t}\n\n\tif c.Details.State.Health == nil {\n\t\treturn \"\"\n\t}\n\n\tshortHealthStatusMap := map[string]string{\n\t\t\"healthy\":   \"H\",\n\t\t\"unhealthy\": \"U\",\n\t\t\"starting\":  \"S\",\n\t}\n\n\ticonHealthStatusMap := map[string]rune{\n\t\t\"healthy\":   '✔',\n\t\t\"unhealthy\": '?',\n\t\t\"starting\":  '…',\n\t}\n\n\tvar healthStatus string\n\tswitch guiConfig.ContainerStatusHealthStyle {\n\tcase \"short\":\n\t\thealthStatus = shortHealthStatusMap[c.Details.State.Health.Status]\n\tcase \"icon\":\n\t\thealthStatus = string(iconHealthStatusMap[c.Details.State.Health.Status])\n\tcase \"long\":\n\t\tfallthrough\n\tdefault:\n\t\thealthStatus = c.Details.State.Health.Status\n\t}\n\n\tif healthStatusColor, ok := healthStatusColorMap[c.Details.State.Health.Status]; ok {\n\t\treturn utils.ColoredString(fmt.Sprintf(\"(%s)\", healthStatus), healthStatusColor)\n\t}\n\treturn \"\"\n}\n\n// getDisplayCPUPerc colors the cpu percentage based on how extreme it is\nfunc getDisplayCPUPerc(c *commands.Container) string {\n\tstats, ok := c.GetLastStats()\n\tif !ok {\n\t\treturn \"\"\n\t}\n\n\tpercentage := stats.DerivedStats.CPUPercentage\n\tformattedPercentage := fmt.Sprintf(\"%.2f%%\", stats.DerivedStats.CPUPercentage)\n\n\tvar clr color.Attribute\n\tif percentage > 90 {\n\t\tclr = color.FgRed\n\t} else if percentage > 50 {\n\t\tclr = color.FgYellow\n\t} else {\n\t\tclr = color.FgWhite\n\t}\n\n\treturn utils.ColoredString(formattedPercentage, clr)\n}\n\n// getContainerColor Container color\nfunc getContainerColor(c *commands.Container) color.Attribute {\n\tswitch c.Container.State {\n\tcase \"exited\":\n\t\t// This means the colour may be briefly yellow and then switch to red upon starting\n\t\t// Not sure what a better alternative is.\n\t\tif !c.DetailsLoaded() || c.Details.State.ExitCode == 0 {\n\t\t\treturn color.FgYellow\n\t\t}\n\t\treturn color.FgRed\n\tcase \"created\":\n\t\treturn color.FgCyan\n\tcase \"running\":\n\t\treturn color.FgGreen\n\tcase \"paused\":\n\t\treturn color.FgYellow\n\tcase \"dead\":\n\t\treturn color.FgRed\n\tcase \"restarting\":\n\t\treturn color.FgBlue\n\tcase \"removing\":\n\t\treturn color.FgMagenta\n\tdefault:\n\t\treturn color.FgWhite\n\t}\n}\n"
  },
  {
    "path": "pkg/gui/presentation/images.go",
    "content": "package presentation\n\nimport (\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n)\n\nfunc GetImageDisplayStrings(image *commands.Image) []string {\n\treturn []string{\n\t\timage.Name,\n\t\timage.Tag,\n\t\tutils.FormatDecimalBytes(int(image.Image.Size)),\n\t}\n}\n"
  },
  {
    "path": "pkg/gui/presentation/menu_items.go",
    "content": "package presentation\n\nimport \"github.com/jesseduffield/lazydocker/pkg/gui/types\"\n\nfunc GetMenuItemDisplayStrings(menuItem *types.MenuItem) []string {\n\treturn menuItem.LabelColumns\n}\n"
  },
  {
    "path": "pkg/gui/presentation/networks.go",
    "content": "package presentation\n\nimport \"github.com/jesseduffield/lazydocker/pkg/commands\"\n\nfunc GetNetworkDisplayStrings(network *commands.Network) []string {\n\treturn []string{network.Network.Driver, network.Name}\n}\n"
  },
  {
    "path": "pkg/gui/presentation/projects.go",
    "content": "package presentation\n\nimport \"github.com/jesseduffield/lazydocker/pkg/commands\"\n\nfunc GetProjectDisplayStrings(project *commands.Project) []string {\n\treturn []string{project.Name}\n}\n"
  },
  {
    "path": "pkg/gui/presentation/services.go",
    "content": "package presentation\n\nimport (\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n)\n\nfunc GetServiceDisplayStrings(guiConfig *config.GuiConfig, service *commands.Service) []string {\n\tif service.Container == nil {\n\t\tvar containerState string\n\t\tswitch guiConfig.ContainerStatusHealthStyle {\n\t\tcase \"short\":\n\t\t\tcontainerState = \"n\"\n\t\tcase \"icon\":\n\t\t\tcontainerState = \".\"\n\t\tcase \"long\":\n\t\t\tfallthrough\n\t\tdefault:\n\t\t\tcontainerState = \"none\"\n\t\t}\n\n\t\treturn []string{\n\t\t\tutils.ColoredString(containerState, color.FgBlue),\n\t\t\t\"\",\n\t\t\tservice.Name,\n\t\t\t\"\",\n\t\t\t\"\",\n\t\t\t\"\",\n\t\t}\n\t}\n\n\tcontainer := service.Container\n\treturn []string{\n\t\tgetContainerDisplayStatus(guiConfig, container),\n\t\tgetContainerDisplaySubstatus(guiConfig, container),\n\t\tservice.Name,\n\t\tgetDisplayCPUPerc(container),\n\t\tutils.ColoredString(displayPorts(container), color.FgYellow),\n\t\tutils.ColoredString(displayContainerImage(container), color.FgMagenta),\n\t}\n}\n"
  },
  {
    "path": "pkg/gui/presentation/volumes.go",
    "content": "package presentation\n\nimport \"github.com/jesseduffield/lazydocker/pkg/commands\"\n\nfunc GetVolumeDisplayStrings(volume *commands.Volume) []string {\n\treturn []string{volume.Volume.Driver, volume.Name}\n}\n"
  },
  {
    "path": "pkg/gui/project_panel.go",
    "content": "package gui\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"strings\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/panels\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/presentation\"\n\t\"github.com/jesseduffield/lazydocker/pkg/tasks\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/jesseduffield/yaml\"\n)\n\nfunc (gui *Gui) getProjectPanel() *panels.SideListPanel[*commands.Project] {\n\treturn &panels.SideListPanel[*commands.Project]{\n\t\tContextState: &panels.ContextState[*commands.Project]{\n\t\t\tGetMainTabs: func() []panels.MainTab[*commands.Project] {\n\t\t\t\treturn []panels.MainTab[*commands.Project]{\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"logs\",\n\t\t\t\t\t\tTitle:  gui.Tr.LogsTitle,\n\t\t\t\t\t\tRender: gui.renderAllLogs,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"config\",\n\t\t\t\t\t\tTitle:  gui.Tr.DockerComposeConfigTitle,\n\t\t\t\t\t\tRender: gui.renderDockerComposeConfig,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"credits\",\n\t\t\t\t\t\tTitle:  gui.Tr.CreditsTitle,\n\t\t\t\t\t\tRender: gui.renderCredits,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t\tGetItemContextCacheKey: func(project *commands.Project) string {\n\t\t\t\treturn \"projects-\" + project.Name\n\t\t\t},\n\t\t},\n\n\t\tListPanel: panels.ListPanel[*commands.Project]{\n\t\t\tList: panels.NewFilteredList[*commands.Project](),\n\t\t\tView: gui.Views.Project,\n\t\t},\n\t\tNoItemsMessage: \"\",\n\t\tGui:            gui.intoInterface(),\n\n\t\tSort: func(a *commands.Project, b *commands.Project) bool {\n\t\t\treturn a.Name < b.Name\n\t\t},\n\t\tGetTableCells: presentation.GetProjectDisplayStrings,\n\t\tOnSelect: func(project *commands.Project) error {\n\t\t\t// When a different project is selected, re-filter services and\n\t\t\t// containers to show only those belonging to the selected project.\n\t\t\treturn gui.renderContainersAndServices()\n\t\t},\n\t}\n}\n\nfunc (gui *Gui) refreshProject() error {\n\tprojects := gui.getDiscoveredProjects()\n\n\t// Preserve the current selection across refreshes. On the first refresh,\n\t// select the project specified via -p flag, or fall back to the local project.\n\tselectedName := gui.getSelectedProjectName()\n\tif selectedName == \"\" {\n\t\tif gui.Config.ProjectName != \"\" {\n\t\t\tselectedName = gui.Config.ProjectName\n\t\t} else {\n\t\t\tselectedName = gui.DockerCommand.LocalProjectName\n\t\t}\n\t}\n\n\tgui.Panels.Projects.SetItems(projects)\n\n\tif selectedName != \"\" {\n\t\tfor i, p := range gui.Panels.Projects.List.GetItems() {\n\t\t\tif p.Name == selectedName {\n\t\t\t\tgui.Panels.Projects.SetSelectedLineIdx(i)\n\t\t\t\tgui.Panels.Projects.Refocus()\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn gui.Panels.Projects.RerenderList()\n}\n\n// getDiscoveredProjects returns all docker compose projects by examining container labels.\n// The local project (from docker-compose.yml in the current directory) is included if\n// it has running containers or if InDockerComposeProject is true.\nfunc (gui *Gui) getDiscoveredProjects() []*commands.Project {\n\tcontainers := gui.Panels.Containers.List.GetAllItems()\n\tprojectNames := gui.DockerCommand.GetProjectNames(containers)\n\n\t// If we're in a docker compose project but it has no running containers,\n\t// still include it. We don't fall back to the directory name here to avoid\n\t// briefly flashing the wrong project name on startup.\n\tlocalName := gui.DockerCommand.LocalProjectName\n\n\tif gui.DockerCommand.InDockerComposeProject && localName != \"\" {\n\t\tfound := false\n\t\tfor _, name := range projectNames {\n\t\t\tif name == localName {\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\tprojectNames = append([]string{localName}, projectNames...)\n\t\t}\n\t}\n\n\tprojects := make([]*commands.Project, len(projectNames))\n\tfor i, name := range projectNames {\n\t\tprojects[i] = &commands.Project{Name: name}\n\t}\n\n\treturn projects\n}\n\n// getSelectedProjectName returns the name of the currently selected project,\n// or empty string if none is selected.\nfunc (gui *Gui) getSelectedProjectName() string {\n\tproject, err := gui.Panels.Projects.GetSelectedItem()\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\treturn project.Name\n}\n\nfunc (gui *Gui) renderCredits(_project *commands.Project) tasks.TaskFunc {\n\treturn gui.NewSimpleRenderStringTask(func() string { return gui.creditsStr() })\n}\n\nfunc (gui *Gui) creditsStr() string {\n\tvar configBuf bytes.Buffer\n\t_ = yaml.NewEncoder(&configBuf, yaml.IncludeOmitted).Encode(gui.Config.UserConfig)\n\n\treturn strings.Join(\n\t\t[]string{\n\t\t\tlazydockerTitle(),\n\t\t\t\"Copyright (c) 2019 Jesse Duffield\",\n\t\t\t\"Keybindings: https://github.com/jesseduffield/lazydocker/blob/master/docs/keybindings\",\n\t\t\t\"Config Options: https://github.com/jesseduffield/lazydocker/blob/master/docs/Config.md\",\n\t\t\t\"Raise an Issue: https://github.com/jesseduffield/lazydocker/issues\",\n\t\t\tutils.ColoredString(\"Buy Jesse a coffee: https://github.com/sponsors/jesseduffield\", color.FgMagenta), // caffeine ain't free\n\t\t\t\"Here's your lazydocker config when merged in with the defaults (you can open your config by pressing 'o'):\",\n\t\t\tutils.ColoredYamlString(configBuf.String()),\n\t\t}, \"\\n\\n\")\n}\n\nfunc (gui *Gui) renderAllLogs(project *commands.Project) tasks.TaskFunc {\n\treturn gui.NewTask(TaskOpts{\n\t\tAutoscroll: true,\n\t\tWrap:       gui.Config.UserConfig.Gui.WrapMainPanel,\n\t\tFunc: func(ctx context.Context) {\n\t\t\tgui.clearMainView()\n\n\t\t\tcmd := gui.OSCommand.RunCustomCommand(\n\t\t\t\tutils.ApplyTemplate(\n\t\t\t\t\tgui.Config.UserConfig.CommandTemplates.AllLogs,\n\t\t\t\t\tgui.DockerCommand.NewCommandObject(commands.CommandObject{Project: project}),\n\t\t\t\t),\n\t\t\t)\n\n\t\t\tcmd.Stdout = gui.Views.Main\n\t\t\tcmd.Stderr = gui.Views.Main\n\n\t\t\tgui.OSCommand.PrepareForChildren(cmd)\n\t\t\t_ = cmd.Start()\n\n\t\t\tgo func() {\n\t\t\t\t<-ctx.Done()\n\t\t\t\tif err := gui.OSCommand.Kill(cmd); err != nil {\n\t\t\t\t\tgui.Log.Error(err)\n\t\t\t\t}\n\t\t\t}()\n\n\t\t\t_ = cmd.Wait()\n\t\t},\n\t})\n}\n\nfunc (gui *Gui) renderDockerComposeConfig(project *commands.Project) tasks.TaskFunc {\n\tif project != nil && project.Name != gui.DockerCommand.LocalProjectName {\n\t\treturn gui.NewSimpleRenderStringTask(func() string {\n\t\t\treturn \"Compose config is not available for non-local projects\"\n\t\t})\n\t}\n\treturn gui.NewSimpleRenderStringTask(func() string {\n\t\treturn utils.ColoredYamlString(gui.DockerCommand.DockerComposeConfigForProject(project))\n\t})\n}\n\nfunc (gui *Gui) handleOpenConfig(g *gocui.Gui, v *gocui.View) error {\n\treturn gui.openFile(gui.Config.ConfigFilename())\n}\n\nfunc (gui *Gui) handleEditConfig(g *gocui.Gui, v *gocui.View) error {\n\treturn gui.editFile(gui.Config.ConfigFilename())\n}\n\nfunc lazydockerTitle() string {\n\treturn `\n   _                     _            _\n  | |                   | |          | |\n  | | __ _ _____   _  __| | ___   ___| | _____ _ __\n  | |/ _` + \"`\" + ` |_  / | | |/ _` + \"`\" + ` |/ _ \\ / __| |/ / _ \\ '__|\n  | | (_| |/ /| |_| | (_| | (_) | (__|   <  __/ |\n  |_|\\__,_/___|\\__, |\\__,_|\\___/ \\___|_|\\_\\___|_|\n                __/ |\n               |___/\n`\n}\n\n// handleViewAllLogs switches to a subprocess viewing all the logs from docker-compose\nfunc (gui *Gui) handleViewAllLogs(g *gocui.Gui, v *gocui.View) error {\n\tproject, _ := gui.Panels.Projects.GetSelectedItem()\n\tc, err := gui.DockerCommand.ViewAllLogs(project)\n\tif err != nil {\n\t\treturn gui.createErrorPanel(err.Error())\n\t}\n\n\treturn gui.runSubprocess(c)\n}\n"
  },
  {
    "path": "pkg/gui/services_panel.go",
    "content": "package gui\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"time\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/panels\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/presentation\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/types\"\n\t\"github.com/jesseduffield/lazydocker/pkg/tasks\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/samber/lo\"\n)\n\nfunc (gui *Gui) getServicesPanel() *panels.SideListPanel[*commands.Service] {\n\treturn &panels.SideListPanel[*commands.Service]{\n\t\tContextState: &panels.ContextState[*commands.Service]{\n\t\t\tGetMainTabs: func() []panels.MainTab[*commands.Service] {\n\t\t\t\treturn []panels.MainTab[*commands.Service]{\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"logs\",\n\t\t\t\t\t\tTitle:  gui.Tr.LogsTitle,\n\t\t\t\t\t\tRender: gui.renderServiceLogs,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"stats\",\n\t\t\t\t\t\tTitle:  gui.Tr.StatsTitle,\n\t\t\t\t\t\tRender: gui.renderServiceStats,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"container-env\",\n\t\t\t\t\t\tTitle:  gui.Tr.ContainerEnvTitle,\n\t\t\t\t\t\tRender: gui.renderServiceContainerEnv,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"container-config\",\n\t\t\t\t\t\tTitle:  gui.Tr.ContainerConfigTitle,\n\t\t\t\t\t\tRender: gui.renderServiceContainerConfig,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"top\",\n\t\t\t\t\t\tTitle:  gui.Tr.TopTitle,\n\t\t\t\t\t\tRender: gui.renderServiceTop,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t\tGetItemContextCacheKey: func(service *commands.Service) string {\n\t\t\t\tif service.Container == nil {\n\t\t\t\t\treturn \"services-\" + service.ID\n\t\t\t\t}\n\t\t\t\treturn \"services-\" + service.ID + \"-\" + service.Container.ID + \"-\" + service.Container.Container.State\n\t\t\t},\n\t\t},\n\t\tListPanel: panels.ListPanel[*commands.Service]{\n\t\t\tList: panels.NewFilteredList[*commands.Service](),\n\t\t\tView: gui.Views.Services,\n\t\t},\n\t\tNoItemsMessage: gui.Tr.NoServices,\n\t\tGui:            gui.intoInterface(),\n\t\t// sort services first by whether they have a linked container, and second by alphabetical order\n\t\tSort: func(a *commands.Service, b *commands.Service) bool {\n\t\t\tif a.Container != nil && b.Container == nil {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\tif a.Container == nil && b.Container != nil {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn a.Name < b.Name\n\t\t},\n\t\tFilter: func(service *commands.Service) bool {\n\t\t\tselectedProject := gui.getSelectedProjectName()\n\t\t\tif selectedProject == \"\" {\n\t\t\t\t// Before any project is selected (e.g. startup), default to\n\t\t\t\t// the local project so we don't briefly flash all services.\n\t\t\t\tselectedProject = gui.DockerCommand.LocalProjectName\n\t\t\t}\n\t\t\tif selectedProject == \"\" {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn service.ProjectName == selectedProject\n\t\t},\n\t\tGetTableCells: func(service *commands.Service) []string {\n\t\t\treturn presentation.GetServiceDisplayStrings(&gui.Config.UserConfig.Gui, service)\n\t\t},\n\t\tHide: func() bool {\n\t\t\t// Show services panel if there are any compose projects (local or discovered)\n\t\t\treturn !gui.DockerCommand.InDockerComposeProject && len(gui.Panels.Services.List.GetAllItems()) == 0\n\t\t},\n\t}\n}\n\nfunc (gui *Gui) renderServiceContainerConfig(service *commands.Service) tasks.TaskFunc {\n\tif service.Container == nil {\n\t\treturn gui.NewSimpleRenderStringTask(func() string { return gui.Tr.NoContainer })\n\t}\n\n\treturn gui.renderContainerConfig(service.Container)\n}\n\nfunc (gui *Gui) renderServiceContainerEnv(service *commands.Service) tasks.TaskFunc {\n\tif service.Container == nil {\n\t\treturn gui.NewSimpleRenderStringTask(func() string { return gui.Tr.NoContainer })\n\t}\n\n\treturn gui.renderContainerEnv(service.Container)\n}\n\nfunc (gui *Gui) renderServiceStats(service *commands.Service) tasks.TaskFunc {\n\tif service.Container == nil {\n\t\treturn gui.NewSimpleRenderStringTask(func() string { return gui.Tr.NoContainer })\n\t}\n\n\treturn gui.renderContainerStats(service.Container)\n}\n\nfunc (gui *Gui) renderServiceTop(service *commands.Service) tasks.TaskFunc {\n\treturn gui.NewTickerTask(TickerTaskOpts{\n\t\tFunc: func(ctx context.Context, notifyStopped chan struct{}) {\n\t\t\tcontents, err := service.RenderTop(ctx)\n\t\t\tif err != nil {\n\t\t\t\tgui.RenderStringMain(err.Error())\n\t\t\t}\n\n\t\t\tgui.reRenderStringMain(contents)\n\t\t},\n\t\tDuration:   time.Second,\n\t\tBefore:     func(ctx context.Context) { gui.clearMainView() },\n\t\tWrap:       gui.Config.UserConfig.Gui.WrapMainPanel,\n\t\tAutoscroll: false,\n\t})\n}\n\nfunc (gui *Gui) renderServiceLogs(service *commands.Service) tasks.TaskFunc {\n\tif service.Container == nil {\n\t\treturn gui.NewSimpleRenderStringTask(func() string { return gui.Tr.NoContainerForService })\n\t}\n\n\treturn gui.renderContainerLogsToMain(service.Container)\n}\n\ntype commandOption struct {\n\tdescription string\n\tcommand     string\n\tonPress     func() error\n}\n\nfunc (r *commandOption) getDisplayStrings() []string {\n\treturn []string{r.description, color.New(color.FgCyan).Sprint(r.command)}\n}\n\n// isServiceFromLocalProject returns true if the given service belongs to the\n// local compose project (the one whose compose file is in the current directory).\n// Compose commands like up/stop/restart only work for local project services.\nfunc (gui *Gui) isServiceFromLocalProject(service *commands.Service) bool {\n\treturn service.ProjectName == gui.DockerCommand.LocalProjectName\n}\n\nfunc (gui *Gui) handleServiceRemoveMenu(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tif !gui.isServiceFromLocalProject(service) {\n\t\treturn gui.createErrorPanel(gui.Tr.CannotManageNonLocalService)\n\t}\n\n\tcomposeCommand := gui.DockerCommand.NewCommandObject(commands.CommandObject{Service: service}).DockerCompose\n\n\toptions := []*commandOption{\n\t\t{\n\t\t\tdescription: gui.Tr.Remove,\n\t\t\tcommand:     fmt.Sprintf(\"%s rm --stop --force %s\", composeCommand, service.Name),\n\t\t},\n\t\t{\n\t\t\tdescription: gui.Tr.RemoveWithVolumes,\n\t\t\tcommand:     fmt.Sprintf(\"%s rm --stop --force -v %s\", composeCommand, service.Name),\n\t\t},\n\t}\n\n\tmenuItems := lo.Map(options, func(option *commandOption, _ int) *types.MenuItem {\n\t\treturn &types.MenuItem{\n\t\t\tLabelColumns: option.getDisplayStrings(),\n\t\t\tOnPress: func() error {\n\t\t\t\treturn gui.WithWaitingStatus(gui.Tr.RemovingStatus, func() error {\n\t\t\t\t\tif err := gui.OSCommand.RunCommand(option.command); err != nil {\n\t\t\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t\t\t}\n\n\t\t\t\t\treturn nil\n\t\t\t\t})\n\t\t\t},\n\t\t}\n\t})\n\n\treturn gui.Menu(CreateMenuOptions{\n\t\tTitle: \"\",\n\t\tItems: menuItems,\n\t})\n}\n\nfunc (gui *Gui) handleServicePause(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\tif service.Container == nil {\n\t\treturn nil\n\t}\n\n\treturn gui.PauseContainer(service.Container)\n}\n\nfunc (gui *Gui) handleServiceStop(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\treturn gui.createConfirmationPanel(gui.Tr.Confirm, gui.Tr.StopService, func(g *gocui.Gui, v *gocui.View) error {\n\t\treturn gui.WithWaitingStatus(gui.Tr.StoppingStatus, func() error {\n\t\t\tif !gui.isServiceFromLocalProject(service) {\n\t\t\t\tif service.Container == nil {\n\t\t\t\t\treturn gui.createErrorPanel(gui.Tr.CannotManageNonLocalService)\n\t\t\t\t}\n\t\t\t\treturn service.Container.Stop()\n\t\t\t}\n\t\t\tif err := service.Stop(); err != nil {\n\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t}\n\t\t\treturn nil\n\t\t})\n\t}, nil)\n}\n\nfunc (gui *Gui) handleServiceUp(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tif !gui.isServiceFromLocalProject(service) {\n\t\treturn gui.createErrorPanel(gui.Tr.CannotManageNonLocalService)\n\t}\n\n\treturn gui.WithWaitingStatus(gui.Tr.UppingServiceStatus, func() error {\n\t\tif err := service.Up(); err != nil {\n\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t}\n\n\t\treturn nil\n\t})\n}\n\nfunc (gui *Gui) handleServiceRestart(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\treturn gui.WithWaitingStatus(gui.Tr.RestartingStatus, func() error {\n\t\tif !gui.isServiceFromLocalProject(service) {\n\t\t\tif service.Container == nil {\n\t\t\t\treturn gui.createErrorPanel(gui.Tr.CannotManageNonLocalService)\n\t\t\t}\n\t\t\treturn service.Container.Restart()\n\t\t}\n\t\tif err := service.Restart(); err != nil {\n\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t}\n\t\treturn nil\n\t})\n}\n\nfunc (gui *Gui) handleServiceStart(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tif !gui.isServiceFromLocalProject(service) {\n\t\tif service.Container == nil {\n\t\t\treturn gui.createErrorPanel(gui.Tr.CannotManageNonLocalService)\n\t\t}\n\t\treturn gui.WithWaitingStatus(gui.Tr.StartingStatus, func() error {\n\t\t\treturn service.Container.Start()\n\t\t})\n\t}\n\n\treturn gui.WithWaitingStatus(gui.Tr.StartingStatus, func() error {\n\t\tif err := service.Start(); err != nil {\n\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t}\n\t\treturn nil\n\t})\n}\n\nfunc (gui *Gui) handleServiceAttach(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tif service.Container == nil {\n\t\treturn gui.createErrorPanel(gui.Tr.NoContainers)\n\t}\n\n\tc, err := service.Attach()\n\tif err != nil {\n\t\treturn gui.createErrorPanel(err.Error())\n\t}\n\n\treturn gui.runSubprocess(c)\n}\n\nfunc (gui *Gui) handleServiceRenderLogsToMain(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tc, err := service.ViewLogs()\n\tif err != nil {\n\t\treturn gui.createErrorPanel(err.Error())\n\t}\n\n\treturn gui.runSubprocess(c)\n}\n\nfunc (gui *Gui) handleProjectUp(g *gocui.Gui, v *gocui.View) error {\n\tproject, _ := gui.Panels.Projects.GetSelectedItem()\n\tif project != nil && project.Name != gui.DockerCommand.LocalProjectName {\n\t\treturn gui.createErrorPanel(gui.Tr.CannotManageNonLocalService)\n\t}\n\treturn gui.createConfirmationPanel(gui.Tr.Confirm, gui.Tr.ConfirmUpProject, func(g *gocui.Gui, v *gocui.View) error {\n\t\tcmdStr := utils.ApplyTemplate(\n\t\t\tgui.Config.UserConfig.CommandTemplates.Up,\n\t\t\tgui.DockerCommand.NewCommandObject(commands.CommandObject{Project: project}),\n\t\t)\n\n\t\treturn gui.WithWaitingStatus(gui.Tr.UppingProjectStatus, func() error {\n\t\t\tif err := gui.OSCommand.RunCommand(cmdStr); err != nil {\n\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t}\n\t\t\treturn nil\n\t\t})\n\t}, nil)\n}\n\nfunc (gui *Gui) handleProjectDown(g *gocui.Gui, v *gocui.View) error {\n\tproject, _ := gui.Panels.Projects.GetSelectedItem()\n\tif project != nil && project.Name != gui.DockerCommand.LocalProjectName {\n\t\treturn gui.createErrorPanel(gui.Tr.CannotManageNonLocalService)\n\t}\n\tdownCommand := utils.ApplyTemplate(\n\t\tgui.Config.UserConfig.CommandTemplates.Down,\n\t\tgui.DockerCommand.NewCommandObject(commands.CommandObject{Project: project}),\n\t)\n\n\tdownWithVolumesCommand := utils.ApplyTemplate(\n\t\tgui.Config.UserConfig.CommandTemplates.DownWithVolumes,\n\t\tgui.DockerCommand.NewCommandObject(commands.CommandObject{Project: project}),\n\t)\n\n\toptions := []*commandOption{\n\t\t{\n\t\t\tdescription: gui.Tr.Down,\n\t\t\tcommand:     downCommand,\n\t\t\tonPress: func() error {\n\t\t\t\treturn gui.WithWaitingStatus(gui.Tr.DowningStatus, func() error {\n\t\t\t\t\tif err := gui.OSCommand.RunCommand(downCommand); err != nil {\n\t\t\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t\t\t}\n\t\t\t\t\treturn nil\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tdescription: gui.Tr.DownWithVolumes,\n\t\t\tcommand:     downWithVolumesCommand,\n\t\t\tonPress: func() error {\n\t\t\t\treturn gui.WithWaitingStatus(gui.Tr.DowningStatus, func() error {\n\t\t\t\t\tif err := gui.OSCommand.RunCommand(downWithVolumesCommand); err != nil {\n\t\t\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t\t\t}\n\t\t\t\t\treturn nil\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t}\n\n\tmenuItems := lo.Map(options, func(option *commandOption, _ int) *types.MenuItem {\n\t\treturn &types.MenuItem{\n\t\t\tLabelColumns: option.getDisplayStrings(),\n\t\t\tOnPress:      option.onPress,\n\t\t}\n\t})\n\n\treturn gui.Menu(CreateMenuOptions{\n\t\tTitle: \"\",\n\t\tItems: menuItems,\n\t})\n}\n\nfunc (gui *Gui) handleServiceRestartMenu(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tif !gui.isServiceFromLocalProject(service) {\n\t\treturn gui.createErrorPanel(gui.Tr.CannotManageNonLocalService)\n\t}\n\n\trebuildCommand := utils.ApplyTemplate(\n\t\tgui.Config.UserConfig.CommandTemplates.RebuildService,\n\t\tgui.DockerCommand.NewCommandObject(commands.CommandObject{Service: service}),\n\t)\n\n\trecreateCommand := utils.ApplyTemplate(\n\t\tgui.Config.UserConfig.CommandTemplates.RecreateService,\n\t\tgui.DockerCommand.NewCommandObject(commands.CommandObject{Service: service}),\n\t)\n\n\toptions := []*commandOption{\n\t\t{\n\t\t\tdescription: gui.Tr.Restart,\n\t\t\tcommand: utils.ApplyTemplate(\n\t\t\t\tgui.Config.UserConfig.CommandTemplates.RestartService,\n\t\t\t\tgui.DockerCommand.NewCommandObject(commands.CommandObject{Service: service}),\n\t\t\t),\n\t\t\tonPress: func() error {\n\t\t\t\treturn gui.WithWaitingStatus(gui.Tr.RestartingStatus, func() error {\n\t\t\t\t\tif err := service.Restart(); err != nil {\n\t\t\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t\t\t}\n\t\t\t\t\treturn nil\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tdescription: gui.Tr.Recreate,\n\t\t\tcommand: utils.ApplyTemplate(\n\t\t\t\tgui.Config.UserConfig.CommandTemplates.RecreateService,\n\t\t\t\tgui.DockerCommand.NewCommandObject(commands.CommandObject{Service: service}),\n\t\t\t),\n\t\t\tonPress: func() error {\n\t\t\t\treturn gui.WithWaitingStatus(gui.Tr.RestartingStatus, func() error {\n\t\t\t\t\tif err := gui.OSCommand.RunCommand(recreateCommand); err != nil {\n\t\t\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t\t\t}\n\t\t\t\t\treturn nil\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tdescription: gui.Tr.Rebuild,\n\t\t\tcommand: utils.ApplyTemplate(\n\t\t\t\tgui.Config.UserConfig.CommandTemplates.RebuildService,\n\t\t\t\tgui.DockerCommand.NewCommandObject(commands.CommandObject{Service: service}),\n\t\t\t),\n\t\t\tonPress: func() error {\n\t\t\t\treturn gui.runSubprocess(gui.OSCommand.RunCustomCommand(rebuildCommand))\n\t\t\t},\n\t\t},\n\t}\n\n\tmenuItems := lo.Map(options, func(option *commandOption, _ int) *types.MenuItem {\n\t\treturn &types.MenuItem{\n\t\t\tLabelColumns: option.getDisplayStrings(),\n\t\t\tOnPress:      option.onPress,\n\t\t}\n\t})\n\n\treturn gui.Menu(CreateMenuOptions{\n\t\tTitle: \"\",\n\t\tItems: menuItems,\n\t})\n}\n\nfunc (gui *Gui) handleServicesCustomCommand(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tcommandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{\n\t\tService:   service,\n\t\tContainer: service.Container,\n\t})\n\n\tvar customCommands []config.CustomCommand\n\n\tcustomServiceCommands := gui.Config.UserConfig.CustomCommands.Services\n\t// we only include service commands if they have no serviceNames defined or if our service happens to be one of the serviceNames defined\nL:\n\tfor _, cmd := range customServiceCommands {\n\t\tif len(cmd.ServiceNames) == 0 {\n\t\t\tcustomCommands = append(customCommands, cmd)\n\t\t\tcontinue L\n\t\t}\n\t\tfor _, serviceName := range cmd.ServiceNames {\n\t\t\tif serviceName == service.Name {\n\t\t\t\t// appending these to the top given they're more likely to be selected\n\t\t\t\tcustomCommands = append([]config.CustomCommand{cmd}, customCommands...)\n\t\t\t\tcontinue L\n\t\t\t}\n\t\t}\n\t}\n\n\tif service.Container != nil {\n\t\tcustomCommands = append(customCommands, gui.Config.UserConfig.CustomCommands.Containers...)\n\t}\n\n\treturn gui.createCustomCommandMenu(customCommands, commandObject)\n}\n\nfunc (gui *Gui) handleServicesBulkCommand(g *gocui.Gui, v *gocui.View) error {\n\tproject, _ := gui.Panels.Projects.GetSelectedItem()\n\tbulkCommands := gui.Config.UserConfig.BulkCommands.Services\n\tcommandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{Project: project})\n\n\treturn gui.createBulkCommandMenu(bulkCommands, commandObject)\n}\n\nfunc (gui *Gui) handleServicesExecShell(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tcontainer := service.Container\n\tif container == nil {\n\t\treturn gui.createErrorPanel(gui.Tr.NoContainers)\n\t}\n\n\treturn gui.containerExecShell(container)\n}\n\nfunc (gui *Gui) handleServicesOpenInBrowserCommand(g *gocui.Gui, v *gocui.View) error {\n\tservice, err := gui.Panels.Services.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tcontainer := service.Container\n\tif container == nil {\n\t\treturn gui.createErrorPanel(gui.Tr.NoContainers)\n\t}\n\n\treturn gui.openContainerInBrowser(container)\n}\n"
  },
  {
    "path": "pkg/gui/sort_container_test.go",
    "content": "package gui\n\nimport (\n\t\"sort\"\n\t\"testing\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/stretchr/testify/assert\"\n)\n\nfunc sampleContainers() []*commands.Container {\n\treturn []*commands.Container{\n\t\t{\n\t\t\tID:   \"1\",\n\t\t\tName: \"1\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"exited\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tID:   \"2\",\n\t\t\tName: \"2\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"running\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tID:   \"3\",\n\t\t\tName: \"3\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"running\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tID:   \"4\",\n\t\t\tName: \"4\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"created\",\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc expectedPerStatusContainers() []*commands.Container {\n\treturn []*commands.Container{\n\t\t{\n\t\t\tID:   \"2\",\n\t\t\tName: \"2\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"running\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tID:   \"3\",\n\t\t\tName: \"3\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"running\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tID:   \"1\",\n\t\t\tName: \"1\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"exited\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tID:   \"4\",\n\t\t\tName: \"4\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"created\",\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc expectedLegacySortedContainers() []*commands.Container {\n\treturn []*commands.Container{\n\t\t{\n\t\t\tID:   \"1\",\n\t\t\tName: \"1\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"exited\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tID:   \"2\",\n\t\t\tName: \"2\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"running\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tID:   \"3\",\n\t\t\tName: \"3\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"running\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tID:   \"4\",\n\t\t\tName: \"4\",\n\t\t\tContainer: container.Summary{\n\t\t\t\tState: \"created\",\n\t\t\t},\n\t\t},\n\t}\n}\n\nfunc assertEqualContainers(t *testing.T, left *commands.Container, right *commands.Container) {\n\tt.Helper()\n\tassert.Equal(t, left.Container.State, right.Container.State)\n\tassert.Equal(t, left.Container.ID, right.Container.ID)\n\tassert.Equal(t, left.Name, right.Name)\n}\n\nfunc TestSortContainers(t *testing.T) {\n\tactual := sampleContainers()\n\n\texpected := expectedPerStatusContainers()\n\n\tsort.Slice(actual, func(i, j int) bool {\n\t\treturn sortContainers(actual[i], actual[j], false)\n\t})\n\n\tassert.Equal(t, len(actual), len(expected))\n\n\tfor i := 0; i < len(actual); i++ {\n\t\tassertEqualContainers(t, expected[i], actual[i])\n\t}\n}\n\nfunc TestLegacySortedContainers(t *testing.T) {\n\tactual := sampleContainers()\n\n\texpected := expectedLegacySortedContainers()\n\n\tsort.Slice(actual, func(i, j int) bool {\n\t\treturn sortContainers(actual[i], actual[j], true)\n\t})\n\n\tassert.Equal(t, len(actual), len(expected))\n\n\tfor i := 0; i < len(actual); i++ {\n\t\tassertEqualContainers(t, expected[i], actual[i])\n\t}\n}\n"
  },
  {
    "path": "pkg/gui/subprocess.go",
    "content": "package gui\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"os/exec\"\n\t\"os/signal\"\n\t\"strings\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n)\n\nfunc (gui *Gui) runSubprocess(cmd *exec.Cmd) error {\n\treturn gui.runSubprocessWithMessage(cmd, \"\")\n}\n\nfunc (gui *Gui) runSubprocessWithMessage(cmd *exec.Cmd, msg string) error {\n\tgui.Mutexes.SubprocessMutex.Lock()\n\tdefer gui.Mutexes.SubprocessMutex.Unlock()\n\n\tif err := gui.g.Suspend(); err != nil {\n\t\treturn gui.createErrorPanel(err.Error())\n\t}\n\n\tgui.PauseBackgroundThreads = true\n\n\tgui.runCommand(cmd, msg)\n\n\tif err := gui.g.Resume(); err != nil {\n\t\treturn gui.createErrorPanel(err.Error())\n\t}\n\n\tgui.PauseBackgroundThreads = false\n\n\treturn nil\n}\n\nfunc (gui *Gui) runCommand(cmd *exec.Cmd, msg string) {\n\tcmd.Stdout = os.Stdout\n\tcmd.Stderr = os.Stdout\n\tcmd.Stdin = os.Stdin\n\n\tstop := make(chan os.Signal, 1)\n\tdefer signal.Stop(stop)\n\n\tgo func() {\n\t\tsignal.Notify(stop, os.Interrupt)\n\t\t<-stop\n\n\t\tif err := gui.OSCommand.Kill(cmd); err != nil {\n\t\t\tgui.Log.Error(err)\n\t\t}\n\t}()\n\n\tfmt.Fprintf(os.Stdout, \"\\n%s\\n\\n\", utils.ColoredString(\"+ \"+strings.Join(cmd.Args, \" \"), color.FgBlue))\n\tif msg != \"\" {\n\t\tfmt.Fprintf(os.Stdout, \"\\n%s\\n\\n\", utils.ColoredString(msg, color.FgGreen))\n\t}\n\tif err := cmd.Run(); err != nil {\n\t\t// not handling the error explicitly because usually we're going to see it\n\t\t// in the output anyway\n\t\tgui.Log.Error(err)\n\t}\n\n\tcmd.Stdin = nil\n\tcmd.Stdout = io.Discard\n\tcmd.Stderr = io.Discard\n\n\tgui.promptToReturn()\n}\n"
  },
  {
    "path": "pkg/gui/tasks_adapter.go",
    "content": "package gui\n\nimport (\n\t\"context\"\n\t\"time\"\n\n\t\"github.com/jesseduffield/lazydocker/pkg/tasks\"\n)\n\nfunc (gui *Gui) QueueTask(f func(ctx context.Context)) error {\n\treturn gui.taskManager.NewTask(f)\n}\n\ntype RenderStringTaskOpts struct {\n\tAutoscroll    bool\n\tWrap          bool\n\tGetStrContent func() string\n}\n\ntype TaskOpts struct {\n\tAutoscroll bool\n\tWrap       bool\n\tFunc       func(ctx context.Context)\n}\n\ntype TickerTaskOpts struct {\n\tDuration   time.Duration\n\tBefore     func(ctx context.Context)\n\tFunc       func(ctx context.Context, notifyStopped chan struct{})\n\tAutoscroll bool\n\tWrap       bool\n}\n\nfunc (gui *Gui) NewRenderStringTask(opts RenderStringTaskOpts) tasks.TaskFunc {\n\ttaskOpts := TaskOpts{\n\t\tAutoscroll: opts.Autoscroll,\n\t\tWrap:       opts.Wrap,\n\t\tFunc: func(ctx context.Context) {\n\t\t\tgui.RenderStringMain(opts.GetStrContent())\n\t\t},\n\t}\n\n\treturn gui.NewTask(taskOpts)\n}\n\n// assumes it's cheap to obtain the content (otherwise we would pass a function that returns the content)\nfunc (gui *Gui) NewSimpleRenderStringTask(getContent func() string) tasks.TaskFunc {\n\treturn gui.NewRenderStringTask(RenderStringTaskOpts{\n\t\tGetStrContent: getContent,\n\t\tAutoscroll:    false,\n\t\tWrap:          gui.Config.UserConfig.Gui.WrapMainPanel,\n\t})\n}\n\nfunc (gui *Gui) NewTask(opts TaskOpts) tasks.TaskFunc {\n\treturn func(ctx context.Context) {\n\t\tmainView := gui.Views.Main\n\t\tmainView.Autoscroll = opts.Autoscroll\n\t\tmainView.Wrap = opts.Wrap\n\n\t\topts.Func(ctx)\n\t}\n}\n\n// NewTickerTask is a convenience function for making a new task that repeats some action once per e.g. second\n// the before function gets called after the lock is obtained, but before the ticker starts.\n// if you handle a message on the stop channel in f() you need to send a message on the notifyStopped channel because returning is not sufficient. Here, unlike in a regular task, simply returning means we're now going to wait till the next tick to run again.\nfunc (gui *Gui) NewTickerTask(opts TickerTaskOpts) tasks.TaskFunc {\n\tnotifyStopped := make(chan struct{}, 10)\n\n\ttask := func(ctx context.Context) {\n\t\tif opts.Before != nil {\n\t\t\topts.Before(ctx)\n\t\t}\n\t\ttickChan := time.NewTicker(opts.Duration)\n\t\tdefer tickChan.Stop()\n\t\t// calling f first so that we're not waiting for the first tick\n\t\topts.Func(ctx, notifyStopped)\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-notifyStopped:\n\t\t\t\tgui.Log.Info(\"exiting ticker task due to notifyStopped channel\")\n\t\t\t\treturn\n\t\t\tcase <-ctx.Done():\n\t\t\t\tgui.Log.Info(\"exiting ticker task due to stopped channel\")\n\t\t\t\treturn\n\t\t\tcase <-tickChan.C:\n\t\t\t\tgui.Log.Info(\"running ticker task again\")\n\t\t\t\topts.Func(ctx, notifyStopped)\n\t\t\t}\n\t\t}\n\t}\n\n\ttaskOpts := TaskOpts{\n\t\tAutoscroll: opts.Autoscroll,\n\t\tWrap:       opts.Wrap,\n\t\tFunc:       task,\n\t}\n\n\treturn gui.NewTask(taskOpts)\n}\n"
  },
  {
    "path": "pkg/gui/theme.go",
    "content": "package gui\n\nimport (\n\t\"github.com/jesseduffield/gocui\"\n)\n\n// GetOptionsPanelTextColor gets the color of the options panel text\nfunc (gui *Gui) GetOptionsPanelTextColor() gocui.Attribute {\n\treturn GetGocuiStyle(gui.Config.UserConfig.Gui.Theme.OptionsTextColor)\n}\n\n// SetColorScheme sets the color scheme for the app based on the user config\nfunc (gui *Gui) SetColorScheme() error {\n\tgui.g.FgColor = GetGocuiStyle(gui.Config.UserConfig.Gui.Theme.InactiveBorderColor)\n\tgui.g.SelFgColor = GetGocuiStyle(gui.Config.UserConfig.Gui.Theme.ActiveBorderColor)\n\tgui.g.FrameColor = gui.g.FgColor\n\tgui.g.SelFrameColor = gui.g.SelFgColor\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/gui/types/types.go",
    "content": "package types\n\ntype MenuItem struct {\n\tLabel string\n\n\t// alternative to Label. Allows specifying columns which will be auto-aligned\n\tLabelColumns []string\n\n\tOnPress func() error\n\n\t// Only applies when Label is used\n\tOpensMenu bool\n}\n"
  },
  {
    "path": "pkg/gui/view_helpers.go",
    "content": "package gui\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/panels\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/samber/lo\"\n\t\"github.com/spkg/bom\"\n)\n\nfunc (gui *Gui) handleGoTo(view *gocui.View) func(g *gocui.Gui, v *gocui.View) error {\n\treturn func(g *gocui.Gui, v *gocui.View) error {\n\t\tgui.resetMainView()\n\t\treturn gui.switchFocus(view)\n\t}\n}\n\nfunc (gui *Gui) nextView(g *gocui.Gui, v *gocui.View) error {\n\tsideViewNames := gui.sideViewNames()\n\tvar focusedViewName string\n\tif v == nil || v.Name() == sideViewNames[len(sideViewNames)-1] {\n\t\tfocusedViewName = sideViewNames[0]\n\t} else {\n\t\tviewName := v.Name()\n\t\tfor i := range sideViewNames {\n\t\t\tif viewName == sideViewNames[i] {\n\t\t\t\tfocusedViewName = sideViewNames[i+1]\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif i == len(sideViewNames)-1 {\n\t\t\t\tgui.Log.Info(\"not in list of views\")\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\tfocusedView, err := g.View(focusedViewName)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tgui.resetMainView()\n\treturn gui.switchFocus(focusedView)\n}\n\nfunc (gui *Gui) previousView(g *gocui.Gui, v *gocui.View) error {\n\tsideViewNames := gui.sideViewNames()\n\tvar focusedViewName string\n\tif v == nil || v.Name() == sideViewNames[0] {\n\t\tfocusedViewName = sideViewNames[len(sideViewNames)-1]\n\t} else {\n\t\tviewName := v.Name()\n\t\tfor i := range sideViewNames {\n\t\t\tif viewName == sideViewNames[i] {\n\t\t\t\tfocusedViewName = sideViewNames[i-1]\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif i == len(sideViewNames)-1 {\n\t\t\t\tgui.Log.Info(\"not in list of views\")\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\tfocusedView, err := g.View(focusedViewName)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tgui.resetMainView()\n\treturn gui.switchFocus(focusedView)\n}\n\nfunc (gui *Gui) resetMainView() {\n\tgui.State.Panels.Main.ObjectKey = \"\"\n\tgui.Views.Main.Wrap = gui.Config.UserConfig.Gui.WrapMainPanel\n}\n\n// if the cursor down past the last item, move it to the last line\n// nolint:unparam\nfunc (gui *Gui) focusPoint(selectedX int, selectedY int, lineCount int, v *gocui.View) {\n\tif selectedY < 0 || selectedY > lineCount {\n\t\treturn\n\t}\n\tox, oy := v.Origin()\n\toriginalOy := oy\n\tcx, cy := v.Cursor()\n\toriginalCy := cy\n\t_, height := v.Size()\n\n\tly := utils.Max(height-1, 0)\n\n\twindowStart := oy\n\twindowEnd := oy + ly\n\n\tif selectedY < windowStart {\n\t\toy = utils.Max(oy-(windowStart-selectedY), 0)\n\t} else if selectedY > windowEnd {\n\t\toy += (selectedY - windowEnd)\n\t}\n\n\tif windowEnd > lineCount-1 {\n\t\tshiftAmount := (windowEnd - (lineCount - 1))\n\t\toy = utils.Max(oy-shiftAmount, 0)\n\t}\n\n\tif originalOy != oy {\n\t\t_ = v.SetOrigin(ox, oy)\n\t}\n\n\tcy = selectedY - oy\n\tif originalCy != cy {\n\t\t_ = v.SetCursor(cx, selectedY-oy)\n\t}\n}\n\nfunc (gui *Gui) FocusY(selectedY int, lineCount int, v *gocui.View) {\n\tgui.focusPoint(0, selectedY, lineCount, v)\n}\n\nfunc (gui *Gui) ResetOrigin(v *gocui.View) {\n\t_ = v.SetOrigin(0, 0)\n\t_ = v.SetCursor(0, 0)\n}\n\nfunc (gui *Gui) cleanString(s string) string {\n\toutput := string(bom.Clean([]byte(s)))\n\treturn utils.NormalizeLinefeeds(output)\n}\n\nfunc (gui *Gui) setViewContent(v *gocui.View, s string) error {\n\tv.Clear()\n\tfmt.Fprint(v, gui.cleanString(s))\n\treturn nil\n}\n\n// renderString resets the origin of a view and sets its content\nfunc (gui *Gui) renderString(g *gocui.Gui, viewName, s string) error {\n\tg.Update(func(*gocui.Gui) error {\n\t\tv, err := g.View(viewName)\n\t\tif err != nil {\n\t\t\treturn nil // return gracefully if view has been deleted\n\t\t}\n\t\tif err := v.SetOrigin(0, 0); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := v.SetCursor(0, 0); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn gui.setViewContent(v, s)\n\t})\n\treturn nil\n}\n\nfunc (gui *Gui) RenderStringMain(s string) {\n\t_ = gui.renderString(gui.g, \"main\", s)\n}\n\n// reRenderString sets the main view's content, without changing its origin\nfunc (gui *Gui) reRenderStringMain(s string) {\n\tgui.reRenderString(\"main\", s)\n}\n\n// reRenderString sets the view's content, without changing its origin\nfunc (gui *Gui) reRenderString(viewName, s string) {\n\tgui.g.Update(func(*gocui.Gui) error {\n\t\tv, err := gui.g.View(viewName)\n\t\tif err != nil {\n\t\t\treturn nil // return gracefully if view has been deleted\n\t\t}\n\t\treturn gui.setViewContent(v, s)\n\t})\n}\n\nfunc (gui *Gui) optionsMapToString(optionsMap map[string]string) string {\n\toptionsArray := make([]string, 0)\n\tfor key, description := range optionsMap {\n\t\toptionsArray = append(optionsArray, key+\": \"+description)\n\t}\n\tsort.Strings(optionsArray)\n\treturn strings.Join(optionsArray, \", \")\n}\n\nfunc (gui *Gui) renderOptionsMap(optionsMap map[string]string) error {\n\treturn gui.renderString(gui.g, \"options\", gui.optionsMapToString(optionsMap))\n}\n\nfunc (gui *Gui) GetMainView() *gocui.View {\n\treturn gui.Views.Main\n}\n\nfunc (gui *Gui) trimmedContent(v *gocui.View) string {\n\treturn strings.TrimSpace(v.Buffer())\n}\n\nfunc (gui *Gui) currentViewName() string {\n\tcurrentView := gui.g.CurrentView()\n\t// this can happen when the app is first starting up\n\tif currentView == nil {\n\t\treturn gui.initiallyFocusedViewName()\n\t}\n\treturn currentView.Name()\n}\n\nfunc (gui *Gui) resizeCurrentPopupPanel(g *gocui.Gui) error {\n\tv := g.CurrentView()\n\tif gui.isPopupPanel(v.Name()) {\n\t\treturn gui.resizePopupPanel(v)\n\t}\n\treturn nil\n}\n\nfunc (gui *Gui) resizePopupPanel(v *gocui.View) error {\n\t// If the confirmation panel is already displayed, just resize the width,\n\t// otherwise continue\n\tcontent := v.Buffer()\n\tx0, y0, x1, y1 := gui.getConfirmationPanelDimensions(v.Wrap, content)\n\tvx0, vy0, vx1, vy1 := v.Dimensions()\n\tif vx0 == x0 && vy0 == y0 && vx1 == x1 && vy1 == y1 {\n\t\treturn nil\n\t}\n\t_, err := gui.g.SetView(v.Name(), x0, y0, x1, y1, 0)\n\treturn err\n}\n\nfunc (gui *Gui) renderPanelOptions() error {\n\tcurrentView := gui.g.CurrentView()\n\tswitch currentView.Name() {\n\tcase \"menu\":\n\t\treturn gui.renderMenuOptions()\n\tcase \"confirmation\":\n\t\treturn gui.renderConfirmationOptions()\n\t}\n\treturn gui.renderGlobalOptions()\n}\n\nfunc (gui *Gui) isPopupPanel(viewName string) bool {\n\treturn lo.Contains(gui.popupViewNames(), viewName)\n}\n\nfunc (gui *Gui) popupPanelFocused() bool {\n\treturn gui.isPopupPanel(gui.currentViewName())\n}\n\nfunc (gui *Gui) clearMainView() {\n\tmainView := gui.Views.Main\n\tmainView.Clear()\n\t_ = mainView.SetOrigin(0, 0)\n\t_ = mainView.SetCursor(0, 0)\n}\n\nfunc (gui *Gui) HandleClick(v *gocui.View, itemCount int, selectedLine *int, handleSelect func() error) error {\n\twrappedHandleSelect := func(g *gocui.Gui, v *gocui.View) error {\n\t\treturn handleSelect()\n\t}\n\treturn gui.handleClickAux(v, itemCount, selectedLine, wrappedHandleSelect)\n}\n\nfunc (gui *Gui) handleClickAux(v *gocui.View, itemCount int, selectedLine *int, handleSelect func(*gocui.Gui, *gocui.View) error) error {\n\tif gui.popupPanelFocused() && v != nil && !gui.isPopupPanel(v.Name()) {\n\t\treturn nil\n\t}\n\n\t_, cy := v.Cursor()\n\t_, oy := v.Origin()\n\n\tnewSelectedLine := cy + oy\n\n\tif newSelectedLine < 0 {\n\t\tnewSelectedLine = 0\n\t}\n\n\tif newSelectedLine > itemCount-1 {\n\t\tnewSelectedLine = itemCount - 1\n\t}\n\n\t*selectedLine = newSelectedLine\n\n\tif gui.currentViewName() != v.Name() {\n\t\tif err := gui.switchFocus(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn handleSelect(gui.g, v)\n}\n\nfunc (gui *Gui) nextScreenMode() error {\n\tif gui.currentViewName() == \"main\" {\n\t\tgui.State.ScreenMode = prevIntInCycle([]WindowMaximisation{SCREEN_NORMAL, SCREEN_HALF, SCREEN_FULL}, gui.State.ScreenMode)\n\n\t\treturn nil\n\t}\n\n\tgui.State.ScreenMode = nextIntInCycle([]WindowMaximisation{SCREEN_NORMAL, SCREEN_HALF, SCREEN_FULL}, gui.State.ScreenMode)\n\n\treturn nil\n}\n\nfunc (gui *Gui) prevScreenMode() error {\n\tif gui.currentViewName() == \"main\" {\n\t\tgui.State.ScreenMode = nextIntInCycle([]WindowMaximisation{SCREEN_NORMAL, SCREEN_HALF, SCREEN_FULL}, gui.State.ScreenMode)\n\n\t\treturn nil\n\t}\n\n\tgui.State.ScreenMode = prevIntInCycle([]WindowMaximisation{SCREEN_NORMAL, SCREEN_HALF, SCREEN_FULL}, gui.State.ScreenMode)\n\n\treturn nil\n}\n\nfunc nextIntInCycle(sl []WindowMaximisation, current WindowMaximisation) WindowMaximisation {\n\tfor i, val := range sl {\n\t\tif val == current {\n\t\t\tif i == len(sl)-1 {\n\t\t\t\treturn sl[0]\n\t\t\t}\n\t\t\treturn sl[i+1]\n\t\t}\n\t}\n\treturn sl[0]\n}\n\nfunc prevIntInCycle(sl []WindowMaximisation, current WindowMaximisation) WindowMaximisation {\n\tfor i, val := range sl {\n\t\tif val == current {\n\t\t\tif i > 0 {\n\t\t\t\treturn sl[i-1]\n\t\t\t}\n\t\t\treturn sl[len(sl)-1]\n\t\t}\n\t}\n\treturn sl[len(sl)-1]\n}\n\nfunc (gui *Gui) CurrentView() *gocui.View {\n\treturn gui.g.CurrentView()\n}\n\nfunc (gui *Gui) currentSidePanel() (panels.ISideListPanel, bool) {\n\tviewName := gui.currentViewName()\n\n\tfor _, sidePanel := range gui.allSidePanels() {\n\t\tif sidePanel.GetView().Name() == viewName {\n\t\t\treturn sidePanel, true\n\t\t}\n\t}\n\n\treturn nil, false\n}\n\n// returns the current list panel. If no list panel is focused, returns false.\nfunc (gui *Gui) currentListPanel() (panels.ISideListPanel, bool) {\n\tviewName := gui.currentViewName()\n\n\tfor _, sidePanel := range gui.allListPanels() {\n\t\tif sidePanel.GetView().Name() == viewName {\n\t\t\treturn sidePanel, true\n\t\t}\n\t}\n\n\treturn nil, false\n}\n\nfunc (gui *Gui) allSidePanels() []panels.ISideListPanel {\n\treturn []panels.ISideListPanel{\n\t\tgui.Panels.Projects,\n\t\tgui.Panels.Services,\n\t\tgui.Panels.Containers,\n\t\tgui.Panels.Images,\n\t\tgui.Panels.Volumes,\n\t\tgui.Panels.Networks,\n\t}\n}\n\nfunc (gui *Gui) allListPanels() []panels.ISideListPanel {\n\treturn append(gui.allSidePanels(), gui.Panels.Menu)\n}\n\nfunc (gui *Gui) IsCurrentView(view *gocui.View) bool {\n\treturn view == gui.CurrentView()\n}\n"
  },
  {
    "path": "pkg/gui/views.go",
    "content": "package gui\n\nimport (\n\t\"os\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/samber/lo\"\n)\n\n// See https://github.com/xtermjs/xterm.js/issues/4238\n// VSCode is soon to fix this in an upcoming update.\n// Once that's done, we can scrap the HIDE_UNDERSCORES variable\nvar (\n\tunderscoreEnvChecked bool\n\thideUnderscores      bool\n)\n\nfunc hideUnderScores() bool {\n\tif !underscoreEnvChecked {\n\t\thideUnderscores = os.Getenv(\"TERM_PROGRAM\") == \"vscode\"\n\t\tunderscoreEnvChecked = true\n\t}\n\n\treturn hideUnderscores\n}\n\ntype Views struct {\n\t// side panels\n\tProject    *gocui.View\n\tServices   *gocui.View\n\tContainers *gocui.View\n\tImages     *gocui.View\n\tVolumes    *gocui.View\n\tNetworks   *gocui.View\n\n\t// main panel\n\tMain *gocui.View\n\n\t// bottom line\n\tOptions     *gocui.View\n\tInformation *gocui.View\n\tAppStatus   *gocui.View\n\t// text that prompts you to enter text in the Filter view\n\tFilterPrefix *gocui.View\n\t// appears next to the SearchPrefix view, it's where you type in the search string\n\tFilter *gocui.View\n\n\t// popups\n\tConfirmation *gocui.View\n\tMenu         *gocui.View\n\n\t// will cover everything when it appears\n\tLimit *gocui.View\n}\n\ntype viewNameMapping struct {\n\tviewPtr **gocui.View\n\tname    string\n\t// if true, we handle the position/size of the view in arrangement.go. Otherwise\n\t// we handle it manually.\n\tautoPosition bool\n}\n\nfunc (gui *Gui) orderedViewNameMappings() []viewNameMapping {\n\treturn []viewNameMapping{\n\t\t// first layer. Ordering within this layer does not matter because there are\n\t\t// no overlapping views\n\t\t{viewPtr: &gui.Views.Project, name: \"project\", autoPosition: true},\n\t\t{viewPtr: &gui.Views.Services, name: \"services\", autoPosition: true},\n\t\t{viewPtr: &gui.Views.Containers, name: \"containers\", autoPosition: true},\n\t\t{viewPtr: &gui.Views.Images, name: \"images\", autoPosition: true},\n\t\t{viewPtr: &gui.Views.Volumes, name: \"volumes\", autoPosition: true},\n\t\t{viewPtr: &gui.Views.Networks, name: \"networks\", autoPosition: true},\n\n\t\t{viewPtr: &gui.Views.Main, name: \"main\", autoPosition: true},\n\n\t\t// bottom line\n\t\t{viewPtr: &gui.Views.Options, name: \"options\", autoPosition: true},\n\t\t{viewPtr: &gui.Views.AppStatus, name: \"appStatus\", autoPosition: true},\n\t\t{viewPtr: &gui.Views.Information, name: \"information\", autoPosition: true},\n\t\t{viewPtr: &gui.Views.Filter, name: \"filter\", autoPosition: true},\n\t\t{viewPtr: &gui.Views.FilterPrefix, name: \"filterPrefix\", autoPosition: true},\n\n\t\t// popups.\n\t\t{viewPtr: &gui.Views.Menu, name: \"menu\", autoPosition: false},\n\t\t{viewPtr: &gui.Views.Confirmation, name: \"confirmation\", autoPosition: false},\n\n\t\t// this guy will cover everything else when it appears\n\t\t{viewPtr: &gui.Views.Limit, name: \"limit\", autoPosition: true},\n\t}\n}\n\nfunc (gui *Gui) createAllViews() error {\n\tframeRunes := []rune{'─', '│', '╭', '╮', '╰', '╯'}\n\tswitch gui.Config.UserConfig.Gui.Border {\n\tcase \"single\":\n\t\tframeRunes = []rune{'─', '│', '┌', '┐', '└', '┘'}\n\tcase \"double\":\n\t\tframeRunes = []rune{'═', '║', '╔', '╗', '╚', '╝'}\n\tcase \"hidden\":\n\t\tframeRunes = []rune{' ', ' ', ' ', ' ', ' ', ' '}\n\t}\n\n\tvar err error\n\tfor _, mapping := range gui.orderedViewNameMappings() {\n\t\t*mapping.viewPtr, err = gui.prepareView(mapping.name)\n\t\tif err != nil && err.Error() != UNKNOWN_VIEW_ERROR_MSG {\n\t\t\treturn err\n\t\t}\n\t\t(*mapping.viewPtr).FrameRunes = frameRunes\n\t\t(*mapping.viewPtr).FgColor = gocui.ColorDefault\n\t}\n\n\tselectedLineBgColor := GetGocuiStyle(gui.Config.UserConfig.Gui.Theme.SelectedLineBgColor)\n\n\tgui.Views.Main.Wrap = gui.Config.UserConfig.Gui.WrapMainPanel\n\t// when you run a docker container with the -it flags (interactive mode) it adds carriage returns for some reason. This is not docker's fault, it's an os-level default.\n\tgui.Views.Main.IgnoreCarriageReturns = true\n\n\tgui.Views.Project.Title = gui.Tr.ProjectTitle\n\tgui.Views.Project.TitlePrefix = \"[1]\"\n\tgui.Views.Project.Highlight = true\n\tgui.Views.Project.SelBgColor = selectedLineBgColor\n\n\tgui.Views.Services.Highlight = true\n\tgui.Views.Services.Title = gui.Tr.ServicesTitle\n\tgui.Views.Services.TitlePrefix = \"[2]\"\n\tgui.Views.Services.SelBgColor = selectedLineBgColor\n\n\tgui.Views.Containers.Highlight = true\n\tgui.Views.Containers.SelBgColor = selectedLineBgColor\n\tif gui.Config.UserConfig.Gui.ShowAllContainers || !gui.DockerCommand.InDockerComposeProject {\n\t\tgui.Views.Containers.Title = gui.Tr.ContainersTitle\n\t} else {\n\t\tgui.Views.Containers.Title = gui.Tr.StandaloneContainersTitle\n\t}\n\tgui.Views.Containers.TitlePrefix = \"[3]\"\n\n\tgui.Views.Images.Highlight = true\n\tgui.Views.Images.Title = gui.Tr.ImagesTitle\n\tgui.Views.Images.SelBgColor = selectedLineBgColor\n\tgui.Views.Images.TitlePrefix = \"[4]\"\n\n\tgui.Views.Volumes.Highlight = true\n\tgui.Views.Volumes.Title = gui.Tr.VolumesTitle\n\tgui.Views.Volumes.TitlePrefix = \"[5]\"\n\tgui.Views.Volumes.SelBgColor = selectedLineBgColor\n\n\tgui.Views.Networks.Highlight = true\n\tgui.Views.Networks.Title = gui.Tr.NetworksTitle\n\tgui.Views.Networks.TitlePrefix = \"[6]\"\n\tgui.Views.Networks.SelBgColor = selectedLineBgColor\n\n\tgui.Views.Options.Frame = false\n\tgui.Views.Options.FgColor = gui.GetOptionsPanelTextColor()\n\n\tgui.Views.AppStatus.FgColor = gocui.ColorCyan\n\tgui.Views.AppStatus.Frame = false\n\n\tgui.Views.Information.Frame = false\n\tgui.Views.Information.FgColor = gocui.ColorGreen\n\n\tgui.Views.Confirmation.Visible = false\n\tgui.Views.Confirmation.Wrap = true\n\tgui.Views.Menu.Visible = false\n\tgui.Views.Menu.SelBgColor = selectedLineBgColor\n\n\tgui.Views.Limit.Visible = false\n\tgui.Views.Limit.Title = gui.Tr.NotEnoughSpace\n\tgui.Views.Limit.Wrap = true\n\n\tgui.Views.FilterPrefix.BgColor = gocui.ColorDefault\n\tgui.Views.FilterPrefix.FgColor = gocui.ColorGreen\n\tgui.Views.FilterPrefix.Frame = false\n\n\tgui.Views.Filter.BgColor = gocui.ColorDefault\n\tgui.Views.Filter.FgColor = gocui.ColorGreen\n\tgui.Views.Filter.Editable = true\n\tgui.Views.Filter.Frame = false\n\tgui.Views.Filter.Editor = gocui.EditorFunc(gui.wrapEditor(gocui.SimpleEditor))\n\n\treturn nil\n}\n\nfunc (gui *Gui) setInitialViewContent() error {\n\tif err := gui.renderString(gui.g, \"information\", gui.getInformationContent()); err != nil {\n\t\treturn err\n\t}\n\n\t_ = gui.setViewContent(gui.Views.FilterPrefix, gui.filterPrompt())\n\n\treturn nil\n}\n\nfunc (gui *Gui) getInformationContent() string {\n\tinformationStr := gui.Config.Version\n\tif !gui.g.Mouse {\n\t\treturn informationStr\n\t}\n\n\tattrs := []color.Attribute{color.FgMagenta}\n\tif !hideUnderScores() {\n\t\tattrs = append(attrs, color.Underline)\n\t}\n\n\tdonate := color.New(attrs...).Sprint(gui.Tr.Donate)\n\treturn donate + \" \" + informationStr\n}\n\nfunc (gui *Gui) popupViewNames() []string {\n\treturn []string{\"confirmation\", \"menu\"}\n}\n\n// these views have their position and size determined by arrangement.go\nfunc (gui *Gui) autoPositionedViewNames() []string {\n\tviews := lo.Filter(gui.orderedViewNameMappings(), func(viewNameMapping viewNameMapping, _ int) bool {\n\t\treturn viewNameMapping.autoPosition\n\t})\n\n\treturn lo.Map(views, func(viewNameMapping viewNameMapping, _ int) string {\n\t\treturn viewNameMapping.name\n\t})\n}\n"
  },
  {
    "path": "pkg/gui/volumes_panel.go",
    "content": "package gui\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/jesseduffield/lazydocker/pkg/commands\"\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/panels\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/presentation\"\n\t\"github.com/jesseduffield/lazydocker/pkg/gui/types\"\n\t\"github.com/jesseduffield/lazydocker/pkg/tasks\"\n\t\"github.com/jesseduffield/lazydocker/pkg/utils\"\n\t\"github.com/samber/lo\"\n)\n\nfunc (gui *Gui) getVolumesPanel() *panels.SideListPanel[*commands.Volume] {\n\treturn &panels.SideListPanel[*commands.Volume]{\n\t\tContextState: &panels.ContextState[*commands.Volume]{\n\t\t\tGetMainTabs: func() []panels.MainTab[*commands.Volume] {\n\t\t\t\treturn []panels.MainTab[*commands.Volume]{\n\t\t\t\t\t{\n\t\t\t\t\t\tKey:    \"config\",\n\t\t\t\t\t\tTitle:  gui.Tr.ConfigTitle,\n\t\t\t\t\t\tRender: gui.renderVolumeConfig,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t},\n\t\t\tGetItemContextCacheKey: func(volume *commands.Volume) string {\n\t\t\t\treturn \"volumes-\" + volume.Name\n\t\t\t},\n\t\t},\n\t\tListPanel: panels.ListPanel[*commands.Volume]{\n\t\t\tList: panels.NewFilteredList[*commands.Volume](),\n\t\t\tView: gui.Views.Volumes,\n\t\t},\n\t\tNoItemsMessage: gui.Tr.NoVolumes,\n\t\tGui:            gui.intoInterface(),\n\t\t// we're sorting these volumes based on whether they have labels defined,\n\t\t// because those are the ones you typically care about.\n\t\t// Within that, we also sort them alphabetically\n\t\tSort: func(a *commands.Volume, b *commands.Volume) bool {\n\t\t\tif len(a.Volume.Labels) == 0 && len(b.Volume.Labels) > 0 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif len(a.Volume.Labels) > 0 && len(b.Volume.Labels) == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn a.Name < b.Name\n\t\t},\n\t\tGetTableCells: presentation.GetVolumeDisplayStrings,\n\t}\n}\n\nfunc (gui *Gui) renderVolumeConfig(volume *commands.Volume) tasks.TaskFunc {\n\treturn gui.NewSimpleRenderStringTask(func() string { return gui.volumeConfigStr(volume) })\n}\n\nfunc (gui *Gui) volumeConfigStr(volume *commands.Volume) string {\n\tpadding := 15\n\toutput := \"\"\n\toutput += utils.WithPadding(\"Name: \", padding) + volume.Name + \"\\n\"\n\toutput += utils.WithPadding(\"Driver: \", padding) + volume.Volume.Driver + \"\\n\"\n\toutput += utils.WithPadding(\"Scope: \", padding) + volume.Volume.Scope + \"\\n\"\n\toutput += utils.WithPadding(\"Mountpoint: \", padding) + volume.Volume.Mountpoint + \"\\n\"\n\toutput += utils.WithPadding(\"Labels: \", padding) + utils.FormatMap(padding, volume.Volume.Labels) + \"\\n\"\n\toutput += utils.WithPadding(\"Options: \", padding) + utils.FormatMap(padding, volume.Volume.Options) + \"\\n\"\n\n\toutput += utils.WithPadding(\"Status: \", padding)\n\tif volume.Volume.Status != nil {\n\t\toutput += \"\\n\"\n\t\tfor k, v := range volume.Volume.Status {\n\t\t\toutput += utils.FormatMapItem(padding, k, v)\n\t\t}\n\t} else {\n\t\toutput += \"n/a\"\n\t}\n\n\tif volume.Volume.UsageData != nil {\n\t\toutput += utils.WithPadding(\"RefCount: \", padding) + fmt.Sprintf(\"%d\", volume.Volume.UsageData.RefCount) + \"\\n\"\n\t\toutput += utils.WithPadding(\"Size: \", padding) + utils.FormatBinaryBytes(int(volume.Volume.UsageData.Size)) + \"\\n\"\n\t}\n\n\treturn output\n}\n\nfunc (gui *Gui) reloadVolumes() error {\n\tif err := gui.refreshStateVolumes(); err != nil {\n\t\treturn err\n\t}\n\n\treturn gui.Panels.Volumes.RerenderList()\n}\n\nfunc (gui *Gui) refreshStateVolumes() error {\n\tvolumes, err := gui.DockerCommand.RefreshVolumes()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tgui.Panels.Volumes.SetItems(volumes)\n\n\treturn nil\n}\n\nfunc (gui *Gui) handleVolumesRemoveMenu(g *gocui.Gui, v *gocui.View) error {\n\tvolume, err := gui.Panels.Volumes.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\ttype removeVolumeOption struct {\n\t\tdescription string\n\t\tcommand     string\n\t\tforce       bool\n\t}\n\n\toptions := []*removeVolumeOption{\n\t\t{\n\t\t\tdescription: gui.Tr.Remove,\n\t\t\tcommand:     utils.WithShortSha(\"docker volume rm \" + volume.Name),\n\t\t\tforce:       false,\n\t\t},\n\t\t{\n\t\t\tdescription: gui.Tr.ForceRemove,\n\t\t\tcommand:     utils.WithShortSha(\"docker volume rm --force \" + volume.Name),\n\t\t\tforce:       true,\n\t\t},\n\t}\n\n\tmenuItems := lo.Map(options, func(option *removeVolumeOption, _ int) *types.MenuItem {\n\t\treturn &types.MenuItem{\n\t\t\tLabelColumns: []string{option.description, color.New(color.FgRed).Sprint(option.command)},\n\t\t\tOnPress: func() error {\n\t\t\t\treturn gui.WithWaitingStatus(gui.Tr.RemovingStatus, func() error {\n\t\t\t\t\tif err := volume.Remove(option.force); err != nil {\n\t\t\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t\t\t}\n\t\t\t\t\treturn nil\n\t\t\t\t})\n\t\t\t},\n\t\t}\n\t})\n\n\treturn gui.Menu(CreateMenuOptions{\n\t\tTitle: \"\",\n\t\tItems: menuItems,\n\t})\n}\n\nfunc (gui *Gui) handlePruneVolumes() error {\n\treturn gui.createConfirmationPanel(gui.Tr.Confirm, gui.Tr.ConfirmPruneVolumes, func(g *gocui.Gui, v *gocui.View) error {\n\t\treturn gui.WithWaitingStatus(gui.Tr.PruningStatus, func() error {\n\t\t\terr := gui.DockerCommand.PruneVolumes()\n\t\t\tif err != nil {\n\t\t\t\treturn gui.createErrorPanel(err.Error())\n\t\t\t}\n\t\t\treturn nil\n\t\t})\n\t}, nil)\n}\n\nfunc (gui *Gui) handleVolumesCustomCommand(g *gocui.Gui, v *gocui.View) error {\n\tvolume, err := gui.Panels.Volumes.GetSelectedItem()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tcommandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{\n\t\tVolume: volume,\n\t})\n\n\tcustomCommands := gui.Config.UserConfig.CustomCommands.Volumes\n\n\treturn gui.createCustomCommandMenu(customCommands, commandObject)\n}\n\nfunc (gui *Gui) handleVolumesBulkCommand(g *gocui.Gui, v *gocui.View) error {\n\tbaseBulkCommands := []config.CustomCommand{\n\t\t{\n\t\t\tName:             gui.Tr.PruneVolumes,\n\t\t\tInternalFunction: gui.handlePruneVolumes,\n\t\t},\n\t}\n\n\tbulkCommands := append(baseBulkCommands, gui.Config.UserConfig.BulkCommands.Volumes...)\n\tcommandObject := gui.DockerCommand.NewCommandObject(commands.CommandObject{})\n\n\treturn gui.createBulkCommandMenu(bulkCommands, commandObject)\n}\n"
  },
  {
    "path": "pkg/gui/window.go",
    "content": "package gui\n\n// func (gui *Gui) currentWindow() string {\n// \t// at the moment, we only have one view per window in lazydocker, so we\n// \t// are using the view name as the window name\n// \treturn gui.currentViewName()\n// }\n\n// excludes popups\nfunc (gui *Gui) currentStaticWindowName() string {\n\treturn gui.currentStaticViewName()\n}\n\nfunc (gui *Gui) currentSideWindowName() string {\n\treturn gui.currentSideViewName()\n}\n"
  },
  {
    "path": "pkg/i18n/chinese.go",
    "content": "package i18n\n\nfunc chineseSet() TranslationSet {\n\treturn TranslationSet{\n\t\tPruningStatus:              \"修剪中\",\n\t\tRemovingStatus:             \"移除中\",\n\t\tRestartingStatus:           \"重启中\",\n\t\tStartingStatus:             \"启动中\",\n\t\tStoppingStatus:             \"停止中\",\n\t\tUppingServiceStatus:        \"升级服务中\",\n\t\tUppingProjectStatus:        \"升级项目中\",\n\t\tDowningStatus:              \"下架中\",\n\t\tPausingStatus:              \"暂停中\",\n\t\tRunningCustomCommandStatus: \"正在运行自定义命令\",\n\t\tRunningBulkCommandStatus:   \"正在运行批量命令\",\n\n\t\tNoViewMachingNewLineFocusedSwitchStatement: \"没有匹配 newLineFocused switch 语句的视图\",\n\n\t\tErrorOccurred:                     \"发生错误！请在 https://github.com/jesseduffield/lazydocker/issues 上创建一个问题\",\n\t\tConnectionFailed:                  \"无法连接到 Docker 客户端。您可能需要重新启动 Docker 客户端\",\n\t\tUnattachableContainerError:        \"容器不支持 attaching。您必须使用“-it”标志运行服务，或者在docker-compose.yml文件中使用`stdin_open: true，tty: true`\",\n\t\tWaitingForContainerInfo:           \"在 Docker 给我们更多关于容器的信息之前，无法继续。请几分钟后重试。\",\n\t\tCannotAttachStoppedContainerError: \"您不能 attach 到已停止的容器，您需要先启动它（您可以用 'r' 键来执行此操作）（是的，我懒得为您自动执行此操作）（很酷的是，我可以通过错误消息与您进行一对一的通讯）\",\n\t\tCannotAccessDockerSocketError:     \"无法访问 Docker 套接字：unix:///var/run/docker.sock\\n请以 root 用户身份运行 lazydocker 或阅读https://docs.docker.com/install/linux/linux-postinstall/\",\n\t\tCannotKillChildError:              \"等待三秒钟以停止子进程。可能有一个孤儿进程在您的系统上继续运行。\",\n\n\t\tDonate:  \"捐赠\",\n\t\tConfirm: \"确认\",\n\n\t\tReturn:            \"返回\",\n\t\tFocusMain:         \"聚焦主面板\",\n\t\tLcFilter:          \"过滤列表\",\n\t\tNavigate:          \"导航\",\n\t\tExecute:           \"执行\",\n\t\tClose:             \"关闭\",\n\t\tQuit:              \"退出\",\n\t\tMenu:              \"菜单\",\n\t\tMenuTitle:         \"菜单\",\n\t\tScroll:            \"滚动\",\n\t\tOpenConfig:        \"打开lazydocker配置\",\n\t\tEditConfig:        \"编辑lazydocker配置\",\n\t\tCancel:            \"取消\",\n\t\tRemove:            \"移除\",\n\t\tHideStopped:       \"隐藏/显示已停止的容器\",\n\t\tForceRemove:       \"强制移除\",\n\t\tRemoveWithVolumes: \"移除并删除卷\",\n\t\tRemoveService:     \"移除容器\",\n\t\tUpService:         \"启动服务\",\n\t\tStop:              \"停止\",\n\t\tPause:             \"暂停\",\n\t\tRestart:           \"重新启动\",\n\t\tDown:              \"关闭项目\",\n\t\tDownWithVolumes:   \"关闭包括卷的项目\",\n\t\tStart:             \"启动项目\",\n\t\tRebuild:           \"重建\",\n\t\tRecreate:          \"重新创建\",\n\t\tPreviousContext:   \"上一个选项卡\",\n\t\tNextContext:       \"下一个选项卡\",\n\t\t// Attach: \"连接/附加\",\n\t\tViewLogs:                    \"查看日志\",\n\t\tUpProject:                   \"创建并启动容器\",\n\t\tDownProject:                 \"停止并移除容器\",\n\t\tRemoveImage:                 \"移除镜像\",\n\t\tRemoveVolume:                \"移除卷\",\n\t\tRemoveNetwork:               \"移除网络\",\n\t\tRemoveWithoutPrune:          \"移除但不删除未标记的父级\",\n\t\tRemoveWithoutPruneWithForce: \"移除(强制)但不删除未标记的父级\",\n\t\tRemoveWithForce:             \"移除(强制)\",\n\t\tPruneContainers:             \"删除退出的容器\",\n\t\tPruneVolumes:                \"删除未使用的卷\",\n\t\tPruneNetworks:               \"删除未使用的网络\",\n\t\tPruneImages:                 \"删除未使用的镜像\",\n\t\tStopAllContainers:           \"停止所有容器\",\n\t\tRemoveAllContainers:         \"删除所有容器(强制)\",\n\t\tViewRestartOptions:          \"查看重启选项\",\n\t\tExecShell:                   \"执行shell\",\n\t\tRunCustomCommand:            \"运行预定义的自定义命令\",\n\t\tViewBulkCommands:            \"查看批量命令\",\n\t\tFilterList:                  \"过滤列表\",\n\t\tOpenInBrowser:               \"在浏览器中打开(第一个端口为http)\",\n\t\tSortContainersByState:       \"按状态排序容器\",\n\n\t\tGlobalTitle:               \"全局\",\n\t\tMainTitle:                 \"主要\",\n\t\tProjectTitle:              \"项目\",\n\t\tServicesTitle:             \"服务\",\n\t\tContainersTitle:           \"容器\",\n\t\tStandaloneContainersTitle: \"独立容器\",\n\t\tImagesTitle:               \"镜像\",\n\t\tVolumesTitle:              \"卷\",\n\t\tNetworksTitle:             \"网络\",\n\t\tCustomCommandTitle:        \"自定义命令：\",\n\t\tBulkCommandTitle:          \"批量命令：\",\n\t\tErrorTitle:                \"错误\",\n\t\tLogsTitle:                 \"日志\",\n\t\tConfigTitle:               \"配置\",\n\t\tEnvTitle:                  \"环境变量\",\n\t\tDockerComposeConfigTitle:  \"Docker-Compose配置\",\n\t\tTopTitle:                  \"系统资源管理\",\n\t\tStatsTitle:                \"统计信息\",\n\t\tCreditsTitle:              \"关于我们\",\n\t\tContainerConfigTitle:      \"容器配置\",\n\t\tContainerEnvTitle:         \"容器环境变量\",\n\t\tNothingToDisplay:          \"无内容显示\",\n\t\tNoContainerForService:     \"没有日志可以展示；该服务未关联任何容器\",\n\t\tCannotDisplayEnvVariables: \"展示环境变量时出现问题\",\n\n\t\tNoContainers: \"没有容器\",\n\t\tNoContainer:  \"没有容器\",\n\t\tNoImages:     \"没有镜像\",\n\t\tNoVolumes:    \"没有卷\",\n\t\tNoNetworks:   \"没有网络\",\n\t\tNoServices:   \"没有服务\",\n\n\t\tConfirmQuit:                \"您确定要退出吗？\",\n\t\tConfirmUpProject:           \"您确定要“up”的docker compose项目吗？\",\n\t\tMustForceToRemoveContainer: \"您无法删除正在运行的容器，除非您强制执行。您想强制执行吗？\",\n\t\tNotEnoughSpace:             \"空间不足，无法渲染面板\",\n\t\tConfirmPruneImages:         \"您确定要删除所有未使用的镜像吗？\",\n\t\tConfirmPruneContainers:     \"您确定要删除所有停止的容器吗？\",\n\t\tConfirmStopContainers:      \"您确定要停止所有容器吗？\",\n\t\tConfirmRemoveContainers:    \"您确定要删除所有容器吗？\",\n\t\tConfirmPruneVolumes:        \"您确定要删除所有未使用的卷吗？\",\n\t\tConfirmPruneNetworks:       \"您确定要删除所有未使用的网络吗？\",\n\t\tStopService:                \"您确定要停止此服务的容器吗？\",\n\t\tStopContainer:              \"您确定要停止此容器吗？\",\n\t\tPressEnterToReturn:         \"按 enter 返回 lazydocker（您可以在配置文件中设置 `gui.returnImmediately: true` 来禁用此提示）\",\n\n\t\tNo:  \"否\",\n\t\tYes: \"是\",\n\n\t\tLcNextScreenMode: \"下一个屏幕模式（正常/半屏/全屏）\",\n\t\tLcPrevScreenMode: \"上一个屏幕模式\",\n\t\tFilterPrompt:     \"筛选\",\n\t}\n}\n"
  },
  {
    "path": "pkg/i18n/dutch.go",
    "content": "package i18n\n\nfunc dutchSet() TranslationSet {\n\treturn TranslationSet{\n\t\tPruningStatus:              \"vernietigen\",\n\t\tRemovingStatus:             \"verwijderen\",\n\t\tRestartingStatus:           \"herstarten\",\n\t\tStoppingStatus:             \"stoppen\",\n\t\tRunningCustomCommandStatus: \"Aangepast commando draaien\",\n\n\t\tNoViewMachingNewLineFocusedSwitchStatement: \"No view matching newLineFocused switch statement\",\n\n\t\tErrorOccurred:                     \"Er is iets fout gegaan! Zou je hier een issue aan willen maken: https://github.com/jesseduffield/lazydocker/issues\",\n\t\tConnectionFailed:                  \"connectie naar de docker client mislukt. Het zou kunnen dat je de docker client moet herstarten\",\n\t\tUnattachableContainerError:        \"Container heeft geen ondersteuning voor vastmaken. Je zou de service met het '-it' argument kunnen draaien of stop dit in je `stdin_open: true, tty: true` docker-compose.yml\",\n\t\tCannotAttachStoppedContainerError: \"Je kan niet een vastgemaakte container stoppen, je moet het eerst starten (dit kan je doen met de 'r' toets) (ja ik ben te leu om dat voor je te doen automatisch)\",\n\t\tCannotAccessDockerSocketError:     \"Kan de docker socket niet bereiken: unix:///var/run/docker.sock\\nDraai lazydocker als root of lees https://docs.docker.com/install/linux/linux-postinstall/\",\n\n\t\tDonate:  \"Doneer\",\n\t\tConfirm: \"Bevestigen\",\n\n\t\tReturn:             \"terug\",\n\t\tFocusMain:          \"focus hoofdpaneel\",\n\t\tNavigate:           \"navigeer\",\n\t\tExecute:            \"voer uit\",\n\t\tClose:              \"sluit\",\n\t\tMenu:               \"menu\",\n\t\tMenuTitle:          \"Menu\",\n\t\tScroll:             \"scroll\",\n\t\tOpenConfig:         \"open de lazydocker configuratie\",\n\t\tEditConfig:         \"verander de lazydocker configuratie\",\n\t\tCancel:             \"annuleren\",\n\t\tRemove:             \"verwijder\",\n\t\tHideStopped:        \"verberg gestopte containers\",\n\t\tForceRemove:        \"geforceerd verwijderen\",\n\t\tRemoveWithVolumes:  \"verwijder met volumes\",\n\t\tRemoveService:      \"verwijder containers\",\n\t\tStop:               \"stop\",\n\t\tRestart:            \"herstart\",\n\t\tRebuild:            \"herbouw\",\n\t\tRecreate:           \"hercreëer\",\n\t\tPreviousContext:    \"vorige tab\",\n\t\tNextContext:        \"volgende tab\",\n\t\tAttach:             \"verbinden\",\n\t\tViewLogs:           \"bekijk logs\",\n\t\tRemoveImage:        \"verwijder image\",\n\t\tRemoveVolume:       \"verwijder volume\",\n\t\tRemoveNetwork:      \"verwijder network\",\n\t\tRemoveWithoutPrune: \"verwijder zonder de ongelabeld ouders te verwijderen\",\n\t\tPruneContainers:    \"vernietig bestaande containers\",\n\t\tPruneVolumes:       \"vernietig ongebruikte volumes\",\n\t\tPruneNetworks:      \"vernietig ongebruikte networks\",\n\t\tPruneImages:        \"vernietig ongebruikte images\",\n\t\tViewRestartOptions: \"bekijk herstart opties\",\n\t\tRunCustomCommand:   \"draai een vooraf bedacht aangepaste opdracht\",\n\n\t\tGlobalTitle:               \"Globaal\",\n\t\tMainTitle:                 \"Hoofd\",\n\t\tProjectTitle:              \"Project\",\n\t\tServicesTitle:             \"Diensten\",\n\t\tContainersTitle:           \"Containers\",\n\t\tStandaloneContainersTitle: \"Alleenstaande Containers\",\n\t\tImagesTitle:               \"Images\",\n\t\tVolumesTitle:              \"Volumes\",\n\t\tNetworksTitle:             \"Networks\",\n\t\tCustomCommandTitle:        \"Aangepast commando:\",\n\t\tErrorTitle:                \"Fout\",\n\t\tLogsTitle:                 \"Logs\",\n\t\tConfigTitle:               \"Config\",\n\t\tEnvTitle:                  \"Env\",\n\t\tDockerComposeConfigTitle:  \"Docker-Compose Configuratie\",\n\t\tTopTitle:                  \"Top\",\n\t\tStatsTitle:                \"Stats\",\n\t\tCreditsTitle:              \"Over\",\n\t\tContainerConfigTitle:      \"Container Configuratie\",\n\t\tContainerEnvTitle:         \"Container Env\",\n\t\tNothingToDisplay:          \"Nothing to display\",\n\t\tCannotDisplayEnvVariables: \"Something went wrong while displaying environment variables\",\n\n\t\tNoContainers: \"Geen containers\",\n\t\tNoContainer:  \"Geen container\",\n\t\tNoImages:     \"Geen images\",\n\t\tNoVolumes:    \"Geen volumes\",\n\t\tNoNetworks:   \"Geen networks\",\n\n\t\tConfirmQuit:                 \"Weet je zeker dat je weg wil gaan?\",\n\t\tMustForceToRemoveContainer:  \"Je kan geen draaiende container verwijderen tenzij je het forceert, Wil je het forceren?\",\n\t\tNotEnoughSpace:              \"Niet genoeg ruimte om de panelen te renderen\",\n\t\tConfirmPruneImages:          \"Weet je zeker dat je alle niet gebruikte images wil vernietigen?\",\n\t\tConfirmPruneContainers:      \"Weet je zeker dat je alle niet gestopte containers wil vernietigen?\",\n\t\tConfirmPruneVolumes:         \"Weet je zeker dat je alle niet gebruikte volumes wil vernietigen?\",\n\t\tConfirmPruneNetworks:        \"Weet je zeker dat je alle niet gebruikte networks wil vernietigen?\",\n\t\tStopService:                 \"Weet je zeker dat je deze service zijn containers wil stoppen?\",\n\t\tStopContainer:               \"Weet je zeker dat je deze container wil stoppen?\",\n\t\tPressEnterToReturn:          \"Druk op enter om terug te gaan naar lazydocker (Deze popup kan uit gezet worden door in de config dit neer te zetten `gui.returnImmediately: true`)\",\n\t\tDetachFromContainerShortCut: \"Als u wilt loskoppelen van de container, drukt u standaard op ctrl-p en vervolgens op ctrl-q\",\n\t}\n}\n"
  },
  {
    "path": "pkg/i18n/english.go",
    "content": "package i18n\n\n// TranslationSet is a set of localised strings for a given language\ntype TranslationSet struct {\n\tNotEnoughSpace                             string\n\tProjectTitle                               string\n\tMainTitle                                  string\n\tGlobalTitle                                string\n\tNavigate                                   string\n\tMenu                                       string\n\tMenuTitle                                  string\n\tExecute                                    string\n\tScroll                                     string\n\tClose                                      string\n\tQuit                                       string\n\tErrorTitle                                 string\n\tNoViewMachingNewLineFocusedSwitchStatement string\n\tOpenConfig                                 string\n\tEditConfig                                 string\n\tConfirmQuit                                string\n\tConfirmUpProject                           string\n\tErrorOccurred                              string\n\tConnectionFailed                           string\n\tUnattachableContainerError                 string\n\tWaitingForContainerInfo                    string\n\tCannotAttachStoppedContainerError          string\n\tCannotAccessDockerSocketError              string\n\tCannotKillChildError                       string\n\n\tDonate                      string\n\tCancel                      string\n\tCustomCommandTitle          string\n\tBulkCommandTitle            string\n\tRemove                      string\n\tHideStopped                 string\n\tForceRemove                 string\n\tRemoveWithVolumes           string\n\tMustForceToRemoveContainer  string\n\tConfirm                     string\n\tReturn                      string\n\tFocusMain                   string\n\tLcFilter                    string\n\tStopContainer               string\n\tRestartingStatus            string\n\tStartingStatus              string\n\tStoppingStatus              string\n\tUppingProjectStatus         string\n\tUppingServiceStatus         string\n\tPausingStatus               string\n\tRemovingStatus              string\n\tDowningStatus               string\n\tRunningCustomCommandStatus  string\n\tRunningBulkCommandStatus    string\n\tRemoveService               string\n\tUpService                   string\n\tStop                        string\n\tPause                       string\n\tRestart                     string\n\tDown                        string\n\tDownWithVolumes             string\n\tStart                       string\n\tRebuild                     string\n\tRecreate                    string\n\tPreviousContext             string\n\tNextContext                 string\n\tAttach                      string\n\tViewLogs                    string\n\tUpProject                   string\n\tDownProject                 string\n\tServicesTitle               string\n\tContainersTitle             string\n\tStandaloneContainersTitle   string\n\tTopTitle                    string\n\tImagesTitle                 string\n\tVolumesTitle                string\n\tNetworksTitle               string\n\tNoContainers                string\n\tNoContainer                 string\n\tNoImages                    string\n\tNoVolumes                   string\n\tNoNetworks                  string\n\tNoServices                  string\n\tRemoveImage                 string\n\tRemoveVolume                string\n\tRemoveNetwork               string\n\tRemoveWithoutPrune          string\n\tRemoveWithoutPruneWithForce string\n\tRemoveWithForce             string\n\tPruneImages                 string\n\tPruneContainers             string\n\tPruneVolumes                string\n\tPruneNetworks               string\n\tConfirmPruneContainers      string\n\tConfirmStopContainers       string\n\tConfirmRemoveContainers     string\n\tConfirmPruneImages          string\n\tConfirmPruneVolumes         string\n\tConfirmPruneNetworks        string\n\tPruningStatus               string\n\tStopService                 string\n\tPressEnterToReturn          string\n\tDetachFromContainerShortCut string\n\tStopAllContainers           string\n\tRemoveAllContainers         string\n\tViewRestartOptions          string\n\tExecShell                   string\n\tRunCustomCommand            string\n\tViewBulkCommands            string\n\tFilterList                  string\n\tOpenInBrowser               string\n\tSortContainersByState       string\n\n\tLogsTitle                   string\n\tConfigTitle                 string\n\tEnvTitle                    string\n\tDockerComposeConfigTitle    string\n\tStatsTitle                  string\n\tCreditsTitle                string\n\tContainerConfigTitle        string\n\tContainerEnvTitle           string\n\tNothingToDisplay            string\n\tNoContainerForService       string\n\tCannotDisplayEnvVariables   string\n\tCannotManageNonLocalService string\n\n\tNo  string\n\tYes string\n\n\tLcNextScreenMode string\n\tLcPrevScreenMode string\n\tFilterPrompt     string\n\n\tFocusProjects   string\n\tFocusServices   string\n\tFocusContainers string\n\tFocusImages     string\n\tFocusVolumes    string\n\tFocusNetworks   string\n}\n\nfunc englishSet() TranslationSet {\n\treturn TranslationSet{\n\t\tPruningStatus:              \"pruning\",\n\t\tRemovingStatus:             \"removing\",\n\t\tRestartingStatus:           \"restarting\",\n\t\tStartingStatus:             \"starting\",\n\t\tStoppingStatus:             \"stopping\",\n\t\tUppingServiceStatus:        \"upping service\",\n\t\tUppingProjectStatus:        \"upping project\",\n\t\tDowningStatus:              \"downing\",\n\t\tPausingStatus:              \"pausing\",\n\t\tRunningCustomCommandStatus: \"running custom command\",\n\t\tRunningBulkCommandStatus:   \"running bulk command\",\n\n\t\tNoViewMachingNewLineFocusedSwitchStatement: \"No view matching newLineFocused switch statement\",\n\n\t\tErrorOccurred:                     \"An error occurred! Please create an issue at https://github.com/jesseduffield/lazydocker/issues\",\n\t\tConnectionFailed:                  \"connection to docker client failed. You may need to restart the docker client\",\n\t\tUnattachableContainerError:        \"Container does not support attaching. You must either run the service with the '-it' flag or use `stdin_open: true, tty: true` in the docker-compose.yml file\",\n\t\tWaitingForContainerInfo:           \"Cannot proceed until docker gives us more information about the container. Please retry in a few moments.\",\n\t\tCannotAttachStoppedContainerError: \"You cannot attach to a stopped container, you need to start it first (which you can actually do with the 'r' key) (yes I'm too lazy to do this automatically for you) (pretty cool that I get to communicate one-on-one with you in the form of an error message though)\",\n\t\tCannotAccessDockerSocketError:     \"Can't access docker socket at: unix:///var/run/docker.sock\\nRun lazydocker as root or read https://docs.docker.com/install/linux/linux-postinstall/\",\n\t\tCannotKillChildError:              \"Waited three seconds for child process to stop. There may be an orphan process that continues to run on your system.\",\n\n\t\tDonate:  \"Donate\",\n\t\tConfirm: \"Confirm\",\n\n\t\tReturn:                      \"return\",\n\t\tFocusMain:                   \"focus main panel\",\n\t\tLcFilter:                    \"filter list\",\n\t\tNavigate:                    \"navigate\",\n\t\tExecute:                     \"execute\",\n\t\tClose:                       \"close\",\n\t\tQuit:                        \"quit\",\n\t\tMenu:                        \"menu\",\n\t\tMenuTitle:                   \"Menu\",\n\t\tScroll:                      \"scroll\",\n\t\tOpenConfig:                  \"open lazydocker config\",\n\t\tEditConfig:                  \"edit lazydocker config\",\n\t\tCancel:                      \"cancel\",\n\t\tRemove:                      \"remove\",\n\t\tHideStopped:                 \"hide/show stopped containers\",\n\t\tForceRemove:                 \"force remove\",\n\t\tRemoveWithVolumes:           \"remove with volumes\",\n\t\tRemoveService:               \"remove containers\",\n\t\tUpService:                   \"up service\",\n\t\tStop:                        \"stop\",\n\t\tPause:                       \"pause\",\n\t\tRestart:                     \"restart\",\n\t\tDown:                        \"down project\",\n\t\tDownWithVolumes:             \"down project with volumes\",\n\t\tStart:                       \"start\",\n\t\tRebuild:                     \"rebuild\",\n\t\tRecreate:                    \"recreate\",\n\t\tPreviousContext:             \"previous tab\",\n\t\tNextContext:                 \"next tab\",\n\t\tAttach:                      \"attach\",\n\t\tViewLogs:                    \"view logs\",\n\t\tUpProject:                   \"up project\",\n\t\tDownProject:                 \"down project\",\n\t\tRemoveImage:                 \"remove image\",\n\t\tRemoveVolume:                \"remove volume\",\n\t\tRemoveNetwork:               \"remove network\",\n\t\tRemoveWithoutPrune:          \"remove without deleting untagged parents\",\n\t\tRemoveWithoutPruneWithForce: \"remove (forced) without deleting untagged parents\",\n\t\tRemoveWithForce:             \"remove (forced)\",\n\t\tPruneContainers:             \"prune exited containers\",\n\t\tPruneVolumes:                \"prune unused volumes\",\n\t\tPruneNetworks:               \"prune unused networks\",\n\t\tPruneImages:                 \"prune unused images\",\n\t\tStopAllContainers:           \"stop all containers\",\n\t\tRemoveAllContainers:         \"remove all containers (forced)\",\n\t\tViewRestartOptions:          \"view restart options\",\n\t\tExecShell:                   \"exec shell\",\n\t\tRunCustomCommand:            \"run predefined custom command\",\n\t\tViewBulkCommands:            \"view bulk commands\",\n\t\tFilterList:                  \"filter list\",\n\t\tOpenInBrowser:               \"open in browser (first port is http)\",\n\t\tSortContainersByState:       \"sort containers by state\",\n\n\t\tGlobalTitle:                 \"Global\",\n\t\tMainTitle:                   \"Main\",\n\t\tProjectTitle:                \"Project\",\n\t\tServicesTitle:               \"Services\",\n\t\tContainersTitle:             \"Containers\",\n\t\tStandaloneContainersTitle:   \"Standalone Containers\",\n\t\tImagesTitle:                 \"Images\",\n\t\tVolumesTitle:                \"Volumes\",\n\t\tNetworksTitle:               \"Networks\",\n\t\tCustomCommandTitle:          \"Custom Command:\",\n\t\tBulkCommandTitle:            \"Bulk Command:\",\n\t\tErrorTitle:                  \"Error\",\n\t\tLogsTitle:                   \"Logs\",\n\t\tConfigTitle:                 \"Config\",\n\t\tEnvTitle:                    \"Env\",\n\t\tDockerComposeConfigTitle:    \"Docker-Compose Config\",\n\t\tTopTitle:                    \"Top\",\n\t\tStatsTitle:                  \"Stats\",\n\t\tCreditsTitle:                \"About\",\n\t\tContainerConfigTitle:        \"Container Config\",\n\t\tContainerEnvTitle:           \"Container Env\",\n\t\tNothingToDisplay:            \"Nothing to display\",\n\t\tNoContainerForService:       \"No logs to show; service is not associated with a container\",\n\t\tCannotDisplayEnvVariables:   \"Something went wrong while displaying environment variables\",\n\t\tCannotManageNonLocalService: \"This service belongs to a different compose project. Run lazydocker from that project's directory to manage it.\",\n\n\t\tNoContainers: \"No containers\",\n\t\tNoContainer:  \"No container\",\n\t\tNoImages:     \"No images\",\n\t\tNoVolumes:    \"No volumes\",\n\t\tNoNetworks:   \"No networks\",\n\t\tNoServices:   \"No services\",\n\n\t\tConfirmQuit:                 \"Are you sure you want to quit?\",\n\t\tConfirmUpProject:            \"Are you sure you want to 'up' your docker compose project?\",\n\t\tMustForceToRemoveContainer:  \"You cannot remove a running container unless you force it. Do you want to force it?\",\n\t\tNotEnoughSpace:              \"Not enough space to render panels\",\n\t\tConfirmPruneImages:          \"Are you sure you want to prune all unused images?\",\n\t\tConfirmPruneContainers:      \"Are you sure you want to prune all stopped containers?\",\n\t\tConfirmStopContainers:       \"Are you sure you want to stop all containers?\",\n\t\tConfirmRemoveContainers:     \"Are you sure you want to remove all containers?\",\n\t\tConfirmPruneVolumes:         \"Are you sure you want to prune all unused volumes?\",\n\t\tConfirmPruneNetworks:        \"Are you sure you want to prune all unused networks?\",\n\t\tStopService:                 \"Are you sure you want to stop this service's containers?\",\n\t\tStopContainer:               \"Are you sure you want to stop this container?\",\n\t\tPressEnterToReturn:          \"Press enter to return to lazydocker (this prompt can be disabled in your config by setting `gui.returnImmediately: true`)\",\n\t\tDetachFromContainerShortCut: \"By default, to detach from the container press ctrl-p then ctrl-q\",\n\n\t\tNo:  \"no\",\n\t\tYes: \"yes\",\n\n\t\tLcNextScreenMode: \"next screen mode (normal/half/fullscreen)\",\n\t\tLcPrevScreenMode: \"prev screen mode\",\n\t\tFilterPrompt:     \"filter\",\n\n\t\tFocusProjects:   \"focus projects panel\",\n\t\tFocusServices:   \"focus services panel\",\n\t\tFocusContainers: \"focus containers panel\",\n\t\tFocusImages:     \"focus images panel\",\n\t\tFocusVolumes:    \"focus volumes panel\",\n\t\tFocusNetworks:   \"focus networks panel\",\n\t}\n}\n"
  },
  {
    "path": "pkg/i18n/french.go",
    "content": "package i18n\n\nfunc frenchSet() TranslationSet {\n\treturn TranslationSet{\n\t\tPruningStatus:              \"destruction\",\n\t\tRemovingStatus:             \"suppression\",\n\t\tRestartingStatus:           \"redémarrage\",\n\t\tStartingStatus:             \"démarrage\",\n\t\tStoppingStatus:             \"arrêt\",\n\t\tPausingStatus:              \"mise en pause\",\n\t\tRunningCustomCommandStatus: \"exécution de la commande personalisée\",\n\t\tRunningBulkCommandStatus:   \"exécution de la commande groupée\",\n\n\t\tNoViewMachingNewLineFocusedSwitchStatement: \"Aucune vue correspondant au switch newLineFocused\",\n\n\t\tErrorOccurred:              \"Une erreur s'est produite ! Veuillez créer un rapport d'erreur sur https://github.com/jesseduffield/lazydocker/issues\",\n\t\tConnectionFailed:           \"Erreur lors de la connexion au client Docker. Essayez de redémarrer votre client Docker\",\n\t\tUnattachableContainerError: \"Le conteneur ne peut pas être attaché. Vous devez exécuter le service avec le drapeau 'it' ou bien utiliser `stdin_open: true, tty: true` dans votre fichier docker-compose.yml\",\n\t\tWaitingForContainerInfo:    \"Le processus ne peut pas continuer avant que Docker ne fournisse plus d'informations. Veuillez réessayer dans quelques instants.\",\n\n\t\tCannotAttachStoppedContainerError: \"Vous ne pouvez pas vous attacher à un conteneur arrêté, vous devez le démarrer en amont (ce que vous pouvez faire avec la touche 'r') (oui, je suis trop paresseux pour le faire automatiquement pour vous) (plutôt cool que je puisse communiquer en tête-à-tête avec vous au travers d'un message d'erreur, cependant)\",\n\t\tCannotAccessDockerSocketError:     \"Impossible d'accéder au socket Docker à : unix:///var/run/docker.sock\\nLancez lazydocker en tant que root ou alors lisez https://docs.docker.com/install/linux/linux-postinstall/\",\n\t\tCannotKillChildError:              \"Trois secondes se sont écoulées depuis la demande d'arrêt des processus enfants. Il se peut qu'un processus orphelin continue à tourner sur votre système.\",\n\n\t\tDonate:  \"Donner\",\n\t\tConfirm: \"Confirmer\",\n\n\t\tReturn:                      \"retour\",\n\t\tFocusMain:                   \"focus panneau principal\",\n\t\tNavigate:                    \"naviguer\",\n\t\tExecute:                     \"exécuter\",\n\t\tClose:                       \"fermer\",\n\t\tMenu:                        \"menu\",\n\t\tMenuTitle:                   \"Menu\",\n\t\tScroll:                      \"faire défiler\",\n\t\tOpenConfig:                  \"ouvrir la configuration lazydocker\",\n\t\tEditConfig:                  \"modifier la configuration lazydocker\",\n\t\tCancel:                      \"annuler\",\n\t\tRemove:                      \"supprimer\",\n\t\tHideStopped:                 \"cacher/montrer les conteneurs arrêtés\",\n\t\tForceRemove:                 \"forcer la suppression\",\n\t\tRemoveWithVolumes:           \"supprimer avec les volumes\",\n\t\tRemoveService:               \"supprimer les conteneurs\",\n\t\tStop:                        \"arrêter\",\n\t\tPause:                       \"pause\",\n\t\tRestart:                     \"redémarrer\",\n\t\tStart:                       \"démarrer\",\n\t\tRebuild:                     \"reconstruire\",\n\t\tRecreate:                    \"recréer\",\n\t\tPreviousContext:             \"onglet précédent\",\n\t\tNextContext:                 \"onglet suivant\",\n\t\tAttach:                      \"attacher\",\n\t\tViewLogs:                    \"voir les enregistrements\",\n\t\tRemoveImage:                 \"supprimer l'image\",\n\t\tRemoveVolume:                \"supprimer le volume\",\n\t\tRemoveNetwork:               \"supprimer le réseau\",\n\t\tRemoveWithoutPrune:          \"supprimer sans effacer les parents non étiquetés\",\n\t\tRemoveWithoutPruneWithForce: \"supprimer (forcer) sans effacer les parents non étiquetés\",\n\t\tRemoveWithForce:             \"supprimer (forcer)\",\n\t\tPruneContainers:             \"détruire les conteneurs arrêtés\",\n\t\tPruneVolumes:                \"détruire les volumes non utilisés\",\n\t\tPruneNetworks:               \"détruire les réseaux non utilisés\",\n\t\tPruneImages:                 \"détruire les images non utilisées\",\n\t\tStopAllContainers:           \"arrêter tous les conteneurs\",\n\t\tRemoveAllContainers:         \"supprimer tous les conteneurs (forcer)\",\n\t\tViewRestartOptions:          \"voir les options de redémarrage\",\n\t\tExecShell:                   \"exécuter le shell\",\n\t\tRunCustomCommand:            \"exécuter une commande prédéfinie\",\n\t\tViewBulkCommands:            \"voir les commandes groupées\",\n\t\tOpenInBrowser:               \"ouvrir dans le navigateur (le premier port est http)\",\n\t\tSortContainersByState:       \"ordonner les conteneurs par état\",\n\n\t\tGlobalTitle:               \"Global\",\n\t\tMainTitle:                 \"Principal\",\n\t\tProjectTitle:              \"Projet\",\n\t\tServicesTitle:             \"Services\",\n\t\tContainersTitle:           \"Conteneurs\",\n\t\tStandaloneContainersTitle: \"Conteneurs autonomes\",\n\t\tImagesTitle:               \"Images\",\n\t\tVolumesTitle:              \"Volumes\",\n\t\tNetworksTitle:             \"Réseaux\",\n\t\tCustomCommandTitle:        \"Commande personnalisée :\",\n\t\tBulkCommandTitle:          \"Commande groupée :\",\n\t\tErrorTitle:                \"Erreur\",\n\t\tLogsTitle:                 \"Journaux\",\n\t\tConfigTitle:               \"Config\",\n\t\tEnvTitle:                  \"Env\",\n\t\tDockerComposeConfigTitle:  \"Config Docker-Compose\",\n\t\tTopTitle:                  \"Top\",\n\t\tStatsTitle:                \"Statistiques\",\n\t\tCreditsTitle:              \"À propos\",\n\t\tContainerConfigTitle:      \"Config Conteneur\",\n\t\tContainerEnvTitle:         \"Env Conteneur\",\n\t\tNothingToDisplay:          \"Rien à afficher\",\n\t\tCannotDisplayEnvVariables: \"Quelque chose a échoué lors de l'affichage des variables d'environnement\",\n\n\t\tNoContainers: \"Aucun conteneur\",\n\t\tNoContainer:  \"Aucun conteneur\",\n\t\tNoImages:     \"Aucune image\",\n\t\tNoVolumes:    \"Aucun volume\",\n\t\tNoNetworks:   \"Aucun réseau\",\n\n\t\tConfirmQuit:                 \"Êtes-vous certain de vouloir quitter ?\",\n\t\tMustForceToRemoveContainer:  \"Vous ne pouvez pas supprimer un conteneur qui tourne sans le forcer. Voulez-vous le forcer ?\",\n\t\tNotEnoughSpace:              \"Manque d'espace pour afficher les différent panneaux\",\n\t\tConfirmPruneImages:          \"Êtes-vous certain de vouloir détruire toutes les images non utilisées ?\",\n\t\tConfirmPruneContainers:      \"Êtes-vous certain de vouloir détruire tous les conteneurs arrêtés ?\",\n\t\tConfirmStopContainers:       \"Êtes-vous certain de vouloir arrêter tous les conteneurs ?\",\n\t\tConfirmRemoveContainers:     \"Êtes-vous certain de vouloir supprimer tous les conteneurs ?\",\n\t\tConfirmPruneVolumes:         \"Êtes-vous certain de vouloir détruire tous les volumes non utilisés ?\",\n\t\tConfirmPruneNetworks:        \"Êtes-vous certain de vouloir détruire tous les réseaux non utilisés ?\",\n\t\tStopService:                 \"Êtes-vous certain de vouloir arrêter le conteneur de ce service ?\",\n\t\tStopContainer:               \"Êtes-vous certain de vouloir arrêter ce conteneur ?\",\n\t\tPressEnterToReturn:          \"Appuyez sur Entrée pour revenir à lazydocker (ce message peut être désactivé dans vos configurations en appliquant `gui.returnImmediately: true`)\",\n\t\tDetachFromContainerShortCut: \"Par défaut, pour se détacher du conteneur appuyez sur CTRL-P puis CTRL-Q\",\n\n\t\tNo:  \"non\",\n\t\tYes: \"oui\",\n\t}\n}\n"
  },
  {
    "path": "pkg/i18n/german.go",
    "content": "package i18n\n\nfunc germanSet() TranslationSet {\n\treturn TranslationSet{\n\t\tPruningStatus:              \"zerstören\",\n\t\tRemovingStatus:             \"entfernen\",\n\t\tRestartingStatus:           \"neustarten\",\n\t\tStoppingStatus:             \"anhalten\",\n\t\tRunningCustomCommandStatus: \"führt benutzerdefinierten Befehl aus\",\n\n\t\tNoViewMachingNewLineFocusedSwitchStatement: \"No view matching newLineFocused switch statement\",\n\n\t\tErrorOccurred:                     \"Es ist ein Fehler aufgetreten! Bitte erstelle ein Issue hier: https://github.com/jesseduffield/lazydocker/issues\",\n\t\tConnectionFailed:                  \"Verbindung zum Docker Client fehlgeschlagen. Du musst ggf. den Docker Client neustarten.\",\n\t\tUnattachableContainerError:        \"Der Container bietet keine Unterstützung für das Anbinden. Du musst den Dienst entweder mit der '-it' Flagge benutzen oder `stdin_open: true, tty: true` in der docker-compose.yml Datei setzen.\",\n\t\tCannotAttachStoppedContainerError: \"Du kannst keinen angehaltenen Container anbinden. Du musst ihn erst starten (was du tun kannst, indem du 'r' drückst), (ja, ich bin zu faul um das zu automatisieren) (aber ist schon cool, dass ich so eine Konversation durch eine Fehlermeldung mit dir führen kann)\",\n\t\tCannotAccessDockerSocketError:     \"Kann nicht auf den Socket zugreifen: unix:///var/run/docker.sock\\nFühre lazydocker als root aus oder lese https://docs.docker.com/install/linux/linux-postinstall/\",\n\n\t\tDonate:  \"Spenden\",\n\t\tConfirm: \"Bestätigen\",\n\n\t\tReturn:             \"zurück\",\n\t\tFocusMain:          \"fokussieren aufs Hauptpanel\",\n\t\tNavigate:           \"navigieren\",\n\t\tExecute:            \"ausführen\",\n\t\tClose:              \"schließen\",\n\t\tMenu:               \"menü\",\n\t\tMenuTitle:          \"Menü\",\n\t\tScroll:             \"scrollen\",\n\t\tOpenConfig:         \"öffne lazydocker Konfiguration\",\n\t\tEditConfig:         \"bearbeite lazydocker Konfiguration\",\n\t\tCancel:             \"abbrechen\",\n\t\tRemove:             \"entfernen\",\n\t\tForceRemove:        \"Entfernen erzwingen\",\n\t\tRemoveWithVolumes:  \"entferne mit Volumes\",\n\t\tRemoveService:      \"entferne Container\",\n\t\tStop:               \"anhalten\",\n\t\tRestart:            \"neustarten\",\n\t\tRebuild:            \"neubauen\",\n\t\tRecreate:           \"neuerstellen\",\n\t\tPreviousContext:    \"vorheriges Tab\",\n\t\tNextContext:        \"nächstes Tab\",\n\t\tAttach:             \"anbinden\",\n\t\tViewLogs:           \"zeige Protokolle\",\n\t\tRemoveImage:        \"entferne Image\",\n\t\tRemoveVolume:       \"entferne Volume\",\n\t\tRemoveNetwork:      \"entferne Netzwerk\",\n\t\tRemoveWithoutPrune: \"entfernen, ohne die unmarkierten Eltern zu entfernen\",\n\t\tPruneContainers:    \"entferne verlassene Container\",\n\t\tPruneVolumes:       \"entferne unbenutzte Volumes\",\n\t\tPruneNetworks:      \"entferne unbenutzte Netzwerk\",\n\t\tPruneImages:        \"entferne unbenutzte Images\",\n\t\tViewRestartOptions: \"zeige Neustartoptionen\",\n\t\tRunCustomCommand:   \"führe vordefinierten benutzerdefinierten Befehl aus\",\n\n\t\tGlobalTitle:               \"Global\",\n\t\tMainTitle:                 \"Haupt\",\n\t\tProjectTitle:              \"Projekt\",\n\t\tServicesTitle:             \"Dienste\",\n\t\tContainersTitle:           \"Container\",\n\t\tStandaloneContainersTitle: \"Alleinstehende Container\",\n\t\tImagesTitle:               \"Images\",\n\t\tVolumesTitle:              \"Volumes\",\n\t\tNetworksTitle:             \"Netzwerk\",\n\t\tCustomCommandTitle:        \"Benutzerdefinierter Befehl\",\n\t\tErrorTitle:                \"Fehler\",\n\t\tLogsTitle:                 \"Protokoll\",\n\t\tConfigTitle:               \"Konfiguration\",\n\t\tEnvTitle:                  \"Env\",\n\t\tDockerComposeConfigTitle:  \"Docker-Compose Konfiguration\",\n\t\tTopTitle:                  \"Top\",\n\t\tStatsTitle:                \"Statistiken\",\n\t\tCreditsTitle:              \"Über Uns\",\n\t\tContainerConfigTitle:      \"Container Konfiguration\",\n\t\tContainerEnvTitle:         \"Container Env\",\n\t\tNothingToDisplay:          \"Nothing to display\",\n\t\tCannotDisplayEnvVariables: \"Something went wrong while displaying environment variables\",\n\n\t\tNoContainers: \"Keine Container\",\n\t\tNoContainer:  \"Kein Container\",\n\t\tNoImages:     \"Keine Images\",\n\t\tNoVolumes:    \"Keine Volumes\",\n\t\tNoNetworks:   \"Keine Netzwerk\",\n\n\t\tConfirmQuit:                 \"Bist du dir sicher, dass du verlassen möchtest?\",\n\t\tMustForceToRemoveContainer:  \"Du kannst keinen Container entfernen, der noch ausgeführt wird außer du erzwingst es. Möchtest du es erzwingen?\",\n\t\tNotEnoughSpace:              \"Nicht genug Platz um die Panel darzustellen\",\n\t\tConfirmPruneImages:          \"Bist du dir sicher, dass du alle unbenutzten Images entfernen möchtest?\",\n\t\tConfirmPruneContainers:      \"Bist du dir sicher, dass du alle angehaltenen Container entfernen möchtes?\",\n\t\tConfirmPruneVolumes:         \"Bist du dir sicher, dass du alle unbenutzen Volumes entfernen möchtest?\",\n\t\tConfirmPruneNetworks:        \"Bist du dir sicher, dass du alle unbenutzen Netzwerk entfernen möchtest?\",\n\t\tStopService:                 \"Bist du dir sicher, dass du den Dienst dieses Containers anhalten möchtest?\",\n\t\tStopContainer:               \"Bist du dir sicher, dass du den Container anhalten möchtest?\",\n\t\tPressEnterToReturn:          \"Drücke Eingabe um zu lazydocker zurückzukehren. (Diese Nachfrage kann in Deiner Konfiguration deaktiviert werden, indem du folgenden Wert setzt: `gui.returnImmediately: true`)\",\n\t\tDetachFromContainerShortCut: \"Um sich vom Container zu trennen, drücken Sie standardmäßig ctrl-p ​​und dann ctrl-q\",\n\t}\n}\n"
  },
  {
    "path": "pkg/i18n/i18n.go",
    "content": "package i18n\n\nimport (\n\t\"strings\"\n\n\t\"github.com/imdario/mergo\"\n\n\t\"github.com/cloudfoundry/jibber_jabber\"\n\t\"github.com/go-errors/errors\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// Localizer will translate a message into the user's language\ntype Localizer struct {\n\tLog *logrus.Entry\n\tS   TranslationSet\n}\n\nfunc NewTranslationSetFromConfig(log *logrus.Entry, configLanguage string) (*TranslationSet, error) {\n\tif configLanguage == \"auto\" {\n\t\tlanguage := detectLanguage(jibber_jabber.DetectLanguage)\n\t\treturn NewTranslationSet(log, language), nil\n\t}\n\n\tfor key := range GetTranslationSets() {\n\t\tif key == configLanguage {\n\t\t\treturn NewTranslationSet(log, configLanguage), nil\n\t\t}\n\t}\n\n\treturn NewTranslationSet(log, \"en\"), errors.New(\"Language not found: \" + configLanguage)\n}\n\nfunc NewTranslationSet(log *logrus.Entry, language string) *TranslationSet {\n\tlog.Info(\"language: \" + language)\n\n\tbaseSet := englishSet()\n\n\tfor languageCode, translationSet := range GetTranslationSets() {\n\t\tif strings.HasPrefix(language, languageCode) {\n\t\t\t_ = mergo.Merge(&baseSet, translationSet, mergo.WithOverride)\n\t\t}\n\t}\n\n\treturn &baseSet\n}\n\n// GetTranslationSets gets all the translation sets, keyed by language code\nfunc GetTranslationSets() map[string]TranslationSet {\n\treturn map[string]TranslationSet{\n\t\t\"pl\": polishSet(),\n\t\t\"nl\": dutchSet(),\n\t\t\"de\": germanSet(),\n\t\t\"tr\": turkishSet(),\n\t\t\"en\": englishSet(),\n\t\t\"fr\": frenchSet(),\n\t\t\"zh\": chineseSet(),\n\t\t\"es\": spanishSet(),\n\t\t\"pt\": portugueseSet(),\n\t}\n}\n\n// detectLanguage extracts user language from environment\nfunc detectLanguage(langDetector func() (string, error)) string {\n\tif userLang, err := langDetector(); err == nil {\n\t\treturn userLang\n\t}\n\n\treturn \"C\"\n}\n"
  },
  {
    "path": "pkg/i18n/polish.go",
    "content": "package i18n\n\nfunc polishSet() TranslationSet {\n\treturn TranslationSet{\n\t\tPruningStatus:              \"czyszczenie\",\n\t\tRemovingStatus:             \"usuwanie\",\n\t\tRestartingStatus:           \"restartowanie\",\n\t\tStoppingStatus:             \"zatrzymywanie\",\n\t\tRunningCustomCommandStatus: \"uruchamianie własnej komendty\",\n\n\t\tNoViewMachingNewLineFocusedSwitchStatement: \"Żaden widok nie odpowiada instrukcji przełączenia newLineFocused\",\n\n\t\tErrorOccurred:                     \"Wystąpił błąd! Proszę go zgłosić na https://github.com/jesseduffield/lazydocker/issues\",\n\t\tConnectionFailed:                  \"Błąd połączenia z Dockerem. Być może należy go zrestartować.\",\n\t\tUnattachableContainerError:        \"Kontener nie obsługuje przyczepiania (attach). Musisz albo użyć flag '-it', albo `stdin_open: true, tty: true` w pliku docker-compose.yml.\",\n\t\tCannotAttachStoppedContainerError: \"Nie można przyczepić się do zatrzymanego kontenera, należy go najpierw uruchomić (co można wykonać wciskając przycisk 'r')\",\n\t\tCannotAccessDockerSocketError:     \"Nie udało się uzyskać dostępu do unix:///var/run/docker.sock\\nUruchom program jako root lub przeczytaj https://docs.docker.com/install/linux/linux-postinstall/\",\n\n\t\tDonate:  \"Dotacja\",\n\t\tConfirm: \"Potwierdź\",\n\n\t\tReturn:             \"powrót\",\n\t\tFocusMain:          \"skup na głównym panelu\",\n\t\tNavigate:           \"nawigowanie\",\n\t\tExecute:            \"wykonaj\",\n\t\tClose:              \"zamknij\",\n\t\tMenu:               \"menu\",\n\t\tMenuTitle:          \"Menu\",\n\t\tScroll:             \"przewiń\",\n\t\tOpenConfig:         \"otwórz konfigurację\",\n\t\tEditConfig:         \"edytuj konfigurację\",\n\t\tCancel:             \"anuluj\",\n\t\tRemove:             \"usuń\",\n\t\tForceRemove:        \"usuń siłą\",\n\t\tRemoveWithVolumes:  \"usuń z wolumenami\",\n\t\tRemoveService:      \"usuń kontenery\",\n\t\tStop:               \"zatrzymaj\",\n\t\tRestart:            \"restartuj\",\n\t\tRebuild:            \"przebuduj\",\n\t\tRecreate:           \"odtwórz\",\n\t\tPreviousContext:    \"poprzednia zakładka\",\n\t\tNextContext:        \"następna zakładka\",\n\t\tAttach:             \"przyczep\",\n\t\tViewLogs:           \"pokaż logi\",\n\t\tRemoveImage:        \"usuń obraz\",\n\t\tRemoveVolume:       \"usuń wolumen\",\n\t\tRemoveNetwork:      \"usuń sieci\",\n\t\tRemoveWithoutPrune: \"usuń bez kasowania nieoznaczonych rodziców\",\n\t\tPruneContainers:    \"wyczyść kontenery\",\n\t\tPruneVolumes:       \"wyczyść nieużywane wolumeny\",\n\t\tPruneNetworks:      \"wyczyść nieużywane sieci\",\n\t\tPruneImages:        \"wyczyść nieużywane obrazy\",\n\t\tViewRestartOptions: \"pokaż opcje restartu\",\n\t\tRunCustomCommand:   \"wykonaj predefiniowaną własną komende\",\n\n\t\tGlobalTitle:               \"Globalne\",\n\t\tMainTitle:                 \"Główne\",\n\t\tProjectTitle:              \"Projekt\",\n\t\tServicesTitle:             \"Serwisy\",\n\t\tContainersTitle:           \"Kontenery\",\n\t\tStandaloneContainersTitle: \"Kontenery samodzielne\",\n\t\tImagesTitle:               \"Obrazy\",\n\t\tVolumesTitle:              \"Wolumeny\",\n\t\tNetworksTitle:             \"Sieci\",\n\t\tCustomCommandTitle:        \"Własna komenda:\",\n\t\tErrorTitle:                \"Błąd\",\n\t\tLogsTitle:                 \"Logi\",\n\t\tConfigTitle:               \"Konfiguracja\",\n\t\tEnvTitle:                  \"Env\",\n\t\tDockerComposeConfigTitle:  \"Konfiguracja docker-compose\",\n\t\tTopTitle:                  \"Top\",\n\t\tStatsTitle:                \"Staty\",\n\t\tCreditsTitle:              \"O\",\n\t\tContainerConfigTitle:      \"Konfiguracja kontenera\",\n\t\tContainerEnvTitle:         \"Container Env\",\n\t\tNothingToDisplay:          \"Nothing to display\",\n\t\tCannotDisplayEnvVariables: \"Something went wrong while displaying environment variables\",\n\n\t\tNoContainers: \"Brak kontenerów\",\n\t\tNoContainer:  \"Brak kontenera\",\n\t\tNoImages:     \"Brak obrazów\",\n\t\tNoVolumes:    \"Brak wolumenów\",\n\t\tNoNetworks:   \"Brak sieci\",\n\n\t\tConfirmQuit:                 \"Na pewno chcesz wyjść?\",\n\t\tMustForceToRemoveContainer:  \"Nie możesz usunąć uruchomionego kontenera dopóki nie zrobisz tego siłą. Chcesz wykonać to z siłą?\",\n\t\tNotEnoughSpace:              \"Niedostateczna ilość miejsca do wyświetlenia paneli\",\n\t\tConfirmPruneImages:          \"Na pewno wyczyścić wszystkie nieużywane obrazy?\",\n\t\tConfirmPruneContainers:      \"Na pewno wyczyścić wszystkie nieuruchomione kontenery?\",\n\t\tConfirmPruneVolumes:         \"Na pewno wyczyścić wszystkie nieużywane wolumeny?\",\n\t\tConfirmPruneNetworks:        \"Na pewno wyczyścić wszystkie nieużywane sieci?\",\n\t\tStopService:                 \"Na pewno zatrzymać kontenery tego serwisu?\",\n\t\tStopContainer:               \"Na pewno zatrzymać ten kontener?\",\n\t\tPressEnterToReturn:          \"Wciśnij enter aby powrócić do lazydockera (ten komunikat może być wyłączony w konfiguracji poprzez ustawienie `gui.returnImmediately: true`)\",\n\t\tDetachFromContainerShortCut: \"Domyślnie, aby odłączyć się od kontenera, naciśnij ctrl-p, a następnie ctrl-q\",\n\t}\n}\n"
  },
  {
    "path": "pkg/i18n/portuguese.go",
    "content": "package i18n\n\nfunc portugueseSet() TranslationSet {\n\treturn TranslationSet{\n\t\tPruningStatus:              \"destruindo\",\n\t\tRemovingStatus:             \"removendo\",\n\t\tRestartingStatus:           \"reiniciando\",\n\t\tStartingStatus:             \"iniciando\",\n\t\tStoppingStatus:             \"parando\",\n\t\tUppingServiceStatus:        \"subindo serviço\",\n\t\tUppingProjectStatus:        \"subindo projeto\",\n\t\tDowningStatus:              \"derrubando\",\n\t\tPausingStatus:              \"pausando\",\n\t\tRunningCustomCommandStatus: \"executando comando personalizado\",\n\t\tRunningBulkCommandStatus:   \"executando comando em massa\",\n\n\t\tNoViewMachingNewLineFocusedSwitchStatement: \"No view matching newLineFocused switch statement\",\n\n\t\tErrorOccurred:                     \"Um erro ocorreu! Por favor, crie uma issue em https://github.com/jesseduffield/lazydocker/issues\",\n\t\tConnectionFailed:                  \"Falha na conexão com o cliente Docker. Você pode precisar reiniciar o seu cliente Docker\",\n\t\tUnattachableContainerError:        \"O contêiner não suporta anexação. Você deve executar o serviço com a flag '-it' ou usar `stdin_open: true, tty: true` no arquivo docker-compose.yml\",\n\t\tWaitingForContainerInfo:           \"Não é possível prosseguir até que o Docker forneça mais informações sobre o contêiner. Por favor, tente novamente em alguns momentos.\",\n\t\tCannotAttachStoppedContainerError: \"Você não pode anexar a um contêiner parado, você precisa iniciá-lo primeiro (o que você pode fazer com a tecla 'r') (sim, sou preguiçoso demais para fazer isso automaticamente para você) (aliás, bem legal que eu posso me comunicar diretamente com você na forma de uma mensagem de erro)\",\n\t\tCannotAccessDockerSocketError:     \"Não é possível acessar o sôquete docker em: unix:///var/run/docker.sock\\nExecute o lazydocker como root ou leia https://docs.docker.com/install/linux/linux-postinstall/\",\n\t\tCannotKillChildError:              \"Três segundos foram esperarados para que os processos filhos parassem. Pode haver um processo órfão que continua em execução em seu sistema.\",\n\n\t\tDonate:  \"Doar\",\n\t\tConfirm: \"Confirmar\",\n\n\t\tReturn:                      \"retornar\",\n\t\tFocusMain:                   \"focar no painel principal\",\n\t\tLcFilter:                    \"filtrar lista\",\n\t\tNavigate:                    \"navegar\",\n\t\tExecute:                     \"executar\",\n\t\tClose:                       \"fechar\",\n\t\tQuit:                        \"sair\",\n\t\tMenu:                        \"menu\",\n\t\tMenuTitle:                   \"Menu\",\n\t\tScroll:                      \"rolar\",\n\t\tOpenConfig:                  \"abrir configuração do lazydocker\",\n\t\tEditConfig:                  \"editar configuração do lazydocker\",\n\t\tCancel:                      \"cancelar\",\n\t\tRemove:                      \"remover\",\n\t\tHideStopped:                 \"ocultar/mostrar contêineres parados\",\n\t\tForceRemove:                 \"forçar remoção\",\n\t\tRemoveWithVolumes:           \"remover com volumes\",\n\t\tRemoveService:               \"remover contêineres\",\n\t\tUpService:                   \"subir serviço\",\n\t\tStop:                        \"parar\",\n\t\tPause:                       \"pausar\",\n\t\tRestart:                     \"reiniciar\",\n\t\tDown:                        \"derrubar projeto\",\n\t\tDownWithVolumes:             \"derrubar projetos com volumes\",\n\t\tStart:                       \"iniciar\",\n\t\tRebuild:                     \"reconstuir\",\n\t\tRecreate:                    \"recriar\",\n\t\tPreviousContext:             \"aba anterior\",\n\t\tNextContext:                 \"próxima aba\",\n\t\tAttach:                      \"anexar\",\n\t\tViewLogs:                    \"ver logs\",\n\t\tUpProject:                   \"subir projeto\",\n\t\tDownProject:                 \"derrubar projeto\",\n\t\tRemoveImage:                 \"remover imagem\",\n\t\tRemoveVolume:                \"remover volume\",\n\t\tRemoveNetwork:               \"remover rede\",\n\t\tRemoveWithoutPrune:          \"remover sem deletar pais não etiquetados\",\n\t\tRemoveWithoutPruneWithForce: \"remover (forçado) sem deletar pais não etiquetados\",\n\t\tRemoveWithForce:             \"remover (forçado)\",\n\t\tPruneContainers:             \"destruir contêineres encerrados\",\n\t\tPruneVolumes:                \"destruir volumes não utilizados\",\n\t\tPruneNetworks:               \"destruir redes não utilizadas\",\n\t\tPruneImages:                 \"destruir imagens não utilizadas\",\n\t\tStopAllContainers:           \"parar todos os contêineres\",\n\t\tRemoveAllContainers:         \"remover todos os contêineres (forçado)\",\n\t\tViewRestartOptions:          \"ver opções de reinício\",\n\t\tExecShell:                   \"executar shell\",\n\t\tRunCustomCommand:            \"executar comando personalizado predefinido\",\n\t\tViewBulkCommands:            \"ver comandos em massa\",\n\t\tFilterList:                  \"filtrar lista\",\n\t\tOpenInBrowser:               \"abrir no navegador (primeira porta é http)\",\n\t\tSortContainersByState:       \"ordenar contêineres por estado\",\n\n\t\tGlobalTitle:               \"Global\",\n\t\tMainTitle:                 \"Principal\",\n\t\tProjectTitle:              \"Projeto\",\n\t\tServicesTitle:             \"Serviços\",\n\t\tContainersTitle:           \"Contêineres\",\n\t\tStandaloneContainersTitle: \"Contêineres Avulsos\",\n\t\tImagesTitle:               \"Imagens\",\n\t\tVolumesTitle:              \"Volumes\",\n\t\tNetworksTitle:             \"Redes\",\n\t\tCustomCommandTitle:        \"Comando Personalizado:\",\n\t\tBulkCommandTitle:          \"Comando em Massa:\",\n\t\tErrorTitle:                \"Erro\",\n\t\tLogsTitle:                 \"Registros\",\n\t\tConfigTitle:               \"Config\",\n\t\tEnvTitle:                  \"Env\",\n\t\tDockerComposeConfigTitle:  \"Docker-Compose Config\",\n\t\tTopTitle:                  \"Topo\",\n\t\tStatsTitle:                \"Estatísticas\",\n\t\tCreditsTitle:              \"Sobre\",\n\t\tContainerConfigTitle:      \"Configuração do Contêiner\",\n\t\tContainerEnvTitle:         \"Contêiner Env\",\n\t\tNothingToDisplay:          \"Nada a exibir\",\n\t\tNoContainerForService:     \"Nenhum log para exibir; o serviço não está associado a nenhum contêiner\",\n\t\tCannotDisplayEnvVariables: \"Algo deu errado ao exibir as variáveis de ambiente\",\n\n\t\tNoContainers: \"Sem contêineres\",\n\t\tNoContainer:  \"Sem contêiner\",\n\t\tNoImages:     \"Sem imagens\",\n\t\tNoVolumes:    \"Sem volumes\",\n\t\tNoNetworks:   \"Sem redes\",\n\t\tNoServices:   \"Sem serviços\",\n\n\t\tConfirmQuit:                 \"Tem certeza que deseja sair?\",\n\t\tConfirmUpProject:            \"Tem certeza que deseja 'iniciar' seu projeto docker compose?\",\n\t\tMustForceToRemoveContainer:  \"Você não pode remover um contêiner em execução a menos que o force. Deseja forçar?\",\n\t\tNotEnoughSpace:              \"Sem espaço suficiente para renderizar os painéis\",\n\t\tConfirmPruneImages:          \"Tem certeza que deseja eliminar todas as imagens não utilizadas?\",\n\t\tConfirmPruneContainers:      \"Tem certeza que deseja destruir todos os contêineres parados?\",\n\t\tConfirmStopContainers:       \"Tem certeza que deseja parar todos os contêineres?\",\n\t\tConfirmRemoveContainers:     \"Tem certeza que deseja remover todos os contêineres?\",\n\t\tConfirmPruneVolumes:         \"Tem certeza que deseja destruir todos os volumes não utilizados?\",\n\t\tConfirmPruneNetworks:        \"Tem certeza que deseja destruir todas as redes não utilizadas?\",\n\t\tStopService:                 \"Tem certeza que deseja parar os contêineres deste serviço?\",\n\t\tStopContainer:               \"Tem certeza que deseja parar este contêiner?\",\n\t\tPressEnterToReturn:          \"Pressione enter para retornar ao lazydocker (este prompt pode ser desativado em sua configuração definindo `gui.returnImmediately: true`)\",\n\t\tDetachFromContainerShortCut: \"Por padrão, para desanexar do contêiner, pressione ctrl-p e depois ctrl-q\",\n\n\t\tNo:  \"não\",\n\t\tYes: \"sim\",\n\n\t\tLcNextScreenMode: \"modo de tela seguinte (normal/meia/tela cheia)\",\n\t\tLcPrevScreenMode: \"modo de tela anterior\",\n\t\tFilterPrompt:     \"filtro\",\n\t}\n}\n"
  },
  {
    "path": "pkg/i18n/spanish.go",
    "content": "package i18n\n\nfunc spanishSet() TranslationSet {\n\treturn TranslationSet{\n\t\tPruningStatus:              \"limpiando\",\n\t\tRemovingStatus:             \"eliminando\",\n\t\tRestartingStatus:           \"reiniciando\",\n\t\tStartingStatus:             \"iniciando\",\n\t\tStoppingStatus:             \"terminando\",\n\t\tUppingServiceStatus:        \"levantando servicio\",\n\t\tUppingProjectStatus:        \"levantando proyecto\",\n\t\tDowningStatus:              \"dando de baja\",\n\t\tPausingStatus:              \"pausando\",\n\t\tRunningCustomCommandStatus: \"ejecutando comando personalizado\",\n\t\tRunningBulkCommandStatus:   \"ejecutando comando masivo\",\n\n\t\tErrorOccurred:                 \"¡Hubo un error! Por favor crea un issue en https://github.com/jesseduffield/lazydocker/issues\",\n\t\tConnectionFailed:              \"Falló la conexión con el docker client. Quizá necesitas reiniciar tu docker client\",\n\t\tUnattachableContainerError:    \"Container does not support attaching. You must either run the service with the '-it' flag or use `stdin_open: true, tty: true` in the docker-compose.yml file\",\n\t\tWaitingForContainerInfo:       \"No podemos proceder hasta que docker nos de más información sobre el contenedor. Inténtalo otra vez en unos segundos.\",\n\t\tCannotAccessDockerSocketError: \"No es posible acceder al docker socket en: unix:///var/run/docker.sock\\nEjecuta lazydocker como root o lee https://docs.docker.com/install/linux/linux-postinstall/\",\n\t\tCannotKillChildError:          \"Esperamos tres segundos a que el proceso hijo se detenga. Debe de haber un proceso huérfano que continua activo en tu sistema.\",\n\n\t\tDonate:  \"Donar\",\n\t\tConfirm: \"Confirmar\",\n\n\t\tReturn:                      \"regresar\",\n\t\tFocusMain:                   \"enfocar panel principal\",\n\t\tLcFilter:                    \"filtrar lista\",\n\t\tNavigate:                    \"navegar\",\n\t\tExecute:                     \"ejecutar\",\n\t\tClose:                       \"cerrar\",\n\t\tQuit:                        \"salir\",\n\t\tMenu:                        \"menú\",\n\t\tMenuTitle:                   \"Menú\",\n\t\tOpenConfig:                  \"abrir configuración de lazydocker\",\n\t\tEditConfig:                  \"editar configuración de lazydocker\",\n\t\tCancel:                      \"cancelar\",\n\t\tRemove:                      \"borrar\",\n\t\tHideStopped:                 \"esconder/mostrar contenedores parados\",\n\t\tForceRemove:                 \"borrar(forzado)\",\n\t\tRemoveWithVolumes:           \"borrar con volúmenes\",\n\t\tRemoveService:               \"borrar contenedores\",\n\t\tUpService:                   \"levantar servicio\",\n\t\tStop:                        \"parar\",\n\t\tPause:                       \"pausa\",\n\t\tRestart:                     \"reiniciar\",\n\t\tDown:                        \"bajar proyecto\",\n\t\tDownWithVolumes:             \"bajar proyecto con volúmenes\",\n\t\tStart:                       \"iniciar\",\n\t\tRebuild:                     \"recompilar\",\n\t\tRecreate:                    \"recrear\",\n\t\tPreviousContext:             \"anterior pestaña\",\n\t\tNextContext:                 \"siguiente pestaña\",\n\t\tViewLogs:                    \"ver logs\",\n\t\tUpProject:                   \"levantar proyecto\",\n\t\tDownProject:                 \"dar de baja el proyecto\",\n\t\tRemoveImage:                 \"limpiar imagen\",\n\t\tRemoveVolume:                \"limpiar volúmen\",\n\t\tRemoveNetwork:               \"limpiar red\",\n\t\tRemoveWithoutPrune:          \"limpiar sin borrar padres sin etiqueta\",\n\t\tRemoveWithoutPruneWithForce: \"limpiar (forzado) sin borrar padres sin etiqueta\",\n\t\tRemoveWithForce:             \"limpiar (forzado)\",\n\t\tPruneContainers:             \"limpiar contenedores finalizados\",\n\t\tPruneVolumes:                \"limpiar volúmenes sin usar\",\n\t\tPruneNetworks:               \"limpiar redes sin usar\",\n\t\tPruneImages:                 \"limpiar imágenes sin usar\",\n\t\tStopAllContainers:           \"detener todos los contenedores\",\n\t\tRemoveAllContainers:         \"borrar todos los contenedores (forzado)\",\n\t\tViewRestartOptions:          \"ver opciones de reinicio\",\n\t\tExecShell:                   \"ejecutar shell\",\n\t\tRunCustomCommand:            \"ejecutar comando personalizado\",\n\t\tViewBulkCommands:            \"ver comandos masivos\",\n\t\tFilterList:                  \"filtar list\",\n\t\tOpenInBrowser:               \"abrir en navegador (first port is http)\",\n\t\tSortContainersByState:       \"ordenar contenedores por estado\",\n\n\t\tGlobalTitle:               \"Global\",\n\t\tMainTitle:                 \"Inicio\",\n\t\tProjectTitle:              \"Proyecto\",\n\t\tServicesTitle:             \"Servicios\",\n\t\tContainersTitle:           \"Contenedores\",\n\t\tStandaloneContainersTitle: \"Contenedores independientes\",\n\t\tImagesTitle:               \"Imágenes\",\n\t\tVolumesTitle:              \"Volúmenes\",\n\t\tNetworksTitle:             \"Redes\",\n\t\tCustomCommandTitle:        \"Comando personalizado:\",\n\t\tBulkCommandTitle:          \"Comando masivo:\",\n\t\tErrorTitle:                \"Error\",\n\t\tLogsTitle:                 \"Logs\",\n\t\tConfigTitle:               \"Configuración\",\n\t\tEnvTitle:                  \"Variables de entorno\",\n\t\tDockerComposeConfigTitle:  \"Docker-Compose Config\",\n\t\tTopTitle:                  \"Top\",\n\t\tStatsTitle:                \"Estadísticas\",\n\t\tCreditsTitle:              \"Acerca\",\n\t\tContainerConfigTitle:      \"Configuración\",\n\t\tContainerEnvTitle:         \"Variables de entorno\",\n\t\tNothingToDisplay:          \"Nada que mostrar\",\n\t\tNoContainerForService:     \"No hay logs que mostrar; el servicio no está asociado con un contenedor\",\n\t\tCannotDisplayEnvVariables: \"Algo salió mal mientras se mostraban las variables de entorno\",\n\n\t\tNoContainers: \"Sin contenedores\",\n\t\tNoContainer:  \"Sin contenedor\",\n\t\tNoImages:     \"Sin imágenes\",\n\t\tNoVolumes:    \"Sin volúmenes\",\n\t\tNoNetworks:   \"Sin redes\",\n\t\tNoServices:   \"Sin servicios\",\n\n\t\tConfirmQuit:                \"¿Realmente quieres salir?\",\n\t\tConfirmUpProject:           \"¿Realmente quieres levantar tu proyecto docker compose?\",\n\t\tMustForceToRemoveContainer: \"No puedes borrar un contenedor en ejecución a menos de que lo fuerces, ¿quieres hacerlo?\",\n\t\tNotEnoughSpace:             \"No hay suficiente espacio para renderizar los paneles\",\n\t\tConfirmPruneImages:         \"¿Realmente quieres limpiar todas tus imágenes?\",\n\t\tConfirmPruneContainers:     \"¿Realmente quieres limpiar todos los contenedores finalizados?\",\n\t\tConfirmStopContainers:      \"¿Realmente quieres detener todos los contenedores?\",\n\t\tConfirmRemoveContainers:    \"¿Realmente quieres borrar todos los contenedores?\",\n\t\tConfirmPruneVolumes:        \"¿Realmente quieres limpiar todos los vólumenes sin usar?\",\n\t\tConfirmPruneNetworks:       \"¿Realmente quieres limpiar todas las redes sin usar?\",\n\t\tStopService:                \"¿Realmente quieres detener los contenedores de este servicio?\",\n\t\tStopContainer:              \"¿Realmente quieres detener este contenedor?\",\n\t\tPressEnterToReturn:         \"Presionar [enter] para volver a lazydocker (este mensaje puede ser desactivado en tu configuración poniendo `gui.returnImmediately: true`)\",\n\n\t\tNo:  \"no\",\n\t\tYes: \"sí\",\n\n\t\tFilterPrompt: \"filtrar\",\n\t}\n}\n"
  },
  {
    "path": "pkg/i18n/turkish.go",
    "content": "package i18n\n\nfunc turkishSet() TranslationSet {\n\treturn TranslationSet{\n\t\tPruningStatus:              \"temizleniyor\",\n\t\tRemovingStatus:             \"kaldırılıyor\",\n\t\tRestartingStatus:           \"yeniden başlatılıyor\",\n\t\tStoppingStatus:             \"durduruluyor\",\n\t\tRunningCustomCommandStatus: \"özel komut çalıştır\",\n\n\t\tNoViewMachingNewLineFocusedSwitchStatement: \"NewLineFocused anahtar deyimi ile eşleşen görünüm yok\",\n\n\t\tErrorOccurred:                     \"Bir hata oluştu! Lütfen https://github.com/jesseduffield/lazydocker/issues adresinden bir hataya ilişkin konu oluşturun\",\n\t\tConnectionFailed:                  \"Docker bağlantısı başarısız oldu. Docker' ı yeniden başlatmanız gerekebilir\",\n\t\tUnattachableContainerError:        \"Konteyner attaching modunda çalışmayı desteklemiyor. Hizmeti '-it' opsiyonu ile çalıştırmanız veya docker-compose.yml dosyasında `stdin_open: true, tty: true` kullanmanız gerekir.\",\n\t\tCannotAttachStoppedContainerError: \"Durdurulan konteynera bağlanamazsınız, ilk önce başlatmanız gerekir (aslında başlatmayı r tuşu ile yapabilirsiniz) (evet, senin için bunu otomatik olarak yapabilirim fakat çok tembelim) (hata mesajı ile seninle birebir iletişim kurmam çok daha güzel)\",\n\t\tCannotAccessDockerSocketError:     \"Docker' a şu adresten erişilemiyor : unix:///var/run/docker.sock\\n lazydocker' ı root(kök kullanıcı) olarak çalıştır veya şu adresteki adımları takip et : https://docs.docker.com/install/linux/linux-postinstall/\",\n\n\t\tDonate:  \"Bağış\",\n\t\tConfirm: \"Onayla\",\n\n\t\tReturn:             \"dönüş\",\n\t\tFocusMain:          \"ana panele odaklan\",\n\t\tNavigate:           \"gezin\",\n\t\tExecute:            \"çalıştır\",\n\t\tClose:              \"kapat\",\n\t\tMenu:               \"menü\",\n\t\tMenuTitle:          \"Menü\",\n\t\tScroll:             \"kaydır\",\n\t\tOpenConfig:         \"lazydocker ayarlarını aç\",\n\t\tEditConfig:         \"lazzydocker ayarlarını düzenle\",\n\t\tCancel:             \"iptal\",\n\t\tRemove:             \"kaldır\",\n\t\tForceRemove:        \"kaldırmaya zorla\",\n\t\tRemoveWithVolumes:  \"alanları ile birlikte kaldır\",\n\t\tRemoveService:      \"konteynerleri kaldır\",\n\t\tStop:               \"durdur\",\n\t\tRestart:            \"yeniden başlat\",\n\t\tRebuild:            \"yeniden yapılandır\",\n\t\tRecreate:           \"yeniden oluştur\",\n\t\tPreviousContext:    \"önceki sekme\",\n\t\tNextContext:        \"sonraki sekme\",\n\t\tAttach:             \"bağlan/iliştir\",\n\t\tViewLogs:           \"kayıt defterini görüntüle\",\n\t\tRemoveImage:        \"imajı kaldır\",\n\t\tRemoveVolume:       \"alanı kaldır\",\n\t\tRemoveNetwork:      \"ağı kaldır\",\n\t\tRemoveWithoutPrune: \"etkisiz ebeveynleri silmeden kaldır\",\n\t\tPruneContainers:    \"çalışmayan konteynerleri temizle\",\n\t\tPruneVolumes:       \"kullanılmayan alanları temizle\",\n\t\tPruneNetworks:      \"kullanılmayan ağları temizle\",\n\t\tPruneImages:        \"kullanılmayan imajları temizle\",\n\t\tViewRestartOptions: \"yeniden başlatma seçeneklerini görüntüle\",\n\t\tRunCustomCommand:   \"önceden tanımlanmış özel komutu çalıştır\",\n\n\t\tGlobalTitle:               \"Global\",\n\t\tMainTitle:                 \"Ana\",\n\t\tProjectTitle:              \"Proje\",\n\t\tServicesTitle:             \"Servisler\",\n\t\tContainersTitle:           \"Konteynerler\",\n\t\tStandaloneContainersTitle: \"Bağımsız Konteynerler\",\n\t\tImagesTitle:               \"Imajlar\",\n\t\tVolumesTitle:              \"Alanlar\",\n\t\tNetworksTitle:             \"Ağları\",\n\t\tCustomCommandTitle:        \"Özel Komut:\",\n\t\tErrorTitle:                \"Hata\",\n\t\tLogsTitle:                 \"Kayitlar\",\n\t\tConfigTitle:               \"Ayarlar\",\n\t\tEnvTitle:                  \"Env\",\n\t\tDockerComposeConfigTitle:  \"Docker-Compose Ayar\",\n\t\tTopTitle:                  \"Top\",\n\t\tStatsTitle:                \"Durumlar\",\n\t\tCreditsTitle:              \"Hakkinda\",\n\t\tContainerConfigTitle:      \"Konteyner Ayar\",\n\t\tContainerEnvTitle:         \"Konteyner Env\",\n\t\tNothingToDisplay:          \"Nothing to display\",\n\t\tCannotDisplayEnvVariables: \"Something went wrong while displaying environment variables\",\n\n\t\tNoContainers: \"Konteynerler yok\",\n\t\tNoContainer:  \"Konteyner yok\",\n\t\tNoImages:     \"Imajlar yok\",\n\t\tNoVolumes:    \"Alanlar yok\",\n\t\tNoNetworks:   \"Ağları yok\",\n\n\t\tConfirmQuit:                 \"Çıkmak istediğine emin misin?\",\n\t\tMustForceToRemoveContainer:  \"Zorlamadan çalışan bir konteyneri kaldıramazsınız. Zorlamak ister misin?\",\n\t\tNotEnoughSpace:              \"Panelleri oluşturmak için yeterli alan yok\",\n\t\tConfirmPruneImages:          \"Kullanılmayan tüm görüntüleri temizlemek istediğinize emin misiniz?\",\n\t\tConfirmPruneContainers:      \"Durdurulan tüm konteynerları temizlemek istediğinizden emin misiniz?\",\n\t\tConfirmPruneVolumes:         \"Kullanılmayan tüm alanları temizlemek istediğinizden emin misiniz?\",\n\t\tConfirmPruneNetworks:        \"Kullanılmayan tüm ağları temizlemek istediğinizden emin misiniz?\",\n\t\tStopService:                 \"Bu servisin konteynerlerini durdurmak istediğinize emin misiniz?\",\n\t\tStopContainer:               \"Bu konteyneri durdurmak istediğinize emin misiniz?\",\n\t\tPressEnterToReturn:          \"lazydocker' a geri dönmek için enter tuşuna basın ( Bu uyarı, `gui.return Immediately: true` ayarıyla devre dışı bırakılabilir)\",\n\t\tDetachFromContainerShortCut: \"Varsayılan olarak, kaptan ayırmak için ctrl-p ve ardından ctrl-q tuşlarına basın\",\n\t}\n}\n"
  },
  {
    "path": "pkg/log/log.go",
    "content": "package log\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/jesseduffield/lazydocker/pkg/config\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// NewLogger returns a new logger\nfunc NewLogger(config *config.AppConfig, rollrusHook string) *logrus.Entry {\n\tvar log *logrus.Logger\n\tif config.Debug || os.Getenv(\"DEBUG\") == \"TRUE\" {\n\t\tlog = newDevelopmentLogger(config)\n\t} else {\n\t\tlog = newProductionLogger()\n\t}\n\n\t// highly recommended: tail -f development.log | humanlog\n\t// https://github.com/aybabtme/humanlog\n\tlog.Formatter = &logrus.JSONFormatter{}\n\n\treturn log.WithFields(logrus.Fields{\n\t\t\"debug\":     config.Debug,\n\t\t\"version\":   config.Version,\n\t\t\"commit\":    config.Commit,\n\t\t\"buildDate\": config.BuildDate,\n\t})\n}\n\nfunc getLogLevel() logrus.Level {\n\tstrLevel := os.Getenv(\"LOG_LEVEL\")\n\tlevel, err := logrus.ParseLevel(strLevel)\n\tif err != nil {\n\t\treturn logrus.DebugLevel\n\t}\n\treturn level\n}\n\nfunc newDevelopmentLogger(config *config.AppConfig) *logrus.Logger {\n\tlog := logrus.New()\n\tlog.SetLevel(getLogLevel())\n\tfile, err := os.OpenFile(filepath.Join(config.ConfigDir, \"development.log\"), os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0o666)\n\tif err != nil {\n\t\tfmt.Println(\"unable to log to file\")\n\t\tos.Exit(1)\n\t}\n\tlog.SetOutput(file)\n\treturn log\n}\n\nfunc newProductionLogger() *logrus.Logger {\n\tlog := logrus.New()\n\tlog.Out = io.Discard\n\tlog.SetLevel(logrus.ErrorLevel)\n\treturn log\n}\n"
  },
  {
    "path": "pkg/tasks/tasks.go",
    "content": "package tasks\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"time\"\n\n\t\"github.com/jesseduffield/lazydocker/pkg/i18n\"\n\t\"github.com/sasha-s/go-deadlock\"\n\t\"github.com/sirupsen/logrus\"\n)\n\ntype TaskManager struct {\n\tcurrentTask  *Task\n\twaitingMutex deadlock.Mutex\n\ttaskIDMutex  deadlock.Mutex\n\tLog          *logrus.Entry\n\tTr           *i18n.TranslationSet\n\tnewTaskId    int\n}\n\ntype Task struct {\n\tctx           context.Context\n\tcancel        context.CancelFunc\n\tstopped       bool\n\tstopMutex     deadlock.Mutex\n\tnotifyStopped chan struct{}\n\tLog           *logrus.Entry\n\tf             func(ctx context.Context)\n}\n\ntype TaskFunc func(ctx context.Context)\n\nfunc NewTaskManager(log *logrus.Entry, translationSet *i18n.TranslationSet) *TaskManager {\n\treturn &TaskManager{Log: log, Tr: translationSet}\n}\n\n// Close closes the task manager, killing whatever task may currently be running\nfunc (t *TaskManager) Close() {\n\tif t.currentTask == nil {\n\t\treturn\n\t}\n\n\tc := make(chan struct{}, 1)\n\n\tgo func() {\n\t\tt.currentTask.Stop()\n\t\tc <- struct{}{}\n\t}()\n\n\tselect {\n\tcase <-c:\n\t\treturn\n\tcase <-time.After(3 * time.Second):\n\t\tfmt.Println(t.Tr.CannotKillChildError)\n\t}\n}\n\nfunc (t *TaskManager) NewTask(f func(ctx context.Context)) error {\n\tgo func() {\n\t\tt.taskIDMutex.Lock()\n\t\tt.newTaskId++\n\t\ttaskID := t.newTaskId\n\t\tt.taskIDMutex.Unlock()\n\n\t\tt.waitingMutex.Lock()\n\t\tdefer t.waitingMutex.Unlock()\n\t\tt.taskIDMutex.Lock()\n\t\tif taskID < t.newTaskId {\n\t\t\tt.taskIDMutex.Unlock()\n\t\t\treturn\n\t\t}\n\t\tt.taskIDMutex.Unlock()\n\n\t\tctx, cancel := context.WithCancel(context.Background())\n\t\tnotifyStopped := make(chan struct{})\n\n\t\tif t.currentTask != nil {\n\t\t\tt.Log.Info(\"asking task to stop\")\n\t\t\tt.currentTask.Stop()\n\t\t\tt.Log.Info(\"task stopped\")\n\t\t}\n\n\t\tt.currentTask = &Task{\n\t\t\tctx:           ctx,\n\t\t\tcancel:        cancel,\n\t\t\tnotifyStopped: notifyStopped,\n\t\t\tLog:           t.Log,\n\t\t\tf:             f,\n\t\t}\n\n\t\tgo func() {\n\t\t\tf(ctx)\n\t\t\tt.Log.Info(\"returned from function, closing notifyStopped\")\n\t\t\tclose(notifyStopped)\n\t\t}()\n\t}()\n\n\treturn nil\n}\n\nfunc (t *Task) Stop() {\n\tt.stopMutex.Lock()\n\tdefer t.stopMutex.Unlock()\n\tif t.stopped {\n\t\treturn\n\t}\n\n\tt.cancel()\n\tt.Log.Info(\"closed stop channel, waiting for notifyStopped message\")\n\t<-t.notifyStopped\n\tt.Log.Info(\"received notifystopped message\")\n\tt.stopped = true\n}\n\n// NewTickerTask is a convenience function for making a new task that repeats some action once per e.g. second\n// the before function gets called after the lock is obtained, but before the ticker starts.\n// if you handle a message on the stop channel in f() you need to send a message on the notifyStopped channel because returning is not sufficient. Here, unlike in a regular task, simply returning means we're now going to wait till the next tick to run again.\nfunc (t *TaskManager) NewTickerTask(duration time.Duration, before func(ctx context.Context), f func(ctx context.Context, notifyStopped chan struct{})) error {\n\tnotifyStopped := make(chan struct{}, 10)\n\n\treturn t.NewTask(func(ctx context.Context) {\n\t\tif before != nil {\n\t\t\tbefore(ctx)\n\t\t}\n\t\ttickChan := time.NewTicker(duration)\n\t\tdefer tickChan.Stop()\n\t\t// calling f first so that we're not waiting for the first tick\n\t\tf(ctx, notifyStopped)\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-notifyStopped:\n\t\t\t\tt.Log.Info(\"exiting ticker task due to notifyStopped channel\")\n\t\t\t\treturn\n\t\t\tcase <-ctx.Done():\n\t\t\t\tt.Log.Info(\"exiting ticker task due to stopped cahnnel\")\n\t\t\t\treturn\n\t\t\tcase <-tickChan.C:\n\t\t\t\tt.Log.Info(\"running ticker task again\")\n\t\t\t\tf(ctx, notifyStopped)\n\t\t\t}\n\t\t}\n\t})\n}\n"
  },
  {
    "path": "pkg/utils/utils.go",
    "content": "package utils\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"html/template\"\n\t\"io\"\n\t\"math\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/go-errors/errors\"\n\t\"github.com/jesseduffield/gocui\"\n\t\"github.com/mattn/go-runewidth\"\n\n\t// \"github.com/jesseduffield/yaml\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/goccy/go-yaml\"\n\t\"github.com/goccy/go-yaml/lexer\"\n\t\"github.com/goccy/go-yaml/printer\"\n)\n\n// SplitLines takes a multiline string and splits it on newlines\n// currently we are also stripping \\r's which may have adverse effects for\n// windows users (but no issues have been raised yet)\nfunc SplitLines(multilineString string) []string {\n\tmultilineString = strings.Replace(multilineString, \"\\r\", \"\", -1)\n\tif multilineString == \"\" || multilineString == \"\\n\" {\n\t\treturn make([]string, 0)\n\t}\n\tlines := strings.Split(multilineString, \"\\n\")\n\tif lines[len(lines)-1] == \"\" {\n\t\treturn lines[:len(lines)-1]\n\t}\n\treturn lines\n}\n\n// WithPadding pads a string as much as you want\nfunc WithPadding(str string, padding int) string {\n\tuncoloredStr := Decolorise(str)\n\tif padding < runewidth.StringWidth(uncoloredStr) {\n\t\treturn str\n\t}\n\treturn str + strings.Repeat(\" \", padding-runewidth.StringWidth(uncoloredStr))\n}\n\n// ColoredString takes a string and a colour attribute and returns a colored\n// string with that attribute\nfunc ColoredString(str string, colorAttribute color.Attribute) string {\n\t// fatih/color does not have a color.Default attribute, so unless we fork that repo the only way for us to express that we don't want to color a string different to the terminal's default is to not call the function in the first place, but that's annoying when you want a streamlined code path. Because I'm too lazy to fork the repo right now, we'll just assume that by FgWhite you really mean Default, for the sake of supporting users with light themed terminals.\n\tif colorAttribute == color.FgWhite {\n\t\treturn str\n\t}\n\tcolour := color.New(colorAttribute)\n\treturn ColoredStringDirect(str, colour)\n}\n\n// ColoredYamlString takes an YAML formatted string and returns a colored string\n// with colors hardcoded as:\n// keys: cyan\n// Booleans: magenta\n// Numbers: yellow\n// Strings: green\nfunc ColoredYamlString(str string) string {\n\tformat := func(attr color.Attribute) string {\n\t\treturn fmt.Sprintf(\"%s[%dm\", \"\\x1b\", attr)\n\t}\n\ttokens := lexer.Tokenize(str)\n\tvar p printer.Printer\n\tp.Bool = func() *printer.Property {\n\t\treturn &printer.Property{\n\t\t\tPrefix: format(color.FgMagenta),\n\t\t\tSuffix: format(color.Reset),\n\t\t}\n\t}\n\tp.Number = func() *printer.Property {\n\t\treturn &printer.Property{\n\t\t\tPrefix: format(color.FgYellow),\n\t\t\tSuffix: format(color.Reset),\n\t\t}\n\t}\n\tp.MapKey = func() *printer.Property {\n\t\treturn &printer.Property{\n\t\t\tPrefix: format(color.FgCyan),\n\t\t\tSuffix: format(color.Reset),\n\t\t}\n\t}\n\tp.String = func() *printer.Property {\n\t\treturn &printer.Property{\n\t\t\tPrefix: format(color.FgGreen),\n\t\t\tSuffix: format(color.Reset),\n\t\t}\n\t}\n\treturn p.PrintTokens(tokens)\n}\n\n// MultiColoredString takes a string and an array of colour attributes and returns a colored\n// string with those attributes\nfunc MultiColoredString(str string, colorAttribute ...color.Attribute) string {\n\tcolour := color.New(colorAttribute...)\n\treturn ColoredStringDirect(str, colour)\n}\n\n// ColoredStringDirect used for aggregating a few color attributes rather than\n// just sending a single one\nfunc ColoredStringDirect(str string, colour *color.Color) string {\n\treturn colour.SprintFunc()(fmt.Sprint(str))\n}\n\n// NormalizeLinefeeds - Removes all Windows and Mac style line feeds\nfunc NormalizeLinefeeds(str string) string {\n\tstr = strings.Replace(str, \"\\r\\n\", \"\\n\", -1)\n\tstr = strings.Replace(str, \"\\r\", \"\", -1)\n\treturn str\n}\n\n// Loader dumps a string to be displayed as a loader\nfunc Loader() string {\n\tcharacters := \"|/-\\\\\"\n\tnow := time.Now()\n\tnanos := now.UnixNano()\n\tindex := nanos / 50000000 % int64(len(characters))\n\treturn characters[index : index+1]\n}\n\n// ResolvePlaceholderString populates a template with values\nfunc ResolvePlaceholderString(str string, arguments map[string]string) string {\n\tfor key, value := range arguments {\n\t\tstr = strings.Replace(str, \"{{\"+key+\"}}\", value, -1)\n\t}\n\treturn str\n}\n\n// Max returns the maximum of two integers\nfunc Max(x, y int) int {\n\tif x > y {\n\t\treturn x\n\t}\n\treturn y\n}\n\n// RenderTable takes an array of string arrays and returns a table containing the values\nfunc RenderTable(rows [][]string) (string, error) {\n\tif len(rows) == 0 {\n\t\treturn \"\", nil\n\t}\n\tif !displayArraysAligned(rows) {\n\t\treturn \"\", errors.New(\"Each item must return the same number of strings to display\")\n\t}\n\n\tcolumnPadWidths := getPadWidths(rows)\n\tpaddedDisplayRows := getPaddedDisplayStrings(rows, columnPadWidths)\n\n\treturn strings.Join(paddedDisplayRows, \"\\n\"), nil\n}\n\n// Decolorise strips a string of color\nfunc Decolorise(str string) string {\n\tre := regexp.MustCompile(`\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})?)?[mK]`)\n\treturn re.ReplaceAllString(str, \"\")\n}\n\nfunc getPadWidths(rows [][]string) []int {\n\tif len(rows[0]) <= 1 {\n\t\treturn []int{}\n\t}\n\tcolumnPadWidths := make([]int, len(rows[0])-1)\n\tfor i := range columnPadWidths {\n\t\tfor _, cells := range rows {\n\t\t\tuncoloredCell := Decolorise(cells[i])\n\n\t\t\tif runewidth.StringWidth(uncoloredCell) > columnPadWidths[i] {\n\t\t\t\tcolumnPadWidths[i] = runewidth.StringWidth(uncoloredCell)\n\t\t\t}\n\t\t}\n\t}\n\treturn columnPadWidths\n}\n\nfunc getPaddedDisplayStrings(rows [][]string, columnPadWidths []int) []string {\n\tpaddedDisplayRows := make([]string, len(rows))\n\tfor i, cells := range rows {\n\t\tfor j, columnPadWidth := range columnPadWidths {\n\t\t\tpaddedDisplayRows[i] += WithPadding(cells[j], columnPadWidth) + \" \"\n\t\t}\n\t\tpaddedDisplayRows[i] += cells[len(columnPadWidths)]\n\t}\n\treturn paddedDisplayRows\n}\n\n// displayArraysAligned returns true if every string array returned from our\n// list of displayables has the same length\nfunc displayArraysAligned(stringArrays [][]string) bool {\n\tfor _, strings := range stringArrays {\n\t\tif len(strings) != len(stringArrays[0]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc FormatBinaryBytes(b int) string {\n\tn := float64(b)\n\tunits := []string{\"B\", \"kiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"}\n\tfor _, unit := range units {\n\t\tif n > math.Pow(2, 10) {\n\t\t\tn /= math.Pow(2, 10)\n\t\t} else {\n\t\t\tval := fmt.Sprintf(\"%.2f%s\", n, unit)\n\t\t\tif val == \"0.00B\" {\n\t\t\t\treturn \"0B\"\n\t\t\t}\n\t\t\treturn val\n\t\t}\n\t}\n\treturn \"a lot\"\n}\n\nfunc FormatDecimalBytes(b int) string {\n\tn := float64(b)\n\tunits := []string{\"B\", \"kB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"}\n\tfor _, unit := range units {\n\t\tif n > math.Pow(10, 3) {\n\t\t\tn /= math.Pow(10, 3)\n\t\t} else {\n\t\t\tval := fmt.Sprintf(\"%.2f%s\", n, unit)\n\t\t\tif val == \"0.00B\" {\n\t\t\t\treturn \"0B\"\n\t\t\t}\n\t\t\treturn val\n\t\t}\n\t}\n\treturn \"a lot\"\n}\n\nfunc ApplyTemplate(str string, object interface{}) string {\n\tvar buf bytes.Buffer\n\t_ = template.Must(template.New(\"\").Parse(str)).Execute(&buf, object)\n\treturn buf.String()\n}\n\n// GetGocuiAttribute gets the gocui color attribute from the string\nfunc GetGocuiAttribute(key string) gocui.Attribute {\n\tcolorMap := map[string]gocui.Attribute{\n\t\t\"default\":   gocui.ColorDefault,\n\t\t\"black\":     gocui.ColorBlack,\n\t\t\"red\":       gocui.ColorRed,\n\t\t\"green\":     gocui.ColorGreen,\n\t\t\"yellow\":    gocui.ColorYellow,\n\t\t\"blue\":      gocui.ColorBlue,\n\t\t\"magenta\":   gocui.ColorMagenta,\n\t\t\"cyan\":      gocui.ColorCyan,\n\t\t\"white\":     gocui.ColorWhite,\n\t\t\"bold\":      gocui.AttrBold,\n\t\t\"reverse\":   gocui.AttrReverse,\n\t\t\"underline\": gocui.AttrUnderline,\n\t}\n\tvalue, present := colorMap[key]\n\tif present {\n\t\treturn value\n\t}\n\treturn gocui.ColorDefault\n}\n\n// GetColorAttribute gets the color attribute from the string\nfunc GetColorAttribute(key string) color.Attribute {\n\tcolorMap := map[string]color.Attribute{\n\t\t\"default\":   color.FgWhite,\n\t\t\"black\":     color.FgBlack,\n\t\t\"red\":       color.FgRed,\n\t\t\"green\":     color.FgGreen,\n\t\t\"yellow\":    color.FgYellow,\n\t\t\"blue\":      color.FgBlue,\n\t\t\"magenta\":   color.FgMagenta,\n\t\t\"cyan\":      color.FgCyan,\n\t\t\"white\":     color.FgWhite,\n\t\t\"bold\":      color.Bold,\n\t\t\"underline\": color.Underline,\n\t}\n\tvalue, present := colorMap[key]\n\tif present {\n\t\treturn value\n\t}\n\treturn color.FgWhite\n}\n\n// WithShortSha returns a command but with a shorter SHA. in the terminal we're all used to 10 character SHAs but under the hood they're actually 64 characters long. No need including all the characters when we're just displaying a command\nfunc WithShortSha(str string) string {\n\tsplit := strings.Split(str, \" \")\n\tfor i, word := range split {\n\t\t// good enough proxy for now\n\t\tif len(word) == 64 {\n\t\t\tsplit[i] = word[0:10]\n\t\t}\n\t}\n\treturn strings.Join(split, \" \")\n}\n\n// FormatMapItem is for displaying items in a map\nfunc FormatMapItem(padding int, k string, v interface{}) string {\n\treturn fmt.Sprintf(\"%s%s %v\\n\", strings.Repeat(\" \", padding), ColoredString(k+\":\", color.FgYellow), fmt.Sprintf(\"%v\", v))\n}\n\n// FormatMap is for displaying a map\nfunc FormatMap(padding int, m map[string]string) string {\n\tif len(m) == 0 {\n\t\treturn \"none\\n\"\n\t}\n\n\toutput := \"\\n\"\n\n\tkeys := make([]string, 0, len(m))\n\tfor key := range m {\n\t\tkeys = append(keys, key)\n\t}\n\tsort.Strings(keys)\n\tfor _, key := range keys {\n\t\toutput += FormatMapItem(padding, key, m[key])\n\t}\n\n\treturn output\n}\n\ntype multiErr []error\n\nfunc (m multiErr) Error() string {\n\tvar b bytes.Buffer\n\tb.WriteString(\"encountered multiple errors:\")\n\tfor _, err := range m {\n\t\tb.WriteString(\"\\n\\t... \" + err.Error())\n\t}\n\treturn b.String()\n}\n\nfunc CloseMany(closers []io.Closer) error {\n\terrs := make([]error, 0, len(closers))\n\tfor _, c := range closers {\n\t\terr := c.Close()\n\t\tif err != nil {\n\t\t\terrs = append(errs, err)\n\t\t}\n\t}\n\tif len(errs) > 0 {\n\t\treturn multiErr(errs)\n\t}\n\treturn nil\n}\n\nfunc SafeTruncate(str string, limit int) string {\n\tif len(str) > limit {\n\t\treturn str[0:limit]\n\t} else {\n\t\treturn str\n\t}\n}\n\nfunc IsValidHexValue(v string) bool {\n\tif len(v) != 4 && len(v) != 7 {\n\t\treturn false\n\t}\n\n\tif v[0] != '#' {\n\t\treturn false\n\t}\n\n\tfor _, char := range v[1:] {\n\t\tswitch char {\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F':\n\t\t\tcontinue\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Style used on menu items that open another menu\nfunc OpensMenuStyle(str string) string {\n\treturn ColoredString(fmt.Sprintf(\"%s...\", str), color.FgMagenta)\n}\n\n// MarshalIntoYaml gets any json-tagged data and marshal it into yaml saving original json structure.\n// Useful for structs from 3rd-party libs without yaml tags.\nfunc MarshalIntoYaml(data interface{}) ([]byte, error) {\n\treturn marshalIntoFormat(data, \"yaml\")\n}\n\nfunc marshalIntoFormat(data interface{}, format string) ([]byte, error) {\n\t// First marshal struct->json to get the resulting structure declared by json tags\n\tdataJSON, err := json.MarshalIndent(data, \"\", \"  \")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tswitch format {\n\tcase \"json\":\n\t\treturn dataJSON, err\n\tcase \"yaml\":\n\t\t// Use Unmarshal->Marshal hack to convert json into yaml with the original structure preserved\n\t\tvar dataMirror yaml.MapSlice\n\t\tif err := yaml.Unmarshal(dataJSON, &dataMirror); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn yaml.Marshal(dataMirror)\n\tdefault:\n\t\treturn nil, errors.New(fmt.Sprintf(\"Unsupported detailization format: %s\", format))\n\t}\n}\n"
  },
  {
    "path": "pkg/utils/utils_test.go",
    "content": "package utils\n\nimport (\n\t\"testing\"\n\n\t\"github.com/go-errors/errors\"\n\t\"github.com/stretchr/testify/assert\"\n)\n\n// TestSplitLines is a function.\nfunc TestSplitLines(t *testing.T) {\n\ttype scenario struct {\n\t\tmultilineString string\n\t\texpected        []string\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\t\"\",\n\t\t\t[]string{},\n\t\t},\n\t\t{\n\t\t\t\"\\n\",\n\t\t\t[]string{},\n\t\t},\n\t\t{\n\t\t\t\"hello world !\\nhello universe !\\n\",\n\t\t\t[]string{\n\t\t\t\t\"hello world !\",\n\t\t\t\t\"hello universe !\",\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\tassert.EqualValues(t, s.expected, SplitLines(s.multilineString))\n\t}\n}\n\n// TestWithPadding is a function.\nfunc TestWithPadding(t *testing.T) {\n\ttype scenario struct {\n\t\tstr      string\n\t\tpadding  int\n\t\texpected string\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\t\"hello world !\",\n\t\t\t1,\n\t\t\t\"hello world !\",\n\t\t},\n\t\t{\n\t\t\t\"hello world !\",\n\t\t\t14,\n\t\t\t\"hello world ! \",\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\tassert.EqualValues(t, s.expected, WithPadding(s.str, s.padding))\n\t}\n}\n\n// TestNormalizeLinefeeds is a function.\nfunc TestNormalizeLinefeeds(t *testing.T) {\n\ttype scenario struct {\n\t\tbyteArray []byte\n\t\texpected  []byte\n\t}\n\tscenarios := []scenario{\n\t\t{\n\t\t\t// \\r\\n\n\t\t\t[]byte{97, 115, 100, 102, 13, 10},\n\t\t\t[]byte{97, 115, 100, 102, 10},\n\t\t},\n\t\t{\n\t\t\t// bash\\r\\nblah\n\t\t\t[]byte{97, 115, 100, 102, 13, 10, 97, 115, 100, 102},\n\t\t\t[]byte{97, 115, 100, 102, 10, 97, 115, 100, 102},\n\t\t},\n\t\t{\n\t\t\t// \\r\n\t\t\t[]byte{97, 115, 100, 102, 13},\n\t\t\t[]byte{97, 115, 100, 102},\n\t\t},\n\t\t{\n\t\t\t// \\n\n\t\t\t[]byte{97, 115, 100, 102, 10},\n\t\t\t[]byte{97, 115, 100, 102, 10},\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\tassert.EqualValues(t, string(s.expected), NormalizeLinefeeds(string(s.byteArray)))\n\t}\n}\n\n// TestResolvePlaceholderString is a function.\nfunc TestResolvePlaceholderString(t *testing.T) {\n\ttype scenario struct {\n\t\ttemplateString string\n\t\targuments      map[string]string\n\t\texpected       string\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\t\"\",\n\t\t\tmap[string]string{},\n\t\t\t\"\",\n\t\t},\n\t\t{\n\t\t\t\"hello\",\n\t\t\tmap[string]string{},\n\t\t\t\"hello\",\n\t\t},\n\t\t{\n\t\t\t\"hello {{arg}}\",\n\t\t\tmap[string]string{},\n\t\t\t\"hello {{arg}}\",\n\t\t},\n\t\t{\n\t\t\t\"hello {{arg}}\",\n\t\t\tmap[string]string{\"arg\": \"there\"},\n\t\t\t\"hello there\",\n\t\t},\n\t\t{\n\t\t\t\"hello\",\n\t\t\tmap[string]string{\"arg\": \"there\"},\n\t\t\t\"hello\",\n\t\t},\n\t\t{\n\t\t\t\"{{nothing}}\",\n\t\t\tmap[string]string{\"nothing\": \"\"},\n\t\t\t\"\",\n\t\t},\n\t\t{\n\t\t\t\"{{}} {{ this }} { should not throw}} an {{{{}}}} error\",\n\t\t\tmap[string]string{\n\t\t\t\t\"blah\": \"blah\",\n\t\t\t\t\"this\": \"won't match\",\n\t\t\t},\n\t\t\t\"{{}} {{ this }} { should not throw}} an {{{{}}}} error\",\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\tassert.EqualValues(t, s.expected, ResolvePlaceholderString(s.templateString, s.arguments))\n\t}\n}\n\n// TestDisplayArraysAligned is a function.\nfunc TestDisplayArraysAligned(t *testing.T) {\n\ttype scenario struct {\n\t\tinput    [][]string\n\t\texpected bool\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\t[][]string{{\"\", \"\"}, {\"\", \"\"}},\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t[][]string{{\"\"}, {\"\", \"\"}},\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\tassert.EqualValues(t, s.expected, displayArraysAligned(s.input))\n\t}\n}\n\n// TestGetPaddedDisplayStrings is a function.\nfunc TestGetPaddedDisplayStrings(t *testing.T) {\n\ttype scenario struct {\n\t\tstringArrays [][]string\n\t\tpadWidths    []int\n\t\texpected     []string\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\t[][]string{{\"a\", \"b\"}, {\"c\", \"d\"}},\n\t\t\t[]int{1},\n\t\t\t[]string{\"a b\", \"c d\"},\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\tassert.EqualValues(t, s.expected, getPaddedDisplayStrings(s.stringArrays, s.padWidths))\n\t}\n}\n\n// TestGetPadWidths is a function.\nfunc TestGetPadWidths(t *testing.T) {\n\ttype scenario struct {\n\t\tstringArrays [][]string\n\t\texpected     []int\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\t[][]string{{\"\"}, {\"\"}},\n\t\t\t[]int{},\n\t\t},\n\t\t{\n\t\t\t[][]string{{\"a\"}, {\"\"}},\n\t\t\t[]int{},\n\t\t},\n\t\t{\n\t\t\t[][]string{{\"aa\", \"b\", \"ccc\"}, {\"c\", \"d\", \"e\"}},\n\t\t\t[]int{2, 1},\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\tassert.EqualValues(t, s.expected, getPadWidths(s.stringArrays))\n\t}\n}\n\nfunc TestRenderTable(t *testing.T) {\n\ttype scenario struct {\n\t\tinput       [][]string\n\t\texpected    string\n\t\texpectedErr error\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\tinput:       [][]string{{\"a\", \"b\"}, {\"c\", \"d\"}},\n\t\t\texpected:    \"a b\\nc d\",\n\t\t\texpectedErr: nil,\n\t\t},\n\t\t{\n\t\t\tinput:       [][]string{{\"aaaa\", \"b\"}, {\"c\", \"d\"}},\n\t\t\texpected:    \"aaaa b\\nc    d\",\n\t\t\texpectedErr: nil,\n\t\t},\n\t\t{\n\t\t\tinput:       [][]string{{\"a\"}, {\"c\", \"d\"}},\n\t\t\texpected:    \"\",\n\t\t\texpectedErr: errors.New(\"Each item must return the same number of strings to display\"),\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\toutput, err := RenderTable(s.input)\n\t\tassert.EqualValues(t, s.expected, output)\n\t\tif s.expectedErr != nil {\n\t\t\tassert.EqualError(t, err, s.expectedErr.Error())\n\t\t} else {\n\t\t\tassert.NoError(t, err)\n\t\t}\n\t}\n}\n\nfunc TestMarshalIntoFormat(t *testing.T) {\n\ttype innerData struct {\n\t\tFoo int    `json:\"foo\"`\n\t\tBar string `json:\"bar\"`\n\t\tBaz bool   `json:\"baz\"`\n\t}\n\ttype data struct {\n\t\tQux  int       `json:\"quz\"`\n\t\tQuux innerData `json:\"quux\"`\n\t}\n\n\ttype scenario struct {\n\t\tinput       interface{}\n\t\tformat      string\n\t\texpected    []byte\n\t\texpectedErr error\n\t}\n\n\tscenarios := []scenario{\n\t\t{\n\t\t\tinput:  data{1, innerData{2, \"foo\", true}},\n\t\t\tformat: \"json\",\n\t\t\texpected: []byte(`{\n  \"quz\": 1,\n  \"quux\": {\n    \"foo\": 2,\n    \"bar\": \"foo\",\n    \"baz\": true\n  }\n}`),\n\t\t\texpectedErr: nil,\n\t\t},\n\t\t{\n\t\t\tinput:  data{1, innerData{2, \"foo\", true}},\n\t\t\tformat: \"yaml\",\n\t\t\texpected: []byte(`quz: 1\nquux:\n  bar: foo\n  baz: true\n  foo: 2\n`),\n\t\t\texpectedErr: nil,\n\t\t},\n\t\t{\n\t\t\tinput:       data{1, innerData{2, \"foo\", true}},\n\t\t\tformat:      \"xml\",\n\t\t\texpected:    nil,\n\t\t\texpectedErr: errors.New(\"Unsupported detailization format: xml\"),\n\t\t},\n\t}\n\n\tfor _, s := range scenarios {\n\t\toutput, err := marshalIntoFormat(s.input, s.format)\n\t\tassert.EqualValues(t, s.expected, output)\n\t\tif s.expectedErr != nil {\n\t\t\tassert.EqualError(t, err, s.expectedErr.Error())\n\t\t} else {\n\t\t\tassert.NoError(t, err)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "scripts/bump_gocui.sh",
    "content": "# Go's proxy servers are not very up-to-date so that's why we use `GOPROXY=direct`\n# We specify the `awesome` branch to avoid the default behaviour of looking for a semver tag.\nGOPROXY=direct go get -u github.com/jesseduffield/gocui@awesome && go mod vendor && go mod tidy\n\n# Note to self if you ever want to fork a repo be sure to use this same approach: it's important to use the branch name (e.g. master)\n"
  },
  {
    "path": "scripts/bump_lazycore.sh",
    "content": "# Go's proxy servers are not very up-to-date so that's why we use `GOPROXY=direct`\n# We specify the `awesome` branch to avoid the default behaviour of looking for a semver tag.\nGOPROXY=direct go get -u github.com/jesseduffield/lazycore@master && go mod vendor && go mod tidy\n\n# Note to self if you ever want to fork a repo be sure to use this same approach: it's important to use the branch name (e.g. master)\n"
  },
  {
    "path": "scripts/cheatsheet/main.go",
    "content": "package main\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\n\t\"github.com/jesseduffield/lazydocker/pkg/cheatsheet\"\n)\n\nfunc main() {\n\tif len(os.Args) < 2 {\n\t\tlog.Fatal(\"Please provide a command: one of 'generate', 'check'\")\n\t}\n\n\tcommand := os.Args[1]\n\n\tswitch command {\n\tcase \"generate\":\n\t\tcheatsheet.Generate()\n\t\tfmt.Printf(\"\\nGenerated cheatsheets in %s\\n\", cheatsheet.GetKeybindingsDir())\n\tcase \"check\":\n\t\tcheatsheet.Check()\n\tdefault:\n\t\tlog.Fatal(\"\\nUnknown command. Expected one of 'generate', 'check'\")\n\t}\n}\n"
  },
  {
    "path": "scripts/install_update_linux.sh",
    "content": "#!/bin/bash\n\n# allow specifying different destination directory\nDIR=\"${DIR:-\"$HOME/.local/bin\"}\"\n\n# map different architecture variations to the available binaries\nARCH=$(uname -m)\ncase $ARCH in\n    i386|i686) ARCH=x86 ;;\n    armv6*) ARCH=armv6 ;;\n    armv7*) ARCH=armv7 ;;\n    aarch64*) ARCH=arm64 ;;\nesac\n\n# prepare the download URL\nGITHUB_LATEST_VERSION=$(curl -L -s -H 'Accept: application/json' https://github.com/jesseduffield/lazydocker/releases/latest | sed -e 's/.*\"tag_name\":\"\\([^\"]*\\)\".*/\\1/')\nGITHUB_FILE=\"lazydocker_${GITHUB_LATEST_VERSION//v/}_$(uname -s)_${ARCH}.tar.gz\"\nGITHUB_URL=\"https://github.com/jesseduffield/lazydocker/releases/download/${GITHUB_LATEST_VERSION}/${GITHUB_FILE}\"\n\n# install/update the local binary\ncurl -L -o lazydocker.tar.gz $GITHUB_URL\ntar xzvf lazydocker.tar.gz lazydocker\ninstall -Dm 755 lazydocker -t \"$DIR\"\nrm lazydocker lazydocker.tar.gz\n"
  },
  {
    "path": "scripts/translations/get_required_translations.go",
    "content": "package main\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"github.com/jesseduffield/lazydocker/pkg/i18n\"\n)\n\nfunc main() {\n\tfmt.Println(getOutstandingTranslations())\n}\n\n// adapted from https://github.com/a8m/reflect-examples#read-struct-tags\nfunc getOutstandingTranslations() string {\n\toutput := \"\"\n\tfor languageCode, translationSet := range i18n.GetTranslationSets() {\n\t\toutput += languageCode + \":\\n\"\n\t\tv := reflect.ValueOf(translationSet)\n\n\t\tfor i := 0; i < v.NumField(); i++ {\n\t\t\tvalue := v.Field(i).String()\n\t\t\tif value == \"\" {\n\t\t\t\toutput += v.Type().Field(i).Name + \"\\n\"\n\t\t\t}\n\t\t}\n\t\toutput += \"\\n\"\n\t}\n\treturn output\n}\n"
  },
  {
    "path": "test/Dockerfile",
    "content": "FROM alpine:latest\n\nCOPY . /app\n"
  },
  {
    "path": "test/docker-compose.yml",
    "content": "version: \"3.5\"\nservices:\n  my-service:\n    build:\n      dockerfile: Dockerfile\n      context: .\n    command: /app/print-random-stuff.sh\n    depends_on:\n      - my-service2\n    ports:\n      - 123:321\n\n  my-service2:\n    build:\n      dockerfile: Dockerfile\n      context: .\n    command: /app/print-random-stuff.sh\n    ports:\n      - 12345:12345\n\n  my-service3:\n    build:\n      dockerfile: Dockerfile\n      context: .\n    command: /app/print-random-stuff.sh\n"
  },
  {
    "path": "test/print-random-stuff.sh",
    "content": "#!/bin/sh\n\nwhile true\ndo\n  echo $((1 + $RANDOM % 10))\n  sleep 1\ndone\n"
  },
  {
    "path": "test.sh",
    "content": "#!/usr/bin/env bash\n\nset -e\necho \"\" > coverage.txt\n\nexport GOFLAGS=-mod=vendor\n\nuse_go_test=false\nif command -v gotest; then\n    use_go_test=true\nfi\n\nfor d in $( find ./* -maxdepth 10 ! -path \"./vendor*\" ! -path \"./.git*\" ! -path \"./scripts*\" -type d); do\n    if ls $d/*.go &> /dev/null; then\n        args=\"-race -coverprofile=profile.out -covermode=atomic $d\"\n        if [ \"$use_go_test\" == true ]; then\n            gotest $args\n        else\n            go test $args\n        fi\n        if [ -f profile.out ]; then\n            cat profile.out >> coverage.txt\n            rm profile.out\n        fi\n    fi\ndone\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/.gitattributes",
    "content": "* text=auto eol=lf"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/.gitignore",
    "content": ".vscode/\n\n*.exe\n\n# testing\ntestdata\n\n# go workspaces\ngo.work\ngo.work.sum\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/.golangci.yml",
    "content": "linters:\n  enable:\n    # style\n    - containedctx # struct contains a context\n    - dupl # duplicate code\n    - errname # erorrs are named correctly\n    - nolintlint # \"//nolint\" directives are properly explained\n    - revive # golint replacement\n    - unconvert # unnecessary conversions\n    - wastedassign\n\n    # bugs, performance, unused, etc ...\n    - contextcheck # function uses a non-inherited context\n    - errorlint # errors not wrapped for 1.13\n    - exhaustive # check exhaustiveness of enum switch statements\n    - gofmt # files are gofmt'ed\n    - gosec # security\n    - nilerr # returns nil even with non-nil error\n    - thelper #  test helpers without t.Helper()\n    - unparam # unused function params\n\nissues:\n  exclude-dirs:\n    - pkg/etw/sample\n\n  exclude-rules:\n    # err is very often shadowed in nested scopes\n    - linters:\n        - govet\n      text: '^shadow: declaration of \"err\" shadows declaration'\n\n    # ignore long lines for skip autogen directives\n    - linters:\n        - revive\n      text: \"^line-length-limit: \"\n      source: \"^//(go:generate|sys) \"\n\n    #TODO: remove after upgrading to go1.18\n    # ignore comment spacing for nolint and sys directives\n    - linters:\n        - revive\n      text: \"^comment-spacings: no space between comment delimiter and comment text\"\n      source: \"//(cspell:|nolint:|sys |todo)\"\n\n    # not on go 1.18 yet, so no any\n    - linters:\n        - revive\n      text: \"^use-any: since GO 1.18 'interface{}' can be replaced by 'any'\"\n\n    # allow unjustified ignores of error checks in defer statements\n    - linters:\n        - nolintlint\n      text: \"^directive `//nolint:errcheck` should provide explanation\"\n      source: '^\\s*defer '\n\n    # allow unjustified ignores of error lints for io.EOF\n    - linters:\n        - nolintlint\n      text: \"^directive `//nolint:errorlint` should provide explanation\"\n      source: '[=|!]= io.EOF'\n\n\nlinters-settings:\n  exhaustive:\n    default-signifies-exhaustive: true\n  govet:\n    enable-all: true\n    disable:\n      # struct order is often for Win32 compat\n      # also, ignore pointer bytes/GC issues for now until performance becomes an issue\n      - fieldalignment\n  nolintlint:\n    require-explanation: true\n    require-specific: true\n  revive:\n    # revive is more configurable than static check, so likely the preferred alternative to static-check\n    # (once the perf issue is solved: https://github.com/golangci/golangci-lint/issues/2997)\n    enable-all-rules:\n      true\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md\n    rules:\n      # rules with required arguments\n      - name: argument-limit\n        disabled: true\n      - name: banned-characters\n        disabled: true\n      - name: cognitive-complexity\n        disabled: true\n      - name: cyclomatic\n        disabled: true\n      - name: file-header\n        disabled: true\n      - name: function-length\n        disabled: true\n      - name: function-result-limit\n        disabled: true\n      - name: max-public-structs\n        disabled: true\n      # geneally annoying rules\n      - name: add-constant # complains about any and all strings and integers\n        disabled: true\n      - name: confusing-naming # we frequently use \"Foo()\" and \"foo()\" together\n        disabled: true\n      - name: flag-parameter # excessive, and a common idiom we use\n        disabled: true\n      - name: unhandled-error # warns over common fmt.Print* and io.Close; rely on errcheck instead\n        disabled: true\n      # general config\n      - name: line-length-limit\n        arguments:\n          - 140\n      - name: var-naming\n        arguments:\n          - []\n          - - CID\n            - CRI\n            - CTRD\n            - DACL\n            - DLL\n            - DOS\n            - ETW\n            - FSCTL\n            - GCS\n            - GMSA\n            - HCS\n            - HV\n            - IO\n            - LCOW\n            - LDAP\n            - LPAC\n            - LTSC\n            - MMIO\n            - NT\n            - OCI\n            - PMEM\n            - PWSH\n            - RX\n            - SACl\n            - SID\n            - SMB\n            - TX\n            - VHD\n            - VHDX\n            - VMID\n            - VPCI\n            - WCOW\n            - WIM\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/CODEOWNERS",
    "content": "  * @microsoft/containerplat\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015 Microsoft\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/README.md",
    "content": "# go-winio [![Build Status](https://github.com/microsoft/go-winio/actions/workflows/ci.yml/badge.svg)](https://github.com/microsoft/go-winio/actions/workflows/ci.yml)\n\nThis repository contains utilities for efficiently performing Win32 IO operations in\nGo. Currently, this is focused on accessing named pipes and other file handles, and\nfor using named pipes as a net transport.\n\nThis code relies on IO completion ports to avoid blocking IO on system threads, allowing Go\nto reuse the thread to schedule another goroutine. This limits support to Windows Vista and\nnewer operating systems. This is similar to the implementation of network sockets in Go's net\npackage.\n\nPlease see the LICENSE file for licensing information.\n\n## Contributing\n\nThis project welcomes contributions and suggestions.\nMost contributions require you to agree to a Contributor License Agreement (CLA) declaring that\nyou have the right to, and actually do, grant us the rights to use your contribution.\nFor details, visit [Microsoft CLA](https://cla.microsoft.com).\n\nWhen you submit a pull request, a CLA-bot will automatically determine whether you need to\nprovide a CLA and decorate the PR appropriately (e.g., label, comment).\nSimply follow the instructions provided by the bot.\nYou will only need to do this once across all repos using our CLA.\n\nAdditionally, the pull request pipeline requires the following steps to be performed before\nmergining.\n\n### Code Sign-Off\n\nWe require that contributors sign their commits using [`git commit --signoff`][git-commit-s]\nto certify they either authored the work themselves or otherwise have permission to use it in this project.\n\nA range of commits can be signed off using [`git rebase --signoff`][git-rebase-s].\n\nPlease see [the developer certificate](https://developercertificate.org) for more info,\nas well as to make sure that you can attest to the rules listed.\nOur CI uses the DCO Github app to ensure that all commits in a given PR are signed-off.\n\n### Linting\n\nCode must pass a linting stage, which uses [`golangci-lint`][lint].\nThe linting settings are stored in [`.golangci.yaml`](./.golangci.yaml), and can be run\nautomatically with VSCode by adding the following to your workspace or folder settings:\n\n```json\n    \"go.lintTool\": \"golangci-lint\",\n    \"go.lintOnSave\": \"package\",\n```\n\nAdditional editor [integrations options are also available][lint-ide].\n\nAlternatively, `golangci-lint` can be [installed locally][lint-install] and run from the repo root:\n\n```shell\n# use . or specify a path to only lint a package\n# to show all lint errors, use flags \"--max-issues-per-linter=0 --max-same-issues=0\"\n> golangci-lint run ./...\n```\n\n### Go Generate\n\nThe pipeline checks that auto-generated code, via `go generate`, are up to date.\n\nThis can be done for the entire repo:\n\n```shell\n> go generate ./...\n```\n\n## Code of Conduct\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or\ncontact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\n## Special Thanks\n\nThanks to [natefinch][natefinch] for the inspiration for this library.\nSee [npipe](https://github.com/natefinch/npipe) for another named pipe implementation.\n\n[lint]: https://golangci-lint.run/\n[lint-ide]: https://golangci-lint.run/usage/integrations/#editor-integration\n[lint-install]: https://golangci-lint.run/usage/install/#local-installation\n\n[git-commit-s]: https://git-scm.com/docs/git-commit#Documentation/git-commit.txt--s\n[git-rebase-s]: https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt---signoff\n\n[natefinch]: https://github.com/natefinch\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/SECURITY.md",
    "content": "<!-- BEGIN MICROSOFT SECURITY.MD V0.0.7 BLOCK -->\n\n## Security\n\nMicrosoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).\n\nIf you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.\n\n## Reporting Security Issues\n\n**Please do not report security vulnerabilities through public GitHub issues.**\n\nInstead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).\n\nIf you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com).  If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).\n\nYou should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). \n\nPlease include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:\n\n  * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)\n  * Full paths of source file(s) related to the manifestation of the issue\n  * The location of the affected source code (tag/branch/commit or direct URL)\n  * Any special configuration required to reproduce the issue\n  * Step-by-step instructions to reproduce the issue\n  * Proof-of-concept or exploit code (if possible)\n  * Impact of the issue, including how an attacker might exploit the issue\n\nThis information will help us triage your report more quickly.\n\nIf you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.\n\n## Preferred Languages\n\nWe prefer all communications to be in English.\n\n## Policy\n\nMicrosoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).\n\n<!-- END MICROSOFT SECURITY.MD BLOCK -->\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/backup.go",
    "content": "//go:build windows\n// +build windows\n\npackage winio\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"runtime\"\n\t\"unicode/utf16\"\n\n\t\"github.com/Microsoft/go-winio/internal/fs\"\n\t\"golang.org/x/sys/windows\"\n)\n\n//sys backupRead(h windows.Handle, b []byte, bytesRead *uint32, abort bool, processSecurity bool, context *uintptr) (err error) = BackupRead\n//sys backupWrite(h windows.Handle, b []byte, bytesWritten *uint32, abort bool, processSecurity bool, context *uintptr) (err error) = BackupWrite\n\nconst (\n\tBackupData = uint32(iota + 1)\n\tBackupEaData\n\tBackupSecurity\n\tBackupAlternateData\n\tBackupLink\n\tBackupPropertyData\n\tBackupObjectId //revive:disable-line:var-naming ID, not Id\n\tBackupReparseData\n\tBackupSparseBlock\n\tBackupTxfsData\n)\n\nconst (\n\tStreamSparseAttributes = uint32(8)\n)\n\n//nolint:revive // var-naming: ALL_CAPS\nconst (\n\tWRITE_DAC              = windows.WRITE_DAC\n\tWRITE_OWNER            = windows.WRITE_OWNER\n\tACCESS_SYSTEM_SECURITY = windows.ACCESS_SYSTEM_SECURITY\n)\n\n// BackupHeader represents a backup stream of a file.\ntype BackupHeader struct {\n\t//revive:disable-next-line:var-naming ID, not Id\n\tId         uint32 // The backup stream ID\n\tAttributes uint32 // Stream attributes\n\tSize       int64  // The size of the stream in bytes\n\tName       string // The name of the stream (for BackupAlternateData only).\n\tOffset     int64  // The offset of the stream in the file (for BackupSparseBlock only).\n}\n\ntype win32StreamID struct {\n\tStreamID   uint32\n\tAttributes uint32\n\tSize       uint64\n\tNameSize   uint32\n}\n\n// BackupStreamReader reads from a stream produced by the BackupRead Win32 API and produces a series\n// of BackupHeader values.\ntype BackupStreamReader struct {\n\tr         io.Reader\n\tbytesLeft int64\n}\n\n// NewBackupStreamReader produces a BackupStreamReader from any io.Reader.\nfunc NewBackupStreamReader(r io.Reader) *BackupStreamReader {\n\treturn &BackupStreamReader{r, 0}\n}\n\n// Next returns the next backup stream and prepares for calls to Read(). It skips the remainder of the current stream if\n// it was not completely read.\nfunc (r *BackupStreamReader) Next() (*BackupHeader, error) {\n\tif r.bytesLeft > 0 { //nolint:nestif // todo: flatten this\n\t\tif s, ok := r.r.(io.Seeker); ok {\n\t\t\t// Make sure Seek on io.SeekCurrent sometimes succeeds\n\t\t\t// before trying the actual seek.\n\t\t\tif _, err := s.Seek(0, io.SeekCurrent); err == nil {\n\t\t\t\tif _, err = s.Seek(r.bytesLeft, io.SeekCurrent); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tr.bytesLeft = 0\n\t\t\t}\n\t\t}\n\t\tif _, err := io.Copy(io.Discard, r); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tvar wsi win32StreamID\n\tif err := binary.Read(r.r, binary.LittleEndian, &wsi); err != nil {\n\t\treturn nil, err\n\t}\n\thdr := &BackupHeader{\n\t\tId:         wsi.StreamID,\n\t\tAttributes: wsi.Attributes,\n\t\tSize:       int64(wsi.Size),\n\t}\n\tif wsi.NameSize != 0 {\n\t\tname := make([]uint16, int(wsi.NameSize/2))\n\t\tif err := binary.Read(r.r, binary.LittleEndian, name); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\thdr.Name = windows.UTF16ToString(name)\n\t}\n\tif wsi.StreamID == BackupSparseBlock {\n\t\tif err := binary.Read(r.r, binary.LittleEndian, &hdr.Offset); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\thdr.Size -= 8\n\t}\n\tr.bytesLeft = hdr.Size\n\treturn hdr, nil\n}\n\n// Read reads from the current backup stream.\nfunc (r *BackupStreamReader) Read(b []byte) (int, error) {\n\tif r.bytesLeft == 0 {\n\t\treturn 0, io.EOF\n\t}\n\tif int64(len(b)) > r.bytesLeft {\n\t\tb = b[:r.bytesLeft]\n\t}\n\tn, err := r.r.Read(b)\n\tr.bytesLeft -= int64(n)\n\tif err == io.EOF {\n\t\terr = io.ErrUnexpectedEOF\n\t} else if r.bytesLeft == 0 && err == nil {\n\t\terr = io.EOF\n\t}\n\treturn n, err\n}\n\n// BackupStreamWriter writes a stream compatible with the BackupWrite Win32 API.\ntype BackupStreamWriter struct {\n\tw         io.Writer\n\tbytesLeft int64\n}\n\n// NewBackupStreamWriter produces a BackupStreamWriter on top of an io.Writer.\nfunc NewBackupStreamWriter(w io.Writer) *BackupStreamWriter {\n\treturn &BackupStreamWriter{w, 0}\n}\n\n// WriteHeader writes the next backup stream header and prepares for calls to Write().\nfunc (w *BackupStreamWriter) WriteHeader(hdr *BackupHeader) error {\n\tif w.bytesLeft != 0 {\n\t\treturn fmt.Errorf(\"missing %d bytes\", w.bytesLeft)\n\t}\n\tname := utf16.Encode([]rune(hdr.Name))\n\twsi := win32StreamID{\n\t\tStreamID:   hdr.Id,\n\t\tAttributes: hdr.Attributes,\n\t\tSize:       uint64(hdr.Size),\n\t\tNameSize:   uint32(len(name) * 2),\n\t}\n\tif hdr.Id == BackupSparseBlock {\n\t\t// Include space for the int64 block offset\n\t\twsi.Size += 8\n\t}\n\tif err := binary.Write(w.w, binary.LittleEndian, &wsi); err != nil {\n\t\treturn err\n\t}\n\tif len(name) != 0 {\n\t\tif err := binary.Write(w.w, binary.LittleEndian, name); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif hdr.Id == BackupSparseBlock {\n\t\tif err := binary.Write(w.w, binary.LittleEndian, hdr.Offset); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tw.bytesLeft = hdr.Size\n\treturn nil\n}\n\n// Write writes to the current backup stream.\nfunc (w *BackupStreamWriter) Write(b []byte) (int, error) {\n\tif w.bytesLeft < int64(len(b)) {\n\t\treturn 0, fmt.Errorf(\"too many bytes by %d\", int64(len(b))-w.bytesLeft)\n\t}\n\tn, err := w.w.Write(b)\n\tw.bytesLeft -= int64(n)\n\treturn n, err\n}\n\n// BackupFileReader provides an io.ReadCloser interface on top of the BackupRead Win32 API.\ntype BackupFileReader struct {\n\tf               *os.File\n\tincludeSecurity bool\n\tctx             uintptr\n}\n\n// NewBackupFileReader returns a new BackupFileReader from a file handle. If includeSecurity is true,\n// Read will attempt to read the security descriptor of the file.\nfunc NewBackupFileReader(f *os.File, includeSecurity bool) *BackupFileReader {\n\tr := &BackupFileReader{f, includeSecurity, 0}\n\treturn r\n}\n\n// Read reads a backup stream from the file by calling the Win32 API BackupRead().\nfunc (r *BackupFileReader) Read(b []byte) (int, error) {\n\tvar bytesRead uint32\n\terr := backupRead(windows.Handle(r.f.Fd()), b, &bytesRead, false, r.includeSecurity, &r.ctx)\n\tif err != nil {\n\t\treturn 0, &os.PathError{Op: \"BackupRead\", Path: r.f.Name(), Err: err}\n\t}\n\truntime.KeepAlive(r.f)\n\tif bytesRead == 0 {\n\t\treturn 0, io.EOF\n\t}\n\treturn int(bytesRead), nil\n}\n\n// Close frees Win32 resources associated with the BackupFileReader. It does not close\n// the underlying file.\nfunc (r *BackupFileReader) Close() error {\n\tif r.ctx != 0 {\n\t\t_ = backupRead(windows.Handle(r.f.Fd()), nil, nil, true, false, &r.ctx)\n\t\truntime.KeepAlive(r.f)\n\t\tr.ctx = 0\n\t}\n\treturn nil\n}\n\n// BackupFileWriter provides an io.WriteCloser interface on top of the BackupWrite Win32 API.\ntype BackupFileWriter struct {\n\tf               *os.File\n\tincludeSecurity bool\n\tctx             uintptr\n}\n\n// NewBackupFileWriter returns a new BackupFileWriter from a file handle. If includeSecurity is true,\n// Write() will attempt to restore the security descriptor from the stream.\nfunc NewBackupFileWriter(f *os.File, includeSecurity bool) *BackupFileWriter {\n\tw := &BackupFileWriter{f, includeSecurity, 0}\n\treturn w\n}\n\n// Write restores a portion of the file using the provided backup stream.\nfunc (w *BackupFileWriter) Write(b []byte) (int, error) {\n\tvar bytesWritten uint32\n\terr := backupWrite(windows.Handle(w.f.Fd()), b, &bytesWritten, false, w.includeSecurity, &w.ctx)\n\tif err != nil {\n\t\treturn 0, &os.PathError{Op: \"BackupWrite\", Path: w.f.Name(), Err: err}\n\t}\n\truntime.KeepAlive(w.f)\n\tif int(bytesWritten) != len(b) {\n\t\treturn int(bytesWritten), errors.New(\"not all bytes could be written\")\n\t}\n\treturn len(b), nil\n}\n\n// Close frees Win32 resources associated with the BackupFileWriter. It does not\n// close the underlying file.\nfunc (w *BackupFileWriter) Close() error {\n\tif w.ctx != 0 {\n\t\t_ = backupWrite(windows.Handle(w.f.Fd()), nil, nil, true, false, &w.ctx)\n\t\truntime.KeepAlive(w.f)\n\t\tw.ctx = 0\n\t}\n\treturn nil\n}\n\n// OpenForBackup opens a file or directory, potentially skipping access checks if the backup\n// or restore privileges have been acquired.\n//\n// If the file opened was a directory, it cannot be used with Readdir().\nfunc OpenForBackup(path string, access uint32, share uint32, createmode uint32) (*os.File, error) {\n\th, err := fs.CreateFile(path,\n\t\tfs.AccessMask(access),\n\t\tfs.FileShareMode(share),\n\t\tnil,\n\t\tfs.FileCreationDisposition(createmode),\n\t\tfs.FILE_FLAG_BACKUP_SEMANTICS|fs.FILE_FLAG_OPEN_REPARSE_POINT,\n\t\t0,\n\t)\n\tif err != nil {\n\t\terr = &os.PathError{Op: \"open\", Path: path, Err: err}\n\t\treturn nil, err\n\t}\n\treturn os.NewFile(uintptr(h), path), nil\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/doc.go",
    "content": "// This package provides utilities for efficiently performing Win32 IO operations in Go.\n// Currently, this package is provides support for genreal IO and management of\n//   - named pipes\n//   - files\n//   - [Hyper-V sockets]\n//\n// This code is similar to Go's [net] package, and uses IO completion ports to avoid\n// blocking IO on system threads, allowing Go to reuse the thread to schedule other goroutines.\n//\n// This limits support to Windows Vista and newer operating systems.\n//\n// Additionally, this package provides support for:\n//   - creating and managing GUIDs\n//   - writing to [ETW]\n//   - opening and manageing VHDs\n//   - parsing [Windows Image files]\n//   - auto-generating Win32 API code\n//\n// [Hyper-V sockets]: https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service\n// [ETW]: https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/event-tracing-for-windows--etw-\n// [Windows Image files]: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/work-with-windows-images\npackage winio\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/ea.go",
    "content": "package winio\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"errors\"\n)\n\ntype fileFullEaInformation struct {\n\tNextEntryOffset uint32\n\tFlags           uint8\n\tNameLength      uint8\n\tValueLength     uint16\n}\n\nvar (\n\tfileFullEaInformationSize = binary.Size(&fileFullEaInformation{})\n\n\terrInvalidEaBuffer = errors.New(\"invalid extended attribute buffer\")\n\terrEaNameTooLarge  = errors.New(\"extended attribute name too large\")\n\terrEaValueTooLarge = errors.New(\"extended attribute value too large\")\n)\n\n// ExtendedAttribute represents a single Windows EA.\ntype ExtendedAttribute struct {\n\tName  string\n\tValue []byte\n\tFlags uint8\n}\n\nfunc parseEa(b []byte) (ea ExtendedAttribute, nb []byte, err error) {\n\tvar info fileFullEaInformation\n\terr = binary.Read(bytes.NewReader(b), binary.LittleEndian, &info)\n\tif err != nil {\n\t\terr = errInvalidEaBuffer\n\t\treturn ea, nb, err\n\t}\n\n\tnameOffset := fileFullEaInformationSize\n\tnameLen := int(info.NameLength)\n\tvalueOffset := nameOffset + int(info.NameLength) + 1\n\tvalueLen := int(info.ValueLength)\n\tnextOffset := int(info.NextEntryOffset)\n\tif valueLen+valueOffset > len(b) || nextOffset < 0 || nextOffset > len(b) {\n\t\terr = errInvalidEaBuffer\n\t\treturn ea, nb, err\n\t}\n\n\tea.Name = string(b[nameOffset : nameOffset+nameLen])\n\tea.Value = b[valueOffset : valueOffset+valueLen]\n\tea.Flags = info.Flags\n\tif info.NextEntryOffset != 0 {\n\t\tnb = b[info.NextEntryOffset:]\n\t}\n\treturn ea, nb, err\n}\n\n// DecodeExtendedAttributes decodes a list of EAs from a FILE_FULL_EA_INFORMATION\n// buffer retrieved from BackupRead, ZwQueryEaFile, etc.\nfunc DecodeExtendedAttributes(b []byte) (eas []ExtendedAttribute, err error) {\n\tfor len(b) != 0 {\n\t\tea, nb, err := parseEa(b)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\teas = append(eas, ea)\n\t\tb = nb\n\t}\n\treturn eas, err\n}\n\nfunc writeEa(buf *bytes.Buffer, ea *ExtendedAttribute, last bool) error {\n\tif int(uint8(len(ea.Name))) != len(ea.Name) {\n\t\treturn errEaNameTooLarge\n\t}\n\tif int(uint16(len(ea.Value))) != len(ea.Value) {\n\t\treturn errEaValueTooLarge\n\t}\n\tentrySize := uint32(fileFullEaInformationSize + len(ea.Name) + 1 + len(ea.Value))\n\twithPadding := (entrySize + 3) &^ 3\n\tnextOffset := uint32(0)\n\tif !last {\n\t\tnextOffset = withPadding\n\t}\n\tinfo := fileFullEaInformation{\n\t\tNextEntryOffset: nextOffset,\n\t\tFlags:           ea.Flags,\n\t\tNameLength:      uint8(len(ea.Name)),\n\t\tValueLength:     uint16(len(ea.Value)),\n\t}\n\n\terr := binary.Write(buf, binary.LittleEndian, &info)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = buf.Write([]byte(ea.Name))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\terr = buf.WriteByte(0)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = buf.Write(ea.Value)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, err = buf.Write([]byte{0, 0, 0}[0 : withPadding-entrySize])\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// EncodeExtendedAttributes encodes a list of EAs into a FILE_FULL_EA_INFORMATION\n// buffer for use with BackupWrite, ZwSetEaFile, etc.\nfunc EncodeExtendedAttributes(eas []ExtendedAttribute) ([]byte, error) {\n\tvar buf bytes.Buffer\n\tfor i := range eas {\n\t\tlast := false\n\t\tif i == len(eas)-1 {\n\t\t\tlast = true\n\t\t}\n\n\t\terr := writeEa(&buf, &eas[i], last)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn buf.Bytes(), nil\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/file.go",
    "content": "//go:build windows\n// +build windows\n\npackage winio\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"runtime\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\n//sys cancelIoEx(file windows.Handle, o *windows.Overlapped) (err error) = CancelIoEx\n//sys createIoCompletionPort(file windows.Handle, port windows.Handle, key uintptr, threadCount uint32) (newport windows.Handle, err error) = CreateIoCompletionPort\n//sys getQueuedCompletionStatus(port windows.Handle, bytes *uint32, key *uintptr, o **ioOperation, timeout uint32) (err error) = GetQueuedCompletionStatus\n//sys setFileCompletionNotificationModes(h windows.Handle, flags uint8) (err error) = SetFileCompletionNotificationModes\n//sys wsaGetOverlappedResult(h windows.Handle, o *windows.Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult\n\nvar (\n\tErrFileClosed = errors.New(\"file has already been closed\")\n\tErrTimeout    = &timeoutError{}\n)\n\ntype timeoutError struct{}\n\nfunc (*timeoutError) Error() string   { return \"i/o timeout\" }\nfunc (*timeoutError) Timeout() bool   { return true }\nfunc (*timeoutError) Temporary() bool { return true }\n\ntype timeoutChan chan struct{}\n\nvar ioInitOnce sync.Once\nvar ioCompletionPort windows.Handle\n\n// ioResult contains the result of an asynchronous IO operation.\ntype ioResult struct {\n\tbytes uint32\n\terr   error\n}\n\n// ioOperation represents an outstanding asynchronous Win32 IO.\ntype ioOperation struct {\n\to  windows.Overlapped\n\tch chan ioResult\n}\n\nfunc initIO() {\n\th, err := createIoCompletionPort(windows.InvalidHandle, 0, 0, 0xffffffff)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tioCompletionPort = h\n\tgo ioCompletionProcessor(h)\n}\n\n// win32File implements Reader, Writer, and Closer on a Win32 handle without blocking in a syscall.\n// It takes ownership of this handle and will close it if it is garbage collected.\ntype win32File struct {\n\thandle        windows.Handle\n\twg            sync.WaitGroup\n\twgLock        sync.RWMutex\n\tclosing       atomic.Bool\n\tsocket        bool\n\treadDeadline  deadlineHandler\n\twriteDeadline deadlineHandler\n}\n\ntype deadlineHandler struct {\n\tsetLock     sync.Mutex\n\tchannel     timeoutChan\n\tchannelLock sync.RWMutex\n\ttimer       *time.Timer\n\ttimedout    atomic.Bool\n}\n\n// makeWin32File makes a new win32File from an existing file handle.\nfunc makeWin32File(h windows.Handle) (*win32File, error) {\n\tf := &win32File{handle: h}\n\tioInitOnce.Do(initIO)\n\t_, err := createIoCompletionPort(h, ioCompletionPort, 0, 0xffffffff)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = setFileCompletionNotificationModes(h, windows.FILE_SKIP_COMPLETION_PORT_ON_SUCCESS|windows.FILE_SKIP_SET_EVENT_ON_HANDLE)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tf.readDeadline.channel = make(timeoutChan)\n\tf.writeDeadline.channel = make(timeoutChan)\n\treturn f, nil\n}\n\n// Deprecated: use NewOpenFile instead.\nfunc MakeOpenFile(h syscall.Handle) (io.ReadWriteCloser, error) {\n\treturn NewOpenFile(windows.Handle(h))\n}\n\nfunc NewOpenFile(h windows.Handle) (io.ReadWriteCloser, error) {\n\t// If we return the result of makeWin32File directly, it can result in an\n\t// interface-wrapped nil, rather than a nil interface value.\n\tf, err := makeWin32File(h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn f, nil\n}\n\n// closeHandle closes the resources associated with a Win32 handle.\nfunc (f *win32File) closeHandle() {\n\tf.wgLock.Lock()\n\t// Atomically set that we are closing, releasing the resources only once.\n\tif !f.closing.Swap(true) {\n\t\tf.wgLock.Unlock()\n\t\t// cancel all IO and wait for it to complete\n\t\t_ = cancelIoEx(f.handle, nil)\n\t\tf.wg.Wait()\n\t\t// at this point, no new IO can start\n\t\twindows.Close(f.handle)\n\t\tf.handle = 0\n\t} else {\n\t\tf.wgLock.Unlock()\n\t}\n}\n\n// Close closes a win32File.\nfunc (f *win32File) Close() error {\n\tf.closeHandle()\n\treturn nil\n}\n\n// IsClosed checks if the file has been closed.\nfunc (f *win32File) IsClosed() bool {\n\treturn f.closing.Load()\n}\n\n// prepareIO prepares for a new IO operation.\n// The caller must call f.wg.Done() when the IO is finished, prior to Close() returning.\nfunc (f *win32File) prepareIO() (*ioOperation, error) {\n\tf.wgLock.RLock()\n\tif f.closing.Load() {\n\t\tf.wgLock.RUnlock()\n\t\treturn nil, ErrFileClosed\n\t}\n\tf.wg.Add(1)\n\tf.wgLock.RUnlock()\n\tc := &ioOperation{}\n\tc.ch = make(chan ioResult)\n\treturn c, nil\n}\n\n// ioCompletionProcessor processes completed async IOs forever.\nfunc ioCompletionProcessor(h windows.Handle) {\n\tfor {\n\t\tvar bytes uint32\n\t\tvar key uintptr\n\t\tvar op *ioOperation\n\t\terr := getQueuedCompletionStatus(h, &bytes, &key, &op, windows.INFINITE)\n\t\tif op == nil {\n\t\t\tpanic(err)\n\t\t}\n\t\top.ch <- ioResult{bytes, err}\n\t}\n}\n\n// todo: helsaawy - create an asyncIO version that takes a context\n\n// asyncIO processes the return value from ReadFile or WriteFile, blocking until\n// the operation has actually completed.\nfunc (f *win32File) asyncIO(c *ioOperation, d *deadlineHandler, bytes uint32, err error) (int, error) {\n\tif err != windows.ERROR_IO_PENDING { //nolint:errorlint // err is Errno\n\t\treturn int(bytes), err\n\t}\n\n\tif f.closing.Load() {\n\t\t_ = cancelIoEx(f.handle, &c.o)\n\t}\n\n\tvar timeout timeoutChan\n\tif d != nil {\n\t\td.channelLock.Lock()\n\t\ttimeout = d.channel\n\t\td.channelLock.Unlock()\n\t}\n\n\tvar r ioResult\n\tselect {\n\tcase r = <-c.ch:\n\t\terr = r.err\n\t\tif err == windows.ERROR_OPERATION_ABORTED { //nolint:errorlint // err is Errno\n\t\t\tif f.closing.Load() {\n\t\t\t\terr = ErrFileClosed\n\t\t\t}\n\t\t} else if err != nil && f.socket {\n\t\t\t// err is from Win32. Query the overlapped structure to get the winsock error.\n\t\t\tvar bytes, flags uint32\n\t\t\terr = wsaGetOverlappedResult(f.handle, &c.o, &bytes, false, &flags)\n\t\t}\n\tcase <-timeout:\n\t\t_ = cancelIoEx(f.handle, &c.o)\n\t\tr = <-c.ch\n\t\terr = r.err\n\t\tif err == windows.ERROR_OPERATION_ABORTED { //nolint:errorlint // err is Errno\n\t\t\terr = ErrTimeout\n\t\t}\n\t}\n\n\t// runtime.KeepAlive is needed, as c is passed via native\n\t// code to ioCompletionProcessor, c must remain alive\n\t// until the channel read is complete.\n\t// todo: (de)allocate *ioOperation via win32 heap functions, instead of needing to KeepAlive?\n\truntime.KeepAlive(c)\n\treturn int(r.bytes), err\n}\n\n// Read reads from a file handle.\nfunc (f *win32File) Read(b []byte) (int, error) {\n\tc, err := f.prepareIO()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tdefer f.wg.Done()\n\n\tif f.readDeadline.timedout.Load() {\n\t\treturn 0, ErrTimeout\n\t}\n\n\tvar bytes uint32\n\terr = windows.ReadFile(f.handle, b, &bytes, &c.o)\n\tn, err := f.asyncIO(c, &f.readDeadline, bytes, err)\n\truntime.KeepAlive(b)\n\n\t// Handle EOF conditions.\n\tif err == nil && n == 0 && len(b) != 0 {\n\t\treturn 0, io.EOF\n\t} else if err == windows.ERROR_BROKEN_PIPE { //nolint:errorlint // err is Errno\n\t\treturn 0, io.EOF\n\t}\n\treturn n, err\n}\n\n// Write writes to a file handle.\nfunc (f *win32File) Write(b []byte) (int, error) {\n\tc, err := f.prepareIO()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tdefer f.wg.Done()\n\n\tif f.writeDeadline.timedout.Load() {\n\t\treturn 0, ErrTimeout\n\t}\n\n\tvar bytes uint32\n\terr = windows.WriteFile(f.handle, b, &bytes, &c.o)\n\tn, err := f.asyncIO(c, &f.writeDeadline, bytes, err)\n\truntime.KeepAlive(b)\n\treturn n, err\n}\n\nfunc (f *win32File) SetReadDeadline(deadline time.Time) error {\n\treturn f.readDeadline.set(deadline)\n}\n\nfunc (f *win32File) SetWriteDeadline(deadline time.Time) error {\n\treturn f.writeDeadline.set(deadline)\n}\n\nfunc (f *win32File) Flush() error {\n\treturn windows.FlushFileBuffers(f.handle)\n}\n\nfunc (f *win32File) Fd() uintptr {\n\treturn uintptr(f.handle)\n}\n\nfunc (d *deadlineHandler) set(deadline time.Time) error {\n\td.setLock.Lock()\n\tdefer d.setLock.Unlock()\n\n\tif d.timer != nil {\n\t\tif !d.timer.Stop() {\n\t\t\t<-d.channel\n\t\t}\n\t\td.timer = nil\n\t}\n\td.timedout.Store(false)\n\n\tselect {\n\tcase <-d.channel:\n\t\td.channelLock.Lock()\n\t\td.channel = make(chan struct{})\n\t\td.channelLock.Unlock()\n\tdefault:\n\t}\n\n\tif deadline.IsZero() {\n\t\treturn nil\n\t}\n\n\ttimeoutIO := func() {\n\t\td.timedout.Store(true)\n\t\tclose(d.channel)\n\t}\n\n\tnow := time.Now()\n\tduration := deadline.Sub(now)\n\tif deadline.After(now) {\n\t\t// Deadline is in the future, set a timer to wait\n\t\td.timer = time.AfterFunc(duration, timeoutIO)\n\t} else {\n\t\t// Deadline is in the past. Cancel all pending IO now.\n\t\ttimeoutIO()\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/fileinfo.go",
    "content": "//go:build windows\n// +build windows\n\npackage winio\n\nimport (\n\t\"os\"\n\t\"runtime\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\n// FileBasicInfo contains file access time and file attributes information.\ntype FileBasicInfo struct {\n\tCreationTime, LastAccessTime, LastWriteTime, ChangeTime windows.Filetime\n\tFileAttributes                                          uint32\n\t_                                                       uint32 // padding\n}\n\n// alignedFileBasicInfo is a FileBasicInfo, but aligned to uint64 by containing\n// uint64 rather than windows.Filetime. Filetime contains two uint32s. uint64\n// alignment is necessary to pass this as FILE_BASIC_INFO.\ntype alignedFileBasicInfo struct {\n\tCreationTime, LastAccessTime, LastWriteTime, ChangeTime uint64\n\tFileAttributes                                          uint32\n\t_                                                       uint32 // padding\n}\n\n// GetFileBasicInfo retrieves times and attributes for a file.\nfunc GetFileBasicInfo(f *os.File) (*FileBasicInfo, error) {\n\tbi := &alignedFileBasicInfo{}\n\tif err := windows.GetFileInformationByHandleEx(\n\t\twindows.Handle(f.Fd()),\n\t\twindows.FileBasicInfo,\n\t\t(*byte)(unsafe.Pointer(bi)),\n\t\tuint32(unsafe.Sizeof(*bi)),\n\t); err != nil {\n\t\treturn nil, &os.PathError{Op: \"GetFileInformationByHandleEx\", Path: f.Name(), Err: err}\n\t}\n\truntime.KeepAlive(f)\n\t// Reinterpret the alignedFileBasicInfo as a FileBasicInfo so it matches the\n\t// public API of this module. The data may be unnecessarily aligned.\n\treturn (*FileBasicInfo)(unsafe.Pointer(bi)), nil\n}\n\n// SetFileBasicInfo sets times and attributes for a file.\nfunc SetFileBasicInfo(f *os.File, bi *FileBasicInfo) error {\n\t// Create an alignedFileBasicInfo based on a FileBasicInfo. The copy is\n\t// suitable to pass to GetFileInformationByHandleEx.\n\tbiAligned := *(*alignedFileBasicInfo)(unsafe.Pointer(bi))\n\tif err := windows.SetFileInformationByHandle(\n\t\twindows.Handle(f.Fd()),\n\t\twindows.FileBasicInfo,\n\t\t(*byte)(unsafe.Pointer(&biAligned)),\n\t\tuint32(unsafe.Sizeof(biAligned)),\n\t); err != nil {\n\t\treturn &os.PathError{Op: \"SetFileInformationByHandle\", Path: f.Name(), Err: err}\n\t}\n\truntime.KeepAlive(f)\n\treturn nil\n}\n\n// FileStandardInfo contains extended information for the file.\n// FILE_STANDARD_INFO in WinBase.h\n// https://docs.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-file_standard_info\ntype FileStandardInfo struct {\n\tAllocationSize, EndOfFile int64\n\tNumberOfLinks             uint32\n\tDeletePending, Directory  bool\n}\n\n// GetFileStandardInfo retrieves ended information for the file.\nfunc GetFileStandardInfo(f *os.File) (*FileStandardInfo, error) {\n\tsi := &FileStandardInfo{}\n\tif err := windows.GetFileInformationByHandleEx(windows.Handle(f.Fd()),\n\t\twindows.FileStandardInfo,\n\t\t(*byte)(unsafe.Pointer(si)),\n\t\tuint32(unsafe.Sizeof(*si))); err != nil {\n\t\treturn nil, &os.PathError{Op: \"GetFileInformationByHandleEx\", Path: f.Name(), Err: err}\n\t}\n\truntime.KeepAlive(f)\n\treturn si, nil\n}\n\n// FileIDInfo contains the volume serial number and file ID for a file. This pair should be\n// unique on a system.\ntype FileIDInfo struct {\n\tVolumeSerialNumber uint64\n\tFileID             [16]byte\n}\n\n// GetFileID retrieves the unique (volume, file ID) pair for a file.\nfunc GetFileID(f *os.File) (*FileIDInfo, error) {\n\tfileID := &FileIDInfo{}\n\tif err := windows.GetFileInformationByHandleEx(\n\t\twindows.Handle(f.Fd()),\n\t\twindows.FileIdInfo,\n\t\t(*byte)(unsafe.Pointer(fileID)),\n\t\tuint32(unsafe.Sizeof(*fileID)),\n\t); err != nil {\n\t\treturn nil, &os.PathError{Op: \"GetFileInformationByHandleEx\", Path: f.Name(), Err: err}\n\t}\n\truntime.KeepAlive(f)\n\treturn fileID, nil\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/hvsock.go",
    "content": "//go:build windows\n// +build windows\n\npackage winio\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"os\"\n\t\"time\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n\n\t\"github.com/Microsoft/go-winio/internal/socket\"\n\t\"github.com/Microsoft/go-winio/pkg/guid\"\n)\n\nconst afHVSock = 34 // AF_HYPERV\n\n// Well known Service and VM IDs\n// https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service#vmid-wildcards\n\n// HvsockGUIDWildcard is the wildcard VmId for accepting connections from all partitions.\nfunc HvsockGUIDWildcard() guid.GUID { // 00000000-0000-0000-0000-000000000000\n\treturn guid.GUID{}\n}\n\n// HvsockGUIDBroadcast is the wildcard VmId for broadcasting sends to all partitions.\nfunc HvsockGUIDBroadcast() guid.GUID { // ffffffff-ffff-ffff-ffff-ffffffffffff\n\treturn guid.GUID{\n\t\tData1: 0xffffffff,\n\t\tData2: 0xffff,\n\t\tData3: 0xffff,\n\t\tData4: [8]uint8{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},\n\t}\n}\n\n// HvsockGUIDLoopback is the Loopback VmId for accepting connections to the same partition as the connector.\nfunc HvsockGUIDLoopback() guid.GUID { // e0e16197-dd56-4a10-9195-5ee7a155a838\n\treturn guid.GUID{\n\t\tData1: 0xe0e16197,\n\t\tData2: 0xdd56,\n\t\tData3: 0x4a10,\n\t\tData4: [8]uint8{0x91, 0x95, 0x5e, 0xe7, 0xa1, 0x55, 0xa8, 0x38},\n\t}\n}\n\n// HvsockGUIDSiloHost is the address of a silo's host partition:\n//   - The silo host of a hosted silo is the utility VM.\n//   - The silo host of a silo on a physical host is the physical host.\nfunc HvsockGUIDSiloHost() guid.GUID { // 36bd0c5c-7276-4223-88ba-7d03b654c568\n\treturn guid.GUID{\n\t\tData1: 0x36bd0c5c,\n\t\tData2: 0x7276,\n\t\tData3: 0x4223,\n\t\tData4: [8]byte{0x88, 0xba, 0x7d, 0x03, 0xb6, 0x54, 0xc5, 0x68},\n\t}\n}\n\n// HvsockGUIDChildren is the wildcard VmId for accepting connections from the connector's child partitions.\nfunc HvsockGUIDChildren() guid.GUID { // 90db8b89-0d35-4f79-8ce9-49ea0ac8b7cd\n\treturn guid.GUID{\n\t\tData1: 0x90db8b89,\n\t\tData2: 0xd35,\n\t\tData3: 0x4f79,\n\t\tData4: [8]uint8{0x8c, 0xe9, 0x49, 0xea, 0xa, 0xc8, 0xb7, 0xcd},\n\t}\n}\n\n// HvsockGUIDParent is the wildcard VmId for accepting connections from the connector's parent partition.\n// Listening on this VmId accepts connection from:\n//   - Inside silos: silo host partition.\n//   - Inside hosted silo: host of the VM.\n//   - Inside VM: VM host.\n//   - Physical host: Not supported.\nfunc HvsockGUIDParent() guid.GUID { // a42e7cda-d03f-480c-9cc2-a4de20abb878\n\treturn guid.GUID{\n\t\tData1: 0xa42e7cda,\n\t\tData2: 0xd03f,\n\t\tData3: 0x480c,\n\t\tData4: [8]uint8{0x9c, 0xc2, 0xa4, 0xde, 0x20, 0xab, 0xb8, 0x78},\n\t}\n}\n\n// hvsockVsockServiceTemplate is the Service GUID used for the VSOCK protocol.\nfunc hvsockVsockServiceTemplate() guid.GUID { // 00000000-facb-11e6-bd58-64006a7986d3\n\treturn guid.GUID{\n\t\tData2: 0xfacb,\n\t\tData3: 0x11e6,\n\t\tData4: [8]uint8{0xbd, 0x58, 0x64, 0x00, 0x6a, 0x79, 0x86, 0xd3},\n\t}\n}\n\n// An HvsockAddr is an address for a AF_HYPERV socket.\ntype HvsockAddr struct {\n\tVMID      guid.GUID\n\tServiceID guid.GUID\n}\n\ntype rawHvsockAddr struct {\n\tFamily    uint16\n\t_         uint16\n\tVMID      guid.GUID\n\tServiceID guid.GUID\n}\n\nvar _ socket.RawSockaddr = &rawHvsockAddr{}\n\n// Network returns the address's network name, \"hvsock\".\nfunc (*HvsockAddr) Network() string {\n\treturn \"hvsock\"\n}\n\nfunc (addr *HvsockAddr) String() string {\n\treturn fmt.Sprintf(\"%s:%s\", &addr.VMID, &addr.ServiceID)\n}\n\n// VsockServiceID returns an hvsock service ID corresponding to the specified AF_VSOCK port.\nfunc VsockServiceID(port uint32) guid.GUID {\n\tg := hvsockVsockServiceTemplate() // make a copy\n\tg.Data1 = port\n\treturn g\n}\n\nfunc (addr *HvsockAddr) raw() rawHvsockAddr {\n\treturn rawHvsockAddr{\n\t\tFamily:    afHVSock,\n\t\tVMID:      addr.VMID,\n\t\tServiceID: addr.ServiceID,\n\t}\n}\n\nfunc (addr *HvsockAddr) fromRaw(raw *rawHvsockAddr) {\n\taddr.VMID = raw.VMID\n\taddr.ServiceID = raw.ServiceID\n}\n\n// Sockaddr returns a pointer to and the size of this struct.\n//\n// Implements the [socket.RawSockaddr] interface, and allows use in\n// [socket.Bind] and [socket.ConnectEx].\nfunc (r *rawHvsockAddr) Sockaddr() (unsafe.Pointer, int32, error) {\n\treturn unsafe.Pointer(r), int32(unsafe.Sizeof(rawHvsockAddr{})), nil\n}\n\n// Sockaddr interface allows use with `sockets.Bind()` and `.ConnectEx()`.\nfunc (r *rawHvsockAddr) FromBytes(b []byte) error {\n\tn := int(unsafe.Sizeof(rawHvsockAddr{}))\n\n\tif len(b) < n {\n\t\treturn fmt.Errorf(\"got %d, want %d: %w\", len(b), n, socket.ErrBufferSize)\n\t}\n\n\tcopy(unsafe.Slice((*byte)(unsafe.Pointer(r)), n), b[:n])\n\tif r.Family != afHVSock {\n\t\treturn fmt.Errorf(\"got %d, want %d: %w\", r.Family, afHVSock, socket.ErrAddrFamily)\n\t}\n\n\treturn nil\n}\n\n// HvsockListener is a socket listener for the AF_HYPERV address family.\ntype HvsockListener struct {\n\tsock *win32File\n\taddr HvsockAddr\n}\n\nvar _ net.Listener = &HvsockListener{}\n\n// HvsockConn is a connected socket of the AF_HYPERV address family.\ntype HvsockConn struct {\n\tsock          *win32File\n\tlocal, remote HvsockAddr\n}\n\nvar _ net.Conn = &HvsockConn{}\n\nfunc newHVSocket() (*win32File, error) {\n\tfd, err := windows.Socket(afHVSock, windows.SOCK_STREAM, 1)\n\tif err != nil {\n\t\treturn nil, os.NewSyscallError(\"socket\", err)\n\t}\n\tf, err := makeWin32File(fd)\n\tif err != nil {\n\t\twindows.Close(fd)\n\t\treturn nil, err\n\t}\n\tf.socket = true\n\treturn f, nil\n}\n\n// ListenHvsock listens for connections on the specified hvsock address.\nfunc ListenHvsock(addr *HvsockAddr) (_ *HvsockListener, err error) {\n\tl := &HvsockListener{addr: *addr}\n\n\tvar sock *win32File\n\tsock, err = newHVSocket()\n\tif err != nil {\n\t\treturn nil, l.opErr(\"listen\", err)\n\t}\n\tdefer func() {\n\t\tif err != nil {\n\t\t\t_ = sock.Close()\n\t\t}\n\t}()\n\n\tsa := addr.raw()\n\terr = socket.Bind(sock.handle, &sa)\n\tif err != nil {\n\t\treturn nil, l.opErr(\"listen\", os.NewSyscallError(\"socket\", err))\n\t}\n\terr = windows.Listen(sock.handle, 16)\n\tif err != nil {\n\t\treturn nil, l.opErr(\"listen\", os.NewSyscallError(\"listen\", err))\n\t}\n\treturn &HvsockListener{sock: sock, addr: *addr}, nil\n}\n\nfunc (l *HvsockListener) opErr(op string, err error) error {\n\treturn &net.OpError{Op: op, Net: \"hvsock\", Addr: &l.addr, Err: err}\n}\n\n// Addr returns the listener's network address.\nfunc (l *HvsockListener) Addr() net.Addr {\n\treturn &l.addr\n}\n\n// Accept waits for the next connection and returns it.\nfunc (l *HvsockListener) Accept() (_ net.Conn, err error) {\n\tsock, err := newHVSocket()\n\tif err != nil {\n\t\treturn nil, l.opErr(\"accept\", err)\n\t}\n\tdefer func() {\n\t\tif sock != nil {\n\t\t\tsock.Close()\n\t\t}\n\t}()\n\tc, err := l.sock.prepareIO()\n\tif err != nil {\n\t\treturn nil, l.opErr(\"accept\", err)\n\t}\n\tdefer l.sock.wg.Done()\n\n\t// AcceptEx, per documentation, requires an extra 16 bytes per address.\n\t//\n\t// https://docs.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-acceptex\n\tconst addrlen = uint32(16 + unsafe.Sizeof(rawHvsockAddr{}))\n\tvar addrbuf [addrlen * 2]byte\n\n\tvar bytes uint32\n\terr = windows.AcceptEx(l.sock.handle, sock.handle, &addrbuf[0], 0 /* rxdatalen */, addrlen, addrlen, &bytes, &c.o)\n\tif _, err = l.sock.asyncIO(c, nil, bytes, err); err != nil {\n\t\treturn nil, l.opErr(\"accept\", os.NewSyscallError(\"acceptex\", err))\n\t}\n\n\tconn := &HvsockConn{\n\t\tsock: sock,\n\t}\n\t// The local address returned in the AcceptEx buffer is the same as the Listener socket's\n\t// address. However, the service GUID reported by GetSockName is different from the Listeners\n\t// socket, and is sometimes the same as the local address of the socket that dialed the\n\t// address, with the service GUID.Data1 incremented, but othertimes is different.\n\t// todo: does the local address matter? is the listener's address or the actual address appropriate?\n\tconn.local.fromRaw((*rawHvsockAddr)(unsafe.Pointer(&addrbuf[0])))\n\tconn.remote.fromRaw((*rawHvsockAddr)(unsafe.Pointer(&addrbuf[addrlen])))\n\n\t// initialize the accepted socket and update its properties with those of the listening socket\n\tif err = windows.Setsockopt(sock.handle,\n\t\twindows.SOL_SOCKET, windows.SO_UPDATE_ACCEPT_CONTEXT,\n\t\t(*byte)(unsafe.Pointer(&l.sock.handle)), int32(unsafe.Sizeof(l.sock.handle))); err != nil {\n\t\treturn nil, conn.opErr(\"accept\", os.NewSyscallError(\"setsockopt\", err))\n\t}\n\n\tsock = nil\n\treturn conn, nil\n}\n\n// Close closes the listener, causing any pending Accept calls to fail.\nfunc (l *HvsockListener) Close() error {\n\treturn l.sock.Close()\n}\n\n// HvsockDialer configures and dials a Hyper-V Socket (ie, [HvsockConn]).\ntype HvsockDialer struct {\n\t// Deadline is the time the Dial operation must connect before erroring.\n\tDeadline time.Time\n\n\t// Retries is the number of additional connects to try if the connection times out, is refused,\n\t// or the host is unreachable\n\tRetries uint\n\n\t// RetryWait is the time to wait after a connection error to retry\n\tRetryWait time.Duration\n\n\trt *time.Timer // redial wait timer\n}\n\n// Dial the Hyper-V socket at addr.\n//\n// See [HvsockDialer.Dial] for more information.\nfunc Dial(ctx context.Context, addr *HvsockAddr) (conn *HvsockConn, err error) {\n\treturn (&HvsockDialer{}).Dial(ctx, addr)\n}\n\n// Dial attempts to connect to the Hyper-V socket at addr, and returns a connection if successful.\n// Will attempt (HvsockDialer).Retries if dialing fails, waiting (HvsockDialer).RetryWait between\n// retries.\n//\n// Dialing can be cancelled either by providing (HvsockDialer).Deadline, or cancelling ctx.\nfunc (d *HvsockDialer) Dial(ctx context.Context, addr *HvsockAddr) (conn *HvsockConn, err error) {\n\top := \"dial\"\n\t// create the conn early to use opErr()\n\tconn = &HvsockConn{\n\t\tremote: *addr,\n\t}\n\n\tif !d.Deadline.IsZero() {\n\t\tvar cancel context.CancelFunc\n\t\tctx, cancel = context.WithDeadline(ctx, d.Deadline)\n\t\tdefer cancel()\n\t}\n\n\t// preemptive timeout/cancellation check\n\tif err = ctx.Err(); err != nil {\n\t\treturn nil, conn.opErr(op, err)\n\t}\n\n\tsock, err := newHVSocket()\n\tif err != nil {\n\t\treturn nil, conn.opErr(op, err)\n\t}\n\tdefer func() {\n\t\tif sock != nil {\n\t\t\tsock.Close()\n\t\t}\n\t}()\n\n\tsa := addr.raw()\n\terr = socket.Bind(sock.handle, &sa)\n\tif err != nil {\n\t\treturn nil, conn.opErr(op, os.NewSyscallError(\"bind\", err))\n\t}\n\n\tc, err := sock.prepareIO()\n\tif err != nil {\n\t\treturn nil, conn.opErr(op, err)\n\t}\n\tdefer sock.wg.Done()\n\tvar bytes uint32\n\tfor i := uint(0); i <= d.Retries; i++ {\n\t\terr = socket.ConnectEx(\n\t\t\tsock.handle,\n\t\t\t&sa,\n\t\t\tnil, // sendBuf\n\t\t\t0,   // sendDataLen\n\t\t\t&bytes,\n\t\t\t(*windows.Overlapped)(unsafe.Pointer(&c.o)))\n\t\t_, err = sock.asyncIO(c, nil, bytes, err)\n\t\tif i < d.Retries && canRedial(err) {\n\t\t\tif err = d.redialWait(ctx); err == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tbreak\n\t}\n\tif err != nil {\n\t\treturn nil, conn.opErr(op, os.NewSyscallError(\"connectex\", err))\n\t}\n\n\t// update the connection properties, so shutdown can be used\n\tif err = windows.Setsockopt(\n\t\tsock.handle,\n\t\twindows.SOL_SOCKET,\n\t\twindows.SO_UPDATE_CONNECT_CONTEXT,\n\t\tnil, // optvalue\n\t\t0,   // optlen\n\t); err != nil {\n\t\treturn nil, conn.opErr(op, os.NewSyscallError(\"setsockopt\", err))\n\t}\n\n\t// get the local name\n\tvar sal rawHvsockAddr\n\terr = socket.GetSockName(sock.handle, &sal)\n\tif err != nil {\n\t\treturn nil, conn.opErr(op, os.NewSyscallError(\"getsockname\", err))\n\t}\n\tconn.local.fromRaw(&sal)\n\n\t// one last check for timeout, since asyncIO doesn't check the context\n\tif err = ctx.Err(); err != nil {\n\t\treturn nil, conn.opErr(op, err)\n\t}\n\n\tconn.sock = sock\n\tsock = nil\n\n\treturn conn, nil\n}\n\n// redialWait waits before attempting to redial, resetting the timer as appropriate.\nfunc (d *HvsockDialer) redialWait(ctx context.Context) (err error) {\n\tif d.RetryWait == 0 {\n\t\treturn nil\n\t}\n\n\tif d.rt == nil {\n\t\td.rt = time.NewTimer(d.RetryWait)\n\t} else {\n\t\t// should already be stopped and drained\n\t\td.rt.Reset(d.RetryWait)\n\t}\n\n\tselect {\n\tcase <-ctx.Done():\n\tcase <-d.rt.C:\n\t\treturn nil\n\t}\n\n\t// stop and drain the timer\n\tif !d.rt.Stop() {\n\t\t<-d.rt.C\n\t}\n\treturn ctx.Err()\n}\n\n// assumes error is a plain, unwrapped windows.Errno provided by direct syscall.\nfunc canRedial(err error) bool {\n\t//nolint:errorlint // guaranteed to be an Errno\n\tswitch err {\n\tcase windows.WSAECONNREFUSED, windows.WSAENETUNREACH, windows.WSAETIMEDOUT,\n\t\twindows.ERROR_CONNECTION_REFUSED, windows.ERROR_CONNECTION_UNAVAIL:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (conn *HvsockConn) opErr(op string, err error) error {\n\t// translate from \"file closed\" to \"socket closed\"\n\tif errors.Is(err, ErrFileClosed) {\n\t\terr = socket.ErrSocketClosed\n\t}\n\treturn &net.OpError{Op: op, Net: \"hvsock\", Source: &conn.local, Addr: &conn.remote, Err: err}\n}\n\nfunc (conn *HvsockConn) Read(b []byte) (int, error) {\n\tc, err := conn.sock.prepareIO()\n\tif err != nil {\n\t\treturn 0, conn.opErr(\"read\", err)\n\t}\n\tdefer conn.sock.wg.Done()\n\tbuf := windows.WSABuf{Buf: &b[0], Len: uint32(len(b))}\n\tvar flags, bytes uint32\n\terr = windows.WSARecv(conn.sock.handle, &buf, 1, &bytes, &flags, &c.o, nil)\n\tn, err := conn.sock.asyncIO(c, &conn.sock.readDeadline, bytes, err)\n\tif err != nil {\n\t\tvar eno windows.Errno\n\t\tif errors.As(err, &eno) {\n\t\t\terr = os.NewSyscallError(\"wsarecv\", eno)\n\t\t}\n\t\treturn 0, conn.opErr(\"read\", err)\n\t} else if n == 0 {\n\t\terr = io.EOF\n\t}\n\treturn n, err\n}\n\nfunc (conn *HvsockConn) Write(b []byte) (int, error) {\n\tt := 0\n\tfor len(b) != 0 {\n\t\tn, err := conn.write(b)\n\t\tif err != nil {\n\t\t\treturn t + n, err\n\t\t}\n\t\tt += n\n\t\tb = b[n:]\n\t}\n\treturn t, nil\n}\n\nfunc (conn *HvsockConn) write(b []byte) (int, error) {\n\tc, err := conn.sock.prepareIO()\n\tif err != nil {\n\t\treturn 0, conn.opErr(\"write\", err)\n\t}\n\tdefer conn.sock.wg.Done()\n\tbuf := windows.WSABuf{Buf: &b[0], Len: uint32(len(b))}\n\tvar bytes uint32\n\terr = windows.WSASend(conn.sock.handle, &buf, 1, &bytes, 0, &c.o, nil)\n\tn, err := conn.sock.asyncIO(c, &conn.sock.writeDeadline, bytes, err)\n\tif err != nil {\n\t\tvar eno windows.Errno\n\t\tif errors.As(err, &eno) {\n\t\t\terr = os.NewSyscallError(\"wsasend\", eno)\n\t\t}\n\t\treturn 0, conn.opErr(\"write\", err)\n\t}\n\treturn n, err\n}\n\n// Close closes the socket connection, failing any pending read or write calls.\nfunc (conn *HvsockConn) Close() error {\n\treturn conn.sock.Close()\n}\n\nfunc (conn *HvsockConn) IsClosed() bool {\n\treturn conn.sock.IsClosed()\n}\n\n// shutdown disables sending or receiving on a socket.\nfunc (conn *HvsockConn) shutdown(how int) error {\n\tif conn.IsClosed() {\n\t\treturn socket.ErrSocketClosed\n\t}\n\n\terr := windows.Shutdown(conn.sock.handle, how)\n\tif err != nil {\n\t\t// If the connection was closed, shutdowns fail with \"not connected\"\n\t\tif errors.Is(err, windows.WSAENOTCONN) ||\n\t\t\terrors.Is(err, windows.WSAESHUTDOWN) {\n\t\t\terr = socket.ErrSocketClosed\n\t\t}\n\t\treturn os.NewSyscallError(\"shutdown\", err)\n\t}\n\treturn nil\n}\n\n// CloseRead shuts down the read end of the socket, preventing future read operations.\nfunc (conn *HvsockConn) CloseRead() error {\n\terr := conn.shutdown(windows.SHUT_RD)\n\tif err != nil {\n\t\treturn conn.opErr(\"closeread\", err)\n\t}\n\treturn nil\n}\n\n// CloseWrite shuts down the write end of the socket, preventing future write operations and\n// notifying the other endpoint that no more data will be written.\nfunc (conn *HvsockConn) CloseWrite() error {\n\terr := conn.shutdown(windows.SHUT_WR)\n\tif err != nil {\n\t\treturn conn.opErr(\"closewrite\", err)\n\t}\n\treturn nil\n}\n\n// LocalAddr returns the local address of the connection.\nfunc (conn *HvsockConn) LocalAddr() net.Addr {\n\treturn &conn.local\n}\n\n// RemoteAddr returns the remote address of the connection.\nfunc (conn *HvsockConn) RemoteAddr() net.Addr {\n\treturn &conn.remote\n}\n\n// SetDeadline implements the net.Conn SetDeadline method.\nfunc (conn *HvsockConn) SetDeadline(t time.Time) error {\n\t// todo: implement `SetDeadline` for `win32File`\n\tif err := conn.SetReadDeadline(t); err != nil {\n\t\treturn fmt.Errorf(\"set read deadline: %w\", err)\n\t}\n\tif err := conn.SetWriteDeadline(t); err != nil {\n\t\treturn fmt.Errorf(\"set write deadline: %w\", err)\n\t}\n\treturn nil\n}\n\n// SetReadDeadline implements the net.Conn SetReadDeadline method.\nfunc (conn *HvsockConn) SetReadDeadline(t time.Time) error {\n\treturn conn.sock.SetReadDeadline(t)\n}\n\n// SetWriteDeadline implements the net.Conn SetWriteDeadline method.\nfunc (conn *HvsockConn) SetWriteDeadline(t time.Time) error {\n\treturn conn.sock.SetWriteDeadline(t)\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/internal/fs/doc.go",
    "content": "// This package contains Win32 filesystem functionality.\npackage fs\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/internal/fs/fs.go",
    "content": "//go:build windows\n\npackage fs\n\nimport (\n\t\"golang.org/x/sys/windows\"\n\n\t\"github.com/Microsoft/go-winio/internal/stringbuffer\"\n)\n\n//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go fs.go\n\n// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew\n//sys CreateFile(name string, access AccessMask, mode FileShareMode, sa *windows.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) [failretval==windows.InvalidHandle] = CreateFileW\n\nconst NullHandle windows.Handle = 0\n\n// AccessMask defines standard, specific, and generic rights.\n//\n// Used with CreateFile and NtCreateFile (and co.).\n//\n//\tBitmask:\n//\t 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1\n//\t 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0\n//\t+---------------+---------------+-------------------------------+\n//\t|G|G|G|G|Resvd|A| StandardRights|         SpecificRights        |\n//\t|R|W|E|A|     |S|               |                               |\n//\t+-+-------------+---------------+-------------------------------+\n//\n//\tGR     Generic Read\n//\tGW     Generic Write\n//\tGE     Generic Exectue\n//\tGA     Generic All\n//\tResvd  Reserved\n//\tAS     Access Security System\n//\n// https://learn.microsoft.com/en-us/windows/win32/secauthz/access-mask\n//\n// https://learn.microsoft.com/en-us/windows/win32/secauthz/generic-access-rights\n//\n// https://learn.microsoft.com/en-us/windows/win32/fileio/file-access-rights-constants\ntype AccessMask = windows.ACCESS_MASK\n\n//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.\nconst (\n\t// Not actually any.\n\t//\n\t// For CreateFile: \"query certain metadata such as file, directory, or device attributes without accessing that file or device\"\n\t// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew#parameters\n\tFILE_ANY_ACCESS AccessMask = 0\n\n\tGENERIC_READ           AccessMask = 0x8000_0000\n\tGENERIC_WRITE          AccessMask = 0x4000_0000\n\tGENERIC_EXECUTE        AccessMask = 0x2000_0000\n\tGENERIC_ALL            AccessMask = 0x1000_0000\n\tACCESS_SYSTEM_SECURITY AccessMask = 0x0100_0000\n\n\t// Specific Object Access\n\t// from ntioapi.h\n\n\tFILE_READ_DATA      AccessMask = (0x0001) // file & pipe\n\tFILE_LIST_DIRECTORY AccessMask = (0x0001) // directory\n\n\tFILE_WRITE_DATA AccessMask = (0x0002) // file & pipe\n\tFILE_ADD_FILE   AccessMask = (0x0002) // directory\n\n\tFILE_APPEND_DATA          AccessMask = (0x0004) // file\n\tFILE_ADD_SUBDIRECTORY     AccessMask = (0x0004) // directory\n\tFILE_CREATE_PIPE_INSTANCE AccessMask = (0x0004) // named pipe\n\n\tFILE_READ_EA         AccessMask = (0x0008) // file & directory\n\tFILE_READ_PROPERTIES AccessMask = FILE_READ_EA\n\n\tFILE_WRITE_EA         AccessMask = (0x0010) // file & directory\n\tFILE_WRITE_PROPERTIES AccessMask = FILE_WRITE_EA\n\n\tFILE_EXECUTE  AccessMask = (0x0020) // file\n\tFILE_TRAVERSE AccessMask = (0x0020) // directory\n\n\tFILE_DELETE_CHILD AccessMask = (0x0040) // directory\n\n\tFILE_READ_ATTRIBUTES AccessMask = (0x0080) // all\n\n\tFILE_WRITE_ATTRIBUTES AccessMask = (0x0100) // all\n\n\tFILE_ALL_ACCESS      AccessMask = (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF)\n\tFILE_GENERIC_READ    AccessMask = (STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE)\n\tFILE_GENERIC_WRITE   AccessMask = (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE)\n\tFILE_GENERIC_EXECUTE AccessMask = (STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE)\n\n\tSPECIFIC_RIGHTS_ALL AccessMask = 0x0000FFFF\n\n\t// Standard Access\n\t// from ntseapi.h\n\n\tDELETE       AccessMask = 0x0001_0000\n\tREAD_CONTROL AccessMask = 0x0002_0000\n\tWRITE_DAC    AccessMask = 0x0004_0000\n\tWRITE_OWNER  AccessMask = 0x0008_0000\n\tSYNCHRONIZE  AccessMask = 0x0010_0000\n\n\tSTANDARD_RIGHTS_REQUIRED AccessMask = 0x000F_0000\n\n\tSTANDARD_RIGHTS_READ    AccessMask = READ_CONTROL\n\tSTANDARD_RIGHTS_WRITE   AccessMask = READ_CONTROL\n\tSTANDARD_RIGHTS_EXECUTE AccessMask = READ_CONTROL\n\n\tSTANDARD_RIGHTS_ALL AccessMask = 0x001F_0000\n)\n\ntype FileShareMode uint32\n\n//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.\nconst (\n\tFILE_SHARE_NONE        FileShareMode = 0x00\n\tFILE_SHARE_READ        FileShareMode = 0x01\n\tFILE_SHARE_WRITE       FileShareMode = 0x02\n\tFILE_SHARE_DELETE      FileShareMode = 0x04\n\tFILE_SHARE_VALID_FLAGS FileShareMode = 0x07\n)\n\ntype FileCreationDisposition uint32\n\n//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.\nconst (\n\t// from winbase.h\n\n\tCREATE_NEW        FileCreationDisposition = 0x01\n\tCREATE_ALWAYS     FileCreationDisposition = 0x02\n\tOPEN_EXISTING     FileCreationDisposition = 0x03\n\tOPEN_ALWAYS       FileCreationDisposition = 0x04\n\tTRUNCATE_EXISTING FileCreationDisposition = 0x05\n)\n\n// Create disposition values for NtCreate*\ntype NTFileCreationDisposition uint32\n\n//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.\nconst (\n\t// From ntioapi.h\n\n\tFILE_SUPERSEDE           NTFileCreationDisposition = 0x00\n\tFILE_OPEN                NTFileCreationDisposition = 0x01\n\tFILE_CREATE              NTFileCreationDisposition = 0x02\n\tFILE_OPEN_IF             NTFileCreationDisposition = 0x03\n\tFILE_OVERWRITE           NTFileCreationDisposition = 0x04\n\tFILE_OVERWRITE_IF        NTFileCreationDisposition = 0x05\n\tFILE_MAXIMUM_DISPOSITION NTFileCreationDisposition = 0x05\n)\n\n// CreateFile and co. take flags or attributes together as one parameter.\n// Define alias until we can use generics to allow both\n//\n// https://learn.microsoft.com/en-us/windows/win32/fileio/file-attribute-constants\ntype FileFlagOrAttribute uint32\n\n//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.\nconst (\n\t// from winnt.h\n\n\tFILE_FLAG_WRITE_THROUGH       FileFlagOrAttribute = 0x8000_0000\n\tFILE_FLAG_OVERLAPPED          FileFlagOrAttribute = 0x4000_0000\n\tFILE_FLAG_NO_BUFFERING        FileFlagOrAttribute = 0x2000_0000\n\tFILE_FLAG_RANDOM_ACCESS       FileFlagOrAttribute = 0x1000_0000\n\tFILE_FLAG_SEQUENTIAL_SCAN     FileFlagOrAttribute = 0x0800_0000\n\tFILE_FLAG_DELETE_ON_CLOSE     FileFlagOrAttribute = 0x0400_0000\n\tFILE_FLAG_BACKUP_SEMANTICS    FileFlagOrAttribute = 0x0200_0000\n\tFILE_FLAG_POSIX_SEMANTICS     FileFlagOrAttribute = 0x0100_0000\n\tFILE_FLAG_OPEN_REPARSE_POINT  FileFlagOrAttribute = 0x0020_0000\n\tFILE_FLAG_OPEN_NO_RECALL      FileFlagOrAttribute = 0x0010_0000\n\tFILE_FLAG_FIRST_PIPE_INSTANCE FileFlagOrAttribute = 0x0008_0000\n)\n\n// NtCreate* functions take a dedicated CreateOptions parameter.\n//\n// https://learn.microsoft.com/en-us/windows/win32/api/Winternl/nf-winternl-ntcreatefile\n//\n// https://learn.microsoft.com/en-us/windows/win32/devnotes/nt-create-named-pipe-file\ntype NTCreateOptions uint32\n\n//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.\nconst (\n\t// From ntioapi.h\n\n\tFILE_DIRECTORY_FILE            NTCreateOptions = 0x0000_0001\n\tFILE_WRITE_THROUGH             NTCreateOptions = 0x0000_0002\n\tFILE_SEQUENTIAL_ONLY           NTCreateOptions = 0x0000_0004\n\tFILE_NO_INTERMEDIATE_BUFFERING NTCreateOptions = 0x0000_0008\n\n\tFILE_SYNCHRONOUS_IO_ALERT    NTCreateOptions = 0x0000_0010\n\tFILE_SYNCHRONOUS_IO_NONALERT NTCreateOptions = 0x0000_0020\n\tFILE_NON_DIRECTORY_FILE      NTCreateOptions = 0x0000_0040\n\tFILE_CREATE_TREE_CONNECTION  NTCreateOptions = 0x0000_0080\n\n\tFILE_COMPLETE_IF_OPLOCKED NTCreateOptions = 0x0000_0100\n\tFILE_NO_EA_KNOWLEDGE      NTCreateOptions = 0x0000_0200\n\tFILE_DISABLE_TUNNELING    NTCreateOptions = 0x0000_0400\n\tFILE_RANDOM_ACCESS        NTCreateOptions = 0x0000_0800\n\n\tFILE_DELETE_ON_CLOSE        NTCreateOptions = 0x0000_1000\n\tFILE_OPEN_BY_FILE_ID        NTCreateOptions = 0x0000_2000\n\tFILE_OPEN_FOR_BACKUP_INTENT NTCreateOptions = 0x0000_4000\n\tFILE_NO_COMPRESSION         NTCreateOptions = 0x0000_8000\n)\n\ntype FileSQSFlag = FileFlagOrAttribute\n\n//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.\nconst (\n\t// from winbase.h\n\n\tSECURITY_ANONYMOUS      FileSQSFlag = FileSQSFlag(SecurityAnonymous << 16)\n\tSECURITY_IDENTIFICATION FileSQSFlag = FileSQSFlag(SecurityIdentification << 16)\n\tSECURITY_IMPERSONATION  FileSQSFlag = FileSQSFlag(SecurityImpersonation << 16)\n\tSECURITY_DELEGATION     FileSQSFlag = FileSQSFlag(SecurityDelegation << 16)\n\n\tSECURITY_SQOS_PRESENT     FileSQSFlag = 0x0010_0000\n\tSECURITY_VALID_SQOS_FLAGS FileSQSFlag = 0x001F_0000\n)\n\n// GetFinalPathNameByHandle flags\n//\n// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfinalpathnamebyhandlew#parameters\ntype GetFinalPathFlag uint32\n\n//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API.\nconst (\n\tGetFinalPathDefaultFlag GetFinalPathFlag = 0x0\n\n\tFILE_NAME_NORMALIZED GetFinalPathFlag = 0x0\n\tFILE_NAME_OPENED     GetFinalPathFlag = 0x8\n\n\tVOLUME_NAME_DOS  GetFinalPathFlag = 0x0\n\tVOLUME_NAME_GUID GetFinalPathFlag = 0x1\n\tVOLUME_NAME_NT   GetFinalPathFlag = 0x2\n\tVOLUME_NAME_NONE GetFinalPathFlag = 0x4\n)\n\n// getFinalPathNameByHandle facilitates calling the Windows API GetFinalPathNameByHandle\n// with the given handle and flags. It transparently takes care of creating a buffer of the\n// correct size for the call.\n//\n// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfinalpathnamebyhandlew\nfunc GetFinalPathNameByHandle(h windows.Handle, flags GetFinalPathFlag) (string, error) {\n\tb := stringbuffer.NewWString()\n\t//TODO: can loop infinitely if Win32 keeps returning the same (or a larger) n?\n\tfor {\n\t\tn, err := windows.GetFinalPathNameByHandle(h, b.Pointer(), b.Cap(), uint32(flags))\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\t// If the buffer wasn't large enough, n will be the total size needed (including null terminator).\n\t\t// Resize and try again.\n\t\tif n > b.Cap() {\n\t\t\tb.ResizeTo(n)\n\t\t\tcontinue\n\t\t}\n\t\t// If the buffer is large enough, n will be the size not including the null terminator.\n\t\t// Convert to a Go string and return.\n\t\treturn b.String(), nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/internal/fs/security.go",
    "content": "package fs\n\n// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ne-winnt-security_impersonation_level\ntype SecurityImpersonationLevel int32 // C default enums underlying type is `int`, which is Go `int32`\n\n// Impersonation levels\nconst (\n\tSecurityAnonymous      SecurityImpersonationLevel = 0\n\tSecurityIdentification SecurityImpersonationLevel = 1\n\tSecurityImpersonation  SecurityImpersonationLevel = 2\n\tSecurityDelegation     SecurityImpersonationLevel = 3\n)\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go",
    "content": "//go:build windows\n\n// Code generated by 'go generate' using \"github.com/Microsoft/go-winio/tools/mkwinsyscall\"; DO NOT EDIT.\n\npackage fs\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\nvar _ unsafe.Pointer\n\n// Do the interface allocations only once for common\n// Errno values.\nconst (\n\terrnoERROR_IO_PENDING = 997\n)\n\nvar (\n\terrERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)\n\terrERROR_EINVAL     error = syscall.EINVAL\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e syscall.Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn errERROR_EINVAL\n\tcase errnoERROR_IO_PENDING:\n\t\treturn errERROR_IO_PENDING\n\t}\n\treturn e\n}\n\nvar (\n\tmodkernel32 = windows.NewLazySystemDLL(\"kernel32.dll\")\n\n\tprocCreateFileW = modkernel32.NewProc(\"CreateFileW\")\n)\n\nfunc CreateFile(name string, access AccessMask, mode FileShareMode, sa *windows.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _CreateFile(_p0, access, mode, sa, createmode, attrs, templatefile)\n}\n\nfunc _CreateFile(name *uint16, access AccessMask, mode FileShareMode, sa *windows.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile))\n\thandle = windows.Handle(r0)\n\tif handle == windows.InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go",
    "content": "package socket\n\nimport (\n\t\"unsafe\"\n)\n\n// RawSockaddr allows structs to be used with [Bind] and [ConnectEx]. The\n// struct must meet the Win32 sockaddr requirements specified here:\n// https://docs.microsoft.com/en-us/windows/win32/winsock/sockaddr-2\n//\n// Specifically, the struct size must be least larger than an int16 (unsigned short)\n// for the address family.\ntype RawSockaddr interface {\n\t// Sockaddr returns a pointer to the RawSockaddr and its struct size, allowing\n\t// for the RawSockaddr's data to be overwritten by syscalls (if necessary).\n\t//\n\t// It is the callers responsibility to validate that the values are valid; invalid\n\t// pointers or size can cause a panic.\n\tSockaddr() (unsafe.Pointer, int32, error)\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/internal/socket/socket.go",
    "content": "//go:build windows\n\npackage socket\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"github.com/Microsoft/go-winio/pkg/guid\"\n\t\"golang.org/x/sys/windows\"\n)\n\n//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go socket.go\n\n//sys getsockname(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) [failretval==socketError] = ws2_32.getsockname\n//sys getpeername(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) [failretval==socketError] = ws2_32.getpeername\n//sys bind(s windows.Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socketError] = ws2_32.bind\n\nconst socketError = uintptr(^uint32(0))\n\nvar (\n\t// todo(helsaawy): create custom error types to store the desired vs actual size and addr family?\n\n\tErrBufferSize     = errors.New(\"buffer size\")\n\tErrAddrFamily     = errors.New(\"address family\")\n\tErrInvalidPointer = errors.New(\"invalid pointer\")\n\tErrSocketClosed   = fmt.Errorf(\"socket closed: %w\", net.ErrClosed)\n)\n\n// todo(helsaawy): replace these with generics, ie: GetSockName[S RawSockaddr](s windows.Handle) (S, error)\n\n// GetSockName writes the local address of socket s to the [RawSockaddr] rsa.\n// If rsa is not large enough, the [windows.WSAEFAULT] is returned.\nfunc GetSockName(s windows.Handle, rsa RawSockaddr) error {\n\tptr, l, err := rsa.Sockaddr()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"could not retrieve socket pointer and size: %w\", err)\n\t}\n\n\t// although getsockname returns WSAEFAULT if the buffer is too small, it does not set\n\t// &l to the correct size, so--apart from doubling the buffer repeatedly--there is no remedy\n\treturn getsockname(s, ptr, &l)\n}\n\n// GetPeerName returns the remote address the socket is connected to.\n//\n// See [GetSockName] for more information.\nfunc GetPeerName(s windows.Handle, rsa RawSockaddr) error {\n\tptr, l, err := rsa.Sockaddr()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"could not retrieve socket pointer and size: %w\", err)\n\t}\n\n\treturn getpeername(s, ptr, &l)\n}\n\nfunc Bind(s windows.Handle, rsa RawSockaddr) (err error) {\n\tptr, l, err := rsa.Sockaddr()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"could not retrieve socket pointer and size: %w\", err)\n\t}\n\n\treturn bind(s, ptr, l)\n}\n\n// \"golang.org/x/sys/windows\".ConnectEx and .Bind only accept internal implementations of the\n// their sockaddr interface, so they cannot be used with HvsockAddr\n// Replicate functionality here from\n// https://cs.opensource.google/go/x/sys/+/master:windows/syscall_windows.go\n\n// The function pointers to `AcceptEx`, `ConnectEx` and `GetAcceptExSockaddrs` must be loaded at\n// runtime via a WSAIoctl call:\n// https://docs.microsoft.com/en-us/windows/win32/api/Mswsock/nc-mswsock-lpfn_connectex#remarks\n\ntype runtimeFunc struct {\n\tid   guid.GUID\n\tonce sync.Once\n\taddr uintptr\n\terr  error\n}\n\nfunc (f *runtimeFunc) Load() error {\n\tf.once.Do(func() {\n\t\tvar s windows.Handle\n\t\ts, f.err = windows.Socket(windows.AF_INET, windows.SOCK_STREAM, windows.IPPROTO_TCP)\n\t\tif f.err != nil {\n\t\t\treturn\n\t\t}\n\t\tdefer windows.CloseHandle(s) //nolint:errcheck\n\n\t\tvar n uint32\n\t\tf.err = windows.WSAIoctl(s,\n\t\t\twindows.SIO_GET_EXTENSION_FUNCTION_POINTER,\n\t\t\t(*byte)(unsafe.Pointer(&f.id)),\n\t\t\tuint32(unsafe.Sizeof(f.id)),\n\t\t\t(*byte)(unsafe.Pointer(&f.addr)),\n\t\t\tuint32(unsafe.Sizeof(f.addr)),\n\t\t\t&n,\n\t\t\tnil, // overlapped\n\t\t\t0,   // completionRoutine\n\t\t)\n\t})\n\treturn f.err\n}\n\nvar (\n\t// todo: add `AcceptEx` and `GetAcceptExSockaddrs`\n\tWSAID_CONNECTEX = guid.GUID{ //revive:disable-line:var-naming ALL_CAPS\n\t\tData1: 0x25a207b9,\n\t\tData2: 0xddf3,\n\t\tData3: 0x4660,\n\t\tData4: [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e},\n\t}\n\n\tconnectExFunc = runtimeFunc{id: WSAID_CONNECTEX}\n)\n\nfunc ConnectEx(\n\tfd windows.Handle,\n\trsa RawSockaddr,\n\tsendBuf *byte,\n\tsendDataLen uint32,\n\tbytesSent *uint32,\n\toverlapped *windows.Overlapped,\n) error {\n\tif err := connectExFunc.Load(); err != nil {\n\t\treturn fmt.Errorf(\"failed to load ConnectEx function pointer: %w\", err)\n\t}\n\tptr, n, err := rsa.Sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped)\n}\n\n// BOOL LpfnConnectex(\n//   [in]           SOCKET s,\n//   [in]           const sockaddr *name,\n//   [in]           int namelen,\n//   [in, optional] PVOID lpSendBuffer,\n//   [in]           DWORD dwSendDataLength,\n//   [out]          LPDWORD lpdwBytesSent,\n//   [in]           LPOVERLAPPED lpOverlapped\n// )\n\nfunc connectEx(\n\ts windows.Handle,\n\tname unsafe.Pointer,\n\tnamelen int32,\n\tsendBuf *byte,\n\tsendDataLen uint32,\n\tbytesSent *uint32,\n\toverlapped *windows.Overlapped,\n) (err error) {\n\tr1, _, e1 := syscall.SyscallN(connectExFunc.addr,\n\t\tuintptr(s),\n\t\tuintptr(name),\n\t\tuintptr(namelen),\n\t\tuintptr(unsafe.Pointer(sendBuf)),\n\t\tuintptr(sendDataLen),\n\t\tuintptr(unsafe.Pointer(bytesSent)),\n\t\tuintptr(unsafe.Pointer(overlapped)),\n\t)\n\n\tif r1 == 0 {\n\t\tif e1 != 0 {\n\t\t\terr = error(e1)\n\t\t} else {\n\t\t\terr = syscall.EINVAL\n\t\t}\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go",
    "content": "//go:build windows\n\n// Code generated by 'go generate' using \"github.com/Microsoft/go-winio/tools/mkwinsyscall\"; DO NOT EDIT.\n\npackage socket\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\nvar _ unsafe.Pointer\n\n// Do the interface allocations only once for common\n// Errno values.\nconst (\n\terrnoERROR_IO_PENDING = 997\n)\n\nvar (\n\terrERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)\n\terrERROR_EINVAL     error = syscall.EINVAL\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e syscall.Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn errERROR_EINVAL\n\tcase errnoERROR_IO_PENDING:\n\t\treturn errERROR_IO_PENDING\n\t}\n\treturn e\n}\n\nvar (\n\tmodws2_32 = windows.NewLazySystemDLL(\"ws2_32.dll\")\n\n\tprocbind        = modws2_32.NewProc(\"bind\")\n\tprocgetpeername = modws2_32.NewProc(\"getpeername\")\n\tprocgetsockname = modws2_32.NewProc(\"getsockname\")\n)\n\nfunc bind(s windows.Handle, name unsafe.Pointer, namelen int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procbind.Addr(), uintptr(s), uintptr(name), uintptr(namelen))\n\tif r1 == socketError {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getpeername(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procgetpeername.Addr(), uintptr(s), uintptr(name), uintptr(unsafe.Pointer(namelen)))\n\tif r1 == socketError {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getsockname(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procgetsockname.Addr(), uintptr(s), uintptr(name), uintptr(unsafe.Pointer(namelen)))\n\tif r1 == socketError {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go",
    "content": "package stringbuffer\n\nimport (\n\t\"sync\"\n\t\"unicode/utf16\"\n)\n\n// TODO: worth exporting and using in mkwinsyscall?\n\n// Uint16BufferSize is the buffer size in the pool, chosen somewhat arbitrarily to accommodate\n// large path strings:\n// MAX_PATH (260) + size of volume GUID prefix (49) + null terminator = 310.\nconst MinWStringCap = 310\n\n// use *[]uint16 since []uint16 creates an extra allocation where the slice header\n// is copied to heap and then referenced via pointer in the interface header that sync.Pool\n// stores.\nvar pathPool = sync.Pool{ // if go1.18+ adds Pool[T], use that to store []uint16 directly\n\tNew: func() interface{} {\n\t\tb := make([]uint16, MinWStringCap)\n\t\treturn &b\n\t},\n}\n\nfunc newBuffer() []uint16 { return *(pathPool.Get().(*[]uint16)) }\n\n// freeBuffer copies the slice header data, and puts a pointer to that in the pool.\n// This avoids taking a pointer to the slice header in WString, which can be set to nil.\nfunc freeBuffer(b []uint16) { pathPool.Put(&b) }\n\n// WString is a wide string buffer ([]uint16) meant for storing UTF-16 encoded strings\n// for interacting with Win32 APIs.\n// Sizes are specified as uint32 and not int.\n//\n// It is not thread safe.\ntype WString struct {\n\t// type-def allows casting to []uint16 directly, use struct to prevent that and allow adding fields in the future.\n\n\t// raw buffer\n\tb []uint16\n}\n\n// NewWString returns a [WString] allocated from a shared pool with an\n// initial capacity of at least [MinWStringCap].\n// Since the buffer may have been previously used, its contents are not guaranteed to be empty.\n//\n// The buffer should be freed via [WString.Free]\nfunc NewWString() *WString {\n\treturn &WString{\n\t\tb: newBuffer(),\n\t}\n}\n\nfunc (b *WString) Free() {\n\tif b.empty() {\n\t\treturn\n\t}\n\tfreeBuffer(b.b)\n\tb.b = nil\n}\n\n// ResizeTo grows the buffer to at least c and returns the new capacity, freeing the\n// previous buffer back into pool.\nfunc (b *WString) ResizeTo(c uint32) uint32 {\n\t// already sufficient (or n is 0)\n\tif c <= b.Cap() {\n\t\treturn b.Cap()\n\t}\n\n\tif c <= MinWStringCap {\n\t\tc = MinWStringCap\n\t}\n\t// allocate at-least double buffer size, as is done in [bytes.Buffer] and other places\n\tif c <= 2*b.Cap() {\n\t\tc = 2 * b.Cap()\n\t}\n\n\tb2 := make([]uint16, c)\n\tif !b.empty() {\n\t\tcopy(b2, b.b)\n\t\tfreeBuffer(b.b)\n\t}\n\tb.b = b2\n\treturn c\n}\n\n// Buffer returns the underlying []uint16 buffer.\nfunc (b *WString) Buffer() []uint16 {\n\tif b.empty() {\n\t\treturn nil\n\t}\n\treturn b.b\n}\n\n// Pointer returns a pointer to the first uint16 in the buffer.\n// If the [WString.Free] has already been called, the pointer will be nil.\nfunc (b *WString) Pointer() *uint16 {\n\tif b.empty() {\n\t\treturn nil\n\t}\n\treturn &b.b[0]\n}\n\n// String returns the returns the UTF-8 encoding of the UTF-16 string in the buffer.\n//\n// It assumes that the data is null-terminated.\nfunc (b *WString) String() string {\n\t// Using [windows.UTF16ToString] would require importing \"golang.org/x/sys/windows\"\n\t// and would make this code Windows-only, which makes no sense.\n\t// So copy UTF16ToString code into here.\n\t// If other windows-specific code is added, switch to [windows.UTF16ToString]\n\n\ts := b.b\n\tfor i, v := range s {\n\t\tif v == 0 {\n\t\t\ts = s[:i]\n\t\t\tbreak\n\t\t}\n\t}\n\treturn string(utf16.Decode(s))\n}\n\n// Cap returns the underlying buffer capacity.\nfunc (b *WString) Cap() uint32 {\n\tif b.empty() {\n\t\treturn 0\n\t}\n\treturn b.cap()\n}\n\nfunc (b *WString) cap() uint32 { return uint32(cap(b.b)) }\nfunc (b *WString) empty() bool { return b == nil || b.cap() == 0 }\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/pipe.go",
    "content": "//go:build windows\n// +build windows\n\npackage winio\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"os\"\n\t\"runtime\"\n\t\"time\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n\n\t\"github.com/Microsoft/go-winio/internal/fs\"\n)\n\n//sys connectNamedPipe(pipe windows.Handle, o *windows.Overlapped) (err error) = ConnectNamedPipe\n//sys createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *windows.SecurityAttributes) (handle windows.Handle, err error)  [failretval==windows.InvalidHandle] = CreateNamedPipeW\n//sys disconnectNamedPipe(pipe windows.Handle) (err error) = DisconnectNamedPipe\n//sys getNamedPipeInfo(pipe windows.Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) = GetNamedPipeInfo\n//sys getNamedPipeHandleState(pipe windows.Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW\n//sys ntCreateNamedPipeFile(pipe *windows.Handle, access ntAccessMask, oa *objectAttributes, iosb *ioStatusBlock, share ntFileShareMode, disposition ntFileCreationDisposition, options ntFileOptions, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (status ntStatus) = ntdll.NtCreateNamedPipeFile\n//sys rtlNtStatusToDosError(status ntStatus) (winerr error) = ntdll.RtlNtStatusToDosErrorNoTeb\n//sys rtlDosPathNameToNtPathName(name *uint16, ntName *unicodeString, filePart uintptr, reserved uintptr) (status ntStatus) = ntdll.RtlDosPathNameToNtPathName_U\n//sys rtlDefaultNpAcl(dacl *uintptr) (status ntStatus) = ntdll.RtlDefaultNpAcl\n\ntype PipeConn interface {\n\tnet.Conn\n\tDisconnect() error\n\tFlush() error\n}\n\n// type aliases for mkwinsyscall code\ntype (\n\tntAccessMask              = fs.AccessMask\n\tntFileShareMode           = fs.FileShareMode\n\tntFileCreationDisposition = fs.NTFileCreationDisposition\n\tntFileOptions             = fs.NTCreateOptions\n)\n\ntype ioStatusBlock struct {\n\tStatus, Information uintptr\n}\n\n//\ttypedef struct _OBJECT_ATTRIBUTES {\n//\t  ULONG           Length;\n//\t  HANDLE          RootDirectory;\n//\t  PUNICODE_STRING ObjectName;\n//\t  ULONG           Attributes;\n//\t  PVOID           SecurityDescriptor;\n//\t  PVOID           SecurityQualityOfService;\n//\t} OBJECT_ATTRIBUTES;\n//\n// https://learn.microsoft.com/en-us/windows/win32/api/ntdef/ns-ntdef-_object_attributes\ntype objectAttributes struct {\n\tLength             uintptr\n\tRootDirectory      uintptr\n\tObjectName         *unicodeString\n\tAttributes         uintptr\n\tSecurityDescriptor *securityDescriptor\n\tSecurityQoS        uintptr\n}\n\ntype unicodeString struct {\n\tLength        uint16\n\tMaximumLength uint16\n\tBuffer        uintptr\n}\n\n//\ttypedef struct _SECURITY_DESCRIPTOR {\n//\t  BYTE                        Revision;\n//\t  BYTE                        Sbz1;\n//\t  SECURITY_DESCRIPTOR_CONTROL Control;\n//\t  PSID                        Owner;\n//\t  PSID                        Group;\n//\t  PACL                        Sacl;\n//\t  PACL                        Dacl;\n//\t} SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR;\n//\n// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-security_descriptor\ntype securityDescriptor struct {\n\tRevision byte\n\tSbz1     byte\n\tControl  uint16\n\tOwner    uintptr\n\tGroup    uintptr\n\tSacl     uintptr //revive:disable-line:var-naming SACL, not Sacl\n\tDacl     uintptr //revive:disable-line:var-naming DACL, not Dacl\n}\n\ntype ntStatus int32\n\nfunc (status ntStatus) Err() error {\n\tif status >= 0 {\n\t\treturn nil\n\t}\n\treturn rtlNtStatusToDosError(status)\n}\n\nvar (\n\t// ErrPipeListenerClosed is returned for pipe operations on listeners that have been closed.\n\tErrPipeListenerClosed = net.ErrClosed\n\n\terrPipeWriteClosed = errors.New(\"pipe has been closed for write\")\n)\n\ntype win32Pipe struct {\n\t*win32File\n\tpath string\n}\n\nvar _ PipeConn = (*win32Pipe)(nil)\n\ntype win32MessageBytePipe struct {\n\twin32Pipe\n\twriteClosed bool\n\treadEOF     bool\n}\n\ntype pipeAddress string\n\nfunc (f *win32Pipe) LocalAddr() net.Addr {\n\treturn pipeAddress(f.path)\n}\n\nfunc (f *win32Pipe) RemoteAddr() net.Addr {\n\treturn pipeAddress(f.path)\n}\n\nfunc (f *win32Pipe) SetDeadline(t time.Time) error {\n\tif err := f.SetReadDeadline(t); err != nil {\n\t\treturn err\n\t}\n\treturn f.SetWriteDeadline(t)\n}\n\nfunc (f *win32Pipe) Disconnect() error {\n\treturn disconnectNamedPipe(f.win32File.handle)\n}\n\n// CloseWrite closes the write side of a message pipe in byte mode.\nfunc (f *win32MessageBytePipe) CloseWrite() error {\n\tif f.writeClosed {\n\t\treturn errPipeWriteClosed\n\t}\n\terr := f.win32File.Flush()\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = f.win32File.Write(nil)\n\tif err != nil {\n\t\treturn err\n\t}\n\tf.writeClosed = true\n\treturn nil\n}\n\n// Write writes bytes to a message pipe in byte mode. Zero-byte writes are ignored, since\n// they are used to implement CloseWrite().\nfunc (f *win32MessageBytePipe) Write(b []byte) (int, error) {\n\tif f.writeClosed {\n\t\treturn 0, errPipeWriteClosed\n\t}\n\tif len(b) == 0 {\n\t\treturn 0, nil\n\t}\n\treturn f.win32File.Write(b)\n}\n\n// Read reads bytes from a message pipe in byte mode. A read of a zero-byte message on a message\n// mode pipe will return io.EOF, as will all subsequent reads.\nfunc (f *win32MessageBytePipe) Read(b []byte) (int, error) {\n\tif f.readEOF {\n\t\treturn 0, io.EOF\n\t}\n\tn, err := f.win32File.Read(b)\n\tif err == io.EOF { //nolint:errorlint\n\t\t// If this was the result of a zero-byte read, then\n\t\t// it is possible that the read was due to a zero-size\n\t\t// message. Since we are simulating CloseWrite with a\n\t\t// zero-byte message, ensure that all future Read() calls\n\t\t// also return EOF.\n\t\tf.readEOF = true\n\t} else if err == windows.ERROR_MORE_DATA { //nolint:errorlint // err is Errno\n\t\t// ERROR_MORE_DATA indicates that the pipe's read mode is message mode\n\t\t// and the message still has more bytes. Treat this as a success, since\n\t\t// this package presents all named pipes as byte streams.\n\t\terr = nil\n\t}\n\treturn n, err\n}\n\nfunc (pipeAddress) Network() string {\n\treturn \"pipe\"\n}\n\nfunc (s pipeAddress) String() string {\n\treturn string(s)\n}\n\n// tryDialPipe attempts to dial the pipe at `path` until `ctx` cancellation or timeout.\nfunc tryDialPipe(ctx context.Context, path *string, access fs.AccessMask, impLevel PipeImpLevel) (windows.Handle, error) {\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn windows.Handle(0), ctx.Err()\n\t\tdefault:\n\t\t\th, err := fs.CreateFile(*path,\n\t\t\t\taccess,\n\t\t\t\t0,   // mode\n\t\t\t\tnil, // security attributes\n\t\t\t\tfs.OPEN_EXISTING,\n\t\t\t\tfs.FILE_FLAG_OVERLAPPED|fs.SECURITY_SQOS_PRESENT|fs.FileSQSFlag(impLevel),\n\t\t\t\t0, // template file handle\n\t\t\t)\n\t\t\tif err == nil {\n\t\t\t\treturn h, nil\n\t\t\t}\n\t\t\tif err != windows.ERROR_PIPE_BUSY { //nolint:errorlint // err is Errno\n\t\t\t\treturn h, &os.PathError{Err: err, Op: \"open\", Path: *path}\n\t\t\t}\n\t\t\t// Wait 10 msec and try again. This is a rather simplistic\n\t\t\t// view, as we always try each 10 milliseconds.\n\t\t\ttime.Sleep(10 * time.Millisecond)\n\t\t}\n\t}\n}\n\n// DialPipe connects to a named pipe by path, timing out if the connection\n// takes longer than the specified duration. If timeout is nil, then we use\n// a default timeout of 2 seconds.  (We do not use WaitNamedPipe.)\nfunc DialPipe(path string, timeout *time.Duration) (net.Conn, error) {\n\tvar absTimeout time.Time\n\tif timeout != nil {\n\t\tabsTimeout = time.Now().Add(*timeout)\n\t} else {\n\t\tabsTimeout = time.Now().Add(2 * time.Second)\n\t}\n\tctx, cancel := context.WithDeadline(context.Background(), absTimeout)\n\tdefer cancel()\n\tconn, err := DialPipeContext(ctx, path)\n\tif errors.Is(err, context.DeadlineExceeded) {\n\t\treturn nil, ErrTimeout\n\t}\n\treturn conn, err\n}\n\n// DialPipeContext attempts to connect to a named pipe by `path` until `ctx`\n// cancellation or timeout.\nfunc DialPipeContext(ctx context.Context, path string) (net.Conn, error) {\n\treturn DialPipeAccess(ctx, path, uint32(fs.GENERIC_READ|fs.GENERIC_WRITE))\n}\n\n// PipeImpLevel is an enumeration of impersonation levels that may be set\n// when calling DialPipeAccessImpersonation.\ntype PipeImpLevel uint32\n\nconst (\n\tPipeImpLevelAnonymous      = PipeImpLevel(fs.SECURITY_ANONYMOUS)\n\tPipeImpLevelIdentification = PipeImpLevel(fs.SECURITY_IDENTIFICATION)\n\tPipeImpLevelImpersonation  = PipeImpLevel(fs.SECURITY_IMPERSONATION)\n\tPipeImpLevelDelegation     = PipeImpLevel(fs.SECURITY_DELEGATION)\n)\n\n// DialPipeAccess attempts to connect to a named pipe by `path` with `access` until `ctx`\n// cancellation or timeout.\nfunc DialPipeAccess(ctx context.Context, path string, access uint32) (net.Conn, error) {\n\treturn DialPipeAccessImpLevel(ctx, path, access, PipeImpLevelAnonymous)\n}\n\n// DialPipeAccessImpLevel attempts to connect to a named pipe by `path` with\n// `access` at `impLevel` until `ctx` cancellation or timeout. The other\n// DialPipe* implementations use PipeImpLevelAnonymous.\nfunc DialPipeAccessImpLevel(ctx context.Context, path string, access uint32, impLevel PipeImpLevel) (net.Conn, error) {\n\tvar err error\n\tvar h windows.Handle\n\th, err = tryDialPipe(ctx, &path, fs.AccessMask(access), impLevel)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar flags uint32\n\terr = getNamedPipeInfo(h, &flags, nil, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tf, err := makeWin32File(h)\n\tif err != nil {\n\t\twindows.Close(h)\n\t\treturn nil, err\n\t}\n\n\t// If the pipe is in message mode, return a message byte pipe, which\n\t// supports CloseWrite().\n\tif flags&windows.PIPE_TYPE_MESSAGE != 0 {\n\t\treturn &win32MessageBytePipe{\n\t\t\twin32Pipe: win32Pipe{win32File: f, path: path},\n\t\t}, nil\n\t}\n\treturn &win32Pipe{win32File: f, path: path}, nil\n}\n\ntype acceptResponse struct {\n\tf   *win32File\n\terr error\n}\n\ntype win32PipeListener struct {\n\tfirstHandle windows.Handle\n\tpath        string\n\tconfig      PipeConfig\n\tacceptCh    chan (chan acceptResponse)\n\tcloseCh     chan int\n\tdoneCh      chan int\n}\n\nfunc makeServerPipeHandle(path string, sd []byte, c *PipeConfig, first bool) (windows.Handle, error) {\n\tpath16, err := windows.UTF16FromString(path)\n\tif err != nil {\n\t\treturn 0, &os.PathError{Op: \"open\", Path: path, Err: err}\n\t}\n\n\tvar oa objectAttributes\n\toa.Length = unsafe.Sizeof(oa)\n\n\tvar ntPath unicodeString\n\tif err := rtlDosPathNameToNtPathName(&path16[0],\n\t\t&ntPath,\n\t\t0,\n\t\t0,\n\t).Err(); err != nil {\n\t\treturn 0, &os.PathError{Op: \"open\", Path: path, Err: err}\n\t}\n\tdefer windows.LocalFree(windows.Handle(ntPath.Buffer)) //nolint:errcheck\n\toa.ObjectName = &ntPath\n\toa.Attributes = windows.OBJ_CASE_INSENSITIVE\n\n\t// The security descriptor is only needed for the first pipe.\n\tif first {\n\t\tif sd != nil {\n\t\t\t//todo: does `sdb` need to be allocated on the heap, or can go allocate it?\n\t\t\tl := uint32(len(sd))\n\t\t\tsdb, err := windows.LocalAlloc(0, l)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, fmt.Errorf(\"LocalAlloc for security descriptor with of length %d: %w\", l, err)\n\t\t\t}\n\t\t\tdefer windows.LocalFree(windows.Handle(sdb)) //nolint:errcheck\n\t\t\tcopy((*[0xffff]byte)(unsafe.Pointer(sdb))[:], sd)\n\t\t\toa.SecurityDescriptor = (*securityDescriptor)(unsafe.Pointer(sdb))\n\t\t} else {\n\t\t\t// Construct the default named pipe security descriptor.\n\t\t\tvar dacl uintptr\n\t\t\tif err := rtlDefaultNpAcl(&dacl).Err(); err != nil {\n\t\t\t\treturn 0, fmt.Errorf(\"getting default named pipe ACL: %w\", err)\n\t\t\t}\n\t\t\tdefer windows.LocalFree(windows.Handle(dacl)) //nolint:errcheck\n\n\t\t\tsdb := &securityDescriptor{\n\t\t\t\tRevision: 1,\n\t\t\t\tControl:  windows.SE_DACL_PRESENT,\n\t\t\t\tDacl:     dacl,\n\t\t\t}\n\t\t\toa.SecurityDescriptor = sdb\n\t\t}\n\t}\n\n\ttyp := uint32(windows.FILE_PIPE_REJECT_REMOTE_CLIENTS)\n\tif c.MessageMode {\n\t\ttyp |= windows.FILE_PIPE_MESSAGE_TYPE\n\t}\n\n\tdisposition := fs.FILE_OPEN\n\taccess := fs.GENERIC_READ | fs.GENERIC_WRITE | fs.SYNCHRONIZE\n\tif first {\n\t\tdisposition = fs.FILE_CREATE\n\t\t// By not asking for read or write access, the named pipe file system\n\t\t// will put this pipe into an initially disconnected state, blocking\n\t\t// client connections until the next call with first == false.\n\t\taccess = fs.SYNCHRONIZE\n\t}\n\n\ttimeout := int64(-50 * 10000) // 50ms\n\n\tvar (\n\t\th    windows.Handle\n\t\tiosb ioStatusBlock\n\t)\n\terr = ntCreateNamedPipeFile(&h,\n\t\taccess,\n\t\t&oa,\n\t\t&iosb,\n\t\tfs.FILE_SHARE_READ|fs.FILE_SHARE_WRITE,\n\t\tdisposition,\n\t\t0,\n\t\ttyp,\n\t\t0,\n\t\t0,\n\t\t0xffffffff,\n\t\tuint32(c.InputBufferSize),\n\t\tuint32(c.OutputBufferSize),\n\t\t&timeout).Err()\n\tif err != nil {\n\t\treturn 0, &os.PathError{Op: \"open\", Path: path, Err: err}\n\t}\n\n\truntime.KeepAlive(ntPath)\n\treturn h, nil\n}\n\nfunc (l *win32PipeListener) makeServerPipe() (*win32File, error) {\n\th, err := makeServerPipeHandle(l.path, nil, &l.config, false)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tf, err := makeWin32File(h)\n\tif err != nil {\n\t\twindows.Close(h)\n\t\treturn nil, err\n\t}\n\treturn f, nil\n}\n\nfunc (l *win32PipeListener) makeConnectedServerPipe() (*win32File, error) {\n\tp, err := l.makeServerPipe()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Wait for the client to connect.\n\tch := make(chan error)\n\tgo func(p *win32File) {\n\t\tch <- connectPipe(p)\n\t}(p)\n\n\tselect {\n\tcase err = <-ch:\n\t\tif err != nil {\n\t\t\tp.Close()\n\t\t\tp = nil\n\t\t}\n\tcase <-l.closeCh:\n\t\t// Abort the connect request by closing the handle.\n\t\tp.Close()\n\t\tp = nil\n\t\terr = <-ch\n\t\tif err == nil || err == ErrFileClosed { //nolint:errorlint // err is Errno\n\t\t\terr = ErrPipeListenerClosed\n\t\t}\n\t}\n\treturn p, err\n}\n\nfunc (l *win32PipeListener) listenerRoutine() {\n\tclosed := false\n\tfor !closed {\n\t\tselect {\n\t\tcase <-l.closeCh:\n\t\t\tclosed = true\n\t\tcase responseCh := <-l.acceptCh:\n\t\t\tvar (\n\t\t\t\tp   *win32File\n\t\t\t\terr error\n\t\t\t)\n\t\t\tfor {\n\t\t\t\tp, err = l.makeConnectedServerPipe()\n\t\t\t\t// If the connection was immediately closed by the client, try\n\t\t\t\t// again.\n\t\t\t\tif err != windows.ERROR_NO_DATA { //nolint:errorlint // err is Errno\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tresponseCh <- acceptResponse{p, err}\n\t\t\tclosed = err == ErrPipeListenerClosed //nolint:errorlint // err is Errno\n\t\t}\n\t}\n\twindows.Close(l.firstHandle)\n\tl.firstHandle = 0\n\t// Notify Close() and Accept() callers that the handle has been closed.\n\tclose(l.doneCh)\n}\n\n// PipeConfig contain configuration for the pipe listener.\ntype PipeConfig struct {\n\t// SecurityDescriptor contains a Windows security descriptor in SDDL format.\n\tSecurityDescriptor string\n\n\t// MessageMode determines whether the pipe is in byte or message mode. In either\n\t// case the pipe is read in byte mode by default. The only practical difference in\n\t// this implementation is that CloseWrite() is only supported for message mode pipes;\n\t// CloseWrite() is implemented as a zero-byte write, but zero-byte writes are only\n\t// transferred to the reader (and returned as io.EOF in this implementation)\n\t// when the pipe is in message mode.\n\tMessageMode bool\n\n\t// InputBufferSize specifies the size of the input buffer, in bytes.\n\tInputBufferSize int32\n\n\t// OutputBufferSize specifies the size of the output buffer, in bytes.\n\tOutputBufferSize int32\n}\n\n// ListenPipe creates a listener on a Windows named pipe path, e.g. \\\\.\\pipe\\mypipe.\n// The pipe must not already exist.\nfunc ListenPipe(path string, c *PipeConfig) (net.Listener, error) {\n\tvar (\n\t\tsd  []byte\n\t\terr error\n\t)\n\tif c == nil {\n\t\tc = &PipeConfig{}\n\t}\n\tif c.SecurityDescriptor != \"\" {\n\t\tsd, err = SddlToSecurityDescriptor(c.SecurityDescriptor)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\th, err := makeServerPipeHandle(path, sd, c, true)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tl := &win32PipeListener{\n\t\tfirstHandle: h,\n\t\tpath:        path,\n\t\tconfig:      *c,\n\t\tacceptCh:    make(chan (chan acceptResponse)),\n\t\tcloseCh:     make(chan int),\n\t\tdoneCh:      make(chan int),\n\t}\n\tgo l.listenerRoutine()\n\treturn l, nil\n}\n\nfunc connectPipe(p *win32File) error {\n\tc, err := p.prepareIO()\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer p.wg.Done()\n\n\terr = connectNamedPipe(p.handle, &c.o)\n\t_, err = p.asyncIO(c, nil, 0, err)\n\tif err != nil && err != windows.ERROR_PIPE_CONNECTED { //nolint:errorlint // err is Errno\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (l *win32PipeListener) Accept() (net.Conn, error) {\n\tch := make(chan acceptResponse)\n\tselect {\n\tcase l.acceptCh <- ch:\n\t\tresponse := <-ch\n\t\terr := response.err\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif l.config.MessageMode {\n\t\t\treturn &win32MessageBytePipe{\n\t\t\t\twin32Pipe: win32Pipe{win32File: response.f, path: l.path},\n\t\t\t}, nil\n\t\t}\n\t\treturn &win32Pipe{win32File: response.f, path: l.path}, nil\n\tcase <-l.doneCh:\n\t\treturn nil, ErrPipeListenerClosed\n\t}\n}\n\nfunc (l *win32PipeListener) Close() error {\n\tselect {\n\tcase l.closeCh <- 1:\n\t\t<-l.doneCh\n\tcase <-l.doneCh:\n\t}\n\treturn nil\n}\n\nfunc (l *win32PipeListener) Addr() net.Addr {\n\treturn pipeAddress(l.path)\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go",
    "content": "// Package guid provides a GUID type. The backing structure for a GUID is\n// identical to that used by the golang.org/x/sys/windows GUID type.\n// There are two main binary encodings used for a GUID, the big-endian encoding,\n// and the Windows (mixed-endian) encoding. See here for details:\n// https://en.wikipedia.org/wiki/Universally_unique_identifier#Encoding\npackage guid\n\nimport (\n\t\"crypto/rand\"\n\t\"crypto/sha1\" //nolint:gosec // not used for secure application\n\t\"encoding\"\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"strconv\"\n)\n\n//go:generate go run golang.org/x/tools/cmd/stringer -type=Variant -trimprefix=Variant -linecomment\n\n// Variant specifies which GUID variant (or \"type\") of the GUID. It determines\n// how the entirety of the rest of the GUID is interpreted.\ntype Variant uint8\n\n// The variants specified by RFC 4122 section 4.1.1.\nconst (\n\t// VariantUnknown specifies a GUID variant which does not conform to one of\n\t// the variant encodings specified in RFC 4122.\n\tVariantUnknown Variant = iota\n\tVariantNCS\n\tVariantRFC4122 // RFC 4122\n\tVariantMicrosoft\n\tVariantFuture\n)\n\n// Version specifies how the bits in the GUID were generated. For instance, a\n// version 4 GUID is randomly generated, and a version 5 is generated from the\n// hash of an input string.\ntype Version uint8\n\nfunc (v Version) String() string {\n\treturn strconv.FormatUint(uint64(v), 10)\n}\n\nvar _ = (encoding.TextMarshaler)(GUID{})\nvar _ = (encoding.TextUnmarshaler)(&GUID{})\n\n// NewV4 returns a new version 4 (pseudorandom) GUID, as defined by RFC 4122.\nfunc NewV4() (GUID, error) {\n\tvar b [16]byte\n\tif _, err := rand.Read(b[:]); err != nil {\n\t\treturn GUID{}, err\n\t}\n\n\tg := FromArray(b)\n\tg.setVersion(4) // Version 4 means randomly generated.\n\tg.setVariant(VariantRFC4122)\n\n\treturn g, nil\n}\n\n// NewV5 returns a new version 5 (generated from a string via SHA-1 hashing)\n// GUID, as defined by RFC 4122. The RFC is unclear on the encoding of the name,\n// and the sample code treats it as a series of bytes, so we do the same here.\n//\n// Some implementations, such as those found on Windows, treat the name as a\n// big-endian UTF16 stream of bytes. If that is desired, the string can be\n// encoded as such before being passed to this function.\nfunc NewV5(namespace GUID, name []byte) (GUID, error) {\n\tb := sha1.New() //nolint:gosec // not used for secure application\n\tnamespaceBytes := namespace.ToArray()\n\tb.Write(namespaceBytes[:])\n\tb.Write(name)\n\n\ta := [16]byte{}\n\tcopy(a[:], b.Sum(nil))\n\n\tg := FromArray(a)\n\tg.setVersion(5) // Version 5 means generated from a string.\n\tg.setVariant(VariantRFC4122)\n\n\treturn g, nil\n}\n\nfunc fromArray(b [16]byte, order binary.ByteOrder) GUID {\n\tvar g GUID\n\tg.Data1 = order.Uint32(b[0:4])\n\tg.Data2 = order.Uint16(b[4:6])\n\tg.Data3 = order.Uint16(b[6:8])\n\tcopy(g.Data4[:], b[8:16])\n\treturn g\n}\n\nfunc (g GUID) toArray(order binary.ByteOrder) [16]byte {\n\tb := [16]byte{}\n\torder.PutUint32(b[0:4], g.Data1)\n\torder.PutUint16(b[4:6], g.Data2)\n\torder.PutUint16(b[6:8], g.Data3)\n\tcopy(b[8:16], g.Data4[:])\n\treturn b\n}\n\n// FromArray constructs a GUID from a big-endian encoding array of 16 bytes.\nfunc FromArray(b [16]byte) GUID {\n\treturn fromArray(b, binary.BigEndian)\n}\n\n// ToArray returns an array of 16 bytes representing the GUID in big-endian\n// encoding.\nfunc (g GUID) ToArray() [16]byte {\n\treturn g.toArray(binary.BigEndian)\n}\n\n// FromWindowsArray constructs a GUID from a Windows encoding array of bytes.\nfunc FromWindowsArray(b [16]byte) GUID {\n\treturn fromArray(b, binary.LittleEndian)\n}\n\n// ToWindowsArray returns an array of 16 bytes representing the GUID in Windows\n// encoding.\nfunc (g GUID) ToWindowsArray() [16]byte {\n\treturn g.toArray(binary.LittleEndian)\n}\n\nfunc (g GUID) String() string {\n\treturn fmt.Sprintf(\n\t\t\"%08x-%04x-%04x-%04x-%012x\",\n\t\tg.Data1,\n\t\tg.Data2,\n\t\tg.Data3,\n\t\tg.Data4[:2],\n\t\tg.Data4[2:])\n}\n\n// FromString parses a string containing a GUID and returns the GUID. The only\n// format currently supported is the `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`\n// format.\nfunc FromString(s string) (GUID, error) {\n\tif len(s) != 36 {\n\t\treturn GUID{}, fmt.Errorf(\"invalid GUID %q\", s)\n\t}\n\tif s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {\n\t\treturn GUID{}, fmt.Errorf(\"invalid GUID %q\", s)\n\t}\n\n\tvar g GUID\n\n\tdata1, err := strconv.ParseUint(s[0:8], 16, 32)\n\tif err != nil {\n\t\treturn GUID{}, fmt.Errorf(\"invalid GUID %q\", s)\n\t}\n\tg.Data1 = uint32(data1)\n\n\tdata2, err := strconv.ParseUint(s[9:13], 16, 16)\n\tif err != nil {\n\t\treturn GUID{}, fmt.Errorf(\"invalid GUID %q\", s)\n\t}\n\tg.Data2 = uint16(data2)\n\n\tdata3, err := strconv.ParseUint(s[14:18], 16, 16)\n\tif err != nil {\n\t\treturn GUID{}, fmt.Errorf(\"invalid GUID %q\", s)\n\t}\n\tg.Data3 = uint16(data3)\n\n\tfor i, x := range []int{19, 21, 24, 26, 28, 30, 32, 34} {\n\t\tv, err := strconv.ParseUint(s[x:x+2], 16, 8)\n\t\tif err != nil {\n\t\t\treturn GUID{}, fmt.Errorf(\"invalid GUID %q\", s)\n\t\t}\n\t\tg.Data4[i] = uint8(v)\n\t}\n\n\treturn g, nil\n}\n\nfunc (g *GUID) setVariant(v Variant) {\n\td := g.Data4[0]\n\tswitch v {\n\tcase VariantNCS:\n\t\td = (d & 0x7f)\n\tcase VariantRFC4122:\n\t\td = (d & 0x3f) | 0x80\n\tcase VariantMicrosoft:\n\t\td = (d & 0x1f) | 0xc0\n\tcase VariantFuture:\n\t\td = (d & 0x0f) | 0xe0\n\tcase VariantUnknown:\n\t\tfallthrough\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"invalid variant: %d\", v))\n\t}\n\tg.Data4[0] = d\n}\n\n// Variant returns the GUID variant, as defined in RFC 4122.\nfunc (g GUID) Variant() Variant {\n\tb := g.Data4[0]\n\tif b&0x80 == 0 {\n\t\treturn VariantNCS\n\t} else if b&0xc0 == 0x80 {\n\t\treturn VariantRFC4122\n\t} else if b&0xe0 == 0xc0 {\n\t\treturn VariantMicrosoft\n\t} else if b&0xe0 == 0xe0 {\n\t\treturn VariantFuture\n\t}\n\treturn VariantUnknown\n}\n\nfunc (g *GUID) setVersion(v Version) {\n\tg.Data3 = (g.Data3 & 0x0fff) | (uint16(v) << 12)\n}\n\n// Version returns the GUID version, as defined in RFC 4122.\nfunc (g GUID) Version() Version {\n\treturn Version((g.Data3 & 0xF000) >> 12)\n}\n\n// MarshalText returns the textual representation of the GUID.\nfunc (g GUID) MarshalText() ([]byte, error) {\n\treturn []byte(g.String()), nil\n}\n\n// UnmarshalText takes the textual representation of a GUID, and unmarhals it\n// into this GUID.\nfunc (g *GUID) UnmarshalText(text []byte) error {\n\tg2, err := FromString(string(text))\n\tif err != nil {\n\t\treturn err\n\t}\n\t*g = g2\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go",
    "content": "//go:build !windows\n// +build !windows\n\npackage guid\n\n// GUID represents a GUID/UUID. It has the same structure as\n// golang.org/x/sys/windows.GUID so that it can be used with functions expecting\n// that type. It is defined as its own type as that is only available to builds\n// targeted at `windows`. The representation matches that used by native Windows\n// code.\ntype GUID struct {\n\tData1 uint32\n\tData2 uint16\n\tData3 uint16\n\tData4 [8]byte\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go",
    "content": "//go:build windows\n// +build windows\n\npackage guid\n\nimport \"golang.org/x/sys/windows\"\n\n// GUID represents a GUID/UUID. It has the same structure as\n// golang.org/x/sys/windows.GUID so that it can be used with functions expecting\n// that type. It is defined as its own type so that stringification and\n// marshaling can be supported. The representation matches that used by native\n// Windows code.\ntype GUID windows.GUID\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go",
    "content": "// Code generated by \"stringer -type=Variant -trimprefix=Variant -linecomment\"; DO NOT EDIT.\n\npackage guid\n\nimport \"strconv\"\n\nfunc _() {\n\t// An \"invalid array index\" compiler error signifies that the constant values have changed.\n\t// Re-run the stringer command to generate them again.\n\tvar x [1]struct{}\n\t_ = x[VariantUnknown-0]\n\t_ = x[VariantNCS-1]\n\t_ = x[VariantRFC4122-2]\n\t_ = x[VariantMicrosoft-3]\n\t_ = x[VariantFuture-4]\n}\n\nconst _Variant_name = \"UnknownNCSRFC 4122MicrosoftFuture\"\n\nvar _Variant_index = [...]uint8{0, 7, 10, 18, 27, 33}\n\nfunc (i Variant) String() string {\n\tif i >= Variant(len(_Variant_index)-1) {\n\t\treturn \"Variant(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _Variant_name[_Variant_index[i]:_Variant_index[i+1]]\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/privilege.go",
    "content": "//go:build windows\n// +build windows\n\npackage winio\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"sync\"\n\t\"unicode/utf16\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\n//sys adjustTokenPrivileges(token windows.Token, releaseAll bool, input *byte, outputSize uint32, output *byte, requiredSize *uint32) (success bool, err error) [true] = advapi32.AdjustTokenPrivileges\n//sys impersonateSelf(level uint32) (err error) = advapi32.ImpersonateSelf\n//sys revertToSelf() (err error) = advapi32.RevertToSelf\n//sys openThreadToken(thread windows.Handle, accessMask uint32, openAsSelf bool, token *windows.Token) (err error) = advapi32.OpenThreadToken\n//sys getCurrentThread() (h windows.Handle) = GetCurrentThread\n//sys lookupPrivilegeValue(systemName string, name string, luid *uint64) (err error) = advapi32.LookupPrivilegeValueW\n//sys lookupPrivilegeName(systemName string, luid *uint64, buffer *uint16, size *uint32) (err error) = advapi32.LookupPrivilegeNameW\n//sys lookupPrivilegeDisplayName(systemName string, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) = advapi32.LookupPrivilegeDisplayNameW\n\nconst (\n\t//revive:disable-next-line:var-naming ALL_CAPS\n\tSE_PRIVILEGE_ENABLED = windows.SE_PRIVILEGE_ENABLED\n\n\t//revive:disable-next-line:var-naming ALL_CAPS\n\tERROR_NOT_ALL_ASSIGNED windows.Errno = windows.ERROR_NOT_ALL_ASSIGNED\n\n\tSeBackupPrivilege   = \"SeBackupPrivilege\"\n\tSeRestorePrivilege  = \"SeRestorePrivilege\"\n\tSeSecurityPrivilege = \"SeSecurityPrivilege\"\n)\n\nvar (\n\tprivNames     = make(map[string]uint64)\n\tprivNameMutex sync.Mutex\n)\n\n// PrivilegeError represents an error enabling privileges.\ntype PrivilegeError struct {\n\tprivileges []uint64\n}\n\nfunc (e *PrivilegeError) Error() string {\n\ts := \"Could not enable privilege \"\n\tif len(e.privileges) > 1 {\n\t\ts = \"Could not enable privileges \"\n\t}\n\tfor i, p := range e.privileges {\n\t\tif i != 0 {\n\t\t\ts += \", \"\n\t\t}\n\t\ts += `\"`\n\t\ts += getPrivilegeName(p)\n\t\ts += `\"`\n\t}\n\treturn s\n}\n\n// RunWithPrivilege enables a single privilege for a function call.\nfunc RunWithPrivilege(name string, fn func() error) error {\n\treturn RunWithPrivileges([]string{name}, fn)\n}\n\n// RunWithPrivileges enables privileges for a function call.\nfunc RunWithPrivileges(names []string, fn func() error) error {\n\tprivileges, err := mapPrivileges(names)\n\tif err != nil {\n\t\treturn err\n\t}\n\truntime.LockOSThread()\n\tdefer runtime.UnlockOSThread()\n\ttoken, err := newThreadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer releaseThreadToken(token)\n\terr = adjustPrivileges(token, privileges, SE_PRIVILEGE_ENABLED)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn fn()\n}\n\nfunc mapPrivileges(names []string) ([]uint64, error) {\n\tprivileges := make([]uint64, 0, len(names))\n\tprivNameMutex.Lock()\n\tdefer privNameMutex.Unlock()\n\tfor _, name := range names {\n\t\tp, ok := privNames[name]\n\t\tif !ok {\n\t\t\terr := lookupPrivilegeValue(\"\", name, &p)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tprivNames[name] = p\n\t\t}\n\t\tprivileges = append(privileges, p)\n\t}\n\treturn privileges, nil\n}\n\n// EnableProcessPrivileges enables privileges globally for the process.\nfunc EnableProcessPrivileges(names []string) error {\n\treturn enableDisableProcessPrivilege(names, SE_PRIVILEGE_ENABLED)\n}\n\n// DisableProcessPrivileges disables privileges globally for the process.\nfunc DisableProcessPrivileges(names []string) error {\n\treturn enableDisableProcessPrivilege(names, 0)\n}\n\nfunc enableDisableProcessPrivilege(names []string, action uint32) error {\n\tprivileges, err := mapPrivileges(names)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tp := windows.CurrentProcess()\n\tvar token windows.Token\n\terr = windows.OpenProcessToken(p, windows.TOKEN_ADJUST_PRIVILEGES|windows.TOKEN_QUERY, &token)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tdefer token.Close()\n\treturn adjustPrivileges(token, privileges, action)\n}\n\nfunc adjustPrivileges(token windows.Token, privileges []uint64, action uint32) error {\n\tvar b bytes.Buffer\n\t_ = binary.Write(&b, binary.LittleEndian, uint32(len(privileges)))\n\tfor _, p := range privileges {\n\t\t_ = binary.Write(&b, binary.LittleEndian, p)\n\t\t_ = binary.Write(&b, binary.LittleEndian, action)\n\t}\n\tprevState := make([]byte, b.Len())\n\treqSize := uint32(0)\n\tsuccess, err := adjustTokenPrivileges(token, false, &b.Bytes()[0], uint32(len(prevState)), &prevState[0], &reqSize)\n\tif !success {\n\t\treturn err\n\t}\n\tif err == ERROR_NOT_ALL_ASSIGNED { //nolint:errorlint // err is Errno\n\t\treturn &PrivilegeError{privileges}\n\t}\n\treturn nil\n}\n\nfunc getPrivilegeName(luid uint64) string {\n\tvar nameBuffer [256]uint16\n\tbufSize := uint32(len(nameBuffer))\n\terr := lookupPrivilegeName(\"\", &luid, &nameBuffer[0], &bufSize)\n\tif err != nil {\n\t\treturn fmt.Sprintf(\"<unknown privilege %d>\", luid)\n\t}\n\n\tvar displayNameBuffer [256]uint16\n\tdisplayBufSize := uint32(len(displayNameBuffer))\n\tvar langID uint32\n\terr = lookupPrivilegeDisplayName(\"\", &nameBuffer[0], &displayNameBuffer[0], &displayBufSize, &langID)\n\tif err != nil {\n\t\treturn fmt.Sprintf(\"<unknown privilege %s>\", string(utf16.Decode(nameBuffer[:bufSize])))\n\t}\n\n\treturn string(utf16.Decode(displayNameBuffer[:displayBufSize]))\n}\n\nfunc newThreadToken() (windows.Token, error) {\n\terr := impersonateSelf(windows.SecurityImpersonation)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tvar token windows.Token\n\terr = openThreadToken(getCurrentThread(), windows.TOKEN_ADJUST_PRIVILEGES|windows.TOKEN_QUERY, false, &token)\n\tif err != nil {\n\t\trerr := revertToSelf()\n\t\tif rerr != nil {\n\t\t\tpanic(rerr)\n\t\t}\n\t\treturn 0, err\n\t}\n\treturn token, nil\n}\n\nfunc releaseThreadToken(h windows.Token) {\n\terr := revertToSelf()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\th.Close()\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/reparse.go",
    "content": "//go:build windows\n// +build windows\n\npackage winio\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"strings\"\n\t\"unicode/utf16\"\n\t\"unsafe\"\n)\n\nconst (\n\treparseTagMountPoint = 0xA0000003\n\treparseTagSymlink    = 0xA000000C\n)\n\ntype reparseDataBuffer struct {\n\tReparseTag           uint32\n\tReparseDataLength    uint16\n\tReserved             uint16\n\tSubstituteNameOffset uint16\n\tSubstituteNameLength uint16\n\tPrintNameOffset      uint16\n\tPrintNameLength      uint16\n}\n\n// ReparsePoint describes a Win32 symlink or mount point.\ntype ReparsePoint struct {\n\tTarget       string\n\tIsMountPoint bool\n}\n\n// UnsupportedReparsePointError is returned when trying to decode a non-symlink or\n// mount point reparse point.\ntype UnsupportedReparsePointError struct {\n\tTag uint32\n}\n\nfunc (e *UnsupportedReparsePointError) Error() string {\n\treturn fmt.Sprintf(\"unsupported reparse point %x\", e.Tag)\n}\n\n// DecodeReparsePoint decodes a Win32 REPARSE_DATA_BUFFER structure containing either a symlink\n// or a mount point.\nfunc DecodeReparsePoint(b []byte) (*ReparsePoint, error) {\n\ttag := binary.LittleEndian.Uint32(b[0:4])\n\treturn DecodeReparsePointData(tag, b[8:])\n}\n\nfunc DecodeReparsePointData(tag uint32, b []byte) (*ReparsePoint, error) {\n\tisMountPoint := false\n\tswitch tag {\n\tcase reparseTagMountPoint:\n\t\tisMountPoint = true\n\tcase reparseTagSymlink:\n\tdefault:\n\t\treturn nil, &UnsupportedReparsePointError{tag}\n\t}\n\tnameOffset := 8 + binary.LittleEndian.Uint16(b[4:6])\n\tif !isMountPoint {\n\t\tnameOffset += 4\n\t}\n\tnameLength := binary.LittleEndian.Uint16(b[6:8])\n\tname := make([]uint16, nameLength/2)\n\terr := binary.Read(bytes.NewReader(b[nameOffset:nameOffset+nameLength]), binary.LittleEndian, &name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &ReparsePoint{string(utf16.Decode(name)), isMountPoint}, nil\n}\n\nfunc isDriveLetter(c byte) bool {\n\treturn (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')\n}\n\n// EncodeReparsePoint encodes a Win32 REPARSE_DATA_BUFFER structure describing a symlink or\n// mount point.\nfunc EncodeReparsePoint(rp *ReparsePoint) []byte {\n\t// Generate an NT path and determine if this is a relative path.\n\tvar ntTarget string\n\trelative := false\n\tif strings.HasPrefix(rp.Target, `\\\\?\\`) {\n\t\tntTarget = `\\??\\` + rp.Target[4:]\n\t} else if strings.HasPrefix(rp.Target, `\\\\`) {\n\t\tntTarget = `\\??\\UNC\\` + rp.Target[2:]\n\t} else if len(rp.Target) >= 2 && isDriveLetter(rp.Target[0]) && rp.Target[1] == ':' {\n\t\tntTarget = `\\??\\` + rp.Target\n\t} else {\n\t\tntTarget = rp.Target\n\t\trelative = true\n\t}\n\n\t// The paths must be NUL-terminated even though they are counted strings.\n\ttarget16 := utf16.Encode([]rune(rp.Target + \"\\x00\"))\n\tntTarget16 := utf16.Encode([]rune(ntTarget + \"\\x00\"))\n\n\tsize := int(unsafe.Sizeof(reparseDataBuffer{})) - 8\n\tsize += len(ntTarget16)*2 + len(target16)*2\n\n\ttag := uint32(reparseTagMountPoint)\n\tif !rp.IsMountPoint {\n\t\ttag = reparseTagSymlink\n\t\tsize += 4 // Add room for symlink flags\n\t}\n\n\tdata := reparseDataBuffer{\n\t\tReparseTag:           tag,\n\t\tReparseDataLength:    uint16(size),\n\t\tSubstituteNameOffset: 0,\n\t\tSubstituteNameLength: uint16((len(ntTarget16) - 1) * 2),\n\t\tPrintNameOffset:      uint16(len(ntTarget16) * 2),\n\t\tPrintNameLength:      uint16((len(target16) - 1) * 2),\n\t}\n\n\tvar b bytes.Buffer\n\t_ = binary.Write(&b, binary.LittleEndian, &data)\n\tif !rp.IsMountPoint {\n\t\tflags := uint32(0)\n\t\tif relative {\n\t\t\tflags |= 1\n\t\t}\n\t\t_ = binary.Write(&b, binary.LittleEndian, flags)\n\t}\n\n\t_ = binary.Write(&b, binary.LittleEndian, ntTarget16)\n\t_ = binary.Write(&b, binary.LittleEndian, target16)\n\treturn b.Bytes()\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/sd.go",
    "content": "//go:build windows\n// +build windows\n\npackage winio\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\n//sys lookupAccountName(systemName *uint16, accountName string, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) = advapi32.LookupAccountNameW\n//sys lookupAccountSid(systemName *uint16, sid *byte, name *uint16, nameSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) = advapi32.LookupAccountSidW\n//sys convertSidToStringSid(sid *byte, str **uint16) (err error) = advapi32.ConvertSidToStringSidW\n//sys convertStringSidToSid(str *uint16, sid **byte) (err error) = advapi32.ConvertStringSidToSidW\n\ntype AccountLookupError struct {\n\tName string\n\tErr  error\n}\n\nfunc (e *AccountLookupError) Error() string {\n\tif e.Name == \"\" {\n\t\treturn \"lookup account: empty account name specified\"\n\t}\n\tvar s string\n\tswitch {\n\tcase errors.Is(e.Err, windows.ERROR_INVALID_SID):\n\t\ts = \"the security ID structure is invalid\"\n\tcase errors.Is(e.Err, windows.ERROR_NONE_MAPPED):\n\t\ts = \"not found\"\n\tdefault:\n\t\ts = e.Err.Error()\n\t}\n\treturn \"lookup account \" + e.Name + \": \" + s\n}\n\nfunc (e *AccountLookupError) Unwrap() error { return e.Err }\n\ntype SddlConversionError struct {\n\tSddl string\n\tErr  error\n}\n\nfunc (e *SddlConversionError) Error() string {\n\treturn \"convert \" + e.Sddl + \": \" + e.Err.Error()\n}\n\nfunc (e *SddlConversionError) Unwrap() error { return e.Err }\n\n// LookupSidByName looks up the SID of an account by name\n//\n//revive:disable-next-line:var-naming SID, not Sid\nfunc LookupSidByName(name string) (sid string, err error) {\n\tif name == \"\" {\n\t\treturn \"\", &AccountLookupError{name, windows.ERROR_NONE_MAPPED}\n\t}\n\n\tvar sidSize, sidNameUse, refDomainSize uint32\n\terr = lookupAccountName(nil, name, nil, &sidSize, nil, &refDomainSize, &sidNameUse)\n\tif err != nil && err != windows.ERROR_INSUFFICIENT_BUFFER { //nolint:errorlint // err is Errno\n\t\treturn \"\", &AccountLookupError{name, err}\n\t}\n\tsidBuffer := make([]byte, sidSize)\n\trefDomainBuffer := make([]uint16, refDomainSize)\n\terr = lookupAccountName(nil, name, &sidBuffer[0], &sidSize, &refDomainBuffer[0], &refDomainSize, &sidNameUse)\n\tif err != nil {\n\t\treturn \"\", &AccountLookupError{name, err}\n\t}\n\tvar strBuffer *uint16\n\terr = convertSidToStringSid(&sidBuffer[0], &strBuffer)\n\tif err != nil {\n\t\treturn \"\", &AccountLookupError{name, err}\n\t}\n\tsid = windows.UTF16ToString((*[0xffff]uint16)(unsafe.Pointer(strBuffer))[:])\n\t_, _ = windows.LocalFree(windows.Handle(unsafe.Pointer(strBuffer)))\n\treturn sid, nil\n}\n\n// LookupNameBySid looks up the name of an account by SID\n//\n//revive:disable-next-line:var-naming SID, not Sid\nfunc LookupNameBySid(sid string) (name string, err error) {\n\tif sid == \"\" {\n\t\treturn \"\", &AccountLookupError{sid, windows.ERROR_NONE_MAPPED}\n\t}\n\n\tsidBuffer, err := windows.UTF16PtrFromString(sid)\n\tif err != nil {\n\t\treturn \"\", &AccountLookupError{sid, err}\n\t}\n\n\tvar sidPtr *byte\n\tif err = convertStringSidToSid(sidBuffer, &sidPtr); err != nil {\n\t\treturn \"\", &AccountLookupError{sid, err}\n\t}\n\tdefer windows.LocalFree(windows.Handle(unsafe.Pointer(sidPtr))) //nolint:errcheck\n\n\tvar nameSize, refDomainSize, sidNameUse uint32\n\terr = lookupAccountSid(nil, sidPtr, nil, &nameSize, nil, &refDomainSize, &sidNameUse)\n\tif err != nil && err != windows.ERROR_INSUFFICIENT_BUFFER { //nolint:errorlint // err is Errno\n\t\treturn \"\", &AccountLookupError{sid, err}\n\t}\n\n\tnameBuffer := make([]uint16, nameSize)\n\trefDomainBuffer := make([]uint16, refDomainSize)\n\terr = lookupAccountSid(nil, sidPtr, &nameBuffer[0], &nameSize, &refDomainBuffer[0], &refDomainSize, &sidNameUse)\n\tif err != nil {\n\t\treturn \"\", &AccountLookupError{sid, err}\n\t}\n\n\tname = windows.UTF16ToString(nameBuffer)\n\treturn name, nil\n}\n\nfunc SddlToSecurityDescriptor(sddl string) ([]byte, error) {\n\tsd, err := windows.SecurityDescriptorFromString(sddl)\n\tif err != nil {\n\t\treturn nil, &SddlConversionError{Sddl: sddl, Err: err}\n\t}\n\tb := unsafe.Slice((*byte)(unsafe.Pointer(sd)), sd.Length())\n\treturn b, nil\n}\n\nfunc SecurityDescriptorToSddl(sd []byte) (string, error) {\n\tif l := int(unsafe.Sizeof(windows.SECURITY_DESCRIPTOR{})); len(sd) < l {\n\t\treturn \"\", fmt.Errorf(\"SecurityDescriptor (%d) smaller than expected (%d): %w\", len(sd), l, windows.ERROR_INCORRECT_SIZE)\n\t}\n\ts := (*windows.SECURITY_DESCRIPTOR)(unsafe.Pointer(&sd[0]))\n\treturn s.String(), nil\n}\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/syscall.go",
    "content": "//go:build windows\n\npackage winio\n\n//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go ./*.go\n"
  },
  {
    "path": "vendor/github.com/Microsoft/go-winio/zsyscall_windows.go",
    "content": "//go:build windows\n\n// Code generated by 'go generate' using \"github.com/Microsoft/go-winio/tools/mkwinsyscall\"; DO NOT EDIT.\n\npackage winio\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\nvar _ unsafe.Pointer\n\n// Do the interface allocations only once for common\n// Errno values.\nconst (\n\terrnoERROR_IO_PENDING = 997\n)\n\nvar (\n\terrERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)\n\terrERROR_EINVAL     error = syscall.EINVAL\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e syscall.Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn errERROR_EINVAL\n\tcase errnoERROR_IO_PENDING:\n\t\treturn errERROR_IO_PENDING\n\t}\n\treturn e\n}\n\nvar (\n\tmodadvapi32 = windows.NewLazySystemDLL(\"advapi32.dll\")\n\tmodkernel32 = windows.NewLazySystemDLL(\"kernel32.dll\")\n\tmodntdll    = windows.NewLazySystemDLL(\"ntdll.dll\")\n\tmodws2_32   = windows.NewLazySystemDLL(\"ws2_32.dll\")\n\n\tprocAdjustTokenPrivileges              = modadvapi32.NewProc(\"AdjustTokenPrivileges\")\n\tprocConvertSidToStringSidW             = modadvapi32.NewProc(\"ConvertSidToStringSidW\")\n\tprocConvertStringSidToSidW             = modadvapi32.NewProc(\"ConvertStringSidToSidW\")\n\tprocImpersonateSelf                    = modadvapi32.NewProc(\"ImpersonateSelf\")\n\tprocLookupAccountNameW                 = modadvapi32.NewProc(\"LookupAccountNameW\")\n\tprocLookupAccountSidW                  = modadvapi32.NewProc(\"LookupAccountSidW\")\n\tprocLookupPrivilegeDisplayNameW        = modadvapi32.NewProc(\"LookupPrivilegeDisplayNameW\")\n\tprocLookupPrivilegeNameW               = modadvapi32.NewProc(\"LookupPrivilegeNameW\")\n\tprocLookupPrivilegeValueW              = modadvapi32.NewProc(\"LookupPrivilegeValueW\")\n\tprocOpenThreadToken                    = modadvapi32.NewProc(\"OpenThreadToken\")\n\tprocRevertToSelf                       = modadvapi32.NewProc(\"RevertToSelf\")\n\tprocBackupRead                         = modkernel32.NewProc(\"BackupRead\")\n\tprocBackupWrite                        = modkernel32.NewProc(\"BackupWrite\")\n\tprocCancelIoEx                         = modkernel32.NewProc(\"CancelIoEx\")\n\tprocConnectNamedPipe                   = modkernel32.NewProc(\"ConnectNamedPipe\")\n\tprocCreateIoCompletionPort             = modkernel32.NewProc(\"CreateIoCompletionPort\")\n\tprocCreateNamedPipeW                   = modkernel32.NewProc(\"CreateNamedPipeW\")\n\tprocDisconnectNamedPipe                = modkernel32.NewProc(\"DisconnectNamedPipe\")\n\tprocGetCurrentThread                   = modkernel32.NewProc(\"GetCurrentThread\")\n\tprocGetNamedPipeHandleStateW           = modkernel32.NewProc(\"GetNamedPipeHandleStateW\")\n\tprocGetNamedPipeInfo                   = modkernel32.NewProc(\"GetNamedPipeInfo\")\n\tprocGetQueuedCompletionStatus          = modkernel32.NewProc(\"GetQueuedCompletionStatus\")\n\tprocSetFileCompletionNotificationModes = modkernel32.NewProc(\"SetFileCompletionNotificationModes\")\n\tprocNtCreateNamedPipeFile              = modntdll.NewProc(\"NtCreateNamedPipeFile\")\n\tprocRtlDefaultNpAcl                    = modntdll.NewProc(\"RtlDefaultNpAcl\")\n\tprocRtlDosPathNameToNtPathName_U       = modntdll.NewProc(\"RtlDosPathNameToNtPathName_U\")\n\tprocRtlNtStatusToDosErrorNoTeb         = modntdll.NewProc(\"RtlNtStatusToDosErrorNoTeb\")\n\tprocWSAGetOverlappedResult             = modws2_32.NewProc(\"WSAGetOverlappedResult\")\n)\n\nfunc adjustTokenPrivileges(token windows.Token, releaseAll bool, input *byte, outputSize uint32, output *byte, requiredSize *uint32) (success bool, err error) {\n\tvar _p0 uint32\n\tif releaseAll {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.SyscallN(procAdjustTokenPrivileges.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(input)), uintptr(outputSize), uintptr(unsafe.Pointer(output)), uintptr(unsafe.Pointer(requiredSize)))\n\tsuccess = r0 != 0\n\tif true {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc convertSidToStringSid(sid *byte, str **uint16) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procConvertSidToStringSidW.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(str)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc convertStringSidToSid(str *uint16, sid **byte) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procConvertStringSidToSidW.Addr(), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(sid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc impersonateSelf(level uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procImpersonateSelf.Addr(), uintptr(level))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc lookupAccountName(systemName *uint16, accountName string, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(accountName)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _lookupAccountName(systemName, _p0, sid, sidSize, refDomain, refDomainSize, sidNameUse)\n}\n\nfunc _lookupAccountName(systemName *uint16, accountName *uint16, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procLookupAccountNameW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidSize)), uintptr(unsafe.Pointer(refDomain)), uintptr(unsafe.Pointer(refDomainSize)), uintptr(unsafe.Pointer(sidNameUse)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc lookupAccountSid(systemName *uint16, sid *byte, name *uint16, nameSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procLookupAccountSidW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameSize)), uintptr(unsafe.Pointer(refDomain)), uintptr(unsafe.Pointer(refDomainSize)), uintptr(unsafe.Pointer(sidNameUse)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc lookupPrivilegeDisplayName(systemName string, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(systemName)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _lookupPrivilegeDisplayName(_p0, name, buffer, size, languageId)\n}\n\nfunc _lookupPrivilegeDisplayName(systemName *uint16, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procLookupPrivilegeDisplayNameW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(languageId)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc lookupPrivilegeName(systemName string, luid *uint64, buffer *uint16, size *uint32) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(systemName)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _lookupPrivilegeName(_p0, luid, buffer, size)\n}\n\nfunc _lookupPrivilegeName(systemName *uint16, luid *uint64, buffer *uint16, size *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procLookupPrivilegeNameW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(luid)), uintptr(unsafe.Pointer(buffer)), uintptr(unsafe.Pointer(size)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc lookupPrivilegeValue(systemName string, name string, luid *uint64) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(systemName)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *uint16\n\t_p1, err = syscall.UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _lookupPrivilegeValue(_p0, _p1, luid)\n}\n\nfunc _lookupPrivilegeValue(systemName *uint16, name *uint16, luid *uint64) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procLookupPrivilegeValueW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc openThreadToken(thread windows.Handle, accessMask uint32, openAsSelf bool, token *windows.Token) (err error) {\n\tvar _p0 uint32\n\tif openAsSelf {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procOpenThreadToken.Addr(), uintptr(thread), uintptr(accessMask), uintptr(_p0), uintptr(unsafe.Pointer(token)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc revertToSelf() (err error) {\n\tr1, _, e1 := syscall.SyscallN(procRevertToSelf.Addr())\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc backupRead(h windows.Handle, b []byte, bytesRead *uint32, abort bool, processSecurity bool, context *uintptr) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 uint32\n\tif abort {\n\t\t_p1 = 1\n\t}\n\tvar _p2 uint32\n\tif processSecurity {\n\t\t_p2 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procBackupRead.Addr(), uintptr(h), uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(unsafe.Pointer(bytesRead)), uintptr(_p1), uintptr(_p2), uintptr(unsafe.Pointer(context)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc backupWrite(h windows.Handle, b []byte, bytesWritten *uint32, abort bool, processSecurity bool, context *uintptr) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 uint32\n\tif abort {\n\t\t_p1 = 1\n\t}\n\tvar _p2 uint32\n\tif processSecurity {\n\t\t_p2 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procBackupWrite.Addr(), uintptr(h), uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(unsafe.Pointer(bytesWritten)), uintptr(_p1), uintptr(_p2), uintptr(unsafe.Pointer(context)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc cancelIoEx(file windows.Handle, o *windows.Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procCancelIoEx.Addr(), uintptr(file), uintptr(unsafe.Pointer(o)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc connectNamedPipe(pipe windows.Handle, o *windows.Overlapped) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procConnectNamedPipe.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(o)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc createIoCompletionPort(file windows.Handle, port windows.Handle, key uintptr, threadCount uint32) (newport windows.Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateIoCompletionPort.Addr(), uintptr(file), uintptr(port), uintptr(key), uintptr(threadCount))\n\tnewport = windows.Handle(r0)\n\tif newport == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *windows.SecurityAttributes) (handle windows.Handle, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _createNamedPipe(_p0, flags, pipeMode, maxInstances, outSize, inSize, defaultTimeout, sa)\n}\n\nfunc _createNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *windows.SecurityAttributes) (handle windows.Handle, err error) {\n\tr0, _, e1 := syscall.SyscallN(procCreateNamedPipeW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)))\n\thandle = windows.Handle(r0)\n\tif handle == windows.InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc disconnectNamedPipe(pipe windows.Handle) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procDisconnectNamedPipe.Addr(), uintptr(pipe))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getCurrentThread() (h windows.Handle) {\n\tr0, _, _ := syscall.SyscallN(procGetCurrentThread.Addr())\n\th = windows.Handle(r0)\n\treturn\n}\n\nfunc getNamedPipeHandleState(pipe windows.Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetNamedPipeHandleStateW.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getNamedPipeInfo(pipe windows.Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetNamedPipeInfo.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getQueuedCompletionStatus(port windows.Handle, bytes *uint32, key *uintptr, o **ioOperation, timeout uint32) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procGetQueuedCompletionStatus.Addr(), uintptr(port), uintptr(unsafe.Pointer(bytes)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(o)), uintptr(timeout))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setFileCompletionNotificationModes(h windows.Handle, flags uint8) (err error) {\n\tr1, _, e1 := syscall.SyscallN(procSetFileCompletionNotificationModes.Addr(), uintptr(h), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ntCreateNamedPipeFile(pipe *windows.Handle, access ntAccessMask, oa *objectAttributes, iosb *ioStatusBlock, share ntFileShareMode, disposition ntFileCreationDisposition, options ntFileOptions, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (status ntStatus) {\n\tr0, _, _ := syscall.SyscallN(procNtCreateNamedPipeFile.Addr(), uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)))\n\tstatus = ntStatus(r0)\n\treturn\n}\n\nfunc rtlDefaultNpAcl(dacl *uintptr) (status ntStatus) {\n\tr0, _, _ := syscall.SyscallN(procRtlDefaultNpAcl.Addr(), uintptr(unsafe.Pointer(dacl)))\n\tstatus = ntStatus(r0)\n\treturn\n}\n\nfunc rtlDosPathNameToNtPathName(name *uint16, ntName *unicodeString, filePart uintptr, reserved uintptr) (status ntStatus) {\n\tr0, _, _ := syscall.SyscallN(procRtlDosPathNameToNtPathName_U.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(ntName)), uintptr(filePart), uintptr(reserved))\n\tstatus = ntStatus(r0)\n\treturn\n}\n\nfunc rtlNtStatusToDosError(status ntStatus) (winerr error) {\n\tr0, _, _ := syscall.SyscallN(procRtlNtStatusToDosErrorNoTeb.Addr(), uintptr(status))\n\tif r0 != 0 {\n\t\twinerr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc wsaGetOverlappedResult(h windows.Handle, o *windows.Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) {\n\tvar _p0 uint32\n\tif wait {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.SyscallN(procWSAGetOverlappedResult.Addr(), uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/OpenPeeDeeP/xdg/.gitignore",
    "content": "*.test\n*.out\n.DS_STORE\n"
  },
  {
    "path": "vendor/github.com/OpenPeeDeeP/xdg/.travis.yml",
    "content": "language: go\ngo:\n- 1.11.x\nos:\n- linux\n- osx\nbefore_install:\n- go get -t -v ./...\nscript:\n- go test -v -race -covermode=atomic -coverprofile=coverage.txt\nafter_success:\n- bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/OpenPeeDeeP/xdg/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) 2017, OpenPeeDeeP\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/OpenPeeDeeP/xdg/README.md",
    "content": "# XDG [![Build status](https://ci.appveyor.com/api/projects/status/9eoupq9jgsu2p0jv?svg=true)](https://ci.appveyor.com/project/dixonwille/xdg) [![Build Status](https://travis-ci.org/OpenPeeDeeP/xdg.svg?branch=master)](https://travis-ci.org/OpenPeeDeeP/xdg) [![Go Report Card](https://goreportcard.com/badge/github.com/OpenPeeDeeP/xdg)](https://goreportcard.com/report/github.com/OpenPeeDeeP/xdg) [![GoDoc](https://godoc.org/github.com/OpenPeeDeeP/xdg?status.svg)](https://godoc.org/github.com/OpenPeeDeeP/xdg) [![codecov](https://codecov.io/gh/OpenPeeDeeP/xdg/branch/master/graph/badge.svg)](https://codecov.io/gh/OpenPeeDeeP/xdg)\n\nA cross platform package that tries to follow [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html) when possible. Since XDG is linux specific, I am only able to follow standards to the T on linux. But for the other operating systems I am finding similar best practice locations for the files.\n\n## Locations Per OS\n\nThe following table shows what is used if the envrionment variable is not set. If the variable is set then this package uses that. Linux follows the default standards. Mac does when it comes to the home directory but for system wide it uses the standard `/Library/Application Support`. As for Windows, the variable defaults are just other environment variables set up by the operation system.\n\n> When creating `XDG` application the `Vendor` and `Application` names are appeneded to the end of the path to keep projects unique.\n\n|  | Linux(and BSD) | Mac | Windows |\n| ---: | :---: | :---: | :---: |\n| `XDG_DATA_DIRS` | [`/usr/local/share`, `/usr/share`] | [`/Library/Application Support`] | `%PROGRAMDATA%` |\n| `XDG_DATA_HOME` | `~/.local/share` | `~/Library/Application Support` | `%APPDATA%` |\n| `XDG_CONFIG_DIRS` | [`/etc/xdg`] | [`/Library/Application Support`] | `%PROGRAMDATA%` |\n| `XDG_CONFIG_HOME` | `~/.config` | `~/Library/Application Support` | `%APPDATA%` |\n| `XDG_CACHE_HOME` | `~/.cache` | `~/Library/Caches` | `%LOCALAPPDATA%` |\n\n## Notes\n\n- This package does not merge files if they exist across different directories.\n- The `Query` methods search through the system variables, `DIRS`, first (when using environment variables first in the variable has presidence). It then checks home variables, `HOME`.\n- This package will not create any directories for you. In the standard, it states the following:\n\n> If, when attempting to write a file, the destination directory is non-existant an attempt should be made to create it with permission `0700`. If the destination directory exists already the permissions should not be changed. The application should be prepared to handle the case where the file could not be written, either because the directory was non-existant and could not be created, or for any other reason. In such case it may chose to present an error message to the user.\n"
  },
  {
    "path": "vendor/github.com/OpenPeeDeeP/xdg/appveyor.yml",
    "content": "version: 0.0.1_{build}\nbuild: off\nplatform: x64\nclone_folder: c:\\gopath\\src\\github.com\\OpenPeeDeeP\\xdg\nenvironment:\n  GOPATH: c:\\gopath\nstack: go 1.11\ninstall:\n  - go get -t -v ./...\n  - cinst codecov\nbefore_test:\n  - go vet ./...\ntest_script:\n  - go test -v -race -covermode=atomic -coverprofile=coverage.txt\non_success:\n  - codecov -f coverage.txt\n"
  },
  {
    "path": "vendor/github.com/OpenPeeDeeP/xdg/xdg.go",
    "content": "// Copyright (c) 2017, OpenPeeDeeP. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package xdg impelements the XDG standard for application file locations.\npackage xdg\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n)\n\nvar defaulter xdgDefaulter = new(osDefaulter)\n\ntype xdgDefaulter interface {\n\tdefaultDataHome() string\n\tdefaultDataDirs() []string\n\tdefaultConfigHome() string\n\tdefaultConfigDirs() []string\n\tdefaultCacheHome() string\n}\n\ntype osDefaulter struct {\n}\n\n//This method is used in the testing suit\n// nolint: deadcode\nfunc setDefaulter(def xdgDefaulter) {\n\tdefaulter = def\n}\n\n// XDG is information about the currently running application\ntype XDG struct {\n\tVendor      string\n\tApplication string\n}\n\n// New returns an instance of XDG that is used to grab files for application use\nfunc New(vendor, application string) *XDG {\n\treturn &XDG{\n\t\tVendor:      vendor,\n\t\tApplication: application,\n\t}\n}\n\n// DataHome returns the location that should be used for user specific data files for this specific application\nfunc (x *XDG) DataHome() string {\n\treturn filepath.Join(DataHome(), x.Vendor, x.Application)\n}\n\n// DataDirs returns a list of locations that should be used for system wide data files for this specific application\nfunc (x *XDG) DataDirs() []string {\n\tdataDirs := DataDirs()\n\tfor i, dir := range dataDirs {\n\t\tdataDirs[i] = filepath.Join(dir, x.Vendor, x.Application)\n\t}\n\treturn dataDirs\n}\n\n// ConfigHome returns the location that should be used for user specific config files for this specific application\nfunc (x *XDG) ConfigHome() string {\n\treturn filepath.Join(ConfigHome(), x.Vendor, x.Application)\n}\n\n// ConfigDirs returns a list of locations that should be used for system wide config files for this specific application\nfunc (x *XDG) ConfigDirs() []string {\n\tconfigDirs := ConfigDirs()\n\tfor i, dir := range configDirs {\n\t\tconfigDirs[i] = filepath.Join(dir, x.Vendor, x.Application)\n\t}\n\treturn configDirs\n}\n\n// CacheHome returns the location that should be used for application cache files for this specific application\nfunc (x *XDG) CacheHome() string {\n\treturn filepath.Join(CacheHome(), x.Vendor, x.Application)\n}\n\n// QueryData looks for the given filename in XDG paths for data files.\n// Returns an empty string if one was not found.\nfunc (x *XDG) QueryData(filename string) string {\n\tdirs := x.DataDirs()\n\tdirs = append([]string{x.DataHome()}, dirs...)\n\treturn returnExist(filename, dirs)\n}\n\n// QueryConfig looks for the given filename in XDG paths for config files.\n// Returns an empty string if one was not found.\nfunc (x *XDG) QueryConfig(filename string) string {\n\tdirs := x.ConfigDirs()\n\tdirs = append([]string{x.ConfigHome()}, dirs...)\n\treturn returnExist(filename, dirs)\n}\n\n// QueryCache looks for the given filename in XDG paths for cache files.\n// Returns an empty string if one was not found.\nfunc (x *XDG) QueryCache(filename string) string {\n\treturn returnExist(filename, []string{x.CacheHome()})\n}\n\nfunc returnExist(filename string, dirs []string) string {\n\tfor _, dir := range dirs {\n\t\t_, err := os.Stat(filepath.Join(dir, filename))\n\t\tif (err != nil && os.IsExist(err)) || err == nil {\n\t\t\treturn filepath.Join(dir, filename)\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// DataHome returns the location that should be used for user specific data files\nfunc DataHome() string {\n\tdataHome := os.Getenv(\"XDG_DATA_HOME\")\n\tif dataHome == \"\" {\n\t\tdataHome = defaulter.defaultDataHome()\n\t}\n\treturn dataHome\n}\n\n// DataDirs returns a list of locations that should be used for system wide data files\nfunc DataDirs() []string {\n\tvar dataDirs []string\n\tdataDirsStr := os.Getenv(\"XDG_DATA_DIRS\")\n\tif dataDirsStr != \"\" {\n\t\tdataDirs = strings.Split(dataDirsStr, string(os.PathListSeparator))\n\t}\n\tif len(dataDirs) == 0 {\n\t\tdataDirs = defaulter.defaultDataDirs()\n\t}\n\treturn dataDirs\n}\n\n// ConfigHome returns the location that should be used for user specific config files\nfunc ConfigHome() string {\n\tconfigHome := os.Getenv(\"XDG_CONFIG_HOME\")\n\tif configHome == \"\" {\n\t\tconfigHome = defaulter.defaultConfigHome()\n\t}\n\treturn configHome\n}\n\n// ConfigDirs returns a list of locations that should be used for system wide config files\nfunc ConfigDirs() []string {\n\tvar configDirs []string\n\tconfigDirsStr := os.Getenv(\"XDG_CONFIG_DIRS\")\n\tif configDirsStr != \"\" {\n\t\tconfigDirs = strings.Split(configDirsStr, string(os.PathListSeparator))\n\t}\n\tif len(configDirs) == 0 {\n\t\tconfigDirs = defaulter.defaultConfigDirs()\n\t}\n\treturn configDirs\n}\n\n// CacheHome returns the location that should be used for application cache files\nfunc CacheHome() string {\n\tcacheHome := os.Getenv(\"XDG_CACHE_HOME\")\n\tif cacheHome == \"\" {\n\t\tcacheHome = defaulter.defaultCacheHome()\n\t}\n\treturn cacheHome\n}\n"
  },
  {
    "path": "vendor/github.com/OpenPeeDeeP/xdg/xdg_bsd.go",
    "content": "// +build freebsd openbsd netbsd\n\n// Copyright (c) 2017, OpenPeeDeeP. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xdg\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n)\n\nfunc (o *osDefaulter) defaultDataHome() string {\n\treturn filepath.Join(os.Getenv(\"HOME\"), \".local\", \"share\")\n}\n\nfunc (o *osDefaulter) defaultDataDirs() []string {\n\treturn []string{\"/usr/local/share/\", \"/usr/share/\"}\n}\n\nfunc (o *osDefaulter) defaultConfigHome() string {\n\treturn filepath.Join(os.Getenv(\"HOME\"), \".config\")\n}\n\nfunc (o *osDefaulter) defaultConfigDirs() []string {\n\treturn []string{\"/etc/xdg\"}\n}\n\nfunc (o *osDefaulter) defaultCacheHome() string {\n\treturn filepath.Join(os.Getenv(\"HOME\"), \".cache\")\n}\n"
  },
  {
    "path": "vendor/github.com/OpenPeeDeeP/xdg/xdg_darwin.go",
    "content": "// Copyright (c) 2017, OpenPeeDeeP. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xdg\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n)\n\nfunc (o *osDefaulter) defaultDataHome() string {\n\treturn filepath.Join(os.Getenv(\"HOME\"), \"Library\", \"Application Support\")\n}\n\nfunc (o *osDefaulter) defaultDataDirs() []string {\n\treturn []string{filepath.Join(\"/Library\", \"Application Support\")}\n}\n\nfunc (o *osDefaulter) defaultConfigHome() string {\n\treturn filepath.Join(os.Getenv(\"HOME\"), \"Library\", \"Application Support\")\n}\n\nfunc (o *osDefaulter) defaultConfigDirs() []string {\n\treturn []string{filepath.Join(\"/Library\", \"Application Support\")}\n}\n\nfunc (o *osDefaulter) defaultCacheHome() string {\n\treturn filepath.Join(os.Getenv(\"HOME\"), \"Library\", \"Caches\")\n}\n"
  },
  {
    "path": "vendor/github.com/OpenPeeDeeP/xdg/xdg_linux.go",
    "content": "// Copyright (c) 2017, OpenPeeDeeP. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xdg\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n)\n\nfunc (o *osDefaulter) defaultDataHome() string {\n\treturn filepath.Join(os.Getenv(\"HOME\"), \".local\", \"share\")\n}\n\nfunc (o *osDefaulter) defaultDataDirs() []string {\n\treturn []string{\"/usr/local/share/\", \"/usr/share/\"}\n}\n\nfunc (o *osDefaulter) defaultConfigHome() string {\n\treturn filepath.Join(os.Getenv(\"HOME\"), \".config\")\n}\n\nfunc (o *osDefaulter) defaultConfigDirs() []string {\n\treturn []string{\"/etc/xdg\"}\n}\n\nfunc (o *osDefaulter) defaultCacheHome() string {\n\treturn filepath.Join(os.Getenv(\"HOME\"), \".cache\")\n}\n"
  },
  {
    "path": "vendor/github.com/OpenPeeDeeP/xdg/xdg_windows.go",
    "content": "// Copyright (c) 2017, OpenPeeDeeP. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xdg\n\nimport \"os\"\n\nfunc (o *osDefaulter) defaultDataHome() string {\n\treturn os.Getenv(\"APPDATA\")\n}\n\nfunc (o *osDefaulter) defaultDataDirs() []string {\n\treturn []string{os.Getenv(\"PROGRAMDATA\")}\n}\n\nfunc (o *osDefaulter) defaultConfigHome() string {\n\treturn os.Getenv(\"APPDATA\")\n}\n\nfunc (o *osDefaulter) defaultConfigDirs() []string {\n\treturn []string{os.Getenv(\"PROGRAMDATA\")}\n}\n\nfunc (o *osDefaulter) defaultCacheHome() string {\n\treturn os.Getenv(\"LOCALAPPDATA\")\n}\n"
  },
  {
    "path": "vendor/github.com/boz/go-throttle/.travis.yml",
    "content": "language: go\ngo:\n  - 1.5\n  - 1.6\n  - 1.7\n  - tip\n"
  },
  {
    "path": "vendor/github.com/boz/go-throttle/Makefile",
    "content": "test:\n\tgo test\n"
  },
  {
    "path": "vendor/github.com/boz/go-throttle/README.md",
    "content": "# go-throttle [![GoDoc](https://godoc.org/github.com/boz/go-throttle?status.svg)](https://godoc.org/github.com/boz/go-throttle) [![Build Status](https://travis-ci.org/boz/go-throttle.svg?branch=master)](https://travis-ci.org/boz/go-throttle)\n\nPackage `throttle` provides functionality to limit the frequency with which code is called\n\nThrottling is of the `Trigger()` method and depends on the parameters passed (`period`, `trailing`).\n\nThe `period` parameter defines how often the throttled code can run.  A period of one second means\nthat the throttled code will run at most once per second.\n\nThe `trailing` parameter defines what hapens if `Trigger()` is called after the throttled code has been\nstarted, but before the period is finished.  If `trailing` is false then these triggers are ignored.\nIf `trailing` is true then the throttled code is executed one more time at the beginning of the next period.\n\nExample with `period = time.Second` and `trailing = false`:\n\n    Whole seconds after first trigger...|0|0|0|0|1|1|1|1|\n    Trigger() gets called...............|X| |X| | |X| | |\n    Throttled code gets called..........|X| | | | |X| | |\n\nNote that the second `Trigger()` had no effect.  The third `Trigger()` caused immediate execution of the\nthrottled code.\n\nExample with `period = time.Second` and `trailing = true`:\n\n    Whole seconds after first trigger...|0|0|0|0|1|1|1|1|\n    Trigger() gets called...............|X| |X| | |X| | |\n    Throttled code gets called..........|X| | | |X| | | |\n\nNote that the second `Trigger()` causes the throttled code to get called once the first period is over.\nThe third `Trigger()` will do the same.\n\n## Usage\n\nThrottling execution of a function:\n\n```go\nthrottle := throttle.ThrottleFunc(period, false, func() {\n  fmt.Println(\"fun, throttled.\")\n})\n\ngo func() {\n  for i := 0; i < 5; i++ {\n    throttle.Trigger()\n    time.Sleep(period / 6)\n  }\n}()\n\ntime.Sleep(2 * period)\nthrottle.Stop()\n\n// Output: fun, throttled.\n```\n\nThrottling arbitrary code:\n\n```go\npackage cache\n\nimport (\n\t\"time\"\n\t\"github.com/boz/go-throttle\"\n)\n\ntype CacheRebuilder struct {\n\tthrottle throttle.Throttle\n}\n\n// Create a cache rebuilder which will rebuild the cache at most once every 5 minutes, regardless\n// of how often a rebuild is requested.\nfunc NewRebuilder() *CacheRebuilder {\n\tcr := &CacheRebuilder{NewThrottle(5*time.Minute, true)}\n\n\tgo func() {\n\t\tfor cr.throttle.Next() {\n\t\t\tcr.doRebuild()\n\t\t}\n\t}()\n\n\treturn cr\n}\n\nfunc (cr *CacheRebuilder) Stop() {\n\tcr.throttle.Stop()\n}\n\nfunc (cr *CacheRebuilder) Rebuild() {\n\tcr.throttle.Trigger()\n}\n\nfunc (cr *CacheRebuilder) doRebuild() {\n\t// actually rebuild the cache.\n}\n```\n"
  },
  {
    "path": "vendor/github.com/boz/go-throttle/throttle.go",
    "content": "// Package throttle provides functionality to limit the frequency with which code is called\n//\n// Throttling is of the Trigger() method and depends on the parameters passed (period, trailing).\n//\n// The period parameter defines how often the throttled code can run.  A period of one second means\n// that the throttled code will run at most once per second.\n//\n// The trailing parameter defines what hapens if Trigger() is called after the throttled code has been\n// started, but before the period is finished.  If trailing is false then these triggers are ignored.\n// If trailing is true then the throttled code is executed one more time at the beginning of the next period.\n//\n// Example with period = time.Second and trailing = false:\n//\n//\t\tWhole seconds after first trigger...|0|0|0|0|1|1|1|1|\n//\t\tTrigger() gets called...............|X| |X| | |X| | |\n//\t\tThrottled code gets called..........|X| | | | |X| | |\n//\n// Note that the second trigger had no effect.  The third Trigger() caused immediate execution of the\n// throttled code.\n//\n// Example with period = time.Second and trailing = true:\n//\n//\t\tWhole seconds after first trigger...|0|0|0|0|1|1|1|1|\n//\t\tTrigger() gets called...............|X| |X| | |X| | |\n//\t\tThrottled code gets called..........|X| | | |X| | | |\n//\n// Note that the second Trigger() causes the throttled code to get called once the first period is over.\n// The third Trigger() will do the same.\npackage throttle\n\nimport (\n\t\"sync\"\n\t\"time\"\n)\n\n// ThrottleDriver is an interface for requesting execution of the throttled resource\n// and for stopping the throttler.\ntype ThrottleDriver interface {\n\t// Trigger() requests execution of the throttled resource.\n\tTrigger()\n\n\t// Stop() stops the throttler.\n\tStop()\n}\n\n// Throttle extends ThrottleDriver with Next(), which is used by the client to throttle its code.\ntype Throttle interface {\n\tThrottleDriver\n\n\t// Next() returns true at most once per `period`.  If false is returned the throttler has been stoped.\n\tNext() bool\n}\n\n// NewThrottle returns a new Throttle.  If trailing is true then a multiple Trigger() calls in one\n// period will cause a delayed Trigger() to be called in the next period.\nfunc NewThrottle(period time.Duration, trailing bool) Throttle {\n\treturn newThrottler(period, trailing)\n}\n\n// ThottleFunc executes f at most once every period.  Stop() must eventually be called\n// on the return value to prevent a leaked go proc.\nfunc ThrottleFunc(period time.Duration, trailing bool, f func()) ThrottleDriver {\n\tthrottler := newThrottler(period, trailing)\n\tgo func() {\n\t\tfor throttler.Next() {\n\t\t\tf()\n\t\t}\n\t}()\n\treturn throttler\n}\n\ntype throttler struct {\n\tcond     *sync.Cond\n\tperiod   time.Duration\n\ttrailing bool\n\tlast     time.Time\n\twaiting  bool\n\tstop     bool\n}\n\nfunc newThrottler(period time.Duration, trailing bool) *throttler {\n\treturn &throttler{\n\t\tperiod:   period,\n\t\ttrailing: trailing,\n\t\tcond:     sync.NewCond(&sync.Mutex{}),\n\t}\n}\n\n// Trigger signals an attempt to execute the throttled code.\n// If Trigger is called twice within the same period, Next() will be called once for that period\n// (and once for the next period if trailing is true).\nfunc (t *throttler) Trigger() {\n\tt.cond.L.Lock()\n\tdefer t.cond.L.Unlock()\n\n\tif !t.waiting && !t.stop {\n\n\t\tdelta := time.Now().Sub(t.last)\n\n\t\tif delta > t.period {\n\t\t\tt.waiting = true\n\t\t\tt.cond.Broadcast()\n\t\t} else if t.trailing {\n\t\t\tt.waiting = true\n\t\t\ttime.AfterFunc(t.period-delta, t.cond.Broadcast)\n\t\t}\n\t}\n}\n\n// Next() returns true at most once per period.  While it returns true, the throttle is running.\n// When it returns false the throttle has been stopped.\nfunc (t *throttler) Next() bool {\n\tt.cond.L.Lock()\n\tdefer t.cond.L.Unlock()\n\tfor !t.waiting && !t.stop {\n\t\tt.cond.Wait()\n\t}\n\tif !t.stop {\n\t\tt.waiting = false\n\t\tt.last = time.Now()\n\t}\n\treturn !t.stop\n}\n\n// Stop the throttle\nfunc (t *throttler) Stop() {\n\tt.cond.L.Lock()\n\tdefer t.cond.L.Unlock()\n\tt.stop = true\n\tt.cond.Broadcast()\n}\n"
  },
  {
    "path": "vendor/github.com/cloudfoundry/jibber_jabber/.travis.yml",
    "content": "language: go\ngo:\n  - 1.2\nbefore_install:\n- go get github.com/onsi/ginkgo/...\n- go get github.com/onsi/gomega/...\n- go install github.com/onsi/ginkgo/ginkgo\nscript: PATH=$PATH:$HOME/gopath/bin ginkgo -r .\nbranches:\n  only:\n  - master\n"
  },
  {
    "path": "vendor/github.com/cloudfoundry/jibber_jabber/LICENSE",
    "content": "                              Apache License\n                        Version 2.0, January 2004\n                     http://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n   \"License\" shall mean the terms and conditions for use, reproduction,\n   and distribution as defined by Sections 1 through 9 of this document.\n\n   \"Licensor\" shall mean the copyright owner or entity authorized by\n   the copyright owner that is granting the License.\n\n   \"Legal Entity\" shall mean the union of the acting entity and all\n   other entities that control, are controlled by, or are under common\n   control with that entity. For the purposes of this definition,\n   \"control\" means (i) the power, direct or indirect, to cause the\n   direction or management of such entity, whether by contract or\n   otherwise, or (ii) ownership of fifty percent (50%) or more of the\n   outstanding shares, or (iii) beneficial ownership of such entity.\n\n   \"You\" (or \"Your\") shall mean an individual or Legal Entity\n   exercising permissions granted by this License.\n\n   \"Source\" form shall mean the preferred form for making modifications,\n   including but not limited to software source code, documentation\n   source, and configuration files.\n\n   \"Object\" form shall mean any form resulting from mechanical\n   transformation or translation of a Source form, including but\n   not limited to compiled object code, generated documentation,\n   and conversions to other media types.\n\n   \"Work\" shall mean the work of authorship, whether in Source or\n   Object form, made available under the License, as indicated by a\n   copyright notice that is included in or attached to the work\n   (an example is provided in the Appendix below).\n\n   \"Derivative Works\" shall mean any work, whether in Source or Object\n   form, that is based on (or derived from) the Work and for which the\n   editorial revisions, annotations, elaborations, or other modifications\n   represent, as a whole, an original work of authorship. For the purposes\n   of this License, Derivative Works shall not include works that remain\n   separable from, or merely link (or bind by name) to the interfaces of,\n   the Work and Derivative Works thereof.\n\n   \"Contribution\" shall mean any work of authorship, including\n   the original version of the Work and any modifications or additions\n   to that Work or Derivative Works thereof, that is intentionally\n   submitted to Licensor for inclusion in the Work by the copyright owner\n   or by an individual or Legal Entity authorized to submit on behalf of\n   the copyright owner. For the purposes of this definition, \"submitted\"\n   means any form of electronic, verbal, or written communication sent\n   to the Licensor or its representatives, including but not limited to\n   communication on electronic mailing lists, source code control systems,\n   and issue tracking systems that are managed by, or on behalf of, the\n   Licensor for the purpose of discussing and improving the Work, but\n   excluding communication that is conspicuously marked or otherwise\n   designated in writing by the copyright owner as \"Not a Contribution.\"\n\n   \"Contributor\" shall mean Licensor and any individual or Legal Entity\n   on behalf of whom a Contribution has been received by Licensor and\n   subsequently incorporated within the Work.\n\n2. Grant of Copyright License. Subject to the terms and conditions of\n   this License, each Contributor hereby grants to You a perpetual,\n   worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n   copyright license to reproduce, prepare Derivative Works of,\n   publicly display, publicly perform, sublicense, and distribute the\n   Work and such Derivative Works in Source or Object form.\n\n3. Grant of Patent License. Subject to the terms and conditions of\n   this License, each Contributor hereby grants to You a perpetual,\n   worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n   (except as stated in this section) patent license to make, have made,\n   use, offer to sell, sell, import, and otherwise transfer the Work,\n   where such license applies only to those patent claims licensable\n   by such Contributor that are necessarily infringed by their\n   Contribution(s) alone or by combination of their Contribution(s)\n   with the Work to which such Contribution(s) was submitted. If You\n   institute patent litigation against any entity (including a\n   cross-claim or counterclaim in a lawsuit) alleging that the Work\n   or a Contribution incorporated within the Work constitutes direct\n   or contributory patent infringement, then any patent licenses\n   granted to You under this License for that Work shall terminate\n   as of the date such litigation is filed.\n\n4. Redistribution. You may reproduce and distribute copies of the\n   Work or Derivative Works thereof in any medium, with or without\n   modifications, and in Source or Object form, provided that You\n   meet the following conditions:\n\n   (a) You must give any other recipients of the Work or\n       Derivative Works a copy of this License; and\n\n   (b) You must cause any modified files to carry prominent notices\n       stating that You changed the files; and\n\n   (c) You must retain, in the Source form of any Derivative Works\n       that You distribute, all copyright, patent, trademark, and\n       attribution notices from the Source form of the Work,\n       excluding those notices that do not pertain to any part of\n       the Derivative Works; and\n\n   (d) If the Work includes a \"NOTICE\" text file as part of its\n       distribution, then any Derivative Works that You distribute must\n       include a readable copy of the attribution notices contained\n       within such NOTICE file, excluding those notices that do not\n       pertain to any part of the Derivative Works, in at least one\n       of the following places: within a NOTICE text file distributed\n       as part of the Derivative Works; within the Source form or\n       documentation, if provided along with the Derivative Works; or,\n       within a display generated by the Derivative Works, if and\n       wherever such third-party notices normally appear. The contents\n       of the NOTICE file are for informational purposes only and\n       do not modify the License. You may add Your own attribution\n       notices within Derivative Works that You distribute, alongside\n       or as an addendum to the NOTICE text from the Work, provided\n       that such additional attribution notices cannot be construed\n       as modifying the License.\n\n   You may add Your own copyright statement to Your modifications and\n   may provide additional or different license terms and conditions\n   for use, reproduction, or distribution of Your modifications, or\n   for any such Derivative Works as a whole, provided Your use,\n   reproduction, and distribution of the Work otherwise complies with\n   the conditions stated in this License.\n\n5. Submission of Contributions. Unless You explicitly state otherwise,\n   any Contribution intentionally submitted for inclusion in the Work\n   by You to the Licensor shall be under the terms and conditions of\n   this License, without any additional terms or conditions.\n   Notwithstanding the above, nothing herein shall supersede or modify\n   the terms of any separate license agreement you may have executed\n   with Licensor regarding such Contributions.\n\n6. Trademarks. This License does not grant permission to use the trade\n   names, trademarks, service marks, or product names of the Licensor,\n   except as required for reasonable and customary use in describing the\n   origin of the Work and reproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty. Unless required by applicable law or\n   agreed to in writing, Licensor provides the Work (and each\n   Contributor provides its Contributions) on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n   implied, including, without limitation, any warranties or conditions\n   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n   PARTICULAR PURPOSE. You are solely responsible for determining the\n   appropriateness of using or redistributing the Work and assume any\n   risks associated with Your exercise of permissions under this License.\n\n8. Limitation of Liability. In no event and under no legal theory,\n   whether in tort (including negligence), contract, or otherwise,\n   unless required by applicable law (such as deliberate and grossly\n   negligent acts) or agreed to in writing, shall any Contributor be\n   liable to You for damages, including any direct, indirect, special,\n   incidental, or consequential damages of any character arising as a\n   result of this License or out of the use or inability to use the\n   Work (including but not limited to damages for loss of goodwill,\n   work stoppage, computer failure or malfunction, or any and all\n   other commercial damages or losses), even if such Contributor\n   has been advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability. While redistributing\n   the Work or Derivative Works thereof, You may choose to offer,\n   and charge a fee for, acceptance of support, warranty, indemnity,\n   or other liability obligations and/or rights consistent with this\n   License. However, in accepting such obligations, You may act only\n   on Your own behalf and on Your sole responsibility, not on behalf\n   of any other Contributor, and only if You agree to indemnify,\n   defend, and hold each Contributor harmless for any liability\n   incurred by, or claims asserted against, such Contributor by reason\n   of your accepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work.\n\n   To apply the Apache License to your work, attach the following\n   boilerplate notice, with the fields enclosed by brackets \"[]\"\n   replaced with your own identifying information. (Don't include\n   the brackets!)  The text should be enclosed in the appropriate\n   comment syntax for the file format. We also recommend that a\n   file or class name and description of purpose be included on the\n   same \"printed page\" as the copyright notice for easier\n   identification within third-party archives.\n\nCopyright 2014 Pivotal\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/github.com/cloudfoundry/jibber_jabber/README.md",
    "content": "# Jibber Jabber [![Build Status](https://travis-ci.org/cloudfoundry/jibber_jabber.svg?branch=master)](https://travis-ci.org/cloudfoundry/jibber_jabber)\nJibber Jabber is a GoLang Library that can be used to detect an operating system's current language.\n\n### OS Support\n\nOSX and Linux via the `LC_ALL` and `LANG` environment variables. These are standard variables that are used in ALL versions of UNIX for language detection.\n\nWindows via [GetUserDefaultLocaleName](http://msdn.microsoft.com/en-us/library/windows/desktop/dd318136.aspx) and [GetSystemDefaultLocaleName](http://msdn.microsoft.com/en-us/library/windows/desktop/dd318122.aspx) system calls. These calls are supported in Windows Vista and up.\n\n# Usage\nAdd the following line to your go `import`:\n\n```\n\t\"github.com/cloudfoundry/jibber_jabber\"\n```\n\n### DetectIETF\n`DetectIETF` will return the current locale as a string. The format of the locale will be the [ISO 639](http://en.wikipedia.org/wiki/ISO_639) two-letter language code, a DASH, then an [ISO 3166](http://en.wikipedia.org/wiki/ISO_3166-1) two-letter country code.\n\n```\n\tuserLocale, err := jibber_jabber.DetectIETF()\n\tprintln(\"Locale:\", userLocale)\n```\n\n### DetectLanguage\n`DetectLanguage` will return the current languge as a string. The format will be the [ISO 639](http://en.wikipedia.org/wiki/ISO_639) two-letter language code.\n\n```\n\tuserLanguage, err := jibber_jabber.DetectLanguage()\n\tprintln(\"Language:\", userLanguage)\n```\n\n### DetectTerritory\n`DetectTerritory` will return the current locale territory as a string. The format will be the [ISO 3166](http://en.wikipedia.org/wiki/ISO_3166-1) two-letter country code.\n\n```\n\tlocaleTerritory, err := jibber_jabber.DetectTerritory()\n\tprintln(\"Territory:\", localeTerritory)\n```\n\n### Errors\nAll the Detect commands will return an error if they are unable to read the Locale from the system.\n\nFor Windows, additional error information is provided due to the nature of the system call being used.\n"
  },
  {
    "path": "vendor/github.com/cloudfoundry/jibber_jabber/jibber_jabber.go",
    "content": "package jibber_jabber\n\nimport (\n\t\"strings\"\n)\n\nconst (\n\tCOULD_NOT_DETECT_PACKAGE_ERROR_MESSAGE = \"Could not detect Language\"\n)\n\nfunc splitLocale(locale string) (string, string) {\n\tformattedLocale := strings.Split(locale, \".\")[0]\n\tformattedLocale = strings.Replace(formattedLocale, \"-\", \"_\", -1)\n\n\tpieces := strings.Split(formattedLocale, \"_\")\n\tlanguage := pieces[0]\n\tterritory := \"\"\n\tif len(pieces) > 1 {\n\t\tterritory = strings.Split(formattedLocale, \"_\")[1]\n\t}\n\treturn language, territory\n}\n"
  },
  {
    "path": "vendor/github.com/cloudfoundry/jibber_jabber/jibber_jabber_unix.go",
    "content": "// +build darwin freebsd linux netbsd openbsd\n\npackage jibber_jabber\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"strings\"\n)\n\nfunc getLangFromEnv() (locale string) {\n\tlocale = os.Getenv(\"LC_ALL\")\n\tif locale == \"\" {\n\t\tlocale = os.Getenv(\"LANG\")\n\t}\n\treturn\n}\n\nfunc getUnixLocale() (unix_locale string, err error) {\n\tunix_locale = getLangFromEnv()\n\tif unix_locale == \"\" {\n\t\terr = errors.New(COULD_NOT_DETECT_PACKAGE_ERROR_MESSAGE)\n\t}\n\n\treturn\n}\n\nfunc DetectIETF() (locale string, err error) {\n\tunix_locale, err := getUnixLocale()\n\tif err == nil {\n\t\tlanguage, territory := splitLocale(unix_locale)\n\t\tlocale = language\n\t\tif territory != \"\" {\n\t\t\tlocale = strings.Join([]string{language, territory}, \"-\")\n\t\t}\n\t}\n\n\treturn\n}\n\nfunc DetectLanguage() (language string, err error) {\n\tunix_locale, err := getUnixLocale()\n\tif err == nil {\n\t\tlanguage, _ = splitLocale(unix_locale)\n\t}\n\n\treturn\n}\n\nfunc DetectTerritory() (territory string, err error) {\n\tunix_locale, err := getUnixLocale()\n\tif err == nil {\n\t\t_, territory = splitLocale(unix_locale)\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/cloudfoundry/jibber_jabber/jibber_jabber_windows.go",
    "content": "// +build windows\n\npackage jibber_jabber\n\nimport (\n\t\"errors\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst LOCALE_NAME_MAX_LENGTH uint32 = 85\n\nvar SUPPORTED_LOCALES = map[uintptr]string{\n\t0x0407: \"de-DE\",\n\t0x0409: \"en-US\",\n\t0x0c0a: \"es-ES\", //or is it 0x040a\n\t0x040c: \"fr-FR\",\n\t0x0410: \"it-IT\",\n\t0x0411: \"ja-JA\",\n\t0x0412: \"ko_KR\",\n\t0x0416: \"pt-BR\",\n\t//0x0419: \"ru_RU\", - Will add support for Russian when nicksnyder/go-i18n supports Russian\n\t0x0804: \"zh-CN\",\n\t0x0c04: \"zh-HK\",\n\t0x0404: \"zh-TW\",\n}\n\nfunc getWindowsLocaleFrom(sysCall string) (locale string, err error) {\n\tbuffer := make([]uint16, LOCALE_NAME_MAX_LENGTH)\n\n\tdll := syscall.MustLoadDLL(\"kernel32\")\n\tproc := dll.MustFindProc(sysCall)\n\tr, _, dllError := proc.Call(uintptr(unsafe.Pointer(&buffer[0])), uintptr(LOCALE_NAME_MAX_LENGTH))\n\tif r == 0 {\n\t\terr = errors.New(COULD_NOT_DETECT_PACKAGE_ERROR_MESSAGE + \":\\n\" + dllError.Error())\n\t\treturn\n\t}\n\n\tlocale = syscall.UTF16ToString(buffer)\n\n\treturn\n}\n\nfunc getAllWindowsLocaleFrom(sysCall string) (string, error) {\n\tdll, err := syscall.LoadDLL(\"kernel32\")\n\tif err != nil {\n\t\treturn \"\", errors.New(\"Could not find kernel32 dll\")\n\t}\n\n\tproc, err := dll.FindProc(sysCall)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tlocale, _, dllError := proc.Call()\n\tif locale == 0 {\n\t\treturn \"\", errors.New(COULD_NOT_DETECT_PACKAGE_ERROR_MESSAGE + \":\\n\" + dllError.Error())\n\t}\n\n\treturn SUPPORTED_LOCALES[locale], nil\n}\n\nfunc getWindowsLocale() (locale string, err error) {\n\tdll, err := syscall.LoadDLL(\"kernel32\")\n\tif err != nil {\n\t\treturn \"\", errors.New(\"Could not find kernel32 dll\")\n\t}\n\n\tproc, err := dll.FindProc(\"GetVersion\")\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tv, _, _ := proc.Call()\n\twindowsVersion := byte(v)\n\tisVistaOrGreater := (windowsVersion >= 6)\n\n\tif isVistaOrGreater {\n\t\tlocale, err = getWindowsLocaleFrom(\"GetUserDefaultLocaleName\")\n\t\tif err != nil {\n\t\t\tlocale, err = getWindowsLocaleFrom(\"GetSystemDefaultLocaleName\")\n\t\t}\n\t} else if !isVistaOrGreater {\n\t\tlocale, err = getAllWindowsLocaleFrom(\"GetUserDefaultLCID\")\n\t\tif err != nil {\n\t\t\tlocale, err = getAllWindowsLocaleFrom(\"GetSystemDefaultLCID\")\n\t\t}\n\t} else {\n\t\tpanic(v)\n\t}\n\treturn\n}\nfunc DetectIETF() (locale string, err error) {\n\tlocale, err = getWindowsLocale()\n\treturn\n}\n\nfunc DetectLanguage() (language string, err error) {\n\twindows_locale, err := getWindowsLocale()\n\tif err == nil {\n\t\tlanguage, _ = splitLocale(windows_locale)\n\t}\n\n\treturn\n}\n\nfunc DetectTerritory() (territory string, err error) {\n\twindows_locale, err := getWindowsLocale()\n\tif err == nil {\n\t\t_, territory = splitLocale(windows_locale)\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/errdefs/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        https://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   Copyright The containerd Authors\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       https://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/containerd/errdefs/README.md",
    "content": "# errdefs\n\nA Go package for defining and checking common containerd errors.\n\n## Project details\n\n**errdefs** is a containerd sub-project, licensed under the [Apache 2.0 license](./LICENSE).\nAs a containerd sub-project, you will find the:\n * [Project governance](https://github.com/containerd/project/blob/main/GOVERNANCE.md),\n * [Maintainers](https://github.com/containerd/project/blob/main/MAINTAINERS),\n * and [Contributing guidelines](https://github.com/containerd/project/blob/main/CONTRIBUTING.md)\n\ninformation in our [`containerd/project`](https://github.com/containerd/project) repository.\n"
  },
  {
    "path": "vendor/github.com/containerd/errdefs/errors.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\n// Package errdefs defines the common errors used throughout containerd\n// packages.\n//\n// Use with fmt.Errorf to add context to an error.\n//\n// To detect an error class, use the IsXXX functions to tell whether an error\n// is of a certain type.\npackage errdefs\n\nimport (\n\t\"context\"\n\t\"errors\"\n)\n\n// Definitions of common error types used throughout containerd. All containerd\n// errors returned by most packages will map into one of these errors classes.\n// Packages should return errors of these types when they want to instruct a\n// client to take a particular action.\n//\n// These errors map closely to grpc errors.\nvar (\n\tErrUnknown            = errUnknown{}\n\tErrInvalidArgument    = errInvalidArgument{}\n\tErrNotFound           = errNotFound{}\n\tErrAlreadyExists      = errAlreadyExists{}\n\tErrPermissionDenied   = errPermissionDenied{}\n\tErrResourceExhausted  = errResourceExhausted{}\n\tErrFailedPrecondition = errFailedPrecondition{}\n\tErrConflict           = errConflict{}\n\tErrNotModified        = errNotModified{}\n\tErrAborted            = errAborted{}\n\tErrOutOfRange         = errOutOfRange{}\n\tErrNotImplemented     = errNotImplemented{}\n\tErrInternal           = errInternal{}\n\tErrUnavailable        = errUnavailable{}\n\tErrDataLoss           = errDataLoss{}\n\tErrUnauthenticated    = errUnauthorized{}\n)\n\n// cancelled maps to Moby's \"ErrCancelled\"\ntype cancelled interface {\n\tCancelled()\n}\n\n// IsCanceled returns true if the error is due to `context.Canceled`.\nfunc IsCanceled(err error) bool {\n\treturn errors.Is(err, context.Canceled) || isInterface[cancelled](err)\n}\n\ntype errUnknown struct{}\n\nfunc (errUnknown) Error() string { return \"unknown\" }\n\nfunc (errUnknown) Unknown() {}\n\nfunc (e errUnknown) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\n// unknown maps to Moby's \"ErrUnknown\"\ntype unknown interface {\n\tUnknown()\n}\n\n// IsUnknown returns true if the error is due to an unknown error,\n// unhandled condition or unexpected response.\nfunc IsUnknown(err error) bool {\n\treturn errors.Is(err, errUnknown{}) || isInterface[unknown](err)\n}\n\ntype errInvalidArgument struct{}\n\nfunc (errInvalidArgument) Error() string { return \"invalid argument\" }\n\nfunc (errInvalidArgument) InvalidParameter() {}\n\nfunc (e errInvalidArgument) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\n// invalidParameter maps to Moby's \"ErrInvalidParameter\"\ntype invalidParameter interface {\n\tInvalidParameter()\n}\n\n// IsInvalidArgument returns true if the error is due to an invalid argument\nfunc IsInvalidArgument(err error) bool {\n\treturn errors.Is(err, ErrInvalidArgument) || isInterface[invalidParameter](err)\n}\n\n// deadlineExceed maps to Moby's \"ErrDeadline\"\ntype deadlineExceeded interface {\n\tDeadlineExceeded()\n}\n\n// IsDeadlineExceeded returns true if the error is due to\n// `context.DeadlineExceeded`.\nfunc IsDeadlineExceeded(err error) bool {\n\treturn errors.Is(err, context.DeadlineExceeded) || isInterface[deadlineExceeded](err)\n}\n\ntype errNotFound struct{}\n\nfunc (errNotFound) Error() string { return \"not found\" }\n\nfunc (errNotFound) NotFound() {}\n\nfunc (e errNotFound) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\n// notFound maps to Moby's \"ErrNotFound\"\ntype notFound interface {\n\tNotFound()\n}\n\n// IsNotFound returns true if the error is due to a missing object\nfunc IsNotFound(err error) bool {\n\treturn errors.Is(err, ErrNotFound) || isInterface[notFound](err)\n}\n\ntype errAlreadyExists struct{}\n\nfunc (errAlreadyExists) Error() string { return \"already exists\" }\n\nfunc (errAlreadyExists) AlreadyExists() {}\n\nfunc (e errAlreadyExists) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\ntype alreadyExists interface {\n\tAlreadyExists()\n}\n\n// IsAlreadyExists returns true if the error is due to an already existing\n// metadata item\nfunc IsAlreadyExists(err error) bool {\n\treturn errors.Is(err, ErrAlreadyExists) || isInterface[alreadyExists](err)\n}\n\ntype errPermissionDenied struct{}\n\nfunc (errPermissionDenied) Error() string { return \"permission denied\" }\n\nfunc (errPermissionDenied) Forbidden() {}\n\nfunc (e errPermissionDenied) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\n// forbidden maps to Moby's \"ErrForbidden\"\ntype forbidden interface {\n\tForbidden()\n}\n\n// IsPermissionDenied returns true if the error is due to permission denied\n// or forbidden (403) response\nfunc IsPermissionDenied(err error) bool {\n\treturn errors.Is(err, ErrPermissionDenied) || isInterface[forbidden](err)\n}\n\ntype errResourceExhausted struct{}\n\nfunc (errResourceExhausted) Error() string { return \"resource exhausted\" }\n\nfunc (errResourceExhausted) ResourceExhausted() {}\n\nfunc (e errResourceExhausted) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\ntype resourceExhausted interface {\n\tResourceExhausted()\n}\n\n// IsResourceExhausted returns true if the error is due to\n// a lack of resources or too many attempts.\nfunc IsResourceExhausted(err error) bool {\n\treturn errors.Is(err, errResourceExhausted{}) || isInterface[resourceExhausted](err)\n}\n\ntype errFailedPrecondition struct{}\n\nfunc (e errFailedPrecondition) Error() string { return \"failed precondition\" }\n\nfunc (errFailedPrecondition) FailedPrecondition() {}\n\nfunc (e errFailedPrecondition) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\ntype failedPrecondition interface {\n\tFailedPrecondition()\n}\n\n// IsFailedPrecondition returns true if an operation could not proceed due to\n// the lack of a particular condition\nfunc IsFailedPrecondition(err error) bool {\n\treturn errors.Is(err, errFailedPrecondition{}) || isInterface[failedPrecondition](err)\n}\n\ntype errConflict struct{}\n\nfunc (errConflict) Error() string { return \"conflict\" }\n\nfunc (errConflict) Conflict() {}\n\nfunc (e errConflict) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\n// conflict maps to Moby's \"ErrConflict\"\ntype conflict interface {\n\tConflict()\n}\n\n// IsConflict returns true if an operation could not proceed due to\n// a conflict.\nfunc IsConflict(err error) bool {\n\treturn errors.Is(err, errConflict{}) || isInterface[conflict](err)\n}\n\ntype errNotModified struct{}\n\nfunc (errNotModified) Error() string { return \"not modified\" }\n\nfunc (errNotModified) NotModified() {}\n\nfunc (e errNotModified) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\n// notModified maps to Moby's \"ErrNotModified\"\ntype notModified interface {\n\tNotModified()\n}\n\n// IsNotModified returns true if an operation could not proceed due\n// to an object not modified from a previous state.\nfunc IsNotModified(err error) bool {\n\treturn errors.Is(err, errNotModified{}) || isInterface[notModified](err)\n}\n\ntype errAborted struct{}\n\nfunc (errAborted) Error() string { return \"aborted\" }\n\nfunc (errAborted) Aborted() {}\n\nfunc (e errAborted) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\ntype aborted interface {\n\tAborted()\n}\n\n// IsAborted returns true if an operation was aborted.\nfunc IsAborted(err error) bool {\n\treturn errors.Is(err, errAborted{}) || isInterface[aborted](err)\n}\n\ntype errOutOfRange struct{}\n\nfunc (errOutOfRange) Error() string { return \"out of range\" }\n\nfunc (errOutOfRange) OutOfRange() {}\n\nfunc (e errOutOfRange) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\ntype outOfRange interface {\n\tOutOfRange()\n}\n\n// IsOutOfRange returns true if an operation could not proceed due\n// to data being out of the expected range.\nfunc IsOutOfRange(err error) bool {\n\treturn errors.Is(err, errOutOfRange{}) || isInterface[outOfRange](err)\n}\n\ntype errNotImplemented struct{}\n\nfunc (errNotImplemented) Error() string { return \"not implemented\" }\n\nfunc (errNotImplemented) NotImplemented() {}\n\nfunc (e errNotImplemented) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\n// notImplemented maps to Moby's \"ErrNotImplemented\"\ntype notImplemented interface {\n\tNotImplemented()\n}\n\n// IsNotImplemented returns true if the error is due to not being implemented\nfunc IsNotImplemented(err error) bool {\n\treturn errors.Is(err, errNotImplemented{}) || isInterface[notImplemented](err)\n}\n\ntype errInternal struct{}\n\nfunc (errInternal) Error() string { return \"internal\" }\n\nfunc (errInternal) System() {}\n\nfunc (e errInternal) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\n// system maps to Moby's \"ErrSystem\"\ntype system interface {\n\tSystem()\n}\n\n// IsInternal returns true if the error returns to an internal or system error\nfunc IsInternal(err error) bool {\n\treturn errors.Is(err, errInternal{}) || isInterface[system](err)\n}\n\ntype errUnavailable struct{}\n\nfunc (errUnavailable) Error() string { return \"unavailable\" }\n\nfunc (errUnavailable) Unavailable() {}\n\nfunc (e errUnavailable) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\n// unavailable maps to Moby's \"ErrUnavailable\"\ntype unavailable interface {\n\tUnavailable()\n}\n\n// IsUnavailable returns true if the error is due to a resource being unavailable\nfunc IsUnavailable(err error) bool {\n\treturn errors.Is(err, errUnavailable{}) || isInterface[unavailable](err)\n}\n\ntype errDataLoss struct{}\n\nfunc (errDataLoss) Error() string { return \"data loss\" }\n\nfunc (errDataLoss) DataLoss() {}\n\nfunc (e errDataLoss) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\n// dataLoss maps to Moby's \"ErrDataLoss\"\ntype dataLoss interface {\n\tDataLoss()\n}\n\n// IsDataLoss returns true if data during an operation was lost or corrupted\nfunc IsDataLoss(err error) bool {\n\treturn errors.Is(err, errDataLoss{}) || isInterface[dataLoss](err)\n}\n\ntype errUnauthorized struct{}\n\nfunc (errUnauthorized) Error() string { return \"unauthorized\" }\n\nfunc (errUnauthorized) Unauthorized() {}\n\nfunc (e errUnauthorized) WithMessage(msg string) error {\n\treturn customMessage{e, msg}\n}\n\n// unauthorized maps to Moby's \"ErrUnauthorized\"\ntype unauthorized interface {\n\tUnauthorized()\n}\n\n// IsUnauthorized returns true if the error indicates that the user was\n// unauthenticated or unauthorized.\nfunc IsUnauthorized(err error) bool {\n\treturn errors.Is(err, errUnauthorized{}) || isInterface[unauthorized](err)\n}\n\nfunc isInterface[T any](err error) bool {\n\tfor {\n\t\tswitch x := err.(type) {\n\t\tcase T:\n\t\t\treturn true\n\t\tcase customMessage:\n\t\t\terr = x.err\n\t\tcase interface{ Unwrap() error }:\n\t\t\terr = x.Unwrap()\n\t\t\tif err == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase interface{ Unwrap() []error }:\n\t\t\tfor _, err := range x.Unwrap() {\n\t\t\t\tif isInterface[T](err) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t}\n}\n\n// customMessage is used to provide a defined error with a custom message.\n// The message is not wrapped but can be compared by the `Is(error) bool` interface.\ntype customMessage struct {\n\terr error\n\tmsg string\n}\n\nfunc (c customMessage) Is(err error) bool {\n\treturn c.err == err\n}\n\nfunc (c customMessage) As(target any) bool {\n\treturn errors.As(c.err, target)\n}\n\nfunc (c customMessage) Error() string {\n\treturn c.msg\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/errdefs/pkg/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        https://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   Copyright The containerd Authors\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       https://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/containerd/errdefs/pkg/errhttp/http.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\n// Package errhttp provides utility functions for translating errors to\n// and from a HTTP context.\n//\n// The functions ToHTTP and ToNative can be used to map server-side and\n// client-side errors to the correct types.\npackage errhttp\n\nimport (\n\t\"errors\"\n\t\"net/http\"\n\n\t\"github.com/containerd/errdefs\"\n\t\"github.com/containerd/errdefs/pkg/internal/cause\"\n)\n\n// ToHTTP returns the best status code for the given error\nfunc ToHTTP(err error) int {\n\tswitch {\n\tcase errdefs.IsNotFound(err):\n\t\treturn http.StatusNotFound\n\tcase errdefs.IsInvalidArgument(err):\n\t\treturn http.StatusBadRequest\n\tcase errdefs.IsConflict(err):\n\t\treturn http.StatusConflict\n\tcase errdefs.IsNotModified(err):\n\t\treturn http.StatusNotModified\n\tcase errdefs.IsFailedPrecondition(err):\n\t\treturn http.StatusPreconditionFailed\n\tcase errdefs.IsUnauthorized(err):\n\t\treturn http.StatusUnauthorized\n\tcase errdefs.IsPermissionDenied(err):\n\t\treturn http.StatusForbidden\n\tcase errdefs.IsResourceExhausted(err):\n\t\treturn http.StatusTooManyRequests\n\tcase errdefs.IsInternal(err):\n\t\treturn http.StatusInternalServerError\n\tcase errdefs.IsNotImplemented(err):\n\t\treturn http.StatusNotImplemented\n\tcase errdefs.IsUnavailable(err):\n\t\treturn http.StatusServiceUnavailable\n\tcase errdefs.IsUnknown(err):\n\t\tvar unexpected cause.ErrUnexpectedStatus\n\t\tif errors.As(err, &unexpected) && unexpected.Status >= 200 && unexpected.Status < 600 {\n\t\t\treturn unexpected.Status\n\t\t}\n\t\treturn http.StatusInternalServerError\n\tdefault:\n\t\treturn http.StatusInternalServerError\n\t}\n}\n\n// ToNative returns the error best matching the HTTP status code\nfunc ToNative(statusCode int) error {\n\tswitch statusCode {\n\tcase http.StatusNotFound:\n\t\treturn errdefs.ErrNotFound\n\tcase http.StatusBadRequest:\n\t\treturn errdefs.ErrInvalidArgument\n\tcase http.StatusConflict:\n\t\treturn errdefs.ErrConflict\n\tcase http.StatusPreconditionFailed:\n\t\treturn errdefs.ErrFailedPrecondition\n\tcase http.StatusUnauthorized:\n\t\treturn errdefs.ErrUnauthenticated\n\tcase http.StatusForbidden:\n\t\treturn errdefs.ErrPermissionDenied\n\tcase http.StatusNotModified:\n\t\treturn errdefs.ErrNotModified\n\tcase http.StatusTooManyRequests:\n\t\treturn errdefs.ErrResourceExhausted\n\tcase http.StatusInternalServerError:\n\t\treturn errdefs.ErrInternal\n\tcase http.StatusNotImplemented:\n\t\treturn errdefs.ErrNotImplemented\n\tcase http.StatusServiceUnavailable:\n\t\treturn errdefs.ErrUnavailable\n\tdefault:\n\t\treturn cause.ErrUnexpectedStatus{Status: statusCode}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/errdefs/pkg/internal/cause/cause.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\n// Package cause is used to define root causes for errors\n// common to errors packages like grpc and http.\npackage cause\n\nimport \"fmt\"\n\ntype ErrUnexpectedStatus struct {\n\tStatus int\n}\n\nconst UnexpectedStatusPrefix = \"unexpected status \"\n\nfunc (e ErrUnexpectedStatus) Error() string {\n\treturn fmt.Sprintf(\"%s%d\", UnexpectedStatusPrefix, e.Status)\n}\n\nfunc (ErrUnexpectedStatus) Unknown() {}\n"
  },
  {
    "path": "vendor/github.com/containerd/errdefs/resolve.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage errdefs\n\nimport \"context\"\n\n// Resolve returns the first error found in the error chain which matches an\n// error defined in this package or context error. A raw, unwrapped error is\n// returned or ErrUnknown if no matching error is found.\n//\n// This is useful for determining a response code based on the outermost wrapped\n// error rather than the original cause. For example, a not found error deep\n// in the code may be wrapped as an invalid argument. When determining status\n// code from Is* functions, the depth or ordering of the error is not\n// considered.\n//\n// The search order is depth first, a wrapped error returned from any part of\n// the chain from `Unwrap() error` will be returned before any joined errors\n// as returned by `Unwrap() []error`.\nfunc Resolve(err error) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\terr = firstError(err)\n\tif err == nil {\n\t\terr = ErrUnknown\n\t}\n\treturn err\n}\n\nfunc firstError(err error) error {\n\tfor {\n\t\tswitch err {\n\t\tcase ErrUnknown,\n\t\t\tErrInvalidArgument,\n\t\t\tErrNotFound,\n\t\t\tErrAlreadyExists,\n\t\t\tErrPermissionDenied,\n\t\t\tErrResourceExhausted,\n\t\t\tErrFailedPrecondition,\n\t\t\tErrConflict,\n\t\t\tErrNotModified,\n\t\t\tErrAborted,\n\t\t\tErrOutOfRange,\n\t\t\tErrNotImplemented,\n\t\t\tErrInternal,\n\t\t\tErrUnavailable,\n\t\t\tErrDataLoss,\n\t\t\tErrUnauthenticated,\n\t\t\tcontext.DeadlineExceeded,\n\t\t\tcontext.Canceled:\n\t\t\treturn err\n\t\t}\n\t\tswitch e := err.(type) {\n\t\tcase customMessage:\n\t\t\terr = e.err\n\t\tcase unknown:\n\t\t\treturn ErrUnknown\n\t\tcase invalidParameter:\n\t\t\treturn ErrInvalidArgument\n\t\tcase notFound:\n\t\t\treturn ErrNotFound\n\t\tcase alreadyExists:\n\t\t\treturn ErrAlreadyExists\n\t\tcase forbidden:\n\t\t\treturn ErrPermissionDenied\n\t\tcase resourceExhausted:\n\t\t\treturn ErrResourceExhausted\n\t\tcase failedPrecondition:\n\t\t\treturn ErrFailedPrecondition\n\t\tcase conflict:\n\t\t\treturn ErrConflict\n\t\tcase notModified:\n\t\t\treturn ErrNotModified\n\t\tcase aborted:\n\t\t\treturn ErrAborted\n\t\tcase errOutOfRange:\n\t\t\treturn ErrOutOfRange\n\t\tcase notImplemented:\n\t\t\treturn ErrNotImplemented\n\t\tcase system:\n\t\t\treturn ErrInternal\n\t\tcase unavailable:\n\t\t\treturn ErrUnavailable\n\t\tcase dataLoss:\n\t\t\treturn ErrDataLoss\n\t\tcase unauthorized:\n\t\t\treturn ErrUnauthenticated\n\t\tcase deadlineExceeded:\n\t\t\treturn context.DeadlineExceeded\n\t\tcase cancelled:\n\t\t\treturn context.Canceled\n\t\tcase interface{ Unwrap() error }:\n\t\t\terr = e.Unwrap()\n\t\t\tif err == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\tcase interface{ Unwrap() []error }:\n\t\t\tfor _, ue := range e.Unwrap() {\n\t\t\t\tif fe := firstError(ue); fe != nil {\n\t\t\t\t\treturn fe\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\tcase interface{ Is(error) bool }:\n\t\t\tfor _, target := range []error{ErrUnknown,\n\t\t\t\tErrInvalidArgument,\n\t\t\t\tErrNotFound,\n\t\t\t\tErrAlreadyExists,\n\t\t\t\tErrPermissionDenied,\n\t\t\t\tErrResourceExhausted,\n\t\t\t\tErrFailedPrecondition,\n\t\t\t\tErrConflict,\n\t\t\t\tErrNotModified,\n\t\t\t\tErrAborted,\n\t\t\t\tErrOutOfRange,\n\t\t\t\tErrNotImplemented,\n\t\t\t\tErrInternal,\n\t\t\t\tErrUnavailable,\n\t\t\t\tErrDataLoss,\n\t\t\t\tErrUnauthenticated,\n\t\t\t\tcontext.DeadlineExceeded,\n\t\t\t\tcontext.Canceled} {\n\t\t\t\tif e.Is(target) {\n\t\t\t\t\treturn target\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\tdefault:\n\t\t\treturn nil\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/containerd/log/.golangci.yml",
    "content": "linters:\n  enable:\n    - exportloopref # Checks for pointers to enclosing loop variables\n    - gofmt\n    - goimports\n    - gosec\n    - ineffassign\n    - misspell\n    - nolintlint\n    - revive\n    - staticcheck\n    - tenv # Detects using os.Setenv instead of t.Setenv since Go 1.17\n    - unconvert\n    - unused\n    - vet\n    - dupword # Checks for duplicate words in the source code\n  disable:\n    - errcheck\n\nrun:\n  timeout: 5m\n  skip-dirs:\n    - api\n    - cluster\n    - design\n    - docs\n    - docs/man\n    - releases\n    - reports\n    - test # e2e scripts\n"
  },
  {
    "path": "vendor/github.com/containerd/log/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        https://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   Copyright The containerd Authors\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       https://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/containerd/log/README.md",
    "content": "# log\n\nA Go package providing a common logging interface across containerd repositories and a way for clients to use and configure logging in containerd packages.\n\nThis package is not intended to be used as a standalone logging package outside of the containerd ecosystem and is intended as an interface wrapper around a logging implementation.\nIn the future this package may be replaced with a common go logging interface.\n\n## Project details\n\n**log** is a containerd sub-project, licensed under the [Apache 2.0 license](./LICENSE).\nAs a containerd sub-project, you will find the:\n * [Project governance](https://github.com/containerd/project/blob/main/GOVERNANCE.md),\n * [Maintainers](https://github.com/containerd/project/blob/main/MAINTAINERS),\n * and [Contributing guidelines](https://github.com/containerd/project/blob/main/CONTRIBUTING.md)\n\ninformation in our [`containerd/project`](https://github.com/containerd/project) repository.\n\n"
  },
  {
    "path": "vendor/github.com/containerd/log/context.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\n// Package log provides types and functions related to logging, passing\n// loggers through a context, and attaching context to the logger.\n//\n// # Transitional types\n//\n// This package contains various types that are aliases for types in [logrus].\n// These aliases are intended for transitioning away from hard-coding logrus\n// as logging implementation. Consumers of this package are encouraged to use\n// the type-aliases from this package instead of directly using their logrus\n// equivalent.\n//\n// The intent is to replace these aliases with locally defined types and\n// interfaces once all consumers are no longer directly importing logrus\n// types.\n//\n// IMPORTANT: due to the transitional purpose of this package, it is not\n// guaranteed for the full logrus API to be provided in the future. As\n// outlined, these aliases are provided as a step to transition away from\n// a specific implementation which, as a result, exposes the full logrus API.\n// While no decisions have been made on the ultimate design and interface\n// provided by this package, we do not expect carrying \"less common\" features.\npackage log\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/sirupsen/logrus\"\n)\n\n// G is a shorthand for [GetLogger].\n//\n// We may want to define this locally to a package to get package tagged log\n// messages.\nvar G = GetLogger\n\n// L is an alias for the standard logger.\nvar L = &Entry{\n\tLogger: logrus.StandardLogger(),\n\t// Default is three fields plus a little extra room.\n\tData: make(Fields, 6),\n}\n\ntype loggerKey struct{}\n\n// Fields type to pass to \"WithFields\".\ntype Fields = map[string]any\n\n// Entry is a logging entry. It contains all the fields passed with\n// [Entry.WithFields]. It's finally logged when Trace, Debug, Info, Warn,\n// Error, Fatal or Panic is called on it. These objects can be reused and\n// passed around as much as you wish to avoid field duplication.\n//\n// Entry is a transitional type, and currently an alias for [logrus.Entry].\ntype Entry = logrus.Entry\n\n// RFC3339NanoFixed is [time.RFC3339Nano] with nanoseconds padded using\n// zeros to ensure the formatted time is always the same number of\n// characters.\nconst RFC3339NanoFixed = \"2006-01-02T15:04:05.000000000Z07:00\"\n\n// Level is a logging level.\ntype Level = logrus.Level\n\n// Supported log levels.\nconst (\n\t// TraceLevel level. Designates finer-grained informational events\n\t// than [DebugLevel].\n\tTraceLevel Level = logrus.TraceLevel\n\n\t// DebugLevel level. Usually only enabled when debugging. Very verbose\n\t// logging.\n\tDebugLevel Level = logrus.DebugLevel\n\n\t// InfoLevel level. General operational entries about what's going on\n\t// inside the application.\n\tInfoLevel Level = logrus.InfoLevel\n\n\t// WarnLevel level. Non-critical entries that deserve eyes.\n\tWarnLevel Level = logrus.WarnLevel\n\n\t// ErrorLevel level. Logs errors that should definitely be noted.\n\t// Commonly used for hooks to send errors to an error tracking service.\n\tErrorLevel Level = logrus.ErrorLevel\n\n\t// FatalLevel level. Logs and then calls \"logger.Exit(1)\". It exits\n\t// even if the logging level is set to Panic.\n\tFatalLevel Level = logrus.FatalLevel\n\n\t// PanicLevel level. This is the highest level of severity. Logs and\n\t// then calls panic with the message passed to Debug, Info, ...\n\tPanicLevel Level = logrus.PanicLevel\n)\n\n// SetLevel sets log level globally. It returns an error if the given\n// level is not supported.\n//\n// level can be one of:\n//\n//   - \"trace\" ([TraceLevel])\n//   - \"debug\" ([DebugLevel])\n//   - \"info\" ([InfoLevel])\n//   - \"warn\" ([WarnLevel])\n//   - \"error\" ([ErrorLevel])\n//   - \"fatal\" ([FatalLevel])\n//   - \"panic\" ([PanicLevel])\nfunc SetLevel(level string) error {\n\tlvl, err := logrus.ParseLevel(level)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tL.Logger.SetLevel(lvl)\n\treturn nil\n}\n\n// GetLevel returns the current log level.\nfunc GetLevel() Level {\n\treturn L.Logger.GetLevel()\n}\n\n// OutputFormat specifies a log output format.\ntype OutputFormat string\n\n// Supported log output formats.\nconst (\n\t// TextFormat represents the text logging format.\n\tTextFormat OutputFormat = \"text\"\n\n\t// JSONFormat represents the JSON logging format.\n\tJSONFormat OutputFormat = \"json\"\n)\n\n// SetFormat sets the log output format ([TextFormat] or [JSONFormat]).\nfunc SetFormat(format OutputFormat) error {\n\tswitch format {\n\tcase TextFormat:\n\t\tL.Logger.SetFormatter(&logrus.TextFormatter{\n\t\t\tTimestampFormat: RFC3339NanoFixed,\n\t\t\tFullTimestamp:   true,\n\t\t})\n\t\treturn nil\n\tcase JSONFormat:\n\t\tL.Logger.SetFormatter(&logrus.JSONFormatter{\n\t\t\tTimestampFormat: RFC3339NanoFixed,\n\t\t})\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown log format: %s\", format)\n\t}\n}\n\n// WithLogger returns a new context with the provided logger. Use in\n// combination with logger.WithField(s) for great effect.\nfunc WithLogger(ctx context.Context, logger *Entry) context.Context {\n\treturn context.WithValue(ctx, loggerKey{}, logger.WithContext(ctx))\n}\n\n// GetLogger retrieves the current logger from the context. If no logger is\n// available, the default logger is returned.\nfunc GetLogger(ctx context.Context) *Entry {\n\tif logger := ctx.Value(loggerKey{}); logger != nil {\n\t\treturn logger.(*Entry)\n\t}\n\treturn L.WithContext(ctx)\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/LICENSE",
    "content": "ISC License\n\nCopyright (c) 2012-2016 Dave Collins <dave@davec.name>\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/bypass.go",
    "content": "// Copyright (c) 2015-2016 Dave Collins <dave@davec.name>\n//\n// Permission to use, copy, modify, and distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n// NOTE: Due to the following build constraints, this file will only be compiled\n// when the code is not running on Google App Engine, compiled by GopherJS, and\n// \"-tags safe\" is not added to the go build command line.  The \"disableunsafe\"\n// tag is deprecated and thus should not be used.\n// Go versions prior to 1.4 are disabled because they use a different layout\n// for interfaces which make the implementation of unsafeReflectValue more complex.\n// +build !js,!appengine,!safe,!disableunsafe,go1.4\n\npackage spew\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\nconst (\n\t// UnsafeDisabled is a build-time constant which specifies whether or\n\t// not access to the unsafe package is available.\n\tUnsafeDisabled = false\n\n\t// ptrSize is the size of a pointer on the current arch.\n\tptrSize = unsafe.Sizeof((*byte)(nil))\n)\n\ntype flag uintptr\n\nvar (\n\t// flagRO indicates whether the value field of a reflect.Value\n\t// is read-only.\n\tflagRO flag\n\n\t// flagAddr indicates whether the address of the reflect.Value's\n\t// value may be taken.\n\tflagAddr flag\n)\n\n// flagKindMask holds the bits that make up the kind\n// part of the flags field. In all the supported versions,\n// it is in the lower 5 bits.\nconst flagKindMask = flag(0x1f)\n\n// Different versions of Go have used different\n// bit layouts for the flags type. This table\n// records the known combinations.\nvar okFlags = []struct {\n\tro, addr flag\n}{{\n\t// From Go 1.4 to 1.5\n\tro:   1 << 5,\n\taddr: 1 << 7,\n}, {\n\t// Up to Go tip.\n\tro:   1<<5 | 1<<6,\n\taddr: 1 << 8,\n}}\n\nvar flagValOffset = func() uintptr {\n\tfield, ok := reflect.TypeOf(reflect.Value{}).FieldByName(\"flag\")\n\tif !ok {\n\t\tpanic(\"reflect.Value has no flag field\")\n\t}\n\treturn field.Offset\n}()\n\n// flagField returns a pointer to the flag field of a reflect.Value.\nfunc flagField(v *reflect.Value) *flag {\n\treturn (*flag)(unsafe.Pointer(uintptr(unsafe.Pointer(v)) + flagValOffset))\n}\n\n// unsafeReflectValue converts the passed reflect.Value into a one that bypasses\n// the typical safety restrictions preventing access to unaddressable and\n// unexported data.  It works by digging the raw pointer to the underlying\n// value out of the protected value and generating a new unprotected (unsafe)\n// reflect.Value to it.\n//\n// This allows us to check for implementations of the Stringer and error\n// interfaces to be used for pretty printing ordinarily unaddressable and\n// inaccessible values such as unexported struct fields.\nfunc unsafeReflectValue(v reflect.Value) reflect.Value {\n\tif !v.IsValid() || (v.CanInterface() && v.CanAddr()) {\n\t\treturn v\n\t}\n\tflagFieldPtr := flagField(&v)\n\t*flagFieldPtr &^= flagRO\n\t*flagFieldPtr |= flagAddr\n\treturn v\n}\n\n// Sanity checks against future reflect package changes\n// to the type or semantics of the Value.flag field.\nfunc init() {\n\tfield, ok := reflect.TypeOf(reflect.Value{}).FieldByName(\"flag\")\n\tif !ok {\n\t\tpanic(\"reflect.Value has no flag field\")\n\t}\n\tif field.Type.Kind() != reflect.TypeOf(flag(0)).Kind() {\n\t\tpanic(\"reflect.Value flag field has changed kind\")\n\t}\n\ttype t0 int\n\tvar t struct {\n\t\tA t0\n\t\t// t0 will have flagEmbedRO set.\n\t\tt0\n\t\t// a will have flagStickyRO set\n\t\ta t0\n\t}\n\tvA := reflect.ValueOf(t).FieldByName(\"A\")\n\tva := reflect.ValueOf(t).FieldByName(\"a\")\n\tvt0 := reflect.ValueOf(t).FieldByName(\"t0\")\n\n\t// Infer flagRO from the difference between the flags\n\t// for the (otherwise identical) fields in t.\n\tflagPublic := *flagField(&vA)\n\tflagWithRO := *flagField(&va) | *flagField(&vt0)\n\tflagRO = flagPublic ^ flagWithRO\n\n\t// Infer flagAddr from the difference between a value\n\t// taken from a pointer and not.\n\tvPtrA := reflect.ValueOf(&t).Elem().FieldByName(\"A\")\n\tflagNoPtr := *flagField(&vA)\n\tflagPtr := *flagField(&vPtrA)\n\tflagAddr = flagNoPtr ^ flagPtr\n\n\t// Check that the inferred flags tally with one of the known versions.\n\tfor _, f := range okFlags {\n\t\tif flagRO == f.ro && flagAddr == f.addr {\n\t\t\treturn\n\t\t}\n\t}\n\tpanic(\"reflect.Value read-only flag has changed semantics\")\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/bypasssafe.go",
    "content": "// Copyright (c) 2015-2016 Dave Collins <dave@davec.name>\n//\n// Permission to use, copy, modify, and distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n// NOTE: Due to the following build constraints, this file will only be compiled\n// when the code is running on Google App Engine, compiled by GopherJS, or\n// \"-tags safe\" is added to the go build command line.  The \"disableunsafe\"\n// tag is deprecated and thus should not be used.\n// +build js appengine safe disableunsafe !go1.4\n\npackage spew\n\nimport \"reflect\"\n\nconst (\n\t// UnsafeDisabled is a build-time constant which specifies whether or\n\t// not access to the unsafe package is available.\n\tUnsafeDisabled = true\n)\n\n// unsafeReflectValue typically converts the passed reflect.Value into a one\n// that bypasses the typical safety restrictions preventing access to\n// unaddressable and unexported data.  However, doing this relies on access to\n// the unsafe package.  This is a stub version which simply returns the passed\n// reflect.Value when the unsafe package is not available.\nfunc unsafeReflectValue(v reflect.Value) reflect.Value {\n\treturn v\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/common.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n)\n\n// Some constants in the form of bytes to avoid string overhead.  This mirrors\n// the technique used in the fmt package.\nvar (\n\tpanicBytes            = []byte(\"(PANIC=\")\n\tplusBytes             = []byte(\"+\")\n\tiBytes                = []byte(\"i\")\n\ttrueBytes             = []byte(\"true\")\n\tfalseBytes            = []byte(\"false\")\n\tinterfaceBytes        = []byte(\"(interface {})\")\n\tcommaNewlineBytes     = []byte(\",\\n\")\n\tnewlineBytes          = []byte(\"\\n\")\n\topenBraceBytes        = []byte(\"{\")\n\topenBraceNewlineBytes = []byte(\"{\\n\")\n\tcloseBraceBytes       = []byte(\"}\")\n\tasteriskBytes         = []byte(\"*\")\n\tcolonBytes            = []byte(\":\")\n\tcolonSpaceBytes       = []byte(\": \")\n\topenParenBytes        = []byte(\"(\")\n\tcloseParenBytes       = []byte(\")\")\n\tspaceBytes            = []byte(\" \")\n\tpointerChainBytes     = []byte(\"->\")\n\tnilAngleBytes         = []byte(\"<nil>\")\n\tmaxNewlineBytes       = []byte(\"<max depth reached>\\n\")\n\tmaxShortBytes         = []byte(\"<max>\")\n\tcircularBytes         = []byte(\"<already shown>\")\n\tcircularShortBytes    = []byte(\"<shown>\")\n\tinvalidAngleBytes     = []byte(\"<invalid>\")\n\topenBracketBytes      = []byte(\"[\")\n\tcloseBracketBytes     = []byte(\"]\")\n\tpercentBytes          = []byte(\"%\")\n\tprecisionBytes        = []byte(\".\")\n\topenAngleBytes        = []byte(\"<\")\n\tcloseAngleBytes       = []byte(\">\")\n\topenMapBytes          = []byte(\"map[\")\n\tcloseMapBytes         = []byte(\"]\")\n\tlenEqualsBytes        = []byte(\"len=\")\n\tcapEqualsBytes        = []byte(\"cap=\")\n)\n\n// hexDigits is used to map a decimal value to a hex digit.\nvar hexDigits = \"0123456789abcdef\"\n\n// catchPanic handles any panics that might occur during the handleMethods\n// calls.\nfunc catchPanic(w io.Writer, v reflect.Value) {\n\tif err := recover(); err != nil {\n\t\tw.Write(panicBytes)\n\t\tfmt.Fprintf(w, \"%v\", err)\n\t\tw.Write(closeParenBytes)\n\t}\n}\n\n// handleMethods attempts to call the Error and String methods on the underlying\n// type the passed reflect.Value represents and outputes the result to Writer w.\n//\n// It handles panics in any called methods by catching and displaying the error\n// as the formatted value.\nfunc handleMethods(cs *ConfigState, w io.Writer, v reflect.Value) (handled bool) {\n\t// We need an interface to check if the type implements the error or\n\t// Stringer interface.  However, the reflect package won't give us an\n\t// interface on certain things like unexported struct fields in order\n\t// to enforce visibility rules.  We use unsafe, when it's available,\n\t// to bypass these restrictions since this package does not mutate the\n\t// values.\n\tif !v.CanInterface() {\n\t\tif UnsafeDisabled {\n\t\t\treturn false\n\t\t}\n\n\t\tv = unsafeReflectValue(v)\n\t}\n\n\t// Choose whether or not to do error and Stringer interface lookups against\n\t// the base type or a pointer to the base type depending on settings.\n\t// Technically calling one of these methods with a pointer receiver can\n\t// mutate the value, however, types which choose to satisify an error or\n\t// Stringer interface with a pointer receiver should not be mutating their\n\t// state inside these interface methods.\n\tif !cs.DisablePointerMethods && !UnsafeDisabled && !v.CanAddr() {\n\t\tv = unsafeReflectValue(v)\n\t}\n\tif v.CanAddr() {\n\t\tv = v.Addr()\n\t}\n\n\t// Is it an error or Stringer?\n\tswitch iface := v.Interface().(type) {\n\tcase error:\n\t\tdefer catchPanic(w, v)\n\t\tif cs.ContinueOnMethod {\n\t\t\tw.Write(openParenBytes)\n\t\t\tw.Write([]byte(iface.Error()))\n\t\t\tw.Write(closeParenBytes)\n\t\t\tw.Write(spaceBytes)\n\t\t\treturn false\n\t\t}\n\n\t\tw.Write([]byte(iface.Error()))\n\t\treturn true\n\n\tcase fmt.Stringer:\n\t\tdefer catchPanic(w, v)\n\t\tif cs.ContinueOnMethod {\n\t\t\tw.Write(openParenBytes)\n\t\t\tw.Write([]byte(iface.String()))\n\t\t\tw.Write(closeParenBytes)\n\t\t\tw.Write(spaceBytes)\n\t\t\treturn false\n\t\t}\n\t\tw.Write([]byte(iface.String()))\n\t\treturn true\n\t}\n\treturn false\n}\n\n// printBool outputs a boolean value as true or false to Writer w.\nfunc printBool(w io.Writer, val bool) {\n\tif val {\n\t\tw.Write(trueBytes)\n\t} else {\n\t\tw.Write(falseBytes)\n\t}\n}\n\n// printInt outputs a signed integer value to Writer w.\nfunc printInt(w io.Writer, val int64, base int) {\n\tw.Write([]byte(strconv.FormatInt(val, base)))\n}\n\n// printUint outputs an unsigned integer value to Writer w.\nfunc printUint(w io.Writer, val uint64, base int) {\n\tw.Write([]byte(strconv.FormatUint(val, base)))\n}\n\n// printFloat outputs a floating point value using the specified precision,\n// which is expected to be 32 or 64bit, to Writer w.\nfunc printFloat(w io.Writer, val float64, precision int) {\n\tw.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision)))\n}\n\n// printComplex outputs a complex value using the specified float precision\n// for the real and imaginary parts to Writer w.\nfunc printComplex(w io.Writer, c complex128, floatPrecision int) {\n\tr := real(c)\n\tw.Write(openParenBytes)\n\tw.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision)))\n\ti := imag(c)\n\tif i >= 0 {\n\t\tw.Write(plusBytes)\n\t}\n\tw.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision)))\n\tw.Write(iBytes)\n\tw.Write(closeParenBytes)\n}\n\n// printHexPtr outputs a uintptr formatted as hexadecimal with a leading '0x'\n// prefix to Writer w.\nfunc printHexPtr(w io.Writer, p uintptr) {\n\t// Null pointer.\n\tnum := uint64(p)\n\tif num == 0 {\n\t\tw.Write(nilAngleBytes)\n\t\treturn\n\t}\n\n\t// Max uint64 is 16 bytes in hex + 2 bytes for '0x' prefix\n\tbuf := make([]byte, 18)\n\n\t// It's simpler to construct the hex string right to left.\n\tbase := uint64(16)\n\ti := len(buf) - 1\n\tfor num >= base {\n\t\tbuf[i] = hexDigits[num%base]\n\t\tnum /= base\n\t\ti--\n\t}\n\tbuf[i] = hexDigits[num]\n\n\t// Add '0x' prefix.\n\ti--\n\tbuf[i] = 'x'\n\ti--\n\tbuf[i] = '0'\n\n\t// Strip unused leading bytes.\n\tbuf = buf[i:]\n\tw.Write(buf)\n}\n\n// valuesSorter implements sort.Interface to allow a slice of reflect.Value\n// elements to be sorted.\ntype valuesSorter struct {\n\tvalues  []reflect.Value\n\tstrings []string // either nil or same len and values\n\tcs      *ConfigState\n}\n\n// newValuesSorter initializes a valuesSorter instance, which holds a set of\n// surrogate keys on which the data should be sorted.  It uses flags in\n// ConfigState to decide if and how to populate those surrogate keys.\nfunc newValuesSorter(values []reflect.Value, cs *ConfigState) sort.Interface {\n\tvs := &valuesSorter{values: values, cs: cs}\n\tif canSortSimply(vs.values[0].Kind()) {\n\t\treturn vs\n\t}\n\tif !cs.DisableMethods {\n\t\tvs.strings = make([]string, len(values))\n\t\tfor i := range vs.values {\n\t\t\tb := bytes.Buffer{}\n\t\t\tif !handleMethods(cs, &b, vs.values[i]) {\n\t\t\t\tvs.strings = nil\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvs.strings[i] = b.String()\n\t\t}\n\t}\n\tif vs.strings == nil && cs.SpewKeys {\n\t\tvs.strings = make([]string, len(values))\n\t\tfor i := range vs.values {\n\t\t\tvs.strings[i] = Sprintf(\"%#v\", vs.values[i].Interface())\n\t\t}\n\t}\n\treturn vs\n}\n\n// canSortSimply tests whether a reflect.Kind is a primitive that can be sorted\n// directly, or whether it should be considered for sorting by surrogate keys\n// (if the ConfigState allows it).\nfunc canSortSimply(kind reflect.Kind) bool {\n\t// This switch parallels valueSortLess, except for the default case.\n\tswitch kind {\n\tcase reflect.Bool:\n\t\treturn true\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\treturn true\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\treturn true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn true\n\tcase reflect.String:\n\t\treturn true\n\tcase reflect.Uintptr:\n\t\treturn true\n\tcase reflect.Array:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Len returns the number of values in the slice.  It is part of the\n// sort.Interface implementation.\nfunc (s *valuesSorter) Len() int {\n\treturn len(s.values)\n}\n\n// Swap swaps the values at the passed indices.  It is part of the\n// sort.Interface implementation.\nfunc (s *valuesSorter) Swap(i, j int) {\n\ts.values[i], s.values[j] = s.values[j], s.values[i]\n\tif s.strings != nil {\n\t\ts.strings[i], s.strings[j] = s.strings[j], s.strings[i]\n\t}\n}\n\n// valueSortLess returns whether the first value should sort before the second\n// value.  It is used by valueSorter.Less as part of the sort.Interface\n// implementation.\nfunc valueSortLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.String:\n\t\treturn a.String() < b.String()\n\tcase reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Array:\n\t\t// Compare the contents of both arrays.\n\t\tl := a.Len()\n\t\tfor i := 0; i < l; i++ {\n\t\t\tav := a.Index(i)\n\t\t\tbv := b.Index(i)\n\t\t\tif av.Interface() == bv.Interface() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn valueSortLess(av, bv)\n\t\t}\n\t}\n\treturn a.String() < b.String()\n}\n\n// Less returns whether the value at index i should sort before the\n// value at index j.  It is part of the sort.Interface implementation.\nfunc (s *valuesSorter) Less(i, j int) bool {\n\tif s.strings == nil {\n\t\treturn valueSortLess(s.values[i], s.values[j])\n\t}\n\treturn s.strings[i] < s.strings[j]\n}\n\n// sortValues is a sort function that handles both native types and any type that\n// can be converted to error or Stringer.  Other inputs are sorted according to\n// their Value.String() value to ensure display stability.\nfunc sortValues(values []reflect.Value, cs *ConfigState) {\n\tif len(values) == 0 {\n\t\treturn\n\t}\n\tsort.Sort(newValuesSorter(values, cs))\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/config.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// ConfigState houses the configuration options used by spew to format and\n// display values.  There is a global instance, Config, that is used to control\n// all top-level Formatter and Dump functionality.  Each ConfigState instance\n// provides methods equivalent to the top-level functions.\n//\n// The zero value for ConfigState provides no indentation.  You would typically\n// want to set it to a space or a tab.\n//\n// Alternatively, you can use NewDefaultConfig to get a ConfigState instance\n// with default settings.  See the documentation of NewDefaultConfig for default\n// values.\ntype ConfigState struct {\n\t// Indent specifies the string to use for each indentation level.  The\n\t// global config instance that all top-level functions use set this to a\n\t// single space by default.  If you would like more indentation, you might\n\t// set this to a tab with \"\\t\" or perhaps two spaces with \"  \".\n\tIndent string\n\n\t// MaxDepth controls the maximum number of levels to descend into nested\n\t// data structures.  The default, 0, means there is no limit.\n\t//\n\t// NOTE: Circular data structures are properly detected, so it is not\n\t// necessary to set this value unless you specifically want to limit deeply\n\t// nested data structures.\n\tMaxDepth int\n\n\t// DisableMethods specifies whether or not error and Stringer interfaces are\n\t// invoked for types that implement them.\n\tDisableMethods bool\n\n\t// DisablePointerMethods specifies whether or not to check for and invoke\n\t// error and Stringer interfaces on types which only accept a pointer\n\t// receiver when the current type is not a pointer.\n\t//\n\t// NOTE: This might be an unsafe action since calling one of these methods\n\t// with a pointer receiver could technically mutate the value, however,\n\t// in practice, types which choose to satisify an error or Stringer\n\t// interface with a pointer receiver should not be mutating their state\n\t// inside these interface methods.  As a result, this option relies on\n\t// access to the unsafe package, so it will not have any effect when\n\t// running in environments without access to the unsafe package such as\n\t// Google App Engine or with the \"safe\" build tag specified.\n\tDisablePointerMethods bool\n\n\t// DisablePointerAddresses specifies whether to disable the printing of\n\t// pointer addresses. This is useful when diffing data structures in tests.\n\tDisablePointerAddresses bool\n\n\t// DisableCapacities specifies whether to disable the printing of capacities\n\t// for arrays, slices, maps and channels. This is useful when diffing\n\t// data structures in tests.\n\tDisableCapacities bool\n\n\t// ContinueOnMethod specifies whether or not recursion should continue once\n\t// a custom error or Stringer interface is invoked.  The default, false,\n\t// means it will print the results of invoking the custom error or Stringer\n\t// interface and return immediately instead of continuing to recurse into\n\t// the internals of the data type.\n\t//\n\t// NOTE: This flag does not have any effect if method invocation is disabled\n\t// via the DisableMethods or DisablePointerMethods options.\n\tContinueOnMethod bool\n\n\t// SortKeys specifies map keys should be sorted before being printed. Use\n\t// this to have a more deterministic, diffable output.  Note that only\n\t// native types (bool, int, uint, floats, uintptr and string) and types\n\t// that support the error or Stringer interfaces (if methods are\n\t// enabled) are supported, with other types sorted according to the\n\t// reflect.Value.String() output which guarantees display stability.\n\tSortKeys bool\n\n\t// SpewKeys specifies that, as a last resort attempt, map keys should\n\t// be spewed to strings and sorted by those strings.  This is only\n\t// considered if SortKeys is true.\n\tSpewKeys bool\n}\n\n// Config is the active configuration of the top-level functions.\n// The configuration can be changed by modifying the contents of spew.Config.\nvar Config = ConfigState{Indent: \" \"}\n\n// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the formatted string as a value that satisfies error.  See NewFormatter\n// for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Errorf(format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Errorf(format string, a ...interface{}) (err error) {\n\treturn fmt.Errorf(format, c.convertArgs(a)...)\n}\n\n// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprint(w, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Fprint(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprint(w, c.convertArgs(a)...)\n}\n\n// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintf(w, format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintf(w, format, c.convertArgs(a)...)\n}\n\n// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it\n// passed with a Formatter interface returned by c.NewFormatter.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintln(w, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Fprintln(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintln(w, c.convertArgs(a)...)\n}\n\n// Print is a wrapper for fmt.Print that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Print(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Print(a ...interface{}) (n int, err error) {\n\treturn fmt.Print(c.convertArgs(a)...)\n}\n\n// Printf is a wrapper for fmt.Printf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Printf(format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Printf(format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Printf(format, c.convertArgs(a)...)\n}\n\n// Println is a wrapper for fmt.Println that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Println(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Println(a ...interface{}) (n int, err error) {\n\treturn fmt.Println(c.convertArgs(a)...)\n}\n\n// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprint(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Sprint(a ...interface{}) string {\n\treturn fmt.Sprint(c.convertArgs(a)...)\n}\n\n// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintf(format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Sprintf(format string, a ...interface{}) string {\n\treturn fmt.Sprintf(format, c.convertArgs(a)...)\n}\n\n// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it\n// were passed with a Formatter interface returned by c.NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintln(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Sprintln(a ...interface{}) string {\n\treturn fmt.Sprintln(c.convertArgs(a)...)\n}\n\n/*\nNewFormatter returns a custom formatter that satisfies the fmt.Formatter\ninterface.  As a result, it integrates cleanly with standard fmt package\nprinting functions.  The formatter is useful for inline printing of smaller data\ntypes similar to the standard %v format specifier.\n\nThe custom formatter only responds to the %v (most compact), %+v (adds pointer\naddresses), %#v (adds types), and %#+v (adds types and pointer addresses) verb\ncombinations.  Any other verbs such as %x and %q will be sent to the the\nstandard fmt package for formatting.  In addition, the custom formatter ignores\nthe width and precision arguments (however they will still work on the format\nspecifiers not handled by the custom formatter).\n\nTypically this function shouldn't be called directly.  It is much easier to make\nuse of the custom formatter by calling one of the convenience functions such as\nc.Printf, c.Println, or c.Printf.\n*/\nfunc (c *ConfigState) NewFormatter(v interface{}) fmt.Formatter {\n\treturn newFormatter(c, v)\n}\n\n// Fdump formats and displays the passed arguments to io.Writer w.  It formats\n// exactly the same as Dump.\nfunc (c *ConfigState) Fdump(w io.Writer, a ...interface{}) {\n\tfdump(c, w, a...)\n}\n\n/*\nDump displays the passed parameters to standard out with newlines, customizable\nindentation, and additional debug information such as complete types and all\npointer addresses used to indirect to the final value.  It provides the\nfollowing features over the built-in printing facilities provided by the fmt\npackage:\n\n\t* Pointers are dereferenced and followed\n\t* Circular data structures are detected and handled properly\n\t* Custom Stringer/error interfaces are optionally invoked, including\n\t  on unexported types\n\t* Custom types which only implement the Stringer/error interfaces via\n\t  a pointer receiver are optionally invoked when passing non-pointer\n\t  variables\n\t* Byte arrays and slices are dumped like the hexdump -C command which\n\t  includes offsets, byte values in hex, and ASCII output\n\nThe configuration options are controlled by modifying the public members\nof c.  See ConfigState for options documentation.\n\nSee Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to\nget the formatted result as a string.\n*/\nfunc (c *ConfigState) Dump(a ...interface{}) {\n\tfdump(c, os.Stdout, a...)\n}\n\n// Sdump returns a string with the passed arguments formatted exactly the same\n// as Dump.\nfunc (c *ConfigState) Sdump(a ...interface{}) string {\n\tvar buf bytes.Buffer\n\tfdump(c, &buf, a...)\n\treturn buf.String()\n}\n\n// convertArgs accepts a slice of arguments and returns a slice of the same\n// length with each argument converted to a spew Formatter interface using\n// the ConfigState associated with s.\nfunc (c *ConfigState) convertArgs(args []interface{}) (formatters []interface{}) {\n\tformatters = make([]interface{}, len(args))\n\tfor index, arg := range args {\n\t\tformatters[index] = newFormatter(c, arg)\n\t}\n\treturn formatters\n}\n\n// NewDefaultConfig returns a ConfigState with the following default settings.\n//\n// \tIndent: \" \"\n// \tMaxDepth: 0\n// \tDisableMethods: false\n// \tDisablePointerMethods: false\n// \tContinueOnMethod: false\n// \tSortKeys: false\nfunc NewDefaultConfig() *ConfigState {\n\treturn &ConfigState{Indent: \" \"}\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/doc.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\n/*\nPackage spew implements a deep pretty printer for Go data structures to aid in\ndebugging.\n\nA quick overview of the additional features spew provides over the built-in\nprinting facilities for Go data types are as follows:\n\n\t* Pointers are dereferenced and followed\n\t* Circular data structures are detected and handled properly\n\t* Custom Stringer/error interfaces are optionally invoked, including\n\t  on unexported types\n\t* Custom types which only implement the Stringer/error interfaces via\n\t  a pointer receiver are optionally invoked when passing non-pointer\n\t  variables\n\t* Byte arrays and slices are dumped like the hexdump -C command which\n\t  includes offsets, byte values in hex, and ASCII output (only when using\n\t  Dump style)\n\nThere are two different approaches spew allows for dumping Go data structures:\n\n\t* Dump style which prints with newlines, customizable indentation,\n\t  and additional debug information such as types and all pointer addresses\n\t  used to indirect to the final value\n\t* A custom Formatter interface that integrates cleanly with the standard fmt\n\t  package and replaces %v, %+v, %#v, and %#+v to provide inline printing\n\t  similar to the default %v while providing the additional functionality\n\t  outlined above and passing unsupported format verbs such as %x and %q\n\t  along to fmt\n\nQuick Start\n\nThis section demonstrates how to quickly get started with spew.  See the\nsections below for further details on formatting and configuration options.\n\nTo dump a variable with full newlines, indentation, type, and pointer\ninformation use Dump, Fdump, or Sdump:\n\tspew.Dump(myVar1, myVar2, ...)\n\tspew.Fdump(someWriter, myVar1, myVar2, ...)\n\tstr := spew.Sdump(myVar1, myVar2, ...)\n\nAlternatively, if you would prefer to use format strings with a compacted inline\nprinting style, use the convenience wrappers Printf, Fprintf, etc with\n%v (most compact), %+v (adds pointer addresses), %#v (adds types), or\n%#+v (adds types and pointer addresses):\n\tspew.Printf(\"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Printf(\"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\tspew.Fprintf(someWriter, \"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Fprintf(someWriter, \"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\nConfiguration Options\n\nConfiguration of spew is handled by fields in the ConfigState type.  For\nconvenience, all of the top-level functions use a global state available\nvia the spew.Config global.\n\nIt is also possible to create a ConfigState instance that provides methods\nequivalent to the top-level functions.  This allows concurrent configuration\noptions.  See the ConfigState documentation for more details.\n\nThe following configuration options are available:\n\t* Indent\n\t\tString to use for each indentation level for Dump functions.\n\t\tIt is a single space by default.  A popular alternative is \"\\t\".\n\n\t* MaxDepth\n\t\tMaximum number of levels to descend into nested data structures.\n\t\tThere is no limit by default.\n\n\t* DisableMethods\n\t\tDisables invocation of error and Stringer interface methods.\n\t\tMethod invocation is enabled by default.\n\n\t* DisablePointerMethods\n\t\tDisables invocation of error and Stringer interface methods on types\n\t\twhich only accept pointer receivers from non-pointer variables.\n\t\tPointer method invocation is enabled by default.\n\n\t* DisablePointerAddresses\n\t\tDisablePointerAddresses specifies whether to disable the printing of\n\t\tpointer addresses. This is useful when diffing data structures in tests.\n\n\t* DisableCapacities\n\t\tDisableCapacities specifies whether to disable the printing of\n\t\tcapacities for arrays, slices, maps and channels. This is useful when\n\t\tdiffing data structures in tests.\n\n\t* ContinueOnMethod\n\t\tEnables recursion into types after invoking error and Stringer interface\n\t\tmethods. Recursion after method invocation is disabled by default.\n\n\t* SortKeys\n\t\tSpecifies map keys should be sorted before being printed. Use\n\t\tthis to have a more deterministic, diffable output.  Note that\n\t\tonly native types (bool, int, uint, floats, uintptr and string)\n\t\tand types which implement error or Stringer interfaces are\n\t\tsupported with other types sorted according to the\n\t\treflect.Value.String() output which guarantees display\n\t\tstability.  Natural map order is used by default.\n\n\t* SpewKeys\n\t\tSpecifies that, as a last resort attempt, map keys should be\n\t\tspewed to strings and sorted by those strings.  This is only\n\t\tconsidered if SortKeys is true.\n\nDump Usage\n\nSimply call spew.Dump with a list of variables you want to dump:\n\n\tspew.Dump(myVar1, myVar2, ...)\n\nYou may also call spew.Fdump if you would prefer to output to an arbitrary\nio.Writer.  For example, to dump to standard error:\n\n\tspew.Fdump(os.Stderr, myVar1, myVar2, ...)\n\nA third option is to call spew.Sdump to get the formatted output as a string:\n\n\tstr := spew.Sdump(myVar1, myVar2, ...)\n\nSample Dump Output\n\nSee the Dump example for details on the setup of the types and variables being\nshown here.\n\n\t(main.Foo) {\n\t unexportedField: (*main.Bar)(0xf84002e210)({\n\t  flag: (main.Flag) flagTwo,\n\t  data: (uintptr) <nil>\n\t }),\n\t ExportedField: (map[interface {}]interface {}) (len=1) {\n\t  (string) (len=3) \"one\": (bool) true\n\t }\n\t}\n\nByte (and uint8) arrays and slices are displayed uniquely like the hexdump -C\ncommand as shown.\n\t([]uint8) (len=32 cap=32) {\n\t 00000000  11 12 13 14 15 16 17 18  19 1a 1b 1c 1d 1e 1f 20  |............... |\n\t 00000010  21 22 23 24 25 26 27 28  29 2a 2b 2c 2d 2e 2f 30  |!\"#$%&'()*+,-./0|\n\t 00000020  31 32                                             |12|\n\t}\n\nCustom Formatter\n\nSpew provides a custom formatter that implements the fmt.Formatter interface\nso that it integrates cleanly with standard fmt package printing functions. The\nformatter is useful for inline printing of smaller data types similar to the\nstandard %v format specifier.\n\nThe custom formatter only responds to the %v (most compact), %+v (adds pointer\naddresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb\ncombinations.  Any other verbs such as %x and %q will be sent to the the\nstandard fmt package for formatting.  In addition, the custom formatter ignores\nthe width and precision arguments (however they will still work on the format\nspecifiers not handled by the custom formatter).\n\nCustom Formatter Usage\n\nThe simplest way to make use of the spew custom formatter is to call one of the\nconvenience functions such as spew.Printf, spew.Println, or spew.Printf.  The\nfunctions have syntax you are most likely already familiar with:\n\n\tspew.Printf(\"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Printf(\"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\tspew.Println(myVar, myVar2)\n\tspew.Fprintf(os.Stderr, \"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Fprintf(os.Stderr, \"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\nSee the Index for the full list convenience functions.\n\nSample Formatter Output\n\nDouble pointer to a uint8:\n\t  %v: <**>5\n\t %+v: <**>(0xf8400420d0->0xf8400420c8)5\n\t %#v: (**uint8)5\n\t%#+v: (**uint8)(0xf8400420d0->0xf8400420c8)5\n\nPointer to circular struct with a uint8 field and a pointer to itself:\n\t  %v: <*>{1 <*><shown>}\n\t %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)<shown>}\n\t %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)<shown>}\n\t%#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)<shown>}\n\nSee the Printf example for details on the setup of variables being shown\nhere.\n\nErrors\n\nSince it is possible for custom Stringer/error interfaces to panic, spew\ndetects them and handles them internally by printing the panic information\ninline with the output.  Since spew is intended to provide deep pretty printing\ncapabilities on structures, it intentionally does not return any errors.\n*/\npackage spew\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/dump.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nvar (\n\t// uint8Type is a reflect.Type representing a uint8.  It is used to\n\t// convert cgo types to uint8 slices for hexdumping.\n\tuint8Type = reflect.TypeOf(uint8(0))\n\n\t// cCharRE is a regular expression that matches a cgo char.\n\t// It is used to detect character arrays to hexdump them.\n\tcCharRE = regexp.MustCompile(`^.*\\._Ctype_char$`)\n\n\t// cUnsignedCharRE is a regular expression that matches a cgo unsigned\n\t// char.  It is used to detect unsigned character arrays to hexdump\n\t// them.\n\tcUnsignedCharRE = regexp.MustCompile(`^.*\\._Ctype_unsignedchar$`)\n\n\t// cUint8tCharRE is a regular expression that matches a cgo uint8_t.\n\t// It is used to detect uint8_t arrays to hexdump them.\n\tcUint8tCharRE = regexp.MustCompile(`^.*\\._Ctype_uint8_t$`)\n)\n\n// dumpState contains information about the state of a dump operation.\ntype dumpState struct {\n\tw                io.Writer\n\tdepth            int\n\tpointers         map[uintptr]int\n\tignoreNextType   bool\n\tignoreNextIndent bool\n\tcs               *ConfigState\n}\n\n// indent performs indentation according to the depth level and cs.Indent\n// option.\nfunc (d *dumpState) indent() {\n\tif d.ignoreNextIndent {\n\t\td.ignoreNextIndent = false\n\t\treturn\n\t}\n\td.w.Write(bytes.Repeat([]byte(d.cs.Indent), d.depth))\n}\n\n// unpackValue returns values inside of non-nil interfaces when possible.\n// This is useful for data types like structs, arrays, slices, and maps which\n// can contain varying types packed inside an interface.\nfunc (d *dumpState) unpackValue(v reflect.Value) reflect.Value {\n\tif v.Kind() == reflect.Interface && !v.IsNil() {\n\t\tv = v.Elem()\n\t}\n\treturn v\n}\n\n// dumpPtr handles formatting of pointers by indirecting them as necessary.\nfunc (d *dumpState) dumpPtr(v reflect.Value) {\n\t// Remove pointers at or below the current depth from map used to detect\n\t// circular refs.\n\tfor k, depth := range d.pointers {\n\t\tif depth >= d.depth {\n\t\t\tdelete(d.pointers, k)\n\t\t}\n\t}\n\n\t// Keep list of all dereferenced pointers to show later.\n\tpointerChain := make([]uintptr, 0)\n\n\t// Figure out how many levels of indirection there are by dereferencing\n\t// pointers and unpacking interfaces down the chain while detecting circular\n\t// references.\n\tnilFound := false\n\tcycleFound := false\n\tindirects := 0\n\tve := v\n\tfor ve.Kind() == reflect.Ptr {\n\t\tif ve.IsNil() {\n\t\t\tnilFound = true\n\t\t\tbreak\n\t\t}\n\t\tindirects++\n\t\taddr := ve.Pointer()\n\t\tpointerChain = append(pointerChain, addr)\n\t\tif pd, ok := d.pointers[addr]; ok && pd < d.depth {\n\t\t\tcycleFound = true\n\t\t\tindirects--\n\t\t\tbreak\n\t\t}\n\t\td.pointers[addr] = d.depth\n\n\t\tve = ve.Elem()\n\t\tif ve.Kind() == reflect.Interface {\n\t\t\tif ve.IsNil() {\n\t\t\t\tnilFound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tve = ve.Elem()\n\t\t}\n\t}\n\n\t// Display type information.\n\td.w.Write(openParenBytes)\n\td.w.Write(bytes.Repeat(asteriskBytes, indirects))\n\td.w.Write([]byte(ve.Type().String()))\n\td.w.Write(closeParenBytes)\n\n\t// Display pointer information.\n\tif !d.cs.DisablePointerAddresses && len(pointerChain) > 0 {\n\t\td.w.Write(openParenBytes)\n\t\tfor i, addr := range pointerChain {\n\t\t\tif i > 0 {\n\t\t\t\td.w.Write(pointerChainBytes)\n\t\t\t}\n\t\t\tprintHexPtr(d.w, addr)\n\t\t}\n\t\td.w.Write(closeParenBytes)\n\t}\n\n\t// Display dereferenced value.\n\td.w.Write(openParenBytes)\n\tswitch {\n\tcase nilFound:\n\t\td.w.Write(nilAngleBytes)\n\n\tcase cycleFound:\n\t\td.w.Write(circularBytes)\n\n\tdefault:\n\t\td.ignoreNextType = true\n\t\td.dump(ve)\n\t}\n\td.w.Write(closeParenBytes)\n}\n\n// dumpSlice handles formatting of arrays and slices.  Byte (uint8 under\n// reflection) arrays and slices are dumped in hexdump -C fashion.\nfunc (d *dumpState) dumpSlice(v reflect.Value) {\n\t// Determine whether this type should be hex dumped or not.  Also,\n\t// for types which should be hexdumped, try to use the underlying data\n\t// first, then fall back to trying to convert them to a uint8 slice.\n\tvar buf []uint8\n\tdoConvert := false\n\tdoHexDump := false\n\tnumEntries := v.Len()\n\tif numEntries > 0 {\n\t\tvt := v.Index(0).Type()\n\t\tvts := vt.String()\n\t\tswitch {\n\t\t// C types that need to be converted.\n\t\tcase cCharRE.MatchString(vts):\n\t\t\tfallthrough\n\t\tcase cUnsignedCharRE.MatchString(vts):\n\t\t\tfallthrough\n\t\tcase cUint8tCharRE.MatchString(vts):\n\t\t\tdoConvert = true\n\n\t\t// Try to use existing uint8 slices and fall back to converting\n\t\t// and copying if that fails.\n\t\tcase vt.Kind() == reflect.Uint8:\n\t\t\t// We need an addressable interface to convert the type\n\t\t\t// to a byte slice.  However, the reflect package won't\n\t\t\t// give us an interface on certain things like\n\t\t\t// unexported struct fields in order to enforce\n\t\t\t// visibility rules.  We use unsafe, when available, to\n\t\t\t// bypass these restrictions since this package does not\n\t\t\t// mutate the values.\n\t\t\tvs := v\n\t\t\tif !vs.CanInterface() || !vs.CanAddr() {\n\t\t\t\tvs = unsafeReflectValue(vs)\n\t\t\t}\n\t\t\tif !UnsafeDisabled {\n\t\t\t\tvs = vs.Slice(0, numEntries)\n\n\t\t\t\t// Use the existing uint8 slice if it can be\n\t\t\t\t// type asserted.\n\t\t\t\tiface := vs.Interface()\n\t\t\t\tif slice, ok := iface.([]uint8); ok {\n\t\t\t\t\tbuf = slice\n\t\t\t\t\tdoHexDump = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// The underlying data needs to be converted if it can't\n\t\t\t// be type asserted to a uint8 slice.\n\t\t\tdoConvert = true\n\t\t}\n\n\t\t// Copy and convert the underlying type if needed.\n\t\tif doConvert && vt.ConvertibleTo(uint8Type) {\n\t\t\t// Convert and copy each element into a uint8 byte\n\t\t\t// slice.\n\t\t\tbuf = make([]uint8, numEntries)\n\t\t\tfor i := 0; i < numEntries; i++ {\n\t\t\t\tvv := v.Index(i)\n\t\t\t\tbuf[i] = uint8(vv.Convert(uint8Type).Uint())\n\t\t\t}\n\t\t\tdoHexDump = true\n\t\t}\n\t}\n\n\t// Hexdump the entire slice as needed.\n\tif doHexDump {\n\t\tindent := strings.Repeat(d.cs.Indent, d.depth)\n\t\tstr := indent + hex.Dump(buf)\n\t\tstr = strings.Replace(str, \"\\n\", \"\\n\"+indent, -1)\n\t\tstr = strings.TrimRight(str, d.cs.Indent)\n\t\td.w.Write([]byte(str))\n\t\treturn\n\t}\n\n\t// Recursively call dump for each item.\n\tfor i := 0; i < numEntries; i++ {\n\t\td.dump(d.unpackValue(v.Index(i)))\n\t\tif i < (numEntries - 1) {\n\t\t\td.w.Write(commaNewlineBytes)\n\t\t} else {\n\t\t\td.w.Write(newlineBytes)\n\t\t}\n\t}\n}\n\n// dump is the main workhorse for dumping a value.  It uses the passed reflect\n// value to figure out what kind of object we are dealing with and formats it\n// appropriately.  It is a recursive function, however circular data structures\n// are detected and handled properly.\nfunc (d *dumpState) dump(v reflect.Value) {\n\t// Handle invalid reflect values immediately.\n\tkind := v.Kind()\n\tif kind == reflect.Invalid {\n\t\td.w.Write(invalidAngleBytes)\n\t\treturn\n\t}\n\n\t// Handle pointers specially.\n\tif kind == reflect.Ptr {\n\t\td.indent()\n\t\td.dumpPtr(v)\n\t\treturn\n\t}\n\n\t// Print type information unless already handled elsewhere.\n\tif !d.ignoreNextType {\n\t\td.indent()\n\t\td.w.Write(openParenBytes)\n\t\td.w.Write([]byte(v.Type().String()))\n\t\td.w.Write(closeParenBytes)\n\t\td.w.Write(spaceBytes)\n\t}\n\td.ignoreNextType = false\n\n\t// Display length and capacity if the built-in len and cap functions\n\t// work with the value's kind and the len/cap itself is non-zero.\n\tvalueLen, valueCap := 0, 0\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Slice, reflect.Chan:\n\t\tvalueLen, valueCap = v.Len(), v.Cap()\n\tcase reflect.Map, reflect.String:\n\t\tvalueLen = v.Len()\n\t}\n\tif valueLen != 0 || !d.cs.DisableCapacities && valueCap != 0 {\n\t\td.w.Write(openParenBytes)\n\t\tif valueLen != 0 {\n\t\t\td.w.Write(lenEqualsBytes)\n\t\t\tprintInt(d.w, int64(valueLen), 10)\n\t\t}\n\t\tif !d.cs.DisableCapacities && valueCap != 0 {\n\t\t\tif valueLen != 0 {\n\t\t\t\td.w.Write(spaceBytes)\n\t\t\t}\n\t\t\td.w.Write(capEqualsBytes)\n\t\t\tprintInt(d.w, int64(valueCap), 10)\n\t\t}\n\t\td.w.Write(closeParenBytes)\n\t\td.w.Write(spaceBytes)\n\t}\n\n\t// Call Stringer/error interfaces if they exist and the handle methods flag\n\t// is enabled\n\tif !d.cs.DisableMethods {\n\t\tif (kind != reflect.Invalid) && (kind != reflect.Interface) {\n\t\t\tif handled := handleMethods(d.cs, d.w, v); handled {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch kind {\n\tcase reflect.Invalid:\n\t\t// Do nothing.  We should never get here since invalid has already\n\t\t// been handled above.\n\n\tcase reflect.Bool:\n\t\tprintBool(d.w, v.Bool())\n\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\tprintInt(d.w, v.Int(), 10)\n\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\tprintUint(d.w, v.Uint(), 10)\n\n\tcase reflect.Float32:\n\t\tprintFloat(d.w, v.Float(), 32)\n\n\tcase reflect.Float64:\n\t\tprintFloat(d.w, v.Float(), 64)\n\n\tcase reflect.Complex64:\n\t\tprintComplex(d.w, v.Complex(), 32)\n\n\tcase reflect.Complex128:\n\t\tprintComplex(d.w, v.Complex(), 64)\n\n\tcase reflect.Slice:\n\t\tif v.IsNil() {\n\t\t\td.w.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\t\tfallthrough\n\n\tcase reflect.Array:\n\t\td.w.Write(openBraceNewlineBytes)\n\t\td.depth++\n\t\tif (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {\n\t\t\td.indent()\n\t\t\td.w.Write(maxNewlineBytes)\n\t\t} else {\n\t\t\td.dumpSlice(v)\n\t\t}\n\t\td.depth--\n\t\td.indent()\n\t\td.w.Write(closeBraceBytes)\n\n\tcase reflect.String:\n\t\td.w.Write([]byte(strconv.Quote(v.String())))\n\n\tcase reflect.Interface:\n\t\t// The only time we should get here is for nil interfaces due to\n\t\t// unpackValue calls.\n\t\tif v.IsNil() {\n\t\t\td.w.Write(nilAngleBytes)\n\t\t}\n\n\tcase reflect.Ptr:\n\t\t// Do nothing.  We should never get here since pointers have already\n\t\t// been handled above.\n\n\tcase reflect.Map:\n\t\t// nil maps should be indicated as different than empty maps\n\t\tif v.IsNil() {\n\t\t\td.w.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\n\t\td.w.Write(openBraceNewlineBytes)\n\t\td.depth++\n\t\tif (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {\n\t\t\td.indent()\n\t\t\td.w.Write(maxNewlineBytes)\n\t\t} else {\n\t\t\tnumEntries := v.Len()\n\t\t\tkeys := v.MapKeys()\n\t\t\tif d.cs.SortKeys {\n\t\t\t\tsortValues(keys, d.cs)\n\t\t\t}\n\t\t\tfor i, key := range keys {\n\t\t\t\td.dump(d.unpackValue(key))\n\t\t\t\td.w.Write(colonSpaceBytes)\n\t\t\t\td.ignoreNextIndent = true\n\t\t\t\td.dump(d.unpackValue(v.MapIndex(key)))\n\t\t\t\tif i < (numEntries - 1) {\n\t\t\t\t\td.w.Write(commaNewlineBytes)\n\t\t\t\t} else {\n\t\t\t\t\td.w.Write(newlineBytes)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\td.depth--\n\t\td.indent()\n\t\td.w.Write(closeBraceBytes)\n\n\tcase reflect.Struct:\n\t\td.w.Write(openBraceNewlineBytes)\n\t\td.depth++\n\t\tif (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {\n\t\t\td.indent()\n\t\t\td.w.Write(maxNewlineBytes)\n\t\t} else {\n\t\t\tvt := v.Type()\n\t\t\tnumFields := v.NumField()\n\t\t\tfor i := 0; i < numFields; i++ {\n\t\t\t\td.indent()\n\t\t\t\tvtf := vt.Field(i)\n\t\t\t\td.w.Write([]byte(vtf.Name))\n\t\t\t\td.w.Write(colonSpaceBytes)\n\t\t\t\td.ignoreNextIndent = true\n\t\t\t\td.dump(d.unpackValue(v.Field(i)))\n\t\t\t\tif i < (numFields - 1) {\n\t\t\t\t\td.w.Write(commaNewlineBytes)\n\t\t\t\t} else {\n\t\t\t\t\td.w.Write(newlineBytes)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\td.depth--\n\t\td.indent()\n\t\td.w.Write(closeBraceBytes)\n\n\tcase reflect.Uintptr:\n\t\tprintHexPtr(d.w, uintptr(v.Uint()))\n\n\tcase reflect.UnsafePointer, reflect.Chan, reflect.Func:\n\t\tprintHexPtr(d.w, v.Pointer())\n\n\t// There were not any other types at the time this code was written, but\n\t// fall back to letting the default fmt package handle it in case any new\n\t// types are added.\n\tdefault:\n\t\tif v.CanInterface() {\n\t\t\tfmt.Fprintf(d.w, \"%v\", v.Interface())\n\t\t} else {\n\t\t\tfmt.Fprintf(d.w, \"%v\", v.String())\n\t\t}\n\t}\n}\n\n// fdump is a helper function to consolidate the logic from the various public\n// methods which take varying writers and config states.\nfunc fdump(cs *ConfigState, w io.Writer, a ...interface{}) {\n\tfor _, arg := range a {\n\t\tif arg == nil {\n\t\t\tw.Write(interfaceBytes)\n\t\t\tw.Write(spaceBytes)\n\t\t\tw.Write(nilAngleBytes)\n\t\t\tw.Write(newlineBytes)\n\t\t\tcontinue\n\t\t}\n\n\t\td := dumpState{w: w, cs: cs}\n\t\td.pointers = make(map[uintptr]int)\n\t\td.dump(reflect.ValueOf(arg))\n\t\td.w.Write(newlineBytes)\n\t}\n}\n\n// Fdump formats and displays the passed arguments to io.Writer w.  It formats\n// exactly the same as Dump.\nfunc Fdump(w io.Writer, a ...interface{}) {\n\tfdump(&Config, w, a...)\n}\n\n// Sdump returns a string with the passed arguments formatted exactly the same\n// as Dump.\nfunc Sdump(a ...interface{}) string {\n\tvar buf bytes.Buffer\n\tfdump(&Config, &buf, a...)\n\treturn buf.String()\n}\n\n/*\nDump displays the passed parameters to standard out with newlines, customizable\nindentation, and additional debug information such as complete types and all\npointer addresses used to indirect to the final value.  It provides the\nfollowing features over the built-in printing facilities provided by the fmt\npackage:\n\n\t* Pointers are dereferenced and followed\n\t* Circular data structures are detected and handled properly\n\t* Custom Stringer/error interfaces are optionally invoked, including\n\t  on unexported types\n\t* Custom types which only implement the Stringer/error interfaces via\n\t  a pointer receiver are optionally invoked when passing non-pointer\n\t  variables\n\t* Byte arrays and slices are dumped like the hexdump -C command which\n\t  includes offsets, byte values in hex, and ASCII output\n\nThe configuration options are controlled by an exported package global,\nspew.Config.  See ConfigState for options documentation.\n\nSee Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to\nget the formatted result as a string.\n*/\nfunc Dump(a ...interface{}) {\n\tfdump(&Config, os.Stdout, a...)\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/format.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// supportedFlags is a list of all the character flags supported by fmt package.\nconst supportedFlags = \"0-+# \"\n\n// formatState implements the fmt.Formatter interface and contains information\n// about the state of a formatting operation.  The NewFormatter function can\n// be used to get a new Formatter which can be used directly as arguments\n// in standard fmt package printing calls.\ntype formatState struct {\n\tvalue          interface{}\n\tfs             fmt.State\n\tdepth          int\n\tpointers       map[uintptr]int\n\tignoreNextType bool\n\tcs             *ConfigState\n}\n\n// buildDefaultFormat recreates the original format string without precision\n// and width information to pass in to fmt.Sprintf in the case of an\n// unrecognized type.  Unless new types are added to the language, this\n// function won't ever be called.\nfunc (f *formatState) buildDefaultFormat() (format string) {\n\tbuf := bytes.NewBuffer(percentBytes)\n\n\tfor _, flag := range supportedFlags {\n\t\tif f.fs.Flag(int(flag)) {\n\t\t\tbuf.WriteRune(flag)\n\t\t}\n\t}\n\n\tbuf.WriteRune('v')\n\n\tformat = buf.String()\n\treturn format\n}\n\n// constructOrigFormat recreates the original format string including precision\n// and width information to pass along to the standard fmt package.  This allows\n// automatic deferral of all format strings this package doesn't support.\nfunc (f *formatState) constructOrigFormat(verb rune) (format string) {\n\tbuf := bytes.NewBuffer(percentBytes)\n\n\tfor _, flag := range supportedFlags {\n\t\tif f.fs.Flag(int(flag)) {\n\t\t\tbuf.WriteRune(flag)\n\t\t}\n\t}\n\n\tif width, ok := f.fs.Width(); ok {\n\t\tbuf.WriteString(strconv.Itoa(width))\n\t}\n\n\tif precision, ok := f.fs.Precision(); ok {\n\t\tbuf.Write(precisionBytes)\n\t\tbuf.WriteString(strconv.Itoa(precision))\n\t}\n\n\tbuf.WriteRune(verb)\n\n\tformat = buf.String()\n\treturn format\n}\n\n// unpackValue returns values inside of non-nil interfaces when possible and\n// ensures that types for values which have been unpacked from an interface\n// are displayed when the show types flag is also set.\n// This is useful for data types like structs, arrays, slices, and maps which\n// can contain varying types packed inside an interface.\nfunc (f *formatState) unpackValue(v reflect.Value) reflect.Value {\n\tif v.Kind() == reflect.Interface {\n\t\tf.ignoreNextType = false\n\t\tif !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t}\n\treturn v\n}\n\n// formatPtr handles formatting of pointers by indirecting them as necessary.\nfunc (f *formatState) formatPtr(v reflect.Value) {\n\t// Display nil if top level pointer is nil.\n\tshowTypes := f.fs.Flag('#')\n\tif v.IsNil() && (!showTypes || f.ignoreNextType) {\n\t\tf.fs.Write(nilAngleBytes)\n\t\treturn\n\t}\n\n\t// Remove pointers at or below the current depth from map used to detect\n\t// circular refs.\n\tfor k, depth := range f.pointers {\n\t\tif depth >= f.depth {\n\t\t\tdelete(f.pointers, k)\n\t\t}\n\t}\n\n\t// Keep list of all dereferenced pointers to possibly show later.\n\tpointerChain := make([]uintptr, 0)\n\n\t// Figure out how many levels of indirection there are by derferencing\n\t// pointers and unpacking interfaces down the chain while detecting circular\n\t// references.\n\tnilFound := false\n\tcycleFound := false\n\tindirects := 0\n\tve := v\n\tfor ve.Kind() == reflect.Ptr {\n\t\tif ve.IsNil() {\n\t\t\tnilFound = true\n\t\t\tbreak\n\t\t}\n\t\tindirects++\n\t\taddr := ve.Pointer()\n\t\tpointerChain = append(pointerChain, addr)\n\t\tif pd, ok := f.pointers[addr]; ok && pd < f.depth {\n\t\t\tcycleFound = true\n\t\t\tindirects--\n\t\t\tbreak\n\t\t}\n\t\tf.pointers[addr] = f.depth\n\n\t\tve = ve.Elem()\n\t\tif ve.Kind() == reflect.Interface {\n\t\t\tif ve.IsNil() {\n\t\t\t\tnilFound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tve = ve.Elem()\n\t\t}\n\t}\n\n\t// Display type or indirection level depending on flags.\n\tif showTypes && !f.ignoreNextType {\n\t\tf.fs.Write(openParenBytes)\n\t\tf.fs.Write(bytes.Repeat(asteriskBytes, indirects))\n\t\tf.fs.Write([]byte(ve.Type().String()))\n\t\tf.fs.Write(closeParenBytes)\n\t} else {\n\t\tif nilFound || cycleFound {\n\t\t\tindirects += strings.Count(ve.Type().String(), \"*\")\n\t\t}\n\t\tf.fs.Write(openAngleBytes)\n\t\tf.fs.Write([]byte(strings.Repeat(\"*\", indirects)))\n\t\tf.fs.Write(closeAngleBytes)\n\t}\n\n\t// Display pointer information depending on flags.\n\tif f.fs.Flag('+') && (len(pointerChain) > 0) {\n\t\tf.fs.Write(openParenBytes)\n\t\tfor i, addr := range pointerChain {\n\t\t\tif i > 0 {\n\t\t\t\tf.fs.Write(pointerChainBytes)\n\t\t\t}\n\t\t\tprintHexPtr(f.fs, addr)\n\t\t}\n\t\tf.fs.Write(closeParenBytes)\n\t}\n\n\t// Display dereferenced value.\n\tswitch {\n\tcase nilFound:\n\t\tf.fs.Write(nilAngleBytes)\n\n\tcase cycleFound:\n\t\tf.fs.Write(circularShortBytes)\n\n\tdefault:\n\t\tf.ignoreNextType = true\n\t\tf.format(ve)\n\t}\n}\n\n// format is the main workhorse for providing the Formatter interface.  It\n// uses the passed reflect value to figure out what kind of object we are\n// dealing with and formats it appropriately.  It is a recursive function,\n// however circular data structures are detected and handled properly.\nfunc (f *formatState) format(v reflect.Value) {\n\t// Handle invalid reflect values immediately.\n\tkind := v.Kind()\n\tif kind == reflect.Invalid {\n\t\tf.fs.Write(invalidAngleBytes)\n\t\treturn\n\t}\n\n\t// Handle pointers specially.\n\tif kind == reflect.Ptr {\n\t\tf.formatPtr(v)\n\t\treturn\n\t}\n\n\t// Print type information unless already handled elsewhere.\n\tif !f.ignoreNextType && f.fs.Flag('#') {\n\t\tf.fs.Write(openParenBytes)\n\t\tf.fs.Write([]byte(v.Type().String()))\n\t\tf.fs.Write(closeParenBytes)\n\t}\n\tf.ignoreNextType = false\n\n\t// Call Stringer/error interfaces if they exist and the handle methods\n\t// flag is enabled.\n\tif !f.cs.DisableMethods {\n\t\tif (kind != reflect.Invalid) && (kind != reflect.Interface) {\n\t\t\tif handled := handleMethods(f.cs, f.fs, v); handled {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch kind {\n\tcase reflect.Invalid:\n\t\t// Do nothing.  We should never get here since invalid has already\n\t\t// been handled above.\n\n\tcase reflect.Bool:\n\t\tprintBool(f.fs, v.Bool())\n\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\tprintInt(f.fs, v.Int(), 10)\n\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\tprintUint(f.fs, v.Uint(), 10)\n\n\tcase reflect.Float32:\n\t\tprintFloat(f.fs, v.Float(), 32)\n\n\tcase reflect.Float64:\n\t\tprintFloat(f.fs, v.Float(), 64)\n\n\tcase reflect.Complex64:\n\t\tprintComplex(f.fs, v.Complex(), 32)\n\n\tcase reflect.Complex128:\n\t\tprintComplex(f.fs, v.Complex(), 64)\n\n\tcase reflect.Slice:\n\t\tif v.IsNil() {\n\t\t\tf.fs.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\t\tfallthrough\n\n\tcase reflect.Array:\n\t\tf.fs.Write(openBracketBytes)\n\t\tf.depth++\n\t\tif (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {\n\t\t\tf.fs.Write(maxShortBytes)\n\t\t} else {\n\t\t\tnumEntries := v.Len()\n\t\t\tfor i := 0; i < numEntries; i++ {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tf.fs.Write(spaceBytes)\n\t\t\t\t}\n\t\t\t\tf.ignoreNextType = true\n\t\t\t\tf.format(f.unpackValue(v.Index(i)))\n\t\t\t}\n\t\t}\n\t\tf.depth--\n\t\tf.fs.Write(closeBracketBytes)\n\n\tcase reflect.String:\n\t\tf.fs.Write([]byte(v.String()))\n\n\tcase reflect.Interface:\n\t\t// The only time we should get here is for nil interfaces due to\n\t\t// unpackValue calls.\n\t\tif v.IsNil() {\n\t\t\tf.fs.Write(nilAngleBytes)\n\t\t}\n\n\tcase reflect.Ptr:\n\t\t// Do nothing.  We should never get here since pointers have already\n\t\t// been handled above.\n\n\tcase reflect.Map:\n\t\t// nil maps should be indicated as different than empty maps\n\t\tif v.IsNil() {\n\t\t\tf.fs.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\n\t\tf.fs.Write(openMapBytes)\n\t\tf.depth++\n\t\tif (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {\n\t\t\tf.fs.Write(maxShortBytes)\n\t\t} else {\n\t\t\tkeys := v.MapKeys()\n\t\t\tif f.cs.SortKeys {\n\t\t\t\tsortValues(keys, f.cs)\n\t\t\t}\n\t\t\tfor i, key := range keys {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tf.fs.Write(spaceBytes)\n\t\t\t\t}\n\t\t\t\tf.ignoreNextType = true\n\t\t\t\tf.format(f.unpackValue(key))\n\t\t\t\tf.fs.Write(colonBytes)\n\t\t\t\tf.ignoreNextType = true\n\t\t\t\tf.format(f.unpackValue(v.MapIndex(key)))\n\t\t\t}\n\t\t}\n\t\tf.depth--\n\t\tf.fs.Write(closeMapBytes)\n\n\tcase reflect.Struct:\n\t\tnumFields := v.NumField()\n\t\tf.fs.Write(openBraceBytes)\n\t\tf.depth++\n\t\tif (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {\n\t\t\tf.fs.Write(maxShortBytes)\n\t\t} else {\n\t\t\tvt := v.Type()\n\t\t\tfor i := 0; i < numFields; i++ {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tf.fs.Write(spaceBytes)\n\t\t\t\t}\n\t\t\t\tvtf := vt.Field(i)\n\t\t\t\tif f.fs.Flag('+') || f.fs.Flag('#') {\n\t\t\t\t\tf.fs.Write([]byte(vtf.Name))\n\t\t\t\t\tf.fs.Write(colonBytes)\n\t\t\t\t}\n\t\t\t\tf.format(f.unpackValue(v.Field(i)))\n\t\t\t}\n\t\t}\n\t\tf.depth--\n\t\tf.fs.Write(closeBraceBytes)\n\n\tcase reflect.Uintptr:\n\t\tprintHexPtr(f.fs, uintptr(v.Uint()))\n\n\tcase reflect.UnsafePointer, reflect.Chan, reflect.Func:\n\t\tprintHexPtr(f.fs, v.Pointer())\n\n\t// There were not any other types at the time this code was written, but\n\t// fall back to letting the default fmt package handle it if any get added.\n\tdefault:\n\t\tformat := f.buildDefaultFormat()\n\t\tif v.CanInterface() {\n\t\t\tfmt.Fprintf(f.fs, format, v.Interface())\n\t\t} else {\n\t\t\tfmt.Fprintf(f.fs, format, v.String())\n\t\t}\n\t}\n}\n\n// Format satisfies the fmt.Formatter interface. See NewFormatter for usage\n// details.\nfunc (f *formatState) Format(fs fmt.State, verb rune) {\n\tf.fs = fs\n\n\t// Use standard formatting for verbs that are not v.\n\tif verb != 'v' {\n\t\tformat := f.constructOrigFormat(verb)\n\t\tfmt.Fprintf(fs, format, f.value)\n\t\treturn\n\t}\n\n\tif f.value == nil {\n\t\tif fs.Flag('#') {\n\t\t\tfs.Write(interfaceBytes)\n\t\t}\n\t\tfs.Write(nilAngleBytes)\n\t\treturn\n\t}\n\n\tf.format(reflect.ValueOf(f.value))\n}\n\n// newFormatter is a helper function to consolidate the logic from the various\n// public methods which take varying config states.\nfunc newFormatter(cs *ConfigState, v interface{}) fmt.Formatter {\n\tfs := &formatState{value: v, cs: cs}\n\tfs.pointers = make(map[uintptr]int)\n\treturn fs\n}\n\n/*\nNewFormatter returns a custom formatter that satisfies the fmt.Formatter\ninterface.  As a result, it integrates cleanly with standard fmt package\nprinting functions.  The formatter is useful for inline printing of smaller data\ntypes similar to the standard %v format specifier.\n\nThe custom formatter only responds to the %v (most compact), %+v (adds pointer\naddresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb\ncombinations.  Any other verbs such as %x and %q will be sent to the the\nstandard fmt package for formatting.  In addition, the custom formatter ignores\nthe width and precision arguments (however they will still work on the format\nspecifiers not handled by the custom formatter).\n\nTypically this function shouldn't be called directly.  It is much easier to make\nuse of the custom formatter by calling one of the convenience functions such as\nPrintf, Println, or Fprintf.\n*/\nfunc NewFormatter(v interface{}) fmt.Formatter {\n\treturn newFormatter(&Config, v)\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/spew.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the formatted string as a value that satisfies error.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Errorf(format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Errorf(format string, a ...interface{}) (err error) {\n\treturn fmt.Errorf(format, convertArgs(a)...)\n}\n\n// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprint(w, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Fprint(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprint(w, convertArgs(a)...)\n}\n\n// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintf(w, format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintf(w, format, convertArgs(a)...)\n}\n\n// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it\n// passed with a default Formatter interface returned by NewFormatter.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintln(w, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Fprintln(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintln(w, convertArgs(a)...)\n}\n\n// Print is a wrapper for fmt.Print that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Print(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Print(a ...interface{}) (n int, err error) {\n\treturn fmt.Print(convertArgs(a)...)\n}\n\n// Printf is a wrapper for fmt.Printf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Printf(format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Printf(format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Printf(format, convertArgs(a)...)\n}\n\n// Println is a wrapper for fmt.Println that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Println(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Println(a ...interface{}) (n int, err error) {\n\treturn fmt.Println(convertArgs(a)...)\n}\n\n// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprint(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Sprint(a ...interface{}) string {\n\treturn fmt.Sprint(convertArgs(a)...)\n}\n\n// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintf(format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Sprintf(format string, a ...interface{}) string {\n\treturn fmt.Sprintf(format, convertArgs(a)...)\n}\n\n// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it\n// were passed with a default Formatter interface returned by NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintln(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Sprintln(a ...interface{}) string {\n\treturn fmt.Sprintln(convertArgs(a)...)\n}\n\n// convertArgs accepts a slice of arguments and returns a slice of the same\n// length with each argument converted to a default spew Formatter interface.\nfunc convertArgs(args []interface{}) (formatters []interface{}) {\n\tformatters = make([]interface{}, len(args))\n\tfor index, arg := range args {\n\t\tformatters[index] = NewFormatter(arg)\n\t}\n\treturn formatters\n}\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/.gitattributes",
    "content": "*.go text eol=lf\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/.gitignore",
    "content": "# Cover profiles\n*.out\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/.golangci.yml",
    "content": "linters:\n  enable:\n    - bodyclose\n    - dupword # Checks for duplicate words in the source code\n    - gofmt\n    - goimports\n    - ineffassign\n    - misspell\n    - revive\n    - staticcheck\n    - unconvert\n    - unused\n    - vet\n  disable:\n    - errcheck\n\nrun:\n  deadline: 2m\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/CODE-OF-CONDUCT.md",
    "content": "# Code of Conduct\n\nWe follow the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).\n\nPlease contact the [CNCF Code of Conduct Committee](mailto:conduct@cncf.io) in order to report violations of the Code of Conduct.\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/CONTRIBUTING.md",
    "content": "# Contributing to the reference library\n\n## Community help\n\nIf you need help, please ask in the [#distribution](https://cloud-native.slack.com/archives/C01GVR8SY4R) channel on CNCF community slack.\n[Click here for an invite to the CNCF community slack](https://slack.cncf.io/)\n\n## Reporting security issues\n\nThe maintainers take security seriously. If you discover a security\nissue, please bring it to their attention right away!\n\nPlease **DO NOT** file a public issue, instead send your report privately to\n[cncf-distribution-security@lists.cncf.io](mailto:cncf-distribution-security@lists.cncf.io).\n\n## Reporting an issue properly\n\nBy following these simple rules you will get better and faster feedback on your issue.\n\n - search the bugtracker for an already reported issue\n\n### If you found an issue that describes your problem:\n\n - please read other user comments first, and confirm this is the same issue: a given error condition might be indicative of different problems - you may also find a workaround in the comments\n - please refrain from adding \"same thing here\" or \"+1\" comments\n - you don't need to comment on an issue to get notified of updates: just hit the \"subscribe\" button\n - comment if you have some new, technical and relevant information to add to the case\n - __DO NOT__ comment on closed issues or merged PRs. If you think you have a related problem, open up a new issue and reference the PR or issue.\n\n### If you have not found an existing issue that describes your problem:\n\n 1. create a new issue, with a succinct title that describes your issue:\n   - bad title: \"It doesn't work with my docker\"\n   - good title: \"Private registry push fail: 400 error with E_INVALID_DIGEST\"\n 2. copy the output of (or similar for other container tools):\n   - `docker version`\n   - `docker info`\n   - `docker exec <registry-container> registry --version`\n 3. copy the command line you used to launch your Registry\n 4. restart your docker daemon in debug mode (add `-D` to the daemon launch arguments)\n 5. reproduce your problem and get your docker daemon logs showing the error\n 6. if relevant, copy your registry logs that show the error\n 7. provide any relevant detail about your specific Registry configuration (e.g., storage backend used)\n 8. indicate if you are using an enterprise proxy, Nginx, or anything else between you and your Registry\n\n## Contributing Code\n\nContributions should be made via pull requests. Pull requests will be reviewed\nby one or more maintainers or reviewers and merged when acceptable.\n\nYou should follow the basic GitHub workflow:\n\n 1. Use your own [fork](https://help.github.com/en/articles/about-forks)\n 2. Create your [change](https://github.com/containerd/project/blob/master/CONTRIBUTING.md#successful-changes)\n 3. Test your code\n 4. [Commit](https://github.com/containerd/project/blob/master/CONTRIBUTING.md#commit-messages) your work, always [sign your commits](https://github.com/containerd/project/blob/master/CONTRIBUTING.md#commit-messages)\n 5. Push your change to your fork and create a [Pull Request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork)\n\nRefer to [containerd's contribution guide](https://github.com/containerd/project/blob/master/CONTRIBUTING.md#successful-changes)\nfor tips on creating a successful contribution.\n\n## Sign your work\n\nThe sign-off is a simple line at the end of the explanation for the patch. Your\nsignature certifies that you wrote the patch or otherwise have the right to pass\nit on as an open-source patch. The rules are pretty simple: if you can certify\nthe below (from [developercertificate.org](http://developercertificate.org/)):\n\n```\nDeveloper Certificate of Origin\nVersion 1.1\n\nCopyright (C) 2004, 2006 The Linux Foundation and its contributors.\n660 York Street, Suite 102,\nSan Francisco, CA 94110 USA\n\nEveryone is permitted to copy and distribute verbatim copies of this\nlicense document, but changing it is not allowed.\n\nDeveloper's Certificate of Origin 1.1\n\nBy making a contribution to this project, I certify that:\n\n(a) The contribution was created in whole or in part by me and I\n    have the right to submit it under the open source license\n    indicated in the file; or\n\n(b) The contribution is based upon previous work that, to the best\n    of my knowledge, is covered under an appropriate open source\n    license and I have the right under that license to submit that\n    work with modifications, whether created in whole or in part\n    by me, under the same open source license (unless I am\n    permitted to submit under a different license), as indicated\n    in the file; or\n\n(c) The contribution was provided directly to me by some other\n    person who certified (a), (b) or (c) and I have not modified\n    it.\n\n(d) I understand and agree that this project and the contribution\n    are public and that a record of the contribution (including all\n    personal information I submit with it, including my sign-off) is\n    maintained indefinitely and may be redistributed consistent with\n    this project or the open source license(s) involved.\n```\n\nThen you just add a line to every git commit message:\n\n    Signed-off-by: Joe Smith <joe.smith@email.com>\n\nUse your real name (sorry, no pseudonyms or anonymous contributions.)\n\nIf you set your `user.name` and `user.email` git configs, you can sign your\ncommit automatically with `git commit -s`.\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/GOVERNANCE.md",
    "content": "# distribution/reference Project Governance\n\nDistribution [Code of Conduct](./CODE-OF-CONDUCT.md) can be found here.\n\nFor specific guidance on practical contribution steps please\nsee our [CONTRIBUTING.md](./CONTRIBUTING.md) guide.\n\n## Maintainership\n\nThere are different types of maintainers, with different responsibilities, but\nall maintainers have 3 things in common:\n\n1) They share responsibility in the project's success.\n2) They have made a long-term, recurring time investment to improve the project.\n3) They spend that time doing whatever needs to be done, not necessarily what\nis the most interesting or fun.\n\nMaintainers are often under-appreciated, because their work is harder to appreciate.\nIt's easy to appreciate a really cool and technically advanced feature. It's harder\nto appreciate the absence of bugs, the slow but steady improvement in stability,\nor the reliability of a release process. But those things distinguish a good\nproject from a great one.\n\n## Reviewers\n\nA reviewer is a core role within the project.\nThey share in reviewing issues and pull requests and their LGTM counts towards the\nrequired LGTM count to merge a code change into the project.\n\nReviewers are part of the organization but do not have write access.\nBecoming a reviewer is a core aspect in the journey to becoming a maintainer.\n\n## Adding maintainers\n\nMaintainers are first and foremost contributors that have shown they are\ncommitted to the long term success of a project. Contributors wanting to become\nmaintainers are expected to be deeply involved in contributing code, pull\nrequest review, and triage of issues in the project for more than three months.\n\nJust contributing does not make you a maintainer, it is about building trust\nwith the current maintainers of the project and being a person that they can\ndepend on and trust to make decisions in the best interest of the project.\n\nPeriodically, the existing maintainers curate a list of contributors that have\nshown regular activity on the project over the prior months. From this list,\nmaintainer candidates are selected and proposed in a pull request or a\nmaintainers communication channel.\n\nAfter a candidate has been announced to the maintainers, the existing\nmaintainers are given five business days to discuss the candidate, raise\nobjections and cast their vote. Votes may take place on the communication\nchannel or via pull request comment. Candidates must be approved by at least 66%\nof the current maintainers by adding their vote on the mailing list. The\nreviewer role has the same process but only requires 33% of current maintainers.\nOnly maintainers of the repository that the candidate is proposed for are\nallowed to vote.\n\nIf a candidate is approved, a maintainer will contact the candidate to invite\nthe candidate to open a pull request that adds the contributor to the\nMAINTAINERS file. The voting process may take place inside a pull request if a\nmaintainer has already discussed the candidacy with the candidate and a\nmaintainer is willing to be a sponsor by opening the pull request. The candidate\nbecomes a maintainer once the pull request is merged.\n\n## Stepping down policy\n\nLife priorities, interests, and passions can change. If you're a maintainer but\nfeel you must remove yourself from the list, inform other maintainers that you\nintend to step down, and if possible, help find someone to pick up your work.\nAt the very least, ensure your work can be continued where you left off.\n\nAfter you've informed other maintainers, create a pull request to remove\nyourself from the MAINTAINERS file.\n\n## Removal of inactive maintainers\n\nSimilar to the procedure for adding new maintainers, existing maintainers can\nbe removed from the list if they do not show significant activity on the\nproject. Periodically, the maintainers review the list of maintainers and their\nactivity over the last three months.\n\nIf a maintainer has shown insufficient activity over this period, a neutral\nperson will contact the maintainer to ask if they want to continue being\na maintainer. If the maintainer decides to step down as a maintainer, they\nopen a pull request to be removed from the MAINTAINERS file.\n\nIf the maintainer wants to remain a maintainer, but is unable to perform the\nrequired duties they can be removed with a vote of at least 66% of the current\nmaintainers. In this case, maintainers should first propose the change to\nmaintainers via the maintainers communication channel, then open a pull request\nfor voting. The voting period is five business days. The voting pull request\nshould not come as a surpise to any maintainer and any discussion related to\nperformance must not be discussed on the pull request.\n\n## How are decisions made?\n\nDocker distribution is an open-source project with an open design philosophy.\nThis means that the repository is the source of truth for EVERY aspect of the\nproject, including its philosophy, design, road map, and APIs. *If it's part of\nthe project, it's in the repo. If it's in the repo, it's part of the project.*\n\nAs a result, all decisions can be expressed as changes to the repository. An\nimplementation change is a change to the source code. An API change is a change\nto the API specification. A philosophy change is a change to the philosophy\nmanifesto, and so on.\n\nAll decisions affecting distribution, big and small, follow the same 3 steps:\n\n* Step 1: Open a pull request. Anyone can do this.\n\n* Step 2: Discuss the pull request. Anyone can do this.\n\n* Step 3: Merge or refuse the pull request. Who does this depends on the nature\nof the pull request and which areas of the project it affects.\n\n## Helping contributors with the DCO\n\nThe [DCO or `Sign your work`](./CONTRIBUTING.md#sign-your-work)\nrequirement is not intended as a roadblock or speed bump.\n\nSome contributors are not as familiar with `git`, or have used a web\nbased editor, and thus asking them to `git commit --amend -s` is not the best\nway forward.\n\nIn this case, maintainers can update the commits based on clause (c) of the DCO.\nThe most trivial way for a contributor to allow the maintainer to do this, is to\nadd a DCO signature in a pull requests's comment, or a maintainer can simply\nnote that the change is sufficiently trivial that it does not substantially\nchange the existing contribution - i.e., a spelling change.\n\nWhen you add someone's DCO, please also add your own to keep a log.\n\n## I'm a maintainer. Should I make pull requests too?\n\nYes. Nobody should ever push to master directly. All changes should be\nmade through a pull request.\n\n## Conflict Resolution\n\nIf you have a technical dispute that you feel has reached an impasse with a\nsubset of the community, any contributor may open an issue, specifically\ncalling for a resolution vote of the current core maintainers to resolve the\ndispute. The same voting quorums required (2/3) for adding and removing\nmaintainers will apply to conflict resolution.\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/LICENSE",
    "content": "Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/MAINTAINERS",
    "content": "# Distribution project maintainers & reviewers\n#\n# See GOVERNANCE.md for maintainer versus reviewer roles\n#\n# MAINTAINERS (cncf-distribution-maintainers@lists.cncf.io)\n# GitHub ID, Name, Email address\n\"chrispat\",\"Chris Patterson\",\"chrispat@github.com\"\n\"clarkbw\",\"Bryan Clark\",\"clarkbw@github.com\"\n\"corhere\",\"Cory Snider\",\"csnider@mirantis.com\"\n\"deleteriousEffect\",\"Hayley Swimelar\",\"hswimelar@gitlab.com\"\n\"heww\",\"He Weiwei\",\"hweiwei@vmware.com\"\n\"joaodrp\",\"João Pereira\",\"jpereira@gitlab.com\"\n\"justincormack\",\"Justin Cormack\",\"justin.cormack@docker.com\"\n\"squizzi\",\"Kyle Squizzato\",\"ksquizzato@mirantis.com\"\n\"milosgajdos\",\"Milos Gajdos\",\"milosthegajdos@gmail.com\"\n\"sargun\",\"Sargun Dhillon\",\"sargun@sargun.me\"\n\"wy65701436\",\"Wang Yan\",\"wangyan@vmware.com\"\n\"stevelasker\",\"Steve Lasker\",\"steve.lasker@microsoft.com\"\n#\n# REVIEWERS\n# GitHub ID, Name, Email address\n\"dmcgowan\",\"Derek McGowan\",\"derek@mcgstyle.net\"\n\"stevvooe\",\"Stephen Day\",\"stevvooe@gmail.com\"\n\"thajeztah\",\"Sebastiaan van Stijn\",\"github@gone.nl\"\n\"DavidSpek\", \"David van der Spek\", \"vanderspek.david@gmail.com\"\n\"Jamstah\", \"James Hewitt\", \"james.hewitt@gmail.com\"\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/Makefile",
    "content": "# Project packages.\nPACKAGES=$(shell go list ./...)\n\n# Flags passed to `go test`\nBUILDFLAGS ?= \nTESTFLAGS ?= \n\n.PHONY: all build test coverage\n.DEFAULT: all\n\nall: build\n\nbuild: ## no binaries to build, so just check compilation suceeds\n\tgo build ${BUILDFLAGS} ./...\n\ntest: ## run tests\n\tgo test ${TESTFLAGS} ./...\n\ncoverage: ## generate coverprofiles from the unit tests\n\trm -f coverage.txt\n\tgo test ${TESTFLAGS} -cover -coverprofile=cover.out ./...\n\n.PHONY: help\nhelp:\n\t@awk 'BEGIN {FS = \":.*##\"; printf \"\\nUsage:\\n  make \\033[36m\\033[0m\\n\"} /^[a-zA-Z_\\/%-]+:.*?##/ { printf \"  \\033[36m%-27s\\033[0m %s\\n\", $$1, $$2 } /^##@/ { printf \"\\n\\033[1m%s\\033[0m\\n\", substr($$0, 5) } ' $(MAKEFILE_LIST)\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/README.md",
    "content": "# Distribution reference\n\nGo library to handle references to container images.\n\n<img src=\"/distribution-logo.svg\" width=\"200px\" />\n\n[![Build Status](https://github.com/distribution/reference/actions/workflows/test.yml/badge.svg?branch=main&event=push)](https://github.com/distribution/reference/actions?query=workflow%3ACI)\n[![GoDoc](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/github.com/distribution/reference)\n[![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE)\n[![codecov](https://codecov.io/gh/distribution/reference/branch/main/graph/badge.svg)](https://codecov.io/gh/distribution/reference)\n[![FOSSA Status](https://app.fossa.com/api/projects/custom%2B162%2Fgithub.com%2Fdistribution%2Freference.svg?type=shield)](https://app.fossa.com/projects/custom%2B162%2Fgithub.com%2Fdistribution%2Freference?ref=badge_shield)\n\nThis repository contains a library for handling references to container images held in container registries. Please see [godoc](https://pkg.go.dev/github.com/distribution/reference) for details.\n\n## Contribution\n\nPlease see [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to contribute\nissues, fixes, and patches to this project.\n\n## Communication\n\nFor async communication and long running discussions please use issues and pull requests on the github repo.\nThis will be the best place to discuss design and implementation.\n\nFor sync communication we have a #distribution channel in the [CNCF Slack](https://slack.cncf.io/)\nthat everyone is welcome to join and chat about development.\n\n## Licenses\n\nThe distribution codebase is released under the [Apache 2.0 license](LICENSE).\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/SECURITY.md",
    "content": "# Security Policy\n\n## Reporting a Vulnerability\n\nThe maintainers take security seriously. If you discover a security issue, please bring it to their attention right away!\n\nPlease DO NOT file a public issue, instead send your report privately to cncf-distribution-security@lists.cncf.io.\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/helpers.go",
    "content": "package reference\n\nimport \"path\"\n\n// IsNameOnly returns true if reference only contains a repo name.\nfunc IsNameOnly(ref Named) bool {\n\tif _, ok := ref.(NamedTagged); ok {\n\t\treturn false\n\t}\n\tif _, ok := ref.(Canonical); ok {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// FamiliarName returns the familiar name string\n// for the given named, familiarizing if needed.\nfunc FamiliarName(ref Named) string {\n\tif nn, ok := ref.(normalizedNamed); ok {\n\t\treturn nn.Familiar().Name()\n\t}\n\treturn ref.Name()\n}\n\n// FamiliarString returns the familiar string representation\n// for the given reference, familiarizing if needed.\nfunc FamiliarString(ref Reference) string {\n\tif nn, ok := ref.(normalizedNamed); ok {\n\t\treturn nn.Familiar().String()\n\t}\n\treturn ref.String()\n}\n\n// FamiliarMatch reports whether ref matches the specified pattern.\n// See [path.Match] for supported patterns.\nfunc FamiliarMatch(pattern string, ref Reference) (bool, error) {\n\tmatched, err := path.Match(pattern, FamiliarString(ref))\n\tif namedRef, isNamed := ref.(Named); isNamed && !matched {\n\t\tmatched, _ = path.Match(pattern, FamiliarName(namedRef))\n\t}\n\treturn matched, err\n}\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/normalize.go",
    "content": "package reference\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/opencontainers/go-digest\"\n)\n\nconst (\n\t// legacyDefaultDomain is the legacy domain for Docker Hub (which was\n\t// originally named \"the Docker Index\"). This domain is still used for\n\t// authentication and image search, which were part of the \"v1\" Docker\n\t// registry specification.\n\t//\n\t// This domain will continue to be supported, but there are plans to consolidate\n\t// legacy domains to new \"canonical\" domains. Once those domains are decided\n\t// on, we must update the normalization functions, but preserve compatibility\n\t// with existing installs, clients, and user configuration.\n\tlegacyDefaultDomain = \"index.docker.io\"\n\n\t// defaultDomain is the default domain used for images on Docker Hub.\n\t// It is used to normalize \"familiar\" names to canonical names, for example,\n\t// to convert \"ubuntu\" to \"docker.io/library/ubuntu:latest\".\n\t//\n\t// Note that actual domain of Docker Hub's registry is registry-1.docker.io.\n\t// This domain will continue to be supported, but there are plans to consolidate\n\t// legacy domains to new \"canonical\" domains. Once those domains are decided\n\t// on, we must update the normalization functions, but preserve compatibility\n\t// with existing installs, clients, and user configuration.\n\tdefaultDomain = \"docker.io\"\n\n\t// officialRepoPrefix is the namespace used for official images on Docker Hub.\n\t// It is used to normalize \"familiar\" names to canonical names, for example,\n\t// to convert \"ubuntu\" to \"docker.io/library/ubuntu:latest\".\n\tofficialRepoPrefix = \"library/\"\n\n\t// defaultTag is the default tag if no tag is provided.\n\tdefaultTag = \"latest\"\n)\n\n// normalizedNamed represents a name which has been\n// normalized and has a familiar form. A familiar name\n// is what is used in Docker UI. An example normalized\n// name is \"docker.io/library/ubuntu\" and corresponding\n// familiar name of \"ubuntu\".\ntype normalizedNamed interface {\n\tNamed\n\tFamiliar() Named\n}\n\n// ParseNormalizedNamed parses a string into a named reference\n// transforming a familiar name from Docker UI to a fully\n// qualified reference. If the value may be an identifier\n// use ParseAnyReference.\nfunc ParseNormalizedNamed(s string) (Named, error) {\n\tif ok := anchoredIdentifierRegexp.MatchString(s); ok {\n\t\treturn nil, fmt.Errorf(\"invalid repository name (%s), cannot specify 64-byte hexadecimal strings\", s)\n\t}\n\tdomain, remainder := splitDockerDomain(s)\n\tvar remote string\n\tif tagSep := strings.IndexRune(remainder, ':'); tagSep > -1 {\n\t\tremote = remainder[:tagSep]\n\t} else {\n\t\tremote = remainder\n\t}\n\tif strings.ToLower(remote) != remote {\n\t\treturn nil, fmt.Errorf(\"invalid reference format: repository name (%s) must be lowercase\", remote)\n\t}\n\n\tref, err := Parse(domain + \"/\" + remainder)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tnamed, isNamed := ref.(Named)\n\tif !isNamed {\n\t\treturn nil, fmt.Errorf(\"reference %s has no name\", ref.String())\n\t}\n\treturn named, nil\n}\n\n// namedTaggedDigested is a reference that has both a tag and a digest.\ntype namedTaggedDigested interface {\n\tNamedTagged\n\tDigested\n}\n\n// ParseDockerRef normalizes the image reference following the docker convention,\n// which allows for references to contain both a tag and a digest. It returns a\n// reference that is either tagged or digested. For references containing both\n// a tag and a digest, it returns a digested reference. For example, the following\n// reference:\n//\n//\tdocker.io/library/busybox:latest@sha256:7cc4b5aefd1d0cadf8d97d4350462ba51c694ebca145b08d7d41b41acc8db5aa\n//\n// Is returned as a digested reference (with the \":latest\" tag removed):\n//\n//\tdocker.io/library/busybox@sha256:7cc4b5aefd1d0cadf8d97d4350462ba51c694ebca145b08d7d41b41acc8db5aa\n//\n// References that are already \"tagged\" or \"digested\" are returned unmodified:\n//\n//\t// Already a digested reference\n//\tdocker.io/library/busybox@sha256:7cc4b5aefd1d0cadf8d97d4350462ba51c694ebca145b08d7d41b41acc8db5aa\n//\n//\t// Already a named reference\n//\tdocker.io/library/busybox:latest\nfunc ParseDockerRef(ref string) (Named, error) {\n\tnamed, err := ParseNormalizedNamed(ref)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif canonical, ok := named.(namedTaggedDigested); ok {\n\t\t// The reference is both tagged and digested; only return digested.\n\t\tnewNamed, err := WithName(canonical.Name())\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn WithDigest(newNamed, canonical.Digest())\n\t}\n\treturn TagNameOnly(named), nil\n}\n\n// splitDockerDomain splits a repository name to domain and remote-name.\n// If no valid domain is found, the default domain is used. Repository name\n// needs to be already validated before.\nfunc splitDockerDomain(name string) (domain, remoteName string) {\n\tmaybeDomain, maybeRemoteName, ok := strings.Cut(name, \"/\")\n\tif !ok {\n\t\t// Fast-path for single element (\"familiar\" names), such as \"ubuntu\"\n\t\t// or \"ubuntu:latest\". Familiar names must be handled separately, to\n\t\t// prevent them from being handled as \"hostname:port\".\n\t\t//\n\t\t// Canonicalize them as \"docker.io/library/name[:tag]\"\n\n\t\t// FIXME(thaJeztah): account for bare \"localhost\" or \"example.com\" names, which SHOULD be considered a domain.\n\t\treturn defaultDomain, officialRepoPrefix + name\n\t}\n\n\tswitch {\n\tcase maybeDomain == localhost:\n\t\t// localhost is a reserved namespace and always considered a domain.\n\t\tdomain, remoteName = maybeDomain, maybeRemoteName\n\tcase maybeDomain == legacyDefaultDomain:\n\t\t// canonicalize the Docker Hub and legacy \"Docker Index\" domains.\n\t\tdomain, remoteName = defaultDomain, maybeRemoteName\n\tcase strings.ContainsAny(maybeDomain, \".:\"):\n\t\t// Likely a domain or IP-address:\n\t\t//\n\t\t// - contains a \".\" (e.g., \"example.com\" or \"127.0.0.1\")\n\t\t// - contains a \":\" (e.g., \"example:5000\", \"::1\", or \"[::1]:5000\")\n\t\tdomain, remoteName = maybeDomain, maybeRemoteName\n\tcase strings.ToLower(maybeDomain) != maybeDomain:\n\t\t// Uppercase namespaces are not allowed, so if the first element\n\t\t// is not lowercase, we assume it to be a domain-name.\n\t\tdomain, remoteName = maybeDomain, maybeRemoteName\n\tdefault:\n\t\t// None of the above: it's not a domain, so use the default, and\n\t\t// use the name input the remote-name.\n\t\tdomain, remoteName = defaultDomain, name\n\t}\n\n\tif domain == defaultDomain && !strings.ContainsRune(remoteName, '/') {\n\t\t// Canonicalize \"familiar\" names, but only on Docker Hub, not\n\t\t// on other domains:\n\t\t//\n\t\t// \"docker.io/ubuntu[:tag]\" => \"docker.io/library/ubuntu[:tag]\"\n\t\tremoteName = officialRepoPrefix + remoteName\n\t}\n\n\treturn domain, remoteName\n}\n\n// familiarizeName returns a shortened version of the name familiar\n// to the Docker UI. Familiar names have the default domain\n// \"docker.io\" and \"library/\" repository prefix removed.\n// For example, \"docker.io/library/redis\" will have the familiar\n// name \"redis\" and \"docker.io/dmcgowan/myapp\" will be \"dmcgowan/myapp\".\n// Returns a familiarized named only reference.\nfunc familiarizeName(named namedRepository) repository {\n\trepo := repository{\n\t\tdomain: named.Domain(),\n\t\tpath:   named.Path(),\n\t}\n\n\tif repo.domain == defaultDomain {\n\t\trepo.domain = \"\"\n\t\t// Handle official repositories which have the pattern \"library/<official repo name>\"\n\t\tif strings.HasPrefix(repo.path, officialRepoPrefix) {\n\t\t\t// TODO(thaJeztah): this check may be too strict, as it assumes the\n\t\t\t//  \"library/\" namespace does not have nested namespaces. While this\n\t\t\t//  is true (currently), technically it would be possible for Docker\n\t\t\t//  Hub to use those (e.g. \"library/distros/ubuntu:latest\").\n\t\t\t//  See https://github.com/distribution/distribution/pull/3769#issuecomment-1302031785.\n\t\t\tif remainder := strings.TrimPrefix(repo.path, officialRepoPrefix); !strings.ContainsRune(remainder, '/') {\n\t\t\t\trepo.path = remainder\n\t\t\t}\n\t\t}\n\t}\n\treturn repo\n}\n\nfunc (r reference) Familiar() Named {\n\treturn reference{\n\t\tnamedRepository: familiarizeName(r.namedRepository),\n\t\ttag:             r.tag,\n\t\tdigest:          r.digest,\n\t}\n}\n\nfunc (r repository) Familiar() Named {\n\treturn familiarizeName(r)\n}\n\nfunc (t taggedReference) Familiar() Named {\n\treturn taggedReference{\n\t\tnamedRepository: familiarizeName(t.namedRepository),\n\t\ttag:             t.tag,\n\t}\n}\n\nfunc (c canonicalReference) Familiar() Named {\n\treturn canonicalReference{\n\t\tnamedRepository: familiarizeName(c.namedRepository),\n\t\tdigest:          c.digest,\n\t}\n}\n\n// TagNameOnly adds the default tag \"latest\" to a reference if it only has\n// a repo name.\nfunc TagNameOnly(ref Named) Named {\n\tif IsNameOnly(ref) {\n\t\tnamedTagged, err := WithTag(ref, defaultTag)\n\t\tif err != nil {\n\t\t\t// Default tag must be valid, to create a NamedTagged\n\t\t\t// type with non-validated input the WithTag function\n\t\t\t// should be used instead\n\t\t\tpanic(err)\n\t\t}\n\t\treturn namedTagged\n\t}\n\treturn ref\n}\n\n// ParseAnyReference parses a reference string as a possible identifier,\n// full digest, or familiar name.\nfunc ParseAnyReference(ref string) (Reference, error) {\n\tif ok := anchoredIdentifierRegexp.MatchString(ref); ok {\n\t\treturn digestReference(\"sha256:\" + ref), nil\n\t}\n\tif dgst, err := digest.Parse(ref); err == nil {\n\t\treturn digestReference(dgst), nil\n\t}\n\n\treturn ParseNormalizedNamed(ref)\n}\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/reference.go",
    "content": "// Package reference provides a general type to represent any way of referencing images within the registry.\n// Its main purpose is to abstract tags and digests (content-addressable hash).\n//\n// Grammar\n//\n//\treference                       := name [ \":\" tag ] [ \"@\" digest ]\n//\tname                            := [domain '/'] remote-name\n//\tdomain                          := host [':' port-number]\n//\thost                            := domain-name | IPv4address | \\[ IPv6address \\]\t; rfc3986 appendix-A\n//\tdomain-name                     := domain-component ['.' domain-component]*\n//\tdomain-component                := /([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])/\n//\tport-number                     := /[0-9]+/\n//\tpath-component                  := alpha-numeric [separator alpha-numeric]*\n//\tpath (or \"remote-name\")         := path-component ['/' path-component]*\n//\talpha-numeric                   := /[a-z0-9]+/\n//\tseparator                       := /[_.]|__|[-]*/\n//\n//\ttag                             := /[\\w][\\w.-]{0,127}/\n//\n//\tdigest                          := digest-algorithm \":\" digest-hex\n//\tdigest-algorithm                := digest-algorithm-component [ digest-algorithm-separator digest-algorithm-component ]*\n//\tdigest-algorithm-separator      := /[+.-_]/\n//\tdigest-algorithm-component      := /[A-Za-z][A-Za-z0-9]*/\n//\tdigest-hex                      := /[0-9a-fA-F]{32,}/ ; At least 128 bit digest value\n//\n//\tidentifier                      := /[a-f0-9]{64}/\npackage reference\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/opencontainers/go-digest\"\n)\n\nconst (\n\t// RepositoryNameTotalLengthMax is the maximum total number of characters in a repository name.\n\tRepositoryNameTotalLengthMax = 255\n\n\t// NameTotalLengthMax is the maximum total number of characters in a repository name.\n\t//\n\t// Deprecated: use [RepositoryNameTotalLengthMax] instead.\n\tNameTotalLengthMax = RepositoryNameTotalLengthMax\n)\n\nvar (\n\t// ErrReferenceInvalidFormat represents an error while trying to parse a string as a reference.\n\tErrReferenceInvalidFormat = errors.New(\"invalid reference format\")\n\n\t// ErrTagInvalidFormat represents an error while trying to parse a string as a tag.\n\tErrTagInvalidFormat = errors.New(\"invalid tag format\")\n\n\t// ErrDigestInvalidFormat represents an error while trying to parse a string as a tag.\n\tErrDigestInvalidFormat = errors.New(\"invalid digest format\")\n\n\t// ErrNameContainsUppercase is returned for invalid repository names that contain uppercase characters.\n\tErrNameContainsUppercase = errors.New(\"repository name must be lowercase\")\n\n\t// ErrNameEmpty is returned for empty, invalid repository names.\n\tErrNameEmpty = errors.New(\"repository name must have at least one component\")\n\n\t// ErrNameTooLong is returned when a repository name is longer than RepositoryNameTotalLengthMax.\n\tErrNameTooLong = fmt.Errorf(\"repository name must not be more than %v characters\", RepositoryNameTotalLengthMax)\n\n\t// ErrNameNotCanonical is returned when a name is not canonical.\n\tErrNameNotCanonical = errors.New(\"repository name must be canonical\")\n)\n\n// Reference is an opaque object reference identifier that may include\n// modifiers such as a hostname, name, tag, and digest.\ntype Reference interface {\n\t// String returns the full reference\n\tString() string\n}\n\n// Field provides a wrapper type for resolving correct reference types when\n// working with encoding.\ntype Field struct {\n\treference Reference\n}\n\n// AsField wraps a reference in a Field for encoding.\nfunc AsField(reference Reference) Field {\n\treturn Field{reference}\n}\n\n// Reference unwraps the reference type from the field to\n// return the Reference object. This object should be\n// of the appropriate type to further check for different\n// reference types.\nfunc (f Field) Reference() Reference {\n\treturn f.reference\n}\n\n// MarshalText serializes the field to byte text which\n// is the string of the reference.\nfunc (f Field) MarshalText() (p []byte, err error) {\n\treturn []byte(f.reference.String()), nil\n}\n\n// UnmarshalText parses text bytes by invoking the\n// reference parser to ensure the appropriately\n// typed reference object is wrapped by field.\nfunc (f *Field) UnmarshalText(p []byte) error {\n\tr, err := Parse(string(p))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tf.reference = r\n\treturn nil\n}\n\n// Named is an object with a full name\ntype Named interface {\n\tReference\n\tName() string\n}\n\n// Tagged is an object which has a tag\ntype Tagged interface {\n\tReference\n\tTag() string\n}\n\n// NamedTagged is an object including a name and tag.\ntype NamedTagged interface {\n\tNamed\n\tTag() string\n}\n\n// Digested is an object which has a digest\n// in which it can be referenced by\ntype Digested interface {\n\tReference\n\tDigest() digest.Digest\n}\n\n// Canonical reference is an object with a fully unique\n// name including a name with domain and digest\ntype Canonical interface {\n\tNamed\n\tDigest() digest.Digest\n}\n\n// namedRepository is a reference to a repository with a name.\n// A namedRepository has both domain and path components.\ntype namedRepository interface {\n\tNamed\n\tDomain() string\n\tPath() string\n}\n\n// Domain returns the domain part of the [Named] reference.\nfunc Domain(named Named) string {\n\tif r, ok := named.(namedRepository); ok {\n\t\treturn r.Domain()\n\t}\n\tdomain, _ := splitDomain(named.Name())\n\treturn domain\n}\n\n// Path returns the name without the domain part of the [Named] reference.\nfunc Path(named Named) (name string) {\n\tif r, ok := named.(namedRepository); ok {\n\t\treturn r.Path()\n\t}\n\t_, path := splitDomain(named.Name())\n\treturn path\n}\n\n// splitDomain splits a named reference into a hostname and path string.\n// If no valid hostname is found, the hostname is empty and the full value\n// is returned as name\nfunc splitDomain(name string) (string, string) {\n\tmatch := anchoredNameRegexp.FindStringSubmatch(name)\n\tif len(match) != 3 {\n\t\treturn \"\", name\n\t}\n\treturn match[1], match[2]\n}\n\n// Parse parses s and returns a syntactically valid Reference.\n// If an error was encountered it is returned, along with a nil Reference.\nfunc Parse(s string) (Reference, error) {\n\tmatches := ReferenceRegexp.FindStringSubmatch(s)\n\tif matches == nil {\n\t\tif s == \"\" {\n\t\t\treturn nil, ErrNameEmpty\n\t\t}\n\t\tif ReferenceRegexp.FindStringSubmatch(strings.ToLower(s)) != nil {\n\t\t\treturn nil, ErrNameContainsUppercase\n\t\t}\n\t\treturn nil, ErrReferenceInvalidFormat\n\t}\n\n\tvar repo repository\n\n\tnameMatch := anchoredNameRegexp.FindStringSubmatch(matches[1])\n\tif len(nameMatch) == 3 {\n\t\trepo.domain = nameMatch[1]\n\t\trepo.path = nameMatch[2]\n\t} else {\n\t\trepo.domain = \"\"\n\t\trepo.path = matches[1]\n\t}\n\n\tif len(repo.path) > RepositoryNameTotalLengthMax {\n\t\treturn nil, ErrNameTooLong\n\t}\n\n\tref := reference{\n\t\tnamedRepository: repo,\n\t\ttag:             matches[2],\n\t}\n\tif matches[3] != \"\" {\n\t\tvar err error\n\t\tref.digest, err = digest.Parse(matches[3])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tr := getBestReferenceType(ref)\n\tif r == nil {\n\t\treturn nil, ErrNameEmpty\n\t}\n\n\treturn r, nil\n}\n\n// ParseNamed parses s and returns a syntactically valid reference implementing\n// the Named interface. The reference must have a name and be in the canonical\n// form, otherwise an error is returned.\n// If an error was encountered it is returned, along with a nil Reference.\nfunc ParseNamed(s string) (Named, error) {\n\tnamed, err := ParseNormalizedNamed(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif named.String() != s {\n\t\treturn nil, ErrNameNotCanonical\n\t}\n\treturn named, nil\n}\n\n// WithName returns a named object representing the given string. If the input\n// is invalid ErrReferenceInvalidFormat will be returned.\nfunc WithName(name string) (Named, error) {\n\tmatch := anchoredNameRegexp.FindStringSubmatch(name)\n\tif match == nil || len(match) != 3 {\n\t\treturn nil, ErrReferenceInvalidFormat\n\t}\n\n\tif len(match[2]) > RepositoryNameTotalLengthMax {\n\t\treturn nil, ErrNameTooLong\n\t}\n\n\treturn repository{\n\t\tdomain: match[1],\n\t\tpath:   match[2],\n\t}, nil\n}\n\n// WithTag combines the name from \"name\" and the tag from \"tag\" to form a\n// reference incorporating both the name and the tag.\nfunc WithTag(name Named, tag string) (NamedTagged, error) {\n\tif !anchoredTagRegexp.MatchString(tag) {\n\t\treturn nil, ErrTagInvalidFormat\n\t}\n\tvar repo repository\n\tif r, ok := name.(namedRepository); ok {\n\t\trepo.domain = r.Domain()\n\t\trepo.path = r.Path()\n\t} else {\n\t\trepo.path = name.Name()\n\t}\n\tif canonical, ok := name.(Canonical); ok {\n\t\treturn reference{\n\t\t\tnamedRepository: repo,\n\t\t\ttag:             tag,\n\t\t\tdigest:          canonical.Digest(),\n\t\t}, nil\n\t}\n\treturn taggedReference{\n\t\tnamedRepository: repo,\n\t\ttag:             tag,\n\t}, nil\n}\n\n// WithDigest combines the name from \"name\" and the digest from \"digest\" to form\n// a reference incorporating both the name and the digest.\nfunc WithDigest(name Named, digest digest.Digest) (Canonical, error) {\n\tif !anchoredDigestRegexp.MatchString(digest.String()) {\n\t\treturn nil, ErrDigestInvalidFormat\n\t}\n\tvar repo repository\n\tif r, ok := name.(namedRepository); ok {\n\t\trepo.domain = r.Domain()\n\t\trepo.path = r.Path()\n\t} else {\n\t\trepo.path = name.Name()\n\t}\n\tif tagged, ok := name.(Tagged); ok {\n\t\treturn reference{\n\t\t\tnamedRepository: repo,\n\t\t\ttag:             tagged.Tag(),\n\t\t\tdigest:          digest,\n\t\t}, nil\n\t}\n\treturn canonicalReference{\n\t\tnamedRepository: repo,\n\t\tdigest:          digest,\n\t}, nil\n}\n\n// TrimNamed removes any tag or digest from the named reference.\nfunc TrimNamed(ref Named) Named {\n\trepo := repository{}\n\tif r, ok := ref.(namedRepository); ok {\n\t\trepo.domain, repo.path = r.Domain(), r.Path()\n\t} else {\n\t\trepo.domain, repo.path = splitDomain(ref.Name())\n\t}\n\treturn repo\n}\n\nfunc getBestReferenceType(ref reference) Reference {\n\tif ref.Name() == \"\" {\n\t\t// Allow digest only references\n\t\tif ref.digest != \"\" {\n\t\t\treturn digestReference(ref.digest)\n\t\t}\n\t\treturn nil\n\t}\n\tif ref.tag == \"\" {\n\t\tif ref.digest != \"\" {\n\t\t\treturn canonicalReference{\n\t\t\t\tnamedRepository: ref.namedRepository,\n\t\t\t\tdigest:          ref.digest,\n\t\t\t}\n\t\t}\n\t\treturn ref.namedRepository\n\t}\n\tif ref.digest == \"\" {\n\t\treturn taggedReference{\n\t\t\tnamedRepository: ref.namedRepository,\n\t\t\ttag:             ref.tag,\n\t\t}\n\t}\n\n\treturn ref\n}\n\ntype reference struct {\n\tnamedRepository\n\ttag    string\n\tdigest digest.Digest\n}\n\nfunc (r reference) String() string {\n\treturn r.Name() + \":\" + r.tag + \"@\" + r.digest.String()\n}\n\nfunc (r reference) Tag() string {\n\treturn r.tag\n}\n\nfunc (r reference) Digest() digest.Digest {\n\treturn r.digest\n}\n\ntype repository struct {\n\tdomain string\n\tpath   string\n}\n\nfunc (r repository) String() string {\n\treturn r.Name()\n}\n\nfunc (r repository) Name() string {\n\tif r.domain == \"\" {\n\t\treturn r.path\n\t}\n\treturn r.domain + \"/\" + r.path\n}\n\nfunc (r repository) Domain() string {\n\treturn r.domain\n}\n\nfunc (r repository) Path() string {\n\treturn r.path\n}\n\ntype digestReference digest.Digest\n\nfunc (d digestReference) String() string {\n\treturn digest.Digest(d).String()\n}\n\nfunc (d digestReference) Digest() digest.Digest {\n\treturn digest.Digest(d)\n}\n\ntype taggedReference struct {\n\tnamedRepository\n\ttag string\n}\n\nfunc (t taggedReference) String() string {\n\treturn t.Name() + \":\" + t.tag\n}\n\nfunc (t taggedReference) Tag() string {\n\treturn t.tag\n}\n\ntype canonicalReference struct {\n\tnamedRepository\n\tdigest digest.Digest\n}\n\nfunc (c canonicalReference) String() string {\n\treturn c.Name() + \"@\" + c.digest.String()\n}\n\nfunc (c canonicalReference) Digest() digest.Digest {\n\treturn c.digest\n}\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/regexp.go",
    "content": "package reference\n\nimport (\n\t\"regexp\"\n\t\"strings\"\n)\n\n// DigestRegexp matches well-formed digests, including algorithm (e.g. \"sha256:<encoded>\").\nvar DigestRegexp = regexp.MustCompile(digestPat)\n\n// DomainRegexp matches hostname or IP-addresses, optionally including a port\n// number. It defines the structure of potential domain components that may be\n// part of image names. This is purposely a subset of what is allowed by DNS to\n// ensure backwards compatibility with Docker image names. It may be a subset of\n// DNS domain name, an IPv4 address in decimal format, or an IPv6 address between\n// square brackets (excluding zone identifiers as defined by [RFC 6874] or special\n// addresses such as IPv4-Mapped).\n//\n// [RFC 6874]: https://www.rfc-editor.org/rfc/rfc6874.\nvar DomainRegexp = regexp.MustCompile(domainAndPort)\n\n// IdentifierRegexp is the format for string identifier used as a\n// content addressable identifier using sha256. These identifiers\n// are like digests without the algorithm, since sha256 is used.\nvar IdentifierRegexp = regexp.MustCompile(identifier)\n\n// NameRegexp is the format for the name component of references, including\n// an optional domain and port, but without tag or digest suffix.\nvar NameRegexp = regexp.MustCompile(namePat)\n\n// ReferenceRegexp is the full supported format of a reference. The regexp\n// is anchored and has capturing groups for name, tag, and digest\n// components.\nvar ReferenceRegexp = regexp.MustCompile(referencePat)\n\n// TagRegexp matches valid tag names. From [docker/docker:graph/tags.go].\n//\n// [docker/docker:graph/tags.go]: https://github.com/moby/moby/blob/v1.6.0/graph/tags.go#L26-L28\nvar TagRegexp = regexp.MustCompile(tag)\n\nconst (\n\t// alphanumeric defines the alphanumeric atom, typically a\n\t// component of names. This only allows lower case characters and digits.\n\talphanumeric = `[a-z0-9]+`\n\n\t// separator defines the separators allowed to be embedded in name\n\t// components. This allows one period, one or two underscore and multiple\n\t// dashes. Repeated dashes and underscores are intentionally treated\n\t// differently. In order to support valid hostnames as name components,\n\t// supporting repeated dash was added. Additionally double underscore is\n\t// now allowed as a separator to loosen the restriction for previously\n\t// supported names.\n\tseparator = `(?:[._]|__|[-]+)`\n\n\t// localhost is treated as a special value for domain-name. Any other\n\t// domain-name without a \".\" or a \":port\" are considered a path component.\n\tlocalhost = `localhost`\n\n\t// domainNameComponent restricts the registry domain component of a\n\t// repository name to start with a component as defined by DomainRegexp.\n\tdomainNameComponent = `(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])`\n\n\t// optionalPort matches an optional port-number including the port separator\n\t// (e.g. \":80\").\n\toptionalPort = `(?::[0-9]+)?`\n\n\t// tag matches valid tag names. From docker/docker:graph/tags.go.\n\ttag = `[\\w][\\w.-]{0,127}`\n\n\t// digestPat matches well-formed digests, including algorithm (e.g. \"sha256:<encoded>\").\n\t//\n\t// TODO(thaJeztah): this should follow the same rules as https://pkg.go.dev/github.com/opencontainers/go-digest@v1.0.0#DigestRegexp\n\t// so that go-digest defines the canonical format. Note that the go-digest is\n\t// more relaxed:\n\t//   - it allows multiple algorithms (e.g. \"sha256+b64:<encoded>\") to allow\n\t//     future expansion of supported algorithms.\n\t//   - it allows the \"<encoded>\" value to use urlsafe base64 encoding as defined\n\t//     in [rfc4648, section 5].\n\t//\n\t// [rfc4648, section 5]: https://www.rfc-editor.org/rfc/rfc4648#section-5.\n\tdigestPat = `[A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]{32,}`\n\n\t// identifier is the format for a content addressable identifier using sha256.\n\t// These identifiers are like digests without the algorithm, since sha256 is used.\n\tidentifier = `([a-f0-9]{64})`\n\n\t// ipv6address are enclosed between square brackets and may be represented\n\t// in many ways, see rfc5952. Only IPv6 in compressed or uncompressed format\n\t// are allowed, IPv6 zone identifiers (rfc6874) or Special addresses such as\n\t// IPv4-Mapped are deliberately excluded.\n\tipv6address = `\\[(?:[a-fA-F0-9:]+)\\]`\n)\n\nvar (\n\t// domainName defines the structure of potential domain components\n\t// that may be part of image names. This is purposely a subset of what is\n\t// allowed by DNS to ensure backwards compatibility with Docker image\n\t// names. This includes IPv4 addresses on decimal format.\n\tdomainName = domainNameComponent + anyTimes(`\\.`+domainNameComponent)\n\n\t// host defines the structure of potential domains based on the URI\n\t// Host subcomponent on rfc3986. It may be a subset of DNS domain name,\n\t// or an IPv4 address in decimal format, or an IPv6 address between square\n\t// brackets (excluding zone identifiers as defined by rfc6874 or special\n\t// addresses such as IPv4-Mapped).\n\thost = `(?:` + domainName + `|` + ipv6address + `)`\n\n\t// allowed by the URI Host subcomponent on rfc3986 to ensure backwards\n\t// compatibility with Docker image names.\n\tdomainAndPort = host + optionalPort\n\n\t// anchoredTagRegexp matches valid tag names, anchored at the start and\n\t// end of the matched string.\n\tanchoredTagRegexp = regexp.MustCompile(anchored(tag))\n\n\t// anchoredDigestRegexp matches valid digests, anchored at the start and\n\t// end of the matched string.\n\tanchoredDigestRegexp = regexp.MustCompile(anchored(digestPat))\n\n\t// pathComponent restricts path-components to start with an alphanumeric\n\t// character, with following parts able to be separated by a separator\n\t// (one period, one or two underscore and multiple dashes).\n\tpathComponent = alphanumeric + anyTimes(separator+alphanumeric)\n\n\t// remoteName matches the remote-name of a repository. It consists of one\n\t// or more forward slash (/) delimited path-components:\n\t//\n\t//\tpathComponent[[/pathComponent] ...] // e.g., \"library/ubuntu\"\n\tremoteName = pathComponent + anyTimes(`/`+pathComponent)\n\tnamePat    = optional(domainAndPort+`/`) + remoteName\n\n\t// anchoredNameRegexp is used to parse a name value, capturing the\n\t// domain and trailing components.\n\tanchoredNameRegexp = regexp.MustCompile(anchored(optional(capture(domainAndPort), `/`), capture(remoteName)))\n\n\treferencePat = anchored(capture(namePat), optional(`:`, capture(tag)), optional(`@`, capture(digestPat)))\n\n\t// anchoredIdentifierRegexp is used to check or match an\n\t// identifier value, anchored at start and end of string.\n\tanchoredIdentifierRegexp = regexp.MustCompile(anchored(identifier))\n)\n\n// optional wraps the expression in a non-capturing group and makes the\n// production optional.\nfunc optional(res ...string) string {\n\treturn `(?:` + strings.Join(res, \"\") + `)?`\n}\n\n// anyTimes wraps the expression in a non-capturing group that can occur\n// any number of times.\nfunc anyTimes(res ...string) string {\n\treturn `(?:` + strings.Join(res, \"\") + `)*`\n}\n\n// capture wraps the expression in a capturing group.\nfunc capture(res ...string) string {\n\treturn `(` + strings.Join(res, \"\") + `)`\n}\n\n// anchored anchors the regular expression by adding start and end delimiters.\nfunc anchored(res ...string) string {\n\treturn `^` + strings.Join(res, \"\") + `$`\n}\n"
  },
  {
    "path": "vendor/github.com/distribution/reference/sort.go",
    "content": "/*\n   Copyright The containerd Authors.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\npackage reference\n\nimport (\n\t\"sort\"\n)\n\n// Sort sorts string references preferring higher information references.\n//\n// The precedence is as follows:\n//\n//  1. [Named] + [Tagged] + [Digested] (e.g., \"docker.io/library/busybox:latest@sha256:<digest>\")\n//  2. [Named] + [Tagged]              (e.g., \"docker.io/library/busybox:latest\")\n//  3. [Named] + [Digested]            (e.g., \"docker.io/library/busybo@sha256:<digest>\")\n//  4. [Named]                         (e.g., \"docker.io/library/busybox\")\n//  5. [Digested]                      (e.g., \"docker.io@sha256:<digest>\")\n//  6. Parse error\nfunc Sort(references []string) []string {\n\tvar prefs []Reference\n\tvar bad []string\n\n\tfor _, ref := range references {\n\t\tpref, err := ParseAnyReference(ref)\n\t\tif err != nil {\n\t\t\tbad = append(bad, ref)\n\t\t} else {\n\t\t\tprefs = append(prefs, pref)\n\t\t}\n\t}\n\tsort.Slice(prefs, func(a, b int) bool {\n\t\tar := refRank(prefs[a])\n\t\tbr := refRank(prefs[b])\n\t\tif ar == br {\n\t\t\treturn prefs[a].String() < prefs[b].String()\n\t\t}\n\t\treturn ar < br\n\t})\n\tsort.Strings(bad)\n\tvar refs []string\n\tfor _, pref := range prefs {\n\t\trefs = append(refs, pref.String())\n\t}\n\treturn append(refs, bad...)\n}\n\nfunc refRank(ref Reference) uint8 {\n\tif _, ok := ref.(Named); ok {\n\t\tif _, ok = ref.(Tagged); ok {\n\t\t\tif _, ok = ref.(Digested); ok {\n\t\t\t\treturn 1\n\t\t\t}\n\t\t\treturn 2\n\t\t}\n\t\tif _, ok = ref.(Digested); ok {\n\t\t\treturn 3\n\t\t}\n\t\treturn 4\n\t}\n\treturn 5\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/AUTHORS",
    "content": "# File @generated by scripts/docs/generate-authors.sh. DO NOT EDIT.\n# This file lists all contributors to the repository.\n# See scripts/docs/generate-authors.sh to make modifications.\n\nA. Lester Buck III <github-reg@nbolt.com>\nAanand Prasad <aanand.prasad@gmail.com>\nAaron L. Xu <liker.xu@foxmail.com>\nAaron Lehmann <alehmann@netflix.com>\nAaron.L.Xu <likexu@harmonycloud.cn>\nAbdur Rehman <abdur_rehman@mentor.com>\nAbhinandan Prativadi <abhi@docker.com>\nAbin Shahab <ashahab@altiscale.com>\nAbreto FU <public@abreto.email>\nAce Tang <aceapril@126.com>\nAddam Hardy <addam.hardy@gmail.com>\nAdolfo Ochagavía <aochagavia92@gmail.com>\nAdrian Plata <adrian.plata@docker.com>\nAdrien Duermael <adrien@duermael.com>\nAdrien Folie <folie.adrien@gmail.com>\nAdyanth Hosavalike <ahosavalike@ucsd.edu>\nAhmet Alp Balkan <ahmetb@microsoft.com>\nAidan Feldman <aidan.feldman@gmail.com>\nAidan Hobson Sayers <aidanhs@cantab.net>\nAJ Bowen <aj@soulshake.net>\nAkhil Mohan <akhil.mohan@mayadata.io>\nAkihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>\nAkim Demaille <akim.demaille@docker.com>\nAlan Thompson <cloojure@gmail.com>\nAlano Terblanche <alano.terblanche@docker.com>\nAlbert Callarisa <shark234@gmail.com>\nAlberto Roura <mail@albertoroura.com>\nAlbin Kerouanton <albinker@gmail.com>\nAleksa Sarai <asarai@suse.de>\nAleksander Piotrowski <apiotrowski312@gmail.com>\nAlessandro Boch <aboch@tetrationanalytics.com>\nAlex Couture-Beil <alex@earthly.dev>\nAlex Mavrogiannis <alex.mavrogiannis@docker.com>\nAlex Mayer <amayer5125@gmail.com>\nAlexander Boyd <alex@opengroove.org>\nAlexander Chneerov <achneerov@gmail.com>\nAlexander Larsson <alexl@redhat.com>\nAlexander Morozov <lk4d4math@gmail.com>\nAlexander Ryabov <i@sepa.spb.ru>\nAlexandre González <agonzalezro@gmail.com>\nAlexey Igrychev <alexey.igrychev@flant.com>\nAlexis Couvreur <alexiscouvreur.pro@gmail.com>\nAlfred Landrum <alfred.landrum@docker.com>\nAli Rostami <rostami.ali@gmail.com>\nAlicia Lauerman <alicia@eta.im>\nAllen Sun <allensun.shl@alibaba-inc.com>\nAlvin Deng <alvin.q.deng@utexas.edu>\nAmen Belayneh <amenbelayneh@gmail.com>\nAmey Shrivastava <72866602+AmeyShrivastava@users.noreply.github.com>\nAmir Goldstein <amir73il@aquasec.com>\nAmit Krishnan <amit.krishnan@oracle.com>\nAmit Shukla <amit.shukla@docker.com>\nAmy Lindburg <amy.lindburg@docker.com>\nAnca Iordache <anca.iordache@docker.com>\nAnda Xu <anda.xu@docker.com>\nAndrea Luzzardi <aluzzardi@gmail.com>\nAndreas Köhler <andi5.py@gmx.net>\nAndres G. Aragoneses <knocte@gmail.com>\nAndres Leon Rangel <aleon1220@gmail.com>\nAndrew France <andrew@avito.co.uk>\nAndrew Hsu <andrewhsu@docker.com>\nAndrew Macpherson <hopscotch23@gmail.com>\nAndrew McDonnell <bugs@andrewmcdonnell.net>\nAndrew Po <absourd.noise@gmail.com>\nAndrew-Zipperer <atzipperer@gmail.com>\nAndrey Petrov <andrey.petrov@shazow.net>\nAndrii Berehuliak <berkusandrew@gmail.com>\nAndré Martins <aanm90@gmail.com>\nAndy Goldstein <agoldste@redhat.com>\nAndy Rothfusz <github@developersupport.net>\nAnil Madhavapeddy <anil@recoil.org>\nAnkush Agarwal <ankushagarwal11@gmail.com>\nAnne Henmi <anne.henmi@docker.com>\nAnton Polonskiy <anton.polonskiy@gmail.com>\nAntonio Murdaca <antonio.murdaca@gmail.com>\nAntonis Kalipetis <akalipetis@gmail.com>\nAnusha Ragunathan <anusha.ragunathan@docker.com>\nAo Li <la9249@163.com>\nArash Deshmeh <adeshmeh@ca.ibm.com>\nArko Dasgupta <arko@tetrate.io>\nArnaud Porterie <icecrime@gmail.com>\nArnaud Rebillout <elboulangero@gmail.com>\nArthur Peka <arthur.peka@outlook.com>\nAshly Mathew <ashly.mathew@sap.com>\nAshwini Oruganti <ashwini.oruganti@gmail.com>\nAslam Ahemad <aslamahemad@gmail.com>\nAzat Khuyiyakhmetov <shadow_uz@mail.ru>\nBardia Keyoumarsi <bkeyouma@ucsc.edu>\nBarnaby Gray <barnaby@pickle.me.uk>\nBastiaan Bakker <bbakker@xebia.com>\nBastianHofmann <bastianhofmann@me.com>\nBen Bodenmiller <bbodenmiller@gmail.com>\nBen Bonnefoy <frenchben@docker.com>\nBen Creasy <ben@bencreasy.com>\nBen Firshman <ben@firshman.co.uk>\nBenjamin Boudreau <boudreau.benjamin@gmail.com>\nBenjamin Böhmke <benjamin@boehmke.net>\nBenjamin Nater <me@bn4t.me>\nBenoit Sigoure <tsunanet@gmail.com>\nBhumika Bayani <bhumikabayani@gmail.com>\nBill Wang <ozbillwang@gmail.com>\nBin Liu <liubin0329@gmail.com>\nBingshen Wang <bingshen.wbs@alibaba-inc.com>\nBishal Das <bishalhnj127@gmail.com>\nBjorn Neergaard <bjorn.neergaard@docker.com>\nBoaz Shuster <ripcurld.github@gmail.com>\nBoban Acimovic <boban.acimovic@gmail.com>\nBogdan Anton <contact@bogdananton.ro>\nBoris Pruessmann <boris@pruessmann.org>\nBrad Baker <brad@brad.fi>\nBradley Cicenas <bradley.cicenas@gmail.com>\nBrandon Mitchell <git@bmitch.net>\nBrandon Philips <brandon.philips@coreos.com>\nBrent Salisbury <brent.salisbury@docker.com>\nBret Fisher <bret@bretfisher.com>\nBrian (bex) Exelbierd <bexelbie@redhat.com>\nBrian Goff <cpuguy83@gmail.com>\nBrian Tracy <brian.tracy33@gmail.com>\nBrian Wieder <brian@4wieders.com>\nBruno Sousa <bruno.sousa@docker.com>\nBryan Bess <squarejaw@bsbess.com>\nBryan Boreham <bjboreham@gmail.com>\nBryan Murphy <bmurphy1976@gmail.com>\nbryfry <bryon.fryer@gmail.com>\nCalvin Liu <flycalvin@qq.com>\nCameron Spear <cameronspear@gmail.com>\nCao Weiwei <cao.weiwei30@zte.com.cn>\nCarlo Mion <mion00@gmail.com>\nCarlos Alexandro Becker <caarlos0@gmail.com>\nCarlos de Paula <me@carlosedp.com>\nCasey Korver <casey@korver.dev>\nCe Gao <ce.gao@outlook.com>\nCedric Davies <cedricda@microsoft.com>\nCezar Sa Espinola <cezarsa@gmail.com>\nChad Faragher <wyckster@hotmail.com>\nChao Wang <wangchao.fnst@cn.fujitsu.com>\nCharles Chan <charleswhchan@users.noreply.github.com>\nCharles Law <claw@conduce.com>\nCharles Smith <charles.smith@docker.com>\nCharlie Drage <charlie@charliedrage.com>\nCharlotte Mach <charlotte.mach@fs.lmu.de>\nChaYoung You <yousbe@gmail.com>\nChee Hau Lim <cheehau.lim@mobimeo.com>\nChen Chuanliang <chen.chuanliang@zte.com.cn>\nChen Hanxiao <chenhanxiao@cn.fujitsu.com>\nChen Mingjie <chenmingjie0828@163.com>\nChen Qiu <cheney-90@hotmail.com>\nChris Chinchilla <chris@chrischinchilla.com>\nChris Couzens <ccouzens@gmail.com>\nChris Gavin <chris@chrisgavin.me>\nChris Gibson <chris@chrisg.io>\nChris McKinnel <chrismckinnel@gmail.com>\nChris Snow <chsnow123@gmail.com>\nChris Vermilion <christopher.vermilion@gmail.com>\nChris Weyl <cweyl@alumni.drew.edu>\nChristian Persson <saser@live.se>\nChristian Stefanescu <st.chris@gmail.com>\nChristophe Robin <crobin@nekoo.com>\nChristophe Vidal <kriss@krizalys.com>\nChristopher Biscardi <biscarch@sketcht.com>\nChristopher Crone <christopher.crone@docker.com>\nChristopher Jones <tophj@linux.vnet.ibm.com>\nChristopher Petito <47751006+krissetto@users.noreply.github.com>\nChristopher Petito <chrisjpetito@gmail.com>\nChristopher Svensson <stoffus@stoffus.com>\nChristy Norman <christy@linux.vnet.ibm.com>\nChun Chen <ramichen@tencent.com>\nClinton Kitson <clintonskitson@gmail.com>\nCoenraad Loubser <coenraad@wish.org.za>\nColin Hebert <hebert.colin@gmail.com>\nCollin Guarino <collin.guarino@gmail.com>\nColm Hally <colmhally@gmail.com>\nComical Derskeal <27731088+derskeal@users.noreply.github.com>\nConner Crosby <conner@cavcrosby.tech>\nCorey Farrell <git@cfware.com>\nCorey Quon <corey.quon@docker.com>\nCory Bennet <cbennett@netflix.com>\nCory Snider <csnider@mirantis.com>\nCraig Osterhout <craig.osterhout@docker.com>\nCraig Wilhite <crwilhit@microsoft.com>\nCristian Staretu <cristian.staretu@gmail.com>\nDaehyeok Mun <daehyeok@gmail.com>\nDafydd Crosby <dtcrsby@gmail.com>\nDaisuke Ito <itodaisuke00@gmail.com>\ndalanlan <dalanlan925@gmail.com>\nDamien Nadé <github@livna.org>\nDan Cotora <dan@bluevision.ro>\nDanial Gharib <danial.mail.gh@gmail.com>\nDaniel Artine <daniel.artine@ufrj.br>\nDaniel Cassidy <mail@danielcassidy.me.uk>\nDaniel Dao <dqminh@cloudflare.com>\nDaniel Farrell <dfarrell@redhat.com>\nDaniel Gasienica <daniel@gasienica.ch>\nDaniel Goosen <daniel.goosen@surveysampling.com>\nDaniel Helfand <dhelfand@redhat.com>\nDaniel Hiltgen <daniel.hiltgen@docker.com>\nDaniel J Walsh <dwalsh@redhat.com>\nDaniel Nephin <dnephin@docker.com>\nDaniel Norberg <dano@spotify.com>\nDaniel Watkins <daniel@daniel-watkins.co.uk>\nDaniel Zhang <jmzwcn@gmail.com>\nDaniil Nikolenko <qoo2p5@gmail.com>\nDanny Berger <dpb587@gmail.com>\nDarren Shepherd <darren.s.shepherd@gmail.com>\nDarren Stahl <darst@microsoft.com>\nDattatraya Kumbhar <dattatraya.kumbhar@gslab.com>\nDave Goodchild <buddhamagnet@gmail.com>\nDave Henderson <dhenderson@gmail.com>\nDave Tucker <dt@docker.com>\nDavid Alvarez <david.alvarez@flyeralarm.com>\nDavid Beitey <david@davidjb.com>\nDavid Calavera <david.calavera@gmail.com>\nDavid Cramer <davcrame@cisco.com>\nDavid Dooling <dooling@gmail.com>\nDavid Gageot <david@gageot.net>\nDavid Karlsson <david.karlsson@docker.com>\nDavid le Blanc <systemmonkey42@users.noreply.github.com>\nDavid Lechner <david@lechnology.com>\nDavid Scott <dave@recoil.org>\nDavid Sheets <dsheets@docker.com>\nDavid Williamson <david.williamson@docker.com>\nDavid Xia <dxia@spotify.com>\nDavid Young <yangboh@cn.ibm.com>\nDeng Guangxing <dengguangxing@huawei.com>\nDenis Defreyne <denis@soundcloud.com>\nDenis Gladkikh <denis@gladkikh.email>\nDenis Ollier <larchunix@users.noreply.github.com>\nDennis Docter <dennis@d23.nl>\ndependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nDerek McGowan <derek@mcg.dev>\nDes Preston <despreston@gmail.com>\nDeshi Xiao <dxiao@redhat.com>\nDharmit Shah <shahdharmit@gmail.com>\nDhawal Yogesh Bhanushali <dbhanushali@vmware.com>\nDieter Reuter <dieter.reuter@me.com>\nDima Stopel <dima@twistlock.com>\nDimitry Andric <d.andric@activevideo.com>\nDing Fei <dingfei@stars.org.cn>\nDiogo Monica <diogo@docker.com>\nDjordje Lukic <djordje.lukic@docker.com>\nDmitriy Fishman <fishman.code@gmail.com>\nDmitry Gusev <dmitry.gusev@gmail.com>\nDmitry Smirnov <onlyjob@member.fsf.org>\nDmitry V. Krivenok <krivenok.dmitry@gmail.com>\nDominik Braun <dominik.braun@nbsp.de>\nDon Kjer <don.kjer@gmail.com>\nDong Chen <dongluo.chen@docker.com>\nDongGeon Lee <secmatth1996@gmail.com>\nDoug Davis <dug@us.ibm.com>\nDrew Erny <derny@mirantis.com>\nEd Costello <epc@epcostello.com>\nEd Morley <501702+edmorley@users.noreply.github.com>\nElango Sivanandam <elango.siva@docker.com>\nEli Uriegas <eli.uriegas@docker.com>\nEli Uriegas <seemethere101@gmail.com>\nElias Faxö <elias.faxo@tre.se>\nElliot Luo <956941328@qq.com>\nEric Bode <eric.bode@foundries.io>\nEric Curtin <ericcurtin17@gmail.com>\nEric Engestrom <eric@engestrom.ch>\nEric G. Noriega <enoriega@vizuri.com>\nEric Rosenberg <ehaydenr@gmail.com>\nEric Sage <eric.david.sage@gmail.com>\nEric-Olivier Lamey <eo@lamey.me>\nErica Windisch <erica@windisch.us>\nErik Hollensbe <github@hollensbe.org>\nErik Humphrey <erik.humphrey@carleton.ca>\nErik St. Martin <alakriti@gmail.com>\nEssam A. Hassan <es.hassan187@gmail.com>\nEthan Haynes <ethanhaynes@alumni.harvard.edu>\nEuan Kemp <euank@euank.com>\nEugene Yakubovich <eugene.yakubovich@coreos.com>\nEvan Allrich <evan@unguku.com>\nEvan Hazlett <ejhazlett@gmail.com>\nEvan Krall <krall@yelp.com>\nEvan Lezar <elezar@nvidia.com>\nEvelyn Xu <evelynhsu21@gmail.com>\nEverett Toews <everett.toews@rackspace.com>\nFabio Falci <fabiofalci@gmail.com>\nFabrizio Soppelsa <fsoppelsa@mirantis.com>\nFelix Geyer <debfx@fobos.de>\nFelix Hupfeld <felix@quobyte.com>\nFelix Rabe <felix@rabe.io>\nfezzik1620 <fezzik1620@users.noreply.github.com>\nFilip Jareš <filipjares@gmail.com>\nFlavio Crisciani <flavio.crisciani@docker.com>\nFlorian Klein <florian.klein@free.fr>\nForest Johnson <fjohnson@peoplenetonline.com>\nFoysal Iqbal <foysal.iqbal.fb@gmail.com>\nFrançois Scala <francois.scala@swiss-as.com>\nFred Lifton <fred.lifton@docker.com>\nFrederic Hemberger <mail@frederic-hemberger.de>\nFrederick F. Kautz IV <fkautz@redhat.com>\nFrederik Nordahl Jul Sabroe <frederikns@gmail.com>\nFrieder Bluemle <frieder.bluemle@gmail.com>\nGabriel Gore <gabgore@cisco.com>\nGabriel Nicolas Avellaneda <avellaneda.gabriel@gmail.com>\nGabriela Georgieva <gabriela.georgieva@docker.com>\nGaetan de Villele <gdevillele@gmail.com>\nGang Qiao <qiaohai8866@gmail.com>\nGary Schaetz <gary@schaetzkc.com>\nGenki Takiuchi <genki@s21g.com>\nGeorge MacRorie <gmacr31@gmail.com>\nGeorge Margaritis <gmargaritis@protonmail.com>\nGeorge Xie <georgexsh@gmail.com>\nGianluca Borello <g.borello@gmail.com>\nGildas Cuisinier <gildas.cuisinier@gcuisinier.net>\nGio d'Amelio <giodamelio@gmail.com>\nGleb Stsenov <gleb.stsenov@gmail.com>\nGoksu Toprak <goksu.toprak@docker.com>\nGou Rao <gou@portworx.com>\nGovind Rai <raigovind93@gmail.com>\nGrace Choi <grace.54109@gmail.com>\nGraeme Wiebe <graeme.wiebe@gmail.com>\nGrant Reaber <grant.reaber@gmail.com>\nGreg Pflaum <gpflaum@users.noreply.github.com>\nGsealy <jiaojingwei1001@hotmail.com>\nGuilhem Lettron <guilhem+github@lettron.fr>\nGuillaume J. Charmes <guillaume.charmes@docker.com>\nGuillaume Le Floch <glfloch@gmail.com>\nGuillaume Tardif <guillaume.tardif@gmail.com>\ngwx296173 <gaojing3@huawei.com>\nGünther Jungbluth <gunther@gameslabs.net>\nHakan Özler <hakan.ozler@kodcu.com>\nHao Zhang <21521210@zju.edu.cn>\nHarald Albers <github@albersweb.de>\nHarold Cooper <hrldcpr@gmail.com>\nHarry Zhang <harryz@hyper.sh>\nHe Simei <hesimei@zju.edu.cn>\nHector S <hfsam88@gmail.com>\nHelen Xie <chenjg@harmonycloud.cn>\nHenning Sprang <henning.sprang@gmail.com>\nHenry N <henrynmail-github@yahoo.de>\nHernan Garcia <hernandanielg@gmail.com>\nHongbin Lu <hongbin034@gmail.com>\nHu Keping <hukeping@huawei.com>\nHuayi Zhang <irachex@gmail.com>\nHugo Chastel <Hugo-C@users.noreply.github.com>\nHugo Gabriel Eyherabide <hugogabriel.eyherabide@gmail.com>\nhuqun <huqun@zju.edu.cn>\nHuu Nguyen <huu@prismskylabs.com>\nHyzhou Zhy <hyzhou.zhy@alibaba-inc.com>\nIain Samuel McLean Elder <iain@isme.es>\nIan Campbell <ian.campbell@docker.com>\nIan Philpot <ian.philpot@microsoft.com>\nIgnacio Capurro <icapurrofagian@gmail.com>\nIlya Dmitrichenko <errordeveloper@gmail.com>\nIlya Khlopotov <ilya.khlopotov@gmail.com>\nIlya Sotkov <ilya@sotkov.com>\nIoan Eugen Stan <eu@ieugen.ro>\nIsabel Jimenez <contact.isabeljimenez@gmail.com>\nIvan Grcic <igrcic@gmail.com>\nIvan Grund <ivan.grund@gmail.com>\nIvan Markin <sw@nogoegst.net>\nJacob Atzen <jacob@jacobatzen.dk>\nJacob Tomlinson <jacob@tom.linson.uk>\nJacopo Rigoli <rigoli.jacopo@gmail.com>\nJaivish Kothari <janonymous.codevulture@gmail.com>\nJake Lambert <jake.lambert@volusion.com>\nJake Sanders <jsand@google.com>\nJake Stokes <contactjake@developerjake.com>\nJakub Panek <me@panekj.dev>\nJames Nesbitt <james.nesbitt@wunderkraut.com>\nJames Turnbull <james@lovedthanlost.net>\nJamie Hannaford <jamie@limetree.org>\nJan Koprowski <jan.koprowski@gmail.com>\nJan Pazdziora <jpazdziora@redhat.com>\nJan-Jaap Driessen <janjaapdriessen@gmail.com>\nJana Radhakrishnan <mrjana@docker.com>\nJared Hocutt <jaredh@netapp.com>\nJasmine Hegman <jasmine@jhegman.com>\nJason Hall <jason@chainguard.dev>\nJason Heiss <jheiss@aput.net>\nJason Plum <jplum@devonit.com>\nJay Kamat <github@jgkamat.33mail.com>\nJean Lecordier <jeanlecordier@hotmail.fr>\nJean Rouge <rougej+github@gmail.com>\nJean-Christophe Sirot <jean-christophe.sirot@docker.com>\nJean-Pierre Huynh <jean-pierre.huynh@ounet.fr>\nJeff Lindsay <progrium@gmail.com>\nJeff Nickoloff <jeff.nickoloff@gmail.com>\nJeff Silberman <jsilberm@gmail.com>\nJennings Zhang <jenni_zh@protonmail.com>\nJeremy Chambers <jeremy@thehipbot.com>\nJeremy Unruh <jeremybunruh@gmail.com>\nJeremy Yallop <yallop@docker.com>\nJeroen Franse <jeroenfranse@gmail.com>\nJesse Adametz <jesseadametz@gmail.com>\nJessica Frazelle <jess@oxide.computer>\nJezeniel Zapanta <jpzapanta22@gmail.com>\nJian Zhang <zhangjian.fnst@cn.fujitsu.com>\nJie Luo <luo612@zju.edu.cn>\nJilles Oldenbeuving <ojilles@gmail.com>\nJim Chen <njucjc@gmail.com>\nJim Galasyn <jim.galasyn@docker.com>\nJim Lin <b04705003@ntu.edu.tw>\nJimmy Leger <jimmy.leger@gmail.com>\nJimmy Song <rootsongjc@gmail.com>\njimmyxian <jimmyxian2004@yahoo.com.cn>\nJintao Zhang <zhangjintao9020@gmail.com>\nJoao Fernandes <joao.fernandes@docker.com>\nJoe Abbey <joe.abbey@gmail.com>\nJoe Doliner <jdoliner@pachyderm.io>\nJoe Gordon <joe.gordon0@gmail.com>\nJoel Handwell <joelhandwell@gmail.com>\nJoey Geiger <jgeiger@gmail.com>\nJoffrey F <joffrey@docker.com>\nJohan Euphrosine <proppy@google.com>\nJohannes 'fish' Ziemke <github@freigeist.org>\nJohn Feminella <jxf@jxf.me>\nJohn Harris <john@johnharris.io>\nJohn Howard <github@lowenna.com>\nJohn Howard <howardjohn@google.com>\nJohn Laswell <john.n.laswell@gmail.com>\nJohn Maguire <jmaguire@duosecurity.com>\nJohn Mulhausen <john@docker.com>\nJohn Starks <jostarks@microsoft.com>\nJohn Stephens <johnstep@docker.com>\nJohn Tims <john.k.tims@gmail.com>\nJohn V. Martinez <jvmatl@gmail.com>\nJohn Willis <john.willis@docker.com>\nJon Johnson <jonjohnson@google.com>\nJon Zeolla <zeolla@gmail.com>\nJonatas Baldin <jonatas.baldin@gmail.com>\nJonathan A. Sternberg <jonathansternberg@gmail.com>\nJonathan Boulle <jonathanboulle@gmail.com>\nJonathan Lee <jonjohn1232009@gmail.com>\nJonathan Lomas <jonathan@floatinglomas.ca>\nJonathan McCrohan <jmccrohan@gmail.com>\nJonathan Warriss-Simmons <misterws@diogenes.ws>\nJonh Wendell <jonh.wendell@redhat.com>\nJordan Jennings <jjn2009@gmail.com>\nJorge Vallecillo <jorgevallecilloc@gmail.com>\nJose J. Escobar <53836904+jescobar-docker@users.noreply.github.com>\nJoseph Kern <jkern@semafour.net>\nJosh Bodah <jb3689@yahoo.com>\nJosh Chorlton <jchorlton@gmail.com>\nJosh Hawn <josh.hawn@docker.com>\nJosh Horwitz <horwitz@addthis.com>\nJosh Soref <jsoref@gmail.com>\nJulian <gitea+julian@ic.thejulian.uk>\nJulien Barbier <write0@gmail.com>\nJulien Kassar <github@kassisol.com>\nJulien Maitrehenry <julien.maitrehenry@me.com>\nJustas Brazauskas <brazauskasjustas@gmail.com>\nJustin Chadwell <me@jedevc.com>\nJustin Cormack <justin.cormack@docker.com>\nJustin Simonelis <justin.p.simonelis@gmail.com>\nJustyn Temme <justyntemme@gmail.com>\nJyrki Puttonen <jyrkiput@gmail.com>\nJérémie Drouet <jeremie.drouet@gmail.com>\nJérôme Petazzoni <jerome.petazzoni@docker.com>\nJörg Thalheim <joerg@higgsboson.tk>\nKai Blin <kai@samba.org>\nKai Qiang Wu (Kennan) <wkq5325@gmail.com>\nKara Alexandra <kalexandra@us.ibm.com>\nKareem Khazem <karkhaz@karkhaz.com>\nKarthik Nayak <Karthik.188@gmail.com>\nKat Samperi <kat.samperi@gmail.com>\nKathryn Spiers <kathryn@spiers.me>\nKatie McLaughlin <katie@glasnt.com>\nKe Xu <leonhartx.k@gmail.com>\nKei Ohmura <ohmura.kei@gmail.com>\nKeith Hudgins <greenman@greenman.org>\nKelton Bassingthwaite <KeltonBassingthwaite@gmail.com>\nKen Cochrane <kencochrane@gmail.com>\nKen ICHIKAWA <ichikawa.ken@jp.fujitsu.com>\nKenfe-Mickaël Laventure <mickael.laventure@gmail.com>\nKevin Alvarez <github@crazymax.dev>\nKevin Burke <kev@inburke.com>\nKevin Feyrer <kevin.feyrer@btinternet.com>\nKevin Kern <kaiwentan@harmonycloud.cn>\nKevin Kirsche <Kev.Kirsche+GitHub@gmail.com>\nKevin Meredith <kevin.m.meredith@gmail.com>\nKevin Richardson <kevin@kevinrichardson.co>\nKevin Woblick <mail@kovah.de>\nkhaled souf <khaled.souf@gmail.com>\nKim Eik <kim@heldig.org>\nKir Kolyshkin <kolyshkin@gmail.com>\nKirill A. Korinsky <kirill@korins.ky>\nKotaro Yoshimatsu <kotaro.yoshimatsu@gmail.com>\nKrasi Georgiev <krasi@vip-consult.solutions>\nKris-Mikael Krister <krismikael@protonmail.com>\nKun Zhang <zkazure@gmail.com>\nKunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>\nKyle Mitofsky <Kylemit@gmail.com>\nLachlan Cooper <lachlancooper@gmail.com>\nLai Jiangshan <jiangshanlai@gmail.com>\nLars Kellogg-Stedman <lars@redhat.com>\nLaura Brehm <laurabrehm@hey.com>\nLaura Frank <ljfrank@gmail.com>\nLaurent Erignoux <lerignoux@gmail.com>\nLee Gaines <eightlimbed@gmail.com>\nLei Jitang <leijitang@huawei.com>\nLennie <github@consolejunkie.net>\nLeo Gallucci <elgalu3@gmail.com>\nLeonid Skorospelov <leosko94@gmail.com>\nLewis Daly <lewisdaly@me.com>\nLi Fu Bang <lifubang@acmcoder.com>\nLi Yi <denverdino@gmail.com>\nLi Yi <weiyuan.yl@alibaba-inc.com>\nLiang-Chi Hsieh <viirya@gmail.com>\nLihua Tang <lhtang@alauda.io>\nLily Guo <lily.guo@docker.com>\nLin Lu <doraalin@163.com>\nLinus Heckemann <lheckemann@twig-world.com>\nLiping Xue <lipingxue@gmail.com>\nLiron Levin <liron@twistlock.com>\nliwenqi <vikilwq@zju.edu.cn>\nlixiaobing10051267 <li.xiaobing1@zte.com.cn>\nLloyd Dewolf <foolswisdom@gmail.com>\nLorenzo Fontana <lo@linux.com>\nLouis Opter <kalessin@kalessin.fr>\nLuca Favatella <luca.favatella@erlang-solutions.com>\nLuca Marturana <lucamarturana@gmail.com>\nLucas Chan <lucas-github@lucaschan.com>\nLuis Henrique Mulinari <luis.mulinari@gmail.com>\nLuka Hartwig <mail@lukahartwig.de>\nLukas Heeren <lukas-heeren@hotmail.com>\nLukasz Zajaczkowski <Lukasz.Zajaczkowski@ts.fujitsu.com>\nLydell Manganti <LydellManganti@users.noreply.github.com>\nLénaïc Huard <lhuard@amadeus.com>\nMa Shimiao <mashimiao.fnst@cn.fujitsu.com>\nMabin <bin.ma@huawei.com>\nMaciej Kalisz <maciej.d.kalisz@gmail.com>\nMadhav Puri <madhav.puri@gmail.com>\nMadhu Venugopal <madhu@socketplane.io>\nMadhur Batra <madhurbatra097@gmail.com>\nMalte Janduda <mail@janduda.net>\nManjunath A Kumatagi <mkumatag@in.ibm.com>\nMansi Nahar <mmn4185@rit.edu>\nmapk0y <mapk0y@gmail.com>\nMarc Bihlmaier <marc.bihlmaier@reddoxx.com>\nMarc Cornellà <hello@mcornella.com>\nMarco Mariani <marco.mariani@alterway.fr>\nMarco Spiess <marco.spiess@hotmail.de>\nMarco Vedovati <mvedovati@suse.com>\nMarcus Martins <marcus@docker.com>\nMarianna Tessel <mtesselh@gmail.com>\nMarius Ileana <marius.ileana@gmail.com>\nMarius Meschter <marius@meschter.me>\nMarius Sturm <marius@graylog.com>\nMark Oates <fl0yd@me.com>\nMarsh Macy <marsma@microsoft.com>\nMartin Mosegaard Amdisen <martin.amdisen@praqma.com>\nMary Anthony <mary.anthony@docker.com>\nMason Fish <mason.fish@docker.com>\nMason Malone <mason.malone@gmail.com>\nMateusz Major <apkd@users.noreply.github.com>\nMathias Duedahl <64321057+Lussebullen@users.noreply.github.com>\nMathieu Champlon <mathieu.champlon@docker.com>\nMathieu Rollet <matletix@gmail.com>\nMatt Gucci <matt9ucci@gmail.com>\nMatt Robenolt <matt@ydekproductions.com>\nMatteo Orefice <matteo.orefice@bites4bits.software>\nMatthew Heon <mheon@redhat.com>\nMatthieu Hauglustaine <matt.hauglustaine@gmail.com>\nMauro Porras P <mauroporrasp@gmail.com>\nMax Shytikov <mshytikov@gmail.com>\nMax-Julian Pogner <max-julian@pogner.at>\nMaxime Petazzoni <max@signalfuse.com>\nMaximillian Fan Xavier <maximillianfx@gmail.com>\nMei ChunTao <mei.chuntao@zte.com.cn>\nMelroy van den Berg <melroy@melroy.org>\nMetal <2466052+tedhexaflow@users.noreply.github.com>\nMicah Zoltu <micah@newrelic.com>\nMichael A. Smith <michael@smith-li.com>\nMichael Bridgen <mikeb@squaremobius.net>\nMichael Crosby <crosbymichael@gmail.com>\nMichael Friis <friism@gmail.com>\nMichael Irwin <mikesir87@gmail.com>\nMichael Käufl <docker@c.michael-kaeufl.de>\nMichael Prokop <github@michael-prokop.at>\nMichael Scharf <github@scharf.gr>\nMichael Spetsiotis <michael_spets@hotmail.com>\nMichael Steinert <mike.steinert@gmail.com>\nMichael West <mwest@mdsol.com>\nMichal Minář <miminar@redhat.com>\nMichał Czeraszkiewicz <czerasz@gmail.com>\nMiguel Angel Alvarez Cabrerizo <doncicuto@gmail.com>\nMihai Borobocea <MihaiBorob@gmail.com>\nMihuleacc Sergiu <mihuleac.sergiu@gmail.com>\nMike Brown <brownwm@us.ibm.com>\nMike Casas <mkcsas0@gmail.com>\nMike Dalton <mikedalton@github.com>\nMike Danese <mikedanese@google.com>\nMike Dillon <mike@embody.org>\nMike Goelzer <mike.goelzer@docker.com>\nMike MacCana <mike.maccana@gmail.com>\nmikelinjie <294893458@qq.com>\nMikhail Vasin <vasin@cloud-tv.ru>\nMilind Chawre <milindchawre@gmail.com>\nMindaugas Rukas <momomg@gmail.com>\nMiroslav Gula <miroslav.gula@naytrolabs.com>\nMisty Stanley-Jones <misty@docker.com>\nMohammad Banikazemi <mb@us.ibm.com>\nMohammed Aaqib Ansari <maaquib@gmail.com>\nMohini Anne Dsouza <mohini3917@gmail.com>\nMoorthy RS <rsmoorthy@gmail.com>\nMorgan Bauer <mbauer@us.ibm.com>\nMorten Hekkvang <morten.hekkvang@sbab.se>\nMorten Linderud <morten@linderud.pw>\nMoysés Borges <moysesb@gmail.com>\nMozi <29089388+pzhlkj6612@users.noreply.github.com>\nMrunal Patel <mrunalp@gmail.com>\nmuicoder <muicoder@gmail.com>\nMurukesh Mohanan <murukesh.mohanan@gmail.com>\nMuthukumar R <muthur@gmail.com>\nMáximo Cuadros <mcuadros@gmail.com>\nMårten Cassel <marten.cassel@gmail.com>\nNace Oroz <orkica@gmail.com>\nNahum Shalman <nshalman@omniti.com>\nNalin Dahyabhai <nalin@redhat.com>\nNao YONASHIRO <owan.orisano@gmail.com>\nNassim 'Nass' Eddequiouaq <eddequiouaq.nassim@gmail.com>\nNatalie Parker <nparker@omnifone.com>\nNate Brennand <nate.brennand@clever.com>\nNathan Hsieh <hsieh.nathan@gmail.com>\nNathan LeClaire <nathan.leclaire@docker.com>\nNathan McCauley <nathan.mccauley@docker.com>\nNeil Peterson <neilpeterson@outlook.com>\nNick Adcock <nick.adcock@docker.com>\nNick Santos <nick.santos@docker.com>\nNick Sieger <nick@nicksieger.com>\nNico Stapelbroek <nstapelbroek@gmail.com>\nNicola Kabar <nicolaka@gmail.com>\nNicolas Borboën <ponsfrilus@gmail.com>\nNicolas De Loof <nicolas.deloof@gmail.com>\nNikhil Chawla <chawlanikhil24@gmail.com>\nNikolas Garofil <nikolas.garofil@uantwerpen.be>\nNikolay Milovanov <nmil@itransformers.net>\nNir Soffer <nsoffer@redhat.com>\nNishant Totla <nishanttotla@gmail.com>\nNIWA Hideyuki <niwa.niwa@nifty.ne.jp>\nNoah Treuhaft <noah.treuhaft@docker.com>\nO.S. Tezer <ostezer@gmail.com>\nOded Arbel <oded@geek.co.il>\nOdin Ugedal <odin@ugedal.com>\nohmystack <jun.jiang02@ele.me>\nOKA Naoya <git@okanaoya.com>\nOliver Pomeroy <oppomeroy@gmail.com>\nOlle Jonsson <olle.jonsson@gmail.com>\nOlli Janatuinen <olli.janatuinen@gmail.com>\nOscar Wieman <oscrx@icloud.com>\nOtto Kekäläinen <otto@seravo.fi>\nOvidio Mallo <ovidio.mallo@gmail.com>\nPascal Borreli <pascal@borreli.com>\nPatrick Böänziger <patrick.baenziger@bsi-software.com>\nPatrick Daigle <114765035+pdaig@users.noreply.github.com>\nPatrick Hemmer <patrick.hemmer@gmail.com>\nPatrick Lang <plang@microsoft.com>\nPaul <paul9869@gmail.com>\nPaul Kehrer <paul.l.kehrer@gmail.com>\nPaul Lietar <paul@lietar.net>\nPaul Mulders <justinkb@gmail.com>\nPaul Seyfert <pseyfert.mathphys@gmail.com>\nPaul Weaver <pauweave@cisco.com>\nPavel Pospisil <pospispa@gmail.com>\nPaweł Gronowski <pawel.gronowski@docker.com>\nPaweł Pokrywka <pepawel@users.noreply.github.com>\nPaweł Szczekutowicz <pszczekutowicz@gmail.com>\nPeeyush Gupta <gpeeyush@linux.vnet.ibm.com>\nPer Lundberg <perlun@gmail.com>\nPeter Dave Hello <hsu@peterdavehello.org>\nPeter Edge <peter.edge@gmail.com>\nPeter Hsu <shhsu@microsoft.com>\nPeter Jaffe <pjaffe@nevo.com>\nPeter Kehl <peter.kehl@gmail.com>\nPeter Nagy <xificurC@gmail.com>\nPeter Salvatore <peter@psftw.com>\nPeter Waller <p@pwaller.net>\nPhil Estes <estesp@gmail.com>\nPhilip Alexander Etling <paetling@gmail.com>\nPhilipp Gillé <philipp.gille@gmail.com>\nPhilipp Schmied <pschmied@schutzwerk.com>\nPhong Tran <tran.pho@northeastern.edu>\npidster <pid@pidster.com>\nPieter E Smit <diepes@github.com>\npixelistik <pixelistik@users.noreply.github.com>\nPratik Karki <prertik@outlook.com>\nPrayag Verma <prayag.verma@gmail.com>\nPreston Cowley <preston.cowley@sony.com>\nPure White <daniel48@126.com>\nQiang Huang <h.huangqiang@huawei.com>\nQinglan Peng <qinglanpeng@zju.edu.cn>\nQQ喵 <gqqnb2005@gmail.com>\nqudongfang <qudongfang@gmail.com>\nRaghavendra K T <raghavendra.kt@linux.vnet.ibm.com>\nRahul Kadyan <hi@znck.me>\nRahul Zoldyck <rahulzoldyck@gmail.com>\nRavi Shekhar Jethani <rsjethani@gmail.com>\nRay Tsang <rayt@google.com>\nReficul <xuzhenglun@gmail.com>\nRemy Suen <remy.suen@gmail.com>\nRenaud Gaubert <rgaubert@nvidia.com>\nRicardo N Feliciano <FelicianoTech@gmail.com>\nRich Moyse <rich@moyse.us>\nRichard Chen Zheng <58443436+rchenzheng@users.noreply.github.com>\nRichard Mathie <richard.mathie@amey.co.uk>\nRichard Scothern <richard.scothern@gmail.com>\nRick Wieman <git@rickw.nl>\nRitesh H Shukla <sritesh@vmware.com>\nRiyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>\nRob Gulewich <rgulewich@netflix.com>\nRob Murray <rob.murray@docker.com>\nRobert Wallis <smilingrob@gmail.com>\nRobin Naundorf <r.naundorf@fh-muenster.de>\nRobin Speekenbrink <robin@kingsquare.nl>\nRoch Feuillade <roch.feuillade@pandobac.com>\nRodolfo Ortiz <rodolfo.ortiz@definityfirst.com>\nRogelio Canedo <rcanedo@mappy.priv>\nRohan Verma <hello@rohanverma.net>\nRoland Kammerer <roland.kammerer@linbit.com>\nRoman Dudin <katrmr@gmail.com>\nRory Hunter <roryhunter2@gmail.com>\nRoss Boucher <rboucher@gmail.com>\nRubens Figueiredo <r.figueiredo.52@gmail.com>\nRui Cao <ruicao@alauda.io>\nRui JingAn <quiterace@gmail.com>\nRyan Belgrave <rmb1993@gmail.com>\nRyan Detzel <ryan.detzel@gmail.com>\nRyan Stelly <ryan.stelly@live.com>\nRyan Wilson-Perkin <ryanwilsonperkin@gmail.com>\nRyan Zhang <ryan.zhang@docker.com>\nSainath Grandhi <sainath.grandhi@intel.com>\nSakeven Jiang <jc5930@sina.cn>\nSally O'Malley <somalley@redhat.com>\nSam Neirinck <sam@samneirinck.com>\nSam Thibault <sam.thibault@docker.com>\nSamarth Shah <samashah@microsoft.com>\nSambuddha Basu <sambuddhabasu1@gmail.com>\nSami Tabet <salph.tabet@gmail.com>\nSamuel Cochran <sj26@sj26.com>\nSamuel Karp <skarp@amazon.com>\nSandro Jäckel <sandro.jaeckel@gmail.com>\nSanthosh Manohar <santhosh@docker.com>\nSargun Dhillon <sargun@netflix.com>\nSaswat Bhattacharya <sas.saswat@gmail.com>\nSaurabh Kumar <saurabhkumar0184@gmail.com>\nScott Brenner <scott@scottbrenner.me>\nScott Collier <emailscottcollier@gmail.com>\nSean Christopherson <sean.j.christopherson@intel.com>\nSean Rodman <srodman7689@gmail.com>\nSebastiaan van Stijn <github@gone.nl>\nSergey Tryuber <Sergeant007@users.noreply.github.com>\nSerhat Gülçiçek <serhat25@gmail.com>\nSevki Hasirci <s@sevki.org>\nShaun Kaasten <shaunk@gmail.com>\nSheng Yang <sheng@yasker.org>\nShijiang Wei <mountkin@gmail.com>\nShishir Mahajan <shishir.mahajan@redhat.com>\nShoubhik Bose <sbose78@gmail.com>\nShukui Yang <yangshukui@huawei.com>\nSian Lerk Lau <kiawin@gmail.com>\nSidhartha Mani <sidharthamn@gmail.com>\nsidharthamani <sid@rancher.com>\nSilvin Lubecki <silvin.lubecki@docker.com>\nSimei He <hesimei@zju.edu.cn>\nSimon Ferquel <simon.ferquel@docker.com>\nSimon Heimberg <simon.heimberg@heimberg-ea.ch>\nSindhu S <sindhus@live.in>\nSlava Semushin <semushin@redhat.com>\nSolomon Hykes <solomon@docker.com>\nSong Gao <song@gao.io>\nSpencer Brown <spencer@spencerbrown.org>\nSpring Lee <xi.shuai@outlook.com>\nsqueegels <lmscrewy@gmail.com>\nSrini Brahmaroutu <srbrahma@us.ibm.com>\nStefan S. <tronicum@user.github.com>\nStefan Scherer <stefan.scherer@docker.com>\nStefan Weil <sw@weilnetz.de>\nStephane Jeandeaux <stephane.jeandeaux@gmail.com>\nStephen Day <stevvooe@gmail.com>\nStephen Rust <srust@blockbridge.com>\nSteve Durrheimer <s.durrheimer@gmail.com>\nSteve Richards <steve.richards@docker.com>\nSteven Burgess <steven.a.burgess@hotmail.com>\nStoica-Marcu Floris-Andrei <floris.sm@gmail.com>\nSubhajit Ghosh <isubuz.g@gmail.com>\nSun Jianbo <wonderflow.sun@gmail.com>\nSune Keller <absukl@almbrand.dk>\nSungwon Han <sungwon.han@navercorp.com>\nSunny Gogoi <indiasuny000@gmail.com>\nSven Dowideit <SvenDowideit@home.org.au>\nSylvain Baubeau <sbaubeau@redhat.com>\nSébastien HOUZÉ <cto@verylastroom.com>\nT K Sourabh <sourabhtk37@gmail.com>\nTAGOMORI Satoshi <tagomoris@gmail.com>\ntaiji-tech <csuhqg@foxmail.com>\nTakeshi Koenuma <t.koenuma2@gmail.com>\nTakuya Noguchi <takninnovationresearch@gmail.com>\nTaylor Jones <monitorjbl@gmail.com>\nTeiva Harsanyi <t.harsanyi@thebeat.co>\nTejaswini Duggaraju <naduggar@microsoft.com>\nTengfei Wang <tfwang@alauda.io>\nTeppei Fukuda <knqyf263@gmail.com>\nThatcher Peskens <thatcher@docker.com>\nThibault Coupin <thibault.coupin@gmail.com>\nThomas Gazagnaire <thomas@gazagnaire.org>\nThomas Krzero <thomas.kovatchitch@gmail.com>\nThomas Leonard <thomas.leonard@docker.com>\nThomas Léveil <thomasleveil@gmail.com>\nThomas Riccardi <thomas@deepomatic.com>\nThomas Swift <tgs242@gmail.com>\nTianon Gravi <admwiggin@gmail.com>\nTianyi Wang <capkurmagati@gmail.com>\nTibor Vass <teabee89@gmail.com>\nTim Dettrick <t.dettrick@uq.edu.au>\nTim Hockin <thockin@google.com>\nTim Sampson <tim@sampson.fi>\nTim Smith <timbot@google.com>\nTim Waugh <twaugh@redhat.com>\nTim Welsh <timothy.welsh@docker.com>\nTim Wraight <tim.wraight@tangentlabs.co.uk>\ntimfeirg <kkcocogogo@gmail.com>\nTimothy Hobbs <timothyhobbs@seznam.cz>\nTobias Bradtke <webwurst@gmail.com>\nTobias Gesellchen <tobias@gesellix.de>\nTodd Whiteman <todd.whiteman@joyent.com>\nTom Denham <tom@tomdee.co.uk>\nTom Fotherby <tom+github@peopleperhour.com>\nTom Klingenberg <tklingenberg@lastflood.net>\nTom Milligan <code@tommilligan.net>\nTom X. Tobin <tomxtobin@tomxtobin.com>\nTomas Bäckman <larstomas@gmail.com>\nTomas Tomecek <ttomecek@redhat.com>\nTomasz Kopczynski <tomek@kopczynski.net.pl>\nTomáš Hrčka <thrcka@redhat.com>\nTony Abboud <tdabboud@hotmail.com>\nTõnis Tiigi <tonistiigi@gmail.com>\nTrapier Marshall <trapier.marshall@docker.com>\nTravis Cline <travis.cline@gmail.com>\nTristan Carel <tristan@cogniteev.com>\nTycho Andersen <tycho@docker.com>\nTycho Andersen <tycho@tycho.ws>\nuhayate <uhayate.gong@daocloud.io>\nUlrich Bareth <ulrich.bareth@gmail.com>\nUlysses Souza <ulysses.souza@docker.com>\nUmesh Yadav <umesh4257@gmail.com>\nVaclav Struhar <struharv@gmail.com>\nValentin Lorentz <progval+git@progval.net>\nVardan Pogosian <vardan.pogosyan@gmail.com>\nVenkateswara Reddy Bukkasamudram <bukkasamudram@outlook.com>\nVeres Lajos <vlajos@gmail.com>\nVictor Vieux <victor.vieux@docker.com>\nVictoria Bialas <victoria.bialas@docker.com>\nViktor Stanchev <me@viktorstanchev.com>\nVille Skyttä <ville.skytta@iki.fi>\nVimal Raghubir <vraghubir0418@gmail.com>\nVincent Batts <vbatts@redhat.com>\nVincent Bernat <Vincent.Bernat@exoscale.ch>\nVincent Demeester <vincent.demeester@docker.com>\nVincent Woo <me@vincentwoo.com>\nVishnu Kannan <vishnuk@google.com>\nVivek Goyal <vgoyal@redhat.com>\nWang Jie <wangjie5@chinaskycloud.com>\nWang Lei <wanglei@tenxcloud.com>\nWang Long <long.wanglong@huawei.com>\nWang Ping <present.wp@icloud.com>\nWang Xing <hzwangxing@corp.netease.com>\nWang Yuexiao <wang.yuexiao@zte.com.cn>\nWang Yumu <37442693@qq.com>\nWataru Ishida <ishida.wataru@lab.ntt.co.jp>\nWayne Song <wsong@docker.com>\nWen Cheng Ma <wenchma@cn.ibm.com>\nWenzhi Liang <wenzhi.liang@gmail.com>\nWes Morgan <cap10morgan@gmail.com>\nWewang Xiaorenfine <wang.xiaoren@zte.com.cn>\nWilliam Henry <whenry@redhat.com>\nXianglin Gao <xlgao@zju.edu.cn>\nXiaodong Liu <liuxiaodong@loongson.cn>\nXiaodong Zhang <a4012017@sina.com>\nXiaoxi He <xxhe@alauda.io>\nXinbo Weng <xihuanbo_0521@zju.edu.cn>\nXuecong Liao <satorulogic@gmail.com>\nYan Feng <yanfeng2@huawei.com>\nYanqiang Miao <miao.yanqiang@zte.com.cn>\nYassine Tijani <yasstij11@gmail.com>\nYi EungJun <eungjun.yi@navercorp.com>\nYing Li <ying.li@docker.com>\nYong Tang <yong.tang.github@outlook.com>\nYosef Fertel <yfertel@gmail.com>\nYu Peng <yu.peng36@zte.com.cn>\nYuan Sun <sunyuan3@huawei.com>\nYucheng Wu <wyc123wyc@gmail.com>\nYue Zhang <zy675793960@yeah.net>\nYunxiang Huang <hyxqshk@vip.qq.com>\nZachary Romero <zacromero3@gmail.com>\nZander Mackie <zmackie@gmail.com>\nzebrilee <zebrilee@gmail.com>\nZeel B Patel <patel_zeel@iitgn.ac.in>\nZhang Kun <zkazure@gmail.com>\nZhang Wei <zhangwei555@huawei.com>\nZhang Wentao <zhangwentao234@huawei.com>\nZhangHang <stevezhang2014@gmail.com>\nzhenghenghuo <zhenghenghuo@zju.edu.cn>\nZhiwei Liang <zliang@akamai.com>\nZhou Hao <zhouhao@cn.fujitsu.com>\nZhoulin Xie <zhoulin.xie@daocloud.io>\nZhu Guihua <zhugh.fnst@cn.fujitsu.com>\nZhuo Zhi <h.dwwwwww@gmail.com>\nÁlex González <agonzalezro@gmail.com>\nÁlvaro Lázaro <alvaro.lazaro.g@gmail.com>\nÁtila Camurça Alves <camurca.home@gmail.com>\nАлександр Менщиков <__Singleton__@hackerdom.ru>\n徐俊杰 <paco.xu@daocloud.io>\n"
  },
  {
    "path": "vendor/github.com/docker/cli/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        https://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   Copyright 2013-2017 Docker, Inc.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       https://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/docker/cli/NOTICE",
    "content": "Docker\nCopyright 2012-2017 Docker, Inc.\n\nThis product includes software developed at Docker, Inc. (https://www.docker.com).\n\nThis product contains software (https://github.com/creack/pty) developed\nby Keith Rarick, licensed under the MIT License.\n\nThe following is courtesy of our legal counsel:\n\n\nUse and transfer of Docker may be subject to certain restrictions by the\nUnited States and other governments.\nIt is your responsibility to ensure that your use and/or transfer does not\nviolate applicable laws.\n\nFor more information, see https://www.bis.doc.gov\n\nSee also https://www.apache.org/dev/crypto.html and/or seek legal counsel.\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/config.go",
    "content": "package config\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"os/user\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/docker/cli/cli/config/configfile\"\n\t\"github.com/docker/cli/cli/config/credentials\"\n\t\"github.com/docker/cli/cli/config/types\"\n\t\"github.com/pkg/errors\"\n)\n\nconst (\n\t// EnvOverrideConfigDir is the name of the environment variable that can be\n\t// used to override the location of the client configuration files (~/.docker).\n\t//\n\t// It takes priority over the default, but can be overridden by the \"--config\"\n\t// command line option.\n\tEnvOverrideConfigDir = \"DOCKER_CONFIG\"\n\n\t// ConfigFileName is the name of the client configuration file inside the\n\t// config-directory.\n\tConfigFileName = \"config.json\"\n\tconfigFileDir  = \".docker\"\n\tcontextsDir    = \"contexts\"\n)\n\nvar (\n\tinitConfigDir = new(sync.Once)\n\tconfigDir     string\n)\n\n// resetConfigDir is used in testing to reset the \"configDir\" package variable\n// and its sync.Once to force re-lookup between tests.\nfunc resetConfigDir() {\n\tconfigDir = \"\"\n\tinitConfigDir = new(sync.Once)\n}\n\n// getHomeDir returns the home directory of the current user with the help of\n// environment variables depending on the target operating system.\n// Returned path should be used with \"path/filepath\" to form new paths.\n//\n// On non-Windows platforms, it falls back to nss lookups, if the home\n// directory cannot be obtained from environment-variables.\n//\n// If linking statically with cgo enabled against glibc, ensure the\n// osusergo build tag is used.\n//\n// If needing to do nss lookups, do not disable cgo or set osusergo.\n//\n// getHomeDir is a copy of [pkg/homedir.Get] to prevent adding docker/docker\n// as dependency for consumers that only need to read the config-file.\n//\n// [pkg/homedir.Get]: https://pkg.go.dev/github.com/docker/docker@v26.1.4+incompatible/pkg/homedir#Get\nfunc getHomeDir() string {\n\thome, _ := os.UserHomeDir()\n\tif home == \"\" && runtime.GOOS != \"windows\" {\n\t\tif u, err := user.Current(); err == nil {\n\t\t\treturn u.HomeDir\n\t\t}\n\t}\n\treturn home\n}\n\n// Dir returns the directory the configuration file is stored in\nfunc Dir() string {\n\tinitConfigDir.Do(func() {\n\t\tconfigDir = os.Getenv(EnvOverrideConfigDir)\n\t\tif configDir == \"\" {\n\t\t\tconfigDir = filepath.Join(getHomeDir(), configFileDir)\n\t\t}\n\t})\n\treturn configDir\n}\n\n// ContextStoreDir returns the directory the docker contexts are stored in\nfunc ContextStoreDir() string {\n\treturn filepath.Join(Dir(), contextsDir)\n}\n\n// SetDir sets the directory the configuration file is stored in\nfunc SetDir(dir string) {\n\t// trigger the sync.Once to synchronise with Dir()\n\tinitConfigDir.Do(func() {})\n\tconfigDir = filepath.Clean(dir)\n}\n\n// Path returns the path to a file relative to the config dir\nfunc Path(p ...string) (string, error) {\n\tpath := filepath.Join(append([]string{Dir()}, p...)...)\n\tif !strings.HasPrefix(path, Dir()+string(filepath.Separator)) {\n\t\treturn \"\", errors.Errorf(\"path %q is outside of root config directory %q\", path, Dir())\n\t}\n\treturn path, nil\n}\n\n// LoadFromReader is a convenience function that creates a ConfigFile object from\n// a reader. It returns an error if configData is malformed.\nfunc LoadFromReader(configData io.Reader) (*configfile.ConfigFile, error) {\n\tconfigFile := configfile.ConfigFile{\n\t\tAuthConfigs: make(map[string]types.AuthConfig),\n\t}\n\terr := configFile.LoadFromReader(configData)\n\treturn &configFile, err\n}\n\n// Load reads the configuration file ([ConfigFileName]) from the given directory.\n// If no directory is given, it uses the default [Dir]. A [*configfile.ConfigFile]\n// is returned containing the contents of the configuration file, or a default\n// struct if no configfile exists in the given location.\n//\n// Load returns an error if a configuration file exists in the given location,\n// but cannot be read, or is malformed. Consumers must handle errors to prevent\n// overwriting an existing configuration file.\nfunc Load(configDir string) (*configfile.ConfigFile, error) {\n\tif configDir == \"\" {\n\t\tconfigDir = Dir()\n\t}\n\treturn load(configDir)\n}\n\nfunc load(configDir string) (*configfile.ConfigFile, error) {\n\tfilename := filepath.Join(configDir, ConfigFileName)\n\tconfigFile := configfile.New(filename)\n\n\tfile, err := os.Open(filename)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\t// It is OK for no configuration file to be present, in which\n\t\t\t// case we return a default struct.\n\t\t\treturn configFile, nil\n\t\t}\n\t\t// Any other error happening when failing to read the file must be returned.\n\t\treturn configFile, errors.Wrap(err, \"loading config file\")\n\t}\n\tdefer file.Close()\n\terr = configFile.LoadFromReader(file)\n\tif err != nil {\n\t\terr = errors.Wrapf(err, \"loading config file: %s: \", filename)\n\t}\n\treturn configFile, err\n}\n\n// LoadDefaultConfigFile attempts to load the default config file and returns\n// a reference to the ConfigFile struct. If none is found or when failing to load\n// the configuration file, it initializes a default ConfigFile struct. If no\n// credentials-store is set in the configuration file, it attempts to discover\n// the default store to use for the current platform.\n//\n// Important: LoadDefaultConfigFile prints a warning to stderr when failing to\n// load the configuration file, but otherwise ignores errors. Consumers should\n// consider using [Load] (and [credentials.DetectDefaultStore]) to detect errors\n// when updating the configuration file, to prevent discarding a (malformed)\n// configuration file.\nfunc LoadDefaultConfigFile(stderr io.Writer) *configfile.ConfigFile {\n\tconfigFile, err := load(Dir())\n\tif err != nil {\n\t\t// FIXME(thaJeztah): we should not proceed here to prevent overwriting existing (but malformed) config files; see https://github.com/docker/cli/issues/5075\n\t\t_, _ = fmt.Fprintln(stderr, \"WARNING: Error\", err)\n\t}\n\tif !configFile.ContainsAuth() {\n\t\tconfigFile.CredentialsStore = credentials.DetectDefaultStore(configFile.CredentialsStore)\n\t}\n\treturn configFile\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/configfile/file.go",
    "content": "package configfile\n\nimport (\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/docker/cli/cli/config/credentials\"\n\t\"github.com/docker/cli/cli/config/types\"\n\t\"github.com/pkg/errors\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// ConfigFile ~/.docker/config.json file info\ntype ConfigFile struct {\n\tAuthConfigs          map[string]types.AuthConfig  `json:\"auths\"`\n\tHTTPHeaders          map[string]string            `json:\"HttpHeaders,omitempty\"`\n\tPsFormat             string                       `json:\"psFormat,omitempty\"`\n\tImagesFormat         string                       `json:\"imagesFormat,omitempty\"`\n\tNetworksFormat       string                       `json:\"networksFormat,omitempty\"`\n\tPluginsFormat        string                       `json:\"pluginsFormat,omitempty\"`\n\tVolumesFormat        string                       `json:\"volumesFormat,omitempty\"`\n\tStatsFormat          string                       `json:\"statsFormat,omitempty\"`\n\tDetachKeys           string                       `json:\"detachKeys,omitempty\"`\n\tCredentialsStore     string                       `json:\"credsStore,omitempty\"`\n\tCredentialHelpers    map[string]string            `json:\"credHelpers,omitempty\"`\n\tFilename             string                       `json:\"-\"` // Note: for internal use only\n\tServiceInspectFormat string                       `json:\"serviceInspectFormat,omitempty\"`\n\tServicesFormat       string                       `json:\"servicesFormat,omitempty\"`\n\tTasksFormat          string                       `json:\"tasksFormat,omitempty\"`\n\tSecretFormat         string                       `json:\"secretFormat,omitempty\"`\n\tConfigFormat         string                       `json:\"configFormat,omitempty\"`\n\tNodesFormat          string                       `json:\"nodesFormat,omitempty\"`\n\tPruneFilters         []string                     `json:\"pruneFilters,omitempty\"`\n\tProxies              map[string]ProxyConfig       `json:\"proxies,omitempty\"`\n\tExperimental         string                       `json:\"experimental,omitempty\"`\n\tCurrentContext       string                       `json:\"currentContext,omitempty\"`\n\tCLIPluginsExtraDirs  []string                     `json:\"cliPluginsExtraDirs,omitempty\"`\n\tPlugins              map[string]map[string]string `json:\"plugins,omitempty\"`\n\tAliases              map[string]string            `json:\"aliases,omitempty\"`\n\tFeatures             map[string]string            `json:\"features,omitempty\"`\n}\n\n// ProxyConfig contains proxy configuration settings\ntype ProxyConfig struct {\n\tHTTPProxy  string `json:\"httpProxy,omitempty\"`\n\tHTTPSProxy string `json:\"httpsProxy,omitempty\"`\n\tNoProxy    string `json:\"noProxy,omitempty\"`\n\tFTPProxy   string `json:\"ftpProxy,omitempty\"`\n\tAllProxy   string `json:\"allProxy,omitempty\"`\n}\n\n// New initializes an empty configuration file for the given filename 'fn'\nfunc New(fn string) *ConfigFile {\n\treturn &ConfigFile{\n\t\tAuthConfigs: make(map[string]types.AuthConfig),\n\t\tHTTPHeaders: make(map[string]string),\n\t\tFilename:    fn,\n\t\tPlugins:     make(map[string]map[string]string),\n\t\tAliases:     make(map[string]string),\n\t}\n}\n\n// LoadFromReader reads the configuration data given and sets up the auth config\n// information with given directory and populates the receiver object\nfunc (configFile *ConfigFile) LoadFromReader(configData io.Reader) error {\n\tif err := json.NewDecoder(configData).Decode(configFile); err != nil && !errors.Is(err, io.EOF) {\n\t\treturn err\n\t}\n\tvar err error\n\tfor addr, ac := range configFile.AuthConfigs {\n\t\tif ac.Auth != \"\" {\n\t\t\tac.Username, ac.Password, err = decodeAuth(ac.Auth)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tac.Auth = \"\"\n\t\tac.ServerAddress = addr\n\t\tconfigFile.AuthConfigs[addr] = ac\n\t}\n\treturn nil\n}\n\n// ContainsAuth returns whether there is authentication configured\n// in this file or not.\nfunc (configFile *ConfigFile) ContainsAuth() bool {\n\treturn configFile.CredentialsStore != \"\" ||\n\t\tlen(configFile.CredentialHelpers) > 0 ||\n\t\tlen(configFile.AuthConfigs) > 0\n}\n\n// GetAuthConfigs returns the mapping of repo to auth configuration\nfunc (configFile *ConfigFile) GetAuthConfigs() map[string]types.AuthConfig {\n\tif configFile.AuthConfigs == nil {\n\t\tconfigFile.AuthConfigs = make(map[string]types.AuthConfig)\n\t}\n\treturn configFile.AuthConfigs\n}\n\n// SaveToWriter encodes and writes out all the authorization information to\n// the given writer\nfunc (configFile *ConfigFile) SaveToWriter(writer io.Writer) error {\n\t// Encode sensitive data into a new/temp struct\n\ttmpAuthConfigs := make(map[string]types.AuthConfig, len(configFile.AuthConfigs))\n\tfor k, authConfig := range configFile.AuthConfigs {\n\t\tauthCopy := authConfig\n\t\t// encode and save the authstring, while blanking out the original fields\n\t\tauthCopy.Auth = encodeAuth(&authCopy)\n\t\tauthCopy.Username = \"\"\n\t\tauthCopy.Password = \"\"\n\t\tauthCopy.ServerAddress = \"\"\n\t\ttmpAuthConfigs[k] = authCopy\n\t}\n\n\tsaveAuthConfigs := configFile.AuthConfigs\n\tconfigFile.AuthConfigs = tmpAuthConfigs\n\tdefer func() { configFile.AuthConfigs = saveAuthConfigs }()\n\n\t// User-Agent header is automatically set, and should not be stored in the configuration\n\tfor v := range configFile.HTTPHeaders {\n\t\tif strings.EqualFold(v, \"User-Agent\") {\n\t\t\tdelete(configFile.HTTPHeaders, v)\n\t\t}\n\t}\n\n\tdata, err := json.MarshalIndent(configFile, \"\", \"\\t\")\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = writer.Write(data)\n\treturn err\n}\n\n// Save encodes and writes out all the authorization information\nfunc (configFile *ConfigFile) Save() (retErr error) {\n\tif configFile.Filename == \"\" {\n\t\treturn errors.Errorf(\"Can't save config with empty filename\")\n\t}\n\n\tdir := filepath.Dir(configFile.Filename)\n\tif err := os.MkdirAll(dir, 0o700); err != nil {\n\t\treturn err\n\t}\n\ttemp, err := os.CreateTemp(dir, filepath.Base(configFile.Filename))\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer func() {\n\t\ttemp.Close()\n\t\tif retErr != nil {\n\t\t\tif err := os.Remove(temp.Name()); err != nil {\n\t\t\t\tlogrus.WithError(err).WithField(\"file\", temp.Name()).Debug(\"Error cleaning up temp file\")\n\t\t\t}\n\t\t}\n\t}()\n\n\terr = configFile.SaveToWriter(temp)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif err := temp.Close(); err != nil {\n\t\treturn errors.Wrap(err, \"error closing temp file\")\n\t}\n\n\t// Handle situation where the configfile is a symlink\n\tcfgFile := configFile.Filename\n\tif f, err := os.Readlink(cfgFile); err == nil {\n\t\tcfgFile = f\n\t}\n\n\t// Try copying the current config file (if any) ownership and permissions\n\tcopyFilePermissions(cfgFile, temp.Name())\n\treturn os.Rename(temp.Name(), cfgFile)\n}\n\n// ParseProxyConfig computes proxy configuration by retrieving the config for the provided host and\n// then checking this against any environment variables provided to the container\nfunc (configFile *ConfigFile) ParseProxyConfig(host string, runOpts map[string]*string) map[string]*string {\n\tvar cfgKey string\n\n\tif _, ok := configFile.Proxies[host]; !ok {\n\t\tcfgKey = \"default\"\n\t} else {\n\t\tcfgKey = host\n\t}\n\n\tconfig := configFile.Proxies[cfgKey]\n\tpermitted := map[string]*string{\n\t\t\"HTTP_PROXY\":  &config.HTTPProxy,\n\t\t\"HTTPS_PROXY\": &config.HTTPSProxy,\n\t\t\"NO_PROXY\":    &config.NoProxy,\n\t\t\"FTP_PROXY\":   &config.FTPProxy,\n\t\t\"ALL_PROXY\":   &config.AllProxy,\n\t}\n\tm := runOpts\n\tif m == nil {\n\t\tm = make(map[string]*string)\n\t}\n\tfor k := range permitted {\n\t\tif *permitted[k] == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif _, ok := m[k]; !ok {\n\t\t\tm[k] = permitted[k]\n\t\t}\n\t\tif _, ok := m[strings.ToLower(k)]; !ok {\n\t\t\tm[strings.ToLower(k)] = permitted[k]\n\t\t}\n\t}\n\treturn m\n}\n\n// encodeAuth creates a base64 encoded string to containing authorization information\nfunc encodeAuth(authConfig *types.AuthConfig) string {\n\tif authConfig.Username == \"\" && authConfig.Password == \"\" {\n\t\treturn \"\"\n\t}\n\n\tauthStr := authConfig.Username + \":\" + authConfig.Password\n\tmsg := []byte(authStr)\n\tencoded := make([]byte, base64.StdEncoding.EncodedLen(len(msg)))\n\tbase64.StdEncoding.Encode(encoded, msg)\n\treturn string(encoded)\n}\n\n// decodeAuth decodes a base64 encoded string and returns username and password\nfunc decodeAuth(authStr string) (string, string, error) {\n\tif authStr == \"\" {\n\t\treturn \"\", \"\", nil\n\t}\n\n\tdecLen := base64.StdEncoding.DecodedLen(len(authStr))\n\tdecoded := make([]byte, decLen)\n\tauthByte := []byte(authStr)\n\tn, err := base64.StdEncoding.Decode(decoded, authByte)\n\tif err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\tif n > decLen {\n\t\treturn \"\", \"\", errors.Errorf(\"Something went wrong decoding auth config\")\n\t}\n\tuserName, password, ok := strings.Cut(string(decoded), \":\")\n\tif !ok || userName == \"\" {\n\t\treturn \"\", \"\", errors.Errorf(\"Invalid auth configuration file\")\n\t}\n\treturn userName, strings.Trim(password, \"\\x00\"), nil\n}\n\n// GetCredentialsStore returns a new credentials store from the settings in the\n// configuration file\nfunc (configFile *ConfigFile) GetCredentialsStore(registryHostname string) credentials.Store {\n\tif helper := getConfiguredCredentialStore(configFile, registryHostname); helper != \"\" {\n\t\treturn newNativeStore(configFile, helper)\n\t}\n\treturn credentials.NewFileStore(configFile)\n}\n\n// var for unit testing.\nvar newNativeStore = func(configFile *ConfigFile, helperSuffix string) credentials.Store {\n\treturn credentials.NewNativeStore(configFile, helperSuffix)\n}\n\n// GetAuthConfig for a repository from the credential store\nfunc (configFile *ConfigFile) GetAuthConfig(registryHostname string) (types.AuthConfig, error) {\n\treturn configFile.GetCredentialsStore(registryHostname).Get(registryHostname)\n}\n\n// getConfiguredCredentialStore returns the credential helper configured for the\n// given registry, the default credsStore, or the empty string if neither are\n// configured.\nfunc getConfiguredCredentialStore(c *ConfigFile, registryHostname string) string {\n\tif c.CredentialHelpers != nil && registryHostname != \"\" {\n\t\tif helper, exists := c.CredentialHelpers[registryHostname]; exists {\n\t\t\treturn helper\n\t\t}\n\t}\n\treturn c.CredentialsStore\n}\n\n// GetAllCredentials returns all of the credentials stored in all of the\n// configured credential stores.\nfunc (configFile *ConfigFile) GetAllCredentials() (map[string]types.AuthConfig, error) {\n\tauths := make(map[string]types.AuthConfig)\n\taddAll := func(from map[string]types.AuthConfig) {\n\t\tfor reg, ac := range from {\n\t\t\tauths[reg] = ac\n\t\t}\n\t}\n\n\tdefaultStore := configFile.GetCredentialsStore(\"\")\n\tnewAuths, err := defaultStore.GetAll()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\taddAll(newAuths)\n\n\t// Auth configs from a registry-specific helper should override those from the default store.\n\tfor registryHostname := range configFile.CredentialHelpers {\n\t\tnewAuth, err := configFile.GetAuthConfig(registryHostname)\n\t\tif err != nil {\n\t\t\t// TODO(thaJeztah): use context-logger, so that this output can be suppressed (in tests).\n\t\t\tlogrus.WithError(err).Warnf(\"Failed to get credentials for registry: %s\", registryHostname)\n\t\t\tcontinue\n\t\t}\n\t\tauths[registryHostname] = newAuth\n\t}\n\treturn auths, nil\n}\n\n// GetFilename returns the file name that this config file is based on.\nfunc (configFile *ConfigFile) GetFilename() string {\n\treturn configFile.Filename\n}\n\n// PluginConfig retrieves the requested option for the given plugin.\nfunc (configFile *ConfigFile) PluginConfig(pluginname, option string) (string, bool) {\n\tif configFile.Plugins == nil {\n\t\treturn \"\", false\n\t}\n\tpluginConfig, ok := configFile.Plugins[pluginname]\n\tif !ok {\n\t\treturn \"\", false\n\t}\n\tvalue, ok := pluginConfig[option]\n\treturn value, ok\n}\n\n// SetPluginConfig sets the option to the given value for the given\n// plugin. Passing a value of \"\" will remove the option. If removing\n// the final config item for a given plugin then also cleans up the\n// overall plugin entry.\nfunc (configFile *ConfigFile) SetPluginConfig(pluginname, option, value string) {\n\tif configFile.Plugins == nil {\n\t\tconfigFile.Plugins = make(map[string]map[string]string)\n\t}\n\tpluginConfig, ok := configFile.Plugins[pluginname]\n\tif !ok {\n\t\tpluginConfig = make(map[string]string)\n\t\tconfigFile.Plugins[pluginname] = pluginConfig\n\t}\n\tif value != \"\" {\n\t\tpluginConfig[option] = value\n\t} else {\n\t\tdelete(pluginConfig, option)\n\t}\n\tif len(pluginConfig) == 0 {\n\t\tdelete(configFile.Plugins, pluginname)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/configfile/file_unix.go",
    "content": "//go:build !windows\n\npackage configfile\n\nimport (\n\t\"os\"\n\t\"syscall\"\n)\n\n// copyFilePermissions copies file ownership and permissions from \"src\" to \"dst\",\n// ignoring any error during the process.\nfunc copyFilePermissions(src, dst string) {\n\tvar (\n\t\tmode     os.FileMode = 0o600\n\t\tuid, gid int\n\t)\n\n\tfi, err := os.Stat(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tif fi.Mode().IsRegular() {\n\t\tmode = fi.Mode()\n\t}\n\tif err := os.Chmod(dst, mode); err != nil {\n\t\treturn\n\t}\n\n\tuid = int(fi.Sys().(*syscall.Stat_t).Uid)\n\tgid = int(fi.Sys().(*syscall.Stat_t).Gid)\n\n\tif uid > 0 && gid > 0 {\n\t\t_ = os.Chown(dst, uid, gid)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/configfile/file_windows.go",
    "content": "package configfile\n\nfunc copyFilePermissions(src, dst string) {\n\t// TODO implement for Windows\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/credentials/credentials.go",
    "content": "package credentials\n\nimport (\n\t\"github.com/docker/cli/cli/config/types\"\n)\n\n// Store is the interface that any credentials store must implement.\ntype Store interface {\n\t// Erase removes credentials from the store for a given server.\n\tErase(serverAddress string) error\n\t// Get retrieves credentials from the store for a given server.\n\tGet(serverAddress string) (types.AuthConfig, error)\n\t// GetAll retrieves all the credentials from the store.\n\tGetAll() (map[string]types.AuthConfig, error)\n\t// Store saves credentials in the store.\n\tStore(authConfig types.AuthConfig) error\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/credentials/default_store.go",
    "content": "package credentials\n\nimport \"os/exec\"\n\n// DetectDefaultStore return the default credentials store for the platform if\n// no user-defined store is passed, and the store executable is available.\nfunc DetectDefaultStore(store string) string {\n\tif store != \"\" {\n\t\t// use user-defined\n\t\treturn store\n\t}\n\n\tplatformDefault := defaultCredentialsStore()\n\tif platformDefault == \"\" {\n\t\treturn \"\"\n\t}\n\n\tif _, err := exec.LookPath(remoteCredentialsPrefix + platformDefault); err != nil {\n\t\treturn \"\"\n\t}\n\treturn platformDefault\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/credentials/default_store_darwin.go",
    "content": "package credentials\n\nfunc defaultCredentialsStore() string {\n\treturn \"osxkeychain\"\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/credentials/default_store_linux.go",
    "content": "package credentials\n\nimport (\n\t\"os/exec\"\n)\n\nfunc defaultCredentialsStore() string {\n\tif _, err := exec.LookPath(\"pass\"); err == nil {\n\t\treturn \"pass\"\n\t}\n\n\treturn \"secretservice\"\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/credentials/default_store_unsupported.go",
    "content": "//go:build !windows && !darwin && !linux\n\npackage credentials\n\nfunc defaultCredentialsStore() string {\n\treturn \"\"\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/credentials/default_store_windows.go",
    "content": "package credentials\n\nfunc defaultCredentialsStore() string {\n\treturn \"wincred\"\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/credentials/file_store.go",
    "content": "package credentials\n\nimport (\n\t\"net\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/docker/cli/cli/config/types\"\n)\n\ntype store interface {\n\tSave() error\n\tGetAuthConfigs() map[string]types.AuthConfig\n\tGetFilename() string\n}\n\n// fileStore implements a credentials store using\n// the docker configuration file to keep the credentials in plain text.\ntype fileStore struct {\n\tfile store\n}\n\n// NewFileStore creates a new file credentials store.\nfunc NewFileStore(file store) Store {\n\treturn &fileStore{file: file}\n}\n\n// Erase removes the given credentials from the file store.\nfunc (c *fileStore) Erase(serverAddress string) error {\n\tdelete(c.file.GetAuthConfigs(), serverAddress)\n\treturn c.file.Save()\n}\n\n// Get retrieves credentials for a specific server from the file store.\nfunc (c *fileStore) Get(serverAddress string) (types.AuthConfig, error) {\n\tauthConfig, ok := c.file.GetAuthConfigs()[serverAddress]\n\tif !ok {\n\t\t// Maybe they have a legacy config file, we will iterate the keys converting\n\t\t// them to the new format and testing\n\t\tfor r, ac := range c.file.GetAuthConfigs() {\n\t\t\tif serverAddress == ConvertToHostname(r) {\n\t\t\t\treturn ac, nil\n\t\t\t}\n\t\t}\n\n\t\tauthConfig = types.AuthConfig{}\n\t}\n\treturn authConfig, nil\n}\n\nfunc (c *fileStore) GetAll() (map[string]types.AuthConfig, error) {\n\treturn c.file.GetAuthConfigs(), nil\n}\n\n// Store saves the given credentials in the file store.\nfunc (c *fileStore) Store(authConfig types.AuthConfig) error {\n\tauthConfigs := c.file.GetAuthConfigs()\n\tauthConfigs[authConfig.ServerAddress] = authConfig\n\treturn c.file.Save()\n}\n\nfunc (c *fileStore) GetFilename() string {\n\treturn c.file.GetFilename()\n}\n\nfunc (c *fileStore) IsFileStore() bool {\n\treturn true\n}\n\n// ConvertToHostname converts a registry url which has http|https prepended\n// to just an hostname.\n// Copied from github.com/docker/docker/registry.ConvertToHostname to reduce dependencies.\nfunc ConvertToHostname(maybeURL string) string {\n\tstripped := maybeURL\n\tif strings.Contains(stripped, \"://\") {\n\t\tu, err := url.Parse(stripped)\n\t\tif err == nil && u.Hostname() != \"\" {\n\t\t\tif u.Port() == \"\" {\n\t\t\t\treturn u.Hostname()\n\t\t\t}\n\t\t\treturn net.JoinHostPort(u.Hostname(), u.Port())\n\t\t}\n\t}\n\thostName, _, _ := strings.Cut(stripped, \"/\")\n\treturn hostName\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/credentials/native_store.go",
    "content": "package credentials\n\nimport (\n\t\"github.com/docker/cli/cli/config/types\"\n\t\"github.com/docker/docker-credential-helpers/client\"\n\t\"github.com/docker/docker-credential-helpers/credentials\"\n)\n\nconst (\n\tremoteCredentialsPrefix = \"docker-credential-\" //nolint:gosec // ignore G101: Potential hardcoded credentials\n\ttokenUsername           = \"<token>\"\n)\n\n// nativeStore implements a credentials store\n// using native keychain to keep credentials secure.\n// It piggybacks into a file store to keep users' emails.\ntype nativeStore struct {\n\tprogramFunc client.ProgramFunc\n\tfileStore   Store\n}\n\n// NewNativeStore creates a new native store that\n// uses a remote helper program to manage credentials.\nfunc NewNativeStore(file store, helperSuffix string) Store {\n\tname := remoteCredentialsPrefix + helperSuffix\n\treturn &nativeStore{\n\t\tprogramFunc: client.NewShellProgramFunc(name),\n\t\tfileStore:   NewFileStore(file),\n\t}\n}\n\n// Erase removes the given credentials from the native store.\nfunc (c *nativeStore) Erase(serverAddress string) error {\n\tif err := client.Erase(c.programFunc, serverAddress); err != nil {\n\t\treturn err\n\t}\n\n\t// Fallback to plain text store to remove email\n\treturn c.fileStore.Erase(serverAddress)\n}\n\n// Get retrieves credentials for a specific server from the native store.\nfunc (c *nativeStore) Get(serverAddress string) (types.AuthConfig, error) {\n\t// load user email if it exist or an empty auth config.\n\tauth, _ := c.fileStore.Get(serverAddress)\n\n\tcreds, err := c.getCredentialsFromStore(serverAddress)\n\tif err != nil {\n\t\treturn auth, err\n\t}\n\tauth.Username = creds.Username\n\tauth.IdentityToken = creds.IdentityToken\n\tauth.Password = creds.Password\n\tauth.ServerAddress = creds.ServerAddress\n\n\treturn auth, nil\n}\n\n// GetAll retrieves all the credentials from the native store.\nfunc (c *nativeStore) GetAll() (map[string]types.AuthConfig, error) {\n\tauths, err := c.listCredentialsInStore()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Emails are only stored in the file store.\n\t// This call can be safely eliminated when emails are removed.\n\tfileConfigs, _ := c.fileStore.GetAll()\n\n\tauthConfigs := make(map[string]types.AuthConfig)\n\tfor registry := range auths {\n\t\tcreds, err := c.getCredentialsFromStore(registry)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tac := fileConfigs[registry] // might contain Email\n\t\tac.Username = creds.Username\n\t\tac.Password = creds.Password\n\t\tac.IdentityToken = creds.IdentityToken\n\t\tif ac.ServerAddress == \"\" {\n\t\t\tac.ServerAddress = creds.ServerAddress\n\t\t}\n\t\tauthConfigs[registry] = ac\n\t}\n\n\treturn authConfigs, nil\n}\n\n// Store saves the given credentials in the file store.\nfunc (c *nativeStore) Store(authConfig types.AuthConfig) error {\n\tif err := c.storeCredentialsInStore(authConfig); err != nil {\n\t\treturn err\n\t}\n\tauthConfig.Username = \"\"\n\tauthConfig.Password = \"\"\n\tauthConfig.IdentityToken = \"\"\n\n\t// Fallback to old credential in plain text to save only the email\n\treturn c.fileStore.Store(authConfig)\n}\n\n// storeCredentialsInStore executes the command to store the credentials in the native store.\nfunc (c *nativeStore) storeCredentialsInStore(config types.AuthConfig) error {\n\tcreds := &credentials.Credentials{\n\t\tServerURL: config.ServerAddress,\n\t\tUsername:  config.Username,\n\t\tSecret:    config.Password,\n\t}\n\n\tif config.IdentityToken != \"\" {\n\t\tcreds.Username = tokenUsername\n\t\tcreds.Secret = config.IdentityToken\n\t}\n\n\treturn client.Store(c.programFunc, creds)\n}\n\n// getCredentialsFromStore executes the command to get the credentials from the native store.\nfunc (c *nativeStore) getCredentialsFromStore(serverAddress string) (types.AuthConfig, error) {\n\tvar ret types.AuthConfig\n\n\tcreds, err := client.Get(c.programFunc, serverAddress)\n\tif err != nil {\n\t\tif credentials.IsErrCredentialsNotFound(err) {\n\t\t\t// do not return an error if the credentials are not\n\t\t\t// in the keychain. Let docker ask for new credentials.\n\t\t\treturn ret, nil\n\t\t}\n\t\treturn ret, err\n\t}\n\n\tif creds.Username == tokenUsername {\n\t\tret.IdentityToken = creds.Secret\n\t} else {\n\t\tret.Password = creds.Secret\n\t\tret.Username = creds.Username\n\t}\n\n\tret.ServerAddress = serverAddress\n\treturn ret, nil\n}\n\n// listCredentialsInStore returns a listing of stored credentials as a map of\n// URL -> username.\nfunc (c *nativeStore) listCredentialsInStore() (map[string]string, error) {\n\treturn client.List(c.programFunc)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/config/types/authconfig.go",
    "content": "package types\n\n// AuthConfig contains authorization information for connecting to a Registry\ntype AuthConfig struct {\n\tUsername string `json:\"username,omitempty\"`\n\tPassword string `json:\"password,omitempty\"`\n\tAuth     string `json:\"auth,omitempty\"`\n\n\t// Email is an optional value associated with the username.\n\t// This field is deprecated and will be removed in a later\n\t// version of docker.\n\tEmail string `json:\"email,omitempty\"`\n\n\tServerAddress string `json:\"serveraddress,omitempty\"`\n\n\t// IdentityToken is used to authenticate the user and get\n\t// an access token for the registry.\n\tIdentityToken string `json:\"identitytoken,omitempty\"`\n\n\t// RegistryToken is a bearer token to be sent to a registry\n\tRegistryToken string `json:\"registrytoken,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/connhelper/commandconn/commandconn.go",
    "content": "// Package commandconn provides a net.Conn implementation that can be used for\n// proxying (or emulating) stream via a custom command.\n//\n// For example, to provide an http.Client that can connect to a Docker daemon\n// running in a Docker container (\"DIND\"):\n//\n//\thttpClient := &http.Client{\n//\t\tTransport: &http.Transport{\n//\t\t\tDialContext: func(ctx context.Context, _network, _addr string) (net.Conn, error) {\n//\t\t\t\treturn commandconn.New(ctx, \"docker\", \"exec\", \"-it\", containerID, \"docker\", \"system\", \"dial-stdio\")\n//\t\t\t},\n//\t\t},\n//\t}\npackage commandconn\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"os\"\n\t\"os/exec\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"github.com/pkg/errors\"\n\t\"github.com/sirupsen/logrus\"\n)\n\n// New returns net.Conn\nfunc New(_ context.Context, cmd string, args ...string) (net.Conn, error) {\n\tvar (\n\t\tc   commandConn\n\t\terr error\n\t)\n\tc.cmd = exec.Command(cmd, args...)\n\t// we assume that args never contains sensitive information\n\tlogrus.Debugf(\"commandconn: starting %s with %v\", cmd, args)\n\tc.cmd.Env = os.Environ()\n\tc.cmd.SysProcAttr = &syscall.SysProcAttr{}\n\tsetPdeathsig(c.cmd)\n\tcreateSession(c.cmd)\n\tc.stdin, err = c.cmd.StdinPipe()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tc.stdout, err = c.cmd.StdoutPipe()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tc.cmd.Stderr = &stderrWriter{\n\t\tstderrMu:    &c.stderrMu,\n\t\tstderr:      &c.stderr,\n\t\tdebugPrefix: fmt.Sprintf(\"commandconn (%s):\", cmd),\n\t}\n\tc.localAddr = dummyAddr{network: \"dummy\", s: \"dummy-0\"}\n\tc.remoteAddr = dummyAddr{network: \"dummy\", s: \"dummy-1\"}\n\treturn &c, c.cmd.Start()\n}\n\n// commandConn implements net.Conn\ntype commandConn struct {\n\tcmdMutex     sync.Mutex // for cmd, cmdWaitErr\n\tcmd          *exec.Cmd\n\tcmdWaitErr   error\n\tcmdExited    atomic.Bool\n\tstdin        io.WriteCloser\n\tstdout       io.ReadCloser\n\tstderrMu     sync.Mutex // for stderr\n\tstderr       bytes.Buffer\n\tstdinClosed  atomic.Bool\n\tstdoutClosed atomic.Bool\n\tclosing      atomic.Bool\n\tlocalAddr    net.Addr\n\tremoteAddr   net.Addr\n}\n\n// kill terminates the process. On Windows it kills the process directly,\n// whereas on other platforms, a SIGTERM is sent, before forcefully terminating\n// the process after 3 seconds.\nfunc (c *commandConn) kill() {\n\tif c.cmdExited.Load() {\n\t\treturn\n\t}\n\tc.cmdMutex.Lock()\n\tvar werr error\n\tif runtime.GOOS != \"windows\" {\n\t\twerrCh := make(chan error)\n\t\tgo func() { werrCh <- c.cmd.Wait() }()\n\t\t_ = c.cmd.Process.Signal(syscall.SIGTERM)\n\t\tselect {\n\t\tcase werr = <-werrCh:\n\t\tcase <-time.After(3 * time.Second):\n\t\t\t_ = c.cmd.Process.Kill()\n\t\t\twerr = <-werrCh\n\t\t}\n\t} else {\n\t\t_ = c.cmd.Process.Kill()\n\t\twerr = c.cmd.Wait()\n\t}\n\tc.cmdWaitErr = werr\n\tc.cmdMutex.Unlock()\n\tc.cmdExited.Store(true)\n}\n\n// handleEOF handles io.EOF errors while reading or writing from the underlying\n// command pipes.\n//\n// When we've received an EOF we expect that the command will\n// be terminated soon. As such, we call Wait() on the command\n// and return EOF or the error depending on whether the command\n// exited with an error.\n//\n// If Wait() does not return within 10s, an error is returned\nfunc (c *commandConn) handleEOF(err error) error {\n\tif err != io.EOF {\n\t\treturn err\n\t}\n\n\tc.cmdMutex.Lock()\n\tdefer c.cmdMutex.Unlock()\n\n\tvar werr error\n\tif c.cmdExited.Load() {\n\t\twerr = c.cmdWaitErr\n\t} else {\n\t\twerrCh := make(chan error)\n\t\tgo func() { werrCh <- c.cmd.Wait() }()\n\t\tselect {\n\t\tcase werr = <-werrCh:\n\t\t\tc.cmdWaitErr = werr\n\t\t\tc.cmdExited.Store(true)\n\t\tcase <-time.After(10 * time.Second):\n\t\t\tc.stderrMu.Lock()\n\t\t\tstderr := c.stderr.String()\n\t\t\tc.stderrMu.Unlock()\n\t\t\treturn errors.Errorf(\"command %v did not exit after %v: stderr=%q\", c.cmd.Args, err, stderr)\n\t\t}\n\t}\n\n\tif werr == nil {\n\t\treturn err\n\t}\n\tc.stderrMu.Lock()\n\tstderr := c.stderr.String()\n\tc.stderrMu.Unlock()\n\treturn errors.Errorf(\"command %v has exited with %v, make sure the URL is valid, and Docker 18.09 or later is installed on the remote host: stderr=%s\", c.cmd.Args, werr, stderr)\n}\n\nfunc ignorableCloseError(err error) bool {\n\treturn strings.Contains(err.Error(), os.ErrClosed.Error())\n}\n\nfunc (c *commandConn) Read(p []byte) (int, error) {\n\tn, err := c.stdout.Read(p)\n\t// check after the call to Read, since\n\t// it is blocking, and while waiting on it\n\t// Close might get called\n\tif c.closing.Load() {\n\t\t// If we're currently closing the connection\n\t\t// we don't want to call onEOF\n\t\treturn n, err\n\t}\n\n\treturn n, c.handleEOF(err)\n}\n\nfunc (c *commandConn) Write(p []byte) (int, error) {\n\tn, err := c.stdin.Write(p)\n\t// check after the call to Write, since\n\t// it is blocking, and while waiting on it\n\t// Close might get called\n\tif c.closing.Load() {\n\t\t// If we're currently closing the connection\n\t\t// we don't want to call onEOF\n\t\treturn n, err\n\t}\n\n\treturn n, c.handleEOF(err)\n}\n\n// CloseRead allows commandConn to implement halfCloser\nfunc (c *commandConn) CloseRead() error {\n\t// NOTE: maybe already closed here\n\tif err := c.stdout.Close(); err != nil && !ignorableCloseError(err) {\n\t\treturn err\n\t}\n\tc.stdoutClosed.Store(true)\n\n\tif c.stdinClosed.Load() {\n\t\tc.kill()\n\t}\n\n\treturn nil\n}\n\n// CloseWrite allows commandConn to implement halfCloser\nfunc (c *commandConn) CloseWrite() error {\n\t// NOTE: maybe already closed here\n\tif err := c.stdin.Close(); err != nil && !ignorableCloseError(err) {\n\t\treturn err\n\t}\n\tc.stdinClosed.Store(true)\n\n\tif c.stdoutClosed.Load() {\n\t\tc.kill()\n\t}\n\treturn nil\n}\n\n// Close is the net.Conn func that gets called\n// by the transport when a dial is cancelled\n// due to it's context timing out. Any blocked\n// Read or Write calls will be unblocked and\n// return errors. It will block until the underlying\n// command has terminated.\nfunc (c *commandConn) Close() error {\n\tc.closing.Store(true)\n\tdefer c.closing.Store(false)\n\n\tif err := c.CloseRead(); err != nil {\n\t\tlogrus.Warnf(\"commandConn.Close: CloseRead: %v\", err)\n\t\treturn err\n\t}\n\tif err := c.CloseWrite(); err != nil {\n\t\tlogrus.Warnf(\"commandConn.Close: CloseWrite: %v\", err)\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (c *commandConn) LocalAddr() net.Addr {\n\treturn c.localAddr\n}\n\nfunc (c *commandConn) RemoteAddr() net.Addr {\n\treturn c.remoteAddr\n}\n\nfunc (c *commandConn) SetDeadline(t time.Time) error {\n\tlogrus.Debugf(\"unimplemented call: SetDeadline(%v)\", t)\n\treturn nil\n}\n\nfunc (c *commandConn) SetReadDeadline(t time.Time) error {\n\tlogrus.Debugf(\"unimplemented call: SetReadDeadline(%v)\", t)\n\treturn nil\n}\n\nfunc (c *commandConn) SetWriteDeadline(t time.Time) error {\n\tlogrus.Debugf(\"unimplemented call: SetWriteDeadline(%v)\", t)\n\treturn nil\n}\n\ntype dummyAddr struct {\n\tnetwork string\n\ts       string\n}\n\nfunc (d dummyAddr) Network() string {\n\treturn d.network\n}\n\nfunc (d dummyAddr) String() string {\n\treturn d.s\n}\n\ntype stderrWriter struct {\n\tstderrMu    *sync.Mutex\n\tstderr      *bytes.Buffer\n\tdebugPrefix string\n}\n\nfunc (w *stderrWriter) Write(p []byte) (int, error) {\n\tlogrus.Debugf(\"%s%s\", w.debugPrefix, string(p))\n\tw.stderrMu.Lock()\n\tif w.stderr.Len() > 4096 {\n\t\tw.stderr.Reset()\n\t}\n\tn, err := w.stderr.Write(p)\n\tw.stderrMu.Unlock()\n\treturn n, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/connhelper/commandconn/pdeathsig_linux.go",
    "content": "package commandconn\n\nimport (\n\t\"os/exec\"\n\t\"syscall\"\n)\n\nfunc setPdeathsig(cmd *exec.Cmd) {\n\tcmd.SysProcAttr.Pdeathsig = syscall.SIGKILL\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/connhelper/commandconn/pdeathsig_nolinux.go",
    "content": "//go:build !linux\n\npackage commandconn\n\nimport (\n\t\"os/exec\"\n)\n\nfunc setPdeathsig(*exec.Cmd) {}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/connhelper/commandconn/session_unix.go",
    "content": "//go:build !windows\n\npackage commandconn\n\nimport (\n\t\"os/exec\"\n)\n\nfunc createSession(cmd *exec.Cmd) {\n\t// for supporting ssh connection helper with ProxyCommand\n\t// https://github.com/docker/cli/issues/1707\n\tcmd.SysProcAttr.Setsid = true\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/connhelper/commandconn/session_windows.go",
    "content": "package commandconn\n\nimport (\n\t\"os/exec\"\n)\n\nfunc createSession(cmd *exec.Cmd) {\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/connhelper/connhelper.go",
    "content": "// Package connhelper provides helpers for connecting to a remote daemon host with custom logic.\npackage connhelper\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/docker/cli/cli/connhelper/commandconn\"\n\t\"github.com/docker/cli/cli/connhelper/ssh\"\n\t\"github.com/pkg/errors\"\n)\n\n// ConnectionHelper allows to connect to a remote host with custom stream provider binary.\ntype ConnectionHelper struct {\n\tDialer func(ctx context.Context, network, addr string) (net.Conn, error)\n\tHost   string // dummy URL used for HTTP requests. e.g. \"http://docker\"\n}\n\n// GetConnectionHelper returns Docker-specific connection helper for the given URL.\n// GetConnectionHelper returns nil without error when no helper is registered for the scheme.\n//\n// ssh://<user>@<host> URL requires Docker 18.09 or later on the remote host.\nfunc GetConnectionHelper(daemonURL string) (*ConnectionHelper, error) {\n\treturn getConnectionHelper(daemonURL, nil)\n}\n\n// GetConnectionHelperWithSSHOpts returns Docker-specific connection helper for\n// the given URL, and accepts additional options for ssh connections. It returns\n// nil without error when no helper is registered for the scheme.\n//\n// Requires Docker 18.09 or later on the remote host.\nfunc GetConnectionHelperWithSSHOpts(daemonURL string, sshFlags []string) (*ConnectionHelper, error) {\n\treturn getConnectionHelper(daemonURL, sshFlags)\n}\n\nfunc getConnectionHelper(daemonURL string, sshFlags []string) (*ConnectionHelper, error) {\n\tu, err := url.Parse(daemonURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif u.Scheme == \"ssh\" {\n\t\tsp, err := ssh.ParseURL(daemonURL)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrap(err, \"ssh host connection is not valid\")\n\t\t}\n\t\treturn &ConnectionHelper{\n\t\t\tDialer: func(ctx context.Context, network, addr string) (net.Conn, error) {\n\t\t\t\targs := []string{\"docker\"}\n\t\t\t\tif sp.Path != \"\" {\n\t\t\t\t\targs = append(args, \"--host\", \"unix://\"+sp.Path)\n\t\t\t\t}\n\t\t\t\tsshFlags = addSSHTimeout(sshFlags)\n\t\t\t\targs = append(args, \"system\", \"dial-stdio\")\n\t\t\t\treturn commandconn.New(ctx, \"ssh\", append(sshFlags, sp.Args(args...)...)...)\n\t\t\t},\n\t\t\tHost: \"http://docker.example.com\",\n\t\t}, nil\n\t}\n\t// Future version may support plugins via ~/.docker/config.json. e.g. \"dind\"\n\t// See docker/cli#889 for the previous discussion.\n\treturn nil, err\n}\n\n// GetCommandConnectionHelper returns Docker-specific connection helper constructed from an arbitrary command.\nfunc GetCommandConnectionHelper(cmd string, flags ...string) (*ConnectionHelper, error) {\n\treturn &ConnectionHelper{\n\t\tDialer: func(ctx context.Context, network, addr string) (net.Conn, error) {\n\t\t\treturn commandconn.New(ctx, cmd, flags...)\n\t\t},\n\t\tHost: \"http://docker.example.com\",\n\t}, nil\n}\n\nfunc addSSHTimeout(sshFlags []string) []string {\n\tif !strings.Contains(strings.Join(sshFlags, \"\"), \"ConnectTimeout\") {\n\t\tsshFlags = append(sshFlags, \"-o ConnectTimeout=30\")\n\t}\n\treturn sshFlags\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/connhelper/ssh/ssh.go",
    "content": "// Package ssh provides the connection helper for ssh:// URL.\npackage ssh\n\nimport (\n\t\"net/url\"\n\n\t\"github.com/pkg/errors\"\n)\n\n// ParseURL parses URL\nfunc ParseURL(daemonURL string) (*Spec, error) {\n\tu, err := url.Parse(daemonURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif u.Scheme != \"ssh\" {\n\t\treturn nil, errors.Errorf(\"expected scheme ssh, got %q\", u.Scheme)\n\t}\n\n\tvar sp Spec\n\n\tif u.User != nil {\n\t\tsp.User = u.User.Username()\n\t\tif _, ok := u.User.Password(); ok {\n\t\t\treturn nil, errors.New(\"plain-text password is not supported\")\n\t\t}\n\t}\n\tsp.Host = u.Hostname()\n\tif sp.Host == \"\" {\n\t\treturn nil, errors.Errorf(\"no host specified\")\n\t}\n\tsp.Port = u.Port()\n\tsp.Path = u.Path\n\tif u.RawQuery != \"\" {\n\t\treturn nil, errors.Errorf(\"extra query after the host: %q\", u.RawQuery)\n\t}\n\tif u.Fragment != \"\" {\n\t\treturn nil, errors.Errorf(\"extra fragment after the host: %q\", u.Fragment)\n\t}\n\treturn &sp, err\n}\n\n// Spec of SSH URL\ntype Spec struct {\n\tUser string\n\tHost string\n\tPort string\n\tPath string\n}\n\n// Args returns args except \"ssh\" itself combined with optional additional command args\nfunc (sp *Spec) Args(add ...string) []string {\n\tvar args []string\n\tif sp.User != \"\" {\n\t\targs = append(args, \"-l\", sp.User)\n\t}\n\tif sp.Port != \"\" {\n\t\targs = append(args, \"-p\", sp.Port)\n\t}\n\targs = append(args, \"--\", sp.Host)\n\targs = append(args, add...)\n\treturn args\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/context/docker/constants.go",
    "content": "package docker\n\nconst (\n\t// DockerEndpoint is the name of the docker endpoint in a stored context\n\tDockerEndpoint = \"docker\"\n)\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/context/docker/load.go",
    "content": "package docker\n\nimport (\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"net\"\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/docker/cli/cli/connhelper\"\n\t\"github.com/docker/cli/cli/context\"\n\t\"github.com/docker/cli/cli/context/store\"\n\t\"github.com/docker/docker/client\"\n\t\"github.com/docker/go-connections/tlsconfig\"\n\t\"github.com/pkg/errors\"\n)\n\n// EndpointMeta is a typed wrapper around a context-store generic endpoint describing\n// a Docker Engine endpoint, without its tls config\ntype EndpointMeta = context.EndpointMetaBase\n\n// Endpoint is a typed wrapper around a context-store generic endpoint describing\n// a Docker Engine endpoint, with its tls data\ntype Endpoint struct {\n\tEndpointMeta\n\tTLSData *context.TLSData\n}\n\n// WithTLSData loads TLS materials for the endpoint\nfunc WithTLSData(s store.Reader, contextName string, m EndpointMeta) (Endpoint, error) {\n\ttlsData, err := context.LoadTLSData(s, contextName, DockerEndpoint)\n\tif err != nil {\n\t\treturn Endpoint{}, err\n\t}\n\treturn Endpoint{\n\t\tEndpointMeta: m,\n\t\tTLSData:      tlsData,\n\t}, nil\n}\n\n// tlsConfig extracts a context docker endpoint TLS config\nfunc (ep *Endpoint) tlsConfig() (*tls.Config, error) {\n\tif ep.TLSData == nil && !ep.SkipTLSVerify {\n\t\t// there is no specific tls config\n\t\treturn nil, nil\n\t}\n\tvar tlsOpts []func(*tls.Config)\n\tif ep.TLSData != nil && ep.TLSData.CA != nil {\n\t\tcertPool := x509.NewCertPool()\n\t\tif !certPool.AppendCertsFromPEM(ep.TLSData.CA) {\n\t\t\treturn nil, errors.New(\"failed to retrieve context tls info: ca.pem seems invalid\")\n\t\t}\n\t\ttlsOpts = append(tlsOpts, func(cfg *tls.Config) {\n\t\t\tcfg.RootCAs = certPool\n\t\t})\n\t}\n\tif ep.TLSData != nil && ep.TLSData.Key != nil && ep.TLSData.Cert != nil {\n\t\tkeyBytes := ep.TLSData.Key\n\t\tpemBlock, _ := pem.Decode(keyBytes)\n\t\tif pemBlock == nil {\n\t\t\treturn nil, errors.New(\"no valid private key found\")\n\t\t}\n\t\tif x509.IsEncryptedPEMBlock(pemBlock) { //nolint:staticcheck // SA1019: x509.IsEncryptedPEMBlock is deprecated, and insecure by design\n\t\t\treturn nil, errors.New(\"private key is encrypted - support for encrypted private keys has been removed, see https://docs.docker.com/go/deprecated/\")\n\t\t}\n\n\t\tx509cert, err := tls.X509KeyPair(ep.TLSData.Cert, keyBytes)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrap(err, \"failed to retrieve context tls info\")\n\t\t}\n\t\ttlsOpts = append(tlsOpts, func(cfg *tls.Config) {\n\t\t\tcfg.Certificates = []tls.Certificate{x509cert}\n\t\t})\n\t}\n\tif ep.SkipTLSVerify {\n\t\ttlsOpts = append(tlsOpts, func(cfg *tls.Config) {\n\t\t\tcfg.InsecureSkipVerify = true\n\t\t})\n\t}\n\treturn tlsconfig.ClientDefault(tlsOpts...), nil\n}\n\n// ClientOpts returns a slice of Client options to configure an API client with this endpoint\nfunc (ep *Endpoint) ClientOpts() ([]client.Opt, error) {\n\tvar result []client.Opt\n\tif ep.Host != \"\" {\n\t\thelper, err := connhelper.GetConnectionHelper(ep.Host)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif helper == nil {\n\t\t\ttlsConfig, err := ep.tlsConfig()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tresult = append(result,\n\t\t\t\twithHTTPClient(tlsConfig),\n\t\t\t\tclient.WithHost(ep.Host),\n\t\t\t)\n\t\t} else {\n\t\t\tresult = append(result,\n\t\t\t\tclient.WithHTTPClient(&http.Client{\n\t\t\t\t\t// No TLS, and no proxy.\n\t\t\t\t\tTransport: &http.Transport{\n\t\t\t\t\t\tDialContext: helper.Dialer,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tclient.WithHost(helper.Host),\n\t\t\t\tclient.WithDialContext(helper.Dialer),\n\t\t\t)\n\t\t}\n\t}\n\n\tresult = append(result, client.WithVersionFromEnv(), client.WithAPIVersionNegotiation())\n\treturn result, nil\n}\n\nfunc withHTTPClient(tlsConfig *tls.Config) func(*client.Client) error {\n\treturn func(c *client.Client) error {\n\t\tif tlsConfig == nil {\n\t\t\t// Use the default HTTPClient\n\t\t\treturn nil\n\t\t}\n\t\treturn client.WithHTTPClient(&http.Client{\n\t\t\tTransport: &http.Transport{\n\t\t\t\tTLSClientConfig: tlsConfig,\n\t\t\t\tDialContext: (&net.Dialer{\n\t\t\t\t\tKeepAlive: 30 * time.Second,\n\t\t\t\t\tTimeout:   30 * time.Second,\n\t\t\t\t}).DialContext,\n\t\t\t},\n\t\t\tCheckRedirect: client.CheckRedirect,\n\t\t})(c)\n\t}\n}\n\n// EndpointFromContext parses a context docker endpoint metadata into a typed EndpointMeta structure\nfunc EndpointFromContext(metadata store.Metadata) (EndpointMeta, error) {\n\tep, ok := metadata.Endpoints[DockerEndpoint]\n\tif !ok {\n\t\treturn EndpointMeta{}, errors.New(\"cannot find docker endpoint in context\")\n\t}\n\ttyped, ok := ep.(EndpointMeta)\n\tif !ok {\n\t\treturn EndpointMeta{}, errors.Errorf(\"endpoint %q is not of type EndpointMeta\", DockerEndpoint)\n\t}\n\treturn typed, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/context/endpoint.go",
    "content": "package context\n\n// EndpointMetaBase contains fields we expect to be common for most context endpoints\ntype EndpointMetaBase struct {\n\tHost          string `json:\",omitempty\"`\n\tSkipTLSVerify bool\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/context/store/doc.go",
    "content": "// Package store provides a generic way to store credentials to connect to\n// virtually any kind of remote system.\n// The term `context` comes from the similar feature in Kubernetes kubectl\n// config files.\n//\n// Conceptually, a context is a set of metadata and TLS data, that can be used\n// to connect to various endpoints of a remote system. TLS data and metadata\n// are stored separately, so that in the future, we will be able to store\n// sensitive information in a more secure way, depending on the os we are running\n// on (e.g.: on Windows we could use the user Certificate Store, on macOS the\n// user Keychain...).\n//\n// Current implementation is purely file based with the following structure:\n//\n//\t${CONTEXT_ROOT}\n//\t  meta/\n//\t    <context id>/meta.json: contains context medata (key/value pairs) as\n//\t                            well as a list of endpoints (themselves containing\n//\t                            key/value pair metadata).\n//\t  tls/\n//\t    <context id>/endpoint1/: directory containing TLS data for the endpoint1\n//\t                             in the corresponding context.\n//\n// The context store itself has absolutely no knowledge about what a docker\n// endpoint should contain in term of metadata or TLS config. Client code is\n// responsible for generating and parsing endpoint metadata and TLS files. The\n// multi-endpoints approach of this package allows to combine many different\n// endpoints in the same \"context\".\n//\n// Context IDs are actually SHA256 hashes of the context name, and are there\n// only to avoid dealing with special characters in context names.\npackage store\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/context/store/io_utils.go",
    "content": "package store\n\nimport (\n\t\"errors\"\n\t\"io\"\n)\n\n// LimitedReader is a fork of io.LimitedReader to override Read.\ntype LimitedReader struct {\n\tR io.Reader\n\tN int64 // max bytes remaining\n}\n\n// Read is a fork of io.LimitedReader.Read that returns an error when limit exceeded.\nfunc (l *LimitedReader) Read(p []byte) (n int, err error) {\n\tif l.N < 0 {\n\t\treturn 0, errors.New(\"read exceeds the defined limit\")\n\t}\n\tif l.N == 0 {\n\t\treturn 0, io.EOF\n\t}\n\t// have to cap N + 1 otherwise we won't hit limit err\n\tif int64(len(p)) > l.N+1 {\n\t\tp = p[0 : l.N+1]\n\t}\n\tn, err = l.R.Read(p)\n\tl.N -= int64(n)\n\treturn n, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/context/store/metadatastore.go",
    "content": "// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:\n//go:build go1.21\n\npackage store\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"sort\"\n\n\t\"github.com/docker/docker/errdefs\"\n\t\"github.com/docker/docker/pkg/ioutils\"\n\t\"github.com/fvbommel/sortorder\"\n\t\"github.com/pkg/errors\"\n)\n\nconst (\n\tmetadataDir = \"meta\"\n\tmetaFile    = \"meta.json\"\n)\n\ntype metadataStore struct {\n\troot   string\n\tconfig Config\n}\n\nfunc (s *metadataStore) contextDir(id contextdir) string {\n\treturn filepath.Join(s.root, string(id))\n}\n\nfunc (s *metadataStore) createOrUpdate(meta Metadata) error {\n\tcontextDir := s.contextDir(contextdirOf(meta.Name))\n\tif err := os.MkdirAll(contextDir, 0o755); err != nil {\n\t\treturn err\n\t}\n\tbytes, err := json.Marshal(&meta)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn ioutils.AtomicWriteFile(filepath.Join(contextDir, metaFile), bytes, 0o644)\n}\n\nfunc parseTypedOrMap(payload []byte, getter TypeGetter) (any, error) {\n\tif len(payload) == 0 || string(payload) == \"null\" {\n\t\treturn nil, nil\n\t}\n\tif getter == nil {\n\t\tvar res map[string]any\n\t\tif err := json.Unmarshal(payload, &res); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn res, nil\n\t}\n\ttyped := getter()\n\tif err := json.Unmarshal(payload, typed); err != nil {\n\t\treturn nil, err\n\t}\n\treturn reflect.ValueOf(typed).Elem().Interface(), nil\n}\n\nfunc (s *metadataStore) get(name string) (Metadata, error) {\n\tm, err := s.getByID(contextdirOf(name))\n\tif err != nil {\n\t\treturn m, errors.Wrapf(err, \"context %q\", name)\n\t}\n\treturn m, nil\n}\n\nfunc (s *metadataStore) getByID(id contextdir) (Metadata, error) {\n\tfileName := filepath.Join(s.contextDir(id), metaFile)\n\tbytes, err := os.ReadFile(fileName)\n\tif err != nil {\n\t\tif errors.Is(err, os.ErrNotExist) {\n\t\t\treturn Metadata{}, errdefs.NotFound(errors.Wrap(err, \"context not found\"))\n\t\t}\n\t\treturn Metadata{}, err\n\t}\n\tvar untyped untypedContextMetadata\n\tr := Metadata{\n\t\tEndpoints: make(map[string]any),\n\t}\n\tif err := json.Unmarshal(bytes, &untyped); err != nil {\n\t\treturn Metadata{}, fmt.Errorf(\"parsing %s: %v\", fileName, err)\n\t}\n\tr.Name = untyped.Name\n\tif r.Metadata, err = parseTypedOrMap(untyped.Metadata, s.config.contextType); err != nil {\n\t\treturn Metadata{}, fmt.Errorf(\"parsing %s: %v\", fileName, err)\n\t}\n\tfor k, v := range untyped.Endpoints {\n\t\tif r.Endpoints[k], err = parseTypedOrMap(v, s.config.endpointTypes[k]); err != nil {\n\t\t\treturn Metadata{}, fmt.Errorf(\"parsing %s: %v\", fileName, err)\n\t\t}\n\t}\n\treturn r, err\n}\n\nfunc (s *metadataStore) remove(name string) error {\n\tif err := os.RemoveAll(s.contextDir(contextdirOf(name))); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to remove metadata\")\n\t}\n\treturn nil\n}\n\nfunc (s *metadataStore) list() ([]Metadata, error) {\n\tctxDirs, err := listRecursivelyMetadataDirs(s.root)\n\tif err != nil {\n\t\tif errors.Is(err, os.ErrNotExist) {\n\t\t\treturn nil, nil\n\t\t}\n\t\treturn nil, err\n\t}\n\tres := make([]Metadata, 0, len(ctxDirs))\n\tfor _, dir := range ctxDirs {\n\t\tc, err := s.getByID(contextdir(dir))\n\t\tif err != nil {\n\t\t\tif errors.Is(err, os.ErrNotExist) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn nil, errors.Wrap(err, \"failed to read metadata\")\n\t\t}\n\t\tres = append(res, c)\n\t}\n\tsort.Slice(res, func(i, j int) bool {\n\t\treturn sortorder.NaturalLess(res[i].Name, res[j].Name)\n\t})\n\treturn res, nil\n}\n\nfunc isContextDir(path string) bool {\n\ts, err := os.Stat(filepath.Join(path, metaFile))\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn !s.IsDir()\n}\n\nfunc listRecursivelyMetadataDirs(root string) ([]string, error) {\n\tfis, err := os.ReadDir(root)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar result []string\n\tfor _, fi := range fis {\n\t\tif fi.IsDir() {\n\t\t\tif isContextDir(filepath.Join(root, fi.Name())) {\n\t\t\t\tresult = append(result, fi.Name())\n\t\t\t}\n\t\t\tsubs, err := listRecursivelyMetadataDirs(filepath.Join(root, fi.Name()))\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tfor _, s := range subs {\n\t\t\t\tresult = append(result, filepath.Join(fi.Name(), s))\n\t\t\t}\n\t\t}\n\t}\n\treturn result, nil\n}\n\ntype untypedContextMetadata struct {\n\tMetadata  json.RawMessage            `json:\"metadata,omitempty\"`\n\tEndpoints map[string]json.RawMessage `json:\"endpoints,omitempty\"`\n\tName      string                     `json:\"name,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/context/store/store.go",
    "content": "// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:\n//go:build go1.21\n\npackage store\n\nimport (\n\t\"archive/tar\"\n\t\"archive/zip\"\n\t\"bufio\"\n\t\"bytes\"\n\t_ \"crypto/sha256\" // ensure ids can be computed\n\t\"encoding/json\"\n\t\"io\"\n\t\"net/http\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"regexp\"\n\t\"strings\"\n\n\t\"github.com/docker/docker/errdefs\"\n\t\"github.com/opencontainers/go-digest\"\n\t\"github.com/pkg/errors\"\n)\n\nconst restrictedNamePattern = \"^[a-zA-Z0-9][a-zA-Z0-9_.+-]+$\"\n\nvar restrictedNameRegEx = regexp.MustCompile(restrictedNamePattern)\n\n// Store provides a context store for easily remembering endpoints configuration\ntype Store interface {\n\tReader\n\tLister\n\tWriter\n\tStorageInfoProvider\n}\n\n// Reader provides read-only (without list) access to context data\ntype Reader interface {\n\tGetMetadata(name string) (Metadata, error)\n\tListTLSFiles(name string) (map[string]EndpointFiles, error)\n\tGetTLSData(contextName, endpointName, fileName string) ([]byte, error)\n}\n\n// Lister provides listing of contexts\ntype Lister interface {\n\tList() ([]Metadata, error)\n}\n\n// ReaderLister combines Reader and Lister interfaces\ntype ReaderLister interface {\n\tReader\n\tLister\n}\n\n// StorageInfoProvider provides more information about storage details of contexts\ntype StorageInfoProvider interface {\n\tGetStorageInfo(contextName string) StorageInfo\n}\n\n// Writer provides write access to context data\ntype Writer interface {\n\tCreateOrUpdate(meta Metadata) error\n\tRemove(name string) error\n\tResetTLSMaterial(name string, data *ContextTLSData) error\n\tResetEndpointTLSMaterial(contextName string, endpointName string, data *EndpointTLSData) error\n}\n\n// ReaderWriter combines Reader and Writer interfaces\ntype ReaderWriter interface {\n\tReader\n\tWriter\n}\n\n// Metadata contains metadata about a context and its endpoints\ntype Metadata struct {\n\tName      string         `json:\",omitempty\"`\n\tMetadata  any            `json:\",omitempty\"`\n\tEndpoints map[string]any `json:\",omitempty\"`\n}\n\n// StorageInfo contains data about where a given context is stored\ntype StorageInfo struct {\n\tMetadataPath string\n\tTLSPath      string\n}\n\n// EndpointTLSData represents tls data for a given endpoint\ntype EndpointTLSData struct {\n\tFiles map[string][]byte\n}\n\n// ContextTLSData represents tls data for a whole context\ntype ContextTLSData struct {\n\tEndpoints map[string]EndpointTLSData\n}\n\n// New creates a store from a given directory.\n// If the directory does not exist or is empty, initialize it\nfunc New(dir string, cfg Config) *ContextStore {\n\tmetaRoot := filepath.Join(dir, metadataDir)\n\ttlsRoot := filepath.Join(dir, tlsDir)\n\n\treturn &ContextStore{\n\t\tmeta: &metadataStore{\n\t\t\troot:   metaRoot,\n\t\t\tconfig: cfg,\n\t\t},\n\t\ttls: &tlsStore{\n\t\t\troot: tlsRoot,\n\t\t},\n\t}\n}\n\n// ContextStore implements Store.\ntype ContextStore struct {\n\tmeta *metadataStore\n\ttls  *tlsStore\n}\n\n// List return all contexts.\nfunc (s *ContextStore) List() ([]Metadata, error) {\n\treturn s.meta.list()\n}\n\n// Names return Metadata names for a Lister\nfunc Names(s Lister) ([]string, error) {\n\tif s == nil {\n\t\treturn nil, errors.New(\"nil lister\")\n\t}\n\tlist, err := s.List()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tnames := make([]string, 0, len(list))\n\tfor _, item := range list {\n\t\tnames = append(names, item.Name)\n\t}\n\treturn names, nil\n}\n\n// CreateOrUpdate creates or updates metadata for the context.\nfunc (s *ContextStore) CreateOrUpdate(meta Metadata) error {\n\treturn s.meta.createOrUpdate(meta)\n}\n\n// Remove deletes the context with the given name, if found.\nfunc (s *ContextStore) Remove(name string) error {\n\tif err := s.meta.remove(name); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to remove context %s\", name)\n\t}\n\tif err := s.tls.remove(name); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to remove context %s\", name)\n\t}\n\treturn nil\n}\n\n// GetMetadata returns the metadata for the context with the given name.\n// It returns an errdefs.ErrNotFound if the context was not found.\nfunc (s *ContextStore) GetMetadata(name string) (Metadata, error) {\n\treturn s.meta.get(name)\n}\n\n// ResetTLSMaterial removes TLS data for all endpoints in the context and replaces\n// it with the new data.\nfunc (s *ContextStore) ResetTLSMaterial(name string, data *ContextTLSData) error {\n\tif err := s.tls.remove(name); err != nil {\n\t\treturn err\n\t}\n\tif data == nil {\n\t\treturn nil\n\t}\n\tfor ep, files := range data.Endpoints {\n\t\tfor fileName, data := range files.Files {\n\t\t\tif err := s.tls.createOrUpdate(name, ep, fileName, data); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// ResetEndpointTLSMaterial removes TLS data for the given context and endpoint,\n// and replaces it with the new data.\nfunc (s *ContextStore) ResetEndpointTLSMaterial(contextName string, endpointName string, data *EndpointTLSData) error {\n\tif err := s.tls.removeEndpoint(contextName, endpointName); err != nil {\n\t\treturn err\n\t}\n\tif data == nil {\n\t\treturn nil\n\t}\n\tfor fileName, data := range data.Files {\n\t\tif err := s.tls.createOrUpdate(contextName, endpointName, fileName, data); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// ListTLSFiles returns the list of TLS files present for each endpoint in the\n// context.\nfunc (s *ContextStore) ListTLSFiles(name string) (map[string]EndpointFiles, error) {\n\treturn s.tls.listContextData(name)\n}\n\n// GetTLSData reads, and returns the content of the given fileName for an endpoint.\n// It returns an errdefs.ErrNotFound if the file was not found.\nfunc (s *ContextStore) GetTLSData(contextName, endpointName, fileName string) ([]byte, error) {\n\treturn s.tls.getData(contextName, endpointName, fileName)\n}\n\n// GetStorageInfo returns the paths where the Metadata and TLS data are stored\n// for the context.\nfunc (s *ContextStore) GetStorageInfo(contextName string) StorageInfo {\n\treturn StorageInfo{\n\t\tMetadataPath: s.meta.contextDir(contextdirOf(contextName)),\n\t\tTLSPath:      s.tls.contextDir(contextName),\n\t}\n}\n\n// ValidateContextName checks a context name is valid.\nfunc ValidateContextName(name string) error {\n\tif name == \"\" {\n\t\treturn errors.New(\"context name cannot be empty\")\n\t}\n\tif name == \"default\" {\n\t\treturn errors.New(`\"default\" is a reserved context name`)\n\t}\n\tif !restrictedNameRegEx.MatchString(name) {\n\t\treturn errors.Errorf(\"context name %q is invalid, names are validated against regexp %q\", name, restrictedNamePattern)\n\t}\n\treturn nil\n}\n\n// Export exports an existing namespace into an opaque data stream\n// This stream is actually a tarball containing context metadata and TLS materials, but it does\n// not map 1:1 the layout of the context store (don't try to restore it manually without calling store.Import)\nfunc Export(name string, s Reader) io.ReadCloser {\n\treader, writer := io.Pipe()\n\tgo func() {\n\t\ttw := tar.NewWriter(writer)\n\t\tdefer tw.Close()\n\t\tdefer writer.Close()\n\t\tmeta, err := s.GetMetadata(name)\n\t\tif err != nil {\n\t\t\twriter.CloseWithError(err)\n\t\t\treturn\n\t\t}\n\t\tmetaBytes, err := json.Marshal(&meta)\n\t\tif err != nil {\n\t\t\twriter.CloseWithError(err)\n\t\t\treturn\n\t\t}\n\t\tif err = tw.WriteHeader(&tar.Header{\n\t\t\tName: metaFile,\n\t\t\tMode: 0o644,\n\t\t\tSize: int64(len(metaBytes)),\n\t\t}); err != nil {\n\t\t\twriter.CloseWithError(err)\n\t\t\treturn\n\t\t}\n\t\tif _, err = tw.Write(metaBytes); err != nil {\n\t\t\twriter.CloseWithError(err)\n\t\t\treturn\n\t\t}\n\t\ttlsFiles, err := s.ListTLSFiles(name)\n\t\tif err != nil {\n\t\t\twriter.CloseWithError(err)\n\t\t\treturn\n\t\t}\n\t\tif err = tw.WriteHeader(&tar.Header{\n\t\t\tName:     \"tls\",\n\t\t\tMode:     0o700,\n\t\t\tSize:     0,\n\t\t\tTypeflag: tar.TypeDir,\n\t\t}); err != nil {\n\t\t\twriter.CloseWithError(err)\n\t\t\treturn\n\t\t}\n\t\tfor endpointName, endpointFiles := range tlsFiles {\n\t\t\tif err = tw.WriteHeader(&tar.Header{\n\t\t\t\tName:     path.Join(\"tls\", endpointName),\n\t\t\t\tMode:     0o700,\n\t\t\t\tSize:     0,\n\t\t\t\tTypeflag: tar.TypeDir,\n\t\t\t}); err != nil {\n\t\t\t\twriter.CloseWithError(err)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tfor _, fileName := range endpointFiles {\n\t\t\t\tdata, err := s.GetTLSData(name, endpointName, fileName)\n\t\t\t\tif err != nil {\n\t\t\t\t\twriter.CloseWithError(err)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif err = tw.WriteHeader(&tar.Header{\n\t\t\t\t\tName: path.Join(\"tls\", endpointName, fileName),\n\t\t\t\t\tMode: 0o600,\n\t\t\t\t\tSize: int64(len(data)),\n\t\t\t\t}); err != nil {\n\t\t\t\t\twriter.CloseWithError(err)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif _, err = tw.Write(data); err != nil {\n\t\t\t\t\twriter.CloseWithError(err)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}()\n\treturn reader\n}\n\nconst (\n\tmaxAllowedFileSizeToImport int64  = 10 << 20\n\tzipType                    string = \"application/zip\"\n)\n\nfunc getImportContentType(r *bufio.Reader) (string, error) {\n\thead, err := r.Peek(512)\n\tif err != nil && err != io.EOF {\n\t\treturn \"\", err\n\t}\n\n\treturn http.DetectContentType(head), nil\n}\n\n// Import imports an exported context into a store\nfunc Import(name string, s Writer, reader io.Reader) error {\n\t// Buffered reader will not advance the buffer, needed to determine content type\n\tr := bufio.NewReader(reader)\n\n\timportContentType, err := getImportContentType(r)\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch importContentType {\n\tcase zipType:\n\t\treturn importZip(name, s, r)\n\tdefault:\n\t\t// Assume it's a TAR (TAR does not have a \"magic number\")\n\t\treturn importTar(name, s, r)\n\t}\n}\n\nfunc isValidFilePath(p string) error {\n\tif p != metaFile && !strings.HasPrefix(p, \"tls/\") {\n\t\treturn errors.New(\"unexpected context file\")\n\t}\n\tif path.Clean(p) != p {\n\t\treturn errors.New(\"unexpected path format\")\n\t}\n\tif strings.Contains(p, `\\`) {\n\t\treturn errors.New(`unexpected '\\' in path`)\n\t}\n\treturn nil\n}\n\nfunc importTar(name string, s Writer, reader io.Reader) error {\n\ttr := tar.NewReader(&LimitedReader{R: reader, N: maxAllowedFileSizeToImport})\n\ttlsData := ContextTLSData{\n\t\tEndpoints: map[string]EndpointTLSData{},\n\t}\n\tvar importedMetaFile bool\n\tfor {\n\t\thdr, err := tr.Next()\n\t\tif err == io.EOF {\n\t\t\tbreak\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif hdr.Typeflag != tar.TypeReg {\n\t\t\t// skip this entry, only taking files into account\n\t\t\tcontinue\n\t\t}\n\t\tif err := isValidFilePath(hdr.Name); err != nil {\n\t\t\treturn errors.Wrap(err, hdr.Name)\n\t\t}\n\t\tif hdr.Name == metaFile {\n\t\t\tdata, err := io.ReadAll(tr)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tmeta, err := parseMetadata(data, name)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := s.CreateOrUpdate(meta); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\timportedMetaFile = true\n\t\t} else if strings.HasPrefix(hdr.Name, \"tls/\") {\n\t\t\tdata, err := io.ReadAll(tr)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := importEndpointTLS(&tlsData, hdr.Name, data); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\tif !importedMetaFile {\n\t\treturn errdefs.InvalidParameter(errors.New(\"invalid context: no metadata found\"))\n\t}\n\treturn s.ResetTLSMaterial(name, &tlsData)\n}\n\nfunc importZip(name string, s Writer, reader io.Reader) error {\n\tbody, err := io.ReadAll(&LimitedReader{R: reader, N: maxAllowedFileSizeToImport})\n\tif err != nil {\n\t\treturn err\n\t}\n\tzr, err := zip.NewReader(bytes.NewReader(body), int64(len(body)))\n\tif err != nil {\n\t\treturn err\n\t}\n\ttlsData := ContextTLSData{\n\t\tEndpoints: map[string]EndpointTLSData{},\n\t}\n\n\tvar importedMetaFile bool\n\tfor _, zf := range zr.File {\n\t\tfi := zf.FileInfo()\n\t\tif !fi.Mode().IsRegular() {\n\t\t\t// skip this entry, only taking regular files into account\n\t\t\tcontinue\n\t\t}\n\t\tif err := isValidFilePath(zf.Name); err != nil {\n\t\t\treturn errors.Wrap(err, zf.Name)\n\t\t}\n\t\tif zf.Name == metaFile {\n\t\t\tf, err := zf.Open()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tdata, err := io.ReadAll(&LimitedReader{R: f, N: maxAllowedFileSizeToImport})\n\t\t\tdefer f.Close()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tmeta, err := parseMetadata(data, name)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := s.CreateOrUpdate(meta); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\timportedMetaFile = true\n\t\t} else if strings.HasPrefix(zf.Name, \"tls/\") {\n\t\t\tf, err := zf.Open()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdata, err := io.ReadAll(f)\n\t\t\tdefer f.Close()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\terr = importEndpointTLS(&tlsData, zf.Name, data)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\tif !importedMetaFile {\n\t\treturn errdefs.InvalidParameter(errors.New(\"invalid context: no metadata found\"))\n\t}\n\treturn s.ResetTLSMaterial(name, &tlsData)\n}\n\nfunc parseMetadata(data []byte, name string) (Metadata, error) {\n\tvar meta Metadata\n\tif err := json.Unmarshal(data, &meta); err != nil {\n\t\treturn meta, err\n\t}\n\tif err := ValidateContextName(name); err != nil {\n\t\treturn Metadata{}, err\n\t}\n\tmeta.Name = name\n\treturn meta, nil\n}\n\nfunc importEndpointTLS(tlsData *ContextTLSData, tlsPath string, data []byte) error {\n\tparts := strings.SplitN(strings.TrimPrefix(tlsPath, \"tls/\"), \"/\", 2)\n\tif len(parts) != 2 {\n\t\t// TLS endpoints require archived file directory with 2 layers\n\t\t// i.e. tls/{endpointName}/{fileName}\n\t\treturn errors.New(\"archive format is invalid\")\n\t}\n\n\tepName := parts[0]\n\tfileName := parts[1]\n\tif _, ok := tlsData.Endpoints[epName]; !ok {\n\t\ttlsData.Endpoints[epName] = EndpointTLSData{\n\t\t\tFiles: map[string][]byte{},\n\t\t}\n\t}\n\ttlsData.Endpoints[epName].Files[fileName] = data\n\treturn nil\n}\n\ntype contextdir string\n\nfunc contextdirOf(name string) contextdir {\n\treturn contextdir(digest.FromString(name).Encoded())\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/context/store/storeconfig.go",
    "content": "// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:\n//go:build go1.21\n\npackage store\n\n// TypeGetter is a func used to determine the concrete type of a context or\n// endpoint metadata by returning a pointer to an instance of the object\n// eg: for a context of type DockerContext, the corresponding TypeGetter should return new(DockerContext)\ntype TypeGetter func() any\n\n// NamedTypeGetter is a TypeGetter associated with a name\ntype NamedTypeGetter struct {\n\tname       string\n\ttypeGetter TypeGetter\n}\n\n// EndpointTypeGetter returns a NamedTypeGetter with the specified name and getter\nfunc EndpointTypeGetter(name string, getter TypeGetter) NamedTypeGetter {\n\treturn NamedTypeGetter{\n\t\tname:       name,\n\t\ttypeGetter: getter,\n\t}\n}\n\n// Config is used to configure the metadata marshaler of the context ContextStore\ntype Config struct {\n\tcontextType   TypeGetter\n\tendpointTypes map[string]TypeGetter\n}\n\n// SetEndpoint set an endpoint typing information\nfunc (c Config) SetEndpoint(name string, getter TypeGetter) {\n\tc.endpointTypes[name] = getter\n}\n\n// ForeachEndpointType calls cb on every endpoint type registered with the Config\nfunc (c Config) ForeachEndpointType(cb func(string, TypeGetter) error) error {\n\tfor n, ep := range c.endpointTypes {\n\t\tif err := cb(n, ep); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// NewConfig creates a config object\nfunc NewConfig(contextType TypeGetter, endpoints ...NamedTypeGetter) Config {\n\tres := Config{\n\t\tcontextType:   contextType,\n\t\tendpointTypes: make(map[string]TypeGetter),\n\t}\n\tfor _, e := range endpoints {\n\t\tres.endpointTypes[e.name] = e.typeGetter\n\t}\n\treturn res\n}\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/context/store/tlsstore.go",
    "content": "package store\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/docker/docker/errdefs\"\n\t\"github.com/docker/docker/pkg/ioutils\"\n\t\"github.com/pkg/errors\"\n)\n\nconst tlsDir = \"tls\"\n\ntype tlsStore struct {\n\troot string\n}\n\nfunc (s *tlsStore) contextDir(name string) string {\n\treturn filepath.Join(s.root, string(contextdirOf(name)))\n}\n\nfunc (s *tlsStore) endpointDir(name, endpointName string) string {\n\treturn filepath.Join(s.contextDir(name), endpointName)\n}\n\nfunc (s *tlsStore) createOrUpdate(name, endpointName, filename string, data []byte) error {\n\tparentOfRoot := filepath.Dir(s.root)\n\tif err := os.MkdirAll(parentOfRoot, 0o755); err != nil {\n\t\treturn err\n\t}\n\tendpointDir := s.endpointDir(name, endpointName)\n\tif err := os.MkdirAll(endpointDir, 0o700); err != nil {\n\t\treturn err\n\t}\n\treturn ioutils.AtomicWriteFile(filepath.Join(endpointDir, filename), data, 0o600)\n}\n\nfunc (s *tlsStore) getData(name, endpointName, filename string) ([]byte, error) {\n\tdata, err := os.ReadFile(filepath.Join(s.endpointDir(name, endpointName), filename))\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn nil, errdefs.NotFound(errors.Errorf(\"TLS data for %s/%s/%s does not exist\", name, endpointName, filename))\n\t\t}\n\t\treturn nil, errors.Wrapf(err, \"failed to read TLS data for endpoint %s\", endpointName)\n\t}\n\treturn data, nil\n}\n\n// remove deletes all TLS data for the given context.\nfunc (s *tlsStore) remove(name string) error {\n\tif err := os.RemoveAll(s.contextDir(name)); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to remove TLS data\")\n\t}\n\treturn nil\n}\n\nfunc (s *tlsStore) removeEndpoint(name, endpointName string) error {\n\tif err := os.RemoveAll(s.endpointDir(name, endpointName)); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to remove TLS data for endpoint %s\", endpointName)\n\t}\n\treturn nil\n}\n\nfunc (s *tlsStore) listContextData(name string) (map[string]EndpointFiles, error) {\n\tcontextDir := s.contextDir(name)\n\tepFSs, err := os.ReadDir(contextDir)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn map[string]EndpointFiles{}, nil\n\t\t}\n\t\treturn nil, errors.Wrapf(err, \"failed to list TLS files for context %s\", name)\n\t}\n\tr := make(map[string]EndpointFiles)\n\tfor _, epFS := range epFSs {\n\t\tif epFS.IsDir() {\n\t\t\tfss, err := os.ReadDir(filepath.Join(contextDir, epFS.Name()))\n\t\t\tif os.IsNotExist(err) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to list TLS files for endpoint %s\", epFS.Name())\n\t\t\t}\n\t\t\tvar files EndpointFiles\n\t\t\tfor _, fs := range fss {\n\t\t\t\tif !fs.IsDir() {\n\t\t\t\t\tfiles = append(files, fs.Name())\n\t\t\t\t}\n\t\t\t}\n\t\t\tr[epFS.Name()] = files\n\t\t}\n\t}\n\treturn r, nil\n}\n\n// EndpointFiles is a slice of strings representing file names\ntype EndpointFiles []string\n"
  },
  {
    "path": "vendor/github.com/docker/cli/cli/context/tlsdata.go",
    "content": "package context\n\nimport (\n\t\"os\"\n\n\t\"github.com/docker/cli/cli/context/store\"\n\t\"github.com/pkg/errors\"\n\t\"github.com/sirupsen/logrus\"\n)\n\nconst (\n\tcaKey   = \"ca.pem\"\n\tcertKey = \"cert.pem\"\n\tkeyKey  = \"key.pem\"\n)\n\n// TLSData holds ca/cert/key raw data\ntype TLSData struct {\n\tCA   []byte\n\tKey  []byte\n\tCert []byte\n}\n\n// ToStoreTLSData converts TLSData to the store representation\nfunc (data *TLSData) ToStoreTLSData() *store.EndpointTLSData {\n\tif data == nil {\n\t\treturn nil\n\t}\n\tresult := store.EndpointTLSData{\n\t\tFiles: make(map[string][]byte),\n\t}\n\tif data.CA != nil {\n\t\tresult.Files[caKey] = data.CA\n\t}\n\tif data.Cert != nil {\n\t\tresult.Files[certKey] = data.Cert\n\t}\n\tif data.Key != nil {\n\t\tresult.Files[keyKey] = data.Key\n\t}\n\treturn &result\n}\n\n// LoadTLSData loads TLS data from the store\nfunc LoadTLSData(s store.Reader, contextName, endpointName string) (*TLSData, error) {\n\ttlsFiles, err := s.ListTLSFiles(contextName)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to retrieve TLS files for context %q\", contextName)\n\t}\n\tif epTLSFiles, ok := tlsFiles[endpointName]; ok {\n\t\tvar tlsData TLSData\n\t\tfor _, f := range epTLSFiles {\n\t\t\tdata, err := s.GetTLSData(contextName, endpointName, f)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to retrieve TLS data (%s) for context %q\", f, contextName)\n\t\t\t}\n\t\t\tswitch f {\n\t\t\tcase caKey:\n\t\t\t\ttlsData.CA = data\n\t\t\tcase certKey:\n\t\t\t\ttlsData.Cert = data\n\t\t\tcase keyKey:\n\t\t\t\ttlsData.Key = data\n\t\t\tdefault:\n\t\t\t\tlogrus.Warnf(\"unknown file in context %s TLS bundle: %s\", contextName, f)\n\t\t\t}\n\t\t}\n\t\treturn &tlsData, nil\n\t}\n\treturn nil, nil\n}\n\n// TLSDataFromFiles reads files into a TLSData struct (or returns nil if all paths are empty)\nfunc TLSDataFromFiles(caPath, certPath, keyPath string) (*TLSData, error) {\n\tvar (\n\t\tca, cert, key []byte\n\t\terr           error\n\t)\n\tif caPath != \"\" {\n\t\tif ca, err = os.ReadFile(caPath); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif certPath != \"\" {\n\t\tif cert, err = os.ReadFile(certPath); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif keyPath != \"\" {\n\t\tif key, err = os.ReadFile(keyPath); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif ca == nil && cert == nil && key == nil {\n\t\treturn nil, nil\n\t}\n\treturn &TLSData{CA: ca, Cert: cert, Key: key}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/AUTHORS",
    "content": "# File @generated by hack/generate-authors.sh. DO NOT EDIT.\n# This file lists all contributors to the repository.\n# See hack/generate-authors.sh to make modifications.\n\n17neverends <ionianrise@gmail.com>\n7sunarni <710720732@qq.com>\nAanand Prasad <aanand.prasad@gmail.com>\nAarni Koskela <akx@iki.fi>\nAaron Davidson <aaron@databricks.com>\nAaron Feng <aaron.feng@gmail.com>\nAaron Hnatiw <aaron@griddio.com>\nAaron Huslage <huslage@gmail.com>\nAaron L. Xu <liker.xu@foxmail.com>\nAaron Lehmann <alehmann@netflix.com>\nAaron Welch <welch@packet.net>\nAaron Yoshitake <airandfingers@gmail.com>\nAbdur Rehman <abdur_rehman@mentor.com>\nAbel Muiño <amuino@gmail.com>\nAbhijeet Kasurde <akasurde@redhat.com>\nAbhinandan Prativadi <aprativadi@gmail.com>\nAbhinav Ajgaonkar <abhinav316@gmail.com>\nAbhishek Chanda <abhishek.becs@gmail.com>\nAbhishek Sharma <abhishek@asharma.me>\nAbin Shahab <ashahab@altiscale.com>\nAbirdcfly <fp544037857@gmail.com>\nAda Mancini <ada@docker.com>\nAdam Avilla <aavilla@yp.com>\nAdam Dobrawy <naczelnik@jawnosc.tk>\nAdam Eijdenberg <adam.eijdenberg@gmail.com>\nAdam Kunk <adam.kunk@tiaa-cref.org>\nAdam Lamers <adam.lamers@wmsdev.pl>\nAdam Miller <admiller@redhat.com>\nAdam Mills <adam@armills.info>\nAdam Pointer <adam.pointer@skybettingandgaming.com>\nAdam Simon <adamsimon85100@gmail.com>\nAdam Singer <financeCoding@gmail.com>\nAdam Thornton <adam.thornton@maryville.com>\nAdam Walz <adam@adamwalz.net>\nAdam Williams <awilliams@mirantis.com>\nAdamKorcz <adam@adalogics.com>\nAddam Hardy <addam.hardy@gmail.com>\nAditi Rajagopal <arajagopal@us.ibm.com>\nAditya <aditya@netroy.in>\nAdnan Khan <adnkha@amazon.com>\nAdolfo Ochagavía <aochagavia92@gmail.com>\nAdria Casas <adriacasas88@gmail.com>\nAdrian Moisey <adrian@changeover.za.net>\nAdrian Mouat <adrian.mouat@gmail.com>\nAdrian Oprea <adrian@codesi.nz>\nAdrien Folie <folie.adrien@gmail.com>\nAdrien Gallouët <adrien@gallouet.fr>\nAhmed Kamal <email.ahmedkamal@googlemail.com>\nAhmet Alp Balkan <ahmetb@microsoft.com>\nAidan Feldman <aidan.feldman@gmail.com>\nAidan Hobson Sayers <aidanhs@cantab.net>\nAJ Bowen <aj@soulshake.net>\nAjey Charantimath <ajey.charantimath@gmail.com>\najneu <ajneu@users.noreply.github.com>\nAkash Gupta <akagup@microsoft.com>\nAkhil Mohan <akhil.mohan@mayadata.io>\nAkihiro Matsushima <amatsusbit@gmail.com>\nAkihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>\nAkim Demaille <akim.demaille@docker.com>\nAkira Koyasu <mail@akirakoyasu.net>\nAkshay Karle <akshay.a.karle@gmail.com>\nAkshay Moghe <akshay.moghe@gmail.com>\nAl Tobey <al@ooyala.com>\nalambike <alambike@gmail.com>\nAlan Hoyle <alan@alanhoyle.com>\nAlan Scherger <flyinprogrammer@gmail.com>\nAlan Thompson <cloojure@gmail.com>\nAlano Terblanche <alano.terblanche@docker.com>\nAlbert Callarisa <shark234@gmail.com>\nAlbert Zhang <zhgwenming@gmail.com>\nAlbin Kerouanton <albinker@gmail.com>\nAlec Benson <albenson@redhat.com>\nAlejandro González Hevia <alejandrgh11@gmail.com>\nAleksa Sarai <asarai@suse.de>\nAleksandr Chebotov <v-aleche@microsoft.com>\nAleksandrs Fadins <aleks@s-ko.net>\nAlena Prokharchyk <alena@rancher.com>\nAlessandro Boch <aboch@tetrationanalytics.com>\nAlessio Biancalana <dottorblaster@gmail.com>\nAlex Chan <alex@alexwlchan.net>\nAlex Chen <alexchenunix@gmail.com>\nAlex Coventry <alx@empirical.com>\nAlex Crawford <alex.crawford@coreos.com>\nAlex Ellis <alexellis2@gmail.com>\nAlex Gaynor <alex.gaynor@gmail.com>\nAlex Goodman <wagoodman@gmail.com>\nAlex Nordlund <alexander.nordlund@nasdaq.com>\nAlex Olshansky <i@creagenics.com>\nAlex Samorukov <samm@os2.kiev.ua>\nAlex Stockinger <alex@atomicjar.com>\nAlex Warhawk <ax.warhawk@gmail.com>\nAlexander Artemenko <svetlyak.40wt@gmail.com>\nAlexander Boyd <alex@opengroove.org>\nAlexander Larsson <alexl@redhat.com>\nAlexander Midlash <amidlash@docker.com>\nAlexander Morozov <lk4d4math@gmail.com>\nAlexander Polakov <plhk@sdf.org>\nAlexander Shopov <ash@kambanaria.org>\nAlexandre Beslic <alexandre.beslic@gmail.com>\nAlexandre Garnier <zigarn@gmail.com>\nAlexandre González <agonzalezro@gmail.com>\nAlexandre Jomin <alexandrejomin@gmail.com>\nAlexandru Sfirlogea <alexandru.sfirlogea@gmail.com>\nAlexei Margasov <alexei38@yandex.ru>\nAlexey Guskov <lexag@mail.ru>\nAlexey Kotlyarov <alexey@infoxchange.net.au>\nAlexey Shamrin <shamrin@gmail.com>\nAlexis Ries <ries.alexis@gmail.com>\nAlexis Thomas <fr.alexisthomas@gmail.com>\nAlfred Landrum <alfred.landrum@docker.com>\nAli Dehghani <ali.dehghani.g@gmail.com>\nAlicia Lauerman <alicia@eta.im>\nAlihan Demir <alihan_6153@hotmail.com>\nAllen Madsen <blatyo@gmail.com>\nAllen Sun <allensun.shl@alibaba-inc.com>\nalmoehi <almoehi@users.noreply.github.com>\nAlvaro Saurin <alvaro.saurin@gmail.com>\nAlvin Deng <alvin.q.deng@utexas.edu>\nAlvin Richards <alvin.richards@docker.com>\namangoel <amangoel@gmail.com>\nAmen Belayneh <amenbelayneh@gmail.com>\nAmeya Gawde <agawde@mirantis.com>\nAmir Goldstein <amir73il@aquasec.com>\nAmirBuddy <badinlu.amirhossein@gmail.com>\nAmit Bakshi <ambakshi@gmail.com>\nAmit Krishnan <amit.krishnan@oracle.com>\nAmit Shukla <amit.shukla@docker.com>\nAmr Gawish <amr.gawish@gmail.com>\nAmy Lindburg <amy.lindburg@docker.com>\nAnand Patil <anand.prabhakar.patil@gmail.com>\nAnandkumarPatel <anandkumarpatel@gmail.com>\nAnatoly Borodin <anatoly.borodin@gmail.com>\nAnca Iordache <anca.iordache@docker.com>\nAnchal Agrawal <aagrawa4@illinois.edu>\nAnda Xu <anda.xu@docker.com>\nAnders Janmyr <anders@janmyr.com>\nAndre Dublin <81dublin@gmail.com>\nAndre Granovsky <robotciti@live.com>\nAndrea Denisse Gómez <crypto.andrea@protonmail.ch>\nAndrea Luzzardi <aluzzardi@gmail.com>\nAndrea Turli <andrea.turli@gmail.com>\nAndreas Elvers <andreas@work.de>\nAndreas Köhler <andi5.py@gmx.net>\nAndreas Savvides <andreas@editd.com>\nAndreas Tiefenthaler <at@an-ti.eu>\nAndrei Gherzan <andrei@resin.io>\nAndrei Ushakov <aushakov@netflix.com>\nAndrei Vagin <avagin@gmail.com>\nAndrew Baxter <423qpsxzhh8k3h@s.rendaw.me>\nAndrew C. Bodine <acbodine@us.ibm.com>\nAndrew Clay Shafer <andrewcshafer@gmail.com>\nAndrew Duckworth <grillopress@gmail.com>\nAndrew France <andrew@avito.co.uk>\nAndrew Gerrand <adg@golang.org>\nAndrew Guenther <guenther.andrew.j@gmail.com>\nAndrew He <he.andrew.mail@gmail.com>\nAndrew Hsu <andrewhsu@docker.com>\nAndrew Kim <taeyeonkim90@gmail.com>\nAndrew Kuklewicz <kookster@gmail.com>\nAndrew Macgregor <andrew.macgregor@agworld.com.au>\nAndrew Macpherson <hopscotch23@gmail.com>\nAndrew Martin <sublimino@gmail.com>\nAndrew McDonnell <bugs@andrewmcdonnell.net>\nAndrew Munsell <andrew@wizardapps.net>\nAndrew Pennebaker <andrew.pennebaker@gmail.com>\nAndrew Po <absourd.noise@gmail.com>\nAndrew Weiss <andrew.weiss@docker.com>\nAndrew Williams <williams.andrew@gmail.com>\nAndrews Medina <andrewsmedina@gmail.com>\nAndrey Kolomentsev <andrey.kolomentsev@docker.com>\nAndrey Petrov <andrey.petrov@shazow.net>\nAndrey Stolbovsky <andrey.stolbovsky@gmail.com>\nAndré Martins <aanm90@gmail.com>\nAndrés Maldonado <maldonado@codelutin.com>\nAndy Chambers <anchambers@paypal.com>\nandy diller <dillera@gmail.com>\nAndy Goldstein <agoldste@redhat.com>\nAndy Kipp <andy@rstudio.com>\nAndy Lindeman <alindeman@salesforce.com>\nAndy Rothfusz <github@developersupport.net>\nAndy Smith <github@anarkystic.com>\nAndy Wilson <wilson.andrew.j+github@gmail.com>\nAndy Zhang <andy.zhangtao@hotmail.com>\nAneesh Kulkarni <askthefactorcamera@gmail.com>\nAnes Hasicic <anes.hasicic@gmail.com>\nAngel Velazquez <angelcar@amazon.com>\nAnil Belur <askb23@gmail.com>\nAnil Madhavapeddy <anil@recoil.org>\nAnirudh Aithal <aithal@amazon.com>\nAnkit Jain <ajatkj@yahoo.co.in>\nAnkush Agarwal <ankushagarwal11@gmail.com>\nAnonmily <michelle@michelleliu.io>\nAnran Qiao <anran.qiao@daocloud.io>\nAnshul Pundir <anshul.pundir@docker.com>\nAnthon van der Neut <anthon@mnt.org>\nAnthony Baire <Anthony.Baire@irisa.fr>\nAnthony Bishopric <git@anthonybishopric.com>\nAnthony Dahanne <anthony.dahanne@gmail.com>\nAnthony Sottile <asottile@umich.edu>\nAnton Löfgren <anton.lofgren@gmail.com>\nAnton Nikitin <anton.k.nikitin@gmail.com>\nAnton Polonskiy <anton.polonskiy@gmail.com>\nAnton Tiurin <noxiouz@yandex.ru>\nAntonio Aguilar <antonio@zoftko.com>\nAntonio Murdaca <antonio.murdaca@gmail.com>\nAntonis Kalipetis <akalipetis@gmail.com>\nAntony Messerli <amesserl@rackspace.com>\nAnuj Bahuguna <anujbahuguna.dev@gmail.com>\nAnuj Varma <anujvarma@thumbtack.com>\nAnusha Ragunathan <anusha.ragunathan@docker.com>\nAnyu Wang <wanganyu@outlook.com>\napocas <petermdias@gmail.com>\nArash Deshmeh <adeshmeh@ca.ibm.com>\narcosx <arcosx@outlook.com>\nArikaChen <eaglesora@gmail.com>\nArko Dasgupta <arko@tetrate.io>\nArnaud Lefebvre <a.lefebvre@outlook.fr>\nArnaud Porterie <icecrime@gmail.com>\nArnaud Rebillout <arnaud.rebillout@collabora.com>\nArtem Khramov <akhramov@pm.me>\nArthur Barr <arthur.barr@uk.ibm.com>\nArthur Gautier <baloo@gandi.net>\nArtur Meyster <arthurfbi@yahoo.com>\nArun Gupta <arun.gupta@gmail.com>\nAsad Saeeduddin <masaeedu@gmail.com>\nAsbjørn Enge <asbjorn@hanafjedle.net>\nAshly Mathew <ashly.mathew@sap.com>\nAustin Vazquez <austin.vazquez.dev@gmail.com>\naveragehuman <averagehuman@users.noreply.github.com>\nAvi Das <andas222@gmail.com>\nAvi Kivity <avi@scylladb.com>\nAvi Miller <avi.miller@oracle.com>\nAvi Vaid <avaid1996@gmail.com>\nAzat Khuyiyakhmetov <shadow_uz@mail.ru>\nBao Yonglei <baoyonglei@huawei.com>\nBardia Keyoumarsi <bkeyouma@ucsc.edu>\nBarnaby Gray <barnaby@pickle.me.uk>\nBarry Allard <barry.allard@gmail.com>\nBartłomiej Piotrowski <b@bpiotrowski.pl>\nBastiaan Bakker <bbakker@xebia.com>\nBastien Pascard <bpascard@hotmail.com>\nbdevloed <boris.de.vloed@gmail.com>\nBearice Ren <bearice@gmail.com>\nBen Bonnefoy <frenchben@docker.com>\nBen Firshman <ben@firshman.co.uk>\nBen Golub <ben.golub@dotcloud.com>\nBen Gould <ben@bengould.co.uk>\nBen Hall <ben@benhall.me.uk>\nBen Langfeld <ben@langfeld.me>\nBen Lovy <ben@deciduously.com>\nBen Sargent <ben@brokendigits.com>\nBen Severson <BenSeverson@users.noreply.github.com>\nBen Toews <mastahyeti@gmail.com>\nBen Wiklund <ben@daisyowl.com>\nBenjamin Atkin <ben@benatkin.com>\nBenjamin Baker <Benjamin.baker@utexas.edu>\nBenjamin Boudreau <boudreau.benjamin@gmail.com>\nBenjamin Böhmke <benjamin@boehmke.net>\nBenjamin Wang <wachao@vmware.com>\nBenjamin Yolken <yolken@stripe.com>\nBenny Ng <benny.tpng@gmail.com>\nBenoit Chesneau <bchesneau@gmail.com>\nBernerd Schaefer <bj.schaefer@gmail.com>\nBernhard M. Wiedemann <bwiedemann@suse.de>\nBert Goethals <bert@bertg.be>\nBertrand Roussel <broussel@sierrawireless.com>\nBevisy Zhang <binbin36520@gmail.com>\nBharath Thiruveedula <bharath_ves@hotmail.com>\nBhiraj Butala <abhiraj.butala@gmail.com>\nBhumika Bayani <bhumikabayani@gmail.com>\nBilal Amarni <bilal.amarni@gmail.com>\nBill Wang <ozbillwang@gmail.com>\nBilly Ridgway <wrridgwa@us.ibm.com>\nBily Zhang <xcoder@tenxcloud.com>\nBin Liu <liubin0329@gmail.com>\nBingshen Wang <bingshen.wbs@alibaba-inc.com>\nBjorn Neergaard <bjorn@neersighted.com>\nBlake Geno <blakegeno@gmail.com>\nBoaz Shuster <ripcurld.github@gmail.com>\nbobby abbott <ttobbaybbob@gmail.com>\nBojun Zhu <bojun.zhu@foxmail.com>\nBoqin Qin <bobbqqin@gmail.com>\nBoris Pruessmann <boris@pruessmann.org>\nBoshi Lian <farmer1992@gmail.com>\nBouke Haarsma <bouke@webatoom.nl>\nBoyd Hemphill <boyd@feedmagnet.com>\nboynux <boynux@gmail.com>\nBradley Cicenas <bradley.cicenas@gmail.com>\nBradley Wright <brad@intranation.com>\nBrandon Liu <bdon@bdon.org>\nBrandon Philips <brandon.philips@coreos.com>\nBrandon Rhodes <brandon@rhodesmill.org>\nBrendan Dixon <brendand@microsoft.com>\nBrendon Smith <bws@bws.bio>\nBrennan Kinney <5098581+polarathene@users.noreply.github.com>\nBrent Salisbury <brent.salisbury@docker.com>\nBrett Higgins <brhiggins@arbor.net>\nBrett Kochendorfer <brett.kochendorfer@gmail.com>\nBrett Milford <brettmilford@gmail.com>\nBrett Randall <javabrett@gmail.com>\nBrian (bex) Exelbierd <bexelbie@redhat.com>\nBrian Bland <brian.bland@docker.com>\nBrian DeHamer <brian@dehamer.com>\nBrian Dorsey <brian@dorseys.org>\nBrian Flad <bflad417@gmail.com>\nBrian Goff <cpuguy83@gmail.com>\nBrian McCallister <brianm@skife.org>\nBrian Olsen <brian@maven-group.org>\nBrian Schwind <brianmschwind@gmail.com>\nBrian Shumate <brian@couchbase.com>\nBrian Torres-Gil <brian@dralth.com>\nBrian Trump <btrump@yelp.com>\nBrice Jaglin <bjaglin@teads.tv>\nBriehan Lombaard <briehan.lombaard@gmail.com>\nBrielle Broder <bbroder@google.com>\nBruno Bigras <bigras.bruno@gmail.com>\nBruno Binet <bruno.binet@gmail.com>\nBruno Gazzera <bgazzera@paginar.com>\nBruno Renié <brutasse@gmail.com>\nBruno Tavares <btavare@thoughtworks.com>\nBryan Bess <squarejaw@bsbess.com>\nBryan Boreham <bjboreham@gmail.com>\nBryan Matsuo <bryan.matsuo@gmail.com>\nBryan Murphy <bmurphy1976@gmail.com>\nBurke Libbey <burke@libbey.me>\nByung Kang <byung.kang.ctr@amrdec.army.mil>\nCaleb Spare <cespare@gmail.com>\nCalen Pennington <cale@edx.org>\nCalvin Liu <flycalvin@qq.com>\nCameron Boehmer <cameron.boehmer@gmail.com>\nCameron Sparr <gh@sparr.email>\nCameron Spear <cameronspear@gmail.com>\nCampbell Allen <campbell.allen@gmail.com>\nCandid Dauth <cdauth@cdauth.eu>\nCao Weiwei <cao.weiwei30@zte.com.cn>\nCarl Henrik Lunde <chlunde@ping.uio.no>\nCarl Loa Odin <carlodin@gmail.com>\nCarl X. Su <bcbcarl@gmail.com>\nCarlo Mion <mion00@gmail.com>\nCarlos Alexandro Becker <caarlos0@gmail.com>\nCarlos de Paula <me@carlosedp.com>\nCarlos Sanchez <carlos@apache.org>\nCarol Fager-Higgins <carol.fager-higgins@docker.com>\nCary <caryhartline@users.noreply.github.com>\nCasey Bisson <casey.bisson@joyent.com>\nCatalin Pirvu <pirvu.catalin94@gmail.com>\nCe Gao <ce.gao@outlook.com>\nCedric Davies <cedricda@microsoft.com>\nCesar Talledo <cesar.talledo@docker.com>\nCezar Sa Espinola <cezarsa@gmail.com>\nChad Swenson <chadswen@gmail.com>\nChance Zibolski <chance.zibolski@gmail.com>\nChander Govindarajan <chandergovind@gmail.com>\nChanhun Jeong <keyolk@gmail.com>\nChao Wang <wangchao.fnst@cn.fujitsu.com>\nCharity Kathure <ckathure@microsoft.com>\nCharles Chan <charleswhchan@users.noreply.github.com>\nCharles Hooper <charles.hooper@dotcloud.com>\nCharles Law <claw@conduce.com>\nCharles Lindsay <chaz@chazomatic.us>\nCharles Merriam <charles.merriam@gmail.com>\nCharles Sarrazin <charles@sarraz.in>\nCharles Smith <charles.smith@docker.com>\nCharlie Drage <charlie@charliedrage.com>\nCharlie Lewis <charliel@lab41.org>\nChase Bolt <chase.bolt@gmail.com>\nChaYoung You <yousbe@gmail.com>\nChee Hau Lim <ch33hau@gmail.com>\nChen Chao <cc272309126@gmail.com>\nChen Chuanliang <chen.chuanliang@zte.com.cn>\nChen Hanxiao <chenhanxiao@cn.fujitsu.com>\nChen Min <chenmin46@huawei.com>\nChen Mingjie <chenmingjie0828@163.com>\nChen Qiu <cheney-90@hotmail.com>\nCheng-mean Liu <soccerl@microsoft.com>\nChengfei Shang <cfshang@alauda.io>\nChengguang Xu <cgxu519@gmx.com>\nChengyu Zhu <hudson@cyzhu.com>\nChentianze <cmoman@126.com>\nChenyang Yan <memory.yancy@gmail.com>\nchenyuzhu <chenyuzhi@oschina.cn>\nChetan Birajdar <birajdar.chetan@gmail.com>\nChewey <prosto-chewey@users.noreply.github.com>\nChia-liang Kao <clkao@clkao.org>\nChiranjeevi Tirunagari <vchiranjeeviak.tirunagari@gmail.com>\nchli <chli@freewheel.tv>\nCholerae Hu <choleraehyq@gmail.com>\nChris Alfonso <calfonso@redhat.com>\nChris Armstrong <chris@opdemand.com>\nChris Dias <cdias@microsoft.com>\nChris Dituri <csdituri@gmail.com>\nChris Fordham <chris@fordham-nagy.id.au>\nChris Gavin <chris@chrisgavin.me>\nChris Gibson <chris@chrisg.io>\nChris Khoo <chris.khoo@gmail.com>\nChris Kreussling (Flatbush Gardener) <xrisfg@gmail.com>\nChris McKinnel <chris.mckinnel@tangentlabs.co.uk>\nChris McKinnel <chrismckinnel@gmail.com>\nChris Price <cprice@mirantis.com>\nChris Seto <chriskseto@gmail.com>\nChris Snow <chsnow123@gmail.com>\nChris St. Pierre <chris.a.st.pierre@gmail.com>\nChris Stivers <chris@stivers.us>\nChris Swan <chris.swan@iee.org>\nChris Telfer <ctelfer@docker.com>\nChris Wahl <github@wahlnetwork.com>\nChris Weyl <cweyl@alumni.drew.edu>\nChris White <me@cwprogram.com>\nChristian Becker <christian.becker@sixt.com>\nChristian Berendt <berendt@b1-systems.de>\nChristian Brauner <christian.brauner@ubuntu.com>\nChristian Böhme <developement@boehme3d.de>\nChristian Muehlhaeuser <muesli@gmail.com>\nChristian Persson <saser@live.se>\nChristian Rotzoll <ch.rotzoll@gmail.com>\nChristian Simon <simon@swine.de>\nChristian Stefanescu <st.chris@gmail.com>\nChristoph Ziebuhr <chris@codefrickler.de>\nChristophe Mehay <cmehay@online.net>\nChristophe Troestler <christophe.Troestler@umons.ac.be>\nChristophe Vidal <kriss@krizalys.com>\nChristopher Biscardi <biscarch@sketcht.com>\nChristopher Crone <christopher.crone@docker.com>\nChristopher Currie <codemonkey+github@gmail.com>\nChristopher Jones <tophj@linux.vnet.ibm.com>\nChristopher Latham <sudosurootdev@gmail.com>\nChristopher Petito <chrisjpetito@gmail.com>\nChristopher Rigor <crigor@gmail.com>\nChristy Norman <christy@linux.vnet.ibm.com>\nChun Chen <ramichen@tencent.com>\nCiro S. Costa <ciro.costa@usp.br>\nClayton Coleman <ccoleman@redhat.com>\nClint Armstrong <clint@clintarmstrong.net>\nClinton Kitson <clintonskitson@gmail.com>\nclubby789 <jamie@hill-daniel.co.uk>\nCody Roseborough <crrosebo@amazon.com>\nCoenraad Loubser <coenraad@wish.org.za>\nColin Dunklau <colin.dunklau@gmail.com>\nColin Hebert <hebert.colin@gmail.com>\nColin Panisset <github@clabber.com>\nColin Rice <colin@daedrum.net>\nColin Walters <walters@verbum.org>\nCollin Guarino <collin.guarino@gmail.com>\nColm Hally <colmhally@gmail.com>\ncompanycy <companycy@gmail.com>\nConor Evans <coevans@tcd.ie>\nCorbin Coleman <corbin.coleman@docker.com>\nCorey Farrell <git@cfware.com>\nCory Forsyth <cory.forsyth@gmail.com>\nCory Snider <csnider@mirantis.com>\ncressie176 <github@stephen-cresswell.net>\nCristian Ariza <dev@cristianrz.com>\nCristian Staretu <cristian.staretu@gmail.com>\ncristiano balducci <cristiano.balducci@gmail.com>\nCristina Yenyxe Gonzalez Garcia <cristina.yenyxe@gmail.com>\nCruceru Calin-Cristian <crucerucalincristian@gmail.com>\ncui fliter <imcusg@gmail.com>\nCUI Wei <ghostplant@qq.com>\nCuong Manh Le <cuong.manhle.vn@gmail.com>\nCyprian Gracz <cyprian.gracz@micro-jumbo.eu>\nCyril F <cyrilf7x@gmail.com>\nDa McGrady <dabkb@aol.com>\nDaan van Berkel <daan.v.berkel.1980@gmail.com>\nDaehyeok Mun <daehyeok@gmail.com>\nDafydd Crosby <dtcrsby@gmail.com>\ndalanlan <dalanlan925@gmail.com>\nDamian Smyth <damian@dsau.co>\nDamien Nadé <github@livna.org>\nDamien Nozay <damien.nozay@gmail.com>\nDamjan Georgievski <gdamjan@gmail.com>\nDan Anolik <dan@anolik.net>\nDan Buch <d.buch@modcloth.com>\nDan Cotora <dan@bluevision.ro>\nDan Feldman <danf@jfrog.com>\nDan Griffin <dgriffin@peer1.com>\nDan Hirsch <thequux@upstandinghackers.com>\nDan Keder <dan.keder@gmail.com>\nDan Levy <dan@danlevy.net>\nDan McPherson <dmcphers@redhat.com>\nDan Plamadeala <cornul11@gmail.com>\nDan Stine <sw@stinemail.com>\nDan Williams <me@deedubs.com>\nDani Hodovic <dani.hodovic@gmail.com>\nDani Louca <dani.louca@docker.com>\nDaniel Antlinger <d.antlinger@gmx.at>\nDaniel Black <daniel@linux.ibm.com>\nDaniel Dao <dqminh@cloudflare.com>\nDaniel Exner <dex@dragonslave.de>\nDaniel Farrell <dfarrell@redhat.com>\nDaniel Garcia <daniel@danielgarcia.info>\nDaniel Gasienica <daniel@gasienica.ch>\nDaniel Grunwell <mwgrunny@gmail.com>\nDaniel Guns <danbguns@gmail.com>\nDaniel Helfand <helfand.4@gmail.com>\nDaniel Hiltgen <daniel.hiltgen@docker.com>\nDaniel J Walsh <dwalsh@redhat.com>\nDaniel Menet <membership@sontags.ch>\nDaniel Mizyrycki <daniel.mizyrycki@dotcloud.com>\nDaniel Nephin <dnephin@docker.com>\nDaniel Norberg <dano@spotify.com>\nDaniel Nordberg <dnordberg@gmail.com>\nDaniel P. Berrangé <berrange@redhat.com>\nDaniel Robinson <gottagetmac@gmail.com>\nDaniel S <dan.streby@gmail.com>\nDaniel Sweet <danieljsweet@icloud.com>\nDaniel Von Fange <daniel@leancoder.com>\nDaniel Watkins <daniel@daniel-watkins.co.uk>\nDaniel X Moore <yahivin@gmail.com>\nDaniel YC Lin <dlin.tw@gmail.com>\nDaniel Zhang <jmzwcn@gmail.com>\nDaniele Rondina <geaaru@sabayonlinux.org>\nDanny Berger <dpb587@gmail.com>\nDanny Milosavljevic <dannym@scratchpost.org>\nDanny Yates <danny@codeaholics.org>\nDanyal Khaliq <danyal.khaliq@tenpearls.com>\nDarren Coxall <darren@darrencoxall.com>\nDarren Shepherd <darren.s.shepherd@gmail.com>\nDarren Stahl <darst@microsoft.com>\nDattatraya Kumbhar <dattatraya.kumbhar@gslab.com>\nDavanum Srinivas <davanum@gmail.com>\nDave Barboza <dbarboza@datto.com>\nDave Goodchild <buddhamagnet@gmail.com>\nDave Henderson <dhenderson@gmail.com>\nDave MacDonald <mindlapse@gmail.com>\nDave Tucker <dt@docker.com>\nDavid Anderson <dave@natulte.net>\nDavid Bellotti <dbellotti@pivotal.io>\nDavid Calavera <david.calavera@gmail.com>\nDavid Chung <david.chung@docker.com>\nDavid Corking <dmc-source@dcorking.com>\nDavid Cramer <davcrame@cisco.com>\nDavid Currie <david_currie@uk.ibm.com>\nDavid Davis <daviddavis@redhat.com>\nDavid Dooling <dooling@gmail.com>\nDavid Gageot <david@gageot.net>\nDavid Gebler <davidgebler@gmail.com>\nDavid Glasser <glasser@davidglasser.net>\nDavid Karlsson <35727626+dvdksn@users.noreply.github.com>\nDavid Lawrence <david.lawrence@docker.com>\nDavid Lechner <david@lechnology.com>\nDavid M. Karr <davidmichaelkarr@gmail.com>\nDavid Mackey <tdmackey@booleanhaiku.com>\nDavid Manouchehri <manouchehri@riseup.net>\nDavid Mat <david@davidmat.com>\nDavid Mcanulty <github@hellspark.com>\nDavid McKay <david@rawkode.com>\nDavid O'Rourke <david@scalefactory.com>\nDavid P Hilton <david.hilton.p@gmail.com>\nDavid Pelaez <pelaez89@gmail.com>\nDavid R. Jenni <david.r.jenni@gmail.com>\nDavid Röthlisberger <david@rothlis.net>\nDavid Sheets <dsheets@docker.com>\nDavid Sissitka <me@dsissitka.com>\nDavid Trott <github@davidtrott.com>\nDavid Wang <00107082@163.com>\nDavid Williamson <david.williamson@docker.com>\nDavid Xia <dxia@spotify.com>\nDavid Young <yangboh@cn.ibm.com>\nDavide Ceretti <davide.ceretti@hogarthww.com>\nDawn Chen <dawnchen@google.com>\ndbdd <wangtong2712@gmail.com>\ndcylabs <dcylabs@gmail.com>\nDebayan De <debayande@users.noreply.github.com>\nDeborah Gertrude Digges <deborah.gertrude.digges@gmail.com>\ndeed02392 <georgehafiz@gmail.com>\nDeep Debroy <ddebroy@docker.com>\nDeng Guangxing <dengguangxing@huawei.com>\nDeni Bertovic <deni@kset.org>\nDenis Defreyne <denis@soundcloud.com>\nDenis Gladkikh <denis@gladkikh.email>\nDenis Ollier <larchunix@users.noreply.github.com>\nDennis Chen <barracks510@gmail.com>\nDennis Chen <dennis.chen@arm.com>\nDennis Docter <dennis@d23.nl>\nDerek <crq@kernel.org>\nDerek <crquan@gmail.com>\nDerek Ch <denc716@gmail.com>\nDerek McGowan <derek@mcg.dev>\nDeric Crago <deric.crago@gmail.com>\nDeshi Xiao <dxiao@redhat.com>\nDevon Estes <devon.estes@klarna.com>\nDevvyn Murphy <devvyn@devvyn.com>\nDharmit Shah <shahdharmit@gmail.com>\nDhawal Yogesh Bhanushali <dbhanushali@vmware.com>\nDhilip Kumars <dhilip.kumar.s@huawei.com>\nDiego Romero <idiegoromero@gmail.com>\nDiego Siqueira <dieg0@live.com>\nDieter Reuter <dieter.reuter@me.com>\nDillon Dixon <dillondixon@gmail.com>\nDima Stopel <dima@twistlock.com>\nDimitri John Ledkov <dimitri.j.ledkov@intel.com>\nDimitris Mandalidis <dimitris.mandalidis@gmail.com>\nDimitris Rozakis <dimrozakis@gmail.com>\nDimitry Andric <d.andric@activevideo.com>\nDinesh Subhraveti <dineshs@altiscale.com>\nDing Fei <dingfei@stars.org.cn>\ndingwei <dingwei@cmss.chinamobile.com>\nDiogo Monica <diogo@docker.com>\nDiuDiugirl <sophia.wang@pku.edu.cn>\nDjibril Koné <kone.djibril@gmail.com>\nDjordje Lukic <djordje.lukic@docker.com>\ndkumor <daniel@dkumor.com>\nDmitri Logvinenko <dmitri.logvinenko@gmail.com>\nDmitri Shuralyov <shurcooL@gmail.com>\nDmitry Demeshchuk <demeshchuk@gmail.com>\nDmitry Gusev <dmitry.gusev@gmail.com>\nDmitry Kononenko <d@dm42.ru>\nDmitry Sharshakov <d3dx12.xx@gmail.com>\nDmitry Shyshkin <dmitry@shyshkin.org.ua>\nDmitry Smirnov <onlyjob@member.fsf.org>\nDmitry V. Krivenok <krivenok.dmitry@gmail.com>\nDmitry Vorobev <dimahabr@gmail.com>\nDmytro Iakovliev <dmytro.iakovliev@zodiacsystems.com>\ndocker-unir[bot] <docker-unir[bot]@users.noreply.github.com>\nDolph Mathews <dolph.mathews@gmail.com>\nDominic Tubach <dominic.tubach@to.com>\nDominic Yin <yindongchao@inspur.com>\nDominik Dingel <dingel@linux.vnet.ibm.com>\nDominik Finkbeiner <finkes93@gmail.com>\nDominik Honnef <dominik@honnef.co>\nDon Kirkby <donkirkby@users.noreply.github.com>\nDon Kjer <don.kjer@gmail.com>\nDon Spaulding <donspauldingii@gmail.com>\nDonald Huang <don.hcd@gmail.com>\nDong Chen <dongluo.chen@docker.com>\nDonghwa Kim <shanytt@gmail.com>\nDonovan Jones <git@gamma.net.nz>\nDorin Geman <dorin.geman@docker.com>\nDoron Podoleanu <doronp@il.ibm.com>\nDoug Davis <dug@us.ibm.com>\nDoug MacEachern <dougm@vmware.com>\nDoug Tangren <d.tangren@gmail.com>\nDouglas Curtis <dougcurtis1@gmail.com>\nDr Nic Williams <drnicwilliams@gmail.com>\ndragon788 <dragon788@users.noreply.github.com>\nDražen Lučanin <kermit666@gmail.com>\nDrew Erny <derny@mirantis.com>\nDrew Hubl <drew.hubl@gmail.com>\nDustin Sallings <dustin@spy.net>\nEd Costello <epc@epcostello.com>\nEdmund Wagner <edmund-wagner@web.de>\nEiichi Tsukata <devel@etsukata.com>\nEike Herzbach <eike@herzbach.net>\nEivin Giske Skaaren <eivinsn@axis.com>\nEivind Uggedal <eivind@uggedal.com>\nElan Ruusamäe <glen@pld-linux.org>\nElango Sivanandam <elango.siva@docker.com>\nElena Morozova <lelenanam@gmail.com>\nEli Uriegas <seemethere101@gmail.com>\nElias Faxö <elias.faxo@tre.se>\nElias Koromilas <elias.koromilas@gmail.com>\nElias Probst <mail@eliasprobst.eu>\nElijah Zupancic <elijah@zupancic.name>\neluck <mail@eluck.me>\nElvir Kuric <elvirkuric@gmail.com>\nEmil Davtyan <emil2k@gmail.com>\nEmil Hernvall <emil@quench.at>\nEmily Maier <emily@emilymaier.net>\nEmily Rose <emily@contactvibe.com>\nEmir Ozer <emirozer@yandex.com>\nEng Zer Jun <engzerjun@gmail.com>\nEnguerran <engcolson@gmail.com>\nEnrico Weigelt, metux IT consult <info@metux.net>\nEohyung Lee <liquidnuker@gmail.com>\nepeterso <epeterson@breakpoint-labs.com>\ner0k <er0k@er0k.net>\nEric Barch <barch@tomesoftware.com>\nEric Curtin <ericcurtin17@gmail.com>\nEric G. Noriega <enoriega@vizuri.com>\nEric Hanchrow <ehanchrow@ine.com>\nEric Lee <thenorthsecedes@gmail.com>\nEric Mountain <eric.mountain@datadoghq.com>\nEric Myhre <hash@exultant.us>\nEric Paris <eparis@redhat.com>\nEric Rafaloff <erafaloff@gmail.com>\nEric Rosenberg <ehaydenr@gmail.com>\nEric Sage <eric.david.sage@gmail.com>\nEric Soderstrom <ericsoderstrom@gmail.com>\nEric Yang <windfarer@gmail.com>\nEric-Olivier Lamey <eo@lamey.me>\nErica Windisch <erica@windisch.us>\nErich Cordoba <erich.cm@yandex.com>\nErik Bray <erik.m.bray@gmail.com>\nErik Dubbelboer <erik@dubbelboer.com>\nErik Hollensbe <github@hollensbe.org>\nErik Inge Bolsø <knan@redpill-linpro.com>\nErik Kristensen <erik@erikkristensen.com>\nErik Sipsma <erik@sipsma.dev>\nErik Sjölund <erik.sjolund@gmail.com>\nErik St. Martin <alakriti@gmail.com>\nErik Weathers <erikdw@gmail.com>\nErno Hopearuoho <erno.hopearuoho@gmail.com>\nErwin van der Koogh <info@erronis.nl>\nEspen Suenson <mail@espensuenson.dk>\nEthan Bell <ebgamer29@gmail.com>\nEthan Mosbaugh <ethan@replicated.com>\nEuan Harris <euan.harris@docker.com>\nEuan Kemp <euan.kemp@coreos.com>\nEugen Krizo <eugen.krizo@gmail.com>\nEugene Yakubovich <eugene.yakubovich@coreos.com>\nEvan Allrich <evan@unguku.com>\nEvan Carmi <carmi@users.noreply.github.com>\nEvan Hazlett <ejhazlett@gmail.com>\nEvan Krall <krall@yelp.com>\nEvan Lezar <elezar@nvidia.com>\nEvan Phoenix <evan@fallingsnow.net>\nEvan Wies <evan@neomantra.net>\nEvelyn Xu <evelynhsu21@gmail.com>\nEverett Toews <everett.toews@rackspace.com>\nEvgeniy Makhrov <e.makhrov@corp.badoo.com>\nEvgeny Shmarnev <shmarnev@gmail.com>\nEvgeny Vereshchagin <evvers@ya.ru>\nEwa Czechowska <ewa@ai-traders.com>\nEystein Måløy Stenberg <eystein.maloy.stenberg@cfengine.com>\nezbercih <cem.ezberci@gmail.com>\nEzra Silvera <ezra@il.ibm.com>\nFabian Kramm <kramm@covexo.com>\nFabian Lauer <kontakt@softwareschmiede-saar.de>\nFabian Raetz <fabian.raetz@gmail.com>\nFabiano Rosas <farosas@br.ibm.com>\nFabio Falci <fabiofalci@gmail.com>\nFabio Kung <fabio.kung@gmail.com>\nFabio Rapposelli <fabio@vmware.com>\nFabio Rehm <fgrehm@gmail.com>\nFabrizio Regini <freegenie@gmail.com>\nFabrizio Soppelsa <fsoppelsa@mirantis.com>\nFaiz Khan <faizkhan00@gmail.com>\nfalmp <chico.lopes@gmail.com>\nFangming Fang <fangming.fang@arm.com>\nFangyuan Gao <21551127@zju.edu.cn>\nfanjiyun <fan.jiyun@zte.com.cn>\nFareed Dudhia <fareeddudhia@googlemail.com>\nFathi Boudra <fathi.boudra@linaro.org>\nFederico Gimenez <fgimenez@coit.es>\nFelipe Oliveira <felipeweb.programador@gmail.com>\nFelipe Ruhland <felipe.ruhland@gmail.com>\nFelix Abecassis <fabecassis@nvidia.com>\nFelix Geisendörfer <felix@debuggable.com>\nFelix Hupfeld <felix@quobyte.com>\nFelix Rabe <felix@rabe.io>\nFelix Ruess <felix.ruess@gmail.com>\nFelix Schindler <fschindler@weluse.de>\nFeng Yan <fy2462@gmail.com>\nFengtu Wang <wangfengtu@huawei.com>\nFerenc Szabo <pragmaticfrank@gmail.com>\nFernando <fermayo@gmail.com>\nFero Volar <alian@alian.info>\nFeroz Salam <feroz.salam@sourcegraph.com>\nFerran Rodenas <frodenas@gmail.com>\nFilipe Brandenburger <filbranden@google.com>\nFilipe Oliveira <contato@fmoliveira.com.br>\nFilipe Pina <hzlu1ot0@duck.com>\nFlavio Castelli <fcastelli@suse.com>\nFlavio Crisciani <flavio.crisciani@docker.com>\nFlorian <FWirtz@users.noreply.github.com>\nFlorian Klein <florian.klein@free.fr>\nFlorian Maier <marsmensch@users.noreply.github.com>\nFlorian Noeding <noeding@adobe.com>\nFlorian Schmaus <flo@geekplace.eu>\nFlorian Weingarten <flo@hackvalue.de>\nFlorin Asavoaie <florin.asavoaie@gmail.com>\nFlorin Patan <florinpatan@gmail.com>\nfonglh <fonglh@gmail.com>\nFoysal Iqbal <foysal.iqbal.fb@gmail.com>\nFrancesc Campoy <campoy@google.com>\nFrancesco Degrassi <francesco.degrassi@optionfactory.net>\nFrancesco Mari <mari.francesco@gmail.com>\nFrancis Chuang <francis.chuang@boostport.com>\nFrancisco Carriedo <fcarriedo@gmail.com>\nFrancisco Souza <f@souza.cc>\nFrank Groeneveld <frank@ivaldi.nl>\nFrank Herrmann <fgh@4gh.tv>\nFrank Macreery <frank@macreery.com>\nFrank Rosquin <frank.rosquin+github@gmail.com>\nFrank Villaro-Dixon <frank.villarodixon@merkle.com>\nFrank Yang <yyb196@gmail.com>\nFrançois Scala <github@arcenik.net>\nFred Lifton <fred.lifton@docker.com>\nFrederick F. Kautz IV <fkautz@redhat.com>\nFrederico F. de Oliveira <FreddieOliveira@users.noreply.github.com>\nFrederik Loeffert <frederik@zitrusmedia.de>\nFrederik Nordahl Jul Sabroe <frederikns@gmail.com>\nFreek Kalter <freek@kalteronline.org>\nFrieder Bluemle <frieder.bluemle@gmail.com>\nfrobnicaty <92033765+frobnicaty@users.noreply.github.com>\nFrédéric Dalleau <frederic.dalleau@docker.com>\nFu JinLin <withlin@yeah.net>\nFélix Baylac-Jacqué <baylac.felix@gmail.com>\nFélix Cantournet <felix.cantournet@cloudwatt.com>\nGabe Rosenhouse <gabe@missionst.com>\nGabor Nagy <mail@aigeruth.hu>\nGabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>\nGabriel Goller <gabrielgoller123@gmail.com>\nGabriel L. Somlo <gsomlo@gmail.com>\nGabriel Linder <linder.gabriel@gmail.com>\nGabriel Monroy <gabriel@opdemand.com>\nGabriel Nicolas Avellaneda <avellaneda.gabriel@gmail.com>\nGabriel Tomitsuka <gabriel@tomitsuka.com>\nGaetan de Villele <gdevillele@gmail.com>\nGalen Sampson <galen.sampson@gmail.com>\nGang Qiao <qiaohai8866@gmail.com>\nGareth Rushgrove <gareth@morethanseven.net>\nGarrett Barboza <garrett@garrettbarboza.com>\nGary Schaetz <gary@schaetzkc.com>\nGaurav <gaurav.gosec@gmail.com>\nGaurav Singh <gaurav1086@gmail.com>\nGaël PORTAY <gael.portay@savoirfairelinux.com>\nGenki Takiuchi <genki@s21g.com>\nGennadySpb <lipenkov@gmail.com>\nGeoff Levand <geoff@infradead.org>\nGeoffrey Bachelet <grosfrais@gmail.com>\nGeon Kim <geon0250@gmail.com>\nGeorge Adams <georgeadams1995@gmail.com>\nGeorge Kontridze <george@bugsnag.com>\nGeorge Ma <mayangang@outlook.com>\nGeorge MacRorie <gmacr31@gmail.com>\nGeorge Xie <georgexsh@gmail.com>\nGeorgi Hristozov <georgi@forkbomb.nl>\nGeorgy Yakovlev <gyakovlev@gentoo.org>\nGereon Frey <gereon.frey@dynport.de>\nGerman DZ <germ@ndz.com.ar>\nGert van Valkenhoef <g.h.m.van.valkenhoef@rug.nl>\nGerwim Feiken <g.feiken@tfe.nl>\nGhislain Bourgeois <ghislain.bourgeois@gmail.com>\nGiampaolo Mancini <giampaolo@trampolineup.com>\nGianluca Borello <g.borello@gmail.com>\nGildas Cuisinier <gildas.cuisinier@gcuisinier.net>\nGiovan Isa Musthofa <giovanism@outlook.co.id>\ngissehel <public-devgit-dantus@gissehel.org>\nGiuseppe Mazzotta <gdm85@users.noreply.github.com>\nGiuseppe Scrivano <gscrivan@redhat.com>\nGleb Fotengauer-Malinovskiy <glebfm@altlinux.org>\nGleb M Borisov <borisov.gleb@gmail.com>\nGlyn Normington <gnormington@gopivotal.com>\nGoBella <caili_welcome@163.com>\nGoffert van Gool <goffert@phusion.nl>\nGoldwyn Rodrigues <rgoldwyn@suse.com>\nGopikannan Venugopalsamy <gopikannan.venugopalsamy@gmail.com>\nGosuke Miyashita <gosukenator@gmail.com>\nGou Rao <gou@portworx.com>\nGovinda Fichtner <govinda.fichtner@googlemail.com>\nGrace Choi <grace.54109@gmail.com>\nGrant Millar <rid@cylo.io>\nGrant Reaber <grant.reaber@gmail.com>\nGraydon Hoare <graydon@pobox.com>\nGreg Fausak <greg@tacodata.com>\nGreg Pflaum <gpflaum@users.noreply.github.com>\nGreg Stephens <greg@udon.org>\nGreg Thornton <xdissent@me.com>\nGrzegorz Jaśkiewicz <gj.jaskiewicz@gmail.com>\nGuilhem Lettron <guilhem+github@lettron.fr>\nGuilherme Salgado <gsalgado@gmail.com>\nGuillaume Dufour <gdufour.prestataire@voyages-sncf.com>\nGuillaume J. Charmes <guillaume.charmes@docker.com>\nGunadhya S. <6939749+gunadhya@users.noreply.github.com>\nGuoqiang QI <guoqiang.qi1@gmail.com>\nguoxiuyan <guoxiuyan@huawei.com>\nGuri <odg0318@gmail.com>\nGurjeet Singh <gurjeet@singh.im>\nGuruprasad <lgp171188@gmail.com>\nGustav Sinder <gustav.sinder@gmail.com>\ngwx296173 <gaojing3@huawei.com>\nGünter Zöchbauer <guenter@gzoechbauer.com>\nHaichao Yang <yang.haichao@zte.com.cn>\nhaikuoliu <haikuo@amazon.com>\nhaining.cao <haining.cao@daocloud.io>\nHakan Özler <hakan.ozler@kodcu.com>\nHamish Hutchings <moredhel@aoeu.me>\nHannes Ljungberg <hannes@5monkeys.se>\nHans Kristian Flaatten <hans@starefossen.com>\nHans Rødtang <hansrodtang@gmail.com>\nHao Shu Wei <haoshuwei24@gmail.com>\nHao Zhang <21521210@zju.edu.cn>\nHarald Albers <github@albersweb.de>\nHarald Niesche <harald@niesche.de>\nHarley Laue <losinggeneration@gmail.com>\nHarold Cooper <hrldcpr@gmail.com>\nHarrison Turton <harrisonturton@gmail.com>\nHarry Zhang <harryz@hyper.sh>\nHarshal Patil <harshal.patil@in.ibm.com>\nHarshal Patil <harshalp@linux.vnet.ibm.com>\nHe Simei <hesimei@zju.edu.cn>\nHe Xiaoxi <tossmilestone@gmail.com>\nHe Xin <he_xinworld@126.com>\nheartlock <21521209@zju.edu.cn>\nHector Castro <hectcastro@gmail.com>\nHelen Xie <chenjg@harmonycloud.cn>\nHenning Sprang <henning.sprang@gmail.com>\nHiroshi Hatake <hatake@clear-code.com>\nHiroyuki Sasagawa <hs19870702@gmail.com>\nHobofan <goisser94@gmail.com>\nHollie Teal <hollie@docker.com>\nHong Xu <hong@topbug.net>\nHongbin Lu <hongbin034@gmail.com>\nHongxu Jia <hongxu.jia@windriver.com>\nHonza Pokorny <me@honza.ca>\nHsing-Hui Hsu <hsinghui@amazon.com>\nHsing-Yu (David) Chen <davidhsingyuchen@gmail.com>\nhsinko <21551195@zju.edu.cn>\nHu Keping <hukeping@huawei.com>\nHu Tao <hutao@cn.fujitsu.com>\nHuajin Tong <fliterdashen@gmail.com>\nhuang-jl <1046678590@qq.com>\nHuanHuan Ye <logindaveye@gmail.com>\nHuanzhong Zhang <zhanghuanzhong90@gmail.com>\nHuayi Zhang <irachex@gmail.com>\nHugo Barrera <hugo@barrera.io>\nHugo Duncan <hugo@hugoduncan.org>\nHugo Marisco <0x6875676f@gmail.com>\nHui Kang <hkang.sunysb@gmail.com>\nHunter Blanks <hunter@twilio.com>\nhuqun <huqun@zju.edu.cn>\nHuu Nguyen <huu@prismskylabs.com>\nHyeongkyu Lee <hyeongkyu.lee@navercorp.com>\nHyzhou Zhy <hyzhou.zhy@alibaba-inc.com>\nIago López Galeiras <iago@kinvolk.io>\nIan Bishop <ianbishop@pace7.com>\nIan Bull <irbull@gmail.com>\nIan Calvert <ianjcalvert@gmail.com>\nIan Campbell <ian.campbell@docker.com>\nIan Chen <ianre657@gmail.com>\nIan Lee <IanLee1521@gmail.com>\nIan Main <imain@redhat.com>\nIan Philpot <ian.philpot@microsoft.com>\nIan Truslove <ian.truslove@gmail.com>\nIavael <iavaelooeyt@gmail.com>\nIcaro Seara <icaro.seara@gmail.com>\nIgnacio Capurro <icapurrofagian@gmail.com>\nIgor Dolzhikov <bluesriverz@gmail.com>\nIgor Karpovich <i.karpovich@currencysolutions.com>\nIliana Weller <iweller@amazon.com>\nIlkka Laukkanen <ilkka@ilkka.io>\nIllia Antypenko <ilya@antipenko.pp.ua>\nIllo Abdulrahim <abdulrahim.illo@nokia.com>\nIlya Dmitrichenko <errordeveloper@gmail.com>\nIlya Gusev <mail@igusev.ru>\nIlya Khlopotov <ilya.khlopotov@gmail.com>\nimalasong <2879499479@qq.com>\nimre Fitos <imre.fitos+github@gmail.com>\ninglesp <peter.inglesby@gmail.com>\nIngo Gottwald <in.gottwald@gmail.com>\nInnovimax <innovimax@gmail.com>\nIsaac Dupree <antispam@idupree.com>\nIsabel Jimenez <contact.isabeljimenez@gmail.com>\nIsaiah Grace <irgkenya4@gmail.com>\nIsao Jonas <isao.jonas@gmail.com>\nIskander Sharipov <quasilyte@gmail.com>\nIvan Babrou <ibobrik@gmail.com>\nIvan Fraixedes <ifcdev@gmail.com>\nIvan Grcic <igrcic@gmail.com>\nIvan Markin <sw@nogoegst.net>\nJ Bruni <joaohbruni@yahoo.com.br>\nJ. Nunn <jbnunn@gmail.com>\nJack Danger Canty <jackdanger@squareup.com>\nJack Laxson <jackjrabbit@gmail.com>\nJack Walker <90711509+j2walker@users.noreply.github.com>\nJacob Atzen <jacob@jacobatzen.dk>\nJacob Edelman <edelman.jd@gmail.com>\nJacob Tomlinson <jacob@tom.linson.uk>\nJacob Vallejo <jakeev@amazon.com>\nJacob Wen <jian.w.wen@oracle.com>\nJaime Cepeda <jcepedavillamayor@gmail.com>\nJaivish Kothari <janonymous.codevulture@gmail.com>\nJake Champlin <jake.champlin.27@gmail.com>\nJake Moshenko <jake@devtable.com>\nJake Sanders <jsand@google.com>\nJakub Drahos <jdrahos@pulsepoint.com>\nJakub Guzik <jakubmguzik@gmail.com>\nJames Allen <jamesallen0108@gmail.com>\nJames Carey <jecarey@us.ibm.com>\nJames Carr <james.r.carr@gmail.com>\nJames DeFelice <james.defelice@ishisystems.com>\nJames Harrison Fisher <jameshfisher@gmail.com>\nJames Kyburz <james.kyburz@gmail.com>\nJames Kyle <james@jameskyle.org>\nJames Lal <james@lightsofapollo.com>\nJames Mills <prologic@shortcircuit.net.au>\nJames Nesbitt <jnesbitt@mirantis.com>\nJames Nugent <james@jen20.com>\nJames Sanders <james3sanders@gmail.com>\nJames Turnbull <james@lovedthanlost.net>\nJames Watkins-Harvey <jwatkins@progi-media.com>\nJameson Hyde <jameson.hyde@docker.com>\nJamie Hannaford <jamie@limetree.org>\nJamshid Afshar <jafshar@yahoo.com>\nJan Breig <git@pygos.space>\nJan Chren <dev.rindeal@gmail.com>\nJan Garcia <github-public@n-garcia.com>\nJan Götte <jaseg@jaseg.net>\nJan Keromnes <janx@linux.com>\nJan Koprowski <jan.koprowski@gmail.com>\nJan Pazdziora <jpazdziora@redhat.com>\nJan Toebes <jan@toebes.info>\nJan-Gerd Tenberge <janten@gmail.com>\nJan-Jaap Driessen <janjaapdriessen@gmail.com>\nJana Radhakrishnan <mrjana@docker.com>\nJannick Fahlbusch <git@jf-projects.de>\nJanuar Wayong <januar@gmail.com>\nJared Biel <jared.biel@bolderthinking.com>\nJared Hocutt <jaredh@netapp.com>\nJaroslav Jindrak <dzejrou@gmail.com>\nJaroslaw Zabiello <hipertracker@gmail.com>\nJasmine Hegman <jasmine@jhegman.com>\nJason A. Donenfeld <Jason@zx2c4.com>\nJason Divock <jdivock@gmail.com>\nJason Giedymin <jasong@apache.org>\nJason Green <Jason.Green@AverInformatics.Com>\nJason Hall <imjasonh@gmail.com>\nJason Heiss <jheiss@aput.net>\nJason Livesay <ithkuil@gmail.com>\nJason McVetta <jason.mcvetta@gmail.com>\nJason Plum <jplum@devonit.com>\nJason Shepherd <jason@jasonshepherd.net>\nJason Smith <jasonrichardsmith@gmail.com>\nJason Sommer <jsdirv@gmail.com>\nJason Stangroome <jason@codeassassin.com>\nJasper Siepkes <siepkes@serviceplanet.nl>\nJavier Bassi <javierbassi@gmail.com>\njaxgeller <jacksongeller@gmail.com>\nJay <teguhwpurwanto@gmail.com>\nJay Kamat <github@jgkamat.33mail.com>\nJay Lim <jay@imjching.com>\nJean Rouge <rougej+github@gmail.com>\nJean-Baptiste Barth <jeanbaptiste.barth@gmail.com>\nJean-Baptiste Dalido <jeanbaptiste@appgratis.com>\nJean-Christophe Berthon <huygens@berthon.eu>\nJean-Michel Rouet <jm.rouet@gmail.com>\nJean-Paul Calderone <exarkun@twistedmatrix.com>\nJean-Pierre Huynh <jean-pierre.huynh@ounet.fr>\nJean-Tiare Le Bigot <jt@yadutaf.fr>\nJeeva S. Chelladhurai <sjeeva@gmail.com>\nJeff Anderson <jeff@docker.com>\nJeff Hajewski <jeff.hajewski@gmail.com>\nJeff Johnston <jeff.johnston.mn@gmail.com>\nJeff Lindsay <progrium@gmail.com>\nJeff Mickey <j@codemac.net>\nJeff Minard <jeff@creditkarma.com>\nJeff Nickoloff <jeff.nickoloff@gmail.com>\nJeff Silberman <jsilberm@gmail.com>\nJeff Welch <whatthejeff@gmail.com>\nJeff Zvier <zvier20@gmail.com>\nJeffrey Bolle <jeffreybolle@gmail.com>\nJeffrey Morgan <jmorganca@gmail.com>\nJeffrey van Gogh <jvg@google.com>\nJenny Gebske <jennifer@gebske.de>\nJeongseok Kang <piono623@naver.com>\nJeremy Chambers <jeremy@thehipbot.com>\nJeremy Grosser <jeremy@synack.me>\nJeremy Huntwork <jhuntwork@lightcubesolutions.com>\nJeremy Price <jprice.rhit@gmail.com>\nJeremy Qian <vanpire110@163.com>\nJeremy Unruh <jeremybunruh@gmail.com>\nJeremy Yallop <yallop@docker.com>\nJeroen Franse <jeroenfranse@gmail.com>\nJeroen Jacobs <github@jeroenj.be>\nJesse Dearing <jesse.dearing@gmail.com>\nJesse Dubay <jesse@thefortytwo.net>\nJessica Frazelle <jess@oxide.computer>\nJeyanthinath Muthuram <jeyanthinath10@gmail.com>\nJezeniel Zapanta <jpzapanta22@gmail.com>\nJhon Honce <jhonce@redhat.com>\nJi.Zhilong <zhilongji@gmail.com>\nJian Liao <jliao@alauda.io>\nJian Zeng <anonymousknight96@gmail.com>\nJian Zhang <zhangjian.fnst@cn.fujitsu.com>\nJiang Jinyang <jjyruby@gmail.com>\nJianyong Wu <jianyong.wu@arm.com>\nJie Luo <luo612@zju.edu.cn>\nJie Ma <jienius@outlook.com>\nJihyun Hwang <jhhwang@telcoware.com>\nJilles Oldenbeuving <ojilles@gmail.com>\nJim Alateras <jima@comware.com.au>\nJim Carroll <jim.carroll@docker.com>\nJim Ehrismann <jim.ehrismann@docker.com>\nJim Galasyn <jim.galasyn@docker.com>\nJim Lin <b04705003@ntu.edu.tw>\nJim Minter <jminter@redhat.com>\nJim Perrin <jperrin@centos.org>\nJimmy Cuadra <jimmy@jimmycuadra.com>\nJimmy Puckett <jimmy.puckett@spinen.com>\nJimmy Song <rootsongjc@gmail.com>\njinjiadu <jinjiadu@aliyun.com>\nJinsoo Park <cellpjs@gmail.com>\nJintao Zhang <zhangjintao9020@gmail.com>\nJiri Appl <jiria@microsoft.com>\nJiri Popelka <jpopelka@redhat.com>\nJiuyue Ma <majiuyue@huawei.com>\nJiří Župka <jzupka@redhat.com>\njjimbo137 <115816493+jjimbo137@users.noreply.github.com>\nJoakim Roubert <joakim.roubert@axis.com>\nJoan Grau <grautxo.dev@proton.me>\nJoao Fernandes <joao.fernandes@docker.com>\nJoao Trindade <trindade.joao@gmail.com>\nJoe Beda <joe.github@bedafamily.com>\nJoe Doliner <jdoliner@pachyderm.io>\nJoe Ferguson <joe@infosiftr.com>\nJoe Gordon <joe.gordon0@gmail.com>\nJoe Shaw <joe@joeshaw.org>\nJoe Van Dyk <joe@tanga.com>\nJoel Friedly <joelfriedly@gmail.com>\nJoel Handwell <joelhandwell@gmail.com>\nJoel Hansson <joel.hansson@ecraft.com>\nJoel Wurtz <jwurtz@jolicode.com>\nJoey Geiger <jgeiger@gmail.com>\nJoey Geiger <jgeiger@users.noreply.github.com>\nJoey Gibson <joey@joeygibson.com>\nJoffrey F <joffrey@docker.com>\nJohan Euphrosine <proppy@google.com>\nJohan Rydberg <johan.rydberg@gmail.com>\nJohanan Lieberman <johanan.lieberman@gmail.com>\nJohannes 'fish' Ziemke <github@freigeist.org>\nJohn Costa <john.costa@gmail.com>\nJohn Feminella <jxf@jxf.me>\nJohn Gardiner Myers <jgmyers@proofpoint.com>\nJohn Gossman <johngos@microsoft.com>\nJohn Harris <john@johnharris.io>\nJohn Howard <github@lowenna.com>\nJohn Laswell <john.n.laswell@gmail.com>\nJohn Maguire <jmaguire@duosecurity.com>\nJohn Mulhausen <john@docker.com>\nJohn OBrien III <jobrieniii@yahoo.com>\nJohn Starks <jostarks@microsoft.com>\nJohn Stephens <johnstep@docker.com>\nJohn Tims <john.k.tims@gmail.com>\nJohn V. Martinez <jvmatl@gmail.com>\nJohn Warwick <jwarwick@gmail.com>\nJohn Willis <john.willis@docker.com>\nJon Johnson <jonjohnson@google.com>\nJon Surrell <jon.surrell@gmail.com>\nJon Wedaman <jweede@gmail.com>\nJonas Dohse <jonas@dohse.ch>\nJonas Geiler <git@jonasgeiler.com>\nJonas Heinrich <Jonas@JonasHeinrich.com>\nJonas Pfenniger <jonas@pfenniger.name>\nJonathan A. Schweder <jonathanschweder@gmail.com>\nJonathan A. Sternberg <jonathansternberg@gmail.com>\nJonathan Boulle <jonathanboulle@gmail.com>\nJonathan Camp <jonathan@irondojo.com>\nJonathan Choy <jonathan.j.choy@gmail.com>\nJonathan Dowland <jon+github@alcopop.org>\nJonathan Lebon <jlebon@redhat.com>\nJonathan Lomas <jonathan@floatinglomas.ca>\nJonathan McCrohan <jmccrohan@gmail.com>\nJonathan Mueller <j.mueller@apoveda.ch>\nJonathan Pares <jonathanpa@users.noreply.github.com>\nJonathan Rudenberg <jonathan@titanous.com>\nJonathan Stoppani <jonathan.stoppani@divio.com>\nJonh Wendell <jonh.wendell@redhat.com>\nJoni Sar <yoni@cocycles.com>\nJoost Cassee <joost@cassee.net>\nJordan Arentsen <blissdev@gmail.com>\nJordan Jennings <jjn2009@gmail.com>\nJordan Sissel <jls@semicomplete.com>\nJordi Massaguer Pla <jmassaguerpla@suse.de>\nJorge Marin <chipironcin@users.noreply.github.com>\nJorit Kleine-Möllhoff <joppich@bricknet.de>\nJose Diaz-Gonzalez <email@josediazgonzalez.com>\nJoseph Anthony Pasquale Holsten <joseph@josephholsten.com>\nJoseph Hager <ajhager@gmail.com>\nJoseph Kern <jkern@semafour.net>\nJoseph Rothrock <rothrock@rothrock.org>\nJosh <jokajak@gmail.com>\nJosh Bodah <jb3689@yahoo.com>\nJosh Bonczkowski <josh.bonczkowski@gmail.com>\nJosh Chorlton <jchorlton@gmail.com>\nJosh Eveleth <joshe@opendns.com>\nJosh Hawn <josh.hawn@docker.com>\nJosh Horwitz <horwitz@addthis.com>\nJosh Poimboeuf <jpoimboe@redhat.com>\nJosh Soref <jsoref@gmail.com>\nJosh Wilson <josh.wilson@fivestars.com>\nJosiah Kiehl <jkiehl@riotgames.com>\nJosé Tomás Albornoz <jojo@eljojo.net>\nJoyce Jang <mail@joycejang.com>\nJP <jpellerin@leapfrogonline.com>\nJSchltggr <jschltggr@gmail.com>\nJulian Taylor <jtaylor.debian@googlemail.com>\nJulien Barbier <write0@gmail.com>\nJulien Bisconti <veggiemonk@users.noreply.github.com>\nJulien Bordellier <julienbordellier@gmail.com>\nJulien Dubois <julien.dubois@gmail.com>\nJulien Kassar <github@kassisol.com>\nJulien Maitrehenry <julien.maitrehenry@me.com>\nJulien Pervillé <julien.perville@perfect-memory.com>\nJulien Pivotto <roidelapluie@inuits.eu>\nJulio Guerra <julio@sqreen.com>\nJulio Montes <imc.coder@gmail.com>\nJun Du <dujun5@huawei.com>\nJun-Ru Chang <jrjang@gmail.com>\njunxu <xujun@cmss.chinamobile.com>\nJussi Nummelin <jussi.nummelin@gmail.com>\nJustas Brazauskas <brazauskasjustas@gmail.com>\nJusten Martin <jmart@the-coder.com>\nJustin Chadwell <me@jedevc.com>\nJustin Cormack <justin.cormack@docker.com>\nJustin Force <justin.force@gmail.com>\nJustin Keller <85903732+jk-vb@users.noreply.github.com>\nJustin Menga <justin.menga@gmail.com>\nJustin Plock <jplock@users.noreply.github.com>\nJustin Simonelis <justin.p.simonelis@gmail.com>\nJustin Terry <juterry@microsoft.com>\nJustyn Temme <justyntemme@gmail.com>\nJyrki Puttonen <jyrkiput@gmail.com>\nJérémy Leherpeur <amenophis@leherpeur.net>\nJérôme Petazzoni <jerome.petazzoni@docker.com>\nJörg Thalheim <joerg@higgsboson.tk>\nK. Heller <pestophagous@gmail.com>\nKai Blin <kai@samba.org>\nKai Qiang Wu (Kennan) <wkq5325@gmail.com>\nKaijie Chen <chen@kaijie.org>\nKaita Nakamura <kaita.nakamura0830@gmail.com>\nKamil Domański <kamil@domanski.co>\nKamjar Gerami <kami.gerami@gmail.com>\nKanstantsin Shautsou <kanstantsin.sha@gmail.com>\nKara Alexandra <kalexandra@us.ibm.com>\nKaran Lyons <karan@karanlyons.com>\nKareem Khazem <karkhaz@karkhaz.com>\nkargakis <kargakis@users.noreply.github.com>\nKarl Grzeszczak <karlgrz@gmail.com>\nKarol Duleba <mr.fuxi@gmail.com>\nKarthik Karanth <karanth.karthik@gmail.com>\nKarthik Nayak <karthik.188@gmail.com>\nKasper Fabæch Brandt <poizan@poizan.dk>\nKate Heddleston <kate.heddleston@gmail.com>\nKatie McLaughlin <katie@glasnt.com>\nKato Kazuyoshi <kato.kazuyoshi@gmail.com>\nKatrina Owen <katrina.owen@gmail.com>\nKawsar Saiyeed <kawsar.saiyeed@projiris.com>\nKay Yan <kay.yan@daocloud.io>\nkayrus <kay.diam@gmail.com>\nKazuhiro Sera <seratch@gmail.com>\nKazuyoshi Kato <katokazu@amazon.com>\nKe Li <kel@splunk.com>\nKe Xu <leonhartx.k@gmail.com>\nKei Ohmura <ohmura.kei@gmail.com>\nKeith Hudgins <greenman@greenman.org>\nKeli Hu <dev@keli.hu>\nKen Bannister <kb2ma@runbox.com>\nKen Cochrane <kencochrane@gmail.com>\nKen Herner <kherner@progress.com>\nKen ICHIKAWA <ichikawa.ken@jp.fujitsu.com>\nKen Reese <krrgithub@gmail.com>\nKenfe-Mickaël Laventure <mickael.laventure@gmail.com>\nKenjiro Nakayama <nakayamakenjiro@gmail.com>\nKent Johnson <kentoj@gmail.com>\nKenta Tada <Kenta.Tada@sony.com>\nKevin \"qwazerty\" Houdebert <kevin.houdebert@gmail.com>\nKevin Alvarez <github@crazymax.dev>\nKevin Burke <kev@inburke.com>\nKevin Clark <kevin.clark@gmail.com>\nKevin Feyrer <kevin.feyrer@btinternet.com>\nKevin J. Lynagh <kevin@keminglabs.com>\nKevin Jing Qiu <kevin@idempotent.ca>\nKevin Kern <kaiwentan@harmonycloud.cn>\nKevin Menard <kevin@nirvdrum.com>\nKevin Meredith <kevin.m.meredith@gmail.com>\nKevin P. Kucharczyk <kevinkucharczyk@gmail.com>\nKevin Parsons <kevpar@microsoft.com>\nKevin Richardson <kevin@kevinrichardson.co>\nKevin Shi <kshi@andrew.cmu.edu>\nKevin Wallace <kevin@pentabarf.net>\nKevin Yap <me@kevinyap.ca>\nKeyvan Fatehi <keyvanfatehi@gmail.com>\nkies <lleelm@gmail.com>\nKim BKC Carlbacker <kim.carlbacker@gmail.com>\nKim Eik <kim@heldig.org>\nKimbro Staken <kstaken@kstaken.com>\nKir Kolyshkin <kolyshkin@gmail.com>\nKiran Gangadharan <kiran.daredevil@gmail.com>\nKirill SIbirev <l0kix2@gmail.com>\nKirk Easterson <kirk.easterson@gmail.com>\nknappe <tyler.knappe@gmail.com>\nKohei Tsuruta <coheyxyz@gmail.com>\nKoichi Shiraishi <k@zchee.io>\nKonrad Kleine <konrad.wilhelm.kleine@gmail.com>\nKonrad Ponichtera <konpon96@gmail.com>\nKonstantin Gribov <grossws@gmail.com>\nKonstantin L <sw.double@gmail.com>\nKonstantin Pelykh <kpelykh@zettaset.com>\nKostadin Plachkov <k.n.plachkov@gmail.com>\nkpcyrd <git@rxv.cc>\nKrasi Georgiev <krasi@vip-consult.solutions>\nKrasimir Georgiev <support@vip-consult.co.uk>\nKris-Mikael Krister <krismikael@protonmail.com>\nKristian Haugene <kristian.haugene@capgemini.com>\nKristian Heljas <kristian@kristian.ee>\nKristina Zabunova <triara.xiii@gmail.com>\nKrystian Wojcicki <kwojcicki@sympatico.ca>\nKunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>\nKunal Tyagi <tyagi.kunal@live.com>\nKyle Conroy <kyle.j.conroy@gmail.com>\nKyle Linden <linden.kyle@gmail.com>\nKyle Squizzato <ksquizz@gmail.com>\nKyle Wuolle <kyle.wuolle@gmail.com>\nkyu <leehk1227@gmail.com>\nLachlan Coote <lcoote@vmware.com>\nLai Jiangshan <jiangshanlai@gmail.com>\nLajos Papp <lajos.papp@sequenceiq.com>\nLakshan Perera <lakshan@laktek.com>\nLalatendu Mohanty <lmohanty@redhat.com>\nLance Chen <cyen0312@gmail.com>\nLance Kinley <lkinley@loyaltymethods.com>\nLars Andringa <l.s.andringa@rug.nl>\nLars Butler <Lars.Butler@gmail.com>\nLars Kellogg-Stedman <lars@redhat.com>\nLars R. Damerow <lars@pixar.com>\nLars-Magnus Skog <ralphtheninja@riseup.net>\nLaszlo Meszaros <lacienator@gmail.com>\nLaura Brehm <laurabrehm@hey.com>\nLaura Frank <ljfrank@gmail.com>\nLaurent Bernaille <laurent.bernaille@datadoghq.com>\nLaurent Erignoux <lerignoux@gmail.com>\nLaurent Goderre <laurent.goderre@docker.com>\nLaurie Voss <github@seldo.com>\nLeandro Motta Barros <lmb@stackedboxes.org>\nLeandro Siqueira <leandro.siqueira@gmail.com>\nLee Calcote <leecalcote@gmail.com>\nLee Chao <932819864@qq.com>\nLee, Meng-Han <sunrisedm4@gmail.com>\nLei Gong <lgong@alauda.io>\nLei Jitang <leijitang@huawei.com>\nLeiiwang <u2takey@gmail.com>\nLen Weincier <len@cloudafrica.net>\nLennie <github@consolejunkie.net>\nLeo Gallucci <elgalu3@gmail.com>\nLeonardo Nodari <me@leonardonodari.it>\nLeonardo Taccari <leot@NetBSD.org>\nLeszek Kowalski <github@leszekkowalski.pl>\nLevi Blackstone <levi.blackstone@rackspace.com>\nLevi Gross <levi@levigross.com>\nLevi Harrison <levisamuelharrison@gmail.com>\nLewis Daly <lewisdaly@me.com>\nLewis Marshall <lewis@lmars.net>\nLewis Peckover <lew+github@lew.io>\nLi Yi <denverdino@gmail.com>\nLiam Macgillavry <liam@kumina.nl>\nLiana Lo <liana.lixia@gmail.com>\nLiang Mingqiang <mqliang.zju@gmail.com>\nLiang-Chi Hsieh <viirya@gmail.com>\nliangwei <liangwei14@huawei.com>\nLiao Qingwei <liaoqingwei@huawei.com>\nLifubang <lifubang@acmcoder.com>\nLihua Tang <lhtang@alauda.io>\nLily Guo <lily.guo@docker.com>\nlimeidan <limeidan@loongson.cn>\nLin Lu <doraalin@163.com>\nLingFaKe <lingfake@huawei.com>\nLinus Heckemann <lheckemann@twig-world.com>\nLiran Tal <liran.tal@gmail.com>\nLiron Levin <liron@twistlock.com>\nLiu Bo <bo.li.liu@oracle.com>\nLiu Hua <sdu.liu@huawei.com>\nliwenqi <vikilwq@zju.edu.cn>\nlixiaobing10051267 <li.xiaobing1@zte.com.cn>\nLiz Zhang <lizzha@microsoft.com>\nLIZAO LI <lzlarryli@gmail.com>\nLizzie Dixon <_@lizzie.io>\nLloyd Dewolf <foolswisdom@gmail.com>\nLokesh Mandvekar <lsm5@fedoraproject.org>\nlongliqiang88 <394564827@qq.com>\nLorenz Leutgeb <lorenz.leutgeb@gmail.com>\nLorenzo Fontana <fontanalorenz@gmail.com>\nLotus Fenn <fenn.lotus@gmail.com>\nLouis Delossantos <ldelossa.ld@gmail.com>\nLouis Opter <kalessin@kalessin.fr>\nLuboslav Pivarc <lpivarc@redhat.com>\nLuca Favatella <luca.favatella@erlang-solutions.com>\nLuca Marturana <lucamarturana@gmail.com>\nLuca Orlandi <luca.orlandi@gmail.com>\nLuca-Bogdan Grigorescu <Luca-Bogdan Grigorescu>\nLucas Chan <lucas-github@lucaschan.com>\nLucas Chi <lucas@teacherspayteachers.com>\nLucas Molas <lmolas@fundacionsadosky.org.ar>\nLucas Silvestre <lukas.silvestre@gmail.com>\nLuciano Mores <leslau@gmail.com>\nLuis Henrique Mulinari <luis.mulinari@gmail.com>\nLuis Martínez de Bartolomé Izquierdo <lmartinez@biicode.com>\nLuiz Svoboda <luizek@gmail.com>\nLukas Heeren <lukas-heeren@hotmail.com>\nLukas Waslowski <cr7pt0gr4ph7@gmail.com>\nlukaspustina <lukas.pustina@centerdevice.com>\nLukasz Zajaczkowski <Lukasz.Zajaczkowski@ts.fujitsu.com>\nLuke Marsden <me@lukemarsden.net>\nLyn <energylyn@zju.edu.cn>\nLynda O'Leary <lyndaoleary29@gmail.com>\nLénaïc Huard <lhuard@amadeus.com>\nMa Müller <mueller-ma@users.noreply.github.com>\nMa Shimiao <mashimiao.fnst@cn.fujitsu.com>\nMabin <bin.ma@huawei.com>\nMadhan Raj Mookkandy <MadhanRaj.Mookkandy@microsoft.com>\nMadhav Puri <madhav.puri@gmail.com>\nMadhu Venugopal <mavenugo@gmail.com>\nMageee <fangpuyi@foxmail.com>\nmaggie44 <64841595+maggie44@users.noreply.github.com>\nMahesh Tiyyagura <tmahesh@gmail.com>\nmalnick <malnick@gmail..com>\nMalte Janduda <mail@janduda.net>\nManfred Touron <m@42.am>\nManfred Zabarauskas <manfredas@zabarauskas.com>\nManjunath A Kumatagi <mkumatag@in.ibm.com>\nMansi Nahar <mmn4185@rit.edu>\nManuel Meurer <manuel@krautcomputing.com>\nManuel Rüger <manuel@rueg.eu>\nManuel Woelker <github@manuel.woelker.org>\nmapk0y <mapk0y@gmail.com>\nMarat Radchenko <marat@slonopotamus.org>\nMarc Abramowitz <marc@marc-abramowitz.com>\nMarc Kuo <kuomarc2@gmail.com>\nMarc Tamsky <mtamsky@gmail.com>\nMarcel Edmund Franke <marcel.edmund.franke@gmail.com>\nMarcelo Horacio Fortino <info@fortinux.com>\nMarcelo Salazar <chelosalazar@gmail.com>\nMarco Hennings <marco.hennings@freiheit.com>\nMarcus Cobden <mcobden@cisco.com>\nMarcus Farkas <toothlessgear@finitebox.com>\nMarcus Linke <marcus.linke@gmx.de>\nMarcus Martins <marcus@docker.com>\nMarcus Ramberg <marcus@nordaaker.com>\nMarek Goldmann <marek.goldmann@gmail.com>\nMarian Marinov <mm@yuhu.biz>\nMarianna Tessel <mtesselh@gmail.com>\nMario Loriedo <mario.loriedo@gmail.com>\nMarius Gundersen <me@mariusgundersen.net>\nMarius Sturm <marius@graylog.com>\nMarius Voila <marius.voila@gmail.com>\nMark Allen <mrallen1@yahoo.com>\nMark Feit <mfeit@internet2.edu>\nMark Jeromin <mark.jeromin@sysfrog.net>\nMark McGranaghan <mmcgrana@gmail.com>\nMark McKinstry <mmckinst@umich.edu>\nMark Milstein <mark@epiloque.com>\nMark Oates <fl0yd@me.com>\nMark Parker <godefroi@users.noreply.github.com>\nMark Vainomaa <mikroskeem@mikroskeem.eu>\nMark West <markewest@gmail.com>\nMarkan Patel <mpatel678@gmail.com>\nMarko Mikulicic <mmikulicic@gmail.com>\nMarko Tibold <marko@tibold.nl>\nMarkus Fix <lispmeister@gmail.com>\nMarkus Kortlang <hyp3rdino@googlemail.com>\nMartijn Dwars <ikben@martijndwars.nl>\nMartijn van Oosterhout <kleptog@svana.org>\nMartin Braun <braun@neuroforge.de>\nMartin Dojcak <martin.dojcak@lablabs.io>\nMartin Honermeyer <maze@strahlungsfrei.de>\nMartin Jirku <martin@jirku.sk>\nMartin Kelly <martin@surround.io>\nMartin Mosegaard Amdisen <martin.amdisen@praqma.com>\nMartin Muzatko <martin@happy-css.com>\nMartin Redmond <redmond.martin@gmail.com>\nMaru Newby <mnewby@thesprawl.net>\nMary Anthony <mary.anthony@docker.com>\nMasahito Zembutsu <zembutsu@users.noreply.github.com>\nMasato Ohba <over.rye@gmail.com>\nMasayuki Morita <minamijoyo@gmail.com>\nMason Malone <mason.malone@gmail.com>\nMateusz Sulima <sulima.mateusz@gmail.com>\nMathias Monnerville <mathias@monnerville.com>\nMathieu Champlon <mathieu.champlon@docker.com>\nMathieu Le Marec - Pasquet <kiorky@cryptelium.net>\nMathieu Parent <math.parent@gmail.com>\nMathieu Paturel <mathieu.paturel@gmail.com>\nMatt Apperson <me@mattapperson.com>\nMatt Bachmann <bachmann.matt@gmail.com>\nMatt Bajor <matt@notevenremotelydorky.com>\nMatt Bentley <matt.bentley@docker.com>\nMatt Haggard <haggardii@gmail.com>\nMatt Hoyle <matt@deployable.co>\nMatt McCormick <matt.mccormick@kitware.com>\nMatt Moore <mattmoor@google.com>\nMatt Morrison <3maven@gmail.com>\nMatt Richardson <matt@redgumtech.com.au>\nMatt Rickard <mrick@google.com>\nMatt Robenolt <matt@ydekproductions.com>\nMatt Schurenko <matt.schurenko@gmail.com>\nMatt Williams <mattyw@me.com>\nMatthew Heon <mheon@redhat.com>\nMatthew Lapworth <matthewl@bit-shift.net>\nMatthew Mayer <matthewkmayer@gmail.com>\nMatthew Mosesohn <raytrac3r@gmail.com>\nMatthew Mueller <mattmuelle@gmail.com>\nMatthew Riley <mattdr@google.com>\nMatthias Klumpp <matthias@tenstral.net>\nMatthias Kühnle <git.nivoc@neverbox.com>\nMatthias Rampke <mr@soundcloud.com>\nMatthieu Fronton <m@tthieu.fr>\nMatthieu Hauglustaine <matt.hauglustaine@gmail.com>\nMatthieu MOREL <matthieu.morel35@gmail.com>\nMattias Jernberg <nostrad@gmail.com>\nMauricio Garavaglia <mauricio@medallia.com>\nmauriyouth <mauriyouth@gmail.com>\nMax Harmathy <max.harmathy@web.de>\nMax Shytikov <mshytikov@gmail.com>\nMax Timchenko <maxvt@pagerduty.com>\nMaxim Fedchyshyn <sevmax@gmail.com>\nMaxim Ivanov <ivanov.maxim@gmail.com>\nMaxim Kulkin <mkulkin@mirantis.com>\nMaxim Treskin <zerthurd@gmail.com>\nMaxime Petazzoni <max@signalfuse.com>\nMaximiliano Maccanti <maccanti@amazon.com>\nMaxwell <csuhp007@gmail.com>\nMeaglith Ma <genedna@gmail.com>\nmeejah <meejah@meejah.ca>\nMegan Kostick <mkostick@us.ibm.com>\nMehul Kar <mehul.kar@gmail.com>\nMei ChunTao <mei.chuntao@zte.com.cn>\nMengdi Gao <usrgdd@gmail.com>\nMenghui Chen <menghui.chen@alibaba-inc.com>\nMert Yazıcıoğlu <merty@users.noreply.github.com>\nmgniu <mgniu@dataman-inc.com>\nMicah Zoltu <micah@newrelic.com>\nMichael A. Smith <michael@smith-li.com>\nMichael Beskin <mrbeskin@gmail.com>\nMichael Bridgen <mikeb@squaremobius.net>\nMichael Brown <michael@netdirect.ca>\nMichael Chiang <mchiang@docker.com>\nMichael Crosby <crosbymichael@gmail.com>\nMichael Currie <mcurrie@bruceforceresearch.com>\nMichael Friis <friism@gmail.com>\nMichael Gorsuch <gorsuch@github.com>\nMichael Grauer <michael.grauer@kitware.com>\nMichael Holzheu <holzheu@linux.vnet.ibm.com>\nMichael Hudson-Doyle <michael.hudson@canonical.com>\nMichael Huettermann <michael@huettermann.net>\nMichael Irwin <mikesir87@gmail.com>\nMichael Kebe <michael.kebe@hkm.de>\nMichael Kuehn <micha@kuehn.io>\nMichael Käufl <docker@c.michael-kaeufl.de>\nMichael Neale <michael.neale@gmail.com>\nMichael Nussbaum <michael.nussbaum@getbraintree.com>\nMichael Prokop <github@michael-prokop.at>\nMichael Scharf <github@scharf.gr>\nMichael Spetsiotis <michael_spets@hotmail.com>\nMichael Stapelberg <michael+gh@stapelberg.de>\nMichael Steinert <mike.steinert@gmail.com>\nMichael Thies <michaelthies78@gmail.com>\nMichael Weidmann <michaelweidmann@web.de>\nMichael West <mwest@mdsol.com>\nMichael Zhao <michael.zhao@arm.com>\nMichal Fojtik <mfojtik@redhat.com>\nMichal Gebauer <mishak@mishak.net>\nMichal Jemala <michal.jemala@gmail.com>\nMichal Kostrzewa <michal.kostrzewa@codilime.com>\nMichal Minář <miminar@redhat.com>\nMichal Rostecki <mrostecki@opensuse.org>\nMichal Wieczorek <wieczorek-michal@wp.pl>\nMichaël Pailloncy <mpapo.dev@gmail.com>\nMichał Czeraszkiewicz <czerasz@gmail.com>\nMichał Gryko <github@odkurzacz.org>\nMichał Kosek <mihao@users.noreply.github.com>\nMichiel de Jong <michiel@unhosted.org>\nMickaël Fortunato <morsi.morsicus@gmail.com>\nMickaël Remars <mickael@remars.com>\nMiguel Angel Fernández <elmendalerenda@gmail.com>\nMiguel Morales <mimoralea@gmail.com>\nMiguel Perez <miguel@voyat.com>\nMihai Borobocea <MihaiBorob@gmail.com>\nMihuleacc Sergiu <mihuleac.sergiu@gmail.com>\nMikael Davranche <mikael.davranche@corp.ovh.com>\nMike Brown <brownwm@us.ibm.com>\nMike Bush <mpbush@gmail.com>\nMike Casas <mkcsas0@gmail.com>\nMike Chelen <michael.chelen@gmail.com>\nMike Danese <mikedanese@google.com>\nMike Dillon <mike@embody.org>\nMike Dougherty <mike.dougherty@docker.com>\nMike Estes <mike.estes@logos.com>\nMike Gaffney <mike@uberu.com>\nMike Goelzer <mike.goelzer@docker.com>\nMike Leone <mleone896@gmail.com>\nMike Lundy <mike@fluffypenguin.org>\nMike MacCana <mike.maccana@gmail.com>\nMike Naberezny <mike@naberezny.com>\nMike Snitzer <snitzer@redhat.com>\nMike Sul <mike.sul@foundries.io>\nmikelinjie <294893458@qq.com>\nMikhail Sobolev <mss@mawhrin.net>\nMiklos Szegedi <miklos.szegedi@cloudera.com>\nMilas Bowman <devnull@milas.dev>\nMilind Chawre <milindchawre@gmail.com>\nMiloslav Trmač <mitr@redhat.com>\nmingqing <limingqing@cyou-inc.com>\nMingzhen Feng <fmzhen@zju.edu.cn>\nMisty Stanley-Jones <misty@docker.com>\nMitch Capper <mitch.capper@gmail.com>\nMizuki Urushida <z11111001011@gmail.com>\nmlarcher <github@ringabell.org>\nMohammad Banikazemi <MBanikazemi@gmail.com>\nMohammad Nasirifar <farnasirim@gmail.com>\nMohammed Aaqib Ansari <maaquib@gmail.com>\nMohd Sadiq <mohdsadiq058@gmail.com>\nMohit Soni <mosoni@ebay.com>\nMoorthy RS <rsmoorthy@gmail.com>\nMorgan Bauer <mbauer@us.ibm.com>\nMorgante Pell <morgante.pell@morgante.net>\nMorgy93 <thomas@ulfertsprygoda.de>\nMorten Siebuhr <sbhr@sbhr.dk>\nMorton Fox <github@qslw.com>\nMoysés Borges <moysesb@gmail.com>\nmrfly <mr.wrfly@gmail.com>\nMrunal Patel <mrunalp@gmail.com>\nMuayyad Alsadi <alsadi@gmail.com>\nMuhammad Zohaib Aslam <zohaibse011@gmail.com>\nMustafa Akın <mustafa91@gmail.com>\nMuthukumar R <muthur@gmail.com>\nMyeongjoon Kim <kimmj8409@gmail.com>\nMáximo Cuadros <mcuadros@gmail.com>\nMédi-Rémi Hashim <medimatrix@users.noreply.github.com>\nNace Oroz <orkica@gmail.com>\nNahum Shalman <nshalman@omniti.com>\nNakul Pathak <nakulpathak3@hotmail.com>\nNalin Dahyabhai <nalin@redhat.com>\nNan Monnand Deng <monnand@gmail.com>\nNaoki Orii <norii@cs.cmu.edu>\nNatalie Parker <nparker@omnifone.com>\nNatanael Copa <natanael.copa@docker.com>\nNatasha Jarus <linuxmercedes@gmail.com>\nNate Brennand <nate.brennand@clever.com>\nNate Eagleson <nate@nateeag.com>\nNate Jones <nate@endot.org>\nNathan Baulch <nathan.baulch@gmail.com>\nNathan Carlson <carl4403@umn.edu>\nNathan Herald <me@nathanherald.com>\nNathan Hsieh <hsieh.nathan@gmail.com>\nNathan Kleyn <nathan@nathankleyn.com>\nNathan LeClaire <nathan.leclaire@docker.com>\nNathan McCauley <nathan.mccauley@docker.com>\nNathan Williams <nathan@teamtreehouse.com>\nNaveed Jamil <naveed.jamil@tenpearls.com>\nNeal McBurnett <neal@mcburnett.org>\nNeil Horman <nhorman@tuxdriver.com>\nNeil Peterson <neilpeterson@outlook.com>\nNelson Chen <crazysim@gmail.com>\nNeyazul Haque <nuhaque@gmail.com>\nNghia Tran <nghia@google.com>\nNiall O'Higgins <niallo@unworkable.org>\nNicholas E. Rabenau <nerab@gmx.at>\nNick Adcock <nick.adcock@docker.com>\nNick DeCoursin <n.decoursin@foodpanda.com>\nNick Irvine <nfirvine@nfirvine.com>\nNick Neisen <nwneisen@gmail.com>\nNick Parker <nikaios@gmail.com>\nNick Payne <nick@kurai.co.uk>\nNick Russo <nicholasjamesrusso@gmail.com>\nNick Santos <nick.santos@docker.com>\nNick Stenning <nick.stenning@digital.cabinet-office.gov.uk>\nNick Stinemates <nick@stinemates.org>\nNick Wood <nwood@microsoft.com>\nNickrenREN <yuquan.ren@easystack.cn>\nNicola Kabar <nicolaka@gmail.com>\nNicolas Borboën <ponsfrilus@gmail.com>\nNicolas De Loof <nicolas.deloof@gmail.com>\nNicolas Dudebout <nicolas.dudebout@gatech.edu>\nNicolas Goy <kuon@goyman.com>\nNicolas Kaiser <nikai@nikai.net>\nNicolas Sterchele <sterchele.nicolas@gmail.com>\nNicolas V Castet <nvcastet@us.ibm.com>\nNicolás Hock Isaza <nhocki@gmail.com>\nNiel Drummond <niel@drummond.lu>\nNigel Poulton <nigelpoulton@hotmail.com>\nNik Nyby <nikolas@gnu.org>\nNikhil Chawla <chawlanikhil24@gmail.com>\nNikolaMandic <mn080202@gmail.com>\nNikolas Garofil <nikolas.garofil@uantwerpen.be>\nNikolay Edigaryev <edigaryev@gmail.com>\nNikolay Milovanov <nmil@itransformers.net>\nningmingxiao <ning.mingxiao@zte.com.cn>\nNirmal Mehta <nirmalkmehta@gmail.com>\nNishant Totla <nishanttotla@gmail.com>\nNIWA Hideyuki <niwa.niwa@nifty.ne.jp>\nNoah Meyerhans <nmeyerha@amazon.com>\nNoah Treuhaft <noah.treuhaft@docker.com>\nNobodyOnSE <ich@sektor.selfip.com>\nnoducks <onemannoducks@gmail.com>\nNolan Darilek <nolan@thewordnerd.info>\nNolan Miles <nolanpmiles@gmail.com>\nNoriki Nakamura <noriki.nakamura@miraclelinux.com>\nnponeccop <andy.melnikov@gmail.com>\nNurahmadie <nurahmadie@gmail.com>\nNuutti Kotivuori <naked@iki.fi>\nnzwsch <hi@nzwsch.com>\nO.S. Tezer <ostezer@gmail.com>\nobjectified <objectified@gmail.com>\nOctol1ttle <l1ttleofficial@outlook.com>\nOdin Ugedal <odin@ugedal.com>\nOguz Bilgic <fisyonet@gmail.com>\nOh Jinkyun <tintypemolly@gmail.com>\nOhad Schneider <ohadschn@users.noreply.github.com>\nohmystack <jun.jiang02@ele.me>\nOle Reifschneider <mail@ole-reifschneider.de>\nOliver Neal <ItsVeryWindy@users.noreply.github.com>\nOliver Reason <oli@overrateddev.co>\nOlivier Gambier <dmp42@users.noreply.github.com>\nOlle Jonsson <olle.jonsson@gmail.com>\nOlli Janatuinen <olli.janatuinen@gmail.com>\nOlly Pomeroy <oppomeroy@gmail.com>\nOmri Shiv <Omri.Shiv@teradata.com>\nOnur Filiz <onur.filiz@microsoft.com>\nOriol Francès <oriolfa@gmail.com>\nOscar Bonilla <6f6231@gmail.com>\noscar.chen <2972789494@qq.com>\nOskar Niburski <oskarniburski@gmail.com>\nOtto Kekäläinen <otto@seravo.fi>\nOuyang Liduo <oyld0210@163.com>\nOvidio Mallo <ovidio.mallo@gmail.com>\nPanagiotis Moustafellos <pmoust@elastic.co>\nPaolo G. Giarrusso <p.giarrusso@gmail.com>\nPascal <pascalgn@users.noreply.github.com>\nPascal Bach <pascal.bach@siemens.com>\nPascal Borreli <pascal@borreli.com>\nPascal Hartig <phartig@rdrei.net>\nPatrick Böänziger <patrick.baenziger@bsi-software.com>\nPatrick Devine <patrick.devine@docker.com>\nPatrick Haas <patrickhaas@google.com>\nPatrick Hemmer <patrick.hemmer@gmail.com>\nPatrick St. laurent <patrick@saint-laurent.us>\nPatrick Stapleton <github@gdi2290.com>\nPatrik Cyvoct <patrik@ptrk.io>\nPatrik Leifert <patrikleifert@hotmail.com>\npattichen <craftsbear@gmail.com>\nPaul \"TBBle\" Hampson <Paul.Hampson@Pobox.com>\nPaul <paul9869@gmail.com>\npaul <paul@inkling.com>\nPaul Annesley <paul@annesley.cc>\nPaul Bellamy <paul.a.bellamy@gmail.com>\nPaul Bowsher <pbowsher@globalpersonals.co.uk>\nPaul Furtado <pfurtado@hubspot.com>\nPaul Hammond <paul@paulhammond.org>\nPaul Jimenez <pj@place.org>\nPaul Kehrer <paul.l.kehrer@gmail.com>\nPaul Lietar <paul@lietar.net>\nPaul Liljenberg <liljenberg.paul@gmail.com>\nPaul Morie <pmorie@gmail.com>\nPaul Nasrat <pnasrat@gmail.com>\nPaul Seiffert <paul.seiffert@jimdo.com>\nPaul Weaver <pauweave@cisco.com>\nPaulo Gomes <pjbgf@linux.com>\nPaulo Ribeiro <paigr.io@gmail.com>\nPavel Lobashov <ShockwaveNN@gmail.com>\nPavel Matěja <pavel@verotel.cz>\nPavel Pletenev <cpp.create@gmail.com>\nPavel Pospisil <pospispa@gmail.com>\nPavel Sutyrin <pavel.sutyrin@gmail.com>\nPavel Tikhomirov <ptikhomirov@virtuozzo.com>\nPavlos Ratis <dastergon@gentoo.org>\nPavol Vargovcik <pallly.vargovcik@gmail.com>\nPawel Konczalski <mail@konczalski.de>\nPaweł Gronowski <pawel.gronowski@docker.com>\npayall4u <payall4u@qq.com>\nPeeyush Gupta <gpeeyush@linux.vnet.ibm.com>\nPeggy Li <peggyli.224@gmail.com>\nPei Su <sillyousu@gmail.com>\nPeng Tao <bergwolf@gmail.com>\nPenghan Wang <ph.wang@daocloud.io>\nPer Weijnitz <per.weijnitz@gmail.com>\nperhapszzy@sina.com <perhapszzy@sina.com>\nPete Woods <pete.woods@circleci.com>\nPeter Bourgon <peter@bourgon.org>\nPeter Braden <peterbraden@peterbraden.co.uk>\nPeter Bücker <peter.buecker@pressrelations.de>\nPeter Choi <phkchoi89@gmail.com>\nPeter Dave Hello <hsu@peterdavehello.org>\nPeter Edge <peter.edge@gmail.com>\nPeter Ericson <pdericson@gmail.com>\nPeter Esbensen <pkesbensen@gmail.com>\nPeter Jaffe <pjaffe@nevo.com>\nPeter Kang <peter@spell.run>\nPeter Malmgren <ptmalmgren@gmail.com>\nPeter Salvatore <peter@psftw.com>\nPeter Volpe <petervo@redhat.com>\nPeter Waller <p@pwaller.net>\nPetr Švihlík <svihlik.petr@gmail.com>\nPetros Angelatos <petrosagg@gmail.com>\nPhil <underscorephil@gmail.com>\nPhil Estes <estesp@gmail.com>\nPhil Sphicas <phil.sphicas@att.com>\nPhil Spitler <pspitler@gmail.com>\nPhilip Alexander Etling <paetling@gmail.com>\nPhilip K. Warren <pkwarren@gmail.com>\nPhilip Monroe <phil@philmonroe.com>\nPhilipp Fruck <dev@p-fruck.de>\nPhilipp Gillé <philipp.gille@gmail.com>\nPhilipp Wahala <philipp.wahala@gmail.com>\nPhilipp Weissensteiner <mail@philippweissensteiner.com>\nPhillip Alexander <git@phillipalexander.io>\nphineas <phin@phineas.io>\npidster <pid@pidster.com>\nPiergiuliano Bossi <pgbossi@gmail.com>\nPierre <py@poujade.org>\nPierre Carrier <pierre@meteor.com>\nPierre Dal-Pra <dalpra.pierre@gmail.com>\nPierre Wacrenier <pierre.wacrenier@gmail.com>\nPierre-Alain RIVIERE <pariviere@ippon.fr>\npinglanlu <pinglanlu@outlook.com>\nPiotr Bogdan <ppbogdan@gmail.com>\nPiotr Karbowski <piotr.karbowski@protonmail.ch>\nPorjo <porjo38@yahoo.com.au>\nPoul Kjeldager Sørensen <pks@s-innovations.net>\nPradeep Chhetri <pradeep@indix.com>\nPradip Dhara <pradipd@microsoft.com>\nPradipta Kr. Banerjee <bpradip@in.ibm.com>\nPrasanna Gautam <prasannagautam@gmail.com>\nPratik Karki <prertik@outlook.com>\nPrayag Verma <prayag.verma@gmail.com>\nPriya Wadhwa <priyawadhwa@google.com>\nProjjol Banerji <probaner23@gmail.com>\nPrzemek Hejman <przemyslaw.hejman@gmail.com>\nPuneet Pruthi <puneet.pruthi@oracle.com>\nPure White <daniel48@126.com>\npysqz <randomq@126.com>\nQiang Huang <h.huangqiang@huawei.com>\nQin TianHuan <tianhuan@bingotree.cn>\nQinglan Peng <qinglanpeng@zju.edu.cn>\nQuan Tian <tianquan@cloudin.cn>\nqudongfang <qudongfang@gmail.com>\nQuentin Brossard <qbrossard@gmail.com>\nQuentin Perez <qperez@ocs.online.net>\nQuentin Tayssier <qtayssier@gmail.com>\nr0n22 <cameron.regan@gmail.com>\nRachit Sharma <rachitsharma613@gmail.com>\nRadostin Stoyanov <rstoyanov1@gmail.com>\nRafael Fernández López <ereslibre@ereslibre.es>\nRafal Jeczalik <rjeczalik@gmail.com>\nRafe Colton <rafael.colton@gmail.com>\nRaghavendra K T <raghavendra.kt@linux.vnet.ibm.com>\nRaghuram Devarakonda <draghuram@gmail.com>\nRaja Sami <raja.sami@tenpearls.com>\nRajat Pandit <rp@rajatpandit.com>\nRajdeep Dua <dua_rajdeep@yahoo.com>\nRalf Sippl <ralf.sippl@gmail.com>\nRalle <spam@rasmusa.net>\nRalph Bean <rbean@redhat.com>\nRamkumar Ramachandra <artagnon@gmail.com>\nRamon Brooker <rbrooker@aetherealmind.com>\nRamon van Alteren <ramon@vanalteren.nl>\nRaviTeja Pothana <ravi-teja@live.com>\nRay Tsang <rayt@google.com>\nReadmeCritic <frankensteinbot@gmail.com>\nrealityone <realityone@me.com>\nRecursive Madman <recursive.madman@gmx.de>\nReficul <xuzhenglun@gmail.com>\nRegan McCooey <rmccooey27@aol.com>\nRemi Rampin <remirampin@gmail.com>\nRemy Suen <remy.suen@gmail.com>\nRenato Riccieri Santos Zannon <renato.riccieri@gmail.com>\nRenaud Gaubert <rgaubert@nvidia.com>\nRhys Hiltner <rhys@twitch.tv>\nRi Xu <xuri.me@gmail.com>\nRicardo N Feliciano <FelicianoTech@gmail.com>\nRich Horwood <rjhorwood@apple.com>\nRich Moyse <rich@moyse.us>\nRich Seymour <rseymour@gmail.com>\nRichard Burnison <rburnison@ebay.com>\nRichard Hansen <rhansen@rhansen.org>\nRichard Harvey <richard@squarecows.com>\nRichard Mathie <richard.mathie@amey.co.uk>\nRichard Metzler <richard@paadee.com>\nRichard Scothern <richard.scothern@gmail.com>\nRicho Healey <richo@psych0tik.net>\nRick Bradley <rick@users.noreply.github.com>\nRick van de Loo <rickvandeloo@gmail.com>\nRick Wieman <git@rickw.nl>\nRik Nijessen <rik@keefo.nl>\nRiku Voipio <riku.voipio@linaro.org>\nRiley Guerin <rileytg.dev@gmail.com>\nRitesh H Shukla <sritesh@vmware.com>\nRiyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>\nRob Cowsill <42620235+rcowsill@users.noreply.github.com>\nRob Gulewich <rgulewich@netflix.com>\nRob Murray <rob.murray@docker.com>\nRob Vesse <rvesse@dotnetrdf.org>\nRobert Bachmann <rb@robertbachmann.at>\nRobert Bittle <guywithnose@gmail.com>\nRobert Obryk <robryk@gmail.com>\nRobert Schneider <mail@shakeme.info>\nRobert Shade <robert.shade@gmail.com>\nRobert Stern <lexandro2000@gmail.com>\nRobert Sturla <robertsturla@outlook.com>\nRobert Terhaar <rterhaar@atlanticdynamic.com>\nRobert Wallis <smilingrob@gmail.com>\nRobert Wang <robert@arctic.tw>\nRoberto G. Hashioka <roberto.hashioka@docker.com>\nRoberto Muñoz Fernández <robertomf@gmail.com>\nRobin Naundorf <r.naundorf@fh-muenster.de>\nRobin Schneider <ypid@riseup.net>\nRobin Speekenbrink <robin@kingsquare.nl>\nRobin Thoni <robin@rthoni.com>\nrobpc <rpcann@gmail.com>\nRodolfo Carvalho <rhcarvalho@gmail.com>\nRodrigo Campos <rodrigoca@microsoft.com>\nRodrigo Vaz <rodrigo.vaz@gmail.com>\nRoel Van Nyen <roel.vannyen@gmail.com>\nRoger Peppe <rogpeppe@gmail.com>\nRohit Jnagal <jnagal@google.com>\nRohit Kadam <rohit.d.kadam@gmail.com>\nRohit Kapur <rkapur@flatiron.com>\nRojin George <rojingeorge@huawei.com>\nRoland Huß <roland@jolokia.org>\nRoland Kammerer <roland.kammerer@linbit.com>\nRoland Moriz <rmoriz@users.noreply.github.com>\nRoma Sokolov <sokolov.r.v@gmail.com>\nRoman Dudin <katrmr@gmail.com>\nRoman Mazur <roman@balena.io>\nRoman Strashkin <roman.strashkin@gmail.com>\nRoman Volosatovs <roman.volosatovs@docker.com>\nRoman Zabaluev <gpg@haarolean.dev>\nRon Smits <ron.smits@gmail.com>\nRon Williams <ron.a.williams@gmail.com>\nRong Gao <gaoronggood@163.com>\nRong Zhang <rongzhang@alauda.io>\nRongxiang Song <tinysong1226@gmail.com>\nRony Weng <ronyweng@synology.com>\nroot <docker-dummy@example.com>\nroot <root@lxdebmas.marist.edu>\nroot <root@ubuntu-14.04-amd64-vbox>\nroot <root@webm215.cluster016.ha.ovh.net>\nRory Hunter <roryhunter2@gmail.com>\nRory McCune <raesene@gmail.com>\nRoss Boucher <rboucher@gmail.com>\nRovanion Luckey <rovanion.luckey@gmail.com>\nRoy Reznik <roy@wiz.io>\nRoyce Remer <royceremer@gmail.com>\nRozhnov Alexandr <nox73@ya.ru>\nRudolph Gottesheim <r.gottesheim@loot.at>\nRui Cao <ruicao@alauda.io>\nRui JingAn <quiterace@gmail.com>\nRui Lopes <rgl@ruilopes.com>\nRuilin Li <liruilin4@huawei.com>\nRunshen Zhu <runshen.zhu@gmail.com>\nRuss Magee <rmagee@gmail.com>\nRyan Abrams <rdabrams@gmail.com>\nRyan Anderson <anderson.ryanc@gmail.com>\nRyan Aslett <github@mixologic.com>\nRyan Barry <rbarry@mirantis.com>\nRyan Belgrave <rmb1993@gmail.com>\nRyan Campbell <campbellr@gmail.com>\nRyan Detzel <ryan.detzel@gmail.com>\nRyan Fowler <rwfowler@gmail.com>\nRyan Liu <ryanlyy@me.com>\nRyan McLaughlin <rmclaughlin@insidesales.com>\nRyan O'Donnell <odonnellryanc@gmail.com>\nRyan Seto <ryanseto@yak.net>\nRyan Shea <sheabot03@gmail.com>\nRyan Simmen <ryan.simmen@gmail.com>\nRyan Stelly <ryan.stelly@live.com>\nRyan Thomas <rthomas@atlassian.com>\nRyan Trauntvein <rtrauntvein@novacoast.com>\nRyan Wallner <ryan.wallner@clusterhq.com>\nRyan Zhang <ryan.zhang@docker.com>\nryancooper7 <ryan.cooper7@gmail.com>\nRyanDeng <sheldon.d1018@gmail.com>\nRyo Nakao <nakabonne@gmail.com>\nRyoga Saito <contact@proelbtn.com>\nRégis Behmo <regis@behmo.com>\nRémy Greinhofer <remy.greinhofer@livelovely.com>\ns. rannou <mxs@sbrk.org>\nSabin Basyal <sabin.basyal@gmail.com>\nSachin Joshi <sachin_jayant_joshi@hotmail.com>\nSagar Hani <sagarhani33@gmail.com>\nSainath Grandhi <sainath.grandhi@intel.com>\nSakeven Jiang <jc5930@sina.cn>\nSalahuddin Khan <salah@docker.com>\nSally O'Malley <somalley@redhat.com>\nSam Abed <sam.abed@gmail.com>\nSam Alba <sam.alba@gmail.com>\nSam Bailey <cyprix@cyprix.com.au>\nSam J Sharpe <sam.sharpe@digital.cabinet-office.gov.uk>\nSam Neirinck <sam@samneirinck.com>\nSam Reis <sreis@atlassian.com>\nSam Rijs <srijs@airpost.net>\nSam Thibault <sam.thibault@docker.com>\nSam Whited <sam@samwhited.com>\nSambuddha Basu <sambuddhabasu1@gmail.com>\nSami Wagiaalla <swagiaal@redhat.com>\nSamuel Andaya <samuel@andaya.net>\nSamuel Dion-Girardeau <samuel.diongirardeau@gmail.com>\nSamuel Karp <me@samuelkarp.com>\nSamuel PHAN <samuel-phan@users.noreply.github.com>\nsanchayanghosh <sanchayanghosh@outlook.com>\nSandeep Bansal <sabansal@microsoft.com>\nSankar சங்கர் <sankar.curiosity@gmail.com>\nSanket Saurav <sanketsaurav@gmail.com>\nSanthosh Manohar <santhosh@docker.com>\nsapphiredev <se.imas.kr@gmail.com>\nSargun Dhillon <sargun@netflix.com>\nSascha Andres <sascha.andres@outlook.com>\nSascha Grunert <sgrunert@suse.com>\nSataQiu <qiushida@beyondcent.com>\nSatnam Singh <satnam@raintown.org>\nSatoshi Amemiya <satoshi_amemiya@voyagegroup.com>\nSatoshi Tagomori <tagomoris@gmail.com>\nScott Bessler <scottbessler@gmail.com>\nScott Collier <emailscottcollier@gmail.com>\nScott Johnston <scott@docker.com>\nScott Moser <smoser@brickies.net>\nScott Percival <scottp@lastyard.com>\nScott Stamp <scottstamp851@gmail.com>\nScott Walls <sawalls@umich.edu>\nsdreyesg <sdreyesg@gmail.com>\nSean Christopherson <sean.j.christopherson@intel.com>\nSean Cronin <seancron@gmail.com>\nSean Lee <seanlee@tw.ibm.com>\nSean McIntyre <s.mcintyre@xverba.ca>\nSean OMeara <sean@chef.io>\nSean P. Kane <skane@newrelic.com>\nSean Rodman <srodman7689@gmail.com>\nSebastiaan van Steenis <mail@superseb.nl>\nSebastiaan van Stijn <github@gone.nl>\nSebastian Höffner <sebastian.hoeffner@mevis.fraunhofer.de>\nSebastian Radloff <sradloff23@gmail.com>\nSebastian Thomschke <sebthom@users.noreply.github.com>\nSebastien Goasguen <runseb@gmail.com>\nSenthil Kumar Selvaraj <senthil.thecoder@gmail.com>\nSenthil Kumaran <senthil@uthcode.com>\nSeongJae Park <sj38.park@gmail.com>\nSeongyeol Lim <seongyeol37@gmail.com>\nSerge Hallyn <serge.hallyn@ubuntu.com>\nSergey Alekseev <sergey.alekseev.minsk@gmail.com>\nSergey Evstifeev <sergey.evstifeev@gmail.com>\nSergii Kabashniuk <skabashnyuk@codenvy.com>\nSergio Lopez <slp@redhat.com>\nSerhat Gülçiçek <serhat25@gmail.com>\nSerhii Nakon <serhii.n@thescimus.com>\nSeungUkLee <lsy931106@gmail.com>\nSevki Hasirci <s@sevki.org>\nShane Canon <scanon@lbl.gov>\nShane da Silva <shane@dasilva.io>\nShaun Kaasten <shaunk@gmail.com>\nShaun Thompson <shaun.thompson@docker.com>\nshaunol <shaunol@gmail.com>\nShawn Landden <shawn@churchofgit.com>\nShawn Siefkas <shawn.siefkas@meredith.com>\nshawnhe <shawnhe@shawnhedeMacBook-Pro.local>\nShayan Pooya <shayan@liveve.org>\nShayne Wang <shaynexwang@gmail.com>\nShekhar Gulati <shekhargulati84@gmail.com>\nSheng Yang <sheng@yasker.org>\nShengbo Song <thomassong@tencent.com>\nShengjing Zhu <zhsj@debian.org>\nShev Yan <yandong_8212@163.com>\nShih-Yuan Lee <fourdollars@gmail.com>\nShihao Xia <charlesxsh@hotmail.com>\nShijiang Wei <mountkin@gmail.com>\nShijun Qin <qinshijun16@mails.ucas.ac.cn>\nShishir Mahajan <shishir.mahajan@redhat.com>\nShoubhik Bose <sbose78@gmail.com>\nShourya Sarcar <shourya.sarcar@gmail.com>\nShreenidhi Shedi <shreenidhi.shedi@broadcom.com>\nShu-Wai Chow <shu-wai.chow@seattlechildrens.org>\nshuai-z <zs.broccoli@gmail.com>\nShukui Yang <yangshukui@huawei.com>\nSian Lerk Lau <kiawin@gmail.com>\nSiarhei Rasiukevich <s_rasiukevich@wargaming.net>\nSidhartha Mani <sidharthamn@gmail.com>\nsidharthamani <sid@rancher.com>\nSilas Sewell <silas@sewell.org>\nSilvan Jegen <s.jegen@gmail.com>\nSimão Reis <smnrsti@gmail.com>\nSimon Barendse <simon.barendse@gmail.com>\nSimon Eskildsen <sirup@sirupsen.com>\nSimon Ferquel <simon.ferquel@docker.com>\nSimon Leinen <simon.leinen@gmail.com>\nSimon Menke <simon.menke@gmail.com>\nSimon Taranto <simon.taranto@gmail.com>\nSimon Vikstrom <pullreq@devsn.se>\nSindhu S <sindhus@live.in>\nSjoerd Langkemper <sjoerd-github@linuxonly.nl>\nskanehira <sho19921005@gmail.com>\nSmark Meng <smark@freecoop.net>\nSolganik Alexander <solganik@gmail.com>\nSolomon Hykes <solomon@docker.com>\nSong Gao <song@gao.io>\nSoshi Katsuta <soshi.katsuta@gmail.com>\nSotiris Salloumis <sotiris.salloumis@gmail.com>\nSoulou <leo@unbekandt.eu>\nSpencer Brown <spencer@spencerbrown.org>\nSpencer Smith <robertspencersmith@gmail.com>\nSpike Curtis <spike.curtis@metaswitch.com>\nSridatta Thatipamala <sthatipamala@gmail.com>\nSridhar Ratnakumar <sridharr@activestate.com>\nSrini Brahmaroutu <srbrahma@us.ibm.com>\nSrinivasan Srivatsan <srinivasan.srivatsan@hpe.com>\nStaf Wagemakers <staf@wagemakers.be>\nStanislav Bondarenko <stanislav.bondarenko@gmail.com>\nStanislav Levin <slev@altlinux.org>\nSteeve Morin <steeve.morin@gmail.com>\nStefan Berger <stefanb@linux.vnet.ibm.com>\nStefan Gehrig <stefan.gehrig.hn@googlemail.com>\nStefan J. Wernli <swernli@microsoft.com>\nStefan Praszalowicz <stefan@greplin.com>\nStefan S. <tronicum@user.github.com>\nStefan Scherer <stefan.scherer@docker.com>\nStefan Staudenmeyer <doerte@instana.com>\nStefan Weil <sw@weilnetz.de>\nSteffen Butzer <steffen.butzer@outlook.com>\nStephan Henningsen <stephan-henningsen@users.noreply.github.com>\nStephan Spindler <shutefan@gmail.com>\nStephen Benjamin <stephen@redhat.com>\nStephen Crosby <stevecrozz@gmail.com>\nStephen Day <stevvooe@gmail.com>\nStephen Drake <stephen@xenolith.net>\nStephen Rust <srust@blockbridge.com>\nSteve Desmond <steve@vtsv.ca>\nSteve Dougherty <steve@asksteved.com>\nSteve Durrheimer <s.durrheimer@gmail.com>\nSteve Francia <steve.francia@gmail.com>\nSteve Koch <stevekochscience@gmail.com>\nSteven Burgess <steven.a.burgess@hotmail.com>\nSteven Erenst <stevenerenst@gmail.com>\nSteven Hartland <steven.hartland@multiplay.co.uk>\nSteven Iveson <sjiveson@outlook.com>\nSteven Merrill <steven.merrill@gmail.com>\nSteven Richards <steven@axiomzen.co>\nSteven Taylor <steven.taylor@me.com>\nStéphane Este-Gracias <sestegra@gmail.com>\nStig Larsson <stig@larsson.dev>\nSu Wang <su.wang@docker.com>\nSubhajit Ghosh <isubuz.g@gmail.com>\nSujith Haridasan <sujith.h@gmail.com>\nSun Gengze <690388648@qq.com>\nSun Jianbo <wonderflow.sun@gmail.com>\nSune Keller <sune.keller@gmail.com>\nSunny Gogoi <indiasuny000@gmail.com>\nSuryakumar Sudar <surya.trunks@gmail.com>\nSven Dowideit <SvenDowideit@home.org.au>\nSwapnil Daingade <swapnil.daingade@gmail.com>\nSylvain Baubeau <lebauce@gmail.com>\nSylvain Bellemare <sylvain@ascribe.io>\nSébastien <sebastien@yoozio.com>\nSébastien HOUZÉ <cto@verylastroom.com>\nSébastien Luttringer <seblu@seblu.net>\nSébastien Stormacq <sebsto@users.noreply.github.com>\nSören Tempel <soeren+git@soeren-tempel.net>\nTabakhase <mail@tabakhase.com>\nTadej Janež <tadej.j@nez.si>\nTadeusz Dudkiewicz <tadeusz.dudkiewicz@rtbhouse.com>\nTakuto Sato <tockn.jp@gmail.com>\ntang0th <tang0th@gmx.com>\nTangi Colin <tangicolin@gmail.com>\nTatsuki Sugiura <sugi@nemui.org>\nTatsushi Inagaki <e29253@jp.ibm.com>\nTaylan Isikdemir <taylani@google.com>\nTaylor Jones <monitorjbl@gmail.com>\ntcpdumppy <847462026@qq.com>\nTed M. Young <tedyoung@gmail.com>\nTehmasp Chaudhri <tehmasp@gmail.com>\nTejaswini Duggaraju <naduggar@microsoft.com>\nTejesh Mehta <tejesh.mehta@gmail.com>\nTerry Chu <zue.hterry@gmail.com>\nterryding77 <550147740@qq.com>\nThatcher Peskens <thatcher@docker.com>\ntheadactyl <thea.lamkin@gmail.com>\nThell 'Bo' Fowler <thell@tbfowler.name>\nThermionix <bond711@gmail.com>\nThiago Alves Silva <thiago.alves@aurea.com>\nThijs Terlouw <thijsterlouw@gmail.com>\nThomas Bikeev <thomas.bikeev@mac.com>\nThomas Frössman <thomasf@jossystem.se>\nThomas Gazagnaire <thomas@gazagnaire.org>\nThomas Graf <tgraf@suug.ch>\nThomas Grainger <tagrain@gmail.com>\nThomas Hansen <thomas.hansen@gmail.com>\nThomas Ledos <thomas.ledos92@gmail.com>\nThomas Leonard <thomas.leonard@docker.com>\nThomas Léveil <thomasleveil@gmail.com>\nThomas Orozco <thomas@orozco.fr>\nThomas Riccardi <riccardi@systran.fr>\nThomas Schroeter <thomas@cliqz.com>\nThomas Sjögren <konstruktoid@users.noreply.github.com>\nThomas Swift <tgs242@gmail.com>\nThomas Tanaka <thomas.tanaka@oracle.com>\nThomas Texier <sharkone@en-mousse.org>\nTi Zhou <tizhou1986@gmail.com>\nTiago Seabra <tlgs@users.noreply.github.com>\nTianon Gravi <admwiggin@gmail.com>\nTianyi Wang <capkurmagati@gmail.com>\nTibor Vass <teabee89@gmail.com>\nTiffany Jernigan <tiffany.f.j@gmail.com>\nTiffany Low <tiffany@box.com>\nTill Claassen <pixelistik@users.noreply.github.com>\nTill Wegmüller <toasterson@gmail.com>\nTim <elatllat@gmail.com>\nTim Bart <tim@fewagainstmany.com>\nTim Bosse <taim@bosboot.org>\nTim Dettrick <t.dettrick@uq.edu.au>\nTim Düsterhus <tim@bastelstu.be>\nTim Hockin <thockin@google.com>\nTim Potter <tpot@hpe.com>\nTim Ruffles <oi@truffles.me.uk>\nTim Smith <timbot@google.com>\nTim Terhorst <mynamewastaken+git@gmail.com>\nTim Wagner <tim.wagner@freenet.ag>\nTim Wang <timwangdev@gmail.com>\nTim Waugh <twaugh@redhat.com>\nTim Wraight <tim.wraight@tangentlabs.co.uk>\nTim Zju <21651152@zju.edu.cn>\ntimchenxiaoyu <837829664@qq.com>\ntimfeirg <kkcocogogo@gmail.com>\nTimo Rothenpieler <timo@rothenpieler.org>\nTimothy Hobbs <timothyhobbs@seznam.cz>\ntjwebb123 <tjwebb123@users.noreply.github.com>\ntobe <tobegit3hub@gmail.com>\nTobias Bieniek <Tobias.Bieniek@gmx.de>\nTobias Bradtke <webwurst@gmail.com>\nTobias Gesellchen <tobias@gesellix.de>\nTobias Klauser <tklauser@distanz.ch>\nTobias Munk <schmunk@usrbin.de>\nTobias Pfandzelter <tobias@pfandzelter.com>\nTobias Schmidt <ts@soundcloud.com>\nTobias Schwab <tobias.schwab@dynport.de>\nTodd Crane <todd@toddcrane.com>\nTodd Lunter <tlunter@gmail.com>\nTodd Whiteman <todd.whiteman@joyent.com>\nToli Kuznets <toli@docker.com>\nTom Barlow <tomwbarlow@gmail.com>\nTom Booth <tombooth@gmail.com>\nTom Denham <tom@tomdee.co.uk>\nTom Fotherby <tom+github@peopleperhour.com>\nTom Howe <tom.howe@enstratius.com>\nTom Hulihan <hulihan.tom159@gmail.com>\nTom Maaswinkel <tom.maaswinkel@12wiki.eu>\nTom Parker <palfrey@tevp.net>\nTom Sweeney <tsweeney@redhat.com>\nTom Wilkie <tom.wilkie@gmail.com>\nTom X. Tobin <tomxtobin@tomxtobin.com>\nTom Zhao <zlwangel@gmail.com>\nTomas Janousek <tomi@nomi.cz>\nTomas Kral <tomas.kral@gmail.com>\nTomas Tomecek <ttomecek@redhat.com>\nTomasz Kopczynski <tomek@kopczynski.net.pl>\nTomasz Lipinski <tlipinski@users.noreply.github.com>\nTomasz Nurkiewicz <nurkiewicz@gmail.com>\nTomek Mańko <tomek.manko@railgun-solutions.com>\nTommaso Visconti <tommaso.visconti@gmail.com>\nTomoya Tabuchi <t@tomoyat1.com>\nTomáš Hrčka <thrcka@redhat.com>\nTomáš Virtus <nechtom@gmail.com>\ntonic <tonicbupt@gmail.com>\nTonny Xu <tonny.xu@gmail.com>\nTony Abboud <tdabboud@hotmail.com>\nTony Daws <tony@daws.ca>\nTony Miller <mcfiredrill@gmail.com>\ntoogley <toogley@mailbox.org>\nTorstein Husebø <torstein@huseboe.net>\nToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>\nTõnis Tiigi <tonistiigi@gmail.com>\nTrace Andreason <tandreason@gmail.com>\ntracylihui <793912329@qq.com>\nTrapier Marshall <tmarshall@mirantis.com>\nTravis Cline <travis.cline@gmail.com>\nTravis Thieman <travis.thieman@gmail.com>\nTrent Ogren <tedwardo2@gmail.com>\nTrevor <trevinwoodstock@gmail.com>\nTrevor Pounds <trevor.pounds@gmail.com>\nTrevor Sullivan <pcgeek86@gmail.com>\nTrishna Guha <trishnaguha17@gmail.com>\nTristan Carel <tristan@cogniteev.com>\nTroy Denton <trdenton@gmail.com>\nTudor Brindus <me@tbrindus.ca>\nTy Alexander <ty.alexander@sendgrid.com>\nTycho Andersen <tycho@docker.com>\nTyler Brock <tyler.brock@gmail.com>\nTyler Brown <tylers.pile@gmail.com>\nTzu-Jung Lee <roylee17@gmail.com>\nuhayate <uhayate.gong@daocloud.io>\nUlysse Carion <ulyssecarion@gmail.com>\nUmesh Yadav <umesh4257@gmail.com>\nUtz Bacher <utz.bacher@de.ibm.com>\nvagrant <vagrant@ubuntu-14.04-amd64-vbox>\nVaidas Jablonskis <jablonskis@gmail.com>\nValentin Kulesh <valentin.kulesh@virtuozzo.com>\nvanderliang <lansheng@meili-inc.com>\nVelko Ivanov <vivanov@deeperplane.com>\nVeres Lajos <vlajos@gmail.com>\nVictor Algaze <valgaze@gmail.com>\nVictor Coisne <victor.coisne@dotcloud.com>\nVictor Costan <costan@gmail.com>\nVictor I. Wood <viw@t2am.com>\nVictor Lyuboslavsky <victor@victoreda.com>\nVictor Marmol <vmarmol@google.com>\nVictor Palma <palma.victor@gmail.com>\nVictor Toni <victor.toni@gmail.com>\nVictor Vieux <victor.vieux@docker.com>\nVictoria Bialas <victoria.bialas@docker.com>\nVijaya Kumar K <vijayak@caviumnetworks.com>\nVikas Choudhary <choudharyvikas16@gmail.com>\nVikram bir Singh <vsingh@mirantis.com>\nViktor Stanchev <me@viktorstanchev.com>\nViktor Vojnovski <viktor.vojnovski@amadeus.com>\nVinayRaghavanKS <raghavan.vinay@gmail.com>\nVincent Batts <vbatts@redhat.com>\nVincent Bernat <vincent@bernat.ch>\nVincent Boulineau <vincent.boulineau@datadoghq.com>\nVincent Demeester <vincent.demeester@docker.com>\nVincent Giersch <vincent.giersch@ovh.net>\nVincent Mayers <vincent.mayers@inbloom.org>\nVincent Woo <me@vincentwoo.com>\nVinod Kulkarni <vinod.kulkarni@gmail.com>\nVishal Doshi <vishal.doshi@gmail.com>\nVishnu Kannan <vishnuk@google.com>\nVitaly Ostrosablin <vostrosablin@virtuozzo.com>\nVitor Anjos <bartier@users.noreply.github.com>\nVitor Monteiro <vmrmonteiro@gmail.com>\nVivek Agarwal <me@vivek.im>\nVivek Dasgupta <vdasgupt@redhat.com>\nVivek Goyal <vgoyal@redhat.com>\nVladimir Bulyga <xx@ccxx.cc>\nVladimir Kirillov <proger@wilab.org.ua>\nVladimir Pouzanov <farcaller@google.com>\nVladimir Rutsky <altsysrq@gmail.com>\nVladimir Varankin <nek.narqo+git@gmail.com>\nVladimirAus <v_roudakov@yahoo.com>\nVladislav Kolesnikov <vkolesnikov@beget.ru>\nVlastimil Zeman <vlastimil.zeman@diffblue.com>\nVojtech Vitek (V-Teq) <vvitek@redhat.com>\nvoloder <110066198+voloder@users.noreply.github.com>\nWalter Leibbrandt <github@wrl.co.za>\nWalter Stanish <walter@pratyeka.org>\nWang Chao <chao.wang@ucloud.cn>\nWang Guoliang <liangcszzu@163.com>\nWang Jie <wangjie5@chinaskycloud.com>\nWang Long <long.wanglong@huawei.com>\nWang Ping <present.wp@icloud.com>\nWang Xing <hzwangxing@corp.netease.com>\nWang Yuexiao <wang.yuexiao@zte.com.cn>\nWang Yumu <37442693@qq.com>\nwanghuaiqing <wanghuaiqing@loongson.cn>\nWard Vandewege <ward@jhvc.com>\nWarheadsSE <max@warheads.net>\nWassim Dhif <wassimdhif@gmail.com>\nWataru Ishida <ishida.wataru@lab.ntt.co.jp>\nWayne Chang <wayne@neverfear.org>\nWayne Song <wsong@docker.com>\nweebney <weebney@gmail.com>\nWeerasak Chongnguluam <singpor@gmail.com>\nWei Fu <fuweid89@gmail.com>\nWei Wu <wuwei4455@gmail.com>\nWei-Ting Kuo <waitingkuo0527@gmail.com>\nweipeng <weipeng@tuscloud.io>\nweiyan <weiyan3@huawei.com>\nWeiyang Zhu <cnresonant@gmail.com>\nWen Cheng Ma <wenchma@cn.ibm.com>\nWendel Fleming <wfleming@usc.edu>\nWenjun Tang <tangwj2@lenovo.com>\nWenkai Yin <yinw@vmware.com>\nwenlxie <wenlxie@ebay.com>\nWenxuan Zhao <viz@linux.com>\nWenyu You <21551128@zju.edu.cn>\nWenzhi Liang <wenzhi.liang@gmail.com>\nWes Morgan <cap10morgan@gmail.com>\nWesley Pettit <wppttt@amazon.com>\nWewang Xiaorenfine <wang.xiaoren@zte.com.cn>\nWiktor Kwapisiewicz <wiktor@metacode.biz>\nWill Dietz <w@wdtz.org>\nWill Rouesnel <w.rouesnel@gmail.com>\nWill Weaver <monkey@buildingbananas.com>\nwillhf <willhf@gmail.com>\nWilliam Delanoue <william.delanoue@gmail.com>\nWilliam Henry <whenry@redhat.com>\nWilliam Hubbs <w.d.hubbs@gmail.com>\nWilliam Martin <wmartin@pivotal.io>\nWilliam Riancho <wr.wllm@gmail.com>\nWilliam Thurston <thurstw@amazon.com>\nWilson Júnior <wilsonpjunior@gmail.com>\nWing-Kam Wong <wingkwong.code@gmail.com>\nWiseTrem <shepelyov.g@gmail.com>\nWolfgang Nagele <mail@wnagele.com>\nWolfgang Powisch <powo@powo.priv.at>\nWonjun Kim <wonjun.kim@navercorp.com>\nWuLonghui <wlh6666@qq.com>\nxamyzhao <x.amy.zhao@gmail.com>\nXia Wu <xwumzn@amazon.com>\nXian Chaobo <xianchaobo@huawei.com>\nXianglin Gao <xlgao@zju.edu.cn>\nXianjie <guxianjie@gmail.com>\nXianlu Bird <xianlubird@gmail.com>\nXiao YongBiao <xyb4638@gmail.com>\nXiao Zhang <xiaozhang0210@hotmail.com>\nXiaoBing Jiang <s7v7nislands@gmail.com>\nXiaodong Liu <liuxiaodong@loongson.cn>\nXiaodong Zhang <a4012017@sina.com>\nXiaohua Ding <xiao_hua_ding@sina.cn>\nXiaoxi He <xxhe@alauda.io>\nXiaoxu Chen <chenxiaoxu14@otcaix.iscas.ac.cn>\nXiaoyu Zhang <zhang.xiaoyu33@zte.com.cn>\nxichengliudui <1693291525@qq.com>\nxiekeyang <xiekeyang@huawei.com>\nXimo Guanter Gonzálbez <joaquin.guantergonzalbez@telefonica.com>\nxin.li <xin.li@daocloud.io>\nXinbo Weng <xihuanbo_0521@zju.edu.cn>\nXinfeng Liu <XinfengLiu@icloud.com>\nXinzi Zhou <imdreamrunner@gmail.com>\nXiuming Chen <cc@cxm.cc>\nXuecong Liao <satorulogic@gmail.com>\nxuzhaokui <cynicholas@gmail.com>\nYadnyawalkya Tale <ytale@redhat.com>\nYahya <ya7yaz@gmail.com>\nyalpul <yalpul@gmail.com>\nYAMADA Tsuyoshi <tyamada@minimum2scp.org>\nYamasaki Masahide <masahide.y@gmail.com>\nYamazaki Masashi <masi19bw@gmail.com>\nYan Feng <yanfeng2@huawei.com>\nYan Zhu <yanzhu@alauda.io>\nYang Bai <hamo.by@gmail.com>\nYang Li <idealhack@gmail.com>\nYang Pengfei <yangpengfei4@huawei.com>\nyangchenliang <yangchenliang@huawei.com>\nYann Autissier <yann.autissier@gmail.com>\nYanqiang Miao <miao.yanqiang@zte.com.cn>\nYao Zaiyong <yaozaiyong@hotmail.com>\nYash Murty <yashmurty@gmail.com>\nYassine Tijani <yasstij11@gmail.com>\nYasunori Mahata <nori@mahata.net>\nYazhong Liu <yorkiefixer@gmail.com>\nYestin Sun <sunyi0804@gmail.com>\nYi EungJun <eungjun.yi@navercorp.com>\nYibai Zhang <xm1994@gmail.com>\nYihang Ho <hoyihang5@gmail.com>\nYing Li <ying.li@docker.com>\nYohei Ueda <yohei@jp.ibm.com>\nYong Tang <yong.tang.github@outlook.com>\nYongxin Li <yxli@alauda.io>\nYongzhi Pan <panyongzhi@gmail.com>\nYosef Fertel <yfertel@gmail.com>\nYou-Sheng Yang (楊有勝) <vicamo@gmail.com>\nyoucai <omegacoleman@gmail.com>\nYoucef YEKHLEF <yyekhlef@gmail.com>\nYoufu Zhang <zhangyoufu@gmail.com>\nYR Chen <stevapple@icloud.com>\nYu Changchun <yuchangchun1@huawei.com>\nYu Chengxia <yuchengxia@huawei.com>\nYu Peng <yu.peng36@zte.com.cn>\nYu-Ju Hong <yjhong@google.com>\nYuan Sun <sunyuan3@huawei.com>\nYuanhong Peng <pengyuanhong@huawei.com>\nYue Zhang <zy675793960@yeah.net>\nYufei Xiong <yufei.xiong@qq.com>\nYuhao Fang <fangyuhao@gmail.com>\nYuichiro Kaneko <spiketeika@gmail.com>\nYujiOshima <yuji.oshima0x3fd@gmail.com>\nYunxiang Huang <hyxqshk@vip.qq.com>\nYurii Rashkovskii <yrashk@gmail.com>\nYusuf Tarık Günaydın <yusuf_tarik@hotmail.com>\nYves Blusseau <90z7oey02@sneakemail.com>\nYves Junqueira <yves.junqueira@gmail.com>\nZac Dover <zdover@redhat.com>\nZach Borboa <zachborboa@gmail.com>\nZach Gershman <zachgersh@gmail.com>\nZachary Jaffee <zjaffee@us.ibm.com>\nZain Memon <zain@inzain.net>\nZaiste! <oh@zaiste.net>\nZane DeGraffenried <zane.deg@gmail.com>\nZefan Li <lizefan@huawei.com>\nZen Lin(Zhinan Lin) <linzhinan@huawei.com>\nZhang Kun <zkazure@gmail.com>\nZhang Wei <zhangwei555@huawei.com>\nZhang Wentao <zhangwentao234@huawei.com>\nzhangguanzhang <zhangguanzhang@qq.com>\nZhangHang <stevezhang2014@gmail.com>\nzhangxianwei <xianwei.zw@alibaba-inc.com>\nZhenan Ye <21551168@zju.edu.cn>\nzhenghenghuo <zhenghenghuo@zju.edu.cn>\nZhenhai Gao <gaozh1988@live.com>\nZhenkun Bi <bi.zhenkun@zte.com.cn>\nZhiPeng Lu <lu.zhipeng@zte.com.cn>\nzhipengzuo <zuozhipeng@baidu.com>\nZhou Hao <zhouhao@cn.fujitsu.com>\nZhoulin Xie <zhoulin.xie@daocloud.io>\nZhu Guihua <zhugh.fnst@cn.fujitsu.com>\nZhu Kunjia <zhu.kunjia@zte.com.cn>\nZhuoyun Wei <wzyboy@wzyboy.org>\nZiheng Liu <lzhfromustc@gmail.com>\nZilin Du <zilin.du@gmail.com>\nzimbatm <zimbatm@zimbatm.com>\nZiming Dong <bnudzm@foxmail.com>\nZJUshuaizhou <21551191@zju.edu.cn>\nzmarouf <zeid.marouf@gmail.com>\nZoltan Tombol <zoltan.tombol@gmail.com>\nZou Yu <zouyu7@huawei.com>\nzqh <zqhxuyuan@gmail.com>\nZuhayr Elahi <zuhayr.elahi@docker.com>\nZunayed Ali <zunayed@gmail.com>\nÁlvaro Lázaro <alvaro.lazaro.g@gmail.com>\nÁtila Camurça Alves <camurca.home@gmail.com>\n吴小白 <296015668@qq.com>\n尹吉峰 <jifeng.yin@gmail.com>\n屈骏 <qujun@tiduyun.com>\n徐俊杰 <paco.xu@daocloud.io>\n慕陶 <jihui.xjh@alibaba-inc.com>\n搏通 <yufeng.pyf@alibaba-inc.com>\n黄艳红00139573 <huang.yanhong@zte.com.cn>\n정재영 <jjy600901@gmail.com>\n"
  },
  {
    "path": "vendor/github.com/docker/docker/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        https://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   Copyright 2013-2018 Docker, Inc.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       https://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/docker/docker/NOTICE",
    "content": "Docker\nCopyright 2012-2017 Docker, Inc.\n\nThis product includes software developed at Docker, Inc. (https://www.docker.com).\n\nThis product contains software (https://github.com/creack/pty) developed\nby Keith Rarick, licensed under the MIT License.\n\nThe following is courtesy of our legal counsel:\n\n\nUse and transfer of Docker may be subject to certain restrictions by the\nUnited States and other governments.\nIt is your responsibility to ensure that your use and/or transfer does not\nviolate applicable laws.\n\nFor more information, please see https://www.bis.doc.gov\n\nSee also https://www.apache.org/dev/crypto.html and/or seek legal counsel.\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/README.md",
    "content": "# Working on the Engine API\n\nThe Engine API is an HTTP API used by the command-line client to communicate with the daemon. It can also be used by third-party software to control the daemon.\n\nIt consists of various components in this repository:\n\n- `api/swagger.yaml` A Swagger definition of the API.\n- `api/types/` Types shared by both the client and server, representing various objects, options, responses, etc. Most are written manually, but some are automatically generated from the Swagger definition. See [#27919](https://github.com/docker/docker/issues/27919) for progress on this.\n- `cli/` The command-line client.\n- `client/` The Go client used by the command-line client. It can also be used by third-party Go programs.\n- `daemon/` The daemon, which serves the API.\n\n## Swagger definition\n\nThe API is defined by the [Swagger](http://swagger.io/specification/) definition in `api/swagger.yaml`. This definition can be used to:\n\n1. Automatically generate documentation.\n2. Automatically generate the Go server and client. (A work-in-progress.)\n3. Provide a machine readable version of the API for introspecting what it can do, automatically generating clients for other languages, etc.\n\n## Updating the API documentation\n\nThe API documentation is generated entirely from `api/swagger.yaml`. If you make updates to the API, edit this file to represent the change in the documentation.\n\nThe file is split into two main sections:\n\n- `definitions`, which defines re-usable objects used in requests and responses\n- `paths`, which defines the API endpoints (and some inline objects which don't need to be reusable)\n\nTo make an edit, first look for the endpoint you want to edit under `paths`, then make the required edits. Endpoints may reference reusable objects with `$ref`, which can be found in the `definitions` section.\n\nThere is hopefully enough example material in the file for you to copy a similar pattern from elsewhere in the file (e.g. adding new fields or endpoints), but for the full reference, see the [Swagger specification](https://github.com/docker/docker/issues/27919).\n\n`swagger.yaml` is validated by `hack/validate/swagger` to ensure it is a valid Swagger definition. This is useful when making edits to ensure you are doing the right thing.\n\n## Viewing the API documentation\n\nWhen you make edits to `swagger.yaml`, you may want to check the generated API documentation to ensure it renders correctly.\n\nRun `make swagger-docs` and a preview will be running at `http://localhost:9000`. Some of the styling may be incorrect, but you'll be able to ensure that it is generating the correct documentation.\n\nThe production documentation is generated by vendoring `swagger.yaml` into [docker/docker.github.io](https://github.com/docker/docker.github.io).\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/common.go",
    "content": "package api\n\n// Common constants for daemon and client.\nconst (\n\t// DefaultVersion of the current REST API.\n\tDefaultVersion = \"1.51\"\n\n\t// MinSupportedAPIVersion is the minimum API version that can be supported\n\t// by the API server, specified as \"major.minor\". Note that the daemon\n\t// may be configured with a different minimum API version, as returned\n\t// in [github.com/docker/docker/api/types.Version.MinAPIVersion].\n\t//\n\t// API requests for API versions lower than the configured version produce\n\t// an error.\n\tMinSupportedAPIVersion = \"1.24\"\n\n\t// NoBaseImageSpecifier is the symbol used by the FROM\n\t// command to specify that no base image is to be used.\n\tNoBaseImageSpecifier = \"scratch\"\n)\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/swagger-gen.yaml",
    "content": "\nlayout:\n  models:\n    - name: definition\n      source: asset:model\n      target: \"{{ joinFilePath .Target .ModelPackage }}\"\n      file_name: \"{{ (snakize (pascalize .Name)) }}.go\"\n  operations:\n    - name: handler\n      source: asset:serverOperation\n      target: \"{{ joinFilePath .Target .APIPackage .Package }}\"\n      file_name: \"{{ (snakize (pascalize .Name)) }}.go\"\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/swagger.yaml",
    "content": "# A Swagger 2.0 (a.k.a. OpenAPI) definition of the Engine API.\n#\n# This is used for generating API documentation and the types used by the\n# client/server. See api/README.md for more information.\n#\n# Some style notes:\n# - This file is used by ReDoc, which allows GitHub Flavored Markdown in\n#   descriptions.\n# - There is no maximum line length, for ease of editing and pretty diffs.\n# - operationIds are in the format \"NounVerb\", with a singular noun.\n\nswagger: \"2.0\"\nschemes:\n  - \"http\"\n  - \"https\"\nproduces:\n  - \"application/json\"\n  - \"text/plain\"\nconsumes:\n  - \"application/json\"\n  - \"text/plain\"\nbasePath: \"/v1.51\"\ninfo:\n  title: \"Docker Engine API\"\n  version: \"1.51\"\n  x-logo:\n    url: \"https://docs.docker.com/assets/images/logo-docker-main.png\"\n  description: |\n    The Engine API is an HTTP API served by Docker Engine. It is the API the\n    Docker client uses to communicate with the Engine, so everything the Docker\n    client can do can be done with the API.\n\n    Most of the client's commands map directly to API endpoints (e.g. `docker ps`\n    is `GET /containers/json`). The notable exception is running containers,\n    which consists of several API calls.\n\n    # Errors\n\n    The API uses standard HTTP status codes to indicate the success or failure\n    of the API call. The body of the response will be JSON in the following\n    format:\n\n    ```\n    {\n      \"message\": \"page not found\"\n    }\n    ```\n\n    # Versioning\n\n    The API is usually changed in each release, so API calls are versioned to\n    ensure that clients don't break. To lock to a specific version of the API,\n    you prefix the URL with its version, for example, call `/v1.30/info` to use\n    the v1.30 version of the `/info` endpoint. If the API version specified in\n    the URL is not supported by the daemon, a HTTP `400 Bad Request` error message\n    is returned.\n\n    If you omit the version-prefix, the current version of the API (v1.50) is used.\n    For example, calling `/info` is the same as calling `/v1.51/info`. Using the\n    API without a version-prefix is deprecated and will be removed in a future release.\n\n    Engine releases in the near future should support this version of the API,\n    so your client will continue to work even if it is talking to a newer Engine.\n\n    The API uses an open schema model, which means the server may add extra properties\n    to responses. Likewise, the server will ignore any extra query parameters and\n    request body properties. When you write clients, you need to ignore additional\n    properties in responses to ensure they do not break when talking to newer\n    daemons.\n\n\n    # Authentication\n\n    Authentication for registries is handled client side. The client has to send\n    authentication details to various endpoints that need to communicate with\n    registries, such as `POST /images/(name)/push`. These are sent as\n    `X-Registry-Auth` header as a [base64url encoded](https://tools.ietf.org/html/rfc4648#section-5)\n    (JSON) string with the following structure:\n\n    ```\n    {\n      \"username\": \"string\",\n      \"password\": \"string\",\n      \"serveraddress\": \"string\"\n    }\n    ```\n\n    The `serveraddress` is a domain/IP without a protocol. Throughout this\n    structure, double quotes are required.\n\n    If you have already got an identity token from the [`/auth` endpoint](#operation/SystemAuth),\n    you can just pass this instead of credentials:\n\n    ```\n    {\n      \"identitytoken\": \"9cbaf023786cd7...\"\n    }\n    ```\n\n# The tags on paths define the menu sections in the ReDoc documentation, so\n# the usage of tags must make sense for that:\n# - They should be singular, not plural.\n# - There should not be too many tags, or the menu becomes unwieldy. For\n#   example, it is preferable to add a path to the \"System\" tag instead of\n#   creating a tag with a single path in it.\n# - The order of tags in this list defines the order in the menu.\ntags:\n  # Primary objects\n  - name: \"Container\"\n    x-displayName: \"Containers\"\n    description: |\n      Create and manage containers.\n  - name: \"Image\"\n    x-displayName: \"Images\"\n  - name: \"Network\"\n    x-displayName: \"Networks\"\n    description: |\n      Networks are user-defined networks that containers can be attached to.\n      See the [networking documentation](https://docs.docker.com/network/)\n      for more information.\n  - name: \"Volume\"\n    x-displayName: \"Volumes\"\n    description: |\n      Create and manage persistent storage that can be attached to containers.\n  - name: \"Exec\"\n    x-displayName: \"Exec\"\n    description: |\n      Run new commands inside running containers. Refer to the\n      [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/)\n      for more information.\n\n      To exec a command in a container, you first need to create an exec instance,\n      then start it. These two API endpoints are wrapped up in a single command-line\n      command, `docker exec`.\n\n  # Swarm things\n  - name: \"Swarm\"\n    x-displayName: \"Swarm\"\n    description: |\n      Engines can be clustered together in a swarm. Refer to the\n      [swarm mode documentation](https://docs.docker.com/engine/swarm/)\n      for more information.\n  - name: \"Node\"\n    x-displayName: \"Nodes\"\n    description: |\n      Nodes are instances of the Engine participating in a swarm. Swarm mode\n      must be enabled for these endpoints to work.\n  - name: \"Service\"\n    x-displayName: \"Services\"\n    description: |\n      Services are the definitions of tasks to run on a swarm. Swarm mode must\n      be enabled for these endpoints to work.\n  - name: \"Task\"\n    x-displayName: \"Tasks\"\n    description: |\n      A task is a container running on a swarm. It is the atomic scheduling unit\n      of swarm. Swarm mode must be enabled for these endpoints to work.\n  - name: \"Secret\"\n    x-displayName: \"Secrets\"\n    description: |\n      Secrets are sensitive data that can be used by services. Swarm mode must\n      be enabled for these endpoints to work.\n  - name: \"Config\"\n    x-displayName: \"Configs\"\n    description: |\n      Configs are application configurations that can be used by services. Swarm\n      mode must be enabled for these endpoints to work.\n  # System things\n  - name: \"Plugin\"\n    x-displayName: \"Plugins\"\n  - name: \"System\"\n    x-displayName: \"System\"\n\ndefinitions:\n  Port:\n    type: \"object\"\n    description: \"An open port on a container\"\n    required: [PrivatePort, Type]\n    properties:\n      IP:\n        type: \"string\"\n        format: \"ip-address\"\n        description: \"Host IP address that the container's port is mapped to\"\n      PrivatePort:\n        type: \"integer\"\n        format: \"uint16\"\n        x-nullable: false\n        description: \"Port on the container\"\n      PublicPort:\n        type: \"integer\"\n        format: \"uint16\"\n        description: \"Port exposed on the host\"\n      Type:\n        type: \"string\"\n        x-nullable: false\n        enum: [\"tcp\", \"udp\", \"sctp\"]\n    example:\n      PrivatePort: 8080\n      PublicPort: 80\n      Type: \"tcp\"\n\n  MountPoint:\n    type: \"object\"\n    description: |\n      MountPoint represents a mount point configuration inside the container.\n      This is used for reporting the mountpoints in use by a container.\n    properties:\n      Type:\n        description: |\n          The mount type:\n\n          - `bind` a mount of a file or directory from the host into the container.\n          - `volume` a docker volume with the given `Name`.\n          - `image` a docker image\n          - `tmpfs` a `tmpfs`.\n          - `npipe` a named pipe from the host into the container.\n          - `cluster` a Swarm cluster volume\n        type: \"string\"\n        enum:\n          - \"bind\"\n          - \"volume\"\n          - \"image\"\n          - \"tmpfs\"\n          - \"npipe\"\n          - \"cluster\"\n        example: \"volume\"\n      Name:\n        description: |\n          Name is the name reference to the underlying data defined by `Source`\n          e.g., the volume name.\n        type: \"string\"\n        example: \"myvolume\"\n      Source:\n        description: |\n          Source location of the mount.\n\n          For volumes, this contains the storage location of the volume (within\n          `/var/lib/docker/volumes/`). For bind-mounts, and `npipe`, this contains\n          the source (host) part of the bind-mount. For `tmpfs` mount points, this\n          field is empty.\n        type: \"string\"\n        example: \"/var/lib/docker/volumes/myvolume/_data\"\n      Destination:\n        description: |\n          Destination is the path relative to the container root (`/`) where\n          the `Source` is mounted inside the container.\n        type: \"string\"\n        example: \"/usr/share/nginx/html/\"\n      Driver:\n        description: |\n          Driver is the volume driver used to create the volume (if it is a volume).\n        type: \"string\"\n        example: \"local\"\n      Mode:\n        description: |\n          Mode is a comma separated list of options supplied by the user when\n          creating the bind/volume mount.\n\n          The default is platform-specific (`\"z\"` on Linux, empty on Windows).\n        type: \"string\"\n        example: \"z\"\n      RW:\n        description: |\n          Whether the mount is mounted writable (read-write).\n        type: \"boolean\"\n        example: true\n      Propagation:\n        description: |\n          Propagation describes how mounts are propagated from the host into the\n          mount point, and vice-versa. Refer to the [Linux kernel documentation](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt)\n          for details. This field is not used on Windows.\n        type: \"string\"\n        example: \"\"\n\n  DeviceMapping:\n    type: \"object\"\n    description: \"A device mapping between the host and container\"\n    properties:\n      PathOnHost:\n        type: \"string\"\n      PathInContainer:\n        type: \"string\"\n      CgroupPermissions:\n        type: \"string\"\n    example:\n      PathOnHost: \"/dev/deviceName\"\n      PathInContainer: \"/dev/deviceName\"\n      CgroupPermissions: \"mrw\"\n\n  DeviceRequest:\n    type: \"object\"\n    description: \"A request for devices to be sent to device drivers\"\n    properties:\n      Driver:\n        type: \"string\"\n        example: \"nvidia\"\n      Count:\n        type: \"integer\"\n        example: -1\n      DeviceIDs:\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"0\"\n          - \"1\"\n          - \"GPU-fef8089b-4820-abfc-e83e-94318197576e\"\n      Capabilities:\n        description: |\n          A list of capabilities; an OR list of AND lists of capabilities.\n        type: \"array\"\n        items:\n          type: \"array\"\n          items:\n            type: \"string\"\n        example:\n          # gpu AND nvidia AND compute\n          - [\"gpu\", \"nvidia\", \"compute\"]\n      Options:\n        description: |\n          Driver-specific options, specified as a key/value pairs. These options\n          are passed directly to the driver.\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n\n  ThrottleDevice:\n    type: \"object\"\n    properties:\n      Path:\n        description: \"Device path\"\n        type: \"string\"\n      Rate:\n        description: \"Rate\"\n        type: \"integer\"\n        format: \"int64\"\n        minimum: 0\n\n  Mount:\n    type: \"object\"\n    properties:\n      Target:\n        description: \"Container path.\"\n        type: \"string\"\n      Source:\n        description: \"Mount source (e.g. a volume name, a host path).\"\n        type: \"string\"\n      Type:\n        description: |\n          The mount type. Available types:\n\n          - `bind` Mounts a file or directory from the host into the container. Must exist prior to creating the container.\n          - `volume` Creates a volume with the given name and options (or uses a pre-existing volume with the same name and options). These are **not** removed when the container is removed.\n          - `image` Mounts an image.\n          - `tmpfs` Create a tmpfs with the given options. The mount source cannot be specified for tmpfs.\n          - `npipe` Mounts a named pipe from the host into the container. Must exist prior to creating the container.\n          - `cluster` a Swarm cluster volume\n        type: \"string\"\n        enum:\n          - \"bind\"\n          - \"volume\"\n          - \"image\"\n          - \"tmpfs\"\n          - \"npipe\"\n          - \"cluster\"\n      ReadOnly:\n        description: \"Whether the mount should be read-only.\"\n        type: \"boolean\"\n      Consistency:\n        description: \"The consistency requirement for the mount: `default`, `consistent`, `cached`, or `delegated`.\"\n        type: \"string\"\n      BindOptions:\n        description: \"Optional configuration for the `bind` type.\"\n        type: \"object\"\n        properties:\n          Propagation:\n            description: \"A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`.\"\n            type: \"string\"\n            enum:\n              - \"private\"\n              - \"rprivate\"\n              - \"shared\"\n              - \"rshared\"\n              - \"slave\"\n              - \"rslave\"\n          NonRecursive:\n            description: \"Disable recursive bind mount.\"\n            type: \"boolean\"\n            default: false\n          CreateMountpoint:\n            description: \"Create mount point on host if missing\"\n            type: \"boolean\"\n            default: false\n          ReadOnlyNonRecursive:\n            description: |\n               Make the mount non-recursively read-only, but still leave the mount recursive\n               (unless NonRecursive is set to `true` in conjunction).\n\n               Added in v1.44, before that version all read-only mounts were\n               non-recursive by default. To match the previous behaviour this\n               will default to `true` for clients on versions prior to v1.44.\n            type: \"boolean\"\n            default: false\n          ReadOnlyForceRecursive:\n            description: \"Raise an error if the mount cannot be made recursively read-only.\"\n            type: \"boolean\"\n            default: false\n      VolumeOptions:\n        description: \"Optional configuration for the `volume` type.\"\n        type: \"object\"\n        properties:\n          NoCopy:\n            description: \"Populate volume with data from the target.\"\n            type: \"boolean\"\n            default: false\n          Labels:\n            description: \"User-defined key/value metadata.\"\n            type: \"object\"\n            additionalProperties:\n              type: \"string\"\n          DriverConfig:\n            description: \"Map of driver specific options\"\n            type: \"object\"\n            properties:\n              Name:\n                description: \"Name of the driver to use to create the volume.\"\n                type: \"string\"\n              Options:\n                description: \"key/value map of driver specific options.\"\n                type: \"object\"\n                additionalProperties:\n                  type: \"string\"\n          Subpath:\n            description: \"Source path inside the volume. Must be relative without any back traversals.\"\n            type: \"string\"\n            example: \"dir-inside-volume/subdirectory\"\n      ImageOptions:\n        description: \"Optional configuration for the `image` type.\"\n        type: \"object\"\n        properties:\n          Subpath:\n            description: \"Source path inside the image. Must be relative without any back traversals.\"\n            type: \"string\"\n            example: \"dir-inside-image/subdirectory\"\n      TmpfsOptions:\n        description: \"Optional configuration for the `tmpfs` type.\"\n        type: \"object\"\n        properties:\n          SizeBytes:\n            description: \"The size for the tmpfs mount in bytes.\"\n            type: \"integer\"\n            format: \"int64\"\n          Mode:\n            description: \"The permission mode for the tmpfs mount in an integer.\"\n            type: \"integer\"\n          Options:\n            description: |\n              The options to be passed to the tmpfs mount. An array of arrays.\n              Flag options should be provided as 1-length arrays. Other types\n              should be provided as as 2-length arrays, where the first item is\n              the key and the second the value.\n            type: \"array\"\n            items:\n              type: \"array\"\n              minItems: 1\n              maxItems: 2\n              items:\n                type: \"string\"\n            example:\n              [[\"noexec\"]]\n\n  RestartPolicy:\n    description: |\n      The behavior to apply when the container exits. The default is not to\n      restart.\n\n      An ever increasing delay (double the previous delay, starting at 100ms) is\n      added before each restart to prevent flooding the server.\n    type: \"object\"\n    properties:\n      Name:\n        type: \"string\"\n        description: |\n          - Empty string means not to restart\n          - `no` Do not automatically restart\n          - `always` Always restart\n          - `unless-stopped` Restart always except when the user has manually stopped the container\n          - `on-failure` Restart only when the container exit code is non-zero\n        enum:\n          - \"\"\n          - \"no\"\n          - \"always\"\n          - \"unless-stopped\"\n          - \"on-failure\"\n      MaximumRetryCount:\n        type: \"integer\"\n        description: |\n          If `on-failure` is used, the number of times to retry before giving up.\n\n  Resources:\n    description: \"A container's resources (cgroups config, ulimits, etc)\"\n    type: \"object\"\n    properties:\n      # Applicable to all platforms\n      CpuShares:\n        description: |\n          An integer value representing this container's relative CPU weight\n          versus other containers.\n        type: \"integer\"\n      Memory:\n        description: \"Memory limit in bytes.\"\n        type: \"integer\"\n        format: \"int64\"\n        default: 0\n      # Applicable to UNIX platforms\n      CgroupParent:\n        description: |\n          Path to `cgroups` under which the container's `cgroup` is created. If\n          the path is not absolute, the path is considered to be relative to the\n          `cgroups` path of the init process. Cgroups are created if they do not\n          already exist.\n        type: \"string\"\n      BlkioWeight:\n        description: \"Block IO weight (relative weight).\"\n        type: \"integer\"\n        minimum: 0\n        maximum: 1000\n      BlkioWeightDevice:\n        description: |\n          Block IO weight (relative device weight) in the form:\n\n          ```\n          [{\"Path\": \"device_path\", \"Weight\": weight}]\n          ```\n        type: \"array\"\n        items:\n          type: \"object\"\n          properties:\n            Path:\n              type: \"string\"\n            Weight:\n              type: \"integer\"\n              minimum: 0\n      BlkioDeviceReadBps:\n        description: |\n          Limit read rate (bytes per second) from a device, in the form:\n\n          ```\n          [{\"Path\": \"device_path\", \"Rate\": rate}]\n          ```\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ThrottleDevice\"\n      BlkioDeviceWriteBps:\n        description: |\n          Limit write rate (bytes per second) to a device, in the form:\n\n          ```\n          [{\"Path\": \"device_path\", \"Rate\": rate}]\n          ```\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ThrottleDevice\"\n      BlkioDeviceReadIOps:\n        description: |\n          Limit read rate (IO per second) from a device, in the form:\n\n          ```\n          [{\"Path\": \"device_path\", \"Rate\": rate}]\n          ```\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ThrottleDevice\"\n      BlkioDeviceWriteIOps:\n        description: |\n          Limit write rate (IO per second) to a device, in the form:\n\n          ```\n          [{\"Path\": \"device_path\", \"Rate\": rate}]\n          ```\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ThrottleDevice\"\n      CpuPeriod:\n        description: \"The length of a CPU period in microseconds.\"\n        type: \"integer\"\n        format: \"int64\"\n      CpuQuota:\n        description: |\n          Microseconds of CPU time that the container can get in a CPU period.\n        type: \"integer\"\n        format: \"int64\"\n      CpuRealtimePeriod:\n        description: |\n          The length of a CPU real-time period in microseconds. Set to 0 to\n          allocate no time allocated to real-time tasks.\n        type: \"integer\"\n        format: \"int64\"\n      CpuRealtimeRuntime:\n        description: |\n          The length of a CPU real-time runtime in microseconds. Set to 0 to\n          allocate no time allocated to real-time tasks.\n        type: \"integer\"\n        format: \"int64\"\n      CpusetCpus:\n        description: |\n          CPUs in which to allow execution (e.g., `0-3`, `0,1`).\n        type: \"string\"\n        example: \"0-3\"\n      CpusetMems:\n        description: |\n          Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only\n          effective on NUMA systems.\n        type: \"string\"\n      Devices:\n        description: \"A list of devices to add to the container.\"\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/DeviceMapping\"\n      DeviceCgroupRules:\n        description: \"a list of cgroup rules to apply to the container\"\n        type: \"array\"\n        items:\n          type: \"string\"\n          example: \"c 13:* rwm\"\n      DeviceRequests:\n        description: |\n          A list of requests for devices to be sent to device drivers.\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/DeviceRequest\"\n      KernelMemoryTCP:\n        description: |\n          Hard limit for kernel TCP buffer memory (in bytes). Depending on the\n          OCI runtime in use, this option may be ignored. It is no longer supported\n          by the default (runc) runtime.\n\n          This field is omitted when empty.\n\n          **Deprecated**: This field is deprecated as kernel 6.12 has deprecated `memory.kmem.tcp.limit_in_bytes` field\n          for cgroups v1. This field will be removed in a future release.\n        type: \"integer\"\n        format: \"int64\"\n      MemoryReservation:\n        description: \"Memory soft limit in bytes.\"\n        type: \"integer\"\n        format: \"int64\"\n      MemorySwap:\n        description: |\n          Total memory limit (memory + swap). Set as `-1` to enable unlimited\n          swap.\n        type: \"integer\"\n        format: \"int64\"\n      MemorySwappiness:\n        description: |\n          Tune a container's memory swappiness behavior. Accepts an integer\n          between 0 and 100.\n        type: \"integer\"\n        format: \"int64\"\n        minimum: 0\n        maximum: 100\n      NanoCpus:\n        description: \"CPU quota in units of 10<sup>-9</sup> CPUs.\"\n        type: \"integer\"\n        format: \"int64\"\n      OomKillDisable:\n        description: \"Disable OOM Killer for the container.\"\n        type: \"boolean\"\n      Init:\n        description: |\n          Run an init inside the container that forwards signals and reaps\n          processes. This field is omitted if empty, and the default (as\n          configured on the daemon) is used.\n        type: \"boolean\"\n        x-nullable: true\n      PidsLimit:\n        description: |\n          Tune a container's PIDs limit. Set `0` or `-1` for unlimited, or `null`\n          to not change.\n        type: \"integer\"\n        format: \"int64\"\n        x-nullable: true\n      Ulimits:\n        description: |\n          A list of resource limits to set in the container. For example:\n\n          ```\n          {\"Name\": \"nofile\", \"Soft\": 1024, \"Hard\": 2048}\n          ```\n        type: \"array\"\n        items:\n          type: \"object\"\n          properties:\n            Name:\n              description: \"Name of ulimit\"\n              type: \"string\"\n            Soft:\n              description: \"Soft limit\"\n              type: \"integer\"\n            Hard:\n              description: \"Hard limit\"\n              type: \"integer\"\n      # Applicable to Windows\n      CpuCount:\n        description: |\n          The number of usable CPUs (Windows only).\n\n          On Windows Server containers, the processor resource controls are\n          mutually exclusive. The order of precedence is `CPUCount` first, then\n          `CPUShares`, and `CPUPercent` last.\n        type: \"integer\"\n        format: \"int64\"\n      CpuPercent:\n        description: |\n          The usable percentage of the available CPUs (Windows only).\n\n          On Windows Server containers, the processor resource controls are\n          mutually exclusive. The order of precedence is `CPUCount` first, then\n          `CPUShares`, and `CPUPercent` last.\n        type: \"integer\"\n        format: \"int64\"\n      IOMaximumIOps:\n        description: \"Maximum IOps for the container system drive (Windows only)\"\n        type: \"integer\"\n        format: \"int64\"\n      IOMaximumBandwidth:\n        description: |\n          Maximum IO in bytes per second for the container system drive\n          (Windows only).\n        type: \"integer\"\n        format: \"int64\"\n\n  Limit:\n    description: |\n      An object describing a limit on resources which can be requested by a task.\n    type: \"object\"\n    properties:\n      NanoCPUs:\n        type: \"integer\"\n        format: \"int64\"\n        example: 4000000000\n      MemoryBytes:\n        type: \"integer\"\n        format: \"int64\"\n        example: 8272408576\n      Pids:\n        description: |\n          Limits the maximum number of PIDs in the container. Set `0` for unlimited.\n        type: \"integer\"\n        format: \"int64\"\n        default: 0\n        example: 100\n\n  ResourceObject:\n    description: |\n      An object describing the resources which can be advertised by a node and\n      requested by a task.\n    type: \"object\"\n    properties:\n      NanoCPUs:\n        type: \"integer\"\n        format: \"int64\"\n        example: 4000000000\n      MemoryBytes:\n        type: \"integer\"\n        format: \"int64\"\n        example: 8272408576\n      GenericResources:\n        $ref: \"#/definitions/GenericResources\"\n\n  GenericResources:\n    description: |\n      User-defined resources can be either Integer resources (e.g, `SSD=3`) or\n      String resources (e.g, `GPU=UUID1`).\n    type: \"array\"\n    items:\n      type: \"object\"\n      properties:\n        NamedResourceSpec:\n          type: \"object\"\n          properties:\n            Kind:\n              type: \"string\"\n            Value:\n              type: \"string\"\n        DiscreteResourceSpec:\n          type: \"object\"\n          properties:\n            Kind:\n              type: \"string\"\n            Value:\n              type: \"integer\"\n              format: \"int64\"\n    example:\n      - DiscreteResourceSpec:\n          Kind: \"SSD\"\n          Value: 3\n      - NamedResourceSpec:\n          Kind: \"GPU\"\n          Value: \"UUID1\"\n      - NamedResourceSpec:\n          Kind: \"GPU\"\n          Value: \"UUID2\"\n\n  HealthConfig:\n    description: \"A test to perform to check that the container is healthy.\"\n    type: \"object\"\n    properties:\n      Test:\n        description: |\n          The test to perform. Possible values are:\n\n          - `[]` inherit healthcheck from image or parent image\n          - `[\"NONE\"]` disable healthcheck\n          - `[\"CMD\", args...]` exec arguments directly\n          - `[\"CMD-SHELL\", command]` run command with system's default shell\n        type: \"array\"\n        items:\n          type: \"string\"\n      Interval:\n        description: |\n          The time to wait between checks in nanoseconds. It should be 0 or at\n          least 1000000 (1 ms). 0 means inherit.\n        type: \"integer\"\n        format: \"int64\"\n      Timeout:\n        description: |\n          The time to wait before considering the check to have hung. It should\n          be 0 or at least 1000000 (1 ms). 0 means inherit.\n        type: \"integer\"\n        format: \"int64\"\n      Retries:\n        description: |\n          The number of consecutive failures needed to consider a container as\n          unhealthy. 0 means inherit.\n        type: \"integer\"\n      StartPeriod:\n        description: |\n          Start period for the container to initialize before starting\n          health-retries countdown in nanoseconds. It should be 0 or at least\n          1000000 (1 ms). 0 means inherit.\n        type: \"integer\"\n        format: \"int64\"\n      StartInterval:\n        description: |\n          The time to wait between checks in nanoseconds during the start period.\n          It should be 0 or at least 1000000 (1 ms). 0 means inherit.\n        type: \"integer\"\n        format: \"int64\"\n\n  Health:\n    description: |\n      Health stores information about the container's healthcheck results.\n    type: \"object\"\n    x-nullable: true\n    properties:\n      Status:\n        description: |\n          Status is one of `none`, `starting`, `healthy` or `unhealthy`\n\n          - \"none\"      Indicates there is no healthcheck\n          - \"starting\"  Starting indicates that the container is not yet ready\n          - \"healthy\"   Healthy indicates that the container is running correctly\n          - \"unhealthy\" Unhealthy indicates that the container has a problem\n        type: \"string\"\n        enum:\n          - \"none\"\n          - \"starting\"\n          - \"healthy\"\n          - \"unhealthy\"\n        example: \"healthy\"\n      FailingStreak:\n        description: \"FailingStreak is the number of consecutive failures\"\n        type: \"integer\"\n        example: 0\n      Log:\n        type: \"array\"\n        description: |\n          Log contains the last few results (oldest first)\n        items:\n          $ref: \"#/definitions/HealthcheckResult\"\n\n  HealthcheckResult:\n    description: |\n      HealthcheckResult stores information about a single run of a healthcheck probe\n    type: \"object\"\n    x-nullable: true\n    properties:\n      Start:\n        description: |\n          Date and time at which this check started in\n          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n        type: \"string\"\n        format: \"date-time\"\n        example: \"2020-01-04T10:44:24.496525531Z\"\n      End:\n        description: |\n          Date and time at which this check ended in\n          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n        type: \"string\"\n        format: \"dateTime\"\n        example: \"2020-01-04T10:45:21.364524523Z\"\n      ExitCode:\n        description: |\n          ExitCode meanings:\n\n          - `0` healthy\n          - `1` unhealthy\n          - `2` reserved (considered unhealthy)\n          - other values: error running probe\n        type: \"integer\"\n        example: 0\n      Output:\n        description: \"Output from last check\"\n        type: \"string\"\n\n  HostConfig:\n    description: \"Container configuration that depends on the host we are running on\"\n    allOf:\n      - $ref: \"#/definitions/Resources\"\n      - type: \"object\"\n        properties:\n          # Applicable to all platforms\n          Binds:\n            type: \"array\"\n            description: |\n              A list of volume bindings for this container. Each volume binding\n              is a string in one of these forms:\n\n              - `host-src:container-dest[:options]` to bind-mount a host path\n                into the container. Both `host-src`, and `container-dest` must\n                be an _absolute_ path.\n              - `volume-name:container-dest[:options]` to bind-mount a volume\n                managed by a volume driver into the container. `container-dest`\n                must be an _absolute_ path.\n\n              `options` is an optional, comma-delimited list of:\n\n              - `nocopy` disables automatic copying of data from the container\n                path to the volume. The `nocopy` flag only applies to named volumes.\n              - `[ro|rw]` mounts a volume read-only or read-write, respectively.\n                If omitted or set to `rw`, volumes are mounted read-write.\n              - `[z|Z]` applies SELinux labels to allow or deny multiple containers\n                to read and write to the same volume.\n                  - `z`: a _shared_ content label is applied to the content. This\n                    label indicates that multiple containers can share the volume\n                    content, for both reading and writing.\n                  - `Z`: a _private unshared_ label is applied to the content.\n                    This label indicates that only the current container can use\n                    a private volume. Labeling systems such as SELinux require\n                    proper labels to be placed on volume content that is mounted\n                    into a container. Without a label, the security system can\n                    prevent a container's processes from using the content. By\n                    default, the labels set by the host operating system are not\n                    modified.\n              - `[[r]shared|[r]slave|[r]private]` specifies mount\n                [propagation behavior](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt).\n                This only applies to bind-mounted volumes, not internal volumes\n                or named volumes. Mount propagation requires the source mount\n                point (the location where the source directory is mounted in the\n                host operating system) to have the correct propagation properties.\n                For shared volumes, the source mount point must be set to `shared`.\n                For slave volumes, the mount must be set to either `shared` or\n                `slave`.\n            items:\n              type: \"string\"\n          ContainerIDFile:\n            type: \"string\"\n            description: \"Path to a file where the container ID is written\"\n            example: \"\"\n          LogConfig:\n            type: \"object\"\n            description: \"The logging configuration for this container\"\n            properties:\n              Type:\n                description: |-\n                  Name of the logging driver used for the container or \"none\"\n                  if logging is disabled.\n                type: \"string\"\n                enum:\n                  - \"local\"\n                  - \"json-file\"\n                  - \"syslog\"\n                  - \"journald\"\n                  - \"gelf\"\n                  - \"fluentd\"\n                  - \"awslogs\"\n                  - \"splunk\"\n                  - \"etwlogs\"\n                  - \"none\"\n              Config:\n                description: |-\n                  Driver-specific configuration options for the logging driver.\n                type: \"object\"\n                additionalProperties:\n                  type: \"string\"\n                example:\n                  \"max-file\": \"5\"\n                  \"max-size\": \"10m\"\n          NetworkMode:\n            type: \"string\"\n            description: |\n              Network mode to use for this container. Supported standard values\n              are: `bridge`, `host`, `none`, and `container:<name|id>`. Any\n              other value is taken as a custom network's name to which this\n              container should connect to.\n          PortBindings:\n            $ref: \"#/definitions/PortMap\"\n          RestartPolicy:\n            $ref: \"#/definitions/RestartPolicy\"\n          AutoRemove:\n            type: \"boolean\"\n            description: |\n              Automatically remove the container when the container's process\n              exits. This has no effect if `RestartPolicy` is set.\n          VolumeDriver:\n            type: \"string\"\n            description: \"Driver that this container uses to mount volumes.\"\n          VolumesFrom:\n            type: \"array\"\n            description: |\n              A list of volumes to inherit from another container, specified in\n              the form `<container name>[:<ro|rw>]`.\n            items:\n              type: \"string\"\n          Mounts:\n            description: |\n              Specification for mounts to be added to the container.\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/Mount\"\n          ConsoleSize:\n            type: \"array\"\n            description: |\n              Initial console size, as an `[height, width]` array.\n            x-nullable: true\n            minItems: 2\n            maxItems: 2\n            items:\n              type: \"integer\"\n              minimum: 0\n            example: [80, 64]\n          Annotations:\n            type: \"object\"\n            description: |\n              Arbitrary non-identifying metadata attached to container and\n              provided to the runtime when the container is started.\n            additionalProperties:\n              type: \"string\"\n\n          # Applicable to UNIX platforms\n          CapAdd:\n            type: \"array\"\n            description: |\n              A list of kernel capabilities to add to the container. Conflicts\n              with option 'Capabilities'.\n            items:\n              type: \"string\"\n          CapDrop:\n            type: \"array\"\n            description: |\n              A list of kernel capabilities to drop from the container. Conflicts\n              with option 'Capabilities'.\n            items:\n              type: \"string\"\n          CgroupnsMode:\n            type: \"string\"\n            enum:\n              - \"private\"\n              - \"host\"\n            description: |\n              cgroup namespace mode for the container. Possible values are:\n\n              - `\"private\"`: the container runs in its own private cgroup namespace\n              - `\"host\"`: use the host system's cgroup namespace\n\n              If not specified, the daemon default is used, which can either be `\"private\"`\n              or `\"host\"`, depending on daemon version, kernel support and configuration.\n          Dns:\n            type: \"array\"\n            description: \"A list of DNS servers for the container to use.\"\n            items:\n              type: \"string\"\n          DnsOptions:\n            type: \"array\"\n            description: \"A list of DNS options.\"\n            items:\n              type: \"string\"\n          DnsSearch:\n            type: \"array\"\n            description: \"A list of DNS search domains.\"\n            items:\n              type: \"string\"\n          ExtraHosts:\n            type: \"array\"\n            description: |\n              A list of hostnames/IP mappings to add to the container's `/etc/hosts`\n              file. Specified in the form `[\"hostname:IP\"]`.\n            items:\n              type: \"string\"\n          GroupAdd:\n            type: \"array\"\n            description: |\n              A list of additional groups that the container process will run as.\n            items:\n              type: \"string\"\n          IpcMode:\n            type: \"string\"\n            description: |\n              IPC sharing mode for the container. Possible values are:\n\n              - `\"none\"`: own private IPC namespace, with /dev/shm not mounted\n              - `\"private\"`: own private IPC namespace\n              - `\"shareable\"`: own private IPC namespace, with a possibility to share it with other containers\n              - `\"container:<name|id>\"`: join another (shareable) container's IPC namespace\n              - `\"host\"`: use the host system's IPC namespace\n\n              If not specified, daemon default is used, which can either be `\"private\"`\n              or `\"shareable\"`, depending on daemon version and configuration.\n          Cgroup:\n            type: \"string\"\n            description: \"Cgroup to use for the container.\"\n          Links:\n            type: \"array\"\n            description: |\n              A list of links for the container in the form `container_name:alias`.\n            items:\n              type: \"string\"\n          OomScoreAdj:\n            type: \"integer\"\n            description: |\n              An integer value containing the score given to the container in\n              order to tune OOM killer preferences.\n            example: 500\n          PidMode:\n            type: \"string\"\n            description: |\n              Set the PID (Process) Namespace mode for the container. It can be\n              either:\n\n              - `\"container:<name|id>\"`: joins another container's PID namespace\n              - `\"host\"`: use the host's PID namespace inside the container\n          Privileged:\n            type: \"boolean\"\n            description: |-\n              Gives the container full access to the host.\n          PublishAllPorts:\n            type: \"boolean\"\n            description: |\n              Allocates an ephemeral host port for all of a container's\n              exposed ports.\n\n              Ports are de-allocated when the container stops and allocated when\n              the container starts. The allocated port might be changed when\n              restarting the container.\n\n              The port is selected from the ephemeral port range that depends on\n              the kernel. For example, on Linux the range is defined by\n              `/proc/sys/net/ipv4/ip_local_port_range`.\n          ReadonlyRootfs:\n            type: \"boolean\"\n            description: \"Mount the container's root filesystem as read only.\"\n          SecurityOpt:\n            type: \"array\"\n            description: |\n              A list of string values to customize labels for MLS systems, such\n              as SELinux.\n            items:\n              type: \"string\"\n          StorageOpt:\n            type: \"object\"\n            description: |\n              Storage driver options for this container, in the form `{\"size\": \"120G\"}`.\n            additionalProperties:\n              type: \"string\"\n          Tmpfs:\n            type: \"object\"\n            description: |\n              A map of container directories which should be replaced by tmpfs\n              mounts, and their corresponding mount options. For example:\n\n              ```\n              { \"/run\": \"rw,noexec,nosuid,size=65536k\" }\n              ```\n            additionalProperties:\n              type: \"string\"\n          UTSMode:\n            type: \"string\"\n            description: \"UTS namespace to use for the container.\"\n          UsernsMode:\n            type: \"string\"\n            description: |\n              Sets the usernamespace mode for the container when usernamespace\n              remapping option is enabled.\n          ShmSize:\n            type: \"integer\"\n            format: \"int64\"\n            description: |\n              Size of `/dev/shm` in bytes. If omitted, the system uses 64MB.\n            minimum: 0\n          Sysctls:\n            type: \"object\"\n            x-nullable: true\n            description: |-\n              A list of kernel parameters (sysctls) to set in the container.\n\n              This field is omitted if not set.\n            additionalProperties:\n              type: \"string\"\n            example:\n              \"net.ipv4.ip_forward\": \"1\"\n          Runtime:\n            type: \"string\"\n            x-nullable: true\n            description: |-\n              Runtime to use with this container.\n          # Applicable to Windows\n          Isolation:\n            type: \"string\"\n            description: |\n              Isolation technology of the container. (Windows only)\n            enum:\n              - \"default\"\n              - \"process\"\n              - \"hyperv\"\n              - \"\"\n          MaskedPaths:\n            type: \"array\"\n            description: |\n              The list of paths to be masked inside the container (this overrides\n              the default set of paths).\n            items:\n              type: \"string\"\n            example:\n              - \"/proc/asound\"\n              - \"/proc/acpi\"\n              - \"/proc/kcore\"\n              - \"/proc/keys\"\n              - \"/proc/latency_stats\"\n              - \"/proc/timer_list\"\n              - \"/proc/timer_stats\"\n              - \"/proc/sched_debug\"\n              - \"/proc/scsi\"\n              - \"/sys/firmware\"\n              - \"/sys/devices/virtual/powercap\"\n          ReadonlyPaths:\n            type: \"array\"\n            description: |\n              The list of paths to be set as read-only inside the container\n              (this overrides the default set of paths).\n            items:\n              type: \"string\"\n            example:\n              - \"/proc/bus\"\n              - \"/proc/fs\"\n              - \"/proc/irq\"\n              - \"/proc/sys\"\n              - \"/proc/sysrq-trigger\"\n\n  ContainerConfig:\n    description: |\n      Configuration for a container that is portable between hosts.\n    type: \"object\"\n    properties:\n      Hostname:\n        description: |\n          The hostname to use for the container, as a valid RFC 1123 hostname.\n        type: \"string\"\n        example: \"439f4e91bd1d\"\n      Domainname:\n        description: |\n          The domain name to use for the container.\n        type: \"string\"\n      User:\n        description: |-\n          Commands run as this user inside the container. If omitted, commands\n          run as the user specified in the image the container was started from.\n\n          Can be either user-name or UID, and optional group-name or GID,\n          separated by a colon (`<user-name|UID>[<:group-name|GID>]`).\n        type: \"string\"\n        example: \"123:456\"\n      AttachStdin:\n        description: \"Whether to attach to `stdin`.\"\n        type: \"boolean\"\n        default: false\n      AttachStdout:\n        description: \"Whether to attach to `stdout`.\"\n        type: \"boolean\"\n        default: true\n      AttachStderr:\n        description: \"Whether to attach to `stderr`.\"\n        type: \"boolean\"\n        default: true\n      ExposedPorts:\n        description: |\n          An object mapping ports to an empty object in the form:\n\n          `{\"<port>/<tcp|udp|sctp>\": {}}`\n        type: \"object\"\n        x-nullable: true\n        additionalProperties:\n          type: \"object\"\n          enum:\n            - {}\n          default: {}\n        example: {\n          \"80/tcp\": {},\n          \"443/tcp\": {}\n        }\n      Tty:\n        description: |\n          Attach standard streams to a TTY, including `stdin` if it is not closed.\n        type: \"boolean\"\n        default: false\n      OpenStdin:\n        description: \"Open `stdin`\"\n        type: \"boolean\"\n        default: false\n      StdinOnce:\n        description: \"Close `stdin` after one attached client disconnects\"\n        type: \"boolean\"\n        default: false\n      Env:\n        description: |\n          A list of environment variables to set inside the container in the\n          form `[\"VAR=value\", ...]`. A variable without `=` is removed from the\n          environment, rather than to have an empty value.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\n      Cmd:\n        description: |\n          Command to run specified as a string or an array of strings.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example: [\"/bin/sh\"]\n      Healthcheck:\n        $ref: \"#/definitions/HealthConfig\"\n      ArgsEscaped:\n        description: \"Command is already escaped (Windows only)\"\n        type: \"boolean\"\n        default: false\n        example: false\n        x-nullable: true\n      Image:\n        description: |\n          The name (or reference) of the image to use when creating the container,\n          or which was used when the container was created.\n        type: \"string\"\n        example: \"example-image:1.0\"\n      Volumes:\n        description: |\n          An object mapping mount point paths inside the container to empty\n          objects.\n        type: \"object\"\n        additionalProperties:\n          type: \"object\"\n          enum:\n            - {}\n          default: {}\n      WorkingDir:\n        description: \"The working directory for commands to run in.\"\n        type: \"string\"\n        example: \"/public/\"\n      Entrypoint:\n        description: |\n          The entry point for the container as a string or an array of strings.\n\n          If the array consists of exactly one empty string (`[\"\"]`) then the\n          entry point is reset to system default (i.e., the entry point used by\n          docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).\n        type: \"array\"\n        items:\n          type: \"string\"\n        example: []\n      NetworkDisabled:\n        description: \"Disable networking for the container.\"\n        type: \"boolean\"\n        x-nullable: true\n      MacAddress:\n        description: |\n          MAC address of the container.\n\n          Deprecated: this field is deprecated in API v1.44 and up. Use EndpointSettings.MacAddress instead.\n        type: \"string\"\n        x-nullable: true\n      OnBuild:\n        description: |\n          `ONBUILD` metadata that were defined in the image's `Dockerfile`.\n        type: \"array\"\n        x-nullable: true\n        items:\n          type: \"string\"\n        example: []\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.example.some-label: \"some-value\"\n          com.example.some-other-label: \"some-other-value\"\n      StopSignal:\n        description: |\n          Signal to stop a container as a string or unsigned integer.\n        type: \"string\"\n        example: \"SIGTERM\"\n        x-nullable: true\n      StopTimeout:\n        description: \"Timeout to stop a container in seconds.\"\n        type: \"integer\"\n        default: 10\n        x-nullable: true\n      Shell:\n        description: |\n          Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell.\n        type: \"array\"\n        x-nullable: true\n        items:\n          type: \"string\"\n        example: [\"/bin/sh\", \"-c\"]\n\n  ImageConfig:\n    description: |\n      Configuration of the image. These fields are used as defaults\n      when starting a container from the image.\n    type: \"object\"\n    properties:\n      User:\n        description: \"The user that commands are run as inside the container.\"\n        type: \"string\"\n        example: \"web:web\"\n      ExposedPorts:\n        description: |\n          An object mapping ports to an empty object in the form:\n\n          `{\"<port>/<tcp|udp|sctp>\": {}}`\n        type: \"object\"\n        x-nullable: true\n        additionalProperties:\n          type: \"object\"\n          enum:\n            - {}\n          default: {}\n        example: {\n          \"80/tcp\": {},\n          \"443/tcp\": {}\n        }\n      Env:\n        description: |\n          A list of environment variables to set inside the container in the\n          form `[\"VAR=value\", ...]`. A variable without `=` is removed from the\n          environment, rather than to have an empty value.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\n      Cmd:\n        description: |\n          Command to run specified as a string or an array of strings.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example: [\"/bin/sh\"]\n      Healthcheck:\n        $ref: \"#/definitions/HealthConfig\"\n      ArgsEscaped:\n        description: \"Command is already escaped (Windows only)\"\n        type: \"boolean\"\n        default: false\n        example: false\n        x-nullable: true\n      Volumes:\n        description: |\n          An object mapping mount point paths inside the container to empty\n          objects.\n        type: \"object\"\n        additionalProperties:\n          type: \"object\"\n          enum:\n            - {}\n          default: {}\n        example:\n          \"/app/data\": {}\n          \"/app/config\": {}\n      WorkingDir:\n        description: \"The working directory for commands to run in.\"\n        type: \"string\"\n        example: \"/public/\"\n      Entrypoint:\n        description: |\n          The entry point for the container as a string or an array of strings.\n\n          If the array consists of exactly one empty string (`[\"\"]`) then the\n          entry point is reset to system default (i.e., the entry point used by\n          docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).\n        type: \"array\"\n        items:\n          type: \"string\"\n        example: []\n      OnBuild:\n        description: |\n          `ONBUILD` metadata that were defined in the image's `Dockerfile`.\n        type: \"array\"\n        x-nullable: true\n        items:\n          type: \"string\"\n        example: []\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.example.some-label: \"some-value\"\n          com.example.some-other-label: \"some-other-value\"\n      StopSignal:\n        description: |\n          Signal to stop a container as a string or unsigned integer.\n        type: \"string\"\n        example: \"SIGTERM\"\n        x-nullable: true\n      Shell:\n        description: |\n          Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell.\n        type: \"array\"\n        x-nullable: true\n        items:\n          type: \"string\"\n        example: [\"/bin/sh\", \"-c\"]\n\n  NetworkingConfig:\n    description: |\n      NetworkingConfig represents the container's networking configuration for\n      each of its interfaces.\n      It is used for the networking configs specified in the `docker create`\n      and `docker network connect` commands.\n    type: \"object\"\n    properties:\n      EndpointsConfig:\n        description: |\n          A mapping of network name to endpoint configuration for that network.\n          The endpoint configuration can be left empty to connect to that\n          network with no particular endpoint configuration.\n        type: \"object\"\n        additionalProperties:\n          $ref: \"#/definitions/EndpointSettings\"\n    example:\n      # putting an example here, instead of using the example values from\n      # /definitions/EndpointSettings, because EndpointSettings contains\n      # operational data returned when inspecting a container that we don't\n      # accept here.\n      EndpointsConfig:\n        isolated_nw:\n          IPAMConfig:\n            IPv4Address: \"172.20.30.33\"\n            IPv6Address: \"2001:db8:abcd::3033\"\n            LinkLocalIPs:\n              - \"169.254.34.68\"\n              - \"fe80::3468\"\n          MacAddress: \"02:42:ac:12:05:02\"\n          Links:\n            - \"container_1\"\n            - \"container_2\"\n          Aliases:\n            - \"server_x\"\n            - \"server_y\"\n        database_nw: {}\n\n  NetworkSettings:\n    description: \"NetworkSettings exposes the network settings in the API\"\n    type: \"object\"\n    properties:\n      Bridge:\n        description: |\n          Name of the default bridge interface when dockerd's --bridge flag is set.\n\n          Deprecated: This field is only set when the daemon is started with the --bridge flag specified.\n        type: \"string\"\n        example: \"docker0\"\n      SandboxID:\n        description: SandboxID uniquely represents a container's network stack.\n        type: \"string\"\n        example: \"9d12daf2c33f5959c8bf90aa513e4f65b561738661003029ec84830cd503a0c3\"\n      HairpinMode:\n        description: |\n          Indicates if hairpin NAT should be enabled on the virtual interface.\n\n          Deprecated: This field is never set and will be removed in a future release.\n        type: \"boolean\"\n        example: false\n      LinkLocalIPv6Address:\n        description: |\n          IPv6 unicast address using the link-local prefix.\n\n          Deprecated: This field is never set and will be removed in a future release.\n        type: \"string\"\n        example: \"\"\n      LinkLocalIPv6PrefixLen:\n        description: |\n          Prefix length of the IPv6 unicast address.\n\n          Deprecated: This field is never set and will be removed in a future release.\n        type: \"integer\"\n        example: \"\"\n      Ports:\n        $ref: \"#/definitions/PortMap\"\n      SandboxKey:\n        description: SandboxKey is the full path of the netns handle\n        type: \"string\"\n        example: \"/var/run/docker/netns/8ab54b426c38\"\n\n      SecondaryIPAddresses:\n        description: \"Deprecated: This field is never set and will be removed in a future release.\"\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/Address\"\n        x-nullable: true\n\n      SecondaryIPv6Addresses:\n        description: \"Deprecated: This field is never set and will be removed in a future release.\"\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/Address\"\n        x-nullable: true\n\n      # TODO properties below are part of DefaultNetworkSettings, which is\n      # marked as deprecated since Docker 1.9 and to be removed in Docker v17.12\n      EndpointID:\n        description: |\n          EndpointID uniquely represents a service endpoint in a Sandbox.\n\n          <p><br /></p>\n\n          > **Deprecated**: This field is only propagated when attached to the\n          > default \"bridge\" network. Use the information from the \"bridge\"\n          > network inside the `Networks` map instead, which contains the same\n          > information. This field was deprecated in Docker 1.9 and is scheduled\n          > to be removed in Docker 17.12.0\n        type: \"string\"\n        example: \"b88f5b905aabf2893f3cbc4ee42d1ea7980bbc0a92e2c8922b1e1795298afb0b\"\n      Gateway:\n        description: |\n          Gateway address for the default \"bridge\" network.\n\n          <p><br /></p>\n\n          > **Deprecated**: This field is only propagated when attached to the\n          > default \"bridge\" network. Use the information from the \"bridge\"\n          > network inside the `Networks` map instead, which contains the same\n          > information. This field was deprecated in Docker 1.9 and is scheduled\n          > to be removed in Docker 17.12.0\n        type: \"string\"\n        example: \"172.17.0.1\"\n      GlobalIPv6Address:\n        description: |\n          Global IPv6 address for the default \"bridge\" network.\n\n          <p><br /></p>\n\n          > **Deprecated**: This field is only propagated when attached to the\n          > default \"bridge\" network. Use the information from the \"bridge\"\n          > network inside the `Networks` map instead, which contains the same\n          > information. This field was deprecated in Docker 1.9 and is scheduled\n          > to be removed in Docker 17.12.0\n        type: \"string\"\n        example: \"2001:db8::5689\"\n      GlobalIPv6PrefixLen:\n        description: |\n          Mask length of the global IPv6 address.\n\n          <p><br /></p>\n\n          > **Deprecated**: This field is only propagated when attached to the\n          > default \"bridge\" network. Use the information from the \"bridge\"\n          > network inside the `Networks` map instead, which contains the same\n          > information. This field was deprecated in Docker 1.9 and is scheduled\n          > to be removed in Docker 17.12.0\n        type: \"integer\"\n        example: 64\n      IPAddress:\n        description: |\n          IPv4 address for the default \"bridge\" network.\n\n          <p><br /></p>\n\n          > **Deprecated**: This field is only propagated when attached to the\n          > default \"bridge\" network. Use the information from the \"bridge\"\n          > network inside the `Networks` map instead, which contains the same\n          > information. This field was deprecated in Docker 1.9 and is scheduled\n          > to be removed in Docker 17.12.0\n        type: \"string\"\n        example: \"172.17.0.4\"\n      IPPrefixLen:\n        description: |\n          Mask length of the IPv4 address.\n\n          <p><br /></p>\n\n          > **Deprecated**: This field is only propagated when attached to the\n          > default \"bridge\" network. Use the information from the \"bridge\"\n          > network inside the `Networks` map instead, which contains the same\n          > information. This field was deprecated in Docker 1.9 and is scheduled\n          > to be removed in Docker 17.12.0\n        type: \"integer\"\n        example: 16\n      IPv6Gateway:\n        description: |\n          IPv6 gateway address for this network.\n\n          <p><br /></p>\n\n          > **Deprecated**: This field is only propagated when attached to the\n          > default \"bridge\" network. Use the information from the \"bridge\"\n          > network inside the `Networks` map instead, which contains the same\n          > information. This field was deprecated in Docker 1.9 and is scheduled\n          > to be removed in Docker 17.12.0\n        type: \"string\"\n        example: \"2001:db8:2::100\"\n      MacAddress:\n        description: |\n          MAC address for the container on the default \"bridge\" network.\n\n          <p><br /></p>\n\n          > **Deprecated**: This field is only propagated when attached to the\n          > default \"bridge\" network. Use the information from the \"bridge\"\n          > network inside the `Networks` map instead, which contains the same\n          > information. This field was deprecated in Docker 1.9 and is scheduled\n          > to be removed in Docker 17.12.0\n        type: \"string\"\n        example: \"02:42:ac:11:00:04\"\n      Networks:\n        description: |\n          Information about all networks that the container is connected to.\n        type: \"object\"\n        additionalProperties:\n          $ref: \"#/definitions/EndpointSettings\"\n\n  Address:\n    description: Address represents an IPv4 or IPv6 IP address.\n    type: \"object\"\n    properties:\n      Addr:\n        description: IP address.\n        type: \"string\"\n      PrefixLen:\n        description: Mask length of the IP address.\n        type: \"integer\"\n\n  PortMap:\n    description: |\n      PortMap describes the mapping of container ports to host ports, using the\n      container's port-number and protocol as key in the format `<port>/<protocol>`,\n      for example, `80/udp`.\n\n      If a container's port is mapped for multiple protocols, separate entries\n      are added to the mapping table.\n    type: \"object\"\n    additionalProperties:\n      type: \"array\"\n      x-nullable: true\n      items:\n        $ref: \"#/definitions/PortBinding\"\n    example:\n      \"443/tcp\":\n        - HostIp: \"127.0.0.1\"\n          HostPort: \"4443\"\n      \"80/tcp\":\n        - HostIp: \"0.0.0.0\"\n          HostPort: \"80\"\n        - HostIp: \"0.0.0.0\"\n          HostPort: \"8080\"\n      \"80/udp\":\n        - HostIp: \"0.0.0.0\"\n          HostPort: \"80\"\n      \"53/udp\":\n        - HostIp: \"0.0.0.0\"\n          HostPort: \"53\"\n      \"2377/tcp\": null\n\n  PortBinding:\n    description: |\n      PortBinding represents a binding between a host IP address and a host\n      port.\n    type: \"object\"\n    properties:\n      HostIp:\n        description: \"Host IP address that the container's port is mapped to.\"\n        type: \"string\"\n        example: \"127.0.0.1\"\n      HostPort:\n        description: \"Host port number that the container's port is mapped to.\"\n        type: \"string\"\n        example: \"4443\"\n\n  DriverData:\n    description: |\n      Information about the storage driver used to store the container's and\n      image's filesystem.\n    type: \"object\"\n    required: [Name, Data]\n    properties:\n      Name:\n        description: \"Name of the storage driver.\"\n        type: \"string\"\n        x-nullable: false\n        example: \"overlay2\"\n      Data:\n        description: |\n          Low-level storage metadata, provided as key/value pairs.\n\n          This information is driver-specific, and depends on the storage-driver\n          in use, and should be used for informational purposes only.\n        type: \"object\"\n        x-nullable: false\n        additionalProperties:\n          type: \"string\"\n        example: {\n          \"MergedDir\": \"/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/merged\",\n          \"UpperDir\": \"/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/diff\",\n          \"WorkDir\": \"/var/lib/docker/overlay2/ef749362d13333e65fc95c572eb525abbe0052e16e086cb64bc3b98ae9aa6d74/work\"\n        }\n\n  FilesystemChange:\n    description: |\n      Change in the container's filesystem.\n    type: \"object\"\n    required: [Path, Kind]\n    properties:\n      Path:\n        description: |\n          Path to file or directory that has changed.\n        type: \"string\"\n        x-nullable: false\n      Kind:\n        $ref: \"#/definitions/ChangeType\"\n\n  ChangeType:\n    description: |\n      Kind of change\n\n      Can be one of:\n\n      - `0`: Modified (\"C\")\n      - `1`: Added (\"A\")\n      - `2`: Deleted (\"D\")\n    type: \"integer\"\n    format: \"uint8\"\n    enum: [0, 1, 2]\n    x-nullable: false\n\n  ImageInspect:\n    description: |\n      Information about an image in the local image cache.\n    type: \"object\"\n    properties:\n      Id:\n        description: |\n          ID is the content-addressable ID of an image.\n\n          This identifier is a content-addressable digest calculated from the\n          image's configuration (which includes the digests of layers used by\n          the image).\n\n          Note that this digest differs from the `RepoDigests` below, which\n          holds digests of image manifests that reference the image.\n        type: \"string\"\n        x-nullable: false\n        example: \"sha256:ec3f0931a6e6b6855d76b2d7b0be30e81860baccd891b2e243280bf1cd8ad710\"\n      Descriptor:\n        description: |\n          Descriptor is an OCI descriptor of the image target.\n          In case of a multi-platform image, this descriptor points to the OCI index\n          or a manifest list.\n\n          This field is only present if the daemon provides a multi-platform image store.\n\n          WARNING: This is experimental and may change at any time without any backward\n          compatibility.\n        x-nullable: true\n        $ref: \"#/definitions/OCIDescriptor\"\n      Manifests:\n        description: |\n            Manifests is a list of image manifests available in this image. It\n            provides a more detailed view of the platform-specific image manifests or\n            other image-attached data like build attestations.\n\n            Only available if the daemon provides a multi-platform image store\n            and the `manifests` option is set in the inspect request.\n\n            WARNING: This is experimental and may change at any time without any backward\n            compatibility.\n        type: \"array\"\n        x-nullable: true\n        items:\n          $ref: \"#/definitions/ImageManifestSummary\"\n      RepoTags:\n        description: |\n          List of image names/tags in the local image cache that reference this\n          image.\n\n          Multiple image tags can refer to the same image, and this list may be\n          empty if no tags reference the image, in which case the image is\n          \"untagged\", in which case it can still be referenced by its ID.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"example:1.0\"\n          - \"example:latest\"\n          - \"example:stable\"\n          - \"internal.registry.example.com:5000/example:1.0\"\n      RepoDigests:\n        description: |\n          List of content-addressable digests of locally available image manifests\n          that the image is referenced from. Multiple manifests can refer to the\n          same image.\n\n          These digests are usually only available if the image was either pulled\n          from a registry, or if the image was pushed to a registry, which is when\n          the manifest is generated and its digest calculated.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb\"\n          - \"internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578\"\n      Parent:\n        description: |\n          ID of the parent image.\n\n          Depending on how the image was created, this field may be empty and\n          is only set for images that were built/created locally. This field\n          is empty if the image was pulled from an image registry.\n\n          > **Deprecated**: This field is only set when using the deprecated\n          > legacy builder. It is included in API responses for informational\n          > purposes, but should not be depended on as it will be omitted\n          > once the legacy builder is removed.\n        type: \"string\"\n        x-nullable: false\n        example: \"\"\n      Comment:\n        description: |\n          Optional message that was set when committing or importing the image.\n        type: \"string\"\n        x-nullable: false\n        example: \"\"\n      Created:\n        description: |\n          Date and time at which the image was created, formatted in\n          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n\n          This information is only available if present in the image,\n          and omitted otherwise.\n        type: \"string\"\n        format: \"dateTime\"\n        x-nullable: true\n        example: \"2022-02-04T21:20:12.497794809Z\"\n      DockerVersion:\n        description: |\n          The version of Docker that was used to build the image.\n\n          Depending on how the image was created, this field may be empty.\n\n          > **Deprecated**: This field is only set when using the deprecated\n          > legacy builder. It is included in API responses for informational\n          > purposes, but should not be depended on as it will be omitted\n          > once the legacy builder is removed.\n        type: \"string\"\n        x-nullable: false\n        example: \"27.0.1\"\n      Author:\n        description: |\n          Name of the author that was specified when committing the image, or as\n          specified through MAINTAINER (deprecated) in the Dockerfile.\n        type: \"string\"\n        x-nullable: false\n        example: \"\"\n      Config:\n        $ref: \"#/definitions/ImageConfig\"\n      Architecture:\n        description: |\n          Hardware CPU architecture that the image runs on.\n        type: \"string\"\n        x-nullable: false\n        example: \"arm\"\n      Variant:\n        description: |\n          CPU architecture variant (presently ARM-only).\n        type: \"string\"\n        x-nullable: true\n        example: \"v7\"\n      Os:\n        description: |\n          Operating System the image is built to run on.\n        type: \"string\"\n        x-nullable: false\n        example: \"linux\"\n      OsVersion:\n        description: |\n          Operating System version the image is built to run on (especially\n          for Windows).\n        type: \"string\"\n        example: \"\"\n        x-nullable: true\n      Size:\n        description: |\n          Total size of the image including all layers it is composed of.\n        type: \"integer\"\n        format: \"int64\"\n        x-nullable: false\n        example: 1239828\n      GraphDriver:\n        $ref: \"#/definitions/DriverData\"\n      RootFS:\n        description: |\n          Information about the image's RootFS, including the layer IDs.\n        type: \"object\"\n        required: [Type]\n        properties:\n          Type:\n            type: \"string\"\n            x-nullable: false\n            example: \"layers\"\n          Layers:\n            type: \"array\"\n            items:\n              type: \"string\"\n            example:\n              - \"sha256:1834950e52ce4d5a88a1bbd131c537f4d0e56d10ff0dd69e66be3b7dfa9df7e6\"\n              - \"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef\"\n      Metadata:\n        description: |\n          Additional metadata of the image in the local cache. This information\n          is local to the daemon, and not part of the image itself.\n        type: \"object\"\n        properties:\n          LastTagTime:\n            description: |\n              Date and time at which the image was last tagged in\n              [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n\n              This information is only available if the image was tagged locally,\n              and omitted otherwise.\n            type: \"string\"\n            format: \"dateTime\"\n            example: \"2022-02-28T14:40:02.623929178Z\"\n            x-nullable: true\n\n  ImageSummary:\n    type: \"object\"\n    x-go-name: \"Summary\"\n    required:\n      - Id\n      - ParentId\n      - RepoTags\n      - RepoDigests\n      - Created\n      - Size\n      - SharedSize\n      - Labels\n      - Containers\n    properties:\n      Id:\n        description: |\n          ID is the content-addressable ID of an image.\n\n          This identifier is a content-addressable digest calculated from the\n          image's configuration (which includes the digests of layers used by\n          the image).\n\n          Note that this digest differs from the `RepoDigests` below, which\n          holds digests of image manifests that reference the image.\n        type: \"string\"\n        x-nullable: false\n        example: \"sha256:ec3f0931a6e6b6855d76b2d7b0be30e81860baccd891b2e243280bf1cd8ad710\"\n      ParentId:\n        description: |\n          ID of the parent image.\n\n          Depending on how the image was created, this field may be empty and\n          is only set for images that were built/created locally. This field\n          is empty if the image was pulled from an image registry.\n        type: \"string\"\n        x-nullable: false\n        example: \"\"\n      RepoTags:\n        description: |\n          List of image names/tags in the local image cache that reference this\n          image.\n\n          Multiple image tags can refer to the same image, and this list may be\n          empty if no tags reference the image, in which case the image is\n          \"untagged\", in which case it can still be referenced by its ID.\n        type: \"array\"\n        x-nullable: false\n        items:\n          type: \"string\"\n        example:\n          - \"example:1.0\"\n          - \"example:latest\"\n          - \"example:stable\"\n          - \"internal.registry.example.com:5000/example:1.0\"\n      RepoDigests:\n        description: |\n          List of content-addressable digests of locally available image manifests\n          that the image is referenced from. Multiple manifests can refer to the\n          same image.\n\n          These digests are usually only available if the image was either pulled\n          from a registry, or if the image was pushed to a registry, which is when\n          the manifest is generated and its digest calculated.\n        type: \"array\"\n        x-nullable: false\n        items:\n          type: \"string\"\n        example:\n          - \"example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb\"\n          - \"internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578\"\n      Created:\n        description: |\n          Date and time at which the image was created as a Unix timestamp\n          (number of seconds since EPOCH).\n        type: \"integer\"\n        x-nullable: false\n        example: \"1644009612\"\n      Size:\n        description: |\n          Total size of the image including all layers it is composed of.\n        type: \"integer\"\n        format: \"int64\"\n        x-nullable: false\n        example: 172064416\n      SharedSize:\n        description: |\n          Total size of image layers that are shared between this image and other\n          images.\n\n          This size is not calculated by default. `-1` indicates that the value\n          has not been set / calculated.\n        type: \"integer\"\n        format: \"int64\"\n        x-nullable: false\n        example: 1239828\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        x-nullable: false\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.example.some-label: \"some-value\"\n          com.example.some-other-label: \"some-other-value\"\n      Containers:\n        description: |\n          Number of containers using this image. Includes both stopped and running\n          containers.\n\n          `-1` indicates that the value has not been set / calculated.\n        x-nullable: false\n        type: \"integer\"\n        example: 2\n      Manifests:\n        description: |\n          Manifests is a list of manifests available in this image.\n          It provides a more detailed view of the platform-specific image manifests\n          or other image-attached data like build attestations.\n\n          WARNING: This is experimental and may change at any time without any backward\n          compatibility.\n        type: \"array\"\n        x-nullable: false\n        x-omitempty: true\n        items:\n          $ref: \"#/definitions/ImageManifestSummary\"\n      Descriptor:\n        description: |\n          Descriptor is an OCI descriptor of the image target.\n          In case of a multi-platform image, this descriptor points to the OCI index\n          or a manifest list.\n\n          This field is only present if the daemon provides a multi-platform image store.\n\n          WARNING: This is experimental and may change at any time without any backward\n          compatibility.\n        x-nullable: true\n        $ref: \"#/definitions/OCIDescriptor\"\n\n  AuthConfig:\n    type: \"object\"\n    properties:\n      username:\n        type: \"string\"\n      password:\n        type: \"string\"\n      email:\n        description: |\n          Email is an optional value associated with the username.\n\n          > **Deprecated**: This field is deprecated since docker 1.11 (API v1.23) and will be removed in a future release.\n        type: \"string\"\n      serveraddress:\n        type: \"string\"\n    example:\n      username: \"hannibal\"\n      password: \"xxxx\"\n      serveraddress: \"https://index.docker.io/v1/\"\n\n  ProcessConfig:\n    type: \"object\"\n    properties:\n      privileged:\n        type: \"boolean\"\n      user:\n        type: \"string\"\n      tty:\n        type: \"boolean\"\n      entrypoint:\n        type: \"string\"\n      arguments:\n        type: \"array\"\n        items:\n          type: \"string\"\n\n  Volume:\n    type: \"object\"\n    required: [Name, Driver, Mountpoint, Labels, Scope, Options]\n    properties:\n      Name:\n        type: \"string\"\n        description: \"Name of the volume.\"\n        x-nullable: false\n        example: \"tardis\"\n      Driver:\n        type: \"string\"\n        description: \"Name of the volume driver used by the volume.\"\n        x-nullable: false\n        example: \"custom\"\n      Mountpoint:\n        type: \"string\"\n        description: \"Mount path of the volume on the host.\"\n        x-nullable: false\n        example: \"/var/lib/docker/volumes/tardis\"\n      CreatedAt:\n        type: \"string\"\n        format: \"dateTime\"\n        description: \"Date/Time the volume was created.\"\n        example: \"2016-06-07T20:31:11.853781916Z\"\n      Status:\n        type: \"object\"\n        description: |\n          Low-level details about the volume, provided by the volume driver.\n          Details are returned as a map with key/value pairs:\n          `{\"key\":\"value\",\"key2\":\"value2\"}`.\n\n          The `Status` field is optional, and is omitted if the volume driver\n          does not support this feature.\n        additionalProperties:\n          type: \"object\"\n        example:\n          hello: \"world\"\n      Labels:\n        type: \"object\"\n        description: \"User-defined key/value metadata.\"\n        x-nullable: false\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.example.some-label: \"some-value\"\n          com.example.some-other-label: \"some-other-value\"\n      Scope:\n        type: \"string\"\n        description: |\n          The level at which the volume exists. Either `global` for cluster-wide,\n          or `local` for machine level.\n        default: \"local\"\n        x-nullable: false\n        enum: [\"local\", \"global\"]\n        example: \"local\"\n      ClusterVolume:\n        $ref: \"#/definitions/ClusterVolume\"\n      Options:\n        type: \"object\"\n        description: |\n          The driver specific options used when creating the volume.\n        additionalProperties:\n          type: \"string\"\n        example:\n          device: \"tmpfs\"\n          o: \"size=100m,uid=1000\"\n          type: \"tmpfs\"\n      UsageData:\n        type: \"object\"\n        x-nullable: true\n        x-go-name: \"UsageData\"\n        required: [Size, RefCount]\n        description: |\n          Usage details about the volume. This information is used by the\n          `GET /system/df` endpoint, and omitted in other endpoints.\n        properties:\n          Size:\n            type: \"integer\"\n            format: \"int64\"\n            default: -1\n            description: |\n              Amount of disk space used by the volume (in bytes). This information\n              is only available for volumes created with the `\"local\"` volume\n              driver. For volumes created with other volume drivers, this field\n              is set to `-1` (\"not available\")\n            x-nullable: false\n          RefCount:\n            type: \"integer\"\n            format: \"int64\"\n            default: -1\n            description: |\n              The number of containers referencing this volume. This field\n              is set to `-1` if the reference-count is not available.\n            x-nullable: false\n\n  VolumeCreateOptions:\n    description: \"Volume configuration\"\n    type: \"object\"\n    title: \"VolumeConfig\"\n    x-go-name: \"CreateOptions\"\n    properties:\n      Name:\n        description: |\n          The new volume's name. If not specified, Docker generates a name.\n        type: \"string\"\n        x-nullable: false\n        example: \"tardis\"\n      Driver:\n        description: \"Name of the volume driver to use.\"\n        type: \"string\"\n        default: \"local\"\n        x-nullable: false\n        example: \"custom\"\n      DriverOpts:\n        description: |\n          A mapping of driver options and values. These options are\n          passed directly to the driver and are driver specific.\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          device: \"tmpfs\"\n          o: \"size=100m,uid=1000\"\n          type: \"tmpfs\"\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.example.some-label: \"some-value\"\n          com.example.some-other-label: \"some-other-value\"\n      ClusterVolumeSpec:\n        $ref: \"#/definitions/ClusterVolumeSpec\"\n\n  VolumeListResponse:\n    type: \"object\"\n    title: \"VolumeListResponse\"\n    x-go-name: \"ListResponse\"\n    description: \"Volume list response\"\n    properties:\n      Volumes:\n        type: \"array\"\n        description: \"List of volumes\"\n        items:\n          $ref: \"#/definitions/Volume\"\n      Warnings:\n        type: \"array\"\n        description: |\n          Warnings that occurred when fetching the list of volumes.\n        items:\n          type: \"string\"\n        example: []\n\n  Network:\n    type: \"object\"\n    properties:\n      Name:\n        description: |\n          Name of the network.\n        type: \"string\"\n        example: \"my_network\"\n      Id:\n        description: |\n          ID that uniquely identifies a network on a single machine.\n        type: \"string\"\n        example: \"7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99\"\n      Created:\n        description: |\n          Date and time at which the network was created in\n          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n        type: \"string\"\n        format: \"dateTime\"\n        example: \"2016-10-19T04:33:30.360899459Z\"\n      Scope:\n        description: |\n          The level at which the network exists (e.g. `swarm` for cluster-wide\n          or `local` for machine level)\n        type: \"string\"\n        example: \"local\"\n      Driver:\n        description: |\n          The name of the driver used to create the network (e.g. `bridge`,\n          `overlay`).\n        type: \"string\"\n        example: \"overlay\"\n      EnableIPv4:\n        description: |\n          Whether the network was created with IPv4 enabled.\n        type: \"boolean\"\n        example: true\n      EnableIPv6:\n        description: |\n          Whether the network was created with IPv6 enabled.\n        type: \"boolean\"\n        example: false\n      IPAM:\n        $ref: \"#/definitions/IPAM\"\n      Internal:\n        description: |\n          Whether the network is created to only allow internal networking\n          connectivity.\n        type: \"boolean\"\n        default: false\n        example: false\n      Attachable:\n        description: |\n          Whether a global / swarm scope network is manually attachable by regular\n          containers from workers in swarm mode.\n        type: \"boolean\"\n        default: false\n        example: false\n      Ingress:\n        description: |\n          Whether the network is providing the routing-mesh for the swarm cluster.\n        type: \"boolean\"\n        default: false\n        example: false\n      ConfigFrom:\n        $ref: \"#/definitions/ConfigReference\"\n      ConfigOnly:\n        description: |\n          Whether the network is a config-only network. Config-only networks are\n          placeholder networks for network configurations to be used by other\n          networks. Config-only networks cannot be used directly to run containers\n          or services.\n        type: \"boolean\"\n        default: false\n      Containers:\n        description: |\n          Contains endpoints attached to the network.\n        type: \"object\"\n        additionalProperties:\n          $ref: \"#/definitions/NetworkContainer\"\n        example:\n          19a4d5d687db25203351ed79d478946f861258f018fe384f229f2efa4b23513c:\n            Name: \"test\"\n            EndpointID: \"628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a\"\n            MacAddress: \"02:42:ac:13:00:02\"\n            IPv4Address: \"172.19.0.2/16\"\n            IPv6Address: \"\"\n      Options:\n        description: |\n          Network-specific options uses when creating the network.\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.docker.network.bridge.default_bridge: \"true\"\n          com.docker.network.bridge.enable_icc: \"true\"\n          com.docker.network.bridge.enable_ip_masquerade: \"true\"\n          com.docker.network.bridge.host_binding_ipv4: \"0.0.0.0\"\n          com.docker.network.bridge.name: \"docker0\"\n          com.docker.network.driver.mtu: \"1500\"\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.example.some-label: \"some-value\"\n          com.example.some-other-label: \"some-other-value\"\n      Peers:\n        description: |\n          List of peer nodes for an overlay network. This field is only present\n          for overlay networks, and omitted for other network types.\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/PeerInfo\"\n        x-nullable: true\n      # TODO: Add Services (only present when \"verbose\" is set).\n\n  ConfigReference:\n    description: |\n      The config-only network source to provide the configuration for\n      this network.\n    type: \"object\"\n    properties:\n      Network:\n        description: |\n          The name of the config-only network that provides the network's\n          configuration. The specified network must be an existing config-only\n          network. Only network names are allowed, not network IDs.\n        type: \"string\"\n        example: \"config_only_network_01\"\n\n  IPAM:\n    type: \"object\"\n    properties:\n      Driver:\n        description: \"Name of the IPAM driver to use.\"\n        type: \"string\"\n        default: \"default\"\n        example: \"default\"\n      Config:\n        description: |\n          List of IPAM configuration options, specified as a map:\n\n          ```\n          {\"Subnet\": <CIDR>, \"IPRange\": <CIDR>, \"Gateway\": <IP address>, \"AuxAddress\": <device_name:IP address>}\n          ```\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/IPAMConfig\"\n      Options:\n        description: \"Driver-specific options, specified as a map.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          foo: \"bar\"\n\n  IPAMConfig:\n    type: \"object\"\n    properties:\n      Subnet:\n        type: \"string\"\n        example: \"172.20.0.0/16\"\n      IPRange:\n        type: \"string\"\n        example: \"172.20.10.0/24\"\n      Gateway:\n        type: \"string\"\n        example: \"172.20.10.11\"\n      AuxiliaryAddresses:\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n\n  NetworkContainer:\n    type: \"object\"\n    properties:\n      Name:\n        type: \"string\"\n        example: \"container_1\"\n      EndpointID:\n        type: \"string\"\n        example: \"628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a\"\n      MacAddress:\n        type: \"string\"\n        example: \"02:42:ac:13:00:02\"\n      IPv4Address:\n        type: \"string\"\n        example: \"172.19.0.2/16\"\n      IPv6Address:\n        type: \"string\"\n        example: \"\"\n\n  PeerInfo:\n    description: |\n      PeerInfo represents one peer of an overlay network.\n    type: \"object\"\n    properties:\n      Name:\n        description:\n          ID of the peer-node in the Swarm cluster.\n        type: \"string\"\n        example: \"6869d7c1732b\"\n      IP:\n        description:\n          IP-address of the peer-node in the Swarm cluster.\n        type: \"string\"\n        example: \"10.133.77.91\"\n\n  NetworkCreateResponse:\n    description: \"OK response to NetworkCreate operation\"\n    type: \"object\"\n    title: \"NetworkCreateResponse\"\n    x-go-name: \"CreateResponse\"\n    required: [Id, Warning]\n    properties:\n      Id:\n        description: \"The ID of the created network.\"\n        type: \"string\"\n        x-nullable: false\n        example: \"b5c4fc71e8022147cd25de22b22173de4e3b170134117172eb595cb91b4e7e5d\"\n      Warning:\n        description: \"Warnings encountered when creating the container\"\n        type: \"string\"\n        x-nullable: false\n        example: \"\"\n\n  BuildInfo:\n    type: \"object\"\n    properties:\n      id:\n        type: \"string\"\n      stream:\n        type: \"string\"\n      error:\n        type: \"string\"\n        x-nullable: true\n        description: |-\n          errors encountered during the operation.\n\n\n          > **Deprecated**: This field is deprecated since API v1.4, and will be omitted in a future API version. Use the information in errorDetail instead.\n      errorDetail:\n        $ref: \"#/definitions/ErrorDetail\"\n      status:\n        type: \"string\"\n      progress:\n        type: \"string\"\n        x-nullable: true\n        description: |-\n          Progress is a pre-formatted presentation of progressDetail.\n\n\n          > **Deprecated**: This field is deprecated since API v1.8, and will be omitted in a future API version. Use the information in progressDetail instead.\n      progressDetail:\n        $ref: \"#/definitions/ProgressDetail\"\n      aux:\n        $ref: \"#/definitions/ImageID\"\n\n  BuildCache:\n    type: \"object\"\n    description: |\n      BuildCache contains information about a build cache record.\n    properties:\n      ID:\n        type: \"string\"\n        description: |\n          Unique ID of the build cache record.\n        example: \"ndlpt0hhvkqcdfkputsk4cq9c\"\n      Parents:\n        description: |\n          List of parent build cache record IDs.\n        type: \"array\"\n        items:\n          type: \"string\"\n        x-nullable: true\n        example: [\"hw53o5aio51xtltp5xjp8v7fx\"]\n      Type:\n        type: \"string\"\n        description: |\n          Cache record type.\n        example: \"regular\"\n        # see https://github.com/moby/buildkit/blob/fce4a32258dc9d9664f71a4831d5de10f0670677/client/diskusage.go#L75-L84\n        enum:\n          - \"internal\"\n          - \"frontend\"\n          - \"source.local\"\n          - \"source.git.checkout\"\n          - \"exec.cachemount\"\n          - \"regular\"\n      Description:\n        type: \"string\"\n        description: |\n          Description of the build-step that produced the build cache.\n        example: \"mount / from exec /bin/sh -c echo 'Binary::apt::APT::Keep-Downloaded-Packages \\\"true\\\";' > /etc/apt/apt.conf.d/keep-cache\"\n      InUse:\n        type: \"boolean\"\n        description: |\n          Indicates if the build cache is in use.\n        example: false\n      Shared:\n        type: \"boolean\"\n        description: |\n          Indicates if the build cache is shared.\n        example: true\n      Size:\n        description: |\n          Amount of disk space used by the build cache (in bytes).\n        type: \"integer\"\n        example: 51\n      CreatedAt:\n        description: |\n          Date and time at which the build cache was created in\n          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n        type: \"string\"\n        format: \"dateTime\"\n        example: \"2016-08-18T10:44:24.496525531Z\"\n      LastUsedAt:\n        description: |\n          Date and time at which the build cache was last used in\n          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n        type: \"string\"\n        format: \"dateTime\"\n        x-nullable: true\n        example: \"2017-08-09T07:09:37.632105588Z\"\n      UsageCount:\n        type: \"integer\"\n        example: 26\n\n  ImageID:\n    type: \"object\"\n    description: \"Image ID or Digest\"\n    properties:\n      ID:\n        type: \"string\"\n    example:\n      ID: \"sha256:85f05633ddc1c50679be2b16a0479ab6f7637f8884e0cfe0f4d20e1ebb3d6e7c\"\n\n  CreateImageInfo:\n    type: \"object\"\n    properties:\n      id:\n        type: \"string\"\n      error:\n        type: \"string\"\n        x-nullable: true\n        description: |-\n          errors encountered during the operation.\n\n\n          > **Deprecated**: This field is deprecated since API v1.4, and will be omitted in a future API version. Use the information in errorDetail instead.\n      errorDetail:\n        $ref: \"#/definitions/ErrorDetail\"\n      status:\n        type: \"string\"\n      progress:\n        type: \"string\"\n        x-nullable: true\n        description: |-\n          Progress is a pre-formatted presentation of progressDetail.\n\n\n          > **Deprecated**: This field is deprecated since API v1.8, and will be omitted in a future API version. Use the information in progressDetail instead.\n      progressDetail:\n        $ref: \"#/definitions/ProgressDetail\"\n\n  PushImageInfo:\n    type: \"object\"\n    properties:\n      error:\n        type: \"string\"\n        x-nullable: true\n        description: |-\n          errors encountered during the operation.\n\n\n          > **Deprecated**: This field is deprecated since API v1.4, and will be omitted in a future API version. Use the information in errorDetail instead.\n      errorDetail:\n        $ref: \"#/definitions/ErrorDetail\"\n      status:\n        type: \"string\"\n      progress:\n        type: \"string\"\n        x-nullable: true\n        description: |-\n          Progress is a pre-formatted presentation of progressDetail.\n\n\n          > **Deprecated**: This field is deprecated since API v1.8, and will be omitted in a future API version. Use the information in progressDetail instead.\n      progressDetail:\n        $ref: \"#/definitions/ProgressDetail\"\n\n  DeviceInfo:\n    type: \"object\"\n    description: |\n      DeviceInfo represents a device that can be used by a container.\n    properties:\n      Source:\n        type: \"string\"\n        example: \"cdi\"\n        description: |\n          The origin device driver.\n      ID:\n        type: \"string\"\n        example: \"vendor.com/gpu=0\"\n        description: |\n          The unique identifier for the device within its source driver.\n          For CDI devices, this would be an FQDN like \"vendor.com/gpu=0\".\n\n  ErrorDetail:\n    type: \"object\"\n    properties:\n      code:\n        type: \"integer\"\n      message:\n        type: \"string\"\n\n  ProgressDetail:\n    type: \"object\"\n    properties:\n      current:\n        type: \"integer\"\n      total:\n        type: \"integer\"\n\n  ErrorResponse:\n    description: \"Represents an error.\"\n    type: \"object\"\n    required: [\"message\"]\n    properties:\n      message:\n        description: \"The error message.\"\n        type: \"string\"\n        x-nullable: false\n    example:\n      message: \"Something went wrong.\"\n\n  IDResponse:\n    description: \"Response to an API call that returns just an Id\"\n    type: \"object\"\n    x-go-name: \"IDResponse\"\n    required: [\"Id\"]\n    properties:\n      Id:\n        description: \"The id of the newly created object.\"\n        type: \"string\"\n        x-nullable: false\n\n  EndpointSettings:\n    description: \"Configuration for a network endpoint.\"\n    type: \"object\"\n    properties:\n      # Configurations\n      IPAMConfig:\n        $ref: \"#/definitions/EndpointIPAMConfig\"\n      Links:\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"container_1\"\n          - \"container_2\"\n      MacAddress:\n        description: |\n          MAC address for the endpoint on this network. The network driver might ignore this parameter.\n        type: \"string\"\n        example: \"02:42:ac:11:00:04\"\n      Aliases:\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"server_x\"\n          - \"server_y\"\n      DriverOpts:\n        description: |\n          DriverOpts is a mapping of driver options and values. These options\n          are passed directly to the driver and are driver specific.\n        type: \"object\"\n        x-nullable: true\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.example.some-label: \"some-value\"\n          com.example.some-other-label: \"some-other-value\"\n      GwPriority:\n        description: |\n          This property determines which endpoint will provide the default\n          gateway for a container. The endpoint with the highest priority will\n          be used. If multiple endpoints have the same priority, endpoints are\n          lexicographically sorted based on their network name, and the one\n          that sorts first is picked.\n        type: \"integer\"\n        format: \"int64\"\n        example:\n          - 10\n\n      # Operational data\n      NetworkID:\n        description: |\n          Unique ID of the network.\n        type: \"string\"\n        example: \"08754567f1f40222263eab4102e1c733ae697e8e354aa9cd6e18d7402835292a\"\n      EndpointID:\n        description: |\n          Unique ID for the service endpoint in a Sandbox.\n        type: \"string\"\n        example: \"b88f5b905aabf2893f3cbc4ee42d1ea7980bbc0a92e2c8922b1e1795298afb0b\"\n      Gateway:\n        description: |\n          Gateway address for this network.\n        type: \"string\"\n        example: \"172.17.0.1\"\n      IPAddress:\n        description: |\n          IPv4 address.\n        type: \"string\"\n        example: \"172.17.0.4\"\n      IPPrefixLen:\n        description: |\n          Mask length of the IPv4 address.\n        type: \"integer\"\n        example: 16\n      IPv6Gateway:\n        description: |\n          IPv6 gateway address.\n        type: \"string\"\n        example: \"2001:db8:2::100\"\n      GlobalIPv6Address:\n        description: |\n          Global IPv6 address.\n        type: \"string\"\n        example: \"2001:db8::5689\"\n      GlobalIPv6PrefixLen:\n        description: |\n          Mask length of the global IPv6 address.\n        type: \"integer\"\n        format: \"int64\"\n        example: 64\n      DNSNames:\n        description: |\n          List of all DNS names an endpoint has on a specific network. This\n          list is based on the container name, network aliases, container short\n          ID, and hostname.\n\n          These DNS names are non-fully qualified but can contain several dots.\n          You can get fully qualified DNS names by appending `.<network-name>`.\n          For instance, if container name is `my.ctr` and the network is named\n          `testnet`, `DNSNames` will contain `my.ctr` and the FQDN will be\n          `my.ctr.testnet`.\n        type: array\n        items:\n          type: string\n        example: [\"foobar\", \"server_x\", \"server_y\", \"my.ctr\"]\n\n  EndpointIPAMConfig:\n    description: |\n      EndpointIPAMConfig represents an endpoint's IPAM configuration.\n    type: \"object\"\n    x-nullable: true\n    properties:\n      IPv4Address:\n        type: \"string\"\n        example: \"172.20.30.33\"\n      IPv6Address:\n        type: \"string\"\n        example: \"2001:db8:abcd::3033\"\n      LinkLocalIPs:\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"169.254.34.68\"\n          - \"fe80::3468\"\n\n  PluginMount:\n    type: \"object\"\n    x-nullable: false\n    required: [Name, Description, Settable, Source, Destination, Type, Options]\n    properties:\n      Name:\n        type: \"string\"\n        x-nullable: false\n        example: \"some-mount\"\n      Description:\n        type: \"string\"\n        x-nullable: false\n        example: \"This is a mount that's used by the plugin.\"\n      Settable:\n        type: \"array\"\n        items:\n          type: \"string\"\n      Source:\n        type: \"string\"\n        example: \"/var/lib/docker/plugins/\"\n      Destination:\n        type: \"string\"\n        x-nullable: false\n        example: \"/mnt/state\"\n      Type:\n        type: \"string\"\n        x-nullable: false\n        example: \"bind\"\n      Options:\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"rbind\"\n          - \"rw\"\n\n  PluginDevice:\n    type: \"object\"\n    required: [Name, Description, Settable, Path]\n    x-nullable: false\n    properties:\n      Name:\n        type: \"string\"\n        x-nullable: false\n      Description:\n        type: \"string\"\n        x-nullable: false\n      Settable:\n        type: \"array\"\n        items:\n          type: \"string\"\n      Path:\n        type: \"string\"\n        example: \"/dev/fuse\"\n\n  PluginEnv:\n    type: \"object\"\n    x-nullable: false\n    required: [Name, Description, Settable, Value]\n    properties:\n      Name:\n        x-nullable: false\n        type: \"string\"\n      Description:\n        x-nullable: false\n        type: \"string\"\n      Settable:\n        type: \"array\"\n        items:\n          type: \"string\"\n      Value:\n        type: \"string\"\n\n  PluginInterfaceType:\n    type: \"object\"\n    x-nullable: false\n    required: [Prefix, Capability, Version]\n    properties:\n      Prefix:\n        type: \"string\"\n        x-nullable: false\n      Capability:\n        type: \"string\"\n        x-nullable: false\n      Version:\n        type: \"string\"\n        x-nullable: false\n\n  PluginPrivilege:\n    description: |\n      Describes a permission the user has to accept upon installing\n      the plugin.\n    type: \"object\"\n    x-go-name: \"PluginPrivilege\"\n    properties:\n      Name:\n        type: \"string\"\n        example: \"network\"\n      Description:\n        type: \"string\"\n      Value:\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"host\"\n\n  Plugin:\n    description: \"A plugin for the Engine API\"\n    type: \"object\"\n    required: [Settings, Enabled, Config, Name]\n    properties:\n      Id:\n        type: \"string\"\n        example: \"5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078\"\n      Name:\n        type: \"string\"\n        x-nullable: false\n        example: \"tiborvass/sample-volume-plugin\"\n      Enabled:\n        description:\n          True if the plugin is running. False if the plugin is not running,\n          only installed.\n        type: \"boolean\"\n        x-nullable: false\n        example: true\n      Settings:\n        description: \"Settings that can be modified by users.\"\n        type: \"object\"\n        x-nullable: false\n        required: [Args, Devices, Env, Mounts]\n        properties:\n          Mounts:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/PluginMount\"\n          Env:\n            type: \"array\"\n            items:\n              type: \"string\"\n            example:\n              - \"DEBUG=0\"\n          Args:\n            type: \"array\"\n            items:\n              type: \"string\"\n          Devices:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/PluginDevice\"\n      PluginReference:\n        description: \"plugin remote reference used to push/pull the plugin\"\n        type: \"string\"\n        x-nullable: false\n        example: \"localhost:5000/tiborvass/sample-volume-plugin:latest\"\n      Config:\n        description: \"The config of a plugin.\"\n        type: \"object\"\n        x-nullable: false\n        required:\n          - Description\n          - Documentation\n          - Interface\n          - Entrypoint\n          - WorkDir\n          - Network\n          - Linux\n          - PidHost\n          - PropagatedMount\n          - IpcHost\n          - Mounts\n          - Env\n          - Args\n        properties:\n          DockerVersion:\n            description: |-\n              Docker Version used to create the plugin.\n\n              Depending on how the plugin was created, this field may be empty or omitted.\n\n              Deprecated: this field is no longer set, and will be removed in the next API version.\n            type: \"string\"\n            x-nullable: false\n            x-omitempty: true\n          Description:\n            type: \"string\"\n            x-nullable: false\n            example: \"A sample volume plugin for Docker\"\n          Documentation:\n            type: \"string\"\n            x-nullable: false\n            example: \"https://docs.docker.com/engine/extend/plugins/\"\n          Interface:\n            description: \"The interface between Docker and the plugin\"\n            x-nullable: false\n            type: \"object\"\n            required: [Types, Socket]\n            properties:\n              Types:\n                type: \"array\"\n                items:\n                  $ref: \"#/definitions/PluginInterfaceType\"\n                example:\n                  - \"docker.volumedriver/1.0\"\n              Socket:\n                type: \"string\"\n                x-nullable: false\n                example: \"plugins.sock\"\n              ProtocolScheme:\n                type: \"string\"\n                example: \"some.protocol/v1.0\"\n                description: \"Protocol to use for clients connecting to the plugin.\"\n                enum:\n                  - \"\"\n                  - \"moby.plugins.http/v1\"\n          Entrypoint:\n            type: \"array\"\n            items:\n              type: \"string\"\n            example:\n              - \"/usr/bin/sample-volume-plugin\"\n              - \"/data\"\n          WorkDir:\n            type: \"string\"\n            x-nullable: false\n            example: \"/bin/\"\n          User:\n            type: \"object\"\n            x-nullable: false\n            properties:\n              UID:\n                type: \"integer\"\n                format: \"uint32\"\n                example: 1000\n              GID:\n                type: \"integer\"\n                format: \"uint32\"\n                example: 1000\n          Network:\n            type: \"object\"\n            x-nullable: false\n            required: [Type]\n            properties:\n              Type:\n                x-nullable: false\n                type: \"string\"\n                example: \"host\"\n          Linux:\n            type: \"object\"\n            x-nullable: false\n            required: [Capabilities, AllowAllDevices, Devices]\n            properties:\n              Capabilities:\n                type: \"array\"\n                items:\n                  type: \"string\"\n                example:\n                  - \"CAP_SYS_ADMIN\"\n                  - \"CAP_SYSLOG\"\n              AllowAllDevices:\n                type: \"boolean\"\n                x-nullable: false\n                example: false\n              Devices:\n                type: \"array\"\n                items:\n                  $ref: \"#/definitions/PluginDevice\"\n          PropagatedMount:\n            type: \"string\"\n            x-nullable: false\n            example: \"/mnt/volumes\"\n          IpcHost:\n            type: \"boolean\"\n            x-nullable: false\n            example: false\n          PidHost:\n            type: \"boolean\"\n            x-nullable: false\n            example: false\n          Mounts:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/PluginMount\"\n          Env:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/PluginEnv\"\n            example:\n              - Name: \"DEBUG\"\n                Description: \"If set, prints debug messages\"\n                Settable: null\n                Value: \"0\"\n          Args:\n            type: \"object\"\n            x-nullable: false\n            required: [Name, Description, Settable, Value]\n            properties:\n              Name:\n                x-nullable: false\n                type: \"string\"\n                example: \"args\"\n              Description:\n                x-nullable: false\n                type: \"string\"\n                example: \"command line arguments\"\n              Settable:\n                type: \"array\"\n                items:\n                  type: \"string\"\n              Value:\n                type: \"array\"\n                items:\n                  type: \"string\"\n          rootfs:\n            type: \"object\"\n            properties:\n              type:\n                type: \"string\"\n                example: \"layers\"\n              diff_ids:\n                type: \"array\"\n                items:\n                  type: \"string\"\n                example:\n                  - \"sha256:675532206fbf3030b8458f88d6e26d4eb1577688a25efec97154c94e8b6b4887\"\n                  - \"sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8\"\n\n  ObjectVersion:\n    description: |\n      The version number of the object such as node, service, etc. This is needed\n      to avoid conflicting writes. The client must send the version number along\n      with the modified specification when updating these objects.\n\n      This approach ensures safe concurrency and determinism in that the change\n      on the object may not be applied if the version number has changed from the\n      last read. In other words, if two update requests specify the same base\n      version, only one of the requests can succeed. As a result, two separate\n      update requests that happen at the same time will not unintentionally\n      overwrite each other.\n    type: \"object\"\n    properties:\n      Index:\n        type: \"integer\"\n        format: \"uint64\"\n        example: 373531\n\n  NodeSpec:\n    type: \"object\"\n    properties:\n      Name:\n        description: \"Name for the node.\"\n        type: \"string\"\n        example: \"my-node\"\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n      Role:\n        description: \"Role of the node.\"\n        type: \"string\"\n        enum:\n          - \"worker\"\n          - \"manager\"\n        example: \"manager\"\n      Availability:\n        description: \"Availability of the node.\"\n        type: \"string\"\n        enum:\n          - \"active\"\n          - \"pause\"\n          - \"drain\"\n        example: \"active\"\n    example:\n      Availability: \"active\"\n      Name: \"node-name\"\n      Role: \"manager\"\n      Labels:\n        foo: \"bar\"\n\n  Node:\n    type: \"object\"\n    properties:\n      ID:\n        type: \"string\"\n        example: \"24ifsmvkjbyhk\"\n      Version:\n        $ref: \"#/definitions/ObjectVersion\"\n      CreatedAt:\n        description: |\n          Date and time at which the node was added to the swarm in\n          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n        type: \"string\"\n        format: \"dateTime\"\n        example: \"2016-08-18T10:44:24.496525531Z\"\n      UpdatedAt:\n        description: |\n          Date and time at which the node was last updated in\n          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n        type: \"string\"\n        format: \"dateTime\"\n        example: \"2017-08-09T07:09:37.632105588Z\"\n      Spec:\n        $ref: \"#/definitions/NodeSpec\"\n      Description:\n        $ref: \"#/definitions/NodeDescription\"\n      Status:\n        $ref: \"#/definitions/NodeStatus\"\n      ManagerStatus:\n        $ref: \"#/definitions/ManagerStatus\"\n\n  NodeDescription:\n    description: |\n      NodeDescription encapsulates the properties of the Node as reported by the\n      agent.\n    type: \"object\"\n    properties:\n      Hostname:\n        type: \"string\"\n        example: \"bf3067039e47\"\n      Platform:\n        $ref: \"#/definitions/Platform\"\n      Resources:\n        $ref: \"#/definitions/ResourceObject\"\n      Engine:\n        $ref: \"#/definitions/EngineDescription\"\n      TLSInfo:\n        $ref: \"#/definitions/TLSInfo\"\n\n  Platform:\n    description: |\n      Platform represents the platform (Arch/OS).\n    type: \"object\"\n    properties:\n      Architecture:\n        description: |\n          Architecture represents the hardware architecture (for example,\n          `x86_64`).\n        type: \"string\"\n        example: \"x86_64\"\n      OS:\n        description: |\n          OS represents the Operating System (for example, `linux` or `windows`).\n        type: \"string\"\n        example: \"linux\"\n\n  EngineDescription:\n    description: \"EngineDescription provides information about an engine.\"\n    type: \"object\"\n    properties:\n      EngineVersion:\n        type: \"string\"\n        example: \"17.06.0\"\n      Labels:\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          foo: \"bar\"\n      Plugins:\n        type: \"array\"\n        items:\n          type: \"object\"\n          properties:\n            Type:\n              type: \"string\"\n            Name:\n              type: \"string\"\n        example:\n          - Type: \"Log\"\n            Name: \"awslogs\"\n          - Type: \"Log\"\n            Name: \"fluentd\"\n          - Type: \"Log\"\n            Name: \"gcplogs\"\n          - Type: \"Log\"\n            Name: \"gelf\"\n          - Type: \"Log\"\n            Name: \"journald\"\n          - Type: \"Log\"\n            Name: \"json-file\"\n          - Type: \"Log\"\n            Name: \"splunk\"\n          - Type: \"Log\"\n            Name: \"syslog\"\n          - Type: \"Network\"\n            Name: \"bridge\"\n          - Type: \"Network\"\n            Name: \"host\"\n          - Type: \"Network\"\n            Name: \"ipvlan\"\n          - Type: \"Network\"\n            Name: \"macvlan\"\n          - Type: \"Network\"\n            Name: \"null\"\n          - Type: \"Network\"\n            Name: \"overlay\"\n          - Type: \"Volume\"\n            Name: \"local\"\n          - Type: \"Volume\"\n            Name: \"localhost:5000/vieux/sshfs:latest\"\n          - Type: \"Volume\"\n            Name: \"vieux/sshfs:latest\"\n\n  TLSInfo:\n    description: |\n      Information about the issuer of leaf TLS certificates and the trusted root\n      CA certificate.\n    type: \"object\"\n    properties:\n      TrustRoot:\n        description: |\n          The root CA certificate(s) that are used to validate leaf TLS\n          certificates.\n        type: \"string\"\n      CertIssuerSubject:\n        description:\n          The base64-url-safe-encoded raw subject bytes of the issuer.\n        type: \"string\"\n      CertIssuerPublicKey:\n        description: |\n          The base64-url-safe-encoded raw public key bytes of the issuer.\n        type: \"string\"\n    example:\n      TrustRoot: |\n        -----BEGIN CERTIFICATE-----\n        MIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw\n        EzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0\n        MzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH\n        A0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf\n        3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\n        Af8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO\n        PQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz\n        pxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H\n        -----END CERTIFICATE-----\n      CertIssuerSubject: \"MBMxETAPBgNVBAMTCHN3YXJtLWNh\"\n      CertIssuerPublicKey: \"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==\"\n\n  NodeStatus:\n    description: |\n      NodeStatus represents the status of a node.\n\n      It provides the current status of the node, as seen by the manager.\n    type: \"object\"\n    properties:\n      State:\n        $ref: \"#/definitions/NodeState\"\n      Message:\n        type: \"string\"\n        example: \"\"\n      Addr:\n        description: \"IP address of the node.\"\n        type: \"string\"\n        example: \"172.17.0.2\"\n\n  NodeState:\n    description: \"NodeState represents the state of a node.\"\n    type: \"string\"\n    enum:\n      - \"unknown\"\n      - \"down\"\n      - \"ready\"\n      - \"disconnected\"\n    example: \"ready\"\n\n  ManagerStatus:\n    description: |\n      ManagerStatus represents the status of a manager.\n\n      It provides the current status of a node's manager component, if the node\n      is a manager.\n    x-nullable: true\n    type: \"object\"\n    properties:\n      Leader:\n        type: \"boolean\"\n        default: false\n        example: true\n      Reachability:\n        $ref: \"#/definitions/Reachability\"\n      Addr:\n        description: |\n          The IP address and port at which the manager is reachable.\n        type: \"string\"\n        example: \"10.0.0.46:2377\"\n\n  Reachability:\n    description: \"Reachability represents the reachability of a node.\"\n    type: \"string\"\n    enum:\n      - \"unknown\"\n      - \"unreachable\"\n      - \"reachable\"\n    example: \"reachable\"\n\n  SwarmSpec:\n    description: \"User modifiable swarm configuration.\"\n    type: \"object\"\n    properties:\n      Name:\n        description: \"Name of the swarm.\"\n        type: \"string\"\n        example: \"default\"\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.example.corp.type: \"production\"\n          com.example.corp.department: \"engineering\"\n      Orchestration:\n        description: \"Orchestration configuration.\"\n        type: \"object\"\n        x-nullable: true\n        properties:\n          TaskHistoryRetentionLimit:\n            description: |\n              The number of historic tasks to keep per instance or node. If\n              negative, never remove completed or failed tasks.\n            type: \"integer\"\n            format: \"int64\"\n            example: 10\n      Raft:\n        description: \"Raft configuration.\"\n        type: \"object\"\n        properties:\n          SnapshotInterval:\n            description: \"The number of log entries between snapshots.\"\n            type: \"integer\"\n            format: \"uint64\"\n            example: 10000\n          KeepOldSnapshots:\n            description: |\n              The number of snapshots to keep beyond the current snapshot.\n            type: \"integer\"\n            format: \"uint64\"\n          LogEntriesForSlowFollowers:\n            description: |\n              The number of log entries to keep around to sync up slow followers\n              after a snapshot is created.\n            type: \"integer\"\n            format: \"uint64\"\n            example: 500\n          ElectionTick:\n            description: |\n              The number of ticks that a follower will wait for a message from\n              the leader before becoming a candidate and starting an election.\n              `ElectionTick` must be greater than `HeartbeatTick`.\n\n              A tick currently defaults to one second, so these translate\n              directly to seconds currently, but this is NOT guaranteed.\n            type: \"integer\"\n            example: 3\n          HeartbeatTick:\n            description: |\n              The number of ticks between heartbeats. Every HeartbeatTick ticks,\n              the leader will send a heartbeat to the followers.\n\n              A tick currently defaults to one second, so these translate\n              directly to seconds currently, but this is NOT guaranteed.\n            type: \"integer\"\n            example: 1\n      Dispatcher:\n        description: \"Dispatcher configuration.\"\n        type: \"object\"\n        x-nullable: true\n        properties:\n          HeartbeatPeriod:\n            description: |\n              The delay for an agent to send a heartbeat to the dispatcher.\n            type: \"integer\"\n            format: \"int64\"\n            example: 5000000000\n      CAConfig:\n        description: \"CA configuration.\"\n        type: \"object\"\n        x-nullable: true\n        properties:\n          NodeCertExpiry:\n            description: \"The duration node certificates are issued for.\"\n            type: \"integer\"\n            format: \"int64\"\n            example: 7776000000000000\n          ExternalCAs:\n            description: |\n              Configuration for forwarding signing requests to an external\n              certificate authority.\n            type: \"array\"\n            items:\n              type: \"object\"\n              properties:\n                Protocol:\n                  description: |\n                    Protocol for communication with the external CA (currently\n                    only `cfssl` is supported).\n                  type: \"string\"\n                  enum:\n                    - \"cfssl\"\n                  default: \"cfssl\"\n                URL:\n                  description: |\n                    URL where certificate signing requests should be sent.\n                  type: \"string\"\n                Options:\n                  description: |\n                    An object with key/value pairs that are interpreted as\n                    protocol-specific options for the external CA driver.\n                  type: \"object\"\n                  additionalProperties:\n                    type: \"string\"\n                CACert:\n                  description: |\n                    The root CA certificate (in PEM format) this external CA uses\n                    to issue TLS certificates (assumed to be to the current swarm\n                    root CA certificate if not provided).\n                  type: \"string\"\n          SigningCACert:\n            description: |\n              The desired signing CA certificate for all swarm node TLS leaf\n              certificates, in PEM format.\n            type: \"string\"\n          SigningCAKey:\n            description: |\n              The desired signing CA key for all swarm node TLS leaf certificates,\n              in PEM format.\n            type: \"string\"\n          ForceRotate:\n            description: |\n              An integer whose purpose is to force swarm to generate a new\n              signing CA certificate and key, if none have been specified in\n              `SigningCACert` and `SigningCAKey`\n            format: \"uint64\"\n            type: \"integer\"\n      EncryptionConfig:\n        description: \"Parameters related to encryption-at-rest.\"\n        type: \"object\"\n        properties:\n          AutoLockManagers:\n            description: |\n              If set, generate a key and use it to lock data stored on the\n              managers.\n            type: \"boolean\"\n            example: false\n      TaskDefaults:\n        description: \"Defaults for creating tasks in this cluster.\"\n        type: \"object\"\n        properties:\n          LogDriver:\n            description: |\n              The log driver to use for tasks created in the orchestrator if\n              unspecified by a service.\n\n              Updating this value only affects new tasks. Existing tasks continue\n              to use their previously configured log driver until recreated.\n            type: \"object\"\n            properties:\n              Name:\n                description: |\n                  The log driver to use as a default for new tasks.\n                type: \"string\"\n                example: \"json-file\"\n              Options:\n                description: |\n                  Driver-specific options for the selected log driver, specified\n                  as key/value pairs.\n                type: \"object\"\n                additionalProperties:\n                  type: \"string\"\n                example:\n                  \"max-file\": \"10\"\n                  \"max-size\": \"100m\"\n\n  # The Swarm information for `GET /info`. It is the same as `GET /swarm`, but\n  # without `JoinTokens`.\n  ClusterInfo:\n    description: |\n      ClusterInfo represents information about the swarm as is returned by the\n      \"/info\" endpoint. Join-tokens are not included.\n    x-nullable: true\n    type: \"object\"\n    properties:\n      ID:\n        description: \"The ID of the swarm.\"\n        type: \"string\"\n        example: \"abajmipo7b4xz5ip2nrla6b11\"\n      Version:\n        $ref: \"#/definitions/ObjectVersion\"\n      CreatedAt:\n        description: |\n          Date and time at which the swarm was initialised in\n          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n        type: \"string\"\n        format: \"dateTime\"\n        example: \"2016-08-18T10:44:24.496525531Z\"\n      UpdatedAt:\n        description: |\n          Date and time at which the swarm was last updated in\n          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n        type: \"string\"\n        format: \"dateTime\"\n        example: \"2017-08-09T07:09:37.632105588Z\"\n      Spec:\n        $ref: \"#/definitions/SwarmSpec\"\n      TLSInfo:\n        $ref: \"#/definitions/TLSInfo\"\n      RootRotationInProgress:\n        description: |\n          Whether there is currently a root CA rotation in progress for the swarm\n        type: \"boolean\"\n        example: false\n      DataPathPort:\n        description: |\n          DataPathPort specifies the data path port number for data traffic.\n          Acceptable port range is 1024 to 49151.\n          If no port is set or is set to 0, the default port (4789) is used.\n        type: \"integer\"\n        format: \"uint32\"\n        default: 4789\n        example: 4789\n      DefaultAddrPool:\n        description: |\n          Default Address Pool specifies default subnet pools for global scope\n          networks.\n        type: \"array\"\n        items:\n          type: \"string\"\n          format: \"CIDR\"\n          example: [\"10.10.0.0/16\", \"20.20.0.0/16\"]\n      SubnetSize:\n        description: |\n          SubnetSize specifies the subnet size of the networks created from the\n          default subnet pool.\n        type: \"integer\"\n        format: \"uint32\"\n        maximum: 29\n        default: 24\n        example: 24\n\n  JoinTokens:\n    description: |\n      JoinTokens contains the tokens workers and managers need to join the swarm.\n    type: \"object\"\n    properties:\n      Worker:\n        description: |\n          The token workers can use to join the swarm.\n        type: \"string\"\n        example: \"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx\"\n      Manager:\n        description: |\n          The token managers can use to join the swarm.\n        type: \"string\"\n        example: \"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2\"\n\n  Swarm:\n    type: \"object\"\n    allOf:\n      - $ref: \"#/definitions/ClusterInfo\"\n      - type: \"object\"\n        properties:\n          JoinTokens:\n            $ref: \"#/definitions/JoinTokens\"\n\n  TaskSpec:\n    description: \"User modifiable task configuration.\"\n    type: \"object\"\n    properties:\n      PluginSpec:\n        type: \"object\"\n        description: |\n          Plugin spec for the service.  *(Experimental release only.)*\n\n          <p><br /></p>\n\n          > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are\n          > mutually exclusive. PluginSpec is only used when the Runtime field\n          > is set to `plugin`. NetworkAttachmentSpec is used when the Runtime\n          > field is set to `attachment`.\n        properties:\n          Name:\n            description: \"The name or 'alias' to use for the plugin.\"\n            type: \"string\"\n          Remote:\n            description: \"The plugin image reference to use.\"\n            type: \"string\"\n          Disabled:\n            description: \"Disable the plugin once scheduled.\"\n            type: \"boolean\"\n          PluginPrivilege:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/PluginPrivilege\"\n      ContainerSpec:\n        type: \"object\"\n        description: |\n          Container spec for the service.\n\n          <p><br /></p>\n\n          > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are\n          > mutually exclusive. PluginSpec is only used when the Runtime field\n          > is set to `plugin`. NetworkAttachmentSpec is used when the Runtime\n          > field is set to `attachment`.\n        properties:\n          Image:\n            description: \"The image name to use for the container\"\n            type: \"string\"\n          Labels:\n            description: \"User-defined key/value data.\"\n            type: \"object\"\n            additionalProperties:\n              type: \"string\"\n          Command:\n            description: \"The command to be run in the image.\"\n            type: \"array\"\n            items:\n              type: \"string\"\n          Args:\n            description: \"Arguments to the command.\"\n            type: \"array\"\n            items:\n              type: \"string\"\n          Hostname:\n            description: |\n              The hostname to use for the container, as a valid\n              [RFC 1123](https://tools.ietf.org/html/rfc1123) hostname.\n            type: \"string\"\n          Env:\n            description: |\n              A list of environment variables in the form `VAR=value`.\n            type: \"array\"\n            items:\n              type: \"string\"\n          Dir:\n            description: \"The working directory for commands to run in.\"\n            type: \"string\"\n          User:\n            description: \"The user inside the container.\"\n            type: \"string\"\n          Groups:\n            type: \"array\"\n            description: |\n              A list of additional groups that the container process will run as.\n            items:\n              type: \"string\"\n          Privileges:\n            type: \"object\"\n            description: \"Security options for the container\"\n            properties:\n              CredentialSpec:\n                type: \"object\"\n                description: \"CredentialSpec for managed service account (Windows only)\"\n                properties:\n                  Config:\n                    type: \"string\"\n                    example: \"0bt9dmxjvjiqermk6xrop3ekq\"\n                    description: |\n                      Load credential spec from a Swarm Config with the given ID.\n                      The specified config must also be present in the Configs\n                      field with the Runtime property set.\n\n                      <p><br /></p>\n\n\n                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,\n                      > and `CredentialSpec.Config` are mutually exclusive.\n                  File:\n                    type: \"string\"\n                    example: \"spec.json\"\n                    description: |\n                      Load credential spec from this file. The file is read by\n                      the daemon, and must be present in the `CredentialSpecs`\n                      subdirectory in the docker data directory, which defaults\n                      to `C:\\ProgramData\\Docker\\` on Windows.\n\n                      For example, specifying `spec.json` loads\n                      `C:\\ProgramData\\Docker\\CredentialSpecs\\spec.json`.\n\n                      <p><br /></p>\n\n                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,\n                      > and `CredentialSpec.Config` are mutually exclusive.\n                  Registry:\n                    type: \"string\"\n                    description: |\n                      Load credential spec from this value in the Windows\n                      registry. The specified registry value must be located in:\n\n                      `HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Virtualization\\Containers\\CredentialSpecs`\n\n                      <p><br /></p>\n\n\n                      > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`,\n                      > and `CredentialSpec.Config` are mutually exclusive.\n              SELinuxContext:\n                type: \"object\"\n                description: \"SELinux labels of the container\"\n                properties:\n                  Disable:\n                    type: \"boolean\"\n                    description: \"Disable SELinux\"\n                  User:\n                    type: \"string\"\n                    description: \"SELinux user label\"\n                  Role:\n                    type: \"string\"\n                    description: \"SELinux role label\"\n                  Type:\n                    type: \"string\"\n                    description: \"SELinux type label\"\n                  Level:\n                    type: \"string\"\n                    description: \"SELinux level label\"\n              Seccomp:\n                type: \"object\"\n                description: \"Options for configuring seccomp on the container\"\n                properties:\n                  Mode:\n                    type: \"string\"\n                    enum:\n                      - \"default\"\n                      - \"unconfined\"\n                      - \"custom\"\n                  Profile:\n                    description: \"The custom seccomp profile as a json object\"\n                    type: \"string\"\n              AppArmor:\n                type: \"object\"\n                description: \"Options for configuring AppArmor on the container\"\n                properties:\n                  Mode:\n                    type: \"string\"\n                    enum:\n                      - \"default\"\n                      - \"disabled\"\n              NoNewPrivileges:\n                type: \"boolean\"\n                description: \"Configuration of the no_new_privs bit in the container\"\n\n          TTY:\n            description: \"Whether a pseudo-TTY should be allocated.\"\n            type: \"boolean\"\n          OpenStdin:\n            description: \"Open `stdin`\"\n            type: \"boolean\"\n          ReadOnly:\n            description: \"Mount the container's root filesystem as read only.\"\n            type: \"boolean\"\n          Mounts:\n            description: |\n              Specification for mounts to be added to containers created as part\n              of the service.\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/Mount\"\n          StopSignal:\n            description: \"Signal to stop the container.\"\n            type: \"string\"\n          StopGracePeriod:\n            description: |\n              Amount of time to wait for the container to terminate before\n              forcefully killing it.\n            type: \"integer\"\n            format: \"int64\"\n          HealthCheck:\n            $ref: \"#/definitions/HealthConfig\"\n          Hosts:\n            type: \"array\"\n            description: |\n              A list of hostname/IP mappings to add to the container's `hosts`\n              file. The format of extra hosts is specified in the\n              [hosts(5)](http://man7.org/linux/man-pages/man5/hosts.5.html)\n              man page:\n\n                  IP_address canonical_hostname [aliases...]\n            items:\n              type: \"string\"\n          DNSConfig:\n            description: |\n              Specification for DNS related configurations in resolver configuration\n              file (`resolv.conf`).\n            type: \"object\"\n            properties:\n              Nameservers:\n                description: \"The IP addresses of the name servers.\"\n                type: \"array\"\n                items:\n                  type: \"string\"\n              Search:\n                description: \"A search list for host-name lookup.\"\n                type: \"array\"\n                items:\n                  type: \"string\"\n              Options:\n                description: |\n                  A list of internal resolver variables to be modified (e.g.,\n                  `debug`, `ndots:3`, etc.).\n                type: \"array\"\n                items:\n                  type: \"string\"\n          Secrets:\n            description: |\n              Secrets contains references to zero or more secrets that will be\n              exposed to the service.\n            type: \"array\"\n            items:\n              type: \"object\"\n              properties:\n                File:\n                  description: |\n                    File represents a specific target that is backed by a file.\n                  type: \"object\"\n                  properties:\n                    Name:\n                      description: |\n                        Name represents the final filename in the filesystem.\n                      type: \"string\"\n                    UID:\n                      description: \"UID represents the file UID.\"\n                      type: \"string\"\n                    GID:\n                      description: \"GID represents the file GID.\"\n                      type: \"string\"\n                    Mode:\n                      description: \"Mode represents the FileMode of the file.\"\n                      type: \"integer\"\n                      format: \"uint32\"\n                SecretID:\n                  description: |\n                    SecretID represents the ID of the specific secret that we're\n                    referencing.\n                  type: \"string\"\n                SecretName:\n                  description: |\n                    SecretName is the name of the secret that this references,\n                    but this is just provided for lookup/display purposes. The\n                    secret in the reference will be identified by its ID.\n                  type: \"string\"\n          OomScoreAdj:\n            type: \"integer\"\n            format: \"int64\"\n            description: |\n              An integer value containing the score given to the container in\n              order to tune OOM killer preferences.\n            example: 0\n          Configs:\n            description: |\n              Configs contains references to zero or more configs that will be\n              exposed to the service.\n            type: \"array\"\n            items:\n              type: \"object\"\n              properties:\n                File:\n                  description: |\n                    File represents a specific target that is backed by a file.\n\n                    <p><br /><p>\n\n                    > **Note**: `Configs.File` and `Configs.Runtime` are mutually exclusive\n                  type: \"object\"\n                  properties:\n                    Name:\n                      description: |\n                        Name represents the final filename in the filesystem.\n                      type: \"string\"\n                    UID:\n                      description: \"UID represents the file UID.\"\n                      type: \"string\"\n                    GID:\n                      description: \"GID represents the file GID.\"\n                      type: \"string\"\n                    Mode:\n                      description: \"Mode represents the FileMode of the file.\"\n                      type: \"integer\"\n                      format: \"uint32\"\n                Runtime:\n                  description: |\n                    Runtime represents a target that is not mounted into the\n                    container but is used by the task\n\n                    <p><br /><p>\n\n                    > **Note**: `Configs.File` and `Configs.Runtime` are mutually\n                    > exclusive\n                  type: \"object\"\n                ConfigID:\n                  description: |\n                    ConfigID represents the ID of the specific config that we're\n                    referencing.\n                  type: \"string\"\n                ConfigName:\n                  description: |\n                    ConfigName is the name of the config that this references,\n                    but this is just provided for lookup/display purposes. The\n                    config in the reference will be identified by its ID.\n                  type: \"string\"\n          Isolation:\n            type: \"string\"\n            description: |\n              Isolation technology of the containers running the service.\n              (Windows only)\n            enum:\n              - \"default\"\n              - \"process\"\n              - \"hyperv\"\n              - \"\"\n          Init:\n            description: |\n              Run an init inside the container that forwards signals and reaps\n              processes. This field is omitted if empty, and the default (as\n              configured on the daemon) is used.\n            type: \"boolean\"\n            x-nullable: true\n          Sysctls:\n            description: |\n              Set kernel namedspaced parameters (sysctls) in the container.\n              The Sysctls option on services accepts the same sysctls as the\n              are supported on containers. Note that while the same sysctls are\n              supported, no guarantees or checks are made about their\n              suitability for a clustered environment, and it's up to the user\n              to determine whether a given sysctl will work properly in a\n              Service.\n            type: \"object\"\n            additionalProperties:\n              type: \"string\"\n          # This option is not used by Windows containers\n          CapabilityAdd:\n            type: \"array\"\n            description: |\n              A list of kernel capabilities to add to the default set\n              for the container.\n            items:\n              type: \"string\"\n            example:\n              - \"CAP_NET_RAW\"\n              - \"CAP_SYS_ADMIN\"\n              - \"CAP_SYS_CHROOT\"\n              - \"CAP_SYSLOG\"\n          CapabilityDrop:\n            type: \"array\"\n            description: |\n              A list of kernel capabilities to drop from the default set\n              for the container.\n            items:\n              type: \"string\"\n            example:\n              - \"CAP_NET_RAW\"\n          Ulimits:\n            description: |\n              A list of resource limits to set in the container. For example: `{\"Name\": \"nofile\", \"Soft\": 1024, \"Hard\": 2048}`\"\n            type: \"array\"\n            items:\n              type: \"object\"\n              properties:\n                Name:\n                  description: \"Name of ulimit\"\n                  type: \"string\"\n                Soft:\n                  description: \"Soft limit\"\n                  type: \"integer\"\n                Hard:\n                  description: \"Hard limit\"\n                  type: \"integer\"\n      NetworkAttachmentSpec:\n        description: |\n          Read-only spec type for non-swarm containers attached to swarm overlay\n          networks.\n\n          <p><br /></p>\n\n          > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are\n          > mutually exclusive. PluginSpec is only used when the Runtime field\n          > is set to `plugin`. NetworkAttachmentSpec is used when the Runtime\n          > field is set to `attachment`.\n        type: \"object\"\n        properties:\n          ContainerID:\n            description: \"ID of the container represented by this task\"\n            type: \"string\"\n      Resources:\n        description: |\n          Resource requirements which apply to each individual container created\n          as part of the service.\n        type: \"object\"\n        properties:\n          Limits:\n            description: \"Define resources limits.\"\n            $ref: \"#/definitions/Limit\"\n          Reservations:\n            description: \"Define resources reservation.\"\n            $ref: \"#/definitions/ResourceObject\"\n      RestartPolicy:\n        description: |\n          Specification for the restart policy which applies to containers\n          created as part of this service.\n        type: \"object\"\n        properties:\n          Condition:\n            description: \"Condition for restart.\"\n            type: \"string\"\n            enum:\n              - \"none\"\n              - \"on-failure\"\n              - \"any\"\n          Delay:\n            description: \"Delay between restart attempts.\"\n            type: \"integer\"\n            format: \"int64\"\n          MaxAttempts:\n            description: |\n              Maximum attempts to restart a given container before giving up\n              (default value is 0, which is ignored).\n            type: \"integer\"\n            format: \"int64\"\n            default: 0\n          Window:\n            description: |\n              Windows is the time window used to evaluate the restart policy\n              (default value is 0, which is unbounded).\n            type: \"integer\"\n            format: \"int64\"\n            default: 0\n      Placement:\n        type: \"object\"\n        properties:\n          Constraints:\n            description: |\n              An array of constraint expressions to limit the set of nodes where\n              a task can be scheduled. Constraint expressions can either use a\n              _match_ (`==`) or _exclude_ (`!=`) rule. Multiple constraints find\n              nodes that satisfy every expression (AND match). Constraints can\n              match node or Docker Engine labels as follows:\n\n              node attribute       | matches                        | example\n              ---------------------|--------------------------------|-----------------------------------------------\n              `node.id`            | Node ID                        | `node.id==2ivku8v2gvtg4`\n              `node.hostname`      | Node hostname                  | `node.hostname!=node-2`\n              `node.role`          | Node role (`manager`/`worker`) | `node.role==manager`\n              `node.platform.os`   | Node operating system          | `node.platform.os==windows`\n              `node.platform.arch` | Node architecture              | `node.platform.arch==x86_64`\n              `node.labels`        | User-defined node labels       | `node.labels.security==high`\n              `engine.labels`      | Docker Engine's labels         | `engine.labels.operatingsystem==ubuntu-24.04`\n\n              `engine.labels` apply to Docker Engine labels like operating system,\n              drivers, etc. Swarm administrators add `node.labels` for operational\n              purposes by using the [`node update endpoint`](#operation/NodeUpdate).\n\n            type: \"array\"\n            items:\n              type: \"string\"\n            example:\n              - \"node.hostname!=node3.corp.example.com\"\n              - \"node.role!=manager\"\n              - \"node.labels.type==production\"\n              - \"node.platform.os==linux\"\n              - \"node.platform.arch==x86_64\"\n          Preferences:\n            description: |\n              Preferences provide a way to make the scheduler aware of factors\n              such as topology. They are provided in order from highest to\n              lowest precedence.\n            type: \"array\"\n            items:\n              type: \"object\"\n              properties:\n                Spread:\n                  type: \"object\"\n                  properties:\n                    SpreadDescriptor:\n                      description: |\n                        label descriptor, such as `engine.labels.az`.\n                      type: \"string\"\n            example:\n              - Spread:\n                  SpreadDescriptor: \"node.labels.datacenter\"\n              - Spread:\n                  SpreadDescriptor: \"node.labels.rack\"\n          MaxReplicas:\n            description: |\n              Maximum number of replicas for per node (default value is 0, which\n              is unlimited)\n            type: \"integer\"\n            format: \"int64\"\n            default: 0\n          Platforms:\n            description: |\n              Platforms stores all the platforms that the service's image can\n              run on. This field is used in the platform filter for scheduling.\n              If empty, then the platform filter is off, meaning there are no\n              scheduling restrictions.\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/Platform\"\n      ForceUpdate:\n        description: |\n          A counter that triggers an update even if no relevant parameters have\n          been changed.\n        type: \"integer\"\n        format: \"uint64\"\n      Runtime:\n        description: |\n          Runtime is the type of runtime specified for the task executor.\n        type: \"string\"\n      Networks:\n        description: \"Specifies which networks the service should attach to.\"\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/NetworkAttachmentConfig\"\n      LogDriver:\n        description: |\n          Specifies the log driver to use for tasks created from this spec. If\n          not present, the default one for the swarm will be used, finally\n          falling back to the engine default if not specified.\n        type: \"object\"\n        properties:\n          Name:\n            type: \"string\"\n          Options:\n            type: \"object\"\n            additionalProperties:\n              type: \"string\"\n\n  TaskState:\n    type: \"string\"\n    enum:\n      - \"new\"\n      - \"allocated\"\n      - \"pending\"\n      - \"assigned\"\n      - \"accepted\"\n      - \"preparing\"\n      - \"ready\"\n      - \"starting\"\n      - \"running\"\n      - \"complete\"\n      - \"shutdown\"\n      - \"failed\"\n      - \"rejected\"\n      - \"remove\"\n      - \"orphaned\"\n\n  ContainerStatus:\n    type: \"object\"\n    description: \"represents the status of a container.\"\n    properties:\n      ContainerID:\n        type: \"string\"\n      PID:\n        type: \"integer\"\n      ExitCode:\n        type: \"integer\"\n\n  PortStatus:\n    type: \"object\"\n    description: \"represents the port status of a task's host ports whose service has published host ports\"\n    properties:\n      Ports:\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/EndpointPortConfig\"\n\n  TaskStatus:\n    type: \"object\"\n    description: \"represents the status of a task.\"\n    properties:\n      Timestamp:\n        type: \"string\"\n        format: \"dateTime\"\n      State:\n        $ref: \"#/definitions/TaskState\"\n      Message:\n        type: \"string\"\n      Err:\n        type: \"string\"\n      ContainerStatus:\n        $ref: \"#/definitions/ContainerStatus\"\n      PortStatus:\n        $ref: \"#/definitions/PortStatus\"\n\n  Task:\n    type: \"object\"\n    properties:\n      ID:\n        description: \"The ID of the task.\"\n        type: \"string\"\n      Version:\n        $ref: \"#/definitions/ObjectVersion\"\n      CreatedAt:\n        type: \"string\"\n        format: \"dateTime\"\n      UpdatedAt:\n        type: \"string\"\n        format: \"dateTime\"\n      Name:\n        description: \"Name of the task.\"\n        type: \"string\"\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n      Spec:\n        $ref: \"#/definitions/TaskSpec\"\n      ServiceID:\n        description: \"The ID of the service this task is part of.\"\n        type: \"string\"\n      Slot:\n        type: \"integer\"\n      NodeID:\n        description: \"The ID of the node that this task is on.\"\n        type: \"string\"\n      AssignedGenericResources:\n        $ref: \"#/definitions/GenericResources\"\n      Status:\n        $ref: \"#/definitions/TaskStatus\"\n      DesiredState:\n        $ref: \"#/definitions/TaskState\"\n      JobIteration:\n        description: |\n          If the Service this Task belongs to is a job-mode service, contains\n          the JobIteration of the Service this Task was created for. Absent if\n          the Task was created for a Replicated or Global Service.\n        $ref: \"#/definitions/ObjectVersion\"\n    example:\n      ID: \"0kzzo1i0y4jz6027t0k7aezc7\"\n      Version:\n        Index: 71\n      CreatedAt: \"2016-06-07T21:07:31.171892745Z\"\n      UpdatedAt: \"2016-06-07T21:07:31.376370513Z\"\n      Spec:\n        ContainerSpec:\n          Image: \"redis\"\n        Resources:\n          Limits: {}\n          Reservations: {}\n        RestartPolicy:\n          Condition: \"any\"\n          MaxAttempts: 0\n        Placement: {}\n      ServiceID: \"9mnpnzenvg8p8tdbtq4wvbkcz\"\n      Slot: 1\n      NodeID: \"60gvrl6tm78dmak4yl7srz94v\"\n      Status:\n        Timestamp: \"2016-06-07T21:07:31.290032978Z\"\n        State: \"running\"\n        Message: \"started\"\n        ContainerStatus:\n          ContainerID: \"e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035\"\n          PID: 677\n      DesiredState: \"running\"\n      NetworksAttachments:\n        - Network:\n            ID: \"4qvuz4ko70xaltuqbt8956gd1\"\n            Version:\n              Index: 18\n            CreatedAt: \"2016-06-07T20:31:11.912919752Z\"\n            UpdatedAt: \"2016-06-07T21:07:29.955277358Z\"\n            Spec:\n              Name: \"ingress\"\n              Labels:\n                com.docker.swarm.internal: \"true\"\n              DriverConfiguration: {}\n              IPAMOptions:\n                Driver: {}\n                Configs:\n                  - Subnet: \"10.255.0.0/16\"\n                    Gateway: \"10.255.0.1\"\n            DriverState:\n              Name: \"overlay\"\n              Options:\n                com.docker.network.driver.overlay.vxlanid_list: \"256\"\n            IPAMOptions:\n              Driver:\n                Name: \"default\"\n              Configs:\n                - Subnet: \"10.255.0.0/16\"\n                  Gateway: \"10.255.0.1\"\n          Addresses:\n            - \"10.255.0.10/16\"\n      AssignedGenericResources:\n        - DiscreteResourceSpec:\n            Kind: \"SSD\"\n            Value: 3\n        - NamedResourceSpec:\n            Kind: \"GPU\"\n            Value: \"UUID1\"\n        - NamedResourceSpec:\n            Kind: \"GPU\"\n            Value: \"UUID2\"\n\n  ServiceSpec:\n    description: \"User modifiable configuration for a service.\"\n    type: object\n    properties:\n      Name:\n        description: \"Name of the service.\"\n        type: \"string\"\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n      TaskTemplate:\n        $ref: \"#/definitions/TaskSpec\"\n      Mode:\n        description: \"Scheduling mode for the service.\"\n        type: \"object\"\n        properties:\n          Replicated:\n            type: \"object\"\n            properties:\n              Replicas:\n                type: \"integer\"\n                format: \"int64\"\n          Global:\n            type: \"object\"\n          ReplicatedJob:\n            description: |\n              The mode used for services with a finite number of tasks that run\n              to a completed state.\n            type: \"object\"\n            properties:\n              MaxConcurrent:\n                description: |\n                  The maximum number of replicas to run simultaneously.\n                type: \"integer\"\n                format: \"int64\"\n                default: 1\n              TotalCompletions:\n                description: |\n                  The total number of replicas desired to reach the Completed\n                  state. If unset, will default to the value of `MaxConcurrent`\n                type: \"integer\"\n                format: \"int64\"\n          GlobalJob:\n            description: |\n              The mode used for services which run a task to the completed state\n              on each valid node.\n            type: \"object\"\n      UpdateConfig:\n        description: \"Specification for the update strategy of the service.\"\n        type: \"object\"\n        properties:\n          Parallelism:\n            description: |\n              Maximum number of tasks to be updated in one iteration (0 means\n              unlimited parallelism).\n            type: \"integer\"\n            format: \"int64\"\n          Delay:\n            description: \"Amount of time between updates, in nanoseconds.\"\n            type: \"integer\"\n            format: \"int64\"\n          FailureAction:\n            description: |\n              Action to take if an updated task fails to run, or stops running\n              during the update.\n            type: \"string\"\n            enum:\n              - \"continue\"\n              - \"pause\"\n              - \"rollback\"\n          Monitor:\n            description: |\n              Amount of time to monitor each updated task for failures, in\n              nanoseconds.\n            type: \"integer\"\n            format: \"int64\"\n          MaxFailureRatio:\n            description: |\n              The fraction of tasks that may fail during an update before the\n              failure action is invoked, specified as a floating point number\n              between 0 and 1.\n            type: \"number\"\n            default: 0\n          Order:\n            description: |\n              The order of operations when rolling out an updated task. Either\n              the old task is shut down before the new task is started, or the\n              new task is started before the old task is shut down.\n            type: \"string\"\n            enum:\n              - \"stop-first\"\n              - \"start-first\"\n      RollbackConfig:\n        description: \"Specification for the rollback strategy of the service.\"\n        type: \"object\"\n        properties:\n          Parallelism:\n            description: |\n              Maximum number of tasks to be rolled back in one iteration (0 means\n              unlimited parallelism).\n            type: \"integer\"\n            format: \"int64\"\n          Delay:\n            description: |\n              Amount of time between rollback iterations, in nanoseconds.\n            type: \"integer\"\n            format: \"int64\"\n          FailureAction:\n            description: |\n              Action to take if an rolled back task fails to run, or stops\n              running during the rollback.\n            type: \"string\"\n            enum:\n              - \"continue\"\n              - \"pause\"\n          Monitor:\n            description: |\n              Amount of time to monitor each rolled back task for failures, in\n              nanoseconds.\n            type: \"integer\"\n            format: \"int64\"\n          MaxFailureRatio:\n            description: |\n              The fraction of tasks that may fail during a rollback before the\n              failure action is invoked, specified as a floating point number\n              between 0 and 1.\n            type: \"number\"\n            default: 0\n          Order:\n            description: |\n              The order of operations when rolling back a task. Either the old\n              task is shut down before the new task is started, or the new task\n              is started before the old task is shut down.\n            type: \"string\"\n            enum:\n              - \"stop-first\"\n              - \"start-first\"\n      Networks:\n        description: |\n          Specifies which networks the service should attach to.\n\n          Deprecated: This field is deprecated since v1.44. The Networks field in TaskSpec should be used instead.\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/NetworkAttachmentConfig\"\n\n      EndpointSpec:\n        $ref: \"#/definitions/EndpointSpec\"\n\n  EndpointPortConfig:\n    type: \"object\"\n    properties:\n      Name:\n        type: \"string\"\n      Protocol:\n        type: \"string\"\n        enum:\n          - \"tcp\"\n          - \"udp\"\n          - \"sctp\"\n      TargetPort:\n        description: \"The port inside the container.\"\n        type: \"integer\"\n      PublishedPort:\n        description: \"The port on the swarm hosts.\"\n        type: \"integer\"\n      PublishMode:\n        description: |\n          The mode in which port is published.\n\n          <p><br /></p>\n\n          - \"ingress\" makes the target port accessible on every node,\n            regardless of whether there is a task for the service running on\n            that node or not.\n          - \"host\" bypasses the routing mesh and publish the port directly on\n            the swarm node where that service is running.\n\n        type: \"string\"\n        enum:\n          - \"ingress\"\n          - \"host\"\n        default: \"ingress\"\n        example: \"ingress\"\n\n  EndpointSpec:\n    description: \"Properties that can be configured to access and load balance a service.\"\n    type: \"object\"\n    properties:\n      Mode:\n        description: |\n          The mode of resolution to use for internal load balancing between tasks.\n        type: \"string\"\n        enum:\n          - \"vip\"\n          - \"dnsrr\"\n        default: \"vip\"\n      Ports:\n        description: |\n          List of exposed ports that this service is accessible on from the\n          outside. Ports can only be provided if `vip` resolution mode is used.\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/EndpointPortConfig\"\n\n  Service:\n    type: \"object\"\n    properties:\n      ID:\n        type: \"string\"\n      Version:\n        $ref: \"#/definitions/ObjectVersion\"\n      CreatedAt:\n        type: \"string\"\n        format: \"dateTime\"\n      UpdatedAt:\n        type: \"string\"\n        format: \"dateTime\"\n      Spec:\n        $ref: \"#/definitions/ServiceSpec\"\n      Endpoint:\n        type: \"object\"\n        properties:\n          Spec:\n            $ref: \"#/definitions/EndpointSpec\"\n          Ports:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/EndpointPortConfig\"\n          VirtualIPs:\n            type: \"array\"\n            items:\n              type: \"object\"\n              properties:\n                NetworkID:\n                  type: \"string\"\n                Addr:\n                  type: \"string\"\n      UpdateStatus:\n        description: \"The status of a service update.\"\n        type: \"object\"\n        properties:\n          State:\n            type: \"string\"\n            enum:\n              - \"updating\"\n              - \"paused\"\n              - \"completed\"\n          StartedAt:\n            type: \"string\"\n            format: \"dateTime\"\n          CompletedAt:\n            type: \"string\"\n            format: \"dateTime\"\n          Message:\n            type: \"string\"\n      ServiceStatus:\n        description: |\n          The status of the service's tasks. Provided only when requested as\n          part of a ServiceList operation.\n        type: \"object\"\n        properties:\n          RunningTasks:\n            description: |\n              The number of tasks for the service currently in the Running state.\n            type: \"integer\"\n            format: \"uint64\"\n            example: 7\n          DesiredTasks:\n            description: |\n              The number of tasks for the service desired to be running.\n              For replicated services, this is the replica count from the\n              service spec. For global services, this is computed by taking\n              count of all tasks for the service with a Desired State other\n              than Shutdown.\n            type: \"integer\"\n            format: \"uint64\"\n            example: 10\n          CompletedTasks:\n            description: |\n              The number of tasks for a job that are in the Completed state.\n              This field must be cross-referenced with the service type, as the\n              value of 0 may mean the service is not in a job mode, or it may\n              mean the job-mode service has no tasks yet Completed.\n            type: \"integer\"\n            format: \"uint64\"\n      JobStatus:\n        description: |\n          The status of the service when it is in one of ReplicatedJob or\n          GlobalJob modes. Absent on Replicated and Global mode services. The\n          JobIteration is an ObjectVersion, but unlike the Service's version,\n          does not need to be sent with an update request.\n        type: \"object\"\n        properties:\n          JobIteration:\n            description: |\n              JobIteration is a value increased each time a Job is executed,\n              successfully or otherwise. \"Executed\", in this case, means the\n              job as a whole has been started, not that an individual Task has\n              been launched. A job is \"Executed\" when its ServiceSpec is\n              updated. JobIteration can be used to disambiguate Tasks belonging\n              to different executions of a job.  Though JobIteration will\n              increase with each subsequent execution, it may not necessarily\n              increase by 1, and so JobIteration should not be used to\n            $ref: \"#/definitions/ObjectVersion\"\n          LastExecution:\n            description: |\n              The last time, as observed by the server, that this job was\n              started.\n            type: \"string\"\n            format: \"dateTime\"\n    example:\n      ID: \"9mnpnzenvg8p8tdbtq4wvbkcz\"\n      Version:\n        Index: 19\n      CreatedAt: \"2016-06-07T21:05:51.880065305Z\"\n      UpdatedAt: \"2016-06-07T21:07:29.962229872Z\"\n      Spec:\n        Name: \"hopeful_cori\"\n        TaskTemplate:\n          ContainerSpec:\n            Image: \"redis\"\n          Resources:\n            Limits: {}\n            Reservations: {}\n          RestartPolicy:\n            Condition: \"any\"\n            MaxAttempts: 0\n          Placement: {}\n          ForceUpdate: 0\n        Mode:\n          Replicated:\n            Replicas: 1\n        UpdateConfig:\n          Parallelism: 1\n          Delay: 1000000000\n          FailureAction: \"pause\"\n          Monitor: 15000000000\n          MaxFailureRatio: 0.15\n        RollbackConfig:\n          Parallelism: 1\n          Delay: 1000000000\n          FailureAction: \"pause\"\n          Monitor: 15000000000\n          MaxFailureRatio: 0.15\n        EndpointSpec:\n          Mode: \"vip\"\n          Ports:\n            -\n              Protocol: \"tcp\"\n              TargetPort: 6379\n              PublishedPort: 30001\n      Endpoint:\n        Spec:\n          Mode: \"vip\"\n          Ports:\n            -\n              Protocol: \"tcp\"\n              TargetPort: 6379\n              PublishedPort: 30001\n        Ports:\n          -\n            Protocol: \"tcp\"\n            TargetPort: 6379\n            PublishedPort: 30001\n        VirtualIPs:\n          -\n            NetworkID: \"4qvuz4ko70xaltuqbt8956gd1\"\n            Addr: \"10.255.0.2/16\"\n          -\n            NetworkID: \"4qvuz4ko70xaltuqbt8956gd1\"\n            Addr: \"10.255.0.3/16\"\n\n  ImageDeleteResponseItem:\n    type: \"object\"\n    x-go-name: \"DeleteResponse\"\n    properties:\n      Untagged:\n        description: \"The image ID of an image that was untagged\"\n        type: \"string\"\n      Deleted:\n        description: \"The image ID of an image that was deleted\"\n        type: \"string\"\n\n  ServiceCreateResponse:\n    type: \"object\"\n    description: |\n      contains the information returned to a client on the\n      creation of a new service.\n    properties:\n      ID:\n        description: \"The ID of the created service.\"\n        type: \"string\"\n        x-nullable: false\n        example: \"ak7w3gjqoa3kuz8xcpnyy0pvl\"\n      Warnings:\n        description: |\n          Optional warning message.\n\n          FIXME(thaJeztah): this should have \"omitempty\" in the generated type.\n        type: \"array\"\n        x-nullable: true\n        items:\n          type: \"string\"\n        example:\n          - \"unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found\"\n\n  ServiceUpdateResponse:\n    type: \"object\"\n    properties:\n      Warnings:\n        description: \"Optional warning messages\"\n        type: \"array\"\n        items:\n          type: \"string\"\n    example:\n      Warnings:\n        - \"unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found\"\n\n  ContainerInspectResponse:\n    type: \"object\"\n    title: \"ContainerInspectResponse\"\n    x-go-name: \"InspectResponse\"\n    properties:\n      Id:\n        description: |-\n          The ID of this container as a 128-bit (64-character) hexadecimal string (32 bytes).\n        type: \"string\"\n        x-go-name: \"ID\"\n        minLength: 64\n        maxLength: 64\n        pattern: \"^[0-9a-fA-F]{64}$\"\n        example: \"aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf\"\n      Created:\n        description: |-\n          Date and time at which the container was created, formatted in\n          [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format with nano-seconds.\n        type: \"string\"\n        format: \"dateTime\"\n        x-nullable: true\n        example: \"2025-02-17T17:43:39.64001363Z\"\n      Path:\n        description: |-\n          The path to the command being run\n        type: \"string\"\n        example: \"/bin/sh\"\n      Args:\n        description: \"The arguments to the command being run\"\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"-c\"\n          - \"exit 9\"\n      State:\n        $ref: \"#/definitions/ContainerState\"\n      Image:\n        description: |-\n          The ID (digest) of the image that this container was created from.\n        type: \"string\"\n        example: \"sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782\"\n      ResolvConfPath:\n        description: |-\n          Location of the `/etc/resolv.conf` generated for the container on the\n          host.\n\n          This file is managed through the docker daemon, and should not be\n          accessed or modified by other tools.\n        type: \"string\"\n        example: \"/var/lib/docker/containers/aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf/resolv.conf\"\n      HostnamePath:\n        description: |-\n          Location of the `/etc/hostname` generated for the container on the\n          host.\n\n          This file is managed through the docker daemon, and should not be\n          accessed or modified by other tools.\n        type: \"string\"\n        example: \"/var/lib/docker/containers/aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf/hostname\"\n      HostsPath:\n        description: |-\n          Location of the `/etc/hosts` generated for the container on the\n          host.\n\n          This file is managed through the docker daemon, and should not be\n          accessed or modified by other tools.\n        type: \"string\"\n        example: \"/var/lib/docker/containers/aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf/hosts\"\n      LogPath:\n        description: |-\n          Location of the file used to buffer the container's logs. Depending on\n          the logging-driver used for the container, this field may be omitted.\n\n          This file is managed through the docker daemon, and should not be\n          accessed or modified by other tools.\n        type: \"string\"\n        x-nullable: true\n        example: \"/var/lib/docker/containers/5b7c7e2b992aa426584ce6c47452756066be0e503a08b4516a433a54d2f69e59/5b7c7e2b992aa426584ce6c47452756066be0e503a08b4516a433a54d2f69e59-json.log\"\n      Name:\n        description: |-\n          The name associated with this container.\n\n          For historic reasons, the name may be prefixed with a forward-slash (`/`).\n        type: \"string\"\n        example: \"/funny_chatelet\"\n      RestartCount:\n        description: |-\n          Number of times the container was restarted since it was created,\n          or since daemon was started.\n        type: \"integer\"\n        example: 0\n      Driver:\n        description: |-\n          The storage-driver used for the container's filesystem (graph-driver\n          or snapshotter).\n        type: \"string\"\n        example: \"overlayfs\"\n      Platform:\n        description: |-\n          The platform (operating system) for which the container was created.\n\n          This field was introduced for the experimental \"LCOW\" (Linux Containers\n          On Windows) features, which has been removed. In most cases, this field\n          is equal to the host's operating system (`linux` or `windows`).\n        type: \"string\"\n        example: \"linux\"\n      ImageManifestDescriptor:\n        $ref: \"#/definitions/OCIDescriptor\"\n        description: |-\n          OCI descriptor of the platform-specific manifest of the image\n          the container was created from.\n\n          Note: Only available if the daemon provides a multi-platform\n          image store.\n      MountLabel:\n        description: |-\n          SELinux mount label set for the container.\n        type: \"string\"\n        example: \"\"\n      ProcessLabel:\n        description: |-\n          SELinux process label set for the container.\n        type: \"string\"\n        example: \"\"\n      AppArmorProfile:\n        description: |-\n          The AppArmor profile set for the container.\n        type: \"string\"\n        example: \"\"\n      ExecIDs:\n        description: |-\n          IDs of exec instances that are running in the container.\n        type: \"array\"\n        items:\n          type: \"string\"\n        x-nullable: true\n        example:\n          - \"b35395de42bc8abd327f9dd65d913b9ba28c74d2f0734eeeae84fa1c616a0fca\"\n          - \"3fc1232e5cd20c8de182ed81178503dc6437f4e7ef12b52cc5e8de020652f1c4\"\n      HostConfig:\n        $ref: \"#/definitions/HostConfig\"\n      GraphDriver:\n        $ref: \"#/definitions/DriverData\"\n      SizeRw:\n        description: |-\n          The size of files that have been created or changed by this container.\n\n          This field is omitted by default, and only set when size is requested\n          in the API request.\n        type: \"integer\"\n        format: \"int64\"\n        x-nullable: true\n        example: \"122880\"\n      SizeRootFs:\n        description: |-\n          The total size of all files in the read-only layers from the image\n          that the container uses. These layers can be shared between containers.\n\n          This field is omitted by default, and only set when size is requested\n          in the API request.\n        type: \"integer\"\n        format: \"int64\"\n        x-nullable: true\n        example: \"1653948416\"\n      Mounts:\n        description: |-\n          List of mounts used by the container.\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/MountPoint\"\n      Config:\n        $ref: \"#/definitions/ContainerConfig\"\n      NetworkSettings:\n        $ref: \"#/definitions/NetworkSettings\"\n\n  ContainerSummary:\n    type: \"object\"\n    properties:\n      Id:\n        description: |-\n          The ID of this container as a 128-bit (64-character) hexadecimal string (32 bytes).\n        type: \"string\"\n        x-go-name: \"ID\"\n        minLength: 64\n        maxLength: 64\n        pattern: \"^[0-9a-fA-F]{64}$\"\n        example: \"aa86eacfb3b3ed4cd362c1e88fc89a53908ad05fb3a4103bca3f9b28292d14bf\"\n      Names:\n        description: |-\n          The names associated with this container. Most containers have a single\n          name, but when using legacy \"links\", the container can have multiple\n          names.\n\n          For historic reasons, names are prefixed with a forward-slash (`/`).\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"/funny_chatelet\"\n      Image:\n        description: |-\n          The name or ID of the image used to create the container.\n\n          This field shows the image reference as was specified when creating the container,\n          which can be in its canonical form (e.g., `docker.io/library/ubuntu:latest`\n          or `docker.io/library/ubuntu@sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782`),\n          short form (e.g., `ubuntu:latest`)), or the ID(-prefix) of the image (e.g., `72297848456d`).\n\n          The content of this field can be updated at runtime if the image used to\n          create the container is untagged, in which case the field is updated to\n          contain the the image ID (digest) it was resolved to in its canonical,\n          non-truncated form (e.g., `sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782`).\n        type: \"string\"\n        example: \"docker.io/library/ubuntu:latest\"\n      ImageID:\n        description: |-\n          The ID (digest) of the image that this container was created from.\n        type: \"string\"\n        example: \"sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782\"\n      ImageManifestDescriptor:\n        $ref: \"#/definitions/OCIDescriptor\"\n        x-nullable: true\n        description: |\n          OCI descriptor of the platform-specific manifest of the image\n          the container was created from.\n\n          Note: Only available if the daemon provides a multi-platform\n          image store.\n\n          This field is not populated in the `GET /system/df` endpoint.\n      Command:\n        description: \"Command to run when starting the container\"\n        type: \"string\"\n        example: \"/bin/bash\"\n      Created:\n        description: |-\n          Date and time at which the container was created as a Unix timestamp\n          (number of seconds since EPOCH).\n        type: \"integer\"\n        format: \"int64\"\n        example: \"1739811096\"\n      Ports:\n        description: |-\n          Port-mappings for the container.\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/Port\"\n      SizeRw:\n        description: |-\n          The size of files that have been created or changed by this container.\n\n          This field is omitted by default, and only set when size is requested\n          in the API request.\n        type: \"integer\"\n        format: \"int64\"\n        x-nullable: true\n        example: \"122880\"\n      SizeRootFs:\n        description: |-\n          The total size of all files in the read-only layers from the image\n          that the container uses. These layers can be shared between containers.\n\n          This field is omitted by default, and only set when size is requested\n          in the API request.\n        type: \"integer\"\n        format: \"int64\"\n        x-nullable: true\n        example: \"1653948416\"\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.example.vendor: \"Acme\"\n          com.example.license: \"GPL\"\n          com.example.version: \"1.0\"\n      State:\n        description: |\n          The state of this container.\n        type: \"string\"\n        enum:\n          - \"created\"\n          - \"running\"\n          - \"paused\"\n          - \"restarting\"\n          - \"exited\"\n          - \"removing\"\n          - \"dead\"\n        example: \"running\"\n      Status:\n        description: |-\n          Additional human-readable status of this container (e.g. `Exit 0`)\n        type: \"string\"\n        example: \"Up 4 days\"\n      HostConfig:\n        type: \"object\"\n        description: |-\n          Summary of host-specific runtime information of the container. This\n          is a reduced set of information in the container's \"HostConfig\" as\n          available in the container \"inspect\" response.\n        properties:\n          NetworkMode:\n            description: |-\n              Networking mode (`host`, `none`, `container:<id>`) or name of the\n              primary network the container is using.\n\n              This field is primarily for backward compatibility. The container\n              can be connected to multiple networks for which information can be\n              found in the `NetworkSettings.Networks` field, which enumerates\n              settings per network.\n            type: \"string\"\n            example: \"mynetwork\"\n          Annotations:\n            description: |-\n              Arbitrary key-value metadata attached to the container.\n            type: \"object\"\n            x-nullable: true\n            additionalProperties:\n              type: \"string\"\n            example:\n              io.kubernetes.docker.type: \"container\"\n              io.kubernetes.sandbox.id: \"3befe639bed0fd6afdd65fd1fa84506756f59360ec4adc270b0fdac9be22b4d3\"\n      NetworkSettings:\n        description: |-\n          Summary of the container's network settings\n        type: \"object\"\n        properties:\n          Networks:\n            type: \"object\"\n            description: |-\n              Summary of network-settings for each network the container is\n              attached to.\n            additionalProperties:\n              $ref: \"#/definitions/EndpointSettings\"\n      Mounts:\n        type: \"array\"\n        description: |-\n          List of mounts used by the container.\n        items:\n          $ref: \"#/definitions/MountPoint\"\n\n  Driver:\n    description: \"Driver represents a driver (network, logging, secrets).\"\n    type: \"object\"\n    required: [Name]\n    properties:\n      Name:\n        description: \"Name of the driver.\"\n        type: \"string\"\n        x-nullable: false\n        example: \"some-driver\"\n      Options:\n        description: \"Key/value map of driver-specific options.\"\n        type: \"object\"\n        x-nullable: false\n        additionalProperties:\n          type: \"string\"\n        example:\n          OptionA: \"value for driver-specific option A\"\n          OptionB: \"value for driver-specific option B\"\n\n  SecretSpec:\n    type: \"object\"\n    properties:\n      Name:\n        description: \"User-defined name of the secret.\"\n        type: \"string\"\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.example.some-label: \"some-value\"\n          com.example.some-other-label: \"some-other-value\"\n      Data:\n        description: |\n          Data is the data to store as a secret, formatted as a Base64-url-safe-encoded\n          ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-5)) string.\n          It must be empty if the Driver field is set, in which case the data is\n          loaded from an external secret store. The maximum allowed size is 500KB,\n          as defined in [MaxSecretSize](https://pkg.go.dev/github.com/moby/swarmkit/v2@v2.0.0-20250103191802-8c1959736554/api/validation#MaxSecretSize).\n\n          This field is only used to _create_ a secret, and is not returned by\n          other endpoints.\n        type: \"string\"\n        example: \"\"\n      Driver:\n        description: |\n          Name of the secrets driver used to fetch the secret's value from an\n          external secret store.\n        $ref: \"#/definitions/Driver\"\n      Templating:\n        description: |\n          Templating driver, if applicable\n\n          Templating controls whether and how to evaluate the config payload as\n          a template. If no driver is set, no templating is used.\n        $ref: \"#/definitions/Driver\"\n\n  Secret:\n    type: \"object\"\n    properties:\n      ID:\n        type: \"string\"\n        example: \"blt1owaxmitz71s9v5zh81zun\"\n      Version:\n        $ref: \"#/definitions/ObjectVersion\"\n      CreatedAt:\n        type: \"string\"\n        format: \"dateTime\"\n        example: \"2017-07-20T13:55:28.678958722Z\"\n      UpdatedAt:\n        type: \"string\"\n        format: \"dateTime\"\n        example: \"2017-07-20T13:55:28.678958722Z\"\n      Spec:\n        $ref: \"#/definitions/SecretSpec\"\n\n  ConfigSpec:\n    type: \"object\"\n    properties:\n      Name:\n        description: \"User-defined name of the config.\"\n        type: \"string\"\n      Labels:\n        description: \"User-defined key/value metadata.\"\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n      Data:\n        description: |\n          Data is the data to store as a config, formatted as a Base64-url-safe-encoded\n          ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-5)) string.\n          The maximum allowed size is 1000KB, as defined in [MaxConfigSize](https://pkg.go.dev/github.com/moby/swarmkit/v2@v2.0.0-20250103191802-8c1959736554/manager/controlapi#MaxConfigSize).\n        type: \"string\"\n      Templating:\n        description: |\n          Templating driver, if applicable\n\n          Templating controls whether and how to evaluate the config payload as\n          a template. If no driver is set, no templating is used.\n        $ref: \"#/definitions/Driver\"\n\n  Config:\n    type: \"object\"\n    properties:\n      ID:\n        type: \"string\"\n      Version:\n        $ref: \"#/definitions/ObjectVersion\"\n      CreatedAt:\n        type: \"string\"\n        format: \"dateTime\"\n      UpdatedAt:\n        type: \"string\"\n        format: \"dateTime\"\n      Spec:\n        $ref: \"#/definitions/ConfigSpec\"\n\n  ContainerState:\n    description: |\n      ContainerState stores container's running state. It's part of ContainerJSONBase\n      and will be returned by the \"inspect\" command.\n    type: \"object\"\n    x-nullable: true\n    properties:\n      Status:\n        description: |\n          String representation of the container state. Can be one of \"created\",\n          \"running\", \"paused\", \"restarting\", \"removing\", \"exited\", or \"dead\".\n        type: \"string\"\n        enum: [\"created\", \"running\", \"paused\", \"restarting\", \"removing\", \"exited\", \"dead\"]\n        example: \"running\"\n      Running:\n        description: |\n          Whether this container is running.\n\n          Note that a running container can be _paused_. The `Running` and `Paused`\n          booleans are not mutually exclusive:\n\n          When pausing a container (on Linux), the freezer cgroup is used to suspend\n          all processes in the container. Freezing the process requires the process to\n          be running. As a result, paused containers are both `Running` _and_ `Paused`.\n\n          Use the `Status` field instead to determine if a container's state is \"running\".\n        type: \"boolean\"\n        example: true\n      Paused:\n        description: \"Whether this container is paused.\"\n        type: \"boolean\"\n        example: false\n      Restarting:\n        description: \"Whether this container is restarting.\"\n        type: \"boolean\"\n        example: false\n      OOMKilled:\n        description: |\n          Whether a process within this container has been killed because it ran\n          out of memory since the container was last started.\n        type: \"boolean\"\n        example: false\n      Dead:\n        type: \"boolean\"\n        example: false\n      Pid:\n        description: \"The process ID of this container\"\n        type: \"integer\"\n        example: 1234\n      ExitCode:\n        description: \"The last exit code of this container\"\n        type: \"integer\"\n        example: 0\n      Error:\n        type: \"string\"\n      StartedAt:\n        description: \"The time when this container was last started.\"\n        type: \"string\"\n        example: \"2020-01-06T09:06:59.461876391Z\"\n      FinishedAt:\n        description: \"The time when this container last exited.\"\n        type: \"string\"\n        example: \"2020-01-06T09:07:59.461876391Z\"\n      Health:\n        $ref: \"#/definitions/Health\"\n\n  ContainerCreateResponse:\n    description: \"OK response to ContainerCreate operation\"\n    type: \"object\"\n    title: \"ContainerCreateResponse\"\n    x-go-name: \"CreateResponse\"\n    required: [Id, Warnings]\n    properties:\n      Id:\n        description: \"The ID of the created container\"\n        type: \"string\"\n        x-nullable: false\n        example: \"ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743\"\n      Warnings:\n        description: \"Warnings encountered when creating the container\"\n        type: \"array\"\n        x-nullable: false\n        items:\n          type: \"string\"\n        example: []\n\n  ContainerUpdateResponse:\n    type: \"object\"\n    title: \"ContainerUpdateResponse\"\n    x-go-name: \"UpdateResponse\"\n    description: |-\n      Response for a successful container-update.\n    properties:\n      Warnings:\n        type: \"array\"\n        description: |-\n          Warnings encountered when updating the container.\n        items:\n          type: \"string\"\n        example: [\"Published ports are discarded when using host network mode\"]\n\n  ContainerStatsResponse:\n    description: |\n      Statistics sample for a container.\n    type: \"object\"\n    x-go-name: \"StatsResponse\"\n    title: \"ContainerStatsResponse\"\n    properties:\n      name:\n        description: \"Name of the container\"\n        type: \"string\"\n        x-nullable: true\n        example: \"boring_wozniak\"\n      id:\n        description: \"ID of the container\"\n        type: \"string\"\n        x-nullable: true\n        example: \"ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743\"\n      read:\n        description: |\n          Date and time at which this sample was collected.\n          The value is formatted as [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)\n          with nano-seconds.\n        type: \"string\"\n        format: \"date-time\"\n        example: \"2025-01-16T13:55:22.165243637Z\"\n      preread:\n        description: |\n          Date and time at which this first sample was collected. This field\n          is not propagated if the \"one-shot\" option is set. If the \"one-shot\"\n          option is set, this field may be omitted, empty, or set to a default\n          date (`0001-01-01T00:00:00Z`).\n\n          The value is formatted as [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)\n          with nano-seconds.\n        type: \"string\"\n        format: \"date-time\"\n        example: \"2025-01-16T13:55:21.160452595Z\"\n      pids_stats:\n        $ref: \"#/definitions/ContainerPidsStats\"\n      blkio_stats:\n        $ref: \"#/definitions/ContainerBlkioStats\"\n      num_procs:\n        description: |\n          The number of processors on the system.\n\n          This field is Windows-specific and always zero for Linux containers.\n        type: \"integer\"\n        format: \"uint32\"\n        example: 16\n      storage_stats:\n        $ref: \"#/definitions/ContainerStorageStats\"\n      cpu_stats:\n        $ref: \"#/definitions/ContainerCPUStats\"\n      precpu_stats:\n        $ref: \"#/definitions/ContainerCPUStats\"\n      memory_stats:\n        $ref: \"#/definitions/ContainerMemoryStats\"\n      networks:\n        description: |\n          Network statistics for the container per interface.\n\n          This field is omitted if the container has no networking enabled.\n        x-nullable: true\n        additionalProperties:\n          $ref: \"#/definitions/ContainerNetworkStats\"\n        example:\n          eth0:\n            rx_bytes: 5338\n            rx_dropped: 0\n            rx_errors: 0\n            rx_packets: 36\n            tx_bytes: 648\n            tx_dropped: 0\n            tx_errors: 0\n            tx_packets: 8\n          eth5:\n            rx_bytes: 4641\n            rx_dropped: 0\n            rx_errors: 0\n            rx_packets: 26\n            tx_bytes: 690\n            tx_dropped: 0\n            tx_errors: 0\n            tx_packets: 9\n\n  ContainerBlkioStats:\n    description: |\n      BlkioStats stores all IO service stats for data read and write.\n\n      This type is Linux-specific and holds many fields that are specific to cgroups v1.\n      On a cgroup v2 host, all fields other than `io_service_bytes_recursive`\n      are omitted or `null`.\n\n      This type is only populated on Linux and omitted for Windows containers.\n    type: \"object\"\n    x-go-name: \"BlkioStats\"\n    x-nullable: true\n    properties:\n      io_service_bytes_recursive:\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ContainerBlkioStatEntry\"\n      io_serviced_recursive:\n        description: |\n          This field is only available when using Linux containers with\n          cgroups v1. It is omitted or `null` when using cgroups v2.\n        x-nullable: true\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ContainerBlkioStatEntry\"\n      io_queue_recursive:\n        description: |\n          This field is only available when using Linux containers with\n          cgroups v1. It is omitted or `null` when using cgroups v2.\n        x-nullable: true\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ContainerBlkioStatEntry\"\n      io_service_time_recursive:\n        description: |\n          This field is only available when using Linux containers with\n          cgroups v1. It is omitted or `null` when using cgroups v2.\n        x-nullable: true\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ContainerBlkioStatEntry\"\n      io_wait_time_recursive:\n        description: |\n          This field is only available when using Linux containers with\n          cgroups v1. It is omitted or `null` when using cgroups v2.\n        x-nullable: true\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ContainerBlkioStatEntry\"\n      io_merged_recursive:\n        description: |\n          This field is only available when using Linux containers with\n          cgroups v1. It is omitted or `null` when using cgroups v2.\n        x-nullable: true\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ContainerBlkioStatEntry\"\n      io_time_recursive:\n        description: |\n          This field is only available when using Linux containers with\n          cgroups v1. It is omitted or `null` when using cgroups v2.\n        x-nullable: true\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ContainerBlkioStatEntry\"\n      sectors_recursive:\n        description: |\n          This field is only available when using Linux containers with\n          cgroups v1. It is omitted or `null` when using cgroups v2.\n        x-nullable: true\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/ContainerBlkioStatEntry\"\n    example:\n      io_service_bytes_recursive: [\n        {\"major\": 254, \"minor\": 0, \"op\": \"read\", \"value\": 7593984},\n        {\"major\": 254, \"minor\": 0, \"op\": \"write\", \"value\": 100}\n      ]\n      io_serviced_recursive: null\n      io_queue_recursive: null\n      io_service_time_recursive: null\n      io_wait_time_recursive: null\n      io_merged_recursive: null\n      io_time_recursive: null\n      sectors_recursive: null\n\n  ContainerBlkioStatEntry:\n    description: |\n      Blkio stats entry.\n\n      This type is Linux-specific and omitted for Windows containers.\n    type: \"object\"\n    x-go-name: \"BlkioStatEntry\"\n    x-nullable: true\n    properties:\n      major:\n        type: \"integer\"\n        format: \"uint64\"\n        example: 254\n      minor:\n        type: \"integer\"\n        format: \"uint64\"\n        example: 0\n      op:\n        type: \"string\"\n        example: \"read\"\n      value:\n        type: \"integer\"\n        format: \"uint64\"\n        example: 7593984\n\n  ContainerCPUStats:\n    description: |\n      CPU related info of the container\n    type: \"object\"\n    x-go-name: \"CPUStats\"\n    x-nullable: true\n    properties:\n      cpu_usage:\n        $ref: \"#/definitions/ContainerCPUUsage\"\n      system_cpu_usage:\n        description: |\n          System Usage.\n\n          This field is Linux-specific and omitted for Windows containers.\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 5\n      online_cpus:\n        description: |\n          Number of online CPUs.\n\n          This field is Linux-specific and omitted for Windows containers.\n        type: \"integer\"\n        format: \"uint32\"\n        x-nullable: true\n        example: 5\n      throttling_data:\n        $ref: \"#/definitions/ContainerThrottlingData\"\n\n  ContainerCPUUsage:\n    description: |\n      All CPU stats aggregated since container inception.\n    type: \"object\"\n    x-go-name: \"CPUUsage\"\n    x-nullable: true\n    properties:\n      total_usage:\n        description: |\n          Total CPU time consumed in nanoseconds (Linux) or 100's of nanoseconds (Windows).\n        type: \"integer\"\n        format: \"uint64\"\n        example: 29912000\n      percpu_usage:\n        description: |\n          Total CPU time (in nanoseconds) consumed per core (Linux).\n\n          This field is Linux-specific when using cgroups v1. It is omitted\n          when using cgroups v2 and Windows containers.\n        type: \"array\"\n        x-nullable: true\n        items:\n          type: \"integer\"\n          format: \"uint64\"\n          example: 29912000\n\n      usage_in_kernelmode:\n        description: |\n          Time (in nanoseconds) spent by tasks of the cgroup in kernel mode (Linux),\n          or time spent (in 100's of nanoseconds) by all container processes in\n          kernel mode (Windows).\n\n          Not populated for Windows containers using Hyper-V isolation.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 21994000\n      usage_in_usermode:\n        description: |\n          Time (in nanoseconds) spent by tasks of the cgroup in user mode (Linux),\n          or time spent (in 100's of nanoseconds) by all container processes in\n          kernel mode (Windows).\n\n          Not populated for Windows containers using Hyper-V isolation.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 7918000\n\n  ContainerPidsStats:\n    description: |\n      PidsStats contains Linux-specific stats of a container's process-IDs (PIDs).\n\n      This type is Linux-specific and omitted for Windows containers.\n    type: \"object\"\n    x-go-name: \"PidsStats\"\n    x-nullable: true\n    properties:\n      current:\n        description: |\n          Current is the number of PIDs in the cgroup.\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 5\n      limit:\n        description: |\n          Limit is the hard limit on the number of pids in the cgroup.\n          A \"Limit\" of 0 means that there is no limit.\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: \"18446744073709551615\"\n\n  ContainerThrottlingData:\n    description: |\n      CPU throttling stats of the container.\n\n      This type is Linux-specific and omitted for Windows containers.\n    type: \"object\"\n    x-go-name: \"ThrottlingData\"\n    x-nullable: true\n    properties:\n      periods:\n        description: |\n          Number of periods with throttling active.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 0\n      throttled_periods:\n        description: |\n          Number of periods when the container hit its throttling limit.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 0\n      throttled_time:\n        description: |\n          Aggregated time (in nanoseconds) the container was throttled for.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 0\n\n  ContainerMemoryStats:\n    description: |\n      Aggregates all memory stats since container inception on Linux.\n      Windows returns stats for commit and private working set only.\n    type: \"object\"\n    x-go-name: \"MemoryStats\"\n    properties:\n      usage:\n        description: |\n          Current `res_counter` usage for memory.\n\n          This field is Linux-specific and omitted for Windows containers.\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 0\n      max_usage:\n        description: |\n          Maximum usage ever recorded.\n\n          This field is Linux-specific and only supported on cgroups v1.\n          It is omitted when using cgroups v2 and for Windows containers.\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 0\n      stats:\n        description: |\n          All the stats exported via memory.stat. when using cgroups v2.\n\n          This field is Linux-specific and omitted for Windows containers.\n        type: \"object\"\n        additionalProperties:\n          type: \"integer\"\n          format: \"uint64\"\n          x-nullable: true\n        example:\n          {\n            \"active_anon\": 1572864,\n            \"active_file\": 5115904,\n            \"anon\": 1572864,\n            \"anon_thp\": 0,\n            \"file\": 7626752,\n            \"file_dirty\": 0,\n            \"file_mapped\": 2723840,\n            \"file_writeback\": 0,\n            \"inactive_anon\": 0,\n            \"inactive_file\": 2510848,\n            \"kernel_stack\": 16384,\n            \"pgactivate\": 0,\n            \"pgdeactivate\": 0,\n            \"pgfault\": 2042,\n            \"pglazyfree\": 0,\n            \"pglazyfreed\": 0,\n            \"pgmajfault\": 45,\n            \"pgrefill\": 0,\n            \"pgscan\": 0,\n            \"pgsteal\": 0,\n            \"shmem\": 0,\n            \"slab\": 1180928,\n            \"slab_reclaimable\": 725576,\n            \"slab_unreclaimable\": 455352,\n            \"sock\": 0,\n            \"thp_collapse_alloc\": 0,\n            \"thp_fault_alloc\": 1,\n            \"unevictable\": 0,\n            \"workingset_activate\": 0,\n            \"workingset_nodereclaim\": 0,\n            \"workingset_refault\": 0\n          }\n      failcnt:\n        description: |\n          Number of times memory usage hits limits.\n\n          This field is Linux-specific and only supported on cgroups v1.\n          It is omitted when using cgroups v2 and for Windows containers.\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 0\n      limit:\n        description: |\n          This field is Linux-specific and omitted for Windows containers.\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 8217579520\n      commitbytes:\n        description: |\n          Committed bytes.\n\n          This field is Windows-specific and omitted for Linux containers.\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 0\n      commitpeakbytes:\n        description: |\n          Peak committed bytes.\n\n          This field is Windows-specific and omitted for Linux containers.\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 0\n      privateworkingset:\n        description: |\n          Private working set.\n\n          This field is Windows-specific and omitted for Linux containers.\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 0\n\n  ContainerNetworkStats:\n    description: |\n      Aggregates the network stats of one container\n    type: \"object\"\n    x-go-name: \"NetworkStats\"\n    x-nullable: true\n    properties:\n      rx_bytes:\n        description: |\n          Bytes received. Windows and Linux.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 5338\n      rx_packets:\n        description: |\n          Packets received. Windows and Linux.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 36\n      rx_errors:\n        description: |\n          Received errors. Not used on Windows.\n\n          This field is Linux-specific and always zero for Windows containers.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 0\n      rx_dropped:\n        description: |\n          Incoming packets dropped. Windows and Linux.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 0\n      tx_bytes:\n        description: |\n          Bytes sent. Windows and Linux.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 1200\n      tx_packets:\n        description: |\n          Packets sent. Windows and Linux.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 12\n      tx_errors:\n        description: |\n          Sent errors. Not used on Windows.\n\n          This field is Linux-specific and always zero for Windows containers.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 0\n      tx_dropped:\n        description: |\n          Outgoing packets dropped. Windows and Linux.\n        type: \"integer\"\n        format: \"uint64\"\n        example: 0\n      endpoint_id:\n        description: |\n          Endpoint ID. Not used on Linux.\n\n          This field is Windows-specific and omitted for Linux containers.\n        type: \"string\"\n        x-nullable: true\n      instance_id:\n        description: |\n          Instance ID. Not used on Linux.\n\n          This field is Windows-specific and omitted for Linux containers.\n        type: \"string\"\n        x-nullable: true\n\n  ContainerStorageStats:\n    description: |\n      StorageStats is the disk I/O stats for read/write on Windows.\n\n      This type is Windows-specific and omitted for Linux containers.\n    type: \"object\"\n    x-go-name: \"StorageStats\"\n    x-nullable: true\n    properties:\n      read_count_normalized:\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 7593984\n      read_size_bytes:\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 7593984\n      write_count_normalized:\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 7593984\n      write_size_bytes:\n        type: \"integer\"\n        format: \"uint64\"\n        x-nullable: true\n        example: 7593984\n\n  ContainerTopResponse:\n    type: \"object\"\n    x-go-name: \"TopResponse\"\n    title: \"ContainerTopResponse\"\n    description: |-\n      Container \"top\" response.\n    properties:\n      Titles:\n        description: \"The ps column titles\"\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          Titles:\n            - \"UID\"\n            - \"PID\"\n            - \"PPID\"\n            - \"C\"\n            - \"STIME\"\n            - \"TTY\"\n            - \"TIME\"\n            - \"CMD\"\n      Processes:\n        description: |-\n          Each process running in the container, where each process\n          is an array of values corresponding to the titles.\n        type: \"array\"\n        items:\n          type: \"array\"\n          items:\n            type: \"string\"\n        example:\n          Processes:\n            -\n              - \"root\"\n              - \"13642\"\n              - \"882\"\n              - \"0\"\n              - \"17:03\"\n              - \"pts/0\"\n              - \"00:00:00\"\n              - \"/bin/bash\"\n            -\n              - \"root\"\n              - \"13735\"\n              - \"13642\"\n              - \"0\"\n              - \"17:06\"\n              - \"pts/0\"\n              - \"00:00:00\"\n              - \"sleep 10\"\n\n  ContainerWaitResponse:\n    description: \"OK response to ContainerWait operation\"\n    type: \"object\"\n    x-go-name: \"WaitResponse\"\n    title: \"ContainerWaitResponse\"\n    required: [StatusCode]\n    properties:\n      StatusCode:\n        description: \"Exit code of the container\"\n        type: \"integer\"\n        format: \"int64\"\n        x-nullable: false\n      Error:\n        $ref: \"#/definitions/ContainerWaitExitError\"\n\n  ContainerWaitExitError:\n    description: \"container waiting error, if any\"\n    type: \"object\"\n    x-go-name: \"WaitExitError\"\n    properties:\n      Message:\n        description: \"Details of an error\"\n        type: \"string\"\n\n  SystemVersion:\n    type: \"object\"\n    description: |\n      Response of Engine API: GET \"/version\"\n    properties:\n      Platform:\n        type: \"object\"\n        required: [Name]\n        properties:\n          Name:\n            type: \"string\"\n      Components:\n        type: \"array\"\n        description: |\n          Information about system components\n        items:\n          type: \"object\"\n          x-go-name: ComponentVersion\n          required: [Name, Version]\n          properties:\n            Name:\n              description: |\n                Name of the component\n              type: \"string\"\n              example: \"Engine\"\n            Version:\n              description: |\n                Version of the component\n              type: \"string\"\n              x-nullable: false\n              example: \"27.0.1\"\n            Details:\n              description: |\n                Key/value pairs of strings with additional information about the\n                component. These values are intended for informational purposes\n                only, and their content is not defined, and not part of the API\n                specification.\n\n                These messages can be printed by the client as information to the user.\n              type: \"object\"\n              x-nullable: true\n      Version:\n        description: \"The version of the daemon\"\n        type: \"string\"\n        example: \"27.0.1\"\n      ApiVersion:\n        description: |\n          The default (and highest) API version that is supported by the daemon\n        type: \"string\"\n        example: \"1.47\"\n      MinAPIVersion:\n        description: |\n          The minimum API version that is supported by the daemon\n        type: \"string\"\n        example: \"1.24\"\n      GitCommit:\n        description: |\n          The Git commit of the source code that was used to build the daemon\n        type: \"string\"\n        example: \"48a66213fe\"\n      GoVersion:\n        description: |\n          The version Go used to compile the daemon, and the version of the Go\n          runtime in use.\n        type: \"string\"\n        example: \"go1.22.7\"\n      Os:\n        description: |\n          The operating system that the daemon is running on (\"linux\" or \"windows\")\n        type: \"string\"\n        example: \"linux\"\n      Arch:\n        description: |\n          The architecture that the daemon is running on\n        type: \"string\"\n        example: \"amd64\"\n      KernelVersion:\n        description: |\n          The kernel version (`uname -r`) that the daemon is running on.\n\n          This field is omitted when empty.\n        type: \"string\"\n        example: \"6.8.0-31-generic\"\n      Experimental:\n        description: |\n          Indicates if the daemon is started with experimental features enabled.\n\n          This field is omitted when empty / false.\n        type: \"boolean\"\n        example: true\n      BuildTime:\n        description: |\n          The date and time that the daemon was compiled.\n        type: \"string\"\n        example: \"2020-06-22T15:49:27.000000000+00:00\"\n\n  SystemInfo:\n    type: \"object\"\n    properties:\n      ID:\n        description: |\n          Unique identifier of the daemon.\n\n          <p><br /></p>\n\n          > **Note**: The format of the ID itself is not part of the API, and\n          > should not be considered stable.\n        type: \"string\"\n        example: \"7TRN:IPZB:QYBB:VPBQ:UMPP:KARE:6ZNR:XE6T:7EWV:PKF4:ZOJD:TPYS\"\n      Containers:\n        description: \"Total number of containers on the host.\"\n        type: \"integer\"\n        example: 14\n      ContainersRunning:\n        description: |\n          Number of containers with status `\"running\"`.\n        type: \"integer\"\n        example: 3\n      ContainersPaused:\n        description: |\n          Number of containers with status `\"paused\"`.\n        type: \"integer\"\n        example: 1\n      ContainersStopped:\n        description: |\n          Number of containers with status `\"stopped\"`.\n        type: \"integer\"\n        example: 10\n      Images:\n        description: |\n          Total number of images on the host.\n\n          Both _tagged_ and _untagged_ (dangling) images are counted.\n        type: \"integer\"\n        example: 508\n      Driver:\n        description: \"Name of the storage driver in use.\"\n        type: \"string\"\n        example: \"overlay2\"\n      DriverStatus:\n        description: |\n          Information specific to the storage driver, provided as\n          \"label\" / \"value\" pairs.\n\n          This information is provided by the storage driver, and formatted\n          in a way consistent with the output of `docker info` on the command\n          line.\n\n          <p><br /></p>\n\n          > **Note**: The information returned in this field, including the\n          > formatting of values and labels, should not be considered stable,\n          > and may change without notice.\n        type: \"array\"\n        items:\n          type: \"array\"\n          items:\n            type: \"string\"\n        example:\n          - [\"Backing Filesystem\", \"extfs\"]\n          - [\"Supports d_type\", \"true\"]\n          - [\"Native Overlay Diff\", \"true\"]\n      DockerRootDir:\n        description: |\n          Root directory of persistent Docker state.\n\n          Defaults to `/var/lib/docker` on Linux, and `C:\\ProgramData\\docker`\n          on Windows.\n        type: \"string\"\n        example: \"/var/lib/docker\"\n      Plugins:\n        $ref: \"#/definitions/PluginsInfo\"\n      MemoryLimit:\n        description: \"Indicates if the host has memory limit support enabled.\"\n        type: \"boolean\"\n        example: true\n      SwapLimit:\n        description: \"Indicates if the host has memory swap limit support enabled.\"\n        type: \"boolean\"\n        example: true\n      KernelMemoryTCP:\n        description: |\n          Indicates if the host has kernel memory TCP limit support enabled. This\n          field is omitted if not supported.\n\n          Kernel memory TCP limits are not supported when using cgroups v2, which\n          does not support the corresponding `memory.kmem.tcp.limit_in_bytes` cgroup.\n\n          **Deprecated**: This field is deprecated as kernel 6.12 has deprecated kernel memory TCP accounting.\n        type: \"boolean\"\n        example: true\n      CpuCfsPeriod:\n        description: |\n          Indicates if CPU CFS(Completely Fair Scheduler) period is supported by\n          the host.\n        type: \"boolean\"\n        example: true\n      CpuCfsQuota:\n        description: |\n          Indicates if CPU CFS(Completely Fair Scheduler) quota is supported by\n          the host.\n        type: \"boolean\"\n        example: true\n      CPUShares:\n        description: |\n          Indicates if CPU Shares limiting is supported by the host.\n        type: \"boolean\"\n        example: true\n      CPUSet:\n        description: |\n          Indicates if CPUsets (cpuset.cpus, cpuset.mems) are supported by the host.\n\n          See [cpuset(7)](https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt)\n        type: \"boolean\"\n        example: true\n      PidsLimit:\n        description: \"Indicates if the host kernel has PID limit support enabled.\"\n        type: \"boolean\"\n        example: true\n      OomKillDisable:\n        description: \"Indicates if OOM killer disable is supported on the host.\"\n        type: \"boolean\"\n      IPv4Forwarding:\n        description: \"Indicates IPv4 forwarding is enabled.\"\n        type: \"boolean\"\n        example: true\n      Debug:\n        description: |\n          Indicates if the daemon is running in debug-mode / with debug-level\n          logging enabled.\n        type: \"boolean\"\n        example: true\n      NFd:\n        description: |\n          The total number of file Descriptors in use by the daemon process.\n\n          This information is only returned if debug-mode is enabled.\n        type: \"integer\"\n        example: 64\n      NGoroutines:\n        description: |\n          The  number of goroutines that currently exist.\n\n          This information is only returned if debug-mode is enabled.\n        type: \"integer\"\n        example: 174\n      SystemTime:\n        description: |\n          Current system-time in [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)\n          format with nano-seconds.\n        type: \"string\"\n        example: \"2017-08-08T20:28:29.06202363Z\"\n      LoggingDriver:\n        description: |\n          The logging driver to use as a default for new containers.\n        type: \"string\"\n      CgroupDriver:\n        description: |\n          The driver to use for managing cgroups.\n        type: \"string\"\n        enum: [\"cgroupfs\", \"systemd\", \"none\"]\n        default: \"cgroupfs\"\n        example: \"cgroupfs\"\n      CgroupVersion:\n        description: |\n          The version of the cgroup.\n        type: \"string\"\n        enum: [\"1\", \"2\"]\n        default: \"1\"\n        example: \"1\"\n      NEventsListener:\n        description: \"Number of event listeners subscribed.\"\n        type: \"integer\"\n        example: 30\n      KernelVersion:\n        description: |\n          Kernel version of the host.\n\n          On Linux, this information obtained from `uname`. On Windows this\n          information is queried from the <kbd>HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\</kbd>\n          registry value, for example _\"10.0 14393 (14393.1198.amd64fre.rs1_release_sec.170427-1353)\"_.\n        type: \"string\"\n        example: \"6.8.0-31-generic\"\n      OperatingSystem:\n        description: |\n          Name of the host's operating system, for example: \"Ubuntu 24.04 LTS\"\n          or \"Windows Server 2016 Datacenter\"\n        type: \"string\"\n        example: \"Ubuntu 24.04 LTS\"\n      OSVersion:\n        description: |\n          Version of the host's operating system\n\n          <p><br /></p>\n\n          > **Note**: The information returned in this field, including its\n          > very existence, and the formatting of values, should not be considered\n          > stable, and may change without notice.\n        type: \"string\"\n        example: \"24.04\"\n      OSType:\n        description: |\n          Generic type of the operating system of the host, as returned by the\n          Go runtime (`GOOS`).\n\n          Currently returned values are \"linux\" and \"windows\". A full list of\n          possible values can be found in the [Go documentation](https://go.dev/doc/install/source#environment).\n        type: \"string\"\n        example: \"linux\"\n      Architecture:\n        description: |\n          Hardware architecture of the host, as returned by the Go runtime\n          (`GOARCH`).\n\n          A full list of possible values can be found in the [Go documentation](https://go.dev/doc/install/source#environment).\n        type: \"string\"\n        example: \"x86_64\"\n      NCPU:\n        description: |\n          The number of logical CPUs usable by the daemon.\n\n          The number of available CPUs is checked by querying the operating\n          system when the daemon starts. Changes to operating system CPU\n          allocation after the daemon is started are not reflected.\n        type: \"integer\"\n        example: 4\n      MemTotal:\n        description: |\n          Total amount of physical memory available on the host, in bytes.\n        type: \"integer\"\n        format: \"int64\"\n        example: 2095882240\n\n      IndexServerAddress:\n        description: |\n          Address / URL of the index server that is used for image search,\n          and as a default for user authentication for Docker Hub and Docker Cloud.\n        default: \"https://index.docker.io/v1/\"\n        type: \"string\"\n        example: \"https://index.docker.io/v1/\"\n      RegistryConfig:\n        $ref: \"#/definitions/RegistryServiceConfig\"\n      GenericResources:\n        $ref: \"#/definitions/GenericResources\"\n      HttpProxy:\n        description: |\n          HTTP-proxy configured for the daemon. This value is obtained from the\n          [`HTTP_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable.\n          Credentials ([user info component](https://tools.ietf.org/html/rfc3986#section-3.2.1)) in the proxy URL\n          are masked in the API response.\n\n          Containers do not automatically inherit this configuration.\n        type: \"string\"\n        example: \"http://xxxxx:xxxxx@proxy.corp.example.com:8080\"\n      HttpsProxy:\n        description: |\n          HTTPS-proxy configured for the daemon. This value is obtained from the\n          [`HTTPS_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html) environment variable.\n          Credentials ([user info component](https://tools.ietf.org/html/rfc3986#section-3.2.1)) in the proxy URL\n          are masked in the API response.\n\n          Containers do not automatically inherit this configuration.\n        type: \"string\"\n        example: \"https://xxxxx:xxxxx@proxy.corp.example.com:4443\"\n      NoProxy:\n        description: |\n          Comma-separated list of domain extensions for which no proxy should be\n          used. This value is obtained from the [`NO_PROXY`](https://www.gnu.org/software/wget/manual/html_node/Proxies.html)\n          environment variable.\n\n          Containers do not automatically inherit this configuration.\n        type: \"string\"\n        example: \"*.local, 169.254/16\"\n      Name:\n        description: \"Hostname of the host.\"\n        type: \"string\"\n        example: \"node5.corp.example.com\"\n      Labels:\n        description: |\n          User-defined labels (key/value metadata) as set on the daemon.\n\n          <p><br /></p>\n\n          > **Note**: When part of a Swarm, nodes can both have _daemon_ labels,\n          > set through the daemon configuration, and _node_ labels, set from a\n          > manager node in the Swarm. Node labels are not included in this\n          > field. Node labels can be retrieved using the `/nodes/(id)` endpoint\n          > on a manager node in the Swarm.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example: [\"storage=ssd\", \"production\"]\n      ExperimentalBuild:\n        description: |\n          Indicates if experimental features are enabled on the daemon.\n        type: \"boolean\"\n        example: true\n      ServerVersion:\n        description: |\n          Version string of the daemon.\n        type: \"string\"\n        example: \"27.0.1\"\n      Runtimes:\n        description: |\n          List of [OCI compliant](https://github.com/opencontainers/runtime-spec)\n          runtimes configured on the daemon. Keys hold the \"name\" used to\n          reference the runtime.\n\n          The Docker daemon relies on an OCI compliant runtime (invoked via the\n          `containerd` daemon) as its interface to the Linux kernel namespaces,\n          cgroups, and SELinux.\n\n          The default runtime is `runc`, and automatically configured. Additional\n          runtimes can be configured by the user and will be listed here.\n        type: \"object\"\n        additionalProperties:\n          $ref: \"#/definitions/Runtime\"\n        default:\n          runc:\n            path: \"runc\"\n        example:\n          runc:\n            path: \"runc\"\n          runc-master:\n            path: \"/go/bin/runc\"\n          custom:\n            path: \"/usr/local/bin/my-oci-runtime\"\n            runtimeArgs: [\"--debug\", \"--systemd-cgroup=false\"]\n      DefaultRuntime:\n        description: |\n          Name of the default OCI runtime that is used when starting containers.\n\n          The default can be overridden per-container at create time.\n        type: \"string\"\n        default: \"runc\"\n        example: \"runc\"\n      Swarm:\n        $ref: \"#/definitions/SwarmInfo\"\n      LiveRestoreEnabled:\n        description: |\n          Indicates if live restore is enabled.\n\n          If enabled, containers are kept running when the daemon is shutdown\n          or upon daemon start if running containers are detected.\n        type: \"boolean\"\n        default: false\n        example: false\n      Isolation:\n        description: |\n          Represents the isolation technology to use as a default for containers.\n          The supported values are platform-specific.\n\n          If no isolation value is specified on daemon start, on Windows client,\n          the default is `hyperv`, and on Windows server, the default is `process`.\n\n          This option is currently not used on other platforms.\n        default: \"default\"\n        type: \"string\"\n        enum:\n          - \"default\"\n          - \"hyperv\"\n          - \"process\"\n          - \"\"\n      InitBinary:\n        description: |\n          Name and, optional, path of the `docker-init` binary.\n\n          If the path is omitted, the daemon searches the host's `$PATH` for the\n          binary and uses the first result.\n        type: \"string\"\n        example: \"docker-init\"\n      ContainerdCommit:\n        $ref: \"#/definitions/Commit\"\n      RuncCommit:\n        $ref: \"#/definitions/Commit\"\n      InitCommit:\n        $ref: \"#/definitions/Commit\"\n      SecurityOptions:\n        description: |\n          List of security features that are enabled on the daemon, such as\n          apparmor, seccomp, SELinux, user-namespaces (userns), rootless and\n          no-new-privileges.\n\n          Additional configuration options for each security feature may\n          be present, and are included as a comma-separated list of key/value\n          pairs.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"name=apparmor\"\n          - \"name=seccomp,profile=default\"\n          - \"name=selinux\"\n          - \"name=userns\"\n          - \"name=rootless\"\n      ProductLicense:\n        description: |\n          Reports a summary of the product license on the daemon.\n\n          If a commercial license has been applied to the daemon, information\n          such as number of nodes, and expiration are included.\n        type: \"string\"\n        example: \"Community Engine\"\n      DefaultAddressPools:\n        description: |\n          List of custom default address pools for local networks, which can be\n          specified in the daemon.json file or dockerd option.\n\n          Example: a Base \"10.10.0.0/16\" with Size 24 will define the set of 256\n          10.10.[0-255].0/24 address pools.\n        type: \"array\"\n        items:\n          type: \"object\"\n          properties:\n            Base:\n              description: \"The network address in CIDR format\"\n              type: \"string\"\n              example: \"10.10.0.0/16\"\n            Size:\n              description: \"The network pool size\"\n              type: \"integer\"\n              example: \"24\"\n      FirewallBackend:\n        $ref: \"#/definitions/FirewallInfo\"\n      DiscoveredDevices:\n        description: |\n          List of devices discovered by device drivers.\n\n          Each device includes information about its source driver, kind, name,\n          and additional driver-specific attributes.\n        type: \"array\"\n        items:\n          $ref: \"#/definitions/DeviceInfo\"\n      Warnings:\n        description: |\n          List of warnings / informational messages about missing features, or\n          issues related to the daemon configuration.\n\n          These messages can be printed by the client as information to the user.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"WARNING: No memory limit support\"\n      CDISpecDirs:\n        description: |\n          List of directories where (Container Device Interface) CDI\n          specifications are located.\n\n          These specifications define vendor-specific modifications to an OCI\n          runtime specification for a container being created.\n\n          An empty list indicates that CDI device injection is disabled.\n\n          Note that since using CDI device injection requires the daemon to have\n          experimental enabled. For non-experimental daemons an empty list will\n          always be returned.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"/etc/cdi\"\n          - \"/var/run/cdi\"\n      Containerd:\n        $ref: \"#/definitions/ContainerdInfo\"\n\n  ContainerdInfo:\n    description: |\n      Information for connecting to the containerd instance that is used by the daemon.\n      This is included for debugging purposes only.\n    type: \"object\"\n    x-nullable: true\n    properties:\n      Address:\n        description: \"The address of the containerd socket.\"\n        type: \"string\"\n        example: \"/run/containerd/containerd.sock\"\n      Namespaces:\n        description: |\n          The namespaces that the daemon uses for running containers and\n          plugins in containerd. These namespaces can be configured in the\n          daemon configuration, and are considered to be used exclusively\n          by the daemon, Tampering with the containerd instance may cause\n          unexpected behavior.\n\n          As these namespaces are considered to be exclusively accessed\n          by the daemon, it is not recommended to change these values,\n          or to change them to a value that is used by other systems,\n          such as cri-containerd.\n        type: \"object\"\n        properties:\n          Containers:\n            description: |\n              The default containerd namespace used for containers managed\n              by the daemon.\n\n              The default namespace for containers is \"moby\", but will be\n              suffixed with the `<uid>.<gid>` of the remapped `root` if\n              user-namespaces are enabled and the containerd image-store\n              is used.\n            type: \"string\"\n            default: \"moby\"\n            example: \"moby\"\n          Plugins:\n            description: |\n              The default containerd namespace used for plugins managed by\n              the daemon.\n\n              The default namespace for plugins is \"plugins.moby\", but will be\n              suffixed with the `<uid>.<gid>` of the remapped `root` if\n              user-namespaces are enabled and the containerd image-store\n              is used.\n            type: \"string\"\n            default: \"plugins.moby\"\n            example: \"plugins.moby\"\n\n  FirewallInfo:\n    description: |\n      Information about the daemon's firewalling configuration.\n\n      This field is currently only used on Linux, and omitted on other platforms.\n    type: \"object\"\n    x-nullable: true\n    properties:\n      Driver:\n        description: |\n          The name of the firewall backend driver.\n        type: \"string\"\n        example: \"nftables\"\n      Info:\n        description: |\n          Information about the firewall backend, provided as\n          \"label\" / \"value\" pairs.\n\n          <p><br /></p>\n\n          > **Note**: The information returned in this field, including the\n          > formatting of values and labels, should not be considered stable,\n          > and may change without notice.\n        type: \"array\"\n        items:\n          type: \"array\"\n          items:\n            type: \"string\"\n        example:\n          - [\"ReloadedAt\", \"2025-01-01T00:00:00Z\"]\n\n  # PluginsInfo is a temp struct holding Plugins name\n  # registered with docker daemon. It is used by Info struct\n  PluginsInfo:\n    description: |\n      Available plugins per type.\n\n      <p><br /></p>\n\n      > **Note**: Only unmanaged (V1) plugins are included in this list.\n      > V1 plugins are \"lazily\" loaded, and are not returned in this list\n      > if there is no resource using the plugin.\n    type: \"object\"\n    properties:\n      Volume:\n        description: \"Names of available volume-drivers, and network-driver plugins.\"\n        type: \"array\"\n        items:\n          type: \"string\"\n        example: [\"local\"]\n      Network:\n        description: \"Names of available network-drivers, and network-driver plugins.\"\n        type: \"array\"\n        items:\n          type: \"string\"\n        example: [\"bridge\", \"host\", \"ipvlan\", \"macvlan\", \"null\", \"overlay\"]\n      Authorization:\n        description: \"Names of available authorization plugins.\"\n        type: \"array\"\n        items:\n          type: \"string\"\n        example: [\"img-authz-plugin\", \"hbm\"]\n      Log:\n        description: \"Names of available logging-drivers, and logging-driver plugins.\"\n        type: \"array\"\n        items:\n          type: \"string\"\n        example: [\"awslogs\", \"fluentd\", \"gcplogs\", \"gelf\", \"journald\", \"json-file\", \"splunk\", \"syslog\"]\n\n\n  RegistryServiceConfig:\n    description: |\n      RegistryServiceConfig stores daemon registry services configuration.\n    type: \"object\"\n    x-nullable: true\n    properties:\n      InsecureRegistryCIDRs:\n        description: |\n          List of IP ranges of insecure registries, using the CIDR syntax\n          ([RFC 4632](https://tools.ietf.org/html/4632)). Insecure registries\n          accept un-encrypted (HTTP) and/or untrusted (HTTPS with certificates\n          from unknown CAs) communication.\n\n          By default, local registries (`::1/128` and `127.0.0.0/8`) are configured as\n          insecure. All other registries are secure. Communicating with an\n          insecure registry is not possible if the daemon assumes that registry\n          is secure.\n\n          This configuration override this behavior, insecure communication with\n          registries whose resolved IP address is within the subnet described by\n          the CIDR syntax.\n\n          Registries can also be marked insecure by hostname. Those registries\n          are listed under `IndexConfigs` and have their `Secure` field set to\n          `false`.\n\n          > **Warning**: Using this option can be useful when running a local\n          > registry, but introduces security vulnerabilities. This option\n          > should therefore ONLY be used for testing purposes. For increased\n          > security, users should add their CA to their system's list of trusted\n          > CAs instead of enabling this option.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example: [\"::1/128\", \"127.0.0.0/8\"]\n      IndexConfigs:\n        type: \"object\"\n        additionalProperties:\n          $ref: \"#/definitions/IndexInfo\"\n        example:\n          \"127.0.0.1:5000\":\n            \"Name\": \"127.0.0.1:5000\"\n            \"Mirrors\": []\n            \"Secure\": false\n            \"Official\": false\n          \"[2001:db8:a0b:12f0::1]:80\":\n            \"Name\": \"[2001:db8:a0b:12f0::1]:80\"\n            \"Mirrors\": []\n            \"Secure\": false\n            \"Official\": false\n          \"docker.io\":\n            Name: \"docker.io\"\n            Mirrors: [\"https://hub-mirror.corp.example.com:5000/\"]\n            Secure: true\n            Official: true\n          \"registry.internal.corp.example.com:3000\":\n            Name: \"registry.internal.corp.example.com:3000\"\n            Mirrors: []\n            Secure: false\n            Official: false\n      Mirrors:\n        description: |\n          List of registry URLs that act as a mirror for the official\n          (`docker.io`) registry.\n\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"https://hub-mirror.corp.example.com:5000/\"\n          - \"https://[2001:db8:a0b:12f0::1]/\"\n\n  IndexInfo:\n    description:\n      IndexInfo contains information about a registry.\n    type: \"object\"\n    x-nullable: true\n    properties:\n      Name:\n        description: |\n          Name of the registry, such as \"docker.io\".\n        type: \"string\"\n        example: \"docker.io\"\n      Mirrors:\n        description: |\n          List of mirrors, expressed as URIs.\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"https://hub-mirror.corp.example.com:5000/\"\n          - \"https://registry-2.docker.io/\"\n          - \"https://registry-3.docker.io/\"\n      Secure:\n        description: |\n          Indicates if the registry is part of the list of insecure\n          registries.\n\n          If `false`, the registry is insecure. Insecure registries accept\n          un-encrypted (HTTP) and/or untrusted (HTTPS with certificates from\n          unknown CAs) communication.\n\n          > **Warning**: Insecure registries can be useful when running a local\n          > registry. However, because its use creates security vulnerabilities\n          > it should ONLY be enabled for testing purposes. For increased\n          > security, users should add their CA to their system's list of\n          > trusted CAs instead of enabling this option.\n        type: \"boolean\"\n        example: true\n      Official:\n        description: |\n          Indicates whether this is an official registry (i.e., Docker Hub / docker.io)\n        type: \"boolean\"\n        example: true\n\n  Runtime:\n    description: |\n      Runtime describes an [OCI compliant](https://github.com/opencontainers/runtime-spec)\n      runtime.\n\n      The runtime is invoked by the daemon via the `containerd` daemon. OCI\n      runtimes act as an interface to the Linux kernel namespaces, cgroups,\n      and SELinux.\n    type: \"object\"\n    properties:\n      path:\n        description: |\n          Name and, optional, path, of the OCI executable binary.\n\n          If the path is omitted, the daemon searches the host's `$PATH` for the\n          binary and uses the first result.\n        type: \"string\"\n        example: \"/usr/local/bin/my-oci-runtime\"\n      runtimeArgs:\n        description: |\n          List of command-line arguments to pass to the runtime when invoked.\n        type: \"array\"\n        x-nullable: true\n        items:\n          type: \"string\"\n        example: [\"--debug\", \"--systemd-cgroup=false\"]\n      status:\n        description: |\n          Information specific to the runtime.\n\n          While this API specification does not define data provided by runtimes,\n          the following well-known properties may be provided by runtimes:\n\n          `org.opencontainers.runtime-spec.features`: features structure as defined\n          in the [OCI Runtime Specification](https://github.com/opencontainers/runtime-spec/blob/main/features.md),\n          in a JSON string representation.\n\n          <p><br /></p>\n\n          > **Note**: The information returned in this field, including the\n          > formatting of values and labels, should not be considered stable,\n          > and may change without notice.\n        type: \"object\"\n        x-nullable: true\n        additionalProperties:\n          type: \"string\"\n        example:\n          \"org.opencontainers.runtime-spec.features\": \"{\\\"ociVersionMin\\\":\\\"1.0.0\\\",\\\"ociVersionMax\\\":\\\"1.1.0\\\",\\\"...\\\":\\\"...\\\"}\"\n\n  Commit:\n    description: |\n      Commit holds the Git-commit (SHA1) that a binary was built from, as\n      reported in the version-string of external tools, such as `containerd`,\n      or `runC`.\n    type: \"object\"\n    properties:\n      ID:\n        description: \"Actual commit ID of external tool.\"\n        type: \"string\"\n        example: \"cfb82a876ecc11b5ca0977d1733adbe58599088a\"\n\n  SwarmInfo:\n    description: |\n      Represents generic information about swarm.\n    type: \"object\"\n    properties:\n      NodeID:\n        description: \"Unique identifier of for this node in the swarm.\"\n        type: \"string\"\n        default: \"\"\n        example: \"k67qz4598weg5unwwffg6z1m1\"\n      NodeAddr:\n        description: |\n          IP address at which this node can be reached by other nodes in the\n          swarm.\n        type: \"string\"\n        default: \"\"\n        example: \"10.0.0.46\"\n      LocalNodeState:\n        $ref: \"#/definitions/LocalNodeState\"\n      ControlAvailable:\n        type: \"boolean\"\n        default: false\n        example: true\n      Error:\n        type: \"string\"\n        default: \"\"\n      RemoteManagers:\n        description: |\n          List of ID's and addresses of other managers in the swarm.\n        type: \"array\"\n        default: null\n        x-nullable: true\n        items:\n          $ref: \"#/definitions/PeerNode\"\n        example:\n          - NodeID: \"71izy0goik036k48jg985xnds\"\n            Addr: \"10.0.0.158:2377\"\n          - NodeID: \"79y6h1o4gv8n120drcprv5nmc\"\n            Addr: \"10.0.0.159:2377\"\n          - NodeID: \"k67qz4598weg5unwwffg6z1m1\"\n            Addr: \"10.0.0.46:2377\"\n      Nodes:\n        description: \"Total number of nodes in the swarm.\"\n        type: \"integer\"\n        x-nullable: true\n        example: 4\n      Managers:\n        description: \"Total number of managers in the swarm.\"\n        type: \"integer\"\n        x-nullable: true\n        example: 3\n      Cluster:\n        $ref: \"#/definitions/ClusterInfo\"\n\n  LocalNodeState:\n    description: \"Current local status of this node.\"\n    type: \"string\"\n    default: \"\"\n    enum:\n      - \"\"\n      - \"inactive\"\n      - \"pending\"\n      - \"active\"\n      - \"error\"\n      - \"locked\"\n    example: \"active\"\n\n  PeerNode:\n    description: \"Represents a peer-node in the swarm\"\n    type: \"object\"\n    properties:\n      NodeID:\n        description: \"Unique identifier of for this node in the swarm.\"\n        type: \"string\"\n      Addr:\n        description: |\n          IP address and ports at which this node can be reached.\n        type: \"string\"\n\n  NetworkAttachmentConfig:\n    description: |\n      Specifies how a service should be attached to a particular network.\n    type: \"object\"\n    properties:\n      Target:\n        description: |\n          The target network for attachment. Must be a network name or ID.\n        type: \"string\"\n      Aliases:\n        description: |\n          Discoverable alternate names for the service on this network.\n        type: \"array\"\n        items:\n          type: \"string\"\n      DriverOpts:\n        description: |\n          Driver attachment options for the network target.\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n\n  EventActor:\n    description: |\n      Actor describes something that generates events, like a container, network,\n      or a volume.\n    type: \"object\"\n    properties:\n      ID:\n        description: \"The ID of the object emitting the event\"\n        type: \"string\"\n        example: \"ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743\"\n      Attributes:\n        description: |\n          Various key/value attributes of the object, depending on its type.\n        type: \"object\"\n        additionalProperties:\n          type: \"string\"\n        example:\n          com.example.some-label: \"some-label-value\"\n          image: \"alpine:latest\"\n          name: \"my-container\"\n\n  EventMessage:\n    description: |\n      EventMessage represents the information an event contains.\n    type: \"object\"\n    title: \"SystemEventsResponse\"\n    properties:\n      Type:\n        description: \"The type of object emitting the event\"\n        type: \"string\"\n        enum: [\"builder\", \"config\", \"container\", \"daemon\", \"image\", \"network\", \"node\", \"plugin\", \"secret\", \"service\", \"volume\"]\n        example: \"container\"\n      Action:\n        description: \"The type of event\"\n        type: \"string\"\n        example: \"create\"\n      Actor:\n        $ref: \"#/definitions/EventActor\"\n      scope:\n        description: |\n          Scope of the event. Engine events are `local` scope. Cluster (Swarm)\n          events are `swarm` scope.\n        type: \"string\"\n        enum: [\"local\", \"swarm\"]\n      time:\n        description: \"Timestamp of event\"\n        type: \"integer\"\n        format: \"int64\"\n        example: 1629574695\n      timeNano:\n        description: \"Timestamp of event, with nanosecond accuracy\"\n        type: \"integer\"\n        format: \"int64\"\n        example: 1629574695515050031\n\n  OCIDescriptor:\n    type: \"object\"\n    x-go-name: Descriptor\n    description: |\n      A descriptor struct containing digest, media type, and size, as defined in\n      the [OCI Content Descriptors Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/descriptor.md).\n    properties:\n      mediaType:\n        description: |\n          The media type of the object this schema refers to.\n        type: \"string\"\n        example: \"application/vnd.oci.image.manifest.v1+json\"\n      digest:\n        description: |\n          The digest of the targeted content.\n        type: \"string\"\n        example: \"sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96\"\n      size:\n        description: |\n          The size in bytes of the blob.\n        type: \"integer\"\n        format: \"int64\"\n        example: 424\n      urls:\n        description: |-\n          List of URLs from which this object MAY be downloaded.\n        type: \"array\"\n        items:\n          type: \"string\"\n          format: \"uri\"\n        x-nullable: true\n      annotations:\n        description: |-\n          Arbitrary metadata relating to the targeted content.\n        type: \"object\"\n        x-nullable: true\n        additionalProperties:\n          type: \"string\"\n        example:\n          \"com.docker.official-images.bashbrew.arch\": \"amd64\"\n          \"org.opencontainers.image.base.digest\": \"sha256:0d0ef5c914d3ea700147da1bd050c59edb8bb12ca312f3800b29d7c8087eabd8\"\n          \"org.opencontainers.image.base.name\": \"scratch\"\n          \"org.opencontainers.image.created\": \"2025-01-27T00:00:00Z\"\n          \"org.opencontainers.image.revision\": \"9fabb4bad5138435b01857e2fe9363e2dc5f6a79\"\n          \"org.opencontainers.image.source\": \"https://git.launchpad.net/cloud-images/+oci/ubuntu-base\"\n          \"org.opencontainers.image.url\": \"https://hub.docker.com/_/ubuntu\"\n          \"org.opencontainers.image.version\": \"24.04\"\n      data:\n        type: string\n        x-nullable: true\n        description: |-\n          Data is an embedding of the targeted content. This is encoded as a base64\n          string when marshalled to JSON (automatically, by encoding/json). If\n          present, Data can be used directly to avoid fetching the targeted content.\n        example: null\n      platform:\n        $ref: \"#/definitions/OCIPlatform\"\n      artifactType:\n        description: |-\n          ArtifactType is the IANA media type of this artifact.\n        type: \"string\"\n        x-nullable: true\n        example: null\n\n  OCIPlatform:\n    type: \"object\"\n    x-go-name: Platform\n    x-nullable: true\n    description: |\n      Describes the platform which the image in the manifest runs on, as defined\n      in the [OCI Image Index Specification](https://github.com/opencontainers/image-spec/blob/v1.0.1/image-index.md).\n    properties:\n      architecture:\n        description: |\n          The CPU architecture, for example `amd64` or `ppc64`.\n        type: \"string\"\n        example: \"arm\"\n      os:\n        description: |\n          The operating system, for example `linux` or `windows`.\n        type: \"string\"\n        example: \"windows\"\n      os.version:\n        description: |\n          Optional field specifying the operating system version, for example on\n          Windows `10.0.19041.1165`.\n        type: \"string\"\n        example: \"10.0.19041.1165\"\n      os.features:\n        description: |\n          Optional field specifying an array of strings, each listing a required\n          OS feature (for example on Windows `win32k`).\n        type: \"array\"\n        items:\n          type: \"string\"\n        example:\n          - \"win32k\"\n      variant:\n        description: |\n          Optional field specifying a variant of the CPU, for example `v7` to\n          specify ARMv7 when architecture is `arm`.\n        type: \"string\"\n        example: \"v7\"\n\n  DistributionInspect:\n    type: \"object\"\n    x-go-name: DistributionInspect\n    title: \"DistributionInspectResponse\"\n    required: [Descriptor, Platforms]\n    description: |\n      Describes the result obtained from contacting the registry to retrieve\n      image metadata.\n    properties:\n      Descriptor:\n        $ref: \"#/definitions/OCIDescriptor\"\n      Platforms:\n        type: \"array\"\n        description: |\n          An array containing all platforms supported by the image.\n        items:\n          $ref: \"#/definitions/OCIPlatform\"\n\n  ClusterVolume:\n    type: \"object\"\n    description: |\n      Options and information specific to, and only present on, Swarm CSI\n      cluster volumes.\n    properties:\n      ID:\n        type: \"string\"\n        description: |\n          The Swarm ID of this volume. Because cluster volumes are Swarm\n          objects, they have an ID, unlike non-cluster volumes. This ID can\n          be used to refer to the Volume instead of the name.\n      Version:\n        $ref: \"#/definitions/ObjectVersion\"\n      CreatedAt:\n        type: \"string\"\n        format: \"dateTime\"\n      UpdatedAt:\n        type: \"string\"\n        format: \"dateTime\"\n      Spec:\n        $ref: \"#/definitions/ClusterVolumeSpec\"\n      Info:\n        type: \"object\"\n        description: |\n          Information about the global status of the volume.\n        properties:\n          CapacityBytes:\n            type: \"integer\"\n            format: \"int64\"\n            description: |\n              The capacity of the volume in bytes. A value of 0 indicates that\n              the capacity is unknown.\n          VolumeContext:\n            type: \"object\"\n            description: |\n              A map of strings to strings returned from the storage plugin when\n              the volume is created.\n            additionalProperties:\n              type: \"string\"\n          VolumeID:\n            type: \"string\"\n            description: |\n              The ID of the volume as returned by the CSI storage plugin. This\n              is distinct from the volume's ID as provided by Docker. This ID\n              is never used by the user when communicating with Docker to refer\n              to this volume. If the ID is blank, then the Volume has not been\n              successfully created in the plugin yet.\n          AccessibleTopology:\n            type: \"array\"\n            description: |\n              The topology this volume is actually accessible from.\n            items:\n              $ref: \"#/definitions/Topology\"\n      PublishStatus:\n        type: \"array\"\n        description: |\n          The status of the volume as it pertains to its publishing and use on\n          specific nodes\n        items:\n          type: \"object\"\n          properties:\n            NodeID:\n              type: \"string\"\n              description: |\n                The ID of the Swarm node the volume is published on.\n            State:\n              type: \"string\"\n              description: |\n                The published state of the volume.\n                * `pending-publish` The volume should be published to this node, but the call to the controller plugin to do so has not yet been successfully completed.\n                * `published` The volume is published successfully to the node.\n                * `pending-node-unpublish` The volume should be unpublished from the node, and the manager is awaiting confirmation from the worker that it has done so.\n                * `pending-controller-unpublish` The volume is successfully unpublished from the node, but has not yet been successfully unpublished on the controller.\n              enum:\n                - \"pending-publish\"\n                - \"published\"\n                - \"pending-node-unpublish\"\n                - \"pending-controller-unpublish\"\n            PublishContext:\n              type: \"object\"\n              description: |\n                A map of strings to strings returned by the CSI controller\n                plugin when a volume is published.\n              additionalProperties:\n                type: \"string\"\n\n  ClusterVolumeSpec:\n    type: \"object\"\n    description: |\n      Cluster-specific options used to create the volume.\n    properties:\n      Group:\n        type: \"string\"\n        description: |\n          Group defines the volume group of this volume. Volumes belonging to\n          the same group can be referred to by group name when creating\n          Services.  Referring to a volume by group instructs Swarm to treat\n          volumes in that group interchangeably for the purpose of scheduling.\n          Volumes with an empty string for a group technically all belong to\n          the same, emptystring group.\n      AccessMode:\n        type: \"object\"\n        description: |\n          Defines how the volume is used by tasks.\n        properties:\n          Scope:\n            type: \"string\"\n            description: |\n              The set of nodes this volume can be used on at one time.\n              - `single` The volume may only be scheduled to one node at a time.\n              - `multi` the volume may be scheduled to any supported number of nodes at a time.\n            default: \"single\"\n            enum: [\"single\", \"multi\"]\n            x-nullable: false\n          Sharing:\n            type: \"string\"\n            description: |\n              The number and way that different tasks can use this volume\n              at one time.\n              - `none` The volume may only be used by one task at a time.\n              - `readonly` The volume may be used by any number of tasks, but they all must mount the volume as readonly\n              - `onewriter` The volume may be used by any number of tasks, but only one may mount it as read/write.\n              - `all` The volume may have any number of readers and writers.\n            default: \"none\"\n            enum: [\"none\", \"readonly\", \"onewriter\", \"all\"]\n            x-nullable: false\n          MountVolume:\n            type: \"object\"\n            description: |\n              Options for using this volume as a Mount-type volume.\n\n                  Either MountVolume or BlockVolume, but not both, must be\n                  present.\n                properties:\n                  FsType:\n                    type: \"string\"\n                    description: |\n                      Specifies the filesystem type for the mount volume.\n                      Optional.\n                  MountFlags:\n                    type: \"array\"\n                    description: |\n                      Flags to pass when mounting the volume. Optional.\n                    items:\n                      type: \"string\"\n              BlockVolume:\n                type: \"object\"\n                description: |\n                  Options for using this volume as a Block-type volume.\n                  Intentionally empty.\n          Secrets:\n            type: \"array\"\n            description: |\n              Swarm Secrets that are passed to the CSI storage plugin when\n              operating on this volume.\n            items:\n              type: \"object\"\n              description: |\n                One cluster volume secret entry. Defines a key-value pair that\n                is passed to the plugin.\n              properties:\n                Key:\n                  type: \"string\"\n                  description: |\n                    Key is the name of the key of the key-value pair passed to\n                    the plugin.\n                Secret:\n                  type: \"string\"\n                  description: |\n                    Secret is the swarm Secret object from which to read data.\n                    This can be a Secret name or ID. The Secret data is\n                    retrieved by swarm and used as the value of the key-value\n                    pair passed to the plugin.\n          AccessibilityRequirements:\n            type: \"object\"\n            description: |\n              Requirements for the accessible topology of the volume. These\n              fields are optional. For an in-depth description of what these\n              fields mean, see the CSI specification.\n            properties:\n              Requisite:\n                type: \"array\"\n                description: |\n                  A list of required topologies, at least one of which the\n                  volume must be accessible from.\n                items:\n                  $ref: \"#/definitions/Topology\"\n              Preferred:\n                type: \"array\"\n                description: |\n                  A list of topologies that the volume should attempt to be\n                  provisioned in.\n                items:\n                  $ref: \"#/definitions/Topology\"\n          CapacityRange:\n            type: \"object\"\n            description: |\n              The desired capacity that the volume should be created with. If\n              empty, the plugin will decide the capacity.\n            properties:\n              RequiredBytes:\n                type: \"integer\"\n                format: \"int64\"\n                description: |\n                  The volume must be at least this big. The value of 0\n                  indicates an unspecified minimum\n              LimitBytes:\n                type: \"integer\"\n                format: \"int64\"\n                description: |\n                  The volume must not be bigger than this. The value of 0\n                  indicates an unspecified maximum.\n          Availability:\n            type: \"string\"\n            description: |\n              The availability of the volume for use in tasks.\n              - `active` The volume is fully available for scheduling on the cluster\n              - `pause` No new workloads should use the volume, but existing workloads are not stopped.\n              - `drain` All workloads using this volume should be stopped and rescheduled, and no new ones should be started.\n            default: \"active\"\n            x-nullable: false\n            enum:\n              - \"active\"\n              - \"pause\"\n              - \"drain\"\n\n  Topology:\n    description: |\n      A map of topological domains to topological segments. For in depth\n      details, see documentation for the Topology object in the CSI\n      specification.\n    type: \"object\"\n    additionalProperties:\n      type: \"string\"\n\n  ImageManifestSummary:\n    x-go-name: \"ManifestSummary\"\n    description: |\n      ImageManifestSummary represents a summary of an image manifest.\n    type: \"object\"\n    required: [\"ID\", \"Descriptor\", \"Available\", \"Size\", \"Kind\"]\n    properties:\n      ID:\n        description: |\n          ID is the content-addressable ID of an image and is the same as the\n          digest of the image manifest.\n        type: \"string\"\n        example: \"sha256:95869fbcf224d947ace8d61d0e931d49e31bb7fc67fffbbe9c3198c33aa8e93f\"\n      Descriptor:\n        $ref: \"#/definitions/OCIDescriptor\"\n      Available:\n        description: Indicates whether all the child content (image config, layers) is fully available locally.\n        type: \"boolean\"\n        example: true\n      Size:\n        type: \"object\"\n        x-nullable: false\n        required: [\"Content\", \"Total\"]\n        properties:\n          Total:\n            type: \"integer\"\n            format: \"int64\"\n            example: 8213251\n            description: |\n              Total is the total size (in bytes) of all the locally present\n              data (both distributable and non-distributable) that's related to\n              this manifest and its children.\n              This equal to the sum of [Content] size AND all the sizes in the\n              [Size] struct present in the Kind-specific data struct.\n              For example, for an image kind (Kind == \"image\")\n              this would include the size of the image content and unpacked\n              image snapshots ([Size.Content] + [ImageData.Size.Unpacked]).\n          Content:\n            description: |\n              Content is the size (in bytes) of all the locally present\n              content in the content store (e.g. image config, layers)\n              referenced by this manifest and its children.\n              This only includes blobs in the content store.\n            type: \"integer\"\n            format: \"int64\"\n            example: 3987495\n      Kind:\n        type: \"string\"\n        example: \"image\"\n        enum:\n          - \"image\"\n          - \"attestation\"\n          - \"unknown\"\n        description: |\n          The kind of the manifest.\n\n          kind         | description\n          -------------|-----------------------------------------------------------\n          image        | Image manifest that can be used to start a container.\n          attestation  | Attestation manifest produced by the Buildkit builder for a specific image manifest.\n      ImageData:\n        description: |\n          The image data for the image manifest.\n          This field is only populated when Kind is \"image\".\n        type: \"object\"\n        x-nullable: true\n        x-omitempty: true\n        required: [\"Platform\", \"Containers\", \"Size\", \"UnpackedSize\"]\n        properties:\n          Platform:\n            $ref: \"#/definitions/OCIPlatform\"\n            description: |\n              OCI platform of the image. This will be the platform specified in the\n              manifest descriptor from the index/manifest list.\n              If it's not available, it will be obtained from the image config.\n          Containers:\n            description: |\n              The IDs of the containers that are using this image.\n            type: \"array\"\n            items:\n              type: \"string\"\n            example: [\"ede54ee1fda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c7430\", \"abadbce344c096744d8d6071a90d474d28af8f1034b5ea9fb03c3f4bfc6d005e\"]\n          Size:\n            type: \"object\"\n            x-nullable: false\n            required: [\"Unpacked\"]\n            properties:\n              Unpacked:\n                type: \"integer\"\n                format: \"int64\"\n                example: 3987495\n                description: |\n                  Unpacked is the size (in bytes) of the locally unpacked\n                  (uncompressed) image content that's directly usable by the containers\n                  running this image.\n                  It's independent of the distributable content - e.g.\n                  the image might still have an unpacked data that's still used by\n                  some container even when the distributable/compressed content is\n                  already gone.\n      AttestationData:\n        description: |\n          The image data for the attestation manifest.\n          This field is only populated when Kind is \"attestation\".\n        type: \"object\"\n        x-nullable: true\n        x-omitempty: true\n        required: [\"For\"]\n        properties:\n          For:\n            description: |\n              The digest of the image manifest that this attestation is for.\n            type: \"string\"\n            example: \"sha256:95869fbcf224d947ace8d61d0e931d49e31bb7fc67fffbbe9c3198c33aa8e93f\"\n\npaths:\n  /containers/json:\n    get:\n      summary: \"List containers\"\n      description: |\n        Returns a list of containers. For details on the format, see the\n        [inspect endpoint](#operation/ContainerInspect).\n\n        Note that it uses a different, smaller representation of a container\n        than inspecting a single container. For example, the list of linked\n        containers is not propagated .\n      operationId: \"ContainerList\"\n      produces:\n        - \"application/json\"\n      parameters:\n        - name: \"all\"\n          in: \"query\"\n          description: |\n            Return all containers. By default, only running containers are shown.\n          type: \"boolean\"\n          default: false\n        - name: \"limit\"\n          in: \"query\"\n          description: |\n            Return this number of most recently created containers, including\n            non-running ones.\n          type: \"integer\"\n        - name: \"size\"\n          in: \"query\"\n          description: |\n            Return the size of container as fields `SizeRw` and `SizeRootFs`.\n          type: \"boolean\"\n          default: false\n        - name: \"filters\"\n          in: \"query\"\n          description: |\n            Filters to process on the container list, encoded as JSON (a\n            `map[string][]string`). For example, `{\"status\": [\"paused\"]}` will\n            only return paused containers.\n\n            Available filters:\n\n            - `ancestor`=(`<image-name>[:<tag>]`, `<image id>`, or `<image@digest>`)\n            - `before`=(`<container id>` or `<container name>`)\n            - `expose`=(`<port>[/<proto>]`|`<startport-endport>/[<proto>]`)\n            - `exited=<int>` containers with exit code of `<int>`\n            - `health`=(`starting`|`healthy`|`unhealthy`|`none`)\n            - `id=<ID>` a container's ID\n            - `isolation=`(`default`|`process`|`hyperv`) (Windows daemon only)\n            - `is-task=`(`true`|`false`)\n            - `label=key` or `label=\"key=value\"` of a container label\n            - `name=<name>` a container's name\n            - `network`=(`<network id>` or `<network name>`)\n            - `publish`=(`<port>[/<proto>]`|`<startport-endport>/[<proto>]`)\n            - `since`=(`<container id>` or `<container name>`)\n            - `status=`(`created`|`restarting`|`running`|`removing`|`paused`|`exited`|`dead`)\n            - `volume`=(`<volume name>` or `<mount point destination>`)\n          type: \"string\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/ContainerSummary\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Container\"]\n  /containers/create:\n    post:\n      summary: \"Create a container\"\n      operationId: \"ContainerCreate\"\n      consumes:\n        - \"application/json\"\n        - \"application/octet-stream\"\n      produces:\n        - \"application/json\"\n      parameters:\n        - name: \"name\"\n          in: \"query\"\n          description: |\n            Assign the specified name to the container. Must match\n            `/?[a-zA-Z0-9][a-zA-Z0-9_.-]+`.\n          type: \"string\"\n          pattern: \"^/?[a-zA-Z0-9][a-zA-Z0-9_.-]+$\"\n        - name: \"platform\"\n          in: \"query\"\n          description: |\n            Platform in the format `os[/arch[/variant]]` used for image lookup.\n\n            When specified, the daemon checks if the requested image is present\n            in the local image cache with the given OS and Architecture, and\n            otherwise returns a `404` status.\n\n            If the option is not set, the host's native OS and Architecture are\n            used to look up the image in the image cache. However, if no platform\n            is passed and the given image does exist in the local image cache,\n            but its OS or architecture does not match, the container is created\n            with the available image, and a warning is added to the `Warnings`\n            field in the response, for example;\n\n                WARNING: The requested image's platform (linux/arm64/v8) does not\n                         match the detected host platform (linux/amd64) and no\n                         specific platform was requested\n\n          type: \"string\"\n          default: \"\"\n        - name: \"body\"\n          in: \"body\"\n          description: \"Container to create\"\n          schema:\n            allOf:\n              - $ref: \"#/definitions/ContainerConfig\"\n              - type: \"object\"\n                properties:\n                  HostConfig:\n                    $ref: \"#/definitions/HostConfig\"\n                  NetworkingConfig:\n                    $ref: \"#/definitions/NetworkingConfig\"\n            example:\n              Hostname: \"\"\n              Domainname: \"\"\n              User: \"\"\n              AttachStdin: false\n              AttachStdout: true\n              AttachStderr: true\n              Tty: false\n              OpenStdin: false\n              StdinOnce: false\n              Env:\n                - \"FOO=bar\"\n                - \"BAZ=quux\"\n              Cmd:\n                - \"date\"\n              Entrypoint: \"\"\n              Image: \"ubuntu\"\n              Labels:\n                com.example.vendor: \"Acme\"\n                com.example.license: \"GPL\"\n                com.example.version: \"1.0\"\n              Volumes:\n                /volumes/data: {}\n              WorkingDir: \"\"\n              NetworkDisabled: false\n              MacAddress: \"12:34:56:78:9a:bc\"\n              ExposedPorts:\n                22/tcp: {}\n              StopSignal: \"SIGTERM\"\n              StopTimeout: 10\n              HostConfig:\n                Binds:\n                  - \"/tmp:/tmp\"\n                Links:\n                  - \"redis3:redis\"\n                Memory: 0\n                MemorySwap: 0\n                MemoryReservation: 0\n                NanoCpus: 500000\n                CpuPercent: 80\n                CpuShares: 512\n                CpuPeriod: 100000\n                CpuRealtimePeriod: 1000000\n                CpuRealtimeRuntime: 10000\n                CpuQuota: 50000\n                CpusetCpus: \"0,1\"\n                CpusetMems: \"0,1\"\n                MaximumIOps: 0\n                MaximumIOBps: 0\n                BlkioWeight: 300\n                BlkioWeightDevice:\n                  - {}\n                BlkioDeviceReadBps:\n                  - {}\n                BlkioDeviceReadIOps:\n                  - {}\n                BlkioDeviceWriteBps:\n                  - {}\n                BlkioDeviceWriteIOps:\n                  - {}\n                DeviceRequests:\n                  - Driver: \"nvidia\"\n                    Count: -1\n                    DeviceIDs\": [\"0\", \"1\", \"GPU-fef8089b-4820-abfc-e83e-94318197576e\"]\n                    Capabilities: [[\"gpu\", \"nvidia\", \"compute\"]]\n                    Options:\n                      property1: \"string\"\n                      property2: \"string\"\n                MemorySwappiness: 60\n                OomKillDisable: false\n                OomScoreAdj: 500\n                PidMode: \"\"\n                PidsLimit: 0\n                PortBindings:\n                  22/tcp:\n                    - HostPort: \"11022\"\n                PublishAllPorts: false\n                Privileged: false\n                ReadonlyRootfs: false\n                Dns:\n                  - \"8.8.8.8\"\n                DnsOptions:\n                  - \"\"\n                DnsSearch:\n                  - \"\"\n                VolumesFrom:\n                  - \"parent\"\n                  - \"other:ro\"\n                CapAdd:\n                  - \"NET_ADMIN\"\n                CapDrop:\n                  - \"MKNOD\"\n                GroupAdd:\n                  - \"newgroup\"\n                RestartPolicy:\n                  Name: \"\"\n                  MaximumRetryCount: 0\n                AutoRemove: true\n                NetworkMode: \"bridge\"\n                Devices: []\n                Ulimits:\n                  - {}\n                LogConfig:\n                  Type: \"json-file\"\n                  Config: {}\n                SecurityOpt: []\n                StorageOpt: {}\n                CgroupParent: \"\"\n                VolumeDriver: \"\"\n                ShmSize: 67108864\n              NetworkingConfig:\n                EndpointsConfig:\n                  isolated_nw:\n                    IPAMConfig:\n                      IPv4Address: \"172.20.30.33\"\n                      IPv6Address: \"2001:db8:abcd::3033\"\n                      LinkLocalIPs:\n                        - \"169.254.34.68\"\n                        - \"fe80::3468\"\n                    Links:\n                      - \"container_1\"\n                      - \"container_2\"\n                    Aliases:\n                      - \"server_x\"\n                      - \"server_y\"\n                  database_nw: {}\n\n          required: true\n      responses:\n        201:\n          description: \"Container created successfully\"\n          schema:\n            $ref: \"#/definitions/ContainerCreateResponse\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"no such image\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such image: c2ada9df5af8\"\n        409:\n          description: \"conflict\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Container\"]\n  /containers/{id}/json:\n    get:\n      summary: \"Inspect a container\"\n      description: \"Return low-level information about a container.\"\n      operationId: \"ContainerInspect\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/ContainerInspectResponse\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"size\"\n          in: \"query\"\n          type: \"boolean\"\n          default: false\n          description: \"Return the size of container as fields `SizeRw` and `SizeRootFs`\"\n      tags: [\"Container\"]\n  /containers/{id}/top:\n    get:\n      summary: \"List processes running inside a container\"\n      description: |\n        On Unix systems, this is done by running the `ps` command. This endpoint\n        is not supported on Windows.\n      operationId: \"ContainerTop\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/ContainerTopResponse\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"ps_args\"\n          in: \"query\"\n          description: \"The arguments to pass to `ps`. For example, `aux`\"\n          type: \"string\"\n          default: \"-ef\"\n      tags: [\"Container\"]\n  /containers/{id}/logs:\n    get:\n      summary: \"Get container logs\"\n      description: |\n        Get `stdout` and `stderr` logs from a container.\n\n        Note: This endpoint works only for containers with the `json-file` or\n        `journald` logging driver.\n      produces:\n        - \"application/vnd.docker.raw-stream\"\n        - \"application/vnd.docker.multiplexed-stream\"\n      operationId: \"ContainerLogs\"\n      responses:\n        200:\n          description: |\n            logs returned as a stream in response body.\n            For the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).\n            Note that unlike the attach endpoint, the logs endpoint does not\n            upgrade the connection and does not set Content-Type.\n          schema:\n            type: \"string\"\n            format: \"binary\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"follow\"\n          in: \"query\"\n          description: \"Keep connection after returning logs.\"\n          type: \"boolean\"\n          default: false\n        - name: \"stdout\"\n          in: \"query\"\n          description: \"Return logs from `stdout`\"\n          type: \"boolean\"\n          default: false\n        - name: \"stderr\"\n          in: \"query\"\n          description: \"Return logs from `stderr`\"\n          type: \"boolean\"\n          default: false\n        - name: \"since\"\n          in: \"query\"\n          description: \"Only return logs since this time, as a UNIX timestamp\"\n          type: \"integer\"\n          default: 0\n        - name: \"until\"\n          in: \"query\"\n          description: \"Only return logs before this time, as a UNIX timestamp\"\n          type: \"integer\"\n          default: 0\n        - name: \"timestamps\"\n          in: \"query\"\n          description: \"Add timestamps to every log line\"\n          type: \"boolean\"\n          default: false\n        - name: \"tail\"\n          in: \"query\"\n          description: |\n            Only return this number of log lines from the end of the logs.\n            Specify as an integer or `all` to output all log lines.\n          type: \"string\"\n          default: \"all\"\n      tags: [\"Container\"]\n  /containers/{id}/changes:\n    get:\n      summary: \"Get changes on a container’s filesystem\"\n      description: |\n        Returns which files in a container's filesystem have been added, deleted,\n        or modified. The `Kind` of modification can be one of:\n\n        - `0`: Modified (\"C\")\n        - `1`: Added (\"A\")\n        - `2`: Deleted (\"D\")\n      operationId: \"ContainerChanges\"\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"The list of changes\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/FilesystemChange\"\n          examples:\n            application/json:\n              - Path: \"/dev\"\n                Kind: 0\n              - Path: \"/dev/kmsg\"\n                Kind: 1\n              - Path: \"/test\"\n                Kind: 1\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n      tags: [\"Container\"]\n  /containers/{id}/export:\n    get:\n      summary: \"Export a container\"\n      description: \"Export the contents of a container as a tarball.\"\n      operationId: \"ContainerExport\"\n      produces:\n        - \"application/octet-stream\"\n      responses:\n        200:\n          description: \"no error\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n      tags: [\"Container\"]\n  /containers/{id}/stats:\n    get:\n      summary: \"Get container stats based on resource usage\"\n      description: |\n        This endpoint returns a live stream of a container’s resource usage\n        statistics.\n\n        The `precpu_stats` is the CPU statistic of the *previous* read, and is\n        used to calculate the CPU usage percentage. It is not an exact copy\n        of the `cpu_stats` field.\n\n        If either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is\n        nil then for compatibility with older daemons the length of the\n        corresponding `cpu_usage.percpu_usage` array should be used.\n\n        On a cgroup v2 host, the following fields are not set\n        * `blkio_stats`: all fields other than `io_service_bytes_recursive`\n        * `cpu_stats`: `cpu_usage.percpu_usage`\n        * `memory_stats`: `max_usage` and `failcnt`\n        Also, `memory_stats.stats` fields are incompatible with cgroup v1.\n\n        To calculate the values shown by the `stats` command of the docker cli tool\n        the following formulas can be used:\n        * used_memory = `memory_stats.usage - memory_stats.stats.cache`\n        * available_memory = `memory_stats.limit`\n        * Memory usage % = `(used_memory / available_memory) * 100.0`\n        * cpu_delta = `cpu_stats.cpu_usage.total_usage - precpu_stats.cpu_usage.total_usage`\n        * system_cpu_delta = `cpu_stats.system_cpu_usage - precpu_stats.system_cpu_usage`\n        * number_cpus = `length(cpu_stats.cpu_usage.percpu_usage)` or `cpu_stats.online_cpus`\n        * CPU usage % = `(cpu_delta / system_cpu_delta) * number_cpus * 100.0`\n      operationId: \"ContainerStats\"\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/ContainerStatsResponse\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"stream\"\n          in: \"query\"\n          description: |\n            Stream the output. If false, the stats will be output once and then\n            it will disconnect.\n          type: \"boolean\"\n          default: true\n        - name: \"one-shot\"\n          in: \"query\"\n          description: |\n            Only get a single stat instead of waiting for 2 cycles. Must be used\n            with `stream=false`.\n          type: \"boolean\"\n          default: false\n      tags: [\"Container\"]\n  /containers/{id}/resize:\n    post:\n      summary: \"Resize a container TTY\"\n      description: \"Resize the TTY for a container.\"\n      operationId: \"ContainerResize\"\n      consumes:\n        - \"application/octet-stream\"\n      produces:\n        - \"text/plain\"\n      responses:\n        200:\n          description: \"no error\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"cannot resize container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"h\"\n          in: \"query\"\n          required: true\n          description: \"Height of the TTY session in characters\"\n          type: \"integer\"\n        - name: \"w\"\n          in: \"query\"\n          required: true\n          description: \"Width of the TTY session in characters\"\n          type: \"integer\"\n      tags: [\"Container\"]\n  /containers/{id}/start:\n    post:\n      summary: \"Start a container\"\n      operationId: \"ContainerStart\"\n      responses:\n        204:\n          description: \"no error\"\n        304:\n          description: \"container already started\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"detachKeys\"\n          in: \"query\"\n          description: |\n            Override the key sequence for detaching a container. Format is a\n            single character `[a-Z]` or `ctrl-<value>` where `<value>` is one\n            of: `a-z`, `@`, `^`, `[`, `,` or `_`.\n          type: \"string\"\n      tags: [\"Container\"]\n  /containers/{id}/stop:\n    post:\n      summary: \"Stop a container\"\n      operationId: \"ContainerStop\"\n      responses:\n        204:\n          description: \"no error\"\n        304:\n          description: \"container already stopped\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"signal\"\n          in: \"query\"\n          description: |\n            Signal to send to the container as an integer or string (e.g. `SIGINT`).\n          type: \"string\"\n        - name: \"t\"\n          in: \"query\"\n          description: \"Number of seconds to wait before killing the container\"\n          type: \"integer\"\n      tags: [\"Container\"]\n  /containers/{id}/restart:\n    post:\n      summary: \"Restart a container\"\n      operationId: \"ContainerRestart\"\n      responses:\n        204:\n          description: \"no error\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"signal\"\n          in: \"query\"\n          description: |\n            Signal to send to the container as an integer or string (e.g. `SIGINT`).\n          type: \"string\"\n        - name: \"t\"\n          in: \"query\"\n          description: \"Number of seconds to wait before killing the container\"\n          type: \"integer\"\n      tags: [\"Container\"]\n  /containers/{id}/kill:\n    post:\n      summary: \"Kill a container\"\n      description: |\n        Send a POSIX signal to a container, defaulting to killing to the\n        container.\n      operationId: \"ContainerKill\"\n      responses:\n        204:\n          description: \"no error\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        409:\n          description: \"container is not running\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"Container d37cde0fe4ad63c3a7252023b2f9800282894247d145cb5933ddf6e52cc03a28 is not running\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"signal\"\n          in: \"query\"\n          description: |\n            Signal to send to the container as an integer or string (e.g. `SIGINT`).\n          type: \"string\"\n          default: \"SIGKILL\"\n      tags: [\"Container\"]\n  /containers/{id}/update:\n    post:\n      summary: \"Update a container\"\n      description: |\n        Change various configuration options of a container without having to\n        recreate it.\n      operationId: \"ContainerUpdate\"\n      consumes: [\"application/json\"]\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"The container has been updated.\"\n          schema:\n            $ref: \"#/definitions/ContainerUpdateResponse\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"update\"\n          in: \"body\"\n          required: true\n          schema:\n            allOf:\n              - $ref: \"#/definitions/Resources\"\n              - type: \"object\"\n                properties:\n                  RestartPolicy:\n                    $ref: \"#/definitions/RestartPolicy\"\n            example:\n              BlkioWeight: 300\n              CpuShares: 512\n              CpuPeriod: 100000\n              CpuQuota: 50000\n              CpuRealtimePeriod: 1000000\n              CpuRealtimeRuntime: 10000\n              CpusetCpus: \"0,1\"\n              CpusetMems: \"0\"\n              Memory: 314572800\n              MemorySwap: 514288000\n              MemoryReservation: 209715200\n              RestartPolicy:\n                MaximumRetryCount: 4\n                Name: \"on-failure\"\n      tags: [\"Container\"]\n  /containers/{id}/rename:\n    post:\n      summary: \"Rename a container\"\n      operationId: \"ContainerRename\"\n      responses:\n        204:\n          description: \"no error\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        409:\n          description: \"name already in use\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"name\"\n          in: \"query\"\n          required: true\n          description: \"New name for the container\"\n          type: \"string\"\n      tags: [\"Container\"]\n  /containers/{id}/pause:\n    post:\n      summary: \"Pause a container\"\n      description: |\n        Use the freezer cgroup to suspend all processes in a container.\n\n        Traditionally, when suspending a process the `SIGSTOP` signal is used,\n        which is observable by the process being suspended. With the freezer\n        cgroup the process is unaware, and unable to capture, that it is being\n        suspended, and subsequently resumed.\n      operationId: \"ContainerPause\"\n      responses:\n        204:\n          description: \"no error\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n      tags: [\"Container\"]\n  /containers/{id}/unpause:\n    post:\n      summary: \"Unpause a container\"\n      description: \"Resume a container which has been paused.\"\n      operationId: \"ContainerUnpause\"\n      responses:\n        204:\n          description: \"no error\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n      tags: [\"Container\"]\n  /containers/{id}/attach:\n    post:\n      summary: \"Attach to a container\"\n      description: |\n        Attach to a container to read its output or send it input. You can attach\n        to the same container multiple times and you can reattach to containers\n        that have been detached.\n\n        Either the `stream` or `logs` parameter must be `true` for this endpoint\n        to do anything.\n\n        See the [documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/)\n        for more details.\n\n        ### Hijacking\n\n        This endpoint hijacks the HTTP connection to transport `stdin`, `stdout`,\n        and `stderr` on the same socket.\n\n        This is the response from the daemon for an attach request:\n\n        ```\n        HTTP/1.1 200 OK\n        Content-Type: application/vnd.docker.raw-stream\n\n        [STREAM]\n        ```\n\n        After the headers and two new lines, the TCP connection can now be used\n        for raw, bidirectional communication between the client and server.\n\n        To hint potential proxies about connection hijacking, the Docker client\n        can also optionally send connection upgrade headers.\n\n        For example, the client sends this request to upgrade the connection:\n\n        ```\n        POST /containers/16253994b7c4/attach?stream=1&stdout=1 HTTP/1.1\n        Upgrade: tcp\n        Connection: Upgrade\n        ```\n\n        The Docker daemon will respond with a `101 UPGRADED` response, and will\n        similarly follow with the raw stream:\n\n        ```\n        HTTP/1.1 101 UPGRADED\n        Content-Type: application/vnd.docker.raw-stream\n        Connection: Upgrade\n        Upgrade: tcp\n\n        [STREAM]\n        ```\n\n        ### Stream format\n\n        When the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate),\n        the HTTP Content-Type header is set to application/vnd.docker.multiplexed-stream\n        and the stream over the hijacked connected is multiplexed to separate out\n        `stdout` and `stderr`. The stream consists of a series of frames, each\n        containing a header and a payload.\n\n        The header contains the information which the stream writes (`stdout` or\n        `stderr`). It also contains the size of the associated frame encoded in\n        the last four bytes (`uint32`).\n\n        It is encoded on the first eight bytes like this:\n\n        ```go\n        header := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}\n        ```\n\n        `STREAM_TYPE` can be:\n\n        - 0: `stdin` (is written on `stdout`)\n        - 1: `stdout`\n        - 2: `stderr`\n\n        `SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size\n        encoded as big endian.\n\n        Following the header is the payload, which is the specified number of\n        bytes of `STREAM_TYPE`.\n\n        The simplest way to implement this protocol is the following:\n\n        1. Read 8 bytes.\n        2. Choose `stdout` or `stderr` depending on the first byte.\n        3. Extract the frame size from the last four bytes.\n        4. Read the extracted size and output it on the correct output.\n        5. Goto 1.\n\n        ### Stream format when using a TTY\n\n        When the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate),\n        the stream is not multiplexed. The data exchanged over the hijacked\n        connection is simply the raw data from the process PTY and client's\n        `stdin`.\n\n      operationId: \"ContainerAttach\"\n      produces:\n        - \"application/vnd.docker.raw-stream\"\n        - \"application/vnd.docker.multiplexed-stream\"\n      responses:\n        101:\n          description: \"no error, hints proxy about hijacking\"\n        200:\n          description: \"no error, no upgrade header found\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"detachKeys\"\n          in: \"query\"\n          description: |\n            Override the key sequence for detaching a container.Format is a single\n            character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`,\n            `@`, `^`, `[`, `,` or `_`.\n          type: \"string\"\n        - name: \"logs\"\n          in: \"query\"\n          description: |\n            Replay previous logs from the container.\n\n            This is useful for attaching to a container that has started and you\n            want to output everything since the container started.\n\n            If `stream` is also enabled, once all the previous output has been\n            returned, it will seamlessly transition into streaming current\n            output.\n          type: \"boolean\"\n          default: false\n        - name: \"stream\"\n          in: \"query\"\n          description: |\n            Stream attached streams from the time the request was made onwards.\n          type: \"boolean\"\n          default: false\n        - name: \"stdin\"\n          in: \"query\"\n          description: \"Attach to `stdin`\"\n          type: \"boolean\"\n          default: false\n        - name: \"stdout\"\n          in: \"query\"\n          description: \"Attach to `stdout`\"\n          type: \"boolean\"\n          default: false\n        - name: \"stderr\"\n          in: \"query\"\n          description: \"Attach to `stderr`\"\n          type: \"boolean\"\n          default: false\n      tags: [\"Container\"]\n  /containers/{id}/attach/ws:\n    get:\n      summary: \"Attach to a container via a websocket\"\n      operationId: \"ContainerAttachWebsocket\"\n      responses:\n        101:\n          description: \"no error, hints proxy about hijacking\"\n        200:\n          description: \"no error, no upgrade header found\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"detachKeys\"\n          in: \"query\"\n          description: |\n            Override the key sequence for detaching a container.Format is a single\n            character `[a-Z]` or `ctrl-<value>` where `<value>` is one of: `a-z`,\n            `@`, `^`, `[`, `,`, or `_`.\n          type: \"string\"\n        - name: \"logs\"\n          in: \"query\"\n          description: \"Return logs\"\n          type: \"boolean\"\n          default: false\n        - name: \"stream\"\n          in: \"query\"\n          description: \"Return stream\"\n          type: \"boolean\"\n          default: false\n        - name: \"stdin\"\n          in: \"query\"\n          description: \"Attach to `stdin`\"\n          type: \"boolean\"\n          default: false\n        - name: \"stdout\"\n          in: \"query\"\n          description: \"Attach to `stdout`\"\n          type: \"boolean\"\n          default: false\n        - name: \"stderr\"\n          in: \"query\"\n          description: \"Attach to `stderr`\"\n          type: \"boolean\"\n          default: false\n      tags: [\"Container\"]\n  /containers/{id}/wait:\n    post:\n      summary: \"Wait for a container\"\n      description: \"Block until a container stops, then returns the exit code.\"\n      operationId: \"ContainerWait\"\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"The container has exit.\"\n          schema:\n            $ref: \"#/definitions/ContainerWaitResponse\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"condition\"\n          in: \"query\"\n          description: |\n            Wait until a container state reaches the given condition.\n\n            Defaults to `not-running` if omitted or empty.\n          type: \"string\"\n          enum:\n            - \"not-running\"\n            - \"next-exit\"\n            - \"removed\"\n          default: \"not-running\"\n      tags: [\"Container\"]\n  /containers/{id}:\n    delete:\n      summary: \"Remove a container\"\n      operationId: \"ContainerDelete\"\n      responses:\n        204:\n          description: \"no error\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        409:\n          description: \"conflict\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: |\n                You cannot remove a running container: c2ada9df5af8. Stop the\n                container before attempting removal or force remove\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"v\"\n          in: \"query\"\n          description: \"Remove anonymous volumes associated with the container.\"\n          type: \"boolean\"\n          default: false\n        - name: \"force\"\n          in: \"query\"\n          description: \"If the container is running, kill it before removing it.\"\n          type: \"boolean\"\n          default: false\n        - name: \"link\"\n          in: \"query\"\n          description: \"Remove the specified link associated with the container.\"\n          type: \"boolean\"\n          default: false\n      tags: [\"Container\"]\n  /containers/{id}/archive:\n    head:\n      summary: \"Get information about files in a container\"\n      description: |\n        A response header `X-Docker-Container-Path-Stat` is returned, containing\n        a base64 - encoded JSON object with some filesystem header information\n        about the path.\n      operationId: \"ContainerArchiveInfo\"\n      responses:\n        200:\n          description: \"no error\"\n          headers:\n            X-Docker-Container-Path-Stat:\n              type: \"string\"\n              description: |\n                A base64 - encoded JSON object with some filesystem header\n                information about the path\n        400:\n          description: \"Bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"Container or path does not exist\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"path\"\n          in: \"query\"\n          required: true\n          description: \"Resource in the container’s filesystem to archive.\"\n          type: \"string\"\n      tags: [\"Container\"]\n    get:\n      summary: \"Get an archive of a filesystem resource in a container\"\n      description: \"Get a tar archive of a resource in the filesystem of container id.\"\n      operationId: \"ContainerArchive\"\n      produces: [\"application/x-tar\"]\n      responses:\n        200:\n          description: \"no error\"\n        400:\n          description: \"Bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"Container or path does not exist\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"path\"\n          in: \"query\"\n          required: true\n          description: \"Resource in the container’s filesystem to archive.\"\n          type: \"string\"\n      tags: [\"Container\"]\n    put:\n      summary: \"Extract an archive of files or folders to a directory in a container\"\n      description: |\n        Upload a tar archive to be extracted to a path in the filesystem of container id.\n        `path` parameter is asserted to be a directory. If it exists as a file, 400 error\n        will be returned with message \"not a directory\".\n      operationId: \"PutContainerArchive\"\n      consumes: [\"application/x-tar\", \"application/octet-stream\"]\n      responses:\n        200:\n          description: \"The content was extracted successfully\"\n        400:\n          description: \"Bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"not a directory\"\n        403:\n          description: \"Permission denied, the volume or container rootfs is marked as read-only.\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"No such container or path does not exist inside the container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the container\"\n          type: \"string\"\n        - name: \"path\"\n          in: \"query\"\n          required: true\n          description: \"Path to a directory in the container to extract the archive’s contents into. \"\n          type: \"string\"\n        - name: \"noOverwriteDirNonDir\"\n          in: \"query\"\n          description: |\n            If `1`, `true`, or `True` then it will be an error if unpacking the\n            given content would cause an existing directory to be replaced with\n            a non-directory and vice versa.\n          type: \"string\"\n        - name: \"copyUIDGID\"\n          in: \"query\"\n          description: |\n            If `1`, `true`, then it will copy UID/GID maps to the dest file or\n            dir\n          type: \"string\"\n        - name: \"inputStream\"\n          in: \"body\"\n          required: true\n          description: |\n            The input stream must be a tar archive compressed with one of the\n            following algorithms: `identity` (no compression), `gzip`, `bzip2`,\n            or `xz`.\n          schema:\n            type: \"string\"\n            format: \"binary\"\n      tags: [\"Container\"]\n  /containers/prune:\n    post:\n      summary: \"Delete stopped containers\"\n      produces:\n        - \"application/json\"\n      operationId: \"ContainerPrune\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          description: |\n            Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\n            Available filters:\n            - `until=<timestamp>` Prune containers created before this timestamp. The `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n            - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune containers with (or without, in case `label!=...` is used) the specified labels.\n          type: \"string\"\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            type: \"object\"\n            title: \"ContainerPruneResponse\"\n            properties:\n              ContainersDeleted:\n                description: \"Container IDs that were deleted\"\n                type: \"array\"\n                items:\n                  type: \"string\"\n              SpaceReclaimed:\n                description: \"Disk space reclaimed in bytes\"\n                type: \"integer\"\n                format: \"int64\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Container\"]\n  /images/json:\n    get:\n      summary: \"List Images\"\n      description: \"Returns a list of images on the server. Note that it uses a different, smaller representation of an image than inspecting a single image.\"\n      operationId: \"ImageList\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"Summary image data for the images matching the query\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/ImageSummary\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"all\"\n          in: \"query\"\n          description: \"Show all images. Only images from a final layer (no children) are shown by default.\"\n          type: \"boolean\"\n          default: false\n        - name: \"filters\"\n          in: \"query\"\n          description: |\n            A JSON encoded value of the filters (a `map[string][]string`) to\n            process on the images list.\n\n            Available filters:\n\n            - `before`=(`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`)\n            - `dangling=true`\n            - `label=key` or `label=\"key=value\"` of an image label\n            - `reference`=(`<image-name>[:<tag>]`)\n            - `since`=(`<image-name>[:<tag>]`,  `<image id>` or `<image@digest>`)\n            - `until=<timestamp>`\n          type: \"string\"\n        - name: \"shared-size\"\n          in: \"query\"\n          description: \"Compute and show shared size as a `SharedSize` field on each image.\"\n          type: \"boolean\"\n          default: false\n        - name: \"digests\"\n          in: \"query\"\n          description: \"Show digest information as a `RepoDigests` field on each image.\"\n          type: \"boolean\"\n          default: false\n        - name: \"manifests\"\n          in: \"query\"\n          description: \"Include `Manifests` in the image summary.\"\n          type: \"boolean\"\n          default: false\n      tags: [\"Image\"]\n  /build:\n    post:\n      summary: \"Build an image\"\n      description: |\n        Build an image from a tar archive with a `Dockerfile` in it.\n\n        The `Dockerfile` specifies how the image is built from the tar archive. It is typically in the archive's root, but can be at a different path or have a different name by specifying the `dockerfile` parameter. [See the `Dockerfile` reference for more information](https://docs.docker.com/engine/reference/builder/).\n\n        The Docker daemon performs a preliminary validation of the `Dockerfile` before starting the build, and returns an error if the syntax is incorrect. After that, each instruction is run one-by-one until the ID of the new image is output.\n\n        The build is canceled if the client drops the connection by quitting or being killed.\n      operationId: \"ImageBuild\"\n      consumes:\n        - \"application/octet-stream\"\n      produces:\n        - \"application/json\"\n      parameters:\n        - name: \"inputStream\"\n          in: \"body\"\n          description: \"A tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz.\"\n          schema:\n            type: \"string\"\n            format: \"binary\"\n        - name: \"dockerfile\"\n          in: \"query\"\n          description: \"Path within the build context to the `Dockerfile`. This is ignored if `remote` is specified and points to an external `Dockerfile`.\"\n          type: \"string\"\n          default: \"Dockerfile\"\n        - name: \"t\"\n          in: \"query\"\n          description: \"A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag the default `latest` value is assumed. You can provide several `t` parameters.\"\n          type: \"string\"\n        - name: \"extrahosts\"\n          in: \"query\"\n          description: \"Extra hosts to add to /etc/hosts\"\n          type: \"string\"\n        - name: \"remote\"\n          in: \"query\"\n          description: \"A Git repository URI or HTTP/HTTPS context URI. If the URI points to a single text file, the file’s contents are placed into a file called `Dockerfile` and the image is built from that file. If the URI points to a tarball, the file is downloaded by the daemon and the contents therein used as the context for the build. If the URI points to a tarball and the `dockerfile` parameter is also specified, there must be a file with the corresponding path inside the tarball.\"\n          type: \"string\"\n        - name: \"q\"\n          in: \"query\"\n          description: \"Suppress verbose build output.\"\n          type: \"boolean\"\n          default: false\n        - name: \"nocache\"\n          in: \"query\"\n          description: \"Do not use the cache when building the image.\"\n          type: \"boolean\"\n          default: false\n        - name: \"cachefrom\"\n          in: \"query\"\n          description: \"JSON array of images used for build cache resolution.\"\n          type: \"string\"\n        - name: \"pull\"\n          in: \"query\"\n          description: \"Attempt to pull the image even if an older image exists locally.\"\n          type: \"string\"\n        - name: \"rm\"\n          in: \"query\"\n          description: \"Remove intermediate containers after a successful build.\"\n          type: \"boolean\"\n          default: true\n        - name: \"forcerm\"\n          in: \"query\"\n          description: \"Always remove intermediate containers, even upon failure.\"\n          type: \"boolean\"\n          default: false\n        - name: \"memory\"\n          in: \"query\"\n          description: \"Set memory limit for build.\"\n          type: \"integer\"\n        - name: \"memswap\"\n          in: \"query\"\n          description: \"Total memory (memory + swap). Set as `-1` to disable swap.\"\n          type: \"integer\"\n        - name: \"cpushares\"\n          in: \"query\"\n          description: \"CPU shares (relative weight).\"\n          type: \"integer\"\n        - name: \"cpusetcpus\"\n          in: \"query\"\n          description: \"CPUs in which to allow execution (e.g., `0-3`, `0,1`).\"\n          type: \"string\"\n        - name: \"cpuperiod\"\n          in: \"query\"\n          description: \"The length of a CPU period in microseconds.\"\n          type: \"integer\"\n        - name: \"cpuquota\"\n          in: \"query\"\n          description: \"Microseconds of CPU time that the container can get in a CPU period.\"\n          type: \"integer\"\n        - name: \"buildargs\"\n          in: \"query\"\n          description: >\n            JSON map of string pairs for build-time variables. Users pass these values at build-time. Docker\n            uses the buildargs as the environment context for commands run via the `Dockerfile` RUN\n            instruction, or for variable expansion in other `Dockerfile` instructions. This is not meant for\n            passing secret values.\n\n\n            For example, the build arg `FOO=bar` would become `{\"FOO\":\"bar\"}` in JSON. This would result in the\n            query parameter `buildargs={\"FOO\":\"bar\"}`. Note that `{\"FOO\":\"bar\"}` should be URI component encoded.\n\n\n            [Read more about the buildargs instruction.](https://docs.docker.com/engine/reference/builder/#arg)\n          type: \"string\"\n        - name: \"shmsize\"\n          in: \"query\"\n          description: \"Size of `/dev/shm` in bytes. The size must be greater than 0. If omitted the system uses 64MB.\"\n          type: \"integer\"\n        - name: \"squash\"\n          in: \"query\"\n          description: \"Squash the resulting images layers into a single layer. *(Experimental release only.)*\"\n          type: \"boolean\"\n        - name: \"labels\"\n          in: \"query\"\n          description: \"Arbitrary key/value labels to set on the image, as a JSON map of string pairs.\"\n          type: \"string\"\n        - name: \"networkmode\"\n          in: \"query\"\n          description: |\n            Sets the networking mode for the run commands during build. Supported\n            standard values are: `bridge`, `host`, `none`, and `container:<name|id>`.\n            Any other value is taken as a custom network's name or ID to which this\n            container should connect to.\n          type: \"string\"\n        - name: \"Content-type\"\n          in: \"header\"\n          type: \"string\"\n          enum:\n            - \"application/x-tar\"\n          default: \"application/x-tar\"\n        - name: \"X-Registry-Config\"\n          in: \"header\"\n          description: |\n            This is a base64-encoded JSON object with auth configurations for multiple registries that a build may refer to.\n\n            The key is a registry URL, and the value is an auth configuration object, [as described in the authentication section](#section/Authentication). For example:\n\n            ```\n            {\n              \"docker.example.com\": {\n                \"username\": \"janedoe\",\n                \"password\": \"hunter2\"\n              },\n              \"https://index.docker.io/v1/\": {\n                \"username\": \"mobydock\",\n                \"password\": \"conta1n3rize14\"\n              }\n            }\n            ```\n\n            Only the registry domain name (and port if not the default 443) are required. However, for legacy reasons, the Docker Hub registry must be specified with both a `https://` prefix and a `/v1/` suffix even though Docker will prefer to use the v2 registry API.\n          type: \"string\"\n        - name: \"platform\"\n          in: \"query\"\n          description: \"Platform in the format os[/arch[/variant]]\"\n          type: \"string\"\n          default: \"\"\n        - name: \"target\"\n          in: \"query\"\n          description: \"Target build stage\"\n          type: \"string\"\n          default: \"\"\n        - name: \"outputs\"\n          in: \"query\"\n          description: \"BuildKit output configuration\"\n          type: \"string\"\n          default: \"\"\n        - name: \"version\"\n          in: \"query\"\n          type: \"string\"\n          default: \"1\"\n          enum: [\"1\", \"2\"]\n          description: |\n            Version of the builder backend to use.\n\n            - `1` is the first generation classic (deprecated) builder in the Docker daemon (default)\n            - `2` is [BuildKit](https://github.com/moby/buildkit)\n      responses:\n        200:\n          description: \"no error\"\n        400:\n          description: \"Bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Image\"]\n  /build/prune:\n    post:\n      summary: \"Delete builder cache\"\n      produces:\n        - \"application/json\"\n      operationId: \"BuildPrune\"\n      parameters:\n        - name: \"keep-storage\"\n          in: \"query\"\n          description: |\n            Amount of disk space in bytes to keep for cache\n\n            > **Deprecated**: This parameter is deprecated and has been renamed to \"reserved-space\".\n            > It is kept for backward compatibility and will be removed in API v1.49.\n          type: \"integer\"\n          format: \"int64\"\n        - name: \"reserved-space\"\n          in: \"query\"\n          description: \"Amount of disk space in bytes to keep for cache\"\n          type: \"integer\"\n          format: \"int64\"\n        - name: \"max-used-space\"\n          in: \"query\"\n          description: \"Maximum amount of disk space allowed to keep for cache\"\n          type: \"integer\"\n          format: \"int64\"\n        - name: \"min-free-space\"\n          in: \"query\"\n          description: \"Target amount of free disk space after pruning\"\n          type: \"integer\"\n          format: \"int64\"\n        - name: \"all\"\n          in: \"query\"\n          type: \"boolean\"\n          description: \"Remove all types of build cache\"\n        - name: \"filters\"\n          in: \"query\"\n          type: \"string\"\n          description: |\n            A JSON encoded value of the filters (a `map[string][]string`) to\n            process on the list of build cache objects.\n\n            Available filters:\n\n            - `until=<timestamp>` remove cache older than `<timestamp>`. The `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon's local time.\n            - `id=<id>`\n            - `parent=<id>`\n            - `type=<string>`\n            - `description=<string>`\n            - `inuse`\n            - `shared`\n            - `private`\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            type: \"object\"\n            title: \"BuildPruneResponse\"\n            properties:\n              CachesDeleted:\n                type: \"array\"\n                items:\n                  description: \"ID of build cache object\"\n                  type: \"string\"\n              SpaceReclaimed:\n                description: \"Disk space reclaimed in bytes\"\n                type: \"integer\"\n                format: \"int64\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Image\"]\n  /images/create:\n    post:\n      summary: \"Create an image\"\n      description: \"Pull or import an image.\"\n      operationId: \"ImageCreate\"\n      consumes:\n        - \"text/plain\"\n        - \"application/octet-stream\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"no error\"\n        404:\n          description: \"repository does not exist or no read access\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"fromImage\"\n          in: \"query\"\n          description: |\n            Name of the image to pull. If the name includes a tag or digest, specific behavior applies:\n\n            - If only `fromImage` includes a tag, that tag is used.\n            - If both `fromImage` and `tag` are provided, `tag` takes precedence.\n            - If `fromImage` includes a digest, the image is pulled by digest, and `tag` is ignored.\n            - If neither a tag nor digest is specified, all tags are pulled.\n          type: \"string\"\n        - name: \"fromSrc\"\n          in: \"query\"\n          description: \"Source to import. The value may be a URL from which the image can be retrieved or `-` to read the image from the request body. This parameter may only be used when importing an image.\"\n          type: \"string\"\n        - name: \"repo\"\n          in: \"query\"\n          description: \"Repository name given to an image when it is imported. The repo may include a tag. This parameter may only be used when importing an image.\"\n          type: \"string\"\n        - name: \"tag\"\n          in: \"query\"\n          description: \"Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled.\"\n          type: \"string\"\n        - name: \"message\"\n          in: \"query\"\n          description: \"Set commit message for imported image.\"\n          type: \"string\"\n        - name: \"inputImage\"\n          in: \"body\"\n          description: \"Image content if the value `-` has been specified in fromSrc query parameter\"\n          schema:\n            type: \"string\"\n          required: false\n        - name: \"X-Registry-Auth\"\n          in: \"header\"\n          description: |\n            A base64url-encoded auth configuration.\n\n            Refer to the [authentication section](#section/Authentication) for\n            details.\n          type: \"string\"\n        - name: \"changes\"\n          in: \"query\"\n          description: |\n            Apply `Dockerfile` instructions to the image that is created,\n            for example: `changes=ENV DEBUG=true`.\n            Note that `ENV DEBUG=true` should be URI component encoded.\n\n            Supported `Dockerfile` instructions:\n            `CMD`|`ENTRYPOINT`|`ENV`|`EXPOSE`|`ONBUILD`|`USER`|`VOLUME`|`WORKDIR`\n          type: \"array\"\n          items:\n            type: \"string\"\n        - name: \"platform\"\n          in: \"query\"\n          description: |\n            Platform in the format os[/arch[/variant]].\n\n            When used in combination with the `fromImage` option, the daemon checks\n            if the given image is present in the local image cache with the given\n            OS and Architecture, and otherwise attempts to pull the image. If the\n            option is not set, the host's native OS and Architecture are used.\n            If the given image does not exist in the local image cache, the daemon\n            attempts to pull the image with the host's native OS and Architecture.\n            If the given image does exists in the local image cache, but its OS or\n            architecture does not match, a warning is produced.\n\n            When used with the `fromSrc` option to import an image from an archive,\n            this option sets the platform information for the imported image. If\n            the option is not set, the host's native OS and Architecture are used\n            for the imported image.\n          type: \"string\"\n          default: \"\"\n      tags: [\"Image\"]\n  /images/{name}/json:\n    get:\n      summary: \"Inspect an image\"\n      description: \"Return low-level information about an image.\"\n      operationId: \"ImageInspect\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            $ref: \"#/definitions/ImageInspect\"\n        404:\n          description: \"No such image\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such image: someimage (tag: latest)\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: \"Image name or id\"\n          type: \"string\"\n          required: true\n        - name: \"manifests\"\n          in: \"query\"\n          description: \"Include Manifests in the image summary.\"\n          type: \"boolean\"\n          default: false\n          required: false\n      tags: [\"Image\"]\n  /images/{name}/history:\n    get:\n      summary: \"Get the history of an image\"\n      description: \"Return parent layers of an image.\"\n      operationId: \"ImageHistory\"\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"List of image layers\"\n          schema:\n            type: \"array\"\n            items:\n              type: \"object\"\n              x-go-name: HistoryResponseItem\n              title: \"HistoryResponseItem\"\n              description: \"individual image layer information in response to ImageHistory operation\"\n              required: [Id, Created, CreatedBy, Tags, Size, Comment]\n              properties:\n                Id:\n                  type: \"string\"\n                  x-nullable: false\n                Created:\n                  type: \"integer\"\n                  format: \"int64\"\n                  x-nullable: false\n                CreatedBy:\n                  type: \"string\"\n                  x-nullable: false\n                Tags:\n                  type: \"array\"\n                  items:\n                    type: \"string\"\n                Size:\n                  type: \"integer\"\n                  format: \"int64\"\n                  x-nullable: false\n                Comment:\n                  type: \"string\"\n                  x-nullable: false\n          examples:\n            application/json:\n              - Id: \"3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710\"\n                Created: 1398108230\n                CreatedBy: \"/bin/sh -c #(nop) ADD file:eb15dbd63394e063b805a3c32ca7bf0266ef64676d5a6fab4801f2e81e2a5148 in /\"\n                Tags:\n                  - \"ubuntu:lucid\"\n                  - \"ubuntu:10.04\"\n                Size: 182964289\n                Comment: \"\"\n              - Id: \"6cfa4d1f33fb861d4d114f43b25abd0ac737509268065cdfd69d544a59c85ab8\"\n                Created: 1398108222\n                CreatedBy: \"/bin/sh -c #(nop) MAINTAINER Tianon Gravi <admwiggin@gmail.com> - mkimage-debootstrap.sh -i iproute,iputils-ping,ubuntu-minimal -t lucid.tar.xz lucid http://archive.ubuntu.com/ubuntu/\"\n                Tags: []\n                Size: 0\n                Comment: \"\"\n              - Id: \"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158\"\n                Created: 1371157430\n                CreatedBy: \"\"\n                Tags:\n                  - \"scratch12:latest\"\n                  - \"scratch:latest\"\n                Size: 0\n                Comment: \"Imported from -\"\n        404:\n          description: \"No such image\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: \"Image name or ID\"\n          type: \"string\"\n          required: true\n        - name: \"platform\"\n          type: \"string\"\n          in: \"query\"\n          description: |\n            JSON-encoded OCI platform to select the platform-variant.\n            If omitted, it defaults to any locally available platform,\n            prioritizing the daemon's host platform.\n\n            If the daemon provides a multi-platform image store, this selects\n            the platform-variant to show the history for. If the image is\n            a single-platform image, or if the multi-platform image does not\n            provide a variant matching the given platform, an error is returned.\n\n            Example: `{\"os\": \"linux\", \"architecture\": \"arm\", \"variant\": \"v5\"}`\n      tags: [\"Image\"]\n  /images/{name}/push:\n    post:\n      summary: \"Push an image\"\n      description: |\n        Push an image to a registry.\n\n        If you wish to push an image on to a private registry, that image must\n        already have a tag which references the registry. For example,\n        `registry.example.com/myimage:latest`.\n\n        The push is cancelled if the HTTP connection is closed.\n      operationId: \"ImagePush\"\n      consumes:\n        - \"application/octet-stream\"\n      responses:\n        200:\n          description: \"No error\"\n        404:\n          description: \"No such image\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: |\n            Name of the image to push. For example, `registry.example.com/myimage`.\n            The image must be present in the local image store with the same name.\n\n            The name should be provided without tag; if a tag is provided, it\n            is ignored. For example, `registry.example.com/myimage:latest` is\n            considered equivalent to `registry.example.com/myimage`.\n\n            Use the `tag` parameter to specify the tag to push.\n          type: \"string\"\n          required: true\n        - name: \"tag\"\n          in: \"query\"\n          description: |\n            Tag of the image to push. For example, `latest`. If no tag is provided,\n            all tags of the given image that are present in the local image store\n            are pushed.\n          type: \"string\"\n        - name: \"platform\"\n          type: \"string\"\n          in: \"query\"\n          description: |\n            JSON-encoded OCI platform to select the platform-variant to push.\n            If not provided, all available variants will attempt to be pushed.\n\n            If the daemon provides a multi-platform image store, this selects\n            the platform-variant to push to the registry. If the image is\n            a single-platform image, or if the multi-platform image does not\n            provide a variant matching the given platform, an error is returned.\n\n            Example: `{\"os\": \"linux\", \"architecture\": \"arm\", \"variant\": \"v5\"}`\n        - name: \"X-Registry-Auth\"\n          in: \"header\"\n          description: |\n            A base64url-encoded auth configuration.\n\n            Refer to the [authentication section](#section/Authentication) for\n            details.\n          type: \"string\"\n          required: true\n      tags: [\"Image\"]\n  /images/{name}/tag:\n    post:\n      summary: \"Tag an image\"\n      description: \"Tag an image so that it becomes part of a repository.\"\n      operationId: \"ImageTag\"\n      responses:\n        201:\n          description: \"No error\"\n        400:\n          description: \"Bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"No such image\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        409:\n          description: \"Conflict\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: \"Image name or ID to tag.\"\n          type: \"string\"\n          required: true\n        - name: \"repo\"\n          in: \"query\"\n          description: \"The repository to tag in. For example, `someuser/someimage`.\"\n          type: \"string\"\n        - name: \"tag\"\n          in: \"query\"\n          description: \"The name of the new tag.\"\n          type: \"string\"\n      tags: [\"Image\"]\n  /images/{name}:\n    delete:\n      summary: \"Remove an image\"\n      description: |\n        Remove an image, along with any untagged parent images that were\n        referenced by that image.\n\n        Images can't be removed if they have descendant images, are being\n        used by a running container or are being used by a build.\n      operationId: \"ImageDelete\"\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"The image was deleted successfully\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/ImageDeleteResponseItem\"\n          examples:\n            application/json:\n              - Untagged: \"3e2f21a89f\"\n              - Deleted: \"3e2f21a89f\"\n              - Deleted: \"53b4f83ac9\"\n        404:\n          description: \"No such image\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        409:\n          description: \"Conflict\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: \"Image name or ID\"\n          type: \"string\"\n          required: true\n        - name: \"force\"\n          in: \"query\"\n          description: \"Remove the image even if it is being used by stopped containers or has other tags\"\n          type: \"boolean\"\n          default: false\n        - name: \"noprune\"\n          in: \"query\"\n          description: \"Do not delete untagged parent images\"\n          type: \"boolean\"\n          default: false\n        - name: \"platforms\"\n          in: \"query\"\n          description: |\n            Select platform-specific content to delete.\n            Multiple values are accepted.\n            Each platform is a OCI platform encoded as a JSON string.\n          type: \"array\"\n          items:\n            # This should be OCIPlatform\n            # but $ref is not supported for array in query in Swagger 2.0\n            # $ref: \"#/definitions/OCIPlatform\"\n            type: \"string\"\n      tags: [\"Image\"]\n  /images/search:\n    get:\n      summary: \"Search images\"\n      description: \"Search for an image on Docker Hub.\"\n      operationId: \"ImageSearch\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            type: \"array\"\n            items:\n              type: \"object\"\n              title: \"ImageSearchResponseItem\"\n              properties:\n                description:\n                  type: \"string\"\n                is_official:\n                  type: \"boolean\"\n                is_automated:\n                  description: |\n                    Whether this repository has automated builds enabled.\n\n                    <p><br /></p>\n\n                    > **Deprecated**: This field is deprecated and will always be \"false\".\n                  type: \"boolean\"\n                  example: false\n                name:\n                  type: \"string\"\n                star_count:\n                  type: \"integer\"\n          examples:\n            application/json:\n              - description: \"A minimal Docker image based on Alpine Linux with a complete package index and only 5 MB in size!\"\n                is_official: true\n                is_automated: false\n                name: \"alpine\"\n                star_count: 10093\n              - description: \"Busybox base image.\"\n                is_official: true\n                is_automated: false\n                name: \"Busybox base image.\"\n                star_count: 3037\n              - description: \"The PostgreSQL object-relational database system provides reliability and data integrity.\"\n                is_official: true\n                is_automated: false\n                name: \"postgres\"\n                star_count: 12408\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"term\"\n          in: \"query\"\n          description: \"Term to search\"\n          type: \"string\"\n          required: true\n        - name: \"limit\"\n          in: \"query\"\n          description: \"Maximum number of results to return\"\n          type: \"integer\"\n        - name: \"filters\"\n          in: \"query\"\n          description: |\n            A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:\n\n            - `is-official=(true|false)`\n            - `stars=<number>` Matches images that has at least 'number' stars.\n          type: \"string\"\n      tags: [\"Image\"]\n  /images/prune:\n    post:\n      summary: \"Delete unused images\"\n      produces:\n        - \"application/json\"\n      operationId: \"ImagePrune\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          description: |\n            Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters:\n\n            - `dangling=<boolean>` When set to `true` (or `1`), prune only\n               unused *and* untagged images. When set to `false`\n               (or `0`), all unused images are pruned.\n            - `until=<string>` Prune images created before this timestamp. The `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n            - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune images with (or without, in case `label!=...` is used) the specified labels.\n          type: \"string\"\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            type: \"object\"\n            title: \"ImagePruneResponse\"\n            properties:\n              ImagesDeleted:\n                description: \"Images that were deleted\"\n                type: \"array\"\n                items:\n                  $ref: \"#/definitions/ImageDeleteResponseItem\"\n              SpaceReclaimed:\n                description: \"Disk space reclaimed in bytes\"\n                type: \"integer\"\n                format: \"int64\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Image\"]\n  /auth:\n    post:\n      summary: \"Check auth configuration\"\n      description: |\n        Validate credentials for a registry and, if available, get an identity\n        token for accessing the registry without password.\n      operationId: \"SystemAuth\"\n      consumes: [\"application/json\"]\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"An identity token was generated successfully.\"\n          schema:\n            type: \"object\"\n            title: \"SystemAuthResponse\"\n            required: [Status]\n            properties:\n              Status:\n                description: \"The status of the authentication\"\n                type: \"string\"\n                x-nullable: false\n              IdentityToken:\n                description: \"An opaque token used to authenticate a user after a successful login\"\n                type: \"string\"\n                x-nullable: false\n          examples:\n            application/json:\n              Status: \"Login Succeeded\"\n              IdentityToken: \"9cbaf023786cd7...\"\n        204:\n          description: \"No error\"\n        401:\n          description: \"Auth error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"authConfig\"\n          in: \"body\"\n          description: \"Authentication to check\"\n          schema:\n            $ref: \"#/definitions/AuthConfig\"\n      tags: [\"System\"]\n  /info:\n    get:\n      summary: \"Get system information\"\n      operationId: \"SystemInfo\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            $ref: \"#/definitions/SystemInfo\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"System\"]\n  /version:\n    get:\n      summary: \"Get version\"\n      description: \"Returns the version of Docker that is running and various information about the system that Docker is running on.\"\n      operationId: \"SystemVersion\"\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/SystemVersion\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"System\"]\n  /_ping:\n    get:\n      summary: \"Ping\"\n      description: \"This is a dummy endpoint you can use to test if the server is accessible.\"\n      operationId: \"SystemPing\"\n      produces: [\"text/plain\"]\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"string\"\n            example: \"OK\"\n          headers:\n            Api-Version:\n              type: \"string\"\n              description: \"Max API Version the server supports\"\n            Builder-Version:\n              type: \"string\"\n              description: |\n                Default version of docker image builder\n\n                The default on Linux is version \"2\" (BuildKit), but the daemon\n                can be configured to recommend version \"1\" (classic Builder).\n                Windows does not yet support BuildKit for native Windows images,\n                and uses \"1\" (classic builder) as a default.\n\n                This value is a recommendation as advertised by the daemon, and\n                it is up to the client to choose which builder to use.\n              default: \"2\"\n            Docker-Experimental:\n              type: \"boolean\"\n              description: \"If the server is running with experimental mode enabled\"\n            Swarm:\n              type: \"string\"\n              enum: [\"inactive\", \"pending\", \"error\", \"locked\", \"active/worker\", \"active/manager\"]\n              description: |\n                Contains information about Swarm status of the daemon,\n                and if the daemon is acting as a manager or worker node.\n              default: \"inactive\"\n            Cache-Control:\n              type: \"string\"\n              default: \"no-cache, no-store, must-revalidate\"\n            Pragma:\n              type: \"string\"\n              default: \"no-cache\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          headers:\n            Cache-Control:\n              type: \"string\"\n              default: \"no-cache, no-store, must-revalidate\"\n            Pragma:\n              type: \"string\"\n              default: \"no-cache\"\n      tags: [\"System\"]\n    head:\n      summary: \"Ping\"\n      description: \"This is a dummy endpoint you can use to test if the server is accessible.\"\n      operationId: \"SystemPingHead\"\n      produces: [\"text/plain\"]\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"string\"\n            example: \"(empty)\"\n          headers:\n            Api-Version:\n              type: \"string\"\n              description: \"Max API Version the server supports\"\n            Builder-Version:\n              type: \"string\"\n              description: \"Default version of docker image builder\"\n            Docker-Experimental:\n              type: \"boolean\"\n              description: \"If the server is running with experimental mode enabled\"\n            Swarm:\n              type: \"string\"\n              enum: [\"inactive\", \"pending\", \"error\", \"locked\", \"active/worker\", \"active/manager\"]\n              description: |\n                Contains information about Swarm status of the daemon,\n                and if the daemon is acting as a manager or worker node.\n              default: \"inactive\"\n            Cache-Control:\n              type: \"string\"\n              default: \"no-cache, no-store, must-revalidate\"\n            Pragma:\n              type: \"string\"\n              default: \"no-cache\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"System\"]\n  /commit:\n    post:\n      summary: \"Create a new image from a container\"\n      operationId: \"ImageCommit\"\n      consumes:\n        - \"application/json\"\n      produces:\n        - \"application/json\"\n      responses:\n        201:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/IDResponse\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"containerConfig\"\n          in: \"body\"\n          description: \"The container configuration\"\n          schema:\n            $ref: \"#/definitions/ContainerConfig\"\n        - name: \"container\"\n          in: \"query\"\n          description: \"The ID or name of the container to commit\"\n          type: \"string\"\n        - name: \"repo\"\n          in: \"query\"\n          description: \"Repository name for the created image\"\n          type: \"string\"\n        - name: \"tag\"\n          in: \"query\"\n          description: \"Tag name for the create image\"\n          type: \"string\"\n        - name: \"comment\"\n          in: \"query\"\n          description: \"Commit message\"\n          type: \"string\"\n        - name: \"author\"\n          in: \"query\"\n          description: \"Author of the image (e.g., `John Hannibal Smith <hannibal@a-team.com>`)\"\n          type: \"string\"\n        - name: \"pause\"\n          in: \"query\"\n          description: \"Whether to pause the container before committing\"\n          type: \"boolean\"\n          default: true\n        - name: \"changes\"\n          in: \"query\"\n          description: \"`Dockerfile` instructions to apply while committing\"\n          type: \"string\"\n      tags: [\"Image\"]\n  /events:\n    get:\n      summary: \"Monitor events\"\n      description: |\n        Stream real-time events from the server.\n\n        Various objects within Docker report events when something happens to them.\n\n        Containers report these events: `attach`, `commit`, `copy`, `create`, `destroy`, `detach`, `die`, `exec_create`, `exec_detach`, `exec_start`, `exec_die`, `export`, `health_status`, `kill`, `oom`, `pause`, `rename`, `resize`, `restart`, `start`, `stop`, `top`, `unpause`, `update`, and `prune`\n\n        Images report these events: `create`, `delete`, `import`, `load`, `pull`, `push`, `save`, `tag`, `untag`, and `prune`\n\n        Volumes report these events: `create`, `mount`, `unmount`, `destroy`, and `prune`\n\n        Networks report these events: `create`, `connect`, `disconnect`, `destroy`, `update`, `remove`, and `prune`\n\n        The Docker daemon reports these events: `reload`\n\n        Services report these events: `create`, `update`, and `remove`\n\n        Nodes report these events: `create`, `update`, and `remove`\n\n        Secrets report these events: `create`, `update`, and `remove`\n\n        Configs report these events: `create`, `update`, and `remove`\n\n        The Builder reports `prune` events\n\n      operationId: \"SystemEvents\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/EventMessage\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"since\"\n          in: \"query\"\n          description: \"Show events created since this timestamp then stream new events.\"\n          type: \"string\"\n        - name: \"until\"\n          in: \"query\"\n          description: \"Show events created until this timestamp then stop streaming.\"\n          type: \"string\"\n        - name: \"filters\"\n          in: \"query\"\n          description: |\n            A JSON encoded value of filters (a `map[string][]string`) to process on the event list. Available filters:\n\n            - `config=<string>` config name or ID\n            - `container=<string>` container name or ID\n            - `daemon=<string>` daemon name or ID\n            - `event=<string>` event type\n            - `image=<string>` image name or ID\n            - `label=<string>` image or container label\n            - `network=<string>` network name or ID\n            - `node=<string>` node ID\n            - `plugin`=<string> plugin name or ID\n            - `scope`=<string> local or swarm\n            - `secret=<string>` secret name or ID\n            - `service=<string>` service name or ID\n            - `type=<string>` object to filter by, one of `container`, `image`, `volume`, `network`, `daemon`, `plugin`, `node`, `service`, `secret` or `config`\n            - `volume=<string>` volume name\n          type: \"string\"\n      tags: [\"System\"]\n  /system/df:\n    get:\n      summary: \"Get data usage information\"\n      operationId: \"SystemDataUsage\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"object\"\n            title: \"SystemDataUsageResponse\"\n            properties:\n              LayersSize:\n                type: \"integer\"\n                format: \"int64\"\n              Images:\n                type: \"array\"\n                items:\n                  $ref: \"#/definitions/ImageSummary\"\n              Containers:\n                type: \"array\"\n                items:\n                  $ref: \"#/definitions/ContainerSummary\"\n              Volumes:\n                type: \"array\"\n                items:\n                  $ref: \"#/definitions/Volume\"\n              BuildCache:\n                type: \"array\"\n                items:\n                  $ref: \"#/definitions/BuildCache\"\n            example:\n              LayersSize: 1092588\n              Images:\n                -\n                  Id: \"sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749\"\n                  ParentId: \"\"\n                  RepoTags:\n                    - \"busybox:latest\"\n                  RepoDigests:\n                    - \"busybox@sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6\"\n                  Created: 1466724217\n                  Size: 1092588\n                  SharedSize: 0\n                  Labels: {}\n                  Containers: 1\n              Containers:\n                -\n                  Id: \"e575172ed11dc01bfce087fb27bee502db149e1a0fad7c296ad300bbff178148\"\n                  Names:\n                    - \"/top\"\n                  Image: \"busybox\"\n                  ImageID: \"sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749\"\n                  Command: \"top\"\n                  Created: 1472592424\n                  Ports: []\n                  SizeRootFs: 1092588\n                  Labels: {}\n                  State: \"exited\"\n                  Status: \"Exited (0) 56 minutes ago\"\n                  HostConfig:\n                    NetworkMode: \"default\"\n                  NetworkSettings:\n                    Networks:\n                      bridge:\n                        IPAMConfig: null\n                        Links: null\n                        Aliases: null\n                        NetworkID: \"d687bc59335f0e5c9ee8193e5612e8aee000c8c62ea170cfb99c098f95899d92\"\n                        EndpointID: \"8ed5115aeaad9abb174f68dcf135b49f11daf597678315231a32ca28441dec6a\"\n                        Gateway: \"172.18.0.1\"\n                        IPAddress: \"172.18.0.2\"\n                        IPPrefixLen: 16\n                        IPv6Gateway: \"\"\n                        GlobalIPv6Address: \"\"\n                        GlobalIPv6PrefixLen: 0\n                        MacAddress: \"02:42:ac:12:00:02\"\n                  Mounts: []\n              Volumes:\n                -\n                  Name: \"my-volume\"\n                  Driver: \"local\"\n                  Mountpoint: \"/var/lib/docker/volumes/my-volume/_data\"\n                  Labels: null\n                  Scope: \"local\"\n                  Options: null\n                  UsageData:\n                    Size: 10920104\n                    RefCount: 2\n              BuildCache:\n                -\n                  ID: \"hw53o5aio51xtltp5xjp8v7fx\"\n                  Parents: []\n                  Type: \"regular\"\n                  Description: \"pulled from docker.io/library/debian@sha256:234cb88d3020898631af0ccbbcca9a66ae7306ecd30c9720690858c1b007d2a0\"\n                  InUse: false\n                  Shared: true\n                  Size: 0\n                  CreatedAt: \"2021-06-28T13:31:01.474619385Z\"\n                  LastUsedAt: \"2021-07-07T22:02:32.738075951Z\"\n                  UsageCount: 26\n                -\n                  ID: \"ndlpt0hhvkqcdfkputsk4cq9c\"\n                  Parents: [\"ndlpt0hhvkqcdfkputsk4cq9c\"]\n                  Type: \"regular\"\n                  Description: \"mount / from exec /bin/sh -c echo 'Binary::apt::APT::Keep-Downloaded-Packages \\\"true\\\";' > /etc/apt/apt.conf.d/keep-cache\"\n                  InUse: false\n                  Shared: true\n                  Size: 51\n                  CreatedAt: \"2021-06-28T13:31:03.002625487Z\"\n                  LastUsedAt: \"2021-07-07T22:02:32.773909517Z\"\n                  UsageCount: 26\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"type\"\n          in: \"query\"\n          description: |\n            Object types, for which to compute and return data.\n          type: \"array\"\n          collectionFormat: multi\n          items:\n            type: \"string\"\n            enum: [\"container\", \"image\", \"volume\", \"build-cache\"]\n      tags: [\"System\"]\n  /images/{name}/get:\n    get:\n      summary: \"Export an image\"\n      description: |\n        Get a tarball containing all images and metadata for a repository.\n\n        If `name` is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned. If `name` is an image ID, similarly only that image (and its parents) are returned, but with the exclusion of the `repositories` file in the tarball, as there were no image names referenced.\n\n        ### Image tarball format\n\n        An image tarball contains [Content as defined in the OCI Image Layout Specification](https://github.com/opencontainers/image-spec/blob/v1.1.1/image-layout.md#content).\n\n        Additionally, includes the manifest.json file associated with a backwards compatible docker save format.\n\n        If the tarball defines a repository, the tarball should also include a `repositories` file at the root that contains a list of repository and tag names mapped to layer IDs.\n\n        ```json\n        {\n          \"hello-world\": {\n            \"latest\": \"565a9d68a73f6706862bfe8409a7f659776d4d60a8d096eb4a3cbce6999cc2a1\"\n          }\n        }\n        ```\n      operationId: \"ImageGet\"\n      produces:\n        - \"application/x-tar\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"string\"\n            format: \"binary\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: \"Image name or ID\"\n          type: \"string\"\n          required: true\n        - name: \"platform\"\n          type: \"string\"\n          in: \"query\"\n          description: |\n            JSON encoded OCI platform describing a platform which will be used\n            to select a platform-specific image to be saved if the image is\n            multi-platform.\n            If not provided, the full multi-platform image will be saved.\n\n            Example: `{\"os\": \"linux\", \"architecture\": \"arm\", \"variant\": \"v5\"}`\n      tags: [\"Image\"]\n  /images/get:\n    get:\n      summary: \"Export several images\"\n      description: |\n        Get a tarball containing all images and metadata for several image\n        repositories.\n\n        For each value of the `names` parameter: if it is a specific name and\n        tag (e.g. `ubuntu:latest`), then only that image (and its parents) are\n        returned; if it is an image ID, similarly only that image (and its parents)\n        are returned and there would be no names referenced in the 'repositories'\n        file for this image ID.\n\n        For details on the format, see the [export image endpoint](#operation/ImageGet).\n      operationId: \"ImageGetAll\"\n      produces:\n        - \"application/x-tar\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"string\"\n            format: \"binary\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"names\"\n          in: \"query\"\n          description: \"Image names to filter by\"\n          type: \"array\"\n          items:\n            type: \"string\"\n        - name: \"platform\"\n          type: \"string\"\n          in: \"query\"\n          description: |\n            JSON encoded OCI platform describing a platform which will be used\n            to select a platform-specific image to be saved if the image is\n            multi-platform.\n            If not provided, the full multi-platform image will be saved.\n\n            Example: `{\"os\": \"linux\", \"architecture\": \"arm\", \"variant\": \"v5\"}`\n      tags: [\"Image\"]\n  /images/load:\n    post:\n      summary: \"Import images\"\n      description: |\n        Load a set of images and tags into a repository.\n\n        For details on the format, see the [export image endpoint](#operation/ImageGet).\n      operationId: \"ImageLoad\"\n      consumes:\n        - \"application/x-tar\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"no error\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"imagesTarball\"\n          in: \"body\"\n          description: \"Tar archive containing images\"\n          schema:\n            type: \"string\"\n            format: \"binary\"\n        - name: \"quiet\"\n          in: \"query\"\n          description: \"Suppress progress details during load.\"\n          type: \"boolean\"\n          default: false\n        - name: \"platform\"\n          type: \"string\"\n          in: \"query\"\n          description: |\n            JSON encoded OCI platform describing a platform which will be used\n            to select a platform-specific image to be load if the image is\n            multi-platform.\n            If not provided, the full multi-platform image will be loaded.\n\n            Example: `{\"os\": \"linux\", \"architecture\": \"arm\", \"variant\": \"v5\"}`\n      tags: [\"Image\"]\n  /containers/{id}/exec:\n    post:\n      summary: \"Create an exec instance\"\n      description: \"Run a command inside a running container.\"\n      operationId: \"ContainerExec\"\n      consumes:\n        - \"application/json\"\n      produces:\n        - \"application/json\"\n      responses:\n        201:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/IDResponse\"\n        404:\n          description: \"no such container\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such container: c2ada9df5af8\"\n        409:\n          description: \"container is paused\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"execConfig\"\n          in: \"body\"\n          description: \"Exec configuration\"\n          schema:\n            type: \"object\"\n            title: \"ExecConfig\"\n            properties:\n              AttachStdin:\n                type: \"boolean\"\n                description: \"Attach to `stdin` of the exec command.\"\n              AttachStdout:\n                type: \"boolean\"\n                description: \"Attach to `stdout` of the exec command.\"\n              AttachStderr:\n                type: \"boolean\"\n                description: \"Attach to `stderr` of the exec command.\"\n              ConsoleSize:\n                type: \"array\"\n                description: \"Initial console size, as an `[height, width]` array.\"\n                x-nullable: true\n                minItems: 2\n                maxItems: 2\n                items:\n                  type: \"integer\"\n                  minimum: 0\n                example: [80, 64]\n              DetachKeys:\n                type: \"string\"\n                description: |\n                  Override the key sequence for detaching a container. Format is\n                  a single character `[a-Z]` or `ctrl-<value>` where `<value>`\n                  is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.\n              Tty:\n                type: \"boolean\"\n                description: \"Allocate a pseudo-TTY.\"\n              Env:\n                description: |\n                  A list of environment variables in the form `[\"VAR=value\", ...]`.\n                type: \"array\"\n                items:\n                  type: \"string\"\n              Cmd:\n                type: \"array\"\n                description: \"Command to run, as a string or array of strings.\"\n                items:\n                  type: \"string\"\n              Privileged:\n                type: \"boolean\"\n                description: \"Runs the exec process with extended privileges.\"\n                default: false\n              User:\n                type: \"string\"\n                description: |\n                  The user, and optionally, group to run the exec process inside\n                  the container. Format is one of: `user`, `user:group`, `uid`,\n                  or `uid:gid`.\n              WorkingDir:\n                type: \"string\"\n                description: |\n                  The working directory for the exec process inside the container.\n            example:\n              AttachStdin: false\n              AttachStdout: true\n              AttachStderr: true\n              DetachKeys: \"ctrl-p,ctrl-q\"\n              Tty: false\n              Cmd:\n                - \"date\"\n              Env:\n                - \"FOO=bar\"\n                - \"BAZ=quux\"\n          required: true\n        - name: \"id\"\n          in: \"path\"\n          description: \"ID or name of container\"\n          type: \"string\"\n          required: true\n      tags: [\"Exec\"]\n  /exec/{id}/start:\n    post:\n      summary: \"Start an exec instance\"\n      description: |\n        Starts a previously set up exec instance. If detach is true, this endpoint\n        returns immediately after starting the command. Otherwise, it sets up an\n        interactive session with the command.\n      operationId: \"ExecStart\"\n      consumes:\n        - \"application/json\"\n      produces:\n        - \"application/vnd.docker.raw-stream\"\n        - \"application/vnd.docker.multiplexed-stream\"\n      responses:\n        200:\n          description: \"No error\"\n        404:\n          description: \"No such exec instance\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        409:\n          description: \"Container is stopped or paused\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"execStartConfig\"\n          in: \"body\"\n          schema:\n            type: \"object\"\n            title: \"ExecStartConfig\"\n            properties:\n              Detach:\n                type: \"boolean\"\n                description: \"Detach from the command.\"\n                example: false\n              Tty:\n                type: \"boolean\"\n                description: \"Allocate a pseudo-TTY.\"\n                example: true\n              ConsoleSize:\n                type: \"array\"\n                description: \"Initial console size, as an `[height, width]` array.\"\n                x-nullable: true\n                minItems: 2\n                maxItems: 2\n                items:\n                  type: \"integer\"\n                  minimum: 0\n                example: [80, 64]\n        - name: \"id\"\n          in: \"path\"\n          description: \"Exec instance ID\"\n          required: true\n          type: \"string\"\n      tags: [\"Exec\"]\n  /exec/{id}/resize:\n    post:\n      summary: \"Resize an exec instance\"\n      description: |\n        Resize the TTY session used by an exec instance. This endpoint only works\n        if `tty` was specified as part of creating and starting the exec instance.\n      operationId: \"ExecResize\"\n      responses:\n        200:\n          description: \"No error\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"No such exec instance\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"Exec instance ID\"\n          required: true\n          type: \"string\"\n        - name: \"h\"\n          in: \"query\"\n          required: true\n          description: \"Height of the TTY session in characters\"\n          type: \"integer\"\n        - name: \"w\"\n          in: \"query\"\n          required: true\n          description: \"Width of the TTY session in characters\"\n          type: \"integer\"\n      tags: [\"Exec\"]\n  /exec/{id}/json:\n    get:\n      summary: \"Inspect an exec instance\"\n      description: \"Return low-level information about an exec instance.\"\n      operationId: \"ExecInspect\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            type: \"object\"\n            title: \"ExecInspectResponse\"\n            properties:\n              CanRemove:\n                type: \"boolean\"\n              DetachKeys:\n                type: \"string\"\n              ID:\n                type: \"string\"\n              Running:\n                type: \"boolean\"\n              ExitCode:\n                type: \"integer\"\n              ProcessConfig:\n                $ref: \"#/definitions/ProcessConfig\"\n              OpenStdin:\n                type: \"boolean\"\n              OpenStderr:\n                type: \"boolean\"\n              OpenStdout:\n                type: \"boolean\"\n              ContainerID:\n                type: \"string\"\n              Pid:\n                type: \"integer\"\n                description: \"The system process ID for the exec process.\"\n          examples:\n            application/json:\n              CanRemove: false\n              ContainerID: \"b53ee82b53a40c7dca428523e34f741f3abc51d9f297a14ff874bf761b995126\"\n              DetachKeys: \"\"\n              ExitCode: 2\n              ID: \"f33bbfb39f5b142420f4759b2348913bd4a8d1a6d7fd56499cb41a1bb91d7b3b\"\n              OpenStderr: true\n              OpenStdin: true\n              OpenStdout: true\n              ProcessConfig:\n                arguments:\n                  - \"-c\"\n                  - \"exit 2\"\n                entrypoint: \"sh\"\n                privileged: false\n                tty: true\n                user: \"1000\"\n              Running: false\n              Pid: 42000\n        404:\n          description: \"No such exec instance\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"Exec instance ID\"\n          required: true\n          type: \"string\"\n      tags: [\"Exec\"]\n\n  /volumes:\n    get:\n      summary: \"List volumes\"\n      operationId: \"VolumeList\"\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"Summary volume data that matches the query\"\n          schema:\n            $ref: \"#/definitions/VolumeListResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          description: |\n            JSON encoded value of the filters (a `map[string][]string`) to\n            process on the volumes list. Available filters:\n\n            - `dangling=<boolean>` When set to `true` (or `1`), returns all\n               volumes that are not in use by a container. When set to `false`\n               (or `0`), only volumes that are in use by one or more\n               containers are returned.\n            - `driver=<volume-driver-name>` Matches volumes based on their driver.\n            - `label=<key>` or `label=<key>:<value>` Matches volumes based on\n               the presence of a `label` alone or a `label` and a value.\n            - `name=<volume-name>` Matches all or part of a volume name.\n          type: \"string\"\n          format: \"json\"\n      tags: [\"Volume\"]\n\n  /volumes/create:\n    post:\n      summary: \"Create a volume\"\n      operationId: \"VolumeCreate\"\n      consumes: [\"application/json\"]\n      produces: [\"application/json\"]\n      responses:\n        201:\n          description: \"The volume was created successfully\"\n          schema:\n            $ref: \"#/definitions/Volume\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"volumeConfig\"\n          in: \"body\"\n          required: true\n          description: \"Volume configuration\"\n          schema:\n            $ref: \"#/definitions/VolumeCreateOptions\"\n      tags: [\"Volume\"]\n\n  /volumes/{name}:\n    get:\n      summary: \"Inspect a volume\"\n      operationId: \"VolumeInspect\"\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            $ref: \"#/definitions/Volume\"\n        404:\n          description: \"No such volume\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          required: true\n          description: \"Volume name or ID\"\n          type: \"string\"\n      tags: [\"Volume\"]\n\n    put:\n      summary: |\n        \"Update a volume. Valid only for Swarm cluster volumes\"\n      operationId: \"VolumeUpdate\"\n      consumes: [\"application/json\"]\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"no error\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"no such volume\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: \"The name or ID of the volume\"\n          type: \"string\"\n          required: true\n        - name: \"body\"\n          in: \"body\"\n          schema:\n            # though the schema for is an object that contains only a\n            # ClusterVolumeSpec, wrapping the ClusterVolumeSpec in this object\n            # means that if, later on, we support things like changing the\n            # labels, we can do so without duplicating that information to the\n            # ClusterVolumeSpec.\n            type: \"object\"\n            description: \"Volume configuration\"\n            properties:\n              Spec:\n                $ref: \"#/definitions/ClusterVolumeSpec\"\n          description: |\n            The spec of the volume to update. Currently, only Availability may\n            change. All other fields must remain unchanged.\n        - name: \"version\"\n          in: \"query\"\n          description: |\n            The version number of the volume being updated. This is required to\n            avoid conflicting writes. Found in the volume's `ClusterVolume`\n            field.\n          type: \"integer\"\n          format: \"int64\"\n          required: true\n      tags: [\"Volume\"]\n\n    delete:\n      summary: \"Remove a volume\"\n      description: \"Instruct the driver to remove the volume.\"\n      operationId: \"VolumeDelete\"\n      responses:\n        204:\n          description: \"The volume was removed\"\n        404:\n          description: \"No such volume or volume driver\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        409:\n          description: \"Volume is in use and cannot be removed\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          required: true\n          description: \"Volume name or ID\"\n          type: \"string\"\n        - name: \"force\"\n          in: \"query\"\n          description: \"Force the removal of the volume\"\n          type: \"boolean\"\n          default: false\n      tags: [\"Volume\"]\n\n  /volumes/prune:\n    post:\n      summary: \"Delete unused volumes\"\n      produces:\n        - \"application/json\"\n      operationId: \"VolumePrune\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          description: |\n            Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\n            Available filters:\n            - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune volumes with (or without, in case `label!=...` is used) the specified labels.\n            - `all` (`all=true`) - Consider all (local) volumes for pruning and not just anonymous volumes.\n          type: \"string\"\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            type: \"object\"\n            title: \"VolumePruneResponse\"\n            properties:\n              VolumesDeleted:\n                description: \"Volumes that were deleted\"\n                type: \"array\"\n                items:\n                  type: \"string\"\n              SpaceReclaimed:\n                description: \"Disk space reclaimed in bytes\"\n                type: \"integer\"\n                format: \"int64\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Volume\"]\n  /networks:\n    get:\n      summary: \"List networks\"\n      description: |\n        Returns a list of networks. For details on the format, see the\n        [network inspect endpoint](#operation/NetworkInspect).\n\n        Note that it uses a different, smaller representation of a network than\n        inspecting a single network. For example, the list of containers attached\n        to the network is not propagated in API versions 1.28 and up.\n      operationId: \"NetworkList\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/Network\"\n          examples:\n            application/json:\n              - Name: \"bridge\"\n                Id: \"f2de39df4171b0dc801e8002d1d999b77256983dfc63041c0f34030aa3977566\"\n                Created: \"2016-10-19T06:21:00.416543526Z\"\n                Scope: \"local\"\n                Driver: \"bridge\"\n                EnableIPv4: true\n                EnableIPv6: false\n                Internal: false\n                Attachable: false\n                Ingress: false\n                IPAM:\n                  Driver: \"default\"\n                  Config:\n                    -\n                      Subnet: \"172.17.0.0/16\"\n                Options:\n                  com.docker.network.bridge.default_bridge: \"true\"\n                  com.docker.network.bridge.enable_icc: \"true\"\n                  com.docker.network.bridge.enable_ip_masquerade: \"true\"\n                  com.docker.network.bridge.host_binding_ipv4: \"0.0.0.0\"\n                  com.docker.network.bridge.name: \"docker0\"\n                  com.docker.network.driver.mtu: \"1500\"\n              - Name: \"none\"\n                Id: \"e086a3893b05ab69242d3c44e49483a3bbbd3a26b46baa8f61ab797c1088d794\"\n                Created: \"0001-01-01T00:00:00Z\"\n                Scope: \"local\"\n                Driver: \"null\"\n                EnableIPv4: false\n                EnableIPv6: false\n                Internal: false\n                Attachable: false\n                Ingress: false\n                IPAM:\n                  Driver: \"default\"\n                  Config: []\n                Containers: {}\n                Options: {}\n              - Name: \"host\"\n                Id: \"13e871235c677f196c4e1ecebb9dc733b9b2d2ab589e30c539efeda84a24215e\"\n                Created: \"0001-01-01T00:00:00Z\"\n                Scope: \"local\"\n                Driver: \"host\"\n                EnableIPv4: false\n                EnableIPv6: false\n                Internal: false\n                Attachable: false\n                Ingress: false\n                IPAM:\n                  Driver: \"default\"\n                  Config: []\n                Containers: {}\n                Options: {}\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          description: |\n            JSON encoded value of the filters (a `map[string][]string`) to process\n            on the networks list.\n\n            Available filters:\n\n            - `dangling=<boolean>` When set to `true` (or `1`), returns all\n               networks that are not in use by a container. When set to `false`\n               (or `0`), only networks that are in use by one or more\n               containers are returned.\n            - `driver=<driver-name>` Matches a network's driver.\n            - `id=<network-id>` Matches all or part of a network ID.\n            - `label=<key>` or `label=<key>=<value>` of a network label.\n            - `name=<network-name>` Matches all or part of a network name.\n            - `scope=[\"swarm\"|\"global\"|\"local\"]` Filters networks by scope (`swarm`, `global`, or `local`).\n            - `type=[\"custom\"|\"builtin\"]` Filters networks by type. The `custom` keyword returns all user-defined networks.\n          type: \"string\"\n      tags: [\"Network\"]\n\n  /networks/{id}:\n    get:\n      summary: \"Inspect a network\"\n      operationId: \"NetworkInspect\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            $ref: \"#/definitions/Network\"\n        404:\n          description: \"Network not found\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"Network ID or name\"\n          required: true\n          type: \"string\"\n        - name: \"verbose\"\n          in: \"query\"\n          description: \"Detailed inspect output for troubleshooting\"\n          type: \"boolean\"\n          default: false\n        - name: \"scope\"\n          in: \"query\"\n          description: \"Filter the network by scope (swarm, global, or local)\"\n          type: \"string\"\n      tags: [\"Network\"]\n\n    delete:\n      summary: \"Remove a network\"\n      operationId: \"NetworkDelete\"\n      responses:\n        204:\n          description: \"No error\"\n        403:\n          description: \"operation not supported for pre-defined networks\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"no such network\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"Network ID or name\"\n          required: true\n          type: \"string\"\n      tags: [\"Network\"]\n\n  /networks/create:\n    post:\n      summary: \"Create a network\"\n      operationId: \"NetworkCreate\"\n      consumes:\n        - \"application/json\"\n      produces:\n        - \"application/json\"\n      responses:\n        201:\n          description: \"Network created successfully\"\n          schema:\n            $ref: \"#/definitions/NetworkCreateResponse\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        403:\n          description: |\n            Forbidden operation. This happens when trying to create a network named after a pre-defined network,\n            or when trying to create an overlay network on a daemon which is not part of a Swarm cluster.\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"plugin not found\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"networkConfig\"\n          in: \"body\"\n          description: \"Network configuration\"\n          required: true\n          schema:\n            type: \"object\"\n            title: \"NetworkCreateRequest\"\n            required: [\"Name\"]\n            properties:\n              Name:\n                description: \"The network's name.\"\n                type: \"string\"\n                example: \"my_network\"\n              Driver:\n                description: \"Name of the network driver plugin to use.\"\n                type: \"string\"\n                default: \"bridge\"\n                example: \"bridge\"\n              Scope:\n                description: |\n                  The level at which the network exists (e.g. `swarm` for cluster-wide\n                  or `local` for machine level).\n                type: \"string\"\n              Internal:\n                description: \"Restrict external access to the network.\"\n                type: \"boolean\"\n              Attachable:\n                description: |\n                  Globally scoped network is manually attachable by regular\n                  containers from workers in swarm mode.\n                type: \"boolean\"\n                example: true\n              Ingress:\n                description: |\n                  Ingress network is the network which provides the routing-mesh\n                  in swarm mode.\n                type: \"boolean\"\n                example: false\n              ConfigOnly:\n                description: |\n                  Creates a config-only network. Config-only networks are placeholder\n                  networks for network configurations to be used by other networks.\n                  Config-only networks cannot be used directly to run containers\n                  or services.\n                type: \"boolean\"\n                default: false\n                example: false\n              ConfigFrom:\n                description: |\n                  Specifies the source which will provide the configuration for\n                  this network. The specified network must be an existing\n                  config-only network; see ConfigOnly.\n                $ref: \"#/definitions/ConfigReference\"\n              IPAM:\n                description: \"Optional custom IP scheme for the network.\"\n                $ref: \"#/definitions/IPAM\"\n              EnableIPv4:\n                description: \"Enable IPv4 on the network.\"\n                type: \"boolean\"\n                example: true\n              EnableIPv6:\n                description: \"Enable IPv6 on the network.\"\n                type: \"boolean\"\n                example: true\n              Options:\n                description: \"Network specific options to be used by the drivers.\"\n                type: \"object\"\n                additionalProperties:\n                  type: \"string\"\n                example:\n                  com.docker.network.bridge.default_bridge: \"true\"\n                  com.docker.network.bridge.enable_icc: \"true\"\n                  com.docker.network.bridge.enable_ip_masquerade: \"true\"\n                  com.docker.network.bridge.host_binding_ipv4: \"0.0.0.0\"\n                  com.docker.network.bridge.name: \"docker0\"\n                  com.docker.network.driver.mtu: \"1500\"\n              Labels:\n                description: \"User-defined key/value metadata.\"\n                type: \"object\"\n                additionalProperties:\n                  type: \"string\"\n                example:\n                  com.example.some-label: \"some-value\"\n                  com.example.some-other-label: \"some-other-value\"\n      tags: [\"Network\"]\n\n  /networks/{id}/connect:\n    post:\n      summary: \"Connect a container to a network\"\n      description: \"The network must be either a local-scoped network or a swarm-scoped network with the `attachable` option set. A network cannot be re-attached to a running container\"\n      operationId: \"NetworkConnect\"\n      consumes:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"No error\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        403:\n          description: \"Operation forbidden\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"Network or container not found\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"Network ID or name\"\n          required: true\n          type: \"string\"\n        - name: \"container\"\n          in: \"body\"\n          required: true\n          schema:\n            type: \"object\"\n            title: \"NetworkConnectRequest\"\n            properties:\n              Container:\n                type: \"string\"\n                description: \"The ID or name of the container to connect to the network.\"\n              EndpointConfig:\n                $ref: \"#/definitions/EndpointSettings\"\n            example:\n              Container: \"3613f73ba0e4\"\n              EndpointConfig:\n                IPAMConfig:\n                  IPv4Address: \"172.24.56.89\"\n                  IPv6Address: \"2001:db8::5689\"\n                MacAddress: \"02:42:ac:12:05:02\"\n                Priority: 100\n      tags: [\"Network\"]\n\n  /networks/{id}/disconnect:\n    post:\n      summary: \"Disconnect a container from a network\"\n      operationId: \"NetworkDisconnect\"\n      consumes:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"No error\"\n        403:\n          description: \"Operation not supported for swarm scoped networks\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"Network or container not found\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"Network ID or name\"\n          required: true\n          type: \"string\"\n        - name: \"container\"\n          in: \"body\"\n          required: true\n          schema:\n            type: \"object\"\n            title: \"NetworkDisconnectRequest\"\n            properties:\n              Container:\n                type: \"string\"\n                description: |\n                  The ID or name of the container to disconnect from the network.\n              Force:\n                type: \"boolean\"\n                description: |\n                  Force the container to disconnect from the network.\n      tags: [\"Network\"]\n  /networks/prune:\n    post:\n      summary: \"Delete unused networks\"\n      produces:\n        - \"application/json\"\n      operationId: \"NetworkPrune\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          description: |\n            Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\n            Available filters:\n            - `until=<timestamp>` Prune networks created before this timestamp. The `<timestamp>` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n            - `label` (`label=<key>`, `label=<key>=<value>`, `label!=<key>`, or `label!=<key>=<value>`) Prune networks with (or without, in case `label!=...` is used) the specified labels.\n          type: \"string\"\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            type: \"object\"\n            title: \"NetworkPruneResponse\"\n            properties:\n              NetworksDeleted:\n                description: \"Networks that were deleted\"\n                type: \"array\"\n                items:\n                  type: \"string\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Network\"]\n  /plugins:\n    get:\n      summary: \"List plugins\"\n      operationId: \"PluginList\"\n      description: \"Returns information about installed plugins.\"\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"No error\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/Plugin\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          type: \"string\"\n          description: |\n            A JSON encoded value of the filters (a `map[string][]string`) to\n            process on the plugin list.\n\n            Available filters:\n\n            - `capability=<capability name>`\n            - `enable=<true>|<false>`\n      tags: [\"Plugin\"]\n\n  /plugins/privileges:\n    get:\n      summary: \"Get plugin privileges\"\n      operationId: \"GetPluginPrivileges\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/PluginPrivilege\"\n            example:\n              - Name: \"network\"\n                Description: \"\"\n                Value:\n                  - \"host\"\n              - Name: \"mount\"\n                Description: \"\"\n                Value:\n                  - \"/data\"\n              - Name: \"device\"\n                Description: \"\"\n                Value:\n                  - \"/dev/cpu_dma_latency\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"remote\"\n          in: \"query\"\n          description: |\n            The name of the plugin. The `:latest` tag is optional, and is the\n            default if omitted.\n          required: true\n          type: \"string\"\n      tags:\n        - \"Plugin\"\n\n  /plugins/pull:\n    post:\n      summary: \"Install a plugin\"\n      operationId: \"PluginPull\"\n      description: |\n        Pulls and installs a plugin. After the plugin is installed, it can be\n        enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).\n      produces:\n        - \"application/json\"\n      responses:\n        204:\n          description: \"no error\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"remote\"\n          in: \"query\"\n          description: |\n            Remote reference for plugin to install.\n\n            The `:latest` tag is optional, and is used as the default if omitted.\n          required: true\n          type: \"string\"\n        - name: \"name\"\n          in: \"query\"\n          description: |\n            Local name for the pulled plugin.\n\n            The `:latest` tag is optional, and is used as the default if omitted.\n          required: false\n          type: \"string\"\n        - name: \"X-Registry-Auth\"\n          in: \"header\"\n          description: |\n            A base64url-encoded auth configuration to use when pulling a plugin\n            from a registry.\n\n            Refer to the [authentication section](#section/Authentication) for\n            details.\n          type: \"string\"\n        - name: \"body\"\n          in: \"body\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/PluginPrivilege\"\n            example:\n              - Name: \"network\"\n                Description: \"\"\n                Value:\n                  - \"host\"\n              - Name: \"mount\"\n                Description: \"\"\n                Value:\n                  - \"/data\"\n              - Name: \"device\"\n                Description: \"\"\n                Value:\n                  - \"/dev/cpu_dma_latency\"\n      tags: [\"Plugin\"]\n  /plugins/{name}/json:\n    get:\n      summary: \"Inspect a plugin\"\n      operationId: \"PluginInspect\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/Plugin\"\n        404:\n          description: \"plugin is not installed\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: |\n            The name of the plugin. The `:latest` tag is optional, and is the\n            default if omitted.\n          required: true\n          type: \"string\"\n      tags: [\"Plugin\"]\n  /plugins/{name}:\n    delete:\n      summary: \"Remove a plugin\"\n      operationId: \"PluginDelete\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/Plugin\"\n        404:\n          description: \"plugin is not installed\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: |\n            The name of the plugin. The `:latest` tag is optional, and is the\n            default if omitted.\n          required: true\n          type: \"string\"\n        - name: \"force\"\n          in: \"query\"\n          description: |\n            Disable the plugin before removing. This may result in issues if the\n            plugin is in use by a container.\n          type: \"boolean\"\n          default: false\n      tags: [\"Plugin\"]\n  /plugins/{name}/enable:\n    post:\n      summary: \"Enable a plugin\"\n      operationId: \"PluginEnable\"\n      responses:\n        200:\n          description: \"no error\"\n        404:\n          description: \"plugin is not installed\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: |\n            The name of the plugin. The `:latest` tag is optional, and is the\n            default if omitted.\n          required: true\n          type: \"string\"\n        - name: \"timeout\"\n          in: \"query\"\n          description: \"Set the HTTP client timeout (in seconds)\"\n          type: \"integer\"\n          default: 0\n      tags: [\"Plugin\"]\n  /plugins/{name}/disable:\n    post:\n      summary: \"Disable a plugin\"\n      operationId: \"PluginDisable\"\n      responses:\n        200:\n          description: \"no error\"\n        404:\n          description: \"plugin is not installed\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: |\n            The name of the plugin. The `:latest` tag is optional, and is the\n            default if omitted.\n          required: true\n          type: \"string\"\n        - name: \"force\"\n          in: \"query\"\n          description: |\n            Force disable a plugin even if still in use.\n          required: false\n          type: \"boolean\"\n      tags: [\"Plugin\"]\n  /plugins/{name}/upgrade:\n    post:\n      summary: \"Upgrade a plugin\"\n      operationId: \"PluginUpgrade\"\n      responses:\n        204:\n          description: \"no error\"\n        404:\n          description: \"plugin not installed\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: |\n            The name of the plugin. The `:latest` tag is optional, and is the\n            default if omitted.\n          required: true\n          type: \"string\"\n        - name: \"remote\"\n          in: \"query\"\n          description: |\n            Remote reference to upgrade to.\n\n            The `:latest` tag is optional, and is used as the default if omitted.\n          required: true\n          type: \"string\"\n        - name: \"X-Registry-Auth\"\n          in: \"header\"\n          description: |\n            A base64url-encoded auth configuration to use when pulling a plugin\n            from a registry.\n\n            Refer to the [authentication section](#section/Authentication) for\n            details.\n          type: \"string\"\n        - name: \"body\"\n          in: \"body\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/PluginPrivilege\"\n            example:\n              - Name: \"network\"\n                Description: \"\"\n                Value:\n                  - \"host\"\n              - Name: \"mount\"\n                Description: \"\"\n                Value:\n                  - \"/data\"\n              - Name: \"device\"\n                Description: \"\"\n                Value:\n                  - \"/dev/cpu_dma_latency\"\n      tags: [\"Plugin\"]\n  /plugins/create:\n    post:\n      summary: \"Create a plugin\"\n      operationId: \"PluginCreate\"\n      consumes:\n        - \"application/x-tar\"\n      responses:\n        204:\n          description: \"no error\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"query\"\n          description: |\n            The name of the plugin. The `:latest` tag is optional, and is the\n            default if omitted.\n          required: true\n          type: \"string\"\n        - name: \"tarContext\"\n          in: \"body\"\n          description: \"Path to tar containing plugin rootfs and manifest\"\n          schema:\n            type: \"string\"\n            format: \"binary\"\n      tags: [\"Plugin\"]\n  /plugins/{name}/push:\n    post:\n      summary: \"Push a plugin\"\n      operationId: \"PluginPush\"\n      description: |\n        Push a plugin to the registry.\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: |\n            The name of the plugin. The `:latest` tag is optional, and is the\n            default if omitted.\n          required: true\n          type: \"string\"\n      responses:\n        200:\n          description: \"no error\"\n        404:\n          description: \"plugin not installed\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Plugin\"]\n  /plugins/{name}/set:\n    post:\n      summary: \"Configure a plugin\"\n      operationId: \"PluginSet\"\n      consumes:\n        - \"application/json\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: |\n            The name of the plugin. The `:latest` tag is optional, and is the\n            default if omitted.\n          required: true\n          type: \"string\"\n        - name: \"body\"\n          in: \"body\"\n          schema:\n            type: \"array\"\n            items:\n              type: \"string\"\n            example: [\"DEBUG=1\"]\n      responses:\n        204:\n          description: \"No error\"\n        404:\n          description: \"Plugin not installed\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Plugin\"]\n  /nodes:\n    get:\n      summary: \"List nodes\"\n      operationId: \"NodeList\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/Node\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          description: |\n            Filters to process on the nodes list, encoded as JSON (a `map[string][]string`).\n\n            Available filters:\n            - `id=<node id>`\n            - `label=<engine label>`\n            - `membership=`(`accepted`|`pending`)`\n            - `name=<node name>`\n            - `node.label=<node label>`\n            - `role=`(`manager`|`worker`)`\n          type: \"string\"\n      tags: [\"Node\"]\n  /nodes/{id}:\n    get:\n      summary: \"Inspect a node\"\n      operationId: \"NodeInspect\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/Node\"\n        404:\n          description: \"no such node\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"The ID or name of the node\"\n          type: \"string\"\n          required: true\n      tags: [\"Node\"]\n    delete:\n      summary: \"Delete a node\"\n      operationId: \"NodeDelete\"\n      responses:\n        200:\n          description: \"no error\"\n        404:\n          description: \"no such node\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"The ID or name of the node\"\n          type: \"string\"\n          required: true\n        - name: \"force\"\n          in: \"query\"\n          description: \"Force remove a node from the swarm\"\n          default: false\n          type: \"boolean\"\n      tags: [\"Node\"]\n  /nodes/{id}/update:\n    post:\n      summary: \"Update a node\"\n      operationId: \"NodeUpdate\"\n      responses:\n        200:\n          description: \"no error\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"no such node\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"The ID of the node\"\n          type: \"string\"\n          required: true\n        - name: \"body\"\n          in: \"body\"\n          schema:\n            $ref: \"#/definitions/NodeSpec\"\n        - name: \"version\"\n          in: \"query\"\n          description: |\n            The version number of the node object being updated. This is required\n            to avoid conflicting writes.\n          type: \"integer\"\n          format: \"int64\"\n          required: true\n      tags: [\"Node\"]\n  /swarm:\n    get:\n      summary: \"Inspect swarm\"\n      operationId: \"SwarmInspect\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/Swarm\"\n        404:\n          description: \"no such swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Swarm\"]\n  /swarm/init:\n    post:\n      summary: \"Initialize a new swarm\"\n      operationId: \"SwarmInit\"\n      produces:\n        - \"application/json\"\n        - \"text/plain\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            description: \"The node ID\"\n            type: \"string\"\n            example: \"7v2t30z9blmxuhnyo6s4cpenp\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is already part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"body\"\n          in: \"body\"\n          required: true\n          schema:\n            type: \"object\"\n            title: \"SwarmInitRequest\"\n            properties:\n              ListenAddr:\n                description: |\n                  Listen address used for inter-manager communication, as well\n                  as determining the networking interface used for the VXLAN\n                  Tunnel Endpoint (VTEP). This can either be an address/port\n                  combination in the form `192.168.1.1:4567`, or an interface\n                  followed by a port number, like `eth0:4567`. If the port number\n                  is omitted, the default swarm listening port is used.\n                type: \"string\"\n              AdvertiseAddr:\n                description: |\n                  Externally reachable address advertised to other nodes. This\n                  can either be an address/port combination in the form\n                  `192.168.1.1:4567`, or an interface followed by a port number,\n                  like `eth0:4567`. If the port number is omitted, the port\n                  number from the listen address is used. If `AdvertiseAddr` is\n                  not specified, it will be automatically detected when possible.\n                type: \"string\"\n              DataPathAddr:\n                description: |\n                  Address or interface to use for data path traffic (format:\n                  `<ip|interface>`), for example,  `192.168.1.1`, or an interface,\n                  like `eth0`. If `DataPathAddr` is unspecified, the same address\n                  as `AdvertiseAddr` is used.\n\n                  The `DataPathAddr` specifies the address that global scope\n                  network drivers will publish towards other  nodes in order to\n                  reach the containers running on this node. Using this parameter\n                  it is possible to separate the container data traffic from the\n                  management traffic of the cluster.\n                type: \"string\"\n              DataPathPort:\n                description: |\n                  DataPathPort specifies the data path port number for data traffic.\n                  Acceptable port range is 1024 to 49151.\n                  if no port is set or is set to 0, default port 4789 will be used.\n                type: \"integer\"\n                format: \"uint32\"\n              DefaultAddrPool:\n                description: |\n                  Default Address Pool specifies default subnet pools for global\n                  scope networks.\n                type: \"array\"\n                items:\n                  type: \"string\"\n                  example: [\"10.10.0.0/16\", \"20.20.0.0/16\"]\n              ForceNewCluster:\n                description: \"Force creation of a new swarm.\"\n                type: \"boolean\"\n              SubnetSize:\n                description: |\n                  SubnetSize specifies the subnet size of the networks created\n                  from the default subnet pool.\n                type: \"integer\"\n                format: \"uint32\"\n              Spec:\n                $ref: \"#/definitions/SwarmSpec\"\n            example:\n              ListenAddr: \"0.0.0.0:2377\"\n              AdvertiseAddr: \"192.168.1.1:2377\"\n              DataPathPort: 4789\n              DefaultAddrPool: [\"10.10.0.0/8\", \"20.20.0.0/8\"]\n              SubnetSize: 24\n              ForceNewCluster: false\n              Spec:\n                Orchestration: {}\n                Raft: {}\n                Dispatcher: {}\n                CAConfig: {}\n                EncryptionConfig:\n                  AutoLockManagers: false\n      tags: [\"Swarm\"]\n  /swarm/join:\n    post:\n      summary: \"Join an existing swarm\"\n      operationId: \"SwarmJoin\"\n      responses:\n        200:\n          description: \"no error\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is already part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"body\"\n          in: \"body\"\n          required: true\n          schema:\n            type: \"object\"\n            title: \"SwarmJoinRequest\"\n            properties:\n              ListenAddr:\n                description: |\n                  Listen address used for inter-manager communication if the node\n                  gets promoted to manager, as well as determining the networking\n                  interface used for the VXLAN Tunnel Endpoint (VTEP).\n                type: \"string\"\n              AdvertiseAddr:\n                description: |\n                  Externally reachable address advertised to other nodes. This\n                  can either be an address/port combination in the form\n                  `192.168.1.1:4567`, or an interface followed by a port number,\n                  like `eth0:4567`. If the port number is omitted, the port\n                  number from the listen address is used. If `AdvertiseAddr` is\n                  not specified, it will be automatically detected when possible.\n                type: \"string\"\n              DataPathAddr:\n                description: |\n                  Address or interface to use for data path traffic (format:\n                  `<ip|interface>`), for example,  `192.168.1.1`, or an interface,\n                  like `eth0`. If `DataPathAddr` is unspecified, the same address\n                  as `AdvertiseAddr` is used.\n\n                  The `DataPathAddr` specifies the address that global scope\n                  network drivers will publish towards other nodes in order to\n                  reach the containers running on this node. Using this parameter\n                  it is possible to separate the container data traffic from the\n                  management traffic of the cluster.\n\n                type: \"string\"\n              RemoteAddrs:\n                description: |\n                  Addresses of manager nodes already participating in the swarm.\n                type: \"array\"\n                items:\n                  type: \"string\"\n              JoinToken:\n                description: \"Secret token for joining this swarm.\"\n                type: \"string\"\n            example:\n              ListenAddr: \"0.0.0.0:2377\"\n              AdvertiseAddr: \"192.168.1.1:2377\"\n              DataPathAddr: \"192.168.1.1\"\n              RemoteAddrs:\n                - \"node1:2377\"\n              JoinToken: \"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2\"\n      tags: [\"Swarm\"]\n  /swarm/leave:\n    post:\n      summary: \"Leave a swarm\"\n      operationId: \"SwarmLeave\"\n      responses:\n        200:\n          description: \"no error\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"force\"\n          description: |\n            Force leave swarm, even if this is the last manager or that it will\n            break the cluster.\n          in: \"query\"\n          type: \"boolean\"\n          default: false\n      tags: [\"Swarm\"]\n  /swarm/update:\n    post:\n      summary: \"Update a swarm\"\n      operationId: \"SwarmUpdate\"\n      responses:\n        200:\n          description: \"no error\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"body\"\n          in: \"body\"\n          required: true\n          schema:\n            $ref: \"#/definitions/SwarmSpec\"\n        - name: \"version\"\n          in: \"query\"\n          description: |\n            The version number of the swarm object being updated. This is\n            required to avoid conflicting writes.\n          type: \"integer\"\n          format: \"int64\"\n          required: true\n        - name: \"rotateWorkerToken\"\n          in: \"query\"\n          description: \"Rotate the worker join token.\"\n          type: \"boolean\"\n          default: false\n        - name: \"rotateManagerToken\"\n          in: \"query\"\n          description: \"Rotate the manager join token.\"\n          type: \"boolean\"\n          default: false\n        - name: \"rotateManagerUnlockKey\"\n          in: \"query\"\n          description: \"Rotate the manager unlock key.\"\n          type: \"boolean\"\n          default: false\n      tags: [\"Swarm\"]\n  /swarm/unlockkey:\n    get:\n      summary: \"Get the unlock key\"\n      operationId: \"SwarmUnlockkey\"\n      consumes:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"object\"\n            title: \"UnlockKeyResponse\"\n            properties:\n              UnlockKey:\n                description: \"The swarm's unlock key.\"\n                type: \"string\"\n            example:\n              UnlockKey: \"SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Swarm\"]\n  /swarm/unlock:\n    post:\n      summary: \"Unlock a locked manager\"\n      operationId: \"SwarmUnlock\"\n      consumes:\n        - \"application/json\"\n      produces:\n        - \"application/json\"\n      parameters:\n        - name: \"body\"\n          in: \"body\"\n          required: true\n          schema:\n            type: \"object\"\n            title: \"SwarmUnlockRequest\"\n            properties:\n              UnlockKey:\n                description: \"The swarm's unlock key.\"\n                type: \"string\"\n            example:\n              UnlockKey: \"SWMKEY-1-7c37Cc8654o6p38HnroywCi19pllOnGtbdZEgtKxZu8\"\n      responses:\n        200:\n          description: \"no error\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Swarm\"]\n  /services:\n    get:\n      summary: \"List services\"\n      operationId: \"ServiceList\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/Service\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          type: \"string\"\n          description: |\n            A JSON encoded value of the filters (a `map[string][]string`) to\n            process on the services list.\n\n            Available filters:\n\n            - `id=<service id>`\n            - `label=<service label>`\n            - `mode=[\"replicated\"|\"global\"]`\n            - `name=<service name>`\n        - name: \"status\"\n          in: \"query\"\n          type: \"boolean\"\n          description: |\n            Include service status, with count of running and desired tasks.\n      tags: [\"Service\"]\n  /services/create:\n    post:\n      summary: \"Create a service\"\n      operationId: \"ServiceCreate\"\n      consumes:\n        - \"application/json\"\n      produces:\n        - \"application/json\"\n      responses:\n        201:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/ServiceCreateResponse\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        403:\n          description: \"network is not eligible for services\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        409:\n          description: \"name conflicts with an existing service\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"body\"\n          in: \"body\"\n          required: true\n          schema:\n            allOf:\n              - $ref: \"#/definitions/ServiceSpec\"\n              - type: \"object\"\n                example:\n                  Name: \"web\"\n                  TaskTemplate:\n                    ContainerSpec:\n                      Image: \"nginx:alpine\"\n                      Mounts:\n                        -\n                          ReadOnly: true\n                          Source: \"web-data\"\n                          Target: \"/usr/share/nginx/html\"\n                          Type: \"volume\"\n                          VolumeOptions:\n                            DriverConfig: {}\n                            Labels:\n                              com.example.something: \"something-value\"\n                      Hosts: [\"10.10.10.10 host1\", \"ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 host2\"]\n                      User: \"33\"\n                      DNSConfig:\n                        Nameservers: [\"8.8.8.8\"]\n                        Search: [\"example.org\"]\n                        Options: [\"timeout:3\"]\n                      Secrets:\n                        -\n                          File:\n                            Name: \"www.example.org.key\"\n                            UID: \"33\"\n                            GID: \"33\"\n                            Mode: 384\n                          SecretID: \"fpjqlhnwb19zds35k8wn80lq9\"\n                          SecretName: \"example_org_domain_key\"\n                      OomScoreAdj: 0\n                    LogDriver:\n                      Name: \"json-file\"\n                      Options:\n                        max-file: \"3\"\n                        max-size: \"10M\"\n                    Placement: {}\n                    Resources:\n                      Limits:\n                        MemoryBytes: 104857600\n                      Reservations: {}\n                    RestartPolicy:\n                      Condition: \"on-failure\"\n                      Delay: 10000000000\n                      MaxAttempts: 10\n                  Mode:\n                    Replicated:\n                      Replicas: 4\n                  UpdateConfig:\n                    Parallelism: 2\n                    Delay: 1000000000\n                    FailureAction: \"pause\"\n                    Monitor: 15000000000\n                    MaxFailureRatio: 0.15\n                  RollbackConfig:\n                    Parallelism: 1\n                    Delay: 1000000000\n                    FailureAction: \"pause\"\n                    Monitor: 15000000000\n                    MaxFailureRatio: 0.15\n                  EndpointSpec:\n                    Ports:\n                      -\n                        Protocol: \"tcp\"\n                        PublishedPort: 8080\n                        TargetPort: 80\n                  Labels:\n                    foo: \"bar\"\n        - name: \"X-Registry-Auth\"\n          in: \"header\"\n          description: |\n            A base64url-encoded auth configuration for pulling from private\n            registries.\n\n            Refer to the [authentication section](#section/Authentication) for\n            details.\n          type: \"string\"\n      tags: [\"Service\"]\n  /services/{id}:\n    get:\n      summary: \"Inspect a service\"\n      operationId: \"ServiceInspect\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/Service\"\n        404:\n          description: \"no such service\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"ID or name of service.\"\n          required: true\n          type: \"string\"\n        - name: \"insertDefaults\"\n          in: \"query\"\n          description: \"Fill empty fields with default values.\"\n          type: \"boolean\"\n          default: false\n      tags: [\"Service\"]\n    delete:\n      summary: \"Delete a service\"\n      operationId: \"ServiceDelete\"\n      responses:\n        200:\n          description: \"no error\"\n        404:\n          description: \"no such service\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"ID or name of service.\"\n          required: true\n          type: \"string\"\n      tags: [\"Service\"]\n  /services/{id}/update:\n    post:\n      summary: \"Update a service\"\n      operationId: \"ServiceUpdate\"\n      consumes: [\"application/json\"]\n      produces: [\"application/json\"]\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/ServiceUpdateResponse\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"no such service\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"ID or name of service.\"\n          required: true\n          type: \"string\"\n        - name: \"body\"\n          in: \"body\"\n          required: true\n          schema:\n            allOf:\n              - $ref: \"#/definitions/ServiceSpec\"\n              - type: \"object\"\n                example:\n                  Name: \"top\"\n                  TaskTemplate:\n                    ContainerSpec:\n                      Image: \"busybox\"\n                      Args:\n                        - \"top\"\n                      OomScoreAdj: 0\n                    Resources:\n                      Limits: {}\n                      Reservations: {}\n                    RestartPolicy:\n                      Condition: \"any\"\n                      MaxAttempts: 0\n                    Placement: {}\n                    ForceUpdate: 0\n                  Mode:\n                    Replicated:\n                      Replicas: 1\n                  UpdateConfig:\n                    Parallelism: 2\n                    Delay: 1000000000\n                    FailureAction: \"pause\"\n                    Monitor: 15000000000\n                    MaxFailureRatio: 0.15\n                  RollbackConfig:\n                    Parallelism: 1\n                    Delay: 1000000000\n                    FailureAction: \"pause\"\n                    Monitor: 15000000000\n                    MaxFailureRatio: 0.15\n                  EndpointSpec:\n                    Mode: \"vip\"\n\n        - name: \"version\"\n          in: \"query\"\n          description: |\n            The version number of the service object being updated. This is\n            required to avoid conflicting writes.\n            This version number should be the value as currently set on the\n            service *before* the update. You can find the current version by\n            calling `GET /services/{id}`\n          required: true\n          type: \"integer\"\n        - name: \"registryAuthFrom\"\n          in: \"query\"\n          description: |\n            If the `X-Registry-Auth` header is not specified, this parameter\n            indicates where to find registry authorization credentials.\n          type: \"string\"\n          enum: [\"spec\", \"previous-spec\"]\n          default: \"spec\"\n        - name: \"rollback\"\n          in: \"query\"\n          description: |\n            Set to this parameter to `previous` to cause a server-side rollback\n            to the previous service spec. The supplied spec will be ignored in\n            this case.\n          type: \"string\"\n        - name: \"X-Registry-Auth\"\n          in: \"header\"\n          description: |\n            A base64url-encoded auth configuration for pulling from private\n            registries.\n\n            Refer to the [authentication section](#section/Authentication) for\n            details.\n          type: \"string\"\n\n      tags: [\"Service\"]\n  /services/{id}/logs:\n    get:\n      summary: \"Get service logs\"\n      description: |\n        Get `stdout` and `stderr` logs from a service. See also\n        [`/containers/{id}/logs`](#operation/ContainerLogs).\n\n        **Note**: This endpoint works only for services with the `local`,\n        `json-file` or `journald` logging drivers.\n      produces:\n        - \"application/vnd.docker.raw-stream\"\n        - \"application/vnd.docker.multiplexed-stream\"\n      operationId: \"ServiceLogs\"\n      responses:\n        200:\n          description: \"logs returned as a stream in response body\"\n          schema:\n            type: \"string\"\n            format: \"binary\"\n        404:\n          description: \"no such service\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such service: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID or name of the service\"\n          type: \"string\"\n        - name: \"details\"\n          in: \"query\"\n          description: \"Show service context and extra details provided to logs.\"\n          type: \"boolean\"\n          default: false\n        - name: \"follow\"\n          in: \"query\"\n          description: \"Keep connection after returning logs.\"\n          type: \"boolean\"\n          default: false\n        - name: \"stdout\"\n          in: \"query\"\n          description: \"Return logs from `stdout`\"\n          type: \"boolean\"\n          default: false\n        - name: \"stderr\"\n          in: \"query\"\n          description: \"Return logs from `stderr`\"\n          type: \"boolean\"\n          default: false\n        - name: \"since\"\n          in: \"query\"\n          description: \"Only return logs since this time, as a UNIX timestamp\"\n          type: \"integer\"\n          default: 0\n        - name: \"timestamps\"\n          in: \"query\"\n          description: \"Add timestamps to every log line\"\n          type: \"boolean\"\n          default: false\n        - name: \"tail\"\n          in: \"query\"\n          description: |\n            Only return this number of log lines from the end of the logs.\n            Specify as an integer or `all` to output all log lines.\n          type: \"string\"\n          default: \"all\"\n      tags: [\"Service\"]\n  /tasks:\n    get:\n      summary: \"List tasks\"\n      operationId: \"TaskList\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/Task\"\n            example:\n              - ID: \"0kzzo1i0y4jz6027t0k7aezc7\"\n                Version:\n                  Index: 71\n                CreatedAt: \"2016-06-07T21:07:31.171892745Z\"\n                UpdatedAt: \"2016-06-07T21:07:31.376370513Z\"\n                Spec:\n                  ContainerSpec:\n                    Image: \"redis\"\n                  Resources:\n                    Limits: {}\n                    Reservations: {}\n                  RestartPolicy:\n                    Condition: \"any\"\n                    MaxAttempts: 0\n                  Placement: {}\n                ServiceID: \"9mnpnzenvg8p8tdbtq4wvbkcz\"\n                Slot: 1\n                NodeID: \"60gvrl6tm78dmak4yl7srz94v\"\n                Status:\n                  Timestamp: \"2016-06-07T21:07:31.290032978Z\"\n                  State: \"running\"\n                  Message: \"started\"\n                  ContainerStatus:\n                    ContainerID: \"e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035\"\n                    PID: 677\n                DesiredState: \"running\"\n                NetworksAttachments:\n                  - Network:\n                      ID: \"4qvuz4ko70xaltuqbt8956gd1\"\n                      Version:\n                        Index: 18\n                      CreatedAt: \"2016-06-07T20:31:11.912919752Z\"\n                      UpdatedAt: \"2016-06-07T21:07:29.955277358Z\"\n                      Spec:\n                        Name: \"ingress\"\n                        Labels:\n                          com.docker.swarm.internal: \"true\"\n                        DriverConfiguration: {}\n                        IPAMOptions:\n                          Driver: {}\n                          Configs:\n                            - Subnet: \"10.255.0.0/16\"\n                              Gateway: \"10.255.0.1\"\n                      DriverState:\n                        Name: \"overlay\"\n                        Options:\n                          com.docker.network.driver.overlay.vxlanid_list: \"256\"\n                      IPAMOptions:\n                        Driver:\n                          Name: \"default\"\n                        Configs:\n                          - Subnet: \"10.255.0.0/16\"\n                            Gateway: \"10.255.0.1\"\n                    Addresses:\n                      - \"10.255.0.10/16\"\n              - ID: \"1yljwbmlr8er2waf8orvqpwms\"\n                Version:\n                  Index: 30\n                CreatedAt: \"2016-06-07T21:07:30.019104782Z\"\n                UpdatedAt: \"2016-06-07T21:07:30.231958098Z\"\n                Name: \"hopeful_cori\"\n                Spec:\n                  ContainerSpec:\n                    Image: \"redis\"\n                  Resources:\n                    Limits: {}\n                    Reservations: {}\n                  RestartPolicy:\n                    Condition: \"any\"\n                    MaxAttempts: 0\n                  Placement: {}\n                ServiceID: \"9mnpnzenvg8p8tdbtq4wvbkcz\"\n                Slot: 1\n                NodeID: \"60gvrl6tm78dmak4yl7srz94v\"\n                Status:\n                  Timestamp: \"2016-06-07T21:07:30.202183143Z\"\n                  State: \"shutdown\"\n                  Message: \"shutdown\"\n                  ContainerStatus:\n                    ContainerID: \"1cf8d63d18e79668b0004a4be4c6ee58cddfad2dae29506d8781581d0688a213\"\n                DesiredState: \"shutdown\"\n                NetworksAttachments:\n                  - Network:\n                      ID: \"4qvuz4ko70xaltuqbt8956gd1\"\n                      Version:\n                        Index: 18\n                      CreatedAt: \"2016-06-07T20:31:11.912919752Z\"\n                      UpdatedAt: \"2016-06-07T21:07:29.955277358Z\"\n                      Spec:\n                        Name: \"ingress\"\n                        Labels:\n                          com.docker.swarm.internal: \"true\"\n                        DriverConfiguration: {}\n                        IPAMOptions:\n                          Driver: {}\n                          Configs:\n                            - Subnet: \"10.255.0.0/16\"\n                              Gateway: \"10.255.0.1\"\n                      DriverState:\n                        Name: \"overlay\"\n                        Options:\n                          com.docker.network.driver.overlay.vxlanid_list: \"256\"\n                      IPAMOptions:\n                        Driver:\n                          Name: \"default\"\n                        Configs:\n                          - Subnet: \"10.255.0.0/16\"\n                            Gateway: \"10.255.0.1\"\n                    Addresses:\n                      - \"10.255.0.5/16\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          type: \"string\"\n          description: |\n            A JSON encoded value of the filters (a `map[string][]string`) to\n            process on the tasks list.\n\n            Available filters:\n\n            - `desired-state=(running | shutdown | accepted)`\n            - `id=<task id>`\n            - `label=key` or `label=\"key=value\"`\n            - `name=<task name>`\n            - `node=<node id or name>`\n            - `service=<service name>`\n      tags: [\"Task\"]\n  /tasks/{id}:\n    get:\n      summary: \"Inspect a task\"\n      operationId: \"TaskInspect\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/Task\"\n        404:\n          description: \"no such task\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"ID of the task\"\n          required: true\n          type: \"string\"\n      tags: [\"Task\"]\n  /tasks/{id}/logs:\n    get:\n      summary: \"Get task logs\"\n      description: |\n        Get `stdout` and `stderr` logs from a task.\n        See also [`/containers/{id}/logs`](#operation/ContainerLogs).\n\n        **Note**: This endpoint works only for services with the `local`,\n        `json-file` or `journald` logging drivers.\n      operationId: \"TaskLogs\"\n      produces:\n        - \"application/vnd.docker.raw-stream\"\n        - \"application/vnd.docker.multiplexed-stream\"\n      responses:\n        200:\n          description: \"logs returned as a stream in response body\"\n          schema:\n            type: \"string\"\n            format: \"binary\"\n        404:\n          description: \"no such task\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such task: c2ada9df5af8\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          description: \"ID of the task\"\n          type: \"string\"\n        - name: \"details\"\n          in: \"query\"\n          description: \"Show task context and extra details provided to logs.\"\n          type: \"boolean\"\n          default: false\n        - name: \"follow\"\n          in: \"query\"\n          description: \"Keep connection after returning logs.\"\n          type: \"boolean\"\n          default: false\n        - name: \"stdout\"\n          in: \"query\"\n          description: \"Return logs from `stdout`\"\n          type: \"boolean\"\n          default: false\n        - name: \"stderr\"\n          in: \"query\"\n          description: \"Return logs from `stderr`\"\n          type: \"boolean\"\n          default: false\n        - name: \"since\"\n          in: \"query\"\n          description: \"Only return logs since this time, as a UNIX timestamp\"\n          type: \"integer\"\n          default: 0\n        - name: \"timestamps\"\n          in: \"query\"\n          description: \"Add timestamps to every log line\"\n          type: \"boolean\"\n          default: false\n        - name: \"tail\"\n          in: \"query\"\n          description: |\n            Only return this number of log lines from the end of the logs.\n            Specify as an integer or `all` to output all log lines.\n          type: \"string\"\n          default: \"all\"\n      tags: [\"Task\"]\n  /secrets:\n    get:\n      summary: \"List secrets\"\n      operationId: \"SecretList\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/Secret\"\n            example:\n              - ID: \"blt1owaxmitz71s9v5zh81zun\"\n                Version:\n                  Index: 85\n                CreatedAt: \"2017-07-20T13:55:28.678958722Z\"\n                UpdatedAt: \"2017-07-20T13:55:28.678958722Z\"\n                Spec:\n                  Name: \"mysql-passwd\"\n                  Labels:\n                    some.label: \"some.value\"\n                  Driver:\n                    Name: \"secret-bucket\"\n                    Options:\n                      OptionA: \"value for driver option A\"\n                      OptionB: \"value for driver option B\"\n              - ID: \"ktnbjxoalbkvbvedmg1urrz8h\"\n                Version:\n                  Index: 11\n                CreatedAt: \"2016-11-05T01:20:17.327670065Z\"\n                UpdatedAt: \"2016-11-05T01:20:17.327670065Z\"\n                Spec:\n                  Name: \"app-dev.crt\"\n                  Labels:\n                    foo: \"bar\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          type: \"string\"\n          description: |\n            A JSON encoded value of the filters (a `map[string][]string`) to\n            process on the secrets list.\n\n            Available filters:\n\n            - `id=<secret id>`\n            - `label=<key> or label=<key>=value`\n            - `name=<secret name>`\n            - `names=<secret name>`\n      tags: [\"Secret\"]\n  /secrets/create:\n    post:\n      summary: \"Create a secret\"\n      operationId: \"SecretCreate\"\n      consumes:\n        - \"application/json\"\n      produces:\n        - \"application/json\"\n      responses:\n        201:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/IDResponse\"\n        409:\n          description: \"name conflicts with an existing object\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"body\"\n          in: \"body\"\n          schema:\n            allOf:\n              - $ref: \"#/definitions/SecretSpec\"\n              - type: \"object\"\n                example:\n                  Name: \"app-key.crt\"\n                  Labels:\n                    foo: \"bar\"\n                  Data: \"VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==\"\n                  Driver:\n                    Name: \"secret-bucket\"\n                    Options:\n                      OptionA: \"value for driver option A\"\n                      OptionB: \"value for driver option B\"\n      tags: [\"Secret\"]\n  /secrets/{id}:\n    get:\n      summary: \"Inspect a secret\"\n      operationId: \"SecretInspect\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/Secret\"\n          examples:\n            application/json:\n              ID: \"ktnbjxoalbkvbvedmg1urrz8h\"\n              Version:\n                Index: 11\n              CreatedAt: \"2016-11-05T01:20:17.327670065Z\"\n              UpdatedAt: \"2016-11-05T01:20:17.327670065Z\"\n              Spec:\n                Name: \"app-dev.crt\"\n                Labels:\n                  foo: \"bar\"\n                Driver:\n                  Name: \"secret-bucket\"\n                  Options:\n                    OptionA: \"value for driver option A\"\n                    OptionB: \"value for driver option B\"\n\n        404:\n          description: \"secret not found\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          type: \"string\"\n          description: \"ID of the secret\"\n      tags: [\"Secret\"]\n    delete:\n      summary: \"Delete a secret\"\n      operationId: \"SecretDelete\"\n      produces:\n        - \"application/json\"\n      responses:\n        204:\n          description: \"no error\"\n        404:\n          description: \"secret not found\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          type: \"string\"\n          description: \"ID of the secret\"\n      tags: [\"Secret\"]\n  /secrets/{id}/update:\n    post:\n      summary: \"Update a Secret\"\n      operationId: \"SecretUpdate\"\n      responses:\n        200:\n          description: \"no error\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"no such secret\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"The ID or name of the secret\"\n          type: \"string\"\n          required: true\n        - name: \"body\"\n          in: \"body\"\n          schema:\n            $ref: \"#/definitions/SecretSpec\"\n          description: |\n            The spec of the secret to update. Currently, only the Labels field\n            can be updated. All other fields must remain unchanged from the\n            [SecretInspect endpoint](#operation/SecretInspect) response values.\n        - name: \"version\"\n          in: \"query\"\n          description: |\n            The version number of the secret object being updated. This is\n            required to avoid conflicting writes.\n          type: \"integer\"\n          format: \"int64\"\n          required: true\n      tags: [\"Secret\"]\n  /configs:\n    get:\n      summary: \"List configs\"\n      operationId: \"ConfigList\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            type: \"array\"\n            items:\n              $ref: \"#/definitions/Config\"\n            example:\n              - ID: \"ktnbjxoalbkvbvedmg1urrz8h\"\n                Version:\n                  Index: 11\n                CreatedAt: \"2016-11-05T01:20:17.327670065Z\"\n                UpdatedAt: \"2016-11-05T01:20:17.327670065Z\"\n                Spec:\n                  Name: \"server.conf\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"filters\"\n          in: \"query\"\n          type: \"string\"\n          description: |\n            A JSON encoded value of the filters (a `map[string][]string`) to\n            process on the configs list.\n\n            Available filters:\n\n            - `id=<config id>`\n            - `label=<key> or label=<key>=value`\n            - `name=<config name>`\n            - `names=<config name>`\n      tags: [\"Config\"]\n  /configs/create:\n    post:\n      summary: \"Create a config\"\n      operationId: \"ConfigCreate\"\n      consumes:\n        - \"application/json\"\n      produces:\n        - \"application/json\"\n      responses:\n        201:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/IDResponse\"\n        409:\n          description: \"name conflicts with an existing object\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"body\"\n          in: \"body\"\n          schema:\n            allOf:\n              - $ref: \"#/definitions/ConfigSpec\"\n              - type: \"object\"\n                example:\n                  Name: \"server.conf\"\n                  Labels:\n                    foo: \"bar\"\n                  Data: \"VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==\"\n      tags: [\"Config\"]\n  /configs/{id}:\n    get:\n      summary: \"Inspect a config\"\n      operationId: \"ConfigInspect\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"no error\"\n          schema:\n            $ref: \"#/definitions/Config\"\n          examples:\n            application/json:\n              ID: \"ktnbjxoalbkvbvedmg1urrz8h\"\n              Version:\n                Index: 11\n              CreatedAt: \"2016-11-05T01:20:17.327670065Z\"\n              UpdatedAt: \"2016-11-05T01:20:17.327670065Z\"\n              Spec:\n                Name: \"app-dev.crt\"\n        404:\n          description: \"config not found\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          type: \"string\"\n          description: \"ID of the config\"\n      tags: [\"Config\"]\n    delete:\n      summary: \"Delete a config\"\n      operationId: \"ConfigDelete\"\n      produces:\n        - \"application/json\"\n      responses:\n        204:\n          description: \"no error\"\n        404:\n          description: \"config not found\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          required: true\n          type: \"string\"\n          description: \"ID of the config\"\n      tags: [\"Config\"]\n  /configs/{id}/update:\n    post:\n      summary: \"Update a Config\"\n      operationId: \"ConfigUpdate\"\n      responses:\n        200:\n          description: \"no error\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        404:\n          description: \"no such config\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        503:\n          description: \"node is not part of a swarm\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"id\"\n          in: \"path\"\n          description: \"The ID or name of the config\"\n          type: \"string\"\n          required: true\n        - name: \"body\"\n          in: \"body\"\n          schema:\n            $ref: \"#/definitions/ConfigSpec\"\n          description: |\n            The spec of the config to update. Currently, only the Labels field\n            can be updated. All other fields must remain unchanged from the\n            [ConfigInspect endpoint](#operation/ConfigInspect) response values.\n        - name: \"version\"\n          in: \"query\"\n          description: |\n            The version number of the config object being updated. This is\n            required to avoid conflicting writes.\n          type: \"integer\"\n          format: \"int64\"\n          required: true\n      tags: [\"Config\"]\n  /distribution/{name}/json:\n    get:\n      summary: \"Get image information from the registry\"\n      description: |\n        Return image digest and platform information by contacting the registry.\n      operationId: \"DistributionInspect\"\n      produces:\n        - \"application/json\"\n      responses:\n        200:\n          description: \"descriptor and platform information\"\n          schema:\n            $ref: \"#/definitions/DistributionInspect\"\n        401:\n          description: \"Failed authentication or no image found\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n          examples:\n            application/json:\n              message: \"No such image: someimage (tag: latest)\"\n        500:\n          description: \"Server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      parameters:\n        - name: \"name\"\n          in: \"path\"\n          description: \"Image name or id\"\n          type: \"string\"\n          required: true\n      tags: [\"Distribution\"]\n  /session:\n    post:\n      summary: \"Initialize interactive session\"\n      description: |\n        Start a new interactive session with a server. Session allows server to\n        call back to the client for advanced capabilities.\n\n        ### Hijacking\n\n        This endpoint hijacks the HTTP connection to HTTP2 transport that allows\n        the client to expose gPRC services on that connection.\n\n        For example, the client sends this request to upgrade the connection:\n\n        ```\n        POST /session HTTP/1.1\n        Upgrade: h2c\n        Connection: Upgrade\n        ```\n\n        The Docker daemon responds with a `101 UPGRADED` response follow with\n        the raw stream:\n\n        ```\n        HTTP/1.1 101 UPGRADED\n        Connection: Upgrade\n        Upgrade: h2c\n        ```\n      operationId: \"Session\"\n      produces:\n        - \"application/vnd.docker.raw-stream\"\n      responses:\n        101:\n          description: \"no error, hijacking successful\"\n        400:\n          description: \"bad parameter\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n        500:\n          description: \"server error\"\n          schema:\n            $ref: \"#/definitions/ErrorResponse\"\n      tags: [\"Session\"]\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/blkiodev/blkio.go",
    "content": "package blkiodev\n\nimport \"fmt\"\n\n// WeightDevice is a structure that holds device:weight pair\ntype WeightDevice struct {\n\tPath   string\n\tWeight uint16\n}\n\nfunc (w *WeightDevice) String() string {\n\treturn fmt.Sprintf(\"%s:%d\", w.Path, w.Weight)\n}\n\n// ThrottleDevice is a structure that holds device:rate_per_second pair\ntype ThrottleDevice struct {\n\tPath string\n\tRate uint64\n}\n\nfunc (t *ThrottleDevice) String() string {\n\treturn fmt.Sprintf(\"%s:%d\", t.Path, t.Rate)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/build/build.go",
    "content": "package build\n\nimport (\n\t\"io\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/registry\"\n)\n\n// BuilderVersion sets the version of underlying builder to use\ntype BuilderVersion string\n\nconst (\n\t// BuilderV1 is the first generation builder in docker daemon\n\tBuilderV1 BuilderVersion = \"1\"\n\t// BuilderBuildKit is builder based on moby/buildkit project\n\tBuilderBuildKit BuilderVersion = \"2\"\n)\n\n// Result contains the image id of a successful build.\ntype Result struct {\n\tID string\n}\n\n// ImageBuildOptions holds the information\n// necessary to build images.\ntype ImageBuildOptions struct {\n\tTags           []string\n\tSuppressOutput bool\n\tRemoteContext  string\n\tNoCache        bool\n\tRemove         bool\n\tForceRemove    bool\n\tPullParent     bool\n\tIsolation      container.Isolation\n\tCPUSetCPUs     string\n\tCPUSetMems     string\n\tCPUShares      int64\n\tCPUQuota       int64\n\tCPUPeriod      int64\n\tMemory         int64\n\tMemorySwap     int64\n\tCgroupParent   string\n\tNetworkMode    string\n\tShmSize        int64\n\tDockerfile     string\n\tUlimits        []*container.Ulimit\n\t// BuildArgs needs to be a *string instead of just a string so that\n\t// we can tell the difference between \"\" (empty string) and no value\n\t// at all (nil). See the parsing of buildArgs in\n\t// api/server/router/build/build_routes.go for even more info.\n\tBuildArgs   map[string]*string\n\tAuthConfigs map[string]registry.AuthConfig\n\tContext     io.Reader\n\tLabels      map[string]string\n\t// squash the resulting image's layers to the parent\n\t// preserves the original image and creates a new one from the parent with all\n\t// the changes applied to a single layer\n\tSquash bool\n\t// CacheFrom specifies images that are used for matching cache. Images\n\t// specified here do not need to have a valid parent chain to match cache.\n\tCacheFrom   []string\n\tSecurityOpt []string\n\tExtraHosts  []string // List of extra hosts\n\tTarget      string\n\tSessionID   string\n\tPlatform    string\n\t// Version specifies the version of the underlying builder to use\n\tVersion BuilderVersion\n\t// BuildID is an optional identifier that can be passed together with the\n\t// build request. The same identifier can be used to gracefully cancel the\n\t// build with the cancel request.\n\tBuildID string\n\t// Outputs defines configurations for exporting build results. Only supported\n\t// in BuildKit mode\n\tOutputs []ImageBuildOutput\n}\n\n// ImageBuildOutput defines configuration for exporting a build result\ntype ImageBuildOutput struct {\n\tType  string\n\tAttrs map[string]string\n}\n\n// ImageBuildResponse holds information\n// returned by a server after building\n// an image.\ntype ImageBuildResponse struct {\n\tBody   io.ReadCloser\n\tOSType string\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/build/cache.go",
    "content": "package build\n\nimport (\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n)\n\n// CacheRecord contains information about a build cache record.\ntype CacheRecord struct {\n\t// ID is the unique ID of the build cache record.\n\tID string\n\t// Parent is the ID of the parent build cache record.\n\t//\n\t// Deprecated: deprecated in API v1.42 and up, as it was deprecated in BuildKit; use Parents instead.\n\tParent string `json:\"Parent,omitempty\"`\n\t// Parents is the list of parent build cache record IDs.\n\tParents []string `json:\" Parents,omitempty\"`\n\t// Type is the cache record type.\n\tType string\n\t// Description is a description of the build-step that produced the build cache.\n\tDescription string\n\t// InUse indicates if the build cache is in use.\n\tInUse bool\n\t// Shared indicates if the build cache is shared.\n\tShared bool\n\t// Size is the amount of disk space used by the build cache (in bytes).\n\tSize int64\n\t// CreatedAt is the date and time at which the build cache was created.\n\tCreatedAt time.Time\n\t// LastUsedAt is the date and time at which the build cache was last used.\n\tLastUsedAt *time.Time\n\tUsageCount int\n}\n\n// CachePruneOptions hold parameters to prune the build cache.\ntype CachePruneOptions struct {\n\tAll           bool\n\tReservedSpace int64\n\tMaxUsedSpace  int64\n\tMinFreeSpace  int64\n\tFilters       filters.Args\n\n\tKeepStorage int64 // Deprecated: deprecated in API 1.48.\n}\n\n// CachePruneReport contains the response for Engine API:\n// POST \"/build/prune\"\ntype CachePruneReport struct {\n\tCachesDeleted  []string\n\tSpaceReclaimed uint64\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/build/disk_usage.go",
    "content": "package build\n\n// CacheDiskUsage contains disk usage for the build cache.\n//\n// Deprecated: this type is no longer used and will be removed in the next release.\ntype CacheDiskUsage struct {\n\tTotalSize   int64\n\tReclaimable int64\n\tItems       []*CacheRecord\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/checkpoint/list.go",
    "content": "package checkpoint\n\n// Summary represents the details of a checkpoint when listing endpoints.\ntype Summary struct {\n\t// Name is the name of the checkpoint.\n\tName string\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/checkpoint/options.go",
    "content": "package checkpoint\n\n// CreateOptions holds parameters to create a checkpoint from a container.\ntype CreateOptions struct {\n\tCheckpointID  string\n\tCheckpointDir string\n\tExit          bool\n}\n\n// ListOptions holds parameters to list checkpoints for a container.\ntype ListOptions struct {\n\tCheckpointDir string\n}\n\n// DeleteOptions holds parameters to delete a checkpoint from a container.\ntype DeleteOptions struct {\n\tCheckpointID  string\n\tCheckpointDir string\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/client.go",
    "content": "package types\n\nimport (\n\t\"bufio\"\n\t\"context\"\n\t\"net\"\n)\n\n// NewHijackedResponse initializes a [HijackedResponse] type.\nfunc NewHijackedResponse(conn net.Conn, mediaType string) HijackedResponse {\n\treturn HijackedResponse{Conn: conn, Reader: bufio.NewReader(conn), mediaType: mediaType}\n}\n\n// HijackedResponse holds connection information for a hijacked request.\ntype HijackedResponse struct {\n\tmediaType string\n\tConn      net.Conn\n\tReader    *bufio.Reader\n}\n\n// Close closes the hijacked connection and reader.\nfunc (h *HijackedResponse) Close() {\n\th.Conn.Close()\n}\n\n// MediaType let client know if HijackedResponse hold a raw or multiplexed stream.\n// returns false if HTTP Content-Type is not relevant, and container must be inspected\nfunc (h *HijackedResponse) MediaType() (string, bool) {\n\tif h.mediaType == \"\" {\n\t\treturn \"\", false\n\t}\n\treturn h.mediaType, true\n}\n\n// CloseWriter is an interface that implements structs\n// that close input streams to prevent from writing.\ntype CloseWriter interface {\n\tCloseWrite() error\n}\n\n// CloseWrite closes a readWriter for writing.\nfunc (h *HijackedResponse) CloseWrite() error {\n\tif conn, ok := h.Conn.(CloseWriter); ok {\n\t\treturn conn.CloseWrite()\n\t}\n\treturn nil\n}\n\n// PluginRemoveOptions holds parameters to remove plugins.\ntype PluginRemoveOptions struct {\n\tForce bool\n}\n\n// PluginEnableOptions holds parameters to enable plugins.\ntype PluginEnableOptions struct {\n\tTimeout int\n}\n\n// PluginDisableOptions holds parameters to disable plugins.\ntype PluginDisableOptions struct {\n\tForce bool\n}\n\n// PluginInstallOptions holds parameters to install a plugin.\ntype PluginInstallOptions struct {\n\tDisabled             bool\n\tAcceptAllPermissions bool\n\tRegistryAuth         string // RegistryAuth is the base64 encoded credentials for the registry\n\tRemoteRef            string // RemoteRef is the plugin name on the registry\n\n\t// PrivilegeFunc is a function that clients can supply to retry operations\n\t// after getting an authorization error. This function returns the registry\n\t// authentication header value in base64 encoded format, or an error if the\n\t// privilege request fails.\n\t//\n\t// For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig].\n\tPrivilegeFunc         func(context.Context) (string, error)\n\tAcceptPermissionsFunc func(context.Context, PluginPrivileges) (bool, error)\n\tArgs                  []string\n}\n\n// PluginCreateOptions hold all options to plugin create.\ntype PluginCreateOptions struct {\n\tRepoName string\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/common/id_response.go",
    "content": "package common\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// IDResponse Response to an API call that returns just an Id\n// swagger:model IDResponse\ntype IDResponse struct {\n\n\t// The id of the newly created object.\n\t// Required: true\n\tID string `json:\"Id\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/change_type.go",
    "content": "package container\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// ChangeType Kind of change\n//\n// Can be one of:\n//\n// - `0`: Modified (\"C\")\n// - `1`: Added (\"A\")\n// - `2`: Deleted (\"D\")\n//\n// swagger:model ChangeType\ntype ChangeType uint8\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/change_types.go",
    "content": "package container\n\nconst (\n\t// ChangeModify represents the modify operation.\n\tChangeModify ChangeType = 0\n\t// ChangeAdd represents the add operation.\n\tChangeAdd ChangeType = 1\n\t// ChangeDelete represents the delete operation.\n\tChangeDelete ChangeType = 2\n)\n\nfunc (ct ChangeType) String() string {\n\tswitch ct {\n\tcase ChangeModify:\n\t\treturn \"C\"\n\tcase ChangeAdd:\n\t\treturn \"A\"\n\tcase ChangeDelete:\n\t\treturn \"D\"\n\tdefault:\n\t\treturn \"\"\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/commit.go",
    "content": "package container\n\nimport \"github.com/docker/docker/api/types/common\"\n\n// CommitResponse response for the commit API call, containing the ID of the\n// image that was produced.\ntype CommitResponse = common.IDResponse\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/config.go",
    "content": "package container\n\nimport (\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/strslice\"\n\t\"github.com/docker/go-connections/nat\"\n\tdockerspec \"github.com/moby/docker-image-spec/specs-go/v1\"\n)\n\n// MinimumDuration puts a minimum on user configured duration.\n// This is to prevent API error on time unit. For example, API may\n// set 3 as healthcheck interval with intention of 3 seconds, but\n// Docker interprets it as 3 nanoseconds.\nconst MinimumDuration = 1 * time.Millisecond\n\n// StopOptions holds the options to stop or restart a container.\ntype StopOptions struct {\n\t// Signal (optional) is the signal to send to the container to (gracefully)\n\t// stop it before forcibly terminating the container with SIGKILL after the\n\t// timeout expires. If not value is set, the default (SIGTERM) is used.\n\tSignal string `json:\",omitempty\"`\n\n\t// Timeout (optional) is the timeout (in seconds) to wait for the container\n\t// to stop gracefully before forcibly terminating it with SIGKILL.\n\t//\n\t// - Use nil to use the default timeout (10 seconds).\n\t// - Use '-1' to wait indefinitely.\n\t// - Use '0' to not wait for the container to exit gracefully, and\n\t//   immediately proceeds to forcibly terminating the container.\n\t// - Other positive values are used as timeout (in seconds).\n\tTimeout *int `json:\",omitempty\"`\n}\n\n// HealthConfig holds configuration settings for the HEALTHCHECK feature.\ntype HealthConfig = dockerspec.HealthcheckConfig\n\n// Config contains the configuration data about a container.\n// It should hold only portable information about the container.\n// Here, \"portable\" means \"independent from the host we are running on\".\n// Non-portable information *should* appear in HostConfig.\n// All fields added to this struct must be marked `omitempty` to keep getting\n// predictable hashes from the old `v1Compatibility` configuration.\ntype Config struct {\n\tHostname        string              // Hostname\n\tDomainname      string              // Domainname\n\tUser            string              // User that will run the command(s) inside the container, also support user:group\n\tAttachStdin     bool                // Attach the standard input, makes possible user interaction\n\tAttachStdout    bool                // Attach the standard output\n\tAttachStderr    bool                // Attach the standard error\n\tExposedPorts    nat.PortSet         `json:\",omitempty\"` // List of exposed ports\n\tTty             bool                // Attach standard streams to a tty, including stdin if it is not closed.\n\tOpenStdin       bool                // Open stdin\n\tStdinOnce       bool                // If true, close stdin after the 1 attached client disconnects.\n\tEnv             []string            // List of environment variable to set in the container\n\tCmd             strslice.StrSlice   // Command to run when starting the container\n\tHealthcheck     *HealthConfig       `json:\",omitempty\"` // Healthcheck describes how to check the container is healthy\n\tArgsEscaped     bool                `json:\",omitempty\"` // True if command is already escaped (meaning treat as a command line) (Windows specific).\n\tImage           string              // Name of the image as it was passed by the operator (e.g. could be symbolic)\n\tVolumes         map[string]struct{} // List of volumes (mounts) used for the container\n\tWorkingDir      string              // Current directory (PWD) in the command will be launched\n\tEntrypoint      strslice.StrSlice   // Entrypoint to run when starting the container\n\tNetworkDisabled bool                `json:\",omitempty\"` // Is network disabled\n\t// Mac Address of the container.\n\t//\n\t// Deprecated: this field is deprecated since API v1.44. Use EndpointSettings.MacAddress instead.\n\tMacAddress  string            `json:\",omitempty\"`\n\tOnBuild     []string          // ONBUILD metadata that were defined on the image Dockerfile\n\tLabels      map[string]string // List of labels set to this container\n\tStopSignal  string            `json:\",omitempty\"` // Signal to stop a container\n\tStopTimeout *int              `json:\",omitempty\"` // Timeout (in seconds) to stop a container\n\tShell       strslice.StrSlice `json:\",omitempty\"` // Shell for shell-form of RUN, CMD, ENTRYPOINT\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/container.go",
    "content": "package container\n\nimport (\n\t\"io\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/mount\"\n\t\"github.com/docker/docker/api/types/storage\"\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\n// ContainerUpdateOKBody OK response to ContainerUpdate operation\n//\n// Deprecated: use [UpdateResponse]. This alias will be removed in the next release.\ntype ContainerUpdateOKBody = UpdateResponse\n\n// ContainerTopOKBody OK response to ContainerTop operation\n//\n// Deprecated: use [TopResponse]. This alias will be removed in the next release.\ntype ContainerTopOKBody = TopResponse\n\n// PruneReport contains the response for Engine API:\n// POST \"/containers/prune\"\ntype PruneReport struct {\n\tContainersDeleted []string\n\tSpaceReclaimed    uint64\n}\n\n// PathStat is used to encode the header from\n// GET \"/containers/{name:.*}/archive\"\n// \"Name\" is the file or directory name.\ntype PathStat struct {\n\tName       string      `json:\"name\"`\n\tSize       int64       `json:\"size\"`\n\tMode       os.FileMode `json:\"mode\"`\n\tMtime      time.Time   `json:\"mtime\"`\n\tLinkTarget string      `json:\"linkTarget\"`\n}\n\n// CopyToContainerOptions holds information\n// about files to copy into a container\ntype CopyToContainerOptions struct {\n\tAllowOverwriteDirWithFile bool\n\tCopyUIDGID                bool\n}\n\n// StatsResponseReader wraps an io.ReadCloser to read (a stream of) stats\n// for a container, as produced by the GET \"/stats\" endpoint.\n//\n// The OSType field is set to the server's platform to allow\n// platform-specific handling of the response.\n//\n// TODO(thaJeztah): remove this wrapper, and make OSType part of [StatsResponse].\ntype StatsResponseReader struct {\n\tBody   io.ReadCloser `json:\"body\"`\n\tOSType string        `json:\"ostype\"`\n}\n\n// MountPoint represents a mount point configuration inside the container.\n// This is used for reporting the mountpoints in use by a container.\ntype MountPoint struct {\n\t// Type is the type of mount, see `Type<foo>` definitions in\n\t// github.com/docker/docker/api/types/mount.Type\n\tType mount.Type `json:\",omitempty\"`\n\n\t// Name is the name reference to the underlying data defined by `Source`\n\t// e.g., the volume name.\n\tName string `json:\",omitempty\"`\n\n\t// Source is the source location of the mount.\n\t//\n\t// For volumes, this contains the storage location of the volume (within\n\t// `/var/lib/docker/volumes/`). For bind-mounts, and `npipe`, this contains\n\t// the source (host) part of the bind-mount. For `tmpfs` mount points, this\n\t// field is empty.\n\tSource string\n\n\t// Destination is the path relative to the container root (`/`) where the\n\t// Source is mounted inside the container.\n\tDestination string\n\n\t// Driver is the volume driver used to create the volume (if it is a volume).\n\tDriver string `json:\",omitempty\"`\n\n\t// Mode is a comma separated list of options supplied by the user when\n\t// creating the bind/volume mount.\n\t//\n\t// The default is platform-specific (`\"z\"` on Linux, empty on Windows).\n\tMode string\n\n\t// RW indicates whether the mount is mounted writable (read-write).\n\tRW bool\n\n\t// Propagation describes how mounts are propagated from the host into the\n\t// mount point, and vice-versa. Refer to the Linux kernel documentation\n\t// for details:\n\t// https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt\n\t//\n\t// This field is not used on Windows.\n\tPropagation mount.Propagation\n}\n\n// State stores container's running state\n// it's part of ContainerJSONBase and returned by \"inspect\" command\ntype State struct {\n\tStatus     ContainerState // String representation of the container state. Can be one of \"created\", \"running\", \"paused\", \"restarting\", \"removing\", \"exited\", or \"dead\"\n\tRunning    bool\n\tPaused     bool\n\tRestarting bool\n\tOOMKilled  bool\n\tDead       bool\n\tPid        int\n\tExitCode   int\n\tError      string\n\tStartedAt  string\n\tFinishedAt string\n\tHealth     *Health `json:\",omitempty\"`\n}\n\n// Summary contains response of Engine API:\n// GET \"/containers/json\"\ntype Summary struct {\n\tID                      string `json:\"Id\"`\n\tNames                   []string\n\tImage                   string\n\tImageID                 string\n\tImageManifestDescriptor *ocispec.Descriptor `json:\"ImageManifestDescriptor,omitempty\"`\n\tCommand                 string\n\tCreated                 int64\n\tPorts                   []Port\n\tSizeRw                  int64 `json:\",omitempty\"`\n\tSizeRootFs              int64 `json:\",omitempty\"`\n\tLabels                  map[string]string\n\tState                   ContainerState\n\tStatus                  string\n\tHostConfig              struct {\n\t\tNetworkMode string            `json:\",omitempty\"`\n\t\tAnnotations map[string]string `json:\",omitempty\"`\n\t}\n\tNetworkSettings *NetworkSettingsSummary\n\tMounts          []MountPoint\n}\n\n// ContainerJSONBase contains response of Engine API GET \"/containers/{name:.*}/json\"\n// for API version 1.18 and older.\n//\n// TODO(thaJeztah): combine ContainerJSONBase and InspectResponse into a single struct.\n// The split between ContainerJSONBase (ContainerJSONBase) and InspectResponse (InspectResponse)\n// was done in commit 6deaa58ba5f051039643cedceee97c8695e2af74 (https://github.com/moby/moby/pull/13675).\n// ContainerJSONBase contained all fields for API < 1.19, and InspectResponse\n// held fields that were added in API 1.19 and up. Given that the minimum\n// supported API version is now 1.24, we no longer use the separate type.\ntype ContainerJSONBase struct {\n\tID              string `json:\"Id\"`\n\tCreated         string\n\tPath            string\n\tArgs            []string\n\tState           *State\n\tImage           string\n\tResolvConfPath  string\n\tHostnamePath    string\n\tHostsPath       string\n\tLogPath         string\n\tName            string\n\tRestartCount    int\n\tDriver          string\n\tPlatform        string\n\tMountLabel      string\n\tProcessLabel    string\n\tAppArmorProfile string\n\tExecIDs         []string\n\tHostConfig      *HostConfig\n\tGraphDriver     storage.DriverData\n\tSizeRw          *int64 `json:\",omitempty\"`\n\tSizeRootFs      *int64 `json:\",omitempty\"`\n}\n\n// InspectResponse is the response for the GET \"/containers/{name:.*}/json\"\n// endpoint.\ntype InspectResponse struct {\n\t*ContainerJSONBase\n\tMounts          []MountPoint\n\tConfig          *Config\n\tNetworkSettings *NetworkSettings\n\t// ImageManifestDescriptor is the descriptor of a platform-specific manifest of the image used to create the container.\n\tImageManifestDescriptor *ocispec.Descriptor `json:\"ImageManifestDescriptor,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/create_request.go",
    "content": "package container\n\nimport \"github.com/docker/docker/api/types/network\"\n\n// CreateRequest is the request message sent to the server for container\n// create calls. It is a config wrapper that holds the container [Config]\n// (portable) and the corresponding [HostConfig] (non-portable) and\n// [network.NetworkingConfig].\ntype CreateRequest struct {\n\t*Config\n\tHostConfig       *HostConfig               `json:\"HostConfig,omitempty\"`\n\tNetworkingConfig *network.NetworkingConfig `json:\"NetworkingConfig,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/create_response.go",
    "content": "package container\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// CreateResponse ContainerCreateResponse\n//\n// OK response to ContainerCreate operation\n// swagger:model CreateResponse\ntype CreateResponse struct {\n\n\t// The ID of the created container\n\t// Required: true\n\tID string `json:\"Id\"`\n\n\t// Warnings encountered when creating the container\n\t// Required: true\n\tWarnings []string `json:\"Warnings\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/disk_usage.go",
    "content": "package container\n\n// DiskUsage contains disk usage for containers.\n//\n// Deprecated: this type is no longer used and will be removed in the next release.\ntype DiskUsage struct {\n\tTotalSize   int64\n\tReclaimable int64\n\tItems       []*Summary\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/errors.go",
    "content": "package container\n\ntype errInvalidParameter struct{ error }\n\nfunc (e *errInvalidParameter) InvalidParameter() {}\n\nfunc (e *errInvalidParameter) Unwrap() error {\n\treturn e.error\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/exec.go",
    "content": "package container\n\nimport \"github.com/docker/docker/api/types/common\"\n\n// ExecCreateResponse is the response for a successful exec-create request.\n// It holds the ID of the exec that was created.\n//\n// TODO(thaJeztah): make this a distinct type.\ntype ExecCreateResponse = common.IDResponse\n\n// ExecOptions is a small subset of the Config struct that holds the configuration\n// for the exec feature of docker.\ntype ExecOptions struct {\n\tUser         string   // User that will run the command\n\tPrivileged   bool     // Is the container in privileged mode\n\tTty          bool     // Attach standard streams to a tty.\n\tConsoleSize  *[2]uint `json:\",omitempty\"` // Initial console size [height, width]\n\tAttachStdin  bool     // Attach the standard input, makes possible user interaction\n\tAttachStderr bool     // Attach the standard error\n\tAttachStdout bool     // Attach the standard output\n\tDetachKeys   string   // Escape keys for detach\n\tEnv          []string // Environment variables\n\tWorkingDir   string   // Working directory\n\tCmd          []string // Execution commands and args\n\n\t// Deprecated: the Detach field is not used, and will be removed in a future release.\n\tDetach bool\n}\n\n// ExecStartOptions is a temp struct used by execStart\n// Config fields is part of ExecConfig in runconfig package\ntype ExecStartOptions struct {\n\t// ExecStart will first check if it's detached\n\tDetach bool\n\t// Check if there's a tty\n\tTty bool\n\t// Terminal size [height, width], unused if Tty == false\n\tConsoleSize *[2]uint `json:\",omitempty\"`\n}\n\n// ExecAttachOptions is a temp struct used by execAttach.\n//\n// TODO(thaJeztah): make this a separate type; ContainerExecAttach does not use the Detach option, and cannot run detached.\ntype ExecAttachOptions = ExecStartOptions\n\n// ExecInspect holds information returned by exec inspect.\ntype ExecInspect struct {\n\tExecID      string `json:\"ID\"`\n\tContainerID string\n\tRunning     bool\n\tExitCode    int\n\tPid         int\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/filesystem_change.go",
    "content": "package container\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// FilesystemChange Change in the container's filesystem.\n//\n// swagger:model FilesystemChange\ntype FilesystemChange struct {\n\n\t// kind\n\t// Required: true\n\tKind ChangeType `json:\"Kind\"`\n\n\t// Path to file or directory that has changed.\n\t//\n\t// Required: true\n\tPath string `json:\"Path\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/health.go",
    "content": "package container\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n)\n\n// HealthStatus is a string representation of the container's health.\n//\n// It currently is an alias for string, but may become a distinct type in future.\ntype HealthStatus = string\n\n// Health states\nconst (\n\tNoHealthcheck HealthStatus = \"none\"      // Indicates there is no healthcheck\n\tStarting      HealthStatus = \"starting\"  // Starting indicates that the container is not yet ready\n\tHealthy       HealthStatus = \"healthy\"   // Healthy indicates that the container is running correctly\n\tUnhealthy     HealthStatus = \"unhealthy\" // Unhealthy indicates that the container has a problem\n)\n\n// Health stores information about the container's healthcheck results\ntype Health struct {\n\tStatus        HealthStatus         // Status is one of [Starting], [Healthy] or [Unhealthy].\n\tFailingStreak int                  // FailingStreak is the number of consecutive failures\n\tLog           []*HealthcheckResult // Log contains the last few results (oldest first)\n}\n\n// HealthcheckResult stores information about a single run of a healthcheck probe\ntype HealthcheckResult struct {\n\tStart    time.Time // Start is the time this check started\n\tEnd      time.Time // End is the time this check ended\n\tExitCode int       // ExitCode meanings: 0=healthy, 1=unhealthy, 2=reserved (considered unhealthy), else=error running probe\n\tOutput   string    // Output from last check\n}\n\nvar validHealths = []string{\n\tNoHealthcheck, Starting, Healthy, Unhealthy,\n}\n\n// ValidateHealthStatus checks if the provided string is a valid\n// container [HealthStatus].\nfunc ValidateHealthStatus(s HealthStatus) error {\n\tswitch s {\n\tcase NoHealthcheck, Starting, Healthy, Unhealthy:\n\t\treturn nil\n\tdefault:\n\t\treturn errInvalidParameter{error: fmt.Errorf(\"invalid value for health (%s): must be one of %s\", s, strings.Join(validHealths, \", \"))}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/hostconfig.go",
    "content": "package container\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/docker/docker/api/types/blkiodev\"\n\t\"github.com/docker/docker/api/types/mount\"\n\t\"github.com/docker/docker/api/types/network\"\n\t\"github.com/docker/docker/api/types/strslice\"\n\t\"github.com/docker/go-connections/nat\"\n\t\"github.com/docker/go-units\"\n)\n\n// CgroupnsMode represents the cgroup namespace mode of the container\ntype CgroupnsMode string\n\n// cgroup namespace modes for containers\nconst (\n\tCgroupnsModeEmpty   CgroupnsMode = \"\"\n\tCgroupnsModePrivate CgroupnsMode = \"private\"\n\tCgroupnsModeHost    CgroupnsMode = \"host\"\n)\n\n// IsPrivate indicates whether the container uses its own private cgroup namespace\nfunc (c CgroupnsMode) IsPrivate() bool {\n\treturn c == CgroupnsModePrivate\n}\n\n// IsHost indicates whether the container shares the host's cgroup namespace\nfunc (c CgroupnsMode) IsHost() bool {\n\treturn c == CgroupnsModeHost\n}\n\n// IsEmpty indicates whether the container cgroup namespace mode is unset\nfunc (c CgroupnsMode) IsEmpty() bool {\n\treturn c == CgroupnsModeEmpty\n}\n\n// Valid indicates whether the cgroup namespace mode is valid\nfunc (c CgroupnsMode) Valid() bool {\n\treturn c.IsEmpty() || c.IsPrivate() || c.IsHost()\n}\n\n// Isolation represents the isolation technology of a container. The supported\n// values are platform specific\ntype Isolation string\n\n// Isolation modes for containers\nconst (\n\tIsolationEmpty   Isolation = \"\"        // IsolationEmpty is unspecified (same behavior as default)\n\tIsolationDefault Isolation = \"default\" // IsolationDefault is the default isolation mode on current daemon\n\tIsolationProcess Isolation = \"process\" // IsolationProcess is process isolation mode\n\tIsolationHyperV  Isolation = \"hyperv\"  // IsolationHyperV is HyperV isolation mode\n)\n\n// IsDefault indicates the default isolation technology of a container. On Linux this\n// is the native driver. On Windows, this is a Windows Server Container.\nfunc (i Isolation) IsDefault() bool {\n\t// TODO consider making isolation-mode strict (case-sensitive)\n\tv := Isolation(strings.ToLower(string(i)))\n\treturn v == IsolationDefault || v == IsolationEmpty\n}\n\n// IsHyperV indicates the use of a Hyper-V partition for isolation\nfunc (i Isolation) IsHyperV() bool {\n\t// TODO consider making isolation-mode strict (case-sensitive)\n\treturn Isolation(strings.ToLower(string(i))) == IsolationHyperV\n}\n\n// IsProcess indicates the use of process isolation\nfunc (i Isolation) IsProcess() bool {\n\t// TODO consider making isolation-mode strict (case-sensitive)\n\treturn Isolation(strings.ToLower(string(i))) == IsolationProcess\n}\n\n// IpcMode represents the container ipc stack.\ntype IpcMode string\n\n// IpcMode constants\nconst (\n\tIPCModeNone      IpcMode = \"none\"\n\tIPCModeHost      IpcMode = \"host\"\n\tIPCModeContainer IpcMode = \"container\"\n\tIPCModePrivate   IpcMode = \"private\"\n\tIPCModeShareable IpcMode = \"shareable\"\n)\n\n// IsPrivate indicates whether the container uses its own private ipc namespace which can not be shared.\nfunc (n IpcMode) IsPrivate() bool {\n\treturn n == IPCModePrivate\n}\n\n// IsHost indicates whether the container shares the host's ipc namespace.\nfunc (n IpcMode) IsHost() bool {\n\treturn n == IPCModeHost\n}\n\n// IsShareable indicates whether the container's ipc namespace can be shared with another container.\nfunc (n IpcMode) IsShareable() bool {\n\treturn n == IPCModeShareable\n}\n\n// IsContainer indicates whether the container uses another container's ipc namespace.\nfunc (n IpcMode) IsContainer() bool {\n\t_, ok := containerID(string(n))\n\treturn ok\n}\n\n// IsNone indicates whether container IpcMode is set to \"none\".\nfunc (n IpcMode) IsNone() bool {\n\treturn n == IPCModeNone\n}\n\n// IsEmpty indicates whether container IpcMode is empty\nfunc (n IpcMode) IsEmpty() bool {\n\treturn n == \"\"\n}\n\n// Valid indicates whether the ipc mode is valid.\nfunc (n IpcMode) Valid() bool {\n\t// TODO(thaJeztah): align with PidMode, and consider container-mode without a container name/ID to be invalid.\n\treturn n.IsEmpty() || n.IsNone() || n.IsPrivate() || n.IsHost() || n.IsShareable() || n.IsContainer()\n}\n\n// Container returns the name of the container ipc stack is going to be used.\nfunc (n IpcMode) Container() (idOrName string) {\n\tidOrName, _ = containerID(string(n))\n\treturn idOrName\n}\n\n// NetworkMode represents the container network stack.\ntype NetworkMode string\n\n// IsNone indicates whether container isn't using a network stack.\nfunc (n NetworkMode) IsNone() bool {\n\treturn n == network.NetworkNone\n}\n\n// IsDefault indicates whether container uses the default network stack.\nfunc (n NetworkMode) IsDefault() bool {\n\treturn n == network.NetworkDefault\n}\n\n// IsPrivate indicates whether container uses its private network stack.\nfunc (n NetworkMode) IsPrivate() bool {\n\treturn !n.IsHost() && !n.IsContainer()\n}\n\n// IsContainer indicates whether container uses a container network stack.\nfunc (n NetworkMode) IsContainer() bool {\n\t_, ok := containerID(string(n))\n\treturn ok\n}\n\n// ConnectedContainer is the id of the container which network this container is connected to.\nfunc (n NetworkMode) ConnectedContainer() (idOrName string) {\n\tidOrName, _ = containerID(string(n))\n\treturn idOrName\n}\n\n// UserDefined indicates user-created network\nfunc (n NetworkMode) UserDefined() string {\n\tif n.IsUserDefined() {\n\t\treturn string(n)\n\t}\n\treturn \"\"\n}\n\n// UsernsMode represents userns mode in the container.\ntype UsernsMode string\n\n// IsHost indicates whether the container uses the host's userns.\nfunc (n UsernsMode) IsHost() bool {\n\treturn n == \"host\"\n}\n\n// IsPrivate indicates whether the container uses the a private userns.\nfunc (n UsernsMode) IsPrivate() bool {\n\treturn !n.IsHost()\n}\n\n// Valid indicates whether the userns is valid.\nfunc (n UsernsMode) Valid() bool {\n\treturn n == \"\" || n.IsHost()\n}\n\n// CgroupSpec represents the cgroup to use for the container.\ntype CgroupSpec string\n\n// IsContainer indicates whether the container is using another container cgroup\nfunc (c CgroupSpec) IsContainer() bool {\n\t_, ok := containerID(string(c))\n\treturn ok\n}\n\n// Valid indicates whether the cgroup spec is valid.\nfunc (c CgroupSpec) Valid() bool {\n\t// TODO(thaJeztah): align with PidMode, and consider container-mode without a container name/ID to be invalid.\n\treturn c == \"\" || c.IsContainer()\n}\n\n// Container returns the ID or name of the container whose cgroup will be used.\nfunc (c CgroupSpec) Container() (idOrName string) {\n\tidOrName, _ = containerID(string(c))\n\treturn idOrName\n}\n\n// UTSMode represents the UTS namespace of the container.\ntype UTSMode string\n\n// IsPrivate indicates whether the container uses its private UTS namespace.\nfunc (n UTSMode) IsPrivate() bool {\n\treturn !n.IsHost()\n}\n\n// IsHost indicates whether the container uses the host's UTS namespace.\nfunc (n UTSMode) IsHost() bool {\n\treturn n == \"host\"\n}\n\n// Valid indicates whether the UTS namespace is valid.\nfunc (n UTSMode) Valid() bool {\n\treturn n == \"\" || n.IsHost()\n}\n\n// PidMode represents the pid namespace of the container.\ntype PidMode string\n\n// IsPrivate indicates whether the container uses its own new pid namespace.\nfunc (n PidMode) IsPrivate() bool {\n\treturn !n.IsHost() && !n.IsContainer()\n}\n\n// IsHost indicates whether the container uses the host's pid namespace.\nfunc (n PidMode) IsHost() bool {\n\treturn n == \"host\"\n}\n\n// IsContainer indicates whether the container uses a container's pid namespace.\nfunc (n PidMode) IsContainer() bool {\n\t_, ok := containerID(string(n))\n\treturn ok\n}\n\n// Valid indicates whether the pid namespace is valid.\nfunc (n PidMode) Valid() bool {\n\treturn n == \"\" || n.IsHost() || validContainer(string(n))\n}\n\n// Container returns the name of the container whose pid namespace is going to be used.\nfunc (n PidMode) Container() (idOrName string) {\n\tidOrName, _ = containerID(string(n))\n\treturn idOrName\n}\n\n// DeviceRequest represents a request for devices from a device driver.\n// Used by GPU device drivers.\ntype DeviceRequest struct {\n\tDriver       string            // Name of device driver\n\tCount        int               // Number of devices to request (-1 = All)\n\tDeviceIDs    []string          // List of device IDs as recognizable by the device driver\n\tCapabilities [][]string        // An OR list of AND lists of device capabilities (e.g. \"gpu\")\n\tOptions      map[string]string // Options to pass onto the device driver\n}\n\n// DeviceMapping represents the device mapping between the host and the container.\ntype DeviceMapping struct {\n\tPathOnHost        string\n\tPathInContainer   string\n\tCgroupPermissions string\n}\n\n// RestartPolicy represents the restart policies of the container.\ntype RestartPolicy struct {\n\tName              RestartPolicyMode\n\tMaximumRetryCount int\n}\n\ntype RestartPolicyMode string\n\nconst (\n\tRestartPolicyDisabled      RestartPolicyMode = \"no\"\n\tRestartPolicyAlways        RestartPolicyMode = \"always\"\n\tRestartPolicyOnFailure     RestartPolicyMode = \"on-failure\"\n\tRestartPolicyUnlessStopped RestartPolicyMode = \"unless-stopped\"\n)\n\n// IsNone indicates whether the container has the \"no\" restart policy.\n// This means the container will not automatically restart when exiting.\nfunc (rp *RestartPolicy) IsNone() bool {\n\treturn rp.Name == RestartPolicyDisabled || rp.Name == \"\"\n}\n\n// IsAlways indicates whether the container has the \"always\" restart policy.\n// This means the container will automatically restart regardless of the exit status.\nfunc (rp *RestartPolicy) IsAlways() bool {\n\treturn rp.Name == RestartPolicyAlways\n}\n\n// IsOnFailure indicates whether the container has the \"on-failure\" restart policy.\n// This means the container will automatically restart of exiting with a non-zero exit status.\nfunc (rp *RestartPolicy) IsOnFailure() bool {\n\treturn rp.Name == RestartPolicyOnFailure\n}\n\n// IsUnlessStopped indicates whether the container has the\n// \"unless-stopped\" restart policy. This means the container will\n// automatically restart unless user has put it to stopped state.\nfunc (rp *RestartPolicy) IsUnlessStopped() bool {\n\treturn rp.Name == RestartPolicyUnlessStopped\n}\n\n// IsSame compares two RestartPolicy to see if they are the same\nfunc (rp *RestartPolicy) IsSame(tp *RestartPolicy) bool {\n\treturn rp.Name == tp.Name && rp.MaximumRetryCount == tp.MaximumRetryCount\n}\n\n// ValidateRestartPolicy validates the given RestartPolicy.\nfunc ValidateRestartPolicy(policy RestartPolicy) error {\n\tswitch policy.Name {\n\tcase RestartPolicyAlways, RestartPolicyUnlessStopped, RestartPolicyDisabled:\n\t\tif policy.MaximumRetryCount != 0 {\n\t\t\tmsg := \"invalid restart policy: maximum retry count can only be used with 'on-failure'\"\n\t\t\tif policy.MaximumRetryCount < 0 {\n\t\t\t\tmsg += \" and cannot be negative\"\n\t\t\t}\n\t\t\treturn &errInvalidParameter{errors.New(msg)}\n\t\t}\n\t\treturn nil\n\tcase RestartPolicyOnFailure:\n\t\tif policy.MaximumRetryCount < 0 {\n\t\t\treturn &errInvalidParameter{errors.New(\"invalid restart policy: maximum retry count cannot be negative\")}\n\t\t}\n\t\treturn nil\n\tcase \"\":\n\t\t// Versions before v25.0.0 created an empty restart-policy \"name\" as\n\t\t// default. Allow an empty name with \"any\" MaximumRetryCount for\n\t\t// backward-compatibility.\n\t\treturn nil\n\tdefault:\n\t\treturn &errInvalidParameter{fmt.Errorf(\"invalid restart policy: unknown policy '%s'; use one of '%s', '%s', '%s', or '%s'\", policy.Name, RestartPolicyDisabled, RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyUnlessStopped)}\n\t}\n}\n\n// LogMode is a type to define the available modes for logging\n// These modes affect how logs are handled when log messages start piling up.\ntype LogMode string\n\n// Available logging modes\nconst (\n\tLogModeUnset    LogMode = \"\"\n\tLogModeBlocking LogMode = \"blocking\"\n\tLogModeNonBlock LogMode = \"non-blocking\"\n)\n\n// LogConfig represents the logging configuration of the container.\ntype LogConfig struct {\n\tType   string\n\tConfig map[string]string\n}\n\n// Ulimit is an alias for [units.Ulimit], which may be moving to a different\n// location or become a local type. This alias is to help transitioning.\n//\n// Users are recommended to use this alias instead of using [units.Ulimit] directly.\ntype Ulimit = units.Ulimit\n\n// Resources contains container's resources (cgroups config, ulimits...)\ntype Resources struct {\n\t// Applicable to all platforms\n\tCPUShares int64 `json:\"CpuShares\"` // CPU shares (relative weight vs. other containers)\n\tMemory    int64 // Memory limit (in bytes)\n\tNanoCPUs  int64 `json:\"NanoCpus\"` // CPU quota in units of 10<sup>-9</sup> CPUs.\n\n\t// Applicable to UNIX platforms\n\tCgroupParent         string // Parent cgroup.\n\tBlkioWeight          uint16 // Block IO weight (relative weight vs. other containers)\n\tBlkioWeightDevice    []*blkiodev.WeightDevice\n\tBlkioDeviceReadBps   []*blkiodev.ThrottleDevice\n\tBlkioDeviceWriteBps  []*blkiodev.ThrottleDevice\n\tBlkioDeviceReadIOps  []*blkiodev.ThrottleDevice\n\tBlkioDeviceWriteIOps []*blkiodev.ThrottleDevice\n\tCPUPeriod            int64           `json:\"CpuPeriod\"`          // CPU CFS (Completely Fair Scheduler) period\n\tCPUQuota             int64           `json:\"CpuQuota\"`           // CPU CFS (Completely Fair Scheduler) quota\n\tCPURealtimePeriod    int64           `json:\"CpuRealtimePeriod\"`  // CPU real-time period\n\tCPURealtimeRuntime   int64           `json:\"CpuRealtimeRuntime\"` // CPU real-time runtime\n\tCpusetCpus           string          // CpusetCpus 0-2, 0,1\n\tCpusetMems           string          // CpusetMems 0-2, 0,1\n\tDevices              []DeviceMapping // List of devices to map inside the container\n\tDeviceCgroupRules    []string        // List of rule to be added to the device cgroup\n\tDeviceRequests       []DeviceRequest // List of device requests for device drivers\n\n\t// KernelMemory specifies the kernel memory limit (in bytes) for the container.\n\t// Deprecated: kernel 5.4 deprecated kmem.limit_in_bytes.\n\tKernelMemory int64 `json:\",omitempty\"`\n\t// Hard limit for kernel TCP buffer memory (in bytes).\n\t//\n\t// Deprecated: This field is deprecated and will be removed in the next release.\n\t// Starting with 6.12, the kernel has deprecated kernel memory tcp accounting\n\t// for cgroups v1.\n\tKernelMemoryTCP   int64     `json:\",omitempty\"` // Hard limit for kernel TCP buffer memory (in bytes)\n\tMemoryReservation int64     // Memory soft limit (in bytes)\n\tMemorySwap        int64     // Total memory usage (memory + swap); set `-1` to enable unlimited swap\n\tMemorySwappiness  *int64    // Tuning container memory swappiness behaviour\n\tOomKillDisable    *bool     // Whether to disable OOM Killer or not\n\tPidsLimit         *int64    // Setting PIDs limit for a container; Set `0` or `-1` for unlimited, or `null` to not change.\n\tUlimits           []*Ulimit // List of ulimits to be set in the container\n\n\t// Applicable to Windows\n\tCPUCount           int64  `json:\"CpuCount\"`   // CPU count\n\tCPUPercent         int64  `json:\"CpuPercent\"` // CPU percent\n\tIOMaximumIOps      uint64 // Maximum IOps for the container system drive\n\tIOMaximumBandwidth uint64 // Maximum IO in bytes per second for the container system drive\n}\n\n// UpdateConfig holds the mutable attributes of a Container.\n// Those attributes can be updated at runtime.\ntype UpdateConfig struct {\n\t// Contains container's resources (cgroups, ulimits)\n\tResources\n\tRestartPolicy RestartPolicy\n}\n\n// HostConfig the non-portable Config structure of a container.\n// Here, \"non-portable\" means \"dependent of the host we are running on\".\n// Portable information *should* appear in Config.\ntype HostConfig struct {\n\t// Applicable to all platforms\n\tBinds           []string          // List of volume bindings for this container\n\tContainerIDFile string            // File (path) where the containerId is written\n\tLogConfig       LogConfig         // Configuration of the logs for this container\n\tNetworkMode     NetworkMode       // Network mode to use for the container\n\tPortBindings    nat.PortMap       // Port mapping between the exposed port (container) and the host\n\tRestartPolicy   RestartPolicy     // Restart policy to be used for the container\n\tAutoRemove      bool              // Automatically remove container when it exits\n\tVolumeDriver    string            // Name of the volume driver used to mount volumes\n\tVolumesFrom     []string          // List of volumes to take from other container\n\tConsoleSize     [2]uint           // Initial console size (height,width)\n\tAnnotations     map[string]string `json:\",omitempty\"` // Arbitrary non-identifying metadata attached to container and provided to the runtime\n\n\t// Applicable to UNIX platforms\n\tCapAdd          strslice.StrSlice // List of kernel capabilities to add to the container\n\tCapDrop         strslice.StrSlice // List of kernel capabilities to remove from the container\n\tCgroupnsMode    CgroupnsMode      // Cgroup namespace mode to use for the container\n\tDNS             []string          `json:\"Dns\"`        // List of DNS server to lookup\n\tDNSOptions      []string          `json:\"DnsOptions\"` // List of DNSOption to look for\n\tDNSSearch       []string          `json:\"DnsSearch\"`  // List of DNSSearch to look for\n\tExtraHosts      []string          // List of extra hosts\n\tGroupAdd        []string          // List of additional groups that the container process will run as\n\tIpcMode         IpcMode           // IPC namespace to use for the container\n\tCgroup          CgroupSpec        // Cgroup to use for the container\n\tLinks           []string          // List of links (in the name:alias form)\n\tOomScoreAdj     int               // Container preference for OOM-killing\n\tPidMode         PidMode           // PID namespace to use for the container\n\tPrivileged      bool              // Is the container in privileged mode\n\tPublishAllPorts bool              // Should docker publish all exposed port for the container\n\tReadonlyRootfs  bool              // Is the container root filesystem in read-only\n\tSecurityOpt     []string          // List of string values to customize labels for MLS systems, such as SELinux.\n\tStorageOpt      map[string]string `json:\",omitempty\"` // Storage driver options per container.\n\tTmpfs           map[string]string `json:\",omitempty\"` // List of tmpfs (mounts) used for the container\n\tUTSMode         UTSMode           // UTS namespace to use for the container\n\tUsernsMode      UsernsMode        // The user namespace to use for the container\n\tShmSize         int64             // Total shm memory usage\n\tSysctls         map[string]string `json:\",omitempty\"` // List of Namespaced sysctls used for the container\n\tRuntime         string            `json:\",omitempty\"` // Runtime to use with this container\n\n\t// Applicable to Windows\n\tIsolation Isolation // Isolation technology of the container (e.g. default, hyperv)\n\n\t// Contains container's resources (cgroups, ulimits)\n\tResources\n\n\t// Mounts specs used by the container\n\tMounts []mount.Mount `json:\",omitempty\"`\n\n\t// MaskedPaths is the list of paths to be masked inside the container (this overrides the default set of paths)\n\tMaskedPaths []string\n\n\t// ReadonlyPaths is the list of paths to be set as read-only inside the container (this overrides the default set of paths)\n\tReadonlyPaths []string\n\n\t// Run a custom init inside the container, if null, use the daemon's configured settings\n\tInit *bool `json:\",omitempty\"`\n}\n\n// containerID splits \"container:<ID|name>\" values. It returns the container\n// ID or name, and whether an ID/name was found. It returns an empty string and\n// a \"false\" if the value does not have a \"container:\" prefix. Further validation\n// of the returned, including checking if the value is empty, should be handled\n// by the caller.\nfunc containerID(val string) (idOrName string, ok bool) {\n\tk, v, hasSep := strings.Cut(val, \":\")\n\tif !hasSep || k != \"container\" {\n\t\treturn \"\", false\n\t}\n\treturn v, true\n}\n\n// validContainer checks if the given value is a \"container:\" mode with\n// a non-empty name/ID.\nfunc validContainer(val string) bool {\n\tid, ok := containerID(val)\n\treturn ok && id != \"\"\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/hostconfig_unix.go",
    "content": "//go:build !windows\n\npackage container\n\nimport \"github.com/docker/docker/api/types/network\"\n\n// IsValid indicates if an isolation technology is valid\nfunc (i Isolation) IsValid() bool {\n\treturn i.IsDefault()\n}\n\n// IsBridge indicates whether container uses the bridge network stack\nfunc (n NetworkMode) IsBridge() bool {\n\treturn n == network.NetworkBridge\n}\n\n// IsHost indicates whether container uses the host network stack.\nfunc (n NetworkMode) IsHost() bool {\n\treturn n == network.NetworkHost\n}\n\n// IsUserDefined indicates user-created network\nfunc (n NetworkMode) IsUserDefined() bool {\n\treturn !n.IsDefault() && !n.IsBridge() && !n.IsHost() && !n.IsNone() && !n.IsContainer()\n}\n\n// NetworkName returns the name of the network stack.\nfunc (n NetworkMode) NetworkName() string {\n\tswitch {\n\tcase n.IsDefault():\n\t\treturn network.NetworkDefault\n\tcase n.IsBridge():\n\t\treturn network.NetworkBridge\n\tcase n.IsHost():\n\t\treturn network.NetworkHost\n\tcase n.IsNone():\n\t\treturn network.NetworkNone\n\tcase n.IsContainer():\n\t\treturn \"container\"\n\tcase n.IsUserDefined():\n\t\treturn n.UserDefined()\n\tdefault:\n\t\treturn \"\"\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/hostconfig_windows.go",
    "content": "package container\n\nimport \"github.com/docker/docker/api/types/network\"\n\n// IsValid indicates if an isolation technology is valid\nfunc (i Isolation) IsValid() bool {\n\treturn i.IsDefault() || i.IsHyperV() || i.IsProcess()\n}\n\n// IsBridge indicates whether container uses the bridge network stack\n// in windows it is given the name NAT\nfunc (n NetworkMode) IsBridge() bool {\n\treturn n == network.NetworkNat\n}\n\n// IsHost indicates whether container uses the host network stack.\n// returns false as this is not supported by windows\nfunc (n NetworkMode) IsHost() bool {\n\treturn false\n}\n\n// IsUserDefined indicates user-created network\nfunc (n NetworkMode) IsUserDefined() bool {\n\treturn !n.IsDefault() && !n.IsNone() && !n.IsBridge() && !n.IsContainer()\n}\n\n// NetworkName returns the name of the network stack.\nfunc (n NetworkMode) NetworkName() string {\n\tswitch {\n\tcase n.IsDefault():\n\t\treturn network.NetworkDefault\n\tcase n.IsBridge():\n\t\treturn network.NetworkNat\n\tcase n.IsHost():\n\t\t// Windows currently doesn't support host network-mode, so\n\t\t// this would currently never happen..\n\t\treturn network.NetworkHost\n\tcase n.IsNone():\n\t\treturn network.NetworkNone\n\tcase n.IsContainer():\n\t\treturn \"container\"\n\tcase n.IsUserDefined():\n\t\treturn n.UserDefined()\n\tdefault:\n\t\treturn \"\"\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/network_settings.go",
    "content": "package container\n\nimport (\n\t\"github.com/docker/docker/api/types/network\"\n\t\"github.com/docker/go-connections/nat\"\n)\n\n// NetworkSettings exposes the network settings in the api\ntype NetworkSettings struct {\n\tNetworkSettingsBase\n\tDefaultNetworkSettings\n\tNetworks map[string]*network.EndpointSettings\n}\n\n// NetworkSettingsBase holds networking state for a container when inspecting it.\n//\n// Deprecated: Most fields in NetworkSettingsBase are deprecated. Fields which aren't deprecated will move to\n// NetworkSettings in v29.0, and this struct will be removed.\ntype NetworkSettingsBase struct {\n\tBridge     string      // Deprecated: This field is only set when the daemon is started with the --bridge flag specified.\n\tSandboxID  string      // SandboxID uniquely represents a container's network stack\n\tSandboxKey string      // SandboxKey identifies the sandbox\n\tPorts      nat.PortMap // Ports is a collection of PortBinding indexed by Port\n\n\t// HairpinMode specifies if hairpin NAT should be enabled on the virtual interface\n\t//\n\t// Deprecated: This field is never set and will be removed in a future release.\n\tHairpinMode bool\n\t// LinkLocalIPv6Address is an IPv6 unicast address using the link-local prefix\n\t//\n\t// Deprecated: This field is never set and will be removed in a future release.\n\tLinkLocalIPv6Address string\n\t// LinkLocalIPv6PrefixLen is the prefix length of an IPv6 unicast address\n\t//\n\t// Deprecated: This field is never set and will be removed in a future release.\n\tLinkLocalIPv6PrefixLen int\n\tSecondaryIPAddresses   []network.Address // Deprecated: This field is never set and will be removed in a future release.\n\tSecondaryIPv6Addresses []network.Address // Deprecated: This field is never set and will be removed in a future release.\n}\n\n// DefaultNetworkSettings holds the networking state for the default bridge, if the container is connected to that\n// network.\n//\n// Deprecated: this struct is deprecated since Docker v1.11 and will be removed in v29. You should look for the default\n// network in NetworkSettings.Networks instead.\ntype DefaultNetworkSettings struct {\n\t// EndpointID uniquely represents a service endpoint in a Sandbox\n\t//\n\t// Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead.\n\tEndpointID string\n\t// Gateway holds the gateway address for the network\n\t//\n\t// Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead.\n\tGateway string\n\t// GlobalIPv6Address holds network's global IPv6 address\n\t//\n\t// Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead.\n\tGlobalIPv6Address string\n\t// GlobalIPv6PrefixLen represents mask length of network's global IPv6 address\n\t//\n\t// Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead.\n\tGlobalIPv6PrefixLen int\n\t// IPAddress holds the IPv4 address for the network\n\t//\n\t// Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead.\n\tIPAddress string\n\t// IPPrefixLen represents mask length of network's IPv4 address\n\t//\n\t// Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead.\n\tIPPrefixLen int\n\t// IPv6Gateway holds gateway address specific for IPv6\n\t//\n\t// Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead.\n\tIPv6Gateway string\n\t// MacAddress holds the MAC address for the network\n\t//\n\t// Deprecated: This field will be removed in v29. You should look for the default network in NetworkSettings.Networks instead.\n\tMacAddress string\n}\n\n// NetworkSettingsSummary provides a summary of container's networks\n// in /containers/json\ntype NetworkSettingsSummary struct {\n\tNetworks map[string]*network.EndpointSettings\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/options.go",
    "content": "package container\n\nimport \"github.com/docker/docker/api/types/filters\"\n\n// ResizeOptions holds parameters to resize a TTY.\n// It can be used to resize container TTYs and\n// exec process TTYs too.\ntype ResizeOptions struct {\n\tHeight uint\n\tWidth  uint\n}\n\n// AttachOptions holds parameters to attach to a container.\ntype AttachOptions struct {\n\tStream     bool\n\tStdin      bool\n\tStdout     bool\n\tStderr     bool\n\tDetachKeys string\n\tLogs       bool\n}\n\n// CommitOptions holds parameters to commit changes into a container.\ntype CommitOptions struct {\n\tReference string\n\tComment   string\n\tAuthor    string\n\tChanges   []string\n\tPause     bool\n\tConfig    *Config\n}\n\n// RemoveOptions holds parameters to remove containers.\ntype RemoveOptions struct {\n\tRemoveVolumes bool\n\tRemoveLinks   bool\n\tForce         bool\n}\n\n// StartOptions holds parameters to start containers.\ntype StartOptions struct {\n\tCheckpointID  string\n\tCheckpointDir string\n}\n\n// ListOptions holds parameters to list containers with.\ntype ListOptions struct {\n\tSize    bool\n\tAll     bool\n\tLatest  bool\n\tSince   string\n\tBefore  string\n\tLimit   int\n\tFilters filters.Args\n}\n\n// LogsOptions holds parameters to filter logs with.\ntype LogsOptions struct {\n\tShowStdout bool\n\tShowStderr bool\n\tSince      string\n\tUntil      string\n\tTimestamps bool\n\tFollow     bool\n\tTail       string\n\tDetails    bool\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/port.go",
    "content": "package container\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// Port An open port on a container\n// swagger:model Port\ntype Port struct {\n\n\t// Host IP address that the container's port is mapped to\n\tIP string `json:\"IP,omitempty\"`\n\n\t// Port on the container\n\t// Required: true\n\tPrivatePort uint16 `json:\"PrivatePort\"`\n\n\t// Port exposed on the host\n\tPublicPort uint16 `json:\"PublicPort,omitempty\"`\n\n\t// type\n\t// Required: true\n\tType string `json:\"Type\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/state.go",
    "content": "package container\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n// ContainerState is a string representation of the container's current state.\n//\n// It currently is an alias for string, but may become a distinct type in the future.\ntype ContainerState = string\n\nconst (\n\tStateCreated    ContainerState = \"created\"    // StateCreated indicates the container is created, but not (yet) started.\n\tStateRunning    ContainerState = \"running\"    // StateRunning indicates that the container is running.\n\tStatePaused     ContainerState = \"paused\"     // StatePaused indicates that the container's current state is paused.\n\tStateRestarting ContainerState = \"restarting\" // StateRestarting indicates that the container is currently restarting.\n\tStateRemoving   ContainerState = \"removing\"   // StateRemoving indicates that the container is being removed.\n\tStateExited     ContainerState = \"exited\"     // StateExited indicates that the container exited.\n\tStateDead       ContainerState = \"dead\"       // StateDead indicates that the container failed to be deleted. Containers in this state are attempted to be cleaned up when the daemon restarts.\n)\n\nvar validStates = []ContainerState{\n\tStateCreated, StateRunning, StatePaused, StateRestarting, StateRemoving, StateExited, StateDead,\n}\n\n// ValidateContainerState checks if the provided string is a valid\n// container [ContainerState].\nfunc ValidateContainerState(s ContainerState) error {\n\tswitch s {\n\tcase StateCreated, StateRunning, StatePaused, StateRestarting, StateRemoving, StateExited, StateDead:\n\t\treturn nil\n\tdefault:\n\t\treturn errInvalidParameter{error: fmt.Errorf(\"invalid value for state (%s): must be one of %s\", s, strings.Join(validStates, \", \"))}\n\t}\n}\n\n// StateStatus is used to return container wait results.\n// Implements exec.ExitCode interface.\n// This type is needed as State include a sync.Mutex field which make\n// copying it unsafe.\ntype StateStatus struct {\n\texitCode int\n\terr      error\n}\n\n// ExitCode returns current exitcode for the state.\nfunc (s StateStatus) ExitCode() int {\n\treturn s.exitCode\n}\n\n// Err returns current error for the state. Returns nil if the container had\n// exited on its own.\nfunc (s StateStatus) Err() error {\n\treturn s.err\n}\n\n// NewStateStatus returns a new StateStatus with the given exit code and error.\nfunc NewStateStatus(exitCode int, err error) StateStatus {\n\treturn StateStatus{\n\t\texitCode: exitCode,\n\t\terr:      err,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/stats.go",
    "content": "package container\n\nimport \"time\"\n\n// ThrottlingData stores CPU throttling stats of one running container.\n// Not used on Windows.\ntype ThrottlingData struct {\n\t// Number of periods with throttling active\n\tPeriods uint64 `json:\"periods\"`\n\t// Number of periods when the container hits its throttling limit.\n\tThrottledPeriods uint64 `json:\"throttled_periods\"`\n\t// Aggregate time the container was throttled for in nanoseconds.\n\tThrottledTime uint64 `json:\"throttled_time\"`\n}\n\n// CPUUsage stores All CPU stats aggregated since container inception.\ntype CPUUsage struct {\n\t// Total CPU time consumed.\n\t// Units: nanoseconds (Linux)\n\t// Units: 100's of nanoseconds (Windows)\n\tTotalUsage uint64 `json:\"total_usage\"`\n\n\t// Total CPU time consumed per core (Linux). Not used on Windows.\n\t// Units: nanoseconds.\n\tPercpuUsage []uint64 `json:\"percpu_usage,omitempty\"`\n\n\t// Time spent by tasks of the cgroup in kernel mode (Linux).\n\t// Time spent by all container processes in kernel mode (Windows).\n\t// Units: nanoseconds (Linux).\n\t// Units: 100's of nanoseconds (Windows). Not populated for Hyper-V Containers.\n\tUsageInKernelmode uint64 `json:\"usage_in_kernelmode\"`\n\n\t// Time spent by tasks of the cgroup in user mode (Linux).\n\t// Time spent by all container processes in user mode (Windows).\n\t// Units: nanoseconds (Linux).\n\t// Units: 100's of nanoseconds (Windows). Not populated for Hyper-V Containers\n\tUsageInUsermode uint64 `json:\"usage_in_usermode\"`\n}\n\n// CPUStats aggregates and wraps all CPU related info of container\ntype CPUStats struct {\n\t// CPU Usage. Linux and Windows.\n\tCPUUsage CPUUsage `json:\"cpu_usage\"`\n\n\t// System Usage. Linux only.\n\tSystemUsage uint64 `json:\"system_cpu_usage,omitempty\"`\n\n\t// Online CPUs. Linux only.\n\tOnlineCPUs uint32 `json:\"online_cpus,omitempty\"`\n\n\t// Throttling Data. Linux only.\n\tThrottlingData ThrottlingData `json:\"throttling_data,omitempty\"`\n}\n\n// MemoryStats aggregates all memory stats since container inception on Linux.\n// Windows returns stats for commit and private working set only.\ntype MemoryStats struct {\n\t// Linux Memory Stats\n\n\t// current res_counter usage for memory\n\tUsage uint64 `json:\"usage,omitempty\"`\n\t// maximum usage ever recorded.\n\tMaxUsage uint64 `json:\"max_usage,omitempty\"`\n\t// TODO(vishh): Export these as stronger types.\n\t// all the stats exported via memory.stat.\n\tStats map[string]uint64 `json:\"stats,omitempty\"`\n\t// number of times memory usage hits limits.\n\tFailcnt uint64 `json:\"failcnt,omitempty\"`\n\tLimit   uint64 `json:\"limit,omitempty\"`\n\n\t// Windows Memory Stats\n\t// See https://technet.microsoft.com/en-us/magazine/ff382715.aspx\n\n\t// committed bytes\n\tCommit uint64 `json:\"commitbytes,omitempty\"`\n\t// peak committed bytes\n\tCommitPeak uint64 `json:\"commitpeakbytes,omitempty\"`\n\t// private working set\n\tPrivateWorkingSet uint64 `json:\"privateworkingset,omitempty\"`\n}\n\n// BlkioStatEntry is one small entity to store a piece of Blkio stats\n// Not used on Windows.\ntype BlkioStatEntry struct {\n\tMajor uint64 `json:\"major\"`\n\tMinor uint64 `json:\"minor\"`\n\tOp    string `json:\"op\"`\n\tValue uint64 `json:\"value\"`\n}\n\n// BlkioStats stores All IO service stats for data read and write.\n// This is a Linux specific structure as the differences between expressing\n// block I/O on Windows and Linux are sufficiently significant to make\n// little sense attempting to morph into a combined structure.\ntype BlkioStats struct {\n\t// number of bytes transferred to and from the block device\n\tIoServiceBytesRecursive []BlkioStatEntry `json:\"io_service_bytes_recursive\"`\n\tIoServicedRecursive     []BlkioStatEntry `json:\"io_serviced_recursive\"`\n\tIoQueuedRecursive       []BlkioStatEntry `json:\"io_queue_recursive\"`\n\tIoServiceTimeRecursive  []BlkioStatEntry `json:\"io_service_time_recursive\"`\n\tIoWaitTimeRecursive     []BlkioStatEntry `json:\"io_wait_time_recursive\"`\n\tIoMergedRecursive       []BlkioStatEntry `json:\"io_merged_recursive\"`\n\tIoTimeRecursive         []BlkioStatEntry `json:\"io_time_recursive\"`\n\tSectorsRecursive        []BlkioStatEntry `json:\"sectors_recursive\"`\n}\n\n// StorageStats is the disk I/O stats for read/write on Windows.\ntype StorageStats struct {\n\tReadCountNormalized  uint64 `json:\"read_count_normalized,omitempty\"`\n\tReadSizeBytes        uint64 `json:\"read_size_bytes,omitempty\"`\n\tWriteCountNormalized uint64 `json:\"write_count_normalized,omitempty\"`\n\tWriteSizeBytes       uint64 `json:\"write_size_bytes,omitempty\"`\n}\n\n// NetworkStats aggregates the network stats of one container\ntype NetworkStats struct {\n\t// Bytes received. Windows and Linux.\n\tRxBytes uint64 `json:\"rx_bytes\"`\n\t// Packets received. Windows and Linux.\n\tRxPackets uint64 `json:\"rx_packets\"`\n\t// Received errors. Not used on Windows. Note that we don't `omitempty` this\n\t// field as it is expected in the >=v1.21 API stats structure.\n\tRxErrors uint64 `json:\"rx_errors\"`\n\t// Incoming packets dropped. Windows and Linux.\n\tRxDropped uint64 `json:\"rx_dropped\"`\n\t// Bytes sent. Windows and Linux.\n\tTxBytes uint64 `json:\"tx_bytes\"`\n\t// Packets sent. Windows and Linux.\n\tTxPackets uint64 `json:\"tx_packets\"`\n\t// Sent errors. Not used on Windows. Note that we don't `omitempty` this\n\t// field as it is expected in the >=v1.21 API stats structure.\n\tTxErrors uint64 `json:\"tx_errors\"`\n\t// Outgoing packets dropped. Windows and Linux.\n\tTxDropped uint64 `json:\"tx_dropped\"`\n\t// Endpoint ID. Not used on Linux.\n\tEndpointID string `json:\"endpoint_id,omitempty\"`\n\t// Instance ID. Not used on Linux.\n\tInstanceID string `json:\"instance_id,omitempty\"`\n}\n\n// PidsStats contains the stats of a container's pids\ntype PidsStats struct {\n\t// Current is the number of pids in the cgroup\n\tCurrent uint64 `json:\"current,omitempty\"`\n\t// Limit is the hard limit on the number of pids in the cgroup.\n\t// A \"Limit\" of 0 means that there is no limit.\n\tLimit uint64 `json:\"limit,omitempty\"`\n}\n\n// Stats is Ultimate struct aggregating all types of stats of one container\n//\n// Deprecated: use [StatsResponse] instead. This type will be removed in the next release.\ntype Stats = StatsResponse\n\n// StatsResponse aggregates all types of stats of one container.\ntype StatsResponse struct {\n\tName string `json:\"name,omitempty\"`\n\tID   string `json:\"id,omitempty\"`\n\n\t// Common stats\n\tRead    time.Time `json:\"read\"`\n\tPreRead time.Time `json:\"preread\"`\n\n\t// Linux specific stats, not populated on Windows.\n\tPidsStats  PidsStats  `json:\"pids_stats,omitempty\"`\n\tBlkioStats BlkioStats `json:\"blkio_stats,omitempty\"`\n\n\t// Windows specific stats, not populated on Linux.\n\tNumProcs     uint32       `json:\"num_procs\"`\n\tStorageStats StorageStats `json:\"storage_stats,omitempty\"`\n\n\t// Shared stats\n\tCPUStats    CPUStats                `json:\"cpu_stats,omitempty\"`\n\tPreCPUStats CPUStats                `json:\"precpu_stats,omitempty\"` // \"Pre\"=\"Previous\"\n\tMemoryStats MemoryStats             `json:\"memory_stats,omitempty\"`\n\tNetworks    map[string]NetworkStats `json:\"networks,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/top_response.go",
    "content": "package container\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// TopResponse ContainerTopResponse\n//\n// Container \"top\" response.\n// swagger:model TopResponse\ntype TopResponse struct {\n\n\t// Each process running in the container, where each process\n\t// is an array of values corresponding to the titles.\n\tProcesses [][]string `json:\"Processes\"`\n\n\t// The ps column titles\n\tTitles []string `json:\"Titles\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/update_response.go",
    "content": "package container\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// UpdateResponse ContainerUpdateResponse\n//\n// Response for a successful container-update.\n// swagger:model UpdateResponse\ntype UpdateResponse struct {\n\n\t// Warnings encountered when updating the container.\n\tWarnings []string `json:\"Warnings\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/wait_exit_error.go",
    "content": "package container\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// WaitExitError container waiting error, if any\n// swagger:model WaitExitError\ntype WaitExitError struct {\n\n\t// Details of an error\n\tMessage string `json:\"Message,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/wait_response.go",
    "content": "package container\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// WaitResponse ContainerWaitResponse\n//\n// OK response to ContainerWait operation\n// swagger:model WaitResponse\ntype WaitResponse struct {\n\n\t// error\n\tError *WaitExitError `json:\"Error,omitempty\"`\n\n\t// Exit code of the container\n\t// Required: true\n\tStatusCode int64 `json:\"StatusCode\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/container/waitcondition.go",
    "content": "package container\n\n// WaitCondition is a type used to specify a container state for which\n// to wait.\ntype WaitCondition string\n\n// Possible WaitCondition Values.\n//\n// WaitConditionNotRunning (default) is used to wait for any of the non-running\n// states: \"created\", \"exited\", \"dead\", \"removing\", or \"removed\".\n//\n// WaitConditionNextExit is used to wait for the next time the state changes\n// to a non-running state. If the state is currently \"created\" or \"exited\",\n// this would cause Wait() to block until either the container runs and exits\n// or is removed.\n//\n// WaitConditionRemoved is used to wait for the container to be removed.\nconst (\n\tWaitConditionNotRunning WaitCondition = \"not-running\"\n\tWaitConditionNextExit   WaitCondition = \"next-exit\"\n\tWaitConditionRemoved    WaitCondition = \"removed\"\n)\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/error_response.go",
    "content": "package types\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// ErrorResponse Represents an error.\n// swagger:model ErrorResponse\ntype ErrorResponse struct {\n\n\t// The error message.\n\t// Required: true\n\tMessage string `json:\"message\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/error_response_ext.go",
    "content": "package types\n\n// Error returns the error message\nfunc (e ErrorResponse) Error() string {\n\treturn e.Message\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/events/events.go",
    "content": "package events\n\nimport \"github.com/docker/docker/api/types/filters\"\n\n// Type is used for event-types.\ntype Type string\n\n// List of known event types.\nconst (\n\tBuilderEventType   Type = \"builder\"   // BuilderEventType is the event type that the builder generates.\n\tConfigEventType    Type = \"config\"    // ConfigEventType is the event type that configs generate.\n\tContainerEventType Type = \"container\" // ContainerEventType is the event type that containers generate.\n\tDaemonEventType    Type = \"daemon\"    // DaemonEventType is the event type that daemon generate.\n\tImageEventType     Type = \"image\"     // ImageEventType is the event type that images generate.\n\tNetworkEventType   Type = \"network\"   // NetworkEventType is the event type that networks generate.\n\tNodeEventType      Type = \"node\"      // NodeEventType is the event type that nodes generate.\n\tPluginEventType    Type = \"plugin\"    // PluginEventType is the event type that plugins generate.\n\tSecretEventType    Type = \"secret\"    // SecretEventType is the event type that secrets generate.\n\tServiceEventType   Type = \"service\"   // ServiceEventType is the event type that services generate.\n\tVolumeEventType    Type = \"volume\"    // VolumeEventType is the event type that volumes generate.\n)\n\n// Action is used for event-actions.\ntype Action string\n\nconst (\n\tActionCreate       Action = \"create\"\n\tActionStart        Action = \"start\"\n\tActionRestart      Action = \"restart\"\n\tActionStop         Action = \"stop\"\n\tActionCheckpoint   Action = \"checkpoint\"\n\tActionPause        Action = \"pause\"\n\tActionUnPause      Action = \"unpause\"\n\tActionAttach       Action = \"attach\"\n\tActionDetach       Action = \"detach\"\n\tActionResize       Action = \"resize\"\n\tActionUpdate       Action = \"update\"\n\tActionRename       Action = \"rename\"\n\tActionKill         Action = \"kill\"\n\tActionDie          Action = \"die\"\n\tActionOOM          Action = \"oom\"\n\tActionDestroy      Action = \"destroy\"\n\tActionRemove       Action = \"remove\"\n\tActionCommit       Action = \"commit\"\n\tActionTop          Action = \"top\"\n\tActionCopy         Action = \"copy\"\n\tActionArchivePath  Action = \"archive-path\"\n\tActionExtractToDir Action = \"extract-to-dir\"\n\tActionExport       Action = \"export\"\n\tActionImport       Action = \"import\"\n\tActionSave         Action = \"save\"\n\tActionLoad         Action = \"load\"\n\tActionTag          Action = \"tag\"\n\tActionUnTag        Action = \"untag\"\n\tActionPush         Action = \"push\"\n\tActionPull         Action = \"pull\"\n\tActionPrune        Action = \"prune\"\n\tActionDelete       Action = \"delete\"\n\tActionEnable       Action = \"enable\"\n\tActionDisable      Action = \"disable\"\n\tActionConnect      Action = \"connect\"\n\tActionDisconnect   Action = \"disconnect\"\n\tActionReload       Action = \"reload\"\n\tActionMount        Action = \"mount\"\n\tActionUnmount      Action = \"unmount\"\n\n\t// ActionExecCreate is the prefix used for exec_create events. These\n\t// event-actions are commonly followed by a colon and space (\": \"),\n\t// and the command that's defined for the exec, for example:\n\t//\n\t//\texec_create: /bin/sh -c 'echo hello'\n\t//\n\t// This is far from ideal; it's a compromise to allow filtering and\n\t// to preserve backward-compatibility.\n\tActionExecCreate Action = \"exec_create\"\n\t// ActionExecStart is the prefix used for exec_create events. These\n\t// event-actions are commonly followed by a colon and space (\": \"),\n\t// and the command that's defined for the exec, for example:\n\t//\n\t//\texec_start: /bin/sh -c 'echo hello'\n\t//\n\t// This is far from ideal; it's a compromise to allow filtering and\n\t// to preserve backward-compatibility.\n\tActionExecStart  Action = \"exec_start\"\n\tActionExecDie    Action = \"exec_die\"\n\tActionExecDetach Action = \"exec_detach\"\n\n\t// ActionHealthStatus is the prefix to use for health_status events.\n\t//\n\t// Health-status events can either have a pre-defined status, in which\n\t// case the \"health_status\" action is followed by a colon, or can be\n\t// \"free-form\", in which case they're followed by the output of the\n\t// health-check output.\n\t//\n\t// This is far form ideal, and a compromise to allow filtering, and\n\t// to preserve backward-compatibility.\n\tActionHealthStatus          Action = \"health_status\"\n\tActionHealthStatusRunning   Action = \"health_status: running\"\n\tActionHealthStatusHealthy   Action = \"health_status: healthy\"\n\tActionHealthStatusUnhealthy Action = \"health_status: unhealthy\"\n)\n\n// Actor describes something that generates events,\n// like a container, or a network, or a volume.\n// It has a defined name and a set of attributes.\n// The container attributes are its labels, other actors\n// can generate these attributes from other properties.\ntype Actor struct {\n\tID         string\n\tAttributes map[string]string\n}\n\n// Message represents the information an event contains\ntype Message struct {\n\t// Deprecated: use Action instead.\n\t// Information from JSONMessage.\n\t// With data only in container events.\n\tStatus string `json:\"status,omitempty\"`\n\t// Deprecated: use Actor.ID instead.\n\tID string `json:\"id,omitempty\"`\n\t// Deprecated: use Actor.Attributes[\"image\"] instead.\n\tFrom string `json:\"from,omitempty\"`\n\n\tType   Type\n\tAction Action\n\tActor  Actor\n\t// Engine events are local scope. Cluster events are swarm scope.\n\tScope string `json:\"scope,omitempty\"`\n\n\tTime     int64 `json:\"time,omitempty\"`\n\tTimeNano int64 `json:\"timeNano,omitempty\"`\n}\n\n// ListOptions holds parameters to filter events with.\ntype ListOptions struct {\n\tSince   string\n\tUntil   string\n\tFilters filters.Args\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/filters/errors.go",
    "content": "package filters\n\nimport \"fmt\"\n\n// invalidFilter indicates that the provided filter or its value is invalid\ntype invalidFilter struct {\n\tFilter string\n\tValue  []string\n}\n\nfunc (e invalidFilter) Error() string {\n\tmsg := \"invalid filter\"\n\tif e.Filter != \"\" {\n\t\tmsg += \" '\" + e.Filter\n\t\tif e.Value != nil {\n\t\t\tmsg = fmt.Sprintf(\"%s=%s\", msg, e.Value)\n\t\t}\n\t\tmsg += \"'\"\n\t}\n\treturn msg\n}\n\n// InvalidParameter marks this error as ErrInvalidParameter\nfunc (e invalidFilter) InvalidParameter() {}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/filters/filters_deprecated.go",
    "content": "package filters\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/docker/docker/api/types/versions\"\n)\n\n// ToParamWithVersion encodes Args as a JSON string. If version is less than 1.22\n// then the encoded format will use an older legacy format where the values are a\n// list of strings, instead of a set.\n//\n// Deprecated: do not use in any new code; use ToJSON instead\nfunc ToParamWithVersion(version string, a Args) (string, error) {\n\tout, err := ToJSON(a)\n\tif out == \"\" || err != nil {\n\t\treturn \"\", nil\n\t}\n\tif version != \"\" && versions.LessThan(version, \"1.22\") {\n\t\treturn encodeLegacyFilters(out)\n\t}\n\treturn out, nil\n}\n\n// encodeLegacyFilters encodes Args in the legacy format as used in API v1.21 and older.\n// where values are a list of strings, instead of a set.\n//\n// Don't use in any new code; use [filters.ToJSON]] instead.\nfunc encodeLegacyFilters(currentFormat string) (string, error) {\n\t// The Args.fields field is not exported, but used to marshal JSON,\n\t// so we'll marshal to the new format, then unmarshal to get the\n\t// fields, and marshal again.\n\t//\n\t// This is far from optimal, but this code is only used for deprecated\n\t// API versions, so should not be hit commonly.\n\tvar argsFields map[string]map[string]bool\n\terr := json.Unmarshal([]byte(currentFormat), &argsFields)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tbuf, err := json.Marshal(convertArgsToSlice(argsFields))\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn string(buf), nil\n}\n\nfunc convertArgsToSlice(f map[string]map[string]bool) map[string][]string {\n\tm := map[string][]string{}\n\tfor k, v := range f {\n\t\tvalues := []string{}\n\t\tfor kk := range v {\n\t\t\tif v[kk] {\n\t\t\t\tvalues = append(values, kk)\n\t\t\t}\n\t\t}\n\t\tm[k] = values\n\t}\n\treturn m\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/filters/parse.go",
    "content": "/*\nPackage filters provides tools for encoding a mapping of keys to a set of\nmultiple values.\n*/\npackage filters\n\nimport (\n\t\"encoding/json\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// Args stores a mapping of keys to a set of multiple values.\ntype Args struct {\n\tfields map[string]map[string]bool\n}\n\n// KeyValuePair are used to initialize a new Args\ntype KeyValuePair struct {\n\tKey   string\n\tValue string\n}\n\n// Arg creates a new KeyValuePair for initializing Args\nfunc Arg(key, value string) KeyValuePair {\n\treturn KeyValuePair{Key: key, Value: value}\n}\n\n// NewArgs returns a new Args populated with the initial args\nfunc NewArgs(initialArgs ...KeyValuePair) Args {\n\targs := Args{fields: map[string]map[string]bool{}}\n\tfor _, arg := range initialArgs {\n\t\targs.Add(arg.Key, arg.Value)\n\t}\n\treturn args\n}\n\n// Keys returns all the keys in list of Args\nfunc (args Args) Keys() []string {\n\tkeys := make([]string, 0, len(args.fields))\n\tfor k := range args.fields {\n\t\tkeys = append(keys, k)\n\t}\n\treturn keys\n}\n\n// MarshalJSON returns a JSON byte representation of the Args\nfunc (args Args) MarshalJSON() ([]byte, error) {\n\tif len(args.fields) == 0 {\n\t\treturn []byte(\"{}\"), nil\n\t}\n\treturn json.Marshal(args.fields)\n}\n\n// ToJSON returns the Args as a JSON encoded string\nfunc ToJSON(a Args) (string, error) {\n\tif a.Len() == 0 {\n\t\treturn \"\", nil\n\t}\n\tbuf, err := json.Marshal(a)\n\treturn string(buf), err\n}\n\n// FromJSON decodes a JSON encoded string into Args\nfunc FromJSON(p string) (Args, error) {\n\targs := NewArgs()\n\n\tif p == \"\" {\n\t\treturn args, nil\n\t}\n\n\traw := []byte(p)\n\terr := json.Unmarshal(raw, &args)\n\tif err == nil {\n\t\treturn args, nil\n\t}\n\n\t// Fallback to parsing arguments in the legacy slice format\n\tdeprecated := map[string][]string{}\n\tif legacyErr := json.Unmarshal(raw, &deprecated); legacyErr != nil {\n\t\treturn args, &invalidFilter{}\n\t}\n\n\targs.fields = deprecatedArgs(deprecated)\n\treturn args, nil\n}\n\n// UnmarshalJSON populates the Args from JSON encode bytes\nfunc (args Args) UnmarshalJSON(raw []byte) error {\n\treturn json.Unmarshal(raw, &args.fields)\n}\n\n// Get returns the list of values associated with the key\nfunc (args Args) Get(key string) []string {\n\tvalues := args.fields[key]\n\tif values == nil {\n\t\treturn make([]string, 0)\n\t}\n\tslice := make([]string, 0, len(values))\n\tfor key := range values {\n\t\tslice = append(slice, key)\n\t}\n\treturn slice\n}\n\n// Add a new value to the set of values\nfunc (args Args) Add(key, value string) {\n\tif _, ok := args.fields[key]; ok {\n\t\targs.fields[key][value] = true\n\t} else {\n\t\targs.fields[key] = map[string]bool{value: true}\n\t}\n}\n\n// Del removes a value from the set\nfunc (args Args) Del(key, value string) {\n\tif _, ok := args.fields[key]; ok {\n\t\tdelete(args.fields[key], value)\n\t\tif len(args.fields[key]) == 0 {\n\t\t\tdelete(args.fields, key)\n\t\t}\n\t}\n}\n\n// Len returns the number of keys in the mapping\nfunc (args Args) Len() int {\n\treturn len(args.fields)\n}\n\n// MatchKVList returns true if all the pairs in sources exist as key=value\n// pairs in the mapping at key, or if there are no values at key.\nfunc (args Args) MatchKVList(key string, sources map[string]string) bool {\n\tfieldValues := args.fields[key]\n\n\t// do not filter if there is no filter set or cannot determine filter\n\tif len(fieldValues) == 0 {\n\t\treturn true\n\t}\n\n\tif len(sources) == 0 {\n\t\treturn false\n\t}\n\n\tfor value := range fieldValues {\n\t\ttestK, testV, hasValue := strings.Cut(value, \"=\")\n\n\t\tv, ok := sources[testK]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tif hasValue && testV != v {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Match returns true if any of the values at key match the source string\nfunc (args Args) Match(field, source string) bool {\n\tif args.ExactMatch(field, source) {\n\t\treturn true\n\t}\n\n\tfieldValues := args.fields[field]\n\tfor name2match := range fieldValues {\n\t\tmatch, err := regexp.MatchString(name2match, source)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tif match {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// GetBoolOrDefault returns a boolean value of the key if the key is present\n// and is interpretable as a boolean value. Otherwise the default value is returned.\n// Error is not nil only if the filter values are not valid boolean or are conflicting.\nfunc (args Args) GetBoolOrDefault(key string, defaultValue bool) (bool, error) {\n\tfieldValues, ok := args.fields[key]\n\tif !ok {\n\t\treturn defaultValue, nil\n\t}\n\n\tif len(fieldValues) == 0 {\n\t\treturn defaultValue, &invalidFilter{key, nil}\n\t}\n\n\tisFalse := fieldValues[\"0\"] || fieldValues[\"false\"]\n\tisTrue := fieldValues[\"1\"] || fieldValues[\"true\"]\n\tif isFalse == isTrue {\n\t\t// Either no or conflicting truthy/falsy value were provided\n\t\treturn defaultValue, &invalidFilter{key, args.Get(key)}\n\t}\n\treturn isTrue, nil\n}\n\n// ExactMatch returns true if the source matches exactly one of the values.\nfunc (args Args) ExactMatch(key, source string) bool {\n\tfieldValues, ok := args.fields[key]\n\t// do not filter if there is no filter set or cannot determine filter\n\tif !ok || len(fieldValues) == 0 {\n\t\treturn true\n\t}\n\n\t// try to match full name value to avoid O(N) regular expression matching\n\treturn fieldValues[source]\n}\n\n// UniqueExactMatch returns true if there is only one value and the source\n// matches exactly the value.\nfunc (args Args) UniqueExactMatch(key, source string) bool {\n\tfieldValues := args.fields[key]\n\t// do not filter if there is no filter set or cannot determine filter\n\tif len(fieldValues) == 0 {\n\t\treturn true\n\t}\n\tif len(args.fields[key]) != 1 {\n\t\treturn false\n\t}\n\n\t// try to match full name value to avoid O(N) regular expression matching\n\treturn fieldValues[source]\n}\n\n// FuzzyMatch returns true if the source matches exactly one value,  or the\n// source has one of the values as a prefix.\nfunc (args Args) FuzzyMatch(key, source string) bool {\n\tif args.ExactMatch(key, source) {\n\t\treturn true\n\t}\n\n\tfieldValues := args.fields[key]\n\tfor prefix := range fieldValues {\n\t\tif strings.HasPrefix(source, prefix) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Contains returns true if the key exists in the mapping\nfunc (args Args) Contains(field string) bool {\n\t_, ok := args.fields[field]\n\treturn ok\n}\n\n// Validate compared the set of accepted keys against the keys in the mapping.\n// An error is returned if any mapping keys are not in the accepted set.\nfunc (args Args) Validate(accepted map[string]bool) error {\n\tfor name := range args.fields {\n\t\tif !accepted[name] {\n\t\t\treturn &invalidFilter{name, nil}\n\t\t}\n\t}\n\treturn nil\n}\n\n// WalkValues iterates over the list of values for a key in the mapping and calls\n// op() for each value. If op returns an error the iteration stops and the\n// error is returned.\nfunc (args Args) WalkValues(field string, op func(value string) error) error {\n\tif _, ok := args.fields[field]; !ok {\n\t\treturn nil\n\t}\n\tfor v := range args.fields[field] {\n\t\tif err := op(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Clone returns a copy of args.\nfunc (args Args) Clone() (newArgs Args) {\n\tnewArgs.fields = make(map[string]map[string]bool, len(args.fields))\n\tfor k, m := range args.fields {\n\t\tvar mm map[string]bool\n\t\tif m != nil {\n\t\t\tmm = make(map[string]bool, len(m))\n\t\t\tfor kk, v := range m {\n\t\t\t\tmm[kk] = v\n\t\t\t}\n\t\t}\n\t\tnewArgs.fields[k] = mm\n\t}\n\treturn newArgs\n}\n\nfunc deprecatedArgs(d map[string][]string) map[string]map[string]bool {\n\tm := map[string]map[string]bool{}\n\tfor k, v := range d {\n\t\tvalues := map[string]bool{}\n\t\tfor _, vv := range v {\n\t\t\tvalues[vv] = true\n\t\t}\n\t\tm[k] = values\n\t}\n\treturn m\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/image/delete_response.go",
    "content": "package image\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// DeleteResponse delete response\n// swagger:model DeleteResponse\ntype DeleteResponse struct {\n\n\t// The image ID of an image that was deleted\n\tDeleted string `json:\"Deleted,omitempty\"`\n\n\t// The image ID of an image that was untagged\n\tUntagged string `json:\"Untagged,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/image/disk_usage.go",
    "content": "package image\n\n// DiskUsage contains disk usage for images.\n//\n// Deprecated: this type is no longer used and will be removed in the next release.\ntype DiskUsage struct {\n\tTotalSize   int64\n\tReclaimable int64\n\tItems       []*Summary\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/image/image.go",
    "content": "package image\n\nimport (\n\t\"io\"\n\t\"time\"\n)\n\n// Metadata contains engine-local data about the image.\ntype Metadata struct {\n\t// LastTagTime is the date and time at which the image was last tagged.\n\tLastTagTime time.Time `json:\",omitempty\"`\n}\n\n// PruneReport contains the response for Engine API:\n// POST \"/images/prune\"\ntype PruneReport struct {\n\tImagesDeleted  []DeleteResponse\n\tSpaceReclaimed uint64\n}\n\n// LoadResponse returns information to the client about a load process.\n//\n// TODO(thaJeztah): remove this type, and just use an io.ReadCloser\n//\n// This type was added in https://github.com/moby/moby/pull/18878, related\n// to https://github.com/moby/moby/issues/19177;\n//\n// Make docker load to output json when the response content type is json\n// Swarm hijacks the response from docker load and returns JSON rather\n// than plain text like the Engine does. This makes the API library to return\n// information to figure that out.\n//\n// However the \"load\" endpoint unconditionally returns JSON;\n// https://github.com/moby/moby/blob/7b9d2ef6e5518a3d3f3cc418459f8df786cfbbd1/api/server/router/image/image_routes.go#L248-L255\n//\n// PR https://github.com/moby/moby/pull/21959 made the response-type depend\n// on whether \"quiet\" was set, but this logic got changed in a follow-up\n// https://github.com/moby/moby/pull/25557, which made the JSON response-type\n// unconditionally, but the output produced depend on whether\"quiet\" was set.\n//\n// We should deprecated the \"quiet\" option, as it's really a client\n// responsibility.\ntype LoadResponse struct {\n\t// Body must be closed to avoid a resource leak\n\tBody io.ReadCloser\n\tJSON bool\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/image/image_history.go",
    "content": "package image\n\n// ----------------------------------------------------------------------------\n// Code generated by `swagger generate operation`. DO NOT EDIT.\n//\n// See hack/generate-swagger-api.sh\n// ----------------------------------------------------------------------------\n\n// HistoryResponseItem individual image layer information in response to ImageHistory operation\n// swagger:model HistoryResponseItem\ntype HistoryResponseItem struct {\n\n\t// comment\n\t// Required: true\n\tComment string `json:\"Comment\"`\n\n\t// created\n\t// Required: true\n\tCreated int64 `json:\"Created\"`\n\n\t// created by\n\t// Required: true\n\tCreatedBy string `json:\"CreatedBy\"`\n\n\t// Id\n\t// Required: true\n\tID string `json:\"Id\"`\n\n\t// size\n\t// Required: true\n\tSize int64 `json:\"Size\"`\n\n\t// tags\n\t// Required: true\n\tTags []string `json:\"Tags\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/image/image_inspect.go",
    "content": "package image\n\nimport (\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/storage\"\n\tdockerspec \"github.com/moby/docker-image-spec/specs-go/v1\"\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\n// RootFS returns Image's RootFS description including the layer IDs.\ntype RootFS struct {\n\tType   string   `json:\",omitempty\"`\n\tLayers []string `json:\",omitempty\"`\n}\n\n// InspectResponse contains response of Engine API:\n// GET \"/images/{name:.*}/json\"\ntype InspectResponse struct {\n\t// ID is the content-addressable ID of an image.\n\t//\n\t// This identifier is a content-addressable digest calculated from the\n\t// image's configuration (which includes the digests of layers used by\n\t// the image).\n\t//\n\t// Note that this digest differs from the `RepoDigests` below, which\n\t// holds digests of image manifests that reference the image.\n\tID string `json:\"Id\"`\n\n\t// RepoTags is a list of image names/tags in the local image cache that\n\t// reference this image.\n\t//\n\t// Multiple image tags can refer to the same image, and this list may be\n\t// empty if no tags reference the image, in which case the image is\n\t// \"untagged\", in which case it can still be referenced by its ID.\n\tRepoTags []string\n\n\t// RepoDigests is a list of content-addressable digests of locally available\n\t// image manifests that the image is referenced from. Multiple manifests can\n\t// refer to the same image.\n\t//\n\t// These digests are usually only available if the image was either pulled\n\t// from a registry, or if the image was pushed to a registry, which is when\n\t// the manifest is generated and its digest calculated.\n\tRepoDigests []string\n\n\t// Parent is the ID of the parent image.\n\t//\n\t// Depending on how the image was created, this field may be empty and\n\t// is only set for images that were built/created locally. This field\n\t// is empty if the image was pulled from an image registry.\n\t//\n\t// Deprecated: this field is deprecated, and will be removed in the next release.\n\tParent string\n\n\t// Comment is an optional message that can be set when committing or\n\t// importing the image.\n\tComment string\n\n\t// Created is the date and time at which the image was created, formatted in\n\t// RFC 3339 nano-seconds (time.RFC3339Nano).\n\t//\n\t// This information is only available if present in the image,\n\t// and omitted otherwise.\n\tCreated string `json:\",omitempty\"`\n\n\t// Container is the ID of the container that was used to create the image.\n\t//\n\t// Depending on how the image was created, this field may be empty.\n\t//\n\t// Deprecated: this field is omitted in API v1.45, but kept for backward compatibility.\n\tContainer string `json:\",omitempty\"`\n\n\t// ContainerConfig is an optional field containing the configuration of the\n\t// container that was last committed when creating the image.\n\t//\n\t// Previous versions of Docker builder used this field to store build cache,\n\t// and it is not in active use anymore.\n\t//\n\t// Deprecated: this field is omitted in API v1.45, but kept for backward compatibility.\n\tContainerConfig *container.Config `json:\",omitempty\"`\n\n\t// DockerVersion is the version of Docker that was used to build the image.\n\t//\n\t// Depending on how the image was created, this field may be empty.\n\t//\n\t// Deprecated: this field is deprecated, and will be removed in the next release.\n\tDockerVersion string\n\n\t// Author is the name of the author that was specified when committing the\n\t// image, or as specified through MAINTAINER (deprecated) in the Dockerfile.\n\tAuthor string\n\tConfig *dockerspec.DockerOCIImageConfig\n\n\t// Architecture is the hardware CPU architecture that the image runs on.\n\tArchitecture string\n\n\t// Variant is the CPU architecture variant (presently ARM-only).\n\tVariant string `json:\",omitempty\"`\n\n\t// OS is the Operating System the image is built to run on.\n\tOs string\n\n\t// OsVersion is the version of the Operating System the image is built to\n\t// run on (especially for Windows).\n\tOsVersion string `json:\",omitempty\"`\n\n\t// Size is the total size of the image including all layers it is composed of.\n\tSize int64\n\n\t// VirtualSize is the total size of the image including all layers it is\n\t// composed of.\n\t//\n\t// Deprecated: this field is omitted in API v1.44, but kept for backward compatibility. Use Size instead.\n\tVirtualSize int64 `json:\"VirtualSize,omitempty\"`\n\n\t// GraphDriver holds information about the storage driver used to store the\n\t// container's and image's filesystem.\n\tGraphDriver storage.DriverData\n\n\t// RootFS contains information about the image's RootFS, including the\n\t// layer IDs.\n\tRootFS RootFS\n\n\t// Metadata of the image in the local cache.\n\t//\n\t// This information is local to the daemon, and not part of the image itself.\n\tMetadata Metadata\n\n\t// Descriptor is the OCI descriptor of the image target.\n\t// It's only set if the daemon provides a multi-platform image store.\n\t//\n\t// WARNING: This is experimental and may change at any time without any backward\n\t// compatibility.\n\tDescriptor *ocispec.Descriptor `json:\"Descriptor,omitempty\"`\n\n\t// Manifests is a list of image manifests available in this image. It\n\t// provides a more detailed view of the platform-specific image manifests or\n\t// other image-attached data like build attestations.\n\t//\n\t// Only available if the daemon provides a multi-platform image store, the client\n\t// requests manifests AND does not request a specific platform.\n\t//\n\t// WARNING: This is experimental and may change at any time without any backward\n\t// compatibility.\n\tManifests []ManifestSummary `json:\"Manifests,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/image/manifest.go",
    "content": "package image\n\nimport (\n\t\"github.com/opencontainers/go-digest\"\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\ntype ManifestKind string\n\nconst (\n\tManifestKindImage       ManifestKind = \"image\"\n\tManifestKindAttestation ManifestKind = \"attestation\"\n\tManifestKindUnknown     ManifestKind = \"unknown\"\n)\n\ntype ManifestSummary struct {\n\t// ID is the content-addressable ID of an image and is the same as the\n\t// digest of the image manifest.\n\t//\n\t// Required: true\n\tID string `json:\"ID\"`\n\n\t// Descriptor is the OCI descriptor of the image.\n\t//\n\t// Required: true\n\tDescriptor ocispec.Descriptor `json:\"Descriptor\"`\n\n\t// Indicates whether all the child content (image config, layers) is\n\t// fully available locally\n\t//\n\t// Required: true\n\tAvailable bool `json:\"Available\"`\n\n\t// Size is the size information of the content related to this manifest.\n\t// Note: These sizes only take the locally available content into account.\n\t//\n\t// Required: true\n\tSize struct {\n\t\t// Content is the size (in bytes) of all the locally present\n\t\t// content in the content store (e.g. image config, layers)\n\t\t// referenced by this manifest and its children.\n\t\t// This only includes blobs in the content store.\n\t\tContent int64 `json:\"Content\"`\n\n\t\t// Total is the total size (in bytes) of all the locally present\n\t\t// data (both distributable and non-distributable) that's related to\n\t\t// this manifest and its children.\n\t\t// This equal to the sum of [Content] size AND all the sizes in the\n\t\t// [Size] struct present in the Kind-specific data struct.\n\t\t// For example, for an image kind (Kind == ManifestKindImage),\n\t\t// this would include the size of the image content and unpacked\n\t\t// image snapshots ([Size.Content] + [ImageData.Size.Unpacked]).\n\t\tTotal int64 `json:\"Total\"`\n\t} `json:\"Size\"`\n\n\t// Kind is the kind of the image manifest.\n\t//\n\t// Required: true\n\tKind ManifestKind `json:\"Kind\"`\n\n\t// Fields below are specific to the kind of the image manifest.\n\n\t// Present only if Kind == ManifestKindImage.\n\tImageData *ImageProperties `json:\"ImageData,omitempty\"`\n\n\t// Present only if Kind == ManifestKindAttestation.\n\tAttestationData *AttestationProperties `json:\"AttestationData,omitempty\"`\n}\n\ntype ImageProperties struct {\n\t// Platform is the OCI platform object describing the platform of the image.\n\t//\n\t// Required: true\n\tPlatform ocispec.Platform `json:\"Platform\"`\n\n\tSize struct {\n\t\t// Unpacked is the size (in bytes) of the locally unpacked\n\t\t// (uncompressed) image content that's directly usable by the containers\n\t\t// running this image.\n\t\t// It's independent of the distributable content - e.g.\n\t\t// the image might still have an unpacked data that's still used by\n\t\t// some container even when the distributable/compressed content is\n\t\t// already gone.\n\t\t//\n\t\t// Required: true\n\t\tUnpacked int64 `json:\"Unpacked\"`\n\t}\n\n\t// Containers is an array containing the IDs of the containers that are\n\t// using this image.\n\t//\n\t// Required: true\n\tContainers []string `json:\"Containers\"`\n}\n\ntype AttestationProperties struct {\n\t// For is the digest of the image manifest that this attestation is for.\n\tFor digest.Digest `json:\"For\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/image/opts.go",
    "content": "package image\n\nimport (\n\t\"context\"\n\t\"io\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\n// ImportSource holds source information for ImageImport\ntype ImportSource struct {\n\tSource     io.Reader // Source is the data to send to the server to create this image from. You must set SourceName to \"-\" to leverage this.\n\tSourceName string    // SourceName is the name of the image to pull. Set to \"-\" to leverage the Source attribute.\n}\n\n// ImportOptions holds information to import images from the client host.\ntype ImportOptions struct {\n\tTag      string   // Tag is the name to tag this image with. This attribute is deprecated.\n\tMessage  string   // Message is the message to tag the image with\n\tChanges  []string // Changes are the raw changes to apply to this image\n\tPlatform string   // Platform is the target platform of the image\n}\n\n// CreateOptions holds information to create images.\ntype CreateOptions struct {\n\tRegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry.\n\tPlatform     string // Platform is the target platform of the image if it needs to be pulled from the registry.\n}\n\n// PullOptions holds information to pull images.\ntype PullOptions struct {\n\tAll          bool\n\tRegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry\n\n\t// PrivilegeFunc is a function that clients can supply to retry operations\n\t// after getting an authorization error. This function returns the registry\n\t// authentication header value in base64 encoded format, or an error if the\n\t// privilege request fails.\n\t//\n\t// For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig].\n\tPrivilegeFunc func(context.Context) (string, error)\n\tPlatform      string\n}\n\n// PushOptions holds information to push images.\ntype PushOptions struct {\n\tAll          bool\n\tRegistryAuth string // RegistryAuth is the base64 encoded credentials for the registry\n\n\t// PrivilegeFunc is a function that clients can supply to retry operations\n\t// after getting an authorization error. This function returns the registry\n\t// authentication header value in base64 encoded format, or an error if the\n\t// privilege request fails.\n\t//\n\t// For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig].\n\tPrivilegeFunc func(context.Context) (string, error)\n\n\t// Platform is an optional field that selects a specific platform to push\n\t// when the image is a multi-platform image.\n\t// Using this will only push a single platform-specific manifest.\n\tPlatform *ocispec.Platform `json:\",omitempty\"`\n}\n\n// ListOptions holds parameters to list images with.\ntype ListOptions struct {\n\t// All controls whether all images in the graph are filtered, or just\n\t// the heads.\n\tAll bool\n\n\t// Filters is a JSON-encoded set of filter arguments.\n\tFilters filters.Args\n\n\t// SharedSize indicates whether the shared size of images should be computed.\n\tSharedSize bool\n\n\t// ContainerCount indicates whether container count should be computed.\n\t//\n\t// Deprecated: This field has been unused and is no longer required and will be removed in a future version.\n\tContainerCount bool\n\n\t// Manifests indicates whether the image manifests should be returned.\n\tManifests bool\n}\n\n// RemoveOptions holds parameters to remove images.\ntype RemoveOptions struct {\n\tPlatforms     []ocispec.Platform\n\tForce         bool\n\tPruneChildren bool\n}\n\n// HistoryOptions holds parameters to get image history.\ntype HistoryOptions struct {\n\t// Platform from the manifest list to use for history.\n\tPlatform *ocispec.Platform\n}\n\n// LoadOptions holds parameters to load images.\ntype LoadOptions struct {\n\t// Quiet suppresses progress output\n\tQuiet bool\n\n\t// Platforms selects the platforms to load if the image is a\n\t// multi-platform image and has multiple variants.\n\tPlatforms []ocispec.Platform\n}\n\ntype InspectOptions struct {\n\t// Manifests returns the image manifests.\n\tManifests bool\n\n\t// Platform selects the specific platform of a multi-platform image to inspect.\n\t//\n\t// This option is only available for API version 1.49 and up.\n\tPlatform *ocispec.Platform\n}\n\n// SaveOptions holds parameters to save images.\ntype SaveOptions struct {\n\t// Platforms selects the platforms to save if the image is a\n\t// multi-platform image and has multiple variants.\n\tPlatforms []ocispec.Platform\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/image/summary.go",
    "content": "package image\n\nimport ocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n\ntype Summary struct {\n\n\t// Number of containers using this image. Includes both stopped and running\n\t// containers.\n\t//\n\t// This size is not calculated by default, and depends on which API endpoint\n\t// is used. `-1` indicates that the value has not been set / calculated.\n\t//\n\t// Required: true\n\tContainers int64 `json:\"Containers\"`\n\n\t// Date and time at which the image was created as a Unix timestamp\n\t// (number of seconds since EPOCH).\n\t//\n\t// Required: true\n\tCreated int64 `json:\"Created\"`\n\n\t// ID is the content-addressable ID of an image.\n\t//\n\t// This identifier is a content-addressable digest calculated from the\n\t// image's configuration (which includes the digests of layers used by\n\t// the image).\n\t//\n\t// Note that this digest differs from the `RepoDigests` below, which\n\t// holds digests of image manifests that reference the image.\n\t//\n\t// Required: true\n\tID string `json:\"Id\"`\n\n\t// User-defined key/value metadata.\n\t// Required: true\n\tLabels map[string]string `json:\"Labels\"`\n\n\t// ID of the parent image.\n\t//\n\t// Depending on how the image was created, this field may be empty and\n\t// is only set for images that were built/created locally. This field\n\t// is empty if the image was pulled from an image registry.\n\t//\n\t// Required: true\n\tParentID string `json:\"ParentId\"`\n\n\t// Descriptor is the OCI descriptor of the image target.\n\t// It's only set if the daemon provides a multi-platform image store.\n\t//\n\t// WARNING: This is experimental and may change at any time without any backward\n\t// compatibility.\n\tDescriptor *ocispec.Descriptor `json:\"Descriptor,omitempty\"`\n\n\t// Manifests is a list of image manifests available in this image.  It\n\t// provides a more detailed view of the platform-specific image manifests or\n\t// other image-attached data like build attestations.\n\t//\n\t// WARNING: This is experimental and may change at any time without any backward\n\t// compatibility.\n\tManifests []ManifestSummary `json:\"Manifests,omitempty\"`\n\n\t// List of content-addressable digests of locally available image manifests\n\t// that the image is referenced from. Multiple manifests can refer to the\n\t// same image.\n\t//\n\t// These digests are usually only available if the image was either pulled\n\t// from a registry, or if the image was pushed to a registry, which is when\n\t// the manifest is generated and its digest calculated.\n\t//\n\t// Required: true\n\tRepoDigests []string `json:\"RepoDigests\"`\n\n\t// List of image names/tags in the local image cache that reference this\n\t// image.\n\t//\n\t// Multiple image tags can refer to the same image, and this list may be\n\t// empty if no tags reference the image, in which case the image is\n\t// \"untagged\", in which case it can still be referenced by its ID.\n\t//\n\t// Required: true\n\tRepoTags []string `json:\"RepoTags\"`\n\n\t// Total size of image layers that are shared between this image and other\n\t// images.\n\t//\n\t// This size is not calculated by default. `-1` indicates that the value\n\t// has not been set / calculated.\n\t//\n\t// Required: true\n\tSharedSize int64 `json:\"SharedSize\"`\n\n\t// Total size of the image including all layers it is composed of.\n\t//\n\t// Required: true\n\tSize int64 `json:\"Size\"`\n\n\t// Total size of the image including all layers it is composed of.\n\t//\n\t// Deprecated: this field is omitted in API v1.44, but kept for backward compatibility. Use Size instead.\n\tVirtualSize int64 `json:\"VirtualSize,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/mount/mount.go",
    "content": "package mount\n\nimport (\n\t\"os\"\n)\n\n// Type represents the type of a mount.\ntype Type string\n\n// Type constants\nconst (\n\t// TypeBind is the type for mounting host dir\n\tTypeBind Type = \"bind\"\n\t// TypeVolume is the type for remote storage volumes\n\tTypeVolume Type = \"volume\"\n\t// TypeTmpfs is the type for mounting tmpfs\n\tTypeTmpfs Type = \"tmpfs\"\n\t// TypeNamedPipe is the type for mounting Windows named pipes\n\tTypeNamedPipe Type = \"npipe\"\n\t// TypeCluster is the type for Swarm Cluster Volumes.\n\tTypeCluster Type = \"cluster\"\n\t// TypeImage is the type for mounting another image's filesystem\n\tTypeImage Type = \"image\"\n)\n\n// Mount represents a mount (volume).\ntype Mount struct {\n\tType Type `json:\",omitempty\"`\n\t// Source specifies the name of the mount. Depending on mount type, this\n\t// may be a volume name or a host path, or even ignored.\n\t// Source is not supported for tmpfs (must be an empty value)\n\tSource      string      `json:\",omitempty\"`\n\tTarget      string      `json:\",omitempty\"`\n\tReadOnly    bool        `json:\",omitempty\"` // attempts recursive read-only if possible\n\tConsistency Consistency `json:\",omitempty\"`\n\n\tBindOptions    *BindOptions    `json:\",omitempty\"`\n\tVolumeOptions  *VolumeOptions  `json:\",omitempty\"`\n\tImageOptions   *ImageOptions   `json:\",omitempty\"`\n\tTmpfsOptions   *TmpfsOptions   `json:\",omitempty\"`\n\tClusterOptions *ClusterOptions `json:\",omitempty\"`\n}\n\n// Propagation represents the propagation of a mount.\ntype Propagation string\n\nconst (\n\t// PropagationRPrivate RPRIVATE\n\tPropagationRPrivate Propagation = \"rprivate\"\n\t// PropagationPrivate PRIVATE\n\tPropagationPrivate Propagation = \"private\"\n\t// PropagationRShared RSHARED\n\tPropagationRShared Propagation = \"rshared\"\n\t// PropagationShared SHARED\n\tPropagationShared Propagation = \"shared\"\n\t// PropagationRSlave RSLAVE\n\tPropagationRSlave Propagation = \"rslave\"\n\t// PropagationSlave SLAVE\n\tPropagationSlave Propagation = \"slave\"\n)\n\n// Propagations is the list of all valid mount propagations\nvar Propagations = []Propagation{\n\tPropagationRPrivate,\n\tPropagationPrivate,\n\tPropagationRShared,\n\tPropagationShared,\n\tPropagationRSlave,\n\tPropagationSlave,\n}\n\n// Consistency represents the consistency requirements of a mount.\ntype Consistency string\n\nconst (\n\t// ConsistencyFull guarantees bind mount-like consistency\n\tConsistencyFull Consistency = \"consistent\"\n\t// ConsistencyCached mounts can cache read data and FS structure\n\tConsistencyCached Consistency = \"cached\"\n\t// ConsistencyDelegated mounts can cache read and written data and structure\n\tConsistencyDelegated Consistency = \"delegated\"\n\t// ConsistencyDefault provides \"consistent\" behavior unless overridden\n\tConsistencyDefault Consistency = \"default\"\n)\n\n// BindOptions defines options specific to mounts of type \"bind\".\ntype BindOptions struct {\n\tPropagation      Propagation `json:\",omitempty\"`\n\tNonRecursive     bool        `json:\",omitempty\"`\n\tCreateMountpoint bool        `json:\",omitempty\"`\n\t// ReadOnlyNonRecursive makes the mount non-recursively read-only, but still leaves the mount recursive\n\t// (unless NonRecursive is set to true in conjunction).\n\tReadOnlyNonRecursive bool `json:\",omitempty\"`\n\t// ReadOnlyForceRecursive raises an error if the mount cannot be made recursively read-only.\n\tReadOnlyForceRecursive bool `json:\",omitempty\"`\n}\n\n// VolumeOptions represents the options for a mount of type volume.\ntype VolumeOptions struct {\n\tNoCopy       bool              `json:\",omitempty\"`\n\tLabels       map[string]string `json:\",omitempty\"`\n\tSubpath      string            `json:\",omitempty\"`\n\tDriverConfig *Driver           `json:\",omitempty\"`\n}\n\ntype ImageOptions struct {\n\tSubpath string `json:\",omitempty\"`\n}\n\n// Driver represents a volume driver.\ntype Driver struct {\n\tName    string            `json:\",omitempty\"`\n\tOptions map[string]string `json:\",omitempty\"`\n}\n\n// TmpfsOptions defines options specific to mounts of type \"tmpfs\".\ntype TmpfsOptions struct {\n\t// Size sets the size of the tmpfs, in bytes.\n\t//\n\t// This will be converted to an operating system specific value\n\t// depending on the host. For example, on linux, it will be converted to\n\t// use a 'k', 'm' or 'g' syntax. BSD, though not widely supported with\n\t// docker, uses a straight byte value.\n\t//\n\t// Percentages are not supported.\n\tSizeBytes int64 `json:\",omitempty\"`\n\t// Mode of the tmpfs upon creation\n\tMode os.FileMode `json:\",omitempty\"`\n\t// Options to be passed to the tmpfs mount. An array of arrays. Flag\n\t// options should be provided as 1-length arrays. Other types should be\n\t// provided as 2-length arrays, where the first item is the key and the\n\t// second the value.\n\tOptions [][]string `json:\",omitempty\"`\n\t// TODO(stevvooe): There are several more tmpfs flags, specified in the\n\t// daemon, that are accepted. Only the most basic are added for now.\n\t//\n\t// From https://github.com/moby/sys/blob/mount/v0.1.1/mount/flags.go#L47-L56\n\t//\n\t// var validFlags = map[string]bool{\n\t// \t\"\":          true,\n\t// \t\"size\":      true, X\n\t// \t\"mode\":      true, X\n\t// \t\"uid\":       true,\n\t// \t\"gid\":       true,\n\t// \t\"nr_inodes\": true,\n\t// \t\"nr_blocks\": true,\n\t// \t\"mpol\":      true,\n\t// }\n\t//\n\t// Some of these may be straightforward to add, but others, such as\n\t// uid/gid have implications in a clustered system.\n}\n\n// ClusterOptions specifies options for a Cluster volume.\ntype ClusterOptions struct {\n\t// intentionally empty\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/network/create_response.go",
    "content": "package network\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// CreateResponse NetworkCreateResponse\n//\n// OK response to NetworkCreate operation\n// swagger:model CreateResponse\ntype CreateResponse struct {\n\n\t// The ID of the created network.\n\t// Required: true\n\tID string `json:\"Id\"`\n\n\t// Warnings encountered when creating the container\n\t// Required: true\n\tWarning string `json:\"Warning\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/network/endpoint.go",
    "content": "package network\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n)\n\n// EndpointSettings stores the network endpoint details\ntype EndpointSettings struct {\n\t// Configurations\n\tIPAMConfig *EndpointIPAMConfig\n\tLinks      []string\n\tAliases    []string // Aliases holds the list of extra, user-specified DNS names for this endpoint.\n\t// MacAddress may be used to specify a MAC address when the container is created.\n\t// Once the container is running, it becomes operational data (it may contain a\n\t// generated address).\n\tMacAddress string\n\tDriverOpts map[string]string\n\n\t// GwPriority determines which endpoint will provide the default gateway\n\t// for the container. The endpoint with the highest priority will be used.\n\t// If multiple endpoints have the same priority, they are lexicographically\n\t// sorted based on their network name, and the one that sorts first is picked.\n\tGwPriority int\n\t// Operational data\n\tNetworkID           string\n\tEndpointID          string\n\tGateway             string\n\tIPAddress           string\n\tIPPrefixLen         int\n\tIPv6Gateway         string\n\tGlobalIPv6Address   string\n\tGlobalIPv6PrefixLen int\n\t// DNSNames holds all the (non fully qualified) DNS names associated to this endpoint. First entry is used to\n\t// generate PTR records.\n\tDNSNames []string\n}\n\n// Copy makes a deep copy of `EndpointSettings`\nfunc (es *EndpointSettings) Copy() *EndpointSettings {\n\tepCopy := *es\n\tif es.IPAMConfig != nil {\n\t\tepCopy.IPAMConfig = es.IPAMConfig.Copy()\n\t}\n\n\tif es.Links != nil {\n\t\tlinks := make([]string, 0, len(es.Links))\n\t\tepCopy.Links = append(links, es.Links...)\n\t}\n\n\tif es.Aliases != nil {\n\t\taliases := make([]string, 0, len(es.Aliases))\n\t\tepCopy.Aliases = append(aliases, es.Aliases...)\n\t}\n\n\tif len(es.DNSNames) > 0 {\n\t\tepCopy.DNSNames = make([]string, len(es.DNSNames))\n\t\tcopy(epCopy.DNSNames, es.DNSNames)\n\t}\n\n\treturn &epCopy\n}\n\n// EndpointIPAMConfig represents IPAM configurations for the endpoint\ntype EndpointIPAMConfig struct {\n\tIPv4Address  string   `json:\",omitempty\"`\n\tIPv6Address  string   `json:\",omitempty\"`\n\tLinkLocalIPs []string `json:\",omitempty\"`\n}\n\n// Copy makes a copy of the endpoint ipam config\nfunc (cfg *EndpointIPAMConfig) Copy() *EndpointIPAMConfig {\n\tcfgCopy := *cfg\n\tcfgCopy.LinkLocalIPs = make([]string, 0, len(cfg.LinkLocalIPs))\n\tcfgCopy.LinkLocalIPs = append(cfgCopy.LinkLocalIPs, cfg.LinkLocalIPs...)\n\treturn &cfgCopy\n}\n\n// NetworkSubnet describes a user-defined subnet for a specific network. It's only used to validate if an\n// EndpointIPAMConfig is valid for a specific network.\ntype NetworkSubnet interface {\n\t// Contains checks whether the NetworkSubnet contains [addr].\n\tContains(addr net.IP) bool\n\t// IsStatic checks whether the subnet was statically allocated (ie. user-defined).\n\tIsStatic() bool\n}\n\n// IsInRange checks whether static IP addresses are valid in a specific network.\nfunc (cfg *EndpointIPAMConfig) IsInRange(v4Subnets []NetworkSubnet, v6Subnets []NetworkSubnet) error {\n\tvar errs []error\n\n\tif err := validateEndpointIPAddress(cfg.IPv4Address, v4Subnets); err != nil {\n\t\terrs = append(errs, err)\n\t}\n\tif err := validateEndpointIPAddress(cfg.IPv6Address, v6Subnets); err != nil {\n\t\terrs = append(errs, err)\n\t}\n\n\treturn errJoin(errs...)\n}\n\nfunc validateEndpointIPAddress(epAddr string, ipamSubnets []NetworkSubnet) error {\n\tif epAddr == \"\" {\n\t\treturn nil\n\t}\n\n\tvar staticSubnet bool\n\tparsedAddr := net.ParseIP(epAddr)\n\tfor _, subnet := range ipamSubnets {\n\t\tif subnet.IsStatic() {\n\t\t\tstaticSubnet = true\n\t\t\tif subnet.Contains(parsedAddr) {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\n\tif staticSubnet {\n\t\treturn fmt.Errorf(\"no configured subnet or ip-range contain the IP address %s\", epAddr)\n\t}\n\n\treturn errors.New(\"user specified IP address is supported only when connecting to networks with user configured subnets\")\n}\n\n// Validate checks whether cfg is valid.\nfunc (cfg *EndpointIPAMConfig) Validate() error {\n\tif cfg == nil {\n\t\treturn nil\n\t}\n\n\tvar errs []error\n\n\tif cfg.IPv4Address != \"\" {\n\t\tif addr := net.ParseIP(cfg.IPv4Address); addr == nil || addr.To4() == nil || addr.IsUnspecified() {\n\t\t\terrs = append(errs, fmt.Errorf(\"invalid IPv4 address: %s\", cfg.IPv4Address))\n\t\t}\n\t}\n\tif cfg.IPv6Address != \"\" {\n\t\tif addr := net.ParseIP(cfg.IPv6Address); addr == nil || addr.To4() != nil || addr.IsUnspecified() {\n\t\t\terrs = append(errs, fmt.Errorf(\"invalid IPv6 address: %s\", cfg.IPv6Address))\n\t\t}\n\t}\n\tfor _, addr := range cfg.LinkLocalIPs {\n\t\tif parsed := net.ParseIP(addr); parsed == nil || parsed.IsUnspecified() {\n\t\t\terrs = append(errs, fmt.Errorf(\"invalid link-local IP address: %s\", addr))\n\t\t}\n\t}\n\n\treturn errJoin(errs...)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/network/ipam.go",
    "content": "package network\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"net/netip\"\n\t\"strings\"\n)\n\n// IPAM represents IP Address Management\ntype IPAM struct {\n\tDriver  string\n\tOptions map[string]string // Per network IPAM driver options\n\tConfig  []IPAMConfig\n}\n\n// IPAMConfig represents IPAM configurations\ntype IPAMConfig struct {\n\tSubnet     string            `json:\",omitempty\"`\n\tIPRange    string            `json:\",omitempty\"`\n\tGateway    string            `json:\",omitempty\"`\n\tAuxAddress map[string]string `json:\"AuxiliaryAddresses,omitempty\"`\n}\n\ntype ipFamily string\n\nconst (\n\tip4 ipFamily = \"IPv4\"\n\tip6 ipFamily = \"IPv6\"\n)\n\n// ValidateIPAM checks whether the network's IPAM passed as argument is valid. It returns a joinError of the list of\n// errors found.\nfunc ValidateIPAM(ipam *IPAM, enableIPv6 bool) error {\n\tif ipam == nil {\n\t\treturn nil\n\t}\n\n\tvar errs []error\n\tfor _, cfg := range ipam.Config {\n\t\tsubnet, err := netip.ParsePrefix(cfg.Subnet)\n\t\tif err != nil {\n\t\t\terrs = append(errs, fmt.Errorf(\"invalid subnet %s: invalid CIDR block notation\", cfg.Subnet))\n\t\t\tcontinue\n\t\t}\n\t\tsubnetFamily := ip4\n\t\tif subnet.Addr().Is6() {\n\t\t\tsubnetFamily = ip6\n\t\t}\n\n\t\tif !enableIPv6 && subnetFamily == ip6 {\n\t\t\tcontinue\n\t\t}\n\n\t\tif subnet != subnet.Masked() {\n\t\t\terrs = append(errs, fmt.Errorf(\"invalid subnet %s: it should be %s\", subnet, subnet.Masked()))\n\t\t}\n\n\t\tif ipRangeErrs := validateIPRange(cfg.IPRange, subnet, subnetFamily); len(ipRangeErrs) > 0 {\n\t\t\terrs = append(errs, ipRangeErrs...)\n\t\t}\n\n\t\tif err := validateAddress(cfg.Gateway, subnet, subnetFamily); err != nil {\n\t\t\terrs = append(errs, fmt.Errorf(\"invalid gateway %s: %w\", cfg.Gateway, err))\n\t\t}\n\n\t\tfor auxName, aux := range cfg.AuxAddress {\n\t\t\tif err := validateAddress(aux, subnet, subnetFamily); err != nil {\n\t\t\t\terrs = append(errs, fmt.Errorf(\"invalid auxiliary address %s: %w\", auxName, err))\n\t\t\t}\n\t\t}\n\t}\n\n\tif err := errJoin(errs...); err != nil {\n\t\treturn fmt.Errorf(\"invalid network config:\\n%w\", err)\n\t}\n\n\treturn nil\n}\n\nfunc validateIPRange(ipRange string, subnet netip.Prefix, subnetFamily ipFamily) []error {\n\tif ipRange == \"\" {\n\t\treturn nil\n\t}\n\tprefix, err := netip.ParsePrefix(ipRange)\n\tif err != nil {\n\t\treturn []error{fmt.Errorf(\"invalid ip-range %s: invalid CIDR block notation\", ipRange)}\n\t}\n\tfamily := ip4\n\tif prefix.Addr().Is6() {\n\t\tfamily = ip6\n\t}\n\n\tif family != subnetFamily {\n\t\treturn []error{fmt.Errorf(\"invalid ip-range %s: parent subnet is an %s block\", ipRange, subnetFamily)}\n\t}\n\n\tvar errs []error\n\tif prefix.Bits() < subnet.Bits() {\n\t\terrs = append(errs, fmt.Errorf(\"invalid ip-range %s: CIDR block is bigger than its parent subnet %s\", ipRange, subnet))\n\t}\n\tif prefix != prefix.Masked() {\n\t\terrs = append(errs, fmt.Errorf(\"invalid ip-range %s: it should be %s\", prefix, prefix.Masked()))\n\t}\n\tif !subnet.Overlaps(prefix) {\n\t\terrs = append(errs, fmt.Errorf(\"invalid ip-range %s: parent subnet %s doesn't contain ip-range\", ipRange, subnet))\n\t}\n\n\treturn errs\n}\n\nfunc validateAddress(address string, subnet netip.Prefix, subnetFamily ipFamily) error {\n\tif address == \"\" {\n\t\treturn nil\n\t}\n\taddr, err := netip.ParseAddr(address)\n\tif err != nil {\n\t\treturn errors.New(\"invalid address\")\n\t}\n\tfamily := ip4\n\tif addr.Is6() {\n\t\tfamily = ip6\n\t}\n\n\tif family != subnetFamily {\n\t\treturn fmt.Errorf(\"parent subnet is an %s block\", subnetFamily)\n\t}\n\tif !subnet.Contains(addr) {\n\t\treturn fmt.Errorf(\"parent subnet %s doesn't contain this address\", subnet)\n\t}\n\n\treturn nil\n}\n\nfunc errJoin(errs ...error) error {\n\tn := 0\n\tfor _, err := range errs {\n\t\tif err != nil {\n\t\t\tn++\n\t\t}\n\t}\n\tif n == 0 {\n\t\treturn nil\n\t}\n\te := &joinError{\n\t\terrs: make([]error, 0, n),\n\t}\n\tfor _, err := range errs {\n\t\tif err != nil {\n\t\t\te.errs = append(e.errs, err)\n\t\t}\n\t}\n\treturn e\n}\n\ntype joinError struct {\n\terrs []error\n}\n\nfunc (e *joinError) Error() string {\n\tif len(e.errs) == 1 {\n\t\treturn strings.TrimSpace(e.errs[0].Error())\n\t}\n\tstringErrs := make([]string, 0, len(e.errs))\n\tfor _, subErr := range e.errs {\n\t\tstringErrs = append(stringErrs, strings.ReplaceAll(subErr.Error(), \"\\n\", \"\\n\\t\"))\n\t}\n\treturn \"* \" + strings.Join(stringErrs, \"\\n* \")\n}\n\nfunc (e *joinError) Unwrap() []error {\n\treturn e.errs\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/network/network.go",
    "content": "package network\n\nimport (\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n)\n\nconst (\n\t// NetworkDefault is a platform-independent alias to choose the platform-specific default network stack.\n\tNetworkDefault = \"default\"\n\t// NetworkHost is the name of the predefined network used when the NetworkMode host is selected (only available on Linux)\n\tNetworkHost = \"host\"\n\t// NetworkNone is the name of the predefined network used when the NetworkMode none is selected (available on both Linux and Windows)\n\tNetworkNone = \"none\"\n\t// NetworkBridge is the name of the default network on Linux\n\tNetworkBridge = \"bridge\"\n\t// NetworkNat is the name of the default network on Windows\n\tNetworkNat = \"nat\"\n)\n\n// CreateRequest is the request message sent to the server for network create call.\ntype CreateRequest struct {\n\tCreateOptions\n\tName string // Name is the requested name of the network.\n\n\t// Deprecated: CheckDuplicate is deprecated since API v1.44, but it defaults to true when sent by the client\n\t// package to older daemons.\n\tCheckDuplicate *bool `json:\",omitempty\"`\n}\n\n// CreateOptions holds options to create a network.\ntype CreateOptions struct {\n\tDriver     string            // Driver is the driver-name used to create the network (e.g. `bridge`, `overlay`)\n\tScope      string            // Scope describes the level at which the network exists (e.g. `swarm` for cluster-wide or `local` for machine level).\n\tEnableIPv4 *bool             `json:\",omitempty\"` // EnableIPv4 represents whether to enable IPv4.\n\tEnableIPv6 *bool             `json:\",omitempty\"` // EnableIPv6 represents whether to enable IPv6.\n\tIPAM       *IPAM             // IPAM is the network's IP Address Management.\n\tInternal   bool              // Internal represents if the network is used internal only.\n\tAttachable bool              // Attachable represents if the global scope is manually attachable by regular containers from workers in swarm mode.\n\tIngress    bool              // Ingress indicates the network is providing the routing-mesh for the swarm cluster.\n\tConfigOnly bool              // ConfigOnly creates a config-only network. Config-only networks are place-holder networks for network configurations to be used by other networks. ConfigOnly networks cannot be used directly to run containers or services.\n\tConfigFrom *ConfigReference  // ConfigFrom specifies the source which will provide the configuration for this network. The specified network must be a config-only network; see [CreateOptions.ConfigOnly].\n\tOptions    map[string]string // Options specifies the network-specific options to use for when creating the network.\n\tLabels     map[string]string // Labels holds metadata specific to the network being created.\n}\n\n// ListOptions holds parameters to filter the list of networks with.\ntype ListOptions struct {\n\tFilters filters.Args\n}\n\n// InspectOptions holds parameters to inspect network.\ntype InspectOptions struct {\n\tScope   string\n\tVerbose bool\n}\n\n// ConnectOptions represents the data to be used to connect a container to the\n// network.\ntype ConnectOptions struct {\n\tContainer      string\n\tEndpointConfig *EndpointSettings `json:\",omitempty\"`\n}\n\n// DisconnectOptions represents the data to be used to disconnect a container\n// from the network.\ntype DisconnectOptions struct {\n\tContainer string\n\tForce     bool\n}\n\n// Inspect is the body of the \"get network\" http response message.\ntype Inspect struct {\n\tName       string                      // Name is the name of the network\n\tID         string                      `json:\"Id\"` // ID uniquely identifies a network on a single machine\n\tCreated    time.Time                   // Created is the time the network created\n\tScope      string                      // Scope describes the level at which the network exists (e.g. `swarm` for cluster-wide or `local` for machine level)\n\tDriver     string                      // Driver is the Driver name used to create the network (e.g. `bridge`, `overlay`)\n\tEnableIPv4 bool                        // EnableIPv4 represents whether IPv4 is enabled\n\tEnableIPv6 bool                        // EnableIPv6 represents whether IPv6 is enabled\n\tIPAM       IPAM                        // IPAM is the network's IP Address Management\n\tInternal   bool                        // Internal represents if the network is used internal only\n\tAttachable bool                        // Attachable represents if the global scope is manually attachable by regular containers from workers in swarm mode.\n\tIngress    bool                        // Ingress indicates the network is providing the routing-mesh for the swarm cluster.\n\tConfigFrom ConfigReference             // ConfigFrom specifies the source which will provide the configuration for this network.\n\tConfigOnly bool                        // ConfigOnly networks are place-holder networks for network configurations to be used by other networks. ConfigOnly networks cannot be used directly to run containers or services.\n\tContainers map[string]EndpointResource // Containers contains endpoints belonging to the network\n\tOptions    map[string]string           // Options holds the network specific options to use for when creating the network\n\tLabels     map[string]string           // Labels holds metadata specific to the network being created\n\tPeers      []PeerInfo                  `json:\",omitempty\"` // List of peer nodes for an overlay network\n\tServices   map[string]ServiceInfo      `json:\",omitempty\"`\n}\n\n// Summary is used as response when listing networks. It currently is an alias\n// for [Inspect], but may diverge in the future, as not all information may\n// be included when listing networks.\ntype Summary = Inspect\n\n// Address represents an IP address\ntype Address struct {\n\tAddr      string\n\tPrefixLen int\n}\n\n// PeerInfo represents one peer of an overlay network\ntype PeerInfo struct {\n\tName string\n\tIP   string\n}\n\n// Task carries the information about one backend task\ntype Task struct {\n\tName       string\n\tEndpointID string\n\tEndpointIP string\n\tInfo       map[string]string\n}\n\n// ServiceInfo represents service parameters with the list of service's tasks\ntype ServiceInfo struct {\n\tVIP          string\n\tPorts        []string\n\tLocalLBIndex int\n\tTasks        []Task\n}\n\n// EndpointResource contains network resources allocated and used for a\n// container in a network.\ntype EndpointResource struct {\n\tName        string\n\tEndpointID  string\n\tMacAddress  string\n\tIPv4Address string\n\tIPv6Address string\n}\n\n// NetworkingConfig represents the container's networking configuration for each of its interfaces\n// Carries the networking configs specified in the `docker run` and `docker network connect` commands\ntype NetworkingConfig struct {\n\tEndpointsConfig map[string]*EndpointSettings // Endpoint configs for each connecting network\n}\n\n// ConfigReference specifies the source which provides a network's configuration\ntype ConfigReference struct {\n\tNetwork string\n}\n\nvar acceptedFilters = map[string]bool{\n\t\"dangling\": true,\n\t\"driver\":   true,\n\t\"id\":       true,\n\t\"label\":    true,\n\t\"name\":     true,\n\t\"scope\":    true,\n\t\"type\":     true,\n}\n\n// ValidateFilters validates the list of filter args with the available filters.\nfunc ValidateFilters(filter filters.Args) error {\n\treturn filter.Validate(acceptedFilters)\n}\n\n// PruneReport contains the response for Engine API:\n// POST \"/networks/prune\"\ntype PruneReport struct {\n\tNetworksDeleted []string\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/plugin.go",
    "content": "package types\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// Plugin A plugin for the Engine API\n// swagger:model Plugin\ntype Plugin struct {\n\n\t// config\n\t// Required: true\n\tConfig PluginConfig `json:\"Config\"`\n\n\t// True if the plugin is running. False if the plugin is not running, only installed.\n\t// Required: true\n\tEnabled bool `json:\"Enabled\"`\n\n\t// Id\n\tID string `json:\"Id,omitempty\"`\n\n\t// name\n\t// Required: true\n\tName string `json:\"Name\"`\n\n\t// plugin remote reference used to push/pull the plugin\n\tPluginReference string `json:\"PluginReference,omitempty\"`\n\n\t// settings\n\t// Required: true\n\tSettings PluginSettings `json:\"Settings\"`\n}\n\n// PluginConfig The config of a plugin.\n// swagger:model PluginConfig\ntype PluginConfig struct {\n\n\t// args\n\t// Required: true\n\tArgs PluginConfigArgs `json:\"Args\"`\n\n\t// description\n\t// Required: true\n\tDescription string `json:\"Description\"`\n\n\t// Docker Version used to create the plugin.\n\t//\n\t// Depending on how the plugin was created, this field may be empty or omitted.\n\t//\n\t// Deprecated: this field is no longer set, and will be removed in the next API version.\n\tDockerVersion string `json:\"DockerVersion,omitempty\"`\n\n\t// documentation\n\t// Required: true\n\tDocumentation string `json:\"Documentation\"`\n\n\t// entrypoint\n\t// Required: true\n\tEntrypoint []string `json:\"Entrypoint\"`\n\n\t// env\n\t// Required: true\n\tEnv []PluginEnv `json:\"Env\"`\n\n\t// interface\n\t// Required: true\n\tInterface PluginConfigInterface `json:\"Interface\"`\n\n\t// ipc host\n\t// Required: true\n\tIpcHost bool `json:\"IpcHost\"`\n\n\t// linux\n\t// Required: true\n\tLinux PluginConfigLinux `json:\"Linux\"`\n\n\t// mounts\n\t// Required: true\n\tMounts []PluginMount `json:\"Mounts\"`\n\n\t// network\n\t// Required: true\n\tNetwork PluginConfigNetwork `json:\"Network\"`\n\n\t// pid host\n\t// Required: true\n\tPidHost bool `json:\"PidHost\"`\n\n\t// propagated mount\n\t// Required: true\n\tPropagatedMount string `json:\"PropagatedMount\"`\n\n\t// user\n\tUser PluginConfigUser `json:\"User,omitempty\"`\n\n\t// work dir\n\t// Required: true\n\tWorkDir string `json:\"WorkDir\"`\n\n\t// rootfs\n\tRootfs *PluginConfigRootfs `json:\"rootfs,omitempty\"`\n}\n\n// PluginConfigArgs plugin config args\n// swagger:model PluginConfigArgs\ntype PluginConfigArgs struct {\n\n\t// description\n\t// Required: true\n\tDescription string `json:\"Description\"`\n\n\t// name\n\t// Required: true\n\tName string `json:\"Name\"`\n\n\t// settable\n\t// Required: true\n\tSettable []string `json:\"Settable\"`\n\n\t// value\n\t// Required: true\n\tValue []string `json:\"Value\"`\n}\n\n// PluginConfigInterface The interface between Docker and the plugin\n// swagger:model PluginConfigInterface\ntype PluginConfigInterface struct {\n\n\t// Protocol to use for clients connecting to the plugin.\n\tProtocolScheme string `json:\"ProtocolScheme,omitempty\"`\n\n\t// socket\n\t// Required: true\n\tSocket string `json:\"Socket\"`\n\n\t// types\n\t// Required: true\n\tTypes []PluginInterfaceType `json:\"Types\"`\n}\n\n// PluginConfigLinux plugin config linux\n// swagger:model PluginConfigLinux\ntype PluginConfigLinux struct {\n\n\t// allow all devices\n\t// Required: true\n\tAllowAllDevices bool `json:\"AllowAllDevices\"`\n\n\t// capabilities\n\t// Required: true\n\tCapabilities []string `json:\"Capabilities\"`\n\n\t// devices\n\t// Required: true\n\tDevices []PluginDevice `json:\"Devices\"`\n}\n\n// PluginConfigNetwork plugin config network\n// swagger:model PluginConfigNetwork\ntype PluginConfigNetwork struct {\n\n\t// type\n\t// Required: true\n\tType string `json:\"Type\"`\n}\n\n// PluginConfigRootfs plugin config rootfs\n// swagger:model PluginConfigRootfs\ntype PluginConfigRootfs struct {\n\n\t// diff ids\n\tDiffIds []string `json:\"diff_ids\"`\n\n\t// type\n\tType string `json:\"type,omitempty\"`\n}\n\n// PluginConfigUser plugin config user\n// swagger:model PluginConfigUser\ntype PluginConfigUser struct {\n\n\t// g ID\n\tGID uint32 `json:\"GID,omitempty\"`\n\n\t// UID\n\tUID uint32 `json:\"UID,omitempty\"`\n}\n\n// PluginSettings Settings that can be modified by users.\n// swagger:model PluginSettings\ntype PluginSettings struct {\n\n\t// args\n\t// Required: true\n\tArgs []string `json:\"Args\"`\n\n\t// devices\n\t// Required: true\n\tDevices []PluginDevice `json:\"Devices\"`\n\n\t// env\n\t// Required: true\n\tEnv []string `json:\"Env\"`\n\n\t// mounts\n\t// Required: true\n\tMounts []PluginMount `json:\"Mounts\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/plugin_device.go",
    "content": "package types\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// PluginDevice plugin device\n// swagger:model PluginDevice\ntype PluginDevice struct {\n\n\t// description\n\t// Required: true\n\tDescription string `json:\"Description\"`\n\n\t// name\n\t// Required: true\n\tName string `json:\"Name\"`\n\n\t// path\n\t// Required: true\n\tPath *string `json:\"Path\"`\n\n\t// settable\n\t// Required: true\n\tSettable []string `json:\"Settable\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/plugin_env.go",
    "content": "package types\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// PluginEnv plugin env\n// swagger:model PluginEnv\ntype PluginEnv struct {\n\n\t// description\n\t// Required: true\n\tDescription string `json:\"Description\"`\n\n\t// name\n\t// Required: true\n\tName string `json:\"Name\"`\n\n\t// settable\n\t// Required: true\n\tSettable []string `json:\"Settable\"`\n\n\t// value\n\t// Required: true\n\tValue *string `json:\"Value\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/plugin_interface_type.go",
    "content": "package types\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// PluginInterfaceType plugin interface type\n// swagger:model PluginInterfaceType\ntype PluginInterfaceType struct {\n\n\t// capability\n\t// Required: true\n\tCapability string `json:\"Capability\"`\n\n\t// prefix\n\t// Required: true\n\tPrefix string `json:\"Prefix\"`\n\n\t// version\n\t// Required: true\n\tVersion string `json:\"Version\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/plugin_mount.go",
    "content": "package types\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// PluginMount plugin mount\n// swagger:model PluginMount\ntype PluginMount struct {\n\n\t// description\n\t// Required: true\n\tDescription string `json:\"Description\"`\n\n\t// destination\n\t// Required: true\n\tDestination string `json:\"Destination\"`\n\n\t// name\n\t// Required: true\n\tName string `json:\"Name\"`\n\n\t// options\n\t// Required: true\n\tOptions []string `json:\"Options\"`\n\n\t// settable\n\t// Required: true\n\tSettable []string `json:\"Settable\"`\n\n\t// source\n\t// Required: true\n\tSource *string `json:\"Source\"`\n\n\t// type\n\t// Required: true\n\tType string `json:\"Type\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/plugin_responses.go",
    "content": "package types\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n)\n\n// PluginsListResponse contains the response for the Engine API\ntype PluginsListResponse []*Plugin\n\n// UnmarshalJSON implements json.Unmarshaler for PluginInterfaceType\nfunc (t *PluginInterfaceType) UnmarshalJSON(p []byte) error {\n\tversionIndex := len(p)\n\tprefixIndex := 0\n\tif len(p) < 2 || p[0] != '\"' || p[len(p)-1] != '\"' {\n\t\treturn fmt.Errorf(\"%q is not a plugin interface type\", p)\n\t}\n\tp = p[1 : len(p)-1]\nloop:\n\tfor i, b := range p {\n\t\tswitch b {\n\t\tcase '.':\n\t\t\tprefixIndex = i\n\t\tcase '/':\n\t\t\tversionIndex = i\n\t\t\tbreak loop\n\t\t}\n\t}\n\tt.Prefix = string(p[:prefixIndex])\n\tt.Capability = string(p[prefixIndex+1 : versionIndex])\n\tif versionIndex < len(p) {\n\t\tt.Version = string(p[versionIndex+1:])\n\t}\n\treturn nil\n}\n\n// MarshalJSON implements json.Marshaler for PluginInterfaceType\nfunc (t *PluginInterfaceType) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(t.String())\n}\n\n// String implements fmt.Stringer for PluginInterfaceType\nfunc (t PluginInterfaceType) String() string {\n\treturn fmt.Sprintf(\"%s.%s/%s\", t.Prefix, t.Capability, t.Version)\n}\n\n// PluginPrivilege describes a permission the user has to accept\n// upon installing a plugin.\ntype PluginPrivilege struct {\n\tName        string\n\tDescription string\n\tValue       []string\n}\n\n// PluginPrivileges is a list of PluginPrivilege\ntype PluginPrivileges []PluginPrivilege\n\nfunc (s PluginPrivileges) Len() int {\n\treturn len(s)\n}\n\nfunc (s PluginPrivileges) Less(i, j int) bool {\n\treturn s[i].Name < s[j].Name\n}\n\nfunc (s PluginPrivileges) Swap(i, j int) {\n\tsort.Strings(s[i].Value)\n\tsort.Strings(s[j].Value)\n\ts[i], s[j] = s[j], s[i]\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/registry/authconfig.go",
    "content": "package registry\n\nimport (\n\t\"context\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n)\n\n// AuthHeader is the name of the header used to send encoded registry\n// authorization credentials for registry operations (push/pull).\nconst AuthHeader = \"X-Registry-Auth\"\n\n// RequestAuthConfig is a function interface that clients can supply\n// to retry operations after getting an authorization error.\n//\n// The function must return the [AuthHeader] value ([AuthConfig]), encoded\n// in base64url format ([RFC4648, section 5]), which can be decoded by\n// [DecodeAuthConfig].\n//\n// It must return an error if the privilege request fails.\n//\n// [RFC4648, section 5]: https://tools.ietf.org/html/rfc4648#section-5\ntype RequestAuthConfig func(context.Context) (string, error)\n\n// AuthConfig contains authorization information for connecting to a Registry.\ntype AuthConfig struct {\n\tUsername string `json:\"username,omitempty\"`\n\tPassword string `json:\"password,omitempty\"`\n\tAuth     string `json:\"auth,omitempty\"`\n\n\t// Email is an optional value associated with the username.\n\t//\n\t// Deprecated: This field is deprecated since docker 1.11 (API v1.23) and will be removed in the next release.\n\tEmail string `json:\"email,omitempty\"`\n\n\tServerAddress string `json:\"serveraddress,omitempty\"`\n\n\t// IdentityToken is used to authenticate the user and get\n\t// an access token for the registry.\n\tIdentityToken string `json:\"identitytoken,omitempty\"`\n\n\t// RegistryToken is a bearer token to be sent to a registry\n\tRegistryToken string `json:\"registrytoken,omitempty\"`\n}\n\n// EncodeAuthConfig serializes the auth configuration as a base64url encoded\n// ([RFC4648, section 5]) JSON string for sending through the X-Registry-Auth header.\n//\n// [RFC4648, section 5]: https://tools.ietf.org/html/rfc4648#section-5\nfunc EncodeAuthConfig(authConfig AuthConfig) (string, error) {\n\tbuf, err := json.Marshal(authConfig)\n\tif err != nil {\n\t\treturn \"\", errInvalidParameter{err}\n\t}\n\treturn base64.URLEncoding.EncodeToString(buf), nil\n}\n\n// DecodeAuthConfig decodes base64url encoded ([RFC4648, section 5]) JSON\n// authentication information as sent through the X-Registry-Auth header.\n//\n// This function always returns an [AuthConfig], even if an error occurs. It is up\n// to the caller to decide if authentication is required, and if the error can\n// be ignored.\n//\n// [RFC4648, section 5]: https://tools.ietf.org/html/rfc4648#section-5\nfunc DecodeAuthConfig(authEncoded string) (*AuthConfig, error) {\n\tif authEncoded == \"\" {\n\t\treturn &AuthConfig{}, nil\n\t}\n\n\tauthJSON := base64.NewDecoder(base64.URLEncoding, strings.NewReader(authEncoded))\n\treturn decodeAuthConfigFromReader(authJSON)\n}\n\n// DecodeAuthConfigBody decodes authentication information as sent as JSON in the\n// body of a request. This function is to provide backward compatibility with old\n// clients and API versions. Current clients and API versions expect authentication\n// to be provided through the X-Registry-Auth header.\n//\n// Like [DecodeAuthConfig], this function always returns an [AuthConfig], even if an\n// error occurs. It is up to the caller to decide if authentication is required,\n// and if the error can be ignored.\n//\n// Deprecated: this function is no longer used and will be removed in the next release.\nfunc DecodeAuthConfigBody(rdr io.ReadCloser) (*AuthConfig, error) {\n\treturn decodeAuthConfigFromReader(rdr)\n}\n\nfunc decodeAuthConfigFromReader(rdr io.Reader) (*AuthConfig, error) {\n\tauthConfig := &AuthConfig{}\n\tif err := json.NewDecoder(rdr).Decode(authConfig); err != nil {\n\t\t// always return an (empty) AuthConfig to increase compatibility with\n\t\t// the existing API.\n\t\treturn &AuthConfig{}, invalid(err)\n\t}\n\treturn authConfig, nil\n}\n\nfunc invalid(err error) error {\n\treturn errInvalidParameter{fmt.Errorf(\"invalid X-Registry-Auth header: %w\", err)}\n}\n\ntype errInvalidParameter struct{ error }\n\nfunc (errInvalidParameter) InvalidParameter() {}\n\nfunc (e errInvalidParameter) Cause() error { return e.error }\n\nfunc (e errInvalidParameter) Unwrap() error { return e.error }\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/registry/authenticate.go",
    "content": "package registry\n\n// ----------------------------------------------------------------------------\n// DO NOT EDIT THIS FILE\n// This file was generated by `swagger generate operation`\n//\n// See hack/generate-swagger-api.sh\n// ----------------------------------------------------------------------------\n\n// AuthenticateOKBody authenticate o k body\n// swagger:model AuthenticateOKBody\ntype AuthenticateOKBody struct {\n\n\t// An opaque token used to authenticate a user after a successful login\n\t// Required: true\n\tIdentityToken string `json:\"IdentityToken\"`\n\n\t// The status of the authentication\n\t// Required: true\n\tStatus string `json:\"Status\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/registry/registry.go",
    "content": "// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:\n//go:build go1.23\n\npackage registry\n\nimport (\n\t\"encoding/json\"\n\t\"net\"\n\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\n// ServiceConfig stores daemon registry services configuration.\ntype ServiceConfig struct {\n\tAllowNondistributableArtifactsCIDRs     []*NetIPNet `json:\"AllowNondistributableArtifactsCIDRs,omitempty\"`     // Deprecated: non-distributable artifacts are deprecated and enabled by default. This field will be removed in the next release.\n\tAllowNondistributableArtifactsHostnames []string    `json:\"AllowNondistributableArtifactsHostnames,omitempty\"` // Deprecated: non-distributable artifacts are deprecated and enabled by default. This field will be removed in the next release.\n\n\tInsecureRegistryCIDRs []*NetIPNet           `json:\"InsecureRegistryCIDRs\"`\n\tIndexConfigs          map[string]*IndexInfo `json:\"IndexConfigs\"`\n\tMirrors               []string\n\n\t// ExtraFields is for internal use to include deprecated fields on older API versions.\n\tExtraFields map[string]any `json:\"-\"`\n}\n\n// MarshalJSON implements a custom marshaler to include legacy fields\n// in API responses.\nfunc (sc *ServiceConfig) MarshalJSON() ([]byte, error) {\n\ttype tmp ServiceConfig\n\tbase, err := json.Marshal((*tmp)(sc))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar merged map[string]any\n\t_ = json.Unmarshal(base, &merged)\n\n\tfor k, v := range sc.ExtraFields {\n\t\tmerged[k] = v\n\t}\n\treturn json.Marshal(merged)\n}\n\n// NetIPNet is the net.IPNet type, which can be marshalled and\n// unmarshalled to JSON\ntype NetIPNet net.IPNet\n\n// String returns the CIDR notation of ipnet\nfunc (ipnet *NetIPNet) String() string {\n\treturn (*net.IPNet)(ipnet).String()\n}\n\n// MarshalJSON returns the JSON representation of the IPNet\nfunc (ipnet *NetIPNet) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal((*net.IPNet)(ipnet).String())\n}\n\n// UnmarshalJSON sets the IPNet from a byte array of JSON\nfunc (ipnet *NetIPNet) UnmarshalJSON(b []byte) error {\n\tvar ipnetStr string\n\tif err := json.Unmarshal(b, &ipnetStr); err != nil {\n\t\treturn err\n\t}\n\t_, cidr, err := net.ParseCIDR(ipnetStr)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*ipnet = NetIPNet(*cidr)\n\treturn nil\n}\n\n// IndexInfo contains information about a registry\n//\n// RepositoryInfo Examples:\n//\n//\t{\n//\t  \"Index\" : {\n//\t    \"Name\" : \"docker.io\",\n//\t    \"Mirrors\" : [\"https://registry-2.docker.io/v1/\", \"https://registry-3.docker.io/v1/\"],\n//\t    \"Secure\" : true,\n//\t    \"Official\" : true,\n//\t  },\n//\t  \"RemoteName\" : \"library/debian\",\n//\t  \"LocalName\" : \"debian\",\n//\t  \"CanonicalName\" : \"docker.io/debian\"\n//\t  \"Official\" : true,\n//\t}\n//\n//\t{\n//\t  \"Index\" : {\n//\t    \"Name\" : \"127.0.0.1:5000\",\n//\t    \"Mirrors\" : [],\n//\t    \"Secure\" : false,\n//\t    \"Official\" : false,\n//\t  },\n//\t  \"RemoteName\" : \"user/repo\",\n//\t  \"LocalName\" : \"127.0.0.1:5000/user/repo\",\n//\t  \"CanonicalName\" : \"127.0.0.1:5000/user/repo\",\n//\t  \"Official\" : false,\n//\t}\ntype IndexInfo struct {\n\t// Name is the name of the registry, such as \"docker.io\"\n\tName string\n\t// Mirrors is a list of mirrors, expressed as URIs\n\tMirrors []string\n\t// Secure is set to false if the registry is part of the list of\n\t// insecure registries. Insecure registries accept HTTP and/or accept\n\t// HTTPS with certificates from unknown CAs.\n\tSecure bool\n\t// Official indicates whether this is an official registry\n\tOfficial bool\n}\n\n// DistributionInspect describes the result obtained from contacting the\n// registry to retrieve image metadata\ntype DistributionInspect struct {\n\t// Descriptor contains information about the manifest, including\n\t// the content addressable digest\n\tDescriptor ocispec.Descriptor\n\t// Platforms contains the list of platforms supported by the image,\n\t// obtained by parsing the manifest\n\tPlatforms []ocispec.Platform\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/registry/search.go",
    "content": "package registry\n\nimport (\n\t\"context\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n)\n\n// SearchOptions holds parameters to search images with.\ntype SearchOptions struct {\n\tRegistryAuth string\n\n\t// PrivilegeFunc is a function that clients can supply to retry operations\n\t// after getting an authorization error. This function returns the registry\n\t// authentication header value in base64 encoded format, or an error if the\n\t// privilege request fails.\n\t//\n\t// For details, refer to [github.com/docker/docker/api/types/registry.RequestAuthConfig].\n\tPrivilegeFunc func(context.Context) (string, error)\n\tFilters       filters.Args\n\tLimit         int\n}\n\n// SearchResult describes a search result returned from a registry\ntype SearchResult struct {\n\t// StarCount indicates the number of stars this repository has\n\tStarCount int `json:\"star_count\"`\n\t// IsOfficial is true if the result is from an official repository.\n\tIsOfficial bool `json:\"is_official\"`\n\t// Name is the name of the repository\n\tName string `json:\"name\"`\n\t// IsAutomated indicates whether the result is automated.\n\t//\n\t// Deprecated: the \"is_automated\" field is deprecated and will always be \"false\".\n\tIsAutomated bool `json:\"is_automated\"`\n\t// Description is a textual description of the repository\n\tDescription string `json:\"description\"`\n}\n\n// SearchResults lists a collection search results returned from a registry\ntype SearchResults struct {\n\t// Query contains the query string that generated the search results\n\tQuery string `json:\"query\"`\n\t// NumResults indicates the number of results the query returned\n\tNumResults int `json:\"num_results\"`\n\t// Results is a slice containing the actual results for the search\n\tResults []SearchResult `json:\"results\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/storage/driver_data.go",
    "content": "package storage\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// DriverData Information about the storage driver used to store the container's and\n// image's filesystem.\n//\n// swagger:model DriverData\ntype DriverData struct {\n\n\t// Low-level storage metadata, provided as key/value pairs.\n\t//\n\t// This information is driver-specific, and depends on the storage-driver\n\t// in use, and should be used for informational purposes only.\n\t//\n\t// Required: true\n\tData map[string]string `json:\"Data\"`\n\n\t// Name of the storage driver.\n\t// Required: true\n\tName string `json:\"Name\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/strslice/strslice.go",
    "content": "package strslice\n\nimport \"encoding/json\"\n\n// StrSlice represents a string or an array of strings.\n// We need to override the json decoder to accept both options.\ntype StrSlice []string\n\n// UnmarshalJSON decodes the byte slice whether it's a string or an array of\n// strings. This method is needed to implement json.Unmarshaler.\nfunc (e *StrSlice) UnmarshalJSON(b []byte) error {\n\tif len(b) == 0 {\n\t\t// With no input, we preserve the existing value by returning nil and\n\t\t// leaving the target alone. This allows defining default values for\n\t\t// the type.\n\t\treturn nil\n\t}\n\n\tp := make([]string, 0, 1)\n\tif err := json.Unmarshal(b, &p); err != nil {\n\t\tvar s string\n\t\tif err := json.Unmarshal(b, &s); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tp = append(p, s)\n\t}\n\n\t*e = p\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/common.go",
    "content": "package swarm\n\nimport (\n\t\"strconv\"\n\t\"time\"\n)\n\n// Version represents the internal object version.\ntype Version struct {\n\tIndex uint64 `json:\",omitempty\"`\n}\n\n// String implements fmt.Stringer interface.\nfunc (v Version) String() string {\n\treturn strconv.FormatUint(v.Index, 10)\n}\n\n// Meta is a base object inherited by most of the other once.\ntype Meta struct {\n\tVersion   Version   `json:\",omitempty\"`\n\tCreatedAt time.Time `json:\",omitempty\"`\n\tUpdatedAt time.Time `json:\",omitempty\"`\n}\n\n// Annotations represents how to describe an object.\ntype Annotations struct {\n\tName   string            `json:\",omitempty\"`\n\tLabels map[string]string `json:\"Labels\"`\n}\n\n// Driver represents a driver (network, logging, secrets backend).\ntype Driver struct {\n\tName    string            `json:\",omitempty\"`\n\tOptions map[string]string `json:\",omitempty\"`\n}\n\n// TLSInfo represents the TLS information about what CA certificate is trusted,\n// and who the issuer for a TLS certificate is\ntype TLSInfo struct {\n\t// TrustRoot is the trusted CA root certificate in PEM format\n\tTrustRoot string `json:\",omitempty\"`\n\n\t// CertIssuer is the raw subject bytes of the issuer\n\tCertIssuerSubject []byte `json:\",omitempty\"`\n\n\t// CertIssuerPublicKey is the raw public key bytes of the issuer\n\tCertIssuerPublicKey []byte `json:\",omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/config.go",
    "content": "package swarm\n\nimport (\n\t\"os\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n)\n\n// Config represents a config.\ntype Config struct {\n\tID string\n\tMeta\n\tSpec ConfigSpec\n}\n\n// ConfigSpec represents a config specification from a config in swarm\ntype ConfigSpec struct {\n\tAnnotations\n\n\t// Data is the data to store as a config.\n\t//\n\t// The maximum allowed size is 1000KB, as defined in [MaxConfigSize].\n\t//\n\t// [MaxConfigSize]: https://pkg.go.dev/github.com/moby/swarmkit/v2@v2.0.0-20250103191802-8c1959736554/manager/controlapi#MaxConfigSize\n\tData []byte `json:\",omitempty\"`\n\n\t// Templating controls whether and how to evaluate the config payload as\n\t// a template. If it is not set, no templating is used.\n\tTemplating *Driver `json:\",omitempty\"`\n}\n\n// ConfigReferenceFileTarget is a file target in a config reference\ntype ConfigReferenceFileTarget struct {\n\tName string\n\tUID  string\n\tGID  string\n\tMode os.FileMode\n}\n\n// ConfigReferenceRuntimeTarget is a target for a config specifying that it\n// isn't mounted into the container but instead has some other purpose.\ntype ConfigReferenceRuntimeTarget struct{}\n\n// ConfigReference is a reference to a config in swarm\ntype ConfigReference struct {\n\tFile       *ConfigReferenceFileTarget    `json:\",omitempty\"`\n\tRuntime    *ConfigReferenceRuntimeTarget `json:\",omitempty\"`\n\tConfigID   string\n\tConfigName string\n}\n\n// ConfigCreateResponse contains the information returned to a client\n// on the creation of a new config.\ntype ConfigCreateResponse struct {\n\t// ID is the id of the created config.\n\tID string\n}\n\n// ConfigListOptions holds parameters to list configs\ntype ConfigListOptions struct {\n\tFilters filters.Args\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/container.go",
    "content": "package swarm\n\nimport (\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/mount\"\n)\n\n// DNSConfig specifies DNS related configurations in resolver configuration file (resolv.conf)\n// Detailed documentation is available in:\n// http://man7.org/linux/man-pages/man5/resolv.conf.5.html\n// `nameserver`, `search`, `options` have been supported.\n// TODO: `domain` is not supported yet.\ntype DNSConfig struct {\n\t// Nameservers specifies the IP addresses of the name servers\n\tNameservers []string `json:\",omitempty\"`\n\t// Search specifies the search list for host-name lookup\n\tSearch []string `json:\",omitempty\"`\n\t// Options allows certain internal resolver variables to be modified\n\tOptions []string `json:\",omitempty\"`\n}\n\n// SELinuxContext contains the SELinux labels of the container.\ntype SELinuxContext struct {\n\tDisable bool\n\n\tUser  string\n\tRole  string\n\tType  string\n\tLevel string\n}\n\n// SeccompMode is the type used for the enumeration of possible seccomp modes\n// in SeccompOpts\ntype SeccompMode string\n\nconst (\n\tSeccompModeDefault    SeccompMode = \"default\"\n\tSeccompModeUnconfined SeccompMode = \"unconfined\"\n\tSeccompModeCustom     SeccompMode = \"custom\"\n)\n\n// SeccompOpts defines the options for configuring seccomp on a swarm-managed\n// container.\ntype SeccompOpts struct {\n\t// Mode is the SeccompMode used for the container.\n\tMode SeccompMode `json:\",omitempty\"`\n\t// Profile is the custom seccomp profile as a json object to be used with\n\t// the container. Mode should be set to SeccompModeCustom when using a\n\t// custom profile in this manner.\n\tProfile []byte `json:\",omitempty\"`\n}\n\n// AppArmorMode is type used for the enumeration of possible AppArmor modes in\n// AppArmorOpts\ntype AppArmorMode string\n\nconst (\n\tAppArmorModeDefault  AppArmorMode = \"default\"\n\tAppArmorModeDisabled AppArmorMode = \"disabled\"\n)\n\n// AppArmorOpts defines the options for configuring AppArmor on a swarm-managed\n// container.  Currently, custom AppArmor profiles are not supported.\ntype AppArmorOpts struct {\n\tMode AppArmorMode `json:\",omitempty\"`\n}\n\n// CredentialSpec for managed service account (Windows only)\ntype CredentialSpec struct {\n\tConfig   string\n\tFile     string\n\tRegistry string\n}\n\n// Privileges defines the security options for the container.\ntype Privileges struct {\n\tCredentialSpec  *CredentialSpec\n\tSELinuxContext  *SELinuxContext\n\tSeccomp         *SeccompOpts  `json:\",omitempty\"`\n\tAppArmor        *AppArmorOpts `json:\",omitempty\"`\n\tNoNewPrivileges bool\n}\n\n// ContainerSpec represents the spec of a container.\ntype ContainerSpec struct {\n\tImage           string                  `json:\",omitempty\"`\n\tLabels          map[string]string       `json:\",omitempty\"`\n\tCommand         []string                `json:\",omitempty\"`\n\tArgs            []string                `json:\",omitempty\"`\n\tHostname        string                  `json:\",omitempty\"`\n\tEnv             []string                `json:\",omitempty\"`\n\tDir             string                  `json:\",omitempty\"`\n\tUser            string                  `json:\",omitempty\"`\n\tGroups          []string                `json:\",omitempty\"`\n\tPrivileges      *Privileges             `json:\",omitempty\"`\n\tInit            *bool                   `json:\",omitempty\"`\n\tStopSignal      string                  `json:\",omitempty\"`\n\tTTY             bool                    `json:\",omitempty\"`\n\tOpenStdin       bool                    `json:\",omitempty\"`\n\tReadOnly        bool                    `json:\",omitempty\"`\n\tMounts          []mount.Mount           `json:\",omitempty\"`\n\tStopGracePeriod *time.Duration          `json:\",omitempty\"`\n\tHealthcheck     *container.HealthConfig `json:\",omitempty\"`\n\t// The format of extra hosts on swarmkit is specified in:\n\t// http://man7.org/linux/man-pages/man5/hosts.5.html\n\t//    IP_address canonical_hostname [aliases...]\n\tHosts          []string            `json:\",omitempty\"`\n\tDNSConfig      *DNSConfig          `json:\",omitempty\"`\n\tSecrets        []*SecretReference  `json:\",omitempty\"`\n\tConfigs        []*ConfigReference  `json:\",omitempty\"`\n\tIsolation      container.Isolation `json:\",omitempty\"`\n\tSysctls        map[string]string   `json:\",omitempty\"`\n\tCapabilityAdd  []string            `json:\",omitempty\"`\n\tCapabilityDrop []string            `json:\",omitempty\"`\n\tUlimits        []*container.Ulimit `json:\",omitempty\"`\n\tOomScoreAdj    int64               `json:\",omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/network.go",
    "content": "package swarm\n\nimport (\n\t\"github.com/docker/docker/api/types/network\"\n)\n\n// Endpoint represents an endpoint.\ntype Endpoint struct {\n\tSpec       EndpointSpec        `json:\",omitempty\"`\n\tPorts      []PortConfig        `json:\",omitempty\"`\n\tVirtualIPs []EndpointVirtualIP `json:\",omitempty\"`\n}\n\n// EndpointSpec represents the spec of an endpoint.\ntype EndpointSpec struct {\n\tMode  ResolutionMode `json:\",omitempty\"`\n\tPorts []PortConfig   `json:\",omitempty\"`\n}\n\n// ResolutionMode represents a resolution mode.\ntype ResolutionMode string\n\nconst (\n\t// ResolutionModeVIP VIP\n\tResolutionModeVIP ResolutionMode = \"vip\"\n\t// ResolutionModeDNSRR DNSRR\n\tResolutionModeDNSRR ResolutionMode = \"dnsrr\"\n)\n\n// PortConfig represents the config of a port.\ntype PortConfig struct {\n\tName     string             `json:\",omitempty\"`\n\tProtocol PortConfigProtocol `json:\",omitempty\"`\n\t// TargetPort is the port inside the container\n\tTargetPort uint32 `json:\",omitempty\"`\n\t// PublishedPort is the port on the swarm hosts\n\tPublishedPort uint32 `json:\",omitempty\"`\n\t// PublishMode is the mode in which port is published\n\tPublishMode PortConfigPublishMode `json:\",omitempty\"`\n}\n\n// PortConfigPublishMode represents the mode in which the port is to\n// be published.\ntype PortConfigPublishMode string\n\nconst (\n\t// PortConfigPublishModeIngress is used for ports published\n\t// for ingress load balancing using routing mesh.\n\tPortConfigPublishModeIngress PortConfigPublishMode = \"ingress\"\n\t// PortConfigPublishModeHost is used for ports published\n\t// for direct host level access on the host where the task is running.\n\tPortConfigPublishModeHost PortConfigPublishMode = \"host\"\n)\n\n// PortConfigProtocol represents the protocol of a port.\ntype PortConfigProtocol string\n\nconst (\n\t// TODO(stevvooe): These should be used generally, not just for PortConfig.\n\n\t// PortConfigProtocolTCP TCP\n\tPortConfigProtocolTCP PortConfigProtocol = \"tcp\"\n\t// PortConfigProtocolUDP UDP\n\tPortConfigProtocolUDP PortConfigProtocol = \"udp\"\n\t// PortConfigProtocolSCTP SCTP\n\tPortConfigProtocolSCTP PortConfigProtocol = \"sctp\"\n)\n\n// EndpointVirtualIP represents the virtual ip of a port.\ntype EndpointVirtualIP struct {\n\tNetworkID string `json:\",omitempty\"`\n\tAddr      string `json:\",omitempty\"`\n}\n\n// Network represents a network.\ntype Network struct {\n\tID string\n\tMeta\n\tSpec        NetworkSpec  `json:\",omitempty\"`\n\tDriverState Driver       `json:\",omitempty\"`\n\tIPAMOptions *IPAMOptions `json:\",omitempty\"`\n}\n\n// NetworkSpec represents the spec of a network.\ntype NetworkSpec struct {\n\tAnnotations\n\tDriverConfiguration *Driver                  `json:\",omitempty\"`\n\tIPv6Enabled         bool                     `json:\",omitempty\"`\n\tInternal            bool                     `json:\",omitempty\"`\n\tAttachable          bool                     `json:\",omitempty\"`\n\tIngress             bool                     `json:\",omitempty\"`\n\tIPAMOptions         *IPAMOptions             `json:\",omitempty\"`\n\tConfigFrom          *network.ConfigReference `json:\",omitempty\"`\n\tScope               string                   `json:\",omitempty\"`\n}\n\n// NetworkAttachmentConfig represents the configuration of a network attachment.\ntype NetworkAttachmentConfig struct {\n\tTarget     string            `json:\",omitempty\"`\n\tAliases    []string          `json:\",omitempty\"`\n\tDriverOpts map[string]string `json:\",omitempty\"`\n}\n\n// NetworkAttachment represents a network attachment.\ntype NetworkAttachment struct {\n\tNetwork   Network  `json:\",omitempty\"`\n\tAddresses []string `json:\",omitempty\"`\n}\n\n// IPAMOptions represents ipam options.\ntype IPAMOptions struct {\n\tDriver  Driver       `json:\",omitempty\"`\n\tConfigs []IPAMConfig `json:\",omitempty\"`\n}\n\n// IPAMConfig represents ipam configuration.\ntype IPAMConfig struct {\n\tSubnet  string `json:\",omitempty\"`\n\tRange   string `json:\",omitempty\"`\n\tGateway string `json:\",omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/node.go",
    "content": "package swarm\n\nimport \"github.com/docker/docker/api/types/filters\"\n\n// Node represents a node.\ntype Node struct {\n\tID string\n\tMeta\n\t// Spec defines the desired state of the node as specified by the user.\n\t// The system will honor this and will *never* modify it.\n\tSpec NodeSpec `json:\",omitempty\"`\n\t// Description encapsulates the properties of the Node as reported by the\n\t// agent.\n\tDescription NodeDescription `json:\",omitempty\"`\n\t// Status provides the current status of the node, as seen by the manager.\n\tStatus NodeStatus `json:\",omitempty\"`\n\t// ManagerStatus provides the current status of the node's manager\n\t// component, if the node is a manager.\n\tManagerStatus *ManagerStatus `json:\",omitempty\"`\n}\n\n// NodeSpec represents the spec of a node.\ntype NodeSpec struct {\n\tAnnotations\n\tRole         NodeRole         `json:\",omitempty\"`\n\tAvailability NodeAvailability `json:\",omitempty\"`\n}\n\n// NodeRole represents the role of a node.\ntype NodeRole string\n\nconst (\n\t// NodeRoleWorker WORKER\n\tNodeRoleWorker NodeRole = \"worker\"\n\t// NodeRoleManager MANAGER\n\tNodeRoleManager NodeRole = \"manager\"\n)\n\n// NodeAvailability represents the availability of a node.\ntype NodeAvailability string\n\nconst (\n\t// NodeAvailabilityActive ACTIVE\n\tNodeAvailabilityActive NodeAvailability = \"active\"\n\t// NodeAvailabilityPause PAUSE\n\tNodeAvailabilityPause NodeAvailability = \"pause\"\n\t// NodeAvailabilityDrain DRAIN\n\tNodeAvailabilityDrain NodeAvailability = \"drain\"\n)\n\n// NodeDescription represents the description of a node.\ntype NodeDescription struct {\n\tHostname  string            `json:\",omitempty\"`\n\tPlatform  Platform          `json:\",omitempty\"`\n\tResources Resources         `json:\",omitempty\"`\n\tEngine    EngineDescription `json:\",omitempty\"`\n\tTLSInfo   TLSInfo           `json:\",omitempty\"`\n\tCSIInfo   []NodeCSIInfo     `json:\",omitempty\"`\n}\n\n// Platform represents the platform (Arch/OS).\ntype Platform struct {\n\tArchitecture string `json:\",omitempty\"`\n\tOS           string `json:\",omitempty\"`\n}\n\n// EngineDescription represents the description of an engine.\ntype EngineDescription struct {\n\tEngineVersion string              `json:\",omitempty\"`\n\tLabels        map[string]string   `json:\",omitempty\"`\n\tPlugins       []PluginDescription `json:\",omitempty\"`\n}\n\n// NodeCSIInfo represents information about a CSI plugin available on the node\ntype NodeCSIInfo struct {\n\t// PluginName is the name of the CSI plugin.\n\tPluginName string `json:\",omitempty\"`\n\t// NodeID is the ID of the node as reported by the CSI plugin. This is\n\t// different from the swarm node ID.\n\tNodeID string `json:\",omitempty\"`\n\t// MaxVolumesPerNode is the maximum number of volumes that may be published\n\t// to this node\n\tMaxVolumesPerNode int64 `json:\",omitempty\"`\n\t// AccessibleTopology indicates the location of this node in the CSI\n\t// plugin's topology\n\tAccessibleTopology *Topology `json:\",omitempty\"`\n}\n\n// PluginDescription represents the description of an engine plugin.\ntype PluginDescription struct {\n\tType string `json:\",omitempty\"`\n\tName string `json:\",omitempty\"`\n}\n\n// NodeStatus represents the status of a node.\ntype NodeStatus struct {\n\tState   NodeState `json:\",omitempty\"`\n\tMessage string    `json:\",omitempty\"`\n\tAddr    string    `json:\",omitempty\"`\n}\n\n// Reachability represents the reachability of a node.\ntype Reachability string\n\nconst (\n\t// ReachabilityUnknown UNKNOWN\n\tReachabilityUnknown Reachability = \"unknown\"\n\t// ReachabilityUnreachable UNREACHABLE\n\tReachabilityUnreachable Reachability = \"unreachable\"\n\t// ReachabilityReachable REACHABLE\n\tReachabilityReachable Reachability = \"reachable\"\n)\n\n// ManagerStatus represents the status of a manager.\ntype ManagerStatus struct {\n\tLeader       bool         `json:\",omitempty\"`\n\tReachability Reachability `json:\",omitempty\"`\n\tAddr         string       `json:\",omitempty\"`\n}\n\n// NodeState represents the state of a node.\ntype NodeState string\n\nconst (\n\t// NodeStateUnknown UNKNOWN\n\tNodeStateUnknown NodeState = \"unknown\"\n\t// NodeStateDown DOWN\n\tNodeStateDown NodeState = \"down\"\n\t// NodeStateReady READY\n\tNodeStateReady NodeState = \"ready\"\n\t// NodeStateDisconnected DISCONNECTED\n\tNodeStateDisconnected NodeState = \"disconnected\"\n)\n\n// Topology defines the CSI topology of this node. This type is a duplicate of\n// github.com/docker/docker/api/types.Topology. Because the type definition\n// is so simple and to avoid complicated structure or circular imports, we just\n// duplicate it here. See that type for full documentation\ntype Topology struct {\n\tSegments map[string]string `json:\",omitempty\"`\n}\n\n// NodeListOptions holds parameters to list nodes with.\ntype NodeListOptions struct {\n\tFilters filters.Args\n}\n\n// NodeRemoveOptions holds parameters to remove nodes with.\ntype NodeRemoveOptions struct {\n\tForce bool\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/runtime/runtime.go",
    "content": "package runtime\n\nimport \"fmt\"\n\n// PluginSpec defines the base payload which clients can specify for creating\n// a service with the plugin runtime.\ntype PluginSpec struct {\n\tName       string             `json:\"name,omitempty\"`\n\tRemote     string             `json:\"remote,omitempty\"`\n\tPrivileges []*PluginPrivilege `json:\"privileges,omitempty\"`\n\tDisabled   bool               `json:\"disabled,omitempty\"`\n\tEnv        []string           `json:\"env,omitempty\"`\n}\n\n// PluginPrivilege describes a permission the user has to accept\n// upon installing a plugin.\ntype PluginPrivilege struct {\n\tName        string   `json:\"name,omitempty\"`\n\tDescription string   `json:\"description,omitempty\"`\n\tValue       []string `json:\"value,omitempty\"`\n}\n\nvar (\n\tErrInvalidLengthPlugin        = fmt.Errorf(\"proto: negative length found during unmarshaling\") // Deprecated: this error was only used internally and is no longer used.\n\tErrIntOverflowPlugin          = fmt.Errorf(\"proto: integer overflow\")                          // Deprecated: this error was only used internally and is no longer used.\n\tErrUnexpectedEndOfGroupPlugin = fmt.Errorf(\"proto: unexpected end of group\")                   // Deprecated: this error was only used internally and is no longer used.\n)\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/runtime.go",
    "content": "package swarm\n\nimport \"github.com/docker/docker/api/types/swarm/runtime\"\n\n// RuntimeType is the type of runtime used for the TaskSpec\ntype RuntimeType string\n\n// RuntimeURL is the proto type url\ntype RuntimeURL string\n\nconst (\n\t// RuntimeContainer is the container based runtime\n\tRuntimeContainer RuntimeType = \"container\"\n\t// RuntimePlugin is the plugin based runtime\n\tRuntimePlugin RuntimeType = \"plugin\"\n\t// RuntimeNetworkAttachment is the network attachment runtime\n\tRuntimeNetworkAttachment RuntimeType = \"attachment\"\n\n\t// RuntimeURLContainer is the proto url for the container type\n\tRuntimeURLContainer RuntimeURL = \"types.docker.com/RuntimeContainer\"\n\t// RuntimeURLPlugin is the proto url for the plugin type\n\tRuntimeURLPlugin RuntimeURL = \"types.docker.com/RuntimePlugin\"\n)\n\n// NetworkAttachmentSpec represents the runtime spec type for network\n// attachment tasks\ntype NetworkAttachmentSpec struct {\n\tContainerID string\n}\n\n// RuntimeSpec defines the base payload which clients can specify for creating\n// a service with the plugin runtime.\ntype RuntimeSpec = runtime.PluginSpec\n\n// RuntimePrivilege describes a permission the user has to accept\n// upon installing a plugin.\ntype RuntimePrivilege = runtime.PluginPrivilege\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/secret.go",
    "content": "package swarm\n\nimport (\n\t\"os\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n)\n\n// Secret represents a secret.\ntype Secret struct {\n\tID string\n\tMeta\n\tSpec SecretSpec\n}\n\n// SecretSpec represents a secret specification from a secret in swarm\ntype SecretSpec struct {\n\tAnnotations\n\n\t// Data is the data to store as a secret. It must be empty if a\n\t// [Driver] is used, in which case the data is loaded from an external\n\t// secret store. The maximum allowed size is 500KB, as defined in\n\t// [MaxSecretSize].\n\t//\n\t// This field is only used to create the secret, and is not returned\n\t// by other endpoints.\n\t//\n\t// [MaxSecretSize]: https://pkg.go.dev/github.com/moby/swarmkit/v2@v2.0.0-20250103191802-8c1959736554/api/validation#MaxSecretSize\n\tData []byte `json:\",omitempty\"`\n\n\t// Driver is the name of the secrets driver used to fetch the secret's\n\t// value from an external secret store. If not set, the default built-in\n\t// store is used.\n\tDriver *Driver `json:\",omitempty\"`\n\n\t// Templating controls whether and how to evaluate the secret payload as\n\t// a template. If it is not set, no templating is used.\n\tTemplating *Driver `json:\",omitempty\"`\n}\n\n// SecretReferenceFileTarget is a file target in a secret reference\ntype SecretReferenceFileTarget struct {\n\tName string\n\tUID  string\n\tGID  string\n\tMode os.FileMode\n}\n\n// SecretReference is a reference to a secret in swarm\ntype SecretReference struct {\n\tFile       *SecretReferenceFileTarget\n\tSecretID   string\n\tSecretName string\n}\n\n// SecretCreateResponse contains the information returned to a client\n// on the creation of a new secret.\ntype SecretCreateResponse struct {\n\t// ID is the id of the created secret.\n\tID string\n}\n\n// SecretListOptions holds parameters to list secrets\ntype SecretListOptions struct {\n\tFilters filters.Args\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/service.go",
    "content": "package swarm\n\nimport (\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n)\n\n// Service represents a service.\ntype Service struct {\n\tID string\n\tMeta\n\tSpec         ServiceSpec   `json:\",omitempty\"`\n\tPreviousSpec *ServiceSpec  `json:\",omitempty\"`\n\tEndpoint     Endpoint      `json:\",omitempty\"`\n\tUpdateStatus *UpdateStatus `json:\",omitempty\"`\n\n\t// ServiceStatus is an optional, extra field indicating the number of\n\t// desired and running tasks. It is provided primarily as a shortcut to\n\t// calculating these values client-side, which otherwise would require\n\t// listing all tasks for a service, an operation that could be\n\t// computation and network expensive.\n\tServiceStatus *ServiceStatus `json:\",omitempty\"`\n\n\t// JobStatus is the status of a Service which is in one of ReplicatedJob or\n\t// GlobalJob modes. It is absent on Replicated and Global services.\n\tJobStatus *JobStatus `json:\",omitempty\"`\n}\n\n// ServiceSpec represents the spec of a service.\ntype ServiceSpec struct {\n\tAnnotations\n\n\t// TaskTemplate defines how the service should construct new tasks when\n\t// orchestrating this service.\n\tTaskTemplate   TaskSpec      `json:\",omitempty\"`\n\tMode           ServiceMode   `json:\",omitempty\"`\n\tUpdateConfig   *UpdateConfig `json:\",omitempty\"`\n\tRollbackConfig *UpdateConfig `json:\",omitempty\"`\n\n\t// Networks specifies which networks the service should attach to.\n\t//\n\t// Deprecated: This field is deprecated since v1.44. The Networks field in TaskSpec should be used instead.\n\tNetworks     []NetworkAttachmentConfig `json:\",omitempty\"`\n\tEndpointSpec *EndpointSpec             `json:\",omitempty\"`\n}\n\n// ServiceMode represents the mode of a service.\ntype ServiceMode struct {\n\tReplicated    *ReplicatedService `json:\",omitempty\"`\n\tGlobal        *GlobalService     `json:\",omitempty\"`\n\tReplicatedJob *ReplicatedJob     `json:\",omitempty\"`\n\tGlobalJob     *GlobalJob         `json:\",omitempty\"`\n}\n\n// UpdateState is the state of a service update.\ntype UpdateState string\n\nconst (\n\t// UpdateStateUpdating is the updating state.\n\tUpdateStateUpdating UpdateState = \"updating\"\n\t// UpdateStatePaused is the paused state.\n\tUpdateStatePaused UpdateState = \"paused\"\n\t// UpdateStateCompleted is the completed state.\n\tUpdateStateCompleted UpdateState = \"completed\"\n\t// UpdateStateRollbackStarted is the state with a rollback in progress.\n\tUpdateStateRollbackStarted UpdateState = \"rollback_started\"\n\t// UpdateStateRollbackPaused is the state with a rollback in progress.\n\tUpdateStateRollbackPaused UpdateState = \"rollback_paused\"\n\t// UpdateStateRollbackCompleted is the state with a rollback in progress.\n\tUpdateStateRollbackCompleted UpdateState = \"rollback_completed\"\n)\n\n// UpdateStatus reports the status of a service update.\ntype UpdateStatus struct {\n\tState       UpdateState `json:\",omitempty\"`\n\tStartedAt   *time.Time  `json:\",omitempty\"`\n\tCompletedAt *time.Time  `json:\",omitempty\"`\n\tMessage     string      `json:\",omitempty\"`\n}\n\n// ReplicatedService is a kind of ServiceMode.\ntype ReplicatedService struct {\n\tReplicas *uint64 `json:\",omitempty\"`\n}\n\n// GlobalService is a kind of ServiceMode.\ntype GlobalService struct{}\n\n// ReplicatedJob is the a type of Service which executes a defined Tasks\n// in parallel until the specified number of Tasks have succeeded.\ntype ReplicatedJob struct {\n\t// MaxConcurrent indicates the maximum number of Tasks that should be\n\t// executing simultaneously for this job at any given time. There may be\n\t// fewer Tasks that MaxConcurrent executing simultaneously; for example, if\n\t// there are fewer than MaxConcurrent tasks needed to reach\n\t// TotalCompletions.\n\t//\n\t// If this field is empty, it will default to a max concurrency of 1.\n\tMaxConcurrent *uint64 `json:\",omitempty\"`\n\n\t// TotalCompletions is the total number of Tasks desired to run to\n\t// completion.\n\t//\n\t// If this field is empty, the value of MaxConcurrent will be used.\n\tTotalCompletions *uint64 `json:\",omitempty\"`\n}\n\n// GlobalJob is the type of a Service which executes a Task on every Node\n// matching the Service's placement constraints. These tasks run to completion\n// and then exit.\n//\n// This type is deliberately empty.\ntype GlobalJob struct{}\n\nconst (\n\t// UpdateFailureActionPause PAUSE\n\tUpdateFailureActionPause = \"pause\"\n\t// UpdateFailureActionContinue CONTINUE\n\tUpdateFailureActionContinue = \"continue\"\n\t// UpdateFailureActionRollback ROLLBACK\n\tUpdateFailureActionRollback = \"rollback\"\n\n\t// UpdateOrderStopFirst STOP_FIRST\n\tUpdateOrderStopFirst = \"stop-first\"\n\t// UpdateOrderStartFirst START_FIRST\n\tUpdateOrderStartFirst = \"start-first\"\n)\n\n// UpdateConfig represents the update configuration.\ntype UpdateConfig struct {\n\t// Maximum number of tasks to be updated in one iteration.\n\t// 0 means unlimited parallelism.\n\tParallelism uint64\n\n\t// Amount of time between updates.\n\tDelay time.Duration `json:\",omitempty\"`\n\n\t// FailureAction is the action to take when an update failures.\n\tFailureAction string `json:\",omitempty\"`\n\n\t// Monitor indicates how long to monitor a task for failure after it is\n\t// created. If the task fails by ending up in one of the states\n\t// REJECTED, COMPLETED, or FAILED, within Monitor from its creation,\n\t// this counts as a failure. If it fails after Monitor, it does not\n\t// count as a failure. If Monitor is unspecified, a default value will\n\t// be used.\n\tMonitor time.Duration `json:\",omitempty\"`\n\n\t// MaxFailureRatio is the fraction of tasks that may fail during\n\t// an update before the failure action is invoked. Any task created by\n\t// the current update which ends up in one of the states REJECTED,\n\t// COMPLETED or FAILED within Monitor from its creation counts as a\n\t// failure. The number of failures is divided by the number of tasks\n\t// being updated, and if this fraction is greater than\n\t// MaxFailureRatio, the failure action is invoked.\n\t//\n\t// If the failure action is CONTINUE, there is no effect.\n\t// If the failure action is PAUSE, no more tasks will be updated until\n\t// another update is started.\n\tMaxFailureRatio float32\n\n\t// Order indicates the order of operations when rolling out an updated\n\t// task. Either the old task is shut down before the new task is\n\t// started, or the new task is started before the old task is shut down.\n\tOrder string\n}\n\n// ServiceStatus represents the number of running tasks in a service and the\n// number of tasks desired to be running.\ntype ServiceStatus struct {\n\t// RunningTasks is the number of tasks for the service actually in the\n\t// Running state\n\tRunningTasks uint64\n\n\t// DesiredTasks is the number of tasks desired to be running by the\n\t// service. For replicated services, this is the replica count. For global\n\t// services, this is computed by taking the number of tasks with desired\n\t// state of not-Shutdown.\n\tDesiredTasks uint64\n\n\t// CompletedTasks is the number of tasks in the state Completed, if this\n\t// service is in ReplicatedJob or GlobalJob mode. This field must be\n\t// cross-referenced with the service type, because the default value of 0\n\t// may mean that a service is not in a job mode, or it may mean that the\n\t// job has yet to complete any tasks.\n\tCompletedTasks uint64\n}\n\n// JobStatus is the status of a job-type service.\ntype JobStatus struct {\n\t// JobIteration is a value increased each time a Job is executed,\n\t// successfully or otherwise. \"Executed\", in this case, means the job as a\n\t// whole has been started, not that an individual Task has been launched. A\n\t// job is \"Executed\" when its ServiceSpec is updated. JobIteration can be\n\t// used to disambiguate Tasks belonging to different executions of a job.\n\t//\n\t// Though JobIteration will increase with each subsequent execution, it may\n\t// not necessarily increase by 1, and so JobIteration should not be used to\n\t// keep track of the number of times a job has been executed.\n\tJobIteration Version\n\n\t// LastExecution is the time that the job was last executed, as observed by\n\t// Swarm manager.\n\tLastExecution time.Time `json:\",omitempty\"`\n}\n\n// ServiceCreateOptions contains the options to use when creating a service.\ntype ServiceCreateOptions struct {\n\t// EncodedRegistryAuth is the encoded registry authorization credentials to\n\t// use when updating the service.\n\t//\n\t// This field follows the format of the X-Registry-Auth header.\n\tEncodedRegistryAuth string\n\n\t// QueryRegistry indicates whether the service update requires\n\t// contacting a registry. A registry may be contacted to retrieve\n\t// the image digest and manifest, which in turn can be used to update\n\t// platform or other information about the service.\n\tQueryRegistry bool\n}\n\n// Values for RegistryAuthFrom in ServiceUpdateOptions\nconst (\n\tRegistryAuthFromSpec         = \"spec\"\n\tRegistryAuthFromPreviousSpec = \"previous-spec\"\n)\n\n// ServiceUpdateOptions contains the options to be used for updating services.\ntype ServiceUpdateOptions struct {\n\t// EncodedRegistryAuth is the encoded registry authorization credentials to\n\t// use when updating the service.\n\t//\n\t// This field follows the format of the X-Registry-Auth header.\n\tEncodedRegistryAuth string\n\n\t// TODO(stevvooe): Consider moving the version parameter of ServiceUpdate\n\t// into this field. While it does open API users up to racy writes, most\n\t// users may not need that level of consistency in practice.\n\n\t// RegistryAuthFrom specifies where to find the registry authorization\n\t// credentials if they are not given in EncodedRegistryAuth. Valid\n\t// values are \"spec\" and \"previous-spec\".\n\tRegistryAuthFrom string\n\n\t// Rollback indicates whether a server-side rollback should be\n\t// performed. When this is set, the provided spec will be ignored.\n\t// The valid values are \"previous\" and \"none\". An empty value is the\n\t// same as \"none\".\n\tRollback string\n\n\t// QueryRegistry indicates whether the service update requires\n\t// contacting a registry. A registry may be contacted to retrieve\n\t// the image digest and manifest, which in turn can be used to update\n\t// platform or other information about the service.\n\tQueryRegistry bool\n}\n\n// ServiceListOptions holds parameters to list services with.\ntype ServiceListOptions struct {\n\tFilters filters.Args\n\n\t// Status indicates whether the server should include the service task\n\t// count of running and desired tasks.\n\tStatus bool\n}\n\n// ServiceInspectOptions holds parameters related to the \"service inspect\"\n// operation.\ntype ServiceInspectOptions struct {\n\tInsertDefaults bool\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/service_create_response.go",
    "content": "package swarm\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// ServiceCreateResponse contains the information returned to a client on the\n// creation of a new service.\n//\n// swagger:model ServiceCreateResponse\ntype ServiceCreateResponse struct {\n\n\t// The ID of the created service.\n\tID string `json:\"ID,omitempty\"`\n\n\t// Optional warning message.\n\t//\n\t// FIXME(thaJeztah): this should have \"omitempty\" in the generated type.\n\t//\n\tWarnings []string `json:\"Warnings\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/service_update_response.go",
    "content": "package swarm\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// ServiceUpdateResponse service update response\n// swagger:model ServiceUpdateResponse\ntype ServiceUpdateResponse struct {\n\n\t// Optional warning messages\n\tWarnings []string `json:\"Warnings\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/swarm.go",
    "content": "package swarm\n\nimport (\n\t\"time\"\n)\n\n// ClusterInfo represents info about the cluster for outputting in \"info\"\n// it contains the same information as \"Swarm\", but without the JoinTokens\ntype ClusterInfo struct {\n\tID string\n\tMeta\n\tSpec                   Spec\n\tTLSInfo                TLSInfo\n\tRootRotationInProgress bool\n\tDefaultAddrPool        []string\n\tSubnetSize             uint32\n\tDataPathPort           uint32\n}\n\n// Swarm represents a swarm.\ntype Swarm struct {\n\tClusterInfo\n\tJoinTokens JoinTokens\n}\n\n// JoinTokens contains the tokens workers and managers need to join the swarm.\ntype JoinTokens struct {\n\t// Worker is the join token workers may use to join the swarm.\n\tWorker string\n\t// Manager is the join token managers may use to join the swarm.\n\tManager string\n}\n\n// Spec represents the spec of a swarm.\ntype Spec struct {\n\tAnnotations\n\n\tOrchestration    OrchestrationConfig `json:\",omitempty\"`\n\tRaft             RaftConfig          `json:\",omitempty\"`\n\tDispatcher       DispatcherConfig    `json:\",omitempty\"`\n\tCAConfig         CAConfig            `json:\",omitempty\"`\n\tTaskDefaults     TaskDefaults        `json:\",omitempty\"`\n\tEncryptionConfig EncryptionConfig    `json:\",omitempty\"`\n}\n\n// OrchestrationConfig represents orchestration configuration.\ntype OrchestrationConfig struct {\n\t// TaskHistoryRetentionLimit is the number of historic tasks to keep per instance or\n\t// node. If negative, never remove completed or failed tasks.\n\tTaskHistoryRetentionLimit *int64 `json:\",omitempty\"`\n}\n\n// TaskDefaults parameterizes cluster-level task creation with default values.\ntype TaskDefaults struct {\n\t// LogDriver selects the log driver to use for tasks created in the\n\t// orchestrator if unspecified by a service.\n\t//\n\t// Updating this value will only have an affect on new tasks. Old tasks\n\t// will continue use their previously configured log driver until\n\t// recreated.\n\tLogDriver *Driver `json:\",omitempty\"`\n}\n\n// EncryptionConfig controls at-rest encryption of data and keys.\ntype EncryptionConfig struct {\n\t// AutoLockManagers specifies whether or not managers TLS keys and raft data\n\t// should be encrypted at rest in such a way that they must be unlocked\n\t// before the manager node starts up again.\n\tAutoLockManagers bool\n}\n\n// RaftConfig represents raft configuration.\ntype RaftConfig struct {\n\t// SnapshotInterval is the number of log entries between snapshots.\n\tSnapshotInterval uint64 `json:\",omitempty\"`\n\n\t// KeepOldSnapshots is the number of snapshots to keep beyond the\n\t// current snapshot.\n\tKeepOldSnapshots *uint64 `json:\",omitempty\"`\n\n\t// LogEntriesForSlowFollowers is the number of log entries to keep\n\t// around to sync up slow followers after a snapshot is created.\n\tLogEntriesForSlowFollowers uint64 `json:\",omitempty\"`\n\n\t// ElectionTick is the number of ticks that a follower will wait for a message\n\t// from the leader before becoming a candidate and starting an election.\n\t// ElectionTick must be greater than HeartbeatTick.\n\t//\n\t// A tick currently defaults to one second, so these translate directly to\n\t// seconds currently, but this is NOT guaranteed.\n\tElectionTick int\n\n\t// HeartbeatTick is the number of ticks between heartbeats. Every\n\t// HeartbeatTick ticks, the leader will send a heartbeat to the\n\t// followers.\n\t//\n\t// A tick currently defaults to one second, so these translate directly to\n\t// seconds currently, but this is NOT guaranteed.\n\tHeartbeatTick int\n}\n\n// DispatcherConfig represents dispatcher configuration.\ntype DispatcherConfig struct {\n\t// HeartbeatPeriod defines how often agent should send heartbeats to\n\t// dispatcher.\n\tHeartbeatPeriod time.Duration `json:\",omitempty\"`\n}\n\n// CAConfig represents CA configuration.\ntype CAConfig struct {\n\t// NodeCertExpiry is the duration certificates should be issued for\n\tNodeCertExpiry time.Duration `json:\",omitempty\"`\n\n\t// ExternalCAs is a list of CAs to which a manager node will make\n\t// certificate signing requests for node certificates.\n\tExternalCAs []*ExternalCA `json:\",omitempty\"`\n\n\t// SigningCACert and SigningCAKey specify the desired signing root CA and\n\t// root CA key for the swarm.  When inspecting the cluster, the key will\n\t// be redacted.\n\tSigningCACert string `json:\",omitempty\"`\n\tSigningCAKey  string `json:\",omitempty\"`\n\n\t// If this value changes, and there is no specified signing cert and key,\n\t// then the swarm is forced to generate a new root certificate and key.\n\tForceRotate uint64 `json:\",omitempty\"`\n}\n\n// ExternalCAProtocol represents type of external CA.\ntype ExternalCAProtocol string\n\n// ExternalCAProtocolCFSSL CFSSL\nconst ExternalCAProtocolCFSSL ExternalCAProtocol = \"cfssl\"\n\n// ExternalCA defines external CA to be used by the cluster.\ntype ExternalCA struct {\n\t// Protocol is the protocol used by this external CA.\n\tProtocol ExternalCAProtocol\n\n\t// URL is the URL where the external CA can be reached.\n\tURL string\n\n\t// Options is a set of additional key/value pairs whose interpretation\n\t// depends on the specified CA type.\n\tOptions map[string]string `json:\",omitempty\"`\n\n\t// CACert specifies which root CA is used by this external CA.  This certificate must\n\t// be in PEM format.\n\tCACert string\n}\n\n// InitRequest is the request used to init a swarm.\ntype InitRequest struct {\n\tListenAddr       string\n\tAdvertiseAddr    string\n\tDataPathAddr     string\n\tDataPathPort     uint32\n\tForceNewCluster  bool\n\tSpec             Spec\n\tAutoLockManagers bool\n\tAvailability     NodeAvailability\n\tDefaultAddrPool  []string\n\tSubnetSize       uint32\n}\n\n// JoinRequest is the request used to join a swarm.\ntype JoinRequest struct {\n\tListenAddr    string\n\tAdvertiseAddr string\n\tDataPathAddr  string\n\tRemoteAddrs   []string\n\tJoinToken     string // accept by secret\n\tAvailability  NodeAvailability\n}\n\n// UnlockRequest is the request used to unlock a swarm.\ntype UnlockRequest struct {\n\t// UnlockKey is the unlock key in ASCII-armored format.\n\tUnlockKey string\n}\n\n// LocalNodeState represents the state of the local node.\ntype LocalNodeState string\n\nconst (\n\t// LocalNodeStateInactive INACTIVE\n\tLocalNodeStateInactive LocalNodeState = \"inactive\"\n\t// LocalNodeStatePending PENDING\n\tLocalNodeStatePending LocalNodeState = \"pending\"\n\t// LocalNodeStateActive ACTIVE\n\tLocalNodeStateActive LocalNodeState = \"active\"\n\t// LocalNodeStateError ERROR\n\tLocalNodeStateError LocalNodeState = \"error\"\n\t// LocalNodeStateLocked LOCKED\n\tLocalNodeStateLocked LocalNodeState = \"locked\"\n)\n\n// Info represents generic information about swarm.\ntype Info struct {\n\tNodeID   string\n\tNodeAddr string\n\n\tLocalNodeState   LocalNodeState\n\tControlAvailable bool\n\tError            string\n\n\tRemoteManagers []Peer\n\tNodes          int `json:\",omitempty\"`\n\tManagers       int `json:\",omitempty\"`\n\n\tCluster *ClusterInfo `json:\",omitempty\"`\n\n\tWarnings []string `json:\",omitempty\"`\n}\n\n// Status provides information about the current swarm status and role,\n// obtained from the \"Swarm\" header in the API response.\ntype Status struct {\n\t// NodeState represents the state of the node.\n\tNodeState LocalNodeState\n\n\t// ControlAvailable indicates if the node is a swarm manager.\n\tControlAvailable bool\n}\n\n// Peer represents a peer.\ntype Peer struct {\n\tNodeID string\n\tAddr   string\n}\n\n// UpdateFlags contains flags for SwarmUpdate.\ntype UpdateFlags struct {\n\tRotateWorkerToken      bool\n\tRotateManagerToken     bool\n\tRotateManagerUnlockKey bool\n}\n\n// UnlockKeyResponse contains the response for Engine API:\n// GET /swarm/unlockkey\ntype UnlockKeyResponse struct {\n\t// UnlockKey is the unlock key in ASCII-armored format.\n\tUnlockKey string\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/swarm/task.go",
    "content": "package swarm\n\nimport (\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n)\n\n// TaskState represents the state of a task.\ntype TaskState string\n\nconst (\n\t// TaskStateNew NEW\n\tTaskStateNew TaskState = \"new\"\n\t// TaskStateAllocated ALLOCATED\n\tTaskStateAllocated TaskState = \"allocated\"\n\t// TaskStatePending PENDING\n\tTaskStatePending TaskState = \"pending\"\n\t// TaskStateAssigned ASSIGNED\n\tTaskStateAssigned TaskState = \"assigned\"\n\t// TaskStateAccepted ACCEPTED\n\tTaskStateAccepted TaskState = \"accepted\"\n\t// TaskStatePreparing PREPARING\n\tTaskStatePreparing TaskState = \"preparing\"\n\t// TaskStateReady READY\n\tTaskStateReady TaskState = \"ready\"\n\t// TaskStateStarting STARTING\n\tTaskStateStarting TaskState = \"starting\"\n\t// TaskStateRunning RUNNING\n\tTaskStateRunning TaskState = \"running\"\n\t// TaskStateComplete COMPLETE\n\tTaskStateComplete TaskState = \"complete\"\n\t// TaskStateShutdown SHUTDOWN\n\tTaskStateShutdown TaskState = \"shutdown\"\n\t// TaskStateFailed FAILED\n\tTaskStateFailed TaskState = \"failed\"\n\t// TaskStateRejected REJECTED\n\tTaskStateRejected TaskState = \"rejected\"\n\t// TaskStateRemove REMOVE\n\tTaskStateRemove TaskState = \"remove\"\n\t// TaskStateOrphaned ORPHANED\n\tTaskStateOrphaned TaskState = \"orphaned\"\n)\n\n// Task represents a task.\ntype Task struct {\n\tID string\n\tMeta\n\tAnnotations\n\n\tSpec                TaskSpec            `json:\",omitempty\"`\n\tServiceID           string              `json:\",omitempty\"`\n\tSlot                int                 `json:\",omitempty\"`\n\tNodeID              string              `json:\",omitempty\"`\n\tStatus              TaskStatus          `json:\",omitempty\"`\n\tDesiredState        TaskState           `json:\",omitempty\"`\n\tNetworksAttachments []NetworkAttachment `json:\",omitempty\"`\n\tGenericResources    []GenericResource   `json:\",omitempty\"`\n\n\t// JobIteration is the JobIteration of the Service that this Task was\n\t// spawned from, if the Service is a ReplicatedJob or GlobalJob. This is\n\t// used to determine which Tasks belong to which run of the job. This field\n\t// is absent if the Service mode is Replicated or Global.\n\tJobIteration *Version `json:\",omitempty\"`\n\n\t// Volumes is the list of VolumeAttachments for this task. It specifies\n\t// which particular volumes are to be used by this particular task, and\n\t// fulfilling what mounts in the spec.\n\tVolumes []VolumeAttachment\n}\n\n// TaskSpec represents the spec of a task.\ntype TaskSpec struct {\n\t// ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually exclusive.\n\t// PluginSpec is only used when the `Runtime` field is set to `plugin`\n\t// NetworkAttachmentSpec is used if the `Runtime` field is set to\n\t// `attachment`.\n\tContainerSpec         *ContainerSpec         `json:\",omitempty\"`\n\tPluginSpec            *RuntimeSpec           `json:\",omitempty\"`\n\tNetworkAttachmentSpec *NetworkAttachmentSpec `json:\",omitempty\"`\n\n\tResources     *ResourceRequirements     `json:\",omitempty\"`\n\tRestartPolicy *RestartPolicy            `json:\",omitempty\"`\n\tPlacement     *Placement                `json:\",omitempty\"`\n\tNetworks      []NetworkAttachmentConfig `json:\",omitempty\"`\n\n\t// LogDriver specifies the LogDriver to use for tasks created from this\n\t// spec. If not present, the one on cluster default on swarm.Spec will be\n\t// used, finally falling back to the engine default if not specified.\n\tLogDriver *Driver `json:\",omitempty\"`\n\n\t// ForceUpdate is a counter that triggers an update even if no relevant\n\t// parameters have been changed.\n\tForceUpdate uint64\n\n\tRuntime RuntimeType `json:\",omitempty\"`\n}\n\n// Resources represents resources (CPU/Memory) which can be advertised by a\n// node and requested to be reserved for a task.\ntype Resources struct {\n\tNanoCPUs         int64             `json:\",omitempty\"`\n\tMemoryBytes      int64             `json:\",omitempty\"`\n\tGenericResources []GenericResource `json:\",omitempty\"`\n}\n\n// Limit describes limits on resources which can be requested by a task.\ntype Limit struct {\n\tNanoCPUs    int64 `json:\",omitempty\"`\n\tMemoryBytes int64 `json:\",omitempty\"`\n\tPids        int64 `json:\",omitempty\"`\n}\n\n// GenericResource represents a \"user defined\" resource which can\n// be either an integer (e.g: SSD=3) or a string (e.g: SSD=sda1)\ntype GenericResource struct {\n\tNamedResourceSpec    *NamedGenericResource    `json:\",omitempty\"`\n\tDiscreteResourceSpec *DiscreteGenericResource `json:\",omitempty\"`\n}\n\n// NamedGenericResource represents a \"user defined\" resource which is defined\n// as a string.\n// \"Kind\" is used to describe the Kind of a resource (e.g: \"GPU\", \"FPGA\", \"SSD\", ...)\n// Value is used to identify the resource (GPU=\"UUID-1\", FPGA=\"/dev/sdb5\", ...)\ntype NamedGenericResource struct {\n\tKind  string `json:\",omitempty\"`\n\tValue string `json:\",omitempty\"`\n}\n\n// DiscreteGenericResource represents a \"user defined\" resource which is defined\n// as an integer\n// \"Kind\" is used to describe the Kind of a resource (e.g: \"GPU\", \"FPGA\", \"SSD\", ...)\n// Value is used to count the resource (SSD=5, HDD=3, ...)\ntype DiscreteGenericResource struct {\n\tKind  string `json:\",omitempty\"`\n\tValue int64  `json:\",omitempty\"`\n}\n\n// ResourceRequirements represents resources requirements.\ntype ResourceRequirements struct {\n\tLimits       *Limit     `json:\",omitempty\"`\n\tReservations *Resources `json:\",omitempty\"`\n}\n\n// Placement represents orchestration parameters.\ntype Placement struct {\n\tConstraints []string              `json:\",omitempty\"`\n\tPreferences []PlacementPreference `json:\",omitempty\"`\n\tMaxReplicas uint64                `json:\",omitempty\"`\n\n\t// Platforms stores all the platforms that the image can run on.\n\t// This field is used in the platform filter for scheduling. If empty,\n\t// then the platform filter is off, meaning there are no scheduling restrictions.\n\tPlatforms []Platform `json:\",omitempty\"`\n}\n\n// PlacementPreference provides a way to make the scheduler aware of factors\n// such as topology.\ntype PlacementPreference struct {\n\tSpread *SpreadOver\n}\n\n// SpreadOver is a scheduling preference that instructs the scheduler to spread\n// tasks evenly over groups of nodes identified by labels.\ntype SpreadOver struct {\n\t// label descriptor, such as engine.labels.az\n\tSpreadDescriptor string\n}\n\n// RestartPolicy represents the restart policy.\ntype RestartPolicy struct {\n\tCondition   RestartPolicyCondition `json:\",omitempty\"`\n\tDelay       *time.Duration         `json:\",omitempty\"`\n\tMaxAttempts *uint64                `json:\",omitempty\"`\n\tWindow      *time.Duration         `json:\",omitempty\"`\n}\n\n// RestartPolicyCondition represents when to restart.\ntype RestartPolicyCondition string\n\nconst (\n\t// RestartPolicyConditionNone NONE\n\tRestartPolicyConditionNone RestartPolicyCondition = \"none\"\n\t// RestartPolicyConditionOnFailure ON_FAILURE\n\tRestartPolicyConditionOnFailure RestartPolicyCondition = \"on-failure\"\n\t// RestartPolicyConditionAny ANY\n\tRestartPolicyConditionAny RestartPolicyCondition = \"any\"\n)\n\n// TaskStatus represents the status of a task.\ntype TaskStatus struct {\n\tTimestamp       time.Time        `json:\",omitempty\"`\n\tState           TaskState        `json:\",omitempty\"`\n\tMessage         string           `json:\",omitempty\"`\n\tErr             string           `json:\",omitempty\"`\n\tContainerStatus *ContainerStatus `json:\",omitempty\"`\n\tPortStatus      PortStatus       `json:\",omitempty\"`\n}\n\n// ContainerStatus represents the status of a container.\ntype ContainerStatus struct {\n\tContainerID string\n\tPID         int\n\tExitCode    int\n}\n\n// PortStatus represents the port status of a task's host ports whose\n// service has published host ports\ntype PortStatus struct {\n\tPorts []PortConfig `json:\",omitempty\"`\n}\n\n// VolumeAttachment contains the associating a Volume to a Task.\ntype VolumeAttachment struct {\n\t// ID is the Swarmkit ID of the Volume. This is not the CSI VolumeId.\n\tID string `json:\",omitempty\"`\n\n\t// Source, together with Target, indicates the Mount, as specified in the\n\t// ContainerSpec, that this volume fulfills.\n\tSource string `json:\",omitempty\"`\n\n\t// Target, together with Source, indicates the Mount, as specified\n\t// in the ContainerSpec, that this volume fulfills.\n\tTarget string `json:\",omitempty\"`\n}\n\n// TaskListOptions holds parameters to list tasks with.\ntype TaskListOptions struct {\n\tFilters filters.Args\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/system/info.go",
    "content": "package system\n\nimport (\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/registry\"\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// Info contains response of Engine API:\n// GET \"/info\"\ntype Info struct {\n\tID                string\n\tContainers        int\n\tContainersRunning int\n\tContainersPaused  int\n\tContainersStopped int\n\tImages            int\n\tDriver            string\n\tDriverStatus      [][2]string\n\tSystemStatus      [][2]string `json:\",omitempty\"` // SystemStatus is only propagated by the Swarm standalone API\n\tPlugins           PluginsInfo\n\tMemoryLimit       bool\n\tSwapLimit         bool\n\tKernelMemory      bool `json:\",omitempty\"` // Deprecated: kernel 5.4 deprecated kmem.limit_in_bytes\n\t// KernelMemoryLimit is not supported on cgroups v2.\n\t//\n\t// Deprecated: This field is deprecated and will be removed in the next release.\n\t// Starting with kernel 6.12, the kernel has deprecated kernel memory tcp accounting\n\tKernelMemoryTCP    bool `json:\",omitempty\"` // KernelMemoryTCP is not supported on cgroups v2.\n\tCPUCfsPeriod       bool `json:\"CpuCfsPeriod\"`\n\tCPUCfsQuota        bool `json:\"CpuCfsQuota\"`\n\tCPUShares          bool\n\tCPUSet             bool\n\tPidsLimit          bool\n\tIPv4Forwarding     bool\n\tDebug              bool\n\tNFd                int\n\tOomKillDisable     bool\n\tNGoroutines        int\n\tSystemTime         string\n\tLoggingDriver      string\n\tCgroupDriver       string\n\tCgroupVersion      string `json:\",omitempty\"`\n\tNEventsListener    int\n\tKernelVersion      string\n\tOperatingSystem    string\n\tOSVersion          string\n\tOSType             string\n\tArchitecture       string\n\tIndexServerAddress string\n\tRegistryConfig     *registry.ServiceConfig\n\tNCPU               int\n\tMemTotal           int64\n\tGenericResources   []swarm.GenericResource\n\tDockerRootDir      string\n\tHTTPProxy          string `json:\"HttpProxy\"`\n\tHTTPSProxy         string `json:\"HttpsProxy\"`\n\tNoProxy            string\n\tName               string\n\tLabels             []string\n\tExperimentalBuild  bool\n\tServerVersion      string\n\tRuntimes           map[string]RuntimeWithStatus\n\tDefaultRuntime     string\n\tSwarm              swarm.Info\n\t// LiveRestoreEnabled determines whether containers should be kept\n\t// running when the daemon is shutdown or upon daemon start if\n\t// running containers are detected\n\tLiveRestoreEnabled  bool\n\tIsolation           container.Isolation\n\tInitBinary          string\n\tContainerdCommit    Commit\n\tRuncCommit          Commit\n\tInitCommit          Commit\n\tSecurityOptions     []string\n\tProductLicense      string               `json:\",omitempty\"`\n\tDefaultAddressPools []NetworkAddressPool `json:\",omitempty\"`\n\tFirewallBackend     *FirewallInfo        `json:\"FirewallBackend,omitempty\"`\n\tCDISpecDirs         []string\n\tDiscoveredDevices   []DeviceInfo `json:\",omitempty\"`\n\n\tContainerd *ContainerdInfo `json:\",omitempty\"`\n\n\t// Warnings contains a slice of warnings that occurred  while collecting\n\t// system information. These warnings are intended to be informational\n\t// messages for the user, and are not intended to be parsed / used for\n\t// other purposes, as they do not have a fixed format.\n\tWarnings []string\n}\n\n// ContainerdInfo holds information about the containerd instance used by the daemon.\ntype ContainerdInfo struct {\n\t// Address is the path to the containerd socket.\n\tAddress string `json:\",omitempty\"`\n\t// Namespaces is the containerd namespaces used by the daemon.\n\tNamespaces ContainerdNamespaces\n}\n\n// ContainerdNamespaces reflects the containerd namespaces used by the daemon.\n//\n// These namespaces can be configured in the daemon configuration, and are\n// considered to be used exclusively by the daemon,\n//\n// As these namespaces are considered to be exclusively accessed\n// by the daemon, it is not recommended to change these values,\n// or to change them to a value that is used by other systems,\n// such as cri-containerd.\ntype ContainerdNamespaces struct {\n\t// Containers holds the default containerd namespace used for\n\t// containers managed by the daemon.\n\t//\n\t// The default namespace for containers is \"moby\", but will be\n\t// suffixed with the `<uid>.<gid>` of the remapped `root` if\n\t// user-namespaces are enabled and the containerd image-store\n\t// is used.\n\tContainers string\n\n\t// Plugins holds the default containerd namespace used for\n\t// plugins managed by the daemon.\n\t//\n\t// The default namespace for plugins is \"moby\", but will be\n\t// suffixed with the `<uid>.<gid>` of the remapped `root` if\n\t// user-namespaces are enabled and the containerd image-store\n\t// is used.\n\tPlugins string\n}\n\n// PluginsInfo is a temp struct holding Plugins name\n// registered with docker daemon. It is used by [Info] struct\ntype PluginsInfo struct {\n\t// List of Volume plugins registered\n\tVolume []string\n\t// List of Network plugins registered\n\tNetwork []string\n\t// List of Authorization plugins registered\n\tAuthorization []string\n\t// List of Log plugins registered\n\tLog []string\n}\n\n// Commit holds the Git-commit (SHA1) that a binary was built from, as reported\n// in the version-string of external tools, such as containerd, or runC.\ntype Commit struct {\n\t// ID is the actual commit ID or version of external tool.\n\tID string\n\n\t// Expected is the commit ID of external tool expected by dockerd as set at build time.\n\t//\n\t// Deprecated: this field is no longer used in API v1.49, but kept for backward-compatibility with older API versions.\n\tExpected string `json:\",omitempty\"`\n}\n\n// NetworkAddressPool is a temp struct used by [Info] struct.\ntype NetworkAddressPool struct {\n\tBase string\n\tSize int\n}\n\n// FirewallInfo describes the firewall backend.\ntype FirewallInfo struct {\n\t// Driver is the name of the firewall backend driver.\n\tDriver string `json:\"Driver\"`\n\t// Info is a list of label/value pairs, containing information related to the firewall.\n\tInfo [][2]string `json:\"Info,omitempty\"`\n}\n\n// DeviceInfo represents a discoverable device from a device driver.\ntype DeviceInfo struct {\n\t// Source indicates the origin device driver.\n\tSource string `json:\"Source\"`\n\t// ID is the unique identifier for the device.\n\t// Example: CDI FQDN like \"vendor.com/gpu=0\", or other driver-specific device ID\n\tID string `json:\"ID\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/system/runtime.go",
    "content": "package system\n\n// Runtime describes an OCI runtime\ntype Runtime struct {\n\t// \"Legacy\" runtime configuration for runc-compatible runtimes.\n\n\tPath string   `json:\"path,omitempty\"`\n\tArgs []string `json:\"runtimeArgs,omitempty\"`\n\n\t// Shimv2 runtime configuration. Mutually exclusive with the legacy config above.\n\n\tType    string                 `json:\"runtimeType,omitempty\"`\n\tOptions map[string]interface{} `json:\"options,omitempty\"`\n}\n\n// RuntimeWithStatus extends [Runtime] to hold [RuntimeStatus].\ntype RuntimeWithStatus struct {\n\tRuntime\n\tStatus map[string]string `json:\"status,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/system/security_opts.go",
    "content": "package system\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// SecurityOpt contains the name and options of a security option\ntype SecurityOpt struct {\n\tName    string\n\tOptions []KeyValue\n}\n\n// DecodeSecurityOptions decodes a security options string slice to a\n// type-safe [SecurityOpt].\nfunc DecodeSecurityOptions(opts []string) ([]SecurityOpt, error) {\n\tso := []SecurityOpt{}\n\tfor _, opt := range opts {\n\t\t// support output from a < 1.13 docker daemon\n\t\tif !strings.Contains(opt, \"=\") {\n\t\t\tso = append(so, SecurityOpt{Name: opt})\n\t\t\tcontinue\n\t\t}\n\t\tsecopt := SecurityOpt{}\n\t\tfor _, s := range strings.Split(opt, \",\") {\n\t\t\tk, v, ok := strings.Cut(s, \"=\")\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(\"invalid security option %q\", s)\n\t\t\t}\n\t\t\tif k == \"\" || v == \"\" {\n\t\t\t\treturn nil, errors.New(\"invalid empty security option\")\n\t\t\t}\n\t\t\tif k == \"name\" {\n\t\t\t\tsecopt.Name = v\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsecopt.Options = append(secopt.Options, KeyValue{Key: k, Value: v})\n\t\t}\n\t\tso = append(so, secopt)\n\t}\n\treturn so, nil\n}\n\n// KeyValue holds a key/value pair.\ntype KeyValue struct {\n\tKey, Value string\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/time/timestamp.go",
    "content": "package time\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// These are additional predefined layouts for use in Time.Format and Time.Parse\n// with --since and --until parameters for `docker logs` and `docker events`\nconst (\n\trFC3339Local     = \"2006-01-02T15:04:05\"           // RFC3339 with local timezone\n\trFC3339NanoLocal = \"2006-01-02T15:04:05.999999999\" // RFC3339Nano with local timezone\n\tdateWithZone     = \"2006-01-02Z07:00\"              // RFC3339 with time at 00:00:00\n\tdateLocal        = \"2006-01-02\"                    // RFC3339 with local timezone and time at 00:00:00\n)\n\n// GetTimestamp tries to parse given string as golang duration,\n// then RFC3339 time and finally as a Unix timestamp. If\n// any of these were successful, it returns a Unix timestamp\n// as string otherwise returns the given value back.\n// In case of duration input, the returned timestamp is computed\n// as the given reference time minus the amount of the duration.\nfunc GetTimestamp(value string, reference time.Time) (string, error) {\n\tif d, err := time.ParseDuration(value); value != \"0\" && err == nil {\n\t\treturn strconv.FormatInt(reference.Add(-d).Unix(), 10), nil\n\t}\n\n\tvar format string\n\t// if the string has a Z or a + or three dashes use parse otherwise use parseinlocation\n\tparseInLocation := !strings.ContainsAny(value, \"zZ+\") && strings.Count(value, \"-\") != 3\n\n\tif strings.Contains(value, \".\") {\n\t\tif parseInLocation {\n\t\t\tformat = rFC3339NanoLocal\n\t\t} else {\n\t\t\tformat = time.RFC3339Nano\n\t\t}\n\t} else if strings.Contains(value, \"T\") {\n\t\t// we want the number of colons in the T portion of the timestamp\n\t\ttcolons := strings.Count(value, \":\")\n\t\t// if parseInLocation is off and we have a +/- zone offset (not Z) then\n\t\t// there will be an extra colon in the input for the tz offset subtract that\n\t\t// colon from the tcolons count\n\t\tif !parseInLocation && !strings.ContainsAny(value, \"zZ\") && tcolons > 0 {\n\t\t\ttcolons--\n\t\t}\n\t\tif parseInLocation {\n\t\t\tswitch tcolons {\n\t\t\tcase 0:\n\t\t\t\tformat = \"2006-01-02T15\"\n\t\t\tcase 1:\n\t\t\t\tformat = \"2006-01-02T15:04\"\n\t\t\tdefault:\n\t\t\t\tformat = rFC3339Local\n\t\t\t}\n\t\t} else {\n\t\t\tswitch tcolons {\n\t\t\tcase 0:\n\t\t\t\tformat = \"2006-01-02T15Z07:00\"\n\t\t\tcase 1:\n\t\t\t\tformat = \"2006-01-02T15:04Z07:00\"\n\t\t\tdefault:\n\t\t\t\tformat = time.RFC3339\n\t\t\t}\n\t\t}\n\t} else if parseInLocation {\n\t\tformat = dateLocal\n\t} else {\n\t\tformat = dateWithZone\n\t}\n\n\tvar t time.Time\n\tvar err error\n\n\tif parseInLocation {\n\t\tt, err = time.ParseInLocation(format, value, time.FixedZone(reference.Zone()))\n\t} else {\n\t\tt, err = time.Parse(format, value)\n\t}\n\n\tif err != nil {\n\t\t// if there is a `-` then it's an RFC3339 like timestamp\n\t\tif strings.Contains(value, \"-\") {\n\t\t\treturn \"\", err // was probably an RFC3339 like timestamp but the parser failed with an error\n\t\t}\n\t\tif _, _, err := parseTimestamp(value); err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"failed to parse value as time or duration: %q\", value)\n\t\t}\n\t\treturn value, nil // unix timestamp in and out case (meaning: the value passed at the command line is already in the right format for passing to the server)\n\t}\n\n\treturn fmt.Sprintf(\"%d.%09d\", t.Unix(), int64(t.Nanosecond())), nil\n}\n\n// ParseTimestamps returns seconds and nanoseconds from a timestamp that has\n// the format (\"%d.%09d\", time.Unix(), int64(time.Nanosecond())).\n// If the incoming nanosecond portion is longer than 9 digits it is truncated.\n// The expectation is that the seconds and nanoseconds will be used to create a\n// time variable.  For example:\n//\n//\tseconds, nanoseconds, _ := ParseTimestamp(\"1136073600.000000001\",0)\n//\tsince := time.Unix(seconds, nanoseconds)\n//\n// returns seconds as defaultSeconds if value == \"\"\nfunc ParseTimestamps(value string, defaultSeconds int64) (seconds int64, nanoseconds int64, _ error) {\n\tif value == \"\" {\n\t\treturn defaultSeconds, 0, nil\n\t}\n\treturn parseTimestamp(value)\n}\n\nfunc parseTimestamp(value string) (seconds int64, nanoseconds int64, _ error) {\n\ts, n, ok := strings.Cut(value, \".\")\n\tsec, err := strconv.ParseInt(s, 10, 64)\n\tif err != nil {\n\t\treturn sec, 0, err\n\t}\n\tif !ok {\n\t\treturn sec, 0, nil\n\t}\n\tnsec, err := strconv.ParseInt(n, 10, 64)\n\tif err != nil {\n\t\treturn sec, nsec, err\n\t}\n\t// should already be in nanoseconds but just in case convert n to nanoseconds\n\tnsec = int64(float64(nsec) * math.Pow(float64(10), float64(9-len(n))))\n\treturn sec, nsec, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/types.go",
    "content": "package types\n\nimport (\n\t\"github.com/docker/docker/api/types/build\"\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/image\"\n\t\"github.com/docker/docker/api/types/swarm\"\n\t\"github.com/docker/docker/api/types/volume\"\n)\n\nconst (\n\t// MediaTypeRawStream is vendor specific MIME-Type set for raw TTY streams\n\tMediaTypeRawStream = \"application/vnd.docker.raw-stream\"\n\n\t// MediaTypeMultiplexedStream is vendor specific MIME-Type set for stdin/stdout/stderr multiplexed streams\n\tMediaTypeMultiplexedStream = \"application/vnd.docker.multiplexed-stream\"\n)\n\n// Ping contains response of Engine API:\n// GET \"/_ping\"\ntype Ping struct {\n\tAPIVersion     string\n\tOSType         string\n\tExperimental   bool\n\tBuilderVersion build.BuilderVersion\n\n\t// SwarmStatus provides information about the current swarm status of the\n\t// engine, obtained from the \"Swarm\" header in the API response.\n\t//\n\t// It can be a nil struct if the API version does not provide this header\n\t// in the ping response, or if an error occurred, in which case the client\n\t// should use other ways to get the current swarm status, such as the /swarm\n\t// endpoint.\n\tSwarmStatus *swarm.Status\n}\n\n// ComponentVersion describes the version information for a specific component.\ntype ComponentVersion struct {\n\tName    string\n\tVersion string\n\tDetails map[string]string `json:\",omitempty\"`\n}\n\n// Version contains response of Engine API:\n// GET \"/version\"\ntype Version struct {\n\tPlatform   struct{ Name string } `json:\",omitempty\"`\n\tComponents []ComponentVersion    `json:\",omitempty\"`\n\n\t// The following fields are deprecated, they relate to the Engine component and are kept for backwards compatibility\n\n\tVersion       string\n\tAPIVersion    string `json:\"ApiVersion\"`\n\tMinAPIVersion string `json:\"MinAPIVersion,omitempty\"`\n\tGitCommit     string\n\tGoVersion     string\n\tOs            string\n\tArch          string\n\tKernelVersion string `json:\",omitempty\"`\n\tExperimental  bool   `json:\",omitempty\"`\n\tBuildTime     string `json:\",omitempty\"`\n}\n\n// DiskUsageObject represents an object type used for disk usage query filtering.\ntype DiskUsageObject string\n\nconst (\n\t// ContainerObject represents a container DiskUsageObject.\n\tContainerObject DiskUsageObject = \"container\"\n\t// ImageObject represents an image DiskUsageObject.\n\tImageObject DiskUsageObject = \"image\"\n\t// VolumeObject represents a volume DiskUsageObject.\n\tVolumeObject DiskUsageObject = \"volume\"\n\t// BuildCacheObject represents a build-cache DiskUsageObject.\n\tBuildCacheObject DiskUsageObject = \"build-cache\"\n)\n\n// DiskUsageOptions holds parameters for system disk usage query.\ntype DiskUsageOptions struct {\n\t// Types specifies what object types to include in the response. If empty,\n\t// all object types are returned.\n\tTypes []DiskUsageObject\n}\n\n// DiskUsage contains response of Engine API:\n// GET \"/system/df\"\ntype DiskUsage struct {\n\tLayersSize  int64\n\tImages      []*image.Summary\n\tContainers  []*container.Summary\n\tVolumes     []*volume.Volume\n\tBuildCache  []*build.CacheRecord\n\tBuilderSize int64 `json:\",omitempty\"` // Deprecated: deprecated in API 1.38, and no longer used since API 1.40.\n}\n\n// PushResult contains the tag, manifest digest, and manifest size from the\n// push. It's used to signal this information to the trust code in the client\n// so it can sign the manifest if necessary.\ntype PushResult struct {\n\tTag    string\n\tDigest string\n\tSize   int\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/types_deprecated.go",
    "content": "package types\n\nimport (\n\t\"context\"\n\n\t\"github.com/docker/docker/api/types/build\"\n\t\"github.com/docker/docker/api/types/common\"\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/image\"\n\t\"github.com/docker/docker/api/types/storage\"\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// IDResponse Response to an API call that returns just an Id.\n//\n// Deprecated: use either [container.CommitResponse] or [container.ExecCreateResponse]. It will be removed in the next release.\ntype IDResponse = common.IDResponse\n\n// ContainerJSONBase contains response of Engine API GET \"/containers/{name:.*}/json\"\n// for API version 1.18 and older.\n//\n// Deprecated: use [container.InspectResponse] or [container.ContainerJSONBase]. It will be removed in the next release.\ntype ContainerJSONBase = container.ContainerJSONBase\n\n// ContainerJSON is the response for the GET \"/containers/{name:.*}/json\"\n// endpoint.\n//\n// Deprecated: use [container.InspectResponse]. It will be removed in the next release.\ntype ContainerJSON = container.InspectResponse\n\n// Container contains response of Engine API:\n// GET \"/containers/json\"\n//\n// Deprecated: use [container.Summary].\ntype Container = container.Summary\n\n// ContainerState stores container's running state\n//\n// Deprecated: use [container.State].\ntype ContainerState = container.State\n\n// NetworkSettings exposes the network settings in the api.\n//\n// Deprecated: use [container.NetworkSettings].\ntype NetworkSettings = container.NetworkSettings\n\n// NetworkSettingsBase holds networking state for a container when inspecting it.\n//\n// Deprecated: [container.NetworkSettingsBase] will be removed in v29. Prefer\n// accessing the fields it contains through [container.NetworkSettings].\ntype NetworkSettingsBase = container.NetworkSettingsBase //nolint:staticcheck // ignore SA1019: NetworkSettingsBase is deprecated in v28.4.\n\n// DefaultNetworkSettings holds network information\n// during the 2 release deprecation period.\n// It will be removed in Docker 1.11.\n//\n// Deprecated: use [container.DefaultNetworkSettings].\ntype DefaultNetworkSettings = container.DefaultNetworkSettings //nolint:staticcheck // ignore SA1019: DefaultNetworkSettings is deprecated in v28.4.\n\n// SummaryNetworkSettings provides a summary of container's networks\n// in /containers/json.\n//\n// Deprecated: use [container.NetworkSettingsSummary].\ntype SummaryNetworkSettings = container.NetworkSettingsSummary\n\n// Health states\nconst (\n\tNoHealthcheck = container.NoHealthcheck // Deprecated: use [container.NoHealthcheck].\n\tStarting      = container.Starting      // Deprecated: use [container.Starting].\n\tHealthy       = container.Healthy       // Deprecated: use [container.Healthy].\n\tUnhealthy     = container.Unhealthy     // Deprecated: use [container.Unhealthy].\n)\n\n// Health stores information about the container's healthcheck results.\n//\n// Deprecated: use [container.Health].\ntype Health = container.Health\n\n// HealthcheckResult stores information about a single run of a healthcheck probe.\n//\n// Deprecated: use [container.HealthcheckResult].\ntype HealthcheckResult = container.HealthcheckResult\n\n// MountPoint represents a mount point configuration inside the container.\n// This is used for reporting the mountpoints in use by a container.\n//\n// Deprecated: use [container.MountPoint].\ntype MountPoint = container.MountPoint\n\n// Port An open port on a container\n//\n// Deprecated: use [container.Port].\ntype Port = container.Port\n\n// GraphDriverData Information about the storage driver used to store the container's and\n// image's filesystem.\n//\n// Deprecated: use [storage.DriverData].\ntype GraphDriverData = storage.DriverData\n\n// RootFS returns Image's RootFS description including the layer IDs.\n//\n// Deprecated: use [image.RootFS].\ntype RootFS = image.RootFS\n\n// ImageInspect contains response of Engine API:\n// GET \"/images/{name:.*}/json\"\n//\n// Deprecated: use [image.InspectResponse].\ntype ImageInspect = image.InspectResponse\n\n// RequestPrivilegeFunc is a function interface that clients can supply to\n// retry operations after getting an authorization error.\n// This function returns the registry authentication header value in base64\n// format, or an error if the privilege request fails.\n//\n// Deprecated: moved to [github.com/docker/docker/api/types/registry.RequestAuthConfig].\ntype RequestPrivilegeFunc func(context.Context) (string, error)\n\n// SecretCreateResponse contains the information returned to a client\n// on the creation of a new secret.\n//\n// Deprecated: use [swarm.SecretCreateResponse].\ntype SecretCreateResponse = swarm.SecretCreateResponse\n\n// SecretListOptions holds parameters to list secrets\n//\n// Deprecated: use [swarm.SecretListOptions].\ntype SecretListOptions = swarm.SecretListOptions\n\n// ConfigCreateResponse contains the information returned to a client\n// on the creation of a new config.\n//\n// Deprecated: use [swarm.ConfigCreateResponse].\ntype ConfigCreateResponse = swarm.ConfigCreateResponse\n\n// ConfigListOptions holds parameters to list configs\n//\n// Deprecated: use [swarm.ConfigListOptions].\ntype ConfigListOptions = swarm.ConfigListOptions\n\n// NodeListOptions holds parameters to list nodes with.\n//\n// Deprecated: use [swarm.NodeListOptions].\ntype NodeListOptions = swarm.NodeListOptions\n\n// NodeRemoveOptions holds parameters to remove nodes with.\n//\n// Deprecated: use [swarm.NodeRemoveOptions].\ntype NodeRemoveOptions = swarm.NodeRemoveOptions\n\n// TaskListOptions holds parameters to list tasks with.\n//\n// Deprecated: use [swarm.TaskListOptions].\ntype TaskListOptions = swarm.TaskListOptions\n\n// ServiceCreateOptions contains the options to use when creating a service.\n//\n// Deprecated: use [swarm.ServiceCreateOptions].\ntype ServiceCreateOptions = swarm.ServiceCreateOptions\n\n// ServiceUpdateOptions contains the options to be used for updating services.\n//\n// Deprecated: use [swarm.ServiceCreateOptions].\ntype ServiceUpdateOptions = swarm.ServiceUpdateOptions\n\nconst (\n\tRegistryAuthFromSpec         = swarm.RegistryAuthFromSpec         // Deprecated: use [swarm.RegistryAuthFromSpec].\n\tRegistryAuthFromPreviousSpec = swarm.RegistryAuthFromPreviousSpec // Deprecated: use [swarm.RegistryAuthFromPreviousSpec].\n)\n\n// ServiceListOptions holds parameters to list services with.\n//\n// Deprecated: use [swarm.ServiceListOptions].\ntype ServiceListOptions = swarm.ServiceListOptions\n\n// ServiceInspectOptions holds parameters related to the \"service inspect\"\n// operation.\n//\n// Deprecated: use [swarm.ServiceInspectOptions].\ntype ServiceInspectOptions = swarm.ServiceInspectOptions\n\n// SwarmUnlockKeyResponse contains the response for Engine API:\n// GET /swarm/unlockkey\n//\n// Deprecated: use [swarm.UnlockKeyResponse].\ntype SwarmUnlockKeyResponse = swarm.UnlockKeyResponse\n\n// BuildCache contains information about a build cache record.\n//\n// Deprecated: deprecated in API 1.49. Use [build.CacheRecord] instead.\ntype BuildCache = build.CacheRecord\n\n// BuildCachePruneOptions hold parameters to prune the build cache\n//\n// Deprecated: use [build.CachePruneOptions].\ntype BuildCachePruneOptions = build.CachePruneOptions\n\n// BuildCachePruneReport contains the response for Engine API:\n// POST \"/build/prune\"\n//\n// Deprecated: use [build.CachePruneReport].\ntype BuildCachePruneReport = build.CachePruneReport\n\n// BuildResult contains the image id of a successful build/\n//\n// Deprecated: use [build.Result].\ntype BuildResult = build.Result\n\n// ImageBuildOptions holds the information\n// necessary to build images.\n//\n// Deprecated: use [build.ImageBuildOptions].\ntype ImageBuildOptions = build.ImageBuildOptions\n\n// ImageBuildOutput defines configuration for exporting a build result\n//\n// Deprecated: use [build.ImageBuildOutput].\ntype ImageBuildOutput = build.ImageBuildOutput\n\n// ImageBuildResponse holds information\n// returned by a server after building\n// an image.\n//\n// Deprecated: use [build.ImageBuildResponse].\ntype ImageBuildResponse = build.ImageBuildResponse\n\n// BuilderVersion sets the version of underlying builder to use\n//\n// Deprecated: use [build.BuilderVersion].\ntype BuilderVersion = build.BuilderVersion\n\nconst (\n\t// BuilderV1 is the first generation builder in docker daemon\n\t//\n\t// Deprecated: use [build.BuilderV1].\n\tBuilderV1 = build.BuilderV1\n\t// BuilderBuildKit is builder based on moby/buildkit project\n\t//\n\t// Deprecated: use [build.BuilderBuildKit].\n\tBuilderBuildKit = build.BuilderBuildKit\n)\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/versions/compare.go",
    "content": "package versions\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\n// compare compares two version strings\n// returns -1 if v1 < v2, 1 if v1 > v2, 0 otherwise.\nfunc compare(v1, v2 string) int {\n\tif v1 == v2 {\n\t\treturn 0\n\t}\n\tvar (\n\t\tcurrTab  = strings.Split(v1, \".\")\n\t\totherTab = strings.Split(v2, \".\")\n\t)\n\n\tmaxVer := len(currTab)\n\tif len(otherTab) > maxVer {\n\t\tmaxVer = len(otherTab)\n\t}\n\tfor i := 0; i < maxVer; i++ {\n\t\tvar currInt, otherInt int\n\n\t\tif len(currTab) > i {\n\t\t\tcurrInt, _ = strconv.Atoi(currTab[i])\n\t\t}\n\t\tif len(otherTab) > i {\n\t\t\totherInt, _ = strconv.Atoi(otherTab[i])\n\t\t}\n\t\tif currInt > otherInt {\n\t\t\treturn 1\n\t\t}\n\t\tif otherInt > currInt {\n\t\t\treturn -1\n\t\t}\n\t}\n\treturn 0\n}\n\n// LessThan checks if a version is less than another\nfunc LessThan(v, other string) bool {\n\treturn compare(v, other) == -1\n}\n\n// LessThanOrEqualTo checks if a version is less than or equal to another\nfunc LessThanOrEqualTo(v, other string) bool {\n\treturn compare(v, other) <= 0\n}\n\n// GreaterThan checks if a version is greater than another\nfunc GreaterThan(v, other string) bool {\n\treturn compare(v, other) == 1\n}\n\n// GreaterThanOrEqualTo checks if a version is greater than or equal to another\nfunc GreaterThanOrEqualTo(v, other string) bool {\n\treturn compare(v, other) >= 0\n}\n\n// Equal checks if a version is equal to another\nfunc Equal(v, other string) bool {\n\treturn compare(v, other) == 0\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/volume/cluster_volume.go",
    "content": "package volume\n\nimport (\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// ClusterVolume contains options and information specific to, and only present\n// on, Swarm CSI cluster volumes.\ntype ClusterVolume struct {\n\t// ID is the Swarm ID of the volume. Because cluster volumes are Swarm\n\t// objects, they have an ID, unlike non-cluster volumes, which only have a\n\t// Name. This ID can be used to refer to the cluster volume.\n\tID string\n\n\t// Meta is the swarm metadata about this volume.\n\tswarm.Meta\n\n\t// Spec is the cluster-specific options from which this volume is derived.\n\tSpec ClusterVolumeSpec\n\n\t// PublishStatus contains the status of the volume as it pertains to its\n\t// publishing on Nodes.\n\tPublishStatus []*PublishStatus `json:\",omitempty\"`\n\n\t// Info is information about the global status of the volume.\n\tInfo *Info `json:\",omitempty\"`\n}\n\n// ClusterVolumeSpec contains the spec used to create this volume.\ntype ClusterVolumeSpec struct {\n\t// Group defines the volume group of this volume. Volumes belonging to the\n\t// same group can be referred to by group name when creating Services.\n\t// Referring to a volume by group instructs swarm to treat volumes in that\n\t// group interchangeably for the purpose of scheduling. Volumes with an\n\t// empty string for a group technically all belong to the same, emptystring\n\t// group.\n\tGroup string `json:\",omitempty\"`\n\n\t// AccessMode defines how the volume is used by tasks.\n\tAccessMode *AccessMode `json:\",omitempty\"`\n\n\t// AccessibilityRequirements specifies where in the cluster a volume must\n\t// be accessible from.\n\t//\n\t// This field must be empty if the plugin does not support\n\t// VOLUME_ACCESSIBILITY_CONSTRAINTS capabilities. If it is present but the\n\t// plugin does not support it, volume will not be created.\n\t//\n\t// If AccessibilityRequirements is empty, but the plugin does support\n\t// VOLUME_ACCESSIBILITY_CONSTRAINTS, then Swarmkit will assume the entire\n\t// cluster is a valid target for the volume.\n\tAccessibilityRequirements *TopologyRequirement `json:\",omitempty\"`\n\n\t// CapacityRange defines the desired capacity that the volume should be\n\t// created with. If nil, the plugin will decide the capacity.\n\tCapacityRange *CapacityRange `json:\",omitempty\"`\n\n\t// Secrets defines Swarm Secrets that are passed to the CSI storage plugin\n\t// when operating on this volume.\n\tSecrets []Secret `json:\",omitempty\"`\n\n\t// Availability is the Volume's desired availability. Analogous to Node\n\t// Availability, this allows the user to take volumes offline in order to\n\t// update or delete them.\n\tAvailability Availability `json:\",omitempty\"`\n}\n\n// Availability specifies the availability of the volume.\ntype Availability string\n\nconst (\n\t// AvailabilityActive indicates that the volume is active and fully\n\t// schedulable on the cluster.\n\tAvailabilityActive Availability = \"active\"\n\n\t// AvailabilityPause indicates that no new workloads should use the\n\t// volume, but existing workloads can continue to use it.\n\tAvailabilityPause Availability = \"pause\"\n\n\t// AvailabilityDrain indicates that all workloads using this volume\n\t// should be rescheduled, and the volume unpublished from all nodes.\n\tAvailabilityDrain Availability = \"drain\"\n)\n\n// AccessMode defines the access mode of a volume.\ntype AccessMode struct {\n\t// Scope defines the set of nodes this volume can be used on at one time.\n\tScope Scope `json:\",omitempty\"`\n\n\t// Sharing defines the number and way that different tasks can use this\n\t// volume at one time.\n\tSharing SharingMode `json:\",omitempty\"`\n\n\t// MountVolume defines options for using this volume as a Mount-type\n\t// volume.\n\t//\n\t// Either BlockVolume or MountVolume, but not both, must be present.\n\tMountVolume *TypeMount `json:\",omitempty\"`\n\n\t// BlockVolume defines options for using this volume as a Block-type\n\t// volume.\n\t//\n\t// Either BlockVolume or MountVolume, but not both, must be present.\n\tBlockVolume *TypeBlock `json:\",omitempty\"`\n}\n\n// Scope defines the Scope of a Cluster Volume. This is how many nodes a\n// Volume can be accessed simultaneously on.\ntype Scope string\n\nconst (\n\t// ScopeSingleNode indicates the volume can be used on one node at a\n\t// time.\n\tScopeSingleNode Scope = \"single\"\n\n\t// ScopeMultiNode indicates the volume can be used on many nodes at\n\t// the same time.\n\tScopeMultiNode Scope = \"multi\"\n)\n\n// SharingMode defines the Sharing of a Cluster Volume. This is how Tasks using a\n// Volume at the same time can use it.\ntype SharingMode string\n\nconst (\n\t// SharingNone indicates that only one Task may use the Volume at a\n\t// time.\n\tSharingNone SharingMode = \"none\"\n\n\t// SharingReadOnly indicates that the Volume may be shared by any\n\t// number of Tasks, but they must be read-only.\n\tSharingReadOnly SharingMode = \"readonly\"\n\n\t// SharingOneWriter indicates that the Volume may be shared by any\n\t// number of Tasks, but all after the first must be read-only.\n\tSharingOneWriter SharingMode = \"onewriter\"\n\n\t// SharingAll means that the Volume may be shared by any number of\n\t// Tasks, as readers or writers.\n\tSharingAll SharingMode = \"all\"\n)\n\n// TypeBlock defines options for using a volume as a block-type volume.\n//\n// Intentionally empty.\ntype TypeBlock struct{}\n\n// TypeMount contains options for using a volume as a Mount-type\n// volume.\ntype TypeMount struct {\n\t// FsType specifies the filesystem type for the mount volume. Optional.\n\tFsType string `json:\",omitempty\"`\n\n\t// MountFlags defines flags to pass when mounting the volume. Optional.\n\tMountFlags []string `json:\",omitempty\"`\n}\n\n// TopologyRequirement expresses the user's requirements for a volume's\n// accessible topology.\ntype TopologyRequirement struct {\n\t// Requisite specifies a list of Topologies, at least one of which the\n\t// volume must be accessible from.\n\t//\n\t// Taken verbatim from the CSI Spec:\n\t//\n\t// Specifies the list of topologies the provisioned volume MUST be\n\t// accessible from.\n\t// This field is OPTIONAL. If TopologyRequirement is specified either\n\t// requisite or preferred or both MUST be specified.\n\t//\n\t// If requisite is specified, the provisioned volume MUST be\n\t// accessible from at least one of the requisite topologies.\n\t//\n\t// Given\n\t//   x = number of topologies provisioned volume is accessible from\n\t//   n = number of requisite topologies\n\t// The CO MUST ensure n >= 1. The SP MUST ensure x >= 1\n\t// If x==n, then the SP MUST make the provisioned volume available to\n\t// all topologies from the list of requisite topologies. If it is\n\t// unable to do so, the SP MUST fail the CreateVolume call.\n\t// For example, if a volume should be accessible from a single zone,\n\t// and requisite =\n\t//   {\"region\": \"R1\", \"zone\": \"Z2\"}\n\t// then the provisioned volume MUST be accessible from the \"region\"\n\t// \"R1\" and the \"zone\" \"Z2\".\n\t// Similarly, if a volume should be accessible from two zones, and\n\t// requisite =\n\t//   {\"region\": \"R1\", \"zone\": \"Z2\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z3\"}\n\t// then the provisioned volume MUST be accessible from the \"region\"\n\t// \"R1\" and both \"zone\" \"Z2\" and \"zone\" \"Z3\".\n\t//\n\t// If x<n, then the SP SHALL choose x unique topologies from the list\n\t// of requisite topologies. If it is unable to do so, the SP MUST fail\n\t// the CreateVolume call.\n\t// For example, if a volume should be accessible from a single zone,\n\t// and requisite =\n\t//   {\"region\": \"R1\", \"zone\": \"Z2\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z3\"}\n\t// then the SP may choose to make the provisioned volume available in\n\t// either the \"zone\" \"Z2\" or the \"zone\" \"Z3\" in the \"region\" \"R1\".\n\t// Similarly, if a volume should be accessible from two zones, and\n\t// requisite =\n\t//   {\"region\": \"R1\", \"zone\": \"Z2\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z3\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z4\"}\n\t// then the provisioned volume MUST be accessible from any combination\n\t// of two unique topologies: e.g. \"R1/Z2\" and \"R1/Z3\", or \"R1/Z2\" and\n\t//  \"R1/Z4\", or \"R1/Z3\" and \"R1/Z4\".\n\t//\n\t// If x>n, then the SP MUST make the provisioned volume available from\n\t// all topologies from the list of requisite topologies and MAY choose\n\t// the remaining x-n unique topologies from the list of all possible\n\t// topologies. If it is unable to do so, the SP MUST fail the\n\t// CreateVolume call.\n\t// For example, if a volume should be accessible from two zones, and\n\t// requisite =\n\t//   {\"region\": \"R1\", \"zone\": \"Z2\"}\n\t// then the provisioned volume MUST be accessible from the \"region\"\n\t// \"R1\" and the \"zone\" \"Z2\" and the SP may select the second zone\n\t// independently, e.g. \"R1/Z4\".\n\tRequisite []Topology `json:\",omitempty\"`\n\n\t// Preferred is a list of Topologies that the volume should attempt to be\n\t// provisioned in.\n\t//\n\t// Taken from the CSI spec:\n\t//\n\t// Specifies the list of topologies the CO would prefer the volume to\n\t// be provisioned in.\n\t//\n\t// This field is OPTIONAL. If TopologyRequirement is specified either\n\t// requisite or preferred or both MUST be specified.\n\t//\n\t// An SP MUST attempt to make the provisioned volume available using\n\t// the preferred topologies in order from first to last.\n\t//\n\t// If requisite is specified, all topologies in preferred list MUST\n\t// also be present in the list of requisite topologies.\n\t//\n\t// If the SP is unable to make the provisioned volume available\n\t// from any of the preferred topologies, the SP MAY choose a topology\n\t// from the list of requisite topologies.\n\t// If the list of requisite topologies is not specified, then the SP\n\t// MAY choose from the list of all possible topologies.\n\t// If the list of requisite topologies is specified and the SP is\n\t// unable to make the provisioned volume available from any of the\n\t// requisite topologies it MUST fail the CreateVolume call.\n\t//\n\t// Example 1:\n\t// Given a volume should be accessible from a single zone, and\n\t// requisite =\n\t//   {\"region\": \"R1\", \"zone\": \"Z2\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z3\"}\n\t// preferred =\n\t//   {\"region\": \"R1\", \"zone\": \"Z3\"}\n\t// then the SP SHOULD first attempt to make the provisioned volume\n\t// available from \"zone\" \"Z3\" in the \"region\" \"R1\" and fall back to\n\t// \"zone\" \"Z2\" in the \"region\" \"R1\" if that is not possible.\n\t//\n\t// Example 2:\n\t// Given a volume should be accessible from a single zone, and\n\t// requisite =\n\t//   {\"region\": \"R1\", \"zone\": \"Z2\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z3\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z4\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z5\"}\n\t// preferred =\n\t//   {\"region\": \"R1\", \"zone\": \"Z4\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z2\"}\n\t// then the SP SHOULD first attempt to make the provisioned volume\n\t// accessible from \"zone\" \"Z4\" in the \"region\" \"R1\" and fall back to\n\t// \"zone\" \"Z2\" in the \"region\" \"R1\" if that is not possible. If that\n\t// is not possible, the SP may choose between either the \"zone\"\n\t// \"Z3\" or \"Z5\" in the \"region\" \"R1\".\n\t//\n\t// Example 3:\n\t// Given a volume should be accessible from TWO zones (because an\n\t// opaque parameter in CreateVolumeRequest, for example, specifies\n\t// the volume is accessible from two zones, aka synchronously\n\t// replicated), and\n\t// requisite =\n\t//   {\"region\": \"R1\", \"zone\": \"Z2\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z3\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z4\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z5\"}\n\t// preferred =\n\t//   {\"region\": \"R1\", \"zone\": \"Z5\"},\n\t//   {\"region\": \"R1\", \"zone\": \"Z3\"}\n\t// then the SP SHOULD first attempt to make the provisioned volume\n\t// accessible from the combination of the two \"zones\" \"Z5\" and \"Z3\" in\n\t// the \"region\" \"R1\". If that's not possible, it should fall back to\n\t// a combination of \"Z5\" and other possibilities from the list of\n\t// requisite. If that's not possible, it should fall back  to a\n\t// combination of \"Z3\" and other possibilities from the list of\n\t// requisite. If that's not possible, it should fall back  to a\n\t// combination of other possibilities from the list of requisite.\n\tPreferred []Topology `json:\",omitempty\"`\n}\n\n// Topology is a map of topological domains to topological segments.\n//\n// This description is taken verbatim from the CSI Spec:\n//\n// A topological domain is a sub-division of a cluster, like \"region\",\n// \"zone\", \"rack\", etc.\n// A topological segment is a specific instance of a topological domain,\n// like \"zone3\", \"rack3\", etc.\n// For example {\"com.company/zone\": \"Z1\", \"com.company/rack\": \"R3\"}\n// Valid keys have two segments: an OPTIONAL prefix and name, separated\n// by a slash (/), for example: \"com.company.example/zone\".\n// The key name segment is REQUIRED. The prefix is OPTIONAL.\n// The key name MUST be 63 characters or less, begin and end with an\n// alphanumeric character ([a-z0-9A-Z]), and contain only dashes (-),\n// underscores (_), dots (.), or alphanumerics in between, for example\n// \"zone\".\n// The key prefix MUST be 63 characters or less, begin and end with a\n// lower-case alphanumeric character ([a-z0-9]), contain only\n// dashes (-), dots (.), or lower-case alphanumerics in between, and\n// follow domain name notation format\n// (https://tools.ietf.org/html/rfc1035#section-2.3.1).\n// The key prefix SHOULD include the plugin's host company name and/or\n// the plugin name, to minimize the possibility of collisions with keys\n// from other plugins.\n// If a key prefix is specified, it MUST be identical across all\n// topology keys returned by the SP (across all RPCs).\n// Keys MUST be case-insensitive. Meaning the keys \"Zone\" and \"zone\"\n// MUST not both exist.\n// Each value (topological segment) MUST contain 1 or more strings.\n// Each string MUST be 63 characters or less and begin and end with an\n// alphanumeric character with '-', '_', '.', or alphanumerics in\n// between.\ntype Topology struct {\n\tSegments map[string]string `json:\",omitempty\"`\n}\n\n// CapacityRange describes the minimum and maximum capacity a volume should be\n// created with\ntype CapacityRange struct {\n\t// RequiredBytes specifies that a volume must be at least this big. The\n\t// value of 0 indicates an unspecified minimum.\n\tRequiredBytes int64\n\n\t// LimitBytes specifies that a volume must not be bigger than this. The\n\t// value of 0 indicates an unspecified maximum\n\tLimitBytes int64\n}\n\n// Secret represents a Swarm Secret value that must be passed to the CSI\n// storage plugin when operating on this Volume. It represents one key-value\n// pair of possibly many.\ntype Secret struct {\n\t// Key is the name of the key of the key-value pair passed to the plugin.\n\tKey string\n\n\t// Secret is the swarm Secret object from which to read data. This can be a\n\t// Secret name or ID. The Secret data is retrieved by Swarm and used as the\n\t// value of the key-value pair passed to the plugin.\n\tSecret string\n}\n\n// PublishState represents the state of a Volume as it pertains to its\n// use on a particular Node.\ntype PublishState string\n\nconst (\n\t// StatePending indicates that the volume should be published on\n\t// this node, but the call to ControllerPublishVolume has not been\n\t// successfully completed yet and the result recorded by swarmkit.\n\tStatePending PublishState = \"pending-publish\"\n\n\t// StatePublished means the volume is published successfully to the node.\n\tStatePublished PublishState = \"published\"\n\n\t// StatePendingNodeUnpublish indicates that the Volume should be\n\t// unpublished on the Node, and we're waiting for confirmation that it has\n\t// done so.  After the Node has confirmed that the Volume has been\n\t// unpublished, the state will move to StatePendingUnpublish.\n\tStatePendingNodeUnpublish PublishState = \"pending-node-unpublish\"\n\n\t// StatePendingUnpublish means the volume is still published to the node\n\t// by the controller, awaiting the operation to unpublish it.\n\tStatePendingUnpublish PublishState = \"pending-controller-unpublish\"\n)\n\n// PublishStatus represents the status of the volume as published to an\n// individual node\ntype PublishStatus struct {\n\t// NodeID is the ID of the swarm node this Volume is published to.\n\tNodeID string `json:\",omitempty\"`\n\n\t// State is the publish state of the volume.\n\tState PublishState `json:\",omitempty\"`\n\n\t// PublishContext is the PublishContext returned by the CSI plugin when\n\t// a volume is published.\n\tPublishContext map[string]string `json:\",omitempty\"`\n}\n\n// Info contains information about the Volume as a whole as provided by\n// the CSI storage plugin.\ntype Info struct {\n\t// CapacityBytes is the capacity of the volume in bytes. A value of 0\n\t// indicates that the capacity is unknown.\n\tCapacityBytes int64 `json:\",omitempty\"`\n\n\t// VolumeContext is the context originating from the CSI storage plugin\n\t// when the Volume is created.\n\tVolumeContext map[string]string `json:\",omitempty\"`\n\n\t// VolumeID is the ID of the Volume as seen by the CSI storage plugin. This\n\t// is distinct from the Volume's Swarm ID, which is the ID used by all of\n\t// the Docker Engine to refer to the Volume. If this field is blank, then\n\t// the Volume has not been successfully created yet.\n\tVolumeID string `json:\",omitempty\"`\n\n\t// AccessibleTopology is the topology this volume is actually accessible\n\t// from.\n\tAccessibleTopology []Topology `json:\",omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/volume/create_options.go",
    "content": "package volume\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// CreateOptions VolumeConfig\n//\n// Volume configuration\n// swagger:model CreateOptions\ntype CreateOptions struct {\n\n\t// cluster volume spec\n\tClusterVolumeSpec *ClusterVolumeSpec `json:\"ClusterVolumeSpec,omitempty\"`\n\n\t// Name of the volume driver to use.\n\tDriver string `json:\"Driver,omitempty\"`\n\n\t// A mapping of driver options and values. These options are\n\t// passed directly to the driver and are driver specific.\n\t//\n\tDriverOpts map[string]string `json:\"DriverOpts,omitempty\"`\n\n\t// User-defined key/value metadata.\n\tLabels map[string]string `json:\"Labels,omitempty\"`\n\n\t// The new volume's name. If not specified, Docker generates a name.\n\t//\n\tName string `json:\"Name,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/volume/disk_usage.go",
    "content": "package volume\n\n// DiskUsage contains disk usage for volumes.\n//\n// Deprecated: this type is no longer used and will be removed in the next release.\ntype DiskUsage struct {\n\tTotalSize   int64\n\tReclaimable int64\n\tItems       []*Volume\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/volume/list_response.go",
    "content": "package volume\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// ListResponse VolumeListResponse\n//\n// Volume list response\n// swagger:model ListResponse\ntype ListResponse struct {\n\n\t// List of volumes\n\tVolumes []*Volume `json:\"Volumes\"`\n\n\t// Warnings that occurred when fetching the list of volumes.\n\t//\n\tWarnings []string `json:\"Warnings\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/volume/options.go",
    "content": "package volume\n\nimport \"github.com/docker/docker/api/types/filters\"\n\n// ListOptions holds parameters to list volumes.\ntype ListOptions struct {\n\tFilters filters.Args\n}\n\n// PruneReport contains the response for Engine API:\n// POST \"/volumes/prune\"\ntype PruneReport struct {\n\tVolumesDeleted []string\n\tSpaceReclaimed uint64\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/volume/volume.go",
    "content": "package volume\n\n// This file was generated by the swagger tool.\n// Editing this file might prove futile when you re-run the swagger generate command\n\n// Volume volume\n// swagger:model Volume\ntype Volume struct {\n\n\t// cluster volume\n\tClusterVolume *ClusterVolume `json:\"ClusterVolume,omitempty\"`\n\n\t// Date/Time the volume was created.\n\tCreatedAt string `json:\"CreatedAt,omitempty\"`\n\n\t// Name of the volume driver used by the volume.\n\t// Required: true\n\tDriver string `json:\"Driver\"`\n\n\t// User-defined key/value metadata.\n\t// Required: true\n\tLabels map[string]string `json:\"Labels\"`\n\n\t// Mount path of the volume on the host.\n\t// Required: true\n\tMountpoint string `json:\"Mountpoint\"`\n\n\t// Name of the volume.\n\t// Required: true\n\tName string `json:\"Name\"`\n\n\t// The driver specific options used when creating the volume.\n\t//\n\t// Required: true\n\tOptions map[string]string `json:\"Options\"`\n\n\t// The level at which the volume exists. Either `global` for cluster-wide,\n\t// or `local` for machine level.\n\t//\n\t// Required: true\n\tScope string `json:\"Scope\"`\n\n\t// Low-level details about the volume, provided by the volume driver.\n\t// Details are returned as a map with key/value pairs:\n\t// `{\"key\":\"value\",\"key2\":\"value2\"}`.\n\t//\n\t// The `Status` field is optional, and is omitted if the volume driver\n\t// does not support this feature.\n\t//\n\tStatus map[string]interface{} `json:\"Status,omitempty\"`\n\n\t// usage data\n\tUsageData *UsageData `json:\"UsageData,omitempty\"`\n}\n\n// UsageData Usage details about the volume. This information is used by the\n// `GET /system/df` endpoint, and omitted in other endpoints.\n//\n// swagger:model UsageData\ntype UsageData struct {\n\n\t// The number of containers referencing this volume. This field\n\t// is set to `-1` if the reference-count is not available.\n\t//\n\t// Required: true\n\tRefCount int64 `json:\"RefCount\"`\n\n\t// Amount of disk space used by the volume (in bytes). This information\n\t// is only available for volumes created with the `\"local\"` volume\n\t// driver. For volumes created with other volume drivers, this field\n\t// is set to `-1` (\"not available\")\n\t//\n\t// Required: true\n\tSize int64 `json:\"Size\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/api/types/volume/volume_update.go",
    "content": "package volume\n\n// UpdateOptions is configuration to update a Volume with.\ntype UpdateOptions struct {\n\t// Spec is the ClusterVolumeSpec to update the volume to.\n\tSpec *ClusterVolumeSpec `json:\"Spec,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/README.md",
    "content": "# Go client for the Docker Engine API\n\nThe `docker` command uses this package to communicate with the daemon. It can\nalso be used by your own Go applications to do anything the command-line\ninterface does – running containers, pulling images, managing swarms, etc.\n\nFor example, to list all containers (the equivalent of `docker ps --all`):\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/client\"\n)\n\nfunc main() {\n\tapiClient, err := client.NewClientWithOpts(client.FromEnv)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer apiClient.Close()\n\n\tcontainers, err := apiClient.ContainerList(context.Background(), container.ListOptions{All: true})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfor _, ctr := range containers {\n\t\tfmt.Printf(\"%s %s (status: %s)\\n\", ctr.ID, ctr.Image, ctr.Status)\n\t}\n}\n```\n\n[Full documentation is available on pkg.go.dev.](https://pkg.go.dev/github.com/docker/docker/client)\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/build_cancel.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n)\n\n// BuildCancel requests the daemon to cancel the ongoing build request.\nfunc (cli *Client) BuildCancel(ctx context.Context, id string) error {\n\tquery := url.Values{}\n\tquery.Set(\"id\", id)\n\n\tresp, err := cli.post(ctx, \"/build/cancel\", query, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/build_prune.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"github.com/docker/docker/api/types/build\"\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/pkg/errors\"\n)\n\n// BuildCachePrune requests the daemon to delete unused cache data\nfunc (cli *Client) BuildCachePrune(ctx context.Context, opts build.CachePruneOptions) (*build.CachePruneReport, error) {\n\tif err := cli.NewVersionError(ctx, \"1.31\", \"build prune\"); err != nil {\n\t\treturn nil, err\n\t}\n\n\tquery := url.Values{}\n\tif opts.All {\n\t\tquery.Set(\"all\", \"1\")\n\t}\n\n\tif opts.KeepStorage != 0 {\n\t\tquery.Set(\"keep-storage\", strconv.Itoa(int(opts.KeepStorage)))\n\t}\n\tif opts.ReservedSpace != 0 {\n\t\tquery.Set(\"reserved-space\", strconv.Itoa(int(opts.ReservedSpace)))\n\t}\n\tif opts.MaxUsedSpace != 0 {\n\t\tquery.Set(\"max-used-space\", strconv.Itoa(int(opts.MaxUsedSpace)))\n\t}\n\tif opts.MinFreeSpace != 0 {\n\t\tquery.Set(\"min-free-space\", strconv.Itoa(int(opts.MinFreeSpace)))\n\t}\n\tf, err := filters.ToJSON(opts.Filters)\n\tif err != nil {\n\t\treturn nil, errors.Wrap(err, \"prune could not marshal filters option\")\n\t}\n\tquery.Set(\"filters\", f)\n\n\tresp, err := cli.post(ctx, \"/build/prune\", query, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treport := build.CachePruneReport{}\n\tif err := json.NewDecoder(resp.Body).Decode(&report); err != nil {\n\t\treturn nil, errors.Wrap(err, \"error retrieving disk usage\")\n\t}\n\n\treturn &report, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/checkpoint.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\n\t\"github.com/docker/docker/api/types/checkpoint\"\n)\n\n// CheckpointAPIClient defines API client methods for the checkpoints.\n//\n// Experimental: checkpoint and restore is still an experimental feature,\n// and only available if the daemon is running with experimental features\n// enabled.\ntype CheckpointAPIClient interface {\n\tCheckpointCreate(ctx context.Context, container string, options checkpoint.CreateOptions) error\n\tCheckpointDelete(ctx context.Context, container string, options checkpoint.DeleteOptions) error\n\tCheckpointList(ctx context.Context, container string, options checkpoint.ListOptions) ([]checkpoint.Summary, error)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/checkpoint_create.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\n\t\"github.com/docker/docker/api/types/checkpoint\"\n)\n\n// CheckpointCreate creates a checkpoint from the given container with the given name\nfunc (cli *Client) CheckpointCreate(ctx context.Context, containerID string, options checkpoint.CreateOptions) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/checkpoints\", nil, options, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/checkpoint_delete.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/checkpoint\"\n)\n\n// CheckpointDelete deletes the checkpoint with the given name from the given container\nfunc (cli *Client) CheckpointDelete(ctx context.Context, containerID string, options checkpoint.DeleteOptions) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tif options.CheckpointDir != \"\" {\n\t\tquery.Set(\"dir\", options.CheckpointDir)\n\t}\n\n\tresp, err := cli.delete(ctx, \"/containers/\"+containerID+\"/checkpoints/\"+options.CheckpointID, query, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/checkpoint_list.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/checkpoint\"\n)\n\n// CheckpointList returns the checkpoints of the given container in the docker host\nfunc (cli *Client) CheckpointList(ctx context.Context, container string, options checkpoint.ListOptions) ([]checkpoint.Summary, error) {\n\tvar checkpoints []checkpoint.Summary\n\n\tquery := url.Values{}\n\tif options.CheckpointDir != \"\" {\n\t\tquery.Set(\"dir\", options.CheckpointDir)\n\t}\n\n\tresp, err := cli.get(ctx, \"/containers/\"+container+\"/checkpoints\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn checkpoints, err\n\t}\n\n\terr = json.NewDecoder(resp.Body).Decode(&checkpoints)\n\treturn checkpoints, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/client.go",
    "content": "/*\nPackage client is a Go client for the Docker Engine API.\n\nFor more information about the Engine API, see the documentation:\nhttps://docs.docker.com/reference/api/engine/\n\n# Usage\n\nYou use the library by constructing a client object using [NewClientWithOpts]\nand calling methods on it. The client can be configured from environment\nvariables by passing the [FromEnv] option, or configured manually by passing any\nof the other available [Opts].\n\nFor example, to list running containers (the equivalent of \"docker ps\"):\n\n\tpackage main\n\n\timport (\n\t\t\"context\"\n\t\t\"fmt\"\n\n\t\t\"github.com/docker/docker/api/types/container\"\n\t\t\"github.com/docker/docker/client\"\n\t)\n\n\tfunc main() {\n\t\tcli, err := client.NewClientWithOpts(client.FromEnv)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\tcontainers, err := cli.ContainerList(context.Background(), container.ListOptions{})\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\n\t\tfor _, ctr := range containers {\n\t\t\tfmt.Printf(\"%s %s\\n\", ctr.ID, ctr.Image)\n\t\t}\n\t}\n*/\npackage client\n\nimport (\n\t\"context\"\n\t\"crypto/tls\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"path\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/docker/docker/api\"\n\t\"github.com/docker/docker/api/types\"\n\t\"github.com/docker/docker/api/types/versions\"\n\t\"github.com/docker/go-connections/sockets\"\n\t\"github.com/pkg/errors\"\n\t\"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n)\n\n// DummyHost is a hostname used for local communication.\n//\n// It acts as a valid formatted hostname for local connections (such as \"unix://\"\n// or \"npipe://\") which do not require a hostname. It should never be resolved,\n// but uses the special-purpose \".localhost\" TLD (as defined in [RFC 2606, Section 2]\n// and [RFC 6761, Section 6.3]).\n//\n// [RFC 7230, Section 5.4] defines that an empty header must be used for such\n// cases:\n//\n//\tIf the authority component is missing or undefined for the target URI,\n//\tthen a client MUST send a Host header field with an empty field-value.\n//\n// However, [Go stdlib] enforces the semantics of HTTP(S) over TCP, does not\n// allow an empty header to be used, and requires req.URL.Scheme to be either\n// \"http\" or \"https\".\n//\n// For further details, refer to:\n//\n//   - https://github.com/docker/engine-api/issues/189\n//   - https://github.com/golang/go/issues/13624\n//   - https://github.com/golang/go/issues/61076\n//   - https://github.com/moby/moby/issues/45935\n//\n// [RFC 2606, Section 2]: https://www.rfc-editor.org/rfc/rfc2606.html#section-2\n// [RFC 6761, Section 6.3]: https://www.rfc-editor.org/rfc/rfc6761#section-6.3\n// [RFC 7230, Section 5.4]: https://datatracker.ietf.org/doc/html/rfc7230#section-5.4\n// [Go stdlib]: https://github.com/golang/go/blob/6244b1946bc2101b01955468f1be502dbadd6807/src/net/http/transport.go#L558-L569\nconst DummyHost = \"api.moby.localhost\"\n\n// fallbackAPIVersion is the version to fallback to if API-version negotiation\n// fails. This version is the highest version of the API before API-version\n// negotiation was introduced. If negotiation fails (or no API version was\n// included in the API response), we assume the API server uses the most\n// recent version before negotiation was introduced.\nconst fallbackAPIVersion = \"1.24\"\n\n// Ensure that Client always implements APIClient.\nvar _ APIClient = &Client{}\n\n// Client is the API client that performs all operations\n// against a docker server.\ntype Client struct {\n\t// scheme sets the scheme for the client\n\tscheme string\n\t// host holds the server address to connect to\n\thost string\n\t// proto holds the client protocol i.e. unix.\n\tproto string\n\t// addr holds the client address.\n\taddr string\n\t// basePath holds the path to prepend to the requests.\n\tbasePath string\n\t// client used to send and receive http requests.\n\tclient *http.Client\n\t// version of the server to talk to.\n\tversion string\n\t// userAgent is the User-Agent header to use for HTTP requests. It takes\n\t// precedence over User-Agent headers set in customHTTPHeaders, and other\n\t// header variables. When set to an empty string, the User-Agent header\n\t// is removed, and no header is sent.\n\tuserAgent *string\n\t// custom HTTP headers configured by users.\n\tcustomHTTPHeaders map[string]string\n\t// manualOverride is set to true when the version was set by users.\n\tmanualOverride bool\n\n\t// negotiateVersion indicates if the client should automatically negotiate\n\t// the API version to use when making requests. API version negotiation is\n\t// performed on the first request, after which negotiated is set to \"true\"\n\t// so that subsequent requests do not re-negotiate.\n\tnegotiateVersion bool\n\n\t// negotiated indicates that API version negotiation took place\n\tnegotiated atomic.Bool\n\n\t// negotiateLock is used to single-flight the version negotiation process\n\tnegotiateLock sync.Mutex\n\n\ttraceOpts []otelhttp.Option\n\n\t// When the client transport is an *http.Transport (default) we need to do some extra things (like closing idle connections).\n\t// Store the original transport as the http.Client transport will be wrapped with tracing libs.\n\tbaseTransport *http.Transport\n}\n\n// ErrRedirect is the error returned by checkRedirect when the request is non-GET.\nvar ErrRedirect = errors.New(\"unexpected redirect in response\")\n\n// CheckRedirect specifies the policy for dealing with redirect responses. It\n// can be set on [http.Client.CheckRedirect] to prevent HTTP redirects for\n// non-GET requests. It returns an [ErrRedirect] for non-GET request, otherwise\n// returns a [http.ErrUseLastResponse], which is special-cased by http.Client\n// to use the last response.\n//\n// Go 1.8 changed behavior for HTTP redirects (specifically 301, 307, and 308)\n// in the client. The client (and by extension API client) can be made to send\n// a request like \"POST /containers//start\" where what would normally be in the\n// name section of the URL is empty. This triggers an HTTP 301 from the daemon.\n//\n// In go 1.8 this 301 is converted to a GET request, and ends up getting\n// a 404 from the daemon. This behavior change manifests in the client in that\n// before, the 301 was not followed and the client did not generate an error,\n// but now results in a message like \"Error response from daemon: page not found\".\nfunc CheckRedirect(_ *http.Request, via []*http.Request) error {\n\tif via[0].Method == http.MethodGet {\n\t\treturn http.ErrUseLastResponse\n\t}\n\treturn ErrRedirect\n}\n\n// NewClientWithOpts initializes a new API client with a default HTTPClient, and\n// default API host and version. It also initializes the custom HTTP headers to\n// add to each request.\n//\n// It takes an optional list of [Opt] functional arguments, which are applied in\n// the order they're provided, which allows modifying the defaults when creating\n// the client. For example, the following initializes a client that configures\n// itself with values from environment variables ([FromEnv]), and has automatic\n// API version negotiation enabled ([WithAPIVersionNegotiation]).\n//\n//\tcli, err := client.NewClientWithOpts(\n//\t\tclient.FromEnv,\n//\t\tclient.WithAPIVersionNegotiation(),\n//\t)\nfunc NewClientWithOpts(ops ...Opt) (*Client, error) {\n\thostURL, err := ParseHostURL(DefaultDockerHost)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tclient, err := defaultHTTPClient(hostURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tc := &Client{\n\t\thost:    DefaultDockerHost,\n\t\tversion: api.DefaultVersion,\n\t\tclient:  client,\n\t\tproto:   hostURL.Scheme,\n\t\taddr:    hostURL.Host,\n\n\t\ttraceOpts: []otelhttp.Option{\n\t\t\totelhttp.WithSpanNameFormatter(func(_ string, req *http.Request) string {\n\t\t\t\treturn req.Method + \" \" + req.URL.Path\n\t\t\t}),\n\t\t},\n\t}\n\n\tfor _, op := range ops {\n\t\tif err := op(c); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif tr, ok := c.client.Transport.(*http.Transport); ok {\n\t\t// Store the base transport before we wrap it in tracing libs below\n\t\t// This is used, as an example, to close idle connections when the client is closed\n\t\tc.baseTransport = tr\n\t}\n\n\tif c.scheme == \"\" {\n\t\t// TODO(stevvooe): This isn't really the right way to write clients in Go.\n\t\t// `NewClient` should probably only take an `*http.Client` and work from there.\n\t\t// Unfortunately, the model of having a host-ish/url-thingy as the connection\n\t\t// string has us confusing protocol and transport layers. We continue doing\n\t\t// this to avoid breaking existing clients but this should be addressed.\n\t\tif c.tlsConfig() != nil {\n\t\t\tc.scheme = \"https\"\n\t\t} else {\n\t\t\tc.scheme = \"http\"\n\t\t}\n\t}\n\n\tc.client.Transport = otelhttp.NewTransport(c.client.Transport, c.traceOpts...)\n\n\treturn c, nil\n}\n\nfunc (cli *Client) tlsConfig() *tls.Config {\n\tif cli.baseTransport == nil {\n\t\treturn nil\n\t}\n\treturn cli.baseTransport.TLSClientConfig\n}\n\nfunc defaultHTTPClient(hostURL *url.URL) (*http.Client, error) {\n\ttransport := &http.Transport{}\n\t// Necessary to prevent long-lived processes using the\n\t// client from leaking connections due to idle connections\n\t// not being released.\n\t// TODO: see if we can also address this from the server side,\n\t// or in go-connections.\n\t// see: https://github.com/moby/moby/issues/45539\n\ttransport.MaxIdleConns = 6\n\ttransport.IdleConnTimeout = 30 * time.Second\n\terr := sockets.ConfigureTransport(transport, hostURL.Scheme, hostURL.Host)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &http.Client{\n\t\tTransport:     transport,\n\t\tCheckRedirect: CheckRedirect,\n\t}, nil\n}\n\n// Close the transport used by the client\nfunc (cli *Client) Close() error {\n\tif cli.baseTransport != nil {\n\t\tcli.baseTransport.CloseIdleConnections()\n\t\treturn nil\n\t}\n\treturn nil\n}\n\n// checkVersion manually triggers API version negotiation (if configured).\n// This allows for version-dependent code to use the same version as will\n// be negotiated when making the actual requests, and for which cases\n// we cannot do the negotiation lazily.\nfunc (cli *Client) checkVersion(ctx context.Context) error {\n\tif !cli.manualOverride && cli.negotiateVersion && !cli.negotiated.Load() {\n\t\t// Ensure exclusive write access to version and negotiated fields\n\t\tcli.negotiateLock.Lock()\n\t\tdefer cli.negotiateLock.Unlock()\n\n\t\t// May have been set during last execution of critical zone\n\t\tif cli.negotiated.Load() {\n\t\t\treturn nil\n\t\t}\n\n\t\tping, err := cli.Ping(ctx)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcli.negotiateAPIVersionPing(ping)\n\t}\n\treturn nil\n}\n\n// getAPIPath returns the versioned request path to call the API.\n// It appends the query parameters to the path if they are not empty.\nfunc (cli *Client) getAPIPath(ctx context.Context, p string, query url.Values) string {\n\tvar apiPath string\n\t_ = cli.checkVersion(ctx)\n\tif cli.version != \"\" {\n\t\tapiPath = path.Join(cli.basePath, \"/v\"+strings.TrimPrefix(cli.version, \"v\"), p)\n\t} else {\n\t\tapiPath = path.Join(cli.basePath, p)\n\t}\n\treturn (&url.URL{Path: apiPath, RawQuery: query.Encode()}).String()\n}\n\n// ClientVersion returns the API version used by this client.\nfunc (cli *Client) ClientVersion() string {\n\treturn cli.version\n}\n\n// NegotiateAPIVersion queries the API and updates the version to match the API\n// version. NegotiateAPIVersion downgrades the client's API version to match the\n// APIVersion if the ping version is lower than the default version. If the API\n// version reported by the server is higher than the maximum version supported\n// by the client, it uses the client's maximum version.\n//\n// If a manual override is in place, either through the \"DOCKER_API_VERSION\"\n// ([EnvOverrideAPIVersion]) environment variable, or if the client is initialized\n// with a fixed version ([WithVersion]), no negotiation is performed.\n//\n// If the API server's ping response does not contain an API version, or if the\n// client did not get a successful ping response, it assumes it is connected with\n// an old daemon that does not support API version negotiation, in which case it\n// downgrades to the latest version of the API before version negotiation was\n// added (1.24).\nfunc (cli *Client) NegotiateAPIVersion(ctx context.Context) {\n\tif !cli.manualOverride {\n\t\t// Avoid concurrent modification of version-related fields\n\t\tcli.negotiateLock.Lock()\n\t\tdefer cli.negotiateLock.Unlock()\n\n\t\tping, err := cli.Ping(ctx)\n\t\tif err != nil {\n\t\t\t// FIXME(thaJeztah): Ping returns an error when failing to connect to the API; we should not swallow the error here, and instead returning it.\n\t\t\treturn\n\t\t}\n\t\tcli.negotiateAPIVersionPing(ping)\n\t}\n}\n\n// NegotiateAPIVersionPing downgrades the client's API version to match the\n// APIVersion in the ping response. If the API version in pingResponse is higher\n// than the maximum version supported by the client, it uses the client's maximum\n// version.\n//\n// If a manual override is in place, either through the \"DOCKER_API_VERSION\"\n// ([EnvOverrideAPIVersion]) environment variable, or if the client is initialized\n// with a fixed version ([WithVersion]), no negotiation is performed.\n//\n// If the API server's ping response does not contain an API version, we assume\n// we are connected with an old daemon without API version negotiation support,\n// and downgrade to the latest version of the API before version negotiation was\n// added (1.24).\nfunc (cli *Client) NegotiateAPIVersionPing(pingResponse types.Ping) {\n\tif !cli.manualOverride {\n\t\t// Avoid concurrent modification of version-related fields\n\t\tcli.negotiateLock.Lock()\n\t\tdefer cli.negotiateLock.Unlock()\n\n\t\tcli.negotiateAPIVersionPing(pingResponse)\n\t}\n}\n\n// negotiateAPIVersionPing queries the API and updates the version to match the\n// API version from the ping response.\nfunc (cli *Client) negotiateAPIVersionPing(pingResponse types.Ping) {\n\t// default to the latest version before versioning headers existed\n\tif pingResponse.APIVersion == \"\" {\n\t\tpingResponse.APIVersion = fallbackAPIVersion\n\t}\n\n\t// if the client is not initialized with a version, start with the latest supported version\n\tif cli.version == \"\" {\n\t\tcli.version = api.DefaultVersion\n\t}\n\n\t// if server version is lower than the client version, downgrade\n\tif versions.LessThan(pingResponse.APIVersion, cli.version) {\n\t\tcli.version = pingResponse.APIVersion\n\t}\n\n\t// Store the results, so that automatic API version negotiation (if enabled)\n\t// won't be performed on the next request.\n\tif cli.negotiateVersion {\n\t\tcli.negotiated.Store(true)\n\t}\n}\n\n// DaemonHost returns the host address used by the client\nfunc (cli *Client) DaemonHost() string {\n\treturn cli.host\n}\n\n// HTTPClient returns a copy of the HTTP client bound to the server\nfunc (cli *Client) HTTPClient() *http.Client {\n\tc := *cli.client\n\treturn &c\n}\n\n// ParseHostURL parses a url string, validates the string is a host url, and\n// returns the parsed URL\nfunc ParseHostURL(host string) (*url.URL, error) {\n\tproto, addr, ok := strings.Cut(host, \"://\")\n\tif !ok || addr == \"\" {\n\t\treturn nil, errors.Errorf(\"unable to parse docker host `%s`\", host)\n\t}\n\n\tvar basePath string\n\tif proto == \"tcp\" {\n\t\tparsed, err := url.Parse(\"tcp://\" + addr)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\taddr = parsed.Host\n\t\tbasePath = parsed.Path\n\t}\n\treturn &url.URL{\n\t\tScheme: proto,\n\t\tHost:   addr,\n\t\tPath:   basePath,\n\t}, nil\n}\n\nfunc (cli *Client) dialerFromTransport() func(context.Context, string, string) (net.Conn, error) {\n\tif cli.baseTransport == nil || cli.baseTransport.DialContext == nil {\n\t\treturn nil\n\t}\n\n\tif cli.baseTransport.TLSClientConfig != nil {\n\t\t// When using a tls config we don't use the configured dialer but instead a fallback dialer...\n\t\t// Note: It seems like this should use the normal dialer and wrap the returned net.Conn in a tls.Conn\n\t\t// I honestly don't know why it doesn't do that, but it doesn't and such a change is entirely unrelated to the change in this commit.\n\t\treturn nil\n\t}\n\treturn cli.baseTransport.DialContext\n}\n\n// Dialer returns a dialer for a raw stream connection, with an HTTP/1.1 header,\n// that can be used for proxying the daemon connection. It is used by\n// [\"docker dial-stdio\"].\n//\n// [\"docker dial-stdio\"]: https://github.com/docker/cli/pull/1014\nfunc (cli *Client) Dialer() func(context.Context) (net.Conn, error) {\n\treturn cli.dialer()\n}\n\nfunc (cli *Client) dialer() func(context.Context) (net.Conn, error) {\n\treturn func(ctx context.Context) (net.Conn, error) {\n\t\tif dialFn := cli.dialerFromTransport(); dialFn != nil {\n\t\t\treturn dialFn(ctx, cli.proto, cli.addr)\n\t\t}\n\t\tswitch cli.proto {\n\t\tcase \"unix\":\n\t\t\treturn net.Dial(cli.proto, cli.addr)\n\t\tcase \"npipe\":\n\t\t\tctx, cancel := context.WithTimeout(ctx, 32*time.Second)\n\t\t\tdefer cancel()\n\t\t\treturn dialPipeContext(ctx, cli.addr)\n\t\tdefault:\n\t\t\tif tlsConfig := cli.tlsConfig(); tlsConfig != nil {\n\t\t\t\treturn tls.Dial(cli.proto, cli.addr, tlsConfig)\n\t\t\t}\n\t\t\treturn net.Dial(cli.proto, cli.addr)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/client_deprecated.go",
    "content": "package client\n\nimport \"net/http\"\n\n// NewClient initializes a new API client for the given host and API version.\n// It uses the given http client as transport.\n// It also initializes the custom http headers to add to each request.\n//\n// It won't send any version information if the version number is empty. It is\n// highly recommended that you set a version or your client may break if the\n// server is upgraded.\n//\n// Deprecated: use [NewClientWithOpts] passing the [WithHost], [WithVersion],\n// [WithHTTPClient] and [WithHTTPHeaders] options. We recommend enabling API\n// version negotiation by passing the [WithAPIVersionNegotiation] option instead\n// of WithVersion.\nfunc NewClient(host string, version string, client *http.Client, httpHeaders map[string]string) (*Client, error) {\n\treturn NewClientWithOpts(WithHost(host), WithVersion(version), WithHTTPClient(client), WithHTTPHeaders(httpHeaders))\n}\n\n// NewEnvClient initializes a new API client based on environment variables.\n// See FromEnv for a list of support environment variables.\n//\n// Deprecated: use [NewClientWithOpts] passing the [FromEnv] option.\nfunc NewEnvClient() (*Client, error) {\n\treturn NewClientWithOpts(FromEnv)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/client_interfaces.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n\n\t\"github.com/docker/docker/api/types\"\n\t\"github.com/docker/docker/api/types/build\"\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/events\"\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/image\"\n\t\"github.com/docker/docker/api/types/network\"\n\t\"github.com/docker/docker/api/types/registry\"\n\t\"github.com/docker/docker/api/types/swarm\"\n\t\"github.com/docker/docker/api/types/system\"\n\t\"github.com/docker/docker/api/types/volume\"\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\n// CommonAPIClient is the common methods between stable and experimental versions of APIClient.\n//\n// Deprecated: use [APIClient] instead. This type will be an alias for [APIClient] in the next release, and removed after.\ntype CommonAPIClient = stableAPIClient\n\n// APIClient is an interface that clients that talk with a docker server must implement.\ntype APIClient interface {\n\tstableAPIClient\n\tCheckpointAPIClient // CheckpointAPIClient is still experimental.\n}\n\ntype stableAPIClient interface {\n\tConfigAPIClient\n\tContainerAPIClient\n\tDistributionAPIClient\n\tImageAPIClient\n\tNetworkAPIClient\n\tPluginAPIClient\n\tSystemAPIClient\n\tVolumeAPIClient\n\tClientVersion() string\n\tDaemonHost() string\n\tHTTPClient() *http.Client\n\tServerVersion(ctx context.Context) (types.Version, error)\n\tNegotiateAPIVersion(ctx context.Context)\n\tNegotiateAPIVersionPing(types.Ping)\n\tHijackDialer\n\tDialer() func(context.Context) (net.Conn, error)\n\tClose() error\n\tSwarmManagementAPIClient\n}\n\n// SwarmManagementAPIClient defines all methods for managing Swarm-specific\n// objects.\ntype SwarmManagementAPIClient interface {\n\tSwarmAPIClient\n\tNodeAPIClient\n\tServiceAPIClient\n\tSecretAPIClient\n\tConfigAPIClient\n}\n\n// HijackDialer defines methods for a hijack dialer.\ntype HijackDialer interface {\n\tDialHijack(ctx context.Context, url, proto string, meta map[string][]string) (net.Conn, error)\n}\n\n// ContainerAPIClient defines API client methods for the containers\ntype ContainerAPIClient interface {\n\tContainerAttach(ctx context.Context, container string, options container.AttachOptions) (types.HijackedResponse, error)\n\tContainerCommit(ctx context.Context, container string, options container.CommitOptions) (container.CommitResponse, error)\n\tContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, platform *ocispec.Platform, containerName string) (container.CreateResponse, error)\n\tContainerDiff(ctx context.Context, container string) ([]container.FilesystemChange, error)\n\tContainerExecAttach(ctx context.Context, execID string, options container.ExecAttachOptions) (types.HijackedResponse, error)\n\tContainerExecCreate(ctx context.Context, container string, options container.ExecOptions) (container.ExecCreateResponse, error)\n\tContainerExecInspect(ctx context.Context, execID string) (container.ExecInspect, error)\n\tContainerExecResize(ctx context.Context, execID string, options container.ResizeOptions) error\n\tContainerExecStart(ctx context.Context, execID string, options container.ExecStartOptions) error\n\tContainerExport(ctx context.Context, container string) (io.ReadCloser, error)\n\tContainerInspect(ctx context.Context, container string) (container.InspectResponse, error)\n\tContainerInspectWithRaw(ctx context.Context, container string, getSize bool) (container.InspectResponse, []byte, error)\n\tContainerKill(ctx context.Context, container, signal string) error\n\tContainerList(ctx context.Context, options container.ListOptions) ([]container.Summary, error)\n\tContainerLogs(ctx context.Context, container string, options container.LogsOptions) (io.ReadCloser, error)\n\tContainerPause(ctx context.Context, container string) error\n\tContainerRemove(ctx context.Context, container string, options container.RemoveOptions) error\n\tContainerRename(ctx context.Context, container, newContainerName string) error\n\tContainerResize(ctx context.Context, container string, options container.ResizeOptions) error\n\tContainerRestart(ctx context.Context, container string, options container.StopOptions) error\n\tContainerStatPath(ctx context.Context, container, path string) (container.PathStat, error)\n\tContainerStats(ctx context.Context, container string, stream bool) (container.StatsResponseReader, error)\n\tContainerStatsOneShot(ctx context.Context, container string) (container.StatsResponseReader, error)\n\tContainerStart(ctx context.Context, container string, options container.StartOptions) error\n\tContainerStop(ctx context.Context, container string, options container.StopOptions) error\n\tContainerTop(ctx context.Context, container string, arguments []string) (container.TopResponse, error)\n\tContainerUnpause(ctx context.Context, container string) error\n\tContainerUpdate(ctx context.Context, container string, updateConfig container.UpdateConfig) (container.UpdateResponse, error)\n\tContainerWait(ctx context.Context, container string, condition container.WaitCondition) (<-chan container.WaitResponse, <-chan error)\n\tCopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, container.PathStat, error)\n\tCopyToContainer(ctx context.Context, container, path string, content io.Reader, options container.CopyToContainerOptions) error\n\tContainersPrune(ctx context.Context, pruneFilters filters.Args) (container.PruneReport, error)\n}\n\n// DistributionAPIClient defines API client methods for the registry\ntype DistributionAPIClient interface {\n\tDistributionInspect(ctx context.Context, image, encodedRegistryAuth string) (registry.DistributionInspect, error)\n}\n\n// ImageAPIClient defines API client methods for the images\ntype ImageAPIClient interface {\n\tImageBuild(ctx context.Context, context io.Reader, options build.ImageBuildOptions) (build.ImageBuildResponse, error)\n\tBuildCachePrune(ctx context.Context, opts build.CachePruneOptions) (*build.CachePruneReport, error)\n\tBuildCancel(ctx context.Context, id string) error\n\tImageCreate(ctx context.Context, parentReference string, options image.CreateOptions) (io.ReadCloser, error)\n\tImageImport(ctx context.Context, source image.ImportSource, ref string, options image.ImportOptions) (io.ReadCloser, error)\n\n\tImageList(ctx context.Context, options image.ListOptions) ([]image.Summary, error)\n\tImagePull(ctx context.Context, ref string, options image.PullOptions) (io.ReadCloser, error)\n\tImagePush(ctx context.Context, ref string, options image.PushOptions) (io.ReadCloser, error)\n\tImageRemove(ctx context.Context, image string, options image.RemoveOptions) ([]image.DeleteResponse, error)\n\tImageSearch(ctx context.Context, term string, options registry.SearchOptions) ([]registry.SearchResult, error)\n\tImageTag(ctx context.Context, image, ref string) error\n\tImagesPrune(ctx context.Context, pruneFilter filters.Args) (image.PruneReport, error)\n\n\tImageInspect(ctx context.Context, image string, _ ...ImageInspectOption) (image.InspectResponse, error)\n\tImageHistory(ctx context.Context, image string, _ ...ImageHistoryOption) ([]image.HistoryResponseItem, error)\n\tImageLoad(ctx context.Context, input io.Reader, _ ...ImageLoadOption) (image.LoadResponse, error)\n\tImageSave(ctx context.Context, images []string, _ ...ImageSaveOption) (io.ReadCloser, error)\n\n\tImageAPIClientDeprecated\n}\n\n// ImageAPIClientDeprecated defines deprecated methods of the ImageAPIClient.\ntype ImageAPIClientDeprecated interface {\n\t// ImageInspectWithRaw returns the image information and its raw representation.\n\t//\n\t// Deprecated: Use [Client.ImageInspect] instead. Raw response can be obtained using the [ImageInspectWithRawResponse] option.\n\tImageInspectWithRaw(ctx context.Context, image string) (image.InspectResponse, []byte, error)\n}\n\n// NetworkAPIClient defines API client methods for the networks\ntype NetworkAPIClient interface {\n\tNetworkConnect(ctx context.Context, network, container string, config *network.EndpointSettings) error\n\tNetworkCreate(ctx context.Context, name string, options network.CreateOptions) (network.CreateResponse, error)\n\tNetworkDisconnect(ctx context.Context, network, container string, force bool) error\n\tNetworkInspect(ctx context.Context, network string, options network.InspectOptions) (network.Inspect, error)\n\tNetworkInspectWithRaw(ctx context.Context, network string, options network.InspectOptions) (network.Inspect, []byte, error)\n\tNetworkList(ctx context.Context, options network.ListOptions) ([]network.Summary, error)\n\tNetworkRemove(ctx context.Context, network string) error\n\tNetworksPrune(ctx context.Context, pruneFilter filters.Args) (network.PruneReport, error)\n}\n\n// NodeAPIClient defines API client methods for the nodes\ntype NodeAPIClient interface {\n\tNodeInspectWithRaw(ctx context.Context, nodeID string) (swarm.Node, []byte, error)\n\tNodeList(ctx context.Context, options swarm.NodeListOptions) ([]swarm.Node, error)\n\tNodeRemove(ctx context.Context, nodeID string, options swarm.NodeRemoveOptions) error\n\tNodeUpdate(ctx context.Context, nodeID string, version swarm.Version, node swarm.NodeSpec) error\n}\n\n// PluginAPIClient defines API client methods for the plugins\ntype PluginAPIClient interface {\n\tPluginList(ctx context.Context, filter filters.Args) (types.PluginsListResponse, error)\n\tPluginRemove(ctx context.Context, name string, options types.PluginRemoveOptions) error\n\tPluginEnable(ctx context.Context, name string, options types.PluginEnableOptions) error\n\tPluginDisable(ctx context.Context, name string, options types.PluginDisableOptions) error\n\tPluginInstall(ctx context.Context, name string, options types.PluginInstallOptions) (io.ReadCloser, error)\n\tPluginUpgrade(ctx context.Context, name string, options types.PluginInstallOptions) (io.ReadCloser, error)\n\tPluginPush(ctx context.Context, name string, registryAuth string) (io.ReadCloser, error)\n\tPluginSet(ctx context.Context, name string, args []string) error\n\tPluginInspectWithRaw(ctx context.Context, name string) (*types.Plugin, []byte, error)\n\tPluginCreate(ctx context.Context, createContext io.Reader, options types.PluginCreateOptions) error\n}\n\n// ServiceAPIClient defines API client methods for the services\ntype ServiceAPIClient interface {\n\tServiceCreate(ctx context.Context, service swarm.ServiceSpec, options swarm.ServiceCreateOptions) (swarm.ServiceCreateResponse, error)\n\tServiceInspectWithRaw(ctx context.Context, serviceID string, options swarm.ServiceInspectOptions) (swarm.Service, []byte, error)\n\tServiceList(ctx context.Context, options swarm.ServiceListOptions) ([]swarm.Service, error)\n\tServiceRemove(ctx context.Context, serviceID string) error\n\tServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options swarm.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error)\n\tServiceLogs(ctx context.Context, serviceID string, options container.LogsOptions) (io.ReadCloser, error)\n\tTaskLogs(ctx context.Context, taskID string, options container.LogsOptions) (io.ReadCloser, error)\n\tTaskInspectWithRaw(ctx context.Context, taskID string) (swarm.Task, []byte, error)\n\tTaskList(ctx context.Context, options swarm.TaskListOptions) ([]swarm.Task, error)\n}\n\n// SwarmAPIClient defines API client methods for the swarm\ntype SwarmAPIClient interface {\n\tSwarmInit(ctx context.Context, req swarm.InitRequest) (string, error)\n\tSwarmJoin(ctx context.Context, req swarm.JoinRequest) error\n\tSwarmGetUnlockKey(ctx context.Context) (swarm.UnlockKeyResponse, error)\n\tSwarmUnlock(ctx context.Context, req swarm.UnlockRequest) error\n\tSwarmLeave(ctx context.Context, force bool) error\n\tSwarmInspect(ctx context.Context) (swarm.Swarm, error)\n\tSwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec, flags swarm.UpdateFlags) error\n}\n\n// SystemAPIClient defines API client methods for the system\ntype SystemAPIClient interface {\n\tEvents(ctx context.Context, options events.ListOptions) (<-chan events.Message, <-chan error)\n\tInfo(ctx context.Context) (system.Info, error)\n\tRegistryLogin(ctx context.Context, auth registry.AuthConfig) (registry.AuthenticateOKBody, error)\n\tDiskUsage(ctx context.Context, options types.DiskUsageOptions) (types.DiskUsage, error)\n\tPing(ctx context.Context) (types.Ping, error)\n}\n\n// VolumeAPIClient defines API client methods for the volumes\ntype VolumeAPIClient interface {\n\tVolumeCreate(ctx context.Context, options volume.CreateOptions) (volume.Volume, error)\n\tVolumeInspect(ctx context.Context, volumeID string) (volume.Volume, error)\n\tVolumeInspectWithRaw(ctx context.Context, volumeID string) (volume.Volume, []byte, error)\n\tVolumeList(ctx context.Context, options volume.ListOptions) (volume.ListResponse, error)\n\tVolumeRemove(ctx context.Context, volumeID string, force bool) error\n\tVolumesPrune(ctx context.Context, pruneFilter filters.Args) (volume.PruneReport, error)\n\tVolumeUpdate(ctx context.Context, volumeID string, version swarm.Version, options volume.UpdateOptions) error\n}\n\n// SecretAPIClient defines API client methods for secrets\ntype SecretAPIClient interface {\n\tSecretList(ctx context.Context, options swarm.SecretListOptions) ([]swarm.Secret, error)\n\tSecretCreate(ctx context.Context, secret swarm.SecretSpec) (swarm.SecretCreateResponse, error)\n\tSecretRemove(ctx context.Context, id string) error\n\tSecretInspectWithRaw(ctx context.Context, name string) (swarm.Secret, []byte, error)\n\tSecretUpdate(ctx context.Context, id string, version swarm.Version, secret swarm.SecretSpec) error\n}\n\n// ConfigAPIClient defines API client methods for configs\ntype ConfigAPIClient interface {\n\tConfigList(ctx context.Context, options swarm.ConfigListOptions) ([]swarm.Config, error)\n\tConfigCreate(ctx context.Context, config swarm.ConfigSpec) (swarm.ConfigCreateResponse, error)\n\tConfigRemove(ctx context.Context, id string) error\n\tConfigInspectWithRaw(ctx context.Context, name string) (swarm.Config, []byte, error)\n\tConfigUpdate(ctx context.Context, id string, version swarm.Version, config swarm.ConfigSpec) error\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/client_unix.go",
    "content": "//go:build !windows\n\npackage client\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"syscall\"\n)\n\n// DefaultDockerHost defines OS-specific default host if the DOCKER_HOST\n// (EnvOverrideHost) environment variable is unset or empty.\nconst DefaultDockerHost = \"unix:///var/run/docker.sock\"\n\n// dialPipeContext connects to a Windows named pipe. It is not supported on non-Windows.\nfunc dialPipeContext(_ context.Context, _ string) (net.Conn, error) {\n\treturn nil, syscall.EAFNOSUPPORT\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/client_windows.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net\"\n\n\t\"github.com/Microsoft/go-winio\"\n)\n\n// DefaultDockerHost defines OS-specific default host if the DOCKER_HOST\n// (EnvOverrideHost) environment variable is unset or empty.\nconst DefaultDockerHost = \"npipe:////./pipe/docker_engine\"\n\n// dialPipeContext connects to a Windows named pipe. It is not supported on non-Windows.\nfunc dialPipeContext(ctx context.Context, addr string) (net.Conn, error) {\n\treturn winio.DialPipeContext(ctx, addr)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/config_create.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// ConfigCreate creates a new config.\nfunc (cli *Client) ConfigCreate(ctx context.Context, config swarm.ConfigSpec) (swarm.ConfigCreateResponse, error) {\n\tvar response swarm.ConfigCreateResponse\n\tif err := cli.NewVersionError(ctx, \"1.30\", \"config create\"); err != nil {\n\t\treturn response, err\n\t}\n\tresp, err := cli.post(ctx, \"/configs/create\", nil, config, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn response, err\n\t}\n\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/config_inspect.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// ConfigInspectWithRaw returns the config information with raw data\nfunc (cli *Client) ConfigInspectWithRaw(ctx context.Context, id string) (swarm.Config, []byte, error) {\n\tid, err := trimID(\"contig\", id)\n\tif err != nil {\n\t\treturn swarm.Config{}, nil, err\n\t}\n\tif err := cli.NewVersionError(ctx, \"1.30\", \"config inspect\"); err != nil {\n\t\treturn swarm.Config{}, nil, err\n\t}\n\tresp, err := cli.get(ctx, \"/configs/\"+id, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn swarm.Config{}, nil, err\n\t}\n\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn swarm.Config{}, nil, err\n\t}\n\n\tvar config swarm.Config\n\trdr := bytes.NewReader(body)\n\terr = json.NewDecoder(rdr).Decode(&config)\n\n\treturn config, body, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/config_list.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// ConfigList returns the list of configs.\nfunc (cli *Client) ConfigList(ctx context.Context, options swarm.ConfigListOptions) ([]swarm.Config, error) {\n\tif err := cli.NewVersionError(ctx, \"1.30\", \"config list\"); err != nil {\n\t\treturn nil, err\n\t}\n\tquery := url.Values{}\n\n\tif options.Filters.Len() > 0 {\n\t\tfilterJSON, err := filters.ToJSON(options.Filters)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\n\tresp, err := cli.get(ctx, \"/configs\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar configs []swarm.Config\n\terr = json.NewDecoder(resp.Body).Decode(&configs)\n\treturn configs, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/config_remove.go",
    "content": "package client\n\nimport \"context\"\n\n// ConfigRemove removes a config.\nfunc (cli *Client) ConfigRemove(ctx context.Context, id string) error {\n\tid, err := trimID(\"config\", id)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := cli.NewVersionError(ctx, \"1.30\", \"config remove\"); err != nil {\n\t\treturn err\n\t}\n\tresp, err := cli.delete(ctx, \"/configs/\"+id, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/config_update.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// ConfigUpdate attempts to update a config\nfunc (cli *Client) ConfigUpdate(ctx context.Context, id string, version swarm.Version, config swarm.ConfigSpec) error {\n\tid, err := trimID(\"config\", id)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := cli.NewVersionError(ctx, \"1.30\", \"config update\"); err != nil {\n\t\treturn err\n\t}\n\tquery := url.Values{}\n\tquery.Set(\"version\", version.String())\n\tresp, err := cli.post(ctx, \"/configs/\"+id+\"/update\", query, config, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_attach.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types\"\n\t\"github.com/docker/docker/api/types/container\"\n)\n\n// ContainerAttach attaches a connection to a container in the server.\n// It returns a types.HijackedConnection with the hijacked connection\n// and the a reader to get output. It's up to the called to close\n// the hijacked connection by calling types.HijackedResponse.Close.\n//\n// The stream format on the response will be in one of two formats:\n//\n// If the container is using a TTY, there is only a single stream (stdout), and\n// data is copied directly from the container output stream, no extra\n// multiplexing or headers.\n//\n// If the container is *not* using a TTY, streams for stdout and stderr are\n// multiplexed.\n// The format of the multiplexed stream is as follows:\n//\n//\t[8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}[]byte{OUTPUT}\n//\n// STREAM_TYPE can be 1 for stdout and 2 for stderr\n//\n// SIZE1, SIZE2, SIZE3, and SIZE4 are four bytes of uint32 encoded as big endian.\n// This is the size of OUTPUT.\n//\n// You can use github.com/docker/docker/pkg/stdcopy.StdCopy to demultiplex this\n// stream.\nfunc (cli *Client) ContainerAttach(ctx context.Context, containerID string, options container.AttachOptions) (types.HijackedResponse, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn types.HijackedResponse{}, err\n\t}\n\n\tquery := url.Values{}\n\tif options.Stream {\n\t\tquery.Set(\"stream\", \"1\")\n\t}\n\tif options.Stdin {\n\t\tquery.Set(\"stdin\", \"1\")\n\t}\n\tif options.Stdout {\n\t\tquery.Set(\"stdout\", \"1\")\n\t}\n\tif options.Stderr {\n\t\tquery.Set(\"stderr\", \"1\")\n\t}\n\tif options.DetachKeys != \"\" {\n\t\tquery.Set(\"detachKeys\", options.DetachKeys)\n\t}\n\tif options.Logs {\n\t\tquery.Set(\"logs\", \"1\")\n\t}\n\n\treturn cli.postHijacked(ctx, \"/containers/\"+containerID+\"/attach\", query, nil, http.Header{\n\t\t\"Content-Type\": {\"text/plain\"},\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_commit.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"net/url\"\n\n\t\"github.com/distribution/reference\"\n\t\"github.com/docker/docker/api/types/container\"\n)\n\n// ContainerCommit applies changes to a container and creates a new tagged image.\nfunc (cli *Client) ContainerCommit(ctx context.Context, containerID string, options container.CommitOptions) (container.CommitResponse, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn container.CommitResponse{}, err\n\t}\n\n\tvar repository, tag string\n\tif options.Reference != \"\" {\n\t\tref, err := reference.ParseNormalizedNamed(options.Reference)\n\t\tif err != nil {\n\t\t\treturn container.CommitResponse{}, err\n\t\t}\n\n\t\tif _, isCanonical := ref.(reference.Canonical); isCanonical {\n\t\t\treturn container.CommitResponse{}, errors.New(\"refusing to create a tag with a digest reference\")\n\t\t}\n\t\tref = reference.TagNameOnly(ref)\n\n\t\tif tagged, ok := ref.(reference.Tagged); ok {\n\t\t\ttag = tagged.Tag()\n\t\t}\n\t\trepository = ref.Name()\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"container\", containerID)\n\tquery.Set(\"repo\", repository)\n\tquery.Set(\"tag\", tag)\n\tquery.Set(\"comment\", options.Comment)\n\tquery.Set(\"author\", options.Author)\n\tfor _, change := range options.Changes {\n\t\tquery.Add(\"changes\", change)\n\t}\n\tif !options.Pause {\n\t\tquery.Set(\"pause\", \"0\")\n\t}\n\n\tvar response container.CommitResponse\n\tresp, err := cli.post(ctx, \"/commit\", query, options.Config, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn response, err\n\t}\n\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_copy.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"path/filepath\"\n\t\"strings\"\n\n\t\"github.com/docker/docker/api/types/container\"\n)\n\n// ContainerStatPath returns stat information about a path inside the container filesystem.\nfunc (cli *Client) ContainerStatPath(ctx context.Context, containerID, path string) (container.PathStat, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn container.PathStat{}, err\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"path\", filepath.ToSlash(path)) // Normalize the paths used in the API.\n\n\tresp, err := cli.head(ctx, \"/containers/\"+containerID+\"/archive\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn container.PathStat{}, err\n\t}\n\treturn getContainerPathStatFromHeader(resp.Header)\n}\n\n// CopyToContainer copies content into the container filesystem.\n// Note that `content` must be a Reader for a TAR archive\nfunc (cli *Client) CopyToContainer(ctx context.Context, containerID, dstPath string, content io.Reader, options container.CopyToContainerOptions) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"path\", filepath.ToSlash(dstPath)) // Normalize the paths used in the API.\n\t// Do not allow for an existing directory to be overwritten by a non-directory and vice versa.\n\tif !options.AllowOverwriteDirWithFile {\n\t\tquery.Set(\"noOverwriteDirNonDir\", \"true\")\n\t}\n\n\tif options.CopyUIDGID {\n\t\tquery.Set(\"copyUIDGID\", \"true\")\n\t}\n\n\tresponse, err := cli.putRaw(ctx, \"/containers/\"+containerID+\"/archive\", query, content, nil)\n\tdefer ensureReaderClosed(response)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// CopyFromContainer gets the content from the container and returns it as a Reader\n// for a TAR archive to manipulate it in the host. It's up to the caller to close the reader.\nfunc (cli *Client) CopyFromContainer(ctx context.Context, containerID, srcPath string) (io.ReadCloser, container.PathStat, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn nil, container.PathStat{}, err\n\t}\n\n\tquery := make(url.Values, 1)\n\tquery.Set(\"path\", filepath.ToSlash(srcPath)) // Normalize the paths used in the API.\n\n\tresp, err := cli.get(ctx, \"/containers/\"+containerID+\"/archive\", query, nil)\n\tif err != nil {\n\t\treturn nil, container.PathStat{}, err\n\t}\n\n\t// In order to get the copy behavior right, we need to know information\n\t// about both the source and the destination. The response headers include\n\t// stat info about the source that we can use in deciding exactly how to\n\t// copy it locally. Along with the stat info about the local destination,\n\t// we have everything we need to handle the multiple possibilities there\n\t// can be when copying a file/dir from one location to another file/dir.\n\tstat, err := getContainerPathStatFromHeader(resp.Header)\n\tif err != nil {\n\t\treturn nil, stat, fmt.Errorf(\"unable to get resource stat from response: %s\", err)\n\t}\n\treturn resp.Body, stat, err\n}\n\nfunc getContainerPathStatFromHeader(header http.Header) (container.PathStat, error) {\n\tvar stat container.PathStat\n\n\tencodedStat := header.Get(\"X-Docker-Container-Path-Stat\")\n\tstatDecoder := base64.NewDecoder(base64.StdEncoding, strings.NewReader(encodedStat))\n\n\terr := json.NewDecoder(statDecoder).Decode(&stat)\n\tif err != nil {\n\t\terr = fmt.Errorf(\"unable to decode container path stat header: %s\", err)\n\t}\n\n\treturn stat, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_create.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"net/url\"\n\t\"path\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/network\"\n\t\"github.com/docker/docker/api/types/versions\"\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\n// ContainerCreate creates a new container based on the given configuration.\n// It can be associated with a name, but it's not mandatory.\nfunc (cli *Client) ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, platform *ocispec.Platform, containerName string) (container.CreateResponse, error) {\n\tvar response container.CreateResponse\n\n\t// Make sure we negotiated (if the client is configured to do so),\n\t// as code below contains API-version specific handling of options.\n\t//\n\t// Normally, version-negotiation (if enabled) would not happen until\n\t// the API request is made.\n\tif err := cli.checkVersion(ctx); err != nil {\n\t\treturn response, err\n\t}\n\n\tif err := cli.NewVersionError(ctx, \"1.25\", \"stop timeout\"); config != nil && config.StopTimeout != nil && err != nil {\n\t\treturn response, err\n\t}\n\tif err := cli.NewVersionError(ctx, \"1.41\", \"specify container image platform\"); platform != nil && err != nil {\n\t\treturn response, err\n\t}\n\tif err := cli.NewVersionError(ctx, \"1.44\", \"specify health-check start interval\"); config != nil && config.Healthcheck != nil && config.Healthcheck.StartInterval != 0 && err != nil {\n\t\treturn response, err\n\t}\n\tif err := cli.NewVersionError(ctx, \"1.44\", \"specify mac-address per network\"); hasEndpointSpecificMacAddress(networkingConfig) && err != nil {\n\t\treturn response, err\n\t}\n\n\tif hostConfig != nil {\n\t\tif versions.LessThan(cli.ClientVersion(), \"1.25\") {\n\t\t\t// When using API 1.24 and under, the client is responsible for removing the container\n\t\t\thostConfig.AutoRemove = false\n\t\t}\n\t\tif versions.GreaterThanOrEqualTo(cli.ClientVersion(), \"1.42\") || versions.LessThan(cli.ClientVersion(), \"1.40\") {\n\t\t\t// KernelMemory was added in API 1.40, and deprecated in API 1.42\n\t\t\thostConfig.KernelMemory = 0\n\t\t}\n\t\tif platform != nil && platform.OS == \"linux\" && versions.LessThan(cli.ClientVersion(), \"1.42\") {\n\t\t\t// When using API under 1.42, the Linux daemon doesn't respect the ConsoleSize\n\t\t\thostConfig.ConsoleSize = [2]uint{0, 0}\n\t\t}\n\t\tif versions.LessThan(cli.ClientVersion(), \"1.44\") {\n\t\t\tfor _, m := range hostConfig.Mounts {\n\t\t\t\tif m.BindOptions != nil {\n\t\t\t\t\t// ReadOnlyNonRecursive can be safely ignored when API < 1.44\n\t\t\t\t\tif m.BindOptions.ReadOnlyForceRecursive {\n\t\t\t\t\t\treturn response, errors.New(\"bind-recursive=readonly requires API v1.44 or later\")\n\t\t\t\t\t}\n\t\t\t\t\tif m.BindOptions.NonRecursive && versions.LessThan(cli.ClientVersion(), \"1.40\") {\n\t\t\t\t\t\treturn response, errors.New(\"bind-recursive=disabled requires API v1.40 or later\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\thostConfig.CapAdd = normalizeCapabilities(hostConfig.CapAdd)\n\t\thostConfig.CapDrop = normalizeCapabilities(hostConfig.CapDrop)\n\t}\n\n\t// Since API 1.44, the container-wide MacAddress is deprecated and will trigger a WARNING if it's specified.\n\tif versions.GreaterThanOrEqualTo(cli.ClientVersion(), \"1.44\") {\n\t\tconfig.MacAddress = \"\" //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.44.\n\t}\n\n\tquery := url.Values{}\n\tif p := formatPlatform(platform); p != \"\" {\n\t\tquery.Set(\"platform\", p)\n\t}\n\n\tif containerName != \"\" {\n\t\tquery.Set(\"name\", containerName)\n\t}\n\n\tbody := container.CreateRequest{\n\t\tConfig:           config,\n\t\tHostConfig:       hostConfig,\n\t\tNetworkingConfig: networkingConfig,\n\t}\n\n\tresp, err := cli.post(ctx, \"/containers/create\", query, body, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn response, err\n\t}\n\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n\n// formatPlatform returns a formatted string representing platform (e.g. linux/arm/v7).\n//\n// Similar to containerd's platforms.Format(), but does allow components to be\n// omitted (e.g. pass \"architecture\" only, without \"os\":\n// https://github.com/containerd/containerd/blob/v1.5.2/platforms/platforms.go#L243-L263\nfunc formatPlatform(platform *ocispec.Platform) string {\n\tif platform == nil {\n\t\treturn \"\"\n\t}\n\treturn path.Join(platform.OS, platform.Architecture, platform.Variant)\n}\n\n// hasEndpointSpecificMacAddress checks whether one of the endpoint in networkingConfig has a MacAddress defined.\nfunc hasEndpointSpecificMacAddress(networkingConfig *network.NetworkingConfig) bool {\n\tif networkingConfig == nil {\n\t\treturn false\n\t}\n\tfor _, endpoint := range networkingConfig.EndpointsConfig {\n\t\tif endpoint.MacAddress != \"\" {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// allCapabilities is a magic value for \"all capabilities\"\nconst allCapabilities = \"ALL\"\n\n// normalizeCapabilities normalizes capabilities to their canonical form,\n// removes duplicates, and sorts the results.\n//\n// It is similar to [github.com/docker/docker/oci/caps.NormalizeLegacyCapabilities],\n// but performs no validation based on supported capabilities.\nfunc normalizeCapabilities(caps []string) []string {\n\tvar normalized []string\n\n\tunique := make(map[string]struct{})\n\tfor _, c := range caps {\n\t\tc = normalizeCap(c)\n\t\tif _, ok := unique[c]; ok {\n\t\t\tcontinue\n\t\t}\n\t\tunique[c] = struct{}{}\n\t\tnormalized = append(normalized, c)\n\t}\n\n\tsort.Strings(normalized)\n\treturn normalized\n}\n\n// normalizeCap normalizes a capability to its canonical format by upper-casing\n// and adding a \"CAP_\" prefix (if not yet present). It also accepts the \"ALL\"\n// magic-value.\nfunc normalizeCap(cap string) string {\n\tcap = strings.ToUpper(cap)\n\tif cap == allCapabilities {\n\t\treturn cap\n\t}\n\tif !strings.HasPrefix(cap, \"CAP_\") {\n\t\tcap = \"CAP_\" + cap\n\t}\n\treturn cap\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_diff.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/container\"\n)\n\n// ContainerDiff shows differences in a container filesystem since it was started.\nfunc (cli *Client) ContainerDiff(ctx context.Context, containerID string) ([]container.FilesystemChange, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp, err := cli.get(ctx, \"/containers/\"+containerID+\"/changes\", url.Values{}, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar changes []container.FilesystemChange\n\terr = json.NewDecoder(resp.Body).Decode(&changes)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn changes, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_exec.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/http\"\n\n\t\"github.com/docker/docker/api/types\"\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/versions\"\n)\n\n// ContainerExecCreate creates a new exec configuration to run an exec process.\nfunc (cli *Client) ContainerExecCreate(ctx context.Context, containerID string, options container.ExecOptions) (container.ExecCreateResponse, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn container.ExecCreateResponse{}, err\n\t}\n\n\t// Make sure we negotiated (if the client is configured to do so),\n\t// as code below contains API-version specific handling of options.\n\t//\n\t// Normally, version-negotiation (if enabled) would not happen until\n\t// the API request is made.\n\tif err := cli.checkVersion(ctx); err != nil {\n\t\treturn container.ExecCreateResponse{}, err\n\t}\n\n\tif err := cli.NewVersionError(ctx, \"1.25\", \"env\"); len(options.Env) != 0 && err != nil {\n\t\treturn container.ExecCreateResponse{}, err\n\t}\n\tif versions.LessThan(cli.ClientVersion(), \"1.42\") {\n\t\toptions.ConsoleSize = nil\n\t}\n\n\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/exec\", nil, options, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn container.ExecCreateResponse{}, err\n\t}\n\n\tvar response container.ExecCreateResponse\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n\n// ContainerExecStart starts an exec process already created in the docker host.\nfunc (cli *Client) ContainerExecStart(ctx context.Context, execID string, config container.ExecStartOptions) error {\n\tif versions.LessThan(cli.ClientVersion(), \"1.42\") {\n\t\tconfig.ConsoleSize = nil\n\t}\n\tresp, err := cli.post(ctx, \"/exec/\"+execID+\"/start\", nil, config, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n\n// ContainerExecAttach attaches a connection to an exec process in the server.\n// It returns a types.HijackedConnection with the hijacked connection\n// and the a reader to get output. It's up to the called to close\n// the hijacked connection by calling types.HijackedResponse.Close.\nfunc (cli *Client) ContainerExecAttach(ctx context.Context, execID string, config container.ExecAttachOptions) (types.HijackedResponse, error) {\n\tif versions.LessThan(cli.ClientVersion(), \"1.42\") {\n\t\tconfig.ConsoleSize = nil\n\t}\n\treturn cli.postHijacked(ctx, \"/exec/\"+execID+\"/start\", nil, config, http.Header{\n\t\t\"Content-Type\": {\"application/json\"},\n\t})\n}\n\n// ContainerExecInspect returns information about a specific exec process on the docker host.\nfunc (cli *Client) ContainerExecInspect(ctx context.Context, execID string) (container.ExecInspect, error) {\n\tvar response container.ExecInspect\n\tresp, err := cli.get(ctx, \"/exec/\"+execID+\"/json\", nil, nil)\n\tif err != nil {\n\t\treturn response, err\n\t}\n\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\tensureReaderClosed(resp)\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_export.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/url\"\n)\n\n// ContainerExport retrieves the raw contents of a container\n// and returns them as an io.ReadCloser. It's up to the caller\n// to close the stream.\nfunc (cli *Client) ContainerExport(ctx context.Context, containerID string) (io.ReadCloser, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp, err := cli.get(ctx, \"/containers/\"+containerID+\"/export\", url.Values{}, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn resp.Body, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_inspect.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/container\"\n)\n\n// ContainerInspect returns the container information.\nfunc (cli *Client) ContainerInspect(ctx context.Context, containerID string) (container.InspectResponse, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn container.InspectResponse{}, err\n\t}\n\n\tresp, err := cli.get(ctx, \"/containers/\"+containerID+\"/json\", nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn container.InspectResponse{}, err\n\t}\n\n\tvar response container.InspectResponse\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n\n// ContainerInspectWithRaw returns the container information and its raw representation.\nfunc (cli *Client) ContainerInspectWithRaw(ctx context.Context, containerID string, getSize bool) (container.InspectResponse, []byte, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn container.InspectResponse{}, nil, err\n\t}\n\n\tquery := url.Values{}\n\tif getSize {\n\t\tquery.Set(\"size\", \"1\")\n\t}\n\tresp, err := cli.get(ctx, \"/containers/\"+containerID+\"/json\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn container.InspectResponse{}, nil, err\n\t}\n\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn container.InspectResponse{}, nil, err\n\t}\n\n\tvar response container.InspectResponse\n\trdr := bytes.NewReader(body)\n\terr = json.NewDecoder(rdr).Decode(&response)\n\treturn response, body, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_kill.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n)\n\n// ContainerKill terminates the container process but does not remove the container from the docker host.\nfunc (cli *Client) ContainerKill(ctx context.Context, containerID, signal string) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tif signal != \"\" {\n\t\tquery.Set(\"signal\", signal)\n\t}\n\n\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/kill\", query, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_list.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/filters\"\n)\n\n// ContainerList returns the list of containers in the docker host.\nfunc (cli *Client) ContainerList(ctx context.Context, options container.ListOptions) ([]container.Summary, error) {\n\tquery := url.Values{}\n\n\tif options.All {\n\t\tquery.Set(\"all\", \"1\")\n\t}\n\n\tif options.Limit > 0 {\n\t\tquery.Set(\"limit\", strconv.Itoa(options.Limit))\n\t}\n\n\tif options.Since != \"\" {\n\t\tquery.Set(\"since\", options.Since)\n\t}\n\n\tif options.Before != \"\" {\n\t\tquery.Set(\"before\", options.Before)\n\t}\n\n\tif options.Size {\n\t\tquery.Set(\"size\", \"1\")\n\t}\n\n\tif options.Filters.Len() > 0 {\n\t\t//nolint:staticcheck // ignore SA1019 for old code\n\t\tfilterJSON, err := filters.ToParamWithVersion(cli.version, options.Filters)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\n\tresp, err := cli.get(ctx, \"/containers/json\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar containers []container.Summary\n\terr = json.NewDecoder(resp.Body).Decode(&containers)\n\treturn containers, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_logs.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/url\"\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\ttimetypes \"github.com/docker/docker/api/types/time\"\n\t\"github.com/pkg/errors\"\n)\n\n// ContainerLogs returns the logs generated by a container in an io.ReadCloser.\n// It's up to the caller to close the stream.\n//\n// The stream format on the response will be in one of two formats:\n//\n// If the container is using a TTY, there is only a single stream (stdout), and\n// data is copied directly from the container output stream, no extra\n// multiplexing or headers.\n//\n// If the container is *not* using a TTY, streams for stdout and stderr are\n// multiplexed.\n// The format of the multiplexed stream is as follows:\n//\n//\t[8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}[]byte{OUTPUT}\n//\n// STREAM_TYPE can be 1 for stdout and 2 for stderr\n//\n// SIZE1, SIZE2, SIZE3, and SIZE4 are four bytes of uint32 encoded as big endian.\n// This is the size of OUTPUT.\n//\n// You can use github.com/docker/docker/pkg/stdcopy.StdCopy to demultiplex this\n// stream.\nfunc (cli *Client) ContainerLogs(ctx context.Context, containerID string, options container.LogsOptions) (io.ReadCloser, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tquery := url.Values{}\n\tif options.ShowStdout {\n\t\tquery.Set(\"stdout\", \"1\")\n\t}\n\n\tif options.ShowStderr {\n\t\tquery.Set(\"stderr\", \"1\")\n\t}\n\n\tif options.Since != \"\" {\n\t\tts, err := timetypes.GetTimestamp(options.Since, time.Now())\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrap(err, `invalid value for \"since\"`)\n\t\t}\n\t\tquery.Set(\"since\", ts)\n\t}\n\n\tif options.Until != \"\" {\n\t\tts, err := timetypes.GetTimestamp(options.Until, time.Now())\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrap(err, `invalid value for \"until\"`)\n\t\t}\n\t\tquery.Set(\"until\", ts)\n\t}\n\n\tif options.Timestamps {\n\t\tquery.Set(\"timestamps\", \"1\")\n\t}\n\n\tif options.Details {\n\t\tquery.Set(\"details\", \"1\")\n\t}\n\n\tif options.Follow {\n\t\tquery.Set(\"follow\", \"1\")\n\t}\n\tquery.Set(\"tail\", options.Tail)\n\n\tresp, err := cli.get(ctx, \"/containers/\"+containerID+\"/logs\", query, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn resp.Body, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_pause.go",
    "content": "package client\n\nimport \"context\"\n\n// ContainerPause pauses the main process of a given container without terminating it.\nfunc (cli *Client) ContainerPause(ctx context.Context, containerID string) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/pause\", nil, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_prune.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/filters\"\n)\n\n// ContainersPrune requests the daemon to delete unused data\nfunc (cli *Client) ContainersPrune(ctx context.Context, pruneFilters filters.Args) (container.PruneReport, error) {\n\tif err := cli.NewVersionError(ctx, \"1.25\", \"container prune\"); err != nil {\n\t\treturn container.PruneReport{}, err\n\t}\n\n\tquery, err := getFiltersQuery(pruneFilters)\n\tif err != nil {\n\t\treturn container.PruneReport{}, err\n\t}\n\n\tresp, err := cli.post(ctx, \"/containers/prune\", query, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn container.PruneReport{}, err\n\t}\n\n\tvar report container.PruneReport\n\tif err := json.NewDecoder(resp.Body).Decode(&report); err != nil {\n\t\treturn container.PruneReport{}, fmt.Errorf(\"Error retrieving disk usage: %v\", err)\n\t}\n\n\treturn report, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_remove.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/container\"\n)\n\n// ContainerRemove kills and removes a container from the docker host.\nfunc (cli *Client) ContainerRemove(ctx context.Context, containerID string, options container.RemoveOptions) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tif options.RemoveVolumes {\n\t\tquery.Set(\"v\", \"1\")\n\t}\n\tif options.RemoveLinks {\n\t\tquery.Set(\"link\", \"1\")\n\t}\n\n\tif options.Force {\n\t\tquery.Set(\"force\", \"1\")\n\t}\n\n\tresp, err := cli.delete(ctx, \"/containers/\"+containerID, query, nil)\n\tdefer ensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_rename.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n)\n\n// ContainerRename changes the name of a given container.\nfunc (cli *Client) ContainerRename(ctx context.Context, containerID, newContainerName string) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"name\", newContainerName)\n\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/rename\", query, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_resize.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"github.com/docker/docker/api/types/container\"\n)\n\n// ContainerResize changes the size of the tty for a container.\nfunc (cli *Client) ContainerResize(ctx context.Context, containerID string, options container.ResizeOptions) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn cli.resize(ctx, \"/containers/\"+containerID, options.Height, options.Width)\n}\n\n// ContainerExecResize changes the size of the tty for an exec process running inside a container.\nfunc (cli *Client) ContainerExecResize(ctx context.Context, execID string, options container.ResizeOptions) error {\n\texecID, err := trimID(\"exec\", execID)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn cli.resize(ctx, \"/exec/\"+execID, options.Height, options.Width)\n}\n\nfunc (cli *Client) resize(ctx context.Context, basePath string, height, width uint) error {\n\t// FIXME(thaJeztah): the API / backend accepts uint32, but container.ResizeOptions uses uint.\n\tquery := url.Values{}\n\tquery.Set(\"h\", strconv.FormatUint(uint64(height), 10))\n\tquery.Set(\"w\", strconv.FormatUint(uint64(width), 10))\n\n\tresp, err := cli.post(ctx, basePath+\"/resize\", query, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_restart.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/versions\"\n)\n\n// ContainerRestart stops and starts a container again.\n// It makes the daemon wait for the container to be up again for\n// a specific amount of time, given the timeout.\nfunc (cli *Client) ContainerRestart(ctx context.Context, containerID string, options container.StopOptions) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tif options.Timeout != nil {\n\t\tquery.Set(\"t\", strconv.Itoa(*options.Timeout))\n\t}\n\tif options.Signal != \"\" {\n\t\t// Make sure we negotiated (if the client is configured to do so),\n\t\t// as code below contains API-version specific handling of options.\n\t\t//\n\t\t// Normally, version-negotiation (if enabled) would not happen until\n\t\t// the API request is made.\n\t\tif err := cli.checkVersion(ctx); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif versions.GreaterThanOrEqualTo(cli.version, \"1.42\") {\n\t\t\tquery.Set(\"signal\", options.Signal)\n\t\t}\n\t}\n\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/restart\", query, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_start.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/container\"\n)\n\n// ContainerStart sends a request to the docker daemon to start a container.\nfunc (cli *Client) ContainerStart(ctx context.Context, containerID string, options container.StartOptions) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tif options.CheckpointID != \"\" {\n\t\tquery.Set(\"checkpoint\", options.CheckpointID)\n\t}\n\tif options.CheckpointDir != \"\" {\n\t\tquery.Set(\"checkpoint-dir\", options.CheckpointDir)\n\t}\n\n\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/start\", query, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_stats.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/container\"\n)\n\n// ContainerStats returns near realtime stats for a given container.\n// It's up to the caller to close the io.ReadCloser returned.\nfunc (cli *Client) ContainerStats(ctx context.Context, containerID string, stream bool) (container.StatsResponseReader, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn container.StatsResponseReader{}, err\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"stream\", \"0\")\n\tif stream {\n\t\tquery.Set(\"stream\", \"1\")\n\t}\n\n\tresp, err := cli.get(ctx, \"/containers/\"+containerID+\"/stats\", query, nil)\n\tif err != nil {\n\t\treturn container.StatsResponseReader{}, err\n\t}\n\n\treturn container.StatsResponseReader{\n\t\tBody:   resp.Body,\n\t\tOSType: resp.Header.Get(\"Ostype\"),\n\t}, nil\n}\n\n// ContainerStatsOneShot gets a single stat entry from a container.\n// It differs from `ContainerStats` in that the API should not wait to prime the stats\nfunc (cli *Client) ContainerStatsOneShot(ctx context.Context, containerID string) (container.StatsResponseReader, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn container.StatsResponseReader{}, err\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"stream\", \"0\")\n\tquery.Set(\"one-shot\", \"1\")\n\n\tresp, err := cli.get(ctx, \"/containers/\"+containerID+\"/stats\", query, nil)\n\tif err != nil {\n\t\treturn container.StatsResponseReader{}, err\n\t}\n\n\treturn container.StatsResponseReader{\n\t\tBody:   resp.Body,\n\t\tOSType: resp.Header.Get(\"Ostype\"),\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_stop.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/versions\"\n)\n\n// ContainerStop stops a container. In case the container fails to stop\n// gracefully within a time frame specified by the timeout argument,\n// it is forcefully terminated (killed).\n//\n// If the timeout is nil, the container's StopTimeout value is used, if set,\n// otherwise the engine default. A negative timeout value can be specified,\n// meaning no timeout, i.e. no forceful termination is performed.\nfunc (cli *Client) ContainerStop(ctx context.Context, containerID string, options container.StopOptions) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tif options.Timeout != nil {\n\t\tquery.Set(\"t\", strconv.Itoa(*options.Timeout))\n\t}\n\tif options.Signal != \"\" {\n\t\t// Make sure we negotiated (if the client is configured to do so),\n\t\t// as code below contains API-version specific handling of options.\n\t\t//\n\t\t// Normally, version-negotiation (if enabled) would not happen until\n\t\t// the API request is made.\n\t\tif err := cli.checkVersion(ctx); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif versions.GreaterThanOrEqualTo(cli.version, \"1.42\") {\n\t\t\tquery.Set(\"signal\", options.Signal)\n\t\t}\n\t}\n\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/stop\", query, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_top.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/docker/docker/api/types/container\"\n)\n\n// ContainerTop shows process information from within a container.\nfunc (cli *Client) ContainerTop(ctx context.Context, containerID string, arguments []string) (container.TopResponse, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn container.TopResponse{}, err\n\t}\n\n\tquery := url.Values{}\n\tif len(arguments) > 0 {\n\t\tquery.Set(\"ps_args\", strings.Join(arguments, \" \"))\n\t}\n\n\tresp, err := cli.get(ctx, \"/containers/\"+containerID+\"/top\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn container.TopResponse{}, err\n\t}\n\n\tvar response container.TopResponse\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_unpause.go",
    "content": "package client\n\nimport \"context\"\n\n// ContainerUnpause resumes the process execution within a container\nfunc (cli *Client) ContainerUnpause(ctx context.Context, containerID string) error {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/unpause\", nil, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_update.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\n\t\"github.com/docker/docker/api/types/container\"\n)\n\n// ContainerUpdate updates the resources of a container.\nfunc (cli *Client) ContainerUpdate(ctx context.Context, containerID string, updateConfig container.UpdateConfig) (container.UpdateResponse, error) {\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn container.UpdateResponse{}, err\n\t}\n\n\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/update\", nil, updateConfig, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn container.UpdateResponse{}, err\n\t}\n\n\tvar response container.UpdateResponse\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/container_wait.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"io\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/versions\"\n)\n\nconst containerWaitErrorMsgLimit = 2 * 1024 /* Max: 2KiB */\n\n// ContainerWait waits until the specified container is in a certain state\n// indicated by the given condition, either \"not-running\" (default),\n// \"next-exit\", or \"removed\".\n//\n// If this client's API version is before 1.30, condition is ignored and\n// ContainerWait will return immediately with the two channels, as the server\n// will wait as if the condition were \"not-running\".\n//\n// If this client's API version is at least 1.30, ContainerWait blocks until\n// the request has been acknowledged by the server (with a response header),\n// then returns two channels on which the caller can wait for the exit status\n// of the container or an error if there was a problem either beginning the\n// wait request or in getting the response. This allows the caller to\n// synchronize ContainerWait with other calls, such as specifying a\n// \"next-exit\" condition before issuing a ContainerStart request.\nfunc (cli *Client) ContainerWait(ctx context.Context, containerID string, condition container.WaitCondition) (<-chan container.WaitResponse, <-chan error) {\n\tresultC := make(chan container.WaitResponse)\n\terrC := make(chan error, 1)\n\n\tcontainerID, err := trimID(\"container\", containerID)\n\tif err != nil {\n\t\terrC <- err\n\t\treturn resultC, errC\n\t}\n\n\t// Make sure we negotiated (if the client is configured to do so),\n\t// as code below contains API-version specific handling of options.\n\t//\n\t// Normally, version-negotiation (if enabled) would not happen until\n\t// the API request is made.\n\tif err := cli.checkVersion(ctx); err != nil {\n\t\terrC <- err\n\t\treturn resultC, errC\n\t}\n\tif versions.LessThan(cli.ClientVersion(), \"1.30\") {\n\t\treturn cli.legacyContainerWait(ctx, containerID)\n\t}\n\n\tquery := url.Values{}\n\tif condition != \"\" {\n\t\tquery.Set(\"condition\", string(condition))\n\t}\n\n\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/wait\", query, nil, nil)\n\tif err != nil {\n\t\tdefer ensureReaderClosed(resp)\n\t\terrC <- err\n\t\treturn resultC, errC\n\t}\n\n\tgo func() {\n\t\tdefer ensureReaderClosed(resp)\n\n\t\tresponseText := bytes.NewBuffer(nil)\n\t\tstream := io.TeeReader(resp.Body, responseText)\n\n\t\tvar res container.WaitResponse\n\t\tif err := json.NewDecoder(stream).Decode(&res); err != nil {\n\t\t\t// NOTE(nicks): The /wait API does not work well with HTTP proxies.\n\t\t\t// At any time, the proxy could cut off the response stream.\n\t\t\t//\n\t\t\t// But because the HTTP status has already been written, the proxy's\n\t\t\t// only option is to write a plaintext error message.\n\t\t\t//\n\t\t\t// If there's a JSON parsing error, read the real error message\n\t\t\t// off the body and send it to the client.\n\t\t\tif errors.As(err, new(*json.SyntaxError)) {\n\t\t\t\t_, _ = io.ReadAll(io.LimitReader(stream, containerWaitErrorMsgLimit))\n\t\t\t\terrC <- errors.New(responseText.String())\n\t\t\t} else {\n\t\t\t\terrC <- err\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tresultC <- res\n\t}()\n\n\treturn resultC, errC\n}\n\n// legacyContainerWait returns immediately and doesn't have an option to wait\n// until the container is removed.\nfunc (cli *Client) legacyContainerWait(ctx context.Context, containerID string) (<-chan container.WaitResponse, <-chan error) {\n\tresultC := make(chan container.WaitResponse)\n\terrC := make(chan error)\n\n\tgo func() {\n\t\tresp, err := cli.post(ctx, \"/containers/\"+containerID+\"/wait\", nil, nil, nil)\n\t\tif err != nil {\n\t\t\terrC <- err\n\t\t\treturn\n\t\t}\n\t\tdefer ensureReaderClosed(resp)\n\n\t\tvar res container.WaitResponse\n\t\tif err := json.NewDecoder(resp.Body).Decode(&res); err != nil {\n\t\t\terrC <- err\n\t\t\treturn\n\t\t}\n\n\t\tresultC <- res\n\t}()\n\n\treturn resultC, errC\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/disk_usage.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types\"\n)\n\n// DiskUsage requests the current data usage from the daemon\nfunc (cli *Client) DiskUsage(ctx context.Context, options types.DiskUsageOptions) (types.DiskUsage, error) {\n\tvar query url.Values\n\tif len(options.Types) > 0 {\n\t\tquery = url.Values{}\n\t\tfor _, t := range options.Types {\n\t\t\tquery.Add(\"type\", string(t))\n\t\t}\n\t}\n\n\tresp, err := cli.get(ctx, \"/system/df\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn types.DiskUsage{}, err\n\t}\n\n\tvar du types.DiskUsage\n\tif err := json.NewDecoder(resp.Body).Decode(&du); err != nil {\n\t\treturn types.DiskUsage{}, fmt.Errorf(\"Error retrieving disk usage: %v\", err)\n\t}\n\treturn du, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/distribution_inspect.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/registry\"\n)\n\n// DistributionInspect returns the image digest with the full manifest.\nfunc (cli *Client) DistributionInspect(ctx context.Context, imageRef, encodedRegistryAuth string) (registry.DistributionInspect, error) {\n\tif imageRef == \"\" {\n\t\treturn registry.DistributionInspect{}, objectNotFoundError{object: \"distribution\", id: imageRef}\n\t}\n\n\tif err := cli.NewVersionError(ctx, \"1.30\", \"distribution inspect\"); err != nil {\n\t\treturn registry.DistributionInspect{}, err\n\t}\n\n\tvar headers http.Header\n\tif encodedRegistryAuth != \"\" {\n\t\theaders = http.Header{\n\t\t\tregistry.AuthHeader: {encodedRegistryAuth},\n\t\t}\n\t}\n\n\t// Contact the registry to retrieve digest and platform information\n\tresp, err := cli.get(ctx, \"/distribution/\"+imageRef+\"/json\", url.Values{}, headers)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn registry.DistributionInspect{}, err\n\t}\n\n\tvar distributionInspect registry.DistributionInspect\n\terr = json.NewDecoder(resp.Body).Decode(&distributionInspect)\n\treturn distributionInspect, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/envvars.go",
    "content": "package client\n\nconst (\n\t// EnvOverrideHost is the name of the environment variable that can be used\n\t// to override the default host to connect to (DefaultDockerHost).\n\t//\n\t// This env-var is read by FromEnv and WithHostFromEnv and when set to a\n\t// non-empty value, takes precedence over the default host (which is platform\n\t// specific), or any host already set.\n\tEnvOverrideHost = \"DOCKER_HOST\"\n\n\t// EnvOverrideAPIVersion is the name of the environment variable that can\n\t// be used to override the API version to use. Value should be\n\t// formatted as MAJOR.MINOR, for example, \"1.19\".\n\t//\n\t// This env-var is read by FromEnv and WithVersionFromEnv and when set to a\n\t// non-empty value, takes precedence over API version negotiation.\n\t//\n\t// This environment variable should be used for debugging purposes only, as\n\t// it can set the client to use an incompatible (or invalid) API version.\n\tEnvOverrideAPIVersion = \"DOCKER_API_VERSION\"\n\n\t// EnvOverrideCertPath is the name of the environment variable that can be\n\t// used to specify the directory from which to load the TLS certificates\n\t// (ca.pem, cert.pem, key.pem) from. These certificates are used to configure\n\t// the Client for a TCP connection protected by TLS client authentication.\n\t//\n\t// TLS certificate verification is enabled by default if the Client is configured\n\t// to use a TLS connection. Refer to EnvTLSVerify below to learn how to\n\t// disable verification for testing purposes.\n\t//\n\t// WARNING: Access to the remote API is equivalent to root access to the\n\t// host where the daemon runs. Do not expose the API without protection,\n\t// and only if needed. Make sure you are familiar with the \"daemon attack\n\t// surface\" (https://docs.docker.com/go/attack-surface/).\n\t//\n\t// For local access to the API, it is recommended to connect with the daemon\n\t// using the default local socket connection (on Linux), or the named pipe\n\t// (on Windows).\n\t//\n\t// If you need to access the API of a remote daemon, consider using an SSH\n\t// (ssh://) connection, which is easier to set up, and requires no additional\n\t// configuration if the host is accessible using ssh.\n\t//\n\t// If you cannot use the alternatives above, and you must expose the API over\n\t// a TCP connection, refer to https://docs.docker.com/engine/security/protect-access/\n\t// to learn how to configure the daemon and client to use a TCP connection\n\t// with TLS client authentication. Make sure you know the differences between\n\t// a regular TLS connection and a TLS connection protected by TLS client\n\t// authentication, and verify that the API cannot be accessed by other clients.\n\tEnvOverrideCertPath = \"DOCKER_CERT_PATH\"\n\n\t// EnvTLSVerify is the name of the environment variable that can be used to\n\t// enable or disable TLS certificate verification. When set to a non-empty\n\t// value, TLS certificate verification is enabled, and the client is configured\n\t// to use a TLS connection, using certificates from the default directories\n\t// (within `~/.docker`); refer to EnvOverrideCertPath above for additional\n\t// details.\n\t//\n\t// WARNING: Access to the remote API is equivalent to root access to the\n\t// host where the daemon runs. Do not expose the API without protection,\n\t// and only if needed. Make sure you are familiar with the \"daemon attack\n\t// surface\" (https://docs.docker.com/go/attack-surface/).\n\t//\n\t// Before setting up your client and daemon to use a TCP connection with TLS\n\t// client authentication, consider using one of the alternatives mentioned\n\t// in EnvOverrideCertPath above.\n\t//\n\t// Disabling TLS certificate verification (for testing purposes)\n\t//\n\t// TLS certificate verification is enabled by default if the Client is configured\n\t// to use a TLS connection, and it is highly recommended to keep verification\n\t// enabled to prevent machine-in-the-middle attacks. Refer to the documentation\n\t// at https://docs.docker.com/engine/security/protect-access/ and pages linked\n\t// from that page to learn how to configure the daemon and client to use a\n\t// TCP connection with TLS client authentication enabled.\n\t//\n\t// Set the \"DOCKER_TLS_VERIFY\" environment to an empty string (\"\") to\n\t// disable TLS certificate verification. Disabling verification is insecure,\n\t// so should only be done for testing purposes. From the Go documentation\n\t// (https://pkg.go.dev/crypto/tls#Config):\n\t//\n\t// InsecureSkipVerify controls whether a client verifies the server's\n\t// certificate chain and host name. If InsecureSkipVerify is true, crypto/tls\n\t// accepts any certificate presented by the server and any host name in that\n\t// certificate. In this mode, TLS is susceptible to machine-in-the-middle\n\t// attacks unless custom verification is used. This should be used only for\n\t// testing or in combination with VerifyConnection or VerifyPeerCertificate.\n\tEnvTLSVerify = \"DOCKER_TLS_VERIFY\"\n)\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/errors.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\n\tcerrdefs \"github.com/containerd/errdefs\"\n\t\"github.com/containerd/errdefs/pkg/errhttp\"\n\t\"github.com/docker/docker/api/types/versions\"\n)\n\n// errConnectionFailed implements an error returned when connection failed.\ntype errConnectionFailed struct {\n\terror\n}\n\n// Error returns a string representation of an errConnectionFailed\nfunc (e errConnectionFailed) Error() string {\n\treturn e.error.Error()\n}\n\nfunc (e errConnectionFailed) Unwrap() error {\n\treturn e.error\n}\n\n// IsErrConnectionFailed returns true if the error is caused by connection failed.\nfunc IsErrConnectionFailed(err error) bool {\n\treturn errors.As(err, &errConnectionFailed{})\n}\n\n// ErrorConnectionFailed returns an error with host in the error message when connection to docker daemon failed.\n//\n// Deprecated: this function was only used internally, and will be removed in the next release.\nfunc ErrorConnectionFailed(host string) error {\n\treturn connectionFailed(host)\n}\n\n// connectionFailed returns an error with host in the error message when connection\n// to docker daemon failed.\nfunc connectionFailed(host string) error {\n\tvar err error\n\tif host == \"\" {\n\t\terr = errors.New(\"Cannot connect to the Docker daemon. Is the docker daemon running on this host?\")\n\t} else {\n\t\terr = fmt.Errorf(\"Cannot connect to the Docker daemon at %s. Is the docker daemon running?\", host)\n\t}\n\treturn errConnectionFailed{error: err}\n}\n\n// IsErrNotFound returns true if the error is a NotFound error, which is returned\n// by the API when some object is not found. It is an alias for [cerrdefs.IsNotFound].\n//\n// Deprecated: use [cerrdefs.IsNotFound] instead.\nfunc IsErrNotFound(err error) bool {\n\treturn cerrdefs.IsNotFound(err)\n}\n\ntype objectNotFoundError struct {\n\tobject string\n\tid     string\n}\n\nfunc (e objectNotFoundError) NotFound() {}\n\nfunc (e objectNotFoundError) Error() string {\n\treturn fmt.Sprintf(\"Error: No such %s: %s\", e.object, e.id)\n}\n\n// NewVersionError returns an error if the APIVersion required is less than the\n// current supported version.\n//\n// It performs API-version negotiation if the Client is configured with this\n// option, otherwise it assumes the latest API version is used.\nfunc (cli *Client) NewVersionError(ctx context.Context, APIrequired, feature string) error {\n\t// Make sure we negotiated (if the client is configured to do so),\n\t// as code below contains API-version specific handling of options.\n\t//\n\t// Normally, version-negotiation (if enabled) would not happen until\n\t// the API request is made.\n\tif err := cli.checkVersion(ctx); err != nil {\n\t\treturn err\n\t}\n\tif cli.version != \"\" && versions.LessThan(cli.version, APIrequired) {\n\t\treturn fmt.Errorf(\"%q requires API version %s, but the Docker daemon API version is %s\", feature, APIrequired, cli.version)\n\t}\n\treturn nil\n}\n\ntype httpError struct {\n\terr    error\n\terrdef error\n}\n\nfunc (e *httpError) Error() string {\n\treturn e.err.Error()\n}\n\nfunc (e *httpError) Unwrap() error {\n\treturn e.err\n}\n\nfunc (e *httpError) Is(target error) bool {\n\treturn errors.Is(e.errdef, target)\n}\n\n// httpErrorFromStatusCode creates an errdef error, based on the provided HTTP status-code\nfunc httpErrorFromStatusCode(err error, statusCode int) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\tbase := errhttp.ToNative(statusCode)\n\tif base != nil {\n\t\treturn &httpError{err: err, errdef: base}\n\t}\n\n\tswitch {\n\tcase statusCode >= http.StatusOK && statusCode < http.StatusBadRequest:\n\t\t// it's a client error\n\t\treturn err\n\tcase statusCode >= http.StatusBadRequest && statusCode < http.StatusInternalServerError:\n\t\treturn &httpError{err: err, errdef: cerrdefs.ErrInvalidArgument}\n\tcase statusCode >= http.StatusInternalServerError && statusCode < 600:\n\t\treturn &httpError{err: err, errdef: cerrdefs.ErrInternal}\n\tdefault:\n\t\treturn &httpError{err: err, errdef: cerrdefs.ErrUnknown}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/events.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/events\"\n\t\"github.com/docker/docker/api/types/filters\"\n\ttimetypes \"github.com/docker/docker/api/types/time\"\n)\n\n// Events returns a stream of events in the daemon. It's up to the caller to close the stream\n// by cancelling the context. Once the stream has been completely read an io.EOF error will\n// be sent over the error channel. If an error is sent all processing will be stopped. It's up\n// to the caller to reopen the stream in the event of an error by reinvoking this method.\nfunc (cli *Client) Events(ctx context.Context, options events.ListOptions) (<-chan events.Message, <-chan error) {\n\tmessages := make(chan events.Message)\n\terrs := make(chan error, 1)\n\n\tstarted := make(chan struct{})\n\tgo func() {\n\t\tdefer close(errs)\n\n\t\tquery, err := buildEventsQueryParams(cli.version, options)\n\t\tif err != nil {\n\t\t\tclose(started)\n\t\t\terrs <- err\n\t\t\treturn\n\t\t}\n\n\t\tresp, err := cli.get(ctx, \"/events\", query, nil)\n\t\tif err != nil {\n\t\t\tclose(started)\n\t\t\terrs <- err\n\t\t\treturn\n\t\t}\n\t\tdefer resp.Body.Close()\n\n\t\tdecoder := json.NewDecoder(resp.Body)\n\n\t\tclose(started)\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\terrs <- ctx.Err()\n\t\t\t\treturn\n\t\t\tdefault:\n\t\t\t\tvar event events.Message\n\t\t\t\tif err := decoder.Decode(&event); err != nil {\n\t\t\t\t\terrs <- err\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tselect {\n\t\t\t\tcase messages <- event:\n\t\t\t\tcase <-ctx.Done():\n\t\t\t\t\terrs <- ctx.Err()\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}()\n\t<-started\n\n\treturn messages, errs\n}\n\nfunc buildEventsQueryParams(cliVersion string, options events.ListOptions) (url.Values, error) {\n\tquery := url.Values{}\n\tref := time.Now()\n\n\tif options.Since != \"\" {\n\t\tts, err := timetypes.GetTimestamp(options.Since, ref)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tquery.Set(\"since\", ts)\n\t}\n\n\tif options.Until != \"\" {\n\t\tts, err := timetypes.GetTimestamp(options.Until, ref)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tquery.Set(\"until\", ts)\n\t}\n\n\tif options.Filters.Len() > 0 {\n\t\t//nolint:staticcheck // ignore SA1019 for old code\n\t\tfilterJSON, err := filters.ToParamWithVersion(cliVersion, options.Filters)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\n\treturn query, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/hijack.go",
    "content": "package client\n\nimport (\n\t\"bufio\"\n\t\"context\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types\"\n\t\"github.com/docker/docker/api/types/versions\"\n\t\"github.com/pkg/errors\"\n\t\"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n)\n\n// postHijacked sends a POST request and hijacks the connection.\nfunc (cli *Client) postHijacked(ctx context.Context, path string, query url.Values, body interface{}, headers map[string][]string) (types.HijackedResponse, error) {\n\tbodyEncoded, err := encodeData(body)\n\tif err != nil {\n\t\treturn types.HijackedResponse{}, err\n\t}\n\treq, err := cli.buildRequest(ctx, http.MethodPost, cli.getAPIPath(ctx, path, query), bodyEncoded, headers)\n\tif err != nil {\n\t\treturn types.HijackedResponse{}, err\n\t}\n\tconn, mediaType, err := setupHijackConn(cli.dialer(), req, \"tcp\")\n\tif err != nil {\n\t\treturn types.HijackedResponse{}, err\n\t}\n\n\tif versions.LessThan(cli.ClientVersion(), \"1.42\") {\n\t\t// Prior to 1.42, Content-Type is always set to raw-stream and not relevant\n\t\tmediaType = \"\"\n\t}\n\n\treturn types.NewHijackedResponse(conn, mediaType), nil\n}\n\n// DialHijack returns a hijacked connection with negotiated protocol proto.\nfunc (cli *Client) DialHijack(ctx context.Context, url, proto string, meta map[string][]string) (net.Conn, error) {\n\treq, err := http.NewRequestWithContext(ctx, http.MethodPost, url, http.NoBody)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq = cli.addHeaders(req, meta)\n\n\tconn, _, err := setupHijackConn(cli.Dialer(), req, proto)\n\treturn conn, err\n}\n\nfunc setupHijackConn(dialer func(context.Context) (net.Conn, error), req *http.Request, proto string) (_ net.Conn, _ string, retErr error) {\n\tctx := req.Context()\n\treq.Header.Set(\"Connection\", \"Upgrade\")\n\treq.Header.Set(\"Upgrade\", proto)\n\n\tconn, err := dialer(ctx)\n\tif err != nil {\n\t\treturn nil, \"\", errors.Wrap(err, \"cannot connect to the Docker daemon. Is 'docker daemon' running on this host?\")\n\t}\n\tdefer func() {\n\t\tif retErr != nil {\n\t\t\tconn.Close()\n\t\t}\n\t}()\n\n\t// When we set up a TCP connection for hijack, there could be long periods\n\t// of inactivity (a long running command with no output) that in certain\n\t// network setups may cause ECONNTIMEOUT, leaving the client in an unknown\n\t// state. Setting TCP KeepAlive on the socket connection will prohibit\n\t// ECONNTIMEOUT unless the socket connection truly is broken\n\tif tcpConn, ok := conn.(*net.TCPConn); ok {\n\t\t_ = tcpConn.SetKeepAlive(true)\n\t\t_ = tcpConn.SetKeepAlivePeriod(30 * time.Second)\n\t}\n\n\thc := &hijackedConn{conn, bufio.NewReader(conn)}\n\n\t// Server hijacks the connection, error 'connection closed' expected\n\tresp, err := otelhttp.NewTransport(hc).RoundTrip(req)\n\tif err != nil {\n\t\treturn nil, \"\", err\n\t}\n\tif resp.StatusCode != http.StatusSwitchingProtocols {\n\t\t_ = resp.Body.Close()\n\t\treturn nil, \"\", fmt.Errorf(\"unable to upgrade to %s, received %d\", proto, resp.StatusCode)\n\t}\n\n\tif hc.r.Buffered() > 0 {\n\t\t// If there is buffered content, wrap the connection.  We return an\n\t\t// object that implements CloseWrite if the underlying connection\n\t\t// implements it.\n\t\tif _, ok := hc.Conn.(types.CloseWriter); ok {\n\t\t\tconn = &hijackedConnCloseWriter{hc}\n\t\t} else {\n\t\t\tconn = hc\n\t\t}\n\t} else {\n\t\thc.r.Reset(nil)\n\t}\n\n\treturn conn, resp.Header.Get(\"Content-Type\"), nil\n}\n\n// hijackedConn wraps a net.Conn and is returned by setupHijackConn in the case\n// that a) there was already buffered data in the http layer when Hijack() was\n// called, and b) the underlying net.Conn does *not* implement CloseWrite().\n// hijackedConn does not implement CloseWrite() either.\ntype hijackedConn struct {\n\tnet.Conn\n\tr *bufio.Reader\n}\n\nfunc (c *hijackedConn) RoundTrip(req *http.Request) (*http.Response, error) {\n\tif err := req.Write(c.Conn); err != nil {\n\t\treturn nil, err\n\t}\n\treturn http.ReadResponse(c.r, req)\n}\n\nfunc (c *hijackedConn) Read(b []byte) (int, error) {\n\treturn c.r.Read(b)\n}\n\n// hijackedConnCloseWriter is a hijackedConn which additionally implements\n// CloseWrite().  It is returned by setupHijackConn in the case that a) there\n// was already buffered data in the http layer when Hijack() was called, and b)\n// the underlying net.Conn *does* implement CloseWrite().\ntype hijackedConnCloseWriter struct {\n\t*hijackedConn\n}\n\nvar _ types.CloseWriter = &hijackedConnCloseWriter{}\n\nfunc (c *hijackedConnCloseWriter) CloseWrite() error {\n\tconn := c.Conn.(types.CloseWriter)\n\treturn conn.CloseWrite()\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_build.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/docker/docker/api/types/build\"\n\t\"github.com/docker/docker/api/types/container\"\n\t\"github.com/docker/docker/api/types/network\"\n)\n\n// ImageBuild sends a request to the daemon to build images.\n// The Body in the response implements an io.ReadCloser and it's up to the caller to\n// close it.\nfunc (cli *Client) ImageBuild(ctx context.Context, buildContext io.Reader, options build.ImageBuildOptions) (build.ImageBuildResponse, error) {\n\tquery, err := cli.imageBuildOptionsToQuery(ctx, options)\n\tif err != nil {\n\t\treturn build.ImageBuildResponse{}, err\n\t}\n\n\tbuf, err := json.Marshal(options.AuthConfigs)\n\tif err != nil {\n\t\treturn build.ImageBuildResponse{}, err\n\t}\n\n\theaders := http.Header{}\n\theaders.Add(\"X-Registry-Config\", base64.URLEncoding.EncodeToString(buf))\n\theaders.Set(\"Content-Type\", \"application/x-tar\")\n\n\tresp, err := cli.postRaw(ctx, \"/build\", query, buildContext, headers)\n\tif err != nil {\n\t\treturn build.ImageBuildResponse{}, err\n\t}\n\n\treturn build.ImageBuildResponse{\n\t\tBody:   resp.Body,\n\t\tOSType: resp.Header.Get(\"Ostype\"),\n\t}, nil\n}\n\nfunc (cli *Client) imageBuildOptionsToQuery(ctx context.Context, options build.ImageBuildOptions) (url.Values, error) {\n\tquery := url.Values{}\n\tif len(options.Tags) > 0 {\n\t\tquery[\"t\"] = options.Tags\n\t}\n\tif len(options.SecurityOpt) > 0 {\n\t\tquery[\"securityopt\"] = options.SecurityOpt\n\t}\n\tif len(options.ExtraHosts) > 0 {\n\t\tquery[\"extrahosts\"] = options.ExtraHosts\n\t}\n\tif options.SuppressOutput {\n\t\tquery.Set(\"q\", \"1\")\n\t}\n\tif options.RemoteContext != \"\" {\n\t\tquery.Set(\"remote\", options.RemoteContext)\n\t}\n\tif options.NoCache {\n\t\tquery.Set(\"nocache\", \"1\")\n\t}\n\tif !options.Remove {\n\t\t// only send value when opting out because the daemon's default is\n\t\t// to remove intermediate containers after a successful build,\n\t\t//\n\t\t// TODO(thaJeztah): deprecate \"Remove\" option, and provide a \"NoRemove\" or \"Keep\" option instead.\n\t\tquery.Set(\"rm\", \"0\")\n\t}\n\n\tif options.ForceRemove {\n\t\tquery.Set(\"forcerm\", \"1\")\n\t}\n\n\tif options.PullParent {\n\t\tquery.Set(\"pull\", \"1\")\n\t}\n\n\tif options.Squash {\n\t\tif err := cli.NewVersionError(ctx, \"1.25\", \"squash\"); err != nil {\n\t\t\treturn query, err\n\t\t}\n\t\tquery.Set(\"squash\", \"1\")\n\t}\n\n\tif !container.Isolation.IsDefault(options.Isolation) {\n\t\tquery.Set(\"isolation\", string(options.Isolation))\n\t}\n\n\tif options.CPUSetCPUs != \"\" {\n\t\tquery.Set(\"cpusetcpus\", options.CPUSetCPUs)\n\t}\n\tif options.NetworkMode != \"\" && options.NetworkMode != network.NetworkDefault {\n\t\tquery.Set(\"networkmode\", options.NetworkMode)\n\t}\n\tif options.CPUSetMems != \"\" {\n\t\tquery.Set(\"cpusetmems\", options.CPUSetMems)\n\t}\n\tif options.CPUShares != 0 {\n\t\tquery.Set(\"cpushares\", strconv.FormatInt(options.CPUShares, 10))\n\t}\n\tif options.CPUQuota != 0 {\n\t\tquery.Set(\"cpuquota\", strconv.FormatInt(options.CPUQuota, 10))\n\t}\n\tif options.CPUPeriod != 0 {\n\t\tquery.Set(\"cpuperiod\", strconv.FormatInt(options.CPUPeriod, 10))\n\t}\n\tif options.Memory != 0 {\n\t\tquery.Set(\"memory\", strconv.FormatInt(options.Memory, 10))\n\t}\n\tif options.MemorySwap != 0 {\n\t\tquery.Set(\"memswap\", strconv.FormatInt(options.MemorySwap, 10))\n\t}\n\tif options.CgroupParent != \"\" {\n\t\tquery.Set(\"cgroupparent\", options.CgroupParent)\n\t}\n\tif options.ShmSize != 0 {\n\t\tquery.Set(\"shmsize\", strconv.FormatInt(options.ShmSize, 10))\n\t}\n\tif options.Dockerfile != \"\" {\n\t\tquery.Set(\"dockerfile\", options.Dockerfile)\n\t}\n\tif options.Target != \"\" {\n\t\tquery.Set(\"target\", options.Target)\n\t}\n\tif len(options.Ulimits) != 0 {\n\t\tulimitsJSON, err := json.Marshal(options.Ulimits)\n\t\tif err != nil {\n\t\t\treturn query, err\n\t\t}\n\t\tquery.Set(\"ulimits\", string(ulimitsJSON))\n\t}\n\tif len(options.BuildArgs) != 0 {\n\t\tbuildArgsJSON, err := json.Marshal(options.BuildArgs)\n\t\tif err != nil {\n\t\t\treturn query, err\n\t\t}\n\t\tquery.Set(\"buildargs\", string(buildArgsJSON))\n\t}\n\tif len(options.Labels) != 0 {\n\t\tlabelsJSON, err := json.Marshal(options.Labels)\n\t\tif err != nil {\n\t\t\treturn query, err\n\t\t}\n\t\tquery.Set(\"labels\", string(labelsJSON))\n\t}\n\tif len(options.CacheFrom) != 0 {\n\t\tcacheFromJSON, err := json.Marshal(options.CacheFrom)\n\t\tif err != nil {\n\t\t\treturn query, err\n\t\t}\n\t\tquery.Set(\"cachefrom\", string(cacheFromJSON))\n\t}\n\tif options.SessionID != \"\" {\n\t\tquery.Set(\"session\", options.SessionID)\n\t}\n\tif options.Platform != \"\" {\n\t\tif err := cli.NewVersionError(ctx, \"1.32\", \"platform\"); err != nil {\n\t\t\treturn query, err\n\t\t}\n\t\tquery.Set(\"platform\", strings.ToLower(options.Platform))\n\t}\n\tif options.BuildID != \"\" {\n\t\tquery.Set(\"buildid\", options.BuildID)\n\t}\n\tif options.Version != \"\" {\n\t\tquery.Set(\"version\", string(options.Version))\n\t}\n\n\tif options.Outputs != nil {\n\t\toutputsJSON, err := json.Marshal(options.Outputs)\n\t\tif err != nil {\n\t\t\treturn query, err\n\t\t}\n\t\tquery.Set(\"outputs\", string(outputsJSON))\n\t}\n\treturn query, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_create.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/distribution/reference\"\n\t\"github.com/docker/docker/api/types/image\"\n\t\"github.com/docker/docker/api/types/registry\"\n)\n\n// ImageCreate creates a new image based on the parent options.\n// It returns the JSON content in the response body.\nfunc (cli *Client) ImageCreate(ctx context.Context, parentReference string, options image.CreateOptions) (io.ReadCloser, error) {\n\tref, err := reference.ParseNormalizedNamed(parentReference)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"fromImage\", ref.Name())\n\tquery.Set(\"tag\", getAPITagFromNamedRef(ref))\n\tif options.Platform != \"\" {\n\t\tquery.Set(\"platform\", strings.ToLower(options.Platform))\n\t}\n\tresp, err := cli.tryImageCreate(ctx, query, options.RegistryAuth)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn resp.Body, nil\n}\n\nfunc (cli *Client) tryImageCreate(ctx context.Context, query url.Values, registryAuth string) (*http.Response, error) {\n\treturn cli.post(ctx, \"/images/create\", query, nil, http.Header{\n\t\tregistry.AuthHeader: {registryAuth},\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_history.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/image\"\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\n// ImageHistoryWithPlatform sets the platform for the image history operation.\nfunc ImageHistoryWithPlatform(platform ocispec.Platform) ImageHistoryOption {\n\treturn imageHistoryOptionFunc(func(opt *imageHistoryOpts) error {\n\t\tif opt.apiOptions.Platform != nil {\n\t\t\treturn fmt.Errorf(\"platform already set to %s\", *opt.apiOptions.Platform)\n\t\t}\n\t\topt.apiOptions.Platform = &platform\n\t\treturn nil\n\t})\n}\n\n// ImageHistory returns the changes in an image in history format.\nfunc (cli *Client) ImageHistory(ctx context.Context, imageID string, historyOpts ...ImageHistoryOption) ([]image.HistoryResponseItem, error) {\n\tquery := url.Values{}\n\n\tvar opts imageHistoryOpts\n\tfor _, o := range historyOpts {\n\t\tif err := o.Apply(&opts); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif opts.apiOptions.Platform != nil {\n\t\tif err := cli.NewVersionError(ctx, \"1.48\", \"platform\"); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tp, err := encodePlatform(opts.apiOptions.Platform)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tquery.Set(\"platform\", p)\n\t}\n\n\tresp, err := cli.get(ctx, \"/images/\"+imageID+\"/history\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar history []image.HistoryResponseItem\n\terr = json.NewDecoder(resp.Body).Decode(&history)\n\treturn history, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_history_opts.go",
    "content": "package client\n\nimport (\n\t\"github.com/docker/docker/api/types/image\"\n)\n\n// ImageHistoryOption is a type representing functional options for the image history operation.\ntype ImageHistoryOption interface {\n\tApply(*imageHistoryOpts) error\n}\ntype imageHistoryOptionFunc func(opt *imageHistoryOpts) error\n\nfunc (f imageHistoryOptionFunc) Apply(o *imageHistoryOpts) error {\n\treturn f(o)\n}\n\ntype imageHistoryOpts struct {\n\tapiOptions image.HistoryOptions\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_import.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/distribution/reference\"\n\t\"github.com/docker/docker/api/types/image\"\n)\n\n// ImageImport creates a new image based on the source options.\n// It returns the JSON content in the response body.\nfunc (cli *Client) ImageImport(ctx context.Context, source image.ImportSource, ref string, options image.ImportOptions) (io.ReadCloser, error) {\n\tif ref != \"\" {\n\t\t// Check if the given image name can be resolved\n\t\tif _, err := reference.ParseNormalizedNamed(ref); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tquery := url.Values{}\n\tif source.SourceName != \"\" {\n\t\tquery.Set(\"fromSrc\", source.SourceName)\n\t}\n\tif ref != \"\" {\n\t\tquery.Set(\"repo\", ref)\n\t}\n\tif options.Tag != \"\" {\n\t\tquery.Set(\"tag\", options.Tag)\n\t}\n\tif options.Message != \"\" {\n\t\tquery.Set(\"message\", options.Message)\n\t}\n\tif options.Platform != \"\" {\n\t\tquery.Set(\"platform\", strings.ToLower(options.Platform))\n\t}\n\tfor _, change := range options.Changes {\n\t\tquery.Add(\"changes\", change)\n\t}\n\n\tresp, err := cli.postRaw(ctx, \"/images/create\", query, source.Source, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn resp.Body, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_inspect.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/image\"\n)\n\n// ImageInspect returns the image information.\nfunc (cli *Client) ImageInspect(ctx context.Context, imageID string, inspectOpts ...ImageInspectOption) (image.InspectResponse, error) {\n\tif imageID == \"\" {\n\t\treturn image.InspectResponse{}, objectNotFoundError{object: \"image\", id: imageID}\n\t}\n\n\tvar opts imageInspectOpts\n\tfor _, opt := range inspectOpts {\n\t\tif err := opt.Apply(&opts); err != nil {\n\t\t\treturn image.InspectResponse{}, fmt.Errorf(\"error applying image inspect option: %w\", err)\n\t\t}\n\t}\n\n\tquery := url.Values{}\n\tif opts.apiOptions.Manifests {\n\t\tif err := cli.NewVersionError(ctx, \"1.48\", \"manifests\"); err != nil {\n\t\t\treturn image.InspectResponse{}, err\n\t\t}\n\t\tquery.Set(\"manifests\", \"1\")\n\t}\n\n\tif opts.apiOptions.Platform != nil {\n\t\tif err := cli.NewVersionError(ctx, \"1.49\", \"platform\"); err != nil {\n\t\t\treturn image.InspectResponse{}, err\n\t\t}\n\t\tplatform, err := encodePlatform(opts.apiOptions.Platform)\n\t\tif err != nil {\n\t\t\treturn image.InspectResponse{}, err\n\t\t}\n\t\tquery.Set(\"platform\", platform)\n\t}\n\n\tresp, err := cli.get(ctx, \"/images/\"+imageID+\"/json\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn image.InspectResponse{}, err\n\t}\n\n\tbuf := opts.raw\n\tif buf == nil {\n\t\tbuf = &bytes.Buffer{}\n\t}\n\n\tif _, err := io.Copy(buf, resp.Body); err != nil {\n\t\treturn image.InspectResponse{}, err\n\t}\n\n\tvar response image.InspectResponse\n\terr = json.Unmarshal(buf.Bytes(), &response)\n\treturn response, err\n}\n\n// ImageInspectWithRaw returns the image information and its raw representation.\n//\n// Deprecated: Use [Client.ImageInspect] instead. Raw response can be obtained using the [ImageInspectWithRawResponse] option.\nfunc (cli *Client) ImageInspectWithRaw(ctx context.Context, imageID string) (image.InspectResponse, []byte, error) {\n\tvar buf bytes.Buffer\n\tresp, err := cli.ImageInspect(ctx, imageID, ImageInspectWithRawResponse(&buf))\n\tif err != nil {\n\t\treturn image.InspectResponse{}, nil, err\n\t}\n\treturn resp, buf.Bytes(), err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_inspect_opts.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\n\t\"github.com/docker/docker/api/types/image\"\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\n// ImageInspectOption is a type representing functional options for the image inspect operation.\ntype ImageInspectOption interface {\n\tApply(*imageInspectOpts) error\n}\ntype imageInspectOptionFunc func(opt *imageInspectOpts) error\n\nfunc (f imageInspectOptionFunc) Apply(o *imageInspectOpts) error {\n\treturn f(o)\n}\n\n// ImageInspectWithRawResponse instructs the client to additionally store the\n// raw inspect response in the provided buffer.\nfunc ImageInspectWithRawResponse(raw *bytes.Buffer) ImageInspectOption {\n\treturn imageInspectOptionFunc(func(opts *imageInspectOpts) error {\n\t\topts.raw = raw\n\t\treturn nil\n\t})\n}\n\n// ImageInspectWithManifests sets manifests API option for the image inspect operation.\n// This option is only available for API version 1.48 and up.\n// With this option set, the image inspect operation response will have the\n// [image.InspectResponse.Manifests] field populated if the server is multi-platform capable.\nfunc ImageInspectWithManifests(manifests bool) ImageInspectOption {\n\treturn imageInspectOptionFunc(func(clientOpts *imageInspectOpts) error {\n\t\tclientOpts.apiOptions.Manifests = manifests\n\t\treturn nil\n\t})\n}\n\n// ImageInspectWithPlatform sets platform API option for the image inspect operation.\n// This option is only available for API version 1.49 and up.\n// With this option set, the image inspect operation will return information for the\n// specified platform variant of the multi-platform image.\nfunc ImageInspectWithPlatform(platform *ocispec.Platform) ImageInspectOption {\n\treturn imageInspectOptionFunc(func(clientOpts *imageInspectOpts) error {\n\t\tclientOpts.apiOptions.Platform = platform\n\t\treturn nil\n\t})\n}\n\n// ImageInspectWithAPIOpts sets the API options for the image inspect operation.\nfunc ImageInspectWithAPIOpts(opts image.InspectOptions) ImageInspectOption {\n\treturn imageInspectOptionFunc(func(clientOpts *imageInspectOpts) error {\n\t\tclientOpts.apiOptions = opts\n\t\treturn nil\n\t})\n}\n\ntype imageInspectOpts struct {\n\traw        *bytes.Buffer\n\tapiOptions image.InspectOptions\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_list.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/image\"\n\t\"github.com/docker/docker/api/types/versions\"\n)\n\n// ImageList returns a list of images in the docker host.\n//\n// Experimental: Setting the [options.Manifest] will populate\n// [image.Summary.Manifests] with information about image manifests.\n// This is experimental and might change in the future without any backward\n// compatibility.\nfunc (cli *Client) ImageList(ctx context.Context, options image.ListOptions) ([]image.Summary, error) {\n\tvar images []image.Summary\n\n\t// Make sure we negotiated (if the client is configured to do so),\n\t// as code below contains API-version specific handling of options.\n\t//\n\t// Normally, version-negotiation (if enabled) would not happen until\n\t// the API request is made.\n\tif err := cli.checkVersion(ctx); err != nil {\n\t\treturn images, err\n\t}\n\n\tquery := url.Values{}\n\n\toptionFilters := options.Filters\n\treferenceFilters := optionFilters.Get(\"reference\")\n\tif versions.LessThan(cli.version, \"1.25\") && len(referenceFilters) > 0 {\n\t\tquery.Set(\"filter\", referenceFilters[0])\n\t\tfor _, filterValue := range referenceFilters {\n\t\t\toptionFilters.Del(\"reference\", filterValue)\n\t\t}\n\t}\n\tif optionFilters.Len() > 0 {\n\t\t//nolint:staticcheck // ignore SA1019 for old code\n\t\tfilterJSON, err := filters.ToParamWithVersion(cli.version, optionFilters)\n\t\tif err != nil {\n\t\t\treturn images, err\n\t\t}\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\tif options.All {\n\t\tquery.Set(\"all\", \"1\")\n\t}\n\tif options.SharedSize && versions.GreaterThanOrEqualTo(cli.version, \"1.42\") {\n\t\tquery.Set(\"shared-size\", \"1\")\n\t}\n\tif options.Manifests && versions.GreaterThanOrEqualTo(cli.version, \"1.47\") {\n\t\tquery.Set(\"manifests\", \"1\")\n\t}\n\n\tresp, err := cli.get(ctx, \"/images/json\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn images, err\n\t}\n\n\terr = json.NewDecoder(resp.Body).Decode(&images)\n\treturn images, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_load.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/image\"\n)\n\n// ImageLoad loads an image in the docker host from the client host.\n// It's up to the caller to close the io.ReadCloser in the\n// ImageLoadResponse returned by this function.\n//\n// Platform is an optional parameter that specifies the platform to load from\n// the provided multi-platform image. This is only has effect if the input image\n// is a multi-platform image.\nfunc (cli *Client) ImageLoad(ctx context.Context, input io.Reader, loadOpts ...ImageLoadOption) (image.LoadResponse, error) {\n\tvar opts imageLoadOpts\n\tfor _, opt := range loadOpts {\n\t\tif err := opt.Apply(&opts); err != nil {\n\t\t\treturn image.LoadResponse{}, err\n\t\t}\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"quiet\", \"0\")\n\tif opts.apiOptions.Quiet {\n\t\tquery.Set(\"quiet\", \"1\")\n\t}\n\tif len(opts.apiOptions.Platforms) > 0 {\n\t\tif err := cli.NewVersionError(ctx, \"1.48\", \"platform\"); err != nil {\n\t\t\treturn image.LoadResponse{}, err\n\t\t}\n\n\t\tp, err := encodePlatforms(opts.apiOptions.Platforms...)\n\t\tif err != nil {\n\t\t\treturn image.LoadResponse{}, err\n\t\t}\n\t\tquery[\"platform\"] = p\n\t}\n\n\tresp, err := cli.postRaw(ctx, \"/images/load\", query, input, http.Header{\n\t\t\"Content-Type\": {\"application/x-tar\"},\n\t})\n\tif err != nil {\n\t\treturn image.LoadResponse{}, err\n\t}\n\treturn image.LoadResponse{\n\t\tBody: resp.Body,\n\t\tJSON: resp.Header.Get(\"Content-Type\") == \"application/json\",\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_load_opts.go",
    "content": "package client\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/docker/docker/api/types/image\"\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\n// ImageLoadOption is a type representing functional options for the image load operation.\ntype ImageLoadOption interface {\n\tApply(*imageLoadOpts) error\n}\ntype imageLoadOptionFunc func(opt *imageLoadOpts) error\n\nfunc (f imageLoadOptionFunc) Apply(o *imageLoadOpts) error {\n\treturn f(o)\n}\n\ntype imageLoadOpts struct {\n\tapiOptions image.LoadOptions\n}\n\n// ImageLoadWithQuiet sets the quiet option for the image load operation.\nfunc ImageLoadWithQuiet(quiet bool) ImageLoadOption {\n\treturn imageLoadOptionFunc(func(opt *imageLoadOpts) error {\n\t\topt.apiOptions.Quiet = quiet\n\t\treturn nil\n\t})\n}\n\n// ImageLoadWithPlatforms sets the platforms to be loaded from the image.\nfunc ImageLoadWithPlatforms(platforms ...ocispec.Platform) ImageLoadOption {\n\treturn imageLoadOptionFunc(func(opt *imageLoadOpts) error {\n\t\tif opt.apiOptions.Platforms != nil {\n\t\t\treturn fmt.Errorf(\"platforms already set to %v\", opt.apiOptions.Platforms)\n\t\t}\n\t\topt.apiOptions.Platforms = platforms\n\t\treturn nil\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_prune.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/image\"\n)\n\n// ImagesPrune requests the daemon to delete unused data\nfunc (cli *Client) ImagesPrune(ctx context.Context, pruneFilters filters.Args) (image.PruneReport, error) {\n\tif err := cli.NewVersionError(ctx, \"1.25\", \"image prune\"); err != nil {\n\t\treturn image.PruneReport{}, err\n\t}\n\n\tquery, err := getFiltersQuery(pruneFilters)\n\tif err != nil {\n\t\treturn image.PruneReport{}, err\n\t}\n\n\tresp, err := cli.post(ctx, \"/images/prune\", query, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn image.PruneReport{}, err\n\t}\n\n\tvar report image.PruneReport\n\tif err := json.NewDecoder(resp.Body).Decode(&report); err != nil {\n\t\treturn image.PruneReport{}, fmt.Errorf(\"Error retrieving disk usage: %v\", err)\n\t}\n\n\treturn report, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_pull.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/url\"\n\t\"strings\"\n\n\tcerrdefs \"github.com/containerd/errdefs\"\n\t\"github.com/distribution/reference\"\n\t\"github.com/docker/docker/api/types/image\"\n)\n\n// ImagePull requests the docker host to pull an image from a remote registry.\n// It executes the privileged function if the operation is unauthorized\n// and it tries one more time.\n// It's up to the caller to handle the io.ReadCloser and close it properly.\n//\n// FIXME(vdemeester): there is currently used in a few way in docker/docker\n// - if not in trusted content, ref is used to pass the whole reference, and tag is empty\n// - if in trusted content, ref is used to pass the reference name, and tag for the digest\nfunc (cli *Client) ImagePull(ctx context.Context, refStr string, options image.PullOptions) (io.ReadCloser, error) {\n\tref, err := reference.ParseNormalizedNamed(refStr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"fromImage\", ref.Name())\n\tif !options.All {\n\t\tquery.Set(\"tag\", getAPITagFromNamedRef(ref))\n\t}\n\tif options.Platform != \"\" {\n\t\tquery.Set(\"platform\", strings.ToLower(options.Platform))\n\t}\n\n\tresp, err := cli.tryImageCreate(ctx, query, options.RegistryAuth)\n\tif cerrdefs.IsUnauthorized(err) && options.PrivilegeFunc != nil {\n\t\tnewAuthHeader, privilegeErr := options.PrivilegeFunc(ctx)\n\t\tif privilegeErr != nil {\n\t\t\treturn nil, privilegeErr\n\t\t}\n\t\tresp, err = cli.tryImageCreate(ctx, query, newAuthHeader)\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn resp.Body, nil\n}\n\n// getAPITagFromNamedRef returns a tag from the specified reference.\n// This function is necessary as long as the docker \"server\" api expects\n// digests to be sent as tags and makes a distinction between the name\n// and tag/digest part of a reference.\nfunc getAPITagFromNamedRef(ref reference.Named) string {\n\tif digested, ok := ref.(reference.Digested); ok {\n\t\treturn digested.Digest().String()\n\t}\n\tref = reference.TagNameOnly(ref)\n\tif tagged, ok := ref.(reference.Tagged); ok {\n\t\treturn tagged.Tag()\n\t}\n\treturn \"\"\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_push.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\n\tcerrdefs \"github.com/containerd/errdefs\"\n\t\"github.com/distribution/reference\"\n\t\"github.com/docker/docker/api/types/image\"\n\t\"github.com/docker/docker/api/types/registry\"\n)\n\n// ImagePush requests the docker host to push an image to a remote registry.\n// It executes the privileged function if the operation is unauthorized\n// and it tries one more time.\n// It's up to the caller to handle the io.ReadCloser and close it properly.\nfunc (cli *Client) ImagePush(ctx context.Context, image string, options image.PushOptions) (io.ReadCloser, error) {\n\tref, err := reference.ParseNormalizedNamed(image)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif _, isCanonical := ref.(reference.Canonical); isCanonical {\n\t\treturn nil, errors.New(\"cannot push a digest reference\")\n\t}\n\n\tquery := url.Values{}\n\tif !options.All {\n\t\tref = reference.TagNameOnly(ref)\n\t\tif tagged, ok := ref.(reference.Tagged); ok {\n\t\t\tquery.Set(\"tag\", tagged.Tag())\n\t\t}\n\t}\n\n\tif options.Platform != nil {\n\t\tif err := cli.NewVersionError(ctx, \"1.46\", \"platform\"); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tp := *options.Platform\n\t\tpJson, err := json.Marshal(p)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid platform: %v\", err)\n\t\t}\n\n\t\tquery.Set(\"platform\", string(pJson))\n\t}\n\n\tresp, err := cli.tryImagePush(ctx, ref.Name(), query, options.RegistryAuth)\n\tif cerrdefs.IsUnauthorized(err) && options.PrivilegeFunc != nil {\n\t\tnewAuthHeader, privilegeErr := options.PrivilegeFunc(ctx)\n\t\tif privilegeErr != nil {\n\t\t\treturn nil, privilegeErr\n\t\t}\n\t\tresp, err = cli.tryImagePush(ctx, ref.Name(), query, newAuthHeader)\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn resp.Body, nil\n}\n\nfunc (cli *Client) tryImagePush(ctx context.Context, imageID string, query url.Values, registryAuth string) (*http.Response, error) {\n\t// Always send a body (which may be an empty JSON document (\"{}\")) to prevent\n\t// EOF errors on older daemons which had faulty fallback code for handling\n\t// authentication in the body when no auth-header was set, resulting in;\n\t//\n\t//\tError response from daemon: bad parameters and missing X-Registry-Auth: invalid X-Registry-Auth header: EOF\n\t//\n\t// We use [http.NoBody], which gets marshaled to an empty JSON document.\n\t//\n\t// see: https://github.com/moby/moby/commit/ea29dffaa541289591aa44fa85d2a596ce860e16\n\treturn cli.post(ctx, \"/images/\"+imageID+\"/push\", query, http.NoBody, http.Header{\n\t\tregistry.AuthHeader: {registryAuth},\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_remove.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/image\"\n)\n\n// ImageRemove removes an image from the docker host.\nfunc (cli *Client) ImageRemove(ctx context.Context, imageID string, options image.RemoveOptions) ([]image.DeleteResponse, error) {\n\tquery := url.Values{}\n\n\tif options.Force {\n\t\tquery.Set(\"force\", \"1\")\n\t}\n\tif !options.PruneChildren {\n\t\tquery.Set(\"noprune\", \"1\")\n\t}\n\n\tif len(options.Platforms) > 0 {\n\t\tp, err := encodePlatforms(options.Platforms...)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tquery[\"platforms\"] = p\n\t}\n\n\tresp, err := cli.delete(ctx, \"/images/\"+imageID, query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar dels []image.DeleteResponse\n\terr = json.NewDecoder(resp.Body).Decode(&dels)\n\treturn dels, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_save.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/url\"\n)\n\n// ImageSave retrieves one or more images from the docker host as an io.ReadCloser.\n//\n// Platforms is an optional parameter that specifies the platforms to save from the image.\n// This is only has effect if the input image is a multi-platform image.\nfunc (cli *Client) ImageSave(ctx context.Context, imageIDs []string, saveOpts ...ImageSaveOption) (io.ReadCloser, error) {\n\tvar opts imageSaveOpts\n\tfor _, opt := range saveOpts {\n\t\tif err := opt.Apply(&opts); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tquery := url.Values{\n\t\t\"names\": imageIDs,\n\t}\n\n\tif len(opts.apiOptions.Platforms) > 0 {\n\t\tif err := cli.NewVersionError(ctx, \"1.48\", \"platform\"); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tp, err := encodePlatforms(opts.apiOptions.Platforms...)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tquery[\"platform\"] = p\n\t}\n\n\tresp, err := cli.get(ctx, \"/images/get\", query, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn resp.Body, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_save_opts.go",
    "content": "package client\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/docker/docker/api/types/image\"\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\ntype ImageSaveOption interface {\n\tApply(*imageSaveOpts) error\n}\n\ntype imageSaveOptionFunc func(opt *imageSaveOpts) error\n\nfunc (f imageSaveOptionFunc) Apply(o *imageSaveOpts) error {\n\treturn f(o)\n}\n\n// ImageSaveWithPlatforms sets the platforms to be saved from the image.\nfunc ImageSaveWithPlatforms(platforms ...ocispec.Platform) ImageSaveOption {\n\treturn imageSaveOptionFunc(func(opt *imageSaveOpts) error {\n\t\tif opt.apiOptions.Platforms != nil {\n\t\t\treturn fmt.Errorf(\"platforms already set to %v\", opt.apiOptions.Platforms)\n\t\t}\n\t\topt.apiOptions.Platforms = platforms\n\t\treturn nil\n\t})\n}\n\ntype imageSaveOpts struct {\n\tapiOptions image.SaveOptions\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_search.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strconv\"\n\n\tcerrdefs \"github.com/containerd/errdefs\"\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/registry\"\n)\n\n// ImageSearch makes the docker host search by a term in a remote registry.\n// The list of results is not sorted in any fashion.\nfunc (cli *Client) ImageSearch(ctx context.Context, term string, options registry.SearchOptions) ([]registry.SearchResult, error) {\n\tvar results []registry.SearchResult\n\tquery := url.Values{}\n\tquery.Set(\"term\", term)\n\tif options.Limit > 0 {\n\t\tquery.Set(\"limit\", strconv.Itoa(options.Limit))\n\t}\n\n\tif options.Filters.Len() > 0 {\n\t\tfilterJSON, err := filters.ToJSON(options.Filters)\n\t\tif err != nil {\n\t\t\treturn results, err\n\t\t}\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\n\tresp, err := cli.tryImageSearch(ctx, query, options.RegistryAuth)\n\tdefer ensureReaderClosed(resp)\n\tif cerrdefs.IsUnauthorized(err) && options.PrivilegeFunc != nil {\n\t\tnewAuthHeader, privilegeErr := options.PrivilegeFunc(ctx)\n\t\tif privilegeErr != nil {\n\t\t\treturn results, privilegeErr\n\t\t}\n\t\tresp, err = cli.tryImageSearch(ctx, query, newAuthHeader)\n\t}\n\tif err != nil {\n\t\treturn results, err\n\t}\n\n\terr = json.NewDecoder(resp.Body).Decode(&results)\n\treturn results, err\n}\n\nfunc (cli *Client) tryImageSearch(ctx context.Context, query url.Values, registryAuth string) (*http.Response, error) {\n\treturn cli.get(ctx, \"/images/search\", query, http.Header{\n\t\tregistry.AuthHeader: {registryAuth},\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/image_tag.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/distribution/reference\"\n\t\"github.com/pkg/errors\"\n)\n\n// ImageTag tags an image in the docker host\nfunc (cli *Client) ImageTag(ctx context.Context, source, target string) error {\n\tif _, err := reference.ParseAnyReference(source); err != nil {\n\t\treturn errors.Wrapf(err, \"Error parsing reference: %q is not a valid repository/tag\", source)\n\t}\n\n\tref, err := reference.ParseNormalizedNamed(target)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"Error parsing reference: %q is not a valid repository/tag\", target)\n\t}\n\n\tif _, isCanonical := ref.(reference.Canonical); isCanonical {\n\t\treturn errors.New(\"refusing to create a tag with a digest reference\")\n\t}\n\n\tref = reference.TagNameOnly(ref)\n\n\tquery := url.Values{}\n\tquery.Set(\"repo\", ref.Name())\n\tif tagged, ok := ref.(reference.Tagged); ok {\n\t\tquery.Set(\"tag\", tagged.Tag())\n\t}\n\n\tresp, err := cli.post(ctx, \"/images/\"+source+\"/tag\", query, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/info.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/system\"\n)\n\n// Info returns information about the docker server.\nfunc (cli *Client) Info(ctx context.Context) (system.Info, error) {\n\tvar info system.Info\n\tresp, err := cli.get(ctx, \"/info\", url.Values{}, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn info, err\n\t}\n\n\tif err := json.NewDecoder(resp.Body).Decode(&info); err != nil {\n\t\treturn info, fmt.Errorf(\"Error reading remote info: %v\", err)\n\t}\n\n\treturn info, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/login.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/registry\"\n)\n\n// RegistryLogin authenticates the docker server with a given docker registry.\n// It returns unauthorizedError when the authentication fails.\nfunc (cli *Client) RegistryLogin(ctx context.Context, auth registry.AuthConfig) (registry.AuthenticateOKBody, error) {\n\tresp, err := cli.post(ctx, \"/auth\", url.Values{}, auth, nil)\n\tdefer ensureReaderClosed(resp)\n\n\tif err != nil {\n\t\treturn registry.AuthenticateOKBody{}, err\n\t}\n\n\tvar response registry.AuthenticateOKBody\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/network_connect.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\n\t\"github.com/docker/docker/api/types/network\"\n)\n\n// NetworkConnect connects a container to an existent network in the docker host.\nfunc (cli *Client) NetworkConnect(ctx context.Context, networkID, containerID string, config *network.EndpointSettings) error {\n\tnetworkID, err := trimID(\"network\", networkID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcontainerID, err = trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tnc := network.ConnectOptions{\n\t\tContainer:      containerID,\n\t\tEndpointConfig: config,\n\t}\n\tresp, err := cli.post(ctx, \"/networks/\"+networkID+\"/connect\", nil, nc, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/network_create.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\n\t\"github.com/docker/docker/api/types/network\"\n\t\"github.com/docker/docker/api/types/versions\"\n)\n\n// NetworkCreate creates a new network in the docker host.\nfunc (cli *Client) NetworkCreate(ctx context.Context, name string, options network.CreateOptions) (network.CreateResponse, error) {\n\t// Make sure we negotiated (if the client is configured to do so),\n\t// as code below contains API-version specific handling of options.\n\t//\n\t// Normally, version-negotiation (if enabled) would not happen until\n\t// the API request is made.\n\tif err := cli.checkVersion(ctx); err != nil {\n\t\treturn network.CreateResponse{}, err\n\t}\n\n\tnetworkCreateRequest := network.CreateRequest{\n\t\tCreateOptions: options,\n\t\tName:          name,\n\t}\n\tif versions.LessThan(cli.version, \"1.44\") {\n\t\tenabled := true\n\t\tnetworkCreateRequest.CheckDuplicate = &enabled //nolint:staticcheck // ignore SA1019: CheckDuplicate is deprecated since API v1.44.\n\t}\n\n\tresp, err := cli.post(ctx, \"/networks/create\", nil, networkCreateRequest, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn network.CreateResponse{}, err\n\t}\n\n\tvar response network.CreateResponse\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/network_disconnect.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\n\t\"github.com/docker/docker/api/types/network\"\n)\n\n// NetworkDisconnect disconnects a container from an existent network in the docker host.\nfunc (cli *Client) NetworkDisconnect(ctx context.Context, networkID, containerID string, force bool) error {\n\tnetworkID, err := trimID(\"network\", networkID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcontainerID, err = trimID(\"container\", containerID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tnd := network.DisconnectOptions{\n\t\tContainer: containerID,\n\t\tForce:     force,\n\t}\n\tresp, err := cli.post(ctx, \"/networks/\"+networkID+\"/disconnect\", nil, nd, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/network_inspect.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/network\"\n)\n\n// NetworkInspect returns the information for a specific network configured in the docker host.\nfunc (cli *Client) NetworkInspect(ctx context.Context, networkID string, options network.InspectOptions) (network.Inspect, error) {\n\tnetworkResource, _, err := cli.NetworkInspectWithRaw(ctx, networkID, options)\n\treturn networkResource, err\n}\n\n// NetworkInspectWithRaw returns the information for a specific network configured in the docker host and its raw representation.\nfunc (cli *Client) NetworkInspectWithRaw(ctx context.Context, networkID string, options network.InspectOptions) (network.Inspect, []byte, error) {\n\tnetworkID, err := trimID(\"network\", networkID)\n\tif err != nil {\n\t\treturn network.Inspect{}, nil, err\n\t}\n\tquery := url.Values{}\n\tif options.Verbose {\n\t\tquery.Set(\"verbose\", \"true\")\n\t}\n\tif options.Scope != \"\" {\n\t\tquery.Set(\"scope\", options.Scope)\n\t}\n\n\tresp, err := cli.get(ctx, \"/networks/\"+networkID, query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn network.Inspect{}, nil, err\n\t}\n\n\traw, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn network.Inspect{}, nil, err\n\t}\n\n\tvar nw network.Inspect\n\terr = json.NewDecoder(bytes.NewReader(raw)).Decode(&nw)\n\treturn nw, raw, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/network_list.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/network\"\n)\n\n// NetworkList returns the list of networks configured in the docker host.\nfunc (cli *Client) NetworkList(ctx context.Context, options network.ListOptions) ([]network.Summary, error) {\n\tquery := url.Values{}\n\tif options.Filters.Len() > 0 {\n\t\t//nolint:staticcheck // ignore SA1019 for old code\n\t\tfilterJSON, err := filters.ToParamWithVersion(cli.version, options.Filters)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\tvar networkResources []network.Summary\n\tresp, err := cli.get(ctx, \"/networks\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn networkResources, err\n\t}\n\terr = json.NewDecoder(resp.Body).Decode(&networkResources)\n\treturn networkResources, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/network_prune.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/network\"\n)\n\n// NetworksPrune requests the daemon to delete unused networks\nfunc (cli *Client) NetworksPrune(ctx context.Context, pruneFilters filters.Args) (network.PruneReport, error) {\n\tif err := cli.NewVersionError(ctx, \"1.25\", \"network prune\"); err != nil {\n\t\treturn network.PruneReport{}, err\n\t}\n\n\tquery, err := getFiltersQuery(pruneFilters)\n\tif err != nil {\n\t\treturn network.PruneReport{}, err\n\t}\n\n\tresp, err := cli.post(ctx, \"/networks/prune\", query, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn network.PruneReport{}, err\n\t}\n\n\tvar report network.PruneReport\n\tif err := json.NewDecoder(resp.Body).Decode(&report); err != nil {\n\t\treturn network.PruneReport{}, fmt.Errorf(\"Error retrieving network prune report: %v\", err)\n\t}\n\n\treturn report, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/network_remove.go",
    "content": "package client\n\nimport \"context\"\n\n// NetworkRemove removes an existent network from the docker host.\nfunc (cli *Client) NetworkRemove(ctx context.Context, networkID string) error {\n\tnetworkID, err := trimID(\"network\", networkID)\n\tif err != nil {\n\t\treturn err\n\t}\n\tresp, err := cli.delete(ctx, \"/networks/\"+networkID, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/node_inspect.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// NodeInspectWithRaw returns the node information.\nfunc (cli *Client) NodeInspectWithRaw(ctx context.Context, nodeID string) (swarm.Node, []byte, error) {\n\tnodeID, err := trimID(\"node\", nodeID)\n\tif err != nil {\n\t\treturn swarm.Node{}, nil, err\n\t}\n\tresp, err := cli.get(ctx, \"/nodes/\"+nodeID, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn swarm.Node{}, nil, err\n\t}\n\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn swarm.Node{}, nil, err\n\t}\n\n\tvar response swarm.Node\n\trdr := bytes.NewReader(body)\n\terr = json.NewDecoder(rdr).Decode(&response)\n\treturn response, body, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/node_list.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// NodeList returns the list of nodes.\nfunc (cli *Client) NodeList(ctx context.Context, options swarm.NodeListOptions) ([]swarm.Node, error) {\n\tquery := url.Values{}\n\n\tif options.Filters.Len() > 0 {\n\t\tfilterJSON, err := filters.ToJSON(options.Filters)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\n\tresp, err := cli.get(ctx, \"/nodes\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar nodes []swarm.Node\n\terr = json.NewDecoder(resp.Body).Decode(&nodes)\n\treturn nodes, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/node_remove.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// NodeRemove removes a Node.\nfunc (cli *Client) NodeRemove(ctx context.Context, nodeID string, options swarm.NodeRemoveOptions) error {\n\tnodeID, err := trimID(\"node\", nodeID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tif options.Force {\n\t\tquery.Set(\"force\", \"1\")\n\t}\n\n\tresp, err := cli.delete(ctx, \"/nodes/\"+nodeID, query, nil)\n\tdefer ensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/node_update.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// NodeUpdate updates a Node.\nfunc (cli *Client) NodeUpdate(ctx context.Context, nodeID string, version swarm.Version, node swarm.NodeSpec) error {\n\tnodeID, err := trimID(\"node\", nodeID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"version\", version.String())\n\tresp, err := cli.post(ctx, \"/nodes/\"+nodeID+\"/update\", query, node, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/options.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/docker/go-connections/sockets\"\n\t\"github.com/docker/go-connections/tlsconfig\"\n\t\"github.com/pkg/errors\"\n\t\"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n\t\"go.opentelemetry.io/otel/trace\"\n)\n\n// Opt is a configuration option to initialize a [Client].\ntype Opt func(*Client) error\n\n// FromEnv configures the client with values from environment variables. It\n// is the equivalent of using the [WithTLSClientConfigFromEnv], [WithHostFromEnv],\n// and [WithVersionFromEnv] options.\n//\n// FromEnv uses the following environment variables:\n//\n//   - DOCKER_HOST ([EnvOverrideHost]) to set the URL to the docker server.\n//   - DOCKER_API_VERSION ([EnvOverrideAPIVersion]) to set the version of the\n//     API to use, leave empty for latest.\n//   - DOCKER_CERT_PATH ([EnvOverrideCertPath]) to specify the directory from\n//     which to load the TLS certificates (\"ca.pem\", \"cert.pem\", \"key.pem').\n//   - DOCKER_TLS_VERIFY ([EnvTLSVerify]) to enable or disable TLS verification\n//     (off by default).\nfunc FromEnv(c *Client) error {\n\tops := []Opt{\n\t\tWithTLSClientConfigFromEnv(),\n\t\tWithHostFromEnv(),\n\t\tWithVersionFromEnv(),\n\t}\n\tfor _, op := range ops {\n\t\tif err := op(c); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// WithDialContext applies the dialer to the client transport. This can be\n// used to set the Timeout and KeepAlive settings of the client. It returns\n// an error if the client does not have a [http.Transport] configured.\nfunc WithDialContext(dialContext func(ctx context.Context, network, addr string) (net.Conn, error)) Opt {\n\treturn func(c *Client) error {\n\t\tif transport, ok := c.client.Transport.(*http.Transport); ok {\n\t\t\ttransport.DialContext = dialContext\n\t\t\treturn nil\n\t\t}\n\t\treturn errors.Errorf(\"cannot apply dialer to transport: %T\", c.client.Transport)\n\t}\n}\n\n// WithHost overrides the client host with the specified one.\nfunc WithHost(host string) Opt {\n\treturn func(c *Client) error {\n\t\thostURL, err := ParseHostURL(host)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tc.host = host\n\t\tc.proto = hostURL.Scheme\n\t\tc.addr = hostURL.Host\n\t\tc.basePath = hostURL.Path\n\t\tif transport, ok := c.client.Transport.(*http.Transport); ok {\n\t\t\treturn sockets.ConfigureTransport(transport, c.proto, c.addr)\n\t\t}\n\t\treturn errors.Errorf(\"cannot apply host to transport: %T\", c.client.Transport)\n\t}\n}\n\n// WithHostFromEnv overrides the client host with the host specified in the\n// DOCKER_HOST ([EnvOverrideHost]) environment variable. If DOCKER_HOST is not set,\n// or set to an empty value, the host is not modified.\nfunc WithHostFromEnv() Opt {\n\treturn func(c *Client) error {\n\t\tif host := os.Getenv(EnvOverrideHost); host != \"\" {\n\t\t\treturn WithHost(host)(c)\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// WithHTTPClient overrides the client's HTTP client with the specified one.\nfunc WithHTTPClient(client *http.Client) Opt {\n\treturn func(c *Client) error {\n\t\tif client != nil {\n\t\t\tc.client = client\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// WithTimeout configures the time limit for requests made by the HTTP client.\nfunc WithTimeout(timeout time.Duration) Opt {\n\treturn func(c *Client) error {\n\t\tc.client.Timeout = timeout\n\t\treturn nil\n\t}\n}\n\n// WithUserAgent configures the User-Agent header to use for HTTP requests.\n// It overrides any User-Agent set in headers. When set to an empty string,\n// the User-Agent header is removed, and no header is sent.\nfunc WithUserAgent(ua string) Opt {\n\treturn func(c *Client) error {\n\t\tc.userAgent = &ua\n\t\treturn nil\n\t}\n}\n\n// WithHTTPHeaders appends custom HTTP headers to the client's default headers.\n// It does not allow for built-in headers (such as \"User-Agent\", if set) to\n// be overridden. Also see [WithUserAgent].\nfunc WithHTTPHeaders(headers map[string]string) Opt {\n\treturn func(c *Client) error {\n\t\tc.customHTTPHeaders = headers\n\t\treturn nil\n\t}\n}\n\n// WithScheme overrides the client scheme with the specified one.\nfunc WithScheme(scheme string) Opt {\n\treturn func(c *Client) error {\n\t\tc.scheme = scheme\n\t\treturn nil\n\t}\n}\n\n// WithTLSClientConfig applies a TLS config to the client transport.\nfunc WithTLSClientConfig(cacertPath, certPath, keyPath string) Opt {\n\treturn func(c *Client) error {\n\t\ttransport, ok := c.client.Transport.(*http.Transport)\n\t\tif !ok {\n\t\t\treturn errors.Errorf(\"cannot apply tls config to transport: %T\", c.client.Transport)\n\t\t}\n\t\tconfig, err := tlsconfig.Client(tlsconfig.Options{\n\t\t\tCAFile:             cacertPath,\n\t\t\tCertFile:           certPath,\n\t\t\tKeyFile:            keyPath,\n\t\t\tExclusiveRootPools: true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Wrap(err, \"failed to create tls config\")\n\t\t}\n\t\ttransport.TLSClientConfig = config\n\t\treturn nil\n\t}\n}\n\n// WithTLSClientConfigFromEnv configures the client's TLS settings with the\n// settings in the DOCKER_CERT_PATH ([EnvOverrideCertPath]) and DOCKER_TLS_VERIFY\n// ([EnvTLSVerify]) environment variables. If DOCKER_CERT_PATH is not set or empty,\n// TLS configuration is not modified.\n//\n// WithTLSClientConfigFromEnv uses the following environment variables:\n//\n//   - DOCKER_CERT_PATH ([EnvOverrideCertPath]) to specify the directory from\n//     which to load the TLS certificates (\"ca.pem\", \"cert.pem\", \"key.pem\").\n//   - DOCKER_TLS_VERIFY ([EnvTLSVerify]) to enable or disable TLS verification\n//     (off by default).\nfunc WithTLSClientConfigFromEnv() Opt {\n\treturn func(c *Client) error {\n\t\tdockerCertPath := os.Getenv(EnvOverrideCertPath)\n\t\tif dockerCertPath == \"\" {\n\t\t\treturn nil\n\t\t}\n\t\ttlsc, err := tlsconfig.Client(tlsconfig.Options{\n\t\t\tCAFile:             filepath.Join(dockerCertPath, \"ca.pem\"),\n\t\t\tCertFile:           filepath.Join(dockerCertPath, \"cert.pem\"),\n\t\t\tKeyFile:            filepath.Join(dockerCertPath, \"key.pem\"),\n\t\t\tInsecureSkipVerify: os.Getenv(EnvTLSVerify) == \"\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tc.client = &http.Client{\n\t\t\tTransport:     &http.Transport{TLSClientConfig: tlsc},\n\t\t\tCheckRedirect: CheckRedirect,\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// WithVersion overrides the client version with the specified one. If an empty\n// version is provided, the value is ignored to allow version negotiation\n// (see [WithAPIVersionNegotiation]).\nfunc WithVersion(version string) Opt {\n\treturn func(c *Client) error {\n\t\tif v := strings.TrimPrefix(version, \"v\"); v != \"\" {\n\t\t\tc.version = v\n\t\t\tc.manualOverride = true\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// WithVersionFromEnv overrides the client version with the version specified in\n// the DOCKER_API_VERSION ([EnvOverrideAPIVersion]) environment variable.\n// If DOCKER_API_VERSION is not set, or set to an empty value, the version\n// is not modified.\nfunc WithVersionFromEnv() Opt {\n\treturn func(c *Client) error {\n\t\treturn WithVersion(os.Getenv(EnvOverrideAPIVersion))(c)\n\t}\n}\n\n// WithAPIVersionNegotiation enables automatic API version negotiation for the client.\n// With this option enabled, the client automatically negotiates the API version\n// to use when making requests. API version negotiation is performed on the first\n// request; subsequent requests do not re-negotiate.\nfunc WithAPIVersionNegotiation() Opt {\n\treturn func(c *Client) error {\n\t\tc.negotiateVersion = true\n\t\treturn nil\n\t}\n}\n\n// WithTraceProvider sets the trace provider for the client.\n// If this is not set then the global trace provider will be used.\nfunc WithTraceProvider(provider trace.TracerProvider) Opt {\n\treturn WithTraceOptions(otelhttp.WithTracerProvider(provider))\n}\n\n// WithTraceOptions sets tracing span options for the client.\nfunc WithTraceOptions(opts ...otelhttp.Option) Opt {\n\treturn func(c *Client) error {\n\t\tc.traceOpts = append(c.traceOpts, opts...)\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/ping.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/http\"\n\t\"path\"\n\t\"strings\"\n\n\t\"github.com/docker/docker/api/types\"\n\t\"github.com/docker/docker/api/types/build\"\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// Ping pings the server and returns the value of the \"Docker-Experimental\",\n// \"Builder-Version\", \"OS-Type\" & \"API-Version\" headers. It attempts to use\n// a HEAD request on the endpoint, but falls back to GET if HEAD is not supported\n// by the daemon. It ignores internal server errors returned by the API, which\n// may be returned if the daemon is in an unhealthy state, but returns errors\n// for other non-success status codes, failing to connect to the API, or failing\n// to parse the API response.\nfunc (cli *Client) Ping(ctx context.Context) (types.Ping, error) {\n\tvar ping types.Ping\n\n\t// Using cli.buildRequest() + cli.doRequest() instead of cli.sendRequest()\n\t// because ping requests are used during API version negotiation, so we want\n\t// to hit the non-versioned /_ping endpoint, not /v1.xx/_ping\n\treq, err := cli.buildRequest(ctx, http.MethodHead, path.Join(cli.basePath, \"/_ping\"), nil, nil)\n\tif err != nil {\n\t\treturn ping, err\n\t}\n\tresp, err := cli.doRequest(req)\n\tif err != nil {\n\t\tif IsErrConnectionFailed(err) {\n\t\t\treturn ping, err\n\t\t}\n\t\t// We managed to connect, but got some error; continue and try GET request.\n\t} else {\n\t\tdefer ensureReaderClosed(resp)\n\t\tswitch resp.StatusCode {\n\t\tcase http.StatusOK, http.StatusInternalServerError:\n\t\t\t// Server handled the request, so parse the response\n\t\t\treturn parsePingResponse(cli, resp)\n\t\t}\n\t}\n\n\t// HEAD failed; fallback to GET.\n\treq.Method = http.MethodGet\n\tresp, err = cli.doRequest(req)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn ping, err\n\t}\n\treturn parsePingResponse(cli, resp)\n}\n\nfunc parsePingResponse(cli *Client, resp *http.Response) (types.Ping, error) {\n\tif resp == nil {\n\t\treturn types.Ping{}, nil\n\t}\n\n\tvar ping types.Ping\n\tif resp.Header == nil {\n\t\treturn ping, cli.checkResponseErr(resp)\n\t}\n\tping.APIVersion = resp.Header.Get(\"Api-Version\")\n\tping.OSType = resp.Header.Get(\"Ostype\")\n\tif resp.Header.Get(\"Docker-Experimental\") == \"true\" {\n\t\tping.Experimental = true\n\t}\n\tif bv := resp.Header.Get(\"Builder-Version\"); bv != \"\" {\n\t\tping.BuilderVersion = build.BuilderVersion(bv)\n\t}\n\tif si := resp.Header.Get(\"Swarm\"); si != \"\" {\n\t\tstate, role, _ := strings.Cut(si, \"/\")\n\t\tping.SwarmStatus = &swarm.Status{\n\t\t\tNodeState:        swarm.LocalNodeState(state),\n\t\t\tControlAvailable: role == \"manager\",\n\t\t}\n\t}\n\treturn ping, cli.checkResponseErr(resp)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/plugin_create.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types\"\n)\n\n// PluginCreate creates a plugin\nfunc (cli *Client) PluginCreate(ctx context.Context, createContext io.Reader, createOptions types.PluginCreateOptions) error {\n\theaders := http.Header(make(map[string][]string))\n\theaders.Set(\"Content-Type\", \"application/x-tar\")\n\n\tquery := url.Values{}\n\tquery.Set(\"name\", createOptions.RepoName)\n\n\tresp, err := cli.postRaw(ctx, \"/plugins/create\", query, createContext, headers)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/plugin_disable.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types\"\n)\n\n// PluginDisable disables a plugin\nfunc (cli *Client) PluginDisable(ctx context.Context, name string, options types.PluginDisableOptions) error {\n\tname, err := trimID(\"plugin\", name)\n\tif err != nil {\n\t\treturn err\n\t}\n\tquery := url.Values{}\n\tif options.Force {\n\t\tquery.Set(\"force\", \"1\")\n\t}\n\tresp, err := cli.post(ctx, \"/plugins/\"+name+\"/disable\", query, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/plugin_enable.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"github.com/docker/docker/api/types\"\n)\n\n// PluginEnable enables a plugin\nfunc (cli *Client) PluginEnable(ctx context.Context, name string, options types.PluginEnableOptions) error {\n\tname, err := trimID(\"plugin\", name)\n\tif err != nil {\n\t\treturn err\n\t}\n\tquery := url.Values{}\n\tquery.Set(\"timeout\", strconv.Itoa(options.Timeout))\n\n\tresp, err := cli.post(ctx, \"/plugins/\"+name+\"/enable\", query, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/plugin_inspect.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\n\t\"github.com/docker/docker/api/types\"\n)\n\n// PluginInspectWithRaw inspects an existing plugin\nfunc (cli *Client) PluginInspectWithRaw(ctx context.Context, name string) (*types.Plugin, []byte, error) {\n\tname, err := trimID(\"plugin\", name)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tresp, err := cli.get(ctx, \"/plugins/\"+name+\"/json\", nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tvar p types.Plugin\n\trdr := bytes.NewReader(body)\n\terr = json.NewDecoder(rdr).Decode(&p)\n\treturn &p, body, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/plugin_install.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\n\tcerrdefs \"github.com/containerd/errdefs\"\n\t\"github.com/distribution/reference\"\n\t\"github.com/docker/docker/api/types\"\n\t\"github.com/docker/docker/api/types/registry\"\n\t\"github.com/pkg/errors\"\n)\n\n// PluginInstall installs a plugin\nfunc (cli *Client) PluginInstall(ctx context.Context, name string, options types.PluginInstallOptions) (_ io.ReadCloser, retErr error) {\n\tquery := url.Values{}\n\tif _, err := reference.ParseNormalizedNamed(options.RemoteRef); err != nil {\n\t\treturn nil, errors.Wrap(err, \"invalid remote reference\")\n\t}\n\tquery.Set(\"remote\", options.RemoteRef)\n\n\tprivileges, err := cli.checkPluginPermissions(ctx, query, options)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// set name for plugin pull, if empty should default to remote reference\n\tquery.Set(\"name\", name)\n\n\tresp, err := cli.tryPluginPull(ctx, query, privileges, options.RegistryAuth)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tname = resp.Header.Get(\"Docker-Plugin-Name\")\n\n\tpr, pw := io.Pipe()\n\tgo func() { // todo: the client should probably be designed more around the actual api\n\t\t_, err := io.Copy(pw, resp.Body)\n\t\tif err != nil {\n\t\t\t_ = pw.CloseWithError(err)\n\t\t\treturn\n\t\t}\n\t\tdefer func() {\n\t\t\tif retErr != nil {\n\t\t\t\tdelResp, _ := cli.delete(ctx, \"/plugins/\"+name, nil, nil)\n\t\t\t\tensureReaderClosed(delResp)\n\t\t\t}\n\t\t}()\n\t\tif len(options.Args) > 0 {\n\t\t\tif err := cli.PluginSet(ctx, name, options.Args); err != nil {\n\t\t\t\t_ = pw.CloseWithError(err)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tif options.Disabled {\n\t\t\t_ = pw.Close()\n\t\t\treturn\n\t\t}\n\n\t\tenableErr := cli.PluginEnable(ctx, name, types.PluginEnableOptions{Timeout: 0})\n\t\t_ = pw.CloseWithError(enableErr)\n\t}()\n\treturn pr, nil\n}\n\nfunc (cli *Client) tryPluginPrivileges(ctx context.Context, query url.Values, registryAuth string) (*http.Response, error) {\n\treturn cli.get(ctx, \"/plugins/privileges\", query, http.Header{\n\t\tregistry.AuthHeader: {registryAuth},\n\t})\n}\n\nfunc (cli *Client) tryPluginPull(ctx context.Context, query url.Values, privileges types.PluginPrivileges, registryAuth string) (*http.Response, error) {\n\treturn cli.post(ctx, \"/plugins/pull\", query, privileges, http.Header{\n\t\tregistry.AuthHeader: {registryAuth},\n\t})\n}\n\nfunc (cli *Client) checkPluginPermissions(ctx context.Context, query url.Values, options types.PluginInstallOptions) (types.PluginPrivileges, error) {\n\tresp, err := cli.tryPluginPrivileges(ctx, query, options.RegistryAuth)\n\tif cerrdefs.IsUnauthorized(err) && options.PrivilegeFunc != nil {\n\t\t// todo: do inspect before to check existing name before checking privileges\n\t\tnewAuthHeader, privilegeErr := options.PrivilegeFunc(ctx)\n\t\tif privilegeErr != nil {\n\t\t\tensureReaderClosed(resp)\n\t\t\treturn nil, privilegeErr\n\t\t}\n\t\toptions.RegistryAuth = newAuthHeader\n\t\tresp, err = cli.tryPluginPrivileges(ctx, query, options.RegistryAuth)\n\t}\n\tif err != nil {\n\t\tensureReaderClosed(resp)\n\t\treturn nil, err\n\t}\n\n\tvar privileges types.PluginPrivileges\n\tif err := json.NewDecoder(resp.Body).Decode(&privileges); err != nil {\n\t\tensureReaderClosed(resp)\n\t\treturn nil, err\n\t}\n\tensureReaderClosed(resp)\n\n\tif !options.AcceptAllPermissions && options.AcceptPermissionsFunc != nil && len(privileges) > 0 {\n\t\taccept, err := options.AcceptPermissionsFunc(ctx, privileges)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !accept {\n\t\t\treturn nil, errors.Errorf(\"permission denied while installing plugin %s\", options.RemoteRef)\n\t\t}\n\t}\n\treturn privileges, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/plugin_list.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types\"\n\t\"github.com/docker/docker/api/types/filters\"\n)\n\n// PluginList returns the installed plugins\nfunc (cli *Client) PluginList(ctx context.Context, filter filters.Args) (types.PluginsListResponse, error) {\n\tvar plugins types.PluginsListResponse\n\tquery := url.Values{}\n\n\tif filter.Len() > 0 {\n\t\t//nolint:staticcheck // ignore SA1019 for old code\n\t\tfilterJSON, err := filters.ToParamWithVersion(cli.version, filter)\n\t\tif err != nil {\n\t\t\treturn plugins, err\n\t\t}\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\tresp, err := cli.get(ctx, \"/plugins\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn plugins, err\n\t}\n\n\terr = json.NewDecoder(resp.Body).Decode(&plugins)\n\treturn plugins, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/plugin_push.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/http\"\n\n\t\"github.com/docker/docker/api/types/registry\"\n)\n\n// PluginPush pushes a plugin to a registry\nfunc (cli *Client) PluginPush(ctx context.Context, name string, registryAuth string) (io.ReadCloser, error) {\n\tname, err := trimID(\"plugin\", name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresp, err := cli.post(ctx, \"/plugins/\"+name+\"/push\", nil, nil, http.Header{\n\t\tregistry.AuthHeader: {registryAuth},\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn resp.Body, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/plugin_remove.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types\"\n)\n\n// PluginRemove removes a plugin\nfunc (cli *Client) PluginRemove(ctx context.Context, name string, options types.PluginRemoveOptions) error {\n\tname, err := trimID(\"plugin\", name)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tif options.Force {\n\t\tquery.Set(\"force\", \"1\")\n\t}\n\n\tresp, err := cli.delete(ctx, \"/plugins/\"+name, query, nil)\n\tdefer ensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/plugin_set.go",
    "content": "package client\n\nimport (\n\t\"context\"\n)\n\n// PluginSet modifies settings for an existing plugin\nfunc (cli *Client) PluginSet(ctx context.Context, name string, args []string) error {\n\tname, err := trimID(\"plugin\", name)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := cli.post(ctx, \"/plugins/\"+name+\"/set\", nil, args, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/plugin_upgrade.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"github.com/distribution/reference\"\n\t\"github.com/docker/docker/api/types\"\n\t\"github.com/docker/docker/api/types/registry\"\n\t\"github.com/pkg/errors\"\n)\n\n// PluginUpgrade upgrades a plugin\nfunc (cli *Client) PluginUpgrade(ctx context.Context, name string, options types.PluginInstallOptions) (io.ReadCloser, error) {\n\tname, err := trimID(\"plugin\", name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err := cli.NewVersionError(ctx, \"1.26\", \"plugin upgrade\"); err != nil {\n\t\treturn nil, err\n\t}\n\tquery := url.Values{}\n\tif _, err := reference.ParseNormalizedNamed(options.RemoteRef); err != nil {\n\t\treturn nil, errors.Wrap(err, \"invalid remote reference\")\n\t}\n\tquery.Set(\"remote\", options.RemoteRef)\n\n\tprivileges, err := cli.checkPluginPermissions(ctx, query, options)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp, err := cli.tryPluginUpgrade(ctx, query, privileges, name, options.RegistryAuth)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn resp.Body, nil\n}\n\nfunc (cli *Client) tryPluginUpgrade(ctx context.Context, query url.Values, privileges types.PluginPrivileges, name, registryAuth string) (*http.Response, error) {\n\treturn cli.post(ctx, \"/plugins/\"+name+\"/upgrade\", query, privileges, http.Header{\n\t\tregistry.AuthHeader: {registryAuth},\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/request.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"github.com/docker/docker/api/types\"\n\t\"github.com/docker/docker/api/types/versions\"\n\t\"github.com/pkg/errors\"\n)\n\n// head sends an http request to the docker API using the method HEAD.\nfunc (cli *Client) head(ctx context.Context, path string, query url.Values, headers http.Header) (*http.Response, error) {\n\treturn cli.sendRequest(ctx, http.MethodHead, path, query, nil, headers)\n}\n\n// get sends an http request to the docker API using the method GET with a specific Go context.\nfunc (cli *Client) get(ctx context.Context, path string, query url.Values, headers http.Header) (*http.Response, error) {\n\treturn cli.sendRequest(ctx, http.MethodGet, path, query, nil, headers)\n}\n\n// post sends an http request to the docker API using the method POST with a specific Go context.\nfunc (cli *Client) post(ctx context.Context, path string, query url.Values, obj interface{}, headers http.Header) (*http.Response, error) {\n\tbody, headers, err := encodeBody(obj, headers)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn cli.sendRequest(ctx, http.MethodPost, path, query, body, headers)\n}\n\nfunc (cli *Client) postRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers http.Header) (*http.Response, error) {\n\treturn cli.sendRequest(ctx, http.MethodPost, path, query, body, headers)\n}\n\nfunc (cli *Client) put(ctx context.Context, path string, query url.Values, obj interface{}, headers http.Header) (*http.Response, error) {\n\tbody, headers, err := encodeBody(obj, headers)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn cli.putRaw(ctx, path, query, body, headers)\n}\n\n// putRaw sends an http request to the docker API using the method PUT.\nfunc (cli *Client) putRaw(ctx context.Context, path string, query url.Values, body io.Reader, headers http.Header) (*http.Response, error) {\n\t// PUT requests are expected to always have a body (apparently)\n\t// so explicitly pass an empty body to sendRequest to signal that\n\t// it should set the Content-Type header if not already present.\n\tif body == nil {\n\t\tbody = http.NoBody\n\t}\n\treturn cli.sendRequest(ctx, http.MethodPut, path, query, body, headers)\n}\n\n// delete sends an http request to the docker API using the method DELETE.\nfunc (cli *Client) delete(ctx context.Context, path string, query url.Values, headers http.Header) (*http.Response, error) {\n\treturn cli.sendRequest(ctx, http.MethodDelete, path, query, nil, headers)\n}\n\nfunc encodeBody(obj interface{}, headers http.Header) (io.Reader, http.Header, error) {\n\tif obj == nil {\n\t\treturn nil, headers, nil\n\t}\n\t// encoding/json encodes a nil pointer as the JSON document `null`,\n\t// irrespective of whether the type implements json.Marshaler or encoding.TextMarshaler.\n\t// That is almost certainly not what the caller intended as the request body.\n\tif reflect.TypeOf(obj).Kind() == reflect.Ptr && reflect.ValueOf(obj).IsNil() {\n\t\treturn nil, headers, nil\n\t}\n\n\tbody, err := encodeData(obj)\n\tif err != nil {\n\t\treturn nil, headers, err\n\t}\n\tif headers == nil {\n\t\theaders = make(map[string][]string)\n\t}\n\theaders[\"Content-Type\"] = []string{\"application/json\"}\n\treturn body, headers, nil\n}\n\nfunc (cli *Client) buildRequest(ctx context.Context, method, path string, body io.Reader, headers http.Header) (*http.Request, error) {\n\treq, err := http.NewRequestWithContext(ctx, method, path, body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq = cli.addHeaders(req, headers)\n\treq.URL.Scheme = cli.scheme\n\treq.URL.Host = cli.addr\n\n\tif cli.proto == \"unix\" || cli.proto == \"npipe\" {\n\t\t// Override host header for non-tcp connections.\n\t\treq.Host = DummyHost\n\t}\n\n\tif body != nil && req.Header.Get(\"Content-Type\") == \"\" {\n\t\treq.Header.Set(\"Content-Type\", \"text/plain\")\n\t}\n\treturn req, nil\n}\n\nfunc (cli *Client) sendRequest(ctx context.Context, method, path string, query url.Values, body io.Reader, headers http.Header) (*http.Response, error) {\n\treq, err := cli.buildRequest(ctx, method, cli.getAPIPath(ctx, path, query), body, headers)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresp, err := cli.doRequest(req)\n\tswitch {\n\tcase errors.Is(err, context.Canceled), errors.Is(err, context.DeadlineExceeded):\n\t\treturn nil, err\n\tcase err == nil:\n\t\treturn resp, cli.checkResponseErr(resp)\n\tdefault:\n\t\treturn resp, err\n\t}\n}\n\nfunc (cli *Client) doRequest(req *http.Request) (*http.Response, error) {\n\tresp, err := cli.client.Do(req)\n\tif err != nil {\n\t\tif cli.scheme != \"https\" && strings.Contains(err.Error(), \"malformed HTTP response\") {\n\t\t\treturn nil, errConnectionFailed{fmt.Errorf(\"%v.\\n* Are you trying to connect to a TLS-enabled daemon without TLS?\", err)}\n\t\t}\n\n\t\tif cli.scheme == \"https\" && strings.Contains(err.Error(), \"bad certificate\") {\n\t\t\treturn nil, errConnectionFailed{errors.Wrap(err, \"the server probably has client authentication (--tlsverify) enabled; check your TLS client certification settings\")}\n\t\t}\n\n\t\t// Don't decorate context sentinel errors; users may be comparing to\n\t\t// them directly.\n\t\tif errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tvar uErr *url.Error\n\t\tif errors.As(err, &uErr) {\n\t\t\tvar nErr *net.OpError\n\t\t\tif errors.As(uErr.Err, &nErr) {\n\t\t\t\tif os.IsPermission(nErr.Err) {\n\t\t\t\t\treturn nil, errConnectionFailed{errors.Wrapf(err, \"permission denied while trying to connect to the Docker daemon socket at %v\", cli.host)}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar nErr net.Error\n\t\tif errors.As(err, &nErr) {\n\t\t\t// FIXME(thaJeztah): any net.Error should be considered a connection error (but we should include the original error)?\n\t\t\tif nErr.Timeout() {\n\t\t\t\treturn nil, connectionFailed(cli.host)\n\t\t\t}\n\t\t\tif strings.Contains(nErr.Error(), \"connection refused\") || strings.Contains(nErr.Error(), \"dial unix\") {\n\t\t\t\treturn nil, connectionFailed(cli.host)\n\t\t\t}\n\t\t}\n\n\t\t// Although there's not a strongly typed error for this in go-winio,\n\t\t// lots of people are using the default configuration for the docker\n\t\t// daemon on Windows where the daemon is listening on a named pipe\n\t\t// `//./pipe/docker_engine, and the client must be running elevated.\n\t\t// Give users a clue rather than the not-overly useful message\n\t\t// such as `error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.26/info:\n\t\t// open //./pipe/docker_engine: The system cannot find the file specified.`.\n\t\t// Note we can't string compare \"The system cannot find the file specified\" as\n\t\t// this is localised - for example in French the error would be\n\t\t// `open //./pipe/docker_engine: Le fichier spécifié est introuvable.`\n\t\tif strings.Contains(err.Error(), `open //./pipe/docker_engine`) {\n\t\t\t// Checks if client is running with elevated privileges\n\t\t\tif f, elevatedErr := os.Open(`\\\\.\\PHYSICALDRIVE0`); elevatedErr != nil {\n\t\t\t\terr = errors.Wrap(err, \"in the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect\")\n\t\t\t} else {\n\t\t\t\t_ = f.Close()\n\t\t\t\terr = errors.Wrap(err, \"this error may indicate that the docker daemon is not running\")\n\t\t\t}\n\t\t}\n\n\t\treturn nil, errConnectionFailed{errors.Wrap(err, \"error during connect\")}\n\t}\n\n\treturn resp, nil\n}\n\nfunc (cli *Client) checkResponseErr(serverResp *http.Response) (retErr error) {\n\tif serverResp == nil {\n\t\treturn nil\n\t}\n\tif serverResp.StatusCode >= http.StatusOK && serverResp.StatusCode < http.StatusBadRequest {\n\t\treturn nil\n\t}\n\tdefer func() {\n\t\tretErr = httpErrorFromStatusCode(retErr, serverResp.StatusCode)\n\t}()\n\n\tvar body []byte\n\tvar err error\n\tvar reqURL string\n\tif serverResp.Request != nil {\n\t\treqURL = serverResp.Request.URL.String()\n\t}\n\tstatusMsg := serverResp.Status\n\tif statusMsg == \"\" {\n\t\tstatusMsg = http.StatusText(serverResp.StatusCode)\n\t}\n\tif serverResp.Body != nil {\n\t\tbodyMax := 1 * 1024 * 1024 // 1 MiB\n\t\tbodyR := &io.LimitedReader{\n\t\t\tR: serverResp.Body,\n\t\t\tN: int64(bodyMax),\n\t\t}\n\t\tbody, err = io.ReadAll(bodyR)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif bodyR.N == 0 {\n\t\t\tif reqURL != \"\" {\n\t\t\t\treturn fmt.Errorf(\"request returned %s with a message (> %d bytes) for API route and version %s, check if the server supports the requested API version\", statusMsg, bodyMax, reqURL)\n\t\t\t}\n\t\t\treturn fmt.Errorf(\"request returned %s with a message (> %d bytes); check if the server supports the requested API version\", statusMsg, bodyMax)\n\t\t}\n\t}\n\tif len(body) == 0 {\n\t\tif reqURL != \"\" {\n\t\t\treturn fmt.Errorf(\"request returned %s for API route and version %s, check if the server supports the requested API version\", statusMsg, reqURL)\n\t\t}\n\t\treturn fmt.Errorf(\"request returned %s; check if the server supports the requested API version\", statusMsg)\n\t}\n\n\tvar daemonErr error\n\tif serverResp.Header.Get(\"Content-Type\") == \"application/json\" {\n\t\tvar errorResponse types.ErrorResponse\n\t\tif err := json.Unmarshal(body, &errorResponse); err != nil {\n\t\t\treturn errors.Wrap(err, \"Error reading JSON\")\n\t\t}\n\t\tif errorResponse.Message == \"\" {\n\t\t\t// Error-message is empty, which means that we successfully parsed the\n\t\t\t// JSON-response (no error produced), but it didn't contain an error\n\t\t\t// message. This could either be because the response was empty, or\n\t\t\t// the response was valid JSON, but not with the expected schema\n\t\t\t// ([types.ErrorResponse]).\n\t\t\t//\n\t\t\t// We cannot use \"strict\" JSON handling (json.NewDecoder with DisallowUnknownFields)\n\t\t\t// due to the API using an open schema (we must anticipate fields\n\t\t\t// being added to [types.ErrorResponse] in the future, and not\n\t\t\t// reject those responses.\n\t\t\t//\n\t\t\t// For these cases, we construct an error with the status-code\n\t\t\t// returned, but we could consider returning (a truncated version\n\t\t\t// of) the actual response as-is.\n\t\t\t//\n\t\t\t// TODO(thaJeztah): consider adding a log.Debug to allow clients to debug the actual response when enabling debug logging.\n\t\t\tdaemonErr = fmt.Errorf(`API returned a %d (%s) but provided no error-message`,\n\t\t\t\tserverResp.StatusCode,\n\t\t\t\thttp.StatusText(serverResp.StatusCode),\n\t\t\t)\n\t\t} else {\n\t\t\tdaemonErr = errors.New(strings.TrimSpace(errorResponse.Message))\n\t\t}\n\t} else {\n\t\t// Fall back to returning the response as-is for API versions < 1.24\n\t\t// that didn't support JSON error responses, and for situations\n\t\t// where a plain text error is returned. This branch may also catch\n\t\t// situations where a proxy is involved, returning a HTML response.\n\t\tdaemonErr = errors.New(strings.TrimSpace(string(body)))\n\t}\n\treturn errors.Wrap(daemonErr, \"Error response from daemon\")\n}\n\nfunc (cli *Client) addHeaders(req *http.Request, headers http.Header) *http.Request {\n\t// Add CLI Config's HTTP Headers BEFORE we set the Docker headers\n\t// then the user can't change OUR headers\n\tfor k, v := range cli.customHTTPHeaders {\n\t\tif versions.LessThan(cli.version, \"1.25\") && http.CanonicalHeaderKey(k) == \"User-Agent\" {\n\t\t\tcontinue\n\t\t}\n\t\treq.Header.Set(k, v)\n\t}\n\n\tfor k, v := range headers {\n\t\treq.Header[http.CanonicalHeaderKey(k)] = v\n\t}\n\n\tif cli.userAgent != nil {\n\t\tif *cli.userAgent == \"\" {\n\t\t\treq.Header.Del(\"User-Agent\")\n\t\t} else {\n\t\t\treq.Header.Set(\"User-Agent\", *cli.userAgent)\n\t\t}\n\t}\n\treturn req\n}\n\nfunc encodeData(data interface{}) (*bytes.Buffer, error) {\n\tparams := bytes.NewBuffer(nil)\n\tif data != nil {\n\t\tif err := json.NewEncoder(params).Encode(data); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn params, nil\n}\n\nfunc ensureReaderClosed(response *http.Response) {\n\tif response != nil && response.Body != nil {\n\t\t// Drain up to 512 bytes and close the body to let the Transport reuse the connection\n\t\t// see https://github.com/google/go-github/pull/317/files#r57536827\n\t\t//\n\t\t// TODO(thaJeztah): see if this optimization is still needed, or already implemented in stdlib,\n\t\t//   and check if context-cancellation should handle this as well. If still needed, consider\n\t\t//   wrapping response.Body, or returning a \"closer()\" from [Client.sendRequest] and related\n\t\t//   methods.\n\t\t_, _ = io.CopyN(io.Discard, response.Body, 512)\n\t\t_ = response.Body.Close()\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/secret_create.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// SecretCreate creates a new secret.\nfunc (cli *Client) SecretCreate(ctx context.Context, secret swarm.SecretSpec) (swarm.SecretCreateResponse, error) {\n\tif err := cli.NewVersionError(ctx, \"1.25\", \"secret create\"); err != nil {\n\t\treturn swarm.SecretCreateResponse{}, err\n\t}\n\tresp, err := cli.post(ctx, \"/secrets/create\", nil, secret, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn swarm.SecretCreateResponse{}, err\n\t}\n\n\tvar response swarm.SecretCreateResponse\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/secret_inspect.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// SecretInspectWithRaw returns the secret information with raw data\nfunc (cli *Client) SecretInspectWithRaw(ctx context.Context, id string) (swarm.Secret, []byte, error) {\n\tid, err := trimID(\"secret\", id)\n\tif err != nil {\n\t\treturn swarm.Secret{}, nil, err\n\t}\n\tif err := cli.NewVersionError(ctx, \"1.25\", \"secret inspect\"); err != nil {\n\t\treturn swarm.Secret{}, nil, err\n\t}\n\tresp, err := cli.get(ctx, \"/secrets/\"+id, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn swarm.Secret{}, nil, err\n\t}\n\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn swarm.Secret{}, nil, err\n\t}\n\n\tvar secret swarm.Secret\n\trdr := bytes.NewReader(body)\n\terr = json.NewDecoder(rdr).Decode(&secret)\n\n\treturn secret, body, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/secret_list.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// SecretList returns the list of secrets.\nfunc (cli *Client) SecretList(ctx context.Context, options swarm.SecretListOptions) ([]swarm.Secret, error) {\n\tif err := cli.NewVersionError(ctx, \"1.25\", \"secret list\"); err != nil {\n\t\treturn nil, err\n\t}\n\tquery := url.Values{}\n\n\tif options.Filters.Len() > 0 {\n\t\tfilterJSON, err := filters.ToJSON(options.Filters)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\n\tresp, err := cli.get(ctx, \"/secrets\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar secrets []swarm.Secret\n\terr = json.NewDecoder(resp.Body).Decode(&secrets)\n\treturn secrets, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/secret_remove.go",
    "content": "package client\n\nimport \"context\"\n\n// SecretRemove removes a secret.\nfunc (cli *Client) SecretRemove(ctx context.Context, id string) error {\n\tid, err := trimID(\"secret\", id)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := cli.NewVersionError(ctx, \"1.25\", \"secret remove\"); err != nil {\n\t\treturn err\n\t}\n\tresp, err := cli.delete(ctx, \"/secrets/\"+id, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/secret_update.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// SecretUpdate attempts to update a secret.\nfunc (cli *Client) SecretUpdate(ctx context.Context, id string, version swarm.Version, secret swarm.SecretSpec) error {\n\tid, err := trimID(\"secret\", id)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := cli.NewVersionError(ctx, \"1.25\", \"secret update\"); err != nil {\n\t\treturn err\n\t}\n\tquery := url.Values{}\n\tquery.Set(\"version\", version.String())\n\tresp, err := cli.post(ctx, \"/secrets/\"+id+\"/update\", query, secret, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/service_create.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/distribution/reference\"\n\t\"github.com/docker/docker/api/types/registry\"\n\t\"github.com/docker/docker/api/types/swarm\"\n\t\"github.com/docker/docker/api/types/versions\"\n\t\"github.com/opencontainers/go-digest\"\n\t\"github.com/pkg/errors\"\n)\n\n// ServiceCreate creates a new service.\nfunc (cli *Client) ServiceCreate(ctx context.Context, service swarm.ServiceSpec, options swarm.ServiceCreateOptions) (swarm.ServiceCreateResponse, error) {\n\tvar response swarm.ServiceCreateResponse\n\n\t// Make sure we negotiated (if the client is configured to do so),\n\t// as code below contains API-version specific handling of options.\n\t//\n\t// Normally, version-negotiation (if enabled) would not happen until\n\t// the API request is made.\n\tif err := cli.checkVersion(ctx); err != nil {\n\t\treturn response, err\n\t}\n\n\t// Make sure containerSpec is not nil when no runtime is set or the runtime is set to container\n\tif service.TaskTemplate.ContainerSpec == nil && (service.TaskTemplate.Runtime == \"\" || service.TaskTemplate.Runtime == swarm.RuntimeContainer) {\n\t\tservice.TaskTemplate.ContainerSpec = &swarm.ContainerSpec{}\n\t}\n\n\tif err := validateServiceSpec(service); err != nil {\n\t\treturn response, err\n\t}\n\tif versions.LessThan(cli.version, \"1.30\") {\n\t\tif err := validateAPIVersion(service, cli.version); err != nil {\n\t\t\treturn response, err\n\t\t}\n\t}\n\n\t// ensure that the image is tagged\n\tvar resolveWarning string\n\tswitch {\n\tcase service.TaskTemplate.ContainerSpec != nil:\n\t\tif taggedImg := imageWithTagString(service.TaskTemplate.ContainerSpec.Image); taggedImg != \"\" {\n\t\t\tservice.TaskTemplate.ContainerSpec.Image = taggedImg\n\t\t}\n\t\tif options.QueryRegistry {\n\t\t\tresolveWarning = resolveContainerSpecImage(ctx, cli, &service.TaskTemplate, options.EncodedRegistryAuth)\n\t\t}\n\tcase service.TaskTemplate.PluginSpec != nil:\n\t\tif taggedImg := imageWithTagString(service.TaskTemplate.PluginSpec.Remote); taggedImg != \"\" {\n\t\t\tservice.TaskTemplate.PluginSpec.Remote = taggedImg\n\t\t}\n\t\tif options.QueryRegistry {\n\t\t\tresolveWarning = resolvePluginSpecRemote(ctx, cli, &service.TaskTemplate, options.EncodedRegistryAuth)\n\t\t}\n\t}\n\n\theaders := http.Header{}\n\tif versions.LessThan(cli.version, \"1.30\") {\n\t\t// the custom \"version\" header was used by engine API before 20.10\n\t\t// (API 1.30) to switch between client- and server-side lookup of\n\t\t// image digests.\n\t\theaders[\"version\"] = []string{cli.version}\n\t}\n\tif options.EncodedRegistryAuth != \"\" {\n\t\theaders[registry.AuthHeader] = []string{options.EncodedRegistryAuth}\n\t}\n\tresp, err := cli.post(ctx, \"/services/create\", nil, service, headers)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn response, err\n\t}\n\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\tif resolveWarning != \"\" {\n\t\tresponse.Warnings = append(response.Warnings, resolveWarning)\n\t}\n\n\treturn response, err\n}\n\nfunc resolveContainerSpecImage(ctx context.Context, cli DistributionAPIClient, taskSpec *swarm.TaskSpec, encodedAuth string) string {\n\tvar warning string\n\tif img, imgPlatforms, err := imageDigestAndPlatforms(ctx, cli, taskSpec.ContainerSpec.Image, encodedAuth); err != nil {\n\t\twarning = digestWarning(taskSpec.ContainerSpec.Image)\n\t} else {\n\t\ttaskSpec.ContainerSpec.Image = img\n\t\tif len(imgPlatforms) > 0 {\n\t\t\tif taskSpec.Placement == nil {\n\t\t\t\ttaskSpec.Placement = &swarm.Placement{}\n\t\t\t}\n\t\t\ttaskSpec.Placement.Platforms = imgPlatforms\n\t\t}\n\t}\n\treturn warning\n}\n\nfunc resolvePluginSpecRemote(ctx context.Context, cli DistributionAPIClient, taskSpec *swarm.TaskSpec, encodedAuth string) string {\n\tvar warning string\n\tif img, imgPlatforms, err := imageDigestAndPlatforms(ctx, cli, taskSpec.PluginSpec.Remote, encodedAuth); err != nil {\n\t\twarning = digestWarning(taskSpec.PluginSpec.Remote)\n\t} else {\n\t\ttaskSpec.PluginSpec.Remote = img\n\t\tif len(imgPlatforms) > 0 {\n\t\t\tif taskSpec.Placement == nil {\n\t\t\t\ttaskSpec.Placement = &swarm.Placement{}\n\t\t\t}\n\t\t\ttaskSpec.Placement.Platforms = imgPlatforms\n\t\t}\n\t}\n\treturn warning\n}\n\nfunc imageDigestAndPlatforms(ctx context.Context, cli DistributionAPIClient, image, encodedAuth string) (string, []swarm.Platform, error) {\n\tdistributionInspect, err := cli.DistributionInspect(ctx, image, encodedAuth)\n\tvar platforms []swarm.Platform\n\tif err != nil {\n\t\treturn \"\", nil, err\n\t}\n\n\timageWithDigest := imageWithDigestString(image, distributionInspect.Descriptor.Digest)\n\n\tif len(distributionInspect.Platforms) > 0 {\n\t\tplatforms = make([]swarm.Platform, 0, len(distributionInspect.Platforms))\n\t\tfor _, p := range distributionInspect.Platforms {\n\t\t\t// clear architecture field for arm. This is a temporary patch to address\n\t\t\t// https://github.com/docker/swarmkit/issues/2294. The issue is that while\n\t\t\t// image manifests report \"arm\" as the architecture, the node reports\n\t\t\t// something like \"armv7l\" (includes the variant), which causes arm images\n\t\t\t// to stop working with swarm mode. This patch removes the architecture\n\t\t\t// constraint for arm images to ensure tasks get scheduled.\n\t\t\tarch := p.Architecture\n\t\t\tif strings.ToLower(arch) == \"arm\" {\n\t\t\t\tarch = \"\"\n\t\t\t}\n\t\t\tplatforms = append(platforms, swarm.Platform{\n\t\t\t\tArchitecture: arch,\n\t\t\t\tOS:           p.OS,\n\t\t\t})\n\t\t}\n\t}\n\treturn imageWithDigest, platforms, err\n}\n\n// imageWithDigestString takes an image string and a digest, and updates\n// the image string if it didn't originally contain a digest. It returns\n// image unmodified in other situations.\nfunc imageWithDigestString(image string, dgst digest.Digest) string {\n\tnamedRef, err := reference.ParseNormalizedNamed(image)\n\tif err == nil {\n\t\tif _, isCanonical := namedRef.(reference.Canonical); !isCanonical {\n\t\t\t// ensure that image gets a default tag if none is provided\n\t\t\timg, err := reference.WithDigest(namedRef, dgst)\n\t\t\tif err == nil {\n\t\t\t\treturn reference.FamiliarString(img)\n\t\t\t}\n\t\t}\n\t}\n\treturn image\n}\n\n// imageWithTagString takes an image string, and returns a tagged image\n// string, adding a 'latest' tag if one was not provided. It returns an\n// empty string if a canonical reference was provided\nfunc imageWithTagString(image string) string {\n\tnamedRef, err := reference.ParseNormalizedNamed(image)\n\tif err == nil {\n\t\treturn reference.FamiliarString(reference.TagNameOnly(namedRef))\n\t}\n\treturn \"\"\n}\n\n// digestWarning constructs a formatted warning string using the\n// image name that could not be pinned by digest. The formatting\n// is hardcoded, but could me made smarter in the future\nfunc digestWarning(image string) string {\n\treturn fmt.Sprintf(\"image %s could not be accessed on a registry to record\\nits digest. Each node will access %s independently,\\npossibly leading to different nodes running different\\nversions of the image.\\n\", image, image)\n}\n\nfunc validateServiceSpec(s swarm.ServiceSpec) error {\n\tif s.TaskTemplate.ContainerSpec != nil && s.TaskTemplate.PluginSpec != nil {\n\t\treturn errors.New(\"must not specify both a container spec and a plugin spec in the task template\")\n\t}\n\tif s.TaskTemplate.PluginSpec != nil && s.TaskTemplate.Runtime != swarm.RuntimePlugin {\n\t\treturn errors.New(\"mismatched runtime with plugin spec\")\n\t}\n\tif s.TaskTemplate.ContainerSpec != nil && (s.TaskTemplate.Runtime != \"\" && s.TaskTemplate.Runtime != swarm.RuntimeContainer) {\n\t\treturn errors.New(\"mismatched runtime with container spec\")\n\t}\n\treturn nil\n}\n\nfunc validateAPIVersion(c swarm.ServiceSpec, apiVersion string) error {\n\tfor _, m := range c.TaskTemplate.ContainerSpec.Mounts {\n\t\tif m.BindOptions != nil {\n\t\t\tif m.BindOptions.NonRecursive && versions.LessThan(apiVersion, \"1.40\") {\n\t\t\t\treturn errors.Errorf(\"bind-recursive=disabled requires API v1.40 or later\")\n\t\t\t}\n\t\t\t// ReadOnlyNonRecursive can be safely ignored when API < 1.44\n\t\t\tif m.BindOptions.ReadOnlyForceRecursive && versions.LessThan(apiVersion, \"1.44\") {\n\t\t\t\treturn errors.Errorf(\"bind-recursive=readonly requires API v1.44 or later\")\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/service_inspect.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// ServiceInspectWithRaw returns the service information and the raw data.\nfunc (cli *Client) ServiceInspectWithRaw(ctx context.Context, serviceID string, opts swarm.ServiceInspectOptions) (swarm.Service, []byte, error) {\n\tserviceID, err := trimID(\"service\", serviceID)\n\tif err != nil {\n\t\treturn swarm.Service{}, nil, err\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"insertDefaults\", fmt.Sprintf(\"%v\", opts.InsertDefaults))\n\tresp, err := cli.get(ctx, \"/services/\"+serviceID, query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn swarm.Service{}, nil, err\n\t}\n\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn swarm.Service{}, nil, err\n\t}\n\n\tvar response swarm.Service\n\trdr := bytes.NewReader(body)\n\terr = json.NewDecoder(rdr).Decode(&response)\n\treturn response, body, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/service_list.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// ServiceList returns the list of services.\nfunc (cli *Client) ServiceList(ctx context.Context, options swarm.ServiceListOptions) ([]swarm.Service, error) {\n\tquery := url.Values{}\n\n\tif options.Filters.Len() > 0 {\n\t\tfilterJSON, err := filters.ToJSON(options.Filters)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\n\tif options.Status {\n\t\tquery.Set(\"status\", \"true\")\n\t}\n\n\tresp, err := cli.get(ctx, \"/services\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar services []swarm.Service\n\terr = json.NewDecoder(resp.Body).Decode(&services)\n\treturn services, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/service_logs.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/url\"\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\ttimetypes \"github.com/docker/docker/api/types/time\"\n\t\"github.com/pkg/errors\"\n)\n\n// ServiceLogs returns the logs generated by a service in an io.ReadCloser.\n// It's up to the caller to close the stream.\nfunc (cli *Client) ServiceLogs(ctx context.Context, serviceID string, options container.LogsOptions) (io.ReadCloser, error) {\n\tserviceID, err := trimID(\"service\", serviceID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tquery := url.Values{}\n\tif options.ShowStdout {\n\t\tquery.Set(\"stdout\", \"1\")\n\t}\n\n\tif options.ShowStderr {\n\t\tquery.Set(\"stderr\", \"1\")\n\t}\n\n\tif options.Since != \"\" {\n\t\tts, err := timetypes.GetTimestamp(options.Since, time.Now())\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrap(err, `invalid value for \"since\"`)\n\t\t}\n\t\tquery.Set(\"since\", ts)\n\t}\n\n\tif options.Timestamps {\n\t\tquery.Set(\"timestamps\", \"1\")\n\t}\n\n\tif options.Details {\n\t\tquery.Set(\"details\", \"1\")\n\t}\n\n\tif options.Follow {\n\t\tquery.Set(\"follow\", \"1\")\n\t}\n\tquery.Set(\"tail\", options.Tail)\n\n\tresp, err := cli.get(ctx, \"/services/\"+serviceID+\"/logs\", query, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn resp.Body, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/service_remove.go",
    "content": "package client\n\nimport \"context\"\n\n// ServiceRemove kills and removes a service.\nfunc (cli *Client) ServiceRemove(ctx context.Context, serviceID string) error {\n\tserviceID, err := trimID(\"service\", serviceID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tresp, err := cli.delete(ctx, \"/services/\"+serviceID, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/service_update.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/registry\"\n\t\"github.com/docker/docker/api/types/swarm\"\n\t\"github.com/docker/docker/api/types/versions\"\n)\n\n// ServiceUpdate updates a Service. The version number is required to avoid conflicting writes.\n// It should be the value as set *before* the update. You can find this value in the Meta field\n// of swarm.Service, which can be found using ServiceInspectWithRaw.\nfunc (cli *Client) ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options swarm.ServiceUpdateOptions) (swarm.ServiceUpdateResponse, error) {\n\tserviceID, err := trimID(\"service\", serviceID)\n\tif err != nil {\n\t\treturn swarm.ServiceUpdateResponse{}, err\n\t}\n\n\t// Make sure we negotiated (if the client is configured to do so),\n\t// as code below contains API-version specific handling of options.\n\t//\n\t// Normally, version-negotiation (if enabled) would not happen until\n\t// the API request is made.\n\tif err := cli.checkVersion(ctx); err != nil {\n\t\treturn swarm.ServiceUpdateResponse{}, err\n\t}\n\n\tquery := url.Values{}\n\tif options.RegistryAuthFrom != \"\" {\n\t\tquery.Set(\"registryAuthFrom\", options.RegistryAuthFrom)\n\t}\n\n\tif options.Rollback != \"\" {\n\t\tquery.Set(\"rollback\", options.Rollback)\n\t}\n\n\tquery.Set(\"version\", version.String())\n\n\tif err := validateServiceSpec(service); err != nil {\n\t\treturn swarm.ServiceUpdateResponse{}, err\n\t}\n\n\t// ensure that the image is tagged\n\tvar resolveWarning string\n\tswitch {\n\tcase service.TaskTemplate.ContainerSpec != nil:\n\t\tif taggedImg := imageWithTagString(service.TaskTemplate.ContainerSpec.Image); taggedImg != \"\" {\n\t\t\tservice.TaskTemplate.ContainerSpec.Image = taggedImg\n\t\t}\n\t\tif options.QueryRegistry {\n\t\t\tresolveWarning = resolveContainerSpecImage(ctx, cli, &service.TaskTemplate, options.EncodedRegistryAuth)\n\t\t}\n\tcase service.TaskTemplate.PluginSpec != nil:\n\t\tif taggedImg := imageWithTagString(service.TaskTemplate.PluginSpec.Remote); taggedImg != \"\" {\n\t\t\tservice.TaskTemplate.PluginSpec.Remote = taggedImg\n\t\t}\n\t\tif options.QueryRegistry {\n\t\t\tresolveWarning = resolvePluginSpecRemote(ctx, cli, &service.TaskTemplate, options.EncodedRegistryAuth)\n\t\t}\n\t}\n\n\theaders := http.Header{}\n\tif versions.LessThan(cli.version, \"1.30\") {\n\t\t// the custom \"version\" header was used by engine API before 20.10\n\t\t// (API 1.30) to switch between client- and server-side lookup of\n\t\t// image digests.\n\t\theaders[\"version\"] = []string{cli.version}\n\t}\n\tif options.EncodedRegistryAuth != \"\" {\n\t\theaders[registry.AuthHeader] = []string{options.EncodedRegistryAuth}\n\t}\n\tresp, err := cli.post(ctx, \"/services/\"+serviceID+\"/update\", query, service, headers)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn swarm.ServiceUpdateResponse{}, err\n\t}\n\n\tvar response swarm.ServiceUpdateResponse\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\tif resolveWarning != \"\" {\n\t\tresponse.Warnings = append(response.Warnings, resolveWarning)\n\t}\n\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/swarm_get_unlock_key.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// SwarmGetUnlockKey retrieves the swarm's unlock key.\nfunc (cli *Client) SwarmGetUnlockKey(ctx context.Context) (swarm.UnlockKeyResponse, error) {\n\tresp, err := cli.get(ctx, \"/swarm/unlockkey\", nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn swarm.UnlockKeyResponse{}, err\n\t}\n\n\tvar response swarm.UnlockKeyResponse\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/swarm_init.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// SwarmInit initializes the swarm.\nfunc (cli *Client) SwarmInit(ctx context.Context, req swarm.InitRequest) (string, error) {\n\tresp, err := cli.post(ctx, \"/swarm/init\", nil, req, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tvar response string\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/swarm_inspect.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// SwarmInspect inspects the swarm.\nfunc (cli *Client) SwarmInspect(ctx context.Context) (swarm.Swarm, error) {\n\tresp, err := cli.get(ctx, \"/swarm\", nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn swarm.Swarm{}, err\n\t}\n\n\tvar response swarm.Swarm\n\terr = json.NewDecoder(resp.Body).Decode(&response)\n\treturn response, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/swarm_join.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// SwarmJoin joins the swarm.\nfunc (cli *Client) SwarmJoin(ctx context.Context, req swarm.JoinRequest) error {\n\tresp, err := cli.post(ctx, \"/swarm/join\", nil, req, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/swarm_leave.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n)\n\n// SwarmLeave leaves the swarm.\nfunc (cli *Client) SwarmLeave(ctx context.Context, force bool) error {\n\tquery := url.Values{}\n\tif force {\n\t\tquery.Set(\"force\", \"1\")\n\t}\n\tresp, err := cli.post(ctx, \"/swarm/leave\", query, nil, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/swarm_unlock.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// SwarmUnlock unlocks locked swarm.\nfunc (cli *Client) SwarmUnlock(ctx context.Context, req swarm.UnlockRequest) error {\n\tresp, err := cli.post(ctx, \"/swarm/unlock\", nil, req, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/swarm_update.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\t\"strconv\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// SwarmUpdate updates the swarm.\nfunc (cli *Client) SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec, flags swarm.UpdateFlags) error {\n\tquery := url.Values{}\n\tquery.Set(\"version\", version.String())\n\tquery.Set(\"rotateWorkerToken\", strconv.FormatBool(flags.RotateWorkerToken))\n\tquery.Set(\"rotateManagerToken\", strconv.FormatBool(flags.RotateManagerToken))\n\tquery.Set(\"rotateManagerUnlockKey\", strconv.FormatBool(flags.RotateManagerUnlockKey))\n\tresp, err := cli.post(ctx, \"/swarm/update\", query, swarm, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/task_inspect.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// TaskInspectWithRaw returns the task information and its raw representation.\nfunc (cli *Client) TaskInspectWithRaw(ctx context.Context, taskID string) (swarm.Task, []byte, error) {\n\ttaskID, err := trimID(\"task\", taskID)\n\tif err != nil {\n\t\treturn swarm.Task{}, nil, err\n\t}\n\n\tresp, err := cli.get(ctx, \"/tasks/\"+taskID, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn swarm.Task{}, nil, err\n\t}\n\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn swarm.Task{}, nil, err\n\t}\n\n\tvar response swarm.Task\n\trdr := bytes.NewReader(body)\n\terr = json.NewDecoder(rdr).Decode(&response)\n\treturn response, body, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/task_list.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/swarm\"\n)\n\n// TaskList returns the list of tasks.\nfunc (cli *Client) TaskList(ctx context.Context, options swarm.TaskListOptions) ([]swarm.Task, error) {\n\tquery := url.Values{}\n\n\tif options.Filters.Len() > 0 {\n\t\tfilterJSON, err := filters.ToJSON(options.Filters)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\n\tresp, err := cli.get(ctx, \"/tasks\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar tasks []swarm.Task\n\terr = json.NewDecoder(resp.Body).Decode(&tasks)\n\treturn tasks, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/task_logs.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/url\"\n\t\"time\"\n\n\t\"github.com/docker/docker/api/types/container\"\n\ttimetypes \"github.com/docker/docker/api/types/time\"\n)\n\n// TaskLogs returns the logs generated by a task in an io.ReadCloser.\n// It's up to the caller to close the stream.\nfunc (cli *Client) TaskLogs(ctx context.Context, taskID string, options container.LogsOptions) (io.ReadCloser, error) {\n\tquery := url.Values{}\n\tif options.ShowStdout {\n\t\tquery.Set(\"stdout\", \"1\")\n\t}\n\n\tif options.ShowStderr {\n\t\tquery.Set(\"stderr\", \"1\")\n\t}\n\n\tif options.Since != \"\" {\n\t\tts, err := timetypes.GetTimestamp(options.Since, time.Now())\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tquery.Set(\"since\", ts)\n\t}\n\n\tif options.Timestamps {\n\t\tquery.Set(\"timestamps\", \"1\")\n\t}\n\n\tif options.Details {\n\t\tquery.Set(\"details\", \"1\")\n\t}\n\n\tif options.Follow {\n\t\tquery.Set(\"follow\", \"1\")\n\t}\n\tquery.Set(\"tail\", options.Tail)\n\n\tresp, err := cli.get(ctx, \"/tasks/\"+taskID+\"/logs\", query, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn resp.Body, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/utils.go",
    "content": "package client\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"strings\"\n\n\tcerrdefs \"github.com/containerd/errdefs\"\n\t\"github.com/docker/docker/api/types/filters\"\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\ntype emptyIDError string\n\nfunc (e emptyIDError) InvalidParameter() {}\n\nfunc (e emptyIDError) Error() string {\n\treturn \"invalid \" + string(e) + \" name or ID: value is empty\"\n}\n\n// trimID trims the given object-ID / name, returning an error if it's empty.\nfunc trimID(objType, id string) (string, error) {\n\tid = strings.TrimSpace(id)\n\tif id == \"\" {\n\t\treturn \"\", emptyIDError(objType)\n\t}\n\treturn id, nil\n}\n\n// getFiltersQuery returns a url query with \"filters\" query term, based on the\n// filters provided.\nfunc getFiltersQuery(f filters.Args) (url.Values, error) {\n\tquery := url.Values{}\n\tif f.Len() > 0 {\n\t\tfilterJSON, err := filters.ToJSON(f)\n\t\tif err != nil {\n\t\t\treturn query, err\n\t\t}\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\treturn query, nil\n}\n\n// encodePlatforms marshals the given platform(s) to JSON format, to\n// be used for query-parameters for filtering / selecting platforms.\nfunc encodePlatforms(platform ...ocispec.Platform) ([]string, error) {\n\tif len(platform) == 0 {\n\t\treturn []string{}, nil\n\t}\n\tif len(platform) == 1 {\n\t\tp, err := encodePlatform(&platform[0])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn []string{p}, nil\n\t}\n\n\tseen := make(map[string]struct{}, len(platform))\n\tout := make([]string, 0, len(platform))\n\tfor i := range platform {\n\t\tp, err := encodePlatform(&platform[i])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif _, ok := seen[p]; !ok {\n\t\t\tout = append(out, p)\n\t\t\tseen[p] = struct{}{}\n\t\t}\n\t}\n\treturn out, nil\n}\n\n// encodePlatform marshals the given platform to JSON format, to\n// be used for query-parameters for filtering / selecting platforms. It\n// is used as a helper for encodePlatforms,\nfunc encodePlatform(platform *ocispec.Platform) (string, error) {\n\tp, err := json.Marshal(platform)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"%w: invalid platform: %v\", cerrdefs.ErrInvalidArgument, err)\n\t}\n\treturn string(p), nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/version.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\n\t\"github.com/docker/docker/api/types\"\n)\n\n// ServerVersion returns information of the docker client and server host.\nfunc (cli *Client) ServerVersion(ctx context.Context) (types.Version, error) {\n\tresp, err := cli.get(ctx, \"/version\", nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn types.Version{}, err\n\t}\n\n\tvar server types.Version\n\terr = json.NewDecoder(resp.Body).Decode(&server)\n\treturn server, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/volume_create.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\n\t\"github.com/docker/docker/api/types/volume\"\n)\n\n// VolumeCreate creates a volume in the docker host.\nfunc (cli *Client) VolumeCreate(ctx context.Context, options volume.CreateOptions) (volume.Volume, error) {\n\tresp, err := cli.post(ctx, \"/volumes/create\", nil, options, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn volume.Volume{}, err\n\t}\n\n\tvar vol volume.Volume\n\terr = json.NewDecoder(resp.Body).Decode(&vol)\n\treturn vol, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/volume_inspect.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"io\"\n\n\t\"github.com/docker/docker/api/types/volume\"\n)\n\n// VolumeInspect returns the information about a specific volume in the docker host.\nfunc (cli *Client) VolumeInspect(ctx context.Context, volumeID string) (volume.Volume, error) {\n\tvol, _, err := cli.VolumeInspectWithRaw(ctx, volumeID)\n\treturn vol, err\n}\n\n// VolumeInspectWithRaw returns the information about a specific volume in the docker host and its raw representation\nfunc (cli *Client) VolumeInspectWithRaw(ctx context.Context, volumeID string) (volume.Volume, []byte, error) {\n\tvolumeID, err := trimID(\"volume\", volumeID)\n\tif err != nil {\n\t\treturn volume.Volume{}, nil, err\n\t}\n\n\tresp, err := cli.get(ctx, \"/volumes/\"+volumeID, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn volume.Volume{}, nil, err\n\t}\n\n\tbody, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn volume.Volume{}, nil, err\n\t}\n\n\tvar vol volume.Volume\n\trdr := bytes.NewReader(body)\n\terr = json.NewDecoder(rdr).Decode(&vol)\n\treturn vol, body, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/volume_list.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/volume\"\n)\n\n// VolumeList returns the volumes configured in the docker host.\nfunc (cli *Client) VolumeList(ctx context.Context, options volume.ListOptions) (volume.ListResponse, error) {\n\tquery := url.Values{}\n\n\tif options.Filters.Len() > 0 {\n\t\t//nolint:staticcheck // ignore SA1019 for old code\n\t\tfilterJSON, err := filters.ToParamWithVersion(cli.version, options.Filters)\n\t\tif err != nil {\n\t\t\treturn volume.ListResponse{}, err\n\t\t}\n\t\tquery.Set(\"filters\", filterJSON)\n\t}\n\tresp, err := cli.get(ctx, \"/volumes\", query, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn volume.ListResponse{}, err\n\t}\n\n\tvar volumes volume.ListResponse\n\terr = json.NewDecoder(resp.Body).Decode(&volumes)\n\treturn volumes, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/volume_prune.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/docker/docker/api/types/filters\"\n\t\"github.com/docker/docker/api/types/volume\"\n)\n\n// VolumesPrune requests the daemon to delete unused data\nfunc (cli *Client) VolumesPrune(ctx context.Context, pruneFilters filters.Args) (volume.PruneReport, error) {\n\tif err := cli.NewVersionError(ctx, \"1.25\", \"volume prune\"); err != nil {\n\t\treturn volume.PruneReport{}, err\n\t}\n\n\tquery, err := getFiltersQuery(pruneFilters)\n\tif err != nil {\n\t\treturn volume.PruneReport{}, err\n\t}\n\n\tresp, err := cli.post(ctx, \"/volumes/prune\", query, nil, nil)\n\tdefer ensureReaderClosed(resp)\n\tif err != nil {\n\t\treturn volume.PruneReport{}, err\n\t}\n\n\tvar report volume.PruneReport\n\tif err := json.NewDecoder(resp.Body).Decode(&report); err != nil {\n\t\treturn volume.PruneReport{}, fmt.Errorf(\"Error retrieving volume prune report: %v\", err)\n\t}\n\n\treturn report, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/volume_remove.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/versions\"\n)\n\n// VolumeRemove removes a volume from the docker host.\nfunc (cli *Client) VolumeRemove(ctx context.Context, volumeID string, force bool) error {\n\tvolumeID, err := trimID(\"volume\", volumeID)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tif force {\n\t\t// Make sure we negotiated (if the client is configured to do so),\n\t\t// as code below contains API-version specific handling of options.\n\t\t//\n\t\t// Normally, version-negotiation (if enabled) would not happen until\n\t\t// the API request is made.\n\t\tif err := cli.checkVersion(ctx); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif versions.GreaterThanOrEqualTo(cli.version, \"1.25\") {\n\t\t\tquery.Set(\"force\", \"1\")\n\t\t}\n\t}\n\tresp, err := cli.delete(ctx, \"/volumes/\"+volumeID, query, nil)\n\tdefer ensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/client/volume_update.go",
    "content": "package client\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"github.com/docker/docker/api/types/swarm\"\n\t\"github.com/docker/docker/api/types/volume\"\n)\n\n// VolumeUpdate updates a volume. This only works for Cluster Volumes, and\n// only some fields can be updated.\nfunc (cli *Client) VolumeUpdate(ctx context.Context, volumeID string, version swarm.Version, options volume.UpdateOptions) error {\n\tvolumeID, err := trimID(\"volume\", volumeID)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := cli.NewVersionError(ctx, \"1.42\", \"volume update\"); err != nil {\n\t\treturn err\n\t}\n\n\tquery := url.Values{}\n\tquery.Set(\"version\", version.String())\n\n\tresp, err := cli.put(ctx, \"/volumes/\"+volumeID, query, options, nil)\n\tensureReaderClosed(resp)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/errdefs/defs.go",
    "content": "package errdefs\n\n// ErrNotFound signals that the requested object doesn't exist\ntype ErrNotFound interface {\n\tNotFound()\n}\n\n// ErrInvalidParameter signals that the user input is invalid\ntype ErrInvalidParameter interface {\n\tInvalidParameter()\n}\n\n// ErrConflict signals that some internal state conflicts with the requested action and can't be performed.\n// A change in state should be able to clear this error.\ntype ErrConflict interface {\n\tConflict()\n}\n\n// ErrUnauthorized is used to signify that the user is not authorized to perform a specific action\ntype ErrUnauthorized interface {\n\tUnauthorized()\n}\n\n// ErrUnavailable signals that the requested action/subsystem is not available.\ntype ErrUnavailable interface {\n\tUnavailable()\n}\n\n// ErrForbidden signals that the requested action cannot be performed under any circumstances.\n// When a ErrForbidden is returned, the caller should never retry the action.\ntype ErrForbidden interface {\n\tForbidden()\n}\n\n// ErrSystem signals that some internal error occurred.\n// An example of this would be a failed mount request.\ntype ErrSystem interface {\n\tSystem()\n}\n\n// ErrNotModified signals that an action can't be performed because it's already in the desired state\ntype ErrNotModified interface {\n\tNotModified()\n}\n\n// ErrNotImplemented signals that the requested action/feature is not implemented on the system as configured.\ntype ErrNotImplemented interface {\n\tNotImplemented()\n}\n\n// ErrUnknown signals that the kind of error that occurred is not known.\ntype ErrUnknown interface {\n\tUnknown()\n}\n\n// ErrCancelled signals that the action was cancelled.\ntype ErrCancelled interface {\n\tCancelled()\n}\n\n// ErrDeadline signals that the deadline was reached before the action completed.\ntype ErrDeadline interface {\n\tDeadlineExceeded()\n}\n\n// ErrDataLoss indicates that data was lost or there is data corruption.\ntype ErrDataLoss interface {\n\tDataLoss()\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/errdefs/doc.go",
    "content": "// Package errdefs defines a set of error interfaces that packages should use for communicating classes of errors.\n// Errors that cross the package boundary should implement one (and only one) of these interfaces.\n//\n// Packages should not reference these interfaces directly, only implement them.\n// To check if a particular error implements one of these interfaces, there are helper\n// functions provided (e.g. `Is<SomeError>`) which can be used rather than asserting the interfaces directly.\n// If you must assert on these interfaces, be sure to check the causal chain (`err.Unwrap()`).\npackage errdefs\n"
  },
  {
    "path": "vendor/github.com/docker/docker/errdefs/helpers.go",
    "content": "package errdefs\n\nimport (\n\t\"context\"\n\n\tcerrdefs \"github.com/containerd/errdefs\"\n)\n\ntype errNotFound struct{ error }\n\nfunc (errNotFound) NotFound() {}\n\nfunc (e errNotFound) Cause() error {\n\treturn e.error\n}\n\nfunc (e errNotFound) Unwrap() error {\n\treturn e.error\n}\n\n// NotFound creates an [ErrNotFound] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrNotFound],\nfunc NotFound(err error) error {\n\tif err == nil || cerrdefs.IsNotFound(err) {\n\t\treturn err\n\t}\n\treturn errNotFound{err}\n}\n\ntype errInvalidParameter struct{ error }\n\nfunc (errInvalidParameter) InvalidParameter() {}\n\nfunc (e errInvalidParameter) Cause() error {\n\treturn e.error\n}\n\nfunc (e errInvalidParameter) Unwrap() error {\n\treturn e.error\n}\n\n// InvalidParameter creates an [ErrInvalidParameter] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrInvalidParameter],\nfunc InvalidParameter(err error) error {\n\tif err == nil || cerrdefs.IsInvalidArgument(err) {\n\t\treturn err\n\t}\n\treturn errInvalidParameter{err}\n}\n\ntype errConflict struct{ error }\n\nfunc (errConflict) Conflict() {}\n\nfunc (e errConflict) Cause() error {\n\treturn e.error\n}\n\nfunc (e errConflict) Unwrap() error {\n\treturn e.error\n}\n\n// Conflict creates an [ErrConflict] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrConflict],\nfunc Conflict(err error) error {\n\tif err == nil || cerrdefs.IsConflict(err) {\n\t\treturn err\n\t}\n\treturn errConflict{err}\n}\n\ntype errUnauthorized struct{ error }\n\nfunc (errUnauthorized) Unauthorized() {}\n\nfunc (e errUnauthorized) Cause() error {\n\treturn e.error\n}\n\nfunc (e errUnauthorized) Unwrap() error {\n\treturn e.error\n}\n\n// Unauthorized creates an [ErrUnauthorized] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrUnauthorized],\nfunc Unauthorized(err error) error {\n\tif err == nil || cerrdefs.IsUnauthorized(err) {\n\t\treturn err\n\t}\n\treturn errUnauthorized{err}\n}\n\ntype errUnavailable struct{ error }\n\nfunc (errUnavailable) Unavailable() {}\n\nfunc (e errUnavailable) Cause() error {\n\treturn e.error\n}\n\nfunc (e errUnavailable) Unwrap() error {\n\treturn e.error\n}\n\n// Unavailable creates an [ErrUnavailable] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrUnavailable],\nfunc Unavailable(err error) error {\n\tif err == nil || cerrdefs.IsUnavailable(err) {\n\t\treturn err\n\t}\n\treturn errUnavailable{err}\n}\n\ntype errForbidden struct{ error }\n\nfunc (errForbidden) Forbidden() {}\n\nfunc (e errForbidden) Cause() error {\n\treturn e.error\n}\n\nfunc (e errForbidden) Unwrap() error {\n\treturn e.error\n}\n\n// Forbidden creates an [ErrForbidden] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrForbidden],\nfunc Forbidden(err error) error {\n\tif err == nil || cerrdefs.IsPermissionDenied(err) {\n\t\treturn err\n\t}\n\treturn errForbidden{err}\n}\n\ntype errSystem struct{ error }\n\nfunc (errSystem) System() {}\n\nfunc (e errSystem) Cause() error {\n\treturn e.error\n}\n\nfunc (e errSystem) Unwrap() error {\n\treturn e.error\n}\n\n// System creates an [ErrSystem] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrSystem],\nfunc System(err error) error {\n\tif err == nil || cerrdefs.IsInternal(err) {\n\t\treturn err\n\t}\n\treturn errSystem{err}\n}\n\ntype errNotModified struct{ error }\n\nfunc (errNotModified) NotModified() {}\n\nfunc (e errNotModified) Cause() error {\n\treturn e.error\n}\n\nfunc (e errNotModified) Unwrap() error {\n\treturn e.error\n}\n\n// NotModified creates an [ErrNotModified] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [NotModified],\nfunc NotModified(err error) error {\n\tif err == nil || cerrdefs.IsNotModified(err) {\n\t\treturn err\n\t}\n\treturn errNotModified{err}\n}\n\ntype errNotImplemented struct{ error }\n\nfunc (errNotImplemented) NotImplemented() {}\n\nfunc (e errNotImplemented) Cause() error {\n\treturn e.error\n}\n\nfunc (e errNotImplemented) Unwrap() error {\n\treturn e.error\n}\n\n// NotImplemented creates an [ErrNotImplemented] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrNotImplemented],\nfunc NotImplemented(err error) error {\n\tif err == nil || cerrdefs.IsNotImplemented(err) {\n\t\treturn err\n\t}\n\treturn errNotImplemented{err}\n}\n\ntype errUnknown struct{ error }\n\nfunc (errUnknown) Unknown() {}\n\nfunc (e errUnknown) Cause() error {\n\treturn e.error\n}\n\nfunc (e errUnknown) Unwrap() error {\n\treturn e.error\n}\n\n// Unknown creates an [ErrUnknown] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrUnknown],\nfunc Unknown(err error) error {\n\tif err == nil || cerrdefs.IsUnknown(err) {\n\t\treturn err\n\t}\n\treturn errUnknown{err}\n}\n\ntype errCancelled struct{ error }\n\nfunc (errCancelled) Cancelled() {}\n\nfunc (e errCancelled) Cause() error {\n\treturn e.error\n}\n\nfunc (e errCancelled) Unwrap() error {\n\treturn e.error\n}\n\n// Cancelled creates an [ErrCancelled] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrCancelled],\nfunc Cancelled(err error) error {\n\tif err == nil || cerrdefs.IsCanceled(err) {\n\t\treturn err\n\t}\n\treturn errCancelled{err}\n}\n\ntype errDeadline struct{ error }\n\nfunc (errDeadline) DeadlineExceeded() {}\n\nfunc (e errDeadline) Cause() error {\n\treturn e.error\n}\n\nfunc (e errDeadline) Unwrap() error {\n\treturn e.error\n}\n\n// Deadline creates an [ErrDeadline] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrDeadline],\nfunc Deadline(err error) error {\n\tif err == nil || cerrdefs.IsDeadlineExceeded(err) {\n\t\treturn err\n\t}\n\treturn errDeadline{err}\n}\n\ntype errDataLoss struct{ error }\n\nfunc (errDataLoss) DataLoss() {}\n\nfunc (e errDataLoss) Cause() error {\n\treturn e.error\n}\n\nfunc (e errDataLoss) Unwrap() error {\n\treturn e.error\n}\n\n// DataLoss creates an [ErrDataLoss] error from the given error.\n// It returns the error as-is if it is either nil (no error) or already implements\n// [ErrDataLoss],\nfunc DataLoss(err error) error {\n\tif err == nil || cerrdefs.IsDataLoss(err) {\n\t\treturn err\n\t}\n\treturn errDataLoss{err}\n}\n\n// FromContext returns the error class from the passed in context\nfunc FromContext(ctx context.Context) error {\n\te := ctx.Err()\n\tif e == nil {\n\t\treturn nil\n\t}\n\n\tif e == context.Canceled {\n\t\treturn Cancelled(e)\n\t}\n\tif e == context.DeadlineExceeded {\n\t\treturn Deadline(e)\n\t}\n\treturn Unknown(e)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/errdefs/http_helpers.go",
    "content": "package errdefs\n\nimport (\n\t\"net/http\"\n)\n\n// FromStatusCode creates an errdef error, based on the provided HTTP status-code\n//\n// Deprecated: Use [cerrdefs.ToNative] instead\nfunc FromStatusCode(err error, statusCode int) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\tswitch statusCode {\n\tcase http.StatusNotFound:\n\t\treturn NotFound(err)\n\tcase http.StatusBadRequest:\n\t\treturn InvalidParameter(err)\n\tcase http.StatusConflict:\n\t\treturn Conflict(err)\n\tcase http.StatusUnauthorized:\n\t\treturn Unauthorized(err)\n\tcase http.StatusServiceUnavailable:\n\t\treturn Unavailable(err)\n\tcase http.StatusForbidden:\n\t\treturn Forbidden(err)\n\tcase http.StatusNotModified:\n\t\treturn NotModified(err)\n\tcase http.StatusNotImplemented:\n\t\treturn NotImplemented(err)\n\tcase http.StatusInternalServerError:\n\t\tif IsCancelled(err) || IsSystem(err) || IsUnknown(err) || IsDataLoss(err) || IsDeadline(err) {\n\t\t\treturn err\n\t\t}\n\t\treturn System(err)\n\tdefault:\n\t\tswitch {\n\t\tcase statusCode >= http.StatusOK && statusCode < http.StatusBadRequest:\n\t\t\t// it's a client error\n\t\t\treturn err\n\t\tcase statusCode >= http.StatusBadRequest && statusCode < http.StatusInternalServerError:\n\t\t\treturn InvalidParameter(err)\n\t\tcase statusCode >= http.StatusInternalServerError && statusCode < 600:\n\t\t\treturn System(err)\n\t\tdefault:\n\t\t\treturn Unknown(err)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/errdefs/is.go",
    "content": "package errdefs\n\nimport (\n\t\"context\"\n\t\"errors\"\n\n\tcerrdefs \"github.com/containerd/errdefs\"\n)\n\n// IsNotFound returns if the passed in error is an [ErrNotFound],\n//\n// Deprecated: use containerd [cerrdefs.IsNotFound]\nvar IsNotFound = cerrdefs.IsNotFound\n\n// IsInvalidParameter returns if the passed in error is an [ErrInvalidParameter].\n//\n// Deprecated: use containerd [cerrdefs.IsInvalidArgument]\nvar IsInvalidParameter = cerrdefs.IsInvalidArgument\n\n// IsConflict returns if the passed in error is an [ErrConflict].\n//\n// Deprecated: use containerd [cerrdefs.IsConflict]\nvar IsConflict = cerrdefs.IsConflict\n\n// IsUnauthorized returns if the passed in error is an [ErrUnauthorized].\n//\n// Deprecated: use containerd [cerrdefs.IsUnauthorized]\nvar IsUnauthorized = cerrdefs.IsUnauthorized\n\n// IsUnavailable returns if the passed in error is an [ErrUnavailable].\n//\n// Deprecated: use containerd [cerrdefs.IsUnavailable]\nvar IsUnavailable = cerrdefs.IsUnavailable\n\n// IsForbidden returns if the passed in error is an [ErrForbidden].\n//\n// Deprecated: use containerd [cerrdefs.IsPermissionDenied]\nvar IsForbidden = cerrdefs.IsPermissionDenied\n\n// IsSystem returns if the passed in error is an [ErrSystem].\n//\n// Deprecated: use containerd [cerrdefs.IsInternal]\nvar IsSystem = cerrdefs.IsInternal\n\n// IsNotModified returns if the passed in error is an [ErrNotModified].\n//\n// Deprecated: use containerd [cerrdefs.IsNotModified]\nvar IsNotModified = cerrdefs.IsNotModified\n\n// IsNotImplemented returns if the passed in error is an [ErrNotImplemented].\n//\n// Deprecated: use containerd [cerrdefs.IsNotImplemented]\nvar IsNotImplemented = cerrdefs.IsNotImplemented\n\n// IsUnknown returns if the passed in error is an [ErrUnknown].\n//\n// Deprecated: use containerd [cerrdefs.IsUnknown]\nvar IsUnknown = cerrdefs.IsUnknown\n\n// IsCancelled returns if the passed in error is an [ErrCancelled].\n//\n// Deprecated: use containerd [cerrdefs.IsCanceled]\nvar IsCancelled = cerrdefs.IsCanceled\n\n// IsDeadline returns if the passed in error is an [ErrDeadline].\n//\n// Deprecated: use containerd [cerrdefs.IsDeadlineExceeded]\nvar IsDeadline = cerrdefs.IsDeadlineExceeded\n\n// IsDataLoss returns if the passed in error is an [ErrDataLoss].\n//\n// Deprecated: use containerd [cerrdefs.IsDataLoss]\nvar IsDataLoss = cerrdefs.IsDataLoss\n\n// IsContext returns if the passed in error is due to context cancellation or deadline exceeded.\nfunc IsContext(err error) bool {\n\treturn errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/pkg/ioutils/fswriters_deprecated.go",
    "content": "package ioutils\n\nimport (\n\t\"io\"\n\t\"os\"\n\n\t\"github.com/moby/sys/atomicwriter\"\n)\n\n// NewAtomicFileWriter returns WriteCloser so that writing to it writes to a\n// temporary file and closing it atomically changes the temporary file to\n// destination path. Writing and closing concurrently is not allowed.\n// NOTE: umask is not considered for the file's permissions.\n//\n// Deprecated: use [atomicwriter.New] instead.\nfunc NewAtomicFileWriter(filename string, perm os.FileMode) (io.WriteCloser, error) {\n\treturn atomicwriter.New(filename, perm)\n}\n\n// AtomicWriteFile atomically writes data to a file named by filename and with the specified permission bits.\n// NOTE: umask is not considered for the file's permissions.\n//\n// Deprecated: use [atomicwriter.WriteFile] instead.\nfunc AtomicWriteFile(filename string, data []byte, perm os.FileMode) error {\n\treturn atomicwriter.WriteFile(filename, data, perm)\n}\n\n// AtomicWriteSet is used to atomically write a set\n// of files and ensure they are visible at the same time.\n// Must be committed to a new directory.\n//\n// Deprecated: use [atomicwriter.WriteSet] instead.\ntype AtomicWriteSet = atomicwriter.WriteSet\n\n// NewAtomicWriteSet creates a new atomic write set to\n// atomically create a set of files. The given directory\n// is used as the base directory for storing files before\n// commit. If no temporary directory is given the system\n// default is used.\n//\n// Deprecated: use [atomicwriter.NewWriteSet] instead.\nfunc NewAtomicWriteSet(tmpDir string) (*atomicwriter.WriteSet, error) {\n\treturn atomicwriter.NewWriteSet(tmpDir)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/pkg/ioutils/readers.go",
    "content": "package ioutils\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"runtime/debug\"\n\t\"sync/atomic\"\n\n\t\"github.com/containerd/log\"\n)\n\n// readCloserWrapper wraps an io.Reader, and implements an io.ReadCloser\n// It calls the given callback function when closed. It should be constructed\n// with NewReadCloserWrapper\ntype readCloserWrapper struct {\n\tio.Reader\n\tcloser func() error\n\tclosed atomic.Bool\n}\n\n// Close calls back the passed closer function\nfunc (r *readCloserWrapper) Close() error {\n\tif !r.closed.CompareAndSwap(false, true) {\n\t\tsubsequentCloseWarn(\"ReadCloserWrapper\")\n\t\treturn nil\n\t}\n\treturn r.closer()\n}\n\n// NewReadCloserWrapper wraps an io.Reader, and implements an io.ReadCloser.\n// It calls the given callback function when closed.\nfunc NewReadCloserWrapper(r io.Reader, closer func() error) io.ReadCloser {\n\treturn &readCloserWrapper{\n\t\tReader: r,\n\t\tcloser: closer,\n\t}\n}\n\n// cancelReadCloser wraps an io.ReadCloser with a context for cancelling read\n// operations.\ntype cancelReadCloser struct {\n\tcancel func()\n\tpR     *io.PipeReader // Stream to read from\n\tpW     *io.PipeWriter\n\tclosed atomic.Bool\n}\n\n// NewCancelReadCloser creates a wrapper that closes the ReadCloser when the\n// context is cancelled. The returned io.ReadCloser must be closed when it is\n// no longer needed.\nfunc NewCancelReadCloser(ctx context.Context, in io.ReadCloser) io.ReadCloser {\n\tpR, pW := io.Pipe()\n\n\t// Create a context used to signal when the pipe is closed\n\tdoneCtx, cancel := context.WithCancel(context.Background())\n\n\tp := &cancelReadCloser{\n\t\tcancel: cancel,\n\t\tpR:     pR,\n\t\tpW:     pW,\n\t}\n\n\tgo func() {\n\t\t_, err := io.Copy(pW, in)\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\t// If the context was closed, p.closeWithError\n\t\t\t// was already called. Calling it again would\n\t\t\t// change the error that Read returns.\n\t\tdefault:\n\t\t\tp.closeWithError(err)\n\t\t}\n\t\tin.Close()\n\t}()\n\tgo func() {\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\tp.closeWithError(ctx.Err())\n\t\t\tcase <-doneCtx.Done():\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n\n\treturn p\n}\n\n// Read wraps the Read method of the pipe that provides data from the wrapped\n// ReadCloser.\nfunc (p *cancelReadCloser) Read(buf []byte) (int, error) {\n\treturn p.pR.Read(buf)\n}\n\n// closeWithError closes the wrapper and its underlying reader. It will\n// cause future calls to Read to return err.\nfunc (p *cancelReadCloser) closeWithError(err error) {\n\t_ = p.pW.CloseWithError(err)\n\tp.cancel()\n}\n\n// Close closes the wrapper its underlying reader. It will cause\n// future calls to Read to return io.EOF.\nfunc (p *cancelReadCloser) Close() error {\n\tif !p.closed.CompareAndSwap(false, true) {\n\t\tsubsequentCloseWarn(\"cancelReadCloser\")\n\t\treturn nil\n\t}\n\tp.closeWithError(io.EOF)\n\treturn nil\n}\n\nfunc subsequentCloseWarn(name string) {\n\tlog.G(context.TODO()).Error(\"subsequent attempt to close \" + name)\n\tif log.GetLevel() >= log.DebugLevel {\n\t\tlog.G(context.TODO()).Errorf(\"stack trace: %s\", string(debug.Stack()))\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go",
    "content": "package ioutils\n\nimport (\n\t\"io\"\n\t\"sync\"\n)\n\n// WriteFlusher wraps the Write and Flush operation ensuring that every write\n// is a flush. In addition, the Close method can be called to intercept\n// Read/Write calls if the targets lifecycle has already ended.\ntype WriteFlusher struct {\n\tw           io.Writer\n\tflusher     flusher\n\tflushed     chan struct{}\n\tflushedOnce sync.Once\n\tclosed      chan struct{}\n\tcloseLock   sync.Mutex\n}\n\ntype flusher interface {\n\tFlush()\n}\n\nfunc (wf *WriteFlusher) Write(b []byte) (int, error) {\n\tselect {\n\tcase <-wf.closed:\n\t\treturn 0, io.EOF\n\tdefault:\n\t}\n\n\tn, err := wf.w.Write(b)\n\twf.Flush() // every write is a flush.\n\treturn n, err\n}\n\n// Flush the stream immediately.\nfunc (wf *WriteFlusher) Flush() {\n\tselect {\n\tcase <-wf.closed:\n\t\treturn\n\tdefault:\n\t}\n\n\twf.flushedOnce.Do(func() {\n\t\tclose(wf.flushed)\n\t})\n\twf.flusher.Flush()\n}\n\n// Flushed returns the state of flushed.\n// If it's flushed, return true, or else it return false.\nfunc (wf *WriteFlusher) Flushed() bool {\n\t// BUG(stevvooe): Remove this method. Its use is inherently racy. Seems to\n\t// be used to detect whether or a response code has been issued or not.\n\t// Another hook should be used instead.\n\tvar flushed bool\n\tselect {\n\tcase <-wf.flushed:\n\t\tflushed = true\n\tdefault:\n\t}\n\treturn flushed\n}\n\n// Close closes the write flusher, disallowing any further writes to the\n// target. After the flusher is closed, all calls to write or flush will\n// result in an error.\nfunc (wf *WriteFlusher) Close() error {\n\twf.closeLock.Lock()\n\tdefer wf.closeLock.Unlock()\n\n\tselect {\n\tcase <-wf.closed:\n\t\treturn io.EOF\n\tdefault:\n\t\tclose(wf.closed)\n\t}\n\treturn nil\n}\n\n// nopFlusher represents a type which flush operation is nop.\ntype nopFlusher struct{}\n\n// Flush is a nop operation.\nfunc (f *nopFlusher) Flush() {}\n\n// NewWriteFlusher returns a new WriteFlusher.\nfunc NewWriteFlusher(w io.Writer) *WriteFlusher {\n\tvar fl flusher\n\tif f, ok := w.(flusher); ok {\n\t\tfl = f\n\t} else {\n\t\tfl = &nopFlusher{}\n\t}\n\treturn &WriteFlusher{w: w, flusher: fl, closed: make(chan struct{}), flushed: make(chan struct{})}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/pkg/ioutils/writers.go",
    "content": "package ioutils\n\nimport (\n\t\"io\"\n\t\"sync/atomic\"\n)\n\ntype writeCloserWrapper struct {\n\tio.Writer\n\tcloser func() error\n\tclosed atomic.Bool\n}\n\nfunc (r *writeCloserWrapper) Close() error {\n\tif !r.closed.CompareAndSwap(false, true) {\n\t\tsubsequentCloseWarn(\"WriteCloserWrapper\")\n\t\treturn nil\n\t}\n\treturn r.closer()\n}\n\n// NewWriteCloserWrapper returns a new io.WriteCloser.\nfunc NewWriteCloserWrapper(r io.Writer, closer func() error) io.WriteCloser {\n\treturn &writeCloserWrapper{\n\t\tWriter: r,\n\t\tcloser: closer,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker/pkg/stdcopy/stdcopy.go",
    "content": "package stdcopy\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"sync\"\n)\n\n// StdType is the type of standard stream\n// a writer can multiplex to.\ntype StdType byte\n\nconst (\n\t// Stdin represents standard input stream type.\n\tStdin StdType = iota\n\t// Stdout represents standard output stream type.\n\tStdout\n\t// Stderr represents standard error steam type.\n\tStderr\n\t// Systemerr represents errors originating from the system that make it\n\t// into the multiplexed stream.\n\tSystemerr\n\n\tstdWriterPrefixLen = 8\n\tstdWriterFdIndex   = 0\n\tstdWriterSizeIndex = 4\n\n\tstartingBufLen = 32*1024 + stdWriterPrefixLen + 1\n)\n\nvar bufPool = &sync.Pool{New: func() interface{} { return bytes.NewBuffer(nil) }}\n\n// stdWriter is wrapper of io.Writer with extra customized info.\ntype stdWriter struct {\n\tio.Writer\n\tprefix byte\n}\n\n// Write sends the buffer to the underneath writer.\n// It inserts the prefix header before the buffer,\n// so stdcopy.StdCopy knows where to multiplex the output.\n// It makes stdWriter to implement io.Writer.\nfunc (w *stdWriter) Write(p []byte) (int, error) {\n\tif w == nil || w.Writer == nil {\n\t\treturn 0, errors.New(\"writer not instantiated\")\n\t}\n\tif p == nil {\n\t\treturn 0, nil\n\t}\n\n\theader := [stdWriterPrefixLen]byte{stdWriterFdIndex: w.prefix}\n\tbinary.BigEndian.PutUint32(header[stdWriterSizeIndex:], uint32(len(p)))\n\tbuf := bufPool.Get().(*bytes.Buffer)\n\tbuf.Write(header[:])\n\tbuf.Write(p)\n\n\tn, err := w.Writer.Write(buf.Bytes())\n\tn -= stdWriterPrefixLen\n\tif n < 0 {\n\t\tn = 0\n\t}\n\n\tbuf.Reset()\n\tbufPool.Put(buf)\n\treturn n, err\n}\n\n// NewStdWriter instantiates a new Writer.\n// Everything written to it will be encapsulated using a custom format,\n// and written to the underlying `w` stream.\n// This allows multiple write streams (e.g. stdout and stderr) to be muxed into a single connection.\n// `t` indicates the id of the stream to encapsulate.\n// It can be stdcopy.Stdin, stdcopy.Stdout, stdcopy.Stderr.\nfunc NewStdWriter(w io.Writer, t StdType) io.Writer {\n\treturn &stdWriter{\n\t\tWriter: w,\n\t\tprefix: byte(t),\n\t}\n}\n\n// StdCopy is a modified version of io.Copy.\n//\n// StdCopy will demultiplex `src`, assuming that it contains two streams,\n// previously multiplexed together using a StdWriter instance.\n// As it reads from `src`, StdCopy will write to `dstout` and `dsterr`.\n//\n// StdCopy will read until it hits EOF on `src`. It will then return a nil error.\n// In other words: if `err` is non nil, it indicates a real underlying error.\n//\n// `written` will hold the total number of bytes written to `dstout` and `dsterr`.\nfunc StdCopy(dstout, dsterr io.Writer, src io.Reader) (written int64, _ error) {\n\tvar (\n\t\tbuf       = make([]byte, startingBufLen)\n\t\tbufLen    = len(buf)\n\t\tnr, nw    int\n\t\terr       error\n\t\tout       io.Writer\n\t\tframeSize int\n\t)\n\n\tfor {\n\t\t// Make sure we have at least a full header\n\t\tfor nr < stdWriterPrefixLen {\n\t\t\tvar nr2 int\n\t\t\tnr2, err = src.Read(buf[nr:])\n\t\t\tnr += nr2\n\t\t\tif errors.Is(err, io.EOF) {\n\t\t\t\tif nr < stdWriterPrefixLen {\n\t\t\t\t\treturn written, nil\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t}\n\n\t\tstream := StdType(buf[stdWriterFdIndex])\n\t\t// Check the first byte to know where to write\n\t\tswitch stream {\n\t\tcase Stdin:\n\t\t\tfallthrough\n\t\tcase Stdout:\n\t\t\t// Write on stdout\n\t\t\tout = dstout\n\t\tcase Stderr:\n\t\t\t// Write on stderr\n\t\t\tout = dsterr\n\t\tcase Systemerr:\n\t\t\t// If we're on Systemerr, we won't write anywhere.\n\t\t\t// NB: if this code changes later, make sure you don't try to write\n\t\t\t// to outstream if Systemerr is the stream\n\t\t\tout = nil\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"Unrecognized input header: %d\", buf[stdWriterFdIndex])\n\t\t}\n\n\t\t// Retrieve the size of the frame\n\t\tframeSize = int(binary.BigEndian.Uint32(buf[stdWriterSizeIndex : stdWriterSizeIndex+4]))\n\n\t\t// Check if the buffer is big enough to read the frame.\n\t\t// Extend it if necessary.\n\t\tif frameSize+stdWriterPrefixLen > bufLen {\n\t\t\tbuf = append(buf, make([]byte, frameSize+stdWriterPrefixLen-bufLen+1)...)\n\t\t\tbufLen = len(buf)\n\t\t}\n\n\t\t// While the amount of bytes read is less than the size of the frame + header, we keep reading\n\t\tfor nr < frameSize+stdWriterPrefixLen {\n\t\t\tvar nr2 int\n\t\t\tnr2, err = src.Read(buf[nr:])\n\t\t\tnr += nr2\n\t\t\tif errors.Is(err, io.EOF) {\n\t\t\t\tif nr < frameSize+stdWriterPrefixLen {\n\t\t\t\t\treturn written, nil\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t}\n\n\t\t// we might have an error from the source mixed up in our multiplexed\n\t\t// stream. if we do, return it.\n\t\tif stream == Systemerr {\n\t\t\treturn written, fmt.Errorf(\"error from daemon in stream: %s\", string(buf[stdWriterPrefixLen:frameSize+stdWriterPrefixLen]))\n\t\t}\n\n\t\t// Write the retrieved frame (without header)\n\t\tnw, err = out.Write(buf[stdWriterPrefixLen : frameSize+stdWriterPrefixLen])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\n\t\t// If the frame has not been fully written: error\n\t\tif nw != frameSize {\n\t\t\treturn 0, io.ErrShortWrite\n\t\t}\n\t\twritten += int64(nw)\n\n\t\t// Move the rest of the buffer to the beginning\n\t\tcopy(buf, buf[frameSize+stdWriterPrefixLen:])\n\t\t// Move the index\n\t\tnr -= frameSize + stdWriterPrefixLen\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker-credential-helpers/LICENSE",
    "content": "Copyright (c) 2016 David Calavera\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/docker/docker-credential-helpers/client/client.go",
    "content": "package client\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/docker/docker-credential-helpers/credentials\"\n)\n\n// isValidCredsMessage checks if 'msg' contains invalid credentials error message.\n// It returns whether the logs are free of invalid credentials errors and the error if it isn't.\n// error values can be errCredentialsMissingServerURL or errCredentialsMissingUsername.\nfunc isValidCredsMessage(msg string) error {\n\tif credentials.IsCredentialsMissingServerURLMessage(msg) {\n\t\treturn credentials.NewErrCredentialsMissingServerURL()\n\t}\n\tif credentials.IsCredentialsMissingUsernameMessage(msg) {\n\t\treturn credentials.NewErrCredentialsMissingUsername()\n\t}\n\treturn nil\n}\n\n// Store uses an external program to save credentials.\nfunc Store(program ProgramFunc, creds *credentials.Credentials) error {\n\tcmd := program(credentials.ActionStore)\n\n\tbuffer := new(bytes.Buffer)\n\tif err := json.NewEncoder(buffer).Encode(creds); err != nil {\n\t\treturn err\n\t}\n\tcmd.Input(buffer)\n\n\tout, err := cmd.Output()\n\tif err != nil {\n\t\tif isValidErr := isValidCredsMessage(string(out)); isValidErr != nil {\n\t\t\terr = isValidErr\n\t\t}\n\t\treturn fmt.Errorf(\"error storing credentials - err: %v, out: `%s`\", err, strings.TrimSpace(string(out)))\n\t}\n\n\treturn nil\n}\n\n// Get executes an external program to get the credentials from a native store.\nfunc Get(program ProgramFunc, serverURL string) (*credentials.Credentials, error) {\n\tcmd := program(credentials.ActionGet)\n\tcmd.Input(strings.NewReader(serverURL))\n\n\tout, err := cmd.Output()\n\tif err != nil {\n\t\tif credentials.IsErrCredentialsNotFoundMessage(string(out)) {\n\t\t\treturn nil, credentials.NewErrCredentialsNotFound()\n\t\t}\n\n\t\tif isValidErr := isValidCredsMessage(string(out)); isValidErr != nil {\n\t\t\terr = isValidErr\n\t\t}\n\n\t\treturn nil, fmt.Errorf(\"error getting credentials - err: %v, out: `%s`\", err, strings.TrimSpace(string(out)))\n\t}\n\n\tresp := &credentials.Credentials{\n\t\tServerURL: serverURL,\n\t}\n\n\tif err := json.NewDecoder(bytes.NewReader(out)).Decode(resp); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn resp, nil\n}\n\n// Erase executes a program to remove the server credentials from the native store.\nfunc Erase(program ProgramFunc, serverURL string) error {\n\tcmd := program(credentials.ActionErase)\n\tcmd.Input(strings.NewReader(serverURL))\n\tout, err := cmd.Output()\n\tif err != nil {\n\t\tt := strings.TrimSpace(string(out))\n\n\t\tif isValidErr := isValidCredsMessage(t); isValidErr != nil {\n\t\t\terr = isValidErr\n\t\t}\n\n\t\treturn fmt.Errorf(\"error erasing credentials - err: %v, out: `%s`\", err, t)\n\t}\n\n\treturn nil\n}\n\n// List executes a program to list server credentials in the native store.\nfunc List(program ProgramFunc) (map[string]string, error) {\n\tcmd := program(credentials.ActionList)\n\tcmd.Input(strings.NewReader(\"unused\"))\n\tout, err := cmd.Output()\n\tif err != nil {\n\t\tt := strings.TrimSpace(string(out))\n\n\t\tif isValidErr := isValidCredsMessage(t); isValidErr != nil {\n\t\t\terr = isValidErr\n\t\t}\n\n\t\treturn nil, fmt.Errorf(\"error listing credentials - err: %v, out: `%s`\", err, t)\n\t}\n\n\tvar resp map[string]string\n\tif err = json.NewDecoder(bytes.NewReader(out)).Decode(&resp); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn resp, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker-credential-helpers/client/command.go",
    "content": "package client\n\nimport (\n\t\"io\"\n\t\"os\"\n\t\"os/exec\"\n)\n\n// Program is an interface to execute external programs.\ntype Program interface {\n\tOutput() ([]byte, error)\n\tInput(in io.Reader)\n}\n\n// ProgramFunc is a type of function that initializes programs based on arguments.\ntype ProgramFunc func(args ...string) Program\n\n// NewShellProgramFunc creates programs that are executed in a Shell.\nfunc NewShellProgramFunc(name string) ProgramFunc {\n\treturn NewShellProgramFuncWithEnv(name, nil)\n}\n\n// NewShellProgramFuncWithEnv creates programs that are executed in a Shell with environment variables\nfunc NewShellProgramFuncWithEnv(name string, env *map[string]string) ProgramFunc {\n\treturn func(args ...string) Program {\n\t\treturn &Shell{cmd: createProgramCmdRedirectErr(name, args, env)}\n\t}\n}\n\nfunc createProgramCmdRedirectErr(commandName string, args []string, env *map[string]string) *exec.Cmd {\n\tprogramCmd := exec.Command(commandName, args...)\n\tif env != nil {\n\t\tfor k, v := range *env {\n\t\t\tprogramCmd.Env = append(programCmd.Environ(), k+\"=\"+v)\n\t\t}\n\t}\n\tprogramCmd.Stderr = os.Stderr\n\treturn programCmd\n}\n\n// Shell invokes shell commands to talk with a remote credentials-helper.\ntype Shell struct {\n\tcmd *exec.Cmd\n}\n\n// Output returns responses from the remote credentials-helper.\nfunc (s *Shell) Output() ([]byte, error) {\n\treturn s.cmd.Output()\n}\n\n// Input sets the input to send to a remote credentials-helper.\nfunc (s *Shell) Input(in io.Reader) {\n\ts.cmd.Stdin = in\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker-credential-helpers/credentials/credentials.go",
    "content": "package credentials\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n)\n\n// Action defines the name of an action (sub-command) supported by a\n// credential-helper binary. It is an alias for \"string\", and mostly\n// for convenience.\ntype Action = string\n\n// List of actions (sub-commands) supported by credential-helper binaries.\nconst (\n\tActionStore   Action = \"store\"\n\tActionGet     Action = \"get\"\n\tActionErase   Action = \"erase\"\n\tActionList    Action = \"list\"\n\tActionVersion Action = \"version\"\n)\n\n// Credentials holds the information shared between docker and the credentials store.\ntype Credentials struct {\n\tServerURL string\n\tUsername  string\n\tSecret    string\n}\n\n// isValid checks the integrity of Credentials object such that no credentials lack\n// a server URL or a username.\n// It returns whether the credentials are valid and the error if it isn't.\n// error values can be errCredentialsMissingServerURL or errCredentialsMissingUsername\nfunc (c *Credentials) isValid() (bool, error) {\n\tif len(c.ServerURL) == 0 {\n\t\treturn false, NewErrCredentialsMissingServerURL()\n\t}\n\n\tif len(c.Username) == 0 {\n\t\treturn false, NewErrCredentialsMissingUsername()\n\t}\n\n\treturn true, nil\n}\n\n// CredsLabel holds the way Docker credentials should be labeled as such in credentials stores that allow labelling.\n// That label allows to filter out non-Docker credentials too at lookup/search in macOS keychain,\n// Windows credentials manager and Linux libsecret. Default value is \"Docker Credentials\"\nvar CredsLabel = \"Docker Credentials\"\n\n// SetCredsLabel is a simple setter for CredsLabel\nfunc SetCredsLabel(label string) {\n\tCredsLabel = label\n}\n\n// Serve initializes the credentials-helper and parses the action argument.\n// This function is designed to be called from a command line interface.\n// It uses os.Args[1] as the key for the action.\n// It uses os.Stdin as input and os.Stdout as output.\n// This function terminates the program with os.Exit(1) if there is an error.\nfunc Serve(helper Helper) {\n\tif len(os.Args) != 2 {\n\t\t_, _ = fmt.Fprintln(os.Stdout, usage())\n\t\tos.Exit(1)\n\t}\n\n\tswitch os.Args[1] {\n\tcase \"--version\", \"-v\":\n\t\t_ = PrintVersion(os.Stdout)\n\t\tos.Exit(0)\n\tcase \"--help\", \"-h\":\n\t\t_, _ = fmt.Fprintln(os.Stdout, usage())\n\t\tos.Exit(0)\n\t}\n\n\tif err := HandleCommand(helper, os.Args[1], os.Stdin, os.Stdout); err != nil {\n\t\t_, _ = fmt.Fprintln(os.Stdout, err)\n\t\tos.Exit(1)\n\t}\n}\n\nfunc usage() string {\n\treturn fmt.Sprintf(\"Usage: %s <store|get|erase|list|version>\", Name)\n}\n\n// HandleCommand runs a helper to execute a credential action.\nfunc HandleCommand(helper Helper, action Action, in io.Reader, out io.Writer) error {\n\tswitch action {\n\tcase ActionStore:\n\t\treturn Store(helper, in)\n\tcase ActionGet:\n\t\treturn Get(helper, in, out)\n\tcase ActionErase:\n\t\treturn Erase(helper, in)\n\tcase ActionList:\n\t\treturn List(helper, out)\n\tcase ActionVersion:\n\t\treturn PrintVersion(out)\n\tdefault:\n\t\treturn fmt.Errorf(\"%s: unknown action: %s\", Name, action)\n\t}\n}\n\n// Store uses a helper and an input reader to save credentials.\n// The reader must contain the JSON serialization of a Credentials struct.\nfunc Store(helper Helper, reader io.Reader) error {\n\tscanner := bufio.NewScanner(reader)\n\n\tbuffer := new(bytes.Buffer)\n\tfor scanner.Scan() {\n\t\tbuffer.Write(scanner.Bytes())\n\t}\n\n\tif err := scanner.Err(); err != nil && err != io.EOF {\n\t\treturn err\n\t}\n\n\tvar creds Credentials\n\tif err := json.NewDecoder(buffer).Decode(&creds); err != nil {\n\t\treturn err\n\t}\n\n\tif ok, err := creds.isValid(); !ok {\n\t\treturn err\n\t}\n\n\treturn helper.Add(&creds)\n}\n\n// Get retrieves the credentials for a given server url.\n// The reader must contain the server URL to search.\n// The writer is used to write the JSON serialization of the credentials.\nfunc Get(helper Helper, reader io.Reader, writer io.Writer) error {\n\tscanner := bufio.NewScanner(reader)\n\n\tbuffer := new(bytes.Buffer)\n\tfor scanner.Scan() {\n\t\tbuffer.Write(scanner.Bytes())\n\t}\n\n\tif err := scanner.Err(); err != nil && err != io.EOF {\n\t\treturn err\n\t}\n\n\tserverURL := strings.TrimSpace(buffer.String())\n\tif len(serverURL) == 0 {\n\t\treturn NewErrCredentialsMissingServerURL()\n\t}\n\n\tusername, secret, err := helper.Get(serverURL)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tbuffer.Reset()\n\terr = json.NewEncoder(buffer).Encode(Credentials{\n\t\tServerURL: serverURL,\n\t\tUsername:  username,\n\t\tSecret:    secret,\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t_, _ = fmt.Fprint(writer, buffer.String())\n\treturn nil\n}\n\n// Erase removes credentials from the store.\n// The reader must contain the server URL to remove.\nfunc Erase(helper Helper, reader io.Reader) error {\n\tscanner := bufio.NewScanner(reader)\n\n\tbuffer := new(bytes.Buffer)\n\tfor scanner.Scan() {\n\t\tbuffer.Write(scanner.Bytes())\n\t}\n\n\tif err := scanner.Err(); err != nil && err != io.EOF {\n\t\treturn err\n\t}\n\n\tserverURL := strings.TrimSpace(buffer.String())\n\tif len(serverURL) == 0 {\n\t\treturn NewErrCredentialsMissingServerURL()\n\t}\n\n\treturn helper.Delete(serverURL)\n}\n\n// List returns all the serverURLs of keys in\n// the OS store as a list of strings\nfunc List(helper Helper, writer io.Writer) error {\n\taccts, err := helper.List()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn json.NewEncoder(writer).Encode(accts)\n}\n\n// PrintVersion outputs the current version.\nfunc PrintVersion(writer io.Writer) error {\n\t_, _ = fmt.Fprintf(writer, \"%s (%s) %s\\n\", Name, Package, Version)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker-credential-helpers/credentials/error.go",
    "content": "package credentials\n\nimport (\n\t\"errors\"\n\t\"strings\"\n)\n\nconst (\n\t// ErrCredentialsNotFound standardizes the not found error, so every helper returns\n\t// the same message and docker can handle it properly.\n\terrCredentialsNotFoundMessage = \"credentials not found in native keychain\"\n\n\t// ErrCredentialsMissingServerURL and ErrCredentialsMissingUsername standardize\n\t// invalid credentials or credentials management operations\n\terrCredentialsMissingServerURLMessage = \"no credentials server URL\"\n\terrCredentialsMissingUsernameMessage  = \"no credentials username\"\n)\n\n// errCredentialsNotFound represents an error\n// raised when credentials are not in the store.\ntype errCredentialsNotFound struct{}\n\n// Error returns the standard error message\n// for when the credentials are not in the store.\nfunc (errCredentialsNotFound) Error() string {\n\treturn errCredentialsNotFoundMessage\n}\n\n// NotFound implements the [ErrNotFound][errdefs.ErrNotFound] interface.\n//\n// [errdefs.ErrNotFound]: https://pkg.go.dev/github.com/docker/docker@v24.0.1+incompatible/errdefs#ErrNotFound\nfunc (errCredentialsNotFound) NotFound() {}\n\n// NewErrCredentialsNotFound creates a new error\n// for when the credentials are not in the store.\nfunc NewErrCredentialsNotFound() error {\n\treturn errCredentialsNotFound{}\n}\n\n// IsErrCredentialsNotFound returns true if the error\n// was caused by not having a set of credentials in a store.\nfunc IsErrCredentialsNotFound(err error) bool {\n\tvar target errCredentialsNotFound\n\treturn errors.As(err, &target)\n}\n\n// IsErrCredentialsNotFoundMessage returns true if the error\n// was caused by not having a set of credentials in a store.\n//\n// This function helps to check messages returned by an\n// external program via its standard output.\nfunc IsErrCredentialsNotFoundMessage(err string) bool {\n\treturn strings.TrimSpace(err) == errCredentialsNotFoundMessage\n}\n\n// errCredentialsMissingServerURL represents an error raised\n// when the credentials object has no server URL or when no\n// server URL is provided to a credentials operation requiring\n// one.\ntype errCredentialsMissingServerURL struct{}\n\nfunc (errCredentialsMissingServerURL) Error() string {\n\treturn errCredentialsMissingServerURLMessage\n}\n\n// InvalidParameter implements the [ErrInvalidParameter][errdefs.ErrInvalidParameter]\n// interface.\n//\n// [errdefs.ErrInvalidParameter]: https://pkg.go.dev/github.com/docker/docker@v24.0.1+incompatible/errdefs#ErrInvalidParameter\nfunc (errCredentialsMissingServerURL) InvalidParameter() {}\n\n// errCredentialsMissingUsername represents an error raised\n// when the credentials object has no username or when no\n// username is provided to a credentials operation requiring\n// one.\ntype errCredentialsMissingUsername struct{}\n\nfunc (errCredentialsMissingUsername) Error() string {\n\treturn errCredentialsMissingUsernameMessage\n}\n\n// InvalidParameter implements the [ErrInvalidParameter][errdefs.ErrInvalidParameter]\n// interface.\n//\n// [errdefs.ErrInvalidParameter]: https://pkg.go.dev/github.com/docker/docker@v24.0.1+incompatible/errdefs#ErrInvalidParameter\nfunc (errCredentialsMissingUsername) InvalidParameter() {}\n\n// NewErrCredentialsMissingServerURL creates a new error for\n// errCredentialsMissingServerURL.\nfunc NewErrCredentialsMissingServerURL() error {\n\treturn errCredentialsMissingServerURL{}\n}\n\n// NewErrCredentialsMissingUsername creates a new error for\n// errCredentialsMissingUsername.\nfunc NewErrCredentialsMissingUsername() error {\n\treturn errCredentialsMissingUsername{}\n}\n\n// IsCredentialsMissingServerURL returns true if the error\n// was an errCredentialsMissingServerURL.\nfunc IsCredentialsMissingServerURL(err error) bool {\n\tvar target errCredentialsMissingServerURL\n\treturn errors.As(err, &target)\n}\n\n// IsCredentialsMissingServerURLMessage checks for an\n// errCredentialsMissingServerURL in the error message.\nfunc IsCredentialsMissingServerURLMessage(err string) bool {\n\treturn strings.TrimSpace(err) == errCredentialsMissingServerURLMessage\n}\n\n// IsCredentialsMissingUsername returns true if the error\n// was an errCredentialsMissingUsername.\nfunc IsCredentialsMissingUsername(err error) bool {\n\tvar target errCredentialsMissingUsername\n\treturn errors.As(err, &target)\n}\n\n// IsCredentialsMissingUsernameMessage checks for an\n// errCredentialsMissingUsername in the error message.\nfunc IsCredentialsMissingUsernameMessage(err string) bool {\n\treturn strings.TrimSpace(err) == errCredentialsMissingUsernameMessage\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker-credential-helpers/credentials/helper.go",
    "content": "package credentials\n\n// Helper is the interface a credentials store helper must implement.\ntype Helper interface {\n\t// Add appends credentials to the store.\n\tAdd(*Credentials) error\n\t// Delete removes credentials from the store.\n\tDelete(serverURL string) error\n\t// Get retrieves credentials from the store.\n\t// It returns username and secret as strings.\n\tGet(serverURL string) (string, string, error)\n\t// List returns the stored serverURLs and their associated usernames.\n\tList() (map[string]string, error)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/docker-credential-helpers/credentials/version.go",
    "content": "package credentials\n\nvar (\n\t// Name is filled at linking time\n\tName = \"\"\n\n\t// Package is filled at linking time\n\tPackage = \"github.com/docker/docker-credential-helpers\"\n\n\t// Version holds the complete version number. Filled in at linking time.\n\tVersion = \"v0.0.0+unknown\"\n\n\t// Revision is filled with the VCS (e.g. git) revision being used to build\n\t// the program at linking time.\n\tRevision = \"\"\n)\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        https://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   Copyright 2015 Docker, Inc.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       https://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/nat/nat.go",
    "content": "// Package nat is a convenience package for manipulation of strings describing network ports.\npackage nat\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// PortBinding represents a binding between a Host IP address and a Host Port\ntype PortBinding struct {\n\t// HostIP is the host IP Address\n\tHostIP string `json:\"HostIp\"`\n\t// HostPort is the host port number\n\tHostPort string\n}\n\n// PortMap is a collection of PortBinding indexed by Port\ntype PortMap map[Port][]PortBinding\n\n// PortSet is a collection of structs indexed by Port\ntype PortSet map[Port]struct{}\n\n// Port is a string containing port number and protocol in the format \"80/tcp\"\ntype Port string\n\n// NewPort creates a new instance of a Port given a protocol and port number or port range\nfunc NewPort(proto, port string) (Port, error) {\n\t// Check for parsing issues on \"port\" now so we can avoid having\n\t// to check it later on.\n\n\tportStartInt, portEndInt, err := ParsePortRangeToInt(port)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tif portStartInt == portEndInt {\n\t\treturn Port(fmt.Sprintf(\"%d/%s\", portStartInt, proto)), nil\n\t}\n\treturn Port(fmt.Sprintf(\"%d-%d/%s\", portStartInt, portEndInt, proto)), nil\n}\n\n// ParsePort parses the port number string and returns an int\nfunc ParsePort(rawPort string) (int, error) {\n\tif len(rawPort) == 0 {\n\t\treturn 0, nil\n\t}\n\tport, err := strconv.ParseUint(rawPort, 10, 16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn int(port), nil\n}\n\n// ParsePortRangeToInt parses the port range string and returns start/end ints\nfunc ParsePortRangeToInt(rawPort string) (int, int, error) {\n\tif len(rawPort) == 0 {\n\t\treturn 0, 0, nil\n\t}\n\tstart, end, err := ParsePortRange(rawPort)\n\tif err != nil {\n\t\treturn 0, 0, err\n\t}\n\treturn int(start), int(end), nil\n}\n\n// Proto returns the protocol of a Port\nfunc (p Port) Proto() string {\n\tproto, _ := SplitProtoPort(string(p))\n\treturn proto\n}\n\n// Port returns the port number of a Port\nfunc (p Port) Port() string {\n\t_, port := SplitProtoPort(string(p))\n\treturn port\n}\n\n// Int returns the port number of a Port as an int\nfunc (p Port) Int() int {\n\tportStr := p.Port()\n\t// We don't need to check for an error because we're going to\n\t// assume that any error would have been found, and reported, in NewPort()\n\tport, _ := ParsePort(portStr)\n\treturn port\n}\n\n// Range returns the start/end port numbers of a Port range as ints\nfunc (p Port) Range() (int, int, error) {\n\treturn ParsePortRangeToInt(p.Port())\n}\n\n// SplitProtoPort splits a port in the format of proto/port\nfunc SplitProtoPort(rawPort string) (string, string) {\n\tparts := strings.Split(rawPort, \"/\")\n\tl := len(parts)\n\tif len(rawPort) == 0 || l == 0 || len(parts[0]) == 0 {\n\t\treturn \"\", \"\"\n\t}\n\tif l == 1 {\n\t\treturn \"tcp\", rawPort\n\t}\n\tif len(parts[1]) == 0 {\n\t\treturn \"tcp\", parts[0]\n\t}\n\treturn parts[1], parts[0]\n}\n\nfunc validateProto(proto string) bool {\n\tfor _, availableProto := range []string{\"tcp\", \"udp\", \"sctp\"} {\n\t\tif availableProto == proto {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// ParsePortSpecs receives port specs in the format of ip:public:private/proto and parses\n// these in to the internal types\nfunc ParsePortSpecs(ports []string) (map[Port]struct{}, map[Port][]PortBinding, error) {\n\tvar (\n\t\texposedPorts = make(map[Port]struct{}, len(ports))\n\t\tbindings     = make(map[Port][]PortBinding)\n\t)\n\tfor _, rawPort := range ports {\n\t\tportMappings, err := ParsePortSpec(rawPort)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\n\t\tfor _, portMapping := range portMappings {\n\t\t\tport := portMapping.Port\n\t\t\tif _, exists := exposedPorts[port]; !exists {\n\t\t\t\texposedPorts[port] = struct{}{}\n\t\t\t}\n\t\t\tbslice, exists := bindings[port]\n\t\t\tif !exists {\n\t\t\t\tbslice = []PortBinding{}\n\t\t\t}\n\t\t\tbindings[port] = append(bslice, portMapping.Binding)\n\t\t}\n\t}\n\treturn exposedPorts, bindings, nil\n}\n\n// PortMapping is a data object mapping a Port to a PortBinding\ntype PortMapping struct {\n\tPort    Port\n\tBinding PortBinding\n}\n\nfunc splitParts(rawport string) (string, string, string) {\n\tparts := strings.Split(rawport, \":\")\n\tn := len(parts)\n\tcontainerPort := parts[n-1]\n\n\tswitch n {\n\tcase 1:\n\t\treturn \"\", \"\", containerPort\n\tcase 2:\n\t\treturn \"\", parts[0], containerPort\n\tcase 3:\n\t\treturn parts[0], parts[1], containerPort\n\tdefault:\n\t\treturn strings.Join(parts[:n-2], \":\"), parts[n-2], containerPort\n\t}\n}\n\n// ParsePortSpec parses a port specification string into a slice of PortMappings\nfunc ParsePortSpec(rawPort string) ([]PortMapping, error) {\n\tvar proto string\n\tip, hostPort, containerPort := splitParts(rawPort)\n\tproto, containerPort = SplitProtoPort(containerPort)\n\n\tif ip != \"\" && ip[0] == '[' {\n\t\t// Strip [] from IPV6 addresses\n\t\trawIP, _, err := net.SplitHostPort(ip + \":\")\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid IP address %v: %w\", ip, err)\n\t\t}\n\t\tip = rawIP\n\t}\n\tif ip != \"\" && net.ParseIP(ip) == nil {\n\t\treturn nil, fmt.Errorf(\"invalid IP address: %s\", ip)\n\t}\n\tif containerPort == \"\" {\n\t\treturn nil, fmt.Errorf(\"no port specified: %s<empty>\", rawPort)\n\t}\n\n\tstartPort, endPort, err := ParsePortRange(containerPort)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"invalid containerPort: %s\", containerPort)\n\t}\n\n\tvar startHostPort, endHostPort uint64 = 0, 0\n\tif len(hostPort) > 0 {\n\t\tstartHostPort, endHostPort, err = ParsePortRange(hostPort)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid hostPort: %s\", hostPort)\n\t\t}\n\t}\n\n\tif hostPort != \"\" && (endPort-startPort) != (endHostPort-startHostPort) {\n\t\t// Allow host port range iff containerPort is not a range.\n\t\t// In this case, use the host port range as the dynamic\n\t\t// host port range to allocate into.\n\t\tif endPort != startPort {\n\t\t\treturn nil, fmt.Errorf(\"invalid ranges specified for container and host Ports: %s and %s\", containerPort, hostPort)\n\t\t}\n\t}\n\n\tif !validateProto(strings.ToLower(proto)) {\n\t\treturn nil, fmt.Errorf(\"invalid proto: %s\", proto)\n\t}\n\n\tports := []PortMapping{}\n\tfor i := uint64(0); i <= (endPort - startPort); i++ {\n\t\tcontainerPort = strconv.FormatUint(startPort+i, 10)\n\t\tif len(hostPort) > 0 {\n\t\t\thostPort = strconv.FormatUint(startHostPort+i, 10)\n\t\t}\n\t\t// Set hostPort to a range only if there is a single container port\n\t\t// and a dynamic host port.\n\t\tif startPort == endPort && startHostPort != endHostPort {\n\t\t\thostPort = fmt.Sprintf(\"%s-%s\", hostPort, strconv.FormatUint(endHostPort, 10))\n\t\t}\n\t\tport, err := NewPort(strings.ToLower(proto), containerPort)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tbinding := PortBinding{\n\t\t\tHostIP:   ip,\n\t\t\tHostPort: hostPort,\n\t\t}\n\t\tports = append(ports, PortMapping{Port: port, Binding: binding})\n\t}\n\treturn ports, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/nat/parse.go",
    "content": "package nat\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// ParsePortRange parses and validates the specified string as a port-range (8000-9000)\nfunc ParsePortRange(ports string) (uint64, uint64, error) {\n\tif ports == \"\" {\n\t\treturn 0, 0, fmt.Errorf(\"empty string specified for ports\")\n\t}\n\tif !strings.Contains(ports, \"-\") {\n\t\tstart, err := strconv.ParseUint(ports, 10, 16)\n\t\tend := start\n\t\treturn start, end, err\n\t}\n\n\tparts := strings.Split(ports, \"-\")\n\tstart, err := strconv.ParseUint(parts[0], 10, 16)\n\tif err != nil {\n\t\treturn 0, 0, err\n\t}\n\tend, err := strconv.ParseUint(parts[1], 10, 16)\n\tif err != nil {\n\t\treturn 0, 0, err\n\t}\n\tif end < start {\n\t\treturn 0, 0, fmt.Errorf(\"invalid range specified for port: %s\", ports)\n\t}\n\treturn start, end, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/nat/sort.go",
    "content": "package nat\n\nimport (\n\t\"sort\"\n\t\"strings\"\n)\n\ntype portSorter struct {\n\tports []Port\n\tby    func(i, j Port) bool\n}\n\nfunc (s *portSorter) Len() int {\n\treturn len(s.ports)\n}\n\nfunc (s *portSorter) Swap(i, j int) {\n\ts.ports[i], s.ports[j] = s.ports[j], s.ports[i]\n}\n\nfunc (s *portSorter) Less(i, j int) bool {\n\tip := s.ports[i]\n\tjp := s.ports[j]\n\n\treturn s.by(ip, jp)\n}\n\n// Sort sorts a list of ports using the provided predicate\n// This function should compare `i` and `j`, returning true if `i` is\n// considered to be less than `j`\nfunc Sort(ports []Port, predicate func(i, j Port) bool) {\n\ts := &portSorter{ports, predicate}\n\tsort.Sort(s)\n}\n\ntype portMapEntry struct {\n\tport    Port\n\tbinding PortBinding\n}\n\ntype portMapSorter []portMapEntry\n\nfunc (s portMapSorter) Len() int      { return len(s) }\nfunc (s portMapSorter) Swap(i, j int) { s[i], s[j] = s[j], s[i] }\n\n// Less sorts the port so that the order is:\n// 1. port with larger specified bindings\n// 2. larger port\n// 3. port with tcp protocol\nfunc (s portMapSorter) Less(i, j int) bool {\n\tpi, pj := s[i].port, s[j].port\n\thpi, hpj := toInt(s[i].binding.HostPort), toInt(s[j].binding.HostPort)\n\treturn hpi > hpj || pi.Int() > pj.Int() || (pi.Int() == pj.Int() && strings.ToLower(pi.Proto()) == \"tcp\")\n}\n\n// SortPortMap sorts the list of ports and their respected mapping. The ports\n// will explicit HostPort will be placed first.\nfunc SortPortMap(ports []Port, bindings PortMap) {\n\ts := portMapSorter{}\n\tfor _, p := range ports {\n\t\tif binding, ok := bindings[p]; ok && len(binding) > 0 {\n\t\t\tfor _, b := range binding {\n\t\t\t\ts = append(s, portMapEntry{port: p, binding: b})\n\t\t\t}\n\t\t\tbindings[p] = []PortBinding{}\n\t\t} else {\n\t\t\ts = append(s, portMapEntry{port: p})\n\t\t}\n\t}\n\n\tsort.Sort(s)\n\tvar (\n\t\ti  int\n\t\tpm = make(map[Port]struct{})\n\t)\n\t// reorder ports\n\tfor _, entry := range s {\n\t\tif _, ok := pm[entry.port]; !ok {\n\t\t\tports[i] = entry.port\n\t\t\tpm[entry.port] = struct{}{}\n\t\t\ti++\n\t\t}\n\t\t// reorder bindings for this port\n\t\tif _, ok := bindings[entry.port]; ok {\n\t\t\tbindings[entry.port] = append(bindings[entry.port], entry.binding)\n\t\t}\n\t}\n}\n\nfunc toInt(s string) uint64 {\n\ti, _, err := ParsePortRange(s)\n\tif err != nil {\n\t\ti = 0\n\t}\n\treturn i\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/sockets/README.md",
    "content": ""
  },
  {
    "path": "vendor/github.com/docker/go-connections/sockets/inmem_socket.go",
    "content": "package sockets\n\nimport (\n\t\"errors\"\n\t\"net\"\n\t\"sync\"\n)\n\nvar errClosed = errors.New(\"use of closed network connection\")\n\n// InmemSocket implements net.Listener using in-memory only connections.\ntype InmemSocket struct {\n\tchConn  chan net.Conn\n\tchClose chan struct{}\n\taddr    string\n\tmu      sync.Mutex\n}\n\n// dummyAddr is used to satisfy net.Addr for the in-mem socket\n// it is just stored as a string and returns the string for all calls\ntype dummyAddr string\n\n// NewInmemSocket creates an in-memory only net.Listener\n// The addr argument can be any string, but is used to satisfy the `Addr()` part\n// of the net.Listener interface\nfunc NewInmemSocket(addr string, bufSize int) *InmemSocket {\n\treturn &InmemSocket{\n\t\tchConn:  make(chan net.Conn, bufSize),\n\t\tchClose: make(chan struct{}),\n\t\taddr:    addr,\n\t}\n}\n\n// Addr returns the socket's addr string to satisfy net.Listener\nfunc (s *InmemSocket) Addr() net.Addr {\n\treturn dummyAddr(s.addr)\n}\n\n// Accept implements the Accept method in the Listener interface; it waits for the next call and returns a generic Conn.\nfunc (s *InmemSocket) Accept() (net.Conn, error) {\n\tselect {\n\tcase conn := <-s.chConn:\n\t\treturn conn, nil\n\tcase <-s.chClose:\n\t\treturn nil, errClosed\n\t}\n}\n\n// Close closes the listener. It will be unavailable for use once closed.\nfunc (s *InmemSocket) Close() error {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tselect {\n\tcase <-s.chClose:\n\tdefault:\n\t\tclose(s.chClose)\n\t}\n\treturn nil\n}\n\n// Dial is used to establish a connection with the in-mem server\nfunc (s *InmemSocket) Dial(network, addr string) (net.Conn, error) {\n\tsrvConn, clientConn := net.Pipe()\n\tselect {\n\tcase s.chConn <- srvConn:\n\tcase <-s.chClose:\n\t\treturn nil, errClosed\n\t}\n\n\treturn clientConn, nil\n}\n\n// Network returns the addr string, satisfies net.Addr\nfunc (a dummyAddr) Network() string {\n\treturn string(a)\n}\n\n// String returns the string form\nfunc (a dummyAddr) String() string {\n\treturn string(a)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/sockets/proxy.go",
    "content": "package sockets\n\nimport (\n\t\"net\"\n\t\"os\"\n\t\"strings\"\n)\n\n// GetProxyEnv allows access to the uppercase and the lowercase forms of\n// proxy-related variables.  See the Go specification for details on these\n// variables. https://golang.org/pkg/net/http/\nfunc GetProxyEnv(key string) string {\n\tproxyValue := os.Getenv(strings.ToUpper(key))\n\tif proxyValue == \"\" {\n\t\treturn os.Getenv(strings.ToLower(key))\n\t}\n\treturn proxyValue\n}\n\n// DialerFromEnvironment was previously used to configure a net.Dialer to route\n// connections through a SOCKS proxy.\n// DEPRECATED: SOCKS proxies are now supported by configuring only\n// http.Transport.Proxy, and no longer require changing http.Transport.Dial.\n// Therefore, only sockets.ConfigureTransport() needs to be called, and any\n// sockets.DialerFromEnvironment() calls can be dropped.\nfunc DialerFromEnvironment(direct *net.Dialer) (*net.Dialer, error) {\n\treturn direct, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/sockets/sockets.go",
    "content": "// Package sockets provides helper functions to create and configure Unix or TCP sockets.\npackage sockets\n\nimport (\n\t\"errors\"\n\t\"net\"\n\t\"net/http\"\n\t\"time\"\n)\n\nconst defaultTimeout = 10 * time.Second\n\n// ErrProtocolNotAvailable is returned when a given transport protocol is not provided by the operating system.\nvar ErrProtocolNotAvailable = errors.New(\"protocol not available\")\n\n// ConfigureTransport configures the specified [http.Transport] according to the specified proto\n// and addr.\n//\n// If the proto is unix (using a unix socket to communicate) or npipe the compression is disabled.\n// For other protos, compression is enabled. If you want to manually enable/disable compression,\n// make sure you do it _after_ any subsequent calls to ConfigureTransport is made against the same\n// [http.Transport].\nfunc ConfigureTransport(tr *http.Transport, proto, addr string) error {\n\tswitch proto {\n\tcase \"unix\":\n\t\treturn configureUnixTransport(tr, proto, addr)\n\tcase \"npipe\":\n\t\treturn configureNpipeTransport(tr, proto, addr)\n\tdefault:\n\t\ttr.Proxy = http.ProxyFromEnvironment\n\t\ttr.DisableCompression = false\n\t\ttr.DialContext = (&net.Dialer{\n\t\t\tTimeout: defaultTimeout,\n\t\t}).DialContext\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/sockets/sockets_unix.go",
    "content": "//go:build !windows\n\npackage sockets\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/http\"\n\t\"syscall\"\n\t\"time\"\n)\n\nconst maxUnixSocketPathSize = len(syscall.RawSockaddrUnix{}.Path)\n\nfunc configureUnixTransport(tr *http.Transport, proto, addr string) error {\n\tif len(addr) > maxUnixSocketPathSize {\n\t\treturn fmt.Errorf(\"unix socket path %q is too long\", addr)\n\t}\n\t// No need for compression in local communications.\n\ttr.DisableCompression = true\n\tdialer := &net.Dialer{\n\t\tTimeout: defaultTimeout,\n\t}\n\ttr.DialContext = func(ctx context.Context, _, _ string) (net.Conn, error) {\n\t\treturn dialer.DialContext(ctx, proto, addr)\n\t}\n\treturn nil\n}\n\nfunc configureNpipeTransport(tr *http.Transport, proto, addr string) error {\n\treturn ErrProtocolNotAvailable\n}\n\n// DialPipe connects to a Windows named pipe.\n// This is not supported on other OSes.\nfunc DialPipe(_ string, _ time.Duration) (net.Conn, error) {\n\treturn nil, syscall.EAFNOSUPPORT\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/sockets/sockets_windows.go",
    "content": "package sockets\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/Microsoft/go-winio\"\n)\n\nfunc configureUnixTransport(tr *http.Transport, proto, addr string) error {\n\treturn ErrProtocolNotAvailable\n}\n\nfunc configureNpipeTransport(tr *http.Transport, proto, addr string) error {\n\t// No need for compression in local communications.\n\ttr.DisableCompression = true\n\ttr.DialContext = func(ctx context.Context, _, _ string) (net.Conn, error) {\n\t\treturn winio.DialPipeContext(ctx, addr)\n\t}\n\treturn nil\n}\n\n// DialPipe connects to a Windows named pipe.\nfunc DialPipe(addr string, timeout time.Duration) (net.Conn, error) {\n\treturn winio.DialPipe(addr, &timeout)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/sockets/tcp_socket.go",
    "content": "// Package sockets provides helper functions to create and configure Unix or TCP sockets.\npackage sockets\n\nimport (\n\t\"crypto/tls\"\n\t\"net\"\n)\n\n// NewTCPSocket creates a TCP socket listener with the specified address and\n// the specified tls configuration. If TLSConfig is set, will encapsulate the\n// TCP listener inside a TLS one.\nfunc NewTCPSocket(addr string, tlsConfig *tls.Config) (net.Listener, error) {\n\tl, err := net.Listen(\"tcp\", addr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif tlsConfig != nil {\n\t\ttlsConfig.NextProtos = []string{\"http/1.1\"}\n\t\tl = tls.NewListener(l, tlsConfig)\n\t}\n\treturn l, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/sockets/unix_socket.go",
    "content": "//go:build !windows\n\n/*\nPackage sockets is a simple unix domain socket wrapper.\n\n# Usage\n\nFor example:\n\n\timport(\n\t\t\"fmt\"\n\t\t\"net\"\n\t\t\"os\"\n\t\t\"github.com/docker/go-connections/sockets\"\n\t)\n\n\tfunc main() {\n\t\tl, err := sockets.NewUnixSocketWithOpts(\"/path/to/sockets\",\n\t\t\tsockets.WithChown(0,0),sockets.WithChmod(0660))\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\techoStr := \"hello\"\n\n\t\tgo func() {\n\t\t\tfor {\n\t\t\t\tconn, err := l.Accept()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconn.Write([]byte(echoStr))\n\t\t\t\tconn.Close()\n\t\t\t}\n\t\t}()\n\n\t\tconn, err := net.Dial(\"unix\", path)\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\n\t\tbuf := make([]byte, 5)\n\t\tif _, err := conn.Read(buf); err != nil {\n\t\t\tpanic(err)\n\t\t} else if string(buf) != echoStr {\n\t\t\tpanic(fmt.Errorf(\"msg may lost\"))\n\t\t}\n\t}\n*/\npackage sockets\n\nimport (\n\t\"net\"\n\t\"os\"\n\t\"syscall\"\n)\n\n// SockOption sets up socket file's creating option\ntype SockOption func(string) error\n\n// WithChown modifies the socket file's uid and gid\nfunc WithChown(uid, gid int) SockOption {\n\treturn func(path string) error {\n\t\tif err := os.Chown(path, uid, gid); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// WithChmod modifies socket file's access mode.\nfunc WithChmod(mask os.FileMode) SockOption {\n\treturn func(path string) error {\n\t\tif err := os.Chmod(path, mask); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// NewUnixSocketWithOpts creates a unix socket with the specified options.\n// By default, socket permissions are 0000 (i.e.: no access for anyone); pass\n// WithChmod() and WithChown() to set the desired ownership and permissions.\n//\n// This function temporarily changes the system's \"umask\" to 0777 to work around\n// a race condition between creating the socket and setting its permissions. While\n// this should only be for a short duration, it may affect other processes that\n// create files/directories during that period.\nfunc NewUnixSocketWithOpts(path string, opts ...SockOption) (net.Listener, error) {\n\tif err := syscall.Unlink(path); err != nil && !os.IsNotExist(err) {\n\t\treturn nil, err\n\t}\n\n\t// net.Listen does not allow for permissions to be set. As a result, when\n\t// specifying custom permissions (\"WithChmod()\"), there is a short time\n\t// between creating the socket and applying the permissions, during which\n\t// the socket permissions are Less restrictive than desired.\n\t//\n\t// To work around this limitation of net.Listen(), we temporarily set the\n\t// umask to 0777, which forces the socket to be created with 000 permissions\n\t// (i.e.: no access for anyone). After that, WithChmod() must be used to set\n\t// the desired permissions.\n\t//\n\t// We don't use \"defer\" here, to reset the umask to its original value as soon\n\t// as possible. Ideally we'd be able to detect if WithChmod() was passed as\n\t// an option, and skip changing umask if default permissions are used.\n\torigUmask := syscall.Umask(0o777)\n\tl, err := net.Listen(\"unix\", path)\n\tsyscall.Umask(origUmask)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, op := range opts {\n\t\tif err := op(path); err != nil {\n\t\t\t_ = l.Close()\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn l, nil\n}\n\n// NewUnixSocket creates a unix socket with the specified path and group.\nfunc NewUnixSocket(path string, gid int) (net.Listener, error) {\n\treturn NewUnixSocketWithOpts(path, WithChown(0, gid), WithChmod(0o660))\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/tlsconfig/certpool.go",
    "content": "package tlsconfig\n\nimport (\n\t\"crypto/x509\"\n\t\"runtime\"\n)\n\n// SystemCertPool returns a copy of the system cert pool,\n// returns an error if failed to load or empty pool on windows.\nfunc SystemCertPool() (*x509.CertPool, error) {\n\tcertpool, err := x509.SystemCertPool()\n\tif err != nil && runtime.GOOS == \"windows\" {\n\t\treturn x509.NewCertPool(), nil\n\t}\n\treturn certpool, err\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/tlsconfig/config.go",
    "content": "// Package tlsconfig provides primitives to retrieve secure-enough TLS configurations for both clients and servers.\n//\n// As a reminder from https://golang.org/pkg/crypto/tls/#Config:\n//\n//\tA Config structure is used to configure a TLS client or server. After one has been passed to a TLS function it must not be modified.\n//\tA Config may be reused; the tls package will also not modify it.\npackage tlsconfig\n\nimport (\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n)\n\n// Options represents the information needed to create client and server TLS configurations.\ntype Options struct {\n\tCAFile string\n\n\t// If either CertFile or KeyFile is empty, Client() will not load them\n\t// preventing the client from authenticating to the server.\n\t// However, Server() requires them and will error out if they are empty.\n\tCertFile string\n\tKeyFile  string\n\n\t// client-only option\n\tInsecureSkipVerify bool\n\t// server-only option\n\tClientAuth tls.ClientAuthType\n\t// If ExclusiveRootPools is set, then if a CA file is provided, the root pool used for TLS\n\t// creds will include exclusively the roots in that CA file.  If no CA file is provided,\n\t// the system pool will be used.\n\tExclusiveRootPools bool\n\tMinVersion         uint16\n\t// If Passphrase is set, it will be used to decrypt a TLS private key\n\t// if the key is encrypted.\n\t//\n\t// Deprecated: Use of encrypted TLS private keys has been deprecated, and\n\t// will be removed in a future release. Golang has deprecated support for\n\t// legacy PEM encryption (as specified in RFC 1423), as it is insecure by\n\t// design (see https://go-review.googlesource.com/c/go/+/264159).\n\tPassphrase string\n}\n\n// Extra (server-side) accepted CBC cipher suites - will phase out in the future\nvar acceptedCBCCiphers = []uint16{\n\ttls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,\n\ttls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,\n\ttls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,\n\ttls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,\n}\n\n// DefaultServerAcceptedCiphers should be uses by code which already has a crypto/tls\n// options struct but wants to use a commonly accepted set of TLS cipher suites, with\n// known weak algorithms removed.\nvar DefaultServerAcceptedCiphers = append(clientCipherSuites, acceptedCBCCiphers...)\n\n// ServerDefault returns a secure-enough TLS configuration for the server TLS configuration.\nfunc ServerDefault(ops ...func(*tls.Config)) *tls.Config {\n\ttlsConfig := &tls.Config{\n\t\t// Avoid fallback by default to SSL protocols < TLS1.2\n\t\tMinVersion:               tls.VersionTLS12,\n\t\tPreferServerCipherSuites: true,\n\t\tCipherSuites:             DefaultServerAcceptedCiphers,\n\t}\n\n\tfor _, op := range ops {\n\t\top(tlsConfig)\n\t}\n\n\treturn tlsConfig\n}\n\n// ClientDefault returns a secure-enough TLS configuration for the client TLS configuration.\nfunc ClientDefault(ops ...func(*tls.Config)) *tls.Config {\n\ttlsConfig := &tls.Config{\n\t\t// Prefer TLS1.2 as the client minimum\n\t\tMinVersion:   tls.VersionTLS12,\n\t\tCipherSuites: clientCipherSuites,\n\t}\n\n\tfor _, op := range ops {\n\t\top(tlsConfig)\n\t}\n\n\treturn tlsConfig\n}\n\n// certPool returns an X.509 certificate pool from `caFile`, the certificate file.\nfunc certPool(caFile string, exclusivePool bool) (*x509.CertPool, error) {\n\t// If we should verify the server, we need to load a trusted ca\n\tvar (\n\t\tcertPool *x509.CertPool\n\t\terr      error\n\t)\n\tif exclusivePool {\n\t\tcertPool = x509.NewCertPool()\n\t} else {\n\t\tcertPool, err = SystemCertPool()\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to read system certificates: %v\", err)\n\t\t}\n\t}\n\tpemData, err := os.ReadFile(caFile)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"could not read CA certificate %q: %v\", caFile, err)\n\t}\n\tif !certPool.AppendCertsFromPEM(pemData) {\n\t\treturn nil, fmt.Errorf(\"failed to append certificates from PEM file: %q\", caFile)\n\t}\n\treturn certPool, nil\n}\n\n// allTLSVersions lists all the TLS versions and is used by the code that validates\n// a uint16 value as a TLS version.\nvar allTLSVersions = map[uint16]struct{}{\n\ttls.VersionTLS10: {},\n\ttls.VersionTLS11: {},\n\ttls.VersionTLS12: {},\n\ttls.VersionTLS13: {},\n}\n\n// isValidMinVersion checks that the input value is a valid tls minimum version\nfunc isValidMinVersion(version uint16) bool {\n\t_, ok := allTLSVersions[version]\n\treturn ok\n}\n\n// adjustMinVersion sets the MinVersion on `config`, the input configuration.\n// It assumes the current MinVersion on the `config` is the lowest allowed.\nfunc adjustMinVersion(options Options, config *tls.Config) error {\n\tif options.MinVersion > 0 {\n\t\tif !isValidMinVersion(options.MinVersion) {\n\t\t\treturn fmt.Errorf(\"invalid minimum TLS version: %x\", options.MinVersion)\n\t\t}\n\t\tif options.MinVersion < config.MinVersion {\n\t\t\treturn fmt.Errorf(\"requested minimum TLS version is too low. Should be at-least: %x\", config.MinVersion)\n\t\t}\n\t\tconfig.MinVersion = options.MinVersion\n\t}\n\n\treturn nil\n}\n\n// IsErrEncryptedKey returns true if the 'err' is an error of incorrect\n// password when trying to decrypt a TLS private key.\n//\n// Deprecated: Use of encrypted TLS private keys has been deprecated, and\n// will be removed in a future release. Golang has deprecated support for\n// legacy PEM encryption (as specified in RFC 1423), as it is insecure by\n// design (see https://go-review.googlesource.com/c/go/+/264159).\nfunc IsErrEncryptedKey(err error) bool {\n\treturn errors.Is(err, x509.IncorrectPasswordError)\n}\n\n// getPrivateKey returns the private key in 'keyBytes', in PEM-encoded format.\n// If the private key is encrypted, 'passphrase' is used to decrypted the\n// private key.\nfunc getPrivateKey(keyBytes []byte, passphrase string) ([]byte, error) {\n\t// this section makes some small changes to code from notary/tuf/utils/x509.go\n\tpemBlock, _ := pem.Decode(keyBytes)\n\tif pemBlock == nil {\n\t\treturn nil, fmt.Errorf(\"no valid private key found\")\n\t}\n\n\tvar err error\n\tif x509.IsEncryptedPEMBlock(pemBlock) { //nolint:staticcheck // Ignore SA1019 (IsEncryptedPEMBlock is deprecated)\n\t\tkeyBytes, err = x509.DecryptPEMBlock(pemBlock, []byte(passphrase)) //nolint:staticcheck // Ignore SA1019 (DecryptPEMBlock is deprecated)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"private key is encrypted, but could not decrypt it: %w\", err)\n\t\t}\n\t\tkeyBytes = pem.EncodeToMemory(&pem.Block{Type: pemBlock.Type, Bytes: keyBytes})\n\t}\n\n\treturn keyBytes, nil\n}\n\n// getCert returns a Certificate from the CertFile and KeyFile in 'options',\n// if the key is encrypted, the Passphrase in 'options' will be used to\n// decrypt it.\nfunc getCert(options Options) ([]tls.Certificate, error) {\n\tif options.CertFile == \"\" && options.KeyFile == \"\" {\n\t\treturn nil, nil\n\t}\n\n\tcert, err := os.ReadFile(options.CertFile)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tprKeyBytes, err := os.ReadFile(options.KeyFile)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tprKeyBytes, err = getPrivateKey(prKeyBytes, options.Passphrase)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttlsCert, err := tls.X509KeyPair(cert, prKeyBytes)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn []tls.Certificate{tlsCert}, nil\n}\n\n// Client returns a TLS configuration meant to be used by a client.\nfunc Client(options Options) (*tls.Config, error) {\n\ttlsConfig := ClientDefault()\n\ttlsConfig.InsecureSkipVerify = options.InsecureSkipVerify\n\tif !options.InsecureSkipVerify && options.CAFile != \"\" {\n\t\tCAs, err := certPool(options.CAFile, options.ExclusiveRootPools)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ttlsConfig.RootCAs = CAs\n\t}\n\n\ttlsCerts, err := getCert(options)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"could not load X509 key pair: %w\", err)\n\t}\n\ttlsConfig.Certificates = tlsCerts\n\n\tif err := adjustMinVersion(options, tlsConfig); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn tlsConfig, nil\n}\n\n// Server returns a TLS configuration meant to be used by a server.\nfunc Server(options Options) (*tls.Config, error) {\n\ttlsConfig := ServerDefault()\n\ttlsConfig.ClientAuth = options.ClientAuth\n\ttlsCert, err := tls.LoadX509KeyPair(options.CertFile, options.KeyFile)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn nil, fmt.Errorf(\"could not load X509 key pair (cert: %q, key: %q): %v\", options.CertFile, options.KeyFile, err)\n\t\t}\n\t\treturn nil, fmt.Errorf(\"error reading X509 key pair - make sure the key is not encrypted (cert: %q, key: %q): %v\", options.CertFile, options.KeyFile, err)\n\t}\n\ttlsConfig.Certificates = []tls.Certificate{tlsCert}\n\tif options.ClientAuth >= tls.VerifyClientCertIfGiven && options.CAFile != \"\" {\n\t\tCAs, err := certPool(options.CAFile, options.ExclusiveRootPools)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ttlsConfig.ClientCAs = CAs\n\t}\n\n\tif err := adjustMinVersion(options, tlsConfig); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn tlsConfig, nil\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-connections/tlsconfig/config_client_ciphers.go",
    "content": "// Package tlsconfig provides primitives to retrieve secure-enough TLS configurations for both clients and servers.\npackage tlsconfig\n\nimport (\n\t\"crypto/tls\"\n)\n\n// Client TLS cipher suites (dropping CBC ciphers for client preferred suite set)\nvar clientCipherSuites = []uint16{\n\ttls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,\n\ttls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,\n\ttls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,\n\ttls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-units/CONTRIBUTING.md",
    "content": "# Contributing to go-units\n\nWant to hack on go-units? Awesome! Here are instructions to get you started.\n\ngo-units is a part of the [Docker](https://www.docker.com) project, and follows\nthe same rules and principles. If you're already familiar with the way\nDocker does things, you'll feel right at home.\n\nOtherwise, go read Docker's\n[contributions guidelines](https://github.com/docker/docker/blob/master/CONTRIBUTING.md),\n[issue triaging](https://github.com/docker/docker/blob/master/project/ISSUE-TRIAGE.md),\n[review process](https://github.com/docker/docker/blob/master/project/REVIEWING.md) and\n[branches and tags](https://github.com/docker/docker/blob/master/project/BRANCHES-AND-TAGS.md).\n\n### Sign your work\n\nThe sign-off is a simple line at the end of the explanation for the patch. Your\nsignature certifies that you wrote the patch or otherwise have the right to pass\nit on as an open-source patch. The rules are pretty simple: if you can certify\nthe below (from [developercertificate.org](http://developercertificate.org/)):\n\n```\nDeveloper Certificate of Origin\nVersion 1.1\n\nCopyright (C) 2004, 2006 The Linux Foundation and its contributors.\n660 York Street, Suite 102,\nSan Francisco, CA 94110 USA\n\nEveryone is permitted to copy and distribute verbatim copies of this\nlicense document, but changing it is not allowed.\n\nDeveloper's Certificate of Origin 1.1\n\nBy making a contribution to this project, I certify that:\n\n(a) The contribution was created in whole or in part by me and I\n    have the right to submit it under the open source license\n    indicated in the file; or\n\n(b) The contribution is based upon previous work that, to the best\n    of my knowledge, is covered under an appropriate open source\n    license and I have the right under that license to submit that\n    work with modifications, whether created in whole or in part\n    by me, under the same open source license (unless I am\n    permitted to submit under a different license), as indicated\n    in the file; or\n\n(c) The contribution was provided directly to me by some other\n    person who certified (a), (b) or (c) and I have not modified\n    it.\n\n(d) I understand and agree that this project and the contribution\n    are public and that a record of the contribution (including all\n    personal information I submit with it, including my sign-off) is\n    maintained indefinitely and may be redistributed consistent with\n    this project or the open source license(s) involved.\n```\n\nThen you just add a line to every git commit message:\n\n    Signed-off-by: Joe Smith <joe.smith@email.com>\n\nUse your real name (sorry, no pseudonyms or anonymous contributions.)\n\nIf you set your `user.name` and `user.email` git configs, you can sign your\ncommit automatically with `git commit -s`.\n"
  },
  {
    "path": "vendor/github.com/docker/go-units/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        https://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   Copyright 2015 Docker, Inc.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       https://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/docker/go-units/MAINTAINERS",
    "content": "# go-units maintainers file\n#\n# This file describes who runs the docker/go-units project and how.\n# This is a living document - if you see something out of date or missing, speak up!\n#\n# It is structured to be consumable by both humans and programs.\n# To extract its contents programmatically, use any TOML-compliant parser.\n#\n# This file is compiled into the MAINTAINERS file in docker/opensource.\n#\n[Org]\n\t[Org.\"Core maintainers\"]\n\t\tpeople = [\n\t\t\t\"akihirosuda\",\n\t\t\t\"dnephin\",\n\t\t\t\"thajeztah\",\n\t\t\t\"vdemeester\",\n\t\t]\n\n[people]\n\n# A reference list of all people associated with the project.\n# All other sections should refer to people by their canonical key\n# in the people section.\n\n\t# ADD YOURSELF HERE IN ALPHABETICAL ORDER\n\n\t[people.akihirosuda]\n\tName = \"Akihiro Suda\"\n\tEmail = \"akihiro.suda.cz@hco.ntt.co.jp\"\n\tGitHub = \"AkihiroSuda\"\n\n\t[people.dnephin]\n\tName = \"Daniel Nephin\"\n\tEmail = \"dnephin@gmail.com\"\n\tGitHub = \"dnephin\"\n\t\n\t[people.thajeztah]\n\tName = \"Sebastiaan van Stijn\"\n\tEmail = \"github@gone.nl\"\n\tGitHub = \"thaJeztah\"\n\n\t[people.vdemeester]\n\tName = \"Vincent Demeester\"\n\tEmail = \"vincent@sbr.pm\"\n\tGitHub = \"vdemeester\""
  },
  {
    "path": "vendor/github.com/docker/go-units/README.md",
    "content": "[![GoDoc](https://godoc.org/github.com/docker/go-units?status.svg)](https://godoc.org/github.com/docker/go-units)\n\n# Introduction\n\ngo-units is a library to transform human friendly measurements into machine friendly values.\n\n## Usage\n\nSee the [docs in godoc](https://godoc.org/github.com/docker/go-units) for examples and documentation.\n\n## Copyright and license\n\nCopyright © 2015 Docker, Inc.\n\ngo-units is licensed under the Apache License, Version 2.0.\nSee [LICENSE](LICENSE) for the full text of the license.\n"
  },
  {
    "path": "vendor/github.com/docker/go-units/circle.yml",
    "content": "dependencies:\n  post:\n    # install golint\n    - go get golang.org/x/lint/golint\n\ntest:\n  pre:\n    # run analysis before tests\n    - go vet ./...\n    - test -z \"$(golint ./... | tee /dev/stderr)\"\n    - test -z \"$(gofmt -s -l . | tee /dev/stderr)\"\n"
  },
  {
    "path": "vendor/github.com/docker/go-units/duration.go",
    "content": "// Package units provides helper function to parse and print size and time units\n// in human-readable format.\npackage units\n\nimport (\n\t\"fmt\"\n\t\"time\"\n)\n\n// HumanDuration returns a human-readable approximation of a duration\n// (eg. \"About a minute\", \"4 hours ago\", etc.).\nfunc HumanDuration(d time.Duration) string {\n\tif seconds := int(d.Seconds()); seconds < 1 {\n\t\treturn \"Less than a second\"\n\t} else if seconds == 1 {\n\t\treturn \"1 second\"\n\t} else if seconds < 60 {\n\t\treturn fmt.Sprintf(\"%d seconds\", seconds)\n\t} else if minutes := int(d.Minutes()); minutes == 1 {\n\t\treturn \"About a minute\"\n\t} else if minutes < 60 {\n\t\treturn fmt.Sprintf(\"%d minutes\", minutes)\n\t} else if hours := int(d.Hours() + 0.5); hours == 1 {\n\t\treturn \"About an hour\"\n\t} else if hours < 48 {\n\t\treturn fmt.Sprintf(\"%d hours\", hours)\n\t} else if hours < 24*7*2 {\n\t\treturn fmt.Sprintf(\"%d days\", hours/24)\n\t} else if hours < 24*30*2 {\n\t\treturn fmt.Sprintf(\"%d weeks\", hours/24/7)\n\t} else if hours < 24*365*2 {\n\t\treturn fmt.Sprintf(\"%d months\", hours/24/30)\n\t}\n\treturn fmt.Sprintf(\"%d years\", int(d.Hours())/24/365)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-units/size.go",
    "content": "package units\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// See: http://en.wikipedia.org/wiki/Binary_prefix\nconst (\n\t// Decimal\n\n\tKB = 1000\n\tMB = 1000 * KB\n\tGB = 1000 * MB\n\tTB = 1000 * GB\n\tPB = 1000 * TB\n\n\t// Binary\n\n\tKiB = 1024\n\tMiB = 1024 * KiB\n\tGiB = 1024 * MiB\n\tTiB = 1024 * GiB\n\tPiB = 1024 * TiB\n)\n\ntype unitMap map[byte]int64\n\nvar (\n\tdecimalMap = unitMap{'k': KB, 'm': MB, 'g': GB, 't': TB, 'p': PB}\n\tbinaryMap  = unitMap{'k': KiB, 'm': MiB, 'g': GiB, 't': TiB, 'p': PiB}\n)\n\nvar (\n\tdecimapAbbrs = []string{\"B\", \"kB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"}\n\tbinaryAbbrs  = []string{\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"}\n)\n\nfunc getSizeAndUnit(size float64, base float64, _map []string) (float64, string) {\n\ti := 0\n\tunitsLimit := len(_map) - 1\n\tfor size >= base && i < unitsLimit {\n\t\tsize = size / base\n\t\ti++\n\t}\n\treturn size, _map[i]\n}\n\n// CustomSize returns a human-readable approximation of a size\n// using custom format.\nfunc CustomSize(format string, size float64, base float64, _map []string) string {\n\tsize, unit := getSizeAndUnit(size, base, _map)\n\treturn fmt.Sprintf(format, size, unit)\n}\n\n// HumanSizeWithPrecision allows the size to be in any precision,\n// instead of 4 digit precision used in units.HumanSize.\nfunc HumanSizeWithPrecision(size float64, precision int) string {\n\tsize, unit := getSizeAndUnit(size, 1000.0, decimapAbbrs)\n\treturn fmt.Sprintf(\"%.*g%s\", precision, size, unit)\n}\n\n// HumanSize returns a human-readable approximation of a size\n// capped at 4 valid numbers (eg. \"2.746 MB\", \"796 KB\").\nfunc HumanSize(size float64) string {\n\treturn HumanSizeWithPrecision(size, 4)\n}\n\n// BytesSize returns a human-readable size in bytes, kibibytes,\n// mebibytes, gibibytes, or tebibytes (eg. \"44kiB\", \"17MiB\").\nfunc BytesSize(size float64) string {\n\treturn CustomSize(\"%.4g%s\", size, 1024.0, binaryAbbrs)\n}\n\n// FromHumanSize returns an integer from a human-readable specification of a\n// size using SI standard (eg. \"44kB\", \"17MB\").\nfunc FromHumanSize(size string) (int64, error) {\n\treturn parseSize(size, decimalMap)\n}\n\n// RAMInBytes parses a human-readable string representing an amount of RAM\n// in bytes, kibibytes, mebibytes, gibibytes, or tebibytes and\n// returns the number of bytes, or -1 if the string is unparseable.\n// Units are case-insensitive, and the 'b' suffix is optional.\nfunc RAMInBytes(size string) (int64, error) {\n\treturn parseSize(size, binaryMap)\n}\n\n// Parses the human-readable size string into the amount it represents.\nfunc parseSize(sizeStr string, uMap unitMap) (int64, error) {\n\t// TODO: rewrite to use strings.Cut if there's a space\n\t// once Go < 1.18 is deprecated.\n\tsep := strings.LastIndexAny(sizeStr, \"01234567890. \")\n\tif sep == -1 {\n\t\t// There should be at least a digit.\n\t\treturn -1, fmt.Errorf(\"invalid size: '%s'\", sizeStr)\n\t}\n\tvar num, sfx string\n\tif sizeStr[sep] != ' ' {\n\t\tnum = sizeStr[:sep+1]\n\t\tsfx = sizeStr[sep+1:]\n\t} else {\n\t\t// Omit the space separator.\n\t\tnum = sizeStr[:sep]\n\t\tsfx = sizeStr[sep+1:]\n\t}\n\n\tsize, err := strconv.ParseFloat(num, 64)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\t// Backward compatibility: reject negative sizes.\n\tif size < 0 {\n\t\treturn -1, fmt.Errorf(\"invalid size: '%s'\", sizeStr)\n\t}\n\n\tif len(sfx) == 0 {\n\t\treturn int64(size), nil\n\t}\n\n\t// Process the suffix.\n\n\tif len(sfx) > 3 { // Too long.\n\t\tgoto badSuffix\n\t}\n\tsfx = strings.ToLower(sfx)\n\t// Trivial case: b suffix.\n\tif sfx[0] == 'b' {\n\t\tif len(sfx) > 1 { // no extra characters allowed after b.\n\t\t\tgoto badSuffix\n\t\t}\n\t\treturn int64(size), nil\n\t}\n\t// A suffix from the map.\n\tif mul, ok := uMap[sfx[0]]; ok {\n\t\tsize *= float64(mul)\n\t} else {\n\t\tgoto badSuffix\n\t}\n\n\t// The suffix may have extra \"b\" or \"ib\" (e.g. KiB or MB).\n\tswitch {\n\tcase len(sfx) == 2 && sfx[1] != 'b':\n\t\tgoto badSuffix\n\tcase len(sfx) == 3 && sfx[1:] != \"ib\":\n\t\tgoto badSuffix\n\t}\n\n\treturn int64(size), nil\n\nbadSuffix:\n\treturn -1, fmt.Errorf(\"invalid suffix: '%s'\", sfx)\n}\n"
  },
  {
    "path": "vendor/github.com/docker/go-units/ulimit.go",
    "content": "package units\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Ulimit is a human friendly version of Rlimit.\ntype Ulimit struct {\n\tName string\n\tHard int64\n\tSoft int64\n}\n\n// Rlimit specifies the resource limits, such as max open files.\ntype Rlimit struct {\n\tType int    `json:\"type,omitempty\"`\n\tHard uint64 `json:\"hard,omitempty\"`\n\tSoft uint64 `json:\"soft,omitempty\"`\n}\n\nconst (\n\t// magic numbers for making the syscall\n\t// some of these are defined in the syscall package, but not all.\n\t// Also since Windows client doesn't get access to the syscall package, need to\n\t//\tdefine these here\n\trlimitAs         = 9\n\trlimitCore       = 4\n\trlimitCPU        = 0\n\trlimitData       = 2\n\trlimitFsize      = 1\n\trlimitLocks      = 10\n\trlimitMemlock    = 8\n\trlimitMsgqueue   = 12\n\trlimitNice       = 13\n\trlimitNofile     = 7\n\trlimitNproc      = 6\n\trlimitRss        = 5\n\trlimitRtprio     = 14\n\trlimitRttime     = 15\n\trlimitSigpending = 11\n\trlimitStack      = 3\n)\n\nvar ulimitNameMapping = map[string]int{\n\t//\"as\":         rlimitAs, // Disabled since this doesn't seem usable with the way Docker inits a container.\n\t\"core\":       rlimitCore,\n\t\"cpu\":        rlimitCPU,\n\t\"data\":       rlimitData,\n\t\"fsize\":      rlimitFsize,\n\t\"locks\":      rlimitLocks,\n\t\"memlock\":    rlimitMemlock,\n\t\"msgqueue\":   rlimitMsgqueue,\n\t\"nice\":       rlimitNice,\n\t\"nofile\":     rlimitNofile,\n\t\"nproc\":      rlimitNproc,\n\t\"rss\":        rlimitRss,\n\t\"rtprio\":     rlimitRtprio,\n\t\"rttime\":     rlimitRttime,\n\t\"sigpending\": rlimitSigpending,\n\t\"stack\":      rlimitStack,\n}\n\n// ParseUlimit parses and returns a Ulimit from the specified string.\nfunc ParseUlimit(val string) (*Ulimit, error) {\n\tparts := strings.SplitN(val, \"=\", 2)\n\tif len(parts) != 2 {\n\t\treturn nil, fmt.Errorf(\"invalid ulimit argument: %s\", val)\n\t}\n\n\tif _, exists := ulimitNameMapping[parts[0]]; !exists {\n\t\treturn nil, fmt.Errorf(\"invalid ulimit type: %s\", parts[0])\n\t}\n\n\tvar (\n\t\tsoft int64\n\t\thard = &soft // default to soft in case no hard was set\n\t\ttemp int64\n\t\terr  error\n\t)\n\tswitch limitVals := strings.Split(parts[1], \":\"); len(limitVals) {\n\tcase 2:\n\t\ttemp, err = strconv.ParseInt(limitVals[1], 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\thard = &temp\n\t\tfallthrough\n\tcase 1:\n\t\tsoft, err = strconv.ParseInt(limitVals[0], 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"too many limit value arguments - %s, can only have up to two, `soft[:hard]`\", parts[1])\n\t}\n\n\tif *hard != -1 {\n\t\tif soft == -1 {\n\t\t\treturn nil, fmt.Errorf(\"ulimit soft limit must be less than or equal to hard limit: soft: -1 (unlimited), hard: %d\", *hard)\n\t\t}\n\t\tif soft > *hard {\n\t\t\treturn nil, fmt.Errorf(\"ulimit soft limit must be less than or equal to hard limit: %d > %d\", soft, *hard)\n\t\t}\n\t}\n\n\treturn &Ulimit{Name: parts[0], Soft: soft, Hard: *hard}, nil\n}\n\n// GetRlimit returns the RLimit corresponding to Ulimit.\nfunc (u *Ulimit) GetRlimit() (*Rlimit, error) {\n\tt, exists := ulimitNameMapping[u.Name]\n\tif !exists {\n\t\treturn nil, fmt.Errorf(\"invalid ulimit name %s\", u.Name)\n\t}\n\n\treturn &Rlimit{Type: t, Soft: uint64(u.Soft), Hard: uint64(u.Hard)}, nil\n}\n\nfunc (u *Ulimit) String() string {\n\treturn fmt.Sprintf(\"%s=%d:%d\", u.Name, u.Soft, u.Hard)\n}\n"
  },
  {
    "path": "vendor/github.com/fatih/color/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2013 Fatih Arslan\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/fatih/color/README.md",
    "content": "# color [![](https://github.com/fatih/color/workflows/build/badge.svg)](https://github.com/fatih/color/actions) [![PkgGoDev](https://pkg.go.dev/badge/github.com/fatih/color)](https://pkg.go.dev/github.com/fatih/color)\n\nColor lets you use colorized outputs in terms of [ANSI Escape\nCodes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors) in Go (Golang). It\nhas support for Windows too! The API can be used in several ways, pick one that\nsuits you.\n\n![Color](https://user-images.githubusercontent.com/438920/96832689-03b3e000-13f4-11eb-9803-46f4c4de3406.jpg)\n\n\n## Install\n\n```bash\ngo get github.com/fatih/color\n```\n\n## Examples\n\n### Standard colors\n\n```go\n// Print with default helper functions\ncolor.Cyan(\"Prints text in cyan.\")\n\n// A newline will be appended automatically\ncolor.Blue(\"Prints %s in blue.\", \"text\")\n\n// These are using the default foreground colors\ncolor.Red(\"We have red\")\ncolor.Magenta(\"And many others ..\")\n\n```\n\n### Mix and reuse colors\n\n```go\n// Create a new color object\nc := color.New(color.FgCyan).Add(color.Underline)\nc.Println(\"Prints cyan text with an underline.\")\n\n// Or just add them to New()\nd := color.New(color.FgCyan, color.Bold)\nd.Printf(\"This prints bold cyan %s\\n\", \"too!.\")\n\n// Mix up foreground and background colors, create new mixes!\nred := color.New(color.FgRed)\n\nboldRed := red.Add(color.Bold)\nboldRed.Println(\"This will print text in bold red.\")\n\nwhiteBackground := red.Add(color.BgWhite)\nwhiteBackground.Println(\"Red text with white background.\")\n```\n\n### Use your own output (io.Writer)\n\n```go\n// Use your own io.Writer output\ncolor.New(color.FgBlue).Fprintln(myWriter, \"blue color!\")\n\nblue := color.New(color.FgBlue)\nblue.Fprint(writer, \"This will print text in blue.\")\n```\n\n### Custom print functions (PrintFunc)\n\n```go\n// Create a custom print function for convenience\nred := color.New(color.FgRed).PrintfFunc()\nred(\"Warning\")\nred(\"Error: %s\", err)\n\n// Mix up multiple attributes\nnotice := color.New(color.Bold, color.FgGreen).PrintlnFunc()\nnotice(\"Don't forget this...\")\n```\n\n### Custom fprint functions (FprintFunc)\n\n```go\nblue := color.New(FgBlue).FprintfFunc()\nblue(myWriter, \"important notice: %s\", stars)\n\n// Mix up with multiple attributes\nsuccess := color.New(color.Bold, color.FgGreen).FprintlnFunc()\nsuccess(myWriter, \"Don't forget this...\")\n```\n\n### Insert into noncolor strings (SprintFunc)\n\n```go\n// Create SprintXxx functions to mix strings with other non-colorized strings:\nyellow := color.New(color.FgYellow).SprintFunc()\nred := color.New(color.FgRed).SprintFunc()\nfmt.Printf(\"This is a %s and this is %s.\\n\", yellow(\"warning\"), red(\"error\"))\n\ninfo := color.New(color.FgWhite, color.BgGreen).SprintFunc()\nfmt.Printf(\"This %s rocks!\\n\", info(\"package\"))\n\n// Use helper functions\nfmt.Println(\"This\", color.RedString(\"warning\"), \"should be not neglected.\")\nfmt.Printf(\"%v %v\\n\", color.GreenString(\"Info:\"), \"an important message.\")\n\n// Windows supported too! Just don't forget to change the output to color.Output\nfmt.Fprintf(color.Output, \"Windows support: %s\", color.GreenString(\"PASS\"))\n```\n\n### Plug into existing code\n\n```go\n// Use handy standard colors\ncolor.Set(color.FgYellow)\n\nfmt.Println(\"Existing text will now be in yellow\")\nfmt.Printf(\"This one %s\\n\", \"too\")\n\ncolor.Unset() // Don't forget to unset\n\n// You can mix up parameters\ncolor.Set(color.FgMagenta, color.Bold)\ndefer color.Unset() // Use it in your function\n\nfmt.Println(\"All text will now be bold magenta.\")\n```\n\n### Disable/Enable color\n \nThere might be a case where you want to explicitly disable/enable color output. the \n`go-isatty` package will automatically disable color output for non-tty output streams \n(for example if the output were piped directly to `less`)\n\n`Color` has support to disable/enable colors both globally and for single color \ndefinitions. For example suppose you have a CLI app and a `--no-color` bool flag. You \ncan easily disable the color output with:\n\n```go\n\nvar flagNoColor = flag.Bool(\"no-color\", false, \"Disable color output\")\n\nif *flagNoColor {\n\tcolor.NoColor = true // disables colorized output\n}\n```\n\nIt also has support for single color definitions (local). You can\ndisable/enable color output on the fly:\n\n```go\nc := color.New(color.FgCyan)\nc.Println(\"Prints cyan text\")\n\nc.DisableColor()\nc.Println(\"This is printed without any color\")\n\nc.EnableColor()\nc.Println(\"This prints again cyan...\")\n```\n\n## Todo\n\n* Save/Return previous values\n* Evaluate fmt.Formatter interface\n\n\n## Credits\n\n * [Fatih Arslan](https://github.com/fatih)\n * Windows support via @mattn: [colorable](https://github.com/mattn/go-colorable)\n\n## License\n\nThe MIT License (MIT) - see [`LICENSE.md`](https://github.com/fatih/color/blob/master/LICENSE.md) for more details\n\n"
  },
  {
    "path": "vendor/github.com/fatih/color/color.go",
    "content": "package color\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/mattn/go-colorable\"\n\t\"github.com/mattn/go-isatty\"\n)\n\nvar (\n\t// NoColor defines if the output is colorized or not. It's dynamically set to\n\t// false or true based on the stdout's file descriptor referring to a terminal\n\t// or not. This is a global option and affects all colors. For more control\n\t// over each color block use the methods DisableColor() individually.\n\tNoColor = os.Getenv(\"TERM\") == \"dumb\" ||\n\t\t(!isatty.IsTerminal(os.Stdout.Fd()) && !isatty.IsCygwinTerminal(os.Stdout.Fd()))\n\n\t// Output defines the standard output of the print functions. By default\n\t// os.Stdout is used.\n\tOutput = colorable.NewColorableStdout()\n\n\t// Error defines a color supporting writer for os.Stderr.\n\tError = colorable.NewColorableStderr()\n\n\t// colorsCache is used to reduce the count of created Color objects and\n\t// allows to reuse already created objects with required Attribute.\n\tcolorsCache   = make(map[Attribute]*Color)\n\tcolorsCacheMu sync.Mutex // protects colorsCache\n)\n\n// Color defines a custom color object which is defined by SGR parameters.\ntype Color struct {\n\tparams  []Attribute\n\tnoColor *bool\n}\n\n// Attribute defines a single SGR Code\ntype Attribute int\n\nconst escape = \"\\x1b\"\n\n// Base attributes\nconst (\n\tReset Attribute = iota\n\tBold\n\tFaint\n\tItalic\n\tUnderline\n\tBlinkSlow\n\tBlinkRapid\n\tReverseVideo\n\tConcealed\n\tCrossedOut\n)\n\n// Foreground text colors\nconst (\n\tFgBlack Attribute = iota + 30\n\tFgRed\n\tFgGreen\n\tFgYellow\n\tFgBlue\n\tFgMagenta\n\tFgCyan\n\tFgWhite\n)\n\n// Foreground Hi-Intensity text colors\nconst (\n\tFgHiBlack Attribute = iota + 90\n\tFgHiRed\n\tFgHiGreen\n\tFgHiYellow\n\tFgHiBlue\n\tFgHiMagenta\n\tFgHiCyan\n\tFgHiWhite\n)\n\n// Background text colors\nconst (\n\tBgBlack Attribute = iota + 40\n\tBgRed\n\tBgGreen\n\tBgYellow\n\tBgBlue\n\tBgMagenta\n\tBgCyan\n\tBgWhite\n)\n\n// Background Hi-Intensity text colors\nconst (\n\tBgHiBlack Attribute = iota + 100\n\tBgHiRed\n\tBgHiGreen\n\tBgHiYellow\n\tBgHiBlue\n\tBgHiMagenta\n\tBgHiCyan\n\tBgHiWhite\n)\n\n// New returns a newly created color object.\nfunc New(value ...Attribute) *Color {\n\tc := &Color{params: make([]Attribute, 0)}\n\tc.Add(value...)\n\treturn c\n}\n\n// Set sets the given parameters immediately. It will change the color of\n// output with the given SGR parameters until color.Unset() is called.\nfunc Set(p ...Attribute) *Color {\n\tc := New(p...)\n\tc.Set()\n\treturn c\n}\n\n// Unset resets all escape attributes and clears the output. Usually should\n// be called after Set().\nfunc Unset() {\n\tif NoColor {\n\t\treturn\n\t}\n\n\tfmt.Fprintf(Output, \"%s[%dm\", escape, Reset)\n}\n\n// Set sets the SGR sequence.\nfunc (c *Color) Set() *Color {\n\tif c.isNoColorSet() {\n\t\treturn c\n\t}\n\n\tfmt.Fprintf(Output, c.format())\n\treturn c\n}\n\nfunc (c *Color) unset() {\n\tif c.isNoColorSet() {\n\t\treturn\n\t}\n\n\tUnset()\n}\n\nfunc (c *Color) setWriter(w io.Writer) *Color {\n\tif c.isNoColorSet() {\n\t\treturn c\n\t}\n\n\tfmt.Fprintf(w, c.format())\n\treturn c\n}\n\nfunc (c *Color) unsetWriter(w io.Writer) {\n\tif c.isNoColorSet() {\n\t\treturn\n\t}\n\n\tif NoColor {\n\t\treturn\n\t}\n\n\tfmt.Fprintf(w, \"%s[%dm\", escape, Reset)\n}\n\n// Add is used to chain SGR parameters. Use as many as parameters to combine\n// and create custom color objects. Example: Add(color.FgRed, color.Underline).\nfunc (c *Color) Add(value ...Attribute) *Color {\n\tc.params = append(c.params, value...)\n\treturn c\n}\n\nfunc (c *Color) prepend(value Attribute) {\n\tc.params = append(c.params, 0)\n\tcopy(c.params[1:], c.params[0:])\n\tc.params[0] = value\n}\n\n// Fprint formats using the default formats for its operands and writes to w.\n// Spaces are added between operands when neither is a string.\n// It returns the number of bytes written and any write error encountered.\n// On Windows, users should wrap w with colorable.NewColorable() if w is of\n// type *os.File.\nfunc (c *Color) Fprint(w io.Writer, a ...interface{}) (n int, err error) {\n\tc.setWriter(w)\n\tdefer c.unsetWriter(w)\n\n\treturn fmt.Fprint(w, a...)\n}\n\n// Print formats using the default formats for its operands and writes to\n// standard output. Spaces are added between operands when neither is a\n// string. It returns the number of bytes written and any write error\n// encountered. This is the standard fmt.Print() method wrapped with the given\n// color.\nfunc (c *Color) Print(a ...interface{}) (n int, err error) {\n\tc.Set()\n\tdefer c.unset()\n\n\treturn fmt.Fprint(Output, a...)\n}\n\n// Fprintf formats according to a format specifier and writes to w.\n// It returns the number of bytes written and any write error encountered.\n// On Windows, users should wrap w with colorable.NewColorable() if w is of\n// type *os.File.\nfunc (c *Color) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {\n\tc.setWriter(w)\n\tdefer c.unsetWriter(w)\n\n\treturn fmt.Fprintf(w, format, a...)\n}\n\n// Printf formats according to a format specifier and writes to standard output.\n// It returns the number of bytes written and any write error encountered.\n// This is the standard fmt.Printf() method wrapped with the given color.\nfunc (c *Color) Printf(format string, a ...interface{}) (n int, err error) {\n\tc.Set()\n\tdefer c.unset()\n\n\treturn fmt.Fprintf(Output, format, a...)\n}\n\n// Fprintln formats using the default formats for its operands and writes to w.\n// Spaces are always added between operands and a newline is appended.\n// On Windows, users should wrap w with colorable.NewColorable() if w is of\n// type *os.File.\nfunc (c *Color) Fprintln(w io.Writer, a ...interface{}) (n int, err error) {\n\tc.setWriter(w)\n\tdefer c.unsetWriter(w)\n\n\treturn fmt.Fprintln(w, a...)\n}\n\n// Println formats using the default formats for its operands and writes to\n// standard output. Spaces are always added between operands and a newline is\n// appended. It returns the number of bytes written and any write error\n// encountered. This is the standard fmt.Print() method wrapped with the given\n// color.\nfunc (c *Color) Println(a ...interface{}) (n int, err error) {\n\tc.Set()\n\tdefer c.unset()\n\n\treturn fmt.Fprintln(Output, a...)\n}\n\n// Sprint is just like Print, but returns a string instead of printing it.\nfunc (c *Color) Sprint(a ...interface{}) string {\n\treturn c.wrap(fmt.Sprint(a...))\n}\n\n// Sprintln is just like Println, but returns a string instead of printing it.\nfunc (c *Color) Sprintln(a ...interface{}) string {\n\treturn c.wrap(fmt.Sprintln(a...))\n}\n\n// Sprintf is just like Printf, but returns a string instead of printing it.\nfunc (c *Color) Sprintf(format string, a ...interface{}) string {\n\treturn c.wrap(fmt.Sprintf(format, a...))\n}\n\n// FprintFunc returns a new function that prints the passed arguments as\n// colorized with color.Fprint().\nfunc (c *Color) FprintFunc() func(w io.Writer, a ...interface{}) {\n\treturn func(w io.Writer, a ...interface{}) {\n\t\tc.Fprint(w, a...)\n\t}\n}\n\n// PrintFunc returns a new function that prints the passed arguments as\n// colorized with color.Print().\nfunc (c *Color) PrintFunc() func(a ...interface{}) {\n\treturn func(a ...interface{}) {\n\t\tc.Print(a...)\n\t}\n}\n\n// FprintfFunc returns a new function that prints the passed arguments as\n// colorized with color.Fprintf().\nfunc (c *Color) FprintfFunc() func(w io.Writer, format string, a ...interface{}) {\n\treturn func(w io.Writer, format string, a ...interface{}) {\n\t\tc.Fprintf(w, format, a...)\n\t}\n}\n\n// PrintfFunc returns a new function that prints the passed arguments as\n// colorized with color.Printf().\nfunc (c *Color) PrintfFunc() func(format string, a ...interface{}) {\n\treturn func(format string, a ...interface{}) {\n\t\tc.Printf(format, a...)\n\t}\n}\n\n// FprintlnFunc returns a new function that prints the passed arguments as\n// colorized with color.Fprintln().\nfunc (c *Color) FprintlnFunc() func(w io.Writer, a ...interface{}) {\n\treturn func(w io.Writer, a ...interface{}) {\n\t\tc.Fprintln(w, a...)\n\t}\n}\n\n// PrintlnFunc returns a new function that prints the passed arguments as\n// colorized with color.Println().\nfunc (c *Color) PrintlnFunc() func(a ...interface{}) {\n\treturn func(a ...interface{}) {\n\t\tc.Println(a...)\n\t}\n}\n\n// SprintFunc returns a new function that returns colorized strings for the\n// given arguments with fmt.Sprint(). Useful to put into or mix into other\n// string. Windows users should use this in conjunction with color.Output, example:\n//\n//\tput := New(FgYellow).SprintFunc()\n//\tfmt.Fprintf(color.Output, \"This is a %s\", put(\"warning\"))\nfunc (c *Color) SprintFunc() func(a ...interface{}) string {\n\treturn func(a ...interface{}) string {\n\t\treturn c.wrap(fmt.Sprint(a...))\n\t}\n}\n\n// SprintfFunc returns a new function that returns colorized strings for the\n// given arguments with fmt.Sprintf(). Useful to put into or mix into other\n// string. Windows users should use this in conjunction with color.Output.\nfunc (c *Color) SprintfFunc() func(format string, a ...interface{}) string {\n\treturn func(format string, a ...interface{}) string {\n\t\treturn c.wrap(fmt.Sprintf(format, a...))\n\t}\n}\n\n// SprintlnFunc returns a new function that returns colorized strings for the\n// given arguments with fmt.Sprintln(). Useful to put into or mix into other\n// string. Windows users should use this in conjunction with color.Output.\nfunc (c *Color) SprintlnFunc() func(a ...interface{}) string {\n\treturn func(a ...interface{}) string {\n\t\treturn c.wrap(fmt.Sprintln(a...))\n\t}\n}\n\n// sequence returns a formatted SGR sequence to be plugged into a \"\\x1b[...m\"\n// an example output might be: \"1;36\" -> bold cyan\nfunc (c *Color) sequence() string {\n\tformat := make([]string, len(c.params))\n\tfor i, v := range c.params {\n\t\tformat[i] = strconv.Itoa(int(v))\n\t}\n\n\treturn strings.Join(format, \";\")\n}\n\n// wrap wraps the s string with the colors attributes. The string is ready to\n// be printed.\nfunc (c *Color) wrap(s string) string {\n\tif c.isNoColorSet() {\n\t\treturn s\n\t}\n\n\treturn c.format() + s + c.unformat()\n}\n\nfunc (c *Color) format() string {\n\treturn fmt.Sprintf(\"%s[%sm\", escape, c.sequence())\n}\n\nfunc (c *Color) unformat() string {\n\treturn fmt.Sprintf(\"%s[%dm\", escape, Reset)\n}\n\n// DisableColor disables the color output. Useful to not change any existing\n// code and still being able to output. Can be used for flags like\n// \"--no-color\". To enable back use EnableColor() method.\nfunc (c *Color) DisableColor() {\n\tc.noColor = boolPtr(true)\n}\n\n// EnableColor enables the color output. Use it in conjunction with\n// DisableColor(). Otherwise this method has no side effects.\nfunc (c *Color) EnableColor() {\n\tc.noColor = boolPtr(false)\n}\n\nfunc (c *Color) isNoColorSet() bool {\n\t// check first if we have user setted action\n\tif c.noColor != nil {\n\t\treturn *c.noColor\n\t}\n\n\t// if not return the global option, which is disabled by default\n\treturn NoColor\n}\n\n// Equals returns a boolean value indicating whether two colors are equal.\nfunc (c *Color) Equals(c2 *Color) bool {\n\tif len(c.params) != len(c2.params) {\n\t\treturn false\n\t}\n\n\tfor _, attr := range c.params {\n\t\tif !c2.attrExists(attr) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc (c *Color) attrExists(a Attribute) bool {\n\tfor _, attr := range c.params {\n\t\tif attr == a {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc boolPtr(v bool) *bool {\n\treturn &v\n}\n\nfunc getCachedColor(p Attribute) *Color {\n\tcolorsCacheMu.Lock()\n\tdefer colorsCacheMu.Unlock()\n\n\tc, ok := colorsCache[p]\n\tif !ok {\n\t\tc = New(p)\n\t\tcolorsCache[p] = c\n\t}\n\n\treturn c\n}\n\nfunc colorPrint(format string, p Attribute, a ...interface{}) {\n\tc := getCachedColor(p)\n\n\tif !strings.HasSuffix(format, \"\\n\") {\n\t\tformat += \"\\n\"\n\t}\n\n\tif len(a) == 0 {\n\t\tc.Print(format)\n\t} else {\n\t\tc.Printf(format, a...)\n\t}\n}\n\nfunc colorString(format string, p Attribute, a ...interface{}) string {\n\tc := getCachedColor(p)\n\n\tif len(a) == 0 {\n\t\treturn c.SprintFunc()(format)\n\t}\n\n\treturn c.SprintfFunc()(format, a...)\n}\n\n// Black is a convenient helper function to print with black foreground. A\n// newline is appended to format by default.\nfunc Black(format string, a ...interface{}) { colorPrint(format, FgBlack, a...) }\n\n// Red is a convenient helper function to print with red foreground. A\n// newline is appended to format by default.\nfunc Red(format string, a ...interface{}) { colorPrint(format, FgRed, a...) }\n\n// Green is a convenient helper function to print with green foreground. A\n// newline is appended to format by default.\nfunc Green(format string, a ...interface{}) { colorPrint(format, FgGreen, a...) }\n\n// Yellow is a convenient helper function to print with yellow foreground.\n// A newline is appended to format by default.\nfunc Yellow(format string, a ...interface{}) { colorPrint(format, FgYellow, a...) }\n\n// Blue is a convenient helper function to print with blue foreground. A\n// newline is appended to format by default.\nfunc Blue(format string, a ...interface{}) { colorPrint(format, FgBlue, a...) }\n\n// Magenta is a convenient helper function to print with magenta foreground.\n// A newline is appended to format by default.\nfunc Magenta(format string, a ...interface{}) { colorPrint(format, FgMagenta, a...) }\n\n// Cyan is a convenient helper function to print with cyan foreground. A\n// newline is appended to format by default.\nfunc Cyan(format string, a ...interface{}) { colorPrint(format, FgCyan, a...) }\n\n// White is a convenient helper function to print with white foreground. A\n// newline is appended to format by default.\nfunc White(format string, a ...interface{}) { colorPrint(format, FgWhite, a...) }\n\n// BlackString is a convenient helper function to return a string with black\n// foreground.\nfunc BlackString(format string, a ...interface{}) string { return colorString(format, FgBlack, a...) }\n\n// RedString is a convenient helper function to return a string with red\n// foreground.\nfunc RedString(format string, a ...interface{}) string { return colorString(format, FgRed, a...) }\n\n// GreenString is a convenient helper function to return a string with green\n// foreground.\nfunc GreenString(format string, a ...interface{}) string { return colorString(format, FgGreen, a...) }\n\n// YellowString is a convenient helper function to return a string with yellow\n// foreground.\nfunc YellowString(format string, a ...interface{}) string { return colorString(format, FgYellow, a...) }\n\n// BlueString is a convenient helper function to return a string with blue\n// foreground.\nfunc BlueString(format string, a ...interface{}) string { return colorString(format, FgBlue, a...) }\n\n// MagentaString is a convenient helper function to return a string with magenta\n// foreground.\nfunc MagentaString(format string, a ...interface{}) string {\n\treturn colorString(format, FgMagenta, a...)\n}\n\n// CyanString is a convenient helper function to return a string with cyan\n// foreground.\nfunc CyanString(format string, a ...interface{}) string { return colorString(format, FgCyan, a...) }\n\n// WhiteString is a convenient helper function to return a string with white\n// foreground.\nfunc WhiteString(format string, a ...interface{}) string { return colorString(format, FgWhite, a...) }\n\n// HiBlack is a convenient helper function to print with hi-intensity black foreground. A\n// newline is appended to format by default.\nfunc HiBlack(format string, a ...interface{}) { colorPrint(format, FgHiBlack, a...) }\n\n// HiRed is a convenient helper function to print with hi-intensity red foreground. A\n// newline is appended to format by default.\nfunc HiRed(format string, a ...interface{}) { colorPrint(format, FgHiRed, a...) }\n\n// HiGreen is a convenient helper function to print with hi-intensity green foreground. A\n// newline is appended to format by default.\nfunc HiGreen(format string, a ...interface{}) { colorPrint(format, FgHiGreen, a...) }\n\n// HiYellow is a convenient helper function to print with hi-intensity yellow foreground.\n// A newline is appended to format by default.\nfunc HiYellow(format string, a ...interface{}) { colorPrint(format, FgHiYellow, a...) }\n\n// HiBlue is a convenient helper function to print with hi-intensity blue foreground. A\n// newline is appended to format by default.\nfunc HiBlue(format string, a ...interface{}) { colorPrint(format, FgHiBlue, a...) }\n\n// HiMagenta is a convenient helper function to print with hi-intensity magenta foreground.\n// A newline is appended to format by default.\nfunc HiMagenta(format string, a ...interface{}) { colorPrint(format, FgHiMagenta, a...) }\n\n// HiCyan is a convenient helper function to print with hi-intensity cyan foreground. A\n// newline is appended to format by default.\nfunc HiCyan(format string, a ...interface{}) { colorPrint(format, FgHiCyan, a...) }\n\n// HiWhite is a convenient helper function to print with hi-intensity white foreground. A\n// newline is appended to format by default.\nfunc HiWhite(format string, a ...interface{}) { colorPrint(format, FgHiWhite, a...) }\n\n// HiBlackString is a convenient helper function to return a string with hi-intensity black\n// foreground.\nfunc HiBlackString(format string, a ...interface{}) string {\n\treturn colorString(format, FgHiBlack, a...)\n}\n\n// HiRedString is a convenient helper function to return a string with hi-intensity red\n// foreground.\nfunc HiRedString(format string, a ...interface{}) string { return colorString(format, FgHiRed, a...) }\n\n// HiGreenString is a convenient helper function to return a string with hi-intensity green\n// foreground.\nfunc HiGreenString(format string, a ...interface{}) string {\n\treturn colorString(format, FgHiGreen, a...)\n}\n\n// HiYellowString is a convenient helper function to return a string with hi-intensity yellow\n// foreground.\nfunc HiYellowString(format string, a ...interface{}) string {\n\treturn colorString(format, FgHiYellow, a...)\n}\n\n// HiBlueString is a convenient helper function to return a string with hi-intensity blue\n// foreground.\nfunc HiBlueString(format string, a ...interface{}) string { return colorString(format, FgHiBlue, a...) }\n\n// HiMagentaString is a convenient helper function to return a string with hi-intensity magenta\n// foreground.\nfunc HiMagentaString(format string, a ...interface{}) string {\n\treturn colorString(format, FgHiMagenta, a...)\n}\n\n// HiCyanString is a convenient helper function to return a string with hi-intensity cyan\n// foreground.\nfunc HiCyanString(format string, a ...interface{}) string { return colorString(format, FgHiCyan, a...) }\n\n// HiWhiteString is a convenient helper function to return a string with hi-intensity white\n// foreground.\nfunc HiWhiteString(format string, a ...interface{}) string {\n\treturn colorString(format, FgHiWhite, a...)\n}\n"
  },
  {
    "path": "vendor/github.com/fatih/color/doc.go",
    "content": "/*\nPackage color is an ANSI color package to output colorized or SGR defined\noutput to the standard output. The API can be used in several way, pick one\nthat suits you.\n\nUse simple and default helper functions with predefined foreground colors:\n\n    color.Cyan(\"Prints text in cyan.\")\n\n    // a newline will be appended automatically\n    color.Blue(\"Prints %s in blue.\", \"text\")\n\n    // More default foreground colors..\n    color.Red(\"We have red\")\n    color.Yellow(\"Yellow color too!\")\n    color.Magenta(\"And many others ..\")\n\n    // Hi-intensity colors\n    color.HiGreen(\"Bright green color.\")\n    color.HiBlack(\"Bright black means gray..\")\n    color.HiWhite(\"Shiny white color!\")\n\nHowever there are times where custom color mixes are required. Below are some\nexamples to create custom color objects and use the print functions of each\nseparate color object.\n\n    // Create a new color object\n    c := color.New(color.FgCyan).Add(color.Underline)\n    c.Println(\"Prints cyan text with an underline.\")\n\n    // Or just add them to New()\n    d := color.New(color.FgCyan, color.Bold)\n    d.Printf(\"This prints bold cyan %s\\n\", \"too!.\")\n\n\n    // Mix up foreground and background colors, create new mixes!\n    red := color.New(color.FgRed)\n\n    boldRed := red.Add(color.Bold)\n    boldRed.Println(\"This will print text in bold red.\")\n\n    whiteBackground := red.Add(color.BgWhite)\n    whiteBackground.Println(\"Red text with White background.\")\n\n    // Use your own io.Writer output\n    color.New(color.FgBlue).Fprintln(myWriter, \"blue color!\")\n\n    blue := color.New(color.FgBlue)\n    blue.Fprint(myWriter, \"This will print text in blue.\")\n\nYou can create PrintXxx functions to simplify even more:\n\n    // Create a custom print function for convenient\n    red := color.New(color.FgRed).PrintfFunc()\n    red(\"warning\")\n    red(\"error: %s\", err)\n\n    // Mix up multiple attributes\n    notice := color.New(color.Bold, color.FgGreen).PrintlnFunc()\n    notice(\"don't forget this...\")\n\nYou can also FprintXxx functions to pass your own io.Writer:\n\n    blue := color.New(FgBlue).FprintfFunc()\n    blue(myWriter, \"important notice: %s\", stars)\n\n    // Mix up with multiple attributes\n    success := color.New(color.Bold, color.FgGreen).FprintlnFunc()\n    success(myWriter, don't forget this...\")\n\n\nOr create SprintXxx functions to mix strings with other non-colorized strings:\n\n    yellow := New(FgYellow).SprintFunc()\n    red := New(FgRed).SprintFunc()\n\n    fmt.Printf(\"this is a %s and this is %s.\\n\", yellow(\"warning\"), red(\"error\"))\n\n    info := New(FgWhite, BgGreen).SprintFunc()\n    fmt.Printf(\"this %s rocks!\\n\", info(\"package\"))\n\nWindows support is enabled by default. All Print functions work as intended.\nHowever only for color.SprintXXX functions, user should use fmt.FprintXXX and\nset the output to color.Output:\n\n    fmt.Fprintf(color.Output, \"Windows support: %s\", color.GreenString(\"PASS\"))\n\n    info := New(FgWhite, BgGreen).SprintFunc()\n    fmt.Fprintf(color.Output, \"this %s rocks!\\n\", info(\"package\"))\n\nUsing with existing code is possible. Just use the Set() method to set the\nstandard output to the given parameters. That way a rewrite of an existing\ncode is not required.\n\n    // Use handy standard colors.\n    color.Set(color.FgYellow)\n\n    fmt.Println(\"Existing text will be now in Yellow\")\n    fmt.Printf(\"This one %s\\n\", \"too\")\n\n    color.Unset() // don't forget to unset\n\n    // You can mix up parameters\n    color.Set(color.FgMagenta, color.Bold)\n    defer color.Unset() // use it in your function\n\n    fmt.Println(\"All text will be now bold magenta.\")\n\nThere might be a case where you want to disable color output (for example to\npipe the standard output of your app to somewhere else). `Color` has support to\ndisable colors both globally and for single color definition. For example\nsuppose you have a CLI app and a `--no-color` bool flag. You can easily disable\nthe color output with:\n\n    var flagNoColor = flag.Bool(\"no-color\", false, \"Disable color output\")\n\n    if *flagNoColor {\n    \tcolor.NoColor = true // disables colorized output\n    }\n\nIt also has support for single color definitions (local). You can\ndisable/enable color output on the fly:\n\n     c := color.New(color.FgCyan)\n     c.Println(\"Prints cyan text\")\n\n     c.DisableColor()\n     c.Println(\"This is printed without any color\")\n\n     c.EnableColor()\n     c.Println(\"This prints again cyan...\")\n*/\npackage color\n"
  },
  {
    "path": "vendor/github.com/felixge/httpsnoop/.gitignore",
    "content": ""
  },
  {
    "path": "vendor/github.com/felixge/httpsnoop/LICENSE.txt",
    "content": "Copyright (c) 2016 Felix Geisendörfer (felix@debuggable.com)\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/felixge/httpsnoop/Makefile",
    "content": ".PHONY: ci generate clean\n\nci: clean generate\n\tgo test -race -v ./...\n\ngenerate:\n\tgo generate .\n\nclean:\n\trm -rf *_generated*.go\n"
  },
  {
    "path": "vendor/github.com/felixge/httpsnoop/README.md",
    "content": "# httpsnoop\n\nPackage httpsnoop provides an easy way to capture http related metrics (i.e.\nresponse time, bytes written, and http status code) from your application's\nhttp.Handlers.\n\nDoing this requires non-trivial wrapping of the http.ResponseWriter interface,\nwhich is also exposed for users interested in a more low-level API.\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/felixge/httpsnoop.svg)](https://pkg.go.dev/github.com/felixge/httpsnoop)\n[![Build Status](https://github.com/felixge/httpsnoop/actions/workflows/main.yaml/badge.svg)](https://github.com/felixge/httpsnoop/actions/workflows/main.yaml)\n\n## Usage Example\n\n```go\n// myH is your app's http handler, perhaps a http.ServeMux or similar.\nvar myH http.Handler\n// wrappedH wraps myH in order to log every request.\nwrappedH := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\tm := httpsnoop.CaptureMetrics(myH, w, r)\n\tlog.Printf(\n\t\t\"%s %s (code=%d dt=%s written=%d)\",\n\t\tr.Method,\n\t\tr.URL,\n\t\tm.Code,\n\t\tm.Duration,\n\t\tm.Written,\n\t)\n})\nhttp.ListenAndServe(\":8080\", wrappedH)\n```\n\n## Why this package exists\n\nInstrumenting an application's http.Handler is surprisingly difficult.\n\nHowever if you google for e.g. \"capture ResponseWriter status code\" you'll find\nlots of advise and code examples that suggest it to be a fairly trivial\nundertaking. Unfortunately everything I've seen so far has a high chance of\nbreaking your application.\n\nThe main problem is that a `http.ResponseWriter` often implements additional\ninterfaces such as `http.Flusher`, `http.CloseNotifier`, `http.Hijacker`, `http.Pusher`, and\n`io.ReaderFrom`. So the naive approach of just wrapping `http.ResponseWriter`\nin your own struct that also implements the `http.ResponseWriter` interface\nwill hide the additional interfaces mentioned above. This has a high change of\nintroducing subtle bugs into any non-trivial application.\n\nAnother approach I've seen people take is to return a struct that implements\nall of the interfaces above. However, that's also problematic, because it's\ndifficult to fake some of these interfaces behaviors when the underlying\n`http.ResponseWriter` doesn't have an implementation. It's also dangerous,\nbecause an application may choose to operate differently, merely because it\ndetects the presence of these additional interfaces.\n\nThis package solves this problem by checking which additional interfaces a\n`http.ResponseWriter` implements, returning a wrapped version implementing the\nexact same set of interfaces.\n\nAdditionally this package properly handles edge cases such as `WriteHeader` not\nbeing called, or called more than once, as well as concurrent calls to\n`http.ResponseWriter` methods, and even calls happening after the wrapped\n`ServeHTTP` has already returned.\n\nUnfortunately this package is not perfect either. It's possible that it is\nstill missing some interfaces provided by the go core (let me know if you find\none), and it won't work for applications adding their own interfaces into the\nmix. You can however use `httpsnoop.Unwrap(w)` to access the underlying\n`http.ResponseWriter` and type-assert the result to its other interfaces.\n\nHowever, hopefully the explanation above has sufficiently scared you of rolling\nyour own solution to this problem. httpsnoop may still break your application,\nbut at least it tries to avoid it as much as possible.\n\nAnyway, the real problem here is that smuggling additional interfaces inside\n`http.ResponseWriter` is a problematic design choice, but it probably goes as\ndeep as the Go language specification itself. But that's okay, I still prefer\nGo over the alternatives ;).\n\n## Performance\n\n```\nBenchmarkBaseline-8      \t   20000\t     94912 ns/op\nBenchmarkCaptureMetrics-8\t   20000\t     95461 ns/op\n```\n\nAs you can see, using `CaptureMetrics` on a vanilla http.Handler introduces an\noverhead of ~500 ns per http request on my machine. However, the margin of\nerror appears to be larger than that, therefor it should be reasonable to\nassume that the overhead introduced by `CaptureMetrics` is absolutely\nnegligible.\n\n## License\n\nMIT\n"
  },
  {
    "path": "vendor/github.com/felixge/httpsnoop/capture_metrics.go",
    "content": "package httpsnoop\n\nimport (\n\t\"io\"\n\t\"net/http\"\n\t\"time\"\n)\n\n// Metrics holds metrics captured from CaptureMetrics.\ntype Metrics struct {\n\t// Code is the first http response code passed to the WriteHeader func of\n\t// the ResponseWriter. If no such call is made, a default code of 200 is\n\t// assumed instead.\n\tCode int\n\t// Duration is the time it took to execute the handler.\n\tDuration time.Duration\n\t// Written is the number of bytes successfully written by the Write or\n\t// ReadFrom function of the ResponseWriter. ResponseWriters may also write\n\t// data to their underlaying connection directly (e.g. headers), but those\n\t// are not tracked. Therefor the number of Written bytes will usually match\n\t// the size of the response body.\n\tWritten int64\n}\n\n// CaptureMetrics wraps the given hnd, executes it with the given w and r, and\n// returns the metrics it captured from it.\nfunc CaptureMetrics(hnd http.Handler, w http.ResponseWriter, r *http.Request) Metrics {\n\treturn CaptureMetricsFn(w, func(ww http.ResponseWriter) {\n\t\thnd.ServeHTTP(ww, r)\n\t})\n}\n\n// CaptureMetricsFn wraps w and calls fn with the wrapped w and returns the\n// resulting metrics. This is very similar to CaptureMetrics (which is just\n// sugar on top of this func), but is a more usable interface if your\n// application doesn't use the Go http.Handler interface.\nfunc CaptureMetricsFn(w http.ResponseWriter, fn func(http.ResponseWriter)) Metrics {\n\tm := Metrics{Code: http.StatusOK}\n\tm.CaptureMetrics(w, fn)\n\treturn m\n}\n\n// CaptureMetrics wraps w and calls fn with the wrapped w and updates\n// Metrics m with the resulting metrics. This is similar to CaptureMetricsFn,\n// but allows one to customize starting Metrics object.\nfunc (m *Metrics) CaptureMetrics(w http.ResponseWriter, fn func(http.ResponseWriter)) {\n\tvar (\n\t\tstart         = time.Now()\n\t\theaderWritten bool\n\t\thooks         = Hooks{\n\t\t\tWriteHeader: func(next WriteHeaderFunc) WriteHeaderFunc {\n\t\t\t\treturn func(code int) {\n\t\t\t\t\tnext(code)\n\n\t\t\t\t\tif !(code >= 100 && code <= 199) && !headerWritten {\n\t\t\t\t\t\tm.Code = code\n\t\t\t\t\t\theaderWritten = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tWrite: func(next WriteFunc) WriteFunc {\n\t\t\t\treturn func(p []byte) (int, error) {\n\t\t\t\t\tn, err := next(p)\n\n\t\t\t\t\tm.Written += int64(n)\n\t\t\t\t\theaderWritten = true\n\t\t\t\t\treturn n, err\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tReadFrom: func(next ReadFromFunc) ReadFromFunc {\n\t\t\t\treturn func(src io.Reader) (int64, error) {\n\t\t\t\t\tn, err := next(src)\n\n\t\t\t\t\theaderWritten = true\n\t\t\t\t\tm.Written += n\n\t\t\t\t\treturn n, err\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t)\n\n\tfn(Wrap(w, hooks))\n\tm.Duration += time.Since(start)\n}\n"
  },
  {
    "path": "vendor/github.com/felixge/httpsnoop/docs.go",
    "content": "// Package httpsnoop provides an easy way to capture http related metrics (i.e.\n// response time, bytes written, and http status code) from your application's\n// http.Handlers.\n//\n// Doing this requires non-trivial wrapping of the http.ResponseWriter\n// interface, which is also exposed for users interested in a more low-level\n// API.\npackage httpsnoop\n\n//go:generate go run codegen/main.go\n"
  },
  {
    "path": "vendor/github.com/felixge/httpsnoop/wrap_generated_gteq_1.8.go",
    "content": "// +build go1.8\n// Code generated by \"httpsnoop/codegen\"; DO NOT EDIT.\n\npackage httpsnoop\n\nimport (\n\t\"bufio\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n)\n\n// HeaderFunc is part of the http.ResponseWriter interface.\ntype HeaderFunc func() http.Header\n\n// WriteHeaderFunc is part of the http.ResponseWriter interface.\ntype WriteHeaderFunc func(code int)\n\n// WriteFunc is part of the http.ResponseWriter interface.\ntype WriteFunc func(b []byte) (int, error)\n\n// FlushFunc is part of the http.Flusher interface.\ntype FlushFunc func()\n\n// CloseNotifyFunc is part of the http.CloseNotifier interface.\ntype CloseNotifyFunc func() <-chan bool\n\n// HijackFunc is part of the http.Hijacker interface.\ntype HijackFunc func() (net.Conn, *bufio.ReadWriter, error)\n\n// ReadFromFunc is part of the io.ReaderFrom interface.\ntype ReadFromFunc func(src io.Reader) (int64, error)\n\n// PushFunc is part of the http.Pusher interface.\ntype PushFunc func(target string, opts *http.PushOptions) error\n\n// Hooks defines a set of method interceptors for methods included in\n// http.ResponseWriter as well as some others. You can think of them as\n// middleware for the function calls they target. See Wrap for more details.\ntype Hooks struct {\n\tHeader      func(HeaderFunc) HeaderFunc\n\tWriteHeader func(WriteHeaderFunc) WriteHeaderFunc\n\tWrite       func(WriteFunc) WriteFunc\n\tFlush       func(FlushFunc) FlushFunc\n\tCloseNotify func(CloseNotifyFunc) CloseNotifyFunc\n\tHijack      func(HijackFunc) HijackFunc\n\tReadFrom    func(ReadFromFunc) ReadFromFunc\n\tPush        func(PushFunc) PushFunc\n}\n\n// Wrap returns a wrapped version of w that provides the exact same interface\n// as w. Specifically if w implements any combination of:\n//\n// - http.Flusher\n// - http.CloseNotifier\n// - http.Hijacker\n// - io.ReaderFrom\n// - http.Pusher\n//\n// The wrapped version will implement the exact same combination. If no hooks\n// are set, the wrapped version also behaves exactly as w. Hooks targeting\n// methods not supported by w are ignored. Any other hooks will intercept the\n// method they target and may modify the call's arguments and/or return values.\n// The CaptureMetrics implementation serves as a working example for how the\n// hooks can be used.\nfunc Wrap(w http.ResponseWriter, hooks Hooks) http.ResponseWriter {\n\trw := &rw{w: w, h: hooks}\n\t_, i0 := w.(http.Flusher)\n\t_, i1 := w.(http.CloseNotifier)\n\t_, i2 := w.(http.Hijacker)\n\t_, i3 := w.(io.ReaderFrom)\n\t_, i4 := w.(http.Pusher)\n\tswitch {\n\t// combination 1/32\n\tcase !i0 && !i1 && !i2 && !i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t}{rw, rw}\n\t// combination 2/32\n\tcase !i0 && !i1 && !i2 && !i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw}\n\t// combination 3/32\n\tcase !i0 && !i1 && !i2 && i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw}\n\t// combination 4/32\n\tcase !i0 && !i1 && !i2 && i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\tio.ReaderFrom\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw}\n\t// combination 5/32\n\tcase !i0 && !i1 && i2 && !i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Hijacker\n\t\t}{rw, rw, rw}\n\t// combination 6/32\n\tcase !i0 && !i1 && i2 && !i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Hijacker\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw}\n\t// combination 7/32\n\tcase !i0 && !i1 && i2 && i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw}\n\t// combination 8/32\n\tcase !i0 && !i1 && i2 && i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 9/32\n\tcase !i0 && i1 && !i2 && !i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t}{rw, rw, rw}\n\t// combination 10/32\n\tcase !i0 && i1 && !i2 && !i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw}\n\t// combination 11/32\n\tcase !i0 && i1 && !i2 && i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw}\n\t// combination 12/32\n\tcase !i0 && i1 && !i2 && i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t\tio.ReaderFrom\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 13/32\n\tcase !i0 && i1 && i2 && !i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t}{rw, rw, rw, rw}\n\t// combination 14/32\n\tcase !i0 && i1 && i2 && !i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 15/32\n\tcase !i0 && i1 && i2 && i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 16/32\n\tcase !i0 && i1 && i2 && i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw, rw, rw}\n\t// combination 17/32\n\tcase i0 && !i1 && !i2 && !i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t}{rw, rw, rw}\n\t// combination 18/32\n\tcase i0 && !i1 && !i2 && !i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw}\n\t// combination 19/32\n\tcase i0 && !i1 && !i2 && i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw}\n\t// combination 20/32\n\tcase i0 && !i1 && !i2 && i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\tio.ReaderFrom\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 21/32\n\tcase i0 && !i1 && i2 && !i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.Hijacker\n\t\t}{rw, rw, rw, rw}\n\t// combination 22/32\n\tcase i0 && !i1 && i2 && !i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.Hijacker\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 23/32\n\tcase i0 && !i1 && i2 && i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 24/32\n\tcase i0 && !i1 && i2 && i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw, rw, rw}\n\t// combination 25/32\n\tcase i0 && i1 && !i2 && !i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t}{rw, rw, rw, rw}\n\t// combination 26/32\n\tcase i0 && i1 && !i2 && !i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 27/32\n\tcase i0 && i1 && !i2 && i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 28/32\n\tcase i0 && i1 && !i2 && i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t\tio.ReaderFrom\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw, rw, rw}\n\t// combination 29/32\n\tcase i0 && i1 && i2 && !i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 30/32\n\tcase i0 && i1 && i2 && !i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw, rw, rw}\n\t// combination 31/32\n\tcase i0 && i1 && i2 && i3 && !i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw, rw, rw}\n\t// combination 32/32\n\tcase i0 && i1 && i2 && i3 && i4:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t\thttp.Pusher\n\t\t}{rw, rw, rw, rw, rw, rw, rw}\n\t}\n\tpanic(\"unreachable\")\n}\n\ntype rw struct {\n\tw http.ResponseWriter\n\th Hooks\n}\n\nfunc (w *rw) Unwrap() http.ResponseWriter {\n\treturn w.w\n}\n\nfunc (w *rw) Header() http.Header {\n\tf := w.w.(http.ResponseWriter).Header\n\tif w.h.Header != nil {\n\t\tf = w.h.Header(f)\n\t}\n\treturn f()\n}\n\nfunc (w *rw) WriteHeader(code int) {\n\tf := w.w.(http.ResponseWriter).WriteHeader\n\tif w.h.WriteHeader != nil {\n\t\tf = w.h.WriteHeader(f)\n\t}\n\tf(code)\n}\n\nfunc (w *rw) Write(b []byte) (int, error) {\n\tf := w.w.(http.ResponseWriter).Write\n\tif w.h.Write != nil {\n\t\tf = w.h.Write(f)\n\t}\n\treturn f(b)\n}\n\nfunc (w *rw) Flush() {\n\tf := w.w.(http.Flusher).Flush\n\tif w.h.Flush != nil {\n\t\tf = w.h.Flush(f)\n\t}\n\tf()\n}\n\nfunc (w *rw) CloseNotify() <-chan bool {\n\tf := w.w.(http.CloseNotifier).CloseNotify\n\tif w.h.CloseNotify != nil {\n\t\tf = w.h.CloseNotify(f)\n\t}\n\treturn f()\n}\n\nfunc (w *rw) Hijack() (net.Conn, *bufio.ReadWriter, error) {\n\tf := w.w.(http.Hijacker).Hijack\n\tif w.h.Hijack != nil {\n\t\tf = w.h.Hijack(f)\n\t}\n\treturn f()\n}\n\nfunc (w *rw) ReadFrom(src io.Reader) (int64, error) {\n\tf := w.w.(io.ReaderFrom).ReadFrom\n\tif w.h.ReadFrom != nil {\n\t\tf = w.h.ReadFrom(f)\n\t}\n\treturn f(src)\n}\n\nfunc (w *rw) Push(target string, opts *http.PushOptions) error {\n\tf := w.w.(http.Pusher).Push\n\tif w.h.Push != nil {\n\t\tf = w.h.Push(f)\n\t}\n\treturn f(target, opts)\n}\n\ntype Unwrapper interface {\n\tUnwrap() http.ResponseWriter\n}\n\n// Unwrap returns the underlying http.ResponseWriter from within zero or more\n// layers of httpsnoop wrappers.\nfunc Unwrap(w http.ResponseWriter) http.ResponseWriter {\n\tif rw, ok := w.(Unwrapper); ok {\n\t\t// recurse until rw.Unwrap() returns a non-Unwrapper\n\t\treturn Unwrap(rw.Unwrap())\n\t} else {\n\t\treturn w\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/felixge/httpsnoop/wrap_generated_lt_1.8.go",
    "content": "// +build !go1.8\n// Code generated by \"httpsnoop/codegen\"; DO NOT EDIT.\n\npackage httpsnoop\n\nimport (\n\t\"bufio\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n)\n\n// HeaderFunc is part of the http.ResponseWriter interface.\ntype HeaderFunc func() http.Header\n\n// WriteHeaderFunc is part of the http.ResponseWriter interface.\ntype WriteHeaderFunc func(code int)\n\n// WriteFunc is part of the http.ResponseWriter interface.\ntype WriteFunc func(b []byte) (int, error)\n\n// FlushFunc is part of the http.Flusher interface.\ntype FlushFunc func()\n\n// CloseNotifyFunc is part of the http.CloseNotifier interface.\ntype CloseNotifyFunc func() <-chan bool\n\n// HijackFunc is part of the http.Hijacker interface.\ntype HijackFunc func() (net.Conn, *bufio.ReadWriter, error)\n\n// ReadFromFunc is part of the io.ReaderFrom interface.\ntype ReadFromFunc func(src io.Reader) (int64, error)\n\n// Hooks defines a set of method interceptors for methods included in\n// http.ResponseWriter as well as some others. You can think of them as\n// middleware for the function calls they target. See Wrap for more details.\ntype Hooks struct {\n\tHeader      func(HeaderFunc) HeaderFunc\n\tWriteHeader func(WriteHeaderFunc) WriteHeaderFunc\n\tWrite       func(WriteFunc) WriteFunc\n\tFlush       func(FlushFunc) FlushFunc\n\tCloseNotify func(CloseNotifyFunc) CloseNotifyFunc\n\tHijack      func(HijackFunc) HijackFunc\n\tReadFrom    func(ReadFromFunc) ReadFromFunc\n}\n\n// Wrap returns a wrapped version of w that provides the exact same interface\n// as w. Specifically if w implements any combination of:\n//\n// - http.Flusher\n// - http.CloseNotifier\n// - http.Hijacker\n// - io.ReaderFrom\n//\n// The wrapped version will implement the exact same combination. If no hooks\n// are set, the wrapped version also behaves exactly as w. Hooks targeting\n// methods not supported by w are ignored. Any other hooks will intercept the\n// method they target and may modify the call's arguments and/or return values.\n// The CaptureMetrics implementation serves as a working example for how the\n// hooks can be used.\nfunc Wrap(w http.ResponseWriter, hooks Hooks) http.ResponseWriter {\n\trw := &rw{w: w, h: hooks}\n\t_, i0 := w.(http.Flusher)\n\t_, i1 := w.(http.CloseNotifier)\n\t_, i2 := w.(http.Hijacker)\n\t_, i3 := w.(io.ReaderFrom)\n\tswitch {\n\t// combination 1/16\n\tcase !i0 && !i1 && !i2 && !i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t}{rw, rw}\n\t// combination 2/16\n\tcase !i0 && !i1 && !i2 && i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw}\n\t// combination 3/16\n\tcase !i0 && !i1 && i2 && !i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Hijacker\n\t\t}{rw, rw, rw}\n\t// combination 4/16\n\tcase !i0 && !i1 && i2 && i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw}\n\t// combination 5/16\n\tcase !i0 && i1 && !i2 && !i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t}{rw, rw, rw}\n\t// combination 6/16\n\tcase !i0 && i1 && !i2 && i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw}\n\t// combination 7/16\n\tcase !i0 && i1 && i2 && !i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t}{rw, rw, rw, rw}\n\t// combination 8/16\n\tcase !i0 && i1 && i2 && i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 9/16\n\tcase i0 && !i1 && !i2 && !i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t}{rw, rw, rw}\n\t// combination 10/16\n\tcase i0 && !i1 && !i2 && i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw}\n\t// combination 11/16\n\tcase i0 && !i1 && i2 && !i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.Hijacker\n\t\t}{rw, rw, rw, rw}\n\t// combination 12/16\n\tcase i0 && !i1 && i2 && i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 13/16\n\tcase i0 && i1 && !i2 && !i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t}{rw, rw, rw, rw}\n\t// combination 14/16\n\tcase i0 && i1 && !i2 && i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 15/16\n\tcase i0 && i1 && i2 && !i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t}{rw, rw, rw, rw, rw}\n\t// combination 16/16\n\tcase i0 && i1 && i2 && i3:\n\t\treturn struct {\n\t\t\tUnwrapper\n\t\t\thttp.ResponseWriter\n\t\t\thttp.Flusher\n\t\t\thttp.CloseNotifier\n\t\t\thttp.Hijacker\n\t\t\tio.ReaderFrom\n\t\t}{rw, rw, rw, rw, rw, rw}\n\t}\n\tpanic(\"unreachable\")\n}\n\ntype rw struct {\n\tw http.ResponseWriter\n\th Hooks\n}\n\nfunc (w *rw) Unwrap() http.ResponseWriter {\n\treturn w.w\n}\n\nfunc (w *rw) Header() http.Header {\n\tf := w.w.(http.ResponseWriter).Header\n\tif w.h.Header != nil {\n\t\tf = w.h.Header(f)\n\t}\n\treturn f()\n}\n\nfunc (w *rw) WriteHeader(code int) {\n\tf := w.w.(http.ResponseWriter).WriteHeader\n\tif w.h.WriteHeader != nil {\n\t\tf = w.h.WriteHeader(f)\n\t}\n\tf(code)\n}\n\nfunc (w *rw) Write(b []byte) (int, error) {\n\tf := w.w.(http.ResponseWriter).Write\n\tif w.h.Write != nil {\n\t\tf = w.h.Write(f)\n\t}\n\treturn f(b)\n}\n\nfunc (w *rw) Flush() {\n\tf := w.w.(http.Flusher).Flush\n\tif w.h.Flush != nil {\n\t\tf = w.h.Flush(f)\n\t}\n\tf()\n}\n\nfunc (w *rw) CloseNotify() <-chan bool {\n\tf := w.w.(http.CloseNotifier).CloseNotify\n\tif w.h.CloseNotify != nil {\n\t\tf = w.h.CloseNotify(f)\n\t}\n\treturn f()\n}\n\nfunc (w *rw) Hijack() (net.Conn, *bufio.ReadWriter, error) {\n\tf := w.w.(http.Hijacker).Hijack\n\tif w.h.Hijack != nil {\n\t\tf = w.h.Hijack(f)\n\t}\n\treturn f()\n}\n\nfunc (w *rw) ReadFrom(src io.Reader) (int64, error) {\n\tf := w.w.(io.ReaderFrom).ReadFrom\n\tif w.h.ReadFrom != nil {\n\t\tf = w.h.ReadFrom(f)\n\t}\n\treturn f(src)\n}\n\ntype Unwrapper interface {\n\tUnwrap() http.ResponseWriter\n}\n\n// Unwrap returns the underlying http.ResponseWriter from within zero or more\n// layers of httpsnoop wrappers.\nfunc Unwrap(w http.ResponseWriter) http.ResponseWriter {\n\tif rw, ok := w.(Unwrapper); ok {\n\t\t// recurse until rw.Unwrap() returns a non-Unwrapper\n\t\treturn Unwrap(rw.Unwrap())\n\t} else {\n\t\treturn w\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/fvbommel/sortorder/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n# Folders\n_obj\n_test\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n_testmain.go\n*.exe\n*.test\n*.prof\n"
  },
  {
    "path": "vendor/github.com/fvbommel/sortorder/LICENSE",
    "content": "The MIT License (MIT)\nCopyright (c) 2015 Frits van Bommel\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/fvbommel/sortorder/README.md",
    "content": "# sortorder [![PkgGoDev](https://pkg.go.dev/badge/github.com/fvbommel/sortorder)](https://pkg.go.dev/github.com/fvbommel/sortorder)\n\n    import \"github.com/fvbommel/sortorder\"\n\nSort orders and comparison functions.\n\nCase-insensitive sort orders are in the `casefolded` sub-package\nbecause it pulls in the Unicode tables in the standard library,\nwhich can add significantly to the size of binaries.\n"
  },
  {
    "path": "vendor/github.com/fvbommel/sortorder/doc.go",
    "content": "// Package sortorder implements sort orders and comparison functions.\n//\n// Currently, it only implements so-called \"natural order\", where integers\n// embedded in strings are compared by value.\npackage sortorder // import \"github.com/fvbommel/sortorder\"\n"
  },
  {
    "path": "vendor/github.com/fvbommel/sortorder/natsort.go",
    "content": "package sortorder\n\n// Natural implements sort.Interface to sort strings in natural order. This\n// means that e.g. \"abc2\" < \"abc12\".\n//\n// Non-digit sequences and numbers are compared separately. The former are\n// compared bytewise, while digits are compared numerically (except that\n// the number of leading zeros is used as a tie-breaker, so e.g. \"2\" < \"02\")\n//\n// Limitation: only ASCII digits (0-9) are considered.\ntype Natural []string\n\nfunc (n Natural) Len() int           { return len(n) }\nfunc (n Natural) Swap(i, j int)      { n[i], n[j] = n[j], n[i] }\nfunc (n Natural) Less(i, j int) bool { return NaturalLess(n[i], n[j]) }\n\nfunc isDigit(b byte) bool { return '0' <= b && b <= '9' }\n\n// NaturalLess compares two strings using natural ordering. This means that e.g.\n// \"abc2\" < \"abc12\".\n//\n// Non-digit sequences and numbers are compared separately. The former are\n// compared bytewise, while digits are compared numerically (except that\n// the number of leading zeros is used as a tie-breaker, so e.g. \"2\" < \"02\")\n//\n// Limitation: only ASCII digits (0-9) are considered.\nfunc NaturalLess(str1, str2 string) bool {\n\tidx1, idx2 := 0, 0\n\tfor idx1 < len(str1) && idx2 < len(str2) {\n\t\tc1, c2 := str1[idx1], str2[idx2]\n\t\tdig1, dig2 := isDigit(c1), isDigit(c2)\n\t\tswitch {\n\t\tcase dig1 != dig2: // Digits before other characters.\n\t\t\treturn dig1 // True if LHS is a digit, false if the RHS is one.\n\t\tcase !dig1: // && !dig2, because dig1 == dig2\n\t\t\t// UTF-8 compares bytewise-lexicographically, no need to decode\n\t\t\t// codepoints.\n\t\t\tif c1 != c2 {\n\t\t\t\treturn c1 < c2\n\t\t\t}\n\t\t\tidx1++\n\t\t\tidx2++\n\t\tdefault: // Digits\n\t\t\t// Eat zeros.\n\t\t\tfor ; idx1 < len(str1) && str1[idx1] == '0'; idx1++ {\n\t\t\t}\n\t\t\tfor ; idx2 < len(str2) && str2[idx2] == '0'; idx2++ {\n\t\t\t}\n\t\t\t// Eat all digits.\n\t\t\tnonZero1, nonZero2 := idx1, idx2\n\t\t\tfor ; idx1 < len(str1) && isDigit(str1[idx1]); idx1++ {\n\t\t\t}\n\t\t\tfor ; idx2 < len(str2) && isDigit(str2[idx2]); idx2++ {\n\t\t\t}\n\t\t\t// If lengths of numbers with non-zero prefix differ, the shorter\n\t\t\t// one is less.\n\t\t\tif len1, len2 := idx1-nonZero1, idx2-nonZero2; len1 != len2 {\n\t\t\t\treturn len1 < len2\n\t\t\t}\n\t\t\t// If they're equally long, string comparison is correct.\n\t\t\tif nr1, nr2 := str1[nonZero1:idx1], str2[nonZero2:idx2]; nr1 != nr2 {\n\t\t\t\treturn nr1 < nr2\n\t\t\t}\n\t\t\t// Otherwise, the one with less zeros is less.\n\t\t\t// Because everything up to the number is equal, comparing the index\n\t\t\t// after the zeros is sufficient.\n\t\t\tif nonZero1 != nonZero2 {\n\t\t\t\treturn nonZero1 < nonZero2\n\t\t\t}\n\t\t}\n\t\t// They're identical so far, so continue comparing.\n\t}\n\t// So far they are identical. At least one is ended. If the other continues,\n\t// it sorts last.\n\treturn len(str1) < len(str2)\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/.appveyor.yml",
    "content": "version: 1.0.{build}\nclone_folder: c:\\gopath\\src\\github.com\\gdamore\\encoding\nenvironment:\n  GOPATH: c:\\gopath\nbuild_script:\n- go version\n- go env\n- SET PATH=%LOCALAPPDATA%\\atom\\bin;%GOPATH%\\bin;%PATH%\n- go get -t ./...\n- go build\n- go install ./...\ntest_script:\n- go test ./...\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\n  advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at garrett@damore.org. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html\n\n[homepage]: https://www.contributor-covenant.org\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/README.md",
    "content": "## encoding\n\n\n[![Linux](https://img.shields.io/github/actions/workflow/status/gdamore/encoding/linux.yml?branch=main&logoColor=grey&logo=linux&label=)](https://github.com/gdamore/encoding/actions/workflows/linux.yml)\n[![Windows](https://img.shields.io/github/actions/workflow/status/gdamore/encoding/windows.yml?branch=main&logoColor=grey&logo=windows&label=)](https://github.com/gdamore/encoding/actions/workflows/windows.yml)\n[![Apache License](https://img.shields.io/github/license/gdamore/encoding.svg?logoColor=silver&logo=opensourceinitiative&color=blue&label=)](https://github.com/gdamore/encoding/blob/master/LICENSE)\n[![Coverage](https://img.shields.io/codecov/c/github/gdamore/encoding?logoColor=grey&logo=codecov&label=)](https://codecov.io/gh/gdamore/encoding)\n[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](https://godoc.org/github.com/gdamore/encoding)\n\nPackage encoding provides a number of encodings that are missing from the\nstandard Go [encoding](\"https://godoc.org/golang.org/x/text/encoding\") package.\n\nWe hope that we can contribute these to the standard Go library someday.  It\nturns out that some of these are useful for dealing with I/O streams coming\nfrom non-UTF friendly sources.\n\nThe UTF8 Encoder is also useful for situations where valid UTF-8 might be\ncarried in streams that contain non-valid UTF; in particular I use it for\nhelping me cope with terminals that embed escape sequences in otherwise\nvalid UTF-8.\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/SECURITY.md",
    "content": "# Security Policy\n\nWe take security very seriously in mangos, since you may be using it in\nInternet-facing applications.\n\n## Reporting a Vulnerability\n\nTo report a vulnerability, please contact us on our discord.\nYou may also send an email to garrett@damore.org, or info@staysail.tech.\n\nWe will keep the reporter updated on any status updates on a regular basis,\nand will respond within two business days for any reported security issue.\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/ascii.go",
    "content": "// Copyright 2015 Garrett D'Amore\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage encoding\n\nimport (\n\t\"golang.org/x/text/encoding\"\n)\n\n// ASCII represents the 7-bit US-ASCII scheme.  It decodes directly to\n// UTF-8 without change, as all ASCII values are legal UTF-8.\n// Unicode values less than 128 (i.e. 7 bits) map 1:1 with ASCII.\n// It encodes runes outside of that to 0x1A, the ASCII substitution character.\nvar ASCII encoding.Encoding\n\nfunc init() {\n\tamap := make(map[byte]rune)\n\tfor i := 128; i <= 255; i++ {\n\t\tamap[byte(i)] = RuneError\n\t}\n\n\tcm := &Charmap{Map: amap}\n\tcm.Init()\n\tASCII = cm\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/charmap.go",
    "content": "// Copyright 2024 Garrett D'Amore\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage encoding\n\nimport (\n\t\"sync\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/encoding\"\n\t\"golang.org/x/text/transform\"\n)\n\nconst (\n\t// RuneError is an alias for the UTF-8 replacement rune, '\\uFFFD'.\n\tRuneError = '\\uFFFD'\n\n\t// RuneSelf is the rune below which UTF-8 and the Unicode values are\n\t// identical.  Its also the limit for ASCII.\n\tRuneSelf = 0x80\n\n\t// ASCIISub is the ASCII substitution character.\n\tASCIISub = '\\x1a'\n)\n\n// Charmap is a structure for setting up encodings for 8-bit character sets,\n// for transforming between UTF8 and that other character set.  It has some\n// ideas borrowed from golang.org/x/text/encoding/charmap, but it uses a\n// different implementation.  This implementation uses maps, and supports\n// user-defined maps.\n//\n// We do assume that a character map has a reasonable substitution character,\n// and that valid encodings are stable (exactly a 1:1 map) and stateless\n// (that is there is no shift character or anything like that.)  Hence this\n// approach will not work for many East Asian character sets.\n//\n// Measurement shows little or no measurable difference in the performance of\n// the two approaches.  The difference was down to a couple of nsec/op, and\n// no consistent pattern as to which ran faster.  With the conversion to\n// UTF-8 the code takes about 25 nsec/op.  The conversion in the reverse\n// direction takes about 100 nsec/op.  (The larger cost for conversion\n// from UTF-8 is most likely due to the need to convert the UTF-8 byte stream\n// to a rune before conversion.\ntype Charmap struct {\n\ttransform.NopResetter\n\tbytes map[rune]byte\n\trunes [256][]byte\n\tonce  sync.Once\n\n\t// The map between bytes and runes.  To indicate that a specific\n\t// byte value is invalid for a charcter set, use the rune\n\t// utf8.RuneError.  Values that are absent from this map will\n\t// be assumed to have the identity mapping -- that is the default\n\t// is to assume ISO8859-1, where all 8-bit characters have the same\n\t// numeric value as their Unicode runes.  (Not to be confused with\n\t// the UTF-8 values, which *will* be different for non-ASCII runes.)\n\t//\n\t// If no values less than RuneSelf are changed (or have non-identity\n\t// mappings), then the character set is assumed to be an ASCII\n\t// superset, and certain assumptions and optimizations become\n\t// available for ASCII bytes.\n\tMap map[byte]rune\n\n\t// The ReplacementChar is the byte value to use for substitution.\n\t// It should normally be ASCIISub for ASCII encodings.  This may be\n\t// unset (left to zero) for mappings that are strictly ASCII supersets.\n\t// In that case ASCIISub will be assumed instead.\n\tReplacementChar byte\n}\n\ntype cmapDecoder struct {\n\ttransform.NopResetter\n\trunes [256][]byte\n}\n\ntype cmapEncoder struct {\n\ttransform.NopResetter\n\tbytes   map[rune]byte\n\treplace byte\n}\n\n// Init initializes internal values of a character map.  This should\n// be done early, to minimize the cost of allocation of transforms\n// later.  It is not strictly necessary however, as the allocation\n// functions will arrange to call it if it has not already been done.\nfunc (c *Charmap) Init() {\n\tc.once.Do(c.initialize)\n}\n\nfunc (c *Charmap) initialize() {\n\tc.bytes = make(map[rune]byte)\n\tascii := true\n\n\tfor i := 0; i < 256; i++ {\n\t\tr, ok := c.Map[byte(i)]\n\t\tif !ok {\n\t\t\tr = rune(i)\n\t\t}\n\t\tif r < 128 && r != rune(i) {\n\t\t\tascii = false\n\t\t}\n\t\tif r != RuneError {\n\t\t\tc.bytes[r] = byte(i)\n\t\t}\n\t\tutf := make([]byte, utf8.RuneLen(r))\n\t\tutf8.EncodeRune(utf, r)\n\t\tc.runes[i] = utf\n\t}\n\tif ascii && c.ReplacementChar == '\\x00' {\n\t\tc.ReplacementChar = ASCIISub\n\t}\n}\n\n// NewDecoder returns a Decoder the converts from the 8-bit\n// character set to UTF-8.  Unknown mappings, if any, are mapped\n// to '\\uFFFD'.\nfunc (c *Charmap) NewDecoder() *encoding.Decoder {\n\tc.Init()\n\treturn &encoding.Decoder{Transformer: &cmapDecoder{runes: c.runes}}\n}\n\n// NewEncoder returns a Transformer that converts from UTF8 to the\n// 8-bit character set.  Unknown mappings are mapped to 0x1A.\nfunc (c *Charmap) NewEncoder() *encoding.Encoder {\n\tc.Init()\n\treturn &encoding.Encoder{\n\t\tTransformer: &cmapEncoder{\n\t\t\tbytes:   c.bytes,\n\t\t\treplace: c.ReplacementChar,\n\t\t},\n\t}\n}\n\nfunc (d *cmapDecoder) Transform(dst, src []byte, atEOF bool) (int, int, error) {\n\tvar e error\n\tvar ndst, nsrc int\n\n\tfor _, c := range src {\n\t\tb := d.runes[c]\n\t\tl := len(b)\n\n\t\tif ndst+l > len(dst) {\n\t\t\te = transform.ErrShortDst\n\t\t\tbreak\n\t\t}\n\t\tfor i := 0; i < l; i++ {\n\t\t\tdst[ndst] = b[i]\n\t\t\tndst++\n\t\t}\n\t\tnsrc++\n\t}\n\treturn ndst, nsrc, e\n}\n\nfunc (d *cmapEncoder) Transform(dst, src []byte, atEOF bool) (int, int, error) {\n\tvar e error\n\tvar ndst, nsrc int\n\tfor nsrc < len(src) {\n\t\tif ndst >= len(dst) {\n\t\t\te = transform.ErrShortDst\n\t\t\tbreak\n\t\t}\n\n\t\tr, sz := utf8.DecodeRune(src[nsrc:])\n\t\tif r == utf8.RuneError && sz == 1 {\n\t\t\t// If its inconclusive due to insufficient data in\n\t\t\t// in the source, report it\n\t\t\tif atEOF && !utf8.FullRune(src[nsrc:]) {\n\t\t\t\te = transform.ErrShortSrc\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif c, ok := d.bytes[r]; ok {\n\t\t\tdst[ndst] = c\n\t\t} else {\n\t\t\tdst[ndst] = d.replace\n\t\t}\n\t\tnsrc += sz\n\t\tndst++\n\t}\n\n\treturn ndst, nsrc, e\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/doc.go",
    "content": "// Copyright 2015 Garrett D'Amore\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package encoding provides a few of the encoding structures that are\n// missing from the Go x/text/encoding tree.\npackage encoding\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/ebcdic.go",
    "content": "// Copyright 2015 Garrett D'Amore\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage encoding\n\nimport (\n\t\"golang.org/x/text/encoding\"\n)\n\n// EBCDIC represents the 8-bit EBCDIC scheme, found in some mainframe\n// environments.  If you don't know what this is, consider yourself lucky.\nvar EBCDIC encoding.Encoding\n\nfunc init() {\n\tcm := &Charmap{\n\t\tReplacementChar: '\\x3f',\n\t\tMap: map[byte]rune{\n\t\t\t// 0x00-0x03 match\n\t\t\t0x04: RuneError,\n\t\t\t0x05: '\\t',\n\t\t\t0x06: RuneError,\n\t\t\t0x07: '\\x7f',\n\t\t\t0x08: RuneError,\n\t\t\t0x09: RuneError,\n\t\t\t0x0a: RuneError,\n\t\t\t// 0x0b-0x13 match\n\t\t\t0x14: RuneError,\n\t\t\t0x15: '\\x85', // Not in any ISO code\n\t\t\t0x16: '\\x08',\n\t\t\t0x17: RuneError,\n\t\t\t// 0x18-0x19 match\n\t\t\t0x1a: RuneError,\n\t\t\t0x1b: RuneError,\n\t\t\t// 0x1c-0x1f match\n\t\t\t0x20: RuneError,\n\t\t\t0x21: RuneError,\n\t\t\t0x22: RuneError,\n\t\t\t0x23: RuneError,\n\t\t\t0x24: RuneError,\n\t\t\t0x25: '\\n',\n\t\t\t0x26: '\\x17',\n\t\t\t0x27: '\\x1b',\n\t\t\t0x28: RuneError,\n\t\t\t0x29: RuneError,\n\t\t\t0x2a: RuneError,\n\t\t\t0x2b: RuneError,\n\t\t\t0x2c: RuneError,\n\t\t\t0x2d: '\\x05',\n\t\t\t0x2e: '\\x06',\n\t\t\t0x2f: '\\x07',\n\t\t\t0x30: RuneError,\n\t\t\t0x31: RuneError,\n\t\t\t0x32: '\\x16',\n\t\t\t0x33: RuneError,\n\t\t\t0x34: RuneError,\n\t\t\t0x35: RuneError,\n\t\t\t0x36: RuneError,\n\t\t\t0x37: '\\x04',\n\t\t\t0x38: RuneError,\n\t\t\t0x39: RuneError,\n\t\t\t0x3a: RuneError,\n\t\t\t0x3b: RuneError,\n\t\t\t0x3c: '\\x14',\n\t\t\t0x3d: '\\x15',\n\t\t\t0x3e: RuneError,\n\t\t\t0x3f: '\\x1a', // also replacement char\n\t\t\t0x40: ' ',\n\t\t\t0x41: '\\xa0',\n\t\t\t0x42: RuneError,\n\t\t\t0x43: RuneError,\n\t\t\t0x44: RuneError,\n\t\t\t0x45: RuneError,\n\t\t\t0x46: RuneError,\n\t\t\t0x47: RuneError,\n\t\t\t0x48: RuneError,\n\t\t\t0x49: RuneError,\n\t\t\t0x4a: RuneError,\n\t\t\t0x4b: '.',\n\t\t\t0x4c: '<',\n\t\t\t0x4d: '(',\n\t\t\t0x4e: '+',\n\t\t\t0x4f: '|',\n\t\t\t0x50: '&',\n\t\t\t0x51: RuneError,\n\t\t\t0x52: RuneError,\n\t\t\t0x53: RuneError,\n\t\t\t0x54: RuneError,\n\t\t\t0x55: RuneError,\n\t\t\t0x56: RuneError,\n\t\t\t0x57: RuneError,\n\t\t\t0x58: RuneError,\n\t\t\t0x59: RuneError,\n\t\t\t0x5a: '!',\n\t\t\t0x5b: '$',\n\t\t\t0x5c: '*',\n\t\t\t0x5d: ')',\n\t\t\t0x5e: ';',\n\t\t\t0x5f: '¬',\n\t\t\t0x60: '-',\n\t\t\t0x61: '/',\n\t\t\t0x62: RuneError,\n\t\t\t0x63: RuneError,\n\t\t\t0x64: RuneError,\n\t\t\t0x65: RuneError,\n\t\t\t0x66: RuneError,\n\t\t\t0x67: RuneError,\n\t\t\t0x68: RuneError,\n\t\t\t0x69: RuneError,\n\t\t\t0x6a: '¦',\n\t\t\t0x6b: ',',\n\t\t\t0x6c: '%',\n\t\t\t0x6d: '_',\n\t\t\t0x6e: '>',\n\t\t\t0x6f: '?',\n\t\t\t0x70: RuneError,\n\t\t\t0x71: RuneError,\n\t\t\t0x72: RuneError,\n\t\t\t0x73: RuneError,\n\t\t\t0x74: RuneError,\n\t\t\t0x75: RuneError,\n\t\t\t0x76: RuneError,\n\t\t\t0x77: RuneError,\n\t\t\t0x78: RuneError,\n\t\t\t0x79: '`',\n\t\t\t0x7a: ':',\n\t\t\t0x7b: '#',\n\t\t\t0x7c: '@',\n\t\t\t0x7d: '\\'',\n\t\t\t0x7e: '=',\n\t\t\t0x7f: '\"',\n\t\t\t0x80: RuneError,\n\t\t\t0x81: 'a',\n\t\t\t0x82: 'b',\n\t\t\t0x83: 'c',\n\t\t\t0x84: 'd',\n\t\t\t0x85: 'e',\n\t\t\t0x86: 'f',\n\t\t\t0x87: 'g',\n\t\t\t0x88: 'h',\n\t\t\t0x89: 'i',\n\t\t\t0x8a: RuneError,\n\t\t\t0x8b: RuneError,\n\t\t\t0x8c: RuneError,\n\t\t\t0x8d: RuneError,\n\t\t\t0x8e: RuneError,\n\t\t\t0x8f: '±',\n\t\t\t0x90: RuneError,\n\t\t\t0x91: 'j',\n\t\t\t0x92: 'k',\n\t\t\t0x93: 'l',\n\t\t\t0x94: 'm',\n\t\t\t0x95: 'n',\n\t\t\t0x96: 'o',\n\t\t\t0x97: 'p',\n\t\t\t0x98: 'q',\n\t\t\t0x99: 'r',\n\t\t\t0x9a: RuneError,\n\t\t\t0x9b: RuneError,\n\t\t\t0x9c: RuneError,\n\t\t\t0x9d: RuneError,\n\t\t\t0x9e: RuneError,\n\t\t\t0x9f: RuneError,\n\t\t\t0xa0: RuneError,\n\t\t\t0xa1: '~',\n\t\t\t0xa2: 's',\n\t\t\t0xa3: 't',\n\t\t\t0xa4: 'u',\n\t\t\t0xa5: 'v',\n\t\t\t0xa6: 'w',\n\t\t\t0xa7: 'x',\n\t\t\t0xa8: 'y',\n\t\t\t0xa9: 'z',\n\t\t\t0xaa: RuneError,\n\t\t\t0xab: RuneError,\n\t\t\t0xac: RuneError,\n\t\t\t0xad: RuneError,\n\t\t\t0xae: RuneError,\n\t\t\t0xaf: RuneError,\n\t\t\t0xb0: '^',\n\t\t\t0xb1: RuneError,\n\t\t\t0xb2: RuneError,\n\t\t\t0xb3: RuneError,\n\t\t\t0xb4: RuneError,\n\t\t\t0xb5: RuneError,\n\t\t\t0xb6: RuneError,\n\t\t\t0xb7: RuneError,\n\t\t\t0xb8: RuneError,\n\t\t\t0xb9: RuneError,\n\t\t\t0xba: '[',\n\t\t\t0xbb: ']',\n\t\t\t0xbc: RuneError,\n\t\t\t0xbd: RuneError,\n\t\t\t0xbe: RuneError,\n\t\t\t0xbf: RuneError,\n\t\t\t0xc0: '{',\n\t\t\t0xc1: 'A',\n\t\t\t0xc2: 'B',\n\t\t\t0xc3: 'C',\n\t\t\t0xc4: 'D',\n\t\t\t0xc5: 'E',\n\t\t\t0xc6: 'F',\n\t\t\t0xc7: 'G',\n\t\t\t0xc8: 'H',\n\t\t\t0xc9: 'I',\n\t\t\t0xca: '\\xad', // NB: soft hyphen\n\t\t\t0xcb: RuneError,\n\t\t\t0xcc: RuneError,\n\t\t\t0xcd: RuneError,\n\t\t\t0xce: RuneError,\n\t\t\t0xcf: RuneError,\n\t\t\t0xd0: '}',\n\t\t\t0xd1: 'J',\n\t\t\t0xd2: 'K',\n\t\t\t0xd3: 'L',\n\t\t\t0xd4: 'M',\n\t\t\t0xd5: 'N',\n\t\t\t0xd6: 'O',\n\t\t\t0xd7: 'P',\n\t\t\t0xd8: 'Q',\n\t\t\t0xd9: 'R',\n\t\t\t0xda: RuneError,\n\t\t\t0xdb: RuneError,\n\t\t\t0xdc: RuneError,\n\t\t\t0xdd: RuneError,\n\t\t\t0xde: RuneError,\n\t\t\t0xdf: RuneError,\n\t\t\t0xe0: '\\\\',\n\t\t\t0xe1: '\\u2007', // Non-breaking space\n\t\t\t0xe2: 'S',\n\t\t\t0xe3: 'T',\n\t\t\t0xe4: 'U',\n\t\t\t0xe5: 'V',\n\t\t\t0xe6: 'W',\n\t\t\t0xe7: 'X',\n\t\t\t0xe8: 'Y',\n\t\t\t0xe9: 'Z',\n\t\t\t0xea: RuneError,\n\t\t\t0xeb: RuneError,\n\t\t\t0xec: RuneError,\n\t\t\t0xed: RuneError,\n\t\t\t0xee: RuneError,\n\t\t\t0xef: RuneError,\n\t\t\t0xf0: '0',\n\t\t\t0xf1: '1',\n\t\t\t0xf2: '2',\n\t\t\t0xf3: '3',\n\t\t\t0xf4: '4',\n\t\t\t0xf5: '5',\n\t\t\t0xf6: '6',\n\t\t\t0xf7: '7',\n\t\t\t0xf8: '8',\n\t\t\t0xf9: '9',\n\t\t\t0xfa: RuneError,\n\t\t\t0xfb: RuneError,\n\t\t\t0xfc: RuneError,\n\t\t\t0xfd: RuneError,\n\t\t\t0xfe: RuneError,\n\t\t\t0xff: RuneError,\n\t\t}}\n\tcm.Init()\n\tEBCDIC = cm\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/latin1.go",
    "content": "// Copyright 2015 Garrett D'Amore\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage encoding\n\nimport (\n\t\"golang.org/x/text/encoding\"\n)\n\n// ISO8859_1 represents the 8-bit ISO8859-1 scheme.  It decodes directly to\n// UTF-8 without change, as all ISO8859-1 values are legal UTF-8.\n// Unicode values less than 256 (i.e. 8 bits) map 1:1 with 8859-1.\n// It encodes runes outside of that to 0x1A, the ASCII substitution character.\nvar ISO8859_1 encoding.Encoding\n\nfunc init() {\n\tcm := &Charmap{}\n\tcm.Init()\n\n\t// 8859-1 is the 8-bit identity map for Unicode.\n\tISO8859_1 = cm\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/latin5.go",
    "content": "// Copyright 2015 Garrett D'Amore\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage encoding\n\nimport (\n\t\"golang.org/x/text/encoding\"\n)\n\n// ISO8859_9 represents the 8-bit ISO8859-9 scheme.\nvar ISO8859_9 encoding.Encoding\n\nfunc init() {\n\tcm := &Charmap{Map: map[byte]rune{\n\t\t0xD0: 'Ğ',\n\t\t0xDD: 'İ',\n\t\t0xDE: 'Ş',\n\t\t0xF0: 'ğ',\n\t\t0xFD: 'ı',\n\t\t0xFE: 'ş',\n\t}}\n\tcm.Init()\n\tISO8859_9 = cm\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/encoding/utf8.go",
    "content": "// Copyright 2015 Garrett D'Amore\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage encoding\n\nimport (\n\t\"golang.org/x/text/encoding\"\n)\n\ntype validUtf8 struct{}\n\n// UTF8 is an encoding for UTF-8.  All it does is verify that the UTF-8\n// in is valid.  The main reason for its existence is that it will detect\n// and report ErrSrcShort or ErrDstShort, whereas the Nop encoding just\n// passes every byte, blithely.\nvar UTF8 encoding.Encoding = validUtf8{}\n\nfunc (validUtf8) NewDecoder() *encoding.Decoder {\n\treturn &encoding.Decoder{Transformer: encoding.UTF8Validator}\n}\n\nfunc (validUtf8) NewEncoder() *encoding.Encoder {\n\treturn &encoding.Encoder{Transformer: encoding.UTF8Validator}\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/.appveyor.yml",
    "content": "version: 1.0.{build}\nclone_folder: c:\\gopath\\src\\github.com\\gdamore\\tcell\nenvironment:\n  GOPATH: c:\\gopath\nbuild_script:\n- go version\n- go env\n- SET PATH=%LOCALAPPDATA%\\atom\\bin;%GOPATH%\\bin;%PATH%\n- go get -t ./...\n- go build\n- go install ./...\ntest_script:\n- go test ./...\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/.gitignore",
    "content": "coverage.txt\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.15.x\n  - master\n\narch:\n   - amd64\n   - ppc64le\n\nbefore_install:\n  - go get -t -v ./...\n\nscript:\n  - go test -race -coverprofile=coverage.txt -covermode=atomic\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/AUTHORS",
    "content": "Garrett D'Amore <garrett@damore.org>\nZachary Yedidia <zyedidia@gmail.com>\nJunegunn Choi <junegunn.c@gmail.com>\nStaysail Systems, Inc. <info@staysail.tech>\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/CHANGESv2.md",
    "content": "## Breaking Changes in _Tcell_ v2\n\nA number of changes were made to _Tcell_ for version two, and some of these are breaking.\n\n### Import Path\n\nThe import path for tcell has changed to `github.com/gdamore/tcell/v2` to reflect a new major version.\n\n### Style Is Not Numeric\n\nThe type `Style` has changed to a structure, to allow us to add additional data such as flags for color setting,\nmore attribute bits, and so forth.\nApplications that relied on this being a number will need to be updated to use the accessor methods.\n\n### Mouse Event Changes\n\nThe middle mouse button was reported as button 2 on Linux, but as button 3 on Windows,\nand the right mouse button was reported the reverse way.\n_Tcell_ now always reports the right mouse button as button 2, and the middle button as button 3.\nTo help make this clearer, new symbols `ButtonPrimary`, `ButtonSecondary`, and\n`ButtonMiddle` are provided.\n(Note that which button is right vs. left may be impacted by user preferences.\nUsually the left button will be considered the Primary, and the right will be the Secondary.)\nApplications may need to adjust their handling of mouse buttons 2 and 3 accordingly.\n\n### Terminals Removed\n\nA number of terminals have been removed.\nThese are mostly ancient definitions unlikely to be used by anyone, such as `adm3a`.\n\n### High Number Function Keys\n\nHistorically terminfo reported function keys with modifiers set as a different\nfunction key altogether.  For example, Shift-F1 was reported as F13 on XTerm.\n_Tcell_ now prefers to report these using the base key (such as F1) with modifiers added.\nThis works on XTerm and VTE based emulators, but some emulators may not support this.\nThe new behavior more closely aligns with behavior on Windows platforms.\n\n## New Features in _Tcell_ v2\n\nThese features are not breaking, but are introduced in version 2.\n\n### Improved Modifier Support\n\nFor terminals that appear to behave like the venerable XTerm, _tcell_\nautomatically adds modifier reporting for ALT, CTRL, SHIFT, and META keys\nwhen the terminal reports them.\n\n### Better Support for Palettes (Themes)\n\nWhen using a color by its name or palette entry, _Tcell_ now tries to\nuse that palette entry as is; this should avoid some inconsistency and respect\nterminal themes correctly.\n\nWhen true fidelity to RGB values is needed, the new `TrueColor()` API can be used\nto create a direct color, which bypasses the palette altogether.\n\n### Automatic TrueColor Detection\n\nFor some terminals, if the `Tc` or `RGB` properties are present in terminfo,\n_Tcell_ will automatically assume the terminal supports 24-bit color.\n\n### ColorReset\n\nA new color value, `ColorReset` can be used on the foreground or background\nto reset the color the default used by the terminal.\n\n### tmux Support\n\n_Tcell_ now has improved support for tmux, when the `$TERM` variable is set to \"tmux\".\n\n### Strikethrough Support\n\n_Tcell_ has support for strikethrough when the terminal supports it, using the new `StrikeThrough()` API.\n\n### Bracketed Paste Support\n\n_Tcell_ provides the long requested capability to discriminate paste event by using the\nbracketed-paste capability present in some terminals.  This is automatically available on\nterminals that support XTerm style mouse handling, but applications must opt-in to this\nby using the new `EnablePaste()` function.  A new `EventPaste` type of event will be\ndelivered when starting and finishing a paste operation."
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/README-wasm.md",
    "content": "# WASM for _Tcell_\n\nYou can build _Tcell_ project into a webpage by compiling it slightly differently. This will result in a _Tcell_ project you can embed into another html page, or use as a standalone page.\n\n## Building your project\n\nWASM needs special build flags in order to work. You can build it by executing\n```sh\nGOOS=js GOARCH=wasm go build -o yourfile.wasm\n```\n\n## Additional files\n\nYou also need 5 other files in the same directory as the wasm. Four (`tcell.html`, `tcell.js`, `termstyle.css`, and `beep.wav`) are provided in the `webfiles` directory. The last one, `wasm_exec.js`, can be copied from GOROOT into the current directory by executing\n```sh\ncp \"$(go env GOROOT)/misc/wasm/wasm_exec.js\" ./\n```\n\nIn `tcell.js`, you also need to change the constant\n```js\nconst wasmFilePath = \"yourfile.wasm\"\n```\nto the file you outputed to when building.\n\n## Displaying your project\n\n### Standalone\n\nYou can see the project (with an white background around the terminal) by serving the directory. You can do this using any framework, including another golang project:\n\n```golang\n// server.go\n\npackage main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n)\n\nfunc main() {\n\tlog.Fatal(http.ListenAndServe(\":8080\",\n\t\thttp.FileServer(http.Dir(\"/path/to/dir/to/serve\")),\n\t))\n}\n\n```\n\nTo see the webpage with this example, you can type in `localhost:8080/tcell.html` into your browser while `server.go` is running.\n\n### Embedding\nIt is recomended to use an iframe if you want to embed the app into a webpage:\n```html\n<iframe src=\"tcell.html\" title=\"Tcell app\"></iframe>\n```\n\n## Other considerations\n\n### Accessing files\n\n`io.Open(filename)` and other related functions for reading file systems do not work; use `http.Get(filename)` instead."
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/README.md",
    "content": "<img src=\"logos/tcell.png\" style=\"float: right\"/>\n\n# Tcell\n\n_Tcell_ is a _Go_ package that provides a cell based view for text terminals, like _XTerm_.\nIt was inspired by _termbox_, but includes many additional improvements.\n\n[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua)\n[![Linux](https://img.shields.io/github/actions/workflow/status/gdamore/tcell/linux.yml?branch=main&logoColor=grey&logo=linux&label=)](https://github.com/gdamore/tcell/actions/workflows/linux.yml)\n[![Windows](https://img.shields.io/github/actions/workflow/status/gdamore/tcell/windows.yml?branch=main&logoColor=grey&logo=windows&label=)](https://github.com/gdamore/tcell/actions/workflows/windows.yml)\n[![Apache License](https://img.shields.io/github/license/gdamore/tcell.svg?logoColor=silver&logo=opensourceinitiative&color=blue&label=)](https://github.com/gdamore/tcell/blob/master/LICENSE)\n[![Docs](https://img.shields.io/badge/godoc-reference-blue.svg?label=&logo=go)](https://pkg.go.dev/github.com/gdamore/tcell/v2)\n[![Discord](https://img.shields.io/discord/639503822733180969?label=&logo=discord)](https://discord.gg/urTTxDN)\n[![Coverage](https://img.shields.io/codecov/c/github/gdamore/tcell?logoColor=grey&logo=codecov&label=)](https://codecov.io/gh/gdamore/tcell)\n[![Go Report Card](https://goreportcard.com/badge/github.com/gdamore/tcell/v2)](https://goreportcard.com/report/github.com/gdamore/tcell/v2)\n\nPlease see [here](UKRAINE.md) for an important message for the people of Russia.\n\nNOTE: This is version 2 of _Tcell_. There are breaking changes relative to version 1.\nVersion 1.x remains available using the import `github.com/gdamore/tcell`.\n\n## Tutorial\n\nA brief, and still somewhat rough, [tutorial](TUTORIAL.md) is available.\n\n## Examples\n\n- [proxima5](https://github.com/gdamore/proxima5) - space shooter ([video](https://youtu.be/jNxKTCmY_bQ))\n- [govisor](https://github.com/gdamore/govisor) - service management UI ([screenshot](http://2.bp.blogspot.com/--OsvnfzSNow/Vf7aqMw3zXI/AAAAAAAAARo/uOMtOvw4Sbg/s1600/Screen%2BShot%2B2015-09-20%2Bat%2B9.08.41%2BAM.png))\n- mouse demo - included mouse test ([screenshot](http://2.bp.blogspot.com/-fWvW5opT0es/VhIdItdKqJI/AAAAAAAAATE/7Ojc0L1SpB0/s1600/Screen%2BShot%2B2015-10-04%2Bat%2B11.47.13%2BPM.png))\n- [gomatrix](https://github.com/gdamore/gomatrix) - converted from Termbox\n- [micro](https://github.com/zyedidia/micro/) - lightweight text editor with syntax-highlighting and themes\n- [godu](https://github.com/viktomas/godu) - utility to discover large files/folders\n- [tview](https://github.com/rivo/tview/) - rich interactive widgets\n- [cview](https://code.rocketnine.space/tslocum/cview) - user interface toolkit (fork of _tview_)\n- [awsome gocui](https://github.com/awesome-gocui/gocui) - Go Console User Interface\n- [gomandelbrot](https://github.com/rgm3/gomandelbrot) - Mandelbrot!\n- [WTF](https://github.com/senorprogrammer/wtf) - personal information dashboard\n- [browsh](https://github.com/browsh-org/browsh) - modern web browser ([video](https://www.youtube.com/watch?v=HZq86XfBoRo))\n- [go-life](https://github.com/sachaos/go-life) - Conway's Game of Life\n- [gowid](https://github.com/gcla/gowid) - compositional widgets for terminal UIs, inspired by _urwid_\n- [termshark](https://termshark.io) - interface for _tshark_, inspired by Wireshark, built on _gowid_\n- [go-tetris](https://github.com/MichaelS11/go-tetris) - Go Tetris with AI option\n- [fzf](https://github.com/junegunn/fzf) - command-line fuzzy finder\n- [ascii-fluid](https://github.com/esimov/ascii-fluid) - fluid simulation controlled by webcam\n- [cbind](https://code.rocketnine.space/tslocum/cbind) - key event encoding, decoding and handling\n- [tpong](https://github.com/spinzed/tpong) - old-school Pong\n- [aerc](https://git.sr.ht/~sircmpwn/aerc) - email client\n- [tblogs](https://github.com/ezeoleaf/tblogs) - development blogs reader\n- [spinc](https://github.com/lallassu/spinc) - _irssi_ inspired chat application for Cisco Spark/WebEx\n- [gorss](https://github.com/lallassu/gorss) - RSS/Atom feed reader\n- [memoryalike](https://github.com/Bios-Marcel/memoryalike) - memorization game\n- [lf](https://github.com/gokcehan/lf) - file manager\n- [goful](https://github.com/anmitsu/goful) - CUI file manager\n- [gokeybr](https://github.com/bunyk/gokeybr) - deliberately practice your typing\n- [gonano](https://github.com/jbaramidze/gonano) - editor, mimics _nano_\n- [uchess](https://github.com/tmountain/uchess) - UCI chess client\n- [min](https://github.com/a-h/min) - Gemini browser\n- [ov](https://github.com/noborus/ov) - file pager\n- [tmux-wormhole](https://github.com/gcla/tmux-wormhole) - _tmux_ plugin to transfer files\n- [gruid-tcell](https://github.com/anaseto/gruid-tcell) - driver for the grid based UI and game framework\n- [aretext](https://github.com/aretext/aretext) - minimalist text editor with _vim_ key bindings\n- [sync](https://github.com/kyprifog/sync) - GitHub repo synchronization tool\n- [statusbar](https://github.com/kyprifog/statusbar) - statusbar motivation tool for tracking periodic tasks/goals\n- [todo](https://github.com/kyprifog/todo) - simple todo app\n- [gosnakego](https://github.com/liweiyi88/gosnakego) - a snake game\n- [gbb](https://github.com/sdemingo/gbb) - A classical bulletin board app for tildes or public unix servers\n- [lil](https://github.com/andrievsky/lil) - A simple and flexible interface for any service by implementing only list and get operations\n- [hero.go](https://github.com/barisbll/hero.go) - 2d monster shooter ([video](https://user-images.githubusercontent.com/40062673/277157369-240d7606-b471-4aa1-8c54-4379a513122b.mp4))\n\n## Pure Go Terminfo Database\n\n_Tcell_ includes a full parser and expander for terminfo capability strings,\nso that it can avoid hard coding escape strings for formatting. It also favors\nportability, and includes support for all POSIX systems.\n\nThe database is also flexible & extensible, and can be modified by either running\na program to build the entire database, or an entry for just a single terminal.\n\n## More Portable\n\n_Tcell_ is portable to a wide variety of systems, and is pure Go, without\nany need for CGO.\n_Tcell_ is believed to work with mainstream systems officially supported by golang.\n\n## No Async IO\n\n_Tcell_ is able to operate without requiring `SIGIO` signals (unlike _termbox_),\nor asynchronous I/O, and can instead use standard Go file objects and Go routines.\nThis means it should be safe, especially for\nuse with programs that use exec, or otherwise need to manipulate the tty streams.\nThis model is also much closer to idiomatic Go, leading to fewer surprises.\n\n## Rich Unicode & non-Unicode support\n\n_Tcell_ includes enhanced support for Unicode, including wide characters and\ncombining characters, provided your terminal can support them.\nNote that\nWindows terminals generally don't support the full Unicode repertoire.\n\nIt will also convert to and from Unicode locales, so that the program\ncan work with UTF-8 internally, and get reasonable output in other locales.\n_Tcell_ tries hard to convert to native characters on both input and output.\nOn output _Tcell_ even makes use of the alternate character set to facilitate\ndrawing certain characters.\n\n## More Function Keys\n\n_Tcell_ also has richer support for a larger number of special keys that some\nterminals can send.\n\n## Better Color Handling\n\n_Tcell_ will respect your terminal's color space as specified within your terminfo entries.\nFor example attempts to emit color sequences on VT100 terminals\nwon't result in unintended consequences.\n\nIn legacy Windows mode, _Tcell_ supports 16 colors, bold, dim, and reverse,\ninstead of just termbox's 8 colors with reverse. (Note that there is some\nconflation with bold/dim and colors.)\nModern Windows 10 can benefit from much richer colors however.\n\n_Tcell_ maps 16 colors down to 8, for terminals that need it.\n(The upper 8 colors are just brighter versions of the lower 8.)\n\n## Better Mouse Support\n\n_Tcell_ supports enhanced mouse tracking mode, so your application can receive\nregular mouse motion events, and wheel events, if your terminal supports it.\n\n(Note: The Windows 10 Terminal application suffers from a flaw in this regard,\nand does not support mouse interaction. The stock Windows 10 console host\nfired up with cmd.exe or PowerShell works fine however.)\n\n## _Termbox_ Compatibility\n\nA compatibility layer for _termbox_ is provided in the `compat` directory.\nTo use it, try importing `github.com/gdamore/tcell/termbox` instead.\nMost _termbox-go_ programs will probably work without further modification.\n\n## Working With Unicode\n\nInternally _Tcell_ uses UTF-8, just like Go.\nHowever, _Tcell_ understands how to\nconvert to and from other character sets, using the capabilities of\nthe `golang.org/x/text/encoding packages`.\nYour application must supply\nthem, as the full set of the most common ones bloats the program by about 2 MB.\nIf you're lazy, and want them all anyway, see the `encoding` sub-directory.\n\n## Wide & Combining Characters\n\nThe `SetContent()` API takes a primary rune, and an optional list of combining runes.\nIf any of the runes is a wide (East Asian) rune occupying two cells,\nthen the library will skip output from the following cell. Care must be\ntaken in the application to avoid explicitly attempting to set content in the\nnext cell, otherwise the results are undefined. (Normally the wide character\nis displayed, and the other character is not; do not depend on that behavior.)\n\nOlder terminal applications (especially on systems like Windows 8) lack support\nfor advanced Unicode, and thus may not fare well.\n\n## Colors\n\n_Tcell_ assumes the ANSI/XTerm color model, including the 256 color map that\nXTerm uses when it supports 256 colors. The terminfo guidance will be\nhonored, with respect to the number of colors supported. Also, only\nterminals which expose ANSI style `setaf` and `setab` will support color;\nif you have a color terminal that only has `setf` and `setb`, please submit\na ticket.\n\n## 24-bit Color\n\n_Tcell_ _supports 24-bit color!_ (That is, if your terminal can support it.)\n\nNOTE: Technically the approach of using 24-bit RGB values for color is more\naccurately described as \"direct color\", but most people use the term \"true color\".\nWe follow the (inaccurate) common convention.\n\nThere are a few ways you can enable (or disable) true color.\n\n- For many terminals, we can detect it automatically if your terminal\n  includes the `RGB` or `Tc` capabilities (or rather it did when the database\n  was updated.)\n\n- You can force this one by setting the `COLORTERM` environment variable to\n  `24-bit`, `truecolor` or `24bit`. This is the same method used\n  by most other terminal applications that support 24-bit color.\n\n- If you set your `TERM` environment variable to a value with the suffix `-truecolor`\n  then 24-bit color compatible with XTerm and ECMA-48 will be assumed.\n  (This feature is deprecated.\n  It is recommended to use one of other methods listed above.)\n\n- You can disable 24-bit color by setting `TCELL_TRUECOLOR=disable` in your\n  environment.\n\nWhen using TrueColor, programs will display the colors that the programmer\nintended, overriding any \"`themes`\" you may have set in your terminal\nemulator. (For some cases, accurate color fidelity is more important\nthan respecting themes. For other cases, such as typical text apps that\nonly use a few colors, its more desirable to respect the themes that\nthe user has established.)\n\n## Performance\n\nReasonable attempts have been made to minimize sending data to terminals,\navoiding repeated sequences or drawing the same cell on refresh updates.\n\n## Terminfo\n\n(Not relevant for Windows users.)\n\nThe Terminfo implementation operates with a built-in database.\nThis should satisfy most users. However, it can also (on systems\nwith ncurses installed), dynamically parse the output from `infocmp`\nfor terminals it does not already know about.\n\nSee the `terminfo/` directory for more information about generating\nnew entries for the built-in database.\n\n_Tcell_ requires that the terminal support the `cup` mode of cursor addressing.\nAncient terminals without the ability to position the cursor directly\nare not supported.\nThis is unlikely to be a problem; such terminals have not been mass-produced\nsince the early 1970s.\n\n## Mouse Support\n\nMouse support is detected via the `kmous` terminfo variable, however,\nenablement/disablement and decoding mouse events is done using hard coded\nsequences based on the XTerm X11 model. All popular\nterminals with mouse tracking support this model. (Full terminfo support\nis not possible as terminfo sequences are not defined.)\n\nOn Windows, the mouse works normally.\n\nMouse wheel buttons on various terminals are known to work, but the support\nin terminal emulators, as well as support for various buttons and\nlive mouse tracking, varies widely.\nModern _xterm_, macOS _Terminal_, and _iTerm_ all work well.\n\n## Bracketed Paste\n\nTerminals that appear to support the XTerm mouse model also can support\nbracketed paste, for applications that opt-in. See `EnablePaste()` for details.\n\n## Testability\n\nThere is a `SimulationScreen`, that can be used to simulate a real screen\nfor automated testing. The supplied tests do this. The simulation contains\nevent delivery, screen resizing support, and capabilities to inject events\nand examine \"`physical`\" screen contents.\n\n## Platforms\n\n### POSIX (Linux, FreeBSD, macOS, Solaris, etc.)\n\nEverything works using pure Go on mainstream platforms. Some more esoteric\nplatforms (e.g., AIX) may need to be added. Pull requests are welcome!\n\n### Windows\n\nWindows console mode applications are supported.\n\nModern console applications like ConEmu and the Windows 10 terminal,\nsupport all the good features (resize, mouse tracking, etc.)\n\n### WASM\n\nWASM is supported, but needs additional setup detailed in [README-wasm](README-wasm.md).\n\n### Plan9 and others\n\nThese platforms won't work, but compilation stubs are supplied\nfor folks that want to include parts of this in software for those\nplatforms. The Simulation screen works, but as _Tcell_ doesn't know how to\nallocate a real screen object on those platforms, `NewScreen()` will fail.\n\nIf anyone has wisdom about how to improve support for these,\nplease let me know. PRs are especially welcome.\n\n### Commercial Support\n\n_Tcell_ is absolutely free, but if you want to obtain commercial, professional support, there are options.\n\n- [TideLift](https://tidelift.com/) subscriptions include support for _Tcell_, as well as many other open source packages.\n- [Staysail Systems Inc.](mailto:info@staysail.tech) offers direct support, and custom development around _Tcell_ on an hourly basis."
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/SECURITY.md",
    "content": "# SECURITY\n\nIt's somewhat unlikely that tcell is in a security sensitive path,\nbut we do take security seriously.\n\n## Vulnerabilityu Response\n\nIf you report a vulnerability, we will respond within 2 business days.\n\n## Report a Vulnerability\n\nIf you wish to report a vulnerability found in tcell, simply send a message\nto garrett@damore.org.  You may also reach us on our discord channel -\nhttps://discord.gg/urTTxDN - a private message to `gdamore` on that channel\nmay be submitted instead of mail.\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/TUTORIAL.md",
    "content": "# _Tcell_ Tutorial\n\n_Tcell_ provides a low-level, portable API for building terminal-based programs.\nA [terminal emulator](https://en.wikipedia.org/wiki/Terminal_emulator)\n(or a real terminal such as a DEC VT-220) is used to interact with such a program.\n\n_Tcell_'s interface is fairly low-level.\nWhile it provides a reasonably portable way of dealing with all the usual terminal\nfeatures, it may be easier to utilize a higher level framework.\nA number of such frameworks are listed on the _Tcell_ main [README](README.md).\n\nThis tutorial provides the details of _Tcell_, and is appropriate for developers\nwishing to create their own application frameworks or needing more direct access\nto the terminal capabilities.\n\n## Resize events\n\nApplications receive an event of type `EventResize` when they are first initialized and each time the terminal is resized.\nThe new size is available as `Size`.\n\n```go\nswitch ev := ev.(type) {\ncase *tcell.EventResize:\n\tw, h := ev.Size()\n\tlogMessage(fmt.Sprintf(\"Resized to %dx%d\", w, h))\n}\n```\n\n## Key events\n\nWhen a key is pressed, applications receive an event of type `EventKey`.\nThis event describes the modifier keys pressed (if any) and the pressed key or rune.\n\nWhen a rune key is pressed, an event with its `Key` set to `KeyRune` is dispatched.\n\nWhen a non-rune key is pressed, it is available as the `Key` of the event.\n\n```go\nswitch ev := ev.(type) {\ncase *tcell.EventKey:\n    mod, key, ch := ev.Mod(), ev.Key(), ev.Rune()\n    logMessage(fmt.Sprintf(\"EventKey Modifiers: %d Key: %d Rune: %d\", mod, key, ch))\n}\n```\n\n### Key event restrictions\n\nTerminal-based programs have less visibility into keyboard activity than graphical applications.\n\nWhen a key is pressed and held, additional key press events are sent by the terminal emulator.\nThe rate of these repeated events depends on the emulator's configuration.\nKey release events are not available.\n\nIt is not possible to distinguish runes typed while holding shift and runes typed using caps lock.\nCapital letters are reported without the Shift modifier.\n\n## Mouse events\n\nApplications receive an event of type `EventMouse` when the mouse moves, or a mouse button is pressed or released.\nMouse events are only delivered if\n`EnableMouse` has been called.\n\nThe mouse buttons being pressed (if any) are available as `Buttons`, and the position of the mouse is available as `Position`.\n\n```go\nswitch ev := ev.(type) {\ncase *tcell.EventMouse:\n\tmod := ev.Modifiers()\n\tbtns := ev.Buttons()\n\tx, y := ev.Position()\n\tlogMessage(fmt.Sprintf(\"EventMouse Modifiers: %d Buttons: %d Position: %d,%d\", mod, btns, x, y))\n}\n```\n\n### Mouse buttons\n\nIdentifier | Alias           | Description\n-----------|-----------------|-----------\nButton1    | ButtonPrimary   | Left button\nButton2    | ButtonSecondary | Right button\nButton3    | ButtonMiddle    | Middle button\nButton4    |                 | Side button (thumb/next)\nButton5    |                 | Side button (thumb/prev)\nWheelUp    |                 | Scroll wheel up\nWheelDown  |                 | Scroll wheel down\nWheelLeft  |                 | Horizontal wheel left\nWheelRight |                 | Horizontal wheel right\n\n## Usage\n\nTo create a _Tcell_ application, first initialize a screen to hold it.\n\n```go\ns, err := tcell.NewScreen()\nif err != nil {\n\tlog.Fatalf(\"%+v\", err)\n}\nif err := s.Init(); err != nil {\n\tlog.Fatalf(\"%+v\", err)\n}\n\n// Set default text style\ndefStyle := tcell.StyleDefault.Background(tcell.ColorReset).Foreground(tcell.ColorReset)\ns.SetStyle(defStyle)\n\n// Clear screen\ns.Clear()\n```\n\nText may be drawn on the screen using `SetContent`.\n\n```go\ns.SetContent(0, 0, 'H', nil, defStyle)\ns.SetContent(1, 0, 'i', nil, defStyle)\ns.SetContent(2, 0, '!', nil, defStyle)\n```\n\nTo draw text more easily, define a render function.\n\n```go\nfunc drawText(s tcell.Screen, x1, y1, x2, y2 int, style tcell.Style, text string) {\n\trow := y1\n\tcol := x1\n\tfor _, r := range []rune(text) {\n\t\ts.SetContent(col, row, r, nil, style)\n\t\tcol++\n\t\tif col >= x2 {\n\t\t\trow++\n\t\t\tcol = x1\n\t\t}\n\t\tif row > y2 {\n\t\t\tbreak\n\t\t}\n\t}\n}\n```\n\nLastly, define an event loop to handle user input and update application state.\n\n```go\nquit := func() {\n    s.Fini()\n    os.Exit(0)\n}\nfor {\n    // Update screen\n    s.Show()\n\n    // Poll event\n    ev := s.PollEvent()\n\n    // Process event\n    switch ev := ev.(type) {\n    case *tcell.EventResize:\n        s.Sync()\n    case *tcell.EventKey:\n        if ev.Key() == tcell.KeyEscape || ev.Key() == tcell.KeyCtrlC {\n            quit()\n        }\n    }\n}\n```\n\n## Demo application\n\nThe following demonstrates how to initialize a screen, draw text/graphics and handle user input.\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\n\t\"github.com/gdamore/tcell/v2\"\n)\n\nfunc drawText(s tcell.Screen, x1, y1, x2, y2 int, style tcell.Style, text string) {\n\trow := y1\n\tcol := x1\n\tfor _, r := range []rune(text) {\n\t\ts.SetContent(col, row, r, nil, style)\n\t\tcol++\n\t\tif col >= x2 {\n\t\t\trow++\n\t\t\tcol = x1\n\t\t}\n\t\tif row > y2 {\n\t\t\tbreak\n\t\t}\n\t}\n}\n\nfunc drawBox(s tcell.Screen, x1, y1, x2, y2 int, style tcell.Style, text string) {\n\tif y2 < y1 {\n\t\ty1, y2 = y2, y1\n\t}\n\tif x2 < x1 {\n\t\tx1, x2 = x2, x1\n\t}\n\n\t// Fill background\n\tfor row := y1; row <= y2; row++ {\n\t\tfor col := x1; col <= x2; col++ {\n\t\t\ts.SetContent(col, row, ' ', nil, style)\n\t\t}\n\t}\n\n\t// Draw borders\n\tfor col := x1; col <= x2; col++ {\n\t\ts.SetContent(col, y1, tcell.RuneHLine, nil, style)\n\t\ts.SetContent(col, y2, tcell.RuneHLine, nil, style)\n\t}\n\tfor row := y1 + 1; row < y2; row++ {\n\t\ts.SetContent(x1, row, tcell.RuneVLine, nil, style)\n\t\ts.SetContent(x2, row, tcell.RuneVLine, nil, style)\n\t}\n\n\t// Only draw corners if necessary\n\tif y1 != y2 && x1 != x2 {\n\t\ts.SetContent(x1, y1, tcell.RuneULCorner, nil, style)\n\t\ts.SetContent(x2, y1, tcell.RuneURCorner, nil, style)\n\t\ts.SetContent(x1, y2, tcell.RuneLLCorner, nil, style)\n\t\ts.SetContent(x2, y2, tcell.RuneLRCorner, nil, style)\n\t}\n\n\tdrawText(s, x1+1, y1+1, x2-1, y2-1, style, text)\n}\n\nfunc main() {\n\tdefStyle := tcell.StyleDefault.Background(tcell.ColorReset).Foreground(tcell.ColorReset)\n\tboxStyle := tcell.StyleDefault.Foreground(tcell.ColorWhite).Background(tcell.ColorPurple)\n\n\t// Initialize screen\n\ts, err := tcell.NewScreen()\n\tif err != nil {\n\t\tlog.Fatalf(\"%+v\", err)\n\t}\n\tif err := s.Init(); err != nil {\n\t\tlog.Fatalf(\"%+v\", err)\n\t}\n\ts.SetStyle(defStyle)\n\ts.EnableMouse()\n\ts.EnablePaste()\n\ts.Clear()\n\n\t// Draw initial boxes\n\tdrawBox(s, 1, 1, 42, 7, boxStyle, \"Click and drag to draw a box\")\n\tdrawBox(s, 5, 9, 32, 14, boxStyle, \"Press C to reset\")\n\n\tquit := func() {\n\t\t// You have to catch panics in a defer, clean up, and\n\t\t// re-raise them - otherwise your application can\n\t\t// die without leaving any diagnostic trace.\n\t\tmaybePanic := recover()\n\t\ts.Fini()\n\t\tif maybePanic != nil {\n\t\t\tpanic(maybePanic)\n\t\t}\n\t}\n\tdefer quit()\n\n\t// Here's how to get the screen size when you need it.\n\t// xmax, ymax := s.Size()\n\n\t// Here's an example of how to inject a keystroke where it will\n\t// be picked up by the next PollEvent call.  Note that the\n\t// queue is LIFO, it has a limited length, and PostEvent() can\n\t// return an error.\n\t// s.PostEvent(tcell.NewEventKey(tcell.KeyRune, rune('a'), 0))\n\n\t// Event loop\n\tox, oy := -1, -1\n\tfor {\n\t\t// Update screen\n\t\ts.Show()\n\n\t\t// Poll event\n\t\tev := s.PollEvent()\n\n\t\t// Process event\n\t\tswitch ev := ev.(type) {\n\t\tcase *tcell.EventResize:\n\t\t\ts.Sync()\n\t\tcase *tcell.EventKey:\n\t\t\tif ev.Key() == tcell.KeyEscape || ev.Key() == tcell.KeyCtrlC {\n\t\t\t\treturn\n\t\t\t} else if ev.Key() == tcell.KeyCtrlL {\n\t\t\t\ts.Sync()\n\t\t\t} else if ev.Rune() == 'C' || ev.Rune() == 'c' {\n\t\t\t\ts.Clear()\n\t\t\t}\n\t\tcase *tcell.EventMouse:\n\t\t\tx, y := ev.Position()\n\n\t\t\tswitch ev.Buttons() {\n\t\t\tcase tcell.Button1, tcell.Button2:\n\t\t\t\tif ox < 0 {\n\t\t\t\t\tox, oy = x, y // record location when click started\n\t\t\t\t}\n\n\t\t\tcase tcell.ButtonNone:\n\t\t\t\tif ox >= 0 {\n\t\t\t\t\tlabel := fmt.Sprintf(\"%d,%d to %d,%d\", ox, oy, x, y)\n\t\t\t\t\tdrawBox(s, ox, oy, x, y, boxStyle, label)\n\t\t\t\t\tox, oy = -1, -1\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n```\n\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/UKRAINE.md",
    "content": "# Ukraine, Russia, and a World Tragedy\n\n## A message to those inside Russia\n\n### Written March 4, 2022.\n\nIt is with a very heavy heart that I write this.  I am normally opposed to the use of open source\nprojects to communicate political positions or advocate for things outside the immediate relevancy\nto that project.\n\nHowever, the events occurring in Ukraine, and specifically the unprecedented invasion of Ukraine by\nRussian forces operating under orders from Russian President Vladimir Putin compel me to speak out.\n\nThose who know me, know that I have family, friends, and colleagues in Russia, and Ukraine both.  My closest friends\nhave historically been Russian friends my wife's hometown of Chelyabinsk.  I myself have in the past\nfrequently traveled to Russia, and indeed operated a software development firm with offices in St. Petersburg.\nI had a special kinship with Russia and its people.\n\nI say \"had\", because I fear that the actions of Putin, and the massive disinformation campaign that his regime\nhas waged inside Russia, mean that it's likely that I won't see those friends again.  At present, I'm not sure\nmy wife will see her own mother again.  We no longer feel it's safe for either of us to return Russia given\nactions taken by the regime to crack down on those who express disagreement.\n\nRussian citizens are being led to believe it is acting purely defensively, and that only legitimate military\ntargets are being targeted, and that all the information we have received in the West are fakes.\n\nI am confident that nothing could be further from the truth.\n\nThis has caused many in Russia, including people whom I respect and believe to be smarter than this, to\nstand by Putin, and endorse his actions. The claim is that the entirety of NATO is operating at the behest\nof the USA, and that the entirety of Europe was poised to attack Russia. While this is clearly absurd to those\nof us with any understanding of western politics, Russian citizens are being fed this lie, and believing it.\n\nIf you're reading this from inside Russia -- YOU are the person that I hope this message reaches.  Your\ngovernment is LYING to you.  Of course, all governments lie all the time.  But consider this.  Almost the\nentire world has condemned the invasion of Ukraine as criminal, and has applied sanctions.  Even countries\nwhich have poor relations with the US sanctioning Russia, as well as nations which historically have remained\nneutral.  (Famously neutral -- even during World War II, Switzerland has acted to apply sanctions in\nconcert with the rest of the world.)\n\nAsk yourself, why does Putin fear a free press so much, if what he says is true?  Why the crack-downs on\nchildren expressing only a desire for peace with Ukraine?  Why would the entire world unified against him,\nif Putin was in the right?  Why would the only countries that stood with Russia against\nthe UN resolution to condemn these acts as crimes be Belarus, North Korea, and Syria?  Even countries normally\nallied to Russia could not bring themselves to do more than abstain from the vote to condemn it.\n\nTo be clear, I do not claim that the actions taken by the West or by the Ukrainian government were completely\nblameless.  On the contrary, I understand that Western media is biased, and the truth is rarely exactly\nas reported.  I believe that there is a kernel of truth in the claims of fascists and ultra-nationalist\nmilitias operating in Ukraine and specifically Donbas.  However, I am also equally certain that Putin's\nresponse is out of proportion, and that concerns about such militias are principally just a pretext to justify\nan invasion.\n\nEurope is at war, unlike we've seen in my lifetime.  The world is more divided, and closer to nuclear holocaust\nthan it has been since the Cold War. And that is 100% the fault of Putin.\n\nWhile Putin remains in power, there cannot really be any way for Russian international relations to return\nto normal. Putin has set your country on a path to return to the Cold War, likely because he fancies himself\nto be a new Stalin.  However, unlike the Soviet Union, the Russian economy does not have the wherewithal to\nstand on its own, and the invasion of Ukraine has fully ensured that Russia will not find any friends anywhere\nelse in Europe, and probably few places in Asia.\n\nThe *only* paths forward for Russia are either a Russia without Putin (and those who would support his agenda),\nor a complete breakdown of Russian prosperity, likely followed by the increasing international conflict that will\nbe the natural escalation from a country that is isolated and impoverished. Those of us observing from the West are\ngravely concerned, because we cannot see any end to this madness that does not result in nuclear conflict,\nunless from within.\n\nIn the meantime, the worst prices will be paid for by innocents in Ukraine, and by young Russian mean\nforced to carry out the orders of Putin's corrupt regime.\n\nAnd *that* is why I write this -- to appeal to those within Russia to open your eyes, and think with\nyour minds.  It is right and proper to be proud of your country and its rich heritage.  But it is also\nright and proper to look for ways to save it from the ruinous path that its current leadership has set it upon,\nand to recognize when that leadership is no longer acting in interest of the country or its people.\n\n  - Garrett D'Amore, March 4, 2022"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/attr.go",
    "content": "// Copyright 2020 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\n// AttrMask represents a mask of text attributes, apart from color.\n// Note that support for attributes may vary widely across terminals.\ntype AttrMask int\n\n// Attributes are not colors, but affect the display of text.  They can\n// be combined.\nconst (\n\tAttrBold AttrMask = 1 << iota\n\tAttrBlink\n\tAttrReverse\n\tAttrUnderline\n\tAttrDim\n\tAttrItalic\n\tAttrStrikeThrough\n\tAttrInvalid              // Mark the style or attributes invalid\n\tAttrNone    AttrMask = 0 // Just normal text.\n)\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/cell.go",
    "content": "// Copyright 2024 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"os\"\n\t\"reflect\"\n\n\trunewidth \"github.com/mattn/go-runewidth\"\n)\n\ntype cell struct {\n\tcurrMain  rune\n\tcurrComb  []rune\n\tcurrStyle Style\n\tlastMain  rune\n\tlastStyle Style\n\tlastComb  []rune\n\twidth     int\n\tlock      bool\n}\n\n// CellBuffer represents a two-dimensional array of character cells.\n// This is primarily intended for use by Screen implementors; it\n// contains much of the common code they need.  To create one, just\n// declare a variable of its type; no explicit initialization is necessary.\n//\n// CellBuffer is not thread safe.\ntype CellBuffer struct {\n\tw     int\n\th     int\n\tcells []cell\n}\n\n// SetContent sets the contents (primary rune, combining runes,\n// and style) for a cell at a given location.  If the background or\n// foreground of the style is set to ColorNone, then the respective\n// color is left un changed.\nfunc (cb *CellBuffer) SetContent(x int, y int,\n\tmainc rune, combc []rune, style Style,\n) {\n\tif x >= 0 && y >= 0 && x < cb.w && y < cb.h {\n\t\tc := &cb.cells[(y*cb.w)+x]\n\n\t\t// Wide characters: we want to mark the \"wide\" cells\n\t\t// dirty as well as the base cell, to make sure we consider\n\t\t// both cells as dirty together.  We only need to do this\n\t\t// if we're changing content\n\t\tif (c.width > 0) && (mainc != c.currMain || !reflect.DeepEqual(combc, c.currComb)) {\n\t\t\tfor i := 0; i < c.width; i++ {\n\t\t\t\tcb.SetDirty(x+i, y, true)\n\t\t\t}\n\t\t}\n\n\t\tc.currComb = append([]rune{}, combc...)\n\n\t\tif c.currMain != mainc {\n\t\t\tc.width = runewidth.RuneWidth(mainc)\n\t\t}\n\t\tc.currMain = mainc\n\t\tif style.fg == ColorNone {\n\t\t\tstyle.fg = c.currStyle.fg\n\t\t}\n\t\tif style.bg == ColorNone {\n\t\t\tstyle.bg = c.currStyle.bg\n\t\t}\n\t\tc.currStyle = style\n\t}\n}\n\n// GetContent returns the contents of a character cell, including the\n// primary rune, any combining character runes (which will usually be\n// nil), the style, and the display width in cells.  (The width can be\n// either 1, normally, or 2 for East Asian full-width characters.)\nfunc (cb *CellBuffer) GetContent(x, y int) (rune, []rune, Style, int) {\n\tvar mainc rune\n\tvar combc []rune\n\tvar style Style\n\tvar width int\n\tif x >= 0 && y >= 0 && x < cb.w && y < cb.h {\n\t\tc := &cb.cells[(y*cb.w)+x]\n\t\tmainc, combc, style = c.currMain, c.currComb, c.currStyle\n\t\tif width = c.width; width == 0 || mainc < ' ' {\n\t\t\twidth = 1\n\t\t\tmainc = ' '\n\t\t}\n\t}\n\treturn mainc, combc, style, width\n}\n\n// Size returns the (width, height) in cells of the buffer.\nfunc (cb *CellBuffer) Size() (int, int) {\n\treturn cb.w, cb.h\n}\n\n// Invalidate marks all characters within the buffer as dirty.\nfunc (cb *CellBuffer) Invalidate() {\n\tfor i := range cb.cells {\n\t\tcb.cells[i].lastMain = rune(0)\n\t}\n}\n\n// Dirty checks if a character at the given location needs to be\n// refreshed on the physical display.  This returns true if the cell\n// content is different since the last time it was marked clean.\nfunc (cb *CellBuffer) Dirty(x, y int) bool {\n\tif x >= 0 && y >= 0 && x < cb.w && y < cb.h {\n\t\tc := &cb.cells[(y*cb.w)+x]\n\t\tif c.lock {\n\t\t\treturn false\n\t\t}\n\t\tif c.lastMain == rune(0) {\n\t\t\treturn true\n\t\t}\n\t\tif c.lastMain != c.currMain {\n\t\t\treturn true\n\t\t}\n\t\tif c.lastStyle != c.currStyle {\n\t\t\treturn true\n\t\t}\n\t\tif len(c.lastComb) != len(c.currComb) {\n\t\t\treturn true\n\t\t}\n\t\tfor i := range c.lastComb {\n\t\t\tif c.lastComb[i] != c.currComb[i] {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// SetDirty is normally used to indicate that a cell has\n// been displayed (in which case dirty is false), or to manually\n// force a cell to be marked dirty.\nfunc (cb *CellBuffer) SetDirty(x, y int, dirty bool) {\n\tif x >= 0 && y >= 0 && x < cb.w && y < cb.h {\n\t\tc := &cb.cells[(y*cb.w)+x]\n\t\tif dirty {\n\t\t\tc.lastMain = rune(0)\n\t\t} else {\n\t\t\tif c.currMain == rune(0) {\n\t\t\t\tc.currMain = ' '\n\t\t\t}\n\t\t\tc.lastMain = c.currMain\n\t\t\tc.lastComb = c.currComb\n\t\t\tc.lastStyle = c.currStyle\n\t\t}\n\t}\n}\n\n// LockCell locks a cell from being drawn, effectively marking it \"clean\" until\n// the lock is removed. This can be used to prevent tcell from drawing a given\n// cell, even if the underlying content has changed. For example, when drawing a\n// sixel graphic directly to a TTY screen an implementer must lock the region\n// underneath the graphic to prevent tcell from drawing on top of the graphic.\nfunc (cb *CellBuffer) LockCell(x, y int) {\n\tif x < 0 || y < 0 {\n\t\treturn\n\t}\n\tif x >= cb.w || y >= cb.h {\n\t\treturn\n\t}\n\tc := &cb.cells[(y*cb.w)+x]\n\tc.lock = true\n}\n\n// UnlockCell removes a lock from the cell and marks it as dirty\nfunc (cb *CellBuffer) UnlockCell(x, y int) {\n\tif x < 0 || y < 0 {\n\t\treturn\n\t}\n\tif x >= cb.w || y >= cb.h {\n\t\treturn\n\t}\n\tc := &cb.cells[(y*cb.w)+x]\n\tc.lock = false\n\tcb.SetDirty(x, y, true)\n}\n\n// Resize is used to resize the cells array, with different dimensions,\n// while preserving the original contents.  The cells will be invalidated\n// so that they can be redrawn.\nfunc (cb *CellBuffer) Resize(w, h int) {\n\tif cb.h == h && cb.w == w {\n\t\treturn\n\t}\n\n\tnewc := make([]cell, w*h)\n\tfor y := 0; y < h && y < cb.h; y++ {\n\t\tfor x := 0; x < w && x < cb.w; x++ {\n\t\t\toc := &cb.cells[(y*cb.w)+x]\n\t\t\tnc := &newc[(y*w)+x]\n\t\t\tnc.currMain = oc.currMain\n\t\t\tnc.currComb = oc.currComb\n\t\t\tnc.currStyle = oc.currStyle\n\t\t\tnc.width = oc.width\n\t\t\tnc.lastMain = rune(0)\n\t\t}\n\t}\n\tcb.cells = newc\n\tcb.h = h\n\tcb.w = w\n}\n\n// Fill fills the entire cell buffer array with the specified character\n// and style.  Normally choose ' ' to clear the screen.  This API doesn't\n// support combining characters, or characters with a width larger than one.\n// If either the foreground or background are ColorNone, then the respective\n// color is unchanged.\nfunc (cb *CellBuffer) Fill(r rune, style Style) {\n\tfor i := range cb.cells {\n\t\tc := &cb.cells[i]\n\t\tc.currMain = r\n\t\tc.currComb = nil\n\t\tcs := style\n\t\tif cs.fg == ColorNone {\n\t\t\tcs.fg = c.currStyle.fg\n\t\t}\n\t\tif cs.bg == ColorNone {\n\t\t\tcs.bg = c.currStyle.bg\n\t\t}\n\t\tc.currStyle = cs\n\t\tc.width = 1\n\t}\n}\n\nvar runeConfig *runewidth.Condition\n\nfunc init() {\n\t// The defaults for the runewidth package are poorly chosen for terminal\n\t// applications.  We however will honor the setting in the environment if\n\t// it is set.\n\tif os.Getenv(\"RUNEWIDTH_EASTASIAN\") == \"\" {\n\t\trunewidth.DefaultCondition.EastAsianWidth = false\n\t}\n\n\t// For performance reasons, we create a lookup table.  However, some users\n\t// might be more memory conscious.  If that's you, set the TCELL_MINIMIZE\n\t// environment variable.\n\tif os.Getenv(\"TCELL_MINIMIZE\") == \"\" {\n\t\trunewidth.CreateLUT()\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/charset_stub.go",
    "content": "//go:build plan9 || nacl\n// +build plan9 nacl\n\n// Copyright 2015 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nfunc getCharset() string {\n\treturn \"\"\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/charset_unix.go",
    "content": "//go:build !windows && !nacl && !plan9\n// +build !windows,!nacl,!plan9\n\n// Copyright 2016 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"os\"\n\t\"strings\"\n)\n\nfunc getCharset() string {\n\t// Determine the character set.  This can help us later.\n\t// Per POSIX, we search for LC_ALL first, then LC_CTYPE, and\n\t// finally LANG.  First one set wins.\n\tlocale := \"\"\n\tif locale = os.Getenv(\"LC_ALL\"); locale == \"\" {\n\t\tif locale = os.Getenv(\"LC_CTYPE\"); locale == \"\" {\n\t\t\tlocale = os.Getenv(\"LANG\")\n\t\t}\n\t}\n\tif locale == \"POSIX\" || locale == \"C\" {\n\t\treturn \"US-ASCII\"\n\t}\n\tif i := strings.IndexRune(locale, '@'); i >= 0 {\n\t\tlocale = locale[:i]\n\t}\n\tif i := strings.IndexRune(locale, '.'); i >= 0 {\n\t\tlocale = locale[i+1:]\n\t} else {\n\t\t// Default assumption, and on Linux we can see LC_ALL\n\t\t// without a character set, which we assume implies UTF-8.\n\t\treturn \"UTF-8\"\n\t}\n\t// XXX: add support for aliases\n\treturn locale\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/charset_windows.go",
    "content": "//go:build windows\n// +build windows\n\n// Copyright 2015 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nfunc getCharset() string {\n\treturn \"UTF-16\"\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/color.go",
    "content": "// Copyright 2023 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"fmt\"\n\tic \"image/color\"\n\t\"strconv\"\n)\n\n// Color represents a color.  The low numeric values are the same as used\n// by ECMA-48, and beyond that XTerm.  A 24-bit RGB value may be used by\n// adding in the ColorIsRGB flag.  For Color names we use the W3C approved\n// color names.\n//\n// We use a 64-bit integer to allow future expansion if we want to add an\n// 8-bit alpha, while still leaving us some room for extra options.\n//\n// Note that on various terminals colors may be approximated however, or\n// not supported at all.  If no suitable representation for a color is known,\n// the library will simply not set any color, deferring to whatever default\n// attributes the terminal uses.\ntype Color uint64\n\nconst (\n\t// ColorDefault is used to leave the Color unchanged from whatever\n\t// system or terminal default may exist.  It's also the zero value.\n\tColorDefault Color = 0\n\n\t// ColorValid is used to indicate the color value is actually\n\t// valid (initialized).  This is useful to permit the zero value\n\t// to be treated as the default.\n\tColorValid Color = 1 << 32\n\n\t// ColorIsRGB is used to indicate that the numeric value is not\n\t// a known color constant, but rather an RGB value.  The lower\n\t// order 3 bytes are RGB.\n\tColorIsRGB Color = 1 << 33\n\n\t// ColorSpecial is a flag used to indicate that the values have\n\t// special meaning, and live outside of the color space(s).\n\tColorSpecial Color = 1 << 34\n)\n\n// Note that the order of these options is important -- it follows the\n// definitions used by ECMA and XTerm.  Hence any further named colors\n// must begin at a value not less than 256.\nconst (\n\tColorBlack = ColorValid + iota\n\tColorMaroon\n\tColorGreen\n\tColorOlive\n\tColorNavy\n\tColorPurple\n\tColorTeal\n\tColorSilver\n\tColorGray\n\tColorRed\n\tColorLime\n\tColorYellow\n\tColorBlue\n\tColorFuchsia\n\tColorAqua\n\tColorWhite\n\tColor16\n\tColor17\n\tColor18\n\tColor19\n\tColor20\n\tColor21\n\tColor22\n\tColor23\n\tColor24\n\tColor25\n\tColor26\n\tColor27\n\tColor28\n\tColor29\n\tColor30\n\tColor31\n\tColor32\n\tColor33\n\tColor34\n\tColor35\n\tColor36\n\tColor37\n\tColor38\n\tColor39\n\tColor40\n\tColor41\n\tColor42\n\tColor43\n\tColor44\n\tColor45\n\tColor46\n\tColor47\n\tColor48\n\tColor49\n\tColor50\n\tColor51\n\tColor52\n\tColor53\n\tColor54\n\tColor55\n\tColor56\n\tColor57\n\tColor58\n\tColor59\n\tColor60\n\tColor61\n\tColor62\n\tColor63\n\tColor64\n\tColor65\n\tColor66\n\tColor67\n\tColor68\n\tColor69\n\tColor70\n\tColor71\n\tColor72\n\tColor73\n\tColor74\n\tColor75\n\tColor76\n\tColor77\n\tColor78\n\tColor79\n\tColor80\n\tColor81\n\tColor82\n\tColor83\n\tColor84\n\tColor85\n\tColor86\n\tColor87\n\tColor88\n\tColor89\n\tColor90\n\tColor91\n\tColor92\n\tColor93\n\tColor94\n\tColor95\n\tColor96\n\tColor97\n\tColor98\n\tColor99\n\tColor100\n\tColor101\n\tColor102\n\tColor103\n\tColor104\n\tColor105\n\tColor106\n\tColor107\n\tColor108\n\tColor109\n\tColor110\n\tColor111\n\tColor112\n\tColor113\n\tColor114\n\tColor115\n\tColor116\n\tColor117\n\tColor118\n\tColor119\n\tColor120\n\tColor121\n\tColor122\n\tColor123\n\tColor124\n\tColor125\n\tColor126\n\tColor127\n\tColor128\n\tColor129\n\tColor130\n\tColor131\n\tColor132\n\tColor133\n\tColor134\n\tColor135\n\tColor136\n\tColor137\n\tColor138\n\tColor139\n\tColor140\n\tColor141\n\tColor142\n\tColor143\n\tColor144\n\tColor145\n\tColor146\n\tColor147\n\tColor148\n\tColor149\n\tColor150\n\tColor151\n\tColor152\n\tColor153\n\tColor154\n\tColor155\n\tColor156\n\tColor157\n\tColor158\n\tColor159\n\tColor160\n\tColor161\n\tColor162\n\tColor163\n\tColor164\n\tColor165\n\tColor166\n\tColor167\n\tColor168\n\tColor169\n\tColor170\n\tColor171\n\tColor172\n\tColor173\n\tColor174\n\tColor175\n\tColor176\n\tColor177\n\tColor178\n\tColor179\n\tColor180\n\tColor181\n\tColor182\n\tColor183\n\tColor184\n\tColor185\n\tColor186\n\tColor187\n\tColor188\n\tColor189\n\tColor190\n\tColor191\n\tColor192\n\tColor193\n\tColor194\n\tColor195\n\tColor196\n\tColor197\n\tColor198\n\tColor199\n\tColor200\n\tColor201\n\tColor202\n\tColor203\n\tColor204\n\tColor205\n\tColor206\n\tColor207\n\tColor208\n\tColor209\n\tColor210\n\tColor211\n\tColor212\n\tColor213\n\tColor214\n\tColor215\n\tColor216\n\tColor217\n\tColor218\n\tColor219\n\tColor220\n\tColor221\n\tColor222\n\tColor223\n\tColor224\n\tColor225\n\tColor226\n\tColor227\n\tColor228\n\tColor229\n\tColor230\n\tColor231\n\tColor232\n\tColor233\n\tColor234\n\tColor235\n\tColor236\n\tColor237\n\tColor238\n\tColor239\n\tColor240\n\tColor241\n\tColor242\n\tColor243\n\tColor244\n\tColor245\n\tColor246\n\tColor247\n\tColor248\n\tColor249\n\tColor250\n\tColor251\n\tColor252\n\tColor253\n\tColor254\n\tColor255\n\tColorAliceBlue\n\tColorAntiqueWhite\n\tColorAquaMarine\n\tColorAzure\n\tColorBeige\n\tColorBisque\n\tColorBlanchedAlmond\n\tColorBlueViolet\n\tColorBrown\n\tColorBurlyWood\n\tColorCadetBlue\n\tColorChartreuse\n\tColorChocolate\n\tColorCoral\n\tColorCornflowerBlue\n\tColorCornsilk\n\tColorCrimson\n\tColorDarkBlue\n\tColorDarkCyan\n\tColorDarkGoldenrod\n\tColorDarkGray\n\tColorDarkGreen\n\tColorDarkKhaki\n\tColorDarkMagenta\n\tColorDarkOliveGreen\n\tColorDarkOrange\n\tColorDarkOrchid\n\tColorDarkRed\n\tColorDarkSalmon\n\tColorDarkSeaGreen\n\tColorDarkSlateBlue\n\tColorDarkSlateGray\n\tColorDarkTurquoise\n\tColorDarkViolet\n\tColorDeepPink\n\tColorDeepSkyBlue\n\tColorDimGray\n\tColorDodgerBlue\n\tColorFireBrick\n\tColorFloralWhite\n\tColorForestGreen\n\tColorGainsboro\n\tColorGhostWhite\n\tColorGold\n\tColorGoldenrod\n\tColorGreenYellow\n\tColorHoneydew\n\tColorHotPink\n\tColorIndianRed\n\tColorIndigo\n\tColorIvory\n\tColorKhaki\n\tColorLavender\n\tColorLavenderBlush\n\tColorLawnGreen\n\tColorLemonChiffon\n\tColorLightBlue\n\tColorLightCoral\n\tColorLightCyan\n\tColorLightGoldenrodYellow\n\tColorLightGray\n\tColorLightGreen\n\tColorLightPink\n\tColorLightSalmon\n\tColorLightSeaGreen\n\tColorLightSkyBlue\n\tColorLightSlateGray\n\tColorLightSteelBlue\n\tColorLightYellow\n\tColorLimeGreen\n\tColorLinen\n\tColorMediumAquamarine\n\tColorMediumBlue\n\tColorMediumOrchid\n\tColorMediumPurple\n\tColorMediumSeaGreen\n\tColorMediumSlateBlue\n\tColorMediumSpringGreen\n\tColorMediumTurquoise\n\tColorMediumVioletRed\n\tColorMidnightBlue\n\tColorMintCream\n\tColorMistyRose\n\tColorMoccasin\n\tColorNavajoWhite\n\tColorOldLace\n\tColorOliveDrab\n\tColorOrange\n\tColorOrangeRed\n\tColorOrchid\n\tColorPaleGoldenrod\n\tColorPaleGreen\n\tColorPaleTurquoise\n\tColorPaleVioletRed\n\tColorPapayaWhip\n\tColorPeachPuff\n\tColorPeru\n\tColorPink\n\tColorPlum\n\tColorPowderBlue\n\tColorRebeccaPurple\n\tColorRosyBrown\n\tColorRoyalBlue\n\tColorSaddleBrown\n\tColorSalmon\n\tColorSandyBrown\n\tColorSeaGreen\n\tColorSeashell\n\tColorSienna\n\tColorSkyblue\n\tColorSlateBlue\n\tColorSlateGray\n\tColorSnow\n\tColorSpringGreen\n\tColorSteelBlue\n\tColorTan\n\tColorThistle\n\tColorTomato\n\tColorTurquoise\n\tColorViolet\n\tColorWheat\n\tColorWhiteSmoke\n\tColorYellowGreen\n)\n\n// These are aliases for the color gray, because some of us spell\n// it as grey.\nconst (\n\tColorGrey           = ColorGray\n\tColorDimGrey        = ColorDimGray\n\tColorDarkGrey       = ColorDarkGray\n\tColorDarkSlateGrey  = ColorDarkSlateGray\n\tColorLightGrey      = ColorLightGray\n\tColorLightSlateGrey = ColorLightSlateGray\n\tColorSlateGrey      = ColorSlateGray\n)\n\n// ColorValues maps color constants to their RGB values.\nvar ColorValues = map[Color]int32{\n\tColorBlack:                0x000000,\n\tColorMaroon:               0x800000,\n\tColorGreen:                0x008000,\n\tColorOlive:                0x808000,\n\tColorNavy:                 0x000080,\n\tColorPurple:               0x800080,\n\tColorTeal:                 0x008080,\n\tColorSilver:               0xC0C0C0,\n\tColorGray:                 0x808080,\n\tColorRed:                  0xFF0000,\n\tColorLime:                 0x00FF00,\n\tColorYellow:               0xFFFF00,\n\tColorBlue:                 0x0000FF,\n\tColorFuchsia:              0xFF00FF,\n\tColorAqua:                 0x00FFFF,\n\tColorWhite:                0xFFFFFF,\n\tColor16:                   0x000000, // black\n\tColor17:                   0x00005F,\n\tColor18:                   0x000087,\n\tColor19:                   0x0000AF,\n\tColor20:                   0x0000D7,\n\tColor21:                   0x0000FF, // blue\n\tColor22:                   0x005F00,\n\tColor23:                   0x005F5F,\n\tColor24:                   0x005F87,\n\tColor25:                   0x005FAF,\n\tColor26:                   0x005FD7,\n\tColor27:                   0x005FFF,\n\tColor28:                   0x008700,\n\tColor29:                   0x00875F,\n\tColor30:                   0x008787,\n\tColor31:                   0x0087Af,\n\tColor32:                   0x0087D7,\n\tColor33:                   0x0087FF,\n\tColor34:                   0x00AF00,\n\tColor35:                   0x00AF5F,\n\tColor36:                   0x00AF87,\n\tColor37:                   0x00AFAF,\n\tColor38:                   0x00AFD7,\n\tColor39:                   0x00AFFF,\n\tColor40:                   0x00D700,\n\tColor41:                   0x00D75F,\n\tColor42:                   0x00D787,\n\tColor43:                   0x00D7AF,\n\tColor44:                   0x00D7D7,\n\tColor45:                   0x00D7FF,\n\tColor46:                   0x00FF00, // lime\n\tColor47:                   0x00FF5F,\n\tColor48:                   0x00FF87,\n\tColor49:                   0x00FFAF,\n\tColor50:                   0x00FFd7,\n\tColor51:                   0x00FFFF, // aqua\n\tColor52:                   0x5F0000,\n\tColor53:                   0x5F005F,\n\tColor54:                   0x5F0087,\n\tColor55:                   0x5F00AF,\n\tColor56:                   0x5F00D7,\n\tColor57:                   0x5F00FF,\n\tColor58:                   0x5F5F00,\n\tColor59:                   0x5F5F5F,\n\tColor60:                   0x5F5F87,\n\tColor61:                   0x5F5FAF,\n\tColor62:                   0x5F5FD7,\n\tColor63:                   0x5F5FFF,\n\tColor64:                   0x5F8700,\n\tColor65:                   0x5F875F,\n\tColor66:                   0x5F8787,\n\tColor67:                   0x5F87AF,\n\tColor68:                   0x5F87D7,\n\tColor69:                   0x5F87FF,\n\tColor70:                   0x5FAF00,\n\tColor71:                   0x5FAF5F,\n\tColor72:                   0x5FAF87,\n\tColor73:                   0x5FAFAF,\n\tColor74:                   0x5FAFD7,\n\tColor75:                   0x5FAFFF,\n\tColor76:                   0x5FD700,\n\tColor77:                   0x5FD75F,\n\tColor78:                   0x5FD787,\n\tColor79:                   0x5FD7AF,\n\tColor80:                   0x5FD7D7,\n\tColor81:                   0x5FD7FF,\n\tColor82:                   0x5FFF00,\n\tColor83:                   0x5FFF5F,\n\tColor84:                   0x5FFF87,\n\tColor85:                   0x5FFFAF,\n\tColor86:                   0x5FFFD7,\n\tColor87:                   0x5FFFFF,\n\tColor88:                   0x870000,\n\tColor89:                   0x87005F,\n\tColor90:                   0x870087,\n\tColor91:                   0x8700AF,\n\tColor92:                   0x8700D7,\n\tColor93:                   0x8700FF,\n\tColor94:                   0x875F00,\n\tColor95:                   0x875F5F,\n\tColor96:                   0x875F87,\n\tColor97:                   0x875FAF,\n\tColor98:                   0x875FD7,\n\tColor99:                   0x875FFF,\n\tColor100:                  0x878700,\n\tColor101:                  0x87875F,\n\tColor102:                  0x878787,\n\tColor103:                  0x8787AF,\n\tColor104:                  0x8787D7,\n\tColor105:                  0x8787FF,\n\tColor106:                  0x87AF00,\n\tColor107:                  0x87AF5F,\n\tColor108:                  0x87AF87,\n\tColor109:                  0x87AFAF,\n\tColor110:                  0x87AFD7,\n\tColor111:                  0x87AFFF,\n\tColor112:                  0x87D700,\n\tColor113:                  0x87D75F,\n\tColor114:                  0x87D787,\n\tColor115:                  0x87D7AF,\n\tColor116:                  0x87D7D7,\n\tColor117:                  0x87D7FF,\n\tColor118:                  0x87FF00,\n\tColor119:                  0x87FF5F,\n\tColor120:                  0x87FF87,\n\tColor121:                  0x87FFAF,\n\tColor122:                  0x87FFD7,\n\tColor123:                  0x87FFFF,\n\tColor124:                  0xAF0000,\n\tColor125:                  0xAF005F,\n\tColor126:                  0xAF0087,\n\tColor127:                  0xAF00AF,\n\tColor128:                  0xAF00D7,\n\tColor129:                  0xAF00FF,\n\tColor130:                  0xAF5F00,\n\tColor131:                  0xAF5F5F,\n\tColor132:                  0xAF5F87,\n\tColor133:                  0xAF5FAF,\n\tColor134:                  0xAF5FD7,\n\tColor135:                  0xAF5FFF,\n\tColor136:                  0xAF8700,\n\tColor137:                  0xAF875F,\n\tColor138:                  0xAF8787,\n\tColor139:                  0xAF87AF,\n\tColor140:                  0xAF87D7,\n\tColor141:                  0xAF87FF,\n\tColor142:                  0xAFAF00,\n\tColor143:                  0xAFAF5F,\n\tColor144:                  0xAFAF87,\n\tColor145:                  0xAFAFAF,\n\tColor146:                  0xAFAFD7,\n\tColor147:                  0xAFAFFF,\n\tColor148:                  0xAFD700,\n\tColor149:                  0xAFD75F,\n\tColor150:                  0xAFD787,\n\tColor151:                  0xAFD7AF,\n\tColor152:                  0xAFD7D7,\n\tColor153:                  0xAFD7FF,\n\tColor154:                  0xAFFF00,\n\tColor155:                  0xAFFF5F,\n\tColor156:                  0xAFFF87,\n\tColor157:                  0xAFFFAF,\n\tColor158:                  0xAFFFD7,\n\tColor159:                  0xAFFFFF,\n\tColor160:                  0xD70000,\n\tColor161:                  0xD7005F,\n\tColor162:                  0xD70087,\n\tColor163:                  0xD700AF,\n\tColor164:                  0xD700D7,\n\tColor165:                  0xD700FF,\n\tColor166:                  0xD75F00,\n\tColor167:                  0xD75F5F,\n\tColor168:                  0xD75F87,\n\tColor169:                  0xD75FAF,\n\tColor170:                  0xD75FD7,\n\tColor171:                  0xD75FFF,\n\tColor172:                  0xD78700,\n\tColor173:                  0xD7875F,\n\tColor174:                  0xD78787,\n\tColor175:                  0xD787AF,\n\tColor176:                  0xD787D7,\n\tColor177:                  0xD787FF,\n\tColor178:                  0xD7AF00,\n\tColor179:                  0xD7AF5F,\n\tColor180:                  0xD7AF87,\n\tColor181:                  0xD7AFAF,\n\tColor182:                  0xD7AFD7,\n\tColor183:                  0xD7AFFF,\n\tColor184:                  0xD7D700,\n\tColor185:                  0xD7D75F,\n\tColor186:                  0xD7D787,\n\tColor187:                  0xD7D7AF,\n\tColor188:                  0xD7D7D7,\n\tColor189:                  0xD7D7FF,\n\tColor190:                  0xD7FF00,\n\tColor191:                  0xD7FF5F,\n\tColor192:                  0xD7FF87,\n\tColor193:                  0xD7FFAF,\n\tColor194:                  0xD7FFD7,\n\tColor195:                  0xD7FFFF,\n\tColor196:                  0xFF0000, // red\n\tColor197:                  0xFF005F,\n\tColor198:                  0xFF0087,\n\tColor199:                  0xFF00AF,\n\tColor200:                  0xFF00D7,\n\tColor201:                  0xFF00FF, // fuchsia\n\tColor202:                  0xFF5F00,\n\tColor203:                  0xFF5F5F,\n\tColor204:                  0xFF5F87,\n\tColor205:                  0xFF5FAF,\n\tColor206:                  0xFF5FD7,\n\tColor207:                  0xFF5FFF,\n\tColor208:                  0xFF8700,\n\tColor209:                  0xFF875F,\n\tColor210:                  0xFF8787,\n\tColor211:                  0xFF87AF,\n\tColor212:                  0xFF87D7,\n\tColor213:                  0xFF87FF,\n\tColor214:                  0xFFAF00,\n\tColor215:                  0xFFAF5F,\n\tColor216:                  0xFFAF87,\n\tColor217:                  0xFFAFAF,\n\tColor218:                  0xFFAFD7,\n\tColor219:                  0xFFAFFF,\n\tColor220:                  0xFFD700,\n\tColor221:                  0xFFD75F,\n\tColor222:                  0xFFD787,\n\tColor223:                  0xFFD7AF,\n\tColor224:                  0xFFD7D7,\n\tColor225:                  0xFFD7FF,\n\tColor226:                  0xFFFF00, // yellow\n\tColor227:                  0xFFFF5F,\n\tColor228:                  0xFFFF87,\n\tColor229:                  0xFFFFAF,\n\tColor230:                  0xFFFFD7,\n\tColor231:                  0xFFFFFF, // white\n\tColor232:                  0x080808,\n\tColor233:                  0x121212,\n\tColor234:                  0x1C1C1C,\n\tColor235:                  0x262626,\n\tColor236:                  0x303030,\n\tColor237:                  0x3A3A3A,\n\tColor238:                  0x444444,\n\tColor239:                  0x4E4E4E,\n\tColor240:                  0x585858,\n\tColor241:                  0x626262,\n\tColor242:                  0x6C6C6C,\n\tColor243:                  0x767676,\n\tColor244:                  0x808080, // grey\n\tColor245:                  0x8A8A8A,\n\tColor246:                  0x949494,\n\tColor247:                  0x9E9E9E,\n\tColor248:                  0xA8A8A8,\n\tColor249:                  0xB2B2B2,\n\tColor250:                  0xBCBCBC,\n\tColor251:                  0xC6C6C6,\n\tColor252:                  0xD0D0D0,\n\tColor253:                  0xDADADA,\n\tColor254:                  0xE4E4E4,\n\tColor255:                  0xEEEEEE,\n\tColorAliceBlue:            0xF0F8FF,\n\tColorAntiqueWhite:         0xFAEBD7,\n\tColorAquaMarine:           0x7FFFD4,\n\tColorAzure:                0xF0FFFF,\n\tColorBeige:                0xF5F5DC,\n\tColorBisque:               0xFFE4C4,\n\tColorBlanchedAlmond:       0xFFEBCD,\n\tColorBlueViolet:           0x8A2BE2,\n\tColorBrown:                0xA52A2A,\n\tColorBurlyWood:            0xDEB887,\n\tColorCadetBlue:            0x5F9EA0,\n\tColorChartreuse:           0x7FFF00,\n\tColorChocolate:            0xD2691E,\n\tColorCoral:                0xFF7F50,\n\tColorCornflowerBlue:       0x6495ED,\n\tColorCornsilk:             0xFFF8DC,\n\tColorCrimson:              0xDC143C,\n\tColorDarkBlue:             0x00008B,\n\tColorDarkCyan:             0x008B8B,\n\tColorDarkGoldenrod:        0xB8860B,\n\tColorDarkGray:             0xA9A9A9,\n\tColorDarkGreen:            0x006400,\n\tColorDarkKhaki:            0xBDB76B,\n\tColorDarkMagenta:          0x8B008B,\n\tColorDarkOliveGreen:       0x556B2F,\n\tColorDarkOrange:           0xFF8C00,\n\tColorDarkOrchid:           0x9932CC,\n\tColorDarkRed:              0x8B0000,\n\tColorDarkSalmon:           0xE9967A,\n\tColorDarkSeaGreen:         0x8FBC8F,\n\tColorDarkSlateBlue:        0x483D8B,\n\tColorDarkSlateGray:        0x2F4F4F,\n\tColorDarkTurquoise:        0x00CED1,\n\tColorDarkViolet:           0x9400D3,\n\tColorDeepPink:             0xFF1493,\n\tColorDeepSkyBlue:          0x00BFFF,\n\tColorDimGray:              0x696969,\n\tColorDodgerBlue:           0x1E90FF,\n\tColorFireBrick:            0xB22222,\n\tColorFloralWhite:          0xFFFAF0,\n\tColorForestGreen:          0x228B22,\n\tColorGainsboro:            0xDCDCDC,\n\tColorGhostWhite:           0xF8F8FF,\n\tColorGold:                 0xFFD700,\n\tColorGoldenrod:            0xDAA520,\n\tColorGreenYellow:          0xADFF2F,\n\tColorHoneydew:             0xF0FFF0,\n\tColorHotPink:              0xFF69B4,\n\tColorIndianRed:            0xCD5C5C,\n\tColorIndigo:               0x4B0082,\n\tColorIvory:                0xFFFFF0,\n\tColorKhaki:                0xF0E68C,\n\tColorLavender:             0xE6E6FA,\n\tColorLavenderBlush:        0xFFF0F5,\n\tColorLawnGreen:            0x7CFC00,\n\tColorLemonChiffon:         0xFFFACD,\n\tColorLightBlue:            0xADD8E6,\n\tColorLightCoral:           0xF08080,\n\tColorLightCyan:            0xE0FFFF,\n\tColorLightGoldenrodYellow: 0xFAFAD2,\n\tColorLightGray:            0xD3D3D3,\n\tColorLightGreen:           0x90EE90,\n\tColorLightPink:            0xFFB6C1,\n\tColorLightSalmon:          0xFFA07A,\n\tColorLightSeaGreen:        0x20B2AA,\n\tColorLightSkyBlue:         0x87CEFA,\n\tColorLightSlateGray:       0x778899,\n\tColorLightSteelBlue:       0xB0C4DE,\n\tColorLightYellow:          0xFFFFE0,\n\tColorLimeGreen:            0x32CD32,\n\tColorLinen:                0xFAF0E6,\n\tColorMediumAquamarine:     0x66CDAA,\n\tColorMediumBlue:           0x0000CD,\n\tColorMediumOrchid:         0xBA55D3,\n\tColorMediumPurple:         0x9370DB,\n\tColorMediumSeaGreen:       0x3CB371,\n\tColorMediumSlateBlue:      0x7B68EE,\n\tColorMediumSpringGreen:    0x00FA9A,\n\tColorMediumTurquoise:      0x48D1CC,\n\tColorMediumVioletRed:      0xC71585,\n\tColorMidnightBlue:         0x191970,\n\tColorMintCream:            0xF5FFFA,\n\tColorMistyRose:            0xFFE4E1,\n\tColorMoccasin:             0xFFE4B5,\n\tColorNavajoWhite:          0xFFDEAD,\n\tColorOldLace:              0xFDF5E6,\n\tColorOliveDrab:            0x6B8E23,\n\tColorOrange:               0xFFA500,\n\tColorOrangeRed:            0xFF4500,\n\tColorOrchid:               0xDA70D6,\n\tColorPaleGoldenrod:        0xEEE8AA,\n\tColorPaleGreen:            0x98FB98,\n\tColorPaleTurquoise:        0xAFEEEE,\n\tColorPaleVioletRed:        0xDB7093,\n\tColorPapayaWhip:           0xFFEFD5,\n\tColorPeachPuff:            0xFFDAB9,\n\tColorPeru:                 0xCD853F,\n\tColorPink:                 0xFFC0CB,\n\tColorPlum:                 0xDDA0DD,\n\tColorPowderBlue:           0xB0E0E6,\n\tColorRebeccaPurple:        0x663399,\n\tColorRosyBrown:            0xBC8F8F,\n\tColorRoyalBlue:            0x4169E1,\n\tColorSaddleBrown:          0x8B4513,\n\tColorSalmon:               0xFA8072,\n\tColorSandyBrown:           0xF4A460,\n\tColorSeaGreen:             0x2E8B57,\n\tColorSeashell:             0xFFF5EE,\n\tColorSienna:               0xA0522D,\n\tColorSkyblue:              0x87CEEB,\n\tColorSlateBlue:            0x6A5ACD,\n\tColorSlateGray:            0x708090,\n\tColorSnow:                 0xFFFAFA,\n\tColorSpringGreen:          0x00FF7F,\n\tColorSteelBlue:            0x4682B4,\n\tColorTan:                  0xD2B48C,\n\tColorThistle:              0xD8BFD8,\n\tColorTomato:               0xFF6347,\n\tColorTurquoise:            0x40E0D0,\n\tColorViolet:               0xEE82EE,\n\tColorWheat:                0xF5DEB3,\n\tColorWhiteSmoke:           0xF5F5F5,\n\tColorYellowGreen:          0x9ACD32,\n}\n\n// Special colors.\nconst (\n\t// ColorReset is used to indicate that the color should use the\n\t// vanilla terminal colors.  (Basically go back to the defaults.)\n\tColorReset = ColorSpecial | iota\n\n\t// ColorNone indicates that we should not change the color from\n\t// whatever is already displayed.  This can only be used in limited\n\t// circumstances.\n\tColorNone\n)\n\n// ColorNames holds the written names of colors. Useful to present a list of\n// recognized named colors.\nvar ColorNames = map[string]Color{\n\t\"black\":                ColorBlack,\n\t\"maroon\":               ColorMaroon,\n\t\"green\":                ColorGreen,\n\t\"olive\":                ColorOlive,\n\t\"navy\":                 ColorNavy,\n\t\"purple\":               ColorPurple,\n\t\"teal\":                 ColorTeal,\n\t\"silver\":               ColorSilver,\n\t\"gray\":                 ColorGray,\n\t\"red\":                  ColorRed,\n\t\"lime\":                 ColorLime,\n\t\"yellow\":               ColorYellow,\n\t\"blue\":                 ColorBlue,\n\t\"fuchsia\":              ColorFuchsia,\n\t\"aqua\":                 ColorAqua,\n\t\"white\":                ColorWhite,\n\t\"aliceblue\":            ColorAliceBlue,\n\t\"antiquewhite\":         ColorAntiqueWhite,\n\t\"aquamarine\":           ColorAquaMarine,\n\t\"azure\":                ColorAzure,\n\t\"beige\":                ColorBeige,\n\t\"bisque\":               ColorBisque,\n\t\"blanchedalmond\":       ColorBlanchedAlmond,\n\t\"blueviolet\":           ColorBlueViolet,\n\t\"brown\":                ColorBrown,\n\t\"burlywood\":            ColorBurlyWood,\n\t\"cadetblue\":            ColorCadetBlue,\n\t\"chartreuse\":           ColorChartreuse,\n\t\"chocolate\":            ColorChocolate,\n\t\"coral\":                ColorCoral,\n\t\"cornflowerblue\":       ColorCornflowerBlue,\n\t\"cornsilk\":             ColorCornsilk,\n\t\"crimson\":              ColorCrimson,\n\t\"darkblue\":             ColorDarkBlue,\n\t\"darkcyan\":             ColorDarkCyan,\n\t\"darkgoldenrod\":        ColorDarkGoldenrod,\n\t\"darkgray\":             ColorDarkGray,\n\t\"darkgreen\":            ColorDarkGreen,\n\t\"darkkhaki\":            ColorDarkKhaki,\n\t\"darkmagenta\":          ColorDarkMagenta,\n\t\"darkolivegreen\":       ColorDarkOliveGreen,\n\t\"darkorange\":           ColorDarkOrange,\n\t\"darkorchid\":           ColorDarkOrchid,\n\t\"darkred\":              ColorDarkRed,\n\t\"darksalmon\":           ColorDarkSalmon,\n\t\"darkseagreen\":         ColorDarkSeaGreen,\n\t\"darkslateblue\":        ColorDarkSlateBlue,\n\t\"darkslategray\":        ColorDarkSlateGray,\n\t\"darkturquoise\":        ColorDarkTurquoise,\n\t\"darkviolet\":           ColorDarkViolet,\n\t\"deeppink\":             ColorDeepPink,\n\t\"deepskyblue\":          ColorDeepSkyBlue,\n\t\"dimgray\":              ColorDimGray,\n\t\"dodgerblue\":           ColorDodgerBlue,\n\t\"firebrick\":            ColorFireBrick,\n\t\"floralwhite\":          ColorFloralWhite,\n\t\"forestgreen\":          ColorForestGreen,\n\t\"gainsboro\":            ColorGainsboro,\n\t\"ghostwhite\":           ColorGhostWhite,\n\t\"gold\":                 ColorGold,\n\t\"goldenrod\":            ColorGoldenrod,\n\t\"greenyellow\":          ColorGreenYellow,\n\t\"honeydew\":             ColorHoneydew,\n\t\"hotpink\":              ColorHotPink,\n\t\"indianred\":            ColorIndianRed,\n\t\"indigo\":               ColorIndigo,\n\t\"ivory\":                ColorIvory,\n\t\"khaki\":                ColorKhaki,\n\t\"lavender\":             ColorLavender,\n\t\"lavenderblush\":        ColorLavenderBlush,\n\t\"lawngreen\":            ColorLawnGreen,\n\t\"lemonchiffon\":         ColorLemonChiffon,\n\t\"lightblue\":            ColorLightBlue,\n\t\"lightcoral\":           ColorLightCoral,\n\t\"lightcyan\":            ColorLightCyan,\n\t\"lightgoldenrodyellow\": ColorLightGoldenrodYellow,\n\t\"lightgray\":            ColorLightGray,\n\t\"lightgreen\":           ColorLightGreen,\n\t\"lightpink\":            ColorLightPink,\n\t\"lightsalmon\":          ColorLightSalmon,\n\t\"lightseagreen\":        ColorLightSeaGreen,\n\t\"lightskyblue\":         ColorLightSkyBlue,\n\t\"lightslategray\":       ColorLightSlateGray,\n\t\"lightsteelblue\":       ColorLightSteelBlue,\n\t\"lightyellow\":          ColorLightYellow,\n\t\"limegreen\":            ColorLimeGreen,\n\t\"linen\":                ColorLinen,\n\t\"mediumaquamarine\":     ColorMediumAquamarine,\n\t\"mediumblue\":           ColorMediumBlue,\n\t\"mediumorchid\":         ColorMediumOrchid,\n\t\"mediumpurple\":         ColorMediumPurple,\n\t\"mediumseagreen\":       ColorMediumSeaGreen,\n\t\"mediumslateblue\":      ColorMediumSlateBlue,\n\t\"mediumspringgreen\":    ColorMediumSpringGreen,\n\t\"mediumturquoise\":      ColorMediumTurquoise,\n\t\"mediumvioletred\":      ColorMediumVioletRed,\n\t\"midnightblue\":         ColorMidnightBlue,\n\t\"mintcream\":            ColorMintCream,\n\t\"mistyrose\":            ColorMistyRose,\n\t\"moccasin\":             ColorMoccasin,\n\t\"navajowhite\":          ColorNavajoWhite,\n\t\"oldlace\":              ColorOldLace,\n\t\"olivedrab\":            ColorOliveDrab,\n\t\"orange\":               ColorOrange,\n\t\"orangered\":            ColorOrangeRed,\n\t\"orchid\":               ColorOrchid,\n\t\"palegoldenrod\":        ColorPaleGoldenrod,\n\t\"palegreen\":            ColorPaleGreen,\n\t\"paleturquoise\":        ColorPaleTurquoise,\n\t\"palevioletred\":        ColorPaleVioletRed,\n\t\"papayawhip\":           ColorPapayaWhip,\n\t\"peachpuff\":            ColorPeachPuff,\n\t\"peru\":                 ColorPeru,\n\t\"pink\":                 ColorPink,\n\t\"plum\":                 ColorPlum,\n\t\"powderblue\":           ColorPowderBlue,\n\t\"rebeccapurple\":        ColorRebeccaPurple,\n\t\"rosybrown\":            ColorRosyBrown,\n\t\"royalblue\":            ColorRoyalBlue,\n\t\"saddlebrown\":          ColorSaddleBrown,\n\t\"salmon\":               ColorSalmon,\n\t\"sandybrown\":           ColorSandyBrown,\n\t\"seagreen\":             ColorSeaGreen,\n\t\"seashell\":             ColorSeashell,\n\t\"sienna\":               ColorSienna,\n\t\"skyblue\":              ColorSkyblue,\n\t\"slateblue\":            ColorSlateBlue,\n\t\"slategray\":            ColorSlateGray,\n\t\"snow\":                 ColorSnow,\n\t\"springgreen\":          ColorSpringGreen,\n\t\"steelblue\":            ColorSteelBlue,\n\t\"tan\":                  ColorTan,\n\t\"thistle\":              ColorThistle,\n\t\"tomato\":               ColorTomato,\n\t\"turquoise\":            ColorTurquoise,\n\t\"violet\":               ColorViolet,\n\t\"wheat\":                ColorWheat,\n\t\"whitesmoke\":           ColorWhiteSmoke,\n\t\"yellowgreen\":          ColorYellowGreen,\n\t\"grey\":                 ColorGray,\n\t\"dimgrey\":              ColorDimGray,\n\t\"darkgrey\":             ColorDarkGray,\n\t\"darkslategrey\":        ColorDarkSlateGray,\n\t\"lightgrey\":            ColorLightGray,\n\t\"lightslategrey\":       ColorLightSlateGray,\n\t\"slategrey\":            ColorSlateGray,\n}\n\n// Valid indicates the color is a valid value (has been set).\nfunc (c Color) Valid() bool {\n\treturn c&ColorValid != 0\n}\n\n// IsRGB is true if the color is an RGB specific value.\nfunc (c Color) IsRGB() bool {\n\treturn c&(ColorValid|ColorIsRGB) == (ColorValid | ColorIsRGB)\n}\n\n// CSS returns the CSS hex string ( #ABCDEF ) if valid\n// if not a valid color returns empty string\nfunc (c Color) CSS() string {\n\tif !c.Valid() {\n\t\treturn \"\"\n\t}\n\treturn fmt.Sprintf(\"#%06X\", c.Hex())\n}\n\n// String implements fmt.Stringer to return either the\n// W3C name if it has one or the CSS hex string '#ABCDEF'\nfunc (c Color) String() string {\n\tif !c.Valid() {\n\t\tswitch c {\n\t\tcase ColorNone:\n\t\t\treturn \"none\"\n\t\tcase ColorDefault:\n\t\t\treturn \"default\"\n\t\tcase ColorReset:\n\t\t\treturn \"reset\"\n\t\t}\n\t\treturn \"\"\n\t}\n\treturn c.Name(true)\n}\n\n// Name returns W3C name or an empty string if no arguments\n// if passed true as an argument it will falls back to\n// the CSS hex string if no W3C name found '#ABCDEF'\nfunc (c Color) Name(css ...bool) string {\n\tfor name, hex := range ColorNames {\n\t\tif c == hex {\n\t\t\treturn name\n\t\t}\n\t}\n\tif len(css) > 0 && css[0] {\n\t\treturn c.CSS()\n\t}\n\treturn \"\"\n}\n\n// Hex returns the color's hexadecimal RGB 24-bit value with each component\n// consisting of a single byte, R << 16 | G << 8 | B.  If the color\n// is unknown or unset, -1 is returned.\nfunc (c Color) Hex() int32 {\n\tif !c.Valid() {\n\t\treturn -1\n\t}\n\tif c&ColorIsRGB != 0 {\n\t\treturn int32(c & 0xffffff)\n\t}\n\tif v, ok := ColorValues[c]; ok {\n\t\treturn v\n\t}\n\treturn -1\n}\n\n// RGB returns the red, green, and blue components of the color, with\n// each component represented as a value 0-255.  In the event that the\n// color cannot be broken up (not set usually), -1 is returned for each value.\nfunc (c Color) RGB() (int32, int32, int32) {\n\tv := c.Hex()\n\tif v < 0 {\n\t\treturn -1, -1, -1\n\t}\n\treturn (v >> 16) & 0xff, (v >> 8) & 0xff, v & 0xff\n}\n\n// TrueColor returns the true color (RGB) version of the provided color.\n// This is useful for ensuring color accuracy when using named colors.\n// This will override terminal theme colors.\nfunc (c Color) TrueColor() Color {\n\tif !c.Valid() {\n\t\treturn ColorDefault\n\t}\n\tif c&ColorIsRGB != 0 {\n\t\treturn c | ColorValid\n\t}\n\treturn Color(c.Hex()) | ColorIsRGB | ColorValid\n}\n\n// NewRGBColor returns a new color with the given red, green, and blue values.\n// Each value must be represented in the range 0-255.\nfunc NewRGBColor(r, g, b int32) Color {\n\treturn NewHexColor(((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff))\n}\n\n// NewHexColor returns a color using the given 24-bit RGB value.\nfunc NewHexColor(v int32) Color {\n\treturn ColorIsRGB | Color(v) | ColorValid\n}\n\n// GetColor creates a Color from a color name (W3C name). A hex value may\n// be supplied as a string in the format \"#ffffff\".\nfunc GetColor(name string) Color {\n\tif c, ok := ColorNames[name]; ok {\n\t\treturn c\n\t}\n\tif len(name) == 7 && name[0] == '#' {\n\t\tif v, e := strconv.ParseInt(name[1:], 16, 32); e == nil {\n\t\t\treturn NewHexColor(int32(v))\n\t\t}\n\t}\n\treturn ColorDefault\n}\n\n// PaletteColor creates a color based on the palette index.\nfunc PaletteColor(index int) Color {\n\treturn Color(index) | ColorValid\n}\n\n// FromImageColor converts an image/color.Color into tcell.Color.\n// The alpha value is dropped, so it should be tracked separately if it is\n// needed.\nfunc FromImageColor(imageColor ic.Color) Color {\n\tr, g, b, _ := imageColor.RGBA()\n\t// NOTE image/color.Color RGB values range is [0, 0xFFFF] as uint32\n\treturn NewRGBColor(int32(r>>8), int32(g>>8), int32(b>>8))\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/colorfit.go",
    "content": "// Copyright 2016 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"math\"\n\n\t\"github.com/lucasb-eyer/go-colorful\"\n)\n\n// FindColor attempts to find a given color, or the best match possible for it,\n// from the palette given.  This is an expensive operation, so results should\n// be cached by the caller.\nfunc FindColor(c Color, palette []Color) Color {\n\tmatch := ColorDefault\n\tdist := float64(0)\n\tr, g, b := c.RGB()\n\tc1 := colorful.Color{\n\t\tR: float64(r) / 255.0,\n\t\tG: float64(g) / 255.0,\n\t\tB: float64(b) / 255.0,\n\t}\n\tfor _, d := range palette {\n\t\tr, g, b = d.RGB()\n\t\tc2 := colorful.Color{\n\t\t\tR: float64(r) / 255.0,\n\t\t\tG: float64(g) / 255.0,\n\t\t\tB: float64(b) / 255.0,\n\t\t}\n\t\t// CIE94 is more accurate, but really really expensive.\n\t\tnd := c1.DistanceCIE76(c2)\n\t\tif math.IsNaN(nd) {\n\t\t\tnd = math.Inf(1)\n\t\t}\n\t\tif match == ColorDefault || nd < dist {\n\t\t\tmatch = d\n\t\t\tdist = nd\n\t\t}\n\t}\n\treturn match\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/console_stub.go",
    "content": "//go:build !windows\n// +build !windows\n\n// Copyright 2015 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\n// NewConsoleScreen returns a console based screen.  This platform\n// doesn't have support for any, so it returns nil and a suitable error.\nfunc NewConsoleScreen() (Screen, error) {\n\treturn nil, ErrNoScreen\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/console_win.go",
    "content": "//go:build windows\n// +build windows\n\n// Copyright 2024 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unicode/utf16\"\n\t\"unsafe\"\n)\n\ntype cScreen struct {\n\tin         syscall.Handle\n\tout        syscall.Handle\n\tcancelflag syscall.Handle\n\tscandone   chan struct{}\n\tquit       chan struct{}\n\tcurx       int\n\tcury       int\n\tstyle      Style\n\tfini       bool\n\tvten       bool\n\ttruecolor  bool\n\trunning    bool\n\tdisableAlt bool // disable the alternate screen\n\n\tw int\n\th int\n\n\toscreen     consoleInfo\n\tocursor     cursorInfo\n\tcursorStyle CursorStyle\n\toimode      uint32\n\toomode      uint32\n\tcells       CellBuffer\n\tfocusEnable bool\n\n\tmouseEnabled bool\n\twg           sync.WaitGroup\n\teventQ       chan Event\n\tstopQ        chan struct{}\n\tfiniOnce     sync.Once\n\n\tsync.Mutex\n}\n\nvar winLock sync.Mutex\n\nvar winPalette = []Color{\n\tColorBlack,\n\tColorMaroon,\n\tColorGreen,\n\tColorNavy,\n\tColorOlive,\n\tColorPurple,\n\tColorTeal,\n\tColorSilver,\n\tColorGray,\n\tColorRed,\n\tColorLime,\n\tColorBlue,\n\tColorYellow,\n\tColorFuchsia,\n\tColorAqua,\n\tColorWhite,\n}\n\nvar winColors = map[Color]Color{\n\tColorBlack:   ColorBlack,\n\tColorMaroon:  ColorMaroon,\n\tColorGreen:   ColorGreen,\n\tColorNavy:    ColorNavy,\n\tColorOlive:   ColorOlive,\n\tColorPurple:  ColorPurple,\n\tColorTeal:    ColorTeal,\n\tColorSilver:  ColorSilver,\n\tColorGray:    ColorGray,\n\tColorRed:     ColorRed,\n\tColorLime:    ColorLime,\n\tColorBlue:    ColorBlue,\n\tColorYellow:  ColorYellow,\n\tColorFuchsia: ColorFuchsia,\n\tColorAqua:    ColorAqua,\n\tColorWhite:   ColorWhite,\n}\n\nvar (\n\tk32 = syscall.NewLazyDLL(\"kernel32.dll\")\n\tu32 = syscall.NewLazyDLL(\"user32.dll\")\n)\n\n// We have to bring in the kernel32 and user32 DLLs directly, so we can get\n// access to some system calls that the core Go API lacks.\n//\n// Note that Windows appends some functions with W to indicate that wide\n// characters (Unicode) are in use.  The documentation refers to them\n// without this suffix, as the resolution is made via preprocessor.\nvar (\n\tprocReadConsoleInput            = k32.NewProc(\"ReadConsoleInputW\")\n\tprocWaitForMultipleObjects      = k32.NewProc(\"WaitForMultipleObjects\")\n\tprocCreateEvent                 = k32.NewProc(\"CreateEventW\")\n\tprocSetEvent                    = k32.NewProc(\"SetEvent\")\n\tprocGetConsoleCursorInfo        = k32.NewProc(\"GetConsoleCursorInfo\")\n\tprocSetConsoleCursorInfo        = k32.NewProc(\"SetConsoleCursorInfo\")\n\tprocSetConsoleCursorPosition    = k32.NewProc(\"SetConsoleCursorPosition\")\n\tprocSetConsoleMode              = k32.NewProc(\"SetConsoleMode\")\n\tprocGetConsoleMode              = k32.NewProc(\"GetConsoleMode\")\n\tprocGetConsoleScreenBufferInfo  = k32.NewProc(\"GetConsoleScreenBufferInfo\")\n\tprocFillConsoleOutputAttribute  = k32.NewProc(\"FillConsoleOutputAttribute\")\n\tprocFillConsoleOutputCharacter  = k32.NewProc(\"FillConsoleOutputCharacterW\")\n\tprocSetConsoleWindowInfo        = k32.NewProc(\"SetConsoleWindowInfo\")\n\tprocSetConsoleScreenBufferSize  = k32.NewProc(\"SetConsoleScreenBufferSize\")\n\tprocSetConsoleTextAttribute     = k32.NewProc(\"SetConsoleTextAttribute\")\n\tprocGetLargestConsoleWindowSize = k32.NewProc(\"GetLargestConsoleWindowSize\")\n\tprocMessageBeep                 = u32.NewProc(\"MessageBeep\")\n)\n\nconst (\n\tw32Infinite    = ^uintptr(0)\n\tw32WaitObject0 = uintptr(0)\n)\n\nconst (\n\t// VT100/XTerm escapes understood by the console\n\tvtShowCursor              = \"\\x1b[?25h\"\n\tvtHideCursor              = \"\\x1b[?25l\"\n\tvtCursorPos               = \"\\x1b[%d;%dH\" // Note that it is Y then X\n\tvtSgr0                    = \"\\x1b[0m\"\n\tvtBold                    = \"\\x1b[1m\"\n\tvtUnderline               = \"\\x1b[4m\"\n\tvtBlink                   = \"\\x1b[5m\" // Not sure if this is processed\n\tvtReverse                 = \"\\x1b[7m\"\n\tvtSetFg                   = \"\\x1b[38;5;%dm\"\n\tvtSetBg                   = \"\\x1b[48;5;%dm\"\n\tvtSetFgRGB                = \"\\x1b[38;2;%d;%d;%dm\" // RGB\n\tvtSetBgRGB                = \"\\x1b[48;2;%d;%d;%dm\" // RGB\n\tvtCursorDefault           = \"\\x1b[0 q\"\n\tvtCursorBlinkingBlock     = \"\\x1b[1 q\"\n\tvtCursorSteadyBlock       = \"\\x1b[2 q\"\n\tvtCursorBlinkingUnderline = \"\\x1b[3 q\"\n\tvtCursorSteadyUnderline   = \"\\x1b[4 q\"\n\tvtCursorBlinkingBar       = \"\\x1b[5 q\"\n\tvtCursorSteadyBar         = \"\\x1b[6 q\"\n\tvtDisableAm               = \"\\x1b[?7l\"\n\tvtEnableAm                = \"\\x1b[?7h\"\n\tvtEnterCA                 = \"\\x1b[?1049h\\x1b[22;0;0t\"\n\tvtExitCA                  = \"\\x1b[?1049l\\x1b[23;0;0t\"\n)\n\nvar vtCursorStyles = map[CursorStyle]string{\n\tCursorStyleDefault:           vtCursorDefault,\n\tCursorStyleBlinkingBlock:     vtCursorBlinkingBlock,\n\tCursorStyleSteadyBlock:       vtCursorSteadyBlock,\n\tCursorStyleBlinkingUnderline: vtCursorBlinkingUnderline,\n\tCursorStyleSteadyUnderline:   vtCursorSteadyUnderline,\n\tCursorStyleBlinkingBar:       vtCursorBlinkingBar,\n\tCursorStyleSteadyBar:         vtCursorSteadyBar,\n}\n\n// NewConsoleScreen returns a Screen for the Windows console associated\n// with the current process.  The Screen makes use of the Windows Console\n// API to display content and read events.\nfunc NewConsoleScreen() (Screen, error) {\n\treturn &baseScreen{screenImpl: &cScreen{}}, nil\n}\n\nfunc (s *cScreen) Init() error {\n\ts.eventQ = make(chan Event, 10)\n\ts.quit = make(chan struct{})\n\ts.scandone = make(chan struct{})\n\tin, e := syscall.Open(\"CONIN$\", syscall.O_RDWR, 0)\n\tif e != nil {\n\t\treturn e\n\t}\n\ts.in = in\n\tout, e := syscall.Open(\"CONOUT$\", syscall.O_RDWR, 0)\n\tif e != nil {\n\t\t_ = syscall.Close(s.in)\n\t\treturn e\n\t}\n\ts.out = out\n\n\ts.truecolor = true\n\n\t// ConEmu handling of colors and scrolling when in VT output mode is extremely poor.\n\t// The color palette will scroll even though characters do not, when\n\t// emitting stuff for the last character.  In the future we might change this to\n\t// look at specific versions of ConEmu if they fix the bug.\n\t// We can also try disabling auto margin mode.\n\ttryVt := true\n\tif os.Getenv(\"ConEmuPID\") != \"\" {\n\t\ts.truecolor = false\n\t\ttryVt = false\n\t}\n\tswitch os.Getenv(\"TCELL_TRUECOLOR\") {\n\tcase \"disable\":\n\t\ts.truecolor = false\n\tcase \"enable\":\n\t\ts.truecolor = true\n\t\ttryVt = true\n\t}\n\n\ts.Lock()\n\n\ts.curx = -1\n\ts.cury = -1\n\ts.style = StyleDefault\n\ts.getCursorInfo(&s.ocursor)\n\ts.getConsoleInfo(&s.oscreen)\n\ts.getOutMode(&s.oomode)\n\ts.getInMode(&s.oimode)\n\ts.resize()\n\n\ts.fini = false\n\ts.setInMode(modeResizeEn | modeExtendFlg)\n\n\t// If a user needs to force old style console, they may do so\n\t// by setting TCELL_VTMODE to disable.  This is an undocumented safety net for now.\n\t// It may be removed in the future.  (This mostly exists because of ConEmu.)\n\tswitch os.Getenv(\"TCELL_VTMODE\") {\n\tcase \"disable\":\n\t\ttryVt = false\n\tcase \"enable\":\n\t\ttryVt = true\n\t}\n\tswitch os.Getenv(\"TCELL_ALTSCREEN\") {\n\tcase \"enable\":\n\t\ts.disableAlt = false // also the default\n\tcase \"disable\":\n\t\ts.disableAlt = true\n\t}\n\tif tryVt {\n\t\ts.setOutMode(modeVtOutput | modeNoAutoNL | modeCookedOut | modeUnderline)\n\t\tvar om uint32\n\t\ts.getOutMode(&om)\n\t\tif om&modeVtOutput == modeVtOutput {\n\t\t\ts.vten = true\n\t\t} else {\n\t\t\ts.truecolor = false\n\t\t\ts.setOutMode(0)\n\t\t}\n\t} else {\n\t\ts.setOutMode(0)\n\t}\n\n\ts.Unlock()\n\n\treturn s.engage()\n}\n\nfunc (s *cScreen) CharacterSet() string {\n\t// We are always UTF-16LE on Windows\n\treturn \"UTF-16LE\"\n}\n\nfunc (s *cScreen) EnableMouse(...MouseFlags) {\n\ts.Lock()\n\ts.mouseEnabled = true\n\ts.enableMouse(true)\n\ts.Unlock()\n}\n\nfunc (s *cScreen) DisableMouse() {\n\ts.Lock()\n\ts.mouseEnabled = false\n\ts.enableMouse(false)\n\ts.Unlock()\n}\n\nfunc (s *cScreen) enableMouse(on bool) {\n\tif on {\n\t\ts.setInMode(modeResizeEn | modeMouseEn | modeExtendFlg)\n\t} else {\n\t\ts.setInMode(modeResizeEn | modeExtendFlg)\n\t}\n}\n\n// Windows lacks bracketed paste (for now)\n\nfunc (s *cScreen) EnablePaste() {}\n\nfunc (s *cScreen) DisablePaste() {}\n\nfunc (s *cScreen) EnableFocus() {\n\ts.Lock()\n\ts.focusEnable = true\n\ts.Unlock()\n}\n\nfunc (s *cScreen) DisableFocus() {\n\ts.Lock()\n\ts.focusEnable = false\n\ts.Unlock()\n}\n\nfunc (s *cScreen) Fini() {\n\ts.finiOnce.Do(func() {\n\t\tclose(s.quit)\n\t\ts.disengage()\n\t})\n}\n\nfunc (s *cScreen) disengage() {\n\ts.Lock()\n\tif !s.running {\n\t\ts.Unlock()\n\t\treturn\n\t}\n\ts.running = false\n\tstopQ := s.stopQ\n\t_, _, _ = procSetEvent.Call(uintptr(s.cancelflag))\n\tclose(stopQ)\n\ts.Unlock()\n\n\ts.wg.Wait()\n\n\tif s.vten {\n\t\ts.emitVtString(vtCursorStyles[CursorStyleDefault])\n\t\ts.emitVtString(vtEnableAm)\n\t\tif !s.disableAlt {\n\t\t\ts.emitVtString(vtExitCA)\n\t\t}\n\t} else if !s.disableAlt {\n\t\ts.clearScreen(StyleDefault, s.vten)\n\t\ts.setCursorPos(0, 0, false)\n\t}\n\ts.setCursorInfo(&s.ocursor)\n\ts.setBufferSize(int(s.oscreen.size.x), int(s.oscreen.size.y))\n\ts.setInMode(s.oimode)\n\ts.setOutMode(s.oomode)\n\t_, _, _ = procSetConsoleTextAttribute.Call(\n\t\tuintptr(s.out),\n\t\tuintptr(s.mapStyle(StyleDefault)))\n}\n\nfunc (s *cScreen) engage() error {\n\ts.Lock()\n\tdefer s.Unlock()\n\tif s.running {\n\t\treturn errors.New(\"already engaged\")\n\t}\n\ts.stopQ = make(chan struct{})\n\tcf, _, e := procCreateEvent.Call(\n\t\tuintptr(0),\n\t\tuintptr(1),\n\t\tuintptr(0),\n\t\tuintptr(0))\n\tif cf == uintptr(0) {\n\t\treturn e\n\t}\n\ts.running = true\n\ts.cancelflag = syscall.Handle(cf)\n\ts.enableMouse(s.mouseEnabled)\n\n\tif s.vten {\n\t\ts.setOutMode(modeVtOutput | modeNoAutoNL | modeCookedOut | modeUnderline)\n\t\tif !s.disableAlt {\n\t\t\ts.emitVtString(vtEnterCA)\n\t\t}\n\t\ts.emitVtString(vtDisableAm)\n\t} else {\n\t\ts.setOutMode(0)\n\t}\n\n\ts.clearScreen(s.style, s.vten)\n\ts.hideCursor()\n\n\ts.cells.Invalidate()\n\ts.hideCursor()\n\ts.resize()\n\ts.draw()\n\ts.doCursor()\n\n\ts.wg.Add(1)\n\tgo s.scanInput(s.stopQ)\n\treturn nil\n}\n\ntype cursorInfo struct {\n\tsize    uint32\n\tvisible uint32\n}\n\ntype coord struct {\n\tx int16\n\ty int16\n}\n\nfunc (c coord) uintptr() uintptr {\n\t// little endian, put x first\n\treturn uintptr(c.x) | (uintptr(c.y) << 16)\n}\n\ntype rect struct {\n\tleft   int16\n\ttop    int16\n\tright  int16\n\tbottom int16\n}\n\nfunc (s *cScreen) emitVtString(vs string) {\n\tesc := utf16.Encode([]rune(vs))\n\t_ = syscall.WriteConsole(s.out, &esc[0], uint32(len(esc)), nil, nil)\n}\n\nfunc (s *cScreen) showCursor() {\n\tif s.vten {\n\t\ts.emitVtString(vtShowCursor)\n\t\ts.emitVtString(vtCursorStyles[s.cursorStyle])\n\t} else {\n\t\ts.setCursorInfo(&cursorInfo{size: 100, visible: 1})\n\t}\n}\n\nfunc (s *cScreen) hideCursor() {\n\tif s.vten {\n\t\ts.emitVtString(vtHideCursor)\n\t} else {\n\t\ts.setCursorInfo(&cursorInfo{size: 1, visible: 0})\n\t}\n}\n\nfunc (s *cScreen) ShowCursor(x, y int) {\n\ts.Lock()\n\tif !s.fini {\n\t\ts.curx = x\n\t\ts.cury = y\n\t}\n\ts.doCursor()\n\ts.Unlock()\n}\n\nfunc (s *cScreen) SetCursorStyle(cs CursorStyle) {\n\ts.Lock()\n\tif !s.fini {\n\t\tif _, ok := vtCursorStyles[cs]; ok {\n\t\t\ts.cursorStyle = cs\n\t\t\ts.doCursor()\n\t\t}\n\t}\n\ts.Unlock()\n}\n\nfunc (s *cScreen) doCursor() {\n\tx, y := s.curx, s.cury\n\n\tif x < 0 || y < 0 || x >= s.w || y >= s.h {\n\t\ts.hideCursor()\n\t} else {\n\t\ts.setCursorPos(x, y, s.vten)\n\t\ts.showCursor()\n\t}\n}\n\nfunc (s *cScreen) HideCursor() {\n\ts.ShowCursor(-1, -1)\n}\n\ntype inputRecord struct {\n\ttyp  uint16\n\t_    uint16\n\tdata [16]byte\n}\n\nconst (\n\tkeyEvent    uint16 = 1\n\tmouseEvent  uint16 = 2\n\tresizeEvent uint16 = 4\n\tmenuEvent   uint16 = 8 // don't use\n\tfocusEvent  uint16 = 16\n)\n\ntype mouseRecord struct {\n\tx     int16\n\ty     int16\n\tbtns  uint32\n\tmod   uint32\n\tflags uint32\n}\n\ntype focusRecord struct {\n\tfocused int32 // actually BOOL\n}\n\nconst (\n\tmouseHWheeled uint32 = 0x8\n\tmouseVWheeled uint32 = 0x4\n\t// mouseDoubleClick uint32 = 0x2\n\t// mouseMoved       uint32 = 0x1\n)\n\ntype resizeRecord struct {\n\tx int16\n\ty int16\n}\n\ntype keyRecord struct {\n\tisdown int32\n\trepeat uint16\n\tkcode  uint16\n\tscode  uint16\n\tch     uint16\n\tmod    uint32\n}\n\nconst (\n\t// Constants per Microsoft.  We don't put the modifiers\n\t// here.\n\tvkCancel = 0x03\n\tvkBack   = 0x08 // Backspace\n\tvkTab    = 0x09\n\tvkClear  = 0x0c\n\tvkReturn = 0x0d\n\tvkPause  = 0x13\n\tvkEscape = 0x1b\n\tvkSpace  = 0x20\n\tvkPrior  = 0x21 // PgUp\n\tvkNext   = 0x22 // PgDn\n\tvkEnd    = 0x23\n\tvkHome   = 0x24\n\tvkLeft   = 0x25\n\tvkUp     = 0x26\n\tvkRight  = 0x27\n\tvkDown   = 0x28\n\tvkPrint  = 0x2a\n\tvkPrtScr = 0x2c\n\tvkInsert = 0x2d\n\tvkDelete = 0x2e\n\tvkHelp   = 0x2f\n\tvkF1     = 0x70\n\tvkF2     = 0x71\n\tvkF3     = 0x72\n\tvkF4     = 0x73\n\tvkF5     = 0x74\n\tvkF6     = 0x75\n\tvkF7     = 0x76\n\tvkF8     = 0x77\n\tvkF9     = 0x78\n\tvkF10    = 0x79\n\tvkF11    = 0x7a\n\tvkF12    = 0x7b\n\tvkF13    = 0x7c\n\tvkF14    = 0x7d\n\tvkF15    = 0x7e\n\tvkF16    = 0x7f\n\tvkF17    = 0x80\n\tvkF18    = 0x81\n\tvkF19    = 0x82\n\tvkF20    = 0x83\n\tvkF21    = 0x84\n\tvkF22    = 0x85\n\tvkF23    = 0x86\n\tvkF24    = 0x87\n)\n\nvar vkKeys = map[uint16]Key{\n\tvkCancel: KeyCancel,\n\tvkBack:   KeyBackspace,\n\tvkTab:    KeyTab,\n\tvkClear:  KeyClear,\n\tvkPause:  KeyPause,\n\tvkPrint:  KeyPrint,\n\tvkPrtScr: KeyPrint,\n\tvkPrior:  KeyPgUp,\n\tvkNext:   KeyPgDn,\n\tvkReturn: KeyEnter,\n\tvkEnd:    KeyEnd,\n\tvkHome:   KeyHome,\n\tvkLeft:   KeyLeft,\n\tvkUp:     KeyUp,\n\tvkRight:  KeyRight,\n\tvkDown:   KeyDown,\n\tvkInsert: KeyInsert,\n\tvkDelete: KeyDelete,\n\tvkHelp:   KeyHelp,\n\tvkEscape: KeyEscape,\n\tvkSpace:  ' ',\n\tvkF1:     KeyF1,\n\tvkF2:     KeyF2,\n\tvkF3:     KeyF3,\n\tvkF4:     KeyF4,\n\tvkF5:     KeyF5,\n\tvkF6:     KeyF6,\n\tvkF7:     KeyF7,\n\tvkF8:     KeyF8,\n\tvkF9:     KeyF9,\n\tvkF10:    KeyF10,\n\tvkF11:    KeyF11,\n\tvkF12:    KeyF12,\n\tvkF13:    KeyF13,\n\tvkF14:    KeyF14,\n\tvkF15:    KeyF15,\n\tvkF16:    KeyF16,\n\tvkF17:    KeyF17,\n\tvkF18:    KeyF18,\n\tvkF19:    KeyF19,\n\tvkF20:    KeyF20,\n\tvkF21:    KeyF21,\n\tvkF22:    KeyF22,\n\tvkF23:    KeyF23,\n\tvkF24:    KeyF24,\n}\n\n// NB: All Windows platforms are little endian.  We assume this\n// never, ever change.  The following code is endian safe. and does\n// not use unsafe pointers.\nfunc getu32(v []byte) uint32 {\n\treturn uint32(v[0]) + (uint32(v[1]) << 8) + (uint32(v[2]) << 16) + (uint32(v[3]) << 24)\n}\nfunc geti32(v []byte) int32 {\n\treturn int32(getu32(v))\n}\nfunc getu16(v []byte) uint16 {\n\treturn uint16(v[0]) + (uint16(v[1]) << 8)\n}\nfunc geti16(v []byte) int16 {\n\treturn int16(getu16(v))\n}\n\n// Convert windows dwControlKeyState to modifier mask\nfunc mod2mask(cks uint32) ModMask {\n\tmm := ModNone\n\t// Left or right control\n\tctrl := (cks & (0x0008 | 0x0004)) != 0\n\t// Left or right alt\n\talt := (cks & (0x0002 | 0x0001)) != 0\n\t// Filter out ctrl+alt (it means AltGr)\n\tif !(ctrl && alt) {\n\t\tif ctrl {\n\t\t\tmm |= ModCtrl\n\t\t}\n\t\tif alt {\n\t\t\tmm |= ModAlt\n\t\t}\n\t}\n\t// Any shift\n\tif (cks & 0x0010) != 0 {\n\t\tmm |= ModShift\n\t}\n\treturn mm\n}\n\nfunc mrec2btns(mbtns, flags uint32) ButtonMask {\n\tbtns := ButtonNone\n\tif mbtns&0x1 != 0 {\n\t\tbtns |= Button1\n\t}\n\tif mbtns&0x2 != 0 {\n\t\tbtns |= Button2\n\t}\n\tif mbtns&0x4 != 0 {\n\t\tbtns |= Button3\n\t}\n\tif mbtns&0x8 != 0 {\n\t\tbtns |= Button4\n\t}\n\tif mbtns&0x10 != 0 {\n\t\tbtns |= Button5\n\t}\n\tif mbtns&0x20 != 0 {\n\t\tbtns |= Button6\n\t}\n\tif mbtns&0x40 != 0 {\n\t\tbtns |= Button7\n\t}\n\tif mbtns&0x80 != 0 {\n\t\tbtns |= Button8\n\t}\n\n\tif flags&mouseVWheeled != 0 {\n\t\tif mbtns&0x80000000 == 0 {\n\t\t\tbtns |= WheelUp\n\t\t} else {\n\t\t\tbtns |= WheelDown\n\t\t}\n\t}\n\tif flags&mouseHWheeled != 0 {\n\t\tif mbtns&0x80000000 == 0 {\n\t\t\tbtns |= WheelRight\n\t\t} else {\n\t\t\tbtns |= WheelLeft\n\t\t}\n\t}\n\treturn btns\n}\n\nfunc (s *cScreen) postEvent(ev Event) {\n\tselect {\n\tcase s.eventQ <- ev:\n\tcase <-s.quit:\n\t}\n}\n\nfunc (s *cScreen) getConsoleInput() error {\n\t// cancelFlag comes first as WaitForMultipleObjects returns the lowest index\n\t// in the event that both events are signalled.\n\twaitObjects := []syscall.Handle{s.cancelflag, s.in}\n\t// As arrays are contiguous in memory, a pointer to the first object is the\n\t// same as a pointer to the array itself.\n\tpWaitObjects := unsafe.Pointer(&waitObjects[0])\n\n\trv, _, er := procWaitForMultipleObjects.Call(\n\t\tuintptr(len(waitObjects)),\n\t\tuintptr(pWaitObjects),\n\t\tuintptr(0),\n\t\tw32Infinite)\n\t// WaitForMultipleObjects returns WAIT_OBJECT_0 + the index.\n\tswitch rv {\n\tcase w32WaitObject0: // s.cancelFlag\n\t\treturn errors.New(\"cancelled\")\n\tcase w32WaitObject0 + 1: // s.in\n\t\trec := &inputRecord{}\n\t\tvar nrec int32\n\t\trv, _, er := procReadConsoleInput.Call(\n\t\t\tuintptr(s.in),\n\t\t\tuintptr(unsafe.Pointer(rec)),\n\t\t\tuintptr(1),\n\t\t\tuintptr(unsafe.Pointer(&nrec)))\n\t\tif rv == 0 {\n\t\t\treturn er\n\t\t}\n\t\tif nrec != 1 {\n\t\t\treturn nil\n\t\t}\n\t\tswitch rec.typ {\n\t\tcase keyEvent:\n\t\t\tkrec := &keyRecord{}\n\t\t\tkrec.isdown = geti32(rec.data[0:])\n\t\t\tkrec.repeat = getu16(rec.data[4:])\n\t\t\tkrec.kcode = getu16(rec.data[6:])\n\t\t\tkrec.scode = getu16(rec.data[8:])\n\t\t\tkrec.ch = getu16(rec.data[10:])\n\t\t\tkrec.mod = getu32(rec.data[12:])\n\n\t\t\tif krec.isdown == 0 || krec.repeat < 1 {\n\t\t\t\t// it's a key release event, ignore it\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif krec.ch != 0 {\n\t\t\t\t// synthesized key code\n\t\t\t\tfor krec.repeat > 0 {\n\t\t\t\t\t// convert shift+tab to backtab\n\t\t\t\t\tif mod2mask(krec.mod) == ModShift && krec.ch == vkTab {\n\t\t\t\t\t\ts.postEvent(NewEventKey(KeyBacktab, 0, ModNone))\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts.postEvent(NewEventKey(KeyRune, rune(krec.ch), mod2mask(krec.mod)))\n\t\t\t\t\t}\n\t\t\t\t\tkrec.repeat--\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tkey := KeyNUL // impossible on Windows\n\t\t\tok := false\n\t\t\tif key, ok = vkKeys[krec.kcode]; !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tfor krec.repeat > 0 {\n\t\t\t\ts.postEvent(NewEventKey(key, rune(krec.ch), mod2mask(krec.mod)))\n\t\t\t\tkrec.repeat--\n\t\t\t}\n\n\t\tcase mouseEvent:\n\t\t\tvar mrec mouseRecord\n\t\t\tmrec.x = geti16(rec.data[0:])\n\t\t\tmrec.y = geti16(rec.data[2:])\n\t\t\tmrec.btns = getu32(rec.data[4:])\n\t\t\tmrec.mod = getu32(rec.data[8:])\n\t\t\tmrec.flags = getu32(rec.data[12:])\n\t\t\tbtns := mrec2btns(mrec.btns, mrec.flags)\n\t\t\t// we ignore double click, events are delivered normally\n\t\t\ts.postEvent(NewEventMouse(int(mrec.x), int(mrec.y), btns, mod2mask(mrec.mod)))\n\n\t\tcase resizeEvent:\n\t\t\tvar rrec resizeRecord\n\t\t\trrec.x = geti16(rec.data[0:])\n\t\t\trrec.y = geti16(rec.data[2:])\n\t\t\ts.postEvent(NewEventResize(int(rrec.x), int(rrec.y)))\n\n\t\tcase focusEvent:\n\t\t\tvar focus focusRecord\n\t\t\tfocus.focused = geti32(rec.data[0:])\n\t\t\ts.Lock()\n\t\t\tenabled := s.focusEnable\n\t\t\ts.Unlock()\n\t\t\tif enabled {\n\t\t\t\ts.postEvent(NewEventFocus(focus.focused != 0))\n\t\t\t}\n\n\t\tdefault:\n\t\t}\n\tdefault:\n\t\treturn er\n\t}\n\n\treturn nil\n}\n\nfunc (s *cScreen) scanInput(stopQ chan struct{}) {\n\tdefer s.wg.Done()\n\tfor {\n\t\tselect {\n\t\tcase <-stopQ:\n\t\t\treturn\n\t\tdefault:\n\t\t}\n\t\tif e := s.getConsoleInput(); e != nil {\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (s *cScreen) Colors() int {\n\tif s.vten {\n\t\treturn 1 << 24\n\t}\n\t// Windows console can display 8 colors, in either low or high intensity\n\treturn 16\n}\n\nvar vgaColors = map[Color]uint16{\n\tColorBlack:   0,\n\tColorMaroon:  0x4,\n\tColorGreen:   0x2,\n\tColorNavy:    0x1,\n\tColorOlive:   0x6,\n\tColorPurple:  0x5,\n\tColorTeal:    0x3,\n\tColorSilver:  0x7,\n\tColorGrey:    0x8,\n\tColorRed:     0xc,\n\tColorLime:    0xa,\n\tColorBlue:    0x9,\n\tColorYellow:  0xe,\n\tColorFuchsia: 0xd,\n\tColorAqua:    0xb,\n\tColorWhite:   0xf,\n}\n\n// Windows uses RGB signals\nfunc mapColor2RGB(c Color) uint16 {\n\twinLock.Lock()\n\tif v, ok := winColors[c]; ok {\n\t\tc = v\n\t} else {\n\t\tv = FindColor(c, winPalette)\n\t\twinColors[c] = v\n\t\tc = v\n\t}\n\twinLock.Unlock()\n\n\tif vc, ok := vgaColors[c]; ok {\n\t\treturn vc\n\t}\n\treturn 0\n}\n\n// Map a tcell style to Windows attributes\nfunc (s *cScreen) mapStyle(style Style) uint16 {\n\tf, b, a := style.Decompose()\n\tfa := s.oscreen.attrs & 0xf\n\tba := (s.oscreen.attrs) >> 4 & 0xf\n\tif f != ColorDefault && f != ColorReset {\n\t\tfa = mapColor2RGB(f)\n\t}\n\tif b != ColorDefault && b != ColorReset {\n\t\tba = mapColor2RGB(b)\n\t}\n\tvar attr uint16\n\t// We simulate reverse by doing the color swap ourselves.\n\t// Apparently windows cannot really do this except in DBCS\n\t// views.\n\tif a&AttrReverse != 0 {\n\t\tattr = ba\n\t\tattr |= fa << 4\n\t} else {\n\t\tattr = fa\n\t\tattr |= ba << 4\n\t}\n\tif a&AttrBold != 0 {\n\t\tattr |= 0x8\n\t}\n\tif a&AttrDim != 0 {\n\t\tattr &^= 0x8\n\t}\n\tif a&AttrUnderline != 0 {\n\t\t// Best effort -- doesn't seem to work though.\n\t\tattr |= 0x8000\n\t}\n\t// Blink is unsupported\n\treturn attr\n}\n\nfunc (s *cScreen) sendVtStyle(style Style) {\n\tesc := &strings.Builder{}\n\n\tfg, bg, attrs := style.Decompose()\n\n\tesc.WriteString(vtSgr0)\n\n\tif attrs&(AttrBold|AttrDim) == AttrBold {\n\t\tesc.WriteString(vtBold)\n\t}\n\tif attrs&AttrBlink != 0 {\n\t\tesc.WriteString(vtBlink)\n\t}\n\tif attrs&AttrUnderline != 0 {\n\t\tesc.WriteString(vtUnderline)\n\t}\n\tif attrs&AttrReverse != 0 {\n\t\tesc.WriteString(vtReverse)\n\t}\n\tif fg.IsRGB() {\n\t\tr, g, b := fg.RGB()\n\t\t_, _ = fmt.Fprintf(esc, vtSetFgRGB, r, g, b)\n\t} else if fg.Valid() {\n\t\t_, _ = fmt.Fprintf(esc, vtSetFg, fg&0xff)\n\t}\n\tif bg.IsRGB() {\n\t\tr, g, b := bg.RGB()\n\t\t_, _ = fmt.Fprintf(esc, vtSetBgRGB, r, g, b)\n\t} else if bg.Valid() {\n\t\t_, _ = fmt.Fprintf(esc, vtSetBg, bg&0xff)\n\t}\n\ts.emitVtString(esc.String())\n}\n\nfunc (s *cScreen) writeString(x, y int, style Style, ch []uint16) {\n\t// we assume the caller has hidden the cursor\n\tif len(ch) == 0 {\n\t\treturn\n\t}\n\ts.setCursorPos(x, y, s.vten)\n\n\tif s.vten {\n\t\ts.sendVtStyle(style)\n\t} else {\n\t\t_, _, _ = procSetConsoleTextAttribute.Call(\n\t\t\tuintptr(s.out),\n\t\t\tuintptr(s.mapStyle(style)))\n\t}\n\t_ = syscall.WriteConsole(s.out, &ch[0], uint32(len(ch)), nil, nil)\n}\n\nfunc (s *cScreen) draw() {\n\t// allocate a scratch line bit enough for no combining chars.\n\t// if you have combining characters, you may pay for extra allocations.\n\tbuf := make([]uint16, 0, s.w)\n\twcs := buf[:]\n\tlstyle := styleInvalid\n\n\tlx, ly := -1, -1\n\tra := make([]rune, 1)\n\n\tfor y := 0; y < s.h; y++ {\n\t\tfor x := 0; x < s.w; x++ {\n\t\t\tmainc, combc, style, width := s.cells.GetContent(x, y)\n\t\t\tdirty := s.cells.Dirty(x, y)\n\t\t\tif style == StyleDefault {\n\t\t\t\tstyle = s.style\n\t\t\t}\n\n\t\t\tif !dirty || style != lstyle {\n\t\t\t\t// write out any data queued thus far\n\t\t\t\t// because we are going to skip over some\n\t\t\t\t// cells, or because we need to change styles\n\t\t\t\ts.writeString(lx, ly, lstyle, wcs)\n\t\t\t\twcs = buf[0:0]\n\t\t\t\tlstyle = StyleDefault\n\t\t\t\tif !dirty {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tif x > s.w-width {\n\t\t\t\tmainc = ' '\n\t\t\t\tcombc = nil\n\t\t\t\twidth = 1\n\t\t\t}\n\t\t\tif len(wcs) == 0 {\n\t\t\t\tlstyle = style\n\t\t\t\tlx = x\n\t\t\t\tly = y\n\t\t\t}\n\t\t\tra[0] = mainc\n\t\t\twcs = append(wcs, utf16.Encode(ra)...)\n\t\t\tif len(combc) != 0 {\n\t\t\t\twcs = append(wcs, utf16.Encode(combc)...)\n\t\t\t}\n\t\t\tfor dx := 0; dx < width; dx++ {\n\t\t\t\ts.cells.SetDirty(x+dx, y, false)\n\t\t\t}\n\t\t\tx += width - 1\n\t\t}\n\t\ts.writeString(lx, ly, lstyle, wcs)\n\t\twcs = buf[0:0]\n\t\tlstyle = styleInvalid\n\t}\n}\n\nfunc (s *cScreen) Show() {\n\ts.Lock()\n\tif !s.fini {\n\t\ts.hideCursor()\n\t\ts.resize()\n\t\ts.draw()\n\t\ts.doCursor()\n\t}\n\ts.Unlock()\n}\n\nfunc (s *cScreen) Sync() {\n\ts.Lock()\n\tif !s.fini {\n\t\ts.cells.Invalidate()\n\t\ts.hideCursor()\n\t\ts.resize()\n\t\ts.draw()\n\t\ts.doCursor()\n\t}\n\ts.Unlock()\n}\n\ntype consoleInfo struct {\n\tsize  coord\n\tpos   coord\n\tattrs uint16\n\twin   rect\n\tmaxsz coord\n}\n\nfunc (s *cScreen) getConsoleInfo(info *consoleInfo) {\n\t_, _, _ = procGetConsoleScreenBufferInfo.Call(\n\t\tuintptr(s.out),\n\t\tuintptr(unsafe.Pointer(info)))\n}\n\nfunc (s *cScreen) getCursorInfo(info *cursorInfo) {\n\t_, _, _ = procGetConsoleCursorInfo.Call(\n\t\tuintptr(s.out),\n\t\tuintptr(unsafe.Pointer(info)))\n}\n\nfunc (s *cScreen) setCursorInfo(info *cursorInfo) {\n\t_, _, _ = procSetConsoleCursorInfo.Call(\n\t\tuintptr(s.out),\n\t\tuintptr(unsafe.Pointer(info)))\n\n}\n\nfunc (s *cScreen) setCursorPos(x, y int, vtEnable bool) {\n\tif vtEnable {\n\t\t// Note that the string is Y first.  Origin is 1,1.\n\t\ts.emitVtString(fmt.Sprintf(vtCursorPos, y+1, x+1))\n\t} else {\n\t\t_, _, _ = procSetConsoleCursorPosition.Call(\n\t\t\tuintptr(s.out),\n\t\t\tcoord{int16(x), int16(y)}.uintptr())\n\t}\n}\n\nfunc (s *cScreen) setBufferSize(x, y int) {\n\t_, _, _ = procSetConsoleScreenBufferSize.Call(\n\t\tuintptr(s.out),\n\t\tcoord{int16(x), int16(y)}.uintptr())\n}\n\nfunc (s *cScreen) Size() (int, int) {\n\ts.Lock()\n\tw, h := s.w, s.h\n\ts.Unlock()\n\n\treturn w, h\n}\n\nfunc (s *cScreen) SetSize(w, h int) {\n\txy, _, _ := procGetLargestConsoleWindowSize.Call(uintptr(s.out))\n\n\t// xy is little endian packed\n\ty := int(xy >> 16)\n\tx := int(xy & 0xffff)\n\n\tif x == 0 || y == 0 {\n\t\treturn\n\t}\n\n\t// This is a hacky workaround for Windows Terminal.\n\t// Essentially Windows Terminal (Windows 11) does not support application\n\t// initiated resizing.  To detect this, we look for an extremely large size\n\t// for the maximum width.  If it is > 500, then this is almost certainly\n\t// Windows Terminal, and won't support this.  (Note that the legacy console\n\t// does support application resizing.)\n\tif x >= 500 {\n\t\treturn\n\t}\n\n\ts.setBufferSize(x, y)\n\tr := rect{0, 0, int16(w - 1), int16(h - 1)}\n\t_, _, _ = procSetConsoleWindowInfo.Call(\n\t\tuintptr(s.out),\n\t\tuintptr(1),\n\t\tuintptr(unsafe.Pointer(&r)))\n\n\ts.resize()\n}\n\nfunc (s *cScreen) resize() {\n\tinfo := consoleInfo{}\n\ts.getConsoleInfo(&info)\n\n\tw := int((info.win.right - info.win.left) + 1)\n\th := int((info.win.bottom - info.win.top) + 1)\n\n\tif s.w == w && s.h == h {\n\t\treturn\n\t}\n\n\ts.cells.Resize(w, h)\n\ts.w = w\n\ts.h = h\n\n\ts.setBufferSize(w, h)\n\n\tr := rect{0, 0, int16(w - 1), int16(h - 1)}\n\t_, _, _ = procSetConsoleWindowInfo.Call(\n\t\tuintptr(s.out),\n\t\tuintptr(1),\n\t\tuintptr(unsafe.Pointer(&r)))\n\tselect {\n\tcase s.eventQ <- NewEventResize(w, h):\n\tdefault:\n\t}\n}\n\nfunc (s *cScreen) clearScreen(style Style, vtEnable bool) {\n\tif vtEnable {\n\t\ts.sendVtStyle(style)\n\t\trow := strings.Repeat(\" \", s.w)\n\t\tfor y := 0; y < s.h; y++ {\n\t\t\ts.setCursorPos(0, y, vtEnable)\n\t\t\ts.emitVtString(row)\n\t\t}\n\t\ts.setCursorPos(0, 0, vtEnable)\n\n\t} else {\n\t\tpos := coord{0, 0}\n\t\tattr := s.mapStyle(style)\n\t\tx, y := s.w, s.h\n\t\tscratch := uint32(0)\n\t\tcount := uint32(x * y)\n\n\t\t_, _, _ = procFillConsoleOutputAttribute.Call(\n\t\t\tuintptr(s.out),\n\t\t\tuintptr(attr),\n\t\t\tuintptr(count),\n\t\t\tpos.uintptr(),\n\t\t\tuintptr(unsafe.Pointer(&scratch)))\n\t\t_, _, _ = procFillConsoleOutputCharacter.Call(\n\t\t\tuintptr(s.out),\n\t\t\tuintptr(' '),\n\t\t\tuintptr(count),\n\t\t\tpos.uintptr(),\n\t\t\tuintptr(unsafe.Pointer(&scratch)))\n\t}\n}\n\nconst (\n\t// Input modes\n\tmodeExtendFlg uint32 = 0x0080\n\tmodeMouseEn          = 0x0010\n\tmodeResizeEn         = 0x0008\n\t// modeCooked          = 0x0001\n\t// modeVtInput         = 0x0200\n\n\t// Output modes\n\tmodeCookedOut uint32 = 0x0001\n\tmodeVtOutput         = 0x0004\n\tmodeNoAutoNL         = 0x0008\n\tmodeUnderline        = 0x0010 // ENABLE_LVB_GRID_WORLDWIDE, needed for underlines\n\t// modeWrapEOL          = 0x0002\n)\n\nfunc (s *cScreen) setInMode(mode uint32) {\n\t_, _, _ = procSetConsoleMode.Call(\n\t\tuintptr(s.in),\n\t\tuintptr(mode))\n}\n\nfunc (s *cScreen) setOutMode(mode uint32) {\n\t_, _, _ = procSetConsoleMode.Call(\n\t\tuintptr(s.out),\n\t\tuintptr(mode))\n}\n\nfunc (s *cScreen) getInMode(v *uint32) {\n\t_, _, _ = procGetConsoleMode.Call(\n\t\tuintptr(s.in),\n\t\tuintptr(unsafe.Pointer(v)))\n}\n\nfunc (s *cScreen) getOutMode(v *uint32) {\n\t_, _, _ = procGetConsoleMode.Call(\n\t\tuintptr(s.out),\n\t\tuintptr(unsafe.Pointer(v)))\n}\n\nfunc (s *cScreen) SetStyle(style Style) {\n\ts.Lock()\n\ts.style = style\n\ts.Unlock()\n}\n\n// No fallback rune support, since we have Unicode.  Yay!\n\nfunc (s *cScreen) RegisterRuneFallback(_ rune, _ string) {\n}\n\nfunc (s *cScreen) UnregisterRuneFallback(_ rune) {\n}\n\nfunc (s *cScreen) CanDisplay(_ rune, _ bool) bool {\n\t// We presume we can display anything -- we're Unicode.\n\t// (Sadly this not precisely true.  Combining characters are especially\n\t// poorly supported under Windows.)\n\treturn true\n}\n\nfunc (s *cScreen) HasMouse() bool {\n\treturn true\n}\n\nfunc (s *cScreen) Resize(int, int, int, int) {}\n\nfunc (s *cScreen) HasKey(k Key) bool {\n\t// Microsoft has codes for some keys, but they are unusual,\n\t// so we don't include them.  We include all the typical\n\t// 101, 105 key layout keys.\n\tvalid := map[Key]bool{\n\t\tKeyBackspace: true,\n\t\tKeyTab:       true,\n\t\tKeyEscape:    true,\n\t\tKeyPause:     true,\n\t\tKeyPrint:     true,\n\t\tKeyPgUp:      true,\n\t\tKeyPgDn:      true,\n\t\tKeyEnter:     true,\n\t\tKeyEnd:       true,\n\t\tKeyHome:      true,\n\t\tKeyLeft:      true,\n\t\tKeyUp:        true,\n\t\tKeyRight:     true,\n\t\tKeyDown:      true,\n\t\tKeyInsert:    true,\n\t\tKeyDelete:    true,\n\t\tKeyF1:        true,\n\t\tKeyF2:        true,\n\t\tKeyF3:        true,\n\t\tKeyF4:        true,\n\t\tKeyF5:        true,\n\t\tKeyF6:        true,\n\t\tKeyF7:        true,\n\t\tKeyF8:        true,\n\t\tKeyF9:        true,\n\t\tKeyF10:       true,\n\t\tKeyF11:       true,\n\t\tKeyF12:       true,\n\t\tKeyRune:      true,\n\t}\n\n\treturn valid[k]\n}\n\nfunc (s *cScreen) Beep() error {\n\t// A simple beep. If the sound card is not available, the sound is generated\n\t// using the speaker.\n\t//\n\t// Reference:\n\t// https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebeep\n\tconst simpleBeep = 0xffffffff\n\tif rv, _, err := procMessageBeep.Call(simpleBeep); rv == 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (s *cScreen) Suspend() error {\n\ts.disengage()\n\treturn nil\n}\n\nfunc (s *cScreen) Resume() error {\n\treturn s.engage()\n}\n\nfunc (s *cScreen) Tty() (Tty, bool) {\n\treturn nil, false\n}\n\nfunc (s *cScreen) GetCells() *CellBuffer {\n\treturn &s.cells\n}\n\nfunc (s *cScreen) EventQ() chan Event {\n\treturn s.eventQ\n}\n\nfunc (s *cScreen) StopQ() <-chan struct{} {\n\treturn s.quit\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/doc.go",
    "content": "// Copyright 2018 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package tcell provides a lower-level, portable API for building\n// programs that interact with terminals or consoles.  It works with\n// both common (and many uncommon!) terminals or terminal emulators,\n// and Windows console implementations.\n//\n// It provides support for up to 256 colors, text attributes, and box drawing\n// elements.  A database of terminals built from a real terminfo database\n// is provided, along with code to generate new database entries.\n//\n// Tcell offers very rich support for mice, dependent upon the terminal\n// of course.  (Windows, XTerm, and iTerm 2 are known to work very well.)\n//\n// If the environment is not Unicode by default, such as an ISO8859 based\n// locale or GB18030, Tcell can convert input and output, so that your\n// terminal can operate in whatever locale is most convenient, while the\n// application program can just assume \"everything is UTF-8\".  Reasonable\n// defaults are used for updating characters to something suitable for\n// display.  Unicode box drawing characters will be converted to use the\n// alternate character set of your terminal, if native conversions are\n// not available.  If no ACS is available, then some ASCII fallbacks will\n// be used.\n//\n// Note that support for non-UTF-8 locales (other than C)  must be enabled\n// by the application using RegisterEncoding() -- we don't have them all\n// enabled by default to avoid bloating the application unnecessarily.\n// (These days UTF-8 is good enough for almost everyone, and nobody should\n// be using legacy locales anymore.)  Also, actual glyphs for various code\n// point will only be displayed if your terminal or emulator (or the font\n// the emulator is using) supports them.\n//\n// A rich set of key codes is supported, with support for up to 65 function\n// keys, and various other special keys.\npackage tcell\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/encoding.go",
    "content": "// Copyright 2022 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"strings\"\n\t\"sync\"\n\n\t\"golang.org/x/text/encoding\"\n\n\tgencoding \"github.com/gdamore/encoding\"\n)\n\nvar encodings map[string]encoding.Encoding\nvar encodingLk sync.Mutex\nvar encodingFallback EncodingFallback = EncodingFallbackFail\n\n// RegisterEncoding may be called by the application to register an encoding.\n// The presence of additional encodings will facilitate application usage with\n// terminal environments where the I/O subsystem does not support Unicode.\n//\n// Windows systems use Unicode natively, and do not need any of the encoding\n// subsystem when using Windows Console screens.\n//\n// Please see the Go documentation for golang.org/x/text/encoding -- most of\n// the common ones exist already as stock variables.  For example, ISO8859-15\n// can be registered using the following code:\n//\n//\timport \"golang.org/x/text/encoding/charmap\"\n//\n//\t  ...\n//\t  RegisterEncoding(\"ISO8859-15\", charmap.ISO8859_15)\n//\n// Aliases can be registered as well, for example \"8859-15\" could be an alias\n// for \"ISO8859-15\".\n//\n// For POSIX systems, this package will check the environment variables\n// LC_ALL, LC_CTYPE,  and LANG (in that order) to determine the character set.\n// These are expected to have the following pattern:\n//\n//\t$language[.$codeset[@$variant]\n//\n// We extract only the $codeset part, which will usually be something like\n// UTF-8 or ISO8859-15 or KOI8-R.  Note that if the locale is either \"POSIX\"\n// or \"C\", then we assume US-ASCII (the POSIX 'portable character set'\n// and assume all other characters are somehow invalid.)\n//\n// Modern POSIX systems and terminal emulators may use UTF-8, and for those\n// systems, this API is also unnecessary.  For example, Darwin (MacOS X) and\n// modern Linux running modern xterm generally will out of the box without\n// any of this.  Use of UTF-8 is recommended when possible, as it saves\n// quite a lot processing overhead.\n//\n// Note that some encodings are quite large (for example GB18030 which is a\n// superset of Unicode) and so the application size can be expected to\n// increase quite a bit as each encoding is added.\n\n// The East Asian encodings have been seen to add 100-200K per encoding to the\n// size of the resulting binary.\nfunc RegisterEncoding(charset string, enc encoding.Encoding) {\n\tencodingLk.Lock()\n\tcharset = strings.ToLower(charset)\n\tencodings[charset] = enc\n\tencodingLk.Unlock()\n}\n\n// EncodingFallback describes how the system behaves when the locale\n// requires a character set that we do not support.  The system always\n// supports UTF-8 and US-ASCII. On Windows consoles, UTF-16LE is also\n// supported automatically.  Other character sets must be added using the\n// RegisterEncoding API.  (A large group of nearly all of them can be\n// added using the RegisterAll function in the encoding sub package.)\ntype EncodingFallback int\n\nconst (\n\t// EncodingFallbackFail behavior causes GetEncoding to fail\n\t// when it cannot find an encoding.\n\tEncodingFallbackFail = iota\n\n\t// EncodingFallbackASCII behavior causes GetEncoding to fall back\n\t// to a 7-bit ASCII encoding, if no other encoding can be found.\n\tEncodingFallbackASCII\n\n\t// EncodingFallbackUTF8 behavior causes GetEncoding to assume\n\t// UTF8 can pass unmodified upon failure.  Note that this behavior\n\t// is not recommended, unless you are sure your terminal can cope\n\t// with real UTF8 sequences.\n\tEncodingFallbackUTF8\n)\n\n// SetEncodingFallback changes the behavior of GetEncoding when a suitable\n// encoding is not found.  The default is EncodingFallbackFail, which\n// causes GetEncoding to simply return nil.\nfunc SetEncodingFallback(fb EncodingFallback) {\n\tencodingLk.Lock()\n\tencodingFallback = fb\n\tencodingLk.Unlock()\n}\n\n// GetEncoding is used by Screen implementors who want to locate an encoding\n// for the given character set name.  Note that this will return nil for\n// either the Unicode (UTF-8) or ASCII encodings, since we don't use\n// encodings for them but instead have our own native methods.\nfunc GetEncoding(charset string) encoding.Encoding {\n\tcharset = strings.ToLower(charset)\n\tencodingLk.Lock()\n\tdefer encodingLk.Unlock()\n\tif enc, ok := encodings[charset]; ok {\n\t\treturn enc\n\t}\n\tswitch encodingFallback {\n\tcase EncodingFallbackASCII:\n\t\treturn gencoding.ASCII\n\tcase EncodingFallbackUTF8:\n\t\treturn encoding.Nop\n\t}\n\treturn nil\n}\n\nfunc init() {\n\t// We always support UTF-8 and ASCII.\n\tencodings = make(map[string]encoding.Encoding)\n\tencodings[\"utf-8\"] = gencoding.UTF8\n\tencodings[\"utf8\"] = gencoding.UTF8\n\tencodings[\"us-ascii\"] = gencoding.ASCII\n\tencodings[\"ascii\"] = gencoding.ASCII\n\tencodings[\"iso646\"] = gencoding.ASCII\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/errors.go",
    "content": "// Copyright 2015 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"errors\"\n\t\"time\"\n\n\t\"github.com/gdamore/tcell/v2/terminfo\"\n)\n\nvar (\n\t// ErrTermNotFound indicates that a suitable terminal entry could\n\t// not be found.  This can result from either not having TERM set,\n\t// or from the TERM failing to support certain minimal functionality,\n\t// in particular absolute cursor addressability (the cup capability)\n\t// is required.  For example, legacy \"adm3\" lacks this capability,\n\t// whereas the slightly newer \"adm3a\" supports it.  This failure\n\t// occurs most often with \"dumb\".\n\tErrTermNotFound = terminfo.ErrTermNotFound\n\n\t// ErrNoScreen indicates that no suitable screen could be found.\n\t// This may result from attempting to run on a platform where there\n\t// is no support for either termios or console I/O (such as nacl),\n\t// or from running in an environment where there is no access to\n\t// a suitable console/terminal device.  (For example, running on\n\t// without a controlling TTY or with no /dev/tty on POSIX platforms.)\n\tErrNoScreen = errors.New(\"no suitable screen available\")\n\n\t// ErrNoCharset indicates that the locale environment the\n\t// program is not supported by the program, because no suitable\n\t// encoding was found for it.  This problem never occurs if\n\t// the environment is UTF-8 or UTF-16.\n\tErrNoCharset = errors.New(\"character set not supported\")\n\n\t// ErrEventQFull indicates that the event queue is full, and\n\t// cannot accept more events.\n\tErrEventQFull = errors.New(\"event queue full\")\n)\n\n// An EventError is an event representing some sort of error, and carries\n// an error payload.\ntype EventError struct {\n\tt   time.Time\n\terr error\n}\n\n// When returns the time when the event was created.\nfunc (ev *EventError) When() time.Time {\n\treturn ev.t\n}\n\n// Error implements the error.\nfunc (ev *EventError) Error() string {\n\treturn ev.err.Error()\n}\n\n// NewEventError creates an ErrorEvent with the given error payload.\nfunc NewEventError(err error) *EventError {\n\treturn &EventError{t: time.Now(), err: err}\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/event.go",
    "content": "// Copyright 2015 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"time\"\n)\n\n// Event is a generic interface used for passing around Events.\n// Concrete types follow.\ntype Event interface {\n\t// When reports the time when the event was generated.\n\tWhen() time.Time\n}\n\n// EventTime is a simple base event class, suitable for easy reuse.\n// It can be used to deliver actual timer events as well.\ntype EventTime struct {\n\twhen time.Time\n}\n\n// When returns the time stamp when the event occurred.\nfunc (e *EventTime) When() time.Time {\n\treturn e.when\n}\n\n// SetEventTime sets the time of occurrence for the event.\nfunc (e *EventTime) SetEventTime(t time.Time) {\n\te.when = t\n}\n\n// SetEventNow sets the time of occurrence for the event to the current time.\nfunc (e *EventTime) SetEventNow() {\n\te.SetEventTime(time.Now())\n}\n\n// EventHandler is anything that handles events.  If the handler has\n// consumed the event, it should return true.  False otherwise.\ntype EventHandler interface {\n\tHandleEvent(Event) bool\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/focus.go",
    "content": "// Copyright 2023 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\n// EventFocus is a focus event. It is sent when the terminal window (or tab)\n// gets or loses focus.\ntype EventFocus struct {\n\t*EventTime\n\n\t// True if the window received focus, false if it lost focus\n\tFocused bool\n}\n\nfunc NewEventFocus(focused bool) *EventFocus {\n\treturn &EventFocus{Focused: focused}\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/interrupt.go",
    "content": "// Copyright 2015 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"time\"\n)\n\n// EventInterrupt is a generic wakeup event.  Its can be used to\n// to request a redraw.  It can carry an arbitrary payload, as well.\ntype EventInterrupt struct {\n\tt time.Time\n\tv interface{}\n}\n\n// When returns the time when this event was created.\nfunc (ev *EventInterrupt) When() time.Time {\n\treturn ev.t\n}\n\n// Data is used to obtain the opaque event payload.\nfunc (ev *EventInterrupt) Data() interface{} {\n\treturn ev.v\n}\n\n// NewEventInterrupt creates an EventInterrupt with the given payload.\nfunc NewEventInterrupt(data interface{}) *EventInterrupt {\n\treturn &EventInterrupt{t: time.Now(), v: data}\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/key.go",
    "content": "// Copyright 2016 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n)\n\n// EventKey represents a key press.  Usually this is a key press followed\n// by a key release, but since terminal programs don't have a way to report\n// key release events, we usually get just one event.  If a key is held down\n// then the terminal may synthesize repeated key presses at some predefined\n// rate.  We have no control over that, nor visibility into it.\n//\n// In some cases, we can have a modifier key, such as ModAlt, that can be\n// generated with a key press.  (This usually is represented by having the\n// high bit set, or in some cases, by sending an ESC prior to the rune.)\n//\n// If the value of Key() is KeyRune, then the actual key value will be\n// available with the Rune() method.  This will be the case for most keys.\n// In most situations, the modifiers will not be set.  For example, if the\n// rune is 'A', this will be reported without the ModShift bit set, since\n// really can't tell if the Shift key was pressed (it might have been CAPSLOCK,\n// or a terminal that only can send capitals, or keyboard with separate\n// capital letters from lower case letters).\n//\n// Generally, terminal applications have far less visibility into keyboard\n// activity than graphical applications.  Hence, they should avoid depending\n// overly much on availability of modifiers, or the availability of any\n// specific keys.\ntype EventKey struct {\n\tt   time.Time\n\tmod ModMask\n\tkey Key\n\tch  rune\n}\n\n// When returns the time when this Event was created, which should closely\n// match the time when the key was pressed.\nfunc (ev *EventKey) When() time.Time {\n\treturn ev.t\n}\n\n// Rune returns the rune corresponding to the key press, if it makes sense.\n// The result is only defined if the value of Key() is KeyRune.\nfunc (ev *EventKey) Rune() rune {\n\treturn ev.ch\n}\n\n// Key returns a virtual key code.  We use this to identify specific key\n// codes, such as KeyEnter, etc.  Most control and function keys are reported\n// with unique Key values.  Normal alphanumeric and punctuation keys will\n// generally return KeyRune here; the specific key can be further decoded\n// using the Rune() function.\nfunc (ev *EventKey) Key() Key {\n\treturn ev.key\n}\n\n// Modifiers returns the modifiers that were present with the key press.  Note\n// that not all platforms and terminals support this equally well, and some\n// cases we will not not know for sure.  Hence, applications should avoid\n// using this in most circumstances.\nfunc (ev *EventKey) Modifiers() ModMask {\n\treturn ev.mod\n}\n\n// KeyNames holds the written names of special keys. Useful to echo back a key\n// name, or to look up a key from a string value.\nvar KeyNames = map[Key]string{\n\tKeyEnter:          \"Enter\",\n\tKeyBackspace:      \"Backspace\",\n\tKeyTab:            \"Tab\",\n\tKeyBacktab:        \"Backtab\",\n\tKeyEsc:            \"Esc\",\n\tKeyBackspace2:     \"Backspace2\",\n\tKeyDelete:         \"Delete\",\n\tKeyInsert:         \"Insert\",\n\tKeyUp:             \"Up\",\n\tKeyDown:           \"Down\",\n\tKeyLeft:           \"Left\",\n\tKeyRight:          \"Right\",\n\tKeyHome:           \"Home\",\n\tKeyEnd:            \"End\",\n\tKeyUpLeft:         \"UpLeft\",\n\tKeyUpRight:        \"UpRight\",\n\tKeyDownLeft:       \"DownLeft\",\n\tKeyDownRight:      \"DownRight\",\n\tKeyCenter:         \"Center\",\n\tKeyPgDn:           \"PgDn\",\n\tKeyPgUp:           \"PgUp\",\n\tKeyClear:          \"Clear\",\n\tKeyExit:           \"Exit\",\n\tKeyCancel:         \"Cancel\",\n\tKeyPause:          \"Pause\",\n\tKeyPrint:          \"Print\",\n\tKeyF1:             \"F1\",\n\tKeyF2:             \"F2\",\n\tKeyF3:             \"F3\",\n\tKeyF4:             \"F4\",\n\tKeyF5:             \"F5\",\n\tKeyF6:             \"F6\",\n\tKeyF7:             \"F7\",\n\tKeyF8:             \"F8\",\n\tKeyF9:             \"F9\",\n\tKeyF10:            \"F10\",\n\tKeyF11:            \"F11\",\n\tKeyF12:            \"F12\",\n\tKeyF13:            \"F13\",\n\tKeyF14:            \"F14\",\n\tKeyF15:            \"F15\",\n\tKeyF16:            \"F16\",\n\tKeyF17:            \"F17\",\n\tKeyF18:            \"F18\",\n\tKeyF19:            \"F19\",\n\tKeyF20:            \"F20\",\n\tKeyF21:            \"F21\",\n\tKeyF22:            \"F22\",\n\tKeyF23:            \"F23\",\n\tKeyF24:            \"F24\",\n\tKeyF25:            \"F25\",\n\tKeyF26:            \"F26\",\n\tKeyF27:            \"F27\",\n\tKeyF28:            \"F28\",\n\tKeyF29:            \"F29\",\n\tKeyF30:            \"F30\",\n\tKeyF31:            \"F31\",\n\tKeyF32:            \"F32\",\n\tKeyF33:            \"F33\",\n\tKeyF34:            \"F34\",\n\tKeyF35:            \"F35\",\n\tKeyF36:            \"F36\",\n\tKeyF37:            \"F37\",\n\tKeyF38:            \"F38\",\n\tKeyF39:            \"F39\",\n\tKeyF40:            \"F40\",\n\tKeyF41:            \"F41\",\n\tKeyF42:            \"F42\",\n\tKeyF43:            \"F43\",\n\tKeyF44:            \"F44\",\n\tKeyF45:            \"F45\",\n\tKeyF46:            \"F46\",\n\tKeyF47:            \"F47\",\n\tKeyF48:            \"F48\",\n\tKeyF49:            \"F49\",\n\tKeyF50:            \"F50\",\n\tKeyF51:            \"F51\",\n\tKeyF52:            \"F52\",\n\tKeyF53:            \"F53\",\n\tKeyF54:            \"F54\",\n\tKeyF55:            \"F55\",\n\tKeyF56:            \"F56\",\n\tKeyF57:            \"F57\",\n\tKeyF58:            \"F58\",\n\tKeyF59:            \"F59\",\n\tKeyF60:            \"F60\",\n\tKeyF61:            \"F61\",\n\tKeyF62:            \"F62\",\n\tKeyF63:            \"F63\",\n\tKeyF64:            \"F64\",\n\tKeyCtrlA:          \"Ctrl-A\",\n\tKeyCtrlB:          \"Ctrl-B\",\n\tKeyCtrlC:          \"Ctrl-C\",\n\tKeyCtrlD:          \"Ctrl-D\",\n\tKeyCtrlE:          \"Ctrl-E\",\n\tKeyCtrlF:          \"Ctrl-F\",\n\tKeyCtrlG:          \"Ctrl-G\",\n\tKeyCtrlJ:          \"Ctrl-J\",\n\tKeyCtrlK:          \"Ctrl-K\",\n\tKeyCtrlL:          \"Ctrl-L\",\n\tKeyCtrlN:          \"Ctrl-N\",\n\tKeyCtrlO:          \"Ctrl-O\",\n\tKeyCtrlP:          \"Ctrl-P\",\n\tKeyCtrlQ:          \"Ctrl-Q\",\n\tKeyCtrlR:          \"Ctrl-R\",\n\tKeyCtrlS:          \"Ctrl-S\",\n\tKeyCtrlT:          \"Ctrl-T\",\n\tKeyCtrlU:          \"Ctrl-U\",\n\tKeyCtrlV:          \"Ctrl-V\",\n\tKeyCtrlW:          \"Ctrl-W\",\n\tKeyCtrlX:          \"Ctrl-X\",\n\tKeyCtrlY:          \"Ctrl-Y\",\n\tKeyCtrlZ:          \"Ctrl-Z\",\n\tKeyCtrlSpace:      \"Ctrl-Space\",\n\tKeyCtrlUnderscore: \"Ctrl-_\",\n\tKeyCtrlRightSq:    \"Ctrl-]\",\n\tKeyCtrlBackslash:  \"Ctrl-\\\\\",\n\tKeyCtrlCarat:      \"Ctrl-^\",\n}\n\n// Name returns a printable value or the key stroke.  This can be used\n// when printing the event, for example.\nfunc (ev *EventKey) Name() string {\n\ts := \"\"\n\tm := []string{}\n\tif ev.mod&ModShift != 0 {\n\t\tm = append(m, \"Shift\")\n\t}\n\tif ev.mod&ModAlt != 0 {\n\t\tm = append(m, \"Alt\")\n\t}\n\tif ev.mod&ModMeta != 0 {\n\t\tm = append(m, \"Meta\")\n\t}\n\tif ev.mod&ModCtrl != 0 {\n\t\tm = append(m, \"Ctrl\")\n\t}\n\n\tok := false\n\tif s, ok = KeyNames[ev.key]; !ok {\n\t\tif ev.key == KeyRune {\n\t\t\ts = \"Rune[\" + string(ev.ch) + \"]\"\n\t\t} else {\n\t\t\ts = fmt.Sprintf(\"Key[%d,%d]\", ev.key, int(ev.ch))\n\t\t}\n\t}\n\tif len(m) != 0 {\n\t\tif ev.mod&ModCtrl != 0 && strings.HasPrefix(s, \"Ctrl-\") {\n\t\t\ts = s[5:]\n\t\t}\n\t\treturn fmt.Sprintf(\"%s+%s\", strings.Join(m, \"+\"), s)\n\t}\n\treturn s\n}\n\n// NewEventKey attempts to create a suitable event.  It parses the various\n// ASCII control sequences if KeyRune is passed for Key, but if the caller\n// has more precise information it should set that specifically.  Callers\n// that aren't sure about modifier state (most) should just pass ModNone.\nfunc NewEventKey(k Key, ch rune, mod ModMask) *EventKey {\n\tif k == KeyRune && (ch < ' ' || ch == 0x7f) {\n\t\t// Turn specials into proper key codes.  This is for\n\t\t// control characters and the DEL.\n\t\tk = Key(ch)\n\t\tif mod == ModNone && ch < ' ' {\n\t\t\tswitch Key(ch) {\n\t\t\tcase KeyBackspace, KeyTab, KeyEsc, KeyEnter:\n\t\t\t\t// these keys are directly typeable without CTRL\n\t\t\tdefault:\n\t\t\t\t// most likely entered with a CTRL keypress\n\t\t\t\tmod = ModCtrl\n\t\t\t}\n\t\t}\n\t}\n\treturn &EventKey{t: time.Now(), key: k, ch: ch, mod: mod}\n}\n\n// ModMask is a mask of modifier keys.  Note that it will not always be\n// possible to report modifier keys.\ntype ModMask int16\n\n// These are the modifiers keys that can be sent either with a key press,\n// or a mouse event.  Note that as of now, due to the confusion associated\n// with Meta, and the lack of support for it on many/most platforms, the\n// current implementations never use it.  Instead, they use ModAlt, even for\n// events that could possibly have been distinguished from ModAlt.\nconst (\n\tModShift ModMask = 1 << iota\n\tModCtrl\n\tModAlt\n\tModMeta\n\tModNone ModMask = 0\n)\n\n// Key is a generic value for representing keys, and especially special\n// keys (function keys, cursor movement keys, etc.)  For normal keys, like\n// ASCII letters, we use KeyRune, and then expect the application to\n// inspect the Rune() member of the EventKey.\ntype Key int16\n\n// This is the list of named keys.  KeyRune is special however, in that it is\n// a place holder key indicating that a printable character was sent.  The\n// actual value of the rune will be transported in the Rune of the associated\n// EventKey.\nconst (\n\tKeyRune Key = iota + 256\n\tKeyUp\n\tKeyDown\n\tKeyRight\n\tKeyLeft\n\tKeyUpLeft\n\tKeyUpRight\n\tKeyDownLeft\n\tKeyDownRight\n\tKeyCenter\n\tKeyPgUp\n\tKeyPgDn\n\tKeyHome\n\tKeyEnd\n\tKeyInsert\n\tKeyDelete\n\tKeyHelp\n\tKeyExit\n\tKeyClear\n\tKeyCancel\n\tKeyPrint\n\tKeyPause\n\tKeyBacktab\n\tKeyF1\n\tKeyF2\n\tKeyF3\n\tKeyF4\n\tKeyF5\n\tKeyF6\n\tKeyF7\n\tKeyF8\n\tKeyF9\n\tKeyF10\n\tKeyF11\n\tKeyF12\n\tKeyF13\n\tKeyF14\n\tKeyF15\n\tKeyF16\n\tKeyF17\n\tKeyF18\n\tKeyF19\n\tKeyF20\n\tKeyF21\n\tKeyF22\n\tKeyF23\n\tKeyF24\n\tKeyF25\n\tKeyF26\n\tKeyF27\n\tKeyF28\n\tKeyF29\n\tKeyF30\n\tKeyF31\n\tKeyF32\n\tKeyF33\n\tKeyF34\n\tKeyF35\n\tKeyF36\n\tKeyF37\n\tKeyF38\n\tKeyF39\n\tKeyF40\n\tKeyF41\n\tKeyF42\n\tKeyF43\n\tKeyF44\n\tKeyF45\n\tKeyF46\n\tKeyF47\n\tKeyF48\n\tKeyF49\n\tKeyF50\n\tKeyF51\n\tKeyF52\n\tKeyF53\n\tKeyF54\n\tKeyF55\n\tKeyF56\n\tKeyF57\n\tKeyF58\n\tKeyF59\n\tKeyF60\n\tKeyF61\n\tKeyF62\n\tKeyF63\n\tKeyF64\n)\n\nconst (\n\t// These key codes are used internally, and will never appear to applications.\n\tkeyPasteStart Key = iota + 16384\n\tkeyPasteEnd\n)\n\n// These are the control keys.  Note that they overlap with other keys,\n// perhaps.  For example, KeyCtrlH is the same as KeyBackspace.\nconst (\n\tKeyCtrlSpace Key = iota\n\tKeyCtrlA\n\tKeyCtrlB\n\tKeyCtrlC\n\tKeyCtrlD\n\tKeyCtrlE\n\tKeyCtrlF\n\tKeyCtrlG\n\tKeyCtrlH\n\tKeyCtrlI\n\tKeyCtrlJ\n\tKeyCtrlK\n\tKeyCtrlL\n\tKeyCtrlM\n\tKeyCtrlN\n\tKeyCtrlO\n\tKeyCtrlP\n\tKeyCtrlQ\n\tKeyCtrlR\n\tKeyCtrlS\n\tKeyCtrlT\n\tKeyCtrlU\n\tKeyCtrlV\n\tKeyCtrlW\n\tKeyCtrlX\n\tKeyCtrlY\n\tKeyCtrlZ\n\tKeyCtrlLeftSq // Escape\n\tKeyCtrlBackslash\n\tKeyCtrlRightSq\n\tKeyCtrlCarat\n\tKeyCtrlUnderscore\n)\n\n// Special values - these are fixed in an attempt to make it more likely\n// that aliases will encode the same way.\n\n// These are the defined ASCII values for key codes.  They generally match\n// with KeyCtrl values.\nconst (\n\tKeyNUL Key = iota\n\tKeySOH\n\tKeySTX\n\tKeyETX\n\tKeyEOT\n\tKeyENQ\n\tKeyACK\n\tKeyBEL\n\tKeyBS\n\tKeyTAB\n\tKeyLF\n\tKeyVT\n\tKeyFF\n\tKeyCR\n\tKeySO\n\tKeySI\n\tKeyDLE\n\tKeyDC1\n\tKeyDC2\n\tKeyDC3\n\tKeyDC4\n\tKeyNAK\n\tKeySYN\n\tKeyETB\n\tKeyCAN\n\tKeyEM\n\tKeySUB\n\tKeyESC\n\tKeyFS\n\tKeyGS\n\tKeyRS\n\tKeyUS\n\tKeyDEL Key = 0x7F\n)\n\n// These keys are aliases for other names.\nconst (\n\tKeyBackspace  = KeyBS\n\tKeyTab        = KeyTAB\n\tKeyEsc        = KeyESC\n\tKeyEscape     = KeyESC\n\tKeyEnter      = KeyCR\n\tKeyBackspace2 = KeyDEL\n)\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/mouse.go",
    "content": "// Copyright 2020 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"time\"\n)\n\n// EventMouse is a mouse event.  It is sent on either mouse up or mouse down\n// events.  It is also sent on mouse motion events - if the terminal supports\n// it.  We make every effort to ensure that mouse release events are delivered.\n// Hence, click drag can be identified by a motion event with the mouse down,\n// without any intervening button release.  On some terminals only the initiating\n// press and terminating release event will be delivered.\n//\n// Mouse wheel events, when reported, may appear on their own as individual\n// impulses; that is, there will normally not be a release event delivered\n// for mouse wheel movements.\n//\n// Most terminals cannot report the state of more than one button at a time --\n// and some cannot report motion events unless a button is pressed.\n//\n// Applications can inspect the time between events to resolve double or\n// triple clicks.\ntype EventMouse struct {\n\tt   time.Time\n\tbtn ButtonMask\n\tmod ModMask\n\tx   int\n\ty   int\n}\n\n// When returns the time when this EventMouse was created.\nfunc (ev *EventMouse) When() time.Time {\n\treturn ev.t\n}\n\n// Buttons returns the list of buttons that were pressed or wheel motions.\nfunc (ev *EventMouse) Buttons() ButtonMask {\n\treturn ev.btn\n}\n\n// Modifiers returns a list of keyboard modifiers that were pressed\n// with the mouse button(s).\nfunc (ev *EventMouse) Modifiers() ModMask {\n\treturn ev.mod\n}\n\n// Position returns the mouse position in character cells.  The origin\n// 0, 0 is at the upper left corner.\nfunc (ev *EventMouse) Position() (int, int) {\n\treturn ev.x, ev.y\n}\n\n// NewEventMouse is used to create a new mouse event.  Applications\n// shouldn't need to use this; its mostly for screen implementors.\nfunc NewEventMouse(x, y int, btn ButtonMask, mod ModMask) *EventMouse {\n\treturn &EventMouse{t: time.Now(), x: x, y: y, btn: btn, mod: mod}\n}\n\n// ButtonMask is a mask of mouse buttons and wheel events.  Mouse button presses\n// are normally delivered as both press and release events.  Mouse wheel events\n// are normally just single impulse events.  Windows supports up to eight\n// separate buttons plus all four wheel directions, but XTerm can only support\n// mouse buttons 1-3 and wheel up/down.  Its not unheard of for terminals\n// to support only one or two buttons (think Macs).  Old terminals, and true\n// emulations (such as vt100) won't support mice at all, of course.\ntype ButtonMask int16\n\n// These are the actual button values.  Note that tcell version 1.x reversed buttons\n// two and three on *nix based terminals.  We use button 1 as the primary, and\n// button 2 as the secondary, and button 3 (which is often missing) as the middle.\nconst (\n\tButton1 ButtonMask = 1 << iota // Usually the left (primary) mouse button.\n\tButton2                        // Usually the right (secondary) mouse button.\n\tButton3                        // Usually the middle mouse button.\n\tButton4                        // Often a side button (thumb/next).\n\tButton5                        // Often a side button (thumb/prev).\n\tButton6\n\tButton7\n\tButton8\n\tWheelUp                   // Wheel motion up/away from user.\n\tWheelDown                 // Wheel motion down/towards user.\n\tWheelLeft                 // Wheel motion to left.\n\tWheelRight                // Wheel motion to right.\n\tButtonNone ButtonMask = 0 // No button or wheel events.\n\n\tButtonPrimary   = Button1\n\tButtonSecondary = Button2\n\tButtonMiddle    = Button3\n)\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/nonblock_bsd.go",
    "content": "// Copyright 2021 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build darwin || dragonfly || freebsd || netbsd || openbsd\n// +build darwin dragonfly freebsd netbsd openbsd\n\npackage tcell\n\nimport (\n\t\"syscall\"\n\n\t\"golang.org/x/sys/unix\"\n)\n\n// BSD systems use TIOC style ioctls.\n\n// tcSetBufParams is used by the tty driver on UNIX systems to configure the\n// buffering parameters (minimum character count and minimum wait time in msec.)\n// This also waits for output to drain first.\nfunc tcSetBufParams(fd int, vMin uint8, vTime uint8) error {\n\t_ = syscall.SetNonblock(fd, true)\n\ttio, err := unix.IoctlGetTermios(fd, unix.TIOCGETA)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttio.Cc[unix.VMIN] = vMin\n\ttio.Cc[unix.VTIME] = vTime\n\tif err = unix.IoctlSetTermios(fd, unix.TIOCSETAW, tio); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/nonblock_unix.go",
    "content": "// Copyright 2021 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux || aix || zos || solaris\n// +build linux aix zos solaris\n\npackage tcell\n\nimport (\n\t\"syscall\"\n\n\t\"golang.org/x/sys/unix\"\n)\n\n// tcSetBufParams is used by the tty driver on UNIX systems to configure the\n// buffering parameters (minimum character count and minimum wait time in msec.)\n// This also waits for output to drain first.\nfunc tcSetBufParams(fd int, vMin uint8, vTime uint8) error {\n\t_ = syscall.SetNonblock(fd, true)\n\ttio, err := unix.IoctlGetTermios(fd, unix.TCGETS)\n\tif err != nil {\n\t\treturn err\n\t}\n\ttio.Cc[unix.VMIN] = vMin\n\ttio.Cc[unix.VTIME] = vTime\n\tif err = unix.IoctlSetTermios(fd, unix.TCSETSW, tio); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/paste.go",
    "content": "// Copyright 2020 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"time\"\n)\n\n// EventPaste is used to mark the start and end of a bracketed paste.\n// An event with .Start() true will be sent to mark the start.\n// Then a number of keys will be sent to indicate that the content\n// is pasted in.  At the end, an event with .Start() false will be sent.\ntype EventPaste struct {\n\tstart bool\n\tt     time.Time\n}\n\n// When returns the time when this EventPaste was created.\nfunc (ev *EventPaste) When() time.Time {\n\treturn ev.t\n}\n\n// Start returns true if this is the start of a paste.\nfunc (ev *EventPaste) Start() bool {\n\treturn ev.start\n}\n\n// End returns true if this is the end of a paste.\nfunc (ev *EventPaste) End() bool {\n\treturn !ev.start\n}\n\n// NewEventPaste returns a new EventPaste.\nfunc NewEventPaste(start bool) *EventPaste {\n\treturn &EventPaste{t: time.Now(), start: start}\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/resize.go",
    "content": "// Copyright 2015 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"time\"\n)\n\n// EventResize is sent when the window size changes.\ntype EventResize struct {\n\tt  time.Time\n\tws WindowSize\n}\n\n// NewEventResize creates an EventResize with the new updated window size,\n// which is given in character cells.\nfunc NewEventResize(width, height int) *EventResize {\n\tws := WindowSize{\n\t\tWidth:  width,\n\t\tHeight: height,\n\t}\n\treturn &EventResize{t: time.Now(), ws: ws}\n}\n\n// When returns the time when the Event was created.\nfunc (ev *EventResize) When() time.Time {\n\treturn ev.t\n}\n\n// Size returns the new window size as width, height in character cells.\nfunc (ev *EventResize) Size() (int, int) {\n\treturn ev.ws.Width, ev.ws.Height\n}\n\n// PixelSize returns the new window size as width, height in pixels. The size\n// will be 0,0 if the screen doesn't support this feature\nfunc (ev *EventResize) PixelSize() (int, int) {\n\treturn ev.ws.PixelWidth, ev.ws.PixelHeight\n}\n\ntype WindowSize struct {\n\tWidth       int\n\tHeight      int\n\tPixelWidth  int\n\tPixelHeight int\n}\n\n// CellDimensions returns the dimensions of a single cell, in pixels\nfunc (ws WindowSize) CellDimensions() (int, int) {\n\tif ws.PixelWidth == 0 || ws.PixelHeight == 0 {\n\t\treturn 0, 0\n\t}\n\treturn (ws.PixelWidth / ws.Width), (ws.PixelHeight / ws.Height)\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/runes.go",
    "content": "// Copyright 2015 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\n// The names of these constants are chosen to match Terminfo names,\n// modulo case, and changing the prefix from ACS_ to Rune.  These are\n// the runes we provide extra special handling for, with ASCII fallbacks\n// for terminals that lack them.\nconst (\n\tRuneSterling = '£'\n\tRuneDArrow   = '↓'\n\tRuneLArrow   = '←'\n\tRuneRArrow   = '→'\n\tRuneUArrow   = '↑'\n\tRuneBullet   = '·'\n\tRuneBoard    = '░'\n\tRuneCkBoard  = '▒'\n\tRuneDegree   = '°'\n\tRuneDiamond  = '◆'\n\tRuneGEqual   = '≥'\n\tRunePi       = 'π'\n\tRuneHLine    = '─'\n\tRuneLantern  = '§'\n\tRunePlus     = '┼'\n\tRuneLEqual   = '≤'\n\tRuneLLCorner = '└'\n\tRuneLRCorner = '┘'\n\tRuneNEqual   = '≠'\n\tRunePlMinus  = '±'\n\tRuneS1       = '⎺'\n\tRuneS3       = '⎻'\n\tRuneS7       = '⎼'\n\tRuneS9       = '⎽'\n\tRuneBlock    = '█'\n\tRuneTTee     = '┬'\n\tRuneRTee     = '┤'\n\tRuneLTee     = '├'\n\tRuneBTee     = '┴'\n\tRuneULCorner = '┌'\n\tRuneURCorner = '┐'\n\tRuneVLine    = '│'\n)\n\n// RuneFallbacks is the default map of fallback strings that will be\n// used to replace a rune when no other more appropriate transformation\n// is available, and the rune cannot be displayed directly.\n//\n// New entries may be added to this map over time, as it becomes clear\n// that such is desirable.  Characters that represent either letters or\n// numbers should not be added to this list unless it is certain that\n// the meaning will still convey unambiguously.\n//\n// As an example, it would be appropriate to add an ASCII mapping for\n// the full width form of the letter 'A', but it would not be appropriate\n// to do so a glyph representing the country China.\n//\n// Programs that desire richer fallbacks may register additional ones,\n// or change or even remove these mappings with Screen.RegisterRuneFallback\n// Screen.UnregisterRuneFallback methods.\n//\n// Note that Unicode is presumed to be able to display all glyphs.\n// This is a pretty poor assumption, but there is no easy way to\n// figure out which glyphs are supported in a given font.  Hence,\n// some care in selecting the characters you support in your application\n// is still appropriate.\nvar RuneFallbacks = map[rune]string{\n\tRuneSterling: \"f\",\n\tRuneDArrow:   \"v\",\n\tRuneLArrow:   \"<\",\n\tRuneRArrow:   \">\",\n\tRuneUArrow:   \"^\",\n\tRuneBullet:   \"o\",\n\tRuneBoard:    \"#\",\n\tRuneCkBoard:  \":\",\n\tRuneDegree:   \"\\\\\",\n\tRuneDiamond:  \"+\",\n\tRuneGEqual:   \">\",\n\tRunePi:       \"*\",\n\tRuneHLine:    \"-\",\n\tRuneLantern:  \"#\",\n\tRunePlus:     \"+\",\n\tRuneLEqual:   \"<\",\n\tRuneLLCorner: \"+\",\n\tRuneLRCorner: \"+\",\n\tRuneNEqual:   \"!\",\n\tRunePlMinus:  \"#\",\n\tRuneS1:       \"~\",\n\tRuneS3:       \"-\",\n\tRuneS7:       \"-\",\n\tRuneS9:       \"_\",\n\tRuneBlock:    \"#\",\n\tRuneTTee:     \"+\",\n\tRuneRTee:     \"+\",\n\tRuneLTee:     \"+\",\n\tRuneBTee:     \"+\",\n\tRuneULCorner: \"+\",\n\tRuneURCorner: \"+\",\n\tRuneVLine:    \"|\",\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/screen.go",
    "content": "// Copyright 2023 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport \"sync\"\n\n// Screen represents the physical (or emulated) screen.\n// This can be a terminal window or a physical console.  Platforms implement\n// this differently.\ntype Screen interface {\n\t// Init initializes the screen for use.\n\tInit() error\n\n\t// Fini finalizes the screen also releasing resources.\n\tFini()\n\n\t// Clear logically erases the screen.\n\t// This is effectively a short-cut for Fill(' ', StyleDefault).\n\tClear()\n\n\t// Fill fills the screen with the given character and style.\n\t// The effect of filling the screen is not visible until Show\n\t// is called (or Sync).\n\tFill(rune, Style)\n\n\t// SetCell is an older API, and will be removed.  Please use\n\t// SetContent instead; SetCell is implemented in terms of SetContent.\n\tSetCell(x int, y int, style Style, ch ...rune)\n\n\t// GetContent returns the contents at the given location.  If the\n\t// coordinates are out of range, then the values will be 0, nil,\n\t// StyleDefault.  Note that the contents returned are logical contents\n\t// and may not actually be what is displayed, but rather are what will\n\t// be displayed if Show() or Sync() is called.  The width is the width\n\t// in screen cells; most often this will be 1, but some East Asian\n\t// characters and emoji require two cells.\n\tGetContent(x, y int) (primary rune, combining []rune, style Style, width int)\n\n\t// SetContent sets the contents of the given cell location.  If\n\t// the coordinates are out of range, then the operation is ignored.\n\t//\n\t// The first rune is the primary non-zero width rune.  The array\n\t// that follows is a possible list of combining characters to append,\n\t// and will usually be nil (no combining characters.)\n\t//\n\t// The results are not displayed until Show() or Sync() is called.\n\t//\n\t// Note that wide (East Asian full width and emoji) runes occupy two cells,\n\t// and attempts to place character at next cell to the right will have\n\t// undefined effects.  Wide runes that are printed in the\n\t// last column will be replaced with a single width space on output.\n\tSetContent(x int, y int, primary rune, combining []rune, style Style)\n\n\t// SetStyle sets the default style to use when clearing the screen\n\t// or when StyleDefault is specified.  If it is also StyleDefault,\n\t// then whatever system/terminal default is relevant will be used.\n\tSetStyle(style Style)\n\n\t// ShowCursor is used to display the cursor at a given location.\n\t// If the coordinates -1, -1 are given or are otherwise outside the\n\t// dimensions of the screen, the cursor will be hidden.\n\tShowCursor(x int, y int)\n\n\t// HideCursor is used to hide the cursor.  It's an alias for\n\t// ShowCursor(-1, -1).sim\n\tHideCursor()\n\n\t// SetCursorStyle is used to set the cursor style.  If the style\n\t// is not supported (or cursor styles are not supported at all),\n\t// then this will have no effect.\n\tSetCursorStyle(CursorStyle)\n\n\t// Size returns the screen size as width, height.  This changes in\n\t// response to a call to Clear or Flush.\n\tSize() (width, height int)\n\n\t// ChannelEvents is an infinite loop that waits for an event and\n\t// channels it into the user provided channel ch.  Closing the\n\t// quit channel and calling the Fini method are cancellation\n\t// signals.  When a cancellation signal is received the method\n\t// returns after closing ch.\n\t//\n\t// This method should be used as a goroutine.\n\t//\n\t// NOTE: PollEvent should not be called while this method is running.\n\tChannelEvents(ch chan<- Event, quit <-chan struct{})\n\n\t// PollEvent waits for events to arrive.  Main application loops\n\t// must spin on this to prevent the application from stalling.\n\t// Furthermore, this will return nil if the Screen is finalized.\n\tPollEvent() Event\n\n\t// HasPendingEvent returns true if PollEvent would return an event\n\t// without blocking.  If the screen is stopped and PollEvent would\n\t// return nil, then the return value from this function is unspecified.\n\t// The purpose of this function is to allow multiple events to be collected\n\t// at once, to minimize screen redraws.\n\tHasPendingEvent() bool\n\n\t// PostEvent tries to post an event into the event stream.  This\n\t// can fail if the event queue is full.  In that case, the event\n\t// is dropped, and ErrEventQFull is returned.\n\tPostEvent(ev Event) error\n\n\t// Deprecated: PostEventWait is unsafe, and will be removed\n\t// in the future.\n\t//\n\t// PostEventWait is like PostEvent, but if the queue is full, it\n\t// blocks until there is space in the queue, making delivery\n\t// reliable.  However, it is VERY important that this function\n\t// never be called from within whatever event loop is polling\n\t// with PollEvent(), otherwise a deadlock may arise.\n\t//\n\t// For this reason, when using this function, the use of a\n\t// Goroutine is recommended to ensure no deadlock can occur.\n\tPostEventWait(ev Event)\n\n\t// EnableMouse enables the mouse.  (If your terminal supports it.)\n\t// If no flags are specified, then all events are reported, if the\n\t// terminal supports them.\n\tEnableMouse(...MouseFlags)\n\n\t// DisableMouse disables the mouse.\n\tDisableMouse()\n\n\t// EnablePaste enables bracketed paste mode, if supported.\n\tEnablePaste()\n\n\t// DisablePaste disables bracketed paste mode.\n\tDisablePaste()\n\n\t// EnableFocus enables reporting of focus events, if your terminal supports it.\n\tEnableFocus()\n\n\t// DisableFocus disables reporting of focus events.\n\tDisableFocus()\n\n\t// HasMouse returns true if the terminal (apparently) supports a\n\t// mouse.  Note that the return value of true doesn't guarantee that\n\t// a mouse/pointing device is present; a false return definitely\n\t// indicates no mouse support is available.\n\tHasMouse() bool\n\n\t// Colors returns the number of colors.  All colors are assumed to\n\t// use the ANSI color map.  If a terminal is monochrome, it will\n\t// return 0.\n\tColors() int\n\n\t// Show makes all the content changes made using SetContent() visible\n\t// on the display.\n\t//\n\t// It does so in the most efficient and least visually disruptive\n\t// manner possible.\n\tShow()\n\n\t// Sync works like Show(), but it updates every visible cell on the\n\t// physical display, assuming that it is not synchronized with any\n\t// internal model.  This may be both expensive and visually jarring,\n\t// so it should only be used when believed to actually be necessary.\n\t//\n\t// Typically, this is called as a result of a user-requested redraw\n\t// (e.g. to clear up on-screen corruption caused by some other program),\n\t// or during a resize event.\n\tSync()\n\n\t// CharacterSet returns information about the character set.\n\t// This isn't the full locale, but it does give us the input/output\n\t// character set.  Note that this is just for diagnostic purposes,\n\t// we normally translate input/output to/from UTF-8, regardless of\n\t// what the user's environment is.\n\tCharacterSet() string\n\n\t// RegisterRuneFallback adds a fallback for runes that are not\n\t// part of the character set -- for example one could register\n\t// o as a fallback for ø.  This should be done cautiously for\n\t// characters that might be displayed ordinarily in language\n\t// specific text -- characters that could change the meaning of\n\t// written text would be dangerous.  The intention here is to\n\t// facilitate fallback characters in pseudo-graphical applications.\n\t//\n\t// If the terminal has fallbacks already in place via an alternate\n\t// character set, those are used in preference.  Also, standard\n\t// fallbacks for graphical characters in the alternate character set\n\t// terminfo string are registered implicitly.\n\t//\n\t// The display string should be the same width as original rune.\n\t// This makes it possible to register two character replacements\n\t// for full width East Asian characters, for example.\n\t//\n\t// It is recommended that replacement strings consist only of\n\t// 7-bit ASCII, since other characters may not display everywhere.\n\tRegisterRuneFallback(r rune, subst string)\n\n\t// UnregisterRuneFallback unmaps a replacement.  It will unmap\n\t// the implicit ASCII replacements for alternate characters as well.\n\t// When an unmapped char needs to be displayed, but no suitable\n\t// glyph is available, '?' is emitted instead.  It is not possible\n\t// to \"disable\" the use of alternate characters that are supported\n\t// by your terminal except by changing the terminal database.\n\tUnregisterRuneFallback(r rune)\n\n\t// CanDisplay returns true if the given rune can be displayed on\n\t// this screen.  Note that this is a best-guess effort -- whether\n\t// your fonts support the character or not may be questionable.\n\t// Mostly this is for folks who work outside of Unicode.\n\t//\n\t// If checkFallbacks is true, then if any (possibly imperfect)\n\t// fallbacks are registered, this will return true.  This will\n\t// also return true if the terminal can replace the glyph with\n\t// one that is visually indistinguishable from the one requested.\n\tCanDisplay(r rune, checkFallbacks bool) bool\n\n\t// Resize does nothing, since it's generally not possible to\n\t// ask a screen to resize, but it allows the Screen to implement\n\t// the View interface.\n\tResize(int, int, int, int)\n\n\t// HasKey returns true if the keyboard is believed to have the\n\t// key.  In some cases a keyboard may have keys with this name\n\t// but no support for them, while in others a key may be reported\n\t// as supported but not actually be usable (such as some emulators\n\t// that hijack certain keys).  Its best not to depend to strictly\n\t// on this function, but it can be used for hinting when building\n\t// menus, displayed hot-keys, etc.  Note that KeyRune (literal\n\t// runes) is always true.\n\tHasKey(Key) bool\n\n\t// Suspend pauses input and output processing.  It also restores the\n\t// terminal settings to what they were when the application started.\n\t// This can be used to, for example, run a sub-shell.\n\tSuspend() error\n\n\t// Resume resumes after Suspend().\n\tResume() error\n\n\t// Beep attempts to sound an OS-dependent audible alert and returns an error\n\t// when unsuccessful.\n\tBeep() error\n\n\t// SetSize attempts to resize the window.  It also invalidates the cells and\n\t// calls the resize function.  Note that if the window size is changed, it will\n\t// not be restored upon application exit.\n\t//\n\t// Many terminals cannot support this.  Perversely, the \"modern\" Windows Terminal\n\t// does not support application-initiated resizing, whereas the legacy terminal does.\n\t// Also, some emulators can support this but may have it disabled by default.\n\tSetSize(int, int)\n\n\t// LockRegion sets or unsets a lock on a region of cells. A lock on a\n\t// cell prevents the cell from being redrawn.\n\tLockRegion(x, y, width, height int, lock bool)\n\n\t// Tty returns the underlying Tty. If the screen is not a terminal, the\n\t// returned bool will be false\n\tTty() (Tty, bool)\n}\n\n// NewScreen returns a default Screen suitable for the user's terminal\n// environment.\nfunc NewScreen() (Screen, error) {\n\t// Windows is happier if we try for a console screen first.\n\tif s, _ := NewConsoleScreen(); s != nil {\n\t\treturn s, nil\n\t} else if s, e := NewTerminfoScreen(); s != nil {\n\t\treturn s, nil\n\t} else {\n\t\treturn nil, e\n\t}\n}\n\n// MouseFlags are options to modify the handling of mouse events.\n// Actual events can be ORed together.\ntype MouseFlags int\n\nconst (\n\tMouseButtonEvents = MouseFlags(1) // Click events only\n\tMouseDragEvents   = MouseFlags(2) // Click-drag events (includes button events)\n\tMouseMotionEvents = MouseFlags(4) // All mouse events (includes click and drag events)\n)\n\n// CursorStyle represents a given cursor style, which can include the shape and\n// whether the cursor blinks or is solid.  Support for changing this is not universal.\ntype CursorStyle int\n\nconst (\n\tCursorStyleDefault = CursorStyle(iota) // The default\n\tCursorStyleBlinkingBlock\n\tCursorStyleSteadyBlock\n\tCursorStyleBlinkingUnderline\n\tCursorStyleSteadyUnderline\n\tCursorStyleBlinkingBar\n\tCursorStyleSteadyBar\n)\n\n// screenImpl is a subset of Screen that can be used with baseScreen to formulate\n// a complete implementation of Screen.  See Screen for doc comments about methods.\ntype screenImpl interface {\n\tInit() error\n\tFini()\n\tSetStyle(style Style)\n\tShowCursor(x int, y int)\n\tHideCursor()\n\tSetCursorStyle(CursorStyle)\n\tSize() (width, height int)\n\tEnableMouse(...MouseFlags)\n\tDisableMouse()\n\tEnablePaste()\n\tDisablePaste()\n\tEnableFocus()\n\tDisableFocus()\n\tHasMouse() bool\n\tColors() int\n\tShow()\n\tSync()\n\tCharacterSet() string\n\tRegisterRuneFallback(r rune, subst string)\n\tUnregisterRuneFallback(r rune)\n\tCanDisplay(r rune, checkFallbacks bool) bool\n\tResize(int, int, int, int)\n\tHasKey(Key) bool\n\tSuspend() error\n\tResume() error\n\tBeep() error\n\tSetSize(int, int)\n\tTty() (Tty, bool)\n\n\t// Following methods are not part of the Screen api, but are used for interaction with\n\t// the common layer code.\n\n\t// Locker locks the underlying data structures so that we can access them\n\t// in a thread-safe way.\n\tsync.Locker\n\n\t// GetCells returns a pointer to the underlying CellBuffer that the implementation uses.\n\t// Various methods will write to these for performance, but will use the lock to do so.\n\tGetCells() *CellBuffer\n\n\t// StopQ is closed when the screen is shut down via Fini.  It remains open if the screen\n\t// is merely suspended.\n\tStopQ() <-chan struct{}\n\n\t// EventQ delivers events.  Events are posted to this by the screen in response to\n\t// key presses, resizes, etc.  Application code receives events from this via the\n\t// Screen.PollEvent, Screen.ChannelEvents APIs.\n\tEventQ() chan Event\n}\n\ntype baseScreen struct {\n\tscreenImpl\n}\n\nfunc (b *baseScreen) SetCell(x int, y int, style Style, ch ...rune) {\n\tif len(ch) > 0 {\n\t\tb.SetContent(x, y, ch[0], ch[1:], style)\n\t} else {\n\t\tb.SetContent(x, y, ' ', nil, style)\n\t}\n}\n\nfunc (b *baseScreen) Clear() {\n\tb.Fill(' ', StyleDefault)\n}\n\nfunc (b *baseScreen) Fill(r rune, style Style) {\n\tcb := b.GetCells()\n\tb.Lock()\n\tcb.Fill(r, style)\n\tb.Unlock()\n}\n\nfunc (b *baseScreen) SetContent(x, y int, mainc rune, combc []rune, st Style) {\n\n\tcells := b.GetCells()\n\tb.Lock()\n\tcells.SetContent(x, y, mainc, combc, st)\n\tb.Unlock()\n}\n\nfunc (b *baseScreen) GetContent(x, y int) (rune, []rune, Style, int) {\n\tvar primary rune\n\tvar combining []rune\n\tvar style Style\n\tvar width int\n\tcells := b.GetCells()\n\tb.Lock()\n\tprimary, combining, style, width = cells.GetContent(x, y)\n\tb.Unlock()\n\treturn primary, combining, style, width\n}\n\nfunc (b *baseScreen) LockRegion(x, y, width, height int, lock bool) {\n\tcells := b.GetCells()\n\tb.Lock()\n\tfor j := y; j < (y + height); j += 1 {\n\t\tfor i := x; i < (x + width); i += 1 {\n\t\t\tswitch lock {\n\t\t\tcase true:\n\t\t\t\tcells.LockCell(i, j)\n\t\t\tcase false:\n\t\t\t\tcells.UnlockCell(i, j)\n\t\t\t}\n\t\t}\n\t}\n\tb.Unlock()\n}\n\nfunc (b *baseScreen) ChannelEvents(ch chan<- Event, quit <-chan struct{}) {\n\tdefer close(ch)\n\tfor {\n\t\tselect {\n\t\tcase <-quit:\n\t\t\treturn\n\t\tcase <-b.StopQ():\n\t\t\treturn\n\t\tcase ev := <-b.EventQ():\n\t\t\tselect {\n\t\t\tcase <-quit:\n\t\t\t\treturn\n\t\t\tcase <-b.StopQ():\n\t\t\t\treturn\n\t\t\tcase ch <- ev:\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (b *baseScreen) PollEvent() Event {\n\tselect {\n\tcase <-b.StopQ():\n\t\treturn nil\n\tcase ev := <-b.EventQ():\n\t\treturn ev\n\t}\n}\n\nfunc (b *baseScreen) HasPendingEvent() bool {\n\treturn len(b.EventQ()) > 0\n}\n\nfunc (b *baseScreen) PostEventWait(ev Event) {\n\tselect {\n\tcase b.EventQ() <- ev:\n\tcase <-b.StopQ():\n\t}\n}\n\nfunc (b *baseScreen) PostEvent(ev Event) error {\n\tselect {\n\tcase b.EventQ() <- ev:\n\t\treturn nil\n\tdefault:\n\t\treturn ErrEventQFull\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/simulation.go",
    "content": "// Copyright 2023 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"sync\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n)\n\n// NewSimulationScreen returns a SimulationScreen.  Note that\n// SimulationScreen is also a Screen.\nfunc NewSimulationScreen(charset string) SimulationScreen {\n\tif charset == \"\" {\n\t\tcharset = \"UTF-8\"\n\t}\n\tss := &simscreen{charset: charset}\n\tss.Screen = &baseScreen{screenImpl: ss}\n\treturn ss\n}\n\n// SimulationScreen represents a screen simulation.  This is intended to\n// be a superset of normal Screens, but also adds some important interfaces\n// for testing.\ntype SimulationScreen interface {\n\tScreen\n\n\t// InjectKeyBytes injects a stream of bytes corresponding to\n\t// the native encoding (see charset).  It turns true if the entire\n\t// set of bytes were processed and delivered as KeyEvents, false\n\t// if any bytes were not fully understood.  Any bytes that are not\n\t// fully converted are discarded.\n\tInjectKeyBytes(buf []byte) bool\n\n\t// InjectKey injects a key event.  The rune is a UTF-8 rune, post\n\t// any translation.\n\tInjectKey(key Key, r rune, mod ModMask)\n\n\t// InjectMouse injects a mouse event.\n\tInjectMouse(x, y int, buttons ButtonMask, mod ModMask)\n\n\t// GetContents returns screen contents as an array of\n\t// cells, along with the physical width & height.   Note that the\n\t// physical contents will be used until the next time SetSize()\n\t// is called.\n\tGetContents() (cells []SimCell, width int, height int)\n\n\t// GetCursor returns the cursor details.\n\tGetCursor() (x int, y int, visible bool)\n}\n\n// SimCell represents a simulated screen cell.  The purpose of this\n// is to track on screen content.\ntype SimCell struct {\n\t// Bytes is the actual character bytes.  Normally this is\n\t// rune data, but it could be be data in another encoding system.\n\tBytes []byte\n\n\t// Style is the style used to display the data.\n\tStyle Style\n\n\t// Runes is the list of runes, unadulterated, in UTF-8.\n\tRunes []rune\n}\n\ntype simscreen struct {\n\tphysw int\n\tphysh int\n\tfini  bool\n\tstyle Style\n\tevch  chan Event\n\tquit  chan struct{}\n\n\tfront     []SimCell\n\tback      CellBuffer\n\tclear     bool\n\tcursorx   int\n\tcursory   int\n\tcursorvis bool\n\tmouse     bool\n\tpaste     bool\n\tcharset   string\n\tencoder   transform.Transformer\n\tdecoder   transform.Transformer\n\tfillchar  rune\n\tfillstyle Style\n\tfallback  map[rune]string\n\n\tScreen\n\tsync.Mutex\n}\n\nfunc (s *simscreen) Init() error {\n\ts.evch = make(chan Event, 10)\n\ts.quit = make(chan struct{})\n\ts.fillchar = 'X'\n\ts.fillstyle = StyleDefault\n\ts.mouse = false\n\ts.physw = 80\n\ts.physh = 25\n\ts.cursorx = -1\n\ts.cursory = -1\n\ts.style = StyleDefault\n\n\tif enc := GetEncoding(s.charset); enc != nil {\n\t\ts.encoder = enc.NewEncoder()\n\t\ts.decoder = enc.NewDecoder()\n\t} else {\n\t\treturn ErrNoCharset\n\t}\n\n\ts.front = make([]SimCell, s.physw*s.physh)\n\ts.back.Resize(80, 25)\n\n\t// default fallbacks\n\ts.fallback = make(map[rune]string)\n\tfor k, v := range RuneFallbacks {\n\t\ts.fallback[k] = v\n\t}\n\treturn nil\n}\n\nfunc (s *simscreen) Fini() {\n\ts.Lock()\n\ts.fini = true\n\ts.back.Resize(0, 0)\n\ts.Unlock()\n\tif s.quit != nil {\n\t\tclose(s.quit)\n\t}\n\ts.physw = 0\n\ts.physh = 0\n\ts.front = nil\n}\n\nfunc (s *simscreen) SetStyle(style Style) {\n\ts.Lock()\n\ts.style = style\n\ts.Unlock()\n}\n\nfunc (s *simscreen) drawCell(x, y int) int {\n\n\tmainc, combc, style, width := s.back.GetContent(x, y)\n\tif !s.back.Dirty(x, y) {\n\t\treturn width\n\t}\n\tif x >= s.physw || y >= s.physh || x < 0 || y < 0 {\n\t\treturn width\n\t}\n\tsimc := &s.front[(y*s.physw)+x]\n\n\tif style == StyleDefault {\n\t\tstyle = s.style\n\t}\n\tsimc.Style = style\n\tsimc.Runes = append([]rune{mainc}, combc...)\n\n\t// now emit runes - taking care to not overrun width with a\n\t// wide character, and to ensure that we emit exactly one regular\n\t// character followed up by any residual combing characters\n\n\tsimc.Bytes = nil\n\n\tif x > s.physw-width {\n\t\tsimc.Runes = []rune{' '}\n\t\tsimc.Bytes = []byte{' '}\n\t\treturn width\n\t}\n\n\tlbuf := make([]byte, 12)\n\tubuf := make([]byte, 12)\n\tnout := 0\n\n\tfor _, r := range simc.Runes {\n\n\t\tl := utf8.EncodeRune(ubuf, r)\n\n\t\tnout, _, _ = s.encoder.Transform(lbuf, ubuf[:l], true)\n\n\t\tif nout == 0 || lbuf[0] == '\\x1a' {\n\n\t\t\t// skip combining\n\n\t\t\tif subst, ok := s.fallback[r]; ok {\n\t\t\t\tsimc.Bytes = append(simc.Bytes,\n\t\t\t\t\t[]byte(subst)...)\n\n\t\t\t} else if r >= ' ' && r <= '~' {\n\t\t\t\tsimc.Bytes = append(simc.Bytes, byte(r))\n\n\t\t\t} else if simc.Bytes == nil {\n\t\t\t\tsimc.Bytes = append(simc.Bytes, '?')\n\t\t\t}\n\t\t} else {\n\t\t\tsimc.Bytes = append(simc.Bytes, lbuf[:nout]...)\n\t\t}\n\t}\n\ts.back.SetDirty(x, y, false)\n\treturn width\n}\n\nfunc (s *simscreen) ShowCursor(x, y int) {\n\ts.Lock()\n\ts.cursorx, s.cursory = x, y\n\ts.showCursor()\n\ts.Unlock()\n}\n\nfunc (s *simscreen) HideCursor() {\n\ts.ShowCursor(-1, -1)\n}\n\nfunc (s *simscreen) showCursor() {\n\n\tx, y := s.cursorx, s.cursory\n\tif x < 0 || y < 0 || x >= s.physw || y >= s.physh {\n\t\ts.cursorvis = false\n\t} else {\n\t\ts.cursorvis = true\n\t}\n}\n\nfunc (s *simscreen) hideCursor() {\n\t// does not update cursor position\n\ts.cursorvis = false\n}\n\nfunc (s *simscreen) SetCursorStyle(CursorStyle) {}\n\nfunc (s *simscreen) Show() {\n\ts.Lock()\n\ts.resize()\n\ts.draw()\n\ts.Unlock()\n}\n\nfunc (s *simscreen) clearScreen() {\n\t// We emulate a hardware clear by filling with a specific pattern\n\tfor i := range s.front {\n\t\ts.front[i].Style = s.fillstyle\n\t\ts.front[i].Runes = []rune{s.fillchar}\n\t\ts.front[i].Bytes = []byte{byte(s.fillchar)}\n\t}\n\ts.clear = false\n}\n\nfunc (s *simscreen) draw() {\n\ts.hideCursor()\n\tif s.clear {\n\t\ts.clearScreen()\n\t}\n\n\tw, h := s.back.Size()\n\tfor y := 0; y < h; y++ {\n\t\tfor x := 0; x < w; x++ {\n\t\t\twidth := s.drawCell(x, y)\n\t\t\tx += width - 1\n\t\t}\n\t}\n\ts.showCursor()\n}\n\nfunc (s *simscreen) EnableMouse(...MouseFlags) {\n\ts.mouse = true\n}\n\nfunc (s *simscreen) DisableMouse() {\n\ts.mouse = false\n}\n\nfunc (s *simscreen) EnablePaste() {\n\ts.paste = true\n}\n\nfunc (s *simscreen) DisablePaste() {\n\ts.paste = false\n}\n\nfunc (s *simscreen) EnableFocus() {\n}\n\nfunc (s *simscreen) DisableFocus() {\n}\n\nfunc (s *simscreen) Size() (int, int) {\n\ts.Lock()\n\tw, h := s.back.Size()\n\ts.Unlock()\n\treturn w, h\n}\n\nfunc (s *simscreen) resize() {\n\tw, h := s.physw, s.physh\n\tow, oh := s.back.Size()\n\tif w != ow || h != oh {\n\t\ts.back.Resize(w, h)\n\t\tev := NewEventResize(w, h)\n\t\ts.postEvent(ev)\n\t}\n}\n\nfunc (s *simscreen) Colors() int {\n\treturn 256\n}\n\nfunc (s *simscreen) postEvent(ev Event) {\n\tselect {\n\tcase s.evch <- ev:\n\tcase <-s.quit:\n\t}\n}\n\nfunc (s *simscreen) InjectMouse(x, y int, buttons ButtonMask, mod ModMask) {\n\tev := NewEventMouse(x, y, buttons, mod)\n\ts.postEvent(ev)\n}\n\nfunc (s *simscreen) InjectKey(key Key, r rune, mod ModMask) {\n\tev := NewEventKey(key, r, mod)\n\ts.postEvent(ev)\n}\n\nfunc (s *simscreen) InjectKeyBytes(b []byte) bool {\n\tfailed := false\n\nouter:\n\tfor len(b) > 0 {\n\t\tif b[0] >= ' ' && b[0] <= 0x7F {\n\t\t\t// printable ASCII easy to deal with -- no encodings\n\t\t\tev := NewEventKey(KeyRune, rune(b[0]), ModNone)\n\t\t\ts.postEvent(ev)\n\t\t\tb = b[1:]\n\t\t\tcontinue\n\t\t}\n\n\t\tif b[0] < 0x80 {\n\t\t\tmod := ModNone\n\t\t\t// No encodings start with low numbered values\n\t\t\tif Key(b[0]) >= KeyCtrlA && Key(b[0]) <= KeyCtrlZ {\n\t\t\t\tmod = ModCtrl\n\t\t\t}\n\t\t\tev := NewEventKey(Key(b[0]), 0, mod)\n\t\t\ts.postEvent(ev)\n\t\t\tb = b[1:]\n\t\t\tcontinue\n\t\t}\n\n\t\tutfb := make([]byte, len(b)*4) // worst case\n\t\tfor l := 1; l < len(b); l++ {\n\t\t\ts.decoder.Reset()\n\t\t\tnout, nin, _ := s.decoder.Transform(utfb, b[:l], true)\n\n\t\t\tif nout != 0 {\n\t\t\t\tr, _ := utf8.DecodeRune(utfb[:nout])\n\t\t\t\tif r != utf8.RuneError {\n\t\t\t\t\tev := NewEventKey(KeyRune, r, ModNone)\n\t\t\t\t\ts.postEvent(ev)\n\t\t\t\t}\n\t\t\t\tb = b[nin:]\n\t\t\t\tcontinue outer\n\t\t\t}\n\t\t}\n\t\tfailed = true\n\t\tb = b[1:]\n\t\tcontinue\n\t}\n\n\treturn !failed\n}\n\nfunc (s *simscreen) Sync() {\n\ts.Lock()\n\ts.clear = true\n\ts.resize()\n\ts.back.Invalidate()\n\ts.draw()\n\ts.Unlock()\n}\n\nfunc (s *simscreen) CharacterSet() string {\n\treturn s.charset\n}\n\nfunc (s *simscreen) SetSize(w, h int) {\n\ts.Lock()\n\tnewc := make([]SimCell, w*h)\n\tfor row := 0; row < h && row < s.physh; row++ {\n\t\tfor col := 0; col < w && col < s.physw; col++ {\n\t\t\tnewc[(row*w)+col] = s.front[(row*s.physw)+col]\n\t\t}\n\t}\n\ts.cursorx, s.cursory = -1, -1\n\ts.physw, s.physh = w, h\n\ts.front = newc\n\ts.back.Resize(w, h)\n\ts.Unlock()\n}\n\nfunc (s *simscreen) GetContents() ([]SimCell, int, int) {\n\ts.Lock()\n\tcells, w, h := s.front, s.physw, s.physh\n\ts.Unlock()\n\treturn cells, w, h\n}\n\nfunc (s *simscreen) GetCursor() (int, int, bool) {\n\ts.Lock()\n\tx, y, vis := s.cursorx, s.cursory, s.cursorvis\n\ts.Unlock()\n\treturn x, y, vis\n}\n\nfunc (s *simscreen) RegisterRuneFallback(r rune, subst string) {\n\ts.Lock()\n\ts.fallback[r] = subst\n\ts.Unlock()\n}\n\nfunc (s *simscreen) UnregisterRuneFallback(r rune) {\n\ts.Lock()\n\tdelete(s.fallback, r)\n\ts.Unlock()\n}\n\nfunc (s *simscreen) CanDisplay(r rune, checkFallbacks bool) bool {\n\n\tif enc := s.encoder; enc != nil {\n\t\tnb := make([]byte, 6)\n\t\tob := make([]byte, 6)\n\t\tnum := utf8.EncodeRune(ob, r)\n\n\t\tenc.Reset()\n\t\tdst, _, err := enc.Transform(nb, ob[:num], true)\n\t\tif dst != 0 && err == nil && nb[0] != '\\x1A' {\n\t\t\treturn true\n\t\t}\n\t}\n\tif !checkFallbacks {\n\t\treturn false\n\t}\n\tif _, ok := s.fallback[r]; ok {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (s *simscreen) HasMouse() bool {\n\treturn false\n}\n\nfunc (s *simscreen) Resize(int, int, int, int) {}\n\nfunc (s *simscreen) HasKey(Key) bool {\n\treturn true\n}\n\nfunc (s *simscreen) Beep() error {\n\treturn nil\n}\n\nfunc (s *simscreen) Suspend() error {\n\treturn nil\n}\n\nfunc (s *simscreen) Resume() error {\n\treturn nil\n}\n\nfunc (s *simscreen) Tty() (Tty, bool) {\n\treturn nil, false\n}\n\nfunc (s *simscreen) GetCells() *CellBuffer {\n\treturn &s.back\n}\n\nfunc (s *simscreen) EventQ() chan Event {\n\treturn s.evch\n}\n\nfunc (s *simscreen) StopQ() <-chan struct{} {\n\treturn s.quit\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/stdin_unix.go",
    "content": "// Copyright 2021 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos\n\npackage tcell\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"os/signal\"\n\t\"strconv\"\n\t\"sync\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"golang.org/x/sys/unix\"\n\t\"golang.org/x/term\"\n)\n\n// stdIoTty is an implementation of the Tty API based upon stdin/stdout.\ntype stdIoTty struct {\n\tfd    int\n\tin    *os.File\n\tout   *os.File\n\tsaved *term.State\n\tsig   chan os.Signal\n\tcb    func()\n\tstopQ chan struct{}\n\tdev   string\n\twg    sync.WaitGroup\n\tl     sync.Mutex\n}\n\nfunc (tty *stdIoTty) Read(b []byte) (int, error) {\n\treturn tty.in.Read(b)\n}\n\nfunc (tty *stdIoTty) Write(b []byte) (int, error) {\n\treturn tty.out.Write(b)\n}\n\nfunc (tty *stdIoTty) Close() error {\n\treturn nil\n}\n\nfunc (tty *stdIoTty) Start() error {\n\ttty.l.Lock()\n\tdefer tty.l.Unlock()\n\n\t// We open another copy of /dev/tty.  This is a workaround for unusual behavior\n\t// observed in macOS, apparently caused when a sub-shell (for example) closes our\n\t// own tty device (when it exits for example).  Getting a fresh new one seems to\n\t// resolve the problem.  (We believe this is a bug in the macOS tty driver that\n\t// fails to account for dup() references to the same file before applying close()\n\t// related behaviors to the tty.)  We're also holding the original copy we opened\n\t// since closing that might have deleterious effects as well.  The upshot is that\n\t// we will have up to two separate file handles open on /dev/tty.  (Note that when\n\t// using stdin/stdout instead of /dev/tty this problem is not observed.)\n\tvar err error\n\ttty.in = os.Stdin\n\ttty.out = os.Stdout\n\ttty.fd = int(tty.in.Fd())\n\n\tif !term.IsTerminal(tty.fd) {\n\t\treturn errors.New(\"device is not a terminal\")\n\t}\n\n\t_ = tty.in.SetReadDeadline(time.Time{})\n\tsaved, err := term.MakeRaw(tty.fd) // also sets vMin and vTime\n\tif err != nil {\n\t\treturn err\n\t}\n\ttty.saved = saved\n\n\ttty.stopQ = make(chan struct{})\n\ttty.wg.Add(1)\n\tgo func(stopQ chan struct{}) {\n\t\tdefer tty.wg.Done()\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-tty.sig:\n\t\t\t\ttty.l.Lock()\n\t\t\t\tcb := tty.cb\n\t\t\t\ttty.l.Unlock()\n\t\t\t\tif cb != nil {\n\t\t\t\t\tcb()\n\t\t\t\t}\n\t\t\tcase <-stopQ:\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}(tty.stopQ)\n\n\tsignal.Notify(tty.sig, syscall.SIGWINCH)\n\treturn nil\n}\n\nfunc (tty *stdIoTty) Drain() error {\n\t_ = tty.in.SetReadDeadline(time.Now())\n\tif err := tcSetBufParams(tty.fd, 0, 0); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (tty *stdIoTty) Stop() error {\n\ttty.l.Lock()\n\tif err := term.Restore(tty.fd, tty.saved); err != nil {\n\t\ttty.l.Unlock()\n\t\treturn err\n\t}\n\t_ = tty.in.SetReadDeadline(time.Now())\n\n\tsignal.Stop(tty.sig)\n\tclose(tty.stopQ)\n\ttty.l.Unlock()\n\n\ttty.wg.Wait()\n\n\treturn nil\n}\n\nfunc (tty *stdIoTty) WindowSize() (WindowSize, error) {\n\tsize := WindowSize{}\n\tws, err := unix.IoctlGetWinsize(tty.fd, unix.TIOCGWINSZ)\n\tif err != nil {\n\t\treturn size, err\n\t}\n\tw := int(ws.Col)\n\th := int(ws.Row)\n\tif w == 0 {\n\t\tw, _ = strconv.Atoi(os.Getenv(\"COLUMNS\"))\n\t}\n\tif w == 0 {\n\t\tw = 80 // default\n\t}\n\tif h == 0 {\n\t\th, _ = strconv.Atoi(os.Getenv(\"LINES\"))\n\t}\n\tif h == 0 {\n\t\th = 25 // default\n\t}\n\tsize.Width = w\n\tsize.Height = h\n\tsize.PixelWidth = int(ws.Xpixel)\n\tsize.PixelHeight = int(ws.Ypixel)\n\treturn size, nil\n}\n\nfunc (tty *stdIoTty) NotifyResize(cb func()) {\n\ttty.l.Lock()\n\ttty.cb = cb\n\ttty.l.Unlock()\n}\n\n// NewStdioTty opens a tty using standard input/output.\nfunc NewStdIoTty() (Tty, error) {\n\ttty := &stdIoTty{\n\t\tsig: make(chan os.Signal),\n\t\tin:  os.Stdin,\n\t\tout: os.Stdout,\n\t}\n\tvar err error\n\ttty.fd = int(tty.in.Fd())\n\tif !term.IsTerminal(tty.fd) {\n\t\treturn nil, errors.New(\"not a terminal\")\n\t}\n\tif tty.saved, err = term.GetState(tty.fd); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get state: %w\", err)\n\t}\n\treturn tty, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/style.go",
    "content": "// Copyright 2022 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\n// Style represents a complete text style, including both foreground color,\n// background color, and additional attributes such as \"bold\" or \"underline\".\n//\n// Note that not all terminals can display all colors or attributes, and\n// many might have specific incompatibilities between specific attributes\n// and color combinations.\n//\n// To use Style, just declare a variable of its type.\ntype Style struct {\n\tfg    Color\n\tbg    Color\n\tattrs AttrMask\n\turl   string\n\turlId string\n}\n\n// StyleDefault represents a default style, based upon the context.\n// It is the zero value.\nvar StyleDefault Style\n\n// styleInvalid is just an arbitrary invalid style used internally.\nvar styleInvalid = Style{attrs: AttrInvalid}\n\n// Foreground returns a new style based on s, with the foreground color set\n// as requested.  ColorDefault can be used to select the global default.\nfunc (s Style) Foreground(c Color) Style {\n\treturn Style{\n\t\tfg:    c,\n\t\tbg:    s.bg,\n\t\tattrs: s.attrs,\n\t\turl:   s.url,\n\t\turlId: s.urlId,\n\t}\n}\n\n// Background returns a new style based on s, with the background color set\n// as requested.  ColorDefault can be used to select the global default.\nfunc (s Style) Background(c Color) Style {\n\treturn Style{\n\t\tfg:    s.fg,\n\t\tbg:    c,\n\t\tattrs: s.attrs,\n\t\turl:   s.url,\n\t\turlId: s.urlId,\n\t}\n}\n\n// Decompose breaks a style up, returning the foreground, background,\n// and other attributes.  The URL if set is not included.\nfunc (s Style) Decompose() (fg Color, bg Color, attr AttrMask) {\n\treturn s.fg, s.bg, s.attrs\n}\n\nfunc (s Style) setAttrs(attrs AttrMask, on bool) Style {\n\tif on {\n\t\treturn Style{\n\t\t\tfg:    s.fg,\n\t\t\tbg:    s.bg,\n\t\t\tattrs: s.attrs | attrs,\n\t\t\turl:   s.url,\n\t\t\turlId: s.urlId,\n\t\t}\n\t}\n\treturn Style{\n\t\tfg:    s.fg,\n\t\tbg:    s.bg,\n\t\tattrs: s.attrs &^ attrs,\n\t\turl:   s.url,\n\t\turlId: s.urlId,\n\t}\n}\n\n// Normal returns the style with all attributes disabled.\nfunc (s Style) Normal() Style {\n\treturn Style{\n\t\tfg: s.fg,\n\t\tbg: s.bg,\n\t}\n}\n\n// Bold returns a new style based on s, with the bold attribute set\n// as requested.\nfunc (s Style) Bold(on bool) Style {\n\treturn s.setAttrs(AttrBold, on)\n}\n\n// Blink returns a new style based on s, with the blink attribute set\n// as requested.\nfunc (s Style) Blink(on bool) Style {\n\treturn s.setAttrs(AttrBlink, on)\n}\n\n// Dim returns a new style based on s, with the dim attribute set\n// as requested.\nfunc (s Style) Dim(on bool) Style {\n\treturn s.setAttrs(AttrDim, on)\n}\n\n// Italic returns a new style based on s, with the italic attribute set\n// as requested.\nfunc (s Style) Italic(on bool) Style {\n\treturn s.setAttrs(AttrItalic, on)\n}\n\n// Reverse returns a new style based on s, with the reverse attribute set\n// as requested.  (Reverse usually changes the foreground and background\n// colors.)\nfunc (s Style) Reverse(on bool) Style {\n\treturn s.setAttrs(AttrReverse, on)\n}\n\n// Underline returns a new style based on s, with the underline attribute set\n// as requested.\nfunc (s Style) Underline(on bool) Style {\n\treturn s.setAttrs(AttrUnderline, on)\n}\n\n// StrikeThrough sets strikethrough mode.\nfunc (s Style) StrikeThrough(on bool) Style {\n\treturn s.setAttrs(AttrStrikeThrough, on)\n}\n\n// Attributes returns a new style based on s, with its attributes set as\n// specified.\nfunc (s Style) Attributes(attrs AttrMask) Style {\n\treturn Style{\n\t\tfg:    s.fg,\n\t\tbg:    s.bg,\n\t\tattrs: attrs,\n\t\turl:   s.url,\n\t\turlId: s.urlId,\n\t}\n}\n\n// Url returns a style with the Url set.  If the provided Url is not empty,\n// and the terminal supports it, text will typically be marked up as a clickable\n// link to that Url.  If the Url is empty, then this mode is turned off.\nfunc (s Style) Url(url string) Style {\n\treturn Style{\n\t\tfg:    s.fg,\n\t\tbg:    s.bg,\n\t\tattrs: s.attrs,\n\t\turl:   url,\n\t\turlId: s.urlId,\n\t}\n}\n\n// UrlId returns a style with the UrlId set. If the provided UrlId is not empty,\n// any marked up Url with this style will be given the UrlId also. If the\n// terminal supports it, any text with the same UrlId will be grouped as if it\n// were one Url, even if it spans multiple lines.\nfunc (s Style) UrlId(id string) Style {\n\treturn Style{\n\t\tfg:    s.fg,\n\t\tbg:    s.bg,\n\t\tattrs: s.attrs,\n\t\turl:   s.url,\n\t\turlId: \"id=\" + id,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/.gitignore",
    "content": "mkinfo\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/README.md",
    "content": "This package represents the parent for all terminals.\n\nIn older versions of tcell we had (a couple of) different\nexternal file formats for the terminal database.  Those are\nnow removed.  All terminal definitions are supplied by\none of two methods:\n\n1. Compiled Go code\n\n2. For systems with terminfo and infocmp, dynamically\n   generated at runtime.\n\nThe Go code can be generated using the mkinfo utility in\nthis directory.  The database entry should be generated\ninto a package in a directory named as the first character\nof the package name.  (This permits us to group them all\nwithout having a huge directory of little packages.)\n\nIt may be desirable to add new packages to the extended\npackage, or -- rarely -- the base package.\n\nApplications which want to have the large set of terminal\ndescriptions built into the binary can simply import the\nextended package.  Otherwise a smaller reasonable default\nset (the base package) will be included instead.\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/TERMINALS.md",
    "content": "TERMINALS\n=========\n\nThe best way to populate terminals on Debian is to install ncurses,\nncurses-term, screen, tmux, rxvt-unicode, and dvtm.  This populates the\nthe terminfo database so that we can have a reasonable set of starting\nterminals.\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/a/aixterm/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage aixterm\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// IBM Aixterm Terminal Emulator\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"aixterm\",\n\t\tColumns:      80,\n\t\tLines:        25,\n\t\tColors:       8,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b[H\\x1b[J\",\n\t\tAttrOff:      \"\\x1b[0;10m\\x1b(B\",\n\t\tUnderline:    \"\\x1b[4m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tSetFg:        \"\\x1b[3%p1%dm\",\n\t\tSetBg:        \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:      \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:    \"\\x1b[32m\\x1b[40m\",\n\t\tPadChar:      \"\\x00\",\n\t\tAltChars:     \"jjkkllmmnnqqttuuvvwwxx\",\n\t\tEnterAcs:     \"\\x1b(0\",\n\t\tExitAcs:      \"\\x1b(B\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1b[A\",\n\t\tKeyUp:        \"\\x1b[A\",\n\t\tKeyDown:      \"\\x1b[B\",\n\t\tKeyRight:     \"\\x1b[C\",\n\t\tKeyLeft:      \"\\x1b[D\",\n\t\tKeyInsert:    \"\\x1b[139q\",\n\t\tKeyDelete:    \"\\x1b[P\",\n\t\tKeyBackspace: \"\\b\",\n\t\tKeyHome:      \"\\x1b[H\",\n\t\tKeyEnd:       \"\\x1b[146q\",\n\t\tKeyPgUp:      \"\\x1b[150q\",\n\t\tKeyPgDn:      \"\\x1b[154q\",\n\t\tKeyF1:        \"\\x1b[001q\",\n\t\tKeyF2:        \"\\x1b[002q\",\n\t\tKeyF3:        \"\\x1b[003q\",\n\t\tKeyF4:        \"\\x1b[004q\",\n\t\tKeyF5:        \"\\x1b[005q\",\n\t\tKeyF6:        \"\\x1b[006q\",\n\t\tKeyF7:        \"\\x1b[007q\",\n\t\tKeyF8:        \"\\x1b[008q\",\n\t\tKeyF9:        \"\\x1b[009q\",\n\t\tKeyF10:       \"\\x1b[010q\",\n\t\tKeyF11:       \"\\x1b[011q\",\n\t\tKeyF12:       \"\\x1b[012q\",\n\t\tKeyF13:       \"\\x1b[013q\",\n\t\tKeyF14:       \"\\x1b[014q\",\n\t\tKeyF15:       \"\\x1b[015q\",\n\t\tKeyF16:       \"\\x1b[016q\",\n\t\tKeyF17:       \"\\x1b[017q\",\n\t\tKeyF18:       \"\\x1b[018q\",\n\t\tKeyF19:       \"\\x1b[019q\",\n\t\tKeyF20:       \"\\x1b[020q\",\n\t\tKeyF21:       \"\\x1b[021q\",\n\t\tKeyF22:       \"\\x1b[022q\",\n\t\tKeyF23:       \"\\x1b[023q\",\n\t\tKeyF24:       \"\\x1b[024q\",\n\t\tKeyF25:       \"\\x1b[025q\",\n\t\tKeyF26:       \"\\x1b[026q\",\n\t\tKeyF27:       \"\\x1b[027q\",\n\t\tKeyF28:       \"\\x1b[028q\",\n\t\tKeyF29:       \"\\x1b[029q\",\n\t\tKeyF30:       \"\\x1b[030q\",\n\t\tKeyF31:       \"\\x1b[031q\",\n\t\tKeyF32:       \"\\x1b[032q\",\n\t\tKeyF33:       \"\\x1b[033q\",\n\t\tKeyF34:       \"\\x1b[034q\",\n\t\tKeyF35:       \"\\x1b[035q\",\n\t\tKeyF36:       \"\\x1b[036q\",\n\t\tKeyClear:     \"\\x1b[144q\",\n\t\tKeyBacktab:   \"\\x1b[Z\",\n\t\tAutoMargin:   true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/a/alacritty/direct.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage alacritty\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// alacritty with direct color indexing\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:          \"alacritty-direct\",\n\t\tColumns:       80,\n\t\tLines:         24,\n\t\tColors:        16777216,\n\t\tBell:          \"\\a\",\n\t\tClear:         \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:       \"\\x1b[?1049h\\x1b[22;0;0t\",\n\t\tExitCA:        \"\\x1b[?1049l\\x1b[23;0;0t\",\n\t\tShowCursor:    \"\\x1b[?12l\\x1b[?25h\",\n\t\tHideCursor:    \"\\x1b[?25l\",\n\t\tAttrOff:       \"\\x1b(B\\x1b[m\",\n\t\tUnderline:     \"\\x1b[4m\",\n\t\tBold:          \"\\x1b[1m\",\n\t\tDim:           \"\\x1b[2m\",\n\t\tItalic:        \"\\x1b[3m\",\n\t\tReverse:       \"\\x1b[7m\",\n\t\tEnterKeypad:   \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:    \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:         \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:         \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:       \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tResetFgBg:     \"\\x1b[39;49m\",\n\t\tAltChars:      \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:      \"\\x1b(0\",\n\t\tExitAcs:       \"\\x1b(B\",\n\t\tStrikeThrough: \"\\x1b[9m\",\n\t\tMouse:         \"\\x1b[M\",\n\t\tSetCursor:     \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:   \"\\b\",\n\t\tCursorUp1:     \"\\x1b[A\",\n\t\tKeyUp:         \"\\x1bOA\",\n\t\tKeyDown:       \"\\x1bOB\",\n\t\tKeyRight:      \"\\x1bOC\",\n\t\tKeyLeft:       \"\\x1bOD\",\n\t\tKeyInsert:     \"\\x1b[2~\",\n\t\tKeyDelete:     \"\\x1b[3~\",\n\t\tKeyBackspace:  \"\\x7f\",\n\t\tKeyHome:       \"\\x1bOH\",\n\t\tKeyEnd:        \"\\x1bOF\",\n\t\tKeyPgUp:       \"\\x1b[5~\",\n\t\tKeyPgDn:       \"\\x1b[6~\",\n\t\tKeyF1:         \"\\x1bOP\",\n\t\tKeyF2:         \"\\x1bOQ\",\n\t\tKeyF3:         \"\\x1bOR\",\n\t\tKeyF4:         \"\\x1bOS\",\n\t\tKeyF5:         \"\\x1b[15~\",\n\t\tKeyF6:         \"\\x1b[17~\",\n\t\tKeyF7:         \"\\x1b[18~\",\n\t\tKeyF8:         \"\\x1b[19~\",\n\t\tKeyF9:         \"\\x1b[20~\",\n\t\tKeyF10:        \"\\x1b[21~\",\n\t\tKeyF11:        \"\\x1b[23~\",\n\t\tKeyF12:        \"\\x1b[24~\",\n\t\tKeyBacktab:    \"\\x1b[Z\",\n\t\tModifiers:     1,\n\t\tTrueColor:     true,\n\t\tAutoMargin:    true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/a/alacritty/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage alacritty\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// alacritty terminal emulator\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"alacritty\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            256,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b[?1049h\\x1b[22;0;0t\",\n\t\tExitCA:            \"\\x1b[?1049l\\x1b[23;0;0t\",\n\t\tShowCursor:        \"\\x1b[?12l\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b(B\\x1b[m\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tItalic:            \"\\x1b[3m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:             \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:             \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:           \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tAltChars:          \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x1b(0\",\n\t\tExitAcs:           \"\\x1b(B\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tStrikeThrough:     \"\\x1b[9m\",\n\t\tMouse:             \"\\x1b[<\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1bOH\",\n\t\tKeyEnd:            \"\\x1bOF\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tModifiers:         1,\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/a/ansi/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage ansi\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// ansi/pc-term compatible with color\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"ansi\",\n\t\tColumns:      80,\n\t\tLines:        24,\n\t\tColors:       8,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b[H\\x1b[J\",\n\t\tAttrOff:      \"\\x1b[0;10m\",\n\t\tUnderline:    \"\\x1b[4m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tBlink:        \"\\x1b[5m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tSetFg:        \"\\x1b[3%p1%dm\",\n\t\tSetBg:        \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:      \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:    \"\\x1b[39;49m\",\n\t\tPadChar:      \"\\x00\",\n\t\tAltChars:     \"+\\x10,\\x11-\\x18.\\x190\\xdb`\\x04a\\xb1f\\xf8g\\xf1h\\xb0j\\xd9k\\xbfl\\xdam\\xc0n\\xc5o~p\\xc4q\\xc4r\\xc4s_t\\xc3u\\xb4v\\xc1w\\xc2x\\xb3y\\xf3z\\xf2{\\xe3|\\xd8}\\x9c~\\xfe\",\n\t\tEnterAcs:     \"\\x1b[11m\",\n\t\tExitAcs:      \"\\x1b[10m\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\x1b[D\",\n\t\tCursorUp1:    \"\\x1b[A\",\n\t\tKeyUp:        \"\\x1b[A\",\n\t\tKeyDown:      \"\\x1b[B\",\n\t\tKeyRight:     \"\\x1b[C\",\n\t\tKeyLeft:      \"\\x1b[D\",\n\t\tKeyInsert:    \"\\x1b[L\",\n\t\tKeyBackspace: \"\\b\",\n\t\tKeyHome:      \"\\x1b[H\",\n\t\tKeyBacktab:   \"\\x1b[Z\",\n\t\tAutoMargin:   true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/b/beterm/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage beterm\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// BeOS Terminal\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"beterm\",\n\t\tColumns:      80,\n\t\tLines:        25,\n\t\tColors:       8,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b[H\\x1b[J\",\n\t\tAttrOff:      \"\\x1b[0;10m\",\n\t\tUnderline:    \"\\x1b[4m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tEnterKeypad:  \"\\x1b[?4h\",\n\t\tExitKeypad:   \"\\x1b[?4l\",\n\t\tSetFg:        \"\\x1b[3%p1%dm\",\n\t\tSetBg:        \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:      \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:    \"\\x1b[m\",\n\t\tPadChar:      \"\\x00\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1b[A\",\n\t\tKeyUp:        \"\\x1b[A\",\n\t\tKeyDown:      \"\\x1b[B\",\n\t\tKeyRight:     \"\\x1b[C\",\n\t\tKeyLeft:      \"\\x1b[D\",\n\t\tKeyInsert:    \"\\x1b[2~\",\n\t\tKeyDelete:    \"\\x1b[3~\",\n\t\tKeyBackspace: \"\\b\",\n\t\tKeyHome:      \"\\x1b[1~\",\n\t\tKeyEnd:       \"\\x1b[4~\",\n\t\tKeyPgUp:      \"\\x1b[5~\",\n\t\tKeyPgDn:      \"\\x1b[6~\",\n\t\tKeyF1:        \"\\x1b[11~\",\n\t\tKeyF2:        \"\\x1b[12~\",\n\t\tKeyF3:        \"\\x1b[13~\",\n\t\tKeyF4:        \"\\x1b[14~\",\n\t\tKeyF5:        \"\\x1b[15~\",\n\t\tKeyF6:        \"\\x1b[16~\",\n\t\tKeyF7:        \"\\x1b[17~\",\n\t\tKeyF8:        \"\\x1b[18~\",\n\t\tKeyF9:        \"\\x1b[19~\",\n\t\tKeyF10:       \"\\x1b[20~\",\n\t\tKeyF11:       \"\\x1b[21~\",\n\t\tKeyF12:       \"\\x1b[22~\",\n\t\tAutoMargin:   true,\n\t\tInsertChar:   \"\\x1b[@\",\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/base/base.go",
    "content": "// Copyright 2020 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This is just a \"minimalist\" set of the base terminal descriptions.\n// It should be sufficient for most applications.\n\n// Package base contains the base terminal descriptions that are likely\n// to be needed by any stock application.  It is imported by default in the\n// terminfo package, so terminal types listed here will be available to any\n// tcell application.\npackage base\n\nimport (\n\t// The following imports just register themselves --\n\t// thse are the terminal types we aggregate in this package.\n\t_ \"github.com/gdamore/tcell/v2/terminfo/a/ansi\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/v/vt100\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/v/vt102\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/v/vt220\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/x/xterm\"\n)\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/c/cygwin/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage cygwin\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// ANSI emulation for Cygwin\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"cygwin\",\n\t\tColors:       8,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b[H\\x1b[J\",\n\t\tEnterCA:      \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:       \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tAttrOff:      \"\\x1b[0;10m\",\n\t\tUnderline:    \"\\x1b[4m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tSetFg:        \"\\x1b[3%p1%dm\",\n\t\tSetBg:        \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:      \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:    \"\\x1b[39;49m\",\n\t\tPadChar:      \"\\x00\",\n\t\tAltChars:     \"+\\x10,\\x11-\\x18.\\x190\\xdb`\\x04a\\xb1f\\xf8g\\xf1h\\xb0j\\xd9k\\xbfl\\xdam\\xc0n\\xc5o~p\\xc4q\\xc4r\\xc4s_t\\xc3u\\xb4v\\xc1w\\xc2x\\xb3y\\xf3z\\xf2{\\xe3|\\xd8}\\x9c~\\xfe\",\n\t\tEnterAcs:     \"\\x1b[11m\",\n\t\tExitAcs:      \"\\x1b[10m\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1b[A\",\n\t\tKeyUp:        \"\\x1b[A\",\n\t\tKeyDown:      \"\\x1b[B\",\n\t\tKeyRight:     \"\\x1b[C\",\n\t\tKeyLeft:      \"\\x1b[D\",\n\t\tKeyInsert:    \"\\x1b[2~\",\n\t\tKeyDelete:    \"\\x1b[3~\",\n\t\tKeyBackspace: \"\\b\",\n\t\tKeyHome:      \"\\x1b[1~\",\n\t\tKeyEnd:       \"\\x1b[4~\",\n\t\tKeyPgUp:      \"\\x1b[5~\",\n\t\tKeyPgDn:      \"\\x1b[6~\",\n\t\tKeyF1:        \"\\x1b[[A\",\n\t\tKeyF2:        \"\\x1b[[B\",\n\t\tKeyF3:        \"\\x1b[[C\",\n\t\tKeyF4:        \"\\x1b[[D\",\n\t\tKeyF5:        \"\\x1b[[E\",\n\t\tKeyF6:        \"\\x1b[17~\",\n\t\tKeyF7:        \"\\x1b[18~\",\n\t\tKeyF8:        \"\\x1b[19~\",\n\t\tKeyF9:        \"\\x1b[20~\",\n\t\tKeyF10:       \"\\x1b[21~\",\n\t\tKeyF11:       \"\\x1b[23~\",\n\t\tKeyF12:       \"\\x1b[24~\",\n\t\tKeyF13:       \"\\x1b[25~\",\n\t\tKeyF14:       \"\\x1b[26~\",\n\t\tKeyF15:       \"\\x1b[28~\",\n\t\tKeyF16:       \"\\x1b[29~\",\n\t\tKeyF17:       \"\\x1b[31~\",\n\t\tKeyF18:       \"\\x1b[32~\",\n\t\tKeyF19:       \"\\x1b[33~\",\n\t\tKeyF20:       \"\\x1b[34~\",\n\t\tAutoMargin:   true,\n\t\tInsertChar:   \"\\x1b[@\",\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/d/dtterm/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage dtterm\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// CDE desktop terminal\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"dtterm\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            8,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[J\",\n\t\tShowCursor:        \"\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[m\\x0f\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tSetFg:             \"\\x1b[3%p1%dm\",\n\t\tSetBg:             \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:           \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x0e\",\n\t\tExitAcs:           \"\\x0f\",\n\t\tEnableAcs:         \"\\x1b(B\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1b[A\",\n\t\tKeyDown:           \"\\x1b[B\",\n\t\tKeyRight:          \"\\x1b[C\",\n\t\tKeyLeft:           \"\\x1b[D\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\b\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1b[11~\",\n\t\tKeyF2:             \"\\x1b[12~\",\n\t\tKeyF3:             \"\\x1b[13~\",\n\t\tKeyF4:             \"\\x1b[14~\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyF13:            \"\\x1b[25~\",\n\t\tKeyF14:            \"\\x1b[26~\",\n\t\tKeyF15:            \"\\x1b[28~\",\n\t\tKeyF16:            \"\\x1b[29~\",\n\t\tKeyF17:            \"\\x1b[31~\",\n\t\tKeyF18:            \"\\x1b[32~\",\n\t\tKeyF19:            \"\\x1b[33~\",\n\t\tKeyF20:            \"\\x1b[34~\",\n\t\tKeyHelp:           \"\\x1b[28~\",\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/dynamic/dynamic.go",
    "content": "// Copyright 2021 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// The dynamic package is used to generate a terminal description dynamically,\n// using infocmp.  This is really a method of last resort, as the performance\n// will be slow, and it requires a working infocmp.  But, the hope is that it\n// will assist folks who have to deal with a terminal description that isn't\n// already built in.  This requires infocmp to be in the user's path, and to\n// support reasonably the -1 option.\n\npackage dynamic\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"os/exec\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/gdamore/tcell/v2/terminfo\"\n)\n\ntype termcap struct {\n\tname    string\n\tdesc    string\n\taliases []string\n\tbools   map[string]bool\n\tnums    map[string]int\n\tstrs    map[string]string\n}\n\nfunc (tc *termcap) getnum(s string) int {\n\treturn (tc.nums[s])\n}\n\nfunc (tc *termcap) getflag(s string) bool {\n\treturn (tc.bools[s])\n}\n\nfunc (tc *termcap) getstr(s string) string {\n\treturn (tc.strs[s])\n}\n\nconst (\n\tnone = iota\n\tcontrol\n\tescaped\n)\n\nvar errNotAddressable = errors.New(\"terminal not cursor addressable\")\n\nfunc unescape(s string) string {\n\t// Various escapes are in \\x format.  Control codes are\n\t// encoded as ^M (carat followed by ASCII equivalent).\n\t// escapes are: \\e, \\E - escape\n\t//  \\0 NULL, \\n \\l \\r \\t \\b \\f \\s for equivalent C escape.\n\tbuf := &bytes.Buffer{}\n\tesc := none\n\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tswitch esc {\n\t\tcase none:\n\t\t\tswitch c {\n\t\t\tcase '\\\\':\n\t\t\t\tesc = escaped\n\t\t\tcase '^':\n\t\t\t\tesc = control\n\t\t\tdefault:\n\t\t\t\tbuf.WriteByte(c)\n\t\t\t}\n\t\tcase control:\n\t\t\tbuf.WriteByte(c ^ 1<<6)\n\t\t\tesc = none\n\t\tcase escaped:\n\t\t\tswitch c {\n\t\t\tcase 'E', 'e':\n\t\t\t\tbuf.WriteByte(0x1b)\n\t\t\tcase '0', '1', '2', '3', '4', '5', '6', '7':\n\t\t\t\tif i+2 < len(s) && s[i+1] >= '0' && s[i+1] <= '7' && s[i+2] >= '0' && s[i+2] <= '7' {\n\t\t\t\t\tbuf.WriteByte(((c - '0') * 64) + ((s[i+1] - '0') * 8) + (s[i+2] - '0'))\n\t\t\t\t\ti = i + 2\n\t\t\t\t} else if c == '0' {\n\t\t\t\t\tbuf.WriteByte(0)\n\t\t\t\t}\n\t\t\tcase 'n':\n\t\t\t\tbuf.WriteByte('\\n')\n\t\t\tcase 'r':\n\t\t\t\tbuf.WriteByte('\\r')\n\t\t\tcase 't':\n\t\t\t\tbuf.WriteByte('\\t')\n\t\t\tcase 'b':\n\t\t\t\tbuf.WriteByte('\\b')\n\t\t\tcase 'f':\n\t\t\t\tbuf.WriteByte('\\f')\n\t\t\tcase 's':\n\t\t\t\tbuf.WriteByte(' ')\n\t\t\tdefault:\n\t\t\t\tbuf.WriteByte(c)\n\t\t\t}\n\t\t\tesc = none\n\t\t}\n\t}\n\treturn (buf.String())\n}\n\nfunc (tc *termcap) setupterm(name string) error {\n\tcmd := exec.Command(\"infocmp\", \"-1\", name)\n\toutput := &bytes.Buffer{}\n\tcmd.Stdout = output\n\n\ttc.strs = make(map[string]string)\n\ttc.bools = make(map[string]bool)\n\ttc.nums = make(map[string]int)\n\n\tif err := cmd.Run(); err != nil {\n\t\treturn err\n\t}\n\n\t// Now parse the output.\n\t// We get comment lines (starting with \"#\"), followed by\n\t// a header line that looks like \"<name>|<alias>|...|<desc>\"\n\t// then capabilities, one per line, starting with a tab and ending\n\t// with a comma and newline.\n\tlines := strings.Split(output.String(), \"\\n\")\n\tfor len(lines) > 0 && strings.HasPrefix(lines[0], \"#\") {\n\t\tlines = lines[1:]\n\t}\n\n\t// Ditch trailing empty last line\n\tif lines[len(lines)-1] == \"\" {\n\t\tlines = lines[:len(lines)-1]\n\t}\n\theader := lines[0]\n\tif strings.HasSuffix(header, \",\") {\n\t\theader = header[:len(header)-1]\n\t}\n\tnames := strings.Split(header, \"|\")\n\ttc.name = names[0]\n\tnames = names[1:]\n\tif len(names) > 0 {\n\t\ttc.desc = names[len(names)-1]\n\t\tnames = names[:len(names)-1]\n\t}\n\ttc.aliases = names\n\tfor _, val := range lines[1:] {\n\t\tif (!strings.HasPrefix(val, \"\\t\")) ||\n\t\t\t(!strings.HasSuffix(val, \",\")) {\n\t\t\treturn (errors.New(\"malformed infocmp: \" + val))\n\t\t}\n\n\t\tval = val[1:]\n\t\tval = val[:len(val)-1]\n\n\t\tif k := strings.SplitN(val, \"=\", 2); len(k) == 2 {\n\t\t\ttc.strs[k[0]] = unescape(k[1])\n\t\t} else if k := strings.SplitN(val, \"#\", 2); len(k) == 2 {\n\t\t\tu, err := strconv.ParseUint(k[1], 0, 0)\n\t\t\tif err != nil {\n\t\t\t\treturn (err)\n\t\t\t}\n\t\t\ttc.nums[k[0]] = int(u)\n\t\t} else {\n\t\t\ttc.bools[val] = true\n\t\t}\n\t}\n\treturn nil\n}\n\n// LoadTerminfo creates a Terminfo by for named terminal by attempting to parse\n// the output from infocmp.  This returns the terminfo entry, a description of\n// the terminal, and either nil or an error.\nfunc LoadTerminfo(name string) (*terminfo.Terminfo, string, error) {\n\tvar tc termcap\n\tif err := tc.setupterm(name); err != nil {\n\t\treturn nil, \"\", err\n\t}\n\tt := &terminfo.Terminfo{}\n\tt.Name = tc.name\n\tt.Aliases = tc.aliases\n\tt.Colors = tc.getnum(\"colors\")\n\tt.Columns = tc.getnum(\"cols\")\n\tt.Lines = tc.getnum(\"lines\")\n\tt.Bell = tc.getstr(\"bel\")\n\tt.Clear = tc.getstr(\"clear\")\n\tt.EnterCA = tc.getstr(\"smcup\")\n\tt.ExitCA = tc.getstr(\"rmcup\")\n\tt.ShowCursor = tc.getstr(\"cnorm\")\n\tt.HideCursor = tc.getstr(\"civis\")\n\tt.AttrOff = tc.getstr(\"sgr0\")\n\tt.Underline = tc.getstr(\"smul\")\n\tt.Bold = tc.getstr(\"bold\")\n\tt.Blink = tc.getstr(\"blink\")\n\tt.Dim = tc.getstr(\"dim\")\n\tt.Italic = tc.getstr(\"sitm\")\n\tt.Reverse = tc.getstr(\"rev\")\n\tt.EnterKeypad = tc.getstr(\"smkx\")\n\tt.ExitKeypad = tc.getstr(\"rmkx\")\n\tt.SetFg = tc.getstr(\"setaf\")\n\tt.SetBg = tc.getstr(\"setab\")\n\tt.SetCursor = tc.getstr(\"cup\")\n\tt.CursorBack1 = tc.getstr(\"cub1\")\n\tt.CursorUp1 = tc.getstr(\"cuu1\")\n\tt.KeyF1 = tc.getstr(\"kf1\")\n\tt.KeyF2 = tc.getstr(\"kf2\")\n\tt.KeyF3 = tc.getstr(\"kf3\")\n\tt.KeyF4 = tc.getstr(\"kf4\")\n\tt.KeyF5 = tc.getstr(\"kf5\")\n\tt.KeyF6 = tc.getstr(\"kf6\")\n\tt.KeyF7 = tc.getstr(\"kf7\")\n\tt.KeyF8 = tc.getstr(\"kf8\")\n\tt.KeyF9 = tc.getstr(\"kf9\")\n\tt.KeyF10 = tc.getstr(\"kf10\")\n\tt.KeyF11 = tc.getstr(\"kf11\")\n\tt.KeyF12 = tc.getstr(\"kf12\")\n\tt.KeyF13 = tc.getstr(\"kf13\")\n\tt.KeyF14 = tc.getstr(\"kf14\")\n\tt.KeyF15 = tc.getstr(\"kf15\")\n\tt.KeyF16 = tc.getstr(\"kf16\")\n\tt.KeyF17 = tc.getstr(\"kf17\")\n\tt.KeyF18 = tc.getstr(\"kf18\")\n\tt.KeyF19 = tc.getstr(\"kf19\")\n\tt.KeyF20 = tc.getstr(\"kf20\")\n\tt.KeyF21 = tc.getstr(\"kf21\")\n\tt.KeyF22 = tc.getstr(\"kf22\")\n\tt.KeyF23 = tc.getstr(\"kf23\")\n\tt.KeyF24 = tc.getstr(\"kf24\")\n\tt.KeyF25 = tc.getstr(\"kf25\")\n\tt.KeyF26 = tc.getstr(\"kf26\")\n\tt.KeyF27 = tc.getstr(\"kf27\")\n\tt.KeyF28 = tc.getstr(\"kf28\")\n\tt.KeyF29 = tc.getstr(\"kf29\")\n\tt.KeyF30 = tc.getstr(\"kf30\")\n\tt.KeyF31 = tc.getstr(\"kf31\")\n\tt.KeyF32 = tc.getstr(\"kf32\")\n\tt.KeyF33 = tc.getstr(\"kf33\")\n\tt.KeyF34 = tc.getstr(\"kf34\")\n\tt.KeyF35 = tc.getstr(\"kf35\")\n\tt.KeyF36 = tc.getstr(\"kf36\")\n\tt.KeyF37 = tc.getstr(\"kf37\")\n\tt.KeyF38 = tc.getstr(\"kf38\")\n\tt.KeyF39 = tc.getstr(\"kf39\")\n\tt.KeyF40 = tc.getstr(\"kf40\")\n\tt.KeyF41 = tc.getstr(\"kf41\")\n\tt.KeyF42 = tc.getstr(\"kf42\")\n\tt.KeyF43 = tc.getstr(\"kf43\")\n\tt.KeyF44 = tc.getstr(\"kf44\")\n\tt.KeyF45 = tc.getstr(\"kf45\")\n\tt.KeyF46 = tc.getstr(\"kf46\")\n\tt.KeyF47 = tc.getstr(\"kf47\")\n\tt.KeyF48 = tc.getstr(\"kf48\")\n\tt.KeyF49 = tc.getstr(\"kf49\")\n\tt.KeyF50 = tc.getstr(\"kf50\")\n\tt.KeyF51 = tc.getstr(\"kf51\")\n\tt.KeyF52 = tc.getstr(\"kf52\")\n\tt.KeyF53 = tc.getstr(\"kf53\")\n\tt.KeyF54 = tc.getstr(\"kf54\")\n\tt.KeyF55 = tc.getstr(\"kf55\")\n\tt.KeyF56 = tc.getstr(\"kf56\")\n\tt.KeyF57 = tc.getstr(\"kf57\")\n\tt.KeyF58 = tc.getstr(\"kf58\")\n\tt.KeyF59 = tc.getstr(\"kf59\")\n\tt.KeyF60 = tc.getstr(\"kf60\")\n\tt.KeyF61 = tc.getstr(\"kf61\")\n\tt.KeyF62 = tc.getstr(\"kf62\")\n\tt.KeyF63 = tc.getstr(\"kf63\")\n\tt.KeyF64 = tc.getstr(\"kf64\")\n\tt.KeyInsert = tc.getstr(\"kich1\")\n\tt.KeyDelete = tc.getstr(\"kdch1\")\n\tt.KeyBackspace = tc.getstr(\"kbs\")\n\tt.KeyHome = tc.getstr(\"khome\")\n\tt.KeyEnd = tc.getstr(\"kend\")\n\tt.KeyUp = tc.getstr(\"kcuu1\")\n\tt.KeyDown = tc.getstr(\"kcud1\")\n\tt.KeyRight = tc.getstr(\"kcuf1\")\n\tt.KeyLeft = tc.getstr(\"kcub1\")\n\tt.KeyPgDn = tc.getstr(\"knp\")\n\tt.KeyPgUp = tc.getstr(\"kpp\")\n\tt.KeyBacktab = tc.getstr(\"kcbt\")\n\tt.KeyExit = tc.getstr(\"kext\")\n\tt.KeyCancel = tc.getstr(\"kcan\")\n\tt.KeyPrint = tc.getstr(\"kprt\")\n\tt.KeyHelp = tc.getstr(\"khlp\")\n\tt.KeyClear = tc.getstr(\"kclr\")\n\tt.AltChars = tc.getstr(\"acsc\")\n\tt.EnterAcs = tc.getstr(\"smacs\")\n\tt.ExitAcs = tc.getstr(\"rmacs\")\n\tt.EnableAcs = tc.getstr(\"enacs\")\n\tt.Mouse = tc.getstr(\"kmous\")\n\tt.KeyShfRight = tc.getstr(\"kRIT\")\n\tt.KeyShfLeft = tc.getstr(\"kLFT\")\n\tt.KeyShfHome = tc.getstr(\"kHOM\")\n\tt.KeyShfEnd = tc.getstr(\"kEND\")\n\n\t// Terminfo lacks descriptions for a bunch of modified keys,\n\t// but modern XTerm and emulators often have them.  Let's add them,\n\t// if the shifted right and left arrows are defined.\n\tif t.KeyShfRight == \"\\x1b[1;2C\" && t.KeyShfLeft == \"\\x1b[1;2D\" {\n\t\tt.Modifiers = terminfo.ModifiersXTerm\n\n\t\tt.KeyShfUp = \"\\x1b[1;2A\"\n\t\tt.KeyShfDown = \"\\x1b[1;2B\"\n\t\tt.KeyMetaUp = \"\\x1b[1;9A\"\n\t\tt.KeyMetaDown = \"\\x1b[1;9B\"\n\t\tt.KeyMetaRight = \"\\x1b[1;9C\"\n\t\tt.KeyMetaLeft = \"\\x1b[1;9D\"\n\t\tt.KeyAltUp = \"\\x1b[1;3A\"\n\t\tt.KeyAltDown = \"\\x1b[1;3B\"\n\t\tt.KeyAltRight = \"\\x1b[1;3C\"\n\t\tt.KeyAltLeft = \"\\x1b[1;3D\"\n\t\tt.KeyCtrlUp = \"\\x1b[1;5A\"\n\t\tt.KeyCtrlDown = \"\\x1b[1;5B\"\n\t\tt.KeyCtrlRight = \"\\x1b[1;5C\"\n\t\tt.KeyCtrlLeft = \"\\x1b[1;5D\"\n\t\tt.KeyAltShfUp = \"\\x1b[1;4A\"\n\t\tt.KeyAltShfDown = \"\\x1b[1;4B\"\n\t\tt.KeyAltShfRight = \"\\x1b[1;4C\"\n\t\tt.KeyAltShfLeft = \"\\x1b[1;4D\"\n\n\t\tt.KeyMetaShfUp = \"\\x1b[1;10A\"\n\t\tt.KeyMetaShfDown = \"\\x1b[1;10B\"\n\t\tt.KeyMetaShfRight = \"\\x1b[1;10C\"\n\t\tt.KeyMetaShfLeft = \"\\x1b[1;10D\"\n\n\t\tt.KeyCtrlShfUp = \"\\x1b[1;6A\"\n\t\tt.KeyCtrlShfDown = \"\\x1b[1;6B\"\n\t\tt.KeyCtrlShfRight = \"\\x1b[1;6C\"\n\t\tt.KeyCtrlShfLeft = \"\\x1b[1;6D\"\n\n\t\tt.KeyShfPgUp = \"\\x1b[5;2~\"\n\t\tt.KeyShfPgDn = \"\\x1b[6;2~\"\n\t}\n\t// And also for Home and End\n\tif t.KeyShfHome == \"\\x1b[1;2H\" && t.KeyShfEnd == \"\\x1b[1;2F\" {\n\t\tt.KeyCtrlHome = \"\\x1b[1;5H\"\n\t\tt.KeyCtrlEnd = \"\\x1b[1;5F\"\n\t\tt.KeyAltHome = \"\\x1b[1;9H\"\n\t\tt.KeyAltEnd = \"\\x1b[1;9F\"\n\t\tt.KeyCtrlShfHome = \"\\x1b[1;6H\"\n\t\tt.KeyCtrlShfEnd = \"\\x1b[1;6F\"\n\t\tt.KeyAltShfHome = \"\\x1b[1;4H\"\n\t\tt.KeyAltShfEnd = \"\\x1b[1;4F\"\n\t\tt.KeyMetaShfHome = \"\\x1b[1;10H\"\n\t\tt.KeyMetaShfEnd = \"\\x1b[1;10F\"\n\t}\n\n\t// And the same thing for rxvt and workalikes (Eterm, aterm, etc.)\n\t// It seems that urxvt at least send escaped as ALT prefix for these,\n\t// although some places seem to indicate a separate ALT key sesquence.\n\tif t.KeyShfRight == \"\\x1b[c\" && t.KeyShfLeft == \"\\x1b[d\" {\n\t\tt.KeyShfUp = \"\\x1b[a\"\n\t\tt.KeyShfDown = \"\\x1b[b\"\n\t\tt.KeyCtrlUp = \"\\x1b[Oa\"\n\t\tt.KeyCtrlDown = \"\\x1b[Ob\"\n\t\tt.KeyCtrlRight = \"\\x1b[Oc\"\n\t\tt.KeyCtrlLeft = \"\\x1b[Od\"\n\t}\n\tif t.KeyShfHome == \"\\x1b[7$\" && t.KeyShfEnd == \"\\x1b[8$\" {\n\t\tt.KeyCtrlHome = \"\\x1b[7^\"\n\t\tt.KeyCtrlEnd = \"\\x1b[8^\"\n\t}\n\n\t// Technically the RGB flag that is provided for xterm-direct is not\n\t// quite right.  The problem is that the -direct flag that was introduced\n\t// with ncurses 6.1 requires a parsing for the parameters that we lack.\n\t// For this case we'll just assume it's XTerm compatible.  Someday this\n\t// may be incorrect, but right now it is correct, and nobody uses it\n\t// anyway.\n\tif tc.getflag(\"Tc\") {\n\t\t// This presumes XTerm 24-bit true color.\n\t\tt.TrueColor = true\n\t} else if tc.getflag(\"RGB\") {\n\t\t// This is for xterm-direct, which uses a different scheme entirely.\n\t\t// (ncurses went a very different direction from everyone else, and\n\t\t// so it's unlikely anything is using this definition.)\n\t\tt.TrueColor = true\n\t\tt.SetBg = \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\"\n\t\tt.SetFg = \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\"\n\t}\n\n\t// We only support colors in ANSI 8 or 256 color mode.\n\tif t.Colors < 8 || t.SetFg == \"\" {\n\t\tt.Colors = 0\n\t}\n\tif t.SetCursor == \"\" {\n\t\treturn nil, \"\", errNotAddressable\n\t}\n\n\t// For padding, we lookup the pad char.  If that isn't present,\n\t// and npc is *not* set, then we assume a null byte.\n\tt.PadChar = tc.getstr(\"pad\")\n\tif t.PadChar == \"\" {\n\t\tif !tc.getflag(\"npc\") {\n\t\t\tt.PadChar = \"\\u0000\"\n\t\t}\n\t}\n\n\t// For terminals that use \"standard\" SGR sequences, lets combine the\n\t// foreground and background together.\n\tif strings.HasPrefix(t.SetFg, \"\\x1b[\") &&\n\t\tstrings.HasPrefix(t.SetBg, \"\\x1b[\") &&\n\t\tstrings.HasSuffix(t.SetFg, \"m\") &&\n\t\tstrings.HasSuffix(t.SetBg, \"m\") {\n\t\tfg := t.SetFg[:len(t.SetFg)-1]\n\t\tr := regexp.MustCompile(\"%p1\")\n\t\tbg := r.ReplaceAllString(t.SetBg[2:], \"%p2\")\n\t\tt.SetFgBg = fg + \";\" + bg\n\t}\n\n\treturn t, tc.desc, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/e/emacs/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage emacs\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// GNU Emacs term.el terminal emulation\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:        \"eterm\",\n\t\tColumns:     80,\n\t\tLines:       24,\n\t\tBell:        \"\\a\",\n\t\tClear:       \"\\x1b[H\\x1b[J\",\n\t\tEnterCA:     \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:      \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tAttrOff:     \"\\x1b[m\",\n\t\tUnderline:   \"\\x1b[4m\",\n\t\tBold:        \"\\x1b[1m\",\n\t\tReverse:     \"\\x1b[7m\",\n\t\tPadChar:     \"\\x00\",\n\t\tSetCursor:   \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1: \"\\b\",\n\t\tCursorUp1:   \"\\x1b[A\",\n\t\tAutoMargin:  true,\n\t})\n\n\t// Emacs term.el terminal emulator term-protocol-version 0.96\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"eterm-color\",\n\t\tColumns:      80,\n\t\tLines:        24,\n\t\tColors:       8,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b[H\\x1b[J\",\n\t\tEnterCA:      \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:       \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tAttrOff:      \"\\x1b[m\",\n\t\tUnderline:    \"\\x1b[4m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tBlink:        \"\\x1b[5m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tSetFg:        \"\\x1b[%p1%{30}%+%dm\",\n\t\tSetBg:        \"\\x1b[%p1%'('%+%dm\",\n\t\tSetFgBg:      \"\\x1b[%p1%{30}%+%d;%p2%'('%+%dm\",\n\t\tResetFgBg:    \"\\x1b[39;49m\",\n\t\tPadChar:      \"\\x00\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1b[A\",\n\t\tKeyUp:        \"\\x1bOA\",\n\t\tKeyDown:      \"\\x1bOB\",\n\t\tKeyRight:     \"\\x1bOC\",\n\t\tKeyLeft:      \"\\x1bOD\",\n\t\tKeyInsert:    \"\\x1b[2~\",\n\t\tKeyDelete:    \"\\x1b[3~\",\n\t\tKeyBackspace: \"\\x7f\",\n\t\tKeyHome:      \"\\x1b[1~\",\n\t\tKeyEnd:       \"\\x1b[4~\",\n\t\tKeyPgUp:      \"\\x1b[5~\",\n\t\tKeyPgDn:      \"\\x1b[6~\",\n\t\tAutoMargin:   true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/extended/extended.go",
    "content": "// Copyright 2024 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package extended contains an extended set of terminal descriptions.\n// Applications desiring to have a better chance of Just Working by\n// default should include this package.  This will significantly increase\n// the size of the program.\npackage extended\n\nimport (\n\t// The following imports just register themselves --\n\t// these are the terminal types we aggregate in this package.\n\t_ \"github.com/gdamore/tcell/v2/terminfo/a/aixterm\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/a/alacritty\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/a/ansi\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/b/beterm\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/c/cygwin\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/d/dtterm\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/e/emacs\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/f/foot\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/g/gnome\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/h/hpterm\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/k/konsole\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/k/kterm\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/l/linux\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/p/pcansi\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/r/rxvt\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/s/screen\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/s/simpleterm\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/s/sun\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/t/tmux\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/v/vt100\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/v/vt102\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/v/vt220\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/v/vt320\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/v/vt400\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/v/vt420\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/v/vt52\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/w/wy50\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/w/wy60\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/w/wy99_ansi\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/x/xfce\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/x/xterm\"\n\t_ \"github.com/gdamore/tcell/v2/terminfo/x/xterm_kitty\"\n)\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/f/foot/foot.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage foot\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// foot terminal emulator\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:          \"foot\",\n\t\tAliases:       []string{\"foot-extra\"},\n\t\tColumns:       80,\n\t\tLines:         24,\n\t\tColors:        256,\n\t\tBell:          \"\\a\",\n\t\tClear:         \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:       \"\\x1b[?1049h\\x1b[22;0;0t\",\n\t\tExitCA:        \"\\x1b[?1049l\\x1b[23;0;0t\",\n\t\tShowCursor:    \"\\x1b[?12l\\x1b[?25h\",\n\t\tHideCursor:    \"\\x1b[?25l\",\n\t\tAttrOff:       \"\\x1b(B\\x1b[m\",\n\t\tUnderline:     \"\\x1b[4m\",\n\t\tBold:          \"\\x1b[1m\",\n\t\tDim:           \"\\x1b[2m\",\n\t\tItalic:        \"\\x1b[3m\",\n\t\tBlink:         \"\\x1b[5m\",\n\t\tReverse:       \"\\x1b[7m\",\n\t\tEnterKeypad:   \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:    \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:         \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38:5:%p1%d%;m\",\n\t\tSetBg:         \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48:5:%p1%d%;m\",\n\t\tSetFgBg:       \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38:5:%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48:5:%p2%d%;m\",\n\t\tResetFgBg:     \"\\x1b[39;49m\",\n\t\tAltChars:      \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:      \"\\x1b(0\",\n\t\tExitAcs:       \"\\x1b(B\",\n\t\tStrikeThrough: \"\\x1b[9m\",\n\t\tMouse:         \"\\x1b[M\",\n\t\tSetCursor:     \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:   \"\\b\",\n\t\tCursorUp1:     \"\\x1b[A\",\n\t\tKeyUp:         \"\\x1bOA\",\n\t\tKeyDown:       \"\\x1bOB\",\n\t\tKeyRight:      \"\\x1bOC\",\n\t\tKeyLeft:       \"\\x1bOD\",\n\t\tKeyInsert:     \"\\x1b[2~\",\n\t\tKeyDelete:     \"\\x1b[3~\",\n\t\tKeyBackspace:  \"\\u007f\",\n\t\tKeyHome:       \"\\x1bOH\",\n\t\tKeyEnd:        \"\\x1bOF\",\n\t\tKeyPgUp:       \"\\x1b[5~\",\n\t\tKeyPgDn:       \"\\x1b[6~\",\n\t\tKeyF1:         \"\\x1bOP\",\n\t\tKeyF2:         \"\\x1bOQ\",\n\t\tKeyF3:         \"\\x1bOR\",\n\t\tKeyF4:         \"\\x1bOS\",\n\t\tKeyF5:         \"\\x1b[15~\",\n\t\tKeyF6:         \"\\x1b[17~\",\n\t\tKeyF7:         \"\\x1b[18~\",\n\t\tKeyF8:         \"\\x1b[19~\",\n\t\tKeyF9:         \"\\x1b[20~\",\n\t\tKeyF10:        \"\\x1b[21~\",\n\t\tKeyF11:        \"\\x1b[23~\",\n\t\tKeyF12:        \"\\x1b[24~\",\n\t\tKeyBacktab:    \"\\x1b[Z\",\n\t\tModifiers:     1,\n\t\tAutoMargin:    true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/g/gnome/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage gnome\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// GNOME Terminal\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"gnome\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            8,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:            \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tShowCursor:        \"\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[0m\\x0f\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tItalic:            \"\\x1b[3m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:             \"\\x1b[3%p1%dm\",\n\t\tSetBg:             \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:           \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x0e\",\n\t\tExitAcs:           \"\\x0f\",\n\t\tEnableAcs:         \"\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tMouse:             \"\\x1b[M\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1bOH\",\n\t\tKeyEnd:            \"\\x1bOF\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tModifiers:         1,\n\t\tAutoMargin:        true,\n\t})\n\n\t// GNOME Terminal with xterm 256-colors\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"gnome-256color\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            256,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:            \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tShowCursor:        \"\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[0m\\x0f\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tItalic:            \"\\x1b[3m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:             \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:             \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:           \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x0e\",\n\t\tExitAcs:           \"\\x0f\",\n\t\tEnableAcs:         \"\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tMouse:             \"\\x1b[M\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1bOH\",\n\t\tKeyEnd:            \"\\x1bOF\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tModifiers:         1,\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/gen.sh",
    "content": "#!/bin/bash\nwhile read line\ndo\n        case \"$line\" in\n        *'|'*)\n                alias=${line#*|}\n                line=${line%|*}\n                ;;\n        *)\n                alias=${line%%,*}\n                ;;\n        esac\n\n        alias=${alias//-/_}\n        direc=${alias:0:1}\n\n        mkdir -p ${direc}/${alias}\n        go run mkinfo.go -P ${alias} -go ${direc}/${alias}/term.go ${line//,/ }\ndone < models.txt\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/h/hpterm/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage hpterm\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// HP X11 terminal emulator (old)\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"hpterm\",\n\t\tAliases:      []string{\"X-hpterm\"},\n\t\tColumns:      80,\n\t\tLines:        24,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b&a0y0C\\x1bJ\",\n\t\tAttrOff:      \"\\x1b&d@\\x0f\",\n\t\tUnderline:    \"\\x1b&dD\",\n\t\tBold:         \"\\x1b&dB\",\n\t\tDim:          \"\\x1b&dH\",\n\t\tReverse:      \"\\x1b&dB\",\n\t\tEnterKeypad:  \"\\x1b&s1A\",\n\t\tExitKeypad:   \"\\x1b&s0A\",\n\t\tPadChar:      \"\\x00\",\n\t\tEnterAcs:     \"\\x0e\",\n\t\tExitAcs:      \"\\x0f\",\n\t\tSetCursor:    \"\\x1b&a%p1%dy%p2%dC\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1bA\",\n\t\tKeyUp:        \"\\x1bA\",\n\t\tKeyDown:      \"\\x1bB\",\n\t\tKeyRight:     \"\\x1bC\",\n\t\tKeyLeft:      \"\\x1bD\",\n\t\tKeyInsert:    \"\\x1bQ\",\n\t\tKeyDelete:    \"\\x1bP\",\n\t\tKeyBackspace: \"\\b\",\n\t\tKeyHome:      \"\\x1bh\",\n\t\tKeyPgUp:      \"\\x1bV\",\n\t\tKeyPgDn:      \"\\x1bU\",\n\t\tKeyF1:        \"\\x1bp\",\n\t\tKeyF2:        \"\\x1bq\",\n\t\tKeyF3:        \"\\x1br\",\n\t\tKeyF4:        \"\\x1bs\",\n\t\tKeyF5:        \"\\x1bt\",\n\t\tKeyF6:        \"\\x1bu\",\n\t\tKeyF7:        \"\\x1bv\",\n\t\tKeyF8:        \"\\x1bw\",\n\t\tKeyClear:     \"\\x1bJ\",\n\t\tAutoMargin:   true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/k/konsole/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage konsole\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// KDE console window\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"konsole\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            8,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:            \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tShowCursor:        \"\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[0m\\x0f\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tItalic:            \"\\x1b[3m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:             \"\\x1b[3%p1%dm\",\n\t\tSetBg:             \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:           \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tAltChars:          \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x0e\",\n\t\tExitAcs:           \"\\x0f\",\n\t\tEnableAcs:         \"\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tStrikeThrough:     \"\\x1b[9m\",\n\t\tMouse:             \"\\x1b[<\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1bOH\",\n\t\tKeyEnd:            \"\\x1bOF\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tModifiers:         1,\n\t\tAutoMargin:        true,\n\t})\n\n\t// KDE console window with xterm 256-colors\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"konsole-256color\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            256,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:            \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tShowCursor:        \"\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[0m\\x0f\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tItalic:            \"\\x1b[3m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:             \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:             \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:           \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tAltChars:          \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x0e\",\n\t\tExitAcs:           \"\\x0f\",\n\t\tEnableAcs:         \"\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tStrikeThrough:     \"\\x1b[9m\",\n\t\tMouse:             \"\\x1b[<\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1bOH\",\n\t\tKeyEnd:            \"\\x1bOF\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tModifiers:         1,\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/k/kterm/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage kterm\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// kterm kanji terminal emulator (X window system)\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"kterm\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            8,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:            \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tAttrOff:           \"\\x1b[m\\x1b(B\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:             \"\\x1b[3%p1%dm\",\n\t\tSetBg:             \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:           \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aajjkkllmmnnooppqqrrssttuuvvwwxx~~\",\n\t\tEnterAcs:          \"\\x1b(0\",\n\t\tExitAcs:           \"\\x1b(B\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tMouse:             \"\\x1b[M\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1b[11~\",\n\t\tKeyF2:             \"\\x1b[12~\",\n\t\tKeyF3:             \"\\x1b[13~\",\n\t\tKeyF4:             \"\\x1b[14~\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyF13:            \"\\x1b[25~\",\n\t\tKeyF14:            \"\\x1b[26~\",\n\t\tKeyF15:            \"\\x1b[28~\",\n\t\tKeyF16:            \"\\x1b[29~\",\n\t\tKeyF17:            \"\\x1b[31~\",\n\t\tKeyF18:            \"\\x1b[32~\",\n\t\tKeyF19:            \"\\x1b[33~\",\n\t\tKeyF20:            \"\\x1b[34~\",\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/l/linux/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage linux\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// Linux console\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"linux\",\n\t\tColors:            8,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[J\",\n\t\tShowCursor:        \"\\x1b[?25h\\x1b[?0c\",\n\t\tHideCursor:        \"\\x1b[?25l\\x1b[?1c\",\n\t\tAttrOff:           \"\\x1b[m\\x0f\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tSetFg:             \"\\x1b[3%p1%dm\",\n\t\tSetBg:             \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:           \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x0e\",\n\t\tExitAcs:           \"\\x0f\",\n\t\tEnableAcs:         \"\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tMouse:             \"\\x1b[M\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1b[A\",\n\t\tKeyDown:           \"\\x1b[B\",\n\t\tKeyRight:          \"\\x1b[C\",\n\t\tKeyLeft:           \"\\x1b[D\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1b[1~\",\n\t\tKeyEnd:            \"\\x1b[4~\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1b[[A\",\n\t\tKeyF2:             \"\\x1b[[B\",\n\t\tKeyF3:             \"\\x1b[[C\",\n\t\tKeyF4:             \"\\x1b[[D\",\n\t\tKeyF5:             \"\\x1b[[E\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyF13:            \"\\x1b[25~\",\n\t\tKeyF14:            \"\\x1b[26~\",\n\t\tKeyF15:            \"\\x1b[28~\",\n\t\tKeyF16:            \"\\x1b[29~\",\n\t\tKeyF17:            \"\\x1b[31~\",\n\t\tKeyF18:            \"\\x1b[32~\",\n\t\tKeyF19:            \"\\x1b[33~\",\n\t\tKeyF20:            \"\\x1b[34~\",\n\t\tKeyBacktab:        \"\\x1b\\t\",\n\t\tAutoMargin:        true,\n\t\tInsertChar:        \"\\x1b[@\",\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/models.txt",
    "content": "aixterm\nalacritty\nansi\nbeterm\ncygwin\ndtterm\neterm,eterm-color|emacs\ngnome,gnome-256color\nhpterm\nkonsole,konsole-256color\nkterm\nlinux\npcansi\nrxvt,rxvt-256color,rxvt-88color,rxvt-unicode,rxvt-unicode-256color\nscreen,screen-256color\nst,st-256color|simpleterm\ntmux\nvt52\nvt100\nvt102\nvt220\nvt320\nvt400\nvt420\nwy50\nwy60\nwy99-ansi,wy99a-ansi\nxfce\nxterm,xterm-88color,xterm-256color\nxterm-kitty\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/p/pcansi/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage pcansi\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// ibm-pc terminal programs claiming to be ANSI\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"pcansi\",\n\t\tColumns:      80,\n\t\tLines:        24,\n\t\tColors:       8,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b[H\\x1b[J\",\n\t\tAttrOff:      \"\\x1b[0;10m\",\n\t\tUnderline:    \"\\x1b[4m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tBlink:        \"\\x1b[5m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tSetFg:        \"\\x1b[3%p1%dm\",\n\t\tSetBg:        \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:      \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:    \"\\x1b[37;40m\",\n\t\tPadChar:      \"\\x00\",\n\t\tAltChars:     \"+\\x10,\\x11-\\x18.\\x190\\xdb`\\x04a\\xb1f\\xf8g\\xf1h\\xb0j\\xd9k\\xbfl\\xdam\\xc0n\\xc5o~p\\xc4q\\xc4r\\xc4s_t\\xc3u\\xb4v\\xc1w\\xc2x\\xb3y\\xf3z\\xf2{\\xe3|\\xd8}\\x9c~\\xfe\",\n\t\tEnterAcs:     \"\\x1b[12m\",\n\t\tExitAcs:      \"\\x1b[10m\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\x1b[D\",\n\t\tCursorUp1:    \"\\x1b[A\",\n\t\tKeyUp:        \"\\x1b[A\",\n\t\tKeyDown:      \"\\x1b[B\",\n\t\tKeyRight:     \"\\x1b[C\",\n\t\tKeyLeft:      \"\\x1b[D\",\n\t\tKeyBackspace: \"\\b\",\n\t\tKeyHome:      \"\\x1b[H\",\n\t\tAutoMargin:   true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/r/rxvt/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage rxvt\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// rxvt terminal emulator (X Window System)\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"rxvt\",\n\t\tAliases:      []string{\"rxvt-color\"},\n\t\tColumns:      80,\n\t\tLines:        24,\n\t\tColors:       8,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:      \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:       \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tShowCursor:   \"\\x1b[?25h\",\n\t\tHideCursor:   \"\\x1b[?25l\",\n\t\tAttrOff:      \"\\x1b[m\\x0f\",\n\t\tUnderline:    \"\\x1b[4m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tBlink:        \"\\x1b[5m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tEnterKeypad:  \"\\x1b=\",\n\t\tExitKeypad:   \"\\x1b>\",\n\t\tSetFg:        \"\\x1b[3%p1%dm\",\n\t\tSetBg:        \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:      \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:    \"\\x1b[39;49m\",\n\t\tPadChar:      \"\\x00\",\n\t\tAltChars:     \"``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:     \"\\x0e\",\n\t\tExitAcs:      \"\\x0f\",\n\t\tEnableAcs:    \"\\x1b(B\\x1b)0\",\n\t\tMouse:        \"\\x1b[M\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1b[A\",\n\t\tKeyUp:        \"\\x1b[A\",\n\t\tKeyDown:      \"\\x1b[B\",\n\t\tKeyRight:     \"\\x1b[C\",\n\t\tKeyLeft:      \"\\x1b[D\",\n\t\tKeyInsert:    \"\\x1b[2~\",\n\t\tKeyDelete:    \"\\x1b[3~\",\n\t\tKeyBackspace: \"\\x7f\",\n\t\tKeyHome:      \"\\x1b[7~\",\n\t\tKeyEnd:       \"\\x1b[8~\",\n\t\tKeyPgUp:      \"\\x1b[5~\",\n\t\tKeyPgDn:      \"\\x1b[6~\",\n\t\tKeyF1:        \"\\x1b[11~\",\n\t\tKeyF2:        \"\\x1b[12~\",\n\t\tKeyF3:        \"\\x1b[13~\",\n\t\tKeyF4:        \"\\x1b[14~\",\n\t\tKeyF5:        \"\\x1b[15~\",\n\t\tKeyF6:        \"\\x1b[17~\",\n\t\tKeyF7:        \"\\x1b[18~\",\n\t\tKeyF8:        \"\\x1b[19~\",\n\t\tKeyF9:        \"\\x1b[20~\",\n\t\tKeyF10:       \"\\x1b[21~\",\n\t\tKeyF11:       \"\\x1b[23~\",\n\t\tKeyF12:       \"\\x1b[24~\",\n\t\tKeyF13:       \"\\x1b[25~\",\n\t\tKeyF14:       \"\\x1b[26~\",\n\t\tKeyF15:       \"\\x1b[28~\",\n\t\tKeyF16:       \"\\x1b[29~\",\n\t\tKeyF17:       \"\\x1b[31~\",\n\t\tKeyF18:       \"\\x1b[32~\",\n\t\tKeyF19:       \"\\x1b[33~\",\n\t\tKeyF20:       \"\\x1b[34~\",\n\t\tKeyF21:       \"\\x1b[23$\",\n\t\tKeyF22:       \"\\x1b[24$\",\n\t\tKeyF23:       \"\\x1b[11^\",\n\t\tKeyF24:       \"\\x1b[12^\",\n\t\tKeyF25:       \"\\x1b[13^\",\n\t\tKeyF26:       \"\\x1b[14^\",\n\t\tKeyF27:       \"\\x1b[15^\",\n\t\tKeyF28:       \"\\x1b[17^\",\n\t\tKeyF29:       \"\\x1b[18^\",\n\t\tKeyF30:       \"\\x1b[19^\",\n\t\tKeyF31:       \"\\x1b[20^\",\n\t\tKeyF32:       \"\\x1b[21^\",\n\t\tKeyF33:       \"\\x1b[23^\",\n\t\tKeyF34:       \"\\x1b[24^\",\n\t\tKeyF35:       \"\\x1b[25^\",\n\t\tKeyF36:       \"\\x1b[26^\",\n\t\tKeyF37:       \"\\x1b[28^\",\n\t\tKeyF38:       \"\\x1b[29^\",\n\t\tKeyF39:       \"\\x1b[31^\",\n\t\tKeyF40:       \"\\x1b[32^\",\n\t\tKeyF41:       \"\\x1b[33^\",\n\t\tKeyF42:       \"\\x1b[34^\",\n\t\tKeyF43:       \"\\x1b[23@\",\n\t\tKeyF44:       \"\\x1b[24@\",\n\t\tKeyBacktab:   \"\\x1b[Z\",\n\t\tKeyShfLeft:   \"\\x1b[d\",\n\t\tKeyShfRight:  \"\\x1b[c\",\n\t\tKeyShfUp:     \"\\x1b[a\",\n\t\tKeyShfDown:   \"\\x1b[b\",\n\t\tKeyShfHome:   \"\\x1b[7$\",\n\t\tKeyShfEnd:    \"\\x1b[8$\",\n\t\tKeyShfInsert: \"\\x1b[2$\",\n\t\tKeyShfDelete: \"\\x1b[3$\",\n\t\tKeyCtrlUp:    \"\\x1b[Oa\",\n\t\tKeyCtrlDown:  \"\\x1b[Ob\",\n\t\tKeyCtrlRight: \"\\x1b[Oc\",\n\t\tKeyCtrlLeft:  \"\\x1b[Od\",\n\t\tKeyCtrlHome:  \"\\x1b[7^\",\n\t\tKeyCtrlEnd:   \"\\x1b[8^\",\n\t\tAutoMargin:   true,\n\t})\n\n\t// rxvt 2.7.9 with xterm 256-colors\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"rxvt-256color\",\n\t\tColumns:      80,\n\t\tLines:        24,\n\t\tColors:       256,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:      \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:       \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tShowCursor:   \"\\x1b[?25h\",\n\t\tHideCursor:   \"\\x1b[?25l\",\n\t\tAttrOff:      \"\\x1b[m\\x0f\",\n\t\tUnderline:    \"\\x1b[4m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tBlink:        \"\\x1b[5m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tEnterKeypad:  \"\\x1b=\",\n\t\tExitKeypad:   \"\\x1b>\",\n\t\tSetFg:        \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:        \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:      \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tResetFgBg:    \"\\x1b[39;49m\",\n\t\tPadChar:      \"\\x00\",\n\t\tAltChars:     \"``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:     \"\\x0e\",\n\t\tExitAcs:      \"\\x0f\",\n\t\tEnableAcs:    \"\\x1b(B\\x1b)0\",\n\t\tMouse:        \"\\x1b[M\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1b[A\",\n\t\tKeyUp:        \"\\x1b[A\",\n\t\tKeyDown:      \"\\x1b[B\",\n\t\tKeyRight:     \"\\x1b[C\",\n\t\tKeyLeft:      \"\\x1b[D\",\n\t\tKeyInsert:    \"\\x1b[2~\",\n\t\tKeyDelete:    \"\\x1b[3~\",\n\t\tKeyBackspace: \"\\x7f\",\n\t\tKeyHome:      \"\\x1b[7~\",\n\t\tKeyEnd:       \"\\x1b[8~\",\n\t\tKeyPgUp:      \"\\x1b[5~\",\n\t\tKeyPgDn:      \"\\x1b[6~\",\n\t\tKeyF1:        \"\\x1b[11~\",\n\t\tKeyF2:        \"\\x1b[12~\",\n\t\tKeyF3:        \"\\x1b[13~\",\n\t\tKeyF4:        \"\\x1b[14~\",\n\t\tKeyF5:        \"\\x1b[15~\",\n\t\tKeyF6:        \"\\x1b[17~\",\n\t\tKeyF7:        \"\\x1b[18~\",\n\t\tKeyF8:        \"\\x1b[19~\",\n\t\tKeyF9:        \"\\x1b[20~\",\n\t\tKeyF10:       \"\\x1b[21~\",\n\t\tKeyF11:       \"\\x1b[23~\",\n\t\tKeyF12:       \"\\x1b[24~\",\n\t\tKeyF13:       \"\\x1b[25~\",\n\t\tKeyF14:       \"\\x1b[26~\",\n\t\tKeyF15:       \"\\x1b[28~\",\n\t\tKeyF16:       \"\\x1b[29~\",\n\t\tKeyF17:       \"\\x1b[31~\",\n\t\tKeyF18:       \"\\x1b[32~\",\n\t\tKeyF19:       \"\\x1b[33~\",\n\t\tKeyF20:       \"\\x1b[34~\",\n\t\tKeyF21:       \"\\x1b[23$\",\n\t\tKeyF22:       \"\\x1b[24$\",\n\t\tKeyF23:       \"\\x1b[11^\",\n\t\tKeyF24:       \"\\x1b[12^\",\n\t\tKeyF25:       \"\\x1b[13^\",\n\t\tKeyF26:       \"\\x1b[14^\",\n\t\tKeyF27:       \"\\x1b[15^\",\n\t\tKeyF28:       \"\\x1b[17^\",\n\t\tKeyF29:       \"\\x1b[18^\",\n\t\tKeyF30:       \"\\x1b[19^\",\n\t\tKeyF31:       \"\\x1b[20^\",\n\t\tKeyF32:       \"\\x1b[21^\",\n\t\tKeyF33:       \"\\x1b[23^\",\n\t\tKeyF34:       \"\\x1b[24^\",\n\t\tKeyF35:       \"\\x1b[25^\",\n\t\tKeyF36:       \"\\x1b[26^\",\n\t\tKeyF37:       \"\\x1b[28^\",\n\t\tKeyF38:       \"\\x1b[29^\",\n\t\tKeyF39:       \"\\x1b[31^\",\n\t\tKeyF40:       \"\\x1b[32^\",\n\t\tKeyF41:       \"\\x1b[33^\",\n\t\tKeyF42:       \"\\x1b[34^\",\n\t\tKeyF43:       \"\\x1b[23@\",\n\t\tKeyF44:       \"\\x1b[24@\",\n\t\tKeyBacktab:   \"\\x1b[Z\",\n\t\tKeyShfLeft:   \"\\x1b[d\",\n\t\tKeyShfRight:  \"\\x1b[c\",\n\t\tKeyShfUp:     \"\\x1b[a\",\n\t\tKeyShfDown:   \"\\x1b[b\",\n\t\tKeyShfHome:   \"\\x1b[7$\",\n\t\tKeyShfEnd:    \"\\x1b[8$\",\n\t\tKeyShfInsert: \"\\x1b[2$\",\n\t\tKeyShfDelete: \"\\x1b[3$\",\n\t\tKeyCtrlUp:    \"\\x1b[Oa\",\n\t\tKeyCtrlDown:  \"\\x1b[Ob\",\n\t\tKeyCtrlRight: \"\\x1b[Oc\",\n\t\tKeyCtrlLeft:  \"\\x1b[Od\",\n\t\tKeyCtrlHome:  \"\\x1b[7^\",\n\t\tKeyCtrlEnd:   \"\\x1b[8^\",\n\t\tAutoMargin:   true,\n\t})\n\n\t// rxvt 2.7.9 with xterm 88-colors\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"rxvt-88color\",\n\t\tColumns:      80,\n\t\tLines:        24,\n\t\tColors:       88,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:      \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:       \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tShowCursor:   \"\\x1b[?25h\",\n\t\tHideCursor:   \"\\x1b[?25l\",\n\t\tAttrOff:      \"\\x1b[m\\x0f\",\n\t\tUnderline:    \"\\x1b[4m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tBlink:        \"\\x1b[5m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tEnterKeypad:  \"\\x1b=\",\n\t\tExitKeypad:   \"\\x1b>\",\n\t\tSetFg:        \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:        \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:      \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tResetFgBg:    \"\\x1b[39;49m\",\n\t\tPadChar:      \"\\x00\",\n\t\tAltChars:     \"``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:     \"\\x0e\",\n\t\tExitAcs:      \"\\x0f\",\n\t\tEnableAcs:    \"\\x1b(B\\x1b)0\",\n\t\tMouse:        \"\\x1b[M\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1b[A\",\n\t\tKeyUp:        \"\\x1b[A\",\n\t\tKeyDown:      \"\\x1b[B\",\n\t\tKeyRight:     \"\\x1b[C\",\n\t\tKeyLeft:      \"\\x1b[D\",\n\t\tKeyInsert:    \"\\x1b[2~\",\n\t\tKeyDelete:    \"\\x1b[3~\",\n\t\tKeyBackspace: \"\\x7f\",\n\t\tKeyHome:      \"\\x1b[7~\",\n\t\tKeyEnd:       \"\\x1b[8~\",\n\t\tKeyPgUp:      \"\\x1b[5~\",\n\t\tKeyPgDn:      \"\\x1b[6~\",\n\t\tKeyF1:        \"\\x1b[11~\",\n\t\tKeyF2:        \"\\x1b[12~\",\n\t\tKeyF3:        \"\\x1b[13~\",\n\t\tKeyF4:        \"\\x1b[14~\",\n\t\tKeyF5:        \"\\x1b[15~\",\n\t\tKeyF6:        \"\\x1b[17~\",\n\t\tKeyF7:        \"\\x1b[18~\",\n\t\tKeyF8:        \"\\x1b[19~\",\n\t\tKeyF9:        \"\\x1b[20~\",\n\t\tKeyF10:       \"\\x1b[21~\",\n\t\tKeyF11:       \"\\x1b[23~\",\n\t\tKeyF12:       \"\\x1b[24~\",\n\t\tKeyF13:       \"\\x1b[25~\",\n\t\tKeyF14:       \"\\x1b[26~\",\n\t\tKeyF15:       \"\\x1b[28~\",\n\t\tKeyF16:       \"\\x1b[29~\",\n\t\tKeyF17:       \"\\x1b[31~\",\n\t\tKeyF18:       \"\\x1b[32~\",\n\t\tKeyF19:       \"\\x1b[33~\",\n\t\tKeyF20:       \"\\x1b[34~\",\n\t\tKeyF21:       \"\\x1b[23$\",\n\t\tKeyF22:       \"\\x1b[24$\",\n\t\tKeyF23:       \"\\x1b[11^\",\n\t\tKeyF24:       \"\\x1b[12^\",\n\t\tKeyF25:       \"\\x1b[13^\",\n\t\tKeyF26:       \"\\x1b[14^\",\n\t\tKeyF27:       \"\\x1b[15^\",\n\t\tKeyF28:       \"\\x1b[17^\",\n\t\tKeyF29:       \"\\x1b[18^\",\n\t\tKeyF30:       \"\\x1b[19^\",\n\t\tKeyF31:       \"\\x1b[20^\",\n\t\tKeyF32:       \"\\x1b[21^\",\n\t\tKeyF33:       \"\\x1b[23^\",\n\t\tKeyF34:       \"\\x1b[24^\",\n\t\tKeyF35:       \"\\x1b[25^\",\n\t\tKeyF36:       \"\\x1b[26^\",\n\t\tKeyF37:       \"\\x1b[28^\",\n\t\tKeyF38:       \"\\x1b[29^\",\n\t\tKeyF39:       \"\\x1b[31^\",\n\t\tKeyF40:       \"\\x1b[32^\",\n\t\tKeyF41:       \"\\x1b[33^\",\n\t\tKeyF42:       \"\\x1b[34^\",\n\t\tKeyF43:       \"\\x1b[23@\",\n\t\tKeyF44:       \"\\x1b[24@\",\n\t\tKeyBacktab:   \"\\x1b[Z\",\n\t\tKeyShfLeft:   \"\\x1b[d\",\n\t\tKeyShfRight:  \"\\x1b[c\",\n\t\tKeyShfUp:     \"\\x1b[a\",\n\t\tKeyShfDown:   \"\\x1b[b\",\n\t\tKeyShfHome:   \"\\x1b[7$\",\n\t\tKeyShfEnd:    \"\\x1b[8$\",\n\t\tKeyShfInsert: \"\\x1b[2$\",\n\t\tKeyShfDelete: \"\\x1b[3$\",\n\t\tKeyCtrlUp:    \"\\x1b[Oa\",\n\t\tKeyCtrlDown:  \"\\x1b[Ob\",\n\t\tKeyCtrlRight: \"\\x1b[Oc\",\n\t\tKeyCtrlLeft:  \"\\x1b[Od\",\n\t\tKeyCtrlHome:  \"\\x1b[7^\",\n\t\tKeyCtrlEnd:   \"\\x1b[8^\",\n\t\tAutoMargin:   true,\n\t})\n\n\t// rxvt-unicode terminal (X Window System)\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"rxvt-unicode\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            88,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b[?1049h\",\n\t\tExitCA:            \"\\x1b[r\\x1b[?1049l\",\n\t\tShowCursor:        \"\\x1b[?12l\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[m\\x1b(B\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tItalic:            \"\\x1b[3m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b=\",\n\t\tExitKeypad:        \"\\x1b>\",\n\t\tSetFg:             \"\\x1b[38;5;%p1%dm\",\n\t\tSetBg:             \"\\x1b[48;5;%p1%dm\",\n\t\tSetFgBg:           \"\\x1b[38;5;%p1%d;48;5;%p2%dm\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tAltChars:          \"+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x1b(0\",\n\t\tExitAcs:           \"\\x1b(B\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tMouse:             \"\\x1b[M\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1b[A\",\n\t\tKeyDown:           \"\\x1b[B\",\n\t\tKeyRight:          \"\\x1b[C\",\n\t\tKeyLeft:           \"\\x1b[D\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1b[7~\",\n\t\tKeyEnd:            \"\\x1b[8~\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1b[11~\",\n\t\tKeyF2:             \"\\x1b[12~\",\n\t\tKeyF3:             \"\\x1b[13~\",\n\t\tKeyF4:             \"\\x1b[14~\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyF13:            \"\\x1b[25~\",\n\t\tKeyF14:            \"\\x1b[26~\",\n\t\tKeyF15:            \"\\x1b[28~\",\n\t\tKeyF16:            \"\\x1b[29~\",\n\t\tKeyF17:            \"\\x1b[31~\",\n\t\tKeyF18:            \"\\x1b[32~\",\n\t\tKeyF19:            \"\\x1b[33~\",\n\t\tKeyF20:            \"\\x1b[34~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tKeyShfLeft:        \"\\x1b[d\",\n\t\tKeyShfRight:       \"\\x1b[c\",\n\t\tKeyShfUp:          \"\\x1b[a\",\n\t\tKeyShfDown:        \"\\x1b[b\",\n\t\tKeyShfHome:        \"\\x1b[7$\",\n\t\tKeyShfEnd:         \"\\x1b[8$\",\n\t\tKeyShfInsert:      \"\\x1b[2$\",\n\t\tKeyShfDelete:      \"\\x1b[3$\",\n\t\tKeyCtrlUp:         \"\\x1b[Oa\",\n\t\tKeyCtrlDown:       \"\\x1b[Ob\",\n\t\tKeyCtrlRight:      \"\\x1b[Oc\",\n\t\tKeyCtrlLeft:       \"\\x1b[Od\",\n\t\tKeyCtrlHome:       \"\\x1b[7^\",\n\t\tKeyCtrlEnd:        \"\\x1b[8^\",\n\t\tAutoMargin:        true,\n\t\tInsertChar:        \"\\x1b[@\",\n\t})\n\n\t// rxvt-unicode terminal with 256 colors (X Window System)\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"rxvt-unicode-256color\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            256,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b[?1049h\",\n\t\tExitCA:            \"\\x1b[r\\x1b[?1049l\",\n\t\tShowCursor:        \"\\x1b[?12l\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[m\\x1b(B\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tItalic:            \"\\x1b[3m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b=\",\n\t\tExitKeypad:        \"\\x1b>\",\n\t\tSetFg:             \"\\x1b[38;5;%p1%dm\",\n\t\tSetBg:             \"\\x1b[48;5;%p1%dm\",\n\t\tSetFgBg:           \"\\x1b[38;5;%p1%d;48;5;%p2%dm\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tAltChars:          \"+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x1b(0\",\n\t\tExitAcs:           \"\\x1b(B\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tMouse:             \"\\x1b[M\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1b[A\",\n\t\tKeyDown:           \"\\x1b[B\",\n\t\tKeyRight:          \"\\x1b[C\",\n\t\tKeyLeft:           \"\\x1b[D\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1b[7~\",\n\t\tKeyEnd:            \"\\x1b[8~\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1b[11~\",\n\t\tKeyF2:             \"\\x1b[12~\",\n\t\tKeyF3:             \"\\x1b[13~\",\n\t\tKeyF4:             \"\\x1b[14~\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyF13:            \"\\x1b[25~\",\n\t\tKeyF14:            \"\\x1b[26~\",\n\t\tKeyF15:            \"\\x1b[28~\",\n\t\tKeyF16:            \"\\x1b[29~\",\n\t\tKeyF17:            \"\\x1b[31~\",\n\t\tKeyF18:            \"\\x1b[32~\",\n\t\tKeyF19:            \"\\x1b[33~\",\n\t\tKeyF20:            \"\\x1b[34~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tKeyShfLeft:        \"\\x1b[d\",\n\t\tKeyShfRight:       \"\\x1b[c\",\n\t\tKeyShfUp:          \"\\x1b[a\",\n\t\tKeyShfDown:        \"\\x1b[b\",\n\t\tKeyShfHome:        \"\\x1b[7$\",\n\t\tKeyShfEnd:         \"\\x1b[8$\",\n\t\tKeyShfInsert:      \"\\x1b[2$\",\n\t\tKeyShfDelete:      \"\\x1b[3$\",\n\t\tKeyCtrlUp:         \"\\x1b[Oa\",\n\t\tKeyCtrlDown:       \"\\x1b[Ob\",\n\t\tKeyCtrlRight:      \"\\x1b[Oc\",\n\t\tKeyCtrlLeft:       \"\\x1b[Od\",\n\t\tKeyCtrlHome:       \"\\x1b[7^\",\n\t\tKeyCtrlEnd:        \"\\x1b[8^\",\n\t\tAutoMargin:        true,\n\t\tInsertChar:        \"\\x1b[@\",\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/s/screen/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage screen\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// VT 100/ANSI X3.64 virtual terminal\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"screen\",\n\t\tColumns:      80,\n\t\tLines:        24,\n\t\tColors:       8,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b[H\\x1b[J\",\n\t\tEnterCA:      \"\\x1b[?1049h\",\n\t\tExitCA:       \"\\x1b[?1049l\",\n\t\tShowCursor:   \"\\x1b[34h\\x1b[?25h\",\n\t\tHideCursor:   \"\\x1b[?25l\",\n\t\tAttrOff:      \"\\x1b[m\\x0f\",\n\t\tUnderline:    \"\\x1b[4m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tDim:          \"\\x1b[2m\",\n\t\tBlink:        \"\\x1b[5m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tEnterKeypad:  \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:   \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:        \"\\x1b[3%p1%dm\",\n\t\tSetBg:        \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:      \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:    \"\\x1b[39;49m\",\n\t\tPadChar:      \"\\x00\",\n\t\tAltChars:     \"++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:     \"\\x0e\",\n\t\tExitAcs:      \"\\x0f\",\n\t\tEnableAcs:    \"\\x1b(B\\x1b)0\",\n\t\tMouse:        \"\\x1b[M\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1bM\",\n\t\tKeyUp:        \"\\x1bOA\",\n\t\tKeyDown:      \"\\x1bOB\",\n\t\tKeyRight:     \"\\x1bOC\",\n\t\tKeyLeft:      \"\\x1bOD\",\n\t\tKeyInsert:    \"\\x1b[2~\",\n\t\tKeyDelete:    \"\\x1b[3~\",\n\t\tKeyBackspace: \"\\x7f\",\n\t\tKeyHome:      \"\\x1b[1~\",\n\t\tKeyEnd:       \"\\x1b[4~\",\n\t\tKeyPgUp:      \"\\x1b[5~\",\n\t\tKeyPgDn:      \"\\x1b[6~\",\n\t\tKeyF1:        \"\\x1bOP\",\n\t\tKeyF2:        \"\\x1bOQ\",\n\t\tKeyF3:        \"\\x1bOR\",\n\t\tKeyF4:        \"\\x1bOS\",\n\t\tKeyF5:        \"\\x1b[15~\",\n\t\tKeyF6:        \"\\x1b[17~\",\n\t\tKeyF7:        \"\\x1b[18~\",\n\t\tKeyF8:        \"\\x1b[19~\",\n\t\tKeyF9:        \"\\x1b[20~\",\n\t\tKeyF10:       \"\\x1b[21~\",\n\t\tKeyF11:       \"\\x1b[23~\",\n\t\tKeyF12:       \"\\x1b[24~\",\n\t\tKeyBacktab:   \"\\x1b[Z\",\n\t\tAutoMargin:   true,\n\t})\n\n\t// GNU Screen with 256 colors\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"screen-256color\",\n\t\tColumns:      80,\n\t\tLines:        24,\n\t\tColors:       256,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b[H\\x1b[J\",\n\t\tEnterCA:      \"\\x1b[?1049h\",\n\t\tExitCA:       \"\\x1b[?1049l\",\n\t\tShowCursor:   \"\\x1b[34h\\x1b[?25h\",\n\t\tHideCursor:   \"\\x1b[?25l\",\n\t\tAttrOff:      \"\\x1b[m\\x0f\",\n\t\tUnderline:    \"\\x1b[4m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tDim:          \"\\x1b[2m\",\n\t\tBlink:        \"\\x1b[5m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tEnterKeypad:  \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:   \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:        \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:        \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:      \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tResetFgBg:    \"\\x1b[39;49m\",\n\t\tPadChar:      \"\\x00\",\n\t\tAltChars:     \"++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:     \"\\x0e\",\n\t\tExitAcs:      \"\\x0f\",\n\t\tEnableAcs:    \"\\x1b(B\\x1b)0\",\n\t\tMouse:        \"\\x1b[M\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1bM\",\n\t\tKeyUp:        \"\\x1bOA\",\n\t\tKeyDown:      \"\\x1bOB\",\n\t\tKeyRight:     \"\\x1bOC\",\n\t\tKeyLeft:      \"\\x1bOD\",\n\t\tKeyInsert:    \"\\x1b[2~\",\n\t\tKeyDelete:    \"\\x1b[3~\",\n\t\tKeyBackspace: \"\\x7f\",\n\t\tKeyHome:      \"\\x1b[1~\",\n\t\tKeyEnd:       \"\\x1b[4~\",\n\t\tKeyPgUp:      \"\\x1b[5~\",\n\t\tKeyPgDn:      \"\\x1b[6~\",\n\t\tKeyF1:        \"\\x1bOP\",\n\t\tKeyF2:        \"\\x1bOQ\",\n\t\tKeyF3:        \"\\x1bOR\",\n\t\tKeyF4:        \"\\x1bOS\",\n\t\tKeyF5:        \"\\x1b[15~\",\n\t\tKeyF6:        \"\\x1b[17~\",\n\t\tKeyF7:        \"\\x1b[18~\",\n\t\tKeyF8:        \"\\x1b[19~\",\n\t\tKeyF9:        \"\\x1b[20~\",\n\t\tKeyF10:       \"\\x1b[21~\",\n\t\tKeyF11:       \"\\x1b[23~\",\n\t\tKeyF12:       \"\\x1b[24~\",\n\t\tKeyBacktab:   \"\\x1b[Z\",\n\t\tAutoMargin:   true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/s/simpleterm/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage simpleterm\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// aka simpleterm\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:          \"st\",\n\t\tAliases:       []string{\"stterm\"},\n\t\tColumns:       80,\n\t\tLines:         24,\n\t\tColors:        8,\n\t\tBell:          \"\\a\",\n\t\tClear:         \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:       \"\\x1b[?1049h\",\n\t\tExitCA:        \"\\x1b[?1049l\",\n\t\tShowCursor:    \"\\x1b[?25h\",\n\t\tHideCursor:    \"\\x1b[?25l\",\n\t\tAttrOff:       \"\\x1b[0m\",\n\t\tUnderline:     \"\\x1b[4m\",\n\t\tBold:          \"\\x1b[1m\",\n\t\tDim:           \"\\x1b[2m\",\n\t\tItalic:        \"\\x1b[3m\",\n\t\tBlink:         \"\\x1b[5m\",\n\t\tReverse:       \"\\x1b[7m\",\n\t\tEnterKeypad:   \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:    \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:         \"\\x1b[3%p1%dm\",\n\t\tSetBg:         \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:       \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:     \"\\x1b[39;49m\",\n\t\tAltChars:      \"+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:      \"\\x1b(0\",\n\t\tExitAcs:       \"\\x1b(B\",\n\t\tEnableAcs:     \"\\x1b)0\",\n\t\tStrikeThrough: \"\\x1b[9m\",\n\t\tMouse:         \"\\x1b[M\",\n\t\tSetCursor:     \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:   \"\\b\",\n\t\tCursorUp1:     \"\\x1b[A\",\n\t\tKeyUp:         \"\\x1bOA\",\n\t\tKeyDown:       \"\\x1bOB\",\n\t\tKeyRight:      \"\\x1bOC\",\n\t\tKeyLeft:       \"\\x1bOD\",\n\t\tKeyInsert:     \"\\x1b[2~\",\n\t\tKeyDelete:     \"\\x1b[3~\",\n\t\tKeyBackspace:  \"\\x7f\",\n\t\tKeyHome:       \"\\x1b[1~\",\n\t\tKeyEnd:        \"\\x1b[4~\",\n\t\tKeyPgUp:       \"\\x1b[5~\",\n\t\tKeyPgDn:       \"\\x1b[6~\",\n\t\tKeyF1:         \"\\x1bOP\",\n\t\tKeyF2:         \"\\x1bOQ\",\n\t\tKeyF3:         \"\\x1bOR\",\n\t\tKeyF4:         \"\\x1bOS\",\n\t\tKeyF5:         \"\\x1b[15~\",\n\t\tKeyF6:         \"\\x1b[17~\",\n\t\tKeyF7:         \"\\x1b[18~\",\n\t\tKeyF8:         \"\\x1b[19~\",\n\t\tKeyF9:         \"\\x1b[20~\",\n\t\tKeyF10:        \"\\x1b[21~\",\n\t\tKeyF11:        \"\\x1b[23~\",\n\t\tKeyF12:        \"\\x1b[24~\",\n\t\tKeyClear:      \"\\x1b[3;5~\",\n\t\tModifiers:     1,\n\t\tAutoMargin:    true,\n\t})\n\n\t// simpleterm with 256 colors\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:          \"st-256color\",\n\t\tAliases:       []string{\"stterm-256color\"},\n\t\tColumns:       80,\n\t\tLines:         24,\n\t\tColors:        256,\n\t\tBell:          \"\\a\",\n\t\tClear:         \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:       \"\\x1b[?1049h\",\n\t\tExitCA:        \"\\x1b[?1049l\",\n\t\tShowCursor:    \"\\x1b[?25h\",\n\t\tHideCursor:    \"\\x1b[?25l\",\n\t\tAttrOff:       \"\\x1b[0m\",\n\t\tUnderline:     \"\\x1b[4m\",\n\t\tBold:          \"\\x1b[1m\",\n\t\tDim:           \"\\x1b[2m\",\n\t\tItalic:        \"\\x1b[3m\",\n\t\tBlink:         \"\\x1b[5m\",\n\t\tReverse:       \"\\x1b[7m\",\n\t\tEnterKeypad:   \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:    \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:         \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:         \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:       \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tResetFgBg:     \"\\x1b[39;49m\",\n\t\tAltChars:      \"+C,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:      \"\\x1b(0\",\n\t\tExitAcs:       \"\\x1b(B\",\n\t\tEnableAcs:     \"\\x1b)0\",\n\t\tStrikeThrough: \"\\x1b[9m\",\n\t\tMouse:         \"\\x1b[M\",\n\t\tSetCursor:     \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:   \"\\b\",\n\t\tCursorUp1:     \"\\x1b[A\",\n\t\tKeyUp:         \"\\x1bOA\",\n\t\tKeyDown:       \"\\x1bOB\",\n\t\tKeyRight:      \"\\x1bOC\",\n\t\tKeyLeft:       \"\\x1bOD\",\n\t\tKeyInsert:     \"\\x1b[2~\",\n\t\tKeyDelete:     \"\\x1b[3~\",\n\t\tKeyBackspace:  \"\\x7f\",\n\t\tKeyHome:       \"\\x1b[1~\",\n\t\tKeyEnd:        \"\\x1b[4~\",\n\t\tKeyPgUp:       \"\\x1b[5~\",\n\t\tKeyPgDn:       \"\\x1b[6~\",\n\t\tKeyF1:         \"\\x1bOP\",\n\t\tKeyF2:         \"\\x1bOQ\",\n\t\tKeyF3:         \"\\x1bOR\",\n\t\tKeyF4:         \"\\x1bOS\",\n\t\tKeyF5:         \"\\x1b[15~\",\n\t\tKeyF6:         \"\\x1b[17~\",\n\t\tKeyF7:         \"\\x1b[18~\",\n\t\tKeyF8:         \"\\x1b[19~\",\n\t\tKeyF9:         \"\\x1b[20~\",\n\t\tKeyF10:        \"\\x1b[21~\",\n\t\tKeyF11:        \"\\x1b[23~\",\n\t\tKeyF12:        \"\\x1b[24~\",\n\t\tKeyClear:      \"\\x1b[3;5~\",\n\t\tModifiers:     1,\n\t\tAutoMargin:    true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/s/sun/term.go",
    "content": "// Copyright 2021 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This terminal definition is hand-coded, as the default terminfo for\n// this terminal is busted with respect to color.  Unlike pretty much every\n// other ANSI compliant terminal, this terminal cannot combine foreground and\n// background escapes.  The default terminfo also only provides escapes for\n// 16-bit color.\n\npackage sun\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// Sun Microsystems Inc. workstation console\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"sun\",\n\t\tAliases:      []string{\"sun1\", \"sun2\"},\n\t\tColumns:      80,\n\t\tLines:        34,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\f\",\n\t\tAttrOff:      \"\\x1b[m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tPadChar:      \"\\x00\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1b[A\",\n\t\tKeyUp:        \"\\x1b[A\",\n\t\tKeyDown:      \"\\x1b[B\",\n\t\tKeyRight:     \"\\x1b[C\",\n\t\tKeyLeft:      \"\\x1b[D\",\n\t\tKeyInsert:    \"\\x1b[247z\",\n\t\tKeyDelete:    \"\\u007f\",\n\t\tKeyBackspace: \"\\b\",\n\t\tKeyHome:      \"\\x1b[214z\",\n\t\tKeyEnd:       \"\\x1b[220z\",\n\t\tKeyPgUp:      \"\\x1b[216z\",\n\t\tKeyPgDn:      \"\\x1b[222z\",\n\t\tKeyF1:        \"\\x1b[224z\",\n\t\tKeyF2:        \"\\x1b[225z\",\n\t\tKeyF3:        \"\\x1b[226z\",\n\t\tKeyF4:        \"\\x1b[227z\",\n\t\tKeyF5:        \"\\x1b[228z\",\n\t\tKeyF6:        \"\\x1b[229z\",\n\t\tKeyF7:        \"\\x1b[230z\",\n\t\tKeyF8:        \"\\x1b[231z\",\n\t\tKeyF9:        \"\\x1b[232z\",\n\t\tKeyF10:       \"\\x1b[233z\",\n\t\tKeyF11:       \"\\x1b[234z\",\n\t\tKeyF12:       \"\\x1b[235z\",\n\t\tAutoMargin:   true,\n\t\tInsertChar:   \"\\x1b[@\",\n\t})\n\n\t// Sun Microsystems Workstation console with color support (IA systems)\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"sun-color\",\n\t\tColumns:      80,\n\t\tLines:        34,\n\t\tColors:       256,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\f\",\n\t\tAttrOff:      \"\\x1b[m\",\n\t\tBold:         \"\\x1b[1m\",\n\t\tReverse:      \"\\x1b[7m\",\n\t\tSetFg:        \"\\x1b[38;5;%p1%dm\",\n\t\tSetBg:        \"\\x1b[48;5;%p1%dm\",\n\t\tResetFgBg:    \"\\x1b[0m\",\n\t\tPadChar:      \"\\x00\",\n\t\tSetCursor:    \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\x1b[A\",\n\t\tKeyUp:        \"\\x1b[A\",\n\t\tKeyDown:      \"\\x1b[B\",\n\t\tKeyRight:     \"\\x1b[C\",\n\t\tKeyLeft:      \"\\x1b[D\",\n\t\tKeyInsert:    \"\\x1b[247z\",\n\t\tKeyDelete:    \"\\u007f\",\n\t\tKeyBackspace: \"\\b\",\n\t\tKeyHome:      \"\\x1b[214z\",\n\t\tKeyEnd:       \"\\x1b[220z\",\n\t\tKeyPgUp:      \"\\x1b[216z\",\n\t\tKeyPgDn:      \"\\x1b[222z\",\n\t\tKeyF1:        \"\\x1b[224z\",\n\t\tKeyF2:        \"\\x1b[225z\",\n\t\tKeyF3:        \"\\x1b[226z\",\n\t\tKeyF4:        \"\\x1b[227z\",\n\t\tKeyF5:        \"\\x1b[228z\",\n\t\tKeyF6:        \"\\x1b[229z\",\n\t\tKeyF7:        \"\\x1b[230z\",\n\t\tKeyF8:        \"\\x1b[231z\",\n\t\tKeyF9:        \"\\x1b[232z\",\n\t\tKeyF10:       \"\\x1b[233z\",\n\t\tKeyF11:       \"\\x1b[234z\",\n\t\tKeyF12:       \"\\x1b[235z\",\n\t\tAutoMargin:   true,\n\t\tInsertChar:   \"\\x1b[@\",\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/t/tmux/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage tmux\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// tmux terminal multiplexer\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:          \"tmux\",\n\t\tColumns:       80,\n\t\tLines:         24,\n\t\tColors:        8,\n\t\tBell:          \"\\a\",\n\t\tClear:         \"\\x1b[H\\x1b[J\",\n\t\tEnterCA:       \"\\x1b[?1049h\",\n\t\tExitCA:        \"\\x1b[?1049l\",\n\t\tShowCursor:    \"\\x1b[34h\\x1b[?25h\",\n\t\tHideCursor:    \"\\x1b[?25l\",\n\t\tAttrOff:       \"\\x1b[m\\x0f\",\n\t\tUnderline:     \"\\x1b[4m\",\n\t\tBold:          \"\\x1b[1m\",\n\t\tDim:           \"\\x1b[2m\",\n\t\tItalic:        \"\\x1b[3m\",\n\t\tBlink:         \"\\x1b[5m\",\n\t\tReverse:       \"\\x1b[7m\",\n\t\tEnterKeypad:   \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:    \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:         \"\\x1b[3%p1%dm\",\n\t\tSetBg:         \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:       \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:     \"\\x1b[39;49m\",\n\t\tPadChar:       \"\\x00\",\n\t\tAltChars:      \"++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:      \"\\x0e\",\n\t\tExitAcs:       \"\\x0f\",\n\t\tEnableAcs:     \"\\x1b(B\\x1b)0\",\n\t\tStrikeThrough: \"\\x1b[9m\",\n\t\tMouse:         \"\\x1b[M\",\n\t\tSetCursor:     \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:   \"\\b\",\n\t\tCursorUp1:     \"\\x1bM\",\n\t\tKeyUp:         \"\\x1bOA\",\n\t\tKeyDown:       \"\\x1bOB\",\n\t\tKeyRight:      \"\\x1bOC\",\n\t\tKeyLeft:       \"\\x1bOD\",\n\t\tKeyInsert:     \"\\x1b[2~\",\n\t\tKeyDelete:     \"\\x1b[3~\",\n\t\tKeyBackspace:  \"\\x7f\",\n\t\tKeyHome:       \"\\x1b[1~\",\n\t\tKeyEnd:        \"\\x1b[4~\",\n\t\tKeyPgUp:       \"\\x1b[5~\",\n\t\tKeyPgDn:       \"\\x1b[6~\",\n\t\tKeyF1:         \"\\x1bOP\",\n\t\tKeyF2:         \"\\x1bOQ\",\n\t\tKeyF3:         \"\\x1bOR\",\n\t\tKeyF4:         \"\\x1bOS\",\n\t\tKeyF5:         \"\\x1b[15~\",\n\t\tKeyF6:         \"\\x1b[17~\",\n\t\tKeyF7:         \"\\x1b[18~\",\n\t\tKeyF8:         \"\\x1b[19~\",\n\t\tKeyF9:         \"\\x1b[20~\",\n\t\tKeyF10:        \"\\x1b[21~\",\n\t\tKeyF11:        \"\\x1b[23~\",\n\t\tKeyF12:        \"\\x1b[24~\",\n\t\tKeyBacktab:    \"\\x1b[Z\",\n\t\tModifiers:     1,\n\t\tAutoMargin:    true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/terminfo.go",
    "content": "// Copyright 2024 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage terminfo\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar (\n\t// ErrTermNotFound indicates that a suitable terminal entry could\n\t// not be found.  This can result from either not having TERM set,\n\t// or from the TERM failing to support certain minimal functionality,\n\t// in particular absolute cursor addressability (the cup capability)\n\t// is required.  For example, legacy \"adm3\" lacks this capability,\n\t// whereas the slightly newer \"adm3a\" supports it.  This failure\n\t// occurs most often with \"dumb\".\n\tErrTermNotFound = errors.New(\"terminal entry not found\")\n)\n\n// Terminfo represents a terminfo entry.  Note that we use friendly names\n// in Go, but when we write out JSON, we use the same names as terminfo.\n// The name, aliases and smous, rmous fields do not come from terminfo directly.\ntype Terminfo struct {\n\tName         string\n\tAliases      []string\n\tColumns      int    // cols\n\tLines        int    // lines\n\tColors       int    // colors\n\tBell         string // bell\n\tClear        string // clear\n\tEnterCA      string // smcup\n\tExitCA       string // rmcup\n\tShowCursor   string // cnorm\n\tHideCursor   string // civis\n\tAttrOff      string // sgr0\n\tUnderline    string // smul\n\tBold         string // bold\n\tBlink        string // blink\n\tReverse      string // rev\n\tDim          string // dim\n\tItalic       string // sitm\n\tEnterKeypad  string // smkx\n\tExitKeypad   string // rmkx\n\tSetFg        string // setaf\n\tSetBg        string // setab\n\tResetFgBg    string // op\n\tSetCursor    string // cup\n\tCursorBack1  string // cub1\n\tCursorUp1    string // cuu1\n\tPadChar      string // pad\n\tKeyBackspace string // kbs\n\tKeyF1        string // kf1\n\tKeyF2        string // kf2\n\tKeyF3        string // kf3\n\tKeyF4        string // kf4\n\tKeyF5        string // kf5\n\tKeyF6        string // kf6\n\tKeyF7        string // kf7\n\tKeyF8        string // kf8\n\tKeyF9        string // kf9\n\tKeyF10       string // kf10\n\tKeyF11       string // kf11\n\tKeyF12       string // kf12\n\tKeyF13       string // kf13\n\tKeyF14       string // kf14\n\tKeyF15       string // kf15\n\tKeyF16       string // kf16\n\tKeyF17       string // kf17\n\tKeyF18       string // kf18\n\tKeyF19       string // kf19\n\tKeyF20       string // kf20\n\tKeyF21       string // kf21\n\tKeyF22       string // kf22\n\tKeyF23       string // kf23\n\tKeyF24       string // kf24\n\tKeyF25       string // kf25\n\tKeyF26       string // kf26\n\tKeyF27       string // kf27\n\tKeyF28       string // kf28\n\tKeyF29       string // kf29\n\tKeyF30       string // kf30\n\tKeyF31       string // kf31\n\tKeyF32       string // kf32\n\tKeyF33       string // kf33\n\tKeyF34       string // kf34\n\tKeyF35       string // kf35\n\tKeyF36       string // kf36\n\tKeyF37       string // kf37\n\tKeyF38       string // kf38\n\tKeyF39       string // kf39\n\tKeyF40       string // kf40\n\tKeyF41       string // kf41\n\tKeyF42       string // kf42\n\tKeyF43       string // kf43\n\tKeyF44       string // kf44\n\tKeyF45       string // kf45\n\tKeyF46       string // kf46\n\tKeyF47       string // kf47\n\tKeyF48       string // kf48\n\tKeyF49       string // kf49\n\tKeyF50       string // kf50\n\tKeyF51       string // kf51\n\tKeyF52       string // kf52\n\tKeyF53       string // kf53\n\tKeyF54       string // kf54\n\tKeyF55       string // kf55\n\tKeyF56       string // kf56\n\tKeyF57       string // kf57\n\tKeyF58       string // kf58\n\tKeyF59       string // kf59\n\tKeyF60       string // kf60\n\tKeyF61       string // kf61\n\tKeyF62       string // kf62\n\tKeyF63       string // kf63\n\tKeyF64       string // kf64\n\tKeyInsert    string // kich1\n\tKeyDelete    string // kdch1\n\tKeyHome      string // khome\n\tKeyEnd       string // kend\n\tKeyHelp      string // khlp\n\tKeyPgUp      string // kpp\n\tKeyPgDn      string // knp\n\tKeyUp        string // kcuu1\n\tKeyDown      string // kcud1\n\tKeyLeft      string // kcub1\n\tKeyRight     string // kcuf1\n\tKeyBacktab   string // kcbt\n\tKeyExit      string // kext\n\tKeyClear     string // kclr\n\tKeyPrint     string // kprt\n\tKeyCancel    string // kcan\n\tMouse        string // kmous\n\tAltChars     string // acsc\n\tEnterAcs     string // smacs\n\tExitAcs      string // rmacs\n\tEnableAcs    string // enacs\n\tKeyShfRight  string // kRIT\n\tKeyShfLeft   string // kLFT\n\tKeyShfHome   string // kHOM\n\tKeyShfEnd    string // kEND\n\tKeyShfInsert string // kIC\n\tKeyShfDelete string // kDC\n\n\t// These are non-standard extensions to terminfo.  This includes\n\t// true color support, and some additional keys.  Its kind of bizarre\n\t// that shifted variants of left and right exist, but not up and down.\n\t// Terminal support for these are going to vary amongst XTerm\n\t// emulations, so don't depend too much on them in your application.\n\n\tStrikeThrough           string // smxx\n\tSetFgBg                 string // setfgbg\n\tSetFgBgRGB              string // setfgbgrgb\n\tSetFgRGB                string // setfrgb\n\tSetBgRGB                string // setbrgb\n\tKeyShfUp                string // shift-up\n\tKeyShfDown              string // shift-down\n\tKeyShfPgUp              string // shift-kpp\n\tKeyShfPgDn              string // shift-knp\n\tKeyCtrlUp               string // ctrl-up\n\tKeyCtrlDown             string // ctrl-left\n\tKeyCtrlRight            string // ctrl-right\n\tKeyCtrlLeft             string // ctrl-left\n\tKeyMetaUp               string // meta-up\n\tKeyMetaDown             string // meta-left\n\tKeyMetaRight            string // meta-right\n\tKeyMetaLeft             string // meta-left\n\tKeyAltUp                string // alt-up\n\tKeyAltDown              string // alt-left\n\tKeyAltRight             string // alt-right\n\tKeyAltLeft              string // alt-left\n\tKeyCtrlHome             string\n\tKeyCtrlEnd              string\n\tKeyMetaHome             string\n\tKeyMetaEnd              string\n\tKeyAltHome              string\n\tKeyAltEnd               string\n\tKeyAltShfUp             string\n\tKeyAltShfDown           string\n\tKeyAltShfLeft           string\n\tKeyAltShfRight          string\n\tKeyMetaShfUp            string\n\tKeyMetaShfDown          string\n\tKeyMetaShfLeft          string\n\tKeyMetaShfRight         string\n\tKeyCtrlShfUp            string\n\tKeyCtrlShfDown          string\n\tKeyCtrlShfLeft          string\n\tKeyCtrlShfRight         string\n\tKeyCtrlShfHome          string\n\tKeyCtrlShfEnd           string\n\tKeyAltShfHome           string\n\tKeyAltShfEnd            string\n\tKeyMetaShfHome          string\n\tKeyMetaShfEnd           string\n\tEnablePaste             string // bracketed paste mode\n\tDisablePaste            string\n\tPasteStart              string\n\tPasteEnd                string\n\tModifiers               int\n\tInsertChar              string // string to insert a character (ich1)\n\tAutoMargin              bool   // true if writing to last cell in line advances\n\tTrueColor               bool   // true if the terminal supports direct color\n\tCursorDefault           string\n\tCursorBlinkingBlock     string\n\tCursorSteadyBlock       string\n\tCursorBlinkingUnderline string\n\tCursorSteadyUnderline   string\n\tCursorBlinkingBar       string\n\tCursorSteadyBar         string\n\tEnterUrl                string\n\tExitUrl                 string\n\tSetWindowSize           string\n\tEnableFocusReporting    string\n\tDisableFocusReporting   string\n\tDisableAutoMargin       string // smam\n\tEnableAutoMargin        string // rmam\n}\n\nconst (\n\tModifiersNone  = 0\n\tModifiersXTerm = 1\n)\n\ntype stack []interface{}\n\nfunc (st stack) Push(v interface{}) stack {\n\tif b, ok := v.(bool); ok {\n\t\tif b {\n\t\t\treturn append(st, 1)\n\t\t} else {\n\t\t\treturn append(st, 0)\n\t\t}\n\t}\n\treturn append(st, v)\n}\n\nfunc (st stack) PopString() (string, stack) {\n\tif len(st) > 0 {\n\t\te := st[len(st)-1]\n\t\tvar s string\n\t\tswitch v := e.(type) {\n\t\tcase int:\n\t\t\ts = strconv.Itoa(v)\n\t\tcase string:\n\t\t\ts = v\n\t\t}\n\t\treturn s, st[:len(st)-1]\n\t}\n\treturn \"\", st\n\n}\nfunc (st stack) PopInt() (int, stack) {\n\tif len(st) > 0 {\n\t\te := st[len(st)-1]\n\t\tvar i int\n\t\tswitch v := e.(type) {\n\t\tcase int:\n\t\t\ti = v\n\t\tcase string:\n\t\t\ti, _ = strconv.Atoi(v)\n\t\t}\n\t\treturn i, st[:len(st)-1]\n\t}\n\treturn 0, st\n}\n\n// static vars\nvar svars [26]string\n\ntype paramsBuffer struct {\n\tout bytes.Buffer\n\tbuf bytes.Buffer\n}\n\n// Start initializes the params buffer with the initial string data.\n// It also locks the paramsBuffer.  The caller must call End() when\n// finished.\nfunc (pb *paramsBuffer) Start(s string) {\n\tpb.out.Reset()\n\tpb.buf.Reset()\n\tpb.buf.WriteString(s)\n}\n\n// End returns the final output from TParam, but it also releases the lock.\nfunc (pb *paramsBuffer) End() string {\n\ts := pb.out.String()\n\treturn s\n}\n\n// NextCh returns the next input character to the expander.\nfunc (pb *paramsBuffer) NextCh() (byte, error) {\n\treturn pb.buf.ReadByte()\n}\n\n// PutCh \"emits\" (rather schedules for output) a single byte character.\nfunc (pb *paramsBuffer) PutCh(ch byte) {\n\tpb.out.WriteByte(ch)\n}\n\n// PutString schedules a string for output.\nfunc (pb *paramsBuffer) PutString(s string) {\n\tpb.out.WriteString(s)\n}\n\n// TParm takes a terminfo parameterized string, such as setaf or cup, and\n// evaluates the string, and returns the result with the parameter\n// applied.\nfunc (t *Terminfo) TParm(s string, p ...interface{}) string {\n\tvar stk stack\n\tvar a string\n\tvar ai, bi int\n\tvar dvars [26]string\n\tvar params [9]interface{}\n\tvar pb = &paramsBuffer{}\n\n\tpb.Start(s)\n\n\t// make sure we always have 9 parameters -- makes it easier\n\t// later to skip checks\n\tfor i := 0; i < len(params) && i < len(p); i++ {\n\t\tparams[i] = p[i]\n\t}\n\n\tconst (\n\t\temit = iota\n\t\ttoEnd\n\t\ttoElse\n\t)\n\n\tskip := emit\n\n\tfor {\n\n\t\tch, err := pb.NextCh()\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\n\t\tif ch != '%' {\n\t\t\tif skip == emit {\n\t\t\t\tpb.PutCh(ch)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tch, err = pb.NextCh()\n\t\tif err != nil {\n\t\t\t// XXX Error\n\t\t\tbreak\n\t\t}\n\t\tif skip == toEnd {\n\t\t\tif ch == ';' {\n\t\t\t\tskip = emit\n\t\t\t}\n\t\t\tcontinue\n\t\t} else if skip == toElse {\n\t\t\tif ch == 'e' || ch == ';' {\n\t\t\t\tskip = emit\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch ch {\n\t\tcase '%': // quoted %\n\t\t\tpb.PutCh(ch)\n\n\t\tcase 'i': // increment both parameters (ANSI cup support)\n\t\t\tif i, ok := params[0].(int); ok {\n\t\t\t\tparams[0] = i + 1\n\t\t\t}\n\t\t\tif i, ok := params[1].(int); ok {\n\t\t\t\tparams[1] = i + 1\n\t\t\t}\n\n\t\tcase 's':\n\t\t\t// NB: 's', 'c', and 'd' below are special cased for\n\t\t\t// efficiency.  They could be handled by the richer\n\t\t\t// format support below, less efficiently.\n\t\t\ta, stk = stk.PopString()\n\t\t\tpb.PutString(a)\n\n\t\tcase 'c':\n\t\t\t// Integer as special character.\n\t\t\tai, stk = stk.PopInt()\n\t\t\tpb.PutCh(byte(ai))\n\n\t\tcase 'd':\n\t\t\tai, stk = stk.PopInt()\n\t\t\tpb.PutString(strconv.Itoa(ai))\n\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'x', 'X', 'o', ':':\n\t\t\t// This is pretty suboptimal, but this is rarely used.\n\t\t\t// None of the mainstream terminals use any of this,\n\t\t\t// and it would surprise me if this code is ever\n\t\t\t// executed outside test cases.\n\t\t\tf := \"%\"\n\t\t\tif ch == ':' {\n\t\t\t\tch, _ = pb.NextCh()\n\t\t\t}\n\t\t\tf += string(ch)\n\t\t\tfor ch == '+' || ch == '-' || ch == '#' || ch == ' ' {\n\t\t\t\tch, _ = pb.NextCh()\n\t\t\t\tf += string(ch)\n\t\t\t}\n\t\t\tfor (ch >= '0' && ch <= '9') || ch == '.' {\n\t\t\t\tch, _ = pb.NextCh()\n\t\t\t\tf += string(ch)\n\t\t\t}\n\t\t\tswitch ch {\n\t\t\tcase 'd', 'x', 'X', 'o':\n\t\t\t\tai, stk = stk.PopInt()\n\t\t\t\tpb.PutString(fmt.Sprintf(f, ai))\n\t\t\tcase 's':\n\t\t\t\ta, stk = stk.PopString()\n\t\t\t\tpb.PutString(fmt.Sprintf(f, a))\n\t\t\tcase 'c':\n\t\t\t\tai, stk = stk.PopInt()\n\t\t\t\tpb.PutString(fmt.Sprintf(f, ai))\n\t\t\t}\n\n\t\tcase 'p': // push parameter\n\t\t\tch, _ = pb.NextCh()\n\t\t\tai = int(ch - '1')\n\t\t\tif ai >= 0 && ai < len(params) {\n\t\t\t\tstk = stk.Push(params[ai])\n\t\t\t} else {\n\t\t\t\tstk = stk.Push(0)\n\t\t\t}\n\n\t\tcase 'P': // pop & store variable\n\t\t\tch, _ = pb.NextCh()\n\t\t\tif ch >= 'A' && ch <= 'Z' {\n\t\t\t\tsvars[int(ch-'A')], stk = stk.PopString()\n\t\t\t} else if ch >= 'a' && ch <= 'z' {\n\t\t\t\tdvars[int(ch-'a')], stk = stk.PopString()\n\t\t\t}\n\n\t\tcase 'g': // recall & push variable\n\t\t\tch, _ = pb.NextCh()\n\t\t\tif ch >= 'A' && ch <= 'Z' {\n\t\t\t\tstk = stk.Push(svars[int(ch-'A')])\n\t\t\t} else if ch >= 'a' && ch <= 'z' {\n\t\t\t\tstk = stk.Push(dvars[int(ch-'a')])\n\t\t\t}\n\n\t\tcase '\\'': // push(char) - the integer value of it\n\t\t\tch, _ = pb.NextCh()\n\t\t\t_, _ = pb.NextCh() // must be ' but we don't check\n\t\t\tstk = stk.Push(int(ch))\n\n\t\tcase '{': // push(int)\n\t\t\tai = 0\n\t\t\tch, _ = pb.NextCh()\n\t\t\tfor ch >= '0' && ch <= '9' {\n\t\t\t\tai *= 10\n\t\t\t\tai += int(ch - '0')\n\t\t\t\tch, _ = pb.NextCh()\n\t\t\t}\n\t\t\t// ch must be '}' but no verification\n\t\t\tstk = stk.Push(ai)\n\n\t\tcase 'l': // push(strlen(pop))\n\t\t\ta, stk = stk.PopString()\n\t\t\tstk = stk.Push(len(a))\n\n\t\tcase '+':\n\t\t\tbi, stk = stk.PopInt()\n\t\t\tai, stk = stk.PopInt()\n\t\t\tstk = stk.Push(ai + bi)\n\n\t\tcase '-':\n\t\t\tbi, stk = stk.PopInt()\n\t\t\tai, stk = stk.PopInt()\n\t\t\tstk = stk.Push(ai - bi)\n\n\t\tcase '*':\n\t\t\tbi, stk = stk.PopInt()\n\t\t\tai, stk = stk.PopInt()\n\t\t\tstk = stk.Push(ai * bi)\n\n\t\tcase '/':\n\t\t\tbi, stk = stk.PopInt()\n\t\t\tai, stk = stk.PopInt()\n\t\t\tif bi != 0 {\n\t\t\t\tstk = stk.Push(ai / bi)\n\t\t\t} else {\n\t\t\t\tstk = stk.Push(0)\n\t\t\t}\n\n\t\tcase 'm': // push(pop mod pop)\n\t\t\tbi, stk = stk.PopInt()\n\t\t\tai, stk = stk.PopInt()\n\t\t\tif bi != 0 {\n\t\t\t\tstk = stk.Push(ai % bi)\n\t\t\t} else {\n\t\t\t\tstk = stk.Push(0)\n\t\t\t}\n\n\t\tcase '&': // AND\n\t\t\tbi, stk = stk.PopInt()\n\t\t\tai, stk = stk.PopInt()\n\t\t\tstk = stk.Push(ai & bi)\n\n\t\tcase '|': // OR\n\t\t\tbi, stk = stk.PopInt()\n\t\t\tai, stk = stk.PopInt()\n\t\t\tstk = stk.Push(ai | bi)\n\n\t\tcase '^': // XOR\n\t\t\tbi, stk = stk.PopInt()\n\t\t\tai, stk = stk.PopInt()\n\t\t\tstk = stk.Push(ai ^ bi)\n\n\t\tcase '~': // bit complement\n\t\t\tai, stk = stk.PopInt()\n\t\t\tstk = stk.Push(ai ^ -1)\n\n\t\tcase '!': // logical NOT\n\t\t\tai, stk = stk.PopInt()\n\t\t\tstk = stk.Push(ai == 0)\n\n\t\tcase '=': // numeric compare\n\t\t\tbi, stk = stk.PopInt()\n\t\t\tai, stk = stk.PopInt()\n\t\t\tstk = stk.Push(ai == bi)\n\n\t\tcase '>': // greater than, numeric\n\t\t\tbi, stk = stk.PopInt()\n\t\t\tai, stk = stk.PopInt()\n\t\t\tstk = stk.Push(ai > bi)\n\n\t\tcase '<': // less than, numeric\n\t\t\tbi, stk = stk.PopInt()\n\t\t\tai, stk = stk.PopInt()\n\t\t\tstk = stk.Push(ai < bi)\n\n\t\tcase '?': // start conditional\n\n\t\tcase ';':\n\t\t\tskip = emit\n\n\t\tcase 't':\n\t\t\tai, stk = stk.PopInt()\n\t\t\tif ai == 0 {\n\t\t\t\tskip = toElse\n\t\t\t}\n\n\t\tcase 'e':\n\t\t\tskip = toEnd\n\n\t\tdefault:\n\t\t\tpb.PutString(\"%\" + string(ch))\n\t\t}\n\t}\n\n\treturn pb.End()\n}\n\n// TPuts emits the string to the writer, but expands inline padding\n// indications (of the form $<[delay]> where [delay] is msec) to\n// a suitable time (unless the terminfo string indicates this isn't needed\n// by specifying npc - no padding).  All Terminfo based strings should be\n// emitted using this function.\nfunc (t *Terminfo) TPuts(w io.Writer, s string) {\n\tfor {\n\t\tbeg := strings.Index(s, \"$<\")\n\t\tif beg < 0 {\n\t\t\t// Most strings don't need padding, which is good news!\n\t\t\t_, _ = io.WriteString(w, s)\n\t\t\treturn\n\t\t}\n\t\t_, _ = io.WriteString(w, s[:beg])\n\t\ts = s[beg+2:]\n\t\tend := strings.Index(s, \">\")\n\t\tif end < 0 {\n\t\t\t// unterminated.. just emit bytes unadulterated\n\t\t\t_, _ = io.WriteString(w, \"$<\"+s)\n\t\t\treturn\n\t\t}\n\t\tval := s[:end]\n\t\ts = s[end+1:]\n\t\tpadus := 0\n\t\tunit := time.Millisecond\n\t\tdot := false\n\tloop:\n\t\tfor i := range val {\n\t\t\tswitch val[i] {\n\t\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\t\t\tpadus *= 10\n\t\t\t\tpadus += int(val[i] - '0')\n\t\t\t\tif dot {\n\t\t\t\t\tunit /= 10\n\t\t\t\t}\n\t\t\tcase '.':\n\t\t\t\tif !dot {\n\t\t\t\t\tdot = true\n\t\t\t\t} else {\n\t\t\t\t\tbreak loop\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak loop\n\t\t\t}\n\t\t}\n\n\t\t// Curses historically uses padding to achieve \"fine grained\"\n\t\t// delays. We have much better clocks these days, and so we\n\t\t// do not rely on padding but simply sleep a bit.\n\t\tif len(t.PadChar) > 0 {\n\t\t\ttime.Sleep(unit * time.Duration(padus))\n\t\t}\n\t}\n}\n\n// TGoto returns a string suitable for addressing the cursor at the given\n// row and column.  The origin 0, 0 is in the upper left corner of the screen.\nfunc (t *Terminfo) TGoto(col, row int) string {\n\treturn t.TParm(t.SetCursor, row, col)\n}\n\n// TColor returns a string corresponding to the given foreground and background\n// colors.  Either fg or bg can be set to -1 to elide.\nfunc (t *Terminfo) TColor(fi, bi int) string {\n\trv := \"\"\n\t// As a special case, we map bright colors to lower versions if the\n\t// color table only holds 8.  For the remaining 240 colors, the user\n\t// is out of luck.  Someday we could create a mapping table, but its\n\t// not worth it.\n\tif t.Colors == 8 {\n\t\tif fi > 7 && fi < 16 {\n\t\t\tfi -= 8\n\t\t}\n\t\tif bi > 7 && bi < 16 {\n\t\t\tbi -= 8\n\t\t}\n\t}\n\tif t.Colors > fi && fi >= 0 {\n\t\trv += t.TParm(t.SetFg, fi)\n\t}\n\tif t.Colors > bi && bi >= 0 {\n\t\trv += t.TParm(t.SetBg, bi)\n\t}\n\treturn rv\n}\n\nvar (\n\tdblock    sync.Mutex\n\tterminfos = make(map[string]*Terminfo)\n)\n\n// AddTerminfo can be called to register a new Terminfo entry.\nfunc AddTerminfo(t *Terminfo) {\n\tdblock.Lock()\n\tterminfos[t.Name] = t\n\tfor _, x := range t.Aliases {\n\t\tterminfos[x] = t\n\t}\n\tdblock.Unlock()\n}\n\n// LookupTerminfo attempts to find a definition for the named $TERM.\nfunc LookupTerminfo(name string) (*Terminfo, error) {\n\tif name == \"\" {\n\t\t// else on windows: index out of bounds\n\t\t// on the name[0] reference below\n\t\treturn nil, ErrTermNotFound\n\t}\n\n\taddtruecolor := false\n\tadd256color := false\n\tswitch os.Getenv(\"COLORTERM\") {\n\tcase \"truecolor\", \"24bit\", \"24-bit\":\n\t\taddtruecolor = true\n\t}\n\tdblock.Lock()\n\tt := terminfos[name]\n\tdblock.Unlock()\n\n\t// If the name ends in -truecolor, then fabricate an entry\n\t// from the corresponding -256color, -color, or bare terminal.\n\tif t != nil && t.TrueColor {\n\t\taddtruecolor = true\n\t} else if t == nil && strings.HasSuffix(name, \"-truecolor\") {\n\n\t\tsuffixes := []string{\n\t\t\t\"-256color\",\n\t\t\t\"-88color\",\n\t\t\t\"-color\",\n\t\t\t\"\",\n\t\t}\n\t\tbase := name[:len(name)-len(\"-truecolor\")]\n\t\tfor _, s := range suffixes {\n\t\t\tif t, _ = LookupTerminfo(base + s); t != nil {\n\t\t\t\taddtruecolor = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t// If the name ends in -256color, maybe fabricate using the xterm 256 color sequences\n\tif t == nil && strings.HasSuffix(name, \"-256color\") {\n\t\tsuffixes := []string{\n\t\t\t\"-88color\",\n\t\t\t\"-color\",\n\t\t}\n\t\tbase := name[:len(name)-len(\"-256color\")]\n\t\tfor _, s := range suffixes {\n\t\t\tif t, _ = LookupTerminfo(base + s); t != nil {\n\t\t\t\tadd256color = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\tif t == nil {\n\t\treturn nil, ErrTermNotFound\n\t}\n\n\tswitch os.Getenv(\"TCELL_TRUECOLOR\") {\n\tcase \"\":\n\tcase \"disable\":\n\t\taddtruecolor = false\n\tdefault:\n\t\taddtruecolor = true\n\t}\n\n\t// If the user has requested 24-bit color with $COLORTERM, then\n\t// amend the value (unless already present).  This means we don't\n\t// need to have a value present.\n\tif addtruecolor &&\n\t\tt.SetFgBgRGB == \"\" &&\n\t\tt.SetFgRGB == \"\" &&\n\t\tt.SetBgRGB == \"\" {\n\n\t\t// Supply vanilla ISO 8613-6:1994 24-bit color sequences.\n\t\tt.SetFgRGB = \"\\x1b[38;2;%p1%d;%p2%d;%p3%dm\"\n\t\tt.SetBgRGB = \"\\x1b[48;2;%p1%d;%p2%d;%p3%dm\"\n\t\tt.SetFgBgRGB = \"\\x1b[38;2;%p1%d;%p2%d;%p3%d;\" +\n\t\t\t\"48;2;%p4%d;%p5%d;%p6%dm\"\n\t}\n\n\tif add256color {\n\t\tt.Colors = 256\n\t\tt.SetFg = \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\"\n\t\tt.SetBg = \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\"\n\t\tt.SetFgBg = \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\"\n\t\tt.ResetFgBg = \"\\x1b[39;49m\"\n\t}\n\treturn t, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/v/vt100/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage vt100\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// DEC VT100 (w/advanced video)\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"vt100\",\n\t\tAliases:           []string{\"vt100-am\"},\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[J$<50>\",\n\t\tAttrOff:           \"\\x1b[m\\x0f$<2>\",\n\t\tUnderline:         \"\\x1b[4m$<2>\",\n\t\tBold:              \"\\x1b[1m$<2>\",\n\t\tBlink:             \"\\x1b[5m$<2>\",\n\t\tReverse:           \"\\x1b[7m$<2>\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x0e\",\n\t\tExitAcs:           \"\\x0f\",\n\t\tEnableAcs:         \"\\x1b(B\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH$<5>\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A$<2>\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyBackspace:      \"\\b\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1bOt\",\n\t\tKeyF6:             \"\\x1bOu\",\n\t\tKeyF7:             \"\\x1bOv\",\n\t\tKeyF8:             \"\\x1bOl\",\n\t\tKeyF9:             \"\\x1bOw\",\n\t\tKeyF10:            \"\\x1bOx\",\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/v/vt102/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage vt102\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// DEC VT102\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"vt102\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[J$<50>\",\n\t\tAttrOff:           \"\\x1b[m\\x0f$<2>\",\n\t\tUnderline:         \"\\x1b[4m$<2>\",\n\t\tBold:              \"\\x1b[1m$<2>\",\n\t\tBlink:             \"\\x1b[5m$<2>\",\n\t\tReverse:           \"\\x1b[7m$<2>\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x0e\",\n\t\tExitAcs:           \"\\x0f\",\n\t\tEnableAcs:         \"\\x1b(B\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH$<5>\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A$<2>\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyBackspace:      \"\\b\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1bOt\",\n\t\tKeyF6:             \"\\x1bOu\",\n\t\tKeyF7:             \"\\x1bOv\",\n\t\tKeyF8:             \"\\x1bOl\",\n\t\tKeyF9:             \"\\x1bOw\",\n\t\tKeyF10:            \"\\x1bOx\",\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/v/vt220/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage vt220\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// DEC VT220\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"vt220\",\n\t\tAliases:           []string{\"vt200\"},\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[J\",\n\t\tShowCursor:        \"\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[m\\x1b(B\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x1b(0$<2>\",\n\t\tExitAcs:           \"\\x1b(B$<4>\",\n\t\tEnableAcs:         \"\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1b[A\",\n\t\tKeyDown:           \"\\x1b[B\",\n\t\tKeyRight:          \"\\x1b[C\",\n\t\tKeyLeft:           \"\\x1b[D\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\b\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyF13:            \"\\x1b[25~\",\n\t\tKeyF14:            \"\\x1b[26~\",\n\t\tKeyF17:            \"\\x1b[31~\",\n\t\tKeyF18:            \"\\x1b[32~\",\n\t\tKeyF19:            \"\\x1b[33~\",\n\t\tKeyF20:            \"\\x1b[34~\",\n\t\tKeyHelp:           \"\\x1b[28~\",\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/v/vt320/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage vt320\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// DEC VT320 7 bit terminal\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"vt320\",\n\t\tAliases:           []string{\"vt300\"},\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tShowCursor:        \"\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[m\\x1b(B\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x1b(0\",\n\t\tExitAcs:           \"\\x1b(B\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1b[1~\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyF13:            \"\\x1b[25~\",\n\t\tKeyF14:            \"\\x1b[26~\",\n\t\tKeyF15:            \"\\x1b[28~\",\n\t\tKeyF16:            \"\\x1b[29~\",\n\t\tKeyF17:            \"\\x1b[31~\",\n\t\tKeyF18:            \"\\x1b[32~\",\n\t\tKeyF19:            \"\\x1b[33~\",\n\t\tKeyF20:            \"\\x1b[34~\",\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/v/vt400/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage vt400\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// DEC VT400 24x80 column autowrap\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"vt400\",\n\t\tAliases:           []string{\"vt400-24\", \"dec-vt400\"},\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tClear:             \"\\x1b[H\\x1b[J$<10/>\",\n\t\tShowCursor:        \"\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[m\\x1b(B\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x1b(0\",\n\t\tExitAcs:           \"\\x1b(B\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyBackspace:      \"\\b\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tAutoMargin:        true,\n\t\tInsertChar:        \"\\x1b[@\",\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/v/vt420/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage vt420\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// DEC VT420\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"vt420\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J$<50>\",\n\t\tShowCursor:        \"\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[m\\x1b(B$<2>\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m$<2>\",\n\t\tBlink:             \"\\x1b[5m$<2>\",\n\t\tReverse:           \"\\x1b[7m$<2>\",\n\t\tEnterKeypad:       \"\\x1b=\",\n\t\tExitKeypad:        \"\\x1b>\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x1b(0$<2>\",\n\t\tExitAcs:           \"\\x1b(B$<4>\",\n\t\tEnableAcs:         \"\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH$<10>\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1b[A\",\n\t\tKeyDown:           \"\\x1b[B\",\n\t\tKeyRight:          \"\\x1b[C\",\n\t\tKeyLeft:           \"\\x1b[D\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\b\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[17~\",\n\t\tKeyF6:             \"\\x1b[18~\",\n\t\tKeyF7:             \"\\x1b[19~\",\n\t\tKeyF8:             \"\\x1b[20~\",\n\t\tKeyF9:             \"\\x1b[21~\",\n\t\tKeyF10:            \"\\x1b[29~\",\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/v/vt52/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage vt52\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// DEC VT52\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"vt52\",\n\t\tColumns:      80,\n\t\tLines:        24,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1bH\\x1bJ\",\n\t\tEnterKeypad:  \"\\x1b=\",\n\t\tExitKeypad:   \"\\x1b>\",\n\t\tPadChar:      \"\\x00\",\n\t\tAltChars:     \"+h.k0affggolpnqprrss\",\n\t\tEnterAcs:     \"\\x1bF\",\n\t\tExitAcs:      \"\\x1bG\",\n\t\tSetCursor:    \"\\x1bY%p1%' '%+%c%p2%' '%+%c\",\n\t\tCursorBack1:  \"\\x1bD\",\n\t\tCursorUp1:    \"\\x1bA\",\n\t\tKeyUp:        \"\\x1bA\",\n\t\tKeyDown:      \"\\x1bB\",\n\t\tKeyRight:     \"\\x1bC\",\n\t\tKeyLeft:      \"\\x1bD\",\n\t\tKeyBackspace: \"\\b\",\n\t\tKeyF1:        \"\\x1bP\",\n\t\tKeyF2:        \"\\x1bQ\",\n\t\tKeyF3:        \"\\x1bR\",\n\t\tKeyF5:        \"\\x1b?t\",\n\t\tKeyF6:        \"\\x1b?u\",\n\t\tKeyF7:        \"\\x1b?v\",\n\t\tKeyF8:        \"\\x1b?w\",\n\t\tKeyF9:        \"\\x1b?x\",\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/w/wy50/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage wy50\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// Wyse 50\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:         \"wy50\",\n\t\tAliases:      []string{\"wyse50\"},\n\t\tColumns:      80,\n\t\tLines:        24,\n\t\tBell:         \"\\a\",\n\t\tClear:        \"\\x1b+$<20>\",\n\t\tShowCursor:   \"\\x1b`1\",\n\t\tHideCursor:   \"\\x1b`0\",\n\t\tAttrOff:      \"\\x1b(\\x1bH\\x03\",\n\t\tDim:          \"\\x1b`7\\x1b)\",\n\t\tReverse:      \"\\x1b`6\\x1b)\",\n\t\tPadChar:      \"\\x00\",\n\t\tAltChars:     \"a;j5k3l2m1n8q:t4u9v=w0x6\",\n\t\tEnterAcs:     \"\\x1bH\\x02\",\n\t\tExitAcs:      \"\\x1bH\\x03\",\n\t\tSetCursor:    \"\\x1b=%p1%' '%+%c%p2%' '%+%c\",\n\t\tCursorBack1:  \"\\b\",\n\t\tCursorUp1:    \"\\v\",\n\t\tKeyUp:        \"\\v\",\n\t\tKeyDown:      \"\\n\",\n\t\tKeyRight:     \"\\f\",\n\t\tKeyLeft:      \"\\b\",\n\t\tKeyInsert:    \"\\x1bQ\",\n\t\tKeyDelete:    \"\\x1bW\",\n\t\tKeyBackspace: \"\\b\",\n\t\tKeyHome:      \"\\x1e\",\n\t\tKeyPgUp:      \"\\x1bJ\",\n\t\tKeyPgDn:      \"\\x1bK\",\n\t\tKeyF1:        \"\\x01@\\r\",\n\t\tKeyF2:        \"\\x01A\\r\",\n\t\tKeyF3:        \"\\x01B\\r\",\n\t\tKeyF4:        \"\\x01C\\r\",\n\t\tKeyF5:        \"\\x01D\\r\",\n\t\tKeyF6:        \"\\x01E\\r\",\n\t\tKeyF7:        \"\\x01F\\r\",\n\t\tKeyF8:        \"\\x01G\\r\",\n\t\tKeyF9:        \"\\x01H\\r\",\n\t\tKeyF10:       \"\\x01I\\r\",\n\t\tKeyF11:       \"\\x01J\\r\",\n\t\tKeyF12:       \"\\x01K\\r\",\n\t\tKeyF13:       \"\\x01L\\r\",\n\t\tKeyF14:       \"\\x01M\\r\",\n\t\tKeyF15:       \"\\x01N\\r\",\n\t\tKeyF16:       \"\\x01O\\r\",\n\t\tKeyPrint:     \"\\x1bP\",\n\t\tKeyBacktab:   \"\\x1bI\",\n\t\tKeyShfHome:   \"\\x1b{\",\n\t\tAutoMargin:   true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/w/wy60/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage wy60\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// Wyse 60\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"wy60\",\n\t\tAliases:           []string{\"wyse60\"},\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b+$<100>\",\n\t\tEnterCA:           \"\\x1bw0\",\n\t\tExitCA:            \"\\x1bw1\",\n\t\tShowCursor:        \"\\x1b`1\",\n\t\tHideCursor:        \"\\x1b`0\",\n\t\tAttrOff:           \"\\x1b(\\x1bH\\x03\\x1bG0\\x1bcD\",\n\t\tUnderline:         \"\\x1bG8\",\n\t\tDim:               \"\\x1bGp\",\n\t\tBlink:             \"\\x1bG2\",\n\t\tReverse:           \"\\x1bG4\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"+/,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~\",\n\t\tEnterAcs:          \"\\x1bcE\",\n\t\tExitAcs:           \"\\x1bcD\",\n\t\tEnableAutoMargin:  \"\\x1bd/\",\n\t\tDisableAutoMargin: \"\\x1bd.\",\n\t\tSetCursor:         \"\\x1b=%p1%' '%+%c%p2%' '%+%c\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\v\",\n\t\tKeyUp:             \"\\v\",\n\t\tKeyDown:           \"\\n\",\n\t\tKeyRight:          \"\\f\",\n\t\tKeyLeft:           \"\\b\",\n\t\tKeyInsert:         \"\\x1bQ\",\n\t\tKeyDelete:         \"\\x1bW\",\n\t\tKeyBackspace:      \"\\b\",\n\t\tKeyHome:           \"\\x1e\",\n\t\tKeyPgUp:           \"\\x1bJ\",\n\t\tKeyPgDn:           \"\\x1bK\",\n\t\tKeyF1:             \"\\x01@\\r\",\n\t\tKeyF2:             \"\\x01A\\r\",\n\t\tKeyF3:             \"\\x01B\\r\",\n\t\tKeyF4:             \"\\x01C\\r\",\n\t\tKeyF5:             \"\\x01D\\r\",\n\t\tKeyF6:             \"\\x01E\\r\",\n\t\tKeyF7:             \"\\x01F\\r\",\n\t\tKeyF8:             \"\\x01G\\r\",\n\t\tKeyF9:             \"\\x01H\\r\",\n\t\tKeyF10:            \"\\x01I\\r\",\n\t\tKeyF11:            \"\\x01J\\r\",\n\t\tKeyF12:            \"\\x01K\\r\",\n\t\tKeyF13:            \"\\x01L\\r\",\n\t\tKeyF14:            \"\\x01M\\r\",\n\t\tKeyF15:            \"\\x01N\\r\",\n\t\tKeyF16:            \"\\x01O\\r\",\n\t\tKeyPrint:          \"\\x1bP\",\n\t\tKeyBacktab:        \"\\x1bI\",\n\t\tKeyShfHome:        \"\\x1b{\",\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/w/wy99_ansi/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage wy99_ansi\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// Wyse WY-99GT in ANSI mode (int'l PC keyboard)\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"wy99-ansi\",\n\t\tColumns:           80,\n\t\tLines:             25,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[J$<200>\",\n\t\tShowCursor:        \"\\x1b[34h\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[m\\x0f\\x1b[\\\"q\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\",\n\t\tExitKeypad:        \"\\x1b[?1l\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~\",\n\t\tEnterAcs:          \"\\x0e\",\n\t\tExitAcs:           \"\\x0f\",\n\t\tEnableAcs:         \"\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b$<1>\",\n\t\tCursorUp1:         \"\\x1bM\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyBackspace:      \"\\b\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[M\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyF17:            \"\\x1b[K\",\n\t\tKeyF18:            \"\\x1b[31~\",\n\t\tKeyF19:            \"\\x1b[32~\",\n\t\tKeyF20:            \"\\x1b[33~\",\n\t\tKeyF21:            \"\\x1b[34~\",\n\t\tKeyF22:            \"\\x1b[35~\",\n\t\tKeyF23:            \"\\x1b[1~\",\n\t\tKeyF24:            \"\\x1b[2~\",\n\t\tKeyBacktab:        \"\\x1b[z\",\n\t\tAutoMargin:        true,\n\t})\n\n\t// Wyse WY-99GT in ANSI mode (US PC keyboard)\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"wy99a-ansi\",\n\t\tColumns:           80,\n\t\tLines:             25,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[J$<200>\",\n\t\tShowCursor:        \"\\x1b[34h\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[m\\x0f\\x1b[\\\"q\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\",\n\t\tExitKeypad:        \"\\x1b[?1l\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~\",\n\t\tEnterAcs:          \"\\x0e\",\n\t\tExitAcs:           \"\\x0f\",\n\t\tEnableAcs:         \"\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b$<1>\",\n\t\tCursorUp1:         \"\\x1bM\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyBackspace:      \"\\b\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[M\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyF17:            \"\\x1b[K\",\n\t\tKeyF18:            \"\\x1b[31~\",\n\t\tKeyF19:            \"\\x1b[32~\",\n\t\tKeyF20:            \"\\x1b[33~\",\n\t\tKeyF21:            \"\\x1b[34~\",\n\t\tKeyF22:            \"\\x1b[35~\",\n\t\tKeyF23:            \"\\x1b[1~\",\n\t\tKeyF24:            \"\\x1b[2~\",\n\t\tKeyBacktab:        \"\\x1b[z\",\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/x/xfce/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage xfce\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// Xfce Terminal\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"xfce\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            8,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b7\\x1b[?47h\",\n\t\tExitCA:            \"\\x1b[2J\\x1b[?47l\\x1b8\",\n\t\tShowCursor:        \"\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b[0m\\x0f\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:             \"\\x1b[3%p1%dm\",\n\t\tSetBg:             \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:           \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tPadChar:           \"\\x00\",\n\t\tAltChars:          \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x0e\",\n\t\tExitAcs:           \"\\x0f\",\n\t\tEnableAcs:         \"\\x1b)0\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tMouse:             \"\\x1b[M\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1bOH\",\n\t\tKeyEnd:            \"\\x1bOF\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tModifiers:         1,\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/x/xterm/direct.go",
    "content": "// Copyright 2021 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// This terminal definition is derived from the xterm-256color definition, but\n// makes use of the RGB property these terminals have to support direct color.\n// The terminfo entry for this uses a new format for the color handling introduced\n// by ncurses 6.1 (and used by nobody else), so this override ensures we get\n// good handling even in the face of this.\n\npackage xterm\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// derived from xterm-256color, but adds full RGB support\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:          \"xterm-direct\",\n\t\tAliases:       []string{\"xterm-truecolor\"},\n\t\tColumns:       80,\n\t\tLines:         24,\n\t\tColors:        256,\n\t\tBell:          \"\\a\",\n\t\tClear:         \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:       \"\\x1b[?1049h\\x1b[22;0;0t\",\n\t\tExitCA:        \"\\x1b[?1049l\\x1b[23;0;0t\",\n\t\tShowCursor:    \"\\x1b[?12l\\x1b[?25h\",\n\t\tHideCursor:    \"\\x1b[?25l\",\n\t\tAttrOff:       \"\\x1b(B\\x1b[m\",\n\t\tUnderline:     \"\\x1b[4m\",\n\t\tBold:          \"\\x1b[1m\",\n\t\tDim:           \"\\x1b[2m\",\n\t\tItalic:        \"\\x1b[3m\",\n\t\tBlink:         \"\\x1b[5m\",\n\t\tReverse:       \"\\x1b[7m\",\n\t\tEnterKeypad:   \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:    \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:         \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:         \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:       \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tSetFgRGB:      \"\\x1b[38;2;%p1%d;%p2%d;%p3%dm\",\n\t\tSetBgRGB:      \"\\x1b[48;2;%p1%d;%p2%d;%p3%dm\",\n\t\tSetFgBgRGB:    \"\\x1b[38;2;%p1%d;%p2%d;%p3%d;48;2;%p4%d;%p5%d;%p6%dm\",\n\t\tResetFgBg:     \"\\x1b[39;49m\",\n\t\tAltChars:      \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:      \"\\x1b(0\",\n\t\tExitAcs:       \"\\x1b(B\",\n\t\tStrikeThrough: \"\\x1b[9m\",\n\t\tMouse:         \"\\x1b[M\",\n\t\tSetCursor:     \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:   \"\\b\",\n\t\tCursorUp1:     \"\\x1b[A\",\n\t\tKeyUp:         \"\\x1bOA\",\n\t\tKeyDown:       \"\\x1bOB\",\n\t\tKeyRight:      \"\\x1bOC\",\n\t\tKeyLeft:       \"\\x1bOD\",\n\t\tKeyInsert:     \"\\x1b[2~\",\n\t\tKeyDelete:     \"\\x1b[3~\",\n\t\tKeyBackspace:  \"\\u007f\",\n\t\tKeyHome:       \"\\x1bOH\",\n\t\tKeyEnd:        \"\\x1bOF\",\n\t\tKeyPgUp:       \"\\x1b[5~\",\n\t\tKeyPgDn:       \"\\x1b[6~\",\n\t\tKeyF1:         \"\\x1bOP\",\n\t\tKeyF2:         \"\\x1bOQ\",\n\t\tKeyF3:         \"\\x1bOR\",\n\t\tKeyF4:         \"\\x1bOS\",\n\t\tKeyF5:         \"\\x1b[15~\",\n\t\tKeyF6:         \"\\x1b[17~\",\n\t\tKeyF7:         \"\\x1b[18~\",\n\t\tKeyF8:         \"\\x1b[19~\",\n\t\tKeyF9:         \"\\x1b[20~\",\n\t\tKeyF10:        \"\\x1b[21~\",\n\t\tKeyF11:        \"\\x1b[23~\",\n\t\tKeyF12:        \"\\x1b[24~\",\n\t\tKeyBacktab:    \"\\x1b[Z\",\n\t\tModifiers:     1,\n\t\tAutoMargin:    true,\n\t\tTrueColor:     true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/x/xterm/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage xterm\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// xterm terminal emulator (X Window System)\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"xterm\",\n\t\tAliases:           []string{\"xterm-debian\"},\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            8,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b[?1049h\\x1b[22;0;0t\",\n\t\tExitCA:            \"\\x1b[?1049l\\x1b[23;0;0t\",\n\t\tShowCursor:        \"\\x1b[?12l\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b(B\\x1b[m\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tItalic:            \"\\x1b[3m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:             \"\\x1b[3%p1%dm\",\n\t\tSetBg:             \"\\x1b[4%p1%dm\",\n\t\tSetFgBg:           \"\\x1b[3%p1%d;4%p2%dm\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tAltChars:          \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x1b(0\",\n\t\tExitAcs:           \"\\x1b(B\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tStrikeThrough:     \"\\x1b[9m\",\n\t\tMouse:             \"\\x1b[<\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1bOH\",\n\t\tKeyEnd:            \"\\x1bOF\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tModifiers:         1,\n\t\tAutoMargin:        true,\n\t})\n\n\t// xterm with 88 colors\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"xterm-88color\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            88,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b[?1049h\\x1b[22;0;0t\",\n\t\tExitCA:            \"\\x1b[?1049l\\x1b[23;0;0t\",\n\t\tShowCursor:        \"\\x1b[?12l\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b(B\\x1b[m\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tItalic:            \"\\x1b[3m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:             \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:             \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:           \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tAltChars:          \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x1b(0\",\n\t\tExitAcs:           \"\\x1b(B\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tStrikeThrough:     \"\\x1b[9m\",\n\t\tMouse:             \"\\x1b[<\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1bOH\",\n\t\tKeyEnd:            \"\\x1bOF\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tModifiers:         1,\n\t\tAutoMargin:        true,\n\t})\n\n\t// xterm with 256 colors\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"xterm-256color\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            256,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b[?1049h\\x1b[22;0;0t\",\n\t\tExitCA:            \"\\x1b[?1049l\\x1b[23;0;0t\",\n\t\tShowCursor:        \"\\x1b[?12l\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b(B\\x1b[m\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tItalic:            \"\\x1b[3m\",\n\t\tBlink:             \"\\x1b[5m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\\x1b=\",\n\t\tExitKeypad:        \"\\x1b[?1l\\x1b>\",\n\t\tSetFg:             \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:             \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:           \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tAltChars:          \"``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x1b(0\",\n\t\tExitAcs:           \"\\x1b(B\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tStrikeThrough:     \"\\x1b[9m\",\n\t\tMouse:             \"\\x1b[<\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1bOH\",\n\t\tKeyEnd:            \"\\x1bOF\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tModifiers:         1,\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terminfo/x/xterm_kitty/term.go",
    "content": "// Generated automatically.  DO NOT HAND-EDIT.\n\npackage xterm_kitty\n\nimport \"github.com/gdamore/tcell/v2/terminfo\"\n\nfunc init() {\n\n\t// KovIdTTY\n\tterminfo.AddTerminfo(&terminfo.Terminfo{\n\t\tName:              \"xterm-kitty\",\n\t\tColumns:           80,\n\t\tLines:             24,\n\t\tColors:            256,\n\t\tBell:              \"\\a\",\n\t\tClear:             \"\\x1b[H\\x1b[2J\",\n\t\tEnterCA:           \"\\x1b[?1049h\",\n\t\tExitCA:            \"\\x1b[?1049l\",\n\t\tShowCursor:        \"\\x1b[?12h\\x1b[?25h\",\n\t\tHideCursor:        \"\\x1b[?25l\",\n\t\tAttrOff:           \"\\x1b(B\\x1b[m\",\n\t\tUnderline:         \"\\x1b[4m\",\n\t\tBold:              \"\\x1b[1m\",\n\t\tDim:               \"\\x1b[2m\",\n\t\tItalic:            \"\\x1b[3m\",\n\t\tReverse:           \"\\x1b[7m\",\n\t\tEnterKeypad:       \"\\x1b[?1h\",\n\t\tExitKeypad:        \"\\x1b[?1l\",\n\t\tSetFg:             \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m\",\n\t\tSetBg:             \"\\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m\",\n\t\tSetFgBg:           \"\\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m\",\n\t\tResetFgBg:         \"\\x1b[39;49m\",\n\t\tAltChars:          \"++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~\",\n\t\tEnterAcs:          \"\\x1b(0\",\n\t\tExitAcs:           \"\\x1b(B\",\n\t\tEnableAutoMargin:  \"\\x1b[?7h\",\n\t\tDisableAutoMargin: \"\\x1b[?7l\",\n\t\tStrikeThrough:     \"\\x1b[9m\",\n\t\tMouse:             \"\\x1b[M\",\n\t\tSetCursor:         \"\\x1b[%i%p1%d;%p2%dH\",\n\t\tCursorBack1:       \"\\b\",\n\t\tCursorUp1:         \"\\x1b[A\",\n\t\tKeyUp:             \"\\x1bOA\",\n\t\tKeyDown:           \"\\x1bOB\",\n\t\tKeyRight:          \"\\x1bOC\",\n\t\tKeyLeft:           \"\\x1bOD\",\n\t\tKeyInsert:         \"\\x1b[2~\",\n\t\tKeyDelete:         \"\\x1b[3~\",\n\t\tKeyBackspace:      \"\\x7f\",\n\t\tKeyHome:           \"\\x1bOH\",\n\t\tKeyEnd:            \"\\x1bOF\",\n\t\tKeyPgUp:           \"\\x1b[5~\",\n\t\tKeyPgDn:           \"\\x1b[6~\",\n\t\tKeyF1:             \"\\x1bOP\",\n\t\tKeyF2:             \"\\x1bOQ\",\n\t\tKeyF3:             \"\\x1bOR\",\n\t\tKeyF4:             \"\\x1bOS\",\n\t\tKeyF5:             \"\\x1b[15~\",\n\t\tKeyF6:             \"\\x1b[17~\",\n\t\tKeyF7:             \"\\x1b[18~\",\n\t\tKeyF8:             \"\\x1b[19~\",\n\t\tKeyF9:             \"\\x1b[20~\",\n\t\tKeyF10:            \"\\x1b[21~\",\n\t\tKeyF11:            \"\\x1b[23~\",\n\t\tKeyF12:            \"\\x1b[24~\",\n\t\tKeyBacktab:        \"\\x1b[Z\",\n\t\tModifiers:         1,\n\t\tTrueColor:         true,\n\t\tAutoMargin:        true,\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terms_default.go",
    "content": "//go:build !tcell_minimal\n// +build !tcell_minimal\n\n// Copyright 2019 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t// This imports the default terminal entries.  To disable, use the\n\t// tcell_minimal build tag.\n\t_ \"github.com/gdamore/tcell/v2/terminfo/extended\"\n)\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terms_dynamic.go",
    "content": "//go:build !tcell_minimal && !nacl && !js && !zos && !plan9 && !windows && !android\n// +build !tcell_minimal,!nacl,!js,!zos,!plan9,!windows,!android\n\n// Copyright 2019 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t// This imports a dynamic version of the terminal database, which\n\t// is built using infocmp.  This relies on a working installation\n\t// of infocmp (typically supplied with ncurses).  We only do this\n\t// for systems likely to have that -- i.e. UNIX based hosts.  We\n\t// also don't support Android here, because you really don't want\n\t// to run external programs there.  Generally the android terminals\n\t// will be automatically included anyway.\n\t\"github.com/gdamore/tcell/v2/terminfo\"\n\t\"github.com/gdamore/tcell/v2/terminfo/dynamic\"\n)\n\nfunc loadDynamicTerminfo(term string) (*terminfo.Terminfo, error) {\n\tti, _, e := dynamic.LoadTerminfo(term)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn ti, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/terms_static.go",
    "content": "//go:build tcell_minimal || nacl || zos || plan9 || windows || android || js\n// +build tcell_minimal nacl zos plan9 windows android js\n\n// Copyright 2019 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport (\n\t\"errors\"\n\n\t\"github.com/gdamore/tcell/v2/terminfo\"\n)\n\nfunc loadDynamicTerminfo(_ string) (*terminfo.Terminfo, error) {\n\treturn nil, errors.New(\"terminal type unsupported\")\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/tscreen.go",
    "content": "// Copyright 2024 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !(js && wasm)\n// +build !js !wasm\n\npackage tcell\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/term\"\n\t\"golang.org/x/text/transform\"\n\n\t\"github.com/gdamore/tcell/v2/terminfo\"\n\n\t// import the stock terminals\n\t_ \"github.com/gdamore/tcell/v2/terminfo/base\"\n)\n\n// NewTerminfoScreen returns a Screen that uses the stock TTY interface\n// and POSIX terminal control, combined with a terminfo description taken from\n// the $TERM environment variable.  It returns an error if the terminal\n// is not supported for any reason.\n//\n// For terminals that do not support dynamic resize events, the $LINES\n// $COLUMNS environment variables can be set to the actual window size,\n// otherwise defaults taken from the terminal database are used.\nfunc NewTerminfoScreen() (Screen, error) {\n\treturn NewTerminfoScreenFromTty(nil)\n}\n\n// LookupTerminfo attempts to find a definition for the named $TERM falling\n// back to attempting to parse the output from infocmp.\nfunc LookupTerminfo(name string) (ti *terminfo.Terminfo, e error) {\n\tti, e = terminfo.LookupTerminfo(name)\n\tif e != nil {\n\t\tti, e = loadDynamicTerminfo(name)\n\t\tif e != nil {\n\t\t\treturn nil, e\n\t\t}\n\t\tterminfo.AddTerminfo(ti)\n\t}\n\n\treturn\n}\n\n// NewTerminfoScreenFromTtyTerminfo returns a Screen using a custom Tty\n// implementation  and custom terminfo specification.\n// If the passed in tty is nil, then a reasonable default (typically /dev/tty)\n// is presumed, at least on UNIX hosts. (Windows hosts will typically fail this\n// call altogether.)\n// If passed terminfo is nil, then TERM environment variable is queried for\n// terminal specification.\nfunc NewTerminfoScreenFromTtyTerminfo(tty Tty, ti *terminfo.Terminfo) (s Screen, e error) {\n\tif ti == nil {\n\t\tti, e = LookupTerminfo(os.Getenv(\"TERM\"))\n\t\tif e != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\tt := &tScreen{ti: ti, tty: tty}\n\n\tt.keyexist = make(map[Key]bool)\n\tt.keycodes = make(map[string]*tKeyCode)\n\tif len(ti.Mouse) > 0 {\n\t\tt.mouse = []byte(ti.Mouse)\n\t}\n\tt.prepareKeys()\n\tt.buildAcsMap()\n\tt.resizeQ = make(chan bool, 1)\n\tt.fallback = make(map[rune]string)\n\tfor k, v := range RuneFallbacks {\n\t\tt.fallback[k] = v\n\t}\n\n\treturn &baseScreen{screenImpl: t}, nil\n}\n\n// NewTerminfoScreenFromTty returns a Screen using a custom Tty implementation.\n// If the passed in tty is nil, then a reasonable default (typically /dev/tty)\n// is presumed, at least on UNIX hosts. (Windows hosts will typically fail this\n// call altogether.)\nfunc NewTerminfoScreenFromTty(tty Tty) (Screen, error) {\n\treturn NewTerminfoScreenFromTtyTerminfo(tty, nil)\n}\n\n// tKeyCode represents a combination of a key code and modifiers.\ntype tKeyCode struct {\n\tkey Key\n\tmod ModMask\n}\n\n// tScreen represents a screen backed by a terminfo implementation.\ntype tScreen struct {\n\tti           *terminfo.Terminfo\n\ttty          Tty\n\th            int\n\tw            int\n\tfini         bool\n\tcells        CellBuffer\n\tbuffering    bool // true if we are collecting writes to buf instead of sending directly to out\n\tbuf          bytes.Buffer\n\tcurstyle     Style\n\tstyle        Style\n\tresizeQ      chan bool\n\tquit         chan struct{}\n\tkeyexist     map[Key]bool\n\tkeycodes     map[string]*tKeyCode\n\tkeychan      chan []byte\n\tkeytimer     *time.Timer\n\tkeyexpire    time.Time\n\tcx           int\n\tcy           int\n\tmouse        []byte\n\tclear        bool\n\tcursorx      int\n\tcursory      int\n\tacs          map[rune]string\n\tcharset      string\n\tencoder      transform.Transformer\n\tdecoder      transform.Transformer\n\tfallback     map[rune]string\n\tcolors       map[Color]Color\n\tpalette      []Color\n\ttruecolor    bool\n\tescaped      bool\n\tbuttondn     bool\n\tfiniOnce     sync.Once\n\tenablePaste  string\n\tdisablePaste string\n\tenterUrl     string\n\texitUrl      string\n\tsetWinSize   string\n\tenableFocus  string\n\tdisableFocus string\n\tcursorStyles map[CursorStyle]string\n\tcursorStyle  CursorStyle\n\tsaved        *term.State\n\tstopQ        chan struct{}\n\teventQ       chan Event\n\trunning      bool\n\twg           sync.WaitGroup\n\tmouseFlags   MouseFlags\n\tpasteEnabled bool\n\tfocusEnabled bool\n\n\tsync.Mutex\n}\n\nfunc (t *tScreen) Init() error {\n\tif e := t.initialize(); e != nil {\n\t\treturn e\n\t}\n\n\tt.keychan = make(chan []byte, 10)\n\tt.keytimer = time.NewTimer(time.Millisecond * 50)\n\tt.charset = \"UTF-8\"\n\n\tt.charset = getCharset()\n\tif enc := GetEncoding(t.charset); enc != nil {\n\t\tt.encoder = enc.NewEncoder()\n\t\tt.decoder = enc.NewDecoder()\n\t} else {\n\t\treturn ErrNoCharset\n\t}\n\tti := t.ti\n\n\t// environment overrides\n\tw := ti.Columns\n\th := ti.Lines\n\tif i, _ := strconv.Atoi(os.Getenv(\"LINES\")); i != 0 {\n\t\th = i\n\t}\n\tif i, _ := strconv.Atoi(os.Getenv(\"COLUMNS\")); i != 0 {\n\t\tw = i\n\t}\n\tif t.ti.SetFgBgRGB != \"\" || t.ti.SetFgRGB != \"\" || t.ti.SetBgRGB != \"\" {\n\t\tt.truecolor = true\n\t}\n\t// A user who wants to have his themes honored can\n\t// set this environment variable.\n\tif os.Getenv(\"TCELL_TRUECOLOR\") == \"disable\" {\n\t\tt.truecolor = false\n\t}\n\tnColors := t.nColors()\n\tif nColors > 256 {\n\t\tnColors = 256 // clip to reasonable limits\n\t}\n\tt.colors = make(map[Color]Color, nColors)\n\tt.palette = make([]Color, nColors)\n\tfor i := 0; i < nColors; i++ {\n\t\tt.palette[i] = Color(i) | ColorValid\n\t\t// identity map for our builtin colors\n\t\tt.colors[Color(i)|ColorValid] = Color(i) | ColorValid\n\t}\n\n\tt.quit = make(chan struct{})\n\tt.eventQ = make(chan Event, 10)\n\n\tt.Lock()\n\tt.cx = -1\n\tt.cy = -1\n\tt.style = StyleDefault\n\tt.cells.Resize(w, h)\n\tt.cursorx = -1\n\tt.cursory = -1\n\tt.resize()\n\tt.Unlock()\n\n\tif err := t.engage(); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (t *tScreen) prepareKeyMod(key Key, mod ModMask, val string) {\n\tif val != \"\" {\n\t\t// Do not override codes that already exist\n\t\tif _, exist := t.keycodes[val]; !exist {\n\t\t\tt.keyexist[key] = true\n\t\t\tt.keycodes[val] = &tKeyCode{key: key, mod: mod}\n\t\t}\n\t}\n}\n\nfunc (t *tScreen) prepareKeyModReplace(key Key, replace Key, mod ModMask, val string) {\n\tif val != \"\" {\n\t\t// Do not override codes that already exist\n\t\tif old, exist := t.keycodes[val]; !exist || old.key == replace {\n\t\t\tt.keyexist[key] = true\n\t\t\tt.keycodes[val] = &tKeyCode{key: key, mod: mod}\n\t\t}\n\t}\n}\n\nfunc (t *tScreen) prepareKeyModXTerm(key Key, val string) {\n\n\tif strings.HasPrefix(val, \"\\x1b[\") && strings.HasSuffix(val, \"~\") {\n\n\t\t// Drop the trailing ~\n\t\tval = val[:len(val)-1]\n\n\t\t// These suffixes are calculated assuming Xterm style modifier suffixes.\n\t\t// Please see https://invisible-island.net/xterm/ctlseqs/ctlseqs.pdf for\n\t\t// more information (specifically \"PC-Style Function Keys\").\n\t\tt.prepareKeyModReplace(key, key+12, ModShift, val+\";2~\")\n\t\tt.prepareKeyModReplace(key, key+48, ModAlt, val+\";3~\")\n\t\tt.prepareKeyModReplace(key, key+60, ModAlt|ModShift, val+\";4~\")\n\t\tt.prepareKeyModReplace(key, key+24, ModCtrl, val+\";5~\")\n\t\tt.prepareKeyModReplace(key, key+36, ModCtrl|ModShift, val+\";6~\")\n\t\tt.prepareKeyMod(key, ModAlt|ModCtrl, val+\";7~\")\n\t\tt.prepareKeyMod(key, ModShift|ModAlt|ModCtrl, val+\";8~\")\n\t\tt.prepareKeyMod(key, ModMeta, val+\";9~\")\n\t\tt.prepareKeyMod(key, ModMeta|ModShift, val+\";10~\")\n\t\tt.prepareKeyMod(key, ModMeta|ModAlt, val+\";11~\")\n\t\tt.prepareKeyMod(key, ModMeta|ModAlt|ModShift, val+\";12~\")\n\t\tt.prepareKeyMod(key, ModMeta|ModCtrl, val+\";13~\")\n\t\tt.prepareKeyMod(key, ModMeta|ModCtrl|ModShift, val+\";14~\")\n\t\tt.prepareKeyMod(key, ModMeta|ModCtrl|ModAlt, val+\";15~\")\n\t\tt.prepareKeyMod(key, ModMeta|ModCtrl|ModAlt|ModShift, val+\";16~\")\n\t} else if strings.HasPrefix(val, \"\\x1bO\") && len(val) == 3 {\n\t\tval = val[2:]\n\t\tt.prepareKeyModReplace(key, key+12, ModShift, \"\\x1b[1;2\"+val)\n\t\tt.prepareKeyModReplace(key, key+48, ModAlt, \"\\x1b[1;3\"+val)\n\t\tt.prepareKeyModReplace(key, key+24, ModCtrl, \"\\x1b[1;5\"+val)\n\t\tt.prepareKeyModReplace(key, key+36, ModCtrl|ModShift, \"\\x1b[1;6\"+val)\n\t\tt.prepareKeyModReplace(key, key+60, ModAlt|ModShift, \"\\x1b[1;4\"+val)\n\t\tt.prepareKeyMod(key, ModAlt|ModCtrl, \"\\x1b[1;7\"+val)\n\t\tt.prepareKeyMod(key, ModShift|ModAlt|ModCtrl, \"\\x1b[1;8\"+val)\n\t\tt.prepareKeyMod(key, ModMeta, \"\\x1b[1;9\"+val)\n\t\tt.prepareKeyMod(key, ModMeta|ModShift, \"\\x1b[1;10\"+val)\n\t\tt.prepareKeyMod(key, ModMeta|ModAlt, \"\\x1b[1;11\"+val)\n\t\tt.prepareKeyMod(key, ModMeta|ModAlt|ModShift, \"\\x1b[1;12\"+val)\n\t\tt.prepareKeyMod(key, ModMeta|ModCtrl, \"\\x1b[1;13\"+val)\n\t\tt.prepareKeyMod(key, ModMeta|ModCtrl|ModShift, \"\\x1b[1;14\"+val)\n\t\tt.prepareKeyMod(key, ModMeta|ModCtrl|ModAlt, \"\\x1b[1;15\"+val)\n\t\tt.prepareKeyMod(key, ModMeta|ModCtrl|ModAlt|ModShift, \"\\x1b[1;16\"+val)\n\t}\n}\n\nfunc (t *tScreen) prepareXtermModifiers() {\n\tif t.ti.Modifiers != terminfo.ModifiersXTerm {\n\t\treturn\n\t}\n\tt.prepareKeyModXTerm(KeyRight, t.ti.KeyRight)\n\tt.prepareKeyModXTerm(KeyLeft, t.ti.KeyLeft)\n\tt.prepareKeyModXTerm(KeyUp, t.ti.KeyUp)\n\tt.prepareKeyModXTerm(KeyDown, t.ti.KeyDown)\n\tt.prepareKeyModXTerm(KeyInsert, t.ti.KeyInsert)\n\tt.prepareKeyModXTerm(KeyDelete, t.ti.KeyDelete)\n\tt.prepareKeyModXTerm(KeyPgUp, t.ti.KeyPgUp)\n\tt.prepareKeyModXTerm(KeyPgDn, t.ti.KeyPgDn)\n\tt.prepareKeyModXTerm(KeyHome, t.ti.KeyHome)\n\tt.prepareKeyModXTerm(KeyEnd, t.ti.KeyEnd)\n\tt.prepareKeyModXTerm(KeyF1, t.ti.KeyF1)\n\tt.prepareKeyModXTerm(KeyF2, t.ti.KeyF2)\n\tt.prepareKeyModXTerm(KeyF3, t.ti.KeyF3)\n\tt.prepareKeyModXTerm(KeyF4, t.ti.KeyF4)\n\tt.prepareKeyModXTerm(KeyF5, t.ti.KeyF5)\n\tt.prepareKeyModXTerm(KeyF6, t.ti.KeyF6)\n\tt.prepareKeyModXTerm(KeyF7, t.ti.KeyF7)\n\tt.prepareKeyModXTerm(KeyF8, t.ti.KeyF8)\n\tt.prepareKeyModXTerm(KeyF9, t.ti.KeyF9)\n\tt.prepareKeyModXTerm(KeyF10, t.ti.KeyF10)\n\tt.prepareKeyModXTerm(KeyF11, t.ti.KeyF11)\n\tt.prepareKeyModXTerm(KeyF12, t.ti.KeyF12)\n}\n\nfunc (t *tScreen) prepareBracketedPaste() {\n\t// Another workaround for lack of reporting in terminfo.\n\t// We assume if the terminal has a mouse entry, that it\n\t// offers bracketed paste.  But we allow specific overrides\n\t// via our terminal database.\n\tif t.ti.EnablePaste != \"\" {\n\t\tt.enablePaste = t.ti.EnablePaste\n\t\tt.disablePaste = t.ti.DisablePaste\n\t\tt.prepareKey(keyPasteStart, t.ti.PasteStart)\n\t\tt.prepareKey(keyPasteEnd, t.ti.PasteEnd)\n\t} else if t.ti.Mouse != \"\" {\n\t\tt.enablePaste = \"\\x1b[?2004h\"\n\t\tt.disablePaste = \"\\x1b[?2004l\"\n\t\tt.prepareKey(keyPasteStart, \"\\x1b[200~\")\n\t\tt.prepareKey(keyPasteEnd, \"\\x1b[201~\")\n\t}\n}\n\nfunc (t *tScreen) prepareExtendedOSC() {\n\t// Linux is a special beast - because it has a mouse entry, but does\n\t// not swallow these OSC commands properly.\n\tif strings.Contains(t.ti.Name, \"linux\") {\n\t\treturn\n\t}\n\t// More stuff for limits in terminfo.  This time we are applying\n\t// the most common OSC (operating system commands).  Generally\n\t// terminals that don't understand these will ignore them.\n\t// Again, we condition this based on mouse capabilities.\n\tif t.ti.EnterUrl != \"\" {\n\t\tt.enterUrl = t.ti.EnterUrl\n\t\tt.exitUrl = t.ti.ExitUrl\n\t} else if t.ti.Mouse != \"\" {\n\t\tt.enterUrl = \"\\x1b]8;%p2%s;%p1%s\\x1b\\\\\"\n\t\tt.exitUrl = \"\\x1b]8;;\\x1b\\\\\"\n\t}\n\n\tif t.ti.SetWindowSize != \"\" {\n\t\tt.setWinSize = t.ti.SetWindowSize\n\t} else if t.ti.Mouse != \"\" {\n\t\tt.setWinSize = \"\\x1b[8;%p1%p2%d;%dt\"\n\t}\n\n\tif t.ti.EnableFocusReporting != \"\" {\n\t\tt.enableFocus = t.ti.EnableFocusReporting\n\t} else if t.ti.Mouse != \"\" {\n\t\tt.enableFocus = \"\\x1b[?1004h\"\n\t}\n\tif t.ti.DisableFocusReporting != \"\" {\n\t\tt.disableFocus = t.ti.DisableFocusReporting\n\t} else if t.ti.Mouse != \"\" {\n\t\tt.disableFocus = \"\\x1b[?1004l\"\n\t}\n}\n\nfunc (t *tScreen) prepareCursorStyles() {\n\t// Another workaround for lack of reporting in terminfo.\n\t// We assume if the terminal has a mouse entry, that it\n\t// offers bracketed paste.  But we allow specific overrides\n\t// via our terminal database.\n\tif t.ti.CursorDefault != \"\" {\n\t\tt.cursorStyles = map[CursorStyle]string{\n\t\t\tCursorStyleDefault:           t.ti.CursorDefault,\n\t\t\tCursorStyleBlinkingBlock:     t.ti.CursorBlinkingBlock,\n\t\t\tCursorStyleSteadyBlock:       t.ti.CursorSteadyBlock,\n\t\t\tCursorStyleBlinkingUnderline: t.ti.CursorBlinkingUnderline,\n\t\t\tCursorStyleSteadyUnderline:   t.ti.CursorSteadyUnderline,\n\t\t\tCursorStyleBlinkingBar:       t.ti.CursorBlinkingBar,\n\t\t\tCursorStyleSteadyBar:         t.ti.CursorSteadyBar,\n\t\t}\n\t} else if t.ti.Mouse != \"\" {\n\t\tt.cursorStyles = map[CursorStyle]string{\n\t\t\tCursorStyleDefault:           \"\\x1b[0 q\",\n\t\t\tCursorStyleBlinkingBlock:     \"\\x1b[1 q\",\n\t\t\tCursorStyleSteadyBlock:       \"\\x1b[2 q\",\n\t\t\tCursorStyleBlinkingUnderline: \"\\x1b[3 q\",\n\t\t\tCursorStyleSteadyUnderline:   \"\\x1b[4 q\",\n\t\t\tCursorStyleBlinkingBar:       \"\\x1b[5 q\",\n\t\t\tCursorStyleSteadyBar:         \"\\x1b[6 q\",\n\t\t}\n\t}\n}\n\nfunc (t *tScreen) prepareKey(key Key, val string) {\n\tt.prepareKeyMod(key, ModNone, val)\n}\n\nfunc (t *tScreen) prepareKeys() {\n\tti := t.ti\n\tt.prepareKey(KeyBackspace, ti.KeyBackspace)\n\tt.prepareKey(KeyF1, ti.KeyF1)\n\tt.prepareKey(KeyF2, ti.KeyF2)\n\tt.prepareKey(KeyF3, ti.KeyF3)\n\tt.prepareKey(KeyF4, ti.KeyF4)\n\tt.prepareKey(KeyF5, ti.KeyF5)\n\tt.prepareKey(KeyF6, ti.KeyF6)\n\tt.prepareKey(KeyF7, ti.KeyF7)\n\tt.prepareKey(KeyF8, ti.KeyF8)\n\tt.prepareKey(KeyF9, ti.KeyF9)\n\tt.prepareKey(KeyF10, ti.KeyF10)\n\tt.prepareKey(KeyF11, ti.KeyF11)\n\tt.prepareKey(KeyF12, ti.KeyF12)\n\tt.prepareKey(KeyF13, ti.KeyF13)\n\tt.prepareKey(KeyF14, ti.KeyF14)\n\tt.prepareKey(KeyF15, ti.KeyF15)\n\tt.prepareKey(KeyF16, ti.KeyF16)\n\tt.prepareKey(KeyF17, ti.KeyF17)\n\tt.prepareKey(KeyF18, ti.KeyF18)\n\tt.prepareKey(KeyF19, ti.KeyF19)\n\tt.prepareKey(KeyF20, ti.KeyF20)\n\tt.prepareKey(KeyF21, ti.KeyF21)\n\tt.prepareKey(KeyF22, ti.KeyF22)\n\tt.prepareKey(KeyF23, ti.KeyF23)\n\tt.prepareKey(KeyF24, ti.KeyF24)\n\tt.prepareKey(KeyF25, ti.KeyF25)\n\tt.prepareKey(KeyF26, ti.KeyF26)\n\tt.prepareKey(KeyF27, ti.KeyF27)\n\tt.prepareKey(KeyF28, ti.KeyF28)\n\tt.prepareKey(KeyF29, ti.KeyF29)\n\tt.prepareKey(KeyF30, ti.KeyF30)\n\tt.prepareKey(KeyF31, ti.KeyF31)\n\tt.prepareKey(KeyF32, ti.KeyF32)\n\tt.prepareKey(KeyF33, ti.KeyF33)\n\tt.prepareKey(KeyF34, ti.KeyF34)\n\tt.prepareKey(KeyF35, ti.KeyF35)\n\tt.prepareKey(KeyF36, ti.KeyF36)\n\tt.prepareKey(KeyF37, ti.KeyF37)\n\tt.prepareKey(KeyF38, ti.KeyF38)\n\tt.prepareKey(KeyF39, ti.KeyF39)\n\tt.prepareKey(KeyF40, ti.KeyF40)\n\tt.prepareKey(KeyF41, ti.KeyF41)\n\tt.prepareKey(KeyF42, ti.KeyF42)\n\tt.prepareKey(KeyF43, ti.KeyF43)\n\tt.prepareKey(KeyF44, ti.KeyF44)\n\tt.prepareKey(KeyF45, ti.KeyF45)\n\tt.prepareKey(KeyF46, ti.KeyF46)\n\tt.prepareKey(KeyF47, ti.KeyF47)\n\tt.prepareKey(KeyF48, ti.KeyF48)\n\tt.prepareKey(KeyF49, ti.KeyF49)\n\tt.prepareKey(KeyF50, ti.KeyF50)\n\tt.prepareKey(KeyF51, ti.KeyF51)\n\tt.prepareKey(KeyF52, ti.KeyF52)\n\tt.prepareKey(KeyF53, ti.KeyF53)\n\tt.prepareKey(KeyF54, ti.KeyF54)\n\tt.prepareKey(KeyF55, ti.KeyF55)\n\tt.prepareKey(KeyF56, ti.KeyF56)\n\tt.prepareKey(KeyF57, ti.KeyF57)\n\tt.prepareKey(KeyF58, ti.KeyF58)\n\tt.prepareKey(KeyF59, ti.KeyF59)\n\tt.prepareKey(KeyF60, ti.KeyF60)\n\tt.prepareKey(KeyF61, ti.KeyF61)\n\tt.prepareKey(KeyF62, ti.KeyF62)\n\tt.prepareKey(KeyF63, ti.KeyF63)\n\tt.prepareKey(KeyF64, ti.KeyF64)\n\tt.prepareKey(KeyInsert, ti.KeyInsert)\n\tt.prepareKey(KeyDelete, ti.KeyDelete)\n\tt.prepareKey(KeyHome, ti.KeyHome)\n\tt.prepareKey(KeyEnd, ti.KeyEnd)\n\tt.prepareKey(KeyUp, ti.KeyUp)\n\tt.prepareKey(KeyDown, ti.KeyDown)\n\tt.prepareKey(KeyLeft, ti.KeyLeft)\n\tt.prepareKey(KeyRight, ti.KeyRight)\n\tt.prepareKey(KeyPgUp, ti.KeyPgUp)\n\tt.prepareKey(KeyPgDn, ti.KeyPgDn)\n\tt.prepareKey(KeyHelp, ti.KeyHelp)\n\tt.prepareKey(KeyPrint, ti.KeyPrint)\n\tt.prepareKey(KeyCancel, ti.KeyCancel)\n\tt.prepareKey(KeyExit, ti.KeyExit)\n\tt.prepareKey(KeyBacktab, ti.KeyBacktab)\n\n\tt.prepareKeyMod(KeyRight, ModShift, ti.KeyShfRight)\n\tt.prepareKeyMod(KeyLeft, ModShift, ti.KeyShfLeft)\n\tt.prepareKeyMod(KeyUp, ModShift, ti.KeyShfUp)\n\tt.prepareKeyMod(KeyDown, ModShift, ti.KeyShfDown)\n\tt.prepareKeyMod(KeyHome, ModShift, ti.KeyShfHome)\n\tt.prepareKeyMod(KeyEnd, ModShift, ti.KeyShfEnd)\n\tt.prepareKeyMod(KeyPgUp, ModShift, ti.KeyShfPgUp)\n\tt.prepareKeyMod(KeyPgDn, ModShift, ti.KeyShfPgDn)\n\n\tt.prepareKeyMod(KeyRight, ModCtrl, ti.KeyCtrlRight)\n\tt.prepareKeyMod(KeyLeft, ModCtrl, ti.KeyCtrlLeft)\n\tt.prepareKeyMod(KeyUp, ModCtrl, ti.KeyCtrlUp)\n\tt.prepareKeyMod(KeyDown, ModCtrl, ti.KeyCtrlDown)\n\tt.prepareKeyMod(KeyHome, ModCtrl, ti.KeyCtrlHome)\n\tt.prepareKeyMod(KeyEnd, ModCtrl, ti.KeyCtrlEnd)\n\n\t// Sadly, xterm handling of keycodes is somewhat erratic.  In\n\t// particular, different codes are sent depending on application\n\t// mode is in use or not, and the entries for many of these are\n\t// simply absent from terminfo on many systems.  So we insert\n\t// a number of escape sequences if they are not already used, in\n\t// order to have the widest correct usage.  Note that prepareKey\n\t// will not inject codes if the escape sequence is already known.\n\t// We also only do this for terminals that have the application\n\t// mode present.\n\n\t// Cursor mode\n\tif ti.EnterKeypad != \"\" {\n\t\tt.prepareKey(KeyUp, \"\\x1b[A\")\n\t\tt.prepareKey(KeyDown, \"\\x1b[B\")\n\t\tt.prepareKey(KeyRight, \"\\x1b[C\")\n\t\tt.prepareKey(KeyLeft, \"\\x1b[D\")\n\t\tt.prepareKey(KeyEnd, \"\\x1b[F\")\n\t\tt.prepareKey(KeyHome, \"\\x1b[H\")\n\t\tt.prepareKey(KeyDelete, \"\\x1b[3~\")\n\t\tt.prepareKey(KeyHome, \"\\x1b[1~\")\n\t\tt.prepareKey(KeyEnd, \"\\x1b[4~\")\n\t\tt.prepareKey(KeyPgUp, \"\\x1b[5~\")\n\t\tt.prepareKey(KeyPgDn, \"\\x1b[6~\")\n\n\t\t// Application mode\n\t\tt.prepareKey(KeyUp, \"\\x1bOA\")\n\t\tt.prepareKey(KeyDown, \"\\x1bOB\")\n\t\tt.prepareKey(KeyRight, \"\\x1bOC\")\n\t\tt.prepareKey(KeyLeft, \"\\x1bOD\")\n\t\tt.prepareKey(KeyHome, \"\\x1bOH\")\n\t}\n\n\tt.prepareKey(keyPasteStart, ti.PasteStart)\n\tt.prepareKey(keyPasteEnd, ti.PasteEnd)\n\tt.prepareXtermModifiers()\n\tt.prepareBracketedPaste()\n\tt.prepareCursorStyles()\n\tt.prepareExtendedOSC()\n\nouter:\n\t// Add key mappings for control keys.\n\tfor i := 0; i < ' '; i++ {\n\t\t// Do not insert direct key codes for ambiguous keys.\n\t\t// For example, ESC is used for lots of other keys, so\n\t\t// when parsing this we don't want to fast path handling\n\t\t// of it, but instead wait a bit before parsing it as in\n\t\t// isolation.\n\t\tfor esc := range t.keycodes {\n\t\t\tif []byte(esc)[0] == byte(i) {\n\t\t\t\tcontinue outer\n\t\t\t}\n\t\t}\n\n\t\tt.keyexist[Key(i)] = true\n\n\t\tmod := ModCtrl\n\t\tswitch Key(i) {\n\t\tcase KeyBS, KeyTAB, KeyESC, KeyCR:\n\t\t\t// directly type-able- no control sequence\n\t\t\tmod = ModNone\n\t\t}\n\t\tt.keycodes[string(rune(i))] = &tKeyCode{key: Key(i), mod: mod}\n\t}\n}\n\nfunc (t *tScreen) Fini() {\n\tt.finiOnce.Do(t.finish)\n}\n\nfunc (t *tScreen) finish() {\n\tclose(t.quit)\n\tt.finalize()\n}\n\nfunc (t *tScreen) SetStyle(style Style) {\n\tt.Lock()\n\tif !t.fini {\n\t\tt.style = style\n\t}\n\tt.Unlock()\n}\n\nfunc (t *tScreen) encodeRune(r rune, buf []byte) []byte {\n\n\tnb := make([]byte, 6)\n\tob := make([]byte, 6)\n\tnum := utf8.EncodeRune(ob, r)\n\tob = ob[:num]\n\tdst := 0\n\tvar err error\n\tif enc := t.encoder; enc != nil {\n\t\tenc.Reset()\n\t\tdst, _, err = enc.Transform(nb, ob, true)\n\t}\n\tif err != nil || dst == 0 || nb[0] == '\\x1a' {\n\t\t// Combining characters are elided\n\t\tif len(buf) == 0 {\n\t\t\tif acs, ok := t.acs[r]; ok {\n\t\t\t\tbuf = append(buf, []byte(acs)...)\n\t\t\t} else if fb, ok := t.fallback[r]; ok {\n\t\t\t\tbuf = append(buf, []byte(fb)...)\n\t\t\t} else {\n\t\t\t\tbuf = append(buf, '?')\n\t\t\t}\n\t\t}\n\t} else {\n\t\tbuf = append(buf, nb[:dst]...)\n\t}\n\n\treturn buf\n}\n\nfunc (t *tScreen) sendFgBg(fg Color, bg Color, attr AttrMask) AttrMask {\n\tti := t.ti\n\tif ti.Colors == 0 {\n\t\t// foreground vs background, we calculate luminance\n\t\t// and possibly do a reverse video\n\t\tif !fg.Valid() {\n\t\t\treturn attr\n\t\t}\n\t\tv, ok := t.colors[fg]\n\t\tif !ok {\n\t\t\tv = FindColor(fg, []Color{ColorBlack, ColorWhite})\n\t\t\tt.colors[fg] = v\n\t\t}\n\t\tswitch v {\n\t\tcase ColorWhite:\n\t\t\treturn attr\n\t\tcase ColorBlack:\n\t\t\treturn attr ^ AttrReverse\n\t\t}\n\t}\n\n\tif fg == ColorReset || bg == ColorReset {\n\t\tt.TPuts(ti.ResetFgBg)\n\t}\n\tif t.truecolor {\n\t\tif ti.SetFgBgRGB != \"\" && fg.IsRGB() && bg.IsRGB() {\n\t\t\tr1, g1, b1 := fg.RGB()\n\t\t\tr2, g2, b2 := bg.RGB()\n\t\t\tt.TPuts(ti.TParm(ti.SetFgBgRGB,\n\t\t\t\tint(r1), int(g1), int(b1),\n\t\t\t\tint(r2), int(g2), int(b2)))\n\t\t\treturn attr\n\t\t}\n\n\t\tif fg.IsRGB() && ti.SetFgRGB != \"\" {\n\t\t\tr, g, b := fg.RGB()\n\t\t\tt.TPuts(ti.TParm(ti.SetFgRGB, int(r), int(g), int(b)))\n\t\t\tfg = ColorDefault\n\t\t}\n\n\t\tif bg.IsRGB() && ti.SetBgRGB != \"\" {\n\t\t\tr, g, b := bg.RGB()\n\t\t\tt.TPuts(ti.TParm(ti.SetBgRGB,\n\t\t\t\tint(r), int(g), int(b)))\n\t\t\tbg = ColorDefault\n\t\t}\n\t}\n\n\tif fg.Valid() {\n\t\tif v, ok := t.colors[fg]; ok {\n\t\t\tfg = v\n\t\t} else {\n\t\t\tv = FindColor(fg, t.palette)\n\t\t\tt.colors[fg] = v\n\t\t\tfg = v\n\t\t}\n\t}\n\n\tif bg.Valid() {\n\t\tif v, ok := t.colors[bg]; ok {\n\t\t\tbg = v\n\t\t} else {\n\t\t\tv = FindColor(bg, t.palette)\n\t\t\tt.colors[bg] = v\n\t\t\tbg = v\n\t\t}\n\t}\n\n\tif fg.Valid() && bg.Valid() && ti.SetFgBg != \"\" {\n\t\tt.TPuts(ti.TParm(ti.SetFgBg, int(fg&0xff), int(bg&0xff)))\n\t} else {\n\t\tif fg.Valid() && ti.SetFg != \"\" {\n\t\t\tt.TPuts(ti.TParm(ti.SetFg, int(fg&0xff)))\n\t\t}\n\t\tif bg.Valid() && ti.SetBg != \"\" {\n\t\t\tt.TPuts(ti.TParm(ti.SetBg, int(bg&0xff)))\n\t\t}\n\t}\n\treturn attr\n}\n\nfunc (t *tScreen) drawCell(x, y int) int {\n\n\tti := t.ti\n\n\tmainc, combc, style, width := t.cells.GetContent(x, y)\n\tif !t.cells.Dirty(x, y) {\n\t\treturn width\n\t}\n\n\tif y == t.h-1 && x == t.w-1 && t.ti.AutoMargin && ti.DisableAutoMargin == \"\" && ti.InsertChar != \"\" {\n\t\t// our solution is somewhat goofy.\n\t\t// we write to the second to the last cell what we want in the last cell, then we\n\t\t// insert a character at that 2nd to last position to shift the last column into\n\t\t// place, then we rewrite that 2nd to last cell.  Old terminals suck.\n\t\tt.TPuts(ti.TGoto(x-1, y))\n\t\tdefer func() {\n\t\t\tt.TPuts(ti.TGoto(x-1, y))\n\t\t\tt.TPuts(ti.InsertChar)\n\t\t\tt.cy = y\n\t\t\tt.cx = x - 1\n\t\t\tt.cells.SetDirty(x-1, y, true)\n\t\t\t_ = t.drawCell(x-1, y)\n\t\t\tt.TPuts(t.ti.TGoto(0, 0))\n\t\t\tt.cy = 0\n\t\t\tt.cx = 0\n\t\t}()\n\t} else if t.cy != y || t.cx != x {\n\t\tt.TPuts(ti.TGoto(x, y))\n\t\tt.cx = x\n\t\tt.cy = y\n\t}\n\n\tif style == StyleDefault {\n\t\tstyle = t.style\n\t}\n\tif style != t.curstyle {\n\t\tfg, bg, attrs := style.Decompose()\n\n\t\tt.TPuts(ti.AttrOff)\n\n\t\tattrs = t.sendFgBg(fg, bg, attrs)\n\t\tif attrs&AttrBold != 0 {\n\t\t\tt.TPuts(ti.Bold)\n\t\t}\n\t\tif attrs&AttrUnderline != 0 {\n\t\t\tt.TPuts(ti.Underline)\n\t\t}\n\t\tif attrs&AttrReverse != 0 {\n\t\t\tt.TPuts(ti.Reverse)\n\t\t}\n\t\tif attrs&AttrBlink != 0 {\n\t\t\tt.TPuts(ti.Blink)\n\t\t}\n\t\tif attrs&AttrDim != 0 {\n\t\t\tt.TPuts(ti.Dim)\n\t\t}\n\t\tif attrs&AttrItalic != 0 {\n\t\t\tt.TPuts(ti.Italic)\n\t\t}\n\t\tif attrs&AttrStrikeThrough != 0 {\n\t\t\tt.TPuts(ti.StrikeThrough)\n\t\t}\n\n\t\t// URL string can be long, so don't send it unless we really need to\n\t\tif t.enterUrl != \"\" && t.curstyle != style {\n\t\t\tif style.url != \"\" {\n\t\t\t\tt.TPuts(ti.TParm(t.enterUrl, style.url, style.urlId))\n\t\t\t} else {\n\t\t\t\tt.TPuts(t.exitUrl)\n\t\t\t}\n\t\t}\n\n\t\tt.curstyle = style\n\t}\n\n\t// now emit runes - taking care to not overrun width with a\n\t// wide character, and to ensure that we emit exactly one regular\n\t// character followed up by any residual combing characters\n\n\tif width < 1 {\n\t\twidth = 1\n\t}\n\n\tvar str string\n\n\tbuf := make([]byte, 0, 6)\n\n\tbuf = t.encodeRune(mainc, buf)\n\tfor _, r := range combc {\n\t\tbuf = t.encodeRune(r, buf)\n\t}\n\n\tstr = string(buf)\n\tif width > 1 && str == \"?\" {\n\t\t// No FullWidth character support\n\t\tstr = \"? \"\n\t\tt.cx = -1\n\t}\n\n\tif x > t.w-width {\n\t\t// too wide to fit; emit a single space instead\n\t\twidth = 1\n\t\tstr = \" \"\n\t}\n\tt.writeString(str)\n\tt.cx += width\n\tt.cells.SetDirty(x, y, false)\n\tif width > 1 {\n\t\tt.cx = -1\n\t}\n\n\treturn width\n}\n\nfunc (t *tScreen) ShowCursor(x, y int) {\n\tt.Lock()\n\tt.cursorx = x\n\tt.cursory = y\n\tt.Unlock()\n}\n\nfunc (t *tScreen) SetCursorStyle(cs CursorStyle) {\n\tt.Lock()\n\tt.cursorStyle = cs\n\tt.Unlock()\n}\n\nfunc (t *tScreen) HideCursor() {\n\tt.ShowCursor(-1, -1)\n}\n\nfunc (t *tScreen) showCursor() {\n\n\tx, y := t.cursorx, t.cursory\n\tw, h := t.cells.Size()\n\tif x < 0 || y < 0 || x >= w || y >= h {\n\t\tt.hideCursor()\n\t\treturn\n\t}\n\tt.TPuts(t.ti.TGoto(x, y))\n\tt.TPuts(t.ti.ShowCursor)\n\tif t.cursorStyles != nil {\n\t\tif esc, ok := t.cursorStyles[t.cursorStyle]; ok {\n\t\t\tt.TPuts(esc)\n\t\t}\n\t}\n\tt.cx = x\n\tt.cy = y\n}\n\n// writeString sends a string to the terminal. The string is sent as-is and\n// this function does not expand inline padding indications (of the form\n// $<[delay]> where [delay] is msec). In order to have these expanded, use\n// TPuts. If the screen is \"buffering\", the string is collected in a buffer,\n// with the intention that the entire buffer be sent to the terminal in one\n// write operation at some point later.\nfunc (t *tScreen) writeString(s string) {\n\tif t.buffering {\n\t\t_, _ = io.WriteString(&t.buf, s)\n\t} else {\n\t\t_, _ = io.WriteString(t.tty, s)\n\t}\n}\n\nfunc (t *tScreen) TPuts(s string) {\n\tif t.buffering {\n\t\tt.ti.TPuts(&t.buf, s)\n\t} else {\n\t\tt.ti.TPuts(t.tty, s)\n\t}\n}\n\nfunc (t *tScreen) Show() {\n\tt.Lock()\n\tif !t.fini {\n\t\tt.resize()\n\t\tt.draw()\n\t}\n\tt.Unlock()\n}\n\nfunc (t *tScreen) clearScreen() {\n\tt.TPuts(t.ti.AttrOff)\n\tt.TPuts(t.exitUrl)\n\tfg, bg, _ := t.style.Decompose()\n\t_ = t.sendFgBg(fg, bg, AttrNone)\n\tt.TPuts(t.ti.Clear)\n\tt.clear = false\n}\n\nfunc (t *tScreen) hideCursor() {\n\t// does not update cursor position\n\tif t.ti.HideCursor != \"\" {\n\t\tt.TPuts(t.ti.HideCursor)\n\t} else {\n\t\t// No way to hide cursor, stick it\n\t\t// at bottom right of screen\n\t\tt.cx, t.cy = t.cells.Size()\n\t\tt.TPuts(t.ti.TGoto(t.cx, t.cy))\n\t}\n}\n\nfunc (t *tScreen) draw() {\n\t// clobber cursor position, because we're going to change it all\n\tt.cx = -1\n\tt.cy = -1\n\t// make no style assumptions\n\tt.curstyle = styleInvalid\n\n\tt.buf.Reset()\n\tt.buffering = true\n\tdefer func() {\n\t\tt.buffering = false\n\t}()\n\n\t// hide the cursor while we move stuff around\n\tt.hideCursor()\n\n\tif t.clear {\n\t\tt.clearScreen()\n\t}\n\n\tfor y := 0; y < t.h; y++ {\n\t\tfor x := 0; x < t.w; x++ {\n\t\t\twidth := t.drawCell(x, y)\n\t\t\tif width > 1 {\n\t\t\t\tif x+1 < t.w {\n\t\t\t\t\t// this is necessary so that if we ever\n\t\t\t\t\t// go back to drawing that cell, we\n\t\t\t\t\t// actually will *draw* it.\n\t\t\t\t\tt.cells.SetDirty(x+1, y, true)\n\t\t\t\t}\n\t\t\t}\n\t\t\tx += width - 1\n\t\t}\n\t}\n\n\t// restore the cursor\n\tt.showCursor()\n\n\t_, _ = t.buf.WriteTo(t.tty)\n}\n\nfunc (t *tScreen) EnableMouse(flags ...MouseFlags) {\n\tvar f MouseFlags\n\tflagsPresent := false\n\tfor _, flag := range flags {\n\t\tf |= flag\n\t\tflagsPresent = true\n\t}\n\tif !flagsPresent {\n\t\tf = MouseMotionEvents | MouseDragEvents | MouseButtonEvents\n\t}\n\n\tt.Lock()\n\tt.mouseFlags = f\n\tt.enableMouse(f)\n\tt.Unlock()\n}\n\nfunc (t *tScreen) enableMouse(f MouseFlags) {\n\t// Rather than using terminfo to find mouse escape sequences, we rely on the fact that\n\t// pretty much *every* terminal that supports mouse tracking follows the\n\t// XTerm standards (the modern ones).\n\tif len(t.mouse) != 0 {\n\t\t// start by disabling all tracking.\n\t\tt.TPuts(\"\\x1b[?1000l\\x1b[?1002l\\x1b[?1003l\\x1b[?1006l\")\n\t\tif f&MouseButtonEvents != 0 {\n\t\t\tt.TPuts(\"\\x1b[?1000h\")\n\t\t}\n\t\tif f&MouseDragEvents != 0 {\n\t\t\tt.TPuts(\"\\x1b[?1002h\")\n\t\t}\n\t\tif f&MouseMotionEvents != 0 {\n\t\t\tt.TPuts(\"\\x1b[?1003h\")\n\t\t}\n\t\tif f&(MouseButtonEvents|MouseDragEvents|MouseMotionEvents) != 0 {\n\t\t\tt.TPuts(\"\\x1b[?1006h\")\n\t\t}\n\t}\n\n}\n\nfunc (t *tScreen) DisableMouse() {\n\tt.Lock()\n\tt.mouseFlags = 0\n\tt.enableMouse(0)\n\tt.Unlock()\n}\n\nfunc (t *tScreen) EnablePaste() {\n\tt.Lock()\n\tt.pasteEnabled = true\n\tt.enablePasting(true)\n\tt.Unlock()\n}\n\nfunc (t *tScreen) DisablePaste() {\n\tt.Lock()\n\tt.pasteEnabled = false\n\tt.enablePasting(false)\n\tt.Unlock()\n}\n\nfunc (t *tScreen) enablePasting(on bool) {\n\tvar s string\n\tif on {\n\t\ts = t.enablePaste\n\t} else {\n\t\ts = t.disablePaste\n\t}\n\tif s != \"\" {\n\t\tt.TPuts(s)\n\t}\n}\n\nfunc (t *tScreen) EnableFocus() {\n\tt.Lock()\n\tt.focusEnabled = true\n\tt.enableFocusReporting()\n\tt.Unlock()\n}\n\nfunc (t *tScreen) DisableFocus() {\n\tt.Lock()\n\tt.focusEnabled = false\n\tt.disableFocusReporting()\n\tt.Unlock()\n}\n\nfunc (t *tScreen) enableFocusReporting() {\n\tif t.enableFocus != \"\" {\n\t\tt.TPuts(t.enableFocus)\n\t}\n}\n\nfunc (t *tScreen) disableFocusReporting() {\n\tif t.disableFocus != \"\" {\n\t\tt.TPuts(t.disableFocus)\n\t}\n}\n\nfunc (t *tScreen) Size() (int, int) {\n\tt.Lock()\n\tw, h := t.w, t.h\n\tt.Unlock()\n\treturn w, h\n}\n\nfunc (t *tScreen) resize() {\n\tws, err := t.tty.WindowSize()\n\tif err != nil {\n\t\treturn\n\t}\n\tif ws.Width == t.w && ws.Height == t.h {\n\t\treturn\n\t}\n\tt.cx = -1\n\tt.cy = -1\n\n\tt.cells.Resize(ws.Width, ws.Height)\n\tt.cells.Invalidate()\n\tt.h = ws.Height\n\tt.w = ws.Width\n\tev := &EventResize{t: time.Now(), ws: ws}\n\tselect {\n\tcase t.eventQ <- ev:\n\tdefault:\n\t}\n}\n\nfunc (t *tScreen) Colors() int {\n\t// this doesn't change, no need for lock\n\tif t.truecolor {\n\t\treturn 1 << 24\n\t}\n\treturn t.ti.Colors\n}\n\n// nColors returns the size of the built-in palette.\n// This is distinct from Colors(), as it will generally\n// always be a small number. (<= 256)\nfunc (t *tScreen) nColors() int {\n\treturn t.ti.Colors\n}\n\n// vtACSNames is a map of bytes defined by terminfo that are used in\n// the terminals Alternate Character Set to represent other glyphs.\n// For example, the upper left corner of the box drawing set can be\n// displayed by printing \"l\" while in the alternate character set.\n// It's not quite that simple, since the \"l\" is the terminfo name,\n// and it may be necessary to use a different character based on\n// the terminal implementation (or the terminal may lack support for\n// this altogether).  See buildAcsMap below for detail.\nvar vtACSNames = map[byte]rune{\n\t'+': RuneRArrow,\n\t',': RuneLArrow,\n\t'-': RuneUArrow,\n\t'.': RuneDArrow,\n\t'0': RuneBlock,\n\t'`': RuneDiamond,\n\t'a': RuneCkBoard,\n\t'b': '␉', // VT100, Not defined by terminfo\n\t'c': '␌', // VT100, Not defined by terminfo\n\t'd': '␋', // VT100, Not defined by terminfo\n\t'e': '␊', // VT100, Not defined by terminfo\n\t'f': RuneDegree,\n\t'g': RunePlMinus,\n\t'h': RuneBoard,\n\t'i': RuneLantern,\n\t'j': RuneLRCorner,\n\t'k': RuneURCorner,\n\t'l': RuneULCorner,\n\t'm': RuneLLCorner,\n\t'n': RunePlus,\n\t'o': RuneS1,\n\t'p': RuneS3,\n\t'q': RuneHLine,\n\t'r': RuneS7,\n\t's': RuneS9,\n\t't': RuneLTee,\n\t'u': RuneRTee,\n\t'v': RuneBTee,\n\t'w': RuneTTee,\n\t'x': RuneVLine,\n\t'y': RuneLEqual,\n\t'z': RuneGEqual,\n\t'{': RunePi,\n\t'|': RuneNEqual,\n\t'}': RuneSterling,\n\t'~': RuneBullet,\n}\n\n// buildAcsMap builds a map of characters that we translate from Unicode to\n// alternate character encodings.  To do this, we use the standard VT100 ACS\n// maps.  This is only done if the terminal lacks support for Unicode; we\n// always prefer to emit Unicode glyphs when we are able.\nfunc (t *tScreen) buildAcsMap() {\n\tacsstr := t.ti.AltChars\n\tt.acs = make(map[rune]string)\n\tfor len(acsstr) > 2 {\n\t\tsrcv := acsstr[0]\n\t\tdstv := string(acsstr[1])\n\t\tif r, ok := vtACSNames[srcv]; ok {\n\t\t\tt.acs[r] = t.ti.EnterAcs + dstv + t.ti.ExitAcs\n\t\t}\n\t\tacsstr = acsstr[2:]\n\t}\n}\n\nfunc (t *tScreen) clip(x, y int) (int, int) {\n\tw, h := t.cells.Size()\n\tif x < 0 {\n\t\tx = 0\n\t}\n\tif y < 0 {\n\t\ty = 0\n\t}\n\tif x > w-1 {\n\t\tx = w - 1\n\t}\n\tif y > h-1 {\n\t\ty = h - 1\n\t}\n\treturn x, y\n}\n\n// buildMouseEvent returns an event based on the supplied coordinates and button\n// state. Note that the screen's mouse button state is updated based on the\n// input to this function (i.e. it mutates the receiver).\nfunc (t *tScreen) buildMouseEvent(x, y, btn int) *EventMouse {\n\n\t// XTerm mouse events only report at most one button at a time,\n\t// which may include a wheel button.  Wheel motion events are\n\t// reported as single impulses, while other button events are reported\n\t// as separate press & release events.\n\n\tbutton := ButtonNone\n\tmod := ModNone\n\n\t// Mouse wheel has bit 6 set, no release events.  It should be noted\n\t// that wheel events are sometimes misdelivered as mouse button events\n\t// during a click-drag, so we debounce these, considering them to be\n\t// button press events unless we see an intervening release event.\n\tswitch btn & 0x43 {\n\tcase 0:\n\t\tbutton = Button1\n\tcase 1:\n\t\tbutton = Button3 // Note we prefer to treat right as button 2\n\tcase 2:\n\t\tbutton = Button2 // And the middle button as button 3\n\tcase 3:\n\t\tbutton = ButtonNone\n\tcase 0x40:\n\t\tbutton = WheelUp\n\tcase 0x41:\n\t\tbutton = WheelDown\n\t}\n\n\tif btn&0x4 != 0 {\n\t\tmod |= ModShift\n\t}\n\tif btn&0x8 != 0 {\n\t\tmod |= ModAlt\n\t}\n\tif btn&0x10 != 0 {\n\t\tmod |= ModCtrl\n\t}\n\n\t// Some terminals will report mouse coordinates outside the\n\t// screen, especially with click-drag events.  Clip the coordinates\n\t// to the screen in that case.\n\tx, y = t.clip(x, y)\n\n\treturn NewEventMouse(x, y, button, mod)\n}\n\n// parseSgrMouse attempts to locate an SGR mouse record at the start of the\n// buffer.  It returns true, true if it found one, and the associated bytes\n// be removed from the buffer.  It returns true, false if the buffer might\n// contain such an event, but more bytes are necessary (partial match), and\n// false, false if the content is definitely *not* an SGR mouse record.\nfunc (t *tScreen) parseSgrMouse(buf *bytes.Buffer, evs *[]Event) (bool, bool) {\n\n\tb := buf.Bytes()\n\n\tvar x, y, btn, state int\n\tdig := false\n\tneg := false\n\tmotion := false\n\tscroll := false\n\ti := 0\n\tval := 0\n\n\tfor i = range b {\n\t\tswitch b[i] {\n\t\tcase '\\x1b':\n\t\t\tif state != 0 {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tstate = 1\n\n\t\tcase '\\x9b':\n\t\t\tif state != 0 {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tstate = 2\n\n\t\tcase '[':\n\t\t\tif state != 1 {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tstate = 2\n\n\t\tcase '<':\n\t\t\tif state != 2 {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tval = 0\n\t\t\tdig = false\n\t\t\tneg = false\n\t\t\tstate = 3\n\n\t\tcase '-':\n\t\t\tif state != 3 && state != 4 && state != 5 {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tif dig || neg {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tneg = true // stay in state\n\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\t\tif state != 3 && state != 4 && state != 5 {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tval *= 10\n\t\t\tval += int(b[i] - '0')\n\t\t\tdig = true // stay in state\n\n\t\tcase ';':\n\t\t\tif neg {\n\t\t\t\tval = -val\n\t\t\t}\n\t\t\tswitch state {\n\t\t\tcase 3:\n\t\t\t\tbtn, val = val, 0\n\t\t\t\tneg, dig, state = false, false, 4\n\t\t\tcase 4:\n\t\t\t\tx, val = val-1, 0\n\t\t\t\tneg, dig, state = false, false, 5\n\t\t\tdefault:\n\t\t\t\treturn false, false\n\t\t\t}\n\n\t\tcase 'm', 'M':\n\t\t\tif state != 5 {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tif neg {\n\t\t\t\tval = -val\n\t\t\t}\n\t\t\ty = val - 1\n\n\t\t\tmotion = (btn & 32) != 0\n\t\t\tscroll = (btn & 0x42) == 0x40\n\t\t\tbtn &^= 32\n\t\t\tif b[i] == 'm' {\n\t\t\t\t// mouse release, clear all buttons\n\t\t\t\tbtn |= 3\n\t\t\t\tbtn &^= 0x40\n\t\t\t\tt.buttondn = false\n\t\t\t} else if motion {\n\t\t\t\t/*\n\t\t\t\t * Some broken terminals appear to send\n\t\t\t\t * mouse button one motion events, instead of\n\t\t\t\t * encoding 35 (no buttons) into these events.\n\t\t\t\t * We resolve these by looking for a non-motion\n\t\t\t\t * event first.\n\t\t\t\t */\n\t\t\t\tif !t.buttondn {\n\t\t\t\t\tbtn |= 3\n\t\t\t\t\tbtn &^= 0x40\n\t\t\t\t}\n\t\t\t} else if !scroll {\n\t\t\t\tt.buttondn = true\n\t\t\t}\n\t\t\t// consume the event bytes\n\t\t\tfor i >= 0 {\n\t\t\t\t_, _ = buf.ReadByte()\n\t\t\t\ti--\n\t\t\t}\n\t\t\t*evs = append(*evs, t.buildMouseEvent(x, y, btn))\n\t\t\treturn true, true\n\t\t}\n\t}\n\n\t// incomplete & inconclusive at this point\n\treturn true, false\n}\n\nfunc (t *tScreen) parseFocus(buf *bytes.Buffer, evs *[]Event) (bool, bool) {\n\tstate := 0\n\tb := buf.Bytes()\n\tfor i := range b {\n\t\tswitch state {\n\t\tcase 0:\n\t\t\tif b[i] != '\\x1b' {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tstate = 1\n\t\tcase 1:\n\t\t\tif b[i] != '[' {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tstate = 2\n\t\tcase 2:\n\t\t\tif b[i] != 'I' && b[i] != 'O' {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\t*evs = append(*evs, NewEventFocus(b[i] == 'I'))\n\t\t\t_, _ = buf.ReadByte()\n\t\t\t_, _ = buf.ReadByte()\n\t\t\t_, _ = buf.ReadByte()\n\t\t\treturn true, true\n\t\t}\n\t}\n\treturn true, false\n}\n\n// parseXtermMouse is like parseSgrMouse, but it parses a legacy\n// X11 mouse record.\nfunc (t *tScreen) parseXtermMouse(buf *bytes.Buffer, evs *[]Event) (bool, bool) {\n\n\tb := buf.Bytes()\n\n\tstate := 0\n\tbtn := 0\n\tx := 0\n\ty := 0\n\n\tfor i := range b {\n\t\tswitch state {\n\t\tcase 0:\n\t\t\tswitch b[i] {\n\t\t\tcase '\\x1b':\n\t\t\t\tstate = 1\n\t\t\tcase '\\x9b':\n\t\t\t\tstate = 2\n\t\t\tdefault:\n\t\t\t\treturn false, false\n\t\t\t}\n\t\tcase 1:\n\t\t\tif b[i] != '[' {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tstate = 2\n\t\tcase 2:\n\t\t\tif b[i] != 'M' {\n\t\t\t\treturn false, false\n\t\t\t}\n\t\t\tstate++\n\t\tcase 3:\n\t\t\tbtn = int(b[i])\n\t\t\tstate++\n\t\tcase 4:\n\t\t\tx = int(b[i]) - 32 - 1\n\t\t\tstate++\n\t\tcase 5:\n\t\t\ty = int(b[i]) - 32 - 1\n\t\t\tfor i >= 0 {\n\t\t\t\t_, _ = buf.ReadByte()\n\t\t\t\ti--\n\t\t\t}\n\t\t\t*evs = append(*evs, t.buildMouseEvent(x, y, btn))\n\t\t\treturn true, true\n\t\t}\n\t}\n\treturn true, false\n}\n\nfunc (t *tScreen) parseFunctionKey(buf *bytes.Buffer, evs *[]Event) (bool, bool) {\n\tb := buf.Bytes()\n\tpartial := false\n\tfor e, k := range t.keycodes {\n\t\tesc := []byte(e)\n\t\tif (len(esc) == 1) && (esc[0] == '\\x1b') {\n\t\t\tcontinue\n\t\t}\n\t\tif bytes.HasPrefix(b, esc) {\n\t\t\t// matched\n\t\t\tvar r rune\n\t\t\tif len(esc) == 1 {\n\t\t\t\tr = rune(b[0])\n\t\t\t}\n\t\t\tmod := k.mod\n\t\t\tif t.escaped {\n\t\t\t\tmod |= ModAlt\n\t\t\t\tt.escaped = false\n\t\t\t}\n\t\t\tswitch k.key {\n\t\t\tcase keyPasteStart:\n\t\t\t\t*evs = append(*evs, NewEventPaste(true))\n\t\t\tcase keyPasteEnd:\n\t\t\t\t*evs = append(*evs, NewEventPaste(false))\n\t\t\tdefault:\n\t\t\t\t*evs = append(*evs, NewEventKey(k.key, r, mod))\n\t\t\t}\n\t\t\tfor i := 0; i < len(esc); i++ {\n\t\t\t\t_, _ = buf.ReadByte()\n\t\t\t}\n\t\t\treturn true, true\n\t\t}\n\t\tif bytes.HasPrefix(esc, b) {\n\t\t\tpartial = true\n\t\t}\n\t}\n\treturn partial, false\n}\n\nfunc (t *tScreen) parseRune(buf *bytes.Buffer, evs *[]Event) (bool, bool) {\n\tb := buf.Bytes()\n\tif b[0] >= ' ' && b[0] <= 0x7F {\n\t\t// printable ASCII easy to deal with -- no encodings\n\t\tmod := ModNone\n\t\tif t.escaped {\n\t\t\tmod = ModAlt\n\t\t\tt.escaped = false\n\t\t}\n\t\t*evs = append(*evs, NewEventKey(KeyRune, rune(b[0]), mod))\n\t\t_, _ = buf.ReadByte()\n\t\treturn true, true\n\t}\n\n\tif b[0] < 0x80 {\n\t\t// Low numbered values are control keys, not runes.\n\t\treturn false, false\n\t}\n\n\tutf := make([]byte, 12)\n\tfor l := 1; l <= len(b); l++ {\n\t\tt.decoder.Reset()\n\t\tnOut, nIn, e := t.decoder.Transform(utf, b[:l], true)\n\t\tif e == transform.ErrShortSrc {\n\t\t\tcontinue\n\t\t}\n\t\tif nOut != 0 {\n\t\t\tr, _ := utf8.DecodeRune(utf[:nOut])\n\t\t\tif r != utf8.RuneError {\n\t\t\t\tmod := ModNone\n\t\t\t\tif t.escaped {\n\t\t\t\t\tmod = ModAlt\n\t\t\t\t\tt.escaped = false\n\t\t\t\t}\n\t\t\t\t*evs = append(*evs, NewEventKey(KeyRune, r, mod))\n\t\t\t}\n\t\t\tfor nIn > 0 {\n\t\t\t\t_, _ = buf.ReadByte()\n\t\t\t\tnIn--\n\t\t\t}\n\t\t\treturn true, true\n\t\t}\n\t}\n\t// Looks like potential escape\n\treturn true, false\n}\n\nfunc (t *tScreen) scanInput(buf *bytes.Buffer, expire bool) {\n\tevs := t.collectEventsFromInput(buf, expire)\n\n\tfor _, ev := range evs {\n\t\tselect {\n\t\tcase t.eventQ <- ev:\n\t\tcase <-t.quit:\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// Return an array of Events extracted from the supplied buffer. This is done\n// while holding the screen's lock - the events can then be queued for\n// application processing with the lock released.\nfunc (t *tScreen) collectEventsFromInput(buf *bytes.Buffer, expire bool) []Event {\n\n\tres := make([]Event, 0, 20)\n\n\tt.Lock()\n\tdefer t.Unlock()\n\n\tfor {\n\t\tb := buf.Bytes()\n\t\tif len(b) == 0 {\n\t\t\tbuf.Reset()\n\t\t\treturn res\n\t\t}\n\n\t\tpartials := 0\n\n\t\tif part, comp := t.parseRune(buf, &res); comp {\n\t\t\tcontinue\n\t\t} else if part {\n\t\t\tpartials++\n\t\t}\n\n\t\tif part, comp := t.parseFunctionKey(buf, &res); comp {\n\t\t\tcontinue\n\t\t} else if part {\n\t\t\tpartials++\n\t\t}\n\n\t\tif part, comp := t.parseFocus(buf, &res); comp {\n\t\t\tcontinue\n\t\t} else if part {\n\t\t\tpartials++\n\t\t}\n\n\t\t// Only parse mouse records if this term claims to have\n\t\t// mouse support\n\n\t\tif t.ti.Mouse != \"\" {\n\t\t\tif part, comp := t.parseXtermMouse(buf, &res); comp {\n\t\t\t\tcontinue\n\t\t\t} else if part {\n\t\t\t\tpartials++\n\t\t\t}\n\n\t\t\tif part, comp := t.parseSgrMouse(buf, &res); comp {\n\t\t\t\tcontinue\n\t\t\t} else if part {\n\t\t\t\tpartials++\n\t\t\t}\n\t\t}\n\n\t\tif partials == 0 || expire {\n\t\t\tif b[0] == '\\x1b' {\n\t\t\t\tif len(b) == 1 {\n\t\t\t\t\tres = append(res, NewEventKey(KeyEsc, 0, ModNone))\n\t\t\t\t\tt.escaped = false\n\t\t\t\t} else {\n\t\t\t\t\tt.escaped = true\n\t\t\t\t}\n\t\t\t\t_, _ = buf.ReadByte()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// Nothing was going to match, or we timed-out\n\t\t\t// waiting for more data -- just deliver the characters\n\t\t\t// to the app & let them sort it out.  Possibly we\n\t\t\t// should only do this for control characters like ESC.\n\t\t\tby, _ := buf.ReadByte()\n\t\t\tmod := ModNone\n\t\t\tif t.escaped {\n\t\t\t\tt.escaped = false\n\t\t\t\tmod = ModAlt\n\t\t\t}\n\t\t\tres = append(res, NewEventKey(KeyRune, rune(by), mod))\n\t\t\tcontinue\n\t\t}\n\n\t\t// well we have some partial data, wait until we get\n\t\t// some more\n\t\tbreak\n\t}\n\n\treturn res\n}\n\nfunc (t *tScreen) mainLoop(stopQ chan struct{}) {\n\tdefer t.wg.Done()\n\tbuf := &bytes.Buffer{}\n\tfor {\n\t\tselect {\n\t\tcase <-stopQ:\n\t\t\treturn\n\t\tcase <-t.quit:\n\t\t\treturn\n\t\tcase <-t.resizeQ:\n\t\t\tt.Lock()\n\t\t\tt.cx = -1\n\t\t\tt.cy = -1\n\t\t\tt.resize()\n\t\t\tt.cells.Invalidate()\n\t\t\tt.draw()\n\t\t\tt.Unlock()\n\t\t\tcontinue\n\t\tcase <-t.keytimer.C:\n\t\t\t// If the timer fired, and the current time\n\t\t\t// is after the expiration of the escape sequence,\n\t\t\t// then we assume the escape sequence reached its\n\t\t\t// conclusion, and process the chunk independently.\n\t\t\t// This lets us detect conflicts such as a lone ESC.\n\t\t\tif buf.Len() > 0 {\n\t\t\t\tif time.Now().After(t.keyexpire) {\n\t\t\t\t\tt.scanInput(buf, true)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif buf.Len() > 0 {\n\t\t\t\tif !t.keytimer.Stop() {\n\t\t\t\t\tselect {\n\t\t\t\t\tcase <-t.keytimer.C:\n\t\t\t\t\tdefault:\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tt.keytimer.Reset(time.Millisecond * 50)\n\t\t\t}\n\t\tcase chunk := <-t.keychan:\n\t\t\tbuf.Write(chunk)\n\t\t\tt.keyexpire = time.Now().Add(time.Millisecond * 50)\n\t\t\tt.scanInput(buf, false)\n\t\t\tif !t.keytimer.Stop() {\n\t\t\t\tselect {\n\t\t\t\tcase <-t.keytimer.C:\n\t\t\t\tdefault:\n\t\t\t\t}\n\t\t\t}\n\t\t\tif buf.Len() > 0 {\n\t\t\t\tt.keytimer.Reset(time.Millisecond * 50)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (t *tScreen) inputLoop(stopQ chan struct{}) {\n\n\tdefer t.wg.Done()\n\tfor {\n\t\tselect {\n\t\tcase <-stopQ:\n\t\t\treturn\n\t\tdefault:\n\t\t}\n\t\tchunk := make([]byte, 128)\n\t\tn, e := t.tty.Read(chunk)\n\t\tswitch e {\n\t\tcase nil:\n\t\tdefault:\n\t\t\tt.Lock()\n\t\t\trunning := t.running\n\t\t\tt.Unlock()\n\t\t\tif running {\n\t\t\t\tselect {\n\t\t\t\tcase t.eventQ <- NewEventError(e):\n\t\t\t\tcase <-t.quit:\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tif n > 0 {\n\t\t\tt.keychan <- chunk[:n]\n\t\t}\n\t}\n}\n\nfunc (t *tScreen) Sync() {\n\tt.Lock()\n\tt.cx = -1\n\tt.cy = -1\n\tif !t.fini {\n\t\tt.resize()\n\t\tt.clear = true\n\t\tt.cells.Invalidate()\n\t\tt.draw()\n\t}\n\tt.Unlock()\n}\n\nfunc (t *tScreen) CharacterSet() string {\n\treturn t.charset\n}\n\nfunc (t *tScreen) RegisterRuneFallback(orig rune, fallback string) {\n\tt.Lock()\n\tt.fallback[orig] = fallback\n\tt.Unlock()\n}\n\nfunc (t *tScreen) UnregisterRuneFallback(orig rune) {\n\tt.Lock()\n\tdelete(t.fallback, orig)\n\tt.Unlock()\n}\n\nfunc (t *tScreen) CanDisplay(r rune, checkFallbacks bool) bool {\n\n\tif enc := t.encoder; enc != nil {\n\t\tnb := make([]byte, 6)\n\t\tob := make([]byte, 6)\n\t\tnum := utf8.EncodeRune(ob, r)\n\n\t\tenc.Reset()\n\t\tdst, _, err := enc.Transform(nb, ob[:num], true)\n\t\tif dst != 0 && err == nil && nb[0] != '\\x1A' {\n\t\t\treturn true\n\t\t}\n\t}\n\t// Terminal fallbacks always permitted, since we assume they are\n\t// basically nearly perfect renditions.\n\tif _, ok := t.acs[r]; ok {\n\t\treturn true\n\t}\n\tif !checkFallbacks {\n\t\treturn false\n\t}\n\tif _, ok := t.fallback[r]; ok {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (t *tScreen) HasMouse() bool {\n\treturn len(t.mouse) != 0\n}\n\nfunc (t *tScreen) HasKey(k Key) bool {\n\tif k == KeyRune {\n\t\treturn true\n\t}\n\treturn t.keyexist[k]\n}\n\nfunc (t *tScreen) SetSize(w, h int) {\n\tif t.setWinSize != \"\" {\n\t\tt.TPuts(t.ti.TParm(t.setWinSize, w, h))\n\t}\n\tt.cells.Invalidate()\n\tt.resize()\n}\n\nfunc (t *tScreen) Resize(int, int, int, int) {}\n\nfunc (t *tScreen) Suspend() error {\n\tt.disengage()\n\treturn nil\n}\n\nfunc (t *tScreen) Resume() error {\n\treturn t.engage()\n}\n\nfunc (t *tScreen) Tty() (Tty, bool) {\n\treturn t.tty, true\n}\n\n// engage is used to place the terminal in raw mode and establish screen size, etc.\n// Think of this is as tcell \"engaging\" the clutch, as it's going to be driving the\n// terminal interface.\nfunc (t *tScreen) engage() error {\n\tt.Lock()\n\tdefer t.Unlock()\n\tif t.tty == nil {\n\t\treturn ErrNoScreen\n\t}\n\tt.tty.NotifyResize(func() {\n\t\tselect {\n\t\tcase t.resizeQ <- true:\n\t\tdefault:\n\t\t}\n\t})\n\tif t.running {\n\t\treturn errors.New(\"already engaged\")\n\t}\n\tif err := t.tty.Start(); err != nil {\n\t\treturn err\n\t}\n\tt.running = true\n\tif ws, err := t.tty.WindowSize(); err == nil && ws.Width != 0 && ws.Height != 0 {\n\t\tt.cells.Resize(ws.Width, ws.Height)\n\t}\n\tstopQ := make(chan struct{})\n\tt.stopQ = stopQ\n\tt.enableMouse(t.mouseFlags)\n\tt.enablePasting(t.pasteEnabled)\n\tif t.focusEnabled {\n\t\tt.enableFocusReporting()\n\t}\n\n\tti := t.ti\n\tif os.Getenv(\"TCELL_ALTSCREEN\") != \"disable\" {\n\t\t// Technically this may not be right, but every terminal we know about\n\t\t// (even Wyse 60) uses this to enter the alternate screen buffer, and\n\t\t// possibly save and restore the window title and/or icon.\n\t\t// (In theory there could be terminals that don't support X,Y cursor\n\t\t// positions without a setup command, but we don't support them.)\n\t\tt.TPuts(ti.EnterCA)\n\t}\n\tt.TPuts(ti.EnterKeypad)\n\tt.TPuts(ti.HideCursor)\n\tt.TPuts(ti.EnableAcs)\n\tt.TPuts(ti.DisableAutoMargin)\n\tt.TPuts(ti.Clear)\n\n\tt.wg.Add(2)\n\tgo t.inputLoop(stopQ)\n\tgo t.mainLoop(stopQ)\n\treturn nil\n}\n\n// disengage is used to release the terminal back to support from the caller.\n// Think of this as tcell disengaging the clutch, so that another application\n// can take over the terminal interface.  This restores the TTY mode that was\n// present when the application was first started.\nfunc (t *tScreen) disengage() {\n\n\tt.Lock()\n\tif !t.running {\n\t\tt.Unlock()\n\t\treturn\n\t}\n\tt.running = false\n\tstopQ := t.stopQ\n\tclose(stopQ)\n\t_ = t.tty.Drain()\n\tt.Unlock()\n\n\tt.tty.NotifyResize(nil)\n\t// wait for everything to shut down\n\tt.wg.Wait()\n\n\t// shutdown the screen and disable special modes (e.g. mouse and bracketed paste)\n\tti := t.ti\n\tt.cells.Resize(0, 0)\n\tt.TPuts(ti.ShowCursor)\n\tif t.cursorStyles != nil && t.cursorStyle != CursorStyleDefault {\n\t\tt.TPuts(t.cursorStyles[CursorStyleDefault])\n\t}\n\tt.TPuts(ti.ResetFgBg)\n\tt.TPuts(ti.AttrOff)\n\tt.TPuts(ti.ExitKeypad)\n\tt.TPuts(ti.EnableAutoMargin)\n\tif os.Getenv(\"TCELL_ALTSCREEN\") != \"disable\" {\n\t\tt.TPuts(ti.Clear) // only needed if ExitCA is empty\n\t\tt.TPuts(ti.ExitCA)\n\t}\n\tt.enableMouse(0)\n\tt.enablePasting(false)\n\tt.disableFocusReporting()\n\n\t_ = t.tty.Stop()\n}\n\n// Beep emits a beep to the terminal.\nfunc (t *tScreen) Beep() error {\n\tt.writeString(string(byte(7)))\n\treturn nil\n}\n\n// finalize is used to at application shutdown, and restores the terminal\n// to it's initial state.  It should not be called more than once.\nfunc (t *tScreen) finalize() {\n\tt.disengage()\n\t_ = t.tty.Close()\n}\n\nfunc (t *tScreen) StopQ() <-chan struct{} {\n\treturn t.quit\n}\n\nfunc (t *tScreen) EventQ() chan Event {\n\treturn t.eventQ\n}\n\nfunc (t *tScreen) GetCells() *CellBuffer {\n\treturn &t.cells\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/tscreen_stub.go",
    "content": "//go:build plan9 || windows\n// +build plan9 windows\n\n// Copyright 2022 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\n// NB: We might someday wish to move Windows to this model.   However,\n// that would probably mean sacrificing some of the richer key reporting\n// that we can obtain with the console API present on Windows.\n\nfunc (t *tScreen) initialize() error {\n\tif t.tty == nil {\n\t\treturn ErrNoScreen\n\t}\n\t// If a tty was supplied (custom), it should work.\n\t// Custom screen implementations will need to provide a TTY\n\t// implementation that we can use.\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/tscreen_unix.go",
    "content": "// Copyright 2021 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos\n\npackage tcell\n\n// initialize is used at application startup, and sets up the initial values\n// including file descriptors used for terminals and saving the initial state\n// so that it can be restored when the application terminates.\nfunc (t *tScreen) initialize() error {\n\tvar err error\n\tif t.tty == nil {\n\t\tt.tty, err = NewDevTty()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/tty.go",
    "content": "// Copyright 2021 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage tcell\n\nimport \"io\"\n\n// Tty is an abstraction of a tty (traditionally \"teletype\").  This allows applications to\n// provide for alternate backends, as there are situations where the traditional /dev/tty\n// does not work, or where more flexible handling is required.  This interface is for use\n// with the terminfo-style based API.  It extends the io.ReadWriter API.  It is reasonable\n// that the implementation might choose to use different underlying files for the Reader\n// and Writer sides of this API, as part of it's internal implementation.\ntype Tty interface {\n\t// Start is used to activate the Tty for use.  Upon return the terminal should be\n\t// in raw mode, non-blocking, etc.  The implementation should take care of saving\n\t// any state that is required so that it may be restored when Stop is called.\n\tStart() error\n\n\t// Stop is used to stop using this Tty instance.  This may be a suspend, so that other\n\t// terminal based applications can run in the foreground.  Implementations should\n\t// restore any state collected at Start(), and return to ordinary blocking mode, etc.\n\t// Drain is called first to drain the input.  Once this is called, no more Read\n\t// or Write calls will be made until Start is called again.\n\tStop() error\n\n\t// Drain is called before Stop, and ensures that the reader will wake up appropriately\n\t// if it was blocked.  This workaround is required for /dev/tty on certain UNIX systems\n\t// to ensure that Read() does not block forever.  This typically arranges for the tty driver\n\t// to send data immediately (e.g. VMIN and VTIME both set zero) and sets a deadline on input.\n\t// Implementations may reasonably make this a no-op.  There will still be control sequences\n\t// emitted between the time this is called, and when Stop is called.\n\tDrain() error\n\n\t// NotifyResize is used register a callback when the tty thinks the dimensions have\n\t// changed.  The standard UNIX implementation links this to a handler for SIGWINCH.\n\t// If the supplied callback is nil, then any handler should be unregistered.\n\tNotifyResize(cb func())\n\n\t// WindowSize is called to determine the terminal dimensions.  This might be determined\n\t// by an ioctl or other means.\n\tWindowSize() (WindowSize, error)\n\n\tio.ReadWriteCloser\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/tty_unix.go",
    "content": "// Copyright 2021 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos\n\npackage tcell\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"os/signal\"\n\t\"strconv\"\n\t\"sync\"\n\t\"syscall\"\n\t\"time\"\n\n\t\"golang.org/x/sys/unix\"\n\t\"golang.org/x/term\"\n)\n\n// devTty is an implementation of the Tty API based upon /dev/tty.\ntype devTty struct {\n\tfd    int\n\tf     *os.File\n\tof    *os.File // the first open of /dev/tty\n\tsaved *term.State\n\tsig   chan os.Signal\n\tcb    func()\n\tstopQ chan struct{}\n\tdev   string\n\twg    sync.WaitGroup\n\tl     sync.Mutex\n}\n\nfunc (tty *devTty) Read(b []byte) (int, error) {\n\treturn tty.f.Read(b)\n}\n\nfunc (tty *devTty) Write(b []byte) (int, error) {\n\treturn tty.f.Write(b)\n}\n\nfunc (tty *devTty) Close() error {\n\treturn tty.f.Close()\n}\n\nfunc (tty *devTty) Start() error {\n\ttty.l.Lock()\n\tdefer tty.l.Unlock()\n\n\t// We open another copy of /dev/tty.  This is a workaround for unusual behavior\n\t// observed in macOS, apparently caused when a subshell (for example) closes our\n\t// own tty device (when it exits for example).  Getting a fresh new one seems to\n\t// resolve the problem.  (We believe this is a bug in the macOS tty driver that\n\t// fails to account for dup() references to the same file before applying close()\n\t// related behaviors to the tty.)  We're also holding the original copy we opened\n\t// since closing that might have deleterious effects as well.  The upshot is that\n\t// we will have up to two separate file handles open on /dev/tty.  (Note that when\n\t// using stdin/stdout instead of /dev/tty this problem is not observed.)\n\tvar err error\n\tif tty.f, err = os.OpenFile(tty.dev, os.O_RDWR, 0); err != nil {\n\t\treturn err\n\t}\n\n\tif !term.IsTerminal(tty.fd) {\n\t\treturn errors.New(\"device is not a terminal\")\n\t}\n\n\t_ = tty.f.SetReadDeadline(time.Time{})\n\tsaved, err := term.MakeRaw(tty.fd) // also sets vMin and vTime\n\tif err != nil {\n\t\treturn err\n\t}\n\ttty.saved = saved\n\n\ttty.stopQ = make(chan struct{})\n\ttty.wg.Add(1)\n\tgo func(stopQ chan struct{}) {\n\t\tdefer tty.wg.Done()\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-tty.sig:\n\t\t\t\ttty.l.Lock()\n\t\t\t\tcb := tty.cb\n\t\t\t\ttty.l.Unlock()\n\t\t\t\tif cb != nil {\n\t\t\t\t\tcb()\n\t\t\t\t}\n\t\t\tcase <-stopQ:\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}(tty.stopQ)\n\n\tsignal.Notify(tty.sig, syscall.SIGWINCH)\n\treturn nil\n}\n\nfunc (tty *devTty) Drain() error {\n\t_ = tty.f.SetReadDeadline(time.Now())\n\tif err := tcSetBufParams(tty.fd, 0, 0); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (tty *devTty) Stop() error {\n\ttty.l.Lock()\n\tif err := term.Restore(tty.fd, tty.saved); err != nil {\n\t\ttty.l.Unlock()\n\t\treturn err\n\t}\n\t_ = tty.f.SetReadDeadline(time.Now())\n\n\tsignal.Stop(tty.sig)\n\tclose(tty.stopQ)\n\ttty.l.Unlock()\n\n\ttty.wg.Wait()\n\n\t// close our tty device -- we'll get another one if we Start again later.\n\t_ = tty.f.Close()\n\n\treturn nil\n}\n\nfunc (tty *devTty) WindowSize() (WindowSize, error) {\n\tsize := WindowSize{}\n\tws, err := unix.IoctlGetWinsize(tty.fd, unix.TIOCGWINSZ)\n\tif err != nil {\n\t\treturn size, err\n\t}\n\tw := int(ws.Col)\n\th := int(ws.Row)\n\tif w == 0 {\n\t\tw, _ = strconv.Atoi(os.Getenv(\"COLUMNS\"))\n\t}\n\tif w == 0 {\n\t\tw = 80 // default\n\t}\n\tif h == 0 {\n\t\th, _ = strconv.Atoi(os.Getenv(\"LINES\"))\n\t}\n\tif h == 0 {\n\t\th = 25 // default\n\t}\n\tsize.Width = w\n\tsize.Height = h\n\tsize.PixelWidth = int(ws.Xpixel)\n\tsize.PixelHeight = int(ws.Ypixel)\n\treturn size, nil\n}\n\nfunc (tty *devTty) NotifyResize(cb func()) {\n\ttty.l.Lock()\n\ttty.cb = cb\n\ttty.l.Unlock()\n}\n\n// NewDevTty opens a /dev/tty based Tty.\nfunc NewDevTty() (Tty, error) {\n\treturn NewDevTtyFromDev(\"/dev/tty\")\n}\n\n// NewDevTtyFromDev opens a tty device given a path.  This can be useful to bind to other nodes.\nfunc NewDevTtyFromDev(dev string) (Tty, error) {\n\ttty := &devTty{\n\t\tdev: dev,\n\t\tsig: make(chan os.Signal),\n\t}\n\tvar err error\n\tif tty.of, err = os.OpenFile(dev, os.O_RDWR, 0); err != nil {\n\t\treturn nil, err\n\t}\n\ttty.fd = int(tty.of.Fd())\n\tif !term.IsTerminal(tty.fd) {\n\t\t_ = tty.f.Close()\n\t\treturn nil, errors.New(\"not a terminal\")\n\t}\n\tif tty.saved, err = term.GetState(tty.fd); err != nil {\n\t\t_ = tty.f.Close()\n\t\treturn nil, fmt.Errorf(\"failed to get state: %w\", err)\n\t}\n\treturn tty, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gdamore/tcell/v2/wscreen.go",
    "content": "// Copyright 2023 The TCell Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use file except in compliance with the License.\n// You may obtain a copy of the license at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build js && wasm\n// +build js,wasm\n\npackage tcell\n\nimport (\n\t\"errors\"\n\t\"github.com/gdamore/tcell/v2/terminfo\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall/js\"\n\t\"unicode/utf8\"\n)\n\nfunc NewTerminfoScreen() (Screen, error) {\n\tt := &wScreen{}\n\tt.fallback = make(map[rune]string)\n\n\treturn &baseScreen{screenImpl: t}, nil\n}\n\ntype wScreen struct {\n\tw, h  int\n\tstyle Style\n\tcells CellBuffer\n\n\trunning      bool\n\tclear        bool\n\tflagsPresent bool\n\tpasteEnabled bool\n\tmouseFlags   MouseFlags\n\n\tcursorStyle CursorStyle\n\n\tquit     chan struct{}\n\tevch     chan Event\n\tfallback map[rune]string\n\tfiniOnce sync.Once\n\n\tsync.Mutex\n}\n\nfunc (t *wScreen) Init() error {\n\tt.w, t.h = 80, 24 // default for html as of now\n\tt.evch = make(chan Event, 10)\n\tt.quit = make(chan struct{})\n\n\tt.Lock()\n\tt.running = true\n\tt.style = StyleDefault\n\tt.cells.Resize(t.w, t.h)\n\tt.Unlock()\n\n\tjs.Global().Set(\"onKeyEvent\", js.FuncOf(t.onKeyEvent))\n\n\treturn nil\n}\n\nfunc (t *wScreen) Fini() {\n\tt.finiOnce.Do(func() {\n\t\tclose(t.quit)\n\t})\n}\n\nfunc (t *wScreen) SetStyle(style Style) {\n\tt.Lock()\n\tt.style = style\n\tt.Unlock()\n}\n\n// paletteColor gives a more natural palette color actually matching\n// typical XTerm.  We might in the future want to permit styling these\n// via CSS.\n\nvar palette = map[Color]int32{\n\tColorBlack:   0x000000,\n\tColorMaroon:  0xcd0000,\n\tColorGreen:   0x00cd00,\n\tColorOlive:   0xcdcd00,\n\tColorNavy:    0x0000ee,\n\tColorPurple:  0xcd00cd,\n\tColorTeal:    0x00cdcd,\n\tColorSilver:  0xe5e5e5,\n\tColorGray:    0x7f7f7f,\n\tColorRed:     0xff0000,\n\tColorLime:    0x00ff00,\n\tColorYellow:  0xffff00,\n\tColorBlue:    0x5c5cff,\n\tColorFuchsia: 0xff00ff,\n\tColorAqua:    0x00ffff,\n\tColorWhite:   0xffffff,\n}\n\nfunc paletteColor(c Color) int32 {\n\tif c.IsRGB() {\n\t\treturn int32(c & 0xffffff)\n\t}\n\tif c >= ColorBlack && c <= ColorWhite {\n\t\treturn palette[c]\n\t}\n\treturn c.Hex()\n}\n\nfunc (t *wScreen) drawCell(x, y int) int {\n\tmainc, combc, style, width := t.cells.GetContent(x, y)\n\n\tif !t.cells.Dirty(x, y) {\n\t\treturn width\n\t}\n\n\tif style == StyleDefault {\n\t\tstyle = t.style\n\t}\n\n\tfg, bg := paletteColor(style.fg), paletteColor(style.bg)\n\tif fg == -1 {\n\t\tfg = 0xe5e5e5\n\t}\n\tif bg == -1 {\n\t\tbg = 0x000000\n\t}\n\n\tvar combcarr []interface{} = make([]interface{}, len(combc))\n\tfor i, c := range combc {\n\t\tcombcarr[i] = c\n\t}\n\n\tt.cells.SetDirty(x, y, false)\n\tjs.Global().Call(\"drawCell\", x, y, mainc, combcarr, fg, bg, int(style.attrs))\n\n\treturn width\n}\n\nfunc (t *wScreen) ShowCursor(x, y int) {\n\tt.Lock()\n\tjs.Global().Call(\"showCursor\", x, y)\n\tt.Unlock()\n}\n\nfunc (t *wScreen) SetCursorStyle(cs CursorStyle) {\n\tt.Lock()\n\tjs.Global().Call(\"setCursorStyle\", curStyleClasses[cs])\n\tt.Unlock()\n}\n\nfunc (t *wScreen) HideCursor() {\n\tt.ShowCursor(-1, -1)\n}\n\nfunc (t *wScreen) Show() {\n\tt.Lock()\n\tt.resize()\n\tt.draw()\n\tt.Unlock()\n}\n\nfunc (t *wScreen) clearScreen() {\n\tjs.Global().Call(\"clearScreen\", t.style.fg.Hex(), t.style.bg.Hex())\n\tt.clear = false\n}\n\nfunc (t *wScreen) draw() {\n\tif t.clear {\n\t\tt.clearScreen()\n\t}\n\n\tfor y := 0; y < t.h; y++ {\n\t\tfor x := 0; x < t.w; x++ {\n\t\t\twidth := t.drawCell(x, y)\n\t\t\tx += width - 1\n\t\t}\n\t}\n\n\tjs.Global().Call(\"show\")\n}\n\nfunc (t *wScreen) EnableMouse(flags ...MouseFlags) {\n\tvar f MouseFlags\n\tflagsPresent := false\n\tfor _, flag := range flags {\n\t\tf |= flag\n\t\tflagsPresent = true\n\t}\n\tif !flagsPresent {\n\t\tf = MouseMotionEvents | MouseDragEvents | MouseButtonEvents\n\t}\n\n\tt.Lock()\n\tt.mouseFlags = f\n\tt.enableMouse(f)\n\tt.Unlock()\n}\n\nfunc (t *wScreen) enableMouse(f MouseFlags) {\n\tif f&MouseButtonEvents != 0 {\n\t\tjs.Global().Set(\"onMouseClick\", js.FuncOf(t.onMouseEvent))\n\t} else {\n\t\tjs.Global().Set(\"onMouseClick\", js.FuncOf(t.unset))\n\t}\n\n\tif f&MouseDragEvents != 0 || f&MouseMotionEvents != 0 {\n\t\tjs.Global().Set(\"onMouseMove\", js.FuncOf(t.onMouseEvent))\n\t} else {\n\t\tjs.Global().Set(\"onMouseMove\", js.FuncOf(t.unset))\n\t}\n}\n\nfunc (t *wScreen) DisableMouse() {\n\tt.Lock()\n\tt.mouseFlags = 0\n\tt.enableMouse(0)\n\tt.Unlock()\n}\n\nfunc (t *wScreen) EnablePaste() {\n\tt.Lock()\n\tt.pasteEnabled = true\n\tt.enablePasting(true)\n\tt.Unlock()\n}\n\nfunc (t *wScreen) DisablePaste() {\n\tt.Lock()\n\tt.pasteEnabled = false\n\tt.enablePasting(false)\n\tt.Unlock()\n}\n\nfunc (t *wScreen) enablePasting(on bool) {\n\tif on {\n\t\tjs.Global().Set(\"onPaste\", js.FuncOf(t.onPaste))\n\t} else {\n\t\tjs.Global().Set(\"onPaste\", js.FuncOf(t.unset))\n\t}\n}\n\nfunc (t *wScreen) EnableFocus() {\n\tt.Lock()\n\tjs.Global().Set(\"onFocus\", js.FuncOf(t.onFocus))\n\tt.Unlock()\n}\n\nfunc (t *wScreen) DisableFocus() {\n\tt.Lock()\n\tjs.Global().Set(\"onFocus\", js.FuncOf(t.unset))\n\tt.Unlock()\n}\n\nfunc (t *wScreen) Size() (int, int) {\n\tt.Lock()\n\tw, h := t.w, t.h\n\tt.Unlock()\n\treturn w, h\n}\n\n// resize does nothing, as asking the web window to resize\n// without a specified width or height will cause no change.\nfunc (t *wScreen) resize() {}\n\nfunc (t *wScreen) Colors() int {\n\treturn 16777216 // 256 ^ 3\n}\n\nfunc (t *wScreen) clip(x, y int) (int, int) {\n\tw, h := t.cells.Size()\n\tif x < 0 {\n\t\tx = 0\n\t}\n\tif y < 0 {\n\t\ty = 0\n\t}\n\tif x > w-1 {\n\t\tx = w - 1\n\t}\n\tif y > h-1 {\n\t\ty = h - 1\n\t}\n\treturn x, y\n}\n\nfunc (t *wScreen) postEvent(ev Event) {\n\tselect {\n\tcase t.evch <- ev:\n\tcase <-t.quit:\n\t}\n}\n\nfunc (t *wScreen) onMouseEvent(this js.Value, args []js.Value) interface{} {\n\tmod := ModNone\n\tbutton := ButtonNone\n\n\tswitch args[2].Int() {\n\tcase 0:\n\t\tif t.mouseFlags&MouseMotionEvents == 0 {\n\t\t\t// don't want this event! is a mouse motion event, but user has asked not.\n\t\t\treturn nil\n\t\t}\n\t\tbutton = ButtonNone\n\tcase 1:\n\t\tbutton = Button1\n\tcase 2:\n\t\tbutton = Button3 // Note we prefer to treat right as button 2\n\tcase 3:\n\t\tbutton = Button2 // And the middle button as button 3\n\t}\n\n\tif args[3].Bool() { // mod shift\n\t\tmod |= ModShift\n\t}\n\n\tif args[4].Bool() { // mod alt\n\t\tmod |= ModAlt\n\t}\n\n\tif args[5].Bool() { // mod ctrl\n\t\tmod |= ModCtrl\n\t}\n\n\tt.postEvent(NewEventMouse(args[0].Int(), args[1].Int(), button, mod))\n\treturn nil\n}\n\nfunc (t *wScreen) onKeyEvent(this js.Value, args []js.Value) interface{} {\n\tkey := args[0].String()\n\n\t// don't accept any modifier keys as their own\n\tif key == \"Control\" || key == \"Alt\" || key == \"Meta\" || key == \"Shift\" {\n\t\treturn nil\n\t}\n\n\tmod := ModNone\n\tif args[1].Bool() { // mod shift\n\t\tmod |= ModShift\n\t}\n\n\tif args[2].Bool() { // mod alt\n\t\tmod |= ModAlt\n\t}\n\n\tif args[3].Bool() { // mod ctrl\n\t\tmod |= ModCtrl\n\t}\n\n\tif args[4].Bool() { // mod meta\n\t\tmod |= ModMeta\n\t}\n\n\t// check for special case of Ctrl + key\n\tif mod == ModCtrl {\n\t\tif k, ok := WebKeyNames[\"Ctrl-\"+strings.ToLower(key)]; ok {\n\t\t\tt.postEvent(NewEventKey(k, 0, mod))\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// next try function keys\n\tif k, ok := WebKeyNames[key]; ok {\n\t\tt.postEvent(NewEventKey(k, 0, mod))\n\t\treturn nil\n\t}\n\n\t// finally try normal, printable chars\n\tr, _ := utf8.DecodeRuneInString(key)\n\tt.postEvent(NewEventKey(KeyRune, r, mod))\n\treturn nil\n}\n\nfunc (t *wScreen) onPaste(this js.Value, args []js.Value) interface{} {\n\tt.postEvent(NewEventPaste(args[0].Bool()))\n\treturn nil\n}\n\nfunc (t *wScreen) onFocus(this js.Value, args []js.Value) interface{} {\n\tt.postEvent(NewEventFocus(args[0].Bool()))\n\treturn nil\n}\n\n// unset is a dummy function for js when we want nothing to\n// happen when javascript calls a function (for example, when\n// mouse input is disabled, when onMouseEvent() is called from\n// js, it redirects here and does nothing).\nfunc (t *wScreen) unset(this js.Value, args []js.Value) interface{} {\n\treturn nil\n}\n\nfunc (t *wScreen) Sync() {\n\tt.Lock()\n\tt.resize()\n\tt.clear = true\n\tt.cells.Invalidate()\n\tt.draw()\n\tt.Unlock()\n}\n\nfunc (t *wScreen) CharacterSet() string {\n\treturn \"UTF-8\"\n}\n\nfunc (t *wScreen) RegisterRuneFallback(orig rune, fallback string) {\n\tt.Lock()\n\tt.fallback[orig] = fallback\n\tt.Unlock()\n}\n\nfunc (t *wScreen) UnregisterRuneFallback(orig rune) {\n\tt.Lock()\n\tdelete(t.fallback, orig)\n\tt.Unlock()\n}\n\nfunc (t *wScreen) CanDisplay(r rune, checkFallbacks bool) bool {\n\tif utf8.ValidRune(r) {\n\t\treturn true\n\t}\n\tif !checkFallbacks {\n\t\treturn false\n\t}\n\tif _, ok := t.fallback[r]; ok {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (t *wScreen) HasMouse() bool {\n\treturn true\n}\n\nfunc (t *wScreen) HasKey(k Key) bool {\n\treturn true\n}\n\nfunc (t *wScreen) SetSize(w, h int) {\n\tif w == t.w && h == t.h {\n\t\treturn\n\t}\n\n\tt.cells.Invalidate()\n\tt.cells.Resize(w, h)\n\tjs.Global().Call(\"resize\", w, h)\n\tt.w, t.h = w, h\n\tt.postEvent(NewEventResize(w, h))\n}\n\nfunc (t *wScreen) Resize(int, int, int, int) {}\n\n// Suspend simply pauses all input and output, and clears the screen.\n// There isn't a \"default terminal\" to go back to.\nfunc (t *wScreen) Suspend() error {\n\tt.Lock()\n\tif !t.running {\n\t\tt.Unlock()\n\t\treturn nil\n\t}\n\tt.running = false\n\tt.clearScreen()\n\tt.enableMouse(0)\n\tt.enablePasting(false)\n\tjs.Global().Set(\"onKeyEvent\", js.FuncOf(t.unset)) // stop keypresses\n\treturn nil\n}\n\nfunc (t *wScreen) Resume() error {\n\tt.Lock()\n\n\tif t.running {\n\t\treturn errors.New(\"already engaged\")\n\t}\n\tt.running = true\n\n\tt.enableMouse(t.mouseFlags)\n\tt.enablePasting(t.pasteEnabled)\n\n\tjs.Global().Set(\"onKeyEvent\", js.FuncOf(t.onKeyEvent))\n\n\tt.Unlock()\n\treturn nil\n}\n\nfunc (t *wScreen) Beep() error {\n\tjs.Global().Call(\"beep\")\n\treturn nil\n}\n\nfunc (t *wScreen) Tty() (Tty, bool) {\n\treturn nil, false\n}\n\nfunc (t *wScreen) GetCells() *CellBuffer {\n\treturn &t.cells\n}\n\nfunc (t *wScreen) EventQ() chan Event {\n\treturn t.evch\n}\n\nfunc (t *wScreen) StopQ() <-chan struct{} {\n\treturn t.quit\n}\n\n// WebKeyNames maps string names reported from HTML\n// (KeyboardEvent.key) to tcell accepted keys.\nvar WebKeyNames = map[string]Key{\n\t\"Enter\":      KeyEnter,\n\t\"Backspace\":  KeyBackspace,\n\t\"Tab\":        KeyTab,\n\t\"Backtab\":    KeyBacktab,\n\t\"Escape\":     KeyEsc,\n\t\"Backspace2\": KeyBackspace2,\n\t\"Delete\":     KeyDelete,\n\t\"Insert\":     KeyInsert,\n\t\"ArrowUp\":    KeyUp,\n\t\"ArrowDown\":  KeyDown,\n\t\"ArrowLeft\":  KeyLeft,\n\t\"ArrowRight\": KeyRight,\n\t\"Home\":       KeyHome,\n\t\"End\":        KeyEnd,\n\t\"UpLeft\":     KeyUpLeft,    // not supported by HTML\n\t\"UpRight\":    KeyUpRight,   // not supported by HTML\n\t\"DownLeft\":   KeyDownLeft,  // not supported by HTML\n\t\"DownRight\":  KeyDownRight, // not supported by HTML\n\t\"Center\":     KeyCenter,\n\t\"PgDn\":       KeyPgDn,\n\t\"PgUp\":       KeyPgUp,\n\t\"Clear\":      KeyClear,\n\t\"Exit\":       KeyExit,\n\t\"Cancel\":     KeyCancel,\n\t\"Pause\":      KeyPause,\n\t\"Print\":      KeyPrint,\n\t\"F1\":         KeyF1,\n\t\"F2\":         KeyF2,\n\t\"F3\":         KeyF3,\n\t\"F4\":         KeyF4,\n\t\"F5\":         KeyF5,\n\t\"F6\":         KeyF6,\n\t\"F7\":         KeyF7,\n\t\"F8\":         KeyF8,\n\t\"F9\":         KeyF9,\n\t\"F10\":        KeyF10,\n\t\"F11\":        KeyF11,\n\t\"F12\":        KeyF12,\n\t\"F13\":        KeyF13,\n\t\"F14\":        KeyF14,\n\t\"F15\":        KeyF15,\n\t\"F16\":        KeyF16,\n\t\"F17\":        KeyF17,\n\t\"F18\":        KeyF18,\n\t\"F19\":        KeyF19,\n\t\"F20\":        KeyF20,\n\t\"F21\":        KeyF21,\n\t\"F22\":        KeyF22,\n\t\"F23\":        KeyF23,\n\t\"F24\":        KeyF24,\n\t\"F25\":        KeyF25,\n\t\"F26\":        KeyF26,\n\t\"F27\":        KeyF27,\n\t\"F28\":        KeyF28,\n\t\"F29\":        KeyF29,\n\t\"F30\":        KeyF30,\n\t\"F31\":        KeyF31,\n\t\"F32\":        KeyF32,\n\t\"F33\":        KeyF33,\n\t\"F34\":        KeyF34,\n\t\"F35\":        KeyF35,\n\t\"F36\":        KeyF36,\n\t\"F37\":        KeyF37,\n\t\"F38\":        KeyF38,\n\t\"F39\":        KeyF39,\n\t\"F40\":        KeyF40,\n\t\"F41\":        KeyF41,\n\t\"F42\":        KeyF42,\n\t\"F43\":        KeyF43,\n\t\"F44\":        KeyF44,\n\t\"F45\":        KeyF45,\n\t\"F46\":        KeyF46,\n\t\"F47\":        KeyF47,\n\t\"F48\":        KeyF48,\n\t\"F49\":        KeyF49,\n\t\"F50\":        KeyF50,\n\t\"F51\":        KeyF51,\n\t\"F52\":        KeyF52,\n\t\"F53\":        KeyF53,\n\t\"F54\":        KeyF54,\n\t\"F55\":        KeyF55,\n\t\"F56\":        KeyF56,\n\t\"F57\":        KeyF57,\n\t\"F58\":        KeyF58,\n\t\"F59\":        KeyF59,\n\t\"F60\":        KeyF60,\n\t\"F61\":        KeyF61,\n\t\"F62\":        KeyF62,\n\t\"F63\":        KeyF63,\n\t\"F64\":        KeyF64,\n\t\"Ctrl-a\":     KeyCtrlA,          // not reported by HTML- need to do special check\n\t\"Ctrl-b\":     KeyCtrlB,          // not reported by HTML- need to do special check\n\t\"Ctrl-c\":     KeyCtrlC,          // not reported by HTML- need to do special check\n\t\"Ctrl-d\":     KeyCtrlD,          // not reported by HTML- need to do special check\n\t\"Ctrl-e\":     KeyCtrlE,          // not reported by HTML- need to do special check\n\t\"Ctrl-f\":     KeyCtrlF,          // not reported by HTML- need to do special check\n\t\"Ctrl-g\":     KeyCtrlG,          // not reported by HTML- need to do special check\n\t\"Ctrl-j\":     KeyCtrlJ,          // not reported by HTML- need to do special check\n\t\"Ctrl-k\":     KeyCtrlK,          // not reported by HTML- need to do special check\n\t\"Ctrl-l\":     KeyCtrlL,          // not reported by HTML- need to do special check\n\t\"Ctrl-n\":     KeyCtrlN,          // not reported by HTML- need to do special check\n\t\"Ctrl-o\":     KeyCtrlO,          // not reported by HTML- need to do special check\n\t\"Ctrl-p\":     KeyCtrlP,          // not reported by HTML- need to do special check\n\t\"Ctrl-q\":     KeyCtrlQ,          // not reported by HTML- need to do special check\n\t\"Ctrl-r\":     KeyCtrlR,          // not reported by HTML- need to do special check\n\t\"Ctrl-s\":     KeyCtrlS,          // not reported by HTML- need to do special check\n\t\"Ctrl-t\":     KeyCtrlT,          // not reported by HTML- need to do special check\n\t\"Ctrl-u\":     KeyCtrlU,          // not reported by HTML- need to do special check\n\t\"Ctrl-v\":     KeyCtrlV,          // not reported by HTML- need to do special check\n\t\"Ctrl-w\":     KeyCtrlW,          // not reported by HTML- need to do special check\n\t\"Ctrl-x\":     KeyCtrlX,          // not reported by HTML- need to do special check\n\t\"Ctrl-y\":     KeyCtrlY,          // not reported by HTML- need to do special check\n\t\"Ctrl-z\":     KeyCtrlZ,          // not reported by HTML- need to do special check\n\t\"Ctrl- \":     KeyCtrlSpace,      // not reported by HTML- need to do special check\n\t\"Ctrl-_\":     KeyCtrlUnderscore, // not reported by HTML- need to do special check\n\t\"Ctrl-]\":     KeyCtrlRightSq,    // not reported by HTML- need to do special check\n\t\"Ctrl-\\\\\":    KeyCtrlBackslash,  // not reported by HTML- need to do special check\n\t\"Ctrl-^\":     KeyCtrlCarat,      // not reported by HTML- need to do special check\n}\n\nvar curStyleClasses = map[CursorStyle]string{\n\tCursorStyleDefault:           \"cursor-blinking-block\",\n\tCursorStyleBlinkingBlock:     \"cursor-blinking-block\",\n\tCursorStyleSteadyBlock:       \"cursor-steady-block\",\n\tCursorStyleBlinkingUnderline: \"cursor-blinking-underline\",\n\tCursorStyleSteadyUnderline:   \"cursor-steady-underline\",\n\tCursorStyleBlinkingBar:       \"cursor-blinking-bar\",\n\tCursorStyleSteadyBar:         \"cursor-steady-bar\",\n}\n\nfunc LookupTerminfo(name string) (ti *terminfo.Terminfo, e error) {\n\treturn nil, errors.New(\"LookupTermInfo not supported\")\n}\n"
  },
  {
    "path": "vendor/github.com/go-errors/errors/.travis.yml",
    "content": "language: go\n\ngo:\n  - \"1.8.x\"\n  - \"1.11.x\"\n  - \"1.16.x\"\n  - \"1.21.x\"\n"
  },
  {
    "path": "vendor/github.com/go-errors/errors/LICENSE.MIT",
    "content": "Copyright (c) 2015 Conrad Irwin <conrad@bugsnag.com>\n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.\n"
  },
  {
    "path": "vendor/github.com/go-errors/errors/README.md",
    "content": "go-errors/errors\n================\n\n[![Build Status](https://travis-ci.org/go-errors/errors.svg?branch=master)](https://travis-ci.org/go-errors/errors)\n\nPackage errors adds stacktrace support to errors in go.\n\nThis is particularly useful when you want to understand the state of execution\nwhen an error was returned unexpectedly.\n\nIt provides the type \\*Error which implements the standard golang error\ninterface, so you can use this library interchangeably with code that is\nexpecting a normal error return.\n\nUsage\n-----\n\nFull documentation is available on\n[godoc](https://godoc.org/github.com/go-errors/errors), but here's a simple\nexample:\n\n```go\npackage crashy\n\nimport \"github.com/go-errors/errors\"\n\nvar Crashed = errors.Errorf(\"oh dear\")\n\nfunc Crash() error {\n    return errors.New(Crashed)\n}\n```\n\nThis can be called as follows:\n\n```go\npackage main\n\nimport (\n    \"crashy\"\n    \"fmt\"\n    \"github.com/go-errors/errors\"\n)\n\nfunc main() {\n    err := crashy.Crash()\n    if err != nil {\n        if errors.Is(err, crashy.Crashed) {\n            fmt.Println(err.(*errors.Error).ErrorStack())\n        } else {\n            panic(err)\n        }\n    }\n}\n```\n\nMeta-fu\n-------\n\nThis package was original written to allow reporting to\n[Bugsnag](https://bugsnag.com/) from\n[bugsnag-go](https://github.com/bugsnag/bugsnag-go), but after I found similar\npackages by Facebook and Dropbox, it was moved to one canonical location so\neveryone can benefit.\n\nThis package is licensed under the MIT license, see LICENSE.MIT for details.\n\n\n## Changelog\n* v1.1.0 updated to use go1.13's standard-library errors.Is method instead of == in errors.Is\n* v1.2.0 added `errors.As` from the standard library.\n* v1.3.0 *BREAKING* updated error methods to return `error` instead of `*Error`.\n>  Code that needs access to the underlying `*Error` can use the new errors.AsError(e)\n> ```\n>   // before\n>   errors.New(err).ErrorStack()\n>   // after\n>.  errors.AsError(errors.Wrap(err)).ErrorStack()\n> ```\n* v1.4.0 *BREAKING* v1.4.0 reverted all changes from v1.3.0 and is identical to v1.2.0\n* v1.4.1 no code change, but now without an unnecessary cover.out file.\n* v1.4.2 performance improvement to ErrorStack() to avoid unnecessary work https://github.com/go-errors/errors/pull/40\n* v1.5.0 add errors.Join() and errors.Unwrap() copying the stdlib https://github.com/go-errors/errors/pull/40\n* v1.5.1 fix build on go1.13..go1.19 (broken by adding Join and Unwrap with wrong build constraints)\n"
  },
  {
    "path": "vendor/github.com/go-errors/errors/error.go",
    "content": "// Package errors provides errors that have stack-traces.\n//\n// This is particularly useful when you want to understand the\n// state of execution when an error was returned unexpectedly.\n//\n// It provides the type *Error which implements the standard\n// golang error interface, so you can use this library interchangably\n// with code that is expecting a normal error return.\n//\n// For example:\n//\n//  package crashy\n//\n//  import \"github.com/go-errors/errors\"\n//\n//  var Crashed = errors.Errorf(\"oh dear\")\n//\n//  func Crash() error {\n//      return errors.New(Crashed)\n//  }\n//\n// This can be called as follows:\n//\n//  package main\n//\n//  import (\n//      \"crashy\"\n//      \"fmt\"\n//      \"github.com/go-errors/errors\"\n//  )\n//\n//  func main() {\n//      err := crashy.Crash()\n//      if err != nil {\n//          if errors.Is(err, crashy.Crashed) {\n//              fmt.Println(err.(*errors.Error).ErrorStack())\n//          } else {\n//              panic(err)\n//          }\n//      }\n//  }\n//\n// This package was original written to allow reporting to Bugsnag,\n// but after I found similar packages by Facebook and Dropbox, it\n// was moved to one canonical location so everyone can benefit.\npackage errors\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"runtime\"\n)\n\n// The maximum number of stackframes on any error.\nvar MaxStackDepth = 50\n\n// Error is an error with an attached stacktrace. It can be used\n// wherever the builtin error interface is expected.\ntype Error struct {\n\tErr    error\n\tstack  []uintptr\n\tframes []StackFrame\n\tprefix string\n}\n\n// New makes an Error from the given value. If that value is already an\n// error then it will be used directly, if not, it will be passed to\n// fmt.Errorf(\"%v\"). The stacktrace will point to the line of code that\n// called New.\nfunc New(e interface{}) *Error {\n\tvar err error\n\n\tswitch e := e.(type) {\n\tcase error:\n\t\terr = e\n\tdefault:\n\t\terr = fmt.Errorf(\"%v\", e)\n\t}\n\n\tstack := make([]uintptr, MaxStackDepth)\n\tlength := runtime.Callers(2, stack[:])\n\treturn &Error{\n\t\tErr:   err,\n\t\tstack: stack[:length],\n\t}\n}\n\n// Wrap makes an Error from the given value. If that value is already an\n// error then it will be used directly, if not, it will be passed to\n// fmt.Errorf(\"%v\"). The skip parameter indicates how far up the stack\n// to start the stacktrace. 0 is from the current call, 1 from its caller, etc.\nfunc Wrap(e interface{}, skip int) *Error {\n\tif e == nil {\n\t\treturn nil\n\t}\n\n\tvar err error\n\n\tswitch e := e.(type) {\n\tcase *Error:\n\t\treturn e\n\tcase error:\n\t\terr = e\n\tdefault:\n\t\terr = fmt.Errorf(\"%v\", e)\n\t}\n\n\tstack := make([]uintptr, MaxStackDepth)\n\tlength := runtime.Callers(2+skip, stack[:])\n\treturn &Error{\n\t\tErr:   err,\n\t\tstack: stack[:length],\n\t}\n}\n\n// WrapPrefix makes an Error from the given value. If that value is already an\n// error then it will be used directly, if not, it will be passed to\n// fmt.Errorf(\"%v\"). The prefix parameter is used to add a prefix to the\n// error message when calling Error(). The skip parameter indicates how far\n// up the stack to start the stacktrace. 0 is from the current call,\n// 1 from its caller, etc.\nfunc WrapPrefix(e interface{}, prefix string, skip int) *Error {\n\tif e == nil {\n\t\treturn nil\n\t}\n\n\terr := Wrap(e, 1+skip)\n\n\tif err.prefix != \"\" {\n\t\tprefix = fmt.Sprintf(\"%s: %s\", prefix, err.prefix)\n\t}\n\n\treturn &Error{\n\t\tErr:    err.Err,\n\t\tstack:  err.stack,\n\t\tprefix: prefix,\n\t}\n\n}\n\n// Errorf creates a new error with the given message. You can use it\n// as a drop-in replacement for fmt.Errorf() to provide descriptive\n// errors in return values.\nfunc Errorf(format string, a ...interface{}) *Error {\n\treturn Wrap(fmt.Errorf(format, a...), 1)\n}\n\n// Error returns the underlying error's message.\nfunc (err *Error) Error() string {\n\n\tmsg := err.Err.Error()\n\tif err.prefix != \"\" {\n\t\tmsg = fmt.Sprintf(\"%s: %s\", err.prefix, msg)\n\t}\n\n\treturn msg\n}\n\n// Stack returns the callstack formatted the same way that go does\n// in runtime/debug.Stack()\nfunc (err *Error) Stack() []byte {\n\tbuf := bytes.Buffer{}\n\n\tfor _, frame := range err.StackFrames() {\n\t\tbuf.WriteString(frame.String())\n\t}\n\n\treturn buf.Bytes()\n}\n\n// Callers satisfies the bugsnag ErrorWithCallerS() interface\n// so that the stack can be read out.\nfunc (err *Error) Callers() []uintptr {\n\treturn err.stack\n}\n\n// ErrorStack returns a string that contains both the\n// error message and the callstack.\nfunc (err *Error) ErrorStack() string {\n\treturn err.TypeName() + \" \" + err.Error() + \"\\n\" + string(err.Stack())\n}\n\n// StackFrames returns an array of frames containing information about the\n// stack.\nfunc (err *Error) StackFrames() []StackFrame {\n\tif err.frames == nil {\n\t\terr.frames = make([]StackFrame, len(err.stack))\n\n\t\tfor i, pc := range err.stack {\n\t\t\terr.frames[i] = NewStackFrame(pc)\n\t\t}\n\t}\n\n\treturn err.frames\n}\n\n// TypeName returns the type this error. e.g. *errors.stringError.\nfunc (err *Error) TypeName() string {\n\tif _, ok := err.Err.(uncaughtPanic); ok {\n\t\treturn \"panic\"\n\t}\n\treturn reflect.TypeOf(err.Err).String()\n}\n\n// Return the wrapped error (implements api for As function).\nfunc (err *Error) Unwrap() error {\n\treturn err.Err\n}\n"
  },
  {
    "path": "vendor/github.com/go-errors/errors/error_1_13.go",
    "content": "//go:build go1.13\n// +build go1.13\n\npackage errors\n\nimport (\n\tbaseErrors \"errors\"\n)\n\n// As finds the first error in err's tree that matches target, and if one is found, sets\n// target to that error value and returns true. Otherwise, it returns false.\n//\n// For more information see stdlib errors.As.\nfunc As(err error, target interface{}) bool {\n\treturn baseErrors.As(err, target)\n}\n\n// Is detects whether the error is equal to a given error. Errors\n// are considered equal by this function if they are matched by errors.Is\n// or if their contained errors are matched through errors.Is.\nfunc Is(e error, original error) bool {\n\tif baseErrors.Is(e, original) {\n\t\treturn true\n\t}\n\n\tif e, ok := e.(*Error); ok {\n\t\treturn Is(e.Err, original)\n\t}\n\n\tif original, ok := original.(*Error); ok {\n\t\treturn Is(e, original.Err)\n\t}\n\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/go-errors/errors/error_backward.go",
    "content": "//go:build !go1.13\n// +build !go1.13\n\npackage errors\n\nimport (\n\t\"reflect\"\n)\n\ntype unwrapper interface {\n\tUnwrap() error\n}\n\n// As assigns error or any wrapped error to the value target points\n// to. If there is no value of the target type of target As returns\n// false.\nfunc As(err error, target interface{}) bool {\n\ttargetType := reflect.TypeOf(target)\n\n\tfor {\n\t\terrType := reflect.TypeOf(err)\n\n\t\tif errType == nil {\n\t\t\treturn false\n\t\t}\n\n\t\tif reflect.PtrTo(errType) == targetType {\n\t\t\treflect.ValueOf(target).Elem().Set(reflect.ValueOf(err))\n\t\t\treturn true\n\t\t}\n\n\t\twrapped, ok := err.(unwrapper)\n\t\tif ok {\n\t\t\terr = wrapped.Unwrap()\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n}\n\n// Is detects whether the error is equal to a given error. Errors\n// are considered equal by this function if they are the same object,\n// or if they both contain the same error inside an errors.Error.\nfunc Is(e error, original error) bool {\n\tif e == original {\n\t\treturn true\n\t}\n\n\tif e, ok := e.(*Error); ok {\n\t\treturn Is(e.Err, original)\n\t}\n\n\tif original, ok := original.(*Error); ok {\n\t\treturn Is(e, original.Err)\n\t}\n\n\treturn false\n}\n\n// Disclaimer: functions Join and Unwrap are copied from the stdlib errors\n// package v1.21.0.\n\n// Join returns an error that wraps the given errors.\n// Any nil error values are discarded.\n// Join returns nil if every value in errs is nil.\n// The error formats as the concatenation of the strings obtained\n// by calling the Error method of each element of errs, with a newline\n// between each string.\n//\n// A non-nil error returned by Join implements the Unwrap() []error method.\nfunc Join(errs ...error) error {\n\tn := 0\n\tfor _, err := range errs {\n\t\tif err != nil {\n\t\t\tn++\n\t\t}\n\t}\n\tif n == 0 {\n\t\treturn nil\n\t}\n\te := &joinError{\n\t\terrs: make([]error, 0, n),\n\t}\n\tfor _, err := range errs {\n\t\tif err != nil {\n\t\t\te.errs = append(e.errs, err)\n\t\t}\n\t}\n\treturn e\n}\n\ntype joinError struct {\n\terrs []error\n}\n\nfunc (e *joinError) Error() string {\n\tvar b []byte\n\tfor i, err := range e.errs {\n\t\tif i > 0 {\n\t\t\tb = append(b, '\\n')\n\t\t}\n\t\tb = append(b, err.Error()...)\n\t}\n\treturn string(b)\n}\n\nfunc (e *joinError) Unwrap() []error {\n\treturn e.errs\n}\n\n// Unwrap returns the result of calling the Unwrap method on err, if err's\n// type contains an Unwrap method returning error.\n// Otherwise, Unwrap returns nil.\n//\n// Unwrap only calls a method of the form \"Unwrap() error\".\n// In particular Unwrap does not unwrap errors returned by [Join].\nfunc Unwrap(err error) error {\n\tu, ok := err.(interface {\n\t\tUnwrap() error\n\t})\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn u.Unwrap()\n}\n"
  },
  {
    "path": "vendor/github.com/go-errors/errors/join_unwrap_1_20.go",
    "content": "//go:build go1.20\n// +build go1.20\n\npackage errors\n\nimport baseErrors \"errors\"\n\n// Join returns an error that wraps the given errors.\n// Any nil error values are discarded.\n// Join returns nil if every value in errs is nil.\n// The error formats as the concatenation of the strings obtained\n// by calling the Error method of each element of errs, with a newline\n// between each string.\n//\n// A non-nil error returned by Join implements the Unwrap() []error method.\n//\n// For more information see stdlib errors.Join.\nfunc Join(errs ...error) error {\n\treturn baseErrors.Join(errs...)\n}\n\n// Unwrap returns the result of calling the Unwrap method on err, if err's\n// type contains an Unwrap method returning error.\n// Otherwise, Unwrap returns nil.\n//\n// Unwrap only calls a method of the form \"Unwrap() error\".\n// In particular Unwrap does not unwrap errors returned by [Join].\n//\n// For more information see stdlib errors.Unwrap.\nfunc Unwrap(err error) error {\n\treturn baseErrors.Unwrap(err)\n}\n"
  },
  {
    "path": "vendor/github.com/go-errors/errors/join_unwrap_backward.go",
    "content": "//go:build !go1.20\n// +build !go1.20\n\npackage errors\n\n// Disclaimer: functions Join and Unwrap are copied from the stdlib errors\n// package v1.21.0.\n\n// Join returns an error that wraps the given errors.\n// Any nil error values are discarded.\n// Join returns nil if every value in errs is nil.\n// The error formats as the concatenation of the strings obtained\n// by calling the Error method of each element of errs, with a newline\n// between each string.\n//\n// A non-nil error returned by Join implements the Unwrap() []error method.\nfunc Join(errs ...error) error {\n\tn := 0\n\tfor _, err := range errs {\n\t\tif err != nil {\n\t\t\tn++\n\t\t}\n\t}\n\tif n == 0 {\n\t\treturn nil\n\t}\n\te := &joinError{\n\t\terrs: make([]error, 0, n),\n\t}\n\tfor _, err := range errs {\n\t\tif err != nil {\n\t\t\te.errs = append(e.errs, err)\n\t\t}\n\t}\n\treturn e\n}\n\ntype joinError struct {\n\terrs []error\n}\n\nfunc (e *joinError) Error() string {\n\tvar b []byte\n\tfor i, err := range e.errs {\n\t\tif i > 0 {\n\t\t\tb = append(b, '\\n')\n\t\t}\n\t\tb = append(b, err.Error()...)\n\t}\n\treturn string(b)\n}\n\nfunc (e *joinError) Unwrap() []error {\n\treturn e.errs\n}\n\n// Unwrap returns the result of calling the Unwrap method on err, if err's\n// type contains an Unwrap method returning error.\n// Otherwise, Unwrap returns nil.\n//\n// Unwrap only calls a method of the form \"Unwrap() error\".\n// In particular Unwrap does not unwrap errors returned by [Join].\nfunc Unwrap(err error) error {\n\tu, ok := err.(interface {\n\t\tUnwrap() error\n\t})\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn u.Unwrap()\n}\n"
  },
  {
    "path": "vendor/github.com/go-errors/errors/parse_panic.go",
    "content": "package errors\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype uncaughtPanic struct{ message string }\n\nfunc (p uncaughtPanic) Error() string {\n\treturn p.message\n}\n\n// ParsePanic allows you to get an error object from the output of a go program\n// that panicked. This is particularly useful with https://github.com/mitchellh/panicwrap.\nfunc ParsePanic(text string) (*Error, error) {\n\tlines := strings.Split(text, \"\\n\")\n\n\tstate := \"start\"\n\n\tvar message string\n\tvar stack []StackFrame\n\n\tfor i := 0; i < len(lines); i++ {\n\t\tline := lines[i]\n\n\t\tif state == \"start\" {\n\t\t\tif strings.HasPrefix(line, \"panic: \") {\n\t\t\t\tmessage = strings.TrimPrefix(line, \"panic: \")\n\t\t\t\tstate = \"seek\"\n\t\t\t} else {\n\t\t\t\treturn nil, Errorf(\"bugsnag.panicParser: Invalid line (no prefix): %s\", line)\n\t\t\t}\n\n\t\t} else if state == \"seek\" {\n\t\t\tif strings.HasPrefix(line, \"goroutine \") && strings.HasSuffix(line, \"[running]:\") {\n\t\t\t\tstate = \"parsing\"\n\t\t\t}\n\n\t\t} else if state == \"parsing\" {\n\t\t\tif line == \"\" {\n\t\t\t\tstate = \"done\"\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcreatedBy := false\n\t\t\tif strings.HasPrefix(line, \"created by \") {\n\t\t\t\tline = strings.TrimPrefix(line, \"created by \")\n\t\t\t\tcreatedBy = true\n\t\t\t}\n\n\t\t\ti++\n\n\t\t\tif i >= len(lines) {\n\t\t\t\treturn nil, Errorf(\"bugsnag.panicParser: Invalid line (unpaired): %s\", line)\n\t\t\t}\n\n\t\t\tframe, err := parsePanicFrame(line, lines[i], createdBy)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tstack = append(stack, *frame)\n\t\t\tif createdBy {\n\t\t\t\tstate = \"done\"\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\tif state == \"done\" || state == \"parsing\" {\n\t\treturn &Error{Err: uncaughtPanic{message}, frames: stack}, nil\n\t}\n\treturn nil, Errorf(\"could not parse panic: %v\", text)\n}\n\n// The lines we're passing look like this:\n//\n//     main.(*foo).destruct(0xc208067e98)\n//             /0/go/src/github.com/bugsnag/bugsnag-go/pan/main.go:22 +0x151\nfunc parsePanicFrame(name string, line string, createdBy bool) (*StackFrame, error) {\n\tidx := strings.LastIndex(name, \"(\")\n\tif idx == -1 && !createdBy {\n\t\treturn nil, Errorf(\"bugsnag.panicParser: Invalid line (no call): %s\", name)\n\t}\n\tif idx != -1 {\n\t\tname = name[:idx]\n\t}\n\tpkg := \"\"\n\n\tif lastslash := strings.LastIndex(name, \"/\"); lastslash >= 0 {\n\t\tpkg += name[:lastslash] + \"/\"\n\t\tname = name[lastslash+1:]\n\t}\n\tif period := strings.Index(name, \".\"); period >= 0 {\n\t\tpkg += name[:period]\n\t\tname = name[period+1:]\n\t}\n\n\tname = strings.Replace(name, \"·\", \".\", -1)\n\n\tif !strings.HasPrefix(line, \"\\t\") {\n\t\treturn nil, Errorf(\"bugsnag.panicParser: Invalid line (no tab): %s\", line)\n\t}\n\n\tidx = strings.LastIndex(line, \":\")\n\tif idx == -1 {\n\t\treturn nil, Errorf(\"bugsnag.panicParser: Invalid line (no line number): %s\", line)\n\t}\n\tfile := line[1:idx]\n\n\tnumber := line[idx+1:]\n\tif idx = strings.Index(number, \" +\"); idx > -1 {\n\t\tnumber = number[:idx]\n\t}\n\n\tlno, err := strconv.ParseInt(number, 10, 32)\n\tif err != nil {\n\t\treturn nil, Errorf(\"bugsnag.panicParser: Invalid line (bad line number): %s\", line)\n\t}\n\n\treturn &StackFrame{\n\t\tFile:       file,\n\t\tLineNumber: int(lno),\n\t\tPackage:    pkg,\n\t\tName:       name,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-errors/errors/stackframe.go",
    "content": "package errors\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"os\"\n\t\"runtime\"\n\t\"strings\"\n)\n\n// A StackFrame contains all necessary information about to generate a line\n// in a callstack.\ntype StackFrame struct {\n\t// The path to the file containing this ProgramCounter\n\tFile string\n\t// The LineNumber in that file\n\tLineNumber int\n\t// The Name of the function that contains this ProgramCounter\n\tName string\n\t// The Package that contains this function\n\tPackage string\n\t// The underlying ProgramCounter\n\tProgramCounter uintptr\n}\n\n// NewStackFrame popoulates a stack frame object from the program counter.\nfunc NewStackFrame(pc uintptr) (frame StackFrame) {\n\n\tframe = StackFrame{ProgramCounter: pc}\n\tif frame.Func() == nil {\n\t\treturn\n\t}\n\tframe.Package, frame.Name = packageAndName(frame.Func())\n\n\t// pc -1 because the program counters we use are usually return addresses,\n\t// and we want to show the line that corresponds to the function call\n\tframe.File, frame.LineNumber = frame.Func().FileLine(pc - 1)\n\treturn\n\n}\n\n// Func returns the function that contained this frame.\nfunc (frame *StackFrame) Func() *runtime.Func {\n\tif frame.ProgramCounter == 0 {\n\t\treturn nil\n\t}\n\treturn runtime.FuncForPC(frame.ProgramCounter)\n}\n\n// String returns the stackframe formatted in the same way as go does\n// in runtime/debug.Stack()\nfunc (frame *StackFrame) String() string {\n\tstr := fmt.Sprintf(\"%s:%d (0x%x)\\n\", frame.File, frame.LineNumber, frame.ProgramCounter)\n\n\tsource, err := frame.sourceLine()\n\tif err != nil {\n\t\treturn str\n\t}\n\n\treturn str + fmt.Sprintf(\"\\t%s: %s\\n\", frame.Name, source)\n}\n\n// SourceLine gets the line of code (from File and Line) of the original source if possible.\nfunc (frame *StackFrame) SourceLine() (string, error) {\n\tsource, err := frame.sourceLine()\n\tif err != nil {\n\t\treturn source, New(err)\n\t}\n\treturn source, err\n}\n\nfunc (frame *StackFrame) sourceLine() (string, error) {\n\tif frame.LineNumber <= 0 {\n\t\treturn \"???\", nil\n\t}\n\n\tfile, err := os.Open(frame.File)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer file.Close()\n\n\tscanner := bufio.NewScanner(file)\n\tcurrentLine := 1\n\tfor scanner.Scan() {\n\t\tif currentLine == frame.LineNumber {\n\t\t\treturn string(bytes.Trim(scanner.Bytes(), \" \\t\")), nil\n\t\t}\n\t\tcurrentLine++\n\t}\n\tif err := scanner.Err(); err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn \"???\", nil\n}\n\nfunc packageAndName(fn *runtime.Func) (string, string) {\n\tname := fn.Name()\n\tpkg := \"\"\n\n\t// The name includes the path name to the package, which is unnecessary\n\t// since the file name is already included.  Plus, it has center dots.\n\t// That is, we see\n\t//  runtime/debug.*T·ptrmethod\n\t// and want\n\t//  *T.ptrmethod\n\t// Since the package path might contains dots (e.g. code.google.com/...),\n\t// we first remove the path prefix if there is one.\n\tif lastslash := strings.LastIndex(name, \"/\"); lastslash >= 0 {\n\t\tpkg += name[:lastslash] + \"/\"\n\t\tname = name[lastslash+1:]\n\t}\n\tif period := strings.Index(name, \".\"); period >= 0 {\n\t\tpkg += name[:period]\n\t\tname = name[period+1:]\n\t}\n\n\tname = strings.Replace(name, \"·\", \".\", -1)\n\treturn pkg, name\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/.golangci.yaml",
    "content": "run:\n  timeout: 1m\n  tests: true\n\nlinters:\n  disable-all: true\n  enable:\n    - asciicheck\n    - errcheck\n    - forcetypeassert\n    - gocritic\n    - gofmt\n    - goimports\n    - gosimple\n    - govet\n    - ineffassign\n    - misspell\n    - revive\n    - staticcheck\n    - typecheck\n    - unused\n\nissues:\n  exclude-use-default: false\n  max-issues-per-linter: 0\n  max-same-issues: 10\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/CHANGELOG.md",
    "content": "# CHANGELOG\n\n## v1.0.0-rc1\n\nThis is the first logged release.  Major changes (including breaking changes)\nhave occurred since earlier tags.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/CONTRIBUTING.md",
    "content": "# Contributing\n\nLogr is open to pull-requests, provided they fit within the intended scope of\nthe project.  Specifically, this library aims to be VERY small and minimalist,\nwith no external dependencies.\n\n## Compatibility\n\nThis project intends to follow [semantic versioning](http://semver.org) and\nis very strict about compatibility.  Any proposed changes MUST follow those\nrules.\n\n## Performance\n\nAs a logging library, logr must be as light-weight as possible.  Any proposed\ncode change must include results of running the [benchmark](./benchmark)\nbefore and after the change.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/README.md",
    "content": "# A minimal logging API for Go\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/go-logr/logr.svg)](https://pkg.go.dev/github.com/go-logr/logr)\n[![Go Report Card](https://goreportcard.com/badge/github.com/go-logr/logr)](https://goreportcard.com/report/github.com/go-logr/logr)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/go-logr/logr/badge)](https://securityscorecards.dev/viewer/?platform=github.com&org=go-logr&repo=logr)\n\nlogr offers an(other) opinion on how Go programs and libraries can do logging\nwithout becoming coupled to a particular logging implementation.  This is not\nan implementation of logging - it is an API.  In fact it is two APIs with two\ndifferent sets of users.\n\nThe `Logger` type is intended for application and library authors.  It provides\na relatively small API which can be used everywhere you want to emit logs.  It\ndefers the actual act of writing logs (to files, to stdout, or whatever) to the\n`LogSink` interface.\n\nThe `LogSink` interface is intended for logging library implementers.  It is a\npure interface which can be implemented by logging frameworks to provide the actual logging\nfunctionality.\n\nThis decoupling allows application and library developers to write code in\nterms of `logr.Logger` (which has very low dependency fan-out) while the\nimplementation of logging is managed \"up stack\" (e.g. in or near `main()`.)\nApplication developers can then switch out implementations as necessary.\n\nMany people assert that libraries should not be logging, and as such efforts\nlike this are pointless.  Those people are welcome to convince the authors of\nthe tens-of-thousands of libraries that *DO* write logs that they are all\nwrong.  In the meantime, logr takes a more practical approach.\n\n## Typical usage\n\nSomewhere, early in an application's life, it will make a decision about which\nlogging library (implementation) it actually wants to use.  Something like:\n\n```\n    func main() {\n        // ... other setup code ...\n\n        // Create the \"root\" logger.  We have chosen the \"logimpl\" implementation,\n        // which takes some initial parameters and returns a logr.Logger.\n        logger := logimpl.New(param1, param2)\n\n        // ... other setup code ...\n```\n\nMost apps will call into other libraries, create structures to govern the flow,\netc.  The `logr.Logger` object can be passed to these other libraries, stored\nin structs, or even used as a package-global variable, if needed.  For example:\n\n```\n    app := createTheAppObject(logger)\n    app.Run()\n```\n\nOutside of this early setup, no other packages need to know about the choice of\nimplementation.  They write logs in terms of the `logr.Logger` that they\nreceived:\n\n```\n    type appObject struct {\n        // ... other fields ...\n        logger logr.Logger\n        // ... other fields ...\n    }\n\n    func (app *appObject) Run() {\n        app.logger.Info(\"starting up\", \"timestamp\", time.Now())\n\n        // ... app code ...\n```\n\n## Background\n\nIf the Go standard library had defined an interface for logging, this project\nprobably would not be needed.  Alas, here we are.\n\nWhen the Go developers started developing such an interface with\n[slog](https://github.com/golang/go/issues/56345), they adopted some of the\nlogr design but also left out some parts and changed others:\n\n| Feature | logr | slog |\n|---------|------|------|\n| High-level API | `Logger` (passed by value) | `Logger` (passed by [pointer](https://github.com/golang/go/issues/59126)) |\n| Low-level API | `LogSink` | `Handler` |\n| Stack unwinding | done by `LogSink` | done by `Logger` |\n| Skipping helper functions | `WithCallDepth`, `WithCallStackHelper` | [not supported by Logger](https://github.com/golang/go/issues/59145) |\n| Generating a value for logging on demand | `Marshaler` | `LogValuer` |\n| Log levels | >= 0, higher meaning \"less important\" | positive and negative, with 0 for \"info\" and higher meaning \"more important\" |\n| Error log entries | always logged, don't have a verbosity level | normal log entries with level >= `LevelError` |\n| Passing logger via context | `NewContext`, `FromContext` | no API |\n| Adding a name to a logger | `WithName` | no API |\n| Modify verbosity of log entries in a call chain | `V` | no API |\n| Grouping of key/value pairs | not supported | `WithGroup`, `GroupValue` |\n| Pass context for extracting additional values | no API | API variants like `InfoCtx` |\n\nThe high-level slog API is explicitly meant to be one of many different APIs\nthat can be layered on top of a shared `slog.Handler`. logr is one such\nalternative API, with [interoperability](#slog-interoperability) provided by\nsome conversion functions.\n\n### Inspiration\n\nBefore you consider this package, please read [this blog post by the\ninimitable Dave Cheney][warning-makes-no-sense].  We really appreciate what\nhe has to say, and it largely aligns with our own experiences.\n\n### Differences from Dave's ideas\n\nThe main differences are:\n\n1. Dave basically proposes doing away with the notion of a logging API in favor\nof `fmt.Printf()`.  We disagree, especially when you consider things like output\nlocations, timestamps, file and line decorations, and structured logging.  This\npackage restricts the logging API to just 2 types of logs: info and error.\n\nInfo logs are things you want to tell the user which are not errors.  Error\nlogs are, well, errors.  If your code receives an `error` from a subordinate\nfunction call and is logging that `error` *and not returning it*, use error\nlogs.\n\n2. Verbosity-levels on info logs.  This gives developers a chance to indicate\narbitrary grades of importance for info logs, without assigning names with\nsemantic meaning such as \"warning\", \"trace\", and \"debug.\"  Superficially this\nmay feel very similar, but the primary difference is the lack of semantics.\nBecause verbosity is a numerical value, it's safe to assume that an app running\nwith higher verbosity means more (and less important) logs will be generated.\n\n## Implementations (non-exhaustive)\n\nThere are implementations for the following logging libraries:\n\n- **a function** (can bridge to non-structured libraries): [funcr](https://github.com/go-logr/logr/tree/master/funcr)\n- **a testing.T** (for use in Go tests, with JSON-like output): [testr](https://github.com/go-logr/logr/tree/master/testr)\n- **github.com/google/glog**: [glogr](https://github.com/go-logr/glogr)\n- **k8s.io/klog** (for Kubernetes): [klogr](https://git.k8s.io/klog/klogr)\n- **a testing.T** (with klog-like text output): [ktesting](https://git.k8s.io/klog/ktesting)\n- **go.uber.org/zap**: [zapr](https://github.com/go-logr/zapr)\n- **log** (the Go standard library logger): [stdr](https://github.com/go-logr/stdr)\n- **github.com/sirupsen/logrus**: [logrusr](https://github.com/bombsimon/logrusr)\n- **github.com/wojas/genericr**: [genericr](https://github.com/wojas/genericr) (makes it easy to implement your own backend)\n- **logfmt** (Heroku style [logging](https://www.brandur.org/logfmt)): [logfmtr](https://github.com/iand/logfmtr)\n- **github.com/rs/zerolog**: [zerologr](https://github.com/go-logr/zerologr)\n- **github.com/go-kit/log**: [gokitlogr](https://github.com/tonglil/gokitlogr) (also compatible with github.com/go-kit/kit/log since v0.12.0)\n- **bytes.Buffer** (writing to a buffer): [bufrlogr](https://github.com/tonglil/buflogr) (useful for ensuring values were logged, like during testing)\n\n## slog interoperability\n\nInteroperability goes both ways, using the `logr.Logger` API with a `slog.Handler`\nand using the `slog.Logger` API with a `logr.LogSink`. `FromSlogHandler` and\n`ToSlogHandler` convert between a `logr.Logger` and a `slog.Handler`.\nAs usual, `slog.New` can be used to wrap such a `slog.Handler` in the high-level\nslog API.\n\n### Using a `logr.LogSink` as backend for slog\n\nIdeally, a logr sink implementation should support both logr and slog by\nimplementing both the normal logr interface(s) and `SlogSink`.  Because\nof a conflict in the parameters of the common `Enabled` method, it is [not\npossible to implement both slog.Handler and logr.Sink in the same\ntype](https://github.com/golang/go/issues/59110).\n\nIf both are supported, log calls can go from the high-level APIs to the backend\nwithout the need to convert parameters. `FromSlogHandler` and `ToSlogHandler` can\nconvert back and forth without adding additional wrappers, with one exception:\nwhen `Logger.V` was used to adjust the verbosity for a `slog.Handler`, then\n`ToSlogHandler` has to use a wrapper which adjusts the verbosity for future\nlog calls.\n\nSuch an implementation should also support values that implement specific\ninterfaces from both packages for logging (`logr.Marshaler`, `slog.LogValuer`,\n`slog.GroupValue`). logr does not convert those.\n\nNot supporting slog has several drawbacks:\n- Recording source code locations works correctly if the handler gets called\n  through `slog.Logger`, but may be wrong in other cases. That's because a\n  `logr.Sink` does its own stack unwinding instead of using the program counter\n  provided by the high-level API.\n- slog levels <= 0 can be mapped to logr levels by negating the level without a\n  loss of information. But all slog levels > 0 (e.g. `slog.LevelWarning` as\n  used by `slog.Logger.Warn`) must be mapped to 0 before calling the sink\n  because logr does not support \"more important than info\" levels.\n- The slog group concept is supported by prefixing each key in a key/value\n  pair with the group names, separated by a dot. For structured output like\n  JSON it would be better to group the key/value pairs inside an object.\n- Special slog values and interfaces don't work as expected.\n- The overhead is likely to be higher.\n\nThese drawbacks are severe enough that applications using a mixture of slog and\nlogr should switch to a different backend.\n\n### Using a `slog.Handler` as backend for logr\n\nUsing a plain `slog.Handler` without support for logr works better than the\nother direction:\n- All logr verbosity levels can be mapped 1:1 to their corresponding slog level\n  by negating them.\n- Stack unwinding is done by the `SlogSink` and the resulting program\n  counter is passed to the `slog.Handler`.\n- Names added via `Logger.WithName` are gathered and recorded in an additional\n  attribute with `logger` as key and the names separated by slash as value.\n- `Logger.Error` is turned into a log record with `slog.LevelError` as level\n  and an additional attribute with `err` as key, if an error was provided.\n\nThe main drawback is that `logr.Marshaler` will not be supported. Types should\nideally support both `logr.Marshaler` and `slog.Valuer`. If compatibility\nwith logr implementations without slog support is not important, then\n`slog.Valuer` is sufficient.\n\n### Context support for slog\n\nStoring a logger in a `context.Context` is not supported by\nslog. `NewContextWithSlogLogger` and `FromContextAsSlogLogger` can be\nused to fill this gap. They store and retrieve a `slog.Logger` pointer\nunder the same context key that is also used by `NewContext` and\n`FromContext` for `logr.Logger` value.\n\nWhen `NewContextWithSlogLogger` is followed by `FromContext`, the latter will\nautomatically convert the `slog.Logger` to a\n`logr.Logger`. `FromContextAsSlogLogger` does the same for the other direction.\n\nWith this approach, binaries which use either slog or logr are as efficient as\npossible with no unnecessary allocations. This is also why the API stores a\n`slog.Logger` pointer: when storing a `slog.Handler`, creating a `slog.Logger`\non retrieval would need to allocate one.\n\nThe downside is that switching back and forth needs more allocations. Because\nlogr is the API that is already in use by different packages, in particular\nKubernetes, the recommendation is to use the `logr.Logger` API in code which\nuses contextual logging.\n\nAn alternative to adding values to a logger and storing that logger in the\ncontext is to store the values in the context and to configure a logging\nbackend to extract those values when emitting log entries. This only works when\nlog calls are passed the context, which is not supported by the logr API.\n\nWith the slog API, it is possible, but not\nrequired. https://github.com/veqryn/slog-context is a package for slog which\nprovides additional support code for this approach. It also contains wrappers\nfor the context functions in logr, so developers who prefer to not use the logr\nAPIs directly can use those instead and the resulting code will still be\ninteroperable with logr.\n\n## FAQ\n\n### Conceptual\n\n#### Why structured logging?\n\n- **Structured logs are more easily queryable**: Since you've got\n  key-value pairs, it's much easier to query your structured logs for\n  particular values by filtering on the contents of a particular key --\n  think searching request logs for error codes, Kubernetes reconcilers for\n  the name and namespace of the reconciled object, etc.\n\n- **Structured logging makes it easier to have cross-referenceable logs**:\n  Similarly to searchability, if you maintain conventions around your\n  keys, it becomes easy to gather all log lines related to a particular\n  concept.\n\n- **Structured logs allow better dimensions of filtering**: if you have\n  structure to your logs, you've got more precise control over how much\n  information is logged -- you might choose in a particular configuration\n  to log certain keys but not others, only log lines where a certain key\n  matches a certain value, etc., instead of just having v-levels and names\n  to key off of.\n\n- **Structured logs better represent structured data**: sometimes, the\n  data that you want to log is inherently structured (think tuple-link\n  objects.)  Structured logs allow you to preserve that structure when\n  outputting.\n\n#### Why V-levels?\n\n**V-levels give operators an easy way to control the chattiness of log\noperations**.  V-levels provide a way for a given package to distinguish\nthe relative importance or verbosity of a given log message.  Then, if\na particular logger or package is logging too many messages, the user\nof the package can simply change the v-levels for that library.\n\n#### Why not named levels, like Info/Warning/Error?\n\nRead [Dave Cheney's post][warning-makes-no-sense].  Then read [Differences\nfrom Dave's ideas](#differences-from-daves-ideas).\n\n#### Why not allow format strings, too?\n\n**Format strings negate many of the benefits of structured logs**:\n\n- They're not easily searchable without resorting to fuzzy searching,\n  regular expressions, etc.\n\n- They don't store structured data well, since contents are flattened into\n  a string.\n\n- They're not cross-referenceable.\n\n- They don't compress easily, since the message is not constant.\n\n(Unless you turn positional parameters into key-value pairs with numerical\nkeys, at which point you've gotten key-value logging with meaningless\nkeys.)\n\n### Practical\n\n#### Why key-value pairs, and not a map?\n\nKey-value pairs are *much* easier to optimize, especially around\nallocations.  Zap (a structured logger that inspired logr's interface) has\n[performance measurements](https://github.com/uber-go/zap#performance)\nthat show this quite nicely.\n\nWhile the interface ends up being a little less obvious, you get\npotentially better performance, plus avoid making users type\n`map[string]string{}` every time they want to log.\n\n#### What if my V-levels differ between libraries?\n\nThat's fine.  Control your V-levels on a per-logger basis, and use the\n`WithName` method to pass different loggers to different libraries.\n\nGenerally, you should take care to ensure that you have relatively\nconsistent V-levels within a given logger, however, as this makes deciding\non what verbosity of logs to request easier.\n\n#### But I really want to use a format string!\n\nThat's not actually a question.  Assuming your question is \"how do\nI convert my mental model of logging with format strings to logging with\nconstant messages\":\n\n1. Figure out what the error actually is, as you'd write in a TL;DR style,\n   and use that as a message.\n\n2. For every place you'd write a format specifier, look to the word before\n   it, and add that as a key value pair.\n\nFor instance, consider the following examples (all taken from spots in the\nKubernetes codebase):\n\n- `klog.V(4).Infof(\"Client is returning errors: code %v, error %v\",\n  responseCode, err)` becomes `logger.Error(err, \"client returned an\n  error\", \"code\", responseCode)`\n\n- `klog.V(4).Infof(\"Got a Retry-After %ds response for attempt %d to %v\",\n  seconds, retries, url)` becomes `logger.V(4).Info(\"got a retry-after\n  response when requesting url\", \"attempt\", retries, \"after\n  seconds\", seconds, \"url\", url)`\n\nIf you *really* must use a format string, use it in a key's value, and\ncall `fmt.Sprintf` yourself.  For instance: `log.Printf(\"unable to\nreflect over type %T\")` becomes `logger.Info(\"unable to reflect over\ntype\", \"type\", fmt.Sprintf(\"%T\"))`.  In general though, the cases where\nthis is necessary should be few and far between.\n\n#### How do I choose my V-levels?\n\nThis is basically the only hard constraint: increase V-levels to denote\nmore verbose or more debug-y logs.\n\nOtherwise, you can start out with `0` as \"you always want to see this\",\n`1` as \"common logging that you might *possibly* want to turn off\", and\n`10` as \"I would like to performance-test your log collection stack.\"\n\nThen gradually choose levels in between as you need them, working your way\ndown from 10 (for debug and trace style logs) and up from 1 (for chattier\ninfo-type logs). For reference, slog pre-defines -4 for debug logs\n(corresponds to 4 in logr), which matches what is\n[recommended for Kubernetes](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md#what-method-to-use).\n\n#### How do I choose my keys?\n\nKeys are fairly flexible, and can hold more or less any string\nvalue. For best compatibility with implementations and consistency\nwith existing code in other projects, there are a few conventions you\nshould consider.\n\n- Make your keys human-readable.\n- Constant keys are generally a good idea.\n- Be consistent across your codebase.\n- Keys should naturally match parts of the message string.\n- Use lower case for simple keys and\n  [lowerCamelCase](https://en.wiktionary.org/wiki/lowerCamelCase) for\n  more complex ones. Kubernetes is one example of a project that has\n  [adopted that\n  convention](https://github.com/kubernetes/community/blob/HEAD/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments).\n\nWhile key names are mostly unrestricted (and spaces are acceptable),\nit's generally a good idea to stick to printable ascii characters, or at\nleast match the general character set of your log lines.\n\n#### Why should keys be constant values?\n\nThe point of structured logging is to make later log processing easier.  Your\nkeys are, effectively, the schema of each log message.  If you use different\nkeys across instances of the same log line, you will make your structured logs\nmuch harder to use.  `Sprintf()` is for values, not for keys!\n\n#### Why is this not a pure interface?\n\nThe Logger type is implemented as a struct in order to allow the Go compiler to\noptimize things like high-V `Info` logs that are not triggered.  Not all of\nthese implementations are implemented yet, but this structure was suggested as\na way to ensure they *can* be implemented.  All of the real work is behind the\n`LogSink` interface.\n\n[warning-makes-no-sense]: http://dave.cheney.net/2015/11/05/lets-talk-about-logging\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/SECURITY.md",
    "content": "# Security Policy\n\nIf you have discovered a security vulnerability in this project, please report it\nprivately. **Do not disclose it as a public issue.** This gives us time to work with you\nto fix the issue before public exposure, reducing the chance that the exploit will be\nused before a patch is released.\n\nYou may submit the report in the following ways:\n\n- send an email to go-logr-security@googlegroups.com\n- send us a [private vulnerability report](https://github.com/go-logr/logr/security/advisories/new)\n\nPlease provide the following information in your report:\n\n- A description of the vulnerability and its impact\n- How to reproduce the issue\n\nWe ask that you give us 90 days to work on a fix before public exposure.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/context.go",
    "content": "/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\n// contextKey is how we find Loggers in a context.Context. With Go < 1.21,\n// the value is always a Logger value. With Go >= 1.21, the value can be a\n// Logger value or a slog.Logger pointer.\ntype contextKey struct{}\n\n// notFoundError exists to carry an IsNotFound method.\ntype notFoundError struct{}\n\nfunc (notFoundError) Error() string {\n\treturn \"no logr.Logger was present\"\n}\n\nfunc (notFoundError) IsNotFound() bool {\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/context_noslog.go",
    "content": "//go:build !go1.21\n// +build !go1.21\n\n/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n)\n\n// FromContext returns a Logger from ctx or an error if no Logger is found.\nfunc FromContext(ctx context.Context) (Logger, error) {\n\tif v, ok := ctx.Value(contextKey{}).(Logger); ok {\n\t\treturn v, nil\n\t}\n\n\treturn Logger{}, notFoundError{}\n}\n\n// FromContextOrDiscard returns a Logger from ctx.  If no Logger is found, this\n// returns a Logger that discards all log messages.\nfunc FromContextOrDiscard(ctx context.Context) Logger {\n\tif v, ok := ctx.Value(contextKey{}).(Logger); ok {\n\t\treturn v\n\t}\n\n\treturn Discard()\n}\n\n// NewContext returns a new Context, derived from ctx, which carries the\n// provided Logger.\nfunc NewContext(ctx context.Context, logger Logger) context.Context {\n\treturn context.WithValue(ctx, contextKey{}, logger)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/context_slog.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"log/slog\"\n)\n\n// FromContext returns a Logger from ctx or an error if no Logger is found.\nfunc FromContext(ctx context.Context) (Logger, error) {\n\tv := ctx.Value(contextKey{})\n\tif v == nil {\n\t\treturn Logger{}, notFoundError{}\n\t}\n\n\tswitch v := v.(type) {\n\tcase Logger:\n\t\treturn v, nil\n\tcase *slog.Logger:\n\t\treturn FromSlogHandler(v.Handler()), nil\n\tdefault:\n\t\t// Not reached.\n\t\tpanic(fmt.Sprintf(\"unexpected value type for logr context key: %T\", v))\n\t}\n}\n\n// FromContextAsSlogLogger returns a slog.Logger from ctx or nil if no such Logger is found.\nfunc FromContextAsSlogLogger(ctx context.Context) *slog.Logger {\n\tv := ctx.Value(contextKey{})\n\tif v == nil {\n\t\treturn nil\n\t}\n\n\tswitch v := v.(type) {\n\tcase Logger:\n\t\treturn slog.New(ToSlogHandler(v))\n\tcase *slog.Logger:\n\t\treturn v\n\tdefault:\n\t\t// Not reached.\n\t\tpanic(fmt.Sprintf(\"unexpected value type for logr context key: %T\", v))\n\t}\n}\n\n// FromContextOrDiscard returns a Logger from ctx.  If no Logger is found, this\n// returns a Logger that discards all log messages.\nfunc FromContextOrDiscard(ctx context.Context) Logger {\n\tif logger, err := FromContext(ctx); err == nil {\n\t\treturn logger\n\t}\n\treturn Discard()\n}\n\n// NewContext returns a new Context, derived from ctx, which carries the\n// provided Logger.\nfunc NewContext(ctx context.Context, logger Logger) context.Context {\n\treturn context.WithValue(ctx, contextKey{}, logger)\n}\n\n// NewContextWithSlogLogger returns a new Context, derived from ctx, which carries the\n// provided slog.Logger.\nfunc NewContextWithSlogLogger(ctx context.Context, logger *slog.Logger) context.Context {\n\treturn context.WithValue(ctx, contextKey{}, logger)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/discard.go",
    "content": "/*\nCopyright 2020 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\n// Discard returns a Logger that discards all messages logged to it.  It can be\n// used whenever the caller is not interested in the logs.  Logger instances\n// produced by this function always compare as equal.\nfunc Discard() Logger {\n\treturn New(nil)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/funcr/funcr.go",
    "content": "/*\nCopyright 2021 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package funcr implements formatting of structured log messages and\n// optionally captures the call site and timestamp.\n//\n// The simplest way to use it is via its implementation of a\n// github.com/go-logr/logr.LogSink with output through an arbitrary\n// \"write\" function.  See New and NewJSON for details.\n//\n// # Custom LogSinks\n//\n// For users who need more control, a funcr.Formatter can be embedded inside\n// your own custom LogSink implementation. This is useful when the LogSink\n// needs to implement additional methods, for example.\n//\n// # Formatting\n//\n// This will respect logr.Marshaler, fmt.Stringer, and error interfaces for\n// values which are being logged.  When rendering a struct, funcr will use Go's\n// standard JSON tags (all except \"string\").\npackage funcr\n\nimport (\n\t\"bytes\"\n\t\"encoding\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/go-logr/logr\"\n)\n\n// New returns a logr.Logger which is implemented by an arbitrary function.\nfunc New(fn func(prefix, args string), opts Options) logr.Logger {\n\treturn logr.New(newSink(fn, NewFormatter(opts)))\n}\n\n// NewJSON returns a logr.Logger which is implemented by an arbitrary function\n// and produces JSON output.\nfunc NewJSON(fn func(obj string), opts Options) logr.Logger {\n\tfnWrapper := func(_, obj string) {\n\t\tfn(obj)\n\t}\n\treturn logr.New(newSink(fnWrapper, NewFormatterJSON(opts)))\n}\n\n// Underlier exposes access to the underlying logging function. Since\n// callers only have a logr.Logger, they have to know which\n// implementation is in use, so this interface is less of an\n// abstraction and more of a way to test type conversion.\ntype Underlier interface {\n\tGetUnderlying() func(prefix, args string)\n}\n\nfunc newSink(fn func(prefix, args string), formatter Formatter) logr.LogSink {\n\tl := &fnlogger{\n\t\tFormatter: formatter,\n\t\twrite:     fn,\n\t}\n\t// For skipping fnlogger.Info and fnlogger.Error.\n\tl.Formatter.AddCallDepth(1)\n\treturn l\n}\n\n// Options carries parameters which influence the way logs are generated.\ntype Options struct {\n\t// LogCaller tells funcr to add a \"caller\" key to some or all log lines.\n\t// This has some overhead, so some users might not want it.\n\tLogCaller MessageClass\n\n\t// LogCallerFunc tells funcr to also log the calling function name.  This\n\t// has no effect if caller logging is not enabled (see Options.LogCaller).\n\tLogCallerFunc bool\n\n\t// LogTimestamp tells funcr to add a \"ts\" key to log lines.  This has some\n\t// overhead, so some users might not want it.\n\tLogTimestamp bool\n\n\t// TimestampFormat tells funcr how to render timestamps when LogTimestamp\n\t// is enabled.  If not specified, a default format will be used.  For more\n\t// details, see docs for Go's time.Layout.\n\tTimestampFormat string\n\n\t// LogInfoLevel tells funcr what key to use to log the info level.\n\t// If not specified, the info level will be logged as \"level\".\n\t// If this is set to \"\", the info level will not be logged at all.\n\tLogInfoLevel *string\n\n\t// Verbosity tells funcr which V logs to produce.  Higher values enable\n\t// more logs.  Info logs at or below this level will be written, while logs\n\t// above this level will be discarded.\n\tVerbosity int\n\n\t// RenderBuiltinsHook allows users to mutate the list of key-value pairs\n\t// while a log line is being rendered.  The kvList argument follows logr\n\t// conventions - each pair of slice elements is comprised of a string key\n\t// and an arbitrary value (verified and sanitized before calling this\n\t// hook).  The value returned must follow the same conventions.  This hook\n\t// can be used to audit or modify logged data.  For example, you might want\n\t// to prefix all of funcr's built-in keys with some string.  This hook is\n\t// only called for built-in (provided by funcr itself) key-value pairs.\n\t// Equivalent hooks are offered for key-value pairs saved via\n\t// logr.Logger.WithValues or Formatter.AddValues (see RenderValuesHook) and\n\t// for user-provided pairs (see RenderArgsHook).\n\tRenderBuiltinsHook func(kvList []any) []any\n\n\t// RenderValuesHook is the same as RenderBuiltinsHook, except that it is\n\t// only called for key-value pairs saved via logr.Logger.WithValues.  See\n\t// RenderBuiltinsHook for more details.\n\tRenderValuesHook func(kvList []any) []any\n\n\t// RenderArgsHook is the same as RenderBuiltinsHook, except that it is only\n\t// called for key-value pairs passed directly to Info and Error.  See\n\t// RenderBuiltinsHook for more details.\n\tRenderArgsHook func(kvList []any) []any\n\n\t// MaxLogDepth tells funcr how many levels of nested fields (e.g. a struct\n\t// that contains a struct, etc.) it may log.  Every time it finds a struct,\n\t// slice, array, or map the depth is increased by one.  When the maximum is\n\t// reached, the value will be converted to a string indicating that the max\n\t// depth has been exceeded.  If this field is not specified, a default\n\t// value will be used.\n\tMaxLogDepth int\n}\n\n// MessageClass indicates which category or categories of messages to consider.\ntype MessageClass int\n\nconst (\n\t// None ignores all message classes.\n\tNone MessageClass = iota\n\t// All considers all message classes.\n\tAll\n\t// Info only considers info messages.\n\tInfo\n\t// Error only considers error messages.\n\tError\n)\n\n// fnlogger inherits some of its LogSink implementation from Formatter\n// and just needs to add some glue code.\ntype fnlogger struct {\n\tFormatter\n\twrite func(prefix, args string)\n}\n\nfunc (l fnlogger) WithName(name string) logr.LogSink {\n\tl.Formatter.AddName(name)\n\treturn &l\n}\n\nfunc (l fnlogger) WithValues(kvList ...any) logr.LogSink {\n\tl.Formatter.AddValues(kvList)\n\treturn &l\n}\n\nfunc (l fnlogger) WithCallDepth(depth int) logr.LogSink {\n\tl.Formatter.AddCallDepth(depth)\n\treturn &l\n}\n\nfunc (l fnlogger) Info(level int, msg string, kvList ...any) {\n\tprefix, args := l.FormatInfo(level, msg, kvList)\n\tl.write(prefix, args)\n}\n\nfunc (l fnlogger) Error(err error, msg string, kvList ...any) {\n\tprefix, args := l.FormatError(err, msg, kvList)\n\tl.write(prefix, args)\n}\n\nfunc (l fnlogger) GetUnderlying() func(prefix, args string) {\n\treturn l.write\n}\n\n// Assert conformance to the interfaces.\nvar _ logr.LogSink = &fnlogger{}\nvar _ logr.CallDepthLogSink = &fnlogger{}\nvar _ Underlier = &fnlogger{}\n\n// NewFormatter constructs a Formatter which emits a JSON-like key=value format.\nfunc NewFormatter(opts Options) Formatter {\n\treturn newFormatter(opts, outputKeyValue)\n}\n\n// NewFormatterJSON constructs a Formatter which emits strict JSON.\nfunc NewFormatterJSON(opts Options) Formatter {\n\treturn newFormatter(opts, outputJSON)\n}\n\n// Defaults for Options.\nconst defaultTimestampFormat = \"2006-01-02 15:04:05.000000\"\nconst defaultMaxLogDepth = 16\n\nfunc newFormatter(opts Options, outfmt outputFormat) Formatter {\n\tif opts.TimestampFormat == \"\" {\n\t\topts.TimestampFormat = defaultTimestampFormat\n\t}\n\tif opts.MaxLogDepth == 0 {\n\t\topts.MaxLogDepth = defaultMaxLogDepth\n\t}\n\tif opts.LogInfoLevel == nil {\n\t\topts.LogInfoLevel = new(string)\n\t\t*opts.LogInfoLevel = \"level\"\n\t}\n\tf := Formatter{\n\t\toutputFormat: outfmt,\n\t\tprefix:       \"\",\n\t\tvalues:       nil,\n\t\tdepth:        0,\n\t\topts:         &opts,\n\t}\n\treturn f\n}\n\n// Formatter is an opaque struct which can be embedded in a LogSink\n// implementation. It should be constructed with NewFormatter. Some of\n// its methods directly implement logr.LogSink.\ntype Formatter struct {\n\toutputFormat outputFormat\n\tprefix       string\n\tvalues       []any\n\tvaluesStr    string\n\tdepth        int\n\topts         *Options\n\tgroupName    string // for slog groups\n\tgroups       []groupDef\n}\n\n// outputFormat indicates which outputFormat to use.\ntype outputFormat int\n\nconst (\n\t// outputKeyValue emits a JSON-like key=value format, but not strict JSON.\n\toutputKeyValue outputFormat = iota\n\t// outputJSON emits strict JSON.\n\toutputJSON\n)\n\n// groupDef represents a saved group.  The values may be empty, but we don't\n// know if we need to render the group until the final record is rendered.\ntype groupDef struct {\n\tname   string\n\tvalues string\n}\n\n// PseudoStruct is a list of key-value pairs that gets logged as a struct.\ntype PseudoStruct []any\n\n// render produces a log line, ready to use.\nfunc (f Formatter) render(builtins, args []any) string {\n\t// Empirically bytes.Buffer is faster than strings.Builder for this.\n\tbuf := bytes.NewBuffer(make([]byte, 0, 1024))\n\n\tif f.outputFormat == outputJSON {\n\t\tbuf.WriteByte('{') // for the whole record\n\t}\n\n\t// Render builtins\n\tvals := builtins\n\tif hook := f.opts.RenderBuiltinsHook; hook != nil {\n\t\tvals = hook(f.sanitize(vals))\n\t}\n\tf.flatten(buf, vals, false) // keys are ours, no need to escape\n\tcontinuing := len(builtins) > 0\n\n\t// Turn the inner-most group into a string\n\targsStr := func() string {\n\t\tbuf := bytes.NewBuffer(make([]byte, 0, 1024))\n\n\t\tvals = args\n\t\tif hook := f.opts.RenderArgsHook; hook != nil {\n\t\t\tvals = hook(f.sanitize(vals))\n\t\t}\n\t\tf.flatten(buf, vals, true) // escape user-provided keys\n\n\t\treturn buf.String()\n\t}()\n\n\t// Render the stack of groups from the inside out.\n\tbodyStr := f.renderGroup(f.groupName, f.valuesStr, argsStr)\n\tfor i := len(f.groups) - 1; i >= 0; i-- {\n\t\tgrp := &f.groups[i]\n\t\tif grp.values == \"\" && bodyStr == \"\" {\n\t\t\t// no contents, so we must elide the whole group\n\t\t\tcontinue\n\t\t}\n\t\tbodyStr = f.renderGroup(grp.name, grp.values, bodyStr)\n\t}\n\n\tif bodyStr != \"\" {\n\t\tif continuing {\n\t\t\tbuf.WriteByte(f.comma())\n\t\t}\n\t\tbuf.WriteString(bodyStr)\n\t}\n\n\tif f.outputFormat == outputJSON {\n\t\tbuf.WriteByte('}') // for the whole record\n\t}\n\n\treturn buf.String()\n}\n\n// renderGroup returns a string representation of the named group with rendered\n// values and args.  If the name is empty, this will return the values and args,\n// joined.  If the name is not empty, this will return a single key-value pair,\n// where the value is a grouping of the values and args.  If the values and\n// args are both empty, this will return an empty string, even if the name was\n// specified.\nfunc (f Formatter) renderGroup(name string, values string, args string) string {\n\tbuf := bytes.NewBuffer(make([]byte, 0, 1024))\n\n\tneedClosingBrace := false\n\tif name != \"\" && (values != \"\" || args != \"\") {\n\t\tbuf.WriteString(f.quoted(name, true)) // escape user-provided keys\n\t\tbuf.WriteByte(f.colon())\n\t\tbuf.WriteByte('{')\n\t\tneedClosingBrace = true\n\t}\n\n\tcontinuing := false\n\tif values != \"\" {\n\t\tbuf.WriteString(values)\n\t\tcontinuing = true\n\t}\n\n\tif args != \"\" {\n\t\tif continuing {\n\t\t\tbuf.WriteByte(f.comma())\n\t\t}\n\t\tbuf.WriteString(args)\n\t}\n\n\tif needClosingBrace {\n\t\tbuf.WriteByte('}')\n\t}\n\n\treturn buf.String()\n}\n\n// flatten renders a list of key-value pairs into a buffer.  If escapeKeys is\n// true, the keys are assumed to have non-JSON-compatible characters in them\n// and must be evaluated for escapes.\n//\n// This function returns a potentially modified version of kvList, which\n// ensures that there is a value for every key (adding a value if needed) and\n// that each key is a string (substituting a key if needed).\nfunc (f Formatter) flatten(buf *bytes.Buffer, kvList []any, escapeKeys bool) []any {\n\t// This logic overlaps with sanitize() but saves one type-cast per key,\n\t// which can be measurable.\n\tif len(kvList)%2 != 0 {\n\t\tkvList = append(kvList, noValue)\n\t}\n\tcopied := false\n\tfor i := 0; i < len(kvList); i += 2 {\n\t\tk, ok := kvList[i].(string)\n\t\tif !ok {\n\t\t\tif !copied {\n\t\t\t\tnewList := make([]any, len(kvList))\n\t\t\t\tcopy(newList, kvList)\n\t\t\t\tkvList = newList\n\t\t\t\tcopied = true\n\t\t\t}\n\t\t\tk = f.nonStringKey(kvList[i])\n\t\t\tkvList[i] = k\n\t\t}\n\t\tv := kvList[i+1]\n\n\t\tif i > 0 {\n\t\t\tif f.outputFormat == outputJSON {\n\t\t\t\tbuf.WriteByte(f.comma())\n\t\t\t} else {\n\t\t\t\t// In theory the format could be something we don't understand.  In\n\t\t\t\t// practice, we control it, so it won't be.\n\t\t\t\tbuf.WriteByte(' ')\n\t\t\t}\n\t\t}\n\n\t\tbuf.WriteString(f.quoted(k, escapeKeys))\n\t\tbuf.WriteByte(f.colon())\n\t\tbuf.WriteString(f.pretty(v))\n\t}\n\treturn kvList\n}\n\nfunc (f Formatter) quoted(str string, escape bool) string {\n\tif escape {\n\t\treturn prettyString(str)\n\t}\n\t// this is faster\n\treturn `\"` + str + `\"`\n}\n\nfunc (f Formatter) comma() byte {\n\tif f.outputFormat == outputJSON {\n\t\treturn ','\n\t}\n\treturn ' '\n}\n\nfunc (f Formatter) colon() byte {\n\tif f.outputFormat == outputJSON {\n\t\treturn ':'\n\t}\n\treturn '='\n}\n\nfunc (f Formatter) pretty(value any) string {\n\treturn f.prettyWithFlags(value, 0, 0)\n}\n\nconst (\n\tflagRawStruct = 0x1 // do not print braces on structs\n)\n\n// TODO: This is not fast. Most of the overhead goes here.\nfunc (f Formatter) prettyWithFlags(value any, flags uint32, depth int) string {\n\tif depth > f.opts.MaxLogDepth {\n\t\treturn `\"<max-log-depth-exceeded>\"`\n\t}\n\n\t// Handle types that take full control of logging.\n\tif v, ok := value.(logr.Marshaler); ok {\n\t\t// Replace the value with what the type wants to get logged.\n\t\t// That then gets handled below via reflection.\n\t\tvalue = invokeMarshaler(v)\n\t}\n\n\t// Handle types that want to format themselves.\n\tswitch v := value.(type) {\n\tcase fmt.Stringer:\n\t\tvalue = invokeStringer(v)\n\tcase error:\n\t\tvalue = invokeError(v)\n\t}\n\n\t// Handling the most common types without reflect is a small perf win.\n\tswitch v := value.(type) {\n\tcase bool:\n\t\treturn strconv.FormatBool(v)\n\tcase string:\n\t\treturn prettyString(v)\n\tcase int:\n\t\treturn strconv.FormatInt(int64(v), 10)\n\tcase int8:\n\t\treturn strconv.FormatInt(int64(v), 10)\n\tcase int16:\n\t\treturn strconv.FormatInt(int64(v), 10)\n\tcase int32:\n\t\treturn strconv.FormatInt(int64(v), 10)\n\tcase int64:\n\t\treturn strconv.FormatInt(int64(v), 10)\n\tcase uint:\n\t\treturn strconv.FormatUint(uint64(v), 10)\n\tcase uint8:\n\t\treturn strconv.FormatUint(uint64(v), 10)\n\tcase uint16:\n\t\treturn strconv.FormatUint(uint64(v), 10)\n\tcase uint32:\n\t\treturn strconv.FormatUint(uint64(v), 10)\n\tcase uint64:\n\t\treturn strconv.FormatUint(v, 10)\n\tcase uintptr:\n\t\treturn strconv.FormatUint(uint64(v), 10)\n\tcase float32:\n\t\treturn strconv.FormatFloat(float64(v), 'f', -1, 32)\n\tcase float64:\n\t\treturn strconv.FormatFloat(v, 'f', -1, 64)\n\tcase complex64:\n\t\treturn `\"` + strconv.FormatComplex(complex128(v), 'f', -1, 64) + `\"`\n\tcase complex128:\n\t\treturn `\"` + strconv.FormatComplex(v, 'f', -1, 128) + `\"`\n\tcase PseudoStruct:\n\t\tbuf := bytes.NewBuffer(make([]byte, 0, 1024))\n\t\tv = f.sanitize(v)\n\t\tif flags&flagRawStruct == 0 {\n\t\t\tbuf.WriteByte('{')\n\t\t}\n\t\tfor i := 0; i < len(v); i += 2 {\n\t\t\tif i > 0 {\n\t\t\t\tbuf.WriteByte(f.comma())\n\t\t\t}\n\t\t\tk, _ := v[i].(string) // sanitize() above means no need to check success\n\t\t\t// arbitrary keys might need escaping\n\t\t\tbuf.WriteString(prettyString(k))\n\t\t\tbuf.WriteByte(f.colon())\n\t\t\tbuf.WriteString(f.prettyWithFlags(v[i+1], 0, depth+1))\n\t\t}\n\t\tif flags&flagRawStruct == 0 {\n\t\t\tbuf.WriteByte('}')\n\t\t}\n\t\treturn buf.String()\n\t}\n\n\tbuf := bytes.NewBuffer(make([]byte, 0, 256))\n\tt := reflect.TypeOf(value)\n\tif t == nil {\n\t\treturn \"null\"\n\t}\n\tv := reflect.ValueOf(value)\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\treturn strconv.FormatBool(v.Bool())\n\tcase reflect.String:\n\t\treturn prettyString(v.String())\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn strconv.FormatInt(int64(v.Int()), 10)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn strconv.FormatUint(uint64(v.Uint()), 10)\n\tcase reflect.Float32:\n\t\treturn strconv.FormatFloat(float64(v.Float()), 'f', -1, 32)\n\tcase reflect.Float64:\n\t\treturn strconv.FormatFloat(v.Float(), 'f', -1, 64)\n\tcase reflect.Complex64:\n\t\treturn `\"` + strconv.FormatComplex(complex128(v.Complex()), 'f', -1, 64) + `\"`\n\tcase reflect.Complex128:\n\t\treturn `\"` + strconv.FormatComplex(v.Complex(), 'f', -1, 128) + `\"`\n\tcase reflect.Struct:\n\t\tif flags&flagRawStruct == 0 {\n\t\t\tbuf.WriteByte('{')\n\t\t}\n\t\tprintComma := false // testing i>0 is not enough because of JSON omitted fields\n\t\tfor i := 0; i < t.NumField(); i++ {\n\t\t\tfld := t.Field(i)\n\t\t\tif fld.PkgPath != \"\" {\n\t\t\t\t// reflect says this field is only defined for non-exported fields.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !v.Field(i).CanInterface() {\n\t\t\t\t// reflect isn't clear exactly what this means, but we can't use it.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tname := \"\"\n\t\t\tomitempty := false\n\t\t\tif tag, found := fld.Tag.Lookup(\"json\"); found {\n\t\t\t\tif tag == \"-\" {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif comma := strings.Index(tag, \",\"); comma != -1 {\n\t\t\t\t\tif n := tag[:comma]; n != \"\" {\n\t\t\t\t\t\tname = n\n\t\t\t\t\t}\n\t\t\t\t\trest := tag[comma:]\n\t\t\t\t\tif strings.Contains(rest, \",omitempty,\") || strings.HasSuffix(rest, \",omitempty\") {\n\t\t\t\t\t\tomitempty = true\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tname = tag\n\t\t\t\t}\n\t\t\t}\n\t\t\tif omitempty && isEmpty(v.Field(i)) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif printComma {\n\t\t\t\tbuf.WriteByte(f.comma())\n\t\t\t}\n\t\t\tprintComma = true // if we got here, we are rendering a field\n\t\t\tif fld.Anonymous && fld.Type.Kind() == reflect.Struct && name == \"\" {\n\t\t\t\tbuf.WriteString(f.prettyWithFlags(v.Field(i).Interface(), flags|flagRawStruct, depth+1))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif name == \"\" {\n\t\t\t\tname = fld.Name\n\t\t\t}\n\t\t\t// field names can't contain characters which need escaping\n\t\t\tbuf.WriteString(f.quoted(name, false))\n\t\t\tbuf.WriteByte(f.colon())\n\t\t\tbuf.WriteString(f.prettyWithFlags(v.Field(i).Interface(), 0, depth+1))\n\t\t}\n\t\tif flags&flagRawStruct == 0 {\n\t\t\tbuf.WriteByte('}')\n\t\t}\n\t\treturn buf.String()\n\tcase reflect.Slice, reflect.Array:\n\t\t// If this is outputing as JSON make sure this isn't really a json.RawMessage.\n\t\t// If so just emit \"as-is\" and don't pretty it as that will just print\n\t\t// it as [X,Y,Z,...] which isn't terribly useful vs the string form you really want.\n\t\tif f.outputFormat == outputJSON {\n\t\t\tif rm, ok := value.(json.RawMessage); ok {\n\t\t\t\t// If it's empty make sure we emit an empty value as the array style would below.\n\t\t\t\tif len(rm) > 0 {\n\t\t\t\t\tbuf.Write(rm)\n\t\t\t\t} else {\n\t\t\t\t\tbuf.WriteString(\"null\")\n\t\t\t\t}\n\t\t\t\treturn buf.String()\n\t\t\t}\n\t\t}\n\t\tbuf.WriteByte('[')\n\t\tfor i := 0; i < v.Len(); i++ {\n\t\t\tif i > 0 {\n\t\t\t\tbuf.WriteByte(f.comma())\n\t\t\t}\n\t\t\te := v.Index(i)\n\t\t\tbuf.WriteString(f.prettyWithFlags(e.Interface(), 0, depth+1))\n\t\t}\n\t\tbuf.WriteByte(']')\n\t\treturn buf.String()\n\tcase reflect.Map:\n\t\tbuf.WriteByte('{')\n\t\t// This does not sort the map keys, for best perf.\n\t\tit := v.MapRange()\n\t\ti := 0\n\t\tfor it.Next() {\n\t\t\tif i > 0 {\n\t\t\t\tbuf.WriteByte(f.comma())\n\t\t\t}\n\t\t\t// If a map key supports TextMarshaler, use it.\n\t\t\tkeystr := \"\"\n\t\t\tif m, ok := it.Key().Interface().(encoding.TextMarshaler); ok {\n\t\t\t\ttxt, err := m.MarshalText()\n\t\t\t\tif err != nil {\n\t\t\t\t\tkeystr = fmt.Sprintf(\"<error-MarshalText: %s>\", err.Error())\n\t\t\t\t} else {\n\t\t\t\t\tkeystr = string(txt)\n\t\t\t\t}\n\t\t\t\tkeystr = prettyString(keystr)\n\t\t\t} else {\n\t\t\t\t// prettyWithFlags will produce already-escaped values\n\t\t\t\tkeystr = f.prettyWithFlags(it.Key().Interface(), 0, depth+1)\n\t\t\t\tif t.Key().Kind() != reflect.String {\n\t\t\t\t\t// JSON only does string keys.  Unlike Go's standard JSON, we'll\n\t\t\t\t\t// convert just about anything to a string.\n\t\t\t\t\tkeystr = prettyString(keystr)\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.WriteString(keystr)\n\t\t\tbuf.WriteByte(f.colon())\n\t\t\tbuf.WriteString(f.prettyWithFlags(it.Value().Interface(), 0, depth+1))\n\t\t\ti++\n\t\t}\n\t\tbuf.WriteByte('}')\n\t\treturn buf.String()\n\tcase reflect.Ptr, reflect.Interface:\n\t\tif v.IsNil() {\n\t\t\treturn \"null\"\n\t\t}\n\t\treturn f.prettyWithFlags(v.Elem().Interface(), 0, depth)\n\t}\n\treturn fmt.Sprintf(`\"<unhandled-%s>\"`, t.Kind().String())\n}\n\nfunc prettyString(s string) string {\n\t// Avoid escaping (which does allocations) if we can.\n\tif needsEscape(s) {\n\t\treturn strconv.Quote(s)\n\t}\n\tb := bytes.NewBuffer(make([]byte, 0, 1024))\n\tb.WriteByte('\"')\n\tb.WriteString(s)\n\tb.WriteByte('\"')\n\treturn b.String()\n}\n\n// needsEscape determines whether the input string needs to be escaped or not,\n// without doing any allocations.\nfunc needsEscape(s string) bool {\n\tfor _, r := range s {\n\t\tif !strconv.IsPrint(r) || r == '\\\\' || r == '\"' {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc isEmpty(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Complex64, reflect.Complex128:\n\t\treturn v.Complex() == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\t}\n\treturn false\n}\n\nfunc invokeMarshaler(m logr.Marshaler) (ret any) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tret = fmt.Sprintf(\"<panic: %s>\", r)\n\t\t}\n\t}()\n\treturn m.MarshalLog()\n}\n\nfunc invokeStringer(s fmt.Stringer) (ret string) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tret = fmt.Sprintf(\"<panic: %s>\", r)\n\t\t}\n\t}()\n\treturn s.String()\n}\n\nfunc invokeError(e error) (ret string) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tret = fmt.Sprintf(\"<panic: %s>\", r)\n\t\t}\n\t}()\n\treturn e.Error()\n}\n\n// Caller represents the original call site for a log line, after considering\n// logr.Logger.WithCallDepth and logr.Logger.WithCallStackHelper.  The File and\n// Line fields will always be provided, while the Func field is optional.\n// Users can set the render hook fields in Options to examine logged key-value\n// pairs, one of which will be {\"caller\", Caller} if the Options.LogCaller\n// field is enabled for the given MessageClass.\ntype Caller struct {\n\t// File is the basename of the file for this call site.\n\tFile string `json:\"file\"`\n\t// Line is the line number in the file for this call site.\n\tLine int `json:\"line\"`\n\t// Func is the function name for this call site, or empty if\n\t// Options.LogCallerFunc is not enabled.\n\tFunc string `json:\"function,omitempty\"`\n}\n\nfunc (f Formatter) caller() Caller {\n\t// +1 for this frame, +1 for Info/Error.\n\tpc, file, line, ok := runtime.Caller(f.depth + 2)\n\tif !ok {\n\t\treturn Caller{\"<unknown>\", 0, \"\"}\n\t}\n\tfn := \"\"\n\tif f.opts.LogCallerFunc {\n\t\tif fp := runtime.FuncForPC(pc); fp != nil {\n\t\t\tfn = fp.Name()\n\t\t}\n\t}\n\n\treturn Caller{filepath.Base(file), line, fn}\n}\n\nconst noValue = \"<no-value>\"\n\nfunc (f Formatter) nonStringKey(v any) string {\n\treturn fmt.Sprintf(\"<non-string-key: %s>\", f.snippet(v))\n}\n\n// snippet produces a short snippet string of an arbitrary value.\nfunc (f Formatter) snippet(v any) string {\n\tconst snipLen = 16\n\n\tsnip := f.pretty(v)\n\tif len(snip) > snipLen {\n\t\tsnip = snip[:snipLen]\n\t}\n\treturn snip\n}\n\n// sanitize ensures that a list of key-value pairs has a value for every key\n// (adding a value if needed) and that each key is a string (substituting a key\n// if needed).\nfunc (f Formatter) sanitize(kvList []any) []any {\n\tif len(kvList)%2 != 0 {\n\t\tkvList = append(kvList, noValue)\n\t}\n\tfor i := 0; i < len(kvList); i += 2 {\n\t\t_, ok := kvList[i].(string)\n\t\tif !ok {\n\t\t\tkvList[i] = f.nonStringKey(kvList[i])\n\t\t}\n\t}\n\treturn kvList\n}\n\n// startGroup opens a new group scope (basically a sub-struct), which locks all\n// the current saved values and starts them anew.  This is needed to satisfy\n// slog.\nfunc (f *Formatter) startGroup(name string) {\n\t// Unnamed groups are just inlined.\n\tif name == \"\" {\n\t\treturn\n\t}\n\n\tn := len(f.groups)\n\tf.groups = append(f.groups[:n:n], groupDef{f.groupName, f.valuesStr})\n\n\t// Start collecting new values.\n\tf.groupName = name\n\tf.valuesStr = \"\"\n\tf.values = nil\n}\n\n// Init configures this Formatter from runtime info, such as the call depth\n// imposed by logr itself.\n// Note that this receiver is a pointer, so depth can be saved.\nfunc (f *Formatter) Init(info logr.RuntimeInfo) {\n\tf.depth += info.CallDepth\n}\n\n// Enabled checks whether an info message at the given level should be logged.\nfunc (f Formatter) Enabled(level int) bool {\n\treturn level <= f.opts.Verbosity\n}\n\n// GetDepth returns the current depth of this Formatter.  This is useful for\n// implementations which do their own caller attribution.\nfunc (f Formatter) GetDepth() int {\n\treturn f.depth\n}\n\n// FormatInfo renders an Info log message into strings.  The prefix will be\n// empty when no names were set (via AddNames), or when the output is\n// configured for JSON.\nfunc (f Formatter) FormatInfo(level int, msg string, kvList []any) (prefix, argsStr string) {\n\targs := make([]any, 0, 64) // using a constant here impacts perf\n\tprefix = f.prefix\n\tif f.outputFormat == outputJSON {\n\t\targs = append(args, \"logger\", prefix)\n\t\tprefix = \"\"\n\t}\n\tif f.opts.LogTimestamp {\n\t\targs = append(args, \"ts\", time.Now().Format(f.opts.TimestampFormat))\n\t}\n\tif policy := f.opts.LogCaller; policy == All || policy == Info {\n\t\targs = append(args, \"caller\", f.caller())\n\t}\n\tif key := *f.opts.LogInfoLevel; key != \"\" {\n\t\targs = append(args, key, level)\n\t}\n\targs = append(args, \"msg\", msg)\n\treturn prefix, f.render(args, kvList)\n}\n\n// FormatError renders an Error log message into strings.  The prefix will be\n// empty when no names were set (via AddNames), or when the output is\n// configured for JSON.\nfunc (f Formatter) FormatError(err error, msg string, kvList []any) (prefix, argsStr string) {\n\targs := make([]any, 0, 64) // using a constant here impacts perf\n\tprefix = f.prefix\n\tif f.outputFormat == outputJSON {\n\t\targs = append(args, \"logger\", prefix)\n\t\tprefix = \"\"\n\t}\n\tif f.opts.LogTimestamp {\n\t\targs = append(args, \"ts\", time.Now().Format(f.opts.TimestampFormat))\n\t}\n\tif policy := f.opts.LogCaller; policy == All || policy == Error {\n\t\targs = append(args, \"caller\", f.caller())\n\t}\n\targs = append(args, \"msg\", msg)\n\tvar loggableErr any\n\tif err != nil {\n\t\tloggableErr = err.Error()\n\t}\n\targs = append(args, \"error\", loggableErr)\n\treturn prefix, f.render(args, kvList)\n}\n\n// AddName appends the specified name.  funcr uses '/' characters to separate\n// name elements.  Callers should not pass '/' in the provided name string, but\n// this library does not actually enforce that.\nfunc (f *Formatter) AddName(name string) {\n\tif len(f.prefix) > 0 {\n\t\tf.prefix += \"/\"\n\t}\n\tf.prefix += name\n}\n\n// AddValues adds key-value pairs to the set of saved values to be logged with\n// each log line.\nfunc (f *Formatter) AddValues(kvList []any) {\n\t// Three slice args forces a copy.\n\tn := len(f.values)\n\tf.values = append(f.values[:n:n], kvList...)\n\n\tvals := f.values\n\tif hook := f.opts.RenderValuesHook; hook != nil {\n\t\tvals = hook(f.sanitize(vals))\n\t}\n\n\t// Pre-render values, so we don't have to do it on each Info/Error call.\n\tbuf := bytes.NewBuffer(make([]byte, 0, 1024))\n\tf.flatten(buf, vals, true) // escape user-provided keys\n\tf.valuesStr = buf.String()\n}\n\n// AddCallDepth increases the number of stack-frames to skip when attributing\n// the log line to a file and line.\nfunc (f *Formatter) AddCallDepth(depth int) {\n\tf.depth += depth\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/funcr/slogsink.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage funcr\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n\n\t\"github.com/go-logr/logr\"\n)\n\nvar _ logr.SlogSink = &fnlogger{}\n\nconst extraSlogSinkDepth = 3 // 2 for slog, 1 for SlogSink\n\nfunc (l fnlogger) Handle(_ context.Context, record slog.Record) error {\n\tkvList := make([]any, 0, 2*record.NumAttrs())\n\trecord.Attrs(func(attr slog.Attr) bool {\n\t\tkvList = attrToKVs(attr, kvList)\n\t\treturn true\n\t})\n\n\tif record.Level >= slog.LevelError {\n\t\tl.WithCallDepth(extraSlogSinkDepth).Error(nil, record.Message, kvList...)\n\t} else {\n\t\tlevel := l.levelFromSlog(record.Level)\n\t\tl.WithCallDepth(extraSlogSinkDepth).Info(level, record.Message, kvList...)\n\t}\n\treturn nil\n}\n\nfunc (l fnlogger) WithAttrs(attrs []slog.Attr) logr.SlogSink {\n\tkvList := make([]any, 0, 2*len(attrs))\n\tfor _, attr := range attrs {\n\t\tkvList = attrToKVs(attr, kvList)\n\t}\n\tl.AddValues(kvList)\n\treturn &l\n}\n\nfunc (l fnlogger) WithGroup(name string) logr.SlogSink {\n\tl.startGroup(name)\n\treturn &l\n}\n\n// attrToKVs appends a slog.Attr to a logr-style kvList.  It handle slog Groups\n// and other details of slog.\nfunc attrToKVs(attr slog.Attr, kvList []any) []any {\n\tattrVal := attr.Value.Resolve()\n\tif attrVal.Kind() == slog.KindGroup {\n\t\tgroupVal := attrVal.Group()\n\t\tgrpKVs := make([]any, 0, 2*len(groupVal))\n\t\tfor _, attr := range groupVal {\n\t\t\tgrpKVs = attrToKVs(attr, grpKVs)\n\t\t}\n\t\tif attr.Key == \"\" {\n\t\t\t// slog says we have to inline these\n\t\t\tkvList = append(kvList, grpKVs...)\n\t\t} else {\n\t\t\tkvList = append(kvList, attr.Key, PseudoStruct(grpKVs))\n\t\t}\n\t} else if attr.Key != \"\" {\n\t\tkvList = append(kvList, attr.Key, attrVal.Any())\n\t}\n\n\treturn kvList\n}\n\n// levelFromSlog adjusts the level by the logger's verbosity and negates it.\n// It ensures that the result is >= 0. This is necessary because the result is\n// passed to a LogSink and that API did not historically document whether\n// levels could be negative or what that meant.\n//\n// Some example usage:\n//\n//\tlogrV0 := getMyLogger()\n//\tlogrV2 := logrV0.V(2)\n//\tslogV2 := slog.New(logr.ToSlogHandler(logrV2))\n//\tslogV2.Debug(\"msg\") // =~ logrV2.V(4) =~ logrV0.V(6)\n//\tslogV2.Info(\"msg\")  // =~  logrV2.V(0) =~ logrV0.V(2)\n//\tslogv2.Warn(\"msg\")  // =~ logrV2.V(-4) =~ logrV0.V(0)\nfunc (l fnlogger) levelFromSlog(level slog.Level) int {\n\tresult := -level\n\tif result < 0 {\n\t\tresult = 0 // because LogSink doesn't expect negative V levels\n\t}\n\treturn int(result)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/logr.go",
    "content": "/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This design derives from Dave Cheney's blog:\n//     http://dave.cheney.net/2015/11/05/lets-talk-about-logging\n\n// Package logr defines a general-purpose logging API and abstract interfaces\n// to back that API.  Packages in the Go ecosystem can depend on this package,\n// while callers can implement logging with whatever backend is appropriate.\n//\n// # Usage\n//\n// Logging is done using a Logger instance.  Logger is a concrete type with\n// methods, which defers the actual logging to a LogSink interface.  The main\n// methods of Logger are Info() and Error().  Arguments to Info() and Error()\n// are key/value pairs rather than printf-style formatted strings, emphasizing\n// \"structured logging\".\n//\n// With Go's standard log package, we might write:\n//\n//\tlog.Printf(\"setting target value %s\", targetValue)\n//\n// With logr's structured logging, we'd write:\n//\n//\tlogger.Info(\"setting target\", \"value\", targetValue)\n//\n// Errors are much the same.  Instead of:\n//\n//\tlog.Printf(\"failed to open the pod bay door for user %s: %v\", user, err)\n//\n// We'd write:\n//\n//\tlogger.Error(err, \"failed to open the pod bay door\", \"user\", user)\n//\n// Info() and Error() are very similar, but they are separate methods so that\n// LogSink implementations can choose to do things like attach additional\n// information (such as stack traces) on calls to Error(). Error() messages are\n// always logged, regardless of the current verbosity.  If there is no error\n// instance available, passing nil is valid.\n//\n// # Verbosity\n//\n// Often we want to log information only when the application in \"verbose\n// mode\".  To write log lines that are more verbose, Logger has a V() method.\n// The higher the V-level of a log line, the less critical it is considered.\n// Log-lines with V-levels that are not enabled (as per the LogSink) will not\n// be written.  Level V(0) is the default, and logger.V(0).Info() has the same\n// meaning as logger.Info().  Negative V-levels have the same meaning as V(0).\n// Error messages do not have a verbosity level and are always logged.\n//\n// Where we might have written:\n//\n//\tif flVerbose >= 2 {\n//\t    log.Printf(\"an unusual thing happened\")\n//\t}\n//\n// We can write:\n//\n//\tlogger.V(2).Info(\"an unusual thing happened\")\n//\n// # Logger Names\n//\n// Logger instances can have name strings so that all messages logged through\n// that instance have additional context.  For example, you might want to add\n// a subsystem name:\n//\n//\tlogger.WithName(\"compactor\").Info(\"started\", \"time\", time.Now())\n//\n// The WithName() method returns a new Logger, which can be passed to\n// constructors or other functions for further use.  Repeated use of WithName()\n// will accumulate name \"segments\".  These name segments will be joined in some\n// way by the LogSink implementation.  It is strongly recommended that name\n// segments contain simple identifiers (letters, digits, and hyphen), and do\n// not contain characters that could muddle the log output or confuse the\n// joining operation (e.g. whitespace, commas, periods, slashes, brackets,\n// quotes, etc).\n//\n// # Saved Values\n//\n// Logger instances can store any number of key/value pairs, which will be\n// logged alongside all messages logged through that instance.  For example,\n// you might want to create a Logger instance per managed object:\n//\n// With the standard log package, we might write:\n//\n//\tlog.Printf(\"decided to set field foo to value %q for object %s/%s\",\n//\t    targetValue, object.Namespace, object.Name)\n//\n// With logr we'd write:\n//\n//\t// Elsewhere: set up the logger to log the object name.\n//\tobj.logger = mainLogger.WithValues(\n//\t    \"name\", obj.name, \"namespace\", obj.namespace)\n//\n//\t// later on...\n//\tobj.logger.Info(\"setting foo\", \"value\", targetValue)\n//\n// # Best Practices\n//\n// Logger has very few hard rules, with the goal that LogSink implementations\n// might have a lot of freedom to differentiate.  There are, however, some\n// things to consider.\n//\n// The log message consists of a constant message attached to the log line.\n// This should generally be a simple description of what's occurring, and should\n// never be a format string.  Variable information can then be attached using\n// named values.\n//\n// Keys are arbitrary strings, but should generally be constant values.  Values\n// may be any Go value, but how the value is formatted is determined by the\n// LogSink implementation.\n//\n// Logger instances are meant to be passed around by value. Code that receives\n// such a value can call its methods without having to check whether the\n// instance is ready for use.\n//\n// The zero logger (= Logger{}) is identical to Discard() and discards all log\n// entries. Code that receives a Logger by value can simply call it, the methods\n// will never crash. For cases where passing a logger is optional, a pointer to Logger\n// should be used.\n//\n// # Key Naming Conventions\n//\n// Keys are not strictly required to conform to any specification or regex, but\n// it is recommended that they:\n//   - be human-readable and meaningful (not auto-generated or simple ordinals)\n//   - be constant (not dependent on input data)\n//   - contain only printable characters\n//   - not contain whitespace or punctuation\n//   - use lower case for simple keys and lowerCamelCase for more complex ones\n//\n// These guidelines help ensure that log data is processed properly regardless\n// of the log implementation.  For example, log implementations will try to\n// output JSON data or will store data for later database (e.g. SQL) queries.\n//\n// While users are generally free to use key names of their choice, it's\n// generally best to avoid using the following keys, as they're frequently used\n// by implementations:\n//   - \"caller\": the calling information (file/line) of a particular log line\n//   - \"error\": the underlying error value in the `Error` method\n//   - \"level\": the log level\n//   - \"logger\": the name of the associated logger\n//   - \"msg\": the log message\n//   - \"stacktrace\": the stack trace associated with a particular log line or\n//     error (often from the `Error` message)\n//   - \"ts\": the timestamp for a log line\n//\n// Implementations are encouraged to make use of these keys to represent the\n// above concepts, when necessary (for example, in a pure-JSON output form, it\n// would be necessary to represent at least message and timestamp as ordinary\n// named values).\n//\n// # Break Glass\n//\n// Implementations may choose to give callers access to the underlying\n// logging implementation.  The recommended pattern for this is:\n//\n//\t// Underlier exposes access to the underlying logging implementation.\n//\t// Since callers only have a logr.Logger, they have to know which\n//\t// implementation is in use, so this interface is less of an abstraction\n//\t// and more of way to test type conversion.\n//\ttype Underlier interface {\n//\t    GetUnderlying() <underlying-type>\n//\t}\n//\n// Logger grants access to the sink to enable type assertions like this:\n//\n//\tfunc DoSomethingWithImpl(log logr.Logger) {\n//\t    if underlier, ok := log.GetSink().(impl.Underlier); ok {\n//\t       implLogger := underlier.GetUnderlying()\n//\t       ...\n//\t    }\n//\t}\n//\n// Custom `With*` functions can be implemented by copying the complete\n// Logger struct and replacing the sink in the copy:\n//\n//\t// WithFooBar changes the foobar parameter in the log sink and returns a\n//\t// new logger with that modified sink.  It does nothing for loggers where\n//\t// the sink doesn't support that parameter.\n//\tfunc WithFoobar(log logr.Logger, foobar int) logr.Logger {\n//\t   if foobarLogSink, ok := log.GetSink().(FoobarSink); ok {\n//\t      log = log.WithSink(foobarLogSink.WithFooBar(foobar))\n//\t   }\n//\t   return log\n//\t}\n//\n// Don't use New to construct a new Logger with a LogSink retrieved from an\n// existing Logger. Source code attribution might not work correctly and\n// unexported fields in Logger get lost.\n//\n// Beware that the same LogSink instance may be shared by different logger\n// instances. Calling functions that modify the LogSink will affect all of\n// those.\npackage logr\n\n// New returns a new Logger instance.  This is primarily used by libraries\n// implementing LogSink, rather than end users.  Passing a nil sink will create\n// a Logger which discards all log lines.\nfunc New(sink LogSink) Logger {\n\tlogger := Logger{}\n\tlogger.setSink(sink)\n\tif sink != nil {\n\t\tsink.Init(runtimeInfo)\n\t}\n\treturn logger\n}\n\n// setSink stores the sink and updates any related fields. It mutates the\n// logger and thus is only safe to use for loggers that are not currently being\n// used concurrently.\nfunc (l *Logger) setSink(sink LogSink) {\n\tl.sink = sink\n}\n\n// GetSink returns the stored sink.\nfunc (l Logger) GetSink() LogSink {\n\treturn l.sink\n}\n\n// WithSink returns a copy of the logger with the new sink.\nfunc (l Logger) WithSink(sink LogSink) Logger {\n\tl.setSink(sink)\n\treturn l\n}\n\n// Logger is an interface to an abstract logging implementation.  This is a\n// concrete type for performance reasons, but all the real work is passed on to\n// a LogSink.  Implementations of LogSink should provide their own constructors\n// that return Logger, not LogSink.\n//\n// The underlying sink can be accessed through GetSink and be modified through\n// WithSink. This enables the implementation of custom extensions (see \"Break\n// Glass\" in the package documentation). Normally the sink should be used only\n// indirectly.\ntype Logger struct {\n\tsink  LogSink\n\tlevel int\n}\n\n// Enabled tests whether this Logger is enabled.  For example, commandline\n// flags might be used to set the logging verbosity and disable some info logs.\nfunc (l Logger) Enabled() bool {\n\t// Some implementations of LogSink look at the caller in Enabled (e.g.\n\t// different verbosity levels per package or file), but we only pass one\n\t// CallDepth in (via Init).  This means that all calls from Logger to the\n\t// LogSink's Enabled, Info, and Error methods must have the same number of\n\t// frames.  In other words, Logger methods can't call other Logger methods\n\t// which call these LogSink methods unless we do it the same in all paths.\n\treturn l.sink != nil && l.sink.Enabled(l.level)\n}\n\n// Info logs a non-error message with the given key/value pairs as context.\n//\n// The msg argument should be used to add some constant description to the log\n// line.  The key/value pairs can then be used to add additional variable\n// information.  The key/value pairs must alternate string keys and arbitrary\n// values.\nfunc (l Logger) Info(msg string, keysAndValues ...any) {\n\tif l.sink == nil {\n\t\treturn\n\t}\n\tif l.sink.Enabled(l.level) { // see comment in Enabled\n\t\tif withHelper, ok := l.sink.(CallStackHelperLogSink); ok {\n\t\t\twithHelper.GetCallStackHelper()()\n\t\t}\n\t\tl.sink.Info(l.level, msg, keysAndValues...)\n\t}\n}\n\n// Error logs an error, with the given message and key/value pairs as context.\n// It functions similarly to Info, but may have unique behavior, and should be\n// preferred for logging errors (see the package documentations for more\n// information). The log message will always be emitted, regardless of\n// verbosity level.\n//\n// The msg argument should be used to add context to any underlying error,\n// while the err argument should be used to attach the actual error that\n// triggered this log line, if present. The err parameter is optional\n// and nil may be passed instead of an error instance.\nfunc (l Logger) Error(err error, msg string, keysAndValues ...any) {\n\tif l.sink == nil {\n\t\treturn\n\t}\n\tif withHelper, ok := l.sink.(CallStackHelperLogSink); ok {\n\t\twithHelper.GetCallStackHelper()()\n\t}\n\tl.sink.Error(err, msg, keysAndValues...)\n}\n\n// V returns a new Logger instance for a specific verbosity level, relative to\n// this Logger.  In other words, V-levels are additive.  A higher verbosity\n// level means a log message is less important.  Negative V-levels are treated\n// as 0.\nfunc (l Logger) V(level int) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tif level < 0 {\n\t\tlevel = 0\n\t}\n\tl.level += level\n\treturn l\n}\n\n// GetV returns the verbosity level of the logger. If the logger's LogSink is\n// nil as in the Discard logger, this will always return 0.\nfunc (l Logger) GetV() int {\n\t// 0 if l.sink nil because of the if check in V above.\n\treturn l.level\n}\n\n// WithValues returns a new Logger instance with additional key/value pairs.\n// See Info for documentation on how key/value pairs work.\nfunc (l Logger) WithValues(keysAndValues ...any) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tl.setSink(l.sink.WithValues(keysAndValues...))\n\treturn l\n}\n\n// WithName returns a new Logger instance with the specified name element added\n// to the Logger's name.  Successive calls with WithName append additional\n// suffixes to the Logger's name.  It's strongly recommended that name segments\n// contain only letters, digits, and hyphens (see the package documentation for\n// more information).\nfunc (l Logger) WithName(name string) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tl.setSink(l.sink.WithName(name))\n\treturn l\n}\n\n// WithCallDepth returns a Logger instance that offsets the call stack by the\n// specified number of frames when logging call site information, if possible.\n// This is useful for users who have helper functions between the \"real\" call\n// site and the actual calls to Logger methods.  If depth is 0 the attribution\n// should be to the direct caller of this function.  If depth is 1 the\n// attribution should skip 1 call frame, and so on.  Successive calls to this\n// are additive.\n//\n// If the underlying log implementation supports a WithCallDepth(int) method,\n// it will be called and the result returned.  If the implementation does not\n// support CallDepthLogSink, the original Logger will be returned.\n//\n// To skip one level, WithCallStackHelper() should be used instead of\n// WithCallDepth(1) because it works with implementions that support the\n// CallDepthLogSink and/or CallStackHelperLogSink interfaces.\nfunc (l Logger) WithCallDepth(depth int) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tif withCallDepth, ok := l.sink.(CallDepthLogSink); ok {\n\t\tl.setSink(withCallDepth.WithCallDepth(depth))\n\t}\n\treturn l\n}\n\n// WithCallStackHelper returns a new Logger instance that skips the direct\n// caller when logging call site information, if possible.  This is useful for\n// users who have helper functions between the \"real\" call site and the actual\n// calls to Logger methods and want to support loggers which depend on marking\n// each individual helper function, like loggers based on testing.T.\n//\n// In addition to using that new logger instance, callers also must call the\n// returned function.\n//\n// If the underlying log implementation supports a WithCallDepth(int) method,\n// WithCallDepth(1) will be called to produce a new logger. If it supports a\n// WithCallStackHelper() method, that will be also called. If the\n// implementation does not support either of these, the original Logger will be\n// returned.\nfunc (l Logger) WithCallStackHelper() (func(), Logger) {\n\tif l.sink == nil {\n\t\treturn func() {}, l\n\t}\n\tvar helper func()\n\tif withCallDepth, ok := l.sink.(CallDepthLogSink); ok {\n\t\tl.setSink(withCallDepth.WithCallDepth(1))\n\t}\n\tif withHelper, ok := l.sink.(CallStackHelperLogSink); ok {\n\t\thelper = withHelper.GetCallStackHelper()\n\t} else {\n\t\thelper = func() {}\n\t}\n\treturn helper, l\n}\n\n// IsZero returns true if this logger is an uninitialized zero value\nfunc (l Logger) IsZero() bool {\n\treturn l.sink == nil\n}\n\n// RuntimeInfo holds information that the logr \"core\" library knows which\n// LogSinks might want to know.\ntype RuntimeInfo struct {\n\t// CallDepth is the number of call frames the logr library adds between the\n\t// end-user and the LogSink.  LogSink implementations which choose to print\n\t// the original logging site (e.g. file & line) should climb this many\n\t// additional frames to find it.\n\tCallDepth int\n}\n\n// runtimeInfo is a static global.  It must not be changed at run time.\nvar runtimeInfo = RuntimeInfo{\n\tCallDepth: 1,\n}\n\n// LogSink represents a logging implementation.  End-users will generally not\n// interact with this type.\ntype LogSink interface {\n\t// Init receives optional information about the logr library for LogSink\n\t// implementations that need it.\n\tInit(info RuntimeInfo)\n\n\t// Enabled tests whether this LogSink is enabled at the specified V-level.\n\t// For example, commandline flags might be used to set the logging\n\t// verbosity and disable some info logs.\n\tEnabled(level int) bool\n\n\t// Info logs a non-error message with the given key/value pairs as context.\n\t// The level argument is provided for optional logging.  This method will\n\t// only be called when Enabled(level) is true. See Logger.Info for more\n\t// details.\n\tInfo(level int, msg string, keysAndValues ...any)\n\n\t// Error logs an error, with the given message and key/value pairs as\n\t// context.  See Logger.Error for more details.\n\tError(err error, msg string, keysAndValues ...any)\n\n\t// WithValues returns a new LogSink with additional key/value pairs.  See\n\t// Logger.WithValues for more details.\n\tWithValues(keysAndValues ...any) LogSink\n\n\t// WithName returns a new LogSink with the specified name appended.  See\n\t// Logger.WithName for more details.\n\tWithName(name string) LogSink\n}\n\n// CallDepthLogSink represents a LogSink that knows how to climb the call stack\n// to identify the original call site and can offset the depth by a specified\n// number of frames.  This is useful for users who have helper functions\n// between the \"real\" call site and the actual calls to Logger methods.\n// Implementations that log information about the call site (such as file,\n// function, or line) would otherwise log information about the intermediate\n// helper functions.\n//\n// This is an optional interface and implementations are not required to\n// support it.\ntype CallDepthLogSink interface {\n\t// WithCallDepth returns a LogSink that will offset the call\n\t// stack by the specified number of frames when logging call\n\t// site information.\n\t//\n\t// If depth is 0, the LogSink should skip exactly the number\n\t// of call frames defined in RuntimeInfo.CallDepth when Info\n\t// or Error are called, i.e. the attribution should be to the\n\t// direct caller of Logger.Info or Logger.Error.\n\t//\n\t// If depth is 1 the attribution should skip 1 call frame, and so on.\n\t// Successive calls to this are additive.\n\tWithCallDepth(depth int) LogSink\n}\n\n// CallStackHelperLogSink represents a LogSink that knows how to climb\n// the call stack to identify the original call site and can skip\n// intermediate helper functions if they mark themselves as\n// helper. Go's testing package uses that approach.\n//\n// This is useful for users who have helper functions between the\n// \"real\" call site and the actual calls to Logger methods.\n// Implementations that log information about the call site (such as\n// file, function, or line) would otherwise log information about the\n// intermediate helper functions.\n//\n// This is an optional interface and implementations are not required\n// to support it. Implementations that choose to support this must not\n// simply implement it as WithCallDepth(1), because\n// Logger.WithCallStackHelper will call both methods if they are\n// present. This should only be implemented for LogSinks that actually\n// need it, as with testing.T.\ntype CallStackHelperLogSink interface {\n\t// GetCallStackHelper returns a function that must be called\n\t// to mark the direct caller as helper function when logging\n\t// call site information.\n\tGetCallStackHelper() func()\n}\n\n// Marshaler is an optional interface that logged values may choose to\n// implement. Loggers with structured output, such as JSON, should\n// log the object return by the MarshalLog method instead of the\n// original value.\ntype Marshaler interface {\n\t// MarshalLog can be used to:\n\t//   - ensure that structs are not logged as strings when the original\n\t//     value has a String method: return a different type without a\n\t//     String method\n\t//   - select which fields of a complex type should get logged:\n\t//     return a simpler struct with fewer fields\n\t//   - log unexported fields: return a different struct\n\t//     with exported fields\n\t//\n\t// It may return any value of any type.\n\tMarshalLog() any\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/sloghandler.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n)\n\ntype slogHandler struct {\n\t// May be nil, in which case all logs get discarded.\n\tsink LogSink\n\t// Non-nil if sink is non-nil and implements SlogSink.\n\tslogSink SlogSink\n\n\t// groupPrefix collects values from WithGroup calls. It gets added as\n\t// prefix to value keys when handling a log record.\n\tgroupPrefix string\n\n\t// levelBias can be set when constructing the handler to influence the\n\t// slog.Level of log records. A positive levelBias reduces the\n\t// slog.Level value. slog has no API to influence this value after the\n\t// handler got created, so it can only be set indirectly through\n\t// Logger.V.\n\tlevelBias slog.Level\n}\n\nvar _ slog.Handler = &slogHandler{}\n\n// groupSeparator is used to concatenate WithGroup names and attribute keys.\nconst groupSeparator = \".\"\n\n// GetLevel is used for black box unit testing.\nfunc (l *slogHandler) GetLevel() slog.Level {\n\treturn l.levelBias\n}\n\nfunc (l *slogHandler) Enabled(_ context.Context, level slog.Level) bool {\n\treturn l.sink != nil && (level >= slog.LevelError || l.sink.Enabled(l.levelFromSlog(level)))\n}\n\nfunc (l *slogHandler) Handle(ctx context.Context, record slog.Record) error {\n\tif l.slogSink != nil {\n\t\t// Only adjust verbosity level of log entries < slog.LevelError.\n\t\tif record.Level < slog.LevelError {\n\t\t\trecord.Level -= l.levelBias\n\t\t}\n\t\treturn l.slogSink.Handle(ctx, record)\n\t}\n\n\t// No need to check for nil sink here because Handle will only be called\n\t// when Enabled returned true.\n\n\tkvList := make([]any, 0, 2*record.NumAttrs())\n\trecord.Attrs(func(attr slog.Attr) bool {\n\t\tkvList = attrToKVs(attr, l.groupPrefix, kvList)\n\t\treturn true\n\t})\n\tif record.Level >= slog.LevelError {\n\t\tl.sinkWithCallDepth().Error(nil, record.Message, kvList...)\n\t} else {\n\t\tlevel := l.levelFromSlog(record.Level)\n\t\tl.sinkWithCallDepth().Info(level, record.Message, kvList...)\n\t}\n\treturn nil\n}\n\n// sinkWithCallDepth adjusts the stack unwinding so that when Error or Info\n// are called by Handle, code in slog gets skipped.\n//\n// This offset currently (Go 1.21.0) works for calls through\n// slog.New(ToSlogHandler(...)).  There's no guarantee that the call\n// chain won't change. Wrapping the handler will also break unwinding. It's\n// still better than not adjusting at all....\n//\n// This cannot be done when constructing the handler because FromSlogHandler needs\n// access to the original sink without this adjustment. A second copy would\n// work, but then WithAttrs would have to be called for both of them.\nfunc (l *slogHandler) sinkWithCallDepth() LogSink {\n\tif sink, ok := l.sink.(CallDepthLogSink); ok {\n\t\treturn sink.WithCallDepth(2)\n\t}\n\treturn l.sink\n}\n\nfunc (l *slogHandler) WithAttrs(attrs []slog.Attr) slog.Handler {\n\tif l.sink == nil || len(attrs) == 0 {\n\t\treturn l\n\t}\n\n\tclone := *l\n\tif l.slogSink != nil {\n\t\tclone.slogSink = l.slogSink.WithAttrs(attrs)\n\t\tclone.sink = clone.slogSink\n\t} else {\n\t\tkvList := make([]any, 0, 2*len(attrs))\n\t\tfor _, attr := range attrs {\n\t\t\tkvList = attrToKVs(attr, l.groupPrefix, kvList)\n\t\t}\n\t\tclone.sink = l.sink.WithValues(kvList...)\n\t}\n\treturn &clone\n}\n\nfunc (l *slogHandler) WithGroup(name string) slog.Handler {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tif name == \"\" {\n\t\t// slog says to inline empty groups\n\t\treturn l\n\t}\n\tclone := *l\n\tif l.slogSink != nil {\n\t\tclone.slogSink = l.slogSink.WithGroup(name)\n\t\tclone.sink = clone.slogSink\n\t} else {\n\t\tclone.groupPrefix = addPrefix(clone.groupPrefix, name)\n\t}\n\treturn &clone\n}\n\n// attrToKVs appends a slog.Attr to a logr-style kvList.  It handle slog Groups\n// and other details of slog.\nfunc attrToKVs(attr slog.Attr, groupPrefix string, kvList []any) []any {\n\tattrVal := attr.Value.Resolve()\n\tif attrVal.Kind() == slog.KindGroup {\n\t\tgroupVal := attrVal.Group()\n\t\tgrpKVs := make([]any, 0, 2*len(groupVal))\n\t\tprefix := groupPrefix\n\t\tif attr.Key != \"\" {\n\t\t\tprefix = addPrefix(groupPrefix, attr.Key)\n\t\t}\n\t\tfor _, attr := range groupVal {\n\t\t\tgrpKVs = attrToKVs(attr, prefix, grpKVs)\n\t\t}\n\t\tkvList = append(kvList, grpKVs...)\n\t} else if attr.Key != \"\" {\n\t\tkvList = append(kvList, addPrefix(groupPrefix, attr.Key), attrVal.Any())\n\t}\n\n\treturn kvList\n}\n\nfunc addPrefix(prefix, name string) string {\n\tif prefix == \"\" {\n\t\treturn name\n\t}\n\tif name == \"\" {\n\t\treturn prefix\n\t}\n\treturn prefix + groupSeparator + name\n}\n\n// levelFromSlog adjusts the level by the logger's verbosity and negates it.\n// It ensures that the result is >= 0. This is necessary because the result is\n// passed to a LogSink and that API did not historically document whether\n// levels could be negative or what that meant.\n//\n// Some example usage:\n//\n//\tlogrV0 := getMyLogger()\n//\tlogrV2 := logrV0.V(2)\n//\tslogV2 := slog.New(logr.ToSlogHandler(logrV2))\n//\tslogV2.Debug(\"msg\") // =~ logrV2.V(4) =~ logrV0.V(6)\n//\tslogV2.Info(\"msg\")  // =~  logrV2.V(0) =~ logrV0.V(2)\n//\tslogv2.Warn(\"msg\")  // =~ logrV2.V(-4) =~ logrV0.V(0)\nfunc (l *slogHandler) levelFromSlog(level slog.Level) int {\n\tresult := -level\n\tresult += l.levelBias // in case the original Logger had a V level\n\tif result < 0 {\n\t\tresult = 0 // because LogSink doesn't expect negative V levels\n\t}\n\treturn int(result)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/slogr.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n)\n\n// FromSlogHandler returns a Logger which writes to the slog.Handler.\n//\n// The logr verbosity level is mapped to slog levels such that V(0) becomes\n// slog.LevelInfo and V(4) becomes slog.LevelDebug.\nfunc FromSlogHandler(handler slog.Handler) Logger {\n\tif handler, ok := handler.(*slogHandler); ok {\n\t\tif handler.sink == nil {\n\t\t\treturn Discard()\n\t\t}\n\t\treturn New(handler.sink).V(int(handler.levelBias))\n\t}\n\treturn New(&slogSink{handler: handler})\n}\n\n// ToSlogHandler returns a slog.Handler which writes to the same sink as the Logger.\n//\n// The returned logger writes all records with level >= slog.LevelError as\n// error log entries with LogSink.Error, regardless of the verbosity level of\n// the Logger:\n//\n//\tlogger := <some Logger with 0 as verbosity level>\n//\tslog.New(ToSlogHandler(logger.V(10))).Error(...) -> logSink.Error(...)\n//\n// The level of all other records gets reduced by the verbosity\n// level of the Logger and the result is negated. If it happens\n// to be negative, then it gets replaced by zero because a LogSink\n// is not expected to handled negative levels:\n//\n//\tslog.New(ToSlogHandler(logger)).Debug(...) -> logger.GetSink().Info(level=4, ...)\n//\tslog.New(ToSlogHandler(logger)).Warning(...) -> logger.GetSink().Info(level=0, ...)\n//\tslog.New(ToSlogHandler(logger)).Info(...) -> logger.GetSink().Info(level=0, ...)\n//\tslog.New(ToSlogHandler(logger.V(4))).Info(...) -> logger.GetSink().Info(level=4, ...)\nfunc ToSlogHandler(logger Logger) slog.Handler {\n\tif sink, ok := logger.GetSink().(*slogSink); ok && logger.GetV() == 0 {\n\t\treturn sink.handler\n\t}\n\n\thandler := &slogHandler{sink: logger.GetSink(), levelBias: slog.Level(logger.GetV())}\n\tif slogSink, ok := handler.sink.(SlogSink); ok {\n\t\thandler.slogSink = slogSink\n\t}\n\treturn handler\n}\n\n// SlogSink is an optional interface that a LogSink can implement to support\n// logging through the slog.Logger or slog.Handler APIs better. It then should\n// also support special slog values like slog.Group. When used as a\n// slog.Handler, the advantages are:\n//\n//   - stack unwinding gets avoided in favor of logging the pre-recorded PC,\n//     as intended by slog\n//   - proper grouping of key/value pairs via WithGroup\n//   - verbosity levels > slog.LevelInfo can be recorded\n//   - less overhead\n//\n// Both APIs (Logger and slog.Logger/Handler) then are supported equally\n// well. Developers can pick whatever API suits them better and/or mix\n// packages which use either API in the same binary with a common logging\n// implementation.\n//\n// This interface is necessary because the type implementing the LogSink\n// interface cannot also implement the slog.Handler interface due to the\n// different prototype of the common Enabled method.\n//\n// An implementation could support both interfaces in two different types, but then\n// additional interfaces would be needed to convert between those types in FromSlogHandler\n// and ToSlogHandler.\ntype SlogSink interface {\n\tLogSink\n\n\tHandle(ctx context.Context, record slog.Record) error\n\tWithAttrs(attrs []slog.Attr) SlogSink\n\tWithGroup(name string) SlogSink\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/slogsink.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n\t\"runtime\"\n\t\"time\"\n)\n\nvar (\n\t_ LogSink          = &slogSink{}\n\t_ CallDepthLogSink = &slogSink{}\n\t_ Underlier        = &slogSink{}\n)\n\n// Underlier is implemented by the LogSink returned by NewFromLogHandler.\ntype Underlier interface {\n\t// GetUnderlying returns the Handler used by the LogSink.\n\tGetUnderlying() slog.Handler\n}\n\nconst (\n\t// nameKey is used to log the `WithName` values as an additional attribute.\n\tnameKey = \"logger\"\n\n\t// errKey is used to log the error parameter of Error as an additional attribute.\n\terrKey = \"err\"\n)\n\ntype slogSink struct {\n\tcallDepth int\n\tname      string\n\thandler   slog.Handler\n}\n\nfunc (l *slogSink) Init(info RuntimeInfo) {\n\tl.callDepth = info.CallDepth\n}\n\nfunc (l *slogSink) GetUnderlying() slog.Handler {\n\treturn l.handler\n}\n\nfunc (l *slogSink) WithCallDepth(depth int) LogSink {\n\tnewLogger := *l\n\tnewLogger.callDepth += depth\n\treturn &newLogger\n}\n\nfunc (l *slogSink) Enabled(level int) bool {\n\treturn l.handler.Enabled(context.Background(), slog.Level(-level))\n}\n\nfunc (l *slogSink) Info(level int, msg string, kvList ...interface{}) {\n\tl.log(nil, msg, slog.Level(-level), kvList...)\n}\n\nfunc (l *slogSink) Error(err error, msg string, kvList ...interface{}) {\n\tl.log(err, msg, slog.LevelError, kvList...)\n}\n\nfunc (l *slogSink) log(err error, msg string, level slog.Level, kvList ...interface{}) {\n\tvar pcs [1]uintptr\n\t// skip runtime.Callers, this function, Info/Error, and all helper functions above that.\n\truntime.Callers(3+l.callDepth, pcs[:])\n\n\trecord := slog.NewRecord(time.Now(), level, msg, pcs[0])\n\tif l.name != \"\" {\n\t\trecord.AddAttrs(slog.String(nameKey, l.name))\n\t}\n\tif err != nil {\n\t\trecord.AddAttrs(slog.Any(errKey, err))\n\t}\n\trecord.Add(kvList...)\n\t_ = l.handler.Handle(context.Background(), record)\n}\n\nfunc (l slogSink) WithName(name string) LogSink {\n\tif l.name != \"\" {\n\t\tl.name += \"/\"\n\t}\n\tl.name += name\n\treturn &l\n}\n\nfunc (l slogSink) WithValues(kvList ...interface{}) LogSink {\n\tl.handler = l.handler.WithAttrs(kvListToAttrs(kvList...))\n\treturn &l\n}\n\nfunc kvListToAttrs(kvList ...interface{}) []slog.Attr {\n\t// We don't need the record itself, only its Add method.\n\trecord := slog.NewRecord(time.Time{}, 0, \"\", 0)\n\trecord.Add(kvList...)\n\tattrs := make([]slog.Attr, 0, record.NumAttrs())\n\trecord.Attrs(func(attr slog.Attr) bool {\n\t\tattrs = append(attrs, attr)\n\t\treturn true\n\t})\n\treturn attrs\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/stdr/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-logr/stdr/README.md",
    "content": "# Minimal Go logging using logr and Go's standard library\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/go-logr/stdr.svg)](https://pkg.go.dev/github.com/go-logr/stdr)\n\nThis package implements the [logr interface](https://github.com/go-logr/logr)\nin terms of Go's standard log package(https://pkg.go.dev/log).\n"
  },
  {
    "path": "vendor/github.com/go-logr/stdr/stdr.go",
    "content": "/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package stdr implements github.com/go-logr/logr.Logger in terms of\n// Go's standard log package.\npackage stdr\n\nimport (\n\t\"log\"\n\t\"os\"\n\n\t\"github.com/go-logr/logr\"\n\t\"github.com/go-logr/logr/funcr\"\n)\n\n// The global verbosity level.  See SetVerbosity().\nvar globalVerbosity int\n\n// SetVerbosity sets the global level against which all info logs will be\n// compared.  If this is greater than or equal to the \"V\" of the logger, the\n// message will be logged.  A higher value here means more logs will be written.\n// The previous verbosity value is returned.  This is not concurrent-safe -\n// callers must be sure to call it from only one goroutine.\nfunc SetVerbosity(v int) int {\n\told := globalVerbosity\n\tglobalVerbosity = v\n\treturn old\n}\n\n// New returns a logr.Logger which is implemented by Go's standard log package,\n// or something like it.  If std is nil, this will use a default logger\n// instead.\n//\n// Example: stdr.New(log.New(os.Stderr, \"\", log.LstdFlags|log.Lshortfile)))\nfunc New(std StdLogger) logr.Logger {\n\treturn NewWithOptions(std, Options{})\n}\n\n// NewWithOptions returns a logr.Logger which is implemented by Go's standard\n// log package, or something like it.  See New for details.\nfunc NewWithOptions(std StdLogger, opts Options) logr.Logger {\n\tif std == nil {\n\t\t// Go's log.Default() is only available in 1.16 and higher.\n\t\tstd = log.New(os.Stderr, \"\", log.LstdFlags)\n\t}\n\n\tif opts.Depth < 0 {\n\t\topts.Depth = 0\n\t}\n\n\tfopts := funcr.Options{\n\t\tLogCaller: funcr.MessageClass(opts.LogCaller),\n\t}\n\n\tsl := &logger{\n\t\tFormatter: funcr.NewFormatter(fopts),\n\t\tstd:       std,\n\t}\n\n\t// For skipping our own logger.Info/Error.\n\tsl.Formatter.AddCallDepth(1 + opts.Depth)\n\n\treturn logr.New(sl)\n}\n\n// Options carries parameters which influence the way logs are generated.\ntype Options struct {\n\t// Depth biases the assumed number of call frames to the \"true\" caller.\n\t// This is useful when the calling code calls a function which then calls\n\t// stdr (e.g. a logging shim to another API).  Values less than zero will\n\t// be treated as zero.\n\tDepth int\n\n\t// LogCaller tells stdr to add a \"caller\" key to some or all log lines.\n\t// Go's log package has options to log this natively, too.\n\tLogCaller MessageClass\n\n\t// TODO: add an option to log the date/time\n}\n\n// MessageClass indicates which category or categories of messages to consider.\ntype MessageClass int\n\nconst (\n\t// None ignores all message classes.\n\tNone MessageClass = iota\n\t// All considers all message classes.\n\tAll\n\t// Info only considers info messages.\n\tInfo\n\t// Error only considers error messages.\n\tError\n)\n\n// StdLogger is the subset of the Go stdlib log.Logger API that is needed for\n// this adapter.\ntype StdLogger interface {\n\t// Output is the same as log.Output and log.Logger.Output.\n\tOutput(calldepth int, logline string) error\n}\n\ntype logger struct {\n\tfuncr.Formatter\n\tstd StdLogger\n}\n\nvar _ logr.LogSink = &logger{}\nvar _ logr.CallDepthLogSink = &logger{}\n\nfunc (l logger) Enabled(level int) bool {\n\treturn globalVerbosity >= level\n}\n\nfunc (l logger) Info(level int, msg string, kvList ...interface{}) {\n\tprefix, args := l.FormatInfo(level, msg, kvList)\n\tif prefix != \"\" {\n\t\targs = prefix + \": \" + args\n\t}\n\t_ = l.std.Output(l.Formatter.GetDepth()+1, args)\n}\n\nfunc (l logger) Error(err error, msg string, kvList ...interface{}) {\n\tprefix, args := l.FormatError(err, msg, kvList)\n\tif prefix != \"\" {\n\t\targs = prefix + \": \" + args\n\t}\n\t_ = l.std.Output(l.Formatter.GetDepth()+1, args)\n}\n\nfunc (l logger) WithName(name string) logr.LogSink {\n\tl.Formatter.AddName(name)\n\treturn &l\n}\n\nfunc (l logger) WithValues(kvList ...interface{}) logr.LogSink {\n\tl.Formatter.AddValues(kvList)\n\treturn &l\n}\n\nfunc (l logger) WithCallDepth(depth int) logr.LogSink {\n\tl.Formatter.AddCallDepth(depth)\n\treturn &l\n}\n\n// Underlier exposes access to the underlying logging implementation.  Since\n// callers only have a logr.Logger, they have to know which implementation is\n// in use, so this interface is less of an abstraction and more of way to test\n// type conversion.\ntype Underlier interface {\n\tGetUnderlying() StdLogger\n}\n\n// GetUnderlying returns the StdLogger underneath this logger.  Since StdLogger\n// is itself an interface, the result may or may not be a Go log.Logger.\nfunc (l logger) GetUnderlying() StdLogger {\n\treturn l.std\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/.codecov.yml",
    "content": "codecov:\n  require_ci_to_pass: yes\n\ncoverage:\n  precision: 2\n  round: down\n  range: \"70...100\"\n\n  status:\n    project:\n      default:\n        target: 75%\n        threshold: 2%\n    patch: off\n    changes: no\n\nparsers:\n  gcov:\n    branch_detection:\n      conditional: yes\n      loop: yes\n      method: no\n      macro: no\n\ncomment:\n  layout: \"header,diff\"\n  behavior: default\n  require_changes: no\n\nignore:\n  - ast\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/CHANGELOG.md",
    "content": "# 1.10.1 - 2023-03-28\n\n### Features\n\n- Quote YAML 1.1 bools at encoding time for compatibility with other legacy parsers\n- Add support of 32-bit architecture\n\n### Fix bugs\n\n- Don't trim all space characters in block style sequence\n- Support strings starting with `@`\n\n# 1.10.0 - 2023-03-01\n\n### Fix bugs\n\nReversible conversion of comments was not working in various cases, which has been corrected.\n**Breaking Change** exists in the comment map interface. However, if you are dealing with CommentMap directly, there is no problem.\n\n\n# 1.9.8 - 2022-12-19\n\n### Fix feature\n\n- Append new line at the end of file ( #329 )\n\n### Fix bugs\n\n- Fix custom marshaler ( #333, #334 )\n- Fix behavior when struct fields conflicted( #335 )\n- Fix position calculation for literal, folded and raw folded strings ( #330 )\n\n# 1.9.7 - 2022-12-03\n\n### Fix bugs\n\n- Fix handling of quoted map key ( #328 )\n- Fix resusing process of scanning context ( #322 )\n\n## v1.9.6 - 2022-10-26\n\n### New Features\n\n- Introduce MapKeyNode interface to limit node types for map key ( #312 )\n\n### Fix bugs\n\n- Quote strings with special characters in flow mode ( #270 )\n- typeError implements PrettyPrinter interface ( #280 )\n- Fix incorrect const type ( #284 )\n- Fix large literals type inference on 32 bits ( #293 )\n- Fix UTF-8 characters ( #294 )\n- Fix decoding of unknown aliases ( #317 )\n- Fix stream encoder for insert a separator between each encoded document ( #318 )\n\n### Update\n\n- Update golang.org/x/sys ( #289 )\n- Update Go version in CI ( #295 )\n- Add test cases for missing keys to struct literals ( #300 )\n\n## v1.9.5 - 2022-01-12\n\n### New Features\n\n* Add UseSingleQuote option ( #265 )\n\n### Fix bugs\n\n* Preserve defaults while decoding nested structs ( #260 )\n* Fix minor typo in decodeInit error ( #264 )\n* Handle empty sequence entries ( #275 )\n* Fix encoding of sequence with multiline string ( #276 )\n* Fix encoding of BytesMarshaler type ( #277 )\n* Fix indentState logic for multi-line value ( #278 )\n\n## v1.9.4 - 2021-10-12\n\n### Fix bugs\n\n* Keep prev/next reference between tokens containing comments when filtering comment tokens ( #257 )\n* Supports escaping reserved keywords in PathBuilder ( #258 )\n\n## v1.9.3 - 2021-09-07\n\n### New Features\n\n* Support encoding and decoding `time.Duration` fields ( #246 )\n* Allow reserved characters for key name in YAMLPath ( #251 )\n* Support getting YAMLPath from ast.Node ( #252 )\n* Support CommentToMap option ( #253 )\n\n### Fix bugs\n\n* Fix encoding nested sequences with `yaml.IndentSequence` ( #241 )\n* Fix error reporting on inline structs in strict mode ( #244, #245 )\n* Fix encoding of large floats ( #247 )\n\n### Improve workflow\n\n* Migrate CI from CircleCI to GitHub Action ( #249 )\n* Add workflow for ycat ( #250 )\n\n## v1.9.2 - 2021-07-26\n\n### Support WithComment option ( #238 )\n\n`yaml.WithComment` is a option for encoding with comment.\nThe position where you want to add a comment is represented by YAMLPath, and it is the key of `yaml.CommentMap`.\nAlso, you can select `Head` comment or `Line` comment as the comment type.\n\n## v1.9.1 - 2021-07-20\n\n### Fix DecodeFromNode ( #237 )\n\n- Fix YAML handling where anchor exists\n\n## v1.9.0 - 2021-07-19\n\n### New features\n\n- Support encoding of comment node ( #233 )\n- Support `yaml.NodeToValue(ast.Node, interface{}, ...DecodeOption) error` ( #236 )\n  - Can convert a AST node to a value directly\n\n### Fix decoder for comment\n\n- Fix parsing of literal with comment ( #234 )\n\n### Rename API ( #235 )\n\n- Rename `MarshalWithContext` to `MarshalContext`\n- Rename `UnmarshalWithContext` to `UnmarshalContext`\n\n## v1.8.10 - 2021-07-02\n\n### Fixed bugs\n\n- Fix searching anchor by alias name ( #212 )\n- Fixing Issue 186, scanner should account for newline characters when processing multi-line text. Without this source annotations line/column number (for this and all subsequent tokens) is inconsistent with plain text editors. e.g. https://github.com/goccy/go-yaml/issues/186. This addresses the issue specifically for single and double quote text only. ( #210 )\n- Add error for unterminated flow mapping node ( #213 )\n- Handle missing required field validation ( #221 )\n- Nicely format unexpected node type errors ( #229 )\n- Support to encode map which has defined type key ( #231 )\n\n### New features\n\n- Support sequence indentation by EncodeOption ( #232 )\n\n## v1.8.9 - 2021-03-01\n\n### Fixed bugs\n\n- Fix origin buffer for DocumentHeader and DocumentEnd and Directive\n- Fix origin buffer for anchor value\n- Fix syntax error about map value\n- Fix parsing MergeKey ('<<') characters\n- Fix encoding of float value\n- Fix incorrect column annotation when single or double quotes are used\n\n### New features\n\n- Support to encode/decode of ast.Node directly\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 Masaaki Goshima\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/Makefile",
    "content": ".PHONY: test\ntest:\n\tgo test -v -race ./...\n\n.PHONY: simple-test\nsimple-test:\n\tgo test -v ./...\n\n.PHONY: cover\ncover:\n\tgo test -coverprofile=cover.out ./...\n\n.PHONY: cover-html\ncover-html: cover\n\tgo tool cover -html=cover.out\n\n.PHONY: ycat/build\nycat/build:\n\tgo build -o ycat ./cmd/ycat\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/README.md",
    "content": "# YAML support for the Go language\n\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/goccy/go-yaml)](https://pkg.go.dev/github.com/goccy/go-yaml)\n![Go](https://github.com/goccy/go-yaml/workflows/Go/badge.svg)\n[![codecov](https://codecov.io/gh/goccy/go-yaml/branch/master/graph/badge.svg)](https://codecov.io/gh/goccy/go-yaml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/goccy/go-yaml)](https://goreportcard.com/report/github.com/goccy/go-yaml)\n\n<img width=\"300px\" src=\"https://user-images.githubusercontent.com/209884/67159116-64d94b80-f37b-11e9-9b28-f8379636a43c.png\"></img>\n\n# Why a new library?\n\nAs of this writing, there already exists a de facto standard library for YAML processing for Go: [https://github.com/go-yaml/yaml](https://github.com/go-yaml/yaml). However we feel that some features are lacking, namely:\n\n- Pretty format for error notifications\n- Direct manipulation of YAML abstract syntax tree\n- Support for `Anchor` and `Alias` when marshaling\n- Allow referencing elements declared in another file via anchors\n\n# Features\n\n- Pretty format for error notifications\n- Supports `Scanner` or `Lexer` or `Parser` as public API\n- Supports `Anchor` and `Alias` to Marshaler\n- Allow referencing elements declared in another file via anchors\n- Extract value or AST by YAMLPath ( YAMLPath is like a JSONPath )\n\n# Installation\n\n```sh\ngo get -u github.com/goccy/go-yaml\n```\n\n# Synopsis\n\n## 1. Simple Encode/Decode\n\nHas an interface like `go-yaml/yaml` using `reflect`\n\n```go\nvar v struct {\n\tA int\n\tB string\n}\nv.A = 1\nv.B = \"hello\"\nbytes, err := yaml.Marshal(v)\nif err != nil {\n\t//...\n}\nfmt.Println(string(bytes)) // \"a: 1\\nb: hello\\n\"\n```\n\n```go\n\tyml := `\n%YAML 1.2\n---\na: 1\nb: c\n`\nvar v struct {\n\tA int\n\tB string\n}\nif err := yaml.Unmarshal([]byte(yml), &v); err != nil {\n\t//...\n}\n```\n\nTo control marshal/unmarshal behavior, you can use the `yaml` tag.\n\n```go\n\tyml := `---\nfoo: 1\nbar: c\n`\nvar v struct {\n\tA int    `yaml:\"foo\"`\n\tB string `yaml:\"bar\"`\n}\nif err := yaml.Unmarshal([]byte(yml), &v); err != nil {\n\t//...\n}\n```\n\nFor convenience, we also accept the `json` tag. Note that not all options from\nthe `json` tag will have significance when parsing YAML documents. If both\ntags exist, `yaml` tag will take precedence.\n\n```go\n\tyml := `---\nfoo: 1\nbar: c\n`\nvar v struct {\n\tA int    `json:\"foo\"`\n\tB string `json:\"bar\"`\n}\nif err := yaml.Unmarshal([]byte(yml), &v); err != nil {\n\t//...\n}\n```\n\nFor custom marshal/unmarshaling, implement either `Bytes` or `Interface` variant of marshaler/unmarshaler. The difference is that while `BytesMarshaler`/`BytesUnmarshaler` behaves like [`encoding/json`](https://pkg.go.dev/encoding/json) and `InterfaceMarshaler`/`InterfaceUnmarshaler` behaves like [`gopkg.in/yaml.v2`](https://pkg.go.dev/gopkg.in/yaml.v2).\n\nSemantically both are the same, but they differ in performance. Because indentation matters in YAML, you cannot simply accept a valid YAML fragment from a Marshaler, and expect it to work when it is attached to the parent container's serialized form. Therefore when we receive use the `BytesMarshaler`, which returns `[]byte`, we must decode it once to figure out how to make it work in the given context. If you use the `InterfaceMarshaler`, we can skip the decoding.\n\nIf you are repeatedly marshaling complex objects, the latter is always better\nperformance wise. But if you are, for example, just providing a choice between\na config file format that is read only once, the former is probably easier to\ncode.\n\n## 2. Reference elements declared in another file\n\n`testdata` directory contains `anchor.yml` file:\n\n```shell\n├── testdata\n   └── anchor.yml\n```\n\nAnd `anchor.yml` is defined as follows:\n\n```yaml\na: &a\n  b: 1\n  c: hello\n```\n\nThen, if `yaml.ReferenceDirs(\"testdata\")` option is passed to `yaml.Decoder`, \n `Decoder` tries to find the anchor definition from YAML files the under `testdata` directory.\n \n```go\nbuf := bytes.NewBufferString(\"a: *a\\n\")\ndec := yaml.NewDecoder(buf, yaml.ReferenceDirs(\"testdata\"))\nvar v struct {\n\tA struct {\n\t\tB int\n\t\tC string\n\t}\n}\nif err := dec.Decode(&v); err != nil {\n\t//...\n}\nfmt.Printf(\"%+v\\n\", v) // {A:{B:1 C:hello}}\n```\n\n## 3. Encode with `Anchor` and `Alias`\n\n### 3.1. Explicitly declared `Anchor` name and `Alias` name\n\nIf you want to use `anchor` or `alias`, you can define it as a struct tag.\n\n```go\ntype T struct {\n  A int\n  B string\n}\nvar v struct {\n  C *T `yaml:\"c,anchor=x\"`\n  D *T `yaml:\"d,alias=x\"`\n}\nv.C = &T{A: 1, B: \"hello\"}\nv.D = v.C\nbytes, err := yaml.Marshal(v)\nif err != nil {\n  panic(err)\n}\nfmt.Println(string(bytes))\n/*\nc: &x\n  a: 1\n  b: hello\nd: *x\n*/\n```\n\n### 3.2. Implicitly declared `Anchor` and `Alias` names\n\nIf you do not explicitly declare the anchor name, the default behavior is to\nuse the equivalent of `strings.ToLower($FieldName)` as the name of the anchor.\n\nIf you do not explicitly declare the alias name AND the value is a pointer\nto another element, we look up the anchor name by finding out which anchor\nfield the value is assigned to by looking up its pointer address.\n\n```go\ntype T struct {\n\tI int\n\tS string\n}\nvar v struct {\n\tA *T `yaml:\"a,anchor\"`\n\tB *T `yaml:\"b,anchor\"`\n\tC *T `yaml:\"c,alias\"`\n\tD *T `yaml:\"d,alias\"`\n}\nv.A = &T{I: 1, S: \"hello\"}\nv.B = &T{I: 2, S: \"world\"}\nv.C = v.A // C has same pointer address to A\nv.D = v.B // D has same pointer address to B\nbytes, err := yaml.Marshal(v)\nif err != nil {\n\t//...\n}\nfmt.Println(string(bytes)) \n/*\na: &a\n  i: 1\n  s: hello\nb: &b\n  i: 2\n  s: world\nc: *a\nd: *b\n*/\n```\n\n### 3.3 MergeKey and Alias\n\nMerge key and alias ( `<<: *alias` ) can be used by embedding a structure with the `inline,alias` tag.\n\n```go\ntype Person struct {\n\t*Person `yaml:\",omitempty,inline,alias\"` // embed Person type for default value\n\tName    string `yaml:\",omitempty\"`\n\tAge     int    `yaml:\",omitempty\"`\n}\ndefaultPerson := &Person{\n\tName: \"John Smith\",\n\tAge:  20,\n}\npeople := []*Person{\n\t{\n\t\tPerson: defaultPerson, // assign default value\n\t\tName:   \"Ken\",         // override Name property\n\t\tAge:    10,            // override Age property\n\t},\n\t{\n\t\tPerson: defaultPerson, // assign default value only\n\t},\n}\nvar doc struct {\n\tDefault *Person   `yaml:\"default,anchor\"`\n\tPeople  []*Person `yaml:\"people\"`\n}\ndoc.Default = defaultPerson\ndoc.People = people\nbytes, err := yaml.Marshal(doc)\nif err != nil {\n\t//...\n}\nfmt.Println(string(bytes))\n/*\ndefault: &default\n  name: John Smith\n  age: 20\npeople:\n- <<: *default\n  name: Ken\n  age: 10\n- <<: *default\n*/\n```\n\n## 4. Pretty Formatted Errors\n\nError values produced during parsing have two extra features over regular\nerror values.\n\nFirst, by default, they contain extra information on the location of the error\nfrom the source YAML document, to make it easier to find the error location.\n\nSecond, the error messages can optionally be colorized.\n\nIf you would like to control exactly how the output looks like, consider\nusing  `yaml.FormatError`, which accepts two boolean values to\ncontrol turning these features on or off.\n\n<img src=\"https://user-images.githubusercontent.com/209884/67358124-587f0980-f59a-11e9-96fc-7205aab77695.png\"></img>\n\n## 5. Use YAMLPath\n\n```go\nyml := `\nstore:\n  book:\n    - author: john\n      price: 10\n    - author: ken\n      price: 12\n  bicycle:\n    color: red\n    price: 19.95\n`\npath, err := yaml.PathString(\"$.store.book[*].author\")\nif err != nil {\n  //...\n}\nvar authors []string\nif err := path.Read(strings.NewReader(yml), &authors); err != nil {\n  //...\n}\nfmt.Println(authors)\n// [john ken]\n```\n\n### 5.1 Print customized error with YAML source code\n\n```go\npackage main\n\nimport (\n  \"fmt\"\n\n  \"github.com/goccy/go-yaml\"\n)\n\nfunc main() {\n  yml := `\na: 1\nb: \"hello\"\n`\n  var v struct {\n    A int\n    B string\n  }\n  if err := yaml.Unmarshal([]byte(yml), &v); err != nil {\n    panic(err)\n  }\n  if v.A != 2 {\n    // output error with YAML source\n    path, err := yaml.PathString(\"$.a\")\n    if err != nil {\n      panic(err)\n    }\n    source, err := path.AnnotateSource([]byte(yml), true)\n    if err != nil {\n      panic(err)\n    }\n    fmt.Printf(\"a value expected 2 but actual %d:\\n%s\\n\", v.A, string(source))\n  }\n}\n```\n\noutput result is the following:\n\n<img src=\"https://user-images.githubusercontent.com/209884/84148813-7aca8680-aa9a-11ea-8fc9-37dece2ebdac.png\"></img>\n\n\n# Tools\n\n## ycat\n\nprint yaml file with color\n\n<img width=\"713\" alt=\"ycat\" src=\"https://user-images.githubusercontent.com/209884/66986084-19b00600-f0f9-11e9-9f0e-1f91eb072fe0.png\">\n\n### Installation\n\n```sh\ngo install github.com/goccy/go-yaml/cmd/ycat@latest\n```\n\n# Looking for Sponsors\n\nI'm looking for sponsors this library. This library is being developed as a personal project in my spare time. If you want a quick response or problem resolution when using this library in your project, please register as a [sponsor](https://github.com/sponsors/goccy). I will cooperate as much as possible. Of course, this library is developed as an MIT license, so you can use it freely for free.\n\n# License\n\nMIT\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/ast/ast.go",
    "content": "package ast\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/goccy/go-yaml/token\"\n\t\"golang.org/x/xerrors\"\n)\n\nvar (\n\tErrInvalidTokenType  = xerrors.New(\"invalid token type\")\n\tErrInvalidAnchorName = xerrors.New(\"invalid anchor name\")\n\tErrInvalidAliasName  = xerrors.New(\"invalid alias name\")\n)\n\n// NodeType type identifier of node\ntype NodeType int\n\nconst (\n\t// UnknownNodeType type identifier for default\n\tUnknownNodeType NodeType = iota\n\t// DocumentType type identifier for document node\n\tDocumentType\n\t// NullType type identifier for null node\n\tNullType\n\t// BoolType type identifier for boolean node\n\tBoolType\n\t// IntegerType type identifier for integer node\n\tIntegerType\n\t// FloatType type identifier for float node\n\tFloatType\n\t// InfinityType type identifier for infinity node\n\tInfinityType\n\t// NanType type identifier for nan node\n\tNanType\n\t// StringType type identifier for string node\n\tStringType\n\t// MergeKeyType type identifier for merge key node\n\tMergeKeyType\n\t// LiteralType type identifier for literal node\n\tLiteralType\n\t// MappingType type identifier for mapping node\n\tMappingType\n\t// MappingKeyType type identifier for mapping key node\n\tMappingKeyType\n\t// MappingValueType type identifier for mapping value node\n\tMappingValueType\n\t// SequenceType type identifier for sequence node\n\tSequenceType\n\t// AnchorType type identifier for anchor node\n\tAnchorType\n\t// AliasType type identifier for alias node\n\tAliasType\n\t// DirectiveType type identifier for directive node\n\tDirectiveType\n\t// TagType type identifier for tag node\n\tTagType\n\t// CommentType type identifier for comment node\n\tCommentType\n\t// CommentGroupType type identifier for comment group node\n\tCommentGroupType\n)\n\n// String node type identifier to text\nfunc (t NodeType) String() string {\n\tswitch t {\n\tcase UnknownNodeType:\n\t\treturn \"UnknownNode\"\n\tcase DocumentType:\n\t\treturn \"Document\"\n\tcase NullType:\n\t\treturn \"Null\"\n\tcase BoolType:\n\t\treturn \"Bool\"\n\tcase IntegerType:\n\t\treturn \"Integer\"\n\tcase FloatType:\n\t\treturn \"Float\"\n\tcase InfinityType:\n\t\treturn \"Infinity\"\n\tcase NanType:\n\t\treturn \"Nan\"\n\tcase StringType:\n\t\treturn \"String\"\n\tcase MergeKeyType:\n\t\treturn \"MergeKey\"\n\tcase LiteralType:\n\t\treturn \"Literal\"\n\tcase MappingType:\n\t\treturn \"Mapping\"\n\tcase MappingKeyType:\n\t\treturn \"MappingKey\"\n\tcase MappingValueType:\n\t\treturn \"MappingValue\"\n\tcase SequenceType:\n\t\treturn \"Sequence\"\n\tcase AnchorType:\n\t\treturn \"Anchor\"\n\tcase AliasType:\n\t\treturn \"Alias\"\n\tcase DirectiveType:\n\t\treturn \"Directive\"\n\tcase TagType:\n\t\treturn \"Tag\"\n\tcase CommentType:\n\t\treturn \"Comment\"\n\tcase CommentGroupType:\n\t\treturn \"CommentGroup\"\n\t}\n\treturn \"\"\n}\n\n// String node type identifier to YAML Structure name\n// based on https://yaml.org/spec/1.2/spec.html\nfunc (t NodeType) YAMLName() string {\n\tswitch t {\n\tcase UnknownNodeType:\n\t\treturn \"unknown\"\n\tcase DocumentType:\n\t\treturn \"document\"\n\tcase NullType:\n\t\treturn \"null\"\n\tcase BoolType:\n\t\treturn \"boolean\"\n\tcase IntegerType:\n\t\treturn \"int\"\n\tcase FloatType:\n\t\treturn \"float\"\n\tcase InfinityType:\n\t\treturn \"inf\"\n\tcase NanType:\n\t\treturn \"nan\"\n\tcase StringType:\n\t\treturn \"string\"\n\tcase MergeKeyType:\n\t\treturn \"merge key\"\n\tcase LiteralType:\n\t\treturn \"scalar\"\n\tcase MappingType:\n\t\treturn \"mapping\"\n\tcase MappingKeyType:\n\t\treturn \"key\"\n\tcase MappingValueType:\n\t\treturn \"value\"\n\tcase SequenceType:\n\t\treturn \"sequence\"\n\tcase AnchorType:\n\t\treturn \"anchor\"\n\tcase AliasType:\n\t\treturn \"alias\"\n\tcase DirectiveType:\n\t\treturn \"directive\"\n\tcase TagType:\n\t\treturn \"tag\"\n\tcase CommentType:\n\t\treturn \"comment\"\n\tcase CommentGroupType:\n\t\treturn \"comment\"\n\t}\n\treturn \"\"\n}\n\n// Node type of node\ntype Node interface {\n\tio.Reader\n\t// String node to text\n\tString() string\n\t// GetToken returns token instance\n\tGetToken() *token.Token\n\t// Type returns type of node\n\tType() NodeType\n\t// AddColumn add column number to child nodes recursively\n\tAddColumn(int)\n\t// SetComment set comment token to node\n\tSetComment(*CommentGroupNode) error\n\t// Comment returns comment token instance\n\tGetComment() *CommentGroupNode\n\t// GetPath returns YAMLPath for the current node\n\tGetPath() string\n\t// SetPath set YAMLPath for the current node\n\tSetPath(string)\n\t// MarshalYAML\n\tMarshalYAML() ([]byte, error)\n\t// already read length\n\treadLen() int\n\t// append read length\n\taddReadLen(int)\n\t// clean read length\n\tclearLen()\n}\n\n// MapKeyNode type for map key node\ntype MapKeyNode interface {\n\tNode\n\t// String node to text without comment\n\tstringWithoutComment() string\n}\n\n// ScalarNode type for scalar node\ntype ScalarNode interface {\n\tMapKeyNode\n\tGetValue() interface{}\n}\n\ntype BaseNode struct {\n\tPath    string\n\tComment *CommentGroupNode\n\tread    int\n}\n\nfunc addCommentString(base string, node *CommentGroupNode) string {\n\treturn fmt.Sprintf(\"%s %s\", base, node.String())\n}\n\nfunc (n *BaseNode) readLen() int {\n\treturn n.read\n}\n\nfunc (n *BaseNode) clearLen() {\n\tn.read = 0\n}\n\nfunc (n *BaseNode) addReadLen(len int) {\n\tn.read += len\n}\n\n// GetPath returns YAMLPath for the current node.\nfunc (n *BaseNode) GetPath() string {\n\tif n == nil {\n\t\treturn \"\"\n\t}\n\treturn n.Path\n}\n\n// SetPath set YAMLPath for the current node.\nfunc (n *BaseNode) SetPath(path string) {\n\tif n == nil {\n\t\treturn\n\t}\n\tn.Path = path\n}\n\n// GetComment returns comment token instance\nfunc (n *BaseNode) GetComment() *CommentGroupNode {\n\treturn n.Comment\n}\n\n// SetComment set comment token\nfunc (n *BaseNode) SetComment(node *CommentGroupNode) error {\n\tn.Comment = node\n\treturn nil\n}\n\nfunc min(a, b int) int {\n\tif a < b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc readNode(p []byte, node Node) (int, error) {\n\ts := node.String()\n\treadLen := node.readLen()\n\tremain := len(s) - readLen\n\tif remain == 0 {\n\t\tnode.clearLen()\n\t\treturn 0, io.EOF\n\t}\n\tsize := min(remain, len(p))\n\tfor idx, b := range []byte(s[readLen : readLen+size]) {\n\t\tp[idx] = byte(b)\n\t}\n\tnode.addReadLen(size)\n\treturn size, nil\n}\n\n// Null create node for null value\nfunc Null(tk *token.Token) *NullNode {\n\treturn &NullNode{\n\t\tBaseNode: &BaseNode{},\n\t\tToken:    tk,\n\t}\n}\n\n// Bool create node for boolean value\nfunc Bool(tk *token.Token) *BoolNode {\n\tb, _ := strconv.ParseBool(tk.Value)\n\treturn &BoolNode{\n\t\tBaseNode: &BaseNode{},\n\t\tToken:    tk,\n\t\tValue:    b,\n\t}\n}\n\n// Integer create node for integer value\nfunc Integer(tk *token.Token) *IntegerNode {\n\tvalue := removeUnderScoreFromNumber(tk.Value)\n\tswitch tk.Type {\n\tcase token.BinaryIntegerType:\n\t\t// skip two characters because binary token starts with '0b'\n\t\tskipCharacterNum := 2\n\t\tnegativePrefix := \"\"\n\t\tif value[0] == '-' {\n\t\t\tskipCharacterNum++\n\t\t\tnegativePrefix = \"-\"\n\t\t}\n\t\tif len(negativePrefix) > 0 {\n\t\t\ti, _ := strconv.ParseInt(negativePrefix+value[skipCharacterNum:], 2, 64)\n\t\t\treturn &IntegerNode{\n\t\t\t\tBaseNode: &BaseNode{},\n\t\t\t\tToken:    tk,\n\t\t\t\tValue:    i,\n\t\t\t}\n\t\t}\n\t\ti, _ := strconv.ParseUint(negativePrefix+value[skipCharacterNum:], 2, 64)\n\t\treturn &IntegerNode{\n\t\t\tBaseNode: &BaseNode{},\n\t\t\tToken:    tk,\n\t\t\tValue:    i,\n\t\t}\n\tcase token.OctetIntegerType:\n\t\t// octet token starts with '0o' or '-0o' or '0' or '-0'\n\t\tskipCharacterNum := 1\n\t\tnegativePrefix := \"\"\n\t\tif value[0] == '-' {\n\t\t\tskipCharacterNum++\n\t\t\tif len(value) > 2 && value[2] == 'o' {\n\t\t\t\tskipCharacterNum++\n\t\t\t}\n\t\t\tnegativePrefix = \"-\"\n\t\t} else {\n\t\t\tif value[1] == 'o' {\n\t\t\t\tskipCharacterNum++\n\t\t\t}\n\t\t}\n\t\tif len(negativePrefix) > 0 {\n\t\t\ti, _ := strconv.ParseInt(negativePrefix+value[skipCharacterNum:], 8, 64)\n\t\t\treturn &IntegerNode{\n\t\t\t\tBaseNode: &BaseNode{},\n\t\t\t\tToken:    tk,\n\t\t\t\tValue:    i,\n\t\t\t}\n\t\t}\n\t\ti, _ := strconv.ParseUint(value[skipCharacterNum:], 8, 64)\n\t\treturn &IntegerNode{\n\t\t\tBaseNode: &BaseNode{},\n\t\t\tToken:    tk,\n\t\t\tValue:    i,\n\t\t}\n\tcase token.HexIntegerType:\n\t\t// hex token starts with '0x' or '-0x'\n\t\tskipCharacterNum := 2\n\t\tnegativePrefix := \"\"\n\t\tif value[0] == '-' {\n\t\t\tskipCharacterNum++\n\t\t\tnegativePrefix = \"-\"\n\t\t}\n\t\tif len(negativePrefix) > 0 {\n\t\t\ti, _ := strconv.ParseInt(negativePrefix+value[skipCharacterNum:], 16, 64)\n\t\t\treturn &IntegerNode{\n\t\t\t\tBaseNode: &BaseNode{},\n\t\t\t\tToken:    tk,\n\t\t\t\tValue:    i,\n\t\t\t}\n\t\t}\n\t\ti, _ := strconv.ParseUint(value[skipCharacterNum:], 16, 64)\n\t\treturn &IntegerNode{\n\t\t\tBaseNode: &BaseNode{},\n\t\t\tToken:    tk,\n\t\t\tValue:    i,\n\t\t}\n\t}\n\tif value[0] == '-' || value[0] == '+' {\n\t\ti, _ := strconv.ParseInt(value, 10, 64)\n\t\treturn &IntegerNode{\n\t\t\tBaseNode: &BaseNode{},\n\t\t\tToken:    tk,\n\t\t\tValue:    i,\n\t\t}\n\t}\n\ti, _ := strconv.ParseUint(value, 10, 64)\n\treturn &IntegerNode{\n\t\tBaseNode: &BaseNode{},\n\t\tToken:    tk,\n\t\tValue:    i,\n\t}\n}\n\n// Float create node for float value\nfunc Float(tk *token.Token) *FloatNode {\n\tf, _ := strconv.ParseFloat(removeUnderScoreFromNumber(tk.Value), 64)\n\treturn &FloatNode{\n\t\tBaseNode: &BaseNode{},\n\t\tToken:    tk,\n\t\tValue:    f,\n\t}\n}\n\n// Infinity create node for .inf or -.inf value\nfunc Infinity(tk *token.Token) *InfinityNode {\n\tnode := &InfinityNode{\n\t\tBaseNode: &BaseNode{},\n\t\tToken:    tk,\n\t}\n\tswitch tk.Value {\n\tcase \".inf\", \".Inf\", \".INF\":\n\t\tnode.Value = math.Inf(0)\n\tcase \"-.inf\", \"-.Inf\", \"-.INF\":\n\t\tnode.Value = math.Inf(-1)\n\t}\n\treturn node\n}\n\n// Nan create node for .nan value\nfunc Nan(tk *token.Token) *NanNode {\n\treturn &NanNode{\n\t\tBaseNode: &BaseNode{},\n\t\tToken:    tk,\n\t}\n}\n\n// String create node for string value\nfunc String(tk *token.Token) *StringNode {\n\treturn &StringNode{\n\t\tBaseNode: &BaseNode{},\n\t\tToken:    tk,\n\t\tValue:    tk.Value,\n\t}\n}\n\n// Comment create node for comment\nfunc Comment(tk *token.Token) *CommentNode {\n\treturn &CommentNode{\n\t\tBaseNode: &BaseNode{},\n\t\tToken:    tk,\n\t}\n}\n\nfunc CommentGroup(comments []*token.Token) *CommentGroupNode {\n\tnodes := []*CommentNode{}\n\tfor _, comment := range comments {\n\t\tnodes = append(nodes, Comment(comment))\n\t}\n\treturn &CommentGroupNode{\n\t\tBaseNode: &BaseNode{},\n\t\tComments: nodes,\n\t}\n}\n\n// MergeKey create node for merge key ( << )\nfunc MergeKey(tk *token.Token) *MergeKeyNode {\n\treturn &MergeKeyNode{\n\t\tBaseNode: &BaseNode{},\n\t\tToken:    tk,\n\t}\n}\n\n// Mapping create node for map\nfunc Mapping(tk *token.Token, isFlowStyle bool, values ...*MappingValueNode) *MappingNode {\n\tnode := &MappingNode{\n\t\tBaseNode:    &BaseNode{},\n\t\tStart:       tk,\n\t\tIsFlowStyle: isFlowStyle,\n\t\tValues:      []*MappingValueNode{},\n\t}\n\tnode.Values = append(node.Values, values...)\n\treturn node\n}\n\n// MappingValue create node for mapping value\nfunc MappingValue(tk *token.Token, key MapKeyNode, value Node) *MappingValueNode {\n\treturn &MappingValueNode{\n\t\tBaseNode: &BaseNode{},\n\t\tStart:    tk,\n\t\tKey:      key,\n\t\tValue:    value,\n\t}\n}\n\n// MappingKey create node for map key ( '?' ).\nfunc MappingKey(tk *token.Token) *MappingKeyNode {\n\treturn &MappingKeyNode{\n\t\tBaseNode: &BaseNode{},\n\t\tStart:    tk,\n\t}\n}\n\n// Sequence create node for sequence\nfunc Sequence(tk *token.Token, isFlowStyle bool) *SequenceNode {\n\treturn &SequenceNode{\n\t\tBaseNode:    &BaseNode{},\n\t\tStart:       tk,\n\t\tIsFlowStyle: isFlowStyle,\n\t\tValues:      []Node{},\n\t}\n}\n\nfunc Anchor(tk *token.Token) *AnchorNode {\n\treturn &AnchorNode{\n\t\tBaseNode: &BaseNode{},\n\t\tStart:    tk,\n\t}\n}\n\nfunc Alias(tk *token.Token) *AliasNode {\n\treturn &AliasNode{\n\t\tBaseNode: &BaseNode{},\n\t\tStart:    tk,\n\t}\n}\n\nfunc Document(tk *token.Token, body Node) *DocumentNode {\n\treturn &DocumentNode{\n\t\tBaseNode: &BaseNode{},\n\t\tStart:    tk,\n\t\tBody:     body,\n\t}\n}\n\nfunc Directive(tk *token.Token) *DirectiveNode {\n\treturn &DirectiveNode{\n\t\tBaseNode: &BaseNode{},\n\t\tStart:    tk,\n\t}\n}\n\nfunc Literal(tk *token.Token) *LiteralNode {\n\treturn &LiteralNode{\n\t\tBaseNode: &BaseNode{},\n\t\tStart:    tk,\n\t}\n}\n\nfunc Tag(tk *token.Token) *TagNode {\n\treturn &TagNode{\n\t\tBaseNode: &BaseNode{},\n\t\tStart:    tk,\n\t}\n}\n\n// File contains all documents in YAML file\ntype File struct {\n\tName string\n\tDocs []*DocumentNode\n}\n\n// Read implements (io.Reader).Read\nfunc (f *File) Read(p []byte) (int, error) {\n\tfor _, doc := range f.Docs {\n\t\tn, err := doc.Read(p)\n\t\tif err == io.EOF {\n\t\t\tcontinue\n\t\t}\n\t\treturn n, nil\n\t}\n\treturn 0, io.EOF\n}\n\n// String all documents to text\nfunc (f *File) String() string {\n\tdocs := []string{}\n\tfor _, doc := range f.Docs {\n\t\tdocs = append(docs, doc.String())\n\t}\n\tif len(docs) > 0 {\n\t\treturn strings.Join(docs, \"\\n\") + \"\\n\"\n\t} else {\n\t\treturn \"\"\n\t}\n}\n\n// DocumentNode type of Document\ntype DocumentNode struct {\n\t*BaseNode\n\tStart *token.Token // position of DocumentHeader ( `---` )\n\tEnd   *token.Token // position of DocumentEnd ( `...` )\n\tBody  Node\n}\n\n// Read implements (io.Reader).Read\nfunc (d *DocumentNode) Read(p []byte) (int, error) {\n\treturn readNode(p, d)\n}\n\n// Type returns DocumentNodeType\nfunc (d *DocumentNode) Type() NodeType { return DocumentType }\n\n// GetToken returns token instance\nfunc (d *DocumentNode) GetToken() *token.Token {\n\treturn d.Body.GetToken()\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (d *DocumentNode) AddColumn(col int) {\n\tif d.Body != nil {\n\t\td.Body.AddColumn(col)\n\t}\n}\n\n// String document to text\nfunc (d *DocumentNode) String() string {\n\tdoc := []string{}\n\tif d.Start != nil {\n\t\tdoc = append(doc, d.Start.Value)\n\t}\n\tdoc = append(doc, d.Body.String())\n\tif d.End != nil {\n\t\tdoc = append(doc, d.End.Value)\n\t}\n\treturn strings.Join(doc, \"\\n\")\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (d *DocumentNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(d.String()), nil\n}\n\nfunc removeUnderScoreFromNumber(num string) string {\n\treturn strings.ReplaceAll(num, \"_\", \"\")\n}\n\n// NullNode type of null node\ntype NullNode struct {\n\t*BaseNode\n\tToken *token.Token\n}\n\n// Read implements (io.Reader).Read\nfunc (n *NullNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns NullType\nfunc (n *NullNode) Type() NodeType { return NullType }\n\n// GetToken returns token instance\nfunc (n *NullNode) GetToken() *token.Token {\n\treturn n.Token\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *NullNode) AddColumn(col int) {\n\tn.Token.AddColumn(col)\n}\n\n// GetValue returns nil value\nfunc (n *NullNode) GetValue() interface{} {\n\treturn nil\n}\n\n// String returns `null` text\nfunc (n *NullNode) String() string {\n\tif n.Comment != nil {\n\t\treturn addCommentString(\"null\", n.Comment)\n\t}\n\treturn n.stringWithoutComment()\n}\n\nfunc (n *NullNode) stringWithoutComment() string {\n\treturn \"null\"\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *NullNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// IntegerNode type of integer node\ntype IntegerNode struct {\n\t*BaseNode\n\tToken *token.Token\n\tValue interface{} // int64 or uint64 value\n}\n\n// Read implements (io.Reader).Read\nfunc (n *IntegerNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns IntegerType\nfunc (n *IntegerNode) Type() NodeType { return IntegerType }\n\n// GetToken returns token instance\nfunc (n *IntegerNode) GetToken() *token.Token {\n\treturn n.Token\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *IntegerNode) AddColumn(col int) {\n\tn.Token.AddColumn(col)\n}\n\n// GetValue returns int64 value\nfunc (n *IntegerNode) GetValue() interface{} {\n\treturn n.Value\n}\n\n// String int64 to text\nfunc (n *IntegerNode) String() string {\n\tif n.Comment != nil {\n\t\treturn addCommentString(n.Token.Value, n.Comment)\n\t}\n\treturn n.stringWithoutComment()\n}\n\nfunc (n *IntegerNode) stringWithoutComment() string {\n\treturn n.Token.Value\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *IntegerNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// FloatNode type of float node\ntype FloatNode struct {\n\t*BaseNode\n\tToken     *token.Token\n\tPrecision int\n\tValue     float64\n}\n\n// Read implements (io.Reader).Read\nfunc (n *FloatNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns FloatType\nfunc (n *FloatNode) Type() NodeType { return FloatType }\n\n// GetToken returns token instance\nfunc (n *FloatNode) GetToken() *token.Token {\n\treturn n.Token\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *FloatNode) AddColumn(col int) {\n\tn.Token.AddColumn(col)\n}\n\n// GetValue returns float64 value\nfunc (n *FloatNode) GetValue() interface{} {\n\treturn n.Value\n}\n\n// String float64 to text\nfunc (n *FloatNode) String() string {\n\tif n.Comment != nil {\n\t\treturn addCommentString(n.Token.Value, n.Comment)\n\t}\n\treturn n.stringWithoutComment()\n}\n\nfunc (n *FloatNode) stringWithoutComment() string {\n\treturn n.Token.Value\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *FloatNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// StringNode type of string node\ntype StringNode struct {\n\t*BaseNode\n\tToken *token.Token\n\tValue string\n}\n\n// Read implements (io.Reader).Read\nfunc (n *StringNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns StringType\nfunc (n *StringNode) Type() NodeType { return StringType }\n\n// GetToken returns token instance\nfunc (n *StringNode) GetToken() *token.Token {\n\treturn n.Token\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *StringNode) AddColumn(col int) {\n\tn.Token.AddColumn(col)\n}\n\n// GetValue returns string value\nfunc (n *StringNode) GetValue() interface{} {\n\treturn n.Value\n}\n\n// escapeSingleQuote escapes s to a single quoted scalar.\n// https://yaml.org/spec/1.2.2/#732-single-quoted-style\nfunc escapeSingleQuote(s string) string {\n\tvar sb strings.Builder\n\tgrowLen := len(s) + // s includes also one ' from the doubled pair\n\t\t2 + // opening and closing '\n\t\tstrings.Count(s, \"'\") // ' added by ReplaceAll\n\tsb.Grow(growLen)\n\tsb.WriteString(\"'\")\n\tsb.WriteString(strings.ReplaceAll(s, \"'\", \"''\"))\n\tsb.WriteString(\"'\")\n\treturn sb.String()\n}\n\n// String string value to text with quote or literal header if required\nfunc (n *StringNode) String() string {\n\tswitch n.Token.Type {\n\tcase token.SingleQuoteType:\n\t\tquoted := escapeSingleQuote(n.Value)\n\t\tif n.Comment != nil {\n\t\t\treturn addCommentString(quoted, n.Comment)\n\t\t}\n\t\treturn quoted\n\tcase token.DoubleQuoteType:\n\t\tquoted := strconv.Quote(n.Value)\n\t\tif n.Comment != nil {\n\t\t\treturn addCommentString(quoted, n.Comment)\n\t\t}\n\t\treturn quoted\n\t}\n\n\tlbc := token.DetectLineBreakCharacter(n.Value)\n\tif strings.Contains(n.Value, lbc) {\n\t\t// This block assumes that the line breaks in this inside scalar content and the Outside scalar content are the same.\n\t\t// It works mostly, but inconsistencies occur if line break characters are mixed.\n\t\theader := token.LiteralBlockHeader(n.Value)\n\t\tspace := strings.Repeat(\" \", n.Token.Position.Column-1)\n\t\tvalues := []string{}\n\t\tfor _, v := range strings.Split(n.Value, lbc) {\n\t\t\tvalues = append(values, fmt.Sprintf(\"%s  %s\", space, v))\n\t\t}\n\t\tblock := strings.TrimSuffix(strings.TrimSuffix(strings.Join(values, lbc), fmt.Sprintf(\"%s  %s\", lbc, space)), fmt.Sprintf(\"  %s\", space))\n\t\treturn fmt.Sprintf(\"%s%s%s\", header, lbc, block)\n\t} else if len(n.Value) > 0 && (n.Value[0] == '{' || n.Value[0] == '[') {\n\t\treturn fmt.Sprintf(`'%s'`, n.Value)\n\t}\n\tif n.Comment != nil {\n\t\treturn addCommentString(n.Value, n.Comment)\n\t}\n\treturn n.Value\n}\n\nfunc (n *StringNode) stringWithoutComment() string {\n\tswitch n.Token.Type {\n\tcase token.SingleQuoteType:\n\t\tquoted := fmt.Sprintf(`'%s'`, n.Value)\n\t\treturn quoted\n\tcase token.DoubleQuoteType:\n\t\tquoted := strconv.Quote(n.Value)\n\t\treturn quoted\n\t}\n\n\tlbc := token.DetectLineBreakCharacter(n.Value)\n\tif strings.Contains(n.Value, lbc) {\n\t\t// This block assumes that the line breaks in this inside scalar content and the Outside scalar content are the same.\n\t\t// It works mostly, but inconsistencies occur if line break characters are mixed.\n\t\theader := token.LiteralBlockHeader(n.Value)\n\t\tspace := strings.Repeat(\" \", n.Token.Position.Column-1)\n\t\tvalues := []string{}\n\t\tfor _, v := range strings.Split(n.Value, lbc) {\n\t\t\tvalues = append(values, fmt.Sprintf(\"%s  %s\", space, v))\n\t\t}\n\t\tblock := strings.TrimSuffix(strings.TrimSuffix(strings.Join(values, lbc), fmt.Sprintf(\"%s  %s\", lbc, space)), fmt.Sprintf(\"  %s\", space))\n\t\treturn fmt.Sprintf(\"%s%s%s\", header, lbc, block)\n\t} else if len(n.Value) > 0 && (n.Value[0] == '{' || n.Value[0] == '[') {\n\t\treturn fmt.Sprintf(`'%s'`, n.Value)\n\t}\n\treturn n.Value\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *StringNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// LiteralNode type of literal node\ntype LiteralNode struct {\n\t*BaseNode\n\tStart *token.Token\n\tValue *StringNode\n}\n\n// Read implements (io.Reader).Read\nfunc (n *LiteralNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns LiteralType\nfunc (n *LiteralNode) Type() NodeType { return LiteralType }\n\n// GetToken returns token instance\nfunc (n *LiteralNode) GetToken() *token.Token {\n\treturn n.Start\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *LiteralNode) AddColumn(col int) {\n\tn.Start.AddColumn(col)\n\tif n.Value != nil {\n\t\tn.Value.AddColumn(col)\n\t}\n}\n\n// GetValue returns string value\nfunc (n *LiteralNode) GetValue() interface{} {\n\treturn n.String()\n}\n\n// String literal to text\nfunc (n *LiteralNode) String() string {\n\torigin := n.Value.GetToken().Origin\n\tlit := strings.TrimRight(strings.TrimRight(origin, \" \"), \"\\n\")\n\tif n.Comment != nil {\n\t\treturn fmt.Sprintf(\"%s %s\\n%s\", n.Start.Value, n.Comment.String(), lit)\n\t}\n\treturn fmt.Sprintf(\"%s\\n%s\", n.Start.Value, lit)\n}\n\nfunc (n *LiteralNode) stringWithoutComment() string {\n\treturn n.String()\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *LiteralNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// MergeKeyNode type of merge key node\ntype MergeKeyNode struct {\n\t*BaseNode\n\tToken *token.Token\n}\n\n// Read implements (io.Reader).Read\nfunc (n *MergeKeyNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns MergeKeyType\nfunc (n *MergeKeyNode) Type() NodeType { return MergeKeyType }\n\n// GetToken returns token instance\nfunc (n *MergeKeyNode) GetToken() *token.Token {\n\treturn n.Token\n}\n\n// GetValue returns '<<' value\nfunc (n *MergeKeyNode) GetValue() interface{} {\n\treturn n.Token.Value\n}\n\n// String returns '<<' value\nfunc (n *MergeKeyNode) String() string {\n\treturn n.stringWithoutComment()\n}\n\nfunc (n *MergeKeyNode) stringWithoutComment() string {\n\treturn n.Token.Value\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *MergeKeyNode) AddColumn(col int) {\n\tn.Token.AddColumn(col)\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *MergeKeyNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// BoolNode type of boolean node\ntype BoolNode struct {\n\t*BaseNode\n\tToken *token.Token\n\tValue bool\n}\n\n// Read implements (io.Reader).Read\nfunc (n *BoolNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns BoolType\nfunc (n *BoolNode) Type() NodeType { return BoolType }\n\n// GetToken returns token instance\nfunc (n *BoolNode) GetToken() *token.Token {\n\treturn n.Token\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *BoolNode) AddColumn(col int) {\n\tn.Token.AddColumn(col)\n}\n\n// GetValue returns boolean value\nfunc (n *BoolNode) GetValue() interface{} {\n\treturn n.Value\n}\n\n// String boolean to text\nfunc (n *BoolNode) String() string {\n\tif n.Comment != nil {\n\t\treturn addCommentString(n.Token.Value, n.Comment)\n\t}\n\treturn n.stringWithoutComment()\n}\n\nfunc (n *BoolNode) stringWithoutComment() string {\n\treturn n.Token.Value\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *BoolNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// InfinityNode type of infinity node\ntype InfinityNode struct {\n\t*BaseNode\n\tToken *token.Token\n\tValue float64\n}\n\n// Read implements (io.Reader).Read\nfunc (n *InfinityNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns InfinityType\nfunc (n *InfinityNode) Type() NodeType { return InfinityType }\n\n// GetToken returns token instance\nfunc (n *InfinityNode) GetToken() *token.Token {\n\treturn n.Token\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *InfinityNode) AddColumn(col int) {\n\tn.Token.AddColumn(col)\n}\n\n// GetValue returns math.Inf(0) or math.Inf(-1)\nfunc (n *InfinityNode) GetValue() interface{} {\n\treturn n.Value\n}\n\n// String infinity to text\nfunc (n *InfinityNode) String() string {\n\tif n.Comment != nil {\n\t\treturn addCommentString(n.Token.Value, n.Comment)\n\t}\n\treturn n.stringWithoutComment()\n}\n\nfunc (n *InfinityNode) stringWithoutComment() string {\n\treturn n.Token.Value\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *InfinityNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// NanNode type of nan node\ntype NanNode struct {\n\t*BaseNode\n\tToken *token.Token\n}\n\n// Read implements (io.Reader).Read\nfunc (n *NanNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns NanType\nfunc (n *NanNode) Type() NodeType { return NanType }\n\n// GetToken returns token instance\nfunc (n *NanNode) GetToken() *token.Token {\n\treturn n.Token\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *NanNode) AddColumn(col int) {\n\tn.Token.AddColumn(col)\n}\n\n// GetValue returns math.NaN()\nfunc (n *NanNode) GetValue() interface{} {\n\treturn math.NaN()\n}\n\n// String returns .nan\nfunc (n *NanNode) String() string {\n\tif n.Comment != nil {\n\t\treturn addCommentString(n.Token.Value, n.Comment)\n\t}\n\treturn n.stringWithoutComment()\n}\n\nfunc (n *NanNode) stringWithoutComment() string {\n\treturn n.Token.Value\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *NanNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// MapNode interface of MappingValueNode / MappingNode\ntype MapNode interface {\n\tMapRange() *MapNodeIter\n}\n\n// MapNodeIter is an iterator for ranging over a MapNode\ntype MapNodeIter struct {\n\tvalues []*MappingValueNode\n\tidx    int\n}\n\nconst (\n\tstartRangeIndex = -1\n)\n\n// Next advances the map iterator and reports whether there is another entry.\n// It returns false when the iterator is exhausted.\nfunc (m *MapNodeIter) Next() bool {\n\tm.idx++\n\tnext := m.idx < len(m.values)\n\treturn next\n}\n\n// Key returns the key of the iterator's current map node entry.\nfunc (m *MapNodeIter) Key() MapKeyNode {\n\treturn m.values[m.idx].Key\n}\n\n// Value returns the value of the iterator's current map node entry.\nfunc (m *MapNodeIter) Value() Node {\n\treturn m.values[m.idx].Value\n}\n\n// MappingNode type of mapping node\ntype MappingNode struct {\n\t*BaseNode\n\tStart       *token.Token\n\tEnd         *token.Token\n\tIsFlowStyle bool\n\tValues      []*MappingValueNode\n\tFootComment *CommentGroupNode\n}\n\nfunc (n *MappingNode) startPos() *token.Position {\n\tif len(n.Values) == 0 {\n\t\treturn n.Start.Position\n\t}\n\treturn n.Values[0].Key.GetToken().Position\n}\n\n// Merge merge key/value of map.\nfunc (n *MappingNode) Merge(target *MappingNode) {\n\tkeyToMapValueMap := map[string]*MappingValueNode{}\n\tfor _, value := range n.Values {\n\t\tkey := value.Key.String()\n\t\tkeyToMapValueMap[key] = value\n\t}\n\tcolumn := n.startPos().Column - target.startPos().Column\n\ttarget.AddColumn(column)\n\tfor _, value := range target.Values {\n\t\tmapValue, exists := keyToMapValueMap[value.Key.String()]\n\t\tif exists {\n\t\t\tmapValue.Value = value.Value\n\t\t} else {\n\t\t\tn.Values = append(n.Values, value)\n\t\t}\n\t}\n}\n\n// SetIsFlowStyle set value to IsFlowStyle field recursively.\nfunc (n *MappingNode) SetIsFlowStyle(isFlow bool) {\n\tn.IsFlowStyle = isFlow\n\tfor _, value := range n.Values {\n\t\tvalue.SetIsFlowStyle(isFlow)\n\t}\n}\n\n// Read implements (io.Reader).Read\nfunc (n *MappingNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns MappingType\nfunc (n *MappingNode) Type() NodeType { return MappingType }\n\n// GetToken returns token instance\nfunc (n *MappingNode) GetToken() *token.Token {\n\treturn n.Start\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *MappingNode) AddColumn(col int) {\n\tn.Start.AddColumn(col)\n\tn.End.AddColumn(col)\n\tfor _, value := range n.Values {\n\t\tvalue.AddColumn(col)\n\t}\n}\n\nfunc (n *MappingNode) flowStyleString(commentMode bool) string {\n\tvalues := []string{}\n\tfor _, value := range n.Values {\n\t\tvalues = append(values, strings.TrimLeft(value.String(), \" \"))\n\t}\n\tmapText := fmt.Sprintf(\"{%s}\", strings.Join(values, \", \"))\n\tif commentMode && n.Comment != nil {\n\t\treturn addCommentString(mapText, n.Comment)\n\t}\n\treturn mapText\n}\n\nfunc (n *MappingNode) blockStyleString(commentMode bool) string {\n\tvalues := []string{}\n\tfor _, value := range n.Values {\n\t\tvalues = append(values, value.String())\n\t}\n\tmapText := strings.Join(values, \"\\n\")\n\tif commentMode && n.Comment != nil {\n\t\tvalue := values[0]\n\t\tvar spaceNum int\n\t\tfor i := 0; i < len(value); i++ {\n\t\t\tif value[i] != ' ' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tspaceNum++\n\t\t}\n\t\tcomment := n.Comment.StringWithSpace(spaceNum)\n\t\treturn fmt.Sprintf(\"%s\\n%s\", comment, mapText)\n\t}\n\treturn mapText\n}\n\n// String mapping values to text\nfunc (n *MappingNode) String() string {\n\tif len(n.Values) == 0 {\n\t\tif n.Comment != nil {\n\t\t\treturn addCommentString(\"{}\", n.Comment)\n\t\t}\n\t\treturn \"{}\"\n\t}\n\n\tcommentMode := true\n\tif n.IsFlowStyle || len(n.Values) == 0 {\n\t\treturn n.flowStyleString(commentMode)\n\t}\n\treturn n.blockStyleString(commentMode)\n}\n\n// MapRange implements MapNode protocol\nfunc (n *MappingNode) MapRange() *MapNodeIter {\n\treturn &MapNodeIter{\n\t\tidx:    startRangeIndex,\n\t\tvalues: n.Values,\n\t}\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *MappingNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// MappingKeyNode type of tag node\ntype MappingKeyNode struct {\n\t*BaseNode\n\tStart *token.Token\n\tValue Node\n}\n\n// Read implements (io.Reader).Read\nfunc (n *MappingKeyNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns MappingKeyType\nfunc (n *MappingKeyNode) Type() NodeType { return MappingKeyType }\n\n// GetToken returns token instance\nfunc (n *MappingKeyNode) GetToken() *token.Token {\n\treturn n.Start\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *MappingKeyNode) AddColumn(col int) {\n\tn.Start.AddColumn(col)\n\tif n.Value != nil {\n\t\tn.Value.AddColumn(col)\n\t}\n}\n\n// String tag to text\nfunc (n *MappingKeyNode) String() string {\n\treturn n.stringWithoutComment()\n}\n\nfunc (n *MappingKeyNode) stringWithoutComment() string {\n\treturn fmt.Sprintf(\"%s %s\", n.Start.Value, n.Value.String())\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *MappingKeyNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// MappingValueNode type of mapping value\ntype MappingValueNode struct {\n\t*BaseNode\n\tStart       *token.Token\n\tKey         MapKeyNode\n\tValue       Node\n\tFootComment *CommentGroupNode\n}\n\n// Replace replace value node.\nfunc (n *MappingValueNode) Replace(value Node) error {\n\tcolumn := n.Value.GetToken().Position.Column - value.GetToken().Position.Column\n\tvalue.AddColumn(column)\n\tn.Value = value\n\treturn nil\n}\n\n// Read implements (io.Reader).Read\nfunc (n *MappingValueNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns MappingValueType\nfunc (n *MappingValueNode) Type() NodeType { return MappingValueType }\n\n// GetToken returns token instance\nfunc (n *MappingValueNode) GetToken() *token.Token {\n\treturn n.Start\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *MappingValueNode) AddColumn(col int) {\n\tn.Start.AddColumn(col)\n\tif n.Key != nil {\n\t\tn.Key.AddColumn(col)\n\t}\n\tif n.Value != nil {\n\t\tn.Value.AddColumn(col)\n\t}\n}\n\n// SetIsFlowStyle set value to IsFlowStyle field recursively.\nfunc (n *MappingValueNode) SetIsFlowStyle(isFlow bool) {\n\tswitch value := n.Value.(type) {\n\tcase *MappingNode:\n\t\tvalue.SetIsFlowStyle(isFlow)\n\tcase *MappingValueNode:\n\t\tvalue.SetIsFlowStyle(isFlow)\n\tcase *SequenceNode:\n\t\tvalue.SetIsFlowStyle(isFlow)\n\t}\n}\n\n// String mapping value to text\nfunc (n *MappingValueNode) String() string {\n\tvar text string\n\tif n.Comment != nil {\n\t\ttext = fmt.Sprintf(\n\t\t\t\"%s\\n%s\",\n\t\t\tn.Comment.StringWithSpace(n.Key.GetToken().Position.Column-1),\n\t\t\tn.toString(),\n\t\t)\n\t} else {\n\t\ttext = n.toString()\n\t}\n\tif n.FootComment != nil {\n\t\ttext += fmt.Sprintf(\"\\n%s\", n.FootComment.StringWithSpace(n.Key.GetToken().Position.Column-1))\n\t}\n\treturn text\n}\n\nfunc (n *MappingValueNode) toString() string {\n\tspace := strings.Repeat(\" \", n.Key.GetToken().Position.Column-1)\n\tkeyIndentLevel := n.Key.GetToken().Position.IndentLevel\n\tvalueIndentLevel := n.Value.GetToken().Position.IndentLevel\n\tkeyComment := n.Key.GetComment()\n\tif _, ok := n.Value.(ScalarNode); ok {\n\t\treturn fmt.Sprintf(\"%s%s: %s\", space, n.Key.String(), n.Value.String())\n\t} else if keyIndentLevel < valueIndentLevel {\n\t\tif keyComment != nil {\n\t\t\treturn fmt.Sprintf(\n\t\t\t\t\"%s%s: %s\\n%s\",\n\t\t\t\tspace,\n\t\t\t\tn.Key.stringWithoutComment(),\n\t\t\t\tkeyComment.String(),\n\t\t\t\tn.Value.String(),\n\t\t\t)\n\t\t}\n\t\treturn fmt.Sprintf(\"%s%s:\\n%s\", space, n.Key.String(), n.Value.String())\n\t} else if m, ok := n.Value.(*MappingNode); ok && (m.IsFlowStyle || len(m.Values) == 0) {\n\t\treturn fmt.Sprintf(\"%s%s: %s\", space, n.Key.String(), n.Value.String())\n\t} else if s, ok := n.Value.(*SequenceNode); ok && (s.IsFlowStyle || len(s.Values) == 0) {\n\t\treturn fmt.Sprintf(\"%s%s: %s\", space, n.Key.String(), n.Value.String())\n\t} else if _, ok := n.Value.(*AnchorNode); ok {\n\t\treturn fmt.Sprintf(\"%s%s: %s\", space, n.Key.String(), n.Value.String())\n\t} else if _, ok := n.Value.(*AliasNode); ok {\n\t\treturn fmt.Sprintf(\"%s%s: %s\", space, n.Key.String(), n.Value.String())\n\t}\n\tif keyComment != nil {\n\t\treturn fmt.Sprintf(\n\t\t\t\"%s%s: %s\\n%s\",\n\t\t\tspace,\n\t\t\tn.Key.stringWithoutComment(),\n\t\t\tkeyComment.String(),\n\t\t\tn.Value.String(),\n\t\t)\n\t}\n\tif m, ok := n.Value.(*MappingNode); ok && m.Comment != nil {\n\t\treturn fmt.Sprintf(\n\t\t\t\"%s%s: %s\",\n\t\t\tspace,\n\t\t\tn.Key.String(),\n\t\t\tstrings.TrimLeft(n.Value.String(), \" \"),\n\t\t)\n\t}\n\treturn fmt.Sprintf(\"%s%s:\\n%s\", space, n.Key.String(), n.Value.String())\n}\n\n// MapRange implements MapNode protocol\nfunc (n *MappingValueNode) MapRange() *MapNodeIter {\n\treturn &MapNodeIter{\n\t\tidx:    startRangeIndex,\n\t\tvalues: []*MappingValueNode{n},\n\t}\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *MappingValueNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// ArrayNode interface of SequenceNode\ntype ArrayNode interface {\n\tArrayRange() *ArrayNodeIter\n}\n\n// ArrayNodeIter is an iterator for ranging over a ArrayNode\ntype ArrayNodeIter struct {\n\tvalues []Node\n\tidx    int\n}\n\n// Next advances the array iterator and reports whether there is another entry.\n// It returns false when the iterator is exhausted.\nfunc (m *ArrayNodeIter) Next() bool {\n\tm.idx++\n\tnext := m.idx < len(m.values)\n\treturn next\n}\n\n// Value returns the value of the iterator's current array entry.\nfunc (m *ArrayNodeIter) Value() Node {\n\treturn m.values[m.idx]\n}\n\n// Len returns length of array\nfunc (m *ArrayNodeIter) Len() int {\n\treturn len(m.values)\n}\n\n// SequenceNode type of sequence node\ntype SequenceNode struct {\n\t*BaseNode\n\tStart             *token.Token\n\tEnd               *token.Token\n\tIsFlowStyle       bool\n\tValues            []Node\n\tValueHeadComments []*CommentGroupNode\n\tFootComment       *CommentGroupNode\n}\n\n// Replace replace value node.\nfunc (n *SequenceNode) Replace(idx int, value Node) error {\n\tif len(n.Values) <= idx {\n\t\treturn xerrors.Errorf(\n\t\t\t\"invalid index for sequence: sequence length is %d, but specified %d index\",\n\t\t\tlen(n.Values), idx,\n\t\t)\n\t}\n\tcolumn := n.Values[idx].GetToken().Position.Column - value.GetToken().Position.Column\n\tvalue.AddColumn(column)\n\tn.Values[idx] = value\n\treturn nil\n}\n\n// Merge merge sequence value.\nfunc (n *SequenceNode) Merge(target *SequenceNode) {\n\tcolumn := n.Start.Position.Column - target.Start.Position.Column\n\ttarget.AddColumn(column)\n\tfor _, value := range target.Values {\n\t\tn.Values = append(n.Values, value)\n\t}\n}\n\n// SetIsFlowStyle set value to IsFlowStyle field recursively.\nfunc (n *SequenceNode) SetIsFlowStyle(isFlow bool) {\n\tn.IsFlowStyle = isFlow\n\tfor _, value := range n.Values {\n\t\tswitch value := value.(type) {\n\t\tcase *MappingNode:\n\t\t\tvalue.SetIsFlowStyle(isFlow)\n\t\tcase *MappingValueNode:\n\t\t\tvalue.SetIsFlowStyle(isFlow)\n\t\tcase *SequenceNode:\n\t\t\tvalue.SetIsFlowStyle(isFlow)\n\t\t}\n\t}\n}\n\n// Read implements (io.Reader).Read\nfunc (n *SequenceNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns SequenceType\nfunc (n *SequenceNode) Type() NodeType { return SequenceType }\n\n// GetToken returns token instance\nfunc (n *SequenceNode) GetToken() *token.Token {\n\treturn n.Start\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *SequenceNode) AddColumn(col int) {\n\tn.Start.AddColumn(col)\n\tn.End.AddColumn(col)\n\tfor _, value := range n.Values {\n\t\tvalue.AddColumn(col)\n\t}\n}\n\nfunc (n *SequenceNode) flowStyleString() string {\n\tvalues := []string{}\n\tfor _, value := range n.Values {\n\t\tvalues = append(values, value.String())\n\t}\n\treturn fmt.Sprintf(\"[%s]\", strings.Join(values, \", \"))\n}\n\nfunc (n *SequenceNode) blockStyleString() string {\n\tspace := strings.Repeat(\" \", n.Start.Position.Column-1)\n\tvalues := []string{}\n\tif n.Comment != nil {\n\t\tvalues = append(values, n.Comment.StringWithSpace(n.Start.Position.Column-1))\n\t}\n\n\tfor idx, value := range n.Values {\n\t\tvalueStr := value.String()\n\t\tsplittedValues := strings.Split(valueStr, \"\\n\")\n\t\ttrimmedFirstValue := strings.TrimLeft(splittedValues[0], \" \")\n\t\tdiffLength := len(splittedValues[0]) - len(trimmedFirstValue)\n\t\tif len(splittedValues) > 1 && value.Type() == StringType || value.Type() == LiteralType {\n\t\t\t// If multi-line string, the space characters for indent have already been added, so delete them.\n\t\t\tprefix := space + \"  \"\n\t\t\tfor i := 1; i < len(splittedValues); i++ {\n\t\t\t\tsplittedValues[i] = strings.TrimPrefix(splittedValues[i], prefix)\n\t\t\t}\n\t\t}\n\t\tnewValues := []string{trimmedFirstValue}\n\t\tfor i := 1; i < len(splittedValues); i++ {\n\t\t\tif len(splittedValues[i]) <= diffLength {\n\t\t\t\t// this line is \\n or white space only\n\t\t\t\tnewValues = append(newValues, \"\")\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttrimmed := splittedValues[i][diffLength:]\n\t\t\tnewValues = append(newValues, fmt.Sprintf(\"%s  %s\", space, trimmed))\n\t\t}\n\t\tnewValue := strings.Join(newValues, \"\\n\")\n\t\tif len(n.ValueHeadComments) == len(n.Values) && n.ValueHeadComments[idx] != nil {\n\t\t\tvalues = append(values, n.ValueHeadComments[idx].StringWithSpace(n.Start.Position.Column-1))\n\t\t}\n\t\tvalues = append(values, fmt.Sprintf(\"%s- %s\", space, newValue))\n\t}\n\tif n.FootComment != nil {\n\t\tvalues = append(values, n.FootComment.StringWithSpace(n.Start.Position.Column-1))\n\t}\n\treturn strings.Join(values, \"\\n\")\n}\n\n// String sequence to text\nfunc (n *SequenceNode) String() string {\n\tif n.IsFlowStyle || len(n.Values) == 0 {\n\t\treturn n.flowStyleString()\n\t}\n\treturn n.blockStyleString()\n}\n\n// ArrayRange implements ArrayNode protocol\nfunc (n *SequenceNode) ArrayRange() *ArrayNodeIter {\n\treturn &ArrayNodeIter{\n\t\tidx:    startRangeIndex,\n\t\tvalues: n.Values,\n\t}\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *SequenceNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// AnchorNode type of anchor node\ntype AnchorNode struct {\n\t*BaseNode\n\tStart *token.Token\n\tName  Node\n\tValue Node\n}\n\nfunc (n *AnchorNode) SetName(name string) error {\n\tif n.Name == nil {\n\t\treturn ErrInvalidAnchorName\n\t}\n\ts, ok := n.Name.(*StringNode)\n\tif !ok {\n\t\treturn ErrInvalidAnchorName\n\t}\n\ts.Value = name\n\treturn nil\n}\n\n// Read implements (io.Reader).Read\nfunc (n *AnchorNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns AnchorType\nfunc (n *AnchorNode) Type() NodeType { return AnchorType }\n\n// GetToken returns token instance\nfunc (n *AnchorNode) GetToken() *token.Token {\n\treturn n.Start\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *AnchorNode) AddColumn(col int) {\n\tn.Start.AddColumn(col)\n\tif n.Name != nil {\n\t\tn.Name.AddColumn(col)\n\t}\n\tif n.Value != nil {\n\t\tn.Value.AddColumn(col)\n\t}\n}\n\n// String anchor to text\nfunc (n *AnchorNode) String() string {\n\tvalue := n.Value.String()\n\tif len(strings.Split(value, \"\\n\")) > 1 {\n\t\treturn fmt.Sprintf(\"&%s\\n%s\", n.Name.String(), value)\n\t} else if s, ok := n.Value.(*SequenceNode); ok && !s.IsFlowStyle {\n\t\treturn fmt.Sprintf(\"&%s\\n%s\", n.Name.String(), value)\n\t} else if m, ok := n.Value.(*MappingNode); ok && !m.IsFlowStyle {\n\t\treturn fmt.Sprintf(\"&%s\\n%s\", n.Name.String(), value)\n\t}\n\treturn fmt.Sprintf(\"&%s %s\", n.Name.String(), value)\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *AnchorNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// AliasNode type of alias node\ntype AliasNode struct {\n\t*BaseNode\n\tStart *token.Token\n\tValue Node\n}\n\nfunc (n *AliasNode) SetName(name string) error {\n\tif n.Value == nil {\n\t\treturn ErrInvalidAliasName\n\t}\n\ts, ok := n.Value.(*StringNode)\n\tif !ok {\n\t\treturn ErrInvalidAliasName\n\t}\n\ts.Value = name\n\treturn nil\n}\n\n// Read implements (io.Reader).Read\nfunc (n *AliasNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns AliasType\nfunc (n *AliasNode) Type() NodeType { return AliasType }\n\n// GetToken returns token instance\nfunc (n *AliasNode) GetToken() *token.Token {\n\treturn n.Start\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *AliasNode) AddColumn(col int) {\n\tn.Start.AddColumn(col)\n\tif n.Value != nil {\n\t\tn.Value.AddColumn(col)\n\t}\n}\n\n// String alias to text\nfunc (n *AliasNode) String() string {\n\treturn fmt.Sprintf(\"*%s\", n.Value.String())\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *AliasNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// DirectiveNode type of directive node\ntype DirectiveNode struct {\n\t*BaseNode\n\tStart *token.Token\n\tValue Node\n}\n\n// Read implements (io.Reader).Read\nfunc (n *DirectiveNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns DirectiveType\nfunc (n *DirectiveNode) Type() NodeType { return DirectiveType }\n\n// GetToken returns token instance\nfunc (n *DirectiveNode) GetToken() *token.Token {\n\treturn n.Start\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *DirectiveNode) AddColumn(col int) {\n\tif n.Value != nil {\n\t\tn.Value.AddColumn(col)\n\t}\n}\n\n// String directive to text\nfunc (n *DirectiveNode) String() string {\n\treturn fmt.Sprintf(\"%s%s\", n.Start.Value, n.Value.String())\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *DirectiveNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// TagNode type of tag node\ntype TagNode struct {\n\t*BaseNode\n\tStart *token.Token\n\tValue Node\n}\n\n// Read implements (io.Reader).Read\nfunc (n *TagNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns TagType\nfunc (n *TagNode) Type() NodeType { return TagType }\n\n// GetToken returns token instance\nfunc (n *TagNode) GetToken() *token.Token {\n\treturn n.Start\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *TagNode) AddColumn(col int) {\n\tn.Start.AddColumn(col)\n\tif n.Value != nil {\n\t\tn.Value.AddColumn(col)\n\t}\n}\n\n// String tag to text\nfunc (n *TagNode) String() string {\n\treturn fmt.Sprintf(\"%s %s\", n.Start.Value, n.Value.String())\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *TagNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// CommentNode type of comment node\ntype CommentNode struct {\n\t*BaseNode\n\tToken *token.Token\n}\n\n// Read implements (io.Reader).Read\nfunc (n *CommentNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns TagType\nfunc (n *CommentNode) Type() NodeType { return CommentType }\n\n// GetToken returns token instance\nfunc (n *CommentNode) GetToken() *token.Token { return n.Token }\n\n// AddColumn add column number to child nodes recursively\nfunc (n *CommentNode) AddColumn(col int) {\n\tif n.Token == nil {\n\t\treturn\n\t}\n\tn.Token.AddColumn(col)\n}\n\n// String comment to text\nfunc (n *CommentNode) String() string {\n\treturn fmt.Sprintf(\"#%s\", n.Token.Value)\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *CommentNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// CommentGroupNode type of comment node\ntype CommentGroupNode struct {\n\t*BaseNode\n\tComments []*CommentNode\n}\n\n// Read implements (io.Reader).Read\nfunc (n *CommentGroupNode) Read(p []byte) (int, error) {\n\treturn readNode(p, n)\n}\n\n// Type returns TagType\nfunc (n *CommentGroupNode) Type() NodeType { return CommentType }\n\n// GetToken returns token instance\nfunc (n *CommentGroupNode) GetToken() *token.Token {\n\tif len(n.Comments) > 0 {\n\t\treturn n.Comments[0].Token\n\t}\n\treturn nil\n}\n\n// AddColumn add column number to child nodes recursively\nfunc (n *CommentGroupNode) AddColumn(col int) {\n\tfor _, comment := range n.Comments {\n\t\tcomment.AddColumn(col)\n\t}\n}\n\n// String comment to text\nfunc (n *CommentGroupNode) String() string {\n\tvalues := []string{}\n\tfor _, comment := range n.Comments {\n\t\tvalues = append(values, comment.String())\n\t}\n\treturn strings.Join(values, \"\\n\")\n}\n\nfunc (n *CommentGroupNode) StringWithSpace(col int) string {\n\tvalues := []string{}\n\tspace := strings.Repeat(\" \", col)\n\tfor _, comment := range n.Comments {\n\t\tvalues = append(values, space+comment.String())\n\t}\n\treturn strings.Join(values, \"\\n\")\n\n}\n\n// MarshalYAML encodes to a YAML text\nfunc (n *CommentGroupNode) MarshalYAML() ([]byte, error) {\n\treturn []byte(n.String()), nil\n}\n\n// Visitor has Visit method that is invokded for each node encountered by Walk.\n// If the result visitor w is not nil, Walk visits each of the children of node with the visitor w,\n// followed by a call of w.Visit(nil).\ntype Visitor interface {\n\tVisit(Node) Visitor\n}\n\n// Walk traverses an AST in depth-first order: It starts by calling v.Visit(node); node must not be nil.\n// If the visitor w returned by v.Visit(node) is not nil,\n// Walk is invoked recursively with visitor w for each of the non-nil children of node,\n// followed by a call of w.Visit(nil).\nfunc Walk(v Visitor, node Node) {\n\tif v = v.Visit(node); v == nil {\n\t\treturn\n\t}\n\n\tswitch n := node.(type) {\n\tcase *CommentNode:\n\tcase *NullNode:\n\t\twalkComment(v, n.BaseNode)\n\tcase *IntegerNode:\n\t\twalkComment(v, n.BaseNode)\n\tcase *FloatNode:\n\t\twalkComment(v, n.BaseNode)\n\tcase *StringNode:\n\t\twalkComment(v, n.BaseNode)\n\tcase *MergeKeyNode:\n\t\twalkComment(v, n.BaseNode)\n\tcase *BoolNode:\n\t\twalkComment(v, n.BaseNode)\n\tcase *InfinityNode:\n\t\twalkComment(v, n.BaseNode)\n\tcase *NanNode:\n\t\twalkComment(v, n.BaseNode)\n\tcase *LiteralNode:\n\t\twalkComment(v, n.BaseNode)\n\t\tWalk(v, n.Value)\n\tcase *DirectiveNode:\n\t\twalkComment(v, n.BaseNode)\n\t\tWalk(v, n.Value)\n\tcase *TagNode:\n\t\twalkComment(v, n.BaseNode)\n\t\tWalk(v, n.Value)\n\tcase *DocumentNode:\n\t\twalkComment(v, n.BaseNode)\n\t\tWalk(v, n.Body)\n\tcase *MappingNode:\n\t\twalkComment(v, n.BaseNode)\n\t\tfor _, value := range n.Values {\n\t\t\tWalk(v, value)\n\t\t}\n\tcase *MappingKeyNode:\n\t\twalkComment(v, n.BaseNode)\n\t\tWalk(v, n.Value)\n\tcase *MappingValueNode:\n\t\twalkComment(v, n.BaseNode)\n\t\tWalk(v, n.Key)\n\t\tWalk(v, n.Value)\n\tcase *SequenceNode:\n\t\twalkComment(v, n.BaseNode)\n\t\tfor _, value := range n.Values {\n\t\t\tWalk(v, value)\n\t\t}\n\tcase *AnchorNode:\n\t\twalkComment(v, n.BaseNode)\n\t\tWalk(v, n.Name)\n\t\tWalk(v, n.Value)\n\tcase *AliasNode:\n\t\twalkComment(v, n.BaseNode)\n\t\tWalk(v, n.Value)\n\t}\n}\n\nfunc walkComment(v Visitor, base *BaseNode) {\n\tif base == nil {\n\t\treturn\n\t}\n\tif base.Comment == nil {\n\t\treturn\n\t}\n\tWalk(v, base.Comment)\n}\n\ntype filterWalker struct {\n\ttyp     NodeType\n\tresults []Node\n}\n\nfunc (v *filterWalker) Visit(n Node) Visitor {\n\tif v.typ == n.Type() {\n\t\tv.results = append(v.results, n)\n\t}\n\treturn v\n}\n\ntype parentFinder struct {\n\ttarget Node\n}\n\nfunc (f *parentFinder) walk(parent, node Node) Node {\n\tif f.target == node {\n\t\treturn parent\n\t}\n\tswitch n := node.(type) {\n\tcase *CommentNode:\n\t\treturn nil\n\tcase *NullNode:\n\t\treturn nil\n\tcase *IntegerNode:\n\t\treturn nil\n\tcase *FloatNode:\n\t\treturn nil\n\tcase *StringNode:\n\t\treturn nil\n\tcase *MergeKeyNode:\n\t\treturn nil\n\tcase *BoolNode:\n\t\treturn nil\n\tcase *InfinityNode:\n\t\treturn nil\n\tcase *NanNode:\n\t\treturn nil\n\tcase *LiteralNode:\n\t\treturn f.walk(node, n.Value)\n\tcase *DirectiveNode:\n\t\treturn f.walk(node, n.Value)\n\tcase *TagNode:\n\t\treturn f.walk(node, n.Value)\n\tcase *DocumentNode:\n\t\treturn f.walk(node, n.Body)\n\tcase *MappingNode:\n\t\tfor _, value := range n.Values {\n\t\t\tif found := f.walk(node, value); found != nil {\n\t\t\t\treturn found\n\t\t\t}\n\t\t}\n\tcase *MappingKeyNode:\n\t\treturn f.walk(node, n.Value)\n\tcase *MappingValueNode:\n\t\tif found := f.walk(node, n.Key); found != nil {\n\t\t\treturn found\n\t\t}\n\t\treturn f.walk(node, n.Value)\n\tcase *SequenceNode:\n\t\tfor _, value := range n.Values {\n\t\t\tif found := f.walk(node, value); found != nil {\n\t\t\t\treturn found\n\t\t\t}\n\t\t}\n\tcase *AnchorNode:\n\t\tif found := f.walk(node, n.Name); found != nil {\n\t\t\treturn found\n\t\t}\n\t\treturn f.walk(node, n.Value)\n\tcase *AliasNode:\n\t\treturn f.walk(node, n.Value)\n\t}\n\treturn nil\n}\n\n// Parent get parent node from child node.\nfunc Parent(root, child Node) Node {\n\tfinder := &parentFinder{target: child}\n\treturn finder.walk(root, root)\n}\n\n// Filter returns a list of nodes that match the given type.\nfunc Filter(typ NodeType, node Node) []Node {\n\twalker := &filterWalker{typ: typ}\n\tWalk(walker, node)\n\treturn walker.results\n}\n\n// FilterFile returns a list of nodes that match the given type.\nfunc FilterFile(typ NodeType, file *File) []Node {\n\tresults := []Node{}\n\tfor _, doc := range file.Docs {\n\t\twalker := &filterWalker{typ: typ}\n\t\tWalk(walker, doc)\n\t\tresults = append(results, walker.results...)\n\t}\n\treturn results\n}\n\ntype ErrInvalidMergeType struct {\n\tdst Node\n\tsrc Node\n}\n\nfunc (e *ErrInvalidMergeType) Error() string {\n\treturn fmt.Sprintf(\"cannot merge %s into %s\", e.src.Type(), e.dst.Type())\n}\n\n// Merge merge document, map, sequence node.\nfunc Merge(dst Node, src Node) error {\n\tif doc, ok := src.(*DocumentNode); ok {\n\t\tsrc = doc.Body\n\t}\n\terr := &ErrInvalidMergeType{dst: dst, src: src}\n\tswitch dst.Type() {\n\tcase DocumentType:\n\t\tnode := dst.(*DocumentNode)\n\t\treturn Merge(node.Body, src)\n\tcase MappingType:\n\t\tnode := dst.(*MappingNode)\n\t\ttarget, ok := src.(*MappingNode)\n\t\tif !ok {\n\t\t\treturn err\n\t\t}\n\t\tnode.Merge(target)\n\t\treturn nil\n\tcase SequenceType:\n\t\tnode := dst.(*SequenceNode)\n\t\ttarget, ok := src.(*SequenceNode)\n\t\tif !ok {\n\t\t\treturn err\n\t\t}\n\t\tnode.Merge(target)\n\t\treturn nil\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/decode.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"math\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/goccy/go-yaml/ast\"\n\t\"github.com/goccy/go-yaml/internal/errors\"\n\t\"github.com/goccy/go-yaml/parser\"\n\t\"github.com/goccy/go-yaml/token\"\n\t\"golang.org/x/xerrors\"\n)\n\n// Decoder reads and decodes YAML values from an input stream.\ntype Decoder struct {\n\treader               io.Reader\n\treferenceReaders     []io.Reader\n\tanchorNodeMap        map[string]ast.Node\n\tanchorValueMap       map[string]reflect.Value\n\tcustomUnmarshalerMap map[reflect.Type]func(interface{}, []byte) error\n\ttoCommentMap         CommentMap\n\topts                 []DecodeOption\n\treferenceFiles       []string\n\treferenceDirs        []string\n\tisRecursiveDir       bool\n\tisResolvedReference  bool\n\tvalidator            StructValidator\n\tdisallowUnknownField bool\n\tdisallowDuplicateKey bool\n\tuseOrderedMap        bool\n\tuseJSONUnmarshaler   bool\n\tparsedFile           *ast.File\n\tstreamIndex          int\n}\n\n// NewDecoder returns a new decoder that reads from r.\nfunc NewDecoder(r io.Reader, opts ...DecodeOption) *Decoder {\n\treturn &Decoder{\n\t\treader:               r,\n\t\tanchorNodeMap:        map[string]ast.Node{},\n\t\tanchorValueMap:       map[string]reflect.Value{},\n\t\tcustomUnmarshalerMap: map[reflect.Type]func(interface{}, []byte) error{},\n\t\topts:                 opts,\n\t\treferenceReaders:     []io.Reader{},\n\t\treferenceFiles:       []string{},\n\t\treferenceDirs:        []string{},\n\t\tisRecursiveDir:       false,\n\t\tisResolvedReference:  false,\n\t\tdisallowUnknownField: false,\n\t\tdisallowDuplicateKey: false,\n\t\tuseOrderedMap:        false,\n\t}\n}\n\nfunc (d *Decoder) castToFloat(v interface{}) interface{} {\n\tswitch vv := v.(type) {\n\tcase int:\n\t\treturn float64(vv)\n\tcase int8:\n\t\treturn float64(vv)\n\tcase int16:\n\t\treturn float64(vv)\n\tcase int32:\n\t\treturn float64(vv)\n\tcase int64:\n\t\treturn float64(vv)\n\tcase uint:\n\t\treturn float64(vv)\n\tcase uint8:\n\t\treturn float64(vv)\n\tcase uint16:\n\t\treturn float64(vv)\n\tcase uint32:\n\t\treturn float64(vv)\n\tcase uint64:\n\t\treturn float64(vv)\n\tcase float32:\n\t\treturn float64(vv)\n\tcase float64:\n\t\treturn vv\n\tcase string:\n\t\t// if error occurred, return zero value\n\t\tf, _ := strconv.ParseFloat(vv, 64)\n\t\treturn f\n\t}\n\treturn 0\n}\n\nfunc (d *Decoder) mergeValueNode(value ast.Node) ast.Node {\n\tif value.Type() == ast.AliasType {\n\t\taliasNode := value.(*ast.AliasNode)\n\t\taliasName := aliasNode.Value.GetToken().Value\n\t\treturn d.anchorNodeMap[aliasName]\n\t}\n\treturn value\n}\n\nfunc (d *Decoder) mapKeyNodeToString(node ast.MapKeyNode) string {\n\tkey := d.nodeToValue(node)\n\tif key == nil {\n\t\treturn \"null\"\n\t}\n\tif k, ok := key.(string); ok {\n\t\treturn k\n\t}\n\treturn fmt.Sprint(key)\n}\n\nfunc (d *Decoder) setToMapValue(node ast.Node, m map[string]interface{}) {\n\td.setPathToCommentMap(node)\n\tswitch n := node.(type) {\n\tcase *ast.MappingValueNode:\n\t\tif n.Key.Type() == ast.MergeKeyType {\n\t\t\td.setToMapValue(d.mergeValueNode(n.Value), m)\n\t\t} else {\n\t\t\tkey := d.mapKeyNodeToString(n.Key)\n\t\t\tm[key] = d.nodeToValue(n.Value)\n\t\t}\n\tcase *ast.MappingNode:\n\t\tfor _, value := range n.Values {\n\t\t\td.setToMapValue(value, m)\n\t\t}\n\tcase *ast.AnchorNode:\n\t\tanchorName := n.Name.GetToken().Value\n\t\td.anchorNodeMap[anchorName] = n.Value\n\t}\n}\n\nfunc (d *Decoder) setToOrderedMapValue(node ast.Node, m *MapSlice) {\n\tswitch n := node.(type) {\n\tcase *ast.MappingValueNode:\n\t\tif n.Key.Type() == ast.MergeKeyType {\n\t\t\td.setToOrderedMapValue(d.mergeValueNode(n.Value), m)\n\t\t} else {\n\t\t\tkey := d.mapKeyNodeToString(n.Key)\n\t\t\t*m = append(*m, MapItem{Key: key, Value: d.nodeToValue(n.Value)})\n\t\t}\n\tcase *ast.MappingNode:\n\t\tfor _, value := range n.Values {\n\t\t\td.setToOrderedMapValue(value, m)\n\t\t}\n\t}\n}\n\nfunc (d *Decoder) setPathToCommentMap(node ast.Node) {\n\tif d.toCommentMap == nil {\n\t\treturn\n\t}\n\td.addHeadOrLineCommentToMap(node)\n\td.addFootCommentToMap(node)\n}\n\nfunc (d *Decoder) addHeadOrLineCommentToMap(node ast.Node) {\n\tsequence, ok := node.(*ast.SequenceNode)\n\tif ok {\n\t\td.addSequenceNodeCommentToMap(sequence)\n\t\treturn\n\t}\n\tcommentGroup := node.GetComment()\n\tif commentGroup == nil {\n\t\treturn\n\t}\n\ttexts := []string{}\n\ttargetLine := node.GetToken().Position.Line\n\tminCommentLine := math.MaxInt\n\tfor _, comment := range commentGroup.Comments {\n\t\tif minCommentLine > comment.Token.Position.Line {\n\t\t\tminCommentLine = comment.Token.Position.Line\n\t\t}\n\t\ttexts = append(texts, comment.Token.Value)\n\t}\n\tif len(texts) == 0 {\n\t\treturn\n\t}\n\tcommentPath := node.GetPath()\n\tif minCommentLine < targetLine {\n\t\td.addCommentToMap(commentPath, HeadComment(texts...))\n\t} else {\n\t\td.addCommentToMap(commentPath, LineComment(texts[0]))\n\t}\n}\n\nfunc (d *Decoder) addSequenceNodeCommentToMap(node *ast.SequenceNode) {\n\tif len(node.ValueHeadComments) != 0 {\n\t\tfor idx, headComment := range node.ValueHeadComments {\n\t\t\tif headComment == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttexts := make([]string, 0, len(headComment.Comments))\n\t\t\tfor _, comment := range headComment.Comments {\n\t\t\t\ttexts = append(texts, comment.Token.Value)\n\t\t\t}\n\t\t\tif len(texts) != 0 {\n\t\t\t\td.addCommentToMap(node.Values[idx].GetPath(), HeadComment(texts...))\n\t\t\t}\n\t\t}\n\t}\n\tfirstElemHeadComment := node.GetComment()\n\tif firstElemHeadComment != nil {\n\t\ttexts := make([]string, 0, len(firstElemHeadComment.Comments))\n\t\tfor _, comment := range firstElemHeadComment.Comments {\n\t\t\ttexts = append(texts, comment.Token.Value)\n\t\t}\n\t\tif len(texts) != 0 {\n\t\t\td.addCommentToMap(node.Values[0].GetPath(), HeadComment(texts...))\n\t\t}\n\t}\n}\n\nfunc (d *Decoder) addFootCommentToMap(node ast.Node) {\n\tvar (\n\t\tfootComment     *ast.CommentGroupNode\n\t\tfootCommentPath string = node.GetPath()\n\t)\n\tswitch n := node.(type) {\n\tcase *ast.SequenceNode:\n\t\tif len(n.Values) != 0 {\n\t\t\tfootCommentPath = n.Values[len(n.Values)-1].GetPath()\n\t\t}\n\t\tfootComment = n.FootComment\n\tcase *ast.MappingNode:\n\t\tfootComment = n.FootComment\n\tcase *ast.MappingValueNode:\n\t\tfootComment = n.FootComment\n\t}\n\tif footComment == nil {\n\t\treturn\n\t}\n\tvar texts []string\n\tfor _, comment := range footComment.Comments {\n\t\ttexts = append(texts, comment.Token.Value)\n\t}\n\tif len(texts) != 0 {\n\t\td.addCommentToMap(footCommentPath, FootComment(texts...))\n\t}\n}\n\nfunc (d *Decoder) addCommentToMap(path string, comment *Comment) {\n\tfor _, c := range d.toCommentMap[path] {\n\t\tif c.Position == comment.Position {\n\t\t\t// already added same comment\n\t\t\treturn\n\t\t}\n\t}\n\td.toCommentMap[path] = append(d.toCommentMap[path], comment)\n\tsort.Slice(d.toCommentMap[path], func(i, j int) bool {\n\t\treturn d.toCommentMap[path][i].Position < d.toCommentMap[path][j].Position\n\t})\n}\n\nfunc (d *Decoder) nodeToValue(node ast.Node) interface{} {\n\td.setPathToCommentMap(node)\n\tswitch n := node.(type) {\n\tcase *ast.NullNode:\n\t\treturn nil\n\tcase *ast.StringNode:\n\t\treturn n.GetValue()\n\tcase *ast.IntegerNode:\n\t\treturn n.GetValue()\n\tcase *ast.FloatNode:\n\t\treturn n.GetValue()\n\tcase *ast.BoolNode:\n\t\treturn n.GetValue()\n\tcase *ast.InfinityNode:\n\t\treturn n.GetValue()\n\tcase *ast.NanNode:\n\t\treturn n.GetValue()\n\tcase *ast.TagNode:\n\t\tswitch token.ReservedTagKeyword(n.Start.Value) {\n\t\tcase token.TimestampTag:\n\t\t\tt, _ := d.castToTime(n.Value)\n\t\t\treturn t\n\t\tcase token.IntegerTag:\n\t\t\ti, _ := strconv.Atoi(fmt.Sprint(d.nodeToValue(n.Value)))\n\t\t\treturn i\n\t\tcase token.FloatTag:\n\t\t\treturn d.castToFloat(d.nodeToValue(n.Value))\n\t\tcase token.NullTag:\n\t\t\treturn nil\n\t\tcase token.BinaryTag:\n\t\t\tb, _ := base64.StdEncoding.DecodeString(d.nodeToValue(n.Value).(string))\n\t\t\treturn b\n\t\tcase token.StringTag:\n\t\t\treturn d.nodeToValue(n.Value)\n\t\tcase token.MappingTag:\n\t\t\treturn d.nodeToValue(n.Value)\n\t\t}\n\tcase *ast.AnchorNode:\n\t\tanchorName := n.Name.GetToken().Value\n\t\tanchorValue := d.nodeToValue(n.Value)\n\t\td.anchorNodeMap[anchorName] = n.Value\n\t\treturn anchorValue\n\tcase *ast.AliasNode:\n\t\taliasName := n.Value.GetToken().Value\n\t\tnode := d.anchorNodeMap[aliasName]\n\t\treturn d.nodeToValue(node)\n\tcase *ast.LiteralNode:\n\t\treturn n.Value.GetValue()\n\tcase *ast.MappingKeyNode:\n\t\treturn d.nodeToValue(n.Value)\n\tcase *ast.MappingValueNode:\n\t\tif n.Key.Type() == ast.MergeKeyType {\n\t\t\tvalue := d.mergeValueNode(n.Value)\n\t\t\tif d.useOrderedMap {\n\t\t\t\tm := MapSlice{}\n\t\t\t\td.setToOrderedMapValue(value, &m)\n\t\t\t\treturn m\n\t\t\t}\n\t\t\tm := map[string]interface{}{}\n\t\t\td.setToMapValue(value, m)\n\t\t\treturn m\n\t\t}\n\t\tkey := d.mapKeyNodeToString(n.Key)\n\t\tif d.useOrderedMap {\n\t\t\treturn MapSlice{{Key: key, Value: d.nodeToValue(n.Value)}}\n\t\t}\n\t\treturn map[string]interface{}{\n\t\t\tkey: d.nodeToValue(n.Value),\n\t\t}\n\tcase *ast.MappingNode:\n\t\tif d.useOrderedMap {\n\t\t\tm := make(MapSlice, 0, len(n.Values))\n\t\t\tfor _, value := range n.Values {\n\t\t\t\td.setToOrderedMapValue(value, &m)\n\t\t\t}\n\t\t\treturn m\n\t\t}\n\t\tm := make(map[string]interface{}, len(n.Values))\n\t\tfor _, value := range n.Values {\n\t\t\td.setToMapValue(value, m)\n\t\t}\n\t\treturn m\n\tcase *ast.SequenceNode:\n\t\tv := make([]interface{}, 0, len(n.Values))\n\t\tfor _, value := range n.Values {\n\t\t\tv = append(v, d.nodeToValue(value))\n\t\t}\n\t\treturn v\n\t}\n\treturn nil\n}\n\nfunc (d *Decoder) resolveAlias(node ast.Node) (ast.Node, error) {\n\tswitch n := node.(type) {\n\tcase *ast.MappingNode:\n\t\tfor idx, v := range n.Values {\n\t\t\tvalue, err := d.resolveAlias(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tn.Values[idx] = value.(*ast.MappingValueNode)\n\t\t}\n\tcase *ast.TagNode:\n\t\tvalue, err := d.resolveAlias(n.Value)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tn.Value = value\n\tcase *ast.MappingKeyNode:\n\t\tvalue, err := d.resolveAlias(n.Value)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tn.Value = value\n\tcase *ast.MappingValueNode:\n\t\tif n.Key.Type() == ast.MergeKeyType && n.Value.Type() == ast.AliasType {\n\t\t\tvalue, err := d.resolveAlias(n.Value)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tkeyColumn := n.Key.GetToken().Position.Column\n\t\t\trequiredColumn := keyColumn + 2\n\t\t\tvalue.AddColumn(requiredColumn)\n\t\t\tn.Value = value\n\t\t} else {\n\t\t\tkey, err := d.resolveAlias(n.Key)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tn.Key = key.(ast.MapKeyNode)\n\t\t\tvalue, err := d.resolveAlias(n.Value)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tn.Value = value\n\t\t}\n\tcase *ast.SequenceNode:\n\t\tfor idx, v := range n.Values {\n\t\t\tvalue, err := d.resolveAlias(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tn.Values[idx] = value\n\t\t}\n\tcase *ast.AliasNode:\n\t\taliasName := n.Value.GetToken().Value\n\t\tnode := d.anchorNodeMap[aliasName]\n\t\tif node == nil {\n\t\t\treturn nil, xerrors.Errorf(\"cannot find anchor by alias name %s\", aliasName)\n\t\t}\n\t\treturn d.resolveAlias(node)\n\t}\n\treturn node, nil\n}\n\nfunc (d *Decoder) getMapNode(node ast.Node) (ast.MapNode, error) {\n\tif _, ok := node.(*ast.NullNode); ok {\n\t\treturn nil, nil\n\t}\n\tif anchor, ok := node.(*ast.AnchorNode); ok {\n\t\tmapNode, ok := anchor.Value.(ast.MapNode)\n\t\tif ok {\n\t\t\treturn mapNode, nil\n\t\t}\n\t\treturn nil, errUnexpectedNodeType(anchor.Value.Type(), ast.MappingType, node.GetToken())\n\t}\n\tif alias, ok := node.(*ast.AliasNode); ok {\n\t\taliasName := alias.Value.GetToken().Value\n\t\tnode := d.anchorNodeMap[aliasName]\n\t\tif node == nil {\n\t\t\treturn nil, xerrors.Errorf(\"cannot find anchor by alias name %s\", aliasName)\n\t\t}\n\t\tmapNode, ok := node.(ast.MapNode)\n\t\tif ok {\n\t\t\treturn mapNode, nil\n\t\t}\n\t\treturn nil, errUnexpectedNodeType(node.Type(), ast.MappingType, node.GetToken())\n\t}\n\tmapNode, ok := node.(ast.MapNode)\n\tif !ok {\n\t\treturn nil, errUnexpectedNodeType(node.Type(), ast.MappingType, node.GetToken())\n\t}\n\treturn mapNode, nil\n}\n\nfunc (d *Decoder) getArrayNode(node ast.Node) (ast.ArrayNode, error) {\n\tif _, ok := node.(*ast.NullNode); ok {\n\t\treturn nil, nil\n\t}\n\tif anchor, ok := node.(*ast.AnchorNode); ok {\n\t\tarrayNode, ok := anchor.Value.(ast.ArrayNode)\n\t\tif ok {\n\t\t\treturn arrayNode, nil\n\t\t}\n\n\t\treturn nil, errUnexpectedNodeType(anchor.Value.Type(), ast.SequenceType, node.GetToken())\n\t}\n\tif alias, ok := node.(*ast.AliasNode); ok {\n\t\taliasName := alias.Value.GetToken().Value\n\t\tnode := d.anchorNodeMap[aliasName]\n\t\tif node == nil {\n\t\t\treturn nil, xerrors.Errorf(\"cannot find anchor by alias name %s\", aliasName)\n\t\t}\n\t\tarrayNode, ok := node.(ast.ArrayNode)\n\t\tif ok {\n\t\t\treturn arrayNode, nil\n\t\t}\n\t\treturn nil, errUnexpectedNodeType(node.Type(), ast.SequenceType, node.GetToken())\n\t}\n\tarrayNode, ok := node.(ast.ArrayNode)\n\tif !ok {\n\t\treturn nil, errUnexpectedNodeType(node.Type(), ast.SequenceType, node.GetToken())\n\t}\n\treturn arrayNode, nil\n}\n\nfunc (d *Decoder) fileToNode(f *ast.File) ast.Node {\n\tfor _, doc := range f.Docs {\n\t\tif v := d.nodeToValue(doc.Body); v != nil {\n\t\t\treturn doc.Body\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (d *Decoder) convertValue(v reflect.Value, typ reflect.Type, src ast.Node) (reflect.Value, error) {\n\tif typ.Kind() != reflect.String {\n\t\tif !v.Type().ConvertibleTo(typ) {\n\t\t\treturn reflect.Zero(typ), errTypeMismatch(typ, v.Type(), src.GetToken())\n\t\t}\n\t\treturn v.Convert(typ), nil\n\t}\n\t// cast value to string\n\tswitch v.Type().Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn reflect.ValueOf(fmt.Sprint(v.Int())), nil\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn reflect.ValueOf(fmt.Sprint(v.Float())), nil\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn reflect.ValueOf(fmt.Sprint(v.Uint())), nil\n\tcase reflect.Bool:\n\t\treturn reflect.ValueOf(fmt.Sprint(v.Bool())), nil\n\t}\n\tif !v.Type().ConvertibleTo(typ) {\n\t\treturn reflect.Zero(typ), errTypeMismatch(typ, v.Type(), src.GetToken())\n\t}\n\treturn v.Convert(typ), nil\n}\n\ntype overflowError struct {\n\tdstType reflect.Type\n\tsrcNum  string\n}\n\nfunc (e *overflowError) Error() string {\n\treturn fmt.Sprintf(\"cannot unmarshal %s into Go value of type %s ( overflow )\", e.srcNum, e.dstType)\n}\n\nfunc errOverflow(dstType reflect.Type, num string) *overflowError {\n\treturn &overflowError{dstType: dstType, srcNum: num}\n}\n\nfunc errTypeMismatch(dstType, srcType reflect.Type, token *token.Token) *errors.TypeError {\n\treturn &errors.TypeError{DstType: dstType, SrcType: srcType, Token: token}\n}\n\ntype unknownFieldError struct {\n\terr error\n}\n\nfunc (e *unknownFieldError) Error() string {\n\treturn e.err.Error()\n}\n\nfunc errUnknownField(msg string, tk *token.Token) *unknownFieldError {\n\treturn &unknownFieldError{err: errors.ErrSyntax(msg, tk)}\n}\n\nfunc errUnexpectedNodeType(actual, expected ast.NodeType, tk *token.Token) error {\n\treturn errors.ErrSyntax(fmt.Sprintf(\"%s was used where %s is expected\", actual.YAMLName(), expected.YAMLName()), tk)\n}\n\ntype duplicateKeyError struct {\n\terr error\n}\n\nfunc (e *duplicateKeyError) Error() string {\n\treturn e.err.Error()\n}\n\nfunc errDuplicateKey(msg string, tk *token.Token) *duplicateKeyError {\n\treturn &duplicateKeyError{err: errors.ErrSyntax(msg, tk)}\n}\n\nfunc (d *Decoder) deleteStructKeys(structType reflect.Type, unknownFields map[string]ast.Node) error {\n\tif structType.Kind() == reflect.Ptr {\n\t\tstructType = structType.Elem()\n\t}\n\tstructFieldMap, err := structFieldMap(structType)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to create struct field map\")\n\t}\n\n\tfor j := 0; j < structType.NumField(); j++ {\n\t\tfield := structType.Field(j)\n\t\tif isIgnoredStructField(field) {\n\t\t\tcontinue\n\t\t}\n\n\t\tstructField, exists := structFieldMap[field.Name]\n\t\tif !exists {\n\t\t\tcontinue\n\t\t}\n\n\t\tif structField.IsInline {\n\t\t\td.deleteStructKeys(field.Type, unknownFields)\n\t\t} else {\n\t\t\tdelete(unknownFields, structField.RenderName)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (d *Decoder) lastNode(node ast.Node) ast.Node {\n\tswitch n := node.(type) {\n\tcase *ast.MappingNode:\n\t\tif len(n.Values) > 0 {\n\t\t\treturn d.lastNode(n.Values[len(n.Values)-1])\n\t\t}\n\tcase *ast.MappingValueNode:\n\t\treturn d.lastNode(n.Value)\n\tcase *ast.SequenceNode:\n\t\tif len(n.Values) > 0 {\n\t\t\treturn d.lastNode(n.Values[len(n.Values)-1])\n\t\t}\n\t}\n\treturn node\n}\n\nfunc (d *Decoder) unmarshalableDocument(node ast.Node) ([]byte, error) {\n\tvar err error\n\tnode, err = d.resolveAlias(node)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdoc := node.String()\n\tlast := d.lastNode(node)\n\tif last != nil && last.Type() == ast.LiteralType {\n\t\tdoc += \"\\n\"\n\t}\n\treturn []byte(doc), nil\n}\n\nfunc (d *Decoder) unmarshalableText(node ast.Node) ([]byte, bool, error) {\n\tvar err error\n\tnode, err = d.resolveAlias(node)\n\tif err != nil {\n\t\treturn nil, false, err\n\t}\n\tif node.Type() == ast.AnchorType {\n\t\tnode = node.(*ast.AnchorNode).Value\n\t}\n\tswitch n := node.(type) {\n\tcase *ast.StringNode:\n\t\treturn []byte(n.Value), true, nil\n\tcase *ast.LiteralNode:\n\t\treturn []byte(n.Value.GetToken().Value), true, nil\n\tdefault:\n\t\tscalar, ok := n.(ast.ScalarNode)\n\t\tif ok {\n\t\t\treturn []byte(fmt.Sprint(scalar.GetValue())), true, nil\n\t\t}\n\t}\n\treturn nil, false, nil\n}\n\ntype jsonUnmarshaler interface {\n\tUnmarshalJSON([]byte) error\n}\n\nfunc (d *Decoder) existsTypeInCustomUnmarshalerMap(t reflect.Type) bool {\n\tif _, exists := d.customUnmarshalerMap[t]; exists {\n\t\treturn true\n\t}\n\n\tglobalCustomUnmarshalerMu.Lock()\n\tdefer globalCustomUnmarshalerMu.Unlock()\n\tif _, exists := globalCustomUnmarshalerMap[t]; exists {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *Decoder) unmarshalerFromCustomUnmarshalerMap(t reflect.Type) (func(interface{}, []byte) error, bool) {\n\tif unmarshaler, exists := d.customUnmarshalerMap[t]; exists {\n\t\treturn unmarshaler, exists\n\t}\n\n\tglobalCustomUnmarshalerMu.Lock()\n\tdefer globalCustomUnmarshalerMu.Unlock()\n\tif unmarshaler, exists := globalCustomUnmarshalerMap[t]; exists {\n\t\treturn unmarshaler, exists\n\t}\n\treturn nil, false\n}\n\nfunc (d *Decoder) canDecodeByUnmarshaler(dst reflect.Value) bool {\n\tptrValue := dst.Addr()\n\tif d.existsTypeInCustomUnmarshalerMap(ptrValue.Type()) {\n\t\treturn true\n\t}\n\tiface := ptrValue.Interface()\n\tswitch iface.(type) {\n\tcase BytesUnmarshalerContext:\n\t\treturn true\n\tcase BytesUnmarshaler:\n\t\treturn true\n\tcase InterfaceUnmarshalerContext:\n\t\treturn true\n\tcase InterfaceUnmarshaler:\n\t\treturn true\n\tcase *time.Time:\n\t\treturn true\n\tcase *time.Duration:\n\t\treturn true\n\tcase encoding.TextUnmarshaler:\n\t\treturn true\n\tcase jsonUnmarshaler:\n\t\treturn d.useJSONUnmarshaler\n\t}\n\treturn false\n}\n\nfunc (d *Decoder) decodeByUnmarshaler(ctx context.Context, dst reflect.Value, src ast.Node) error {\n\tptrValue := dst.Addr()\n\tif unmarshaler, exists := d.unmarshalerFromCustomUnmarshalerMap(ptrValue.Type()); exists {\n\t\tb, err := d.unmarshalableDocument(src)\n\t\tif err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalYAML\")\n\t\t}\n\t\tif err := unmarshaler(ptrValue.Interface(), b); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalYAML\")\n\t\t}\n\t\treturn nil\n\t}\n\tiface := ptrValue.Interface()\n\n\tif unmarshaler, ok := iface.(BytesUnmarshalerContext); ok {\n\t\tb, err := d.unmarshalableDocument(src)\n\t\tif err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalYAML\")\n\t\t}\n\t\tif err := unmarshaler.UnmarshalYAML(ctx, b); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalYAML\")\n\t\t}\n\t\treturn nil\n\t}\n\n\tif unmarshaler, ok := iface.(BytesUnmarshaler); ok {\n\t\tb, err := d.unmarshalableDocument(src)\n\t\tif err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalYAML\")\n\t\t}\n\t\tif err := unmarshaler.UnmarshalYAML(b); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalYAML\")\n\t\t}\n\t\treturn nil\n\t}\n\n\tif unmarshaler, ok := iface.(InterfaceUnmarshalerContext); ok {\n\t\tif err := unmarshaler.UnmarshalYAML(ctx, func(v interface{}) error {\n\t\t\trv := reflect.ValueOf(v)\n\t\t\tif rv.Type().Kind() != reflect.Ptr {\n\t\t\t\treturn errors.ErrDecodeRequiredPointerType\n\t\t\t}\n\t\t\tif err := d.decodeValue(ctx, rv.Elem(), src); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to decode value\")\n\t\t\t}\n\t\t\treturn nil\n\t\t}); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalYAML\")\n\t\t}\n\t\treturn nil\n\t}\n\n\tif unmarshaler, ok := iface.(InterfaceUnmarshaler); ok {\n\t\tif err := unmarshaler.UnmarshalYAML(func(v interface{}) error {\n\t\t\trv := reflect.ValueOf(v)\n\t\t\tif rv.Type().Kind() != reflect.Ptr {\n\t\t\t\treturn errors.ErrDecodeRequiredPointerType\n\t\t\t}\n\t\t\tif err := d.decodeValue(ctx, rv.Elem(), src); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to decode value\")\n\t\t\t}\n\t\t\treturn nil\n\t\t}); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalYAML\")\n\t\t}\n\t\treturn nil\n\t}\n\n\tif _, ok := iface.(*time.Time); ok {\n\t\treturn d.decodeTime(ctx, dst, src)\n\t}\n\n\tif _, ok := iface.(*time.Duration); ok {\n\t\treturn d.decodeDuration(ctx, dst, src)\n\t}\n\n\tif unmarshaler, isText := iface.(encoding.TextUnmarshaler); isText {\n\t\tb, ok, err := d.unmarshalableText(src)\n\t\tif err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalText\")\n\t\t}\n\t\tif ok {\n\t\t\tif err := unmarshaler.UnmarshalText(b); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalText\")\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tif d.useJSONUnmarshaler {\n\t\tif unmarshaler, ok := iface.(jsonUnmarshaler); ok {\n\t\t\tb, err := d.unmarshalableDocument(src)\n\t\t\tif err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalJSON\")\n\t\t\t}\n\t\t\tjsonBytes, err := YAMLToJSON(b)\n\t\t\tif err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to convert yaml to json\")\n\t\t\t}\n\t\t\tjsonBytes = bytes.TrimRight(jsonBytes, \"\\n\")\n\t\t\tif err := unmarshaler.UnmarshalJSON(jsonBytes); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to UnmarshalJSON\")\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn xerrors.Errorf(\"does not implemented Unmarshaler\")\n}\n\nvar (\n\tastNodeType = reflect.TypeOf((*ast.Node)(nil)).Elem()\n)\n\nfunc (d *Decoder) decodeValue(ctx context.Context, dst reflect.Value, src ast.Node) error {\n\tif src.Type() == ast.AnchorType {\n\t\tanchorName := src.(*ast.AnchorNode).Name.GetToken().Value\n\t\tif _, exists := d.anchorValueMap[anchorName]; !exists {\n\t\t\td.anchorValueMap[anchorName] = dst\n\t\t}\n\t}\n\tif d.canDecodeByUnmarshaler(dst) {\n\t\tif err := d.decodeByUnmarshaler(ctx, dst, src); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to decode by unmarshaler\")\n\t\t}\n\t\treturn nil\n\t}\n\tvalueType := dst.Type()\n\tswitch valueType.Kind() {\n\tcase reflect.Ptr:\n\t\tif dst.IsNil() {\n\t\t\treturn nil\n\t\t}\n\t\tif src.Type() == ast.NullType {\n\t\t\t// set nil value to pointer\n\t\t\tdst.Set(reflect.Zero(valueType))\n\t\t\treturn nil\n\t\t}\n\t\tv := d.createDecodableValue(dst.Type())\n\t\tif err := d.decodeValue(ctx, v, src); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to decode ptr value\")\n\t\t}\n\t\tdst.Set(d.castToAssignableValue(v, dst.Type()))\n\tcase reflect.Interface:\n\t\tif dst.Type() == astNodeType {\n\t\t\tdst.Set(reflect.ValueOf(src))\n\t\t\treturn nil\n\t\t}\n\t\tv := reflect.ValueOf(d.nodeToValue(src))\n\t\tif v.IsValid() {\n\t\t\tdst.Set(v)\n\t\t}\n\tcase reflect.Map:\n\t\treturn d.decodeMap(ctx, dst, src)\n\tcase reflect.Array:\n\t\treturn d.decodeArray(ctx, dst, src)\n\tcase reflect.Slice:\n\t\tif mapSlice, ok := dst.Addr().Interface().(*MapSlice); ok {\n\t\t\treturn d.decodeMapSlice(ctx, mapSlice, src)\n\t\t}\n\t\treturn d.decodeSlice(ctx, dst, src)\n\tcase reflect.Struct:\n\t\tif mapItem, ok := dst.Addr().Interface().(*MapItem); ok {\n\t\t\treturn d.decodeMapItem(ctx, mapItem, src)\n\t\t}\n\t\treturn d.decodeStruct(ctx, dst, src)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tv := d.nodeToValue(src)\n\t\tswitch vv := v.(type) {\n\t\tcase int64:\n\t\t\tif !dst.OverflowInt(vv) {\n\t\t\t\tdst.SetInt(vv)\n\t\t\t\treturn nil\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif vv <= math.MaxInt64 && !dst.OverflowInt(int64(vv)) {\n\t\t\t\tdst.SetInt(int64(vv))\n\t\t\t\treturn nil\n\t\t\t}\n\t\tcase float64:\n\t\t\tif vv <= math.MaxInt64 && !dst.OverflowInt(int64(vv)) {\n\t\t\t\tdst.SetInt(int64(vv))\n\t\t\t\treturn nil\n\t\t\t}\n\t\tdefault:\n\t\t\treturn errTypeMismatch(valueType, reflect.TypeOf(v), src.GetToken())\n\t\t}\n\t\treturn errOverflow(valueType, fmt.Sprint(v))\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tv := d.nodeToValue(src)\n\t\tswitch vv := v.(type) {\n\t\tcase int64:\n\t\t\tif 0 <= vv && !dst.OverflowUint(uint64(vv)) {\n\t\t\t\tdst.SetUint(uint64(vv))\n\t\t\t\treturn nil\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !dst.OverflowUint(vv) {\n\t\t\t\tdst.SetUint(vv)\n\t\t\t\treturn nil\n\t\t\t}\n\t\tcase float64:\n\t\t\tif 0 <= vv && vv <= math.MaxUint64 && !dst.OverflowUint(uint64(vv)) {\n\t\t\t\tdst.SetUint(uint64(vv))\n\t\t\t\treturn nil\n\t\t\t}\n\t\tdefault:\n\t\t\treturn errTypeMismatch(valueType, reflect.TypeOf(v), src.GetToken())\n\t\t}\n\t\treturn errOverflow(valueType, fmt.Sprint(v))\n\t}\n\tv := reflect.ValueOf(d.nodeToValue(src))\n\tif v.IsValid() {\n\t\tconvertedValue, err := d.convertValue(v, dst.Type(), src)\n\t\tif err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to convert value\")\n\t\t}\n\t\tdst.Set(convertedValue)\n\t}\n\treturn nil\n}\n\nfunc (d *Decoder) createDecodableValue(typ reflect.Type) reflect.Value {\n\tfor {\n\t\tif typ.Kind() == reflect.Ptr {\n\t\t\ttyp = typ.Elem()\n\t\t\tcontinue\n\t\t}\n\t\tbreak\n\t}\n\treturn reflect.New(typ).Elem()\n}\n\nfunc (d *Decoder) castToAssignableValue(value reflect.Value, target reflect.Type) reflect.Value {\n\tif target.Kind() != reflect.Ptr {\n\t\treturn value\n\t}\n\tmaxTryCount := 5\n\ttryCount := 0\n\tfor {\n\t\tif tryCount > maxTryCount {\n\t\t\treturn value\n\t\t}\n\t\tif value.Type().AssignableTo(target) {\n\t\t\tbreak\n\t\t}\n\t\tvalue = value.Addr()\n\t\ttryCount++\n\t}\n\treturn value\n}\n\nfunc (d *Decoder) createDecodedNewValue(\n\tctx context.Context, typ reflect.Type, defaultVal reflect.Value, node ast.Node,\n) (reflect.Value, error) {\n\tif node.Type() == ast.AliasType {\n\t\taliasName := node.(*ast.AliasNode).Value.GetToken().Value\n\t\tnewValue := d.anchorValueMap[aliasName]\n\t\tif newValue.IsValid() {\n\t\t\treturn newValue, nil\n\t\t}\n\t}\n\tif node.Type() == ast.NullType {\n\t\treturn reflect.Zero(typ), nil\n\t}\n\tnewValue := d.createDecodableValue(typ)\n\tfor defaultVal.Kind() == reflect.Ptr {\n\t\tdefaultVal = defaultVal.Elem()\n\t}\n\tif defaultVal.IsValid() && defaultVal.Type().AssignableTo(newValue.Type()) {\n\t\tnewValue.Set(defaultVal)\n\t}\n\tif err := d.decodeValue(ctx, newValue, node); err != nil {\n\t\treturn newValue, errors.Wrapf(err, \"failed to decode value\")\n\t}\n\treturn newValue, nil\n}\n\nfunc (d *Decoder) keyToNodeMap(node ast.Node, ignoreMergeKey bool, getKeyOrValueNode func(*ast.MapNodeIter) ast.Node) (map[string]ast.Node, error) {\n\tmapNode, err := d.getMapNode(node)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to get map node\")\n\t}\n\tkeyMap := map[string]struct{}{}\n\tkeyToNodeMap := map[string]ast.Node{}\n\tif mapNode == nil {\n\t\treturn keyToNodeMap, nil\n\t}\n\tmapIter := mapNode.MapRange()\n\tfor mapIter.Next() {\n\t\tkeyNode := mapIter.Key()\n\t\tif keyNode.Type() == ast.MergeKeyType {\n\t\t\tif ignoreMergeKey {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmergeMap, err := d.keyToNodeMap(mapIter.Value(), ignoreMergeKey, getKeyOrValueNode)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to get keyToNodeMap by MergeKey node\")\n\t\t\t}\n\t\t\tfor k, v := range mergeMap {\n\t\t\t\tif err := d.validateDuplicateKey(keyMap, k, v); err != nil {\n\t\t\t\t\treturn nil, errors.Wrapf(err, \"invalid struct key\")\n\t\t\t\t}\n\t\t\t\tkeyToNodeMap[k] = v\n\t\t\t}\n\t\t} else {\n\t\t\tkey, ok := d.nodeToValue(keyNode).(string)\n\t\t\tif !ok {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to decode map key\")\n\t\t\t}\n\t\t\tif err := d.validateDuplicateKey(keyMap, key, keyNode); err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"invalid struct key\")\n\t\t\t}\n\t\t\tkeyToNodeMap[key] = getKeyOrValueNode(mapIter)\n\t\t}\n\t}\n\treturn keyToNodeMap, nil\n}\n\nfunc (d *Decoder) keyToKeyNodeMap(node ast.Node, ignoreMergeKey bool) (map[string]ast.Node, error) {\n\tm, err := d.keyToNodeMap(node, ignoreMergeKey, func(nodeMap *ast.MapNodeIter) ast.Node { return nodeMap.Key() })\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to get keyToNodeMap\")\n\t}\n\treturn m, nil\n}\n\nfunc (d *Decoder) keyToValueNodeMap(node ast.Node, ignoreMergeKey bool) (map[string]ast.Node, error) {\n\tm, err := d.keyToNodeMap(node, ignoreMergeKey, func(nodeMap *ast.MapNodeIter) ast.Node { return nodeMap.Value() })\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to get keyToNodeMap\")\n\t}\n\treturn m, nil\n}\n\nfunc (d *Decoder) setDefaultValueIfConflicted(v reflect.Value, fieldMap StructFieldMap) error {\n\ttyp := v.Type()\n\tif typ.Kind() != reflect.Struct {\n\t\treturn nil\n\t}\n\tembeddedStructFieldMap, err := structFieldMap(typ)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to get struct field map by embedded type\")\n\t}\n\tfor i := 0; i < typ.NumField(); i++ {\n\t\tfield := typ.Field(i)\n\t\tif isIgnoredStructField(field) {\n\t\t\tcontinue\n\t\t}\n\t\tstructField := embeddedStructFieldMap[field.Name]\n\t\tif !fieldMap.isIncludedRenderName(structField.RenderName) {\n\t\t\tcontinue\n\t\t}\n\t\t// if declared same key name, set default value\n\t\tfieldValue := v.Field(i)\n\t\tif fieldValue.CanSet() {\n\t\t\tfieldValue.Set(reflect.Zero(fieldValue.Type()))\n\t\t}\n\t}\n\treturn nil\n}\n\n// This is a subset of the formats allowed by the regular expression\n// defined at http://yaml.org/type/timestamp.html.\nvar allowedTimestampFormats = []string{\n\t\"2006-1-2T15:4:5.999999999Z07:00\", // RCF3339Nano with short date fields.\n\t\"2006-1-2t15:4:5.999999999Z07:00\", // RFC3339Nano with short date fields and lower-case \"t\".\n\t\"2006-1-2 15:4:5.999999999\",       // space separated with no time zone\n\t\"2006-1-2\",                        // date only\n}\n\nfunc (d *Decoder) castToTime(src ast.Node) (time.Time, error) {\n\tif src == nil {\n\t\treturn time.Time{}, nil\n\t}\n\tv := d.nodeToValue(src)\n\tif t, ok := v.(time.Time); ok {\n\t\treturn t, nil\n\t}\n\ts, ok := v.(string)\n\tif !ok {\n\t\treturn time.Time{}, errTypeMismatch(reflect.TypeOf(time.Time{}), reflect.TypeOf(v), src.GetToken())\n\t}\n\tfor _, format := range allowedTimestampFormats {\n\t\tt, err := time.Parse(format, s)\n\t\tif err != nil {\n\t\t\t// invalid format\n\t\t\tcontinue\n\t\t}\n\t\treturn t, nil\n\t}\n\treturn time.Time{}, nil\n}\n\nfunc (d *Decoder) decodeTime(ctx context.Context, dst reflect.Value, src ast.Node) error {\n\tt, err := d.castToTime(src)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to convert to time\")\n\t}\n\tdst.Set(reflect.ValueOf(t))\n\treturn nil\n}\n\nfunc (d *Decoder) castToDuration(src ast.Node) (time.Duration, error) {\n\tif src == nil {\n\t\treturn 0, nil\n\t}\n\tv := d.nodeToValue(src)\n\tif t, ok := v.(time.Duration); ok {\n\t\treturn t, nil\n\t}\n\ts, ok := v.(string)\n\tif !ok {\n\t\treturn 0, errTypeMismatch(reflect.TypeOf(time.Duration(0)), reflect.TypeOf(v), src.GetToken())\n\t}\n\tt, err := time.ParseDuration(s)\n\tif err != nil {\n\t\treturn 0, errors.Wrapf(err, \"failed to parse duration\")\n\t}\n\treturn t, nil\n}\n\nfunc (d *Decoder) decodeDuration(ctx context.Context, dst reflect.Value, src ast.Node) error {\n\tt, err := d.castToDuration(src)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to convert to duration\")\n\t}\n\tdst.Set(reflect.ValueOf(t))\n\treturn nil\n}\n\n// getMergeAliasName support single alias only\nfunc (d *Decoder) getMergeAliasName(src ast.Node) string {\n\tmapNode, err := d.getMapNode(src)\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\tif mapNode == nil {\n\t\treturn \"\"\n\t}\n\tmapIter := mapNode.MapRange()\n\tfor mapIter.Next() {\n\t\tkey := mapIter.Key()\n\t\tvalue := mapIter.Value()\n\t\tif key.Type() == ast.MergeKeyType && value.Type() == ast.AliasType {\n\t\t\treturn value.(*ast.AliasNode).Value.GetToken().Value\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc (d *Decoder) decodeStruct(ctx context.Context, dst reflect.Value, src ast.Node) error {\n\tif src == nil {\n\t\treturn nil\n\t}\n\tstructType := dst.Type()\n\tsrcValue := reflect.ValueOf(src)\n\tsrcType := srcValue.Type()\n\tif srcType.Kind() == reflect.Ptr {\n\t\tsrcType = srcType.Elem()\n\t\tsrcValue = srcValue.Elem()\n\t}\n\tif structType == srcType {\n\t\t// dst value implements ast.Node\n\t\tdst.Set(srcValue)\n\t\treturn nil\n\t}\n\tstructFieldMap, err := structFieldMap(structType)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to create struct field map\")\n\t}\n\tignoreMergeKey := structFieldMap.hasMergeProperty()\n\tkeyToNodeMap, err := d.keyToValueNodeMap(src, ignoreMergeKey)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to get keyToValueNodeMap\")\n\t}\n\tvar unknownFields map[string]ast.Node\n\tif d.disallowUnknownField {\n\t\tunknownFields, err = d.keyToKeyNodeMap(src, ignoreMergeKey)\n\t\tif err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to get keyToKeyNodeMap\")\n\t\t}\n\t}\n\n\taliasName := d.getMergeAliasName(src)\n\tvar foundErr error\n\n\tfor i := 0; i < structType.NumField(); i++ {\n\t\tfield := structType.Field(i)\n\t\tif isIgnoredStructField(field) {\n\t\t\tcontinue\n\t\t}\n\t\tstructField := structFieldMap[field.Name]\n\t\tif structField.IsInline {\n\t\t\tfieldValue := dst.FieldByName(field.Name)\n\t\t\tif structField.IsAutoAlias {\n\t\t\t\tif aliasName != \"\" {\n\t\t\t\t\tnewFieldValue := d.anchorValueMap[aliasName]\n\t\t\t\t\tif newFieldValue.IsValid() {\n\t\t\t\t\t\tfieldValue.Set(d.castToAssignableValue(newFieldValue, fieldValue.Type()))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !fieldValue.CanSet() {\n\t\t\t\treturn xerrors.Errorf(\"cannot set embedded type as unexported field %s.%s\", field.PkgPath, field.Name)\n\t\t\t}\n\t\t\tif fieldValue.Type().Kind() == reflect.Ptr && src.Type() == ast.NullType {\n\t\t\t\t// set nil value to pointer\n\t\t\t\tfieldValue.Set(reflect.Zero(fieldValue.Type()))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmapNode := ast.Mapping(nil, false)\n\t\t\tfor k, v := range keyToNodeMap {\n\t\t\t\tkey := &ast.StringNode{BaseNode: &ast.BaseNode{}, Value: k}\n\t\t\t\tmapNode.Values = append(mapNode.Values, ast.MappingValue(nil, key, v))\n\t\t\t}\n\t\t\tnewFieldValue, err := d.createDecodedNewValue(ctx, fieldValue.Type(), fieldValue, mapNode)\n\t\t\tif d.disallowUnknownField {\n\t\t\t\tif err := d.deleteStructKeys(fieldValue.Type(), unknownFields); err != nil {\n\t\t\t\t\treturn errors.Wrapf(err, \"cannot delete struct keys\")\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif err != nil {\n\t\t\t\tif foundErr != nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tvar te *errors.TypeError\n\t\t\t\tif xerrors.As(err, &te) {\n\t\t\t\t\tif te.StructFieldName != nil {\n\t\t\t\t\t\tfieldName := fmt.Sprintf(\"%s.%s\", structType.Name(), *te.StructFieldName)\n\t\t\t\t\t\tte.StructFieldName = &fieldName\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfieldName := fmt.Sprintf(\"%s.%s\", structType.Name(), field.Name)\n\t\t\t\t\t\tte.StructFieldName = &fieldName\n\t\t\t\t\t}\n\t\t\t\t\tfoundErr = te\n\t\t\t\t\tcontinue\n\t\t\t\t} else {\n\t\t\t\t\tfoundErr = err\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\td.setDefaultValueIfConflicted(newFieldValue, structFieldMap)\n\t\t\tfieldValue.Set(d.castToAssignableValue(newFieldValue, fieldValue.Type()))\n\t\t\tcontinue\n\t\t}\n\t\tv, exists := keyToNodeMap[structField.RenderName]\n\t\tif !exists {\n\t\t\tcontinue\n\t\t}\n\t\tdelete(unknownFields, structField.RenderName)\n\t\tfieldValue := dst.FieldByName(field.Name)\n\t\tif fieldValue.Type().Kind() == reflect.Ptr && src.Type() == ast.NullType {\n\t\t\t// set nil value to pointer\n\t\t\tfieldValue.Set(reflect.Zero(fieldValue.Type()))\n\t\t\tcontinue\n\t\t}\n\t\tnewFieldValue, err := d.createDecodedNewValue(ctx, fieldValue.Type(), fieldValue, v)\n\t\tif err != nil {\n\t\t\tif foundErr != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvar te *errors.TypeError\n\t\t\tif xerrors.As(err, &te) {\n\t\t\t\tfieldName := fmt.Sprintf(\"%s.%s\", structType.Name(), field.Name)\n\t\t\t\tte.StructFieldName = &fieldName\n\t\t\t\tfoundErr = te\n\t\t\t} else {\n\t\t\t\tfoundErr = err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tfieldValue.Set(d.castToAssignableValue(newFieldValue, fieldValue.Type()))\n\t}\n\tif foundErr != nil {\n\t\treturn errors.Wrapf(foundErr, \"failed to decode value\")\n\t}\n\n\t// Ignore unknown fields when parsing an inline struct (recognized by a nil token).\n\t// Unknown fields are expected (they could be fields from the parent struct).\n\tif len(unknownFields) != 0 && d.disallowUnknownField && src.GetToken() != nil {\n\t\tfor key, node := range unknownFields {\n\t\t\treturn errUnknownField(fmt.Sprintf(`unknown field \"%s\"`, key), node.GetToken())\n\t\t}\n\t}\n\n\tif d.validator != nil {\n\t\tif err := d.validator.Struct(dst.Interface()); err != nil {\n\t\t\tev := reflect.ValueOf(err)\n\t\t\tif ev.Type().Kind() == reflect.Slice {\n\t\t\t\tfor i := 0; i < ev.Len(); i++ {\n\t\t\t\t\tfieldErr, ok := ev.Index(i).Interface().(FieldError)\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tfieldName := fieldErr.StructField()\n\t\t\t\t\tstructField, exists := structFieldMap[fieldName]\n\t\t\t\t\tif !exists {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tnode, exists := keyToNodeMap[structField.RenderName]\n\t\t\t\t\tif exists {\n\t\t\t\t\t\t// TODO: to make FieldError message cutomizable\n\t\t\t\t\t\treturn errors.ErrSyntax(fmt.Sprintf(\"%s\", err), node.GetToken())\n\t\t\t\t\t} else if t := src.GetToken(); t != nil && t.Prev != nil && t.Prev.Prev != nil {\n\t\t\t\t\t\t// A missing required field will not be in the keyToNodeMap\n\t\t\t\t\t\t// the error needs to be associated with the parent of the source node\n\t\t\t\t\t\treturn errors.ErrSyntax(fmt.Sprintf(\"%s\", err), t.Prev.Prev)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (d *Decoder) decodeArray(ctx context.Context, dst reflect.Value, src ast.Node) error {\n\tarrayNode, err := d.getArrayNode(src)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to get array node\")\n\t}\n\tif arrayNode == nil {\n\t\treturn nil\n\t}\n\titer := arrayNode.ArrayRange()\n\tarrayValue := reflect.New(dst.Type()).Elem()\n\tarrayType := dst.Type()\n\telemType := arrayType.Elem()\n\tidx := 0\n\n\tvar foundErr error\n\tfor iter.Next() {\n\t\tv := iter.Value()\n\t\tif elemType.Kind() == reflect.Ptr && v.Type() == ast.NullType {\n\t\t\t// set nil value to pointer\n\t\t\tarrayValue.Index(idx).Set(reflect.Zero(elemType))\n\t\t} else {\n\t\t\tdstValue, err := d.createDecodedNewValue(ctx, elemType, reflect.Value{}, v)\n\t\t\tif err != nil {\n\t\t\t\tif foundErr == nil {\n\t\t\t\t\tfoundErr = err\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t} else {\n\t\t\t\tarrayValue.Index(idx).Set(d.castToAssignableValue(dstValue, elemType))\n\t\t\t}\n\t\t}\n\t\tidx++\n\t}\n\tdst.Set(arrayValue)\n\tif foundErr != nil {\n\t\treturn errors.Wrapf(foundErr, \"failed to decode value\")\n\t}\n\treturn nil\n}\n\nfunc (d *Decoder) decodeSlice(ctx context.Context, dst reflect.Value, src ast.Node) error {\n\tarrayNode, err := d.getArrayNode(src)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to get array node\")\n\t}\n\tif arrayNode == nil {\n\t\treturn nil\n\t}\n\titer := arrayNode.ArrayRange()\n\tsliceType := dst.Type()\n\tsliceValue := reflect.MakeSlice(sliceType, 0, iter.Len())\n\telemType := sliceType.Elem()\n\n\tvar foundErr error\n\tfor iter.Next() {\n\t\tv := iter.Value()\n\t\tif elemType.Kind() == reflect.Ptr && v.Type() == ast.NullType {\n\t\t\t// set nil value to pointer\n\t\t\tsliceValue = reflect.Append(sliceValue, reflect.Zero(elemType))\n\t\t\tcontinue\n\t\t}\n\t\tdstValue, err := d.createDecodedNewValue(ctx, elemType, reflect.Value{}, v)\n\t\tif err != nil {\n\t\t\tif foundErr == nil {\n\t\t\t\tfoundErr = err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tsliceValue = reflect.Append(sliceValue, d.castToAssignableValue(dstValue, elemType))\n\t}\n\tdst.Set(sliceValue)\n\tif foundErr != nil {\n\t\treturn errors.Wrapf(foundErr, \"failed to decode value\")\n\t}\n\treturn nil\n}\n\nfunc (d *Decoder) decodeMapItem(ctx context.Context, dst *MapItem, src ast.Node) error {\n\tmapNode, err := d.getMapNode(src)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to get map node\")\n\t}\n\tif mapNode == nil {\n\t\treturn nil\n\t}\n\tmapIter := mapNode.MapRange()\n\tif !mapIter.Next() {\n\t\treturn nil\n\t}\n\tkey := mapIter.Key()\n\tvalue := mapIter.Value()\n\tif key.Type() == ast.MergeKeyType {\n\t\tif err := d.decodeMapItem(ctx, dst, value); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to decode map with merge key\")\n\t\t}\n\t\treturn nil\n\t}\n\t*dst = MapItem{\n\t\tKey:   d.nodeToValue(key),\n\t\tValue: d.nodeToValue(value),\n\t}\n\treturn nil\n}\n\nfunc (d *Decoder) validateDuplicateKey(keyMap map[string]struct{}, key interface{}, keyNode ast.Node) error {\n\tk, ok := key.(string)\n\tif !ok {\n\t\treturn nil\n\t}\n\tif d.disallowDuplicateKey {\n\t\tif _, exists := keyMap[k]; exists {\n\t\t\treturn errDuplicateKey(fmt.Sprintf(`duplicate key \"%s\"`, k), keyNode.GetToken())\n\t\t}\n\t}\n\tkeyMap[k] = struct{}{}\n\treturn nil\n}\n\nfunc (d *Decoder) decodeMapSlice(ctx context.Context, dst *MapSlice, src ast.Node) error {\n\tmapNode, err := d.getMapNode(src)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to get map node\")\n\t}\n\tif mapNode == nil {\n\t\treturn nil\n\t}\n\tmapSlice := MapSlice{}\n\tmapIter := mapNode.MapRange()\n\tkeyMap := map[string]struct{}{}\n\tfor mapIter.Next() {\n\t\tkey := mapIter.Key()\n\t\tvalue := mapIter.Value()\n\t\tif key.Type() == ast.MergeKeyType {\n\t\t\tvar m MapSlice\n\t\t\tif err := d.decodeMapSlice(ctx, &m, value); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to decode map with merge key\")\n\t\t\t}\n\t\t\tfor _, v := range m {\n\t\t\t\tif err := d.validateDuplicateKey(keyMap, v.Key, value); err != nil {\n\t\t\t\t\treturn errors.Wrapf(err, \"invalid map key\")\n\t\t\t\t}\n\t\t\t\tmapSlice = append(mapSlice, v)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tk := d.nodeToValue(key)\n\t\tif err := d.validateDuplicateKey(keyMap, k, key); err != nil {\n\t\t\treturn errors.Wrapf(err, \"invalid map key\")\n\t\t}\n\t\tmapSlice = append(mapSlice, MapItem{\n\t\t\tKey:   k,\n\t\t\tValue: d.nodeToValue(value),\n\t\t})\n\t}\n\t*dst = mapSlice\n\treturn nil\n}\n\nfunc (d *Decoder) decodeMap(ctx context.Context, dst reflect.Value, src ast.Node) error {\n\tmapNode, err := d.getMapNode(src)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to get map node\")\n\t}\n\tif mapNode == nil {\n\t\treturn nil\n\t}\n\tmapType := dst.Type()\n\tmapValue := reflect.MakeMap(mapType)\n\tkeyType := mapValue.Type().Key()\n\tvalueType := mapValue.Type().Elem()\n\tmapIter := mapNode.MapRange()\n\tkeyMap := map[string]struct{}{}\n\tvar foundErr error\n\tfor mapIter.Next() {\n\t\tkey := mapIter.Key()\n\t\tvalue := mapIter.Value()\n\t\tif key.Type() == ast.MergeKeyType {\n\t\t\tif err := d.decodeMap(ctx, dst, value); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to decode map with merge key\")\n\t\t\t}\n\t\t\titer := dst.MapRange()\n\t\t\tfor iter.Next() {\n\t\t\t\tif err := d.validateDuplicateKey(keyMap, iter.Key(), value); err != nil {\n\t\t\t\t\treturn errors.Wrapf(err, \"invalid map key\")\n\t\t\t\t}\n\t\t\t\tmapValue.SetMapIndex(iter.Key(), iter.Value())\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tk := reflect.ValueOf(d.nodeToValue(key))\n\t\tif k.IsValid() && k.Type().ConvertibleTo(keyType) {\n\t\t\tk = k.Convert(keyType)\n\t\t}\n\t\tif k.IsValid() {\n\t\t\tif err := d.validateDuplicateKey(keyMap, k.Interface(), key); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"invalid map key\")\n\t\t\t}\n\t\t}\n\t\tif valueType.Kind() == reflect.Ptr && value.Type() == ast.NullType {\n\t\t\t// set nil value to pointer\n\t\t\tmapValue.SetMapIndex(k, reflect.Zero(valueType))\n\t\t\tcontinue\n\t\t}\n\t\tdstValue, err := d.createDecodedNewValue(ctx, valueType, reflect.Value{}, value)\n\t\tif err != nil {\n\t\t\tif foundErr == nil {\n\t\t\t\tfoundErr = err\n\t\t\t}\n\t\t}\n\t\tif !k.IsValid() {\n\t\t\t// expect nil key\n\t\t\tmapValue.SetMapIndex(d.createDecodableValue(keyType), d.castToAssignableValue(dstValue, valueType))\n\t\t\tcontinue\n\t\t}\n\t\tmapValue.SetMapIndex(k, d.castToAssignableValue(dstValue, valueType))\n\t}\n\tdst.Set(mapValue)\n\tif foundErr != nil {\n\t\treturn errors.Wrapf(foundErr, \"failed to decode value\")\n\t}\n\treturn nil\n}\n\nfunc (d *Decoder) fileToReader(file string) (io.Reader, error) {\n\treader, err := os.Open(file)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to open file\")\n\t}\n\treturn reader, nil\n}\n\nfunc (d *Decoder) isYAMLFile(file string) bool {\n\text := filepath.Ext(file)\n\tif ext == \".yml\" {\n\t\treturn true\n\t}\n\tif ext == \".yaml\" {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *Decoder) readersUnderDir(dir string) ([]io.Reader, error) {\n\tpattern := fmt.Sprintf(\"%s/*\", dir)\n\tmatches, err := filepath.Glob(pattern)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to get files by %s\", pattern)\n\t}\n\treaders := []io.Reader{}\n\tfor _, match := range matches {\n\t\tif !d.isYAMLFile(match) {\n\t\t\tcontinue\n\t\t}\n\t\treader, err := d.fileToReader(match)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to get reader\")\n\t\t}\n\t\treaders = append(readers, reader)\n\t}\n\treturn readers, nil\n}\n\nfunc (d *Decoder) readersUnderDirRecursive(dir string) ([]io.Reader, error) {\n\treaders := []io.Reader{}\n\tif err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {\n\t\tif !d.isYAMLFile(path) {\n\t\t\treturn nil\n\t\t}\n\t\treader, err := d.fileToReader(path)\n\t\tif err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to get reader\")\n\t\t}\n\t\treaders = append(readers, reader)\n\t\treturn nil\n\t}); err != nil {\n\t\treturn nil, errors.Wrapf(err, \"interrupt walk in %s\", dir)\n\t}\n\treturn readers, nil\n}\n\nfunc (d *Decoder) resolveReference() error {\n\tfor _, opt := range d.opts {\n\t\tif err := opt(d); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to exec option\")\n\t\t}\n\t}\n\tfor _, file := range d.referenceFiles {\n\t\treader, err := d.fileToReader(file)\n\t\tif err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to get reader\")\n\t\t}\n\t\td.referenceReaders = append(d.referenceReaders, reader)\n\t}\n\tfor _, dir := range d.referenceDirs {\n\t\tif !d.isRecursiveDir {\n\t\t\treaders, err := d.readersUnderDir(dir)\n\t\t\tif err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to get readers from under the %s\", dir)\n\t\t\t}\n\t\t\td.referenceReaders = append(d.referenceReaders, readers...)\n\t\t} else {\n\t\t\treaders, err := d.readersUnderDirRecursive(dir)\n\t\t\tif err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to get readers from under the %s\", dir)\n\t\t\t}\n\t\t\td.referenceReaders = append(d.referenceReaders, readers...)\n\t\t}\n\t}\n\tfor _, reader := range d.referenceReaders {\n\t\tbytes, err := ioutil.ReadAll(reader)\n\t\tif err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to read buffer\")\n\t\t}\n\n\t\t// assign new anchor definition to anchorMap\n\t\tif _, err := d.parse(bytes); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to decode\")\n\t\t}\n\t}\n\td.isResolvedReference = true\n\treturn nil\n}\n\nfunc (d *Decoder) parse(bytes []byte) (*ast.File, error) {\n\tvar parseMode parser.Mode\n\tif d.toCommentMap != nil {\n\t\tparseMode = parser.ParseComments\n\t}\n\tf, err := parser.ParseBytes(bytes, parseMode)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse yaml\")\n\t}\n\tnormalizedFile := &ast.File{}\n\tfor _, doc := range f.Docs {\n\t\t// try to decode ast.Node to value and map anchor value to anchorMap\n\t\tif v := d.nodeToValue(doc.Body); v != nil {\n\t\t\tnormalizedFile.Docs = append(normalizedFile.Docs, doc)\n\t\t}\n\t}\n\treturn normalizedFile, nil\n}\n\nfunc (d *Decoder) isInitialized() bool {\n\treturn d.parsedFile != nil\n}\n\nfunc (d *Decoder) decodeInit() error {\n\tif !d.isResolvedReference {\n\t\tif err := d.resolveReference(); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to resolve reference\")\n\t\t}\n\t}\n\tvar buf bytes.Buffer\n\tif _, err := io.Copy(&buf, d.reader); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to copy from reader\")\n\t}\n\tfile, err := d.parse(buf.Bytes())\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to decode\")\n\t}\n\td.parsedFile = file\n\treturn nil\n}\n\nfunc (d *Decoder) decode(ctx context.Context, v reflect.Value) error {\n\tif len(d.parsedFile.Docs) <= d.streamIndex {\n\t\treturn io.EOF\n\t}\n\tbody := d.parsedFile.Docs[d.streamIndex].Body\n\tif body == nil {\n\t\treturn nil\n\t}\n\tif err := d.decodeValue(ctx, v.Elem(), body); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to decode value\")\n\t}\n\td.streamIndex++\n\treturn nil\n}\n\n// Decode reads the next YAML-encoded value from its input\n// and stores it in the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (d *Decoder) Decode(v interface{}) error {\n\treturn d.DecodeContext(context.Background(), v)\n}\n\n// DecodeContext reads the next YAML-encoded value from its input\n// and stores it in the value pointed to by v with context.Context.\nfunc (d *Decoder) DecodeContext(ctx context.Context, v interface{}) error {\n\trv := reflect.ValueOf(v)\n\tif rv.Type().Kind() != reflect.Ptr {\n\t\treturn errors.ErrDecodeRequiredPointerType\n\t}\n\tif d.isInitialized() {\n\t\tif err := d.decode(ctx, rv); err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn errors.Wrapf(err, \"failed to decode\")\n\t\t}\n\t\treturn nil\n\t}\n\tif err := d.decodeInit(); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to decodeInit\")\n\t}\n\tif err := d.decode(ctx, rv); err != nil {\n\t\tif err == io.EOF {\n\t\t\treturn err\n\t\t}\n\t\treturn errors.Wrapf(err, \"failed to decode\")\n\t}\n\treturn nil\n}\n\n// DecodeFromNode decodes node into the value pointed to by v.\nfunc (d *Decoder) DecodeFromNode(node ast.Node, v interface{}) error {\n\treturn d.DecodeFromNodeContext(context.Background(), node, v)\n}\n\n// DecodeFromNodeContext decodes node into the value pointed to by v with context.Context.\nfunc (d *Decoder) DecodeFromNodeContext(ctx context.Context, node ast.Node, v interface{}) error {\n\trv := reflect.ValueOf(v)\n\tif rv.Type().Kind() != reflect.Ptr {\n\t\treturn errors.ErrDecodeRequiredPointerType\n\t}\n\tif !d.isInitialized() {\n\t\tif err := d.decodeInit(); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to decodInit\")\n\t\t}\n\t}\n\t// resolve references to the anchor on the same file\n\td.nodeToValue(node)\n\tif err := d.decodeValue(ctx, rv.Elem(), node); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to decode value\")\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/encode.go",
    "content": "package yaml\n\nimport (\n\t\"context\"\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/goccy/go-yaml/ast\"\n\t\"github.com/goccy/go-yaml/internal/errors\"\n\t\"github.com/goccy/go-yaml/parser\"\n\t\"github.com/goccy/go-yaml/printer\"\n\t\"github.com/goccy/go-yaml/token\"\n\t\"golang.org/x/xerrors\"\n)\n\nconst (\n\t// DefaultIndentSpaces default number of space for indent\n\tDefaultIndentSpaces = 2\n)\n\n// Encoder writes YAML values to an output stream.\ntype Encoder struct {\n\twriter                     io.Writer\n\topts                       []EncodeOption\n\tindent                     int\n\tindentSequence             bool\n\tsingleQuote                bool\n\tisFlowStyle                bool\n\tisJSONStyle                bool\n\tuseJSONMarshaler           bool\n\tanchorCallback             func(*ast.AnchorNode, interface{}) error\n\tanchorPtrToNameMap         map[uintptr]string\n\tcustomMarshalerMap         map[reflect.Type]func(interface{}) ([]byte, error)\n\tuseLiteralStyleIfMultiline bool\n\tcommentMap                 map[*Path][]*Comment\n\twritten                    bool\n\n\tline        int\n\tcolumn      int\n\toffset      int\n\tindentNum   int\n\tindentLevel int\n}\n\n// NewEncoder returns a new encoder that writes to w.\n// The Encoder should be closed after use to flush all data to w.\nfunc NewEncoder(w io.Writer, opts ...EncodeOption) *Encoder {\n\treturn &Encoder{\n\t\twriter:             w,\n\t\topts:               opts,\n\t\tindent:             DefaultIndentSpaces,\n\t\tanchorPtrToNameMap: map[uintptr]string{},\n\t\tcustomMarshalerMap: map[reflect.Type]func(interface{}) ([]byte, error){},\n\t\tline:               1,\n\t\tcolumn:             1,\n\t\toffset:             0,\n\t}\n}\n\n// Close closes the encoder by writing any remaining data.\n// It does not write a stream terminating string \"...\".\nfunc (e *Encoder) Close() error {\n\treturn nil\n}\n\n// Encode writes the YAML encoding of v to the stream.\n// If multiple items are encoded to the stream,\n// the second and subsequent document will be preceded with a \"---\" document separator,\n// but the first will not.\n//\n// See the documentation for Marshal for details about the conversion of Go values to YAML.\nfunc (e *Encoder) Encode(v interface{}) error {\n\treturn e.EncodeContext(context.Background(), v)\n}\n\n// EncodeContext writes the YAML encoding of v to the stream with context.Context.\nfunc (e *Encoder) EncodeContext(ctx context.Context, v interface{}) error {\n\tnode, err := e.EncodeToNodeContext(ctx, v)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to encode to node\")\n\t}\n\tif err := e.setCommentByCommentMap(node); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to set comment by comment map\")\n\t}\n\tif !e.written {\n\t\te.written = true\n\t} else {\n\t\t// write document separator\n\t\te.writer.Write([]byte(\"---\\n\"))\n\t}\n\tvar p printer.Printer\n\te.writer.Write(p.PrintNode(node))\n\treturn nil\n}\n\n// EncodeToNode convert v to ast.Node.\nfunc (e *Encoder) EncodeToNode(v interface{}) (ast.Node, error) {\n\treturn e.EncodeToNodeContext(context.Background(), v)\n}\n\n// EncodeToNodeContext convert v to ast.Node with context.Context.\nfunc (e *Encoder) EncodeToNodeContext(ctx context.Context, v interface{}) (ast.Node, error) {\n\tfor _, opt := range e.opts {\n\t\tif err := opt(e); err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to run option for encoder\")\n\t\t}\n\t}\n\tnode, err := e.encodeValue(ctx, reflect.ValueOf(v), 1)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to encode value\")\n\t}\n\treturn node, nil\n}\n\nfunc (e *Encoder) setCommentByCommentMap(node ast.Node) error {\n\tif e.commentMap == nil {\n\t\treturn nil\n\t}\n\tfor path, comments := range e.commentMap {\n\t\tn, err := path.FilterNode(node)\n\t\tif err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to filter node\")\n\t\t}\n\t\tif n == nil {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, comment := range comments {\n\t\t\tcommentTokens := []*token.Token{}\n\t\t\tfor _, text := range comment.Texts {\n\t\t\t\tcommentTokens = append(commentTokens, token.New(text, text, nil))\n\t\t\t}\n\t\t\tcommentGroup := ast.CommentGroup(commentTokens)\n\t\t\tswitch comment.Position {\n\t\t\tcase CommentHeadPosition:\n\t\t\t\tif err := e.setHeadComment(node, n, commentGroup); err != nil {\n\t\t\t\t\treturn errors.Wrapf(err, \"failed to set head comment\")\n\t\t\t\t}\n\t\t\tcase CommentLinePosition:\n\t\t\t\tif err := e.setLineComment(node, n, commentGroup); err != nil {\n\t\t\t\t\treturn errors.Wrapf(err, \"failed to set line comment\")\n\t\t\t\t}\n\t\t\tcase CommentFootPosition:\n\t\t\t\tif err := e.setFootComment(node, n, commentGroup); err != nil {\n\t\t\t\t\treturn errors.Wrapf(err, \"failed to set foot comment\")\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn ErrUnknownCommentPositionType\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (e *Encoder) setHeadComment(node ast.Node, filtered ast.Node, comment *ast.CommentGroupNode) error {\n\tparent := ast.Parent(node, filtered)\n\tif parent == nil {\n\t\treturn ErrUnsupportedHeadPositionType(node)\n\t}\n\tswitch p := parent.(type) {\n\tcase *ast.MappingValueNode:\n\t\tif err := p.SetComment(comment); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to set comment\")\n\t\t}\n\tcase *ast.MappingNode:\n\t\tif err := p.SetComment(comment); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to set comment\")\n\t\t}\n\tcase *ast.SequenceNode:\n\t\tif len(p.ValueHeadComments) == 0 {\n\t\t\tp.ValueHeadComments = make([]*ast.CommentGroupNode, len(p.Values))\n\t\t}\n\t\tvar foundIdx int\n\t\tfor idx, v := range p.Values {\n\t\t\tif v == filtered {\n\t\t\t\tfoundIdx = idx\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tp.ValueHeadComments[foundIdx] = comment\n\tdefault:\n\t\treturn ErrUnsupportedHeadPositionType(node)\n\t}\n\treturn nil\n}\n\nfunc (e *Encoder) setLineComment(node ast.Node, filtered ast.Node, comment *ast.CommentGroupNode) error {\n\tswitch filtered.(type) {\n\tcase *ast.MappingValueNode, *ast.SequenceNode:\n\t\t// Line comment cannot be set for mapping value node.\n\t\t// It should probably be set for the parent map node\n\t\tif err := e.setLineCommentToParentMapNode(node, filtered, comment); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to set line comment to parent node\")\n\t\t}\n\tdefault:\n\t\tif err := filtered.SetComment(comment); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to set comment\")\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (e *Encoder) setLineCommentToParentMapNode(node ast.Node, filtered ast.Node, comment *ast.CommentGroupNode) error {\n\tparent := ast.Parent(node, filtered)\n\tif parent == nil {\n\t\treturn ErrUnsupportedLinePositionType(node)\n\t}\n\tswitch p := parent.(type) {\n\tcase *ast.MappingValueNode:\n\t\tif err := p.Key.SetComment(comment); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to set comment\")\n\t\t}\n\tcase *ast.MappingNode:\n\t\tif err := p.SetComment(comment); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to set comment\")\n\t\t}\n\tdefault:\n\t\treturn ErrUnsupportedLinePositionType(parent)\n\t}\n\treturn nil\n}\n\nfunc (e *Encoder) setFootComment(node ast.Node, filtered ast.Node, comment *ast.CommentGroupNode) error {\n\tparent := ast.Parent(node, filtered)\n\tif parent == nil {\n\t\treturn ErrUnsupportedFootPositionType(node)\n\t}\n\tswitch n := parent.(type) {\n\tcase *ast.MappingValueNode:\n\t\tn.FootComment = comment\n\tcase *ast.MappingNode:\n\t\tn.FootComment = comment\n\tcase *ast.SequenceNode:\n\t\tn.FootComment = comment\n\tdefault:\n\t\treturn ErrUnsupportedFootPositionType(n)\n\t}\n\treturn nil\n}\n\nfunc (e *Encoder) encodeDocument(doc []byte) (ast.Node, error) {\n\tf, err := parser.ParseBytes(doc, 0)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse yaml\")\n\t}\n\tfor _, docNode := range f.Docs {\n\t\tif docNode.Body != nil {\n\t\t\treturn docNode.Body, nil\n\t\t}\n\t}\n\treturn nil, nil\n}\n\nfunc (e *Encoder) isInvalidValue(v reflect.Value) bool {\n\tif !v.IsValid() {\n\t\treturn true\n\t}\n\tkind := v.Type().Kind()\n\tif kind == reflect.Ptr && v.IsNil() {\n\t\treturn true\n\t}\n\tif kind == reflect.Interface && v.IsNil() {\n\t\treturn true\n\t}\n\treturn false\n}\n\ntype jsonMarshaler interface {\n\tMarshalJSON() ([]byte, error)\n}\n\nfunc (e *Encoder) existsTypeInCustomMarshalerMap(t reflect.Type) bool {\n\tif _, exists := e.customMarshalerMap[t]; exists {\n\t\treturn true\n\t}\n\n\tglobalCustomMarshalerMu.Lock()\n\tdefer globalCustomMarshalerMu.Unlock()\n\tif _, exists := globalCustomMarshalerMap[t]; exists {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e *Encoder) marshalerFromCustomMarshalerMap(t reflect.Type) (func(interface{}) ([]byte, error), bool) {\n\tif marshaler, exists := e.customMarshalerMap[t]; exists {\n\t\treturn marshaler, exists\n\t}\n\n\tglobalCustomMarshalerMu.Lock()\n\tdefer globalCustomMarshalerMu.Unlock()\n\tif marshaler, exists := globalCustomMarshalerMap[t]; exists {\n\t\treturn marshaler, exists\n\t}\n\treturn nil, false\n}\n\nfunc (e *Encoder) canEncodeByMarshaler(v reflect.Value) bool {\n\tif !v.CanInterface() {\n\t\treturn false\n\t}\n\tif e.existsTypeInCustomMarshalerMap(v.Type()) {\n\t\treturn true\n\t}\n\tiface := v.Interface()\n\tswitch iface.(type) {\n\tcase BytesMarshalerContext:\n\t\treturn true\n\tcase BytesMarshaler:\n\t\treturn true\n\tcase InterfaceMarshalerContext:\n\t\treturn true\n\tcase InterfaceMarshaler:\n\t\treturn true\n\tcase time.Time:\n\t\treturn true\n\tcase time.Duration:\n\t\treturn true\n\tcase encoding.TextMarshaler:\n\t\treturn true\n\tcase jsonMarshaler:\n\t\treturn e.useJSONMarshaler\n\t}\n\treturn false\n}\n\nfunc (e *Encoder) encodeByMarshaler(ctx context.Context, v reflect.Value, column int) (ast.Node, error) {\n\tiface := v.Interface()\n\n\tif marshaler, exists := e.marshalerFromCustomMarshalerMap(v.Type()); exists {\n\t\tdoc, err := marshaler(iface)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to MarshalYAML\")\n\t\t}\n\t\tnode, err := e.encodeDocument(doc)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to encode document\")\n\t\t}\n\t\treturn node, nil\n\t}\n\n\tif marshaler, ok := iface.(BytesMarshalerContext); ok {\n\t\tdoc, err := marshaler.MarshalYAML(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to MarshalYAML\")\n\t\t}\n\t\tnode, err := e.encodeDocument(doc)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to encode document\")\n\t\t}\n\t\treturn node, nil\n\t}\n\n\tif marshaler, ok := iface.(BytesMarshaler); ok {\n\t\tdoc, err := marshaler.MarshalYAML()\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to MarshalYAML\")\n\t\t}\n\t\tnode, err := e.encodeDocument(doc)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to encode document\")\n\t\t}\n\t\treturn node, nil\n\t}\n\n\tif marshaler, ok := iface.(InterfaceMarshalerContext); ok {\n\t\tmarshalV, err := marshaler.MarshalYAML(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to MarshalYAML\")\n\t\t}\n\t\treturn e.encodeValue(ctx, reflect.ValueOf(marshalV), column)\n\t}\n\n\tif marshaler, ok := iface.(InterfaceMarshaler); ok {\n\t\tmarshalV, err := marshaler.MarshalYAML()\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to MarshalYAML\")\n\t\t}\n\t\treturn e.encodeValue(ctx, reflect.ValueOf(marshalV), column)\n\t}\n\n\tif t, ok := iface.(time.Time); ok {\n\t\treturn e.encodeTime(t, column), nil\n\t}\n\n\tif t, ok := iface.(time.Duration); ok {\n\t\treturn e.encodeDuration(t, column), nil\n\t}\n\n\tif marshaler, ok := iface.(encoding.TextMarshaler); ok {\n\t\tdoc, err := marshaler.MarshalText()\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to MarshalText\")\n\t\t}\n\t\tnode, err := e.encodeDocument(doc)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to encode document\")\n\t\t}\n\t\treturn node, nil\n\t}\n\n\tif e.useJSONMarshaler {\n\t\tif marshaler, ok := iface.(jsonMarshaler); ok {\n\t\t\tjsonBytes, err := marshaler.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to MarshalJSON\")\n\t\t\t}\n\t\t\tdoc, err := JSONToYAML(jsonBytes)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to convert json to yaml\")\n\t\t\t}\n\t\t\tnode, err := e.encodeDocument(doc)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to encode document\")\n\t\t\t}\n\t\t\treturn node, nil\n\t\t}\n\t}\n\n\treturn nil, xerrors.Errorf(\"does not implemented Marshaler\")\n}\n\nfunc (e *Encoder) encodeValue(ctx context.Context, v reflect.Value, column int) (ast.Node, error) {\n\tif e.isInvalidValue(v) {\n\t\treturn e.encodeNil(), nil\n\t}\n\tif e.canEncodeByMarshaler(v) {\n\t\tnode, err := e.encodeByMarshaler(ctx, v, column)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to encode by marshaler\")\n\t\t}\n\t\treturn node, nil\n\t}\n\tswitch v.Type().Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn e.encodeInt(v.Int()), nil\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn e.encodeUint(v.Uint()), nil\n\tcase reflect.Float32:\n\t\treturn e.encodeFloat(v.Float(), 32), nil\n\tcase reflect.Float64:\n\t\treturn e.encodeFloat(v.Float(), 64), nil\n\tcase reflect.Ptr:\n\t\tanchorName := e.anchorPtrToNameMap[v.Pointer()]\n\t\tif anchorName != \"\" {\n\t\t\taliasName := anchorName\n\t\t\talias := ast.Alias(token.New(\"*\", \"*\", e.pos(column)))\n\t\t\talias.Value = ast.String(token.New(aliasName, aliasName, e.pos(column)))\n\t\t\treturn alias, nil\n\t\t}\n\t\treturn e.encodeValue(ctx, v.Elem(), column)\n\tcase reflect.Interface:\n\t\treturn e.encodeValue(ctx, v.Elem(), column)\n\tcase reflect.String:\n\t\treturn e.encodeString(v.String(), column), nil\n\tcase reflect.Bool:\n\t\treturn e.encodeBool(v.Bool()), nil\n\tcase reflect.Slice:\n\t\tif mapSlice, ok := v.Interface().(MapSlice); ok {\n\t\t\treturn e.encodeMapSlice(ctx, mapSlice, column)\n\t\t}\n\t\treturn e.encodeSlice(ctx, v)\n\tcase reflect.Array:\n\t\treturn e.encodeArray(ctx, v)\n\tcase reflect.Struct:\n\t\tif v.CanInterface() {\n\t\t\tif mapItem, ok := v.Interface().(MapItem); ok {\n\t\t\t\treturn e.encodeMapItem(ctx, mapItem, column)\n\t\t\t}\n\t\t\tif t, ok := v.Interface().(time.Time); ok {\n\t\t\t\treturn e.encodeTime(t, column), nil\n\t\t\t}\n\t\t}\n\t\treturn e.encodeStruct(ctx, v, column)\n\tcase reflect.Map:\n\t\treturn e.encodeMap(ctx, v, column), nil\n\tdefault:\n\t\treturn nil, xerrors.Errorf(\"unknown value type %s\", v.Type().String())\n\t}\n}\n\nfunc (e *Encoder) pos(column int) *token.Position {\n\treturn &token.Position{\n\t\tLine:        e.line,\n\t\tColumn:      column,\n\t\tOffset:      e.offset,\n\t\tIndentNum:   e.indentNum,\n\t\tIndentLevel: e.indentLevel,\n\t}\n}\n\nfunc (e *Encoder) encodeNil() *ast.NullNode {\n\tvalue := \"null\"\n\treturn ast.Null(token.New(value, value, e.pos(e.column)))\n}\n\nfunc (e *Encoder) encodeInt(v int64) *ast.IntegerNode {\n\tvalue := fmt.Sprint(v)\n\treturn ast.Integer(token.New(value, value, e.pos(e.column)))\n}\n\nfunc (e *Encoder) encodeUint(v uint64) *ast.IntegerNode {\n\tvalue := fmt.Sprint(v)\n\treturn ast.Integer(token.New(value, value, e.pos(e.column)))\n}\n\nfunc (e *Encoder) encodeFloat(v float64, bitSize int) ast.Node {\n\tif v == math.Inf(0) {\n\t\tvalue := \".inf\"\n\t\treturn ast.Infinity(token.New(value, value, e.pos(e.column)))\n\t} else if v == math.Inf(-1) {\n\t\tvalue := \"-.inf\"\n\t\treturn ast.Infinity(token.New(value, value, e.pos(e.column)))\n\t} else if math.IsNaN(v) {\n\t\tvalue := \".nan\"\n\t\treturn ast.Nan(token.New(value, value, e.pos(e.column)))\n\t}\n\tvalue := strconv.FormatFloat(v, 'g', -1, bitSize)\n\tif !strings.Contains(value, \".\") && !strings.Contains(value, \"e\") {\n\t\t// append x.0 suffix to keep float value context\n\t\tvalue = fmt.Sprintf(\"%s.0\", value)\n\t}\n\treturn ast.Float(token.New(value, value, e.pos(e.column)))\n}\n\nfunc (e *Encoder) isNeedQuoted(v string) bool {\n\tif e.isJSONStyle {\n\t\treturn true\n\t}\n\tif e.useLiteralStyleIfMultiline && strings.ContainsAny(v, \"\\n\\r\") {\n\t\treturn false\n\t}\n\tif e.isFlowStyle && strings.ContainsAny(v, `]},'\"`) {\n\t\treturn true\n\t}\n\tif token.IsNeedQuoted(v) {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e *Encoder) encodeString(v string, column int) *ast.StringNode {\n\tif e.isNeedQuoted(v) {\n\t\tif e.singleQuote {\n\t\t\tv = quoteWith(v, '\\'')\n\t\t} else {\n\t\t\tv = strconv.Quote(v)\n\t\t}\n\t}\n\treturn ast.String(token.New(v, v, e.pos(column)))\n}\n\nfunc (e *Encoder) encodeBool(v bool) *ast.BoolNode {\n\tvalue := fmt.Sprint(v)\n\treturn ast.Bool(token.New(value, value, e.pos(e.column)))\n}\n\nfunc (e *Encoder) encodeSlice(ctx context.Context, value reflect.Value) (*ast.SequenceNode, error) {\n\tif e.indentSequence {\n\t\te.column += e.indent\n\t}\n\tcolumn := e.column\n\tsequence := ast.Sequence(token.New(\"-\", \"-\", e.pos(column)), e.isFlowStyle)\n\tfor i := 0; i < value.Len(); i++ {\n\t\tnode, err := e.encodeValue(ctx, value.Index(i), column)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to encode value for slice\")\n\t\t}\n\t\tsequence.Values = append(sequence.Values, node)\n\t}\n\tif e.indentSequence {\n\t\te.column -= e.indent\n\t}\n\treturn sequence, nil\n}\n\nfunc (e *Encoder) encodeArray(ctx context.Context, value reflect.Value) (*ast.SequenceNode, error) {\n\tif e.indentSequence {\n\t\te.column += e.indent\n\t}\n\tcolumn := e.column\n\tsequence := ast.Sequence(token.New(\"-\", \"-\", e.pos(column)), e.isFlowStyle)\n\tfor i := 0; i < value.Len(); i++ {\n\t\tnode, err := e.encodeValue(ctx, value.Index(i), column)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to encode value for array\")\n\t\t}\n\t\tsequence.Values = append(sequence.Values, node)\n\t}\n\tif e.indentSequence {\n\t\te.column -= e.indent\n\t}\n\treturn sequence, nil\n}\n\nfunc (e *Encoder) encodeMapItem(ctx context.Context, item MapItem, column int) (*ast.MappingValueNode, error) {\n\tk := reflect.ValueOf(item.Key)\n\tv := reflect.ValueOf(item.Value)\n\tvalue, err := e.encodeValue(ctx, v, column)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to encode MapItem\")\n\t}\n\tif e.isMapNode(value) {\n\t\tvalue.AddColumn(e.indent)\n\t}\n\treturn ast.MappingValue(\n\t\ttoken.New(\"\", \"\", e.pos(column)),\n\t\te.encodeString(k.Interface().(string), column),\n\t\tvalue,\n\t), nil\n}\n\nfunc (e *Encoder) encodeMapSlice(ctx context.Context, value MapSlice, column int) (*ast.MappingNode, error) {\n\tnode := ast.Mapping(token.New(\"\", \"\", e.pos(column)), e.isFlowStyle)\n\tfor _, item := range value {\n\t\tvalue, err := e.encodeMapItem(ctx, item, column)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to encode MapItem for MapSlice\")\n\t\t}\n\t\tnode.Values = append(node.Values, value)\n\t}\n\treturn node, nil\n}\n\nfunc (e *Encoder) isMapNode(node ast.Node) bool {\n\t_, ok := node.(ast.MapNode)\n\treturn ok\n}\n\nfunc (e *Encoder) encodeMap(ctx context.Context, value reflect.Value, column int) ast.Node {\n\tnode := ast.Mapping(token.New(\"\", \"\", e.pos(column)), e.isFlowStyle)\n\tkeys := make([]interface{}, len(value.MapKeys()))\n\tfor i, k := range value.MapKeys() {\n\t\tkeys[i] = k.Interface()\n\t}\n\tsort.Slice(keys, func(i, j int) bool {\n\t\treturn fmt.Sprint(keys[i]) < fmt.Sprint(keys[j])\n\t})\n\tfor _, key := range keys {\n\t\tk := reflect.ValueOf(key)\n\t\tv := value.MapIndex(k)\n\t\tvalue, err := e.encodeValue(ctx, v, column)\n\t\tif err != nil {\n\t\t\treturn nil\n\t\t}\n\t\tif e.isMapNode(value) {\n\t\t\tvalue.AddColumn(e.indent)\n\t\t}\n\t\tnode.Values = append(node.Values, ast.MappingValue(\n\t\t\tnil,\n\t\t\te.encodeString(fmt.Sprint(key), column),\n\t\t\tvalue,\n\t\t))\n\t}\n\treturn node\n}\n\n// IsZeroer is used to check whether an object is zero to determine\n// whether it should be omitted when marshaling with the omitempty flag.\n// One notable implementation is time.Time.\ntype IsZeroer interface {\n\tIsZero() bool\n}\n\nfunc (e *Encoder) isZeroValue(v reflect.Value) bool {\n\tkind := v.Kind()\n\tif z, ok := v.Interface().(IsZeroer); ok {\n\t\tif (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn z.IsZero()\n\t}\n\tswitch kind {\n\tcase reflect.String:\n\t\treturn len(v.String()) == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Slice:\n\t\treturn v.Len() == 0\n\tcase reflect.Map:\n\t\treturn v.Len() == 0\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Struct:\n\t\tvt := v.Type()\n\t\tfor i := v.NumField() - 1; i >= 0; i-- {\n\t\t\tif vt.Field(i).PkgPath != \"\" {\n\t\t\t\tcontinue // private field\n\t\t\t}\n\t\t\tif !e.isZeroValue(v.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (e *Encoder) encodeTime(v time.Time, column int) *ast.StringNode {\n\tvalue := v.Format(time.RFC3339Nano)\n\tif e.isJSONStyle {\n\t\tvalue = strconv.Quote(value)\n\t}\n\treturn ast.String(token.New(value, value, e.pos(column)))\n}\n\nfunc (e *Encoder) encodeDuration(v time.Duration, column int) *ast.StringNode {\n\tvalue := v.String()\n\tif e.isJSONStyle {\n\t\tvalue = strconv.Quote(value)\n\t}\n\treturn ast.String(token.New(value, value, e.pos(column)))\n}\n\nfunc (e *Encoder) encodeAnchor(anchorName string, value ast.Node, fieldValue reflect.Value, column int) (*ast.AnchorNode, error) {\n\tanchorNode := ast.Anchor(token.New(\"&\", \"&\", e.pos(column)))\n\tanchorNode.Name = ast.String(token.New(anchorName, anchorName, e.pos(column)))\n\tanchorNode.Value = value\n\tif e.anchorCallback != nil {\n\t\tif err := e.anchorCallback(anchorNode, fieldValue.Interface()); err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to marshal anchor\")\n\t\t}\n\t\tif snode, ok := anchorNode.Name.(*ast.StringNode); ok {\n\t\t\tanchorName = snode.Value\n\t\t}\n\t}\n\tif fieldValue.Kind() == reflect.Ptr {\n\t\te.anchorPtrToNameMap[fieldValue.Pointer()] = anchorName\n\t}\n\treturn anchorNode, nil\n}\n\nfunc (e *Encoder) encodeStruct(ctx context.Context, value reflect.Value, column int) (ast.Node, error) {\n\tnode := ast.Mapping(token.New(\"\", \"\", e.pos(column)), e.isFlowStyle)\n\tstructType := value.Type()\n\tstructFieldMap, err := structFieldMap(structType)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to get struct field map\")\n\t}\n\thasInlineAnchorField := false\n\tvar inlineAnchorValue reflect.Value\n\tfor i := 0; i < value.NumField(); i++ {\n\t\tfield := structType.Field(i)\n\t\tif isIgnoredStructField(field) {\n\t\t\tcontinue\n\t\t}\n\t\tfieldValue := value.FieldByName(field.Name)\n\t\tstructField := structFieldMap[field.Name]\n\t\tif structField.IsOmitEmpty && e.isZeroValue(fieldValue) {\n\t\t\t// omit encoding\n\t\t\tcontinue\n\t\t}\n\t\tve := e\n\t\tif !e.isFlowStyle && structField.IsFlow {\n\t\t\tve = &Encoder{}\n\t\t\t*ve = *e\n\t\t\tve.isFlowStyle = true\n\t\t}\n\t\tvalue, err := ve.encodeValue(ctx, fieldValue, column)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to encode value\")\n\t\t}\n\t\tif e.isMapNode(value) {\n\t\t\tvalue.AddColumn(e.indent)\n\t\t}\n\t\tvar key ast.MapKeyNode = e.encodeString(structField.RenderName, column)\n\t\tswitch {\n\t\tcase structField.AnchorName != \"\":\n\t\t\tanchorNode, err := e.encodeAnchor(structField.AnchorName, value, fieldValue, column)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to encode anchor\")\n\t\t\t}\n\t\t\tvalue = anchorNode\n\t\tcase structField.IsAutoAlias:\n\t\t\tif fieldValue.Kind() != reflect.Ptr {\n\t\t\t\treturn nil, xerrors.Errorf(\n\t\t\t\t\t\"%s in struct is not pointer type. but required automatically alias detection\",\n\t\t\t\t\tstructField.FieldName,\n\t\t\t\t)\n\t\t\t}\n\t\t\tanchorName := e.anchorPtrToNameMap[fieldValue.Pointer()]\n\t\t\tif anchorName == \"\" {\n\t\t\t\treturn nil, xerrors.Errorf(\n\t\t\t\t\t\"cannot find anchor name from pointer address for automatically alias detection\",\n\t\t\t\t)\n\t\t\t}\n\t\t\taliasName := anchorName\n\t\t\talias := ast.Alias(token.New(\"*\", \"*\", e.pos(column)))\n\t\t\talias.Value = ast.String(token.New(aliasName, aliasName, e.pos(column)))\n\t\t\tvalue = alias\n\t\t\tif structField.IsInline {\n\t\t\t\t// if both used alias and inline, output `<<: *alias`\n\t\t\t\tkey = ast.MergeKey(token.New(\"<<\", \"<<\", e.pos(column)))\n\t\t\t}\n\t\tcase structField.AliasName != \"\":\n\t\t\taliasName := structField.AliasName\n\t\t\talias := ast.Alias(token.New(\"*\", \"*\", e.pos(column)))\n\t\t\talias.Value = ast.String(token.New(aliasName, aliasName, e.pos(column)))\n\t\t\tvalue = alias\n\t\t\tif structField.IsInline {\n\t\t\t\t// if both used alias and inline, output `<<: *alias`\n\t\t\t\tkey = ast.MergeKey(token.New(\"<<\", \"<<\", e.pos(column)))\n\t\t\t}\n\t\tcase structField.IsInline:\n\t\t\tisAutoAnchor := structField.IsAutoAnchor\n\t\t\tif !hasInlineAnchorField {\n\t\t\t\thasInlineAnchorField = isAutoAnchor\n\t\t\t}\n\t\t\tif isAutoAnchor {\n\t\t\t\tinlineAnchorValue = fieldValue\n\t\t\t}\n\t\t\tmapNode, ok := value.(ast.MapNode)\n\t\t\tif !ok {\n\t\t\t\treturn nil, xerrors.Errorf(\"inline value is must be map or struct type\")\n\t\t\t}\n\t\t\tmapIter := mapNode.MapRange()\n\t\t\tfor mapIter.Next() {\n\t\t\t\tkey := mapIter.Key()\n\t\t\t\tvalue := mapIter.Value()\n\t\t\t\tkeyName := key.GetToken().Value\n\t\t\t\tif structFieldMap.isIncludedRenderName(keyName) {\n\t\t\t\t\t// if declared same key name, skip encoding this field\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tkey.AddColumn(-e.indent)\n\t\t\t\tvalue.AddColumn(-e.indent)\n\t\t\t\tnode.Values = append(node.Values, ast.MappingValue(nil, key, value))\n\t\t\t}\n\t\t\tcontinue\n\t\tcase structField.IsAutoAnchor:\n\t\t\tanchorNode, err := e.encodeAnchor(structField.RenderName, value, fieldValue, column)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to encode anchor\")\n\t\t\t}\n\t\t\tvalue = anchorNode\n\t\t}\n\t\tnode.Values = append(node.Values, ast.MappingValue(nil, key, value))\n\t}\n\tif hasInlineAnchorField {\n\t\tnode.AddColumn(e.indent)\n\t\tanchorName := \"anchor\"\n\t\tanchorNode := ast.Anchor(token.New(\"&\", \"&\", e.pos(column)))\n\t\tanchorNode.Name = ast.String(token.New(anchorName, anchorName, e.pos(column)))\n\t\tanchorNode.Value = node\n\t\tif e.anchorCallback != nil {\n\t\t\tif err := e.anchorCallback(anchorNode, value.Addr().Interface()); err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to marshal anchor\")\n\t\t\t}\n\t\t\tif snode, ok := anchorNode.Name.(*ast.StringNode); ok {\n\t\t\t\tanchorName = snode.Value\n\t\t\t}\n\t\t}\n\t\tif inlineAnchorValue.Kind() == reflect.Ptr {\n\t\t\te.anchorPtrToNameMap[inlineAnchorValue.Pointer()] = anchorName\n\t\t}\n\t\treturn anchorNode, nil\n\t}\n\treturn node, nil\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/error.go",
    "content": "package yaml\n\nimport (\n\t\"github.com/goccy/go-yaml/ast\"\n\t\"golang.org/x/xerrors\"\n)\n\nvar (\n\tErrInvalidQuery               = xerrors.New(\"invalid query\")\n\tErrInvalidPath                = xerrors.New(\"invalid path instance\")\n\tErrInvalidPathString          = xerrors.New(\"invalid path string\")\n\tErrNotFoundNode               = xerrors.New(\"node not found\")\n\tErrUnknownCommentPositionType = xerrors.New(\"unknown comment position type\")\n\tErrInvalidCommentMapValue     = xerrors.New(\"invalid comment map value. it must be not nil value\")\n)\n\nfunc ErrUnsupportedHeadPositionType(node ast.Node) error {\n\treturn xerrors.Errorf(\"unsupported comment head position for %s\", node.Type())\n}\n\nfunc ErrUnsupportedLinePositionType(node ast.Node) error {\n\treturn xerrors.Errorf(\"unsupported comment line position for %s\", node.Type())\n}\n\nfunc ErrUnsupportedFootPositionType(node ast.Node) error {\n\treturn xerrors.Errorf(\"unsupported comment foot position for %s\", node.Type())\n}\n\n// IsInvalidQueryError whether err is ErrInvalidQuery or not.\nfunc IsInvalidQueryError(err error) bool {\n\treturn xerrors.Is(err, ErrInvalidQuery)\n}\n\n// IsInvalidPathError whether err is ErrInvalidPath or not.\nfunc IsInvalidPathError(err error) bool {\n\treturn xerrors.Is(err, ErrInvalidPath)\n}\n\n// IsInvalidPathStringError whether err is ErrInvalidPathString or not.\nfunc IsInvalidPathStringError(err error) bool {\n\treturn xerrors.Is(err, ErrInvalidPathString)\n}\n\n// IsNotFoundNodeError whether err is ErrNotFoundNode or not.\nfunc IsNotFoundNodeError(err error) bool {\n\treturn xerrors.Is(err, ErrNotFoundNode)\n}\n\n// IsInvalidTokenTypeError whether err is ast.ErrInvalidTokenType or not.\nfunc IsInvalidTokenTypeError(err error) bool {\n\treturn xerrors.Is(err, ast.ErrInvalidTokenType)\n}\n\n// IsInvalidAnchorNameError whether err is ast.ErrInvalidAnchorName or not.\nfunc IsInvalidAnchorNameError(err error) bool {\n\treturn xerrors.Is(err, ast.ErrInvalidAnchorName)\n}\n\n// IsInvalidAliasNameError whether err is ast.ErrInvalidAliasName or not.\nfunc IsInvalidAliasNameError(err error) bool {\n\treturn xerrors.Is(err, ast.ErrInvalidAliasName)\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/internal/errors/error.go",
    "content": "package errors\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"github.com/goccy/go-yaml/printer\"\n\t\"github.com/goccy/go-yaml/token\"\n\t\"golang.org/x/xerrors\"\n)\n\nconst (\n\tdefaultColorize      = false\n\tdefaultIncludeSource = true\n)\n\nvar (\n\tErrDecodeRequiredPointerType = xerrors.New(\"required pointer type value\")\n)\n\n// Wrapf wrap error for stack trace\nfunc Wrapf(err error, msg string, args ...interface{}) error {\n\treturn &wrapError{\n\t\tbaseError: &baseError{},\n\t\terr:       xerrors.Errorf(msg, args...),\n\t\tnextErr:   err,\n\t\tframe:     xerrors.Caller(1),\n\t}\n}\n\n// ErrSyntax create syntax error instance with message and token\nfunc ErrSyntax(msg string, tk *token.Token) *syntaxError {\n\treturn &syntaxError{\n\t\tbaseError: &baseError{},\n\t\tmsg:       msg,\n\t\ttoken:     tk,\n\t\tframe:     xerrors.Caller(1),\n\t}\n}\n\ntype baseError struct {\n\tstate fmt.State\n\tverb  rune\n}\n\nfunc (e *baseError) Error() string {\n\treturn \"\"\n}\n\nfunc (e *baseError) chainStateAndVerb(err error) {\n\twrapErr, ok := err.(*wrapError)\n\tif ok {\n\t\twrapErr.state = e.state\n\t\twrapErr.verb = e.verb\n\t}\n\tsyntaxErr, ok := err.(*syntaxError)\n\tif ok {\n\t\tsyntaxErr.state = e.state\n\t\tsyntaxErr.verb = e.verb\n\t}\n}\n\ntype wrapError struct {\n\t*baseError\n\terr     error\n\tnextErr error\n\tframe   xerrors.Frame\n}\n\ntype FormatErrorPrinter struct {\n\txerrors.Printer\n\tColored    bool\n\tInclSource bool\n}\n\nfunc (e *wrapError) As(target interface{}) bool {\n\terr := e.nextErr\n\tfor {\n\t\tif wrapErr, ok := err.(*wrapError); ok {\n\t\t\terr = wrapErr.nextErr\n\t\t\tcontinue\n\t\t}\n\t\tbreak\n\t}\n\treturn xerrors.As(err, target)\n}\n\nfunc (e *wrapError) Unwrap() error {\n\treturn e.nextErr\n}\n\nfunc (e *wrapError) PrettyPrint(p xerrors.Printer, colored, inclSource bool) error {\n\treturn e.FormatError(&FormatErrorPrinter{Printer: p, Colored: colored, InclSource: inclSource})\n}\n\nfunc (e *wrapError) FormatError(p xerrors.Printer) error {\n\tif _, ok := p.(*FormatErrorPrinter); !ok {\n\t\tp = &FormatErrorPrinter{\n\t\t\tPrinter:    p,\n\t\t\tColored:    defaultColorize,\n\t\t\tInclSource: defaultIncludeSource,\n\t\t}\n\t}\n\tif e.verb == 'v' && e.state.Flag('+') {\n\t\t// print stack trace for debugging\n\t\tp.Print(e.err, \"\\n\")\n\t\te.frame.Format(p)\n\t\te.chainStateAndVerb(e.nextErr)\n\t\treturn e.nextErr\n\t}\n\terr := e.nextErr\n\tfor {\n\t\tif wrapErr, ok := err.(*wrapError); ok {\n\t\t\terr = wrapErr.nextErr\n\t\t\tcontinue\n\t\t}\n\t\tbreak\n\t}\n\te.chainStateAndVerb(err)\n\tif fmtErr, ok := err.(xerrors.Formatter); ok {\n\t\tfmtErr.FormatError(p)\n\t} else {\n\t\tp.Print(err)\n\t}\n\treturn nil\n}\n\ntype wrapState struct {\n\torg fmt.State\n}\n\nfunc (s *wrapState) Write(b []byte) (n int, err error) {\n\treturn s.org.Write(b)\n}\n\nfunc (s *wrapState) Width() (wid int, ok bool) {\n\treturn s.org.Width()\n}\n\nfunc (s *wrapState) Precision() (prec int, ok bool) {\n\treturn s.org.Precision()\n}\n\nfunc (s *wrapState) Flag(c int) bool {\n\t// set true to 'printDetail' forced because when p.Detail() is false, xerrors.Printer no output any text\n\tif c == '#' {\n\t\t// ignore '#' keyword because xerrors.FormatError doesn't set true to printDetail.\n\t\t// ( see https://github.com/golang/xerrors/blob/master/adaptor.go#L39-L43 )\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc (e *wrapError) Format(state fmt.State, verb rune) {\n\te.state = state\n\te.verb = verb\n\txerrors.FormatError(e, &wrapState{org: state}, verb)\n}\n\nfunc (e *wrapError) Error() string {\n\tvar buf bytes.Buffer\n\te.PrettyPrint(&Sink{&buf}, defaultColorize, defaultIncludeSource)\n\treturn buf.String()\n}\n\ntype syntaxError struct {\n\t*baseError\n\tmsg   string\n\ttoken *token.Token\n\tframe xerrors.Frame\n}\n\nfunc (e *syntaxError) PrettyPrint(p xerrors.Printer, colored, inclSource bool) error {\n\treturn e.FormatError(&FormatErrorPrinter{Printer: p, Colored: colored, InclSource: inclSource})\n}\n\nfunc (e *syntaxError) FormatError(p xerrors.Printer) error {\n\tvar pp printer.Printer\n\n\tvar colored, inclSource bool\n\tif fep, ok := p.(*FormatErrorPrinter); ok {\n\t\tcolored = fep.Colored\n\t\tinclSource = fep.InclSource\n\t}\n\n\tpos := fmt.Sprintf(\"[%d:%d] \", e.token.Position.Line, e.token.Position.Column)\n\tmsg := pp.PrintErrorMessage(fmt.Sprintf(\"%s%s\", pos, e.msg), colored)\n\tif inclSource {\n\t\tmsg += \"\\n\" + pp.PrintErrorToken(e.token, colored)\n\t}\n\tp.Print(msg)\n\n\tif e.verb == 'v' && e.state.Flag('+') {\n\t\t// %+v\n\t\t// print stack trace for debugging\n\t\te.frame.Format(p)\n\t}\n\treturn nil\n}\n\ntype PrettyPrinter interface {\n\tPrettyPrint(xerrors.Printer, bool, bool) error\n}\ntype Sink struct{ *bytes.Buffer }\n\nfunc (es *Sink) Print(args ...interface{}) {\n\tfmt.Fprint(es.Buffer, args...)\n}\n\nfunc (es *Sink) Printf(f string, args ...interface{}) {\n\tfmt.Fprintf(es.Buffer, f, args...)\n}\n\nfunc (es *Sink) Detail() bool {\n\treturn false\n}\n\nfunc (e *syntaxError) Error() string {\n\tvar buf bytes.Buffer\n\te.PrettyPrint(&Sink{&buf}, defaultColorize, defaultIncludeSource)\n\treturn buf.String()\n}\n\ntype TypeError struct {\n\tDstType         reflect.Type\n\tSrcType         reflect.Type\n\tStructFieldName *string\n\tToken           *token.Token\n}\n\nfunc (e *TypeError) Error() string {\n\tif e.StructFieldName != nil {\n\t\treturn fmt.Sprintf(\"cannot unmarshal %s into Go struct field %s of type %s\", e.SrcType, *e.StructFieldName, e.DstType)\n\t}\n\treturn fmt.Sprintf(\"cannot unmarshal %s into Go value of type %s\", e.SrcType, e.DstType)\n}\n\nfunc (e *TypeError) PrettyPrint(p xerrors.Printer, colored, inclSource bool) error {\n\treturn e.FormatError(&FormatErrorPrinter{Printer: p, Colored: colored, InclSource: inclSource})\n}\n\nfunc (e *TypeError) FormatError(p xerrors.Printer) error {\n\tvar pp printer.Printer\n\n\tvar colored, inclSource bool\n\tif fep, ok := p.(*FormatErrorPrinter); ok {\n\t\tcolored = fep.Colored\n\t\tinclSource = fep.InclSource\n\t}\n\n\tpos := fmt.Sprintf(\"[%d:%d] \", e.Token.Position.Line, e.Token.Position.Column)\n\tmsg := pp.PrintErrorMessage(fmt.Sprintf(\"%s%s\", pos, e.Error()), colored)\n\tif inclSource {\n\t\tmsg += \"\\n\" + pp.PrintErrorToken(e.Token, colored)\n\t}\n\tp.Print(msg)\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/lexer/lexer.go",
    "content": "package lexer\n\nimport (\n\t\"io\"\n\n\t\"github.com/goccy/go-yaml/scanner\"\n\t\"github.com/goccy/go-yaml/token\"\n)\n\n// Tokenize split to token instances from string\nfunc Tokenize(src string) token.Tokens {\n\tvar s scanner.Scanner\n\ts.Init(src)\n\tvar tokens token.Tokens\n\tfor {\n\t\tsubTokens, err := s.Scan()\n\t\tif err == io.EOF {\n\t\t\tbreak\n\t\t}\n\t\ttokens.Add(subTokens...)\n\t}\n\treturn tokens\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/option.go",
    "content": "package yaml\n\nimport (\n\t\"io\"\n\t\"reflect\"\n\n\t\"github.com/goccy/go-yaml/ast\"\n)\n\n// DecodeOption functional option type for Decoder\ntype DecodeOption func(d *Decoder) error\n\n// ReferenceReaders pass to Decoder that reference to anchor defined by passed readers\nfunc ReferenceReaders(readers ...io.Reader) DecodeOption {\n\treturn func(d *Decoder) error {\n\t\td.referenceReaders = append(d.referenceReaders, readers...)\n\t\treturn nil\n\t}\n}\n\n// ReferenceFiles pass to Decoder that reference to anchor defined by passed files\nfunc ReferenceFiles(files ...string) DecodeOption {\n\treturn func(d *Decoder) error {\n\t\td.referenceFiles = files\n\t\treturn nil\n\t}\n}\n\n// ReferenceDirs pass to Decoder that reference to anchor defined by files under the passed dirs\nfunc ReferenceDirs(dirs ...string) DecodeOption {\n\treturn func(d *Decoder) error {\n\t\td.referenceDirs = dirs\n\t\treturn nil\n\t}\n}\n\n// RecursiveDir search yaml file recursively from passed dirs by ReferenceDirs option\nfunc RecursiveDir(isRecursive bool) DecodeOption {\n\treturn func(d *Decoder) error {\n\t\td.isRecursiveDir = isRecursive\n\t\treturn nil\n\t}\n}\n\n// Validator set StructValidator instance to Decoder\nfunc Validator(v StructValidator) DecodeOption {\n\treturn func(d *Decoder) error {\n\t\td.validator = v\n\t\treturn nil\n\t}\n}\n\n// Strict enable DisallowUnknownField and DisallowDuplicateKey\nfunc Strict() DecodeOption {\n\treturn func(d *Decoder) error {\n\t\td.disallowUnknownField = true\n\t\td.disallowDuplicateKey = true\n\t\treturn nil\n\t}\n}\n\n// DisallowUnknownField causes the Decoder to return an error when the destination\n// is a struct and the input contains object keys which do not match any\n// non-ignored, exported fields in the destination.\nfunc DisallowUnknownField() DecodeOption {\n\treturn func(d *Decoder) error {\n\t\td.disallowUnknownField = true\n\t\treturn nil\n\t}\n}\n\n// DisallowDuplicateKey causes an error when mapping keys that are duplicates\nfunc DisallowDuplicateKey() DecodeOption {\n\treturn func(d *Decoder) error {\n\t\td.disallowDuplicateKey = true\n\t\treturn nil\n\t}\n}\n\n// UseOrderedMap can be interpreted as a map,\n// and uses MapSlice ( ordered map ) aggressively if there is no type specification\nfunc UseOrderedMap() DecodeOption {\n\treturn func(d *Decoder) error {\n\t\td.useOrderedMap = true\n\t\treturn nil\n\t}\n}\n\n// UseJSONUnmarshaler if neither `BytesUnmarshaler` nor `InterfaceUnmarshaler` is implemented\n// and `UnmashalJSON([]byte)error` is implemented, convert the argument from `YAML` to `JSON` and then call it.\nfunc UseJSONUnmarshaler() DecodeOption {\n\treturn func(d *Decoder) error {\n\t\td.useJSONUnmarshaler = true\n\t\treturn nil\n\t}\n}\n\n// CustomUnmarshaler overrides any decoding process for the type specified in generics.\n//\n// NOTE: If RegisterCustomUnmarshaler and CustomUnmarshaler of DecodeOption are specified for the same type,\n// the CustomUnmarshaler specified in DecodeOption takes precedence.\nfunc CustomUnmarshaler[T any](unmarshaler func(*T, []byte) error) DecodeOption {\n\treturn func(d *Decoder) error {\n\t\tvar typ *T\n\t\td.customUnmarshalerMap[reflect.TypeOf(typ)] = func(v interface{}, b []byte) error {\n\t\t\treturn unmarshaler(v.(*T), b)\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// EncodeOption functional option type for Encoder\ntype EncodeOption func(e *Encoder) error\n\n// Indent change indent number\nfunc Indent(spaces int) EncodeOption {\n\treturn func(e *Encoder) error {\n\t\te.indent = spaces\n\t\treturn nil\n\t}\n}\n\n// IndentSequence causes sequence values to be indented the same value as Indent\nfunc IndentSequence(indent bool) EncodeOption {\n\treturn func(e *Encoder) error {\n\t\te.indentSequence = indent\n\t\treturn nil\n\t}\n}\n\n// UseSingleQuote determines if single or double quotes should be preferred for strings.\nfunc UseSingleQuote(sq bool) EncodeOption {\n\treturn func(e *Encoder) error {\n\t\te.singleQuote = sq\n\t\treturn nil\n\t}\n}\n\n// Flow encoding by flow style\nfunc Flow(isFlowStyle bool) EncodeOption {\n\treturn func(e *Encoder) error {\n\t\te.isFlowStyle = isFlowStyle\n\t\treturn nil\n\t}\n}\n\n// UseLiteralStyleIfMultiline causes encoding multiline strings with a literal syntax,\n// no matter what characters they include\nfunc UseLiteralStyleIfMultiline(useLiteralStyleIfMultiline bool) EncodeOption {\n\treturn func(e *Encoder) error {\n\t\te.useLiteralStyleIfMultiline = useLiteralStyleIfMultiline\n\t\treturn nil\n\t}\n}\n\n// JSON encode in JSON format\nfunc JSON() EncodeOption {\n\treturn func(e *Encoder) error {\n\t\te.isJSONStyle = true\n\t\te.isFlowStyle = true\n\t\treturn nil\n\t}\n}\n\n// MarshalAnchor call back if encoder find an anchor during encoding\nfunc MarshalAnchor(callback func(*ast.AnchorNode, interface{}) error) EncodeOption {\n\treturn func(e *Encoder) error {\n\t\te.anchorCallback = callback\n\t\treturn nil\n\t}\n}\n\n// UseJSONMarshaler if neither `BytesMarshaler` nor `InterfaceMarshaler`\n// nor `encoding.TextMarshaler` is implemented and `MarshalJSON()([]byte, error)` is implemented,\n// call `MarshalJSON` to convert the returned `JSON` to `YAML` for processing.\nfunc UseJSONMarshaler() EncodeOption {\n\treturn func(e *Encoder) error {\n\t\te.useJSONMarshaler = true\n\t\treturn nil\n\t}\n}\n\n// CustomMarshaler overrides any encoding process for the type specified in generics.\n//\n// NOTE: If type T implements MarshalYAML for pointer receiver, the type specified in CustomMarshaler must be *T.\n// If RegisterCustomMarshaler and CustomMarshaler of EncodeOption are specified for the same type,\n// the CustomMarshaler specified in EncodeOption takes precedence.\nfunc CustomMarshaler[T any](marshaler func(T) ([]byte, error)) EncodeOption {\n\treturn func(e *Encoder) error {\n\t\tvar typ T\n\t\te.customMarshalerMap[reflect.TypeOf(typ)] = func(v interface{}) ([]byte, error) {\n\t\t\treturn marshaler(v.(T))\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// CommentPosition type of the position for comment.\ntype CommentPosition int\n\nconst (\n\tCommentHeadPosition CommentPosition = CommentPosition(iota)\n\tCommentLinePosition\n\tCommentFootPosition\n)\n\nfunc (p CommentPosition) String() string {\n\tswitch p {\n\tcase CommentHeadPosition:\n\t\treturn \"Head\"\n\tcase CommentLinePosition:\n\t\treturn \"Line\"\n\tcase CommentFootPosition:\n\t\treturn \"Foot\"\n\tdefault:\n\t\treturn \"\"\n\t}\n}\n\n// LineComment create a one-line comment for CommentMap.\nfunc LineComment(text string) *Comment {\n\treturn &Comment{\n\t\tTexts:    []string{text},\n\t\tPosition: CommentLinePosition,\n\t}\n}\n\n// HeadComment create a multiline comment for CommentMap.\nfunc HeadComment(texts ...string) *Comment {\n\treturn &Comment{\n\t\tTexts:    texts,\n\t\tPosition: CommentHeadPosition,\n\t}\n}\n\n// FootComment create a multiline comment for CommentMap.\nfunc FootComment(texts ...string) *Comment {\n\treturn &Comment{\n\t\tTexts:    texts,\n\t\tPosition: CommentFootPosition,\n\t}\n}\n\n// Comment raw data for comment.\ntype Comment struct {\n\tTexts    []string\n\tPosition CommentPosition\n}\n\n// CommentMap map of the position of the comment and the comment information.\ntype CommentMap map[string][]*Comment\n\n// WithComment add a comment using the location and text information given in the CommentMap.\nfunc WithComment(cm CommentMap) EncodeOption {\n\treturn func(e *Encoder) error {\n\t\tcommentMap := map[*Path][]*Comment{}\n\t\tfor k, v := range cm {\n\t\t\tpath, err := PathString(k)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcommentMap[path] = v\n\t\t}\n\t\te.commentMap = commentMap\n\t\treturn nil\n\t}\n}\n\n// CommentToMap apply the position and content of comments in a YAML document to a CommentMap.\nfunc CommentToMap(cm CommentMap) DecodeOption {\n\treturn func(d *Decoder) error {\n\t\tif cm == nil {\n\t\t\treturn ErrInvalidCommentMapValue\n\t\t}\n\t\td.toCommentMap = cm\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/parser/context.go",
    "content": "package parser\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/goccy/go-yaml/token\"\n)\n\n// context context at parsing\ntype context struct {\n\tparent *context\n\tidx    int\n\tsize   int\n\ttokens token.Tokens\n\tmode   Mode\n\tpath   string\n}\n\nvar pathSpecialChars = []string{\n\t\"$\", \"*\", \".\", \"[\", \"]\",\n}\n\nfunc containsPathSpecialChar(path string) bool {\n\tfor _, char := range pathSpecialChars {\n\t\tif strings.Contains(path, char) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc normalizePath(path string) string {\n\tif containsPathSpecialChar(path) {\n\t\treturn fmt.Sprintf(\"'%s'\", path)\n\t}\n\treturn path\n}\n\nfunc (c *context) withChild(path string) *context {\n\tctx := c.copy()\n\tpath = normalizePath(path)\n\tctx.path += fmt.Sprintf(\".%s\", path)\n\treturn ctx\n}\n\nfunc (c *context) withIndex(idx uint) *context {\n\tctx := c.copy()\n\tctx.path += fmt.Sprintf(\"[%d]\", idx)\n\treturn ctx\n}\n\nfunc (c *context) copy() *context {\n\treturn &context{\n\t\tparent: c,\n\t\tidx:    c.idx,\n\t\tsize:   c.size,\n\t\ttokens: append(token.Tokens{}, c.tokens...),\n\t\tmode:   c.mode,\n\t\tpath:   c.path,\n\t}\n}\n\nfunc (c *context) next() bool {\n\treturn c.idx < c.size\n}\n\nfunc (c *context) previousToken() *token.Token {\n\tif c.idx > 0 {\n\t\treturn c.tokens[c.idx-1]\n\t}\n\treturn nil\n}\n\nfunc (c *context) insertToken(idx int, tk *token.Token) {\n\tif c.parent != nil {\n\t\tc.parent.insertToken(idx, tk)\n\t}\n\tif c.size < idx {\n\t\treturn\n\t}\n\tif c.size == idx {\n\t\tcurToken := c.tokens[c.size-1]\n\t\ttk.Next = curToken\n\t\tcurToken.Prev = tk\n\n\t\tc.tokens = append(c.tokens, tk)\n\t\tc.size = len(c.tokens)\n\t\treturn\n\t}\n\n\tcurToken := c.tokens[idx]\n\ttk.Next = curToken\n\tcurToken.Prev = tk\n\n\tc.tokens = append(c.tokens[:idx+1], c.tokens[idx:]...)\n\tc.tokens[idx] = tk\n\tc.size = len(c.tokens)\n}\n\nfunc (c *context) currentToken() *token.Token {\n\tif c.idx >= c.size {\n\t\treturn nil\n\t}\n\treturn c.tokens[c.idx]\n}\n\nfunc (c *context) nextToken() *token.Token {\n\tif c.idx+1 >= c.size {\n\t\treturn nil\n\t}\n\treturn c.tokens[c.idx+1]\n}\n\nfunc (c *context) afterNextToken() *token.Token {\n\tif c.idx+2 >= c.size {\n\t\treturn nil\n\t}\n\treturn c.tokens[c.idx+2]\n}\n\nfunc (c *context) nextNotCommentToken() *token.Token {\n\tfor i := c.idx + 1; i < c.size; i++ {\n\t\ttk := c.tokens[i]\n\t\tif tk.Type == token.CommentType {\n\t\t\tcontinue\n\t\t}\n\t\treturn tk\n\t}\n\treturn nil\n}\n\nfunc (c *context) afterNextNotCommentToken() *token.Token {\n\tnotCommentTokenCount := 0\n\tfor i := c.idx + 1; i < c.size; i++ {\n\t\ttk := c.tokens[i]\n\t\tif tk.Type == token.CommentType {\n\t\t\tcontinue\n\t\t}\n\t\tnotCommentTokenCount++\n\t\tif notCommentTokenCount == 2 {\n\t\t\treturn tk\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (c *context) enabledComment() bool {\n\treturn c.mode&ParseComments != 0\n}\n\nfunc (c *context) isCurrentCommentToken() bool {\n\ttk := c.currentToken()\n\tif tk == nil {\n\t\treturn false\n\t}\n\treturn tk.Type == token.CommentType\n}\n\nfunc (c *context) progressIgnoreComment(num int) {\n\tif c.parent != nil {\n\t\tc.parent.progressIgnoreComment(num)\n\t}\n\tif c.size <= c.idx+num {\n\t\tc.idx = c.size\n\t} else {\n\t\tc.idx += num\n\t}\n}\n\nfunc (c *context) progress(num int) {\n\tif c.isCurrentCommentToken() {\n\t\treturn\n\t}\n\tc.progressIgnoreComment(num)\n}\n\nfunc newContext(tokens token.Tokens, mode Mode) *context {\n\tfilteredTokens := []*token.Token{}\n\tif mode&ParseComments != 0 {\n\t\tfilteredTokens = tokens\n\t} else {\n\t\tfor _, tk := range tokens {\n\t\t\tif tk.Type == token.CommentType {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// keep prev/next reference between tokens containing comments\n\t\t\t// https://github.com/goccy/go-yaml/issues/254\n\t\t\tfilteredTokens = append(filteredTokens, tk)\n\t\t}\n\t}\n\treturn &context{\n\t\tidx:    0,\n\t\tsize:   len(filteredTokens),\n\t\ttokens: token.Tokens(filteredTokens),\n\t\tmode:   mode,\n\t\tpath:   \"$\",\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/parser/parser.go",
    "content": "package parser\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"strings\"\n\n\t\"github.com/goccy/go-yaml/ast\"\n\t\"github.com/goccy/go-yaml/internal/errors\"\n\t\"github.com/goccy/go-yaml/lexer\"\n\t\"github.com/goccy/go-yaml/token\"\n\t\"golang.org/x/xerrors\"\n)\n\ntype parser struct{}\n\nfunc (p *parser) parseMapping(ctx *context) (*ast.MappingNode, error) {\n\tmapTk := ctx.currentToken()\n\tnode := ast.Mapping(mapTk, true)\n\tnode.SetPath(ctx.path)\n\tctx.progress(1) // skip MappingStart token\n\tfor ctx.next() {\n\t\ttk := ctx.currentToken()\n\t\tif tk.Type == token.MappingEndType {\n\t\t\tnode.End = tk\n\t\t\treturn node, nil\n\t\t} else if tk.Type == token.CollectEntryType {\n\t\t\tctx.progress(1)\n\t\t\tcontinue\n\t\t}\n\n\t\tvalue, err := p.parseMappingValue(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to parse mapping value in mapping node\")\n\t\t}\n\t\tmvnode, ok := value.(*ast.MappingValueNode)\n\t\tif !ok {\n\t\t\treturn nil, errors.ErrSyntax(\"failed to parse flow mapping node\", value.GetToken())\n\t\t}\n\t\tnode.Values = append(node.Values, mvnode)\n\t\tctx.progress(1)\n\t}\n\treturn nil, errors.ErrSyntax(\"unterminated flow mapping\", node.GetToken())\n}\n\nfunc (p *parser) parseSequence(ctx *context) (*ast.SequenceNode, error) {\n\tnode := ast.Sequence(ctx.currentToken(), true)\n\tnode.SetPath(ctx.path)\n\tctx.progress(1) // skip SequenceStart token\n\tfor ctx.next() {\n\t\ttk := ctx.currentToken()\n\t\tif tk.Type == token.SequenceEndType {\n\t\t\tnode.End = tk\n\t\t\tbreak\n\t\t} else if tk.Type == token.CollectEntryType {\n\t\t\tctx.progress(1)\n\t\t\tcontinue\n\t\t}\n\n\t\tvalue, err := p.parseToken(ctx.withIndex(uint(len(node.Values))), tk)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to parse sequence value in flow sequence node\")\n\t\t}\n\t\tnode.Values = append(node.Values, value)\n\t\tctx.progress(1)\n\t}\n\treturn node, nil\n}\n\nfunc (p *parser) parseTag(ctx *context) (*ast.TagNode, error) {\n\ttagToken := ctx.currentToken()\n\tnode := ast.Tag(tagToken)\n\tnode.SetPath(ctx.path)\n\tctx.progress(1) // skip tag token\n\tvar (\n\t\tvalue ast.Node\n\t\terr   error\n\t)\n\tswitch token.ReservedTagKeyword(tagToken.Value) {\n\tcase token.MappingTag,\n\t\ttoken.OrderedMapTag:\n\t\tvalue, err = p.parseMapping(ctx)\n\tcase token.IntegerTag,\n\t\ttoken.FloatTag,\n\t\ttoken.StringTag,\n\t\ttoken.BinaryTag,\n\t\ttoken.TimestampTag,\n\t\ttoken.NullTag:\n\t\ttyp := ctx.currentToken().Type\n\t\tif typ == token.LiteralType || typ == token.FoldedType {\n\t\t\tvalue, err = p.parseLiteral(ctx)\n\t\t} else {\n\t\t\tvalue = p.parseScalarValue(ctx.currentToken())\n\t\t}\n\tcase token.SequenceTag,\n\t\ttoken.SetTag:\n\t\terr = errors.ErrSyntax(fmt.Sprintf(\"sorry, currently not supported %s tag\", tagToken.Value), tagToken)\n\tdefault:\n\t\t// custom tag\n\t\tvalue, err = p.parseToken(ctx, ctx.currentToken())\n\t}\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse tag value\")\n\t}\n\tnode.Value = value\n\treturn node, nil\n}\n\nfunc (p *parser) removeLeftSideNewLineCharacter(src string) string {\n\t// CR or LF or CRLF\n\treturn strings.TrimLeft(strings.TrimLeft(strings.TrimLeft(src, \"\\r\"), \"\\n\"), \"\\r\\n\")\n}\n\nfunc (p *parser) existsNewLineCharacter(src string) bool {\n\tif strings.Index(src, \"\\n\") > 0 {\n\t\treturn true\n\t}\n\tif strings.Index(src, \"\\r\") > 0 {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (p *parser) validateMapKey(tk *token.Token) error {\n\tif tk.Type != token.StringType {\n\t\treturn nil\n\t}\n\torigin := p.removeLeftSideNewLineCharacter(tk.Origin)\n\tif p.existsNewLineCharacter(origin) {\n\t\treturn errors.ErrSyntax(\"unexpected key name\", tk)\n\t}\n\treturn nil\n}\n\nfunc (p *parser) createNullToken(base *token.Token) *token.Token {\n\tpos := *(base.Position)\n\tpos.Column++\n\treturn token.New(\"null\", \"null\", &pos)\n}\n\nfunc (p *parser) parseMapValue(ctx *context, key ast.MapKeyNode, colonToken *token.Token) (ast.Node, error) {\n\tnode, err := p.createMapValueNode(ctx, key, colonToken)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to create map value node\")\n\t}\n\tif node != nil && node.GetPath() == \"\" {\n\t\tnode.SetPath(ctx.path)\n\t}\n\treturn node, nil\n}\n\nfunc (p *parser) createMapValueNode(ctx *context, key ast.MapKeyNode, colonToken *token.Token) (ast.Node, error) {\n\ttk := ctx.currentToken()\n\tif tk == nil {\n\t\tnullToken := p.createNullToken(colonToken)\n\t\tctx.insertToken(ctx.idx, nullToken)\n\t\treturn ast.Null(nullToken), nil\n\t}\n\n\tif tk.Position.Column == key.GetToken().Position.Column && tk.Type == token.StringType {\n\t\t// in this case,\n\t\t// ----\n\t\t// key: <value does not defined>\n\t\t// next\n\t\tnullToken := p.createNullToken(colonToken)\n\t\tctx.insertToken(ctx.idx, nullToken)\n\t\treturn ast.Null(nullToken), nil\n\t}\n\n\tif tk.Position.Column < key.GetToken().Position.Column {\n\t\t// in this case,\n\t\t// ----\n\t\t//   key: <value does not defined>\n\t\t// next\n\t\tnullToken := p.createNullToken(colonToken)\n\t\tctx.insertToken(ctx.idx, nullToken)\n\t\treturn ast.Null(nullToken), nil\n\t}\n\n\tvalue, err := p.parseToken(ctx, ctx.currentToken())\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse mapping 'value' node\")\n\t}\n\treturn value, nil\n}\n\nfunc (p *parser) validateMapValue(ctx *context, key, value ast.Node) error {\n\tkeyColumn := key.GetToken().Position.Column\n\tvalueColumn := value.GetToken().Position.Column\n\tif keyColumn != valueColumn {\n\t\treturn nil\n\t}\n\tif value.Type() != ast.StringType {\n\t\treturn nil\n\t}\n\tntk := ctx.nextToken()\n\tif ntk == nil || (ntk.Type != token.MappingValueType && ntk.Type != token.SequenceEntryType) {\n\t\treturn errors.ErrSyntax(\"could not found expected ':' token\", value.GetToken())\n\t}\n\treturn nil\n}\n\nfunc (p *parser) parseMappingValue(ctx *context) (ast.Node, error) {\n\tkey, err := p.parseMapKey(ctx)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse map key\")\n\t}\n\tkeyText := key.GetToken().Value\n\tkey.SetPath(ctx.withChild(keyText).path)\n\tif err := p.validateMapKey(key.GetToken()); err != nil {\n\t\treturn nil, errors.Wrapf(err, \"validate mapping key error\")\n\t}\n\tctx.progress(1)          // progress to mapping value token\n\ttk := ctx.currentToken() // get mapping value token\n\tif tk == nil {\n\t\treturn nil, errors.ErrSyntax(\"unexpected map\", key.GetToken())\n\t}\n\tctx.progress(1) // progress to value token\n\tif err := p.setSameLineCommentIfExists(ctx.withChild(keyText), key); err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to set same line comment to node\")\n\t}\n\tif key.GetComment() != nil {\n\t\t// if current token is comment, GetComment() is not nil.\n\t\t// then progress to value token\n\t\tctx.progressIgnoreComment(1)\n\t}\n\n\tvalue, err := p.parseMapValue(ctx.withChild(keyText), key, tk)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse map value\")\n\t}\n\tif err := p.validateMapValue(ctx, key, value); err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to validate map value\")\n\t}\n\n\tmvnode := ast.MappingValue(tk, key, value)\n\tmvnode.SetPath(ctx.withChild(keyText).path)\n\tnode := ast.Mapping(tk, false, mvnode)\n\tnode.SetPath(ctx.withChild(keyText).path)\n\n\tntk := ctx.nextNotCommentToken()\n\tantk := ctx.afterNextNotCommentToken()\n\tfor antk != nil && antk.Type == token.MappingValueType &&\n\t\tntk.Position.Column == key.GetToken().Position.Column {\n\t\tctx.progressIgnoreComment(1)\n\t\tvalue, err := p.parseToken(ctx, ctx.currentToken())\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to parse mapping node\")\n\t\t}\n\t\tswitch value.Type() {\n\t\tcase ast.MappingType:\n\t\t\tc := value.(*ast.MappingNode)\n\t\t\tcomment := c.GetComment()\n\t\t\tfor idx, v := range c.Values {\n\t\t\t\tif idx == 0 && comment != nil {\n\t\t\t\t\tif err := v.SetComment(comment); err != nil {\n\t\t\t\t\t\treturn nil, errors.Wrapf(err, \"failed to set comment token to node\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnode.Values = append(node.Values, v)\n\t\t\t}\n\t\tcase ast.MappingValueType:\n\t\t\tnode.Values = append(node.Values, value.(*ast.MappingValueNode))\n\t\tdefault:\n\t\t\treturn nil, xerrors.Errorf(\"failed to parse mapping value node node is %s\", value.Type())\n\t\t}\n\t\tntk = ctx.nextNotCommentToken()\n\t\tantk = ctx.afterNextNotCommentToken()\n\t}\n\tif len(node.Values) == 1 {\n\t\tmapKeyCol := mvnode.Key.GetToken().Position.Column\n\t\tcommentTk := ctx.nextToken()\n\t\tif commentTk != nil && commentTk.Type == token.CommentType && mapKeyCol <= commentTk.Position.Column {\n\t\t\t// If the comment is in the same or deeper column as the last element column in map value,\n\t\t\t// treat it as a footer comment for the last element.\n\t\t\tcomment := p.parseFootComment(ctx, mapKeyCol)\n\t\t\tmvnode.FootComment = comment\n\t\t}\n\t\treturn mvnode, nil\n\t}\n\tmapCol := node.GetToken().Position.Column\n\tcommentTk := ctx.nextToken()\n\tif commentTk != nil && commentTk.Type == token.CommentType && mapCol <= commentTk.Position.Column {\n\t\t// If the comment is in the same or deeper column as the last element column in map value,\n\t\t// treat it as a footer comment for the last element.\n\t\tcomment := p.parseFootComment(ctx, mapCol)\n\t\tnode.FootComment = comment\n\t}\n\treturn node, nil\n}\n\nfunc (p *parser) parseSequenceEntry(ctx *context) (*ast.SequenceNode, error) {\n\ttk := ctx.currentToken()\n\tsequenceNode := ast.Sequence(tk, false)\n\tsequenceNode.SetPath(ctx.path)\n\tcurColumn := tk.Position.Column\n\tfor tk.Type == token.SequenceEntryType {\n\t\tctx.progress(1) // skip sequence token\n\t\ttk = ctx.currentToken()\n\t\tif tk == nil {\n\t\t\treturn nil, errors.ErrSyntax(\"empty sequence entry\", ctx.previousToken())\n\t\t}\n\t\tvar comment *ast.CommentGroupNode\n\t\tif tk.Type == token.CommentType {\n\t\t\tcomment = p.parseCommentOnly(ctx)\n\t\t\ttk = ctx.currentToken()\n\t\t\tif tk.Type != token.SequenceEntryType {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tctx.progress(1) // skip sequence token\n\t\t}\n\t\tvalue, err := p.parseToken(ctx.withIndex(uint(len(sequenceNode.Values))), ctx.currentToken())\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to parse sequence\")\n\t\t}\n\t\tif comment != nil {\n\t\t\tcomment.SetPath(ctx.withIndex(uint(len(sequenceNode.Values))).path)\n\t\t\tsequenceNode.ValueHeadComments = append(sequenceNode.ValueHeadComments, comment)\n\t\t} else {\n\t\t\tsequenceNode.ValueHeadComments = append(sequenceNode.ValueHeadComments, nil)\n\t\t}\n\t\tsequenceNode.Values = append(sequenceNode.Values, value)\n\t\ttk = ctx.nextNotCommentToken()\n\t\tif tk == nil {\n\t\t\tbreak\n\t\t}\n\t\tif tk.Type != token.SequenceEntryType {\n\t\t\tbreak\n\t\t}\n\t\tif tk.Position.Column != curColumn {\n\t\t\tbreak\n\t\t}\n\t\tctx.progressIgnoreComment(1)\n\t}\n\tcommentTk := ctx.nextToken()\n\tif commentTk != nil && commentTk.Type == token.CommentType && curColumn <= commentTk.Position.Column {\n\t\t// If the comment is in the same or deeper column as the last element column in sequence value,\n\t\t// treat it as a footer comment for the last element.\n\t\tcomment := p.parseFootComment(ctx, curColumn)\n\t\tsequenceNode.FootComment = comment\n\t}\n\treturn sequenceNode, nil\n}\n\nfunc (p *parser) parseAnchor(ctx *context) (*ast.AnchorNode, error) {\n\ttk := ctx.currentToken()\n\tanchor := ast.Anchor(tk)\n\tanchor.SetPath(ctx.path)\n\tntk := ctx.nextToken()\n\tif ntk == nil {\n\t\treturn nil, errors.ErrSyntax(\"unexpected anchor. anchor name is undefined\", tk)\n\t}\n\tctx.progress(1) // skip anchor token\n\tname, err := p.parseToken(ctx, ctx.currentToken())\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parser anchor name node\")\n\t}\n\tanchor.Name = name\n\tntk = ctx.nextToken()\n\tif ntk == nil {\n\t\treturn nil, errors.ErrSyntax(\"unexpected anchor. anchor value is undefined\", ctx.currentToken())\n\t}\n\tctx.progress(1)\n\tvalue, err := p.parseToken(ctx, ctx.currentToken())\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parser anchor name node\")\n\t}\n\tanchor.Value = value\n\treturn anchor, nil\n}\n\nfunc (p *parser) parseAlias(ctx *context) (*ast.AliasNode, error) {\n\ttk := ctx.currentToken()\n\talias := ast.Alias(tk)\n\talias.SetPath(ctx.path)\n\tntk := ctx.nextToken()\n\tif ntk == nil {\n\t\treturn nil, errors.ErrSyntax(\"unexpected alias. alias name is undefined\", tk)\n\t}\n\tctx.progress(1) // skip alias token\n\tname, err := p.parseToken(ctx, ctx.currentToken())\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parser alias name node\")\n\t}\n\talias.Value = name\n\treturn alias, nil\n}\n\nfunc (p *parser) parseMapKey(ctx *context) (ast.MapKeyNode, error) {\n\ttk := ctx.currentToken()\n\tif value := p.parseScalarValue(tk); value != nil {\n\t\treturn value, nil\n\t}\n\tswitch tk.Type {\n\tcase token.MergeKeyType:\n\t\treturn ast.MergeKey(tk), nil\n\tcase token.MappingKeyType:\n\t\treturn p.parseMappingKey(ctx)\n\t}\n\treturn nil, errors.ErrSyntax(\"unexpected mapping key\", tk)\n}\n\nfunc (p *parser) parseStringValue(tk *token.Token) *ast.StringNode {\n\tswitch tk.Type {\n\tcase token.StringType,\n\t\ttoken.SingleQuoteType,\n\t\ttoken.DoubleQuoteType:\n\t\treturn ast.String(tk)\n\t}\n\treturn nil\n}\n\nfunc (p *parser) parseScalarValueWithComment(ctx *context, tk *token.Token) (ast.ScalarNode, error) {\n\tnode := p.parseScalarValue(tk)\n\tif node == nil {\n\t\treturn nil, nil\n\t}\n\tnode.SetPath(ctx.path)\n\tif p.isSameLineComment(ctx.nextToken(), node) {\n\t\tctx.progress(1)\n\t\tif err := p.setSameLineCommentIfExists(ctx, node); err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to set same line comment to node\")\n\t\t}\n\t}\n\treturn node, nil\n}\n\nfunc (p *parser) parseScalarValue(tk *token.Token) ast.ScalarNode {\n\tif node := p.parseStringValue(tk); node != nil {\n\t\treturn node\n\t}\n\tswitch tk.Type {\n\tcase token.NullType:\n\t\treturn ast.Null(tk)\n\tcase token.BoolType:\n\t\treturn ast.Bool(tk)\n\tcase token.IntegerType,\n\t\ttoken.BinaryIntegerType,\n\t\ttoken.OctetIntegerType,\n\t\ttoken.HexIntegerType:\n\t\treturn ast.Integer(tk)\n\tcase token.FloatType:\n\t\treturn ast.Float(tk)\n\tcase token.InfinityType:\n\t\treturn ast.Infinity(tk)\n\tcase token.NanType:\n\t\treturn ast.Nan(tk)\n\t}\n\treturn nil\n}\n\nfunc (p *parser) parseDirective(ctx *context) (*ast.DirectiveNode, error) {\n\tnode := ast.Directive(ctx.currentToken())\n\tctx.progress(1) // skip directive token\n\tvalue, err := p.parseToken(ctx, ctx.currentToken())\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse directive value\")\n\t}\n\tnode.Value = value\n\tctx.progress(1)\n\ttk := ctx.currentToken()\n\tif tk == nil {\n\t\t// Since current token is nil, use the previous token to specify\n\t\t// the syntax error location.\n\t\treturn nil, errors.ErrSyntax(\"unexpected directive value. document not started\", ctx.previousToken())\n\t}\n\tif tk.Type != token.DocumentHeaderType {\n\t\treturn nil, errors.ErrSyntax(\"unexpected directive value. document not started\", ctx.currentToken())\n\t}\n\treturn node, nil\n}\n\nfunc (p *parser) parseLiteral(ctx *context) (*ast.LiteralNode, error) {\n\tnode := ast.Literal(ctx.currentToken())\n\tctx.progress(1) // skip literal/folded token\n\n\ttk := ctx.currentToken()\n\tvar comment *ast.CommentGroupNode\n\tif tk.Type == token.CommentType {\n\t\tcomment = p.parseCommentOnly(ctx)\n\t\tcomment.SetPath(ctx.path)\n\t\tif err := node.SetComment(comment); err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to set comment to literal\")\n\t\t}\n\t\ttk = ctx.currentToken()\n\t}\n\tvalue, err := p.parseToken(ctx, tk)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse literal/folded value\")\n\t}\n\tsnode, ok := value.(*ast.StringNode)\n\tif !ok {\n\t\treturn nil, errors.ErrSyntax(\"unexpected token. required string token\", value.GetToken())\n\t}\n\tnode.Value = snode\n\treturn node, nil\n}\n\nfunc (p *parser) isSameLineComment(tk *token.Token, node ast.Node) bool {\n\tif tk == nil {\n\t\treturn false\n\t}\n\tif tk.Type != token.CommentType {\n\t\treturn false\n\t}\n\treturn tk.Position.Line == node.GetToken().Position.Line\n}\n\nfunc (p *parser) setSameLineCommentIfExists(ctx *context, node ast.Node) error {\n\ttk := ctx.currentToken()\n\tif !p.isSameLineComment(tk, node) {\n\t\treturn nil\n\t}\n\tcomment := ast.CommentGroup([]*token.Token{tk})\n\tcomment.SetPath(ctx.path)\n\tif err := node.SetComment(comment); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to set comment token to ast.Node\")\n\t}\n\treturn nil\n}\n\nfunc (p *parser) parseDocument(ctx *context) (*ast.DocumentNode, error) {\n\tstartTk := ctx.currentToken()\n\tctx.progress(1) // skip document header token\n\tbody, err := p.parseToken(ctx, ctx.currentToken())\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse document body\")\n\t}\n\tnode := ast.Document(startTk, body)\n\tif ntk := ctx.nextToken(); ntk != nil && ntk.Type == token.DocumentEndType {\n\t\tnode.End = ntk\n\t\tctx.progress(1)\n\t}\n\treturn node, nil\n}\n\nfunc (p *parser) parseCommentOnly(ctx *context) *ast.CommentGroupNode {\n\tcommentTokens := []*token.Token{}\n\tfor {\n\t\ttk := ctx.currentToken()\n\t\tif tk == nil {\n\t\t\tbreak\n\t\t}\n\t\tif tk.Type != token.CommentType {\n\t\t\tbreak\n\t\t}\n\t\tcommentTokens = append(commentTokens, tk)\n\t\tctx.progressIgnoreComment(1) // skip comment token\n\t}\n\treturn ast.CommentGroup(commentTokens)\n}\n\nfunc (p *parser) parseFootComment(ctx *context, col int) *ast.CommentGroupNode {\n\tcommentTokens := []*token.Token{}\n\tfor {\n\t\tctx.progressIgnoreComment(1)\n\t\tcommentTokens = append(commentTokens, ctx.currentToken())\n\n\t\tnextTk := ctx.nextToken()\n\t\tif nextTk == nil {\n\t\t\tbreak\n\t\t}\n\t\tif nextTk.Type != token.CommentType {\n\t\t\tbreak\n\t\t}\n\t\tif col > nextTk.Position.Column {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn ast.CommentGroup(commentTokens)\n}\n\nfunc (p *parser) parseComment(ctx *context) (ast.Node, error) {\n\tgroup := p.parseCommentOnly(ctx)\n\tnode, err := p.parseToken(ctx, ctx.currentToken())\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse node after comment\")\n\t}\n\tif node == nil {\n\t\treturn group, nil\n\t}\n\tgroup.SetPath(node.GetPath())\n\tif err := node.SetComment(group); err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to set comment token to node\")\n\t}\n\treturn node, nil\n}\n\nfunc (p *parser) parseMappingKey(ctx *context) (*ast.MappingKeyNode, error) {\n\tkeyTk := ctx.currentToken()\n\tnode := ast.MappingKey(keyTk)\n\tnode.SetPath(ctx.path)\n\tctx.progress(1) // skip mapping key token\n\tvalue, err := p.parseToken(ctx.withChild(keyTk.Value), ctx.currentToken())\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse map key\")\n\t}\n\tnode.Value = value\n\treturn node, nil\n}\n\nfunc (p *parser) parseToken(ctx *context, tk *token.Token) (ast.Node, error) {\n\tnode, err := p.createNodeFromToken(ctx, tk)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to create node from token\")\n\t}\n\tif node != nil && node.GetPath() == \"\" {\n\t\tnode.SetPath(ctx.path)\n\t}\n\treturn node, nil\n}\n\nfunc (p *parser) createNodeFromToken(ctx *context, tk *token.Token) (ast.Node, error) {\n\tif tk == nil {\n\t\treturn nil, nil\n\t}\n\tif tk.NextType() == token.MappingValueType {\n\t\tnode, err := p.parseMappingValue(ctx)\n\t\treturn node, err\n\t}\n\tnode, err := p.parseScalarValueWithComment(ctx, tk)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse scalar value\")\n\t}\n\tif node != nil {\n\t\treturn node, nil\n\t}\n\tswitch tk.Type {\n\tcase token.CommentType:\n\t\treturn p.parseComment(ctx)\n\tcase token.MappingKeyType:\n\t\treturn p.parseMappingKey(ctx)\n\tcase token.DocumentHeaderType:\n\t\treturn p.parseDocument(ctx)\n\tcase token.MappingStartType:\n\t\treturn p.parseMapping(ctx)\n\tcase token.SequenceStartType:\n\t\treturn p.parseSequence(ctx)\n\tcase token.SequenceEntryType:\n\t\treturn p.parseSequenceEntry(ctx)\n\tcase token.AnchorType:\n\t\treturn p.parseAnchor(ctx)\n\tcase token.AliasType:\n\t\treturn p.parseAlias(ctx)\n\tcase token.DirectiveType:\n\t\treturn p.parseDirective(ctx)\n\tcase token.TagType:\n\t\treturn p.parseTag(ctx)\n\tcase token.LiteralType, token.FoldedType:\n\t\treturn p.parseLiteral(ctx)\n\t}\n\treturn nil, nil\n}\n\nfunc (p *parser) parse(tokens token.Tokens, mode Mode) (*ast.File, error) {\n\tctx := newContext(tokens, mode)\n\tfile := &ast.File{Docs: []*ast.DocumentNode{}}\n\tfor ctx.next() {\n\t\tnode, err := p.parseToken(ctx, ctx.currentToken())\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to parse\")\n\t\t}\n\t\tctx.progressIgnoreComment(1)\n\t\tif node == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif doc, ok := node.(*ast.DocumentNode); ok {\n\t\t\tfile.Docs = append(file.Docs, doc)\n\t\t} else {\n\t\t\tfile.Docs = append(file.Docs, ast.Document(nil, node))\n\t\t}\n\t}\n\treturn file, nil\n}\n\ntype Mode uint\n\nconst (\n\tParseComments Mode = 1 << iota // parse comments and add them to AST\n)\n\n// ParseBytes parse from byte slice, and returns ast.File\nfunc ParseBytes(bytes []byte, mode Mode) (*ast.File, error) {\n\ttokens := lexer.Tokenize(string(bytes))\n\tf, err := Parse(tokens, mode)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse\")\n\t}\n\treturn f, nil\n}\n\n// Parse parse from token instances, and returns ast.File\nfunc Parse(tokens token.Tokens, mode Mode) (*ast.File, error) {\n\tvar p parser\n\tf, err := p.parse(tokens, mode)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse\")\n\t}\n\treturn f, nil\n}\n\n// Parse parse from filename, and returns ast.File\nfunc ParseFile(filename string, mode Mode) (*ast.File, error) {\n\tfile, err := ioutil.ReadFile(filename)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to read file: %s\", filename)\n\t}\n\tf, err := ParseBytes(file, mode)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse\")\n\t}\n\tf.Name = filename\n\treturn f, nil\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/path.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/goccy/go-yaml/ast\"\n\t\"github.com/goccy/go-yaml/internal/errors\"\n\t\"github.com/goccy/go-yaml/parser\"\n\t\"github.com/goccy/go-yaml/printer\"\n)\n\n// PathString create Path from string\n//\n// YAMLPath rule\n// $     : the root object/element\n// .     : child operator\n// ..    : recursive descent\n// [num] : object/element of array by number\n// [*]   : all objects/elements for array.\n//\n// If you want to use reserved characters such as `.` and `*` as a key name,\n// enclose them in single quotation as follows ( $.foo.'bar.baz-*'.hoge ).\n// If you want to use a single quote with reserved characters, escape it with `\\` ( $.foo.'bar.baz\\'s value'.hoge ).\nfunc PathString(s string) (*Path, error) {\n\tbuf := []rune(s)\n\tlength := len(buf)\n\tcursor := 0\n\tbuilder := &PathBuilder{}\n\tfor cursor < length {\n\t\tc := buf[cursor]\n\t\tswitch c {\n\t\tcase '$':\n\t\t\tbuilder = builder.Root()\n\t\t\tcursor++\n\t\tcase '.':\n\t\t\tb, buf, c, err := parsePathDot(builder, buf, cursor)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to parse path of dot\")\n\t\t\t}\n\t\t\tlength = len(buf)\n\t\t\tbuilder = b\n\t\t\tcursor = c\n\t\tcase '[':\n\t\t\tb, buf, c, err := parsePathIndex(builder, buf, cursor)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to parse path of index\")\n\t\t\t}\n\t\t\tlength = len(buf)\n\t\t\tbuilder = b\n\t\t\tcursor = c\n\t\tdefault:\n\t\t\treturn nil, errors.Wrapf(ErrInvalidPathString, \"invalid path at %d\", cursor)\n\t\t}\n\t}\n\treturn builder.Build(), nil\n}\n\nfunc parsePathRecursive(b *PathBuilder, buf []rune, cursor int) (*PathBuilder, []rune, int, error) {\n\tlength := len(buf)\n\tcursor += 2 // skip .. characters\n\tstart := cursor\n\tfor ; cursor < length; cursor++ {\n\t\tc := buf[cursor]\n\t\tswitch c {\n\t\tcase '$':\n\t\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"specified '$' after '..' character\")\n\t\tcase '*':\n\t\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"specified '*' after '..' character\")\n\t\tcase '.', '[':\n\t\t\tgoto end\n\t\tcase ']':\n\t\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"specified ']' after '..' character\")\n\t\t}\n\t}\nend:\n\tif start == cursor {\n\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"not found recursive selector\")\n\t}\n\treturn b.Recursive(string(buf[start:cursor])), buf, cursor, nil\n}\n\nfunc parsePathDot(b *PathBuilder, buf []rune, cursor int) (*PathBuilder, []rune, int, error) {\n\tlength := len(buf)\n\tif cursor+1 < length && buf[cursor+1] == '.' {\n\t\tb, buf, c, err := parsePathRecursive(b, buf, cursor)\n\t\tif err != nil {\n\t\t\treturn nil, nil, 0, errors.Wrapf(err, \"failed to parse path of recursive\")\n\t\t}\n\t\treturn b, buf, c, nil\n\t}\n\tcursor++ // skip . character\n\tstart := cursor\n\n\t// if started single quote, looking for end single quote char\n\tif cursor < length && buf[cursor] == '\\'' {\n\t\treturn parseQuotedKey(b, buf, cursor)\n\t}\n\tfor ; cursor < length; cursor++ {\n\t\tc := buf[cursor]\n\t\tswitch c {\n\t\tcase '$':\n\t\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"specified '$' after '.' character\")\n\t\tcase '*':\n\t\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"specified '*' after '.' character\")\n\t\tcase '.', '[':\n\t\t\tgoto end\n\t\tcase ']':\n\t\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"specified ']' after '.' character\")\n\t\t}\n\t}\nend:\n\tif start == cursor {\n\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"cloud not find by empty key\")\n\t}\n\treturn b.child(string(buf[start:cursor])), buf, cursor, nil\n}\n\nfunc parseQuotedKey(b *PathBuilder, buf []rune, cursor int) (*PathBuilder, []rune, int, error) {\n\tcursor++ // skip single quote\n\tstart := cursor\n\tlength := len(buf)\n\tvar foundEndDelim bool\n\tfor ; cursor < length; cursor++ {\n\t\tswitch buf[cursor] {\n\t\tcase '\\\\':\n\t\t\tbuf = append(append([]rune{}, buf[:cursor]...), buf[cursor+1:]...)\n\t\t\tlength = len(buf)\n\t\tcase '\\'':\n\t\t\tfoundEndDelim = true\n\t\t\tgoto end\n\t\t}\n\t}\nend:\n\tif !foundEndDelim {\n\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"could not find end delimiter for key\")\n\t}\n\tif start == cursor {\n\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"could not find by empty key\")\n\t}\n\tselector := buf[start:cursor]\n\tcursor++\n\tif cursor < length {\n\t\tswitch buf[cursor] {\n\t\tcase '$':\n\t\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"specified '$' after '.' character\")\n\t\tcase '*':\n\t\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"specified '*' after '.' character\")\n\t\tcase ']':\n\t\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"specified ']' after '.' character\")\n\t\t}\n\t}\n\treturn b.child(string(selector)), buf, cursor, nil\n}\n\nfunc parsePathIndex(b *PathBuilder, buf []rune, cursor int) (*PathBuilder, []rune, int, error) {\n\tlength := len(buf)\n\tcursor++ // skip '[' character\n\tif length <= cursor {\n\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"unexpected end of YAML Path\")\n\t}\n\tc := buf[cursor]\n\tswitch c {\n\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*':\n\t\tstart := cursor\n\t\tcursor++\n\t\tfor ; cursor < length; cursor++ {\n\t\t\tc := buf[cursor]\n\t\t\tswitch c {\n\t\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tif buf[cursor] != ']' {\n\t\t\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"invalid character %s at %d\", string(buf[cursor]), cursor)\n\t\t}\n\t\tnumOrAll := string(buf[start:cursor])\n\t\tif numOrAll == \"*\" {\n\t\t\treturn b.IndexAll(), buf, cursor + 1, nil\n\t\t}\n\t\tnum, err := strconv.ParseInt(numOrAll, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, nil, 0, errors.Wrapf(err, \"failed to parse number\")\n\t\t}\n\t\treturn b.Index(uint(num)), buf, cursor + 1, nil\n\t}\n\treturn nil, nil, 0, errors.Wrapf(ErrInvalidPathString, \"invalid character %s at %d\", c, cursor)\n}\n\n// Path represent YAMLPath ( like a JSONPath ).\ntype Path struct {\n\tnode pathNode\n}\n\n// String path to text.\nfunc (p *Path) String() string {\n\treturn p.node.String()\n}\n\n// Read decode from r and set extracted value by YAMLPath to v.\nfunc (p *Path) Read(r io.Reader, v interface{}) error {\n\tnode, err := p.ReadNode(r)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to read node\")\n\t}\n\tif err := Unmarshal([]byte(node.String()), v); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to unmarshal\")\n\t}\n\treturn nil\n}\n\n// ReadNode create AST from r and extract node by YAMLPath.\nfunc (p *Path) ReadNode(r io.Reader) (ast.Node, error) {\n\tif p.node == nil {\n\t\treturn nil, ErrInvalidPath\n\t}\n\tvar buf bytes.Buffer\n\tif _, err := io.Copy(&buf, r); err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to copy from reader\")\n\t}\n\tf, err := parser.ParseBytes(buf.Bytes(), 0)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to parse yaml\")\n\t}\n\tnode, err := p.FilterFile(f)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to filter from ast.File\")\n\t}\n\treturn node, nil\n}\n\n// Filter filter from target by YAMLPath and set it to v.\nfunc (p *Path) Filter(target, v interface{}) error {\n\tb, err := Marshal(target)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to marshal target value\")\n\t}\n\tif err := p.Read(bytes.NewBuffer(b), v); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to read\")\n\t}\n\treturn nil\n}\n\n// FilterFile filter from ast.File by YAMLPath.\nfunc (p *Path) FilterFile(f *ast.File) (ast.Node, error) {\n\tfor _, doc := range f.Docs {\n\t\tnode, err := p.FilterNode(doc.Body)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to filter node by path ( %s )\", p.node)\n\t\t}\n\t\tif node != nil {\n\t\t\treturn node, nil\n\t\t}\n\t}\n\treturn nil, errors.Wrapf(ErrNotFoundNode, \"failed to find path ( %s )\", p.node)\n}\n\n// FilterNode filter from node by YAMLPath.\nfunc (p *Path) FilterNode(node ast.Node) (ast.Node, error) {\n\tn, err := p.node.filter(node)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to filter node by path ( %s )\", p.node)\n\t}\n\treturn n, nil\n}\n\n// MergeFromReader merge YAML text into ast.File.\nfunc (p *Path) MergeFromReader(dst *ast.File, src io.Reader) error {\n\tvar buf bytes.Buffer\n\tif _, err := io.Copy(&buf, src); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to copy from reader\")\n\t}\n\tfile, err := parser.ParseBytes(buf.Bytes(), 0)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to parse\")\n\t}\n\tif err := p.MergeFromFile(dst, file); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to merge file\")\n\t}\n\treturn nil\n}\n\n// MergeFromFile merge ast.File into ast.File.\nfunc (p *Path) MergeFromFile(dst *ast.File, src *ast.File) error {\n\tbase, err := p.FilterFile(dst)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to filter file\")\n\t}\n\tfor _, doc := range src.Docs {\n\t\tif err := ast.Merge(base, doc); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to merge\")\n\t\t}\n\t}\n\treturn nil\n}\n\n// MergeFromNode merge ast.Node into ast.File.\nfunc (p *Path) MergeFromNode(dst *ast.File, src ast.Node) error {\n\tbase, err := p.FilterFile(dst)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to filter file\")\n\t}\n\tif err := ast.Merge(base, src); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to merge\")\n\t}\n\treturn nil\n}\n\n// ReplaceWithReader replace ast.File with io.Reader.\nfunc (p *Path) ReplaceWithReader(dst *ast.File, src io.Reader) error {\n\tvar buf bytes.Buffer\n\tif _, err := io.Copy(&buf, src); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to copy from reader\")\n\t}\n\tfile, err := parser.ParseBytes(buf.Bytes(), 0)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"failed to parse\")\n\t}\n\tif err := p.ReplaceWithFile(dst, file); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to replace file\")\n\t}\n\treturn nil\n}\n\n// ReplaceWithFile replace ast.File with ast.File.\nfunc (p *Path) ReplaceWithFile(dst *ast.File, src *ast.File) error {\n\tfor _, doc := range src.Docs {\n\t\tif err := p.ReplaceWithNode(dst, doc); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to replace file by path ( %s )\", p.node)\n\t\t}\n\t}\n\treturn nil\n}\n\n// ReplaceNode replace ast.File with ast.Node.\nfunc (p *Path) ReplaceWithNode(dst *ast.File, node ast.Node) error {\n\tfor _, doc := range dst.Docs {\n\t\tif node.Type() == ast.DocumentType {\n\t\t\tnode = node.(*ast.DocumentNode).Body\n\t\t}\n\t\tif err := p.node.replace(doc.Body, node); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to replace node by path ( %s )\", p.node)\n\t\t}\n\t}\n\treturn nil\n}\n\n// AnnotateSource add annotation to passed source ( see section 5.1 in README.md ).\nfunc (p *Path) AnnotateSource(source []byte, colored bool) ([]byte, error) {\n\tfile, err := parser.ParseBytes([]byte(source), 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tnode, err := p.FilterFile(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar pp printer.Printer\n\treturn []byte(pp.PrintErrorToken(node.GetToken(), colored)), nil\n}\n\n// PathBuilder represent builder for YAMLPath.\ntype PathBuilder struct {\n\troot *rootNode\n\tnode pathNode\n}\n\n// Root add '$' to current path.\nfunc (b *PathBuilder) Root() *PathBuilder {\n\troot := newRootNode()\n\treturn &PathBuilder{root: root, node: root}\n}\n\n// IndexAll add '[*]' to current path.\nfunc (b *PathBuilder) IndexAll() *PathBuilder {\n\tb.node = b.node.chain(newIndexAllNode())\n\treturn b\n}\n\n// Recursive add '..selector' to current path.\nfunc (b *PathBuilder) Recursive(selector string) *PathBuilder {\n\tb.node = b.node.chain(newRecursiveNode(selector))\n\treturn b\n}\n\nfunc (b *PathBuilder) containsReservedPathCharacters(path string) bool {\n\tif strings.Contains(path, \".\") {\n\t\treturn true\n\t}\n\tif strings.Contains(path, \"*\") {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (b *PathBuilder) enclosedSingleQuote(name string) bool {\n\treturn strings.HasPrefix(name, \"'\") && strings.HasSuffix(name, \"'\")\n}\n\nfunc (b *PathBuilder) normalizeSelectorName(name string) string {\n\tif b.enclosedSingleQuote(name) {\n\t\t// already escaped name\n\t\treturn name\n\t}\n\tif b.containsReservedPathCharacters(name) {\n\t\tescapedName := strings.ReplaceAll(name, `'`, `\\'`)\n\t\treturn \"'\" + escapedName + \"'\"\n\t}\n\treturn name\n}\n\nfunc (b *PathBuilder) child(name string) *PathBuilder {\n\tb.node = b.node.chain(newSelectorNode(name))\n\treturn b\n}\n\n// Child add '.name' to current path.\nfunc (b *PathBuilder) Child(name string) *PathBuilder {\n\treturn b.child(b.normalizeSelectorName(name))\n}\n\n// Index add '[idx]' to current path.\nfunc (b *PathBuilder) Index(idx uint) *PathBuilder {\n\tb.node = b.node.chain(newIndexNode(idx))\n\treturn b\n}\n\n// Build build YAMLPath.\nfunc (b *PathBuilder) Build() *Path {\n\treturn &Path{node: b.root}\n}\n\ntype pathNode interface {\n\tfmt.Stringer\n\tchain(pathNode) pathNode\n\tfilter(ast.Node) (ast.Node, error)\n\treplace(ast.Node, ast.Node) error\n}\n\ntype basePathNode struct {\n\tchild pathNode\n}\n\nfunc (n *basePathNode) chain(node pathNode) pathNode {\n\tn.child = node\n\treturn node\n}\n\ntype rootNode struct {\n\t*basePathNode\n}\n\nfunc newRootNode() *rootNode {\n\treturn &rootNode{basePathNode: &basePathNode{}}\n}\n\nfunc (n *rootNode) String() string {\n\ts := \"$\"\n\tif n.child != nil {\n\t\ts += n.child.String()\n\t}\n\treturn s\n}\n\nfunc (n *rootNode) filter(node ast.Node) (ast.Node, error) {\n\tif n.child == nil {\n\t\treturn nil, nil\n\t}\n\tfiltered, err := n.child.filter(node)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to filter\")\n\t}\n\treturn filtered, nil\n}\n\nfunc (n *rootNode) replace(node ast.Node, target ast.Node) error {\n\tif n.child == nil {\n\t\treturn nil\n\t}\n\tif err := n.child.replace(node, target); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t}\n\treturn nil\n}\n\ntype selectorNode struct {\n\t*basePathNode\n\tselector string\n}\n\nfunc newSelectorNode(selector string) *selectorNode {\n\treturn &selectorNode{\n\t\tbasePathNode: &basePathNode{},\n\t\tselector:     selector,\n\t}\n}\n\nfunc (n *selectorNode) filter(node ast.Node) (ast.Node, error) {\n\tswitch node.Type() {\n\tcase ast.MappingType:\n\t\tfor _, value := range node.(*ast.MappingNode).Values {\n\t\t\tkey := value.Key.GetToken().Value\n\t\t\tif key == n.selector {\n\t\t\t\tif n.child == nil {\n\t\t\t\t\treturn value.Value, nil\n\t\t\t\t}\n\t\t\t\tfiltered, err := n.child.filter(value.Value)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, errors.Wrapf(err, \"failed to filter\")\n\t\t\t\t}\n\t\t\t\treturn filtered, nil\n\t\t\t}\n\t\t}\n\tcase ast.MappingValueType:\n\t\tvalue := node.(*ast.MappingValueNode)\n\t\tkey := value.Key.GetToken().Value\n\t\tif key == n.selector {\n\t\t\tif n.child == nil {\n\t\t\t\treturn value.Value, nil\n\t\t\t}\n\t\t\tfiltered, err := n.child.filter(value.Value)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to filter\")\n\t\t\t}\n\t\t\treturn filtered, nil\n\t\t}\n\tdefault:\n\t\treturn nil, errors.Wrapf(ErrInvalidQuery, \"expected node type is map or map value. but got %s\", node.Type())\n\t}\n\treturn nil, nil\n}\n\nfunc (n *selectorNode) replaceMapValue(value *ast.MappingValueNode, target ast.Node) error {\n\tkey := value.Key.GetToken().Value\n\tif key != n.selector {\n\t\treturn nil\n\t}\n\tif n.child == nil {\n\t\tif err := value.Replace(target); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t\t}\n\t} else {\n\t\tif err := n.child.replace(value.Value, target); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (n *selectorNode) replace(node ast.Node, target ast.Node) error {\n\tswitch node.Type() {\n\tcase ast.MappingType:\n\t\tfor _, value := range node.(*ast.MappingNode).Values {\n\t\t\tif err := n.replaceMapValue(value, target); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to replace map value\")\n\t\t\t}\n\t\t}\n\tcase ast.MappingValueType:\n\t\tvalue := node.(*ast.MappingValueNode)\n\t\tif err := n.replaceMapValue(value, target); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to replace map value\")\n\t\t}\n\tdefault:\n\t\treturn errors.Wrapf(ErrInvalidQuery, \"expected node type is map or map value. but got %s\", node.Type())\n\t}\n\treturn nil\n}\n\nfunc (n *selectorNode) String() string {\n\ts := fmt.Sprintf(\".%s\", n.selector)\n\tif n.child != nil {\n\t\ts += n.child.String()\n\t}\n\treturn s\n}\n\ntype indexNode struct {\n\t*basePathNode\n\tselector uint\n}\n\nfunc newIndexNode(selector uint) *indexNode {\n\treturn &indexNode{\n\t\tbasePathNode: &basePathNode{},\n\t\tselector:     selector,\n\t}\n}\n\nfunc (n *indexNode) filter(node ast.Node) (ast.Node, error) {\n\tif node.Type() != ast.SequenceType {\n\t\treturn nil, errors.Wrapf(ErrInvalidQuery, \"expected sequence type node. but got %s\", node.Type())\n\t}\n\tsequence := node.(*ast.SequenceNode)\n\tif n.selector >= uint(len(sequence.Values)) {\n\t\treturn nil, errors.Wrapf(ErrInvalidQuery, \"expected index is %d. but got sequences has %d items\", n.selector, sequence.Values)\n\t}\n\tvalue := sequence.Values[n.selector]\n\tif n.child == nil {\n\t\treturn value, nil\n\t}\n\tfiltered, err := n.child.filter(value)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to filter\")\n\t}\n\treturn filtered, nil\n}\n\nfunc (n *indexNode) replace(node ast.Node, target ast.Node) error {\n\tif node.Type() != ast.SequenceType {\n\t\treturn errors.Wrapf(ErrInvalidQuery, \"expected sequence type node. but got %s\", node.Type())\n\t}\n\tsequence := node.(*ast.SequenceNode)\n\tif n.selector >= uint(len(sequence.Values)) {\n\t\treturn errors.Wrapf(ErrInvalidQuery, \"expected index is %d. but got sequences has %d items\", n.selector, sequence.Values)\n\t}\n\tif n.child == nil {\n\t\tif err := sequence.Replace(int(n.selector), target); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t\t}\n\t\treturn nil\n\t}\n\tif err := n.child.replace(sequence.Values[n.selector], target); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t}\n\treturn nil\n}\n\nfunc (n *indexNode) String() string {\n\ts := fmt.Sprintf(\"[%d]\", n.selector)\n\tif n.child != nil {\n\t\ts += n.child.String()\n\t}\n\treturn s\n}\n\ntype indexAllNode struct {\n\t*basePathNode\n}\n\nfunc newIndexAllNode() *indexAllNode {\n\treturn &indexAllNode{\n\t\tbasePathNode: &basePathNode{},\n\t}\n}\n\nfunc (n *indexAllNode) String() string {\n\ts := \"[*]\"\n\tif n.child != nil {\n\t\ts += n.child.String()\n\t}\n\treturn s\n}\n\nfunc (n *indexAllNode) filter(node ast.Node) (ast.Node, error) {\n\tif node.Type() != ast.SequenceType {\n\t\treturn nil, errors.Wrapf(ErrInvalidQuery, \"expected sequence type node. but got %s\", node.Type())\n\t}\n\tsequence := node.(*ast.SequenceNode)\n\tif n.child == nil {\n\t\treturn sequence, nil\n\t}\n\tout := *sequence\n\tout.Values = []ast.Node{}\n\tfor _, value := range sequence.Values {\n\t\tfiltered, err := n.child.filter(value)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to filter\")\n\t\t}\n\t\tout.Values = append(out.Values, filtered)\n\t}\n\treturn &out, nil\n}\n\nfunc (n *indexAllNode) replace(node ast.Node, target ast.Node) error {\n\tif node.Type() != ast.SequenceType {\n\t\treturn errors.Wrapf(ErrInvalidQuery, \"expected sequence type node. but got %s\", node.Type())\n\t}\n\tsequence := node.(*ast.SequenceNode)\n\tif n.child == nil {\n\t\tfor idx := range sequence.Values {\n\t\t\tif err := sequence.Replace(idx, target); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\tfor _, value := range sequence.Values {\n\t\tif err := n.child.replace(value, target); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t\t}\n\t}\n\treturn nil\n}\n\ntype recursiveNode struct {\n\t*basePathNode\n\tselector string\n}\n\nfunc newRecursiveNode(selector string) *recursiveNode {\n\treturn &recursiveNode{\n\t\tbasePathNode: &basePathNode{},\n\t\tselector:     selector,\n\t}\n}\n\nfunc (n *recursiveNode) String() string {\n\ts := fmt.Sprintf(\"..%s\", n.selector)\n\tif n.child != nil {\n\t\ts += n.child.String()\n\t}\n\treturn s\n}\n\nfunc (n *recursiveNode) filterNode(node ast.Node) (*ast.SequenceNode, error) {\n\tsequence := &ast.SequenceNode{BaseNode: &ast.BaseNode{}}\n\tswitch typedNode := node.(type) {\n\tcase *ast.MappingNode:\n\t\tfor _, value := range typedNode.Values {\n\t\t\tseq, err := n.filterNode(value)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to filter\")\n\t\t\t}\n\t\t\tsequence.Values = append(sequence.Values, seq.Values...)\n\t\t}\n\tcase *ast.MappingValueNode:\n\t\tkey := typedNode.Key.GetToken().Value\n\t\tif n.selector == key {\n\t\t\tsequence.Values = append(sequence.Values, typedNode.Value)\n\t\t}\n\t\tseq, err := n.filterNode(typedNode.Value)\n\t\tif err != nil {\n\t\t\treturn nil, errors.Wrapf(err, \"failed to filter\")\n\t\t}\n\t\tsequence.Values = append(sequence.Values, seq.Values...)\n\tcase *ast.SequenceNode:\n\t\tfor _, value := range typedNode.Values {\n\t\t\tseq, err := n.filterNode(value)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, errors.Wrapf(err, \"failed to filter\")\n\t\t\t}\n\t\t\tsequence.Values = append(sequence.Values, seq.Values...)\n\t\t}\n\t}\n\treturn sequence, nil\n}\n\nfunc (n *recursiveNode) filter(node ast.Node) (ast.Node, error) {\n\tsequence, err := n.filterNode(node)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to filter\")\n\t}\n\tsequence.Start = node.GetToken()\n\treturn sequence, nil\n}\n\nfunc (n *recursiveNode) replaceNode(node ast.Node, target ast.Node) error {\n\tswitch typedNode := node.(type) {\n\tcase *ast.MappingNode:\n\t\tfor _, value := range typedNode.Values {\n\t\t\tif err := n.replaceNode(value, target); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t\t\t}\n\t\t}\n\tcase *ast.MappingValueNode:\n\t\tkey := typedNode.Key.GetToken().Value\n\t\tif n.selector == key {\n\t\t\tif err := typedNode.Replace(target); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t\t\t}\n\t\t}\n\t\tif err := n.replaceNode(typedNode.Value, target); err != nil {\n\t\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t\t}\n\tcase *ast.SequenceNode:\n\t\tfor _, value := range typedNode.Values {\n\t\t\tif err := n.replaceNode(value, target); err != nil {\n\t\t\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (n *recursiveNode) replace(node ast.Node, target ast.Node) error {\n\tif err := n.replaceNode(node, target); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to replace\")\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/printer/printer.go",
    "content": "package printer\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"strings\"\n\n\t\"github.com/fatih/color\"\n\t\"github.com/goccy/go-yaml/ast\"\n\t\"github.com/goccy/go-yaml/token\"\n)\n\n// Property additional property set for each the token\ntype Property struct {\n\tPrefix string\n\tSuffix string\n}\n\n// PrintFunc returns property instance\ntype PrintFunc func() *Property\n\n// Printer create text from token collection or ast\ntype Printer struct {\n\tLineNumber       bool\n\tLineNumberFormat func(num int) string\n\tMapKey           PrintFunc\n\tAnchor           PrintFunc\n\tAlias            PrintFunc\n\tBool             PrintFunc\n\tString           PrintFunc\n\tNumber           PrintFunc\n}\n\nfunc defaultLineNumberFormat(num int) string {\n\treturn fmt.Sprintf(\"%2d | \", num)\n}\n\nfunc (p *Printer) property(tk *token.Token) *Property {\n\tprop := &Property{}\n\tswitch tk.PreviousType() {\n\tcase token.AnchorType:\n\t\tif p.Anchor != nil {\n\t\t\treturn p.Anchor()\n\t\t}\n\t\treturn prop\n\tcase token.AliasType:\n\t\tif p.Alias != nil {\n\t\t\treturn p.Alias()\n\t\t}\n\t\treturn prop\n\t}\n\tswitch tk.NextType() {\n\tcase token.MappingValueType:\n\t\tif p.MapKey != nil {\n\t\t\treturn p.MapKey()\n\t\t}\n\t\treturn prop\n\t}\n\tswitch tk.Type {\n\tcase token.BoolType:\n\t\tif p.Bool != nil {\n\t\t\treturn p.Bool()\n\t\t}\n\t\treturn prop\n\tcase token.AnchorType:\n\t\tif p.Anchor != nil {\n\t\t\treturn p.Anchor()\n\t\t}\n\t\treturn prop\n\tcase token.AliasType:\n\t\tif p.Anchor != nil {\n\t\t\treturn p.Alias()\n\t\t}\n\t\treturn prop\n\tcase token.StringType, token.SingleQuoteType, token.DoubleQuoteType:\n\t\tif p.String != nil {\n\t\t\treturn p.String()\n\t\t}\n\t\treturn prop\n\tcase token.IntegerType, token.FloatType:\n\t\tif p.Number != nil {\n\t\t\treturn p.Number()\n\t\t}\n\t\treturn prop\n\tdefault:\n\t}\n\treturn prop\n}\n\n// PrintTokens create text from token collection\nfunc (p *Printer) PrintTokens(tokens token.Tokens) string {\n\tif len(tokens) == 0 {\n\t\treturn \"\"\n\t}\n\tif p.LineNumber {\n\t\tif p.LineNumberFormat == nil {\n\t\t\tp.LineNumberFormat = defaultLineNumberFormat\n\t\t}\n\t}\n\ttexts := []string{}\n\tlineNumber := tokens[0].Position.Line\n\tfor _, tk := range tokens {\n\t\tlines := strings.Split(tk.Origin, \"\\n\")\n\t\tprop := p.property(tk)\n\t\theader := \"\"\n\t\tif p.LineNumber {\n\t\t\theader = p.LineNumberFormat(lineNumber)\n\t\t}\n\t\tif len(lines) == 1 {\n\t\t\tline := prop.Prefix + lines[0] + prop.Suffix\n\t\t\tif len(texts) == 0 {\n\t\t\t\ttexts = append(texts, header+line)\n\t\t\t\tlineNumber++\n\t\t\t} else {\n\t\t\t\ttext := texts[len(texts)-1]\n\t\t\t\ttexts[len(texts)-1] = text + line\n\t\t\t}\n\t\t} else {\n\t\t\tfor idx, src := range lines {\n\t\t\t\tif p.LineNumber {\n\t\t\t\t\theader = p.LineNumberFormat(lineNumber)\n\t\t\t\t}\n\t\t\t\tline := prop.Prefix + src + prop.Suffix\n\t\t\t\tif idx == 0 {\n\t\t\t\t\tif len(texts) == 0 {\n\t\t\t\t\t\ttexts = append(texts, header+line)\n\t\t\t\t\t\tlineNumber++\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttext := texts[len(texts)-1]\n\t\t\t\t\t\ttexts[len(texts)-1] = text + line\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ttexts = append(texts, fmt.Sprintf(\"%s%s\", header, line))\n\t\t\t\t\tlineNumber++\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn strings.Join(texts, \"\\n\")\n}\n\n// PrintNode create text from ast.Node\nfunc (p *Printer) PrintNode(node ast.Node) []byte {\n\treturn []byte(fmt.Sprintf(\"%+v\\n\", node))\n}\n\nconst escape = \"\\x1b\"\n\nfunc format(attr color.Attribute) string {\n\treturn fmt.Sprintf(\"%s[%dm\", escape, attr)\n}\n\nfunc (p *Printer) setDefaultColorSet() {\n\tp.Bool = func() *Property {\n\t\treturn &Property{\n\t\t\tPrefix: format(color.FgHiMagenta),\n\t\t\tSuffix: format(color.Reset),\n\t\t}\n\t}\n\tp.Number = func() *Property {\n\t\treturn &Property{\n\t\t\tPrefix: format(color.FgHiMagenta),\n\t\t\tSuffix: format(color.Reset),\n\t\t}\n\t}\n\tp.MapKey = func() *Property {\n\t\treturn &Property{\n\t\t\tPrefix: format(color.FgHiCyan),\n\t\t\tSuffix: format(color.Reset),\n\t\t}\n\t}\n\tp.Anchor = func() *Property {\n\t\treturn &Property{\n\t\t\tPrefix: format(color.FgHiYellow),\n\t\t\tSuffix: format(color.Reset),\n\t\t}\n\t}\n\tp.Alias = func() *Property {\n\t\treturn &Property{\n\t\t\tPrefix: format(color.FgHiYellow),\n\t\t\tSuffix: format(color.Reset),\n\t\t}\n\t}\n\tp.String = func() *Property {\n\t\treturn &Property{\n\t\t\tPrefix: format(color.FgHiGreen),\n\t\t\tSuffix: format(color.Reset),\n\t\t}\n\t}\n}\n\nfunc (p *Printer) PrintErrorMessage(msg string, isColored bool) string {\n\tif isColored {\n\t\treturn fmt.Sprintf(\"%s%s%s\",\n\t\t\tformat(color.FgHiRed),\n\t\t\tmsg,\n\t\t\tformat(color.Reset),\n\t\t)\n\t}\n\treturn msg\n}\n\nfunc (p *Printer) removeLeftSideNewLineChar(src string) string {\n\treturn strings.TrimLeft(strings.TrimLeft(strings.TrimLeft(src, \"\\r\"), \"\\n\"), \"\\r\\n\")\n}\n\nfunc (p *Printer) removeRightSideNewLineChar(src string) string {\n\treturn strings.TrimRight(strings.TrimRight(strings.TrimRight(src, \"\\r\"), \"\\n\"), \"\\r\\n\")\n}\n\nfunc (p *Printer) removeRightSideWhiteSpaceChar(src string) string {\n\treturn p.removeRightSideNewLineChar(strings.TrimRight(src, \" \"))\n}\n\nfunc (p *Printer) newLineCount(s string) int {\n\tsrc := []rune(s)\n\tsize := len(src)\n\tcnt := 0\n\tfor i := 0; i < size; i++ {\n\t\tc := src[i]\n\t\tswitch c {\n\t\tcase '\\r':\n\t\t\tif i+1 < size && src[i+1] == '\\n' {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tcnt++\n\t\tcase '\\n':\n\t\t\tcnt++\n\t\t}\n\t}\n\treturn cnt\n}\n\nfunc (p *Printer) isNewLineLastChar(s string) bool {\n\tfor i := len(s) - 1; i > 0; i-- {\n\t\tc := s[i]\n\t\tswitch c {\n\t\tcase ' ':\n\t\t\tcontinue\n\t\tcase '\\n', '\\r':\n\t\t\treturn true\n\t\t}\n\t\tbreak\n\t}\n\treturn false\n}\n\nfunc (p *Printer) printBeforeTokens(tk *token.Token, minLine, extLine int) token.Tokens {\n\tfor {\n\t\tif tk.Prev == nil {\n\t\t\tbreak\n\t\t}\n\t\tif tk.Prev.Position.Line < minLine {\n\t\t\tbreak\n\t\t}\n\t\ttk = tk.Prev\n\t}\n\tminTk := tk.Clone()\n\tif minTk.Prev != nil {\n\t\t// add white spaces to minTk by prev token\n\t\tprev := minTk.Prev\n\t\twhiteSpaceLen := len(prev.Origin) - len(strings.TrimRight(prev.Origin, \" \"))\n\t\tminTk.Origin = strings.Repeat(\" \", whiteSpaceLen) + minTk.Origin\n\t}\n\tminTk.Origin = p.removeLeftSideNewLineChar(minTk.Origin)\n\ttokens := token.Tokens{minTk}\n\ttk = minTk.Next\n\tfor tk != nil && tk.Position.Line <= extLine {\n\t\tclonedTk := tk.Clone()\n\t\ttokens.Add(clonedTk)\n\t\ttk = clonedTk.Next\n\t}\n\tlastTk := tokens[len(tokens)-1]\n\ttrimmedOrigin := p.removeRightSideWhiteSpaceChar(lastTk.Origin)\n\tsuffix := lastTk.Origin[len(trimmedOrigin):]\n\tlastTk.Origin = trimmedOrigin\n\n\tif lastTk.Next != nil && len(suffix) > 1 {\n\t\tnext := lastTk.Next.Clone()\n\t\t// add suffix to header of next token\n\t\tif suffix[0] == '\\n' || suffix[0] == '\\r' {\n\t\t\tsuffix = suffix[1:]\n\t\t}\n\t\tnext.Origin = suffix + next.Origin\n\t\tlastTk.Next = next\n\t}\n\treturn tokens\n}\n\nfunc (p *Printer) printAfterTokens(tk *token.Token, maxLine int) token.Tokens {\n\ttokens := token.Tokens{}\n\tif tk == nil {\n\t\treturn tokens\n\t}\n\tif tk.Position.Line > maxLine {\n\t\treturn tokens\n\t}\n\tminTk := tk.Clone()\n\tminTk.Origin = p.removeLeftSideNewLineChar(minTk.Origin)\n\ttokens.Add(minTk)\n\ttk = minTk.Next\n\tfor tk != nil && tk.Position.Line <= maxLine {\n\t\tclonedTk := tk.Clone()\n\t\ttokens.Add(clonedTk)\n\t\ttk = clonedTk.Next\n\t}\n\treturn tokens\n}\n\nfunc (p *Printer) setupErrorTokenFormat(annotateLine int, isColored bool) {\n\tprefix := func(annotateLine, num int) string {\n\t\tif annotateLine == num {\n\t\t\treturn fmt.Sprintf(\"> %2d | \", num)\n\t\t}\n\t\treturn fmt.Sprintf(\"  %2d | \", num)\n\t}\n\tp.LineNumber = true\n\tp.LineNumberFormat = func(num int) string {\n\t\tif isColored {\n\t\t\tfn := color.New(color.Bold, color.FgHiWhite).SprintFunc()\n\t\t\treturn fn(prefix(annotateLine, num))\n\t\t}\n\t\treturn prefix(annotateLine, num)\n\t}\n\tif isColored {\n\t\tp.setDefaultColorSet()\n\t}\n}\n\nfunc (p *Printer) PrintErrorToken(tk *token.Token, isColored bool) string {\n\terrToken := tk\n\tcurLine := tk.Position.Line\n\tcurExtLine := curLine + p.newLineCount(p.removeLeftSideNewLineChar(tk.Origin))\n\tif p.isNewLineLastChar(tk.Origin) {\n\t\t// if last character ( exclude white space ) is new line character, ignore it.\n\t\tcurExtLine--\n\t}\n\n\tminLine := int(math.Max(float64(curLine-3), 1))\n\tmaxLine := curExtLine + 3\n\tp.setupErrorTokenFormat(curLine, isColored)\n\n\tbeforeTokens := p.printBeforeTokens(tk, minLine, curExtLine)\n\tlastTk := beforeTokens[len(beforeTokens)-1]\n\tafterTokens := p.printAfterTokens(lastTk.Next, maxLine)\n\n\tbeforeSource := p.PrintTokens(beforeTokens)\n\tprefixSpaceNum := len(fmt.Sprintf(\"  %2d | \", curLine))\n\tannotateLine := strings.Repeat(\" \", prefixSpaceNum+errToken.Position.Column-1) + \"^\"\n\tafterSource := p.PrintTokens(afterTokens)\n\treturn fmt.Sprintf(\"%s\\n%s\\n%s\", beforeSource, annotateLine, afterSource)\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/scanner/context.go",
    "content": "package scanner\n\nimport (\n\t\"sync\"\n\n\t\"github.com/goccy/go-yaml/token\"\n)\n\nconst whitespace = ' '\n\n// Context context at scanning\ntype Context struct {\n\tidx                int\n\tsize               int\n\tnotSpaceCharPos    int\n\tnotSpaceOrgCharPos int\n\tsrc                []rune\n\tbuf                []rune\n\tobuf               []rune\n\ttokens             token.Tokens\n\tisRawFolded        bool\n\tisLiteral          bool\n\tisFolded           bool\n\tisSingleLine       bool\n\tliteralOpt         string\n}\n\nvar (\n\tctxPool = sync.Pool{\n\t\tNew: func() interface{} {\n\t\t\treturn createContext()\n\t\t},\n\t}\n)\n\nfunc createContext() *Context {\n\treturn &Context{\n\t\tidx:          0,\n\t\ttokens:       token.Tokens{},\n\t\tisSingleLine: true,\n\t}\n}\n\nfunc newContext(src []rune) *Context {\n\tctx := ctxPool.Get().(*Context)\n\tctx.reset(src)\n\treturn ctx\n}\n\nfunc (c *Context) release() {\n\tctxPool.Put(c)\n}\n\nfunc (c *Context) reset(src []rune) {\n\tc.idx = 0\n\tc.size = len(src)\n\tc.src = src\n\tc.tokens = c.tokens[:0]\n\tc.resetBuffer()\n\tc.isRawFolded = false\n\tc.isSingleLine = true\n\tc.isLiteral = false\n\tc.isFolded = false\n\tc.literalOpt = \"\"\n}\n\nfunc (c *Context) resetBuffer() {\n\tc.buf = c.buf[:0]\n\tc.obuf = c.obuf[:0]\n\tc.notSpaceCharPos = 0\n\tc.notSpaceOrgCharPos = 0\n}\n\nfunc (c *Context) isSaveIndentMode() bool {\n\treturn c.isLiteral || c.isFolded || c.isRawFolded\n}\n\nfunc (c *Context) breakLiteral() {\n\tc.isLiteral = false\n\tc.isRawFolded = false\n\tc.isFolded = false\n\tc.literalOpt = \"\"\n}\n\nfunc (c *Context) addToken(tk *token.Token) {\n\tif tk == nil {\n\t\treturn\n\t}\n\tc.tokens = append(c.tokens, tk)\n}\n\nfunc (c *Context) addBuf(r rune) {\n\tif len(c.buf) == 0 && r == ' ' {\n\t\treturn\n\t}\n\tc.buf = append(c.buf, r)\n\tif r != ' ' && r != '\\t' {\n\t\tc.notSpaceCharPos = len(c.buf)\n\t}\n}\n\nfunc (c *Context) addOriginBuf(r rune) {\n\tc.obuf = append(c.obuf, r)\n\tif r != ' ' && r != '\\t' {\n\t\tc.notSpaceOrgCharPos = len(c.obuf)\n\t}\n}\n\nfunc (c *Context) removeRightSpaceFromBuf() int {\n\ttrimmedBuf := c.obuf[:c.notSpaceOrgCharPos]\n\tbuflen := len(trimmedBuf)\n\tdiff := len(c.obuf) - buflen\n\tif diff > 0 {\n\t\tc.obuf = c.obuf[:buflen]\n\t\tc.buf = c.bufferedSrc()\n\t}\n\treturn diff\n}\n\nfunc (c *Context) isDocument() bool {\n\treturn c.isLiteral || c.isFolded || c.isRawFolded\n}\n\nfunc (c *Context) isEOS() bool {\n\treturn len(c.src)-1 <= c.idx\n}\n\nfunc (c *Context) isNextEOS() bool {\n\treturn len(c.src)-1 <= c.idx+1\n}\n\nfunc (c *Context) next() bool {\n\treturn c.idx < c.size\n}\n\nfunc (c *Context) source(s, e int) string {\n\treturn string(c.src[s:e])\n}\n\nfunc (c *Context) previousChar() rune {\n\tif c.idx > 0 {\n\t\treturn c.src[c.idx-1]\n\t}\n\treturn rune(0)\n}\n\nfunc (c *Context) currentChar() rune {\n\tif c.size > c.idx {\n\t\treturn c.src[c.idx]\n\t}\n\treturn rune(0)\n}\n\nfunc (c *Context) currentCharWithSkipWhitespace() rune {\n\tidx := c.idx\n\tfor c.size > idx {\n\t\tch := c.src[idx]\n\t\tif ch != whitespace {\n\t\t\treturn ch\n\t\t}\n\t\tidx++\n\t}\n\treturn rune(0)\n}\n\nfunc (c *Context) nextChar() rune {\n\tif c.size > c.idx+1 {\n\t\treturn c.src[c.idx+1]\n\t}\n\treturn rune(0)\n}\n\nfunc (c *Context) repeatNum(r rune) int {\n\tcnt := 0\n\tfor i := c.idx; i < c.size; i++ {\n\t\tif c.src[i] == r {\n\t\t\tcnt++\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn cnt\n}\n\nfunc (c *Context) progress(num int) {\n\tc.idx += num\n}\n\nfunc (c *Context) nextPos() int {\n\treturn c.idx + 1\n}\n\nfunc (c *Context) existsBuffer() bool {\n\treturn len(c.bufferedSrc()) != 0\n}\n\nfunc (c *Context) bufferedSrc() []rune {\n\tsrc := c.buf[:c.notSpaceCharPos]\n\tif len(src) > 0 && src[len(src)-1] == '\\n' && c.isDocument() && c.literalOpt == \"-\" {\n\t\t// remove end '\\n' character\n\t\tsrc = src[:len(src)-1]\n\t}\n\treturn src\n}\n\nfunc (c *Context) bufferedToken(pos *token.Position) *token.Token {\n\tif c.idx == 0 {\n\t\treturn nil\n\t}\n\tsource := c.bufferedSrc()\n\tif len(source) == 0 {\n\t\treturn nil\n\t}\n\tvar tk *token.Token\n\tif c.isDocument() {\n\t\ttk = token.String(string(source), string(c.obuf), pos)\n\t} else {\n\t\ttk = token.New(string(source), string(c.obuf), pos)\n\t}\n\tc.resetBuffer()\n\treturn tk\n}\n\nfunc (c *Context) lastToken() *token.Token {\n\tif len(c.tokens) != 0 {\n\t\treturn c.tokens[len(c.tokens)-1]\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/scanner/scanner.go",
    "content": "package scanner\n\nimport (\n\t\"io\"\n\t\"strings\"\n\n\t\"github.com/goccy/go-yaml/token\"\n\t\"golang.org/x/xerrors\"\n)\n\n// IndentState state for indent\ntype IndentState int\n\nconst (\n\t// IndentStateEqual equals previous indent\n\tIndentStateEqual IndentState = iota\n\t// IndentStateUp more indent than previous\n\tIndentStateUp\n\t// IndentStateDown less indent than previous\n\tIndentStateDown\n\t// IndentStateKeep uses not indent token\n\tIndentStateKeep\n)\n\n// Scanner holds the scanner's internal state while processing a given text.\n// It can be allocated as part of another data structure but must be initialized via Init before use.\ntype Scanner struct {\n\tsource                 []rune\n\tsourcePos              int\n\tsourceSize             int\n\tline                   int\n\tcolumn                 int\n\toffset                 int\n\tprevIndentLevel        int\n\tprevIndentNum          int\n\tprevIndentColumn       int\n\tdocStartColumn         int\n\tindentLevel            int\n\tindentNum              int\n\tisFirstCharAtLine      bool\n\tisAnchor               bool\n\tstartedFlowSequenceNum int\n\tstartedFlowMapNum      int\n\tindentState            IndentState\n\tsavedPos               *token.Position\n}\n\nfunc (s *Scanner) pos() *token.Position {\n\treturn &token.Position{\n\t\tLine:        s.line,\n\t\tColumn:      s.column,\n\t\tOffset:      s.offset,\n\t\tIndentNum:   s.indentNum,\n\t\tIndentLevel: s.indentLevel,\n\t}\n}\n\nfunc (s *Scanner) bufferedToken(ctx *Context) *token.Token {\n\tif s.savedPos != nil {\n\t\ttk := ctx.bufferedToken(s.savedPos)\n\t\ts.savedPos = nil\n\t\treturn tk\n\t}\n\tline := s.line\n\tcolumn := s.column - len(ctx.buf)\n\tlevel := s.indentLevel\n\tif ctx.isSaveIndentMode() {\n\t\tline -= s.newLineCount(ctx.buf)\n\t\tcolumn = strings.Index(string(ctx.obuf), string(ctx.buf)) + 1\n\t\t// Since we are in a literal, folded or raw folded\n\t\t// we can use the indent level from the last token.\n\t\tlast := ctx.lastToken()\n\t\tif last != nil { // The last token should never be nil here.\n\t\t\tlevel = last.Position.IndentLevel + 1\n\t\t}\n\t}\n\treturn ctx.bufferedToken(&token.Position{\n\t\tLine:        line,\n\t\tColumn:      column,\n\t\tOffset:      s.offset - len(ctx.buf),\n\t\tIndentNum:   s.indentNum,\n\t\tIndentLevel: level,\n\t})\n}\n\nfunc (s *Scanner) progressColumn(ctx *Context, num int) {\n\ts.column += num\n\ts.offset += num\n\tctx.progress(num)\n}\n\nfunc (s *Scanner) progressLine(ctx *Context) {\n\ts.column = 1\n\ts.line++\n\ts.offset++\n\ts.indentNum = 0\n\ts.isFirstCharAtLine = true\n\ts.isAnchor = false\n\tctx.progress(1)\n}\n\nfunc (s *Scanner) isNeededKeepPreviousIndentNum(ctx *Context, c rune) bool {\n\tif !s.isChangedToIndentStateUp() {\n\t\treturn false\n\t}\n\tif ctx.isDocument() {\n\t\treturn true\n\t}\n\tif c == '-' && ctx.existsBuffer() {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (s *Scanner) isNewLineChar(c rune) bool {\n\tif c == '\\n' {\n\t\treturn true\n\t}\n\tif c == '\\r' {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (s *Scanner) newLineCount(src []rune) int {\n\tsize := len(src)\n\tcnt := 0\n\tfor i := 0; i < size; i++ {\n\t\tc := src[i]\n\t\tswitch c {\n\t\tcase '\\r':\n\t\t\tif i+1 < size && src[i+1] == '\\n' {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tcnt++\n\t\tcase '\\n':\n\t\t\tcnt++\n\t\t}\n\t}\n\treturn cnt\n}\n\nfunc (s *Scanner) updateIndentState(ctx *Context) {\n\tindentNumBasedIndentState := s.indentState\n\tif s.prevIndentNum < s.indentNum {\n\t\ts.indentLevel = s.prevIndentLevel + 1\n\t\tindentNumBasedIndentState = IndentStateUp\n\t} else if s.prevIndentNum == s.indentNum {\n\t\ts.indentLevel = s.prevIndentLevel\n\t\tindentNumBasedIndentState = IndentStateEqual\n\t} else {\n\t\tindentNumBasedIndentState = IndentStateDown\n\t\tif s.prevIndentLevel > 0 {\n\t\t\ts.indentLevel = s.prevIndentLevel - 1\n\t\t}\n\t}\n\n\tif s.prevIndentColumn > 0 {\n\t\tif s.prevIndentColumn < s.column {\n\t\t\ts.indentState = IndentStateUp\n\t\t} else if s.prevIndentColumn != s.column || indentNumBasedIndentState != IndentStateEqual {\n\t\t\t// The following case ( current position is 'd' ), some variables becomes like here\n\t\t\t// - prevIndentColumn: 1 of 'a'\n\t\t\t// - indentNumBasedIndentState: IndentStateDown because d's indentNum(1) is less than c's indentNum(3).\n\t\t\t// Therefore, s.prevIndentColumn(1) == s.column(1) is true, but we want to treat this as IndentStateDown.\n\t\t\t// So, we look also current indentState value by the above prevIndentNum based logic, and determins finally indentState.\n\t\t\t// ---\n\t\t\t// a:\n\t\t\t//   b\n\t\t\t//   c\n\t\t\t// d: e\n\t\t\t// ^\n\t\t\ts.indentState = IndentStateDown\n\t\t} else {\n\t\t\ts.indentState = IndentStateEqual\n\t\t}\n\t} else {\n\t\ts.indentState = indentNumBasedIndentState\n\t}\n}\n\nfunc (s *Scanner) updateIndent(ctx *Context, c rune) {\n\tif s.isFirstCharAtLine && s.isNewLineChar(c) && ctx.isDocument() {\n\t\treturn\n\t}\n\tif s.isFirstCharAtLine && c == ' ' {\n\t\ts.indentNum++\n\t\treturn\n\t}\n\tif !s.isFirstCharAtLine {\n\t\ts.indentState = IndentStateKeep\n\t\treturn\n\t}\n\ts.updateIndentState(ctx)\n\ts.isFirstCharAtLine = false\n\tif s.isNeededKeepPreviousIndentNum(ctx, c) {\n\t\treturn\n\t}\n\tif s.indentState != IndentStateUp {\n\t\ts.prevIndentColumn = 0\n\t}\n\ts.prevIndentNum = s.indentNum\n\ts.prevIndentLevel = s.indentLevel\n}\n\nfunc (s *Scanner) isChangedToIndentStateDown() bool {\n\treturn s.indentState == IndentStateDown\n}\n\nfunc (s *Scanner) isChangedToIndentStateUp() bool {\n\treturn s.indentState == IndentStateUp\n}\n\nfunc (s *Scanner) isChangedToIndentStateEqual() bool {\n\treturn s.indentState == IndentStateEqual\n}\n\nfunc (s *Scanner) addBufferedTokenIfExists(ctx *Context) {\n\tctx.addToken(s.bufferedToken(ctx))\n}\n\nfunc (s *Scanner) breakLiteral(ctx *Context) {\n\ts.docStartColumn = 0\n\tctx.breakLiteral()\n}\n\nfunc (s *Scanner) scanSingleQuote(ctx *Context) (tk *token.Token, pos int) {\n\tctx.addOriginBuf('\\'')\n\tsrcpos := s.pos()\n\tstartIndex := ctx.idx + 1\n\tsrc := ctx.src\n\tsize := len(src)\n\tvalue := []rune{}\n\tisFirstLineChar := false\n\tisNewLine := false\n\tfor idx := startIndex; idx < size; idx++ {\n\t\tif !isNewLine {\n\t\t\ts.progressColumn(ctx, 1)\n\t\t} else {\n\t\t\tisNewLine = false\n\t\t}\n\t\tc := src[idx]\n\t\tpos = idx + 1\n\t\tctx.addOriginBuf(c)\n\t\tif s.isNewLineChar(c) {\n\t\t\tvalue = append(value, ' ')\n\t\t\tisFirstLineChar = true\n\t\t\tisNewLine = true\n\t\t\ts.progressLine(ctx)\n\t\t\tcontinue\n\t\t} else if c == ' ' && isFirstLineChar {\n\t\t\tcontinue\n\t\t} else if c != '\\'' {\n\t\t\tvalue = append(value, c)\n\t\t\tisFirstLineChar = false\n\t\t\tcontinue\n\t\t}\n\t\tif idx+1 < len(ctx.src) && ctx.src[idx+1] == '\\'' {\n\t\t\t// '' handle as ' character\n\t\t\tvalue = append(value, c)\n\t\t\tctx.addOriginBuf(c)\n\t\t\tidx++\n\t\t\tcontinue\n\t\t}\n\t\ts.progressColumn(ctx, 1)\n\t\ttk = token.SingleQuote(string(value), string(ctx.obuf), srcpos)\n\t\tpos = idx - startIndex + 1\n\t\treturn\n\t}\n\treturn\n}\n\nfunc hexToInt(b rune) int {\n\tif b >= 'A' && b <= 'F' {\n\t\treturn int(b) - 'A' + 10\n\t}\n\tif b >= 'a' && b <= 'f' {\n\t\treturn int(b) - 'a' + 10\n\t}\n\treturn int(b) - '0'\n}\n\nfunc hexRunesToInt(b []rune) int {\n\tsum := 0\n\tfor i := 0; i < len(b); i++ {\n\t\tsum += hexToInt(b[i]) << (uint(len(b)-i-1) * 4)\n\t}\n\treturn sum\n}\n\nfunc (s *Scanner) scanDoubleQuote(ctx *Context) (tk *token.Token, pos int) {\n\tctx.addOriginBuf('\"')\n\tsrcpos := s.pos()\n\tstartIndex := ctx.idx + 1\n\tsrc := ctx.src\n\tsize := len(src)\n\tvalue := []rune{}\n\tisFirstLineChar := false\n\tisNewLine := false\n\tfor idx := startIndex; idx < size; idx++ {\n\t\tif !isNewLine {\n\t\t\ts.progressColumn(ctx, 1)\n\t\t} else {\n\t\t\tisNewLine = false\n\t\t}\n\t\tc := src[idx]\n\t\tpos = idx + 1\n\t\tctx.addOriginBuf(c)\n\t\tif s.isNewLineChar(c) {\n\t\t\tvalue = append(value, ' ')\n\t\t\tisFirstLineChar = true\n\t\t\tisNewLine = true\n\t\t\ts.progressLine(ctx)\n\t\t\tcontinue\n\t\t} else if c == ' ' && isFirstLineChar {\n\t\t\tcontinue\n\t\t} else if c == '\\\\' {\n\t\t\tisFirstLineChar = false\n\t\t\tif idx+1 < size {\n\t\t\t\tnextChar := src[idx+1]\n\t\t\t\tswitch nextChar {\n\t\t\t\tcase 'b':\n\t\t\t\t\tctx.addOriginBuf(nextChar)\n\t\t\t\t\tvalue = append(value, '\\b')\n\t\t\t\t\tidx++\n\t\t\t\t\tcontinue\n\t\t\t\tcase 'e':\n\t\t\t\t\tctx.addOriginBuf(nextChar)\n\t\t\t\t\tvalue = append(value, '\\x1B')\n\t\t\t\t\tidx++\n\t\t\t\t\tcontinue\n\t\t\t\tcase 'f':\n\t\t\t\t\tctx.addOriginBuf(nextChar)\n\t\t\t\t\tvalue = append(value, '\\f')\n\t\t\t\t\tidx++\n\t\t\t\t\tcontinue\n\t\t\t\tcase 'n':\n\t\t\t\t\tctx.addOriginBuf(nextChar)\n\t\t\t\t\tvalue = append(value, '\\n')\n\t\t\t\t\tidx++\n\t\t\t\t\tcontinue\n\t\t\t\tcase 'v':\n\t\t\t\t\tctx.addOriginBuf(nextChar)\n\t\t\t\t\tvalue = append(value, '\\v')\n\t\t\t\t\tidx++\n\t\t\t\t\tcontinue\n\t\t\t\tcase 'L': // LS (#x2028)\n\t\t\t\t\tctx.addOriginBuf(nextChar)\n\t\t\t\t\tvalue = append(value, []rune{'\\xE2', '\\x80', '\\xA8'}...)\n\t\t\t\t\tidx++\n\t\t\t\t\tcontinue\n\t\t\t\tcase 'N': // NEL (#x85)\n\t\t\t\t\tctx.addOriginBuf(nextChar)\n\t\t\t\t\tvalue = append(value, []rune{'\\xC2', '\\x85'}...)\n\t\t\t\t\tidx++\n\t\t\t\t\tcontinue\n\t\t\t\tcase 'P': // PS (#x2029)\n\t\t\t\t\tctx.addOriginBuf(nextChar)\n\t\t\t\t\tvalue = append(value, []rune{'\\xE2', '\\x80', '\\xA9'}...)\n\t\t\t\t\tidx++\n\t\t\t\t\tcontinue\n\t\t\t\tcase '_': // #xA0\n\t\t\t\t\tctx.addOriginBuf(nextChar)\n\t\t\t\t\tvalue = append(value, []rune{'\\xC2', '\\xA0'}...)\n\t\t\t\t\tidx++\n\t\t\t\t\tcontinue\n\t\t\t\tcase '\"':\n\t\t\t\t\tctx.addOriginBuf(nextChar)\n\t\t\t\t\tvalue = append(value, nextChar)\n\t\t\t\t\tidx++\n\t\t\t\t\tcontinue\n\t\t\t\tcase 'x':\n\t\t\t\t\tif idx+3 >= size {\n\t\t\t\t\t\t// TODO: need to return error\n\t\t\t\t\t\t//err = xerrors.New(\"invalid escape character \\\\x\")\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tcodeNum := hexRunesToInt(src[idx+2 : idx+4])\n\t\t\t\t\tvalue = append(value, rune(codeNum))\n\t\t\t\t\tidx += 3\n\t\t\t\t\tcontinue\n\t\t\t\tcase 'u':\n\t\t\t\t\tif idx+5 >= size {\n\t\t\t\t\t\t// TODO: need to return error\n\t\t\t\t\t\t//err = xerrors.New(\"invalid escape character \\\\u\")\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tcodeNum := hexRunesToInt(src[idx+2 : idx+6])\n\t\t\t\t\tvalue = append(value, rune(codeNum))\n\t\t\t\t\tidx += 5\n\t\t\t\t\tcontinue\n\t\t\t\tcase 'U':\n\t\t\t\t\tif idx+9 >= size {\n\t\t\t\t\t\t// TODO: need to return error\n\t\t\t\t\t\t//err = xerrors.New(\"invalid escape character \\\\U\")\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tcodeNum := hexRunesToInt(src[idx+2 : idx+10])\n\t\t\t\t\tvalue = append(value, rune(codeNum))\n\t\t\t\t\tidx += 9\n\t\t\t\t\tcontinue\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tctx.addOriginBuf(nextChar)\n\t\t\t\t\tidx++\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = append(value, c)\n\t\t\tcontinue\n\t\t} else if c != '\"' {\n\t\t\tvalue = append(value, c)\n\t\t\tisFirstLineChar = false\n\t\t\tcontinue\n\t\t}\n\t\ts.progressColumn(ctx, 1)\n\t\ttk = token.DoubleQuote(string(value), string(ctx.obuf), srcpos)\n\t\tpos = idx - startIndex + 1\n\t\treturn\n\t}\n\treturn\n}\n\nfunc (s *Scanner) scanQuote(ctx *Context, ch rune) (tk *token.Token, pos int) {\n\tif ch == '\\'' {\n\t\treturn s.scanSingleQuote(ctx)\n\t}\n\treturn s.scanDoubleQuote(ctx)\n}\n\nfunc (s *Scanner) isMergeKey(ctx *Context) bool {\n\tif ctx.repeatNum('<') != 2 {\n\t\treturn false\n\t}\n\tsrc := ctx.src\n\tsize := len(src)\n\tfor idx := ctx.idx + 2; idx < size; idx++ {\n\t\tc := src[idx]\n\t\tif c == ' ' {\n\t\t\tcontinue\n\t\t}\n\t\tif c != ':' {\n\t\t\treturn false\n\t\t}\n\t\tif idx+1 < size {\n\t\t\tnc := src[idx+1]\n\t\t\tif nc == ' ' || s.isNewLineChar(nc) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (s *Scanner) scanTag(ctx *Context) (tk *token.Token, pos int) {\n\tctx.addOriginBuf('!')\n\tctx.progress(1) // skip '!' character\n\tfor idx, c := range ctx.src[ctx.idx:] {\n\t\tpos = idx + 1\n\t\tctx.addOriginBuf(c)\n\t\tswitch c {\n\t\tcase ' ', '\\n', '\\r':\n\t\t\tvalue := ctx.source(ctx.idx-1, ctx.idx+idx)\n\t\t\ttk = token.Tag(value, string(ctx.obuf), s.pos())\n\t\t\tpos = len([]rune(value))\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\nfunc (s *Scanner) scanComment(ctx *Context) (tk *token.Token, pos int) {\n\tctx.addOriginBuf('#')\n\tctx.progress(1) // skip '#' character\n\tfor idx, c := range ctx.src[ctx.idx:] {\n\t\tpos = idx + 1\n\t\tctx.addOriginBuf(c)\n\t\tswitch c {\n\t\tcase '\\n', '\\r':\n\t\t\tif ctx.previousChar() == '\\\\' {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvalue := ctx.source(ctx.idx, ctx.idx+idx)\n\t\t\ttk = token.Comment(value, string(ctx.obuf), s.pos())\n\t\t\tpos = len([]rune(value)) + 1\n\t\t\treturn\n\t\t}\n\t}\n\t// document ends with comment.\n\tvalue := string(ctx.src[ctx.idx:])\n\ttk = token.Comment(value, string(ctx.obuf), s.pos())\n\tpos = len([]rune(value)) + 1\n\treturn\n}\n\nfunc trimCommentFromLiteralOpt(text string) (string, error) {\n\tidx := strings.Index(text, \"#\")\n\tif idx < 0 {\n\t\treturn text, nil\n\t}\n\tif idx == 0 {\n\t\treturn \"\", xerrors.New(\"invalid literal header\")\n\t}\n\treturn text[:idx-1], nil\n}\n\nfunc (s *Scanner) scanLiteral(ctx *Context, c rune) {\n\tctx.addOriginBuf(c)\n\tif ctx.isEOS() {\n\t\tif ctx.isLiteral {\n\t\t\tctx.addBuf(c)\n\t\t}\n\t\tvalue := ctx.bufferedSrc()\n\t\tctx.addToken(token.String(string(value), string(ctx.obuf), s.pos()))\n\t\tctx.resetBuffer()\n\t\ts.progressColumn(ctx, 1)\n\t} else if s.isNewLineChar(c) {\n\t\tif ctx.isLiteral {\n\t\t\tctx.addBuf(c)\n\t\t} else {\n\t\t\tctx.addBuf(' ')\n\t\t}\n\t\ts.progressLine(ctx)\n\t} else if s.isFirstCharAtLine && c == ' ' {\n\t\tif 0 < s.docStartColumn && s.docStartColumn <= s.column {\n\t\t\tctx.addBuf(c)\n\t\t}\n\t\ts.progressColumn(ctx, 1)\n\t} else {\n\t\tif s.docStartColumn == 0 {\n\t\t\ts.docStartColumn = s.column\n\t\t}\n\t\tctx.addBuf(c)\n\t\ts.progressColumn(ctx, 1)\n\t}\n}\n\nfunc (s *Scanner) scanLiteralHeader(ctx *Context) (pos int, err error) {\n\theader := ctx.currentChar()\n\tctx.addOriginBuf(header)\n\tctx.progress(1) // skip '|' or '>' character\n\tfor idx, c := range ctx.src[ctx.idx:] {\n\t\tpos = idx\n\t\tctx.addOriginBuf(c)\n\t\tswitch c {\n\t\tcase '\\n', '\\r':\n\t\t\tvalue := ctx.source(ctx.idx, ctx.idx+idx)\n\t\t\topt := strings.TrimRight(value, \" \")\n\t\t\torgOptLen := len(opt)\n\t\t\topt, err = trimCommentFromLiteralOpt(opt)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tswitch opt {\n\t\t\tcase \"\", \"+\", \"-\",\n\t\t\t\t\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\":\n\t\t\t\thasComment := len(opt) < orgOptLen\n\t\t\t\tif header == '|' {\n\t\t\t\t\tif hasComment {\n\t\t\t\t\t\tcommentLen := orgOptLen - len(opt)\n\t\t\t\t\t\theaderPos := strings.Index(string(ctx.obuf), \"|\")\n\t\t\t\t\t\tlitBuf := ctx.obuf[:len(ctx.obuf)-commentLen-headerPos]\n\t\t\t\t\t\tcommentBuf := ctx.obuf[len(litBuf):]\n\t\t\t\t\t\tctx.addToken(token.Literal(\"|\"+opt, string(litBuf), s.pos()))\n\t\t\t\t\t\ts.column += len(litBuf)\n\t\t\t\t\t\ts.offset += len(litBuf)\n\t\t\t\t\t\tcommentHeader := strings.Index(value, \"#\")\n\t\t\t\t\t\tctx.addToken(token.Comment(string(value[commentHeader+1:]), string(commentBuf), s.pos()))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctx.addToken(token.Literal(\"|\"+opt, string(ctx.obuf), s.pos()))\n\t\t\t\t\t}\n\t\t\t\t\tctx.isLiteral = true\n\t\t\t\t} else if header == '>' {\n\t\t\t\t\tif hasComment {\n\t\t\t\t\t\tcommentLen := orgOptLen - len(opt)\n\t\t\t\t\t\theaderPos := strings.Index(string(ctx.obuf), \">\")\n\t\t\t\t\t\tfoldedBuf := ctx.obuf[:len(ctx.obuf)-commentLen-headerPos]\n\t\t\t\t\t\tcommentBuf := ctx.obuf[len(foldedBuf):]\n\t\t\t\t\t\tctx.addToken(token.Folded(\">\"+opt, string(foldedBuf), s.pos()))\n\t\t\t\t\t\ts.column += len(foldedBuf)\n\t\t\t\t\t\ts.offset += len(foldedBuf)\n\t\t\t\t\t\tcommentHeader := strings.Index(value, \"#\")\n\t\t\t\t\t\tctx.addToken(token.Comment(string(value[commentHeader+1:]), string(commentBuf), s.pos()))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctx.addToken(token.Folded(\">\"+opt, string(ctx.obuf), s.pos()))\n\t\t\t\t\t}\n\t\t\t\t\tctx.isFolded = true\n\t\t\t\t}\n\t\t\t\ts.indentState = IndentStateKeep\n\t\t\t\tctx.resetBuffer()\n\t\t\t\tctx.literalOpt = opt\n\t\t\t\treturn\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\terr = xerrors.New(\"invalid literal header\")\n\treturn\n}\n\nfunc (s *Scanner) scanNewLine(ctx *Context, c rune) {\n\tif len(ctx.buf) > 0 && s.savedPos == nil {\n\t\ts.savedPos = s.pos()\n\t\ts.savedPos.Column -= len(ctx.bufferedSrc())\n\t}\n\n\t// if the following case, origin buffer has unnecessary two spaces.\n\t// So, `removeRightSpaceFromOriginBuf` remove them, also fix column number too.\n\t// ---\n\t// a:[space][space]\n\t//   b: c\n\tremovedNum := ctx.removeRightSpaceFromBuf()\n\tif removedNum > 0 {\n\t\ts.column -= removedNum\n\t\ts.offset -= removedNum\n\t\tif s.savedPos != nil {\n\t\t\ts.savedPos.Column -= removedNum\n\t\t}\n\t}\n\n\tif ctx.isEOS() {\n\t\ts.addBufferedTokenIfExists(ctx)\n\t} else if s.isAnchor {\n\t\ts.addBufferedTokenIfExists(ctx)\n\t}\n\tctx.addBuf(' ')\n\tctx.addOriginBuf(c)\n\tctx.isSingleLine = false\n\ts.progressLine(ctx)\n}\n\nfunc (s *Scanner) scan(ctx *Context) (pos int) {\n\tfor ctx.next() {\n\t\tpos = ctx.nextPos()\n\t\tc := ctx.currentChar()\n\t\ts.updateIndent(ctx, c)\n\t\tif ctx.isDocument() {\n\t\t\tif s.isChangedToIndentStateEqual() ||\n\t\t\t\ts.isChangedToIndentStateDown() {\n\t\t\t\ts.addBufferedTokenIfExists(ctx)\n\t\t\t\ts.breakLiteral(ctx)\n\t\t\t} else {\n\t\t\t\ts.scanLiteral(ctx, c)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t} else if s.isChangedToIndentStateDown() {\n\t\t\ts.addBufferedTokenIfExists(ctx)\n\t\t} else if s.isChangedToIndentStateEqual() {\n\t\t\t// if first character is new line character, buffer expect to raw folded literal\n\t\t\tif len(ctx.obuf) > 0 && s.newLineCount(ctx.obuf) <= 1 {\n\t\t\t\t// doesn't raw folded literal\n\t\t\t\ts.addBufferedTokenIfExists(ctx)\n\t\t\t}\n\t\t}\n\t\tswitch c {\n\t\tcase '{':\n\t\t\tif !ctx.existsBuffer() {\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\tctx.addToken(token.MappingStart(string(ctx.obuf), s.pos()))\n\t\t\t\ts.startedFlowMapNum++\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '}':\n\t\t\tif !ctx.existsBuffer() || s.startedFlowMapNum > 0 {\n\t\t\t\tctx.addToken(s.bufferedToken(ctx))\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\tctx.addToken(token.MappingEnd(string(ctx.obuf), s.pos()))\n\t\t\t\ts.startedFlowMapNum--\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '.':\n\t\t\tif s.indentNum == 0 && s.column == 1 && ctx.repeatNum('.') == 3 {\n\t\t\t\tctx.addToken(token.DocumentEnd(string(ctx.obuf)+\"...\", s.pos()))\n\t\t\t\ts.progressColumn(ctx, 3)\n\t\t\t\tpos += 2\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '<':\n\t\t\tif s.isMergeKey(ctx) {\n\t\t\t\ts.prevIndentColumn = s.column\n\t\t\t\tctx.addToken(token.MergeKey(string(ctx.obuf)+\"<<\", s.pos()))\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\tpos++\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '-':\n\t\t\tif s.indentNum == 0 && s.column == 1 && ctx.repeatNum('-') == 3 {\n\t\t\t\ts.addBufferedTokenIfExists(ctx)\n\t\t\t\tctx.addToken(token.DocumentHeader(string(ctx.obuf)+\"---\", s.pos()))\n\t\t\t\ts.progressColumn(ctx, 3)\n\t\t\t\tpos += 2\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif ctx.existsBuffer() && s.isChangedToIndentStateUp() {\n\t\t\t\t// raw folded\n\t\t\t\tctx.isRawFolded = true\n\t\t\t\tctx.addBuf(c)\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif ctx.existsBuffer() {\n\t\t\t\t// '-' is literal\n\t\t\t\tctx.addBuf(c)\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnc := ctx.nextChar()\n\t\t\tif nc == ' ' || s.isNewLineChar(nc) {\n\t\t\t\ts.addBufferedTokenIfExists(ctx)\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\ttk := token.SequenceEntry(string(ctx.obuf), s.pos())\n\t\t\t\ts.prevIndentColumn = tk.Position.Column\n\t\t\t\tctx.addToken(tk)\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '[':\n\t\t\tif !ctx.existsBuffer() {\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\tctx.addToken(token.SequenceStart(string(ctx.obuf), s.pos()))\n\t\t\t\ts.startedFlowSequenceNum++\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\treturn\n\t\t\t}\n\t\tcase ']':\n\t\t\tif !ctx.existsBuffer() || s.startedFlowSequenceNum > 0 {\n\t\t\t\ts.addBufferedTokenIfExists(ctx)\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\tctx.addToken(token.SequenceEnd(string(ctx.obuf), s.pos()))\n\t\t\t\ts.startedFlowSequenceNum--\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\treturn\n\t\t\t}\n\t\tcase ',':\n\t\t\tif s.startedFlowSequenceNum > 0 || s.startedFlowMapNum > 0 {\n\t\t\t\ts.addBufferedTokenIfExists(ctx)\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\tctx.addToken(token.CollectEntry(string(ctx.obuf), s.pos()))\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\treturn\n\t\t\t}\n\t\tcase ':':\n\t\t\tnc := ctx.nextChar()\n\t\t\tif s.startedFlowMapNum > 0 || nc == ' ' || s.isNewLineChar(nc) || ctx.isNextEOS() {\n\t\t\t\t// mapping value\n\t\t\t\ttk := s.bufferedToken(ctx)\n\t\t\t\tif tk != nil {\n\t\t\t\t\ts.prevIndentColumn = tk.Position.Column\n\t\t\t\t\tctx.addToken(tk)\n\t\t\t\t} else if tk := ctx.lastToken(); tk != nil {\n\t\t\t\t\t// If the map key is quote, the buffer does not exist because it has already been cut into tokens.\n\t\t\t\t\t// Therefore, we need to check the last token.\n\t\t\t\t\tif tk.Indicator == token.QuotedScalarIndicator {\n\t\t\t\t\t\ts.prevIndentColumn = tk.Position.Column\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tctx.addToken(token.MappingValue(s.pos()))\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '|', '>':\n\t\t\tif !ctx.existsBuffer() {\n\t\t\t\tprogress, err := s.scanLiteralHeader(ctx)\n\t\t\t\tif err != nil {\n\t\t\t\t\t// TODO: returns syntax error object\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\ts.progressColumn(ctx, progress)\n\t\t\t\ts.progressLine(ctx)\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase '!':\n\t\t\tif !ctx.existsBuffer() {\n\t\t\t\ttoken, progress := s.scanTag(ctx)\n\t\t\t\tctx.addToken(token)\n\t\t\t\ts.progressColumn(ctx, progress)\n\t\t\t\tif c := ctx.previousChar(); s.isNewLineChar(c) {\n\t\t\t\t\ts.progressLine(ctx)\n\t\t\t\t}\n\t\t\t\tpos += progress\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '%':\n\t\t\tif !ctx.existsBuffer() && s.indentNum == 0 {\n\t\t\t\tctx.addToken(token.Directive(string(ctx.obuf)+\"%\", s.pos()))\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '?':\n\t\t\tnc := ctx.nextChar()\n\t\t\tif !ctx.existsBuffer() && nc == ' ' {\n\t\t\t\tctx.addToken(token.MappingKey(s.pos()))\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '&':\n\t\t\tif !ctx.existsBuffer() {\n\t\t\t\ts.addBufferedTokenIfExists(ctx)\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\tctx.addToken(token.Anchor(string(ctx.obuf), s.pos()))\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\ts.isAnchor = true\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '*':\n\t\t\tif !ctx.existsBuffer() {\n\t\t\t\ts.addBufferedTokenIfExists(ctx)\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\tctx.addToken(token.Alias(string(ctx.obuf), s.pos()))\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '#':\n\t\t\tif !ctx.existsBuffer() || ctx.previousChar() == ' ' {\n\t\t\t\ts.addBufferedTokenIfExists(ctx)\n\t\t\t\ttoken, progress := s.scanComment(ctx)\n\t\t\t\tctx.addToken(token)\n\t\t\t\ts.progressColumn(ctx, progress)\n\t\t\t\ts.progressLine(ctx)\n\t\t\t\tpos += progress\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '\\'', '\"':\n\t\t\tif !ctx.existsBuffer() {\n\t\t\t\ttoken, progress := s.scanQuote(ctx, c)\n\t\t\t\tctx.addToken(token)\n\t\t\t\tpos += progress\n\t\t\t\t// If the non-whitespace character immediately following the quote is ':', the quote should be treated as a map key.\n\t\t\t\t// Therefore, do not return and continue processing as a normal map key.\n\t\t\t\tif ctx.currentCharWithSkipWhitespace() == ':' {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\tcase '\\r', '\\n':\n\t\t\t// There is no problem that we ignore CR which followed by LF and normalize it to LF, because of following YAML1.2 spec.\n\t\t\t// > Line breaks inside scalar content must be normalized by the YAML processor. Each such line break must be parsed into a single line feed character.\n\t\t\t// > Outside scalar content, YAML allows any line break to be used to terminate lines.\n\t\t\t// > -- https://yaml.org/spec/1.2/spec.html\n\t\t\tif c == '\\r' && ctx.nextChar() == '\\n' {\n\t\t\t\tctx.addOriginBuf('\\r')\n\t\t\t\tctx.progress(1)\n\t\t\t\tc = '\\n'\n\t\t\t}\n\t\t\ts.scanNewLine(ctx, c)\n\t\t\tcontinue\n\t\tcase ' ':\n\t\t\tif ctx.isSaveIndentMode() || (!s.isAnchor && !s.isFirstCharAtLine) {\n\t\t\t\tctx.addBuf(c)\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif s.isFirstCharAtLine {\n\t\t\t\ts.progressColumn(ctx, 1)\n\t\t\t\tctx.addOriginBuf(c)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ts.addBufferedTokenIfExists(ctx)\n\t\t\tpos-- // to rescan white space at next scanning for adding white space to next buffer.\n\t\t\ts.isAnchor = false\n\t\t\treturn\n\t\t}\n\t\tctx.addBuf(c)\n\t\tctx.addOriginBuf(c)\n\t\ts.progressColumn(ctx, 1)\n\t}\n\ts.addBufferedTokenIfExists(ctx)\n\treturn\n}\n\n// Init prepares the scanner s to tokenize the text src by setting the scanner at the beginning of src.\nfunc (s *Scanner) Init(text string) {\n\tsrc := []rune(text)\n\ts.source = src\n\ts.sourcePos = 0\n\ts.sourceSize = len(src)\n\ts.line = 1\n\ts.column = 1\n\ts.offset = 1\n\ts.prevIndentLevel = 0\n\ts.prevIndentNum = 0\n\ts.prevIndentColumn = 0\n\ts.indentLevel = 0\n\ts.indentNum = 0\n\ts.isFirstCharAtLine = true\n}\n\n// Scan scans the next token and returns the token collection. The source end is indicated by io.EOF.\nfunc (s *Scanner) Scan() (token.Tokens, error) {\n\tif s.sourcePos >= s.sourceSize {\n\t\treturn nil, io.EOF\n\t}\n\tctx := newContext(s.source[s.sourcePos:])\n\tdefer ctx.release()\n\tprogress := s.scan(ctx)\n\ts.sourcePos += progress\n\tvar tokens token.Tokens\n\ttokens = append(tokens, ctx.tokens...)\n\treturn tokens, nil\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/stdlib_quote.go",
    "content": "// Copied and trimmed down from https://github.com/golang/go/blob/e3769299cd3484e018e0e2a6e1b95c2b18ce4f41/src/strconv/quote.go\n// We want to use the standard library's private \"quoteWith\" function rather than write our own so that we get robust unicode support.\n// Every private function called by quoteWith was copied.\n// There are 2 modifications to simplify the code:\n// 1. The unicode.IsPrint function was substituted for the custom implementation of IsPrint\n// 2. All code paths reachable only when ASCIIonly or grphicOnly are set to true were removed.\n\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage yaml\n\nimport (\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\nconst (\n\tlowerhex = \"0123456789abcdef\"\n)\n\nfunc quoteWith(s string, quote byte) string {\n\treturn string(appendQuotedWith(make([]byte, 0, 3*len(s)/2), s, quote))\n}\n\nfunc appendQuotedWith(buf []byte, s string, quote byte) []byte {\n\t// Often called with big strings, so preallocate. If there's quoting,\n\t// this is conservative but still helps a lot.\n\tif cap(buf)-len(buf) < len(s) {\n\t\tnBuf := make([]byte, len(buf), len(buf)+1+len(s)+1)\n\t\tcopy(nBuf, buf)\n\t\tbuf = nBuf\n\t}\n\tbuf = append(buf, quote)\n\tfor width := 0; len(s) > 0; s = s[width:] {\n\t\tr := rune(s[0])\n\t\twidth = 1\n\t\tif r >= utf8.RuneSelf {\n\t\t\tr, width = utf8.DecodeRuneInString(s)\n\t\t}\n\t\tif width == 1 && r == utf8.RuneError {\n\t\t\tbuf = append(buf, `\\x`...)\n\t\t\tbuf = append(buf, lowerhex[s[0]>>4])\n\t\t\tbuf = append(buf, lowerhex[s[0]&0xF])\n\t\t\tcontinue\n\t\t}\n\t\tbuf = appendEscapedRune(buf, r, quote)\n\t}\n\tbuf = append(buf, quote)\n\treturn buf\n}\n\nfunc appendEscapedRune(buf []byte, r rune, quote byte) []byte {\n\tvar runeTmp [utf8.UTFMax]byte\n\tif r == rune(quote) || r == '\\\\' { // always backslashed\n\t\tbuf = append(buf, '\\\\')\n\t\tbuf = append(buf, byte(r))\n\t\treturn buf\n\t}\n\tif unicode.IsPrint(r) {\n\t\tn := utf8.EncodeRune(runeTmp[:], r)\n\t\tbuf = append(buf, runeTmp[:n]...)\n\t\treturn buf\n\t}\n\tswitch r {\n\tcase '\\a':\n\t\tbuf = append(buf, `\\a`...)\n\tcase '\\b':\n\t\tbuf = append(buf, `\\b`...)\n\tcase '\\f':\n\t\tbuf = append(buf, `\\f`...)\n\tcase '\\n':\n\t\tbuf = append(buf, `\\n`...)\n\tcase '\\r':\n\t\tbuf = append(buf, `\\r`...)\n\tcase '\\t':\n\t\tbuf = append(buf, `\\t`...)\n\tcase '\\v':\n\t\tbuf = append(buf, `\\v`...)\n\tdefault:\n\t\tswitch {\n\t\tcase r < ' ':\n\t\t\tbuf = append(buf, `\\x`...)\n\t\t\tbuf = append(buf, lowerhex[byte(r)>>4])\n\t\t\tbuf = append(buf, lowerhex[byte(r)&0xF])\n\t\tcase r > utf8.MaxRune:\n\t\t\tr = 0xFFFD\n\t\t\tfallthrough\n\t\tcase r < 0x10000:\n\t\t\tbuf = append(buf, `\\u`...)\n\t\t\tfor s := 12; s >= 0; s -= 4 {\n\t\t\t\tbuf = append(buf, lowerhex[r>>uint(s)&0xF])\n\t\t\t}\n\t\tdefault:\n\t\t\tbuf = append(buf, `\\U`...)\n\t\t\tfor s := 28; s >= 0; s -= 4 {\n\t\t\t\tbuf = append(buf, lowerhex[r>>uint(s)&0xF])\n\t\t\t}\n\t\t}\n\t}\n\treturn buf\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/struct.go",
    "content": "package yaml\n\nimport (\n\t\"reflect\"\n\t\"strings\"\n\n\t\"golang.org/x/xerrors\"\n)\n\nconst (\n\t// StructTagName tag keyword for Marshal/Unmarshal\n\tStructTagName = \"yaml\"\n)\n\n// StructField information for each the field in structure\ntype StructField struct {\n\tFieldName    string\n\tRenderName   string\n\tAnchorName   string\n\tAliasName    string\n\tIsAutoAnchor bool\n\tIsAutoAlias  bool\n\tIsOmitEmpty  bool\n\tIsFlow       bool\n\tIsInline     bool\n}\n\nfunc getTag(field reflect.StructField) string {\n\t// If struct tag `yaml` exist, use that. If no `yaml`\n\t// exists, but `json` does, use that and try the best to\n\t// adhere to its rules\n\ttag := field.Tag.Get(StructTagName)\n\tif tag == \"\" {\n\t\ttag = field.Tag.Get(`json`)\n\t}\n\treturn tag\n}\n\nfunc structField(field reflect.StructField) *StructField {\n\ttag := getTag(field)\n\tfieldName := strings.ToLower(field.Name)\n\toptions := strings.Split(tag, \",\")\n\tif len(options) > 0 {\n\t\tif options[0] != \"\" {\n\t\t\tfieldName = options[0]\n\t\t}\n\t}\n\tstructField := &StructField{\n\t\tFieldName:  field.Name,\n\t\tRenderName: fieldName,\n\t}\n\tif len(options) > 1 {\n\t\tfor _, opt := range options[1:] {\n\t\t\tswitch {\n\t\t\tcase opt == \"omitempty\":\n\t\t\t\tstructField.IsOmitEmpty = true\n\t\t\tcase opt == \"flow\":\n\t\t\t\tstructField.IsFlow = true\n\t\t\tcase opt == \"inline\":\n\t\t\t\tstructField.IsInline = true\n\t\t\tcase strings.HasPrefix(opt, \"anchor\"):\n\t\t\t\tanchor := strings.Split(opt, \"=\")\n\t\t\t\tif len(anchor) > 1 {\n\t\t\t\t\tstructField.AnchorName = anchor[1]\n\t\t\t\t} else {\n\t\t\t\t\tstructField.IsAutoAnchor = true\n\t\t\t\t}\n\t\t\tcase strings.HasPrefix(opt, \"alias\"):\n\t\t\t\talias := strings.Split(opt, \"=\")\n\t\t\t\tif len(alias) > 1 {\n\t\t\t\t\tstructField.AliasName = alias[1]\n\t\t\t\t} else {\n\t\t\t\t\tstructField.IsAutoAlias = true\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t}\n\t\t}\n\t}\n\treturn structField\n}\n\nfunc isIgnoredStructField(field reflect.StructField) bool {\n\tif field.PkgPath != \"\" && !field.Anonymous {\n\t\t// private field\n\t\treturn true\n\t}\n\ttag := getTag(field)\n\tif tag == \"-\" {\n\t\treturn true\n\t}\n\treturn false\n}\n\ntype StructFieldMap map[string]*StructField\n\nfunc (m StructFieldMap) isIncludedRenderName(name string) bool {\n\tfor _, v := range m {\n\t\tif !v.IsInline && v.RenderName == name {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (m StructFieldMap) hasMergeProperty() bool {\n\tfor _, v := range m {\n\t\tif v.IsOmitEmpty && v.IsInline && v.IsAutoAlias {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc structFieldMap(structType reflect.Type) (StructFieldMap, error) {\n\tstructFieldMap := StructFieldMap{}\n\trenderNameMap := map[string]struct{}{}\n\tfor i := 0; i < structType.NumField(); i++ {\n\t\tfield := structType.Field(i)\n\t\tif isIgnoredStructField(field) {\n\t\t\tcontinue\n\t\t}\n\t\tstructField := structField(field)\n\t\tif _, exists := renderNameMap[structField.RenderName]; exists {\n\t\t\treturn nil, xerrors.Errorf(\"duplicated struct field name %s\", structField.RenderName)\n\t\t}\n\t\tstructFieldMap[structField.FieldName] = structField\n\t\trenderNameMap[structField.RenderName] = struct{}{}\n\t}\n\treturn structFieldMap, nil\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/token/token.go",
    "content": "package token\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n// Character type for character\ntype Character byte\n\nconst (\n\t// SequenceEntryCharacter character for sequence entry\n\tSequenceEntryCharacter Character = '-'\n\t// MappingKeyCharacter character for mapping key\n\tMappingKeyCharacter Character = '?'\n\t// MappingValueCharacter character for mapping value\n\tMappingValueCharacter Character = ':'\n\t// CollectEntryCharacter character for collect entry\n\tCollectEntryCharacter Character = ','\n\t// SequenceStartCharacter character for sequence start\n\tSequenceStartCharacter Character = '['\n\t// SequenceEndCharacter character for sequence end\n\tSequenceEndCharacter Character = ']'\n\t// MappingStartCharacter character for mapping start\n\tMappingStartCharacter Character = '{'\n\t// MappingEndCharacter character for mapping end\n\tMappingEndCharacter Character = '}'\n\t// CommentCharacter character for comment\n\tCommentCharacter Character = '#'\n\t// AnchorCharacter character for anchor\n\tAnchorCharacter Character = '&'\n\t// AliasCharacter character for alias\n\tAliasCharacter Character = '*'\n\t// TagCharacter character for tag\n\tTagCharacter Character = '!'\n\t// LiteralCharacter character for literal\n\tLiteralCharacter Character = '|'\n\t// FoldedCharacter character for folded\n\tFoldedCharacter Character = '>'\n\t// SingleQuoteCharacter character for single quote\n\tSingleQuoteCharacter Character = '\\''\n\t// DoubleQuoteCharacter character for double quote\n\tDoubleQuoteCharacter Character = '\"'\n\t// DirectiveCharacter character for directive\n\tDirectiveCharacter Character = '%'\n\t// SpaceCharacter character for space\n\tSpaceCharacter Character = ' '\n\t// LineBreakCharacter character for line break\n\tLineBreakCharacter Character = '\\n'\n)\n\n// Type type identifier for token\ntype Type int\n\nconst (\n\t// UnknownType reserve for invalid type\n\tUnknownType Type = iota\n\t// DocumentHeaderType type for DocumentHeader token\n\tDocumentHeaderType\n\t// DocumentEndType type for DocumentEnd token\n\tDocumentEndType\n\t// SequenceEntryType type for SequenceEntry token\n\tSequenceEntryType\n\t// MappingKeyType type for MappingKey token\n\tMappingKeyType\n\t// MappingValueType type for MappingValue token\n\tMappingValueType\n\t// MergeKeyType type for MergeKey token\n\tMergeKeyType\n\t// CollectEntryType type for CollectEntry token\n\tCollectEntryType\n\t// SequenceStartType type for SequenceStart token\n\tSequenceStartType\n\t// SequenceEndType type for SequenceEnd token\n\tSequenceEndType\n\t// MappingStartType type for MappingStart token\n\tMappingStartType\n\t// MappingEndType type for MappingEnd token\n\tMappingEndType\n\t// CommentType type for Comment token\n\tCommentType\n\t// AnchorType type for Anchor token\n\tAnchorType\n\t// AliasType type for Alias token\n\tAliasType\n\t// TagType type for Tag token\n\tTagType\n\t// LiteralType type for Literal token\n\tLiteralType\n\t// FoldedType type for Folded token\n\tFoldedType\n\t// SingleQuoteType type for SingleQuote token\n\tSingleQuoteType\n\t// DoubleQuoteType type for DoubleQuote token\n\tDoubleQuoteType\n\t// DirectiveType type for Directive token\n\tDirectiveType\n\t// SpaceType type for Space token\n\tSpaceType\n\t// NullType type for Null token\n\tNullType\n\t// InfinityType type for Infinity token\n\tInfinityType\n\t// NanType type for Nan token\n\tNanType\n\t// IntegerType type for Integer token\n\tIntegerType\n\t// BinaryIntegerType type for BinaryInteger token\n\tBinaryIntegerType\n\t// OctetIntegerType type for OctetInteger token\n\tOctetIntegerType\n\t// HexIntegerType type for HexInteger token\n\tHexIntegerType\n\t// FloatType type for Float token\n\tFloatType\n\t// StringType type for String token\n\tStringType\n\t// BoolType type for Bool token\n\tBoolType\n)\n\n// String type identifier to text\nfunc (t Type) String() string {\n\tswitch t {\n\tcase UnknownType:\n\t\treturn \"Unknown\"\n\tcase DocumentHeaderType:\n\t\treturn \"DocumentHeader\"\n\tcase DocumentEndType:\n\t\treturn \"DocumentEnd\"\n\tcase SequenceEntryType:\n\t\treturn \"SequenceEntry\"\n\tcase MappingKeyType:\n\t\treturn \"MappingKey\"\n\tcase MappingValueType:\n\t\treturn \"MappingValue\"\n\tcase MergeKeyType:\n\t\treturn \"MergeKey\"\n\tcase CollectEntryType:\n\t\treturn \"CollectEntry\"\n\tcase SequenceStartType:\n\t\treturn \"SequenceStart\"\n\tcase SequenceEndType:\n\t\treturn \"SequenceEnd\"\n\tcase MappingStartType:\n\t\treturn \"MappingStart\"\n\tcase MappingEndType:\n\t\treturn \"MappingEnd\"\n\tcase CommentType:\n\t\treturn \"Comment\"\n\tcase AnchorType:\n\t\treturn \"Anchor\"\n\tcase AliasType:\n\t\treturn \"Alias\"\n\tcase TagType:\n\t\treturn \"Tag\"\n\tcase LiteralType:\n\t\treturn \"Literal\"\n\tcase FoldedType:\n\t\treturn \"Folded\"\n\tcase SingleQuoteType:\n\t\treturn \"SingleQuote\"\n\tcase DoubleQuoteType:\n\t\treturn \"DoubleQuote\"\n\tcase DirectiveType:\n\t\treturn \"Directive\"\n\tcase SpaceType:\n\t\treturn \"Space\"\n\tcase StringType:\n\t\treturn \"String\"\n\tcase BoolType:\n\t\treturn \"Bool\"\n\tcase IntegerType:\n\t\treturn \"Integer\"\n\tcase BinaryIntegerType:\n\t\treturn \"BinaryInteger\"\n\tcase OctetIntegerType:\n\t\treturn \"OctetInteger\"\n\tcase HexIntegerType:\n\t\treturn \"HexInteger\"\n\tcase FloatType:\n\t\treturn \"Float\"\n\tcase NullType:\n\t\treturn \"Null\"\n\tcase InfinityType:\n\t\treturn \"Infinity\"\n\tcase NanType:\n\t\treturn \"Nan\"\n\t}\n\treturn \"\"\n}\n\n// CharacterType type for character category\ntype CharacterType int\n\nconst (\n\t// CharacterTypeIndicator type of indicator character\n\tCharacterTypeIndicator CharacterType = iota\n\t// CharacterTypeWhiteSpace type of white space character\n\tCharacterTypeWhiteSpace\n\t// CharacterTypeMiscellaneous type of miscellaneous character\n\tCharacterTypeMiscellaneous\n\t// CharacterTypeEscaped type of escaped character\n\tCharacterTypeEscaped\n)\n\n// String character type identifier to text\nfunc (c CharacterType) String() string {\n\tswitch c {\n\tcase CharacterTypeIndicator:\n\t\treturn \"Indicator\"\n\tcase CharacterTypeWhiteSpace:\n\t\treturn \"WhiteSpcae\"\n\tcase CharacterTypeMiscellaneous:\n\t\treturn \"Miscellaneous\"\n\tcase CharacterTypeEscaped:\n\t\treturn \"Escaped\"\n\t}\n\treturn \"\"\n}\n\n// Indicator type for indicator\ntype Indicator int\n\nconst (\n\t// NotIndicator not indicator\n\tNotIndicator Indicator = iota\n\t// BlockStructureIndicator indicator for block structure ( '-', '?', ':' )\n\tBlockStructureIndicator\n\t// FlowCollectionIndicator indicator for flow collection ( '[', ']', '{', '}', ',' )\n\tFlowCollectionIndicator\n\t// CommentIndicator indicator for comment ( '#' )\n\tCommentIndicator\n\t// NodePropertyIndicator indicator for node property ( '!', '&', '*' )\n\tNodePropertyIndicator\n\t// BlockScalarIndicator indicator for block scalar ( '|', '>' )\n\tBlockScalarIndicator\n\t// QuotedScalarIndicator indicator for quoted scalar ( ''', '\"' )\n\tQuotedScalarIndicator\n\t// DirectiveIndicator indicator for directive ( '%' )\n\tDirectiveIndicator\n\t// InvalidUseOfReservedIndicator indicator for invalid use of reserved keyword ( '@', '`' )\n\tInvalidUseOfReservedIndicator\n)\n\n// String indicator to text\nfunc (i Indicator) String() string {\n\tswitch i {\n\tcase NotIndicator:\n\t\treturn \"NotIndicator\"\n\tcase BlockStructureIndicator:\n\t\treturn \"BlockStructure\"\n\tcase FlowCollectionIndicator:\n\t\treturn \"FlowCollection\"\n\tcase CommentIndicator:\n\t\treturn \"Comment\"\n\tcase NodePropertyIndicator:\n\t\treturn \"NodeProperty\"\n\tcase BlockScalarIndicator:\n\t\treturn \"BlockScalar\"\n\tcase QuotedScalarIndicator:\n\t\treturn \"QuotedScalar\"\n\tcase DirectiveIndicator:\n\t\treturn \"Directive\"\n\tcase InvalidUseOfReservedIndicator:\n\t\treturn \"InvalidUseOfReserved\"\n\t}\n\treturn \"\"\n}\n\nvar (\n\treservedNullKeywords = []string{\n\t\t\"null\",\n\t\t\"Null\",\n\t\t\"NULL\",\n\t\t\"~\",\n\t}\n\treservedBoolKeywords = []string{\n\t\t\"true\",\n\t\t\"True\",\n\t\t\"TRUE\",\n\t\t\"false\",\n\t\t\"False\",\n\t\t\"FALSE\",\n\t}\n\t// For compatibility with other YAML 1.1 parsers\n\t// Note that we use these solely for encoding the bool value with quotes.\n\t// go-yaml should not treat these as reserved keywords at parsing time.\n\t// as go-yaml is supposed to be compliant only with YAML 1.2.\n\treservedLegacyBoolKeywords = []string{\n\t\t\"y\",\n\t\t\"Y\",\n\t\t\"yes\",\n\t\t\"Yes\",\n\t\t\"YES\",\n\t\t\"n\",\n\t\t\"N\",\n\t\t\"no\",\n\t\t\"No\",\n\t\t\"NO\",\n\t\t\"on\",\n\t\t\"On\",\n\t\t\"ON\",\n\t\t\"off\",\n\t\t\"Off\",\n\t\t\"OFF\",\n\t}\n\treservedInfKeywords = []string{\n\t\t\".inf\",\n\t\t\".Inf\",\n\t\t\".INF\",\n\t\t\"-.inf\",\n\t\t\"-.Inf\",\n\t\t\"-.INF\",\n\t}\n\treservedNanKeywords = []string{\n\t\t\".nan\",\n\t\t\".NaN\",\n\t\t\".NAN\",\n\t}\n\treservedKeywordMap = map[string]func(string, string, *Position) *Token{}\n\t// reservedEncKeywordMap contains is the keyword map used at encoding time.\n\t// This is supposed to be a superset of reservedKeywordMap,\n\t// and used to quote legacy keywords present in YAML 1.1 or lesser for compatibility reasons,\n\t// even though this library is supposed to be YAML 1.2-compliant.\n\treservedEncKeywordMap = map[string]func(string, string, *Position) *Token{}\n)\n\nfunc reservedKeywordToken(typ Type, value, org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          typ,\n\t\tCharacterType: CharacterTypeMiscellaneous,\n\t\tIndicator:     NotIndicator,\n\t\tValue:         value,\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\nfunc init() {\n\tfor _, keyword := range reservedNullKeywords {\n\t\treservedKeywordMap[keyword] = func(value, org string, pos *Position) *Token {\n\t\t\treturn reservedKeywordToken(NullType, value, org, pos)\n\t\t}\n\t}\n\tfor _, keyword := range reservedBoolKeywords {\n\t\tf := func(value, org string, pos *Position) *Token {\n\t\t\treturn reservedKeywordToken(BoolType, value, org, pos)\n\t\t}\n\t\treservedKeywordMap[keyword] = f\n\t\treservedEncKeywordMap[keyword] = f\n\t}\n\tfor _, keyword := range reservedLegacyBoolKeywords {\n\t\treservedEncKeywordMap[keyword] = func(value, org string, pos *Position) *Token {\n\t\t\treturn reservedKeywordToken(BoolType, value, org, pos)\n\t\t}\n\t}\n\tfor _, keyword := range reservedInfKeywords {\n\t\treservedKeywordMap[keyword] = func(value, org string, pos *Position) *Token {\n\t\t\treturn reservedKeywordToken(InfinityType, value, org, pos)\n\t\t}\n\t}\n\tfor _, keyword := range reservedNanKeywords {\n\t\treservedKeywordMap[keyword] = func(value, org string, pos *Position) *Token {\n\t\t\treturn reservedKeywordToken(NanType, value, org, pos)\n\t\t}\n\t}\n}\n\n// ReservedTagKeyword type of reserved tag keyword\ntype ReservedTagKeyword string\n\nconst (\n\t// IntegerTag `!!int` tag\n\tIntegerTag ReservedTagKeyword = \"!!int\"\n\t// FloatTag `!!float` tag\n\tFloatTag ReservedTagKeyword = \"!!float\"\n\t// NullTag `!!null` tag\n\tNullTag ReservedTagKeyword = \"!!null\"\n\t// SequenceTag `!!seq` tag\n\tSequenceTag ReservedTagKeyword = \"!!seq\"\n\t// MappingTag `!!map` tag\n\tMappingTag ReservedTagKeyword = \"!!map\"\n\t// StringTag `!!str` tag\n\tStringTag ReservedTagKeyword = \"!!str\"\n\t// BinaryTag `!!binary` tag\n\tBinaryTag ReservedTagKeyword = \"!!binary\"\n\t// OrderedMapTag `!!omap` tag\n\tOrderedMapTag ReservedTagKeyword = \"!!omap\"\n\t// SetTag `!!set` tag\n\tSetTag ReservedTagKeyword = \"!!set\"\n\t// TimestampTag `!!timestamp` tag\n\tTimestampTag ReservedTagKeyword = \"!!timestamp\"\n)\n\nvar (\n\t// ReservedTagKeywordMap map for reserved tag keywords\n\tReservedTagKeywordMap = map[ReservedTagKeyword]func(string, string, *Position) *Token{\n\t\tIntegerTag: func(value, org string, pos *Position) *Token {\n\t\t\treturn &Token{\n\t\t\t\tType:          TagType,\n\t\t\t\tCharacterType: CharacterTypeIndicator,\n\t\t\t\tIndicator:     NodePropertyIndicator,\n\t\t\t\tValue:         value,\n\t\t\t\tOrigin:        org,\n\t\t\t\tPosition:      pos,\n\t\t\t}\n\t\t},\n\t\tFloatTag: func(value, org string, pos *Position) *Token {\n\t\t\treturn &Token{\n\t\t\t\tType:          TagType,\n\t\t\t\tCharacterType: CharacterTypeIndicator,\n\t\t\t\tIndicator:     NodePropertyIndicator,\n\t\t\t\tValue:         value,\n\t\t\t\tOrigin:        org,\n\t\t\t\tPosition:      pos,\n\t\t\t}\n\t\t},\n\t\tNullTag: func(value, org string, pos *Position) *Token {\n\t\t\treturn &Token{\n\t\t\t\tType:          TagType,\n\t\t\t\tCharacterType: CharacterTypeIndicator,\n\t\t\t\tIndicator:     NodePropertyIndicator,\n\t\t\t\tValue:         value,\n\t\t\t\tOrigin:        org,\n\t\t\t\tPosition:      pos,\n\t\t\t}\n\t\t},\n\t\tSequenceTag: func(value, org string, pos *Position) *Token {\n\t\t\treturn &Token{\n\t\t\t\tType:          TagType,\n\t\t\t\tCharacterType: CharacterTypeIndicator,\n\t\t\t\tIndicator:     NodePropertyIndicator,\n\t\t\t\tValue:         value,\n\t\t\t\tOrigin:        org,\n\t\t\t\tPosition:      pos,\n\t\t\t}\n\t\t},\n\t\tMappingTag: func(value, org string, pos *Position) *Token {\n\t\t\treturn &Token{\n\t\t\t\tType:          TagType,\n\t\t\t\tCharacterType: CharacterTypeIndicator,\n\t\t\t\tIndicator:     NodePropertyIndicator,\n\t\t\t\tValue:         value,\n\t\t\t\tOrigin:        org,\n\t\t\t\tPosition:      pos,\n\t\t\t}\n\t\t},\n\t\tStringTag: func(value, org string, pos *Position) *Token {\n\t\t\treturn &Token{\n\t\t\t\tType:          TagType,\n\t\t\t\tCharacterType: CharacterTypeIndicator,\n\t\t\t\tIndicator:     NodePropertyIndicator,\n\t\t\t\tValue:         value,\n\t\t\t\tOrigin:        org,\n\t\t\t\tPosition:      pos,\n\t\t\t}\n\t\t},\n\t\tBinaryTag: func(value, org string, pos *Position) *Token {\n\t\t\treturn &Token{\n\t\t\t\tType:          TagType,\n\t\t\t\tCharacterType: CharacterTypeIndicator,\n\t\t\t\tIndicator:     NodePropertyIndicator,\n\t\t\t\tValue:         value,\n\t\t\t\tOrigin:        org,\n\t\t\t\tPosition:      pos,\n\t\t\t}\n\t\t},\n\t\tOrderedMapTag: func(value, org string, pos *Position) *Token {\n\t\t\treturn &Token{\n\t\t\t\tType:          TagType,\n\t\t\t\tCharacterType: CharacterTypeIndicator,\n\t\t\t\tIndicator:     NodePropertyIndicator,\n\t\t\t\tValue:         value,\n\t\t\t\tOrigin:        org,\n\t\t\t\tPosition:      pos,\n\t\t\t}\n\t\t},\n\t\tSetTag: func(value, org string, pos *Position) *Token {\n\t\t\treturn &Token{\n\t\t\t\tType:          TagType,\n\t\t\t\tCharacterType: CharacterTypeIndicator,\n\t\t\t\tIndicator:     NodePropertyIndicator,\n\t\t\t\tValue:         value,\n\t\t\t\tOrigin:        org,\n\t\t\t\tPosition:      pos,\n\t\t\t}\n\t\t},\n\t\tTimestampTag: func(value, org string, pos *Position) *Token {\n\t\t\treturn &Token{\n\t\t\t\tType:          TagType,\n\t\t\t\tCharacterType: CharacterTypeIndicator,\n\t\t\t\tIndicator:     NodePropertyIndicator,\n\t\t\t\tValue:         value,\n\t\t\t\tOrigin:        org,\n\t\t\t\tPosition:      pos,\n\t\t\t}\n\t\t},\n\t}\n)\n\ntype numType int\n\nconst (\n\tnumTypeNone numType = iota\n\tnumTypeBinary\n\tnumTypeOctet\n\tnumTypeHex\n\tnumTypeFloat\n)\n\ntype numStat struct {\n\tisNum bool\n\ttyp   numType\n}\n\nfunc getNumberStat(str string) *numStat {\n\tstat := &numStat{}\n\tif str == \"\" {\n\t\treturn stat\n\t}\n\tif str == \"-\" || str == \".\" || str == \"+\" || str == \"_\" {\n\t\treturn stat\n\t}\n\tif str[0] == '_' {\n\t\treturn stat\n\t}\n\tdotFound := false\n\tisNegative := false\n\tisExponent := false\n\tif str[0] == '-' {\n\t\tisNegative = true\n\t}\n\tfor idx, c := range str {\n\t\tswitch c {\n\t\tcase 'x':\n\t\t\tif (isNegative && idx == 2) || (!isNegative && idx == 1) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase 'o':\n\t\t\tif (isNegative && idx == 2) || (!isNegative && idx == 1) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\t\tcontinue\n\t\tcase 'a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F':\n\t\t\tif (len(str) > 2 && str[0] == '0' && str[1] == 'x') ||\n\t\t\t\t(len(str) > 3 && isNegative && str[1] == '0' && str[2] == 'x') {\n\t\t\t\t// hex number\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif c == 'b' && ((isNegative && idx == 2) || (!isNegative && idx == 1)) {\n\t\t\t\t// binary number\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (c == 'e' || c == 'E') && dotFound {\n\t\t\t\t// exponent\n\t\t\t\tisExponent = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase '.':\n\t\t\tif dotFound {\n\t\t\t\t// multiple dot\n\t\t\t\treturn stat\n\t\t\t}\n\t\t\tdotFound = true\n\t\t\tcontinue\n\t\tcase '-':\n\t\t\tif idx == 0 || isExponent {\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase '+':\n\t\t\tif idx == 0 || isExponent {\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase '_':\n\t\t\tcontinue\n\t\t}\n\t\treturn stat\n\t}\n\tstat.isNum = true\n\tswitch {\n\tcase dotFound:\n\t\tstat.typ = numTypeFloat\n\tcase strings.HasPrefix(str, \"0b\") || strings.HasPrefix(str, \"-0b\"):\n\t\tstat.typ = numTypeBinary\n\tcase strings.HasPrefix(str, \"0x\") || strings.HasPrefix(str, \"-0x\"):\n\t\tstat.typ = numTypeHex\n\tcase strings.HasPrefix(str, \"0o\") || strings.HasPrefix(str, \"-0o\"):\n\t\tstat.typ = numTypeOctet\n\tcase (len(str) > 1 && str[0] == '0') || (len(str) > 1 && str[0] == '-' && str[1] == '0'):\n\t\tstat.typ = numTypeOctet\n\t}\n\treturn stat\n}\n\nfunc looksLikeTimeValue(value string) bool {\n\tfor i, c := range value {\n\t\tswitch c {\n\t\tcase ':', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\t\tcontinue\n\t\tcase '0':\n\t\t\tif i == 0 {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn false\n\t}\n\treturn true\n}\n\n// IsNeedQuoted whether need quote for passed string or not\nfunc IsNeedQuoted(value string) bool {\n\tif value == \"\" {\n\t\treturn true\n\t}\n\tif _, exists := reservedEncKeywordMap[value]; exists {\n\t\treturn true\n\t}\n\tif stat := getNumberStat(value); stat.isNum {\n\t\treturn true\n\t}\n\tfirst := value[0]\n\tswitch first {\n\tcase '*', '&', '[', '{', '}', ']', ',', '!', '|', '>', '%', '\\'', '\"', '@':\n\t\treturn true\n\t}\n\tlast := value[len(value)-1]\n\tswitch last {\n\tcase ':':\n\t\treturn true\n\t}\n\tif looksLikeTimeValue(value) {\n\t\treturn true\n\t}\n\tfor i, c := range value {\n\t\tswitch c {\n\t\tcase '#', '\\\\':\n\t\t\treturn true\n\t\tcase ':':\n\t\t\tif i+1 < len(value) && value[i+1] == ' ' {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// LiteralBlockHeader detect literal block scalar header\nfunc LiteralBlockHeader(value string) string {\n\tlbc := DetectLineBreakCharacter(value)\n\n\tswitch {\n\tcase !strings.Contains(value, lbc):\n\t\treturn \"\"\n\tcase strings.HasSuffix(value, fmt.Sprintf(\"%s%s\", lbc, lbc)):\n\t\treturn \"|+\"\n\tcase strings.HasSuffix(value, lbc):\n\t\treturn \"|\"\n\tdefault:\n\t\treturn \"|-\"\n\t}\n}\n\n// New create reserved keyword token or number token and other string token\nfunc New(value string, org string, pos *Position) *Token {\n\tfn := reservedKeywordMap[value]\n\tif fn != nil {\n\t\treturn fn(value, org, pos)\n\t}\n\tif stat := getNumberStat(value); stat.isNum {\n\t\ttk := &Token{\n\t\t\tType:          IntegerType,\n\t\t\tCharacterType: CharacterTypeMiscellaneous,\n\t\t\tIndicator:     NotIndicator,\n\t\t\tValue:         value,\n\t\t\tOrigin:        org,\n\t\t\tPosition:      pos,\n\t\t}\n\t\tswitch stat.typ {\n\t\tcase numTypeFloat:\n\t\t\ttk.Type = FloatType\n\t\tcase numTypeBinary:\n\t\t\ttk.Type = BinaryIntegerType\n\t\tcase numTypeOctet:\n\t\t\ttk.Type = OctetIntegerType\n\t\tcase numTypeHex:\n\t\t\ttk.Type = HexIntegerType\n\t\t}\n\t\treturn tk\n\t}\n\treturn String(value, org, pos)\n}\n\n// Position type for position in YAML document\ntype Position struct {\n\tLine        int\n\tColumn      int\n\tOffset      int\n\tIndentNum   int\n\tIndentLevel int\n}\n\n// String position to text\nfunc (p *Position) String() string {\n\treturn fmt.Sprintf(\"[level:%d,line:%d,column:%d,offset:%d]\", p.IndentLevel, p.Line, p.Column, p.Offset)\n}\n\n// Token type for token\ntype Token struct {\n\tType          Type\n\tCharacterType CharacterType\n\tIndicator     Indicator\n\tValue         string\n\tOrigin        string\n\tPosition      *Position\n\tNext          *Token\n\tPrev          *Token\n}\n\n// PreviousType previous token type\nfunc (t *Token) PreviousType() Type {\n\tif t.Prev != nil {\n\t\treturn t.Prev.Type\n\t}\n\treturn UnknownType\n}\n\n// NextType next token type\nfunc (t *Token) NextType() Type {\n\tif t.Next != nil {\n\t\treturn t.Next.Type\n\t}\n\treturn UnknownType\n}\n\n// AddColumn append column number to current position of column\nfunc (t *Token) AddColumn(col int) {\n\tif t == nil {\n\t\treturn\n\t}\n\tt.Position.Column += col\n}\n\n// Clone copy token ( preserve Prev/Next reference )\nfunc (t *Token) Clone() *Token {\n\tif t == nil {\n\t\treturn nil\n\t}\n\tcopied := *t\n\tif t.Position != nil {\n\t\tpos := *(t.Position)\n\t\tcopied.Position = &pos\n\t}\n\treturn &copied\n}\n\n// Tokens type of token collection\ntype Tokens []*Token\n\nfunc (t *Tokens) add(tk *Token) {\n\ttokens := *t\n\tif len(tokens) == 0 {\n\t\ttokens = append(tokens, tk)\n\t} else {\n\t\tlast := tokens[len(tokens)-1]\n\t\tlast.Next = tk\n\t\ttk.Prev = last\n\t\ttokens = append(tokens, tk)\n\t}\n\t*t = tokens\n}\n\n// Add append new some tokens\nfunc (t *Tokens) Add(tks ...*Token) {\n\tfor _, tk := range tks {\n\t\tt.add(tk)\n\t}\n}\n\n// Dump dump all token structures for debugging\nfunc (t Tokens) Dump() {\n\tfor _, tk := range t {\n\t\tfmt.Printf(\"- %+v\\n\", tk)\n\t}\n}\n\n// String create token for String\nfunc String(value string, org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          StringType,\n\t\tCharacterType: CharacterTypeMiscellaneous,\n\t\tIndicator:     NotIndicator,\n\t\tValue:         value,\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// SequenceEntry create token for SequenceEntry\nfunc SequenceEntry(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          SequenceEntryType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     BlockStructureIndicator,\n\t\tValue:         string(SequenceEntryCharacter),\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// MappingKey create token for MappingKey\nfunc MappingKey(pos *Position) *Token {\n\treturn &Token{\n\t\tType:          MappingKeyType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     BlockStructureIndicator,\n\t\tValue:         string(MappingKeyCharacter),\n\t\tOrigin:        string(MappingKeyCharacter),\n\t\tPosition:      pos,\n\t}\n}\n\n// MappingValue create token for MappingValue\nfunc MappingValue(pos *Position) *Token {\n\treturn &Token{\n\t\tType:          MappingValueType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     BlockStructureIndicator,\n\t\tValue:         string(MappingValueCharacter),\n\t\tOrigin:        string(MappingValueCharacter),\n\t\tPosition:      pos,\n\t}\n}\n\n// CollectEntry create token for CollectEntry\nfunc CollectEntry(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          CollectEntryType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     FlowCollectionIndicator,\n\t\tValue:         string(CollectEntryCharacter),\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// SequenceStart create token for SequenceStart\nfunc SequenceStart(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          SequenceStartType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     FlowCollectionIndicator,\n\t\tValue:         string(SequenceStartCharacter),\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// SequenceEnd create token for SequenceEnd\nfunc SequenceEnd(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          SequenceEndType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     FlowCollectionIndicator,\n\t\tValue:         string(SequenceEndCharacter),\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// MappingStart create token for MappingStart\nfunc MappingStart(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          MappingStartType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     FlowCollectionIndicator,\n\t\tValue:         string(MappingStartCharacter),\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// MappingEnd create token for MappingEnd\nfunc MappingEnd(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          MappingEndType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     FlowCollectionIndicator,\n\t\tValue:         string(MappingEndCharacter),\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// Comment create token for Comment\nfunc Comment(value string, org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          CommentType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     CommentIndicator,\n\t\tValue:         value,\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// Anchor create token for Anchor\nfunc Anchor(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          AnchorType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     NodePropertyIndicator,\n\t\tValue:         string(AnchorCharacter),\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// Alias create token for Alias\nfunc Alias(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          AliasType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     NodePropertyIndicator,\n\t\tValue:         string(AliasCharacter),\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// Tag create token for Tag\nfunc Tag(value string, org string, pos *Position) *Token {\n\tfn := ReservedTagKeywordMap[ReservedTagKeyword(value)]\n\tif fn != nil {\n\t\treturn fn(value, org, pos)\n\t}\n\treturn &Token{\n\t\tType:          TagType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     NodePropertyIndicator,\n\t\tValue:         value,\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// Literal create token for Literal\nfunc Literal(value string, org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          LiteralType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     BlockScalarIndicator,\n\t\tValue:         value,\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// Folded create token for Folded\nfunc Folded(value string, org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          FoldedType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     BlockScalarIndicator,\n\t\tValue:         value,\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// SingleQuote create token for SingleQuote\nfunc SingleQuote(value string, org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          SingleQuoteType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     QuotedScalarIndicator,\n\t\tValue:         value,\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// DoubleQuote create token for DoubleQuote\nfunc DoubleQuote(value string, org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          DoubleQuoteType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     QuotedScalarIndicator,\n\t\tValue:         value,\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// Directive create token for Directive\nfunc Directive(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          DirectiveType,\n\t\tCharacterType: CharacterTypeIndicator,\n\t\tIndicator:     DirectiveIndicator,\n\t\tValue:         string(DirectiveCharacter),\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// Space create token for Space\nfunc Space(pos *Position) *Token {\n\treturn &Token{\n\t\tType:          SpaceType,\n\t\tCharacterType: CharacterTypeWhiteSpace,\n\t\tIndicator:     NotIndicator,\n\t\tValue:         string(SpaceCharacter),\n\t\tOrigin:        string(SpaceCharacter),\n\t\tPosition:      pos,\n\t}\n}\n\n// MergeKey create token for MergeKey\nfunc MergeKey(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          MergeKeyType,\n\t\tCharacterType: CharacterTypeMiscellaneous,\n\t\tIndicator:     NotIndicator,\n\t\tValue:         \"<<\",\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// DocumentHeader create token for DocumentHeader\nfunc DocumentHeader(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          DocumentHeaderType,\n\t\tCharacterType: CharacterTypeMiscellaneous,\n\t\tIndicator:     NotIndicator,\n\t\tValue:         \"---\",\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// DocumentEnd create token for DocumentEnd\nfunc DocumentEnd(org string, pos *Position) *Token {\n\treturn &Token{\n\t\tType:          DocumentEndType,\n\t\tCharacterType: CharacterTypeMiscellaneous,\n\t\tIndicator:     NotIndicator,\n\t\tValue:         \"...\",\n\t\tOrigin:        org,\n\t\tPosition:      pos,\n\t}\n}\n\n// DetectLineBreakCharacter detect line break character in only one inside scalar content scope.\nfunc DetectLineBreakCharacter(src string) string {\n\tnc := strings.Count(src, \"\\n\")\n\trc := strings.Count(src, \"\\r\")\n\trnc := strings.Count(src, \"\\r\\n\")\n\tswitch {\n\tcase nc == rnc && rc == rnc:\n\t\treturn \"\\r\\n\"\n\tcase rc > nc:\n\t\treturn \"\\r\"\n\tdefault:\n\t\treturn \"\\n\"\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/validate.go",
    "content": "package yaml\n\n// StructValidator need to implement Struct method only\n// ( see https://pkg.go.dev/github.com/go-playground/validator/v10#Validate.Struct )\ntype StructValidator interface {\n\tStruct(interface{}) error\n}\n\n// FieldError need to implement StructField method only\n// ( see https://pkg.go.dev/github.com/go-playground/validator/v10#FieldError )\ntype FieldError interface {\n\tStructField() string\n}\n"
  },
  {
    "path": "vendor/github.com/goccy/go-yaml/yaml.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"io\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"github.com/goccy/go-yaml/ast\"\n\t\"github.com/goccy/go-yaml/internal/errors\"\n\t\"golang.org/x/xerrors\"\n)\n\n// BytesMarshaler interface may be implemented by types to customize their\n// behavior when being marshaled into a YAML document. The returned value\n// is marshaled in place of the original value implementing Marshaler.\n//\n// If an error is returned by MarshalYAML, the marshaling procedure stops\n// and returns with the provided error.\ntype BytesMarshaler interface {\n\tMarshalYAML() ([]byte, error)\n}\n\n// BytesMarshalerContext interface use BytesMarshaler with context.Context.\ntype BytesMarshalerContext interface {\n\tMarshalYAML(context.Context) ([]byte, error)\n}\n\n// InterfaceMarshaler interface has MarshalYAML compatible with github.com/go-yaml/yaml package.\ntype InterfaceMarshaler interface {\n\tMarshalYAML() (interface{}, error)\n}\n\n// InterfaceMarshalerContext interface use InterfaceMarshaler with context.Context.\ntype InterfaceMarshalerContext interface {\n\tMarshalYAML(context.Context) (interface{}, error)\n}\n\n// BytesUnmarshaler interface may be implemented by types to customize their\n// behavior when being unmarshaled from a YAML document.\ntype BytesUnmarshaler interface {\n\tUnmarshalYAML([]byte) error\n}\n\n// BytesUnmarshalerContext interface use BytesUnmarshaler with context.Context.\ntype BytesUnmarshalerContext interface {\n\tUnmarshalYAML(context.Context, []byte) error\n}\n\n// InterfaceUnmarshaler interface has UnmarshalYAML compatible with github.com/go-yaml/yaml package.\ntype InterfaceUnmarshaler interface {\n\tUnmarshalYAML(func(interface{}) error) error\n}\n\n// InterfaceUnmarshalerContext interface use InterfaceUnmarshaler with context.Context.\ntype InterfaceUnmarshalerContext interface {\n\tUnmarshalYAML(context.Context, func(interface{}) error) error\n}\n\n// MapItem is an item in a MapSlice.\ntype MapItem struct {\n\tKey, Value interface{}\n}\n\n// MapSlice encodes and decodes as a YAML map.\n// The order of keys is preserved when encoding and decoding.\ntype MapSlice []MapItem\n\n// ToMap convert to map[interface{}]interface{}.\nfunc (s MapSlice) ToMap() map[interface{}]interface{} {\n\tv := map[interface{}]interface{}{}\n\tfor _, item := range s {\n\t\tv[item.Key] = item.Value\n\t}\n\treturn v\n}\n\n// Marshal serializes the value provided into a YAML document. The structure\n// of the generated document will reflect the structure of the value itself.\n// Maps and pointers (to struct, string, int, etc) are accepted as the in value.\n//\n// Struct fields are only marshalled if they are exported (have an upper case\n// first letter), and are marshalled using the field name lowercased as the\n// default key. Custom keys may be defined via the \"yaml\" name in the field\n// tag: the content preceding the first comma is used as the key, and the\n// following comma-separated options are used to tweak the marshalling process.\n// Conflicting names result in a runtime error.\n//\n// The field tag format accepted is:\n//\n//     `(...) yaml:\"[<key>][,<flag1>[,<flag2>]]\" (...)`\n//\n// The following flags are currently supported:\n//\n//     omitempty    Only include the field if it's not set to the zero\n//                  value for the type or to empty slices or maps.\n//                  Zero valued structs will be omitted if all their public\n//                  fields are zero, unless they implement an IsZero\n//                  method (see the IsZeroer interface type), in which\n//                  case the field will be included if that method returns true.\n//\n//     flow         Marshal using a flow style (useful for structs,\n//                  sequences and maps).\n//\n//     inline       Inline the field, which must be a struct or a map,\n//                  causing all of its fields or keys to be processed as if\n//                  they were part of the outer struct. For maps, keys must\n//                  not conflict with the yaml keys of other struct fields.\n//\n//     anchor       Marshal with anchor. If want to define anchor name explicitly, use anchor=name style.\n//                  Otherwise, if used 'anchor' name only, used the field name lowercased as the anchor name\n//\n//     alias        Marshal with alias. If want to define alias name explicitly, use alias=name style.\n//                  Otherwise, If omitted alias name and the field type is pointer type,\n//                  assigned anchor name automatically from same pointer address.\n//\n// In addition, if the key is \"-\", the field is ignored.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     yaml.Marshal(&T{B: 2}) // Returns \"b: 2\\n\"\n//     yaml.Marshal(&T{F: 1}) // Returns \"a: 1\\nb: 0\\n\"\n//\nfunc Marshal(v interface{}) ([]byte, error) {\n\treturn MarshalWithOptions(v)\n}\n\n// MarshalWithOptions serializes the value provided into a YAML document with EncodeOptions.\nfunc MarshalWithOptions(v interface{}, opts ...EncodeOption) ([]byte, error) {\n\treturn MarshalContext(context.Background(), v, opts...)\n}\n\n// MarshalContext serializes the value provided into a YAML document with context.Context and EncodeOptions.\nfunc MarshalContext(ctx context.Context, v interface{}, opts ...EncodeOption) ([]byte, error) {\n\tvar buf bytes.Buffer\n\tif err := NewEncoder(&buf, opts...).EncodeContext(ctx, v); err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to marshal\")\n\t}\n\treturn buf.Bytes(), nil\n}\n\n// ValueToNode convert from value to ast.Node.\nfunc ValueToNode(v interface{}, opts ...EncodeOption) (ast.Node, error) {\n\tvar buf bytes.Buffer\n\tnode, err := NewEncoder(&buf, opts...).EncodeToNode(v)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to convert value to node\")\n\t}\n\treturn node, nil\n}\n\n// Unmarshal decodes the first document found within the in byte slice\n// and assigns decoded values into the out value.\n//\n// Struct fields are only unmarshalled if they are exported (have an\n// upper case first letter), and are unmarshalled using the field name\n// lowercased as the default key. Custom keys may be defined via the\n// \"yaml\" name in the field tag: the content preceding the first comma\n// is used as the key, and the following comma-separated options are\n// used to tweak the marshalling process (see Marshal).\n// Conflicting names result in a runtime error.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     var t T\n//     yaml.Unmarshal([]byte(\"a: 1\\nb: 2\"), &t)\n//\n// See the documentation of Marshal for the format of tags and a list of\n// supported tag options.\n//\nfunc Unmarshal(data []byte, v interface{}) error {\n\treturn UnmarshalWithOptions(data, v)\n}\n\n// UnmarshalWithOptions decodes with DecodeOptions the first document found within the in byte slice\n// and assigns decoded values into the out value.\nfunc UnmarshalWithOptions(data []byte, v interface{}, opts ...DecodeOption) error {\n\treturn UnmarshalContext(context.Background(), data, v, opts...)\n}\n\n// UnmarshalContext decodes with context.Context and DecodeOptions.\nfunc UnmarshalContext(ctx context.Context, data []byte, v interface{}, opts ...DecodeOption) error {\n\tdec := NewDecoder(bytes.NewBuffer(data), opts...)\n\tif err := dec.DecodeContext(ctx, v); err != nil {\n\t\tif err == io.EOF {\n\t\t\treturn nil\n\t\t}\n\t\treturn errors.Wrapf(err, \"failed to unmarshal\")\n\t}\n\treturn nil\n}\n\n// NodeToValue converts node to the value pointed to by v.\nfunc NodeToValue(node ast.Node, v interface{}, opts ...DecodeOption) error {\n\tvar buf bytes.Buffer\n\tif err := NewDecoder(&buf, opts...).DecodeFromNode(node, v); err != nil {\n\t\treturn errors.Wrapf(err, \"failed to convert node to value\")\n\t}\n\treturn nil\n}\n\n// FormatError is a utility function that takes advantage of the metadata\n// stored in the errors returned by this package's parser.\n//\n// If the second argument `colored` is true, the error message is colorized.\n// If the third argument `inclSource` is true, the error message will\n// contain snippets of the YAML source that was used.\nfunc FormatError(e error, colored, inclSource bool) string {\n\tvar pp errors.PrettyPrinter\n\tif xerrors.As(e, &pp) {\n\t\tvar buf bytes.Buffer\n\t\tpp.PrettyPrint(&errors.Sink{&buf}, colored, inclSource)\n\t\treturn buf.String()\n\t}\n\n\treturn e.Error()\n}\n\n// YAMLToJSON convert YAML bytes to JSON.\nfunc YAMLToJSON(bytes []byte) ([]byte, error) {\n\tvar v interface{}\n\tif err := UnmarshalWithOptions(bytes, &v, UseOrderedMap()); err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to unmarshal\")\n\t}\n\tout, err := MarshalWithOptions(v, JSON())\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to marshal with json option\")\n\t}\n\treturn out, nil\n}\n\n// JSONToYAML convert JSON bytes to YAML.\nfunc JSONToYAML(bytes []byte) ([]byte, error) {\n\tvar v interface{}\n\tif err := UnmarshalWithOptions(bytes, &v, UseOrderedMap()); err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to unmarshal from json bytes\")\n\t}\n\tout, err := Marshal(v)\n\tif err != nil {\n\t\treturn nil, errors.Wrapf(err, \"failed to marshal\")\n\t}\n\treturn out, nil\n}\n\nvar (\n\tglobalCustomMarshalerMu    sync.Mutex\n\tglobalCustomUnmarshalerMu  sync.Mutex\n\tglobalCustomMarshalerMap   = map[reflect.Type]func(interface{}) ([]byte, error){}\n\tglobalCustomUnmarshalerMap = map[reflect.Type]func(interface{}, []byte) error{}\n)\n\n// RegisterCustomMarshaler overrides any encoding process for the type specified in generics.\n// If you want to switch the behavior for each encoder, use `CustomMarshaler` defined as EncodeOption.\n//\n// NOTE: If type T implements MarshalYAML for pointer receiver, the type specified in RegisterCustomMarshaler must be *T.\n// If RegisterCustomMarshaler and CustomMarshaler of EncodeOption are specified for the same type,\n// the CustomMarshaler specified in EncodeOption takes precedence.\nfunc RegisterCustomMarshaler[T any](marshaler func(T) ([]byte, error)) {\n\tglobalCustomMarshalerMu.Lock()\n\tdefer globalCustomMarshalerMu.Unlock()\n\n\tvar typ T\n\tglobalCustomMarshalerMap[reflect.TypeOf(typ)] = func(v interface{}) ([]byte, error) {\n\t\treturn marshaler(v.(T))\n\t}\n}\n\n// RegisterCustomUnmarshaler overrides any decoding process for the type specified in generics.\n// If you want to switch the behavior for each decoder, use `CustomUnmarshaler` defined as DecodeOption.\n//\n// NOTE: If RegisterCustomUnmarshaler and CustomUnmarshaler of DecodeOption are specified for the same type,\n// the CustomUnmarshaler specified in DecodeOption takes precedence.\nfunc RegisterCustomUnmarshaler[T any](unmarshaler func(*T, []byte) error) {\n\tglobalCustomUnmarshalerMu.Lock()\n\tdefer globalCustomUnmarshalerMu.Unlock()\n\n\tvar typ *T\n\tglobalCustomUnmarshalerMap[reflect.TypeOf(typ)] = func(v interface{}, b []byte) error {\n\t\treturn unmarshaler(v.(*T), b)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/.gitignore",
    "content": "*.log\n*.swp\n.idea\n*.patch\n### Go template\n# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\n\n# Test binary, build with `go test -c`\n*.test\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n.DS_Store\napp\ndemo\n"
  },
  {
    "path": "vendor/github.com/gookit/color/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2016 inhere\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": "vendor/github.com/gookit/color/README.md",
    "content": "# CLI Color\n\n![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/gookit/color?style=flat-square)\n[![Actions Status](https://github.com/gookit/color/workflows/action-tests/badge.svg)](https://github.com/gookit/color/actions)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/51b28c5f7ffe4cc2b0f12ecf25ed247f)](https://app.codacy.com/app/inhere/color)\n[![GoDoc](https://godoc.org/github.com/gookit/color?status.svg)](https://pkg.go.dev/github.com/gookit/color?tab=overview)\n[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/gookit/color)](https://github.com/gookit/color)\n[![Build Status](https://travis-ci.org/gookit/color.svg?branch=master)](https://travis-ci.org/gookit/color)\n[![Coverage Status](https://coveralls.io/repos/github/gookit/color/badge.svg?branch=master)](https://coveralls.io/github/gookit/color?branch=master)\n[![Go Report Card](https://goreportcard.com/badge/github.com/gookit/color)](https://goreportcard.com/report/github.com/gookit/color)\n\nA command-line color library with true color support, universal API methods and Windows support.\n\n> **[中文说明](README.zh-CN.md)**\n\nBasic color preview:\n\n![basic-color](_examples/images/basic-color2.png)\n\nNow, 256 colors and RGB colors have also been supported to work in Windows CMD and PowerShell:\n\n![color-on-cmd-pwsh](_examples/images/color-on-cmd-pwsh.jpg)\n\n## Features\n\n  - Simple to use, zero dependencies\n  - Supports rich color output: 16-color (4-bit), 256-color (8-bit), true color (24-bit, RGB)\n    - 16-color output is the most commonly used and most widely supported, working on any Windows version\n    - Since `v1.2.4` **the 256-color (8-bit), true color (24-bit) support windows CMD and PowerShell**\n    - See [this gist](https://gist.github.com/XVilka/8346728) for information on true color support\n  - Support converts `HEX` `HSL` value to RGB color\n  - Generic API methods: `Print`, `Printf`, `Println`, `Sprint`, `Sprintf`\n  - Supports HTML tag-style color rendering, such as `<green>message</>`.\n    - In addition to using built-in tags, it also supports custom color attributes\n    - Custom color attributes support the use of 16 color names, 256 color values, rgb color values and hex color values\n    - Support working on Windows `cmd` and `powerShell` terminal\n  - Basic colors: `Bold`, `Black`, `White`, `Gray`, `Red`, `Green`, `Yellow`, `Blue`, `Magenta`, `Cyan`\n  - Additional styles: `Info`, `Note`, `Light`, `Error`, `Danger`, `Notice`, `Success`, `Comment`, `Primary`, `Warning`, `Question`, `Secondary`\n  - Support by set `NO_COLOR` for disable color or use `FORCE_COLOR` for force open color render.\n  - Support Rgb, 256, 16 color conversion\n\n## GoDoc\n\n  - [godoc for gopkg](https://pkg.go.dev/gopkg.in/gookit/color.v1)\n  - [godoc for github](https://pkg.go.dev/github.com/gookit/color)\n\n## Install\n\n```bash\ngo get github.com/gookit/color\n```\n\n## Quick start\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/gookit/color\"\n)\n\nfunc main() {\n\t// quick use package func\n\tcolor.Redp(\"Simple to use color\")\n\tcolor.Redln(\"Simple to use color\")\n\tcolor.Greenp(\"Simple to use color\\n\")\n\tcolor.Cyanln(\"Simple to use color\")\n\tcolor.Yellowln(\"Simple to use color\")\n\n\t// quick use like fmt.Print*\n\tcolor.Red.Println(\"Simple to use color\")\n\tcolor.Green.Print(\"Simple to use color\\n\")\n\tcolor.Cyan.Printf(\"Simple to use %s\\n\", \"color\")\n\tcolor.Yellow.Printf(\"Simple to use %s\\n\", \"color\")\n\n\t// use like func\n\tred := color.FgRed.Render\n\tgreen := color.FgGreen.Render\n\tfmt.Printf(\"%s line %s library\\n\", red(\"Command\"), green(\"color\"))\n\n\t// custom color\n\tcolor.New(color.FgWhite, color.BgBlack).Println(\"custom color style\")\n\n\t// can also:\n\tcolor.Style{color.FgCyan, color.OpBold}.Println(\"custom color style\")\n\n\t// internal theme/style:\n\tcolor.Info.Tips(\"message\")\n\tcolor.Info.Prompt(\"message\")\n\tcolor.Info.Println(\"message\")\n\tcolor.Warn.Println(\"message\")\n\tcolor.Error.Println(\"message\")\n\n\t// use style tag\n\tcolor.Print(\"<suc>he</><comment>llo</>, <cyan>wel</><red>come</>\\n\")\n\t// Custom label attr: Supports the use of 16 color names, 256 color values, rgb color values and hex color values\n\tcolor.Println(\"<fg=11aa23>he</><bg=120,35,156>llo</>, <fg=167;bg=232>wel</><fg=red>come</>\")\n\n\t// apply a style tag\n\tcolor.Tag(\"info\").Println(\"info style text\")\n\n\t// prompt message\n\tcolor.Info.Prompt(\"prompt style message\")\n\tcolor.Warn.Prompt(\"prompt style message\")\n\n\t// tips message\n\tcolor.Info.Tips(\"tips style message\")\n\tcolor.Warn.Tips(\"tips style message\")\n}\n```\n\nRun demo: `go run ./_examples/demo.go`\n\n![colored-out](_examples/images/color-demo.jpg)\n\n## Basic/16 color\n\nSupported on any Windows version. Provide generic API methods: `Print`, `Printf`, `Println`, `Sprint`, `Sprintf`\n\n```go\ncolor.Bold.Println(\"bold message\")\ncolor.Black.Println(\"bold message\")\ncolor.White.Println(\"bold message\")\ncolor.Gray.Println(\"bold message\")\ncolor.Red.Println(\"yellow message\")\ncolor.Blue.Println(\"yellow message\")\ncolor.Cyan.Println(\"yellow message\")\ncolor.Yellow.Println(\"yellow message\")\ncolor.Magenta.Println(\"yellow message\")\n\n// Only use foreground color\ncolor.FgCyan.Printf(\"Simple to use %s\\n\", \"color\")\n// Only use background color\ncolor.BgRed.Printf(\"Simple to use %s\\n\", \"color\")\n```\n\nRun demo: `go run ./_examples/color_16.go`\n\n![basic-color](_examples/images/basic-color.png)\n\n### Custom build color\n\n```go\n// Full custom: foreground, background, option\nmyStyle := color.New(color.FgWhite, color.BgBlack, color.OpBold)\nmyStyle.Println(\"custom color style\")\n\n// can also:\ncolor.Style{color.FgCyan, color.OpBold}.Println(\"custom color style\")\n```\n\ncustom set console settings:\n\n```go\n// set console color\ncolor.Set(color.FgCyan)\n\n// print message\nfmt.Print(\"message\")\n\n// reset console settings\ncolor.Reset()\n```\n\n### Additional styles\n\nprovide generic API methods: `Print`, `Printf`, `Println`, `Sprint`, `Sprintf`\n\nprint message use defined style:\n\n```go\ncolor.Info.Println(\"Info message\")\ncolor.Note.Println(\"Note message\")\ncolor.Notice.Println(\"Notice message\")\ncolor.Error.Println(\"Error message\")\ncolor.Danger.Println(\"Danger message\")\ncolor.Warn.Println(\"Warn message\")\ncolor.Debug.Println(\"Debug message\")\ncolor.Primary.Println(\"Primary message\")\ncolor.Question.Println(\"Question message\")\ncolor.Secondary.Println(\"Secondary message\")\n```\n\nRun demo: `go run ./_examples/theme_basic.go`\n\n![theme-basic](_examples/images/theme-basic.png)\n\n**Tips style**\n\n```go\ncolor.Info.Tips(\"Info tips message\")\ncolor.Note.Tips(\"Note tips message\")\ncolor.Notice.Tips(\"Notice tips message\")\ncolor.Error.Tips(\"Error tips message\")\ncolor.Danger.Tips(\"Danger tips message\")\ncolor.Warn.Tips(\"Warn tips message\")\ncolor.Debug.Tips(\"Debug tips message\")\ncolor.Primary.Tips(\"Primary tips message\")\ncolor.Question.Tips(\"Question tips message\")\ncolor.Secondary.Tips(\"Secondary tips message\")\n```\n\nRun demo: `go run ./_examples/theme_tips.go`\n\n![theme-tips](_examples/images/theme-tips.png)\n\n**Prompt Style**\n\n```go\ncolor.Info.Prompt(\"Info prompt message\")\ncolor.Note.Prompt(\"Note prompt message\")\ncolor.Notice.Prompt(\"Notice prompt message\")\ncolor.Error.Prompt(\"Error prompt message\")\ncolor.Danger.Prompt(\"Danger prompt message\")\ncolor.Warn.Prompt(\"Warn prompt message\")\ncolor.Debug.Prompt(\"Debug prompt message\")\ncolor.Primary.Prompt(\"Primary prompt message\")\ncolor.Question.Prompt(\"Question prompt message\")\ncolor.Secondary.Prompt(\"Secondary prompt message\")\n```\n\nRun demo: `go run ./_examples/theme_prompt.go`\n\n![theme-prompt](_examples/images/theme-prompt.png)\n\n**Block Style**\n\n```go\ncolor.Info.Block(\"Info block message\")\ncolor.Note.Block(\"Note block message\")\ncolor.Notice.Block(\"Notice block message\")\ncolor.Error.Block(\"Error block message\")\ncolor.Danger.Block(\"Danger block message\")\ncolor.Warn.Block(\"Warn block message\")\ncolor.Debug.Block(\"Debug block message\")\ncolor.Primary.Block(\"Primary block message\")\ncolor.Question.Block(\"Question block message\")\ncolor.Secondary.Block(\"Secondary block message\")\n```\n\nRun demo: `go run ./_examples/theme_block.go`\n\n![theme-block](_examples/images/theme-block.png)\n\n## 256-color usage\n\n> 256 colors support Windows CMD, PowerShell environment after `v1.2.4`\n\n### Set the foreground or background color\n\n- `color.C256(val uint8, isBg ...bool) Color256`\n\n```go\nc := color.C256(132) // fg color\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n\nc := color.C256(132, true) // bg color\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n```\n\n### 256-color style\n\nCan be used to set foreground and background colors at the same time.\n\n- `S256(fgAndBg ...uint8) *Style256`\n\n```go\ns := color.S256(32, 203)\ns.Println(\"message\")\ns.Printf(\"format %s\", \"message\")\n```\n\nwith options:\n\n```go\ns := color.S256(32, 203)\ns.SetOpts(color.Opts{color.OpBold})\n\ns.Println(\"style with options\")\ns.Printf(\"style with %s\\n\", \"options\")\n```\n\nRun demo: `go run ./_examples/color_256.go`\n\n![color-tags](_examples/images/color-256.png)\n\n## RGB/True color\n\n> RGB colors support Windows `CMD`, `PowerShell` environment after `v1.2.4`\n\n**Preview:**\n\n> Run demo: `Run demo: go run ./_examples/color_rgb.go`\n\n![color-rgb](_examples/images/color-rgb.png)\n\nexample:\n\n```go\ncolor.RGB(30, 144, 255).Println(\"message. use RGB number\")\n\ncolor.HEX(\"#1976D2\").Println(\"blue-darken\")\ncolor.HEX(\"#D50000\", true).Println(\"red-accent. use HEX style\")\n\ncolor.RGBStyleFromString(\"213,0,0\").Println(\"red-accent. use RGB number\")\ncolor.HEXStyle(\"eee\", \"D50000\").Println(\"deep-purple color\")\n```\n\n### Set the foreground or background color\n\n- `color.RGB(r, g, b uint8, isBg ...bool) RGBColor`\n\n```go\nc := color.RGB(30,144,255) // fg color\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n\nc := color.RGB(30,144,255, true) // bg color\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n```\n\nCreate a style from an hexadecimal color string:\n\n- `color.HEX(hex string, isBg ...bool) RGBColor`\n\n```go\nc := color.HEX(\"ccc\") // can also: \"cccccc\" \"#cccccc\"\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n\nc = color.HEX(\"aabbcc\", true) // as bg color\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n```\n\n### RGB color style\n\nCan be used to set the foreground and background colors at the same time.\n\n- `color.NewRGBStyle(fg RGBColor, bg ...RGBColor) *RGBStyle`\n\n```go\ns := color.NewRGBStyle(RGB(20, 144, 234), RGB(234, 78, 23))\ns.Println(\"message\")\ns.Printf(\"format %s\", \"message\")\n```\n\nCreate a style from an hexadecimal color string:\n\n- `color.HEXStyle(fg string, bg ...string) *RGBStyle`\n\n```go\ns := color.HEXStyle(\"11aa23\", \"eee\")\ns.Println(\"message\")\ns.Printf(\"format %s\", \"message\")\n```\n\nwith options:\n\n```go\ns := color.HEXStyle(\"11aa23\", \"eee\")\ns.SetOpts(color.Opts{color.OpBold})\n\ns.Println(\"style with options\")\ns.Printf(\"style with %s\\n\", \"options\")\n```\n\n## HTML-like tag usage\n\n**Supported** on Windows `cmd.exe` `PowerShell` .\n\n```go\n// use style tag\ncolor.Print(\"<suc>he</><comment>llo</>, <cyan>wel</><red>come</>\")\ncolor.Println(\"<suc>hello</>\")\ncolor.Println(\"<error>hello</>\")\ncolor.Println(\"<warning>hello</>\")\n\n// custom color attributes\ncolor.Print(\"<fg=yellow;bg=black;op=underscore;>hello, welcome</>\\n\")\n\n// Custom label attr: Supports the use of 16 color names, 256 color values, rgb color values and hex color values\ncolor.Println(\"<fg=11aa23>he</><bg=120,35,156>llo</>, <fg=167;bg=232>wel</><fg=red>come</>\")\n```\n\n- `color.Tag`\n\n```go\n// set a style tag\ncolor.Tag(\"info\").Print(\"info style text\")\ncolor.Tag(\"info\").Printf(\"%s style text\", \"info\")\ncolor.Tag(\"info\").Println(\"info style text\")\n```\n\nRun demo: `go run ./_examples/color_tag.go`\n\n![color-tags](_examples/images/color-tags.png)\n\n## Color convert\n\nSupports conversion between Rgb, 256, 16 colors, `Rgb <=> 256 <=> 16`\n\n```go\nbasic := color.Red\nbasic.Println(\"basic color\")\n\nc256 := color.Red.C256()\nc256.Println(\"256 color\")\nc256.C16().Println(\"basic color\")\n\nrgb := color.Red.RGB()\nrgb.Println(\"rgb color\")\nrgb.C256().Println(\"256 color\")\n```\n\n**More functions for convert to `RGBColor`**:\n\n- `func RGBFromSlice(rgb []uint8, isBg ...bool) RGBColor`\n- `func RGBFromString(rgb string, isBg ...bool) RGBColor`\n- `func HEX(hex string, isBg ...bool) RGBColor`\n- `func HSL(h, s, l float64, isBg ...bool) RGBColor`\n- `func HSLInt(h, s, l int, isBg ...bool) RGBColor`\n\n## Func refer\n\nThere are some useful functions reference\n\n- `Disable()` disable color render\n- `SetOutput(io.Writer)` custom set the colored text output writer\n- `ForceOpenColor()` force open color render\n- `Colors2code(colors ...Color) string` Convert colors to code. return like \"32;45;3\"\n- `ClearCode(str string) string` Use for clear color codes\n- `ClearTag(s string) string` clear all color html-tag for a string\n- `IsConsole(w io.Writer)` Determine whether w is one of stderr, stdout, stdin\n- `HexToRgb(hex string) (rgb []int)` Convert hex color string to RGB numbers\n- `RgbToHex(rgb []int) string` Convert RGB to hex code\n- More useful func please see https://pkg.go.dev/github.com/gookit/color\n\n## Projects using color\n\nCheck out these projects, which use https://github.com/gookit/color :\n\n- https://github.com/Delta456/box-cli-maker Make Highly Customized Boxes for your CLI\n- https://github.com/flipped-aurora/gin-vue-admin 基于gin+vue搭建的（中）后台系统框架\n- https://github.com/JanDeDobbeleer/oh-my-posh A prompt theme engine for any shell.\n- https://github.com/jesseduffield/lazygit Simple terminal UI for git commands\n- https://github.com/olivia-ai/olivia 💁‍♀️Your new best friend powered by an artificial neural network  \n- https://github.com/pterm/pterm PTerm is a modern Go module to beautify console output. Featuring charts, progressbars, tables, trees, etc.\n- https://github.com/securego/gosec Golang security checker\n- https://github.com/TNK-Studio/lazykube ⎈ The lazier way to manage kubernetes.\n- [+ See More](https://pkg.go.dev/github.com/gookit/color?tab=importedby)\n\n## Gookit packages\n\n  - [gookit/ini](https://github.com/gookit/ini) Go config management, use INI files\n  - [gookit/rux](https://github.com/gookit/rux) Simple and fast request router for golang HTTP \n  - [gookit/gcli](https://github.com/gookit/gcli) build CLI application, tool library, running CLI commands\n  - [gookit/slog](https://github.com/gookit/slog) Concise and extensible go log library\n  - [gookit/event](https://github.com/gookit/event) Lightweight event manager and dispatcher implements by Go\n  - [gookit/cache](https://github.com/gookit/cache) Generic cache use and cache manager for golang. support File, Memory, Redis, Memcached.\n  - [gookit/config](https://github.com/gookit/config) Go config management. support JSON, YAML, TOML, INI, HCL, ENV and Flags\n  - [gookit/color](https://github.com/gookit/color) A command-line color library with true color support, universal API methods and Windows support\n  - [gookit/filter](https://github.com/gookit/filter) Provide filtering, sanitizing, and conversion of golang data\n  - [gookit/validate](https://github.com/gookit/validate) Use for data validation and filtering. support Map, Struct, Form data\n  - [gookit/goutil](https://github.com/gookit/goutil) Some utils for the Go: string, array/slice, map, format, cli, env, filesystem, test and more\n  - More, please see https://github.com/gookit\n\n## See also\n\n  - [inhere/console](https://github.com/inhere/php-console)\n  - [xo/terminfo](https://github.com/xo/terminfo)\n  - [beego/bee](https://github.com/beego/bee)\n  - [issue9/term](https://github.com/issue9/term)\n  - [ANSI escape code](https://en.wikipedia.org/wiki/ANSI_escape_code)\n  - [Standard ANSI color map](https://conemu.github.io/en/AnsiEscapeCodes.html#Standard_ANSI_color_map)\n  - [Terminal Colors](https://gist.github.com/XVilka/8346728)\n\n## License\n\n[MIT](/LICENSE)\n"
  },
  {
    "path": "vendor/github.com/gookit/color/README.zh-CN.md",
    "content": "# CLI Color\n\n![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/gookit/color?style=flat-square)\n[![Actions Status](https://github.com/gookit/color/workflows/action-tests/badge.svg)](https://github.com/gookit/color/actions)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/51b28c5f7ffe4cc2b0f12ecf25ed247f)](https://app.codacy.com/app/inhere/color)\n[![GoDoc](https://godoc.org/github.com/gookit/color?status.svg)](https://pkg.go.dev/github.com/gookit/color?tab=overview)\n[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/gookit/color)](https://github.com/gookit/color)\n[![Build Status](https://travis-ci.org/gookit/color.svg?branch=master)](https://travis-ci.org/gookit/color)\n[![Coverage Status](https://coveralls.io/repos/github/gookit/color/badge.svg?branch=master)](https://coveralls.io/github/gookit/color?branch=master)\n[![Go Report Card](https://goreportcard.com/badge/github.com/gookit/color)](https://goreportcard.com/report/github.com/gookit/color)\n\nGolang下的命令行色彩使用库, 拥有丰富的色彩渲染输出，通用的API方法，兼容Windows系统\n\n> **[EN README](README.md)**\n\n基本颜色预览：\n\n![basic-color](_examples/images/basic-color2.png)\n\n现在，256色和RGB色彩也已经支持windows CMD和PowerShell中工作：\n\n![color-on-cmd-pwsh](_examples/images/color-on-cmd-pwsh.jpg)\n\n## 功能特色\n\n  - 使用简单方便\n  - 支持丰富的颜色输出, 16色(4bit)，256色(8bit)，RGB色彩(24bit, RGB)\n    - 16色(4bit)是最常用和支持最广的，支持Windows `cmd.exe`\n    - 自 `v1.2.4` 起 **256色(8bit)，RGB色彩(24bit)均支持Windows CMD和PowerShell终端**\n    - 请查看 [this gist](https://gist.github.com/XVilka/8346728) 了解支持RGB色彩的终端\n  - 支持转换 `HEX` `HSL` 等为RGB色彩\n  - 提供通用的API方法：`Print` `Printf` `Println` `Sprint` `Sprintf`\n  - 同时支持html标签式的颜色渲染，除了使用内置标签，同时支持自定义颜色属性\n    - 例如: `this an <green>message</>` 标签内部的文本将会渲染为绿色字体\n    - 自定义颜色属性: 支持使用16色彩名称，256色彩值，rgb色彩值以及hex色彩值\n  - 基础色彩: `Bold` `Black` `White` `Gray` `Red` `Green` `Yellow` `Blue` `Magenta` `Cyan`\n  - 扩展风格: `Info` `Note` `Light` `Error` `Danger` `Notice` `Success` `Comment` `Primary` `Warning` `Question` `Secondary`\n  - 支持通过设置环境变量 `NO_COLOR` 来禁用色彩，或者使用 `FORCE_COLOR` 来强制使用色彩渲染.\n  - 支持 Rgb, 256, 16 色彩之间的互相转换\n  - 支持Linux、Mac，同时兼容Windows系统环境\n\n## GoDoc\n\n  - [godoc for gopkg](https://pkg.go.dev/gopkg.in/gookit/color.v1)\n  - [godoc for github](https://pkg.go.dev/github.com/gookit/color)\n\n## 安装\n\n```bash\ngo get github.com/gookit/color\n```\n\n## 快速开始\n\n如下，引入当前包就可以快速的使用\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\n\t\"github.com/gookit/color\"\n)\n\nfunc main() {\n\t// 简单快速的使用，跟 fmt.Print* 类似\n\tcolor.Redp(\"Simple to use color\")\n\tcolor.Redln(\"Simple to use color\")\n\tcolor.Greenp(\"Simple to use color\\n\")\n\tcolor.Cyanln(\"Simple to use color\")\n\tcolor.Yellowln(\"Simple to use color\")\n\n\t// 简单快速的使用，跟 fmt.Print* 类似\n\tcolor.Red.Println(\"Simple to use color\")\n\tcolor.Green.Print(\"Simple to use color\\n\")\n\tcolor.Cyan.Printf(\"Simple to use %s\\n\", \"color\")\n\tcolor.Yellow.Printf(\"Simple to use %s\\n\", \"color\")\n\n\t// use like func\n\tred := color.FgRed.Render\n\tgreen := color.FgGreen.Render\n\tfmt.Printf(\"%s line %s library\\n\", red(\"Command\"), green(\"color\"))\n\n\t// 自定义颜色\n\tcolor.New(color.FgWhite, color.BgBlack).Println(\"custom color style\")\n\n\t// 也可以:\n\tcolor.Style{color.FgCyan, color.OpBold}.Println(\"custom color style\")\n\t\n\t// internal style:\n\tcolor.Info.Println(\"message\")\n\tcolor.Warn.Println(\"message\")\n\tcolor.Error.Println(\"message\")\n\t\n\t// 使用内置颜色标签\n\tcolor.Print(\"<suc>he</><comment>llo</>, <cyan>wel</><red>come</>\\n\")\n\t// 自定义标签: 支持使用16色彩名称，256色彩值，rgb色彩值以及hex色彩值\n\tcolor.Println(\"<fg=11aa23>he</><bg=120,35,156>llo</>, <fg=167;bg=232>wel</><fg=red>come</>\")\n\n\t// apply a style tag\n\tcolor.Tag(\"info\").Println(\"info style text\")\n\n\t// prompt message\n\tcolor.Info.Prompt(\"prompt style message\")\n\tcolor.Warn.Prompt(\"prompt style message\")\n\n\t// tips message\n\tcolor.Info.Tips(\"tips style message\")\n\tcolor.Warn.Tips(\"tips style message\")\n}\n```\n\n> 运行 demo: `go run ./_examples/demo.go`\n\n![colored-out](_examples/images/color-demo.jpg)\n\n## 基础颜色(16-color)\n\n提供通用的API方法：`Print` `Printf` `Println` `Sprint` `Sprintf`\n\n> 支持在windows `cmd.exe`  `powerShell` 等终端使用\n\n```go\ncolor.Bold.Println(\"bold message\")\ncolor.Black.Println(\"bold message\")\ncolor.White.Println(\"bold message\")\ncolor.Gray.Println(\"bold message\")\ncolor.Red.Println(\"yellow message\")\ncolor.Blue.Println(\"yellow message\")\ncolor.Cyan.Println(\"yellow message\")\ncolor.Yellow.Println(\"yellow message\")\ncolor.Magenta.Println(\"yellow message\")\n\n// Only use foreground color\ncolor.FgCyan.Printf(\"Simple to use %s\\n\", \"color\")\n// Only use background color\ncolor.BgRed.Printf(\"Simple to use %s\\n\", \"color\")\n```\n\n> 运行demo: `go run ./_examples/color_16.go`\n\n![basic-color](_examples/images/basic-color.png)\n\n### 构建风格\n\n```go\n// 仅设置前景色\ncolor.FgCyan.Printf(\"Simple to use %s\\n\", \"color\")\n// 仅设置背景色\ncolor.BgRed.Printf(\"Simple to use %s\\n\", \"color\")\n\n// 完全自定义: 前景色 背景色 选项\nstyle := color.New(color.FgWhite, color.BgBlack, color.OpBold)\nstyle.Println(\"custom color style\")\n\n// 也可以:\ncolor.Style{color.FgCyan, color.OpBold}.Println(\"custom color style\")\n```\n\n直接设置控制台属性：\n\n```go\n// 设置console颜色\ncolor.Set(color.FgCyan)\n\n// 输出信息\nfmt.Print(\"message\")\n\n// 重置console颜色\ncolor.Reset()\n```\n\n> 当然，color已经内置丰富的色彩风格支持\n\n### 扩展风格方法 \n\n提供通用的API方法：`Print` `Printf` `Println` `Sprint` `Sprintf`\n\n> 支持在windows `cmd.exe`  `powerShell` 等终端使用\n\n基础使用：\n\n```go\n// print message\ncolor.Info.Println(\"Info message\")\ncolor.Note.Println(\"Note message\")\ncolor.Notice.Println(\"Notice message\")\ncolor.Error.Println(\"Error message\")\ncolor.Danger.Println(\"Danger message\")\ncolor.Warn.Println(\"Warn message\")\ncolor.Debug.Println(\"Debug message\")\ncolor.Primary.Println(\"Primary message\")\ncolor.Question.Println(\"Question message\")\ncolor.Secondary.Println(\"Secondary message\")\n```\n\nRun demo: `go run ./_examples/theme_basic.go`\n\n![theme-basic](_examples/images/theme-basic.png)\n\n**简约提示风格**\n\n```go\ncolor.Info.Tips(\"Info tips message\")\ncolor.Note.Tips(\"Note tips message\")\ncolor.Notice.Tips(\"Notice tips message\")\ncolor.Error.Tips(\"Error tips message\")\ncolor.Danger.Tips(\"Danger tips message\")\ncolor.Warn.Tips(\"Warn tips message\")\ncolor.Debug.Tips(\"Debug tips message\")\ncolor.Primary.Tips(\"Primary tips message\")\ncolor.Question.Tips(\"Question tips message\")\ncolor.Secondary.Tips(\"Secondary tips message\")\n```\n\nRun demo: `go run ./_examples/theme_tips.go`\n\n![theme-tips](_examples/images/theme-tips.png)\n\n**着重提示风格**\n\n```go\ncolor.Info.Prompt(\"Info prompt message\")\ncolor.Note.Prompt(\"Note prompt message\")\ncolor.Notice.Prompt(\"Notice prompt message\")\ncolor.Error.Prompt(\"Error prompt message\")\ncolor.Danger.Prompt(\"Danger prompt message\")\n```\n\nRun demo: `go run ./_examples/theme_prompt.go`\n\n![theme-prompt](_examples/images/theme-prompt.png)\n\n**强调提示风格**\n\n```go\ncolor.Warn.Block(\"Warn block message\")\ncolor.Debug.Block(\"Debug block message\")\ncolor.Primary.Block(\"Primary block message\")\ncolor.Question.Block(\"Question block message\")\ncolor.Secondary.Block(\"Secondary block message\")\n```\n\nRun demo: `go run ./_examples/theme_block.go`\n\n![theme-block](_examples/images/theme-block.png)\n\n## 256 色彩使用\n\n> 256色彩在 `v1.2.4` 后支持Windows CMD,PowerShell 环境\n\n### 使用前景或后景色\n \n  - `color.C256(val uint8, isBg ...bool) Color256`\n\n```go\nc := color.C256(132) // fg color\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n\nc := color.C256(132, true) // bg color\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n```\n\n### 使用256 色彩风格\n\n> 可同时设置前景和背景色\n \n- `color.S256(fgAndBg ...uint8) *Style256`\n\n```go\ns := color.S256(32, 203)\ns.Println(\"message\")\ns.Printf(\"format %s\", \"message\")\n```\n\n可以同时添加选项设置:\n\n```go\ns := color.S256(32, 203)\ns.SetOpts(color.Opts{color.OpBold})\n\ns.Println(\"style with options\")\ns.Printf(\"style with %s\\n\", \"options\")\n```\n\n> 运行 demo: `go run ./_examples/color_256.go`\n\n![color-tags](_examples/images/color-256.png)\n\n## RGB/True色彩使用\n\n> RGB色彩在 `v1.2.4` 后支持 Windows `CMD`, `PowerShell` 环境\n\n**效果预览:**\n\n> 运行 demo: `Run demo: go run ./_examples/color_rgb.go`\n\n![color-rgb](_examples/images/color-rgb.png)\n\n代码示例：\n\n```go\ncolor.RGB(30, 144, 255).Println(\"message. use RGB number\")\n\ncolor.HEX(\"#1976D2\").Println(\"blue-darken\")\ncolor.HEX(\"#D50000\", true).Println(\"red-accent. use HEX style\")\n\ncolor.RGBStyleFromString(\"213,0,0\").Println(\"red-accent. use RGB number\")\ncolor.HEXStyle(\"eee\", \"D50000\").Println(\"deep-purple color\")\n```\n\n### 使用前景或后景色 \n\n- `color.RGB(r, g, b uint8, isBg ...bool) RGBColor`\n\n```go\nc := color.RGB(30,144,255) // fg color\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n\nc := color.RGB(30,144,255, true) // bg color\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n```\n\n- `color.HEX(hex string, isBg ...bool) RGBColor` 从16进制颜色创建\n\n```go\nc := color.HEX(\"ccc\") // 也可以写为: \"cccccc\" \"#cccccc\"\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n\nc = color.HEX(\"aabbcc\", true) // as bg color\nc.Println(\"message\")\nc.Printf(\"format %s\", \"message\")\n```\n\n### 使用RGB风格\n\n> 可同时设置前景和背景色\n\n- `color.NewRGBStyle(fg RGBColor, bg ...RGBColor) *RGBStyle`\n\n```go\ns := color.NewRGBStyle(RGB(20, 144, 234), RGB(234, 78, 23))\ns.Println(\"message\")\ns.Printf(\"format %s\", \"message\")\n```\n\n- `color.HEXStyle(fg string, bg ...string) *RGBStyle` 从16进制颜色创建\n\n```go\ns := color.HEXStyle(\"11aa23\", \"eee\")\ns.Println(\"message\")\ns.Printf(\"format %s\", \"message\")\n```\n\n- 可以同时添加选项设置:\n\n```go\ns := color.HEXStyle(\"11aa23\", \"eee\")\ns.SetOpts(color.Opts{color.OpBold})\n\ns.Println(\"style with options\")\ns.Printf(\"style with %s\\n\", \"options\")\n```\n\n## 使用颜色标签\n\n> **支持** 在windows `cmd.exe` `PowerShell` 使用\n\n使用内置的颜色标签，可以非常方便简单的构建自己需要的任何格式\n\n> 同时支持自定义颜色属性: 支持使用16色彩名称，256色彩值，rgb色彩值以及hex色彩值\n\n```go\n// 使用内置的 color tag\ncolor.Print(\"<suc>he</><comment>llo</>, <cyan>wel</><red>come</>\")\ncolor.Println(\"<suc>hello</>\")\ncolor.Println(\"<error>hello</>\")\ncolor.Println(\"<warning>hello</>\")\n\n// 自定义颜色属性\ncolor.Print(\"<fg=yellow;bg=black;op=underscore;>hello, welcome</>\\n\")\n\n// 自定义颜色属性: 支持使用16色彩名称，256色彩值，rgb色彩值以及hex色彩值\ncolor.Println(\"<fg=11aa23>he</><bg=120,35,156>llo</>, <fg=167;bg=232>wel</><fg=red>come</>\")\n```\n\n- 使用 `color.Tag`\n\n给后面输出的文本信息加上给定的颜色风格标签\n\n```go\n// set a style tag\ncolor.Tag(\"info\").Print(\"info style text\")\ncolor.Tag(\"info\").Printf(\"%s style text\", \"info\")\ncolor.Tag(\"info\").Println(\"info style text\")\n```\n\n> 运行 demo: `go run ./_examples/color_tag.go`\n\n![color-tags](_examples/images/color-tags.png)\n\n## 颜色转换\n\n支持 Rgb, 256, 16 色彩之间的互相转换 `Rgb <=> 256 <=> 16`\n\n```go\nbasic := color.Red\nbasic.Println(\"basic color\")\n\nc256 := color.Red.C256()\nc256.Println(\"256 color\")\nc256.C16().Println(\"basic color\")\n\nrgb := color.Red.RGB()\nrgb.Println(\"rgb color\")\nrgb.C256().Println(\"256 color\")\n```\n\n**更多转换方法转换为 `RGBColor`**:\n\n- `func RGBFromSlice(rgb []uint8, isBg ...bool) RGBColor`\n- `func RGBFromString(rgb string, isBg ...bool) RGBColor`\n- `func HEX(hex string, isBg ...bool) RGBColor`\n- `func HSL(h, s, l float64, isBg ...bool) RGBColor`\n- `func HSLInt(h, s, l int, isBg ...bool) RGBColor`\n\n## 方法参考\n\n一些有用的工具方法参考\n\n- `Disable()` disable color render\n- `SetOutput(io.Writer)` custom set the colored text output writer\n- `ForceOpenColor()` force open color render\n- `ClearCode(str string) string` Use for clear color codes\n- `Colors2code(colors ...Color) string` Convert colors to code. return like \"32;45;3\"\n- `ClearTag(s string) string` clear all color html-tag for a string\n- `IsConsole(w io.Writer)` Determine whether w is one of stderr, stdout, stdin\n- `HexToRgb(hex string) (rgb []int)` Convert hex color string to RGB numbers\n- `RgbToHex(rgb []int) string` Convert RGB to hex code\n- 更多请查看文档 https://pkg.go.dev/github.com/gookit/color\n\n## 使用Color的项目\n\n看看这些使用了 https://github.com/gookit/color 的项目:\n\n- https://github.com/Delta456/box-cli-maker Make Highly Customized Boxes for your CLI\n- https://github.com/flipped-aurora/gin-vue-admin 基于gin+vue搭建的（中）后台系统框架\n- https://github.com/JanDeDobbeleer/oh-my-posh A prompt theme engine for any shell.\n- https://github.com/jesseduffield/lazygit Simple terminal UI for git commands\n- https://github.com/olivia-ai/olivia 💁‍♀️Your new best friend powered by an artificial neural network\n- https://github.com/pterm/pterm PTerm is a modern Go module to beautify console output. Featuring charts, progressbars, tables, trees, etc.\n- https://github.com/securego/gosec Golang security checker\n- https://github.com/TNK-Studio/lazykube ⎈ The lazier way to manage kubernetes.\n- [+ See More](https://pkg.go.dev/github.com/gookit/color?tab=importedby)\n\n## Gookit 工具包\n\n  - [gookit/ini](https://github.com/gookit/ini) INI配置读取管理，支持多文件加载，数据覆盖合并, 解析ENV变量, 解析变量引用\n  - [gookit/rux](https://github.com/gookit/rux) Simple and fast request router for golang HTTP \n  - [gookit/gcli](https://github.com/gookit/gcli) Go的命令行应用，工具库，运行CLI命令，支持命令行色彩，用户交互，进度显示，数据格式化显示\n  - [gookit/slog](https://github.com/gookit/slog) 简洁易扩展的go日志库\n  - [gookit/event](https://github.com/gookit/event) Go实现的轻量级的事件管理、调度程序库, 支持设置监听器的优先级, 支持对一组事件进行监听\n  - [gookit/cache](https://github.com/gookit/cache) 通用的缓存使用包装库，通过包装各种常用的驱动，来提供统一的使用API\n  - [gookit/config](https://github.com/gookit/config) Go应用配置管理，支持多种格式（JSON, YAML, TOML, INI, HCL, ENV, Flags），多文件加载，远程文件加载，数据合并\n  - [gookit/color](https://github.com/gookit/color) CLI 控制台颜色渲染工具库, 拥有简洁的使用API，支持16色，256色，RGB色彩渲染输出\n  - [gookit/filter](https://github.com/gookit/filter) 提供对Golang数据的过滤，净化，转换\n  - [gookit/validate](https://github.com/gookit/validate) Go通用的数据验证与过滤库，使用简单，内置大部分常用验证、过滤器\n  - [gookit/goutil](https://github.com/gookit/goutil) Go 的一些工具函数，格式化，特殊处理，常用信息获取等\n  - 更多请查看 https://github.com/gookit\n\n## 参考项目\n\n  - [inhere/console](https://github.com/inhere/php-console)\n  - [xo/terminfo](https://github.com/xo/terminfo)\n  - [beego/bee](https://github.com/beego/bee)\n  - [issue9/term](https://github.com/issue9/term)\n  - [ANSI转义序列](https://zh.wikipedia.org/wiki/ANSI转义序列)\n  - [Standard ANSI color map](https://conemu.github.io/en/AnsiEscapeCodes.html#Standard_ANSI_color_map)\n  - [Terminal Colors](https://gist.github.com/XVilka/8346728)\n\n## License\n\nMIT\n"
  },
  {
    "path": "vendor/github.com/gookit/color/color.go",
    "content": "/*\nPackage color is Command line color library.\nSupport rich color rendering output, universal API method, compatible with Windows system\n\nSource code and other details for the project are available at GitHub:\n\n\thttps://github.com/gookit/color\n\nMore usage please see README and tests.\n*/\npackage color\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"regexp\"\n\n\t\"github.com/xo/terminfo\"\n)\n\n// terminal color available level alias of the terminfo.ColorLevel*\nconst (\n\tLevelNo  = terminfo.ColorLevelNone     // not support color.\n\tLevel16  = terminfo.ColorLevelBasic    // 3/4 bit color supported\n\tLevel256 = terminfo.ColorLevelHundreds // 8 bit color supported\n\tLevelRgb = terminfo.ColorLevelMillions // (24 bit)true color supported\n)\n\n// color render templates\n// ESC 操作的表示:\n// \t\"\\033\"(Octal 8进制) = \"\\x1b\"(Hexadecimal 16进制) = 27 (10进制)\nconst (\n\tSettingTpl   = \"\\x1b[%sm\"\n\tFullColorTpl = \"\\x1b[%sm%s\\x1b[0m\"\n)\n\n// ResetSet Close all properties.\nconst ResetSet = \"\\x1b[0m\"\n\n// CodeExpr regex to clear color codes eg \"\\033[1;36mText\\x1b[0m\"\nconst CodeExpr = `\\033\\[[\\d;?]+m`\n\nvar (\n\t// Enable switch color render and display\n\t//\n\t// NOTICE:\n\t// if ENV: NO_COLOR is not empty, will disable color render.\n\tEnable = os.Getenv(\"NO_COLOR\") == \"\"\n\t// RenderTag render HTML tag on call color.Xprint, color.PrintX\n\tRenderTag = true\n\t// debug mode for development.\n\t//\n\t// set env:\n\t// \tCOLOR_DEBUG_MODE=on\n\t// or:\n\t// \tCOLOR_DEBUG_MODE=on go run ./_examples/envcheck.go\n\tdebugMode = os.Getenv(\"COLOR_DEBUG_MODE\") == \"on\"\n\t// inner errors record on detect color level\n\tinnerErrs []error\n\t// output the default io.Writer message print\n\toutput io.Writer = os.Stdout\n\t// mark current env, It's like in `cmd.exe`\n\t// if not in windows, it's always is False.\n\tisLikeInCmd bool\n\t// the color support level for current terminal\n\t// needVTP - need enable VTP, only for windows OS\n\tcolorLevel, needVTP = detectTermColorLevel()\n\t// match color codes\n\tcodeRegex = regexp.MustCompile(CodeExpr)\n\t// mark current env is support color.\n\t// Always: isLikeInCmd != supportColor\n\t// supportColor = IsSupportColor()\n)\n\n// TermColorLevel value on current ENV\nfunc TermColorLevel() terminfo.ColorLevel {\n\treturn colorLevel\n}\n\n// SupportColor on the current ENV\nfunc SupportColor() bool {\n\treturn colorLevel > terminfo.ColorLevelNone\n}\n\n// Support16Color on the current ENV\n// func Support16Color() bool {\n// \treturn colorLevel > terminfo.ColorLevelNone\n// }\n\n// Support256Color on the current ENV\nfunc Support256Color() bool {\n\treturn colorLevel > terminfo.ColorLevelBasic\n}\n\n// SupportTrueColor on the current ENV\nfunc SupportTrueColor() bool {\n\treturn colorLevel > terminfo.ColorLevelHundreds\n}\n\n/*************************************************************\n * global settings\n *************************************************************/\n\n// Set set console color attributes\nfunc Set(colors ...Color) (int, error) {\n\tcode := Colors2code(colors...)\n\terr := SetTerminal(code)\n\treturn 0, err\n}\n\n// Reset reset console color attributes\nfunc Reset() (int, error) {\n\terr := ResetTerminal()\n\treturn 0, err\n}\n\n// Disable disable color output\nfunc Disable() bool {\n\toldVal := Enable\n\tEnable = false\n\treturn oldVal\n}\n\n// NotRenderTag on call color.Xprint, color.PrintX\nfunc NotRenderTag() {\n\tRenderTag = false\n}\n\n// SetOutput set default colored text output\nfunc SetOutput(w io.Writer) {\n\toutput = w\n}\n\n// ResetOutput reset output\nfunc ResetOutput() {\n\toutput = os.Stdout\n}\n\n// ResetOptions reset all package option setting\nfunc ResetOptions() {\n\tRenderTag = true\n\tEnable = true\n\toutput = os.Stdout\n}\n\n// ForceColor force open color render\nfunc ForceSetColorLevel(level terminfo.ColorLevel) terminfo.ColorLevel {\n\toldLevelVal := colorLevel\n\tcolorLevel = level\n\treturn oldLevelVal\n}\n\n// ForceColor force open color render\nfunc ForceColor() terminfo.ColorLevel {\n\treturn ForceOpenColor()\n}\n\n// ForceOpenColor force open color render\nfunc ForceOpenColor() terminfo.ColorLevel {\n\t// TODO should set level to ?\n\treturn ForceSetColorLevel(terminfo.ColorLevelMillions)\n}\n\n// IsLikeInCmd check result\n// Deprecated\nfunc IsLikeInCmd() bool {\n\treturn isLikeInCmd\n}\n\n// InnerErrs info\nfunc InnerErrs() []error {\n\treturn innerErrs\n}\n\n/*************************************************************\n * render color code\n *************************************************************/\n\n// RenderCode render message by color code.\n// Usage:\n// \tmsg := RenderCode(\"3;32;45\", \"some\", \"message\")\nfunc RenderCode(code string, args ...interface{}) string {\n\tvar message string\n\tif ln := len(args); ln == 0 {\n\t\treturn \"\"\n\t}\n\n\tmessage = fmt.Sprint(args...)\n\tif len(code) == 0 {\n\t\treturn message\n\t}\n\n\t// disabled OR not support color\n\tif !Enable || !SupportColor() {\n\t\treturn ClearCode(message)\n\t}\n\n\treturn fmt.Sprintf(FullColorTpl, code, message)\n}\n\n// RenderWithSpaces Render code with spaces.\n// If the number of args is > 1, a space will be added between the args\nfunc RenderWithSpaces(code string, args ...interface{}) string {\n\tmessage := formatArgsForPrintln(args)\n\tif len(code) == 0 {\n\t\treturn message\n\t}\n\n\t// disabled OR not support color\n\tif !Enable || !SupportColor() {\n\t\treturn ClearCode(message)\n\t}\n\n\treturn fmt.Sprintf(FullColorTpl, code, message)\n}\n\n// RenderString render a string with color code.\n// Usage:\n// \tmsg := RenderString(\"3;32;45\", \"a message\")\nfunc RenderString(code string, str string) string {\n\tif len(code) == 0 || str == \"\" {\n\t\treturn str\n\t}\n\n\t// disabled OR not support color\n\tif !Enable || !SupportColor() {\n\t\treturn ClearCode(str)\n\t}\n\n\treturn fmt.Sprintf(FullColorTpl, code, str)\n}\n\n// ClearCode clear color codes.\n// eg: \"\\033[36;1mText\\x1b[0m\" -> \"Text\"\nfunc ClearCode(str string) string {\n\treturn codeRegex.ReplaceAllString(str, \"\")\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/color_16.go",
    "content": "package color\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// Color Color16, 16 color value type\n// 3(2^3=8) OR 4(2^4=16) bite color.\ntype Color uint8\ntype Basic = Color // alias of Color\n\n// Opts basic color options. code: 0 - 9\ntype Opts []Color\n\n// Add option value\nfunc (o *Opts) Add(ops ...Color) {\n\tfor _, op := range ops {\n\t\tif uint8(op) < 10 {\n\t\t\t*o = append(*o, op)\n\t\t}\n\t}\n}\n\n// IsValid options\nfunc (o Opts) IsValid() bool {\n\treturn len(o) > 0\n}\n\n// IsEmpty options\nfunc (o Opts) IsEmpty() bool {\n\treturn len(o) == 0\n}\n\n// String options to string. eg: \"1;3\"\nfunc (o Opts) String() string {\n\treturn Colors2code(o...)\n}\n\n/*************************************************************\n * Basic 16 color definition\n *************************************************************/\n\n// Base value for foreground/background color\n// base: fg 30~37, bg 40~47\n// light: fg 90~97, bg 100~107\nconst (\n\tFgBase uint8 = 30\n\tBgBase uint8 = 40\n\n\tHiFgBase uint8 = 90\n\tHiBgBase uint8 = 100\n)\n\n// Foreground colors. basic foreground colors 30 - 37\nconst (\n\tFgBlack Color = iota + 30\n\tFgRed\n\tFgGreen\n\tFgYellow\n\tFgBlue\n\tFgMagenta // 品红\n\tFgCyan    // 青色\n\tFgWhite\n\t// FgDefault revert default FG\n\tFgDefault Color = 39\n)\n\n// Extra foreground color 90 - 97(非标准)\nconst (\n\tFgDarkGray Color = iota + 90 // 亮黑（灰）\n\tFgLightRed\n\tFgLightGreen\n\tFgLightYellow\n\tFgLightBlue\n\tFgLightMagenta\n\tFgLightCyan\n\tFgLightWhite\n\t// FgGray is alias of FgDarkGray\n\tFgGray Color = 90 // 亮黑（灰）\n)\n\n// Background colors. basic background colors 40 - 47\nconst (\n\tBgBlack Color = iota + 40\n\tBgRed\n\tBgGreen\n\tBgYellow // BgBrown like yellow\n\tBgBlue\n\tBgMagenta\n\tBgCyan\n\tBgWhite\n\t// BgDefault revert default BG\n\tBgDefault Color = 49\n)\n\n// Extra background color 100 - 107(非标准)\nconst (\n\tBgDarkGray Color = iota + 100\n\tBgLightRed\n\tBgLightGreen\n\tBgLightYellow\n\tBgLightBlue\n\tBgLightMagenta\n\tBgLightCyan\n\tBgLightWhite\n\t// BgGray is alias of BgDarkGray\n\tBgGray Color = 100\n)\n\n// Option settings\nconst (\n\tOpReset         Color = iota // 0 重置所有设置\n\tOpBold                       // 1 加粗\n\tOpFuzzy                      // 2 模糊(不是所有的终端仿真器都支持)\n\tOpItalic                     // 3 斜体(不是所有的终端仿真器都支持)\n\tOpUnderscore                 // 4 下划线\n\tOpBlink                      // 5 闪烁\n\tOpFastBlink                  // 5 快速闪烁(未广泛支持)\n\tOpReverse                    // 7 颠倒的 交换背景色与前景色\n\tOpConcealed                  // 8 隐匿的\n\tOpStrikethrough              // 9 删除的，删除线(未广泛支持)\n)\n\n// There are basic and light foreground color aliases\nconst (\n\tRed     = FgRed\n\tCyan    = FgCyan\n\tGray    = FgDarkGray // is light Black\n\tBlue    = FgBlue\n\tBlack   = FgBlack\n\tGreen   = FgGreen\n\tWhite   = FgWhite\n\tYellow  = FgYellow\n\tMagenta = FgMagenta\n\n\t// special\n\n\tBold   = OpBold\n\tNormal = FgDefault\n\n\t// extra light\n\n\tLightRed     = FgLightRed\n\tLightCyan    = FgLightCyan\n\tLightBlue    = FgLightBlue\n\tLightGreen   = FgLightGreen\n\tLightWhite   = FgLightWhite\n\tLightYellow  = FgLightYellow\n\tLightMagenta = FgLightMagenta\n\n\tHiRed     = FgLightRed\n\tHiCyan    = FgLightCyan\n\tHiBlue    = FgLightBlue\n\tHiGreen   = FgLightGreen\n\tHiWhite   = FgLightWhite\n\tHiYellow  = FgLightYellow\n\tHiMagenta = FgLightMagenta\n\n\tBgHiRed     = BgLightRed\n\tBgHiCyan    = BgLightCyan\n\tBgHiBlue    = BgLightBlue\n\tBgHiGreen   = BgLightGreen\n\tBgHiWhite   = BgLightWhite\n\tBgHiYellow  = BgLightYellow\n\tBgHiMagenta = BgLightMagenta\n)\n\n// Bit4 an method for create Color\nfunc Bit4(code uint8) Color {\n\treturn Color(code)\n}\n\n/*************************************************************\n * Color render methods\n *************************************************************/\n\n// Name get color code name.\nfunc (c Color) Name() string {\n\tname, ok := basic2nameMap[uint8(c)]\n\tif ok {\n\t\treturn name\n\t}\n\treturn \"unknown\"\n}\n\n// Text render a text message\nfunc (c Color) Text(message string) string {\n\treturn RenderString(c.String(), message)\n}\n\n// Render messages by color setting\n// Usage:\n// \t\tgreen := color.FgGreen.Render\n// \t\tfmt.Println(green(\"message\"))\nfunc (c Color) Render(a ...interface{}) string {\n\treturn RenderCode(c.String(), a...)\n}\n\n// Renderln messages by color setting.\n// like Println, will add spaces for each argument\n// Usage:\n// \t\tgreen := color.FgGreen.Renderln\n// \t\tfmt.Println(green(\"message\"))\nfunc (c Color) Renderln(a ...interface{}) string {\n\treturn RenderWithSpaces(c.String(), a...)\n}\n\n// Sprint render messages by color setting. is alias of the Render()\nfunc (c Color) Sprint(a ...interface{}) string {\n\treturn RenderCode(c.String(), a...)\n}\n\n// Sprintf format and render message.\n// Usage:\n// \tgreen := color.Green.Sprintf\n//  colored := green(\"message\")\nfunc (c Color) Sprintf(format string, args ...interface{}) string {\n\treturn RenderString(c.String(), fmt.Sprintf(format, args...))\n}\n\n// Print messages.\n// Usage:\n// \t\tcolor.Green.Print(\"message\")\n// OR:\n// \t\tgreen := color.FgGreen.Print\n// \t\tgreen(\"message\")\nfunc (c Color) Print(args ...interface{}) {\n\tdoPrintV2(c.Code(), fmt.Sprint(args...))\n}\n\n// Printf format and print messages.\n// Usage:\n// \t\tcolor.Cyan.Printf(\"string %s\", \"arg0\")\nfunc (c Color) Printf(format string, a ...interface{}) {\n\tdoPrintV2(c.Code(), fmt.Sprintf(format, a...))\n}\n\n// Println messages with new line\nfunc (c Color) Println(a ...interface{}) {\n\tdoPrintlnV2(c.String(), a)\n}\n\n// Light current color. eg: 36(FgCyan) -> 96(FgLightCyan).\n//\n// Usage:\n// \tlightCyan := Cyan.Light()\n// \tlightCyan.Print(\"message\")\nfunc (c Color) Light() Color {\n\tval := int(c)\n\tif val >= 30 && val <= 47 {\n\t\treturn Color(uint8(c) + 60)\n\t}\n\n\t// don't change\n\treturn c\n}\n\n// Darken current color. eg. 96(FgLightCyan) -> 36(FgCyan)\n//\n// Usage:\n// \tcyan := LightCyan.Darken()\n// \tcyan.Print(\"message\")\nfunc (c Color) Darken() Color {\n\tval := int(c)\n\tif val >= 90 && val <= 107 {\n\t\treturn Color(uint8(c) - 60)\n\t}\n\n\t// don't change\n\treturn c\n}\n\n// C256 convert 16 color to 256-color code.\nfunc (c Color) C256() Color256 {\n\tval := uint8(c)\n\tif val < 10 { // is option code\n\t\treturn emptyC256 // empty\n\t}\n\n\tvar isBg uint8\n\tif val >= BgBase && val <= 47 { // is bg\n\t\tisBg = AsBg\n\t\tval = val - 10 // to fg code\n\t} else if val >= HiBgBase && val <= 107 { // is hi bg\n\t\tisBg = AsBg\n\t\tval = val - 10 // to fg code\n\t}\n\n\tif c256, ok := basicTo256Map[val]; ok {\n\t\treturn Color256{c256, isBg}\n\t}\n\n\t// use raw value direct convert\n\treturn Color256{val}\n}\n\n// ToFg always convert fg\nfunc (c Color) ToFg() Color {\n\tval := uint8(c)\n\t// is option code, don't change\n\tif val < 10 {\n\t\treturn c\n\t}\n\treturn Color(Bg2Fg(val))\n}\n\n// ToBg always convert bg\nfunc (c Color) ToBg() Color {\n\tval := uint8(c)\n\t// is option code, don't change\n\tif val < 10 {\n\t\treturn c\n\t}\n\treturn Color(Fg2Bg(val))\n}\n\n// RGB convert 16 color to 256-color code.\nfunc (c Color) RGB() RGBColor {\n\tval := uint8(c)\n\tif val < 10 { // is option code\n\t\treturn emptyRGBColor\n\t}\n\n\treturn HEX(Basic2hex(val))\n}\n\n// Code convert to code string. eg \"35\"\nfunc (c Color) Code() string {\n\t// return fmt.Sprintf(\"%d\", c)\n\treturn strconv.Itoa(int(c))\n}\n\n// String convert to code string. eg \"35\"\nfunc (c Color) String() string {\n\t// return fmt.Sprintf(\"%d\", c)\n\treturn strconv.Itoa(int(c))\n}\n\n// IsValid color value\nfunc (c Color) IsValid() bool {\n\treturn c < 107\n}\n\n/*************************************************************\n * basic color maps\n *************************************************************/\n\n// FgColors foreground colors map\nvar FgColors = map[string]Color{\n\t\"black\":   FgBlack,\n\t\"red\":     FgRed,\n\t\"green\":   FgGreen,\n\t\"yellow\":  FgYellow,\n\t\"blue\":    FgBlue,\n\t\"magenta\": FgMagenta,\n\t\"cyan\":    FgCyan,\n\t\"white\":   FgWhite,\n\t\"default\": FgDefault,\n}\n\n// BgColors background colors map\nvar BgColors = map[string]Color{\n\t\"black\":   BgBlack,\n\t\"red\":     BgRed,\n\t\"green\":   BgGreen,\n\t\"yellow\":  BgYellow,\n\t\"blue\":    BgBlue,\n\t\"magenta\": BgMagenta,\n\t\"cyan\":    BgCyan,\n\t\"white\":   BgWhite,\n\t\"default\": BgDefault,\n}\n\n// ExFgColors extra foreground colors map\nvar ExFgColors = map[string]Color{\n\t\"darkGray\":     FgDarkGray,\n\t\"lightRed\":     FgLightRed,\n\t\"lightGreen\":   FgLightGreen,\n\t\"lightYellow\":  FgLightYellow,\n\t\"lightBlue\":    FgLightBlue,\n\t\"lightMagenta\": FgLightMagenta,\n\t\"lightCyan\":    FgLightCyan,\n\t\"lightWhite\":   FgLightWhite,\n}\n\n// ExBgColors extra background colors map\nvar ExBgColors = map[string]Color{\n\t\"darkGray\":     BgDarkGray,\n\t\"lightRed\":     BgLightRed,\n\t\"lightGreen\":   BgLightGreen,\n\t\"lightYellow\":  BgLightYellow,\n\t\"lightBlue\":    BgLightBlue,\n\t\"lightMagenta\": BgLightMagenta,\n\t\"lightCyan\":    BgLightCyan,\n\t\"lightWhite\":   BgLightWhite,\n}\n\n// Options color options map\n// Deprecated\n// NOTICE: please use AllOptions instead.\nvar Options = AllOptions\n\n// AllOptions color options map\nvar AllOptions = map[string]Color{\n\t\"reset\":      OpReset,\n\t\"bold\":       OpBold,\n\t\"fuzzy\":      OpFuzzy,\n\t\"italic\":     OpItalic,\n\t\"underscore\": OpUnderscore,\n\t\"blink\":      OpBlink,\n\t\"reverse\":    OpReverse,\n\t\"concealed\":  OpConcealed,\n}\n\nvar (\n\t// TODO basic name alias\n\t// basicNameAlias = map[string]string{}\n\n\t// basic color name to code\n\tname2basicMap = initName2basicMap()\n\t// basic2nameMap basic color code to name\n\tbasic2nameMap = map[uint8]string{\n\t\t30: \"black\",\n\t\t31: \"red\",\n\t\t32: \"green\",\n\t\t33: \"yellow\",\n\t\t34: \"blue\",\n\t\t35: \"magenta\",\n\t\t36: \"cyan\",\n\t\t37: \"white\",\n\t\t// hi color code\n\t\t90: \"lightBlack\",\n\t\t91: \"lightRed\",\n\t\t92: \"lightGreen\",\n\t\t93: \"lightYellow\",\n\t\t94: \"lightBlue\",\n\t\t95: \"lightMagenta\",\n\t\t96: \"lightCyan\",\n\t\t97: \"lightWhite\",\n\t\t// options\n\t\t0: \"reset\",\n\t\t1: \"bold\",\n\t\t2: \"fuzzy\",\n\t\t3: \"italic\",\n\t\t4: \"underscore\",\n\t\t5: \"blink\",\n\t\t7: \"reverse\",\n\t\t8: \"concealed\",\n\t}\n)\n\n// Bg2Fg bg color value to fg value\nfunc Bg2Fg(val uint8) uint8 {\n\tif val >= BgBase && val <= 47 { // is bg\n\t\tval = val - 10\n\t} else if val >= HiBgBase && val <= 107 { // is hi bg\n\t\tval = val - 10\n\t}\n\treturn val\n}\n\n// Fg2Bg fg color value to bg value\nfunc Fg2Bg(val uint8) uint8 {\n\tif val >= FgBase && val <= 37 { // is fg\n\t\tval = val + 10\n\t} else if val >= HiFgBase && val <= 97 { // is hi fg\n\t\tval = val + 10\n\t}\n\treturn val\n}\n\n// Basic2nameMap data\nfunc Basic2nameMap() map[uint8]string {\n\treturn basic2nameMap\n}\n\nfunc initName2basicMap() map[string]uint8 {\n\tn2b := make(map[string]uint8, len(basic2nameMap))\n\tfor u, s := range basic2nameMap {\n\t\tn2b[s] = u\n\t}\n\treturn n2b\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/color_256.go",
    "content": "package color\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n/*\nfrom wikipedia, 256 color:\n   ESC[ … 38;5;<n> … m选择前景色\n   ESC[ … 48;5;<n> … m选择背景色\n     0-  7：标准颜色（同 ESC[30–37m）\n     8- 15：高强度颜色（同 ESC[90–97m）\n    16-231：6 × 6 × 6 立方（216色）: 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)\n   232-255：从黑到白的24阶灰度色\n*/\n\n// tpl for 8 bit 256 color(`2^8`)\n//\n// format:\n// \tESC[ … 38;5;<n> … m // 选择前景色\n//  ESC[ … 48;5;<n> … m // 选择背景色\n//\n// example:\n//  fg \"\\x1b[38;5;242m\"\n//  bg \"\\x1b[48;5;208m\"\n//  both \"\\x1b[38;5;242;48;5;208m\"\n//\n// links:\n// \thttps://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#8位\nconst (\n\tTplFg256 = \"38;5;%d\"\n\tTplBg256 = \"48;5;%d\"\n\tFg256Pfx = \"38;5;\"\n\tBg256Pfx = \"48;5;\"\n)\n\n/*************************************************************\n * 8bit(256) Color: Bit8Color Color256\n *************************************************************/\n\n// Color256 256 color (8 bit), uint8 range at 0 - 255\n//\n// 颜色值使用10进制和16进制都可 0x98 = 152\n//\n// The color consists of two uint8:\n// \t0: color value\n// \t1: color type; Fg=0, Bg=1, >1: unset value\n//\n// example:\n// \tfg color: [152, 0]\n//  bg color: [152, 1]\n//\n// NOTICE: now support 256 color on windows CMD, PowerShell\n// lint warn - Name starts with package name\ntype Color256 [2]uint8\ntype Bit8Color = Color256 // alias\n\nvar emptyC256 = Color256{1: 99}\n\n// Bit8 create a color256\nfunc Bit8(val uint8, isBg ...bool) Color256 {\n\treturn C256(val, isBg...)\n}\n\n// C256 create a color256\nfunc C256(val uint8, isBg ...bool) Color256 {\n\tbc := Color256{val}\n\n\t// mark is bg color\n\tif len(isBg) > 0 && isBg[0] {\n\t\tbc[1] = AsBg\n\t}\n\n\treturn bc\n}\n\n// Set terminal by 256 color code\nfunc (c Color256) Set() error {\n\treturn SetTerminal(c.String())\n}\n\n// Reset terminal. alias of the ResetTerminal()\nfunc (c Color256) Reset() error {\n\treturn ResetTerminal()\n}\n\n// Print print message\nfunc (c Color256) Print(a ...interface{}) {\n\tdoPrintV2(c.String(), fmt.Sprint(a...))\n}\n\n// Printf format and print message\nfunc (c Color256) Printf(format string, a ...interface{}) {\n\tdoPrintV2(c.String(), fmt.Sprintf(format, a...))\n}\n\n// Println print message with newline\nfunc (c Color256) Println(a ...interface{}) {\n\tdoPrintlnV2(c.String(), a)\n}\n\n// Sprint returns rendered message\nfunc (c Color256) Sprint(a ...interface{}) string {\n\treturn RenderCode(c.String(), a...)\n}\n\n// Sprintf returns format and rendered message\nfunc (c Color256) Sprintf(format string, a ...interface{}) string {\n\treturn RenderString(c.String(), fmt.Sprintf(format, a...))\n}\n\n// C16 convert color-256 to 16 color.\nfunc (c Color256) C16() Color {\n\treturn c.Basic()\n}\n\n// Basic convert color-256 to basic 16 color.\nfunc (c Color256) Basic() Color {\n\treturn Color(c[0]) // TODO\n}\n\n// RGB convert color-256 to RGB color.\nfunc (c Color256) RGB() RGBColor {\n\treturn RGBFromSlice(C256ToRgb(c[0]), c[1] == AsBg)\n}\n\n// RGBColor convert color-256 to RGB color.\nfunc (c Color256) RGBColor() RGBColor {\n\treturn c.RGB()\n}\n\n// Value return color value\nfunc (c Color256) Value() uint8 {\n\treturn c[0]\n}\n\n// Code convert to color code string. eg: \"12\"\nfunc (c Color256) Code() string {\n\treturn strconv.Itoa(int(c[0]))\n}\n\n// FullCode convert to color code string with prefix. eg: \"38;5;12\"\nfunc (c Color256) FullCode() string {\n\treturn c.String()\n}\n\n// String convert to color code string with prefix. eg: \"38;5;12\"\nfunc (c Color256) String() string {\n\tif c[1] == AsFg { // 0 is Fg\n\t\t// return fmt.Sprintf(TplFg256, c[0])\n\t\treturn Fg256Pfx + strconv.Itoa(int(c[0]))\n\t}\n\n\tif c[1] == AsBg { // 1 is Bg\n\t\t// return fmt.Sprintf(TplBg256, c[0])\n\t\treturn Bg256Pfx + strconv.Itoa(int(c[0]))\n\t}\n\n\treturn \"\" // empty\n}\n\n// IsFg color\nfunc (c Color256) IsFg() bool {\n\treturn c[1] == AsFg\n}\n\n// ToFg 256 color\nfunc (c Color256) ToFg() Color256 {\n\tc[1] = AsFg\n\treturn c\n}\n\n// IsBg color\nfunc (c Color256) IsBg() bool {\n\treturn c[1] == AsBg\n}\n\n// ToBg 256 color\nfunc (c Color256) ToBg() Color256 {\n\tc[1] = AsBg\n\treturn c\n}\n\n// IsEmpty value\nfunc (c Color256) IsEmpty() bool {\n\treturn c[1] > 1\n}\n\n/*************************************************************\n * 8bit(256) Style\n *************************************************************/\n\n// Style256 definition\n//\n// 前/背景色\n// 都是由两位uint8组成, 第一位是色彩值；\n// 第二位与 Bit8Color 不一样的是，在这里表示是否设置了值 0 未设置 !=0 已设置\ntype Style256 struct {\n\t// p Printer\n\n\t// Name of the style\n\tName string\n\t// color options of the style\n\topts Opts\n\t// fg and bg color\n\tfg, bg Color256\n}\n\n// S256 create a color256 style\n// Usage:\n// \ts := color.S256()\n// \ts := color.S256(132) // fg\n// \ts := color.S256(132, 203) // fg and bg\nfunc S256(fgAndBg ...uint8) *Style256 {\n\ts := &Style256{}\n\tvl := len(fgAndBg)\n\tif vl > 0 { // with fg\n\t\ts.fg = Color256{fgAndBg[0], 1}\n\n\t\tif vl > 1 { // and with bg\n\t\t\ts.bg = Color256{fgAndBg[1], 1}\n\t\t}\n\t}\n\n\treturn s\n}\n\n// Set fg and bg color value, can also with color options\nfunc (s *Style256) Set(fgVal, bgVal uint8, opts ...Color) *Style256 {\n\ts.fg = Color256{fgVal, 1}\n\ts.bg = Color256{bgVal, 1}\n\ts.opts.Add(opts...)\n\treturn s\n}\n\n// SetBg set bg color value\nfunc (s *Style256) SetBg(bgVal uint8) *Style256 {\n\ts.bg = Color256{bgVal, 1}\n\treturn s\n}\n\n// SetFg set fg color value\nfunc (s *Style256) SetFg(fgVal uint8) *Style256 {\n\ts.fg = Color256{fgVal, 1}\n\treturn s\n}\n\n// SetOpts set options\nfunc (s *Style256) SetOpts(opts Opts) *Style256 {\n\ts.opts = opts\n\treturn s\n}\n\n// AddOpts add options\nfunc (s *Style256) AddOpts(opts ...Color) *Style256 {\n\ts.opts.Add(opts...)\n\treturn s\n}\n\n// Print message\nfunc (s *Style256) Print(a ...interface{}) {\n\tdoPrintV2(s.String(), fmt.Sprint(a...))\n}\n\n// Printf format and print message\nfunc (s *Style256) Printf(format string, a ...interface{}) {\n\tdoPrintV2(s.String(), fmt.Sprintf(format, a...))\n}\n\n// Println print message with newline\nfunc (s *Style256) Println(a ...interface{}) {\n\tdoPrintlnV2(s.String(), a)\n}\n\n// Sprint returns rendered message\nfunc (s *Style256) Sprint(a ...interface{}) string {\n\treturn RenderCode(s.Code(), a...)\n}\n\n// Sprintf returns format and rendered message\nfunc (s *Style256) Sprintf(format string, a ...interface{}) string {\n\treturn RenderString(s.Code(), fmt.Sprintf(format, a...))\n}\n\n// Code convert to color code string\nfunc (s *Style256) Code() string {\n\treturn s.String()\n}\n\n// String convert to color code string\nfunc (s *Style256) String() string {\n\tvar ss []string\n\tif s.fg[1] > 0 {\n\t\tss = append(ss, fmt.Sprintf(TplFg256, s.fg[0]))\n\t}\n\n\tif s.bg[1] > 0 {\n\t\tss = append(ss, fmt.Sprintf(TplBg256, s.bg[0]))\n\t}\n\n\tif s.opts.IsValid() {\n\t\tss = append(ss, s.opts.String())\n\t}\n\n\treturn strings.Join(ss, \";\")\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/color_rgb.go",
    "content": "package color\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// 24 bit RGB color\n// RGB:\n// \tR 0-255 G 0-255 B 0-255\n// \tR 00-FF G 00-FF B 00-FF (16进制)\n//\n// Format:\n// \tESC[ … 38;2;<r>;<g>;<b> … m // Select RGB foreground color\n// \tESC[ … 48;2;<r>;<g>;<b> … m // Choose RGB background color\n//\n// links:\n// \thttps://zh.wikipedia.org/wiki/ANSI%E8%BD%AC%E4%B9%89%E5%BA%8F%E5%88%97#24位\n//\n// example:\n// \tfg: \\x1b[38;2;30;144;255mMESSAGE\\x1b[0m\n// \tbg: \\x1b[48;2;30;144;255mMESSAGE\\x1b[0m\n// \tboth: \\x1b[38;2;233;90;203;48;2;30;144;255mMESSAGE\\x1b[0m\nconst (\n\tTplFgRGB = \"38;2;%d;%d;%d\"\n\tTplBgRGB = \"48;2;%d;%d;%d\"\n\tFgRGBPfx = \"38;2;\"\n\tBgRGBPfx = \"48;2;\"\n)\n\n// mark color is fg or bg.\nconst (\n\tAsFg uint8 = iota\n\tAsBg\n)\n\n// values from https://github.com/go-terminfo/terminfo\n// var (\n// RgbaBlack    = image_color.RGBA{0, 0, 0, 255}\n// Red       = color.RGBA{205, 0, 0, 255}\n// Green     = color.RGBA{0, 205, 0, 255}\n// Orange    = color.RGBA{205, 205, 0, 255}\n// Blue      = color.RGBA{0, 0, 238, 255}\n// Magenta   = color.RGBA{205, 0, 205, 255}\n// Cyan      = color.RGBA{0, 205, 205, 255}\n// LightGrey = color.RGBA{229, 229, 229, 255}\n//\n// DarkGrey     = color.RGBA{127, 127, 127, 255}\n// LightRed     = color.RGBA{255, 0, 0, 255}\n// LightGreen   = color.RGBA{0, 255, 0, 255}\n// Yellow       = color.RGBA{255, 255, 0, 255}\n// LightBlue    = color.RGBA{92, 92, 255, 255}\n// LightMagenta = color.RGBA{255, 0, 255, 255}\n// LightCyan    = color.RGBA{0, 255, 255, 255}\n// White        = color.RGBA{255, 255, 255, 255}\n// )\n\n/*************************************************************\n * RGB Color(Bit24Color, TrueColor)\n *************************************************************/\n\n// RGBColor definition.\n//\n// The first to third digits represent the color value.\n// The last digit represents the foreground(0), background(1), >1 is unset value\n//\n// Usage:\n// \t// 0, 1, 2 is R,G,B.\n// \t// 3rd: Fg=0, Bg=1, >1: unset value\n// \tRGBColor{30,144,255, 0}\n// \tRGBColor{30,144,255, 1}\n//\n// NOTICE: now support RGB color on Windows CMD, PowerShell\ntype RGBColor [4]uint8\n\n// create an empty RGBColor\nvar emptyRGBColor = RGBColor{3: 99}\n\n// RGB color create.\n// Usage:\n// \tc := RGB(30,144,255)\n// \tc := RGB(30,144,255, true)\n// \tc.Print(\"message\")\nfunc RGB(r, g, b uint8, isBg ...bool) RGBColor {\n\trgb := RGBColor{r, g, b}\n\tif len(isBg) > 0 && isBg[0] {\n\t\trgb[3] = AsBg\n\t}\n\n\treturn rgb\n}\n\n// Rgb alias of the RGB()\nfunc Rgb(r, g, b uint8, isBg ...bool) RGBColor { return RGB(r, g, b, isBg...) }\n\n// Bit24 alias of the RGB()\nfunc Bit24(r, g, b uint8, isBg ...bool) RGBColor { return RGB(r, g, b, isBg...) }\n\n// RgbFromInt create instance from int r,g,b value\nfunc RgbFromInt(r, g, b int, isBg ...bool) RGBColor {\n\treturn RGB(uint8(r), uint8(g), uint8(b), isBg...)\n}\n\n// RgbFromInts create instance from []int r,g,b value\nfunc RgbFromInts(rgb []int, isBg ...bool) RGBColor {\n\treturn RGB(uint8(rgb[0]), uint8(rgb[1]), uint8(rgb[2]), isBg...)\n}\n\n// HEX create RGB color from a HEX color string.\n//\n// Usage:\n// \tc := HEX(\"ccc\") // rgb: [204 204 204]\n// \tc := HEX(\"aabbcc\") // rgb: [170 187 204]\n// \tc := HEX(\"#aabbcc\")\n// \tc := HEX(\"0xaabbcc\")\n// \tc.Print(\"message\")\nfunc HEX(hex string, isBg ...bool) RGBColor {\n\tif rgb := HexToRgb(hex); len(rgb) > 0 {\n\t\treturn RGB(uint8(rgb[0]), uint8(rgb[1]), uint8(rgb[2]), isBg...)\n\t}\n\n\t// mark is empty\n\treturn emptyRGBColor\n}\n\n// Hex alias of the HEX()\nfunc Hex(hex string, isBg ...bool) RGBColor { return HEX(hex, isBg...) }\n\n// HSL create RGB color from a hsl value.\n// more see HslToRgb()\nfunc HSL(h, s, l float64, isBg ...bool) RGBColor {\n\tif rgb := HslToRgb(h, s, l); len(rgb) > 0 {\n\t\treturn RGB(rgb[0], rgb[1], rgb[2], isBg...)\n\t}\n\n\t// mark is empty\n\treturn emptyRGBColor\n}\n\n// Hsl alias of the HSL()\nfunc Hsl(h, s, l float64, isBg ...bool) RGBColor { return HSL(h, s, l, isBg...) }\n\n// HSLInt create RGB color from a hsl int value.\n// more see HslIntToRgb()\nfunc HSLInt(h, s, l int, isBg ...bool) RGBColor {\n\tif rgb := HslIntToRgb(h, s, l); len(rgb) > 0 {\n\t\treturn RGB(rgb[0], rgb[1], rgb[2], isBg...)\n\t}\n\n\t// mark is empty\n\treturn emptyRGBColor\n}\n\n// HslInt alias of the HSLInt()\nfunc HslInt(h, s, l int, isBg ...bool) RGBColor { return HSLInt(h, s, l, isBg...) }\n\n// RGBFromSlice quick RGBColor from slice\nfunc RGBFromSlice(rgb []uint8, isBg ...bool) RGBColor {\n\treturn RGB(rgb[0], rgb[1], rgb[2], isBg...)\n}\n\n// RGBFromString create RGB color from a string.\n// support use color name in the {namedRgbMap}\n//\n// Usage:\n// \tc := RGBFromString(\"170,187,204\")\n// \tc.Print(\"message\")\n//\n// \tc := RGBFromString(\"brown\")\n// \tc.Print(\"message with color brown\")\nfunc RGBFromString(rgb string, isBg ...bool) RGBColor {\n\t// use color name in the {namedRgbMap}\n\tif rgbVal, ok := namedRgbMap[rgb]; ok {\n\t\trgb = rgbVal\n\t}\n\n\t// use rgb string.\n\tss := stringToArr(rgb, \",\")\n\tif len(ss) != 3 {\n\t\treturn emptyRGBColor\n\t}\n\n\tvar ar [3]int\n\tfor i, val := range ss {\n\t\tiv, err := strconv.Atoi(val)\n\t\tif err != nil {\n\t\t\treturn emptyRGBColor\n\t\t}\n\n\t\tar[i] = iv\n\t}\n\n\treturn RGB(uint8(ar[0]), uint8(ar[1]), uint8(ar[2]), isBg...)\n}\n\n// Set terminal by rgb/true color code\nfunc (c RGBColor) Set() error {\n\treturn SetTerminal(c.String())\n}\n\n// Reset terminal. alias of the ResetTerminal()\nfunc (c RGBColor) Reset() error {\n\treturn ResetTerminal()\n}\n\n// Print print message\nfunc (c RGBColor) Print(a ...interface{}) {\n\tdoPrintV2(c.String(), fmt.Sprint(a...))\n}\n\n// Printf format and print message\nfunc (c RGBColor) Printf(format string, a ...interface{}) {\n\tdoPrintV2(c.String(), fmt.Sprintf(format, a...))\n}\n\n// Println print message with newline\nfunc (c RGBColor) Println(a ...interface{}) {\n\tdoPrintlnV2(c.String(), a)\n}\n\n// Sprint returns rendered message\nfunc (c RGBColor) Sprint(a ...interface{}) string {\n\treturn RenderCode(c.String(), a...)\n}\n\n// Sprintf returns format and rendered message\nfunc (c RGBColor) Sprintf(format string, a ...interface{}) string {\n\treturn RenderString(c.String(), fmt.Sprintf(format, a...))\n}\n\n// Values to RGB values\nfunc (c RGBColor) Values() []int {\n\treturn []int{int(c[0]), int(c[1]), int(c[2])}\n}\n\n// Code to color code string without prefix. eg: \"204;123;56\"\nfunc (c RGBColor) Code() string {\n\treturn fmt.Sprintf(\"%d;%d;%d\", c[0], c[1], c[2])\n}\n\n// Hex color rgb to hex string. as in \"ff0080\".\nfunc (c RGBColor) Hex() string {\n\treturn fmt.Sprintf(\"%02x%02x%02x\", c[0], c[1], c[2])\n}\n\n// RgbString to color code string without prefix. eg: \"204,123,56\"\nfunc (c RGBColor) RgbString() string {\n\treturn fmt.Sprintf(\"%d,%d,%d\", c[0], c[1], c[2])\n}\n\n// FullCode to color code string with prefix\nfunc (c RGBColor) FullCode() string {\n\treturn c.String()\n}\n\n// String to color code string with prefix. eg: \"38;2;204;123;56\"\nfunc (c RGBColor) String() string {\n\tif c[3] == AsFg {\n\t\treturn fmt.Sprintf(TplFgRGB, c[0], c[1], c[2])\n\t}\n\n\tif c[3] == AsBg {\n\t\treturn fmt.Sprintf(TplBgRGB, c[0], c[1], c[2])\n\t}\n\n\t// c[3] > 1 is empty\n\treturn \"\"\n}\n\n// IsEmpty value\nfunc (c RGBColor) IsEmpty() bool {\n\treturn c[3] > AsBg\n}\n\n// IsValid value\n// func (c RGBColor) IsValid() bool {\n// \treturn c[3] <= AsBg\n// }\n\n// C256 returns the closest approximate 256 (8 bit) color\nfunc (c RGBColor) C256() Color256 {\n\treturn C256(RgbTo256(c[0], c[1], c[2]), c[3] == AsBg)\n}\n\n// Basic returns the closest approximate 16 (4 bit) color\nfunc (c RGBColor) Basic() Color {\n\t// return Color(RgbToAnsi(c[0], c[1], c[2], c[3] == AsBg))\n\treturn Color(Rgb2basic(c[0], c[1], c[2], c[3] == AsBg))\n}\n\n// Color returns the closest approximate 16 (4 bit) color\nfunc (c RGBColor) Color() Color { return c.Basic() }\n\n// C16 returns the closest approximate 16 (4 bit) color\nfunc (c RGBColor) C16() Color { return c.Basic() }\n\n/*************************************************************\n * RGB Style\n *************************************************************/\n\n// RGBStyle definition.\n//\n// Foreground/Background color\n// All are composed of 4 digits uint8, the first three digits are the color value;\n// The last bit is different from RGBColor, here it indicates whether the value is set.\n// - 1  Has been set\n// - ^1 Not set\ntype RGBStyle struct {\n\t// Name of the style\n\tName string\n\t// color options of the style\n\topts Opts\n\t// fg and bg color\n\tfg, bg RGBColor\n}\n\n// NewRGBStyle create a RGBStyle.\nfunc NewRGBStyle(fg RGBColor, bg ...RGBColor) *RGBStyle {\n\ts := &RGBStyle{}\n\tif len(bg) > 0 {\n\t\ts.SetBg(bg[0])\n\t}\n\n\treturn s.SetFg(fg)\n}\n\n// HEXStyle create a RGBStyle from HEX color string.\n// Usage:\n// \ts := HEXStyle(\"aabbcc\", \"eee\")\n// \ts.Print(\"message\")\nfunc HEXStyle(fg string, bg ...string) *RGBStyle {\n\ts := &RGBStyle{}\n\tif len(bg) > 0 {\n\t\ts.SetBg(HEX(bg[0]))\n\t}\n\n\tif len(fg) > 0 {\n\t\ts.SetFg(HEX(fg))\n\t}\n\n\treturn s\n}\n\n// RGBStyleFromString create a RGBStyle from color value string.\n// Usage:\n// \ts := RGBStyleFromString(\"170,187,204\", \"70,87,4\")\n// \ts.Print(\"message\")\nfunc RGBStyleFromString(fg string, bg ...string) *RGBStyle {\n\ts := &RGBStyle{}\n\tif len(bg) > 0 {\n\t\ts.SetBg(RGBFromString(bg[0]))\n\t}\n\n\treturn s.SetFg(RGBFromString(fg))\n}\n\n// Set fg and bg color, can also with color options\nfunc (s *RGBStyle) Set(fg, bg RGBColor, opts ...Color) *RGBStyle {\n\treturn s.SetFg(fg).SetBg(bg).SetOpts(opts)\n}\n\n// SetFg set fg color\nfunc (s *RGBStyle) SetFg(fg RGBColor) *RGBStyle {\n\tfg[3] = 1 // add fixed value, mark is valid\n\ts.fg = fg\n\treturn s\n}\n\n// SetBg set bg color\nfunc (s *RGBStyle) SetBg(bg RGBColor) *RGBStyle {\n\tbg[3] = 1 // add fixed value, mark is valid\n\ts.bg = bg\n\treturn s\n}\n\n// SetOpts set color options\nfunc (s *RGBStyle) SetOpts(opts Opts) *RGBStyle {\n\ts.opts = opts\n\treturn s\n}\n\n// AddOpts add options\nfunc (s *RGBStyle) AddOpts(opts ...Color) *RGBStyle {\n\ts.opts.Add(opts...)\n\treturn s\n}\n\n// Print print message\nfunc (s *RGBStyle) Print(a ...interface{}) {\n\tdoPrintV2(s.String(), fmt.Sprint(a...))\n}\n\n// Printf format and print message\nfunc (s *RGBStyle) Printf(format string, a ...interface{}) {\n\tdoPrintV2(s.String(), fmt.Sprintf(format, a...))\n}\n\n// Println print message with newline\nfunc (s *RGBStyle) Println(a ...interface{}) {\n\tdoPrintlnV2(s.String(), a)\n}\n\n// Sprint returns rendered message\nfunc (s *RGBStyle) Sprint(a ...interface{}) string {\n\treturn RenderCode(s.String(), a...)\n}\n\n// Sprintf returns format and rendered message\nfunc (s *RGBStyle) Sprintf(format string, a ...interface{}) string {\n\treturn RenderString(s.String(), fmt.Sprintf(format, a...))\n}\n\n// Code convert to color code string\nfunc (s *RGBStyle) Code() string {\n\treturn s.String()\n}\n\n// FullCode convert to color code string\nfunc (s *RGBStyle) FullCode() string {\n\treturn s.String()\n}\n\n// String convert to color code string\nfunc (s *RGBStyle) String() string {\n\tvar ss []string\n\t// last value ensure is enable.\n\tif s.fg[3] == 1 {\n\t\tss = append(ss, fmt.Sprintf(TplFgRGB, s.fg[0], s.fg[1], s.fg[2]))\n\t}\n\n\tif s.bg[3] == 1 {\n\t\tss = append(ss, fmt.Sprintf(TplBgRGB, s.bg[0], s.bg[1], s.bg[2]))\n\t}\n\n\tif s.opts.IsValid() {\n\t\tss = append(ss, s.opts.String())\n\t}\n\n\treturn strings.Join(ss, \";\")\n}\n\n// IsEmpty style\nfunc (s *RGBStyle) IsEmpty() bool {\n\treturn s.fg[3] != 1 && s.bg[3] != 1\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/color_tag.go",
    "content": "package color\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// output colored text like use html tag. (not support windows cmd)\nconst (\n\t// MatchExpr regex to match color tags\n\t//\n\t// Notice: golang 不支持反向引用. 即不支持使用 \\1 引用第一个匹配 ([a-z=;]+)\n\t// MatchExpr = `<([a-z=;]+)>(.*?)<\\/\\1>`\n\t// 所以调整一下 统一使用 `</>` 来结束标签，例如 \"<info>some text</>\"\n\t//\n\t// allow custom attrs, eg: \"<fg=white;bg=blue;op=bold>content</>\"\n\t// (?s:...) s - 让 \".\" 匹配换行\n\tMatchExpr = `<([0-9a-zA-Z_=,;]+)>(?s:(.*?))<\\/>`\n\n\t// AttrExpr regex to match custom color attributes\n\t// eg: \"<fg=white;bg=blue;op=bold>content</>\"\n\tAttrExpr = `(fg|bg|op)[\\s]*=[\\s]*([0-9a-zA-Z,]+);?`\n\n\t// StripExpr regex used for removing color tags\n\t// StripExpr = `<[\\/]?[a-zA-Z=;]+>`\n\t// 随着上面的做一些调整\n\tStripExpr = `<[\\/]?[0-9a-zA-Z_=,;]*>`\n)\n\nvar (\n\tattrRegex  = regexp.MustCompile(AttrExpr)\n\tmatchRegex = regexp.MustCompile(MatchExpr)\n\tstripRegex = regexp.MustCompile(StripExpr)\n)\n\n/*************************************************************\n * internal defined color tags\n *************************************************************/\n\n// There are internal defined color tags\n// Usage: <tag>content text</>\n// @notice 加 0 在前面是为了防止之前的影响到现在的设置\nvar colorTags = map[string]string{\n\t// basic tags\n\t\"red\":      \"0;31\",\n\t\"red1\":     \"1;31\", // with bold\n\t\"redB\":     \"1;31\",\n\t\"red_b\":    \"1;31\",\n\t\"blue\":     \"0;34\",\n\t\"blue1\":    \"1;34\", // with bold\n\t\"blueB\":    \"1;34\",\n\t\"blue_b\":   \"1;34\",\n\t\"cyan\":     \"0;36\",\n\t\"cyan1\":    \"1;36\", // with bold\n\t\"cyanB\":    \"1;36\",\n\t\"cyan_b\":   \"1;36\",\n\t\"green\":    \"0;32\",\n\t\"green1\":   \"1;32\", // with bold\n\t\"greenB\":   \"1;32\",\n\t\"green_b\":  \"1;32\",\n\t\"black\":    \"0;30\",\n\t\"white\":    \"1;37\",\n\t\"default\":  \"0;39\", // no color\n\t\"normal\":   \"0;39\", // no color\n\t\"brown\":    \"0;33\", // #A52A2A\n\t\"yellow\":   \"0;33\",\n\t\"ylw0\":     \"0;33\",\n\t\"yellowB\":  \"1;33\", // with bold\n\t\"ylw1\":     \"1;33\",\n\t\"ylwB\":     \"1;33\",\n\t\"magenta\":  \"0;35\",\n\t\"mga\":      \"0;35\", // short name\n\t\"magentaB\": \"1;35\", // with bold\n\t\"mgb\":      \"1;35\",\n\t\"mgaB\":     \"1;35\",\n\n\t// light/hi tags\n\n\t\"gray\":          \"0;90\",\n\t\"darkGray\":      \"0;90\",\n\t\"dark_gray\":     \"0;90\",\n\t\"lightYellow\":   \"0;93\",\n\t\"light_yellow\":  \"0;93\",\n\t\"hiYellow\":      \"0;93\",\n\t\"hi_yellow\":     \"0;93\",\n\t\"hiYellowB\":     \"1;93\", // with bold\n\t\"hi_yellow_b\":   \"1;93\",\n\t\"lightMagenta\":  \"0;95\",\n\t\"light_magenta\": \"0;95\",\n\t\"hiMagenta\":     \"0;95\",\n\t\"hi_magenta\":    \"0;95\",\n\t\"lightMagentaB\": \"1;95\", // with bold\n\t\"hiMagentaB\":    \"1;95\", // with bold\n\t\"hi_magenta_b\":  \"1;95\",\n\t\"lightRed\":      \"0;91\",\n\t\"light_red\":     \"0;91\",\n\t\"hiRed\":         \"0;91\",\n\t\"hi_red\":        \"0;91\",\n\t\"lightRedB\":     \"1;91\", // with bold\n\t\"light_red_b\":   \"1;91\",\n\t\"hi_red_b\":      \"1;91\",\n\t\"lightGreen\":    \"0;92\",\n\t\"light_green\":   \"0;92\",\n\t\"hiGreen\":       \"0;92\",\n\t\"hi_green\":      \"0;92\",\n\t\"lightGreenB\":   \"1;92\",\n\t\"light_green_b\": \"1;92\",\n\t\"hi_green_b\":    \"1;92\",\n\t\"lightBlue\":     \"0;94\",\n\t\"light_blue\":    \"0;94\",\n\t\"hiBlue\":        \"0;94\",\n\t\"hi_blue\":       \"0;94\",\n\t\"lightBlueB\":    \"1;94\",\n\t\"light_blue_b\":  \"1;94\",\n\t\"hi_blue_b\":     \"1;94\",\n\t\"lightCyan\":     \"0;96\",\n\t\"light_cyan\":    \"0;96\",\n\t\"hiCyan\":        \"0;96\",\n\t\"hi_cyan\":       \"0;96\",\n\t\"lightCyanB\":    \"1;96\",\n\t\"light_cyan_b\":  \"1;96\",\n\t\"hi_cyan_b\":     \"1;96\",\n\t\"lightWhite\":    \"0;97;40\",\n\t\"light_white\":   \"0;97;40\",\n\n\t// option\n\t\"bold\":       \"1\",\n\t\"b\":          \"1\",\n\t\"underscore\": \"4\",\n\t\"us\":         \"4\", // short name for 'underscore'\n\t\"reverse\":    \"7\",\n\n\t// alert tags, like bootstrap's alert\n\t\"suc\":     \"1;32\", // same \"green\" and \"bold\"\n\t\"success\": \"1;32\",\n\t\"info\":    \"0;32\", // same \"green\",\n\t\"comment\": \"0;33\", // same \"brown\"\n\t\"note\":    \"36;1\",\n\t\"notice\":  \"36;4\",\n\t\"warn\":    \"0;1;33\",\n\t\"warning\": \"0;30;43\",\n\t\"primary\": \"0;34\",\n\t\"danger\":  \"1;31\", // same \"red\" but add bold\n\t\"err\":     \"97;41\",\n\t\"error\":   \"97;41\", // fg light white; bg red\n}\n\n/*************************************************************\n * parse color tags\n *************************************************************/\n\nvar (\n\ttagParser = TagParser{}\n\trxNumStr  = regexp.MustCompile(\"^[0-9]{1,3}$\")\n\trxHexCode = regexp.MustCompile(\"^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$\")\n)\n\n// TagParser struct\ntype TagParser struct {\n\tdisable bool\n}\n\n// NewTagParser create\nfunc NewTagParser() *TagParser {\n\treturn &TagParser{}\n}\n\n// func (tp *TagParser) Disable() *TagParser {\n// \ttp.disable = true\n// \treturn tp\n// }\n\n// ParseByEnv parse given string. will check package setting.\nfunc (tp *TagParser) ParseByEnv(str string) string {\n\t// disable handler TAG\n\tif !RenderTag {\n\t\treturn str\n\t}\n\n\t// disable OR not support color\n\tif !Enable || !SupportColor() {\n\t\treturn ClearTag(str)\n\t}\n\n\treturn tp.Parse(str)\n}\n\n// Parse parse given string, replace color tag and return rendered string\nfunc (tp *TagParser) Parse(str string) string {\n\t// not contains color tag\n\tif !strings.Contains(str, \"</>\") {\n\t\treturn str\n\t}\n\n\t// find color tags by regex. str eg: \"<fg=white;bg=blue;op=bold>content</>\"\n\tmatched := matchRegex.FindAllStringSubmatch(str, -1)\n\n\t// item: 0 full text 1 tag name 2 tag content\n\tfor _, item := range matched {\n\t\tfull, tag, content := item[0], item[1], item[2]\n\n\t\t// use defined tag name: \"<info>content</>\" -> tag: \"info\"\n\t\tif !strings.ContainsRune(tag, '=') {\n\t\t\tcode := colorTags[tag]\n\t\t\tif len(code) > 0 {\n\t\t\t\tnow := RenderString(code, content)\n\t\t\t\t// old := WrapTag(content, tag) is equals to var 'full'\n\t\t\t\tstr = strings.Replace(str, full, now, 1)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// custom color in tag\n\t\t// - basic: \"fg=white;bg=blue;op=bold\"\n\t\tif code := ParseCodeFromAttr(tag); len(code) > 0 {\n\t\t\tnow := RenderString(code, content)\n\t\t\tstr = strings.Replace(str, full, now, 1)\n\t\t}\n\t}\n\n\treturn str\n}\n\n// func (tp *TagParser) ParseAttr(attr string) (code string) {\n// \treturn\n// }\n\n// ReplaceTag parse string, replace color tag and return rendered string\nfunc ReplaceTag(str string) string {\n\treturn tagParser.ParseByEnv(str)\n}\n\n// ParseCodeFromAttr parse color attributes.\n//\n// attr format:\n// \t// VALUE please see var: FgColors, BgColors, AllOptions\n// \t\"fg=VALUE;bg=VALUE;op=VALUE\"\n// 16 color:\n// \t\"fg=yellow\"\n// \t\"bg=red\"\n// \t\"op=bold,underscore\" option is allow multi value\n// \t\"fg=white;bg=blue;op=bold\"\n// \t\"fg=white;op=bold,underscore\"\n// 256 color:\n//\t\"fg=167\"\n//\t\"fg=167;bg=23\"\n//\t\"fg=167;bg=23;op=bold\"\n// true color:\n// \t// hex\n//\t\"fg=fc1cac\"\n//\t\"fg=fc1cac;bg=c2c3c4\"\n// \t// r,g,b\n//\t\"fg=23,45,214\"\n//\t\"fg=23,45,214;bg=109,99,88\"\nfunc ParseCodeFromAttr(attr string) (code string) {\n\tif !strings.ContainsRune(attr, '=') {\n\t\treturn\n\t}\n\n\tattr = strings.Trim(attr, \";=,\")\n\tif len(attr) == 0 {\n\t\treturn\n\t}\n\n\tvar codes []string\n\tmatched := attrRegex.FindAllStringSubmatch(attr, -1)\n\n\tfor _, item := range matched {\n\t\tpos, val := item[1], item[2]\n\t\tswitch pos {\n\t\tcase \"fg\":\n\t\t\tif c, ok := FgColors[val]; ok { // basic\n\t\t\t\tcodes = append(codes, c.String())\n\t\t\t} else if c, ok := ExFgColors[val]; ok { // extra\n\t\t\t\tcodes = append(codes, c.String())\n\t\t\t} else if code := rgbHex256toCode(val, false); code != \"\" {\n\t\t\t\tcodes = append(codes, code)\n\t\t\t}\n\t\tcase \"bg\":\n\t\t\tif c, ok := BgColors[val]; ok { // basic bg\n\t\t\t\tcodes = append(codes, c.String())\n\t\t\t} else if c, ok := ExBgColors[val]; ok { // extra bg\n\t\t\t\tcodes = append(codes, c.String())\n\t\t\t} else if code := rgbHex256toCode(val, true); code != \"\" {\n\t\t\t\tcodes = append(codes, code)\n\t\t\t}\n\t\tcase \"op\": // options allow multi value\n\t\t\tif strings.Contains(val, \",\") {\n\t\t\t\tns := strings.Split(val, \",\")\n\t\t\t\tfor _, n := range ns {\n\t\t\t\t\tif c, ok := AllOptions[n]; ok {\n\t\t\t\t\t\tcodes = append(codes, c.String())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if c, ok := AllOptions[val]; ok {\n\t\t\t\tcodes = append(codes, c.String())\n\t\t\t}\n\t\t}\n\t}\n\n\treturn strings.Join(codes, \";\")\n}\n\nfunc rgbHex256toCode(val string, isBg bool) (code string) {\n\tif len(val) == 6 && rxHexCode.MatchString(val) { // hex: \"fc1cac\"\n\t\tcode = HEX(val, isBg).String()\n\t} else if strings.ContainsRune(val, ',') { // rgb: \"231,178,161\"\n\t\tcode = strings.Replace(val, \",\", \";\", -1)\n\t\tif isBg {\n\t\t\tcode = BgRGBPfx + code\n\t\t} else {\n\t\t\tcode = FgRGBPfx + code\n\t\t}\n\t} else if len(val) < 4 && rxNumStr.MatchString(val) { // 256 code\n\t\tif isBg {\n\t\t\tcode = Bg256Pfx + val\n\t\t} else {\n\t\t\tcode = Fg256Pfx + val\n\t\t}\n\t}\n\treturn\n}\n\n// ClearTag clear all tag for a string\nfunc ClearTag(s string) string {\n\tif !strings.Contains(s, \"</>\") {\n\t\treturn s\n\t}\n\n\treturn stripRegex.ReplaceAllString(s, \"\")\n}\n\n/*************************************************************\n * helper methods\n *************************************************************/\n\n// GetTagCode get color code by tag name\nfunc GetTagCode(name string) string {\n\treturn colorTags[name]\n}\n\n// ApplyTag for messages\nfunc ApplyTag(tag string, a ...interface{}) string {\n\treturn RenderCode(GetTagCode(tag), a...)\n}\n\n// WrapTag wrap a tag for a string \"<tag>content</>\"\nfunc WrapTag(s string, tag string) string {\n\tif s == \"\" || tag == \"\" {\n\t\treturn s\n\t}\n\n\treturn fmt.Sprintf(\"<%s>%s</>\", tag, s)\n}\n\n// GetColorTags get all internal color tags\nfunc GetColorTags() map[string]string {\n\treturn colorTags\n}\n\n// IsDefinedTag is defined tag name\nfunc IsDefinedTag(name string) bool {\n\t_, ok := colorTags[name]\n\treturn ok\n}\n\n/*************************************************************\n * Tag extra\n *************************************************************/\n\n// Tag value is a defined style name\n// Usage:\n// \tTag(\"info\").Println(\"message\")\ntype Tag string\n\n// Print messages\nfunc (tg Tag) Print(a ...interface{}) {\n\tname := string(tg)\n\tstr := fmt.Sprint(a...)\n\n\tif stl := GetStyle(name); !stl.IsEmpty() {\n\t\tstl.Print(str)\n\t} else {\n\t\tdoPrintV2(GetTagCode(name), str)\n\t}\n}\n\n// Printf format and print messages\nfunc (tg Tag) Printf(format string, a ...interface{}) {\n\tname := string(tg)\n\tstr := fmt.Sprintf(format, a...)\n\n\tif stl := GetStyle(name); !stl.IsEmpty() {\n\t\tstl.Print(str)\n\t} else {\n\t\tdoPrintV2(GetTagCode(name), str)\n\t}\n}\n\n// Println messages line\nfunc (tg Tag) Println(a ...interface{}) {\n\tname := string(tg)\n\tif stl := GetStyle(name); !stl.IsEmpty() {\n\t\tstl.Println(a...)\n\t} else {\n\t\tdoPrintlnV2(GetTagCode(name), a)\n\t}\n}\n\n// Sprint render messages\nfunc (tg Tag) Sprint(a ...interface{}) string {\n\tname := string(tg)\n\t// if stl := GetStyle(name); !stl.IsEmpty() {\n\t// \treturn stl.Render(args...)\n\t// }\n\n\treturn RenderCode(GetTagCode(name), a...)\n}\n\n// Sprintf format and render messages\nfunc (tg Tag) Sprintf(format string, a ...interface{}) string {\n\ttag := string(tg)\n\tstr := fmt.Sprintf(format, a...)\n\n\treturn RenderString(GetTagCode(tag), str)\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/convert.go",
    "content": "package color\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nvar (\n\t// ---------- basic(16) <=> 256 color convert ----------\n\tbasicTo256Map = map[uint8]uint8{\n\t\t30: 0,   // black \t000000\n\t\t31: 160, // red \tc51e14\n\t\t32: 34,  // green \t1dc121\n\t\t33: 184, // yellow \tc7c329\n\t\t34: 20,  // blue \t0a2fc4\n\t\t35: 170, // magenta c839c5\n\t\t36: 44,  // cyan \t20c5c6\n\t\t37: 188, // white \tc7c7c7\n\t\t90: 59,  // lightBlack \t\t686868\n\t\t91: 203, // lightRed \t\tfd6f6b\n\t\t92: 83,  // lightGreen \t\t67f86f\n\t\t93: 227, // lightYellow \tfffa72\n\t\t94: 69,  // lightBlue \t\t6a76fb\n\t\t95: 213, // lightMagenta \tfd7cfc\n\t\t96: 87,  // lightCyan \t\t68fdfe\n\t\t97: 15,  // lightWhite \t\tffffff\n\t}\n\n\t// ---------- basic(16) <=> RGB color convert ----------\n\t// refer from Hyper app\n\tbasic2hexMap = map[uint8]string{\n\t\t30:  \"000000\", // black\n\t\t31:  \"c51e14\", // red\n\t\t32:  \"1dc121\", // green\n\t\t33:  \"c7c329\", // yellow\n\t\t34:  \"0a2fc4\", // blue\n\t\t35:  \"c839c5\", // magenta\n\t\t36:  \"20c5c6\", // cyan\n\t\t37:  \"c7c7c7\", // white\n\t\t// - don't add bg color\n\t\t// 40:  \"000000\", // black\n\t\t// 41:  \"c51e14\", // red\n\t\t// 42:  \"1dc121\", // green\n\t\t// 43:  \"c7c329\", // yellow\n\t\t// 44:  \"0a2fc4\", // blue\n\t\t// 45:  \"c839c5\", // magenta\n\t\t// 46:  \"20c5c6\", // cyan\n\t\t// 47:  \"c7c7c7\", // white\n\t\t90:  \"686868\", // lightBlack/darkGray\n\t\t91:  \"fd6f6b\", // lightRed\n\t\t92:  \"67f86f\", // lightGreen\n\t\t93:  \"fffa72\", // lightYellow\n\t\t94:  \"6a76fb\", // lightBlue\n\t\t95:  \"fd7cfc\", // lightMagenta\n\t\t96:  \"68fdfe\", // lightCyan\n\t\t97:  \"ffffff\", // lightWhite\n\t\t// - don't add bg color\n\t\t// 100: \"686868\", // lightBlack/darkGray\n\t\t// 101: \"fd6f6b\", // lightRed\n\t\t// 102: \"67f86f\", // lightGreen\n\t\t// 103: \"fffa72\", // lightYellow\n\t\t// 104: \"6a76fb\", // lightBlue\n\t\t// 105: \"fd7cfc\", // lightMagenta\n\t\t// 106: \"68fdfe\", // lightCyan\n\t\t// 107: \"ffffff\", // lightWhite\n\t}\n\t// will convert data from basic2hexMap\n\thex2basicMap = initHex2basicMap()\n\n\t// ---------- 256 <=> RGB color convert ----------\n\t// adapted from https://gist.github.com/MicahElliott/719710\n\n\tc256ToHexMap = init256ToHexMap()\n\n\t// rgb to 256 color look-up table\n\t// RGB hex => 256 code\n\thexTo256Table = map[string]uint8{\n\t\t// Primary 3-bit (8 colors). Unique representation!\n\t\t\"000000\": 0,\n\t\t\"800000\": 1,\n\t\t\"008000\": 2,\n\t\t\"808000\": 3,\n\t\t\"000080\": 4,\n\t\t\"800080\": 5,\n\t\t\"008080\": 6,\n\t\t\"c0c0c0\": 7,\n\n\t\t// Equivalent \"bright\" versions of original 8 colors.\n\t\t\"808080\": 8,\n\t\t\"ff0000\": 9,\n\t\t\"00ff00\": 10,\n\t\t\"ffff00\": 11,\n\t\t\"0000ff\": 12,\n\t\t\"ff00ff\": 13,\n\t\t\"00ffff\": 14,\n\t\t\"ffffff\": 15,\n\n\t\t// values commented out below are duplicates from the prior sections\n\n\t\t// Strictly ascending.\n\t\t// \"000000\": 16,\n\t\t\"000001\": 16, // up: avoid key conflicts, value + 1\n\t\t\"00005f\": 17,\n\t\t\"000087\": 18,\n\t\t\"0000af\": 19,\n\t\t\"0000d7\": 20,\n\t\t// \"0000ff\": 21,\n\t\t\"0000fe\": 21, // up: avoid key conflicts, value - 1\n\t\t\"005f00\": 22,\n\t\t\"005f5f\": 23,\n\t\t\"005f87\": 24,\n\t\t\"005faf\": 25,\n\t\t\"005fd7\": 26,\n\t\t\"005fff\": 27,\n\t\t\"008700\": 28,\n\t\t\"00875f\": 29,\n\t\t\"008787\": 30,\n\t\t\"0087af\": 31,\n\t\t\"0087d7\": 32,\n\t\t\"0087ff\": 33,\n\t\t\"00af00\": 34,\n\t\t\"00af5f\": 35,\n\t\t\"00af87\": 36,\n\t\t\"00afaf\": 37,\n\t\t\"00afd7\": 38,\n\t\t\"00afff\": 39,\n\t\t\"00d700\": 40,\n\t\t\"00d75f\": 41,\n\t\t\"00d787\": 42,\n\t\t\"00d7af\": 43,\n\t\t\"00d7d7\": 44,\n\t\t\"00d7ff\": 45,\n\t\t// \"00ff00\": 46,\n\t\t\"00ff01\": 46, // up: avoid key conflicts, value + 1\n\t\t\"00ff5f\": 47,\n\t\t\"00ff87\": 48,\n\t\t\"00ffaf\": 49,\n\t\t\"00ffd7\": 50,\n\t\t// \"00ffff\": 51,\n\t\t\"00fffe\": 51, // up: avoid key conflicts, value - 1\n\t\t\"5f0000\": 52,\n\t\t\"5f005f\": 53,\n\t\t\"5f0087\": 54,\n\t\t\"5f00af\": 55,\n\t\t\"5f00d7\": 56,\n\t\t\"5f00ff\": 57,\n\t\t\"5f5f00\": 58,\n\t\t\"5f5f5f\": 59,\n\t\t\"5f5f87\": 60,\n\t\t\"5f5faf\": 61,\n\t\t\"5f5fd7\": 62,\n\t\t\"5f5fff\": 63,\n\t\t\"5f8700\": 64,\n\t\t\"5f875f\": 65,\n\t\t\"5f8787\": 66,\n\t\t\"5f87af\": 67,\n\t\t\"5f87d7\": 68,\n\t\t\"5f87ff\": 69,\n\t\t\"5faf00\": 70,\n\t\t\"5faf5f\": 71,\n\t\t\"5faf87\": 72,\n\t\t\"5fafaf\": 73,\n\t\t\"5fafd7\": 74,\n\t\t\"5fafff\": 75,\n\t\t\"5fd700\": 76,\n\t\t\"5fd75f\": 77,\n\t\t\"5fd787\": 78,\n\t\t\"5fd7af\": 79,\n\t\t\"5fd7d7\": 80,\n\t\t\"5fd7ff\": 81,\n\t\t\"5fff00\": 82,\n\t\t\"5fff5f\": 83,\n\t\t\"5fff87\": 84,\n\t\t\"5fffaf\": 85,\n\t\t\"5fffd7\": 86,\n\t\t\"5fffff\": 87,\n\t\t\"870000\": 88,\n\t\t\"87005f\": 89,\n\t\t\"870087\": 90,\n\t\t\"8700af\": 91,\n\t\t\"8700d7\": 92,\n\t\t\"8700ff\": 93,\n\t\t\"875f00\": 94,\n\t\t\"875f5f\": 95,\n\t\t\"875f87\": 96,\n\t\t\"875faf\": 97,\n\t\t\"875fd7\": 98,\n\t\t\"875fff\": 99,\n\t\t\"878700\": 100,\n\t\t\"87875f\": 101,\n\t\t\"878787\": 102,\n\t\t\"8787af\": 103,\n\t\t\"8787d7\": 104,\n\t\t\"8787ff\": 105,\n\t\t\"87af00\": 106,\n\t\t\"87af5f\": 107,\n\t\t\"87af87\": 108,\n\t\t\"87afaf\": 109,\n\t\t\"87afd7\": 110,\n\t\t\"87afff\": 111,\n\t\t\"87d700\": 112,\n\t\t\"87d75f\": 113,\n\t\t\"87d787\": 114,\n\t\t\"87d7af\": 115,\n\t\t\"87d7d7\": 116,\n\t\t\"87d7ff\": 117,\n\t\t\"87ff00\": 118,\n\t\t\"87ff5f\": 119,\n\t\t\"87ff87\": 120,\n\t\t\"87ffaf\": 121,\n\t\t\"87ffd7\": 122,\n\t\t\"87ffff\": 123,\n\t\t\"af0000\": 124,\n\t\t\"af005f\": 125,\n\t\t\"af0087\": 126,\n\t\t\"af00af\": 127,\n\t\t\"af00d7\": 128,\n\t\t\"af00ff\": 129,\n\t\t\"af5f00\": 130,\n\t\t\"af5f5f\": 131,\n\t\t\"af5f87\": 132,\n\t\t\"af5faf\": 133,\n\t\t\"af5fd7\": 134,\n\t\t\"af5fff\": 135,\n\t\t\"af8700\": 136,\n\t\t\"af875f\": 137,\n\t\t\"af8787\": 138,\n\t\t\"af87af\": 139,\n\t\t\"af87d7\": 140,\n\t\t\"af87ff\": 141,\n\t\t\"afaf00\": 142,\n\t\t\"afaf5f\": 143,\n\t\t\"afaf87\": 144,\n\t\t\"afafaf\": 145,\n\t\t\"afafd7\": 146,\n\t\t\"afafff\": 147,\n\t\t\"afd700\": 148,\n\t\t\"afd75f\": 149,\n\t\t\"afd787\": 150,\n\t\t\"afd7af\": 151,\n\t\t\"afd7d7\": 152,\n\t\t\"afd7ff\": 153,\n\t\t\"afff00\": 154,\n\t\t\"afff5f\": 155,\n\t\t\"afff87\": 156,\n\t\t\"afffaf\": 157,\n\t\t\"afffd7\": 158,\n\t\t\"afffff\": 159,\n\t\t\"d70000\": 160,\n\t\t\"d7005f\": 161,\n\t\t\"d70087\": 162,\n\t\t\"d700af\": 163,\n\t\t\"d700d7\": 164,\n\t\t\"d700ff\": 165,\n\t\t\"d75f00\": 166,\n\t\t\"d75f5f\": 167,\n\t\t\"d75f87\": 168,\n\t\t\"d75faf\": 169,\n\t\t\"d75fd7\": 170,\n\t\t\"d75fff\": 171,\n\t\t\"d78700\": 172,\n\t\t\"d7875f\": 173,\n\t\t\"d78787\": 174,\n\t\t\"d787af\": 175,\n\t\t\"d787d7\": 176,\n\t\t\"d787ff\": 177,\n\t\t\"d7af00\": 178,\n\t\t\"d7af5f\": 179,\n\t\t\"d7af87\": 180,\n\t\t\"d7afaf\": 181,\n\t\t\"d7afd7\": 182,\n\t\t\"d7afff\": 183,\n\t\t\"d7d700\": 184,\n\t\t\"d7d75f\": 185,\n\t\t\"d7d787\": 186,\n\t\t\"d7d7af\": 187,\n\t\t\"d7d7d7\": 188,\n\t\t\"d7d7ff\": 189,\n\t\t\"d7ff00\": 190,\n\t\t\"d7ff5f\": 191,\n\t\t\"d7ff87\": 192,\n\t\t\"d7ffaf\": 193,\n\t\t\"d7ffd7\": 194,\n\t\t\"d7ffff\": 195,\n\t\t// \"ff0000\": 196,\n\t\t\"ff0001\": 196, // up: avoid key conflicts, value + 1\n\t\t\"ff005f\": 197,\n\t\t\"ff0087\": 198,\n\t\t\"ff00af\": 199,\n\t\t\"ff00d7\": 200,\n\t\t// \"ff00ff\": 201,\n\t\t\"ff00fe\": 201, // up: avoid key conflicts, value - 1\n\t\t\"ff5f00\": 202,\n\t\t\"ff5f5f\": 203,\n\t\t\"ff5f87\": 204,\n\t\t\"ff5faf\": 205,\n\t\t\"ff5fd7\": 206,\n\t\t\"ff5fff\": 207,\n\t\t\"ff8700\": 208,\n\t\t\"ff875f\": 209,\n\t\t\"ff8787\": 210,\n\t\t\"ff87af\": 211,\n\t\t\"ff87d7\": 212,\n\t\t\"ff87ff\": 213,\n\t\t\"ffaf00\": 214,\n\t\t\"ffaf5f\": 215,\n\t\t\"ffaf87\": 216,\n\t\t\"ffafaf\": 217,\n\t\t\"ffafd7\": 218,\n\t\t\"ffafff\": 219,\n\t\t\"ffd700\": 220,\n\t\t\"ffd75f\": 221,\n\t\t\"ffd787\": 222,\n\t\t\"ffd7af\": 223,\n\t\t\"ffd7d7\": 224,\n\t\t\"ffd7ff\": 225,\n\t\t// \"ffff00\": 226,\n\t\t\"ffff01\": 226, // up: avoid key conflicts, value + 1\n\t\t\"ffff5f\": 227,\n\t\t\"ffff87\": 228,\n\t\t\"ffffaf\": 229,\n\t\t\"ffffd7\": 230,\n\t\t// \"ffffff\": 231,\n\t\t\"fffffe\": 231, // up: avoid key conflicts, value - 1\n\n\t\t// Gray-scale range.\n\t\t\"080808\": 232,\n\t\t\"121212\": 233,\n\t\t\"1c1c1c\": 234,\n\t\t\"262626\": 235,\n\t\t\"303030\": 236,\n\t\t\"3a3a3a\": 237,\n\t\t\"444444\": 238,\n\t\t\"4e4e4e\": 239,\n\t\t\"585858\": 240,\n\t\t\"626262\": 241,\n\t\t\"6c6c6c\": 242,\n\t\t\"767676\": 243,\n\t\t// \"808080\": 244,\n\t\t\"808081\": 244, // up: avoid key conflicts, value + 1\n\t\t\"8a8a8a\": 245,\n\t\t\"949494\": 246,\n\t\t\"9e9e9e\": 247,\n\t\t\"a8a8a8\": 248,\n\t\t\"b2b2b2\": 249,\n\t\t\"bcbcbc\": 250,\n\t\t\"c6c6c6\": 251,\n\t\t\"d0d0d0\": 252,\n\t\t\"dadada\": 253,\n\t\t\"e4e4e4\": 254,\n\t\t\"eeeeee\": 255,\n\t}\n\n\tincs = []uint8{0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff}\n)\n\nfunc initHex2basicMap() map[string]uint8 {\n\th2b := make(map[string]uint8, len(basic2hexMap))\n\t// ini data map\n\tfor u, s := range basic2hexMap {\n\t\th2b[s] = u\n\t}\n\treturn h2b\n}\n\nfunc init256ToHexMap() map[uint8]string {\n\tc256toh := make(map[uint8]string, len(hexTo256Table))\n\t// ini data map\n\tfor hex, c256 := range hexTo256Table {\n\t\tc256toh[c256] = hex\n\t}\n\treturn c256toh\n}\n\n// RgbTo256Table mapping data\nfunc RgbTo256Table() map[string]uint8 {\n\treturn hexTo256Table\n}\n\n// Colors2code convert colors to code. return like \"32;45;3\"\nfunc Colors2code(colors ...Color) string {\n\tif len(colors) == 0 {\n\t\treturn \"\"\n\t}\n\n\tvar codes []string\n\tfor _, color := range colors {\n\t\tcodes = append(codes, color.String())\n\t}\n\n\treturn strings.Join(codes, \";\")\n}\n\n/*************************************************************\n * HEX code <=> RGB/True color code\n *************************************************************/\n\n// Hex2rgb alias of the HexToRgb()\nfunc Hex2rgb(hex string) []int { return HexToRgb(hex) }\n\n// HexToRGB alias of the HexToRgb()\nfunc HexToRGB(hex string) []int { return HexToRgb(hex) }\n\n// HexToRgb convert hex color string to RGB numbers\n//\n// Usage:\n// \trgb := HexToRgb(\"ccc\") // rgb: [204 204 204]\n// \trgb := HexToRgb(\"aabbcc\") // rgb: [170 187 204]\n// \trgb := HexToRgb(\"#aabbcc\") // rgb: [170 187 204]\n// \trgb := HexToRgb(\"0xad99c0\") // rgb: [170 187 204]\nfunc HexToRgb(hex string) (rgb []int) {\n\thex = strings.TrimSpace(hex)\n\tif hex == \"\" {\n\t\treturn\n\t}\n\n\t// like from css. eg \"#ccc\" \"#ad99c0\"\n\tif hex[0] == '#' {\n\t\thex = hex[1:]\n\t}\n\n\thex = strings.ToLower(hex)\n\tswitch len(hex) {\n\tcase 3: // \"ccc\"\n\t\thex = string([]byte{hex[0], hex[0], hex[1], hex[1], hex[2], hex[2]})\n\tcase 8: // \"0xad99c0\"\n\t\thex = strings.TrimPrefix(hex, \"0x\")\n\t}\n\n\t// recheck\n\tif len(hex) != 6 {\n\t\treturn\n\t}\n\n\t// convert string to int64\n\tif i64, err := strconv.ParseInt(hex, 16, 32); err == nil {\n\t\tcolor := int(i64)\n\t\t// parse int\n\t\trgb = make([]int, 3)\n\t\trgb[0] = color >> 16\n\t\trgb[1] = (color & 0x00FF00) >> 8\n\t\trgb[2] = color & 0x0000FF\n\t}\n\treturn\n}\n\n// Rgb2hex alias of the RgbToHex()\nfunc Rgb2hex(rgb []int) string { return RgbToHex(rgb) }\n\n// RgbToHex convert RGB-code to hex-code\n//\n// Usage:\n//\thex := RgbToHex([]int{170, 187, 204}) // hex: \"aabbcc\"\nfunc RgbToHex(rgb []int) string {\n\thexNodes := make([]string, len(rgb))\n\n\tfor _, v := range rgb {\n\t\thexNodes = append(hexNodes, strconv.FormatInt(int64(v), 16))\n\t}\n\treturn strings.Join(hexNodes, \"\")\n}\n\n/*************************************************************\n * 4bit(16) color <=> RGB/True color\n *************************************************************/\n\n// Basic2hex convert basic color to hex string.\nfunc Basic2hex(val uint8) string {\n\tval = Fg2Bg(val)\n\treturn basic2hexMap[val]\n}\n\n// Hex2basic convert hex string to basic color code.\nfunc Hex2basic(hex string, asBg ...bool) uint8 {\n\tval := hex2basicMap[hex]\n\n\tif len(asBg) > 0 && asBg[0] {\n\t\treturn Fg2Bg(val)\n\t}\n\treturn val\n}\n\n// Rgb2basic alias of the RgbToAnsi()\nfunc Rgb2basic(r, g, b uint8, isBg bool) uint8 {\n\t// is basic color, direct use static map data.\n\thex := RgbToHex([]int{int(r), int(g), int(b)})\n\tif val, ok := hex2basicMap[hex]; ok {\n\t\tif isBg {\n\t\t\treturn val + 10\n\t\t}\n\t\treturn val\n\t}\n\n\treturn RgbToAnsi(r, g, b, isBg)\n}\n\n// Rgb2ansi alias of the RgbToAnsi()\nfunc Rgb2ansi(r, g, b uint8, isBg bool) uint8 {\n\treturn RgbToAnsi(r, g, b, isBg)\n}\n\n// RgbToAnsi convert RGB-code to 16-code\n// refer https://github.com/radareorg/radare2/blob/master/libr/cons/rgb.c#L249-L271\nfunc RgbToAnsi(r, g, b uint8, isBg bool) uint8 {\n\tvar bright, c, k uint8\n\tbase := compareVal(isBg, BgBase, FgBase)\n\n\t// eco bright-specific\n\tif r == 0x80 && g == 0x80 && b == 0x80 { // 0x80=128\n\t\tbright = 53\n\t} else if r == 0xff || g == 0xff || b == 0xff { // 0xff=255\n\t\tbright = 60\n\t} // else bright = 0\n\n\tif r == g && g == b {\n\t\t// 0x7f=127\n\t\t// r = (r > 0x7f) ? 1 : 0;\n\t\tr = compareVal(r > 0x7f, 1, 0)\n\t\tg = compareVal(g > 0x7f, 1, 0)\n\t\tb = compareVal(b > 0x7f, 1, 0)\n\t} else {\n\t\tk = (r + g + b) / 3\n\n\t\t// r = (r >= k) ? 1 : 0;\n\t\tr = compareVal(r >= k, 1, 0)\n\t\tg = compareVal(g >= k, 1, 0)\n\t\tb = compareVal(b >= k, 1, 0)\n\t}\n\n\t// c = (r ? 1 : 0) + (g ? (b ? 6 : 2) : (b ? 4 : 0))\n\tc = compareVal(r > 0, 1, 0)\n\n\tif g > 0 {\n\t\tc += compareVal(b > 0, 6, 2)\n\t} else {\n\t\tc += compareVal(b > 0, 4, 0)\n\t}\n\treturn base + bright + c\n}\n\n/*************************************************************\n * 8bit(256) color <=> RGB/True color\n *************************************************************/\n\n// Rgb2short convert RGB-code to 256-code\nfunc Rgb2short(r, g, b uint8) uint8 {\n\treturn RgbTo256(r, g, b)\n}\n\n// RgbTo256 convert RGB-code to 256-code\nfunc RgbTo256(r, g, b uint8) uint8 {\n\tres := make([]uint8, 3)\n\tfor partI, part := range [3]uint8{r, g, b} {\n\t\ti := 0\n\t\tfor i < len(incs)-1 {\n\t\t\ts, b := incs[i], incs[i+1] // smaller, bigger\n\t\t\tif s <= part && part <= b {\n\t\t\t\ts1 := math.Abs(float64(s) - float64(part))\n\t\t\t\tb1 := math.Abs(float64(b) - float64(part))\n\t\t\t\tvar closest uint8\n\t\t\t\tif s1 < b1 {\n\t\t\t\t\tclosest = s\n\t\t\t\t} else {\n\t\t\t\t\tclosest = b\n\t\t\t\t}\n\t\t\t\tres[partI] = closest\n\t\t\t\tbreak\n\t\t\t}\n\t\t\ti++\n\t\t}\n\t}\n\thex := fmt.Sprintf(\"%02x%02x%02x\", res[0], res[1], res[2])\n\tequiv := hexTo256Table[hex]\n\treturn equiv\n}\n\n// C256ToRgb convert an 256 color code to RGB numbers\nfunc C256ToRgb(val uint8) (rgb []uint8) {\n\thex := c256ToHexMap[val]\n\t// convert to rgb code\n\trgbInts := Hex2rgb(hex)\n\n\treturn []uint8{\n\t\tuint8(rgbInts[0]),\n\t\tuint8(rgbInts[1]),\n\t\tuint8(rgbInts[2]),\n\t}\n}\n\n// C256ToRgbV1 convert an 256 color code to RGB numbers\n// refer https://github.com/torvalds/linux/commit/cec5b2a97a11ade56a701e83044d0a2a984c67b4\nfunc C256ToRgbV1(val uint8) (rgb []uint8) {\n\tvar r, g, b uint8\n\tif val < 8 { // Standard colours.\n\t\t// r = val&1 ? 0xaa : 0x00;\n\t\tr = compareVal(val&1 == 1, 0xaa, 0x00)\n\t\tg = compareVal(val&2 == 2, 0xaa, 0x00)\n\t\tb = compareVal(val&4 == 4, 0xaa, 0x00)\n\t} else if val < 16 {\n\t\t// r = val & 1 ? 0xff : 0x55;\n\t\tr = compareVal(val&1 == 1, 0xff, 0x55)\n\t\tg = compareVal(val&2 == 2, 0xff, 0x55)\n\t\tb = compareVal(val&4 == 4, 0xff, 0x55)\n\t} else if val < 232 { /* 6x6x6 colour cube. */\n\t\tr = (val - 16) / 36 * 85 / 2\n\t\tg = (val - 16) / 6 % 6 * 85 / 2\n\t\tb = (val - 16) % 6 * 85 / 2\n\t} else { /* Grayscale ramp. */\n\t\tnv := uint8(int(val)*10 - 2312)\n\t\t// set value\n\t\tr, g, b = nv, nv, nv\n\t}\n\n\treturn []uint8{r, g, b}\n}\n\n/**************************************************************\n * HSL color <=> RGB/True color\n ************************************************************\n * h,s,l = Hue, Saturation, Lightness\n *\n * refers\n *  http://en.wikipedia.org/wiki/HSL_color_space\n *  https://www.w3.org/TR/css-color-3/#hsl-color\n *  https://stackoverflow.com/questions/2353211/hsl-to-rgb-color-conversion\n *\thttps://github.com/less/less.js/blob/master/packages/less/src/less/functions/color.js\n *  https://github.com/d3/d3-color/blob/v3.0.1/README.md#hsl\n *\n * examples:\n *  color: hsl(0, 100%, 50%)   // red\n *  color: hsl(120, 100%, 50%) // lime\n *  color: hsl(120, 100%, 25%) // dark green\n *  color: hsl(120, 100%, 75%) // light green\n *  color: hsl(120, 75%, 75%)  // pastel green, and so on\n */\n\n// HslIntToRgb Converts an HSL color value to RGB\n// Assumes h: 0-360, s: 0-100, l: 0-100\n// returns r, g, and b in the set [0, 255].\n//\n// Usage:\n//\tHslIntToRgb(0, 100, 50) // red\n//\tHslIntToRgb(120, 100, 50) // lime\n//\tHslIntToRgb(120, 100, 25) // dark green\n//\tHslIntToRgb(120, 100, 75) // light green\nfunc HslIntToRgb(h, s, l int) (rgb []uint8) {\n\treturn HslToRgb(float64(h)/360, float64(s)/100, float64(l)/100)\n}\n\n// HslToRgb Converts an HSL color value to RGB. Conversion formula\n// adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n// Assumes h, s, and l are contained in the set [0, 1]\n// returns r, g, and b in the set [0, 255].\n//\n// Usage:\n//\trgbVals := HslToRgb(0, 1, 0.5) // red\nfunc HslToRgb(h, s, l float64) (rgb []uint8) {\n\tvar r, g, b float64\n\n\tif s == 0 { // achromatic\n\t\tr, g, b = l, l, l\n\t} else {\n\t\tvar hue2rgb = func(p, q, t float64) float64 {\n\t\t\tif t < 0.0 {\n\t\t\t\tt += 1\n\t\t\t}\n\t\t\tif t > 1.0 {\n\t\t\t\tt -= 1\n\t\t\t}\n\n\t\t\tif t < 1.0/6.0 {\n\t\t\t\treturn p + (q-p)*6.0*t\n\t\t\t}\n\n\t\t\tif t < 1.0/2.0 {\n\t\t\t\treturn q\n\t\t\t}\n\n\t\t\tif t < 2.0/3.0 {\n\t\t\t\treturn p + (q-p)*(2.0/3.0-t)*6.0\n\t\t\t}\n\t\t\treturn p\n\t\t}\n\n\t\t// q = l < 0.5 ? l * (1 + s) : l + s - l*s\n\t\tvar q float64\n\t\tif l < 0.5 {\n\t\t\tq = l * (1.0 + s)\n\t\t} else {\n\t\t\tq = l + s - l*s\n\t\t}\n\n\t\tvar p = 2.0*l - q\n\n\t\tr = hue2rgb(p, q, h+1.0/3.0)\n\t\tg = hue2rgb(p, q, h)\n\t\tb = hue2rgb(p, q, h-1.0/3.0)\n\t}\n\n\t// return []uint8{uint8(r * 255), uint8(g * 255), uint8(b * 255)}\n\treturn []uint8{\n\t\tuint8(math.Round(r * 255)),\n\t\tuint8(math.Round(g * 255)),\n\t\tuint8(math.Round(b * 255)),\n\t}\n}\n\n// RgbToHslInt Converts an RGB color value to HSL. Conversion formula\n// Assumes r, g, and b are contained in the set [0, 255] and\n// returns [h,s,l] h: 0-360, s: 0-100, l: 0-100.\nfunc RgbToHslInt(r, g, b uint8) []int {\n\tf64s := RgbToHsl(r, g, b)\n\n\treturn []int{int(f64s[0] * 360), int(f64s[1] * 100), int(f64s[2] * 100)}\n}\n\n// RgbToHsl Converts an RGB color value to HSL. Conversion formula\n// adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n// Assumes r, g, and b are contained in the set [0, 255] and\n// returns h, s, and l in the set [0, 1].\nfunc RgbToHsl(r, g, b uint8) []float64 {\n\t// to float64\n\tfr, fg, fb := float64(r), float64(g), float64(b)\n\t// percentage\n\tpr, pg, pb := float64(r)/255.0, float64(g)/255.0, float64(b)/255.0\n\n\tps := []float64{pr, pg, pb}\n\tsort.Float64s(ps)\n\n\tmin, max := ps[0], ps[2]\n\t// max := math.Max(math.Max(pr, pg), pb)\n\t// min := math.Min(math.Min(pr, pg), pb)\n\n\tmid := (max + min) / 2\n\n\th, s, l := mid, mid, mid\n\n\tif max == min {\n\t\th, s = 0, 0 // achromatic\n\t} else {\n\t\tvar d = max - min\n\t\t// s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n\t\ts = compareF64Val(l > 0.5, d/(2-max-min), d/(max+min))\n\n\t\tswitch max {\n\t\tcase fr:\n\t\t\t// h = (g - b) / d + (g < b ? 6 : 0)\n\t\t\th = (fg - fb) / d\n\t\t\th += compareF64Val(g < b, 6, 0)\n\t\tcase fg:\n\t\t\th = (fb-fr)/d + 2\n\t\tcase fb:\n\t\t\th = (fr-fg)/d + 4\n\t\t}\n\n\t\th /= 6\n\t}\n\n\treturn []float64{h, s, l}\n}\n\n/**************************************************************\n * HSV color <=> RGB/True color\n ************************************************************\n * h,s,l = Hue, Saturation, Value(Brightness)\n *\n * refers\n *  https://stackoverflow.com/questions/2353211/hsl-to-rgb-color-conversion\n *\thttps://github.com/less/less.js/blob/master/packages/less/src/less/functions/color.js\n *  https://github.com/d3/d3-color/blob/v3.0.1/README.md#hsl\n */\n\n// HsvToRgb Converts an HSL color value to RGB. Conversion formula\n// adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB\n// Assumes h: 0-360, s: 0-100, l: 0-100\n// returns r, g, and b in the set [0, 255].\nfunc HsvToRgb(h, s, v int) (rgb []uint8) {\n\t// TODO ...\n\treturn\n}\n\n// Named rgb colors\n// https://www.w3.org/TR/css-color-3/#svg-color\nvar namedRgbMap = map[string]string{\n\t\"aliceblue\":            \"240,248,255\", // #F0F8FF\n\t\"antiquewhite\":         \"250,235,215\", // #FAEBD7\n\t\"aqua\":                 \"0,255,255\",   // #00FFFF\n\t\"aquamarine\":           \"127,255,212\", // #7FFFD4\n\t\"azure\":                \"240,255,255\", // #F0FFFF\n\t\"beige\":                \"245,245,220\", // #F5F5DC\n\t\"bisque\":               \"255,228,196\", // #FFE4C4\n\t\"black\":                \"0,0,0\",       // #000000\n\t\"blanchedalmond\":       \"255,235,205\", // #FFEBCD\n\t\"blue\":                 \"0,0,255\",     // #0000FF\n\t\"blueviolet\":           \"138,43,226\",  // #8A2BE2\n\t\"brown\":                \"165,42,42\",   // #A52A2A\n\t\"burlywood\":            \"222,184,135\", // #DEB887\n\t\"cadetblue\":            \"95,158,160\",  // #5F9EA0\n\t\"chartreuse\":           \"127,255,0\",   // #7FFF00\n\t\"chocolate\":            \"210,105,30\",  // #D2691E\n\t\"coral\":                \"255,127,80\",  // #FF7F50\n\t\"cornflowerblue\":       \"100,149,237\", // #6495ED\n\t\"cornsilk\":             \"255,248,220\", // #FFF8DC\n\t\"crimson\":              \"220,20,60\",   // #DC143C\n\t\"cyan\":                 \"0,255,255\",   // #00FFFF\n\t\"darkblue\":             \"0,0,139\",     // #00008B\n\t\"darkcyan\":             \"0,139,139\",   // #008B8B\n\t\"darkgoldenrod\":        \"184,134,11\",  // #B8860B\n\t\"darkgray\":             \"169,169,169\", // #A9A9A9\n\t\"darkgreen\":            \"0,100,0\",     // #006400\n\t\"darkgrey\":             \"169,169,169\", // #A9A9A9\n\t\"darkkhaki\":            \"189,183,107\", // #BDB76B\n\t\"darkmagenta\":          \"139,0,139\",   // #8B008B\n\t\"darkolivegreen\":       \"85,107,47\",   // #556B2F\n\t\"darkorange\":           \"255,140,0\",   // #FF8C00\n\t\"darkorchid\":           \"153,50,204\",  // #9932CC\n\t\"darkred\":              \"139,0,0\",     // #8B0000\n\t\"darksalmon\":           \"233,150,122\", // #E9967A\n\t\"darkseagreen\":         \"143,188,143\", // #8FBC8F\n\t\"darkslateblue\":        \"72,61,139\",   // #483D8B\n\t\"darkslategray\":        \"47,79,79\",    // #2F4F4F\n\t\"darkslategrey\":        \"47,79,79\",    // #2F4F4F\n\t\"darkturquoise\":        \"0,206,209\",   // #00CED1\n\t\"darkviolet\":           \"148,0,211\",   // #9400D3\n\t\"deeppink\":             \"255,20,147\",  // #FF1493\n\t\"deepskyblue\":          \"0,191,255\",   // #00BFFF\n\t\"dimgray\":              \"105,105,105\", // #696969\n\t\"dimgrey\":              \"105,105,105\", // #696969\n\t\"dodgerblue\":           \"30,144,255\",  // #1E90FF\n\t\"firebrick\":            \"178,34,34\",   // #B22222\n\t\"floralwhite\":          \"255,250,240\", // #FFFAF0\n\t\"forestgreen\":          \"34,139,34\",   // #228B22\n\t\"fuchsia\":              \"255,0,255\",   // #FF00FF\n\t\"gainsboro\":            \"220,220,220\", // #DCDCDC\n\t\"ghostwhite\":           \"248,248,255\", // #F8F8FF\n\t\"gold\":                 \"255,215,0\",   // #FFD700\n\t\"goldenrod\":            \"218,165,32\",  // #DAA520\n\t\"gray\":                 \"128,128,128\", // #808080\n\t\"green\":                \"0,128,0\",     // #008000\n\t\"greenyellow\":          \"173,255,47\",  // #ADFF2F\n\t\"grey\":                 \"128,128,128\", // #808080\n\t\"honeydew\":             \"240,255,240\", // #F0FFF0\n\t\"hotpink\":              \"255,105,180\", // #FF69B4\n\t\"indianred\":            \"205,92,92\",   // #CD5C5C\n\t\"indigo\":               \"75,0,130\",    // #4B0082\n\t\"ivory\":                \"255,255,240\", // #FFFFF0\n\t\"khaki\":                \"240,230,140\", // #F0E68C\n\t\"lavender\":             \"230,230,250\", // #E6E6FA\n\t\"lavenderblush\":        \"255,240,245\", // #FFF0F5\n\t\"lawngreen\":            \"124,252,0\",   // #7CFC00\n\t\"lemonchiffon\":         \"255,250,205\", // #FFFACD\n\t\"lightblue\":            \"173,216,230\", // #ADD8E6\n\t\"lightcoral\":           \"240,128,128\", // #F08080\n\t\"lightcyan\":            \"224,255,255\", // #E0FFFF\n\t\"lightgoldenrodyellow\": \"250,250,210\", // #FAFAD2\n\t\"lightgray\":            \"211,211,211\", // #D3D3D3\n\t\"lightgreen\":           \"144,238,144\", // #90EE90\n\t\"lightgrey\":            \"211,211,211\", // #D3D3D3\n\t\"lightpink\":            \"255,182,193\", // #FFB6C1\n\t\"lightsalmon\":          \"255,160,122\", // #FFA07A\n\t\"lightseagreen\":        \"32,178,170\",  // #20B2AA\n\t\"lightskyblue\":         \"135,206,250\", // #87CEFA\n\t\"lightslategray\":       \"119,136,153\", // #778899\n\t\"lightslategrey\":       \"119,136,153\", // #778899\n\t\"lightsteelblue\":       \"176,196,222\", // #B0C4DE\n\t\"lightyellow\":          \"255,255,224\", // #FFFFE0\n\t\"lime\":                 \"0,255,0\",     // #00FF00\n\t\"limegreen\":            \"50,205,50\",   // #32CD32\n\t\"linen\":                \"250,240,230\", // #FAF0E6\n\t\"magenta\":              \"255,0,255\",   // #FF00FF\n\t\"maroon\":               \"128,0,0\",     // #800000\n\t\"mediumaquamarine\":     \"102,205,170\", // #66CDAA\n\t\"mediumblue\":           \"0,0,205\",     // #0000CD\n\t\"mediumorchid\":         \"186,85,211\",  // #BA55D3\n\t\"mediumpurple\":         \"147,112,219\", // #9370DB\n\t\"mediumseagreen\":       \"60,179,113\",  // #3CB371\n\t\"mediumslateblue\":      \"123,104,238\", // #7B68EE\n\t\"mediumspringgreen\":    \"0,250,154\",   // #00FA9A\n\t\"mediumturquoise\":      \"72,209,204\",  // #48D1CC\n\t\"mediumvioletred\":      \"199,21,133\",  // #C71585\n\t\"midnightblue\":         \"25,25,112\",   // #191970\n\t\"mintcream\":            \"245,255,250\", // #F5FFFA\n\t\"mistyrose\":            \"255,228,225\", // #FFE4E1\n\t\"moccasin\":             \"255,228,181\", // #FFE4B5\n\t\"navajowhite\":          \"255,222,173\", // #FFDEAD\n\t\"navy\":                 \"0,0,128\",     // #000080\n\t\"oldlace\":              \"253,245,230\", // #FDF5E6\n\t\"olive\":                \"128,128,0\",   // #808000\n\t\"olivedrab\":            \"107,142,35\",  // #6B8E23\n\t\"orange\":               \"255,165,0\",   // #FFA500\n\t\"orangered\":            \"255,69,0\",    // #FF4500\n\t\"orchid\":               \"218,112,214\", // #DA70D6\n\t\"palegoldenrod\":        \"238,232,170\", // #EEE8AA\n\t\"palegreen\":            \"152,251,152\", // #98FB98\n\t\"paleturquoise\":        \"175,238,238\", // #AFEEEE\n\t\"palevioletred\":        \"219,112,147\", // #DB7093\n\t\"papayawhip\":           \"255,239,213\", // #FFEFD5\n\t\"peachpuff\":            \"255,218,185\", // #FFDAB9\n\t\"peru\":                 \"205,133,63\",  // #CD853F\n\t\"pink\":                 \"255,192,203\", // #FFC0CB\n\t\"plum\":                 \"221,160,221\", // #DDA0DD\n\t\"powderblue\":           \"176,224,230\", // #B0E0E6\n\t\"purple\":               \"128,0,128\",   // #800080\n\t\"red\":                  \"255,0,0\",     // #FF0000\n\t\"rosybrown\":            \"188,143,143\", // #BC8F8F\n\t\"royalblue\":            \"65,105,225\",  // #4169E1\n\t\"saddlebrown\":          \"139,69,19\",   // #8B4513\n\t\"salmon\":               \"250,128,114\", // #FA8072\n\t\"sandybrown\":           \"244,164,96\",  // #F4A460\n\t\"seagreen\":             \"46,139,87\",   // #2E8B57\n\t\"seashell\":             \"255,245,238\", // #FFF5EE\n\t\"sienna\":               \"160,82,45\",   // #A0522D\n\t\"silver\":               \"192,192,192\", // #C0C0C0\n\t\"skyblue\":              \"135,206,235\", // #87CEEB\n\t\"slateblue\":            \"106,90,205\",  // #6A5ACD\n\t\"slategray\":            \"112,128,144\", // #708090\n\t\"slategrey\":            \"112,128,144\", // #708090\n\t\"snow\":                 \"255,250,250\", // #FFFAFA\n\t\"springgreen\":          \"0,255,127\",   // #00FF7F\n\t\"steelblue\":            \"70,130,180\",  // #4682B4\n\t\"tan\":                  \"210,180,140\", // #D2B48C\n\t\"teal\":                 \"0,128,128\",   // #008080\n\t\"thistle\":              \"216,191,216\", // #D8BFD8\n\t\"tomato\":               \"255,99,71\",   // #FF6347\n\t\"turquoise\":            \"64,224,208\",  // #40E0D0\n\t\"violet\":               \"238,130,238\", // #EE82EE\n\t\"wheat\":                \"245,222,179\", // #F5DEB3\n\t\"white\":                \"255,255,255\", // #FFFFFF\n\t\"whitesmoke\":           \"245,245,245\", // #F5F5F5\n\t\"yellow\":               \"255,255,0\",   // #FFFF00\n\t\"yellowgreen\":          \"154,205,50\",  // #9ACD32\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/detect_env.go",
    "content": "package color\n\nimport (\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"syscall\"\n\n\t\"github.com/xo/terminfo\"\n)\n\n/*************************************************************\n * helper methods for detect color supports\n *************************************************************/\n\n// DetectColorLevel for current env\n//\n// NOTICE: The method will detect terminal info each times,\n// \tif only want get current color level, please direct call SupportColor() or TermColorLevel()\nfunc DetectColorLevel() terminfo.ColorLevel {\n\tlevel, _ := detectTermColorLevel()\n\treturn level\n}\n\n// detect terminal color support level\n//\n// refer https://github.com/Delta456/box-cli-maker\nfunc detectTermColorLevel() (level terminfo.ColorLevel, needVTP bool) {\n\t// on windows WSL:\n\t// - runtime.GOOS == \"Linux\"\n\t// - support true-color\n\t// env:\n\t// \tWSL_DISTRO_NAME=Debian\n\tif val := os.Getenv(\"WSL_DISTRO_NAME\"); val != \"\" {\n\t\t// detect WSL as it has True Color support\n\t\tif detectWSL() {\n\t\t\tdebugf(\"True Color support on WSL environment\")\n\t\t\treturn terminfo.ColorLevelMillions, false\n\t\t}\n\t}\n\n\tisWin := runtime.GOOS == \"windows\"\n\ttermVal := os.Getenv(\"TERM\")\n\n\t// on TERM=screen: not support true-color\n\tif termVal != \"screen\" {\n\t\t// On JetBrains Terminal\n\t\t// - support true-color\n\t\t// env:\n\t\t// \tTERMINAL_EMULATOR=JetBrains-JediTerm\n\t\tval := os.Getenv(\"TERMINAL_EMULATOR\")\n\t\tif val == \"JetBrains-JediTerm\" {\n\t\t\tdebugf(\"True Color support on JetBrains-JediTerm, is win: %v\", isWin)\n\t\t\treturn terminfo.ColorLevelMillions, isWin\n\t\t}\n\t}\n\n\t// level, err = terminfo.ColorLevelFromEnv()\n\tlevel = detectColorLevelFromEnv(termVal, isWin)\n\tdebugf(\"color level by detectColorLevelFromEnv: %s\", level.String())\n\n\t// fallback: simple detect by TERM value string.\n\tif level == terminfo.ColorLevelNone {\n\t\tdebugf(\"level none - fallback check special term color support\")\n\t\t// on Windows: enable VTP as it has True Color support\n\t\tlevel, needVTP = detectSpecialTermColor(termVal)\n\t}\n\treturn\n}\n\n// detectColorFromEnv returns the color level COLORTERM, FORCE_COLOR,\n// TERM_PROGRAM, or determined from the TERM environment variable.\n//\n// refer the terminfo.ColorLevelFromEnv()\n// https://en.wikipedia.org/wiki/Terminfo\nfunc detectColorLevelFromEnv(termVal string, isWin bool) terminfo.ColorLevel {\n\t// check for overriding environment variables\n\tcolorTerm, termProg, forceColor := os.Getenv(\"COLORTERM\"), os.Getenv(\"TERM_PROGRAM\"), os.Getenv(\"FORCE_COLOR\")\n\tswitch {\n\tcase strings.Contains(colorTerm, \"truecolor\") || strings.Contains(colorTerm, \"24bit\"):\n\t\tif termVal == \"screen\" { // on TERM=screen: not support true-color\n\t\t\treturn terminfo.ColorLevelHundreds\n\t\t}\n\t\treturn terminfo.ColorLevelMillions\n\tcase colorTerm != \"\" || forceColor != \"\":\n\t\treturn terminfo.ColorLevelBasic\n\tcase termProg == \"Apple_Terminal\":\n\t\treturn terminfo.ColorLevelHundreds\n\tcase termProg == \"Terminus\" || termProg == \"Hyper\":\n\t\tif termVal == \"screen\" { // on TERM=screen: not support true-color\n\t\t\treturn terminfo.ColorLevelHundreds\n\t\t}\n\t\treturn terminfo.ColorLevelMillions\n\tcase termProg == \"iTerm.app\":\n\t\tif termVal == \"screen\" { // on TERM=screen: not support true-color\n\t\t\treturn terminfo.ColorLevelHundreds\n\t\t}\n\n\t\t// check iTerm version\n\t\tver := os.Getenv(\"TERM_PROGRAM_VERSION\")\n\t\tif ver != \"\" {\n\t\t\ti, err := strconv.Atoi(strings.Split(ver, \".\")[0])\n\t\t\tif err != nil {\n\t\t\t\tsaveInternalError(terminfo.ErrInvalidTermProgramVersion)\n\t\t\t\t// return terminfo.ColorLevelNone\n\t\t\t\treturn terminfo.ColorLevelHundreds\n\t\t\t}\n\t\t\tif i == 3 {\n\t\t\t\treturn terminfo.ColorLevelMillions\n\t\t\t}\n\t\t}\n\t\treturn terminfo.ColorLevelHundreds\n\t}\n\n\t// otherwise determine from TERM's max_colors capability\n\tif !isWin && termVal != \"\" {\n\t\tdebugf(\"TERM=%s - check color level by load terminfo file\", termVal)\n\t\tti, err := terminfo.Load(termVal)\n\t\tif err != nil {\n\t\t\tsaveInternalError(err)\n\t\t\treturn terminfo.ColorLevelNone\n\t\t}\n\n\t\tdebugf(\"the loaded term info file is: %s\", ti.File)\n\t\tv, ok := ti.Nums[terminfo.MaxColors]\n\t\tswitch {\n\t\tcase !ok || v <= 16:\n\t\t\treturn terminfo.ColorLevelNone\n\t\tcase ok && v >= 256:\n\t\t\treturn terminfo.ColorLevelHundreds\n\t\t}\n\t\treturn terminfo.ColorLevelBasic\n\t}\n\n\t// no TERM env value. default return none level\n\treturn terminfo.ColorLevelNone\n\t// return terminfo.ColorLevelBasic\n}\n\nvar detectedWSL bool\nvar wslContents string\n\n// https://github.com/Microsoft/WSL/issues/423#issuecomment-221627364\nfunc detectWSL() bool {\n\tif !detectedWSL {\n\t\tdetectedWSL = true\n\n\t\tb := make([]byte, 1024)\n\t\t// `cat /proc/version`\n\t\t// on mac:\n\t\t// \t!not the file!\n\t\t// on linux(debian,ubuntu,alpine):\n\t\t//\tLinux version 4.19.121-linuxkit (root@18b3f92ade35) (gcc version 9.2.0 (Alpine 9.2.0)) #1 SMP Thu Jan 21 15:36:34 UTC 2021\n\t\t// on win git bash, conEmu:\n\t\t// \tMINGW64_NT-10.0-19042 version 3.1.7-340.x86_64 (@WIN-N0G619FD3UK) (gcc version 9.3.0 (GCC) ) 2020-10-23 13:08 UTC\n\t\t// on WSL:\n\t\t//  Linux version 4.4.0-19041-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) #488-Microsoft Mon Sep 01 13:43:00 PST 2020\n\t\tf, err := os.Open(\"/proc/version\")\n\t\tif err == nil {\n\t\t\t_, _ = f.Read(b) // ignore error\n\t\t\tif err = f.Close(); err != nil {\n\t\t\t\tsaveInternalError(err)\n\t\t\t}\n\n\t\t\twslContents = string(b)\n\t\t\treturn strings.Contains(wslContents, \"Microsoft\")\n\t\t}\n\t}\n\treturn false\n}\n\n// refer\n//  https://github.com/Delta456/box-cli-maker/blob/7b5a1ad8a016ce181e7d8b05e24b54ff60b4b38a/detect_unix.go#L27-L45\n// detect WSL as it has True Color support\nfunc isWSL() bool {\n\t// on windows WSL:\n\t// - runtime.GOOS == \"Linux\"\n\t// - support true-color\n\t// \tWSL_DISTRO_NAME=Debian\n\tif val := os.Getenv(\"WSL_DISTRO_NAME\"); val == \"\" {\n\t\treturn false\n\t}\n\n\t// `cat /proc/sys/kernel/osrelease`\n\t// on mac:\n\t//\t!not the file!\n\t// on linux:\n\t// \t4.19.121-linuxkit\n\t// on WSL Output:\n\t//  4.4.0-19041-Microsoft\n\twsl, err := ioutil.ReadFile(\"/proc/sys/kernel/osrelease\")\n\tif err != nil {\n\t\tsaveInternalError(err)\n\t\treturn false\n\t}\n\n\t// it gives \"Microsoft\" for WSL and \"microsoft\" for WSL 2\n\t// it support True-color\n\tcontent := strings.ToLower(string(wsl))\n\treturn strings.Contains(content, \"microsoft\")\n}\n\n/*************************************************************\n * helper methods for check env\n *************************************************************/\n\n// IsWindows OS env\nfunc IsWindows() bool {\n\treturn runtime.GOOS == \"windows\"\n}\n\n// IsConsole Determine whether w is one of stderr, stdout, stdin\nfunc IsConsole(w io.Writer) bool {\n\to, ok := w.(*os.File)\n\tif !ok {\n\t\treturn false\n\t}\n\n\tfd := o.Fd()\n\n\t// fix: cannot use 'o == os.Stdout' to compare\n\treturn fd == uintptr(syscall.Stdout) || fd == uintptr(syscall.Stdin) || fd == uintptr(syscall.Stderr)\n}\n\n// IsMSys msys(MINGW64) environment, does not necessarily support color\nfunc IsMSys() bool {\n\t// like \"MSYSTEM=MINGW64\"\n\tif len(os.Getenv(\"MSYSTEM\")) > 0 {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// IsSupportColor check current console is support color.\n//\n// NOTICE: The method will detect terminal info each times,\n// \tif only want get current color level, please direct call SupportColor() or TermColorLevel()\nfunc IsSupportColor() bool {\n\treturn IsSupport16Color()\n}\n\n// IsSupportColor check current console is support color.\n//\n// NOTICE: The method will detect terminal info each times,\n// \tif only want get current color level, please direct call SupportColor() or TermColorLevel()\nfunc IsSupport16Color() bool {\n\tlevel, _ := detectTermColorLevel()\n\treturn level > terminfo.ColorLevelNone\n}\n\n// IsSupport256Color render check\n//\n// NOTICE: The method will detect terminal info each times,\n// \tif only want get current color level, please direct call SupportColor() or TermColorLevel()\nfunc IsSupport256Color() bool {\n\tlevel, _ := detectTermColorLevel()\n\treturn level > terminfo.ColorLevelBasic\n}\n\n// IsSupportRGBColor check. alias of the IsSupportTrueColor()\n//\n// NOTICE: The method will detect terminal info each times,\n// \tif only want get current color level, please direct call SupportColor() or TermColorLevel()\nfunc IsSupportRGBColor() bool {\n\treturn IsSupportTrueColor()\n}\n\n// IsSupportTrueColor render check.\n//\n// NOTICE: The method will detect terminal info each times,\n// \tif only want get current color level, please direct call SupportColor() or TermColorLevel()\n//\n// ENV:\n// \"COLORTERM=truecolor\"\n// \"COLORTERM=24bit\"\nfunc IsSupportTrueColor() bool {\n\tlevel, _ := detectTermColorLevel()\n\treturn level > terminfo.ColorLevelHundreds\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/detect_nonwin.go",
    "content": "// +build !windows\n\n// The method in the file has no effect\n// Only for compatibility with non-Windows systems\n\npackage color\n\nimport (\n\t\"strings\"\n\t\"syscall\"\n\n\t\"github.com/xo/terminfo\"\n)\n\n// detect special term color support\nfunc detectSpecialTermColor(termVal string) (terminfo.ColorLevel, bool) {\n\tif termVal == \"\" {\n\t\treturn terminfo.ColorLevelNone, false\n\t}\n\n\tdebugf(\"terminfo check fail - fallback detect color by check TERM value\")\n\n\t// on TERM=screen:\n\t// - support 256, not support true-color. test on macOS\n\tif termVal == \"screen\" {\n\t\treturn terminfo.ColorLevelHundreds, false\n\t}\n\n\tif strings.Contains(termVal, \"256color\") {\n\t\treturn terminfo.ColorLevelHundreds, false\n\t}\n\n\tif strings.Contains(termVal, \"xterm\") {\n\t\treturn terminfo.ColorLevelHundreds, false\n\t\t// return terminfo.ColorLevelBasic, false\n\t}\n\n\t// return terminfo.ColorLevelNone, nil\n\treturn terminfo.ColorLevelBasic, false\n}\n\n// IsTerminal returns true if the given file descriptor is a terminal.\n//\n// Usage:\n// \tIsTerminal(os.Stdout.Fd())\nfunc IsTerminal(fd uintptr) bool {\n\treturn fd == uintptr(syscall.Stdout) || fd == uintptr(syscall.Stdin) || fd == uintptr(syscall.Stderr)\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/detect_windows.go",
    "content": "// +build windows\n\n// Display color on windows\n// refer:\n//  golang.org/x/sys/windows\n// \tgolang.org/x/crypto/ssh/terminal\n// \thttps://docs.microsoft.com/en-us/windows/console\npackage color\n\nimport (\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"github.com/xo/terminfo\"\n\t\"golang.org/x/sys/windows\"\n)\n\n// related docs\n// https://docs.microsoft.com/zh-cn/windows/console/console-virtual-terminal-sequences\n// https://docs.microsoft.com/zh-cn/windows/console/console-virtual-terminal-sequences#samples\nvar (\n\t// isMSys bool\n\tkernel32 *syscall.LazyDLL\n\n\tprocGetConsoleMode *syscall.LazyProc\n\tprocSetConsoleMode *syscall.LazyProc\n)\n\nfunc init() {\n\tif !SupportColor() {\n\t\tisLikeInCmd = true\n\t\treturn\n\t}\n\n\t// if disabled.\n\tif !Enable {\n\t\treturn\n\t}\n\n\t// if at windows's ConEmu, Cmder, putty ... terminals not need VTP\n\n\t// -------- try force enable colors on windows terminal -------\n\ttryEnableVTP(needVTP)\n\n\t// fetch console screen buffer info\n\t// err := getConsoleScreenBufferInfo(uintptr(syscall.Stdout), &defScreenInfo)\n}\n\n// try force enable colors on windows terminal\nfunc tryEnableVTP(enable bool) bool {\n\tif !enable {\n\t\treturn false\n\t}\n\n\tdebugf(\"True-Color by enable VirtualTerminalProcessing on windows\")\n\n\tinitKernel32Proc()\n\n\t// enable colors on windows terminal\n\tif tryEnableOnCONOUT() {\n\t\treturn true\n\t}\n\n\treturn tryEnableOnStdout()\n}\n\nfunc initKernel32Proc() {\n\tif kernel32 != nil {\n\t\treturn\n\t}\n\n\t// load related windows dll\n\t// https://docs.microsoft.com/en-us/windows/console/setconsolemode\n\tkernel32 = syscall.NewLazyDLL(\"kernel32.dll\")\n\n\tprocGetConsoleMode = kernel32.NewProc(\"GetConsoleMode\")\n\tprocSetConsoleMode = kernel32.NewProc(\"SetConsoleMode\")\n}\n\nfunc tryEnableOnCONOUT() bool {\n\toutHandle, err := syscall.Open(\"CONOUT$\", syscall.O_RDWR, 0)\n\tif err != nil {\n\t\tsaveInternalError(err)\n\t\treturn false\n\t}\n\n\terr = EnableVirtualTerminalProcessing(outHandle, true)\n\tif err != nil {\n\t\tsaveInternalError(err)\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc tryEnableOnStdout() bool {\n\t// try direct open syscall.Stdout\n\terr := EnableVirtualTerminalProcessing(syscall.Stdout, true)\n\tif err != nil {\n\t\tsaveInternalError(err)\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// Get the Windows Version and Build Number\nvar (\n\twinVersion, _, buildNumber = windows.RtlGetNtVersionNumbers()\n)\n\n// refer\n//  https://github.com/Delta456/box-cli-maker/blob/7b5a1ad8a016ce181e7d8b05e24b54ff60b4b38a/detect_windows.go#L30-L57\n//  https://github.com/gookit/color/issues/25#issuecomment-738727917\n// detects the Color Level Supported on windows: cmd, powerShell\nfunc detectSpecialTermColor(termVal string) (tl terminfo.ColorLevel, needVTP bool) {\n\tif os.Getenv(\"ConEmuANSI\") == \"ON\" {\n\t\tdebugf(\"support True Color by ConEmuANSI=ON\")\n\t\t// ConEmuANSI is \"ON\" for generic ANSI support\n\t\t// but True Color option is enabled by default\n\t\t// I am just assuming that people wouldn't have disabled it\n\t\t// Even if it is not enabled then ConEmu will auto round off\n\t\t// accordingly\n\t\treturn terminfo.ColorLevelMillions, false\n\t}\n\n\t// Before Windows 10 Build Number 10586, console never supported ANSI Colors\n\tif buildNumber < 10586 || winVersion < 10 {\n\t\t// Detect if using ANSICON on older systems\n\t\tif os.Getenv(\"ANSICON\") != \"\" {\n\t\t\tconVersion := os.Getenv(\"ANSICON_VER\")\n\t\t\t// 8 bit Colors were only supported after v1.81 release\n\t\t\tif conVersion >= \"181\" {\n\t\t\t\treturn terminfo.ColorLevelHundreds, false\n\t\t\t}\n\t\t\treturn terminfo.ColorLevelBasic, false\n\t\t}\n\n\t\treturn terminfo.ColorLevelNone, false\n\t}\n\n\t// True Color is not available before build 14931 so fallback to 8 bit color.\n\tif buildNumber < 14931 {\n\t\treturn terminfo.ColorLevelHundreds, true\n\t}\n\n\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor\n\tdebugf(\"support True Color on windows version is >= build 14931\")\n\treturn terminfo.ColorLevelMillions, true\n}\n\n/*************************************************************\n * render full color code on windows(8,16,24bit color)\n *************************************************************/\n\n// docs https://docs.microsoft.com/zh-cn/windows/console/getconsolemode#parameters\nconst (\n\t// equals to docs page's ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004\n\tEnableVirtualTerminalProcessingMode uint32 = 0x4\n)\n\n// EnableVirtualTerminalProcessing Enable virtual terminal processing\n//\n// ref from github.com/konsorten/go-windows-terminal-sequences\n// doc https://docs.microsoft.com/zh-cn/windows/console/console-virtual-terminal-sequences#samples\n//\n// Usage:\n// \terr := EnableVirtualTerminalProcessing(syscall.Stdout, true)\n// \t// support print color text\n// \terr = EnableVirtualTerminalProcessing(syscall.Stdout, false)\nfunc EnableVirtualTerminalProcessing(stream syscall.Handle, enable bool) error {\n\tvar mode uint32\n\t// Check if it is currently in the terminal\n\t// err := syscall.GetConsoleMode(syscall.Stdout, &mode)\n\terr := syscall.GetConsoleMode(stream, &mode)\n\tif err != nil {\n\t\t// fmt.Println(\"EnableVirtualTerminalProcessing\", err)\n\t\treturn err\n\t}\n\n\tif enable {\n\t\tmode |= EnableVirtualTerminalProcessingMode\n\t} else {\n\t\tmode &^= EnableVirtualTerminalProcessingMode\n\t}\n\n\tret, _, err := procSetConsoleMode.Call(uintptr(stream), uintptr(mode))\n\tif ret == 0 {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// renderColorCodeOnCmd enable cmd color render.\n// func renderColorCodeOnCmd(fn func()) {\n// \terr := EnableVirtualTerminalProcessing(syscall.Stdout, true)\n// \t// if is not in terminal, will clear color tag.\n// \tif err != nil {\n// \t\t// panic(err)\n// \t\tfn()\n// \t\treturn\n// \t}\n//\n// \t// force open color render\n// \told := ForceOpenColor()\n// \tfn()\n// \t// revert color setting\n// \tsupportColor = old\n//\n// \terr = EnableVirtualTerminalProcessing(syscall.Stdout, false)\n// \tif err != nil {\n// \t\tpanic(err)\n// \t}\n// }\n\n/*************************************************************\n * render simple color code on windows\n *************************************************************/\n\n// IsTty returns true if the given file descriptor is a terminal.\nfunc IsTty(fd uintptr) bool {\n\tinitKernel32Proc()\n\n\tvar st uint32\n\tr, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0)\n\treturn r != 0 && e == 0\n}\n\n// IsTerminal returns true if the given file descriptor is a terminal.\n//\n// Usage:\n// \tfd := os.Stdout.Fd()\n// \tfd := uintptr(syscall.Stdout) // for windows\n// \tIsTerminal(fd)\nfunc IsTerminal(fd uintptr) bool {\n\tinitKernel32Proc()\n\n\tvar st uint32\n\tr, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0)\n\treturn r != 0 && e == 0\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/printer.go",
    "content": "package color\n\nimport \"fmt\"\n\n/*************************************************************\n * colored message Printer\n *************************************************************/\n\n// PrinterFace interface\ntype PrinterFace interface {\n\tfmt.Stringer\n\tSprint(a ...interface{}) string\n\tSprintf(format string, a ...interface{}) string\n\tPrint(a ...interface{})\n\tPrintf(format string, a ...interface{})\n\tPrintln(a ...interface{})\n}\n\n// Printer a generic color message printer.\n//\n// Usage:\n// \tp := &Printer{Code: \"32;45;3\"}\n// \tp.Print(\"message\")\ntype Printer struct {\n\t// NoColor disable color.\n\tNoColor bool\n\t// Code color code string. eg \"32;45;3\"\n\tCode string\n}\n\n// NewPrinter instance\nfunc NewPrinter(colorCode string) *Printer {\n\treturn &Printer{Code: colorCode}\n}\n\n// String returns color code string. eg: \"32;45;3\"\nfunc (p *Printer) String() string {\n\t// panic(\"implement me\")\n\treturn p.Code\n}\n\n// Sprint returns rendering colored messages\nfunc (p *Printer) Sprint(a ...interface{}) string {\n\treturn RenderCode(p.String(), a...)\n}\n\n// Sprintf returns format and rendering colored messages\nfunc (p *Printer) Sprintf(format string, a ...interface{}) string {\n\treturn RenderString(p.String(), fmt.Sprintf(format, a...))\n}\n\n// Print rendering colored messages\nfunc (p *Printer) Print(a ...interface{}) {\n\tdoPrintV2(p.String(), fmt.Sprint(a...))\n}\n\n// Printf format and rendering colored messages\nfunc (p *Printer) Printf(format string, a ...interface{}) {\n\tdoPrintV2(p.String(), fmt.Sprintf(format, a...))\n}\n\n// Println rendering colored messages with newline\nfunc (p *Printer) Println(a ...interface{}) {\n\tdoPrintlnV2(p.Code, a)\n}\n\n// IsEmpty color code\nfunc (p *Printer) IsEmpty() bool {\n\treturn p.Code == \"\"\n}\n\n/*************************************************************\n * SimplePrinter struct\n *************************************************************/\n\n// SimplePrinter use for quick use color print on inject to struct\ntype SimplePrinter struct{}\n\n// Print message\nfunc (s *SimplePrinter) Print(v ...interface{}) {\n\tPrint(v...)\n}\n\n// Printf message\nfunc (s *SimplePrinter) Printf(format string, v ...interface{}) {\n\tPrintf(format, v...)\n}\n\n// Println message\nfunc (s *SimplePrinter) Println(v ...interface{}) {\n\tPrintln(v...)\n}\n\n// Infof message\nfunc (s *SimplePrinter) Infof(format string, a ...interface{}) {\n\tInfo.Printf(format, a...)\n}\n\n// Infoln message\nfunc (s *SimplePrinter) Infoln(a ...interface{}) {\n\tInfo.Println(a...)\n}\n\n// Warnf message\nfunc (s *SimplePrinter) Warnf(format string, a ...interface{}) {\n\tWarn.Printf(format, a...)\n}\n\n// Warnln message\nfunc (s *SimplePrinter) Warnln(a ...interface{}) {\n\tWarn.Println(a...)\n}\n\n// Errorf message\nfunc (s *SimplePrinter) Errorf(format string, a ...interface{}) {\n\tError.Printf(format, a...)\n}\n\n// Errorln message\nfunc (s *SimplePrinter) Errorln(a ...interface{}) {\n\tError.Println(a...)\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/quickstart.go",
    "content": "package color\n\n/*************************************************************\n * quick use color print message\n *************************************************************/\n\n// Redp print message with Red color\nfunc Redp(a ...interface{}) {\n\tRed.Print(a...)\n}\n\n// Redln print message line with Red color\nfunc Redln(a ...interface{}) {\n\tRed.Println(a...)\n}\n\n// Bluep print message with Blue color\nfunc Bluep(a ...interface{}) {\n\tBlue.Print(a...)\n}\n\n// Blueln print message line with Blue color\nfunc Blueln(a ...interface{}) {\n\tBlue.Println(a...)\n}\n\n// Cyanp print message with Cyan color\nfunc Cyanp(a ...interface{}) {\n\tCyan.Print(a...)\n}\n\n// Cyanln print message line with Cyan color\nfunc Cyanln(a ...interface{}) {\n\tCyan.Println(a...)\n}\n\n// Grayp print message with Gray color\nfunc Grayp(a ...interface{}) {\n\tGray.Print(a...)\n}\n\n// Grayln print message line with Gray color\nfunc Grayln(a ...interface{}) {\n\tGray.Println(a...)\n}\n\n// Greenp print message with Green color\nfunc Greenp(a ...interface{}) {\n\tGreen.Print(a...)\n}\n\n// Greenln print message line with Green color\nfunc Greenln(a ...interface{}) {\n\tGreen.Println(a...)\n}\n\n// Yellowp print message with Yellow color\nfunc Yellowp(a ...interface{}) {\n\tYellow.Print(a...)\n}\n\n// Yellowln print message line with Yellow color\nfunc Yellowln(a ...interface{}) {\n\tYellow.Println(a...)\n}\n\n// Magentap print message with Magenta color\nfunc Magentap(a ...interface{}) {\n\tMagenta.Print(a...)\n}\n\n// Magentaln print message line with Magenta color\nfunc Magentaln(a ...interface{}) {\n\tMagenta.Println(a...)\n}\n\n/*************************************************************\n * quick use style print message\n *************************************************************/\n\n// Infof print message with Info style\nfunc Infof(format string, a ...interface{}) {\n\tInfo.Printf(format, a...)\n}\n\n// Infoln print message with Info style\nfunc Infoln(a ...interface{}) {\n\tInfo.Println(a...)\n}\n\n// Errorf print message with Error style\nfunc Errorf(format string, a ...interface{}) {\n\tError.Printf(format, a...)\n}\n\n// Errorln print message with Error style\nfunc Errorln(a ...interface{}) {\n\tError.Println(a...)\n}\n\n// Warnf print message with Warn style\nfunc Warnf(format string, a ...interface{}) {\n\tWarn.Printf(format, a...)\n}\n\n// Warnln print message with Warn style\nfunc Warnln(a ...interface{}) {\n\tWarn.Println(a...)\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/style.go",
    "content": "package color\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n/*************************************************************\n * 16 color Style\n *************************************************************/\n\n// Style a 16 color style. can add: fg color, bg color, color options\n//\n// Example:\n// \tcolor.Style{color.FgGreen}.Print(\"message\")\ntype Style []Color\n\n// New create a custom style\n//\n// Usage:\n//\tcolor.New(color.FgGreen).Print(\"message\")\n//\tequals to:\n//\tcolor.Style{color.FgGreen}.Print(\"message\")\nfunc New(colors ...Color) Style {\n\treturn colors\n}\n\n// Save to global styles map\nfunc (s Style) Save(name string) {\n\tAddStyle(name, s)\n}\n\n// Add to global styles map\nfunc (s *Style) Add(cs ...Color) {\n\t*s = append(*s, cs...)\n}\n\n// Render render text\n// Usage:\n//  color.New(color.FgGreen).Render(\"text\")\n//  color.New(color.FgGreen, color.BgBlack, color.OpBold).Render(\"text\")\nfunc (s Style) Render(a ...interface{}) string {\n\treturn RenderCode(s.String(), a...)\n}\n\n// Renderln render text line.\n// like Println, will add spaces for each argument\n// Usage:\n//  color.New(color.FgGreen).Renderln(\"text\", \"more\")\n//  color.New(color.FgGreen, color.BgBlack, color.OpBold).Render(\"text\", \"more\")\nfunc (s Style) Renderln(a ...interface{}) string {\n\treturn RenderWithSpaces(s.String(), a...)\n}\n\n// Sprint is alias of the 'Render'\nfunc (s Style) Sprint(a ...interface{}) string {\n\treturn RenderCode(s.String(), a...)\n}\n\n// Sprintf format and render message.\nfunc (s Style) Sprintf(format string, a ...interface{}) string {\n\treturn RenderString(s.String(), fmt.Sprintf(format, a...))\n}\n\n// Print render and Print text\nfunc (s Style) Print(a ...interface{}) {\n\tdoPrintV2(s.String(), fmt.Sprint(a...))\n}\n\n// Printf render and print text\nfunc (s Style) Printf(format string, a ...interface{}) {\n\tdoPrintV2(s.Code(), fmt.Sprintf(format, a...))\n}\n\n// Println render and print text line\nfunc (s Style) Println(a ...interface{}) {\n\tdoPrintlnV2(s.String(), a)\n}\n\n// Code convert to code string. returns like \"32;45;3\"\nfunc (s Style) Code() string {\n\treturn s.String()\n}\n\n// String convert to code string. returns like \"32;45;3\"\nfunc (s Style) String() string {\n\treturn Colors2code(s...)\n}\n\n// IsEmpty style\nfunc (s Style) IsEmpty() bool {\n\treturn len(s) == 0\n}\n\n/*************************************************************\n * Theme(extended Style)\n *************************************************************/\n\n// Theme definition. extends from Style\ntype Theme struct {\n\t// Name theme name\n\tName string\n\t// Style for the theme\n\tStyle\n}\n\n// NewTheme instance\nfunc NewTheme(name string, style Style) *Theme {\n\treturn &Theme{name, style}\n}\n\n// Save to themes map\nfunc (t *Theme) Save() {\n\tAddTheme(t.Name, t.Style)\n}\n\n// Tips use name as title, only apply style for name\nfunc (t *Theme) Tips(format string, a ...interface{}) {\n\t// only apply style for name\n\tt.Print(strings.ToUpper(t.Name) + \": \")\n\tPrintf(format+\"\\n\", a...)\n}\n\n// Prompt use name as title, and apply style for message\nfunc (t *Theme) Prompt(format string, a ...interface{}) {\n\ttitle := strings.ToUpper(t.Name) + \":\"\n\tt.Println(title, fmt.Sprintf(format, a...))\n}\n\n// Block like Prompt, but will wrap a empty line\nfunc (t *Theme) Block(format string, a ...interface{}) {\n\ttitle := strings.ToUpper(t.Name) + \":\\n\"\n\n\tt.Println(title, fmt.Sprintf(format, a...))\n}\n\n/*************************************************************\n * Theme: internal themes\n *************************************************************/\n\n// internal themes(like bootstrap style)\n// Usage:\n// \tcolor.Info.Print(\"message\")\n// \tcolor.Info.Printf(\"a %s message\", \"test\")\n// \tcolor.Warn.Println(\"message\")\n// \tcolor.Error.Println(\"message\")\nvar (\n\t// Info color style\n\tInfo = &Theme{\"info\", Style{OpReset, FgGreen}}\n\t// Note color style\n\tNote = &Theme{\"note\", Style{OpBold, FgLightCyan}}\n\t// Warn color style\n\tWarn = &Theme{\"warning\", Style{OpBold, FgYellow}}\n\t// Light color style\n\tLight = &Theme{\"light\", Style{FgLightWhite, BgBlack}}\n\t// Error color style\n\tError = &Theme{\"error\", Style{FgLightWhite, BgRed}}\n\t// Danger color style\n\tDanger = &Theme{\"danger\", Style{OpBold, FgRed}}\n\t// Debug color style\n\tDebug = &Theme{\"debug\", Style{OpReset, FgCyan}}\n\t// Notice color style\n\tNotice = &Theme{\"notice\", Style{OpBold, FgCyan}}\n\t// Comment color style\n\tComment = &Theme{\"comment\", Style{OpReset, FgYellow}}\n\t// Success color style\n\tSuccess = &Theme{\"success\", Style{OpBold, FgGreen}}\n\t// Primary color style\n\tPrimary = &Theme{\"primary\", Style{OpReset, FgBlue}}\n\t// Question color style\n\tQuestion = &Theme{\"question\", Style{OpReset, FgMagenta}}\n\t// Secondary color style\n\tSecondary = &Theme{\"secondary\", Style{FgDarkGray}}\n)\n\n// Themes internal defined themes.\n// Usage:\n// \tcolor.Themes[\"info\"].Println(\"message\")\nvar Themes = map[string]*Theme{\n\t\"info\":  Info,\n\t\"note\":  Note,\n\t\"light\": Light,\n\t\"error\": Error,\n\n\t\"debug\":   Debug,\n\t\"danger\":  Danger,\n\t\"notice\":  Notice,\n\t\"success\": Success,\n\t\"comment\": Comment,\n\t\"primary\": Primary,\n\t\"warning\": Warn,\n\n\t\"question\":  Question,\n\t\"secondary\": Secondary,\n}\n\n// AddTheme add a theme and style\nfunc AddTheme(name string, style Style) {\n\tThemes[name] = NewTheme(name, style)\n\tStyles[name] = style\n}\n\n// GetTheme get defined theme by name\nfunc GetTheme(name string) *Theme {\n\treturn Themes[name]\n}\n\n/*************************************************************\n * internal styles\n *************************************************************/\n\n// Styles internal defined styles, like bootstrap styles.\n// Usage:\n// \tcolor.Styles[\"info\"].Println(\"message\")\nvar Styles = map[string]Style{\n\t\"info\":  {OpReset, FgGreen},\n\t\"note\":  {OpBold, FgLightCyan},\n\t\"light\": {FgLightWhite, BgRed},\n\t\"error\": {FgLightWhite, BgRed},\n\n\t\"danger\":  {OpBold, FgRed},\n\t\"notice\":  {OpBold, FgCyan},\n\t\"success\": {OpBold, FgGreen},\n\t\"comment\": {OpReset, FgMagenta},\n\t\"primary\": {OpReset, FgBlue},\n\t\"warning\": {OpBold, FgYellow},\n\n\t\"question\":  {OpReset, FgMagenta},\n\t\"secondary\": {FgDarkGray},\n}\n\n// some style name alias\nvar styleAliases = map[string]string{\n\t\"err\":  \"error\",\n\t\"suc\":  \"success\",\n\t\"warn\": \"warning\",\n}\n\n// AddStyle add a style\nfunc AddStyle(name string, s Style) {\n\tStyles[name] = s\n}\n\n// GetStyle get defined style by name\nfunc GetStyle(name string) Style {\n\tif s, ok := Styles[name]; ok {\n\t\treturn s\n\t}\n\n\tif realName, ok := styleAliases[name]; ok {\n\t\treturn Styles[realName]\n\t}\n\n\t// empty style\n\treturn New()\n}\n\n/*************************************************************\n * color scheme\n *************************************************************/\n\n// Scheme struct\ntype Scheme struct {\n\tName   string\n\tStyles map[string]Style\n}\n\n// NewScheme create new Scheme\nfunc NewScheme(name string, styles map[string]Style) *Scheme {\n\treturn &Scheme{Name: name, Styles: styles}\n}\n\n// NewDefaultScheme create an defuault color Scheme\nfunc NewDefaultScheme(name string) *Scheme {\n\treturn NewScheme(name, map[string]Style{\n\t\t\"info\":  {OpReset, FgGreen},\n\t\t\"warn\":  {OpBold, FgYellow},\n\t\t\"error\": {FgLightWhite, BgRed},\n\t})\n}\n\n// Style get by name\nfunc (s *Scheme) Style(name string) Style {\n\treturn s.Styles[name]\n}\n\n// Infof message print\nfunc (s *Scheme) Infof(format string, a ...interface{}) {\n\ts.Styles[\"info\"].Printf(format, a...)\n}\n\n// Infoln message print\nfunc (s *Scheme) Infoln(v ...interface{}) {\n\ts.Styles[\"info\"].Println(v...)\n}\n\n// Warnf message print\nfunc (s *Scheme) Warnf(format string, a ...interface{}) {\n\ts.Styles[\"warn\"].Printf(format, a...)\n}\n\n// Warnln message print\nfunc (s *Scheme) Warnln(v ...interface{}) {\n\ts.Styles[\"warn\"].Println(v...)\n}\n\n// Errorf message print\nfunc (s *Scheme) Errorf(format string, a ...interface{}) {\n\ts.Styles[\"error\"].Printf(format, a...)\n}\n\n// Errorln message print\nfunc (s *Scheme) Errorln(v ...interface{}) {\n\ts.Styles[\"error\"].Println(v...)\n}\n"
  },
  {
    "path": "vendor/github.com/gookit/color/utils.go",
    "content": "package color\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"strings\"\n)\n\n// SetTerminal by given code.\nfunc SetTerminal(code string) error {\n\tif !Enable || !SupportColor() {\n\t\treturn nil\n\t}\n\n\t_, err := fmt.Fprintf(output, SettingTpl, code)\n\treturn err\n}\n\n// ResetTerminal terminal setting.\nfunc ResetTerminal() error {\n\tif !Enable || !SupportColor() {\n\t\treturn nil\n\t}\n\n\t_, err := fmt.Fprint(output, ResetSet)\n\treturn err\n}\n\n/*************************************************************\n * print methods(will auto parse color tags)\n *************************************************************/\n\n// Print render color tag and print messages\nfunc Print(a ...interface{}) {\n\tFprint(output, a...)\n}\n\n// Printf format and print messages\nfunc Printf(format string, a ...interface{}) {\n\tFprintf(output, format, a...)\n}\n\n// Println messages with new line\nfunc Println(a ...interface{}) {\n\tFprintln(output, a...)\n}\n\n// Fprint print rendered messages to writer\n// Notice: will ignore print error\nfunc Fprint(w io.Writer, a ...interface{}) {\n\t_, err := fmt.Fprint(w, Render(a...))\n\tsaveInternalError(err)\n\n\t// if isLikeInCmd {\n\t// \trenderColorCodeOnCmd(func() {\n\t// \t\t_, _ = fmt.Fprint(w, Render(a...))\n\t// \t})\n\t// } else {\n\t// \t_, _ = fmt.Fprint(w, Render(a...))\n\t// }\n}\n\n// Fprintf print format and rendered messages to writer.\n// Notice: will ignore print error\nfunc Fprintf(w io.Writer, format string, a ...interface{}) {\n\tstr := fmt.Sprintf(format, a...)\n\t_, err := fmt.Fprint(w, ReplaceTag(str))\n\tsaveInternalError(err)\n}\n\n// Fprintln print rendered messages line to writer\n// Notice: will ignore print error\nfunc Fprintln(w io.Writer, a ...interface{}) {\n\tstr := formatArgsForPrintln(a)\n\t_, err := fmt.Fprintln(w, ReplaceTag(str))\n\tsaveInternalError(err)\n}\n\n// Lprint passes colored messages to a log.Logger for printing.\n// Notice: should be goroutine safe\nfunc Lprint(l *log.Logger, a ...interface{}) {\n\tl.Print(Render(a...))\n}\n\n// Render parse color tags, return rendered string.\n// Usage:\n//\ttext := Render(\"<info>hello</> <cyan>world</>!\")\n//\tfmt.Println(text)\nfunc Render(a ...interface{}) string {\n\tif len(a) == 0 {\n\t\treturn \"\"\n\t}\n\n\treturn ReplaceTag(fmt.Sprint(a...))\n}\n\n// Sprint parse color tags, return rendered string\nfunc Sprint(a ...interface{}) string {\n\tif len(a) == 0 {\n\t\treturn \"\"\n\t}\n\n\treturn ReplaceTag(fmt.Sprint(a...))\n}\n\n// Sprintf format and return rendered string\nfunc Sprintf(format string, a ...interface{}) string {\n\treturn ReplaceTag(fmt.Sprintf(format, a...))\n}\n\n// String alias of the ReplaceTag\nfunc String(s string) string {\n\treturn ReplaceTag(s)\n}\n\n// Text alias of the ReplaceTag\nfunc Text(s string) string {\n\treturn ReplaceTag(s)\n}\n\n// Uint8sToInts convert []uint8 to []int\n// func Uint8sToInts(u8s []uint8 ) []int {\n// \tints := make([]int, len(u8s))\n// \tfor i, u8 := range u8s {\n// \t\tints[i] = int(u8)\n// \t}\n// \treturn ints\n// }\n\n/*************************************************************\n * helper methods for print\n *************************************************************/\n\n// new implementation, support render full color code on pwsh.exe, cmd.exe\nfunc doPrintV2(code, str string) {\n\t_, err := fmt.Fprint(output, RenderString(code, str))\n\tsaveInternalError(err)\n\n\t// if isLikeInCmd {\n\t// \trenderColorCodeOnCmd(func() {\n\t// \t\t_, _ = fmt.Fprint(output, RenderString(code, str))\n\t// \t})\n\t// } else {\n\t// \t_, _ = fmt.Fprint(output, RenderString(code, str))\n\t// }\n}\n\n// new implementation, support render full color code on pwsh.exe, cmd.exe\nfunc doPrintlnV2(code string, args []interface{}) {\n\tstr := formatArgsForPrintln(args)\n\t_, err := fmt.Fprintln(output, RenderString(code, str))\n\tsaveInternalError(err)\n}\n\n// use Println, will add spaces for each arg\nfunc formatArgsForPrintln(args []interface{}) (message string) {\n\tif ln := len(args); ln == 0 {\n\t\tmessage = \"\"\n\t} else if ln == 1 {\n\t\tmessage = fmt.Sprint(args[0])\n\t} else {\n\t\tmessage = fmt.Sprintln(args...)\n\t\t// clear last \"\\n\"\n\t\tmessage = message[:len(message)-1]\n\t}\n\treturn\n}\n\n/*************************************************************\n * helper methods\n *************************************************************/\n\n// is on debug mode\n// func isDebugMode() bool {\n// \treturn debugMode == \"on\"\n// }\n\nfunc debugf(f string, v ...interface{}) {\n\tif debugMode {\n\t\tfmt.Print(\"COLOR_DEBUG: \")\n\t\tfmt.Printf(f, v...)\n\t\tfmt.Println()\n\t}\n}\n\n// equals: return ok ? val1 : val2\nfunc compareVal(ok bool, val1, val2 uint8) uint8 {\n\tif ok {\n\t\treturn val1\n\t}\n\treturn val2\n}\n\n// equals: return ok ? val1 : val2\nfunc compareF64Val(ok bool, val1, val2 float64) float64 {\n\tif ok {\n\t\treturn val1\n\t}\n\treturn val2\n}\n\nfunc saveInternalError(err error) {\n\tif err != nil {\n\t\tdebugf(\"inner error: %s\", err.Error())\n\t\tinnerErrs = append(innerErrs, err)\n\t}\n}\n\nfunc stringToArr(str, sep string) (arr []string) {\n\tstr = strings.TrimSpace(str)\n\tif str == \"\" {\n\t\treturn\n\t}\n\n\tss := strings.Split(str, sep)\n\tfor _, val := range ss {\n\t\tif val = strings.TrimSpace(val); val != \"\" {\n\t\t\tarr = append(arr, val)\n\t\t}\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/imdario/mergo/.deepsource.toml",
    "content": "version = 1\n\ntest_patterns = [\n  \"*_test.go\"\n]\n\n[[analyzers]]\nname = \"go\"\nenabled = true\n\n  [analyzers.meta]\n  import_path = \"github.com/imdario/mergo\""
  },
  {
    "path": "vendor/github.com/imdario/mergo/.gitignore",
    "content": "#### joe made this: http://goel.io/joe\n\n#### go ####\n# Binaries for programs and plugins\n*.exe\n*.dll\n*.so\n*.dylib\n\n# Test binary, build with `go test -c`\n*.test\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n\n# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736\n.glide/\n\n#### vim ####\n# Swap\n[._]*.s[a-v][a-z]\n[._]*.sw[a-p]\n[._]s[a-v][a-z]\n[._]sw[a-p]\n\n# Session\nSession.vim\n\n# Temporary\n.netrwhist\n*~\n# Auto-generated tag files\ntags\n"
  },
  {
    "path": "vendor/github.com/imdario/mergo/.travis.yml",
    "content": "language: go\narch:\n    - amd64\n    - ppc64le\ninstall:\n  - go get -t\n  - go get golang.org/x/tools/cmd/cover\n  - go get github.com/mattn/goveralls\nscript:\n  - go test -race -v ./...\nafter_script:\n  - $HOME/gopath/bin/goveralls -service=travis-ci -repotoken $COVERALLS_TOKEN\n"
  },
  {
    "path": "vendor/github.com/imdario/mergo/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at i@dario.im. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/imdario/mergo/CONTRIBUTING.md",
    "content": "<!-- omit in toc -->\n# Contributing to mergo\n\nFirst off, thanks for taking the time to contribute! ❤️\n\nAll types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉\n\n> And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about:\n> - Star the project\n> - Tweet about it\n> - Refer this project in your project's readme\n> - Mention the project at local meetups and tell your friends/colleagues\n\n<!-- omit in toc -->\n## Table of Contents\n\n- [Code of Conduct](#code-of-conduct)\n- [I Have a Question](#i-have-a-question)\n- [I Want To Contribute](#i-want-to-contribute)\n- [Reporting Bugs](#reporting-bugs)\n- [Suggesting Enhancements](#suggesting-enhancements)\n\n## Code of Conduct\n\nThis project and everyone participating in it is governed by the\n[mergo Code of Conduct](https://github.com/imdario/mergoblob/master/CODE_OF_CONDUCT.md).\nBy participating, you are expected to uphold this code. Please report unacceptable behavior\nto <>.\n\n\n## I Have a Question\n\n> If you want to ask a question, we assume that you have read the available [Documentation](https://pkg.go.dev/github.com/imdario/mergo).\n\nBefore you ask a question, it is best to search for existing [Issues](https://github.com/imdario/mergo/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first.\n\nIf you then still feel the need to ask a question and need clarification, we recommend the following:\n\n- Open an [Issue](https://github.com/imdario/mergo/issues/new).\n- Provide as much context as you can about what you're running into.\n- Provide project and platform versions (nodejs, npm, etc), depending on what seems relevant.\n\nWe will then take care of the issue as soon as possible.\n\n## I Want To Contribute\n\n> ### Legal Notice <!-- omit in toc -->\n> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project license.\n\n### Reporting Bugs\n\n<!-- omit in toc -->\n#### Before Submitting a Bug Report\n\nA good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible.\n\n- Make sure that you are using the latest version.\n- Determine if your bug is really a bug and not an error on your side e.g. using incompatible environment components/versions (Make sure that you have read the [documentation](). If you are looking for support, you might want to check [this section](#i-have-a-question)).\n- To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in the [bug tracker](https://github.com/imdario/mergoissues?q=label%3Abug).\n- Also make sure to search the internet (including Stack Overflow) to see if users outside of the GitHub community have discussed the issue.\n- Collect information about the bug:\n- Stack trace (Traceback)\n- OS, Platform and Version (Windows, Linux, macOS, x86, ARM)\n- Version of the interpreter, compiler, SDK, runtime environment, package manager, depending on what seems relevant.\n- Possibly your input and the output\n- Can you reliably reproduce the issue? And can you also reproduce it with older versions?\n\n<!-- omit in toc -->\n#### How Do I Submit a Good Bug Report?\n\n> You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to .\n<!-- You may add a PGP key to allow the messages to be sent encrypted as well. -->\n\nWe use GitHub issues to track bugs and errors. If you run into an issue with the project:\n\n- Open an [Issue](https://github.com/imdario/mergo/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.)\n- Explain the behavior you would expect and the actual behavior.\n- Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case.\n- Provide the information you collected in the previous section.\n\nOnce it's filed:\n\n- The project team will label the issue accordingly.\n- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps and mark the issue as `needs-repro`. Bugs with the `needs-repro` tag will not be addressed until they are reproduced.\n- If the team is able to reproduce the issue, it will be marked `needs-fix`, as well as possibly other tags (such as `critical`), and the issue will be left to be implemented by someone.\n\n### Suggesting Enhancements\n\nThis section guides you through submitting an enhancement suggestion for mergo, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions.\n\n<!-- omit in toc -->\n#### Before Submitting an Enhancement\n\n- Make sure that you are using the latest version.\n- Read the [documentation]() carefully and find out if the functionality is already covered, maybe by an individual configuration.\n- Perform a [search](https://github.com/imdario/mergo/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one.\n- Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library.\n\n<!-- omit in toc -->\n#### How Do I Submit a Good Enhancement Suggestion?\n\nEnhancement suggestions are tracked as [GitHub issues](https://github.com/imdario/mergo/issues).\n\n- Use a **clear and descriptive title** for the issue to identify the suggestion.\n- Provide a **step-by-step description of the suggested enhancement** in as many details as possible.\n- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you.\n- You may want to **include screenshots and animated GIFs** which help you demonstrate the steps or point out the part which the suggestion is related to. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. <!-- this should only be included if the project has a GUI -->\n- **Explain why this enhancement would be useful** to most mergo users. You may also want to point out the other projects that solved it better and which could serve as inspiration.\n\n<!-- omit in toc -->\n## Attribution\nThis guide is based on the **contributing-gen**. [Make your own](https://github.com/bttger/contributing-gen)!\n"
  },
  {
    "path": "vendor/github.com/imdario/mergo/LICENSE",
    "content": "Copyright (c) 2013 Dario Castañé. All rights reserved.\nCopyright (c) 2012 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/imdario/mergo/README.md",
    "content": "# Mergo\n\n[![GitHub release][5]][6]\n[![GoCard][7]][8]\n[![Test status][1]][2]\n[![OpenSSF Scorecard][21]][22]\n[![OpenSSF Best Practices][19]][20]\n[![Coverage status][9]][10]\n[![Sourcegraph][11]][12]\n[![FOSSA status][13]][14]\n\n[![GoDoc][3]][4]\n[![Become my sponsor][15]][16]\n[![Tidelift][17]][18]\n\n[1]: https://github.com/imdario/mergo/workflows/tests/badge.svg?branch=master\n[2]: https://github.com/imdario/mergo/actions/workflows/tests.yml\n[3]: https://godoc.org/github.com/imdario/mergo?status.svg\n[4]: https://godoc.org/github.com/imdario/mergo\n[5]: https://img.shields.io/github/release/imdario/mergo.svg\n[6]: https://github.com/imdario/mergo/releases\n[7]: https://goreportcard.com/badge/imdario/mergo\n[8]: https://goreportcard.com/report/github.com/imdario/mergo\n[9]: https://coveralls.io/repos/github/imdario/mergo/badge.svg?branch=master\n[10]: https://coveralls.io/github/imdario/mergo?branch=master\n[11]: https://sourcegraph.com/github.com/imdario/mergo/-/badge.svg\n[12]: https://sourcegraph.com/github.com/imdario/mergo?badge\n[13]: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fimdario%2Fmergo.svg?type=shield\n[14]: https://app.fossa.io/projects/git%2Bgithub.com%2Fimdario%2Fmergo?ref=badge_shield\n[15]: https://img.shields.io/github/sponsors/imdario\n[16]: https://github.com/sponsors/imdario\n[17]: https://tidelift.com/badges/package/go/github.com%2Fimdario%2Fmergo\n[18]: https://tidelift.com/subscription/pkg/go-github.com-imdario-mergo\n[19]: https://bestpractices.coreinfrastructure.org/projects/7177/badge\n[20]: https://bestpractices.coreinfrastructure.org/projects/7177\n[21]: https://api.securityscorecards.dev/projects/github.com/imdario/mergo/badge\n[22]: https://api.securityscorecards.dev/projects/github.com/imdario/mergo\n\nA helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements.\n\nMergo merges same-type structs and maps by setting default values in zero-value fields. Mergo won't merge unexported (private) fields. It will do recursively any exported one. It also won't merge structs inside maps (because they are not addressable using Go reflection).\n\nAlso a lovely [comune](http://en.wikipedia.org/wiki/Mergo) (municipality) in the Province of Ancona in the Italian region of Marche.\n\n## Status\n\nIt is ready for production use. [It is used in several projects by Docker, Google, The Linux Foundation, VMWare, Shopify, Microsoft, etc](https://github.com/imdario/mergo#mergo-in-the-wild).\n\n### Important note\n\nPlease keep in mind that a problematic PR broke [0.3.9](//github.com/imdario/mergo/releases/tag/0.3.9). I reverted it in [0.3.10](//github.com/imdario/mergo/releases/tag/0.3.10), and I consider it stable but not bug-free. Also, this version adds support for go modules.\n\nKeep in mind that in [0.3.2](//github.com/imdario/mergo/releases/tag/0.3.2), Mergo changed `Merge()`and `Map()` signatures to support [transformers](#transformers). I added an optional/variadic argument so that it won't break the existing code.\n\nIf you were using Mergo before April 6th, 2015, please check your project works as intended after updating your local copy with ```go get -u github.com/imdario/mergo```. I apologize for any issue caused by its previous behavior and any future bug that Mergo could cause in existing projects after the change (release 0.2.0).\n\n### Donations\n\nIf Mergo is useful to you, consider buying me a coffee, a beer, or making a monthly donation to allow me to keep building great free software. :heart_eyes:\n\n<a href='https://ko-fi.com/B0B58839' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://az743702.vo.msecnd.net/cdn/kofi1.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>\n<a href=\"https://liberapay.com/dario/donate\"><img alt=\"Donate using Liberapay\" src=\"https://liberapay.com/assets/widgets/donate.svg\"></a>\n<a href='https://github.com/sponsors/imdario' target='_blank'><img alt=\"Become my sponsor\" src=\"https://img.shields.io/github/sponsors/imdario?style=for-the-badge\" /></a>\n\n### Mergo in the wild\n\n- [moby/moby](https://github.com/moby/moby)\n- [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes)\n- [vmware/dispatch](https://github.com/vmware/dispatch)\n- [Shopify/themekit](https://github.com/Shopify/themekit)\n- [imdario/zas](https://github.com/imdario/zas)\n- [matcornic/hermes](https://github.com/matcornic/hermes)\n- [OpenBazaar/openbazaar-go](https://github.com/OpenBazaar/openbazaar-go)\n- [kataras/iris](https://github.com/kataras/iris)\n- [michaelsauter/crane](https://github.com/michaelsauter/crane)\n- [go-task/task](https://github.com/go-task/task)\n- [sensu/uchiwa](https://github.com/sensu/uchiwa)\n- [ory/hydra](https://github.com/ory/hydra)\n- [sisatech/vcli](https://github.com/sisatech/vcli)\n- [dairycart/dairycart](https://github.com/dairycart/dairycart)\n- [projectcalico/felix](https://github.com/projectcalico/felix)\n- [resin-os/balena](https://github.com/resin-os/balena)\n- [go-kivik/kivik](https://github.com/go-kivik/kivik)\n- [Telefonica/govice](https://github.com/Telefonica/govice)\n- [supergiant/supergiant](supergiant/supergiant)\n- [SergeyTsalkov/brooce](https://github.com/SergeyTsalkov/brooce)\n- [soniah/dnsmadeeasy](https://github.com/soniah/dnsmadeeasy)\n- [ohsu-comp-bio/funnel](https://github.com/ohsu-comp-bio/funnel)\n- [EagerIO/Stout](https://github.com/EagerIO/Stout)\n- [lynndylanhurley/defsynth-api](https://github.com/lynndylanhurley/defsynth-api)\n- [russross/canvasassignments](https://github.com/russross/canvasassignments)\n- [rdegges/cryptly-api](https://github.com/rdegges/cryptly-api)\n- [casualjim/exeggutor](https://github.com/casualjim/exeggutor)\n- [divshot/gitling](https://github.com/divshot/gitling)\n- [RWJMurphy/gorl](https://github.com/RWJMurphy/gorl)\n- [andrerocker/deploy42](https://github.com/andrerocker/deploy42)\n- [elwinar/rambler](https://github.com/elwinar/rambler)\n- [tmaiaroto/gopartman](https://github.com/tmaiaroto/gopartman)\n- [jfbus/impressionist](https://github.com/jfbus/impressionist)\n- [Jmeyering/zealot](https://github.com/Jmeyering/zealot)\n- [godep-migrator/rigger-host](https://github.com/godep-migrator/rigger-host)\n- [Dronevery/MultiwaySwitch-Go](https://github.com/Dronevery/MultiwaySwitch-Go)\n- [thoas/picfit](https://github.com/thoas/picfit)\n- [mantasmatelis/whooplist-server](https://github.com/mantasmatelis/whooplist-server)\n- [jnuthong/item_search](https://github.com/jnuthong/item_search)\n- [bukalapak/snowboard](https://github.com/bukalapak/snowboard)\n- [containerssh/containerssh](https://github.com/containerssh/containerssh)\n- [goreleaser/goreleaser](https://github.com/goreleaser/goreleaser)\n- [tjpnz/structbot](https://github.com/tjpnz/structbot)\n\n## Install\n\n    go get github.com/imdario/mergo\n\n    // use in your .go code\n    import (\n        \"github.com/imdario/mergo\"\n    )\n\n## Usage\n\nYou can only merge same-type structs with exported fields initialized as zero value of their type and same-types maps. Mergo won't merge unexported (private) fields but will do recursively any exported one. It won't merge empty structs value as [they are zero values](https://golang.org/ref/spec#The_zero_value) too. Also, maps will be merged recursively except for structs inside maps (because they are not addressable using Go reflection).\n\n```go\nif err := mergo.Merge(&dst, src); err != nil {\n    // ...\n}\n```\n\nAlso, you can merge overwriting values using the transformer `WithOverride`.\n\n```go\nif err := mergo.Merge(&dst, src, mergo.WithOverride); err != nil {\n    // ...\n}\n```\n\nAdditionally, you can map a `map[string]interface{}` to a struct (and otherwise, from struct to map), following the same restrictions as in `Merge()`. Keys are capitalized to find each corresponding exported field.\n\n```go\nif err := mergo.Map(&dst, srcMap); err != nil {\n    // ...\n}\n```\n\nWarning: if you map a struct to map, it won't do it recursively. Don't expect Mergo to map struct members of your struct as `map[string]interface{}`. They will be just assigned as values.\n\nHere is a nice example:\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/imdario/mergo\"\n)\n\ntype Foo struct {\n\tA string\n\tB int64\n}\n\nfunc main() {\n\tsrc := Foo{\n\t\tA: \"one\",\n\t\tB: 2,\n\t}\n\tdest := Foo{\n\t\tA: \"two\",\n\t}\n\tmergo.Merge(&dest, src)\n\tfmt.Println(dest)\n\t// Will print\n\t// {two 2}\n}\n```\n\nNote: if test are failing due missing package, please execute:\n\n    go get gopkg.in/yaml.v3\n\n### Transformers\n\nTransformers allow to merge specific types differently than in the default behavior. In other words, now you can customize how some types are merged. For example, `time.Time` is a struct; it doesn't have zero value but IsZero can return true because it has fields with zero value. How can we merge a non-zero `time.Time`?\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/imdario/mergo\"\n        \"reflect\"\n        \"time\"\n)\n\ntype timeTransformer struct {\n}\n\nfunc (t timeTransformer) Transformer(typ reflect.Type) func(dst, src reflect.Value) error {\n\tif typ == reflect.TypeOf(time.Time{}) {\n\t\treturn func(dst, src reflect.Value) error {\n\t\t\tif dst.CanSet() {\n\t\t\t\tisZero := dst.MethodByName(\"IsZero\")\n\t\t\t\tresult := isZero.Call([]reflect.Value{})\n\t\t\t\tif result[0].Bool() {\n\t\t\t\t\tdst.Set(src)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn nil\n}\n\ntype Snapshot struct {\n\tTime time.Time\n\t// ...\n}\n\nfunc main() {\n\tsrc := Snapshot{time.Now()}\n\tdest := Snapshot{}\n\tmergo.Merge(&dest, src, mergo.WithTransformers(timeTransformer{}))\n\tfmt.Println(dest)\n\t// Will print\n\t// { 2018-01-12 01:15:00 +0000 UTC m=+0.000000001 }\n}\n```\n\n## Contact me\n\nIf I can help you, you have an idea or you are using Mergo in your projects, don't hesitate to drop me a line (or a pull request): [@im_dario](https://twitter.com/im_dario)\n\n## About\n\nWritten by [Dario Castañé](http://dario.im).\n\n## License\n\n[BSD 3-Clause](http://opensource.org/licenses/BSD-3-Clause) license, as [Go language](http://golang.org/LICENSE).\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fimdario%2Fmergo.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fimdario%2Fmergo?ref=badge_large)\n"
  },
  {
    "path": "vendor/github.com/imdario/mergo/SECURITY.md",
    "content": "# Security Policy\n\n## Supported Versions\n\n| Version | Supported          |\n| ------- | ------------------ |\n| 0.3.x   | :white_check_mark: |\n| < 0.3   | :x:                |\n\n## Security contact information\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure.\n"
  },
  {
    "path": "vendor/github.com/imdario/mergo/doc.go",
    "content": "// Copyright 2013 Dario Castañé. All rights reserved.\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/*\nA helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements.\n\nMergo merges same-type structs and maps by setting default values in zero-value fields. Mergo won't merge unexported (private) fields. It will do recursively any exported one. It also won't merge structs inside maps (because they are not addressable using Go reflection).\n\nStatus\n\nIt is ready for production use. It is used in several projects by Docker, Google, The Linux Foundation, VMWare, Shopify, etc.\n\nImportant note\n\nPlease keep in mind that a problematic PR broke 0.3.9. We reverted it in 0.3.10. We consider 0.3.10 as stable but not bug-free. . Also, this version adds suppot for go modules.\n\nKeep in mind that in 0.3.2, Mergo changed Merge() and Map() signatures to support transformers. We added an optional/variadic argument so that it won't break the existing code.\n\nIf you were using Mergo before April 6th, 2015, please check your project works as intended after updating your local copy with go get -u github.com/imdario/mergo. I apologize for any issue caused by its previous behavior and any future bug that Mergo could cause in existing projects after the change (release 0.2.0).\n\nInstall\n\nDo your usual installation procedure:\n\n    go get github.com/imdario/mergo\n\n    // use in your .go code\n    import (\n        \"github.com/imdario/mergo\"\n    )\n\nUsage\n\nYou can only merge same-type structs with exported fields initialized as zero value of their type and same-types maps. Mergo won't merge unexported (private) fields but will do recursively any exported one. It won't merge empty structs value as they are zero values too. Also, maps will be merged recursively except for structs inside maps (because they are not addressable using Go reflection).\n\n\tif err := mergo.Merge(&dst, src); err != nil {\n\t\t// ...\n\t}\n\nAlso, you can merge overwriting values using the transformer WithOverride.\n\n\tif err := mergo.Merge(&dst, src, mergo.WithOverride); err != nil {\n\t\t// ...\n\t}\n\nAdditionally, you can map a map[string]interface{} to a struct (and otherwise, from struct to map), following the same restrictions as in Merge(). Keys are capitalized to find each corresponding exported field.\n\n\tif err := mergo.Map(&dst, srcMap); err != nil {\n\t\t// ...\n\t}\n\nWarning: if you map a struct to map, it won't do it recursively. Don't expect Mergo to map struct members of your struct as map[string]interface{}. They will be just assigned as values.\n\nHere is a nice example:\n\n\tpackage main\n\n\timport (\n\t\t\"fmt\"\n\t\t\"github.com/imdario/mergo\"\n\t)\n\n\ttype Foo struct {\n\t\tA string\n\t\tB int64\n\t}\n\n\tfunc main() {\n\t\tsrc := Foo{\n\t\t\tA: \"one\",\n\t\t\tB: 2,\n\t\t}\n\t\tdest := Foo{\n\t\t\tA: \"two\",\n\t\t}\n\t\tmergo.Merge(&dest, src)\n\t\tfmt.Println(dest)\n\t\t// Will print\n\t\t// {two 2}\n\t}\n\nTransformers\n\nTransformers allow to merge specific types differently than in the default behavior. In other words, now you can customize how some types are merged. For example, time.Time is a struct; it doesn't have zero value but IsZero can return true because it has fields with zero value. How can we merge a non-zero time.Time?\n\n\tpackage main\n\n\timport (\n\t\t\"fmt\"\n\t\t\"github.com/imdario/mergo\"\n\t\t\t\"reflect\"\n\t\t\t\"time\"\n\t)\n\n\ttype timeTransformer struct {\n\t}\n\n\tfunc (t timeTransformer) Transformer(typ reflect.Type) func(dst, src reflect.Value) error {\n\t\tif typ == reflect.TypeOf(time.Time{}) {\n\t\t\treturn func(dst, src reflect.Value) error {\n\t\t\t\tif dst.CanSet() {\n\t\t\t\t\tisZero := dst.MethodByName(\"IsZero\")\n\t\t\t\t\tresult := isZero.Call([]reflect.Value{})\n\t\t\t\t\tif result[0].Bool() {\n\t\t\t\t\t\tdst.Set(src)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\ttype Snapshot struct {\n\t\tTime time.Time\n\t\t// ...\n\t}\n\n\tfunc main() {\n\t\tsrc := Snapshot{time.Now()}\n\t\tdest := Snapshot{}\n\t\tmergo.Merge(&dest, src, mergo.WithTransformers(timeTransformer{}))\n\t\tfmt.Println(dest)\n\t\t// Will print\n\t\t// { 2018-01-12 01:15:00 +0000 UTC m=+0.000000001 }\n\t}\n\nContact me\n\nIf I can help you, you have an idea or you are using Mergo in your projects, don't hesitate to drop me a line (or a pull request): https://twitter.com/im_dario\n\nAbout\n\nWritten by Dario Castañé: https://da.rio.hn\n\nLicense\n\nBSD 3-Clause license, as Go language.\n\n*/\npackage mergo\n"
  },
  {
    "path": "vendor/github.com/imdario/mergo/map.go",
    "content": "// Copyright 2014 Dario Castañé. All rights reserved.\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Based on src/pkg/reflect/deepequal.go from official\n// golang's stdlib.\n\npackage mergo\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\nfunc changeInitialCase(s string, mapper func(rune) rune) string {\n\tif s == \"\" {\n\t\treturn s\n\t}\n\tr, n := utf8.DecodeRuneInString(s)\n\treturn string(mapper(r)) + s[n:]\n}\n\nfunc isExported(field reflect.StructField) bool {\n\tr, _ := utf8.DecodeRuneInString(field.Name)\n\treturn r >= 'A' && r <= 'Z'\n}\n\n// Traverses recursively both values, assigning src's fields values to dst.\n// The map argument tracks comparisons that have already been seen, which allows\n// short circuiting on recursive types.\nfunc deepMap(dst, src reflect.Value, visited map[uintptr]*visit, depth int, config *Config) (err error) {\n\toverwrite := config.Overwrite\n\tif dst.CanAddr() {\n\t\taddr := dst.UnsafeAddr()\n\t\th := 17 * addr\n\t\tseen := visited[h]\n\t\ttyp := dst.Type()\n\t\tfor p := seen; p != nil; p = p.next {\n\t\t\tif p.ptr == addr && p.typ == typ {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\t// Remember, remember...\n\t\tvisited[h] = &visit{typ, seen, addr}\n\t}\n\tzeroValue := reflect.Value{}\n\tswitch dst.Kind() {\n\tcase reflect.Map:\n\t\tdstMap := dst.Interface().(map[string]interface{})\n\t\tfor i, n := 0, src.NumField(); i < n; i++ {\n\t\t\tsrcType := src.Type()\n\t\t\tfield := srcType.Field(i)\n\t\t\tif !isExported(field) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfieldName := field.Name\n\t\t\tfieldName = changeInitialCase(fieldName, unicode.ToLower)\n\t\t\tif v, ok := dstMap[fieldName]; !ok || (isEmptyValue(reflect.ValueOf(v), !config.ShouldNotDereference) || overwrite) {\n\t\t\t\tdstMap[fieldName] = src.Field(i).Interface()\n\t\t\t}\n\t\t}\n\tcase reflect.Ptr:\n\t\tif dst.IsNil() {\n\t\t\tv := reflect.New(dst.Type().Elem())\n\t\t\tdst.Set(v)\n\t\t}\n\t\tdst = dst.Elem()\n\t\tfallthrough\n\tcase reflect.Struct:\n\t\tsrcMap := src.Interface().(map[string]interface{})\n\t\tfor key := range srcMap {\n\t\t\tconfig.overwriteWithEmptyValue = true\n\t\t\tsrcValue := srcMap[key]\n\t\t\tfieldName := changeInitialCase(key, unicode.ToUpper)\n\t\t\tdstElement := dst.FieldByName(fieldName)\n\t\t\tif dstElement == zeroValue {\n\t\t\t\t// We discard it because the field doesn't exist.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsrcElement := reflect.ValueOf(srcValue)\n\t\t\tdstKind := dstElement.Kind()\n\t\t\tsrcKind := srcElement.Kind()\n\t\t\tif srcKind == reflect.Ptr && dstKind != reflect.Ptr {\n\t\t\t\tsrcElement = srcElement.Elem()\n\t\t\t\tsrcKind = reflect.TypeOf(srcElement.Interface()).Kind()\n\t\t\t} else if dstKind == reflect.Ptr {\n\t\t\t\t// Can this work? I guess it can't.\n\t\t\t\tif srcKind != reflect.Ptr && srcElement.CanAddr() {\n\t\t\t\t\tsrcPtr := srcElement.Addr()\n\t\t\t\t\tsrcElement = reflect.ValueOf(srcPtr)\n\t\t\t\t\tsrcKind = reflect.Ptr\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif !srcElement.IsValid() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif srcKind == dstKind {\n\t\t\t\tif err = deepMerge(dstElement, srcElement, visited, depth+1, config); err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t} else if dstKind == reflect.Interface && dstElement.Kind() == reflect.Interface {\n\t\t\t\tif err = deepMerge(dstElement, srcElement, visited, depth+1, config); err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t} else if srcKind == reflect.Map {\n\t\t\t\tif err = deepMap(dstElement, srcElement, visited, depth+1, config); err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"type mismatch on %s field: found %v, expected %v\", fieldName, srcKind, dstKind)\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// Map sets fields' values in dst from src.\n// src can be a map with string keys or a struct. dst must be the opposite:\n// if src is a map, dst must be a valid pointer to struct. If src is a struct,\n// dst must be map[string]interface{}.\n// It won't merge unexported (private) fields and will do recursively\n// any exported field.\n// If dst is a map, keys will be src fields' names in lower camel case.\n// Missing key in src that doesn't match a field in dst will be skipped. This\n// doesn't apply if dst is a map.\n// This is separated method from Merge because it is cleaner and it keeps sane\n// semantics: merging equal types, mapping different (restricted) types.\nfunc Map(dst, src interface{}, opts ...func(*Config)) error {\n\treturn _map(dst, src, opts...)\n}\n\n// MapWithOverwrite will do the same as Map except that non-empty dst attributes will be overridden by\n// non-empty src attribute values.\n// Deprecated: Use Map(…) with WithOverride\nfunc MapWithOverwrite(dst, src interface{}, opts ...func(*Config)) error {\n\treturn _map(dst, src, append(opts, WithOverride)...)\n}\n\nfunc _map(dst, src interface{}, opts ...func(*Config)) error {\n\tif dst != nil && reflect.ValueOf(dst).Kind() != reflect.Ptr {\n\t\treturn ErrNonPointerArgument\n\t}\n\tvar (\n\t\tvDst, vSrc reflect.Value\n\t\terr        error\n\t)\n\tconfig := &Config{}\n\n\tfor _, opt := range opts {\n\t\topt(config)\n\t}\n\n\tif vDst, vSrc, err = resolveValues(dst, src); err != nil {\n\t\treturn err\n\t}\n\t// To be friction-less, we redirect equal-type arguments\n\t// to deepMerge. Only because arguments can be anything.\n\tif vSrc.Kind() == vDst.Kind() {\n\t\treturn deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0, config)\n\t}\n\tswitch vSrc.Kind() {\n\tcase reflect.Struct:\n\t\tif vDst.Kind() != reflect.Map {\n\t\t\treturn ErrExpectedMapAsDestination\n\t\t}\n\tcase reflect.Map:\n\t\tif vDst.Kind() != reflect.Struct {\n\t\t\treturn ErrExpectedStructAsDestination\n\t\t}\n\tdefault:\n\t\treturn ErrNotSupported\n\t}\n\treturn deepMap(vDst, vSrc, make(map[uintptr]*visit), 0, config)\n}\n"
  },
  {
    "path": "vendor/github.com/imdario/mergo/merge.go",
    "content": "// Copyright 2013 Dario Castañé. All rights reserved.\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Based on src/pkg/reflect/deepequal.go from official\n// golang's stdlib.\n\npackage mergo\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\nfunc hasMergeableFields(dst reflect.Value) (exported bool) {\n\tfor i, n := 0, dst.NumField(); i < n; i++ {\n\t\tfield := dst.Type().Field(i)\n\t\tif field.Anonymous && dst.Field(i).Kind() == reflect.Struct {\n\t\t\texported = exported || hasMergeableFields(dst.Field(i))\n\t\t} else if isExportedComponent(&field) {\n\t\t\texported = exported || len(field.PkgPath) == 0\n\t\t}\n\t}\n\treturn\n}\n\nfunc isExportedComponent(field *reflect.StructField) bool {\n\tpkgPath := field.PkgPath\n\tif len(pkgPath) > 0 {\n\t\treturn false\n\t}\n\tc := field.Name[0]\n\tif 'a' <= c && c <= 'z' || c == '_' {\n\t\treturn false\n\t}\n\treturn true\n}\n\ntype Config struct {\n\tTransformers                 Transformers\n\tOverwrite                    bool\n\tShouldNotDereference         bool\n\tAppendSlice                  bool\n\tTypeCheck                    bool\n\toverwriteWithEmptyValue      bool\n\toverwriteSliceWithEmptyValue bool\n\tsliceDeepCopy                bool\n\tdebug                        bool\n}\n\ntype Transformers interface {\n\tTransformer(reflect.Type) func(dst, src reflect.Value) error\n}\n\n// Traverses recursively both values, assigning src's fields values to dst.\n// The map argument tracks comparisons that have already been seen, which allows\n// short circuiting on recursive types.\nfunc deepMerge(dst, src reflect.Value, visited map[uintptr]*visit, depth int, config *Config) (err error) {\n\toverwrite := config.Overwrite\n\ttypeCheck := config.TypeCheck\n\toverwriteWithEmptySrc := config.overwriteWithEmptyValue\n\toverwriteSliceWithEmptySrc := config.overwriteSliceWithEmptyValue\n\tsliceDeepCopy := config.sliceDeepCopy\n\n\tif !src.IsValid() {\n\t\treturn\n\t}\n\tif dst.CanAddr() {\n\t\taddr := dst.UnsafeAddr()\n\t\th := 17 * addr\n\t\tseen := visited[h]\n\t\ttyp := dst.Type()\n\t\tfor p := seen; p != nil; p = p.next {\n\t\t\tif p.ptr == addr && p.typ == typ {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\t// Remember, remember...\n\t\tvisited[h] = &visit{typ, seen, addr}\n\t}\n\n\tif config.Transformers != nil && !isReflectNil(dst) && dst.IsValid() {\n\t\tif fn := config.Transformers.Transformer(dst.Type()); fn != nil {\n\t\t\terr = fn(dst, src)\n\t\t\treturn\n\t\t}\n\t}\n\n\tswitch dst.Kind() {\n\tcase reflect.Struct:\n\t\tif hasMergeableFields(dst) {\n\t\t\tfor i, n := 0, dst.NumField(); i < n; i++ {\n\t\t\t\tif err = deepMerge(dst.Field(i), src.Field(i), visited, depth+1, config); err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif dst.CanSet() && (isReflectNil(dst) || overwrite) && (!isEmptyValue(src, !config.ShouldNotDereference) || overwriteWithEmptySrc) {\n\t\t\t\tdst.Set(src)\n\t\t\t}\n\t\t}\n\tcase reflect.Map:\n\t\tif dst.IsNil() && !src.IsNil() {\n\t\t\tif dst.CanSet() {\n\t\t\t\tdst.Set(reflect.MakeMap(dst.Type()))\n\t\t\t} else {\n\t\t\t\tdst = src\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tif src.Kind() != reflect.Map {\n\t\t\tif overwrite && dst.CanSet() {\n\t\t\t\tdst.Set(src)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tfor _, key := range src.MapKeys() {\n\t\t\tsrcElement := src.MapIndex(key)\n\t\t\tif !srcElement.IsValid() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdstElement := dst.MapIndex(key)\n\t\t\tswitch srcElement.Kind() {\n\t\t\tcase reflect.Chan, reflect.Func, reflect.Map, reflect.Interface, reflect.Slice:\n\t\t\t\tif srcElement.IsNil() {\n\t\t\t\t\tif overwrite {\n\t\t\t\t\t\tdst.SetMapIndex(key, srcElement)\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tfallthrough\n\t\t\tdefault:\n\t\t\t\tif !srcElement.CanInterface() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tswitch reflect.TypeOf(srcElement.Interface()).Kind() {\n\t\t\t\tcase reflect.Struct:\n\t\t\t\t\tfallthrough\n\t\t\t\tcase reflect.Ptr:\n\t\t\t\t\tfallthrough\n\t\t\t\tcase reflect.Map:\n\t\t\t\t\tsrcMapElm := srcElement\n\t\t\t\t\tdstMapElm := dstElement\n\t\t\t\t\tif srcMapElm.CanInterface() {\n\t\t\t\t\t\tsrcMapElm = reflect.ValueOf(srcMapElm.Interface())\n\t\t\t\t\t\tif dstMapElm.IsValid() {\n\t\t\t\t\t\t\tdstMapElm = reflect.ValueOf(dstMapElm.Interface())\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif err = deepMerge(dstMapElm, srcMapElm, visited, depth+1, config); err != nil {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\tcase reflect.Slice:\n\t\t\t\t\tsrcSlice := reflect.ValueOf(srcElement.Interface())\n\n\t\t\t\t\tvar dstSlice reflect.Value\n\t\t\t\t\tif !dstElement.IsValid() || dstElement.IsNil() {\n\t\t\t\t\t\tdstSlice = reflect.MakeSlice(srcSlice.Type(), 0, srcSlice.Len())\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdstSlice = reflect.ValueOf(dstElement.Interface())\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!isEmptyValue(src, !config.ShouldNotDereference) || overwriteWithEmptySrc || overwriteSliceWithEmptySrc) && (overwrite || isEmptyValue(dst, !config.ShouldNotDereference)) && !config.AppendSlice && !sliceDeepCopy {\n\t\t\t\t\t\tif typeCheck && srcSlice.Type() != dstSlice.Type() {\n\t\t\t\t\t\t\treturn fmt.Errorf(\"cannot override two slices with different type (%s, %s)\", srcSlice.Type(), dstSlice.Type())\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdstSlice = srcSlice\n\t\t\t\t\t} else if config.AppendSlice {\n\t\t\t\t\t\tif srcSlice.Type() != dstSlice.Type() {\n\t\t\t\t\t\t\treturn fmt.Errorf(\"cannot append two slices with different type (%s, %s)\", srcSlice.Type(), dstSlice.Type())\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdstSlice = reflect.AppendSlice(dstSlice, srcSlice)\n\t\t\t\t\t} else if sliceDeepCopy {\n\t\t\t\t\t\ti := 0\n\t\t\t\t\t\tfor ; i < srcSlice.Len() && i < dstSlice.Len(); i++ {\n\t\t\t\t\t\t\tsrcElement := srcSlice.Index(i)\n\t\t\t\t\t\t\tdstElement := dstSlice.Index(i)\n\n\t\t\t\t\t\t\tif srcElement.CanInterface() {\n\t\t\t\t\t\t\t\tsrcElement = reflect.ValueOf(srcElement.Interface())\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif dstElement.CanInterface() {\n\t\t\t\t\t\t\t\tdstElement = reflect.ValueOf(dstElement.Interface())\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif err = deepMerge(dstElement, srcElement, visited, depth+1, config); err != nil {\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t\tdst.SetMapIndex(key, dstSlice)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif dstElement.IsValid() && !isEmptyValue(dstElement, !config.ShouldNotDereference) {\n\t\t\t\tif reflect.TypeOf(srcElement.Interface()).Kind() == reflect.Slice {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif reflect.TypeOf(srcElement.Interface()).Kind() == reflect.Map && reflect.TypeOf(dstElement.Interface()).Kind() == reflect.Map {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif srcElement.IsValid() && ((srcElement.Kind() != reflect.Ptr && overwrite) || !dstElement.IsValid() || isEmptyValue(dstElement, !config.ShouldNotDereference)) {\n\t\t\t\tif dst.IsNil() {\n\t\t\t\t\tdst.Set(reflect.MakeMap(dst.Type()))\n\t\t\t\t}\n\t\t\t\tdst.SetMapIndex(key, srcElement)\n\t\t\t}\n\t\t}\n\n\t\t// Ensure that all keys in dst are deleted if they are not in src.\n\t\tif overwriteWithEmptySrc {\n\t\t\tfor _, key := range dst.MapKeys() {\n\t\t\t\tsrcElement := src.MapIndex(key)\n\t\t\t\tif !srcElement.IsValid() {\n\t\t\t\t\tdst.SetMapIndex(key, reflect.Value{})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Slice:\n\t\tif !dst.CanSet() {\n\t\t\tbreak\n\t\t}\n\t\tif (!isEmptyValue(src, !config.ShouldNotDereference) || overwriteWithEmptySrc || overwriteSliceWithEmptySrc) && (overwrite || isEmptyValue(dst, !config.ShouldNotDereference)) && !config.AppendSlice && !sliceDeepCopy {\n\t\t\tdst.Set(src)\n\t\t} else if config.AppendSlice {\n\t\t\tif src.Type() != dst.Type() {\n\t\t\t\treturn fmt.Errorf(\"cannot append two slice with different type (%s, %s)\", src.Type(), dst.Type())\n\t\t\t}\n\t\t\tdst.Set(reflect.AppendSlice(dst, src))\n\t\t} else if sliceDeepCopy {\n\t\t\tfor i := 0; i < src.Len() && i < dst.Len(); i++ {\n\t\t\t\tsrcElement := src.Index(i)\n\t\t\t\tdstElement := dst.Index(i)\n\t\t\t\tif srcElement.CanInterface() {\n\t\t\t\t\tsrcElement = reflect.ValueOf(srcElement.Interface())\n\t\t\t\t}\n\t\t\t\tif dstElement.CanInterface() {\n\t\t\t\t\tdstElement = reflect.ValueOf(dstElement.Interface())\n\t\t\t\t}\n\n\t\t\t\tif err = deepMerge(dstElement, srcElement, visited, depth+1, config); err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Ptr:\n\t\tfallthrough\n\tcase reflect.Interface:\n\t\tif isReflectNil(src) {\n\t\t\tif overwriteWithEmptySrc && dst.CanSet() && src.Type().AssignableTo(dst.Type()) {\n\t\t\t\tdst.Set(src)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\n\t\tif src.Kind() != reflect.Interface {\n\t\t\tif dst.IsNil() || (src.Kind() != reflect.Ptr && overwrite) {\n\t\t\t\tif dst.CanSet() && (overwrite || isEmptyValue(dst, !config.ShouldNotDereference)) {\n\t\t\t\t\tdst.Set(src)\n\t\t\t\t}\n\t\t\t} else if src.Kind() == reflect.Ptr {\n\t\t\t\tif !config.ShouldNotDereference {\n\t\t\t\t\tif err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1, config); err != nil {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif overwriteWithEmptySrc || (overwrite && !src.IsNil()) || dst.IsNil() {\n\t\t\t\t\t\tdst.Set(src)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if dst.Elem().Type() == src.Type() {\n\t\t\t\tif err = deepMerge(dst.Elem(), src, visited, depth+1, config); err != nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn ErrDifferentArgumentsTypes\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\n\t\tif dst.IsNil() || overwrite {\n\t\t\tif dst.CanSet() && (overwrite || isEmptyValue(dst, !config.ShouldNotDereference)) {\n\t\t\t\tdst.Set(src)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\n\t\tif dst.Elem().Kind() == src.Elem().Kind() {\n\t\t\tif err = deepMerge(dst.Elem(), src.Elem(), visited, depth+1, config); err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\tdefault:\n\t\tmustSet := (isEmptyValue(dst, !config.ShouldNotDereference) || overwrite) && (!isEmptyValue(src, !config.ShouldNotDereference) || overwriteWithEmptySrc)\n\t\tif mustSet {\n\t\t\tif dst.CanSet() {\n\t\t\t\tdst.Set(src)\n\t\t\t} else {\n\t\t\t\tdst = src\n\t\t\t}\n\t\t}\n\t}\n\n\treturn\n}\n\n// Merge will fill any empty for value type attributes on the dst struct using corresponding\n// src attributes if they themselves are not empty. dst and src must be valid same-type structs\n// and dst must be a pointer to struct.\n// It won't merge unexported (private) fields and will do recursively any exported field.\nfunc Merge(dst, src interface{}, opts ...func(*Config)) error {\n\treturn merge(dst, src, opts...)\n}\n\n// MergeWithOverwrite will do the same as Merge except that non-empty dst attributes will be overridden by\n// non-empty src attribute values.\n// Deprecated: use Merge(…) with WithOverride\nfunc MergeWithOverwrite(dst, src interface{}, opts ...func(*Config)) error {\n\treturn merge(dst, src, append(opts, WithOverride)...)\n}\n\n// WithTransformers adds transformers to merge, allowing to customize the merging of some types.\nfunc WithTransformers(transformers Transformers) func(*Config) {\n\treturn func(config *Config) {\n\t\tconfig.Transformers = transformers\n\t}\n}\n\n// WithOverride will make merge override non-empty dst attributes with non-empty src attributes values.\nfunc WithOverride(config *Config) {\n\tconfig.Overwrite = true\n}\n\n// WithOverwriteWithEmptyValue will make merge override non empty dst attributes with empty src attributes values.\nfunc WithOverwriteWithEmptyValue(config *Config) {\n\tconfig.Overwrite = true\n\tconfig.overwriteWithEmptyValue = true\n}\n\n// WithOverrideEmptySlice will make merge override empty dst slice with empty src slice.\nfunc WithOverrideEmptySlice(config *Config) {\n\tconfig.overwriteSliceWithEmptyValue = true\n}\n\n// WithoutDereference prevents dereferencing pointers when evaluating whether they are empty\n// (i.e. a non-nil pointer is never considered empty).\nfunc WithoutDereference(config *Config) {\n\tconfig.ShouldNotDereference = true\n}\n\n// WithAppendSlice will make merge append slices instead of overwriting it.\nfunc WithAppendSlice(config *Config) {\n\tconfig.AppendSlice = true\n}\n\n// WithTypeCheck will make merge check types while overwriting it (must be used with WithOverride).\nfunc WithTypeCheck(config *Config) {\n\tconfig.TypeCheck = true\n}\n\n// WithSliceDeepCopy will merge slice element one by one with Overwrite flag.\nfunc WithSliceDeepCopy(config *Config) {\n\tconfig.sliceDeepCopy = true\n\tconfig.Overwrite = true\n}\n\nfunc merge(dst, src interface{}, opts ...func(*Config)) error {\n\tif dst != nil && reflect.ValueOf(dst).Kind() != reflect.Ptr {\n\t\treturn ErrNonPointerArgument\n\t}\n\tvar (\n\t\tvDst, vSrc reflect.Value\n\t\terr        error\n\t)\n\n\tconfig := &Config{}\n\n\tfor _, opt := range opts {\n\t\topt(config)\n\t}\n\n\tif vDst, vSrc, err = resolveValues(dst, src); err != nil {\n\t\treturn err\n\t}\n\tif vDst.Type() != vSrc.Type() {\n\t\treturn ErrDifferentArgumentsTypes\n\t}\n\treturn deepMerge(vDst, vSrc, make(map[uintptr]*visit), 0, config)\n}\n\n// IsReflectNil is the reflect value provided nil\nfunc isReflectNil(v reflect.Value) bool {\n\tk := v.Kind()\n\tswitch k {\n\tcase reflect.Interface, reflect.Slice, reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr:\n\t\t// Both interface and slice are nil if first word is 0.\n\t\t// Both are always bigger than a word; assume flagIndir.\n\t\treturn v.IsNil()\n\tdefault:\n\t\treturn false\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/imdario/mergo/mergo.go",
    "content": "// Copyright 2013 Dario Castañé. All rights reserved.\n// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Based on src/pkg/reflect/deepequal.go from official\n// golang's stdlib.\n\npackage mergo\n\nimport (\n\t\"errors\"\n\t\"reflect\"\n)\n\n// Errors reported by Mergo when it finds invalid arguments.\nvar (\n\tErrNilArguments                = errors.New(\"src and dst must not be nil\")\n\tErrDifferentArgumentsTypes     = errors.New(\"src and dst must be of same type\")\n\tErrNotSupported                = errors.New(\"only structs, maps, and slices are supported\")\n\tErrExpectedMapAsDestination    = errors.New(\"dst was expected to be a map\")\n\tErrExpectedStructAsDestination = errors.New(\"dst was expected to be a struct\")\n\tErrNonPointerArgument          = errors.New(\"dst must be a pointer\")\n)\n\n// During deepMerge, must keep track of checks that are\n// in progress.  The comparison algorithm assumes that all\n// checks in progress are true when it reencounters them.\n// Visited are stored in a map indexed by 17 * a1 + a2;\ntype visit struct {\n\ttyp  reflect.Type\n\tnext *visit\n\tptr  uintptr\n}\n\n// From src/pkg/encoding/json/encode.go.\nfunc isEmptyValue(v reflect.Value, shouldDereference bool) bool {\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\tif v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\tif shouldDereference {\n\t\t\treturn isEmptyValue(v.Elem(), shouldDereference)\n\t\t}\n\t\treturn false\n\tcase reflect.Func:\n\t\treturn v.IsNil()\n\tcase reflect.Invalid:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc resolveValues(dst, src interface{}) (vDst, vSrc reflect.Value, err error) {\n\tif dst == nil || src == nil {\n\t\terr = ErrNilArguments\n\t\treturn\n\t}\n\tvDst = reflect.ValueOf(dst).Elem()\n\tif vDst.Kind() != reflect.Struct && vDst.Kind() != reflect.Map && vDst.Kind() != reflect.Slice {\n\t\terr = ErrNotSupported\n\t\treturn\n\t}\n\tvSrc = reflect.ValueOf(src)\n\t// We check if vSrc is a pointer to dereference it.\n\tif vSrc.Kind() == reflect.Ptr {\n\t\tvSrc = vSrc.Elem()\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/.gitignore",
    "content": "# Binaries for programs and plugins\n*.exe\n*.dll\n*.so\n*.dylib\n\n# Test binary, build with `go test -c`\n*.test\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n\n# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736\n.glide/\n\n.idea/\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/.travis.yml",
    "content": "{\n  \"language\": \"go\",\n  \"os\": \"linux\",\n  \"group\": \"stable\",\n  \"dist\": \"trusty\",\n  \"script\": \"go get -v && go test -v\"\n}\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/LICENSE",
    "content": "This is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, compile, sell, or\ndistribute this software, either in source code form or as a compiled\nbinary, for any purpose, commercial or non-commercial, and by any\nmeans.\n\nIn jurisdictions that recognize copyright laws, the author or authors\nof this software dedicate any and all copyright interest in the\nsoftware to the public domain. We make this dedication for the benefit\nof the public at large and to the detriment of our heirs and\nsuccessors. We intend this dedication to be an overt act of\nrelinquishment in perpetuity of all present and future rights to this\nsoftware under copyright law.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\nFor more information, please refer to <http://unlicense.org>\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/README.md",
    "content": "<p align=\"center\">\n\n<img src=\"/logo.png\" />\n<br />\n<a href=\"https://goreportcard.com/report/github.com/integrii/flaggy\"><img src=\"https://goreportcard.com/badge/github.com/integrii/flaggy\"></a>\n<a href=\"https://travis-ci.org/integrii/flaggy\"><img src=\"https://travis-ci.org/integrii/flaggy.svg?branch=master\"></a>\n<a href=\"http://godoc.org/github.com/integrii/flaggy\"><img src=\"https://camo.githubusercontent.com/d48cccd1ce67ddf8ba7fc356ec1087f3f7aa6d12/68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f6c696c65696f2f6c696c653f7374617475732e737667\"></a>\n<a href=\"http://unlicense.org/\"><img src=\"https://img.shields.io/badge/license-Unlicense-blue.svg\"></a>\n<a href=\"https://cover.run/go?repo=github.com%2Fintegrii%2Fflaggy&tag=golang-1.10\"><img src=\"https://cover.run/go/github.com/integrii/flaggy.svg?style=flat&tag=golang-1.10\"></a>\n<a href=\"https://github.com/avelino/awesome-go\"><img src=\"https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg\"></a>\n</p>\n\nSensible and _fast_ command-line flag parsing with excellent support for **subcommands** and **positional values**. Flags can be at any position. Flaggy has no required project or package layout like [Cobra requires](https://github.com/spf13/cobra/issues/641), and **no external dependencies**!\n\nCheck out the [godoc](http://godoc.org/github.com/integrii/flaggy), [examples directory](https://github.com/integrii/flaggy/tree/master/examples), and [examples in this readme](https://github.com/integrii/flaggy#super-simple-example) to get started quickly. You can also read the Flaggy introduction post with helpful examples [on my weblog](https://ericgreer.info/post/a-better-flags-package-for-go/).\n\n# Installation\n\n`go get -u github.com/integrii/flaggy`\n\n# Key Features\n\n- Very easy to use ([see examples below](https://github.com/integrii/flaggy#super-simple-example))\n- 35 different flag types supported\n- Any flag can be at any position\n- Pretty and readable help output by default\n- Positional subcommands\n- Positional parameters\n- Suggested subcommands when a subcommand is typo'd\n- Nested subcommands\n- Both global and subcommand specific flags\n- Both global and subcommand specific positional parameters\n- [Customizable help templates for both the global command and subcommands](https://github.com/integrii/flaggy/blob/master/examples/customTemplate/main.go)\n- Customizable appended/prepended help messages for both the global command and subcommands\n- Simple function that displays help followed by a custom message string\n- Flags and subcommands may have both a short and long name\n- Unlimited trailing arguments after a `--`\n- Flags can use a single dash or double dash (`--flag`, `-flag`, `-f`, `--f`)\n- Flags can have `=` assignment operators, or use a space (`--flag=value`, `--flag value`)\n- Flags support single quote globs with spaces (`--flag 'this is all one value'`)\n- Flags of slice types can be passed multiple times (`-f one -f two -f three`)\n- Optional but default version output with `--version`\n- Optional but default help output with `-h` or `--help`\n- Optional but default help output when any invalid or unknown parameter is passed\n- It's _fast_. All flag and subcommand parsing takes less than `1ms` in most programs.\n\n# Example Help Output\n\n```\ntestCommand - Description goes here.  Get more information at http://flaggy.\nThis is a prepend for help\n\n  Usage:\n    testCommand [subcommandA|subcommandB|subcommandC] [testPositionalA] [testPositionalB]\n\n  Positional Variables:\n    testPositionalA   Test positional A does some things with a positional value. (Required)\n    testPositionalB   Test positional B does some less than serious things with a positional value.\n\n  Subcommands:\n    subcommandA (a)   Subcommand A is a command that does stuff\n    subcommandB (b)   Subcommand B is a command that does other stuff\n    subcommandC (c)   Subcommand C is a command that does SERIOUS stuff\n\n  Flags:\n       --version        Displays the program version string.\n    -h --help           Displays help with available flag, subcommand, and positional value parameters.\n    -s --stringFlag     This is a test string flag that does some stringy string stuff.\n    -i --intFlg         This is a test int flag that does some interesting int stuff. (default: 5)\n    -b --boolFlag       This is a test bool flag that does some booly bool stuff. (default: true)\n    -d --durationFlag   This is a test duration flag that does some untimely stuff. (default: 1h23s)\n\nThis is an append for help\nThis is a help add-on message\n```\n\n# Super Simple Example\n\n`./yourApp -f test`\n\n```go\n// Declare variables and their defaults\nvar stringFlag = \"defaultValue\"\n\n// Add a flag\nflaggy.String(&stringFlag, \"f\", \"flag\", \"A test string flag\")\n\n// Parse the flag\nflaggy.Parse()\n\n// Use the flag\nprint(stringFlag)\n```\n\n\n# Example with Subcommand\n\n`./yourApp subcommandExample -f test`\n\n```go\n// Declare variables and their defaults\nvar stringFlag = \"defaultValue\"\n\n// Create the subcommand\nsubcommand := flaggy.NewSubcommand(\"subcommandExample\")\n\n// Add a flag to the subcommand\nsubcommand.String(&stringFlag, \"f\", \"flag\", \"A test string flag\")\n\n// Add the subcommand to the parser at position 1\nflaggy.AttachSubcommand(subcommand, 1)\n\n// Parse the subcommand and all flags\nflaggy.Parse()\n\n// Use the flag\nprint(stringFlag)\n```\n\n# Example with Nested Subcommands, Various Flags and Trailing Arguments\n\n`./yourApp subcommandExample --flag=5 nestedSubcommand -t test -y -- trailingArg`\n\n```go\n// Declare variables and their defaults\nvar stringFlagF = \"defaultValueF\"\nvar intFlagT = 3\nvar boolFlagB bool\n\n// Create the subcommands\nsubcommandExample := flaggy.NewSubcommand(\"subcommandExample\")\nnestedSubcommand := flaggy.NewSubcommand(\"nestedSubcommand\")\n\n// Add a flag to both subcommands\nsubcommandExample.String(&stringFlagF, \"t\", \"testFlag\", \"A test string flag\")\nnestedSubcommand.Int(&intFlagT, \"f\", \"flag\", \"A test int flag\")\n\n// add a global bool flag for fun\nflaggy.Bool(&boolFlagB, \"y\", \"yes\", \"A sample boolean flag\")\n\n// attach the nested subcommand to the parent subcommand at position 1\nsubcommandExample.AttachSubcommand(nestedSubcommand, 1)\n// attach the base subcommand to the parser at position 1\nflaggy.AttachSubcommand(subcommandExample, 1)\n\n// Parse everything, then use the flags and trailing arguments\nflaggy.Parse()\nprint(stringFlagF)\nprint(intFlagT)\nprint(boolFlagB)\nprint(flaggy.TrailingArguments[0])\n```\n\n# Supported Flag Types\n\nFlaggy has specific flag types for all basic types included in go as well as a slice of any of those types.  This includes all of the following types:\n\n- string and []string\n- bool and []bool\n- all int types and all []int types\n- all float types and all []float types\n- all uint types and all []uint types\n\nOther more specific types can also be used as flag types.  They will be automatically parsed using the standard parsing functions included with those types in those packages.  This includes:\n\n- net.IP\n- []net.IP\n- net.HardwareAddr\n- []net.HardwareAddr\n- net.IPMask\n- []net.IPMask\n- time.Duration\n- []time.Duration\n\n# An Example Program\n\nBest practice when using flaggy includes setting your program's name, description, and version (at build time) as shown in this example program.\n\n```go\npackage main\n\nimport \"github.com/integrii/flaggy\"\n\n// Make a variable for the version which will be set at build time.\nvar version = \"unknown\"\n\n// Keep subcommands as globals so you can easily check if they were used later on.\nvar mySubcommand *flaggy.Subcommand\n\n// Setup the variables you want your incoming flags to set.\nvar testVar string\n\n// If you would like an environment variable as the default for a value, just populate the flag\n// with the value of the environment by default.  If the flag corresponding to this value is not\n// used, then it will not be changed.\nvar myVar = os.Getenv(\"MY_VAR\")\n\n\nfunc init() {\n  // Set your program's name and description.  These appear in help output.\n  flaggy.SetName(\"Test Program\")\n  flaggy.SetDescription(\"A little example program\")\n\n  // You can disable various things by changing bools on the default parser\n  // (or your own parser if you have created one).\n  flaggy.DefaultParser.ShowHelpOnUnexpected = false\n\n  // You can set a help prepend or append on the default parser.\n  flaggy.DefaultParser.AdditionalHelpPrepend = \"http://github.com/integrii/flaggy\"\n  \n  // Add a flag to the main program (this will be available in all subcommands as well).\n  flaggy.String(&testVar, \"tv\", \"testVariable\", \"A variable just for testing things!\")\n\n  // Create any subcommands and set their parameters.\n  mySubcommand = flaggy.NewSubcommand(\"mySubcommand\")\n  mySubcommand.Description = \"My great subcommand!\"\n  \n  // Add a flag to the subcommand.\n  mySubcommand.String(&myVar, \"mv\", \"myVariable\", \"A variable just for me!\")\n\n  // Set the version and parse all inputs into variables.\n  flaggy.SetVersion(version)\n  flaggy.Parse()\n}\n\nfunc main(){\n    if mySubcommand.Used {\n      ...\n    }\n}\n```\n\nThen, you can use the following build command to set the `version` variable in the above program at build time.\n\n```bash\n# build your app and set the version string\n$ go build -ldflags='-X main.version=1.0.3-a3db3'\n$ ./yourApp version\nVersion: 1.0.3-a3db3\n$ ./yourApp --help\nTest Program - A little example program\nhttp://github.com/integrii/flaggy\n```\n\n# Contributions\n\nPlease feel free to open an issue if you find any bugs or see any features that make sense. Pull requests will be reviewed and accepted if they make sense, but it is always wise to submit a proposal issue before any major changes.\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/argumentParser.go",
    "content": "package flaggy\n\n// setValueForParsers sets the value for a specified key in the\n// specified parsers (which normally include a Parser and Subcommand).\n// The return values represent the key being set, and any errors\n// returned when setting the key, such as failures to convert the string\n// into the appropriate flag value.  We stop assigning values as soon\n// as we find a any parser that accepts it.\nfunc setValueForParsers(key string, value string, parsers ...ArgumentParser) (bool, error) {\n\n\tfor _, p := range parsers {\n\t\tvalueWasSet, err := p.SetValueForKey(key, value)\n\t\tif err != nil {\n\t\t\treturn valueWasSet, err\n\t\t}\n\t\tif valueWasSet {\n\t\t\treturn true, nil\n\t\t}\n\t}\n\n\treturn false, nil\n}\n\n// ArgumentParser represents a parser or subcommand\ntype ArgumentParser interface {\n\tSetValueForKey(key string, value string) (bool, error)\n}\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/flag.go",
    "content": "package flaggy\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// Flag holds the base methods for all flag types\ntype Flag struct {\n\tShortName     string\n\tLongName      string\n\tDescription   string\n\trawValue      string // the value as a string before being parsed\n\tHidden        bool   // indicates this flag should be hidden from help and suggestions\n\tAssignmentVar interface{}\n\tdefaultValue  string // the value (as a string), that was set by default before any parsing and assignment\n\tparsed        bool   // indicates that this flag has already been parsed\n}\n\n// HasName indicates that this flag's short or long name matches the\n// supplied name string\nfunc (f *Flag) HasName(name string) bool {\n\tname = strings.TrimSpace(name)\n\tif f.ShortName == name || f.LongName == name {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// identifyAndAssignValue identifies the type of the incoming value\n// and assigns it to the AssignmentVar pointer's target value.  If\n// the value is a type that needs parsing, that is performed as well.\nfunc (f *Flag) identifyAndAssignValue(value string) error {\n\n\tvar err error\n\n\t// Only parse this flag default value once. This keeps us from\n\t// overwriting the default value in help output\n\tif !f.parsed {\n\t\tf.parsed = true\n\t\t// parse the default value as a string and remember it for help output\n\t\tf.defaultValue, err = f.returnAssignmentVarValueAsString()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tdebugPrint(\"attempting to assign value\", value, \"to flag\", f.LongName)\n\tf.rawValue = value // remember the raw value\n\n\t// depending on the type of the assignment variable, we convert the\n\t// incoming string and assign it.  We only use pointers to variables\n\t// in flagy.  No returning vars by value.\n\tswitch f.AssignmentVar.(type) {\n\tcase *string:\n\t\tv, _ := (f.AssignmentVar).(*string)\n\t\t*v = value\n\tcase *[]string:\n\t\tv := f.AssignmentVar.(*[]string)\n\t\tsplitString := strings.Split(value, \",\")\n\t\tnew := append(*v, splitString...)\n\t\t*v = new\n\tcase *bool:\n\t\tv, err := strconv.ParseBool(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ta, _ := (f.AssignmentVar).(*bool)\n\t\t*a = v\n\tcase *[]bool:\n\t\t// parse the incoming bool\n\t\tb, err := strconv.ParseBool(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// cast the assignment var\n\t\texisting := f.AssignmentVar.(*[]bool)\n\t\t// deref the assignment var and append to it\n\t\tv := append(*existing, b)\n\t\t// pointer the new value and assign it\n\t\ta, _ := (f.AssignmentVar).(*[]bool)\n\t\t*a = v\n\tcase *time.Duration:\n\t\tv, err := time.ParseDuration(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ta, _ := (f.AssignmentVar).(*time.Duration)\n\t\t*a = v\n\tcase *[]time.Duration:\n\t\tt, err := time.ParseDuration(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*[]time.Duration)\n\t\t// deref the assignment var and append to it\n\t\tv := append(*existing, t)\n\t\t// pointer the new value and assign it\n\t\ta, _ := (f.AssignmentVar).(*[]time.Duration)\n\t\t*a = v\n\tcase *float32:\n\t\tv, err := strconv.ParseFloat(value, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfloat := float32(v)\n\t\ta, _ := (f.AssignmentVar).(*float32)\n\t\t*a = float\n\tcase *[]float32:\n\t\tv, err := strconv.ParseFloat(value, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfloat := float32(v)\n\t\texisting := f.AssignmentVar.(*[]float32)\n\t\tnew := append(*existing, float)\n\t\t*existing = new\n\tcase *float64:\n\t\tv, err := strconv.ParseFloat(value, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ta, _ := (f.AssignmentVar).(*float64)\n\t\t*a = v\n\tcase *[]float64:\n\t\tv, err := strconv.ParseFloat(value, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*[]float64)\n\t\tnew := append(*existing, v)\n\n\t\t*existing = new\n\tcase *int:\n\t\tv, err := strconv.Atoi(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\te := f.AssignmentVar.(*int)\n\t\t*e = v\n\tcase *[]int:\n\t\tv, err := strconv.Atoi(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*[]int)\n\t\tnew := append(*existing, v)\n\t\t*existing = new\n\tcase *uint:\n\t\tv, err := strconv.ParseUint(value, 10, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*uint)\n\t\t*existing = uint(v)\n\tcase *[]uint:\n\t\tv, err := strconv.ParseUint(value, 10, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*[]uint)\n\t\tnew := append(*existing, uint(v))\n\t\t*existing = new\n\tcase *uint64:\n\t\tv, err := strconv.ParseUint(value, 10, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*uint64)\n\t\t*existing = v\n\tcase *[]uint64:\n\t\tv, err := strconv.ParseUint(value, 10, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*[]uint64)\n\t\tnew := append(*existing, v)\n\t\t*existing = new\n\tcase *uint32:\n\t\tv, err := strconv.ParseUint(value, 10, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*uint32)\n\t\t*existing = uint32(v)\n\tcase *[]uint32:\n\t\tv, err := strconv.ParseUint(value, 10, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*[]uint32)\n\t\tnew := append(*existing, uint32(v))\n\t\t*existing = new\n\tcase *uint16:\n\t\tv, err := strconv.ParseUint(value, 10, 16)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tval := uint16(v)\n\t\texisting := f.AssignmentVar.(*uint16)\n\t\t*existing = val\n\tcase *[]uint16:\n\t\tv, err := strconv.ParseUint(value, 10, 16)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*[]uint16)\n\t\tnew := append(*existing, uint16(v))\n\t\t*existing = new\n\tcase *uint8:\n\t\tv, err := strconv.ParseUint(value, 10, 8)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tval := uint8(v)\n\t\texisting := f.AssignmentVar.(*uint8)\n\t\t*existing = val\n\tcase *[]uint8:\n\t\tvar newSlice []uint8\n\n\t\tv, err := strconv.ParseUint(value, 10, 8)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnewV := uint8(v)\n\t\texisting := f.AssignmentVar.(*[]uint8)\n\t\tnewSlice = append(*existing, newV)\n\t\t*existing = newSlice\n\tcase *int64:\n\t\tv, err := strconv.ParseInt(value, 10, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*int64)\n\t\t*existing = v\n\tcase *[]int64:\n\t\tv, err := strconv.ParseInt(value, 10, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texistingSlice := f.AssignmentVar.(*[]int64)\n\t\tnewSlice := append(*existingSlice, v)\n\t\t*existingSlice = newSlice\n\tcase *int32:\n\t\tv, err := strconv.ParseInt(value, 10, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconverted := int32(v)\n\t\texisting := f.AssignmentVar.(*int32)\n\t\t*existing = converted\n\tcase *[]int32:\n\t\tv, err := strconv.ParseInt(value, 10, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texistingSlice := f.AssignmentVar.(*[]int32)\n\t\tnewSlice := append(*existingSlice, int32(v))\n\t\t*existingSlice = newSlice\n\tcase *int16:\n\t\tv, err := strconv.ParseInt(value, 10, 16)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconverted := int16(v)\n\t\texisting := f.AssignmentVar.(*int16)\n\t\t*existing = converted\n\tcase *[]int16:\n\t\tv, err := strconv.ParseInt(value, 10, 16)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texistingSlice := f.AssignmentVar.(*[]int16)\n\t\tnewSlice := append(*existingSlice, int16(v))\n\t\t*existingSlice = newSlice\n\tcase *int8:\n\t\tv, err := strconv.ParseInt(value, 10, 8)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconverted := int8(v)\n\t\texisting := f.AssignmentVar.(*int8)\n\t\t*existing = converted\n\tcase *[]int8:\n\t\tv, err := strconv.ParseInt(value, 10, 8)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texistingSlice := f.AssignmentVar.(*[]int8)\n\t\tnewSlice := append(*existingSlice, int8(v))\n\t\t*existingSlice = newSlice\n\tcase *net.IP:\n\t\tv := net.ParseIP(value)\n\t\texisting := f.AssignmentVar.(*net.IP)\n\t\t*existing = v\n\tcase *[]net.IP:\n\t\tv := net.ParseIP(value)\n\t\texisting := f.AssignmentVar.(*[]net.IP)\n\t\tnew := append(*existing, v)\n\t\t*existing = new\n\tcase *net.HardwareAddr:\n\t\tv, err := net.ParseMAC(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*net.HardwareAddr)\n\t\t*existing = v\n\tcase *[]net.HardwareAddr:\n\t\tv, err := net.ParseMAC(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texisting := f.AssignmentVar.(*[]net.HardwareAddr)\n\t\tnew := append(*existing, v)\n\t\t*existing = new\n\tcase *net.IPMask:\n\t\tv := net.IPMask(net.ParseIP(value).To4())\n\t\texisting := f.AssignmentVar.(*net.IPMask)\n\t\t*existing = v\n\tcase *[]net.IPMask:\n\t\tv := net.IPMask(net.ParseIP(value).To4())\n\t\texisting := f.AssignmentVar.(*[]net.IPMask)\n\t\tnew := append(*existing, v)\n\t\t*existing = new\n\tdefault:\n\t\treturn errors.New(\"Unknown flag assignmentVar supplied in flag \" + f.LongName + \" \" + f.ShortName)\n\t}\n\n\treturn err\n}\n\nconst argIsPositional = \"positional\"       // subcommand or positional value\nconst argIsFlagWithSpace = \"flagWithSpace\" // -f path or --file path\nconst argIsFlagWithValue = \"flagWithValue\" // -f=path or --file=path\nconst argIsFinal = \"final\"                 // the final argument only '--'\n\n// determineArgType determines if the specified arg is a flag with space\n// separated value, a flag with a connected value, or neither (positional)\nfunc determineArgType(arg string) string {\n\n\t// if the arg is --, then its the final arg\n\tif arg == \"--\" {\n\t\treturn argIsFinal\n\t}\n\n\t// if it has the prefix --, then its a long flag\n\tif strings.HasPrefix(arg, \"--\") {\n\t\t// if it contains an equals, it is a joined value\n\t\tif strings.Contains(arg, \"=\") {\n\t\t\treturn argIsFlagWithValue\n\t\t}\n\t\treturn argIsFlagWithSpace\n\t}\n\n\t// if it has the prefix -, then its a short flag\n\tif strings.HasPrefix(arg, \"-\") {\n\t\t// if it contains an equals, it is a joined value\n\t\tif strings.Contains(arg, \"=\") {\n\t\t\treturn argIsFlagWithValue\n\t\t}\n\t\treturn argIsFlagWithSpace\n\t}\n\n\treturn argIsPositional\n}\n\n// parseArgWithValue parses a key=value concatenated argument into a key and\n// value\nfunc parseArgWithValue(arg string) (key string, value string) {\n\n\t// remove up to two minuses from start of flag\n\targ = strings.TrimPrefix(arg, \"-\")\n\targ = strings.TrimPrefix(arg, \"-\")\n\n\t// debugPrint(\"parseArgWithValue parsing\", arg)\n\n\t// break at the equals\n\targs := strings.SplitN(arg, \"=\", 2)\n\n\t// if its a bool arg, with no explicit value, we return a blank\n\tif len(args) == 1 {\n\t\treturn args[0], \"\"\n\t}\n\n\t// if its a key and value pair, we return those\n\tif len(args) == 2 {\n\t\t// debugPrint(\"parseArgWithValue parsed\", args[0], args[1])\n\t\treturn args[0], args[1]\n\t}\n\n\tfmt.Println(\"Warning: attempted to parseArgWithValue but did not have correct parameter count.\", arg, \"->\", args)\n\treturn \"\", \"\"\n}\n\n// parseFlagToName parses a flag with space value down to a key name:\n//     --path -> path\n//     -p -> p\nfunc parseFlagToName(arg string) string {\n\t// remove minus from start\n\targ = strings.TrimLeft(arg, \"-\")\n\targ = strings.TrimLeft(arg, \"-\")\n\treturn arg\n}\n\n// flagIsBool determines if the flag is a bool within the specified parser\n// and subcommand's context\nfunc flagIsBool(sc *Subcommand, p *Parser, key string) bool {\n\tfor _, f := range append(sc.Flags, p.Flags...) {\n\t\tif f.HasName(key) {\n\t\t\t_, isBool := f.AssignmentVar.(*bool)\n\t\t\t_, isBoolSlice := f.AssignmentVar.(*[]bool)\n\t\t\tif isBool || isBoolSlice {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\n\t// by default, the answer is false\n\treturn false\n}\n\n// returnAssignmentVarValueAsString returns the value of the flag's\n// assignment variable as a string.  This is used to display the\n// default value of flags before they are assigned (like when help is output).\nfunc (f *Flag) returnAssignmentVarValueAsString() (string, error) {\n\n\tdebugPrint(\"returning current value of assignment var of flag\", f.LongName)\n\n\tvar err error\n\n\t// depending on the type of the assignment variable, we convert the\n\t// incoming string and assign it.  We only use pointers to variables\n\t// in flagy.  No returning vars by value.\n\tswitch f.AssignmentVar.(type) {\n\tcase *string:\n\t\tv, _ := (f.AssignmentVar).(*string)\n\t\treturn *v, err\n\tcase *[]string:\n\t\tv := f.AssignmentVar.(*[]string)\n\t\treturn strings.Join(*v, \",\"), err\n\tcase *bool:\n\t\ta, _ := (f.AssignmentVar).(*bool)\n\t\treturn strconv.FormatBool(*a), err\n\tcase *[]bool:\n\t\tvalue := f.AssignmentVar.(*[]bool)\n\t\tvar ss []string\n\t\tfor _, b := range *value {\n\t\t\tss = append(ss, strconv.FormatBool(b))\n\t\t}\n\t\treturn strings.Join(ss, \",\"), err\n\tcase *time.Duration:\n\t\ta := f.AssignmentVar.(*time.Duration)\n\t\treturn (*a).String(), err\n\tcase *[]time.Duration:\n\t\ttds := f.AssignmentVar.(*[]time.Duration)\n\t\tvar asSlice []string\n\t\tfor _, td := range *tds {\n\t\t\tasSlice = append(asSlice, td.String())\n\t\t}\n\t\treturn strings.Join(asSlice, \",\"), err\n\tcase *float32:\n\t\ta := f.AssignmentVar.(*float32)\n\t\treturn strconv.FormatFloat(float64(*a), 'f', 2, 32), err\n\tcase *[]float32:\n\t\tv := f.AssignmentVar.(*[]float32)\n\t\tvar strSlice []string\n\t\tfor _, f := range *v {\n\t\t\tformatted := strconv.FormatFloat(float64(f), 'f', 2, 32)\n\t\t\tstrSlice = append(strSlice, formatted)\n\t\t}\n\t\treturn strings.Join(strSlice, \",\"), err\n\tcase *float64:\n\t\ta := f.AssignmentVar.(*float64)\n\t\treturn strconv.FormatFloat(float64(*a), 'f', 2, 64), err\n\tcase *[]float64:\n\t\tv := f.AssignmentVar.(*[]float64)\n\t\tvar strSlice []string\n\t\tfor _, f := range *v {\n\t\t\tformatted := strconv.FormatFloat(float64(f), 'f', 2, 64)\n\t\t\tstrSlice = append(strSlice, formatted)\n\t\t}\n\t\treturn strings.Join(strSlice, \",\"), err\n\tcase *int:\n\t\ta := f.AssignmentVar.(*int)\n\t\treturn strconv.Itoa(*a), err\n\tcase *[]int:\n\t\tval := f.AssignmentVar.(*[]int)\n\t\tvar strSlice []string\n\t\tfor _, i := range *val {\n\t\t\tstr := strconv.Itoa(i)\n\t\t\tstrSlice = append(strSlice, str)\n\t\t}\n\t\treturn strings.Join(strSlice, \",\"), err\n\tcase *uint:\n\t\tv := f.AssignmentVar.(*uint)\n\t\treturn strconv.FormatUint(uint64(*v), 10), err\n\tcase *[]uint:\n\t\tvalues := f.AssignmentVar.(*[]uint)\n\t\tvar strVars []string\n\t\tfor _, i := range *values {\n\t\t\tstrVars = append(strVars, strconv.FormatUint(uint64(i), 10))\n\t\t}\n\t\treturn strings.Join(strVars, \",\"), err\n\tcase *uint64:\n\t\tv := f.AssignmentVar.(*uint64)\n\t\treturn strconv.FormatUint(*v, 10), err\n\tcase *[]uint64:\n\t\tvalues := f.AssignmentVar.(*[]uint64)\n\t\tvar strVars []string\n\t\tfor _, i := range *values {\n\t\t\tstrVars = append(strVars, strconv.FormatUint(i, 10))\n\t\t}\n\t\treturn strings.Join(strVars, \",\"), err\n\tcase *uint32:\n\t\tv := f.AssignmentVar.(*uint32)\n\t\treturn strconv.FormatUint(uint64(*v), 10), err\n\tcase *[]uint32:\n\t\tvalues := f.AssignmentVar.(*[]uint32)\n\t\tvar strVars []string\n\t\tfor _, i := range *values {\n\t\t\tstrVars = append(strVars, strconv.FormatUint(uint64(i), 10))\n\t\t}\n\t\treturn strings.Join(strVars, \",\"), err\n\tcase *uint16:\n\t\tv := f.AssignmentVar.(*uint16)\n\t\treturn strconv.FormatUint(uint64(*v), 10), err\n\tcase *[]uint16:\n\t\tvalues := f.AssignmentVar.(*[]uint16)\n\t\tvar strVars []string\n\t\tfor _, i := range *values {\n\t\t\tstrVars = append(strVars, strconv.FormatUint(uint64(i), 10))\n\t\t}\n\t\treturn strings.Join(strVars, \",\"), err\n\tcase *uint8:\n\t\tv := f.AssignmentVar.(*uint8)\n\t\treturn strconv.FormatUint(uint64(*v), 10), err\n\tcase *[]uint8:\n\t\tvalues := f.AssignmentVar.(*[]uint8)\n\t\tvar strVars []string\n\t\tfor _, i := range *values {\n\t\t\tstrVars = append(strVars, strconv.FormatUint(uint64(i), 10))\n\t\t}\n\t\treturn strings.Join(strVars, \",\"), err\n\tcase *int64:\n\t\tv := f.AssignmentVar.(*int64)\n\t\treturn strconv.FormatInt(int64(*v), 10), err\n\tcase *[]int64:\n\t\tvalues := f.AssignmentVar.(*[]int64)\n\t\tvar strVars []string\n\t\tfor _, i := range *values {\n\t\t\tstrVars = append(strVars, strconv.FormatInt(i, 10))\n\t\t}\n\t\treturn strings.Join(strVars, \",\"), err\n\tcase *int32:\n\t\tv := f.AssignmentVar.(*int32)\n\t\treturn strconv.FormatInt(int64(*v), 10), err\n\tcase *[]int32:\n\t\tvalues := f.AssignmentVar.(*[]int32)\n\t\tvar strVars []string\n\t\tfor _, i := range *values {\n\t\t\tstrVars = append(strVars, strconv.FormatInt(int64(i), 10))\n\t\t}\n\t\treturn strings.Join(strVars, \",\"), err\n\tcase *int16:\n\t\tv := f.AssignmentVar.(*int16)\n\t\treturn strconv.FormatInt(int64(*v), 10), err\n\tcase *[]int16:\n\t\tvalues := f.AssignmentVar.(*[]int16)\n\t\tvar strVars []string\n\t\tfor _, i := range *values {\n\t\t\tstrVars = append(strVars, strconv.FormatInt(int64(i), 10))\n\t\t}\n\t\treturn strings.Join(strVars, \",\"), err\n\tcase *int8:\n\t\tv := f.AssignmentVar.(*int8)\n\t\treturn strconv.FormatInt(int64(*v), 10), err\n\tcase *[]int8:\n\t\tvalues := f.AssignmentVar.(*[]int8)\n\t\tvar strVars []string\n\t\tfor _, i := range *values {\n\t\t\tstrVars = append(strVars, strconv.FormatInt(int64(i), 10))\n\t\t}\n\t\treturn strings.Join(strVars, \",\"), err\n\tcase *net.IP:\n\t\tval := f.AssignmentVar.(*net.IP)\n\t\treturn val.String(), err\n\tcase *[]net.IP:\n\t\tval := f.AssignmentVar.(*[]net.IP)\n\t\tvar strSlice []string\n\t\tfor _, ip := range *val {\n\t\t\tstrSlice = append(strSlice, ip.String())\n\t\t}\n\t\treturn strings.Join(strSlice, \",\"), err\n\tcase *net.HardwareAddr:\n\t\tval := f.AssignmentVar.(*net.HardwareAddr)\n\t\treturn val.String(), err\n\tcase *[]net.HardwareAddr:\n\t\tval := f.AssignmentVar.(*[]net.HardwareAddr)\n\t\tvar strSlice []string\n\t\tfor _, mac := range *val {\n\t\t\tstrSlice = append(strSlice, mac.String())\n\t\t}\n\t\treturn strings.Join(strSlice, \",\"), err\n\tcase *net.IPMask:\n\t\tval := f.AssignmentVar.(*net.IPMask)\n\t\treturn val.String(), err\n\tcase *[]net.IPMask:\n\t\tval := f.AssignmentVar.(*[]net.IPMask)\n\t\tvar strSlice []string\n\t\tfor _, m := range *val {\n\t\t\tstrSlice = append(strSlice, m.String())\n\t\t}\n\t\treturn strings.Join(strSlice, \",\"), err\n\tdefault:\n\t\treturn \"\", errors.New(\"Unknown flag assignmentVar found in flag \" + f.LongName + \" \" + f.ShortName + \". Type not supported: \" + reflect.TypeOf(f.AssignmentVar).String())\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/help.go",
    "content": "package flaggy\n\n// defaultHelpTemplate is the help template used by default\n// {{if (or (or (gt (len .StringFlags) 0) (gt (len .IntFlags) 0)) (gt (len .BoolFlags) 0))}}\n// {{if (or (gt (len .StringFlags) 0) (gt (len .BoolFlags) 0))}}\nconst defaultHelpTemplate = `{{.CommandName}}{{if .Description}} - {{.Description}}{{end}}{{if .PrependMessage}}\n{{.PrependMessage}}{{end}}\n{{if .UsageString}}\n  Usage:\n    {{.UsageString}}{{end}}{{if .Positionals}}\n\n  Positional Variables: {{range .Positionals}}\n    {{.Name}}  {{.Spacer}}{{if .Description}} {{.Description}}{{end}}{{if .DefaultValue}} (default: {{.DefaultValue}}){{else}}{{if .Required}} (Required){{end}}{{end}}{{end}}{{end}}{{if .Subcommands}}\n\n  Subcommands: {{range .Subcommands}}\n    {{.LongName}}{{if .ShortName}} ({{.ShortName}}){{end}}{{if .Position}}{{if gt .Position 1}}  (position {{.Position}}){{end}}{{end}}{{if .Description}}   {{.Spacer}}{{.Description}}{{end}}{{end}}\n{{end}}{{if (gt (len .Flags) 0)}}\n  Flags: {{if .Flags}}{{range .Flags}}\n    {{if .ShortName}}-{{.ShortName}} {{else}}   {{end}}{{if .LongName}}--{{.LongName}}{{end}}{{if .Description}}   {{.Spacer}}{{.Description}}{{if .DefaultValue}} (default: {{.DefaultValue}}){{end}}{{end}}{{end}}{{end}}\n{{end}}{{if .AppendMessage}}{{.AppendMessage}}\n{{end}}{{if .Message}}\n{{.Message}}{{end}}\n`\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/helpValues.go",
    "content": "package flaggy\n\nimport (\n\t\"log\"\n\t\"reflect\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\n// Help represents the values needed to render a Help page\ntype Help struct {\n\tSubcommands    []HelpSubcommand\n\tPositionals    []HelpPositional\n\tFlags          []HelpFlag\n\tUsageString    string\n\tCommandName    string\n\tPrependMessage string\n\tAppendMessage  string\n\tMessage        string\n\tDescription    string\n}\n\n// HelpSubcommand is used to template subcommand Help output\ntype HelpSubcommand struct {\n\tShortName   string\n\tLongName    string\n\tDescription string\n\tPosition    int\n\tSpacer      string\n}\n\n// HelpPositional is used to template positional Help output\ntype HelpPositional struct {\n\tName         string\n\tDescription  string\n\tRequired     bool\n\tPosition     int\n\tDefaultValue string\n\tSpacer       string\n}\n\n// HelpFlag is used to template string flag Help output\ntype HelpFlag struct {\n\tShortName    string\n\tLongName     string\n\tDescription  string\n\tDefaultValue string\n\tSpacer       string\n}\n\n// ExtractValues extracts Help template values from a subcommand and its parent\n// parser. The parser is required in order to detect default flag settings\n// for help and version output.\nfunc (h *Help) ExtractValues(p *Parser, message string) {\n\n\t// accept message string for output\n\th.Message = message\n\n\t// extract Help values from the current subcommand in context\n\t// prependMessage string\n\th.PrependMessage = p.subcommandContext.AdditionalHelpPrepend\n\t// appendMessage  string\n\th.AppendMessage = p.subcommandContext.AdditionalHelpAppend\n\t// command name\n\th.CommandName = p.subcommandContext.Name\n\t// description\n\th.Description = p.subcommandContext.Description\n\n\tmaxLength := getLongestNameLength(p.subcommandContext.Subcommands, 0)\n\n\t// subcommands    []HelpSubcommand\n\tfor _, cmd := range p.subcommandContext.Subcommands {\n\t\tif cmd.Hidden {\n\t\t\tcontinue\n\t\t}\n\t\tnewHelpSubcommand := HelpSubcommand{\n\t\t\tShortName:   cmd.ShortName,\n\t\t\tLongName:    cmd.Name,\n\t\t\tDescription: cmd.Description,\n\t\t\tPosition:    cmd.Position,\n\t\t\tSpacer:      makeSpacer(cmd.Name, maxLength),\n\t\t}\n\t\th.Subcommands = append(h.Subcommands, newHelpSubcommand)\n\t}\n\n\tmaxLength = getLongestNameLength(p.subcommandContext.PositionalFlags, 0)\n\n\t// parse positional flags into help output structs\n\tfor _, pos := range p.subcommandContext.PositionalFlags {\n\t\tif pos.Hidden {\n\t\t\tcontinue\n\t\t}\n\t\tnewHelpPositional := HelpPositional{\n\t\t\tName:         pos.Name,\n\t\t\tPosition:     pos.Position,\n\t\t\tDescription:  pos.Description,\n\t\t\tRequired:     pos.Required,\n\t\t\tDefaultValue: pos.defaultValue,\n\t\t\tSpacer:       makeSpacer(pos.Name, maxLength),\n\t\t}\n\t\th.Positionals = append(h.Positionals, newHelpPositional)\n\t}\n\n\tmaxLength = len(versionFlagLongName)\n\tif len(helpFlagLongName) > maxLength {\n\t\tmaxLength = len(helpFlagLongName)\n\t}\n\tmaxLength = getLongestNameLength(p.subcommandContext.Flags, maxLength)\n\tmaxLength = getLongestNameLength(p.Flags, maxLength)\n\n\t// if the built-in version flag is enabled, then add it as a help flag\n\tif p.ShowVersionWithVersionFlag {\n\t\tdefaultVersionFlag := HelpFlag{\n\t\t\tShortName:    \"\",\n\t\t\tLongName:     versionFlagLongName,\n\t\t\tDescription:  \"Displays the program version string.\",\n\t\t\tDefaultValue: \"\",\n\t\t\tSpacer:       makeSpacer(versionFlagLongName, maxLength),\n\t\t}\n\t\th.Flags = append(h.Flags, defaultVersionFlag)\n\t}\n\n\t// if the built-in help flag exists, then add it as a help flag\n\tif p.ShowHelpWithHFlag {\n\t\tdefaultHelpFlag := HelpFlag{\n\t\t\tShortName:    helpFlagShortName,\n\t\t\tLongName:     helpFlagLongName,\n\t\t\tDescription:  \"Displays help with available flag, subcommand, and positional value parameters.\",\n\t\t\tDefaultValue: \"\",\n\t\t\tSpacer:       makeSpacer(helpFlagLongName, maxLength),\n\t\t}\n\t\th.Flags = append(h.Flags, defaultHelpFlag)\n\t}\n\n\t// go through every flag in the subcommand and add it to help output\n\th.parseFlagsToHelpFlags(p.subcommandContext.Flags, maxLength)\n\n\t// go through every flag in the parent parser and add it to help output\n\th.parseFlagsToHelpFlags(p.Flags, maxLength)\n\n\t// formulate the usage string\n\t// first, we capture all the command and positional names by position\n\tcommandsByPosition := make(map[int]string)\n\tfor _, pos := range p.subcommandContext.PositionalFlags {\n\t\tif pos.Hidden {\n\t\t\tcontinue\n\t\t}\n\t\tif len(commandsByPosition[pos.Position]) > 0 {\n\t\t\tcommandsByPosition[pos.Position] = commandsByPosition[pos.Position] + \"|\" + pos.Name\n\t\t} else {\n\t\t\tcommandsByPosition[pos.Position] = pos.Name\n\t\t}\n\t}\n\tfor _, cmd := range p.subcommandContext.Subcommands {\n\t\tif cmd.Hidden {\n\t\t\tcontinue\n\t\t}\n\t\tif len(commandsByPosition[cmd.Position]) > 0 {\n\t\t\tcommandsByPosition[cmd.Position] = commandsByPosition[cmd.Position] + \"|\" + cmd.Name\n\t\t} else {\n\t\t\tcommandsByPosition[cmd.Position] = cmd.Name\n\t\t}\n\t}\n\n\t// find the highest position count in the map\n\tvar highestPosition int\n\tfor i := range commandsByPosition {\n\t\tif i > highestPosition {\n\t\t\thighestPosition = i\n\t\t}\n\t}\n\n\t// only have a usage string if there are positional items\n\tvar usageString string\n\tif highestPosition > 0 {\n\t\t// find each positional value and make our final string\n\t\tusageString = p.subcommandContext.Name\n\t\tfor i := 1; i <= highestPosition; i++ {\n\t\t\tif len(commandsByPosition[i]) > 0 {\n\t\t\t\tusageString = usageString + \" [\" + commandsByPosition[i] + \"]\"\n\t\t\t} else {\n\t\t\t\t// dont keep listing after the first position without any properties\n\t\t\t\t// it will be impossible to reach anything beyond here anyway\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\th.UsageString = usageString\n\n}\n\n// parseFlagsToHelpFlags parses the specified slice of flags into\n// help flags on the the calling help command\nfunc (h *Help) parseFlagsToHelpFlags(flags []*Flag, maxLength int) {\n\n\tfor _, f := range flags {\n\t\tif f.Hidden {\n\t\t\tcontinue\n\t\t}\n\n\t\t// parse help values out if the flag hasn't been parsed yet\n\t\tif !f.parsed {\n\t\t\tf.parsed = true\n\t\t\t// parse the default value as a string and remember it for help output\n\t\t\tf.defaultValue, _ = f.returnAssignmentVarValueAsString()\n\t\t}\n\n\t\t// determine the default value based on the assignment variable\n\t\tdefaultValue := f.defaultValue\n\n\t\t// dont show nils\n\t\tif defaultValue == \"<nil>\" {\n\t\t\tdefaultValue = \"\"\n\t\t}\n\n\t\t// for bools, dont show a default of false\n\t\t_, isBool := f.AssignmentVar.(*bool)\n\t\tif isBool {\n\t\t\tb := f.AssignmentVar.(*bool)\n\t\t\tif *b == false {\n\t\t\t\tdefaultValue = \"\"\n\t\t\t}\n\t\t}\n\n\t\tnewHelpFlag := HelpFlag{\n\t\t\tShortName:    f.ShortName,\n\t\t\tLongName:     f.LongName,\n\t\t\tDescription:  f.Description,\n\t\t\tDefaultValue: defaultValue,\n\t\t\tSpacer:       makeSpacer(f.LongName, maxLength),\n\t\t}\n\t\th.AddFlagToHelp(newHelpFlag)\n\t}\n}\n\n// AddFlagToHelp adds a flag to help output if it does not exist\nfunc (h *Help) AddFlagToHelp(f HelpFlag) {\n\tfor _, existingFlag := range h.Flags {\n\t\tif len(existingFlag.ShortName) > 0 && existingFlag.ShortName == f.ShortName {\n\t\t\treturn\n\t\t}\n\t\tif len(existingFlag.LongName) > 0 && existingFlag.LongName == f.LongName {\n\t\t\treturn\n\t\t}\n\t}\n\th.Flags = append(h.Flags, f)\n}\n\n// getLongestNameLength takes a slice of any supported flag and returns the length of the longest of their names\nfunc getLongestNameLength(slice interface{}, min int) int {\n\tvar maxLength = min\n\n\ts := reflect.ValueOf(slice)\n\tif s.Kind() != reflect.Slice {\n\t\tlog.Panicf(\"Paremeter given to getLongestNameLength() is of type %s. Expected slice\", s.Kind())\n\t}\n\n\tfor i := 0; i < s.Len(); i++ {\n\t\toption := s.Index(i).Interface()\n\t\tvar name string\n\t\tswitch t := option.(type) {\n\t\tcase *Subcommand:\n\t\t\tname = t.Name\n\t\tcase *Flag:\n\t\t\tname = t.LongName\n\t\tcase *PositionalValue:\n\t\t\tname = t.Name\n\t\tdefault:\n\t\t\tlog.Panicf(\"Unexpected type %T found in slice passed to getLongestNameLength(). Possible types: *Subcommand, *Flag, *PositionalValue\", t)\n\t\t}\n\t\tlength := len(name)\n\t\tif length > maxLength {\n\t\t\tmaxLength = length\n\t\t}\n\t}\n\n\treturn maxLength\n}\n\n// makeSpacer creates a string of whitespaces, with a length of the given\n// maxLength minus the length of the given name\nfunc makeSpacer(name string, maxLength int) string {\n\tlength := maxLength - utf8.RuneCountInString(name)\n\tif length < 0 {\n\t\tlength = 0\n\t}\n\treturn strings.Repeat(\" \", length)\n}\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/main.go",
    "content": "// Package flaggy is a input flag parsing package that supports recursive\n// subcommands, positional values, and any-position flags without\n// unnecessary complexeties.\n//\n// For a getting started tutorial and full feature list, check out the\n// readme at https://github.com/integrii/flaggy.\npackage flaggy // import \"github.com/integrii/flaggy\"\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// strings used for builtin help and version flags both short and long\nconst versionFlagLongName = \"version\"\nconst helpFlagLongName = \"help\"\nconst helpFlagShortName = \"h\"\n\n// defaultVersion is applied to parsers when they are created\nconst defaultVersion = \"0.0.0\"\n\n// DebugMode indicates that debug output should be enabled\nvar DebugMode bool\n\n// DefaultHelpTemplate is the help template that will be used\n// for newly created subcommands and commands\nvar DefaultHelpTemplate = defaultHelpTemplate\n\n// DefaultParser is the default parser that is used with the package-level public\n// functions\nvar DefaultParser *Parser\n\n// TrailingArguments holds trailing arguments in the main parser after parsing\n// has been run.\nvar TrailingArguments []string\n\nfunc init() {\n\n\t// set the default help template\n\t// allow usage like flaggy.StringVar by enabling a default Parser\n\tResetParser()\n}\n\n// ResetParser resets the default parser to a fresh instance.  Uses the\n// name of the binary executing as the program name by default.\nfunc ResetParser() {\n\tif len(os.Args) > 0 {\n\t\tchunks := strings.Split(os.Args[0], \"/\")\n\t\tDefaultParser = NewParser(chunks[len(chunks)-1])\n\t} else {\n\t\tDefaultParser = NewParser(\"default\")\n\t}\n}\n\n// Parse parses flags as requested in the default package parser\nfunc Parse() {\n\terr := DefaultParser.Parse()\n\tTrailingArguments = DefaultParser.TrailingArguments\n\tif err != nil {\n\t\tlog.Panicln(\"Error from argument parser:\", err)\n\t}\n}\n\n// ParseArgs parses the passed args as if they were the arguments to the\n// running binary.  Targets the default main parser for the package.\nfunc ParseArgs(args []string) {\n\terr := DefaultParser.ParseArgs(args)\n\tTrailingArguments = DefaultParser.TrailingArguments\n\tif err != nil {\n\t\tlog.Panicln(\"Error from argument parser:\", err)\n\t}\n}\n\n// String adds a new string flag\nfunc String(assignmentVar *string, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// StringSlice adds a new slice of strings flag\n// Specify the flag multiple times to fill the slice\nfunc StringSlice(assignmentVar *[]string, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Bool adds a new bool flag\nfunc Bool(assignmentVar *bool, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// BoolSlice adds a new slice of bools flag\n// Specify the flag multiple times to fill the slice\nfunc BoolSlice(assignmentVar *[]bool, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// ByteSlice adds a new slice of bytes flag\n// Specify the flag multiple times to fill the slice.  Takes hex as input.\nfunc ByteSlice(assignmentVar *[]byte, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Duration adds a new time.Duration flag.\n// Input format is described in time.ParseDuration().\n// Example values: 1h, 1h50m, 32s\nfunc Duration(assignmentVar *time.Duration, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// DurationSlice adds a new time.Duration flag.\n// Input format is described in time.ParseDuration().\n// Example values: 1h, 1h50m, 32s\n// Specify the flag multiple times to fill the slice.\nfunc DurationSlice(assignmentVar *[]time.Duration, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Float32 adds a new float32 flag.\nfunc Float32(assignmentVar *float32, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Float32Slice adds a new float32 flag.\n// Specify the flag multiple times to fill the slice.\nfunc Float32Slice(assignmentVar *[]float32, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Float64 adds a new float64 flag.\nfunc Float64(assignmentVar *float64, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Float64Slice adds a new float64 flag.\n// Specify the flag multiple times to fill the slice.\nfunc Float64Slice(assignmentVar *[]float64, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Int adds a new int flag\nfunc Int(assignmentVar *int, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// IntSlice adds a new int slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc IntSlice(assignmentVar *[]int, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt adds a new uint flag\nfunc UInt(assignmentVar *uint, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// UIntSlice adds a new uint slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc UIntSlice(assignmentVar *[]uint, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt64 adds a new uint64 flag\nfunc UInt64(assignmentVar *uint64, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt64Slice adds a new uint64 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc UInt64Slice(assignmentVar *[]uint64, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt32 adds a new uint32 flag\nfunc UInt32(assignmentVar *uint32, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt32Slice adds a new uint32 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc UInt32Slice(assignmentVar *[]uint32, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt16 adds a new uint16 flag\nfunc UInt16(assignmentVar *uint16, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt16Slice adds a new uint16 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc UInt16Slice(assignmentVar *[]uint16, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt8 adds a new uint8 flag\nfunc UInt8(assignmentVar *uint8, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt8Slice adds a new uint8 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc UInt8Slice(assignmentVar *[]uint8, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Int64 adds a new int64 flag\nfunc Int64(assignmentVar *int64, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Int64Slice adds a new int64 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc Int64Slice(assignmentVar *[]int64, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Int32 adds a new int32 flag\nfunc Int32(assignmentVar *int32, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Int32Slice adds a new int32 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc Int32Slice(assignmentVar *[]int32, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Int16 adds a new int16 flag\nfunc Int16(assignmentVar *int16, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Int16Slice adds a new int16 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc Int16Slice(assignmentVar *[]int16, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Int8 adds a new int8 flag\nfunc Int8(assignmentVar *int8, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// Int8Slice adds a new int8 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc Int8Slice(assignmentVar *[]int8, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// IP adds a new net.IP flag.\nfunc IP(assignmentVar *net.IP, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// IPSlice adds a new int8 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc IPSlice(assignmentVar *[]net.IP, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// HardwareAddr adds a new net.HardwareAddr flag.\nfunc HardwareAddr(assignmentVar *net.HardwareAddr, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// HardwareAddrSlice adds a new net.HardwareAddr slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc HardwareAddrSlice(assignmentVar *[]net.HardwareAddr, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// IPMask adds a new net.IPMask flag. IPv4 Only.\nfunc IPMask(assignmentVar *net.IPMask, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// IPMaskSlice adds a new net.HardwareAddr slice flag. IPv4 only.\n// Specify the flag multiple times to fill the slice.\nfunc IPMaskSlice(assignmentVar *[]net.IPMask, shortName string, longName string, description string) {\n\tDefaultParser.add(assignmentVar, shortName, longName, description)\n}\n\n// AttachSubcommand adds a subcommand for parsing\nfunc AttachSubcommand(subcommand *Subcommand, relativePosition int) {\n\tDefaultParser.AttachSubcommand(subcommand, relativePosition)\n}\n\n// ShowHelp shows parser help\nfunc ShowHelp(message string) {\n\tDefaultParser.ShowHelpWithMessage(message)\n}\n\n// SetDescription sets the description of the default package command parser\nfunc SetDescription(description string) {\n\tDefaultParser.Description = description\n}\n\n// SetVersion sets the version of the default package command parser\nfunc SetVersion(version string) {\n\tDefaultParser.Version = version\n}\n\n// SetName sets the name of the default package command parser\nfunc SetName(name string) {\n\tDefaultParser.Name = name\n}\n\n// ShowHelpAndExit shows parser help and exits with status code 2\nfunc ShowHelpAndExit(message string) {\n\tShowHelp(message)\n\texitOrPanic(2)\n}\n\n// PanicInsteadOfExit is used when running tests\nvar PanicInsteadOfExit bool\n\n// exitOrPanic panics instead of calling os.Exit so that tests can catch\n// more failures\nfunc exitOrPanic(code int) {\n\tif PanicInsteadOfExit {\n\t\tpanic(\"Panic instead of exit with code: \" + strconv.Itoa(code))\n\t}\n\tos.Exit(code)\n}\n\n// ShowHelpOnUnexpectedEnable enables the ShowHelpOnUnexpected behavior on the\n// default parser.  This causes unknown inputs to error out.\nfunc ShowHelpOnUnexpectedEnable() {\n\tDefaultParser.ShowHelpOnUnexpected = true\n}\n\n// ShowHelpOnUnexpectedDisable disables the ShowHelpOnUnexpected behavior on the\n// default parser.  This causes unknown inputs to error out.\nfunc ShowHelpOnUnexpectedDisable() {\n\tDefaultParser.ShowHelpOnUnexpected = false\n}\n\n// AddPositionalValue adds a positional value to the main parser at the global\n// context\nfunc AddPositionalValue(assignmentVar *string, name string, relativePosition int, required bool, description string) {\n\tDefaultParser.AddPositionalValue(assignmentVar, name, relativePosition, required, description)\n}\n\n// debugPrint prints if debugging is enabled\nfunc debugPrint(i ...interface{}) {\n\tif DebugMode {\n\t\tfmt.Println(i...)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/parsedValue.go",
    "content": "package flaggy\n\n// parsedValue represents a flag or subcommand that was parsed.  Primairily used\n// to account for all parsed values in order to determine if unknown values were\n// passed to the root parser after all subcommands have been parsed.\ntype parsedValue struct {\n\tKey          string\n\tValue        string\n\tIsPositional bool // indicates that this value was positional and not a key/value\n}\n\n// newParsedValue creates and returns a new parsedValue struct with the\n// supplied values set\nfunc newParsedValue(key string, value string, isPositional bool) parsedValue {\n\tif len(key) == 0 && len(value) == 0 {\n\t\tpanic(\"cant add parsed value with no key or value\")\n\t}\n\treturn parsedValue{\n\t\tKey:          key,\n\t\tValue:        value,\n\t\tIsPositional: isPositional,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/parser.go",
    "content": "package flaggy\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\n\t\"text/template\"\n)\n\n// Parser represents the set of flags and subcommands we are expecting\n// from our input arguments.  Parser is the top level struct responsible for\n// parsing an entire set of subcommands and flags.\ntype Parser struct {\n\tSubcommand\n\tVersion                    string             // the optional version of the parser.\n\tShowHelpWithHFlag          bool               // display help when -h or --help passed\n\tShowVersionWithVersionFlag bool               // display the version when --version passed\n\tShowHelpOnUnexpected       bool               // display help when an unexpected flag or subcommand is passed\n\tTrailingArguments          []string           // everything after a -- is placed here\n\tHelpTemplate               *template.Template // template for Help output\n\ttrailingArgumentsExtracted bool               // indicates that trailing args have been parsed and should not be appended again\n\tparsed                     bool               // indicates this parser has parsed\n\tsubcommandContext          *Subcommand        // points to the most specific subcommand being used\n}\n\n// NewParser creates a new ArgumentParser ready to parse inputs\nfunc NewParser(name string) *Parser {\n\t// this can not be done inline because of struct embedding\n\tp := &Parser{}\n\tp.Name = name\n\tp.Version = defaultVersion\n\tp.ShowHelpOnUnexpected = true\n\tp.ShowHelpWithHFlag = true\n\tp.ShowVersionWithVersionFlag = true\n\tp.SetHelpTemplate(DefaultHelpTemplate)\n\tp.subcommandContext = &Subcommand{}\n\treturn p\n}\n\n// ParseArgs parses as if the passed args were the os.Args, but without the\n// binary at the 0 position in the array.  An error is returned if there\n// is a low level issue converting flags to their proper type.  No error\n// is returned for invalid arguments or missing require subcommands.\nfunc (p *Parser) ParseArgs(args []string) error {\n\tif p.parsed {\n\t\treturn errors.New(\"Parser.Parse() called twice on parser with name: \" + \" \" + p.Name + \" \" + p.ShortName)\n\t}\n\tp.parsed = true\n\n\tdebugPrint(\"Kicking off parsing with args:\", args)\n\terr := p.parse(p, args, 0)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// if we are set to crash on unexpected args, look for those here TODO\n\tif p.ShowHelpOnUnexpected {\n\t\tparsedValues := p.findAllParsedValues()\n\t\tdebugPrint(\"parsedValues:\", parsedValues)\n\t\targsNotParsed := findArgsNotInParsedValues(args, parsedValues)\n\t\tif len(argsNotParsed) > 0 {\n\t\t\t// flatten out unused args for our error message\n\t\t\tvar argsNotParsedFlat string\n\t\t\tfor _, a := range argsNotParsed {\n\t\t\t\targsNotParsedFlat = argsNotParsedFlat + \" \" + a\n\t\t\t}\n\t\t\tp.ShowHelpAndExit(\"Unknown arguments supplied: \" + argsNotParsedFlat)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// findArgsNotInParsedValues finds arguments not used in parsed values.  The\n// incoming args should be in the order supplied by the user and should not\n// include the invoked binary, which is normally the first thing in os.Args.\nfunc findArgsNotInParsedValues(args []string, parsedValues []parsedValue) []string {\n\tvar argsNotUsed []string\n\tvar skipNext bool\n\tfor _, a := range args {\n\n\t\t// if the final argument (--) is seen, then we stop checking because all\n\t\t// further values are trailing arguments.\n\t\tif determineArgType(a) == argIsFinal {\n\t\t\treturn argsNotUsed\n\t\t}\n\n\t\t// allow for skipping the next arg when needed\n\t\tif skipNext {\n\t\t\tskipNext = false\n\t\t\tcontinue\n\t\t}\n\n\t\t// strip flag slashes from incoming arguments so they match up with the\n\t\t// keys from parsedValues.\n\t\targ := parseFlagToName(a)\n\n\t\t// indicates that we found this arg used in one of the parsed values. Used\n\t\t// to indicate which values should be added to argsNotUsed.\n\t\tvar foundArgUsed bool\n\n\t\t// search all args for a corresponding parsed value\n\t\tfor _, pv := range parsedValues {\n\t\t\t// this argumenet was a key\n\t\t\t// debugPrint(pv.Key, \"==\", arg)\n\t\t\tdebugPrint(pv.Key + \"==\" + arg + \" || (\" + strconv.FormatBool(pv.IsPositional) + \" && \" + pv.Value + \" == \" + arg + \")\")\n\t\t\tif pv.Key == arg || (pv.IsPositional && pv.Value == arg) {\n\t\t\t\tdebugPrint(\"Found matching parsed arg for \" + pv.Key)\n\t\t\t\tfoundArgUsed = true // the arg was used in this parsedValues set\n\t\t\t\t// if the value is not a positional value and the parsed value had a\n\t\t\t\t// value that was not blank, we skip the next value in the argument list\n\t\t\t\tif !pv.IsPositional && len(pv.Value) > 0 {\n\t\t\t\t\tskipNext = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\t// this prevents excessive parsed values from being checked after we find\n\t\t\t// the arg used for the first time\n\t\t\tif foundArgUsed {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// if the arg was not used in any parsed values, then we add it to the slice\n\t\t// of arguments not used\n\t\tif !foundArgUsed {\n\t\t\targsNotUsed = append(argsNotUsed, arg)\n\t\t}\n\t}\n\n\treturn argsNotUsed\n}\n\n// ShowVersionAndExit shows the version of this parser\nfunc (p *Parser) ShowVersionAndExit() {\n\tfmt.Println(\"Version:\", p.Version)\n\texitOrPanic(0)\n}\n\n// SetHelpTemplate sets the go template this parser will use when rendering\n// Help.\nfunc (p *Parser) SetHelpTemplate(tmpl string) error {\n\tvar err error\n\tp.HelpTemplate = template.New(helpFlagLongName)\n\tp.HelpTemplate, err = p.HelpTemplate.Parse(tmpl)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Parse calculates all flags and subcommands\nfunc (p *Parser) Parse() error {\n\n\terr := p.ParseArgs(os.Args[1:])\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn nil\n\n}\n\n// ShowHelp shows Help without an error message\nfunc (p *Parser) ShowHelp() {\n\tdebugPrint(\"showing help for\", p.subcommandContext.Name)\n\tp.ShowHelpWithMessage(\"\")\n}\n\n// ShowHelpAndExit shows parser help and exits with status code 2\nfunc (p *Parser) ShowHelpAndExit(message string) {\n\tp.ShowHelpWithMessage(message)\n\texitOrPanic(2)\n}\n\n// ShowHelpWithMessage shows the Help for this parser with an optional string error\n// message as a header.  The supplied subcommand will be the context of Help\n// displayed to the user.\nfunc (p *Parser) ShowHelpWithMessage(message string) {\n\n\t// create a new Help values template and extract values into it\n\thelp := Help{}\n\thelp.ExtractValues(p, message)\n\terr := p.HelpTemplate.Execute(os.Stderr, help)\n\tif err != nil {\n\t\tfmt.Fprintln(os.Stderr, \"Error rendering Help template:\", err)\n\t}\n}\n\n// DisableShowVersionWithVersion disables the showing of version information\n// with --version. It is enabled by default.\nfunc (p *Parser) DisableShowVersionWithVersion() {\n\tp.ShowVersionWithVersionFlag = false\n}\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/positionalValue.go",
    "content": "package flaggy\n\n// PositionalValue represents a value which is determined by its position\n// relative to where a subcommand was detected.\ntype PositionalValue struct {\n\tName          string // used in documentation only\n\tDescription   string\n\tAssignmentVar *string // the var that will get this variable\n\tPosition      int     // the position, not including switches, of this variable\n\tRequired      bool    // this subcommand must always be specified\n\tFound         bool    // was this positional found during parsing?\n\tHidden        bool    // indicates this positional value should be hidden from help\n\tdefaultValue  string  // used for help output\n}\n"
  },
  {
    "path": "vendor/github.com/integrii/flaggy/subCommand.go",
    "content": "package flaggy\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// Subcommand represents a subcommand which contains a set of child\n// subcommands along with a set of flags relevant to it.  Parsing\n// runs until a subcommand is detected by matching its name and\n// position.  Once a matching subcommand is found, the next set\n// of parsing occurs within that matched subcommand.\ntype Subcommand struct {\n\tName                  string\n\tShortName             string\n\tDescription           string\n\tPosition              int // the position of this subcommand, not including flags\n\tSubcommands           []*Subcommand\n\tFlags                 []*Flag\n\tPositionalFlags       []*PositionalValue\n\tParsedValues          []parsedValue // a list of values and positionals parsed\n\tAdditionalHelpPrepend string        // additional prepended message when Help is displayed\n\tAdditionalHelpAppend  string        // additional appended message when Help is displayed\n\tUsed                  bool          // indicates this subcommand was found and parsed\n\tHidden                bool          // indicates this subcommand should be hidden from help\n}\n\n// NewSubcommand creates a new subcommand that can have flags or PositionalFlags\n// added to it.  The position starts with 1, not 0\nfunc NewSubcommand(name string) *Subcommand {\n\tif len(name) == 0 {\n\t\tfmt.Fprintln(os.Stderr, \"Error creating subcommand (NewSubcommand()).  No subcommand name was specified.\")\n\t\texitOrPanic(2)\n\t}\n\tnewSC := &Subcommand{\n\t\tName: name,\n\t}\n\treturn newSC\n}\n\n// parseAllFlagsFromArgs parses the non-positional flags such as -f or -v=value\n// out of the supplied args and returns the resulting positional items in order,\n// all the flag names found (without values), a bool to indicate if help was\n// requested, and any errors found during parsing\nfunc (sc *Subcommand) parseAllFlagsFromArgs(p *Parser, args []string) ([]string, bool, error) {\n\n\tvar positionalOnlyArguments []string\n\tvar helpRequested bool // indicates the user has supplied -h and we\n\t// should render help if we are the last subcommand\n\n\t// indicates we should skip the next argument, like when parsing a flag\n\t// that separates key and value by space\n\tvar skipNext bool\n\n\t// endArgfound indicates that a -- was found and everything\n\t// remaining should be added to the trailing arguments slices\n\tvar endArgFound bool\n\n\t// find all the normal flags (not positional) and parse them out\n\tfor i, a := range args {\n\n\t\tdebugPrint(\"parsing arg:\", a)\n\n\t\t// evaluate if there is a following arg to avoid panics\n\t\tvar nextArgExists bool\n\t\tvar nextArg string\n\t\tif len(args)-1 >= i+1 {\n\t\t\tnextArgExists = true\n\t\t\tnextArg = args[i+1]\n\t\t}\n\n\t\t// if end arg -- has been found, just add everything to TrailingArguments\n\t\tif endArgFound {\n\t\t\tif !p.trailingArgumentsExtracted {\n\t\t\t\tp.TrailingArguments = append(p.TrailingArguments, a)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// skip this run if specified\n\t\tif skipNext {\n\t\t\tskipNext = false\n\t\t\tdebugPrint(\"skipping flag because it is an arg:\", a)\n\t\t\tcontinue\n\t\t}\n\n\t\t// parse the flag into its name for consideration without dashes\n\t\tflagName := parseFlagToName(a)\n\n\t\t// if the flag being passed is version or v and the option to display\n\t\t// version with version flags, then display version\n\t\tif p.ShowVersionWithVersionFlag {\n\t\t\tif flagName == versionFlagLongName {\n\t\t\t\tp.ShowVersionAndExit()\n\t\t\t}\n\t\t}\n\n\t\t// if the show Help on h flag option is set, then show Help when h or Help\n\t\t// is passed as an option\n\t\tif p.ShowHelpWithHFlag {\n\t\t\tif flagName == helpFlagShortName || flagName == helpFlagLongName {\n\t\t\t\t// Ensure this is the last subcommand passed so we give the correct\n\t\t\t\t// help output\n\t\t\t\thelpRequested = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// determine what kind of flag this is\n\t\targType := determineArgType(a)\n\n\t\t// strip flags from arg\n\t\t// debugPrint(\"Parsing flag named\", a, \"of type\", argType)\n\n\t\t// depending on the flag type, parse the key and value out, then apply it\n\t\tswitch argType {\n\t\tcase argIsFinal:\n\t\t\t// debugPrint(\"Arg\", i, \"is final:\", a)\n\t\t\tendArgFound = true\n\t\tcase argIsPositional:\n\t\t\t// debugPrint(\"Arg is positional or subcommand:\", a)\n\t\t\t// this positional argument into a slice of their own, so that\n\t\t\t// we can determine if its a subcommand or positional value later\n\t\t\tpositionalOnlyArguments = append(positionalOnlyArguments, a)\n\t\t\t// track this as a parsed value with the subcommand\n\t\t\tsc.addParsedPositionalValue(a)\n\t\tcase argIsFlagWithSpace: // a flag with a space. ex) -k v or --key value\n\t\t\ta = parseFlagToName(a)\n\n\t\t\t// debugPrint(\"Arg\", i, \"is flag with space:\", a)\n\t\t\t// parse next arg as value to this flag and apply to subcommand flags\n\t\t\t// if the flag is a bool flag, then we check for a following positional\n\t\t\t// and skip it if necessary\n\t\t\tif flagIsBool(sc, p, a) {\n\t\t\t\tdebugPrint(sc.Name, \"bool flag\", a, \"next var is:\", nextArg)\n\t\t\t\t// set the value in this subcommand and its root parser\n\t\t\t\tvalueSet, err := setValueForParsers(a, \"true\", p, sc)\n\n\t\t\t\t// if an error occurs, just return it and quit parsing\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn []string{}, false, err\n\t\t\t\t}\n\n\t\t\t\t// log all values parsed by this subcommand.  We leave the value blank\n\t\t\t\t// because the bool value had no explicit true or false supplied\n\t\t\t\tif valueSet {\n\t\t\t\t\tsc.addParsedFlag(a, \"\")\n\t\t\t\t}\n\n\t\t\t\t// we've found and set a standalone bool flag, so we move on to the next\n\t\t\t\t// argument in the list of arguments\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tskipNext = true\n\t\t\t// debugPrint(sc.Name, \"NOT bool flag\", a)\n\n\t\t\t// if the next arg was not found, then show a Help message\n\t\t\tif !nextArgExists {\n\t\t\t\tp.ShowHelpWithMessage(\"Expected a following arg for flag \" + a + \", but it did not exist.\")\n\t\t\t\texitOrPanic(2)\n\t\t\t}\n\t\t\tvalueSet, err := setValueForParsers(a, nextArg, p, sc)\n\t\t\tif err != nil {\n\t\t\t\treturn []string{}, false, err\n\t\t\t}\n\n\t\t\t// log all parsed values in the subcommand\n\t\t\tif valueSet {\n\t\t\t\tsc.addParsedFlag(a, nextArg)\n\t\t\t}\n\t\tcase argIsFlagWithValue: // a flag with an equals sign. ex) -k=v or --key=value\n\t\t\t// debugPrint(\"Arg\", i, \"is flag with value:\", a)\n\t\t\ta = parseFlagToName(a)\n\n\t\t\t// parse flag into key and value and apply to subcommand flags\n\t\t\tkey, val := parseArgWithValue(a)\n\n\t\t\t// set the value in this subcommand and its root parser\n\t\t\tvalueSet, err := setValueForParsers(key, val, p, sc)\n\t\t\tif err != nil {\n\t\t\t\treturn []string{}, false, err\n\t\t\t}\n\n\t\t\t// log all values parsed by the subcommand\n\t\t\tif valueSet {\n\t\t\t\tsc.addParsedFlag(a, val)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn positionalOnlyArguments, helpRequested, nil\n}\n\n// findAllParsedValues finds all values parsed by all subcommands and this\n// subcommand and its child subcommands\nfunc (sc *Subcommand) findAllParsedValues() []parsedValue {\n\tparsedValues := sc.ParsedValues\n\tfor _, sc := range sc.Subcommands {\n\t\t// skip unused subcommands\n\t\tif !sc.Used {\n\t\t\tcontinue\n\t\t}\n\t\tparsedValues = append(parsedValues, sc.findAllParsedValues()...)\n\t}\n\treturn parsedValues\n}\n\n// parse causes the argument parser to parse based on the supplied []string.\n// depth specifies the non-flag subcommand positional depth.  A slice of flags\n// and subcommands parsed is returned so that the parser can ultimately decide\n// if there were any unexpected values supplied by the user\nfunc (sc *Subcommand) parse(p *Parser, args []string, depth int) error {\n\n\tdebugPrint(\"- Parsing subcommand\", sc.Name, \"with depth of\", depth, \"and args\", args)\n\n\t// if a command is parsed, its used\n\tsc.Used = true\n\tdebugPrint(\"used subcommand\", sc.Name, sc.ShortName)\n\tif len(sc.Name) > 0 {\n\t\tsc.addParsedPositionalValue(sc.Name)\n\t}\n\tif len(sc.ShortName) > 0 {\n\t\tsc.addParsedPositionalValue(sc.ShortName)\n\t}\n\n\t// as subcommands are used, they become the context of the parser.  This helps\n\t// us understand how to display help based on which subcommand is being used\n\tp.subcommandContext = sc\n\n\t// ensure that help and version flags are not used if the parser has the\n\t// built-in help and version flags enabled\n\tif p.ShowHelpWithHFlag {\n\t\tsc.ensureNoConflictWithBuiltinHelp()\n\t}\n\tif p.ShowVersionWithVersionFlag {\n\t\tsc.ensureNoConflictWithBuiltinVersion()\n\t}\n\n\t// Parse the normal flags out of the argument list and return the positionals\n\t// (subcommands and positional values), along with the flags used.\n\t// Then the flag values are applied to the parent parser and the current\n\t// subcommand being parsed.\n\tpositionalOnlyArguments, helpRequested, err := sc.parseAllFlagsFromArgs(p, args)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// indicate that trailing arguments have been extracted, so that they aren't\n\t// appended a second time\n\tp.trailingArgumentsExtracted = true\n\n\t// loop over positional values and look for their matching positional\n\t// parameter, or their positional command.  If neither are found, then\n\t// we throw an error\n\tvar parsedArgCount int\n\tfor pos, v := range positionalOnlyArguments {\n\n\t\t// the first relative positional argument will be human natural at position 1\n\t\t// but offset for the depth of relative commands being parsed for currently.\n\t\trelativeDepth := pos - depth + 1\n\t\t// debugPrint(\"Parsing positional only position\", relativeDepth, \"with value\", v)\n\n\t\tif relativeDepth < 1 {\n\t\t\t// debugPrint(sc.Name, \"skipped value:\", v)\n\t\t\tcontinue\n\t\t}\n\t\tparsedArgCount++\n\n\t\t// determine subcommands and parse them by positional value and name\n\t\tfor _, cmd := range sc.Subcommands {\n\t\t\t// debugPrint(\"Subcommand being compared\", relativeDepth, \"==\", cmd.Position, \"and\", v, \"==\", cmd.Name, \"==\", cmd.ShortName)\n\t\t\tif relativeDepth == cmd.Position && (v == cmd.Name || v == cmd.ShortName) {\n\t\t\t\tdebugPrint(\"Decending into positional subcommand\", cmd.Name, \"at relativeDepth\", relativeDepth, \"and absolute depth\", depth+1)\n\t\t\t\treturn cmd.parse(p, args, depth+parsedArgCount) // continue recursive positional parsing\n\t\t\t}\n\t\t}\n\n\t\t// determine positional args and parse them by positional value and name\n\t\tvar foundPositional bool\n\t\tfor _, val := range sc.PositionalFlags {\n\t\t\tif relativeDepth == val.Position {\n\t\t\t\tdebugPrint(\"Found a positional value at relativePos:\", relativeDepth, \"value:\", v)\n\n\t\t\t\t// set original value for help output\n\t\t\t\tval.defaultValue = *val.AssignmentVar\n\n\t\t\t\t// defrerence the struct pointer, then set the pointer property within it\n\t\t\t\t*val.AssignmentVar = v\n\t\t\t\t// debugPrint(\"set positional to value\", *val.AssignmentVar)\n\t\t\t\tfoundPositional = true\n\t\t\t\tval.Found = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// if there aren't any positional flags but there are subcommands that\n\t\t// were not used, display a useful message with subcommand options.\n\t\tif !foundPositional && p.ShowHelpOnUnexpected {\n\t\t\tdebugPrint(\"No positional at position\", relativeDepth)\n\t\t\tvar foundSubcommandAtDepth bool\n\t\t\tfor _, cmd := range sc.Subcommands {\n\t\t\t\tif cmd.Position == relativeDepth {\n\t\t\t\t\tfoundSubcommandAtDepth = true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// if there is a subcommand here but it was not specified, display them all\n\t\t\t// as a suggestion to the user before exiting.\n\t\t\tif foundSubcommandAtDepth {\n\t\t\t\t// determine which name to use in upcoming help output\n\t\t\t\tfmt.Fprintln(os.Stderr, sc.Name+\":\", \"No subcommand or positional value found at position\", strconv.Itoa(relativeDepth)+\".\")\n\t\t\t\tvar output string\n\t\t\t\tfor _, cmd := range sc.Subcommands {\n\t\t\t\t\tif cmd.Hidden {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\toutput = output + \" \" + cmd.Name\n\t\t\t\t}\n\t\t\t\t// if there are available subcommands, let the user know\n\t\t\t\tif len(output) > 0 {\n\t\t\t\t\toutput = strings.TrimLeft(output, \" \")\n\t\t\t\t\tfmt.Println(\"Available subcommands:\", output)\n\t\t\t\t}\n\t\t\t\texitOrPanic(2)\n\t\t\t}\n\n\t\t\t// if there were not any flags or subcommands at this position at all, then\n\t\t\t// throw an error (display Help if necessary)\n\t\t\tp.ShowHelpWithMessage(\"Unexpected argument: \" + v)\n\t\t\texitOrPanic(2)\n\t\t}\n\t}\n\n\t// if help was requested and we should show help when h is passed,\n\tif helpRequested && p.ShowHelpWithHFlag {\n\t\tp.ShowHelp()\n\t\texitOrPanic(0)\n\t}\n\n\t// find any positionals that were not used on subcommands that were\n\t// found and throw help (unknown argument) in the global parse or subcommand\n\tfor _, pv := range p.PositionalFlags {\n\t\tif pv.Required && !pv.Found {\n\t\t\tp.ShowHelpWithMessage(\"Required global positional variable \" + pv.Name + \" not found at position \" + strconv.Itoa(pv.Position))\n\t\t\texitOrPanic(2)\n\t\t}\n\t}\n\tfor _, pv := range sc.PositionalFlags {\n\t\tif pv.Required && !pv.Found {\n\t\t\tp.ShowHelpWithMessage(\"Required positional of subcommand \" + sc.Name + \" named \" + pv.Name + \" not found at position \" + strconv.Itoa(pv.Position))\n\t\t\texitOrPanic(2)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// addParsedFlag makes it easy to append flag values parsed by the subcommand\nfunc (sc *Subcommand) addParsedFlag(key string, value string) {\n\tsc.ParsedValues = append(sc.ParsedValues, newParsedValue(key, value, false))\n}\n\n// addParsedPositionalValue makes it easy to append positionals parsed by the\n// subcommand\nfunc (sc *Subcommand) addParsedPositionalValue(value string) {\n\tsc.ParsedValues = append(sc.ParsedValues, newParsedValue(\"\", value, true))\n}\n\n// FlagExists lets you know if the flag name exists as either a short or long\n// name in the (sub)command\nfunc (sc *Subcommand) FlagExists(name string) bool {\n\n\tfor _, f := range sc.Flags {\n\t\tif f.HasName(name) {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// AttachSubcommand adds a possible subcommand to the Parser.\nfunc (sc *Subcommand) AttachSubcommand(newSC *Subcommand, relativePosition int) {\n\n\t// assign the depth of the subcommand when its attached\n\tnewSC.Position = relativePosition\n\n\t// ensure no subcommands at this depth with this name\n\tfor _, other := range sc.Subcommands {\n\t\tif newSC.Position == other.Position {\n\t\t\tif newSC.Name != \"\" {\n\t\t\t\tif newSC.Name == other.Name {\n\t\t\t\t\tlog.Panicln(\"Unable to add subcommand because one already exists at position\" + strconv.Itoa(newSC.Position) + \" with name \" + other.Name)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif newSC.ShortName != \"\" {\n\t\t\t\tif newSC.ShortName == other.ShortName {\n\t\t\t\t\tlog.Panicln(\"Unable to add subcommand because one already exists at position\" + strconv.Itoa(newSC.Position) + \" with name \" + other.ShortName)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// ensure no positionals at this depth\n\tfor _, other := range sc.PositionalFlags {\n\t\tif newSC.Position == other.Position {\n\t\t\tlog.Panicln(\"Unable to add subcommand because a positional value already exists at position \" + strconv.Itoa(newSC.Position) + \": \" + other.Name)\n\t\t}\n\t}\n\n\tsc.Subcommands = append(sc.Subcommands, newSC)\n}\n\n// add is a \"generic\" to add flags of any type. Checks the supplied parent\n// parser to ensure that the user isn't setting version or help flags that\n// conflict with the built-in help and version flag behavior.\nfunc (sc *Subcommand) add(assignmentVar interface{}, shortName string, longName string, description string) {\n\n\t// if the flag is already used, throw an error\n\tfor _, existingFlag := range sc.Flags {\n\t\tif longName != \"\" && existingFlag.LongName == longName {\n\t\t\tlog.Panicln(\"Flag \" + longName + \" added to subcommand \" + sc.Name + \" but the name is already assigned.\")\n\t\t}\n\t\tif shortName != \"\" && existingFlag.ShortName == shortName {\n\t\t\tlog.Panicln(\"Flag \" + shortName + \" added to subcommand \" + sc.Name + \" but the short name is already assigned.\")\n\t\t}\n\t}\n\n\tnewFlag := Flag{\n\t\tAssignmentVar: assignmentVar,\n\t\tShortName:     shortName,\n\t\tLongName:      longName,\n\t\tDescription:   description,\n\t}\n\tsc.Flags = append(sc.Flags, &newFlag)\n}\n\n// String adds a new string flag\nfunc (sc *Subcommand) String(assignmentVar *string, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// StringSlice adds a new slice of strings flag\n// Specify the flag multiple times to fill the slice\nfunc (sc *Subcommand) StringSlice(assignmentVar *[]string, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Bool adds a new bool flag\nfunc (sc *Subcommand) Bool(assignmentVar *bool, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// BoolSlice adds a new slice of bools flag\n// Specify the flag multiple times to fill the slice\nfunc (sc *Subcommand) BoolSlice(assignmentVar *[]bool, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// ByteSlice adds a new slice of bytes flag\n// Specify the flag multiple times to fill the slice.  Takes hex as input.\nfunc (sc *Subcommand) ByteSlice(assignmentVar *[]byte, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Duration adds a new time.Duration flag.\n// Input format is described in time.ParseDuration().\n// Example values: 1h, 1h50m, 32s\nfunc (sc *Subcommand) Duration(assignmentVar *time.Duration, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// DurationSlice adds a new time.Duration flag.\n// Input format is described in time.ParseDuration().\n// Example values: 1h, 1h50m, 32s\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) DurationSlice(assignmentVar *[]time.Duration, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Float32 adds a new float32 flag.\nfunc (sc *Subcommand) Float32(assignmentVar *float32, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Float32Slice adds a new float32 flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) Float32Slice(assignmentVar *[]float32, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Float64 adds a new float64 flag.\nfunc (sc *Subcommand) Float64(assignmentVar *float64, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Float64Slice adds a new float64 flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) Float64Slice(assignmentVar *[]float64, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Int adds a new int flag\nfunc (sc *Subcommand) Int(assignmentVar *int, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// IntSlice adds a new int slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) IntSlice(assignmentVar *[]int, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt adds a new uint flag\nfunc (sc *Subcommand) UInt(assignmentVar *uint, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// UIntSlice adds a new uint slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) UIntSlice(assignmentVar *[]uint, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt64 adds a new uint64 flag\nfunc (sc *Subcommand) UInt64(assignmentVar *uint64, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt64Slice adds a new uint64 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) UInt64Slice(assignmentVar *[]uint64, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt32 adds a new uint32 flag\nfunc (sc *Subcommand) UInt32(assignmentVar *uint32, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt32Slice adds a new uint32 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) UInt32Slice(assignmentVar *[]uint32, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt16 adds a new uint16 flag\nfunc (sc *Subcommand) UInt16(assignmentVar *uint16, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt16Slice adds a new uint16 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) UInt16Slice(assignmentVar *[]uint16, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt8 adds a new uint8 flag\nfunc (sc *Subcommand) UInt8(assignmentVar *uint8, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// UInt8Slice adds a new uint8 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) UInt8Slice(assignmentVar *[]uint8, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Int64 adds a new int64 flag.\nfunc (sc *Subcommand) Int64(assignmentVar *int64, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Int64Slice adds a new int64 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) Int64Slice(assignmentVar *[]int64, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Int32 adds a new int32 flag\nfunc (sc *Subcommand) Int32(assignmentVar *int32, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Int32Slice adds a new int32 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) Int32Slice(assignmentVar *[]int32, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Int16 adds a new int16 flag\nfunc (sc *Subcommand) Int16(assignmentVar *int16, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Int16Slice adds a new int16 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) Int16Slice(assignmentVar *[]int16, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Int8 adds a new int8 flag\nfunc (sc *Subcommand) Int8(assignmentVar *int8, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// Int8Slice adds a new int8 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) Int8Slice(assignmentVar *[]int8, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// IP adds a new net.IP flag.\nfunc (sc *Subcommand) IP(assignmentVar *net.IP, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// IPSlice adds a new int8 slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) IPSlice(assignmentVar *[]net.IP, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// HardwareAddr adds a new net.HardwareAddr flag.\nfunc (sc *Subcommand) HardwareAddr(assignmentVar *net.HardwareAddr, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// HardwareAddrSlice adds a new net.HardwareAddr slice flag.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) HardwareAddrSlice(assignmentVar *[]net.HardwareAddr, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// IPMask adds a new net.IPMask flag. IPv4 Only.\nfunc (sc *Subcommand) IPMask(assignmentVar *net.IPMask, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// IPMaskSlice adds a new net.HardwareAddr slice flag. IPv4 only.\n// Specify the flag multiple times to fill the slice.\nfunc (sc *Subcommand) IPMaskSlice(assignmentVar *[]net.IPMask, shortName string, longName string, description string) {\n\tsc.add(assignmentVar, shortName, longName, description)\n}\n\n// AddPositionalValue adds a positional value to the subcommand.  the\n// relativePosition starts at 1 and is relative to the subcommand it belongs to\nfunc (sc *Subcommand) AddPositionalValue(assignmentVar *string, name string, relativePosition int, required bool, description string) {\n\n\t// ensure no other positionals are at this depth\n\tfor _, other := range sc.PositionalFlags {\n\t\tif relativePosition == other.Position {\n\t\t\tlog.Panicln(\"Unable to add positional value because one already exists at position: \" + strconv.Itoa(relativePosition))\n\t\t}\n\t}\n\n\t// ensure no subcommands at this depth\n\tfor _, other := range sc.Subcommands {\n\t\tif relativePosition == other.Position {\n\t\t\tlog.Panicln(\"Unable to add positional value a subcommand already exists at position: \" + strconv.Itoa(relativePosition))\n\t\t}\n\t}\n\n\tnewPositionalValue := PositionalValue{\n\t\tName:          name,\n\t\tPosition:      relativePosition,\n\t\tAssignmentVar: assignmentVar,\n\t\tRequired:      required,\n\t\tDescription:   description,\n\t\tdefaultValue:  *assignmentVar,\n\t}\n\tsc.PositionalFlags = append(sc.PositionalFlags, &newPositionalValue)\n}\n\n// SetValueForKey sets the value for the specified key. If setting a bool\n// value, then send \"true\" or \"false\" as strings.  The returned bool indicates\n// that a value was set.\nfunc (sc *Subcommand) SetValueForKey(key string, value string) (bool, error) {\n\n\t// debugPrint(\"Looking to set key\", key, \"to value\", value)\n\t// check for and assign flags that match the key\n\tfor _, f := range sc.Flags {\n\t\t// debugPrint(\"Evaluating string flag\", f.ShortName, \"==\", key, \"||\", f.LongName, \"==\", key)\n\t\tif f.ShortName == key || f.LongName == key {\n\t\t\t// debugPrint(\"Setting string value for\", key, \"to\", value)\n\t\t\tf.identifyAndAssignValue(value)\n\t\t\treturn true, nil\n\t\t}\n\t}\n\n\t// debugPrint(sc.Name, \"was unable to find a key named\", key, \"to set to value\", value)\n\treturn false, nil\n}\n\n// ensureNoConflictWithBuiltinHelp ensures that the flags on this subcommand do\n// not conflict with the builtin help flags (-h or --help). Exits the program\n// if a conflict is found.\nfunc (sc *Subcommand) ensureNoConflictWithBuiltinHelp() {\n\tfor _, f := range sc.Flags {\n\t\tif f.LongName == helpFlagLongName {\n\t\t\tsc.exitBecauseOfHelpFlagConflict(f.LongName)\n\t\t}\n\t\tif f.LongName == helpFlagShortName {\n\t\t\tsc.exitBecauseOfHelpFlagConflict(f.LongName)\n\t\t}\n\t\tif f.ShortName == helpFlagLongName {\n\t\t\tsc.exitBecauseOfHelpFlagConflict(f.ShortName)\n\t\t}\n\t\tif f.ShortName == helpFlagShortName {\n\t\t\tsc.exitBecauseOfHelpFlagConflict(f.ShortName)\n\t\t}\n\t}\n}\n\n// ensureNoConflictWithBuiltinVersion ensures that the flags on this subcommand do\n// not conflict with the builtin version flag (--version). Exits the program\n// if a conflict is found.\nfunc (sc *Subcommand) ensureNoConflictWithBuiltinVersion() {\n\tfor _, f := range sc.Flags {\n\t\tif f.LongName == versionFlagLongName {\n\t\t\tsc.exitBecauseOfVersionFlagConflict(f.LongName)\n\t\t}\n\t\tif f.ShortName == versionFlagLongName {\n\t\t\tsc.exitBecauseOfVersionFlagConflict(f.ShortName)\n\t\t}\n\t}\n}\n\n// exitBecauseOfVersionFlagConflict exits the program with a message about how to prevent\n// flags being defined from conflicting with the builtin flags.\nfunc (sc *Subcommand) exitBecauseOfVersionFlagConflict(flagName string) {\n\tfmt.Println(`Flag with name '` + flagName + `' conflicts with the internal --version flag in flaggy.\n\nYou must either change the flag's name, or disable flaggy's internal version\nflag with 'flaggy.DefaultParser.ShowVersionWithVersionFlag = false'.  If you are using\na custom parser, you must instead set '.ShowVersionWithVersionFlag = false' on it.`)\n\texitOrPanic(1)\n}\n\n// exitBecauseOfHelpFlagConflict exits the program with a message about how to prevent\n// flags being defined from conflicting with the builtin flags.\nfunc (sc *Subcommand) exitBecauseOfHelpFlagConflict(flagName string) {\n\tfmt.Println(`Flag with name '` + flagName + `' conflicts with the internal --help or -h flag in flaggy.\n\nYou must either change the flag's name, or disable flaggy's internal help\nflag with 'flaggy.DefaultParser.ShowHelpWithHFlag = false'.  If you are using\na custom parser, you must instead set '.ShowHelpWithHFlag = false' on it.`)\n\texitOrPanic(1)\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/asciigraph/.gitignore",
    "content": "# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\n\n# Test binary, build with `go test -c`\n*.test\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n\n# ide\n.idea\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/asciigraph/.travis.yml",
    "content": "language: go\n\ngo:\n  - \"1.x\"\n  - \"1.8.x\"\n  - \"1.9.x\"\n  - \"1.10.x\"\n  - master\n\ninstall:\n  - go get github.com/mattn/goveralls\n  - go get golang.org/x/tools/cmd/cover\n  \nscript:\n  - go test -v -race ./.\n  - goveralls -service=travis-ci\n\nnotifications:\n  email: false\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/asciigraph/LICENSE",
    "content": "BSD 3-Clause License\n\nCopyright (c) 2018, Rohit Gupta\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/asciigraph/README.rst",
    "content": ".. -*-restructuredtext-*-\n\nasciigraph\n===========\n\n.. image:: https://travis-ci.org/guptarohit/asciigraph.svg?branch=master\n    :target: https://travis-ci.org/guptarohit/asciigraph\n    :alt: Build status\n\n.. image:: https://goreportcard.com/badge/github.com/guptarohit/asciigraph\n    :target: https://goreportcard.com/report/github.com/guptarohit/asciigraph\n    :alt: Go Report Card\n\n.. image:: https://coveralls.io/repos/github/guptarohit/asciigraph/badge.svg?branch=master\n    :target: https://coveralls.io/github/guptarohit/asciigraph?branch=master\n    :alt: Coverage Status\n\n.. image:: https://godoc.org/github.com/guptarohit/asciigraph?status.svg\n    :target: https://godoc.org/github.com/guptarohit/asciigraph\n    :alt: GoDoc\n\n.. image:: https://img.shields.io/badge/licence-BSD-blue.svg\n    :target: https://github.com/guptarohit/asciigraph/blob/master/LICENSE\n    :alt: License\n\n|\n\nGo package to make lightweight ASCII line graphs ╭┈╯.\n\n.. image:: https://user-images.githubusercontent.com/7895001/41509956-b1b2b3d0-7279-11e8-9d19-d7dea17d5e44.png\n\n\nInstallation\n------------\n\n::\n\n    go get github.com/guptarohit/asciigraph\n\n\nUsage\n-----\n\nBasic graph\n^^^^^^^^^^^\n\n.. code:: go\n\n    package main\n\n    import (\n        \"fmt\"\n        \"github.com/guptarohit/asciigraph\"\n    )\n\n    func main() {\n        data := []float64{3, 4, 9, 6, 2, 4, 5, 8, 5, 10, 2, 7, 2, 5, 6}\n        graph := asciigraph.Plot(data)\n\n        fmt.Println(graph)\n    }\n\nRunning this example would render the following graph:\n\n::\n\n 10.00 ┤        ╭╮\n  9.00 ┤ ╭╮     ││\n  8.00 ┤ ││   ╭╮││\n  7.00 ┤ ││   ││││╭╮\n  6.00 ┤ │╰╮  ││││││ ╭\n  5.00 ┤ │ │ ╭╯╰╯│││╭╯\n  4.00 ┤╭╯ │╭╯   ││││\n  3.00 ┼╯  ││    ││││\n  2.00 ┤   ╰╯    ╰╯╰╯\n\n..\n\n\nCommand line interface\n----------------------\n\nThis package also brings a small utility for command line usage. Assuming\n``$GOPATH/bin`` is in your ``$PATH``, simply ``go get`` it then install CLI.\n\nCLI Installation\n^^^^^^^^^^^^^^^^\n\n::\n\n    go install github.com/guptarohit/asciigraph/cmd/asciigraph\n\nFeed it data points via stdin:\n\n::\n\n $ seq 1 72 | asciigraph -h 10 -c \"plot data from stdin\"\n 72.00 ┼\n 65.55 ┤                                                                  ╭────\n 59.09 ┤                                                           ╭──────╯\n 52.64 ┤                                                    ╭──────╯\n 46.18 ┤                                             ╭──────╯\n 39.73 ┤                                      ╭──────╯\n 33.27 ┤                              ╭───────╯\n 26.82 ┤                       ╭──────╯\n 20.36 ┤                ╭──────╯\n 13.91 ┤         ╭──────╯\n  7.45 ┤  ╭──────╯\n  1.00 ┼──╯\n          plot data from stdin\n\n..\n\n\nAcknowledgement\n----------------\nThis package is golang port of library `asciichart <https://github.com/kroitor/asciichart>`_ written by `@kroitor <https://github.com/kroitor>`_.\n\nContributing\n------------\n\nFeel free to make a pull request! :octocat:\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/asciigraph/asciigraph.go",
    "content": "package asciigraph\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"math\"\n\t\"strings\"\n)\n\n// Plot returns ascii graph for a series.\nfunc Plot(series []float64, options ...Option) string {\n\tvar logMaximum float64\n\tconfig := configure(config{\n\t\tOffset: 3,\n\t}, options)\n\n\tif config.Width > 0 {\n\t\tseries = interpolateArray(series, config.Width)\n\t}\n\n\tminimum, maximum := minMaxFloat64Slice(series)\n\tif config.Min != nil && *config.Min < minimum {\n\t\tminimum = *config.Min\n\t}\n\tif config.Max != nil && *config.Max > maximum {\n\t\tmaximum = *config.Max\n\t}\n\n\tinterval := math.Abs(maximum - minimum)\n\n\tif config.Height <= 0 {\n\t\tif int(interval) <= 0 {\n\t\t\tconfig.Height = int(interval * math.Pow10(int(math.Ceil(-math.Log10(interval)))))\n\t\t} else {\n\t\t\tconfig.Height = int(interval)\n\t\t}\n\t}\n\n\tif config.Offset <= 0 {\n\t\tconfig.Offset = 3\n\t}\n\n\tvar min2 float64\n\tvar max2 float64\n\tvar ratio float64\n\tpadding := 0.0 // if we set height to 10 but min and max are both 0, we need 10 units of padding\n\tif interval != 0 {\n\t\tratio = float64(config.Height) / interval\n\t} else {\n\t\tratio = 1\n\t\tif config.Height > 0 {\n\t\t\tpadding = float64(config.Height)\n\t\t}\n\t}\n\n\tmin2 = round(minimum * ratio)\n\tmax2 = round((maximum + padding) * ratio)\n\n\tintmin2 := int(min2)\n\tintmax2 := int(max2)\n\n\trows := int(math.Abs(float64(intmax2 - intmin2)))\n\twidth := len(series) + config.Offset\n\n\tvar plot [][]string\n\n\t// initialise empty 2D grid\n\tfor i := 0; i < rows+1; i++ {\n\t\tvar line []string\n\t\tfor j := 0; j < width; j++ {\n\t\t\tline = append(line, \" \")\n\t\t}\n\t\tplot = append(plot, line)\n\t}\n\n\tprecision := 2\n\tlogMaximum = math.Log10(math.Max(math.Abs(maximum), math.Abs(minimum))) //to find number of zeros after decimal\n\tif minimum == float64(0) && maximum == float64(0) {\n\t\tlogMaximum = float64(-1)\n\t}\n\n\tif logMaximum < 0 {\n\t\t// negative log\n\t\tif math.Mod(logMaximum, 1) != 0 {\n\t\t\t// non-zero digits after decimal\n\t\t\tprecision = precision + int(math.Abs(logMaximum))\n\t\t} else {\n\t\t\tprecision = precision + int(math.Abs(logMaximum)-1.0)\n\t\t}\n\t} else if logMaximum > 2 {\n\t\tprecision = 0\n\t}\n\n\tmaxNumLength := len(fmt.Sprintf(\"%0.*f\", precision, maximum))\n\tminNumLength := len(fmt.Sprintf(\"%0.*f\", precision, minimum))\n\tmaxWidth := int(math.Max(float64(maxNumLength), float64(minNumLength)))\n\n\t// axis and labels\n\tfor y := intmin2; y < intmax2+1; y++ {\n\t\tvar magnitude float64\n\t\tif rows > 0 {\n\t\t\tmagnitude = maximum - (float64(y-intmin2) * interval / float64(rows))\n\t\t} else {\n\t\t\tmagnitude = float64(y)\n\t\t}\n\n\t\tlabel := fmt.Sprintf(\"%*.*f\", maxWidth+1, precision, magnitude)\n\t\tw := y - intmin2\n\t\th := int(math.Max(float64(config.Offset)-float64(len(label)), 0))\n\n\t\tplot[w][h] = label\n\t\tif y == 0 {\n\t\t\tplot[w][config.Offset-1] = \"┼\"\n\t\t} else {\n\t\t\tplot[w][config.Offset-1] = \"┤\"\n\t\t}\n\t}\n\n\ty0 := int(round(series[0]*ratio) - min2)\n\tvar y1 int\n\n\tplot[rows-y0][config.Offset-1] = \"┼\" // first value\n\n\tfor x := 0; x < len(series)-1; x++ { // plot the line\n\t\ty0 = int(round(series[x+0]*ratio) - float64(intmin2))\n\t\ty1 = int(round(series[x+1]*ratio) - float64(intmin2))\n\t\tif y0 == y1 {\n\t\t\tplot[rows-y0][x+config.Offset] = \"─\"\n\t\t} else {\n\t\t\tif y0 > y1 {\n\t\t\t\tplot[rows-y1][x+config.Offset] = \"╰\"\n\t\t\t\tplot[rows-y0][x+config.Offset] = \"╮\"\n\t\t\t} else {\n\t\t\t\tplot[rows-y1][x+config.Offset] = \"╭\"\n\t\t\t\tplot[rows-y0][x+config.Offset] = \"╯\"\n\t\t\t}\n\n\t\t\tstart := int(math.Min(float64(y0), float64(y1))) + 1\n\t\t\tend := int(math.Max(float64(y0), float64(y1)))\n\t\t\tfor y := start; y < end; y++ {\n\t\t\t\tplot[rows-y][x+config.Offset] = \"│\"\n\t\t\t}\n\t\t}\n\t}\n\n\t// join columns\n\tvar lines bytes.Buffer\n\tfor h, horizontal := range plot {\n\t\tif h != 0 {\n\t\t\tlines.WriteRune('\\n')\n\t\t}\n\t\tfor _, v := range horizontal {\n\t\t\tlines.WriteString(v)\n\t\t}\n\t}\n\n\t// add caption if not empty\n\tif config.Caption != \"\" {\n\t\tlines.WriteRune('\\n')\n\t\tlines.WriteString(strings.Repeat(\" \", config.Offset+maxWidth+2))\n\t\tlines.WriteString(config.Caption)\n\t}\n\n\treturn lines.String()\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/asciigraph/options.go",
    "content": "package asciigraph\n\nimport (\n\t\"strings\"\n)\n\n// Option represents a configuration setting.\ntype Option interface {\n\tapply(c *config)\n}\n\n// config holds various graph options\ntype config struct {\n\tWidth, Height int\n\tMin, Max      *float64\n\tOffset        int\n\tCaption       string\n}\n\n// An optionFunc applies an option.\ntype optionFunc func(*config)\n\n// apply implements the Option interface.\nfunc (of optionFunc) apply(c *config) { of(c) }\n\nfunc configure(defaults config, options []Option) *config {\n\tfor _, o := range options {\n\t\to.apply(&defaults)\n\t}\n\treturn &defaults\n}\n\n// Width sets the graphs width. By default, the width of the graph is\n// determined by the number of data points. If the value given is a\n// positive number, the data points are interpolated on the x axis.\n// Values <= 0 reset the width to the default value.\nfunc Width(w int) Option {\n\treturn optionFunc(func(c *config) {\n\t\tif w > 0 {\n\t\t\tc.Width = w\n\t\t} else {\n\t\t\tc.Width = 0\n\t\t}\n\t})\n}\n\n// Height sets the graphs height.\nfunc Height(h int) Option {\n\treturn optionFunc(func(c *config) {\n\t\tif h > 0 {\n\t\t\tc.Height = h\n\t\t} else {\n\t\t\tc.Height = 0\n\t\t}\n\t})\n}\n\n// Min sets the graph's minimum value for the vertical axis. It will be ignored\n// if the series contains a lower value.\nfunc Min(min float64) Option {\n\treturn optionFunc(func(c *config) { c.Min = &min })\n}\n\n// Max sets the graph's maximum value for the vertical axis. It will be ignored\n// if the series contains a bigger value.\nfunc Max(max float64) Option {\n\treturn optionFunc(func(c *config) { c.Max = &max })\n}\n\n// Offset sets the graphs offset.\nfunc Offset(o int) Option {\n\treturn optionFunc(func(c *config) { c.Offset = o })\n}\n\n// Caption sets the graphs caption.\nfunc Caption(caption string) Option {\n\treturn optionFunc(func(c *config) {\n\t\tc.Caption = strings.TrimSpace(caption)\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/asciigraph/utils.go",
    "content": "package asciigraph\n\nimport \"math\"\n\nfunc minMaxFloat64Slice(v []float64) (min, max float64) {\n\tmin = math.Inf(1)\n\tmax = math.Inf(-1)\n\n\tif len(v) == 0 {\n\t\tpanic(\"Empty slice\")\n\t}\n\n\tfor _, e := range v {\n\t\tif e < min {\n\t\t\tmin = e\n\t\t}\n\t\tif e > max {\n\t\t\tmax = e\n\t\t}\n\t}\n\treturn\n}\n\nfunc round(input float64) float64 {\n\tif math.IsNaN(input) {\n\t\treturn math.NaN()\n\t}\n\tsign := 1.0\n\tif input < 0 {\n\t\tsign = -1\n\t\tinput *= -1\n\t}\n\t_, decimal := math.Modf(input)\n\tvar rounded float64\n\tif decimal >= 0.5 {\n\t\trounded = math.Ceil(input)\n\t} else {\n\t\trounded = math.Floor(input)\n\t}\n\treturn rounded * sign\n}\n\nfunc linearInterpolate(before, after, atPoint float64) float64 {\n\treturn before + (after-before)*atPoint\n}\n\nfunc interpolateArray(data []float64, fitCount int) []float64 {\n\n\tvar interpolatedData []float64\n\n\tspringFactor := float64(len(data)-1) / float64(fitCount-1)\n\tinterpolatedData = append(interpolatedData, data[0])\n\n\tfor i := 1; i < fitCount-1; i++ {\n\t\tspring := float64(i) * springFactor\n\t\tbefore := math.Floor(spring)\n\t\tafter := math.Ceil(spring)\n\t\tatPoint := spring - before\n\t\tinterpolatedData = append(interpolatedData, linearInterpolate(data[int(before)], data[int(after)], atPoint))\n\t}\n\tinterpolatedData = append(interpolatedData, data[len(data)-1])\n\treturn interpolatedData\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/.gitignore",
    "content": "*.swp\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/AUTHORS",
    "content": "# This is the official list of gocui authors for copyright purposes.\n\n# Names should be added to this file as\n#\tName or Organization <email address> contribution\n#\t\tContribution\n# The email address is not required for organizations.\n\nRoi Martin <jroi.martin@gmail.com>\n\tMain developer\n\nRyan Sullivan <kayoticsully@gmail.com>\n\tToggleable view frames\n\nMatthieu Rakotojaona <matthieu.rakotojaona@gmail.com>\n\tWrapped views\n\nHarry Lawrence <hazbo@gmx.com>\n\tBasic mouse support\n\nDanny Tylman <dtylman@gmail.com>\n\tMasked views\n\nFrederik Deweerdt <frederik.deweerdt@gmail.com>\n\tColored fonts\n\nHenri Koski <henri.t.koski@gmail.com>\n\tCustom current view color\n\nDustin Willis Webber <dustin.webber@gmail.com>\n\t256-colors output mode support\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/CHANGES_tcell.md",
    "content": "# Change from termbox to tcell\n\nOriginal GOCUI was written on top of [termbox](https://github.com/nsf/termbox-go) package. This document describes changes which were done to be able to use to [tcell/v2](https://github.com/gdamore/tcell) package.\n\n## Attribute color\n\nAttribute type represents a terminal attribute like color and font effects. Color and font effects can be combined using bitwise OR (`|`).\n\nIn `termbox` colors were represented by range 1 to 256. `0` was default color which uses the terminal default setting.\n\nIn `tcell` colors can be represented in 24bit, and all of them starts from 0. Valid colors have special flag which gives them real value starting from 4294967296. `0` is a default similart to `termbox`.\nThe change to support all these colors was made in a way, that original colors from 1 to 256 are backward compatible and if user has color specified as\n`Attribute(ansicolor+1)` without the valid color flag, it will be translated to `tcell` color by subtracting 1 and making the color valid by adding the flag. This should ensure backward compatibility.\n\nAll the color constants are the same with different underlying values. From user perspective, this should be fine unless some arithmetic is done with it. For example `ColorBlack` was `1` in original version but is `4294967296` in new version.\n\nGOCUI provides a few helper functions which could be used to get the real color value or to create a color attribute.\n\n- `(a Attribute).Hex()` - returns `int32` value of the color represented as `Red << 16 | Green << 8 | Blue`\n- `(a Attribute).RGB()` - returns 3 `int32` values for red, green and blue color.\n- `GetColor(string)` - creates `Attribute` from color passed as a string. This can be hex value or color name (W3C name).\n- `Get256Color(int32)` - creates `Attribute` from color number (ANSI colors).\n- `GetRGBColor(int32)` - creates `Attribute` from color number created the same way as `Hex()` function returns.\n- `NewRGBColor(int32, int32, int32)` - creates `Attribute` from color numbers for red, green and blue values.\n\n## Attribute font effect\n\nThere were 3 attributes for font effect, `AttrBold`, `AttrUnderline` and `AttrReverse`.\n\n`tcell` supports more attributes, so they were added. All of these attributes have different values from before. However they can be used in the same way as before.\n\nAll the font effect attributes:\n- `AttrBold`\n- `AttrBlink`\n- `AttrReverse`\n- `AttrUnderline`\n- `AttrDim`\n- `AttrItalic`\n- `AttrStrikeThrough`\n\n## OutputMode\n\n`OutputMode` in `termbox` was used to translate colors into the correct range. So for example in `OutputGrayscale` you had colors from 1 - 24 all representing gray colors in range 232 - 255, and white and black color.\n\n`tcell` colors are 24bit and they are translated by the library into the color which can be read by terminal.\n\nThe original translation from `termbox` was included in GOCUI to be backward compatible. This is enabled in all the original modes: `OutputNormal`, `Output216`, `OutputGrayscale` and `Output256`.\n\n`OutputTrue` is a new mode. It is recomended, because in this mode GOCUI doesn't do any kind of translation of the colors and pass them directly to `tcell`. If user wants to use true color in terminal and this mode doesn't work, it might be because of the terminal setup. `tcell` has a documentation what needs to be done, but in short `COLORTERM=truecolor` environment variable should help (see [_examples/colorstrue.go](./_examples/colorstrue.go)). Other way would be to have `TERM` environment variable having value with suffix `-truecolor`. To disable true color set `TCELL_TRUECOLOR=disable`.\n\n## Keybinding\n\n`termbox` had different way of handling input from terminal than `tcell`. This leads to some adjustement on how the keys are represented.\nIn general, all the keys in GOCUI should be presented from before, but the underlying values might be different. This could lead to some problems if a user uses different parser to create the `Key` for the keybinding. If using GOCUI parser, everything should be ok.\n\nMouse is handled differently in `tcell`, but translation was done to keep it in the same way as it was before. However this was harder to test due to different behaviour across the platforms, so if anything is missing or not working, please report.\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, sex characteristics, gender identity and expression,\nlevel of experience, education, socio-economic status, nationality, personal\nappearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\n advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at mkopenga@gmail.com. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see\nhttps://www.contributor-covenant.org/faq\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/CONTRIBUTING.md",
    "content": "# Contributing\n\nEveryone is welcome to help make gocui better!\n\nWhen contributing to this repository, please first discuss the change you wish\nto make via issue, email, or any other method with the owners of this repository\nbefore making a change. \n\n## So all code changes happen through Pull Requests\nPull requests are the best way to propose changes to the codebase. We actively\nwelcome your pull requests:\n\n1. Fork the repo and create your branch from `master` with a name like `feature/contributors-guide`.\n2. If you've added code that should be tested, add tests.\n3. If you've added code that need documentation, update the documentation.\n4. Make sure your code follows the [effective go](https://golang.org/doc/effective_go.html) guidelines as much as possible.\n5. Be sure to test your modifications.\n6. Make sure your branch is up to date with the master branch.\n7. Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).\n8. Create that pull request!\n\n## Code of conduct\nPlease note by participating in this project, you agree to abide by the [code of conduct].\n\n[code of conduct]: https://github.com/awesome-gocui/gocui/blob/master/CODE-OF-CONDUCT.md\n\n## Any contributions you make will be under the license indicated in the [license](LICENSE.md)\nIn short, when you submit code changes, your submissions are understood to be\nunder the same license as the rest of project. Feel free to contact the maintainers if that's a concern.\n\n## Report bugs using Github's [issues](https://github.com/awesome-gocui/gocui/issues)\nWe use GitHub issues to track public bugs. Report a bug by [opening a new\nissue](https://github.com/awesome-gocui/gocui/issues/new); it's that easy!"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/LICENSE",
    "content": "Copyright (c) 2014 The gocui Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n    * Redistributions of source code must retain the above copyright\n      notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in the\n      documentation and/or other materials provided with the distribution.\n    * Neither the name of the gocui Authors nor the names of its contributors\n      may be used to endorse or promote products derived from this software\n      without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/README.md",
    "content": "# GOCUI - Go Console User Interface\n[![CircleCI](https://circleci.com/gh/awesome-gocui/gocui/tree/master.svg?style=svg)](https://circleci.com/gh/awesome-gocui/gocui/tree/master)\n[![CodeCov](https://codecov.io/gh/awesome-gocui/gocui/branch/master/graph/badge.svg)](https://codecov.io/gh/awesome-gocui/gocui)\n[![Go Report Card](https://goreportcard.com/badge/github.com/awesome-gocui/gocui)](https://goreportcard.com/report/github.com/awesome-gocui/gocui)\n[![GolangCI](https://golangci.com/badges/github.com/awesome-gocui/gocui.svg)](https://golangci.com/badges/github.com/awesome-gocui/gocui.svg)\n[![GoDoc](https://godoc.org/github.com/awesome-gocui/gocui?status.svg)](https://godoc.org/github.com/awesome-gocui/gocui)\n![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/awesome-gocui/gocui.svg)\n\nMinimalist Go package aimed at creating Console User Interfaces.\nA community fork based on the amazing work of [jroimartin](https://github.com/jroimartin/gocui)\n\n## Features\n\n* Minimalist API.\n* Views (the \"windows\" in the GUI) implement the interface io.ReadWriter.\n* Support for overlapping views.\n* The GUI can be modified at runtime (concurrent-safe).\n* Global and view-level keybindings.\n* Mouse support.\n* Colored text.\n* Customizable editing mode.\n* Easy to build reusable widgets, complex layouts...\n\n## About fork\n\nThis fork has many improvements over the original work from [jroimartin](https://github.com/jroimartin/gocui).\n\n* Written ontop of TCell\n* Better wide character support\n* Support for 1 Line height views\n* Better support for running in docker container\n* Customize frame colors\n* Improved code comments and quality\n* Many small improvements\n* Change Visibility of views\n\nFor information about this org see: [awesome-gocui/about](https://github.com/awesome-gocui/about).\n\n## Installation\n\nExecute:\n\n```\n$ go get github.com/awesome-gocui/gocui\n```\n\n## Documentation\n\nExecute:\n\n```\n$ go doc github.com/awesome-gocui/gocui\n```\n\nOr visit [godoc.org](https://godoc.org/github.com/awesome-gocui/gocui) to read it\nonline.\n\n## Example\nSee the [_example](./_example/) folder for more examples\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\n\t\"github.com/awesome-gocui/gocui\"\n)\n\nfunc main() {\n\tg, err := gocui.NewGui(gocui.OutputNormal, true)\n\tif err != nil {\n\t\tlog.Panicln(err)\n\t}\n\tdefer g.Close()\n\n\tg.SetManagerFunc(layout)\n\n\tif err := g.SetKeybinding(\"\", gocui.KeyCtrlC, gocui.ModNone, quit); err != nil {\n\t\tlog.Panicln(err)\n\t}\n\n\tif err := g.MainLoop(); err != nil && !gocui.IsQuit(err) {\n\t\tlog.Panicln(err)\n\t}\n}\n\nfunc layout(g *gocui.Gui) error {\n\tmaxX, maxY := g.Size()\n\tif v, err := g.SetView(\"hello\", maxX/2-7, maxY/2, maxX/2+7, maxY/2+2, 0); err != nil {\n\t\tif !gocui.IsUnknownView(err) {\n\t\t\treturn err\n\t\t}\n\n\t\tif _, err := g.SetCurrentView(\"hello\"); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tfmt.Fprintln(v, \"Hello world!\")\n\t}\n\n\treturn nil\n}\n\nfunc quit(g *gocui.Gui, v *gocui.View) error {\n\treturn gocui.ErrQuit\n}\n```\n\n## Screenshots\n\n![r2cui](https://cloud.githubusercontent.com/assets/1223476/19418932/63645052-93ce-11e6-867c-da5e97e37237.png)\n\n![_examples/demo.go](https://cloud.githubusercontent.com/assets/1223476/5992750/720b84f0-aa36-11e4-88ec-296fa3247b52.png)\n\n![_examples/dynamic.go](https://cloud.githubusercontent.com/assets/1223476/5992751/76ad5cc2-aa36-11e4-8204-6a90269db827.png)\n\n## Projects using gocui\n\n* [komanda-cli](https://github.com/mephux/komanda-cli): IRC Client For Developers.\n* [vuls](https://github.com/future-architect/vuls): Agentless vulnerability scanner for Linux/FreeBSD.\n* [wuzz](https://github.com/asciimoo/wuzz): Interactive cli tool for HTTP inspection.\n* [httplab](https://github.com/gchaincl/httplab): Interactive web server.\n* [domainr](https://github.com/MichaelThessel/domainr): Tool that checks the availability of domains based on keywords.\n* [gotime](https://github.com/nanohard/gotime): Time tracker for projects and tasks.\n* [claws](https://github.com/thehowl/claws): Interactive command line client for testing websockets.\n* [terminews](http://github.com/antavelos/terminews): Terminal based RSS reader.\n* [diagram](https://github.com/esimov/diagram): Tool to convert ascii arts into hand drawn diagrams.\n* [pody](https://github.com/JulienBreux/pody): CLI app to manage Pods in a Kubernetes cluster.\n* [kubexp](https://github.com/alitari/kubexp): Kubernetes client.\n* [kcli](https://github.com/cswank/kcli): Tool for inspecting kafka topics/partitions/messages.\n* [fac](https://github.com/mkchoi212/fac): git merge conflict resolver\n* [jsonui](https://github.com/gulyasm/jsonui): Interactive JSON explorer for your terminal.\n* [cointop](https://github.com/miguelmota/cointop): Interactive terminal based UI application for tracking cryptocurrencies.\n* [lazygit](https://github.com/jesseduffield/lazygit): simple terminal UI for git commands.\n* [lazydocker](https://github.com/jesseduffield/lazydocker): The lazier way to manage everything docker.\n\nNote: if your project is not listed here, let us know! :)\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/attribute.go",
    "content": "// Copyright 2020 The gocui Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage gocui\n\nimport \"github.com/gdamore/tcell/v2\"\n\n// Attribute affects the presentation of characters, such as color, boldness, etc.\ntype Attribute uint64\n\nconst (\n\t// ColorDefault is used to leave the Color unchanged from whatever system or teminal default may exist.\n\tColorDefault = Attribute(tcell.ColorDefault)\n\n\t// AttrIsValidColor is used to indicate the color value is actually\n\t// valid (initialized).  This is useful to permit the zero value\n\t// to be treated as the default.\n\tAttrIsValidColor = Attribute(tcell.ColorValid)\n\n\t// AttrIsRGBColor is used to indicate that the Attribute value is RGB value of color.\n\t// The lower order 3 bytes are RGB.\n\t// (It's not a color in basic ANSI range 256).\n\tAttrIsRGBColor = Attribute(tcell.ColorIsRGB)\n\n\t// AttrColorBits is a mask where color is located in Attribute\n\tAttrColorBits = 0xffffffffff // roughly 5 bytes, tcell uses 4 bytes and half-byte as a special flags for color (rest is reserved for future)\n\n\t// AttrStyleBits is a mask where character attributes (e.g.: bold, italic, underline) are located in Attribute\n\tAttrStyleBits = 0xffffff0000000000 // remaining 3 bytes in the 8 bytes Attribute (tcell is not using it, so we should be fine)\n)\n\n// Color attributes. These colors are compatible with tcell.Color type and can be expanded like:\n//\n//\tg.FgColor := gocui.Attribute(tcell.ColorLime)\nconst (\n\tColorBlack Attribute = AttrIsValidColor + iota\n\tColorRed\n\tColorGreen\n\tColorYellow\n\tColorBlue\n\tColorMagenta\n\tColorCyan\n\tColorWhite\n)\n\n// grayscale indexes (for backward compatibility with termbox-go original grayscale)\nvar grayscale = []tcell.Color{\n\t16, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,\n\t245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 231,\n}\n\n// Attributes are not colors, but effects (e.g.: bold, dim) which affect the display of text.\n// They can be combined.\nconst (\n\tAttrBold Attribute = 1 << (40 + iota)\n\tAttrBlink\n\tAttrReverse\n\tAttrUnderline\n\tAttrDim\n\tAttrItalic\n\tAttrStrikeThrough\n\tAttrNone Attribute = 0 // Just normal text.\n)\n\n// AttrAll represents all the text effect attributes turned on\nconst AttrAll = AttrBold | AttrBlink | AttrReverse | AttrUnderline | AttrDim | AttrItalic\n\n// IsValidColor indicates if the Attribute is a valid color value (has been set).\nfunc (a Attribute) IsValidColor() bool {\n\treturn a&AttrIsValidColor != 0\n}\n\n// Hex returns the color's hexadecimal RGB 24-bit value with each component\n// consisting of a single byte, ala R << 16 | G << 8 | B.  If the color\n// is unknown or unset, -1 is returned.\n//\n// This function produce the same output as `tcell.Hex()` with additional\n// support for `termbox-go` colors (to 256).\nfunc (a Attribute) Hex() int32 {\n\tif !a.IsValidColor() {\n\t\treturn -1\n\t}\n\ttc := getTcellColor(a, OutputTrue)\n\treturn tc.Hex()\n}\n\n// RGB returns the red, green, and blue components of the color, with\n// each component represented as a value 0-255.  If the color\n// is unknown or unset, -1 is returned for each component.\n//\n// This function produce the same output as `tcell.RGB()` with additional\n// support for `termbox-go` colors (to 256).\nfunc (a Attribute) RGB() (int32, int32, int32) {\n\tv := a.Hex()\n\tif v < 0 {\n\t\treturn -1, -1, -1\n\t}\n\treturn (v >> 16) & 0xff, (v >> 8) & 0xff, v & 0xff\n}\n\n// GetColor creates a Color from a color name (W3C name). A hex value may\n// be supplied as a string in the format \"#ffffff\".\nfunc GetColor(color string) Attribute {\n\treturn Attribute(tcell.GetColor(color))\n}\n\n// Get256Color creates Attribute which stores ANSI color (0-255)\nfunc Get256Color(color int32) Attribute {\n\treturn Attribute(color) | AttrIsValidColor\n}\n\n// GetRGBColor creates Attribute which stores RGB color.\n// Color is passed as 24bit RGB value, where R << 16 | G << 8 | B\nfunc GetRGBColor(color int32) Attribute {\n\treturn Attribute(color) | AttrIsValidColor | AttrIsRGBColor\n}\n\n// NewRGBColor creates Attribute which stores RGB color.\nfunc NewRGBColor(r, g, b int32) Attribute {\n\treturn Attribute(tcell.NewRGBColor(r, g, b))\n}\n\n// getTcellColor transform  Attribute into tcell.Color\nfunc getTcellColor(c Attribute, omode OutputMode) tcell.Color {\n\tc = c & AttrColorBits\n\t// Default color is 0 in tcell/v2 and was 0 in termbox-go, so we are good here\n\tif c == ColorDefault {\n\t\treturn tcell.ColorDefault\n\t}\n\n\ttc := tcell.ColorDefault\n\t// Check if we have valid color\n\tif c.IsValidColor() {\n\t\ttc = tcell.Color(c)\n\t} else if c > 0 && c <= 256 {\n\t\t// It's not valid color, but it has value in range 1-256\n\t\t// This is old Attribute style of color from termbox-go (black=1, etc.)\n\t\t// convert to tcell color (black=0|ColorValid)\n\t\ttc = tcell.Color(c-1) | tcell.ColorValid\n\t}\n\n\tswitch omode {\n\tcase OutputTrue:\n\t\treturn tc\n\tcase OutputNormal:\n\t\ttc &= tcell.Color(0xf) | tcell.ColorValid\n\tcase Output256:\n\t\ttc &= tcell.Color(0xff) | tcell.ColorValid\n\tcase Output216:\n\t\ttc &= tcell.Color(0xff)\n\t\tif tc > 215 {\n\t\t\treturn tcell.ColorDefault\n\t\t}\n\t\ttc += tcell.Color(16) | tcell.ColorValid\n\tcase OutputGrayscale:\n\t\ttc &= tcell.Color(0x1f)\n\t\tif tc > 26 {\n\t\t\treturn tcell.ColorDefault\n\t\t}\n\t\ttc = grayscale[tc] | tcell.ColorValid\n\tdefault:\n\t\treturn tcell.ColorDefault\n\t}\n\treturn tc\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/doc.go",
    "content": "// Copyright 2014 The gocui Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/*\nPackage gocui allows to create console user interfaces.\n\nCreate a new GUI:\n\n\tg, err := gocui.NewGui(gocui.OutputNormal, false)\n\tif err != nil {\n\t\t// handle error\n\t}\n\tdefer g.Close()\n\n\t// Set GUI managers and key bindings\n\t// ...\n\n\tif err := g.MainLoop(); err != nil && !gocui.IsQuit(err) {\n\t\t// handle error\n\t}\n\nSet GUI managers:\n\n\tg.SetManager(mgr1, mgr2)\n\nManagers are in charge of GUI's layout and can be used to build widgets. On\neach iteration of the GUI's main loop, the Layout function of each configured\nmanager is executed. Managers are used to set-up and update the application's\nmain views, being possible to freely change them during execution. Also, it is\nimportant to mention that a main loop iteration is executed on each reported\nevent (key-press, mouse event, window resize, etc).\n\nGUIs are composed by Views, you can think of it as buffers. Views implement the\nio.ReadWriter interface, so you can just write to them if you want to modify\ntheir content. The same is valid for reading.\n\nCreate and initialize a view with absolute coordinates:\n\n\tif v, err := g.SetView(\"viewname\", 2, 2, 22, 7, 0); err != nil {\n\t\tif !gocui.IsUnknownView(err) {\n\t\t\t// handle error\n\t\t}\n\t\tfmt.Fprintln(v, \"This is a new view\")\n\t\t// ...\n\t}\n\nViews can also be created using relative coordinates:\n\n\tmaxX, maxY := g.Size()\n\tif v, err := g.SetView(\"viewname\", maxX/2-30, maxY/2, maxX/2+30, maxY/2+2, 0); err != nil {\n\t\t// ...\n\t}\n\nConfigure keybindings:\n\n\tif err := g.SetKeybinding(\"viewname\", gocui.KeyEnter, gocui.ModNone, fcn); err != nil {\n\t\t// handle error\n\t}\n\ngocui implements full mouse support that can be enabled with:\n\n\tg.Mouse = true\n\nMouse events are handled like any other keybinding:\n\n\tif err := g.SetKeybinding(\"viewname\", gocui.MouseLeft, gocui.ModNone, fcn); err != nil {\n\t\t// handle error\n\t}\n\nIMPORTANT: Views can only be created, destroyed or updated in three ways: from\nthe Layout function within managers, from keybinding callbacks or via\n*Gui.Update(). The reason for this is that it allows gocui to be\nconcurrent-safe. So, if you want to update your GUI from a goroutine, you must\nuse *Gui.Update(). For example:\n\n\tg.Update(func(g *gocui.Gui) error {\n\t\tv, err := g.View(\"viewname\")\n\t\tif err != nil {\n\t\t\t// handle error\n\t\t}\n\t\tv.Clear()\n\t\tfmt.Fprintln(v, \"Writing from different goroutines\")\n\t\treturn nil\n\t})\n\nBy default, gocui provides a basic editing mode. This mode can be extended\nand customized creating a new Editor and assigning it to *View.Editor:\n\n\ttype Editor interface {\n\t\tEdit(v *View, key Key, ch rune, mod Modifier)\n\t}\n\nDefaultEditor can be taken as example to create your own custom Editor:\n\n\tvar DefaultEditor Editor = EditorFunc(simpleEditor)\n\n\tfunc simpleEditor(v *View, key Key, ch rune, mod Modifier) {\n\t\tswitch {\n\t\tcase ch != 0 && mod == 0:\n\t\t\tv.EditWrite(ch)\n\t\tcase key == KeySpace:\n\t\t\tv.EditWrite(' ')\n\t\tcase key == KeyBackspace || key == KeyBackspace2:\n\t\t\tv.EditDelete(true)\n\t\t// ...\n\t\t}\n\t}\n\nColored text:\n\nViews allow to add colored text using ANSI colors. For example:\n\n\tfmt.Fprintln(v, \"\\x1b[0;31mHello world\")\n\nFor more information, see the examples in folder \"_examples/\".\n*/\npackage gocui\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/edit.go",
    "content": "// Copyright 2014 The gocui Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage gocui\n\nimport (\n\t\"unicode\"\n)\n\n// Editor interface must be satisfied by gocui editors.\ntype Editor interface {\n\tEdit(v *View, key Key, ch rune, mod Modifier) bool\n}\n\n// The EditorFunc type is an adapter to allow the use of ordinary functions as\n// Editors. If f is a function with the appropriate signature, EditorFunc(f)\n// is an Editor object that calls f.\ntype EditorFunc func(v *View, key Key, ch rune, mod Modifier) bool\n\n// Edit calls f(v, key, ch, mod)\nfunc (f EditorFunc) Edit(v *View, key Key, ch rune, mod Modifier) bool {\n\treturn f(v, key, ch, mod)\n}\n\n// DefaultEditor is the default editor.\nvar DefaultEditor Editor = EditorFunc(SimpleEditor)\n\n// SimpleEditor is used as the default gocui editor.\nfunc SimpleEditor(v *View, key Key, ch rune, mod Modifier) bool {\n\tswitch {\n\tcase key == KeyBackspace || key == KeyBackspace2:\n\t\tv.TextArea.BackSpaceChar()\n\tcase key == KeyCtrlD || key == KeyDelete:\n\t\tv.TextArea.DeleteChar()\n\tcase key == KeyArrowDown:\n\t\tv.TextArea.MoveCursorDown()\n\tcase key == KeyArrowUp:\n\t\tv.TextArea.MoveCursorUp()\n\tcase key == KeyArrowLeft && (mod&ModAlt) != 0:\n\t\tv.TextArea.MoveLeftWord()\n\tcase key == KeyArrowLeft:\n\t\tv.TextArea.MoveCursorLeft()\n\tcase key == KeyArrowRight && (mod&ModAlt) != 0:\n\t\tv.TextArea.MoveRightWord()\n\tcase key == KeyArrowRight:\n\t\tv.TextArea.MoveCursorRight()\n\tcase key == KeyEnter:\n\t\tv.TextArea.TypeRune('\\n')\n\tcase key == KeySpace:\n\t\tv.TextArea.TypeRune(' ')\n\tcase key == KeyInsert:\n\t\tv.TextArea.ToggleOverwrite()\n\tcase key == KeyCtrlU:\n\t\tv.TextArea.DeleteToStartOfLine()\n\tcase key == KeyCtrlK:\n\t\tv.TextArea.DeleteToEndOfLine()\n\tcase key == KeyCtrlA || key == KeyHome:\n\t\tv.TextArea.GoToStartOfLine()\n\tcase key == KeyCtrlE || key == KeyEnd:\n\t\tv.TextArea.GoToEndOfLine()\n\tcase key == KeyCtrlW:\n\t\tv.TextArea.BackSpaceWord()\n\tcase key == KeyCtrlY:\n\t\tv.TextArea.Yank()\n\tcase unicode.IsPrint(ch):\n\t\tv.TextArea.TypeRune(ch)\n\tdefault:\n\t\treturn false\n\t}\n\n\tv.RenderTextArea()\n\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/escape.go",
    "content": "// Copyright 2014 The gocui Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage gocui\n\nimport (\n\t\"strconv\"\n\n\t\"github.com/go-errors/errors\"\n)\n\ntype escapeInterpreter struct {\n\tstate                  escapeState\n\tcurch                  rune\n\tcsiParam               []string\n\tcurFgColor, curBgColor Attribute\n\tmode                   OutputMode\n\tinstruction            instruction\n}\n\ntype (\n\tescapeState int\n\tfontEffect  int\n)\n\ntype instruction interface{ isInstruction() }\n\ntype eraseInLineFromCursor struct{}\n\nfunc (self eraseInLineFromCursor) isInstruction() {}\n\ntype noInstruction struct{}\n\nfunc (self noInstruction) isInstruction() {}\n\nconst (\n\tstateNone escapeState = iota\n\tstateEscape\n\tstateCSI\n\tstateParams\n\tstateOSC\n\tstateOSCEscape\n\n\tbold      fontEffect = 1\n\tfaint     fontEffect = 2\n\titalic    fontEffect = 3\n\tunderline fontEffect = 4\n\tblink     fontEffect = 5\n\treverse   fontEffect = 7\n\tstrike    fontEffect = 9\n\n\tsetForegroundColor     int = 38\n\tdefaultForegroundColor int = 39\n\tsetBackgroundColor     int = 48\n\tdefaultBackgroundColor int = 49\n)\n\nvar (\n\terrNotCSI        = errors.New(\"Not a CSI escape sequence\")\n\terrCSIParseError = errors.New(\"CSI escape sequence parsing error\")\n\terrCSITooLong    = errors.New(\"CSI escape sequence is too long\")\n)\n\n// runes in case of error will output the non-parsed runes as a string.\nfunc (ei *escapeInterpreter) runes() []rune {\n\tswitch ei.state {\n\tcase stateNone:\n\t\treturn []rune{0x1b}\n\tcase stateEscape:\n\t\treturn []rune{0x1b, ei.curch}\n\tcase stateCSI:\n\t\treturn []rune{0x1b, '[', ei.curch}\n\tcase stateParams:\n\t\tret := []rune{0x1b, '['}\n\t\tfor _, s := range ei.csiParam {\n\t\t\tret = append(ret, []rune(s)...)\n\t\t\tret = append(ret, ';')\n\t\t}\n\t\treturn append(ret, ei.curch)\n\t}\n\treturn nil\n}\n\n// newEscapeInterpreter returns an escapeInterpreter that will be able to parse\n// terminal escape sequences.\nfunc newEscapeInterpreter(mode OutputMode) *escapeInterpreter {\n\tei := &escapeInterpreter{\n\t\tstate:       stateNone,\n\t\tcurFgColor:  ColorDefault,\n\t\tcurBgColor:  ColorDefault,\n\t\tmode:        mode,\n\t\tinstruction: noInstruction{},\n\t}\n\treturn ei\n}\n\n// reset sets the escapeInterpreter in initial state.\nfunc (ei *escapeInterpreter) reset() {\n\tei.state = stateNone\n\tei.curFgColor = ColorDefault\n\tei.curBgColor = ColorDefault\n\tei.csiParam = nil\n}\n\nfunc (ei *escapeInterpreter) instructionRead() {\n\tei.instruction = noInstruction{}\n}\n\n// parseOne parses a rune. If isEscape is true, it means that the rune is part\n// of an escape sequence, and as such should not be printed verbatim. Otherwise,\n// it's not an escape sequence.\nfunc (ei *escapeInterpreter) parseOne(ch rune) (isEscape bool, err error) {\n\t// Sanity checks\n\tif len(ei.csiParam) > 20 {\n\t\treturn false, errCSITooLong\n\t}\n\tif len(ei.csiParam) > 0 && len(ei.csiParam[len(ei.csiParam)-1]) > 255 {\n\t\treturn false, errCSITooLong\n\t}\n\n\tei.curch = ch\n\n\tswitch ei.state {\n\tcase stateNone:\n\t\tif ch == 0x1b {\n\t\t\tei.state = stateEscape\n\t\t\treturn true, nil\n\t\t}\n\t\treturn false, nil\n\tcase stateEscape:\n\t\tswitch ch {\n\t\tcase '[':\n\t\t\tei.state = stateCSI\n\t\t\treturn true, nil\n\t\tcase ']':\n\t\t\tei.state = stateOSC\n\t\t\treturn true, nil\n\t\tdefault:\n\t\t\treturn false, errNotCSI\n\t\t}\n\tcase stateCSI:\n\t\tswitch {\n\t\tcase ch >= '0' && ch <= '9':\n\t\t\tei.csiParam = append(ei.csiParam, \"\")\n\t\tcase ch == 'm':\n\t\t\tei.csiParam = append(ei.csiParam, \"0\")\n\t\tcase ch == 'K':\n\t\t\t// fall through\n\t\tdefault:\n\t\t\treturn false, errCSIParseError\n\t\t}\n\t\tei.state = stateParams\n\t\tfallthrough\n\tcase stateParams:\n\t\tswitch {\n\t\tcase ch >= '0' && ch <= '9':\n\t\t\tei.csiParam[len(ei.csiParam)-1] += string(ch)\n\t\t\treturn true, nil\n\t\tcase ch == ';':\n\t\t\tei.csiParam = append(ei.csiParam, \"\")\n\t\t\treturn true, nil\n\t\tcase ch == 'm':\n\t\t\tif err := ei.outputCSI(); err != nil {\n\t\t\t\treturn false, errCSIParseError\n\t\t\t}\n\n\t\t\tei.state = stateNone\n\t\t\tei.csiParam = nil\n\t\t\treturn true, nil\n\t\tcase ch == 'K':\n\t\t\tp := 0\n\t\t\tif len(ei.csiParam) != 0 && ei.csiParam[0] != \"\" {\n\t\t\t\tp, err = strconv.Atoi(ei.csiParam[0])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn false, errCSIParseError\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif p == 0 {\n\t\t\t\tei.instruction = eraseInLineFromCursor{}\n\t\t\t} else {\n\t\t\t\t// non-zero values of P not supported\n\t\t\t\tei.instruction = noInstruction{}\n\t\t\t}\n\n\t\t\tei.state = stateNone\n\t\t\tei.csiParam = nil\n\t\t\treturn true, nil\n\t\tdefault:\n\t\t\treturn false, errCSIParseError\n\t\t}\n\tcase stateOSC:\n\t\tswitch ch {\n\t\tcase 0x1b:\n\t\t\tei.state = stateOSCEscape\n\t\t\treturn true, nil\n\t\t}\n\t\treturn true, nil\n\tcase stateOSCEscape:\n\t\tei.state = stateNone\n\t\treturn true, nil\n\t}\n\treturn false, nil\n}\n\nfunc (ei *escapeInterpreter) outputCSI() error {\n\tn := len(ei.csiParam)\n\tfor i := 0; i < n; {\n\t\tp, err := strconv.Atoi(ei.csiParam[i])\n\t\tif err != nil {\n\t\t\treturn errCSIParseError\n\t\t}\n\n\t\tskip := 1\n\t\tswitch {\n\t\tcase p == 0: // reset style and color\n\t\t\tei.curFgColor = ColorDefault\n\t\t\tei.curBgColor = ColorDefault\n\t\tcase p >= 1 && p <= 9: // set style\n\t\t\tei.curFgColor |= getFontEffect(p)\n\t\tcase p >= 21 && p <= 29: // reset style\n\t\t\tei.curFgColor &= ^getFontEffect(p - 20)\n\t\tcase p >= 30 && p <= 37: // set foreground color\n\t\t\tei.curFgColor &= AttrStyleBits\n\t\t\tei.curFgColor |= Get256Color(int32(p) - 30)\n\t\tcase p == setForegroundColor: // set foreground color (256-color or true color)\n\t\t\tvar color Attribute\n\t\t\tvar err error\n\t\t\tcolor, skip, err = ei.csiColor(ei.csiParam[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tei.curFgColor &= AttrStyleBits\n\t\t\tei.curFgColor |= color\n\t\tcase p == defaultForegroundColor: // reset foreground color\n\t\t\tei.curFgColor &= AttrStyleBits\n\t\t\tei.curFgColor |= ColorDefault\n\t\tcase p >= 40 && p <= 47: // set background color\n\t\t\tei.curBgColor &= AttrStyleBits\n\t\t\tei.curBgColor |= Get256Color(int32(p) - 40)\n\t\tcase p == setBackgroundColor: // set background color (256-color or true color)\n\t\t\tvar color Attribute\n\t\t\tvar err error\n\t\t\tcolor, skip, err = ei.csiColor(ei.csiParam[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tei.curBgColor &= AttrStyleBits\n\t\t\tei.curBgColor |= color\n\t\tcase p == defaultBackgroundColor: // reset background color\n\t\t\tei.curBgColor &= AttrStyleBits\n\t\t\tei.curBgColor |= ColorDefault\n\t\tcase p >= 90 && p <= 97: // set bright foreground color\n\t\t\tei.curFgColor &= AttrStyleBits\n\t\t\tei.curFgColor |= Get256Color(int32(p) - 90 + 8)\n\t\tcase p >= 100 && p <= 107: // set bright background color\n\t\t\tei.curBgColor &= AttrStyleBits\n\t\t\tei.curBgColor |= Get256Color(int32(p) - 100 + 8)\n\t\tdefault:\n\t\t}\n\t\ti += skip\n\t}\n\n\treturn nil\n}\n\nfunc (ei *escapeInterpreter) csiColor(param []string) (color Attribute, skip int, err error) {\n\tif len(param) < 2 {\n\t\terr = errCSIParseError\n\t\treturn\n\t}\n\n\tswitch param[1] {\n\tcase \"2\":\n\t\t// 24-bit color\n\t\tif ei.mode < OutputTrue {\n\t\t\terr = errCSIParseError\n\t\t\treturn\n\t\t}\n\t\tif len(param) < 5 {\n\t\t\terr = errCSIParseError\n\t\t\treturn\n\t\t}\n\t\tvar red, green, blue int\n\t\tred, err = strconv.Atoi(param[2])\n\t\tif err != nil {\n\t\t\terr = errCSIParseError\n\t\t\treturn\n\t\t}\n\t\tgreen, err = strconv.Atoi(param[3])\n\t\tif err != nil {\n\t\t\terr = errCSIParseError\n\t\t\treturn\n\t\t}\n\t\tblue, err = strconv.Atoi(param[4])\n\t\tif err != nil {\n\t\t\terr = errCSIParseError\n\t\t\treturn\n\t\t}\n\t\treturn NewRGBColor(int32(red), int32(green), int32(blue)), 5, nil\n\tcase \"5\":\n\t\t// 8-bit color\n\t\tif ei.mode < Output256 {\n\t\t\terr = errCSIParseError\n\t\t\treturn\n\t\t}\n\t\tif len(param) < 3 {\n\t\t\terr = errCSIParseError\n\t\t\treturn\n\t\t}\n\t\tvar hex int\n\t\thex, err = strconv.Atoi(param[2])\n\t\tif err != nil {\n\t\t\terr = errCSIParseError\n\t\t\treturn\n\t\t}\n\t\treturn Get256Color(int32(hex)), 3, nil\n\tdefault:\n\t\terr = errCSIParseError\n\t\treturn\n\t}\n}\n\nfunc getFontEffect(f int) Attribute {\n\tswitch fontEffect(f) {\n\tcase bold:\n\t\treturn AttrBold\n\tcase faint:\n\t\treturn AttrDim\n\tcase italic:\n\t\treturn AttrItalic\n\tcase underline:\n\t\treturn AttrUnderline\n\tcase blink:\n\t\treturn AttrBlink\n\tcase reverse:\n\t\treturn AttrReverse\n\tcase strike:\n\t\treturn AttrStrikeThrough\n\t}\n\treturn AttrNone\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/gui.go",
    "content": "// Copyright 2014 The gocui Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage gocui\n\nimport (\n\t\"context\"\n\tstandardErrors \"errors\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/gdamore/tcell/v2\"\n\t\"github.com/go-errors/errors\"\n\t\"github.com/mattn/go-runewidth\"\n)\n\n// OutputMode represents an output mode, which determines how colors\n// are used.\ntype OutputMode int\n\nvar (\n\t// ErrAlreadyBlacklisted is returned when the keybinding is already blacklisted.\n\tErrAlreadyBlacklisted = standardErrors.New(\"keybind already blacklisted\")\n\n\t// ErrBlacklisted is returned when the keybinding being parsed / used is blacklisted.\n\tErrBlacklisted = standardErrors.New(\"keybind blacklisted\")\n\n\t// ErrNotBlacklisted is returned when a keybinding being whitelisted is not blacklisted.\n\tErrNotBlacklisted = standardErrors.New(\"keybind not blacklisted\")\n\n\t// ErrNoSuchKeybind is returned when the keybinding being parsed does not exist.\n\tErrNoSuchKeybind = standardErrors.New(\"no such keybind\")\n\n\t// ErrUnknownView allows to assert if a View must be initialized.\n\tErrUnknownView = standardErrors.New(\"unknown view\")\n\n\t// ErrQuit is used to decide if the MainLoop finished successfully.\n\tErrQuit = standardErrors.New(\"quit\")\n)\n\nconst (\n\t// OutputNormal provides 8-colors terminal mode.\n\tOutputNormal OutputMode = iota\n\n\t// Output256 provides 256-colors terminal mode.\n\tOutput256\n\n\t// Output216 provides 216 ansi color terminal mode.\n\tOutput216\n\n\t// OutputGrayscale provides greyscale terminal mode.\n\tOutputGrayscale\n\n\t// OutputTrue provides 24bit color terminal mode.\n\t// This mode is recommended even if your terminal doesn't support\n\t// such mode. The colors are represented exactly as you\n\t// write them (no clamping or truncating). `tcell` should take care\n\t// of what your terminal can do.\n\tOutputTrue\n)\n\ntype tabClickHandler func(int) error\n\ntype tabClickBinding struct {\n\tviewName string\n\thandler  tabClickHandler\n}\n\n// TODO: would be good to define inbound and outbound click handlers e.g.\n// clicking on a file is an inbound thing where we don't care what context you're\n// in when it happens, whereas clicking on the main view from the files view is an\n// outbound click with a specific handler. But this requires more thinking about\n// where handlers should live.\ntype ViewMouseBinding struct {\n\t// the view that is clicked\n\tViewName string\n\n\t// the view that has focus when the click occurs.\n\tFocusedView string\n\n\tHandler func(ViewMouseBindingOpts) error\n\n\tModifier Modifier\n\n\t// must be a mouse key\n\tKey Key\n}\n\ntype ViewMouseBindingOpts struct {\n\tX int // i.e. origin x + cursor x\n\tY int // i.e. origin y + cursor y\n}\n\ntype GuiMutexes struct {\n\t// tickingMutex ensures we don't have two loops ticking. The point of 'ticking'\n\t// is to refresh the gui rapidly so that loader characters can be animated.\n\ttickingMutex sync.Mutex\n\n\tViewsMutex sync.Mutex\n}\n\ntype replayedEvents struct {\n\tKeys        chan *TcellKeyEventWrapper\n\tResizes     chan *TcellResizeEventWrapper\n\tMouseEvents chan *TcellMouseEventWrapper\n}\n\ntype RecordingConfig struct {\n\tSpeed  float64\n\tLeeway int\n}\n\n// Gui represents the whole User Interface, including the views, layouts\n// and keybindings.\ntype Gui struct {\n\tRecordingConfig\n\t// ReplayedEvents is for passing pre-recorded input events, for the purposes of testing\n\tReplayedEvents replayedEvents\n\tplayRecording  bool\n\n\ttabClickBindings  []*tabClickBinding\n\tviewMouseBindings []*ViewMouseBinding\n\tgEvents           chan GocuiEvent\n\tuserEvents        chan userEvent\n\tviews             []*View\n\tcurrentView       *View\n\tmanagers          []Manager\n\tkeybindings       []*keybinding\n\tfocusHandler      func(bool) error\n\tmaxX, maxY        int\n\toutputMode        OutputMode\n\tstop              chan struct{}\n\tblacklist         []Key\n\n\t// BgColor and FgColor allow to configure the background and foreground\n\t// colors of the GUI.\n\tBgColor, FgColor, FrameColor Attribute\n\n\t// SelBgColor and SelFgColor allow to configure the background and\n\t// foreground colors of the frame of the current view.\n\tSelBgColor, SelFgColor, SelFrameColor Attribute\n\n\t// If Highlight is true, Sel{Bg,Fg}Colors will be used to draw the\n\t// frame of the current view.\n\tHighlight bool\n\n\t// If ShowListFooter is true then show list footer (i.e. the part that says we're at item 5 out of 10)\n\tShowListFooter bool\n\n\t// If Cursor is true then the cursor is enabled.\n\tCursor bool\n\n\t// If Mouse is true then mouse events will be enabled.\n\tMouse bool\n\n\t// If InputEsc is true, when ESC sequence is in the buffer and it doesn't\n\t// match any known sequence, ESC means KeyEsc.\n\tInputEsc bool\n\n\t// SupportOverlaps is true when we allow for view edges to overlap with other\n\t// view edges\n\tSupportOverlaps bool\n\n\tMutexes GuiMutexes\n\n\tOnSearchEscape func() error\n\t// these keys must either be of type Key of rune\n\tSearchEscapeKey    interface{}\n\tNextSearchMatchKey interface{}\n\tPrevSearchMatchKey interface{}\n\n\tErrorHandler func(error) error\n\n\tscreen         tcell.Screen\n\tsuspendedMutex sync.Mutex\n\tsuspended      bool\n\n\ttaskManager *TaskManager\n}\n\ntype NewGuiOpts struct {\n\tOutputMode      OutputMode\n\tSupportOverlaps bool\n\tPlayRecording   bool\n\tHeadless        bool\n\t// only applicable when Headless is true\n\tWidth int\n\t// only applicable when Headless is true\n\tHeight int\n\n\tRuneReplacements map[rune]string\n}\n\n// NewGui returns a new Gui object with a given output mode.\nfunc NewGui(opts NewGuiOpts) (*Gui, error) {\n\tg := &Gui{}\n\n\tvar err error\n\tif opts.Headless {\n\t\terr = g.tcellInitSimulation(opts.Width, opts.Height)\n\t} else {\n\t\terr = g.tcellInit(runeReplacements)\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif opts.Headless || runtime.GOOS == \"windows\" {\n\t\tg.maxX, g.maxY = g.screen.Size()\n\t} else {\n\t\t// TODO: find out if we actually need this bespoke logic for linux\n\t\tg.maxX, g.maxY, err = g.getTermWindowSize()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tg.outputMode = opts.OutputMode\n\n\tg.stop = make(chan struct{})\n\n\tg.gEvents = make(chan GocuiEvent, 20)\n\tg.userEvents = make(chan userEvent, 20)\n\tg.taskManager = newTaskManager()\n\n\tif opts.PlayRecording {\n\t\tg.ReplayedEvents = replayedEvents{\n\t\t\tKeys:        make(chan *TcellKeyEventWrapper),\n\t\t\tResizes:     make(chan *TcellResizeEventWrapper),\n\t\t\tMouseEvents: make(chan *TcellMouseEventWrapper),\n\t\t}\n\t}\n\n\tg.BgColor, g.FgColor, g.FrameColor = ColorDefault, ColorDefault, ColorDefault\n\tg.SelBgColor, g.SelFgColor, g.SelFrameColor = ColorDefault, ColorDefault, ColorDefault\n\n\t// SupportOverlaps is true when we allow for view edges to overlap with other\n\t// view edges\n\tg.SupportOverlaps = opts.SupportOverlaps\n\n\t// default keys for when searching strings in a view\n\tg.SearchEscapeKey = KeyEsc\n\tg.NextSearchMatchKey = 'n'\n\tg.PrevSearchMatchKey = 'N'\n\n\tg.playRecording = opts.PlayRecording\n\n\treturn g, nil\n}\n\nfunc (g *Gui) NewTask() *TaskImpl {\n\treturn g.taskManager.NewTask()\n}\n\n// An idle listener listens for when the program is idle. This is useful for\n// integration tests which can wait for the program to be idle before taking\n// the next step in the test.\nfunc (g *Gui) AddIdleListener(c chan struct{}) {\n\tg.taskManager.addIdleListener(c)\n}\n\n// Close finalizes the library. It should be called after a successful\n// initialization and when gocui is not needed anymore.\nfunc (g *Gui) Close() {\n\tclose(g.stop)\n\tScreen.Fini()\n}\n\n// Size returns the terminal's size.\nfunc (g *Gui) Size() (x, y int) {\n\treturn g.maxX, g.maxY\n}\n\n// SetRune writes a rune at the given point, relative to the top-left\n// corner of the terminal. It checks if the position is valid and applies\n// the given colors.\nfunc (g *Gui) SetRune(x, y int, ch rune, fgColor, bgColor Attribute) error {\n\tif x < 0 || y < 0 || x >= g.maxX || y >= g.maxY {\n\t\t// swallowing error because it's not that big of a deal\n\t\treturn nil\n\t}\n\ttcellSetCell(x, y, ch, fgColor, bgColor, g.outputMode)\n\treturn nil\n}\n\n// Rune returns the rune contained in the cell at the given position.\n// It checks if the position is valid.\nfunc (g *Gui) Rune(x, y int) (rune, error) {\n\tif x < 0 || y < 0 || x >= g.maxX || y >= g.maxY {\n\t\treturn ' ', errors.New(\"invalid point\")\n\t}\n\tc, _, _, _ := Screen.GetContent(x, y)\n\treturn c, nil\n}\n\n// SetView creates a new view with its top-left corner at (x0, y0)\n// and the bottom-right one at (x1, y1). If a view with the same name\n// already exists, its dimensions are updated; otherwise, the error\n// ErrUnknownView is returned, which allows to assert if the View must\n// be initialized. It checks if the position is valid.\nfunc (g *Gui) SetView(name string, x0, y0, x1, y1 int, overlaps byte) (*View, error) {\n\tif name == \"\" {\n\t\treturn nil, errors.New(\"invalid name\")\n\t}\n\n\tif v, err := g.View(name); err == nil {\n\t\tif v.x0 != x0 || v.x1 != x1 || v.y0 != y0 || v.y1 != y1 {\n\t\t\tv.clearViewLines()\n\t\t}\n\n\t\tv.x0 = x0\n\t\tv.y0 = y0\n\t\tv.x1 = x1\n\t\tv.y1 = y1\n\t\treturn v, nil\n\t}\n\n\tg.Mutexes.ViewsMutex.Lock()\n\n\tv := newView(name, x0, y0, x1, y1, g.outputMode)\n\tv.BgColor, v.FgColor = g.BgColor, g.FgColor\n\tv.SelBgColor, v.SelFgColor = g.SelBgColor, g.SelFgColor\n\tv.Overlaps = overlaps\n\tg.views = append(g.views, v)\n\n\tg.Mutexes.ViewsMutex.Unlock()\n\n\treturn v, errors.Wrap(ErrUnknownView, 0)\n}\n\n// SetViewBeneath sets a view stacked beneath another view\nfunc (g *Gui) SetViewBeneath(name string, aboveViewName string, height int) (*View, error) {\n\taboveView, err := g.View(aboveViewName)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tviewTop := aboveView.y1 + 1\n\treturn g.SetView(name, aboveView.x0, viewTop, aboveView.x1, viewTop+height-1, 0)\n}\n\n// SetViewOnTop sets the given view on top of the existing ones.\nfunc (g *Gui) SetViewOnTop(name string) (*View, error) {\n\tg.Mutexes.ViewsMutex.Lock()\n\tdefer g.Mutexes.ViewsMutex.Unlock()\n\n\tfor i, v := range g.views {\n\t\tif v.name == name {\n\t\t\ts := append(g.views[:i], g.views[i+1:]...)\n\t\t\tg.views = append(s, v)\n\t\t\treturn v, nil\n\t\t}\n\t}\n\treturn nil, errors.Wrap(ErrUnknownView, 0)\n}\n\n// SetViewOnBottom sets the given view on bottom of the existing ones.\nfunc (g *Gui) SetViewOnBottom(name string) (*View, error) {\n\tg.Mutexes.ViewsMutex.Lock()\n\tdefer g.Mutexes.ViewsMutex.Unlock()\n\n\tfor i, v := range g.views {\n\t\tif v.name == name {\n\t\t\ts := append(g.views[:i], g.views[i+1:]...)\n\t\t\tg.views = append([]*View{v}, s...)\n\t\t\treturn v, nil\n\t\t}\n\t}\n\treturn nil, errors.Wrap(ErrUnknownView, 0)\n}\n\nfunc (g *Gui) SetViewOnTopOf(toMove string, other string) error {\n\tg.Mutexes.ViewsMutex.Lock()\n\tdefer g.Mutexes.ViewsMutex.Unlock()\n\n\tif toMove == other {\n\t\treturn nil\n\t}\n\n\t// need to find the two current positions and then move toMove before other in the list.\n\ttoMoveIndex := -1\n\totherIndex := -1\n\n\tfor i, v := range g.views {\n\t\tif v.name == toMove {\n\t\t\ttoMoveIndex = i\n\t\t}\n\n\t\tif v.name == other {\n\t\t\totherIndex = i\n\t\t}\n\t}\n\n\tif toMoveIndex == -1 || otherIndex == -1 {\n\t\treturn errors.Wrap(ErrUnknownView, 0)\n\t}\n\n\t// already on top\n\tif toMoveIndex > otherIndex {\n\t\treturn nil\n\t}\n\n\t// need to actually do it the other way around. Last is highest\n\tviewToMove := g.views[toMoveIndex]\n\n\tg.views = append(g.views[:toMoveIndex], g.views[toMoveIndex+1:]...)\n\tg.views = append(g.views[:otherIndex], append([]*View{viewToMove}, g.views[otherIndex:]...)...)\n\treturn nil\n}\n\n// replaces the content in toView with the content in fromView\nfunc (g *Gui) CopyContent(fromView *View, toView *View) {\n\tg.Mutexes.ViewsMutex.Lock()\n\tdefer g.Mutexes.ViewsMutex.Unlock()\n\n\ttoView.CopyContent(fromView)\n}\n\n// Views returns all the views in the GUI.\nfunc (g *Gui) Views() []*View {\n\treturn g.views\n}\n\n// View returns a pointer to the view with the given name, or error\n// ErrUnknownView if a view with that name does not exist.\nfunc (g *Gui) View(name string) (*View, error) {\n\tg.Mutexes.ViewsMutex.Lock()\n\tdefer g.Mutexes.ViewsMutex.Unlock()\n\n\tfor _, v := range g.views {\n\t\tif v.name == name {\n\t\t\treturn v, nil\n\t\t}\n\t}\n\treturn nil, errors.Wrap(ErrUnknownView, 0)\n}\n\n// VisibleViewByPosition returns a pointer to a view matching the given position, or\n// error ErrUnknownView if a view in that position does not exist.\nfunc (g *Gui) VisibleViewByPosition(x, y int) (*View, error) {\n\tg.Mutexes.ViewsMutex.Lock()\n\tdefer g.Mutexes.ViewsMutex.Unlock()\n\n\t// traverse views in reverse order checking top views first\n\tfor i := len(g.views); i > 0; i-- {\n\t\tv := g.views[i-1]\n\n\t\tif !v.Visible {\n\t\t\tcontinue\n\t\t}\n\n\t\tframeOffset := 0\n\t\tif v.Frame {\n\t\t\tframeOffset = 1\n\t\t}\n\t\tif x > v.x0-frameOffset && x < v.x1+frameOffset && y > v.y0-frameOffset && y < v.y1+frameOffset {\n\t\t\treturn v, nil\n\t\t}\n\t}\n\treturn nil, errors.Wrap(ErrUnknownView, 0)\n}\n\n// ViewPosition returns the coordinates of the view with the given name, or\n// error ErrUnknownView if a view with that name does not exist.\nfunc (g *Gui) ViewPosition(name string) (x0, y0, x1, y1 int, err error) {\n\tg.Mutexes.ViewsMutex.Lock()\n\tdefer g.Mutexes.ViewsMutex.Unlock()\n\n\tfor _, v := range g.views {\n\t\tif v.name == name {\n\t\t\treturn v.x0, v.y0, v.x1, v.y1, nil\n\t\t}\n\t}\n\treturn 0, 0, 0, 0, errors.Wrap(ErrUnknownView, 0)\n}\n\n// DeleteView deletes a view by name.\nfunc (g *Gui) DeleteView(name string) error {\n\tg.Mutexes.ViewsMutex.Lock()\n\tdefer g.Mutexes.ViewsMutex.Unlock()\n\n\tfor i, v := range g.views {\n\t\tif v.name == name {\n\t\t\tg.views = append(g.views[:i], g.views[i+1:]...)\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn errors.Wrap(ErrUnknownView, 0)\n}\n\n// SetCurrentView gives the focus to a given view.\nfunc (g *Gui) SetCurrentView(name string) (*View, error) {\n\tg.Mutexes.ViewsMutex.Lock()\n\tdefer g.Mutexes.ViewsMutex.Unlock()\n\n\tfor _, v := range g.views {\n\t\tif v.name == name {\n\t\t\tg.currentView = v\n\t\t\treturn v, nil\n\t\t}\n\t}\n\treturn nil, errors.Wrap(ErrUnknownView, 0)\n}\n\n// CurrentView returns the currently focused view, or nil if no view\n// owns the focus.\nfunc (g *Gui) CurrentView() *View {\n\treturn g.currentView\n}\n\n// SetKeybinding creates a new keybinding. If viewname equals to \"\"\n// (empty string) then the keybinding will apply to all views. key must\n// be a rune or a Key.\n//\n// When mouse keys are used (MouseLeft, MouseRight, ...), modifier might not work correctly.\n// It behaves differently on different platforms. Somewhere it doesn't register Alt key press,\n// on others it might report Ctrl as Alt. It's not consistent and therefore it's not recommended\n// to use with mouse keys.\nfunc (g *Gui) SetKeybinding(viewname string, key interface{}, mod Modifier, handler func(*Gui, *View) error) error {\n\tvar kb *keybinding\n\n\tk, ch, err := getKey(key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif g.isBlacklisted(k) {\n\t\treturn ErrBlacklisted\n\t}\n\n\tkb = newKeybinding(viewname, k, ch, mod, handler)\n\tg.keybindings = append(g.keybindings, kb)\n\treturn nil\n}\n\n// DeleteKeybinding deletes a keybinding.\nfunc (g *Gui) DeleteKeybinding(viewname string, key interface{}, mod Modifier) error {\n\tk, ch, err := getKey(key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor i, kb := range g.keybindings {\n\t\tif kb.viewName == viewname && kb.ch == ch && kb.key == k && kb.mod == mod {\n\t\t\tg.keybindings = append(g.keybindings[:i], g.keybindings[i+1:]...)\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn errors.New(\"keybinding not found\")\n}\n\n// DeleteKeybindings deletes all keybindings of view.\nfunc (g *Gui) DeleteAllKeybindings() {\n\tg.keybindings = []*keybinding{}\n\tg.tabClickBindings = []*tabClickBinding{}\n\tg.viewMouseBindings = []*ViewMouseBinding{}\n}\n\n// DeleteKeybindings deletes all keybindings of view.\nfunc (g *Gui) DeleteViewKeybindings(viewname string) {\n\tvar s []*keybinding\n\tfor _, kb := range g.keybindings {\n\t\tif kb.viewName != viewname {\n\t\t\ts = append(s, kb)\n\t\t}\n\t}\n\tg.keybindings = s\n}\n\n// SetTabClickBinding sets a binding for a tab click event\nfunc (g *Gui) SetTabClickBinding(viewName string, handler tabClickHandler) error {\n\tg.tabClickBindings = append(g.tabClickBindings, &tabClickBinding{\n\t\tviewName: viewName,\n\t\thandler:  handler,\n\t})\n\n\treturn nil\n}\n\nfunc (g *Gui) SetViewClickBinding(binding *ViewMouseBinding) error {\n\tg.viewMouseBindings = append(g.viewMouseBindings, binding)\n\n\treturn nil\n}\n\n// BlackListKeybinding adds a keybinding to the blacklist\nfunc (g *Gui) BlacklistKeybinding(k Key) error {\n\tfor _, j := range g.blacklist {\n\t\tif j == k {\n\t\t\treturn ErrAlreadyBlacklisted\n\t\t}\n\t}\n\tg.blacklist = append(g.blacklist, k)\n\treturn nil\n}\n\n// WhiteListKeybinding removes a keybinding from the blacklist\nfunc (g *Gui) WhitelistKeybinding(k Key) error {\n\tfor i, j := range g.blacklist {\n\t\tif j == k {\n\t\t\tg.blacklist = append(g.blacklist[:i], g.blacklist[i+1:]...)\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn ErrNotBlacklisted\n}\n\nfunc (g *Gui) SetFocusHandler(handler func(bool) error) {\n\tg.focusHandler = handler\n}\n\n// getKey takes an empty interface with a key and returns the corresponding\n// typed Key or rune.\nfunc getKey(key interface{}) (Key, rune, error) {\n\tswitch t := key.(type) {\n\tcase nil: // Ignore keybinding if `nil`\n\t\treturn 0, 0, nil\n\tcase Key:\n\t\treturn t, 0, nil\n\tcase rune:\n\t\treturn 0, t, nil\n\tdefault:\n\t\treturn 0, 0, errors.New(\"unknown type\")\n\t}\n}\n\n// userEvent represents an event triggered by the user.\ntype userEvent struct {\n\tf    func(*Gui) error\n\ttask Task\n}\n\n// Update executes the passed function. This method can be called safely from a\n// goroutine in order to update the GUI. It is important to note that the\n// passed function won't be executed immediately, instead it will be added to\n// the user events queue. Given that Update spawns a goroutine, the order in\n// which the user events will be handled is not guaranteed.\nfunc (g *Gui) Update(f func(*Gui) error) {\n\ttask := g.NewTask()\n\n\tgo g.updateAsyncAux(f, task)\n}\n\n// UpdateAsync is a version of Update that does not spawn a go routine, it can\n// be a bit more efficient in cases where Update is called many times like when\n// tailing a file.  In general you should use Update()\nfunc (g *Gui) UpdateAsync(f func(*Gui) error) {\n\ttask := g.NewTask()\n\n\tg.updateAsyncAux(f, task)\n}\n\nfunc (g *Gui) updateAsyncAux(f func(*Gui) error, task Task) {\n\tg.userEvents <- userEvent{f: f, task: task}\n}\n\n// Calls a function in a goroutine. Handles panics gracefully and tracks\n// number of background tasks.\n// Always use this when you want to spawn a goroutine and you want lazygit to\n// consider itself 'busy` as it runs the code. Don't use for long-running\n// background goroutines where you wouldn't want lazygit to be considered busy\n// (i.e. when you wouldn't want a loader to be shown to the user)\nfunc (g *Gui) OnWorker(f func(Task) error) {\n\ttask := g.NewTask()\n\tgo func() {\n\t\tg.onWorkerAux(f, task)\n\t\ttask.Done()\n\t}()\n}\n\nfunc (g *Gui) onWorkerAux(f func(Task) error, task Task) {\n\tpanicking := true\n\tdefer func() {\n\t\tif panicking && Screen != nil {\n\t\t\tScreen.Fini()\n\t\t}\n\t}()\n\n\terr := f(task)\n\n\tpanicking = false\n\n\tif err != nil {\n\t\tg.Update(func(g *Gui) error {\n\t\t\treturn err\n\t\t})\n\t}\n}\n\n// A Manager is in charge of GUI's layout and can be used to build widgets.\ntype Manager interface {\n\t// Layout is called every time the GUI is redrawn, it must contain the\n\t// base views and its initializations.\n\tLayout(*Gui) error\n}\n\n// The ManagerFunc type is an adapter to allow the use of ordinary functions as\n// Managers. If f is a function with the appropriate signature, ManagerFunc(f)\n// is an Manager object that calls f.\ntype ManagerFunc func(*Gui) error\n\n// Layout calls f(g)\nfunc (f ManagerFunc) Layout(g *Gui) error {\n\treturn f(g)\n}\n\n// SetManager sets the given GUI managers. It deletes all views and\n// keybindings.\nfunc (g *Gui) SetManager(managers ...Manager) {\n\tg.managers = managers\n\tg.currentView = nil\n\tg.views = nil\n\tg.keybindings = nil\n\tg.tabClickBindings = nil\n\n\tgo func() { g.gEvents <- GocuiEvent{Type: eventResize} }()\n}\n\n// SetManagerFunc sets the given manager function. It deletes all views and\n// keybindings.\nfunc (g *Gui) SetManagerFunc(manager func(*Gui) error) {\n\tg.SetManager(ManagerFunc(manager))\n}\n\n// MainLoop runs the main loop until an error is returned. A successful\n// finish should return ErrQuit.\nfunc (g *Gui) MainLoop() error {\n\tgo func() {\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-g.stop:\n\t\t\t\treturn\n\t\t\tdefault:\n\t\t\t\tg.gEvents <- g.pollEvent()\n\t\t\t}\n\t\t}\n\t}()\n\n\tif g.Mouse {\n\t\tScreen.EnableMouse()\n\t}\n\n\tScreen.EnableFocus()\n\n\tfor {\n\t\terr := g.processEvent()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n}\n\nfunc (g *Gui) handleError(err error) error {\n\tif err != nil && !IsQuit(err) && g.ErrorHandler != nil {\n\t\treturn g.ErrorHandler(err)\n\t}\n\n\treturn err\n}\n\nfunc (g *Gui) processEvent() error {\n\tselect {\n\tcase ev := <-g.gEvents:\n\t\ttask := g.NewTask()\n\t\tdefer func() { task.Done() }()\n\n\t\tif err := g.handleError(g.handleEvent(&ev)); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase ev := <-g.userEvents:\n\t\tdefer func() { ev.task.Done() }()\n\n\t\tif err := g.handleError(ev.f(g)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif err := g.processRemainingEvents(); err != nil {\n\t\treturn err\n\t}\n\tif err := g.flush(); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n// processRemainingEvents handles the remaining events in the events pool.\nfunc (g *Gui) processRemainingEvents() error {\n\tfor {\n\t\tselect {\n\t\tcase ev := <-g.gEvents:\n\t\t\tif err := g.handleError(g.handleEvent(&ev)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tcase ev := <-g.userEvents:\n\t\t\terr := g.handleError(ev.f(g))\n\t\t\tev.task.Done()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tdefault:\n\t\t\treturn nil\n\t\t}\n\t}\n}\n\n// handleEvent handles an event, based on its type (key-press, error,\n// etc.)\nfunc (g *Gui) handleEvent(ev *GocuiEvent) error {\n\tswitch ev.Type {\n\tcase eventKey, eventMouse:\n\t\treturn g.onKey(ev)\n\tcase eventError:\n\t\treturn ev.Err\n\tcase eventResize:\n\t\tg.onResize()\n\t\treturn nil\n\tcase eventFocus:\n\t\treturn g.onFocus(ev)\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nfunc (g *Gui) onResize() {\n\t// not sure if we actually need this\n\t// g.screen.Sync()\n}\n\n// drawFrameEdges draws the horizontal and vertical edges of a view.\nfunc (g *Gui) drawFrameEdges(v *View, fgColor, bgColor Attribute) error {\n\truneH, runeV := '─', '│'\n\tif len(v.FrameRunes) >= 2 {\n\t\truneH, runeV = v.FrameRunes[0], v.FrameRunes[1]\n\t}\n\n\tfor x := v.x0 + 1; x < v.x1 && x < g.maxX; x++ {\n\t\tif x < 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif v.y0 > -1 && v.y0 < g.maxY {\n\t\t\tif err := g.SetRune(x, v.y0, runeH, fgColor, bgColor); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif v.y1 > -1 && v.y1 < g.maxY {\n\t\t\tif err := g.SetRune(x, v.y1, runeH, fgColor, bgColor); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\n\tshowScrollbar, realScrollbarStart, realScrollbarEnd := calcRealScrollbarStartEnd(v)\n\tfor y := v.y0 + 1; y < v.y1 && y < g.maxY; y++ {\n\t\tif y < 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif v.x0 > -1 && v.x0 < g.maxX {\n\t\t\tif err := g.SetRune(v.x0, y, runeV, fgColor, bgColor); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif v.x1 > -1 && v.x1 < g.maxX {\n\t\t\truneToPrint := calcScrollbarRune(showScrollbar, realScrollbarStart, realScrollbarEnd, y, runeV)\n\n\t\t\tif err := g.SetRune(v.x1, y, runeToPrint, fgColor, bgColor); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc calcScrollbarRune(\n\tshowScrollbar bool, scrollbarStart int, scrollbarEnd int, position int, runeV rune,\n) rune {\n\tif showScrollbar && (position >= scrollbarStart && position <= scrollbarEnd) {\n\t\treturn '▐'\n\t} else {\n\t\treturn runeV\n\t}\n}\n\nfunc calcRealScrollbarStartEnd(v *View) (bool, int, int) {\n\theight := v.InnerHeight() + 1\n\tfullHeight := v.ViewLinesHeight() - v.scrollMargin()\n\n\tif v.CanScrollPastBottom {\n\t\tfullHeight += height\n\t}\n\n\tif height < 2 || height >= fullHeight {\n\t\treturn false, 0, 0\n\t}\n\n\toriginY := v.OriginY()\n\tscrollbarStart, scrollbarHeight := calcScrollbar(fullHeight, height, originY, height-1)\n\ttop := v.y0 + 1\n\trealScrollbarStart := top + scrollbarStart\n\trealScrollbarEnd := realScrollbarStart + scrollbarHeight\n\n\treturn true, realScrollbarStart, realScrollbarEnd\n}\n\nfunc cornerRune(index byte) rune {\n\treturn []rune{' ', '│', '│', '│', '─', '┘', '┐', '┤', '─', '└', '┌', '├', '├', '┴', '┬', '┼'}[index]\n}\n\n// cornerCustomRune returns rune from `v.FrameRunes` slice. If the length of slice is less than 11\n// all the missing runes will be translated to the default `cornerRune()`\nfunc cornerCustomRune(v *View, index byte) rune {\n\t// Translate `cornerRune()` index\n\t//  0    1    2    3    4    5    6    7    8    9    10   11   12   13   14   15\n\t// ' ', '│', '│', '│', '─', '┘', '┐', '┤', '─', '└', '┌', '├', '├', '┴', '┬', '┼'\n\t// into `FrameRunes` index\n\t//  0    1    2    3    4    5    6    7    8    9    10\n\t// '─', '│', '┌', '┐', '└', '┘', '├', '┤', '┬', '┴', '┼'\n\tswitch index {\n\tcase 1, 2, 3:\n\t\treturn v.FrameRunes[1]\n\tcase 4, 8:\n\t\treturn v.FrameRunes[0]\n\tcase 5:\n\t\treturn v.FrameRunes[5]\n\tcase 6:\n\t\treturn v.FrameRunes[3]\n\tcase 7:\n\t\tif len(v.FrameRunes) < 8 {\n\t\t\tbreak\n\t\t}\n\t\treturn v.FrameRunes[7]\n\tcase 9:\n\t\treturn v.FrameRunes[4]\n\tcase 10:\n\t\treturn v.FrameRunes[2]\n\tcase 11, 12:\n\t\tif len(v.FrameRunes) < 7 {\n\t\t\tbreak\n\t\t}\n\t\treturn v.FrameRunes[6]\n\tcase 13:\n\t\tif len(v.FrameRunes) < 10 {\n\t\t\tbreak\n\t\t}\n\t\treturn v.FrameRunes[9]\n\tcase 14:\n\t\tif len(v.FrameRunes) < 9 {\n\t\t\tbreak\n\t\t}\n\t\treturn v.FrameRunes[8]\n\tcase 15:\n\t\tif len(v.FrameRunes) < 11 {\n\t\t\tbreak\n\t\t}\n\t\treturn v.FrameRunes[10]\n\tdefault:\n\t\treturn ' ' // cornerRune(0)\n\t}\n\treturn cornerRune(index)\n}\n\nfunc corner(v *View, directions byte) rune {\n\tindex := v.Overlaps | directions\n\tif len(v.FrameRunes) >= 6 {\n\t\treturn cornerCustomRune(v, index)\n\t}\n\treturn cornerRune(index)\n}\n\n// drawFrameCorners draws the corners of the view.\nfunc (g *Gui) drawFrameCorners(v *View, fgColor, bgColor Attribute) error {\n\tif v.y0 == v.y1 {\n\t\tif !g.SupportOverlaps && v.x0 >= 0 && v.x1 >= 0 && v.y0 >= 0 && v.x0 < g.maxX && v.x1 < g.maxX && v.y0 < g.maxY {\n\t\t\tif err := g.SetRune(v.x0, v.y0, '╶', fgColor, bgColor); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := g.SetRune(v.x1, v.y0, '╴', fgColor, bgColor); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\truneTL, runeTR, runeBL, runeBR := '┌', '┐', '└', '┘'\n\tif len(v.FrameRunes) >= 6 {\n\t\truneTL, runeTR, runeBL, runeBR = v.FrameRunes[2], v.FrameRunes[3], v.FrameRunes[4], v.FrameRunes[5]\n\t}\n\tif g.SupportOverlaps {\n\t\truneTL = corner(v, BOTTOM|RIGHT)\n\t\truneTR = corner(v, BOTTOM|LEFT)\n\t\truneBL = corner(v, TOP|RIGHT)\n\t\truneBR = corner(v, TOP|LEFT)\n\t}\n\n\tcorners := []struct {\n\t\tx, y int\n\t\tch   rune\n\t}{{v.x0, v.y0, runeTL}, {v.x1, v.y0, runeTR}, {v.x0, v.y1, runeBL}, {v.x1, v.y1, runeBR}}\n\n\tfor _, c := range corners {\n\t\tif c.x >= 0 && c.y >= 0 && c.x < g.maxX && c.y < g.maxY {\n\t\t\tif err := g.SetRune(c.x, c.y, c.ch, fgColor, bgColor); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// drawTitle draws the title of the view.\nfunc (g *Gui) drawTitle(v *View, fgColor, bgColor Attribute) error {\n\tif v.y0 < 0 || v.y0 >= g.maxY {\n\t\treturn nil\n\t}\n\n\ttabs := v.Tabs\n\tprefix := v.TitlePrefix\n\tif prefix != \"\" {\n\t\tif len(v.FrameRunes) > 0 {\n\t\t\tprefix += string(v.FrameRunes[0])\n\t\t} else {\n\t\t\tprefix += \"─\"\n\t\t}\n\t}\n\tseparator := \" - \"\n\tcharIndex := 0\n\tcurrentTabStart := -1\n\tcurrentTabEnd := -1\n\tif len(tabs) == 0 {\n\t\ttabs = []string{v.Title}\n\t} else {\n\t\tfor i, tab := range tabs {\n\t\t\tif i == v.TabIndex {\n\t\t\t\tcurrentTabStart = charIndex\n\t\t\t\tcurrentTabEnd = charIndex + len(tab)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcharIndex += len(tab)\n\t\t\tif i < len(tabs)-1 {\n\t\t\t\tcharIndex += len(separator)\n\t\t\t}\n\t\t}\n\t}\n\n\tstr := strings.Join(tabs, separator)\n\n\tx := v.x0 + 2\n\tfor _, ch := range prefix {\n\t\tif err := g.SetRune(x, v.y0, ch, fgColor, bgColor); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tx += runewidth.RuneWidth(ch)\n\t}\n\tfor i, ch := range str {\n\t\tif x < 0 {\n\t\t\tcontinue\n\t\t} else if x > v.x1-2 || x >= g.maxX {\n\t\t\tbreak\n\t\t}\n\t\tcurrentFgColor := fgColor\n\t\tcurrentBgColor := bgColor\n\t\t// if you are the current view and you have multiple tabs, de-highlight the non-selected tabs\n\t\tif v == g.currentView && len(v.Tabs) > 0 {\n\t\t\tcurrentFgColor = v.FgColor\n\t\t\tcurrentBgColor = v.BgColor\n\t\t}\n\n\t\tif i >= currentTabStart && i <= currentTabEnd {\n\t\t\tcurrentFgColor = v.SelFgColor\n\t\t\tif v != g.currentView {\n\t\t\t\tcurrentFgColor -= AttrBold\n\t\t\t}\n\t\t}\n\t\tif err := g.SetRune(x, v.y0, ch, currentFgColor, currentBgColor); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tx += runewidth.RuneWidth(ch)\n\t}\n\treturn nil\n}\n\n// drawSubtitle draws the subtitle of the view.\nfunc (g *Gui) drawSubtitle(v *View, fgColor, bgColor Attribute) error {\n\tif v.y0 < 0 || v.y0 >= g.maxY {\n\t\treturn nil\n\t}\n\n\tstart := v.x1 - 5 - runewidth.StringWidth(v.Subtitle)\n\tif start < v.x0 {\n\t\treturn nil\n\t}\n\tx := start\n\tfor _, ch := range v.Subtitle {\n\t\tif x >= v.x1 {\n\t\t\tbreak\n\t\t}\n\t\tif err := g.SetRune(x, v.y0, ch, fgColor, bgColor); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tx += runewidth.RuneWidth(ch)\n\t}\n\treturn nil\n}\n\n// drawListFooter draws the footer of a list view, showing something like '1 of 10'\nfunc (g *Gui) drawListFooter(v *View, fgColor, bgColor Attribute) error {\n\tif len(v.lines) == 0 {\n\t\treturn nil\n\t}\n\n\tmessage := v.Footer\n\n\tif v.y1 < 0 || v.y1 >= g.maxY {\n\t\treturn nil\n\t}\n\n\tstart := v.x1 - 1 - runewidth.StringWidth(message)\n\tif start < v.x0 {\n\t\treturn nil\n\t}\n\tx := start\n\tfor _, ch := range message {\n\t\tif x >= v.x1 {\n\t\t\tbreak\n\t\t}\n\t\tif err := g.SetRune(x, v.y1, ch, fgColor, bgColor); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tx += runewidth.RuneWidth(ch)\n\t}\n\treturn nil\n}\n\n// flush updates the gui, re-drawing frames and buffers.\nfunc (g *Gui) flush() error {\n\t// pretty sure we don't need this, but keeping it here in case we get weird visual artifacts\n\t// g.clear(g.FgColor, g.BgColor)\n\n\tmaxX, maxY := Screen.Size()\n\t// if GUI's size has changed, we need to redraw all views\n\tif maxX != g.maxX || maxY != g.maxY {\n\t\tfor _, v := range g.views {\n\t\t\tv.clearViewLines()\n\t\t}\n\t}\n\tg.maxX, g.maxY = maxX, maxY\n\n\tfor _, m := range g.managers {\n\t\tif err := m.Layout(g); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tfor _, v := range g.views {\n\t\tif err := g.draw(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tScreen.Show()\n\treturn nil\n}\n\nfunc (g *Gui) ForceLayoutAndRedraw() error {\n\treturn g.flush()\n}\n\n// force redrawing one or more views outside of the normal main loop. Useful during longer\n// operations that block the main thread, to update a spinner in a status view.\nfunc (g *Gui) ForceRedrawViews(views ...*View) error {\n\tfor _, m := range g.managers {\n\t\tif err := m.Layout(g); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tfor _, v := range views {\n\t\tif err := v.draw(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tScreen.Show()\n\treturn nil\n}\n\n// draw manages the cursor and calls the draw function of a view.\nfunc (g *Gui) draw(v *View) error {\n\tif g.suspended {\n\t\treturn nil\n\t}\n\n\tif !v.Visible || v.y1 < v.y0 || v.x1 < v.x0 {\n\t\treturn nil\n\t}\n\n\tif g.Cursor {\n\t\tif curview := g.currentView; curview != nil {\n\t\t\tvMaxX, vMaxY := curview.Size()\n\t\t\tif curview.cx < 0 {\n\t\t\t\tcurview.cx = 0\n\t\t\t} else if curview.cx >= vMaxX {\n\t\t\t\tcurview.cx = vMaxX - 1\n\t\t\t}\n\t\t\tif curview.cy < 0 {\n\t\t\t\tcurview.cy = 0\n\t\t\t} else if curview.cy >= vMaxY {\n\t\t\t\tcurview.cy = vMaxY - 1\n\t\t\t}\n\n\t\t\tgMaxX, gMaxY := g.Size()\n\t\t\tcx, cy := curview.x0+curview.cx+1, curview.y0+curview.cy+1\n\t\t\t// This test probably doesn't need to be here.\n\t\t\t// tcell is hiding cursor by setting coordinates outside of screen.\n\t\t\t// Keeping it here for now, as I'm not 100% sure :)\n\t\t\tif cx >= 0 && cx < gMaxX && cy >= 0 && cy < gMaxY {\n\t\t\t\tScreen.ShowCursor(cx, cy)\n\t\t\t} else {\n\t\t\t\tScreen.HideCursor()\n\t\t\t}\n\t\t}\n\t} else {\n\t\tScreen.HideCursor()\n\t}\n\n\tif err := v.draw(); err != nil {\n\t\treturn err\n\t}\n\n\tif v.Frame {\n\t\tvar fgColor, bgColor, frameColor Attribute\n\t\tif g.Highlight && v == g.currentView {\n\t\t\tfgColor = g.SelFgColor\n\t\t\tbgColor = g.SelBgColor\n\t\t\tframeColor = g.SelFrameColor\n\t\t} else {\n\t\t\tbgColor = g.BgColor\n\t\t\tif v.TitleColor != ColorDefault {\n\t\t\t\tfgColor = v.TitleColor\n\t\t\t} else {\n\t\t\t\tfgColor = g.FgColor\n\t\t\t}\n\t\t\tif v.FrameColor != ColorDefault {\n\t\t\t\tframeColor = v.FrameColor\n\t\t\t} else {\n\t\t\t\tframeColor = g.FrameColor\n\t\t\t}\n\t\t}\n\n\t\tif err := g.drawFrameEdges(v, frameColor, bgColor); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := g.drawFrameCorners(v, frameColor, bgColor); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif v.Title != \"\" || len(v.Tabs) > 0 {\n\t\t\tif err := g.drawTitle(v, fgColor, bgColor); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif v.Subtitle != \"\" {\n\t\t\tif err := g.drawSubtitle(v, fgColor, bgColor); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif v.Footer != \"\" && g.ShowListFooter {\n\t\t\tif err := g.drawListFooter(v, fgColor, bgColor); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// onKey manages key-press events. A keybinding handler is called when\n// a key-press or mouse event satisfies a configured keybinding. Furthermore,\n// currentView's internal buffer is modified if currentView.Editable is true.\nfunc (g *Gui) onKey(ev *GocuiEvent) error {\n\tswitch ev.Type {\n\tcase eventKey:\n\n\t\t_, err := g.execKeybindings(g.currentView, ev)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\tcase eventMouse:\n\t\tmx, my := ev.MouseX, ev.MouseY\n\t\tv, err := g.VisibleViewByPosition(mx, my)\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif v.Frame && my == v.y0 {\n\t\t\tif len(v.Tabs) > 0 {\n\t\t\t\ttabIndex := v.GetClickedTabIndex(mx - v.x0)\n\n\t\t\t\tif tabIndex >= 0 {\n\t\t\t\t\tfor _, binding := range g.tabClickBindings {\n\t\t\t\t\t\tif binding.viewName == v.Name() {\n\t\t\t\t\t\t\treturn binding.handler(tabIndex)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tnewCx := mx - v.x0 - 1\n\t\tnewCy := my - v.y0 - 1\n\t\t// if view  is editable don't go further than the furthest character for that line\n\t\tif v.Editable && newCy >= 0 && newCy <= len(v.lines)-1 {\n\t\t\tlastCharForLine := len(v.lines[newCy])\n\t\t\tif lastCharForLine < newCx {\n\t\t\t\tnewCx = lastCharForLine\n\t\t\t}\n\t\t}\n\t\tif !IsMouseScrollKey(ev.Key) {\n\t\t\tif err := v.SetCursor(newCx, newCy); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif IsMouseKey(ev.Key) {\n\t\t\topts := ViewMouseBindingOpts{X: newCx + v.ox, Y: newCy + v.oy}\n\t\t\tmatched, err := g.execMouseKeybindings(v, ev, opts)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif matched {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\n\t\tif _, err := g.execKeybindings(v, ev); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (g *Gui) execMouseKeybindings(view *View, ev *GocuiEvent, opts ViewMouseBindingOpts) (bool, error) {\n\tisMatch := func(binding *ViewMouseBinding) bool {\n\t\treturn binding.ViewName == view.Name() &&\n\t\t\tev.Key == binding.Key &&\n\t\t\tev.Mod == binding.Modifier\n\t}\n\n\t// first pass looks for ones that match the focused view\n\tfor _, binding := range g.viewMouseBindings {\n\t\tif isMatch(binding) && binding.FocusedView != \"\" && binding.FocusedView == g.currentView.Name() {\n\t\t\treturn true, binding.Handler(opts)\n\t\t}\n\t}\n\n\tfor _, binding := range g.viewMouseBindings {\n\t\tif isMatch(binding) && binding.FocusedView == \"\" {\n\t\t\treturn true, binding.Handler(opts)\n\t\t}\n\t}\n\n\treturn false, nil\n}\n\nfunc IsMouseKey(key interface{}) bool {\n\tswitch key {\n\tcase\n\t\tMouseLeft,\n\t\tMouseRight,\n\t\tMouseMiddle,\n\t\tMouseRelease,\n\t\tMouseWheelUp,\n\t\tMouseWheelDown,\n\t\tMouseWheelLeft,\n\t\tMouseWheelRight:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc IsMouseScrollKey(key interface{}) bool {\n\tswitch key {\n\tcase\n\t\tMouseWheelUp,\n\t\tMouseWheelDown,\n\t\tMouseWheelLeft,\n\t\tMouseWheelRight:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// execKeybindings executes the keybinding handlers that match the passed view\n// and event. The value of matched is true if there is a match and no errors.\nfunc (g *Gui) execKeybindings(v *View, ev *GocuiEvent) (matched bool, err error) {\n\tvar globalKb *keybinding\n\tvar matchingParentViewKb *keybinding\n\n\t// if we're searching, and we've hit n/N/Esc, we ignore the default keybinding\n\tif v != nil && v.IsSearching() && ev.Mod == ModNone {\n\t\tif eventMatchesKey(ev, g.NextSearchMatchKey) {\n\t\t\treturn true, v.gotoNextMatch()\n\t\t} else if eventMatchesKey(ev, g.PrevSearchMatchKey) {\n\t\t\treturn true, v.gotoPreviousMatch()\n\t\t} else if eventMatchesKey(ev, g.SearchEscapeKey) {\n\t\t\tv.searcher.clearSearch()\n\t\t\tif g.OnSearchEscape != nil {\n\t\t\t\tif err := g.OnSearchEscape(); err != nil {\n\t\t\t\t\treturn true, err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true, nil\n\t\t}\n\t}\n\n\tfor _, kb := range g.keybindings {\n\t\tif kb.handler == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif !kb.matchKeypress(ev.Key, ev.Ch, ev.Mod) {\n\t\t\tcontinue\n\t\t}\n\t\tif g.matchView(v, kb) {\n\t\t\treturn g.execKeybinding(v, kb)\n\t\t}\n\t\tif v != nil && g.matchView(v.ParentView, kb) {\n\t\t\tmatchingParentViewKb = kb\n\t\t}\n\t\tif globalKb == nil && kb.viewName == \"\" && ((v != nil && !v.Editable) || (kb.ch == 0 && kb.key != KeyCtrlU && kb.key != KeyCtrlA && kb.key != KeyCtrlE)) {\n\t\t\tglobalKb = kb\n\t\t}\n\t}\n\tif matchingParentViewKb != nil {\n\t\treturn g.execKeybinding(v.ParentView, matchingParentViewKb)\n\t}\n\n\tif g.currentView != nil && g.currentView.Editable && g.currentView.Editor != nil {\n\t\tmatched := g.currentView.Editor.Edit(g.currentView, ev.Key, ev.Ch, ev.Mod)\n\t\tif matched {\n\t\t\treturn true, nil\n\t\t}\n\t}\n\n\tif globalKb != nil {\n\t\treturn g.execKeybinding(v, globalKb)\n\t}\n\treturn false, nil\n}\n\n// execKeybinding executes a given keybinding\nfunc (g *Gui) execKeybinding(v *View, kb *keybinding) (bool, error) {\n\tif g.isBlacklisted(kb.key) {\n\t\treturn true, nil\n\t}\n\n\tif err := kb.handler(g, v); err != nil {\n\t\treturn false, err\n\t}\n\treturn true, nil\n}\n\nfunc (g *Gui) onFocus(ev *GocuiEvent) error {\n\tif g.focusHandler != nil {\n\t\treturn g.focusHandler(ev.Focused)\n\t}\n\n\treturn nil\n}\n\nfunc (g *Gui) StartTicking(ctx context.Context) {\n\tgo func() {\n\t\tg.Mutexes.tickingMutex.Lock()\n\t\tdefer g.Mutexes.tickingMutex.Unlock()\n\t\tticker := time.NewTicker(time.Millisecond * 50)\n\t\tdefer ticker.Stop()\n\touter:\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-ticker.C:\n\t\t\t\t// I'm okay with having a data race here: there's no harm in letting one of these updates through\n\t\t\t\tif g.suspended {\n\t\t\t\t\tcontinue outer\n\t\t\t\t}\n\n\t\t\t\tfor _, view := range g.Views() {\n\t\t\t\t\tif view.HasLoader {\n\t\t\t\t\t\tg.UpdateAsync(func(g *Gui) error { return nil })\n\t\t\t\t\t\tcontinue outer\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn\n\t\t\tcase <-g.stop:\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n}\n\n// isBlacklisted reports whether the key is blacklisted\nfunc (g *Gui) isBlacklisted(k Key) bool {\n\tfor _, j := range g.blacklist {\n\t\tif j == k {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// IsUnknownView reports whether the contents of an error is \"unknown view\".\nfunc IsUnknownView(err error) bool {\n\treturn err != nil && err.Error() == ErrUnknownView.Error()\n}\n\n// IsQuit reports whether the contents of an error is \"quit\".\nfunc IsQuit(err error) bool {\n\treturn err != nil && err.Error() == ErrQuit.Error()\n}\n\nfunc (g *Gui) Suspend() error {\n\tg.suspendedMutex.Lock()\n\tdefer g.suspendedMutex.Unlock()\n\n\tif g.suspended {\n\t\treturn errors.New(\"Already suspended\")\n\t}\n\n\tg.suspended = true\n\n\treturn g.screen.Suspend()\n}\n\nfunc (g *Gui) Resume() error {\n\tg.suspendedMutex.Lock()\n\tdefer g.suspendedMutex.Unlock()\n\n\tif !g.suspended {\n\t\treturn errors.New(\"Cannot resume because we are not suspended\")\n\t}\n\n\tg.suspended = false\n\n\treturn g.screen.Resume()\n}\n\n// matchView returns if the keybinding matches the current view (and the view's context)\nfunc (g *Gui) matchView(v *View, kb *keybinding) bool {\n\t// if the user is typing in a field, ignore char keys\n\tif v == nil {\n\t\treturn false\n\t}\n\tif v.Editable && kb.ch != 0 {\n\t\treturn false\n\t}\n\tif kb.viewName != v.name {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// returns a string representation of the current state of the gui, character-for-character\nfunc (g *Gui) Snapshot() string {\n\tif g.screen == nil {\n\t\treturn \"<no screen rendered>\"\n\t}\n\n\twidth, height := g.screen.Size()\n\n\tbuilder := &strings.Builder{}\n\n\tfor y := 0; y < height; y++ {\n\t\tfor x := 0; x < width; x++ {\n\t\t\tchar, _, _, charWidth := g.screen.GetContent(x, y)\n\t\t\tif charWidth == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbuilder.WriteRune(char)\n\t\t\tif charWidth > 1 {\n\t\t\t\tx += charWidth - 1\n\t\t\t}\n\t\t}\n\t\tbuilder.WriteRune('\\n')\n\t}\n\n\treturn builder.String()\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/gui_others.go",
    "content": "// Copyright 2014 The gocui Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !windows\n// +build !windows\n\npackage gocui\n\nimport (\n\t\"os\"\n\t\"os/signal\"\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"github.com/go-errors/errors\"\n)\n\n// getTermWindowSize is get terminal window size on linux or unix.\n// When gocui run inside the docker contaienr need to check and get the window size.\nfunc (g *Gui) getTermWindowSize() (int, int, error) {\n\tvar sz struct {\n\t\trows uint16\n\t\tcols uint16\n\t\t_    [2]uint16 // to match underlying syscall; see https://github.com/awesome-gocui/gocui/issues/33\n\t}\n\n\tvar termw, termh int\n\n\tout, err := os.OpenFile(\"/dev/tty\", os.O_RDWR, 0)\n\tif err != nil {\n\t\treturn 0, 0, err\n\t}\n\tdefer out.Close()\n\n\tsignalCh := make(chan os.Signal, 1)\n\tsignal.Notify(signalCh, syscall.SIGWINCH, syscall.SIGINT)\n\n\tfor {\n\t\t_, _, _ = syscall.Syscall(syscall.SYS_IOCTL,\n\t\t\tout.Fd(), uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(&sz)))\n\n\t\t// check terminal window size\n\t\ttermw, termh = int(sz.cols), int(sz.rows)\n\t\tif termw > 0 && termh > 0 {\n\t\t\treturn termw, termh, nil\n\t\t}\n\n\t\tsignal := <-signalCh\n\t\tswitch signal {\n\t\t// when the terminal window size is changed\n\t\tcase syscall.SIGWINCH:\n\t\t\tcontinue\n\t\t// ctrl + c to cancel\n\t\tcase syscall.SIGINT:\n\t\t\treturn 0, 0, errors.New(\"stop to get term window size\")\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/gui_windows.go",
    "content": "// Copyright 2014 The gocui Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n// +build windows\n\npackage gocui\n\nimport (\n\t\"os\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\ntype (\n\twchar uint16\n\tshort int16\n\tdword uint32\n\tword  uint16\n)\n\ntype coord struct {\n\tx short\n\ty short\n}\n\ntype smallRect struct {\n\tleft   short\n\ttop    short\n\tright  short\n\tbottom short\n}\n\ntype consoleScreenBufferInfo struct {\n\tsize              coord\n\tcursorPosition    coord\n\tattributes        word\n\twindow            smallRect\n\tmaximumWindowSize coord\n}\n\nvar (\n\tkernel32                       = syscall.NewLazyDLL(\"kernel32.dll\")\n\tprocGetConsoleScreenBufferInfo = kernel32.NewProc(\"GetConsoleScreenBufferInfo\")\n)\n\n// getTermWindowSize is get terminal window size on windows.\nfunc (g *Gui) getTermWindowSize() (int, int, error) {\n\tvar csbi consoleScreenBufferInfo\n\tr1, _, err := procGetConsoleScreenBufferInfo.Call(os.Stdout.Fd(), uintptr(unsafe.Pointer(&csbi)))\n\tif r1 == 0 {\n\t\treturn 0, 0, err\n\t}\n\treturn int(csbi.window.right - csbi.window.left + 1), int(csbi.window.bottom - csbi.window.top + 1), nil\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/keybinding.go",
    "content": "// Copyright 2014 The gocui Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage gocui\n\nimport (\n\t\"strings\"\n\n\t\"github.com/gdamore/tcell/v2\"\n)\n\n// Key represents special keys or keys combinations.\ntype Key tcell.Key\n\n// Modifier allows to define special keys combinations. They can be used\n// in combination with Keys or Runes when a new keybinding is defined.\ntype Modifier tcell.ModMask\n\n// Keybidings are used to link a given key-press event with a handler.\ntype keybinding struct {\n\tviewName string\n\tkey      Key\n\tch       rune\n\tmod      Modifier\n\thandler  func(*Gui, *View) error\n}\n\n// Parse takes the input string and extracts the keybinding.\n// Returns a Key / rune, a Modifier and an error.\nfunc Parse(input string) (interface{}, Modifier, error) {\n\tif len(input) == 1 {\n\t\t_, r, err := getKey(rune(input[0]))\n\t\tif err != nil {\n\t\t\treturn nil, ModNone, err\n\t\t}\n\t\treturn r, ModNone, nil\n\t}\n\n\tvar modifier Modifier\n\tcleaned := make([]string, 0)\n\n\ttokens := strings.Split(input, \"+\")\n\tfor _, t := range tokens {\n\t\tnormalized := strings.Title(strings.ToLower(t))\n\t\tif t == \"Alt\" {\n\t\t\tmodifier = ModAlt\n\t\t\tcontinue\n\t\t}\n\t\tcleaned = append(cleaned, normalized)\n\t}\n\n\tkey, exist := translate[strings.Join(cleaned, \"\")]\n\tif !exist {\n\t\treturn nil, ModNone, ErrNoSuchKeybind\n\t}\n\n\treturn key, modifier, nil\n}\n\n// ParseAll takes an array of strings and returns a map of all keybindings.\nfunc ParseAll(input []string) (map[interface{}]Modifier, error) {\n\tret := make(map[interface{}]Modifier)\n\tfor _, i := range input {\n\t\tk, m, err := Parse(i)\n\t\tif err != nil {\n\t\t\treturn ret, err\n\t\t}\n\t\tret[k] = m\n\t}\n\treturn ret, nil\n}\n\n// MustParse takes the input string and returns a Key / rune and a Modifier.\n// It will panic if any error occured.\nfunc MustParse(input string) (interface{}, Modifier) {\n\tk, m, err := Parse(input)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn k, m\n}\n\n// MustParseAll takes an array of strings and returns a map of all keybindings.\n// It will panic if any error occured.\nfunc MustParseAll(input []string) map[interface{}]Modifier {\n\tresult, err := ParseAll(input)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn result\n}\n\n// newKeybinding returns a new Keybinding object.\nfunc newKeybinding(viewname string, key Key, ch rune, mod Modifier, handler func(*Gui, *View) error) (kb *keybinding) {\n\tkb = &keybinding{\n\t\tviewName: viewname,\n\t\tkey:      key,\n\t\tch:       ch,\n\t\tmod:      mod,\n\t\thandler:  handler,\n\t}\n\treturn kb\n}\n\nfunc eventMatchesKey(ev *GocuiEvent, key interface{}) bool {\n\t// assuming ModNone for now\n\tif ev.Mod != ModNone {\n\t\treturn false\n\t}\n\n\tk, ch, err := getKey(key)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn k == ev.Key && ch == ev.Ch\n}\n\n// matchKeypress returns if the keybinding matches the keypress.\nfunc (kb *keybinding) matchKeypress(key Key, ch rune, mod Modifier) bool {\n\treturn kb.key == key && kb.ch == ch && kb.mod == mod\n}\n\n// translations for strings to keys\nvar translate = map[string]Key{\n\t\"F1\":             KeyF1,\n\t\"F2\":             KeyF2,\n\t\"F3\":             KeyF3,\n\t\"F4\":             KeyF4,\n\t\"F5\":             KeyF5,\n\t\"F6\":             KeyF6,\n\t\"F7\":             KeyF7,\n\t\"F8\":             KeyF8,\n\t\"F9\":             KeyF9,\n\t\"F10\":            KeyF10,\n\t\"F11\":            KeyF11,\n\t\"F12\":            KeyF12,\n\t\"Insert\":         KeyInsert,\n\t\"Delete\":         KeyDelete,\n\t\"Home\":           KeyHome,\n\t\"End\":            KeyEnd,\n\t\"Pgup\":           KeyPgup,\n\t\"Pgdn\":           KeyPgdn,\n\t\"ArrowUp\":        KeyArrowUp,\n\t\"ShiftArrowUp\":   KeyShiftArrowUp,\n\t\"ArrowDown\":      KeyArrowDown,\n\t\"ShiftArrowDown\": KeyShiftArrowDown,\n\t\"ArrowLeft\":      KeyArrowLeft,\n\t\"ArrowRight\":     KeyArrowRight,\n\t\"CtrlTilde\":      KeyCtrlTilde,\n\t\"Ctrl2\":          KeyCtrl2,\n\t\"CtrlSpace\":      KeyCtrlSpace,\n\t\"CtrlA\":          KeyCtrlA,\n\t\"CtrlB\":          KeyCtrlB,\n\t\"CtrlC\":          KeyCtrlC,\n\t\"CtrlD\":          KeyCtrlD,\n\t\"CtrlE\":          KeyCtrlE,\n\t\"CtrlF\":          KeyCtrlF,\n\t\"CtrlG\":          KeyCtrlG,\n\t\"Backspace\":      KeyBackspace,\n\t\"CtrlH\":          KeyCtrlH,\n\t\"Tab\":            KeyTab,\n\t\"BackTab\":        KeyBacktab,\n\t\"CtrlI\":          KeyCtrlI,\n\t\"CtrlJ\":          KeyCtrlJ,\n\t\"CtrlK\":          KeyCtrlK,\n\t\"CtrlL\":          KeyCtrlL,\n\t\"Enter\":          KeyEnter,\n\t\"CtrlM\":          KeyCtrlM,\n\t\"CtrlN\":          KeyCtrlN,\n\t\"CtrlO\":          KeyCtrlO,\n\t\"CtrlP\":          KeyCtrlP,\n\t\"CtrlQ\":          KeyCtrlQ,\n\t\"CtrlR\":          KeyCtrlR,\n\t\"CtrlS\":          KeyCtrlS,\n\t\"CtrlT\":          KeyCtrlT,\n\t\"CtrlU\":          KeyCtrlU,\n\t\"CtrlV\":          KeyCtrlV,\n\t\"CtrlW\":          KeyCtrlW,\n\t\"CtrlX\":          KeyCtrlX,\n\t\"CtrlY\":          KeyCtrlY,\n\t\"CtrlZ\":          KeyCtrlZ,\n\t\"Esc\":            KeyEsc,\n\t\"CtrlLsqBracket\": KeyCtrlLsqBracket,\n\t\"Ctrl3\":          KeyCtrl3,\n\t\"Ctrl4\":          KeyCtrl4,\n\t\"CtrlBackslash\":  KeyCtrlBackslash,\n\t\"Ctrl5\":          KeyCtrl5,\n\t\"CtrlRsqBracket\": KeyCtrlRsqBracket,\n\t\"Ctrl6\":          KeyCtrl6,\n\t\"Ctrl7\":          KeyCtrl7,\n\t\"CtrlSlash\":      KeyCtrlSlash,\n\t\"CtrlUnderscore\": KeyCtrlUnderscore,\n\t\"Space\":          KeySpace,\n\t\"Backspace2\":     KeyBackspace2,\n\t\"Ctrl8\":          KeyCtrl8,\n\t\"Mouseleft\":      MouseLeft,\n\t\"Mousemiddle\":    MouseMiddle,\n\t\"Mouseright\":     MouseRight,\n\t\"Mouserelease\":   MouseRelease,\n\t\"MousewheelUp\":   MouseWheelUp,\n\t\"MousewheelDown\": MouseWheelDown,\n}\n\n// Special keys.\nconst (\n\tKeyF1             Key = Key(tcell.KeyF1)\n\tKeyF2                 = Key(tcell.KeyF2)\n\tKeyF3                 = Key(tcell.KeyF3)\n\tKeyF4                 = Key(tcell.KeyF4)\n\tKeyF5                 = Key(tcell.KeyF5)\n\tKeyF6                 = Key(tcell.KeyF6)\n\tKeyF7                 = Key(tcell.KeyF7)\n\tKeyF8                 = Key(tcell.KeyF8)\n\tKeyF9                 = Key(tcell.KeyF9)\n\tKeyF10                = Key(tcell.KeyF10)\n\tKeyF11                = Key(tcell.KeyF11)\n\tKeyF12                = Key(tcell.KeyF12)\n\tKeyInsert             = Key(tcell.KeyInsert)\n\tKeyDelete             = Key(tcell.KeyDelete)\n\tKeyHome               = Key(tcell.KeyHome)\n\tKeyEnd                = Key(tcell.KeyEnd)\n\tKeyPgdn               = Key(tcell.KeyPgDn)\n\tKeyPgup               = Key(tcell.KeyPgUp)\n\tKeyArrowUp            = Key(tcell.KeyUp)\n\tKeyShiftArrowUp       = Key(tcell.KeyF62)\n\tKeyArrowDown          = Key(tcell.KeyDown)\n\tKeyShiftArrowDown     = Key(tcell.KeyF63)\n\tKeyArrowLeft          = Key(tcell.KeyLeft)\n\tKeyArrowRight         = Key(tcell.KeyRight)\n)\n\n// Keys combinations.\nconst (\n\tKeyCtrlTilde      = Key(tcell.KeyF64) // arbitrary assignment\n\tKeyCtrlSpace      = Key(tcell.KeyCtrlSpace)\n\tKeyCtrlA          = Key(tcell.KeyCtrlA)\n\tKeyCtrlB          = Key(tcell.KeyCtrlB)\n\tKeyCtrlC          = Key(tcell.KeyCtrlC)\n\tKeyCtrlD          = Key(tcell.KeyCtrlD)\n\tKeyCtrlE          = Key(tcell.KeyCtrlE)\n\tKeyCtrlF          = Key(tcell.KeyCtrlF)\n\tKeyCtrlG          = Key(tcell.KeyCtrlG)\n\tKeyBackspace      = Key(tcell.KeyBackspace)\n\tKeyCtrlH          = Key(tcell.KeyCtrlH)\n\tKeyTab            = Key(tcell.KeyTab)\n\tKeyBacktab        = Key(tcell.KeyBacktab)\n\tKeyCtrlI          = Key(tcell.KeyCtrlI)\n\tKeyCtrlJ          = Key(tcell.KeyCtrlJ)\n\tKeyCtrlK          = Key(tcell.KeyCtrlK)\n\tKeyCtrlL          = Key(tcell.KeyCtrlL)\n\tKeyEnter          = Key(tcell.KeyEnter)\n\tKeyCtrlM          = Key(tcell.KeyCtrlM)\n\tKeyCtrlN          = Key(tcell.KeyCtrlN)\n\tKeyCtrlO          = Key(tcell.KeyCtrlO)\n\tKeyCtrlP          = Key(tcell.KeyCtrlP)\n\tKeyCtrlQ          = Key(tcell.KeyCtrlQ)\n\tKeyCtrlR          = Key(tcell.KeyCtrlR)\n\tKeyCtrlS          = Key(tcell.KeyCtrlS)\n\tKeyCtrlT          = Key(tcell.KeyCtrlT)\n\tKeyCtrlU          = Key(tcell.KeyCtrlU)\n\tKeyCtrlV          = Key(tcell.KeyCtrlV)\n\tKeyCtrlW          = Key(tcell.KeyCtrlW)\n\tKeyCtrlX          = Key(tcell.KeyCtrlX)\n\tKeyCtrlY          = Key(tcell.KeyCtrlY)\n\tKeyCtrlZ          = Key(tcell.KeyCtrlZ)\n\tKeyEsc            = Key(tcell.KeyEscape)\n\tKeyCtrlUnderscore = Key(tcell.KeyCtrlUnderscore)\n\tKeySpace          = Key(32)\n\tKeyBackspace2     = Key(tcell.KeyBackspace2)\n\tKeyCtrl8          = Key(tcell.KeyBackspace2) // same key as in termbox-go\n\n\t// The following assignments were used in termbox implementation.\n\t// In tcell, these are not keys per se. But in gocui we have them\n\t// mapped to the keys so we have to use placeholder keys.\n\n\tKeyAltEnter       = Key(tcell.KeyF64) // arbitrary assignments\n\tMouseLeft         = Key(tcell.KeyF63)\n\tMouseRight        = Key(tcell.KeyF62)\n\tMouseMiddle       = Key(tcell.KeyF61)\n\tMouseRelease      = Key(tcell.KeyF60)\n\tMouseWheelUp      = Key(tcell.KeyF59)\n\tMouseWheelDown    = Key(tcell.KeyF58)\n\tMouseWheelLeft    = Key(tcell.KeyF57)\n\tMouseWheelRight   = Key(tcell.KeyF56)\n\tKeyCtrl2          = Key(tcell.KeyNUL) // termbox defines theses\n\tKeyCtrl3          = Key(tcell.KeyEscape)\n\tKeyCtrl4          = Key(tcell.KeyCtrlBackslash)\n\tKeyCtrl5          = Key(tcell.KeyCtrlRightSq)\n\tKeyCtrl6          = Key(tcell.KeyCtrlCarat)\n\tKeyCtrl7          = Key(tcell.KeyCtrlUnderscore)\n\tKeyCtrlSlash      = Key(tcell.KeyCtrlUnderscore)\n\tKeyCtrlRsqBracket = Key(tcell.KeyCtrlRightSq)\n\tKeyCtrlBackslash  = Key(tcell.KeyCtrlBackslash)\n\tKeyCtrlLsqBracket = Key(tcell.KeyCtrlLeftSq)\n)\n\n// Modifiers.\nconst (\n\tModNone   Modifier = Modifier(0)\n\tModAlt             = Modifier(tcell.ModAlt)\n\tModMotion          = Modifier(2) // just picking an arbitrary number here that doesn't clash with tcell.ModAlt\n\t// ModCtrl doesn't work with keyboard keys. Use CtrlKey in Key and ModNone. This is was for mouse clicks only (tcell.v1)\n\t// ModCtrl = Modifier(tcell.ModCtrl)\n)\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/loader.go",
    "content": "package gocui\n\nimport \"time\"\n\nfunc (v *View) loaderLines() [][]cell {\n\tduplicate := make([][]cell, len(v.lines))\n\tfor i := range v.lines {\n\t\tif i < len(v.lines)-1 {\n\t\t\tduplicate[i] = make([]cell, len(v.lines[i]))\n\t\t\tcopy(duplicate[i], v.lines[i])\n\t\t} else {\n\t\t\tduplicate[i] = make([]cell, len(v.lines[i])+2)\n\t\t\tcopy(duplicate[i], v.lines[i])\n\t\t\tduplicate[i][len(duplicate[i])-2] = cell{chr: ' '}\n\t\t\tduplicate[i][len(duplicate[i])-1] = Loader()\n\t\t}\n\t}\n\n\treturn duplicate\n}\n\n// Loader can show a loading animation\nfunc Loader() cell {\n\tcharacters := \"|/-\\\\\"\n\tnow := time.Now()\n\tnanos := now.UnixNano()\n\tindex := nanos / 50000000 % int64(len(characters))\n\tstr := characters[index : index+1]\n\tchr := []rune(str)[0]\n\treturn cell{\n\t\tchr: chr,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/scrollbar.go",
    "content": "package gocui\n\nimport \"math\"\n\n// returns start and height of scrollbar\n// `max` is the maximum possible value of `position`\nfunc calcScrollbar(listSize int, pageSize int, position int, scrollAreaSize int) (int, int) {\n\theight := calcScrollbarHeight(listSize, pageSize, scrollAreaSize)\n\t// assume we can't scroll past the last item\n\tmaxPosition := listSize - pageSize\n\tif maxPosition <= 0 {\n\t\treturn 0, height\n\t}\n\tif position == maxPosition {\n\t\treturn scrollAreaSize - height, height\n\t}\n\t// we only want to show the scrollbar at the top or bottom positions if we're at the end. Hence the .Ceil (for moving the scrollbar once we scroll down) and the -1 (for pretending there's a smaller range than we actually have, with the above condition ensuring we snap to the bottom once we're at the end of the list)\n\tstart := int(math.Ceil(((float64(position) / float64(maxPosition)) * float64(scrollAreaSize-height-1))))\n\treturn start, height\n}\n\nfunc calcScrollbarHeight(listSize int, pageSize int, scrollAreaSize int) int {\n\tif pageSize >= listSize {\n\t\treturn scrollAreaSize\n\t}\n\n\treturn int((float64(pageSize) / float64(listSize)) * float64(scrollAreaSize))\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/task.go",
    "content": "package gocui\n\n// A task represents the fact that the program is busy doing something, which\n// is useful for integration tests which only want to proceed when the program\n// is idle.\n\ntype Task interface {\n\tDone()\n\tPause()\n\tContinue()\n\t// not exporting because we don't need to\n\tisBusy() bool\n}\n\ntype TaskImpl struct {\n\tid        int\n\tbusy      bool\n\tonDone    func()\n\twithMutex func(func())\n}\n\nfunc (self *TaskImpl) Done() {\n\tself.onDone()\n}\n\nfunc (self *TaskImpl) Pause() {\n\tself.withMutex(func() {\n\t\tself.busy = false\n\t})\n}\n\nfunc (self *TaskImpl) Continue() {\n\tself.withMutex(func() {\n\t\tself.busy = true\n\t})\n}\n\nfunc (self *TaskImpl) isBusy() bool {\n\treturn self.busy\n}\n\ntype TaskStatus int\n\nconst (\n\tTaskStatusBusy TaskStatus = iota\n\tTaskStatusPaused\n\tTaskStatusDone\n)\n\ntype FakeTask struct {\n\tstatus TaskStatus\n}\n\nfunc NewFakeTask() *FakeTask {\n\treturn &FakeTask{\n\t\tstatus: TaskStatusBusy,\n\t}\n}\n\nfunc (self *FakeTask) Done() {\n\tself.status = TaskStatusDone\n}\n\nfunc (self *FakeTask) Pause() {\n\tself.status = TaskStatusPaused\n}\n\nfunc (self *FakeTask) Continue() {\n\tself.status = TaskStatusBusy\n}\n\nfunc (self *FakeTask) isBusy() bool {\n\treturn self.status == TaskStatusBusy\n}\n\nfunc (self *FakeTask) Status() TaskStatus {\n\treturn self.status\n}\n\nfunc (self *FakeTask) FormatStatus() string {\n\treturn formatTaskStatus(self.status)\n}\n\nfunc formatTaskStatus(status TaskStatus) string {\n\tswitch status {\n\tcase TaskStatusBusy:\n\t\treturn \"busy\"\n\tcase TaskStatusPaused:\n\t\treturn \"paused\"\n\tcase TaskStatusDone:\n\t\treturn \"done\"\n\t}\n\treturn \"unknown\"\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/task_manager.go",
    "content": "package gocui\n\nimport \"sync\"\n\n// Tracks whether the program is busy (i.e. either something is happening on\n// the main goroutine or a worker goroutine). Used by integration tests\n// to wait until the program is idle before progressing.\ntype TaskManager struct {\n\t// each of these listeners will be notified when the program goes from busy to idle\n\tidleListeners []chan struct{}\n\ttasks         map[int]Task\n\t// auto-incrementing id for new tasks\n\tnextId int\n\n\tmutex sync.Mutex\n}\n\nfunc newTaskManager() *TaskManager {\n\treturn &TaskManager{\n\t\ttasks:         make(map[int]Task),\n\t\tidleListeners: []chan struct{}{},\n\t}\n}\n\nfunc (self *TaskManager) NewTask() *TaskImpl {\n\tself.mutex.Lock()\n\tdefer self.mutex.Unlock()\n\n\tself.nextId++\n\ttaskId := self.nextId\n\n\tonDone := func() { self.delete(taskId) }\n\ttask := &TaskImpl{id: taskId, busy: true, onDone: onDone, withMutex: self.withMutex}\n\tself.tasks[taskId] = task\n\n\treturn task\n}\n\nfunc (self *TaskManager) addIdleListener(c chan struct{}) {\n\tself.idleListeners = append(self.idleListeners, c)\n}\n\nfunc (self *TaskManager) withMutex(f func()) {\n\tself.mutex.Lock()\n\tdefer self.mutex.Unlock()\n\n\tf()\n\n\t// Check if all tasks are done\n\tfor _, task := range self.tasks {\n\t\tif task.isBusy() {\n\t\t\treturn\n\t\t}\n\t}\n\n\t// If we get here, all tasks are done, so\n\t// notify listeners that the program is idle\n\tfor _, listener := range self.idleListeners {\n\t\tlistener <- struct{}{}\n\t}\n}\n\nfunc (self *TaskManager) delete(taskId int) {\n\tself.withMutex(func() {\n\t\tdelete(self.tasks, taskId)\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/tcell_driver.go",
    "content": "// Copyright 2020 The gocui Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage gocui\n\nimport (\n\t\"github.com/gdamore/tcell/v2\"\n\t\"github.com/mattn/go-runewidth\"\n)\n\n// We probably don't want this being a global variable for YOLO for now\nvar Screen tcell.Screen\n\n// oldStyle is a representation of how a cell would be styled when we were using termbox\ntype oldStyle struct {\n\tfg         Attribute\n\tbg         Attribute\n\toutputMode OutputMode\n}\n\nvar runeReplacements = map[rune]string{\n\t'┌': \"+\",\n\t'┐': \"+\",\n\t'└': \"+\",\n\t'┘': \"+\",\n\t'╭': \"+\",\n\t'╮': \"+\",\n\t'╰': \"+\",\n\t'╯': \"+\",\n\t'─': \"-\",\n\t'═': \"-\",\n\t'║': \"|\",\n\t'╔': \"+\",\n\t'╗': \"+\",\n\t'╚': \"+\",\n\t'╝': \"+\",\n\n\t// using a hyphen here actually looks weird.\n\t// We see these characters when in portrait mode\n\t'╶': \" \",\n\t'╴': \" \",\n\n\t'┴': \"+\",\n\t'┬': \"+\",\n\t'╷': \"|\",\n\t'├': \"+\",\n\t'│': \"|\",\n\t'▼': \"v\",\n\t'►': \">\",\n\t'▲': \"^\",\n\t'◄': \"<\",\n}\n\n// tcellInit initializes tcell screen for use.\nfunc (g *Gui) tcellInit(runeReplacements map[rune]string) error {\n\trunewidth.DefaultCondition.EastAsianWidth = false\n\ttcell.SetEncodingFallback(tcell.EncodingFallbackASCII)\n\n\tif s, e := tcell.NewScreen(); e != nil {\n\t\treturn e\n\t} else if e = s.Init(); e != nil {\n\t\treturn e\n\t} else {\n\t\tregisterRuneFallbacks(s, runeReplacements)\n\n\t\tg.screen = s\n\t\tScreen = s\n\t\treturn nil\n\t}\n}\n\nfunc registerRuneFallbacks(s tcell.Screen, additional map[rune]string) {\n\tfor before, after := range runeReplacements {\n\t\ts.RegisterRuneFallback(before, after)\n\t}\n\n\tfor before, after := range additional {\n\t\ts.RegisterRuneFallback(before, after)\n\t}\n}\n\n// tcellInitSimulation initializes tcell screen for use.\nfunc (g *Gui) tcellInitSimulation(width int, height int) error {\n\ts := tcell.NewSimulationScreen(\"\")\n\tif e := s.Init(); e != nil {\n\t\treturn e\n\t} else {\n\t\tg.screen = s\n\t\tScreen = s\n\t\t// setting to a larger value than the typical terminal size\n\t\t// so that during a test we're more likely to see an item to select in a view.\n\t\ts.SetSize(width, height)\n\t\ts.Sync()\n\t\treturn nil\n\t}\n}\n\n// tcellSetCell sets the character cell at a given location to the given\n// content (rune) and attributes using provided OutputMode\nfunc tcellSetCell(x, y int, ch rune, fg, bg Attribute, outputMode OutputMode) {\n\tst := getTcellStyle(oldStyle{fg: fg, bg: bg, outputMode: outputMode})\n\tScreen.SetContent(x, y, ch, nil, st)\n}\n\n// getTcellStyle creates tcell.Style from Attributes\nfunc getTcellStyle(input oldStyle) tcell.Style {\n\tst := tcell.StyleDefault\n\n\t// extract colors and attributes\n\tif input.fg != ColorDefault {\n\t\tst = st.Foreground(getTcellColor(input.fg, input.outputMode))\n\t\tst = setTcellFontEffectStyle(st, input.fg)\n\t}\n\tif input.bg != ColorDefault {\n\t\tst = st.Background(getTcellColor(input.bg, input.outputMode))\n\t\tst = setTcellFontEffectStyle(st, input.bg)\n\t}\n\n\treturn st\n}\n\n// setTcellFontEffectStyle add additional attributes to tcell.Style\nfunc setTcellFontEffectStyle(st tcell.Style, attr Attribute) tcell.Style {\n\tif attr&AttrBold != 0 {\n\t\tst = st.Bold(true)\n\t}\n\tif attr&AttrUnderline != 0 {\n\t\tst = st.Underline(true)\n\t}\n\tif attr&AttrReverse != 0 {\n\t\tst = st.Reverse(true)\n\t}\n\tif attr&AttrBlink != 0 {\n\t\tst = st.Blink(true)\n\t}\n\tif attr&AttrDim != 0 {\n\t\tst = st.Dim(true)\n\t}\n\tif attr&AttrItalic != 0 {\n\t\tst = st.Italic(true)\n\t}\n\tif attr&AttrStrikeThrough != 0 {\n\t\tst = st.StrikeThrough(true)\n\t}\n\treturn st\n}\n\n// gocuiEventType represents the type of event.\ntype gocuiEventType uint8\n\n// GocuiEvent represents events like a keys, mouse actions, or window resize.\n//\n//\tThe 'Mod', 'Key' and 'Ch' fields are valid if 'Type' is 'eventKey'.\n//\tThe 'MouseX' and 'MouseY' fields are valid if 'Type' is 'eventMouse'.\n//\tThe 'Width' and 'Height' fields are valid if 'Type' is 'eventResize'.\n//\tThe 'Focused' field is valid if 'Type' is 'eventFocus'.\n//\tThe 'Err' field is valid if 'Type' is 'eventError'.\ntype GocuiEvent struct {\n\tType    gocuiEventType\n\tMod     Modifier\n\tKey     Key\n\tCh      rune\n\tWidth   int\n\tHeight  int\n\tErr     error\n\tMouseX  int\n\tMouseY  int\n\tFocused bool\n\tN       int\n}\n\n// Event types.\nconst (\n\teventNone gocuiEventType = iota\n\teventKey\n\teventResize\n\teventMouse\n\teventFocus\n\teventInterrupt\n\teventError\n\teventRaw\n)\n\nconst (\n\tNOT_DRAGGING int = iota\n\tMAYBE_DRAGGING\n\tDRAGGING\n)\n\nvar (\n\tlastMouseKey tcell.ButtonMask = tcell.ButtonNone\n\tlastMouseMod tcell.ModMask    = tcell.ModNone\n\tdragState    int              = NOT_DRAGGING\n\tlastX        int              = 0\n\tlastY        int              = 0\n)\n\n// this wrapper struct has public keys so we can easily serialize/deserialize to JSON\ntype TcellKeyEventWrapper struct {\n\tTimestamp int64\n\tMod       tcell.ModMask\n\tKey       tcell.Key\n\tCh        rune\n}\n\nfunc NewTcellKeyEventWrapper(event *tcell.EventKey, timestamp int64) *TcellKeyEventWrapper {\n\treturn &TcellKeyEventWrapper{\n\t\tTimestamp: timestamp,\n\t\tMod:       event.Modifiers(),\n\t\tKey:       event.Key(),\n\t\tCh:        event.Rune(),\n\t}\n}\n\nfunc (wrapper TcellKeyEventWrapper) toTcellEvent() tcell.Event {\n\treturn tcell.NewEventKey(wrapper.Key, wrapper.Ch, wrapper.Mod)\n}\n\ntype TcellMouseEventWrapper struct {\n\tTimestamp  int64\n\tX          int\n\tY          int\n\tButtonMask tcell.ButtonMask\n\tModMask    tcell.ModMask\n}\n\nfunc NewTcellMouseEventWrapper(event *tcell.EventMouse, timestamp int64) *TcellMouseEventWrapper {\n\tx, y := event.Position()\n\treturn &TcellMouseEventWrapper{\n\t\tTimestamp:  timestamp,\n\t\tX:          x,\n\t\tY:          y,\n\t\tButtonMask: event.Buttons(),\n\t\tModMask:    event.Modifiers(),\n\t}\n}\n\nfunc (wrapper TcellMouseEventWrapper) toTcellEvent() tcell.Event {\n\treturn tcell.NewEventMouse(wrapper.X, wrapper.Y, wrapper.ButtonMask, wrapper.ModMask)\n}\n\ntype TcellResizeEventWrapper struct {\n\tTimestamp int64\n\tWidth     int\n\tHeight    int\n}\n\nfunc NewTcellResizeEventWrapper(event *tcell.EventResize, timestamp int64) *TcellResizeEventWrapper {\n\tw, h := event.Size()\n\n\treturn &TcellResizeEventWrapper{\n\t\tTimestamp: timestamp,\n\t\tWidth:     w,\n\t\tHeight:    h,\n\t}\n}\n\nfunc (wrapper TcellResizeEventWrapper) toTcellEvent() tcell.Event {\n\treturn tcell.NewEventResize(wrapper.Width, wrapper.Height)\n}\n\n// pollEvent get tcell.Event and transform it into gocuiEvent\nfunc (g *Gui) pollEvent() GocuiEvent {\n\tvar tev tcell.Event\n\tif g.playRecording {\n\t\tselect {\n\t\tcase ev := <-g.ReplayedEvents.Keys:\n\t\t\ttev = (ev).toTcellEvent()\n\t\tcase ev := <-g.ReplayedEvents.Resizes:\n\t\t\ttev = (ev).toTcellEvent()\n\t\tcase ev := <-g.ReplayedEvents.MouseEvents:\n\t\t\ttev = (ev).toTcellEvent()\n\t\t}\n\t} else {\n\t\ttev = Screen.PollEvent()\n\t}\n\n\tswitch tev := tev.(type) {\n\tcase *tcell.EventInterrupt:\n\t\treturn GocuiEvent{Type: eventInterrupt}\n\tcase *tcell.EventResize:\n\t\tw, h := tev.Size()\n\t\treturn GocuiEvent{Type: eventResize, Width: w, Height: h}\n\tcase *tcell.EventKey:\n\t\tk := tev.Key()\n\t\tch := rune(0)\n\t\tif k == tcell.KeyRune {\n\t\t\tk = 0 // if rune remove key (so it can match rune instead of key)\n\t\t\tch = tev.Rune()\n\t\t\tif ch == ' ' {\n\t\t\t\t// special handling for spacebar\n\t\t\t\tk = 32 // tcell keys ends at 31 or starts at 256\n\t\t\t\tch = rune(0)\n\t\t\t}\n\t\t}\n\t\tmod := tev.Modifiers()\n\t\t// remove control modifier and setup special handling of ctrl+spacebar, etc.\n\t\tif mod == tcell.ModCtrl && k == 32 {\n\t\t\tmod = 0\n\t\t\tch = rune(0)\n\t\t\tk = tcell.KeyCtrlSpace\n\t\t} else if mod == tcell.ModShift && k == tcell.KeyUp {\n\t\t\tmod = 0\n\t\t\tch = rune(0)\n\t\t\tk = tcell.KeyF62\n\t\t} else if mod == tcell.ModShift && k == tcell.KeyDown {\n\t\t\tmod = 0\n\t\t\tch = rune(0)\n\t\t\tk = tcell.KeyF63\n\t\t} else if mod == tcell.ModCtrl || mod == tcell.ModShift {\n\t\t\t// remove Ctrl or Shift if specified\n\t\t\t// - shift - will be translated to the final code of rune\n\t\t\t// - ctrl  - is translated in the key\n\t\t\tmod = 0\n\t\t} else if mod == tcell.ModAlt && k == tcell.KeyEnter {\n\t\t\t// for the sake of convenience I'm having a KeyAltEnter key. I will likely\n\t\t\t// regret this laziness in the future. We're arbitrarily mapping that to tcell's\n\t\t\t// KeyF64.\n\t\t\tmod = 0\n\t\t\tk = tcell.KeyF64\n\t\t}\n\n\t\treturn GocuiEvent{\n\t\t\tType: eventKey,\n\t\t\tKey:  Key(k),\n\t\t\tCh:   ch,\n\t\t\tMod:  Modifier(mod),\n\t\t}\n\tcase *tcell.EventMouse:\n\t\tx, y := tev.Position()\n\t\tbutton := tev.Buttons()\n\t\tmouseKey := MouseRelease\n\t\tmouseMod := ModNone\n\t\t// process mouse wheel\n\t\tif button&tcell.WheelUp != 0 {\n\t\t\tmouseKey = MouseWheelUp\n\t\t}\n\t\tif button&tcell.WheelDown != 0 {\n\t\t\tmouseKey = MouseWheelDown\n\t\t}\n\t\tif button&tcell.WheelLeft != 0 {\n\t\t\tmouseKey = MouseWheelLeft\n\t\t}\n\t\tif button&tcell.WheelRight != 0 {\n\t\t\tmouseKey = MouseWheelRight\n\t\t}\n\n\t\twheeling := mouseKey == MouseWheelUp || mouseKey == MouseWheelDown || mouseKey == MouseWheelLeft || mouseKey == MouseWheelRight\n\n\t\t// process button events (not wheel events)\n\t\tbutton &= tcell.ButtonMask(0xff)\n\t\tif button != tcell.ButtonNone && lastMouseKey == tcell.ButtonNone {\n\t\t\tlastMouseKey = button\n\t\t\tlastMouseMod = tev.Modifiers()\n\t\t\tswitch button {\n\t\t\tcase tcell.ButtonPrimary:\n\t\t\t\tmouseKey = MouseLeft\n\t\t\t\tdragState = MAYBE_DRAGGING\n\t\t\t\tlastX = x\n\t\t\t\tlastY = y\n\t\t\tcase tcell.ButtonSecondary:\n\t\t\t\tmouseKey = MouseRight\n\t\t\tcase tcell.ButtonMiddle:\n\t\t\t\tmouseKey = MouseMiddle\n\t\t\t}\n\t\t}\n\n\t\tswitch tev.Buttons() {\n\t\tcase tcell.ButtonNone:\n\t\t\tif lastMouseKey != tcell.ButtonNone {\n\t\t\t\tswitch lastMouseKey {\n\t\t\t\tcase tcell.ButtonPrimary:\n\t\t\t\t\tdragState = NOT_DRAGGING\n\t\t\t\tcase tcell.ButtonSecondary:\n\t\t\t\tcase tcell.ButtonMiddle:\n\t\t\t\t}\n\t\t\t\tmouseMod = Modifier(lastMouseMod)\n\t\t\t\tlastMouseMod = tcell.ModNone\n\t\t\t\tlastMouseKey = tcell.ButtonNone\n\t\t\t}\n\t\t}\n\n\t\tif !wheeling {\n\t\t\tswitch dragState {\n\t\t\tcase NOT_DRAGGING:\n\t\t\t\treturn GocuiEvent{Type: eventNone}\n\t\t\t// if we haven't released the left mouse button and we've moved the cursor then we're dragging\n\t\t\tcase MAYBE_DRAGGING:\n\t\t\t\tif x != lastX || y != lastY {\n\t\t\t\t\tdragState = DRAGGING\n\t\t\t\t}\n\t\t\tcase DRAGGING:\n\t\t\t\tmouseMod = ModMotion\n\t\t\t\tmouseKey = MouseLeft\n\t\t\t}\n\t\t}\n\n\t\treturn GocuiEvent{\n\t\t\tType:   eventMouse,\n\t\t\tMouseX: x,\n\t\t\tMouseY: y,\n\t\t\tKey:    mouseKey,\n\t\t\tCh:     0,\n\t\t\tMod:    mouseMod,\n\t\t}\n\tcase *tcell.EventFocus:\n\t\treturn GocuiEvent{\n\t\t\tType:    eventFocus,\n\t\t\tFocused: tev.Focused,\n\t\t}\n\tdefault:\n\t\treturn GocuiEvent{Type: eventNone}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/text_area.go",
    "content": "package gocui\n\nimport (\n\t\"strings\"\n\n\t\"github.com/mattn/go-runewidth\"\n)\n\nconst (\n\tWHITESPACES     = \" \\t\"\n\tWORD_SEPARATORS = \"*?_+-.[]~=/&;!#$%^(){}<>\"\n)\n\ntype CursorMapping struct {\n\tOrig    int\n\tWrapped int\n}\n\ntype TextArea struct {\n\tcontent        []rune\n\twrappedContent []rune\n\tcursorMapping  []CursorMapping\n\tcursor         int\n\toverwrite      bool\n\tclipboard      string\n\tAutoWrap       bool\n\tAutoWrapWidth  int\n}\n\nfunc AutoWrapContent(content []rune, autoWrapWidth int) ([]rune, []CursorMapping) {\n\testimatedNumberOfSoftLineBreaks := len(content) / autoWrapWidth\n\tcursorMapping := make([]CursorMapping, 0, estimatedNumberOfSoftLineBreaks)\n\twrappedContent := make([]rune, 0, len(content)+estimatedNumberOfSoftLineBreaks)\n\tstartOfLine := 0\n\tindexOfLastWhitespace := -1\n\n\tfor currentPos, r := range content {\n\t\tif r == '\\n' {\n\t\t\twrappedContent = append(wrappedContent, content[startOfLine:currentPos+1]...)\n\t\t\tstartOfLine = currentPos + 1\n\t\t\tindexOfLastWhitespace = -1\n\t\t} else {\n\t\t\tif r == ' ' {\n\t\t\t\tindexOfLastWhitespace = currentPos + 1\n\t\t\t} else if currentPos-startOfLine >= autoWrapWidth && indexOfLastWhitespace >= 0 {\n\t\t\t\twrapAt := indexOfLastWhitespace\n\t\t\t\twrappedContent = append(wrappedContent, content[startOfLine:wrapAt]...)\n\t\t\t\twrappedContent = append(wrappedContent, '\\n')\n\t\t\t\tcursorMapping = append(cursorMapping, CursorMapping{wrapAt, len(wrappedContent)})\n\t\t\t\tstartOfLine = wrapAt\n\t\t\t\tindexOfLastWhitespace = -1\n\t\t\t}\n\t\t}\n\t}\n\n\twrappedContent = append(wrappedContent, content[startOfLine:]...)\n\n\treturn wrappedContent, cursorMapping\n}\n\nfunc (self *TextArea) autoWrapContent() {\n\tif self.AutoWrap {\n\t\tself.wrappedContent, self.cursorMapping = AutoWrapContent(self.content, self.AutoWrapWidth)\n\t} else {\n\t\tself.wrappedContent, self.cursorMapping = self.content, []CursorMapping{}\n\t}\n}\n\nfunc (self *TextArea) TypeRune(r rune) {\n\tif self.overwrite && !self.atEnd() {\n\t\tself.content[self.cursor] = r\n\t} else {\n\t\tself.content = append(\n\t\t\tself.content[:self.cursor],\n\t\t\tappend([]rune{r}, self.content[self.cursor:]...)...,\n\t\t)\n\t}\n\tself.autoWrapContent()\n\n\tself.cursor++\n}\n\nfunc (self *TextArea) BackSpaceChar() {\n\tif self.cursor == 0 {\n\t\treturn\n\t}\n\n\tself.content = append(self.content[:self.cursor-1], self.content[self.cursor:]...)\n\tself.autoWrapContent()\n\tself.cursor--\n}\n\nfunc (self *TextArea) DeleteChar() {\n\tif self.atEnd() {\n\t\treturn\n\t}\n\n\tself.content = append(self.content[:self.cursor], self.content[self.cursor+1:]...)\n\tself.autoWrapContent()\n}\n\nfunc (self *TextArea) MoveCursorLeft() {\n\tif self.cursor == 0 {\n\t\treturn\n\t}\n\n\tself.cursor--\n}\n\nfunc (self *TextArea) MoveCursorRight() {\n\tif self.cursor == len(self.content) {\n\t\treturn\n\t}\n\n\tself.cursor++\n}\n\nfunc (self *TextArea) MoveLeftWord() {\n\tif self.cursor == 0 {\n\t\treturn\n\t}\n\tif self.atLineStart() {\n\t\tself.cursor--\n\t\treturn\n\t}\n\n\tfor !self.atLineStart() && strings.ContainsRune(WHITESPACES, self.content[self.cursor-1]) {\n\t\tself.cursor--\n\t}\n\tseparators := false\n\tfor !self.atLineStart() && strings.ContainsRune(WORD_SEPARATORS, self.content[self.cursor-1]) {\n\t\tself.cursor--\n\t\tseparators = true\n\t}\n\tif !separators {\n\t\tfor !self.atLineStart() && !strings.ContainsRune(WHITESPACES+WORD_SEPARATORS, self.content[self.cursor-1]) {\n\t\t\tself.cursor--\n\t\t}\n\t}\n}\n\nfunc (self *TextArea) MoveRightWord() {\n\tif self.atEnd() {\n\t\treturn\n\t}\n\tif self.atLineEnd() {\n\t\tself.cursor++\n\t\treturn\n\t}\n\n\tfor !self.atLineEnd() && strings.ContainsRune(WHITESPACES, self.content[self.cursor]) {\n\t\tself.cursor++\n\t}\n\tseparators := false\n\tfor !self.atLineEnd() && strings.ContainsRune(WORD_SEPARATORS, self.content[self.cursor]) {\n\t\tself.cursor++\n\t\tseparators = true\n\t}\n\tif !separators {\n\t\tfor !self.atLineEnd() && !strings.ContainsRune(WHITESPACES+WORD_SEPARATORS, self.content[self.cursor]) {\n\t\t\tself.cursor++\n\t\t}\n\t}\n}\n\nfunc (self *TextArea) MoveCursorUp() {\n\tx, y := self.GetCursorXY()\n\tself.SetCursor2D(x, y-1)\n}\n\nfunc (self *TextArea) MoveCursorDown() {\n\tx, y := self.GetCursorXY()\n\tself.SetCursor2D(x, y+1)\n}\n\nfunc (self *TextArea) GetContent() string {\n\treturn string(self.wrappedContent)\n}\n\nfunc (self *TextArea) GetUnwrappedContent() string {\n\treturn string(self.content)\n}\n\nfunc (self *TextArea) ToggleOverwrite() {\n\tself.overwrite = !self.overwrite\n}\n\nfunc (self *TextArea) atEnd() bool {\n\treturn self.cursor == len(self.content)\n}\n\nfunc (self *TextArea) DeleteToStartOfLine() {\n\t// copying vim's logic: if you're at the start of the line, you delete the newline\n\t// character and go to the end of the previous line\n\tif self.atLineStart() {\n\t\tif self.cursor == 0 {\n\t\t\treturn\n\t\t}\n\n\t\tself.content = append(self.content[:self.cursor-1], self.content[self.cursor:]...)\n\t\tself.cursor--\n\t\tself.autoWrapContent()\n\t\treturn\n\t}\n\n\t// otherwise, if we're at a soft line start, skip left past the soft line\n\t// break, so we'll end up deleting the previous line. This seems like the\n\t// only reasonable behavior in this case, as you can't delete just the soft\n\t// line break.\n\tif self.atSoftLineStart() {\n\t\tself.cursor--\n\t}\n\n\t// otherwise, you delete everything up to the start of the current line, without\n\t// deleting the newline character\n\tnewlineIndex := self.closestNewlineOnLeft()\n\tself.clipboard = string(self.content[newlineIndex+1 : self.cursor])\n\tself.content = append(self.content[:newlineIndex+1], self.content[self.cursor:]...)\n\tself.autoWrapContent()\n\tself.cursor = newlineIndex + 1\n}\n\nfunc (self *TextArea) DeleteToEndOfLine() {\n\tif self.atEnd() {\n\t\treturn\n\t}\n\n\t// if we're at the end of the line, delete just the newline character\n\tif self.atLineEnd() {\n\t\tself.content = append(self.content[:self.cursor], self.content[self.cursor+1:]...)\n\t\tself.autoWrapContent()\n\t\treturn\n\t}\n\n\t// otherwise, if we're at a soft line end, skip right past the soft line\n\t// break, so we'll end up deleting the next line. This seems like the\n\t// only reasonable behavior in this case, as you can't delete just the soft\n\t// line break.\n\tif self.atSoftLineEnd() {\n\t\tself.cursor++\n\t}\n\n\tlineEndIndex := self.closestNewlineOnRight()\n\tself.clipboard = string(self.content[self.cursor:lineEndIndex])\n\tself.content = append(self.content[:self.cursor], self.content[lineEndIndex:]...)\n\tself.autoWrapContent()\n}\n\nfunc (self *TextArea) GoToStartOfLine() {\n\tif self.atSoftLineStart() {\n\t\treturn\n\t}\n\n\t// otherwise, you delete everything up to the start of the current line, without\n\t// deleting the newline character\n\tnewlineIndex := self.closestNewlineOnLeft()\n\tself.cursor = newlineIndex + 1\n}\n\nfunc (self *TextArea) closestNewlineOnLeft() int {\n\twrappedCursor := self.origCursorToWrappedCursor(self.cursor)\n\n\tnewlineIndex := -1\n\n\tfor i, r := range self.wrappedContent[0:wrappedCursor] {\n\t\tif r == '\\n' {\n\t\t\tnewlineIndex = i\n\t\t}\n\t}\n\n\tunwrappedNewlineIndex := self.wrappedCursorToOrigCursor(newlineIndex)\n\tif unwrappedNewlineIndex >= 0 && self.content[unwrappedNewlineIndex] != '\\n' {\n\t\tunwrappedNewlineIndex--\n\t}\n\treturn unwrappedNewlineIndex\n}\n\nfunc (self *TextArea) GoToEndOfLine() {\n\tif self.atEnd() {\n\t\treturn\n\t}\n\n\tself.cursor = self.closestNewlineOnRight()\n\n\t// If the end of line is a soft line break, we need to move left by one so\n\t// that we end up at the last whitespace before the line break. Otherwise\n\t// we'd be at the start of the next line, since the newline character\n\t// doesn't really exist in the real content.\n\tif self.cursor < len(self.content) && self.content[self.cursor] != '\\n' {\n\t\tself.cursor--\n\t}\n}\n\nfunc (self *TextArea) closestNewlineOnRight() int {\n\twrappedCursor := self.origCursorToWrappedCursor(self.cursor)\n\n\tfor i, r := range self.wrappedContent[wrappedCursor:] {\n\t\tif r == '\\n' {\n\t\t\treturn self.wrappedCursorToOrigCursor(wrappedCursor + i)\n\t\t}\n\t}\n\n\treturn len(self.content)\n}\n\nfunc (self *TextArea) atLineStart() bool {\n\treturn self.cursor == 0 ||\n\t\t(len(self.content) > self.cursor-1 && self.content[self.cursor-1] == '\\n')\n}\n\nfunc (self *TextArea) atSoftLineStart() bool {\n\twrappedCursor := self.origCursorToWrappedCursor(self.cursor)\n\treturn wrappedCursor == 0 ||\n\t\t(len(self.wrappedContent) > wrappedCursor-1 && self.wrappedContent[wrappedCursor-1] == '\\n')\n}\n\nfunc (self *TextArea) atLineEnd() bool {\n\treturn self.atEnd() ||\n\t\t(len(self.content) > self.cursor && self.content[self.cursor] == '\\n')\n}\n\nfunc (self *TextArea) atSoftLineEnd() bool {\n\twrappedCursor := self.origCursorToWrappedCursor(self.cursor)\n\treturn wrappedCursor == len(self.wrappedContent) ||\n\t\t(len(self.wrappedContent) > wrappedCursor+1 && self.wrappedContent[wrappedCursor+1] == '\\n')\n}\n\nfunc (self *TextArea) BackSpaceWord() {\n\tif self.cursor == 0 {\n\t\treturn\n\t}\n\tif self.atLineStart() {\n\t\tself.BackSpaceChar()\n\t\treturn\n\t}\n\n\tright := self.cursor\n\tfor !self.atLineStart() && strings.ContainsRune(WHITESPACES, self.content[self.cursor-1]) {\n\t\tself.cursor--\n\t}\n\tseparators := false\n\tfor !self.atLineStart() && strings.ContainsRune(WORD_SEPARATORS, self.content[self.cursor-1]) {\n\t\tself.cursor--\n\t\tseparators = true\n\t}\n\tif !separators {\n\t\tfor !self.atLineStart() && !strings.ContainsRune(WHITESPACES+WORD_SEPARATORS, self.content[self.cursor-1]) {\n\t\t\tself.cursor--\n\t\t}\n\t}\n\n\tself.clipboard = string(self.content[self.cursor:right])\n\tself.content = append(self.content[:self.cursor], self.content[right:]...)\n\tself.autoWrapContent()\n}\n\nfunc (self *TextArea) Yank() {\n\tself.TypeString(self.clipboard)\n}\n\nfunc origCursorToWrappedCursor(origCursor int, cursorMapping []CursorMapping) int {\n\tprevMapping := CursorMapping{0, 0}\n\tfor _, mapping := range cursorMapping {\n\t\tif origCursor < mapping.Orig {\n\t\t\tbreak\n\t\t}\n\t\tprevMapping = mapping\n\t}\n\n\treturn origCursor + prevMapping.Wrapped - prevMapping.Orig\n}\n\nfunc (self *TextArea) origCursorToWrappedCursor(origCursor int) int {\n\treturn origCursorToWrappedCursor(origCursor, self.cursorMapping)\n}\n\nfunc wrappedCursorToOrigCursor(wrappedCursor int, cursorMapping []CursorMapping) int {\n\tprevMapping := CursorMapping{0, 0}\n\tfor _, mapping := range cursorMapping {\n\t\tif wrappedCursor < mapping.Wrapped {\n\t\t\tbreak\n\t\t}\n\t\tprevMapping = mapping\n\t}\n\n\treturn wrappedCursor + prevMapping.Orig - prevMapping.Wrapped\n}\n\nfunc (self *TextArea) wrappedCursorToOrigCursor(wrappedCursor int) int {\n\treturn wrappedCursorToOrigCursor(wrappedCursor, self.cursorMapping)\n}\n\nfunc (self *TextArea) GetCursorXY() (int, int) {\n\tcursorX := 0\n\tcursorY := 0\n\twrappedCursor := self.origCursorToWrappedCursor(self.cursor)\n\tfor _, r := range self.wrappedContent[0:wrappedCursor] {\n\t\tif r == '\\n' {\n\t\t\tcursorY++\n\t\t\tcursorX = 0\n\t\t} else {\n\t\t\tchWidth := runewidth.RuneWidth(r)\n\t\t\tcursorX += chWidth\n\t\t}\n\t}\n\n\treturn cursorX, cursorY\n}\n\n// takes an x,y position and maps it to a 1D cursor position\nfunc (self *TextArea) SetCursor2D(x int, y int) {\n\tif y < 0 {\n\t\ty = 0\n\t}\n\tif x < 0 {\n\t\tx = 0\n\t}\n\n\tnewCursor := 0\n\tfor _, r := range self.wrappedContent {\n\t\tif x <= 0 && y == 0 {\n\t\t\tself.cursor = self.wrappedCursorToOrigCursor(newCursor)\n\t\t\treturn\n\t\t}\n\n\t\tif r == '\\n' {\n\t\t\tif y == 0 {\n\t\t\t\tself.cursor = self.wrappedCursorToOrigCursor(newCursor)\n\t\t\t\treturn\n\t\t\t}\n\t\t\ty--\n\t\t} else if y == 0 {\n\t\t\tchWidth := runewidth.RuneWidth(r)\n\t\t\tx -= chWidth\n\t\t}\n\n\t\tnewCursor++\n\t}\n\n\t// if we weren't able to run-down our arg, the user is trying to move out of\n\t// bounds so we'll just return\n\tif y > 0 {\n\t\treturn\n\t}\n\n\tself.cursor = self.wrappedCursorToOrigCursor(newCursor)\n}\n\nfunc (self *TextArea) Clear() {\n\tself.content = []rune{}\n\tself.wrappedContent = []rune{}\n\tself.cursor = 0\n}\n\nfunc (self *TextArea) TypeString(str string) {\n\tfor _, r := range str {\n\t\tself.TypeRune(r)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/gocui/view.go",
    "content": "// Copyright 2014 The gocui Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage gocui\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"github.com/gdamore/tcell/v2\"\n\t\"github.com/go-errors/errors\"\n\t\"github.com/mattn/go-runewidth\"\n)\n\n// Constants for overlapping edges\nconst (\n\tTOP    = 1 // view is overlapping at top edge\n\tBOTTOM = 2 // view is overlapping at bottom edge\n\tLEFT   = 4 // view is overlapping at left edge\n\tRIGHT  = 8 // view is overlapping at right edge\n)\n\n// ErrInvalidPoint is returned when client passed invalid coordinates of a cell.\n// Most likely client has passed negative coordinates of a cell.\nvar ErrInvalidPoint = errors.New(\"invalid point\")\n\n// A View is a window. It maintains its own internal buffer and cursor\n// position.\ntype View struct {\n\tname           string\n\tx0, y0, x1, y1 int      // left top right bottom\n\tox, oy         int      // view offsets\n\tcx, cy         int      // cursor position\n\trx, ry         int      // Read() offsets\n\twx, wy         int      // Write() offsets\n\tlines          [][]cell // All the data\n\toutMode        OutputMode\n\t// The y position of the first line of a range selection.\n\t// This is not relative to the view's origin: it is relative to the first line\n\t// of the view's content, so you can scroll the view and this value will remain\n\t// the same, unlike the view's cy value.\n\t// A value of -1 means that there is no range selection.\n\t// This value can be greater than the selected line index, in the event that\n\t// a user starts a range select and then moves the cursor up.\n\trangeSelectStartY int\n\n\t// readBuffer is used for storing unread bytes\n\treadBuffer []byte\n\n\t// tained is true if the viewLines must be updated\n\ttainted bool\n\n\t// internal representation of the view's buffer. We will keep viewLines around\n\t// from a previous render until we explicitly set them to nil, allowing us to\n\t// render the same content twice without flicker. Wherever we want to render\n\t// something without any chance of old content appearing (e.g. when actually\n\t// rendering new content or if the view is resized) we should set tainted to\n\t// true and viewLines to nil\n\tviewLines []viewLine\n\n\t// writeMutex protects locks the write process\n\twriteMutex sync.Mutex\n\n\t// ei is used to decode ESC sequences on Write\n\tei *escapeInterpreter\n\n\t// Visible specifies whether the view is visible.\n\tVisible bool\n\n\t// BgColor and FgColor allow to configure the background and foreground\n\t// colors of the View.\n\tBgColor, FgColor Attribute\n\n\t// SelBgColor and SelFgColor are used to configure the background and\n\t// foreground colors of the selected line, when it is highlighted.\n\tSelBgColor, SelFgColor Attribute\n\n\t// If Editable is true, keystrokes will be added to the view's internal\n\t// buffer at the cursor position.\n\tEditable bool\n\n\t// Editor allows to define the editor that manages the editing mode,\n\t// including keybindings or cursor behaviour. DefaultEditor is used by\n\t// default.\n\tEditor Editor\n\n\t// Overwrite enables or disables the overwrite mode of the view.\n\tOverwrite bool\n\n\t// If Highlight is true, Sel{Bg,Fg}Colors will be used\n\t// for the line under the cursor position.\n\tHighlight bool\n\n\t// If Frame is true, a border will be drawn around the view.\n\tFrame bool\n\n\t// FrameColor allow to configure the color of the Frame when it is not highlighted.\n\tFrameColor Attribute\n\n\t// FrameRunes allows to define custom runes for the frame edges.\n\t// The rune slice can be defined with 3 different lengths.\n\t// If slice doesn't match these lengths, default runes will be used instead of missing one.\n\t//\n\t// 2 runes with only horizontal and vertical edges.\n\t//  []rune{'─', '│'}\n\t//  []rune{'═','║'}\n\t// 6 runes with horizontal, vertical edges and top-left, top-right, bottom-left, bottom-right cornes.\n\t//  []rune{'─', '│', '┌', '┐', '└', '┘'}\n\t//  []rune{'═','║','╔','╗','╚','╝'}\n\t// 11 runes which can be used with `gocui.Gui.SupportOverlaps` property.\n\t//  []rune{'─', '│', '┌', '┐', '└', '┘', '├', '┤', '┬', '┴', '┼'}\n\t//  []rune{'═','║','╔','╗','╚','╝','╠','╣','╦','╩','╬'}\n\tFrameRunes []rune\n\n\t// If Wrap is true, the content that is written to this View is\n\t// automatically wrapped when it is longer than its width. If true the\n\t// view's x-origin will be ignored.\n\tWrap bool\n\n\t// If Autoscroll is true, the View will automatically scroll down when the\n\t// text overflows. If true the view's y-origin will be ignored.\n\tAutoscroll bool\n\n\t// If Frame is true, Title allows to configure a title for the view.\n\tTitle string\n\n\t// If non-empty, TitlePrefix is prepended to the title of a view regardless on\n\t// the the currently selected tab (if any.)\n\tTitlePrefix string\n\n\tTabs     []string\n\tTabIndex int\n\n\t// TitleColor allow to configure the color of title and subtitle for the view.\n\tTitleColor Attribute\n\n\t// If Frame is true, Subtitle allows to configure a subtitle for the view.\n\tSubtitle string\n\n\t// If Mask is true, the View will display the mask instead of the real\n\t// content\n\tMask rune\n\n\t// Overlaps describes which edges are overlapping with another view's edges\n\tOverlaps byte\n\n\t// If HasLoader is true, the message will be appended with a spinning loader animation\n\tHasLoader bool\n\n\t// IgnoreCarriageReturns tells us whether to ignore '\\r' characters\n\tIgnoreCarriageReturns bool\n\n\t// ParentView is the view which catches events bubbled up from the given view if there's no matching handler\n\tParentView *View\n\n\tsearcher *searcher\n\n\t// KeybindOnEdit should be set to true when you want to execute keybindings even when the view is editable\n\t// (this is usually not the case)\n\tKeybindOnEdit bool\n\n\tTextArea *TextArea\n\n\t// something like '1 of 20' for a list view\n\tFooter string\n\n\t// if true, the user can scroll all the way past the last item until it appears at the top of the view\n\tCanScrollPastBottom bool\n}\n\n// call this in the event of a view resize, or if you want to render new content\n// without the chance of old content still appearing, or if you want to remove\n// a line from the existing content\nfunc (v *View) clearViewLines() {\n\tv.tainted = true\n\tv.viewLines = nil\n}\n\ntype searcher struct {\n\tsearchString       string\n\tsearchPositions    []cellPos\n\tcurrentSearchIndex int\n\tonSelectItem       func(int, int, int) error\n}\n\nfunc (v *View) SetOnSelectItem(onSelectItem func(int, int, int) error) {\n\tv.searcher.onSelectItem = onSelectItem\n}\n\nfunc (v *View) gotoNextMatch() error {\n\tif len(v.searcher.searchPositions) == 0 {\n\t\treturn nil\n\t}\n\tif v.searcher.currentSearchIndex >= len(v.searcher.searchPositions)-1 {\n\t\tv.searcher.currentSearchIndex = 0\n\t} else {\n\t\tv.searcher.currentSearchIndex++\n\t}\n\treturn v.SelectSearchResult(v.searcher.currentSearchIndex)\n}\n\nfunc (v *View) gotoPreviousMatch() error {\n\tif len(v.searcher.searchPositions) == 0 {\n\t\treturn nil\n\t}\n\tif v.searcher.currentSearchIndex == 0 {\n\t\tif len(v.searcher.searchPositions) > 0 {\n\t\t\tv.searcher.currentSearchIndex = len(v.searcher.searchPositions) - 1\n\t\t}\n\t} else {\n\t\tv.searcher.currentSearchIndex--\n\t}\n\treturn v.SelectSearchResult(v.searcher.currentSearchIndex)\n}\n\nfunc (v *View) SelectSearchResult(index int) error {\n\titemCount := len(v.searcher.searchPositions)\n\tif itemCount == 0 {\n\t\treturn nil\n\t}\n\tif index > itemCount-1 {\n\t\tindex = itemCount - 1\n\t}\n\n\ty := v.searcher.searchPositions[index].y\n\n\tv.FocusPoint(v.ox, y)\n\tif v.searcher.onSelectItem != nil {\n\t\treturn v.searcher.onSelectItem(y, index, itemCount)\n\t}\n\treturn nil\n}\n\n// Returns <current match index>, <total matches>\nfunc (v *View) GetSearchStatus() (int, int) {\n\treturn v.searcher.currentSearchIndex, len(v.searcher.searchPositions)\n}\n\nfunc (v *View) Search(str string) error {\n\tv.writeMutex.Lock()\n\tv.searcher.search(str)\n\tv.updateSearchPositions()\n\n\tif len(v.searcher.searchPositions) > 0 {\n\t\t// get the first result past the current cursor\n\t\tcurrentIndex := 0\n\t\tadjustedY := v.oy + v.cy\n\t\tadjustedX := v.ox + v.cx\n\t\tfor i, pos := range v.searcher.searchPositions {\n\t\t\tif pos.y > adjustedY || (pos.y == adjustedY && pos.x > adjustedX) {\n\t\t\t\tcurrentIndex = i\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tv.searcher.currentSearchIndex = currentIndex\n\t\tv.writeMutex.Unlock()\n\t\treturn v.SelectSearchResult(currentIndex)\n\t} else {\n\t\tv.writeMutex.Unlock()\n\t\treturn v.searcher.onSelectItem(-1, -1, 0)\n\t}\n}\n\nfunc (v *View) ClearSearch() {\n\tv.searcher.clearSearch()\n}\n\nfunc (v *View) IsSearching() bool {\n\treturn v.searcher.searchString != \"\"\n}\n\nfunc (v *View) FocusPoint(cx int, cy int) {\n\tlineCount := len(v.lines)\n\tif cy < 0 || cy > lineCount {\n\t\treturn\n\t}\n\t_, height := v.Size()\n\n\tly := height - 1\n\tif ly < 0 {\n\t\tly = 0\n\t}\n\n\tv.oy = calculateNewOrigin(cy, v.oy, lineCount, ly)\n\tv.cx = cx\n\tv.cy = cy - v.oy\n}\n\nfunc (v *View) SetRangeSelectStart(rangeSelectStartY int) {\n\tv.rangeSelectStartY = rangeSelectStartY\n}\n\nfunc (v *View) CancelRangeSelect() {\n\tv.rangeSelectStartY = -1\n}\n\nfunc calculateNewOrigin(selectedLine int, oldOrigin int, lineCount int, viewHeight int) int {\n\tif viewHeight > lineCount {\n\t\treturn 0\n\t} else if selectedLine < oldOrigin || selectedLine > oldOrigin+viewHeight {\n\t\t// If the selected line is outside the visible area, scroll the view so\n\t\t// that the selected line is in the middle.\n\t\tnewOrigin := selectedLine - viewHeight/2\n\n\t\t// However, take care not to overflow if the total line count is less\n\t\t// than the view height.\n\t\tmaxOrigin := lineCount - viewHeight - 1\n\t\tif newOrigin > maxOrigin {\n\t\t\tnewOrigin = maxOrigin\n\t\t}\n\t\tif newOrigin < 0 {\n\t\t\tnewOrigin = 0\n\t\t}\n\n\t\treturn newOrigin\n\t}\n\n\treturn oldOrigin\n}\n\nfunc (s *searcher) search(str string) {\n\ts.searchString = str\n\ts.searchPositions = []cellPos{}\n\ts.currentSearchIndex = 0\n}\n\nfunc (s *searcher) clearSearch() {\n\ts.searchString = \"\"\n\ts.searchPositions = []cellPos{}\n\ts.currentSearchIndex = 0\n}\n\ntype cellPos struct {\n\tx int\n\ty int\n}\n\ntype viewLine struct {\n\tlinesX, linesY int // coordinates relative to v.lines\n\tline           []cell\n}\n\ntype cell struct {\n\tchr              rune\n\tbgColor, fgColor Attribute\n}\n\ntype lineType []cell\n\n// String returns a string from a given cell slice.\nfunc (l lineType) String() string {\n\tstr := \"\"\n\tfor _, c := range l {\n\t\tstr += string(c.chr)\n\t}\n\treturn str\n}\n\n// newView returns a new View object.\nfunc newView(name string, x0, y0, x1, y1 int, mode OutputMode) *View {\n\tv := &View{\n\t\tname:              name,\n\t\tx0:                x0,\n\t\ty0:                y0,\n\t\tx1:                x1,\n\t\ty1:                y1,\n\t\tVisible:           true,\n\t\tFrame:             true,\n\t\tEditor:            DefaultEditor,\n\t\ttainted:           true,\n\t\toutMode:           mode,\n\t\tei:                newEscapeInterpreter(mode),\n\t\tsearcher:          &searcher{},\n\t\tTextArea:          &TextArea{},\n\t\trangeSelectStartY: -1,\n\t}\n\n\tv.FgColor, v.BgColor = ColorDefault, ColorDefault\n\tv.SelFgColor, v.SelBgColor = ColorDefault, ColorDefault\n\tv.TitleColor, v.FrameColor = ColorDefault, ColorDefault\n\treturn v\n}\n\n// Dimensions returns the dimensions of the View\nfunc (v *View) Dimensions() (int, int, int, int) {\n\treturn v.x0, v.y0, v.x1, v.y1\n}\n\n// Size returns the number of visible columns and rows in the View.\nfunc (v *View) Size() (x, y int) {\n\treturn v.Width(), v.Height()\n}\n\nfunc (v *View) Width() int {\n\treturn v.x1 - v.x0 - 1\n}\n\nfunc (v *View) Height() int {\n\treturn v.y1 - v.y0 - 1\n}\n\n// if a view has a frame, that leaves less space for its writeable area\nfunc (v *View) InnerWidth() int {\n\tinnerWidth := v.Width() - v.frameOffset()\n\tif innerWidth < 0 {\n\t\treturn 0\n\t}\n\n\treturn innerWidth\n}\n\nfunc (v *View) InnerHeight() int {\n\tinnerHeight := v.Height() - v.frameOffset()\n\tif innerHeight < 0 {\n\t\treturn 0\n\t}\n\n\treturn innerHeight\n}\n\nfunc (v *View) frameOffset() int {\n\tif v.Frame {\n\t\treturn 1\n\t} else {\n\t\treturn 0\n\t}\n}\n\n// Name returns the name of the view.\nfunc (v *View) Name() string {\n\treturn v.name\n}\n\n// setRune sets a rune at the given point relative to the view. It applies the\n// specified colors, taking into account if the cell must be highlighted. Also,\n// it checks if the position is valid.\nfunc (v *View) setRune(x, y int, ch rune, fgColor, bgColor Attribute) error {\n\tmaxX, maxY := v.Size()\n\tif x < 0 || x >= maxX || y < 0 || y >= maxY {\n\t\treturn ErrInvalidPoint\n\t}\n\n\tif v.Mask != 0 {\n\t\tfgColor = v.FgColor\n\t\tbgColor = v.BgColor\n\t\tch = v.Mask\n\t} else if v.Highlight {\n\t\tvar (\n\t\t\try, rcy int\n\t\t\terr     error\n\t\t)\n\n\t\t_, ry, err = v.realPosition(x, y)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, rrcy, err := v.realPosition(v.cx, v.cy)\n\t\t// if error is not nil, then the cursor is out of bounds, which is fine\n\t\tif err == nil {\n\t\t\trcy = rrcy\n\t\t}\n\n\t\trangeSelectStart := rcy\n\t\trangeSelectEnd := rcy\n\t\tif v.rangeSelectStartY != -1 {\n\t\t\t_, realRangeSelectStart, err := v.realPosition(0, v.rangeSelectStartY-v.oy)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\trangeSelectStart = min(realRangeSelectStart, rcy)\n\t\t\trangeSelectEnd = max(realRangeSelectStart, rcy)\n\t\t}\n\n\t\tif ry >= rangeSelectStart && ry <= rangeSelectEnd {\n\t\t\t// this ensures we use the bright variant of a colour upon highlight\n\t\t\tfgColorComponent := fgColor & ^AttrAll\n\t\t\tif fgColorComponent >= AttrIsValidColor && fgColorComponent < AttrIsValidColor+8 {\n\t\t\t\tfgColor += 8\n\t\t\t}\n\t\t\tfgColor = fgColor | AttrBold\n\t\t\tbgColor = bgColor | v.SelBgColor\n\t\t}\n\t}\n\n\t// Don't display NUL characters\n\tif ch == 0 {\n\t\tch = ' '\n\t}\n\n\ttcellSetCell(v.x0+x+1, v.y0+y+1, ch, fgColor, bgColor, v.outMode)\n\n\treturn nil\n}\n\nfunc min(a, b int) int {\n\tif a < b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc max(a, b int) int {\n\tif a > b {\n\t\treturn a\n\t}\n\treturn b\n}\n\n// SetCursor sets the cursor position of the view at the given point,\n// relative to the view. It checks if the position is valid.\nfunc (v *View) SetCursor(x, y int) error {\n\tmaxX, maxY := v.Size()\n\tif x < 0 || x >= maxX || y < 0 || y >= maxY {\n\t\treturn nil\n\t}\n\tv.cx = x\n\tv.cy = y\n\treturn nil\n}\n\nfunc (v *View) SetCursorX(x int) {\n\tmaxX, _ := v.Size()\n\tif x < 0 || x >= maxX {\n\t\treturn\n\t}\n\tv.cx = x\n}\n\nfunc (v *View) SetCursorY(y int) {\n\t_, maxY := v.Size()\n\tif y < 0 || y >= maxY {\n\t\treturn\n\t}\n\tv.cy = y\n}\n\n// Cursor returns the cursor position of the view.\nfunc (v *View) Cursor() (x, y int) {\n\treturn v.cx, v.cy\n}\n\nfunc (v *View) CursorX() int {\n\treturn v.cx\n}\n\nfunc (v *View) CursorY() int {\n\treturn v.cy\n}\n\n// SetOrigin sets the origin position of the view's internal buffer,\n// so the buffer starts to be printed from this point, which means that\n// it is linked with the origin point of view. It can be used to\n// implement Horizontal and Vertical scrolling with just incrementing\n// or decrementing ox and oy.\nfunc (v *View) SetOrigin(x, y int) error {\n\tif x < 0 || y < 0 {\n\t\treturn ErrInvalidPoint\n\t}\n\tv.ox = x\n\tv.oy = y\n\treturn nil\n}\n\nfunc (v *View) SetOriginX(x int) error {\n\tif x < 0 {\n\t\treturn ErrInvalidPoint\n\t}\n\tv.ox = x\n\treturn nil\n}\n\nfunc (v *View) SetOriginY(y int) error {\n\tif y < 0 {\n\t\treturn ErrInvalidPoint\n\t}\n\tv.oy = y\n\treturn nil\n}\n\n// Origin returns the origin position of the view.\nfunc (v *View) Origin() (x, y int) {\n\treturn v.OriginX(), v.OriginY()\n}\n\nfunc (v *View) OriginX() int {\n\treturn v.ox\n}\n\nfunc (v *View) OriginY() int {\n\treturn v.oy\n}\n\n// SetWritePos sets the write position of the view's internal buffer.\n// So the next Write call would write directly to the specified position.\nfunc (v *View) SetWritePos(x, y int) error {\n\tif x < 0 || y < 0 {\n\t\treturn ErrInvalidPoint\n\t}\n\tv.wx = x\n\tv.wy = y\n\treturn nil\n}\n\n// WritePos returns the current write position of the view's internal buffer.\nfunc (v *View) WritePos() (x, y int) {\n\treturn v.wx, v.wy\n}\n\n// SetReadPos sets the read position of the view's internal buffer.\n// So the next Read call would read from the specified position.\nfunc (v *View) SetReadPos(x, y int) error {\n\tif x < 0 || y < 0 {\n\t\treturn ErrInvalidPoint\n\t}\n\tv.readBuffer = nil\n\tv.rx = x\n\tv.ry = y\n\treturn nil\n}\n\n// ReadPos returns the current read position of the view's internal buffer.\nfunc (v *View) ReadPos() (x, y int) {\n\treturn v.rx, v.ry\n}\n\n// makeWriteable creates empty cells if required to make position (x, y) writeable.\nfunc (v *View) makeWriteable(x, y int) {\n\t// TODO: make this more efficient\n\n\t// line `y` must be index-able (that's why `<=`)\n\tfor len(v.lines) <= y {\n\t\tif cap(v.lines) > len(v.lines) {\n\t\t\tnewLen := cap(v.lines)\n\t\t\tif newLen > y {\n\t\t\t\tnewLen = y + 1\n\t\t\t}\n\t\t\tv.lines = v.lines[:newLen]\n\t\t} else {\n\t\t\tv.lines = append(v.lines, nil)\n\t\t}\n\t}\n\t// cell `x` must not be index-able (that's why `<`)\n\t// append should be used by `lines[y]` user if he wants to write beyond `x`\n\tfor len(v.lines[y]) < x {\n\t\tif cap(v.lines[y]) > len(v.lines[y]) {\n\t\t\tnewLen := cap(v.lines[y])\n\t\t\tif newLen > x {\n\t\t\t\tnewLen = x\n\t\t\t}\n\t\t\tv.lines[y] = v.lines[y][:newLen]\n\t\t} else {\n\t\t\tv.lines[y] = append(v.lines[y], cell{})\n\t\t}\n\t}\n}\n\n// writeCells copies []cell to specified location (x, y)\n// !!! caller MUST ensure that specified location (x, y) is writeable by calling makeWriteable\nfunc (v *View) writeCells(x, y int, cells []cell) {\n\tvar newLen int\n\t// use maximum len available\n\tline := v.lines[y][:cap(v.lines[y])]\n\tmaxCopy := len(line) - x\n\tif maxCopy < len(cells) {\n\t\tcopy(line[x:], cells[:maxCopy])\n\t\tline = append(line, cells[maxCopy:]...)\n\t\tnewLen = len(line)\n\t} else { // maxCopy >= len(cells)\n\t\tcopy(line[x:], cells)\n\t\tnewLen = x + len(cells)\n\t\tif newLen < len(v.lines[y]) {\n\t\t\tnewLen = len(v.lines[y])\n\t\t}\n\t}\n\tv.lines[y] = line[:newLen]\n}\n\n// readCell gets cell at specified location (x, y)\nfunc (v *View) readCell(x, y int) (cell, bool) {\n\tif y < 0 || y >= len(v.lines) || x < 0 || x >= len(v.lines[y]) {\n\t\treturn cell{}, false\n\t}\n\treturn v.lines[y][x], true\n}\n\n// Write appends a byte slice into the view's internal buffer. Because\n// View implements the io.Writer interface, it can be passed as parameter\n// of functions like fmt.Fprintf, fmt.Fprintln, io.Copy, etc. Clear must\n// be called to clear the view's buffer.\nfunc (v *View) Write(p []byte) (n int, err error) {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tv.writeRunes(bytes.Runes(p))\n\n\treturn len(p), nil\n}\n\nfunc (v *View) WriteRunes(p []rune) {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tv.writeRunes(p)\n}\n\n// writeRunes copies slice of runes into internal lines buffer.\nfunc (v *View) writeRunes(p []rune) {\n\tv.tainted = true\n\n\t// Fill with empty cells, if writing outside current view buffer\n\tv.makeWriteable(v.wx, v.wy)\n\n\tfor _, r := range p {\n\t\tswitch r {\n\t\tcase '\\n':\n\t\t\tif c, ok := v.readCell(v.wx+1, v.wy); !ok || c.chr == 0 {\n\t\t\t\tv.writeCells(v.wx, v.wy, []cell{{\n\t\t\t\t\tchr:     0,\n\t\t\t\t\tfgColor: 0,\n\t\t\t\t\tbgColor: 0,\n\t\t\t\t}})\n\t\t\t}\n\t\t\tv.wx = 0\n\t\t\tv.wy++\n\t\t\tif v.wy >= len(v.lines) {\n\t\t\t\tv.lines = append(v.lines, nil)\n\t\t\t}\n\t\tcase '\\r':\n\t\t\tif c, ok := v.readCell(v.wx, v.wy); !ok || c.chr == 0 {\n\t\t\t\tv.writeCells(v.wx, v.wy, []cell{{\n\t\t\t\t\tchr:     0,\n\t\t\t\t\tfgColor: 0,\n\t\t\t\t\tbgColor: 0,\n\t\t\t\t}})\n\t\t\t}\n\t\t\tv.wx = 0\n\t\tdefault:\n\t\t\tmoveCursor, cells := v.parseInput(r, v.wx, v.wy)\n\t\t\tif cells == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tv.writeCells(v.wx, v.wy, cells)\n\t\t\tif moveCursor {\n\t\t\t\tv.wx += len(cells)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// exported functions use the mutex. Non-exported functions are for internal use\n// and a calling function should use a mutex\nfunc (v *View) WriteString(s string) {\n\tv.WriteRunes([]rune(s))\n}\n\nfunc (v *View) writeString(s string) {\n\tv.writeRunes([]rune(s))\n}\n\n// parseInput parses char by char the input written to the View. It returns nil\n// while processing ESC sequences. Otherwise, it returns a cell slice that\n// contains the processed data.\nfunc (v *View) parseInput(ch rune, x int, _ int) (bool, []cell) {\n\tcells := []cell{}\n\tmoveCursor := true\n\n\tisEscape, err := v.ei.parseOne(ch)\n\tif err != nil {\n\t\tfor _, r := range v.ei.runes() {\n\t\t\tc := cell{\n\t\t\t\tfgColor: v.FgColor,\n\t\t\t\tbgColor: v.BgColor,\n\t\t\t\tchr:     r,\n\t\t\t}\n\t\t\tcells = append(cells, c)\n\t\t}\n\t\tv.ei.reset()\n\t} else {\n\t\trepeatCount := 1\n\t\tif _, ok := v.ei.instruction.(eraseInLineFromCursor); ok {\n\t\t\t// fill rest of line\n\t\t\tv.ei.instructionRead()\n\t\t\tcx := 0\n\t\t\tfor _, cell := range v.lines[v.wy] {\n\t\t\t\tcx += runewidth.RuneWidth(cell.chr)\n\t\t\t}\n\t\t\trepeatCount = v.InnerWidth() - cx\n\t\t\tch = ' '\n\t\t\tmoveCursor = false\n\t\t} else if isEscape {\n\t\t\t// do not output anything\n\t\t\treturn moveCursor, nil\n\t\t} else if ch == '\\t' {\n\t\t\t// fill tab-sized space\n\t\t\tconst tabStop = 4\n\t\t\tch = ' '\n\t\t\trepeatCount = tabStop - (x % tabStop)\n\t\t}\n\t\tc := cell{\n\t\t\tfgColor: v.ei.curFgColor,\n\t\t\tbgColor: v.ei.curBgColor,\n\t\t\tchr:     ch,\n\t\t}\n\t\tfor i := 0; i < repeatCount; i++ {\n\t\t\tcells = append(cells, c)\n\t\t}\n\t}\n\n\treturn moveCursor, cells\n}\n\n// Read reads data into p from the current reading position set by SetReadPos.\n// It returns the number of bytes read into p.\n// At EOF, err will be io.EOF.\nfunc (v *View) Read(p []byte) (n int, err error) {\n\tbuffer := make([]byte, utf8.UTFMax)\n\toffset := 0\n\tif v.readBuffer != nil {\n\t\tcopy(p, v.readBuffer)\n\t\tif len(v.readBuffer) >= len(p) {\n\t\t\tif len(v.readBuffer) > len(p) {\n\t\t\t\tv.readBuffer = v.readBuffer[len(p):]\n\t\t\t}\n\t\t\treturn len(p), nil\n\t\t}\n\t\tv.readBuffer = nil\n\t}\n\tfor v.ry < len(v.lines) {\n\t\tfor v.rx < len(v.lines[v.ry]) {\n\t\t\tcount := utf8.EncodeRune(buffer, v.lines[v.ry][v.rx].chr)\n\t\t\tcopy(p[offset:], buffer[:count])\n\t\t\tv.rx++\n\t\t\tnewOffset := offset + count\n\t\t\tif newOffset >= len(p) {\n\t\t\t\tif newOffset > len(p) {\n\t\t\t\t\tv.readBuffer = buffer[newOffset-len(p):]\n\t\t\t\t}\n\t\t\t\treturn len(p), nil\n\t\t\t}\n\t\t\toffset += count\n\t\t}\n\t\tv.rx = 0\n\t\tv.ry++\n\t}\n\treturn offset, io.EOF\n}\n\n// only use this if the calling function has a lock on writeMutex\nfunc (v *View) clear() {\n\tv.rewind()\n\tv.lines = nil\n\tv.clearViewLines()\n}\n\n// Clear empties the view's internal buffer.\n// And resets reading and writing offsets.\nfunc (v *View) Clear() {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tv.clear()\n}\n\nfunc (v *View) SetContent(str string) {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tv.clear()\n\tv.writeString(str)\n}\n\nfunc (v *View) CopyContent(from *View) {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tv.clear()\n\n\tv.lines = from.lines\n\tv.viewLines = from.viewLines\n\tv.ox = from.ox\n\tv.oy = from.oy\n\tv.cx = from.cx\n\tv.cy = from.cy\n}\n\n// Rewind sets read and write pos to (0, 0).\nfunc (v *View) Rewind() {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tv.rewind()\n}\n\n// similar to Rewind but clears lines. Also similar to Clear but doesn't reset\n// viewLines\nfunc (v *View) Reset() {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tv.rewind()\n\tv.lines = nil\n}\n\n// This is for when we've done a restart for the sake of avoiding a flicker and\n// we've reached the end of the new content to display: we need to clear the remaining\n// content from the previous round. We do this by setting v.viewLines to nil so that\n// we just render the new content from v.lines directly\nfunc (v *View) FlushStaleCells() {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tv.clearViewLines()\n}\n\nfunc (v *View) rewind() {\n\tv.ei.reset()\n\n\tif err := v.SetReadPos(0, 0); err != nil {\n\t\t// SetReadPos returns error only if x and y are negative\n\t\t// we are passing 0, 0, thus no error should occur.\n\t\tpanic(err)\n\t}\n\tif err := v.SetWritePos(0, 0); err != nil {\n\t\t// SetWritePos returns error only if x and y are negative\n\t\t// we are passing 0, 0, thus no error should occur.\n\t\tpanic(err)\n\t}\n}\n\nfunc containsUpcaseChar(str string) bool {\n\tfor _, ch := range str {\n\t\tif unicode.IsUpper(ch) {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (v *View) updateSearchPositions() {\n\tif v.searcher.searchString != \"\" {\n\t\tvar normalizeRune func(r rune) rune\n\t\tvar normalizedSearchStr string\n\t\t// if we have any uppercase characters we'll do a case-sensitive search\n\t\tif containsUpcaseChar(v.searcher.searchString) {\n\t\t\tnormalizeRune = func(r rune) rune { return r }\n\t\t\tnormalizedSearchStr = v.searcher.searchString\n\t\t} else {\n\t\t\tnormalizeRune = unicode.ToLower\n\t\t\tnormalizedSearchStr = strings.ToLower(v.searcher.searchString)\n\t\t}\n\n\t\tv.searcher.searchPositions = []cellPos{}\n\t\tfor y, line := range v.lines {\n\t\t\tx := 0\n\t\t\tfor startIdx, c := range line {\n\t\t\t\tfound := true\n\t\t\t\toffset := 0\n\t\t\t\tfor _, c := range normalizedSearchStr {\n\t\t\t\t\tif len(line)-1 < startIdx+offset {\n\t\t\t\t\t\tfound = false\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif normalizeRune(line[startIdx+offset].chr) != c {\n\t\t\t\t\t\tfound = false\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\toffset += 1\n\t\t\t\t}\n\t\t\t\tif found {\n\t\t\t\t\tv.searcher.searchPositions = append(v.searcher.searchPositions, cellPos{x: x, y: y})\n\t\t\t\t}\n\t\t\t\tx += runewidth.RuneWidth(c.chr)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// IsTainted tells us if the view is tainted\nfunc (v *View) IsTainted() bool {\n\treturn v.tainted\n}\n\n// draw re-draws the view's contents.\nfunc (v *View) draw() error {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tif !v.Visible {\n\t\treturn nil\n\t}\n\n\tv.clearRunes()\n\n\tv.updateSearchPositions()\n\tmaxX, maxY := v.Size()\n\n\tif v.Wrap {\n\t\tif maxX == 0 {\n\t\t\treturn nil\n\t\t}\n\t\tv.ox = 0\n\t}\n\tif v.tainted {\n\t\tlineIdx := 0\n\t\tlines := v.lines\n\t\tif v.HasLoader {\n\t\t\tlines = v.loaderLines()\n\t\t}\n\t\tfor i, line := range lines {\n\t\t\twrap := 0\n\t\t\tif v.Wrap {\n\t\t\t\twrap = maxX\n\t\t\t}\n\n\t\t\tls := lineWrap(line, wrap)\n\t\t\tfor j := range ls {\n\t\t\t\tvline := viewLine{linesX: j, linesY: i, line: ls[j]}\n\n\t\t\t\tif lineIdx > len(v.viewLines)-1 {\n\t\t\t\t\tv.viewLines = append(v.viewLines, vline)\n\t\t\t\t} else {\n\t\t\t\t\tv.viewLines[lineIdx] = vline\n\t\t\t\t}\n\t\t\t\tlineIdx++\n\t\t\t}\n\t\t}\n\t\tif !v.HasLoader {\n\t\t\tv.tainted = false\n\t\t}\n\t}\n\n\tvisibleViewLinesHeight := v.viewLineLengthIgnoringTrailingBlankLines()\n\tif v.Autoscroll && visibleViewLinesHeight > maxY {\n\t\tv.oy = visibleViewLinesHeight - maxY\n\t}\n\n\tif len(v.viewLines) == 0 {\n\t\treturn nil\n\t}\n\n\tstart := v.oy\n\tif start > len(v.viewLines)-1 {\n\t\tstart = len(v.viewLines) - 1\n\t}\n\n\temptyCell := cell{chr: ' ', fgColor: ColorDefault, bgColor: ColorDefault}\n\tvar prevFgColor Attribute\n\n\tfor y, vline := range v.viewLines[start:] {\n\t\tif y >= maxY {\n\t\t\tbreak\n\t\t}\n\n\t\t// x tracks the current x position in the view, and cellIdx tracks the\n\t\t// index of the cell. If we print a double-sized rune, we increment cellIdx\n\t\t// by one but x by two.\n\t\tx := -v.ox\n\t\tcellIdx := 0\n\n\t\tvar c cell\n\t\tfor {\n\t\t\tif x >= maxX {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tif x < 0 {\n\t\t\t\tif cellIdx < len(vline.line) {\n\t\t\t\t\tx += runewidth.RuneWidth(vline.line[cellIdx].chr)\n\t\t\t\t\tcellIdx++\n\t\t\t\t\tcontinue\n\t\t\t\t} else {\n\t\t\t\t\t// no more characters to write so we're only going to be printing empty cells\n\t\t\t\t\t// past this point\n\t\t\t\t\tx = 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// if we're out of cells to write, we'll just print empty cells.\n\t\t\tif cellIdx > len(vline.line)-1 {\n\t\t\t\tc = emptyCell\n\t\t\t\tc.fgColor = prevFgColor\n\t\t\t} else {\n\t\t\t\tc = vline.line[cellIdx]\n\t\t\t\t// capturing previous foreground colour so that if we're using the reverse\n\t\t\t\t// attribute we honour the final character's colour and don't awkwardly switch\n\t\t\t\t// to a new background colour for the remainder of the line\n\t\t\t\tprevFgColor = c.fgColor\n\t\t\t}\n\n\t\t\tfgColor := c.fgColor\n\t\t\tif fgColor == ColorDefault {\n\t\t\t\tfgColor = v.FgColor\n\t\t\t}\n\t\t\tbgColor := c.bgColor\n\t\t\tif bgColor == ColorDefault {\n\t\t\t\tbgColor = v.BgColor\n\t\t\t}\n\t\t\tif matched, selected := v.isPatternMatchedRune(x, y); matched {\n\t\t\t\tif selected {\n\t\t\t\t\tbgColor = ColorCyan\n\t\t\t\t} else {\n\t\t\t\t\tbgColor = ColorYellow\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif err := v.setRune(x, y, c.chr, fgColor, bgColor); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Not sure why the previous code was here but it caused problems\n\t\t\t// when typing wide characters in an editor\n\t\t\tx += runewidth.RuneWidth(c.chr)\n\t\t\tcellIdx++\n\t\t}\n\t}\n\treturn nil\n}\n\n// if autoscroll is enabled but we only have a single row of cells shown to the\n// user, we don't want to scroll to the final line if it contains no text. So\n// this tells us the view lines height when we ignore any trailing blank lines\nfunc (v *View) viewLineLengthIgnoringTrailingBlankLines() int {\n\tfor i := len(v.viewLines) - 1; i >= 0; i-- {\n\t\tif len(v.viewLines[i].line) > 0 {\n\t\t\treturn i + 1\n\t\t}\n\t}\n\treturn 0\n}\n\nfunc (v *View) isPatternMatchedRune(x, y int) (bool, bool) {\n\tsearchStringWidth := runewidth.StringWidth(v.searcher.searchString)\n\tfor i, pos := range v.searcher.searchPositions {\n\t\tadjustedY := y + v.oy\n\t\tadjustedX := x + v.ox\n\t\tif adjustedY == pos.y && adjustedX >= pos.x && adjustedX < pos.x+searchStringWidth {\n\t\t\treturn true, i == v.searcher.currentSearchIndex\n\t\t}\n\t}\n\treturn false, false\n}\n\n// realPosition returns the position in the internal buffer corresponding to the\n// point (x, y) of the view.\nfunc (v *View) realPosition(vx, vy int) (x, y int, err error) {\n\tvx = v.ox + vx\n\tvy = v.oy + vy\n\n\tif vx < 0 || vy < 0 {\n\t\treturn 0, 0, ErrInvalidPoint\n\t}\n\n\tif len(v.viewLines) == 0 {\n\t\treturn vx, vy, nil\n\t}\n\n\tif vy < len(v.viewLines) {\n\t\tvline := v.viewLines[vy]\n\t\tx = vline.linesX + vx\n\t\ty = vline.linesY\n\t} else {\n\t\tvline := v.viewLines[len(v.viewLines)-1]\n\t\tx = vx\n\t\ty = vline.linesY + vy - len(v.viewLines) + 1\n\t}\n\n\treturn x, y, nil\n}\n\n// clearRunes erases all the cells in the view.\nfunc (v *View) clearRunes() {\n\tmaxX, maxY := v.Size()\n\tfor x := 0; x < maxX; x++ {\n\t\tfor y := 0; y < maxY; y++ {\n\t\t\ttcellSetCell(v.x0+x+1, v.y0+y+1, ' ', v.FgColor, v.BgColor, v.outMode)\n\t\t}\n\t}\n}\n\n// BufferLines returns the lines in the view's internal\n// buffer.\nfunc (v *View) BufferLines() []string {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tlines := make([]string, len(v.lines))\n\tfor i, l := range v.lines {\n\t\tstr := lineType(l).String()\n\t\tstr = strings.Replace(str, \"\\x00\", \"\", -1)\n\t\tlines[i] = str\n\t}\n\treturn lines\n}\n\n// Buffer returns a string with the contents of the view's internal\n// buffer.\nfunc (v *View) Buffer() string {\n\treturn linesToString(v.lines)\n}\n\n// ViewBufferLines returns the lines in the view's internal\n// buffer that is shown to the user.\nfunc (v *View) ViewBufferLines() []string {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tlines := make([]string, len(v.viewLines))\n\tfor i, l := range v.viewLines {\n\t\tstr := lineType(l.line).String()\n\t\tstr = strings.Replace(str, \"\\x00\", \"\", -1)\n\t\tlines[i] = str\n\t}\n\treturn lines\n}\n\n// LinesHeight is the count of view lines (i.e. lines excluding wrapping)\nfunc (v *View) LinesHeight() int {\n\treturn len(v.lines)\n}\n\n// ViewLinesHeight is the count of view lines (i.e. lines including wrapping)\nfunc (v *View) ViewLinesHeight() int {\n\treturn len(v.viewLines)\n}\n\n// ViewBuffer returns a string with the contents of the view's buffer that is\n// shown to the user.\nfunc (v *View) ViewBuffer() string {\n\tlines := make([][]cell, len(v.viewLines))\n\tfor i := range v.viewLines {\n\t\tlines[i] = v.viewLines[i].line\n\t}\n\n\treturn linesToString(lines)\n}\n\n// Line returns a string with the line of the view's internal buffer\n// at the position corresponding to the point (x, y).\nfunc (v *View) Line(y int) (string, error) {\n\t_, y, err := v.realPosition(0, y)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tif y < 0 || y >= len(v.lines) {\n\t\treturn \"\", ErrInvalidPoint\n\t}\n\n\treturn lineType(v.lines[y]).String(), nil\n}\n\n// Word returns a string with the word of the view's internal buffer\n// at the position corresponding to the point (x, y).\nfunc (v *View) Word(x, y int) (string, error) {\n\tx, y, err := v.realPosition(x, y)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\tif x < 0 || y < 0 || y >= len(v.lines) || x >= len(v.lines[y]) {\n\t\treturn \"\", ErrInvalidPoint\n\t}\n\n\tstr := lineType(v.lines[y]).String()\n\n\tnl := strings.LastIndexFunc(str[:x], indexFunc)\n\tif nl == -1 {\n\t\tnl = 0\n\t} else {\n\t\tnl = nl + 1\n\t}\n\tnr := strings.IndexFunc(str[x:], indexFunc)\n\tif nr == -1 {\n\t\tnr = len(str)\n\t} else {\n\t\tnr = nr + x\n\t}\n\treturn str[nl:nr], nil\n}\n\n// indexFunc allows to split lines by words taking into account spaces\n// and 0.\nfunc indexFunc(r rune) bool {\n\treturn r == ' ' || r == 0\n}\n\n// SetHighlight toggles highlighting of separate lines, for custom lists\n// or multiple selection in views.\nfunc (v *View) SetHighlight(y int, on bool) error {\n\tif y < 0 || y >= len(v.lines) {\n\t\terr := ErrInvalidPoint\n\t\treturn err\n\t}\n\n\tline := v.lines[y]\n\tcells := make([]cell, 0)\n\tfor _, c := range line {\n\t\tif on {\n\t\t\tc.bgColor = v.SelBgColor\n\t\t\tc.fgColor = v.SelFgColor\n\t\t} else {\n\t\t\tc.bgColor = v.BgColor\n\t\t\tc.fgColor = v.FgColor\n\t\t}\n\t\tcells = append(cells, c)\n\t}\n\tv.tainted = true\n\tv.lines[y] = cells\n\treturn nil\n}\n\nfunc lineWrap(line []cell, columns int) [][]cell {\n\tif columns == 0 {\n\t\treturn [][]cell{line}\n\t}\n\n\tvar n int\n\tvar offset int\n\tlastWhitespaceIndex := -1\n\tlines := make([][]cell, 0, 1)\n\tfor i := range line {\n\t\tcurrChr := line[i].chr\n\t\trw := runewidth.RuneWidth(currChr)\n\t\tn += rw\n\t\t// if currChr == 'g' {\n\t\t// \tpanic(n)\n\t\t// }\n\t\tif n > columns {\n\t\t\t// This code is convoluted but we've got comprehensive tests so feel free to do whatever you want\n\t\t\t// to the code to simplify it so long as our tests still pass.\n\t\t\tif currChr == ' ' {\n\t\t\t\t// if the line ends in a space, we'll omit it. This means there'll be no\n\t\t\t\t// way to distinguish between a clean break and a mid-word break, but\n\t\t\t\t// I think it's worth it.\n\t\t\t\tlines = append(lines, line[offset:i])\n\t\t\t\toffset = i + 1\n\t\t\t\tn = 0\n\t\t\t} else if currChr == '-' {\n\t\t\t\t// if the last character is hyphen and the width of line is equal to the columns\n\t\t\t\tlines = append(lines, line[offset:i])\n\t\t\t\toffset = i\n\t\t\t\tn = rw\n\t\t\t} else if lastWhitespaceIndex != -1 && lastWhitespaceIndex+1 != i {\n\t\t\t\t// if there is a space in the line and the line is not breaking at a space/hyphen\n\t\t\t\tif line[lastWhitespaceIndex].chr == '-' {\n\t\t\t\t\t// if break occurs at hyphen, we'll retain the hyphen\n\t\t\t\t\tlines = append(lines, line[offset:lastWhitespaceIndex+1])\n\t\t\t\t\toffset = lastWhitespaceIndex + 1\n\t\t\t\t\tn = i - offset\n\t\t\t\t} else {\n\t\t\t\t\t// if break occurs at space, we'll omit the space\n\t\t\t\t\tlines = append(lines, line[offset:lastWhitespaceIndex])\n\t\t\t\t\toffset = lastWhitespaceIndex + 1\n\t\t\t\t\tn = i - offset + 1\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// in this case we're breaking mid-word\n\t\t\t\tlines = append(lines, line[offset:i])\n\t\t\t\toffset = i\n\t\t\t\tn = rw\n\t\t\t}\n\t\t\tlastWhitespaceIndex = -1\n\t\t} else if line[i].chr == ' ' || line[i].chr == '-' {\n\t\t\tlastWhitespaceIndex = i\n\t\t}\n\t}\n\n\tlines = append(lines, line[offset:])\n\treturn lines\n}\n\nfunc linesToString(lines [][]cell) string {\n\tstr := make([]string, len(lines))\n\tfor i := range lines {\n\t\trns := make([]rune, 0, len(lines[i]))\n\t\tline := lineType(lines[i]).String()\n\t\tfor _, c := range line {\n\t\t\tif c != '\\x00' {\n\t\t\t\trns = append(rns, c)\n\t\t\t}\n\t\t}\n\t\tstr[i] = string(rns)\n\t}\n\n\treturn strings.Join(str, \"\\n\")\n}\n\n// GetClickedTabIndex tells us which tab was clicked\nfunc (v *View) GetClickedTabIndex(x int) int {\n\tif len(v.Tabs) <= 1 {\n\t\treturn 0\n\t}\n\n\tcharX := len(v.TitlePrefix) + 1\n\tif v.TitlePrefix != \"\" {\n\t\tcharX += 1\n\t}\n\tif x <= charX {\n\t\treturn -1\n\t}\n\tfor i, tab := range v.Tabs {\n\t\tcharX += runewidth.StringWidth(tab)\n\t\tif x <= charX {\n\t\t\treturn i\n\t\t}\n\t\tcharX += runewidth.StringWidth(\" - \")\n\t\tif x <= charX {\n\t\t\treturn -1\n\t\t}\n\t}\n\n\treturn -1\n}\n\nfunc (v *View) SelectedLineIdx() int {\n\t_, seletedLineIdx := v.SelectedPoint()\n\treturn seletedLineIdx\n}\n\n// expected to only be used in tests\nfunc (v *View) SelectedLine() string {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tif len(v.lines) == 0 {\n\t\treturn \"\"\n\t}\n\n\treturn v.lineContentAtIdx(v.SelectedLineIdx())\n}\n\n// expected to only be used in tests\nfunc (v *View) SelectedLines() []string {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tif len(v.lines) == 0 {\n\t\treturn nil\n\t}\n\n\tstartIdx, endIdx := v.SelectedLineRange()\n\n\tlines := make([]string, 0, endIdx-startIdx+1)\n\tfor i := startIdx; i <= endIdx; i++ {\n\t\tlines = append(lines, v.lineContentAtIdx(i))\n\t}\n\n\treturn lines\n}\n\nfunc (v *View) lineContentAtIdx(idx int) string {\n\tline := v.lines[idx]\n\tstr := lineType(line).String()\n\treturn strings.Replace(str, \"\\x00\", \"\", -1)\n}\n\nfunc (v *View) SelectedPoint() (int, int) {\n\tcx, cy := v.Cursor()\n\tox, oy := v.Origin()\n\treturn cx + ox, cy + oy\n}\n\nfunc (v *View) SelectedLineRange() (int, int) {\n\t_, cy := v.Cursor()\n\t_, oy := v.Origin()\n\n\tstart := cy + oy\n\n\tif v.rangeSelectStartY == -1 {\n\t\treturn start, start\n\t}\n\n\tend := v.rangeSelectStartY\n\n\tif start > end {\n\t\treturn end, start\n\t} else {\n\t\treturn start, end\n\t}\n}\n\nfunc (v *View) RenderTextArea() {\n\tv.Clear()\n\tfmt.Fprint(v, v.TextArea.GetContent())\n\tcursorX, cursorY := v.TextArea.GetCursorXY()\n\tprevOriginX, prevOriginY := v.Origin()\n\twidth, height := v.InnerWidth(), v.InnerHeight()\n\n\tnewViewCursorX, newOriginX := updatedCursorAndOrigin(prevOriginX, width, cursorX)\n\tnewViewCursorY, newOriginY := updatedCursorAndOrigin(prevOriginY, height, cursorY)\n\n\t_ = v.SetCursor(newViewCursorX, newViewCursorY)\n\t_ = v.SetOrigin(newOriginX, newOriginY)\n}\n\nfunc updatedCursorAndOrigin(prevOrigin int, size int, cursor int) (int, int) {\n\tvar newViewCursor int\n\tnewOrigin := prevOrigin\n\n\tif cursor > prevOrigin+size {\n\t\tnewOrigin = cursor - size\n\t\tnewViewCursor = size\n\t} else if cursor < prevOrigin {\n\t\tnewOrigin = cursor\n\t\tnewViewCursor = 0\n\t} else {\n\t\tnewViewCursor = cursor - prevOrigin\n\t}\n\n\treturn newViewCursor, newOrigin\n}\n\nfunc (v *View) ClearTextArea() {\n\tv.Clear()\n\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\tv.TextArea.Clear()\n\t_ = v.SetOrigin(0, 0)\n\t_ = v.SetCursor(0, 0)\n}\n\n// only call this function if you don't care where v.wx and v.wy end up\nfunc (v *View) OverwriteLines(y int, content string) {\n\tv.writeMutex.Lock()\n\tdefer v.writeMutex.Unlock()\n\n\t// break by newline, then for each line, write it, then add that erase command\n\tv.wx = 0\n\tv.wy = y\n\n\tlines := strings.Replace(content, \"\\n\", \"\\x1b[K\\n\", -1)\n\tv.writeString(lines)\n}\n\nfunc (v *View) ScrollUp(amount int) {\n\tif amount > v.oy {\n\t\tamount = v.oy\n\t}\n\n\tv.oy -= amount\n\tv.cy += amount\n}\n\n// ensures we don't scroll past the end of the view's content\nfunc (v *View) ScrollDown(amount int) {\n\tadjustedAmount := v.adjustDownwardScrollAmount(amount)\n\tif adjustedAmount > 0 {\n\t\tv.oy += adjustedAmount\n\t\tv.cy -= adjustedAmount\n\t}\n}\n\nfunc (v *View) ScrollLeft(amount int) {\n\tnewOx := v.ox - amount\n\tif newOx < 0 {\n\t\tnewOx = 0\n\t}\n\tv.ox = newOx\n}\n\n// not applying any limits to this\nfunc (v *View) ScrollRight(amount int) {\n\tv.ox += amount\n}\n\nfunc (v *View) adjustDownwardScrollAmount(scrollHeight int) int {\n\t_, oy := v.Origin()\n\ty := oy\n\tif !v.CanScrollPastBottom {\n\t\t_, sy := v.Size()\n\t\ty += sy\n\t}\n\tscrollableLines := v.ViewLinesHeight() - y\n\tif scrollableLines < 0 {\n\t\treturn 0\n\t}\n\n\tmargin := v.scrollMargin()\n\tif scrollableLines-margin < scrollHeight {\n\t\tscrollHeight = scrollableLines - margin\n\t}\n\tif oy+scrollHeight < 0 {\n\t\treturn 0\n\t} else {\n\t\treturn scrollHeight\n\t}\n}\n\n// scrollMargin is about how many lines must still appear if you scroll\n// all the way down. We'll subtract this from the total amount of scrollable lines\nfunc (v *View) scrollMargin() int {\n\tif v.CanScrollPastBottom {\n\t\t// Setting to 2 because of the newline at the end of the file that we're likely showing.\n\t\t// If we want to scroll past bottom outside the context of reading a file's contents,\n\t\t// we should make this into a field on the view to be configured by the client.\n\t\t// For now we're hardcoding it.\n\t\treturn 2\n\t} else {\n\t\treturn 0\n\t}\n}\n\n// Returns true if the view contains a line containing the given text with the given\n// foreground color\nfunc (v *View) ContainsColoredText(fgColor string, text string) bool {\n\tfor _, line := range v.lines {\n\t\tif containsColoredTextInLine(fgColor, text, line) {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc containsColoredTextInLine(fgColorStr string, text string, line []cell) bool {\n\tfgColor := tcell.GetColor(fgColorStr)\n\n\tcurrentMatch := \"\"\n\tfor i := 0; i < len(line); i++ {\n\t\tcell := line[i]\n\n\t\t// stripping attributes by converting to and from hex\n\t\tcellColor := tcell.NewHexColor(cell.fgColor.Hex())\n\n\t\tif cellColor == fgColor {\n\t\t\tcurrentMatch += string(cell.chr)\n\t\t} else if currentMatch != \"\" {\n\t\t\tif strings.Contains(currentMatch, text) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tcurrentMatch = \"\"\n\t\t}\n\t}\n\n\treturn strings.Contains(currentMatch, text)\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/kill/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2022 Jesse Duffield\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/kill/README.md",
    "content": "# Kill\n\nGo package for killing processes across different platforms. Handles killing children of processes as well as the process itself.\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/kill/kill_default_platform.go",
    "content": "//go:build !windows\n// +build !windows\n\npackage kill\n\nimport (\n\t\"os/exec\"\n\t\"syscall\"\n)\n\n// Kill kills a process. If the process has Setpgid == true, then we have anticipated that it might spawn its own child processes, so we've given it a process group ID (PGID) equal to its process id (PID) and given its child processes will inherit the PGID, we can kill that group, rather than killing the process itself.\nfunc Kill(cmd *exec.Cmd) error {\n\tif cmd.Process == nil {\n\t\t// You can't kill a person with no body\n\t\treturn nil\n\t}\n\n\tif cmd.SysProcAttr != nil && cmd.SysProcAttr.Setpgid {\n\t\t// minus sign means we're talking about a PGID as opposed to a PID\n\t\treturn syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)\n\t}\n\n\treturn cmd.Process.Kill()\n}\n\n// PrepareForChildren ensures that child processes of this parent process will share the same group id\n// as the parent, meaning when the call Kill on the parent process, we'll kill\n// the whole group, parent and children both. Gruesome when you think about it.\nfunc PrepareForChildren(cmd *exec.Cmd) {\n\tcmd.SysProcAttr = &syscall.SysProcAttr{\n\t\tSetpgid: true,\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/kill/kill_windows.go",
    "content": "// adapted from https://blog.csdn.net/fyxichen/article/details/51857864\n\npackage kill\n\nimport (\n\t\"os\"\n\t\"os/exec\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// Kill kills a process, along with any child processes it may have spawned.\nfunc Kill(cmd *exec.Cmd) error {\n\tif cmd.Process == nil {\n\t\t// You can't kill a person with no body\n\t\treturn nil\n\t}\n\n\tpids := Getppids(uint32(cmd.Process.Pid))\n\tfor _, pid := range pids {\n\t\tpro, err := os.FindProcess(int(pid))\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tpro.Kill()\n\t}\n\n\treturn nil\n}\n\n// PrepareForChildren ensures that child processes of this parent process will share the same group id\n// as the parent, meaning when the call Kill on the parent process, we'll kill\n// the whole group, parent and children both. Gruesome when you think about it.\nfunc PrepareForChildren(cmd *exec.Cmd) {\n\t// do nothing because on windows our Kill function handles children by default.\n}\n\nconst (\n\tMAX_PATH           = 260\n\tTH32CS_SNAPPROCESS = 0x00000002\n)\n\ntype ProcessInfo struct {\n\tName string\n\tPid  uint32\n\tPPid uint32\n}\n\ntype PROCESSENTRY32 struct {\n\tDwSize              uint32\n\tCntUsage            uint32\n\tTh32ProcessID       uint32\n\tTh32DefaultHeapID   uintptr\n\tTh32ModuleID        uint32\n\tCntThreads          uint32\n\tTh32ParentProcessID uint32\n\tPcPriClassBase      int32\n\tDwFlags             uint32\n\tSzExeFile           [MAX_PATH]uint16\n}\n\ntype HANDLE uintptr\n\nvar (\n\tmodkernel32                  = syscall.NewLazyDLL(\"kernel32.dll\")\n\tprocCreateToolhelp32Snapshot = modkernel32.NewProc(\"CreateToolhelp32Snapshot\")\n\tprocProcess32First           = modkernel32.NewProc(\"Process32FirstW\")\n\tprocProcess32Next            = modkernel32.NewProc(\"Process32NextW\")\n\tprocCloseHandle              = modkernel32.NewProc(\"CloseHandle\")\n)\n\nfunc Getppids(pid uint32) []uint32 {\n\tinfos, err := GetProcs()\n\tif err != nil {\n\t\treturn []uint32{pid}\n\t}\n\tvar pids []uint32 = make([]uint32, 0, len(infos))\n\tvar index int = 0\n\tpids = append(pids, pid)\n\n\tvar length int = len(pids)\n\tfor index < length {\n\t\tfor _, info := range infos {\n\t\t\tif info.PPid == pids[index] {\n\t\t\t\tpids = append(pids, info.Pid)\n\t\t\t}\n\t\t}\n\t\tindex += 1\n\t\tlength = len(pids)\n\t}\n\treturn pids\n}\n\nfunc GetProcs() (procs []ProcessInfo, err error) {\n\tsnap := createToolhelp32Snapshot(TH32CS_SNAPPROCESS, uint32(0))\n\tif snap == 0 {\n\t\terr = syscall.GetLastError()\n\t\treturn\n\t}\n\tdefer closeHandle(snap)\n\tvar pe32 PROCESSENTRY32\n\tpe32.DwSize = uint32(unsafe.Sizeof(pe32))\n\tif process32First(snap, &pe32) == false {\n\t\terr = syscall.GetLastError()\n\t\treturn\n\t}\n\tprocs = append(procs, ProcessInfo{syscall.UTF16ToString(pe32.SzExeFile[:260]), pe32.Th32ProcessID, pe32.Th32ParentProcessID})\n\tfor process32Next(snap, &pe32) {\n\t\tprocs = append(procs, ProcessInfo{syscall.UTF16ToString(pe32.SzExeFile[:260]), pe32.Th32ProcessID, pe32.Th32ParentProcessID})\n\t}\n\treturn\n}\n\nfunc createToolhelp32Snapshot(flags, processId uint32) HANDLE {\n\tret, _, _ := procCreateToolhelp32Snapshot.Call(uintptr(flags), uintptr(processId))\n\tif ret <= 0 {\n\t\treturn HANDLE(0)\n\t}\n\treturn HANDLE(ret)\n}\n\nfunc process32First(snapshot HANDLE, pe *PROCESSENTRY32) bool {\n\tret, _, _ := procProcess32First.Call(uintptr(snapshot), uintptr(unsafe.Pointer(pe)))\n\treturn ret != 0\n}\n\nfunc process32Next(snapshot HANDLE, pe *PROCESSENTRY32) bool {\n\tret, _, _ := procProcess32Next.Call(uintptr(snapshot), uintptr(unsafe.Pointer(pe)))\n\treturn ret != 0\n}\n\nfunc closeHandle(object HANDLE) bool {\n\tret, _, _ := procCloseHandle.Call(uintptr(object))\n\treturn ret != 0\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/lazycore/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2022 Jesse Duffield\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/lazycore/pkg/boxlayout/boxlayout.go",
    "content": "package boxlayout\n\nimport (\n\t\"github.com/jesseduffield/lazycore/pkg/utils\"\n\t\"github.com/samber/lo\"\n)\n\ntype Dimensions struct {\n\tX0 int\n\tX1 int\n\tY0 int\n\tY1 int\n}\n\ntype Direction int\n\nconst (\n\tROW Direction = iota\n\tCOLUMN\n)\n\n// to give a high-level explanation of what's going on here. We layout our windows by arranging a bunch of boxes in the available space.\n// If a box has children, it needs to specify how it wants to arrange those children: ROW or COLUMN.\n// If a box represents a window, you can put the window name in the Window field.\n// When determining how to divvy-up the available height (for row children) or width (for column children), we first\n// give the boxes with a static `size` the space that they want. Then we apportion\n// the remaining space based on the weights of the dynamic boxes (you can't define\n// both size and weight at the same time: you gotta pick one). If there are two\n// boxes, one with weight 1 and the other with weight 2, the first one gets 33%\n// of the available space and the second one gets the remaining 66%\n\ntype Box struct {\n\t// Direction decides how the children boxes are laid out. ROW means the children will each form a row i.e. that they will be stacked on top of eachother.\n\tDirection Direction\n\n\t// function which takes the width and height assigned to the box and decides which orientation it will have\n\tConditionalDirection func(width int, height int) Direction\n\n\tChildren []*Box\n\n\t// function which takes the width and height assigned to the box and decides the layout of the children.\n\tConditionalChildren func(width int, height int) []*Box\n\n\t// Window refers to the name of the window this box represents, if there is one\n\tWindow string\n\n\t// static Size. If parent box's direction is ROW this refers to height, otherwise width\n\tSize int\n\n\t// dynamic size. Once all statically sized children have been considered, Weight decides how much of the remaining space will be taken up by the box\n\t// TODO: consider making there be one int and a type enum so we can't have size and Weight simultaneously defined\n\tWeight int\n}\n\nfunc ArrangeWindows(root *Box, x0, y0, width, height int) map[string]Dimensions {\n\tchildren := root.getChildren(width, height)\n\tif len(children) == 0 {\n\t\t// leaf node\n\t\tif root.Window != \"\" {\n\t\t\tdimensionsForWindow := Dimensions{X0: x0, Y0: y0, X1: x0 + width - 1, Y1: y0 + height - 1}\n\t\t\treturn map[string]Dimensions{root.Window: dimensionsForWindow}\n\t\t}\n\t\treturn map[string]Dimensions{}\n\t}\n\n\tdirection := root.getDirection(width, height)\n\n\tvar availableSize int\n\tif direction == COLUMN {\n\t\tavailableSize = width\n\t} else {\n\t\tavailableSize = height\n\t}\n\n\tsizes := calcSizes(children, availableSize)\n\n\tresult := map[string]Dimensions{}\n\toffset := 0\n\tfor i, child := range children {\n\t\tboxSize := sizes[i]\n\n\t\tvar resultForChild map[string]Dimensions\n\t\tif direction == COLUMN {\n\t\t\tresultForChild = ArrangeWindows(child, x0+offset, y0, boxSize, height)\n\t\t} else {\n\t\t\tresultForChild = ArrangeWindows(child, x0, y0+offset, width, boxSize)\n\t\t}\n\n\t\tresult = mergeDimensionMaps(result, resultForChild)\n\t\toffset += boxSize\n\t}\n\n\treturn result\n}\n\nfunc calcSizes(boxes []*Box, availableSpace int) []int {\n\tnormalizedWeights := normalizeWeights(lo.Map(boxes, func(box *Box, _ int) int { return box.Weight }))\n\n\ttotalWeight := 0\n\treservedSpace := 0\n\tfor i, box := range boxes {\n\t\tif box.isStatic() {\n\t\t\treservedSpace += box.Size\n\t\t} else {\n\t\t\ttotalWeight += normalizedWeights[i]\n\t\t}\n\t}\n\n\tdynamicSpace := utils.Max(0, availableSpace-reservedSpace)\n\n\tunitSize := 0\n\textraSpace := 0\n\tif totalWeight > 0 {\n\t\tunitSize = dynamicSpace / totalWeight\n\t\textraSpace = dynamicSpace % totalWeight\n\t}\n\n\tresult := make([]int, len(boxes))\n\tfor i, box := range boxes {\n\t\tif box.isStatic() {\n\t\t\t// assuming that only one static child can have a size greater than the\n\t\t\t// available space. In that case we just crop the size to what's available\n\t\t\tresult[i] = utils.Min(availableSpace, box.Size)\n\t\t} else {\n\t\t\tresult[i] = unitSize * normalizedWeights[i]\n\t\t}\n\t}\n\n\t// distribute the remainder across dynamic boxes.\n\tfor extraSpace > 0 {\n\t\tfor i, weight := range normalizedWeights {\n\t\t\tif weight > 0 {\n\t\t\t\tresult[i]++\n\t\t\t\textraSpace--\n\t\t\t\tnormalizedWeights[i]--\n\n\t\t\t\tif extraSpace == 0 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result\n}\n\n// removes common multiple from weights e.g. if we get 2, 4, 4 we return 1, 2, 2.\nfunc normalizeWeights(weights []int) []int {\n\tif len(weights) == 0 {\n\t\treturn []int{}\n\t}\n\n\t// to spare us some computation we'll exit early if any of our weights is 1\n\tif lo.SomeBy(weights, func(weight int) bool { return weight == 1 }) {\n\t\treturn weights\n\t}\n\n\t// map weights to factorSlices and find the lowest common factor\n\tpositiveWeights := lo.Filter(weights, func(weight int, _ int) bool { return weight > 0 })\n\tfactorSlices := lo.Map(positiveWeights, func(weight int, _ int) []int { return calcFactors(weight) })\n\tcommonFactors := factorSlices[0]\n\tfor _, factors := range factorSlices {\n\t\tcommonFactors = lo.Intersect(commonFactors, factors)\n\t}\n\n\tif len(commonFactors) == 0 {\n\t\treturn weights\n\t}\n\n\tnewWeights := lo.Map(weights, func(weight int, _ int) int { return weight / commonFactors[0] })\n\n\treturn normalizeWeights(newWeights)\n}\n\nfunc calcFactors(n int) []int {\n\tfactors := []int{}\n\tfor i := 2; i <= n; i++ {\n\t\tif n%i == 0 {\n\t\t\tfactors = append(factors, i)\n\t\t}\n\t}\n\treturn factors\n}\n\nfunc (b *Box) isStatic() bool {\n\treturn b.Size > 0\n}\n\nfunc (b *Box) getDirection(width int, height int) Direction {\n\tif b.ConditionalDirection != nil {\n\t\treturn b.ConditionalDirection(width, height)\n\t}\n\treturn b.Direction\n}\n\nfunc (b *Box) getChildren(width int, height int) []*Box {\n\tif b.ConditionalChildren != nil {\n\t\treturn b.ConditionalChildren(width, height)\n\t}\n\treturn b.Children\n}\n\nfunc mergeDimensionMaps(a map[string]Dimensions, b map[string]Dimensions) map[string]Dimensions {\n\tresult := map[string]Dimensions{}\n\tfor _, dimensionMap := range []map[string]Dimensions{a, b} {\n\t\tfor k, v := range dimensionMap {\n\t\t\tresult[k] = v\n\t\t}\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/lazycore/pkg/utils/once_writer.go",
    "content": "package utils\n\nimport (\n\t\"io\"\n\t\"sync\"\n)\n\n// This wraps a writer and ensures that before we actually write anything we call a given function first\n\ntype OnceWriter struct {\n\twriter io.Writer\n\tonce   sync.Once\n\tf      func()\n}\n\nvar _ io.Writer = &OnceWriter{}\n\nfunc NewOnceWriter(writer io.Writer, f func()) *OnceWriter {\n\treturn &OnceWriter{\n\t\twriter: writer,\n\t\tf:      f,\n\t}\n}\n\nfunc (self *OnceWriter) Write(p []byte) (n int, err error) {\n\tself.once.Do(func() {\n\t\tself.f()\n\t})\n\n\treturn self.writer.Write(p)\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/lazycore/pkg/utils/utils.go",
    "content": "package utils\n\nimport (\n\t\"log\"\n\t\"os\"\n\t\"path/filepath\"\n)\n\n// Min returns the minimum of two integers\nfunc Min(x, y int) int {\n\tif x < y {\n\t\treturn x\n\t}\n\treturn y\n}\n\n// Max returns the maximum of two integers\nfunc Max(x, y int) int {\n\tif x > y {\n\t\treturn x\n\t}\n\treturn y\n}\n\n// Clamp returns a value x restricted between min and max\nfunc Clamp(x int, min int, max int) int {\n\tif x < min {\n\t\treturn min\n\t} else if x > max {\n\t\treturn max\n\t}\n\treturn x\n}\n\n// GetLazyRootDirectory finds a lazy project root directory.\n//\n// It's used for cheatsheet scripts and integration tests. Not to be confused with finding the\n// root directory of _any_ random repo.\nfunc GetLazyRootDirectory() string {\n\tpath, err := os.Getwd()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfor {\n\t\t_, err := os.Stat(filepath.Join(path, \".git\"))\n\t\tif err == nil {\n\t\t\treturn path\n\t\t}\n\n\t\tif !os.IsNotExist(err) {\n\t\t\tpanic(err)\n\t\t}\n\n\t\tpath = filepath.Dir(path)\n\n\t\tif path == \"/\" {\n\t\t\tlog.Fatal(\"must run in lazy project folder or child folder\")\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/.travis.yml",
    "content": "language: go\n\ngo:\n    - 1.4\n    - 1.5\n    - 1.6\n    - 1.7\n    - 1.8\n    - 1.9\n    - tip\n\ngo_import_path: github.com/jesseduffield/yaml\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/LICENSE.libyaml",
    "content": "The following files were ported to Go from C files of libyaml, and thus\nare still covered by their original copyright and license:\n\n    apic.go\n    emitterc.go\n    parserc.go\n    readerc.go\n    scannerc.go\n    writerc.go\n    yamlh.go\n    yamlprivateh.go\n\nCopyright (c) 2006 Kirill Simonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/NOTICE",
    "content": "Copyright 2011-2016 Canonical Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/README.md",
    "content": "# YAML support for the Go language\n\nIntroduction\n------------\n\nThe yaml package enables Go programs to comfortably encode and decode YAML\nvalues. It was developed within [Canonical](https://www.canonical.com) as\npart of the [juju](https://juju.ubuntu.com) project, and is based on a\npure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML)\nC library to parse and generate YAML data quickly and reliably.\n\nCompatibility\n-------------\n\nThe yaml package supports most of YAML 1.1 and 1.2, including support for\nanchors, tags, map merging, etc. Multi-document unmarshalling is not yet\nimplemented, and base-60 floats from YAML 1.1 are purposefully not\nsupported since they're a poor design and are gone in YAML 1.2.\n\nInstallation and usage\n----------------------\n\nThe import path for the package is *github.com/jesseduffield/yaml*.\n\nTo install it, run:\n\n    go get github.com/jesseduffield/yaml\n\nAPI documentation\n-----------------\n\nIf opened in a browser, the import path itself leads to the API documentation:\n\n  * [https://github.com/jesseduffield/yaml](https://github.com/jesseduffield/yaml)\n\nAPI stability\n-------------\n\nThe package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in).\n\n\nLicense\n-------\n\nThe yaml package is licensed under the Apache License 2.0. Please see the LICENSE file for details.\n\n\nExample\n-------\n\n```Go\npackage main\n\nimport (\n        \"fmt\"\n        \"log\"\n\n        \"github.com/jesseduffield/yaml\"\n)\n\nvar data = `\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n`\n\n// Note: struct fields must be public in order for unmarshal to\n// correctly populate the data.\ntype T struct {\n        A string\n        B struct {\n                RenamedC int   `yaml:\"c\"`\n                D        []int `yaml:\",flow\"`\n        }\n}\n\nfunc main() {\n        t := T{}\n    \n        err := yaml.Unmarshal([]byte(data), &t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t:\\n%v\\n\\n\", t)\n    \n        d, err := yaml.Marshal(&t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t dump:\\n%s\\n\\n\", string(d))\n    \n        m := make(map[interface{}]interface{})\n    \n        err = yaml.Unmarshal([]byte(data), &m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m:\\n%v\\n\\n\", m)\n    \n        d, err = yaml.Marshal(&m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m dump:\\n%s\\n\\n\", string(d))\n}\n```\n\nThis example will generate the following output:\n\n```\n--- t:\n{Easy! {2 [3 4]}}\n\n--- t dump:\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n\n\n--- m:\nmap[a:Easy! b:map[c:2 d:[3 4]]]\n\n--- m dump:\na: Easy!\nb:\n  c: 2\n  d:\n  - 3\n  - 4\n```\n\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/apic.go",
    "content": "package yaml\n\nimport (\n\t\"io\"\n)\n\nfunc yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) {\n\t//fmt.Println(\"yaml_insert_token\", \"pos:\", pos, \"typ:\", token.typ, \"head:\", parser.tokens_head, \"len:\", len(parser.tokens))\n\n\t// Check if we can move the queue at the beginning of the buffer.\n\tif parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\tcopy(parser.tokens, parser.tokens[parser.tokens_head:])\n\t\t}\n\t\tparser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head]\n\t\tparser.tokens_head = 0\n\t}\n\tparser.tokens = append(parser.tokens, *token)\n\tif pos < 0 {\n\t\treturn\n\t}\n\tcopy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:])\n\tparser.tokens[parser.tokens_head+pos] = *token\n}\n\n// Create a new parser object.\nfunc yaml_parser_initialize(parser *yaml_parser_t) bool {\n\t*parser = yaml_parser_t{\n\t\traw_buffer: make([]byte, 0, input_raw_buffer_size),\n\t\tbuffer:     make([]byte, 0, input_buffer_size),\n\t}\n\treturn true\n}\n\n// Destroy a parser object.\nfunc yaml_parser_delete(parser *yaml_parser_t) {\n\t*parser = yaml_parser_t{}\n}\n\n// String read handler.\nfunc yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\tif parser.input_pos == len(parser.input) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(buffer, parser.input[parser.input_pos:])\n\tparser.input_pos += n\n\treturn n, nil\n}\n\n// Reader read handler.\nfunc yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\treturn parser.input_reader.Read(buffer)\n}\n\n// Set a string input.\nfunc yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_string_read_handler\n\tparser.input = input\n\tparser.input_pos = 0\n}\n\n// Set a file input.\nfunc yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_reader_read_handler\n\tparser.input_reader = r\n}\n\n// Set the source encoding.\nfunc yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) {\n\tif parser.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the encoding only once\")\n\t}\n\tparser.encoding = encoding\n}\n\n// Create a new emitter object.\nfunc yaml_emitter_initialize(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{\n\t\tbuffer:     make([]byte, output_buffer_size),\n\t\traw_buffer: make([]byte, 0, output_raw_buffer_size),\n\t\tstates:     make([]yaml_emitter_state_t, 0, initial_stack_size),\n\t\tevents:     make([]yaml_event_t, 0, initial_queue_size),\n\t}\n}\n\n// Destroy an emitter object.\nfunc yaml_emitter_delete(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{}\n}\n\n// String write handler.\nfunc yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t*emitter.output_buffer = append(*emitter.output_buffer, buffer...)\n\treturn nil\n}\n\n// yaml_writer_write_handler uses emitter.output_writer to write the\n// emitted text.\nfunc yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t_, err := emitter.output_writer.Write(buffer)\n\treturn err\n}\n\n// Set a string output.\nfunc yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_string_write_handler\n\temitter.output_buffer = output_buffer\n}\n\n// Set a file output.\nfunc yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_writer_write_handler\n\temitter.output_writer = w\n}\n\n// Set the output encoding.\nfunc yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) {\n\tif emitter.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the output encoding only once\")\n\t}\n\temitter.encoding = encoding\n}\n\n// Set the canonical output style.\nfunc yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) {\n\temitter.canonical = canonical\n}\n\n//// Set the indentation increment.\nfunc yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) {\n\tif indent < 2 || indent > 9 {\n\t\tindent = 2\n\t}\n\temitter.best_indent = indent\n}\n\n// Set the preferred line width.\nfunc yaml_emitter_set_width(emitter *yaml_emitter_t, width int) {\n\tif width < 0 {\n\t\twidth = -1\n\t}\n\temitter.best_width = width\n}\n\n// Set if unescaped non-ASCII characters are allowed.\nfunc yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) {\n\temitter.unicode = unicode\n}\n\n// Set the preferred line break character.\nfunc yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) {\n\temitter.line_break = line_break\n}\n\n///*\n// * Destroy a token object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_token_delete(yaml_token_t *token)\n//{\n//    assert(token);  // Non-NULL token object expected.\n//\n//    switch (token.type)\n//    {\n//        case YAML_TAG_DIRECTIVE_TOKEN:\n//            yaml_free(token.data.tag_directive.handle);\n//            yaml_free(token.data.tag_directive.prefix);\n//            break;\n//\n//        case YAML_ALIAS_TOKEN:\n//            yaml_free(token.data.alias.value);\n//            break;\n//\n//        case YAML_ANCHOR_TOKEN:\n//            yaml_free(token.data.anchor.value);\n//            break;\n//\n//        case YAML_TAG_TOKEN:\n//            yaml_free(token.data.tag.handle);\n//            yaml_free(token.data.tag.suffix);\n//            break;\n//\n//        case YAML_SCALAR_TOKEN:\n//            yaml_free(token.data.scalar.value);\n//            break;\n//\n//        default:\n//            break;\n//    }\n//\n//    memset(token, 0, sizeof(yaml_token_t));\n//}\n//\n///*\n// * Check if a string is a valid UTF-8 sequence.\n// *\n// * Check 'reader.c' for more details on UTF-8 encoding.\n// */\n//\n//static int\n//yaml_check_utf8(yaml_char_t *start, size_t length)\n//{\n//    yaml_char_t *end = start+length;\n//    yaml_char_t *pointer = start;\n//\n//    while (pointer < end) {\n//        unsigned char octet;\n//        unsigned int width;\n//        unsigned int value;\n//        size_t k;\n//\n//        octet = pointer[0];\n//        width = (octet & 0x80) == 0x00 ? 1 :\n//                (octet & 0xE0) == 0xC0 ? 2 :\n//                (octet & 0xF0) == 0xE0 ? 3 :\n//                (octet & 0xF8) == 0xF0 ? 4 : 0;\n//        value = (octet & 0x80) == 0x00 ? octet & 0x7F :\n//                (octet & 0xE0) == 0xC0 ? octet & 0x1F :\n//                (octet & 0xF0) == 0xE0 ? octet & 0x0F :\n//                (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0;\n//        if (!width) return 0;\n//        if (pointer+width > end) return 0;\n//        for (k = 1; k < width; k ++) {\n//            octet = pointer[k];\n//            if ((octet & 0xC0) != 0x80) return 0;\n//            value = (value << 6) + (octet & 0x3F);\n//        }\n//        if (!((width == 1) ||\n//            (width == 2 && value >= 0x80) ||\n//            (width == 3 && value >= 0x800) ||\n//            (width == 4 && value >= 0x10000))) return 0;\n//\n//        pointer += width;\n//    }\n//\n//    return 1;\n//}\n//\n\n// Create STREAM-START.\nfunc yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_STREAM_START_EVENT,\n\t\tencoding: encoding,\n\t}\n}\n\n// Create STREAM-END.\nfunc yaml_stream_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_STREAM_END_EVENT,\n\t}\n}\n\n// Create DOCUMENT-START.\nfunc yaml_document_start_event_initialize(\n\tevent *yaml_event_t,\n\tversion_directive *yaml_version_directive_t,\n\ttag_directives []yaml_tag_directive_t,\n\timplicit bool,\n) {\n\t*event = yaml_event_t{\n\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\tversion_directive: version_directive,\n\t\ttag_directives:    tag_directives,\n\t\timplicit:          implicit,\n\t}\n}\n\n// Create DOCUMENT-END.\nfunc yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_DOCUMENT_END_EVENT,\n\t\timplicit: implicit,\n\t}\n}\n\n///*\n// * Create ALIAS.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t)\n//{\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    anchor_copy *yaml_char_t = NULL\n//\n//    assert(event) // Non-NULL event object is expected.\n//    assert(anchor) // Non-NULL anchor is expected.\n//\n//    if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0\n//\n//    anchor_copy = yaml_strdup(anchor)\n//    if (!anchor_copy)\n//        return 0\n//\n//    ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark)\n//\n//    return 1\n//}\n\n// Create SCALAR.\nfunc yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:             yaml_SCALAR_EVENT,\n\t\tanchor:          anchor,\n\t\ttag:             tag,\n\t\tvalue:           value,\n\t\timplicit:        plain_implicit,\n\t\tquoted_implicit: quoted_implicit,\n\t\tstyle:           yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-START.\nfunc yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_SEQUENCE_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-END.\nfunc yaml_sequence_end_event_initialize(event *yaml_event_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_SEQUENCE_END_EVENT,\n\t}\n\treturn true\n}\n\n// Create MAPPING-START.\nfunc yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_MAPPING_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n}\n\n// Create MAPPING-END.\nfunc yaml_mapping_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_MAPPING_END_EVENT,\n\t}\n}\n\n// Destroy an event object.\nfunc yaml_event_delete(event *yaml_event_t) {\n\t*event = yaml_event_t{}\n}\n\n///*\n// * Create a document object.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_initialize(document *yaml_document_t,\n//        version_directive *yaml_version_directive_t,\n//        tag_directives_start *yaml_tag_directive_t,\n//        tag_directives_end *yaml_tag_directive_t,\n//        start_implicit int, end_implicit int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    struct {\n//        start *yaml_node_t\n//        end *yaml_node_t\n//        top *yaml_node_t\n//    } nodes = { NULL, NULL, NULL }\n//    version_directive_copy *yaml_version_directive_t = NULL\n//    struct {\n//        start *yaml_tag_directive_t\n//        end *yaml_tag_directive_t\n//        top *yaml_tag_directive_t\n//    } tag_directives_copy = { NULL, NULL, NULL }\n//    value yaml_tag_directive_t = { NULL, NULL }\n//    mark yaml_mark_t = { 0, 0, 0 }\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert((tag_directives_start && tag_directives_end) ||\n//            (tag_directives_start == tag_directives_end))\n//                            // Valid tag directives are expected.\n//\n//    if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error\n//\n//    if (version_directive) {\n//        version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t))\n//        if (!version_directive_copy) goto error\n//        version_directive_copy.major = version_directive.major\n//        version_directive_copy.minor = version_directive.minor\n//    }\n//\n//    if (tag_directives_start != tag_directives_end) {\n//        tag_directive *yaml_tag_directive_t\n//        if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE))\n//            goto error\n//        for (tag_directive = tag_directives_start\n//                tag_directive != tag_directives_end; tag_directive ++) {\n//            assert(tag_directive.handle)\n//            assert(tag_directive.prefix)\n//            if (!yaml_check_utf8(tag_directive.handle,\n//                        strlen((char *)tag_directive.handle)))\n//                goto error\n//            if (!yaml_check_utf8(tag_directive.prefix,\n//                        strlen((char *)tag_directive.prefix)))\n//                goto error\n//            value.handle = yaml_strdup(tag_directive.handle)\n//            value.prefix = yaml_strdup(tag_directive.prefix)\n//            if (!value.handle || !value.prefix) goto error\n//            if (!PUSH(&context, tag_directives_copy, value))\n//                goto error\n//            value.handle = NULL\n//            value.prefix = NULL\n//        }\n//    }\n//\n//    DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy,\n//            tag_directives_copy.start, tag_directives_copy.top,\n//            start_implicit, end_implicit, mark, mark)\n//\n//    return 1\n//\n//error:\n//    STACK_DEL(&context, nodes)\n//    yaml_free(version_directive_copy)\n//    while (!STACK_EMPTY(&context, tag_directives_copy)) {\n//        value yaml_tag_directive_t = POP(&context, tag_directives_copy)\n//        yaml_free(value.handle)\n//        yaml_free(value.prefix)\n//    }\n//    STACK_DEL(&context, tag_directives_copy)\n//    yaml_free(value.handle)\n//    yaml_free(value.prefix)\n//\n//    return 0\n//}\n//\n///*\n// * Destroy a document object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_document_delete(document *yaml_document_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    tag_directive *yaml_tag_directive_t\n//\n//    context.error = YAML_NO_ERROR // Eliminate a compiler warning.\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    while (!STACK_EMPTY(&context, document.nodes)) {\n//        node yaml_node_t = POP(&context, document.nodes)\n//        yaml_free(node.tag)\n//        switch (node.type) {\n//            case YAML_SCALAR_NODE:\n//                yaml_free(node.data.scalar.value)\n//                break\n//            case YAML_SEQUENCE_NODE:\n//                STACK_DEL(&context, node.data.sequence.items)\n//                break\n//            case YAML_MAPPING_NODE:\n//                STACK_DEL(&context, node.data.mapping.pairs)\n//                break\n//            default:\n//                assert(0) // Should not happen.\n//        }\n//    }\n//    STACK_DEL(&context, document.nodes)\n//\n//    yaml_free(document.version_directive)\n//    for (tag_directive = document.tag_directives.start\n//            tag_directive != document.tag_directives.end\n//            tag_directive++) {\n//        yaml_free(tag_directive.handle)\n//        yaml_free(tag_directive.prefix)\n//    }\n//    yaml_free(document.tag_directives.start)\n//\n//    memset(document, 0, sizeof(yaml_document_t))\n//}\n//\n///**\n// * Get a document node.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_node(document *yaml_document_t, index int)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (index > 0 && document.nodes.start + index <= document.nodes.top) {\n//        return document.nodes.start + index - 1\n//    }\n//    return NULL\n//}\n//\n///**\n// * Get the root object.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_root_node(document *yaml_document_t)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (document.nodes.top != document.nodes.start) {\n//        return document.nodes.start\n//    }\n//    return NULL\n//}\n//\n///*\n// * Add a scalar node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_scalar(document *yaml_document_t,\n//        tag *yaml_char_t, value *yaml_char_t, length int,\n//        style yaml_scalar_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    value_copy *yaml_char_t = NULL\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert(value) // Non-NULL value is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (length < 0) {\n//        length = strlen((char *)value)\n//    }\n//\n//    if (!yaml_check_utf8(value, length)) goto error\n//    value_copy = yaml_malloc(length+1)\n//    if (!value_copy) goto error\n//    memcpy(value_copy, value, length)\n//    value_copy[length] = '\\0'\n//\n//    SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    yaml_free(tag_copy)\n//    yaml_free(value_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a sequence node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_sequence(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_sequence_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_item_t\n//        end *yaml_node_item_t\n//        top *yaml_node_item_t\n//    } items = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error\n//\n//    SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, items)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a mapping node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_mapping(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_mapping_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_pair_t\n//        end *yaml_node_pair_t\n//        top *yaml_node_pair_t\n//    } pairs = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error\n//\n//    MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, pairs)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Append an item to a sequence node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_sequence_item(document *yaml_document_t,\n//        sequence int, item int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(sequence > 0\n//            && document.nodes.start + sequence <= document.nodes.top)\n//                            // Valid sequence id is required.\n//    assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE)\n//                            // A sequence node is required.\n//    assert(item > 0 && document.nodes.start + item <= document.nodes.top)\n//                            // Valid item id is required.\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[sequence-1].data.sequence.items, item))\n//        return 0\n//\n//    return 1\n//}\n//\n///*\n// * Append a pair of a key and a value to a mapping node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_mapping_pair(document *yaml_document_t,\n//        mapping int, key int, value int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    pair yaml_node_pair_t\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(mapping > 0\n//            && document.nodes.start + mapping <= document.nodes.top)\n//                            // Valid mapping id is required.\n//    assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE)\n//                            // A mapping node is required.\n//    assert(key > 0 && document.nodes.start + key <= document.nodes.top)\n//                            // Valid key id is required.\n//    assert(value > 0 && document.nodes.start + value <= document.nodes.top)\n//                            // Valid value id is required.\n//\n//    pair.key = key\n//    pair.value = value\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[mapping-1].data.mapping.pairs, pair))\n//        return 0\n//\n//    return 1\n//}\n//\n//\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/decode.go",
    "content": "package yaml\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"time\"\n)\n\nconst (\n\tdocumentNode = 1 << iota\n\tmappingNode\n\tsequenceNode\n\tscalarNode\n\taliasNode\n)\n\ntype node struct {\n\tkind         int\n\tline, column int\n\ttag          string\n\t// For an alias node, alias holds the resolved alias.\n\talias    *node\n\tvalue    string\n\timplicit bool\n\tchildren []*node\n\tanchors  map[string]*node\n}\n\n// ----------------------------------------------------------------------------\n// Parser, produces a node tree out of a libyaml event stream.\n\ntype parser struct {\n\tparser   yaml_parser_t\n\tevent    yaml_event_t\n\tdoc      *node\n\tdoneInit bool\n}\n\nfunc newParser(b []byte) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tif len(b) == 0 {\n\t\tb = []byte{'\\n'}\n\t}\n\tyaml_parser_set_input_string(&p.parser, b)\n\treturn &p\n}\n\nfunc newParserFromReader(r io.Reader) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tyaml_parser_set_input_reader(&p.parser, r)\n\treturn &p\n}\n\nfunc (p *parser) init() {\n\tif p.doneInit {\n\t\treturn\n\t}\n\tp.expect(yaml_STREAM_START_EVENT)\n\tp.doneInit = true\n}\n\nfunc (p *parser) destroy() {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\tyaml_event_delete(&p.event)\n\t}\n\tyaml_parser_delete(&p.parser)\n}\n\n// expect consumes an event from the event stream and\n// checks that it's of the expected type.\nfunc (p *parser) expect(e yaml_event_type_t) {\n\tif p.event.typ == yaml_NO_EVENT {\n\t\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\t\tp.fail()\n\t\t}\n\t}\n\tif p.event.typ == yaml_STREAM_END_EVENT {\n\t\tfailf(\"attempted to go past the end of stream; corrupted value?\")\n\t}\n\tif p.event.typ != e {\n\t\tp.parser.problem = fmt.Sprintf(\"expected %s event but got %s\", e, p.event.typ)\n\t\tp.fail()\n\t}\n\tyaml_event_delete(&p.event)\n\tp.event.typ = yaml_NO_EVENT\n}\n\n// peek peeks at the next event in the event stream,\n// puts the results into p.event and returns the event type.\nfunc (p *parser) peek() yaml_event_type_t {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\treturn p.event.typ\n\t}\n\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\tp.fail()\n\t}\n\treturn p.event.typ\n}\n\nfunc (p *parser) fail() {\n\tvar where string\n\tvar line int\n\tif p.parser.problem_mark.line != 0 {\n\t\tline = p.parser.problem_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t} else if p.parser.context_mark.line != 0 {\n\t\tline = p.parser.context_mark.line\n\t}\n\tif line != 0 {\n\t\twhere = \"line \" + strconv.Itoa(line) + \": \"\n\t}\n\tvar msg string\n\tif len(p.parser.problem) > 0 {\n\t\tmsg = p.parser.problem\n\t} else {\n\t\tmsg = \"unknown problem parsing YAML content\"\n\t}\n\tfailf(\"%s%s\", where, msg)\n}\n\nfunc (p *parser) anchor(n *node, anchor []byte) {\n\tif anchor != nil {\n\t\tp.doc.anchors[string(anchor)] = n\n\t}\n}\n\nfunc (p *parser) parse() *node {\n\tp.init()\n\tswitch p.peek() {\n\tcase yaml_SCALAR_EVENT:\n\t\treturn p.scalar()\n\tcase yaml_ALIAS_EVENT:\n\t\treturn p.alias()\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn p.mapping()\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn p.sequence()\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\treturn p.document()\n\tcase yaml_STREAM_END_EVENT:\n\t\t// Happens when attempting to decode an empty buffer.\n\t\treturn nil\n\tdefault:\n\t\tpanic(\"attempted to parse unknown event: \" + p.event.typ.String())\n\t}\n}\n\nfunc (p *parser) node(kind int) *node {\n\treturn &node{\n\t\tkind:   kind,\n\t\tline:   p.event.start_mark.line,\n\t\tcolumn: p.event.start_mark.column,\n\t}\n}\n\nfunc (p *parser) document() *node {\n\tn := p.node(documentNode)\n\tn.anchors = make(map[string]*node)\n\tp.doc = n\n\tp.expect(yaml_DOCUMENT_START_EVENT)\n\tn.children = append(n.children, p.parse())\n\tp.expect(yaml_DOCUMENT_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) alias() *node {\n\tn := p.node(aliasNode)\n\tn.value = string(p.event.anchor)\n\tn.alias = p.doc.anchors[n.value]\n\tif n.alias == nil {\n\t\tfailf(\"unknown anchor '%s' referenced\", n.value)\n\t}\n\tp.expect(yaml_ALIAS_EVENT)\n\treturn n\n}\n\nfunc (p *parser) scalar() *node {\n\tn := p.node(scalarNode)\n\tn.value = string(p.event.value)\n\tn.tag = string(p.event.tag)\n\tn.implicit = p.event.implicit\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SCALAR_EVENT)\n\treturn n\n}\n\nfunc (p *parser) sequence() *node {\n\tn := p.node(sequenceNode)\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SEQUENCE_START_EVENT)\n\tfor p.peek() != yaml_SEQUENCE_END_EVENT {\n\t\tn.children = append(n.children, p.parse())\n\t}\n\tp.expect(yaml_SEQUENCE_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) mapping() *node {\n\tn := p.node(mappingNode)\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_MAPPING_START_EVENT)\n\tfor p.peek() != yaml_MAPPING_END_EVENT {\n\t\tn.children = append(n.children, p.parse(), p.parse())\n\t}\n\tp.expect(yaml_MAPPING_END_EVENT)\n\treturn n\n}\n\n// ----------------------------------------------------------------------------\n// Decoder, unmarshals a node into a provided value.\n\ntype decoder struct {\n\tdoc     *node\n\taliases map[*node]bool\n\tmapType reflect.Type\n\tterrors []string\n\tstrict  bool\n}\n\nvar (\n\tmapItemType    = reflect.TypeOf(MapItem{})\n\tdurationType   = reflect.TypeOf(time.Duration(0))\n\tdefaultMapType = reflect.TypeOf(map[interface{}]interface{}{})\n\tifaceType      = defaultMapType.Elem()\n\ttimeType       = reflect.TypeOf(time.Time{})\n\tptrTimeType    = reflect.TypeOf(&time.Time{})\n)\n\nfunc newDecoder(strict bool) *decoder {\n\td := &decoder{mapType: defaultMapType, strict: strict}\n\td.aliases = make(map[*node]bool)\n\treturn d\n}\n\nfunc (d *decoder) terror(n *node, tag string, out reflect.Value) {\n\tif n.tag != \"\" {\n\t\ttag = n.tag\n\t}\n\tvalue := n.value\n\tif tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG {\n\t\tif len(value) > 10 {\n\t\t\tvalue = \" `\" + value[:7] + \"...`\"\n\t\t} else {\n\t\t\tvalue = \" `\" + value + \"`\"\n\t\t}\n\t}\n\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: cannot unmarshal %s%s into %s\", n.line+1, shortTag(tag), value, out.Type()))\n}\n\nfunc (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) {\n\tterrlen := len(d.terrors)\n\terr := u.UnmarshalYAML(func(v interface{}) (err error) {\n\t\tdefer handleErr(&err)\n\t\td.unmarshal(n, reflect.ValueOf(v))\n\t\tif len(d.terrors) > terrlen {\n\t\t\tissues := d.terrors[terrlen:]\n\t\t\td.terrors = d.terrors[:terrlen]\n\t\t\treturn &TypeError{issues}\n\t\t}\n\t\treturn nil\n\t})\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\n// d.prepare initializes and dereferences pointers and calls UnmarshalYAML\n// if a value is found to implement it.\n// It returns the initialized and dereferenced out value, whether\n// unmarshalling was already done by UnmarshalYAML, and if so whether\n// its types unmarshalled appropriately.\n//\n// If n holds a null value, prepare returns before doing anything.\nfunc (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) {\n\tif n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == \"\" && (n.value == \"null\" || n.value == \"~\" || n.value == \"\" && n.implicit) {\n\t\treturn out, false, false\n\t}\n\tagain := true\n\tfor again {\n\t\tagain = false\n\t\tif out.Kind() == reflect.Ptr {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.New(out.Type().Elem()))\n\t\t\t}\n\t\t\tout = out.Elem()\n\t\t\tagain = true\n\t\t}\n\t\tif out.CanAddr() {\n\t\t\tif u, ok := out.Addr().Interface().(Unmarshaler); ok {\n\t\t\t\tgood = d.callUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t}\n\t}\n\treturn out, false, false\n}\n\nfunc (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) {\n\tswitch n.kind {\n\tcase documentNode:\n\t\treturn d.document(n, out)\n\tcase aliasNode:\n\t\treturn d.alias(n, out)\n\t}\n\tout, unmarshaled, good := d.prepare(n, out)\n\tif unmarshaled {\n\t\treturn good\n\t}\n\tswitch n.kind {\n\tcase scalarNode:\n\t\tgood = d.scalar(n, out)\n\tcase mappingNode:\n\t\tgood = d.mapping(n, out)\n\tcase sequenceNode:\n\t\tgood = d.sequence(n, out)\n\tdefault:\n\t\tpanic(\"internal error: unknown node kind: \" + strconv.Itoa(n.kind))\n\t}\n\treturn good\n}\n\nfunc (d *decoder) document(n *node, out reflect.Value) (good bool) {\n\tif len(n.children) == 1 {\n\t\td.doc = n\n\t\td.unmarshal(n.children[0], out)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *decoder) alias(n *node, out reflect.Value) (good bool) {\n\tif d.aliases[n] {\n\t\t// TODO this could actually be allowed in some circumstances.\n\t\tfailf(\"anchor '%s' value contains itself\", n.value)\n\t}\n\td.aliases[n] = true\n\tgood = d.unmarshal(n.alias, out)\n\tdelete(d.aliases, n)\n\treturn good\n}\n\nvar zeroValue reflect.Value\n\nfunc resetMap(out reflect.Value) {\n\tfor _, k := range out.MapKeys() {\n\t\tout.SetMapIndex(k, zeroValue)\n\t}\n}\n\nfunc (d *decoder) scalar(n *node, out reflect.Value) bool {\n\tvar tag string\n\tvar resolved interface{}\n\tif n.tag == \"\" && !n.implicit {\n\t\ttag = yaml_STR_TAG\n\t\tresolved = n.value\n\t} else {\n\t\ttag, resolved = resolve(n.tag, n.value)\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tdata, err := base64.StdEncoding.DecodeString(resolved.(string))\n\t\t\tif err != nil {\n\t\t\t\tfailf(\"!!binary value contains invalid base64 data\")\n\t\t\t}\n\t\t\tresolved = string(data)\n\t\t}\n\t}\n\tif resolved == nil {\n\t\tif out.Kind() == reflect.Map && !out.CanAddr() {\n\t\t\tresetMap(out)\n\t\t} else {\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t}\n\t\treturn true\n\t}\n\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t// We've resolved to exactly the type we want, so use that.\n\t\tout.Set(resolvedv)\n\t\treturn true\n\t}\n\t// Perhaps we can use the value as a TextUnmarshaler to\n\t// set its value.\n\tif out.CanAddr() {\n\t\tu, ok := out.Addr().Interface().(encoding.TextUnmarshaler)\n\t\tif ok {\n\t\t\tvar text []byte\n\t\t\tif tag == yaml_BINARY_TAG {\n\t\t\t\ttext = []byte(resolved.(string))\n\t\t\t} else {\n\t\t\t\t// We let any value be unmarshaled into TextUnmarshaler.\n\t\t\t\t// That might be more lax than we'd like, but the\n\t\t\t\t// TextUnmarshaler itself should bowl out any dubious values.\n\t\t\t\ttext = []byte(n.value)\n\t\t\t}\n\t\t\terr := u.UnmarshalText(text)\n\t\t\tif err != nil {\n\t\t\t\tfail(err)\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.String:\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tout.SetString(resolved.(string))\n\t\t\treturn true\n\t\t}\n\t\tif resolved != nil {\n\t\t\tout.SetString(n.value)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Interface:\n\t\tif resolved == nil {\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t} else if tag == yaml_TIMESTAMP_TAG {\n\t\t\t// It looks like a timestamp but for backward compatibility\n\t\t\t// reasons we set it as a string, so that code that unmarshals\n\t\t\t// timestamp-like values into interface{} will continue to\n\t\t\t// see a string and not a time.Time.\n\t\t\t// TODO(v3) Drop this.\n\t\t\tout.Set(reflect.ValueOf(n.value))\n\t\t} else {\n\t\t\tout.Set(reflect.ValueOf(resolved))\n\t\t}\n\t\treturn true\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif !out.OverflowInt(resolved) {\n\t\t\t\tout.SetInt(resolved)\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase string:\n\t\t\tif out.Type() == durationType {\n\t\t\t\td, err := time.ParseDuration(resolved)\n\t\t\t\tif err == nil {\n\t\t\t\t\tout.SetInt(int64(d))\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Bool:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase bool:\n\t\t\tout.SetBool(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase int64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase uint64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase float64:\n\t\t\tout.SetFloat(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Struct:\n\t\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t\tout.Set(resolvedv)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Ptr:\n\t\tif out.Type().Elem() == reflect.TypeOf(resolved) {\n\t\t\t// TODO DOes this make sense? When is out a Ptr except when decoding a nil value?\n\t\t\telem := reflect.New(out.Type().Elem())\n\t\t\telem.Elem().Set(reflect.ValueOf(resolved))\n\t\t\tout.Set(elem)\n\t\t\treturn true\n\t\t}\n\t}\n\td.terror(n, tag, out)\n\treturn false\n}\n\nfunc settableValueOf(i interface{}) reflect.Value {\n\tv := reflect.ValueOf(i)\n\tsv := reflect.New(v.Type()).Elem()\n\tsv.Set(v)\n\treturn sv\n}\n\nfunc (d *decoder) sequence(n *node, out reflect.Value) (good bool) {\n\tl := len(n.children)\n\n\tvar iface reflect.Value\n\tswitch out.Kind() {\n\tcase reflect.Slice:\n\t\tout.Set(reflect.MakeSlice(out.Type(), l, l))\n\tcase reflect.Array:\n\t\tif l != out.Len() {\n\t\t\tfailf(\"invalid array: want %d elements but got %d\", out.Len(), l)\n\t\t}\n\tcase reflect.Interface:\n\t\t// No type hints. Will have to use a generic sequence.\n\t\tiface = out\n\t\tout = settableValueOf(make([]interface{}, l))\n\tdefault:\n\t\td.terror(n, yaml_SEQ_TAG, out)\n\t\treturn false\n\t}\n\tet := out.Type().Elem()\n\n\tj := 0\n\tfor i := 0; i < l; i++ {\n\t\te := reflect.New(et).Elem()\n\t\tif ok := d.unmarshal(n.children[i], e); ok {\n\t\t\tout.Index(j).Set(e)\n\t\t\tj++\n\t\t}\n\t}\n\tif out.Kind() != reflect.Array {\n\t\tout.Set(out.Slice(0, j))\n\t}\n\tif iface.IsValid() {\n\t\tiface.Set(out)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mapping(n *node, out reflect.Value) (good bool) {\n\tswitch out.Kind() {\n\tcase reflect.Struct:\n\t\treturn d.mappingStruct(n, out)\n\tcase reflect.Slice:\n\t\treturn d.mappingSlice(n, out)\n\tcase reflect.Map:\n\t\t// okay\n\tcase reflect.Interface:\n\t\tif d.mapType.Kind() == reflect.Map {\n\t\t\tiface := out\n\t\t\tout = reflect.MakeMap(d.mapType)\n\t\t\tiface.Set(out)\n\t\t} else {\n\t\t\tslicev := reflect.New(d.mapType).Elem()\n\t\t\tif !d.mappingSlice(n, slicev) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tout.Set(slicev)\n\t\t\treturn true\n\t\t}\n\tdefault:\n\t\td.terror(n, yaml_MAP_TAG, out)\n\t\treturn false\n\t}\n\toutt := out.Type()\n\tkt := outt.Key()\n\tet := outt.Elem()\n\n\tmapType := d.mapType\n\tif outt.Key() == ifaceType && outt.Elem() == ifaceType {\n\t\td.mapType = outt\n\t}\n\n\tif out.IsNil() {\n\t\tout.Set(reflect.MakeMap(outt))\n\t}\n\tl := len(n.children)\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.children[i]) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\tk := reflect.New(kt).Elem()\n\t\tif d.unmarshal(n.children[i], k) {\n\t\t\tkkind := k.Kind()\n\t\t\tif kkind == reflect.Interface {\n\t\t\t\tkkind = k.Elem().Kind()\n\t\t\t}\n\t\t\tif kkind == reflect.Map || kkind == reflect.Slice {\n\t\t\t\tfailf(\"invalid map key: %#v\", k.Interface())\n\t\t\t}\n\t\t\te := reflect.New(et).Elem()\n\t\t\tif d.unmarshal(n.children[i+1], e) {\n\t\t\t\td.setMapIndex(n.children[i+1], out, k, e)\n\t\t\t}\n\t\t}\n\t}\n\td.mapType = mapType\n\treturn true\n}\n\nfunc (d *decoder) setMapIndex(n *node, out, k, v reflect.Value) {\n\tif d.strict && out.MapIndex(k) != zeroValue {\n\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: key %#v already set in map\", n.line+1, k.Interface()))\n\t\treturn\n\t}\n\tout.SetMapIndex(k, v)\n}\n\nfunc (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) {\n\toutt := out.Type()\n\tif outt.Elem() != mapItemType {\n\t\td.terror(n, yaml_MAP_TAG, out)\n\t\treturn false\n\t}\n\n\tmapType := d.mapType\n\td.mapType = outt\n\n\tvar slice []MapItem\n\tvar l = len(n.children)\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.children[i]) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\titem := MapItem{}\n\t\tk := reflect.ValueOf(&item.Key).Elem()\n\t\tif d.unmarshal(n.children[i], k) {\n\t\t\tv := reflect.ValueOf(&item.Value).Elem()\n\t\t\tif d.unmarshal(n.children[i+1], v) {\n\t\t\t\tslice = append(slice, item)\n\t\t\t}\n\t\t}\n\t}\n\tout.Set(reflect.ValueOf(slice))\n\td.mapType = mapType\n\treturn true\n}\n\nfunc (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) {\n\tsinfo, err := getStructInfo(out.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tname := settableValueOf(\"\")\n\tl := len(n.children)\n\n\tvar inlineMap reflect.Value\n\tvar elemType reflect.Type\n\tif sinfo.InlineMap != -1 {\n\t\tinlineMap = out.Field(sinfo.InlineMap)\n\t\tinlineMap.Set(reflect.New(inlineMap.Type()).Elem())\n\t\telemType = inlineMap.Type().Elem()\n\t}\n\n\tvar doneFields []bool\n\tif d.strict {\n\t\tdoneFields = make([]bool, len(sinfo.FieldsList))\n\t}\n\tfor i := 0; i < l; i += 2 {\n\t\tni := n.children[i]\n\t\tif isMerge(ni) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\tif !d.unmarshal(ni, name) {\n\t\t\tcontinue\n\t\t}\n\t\tif info, ok := sinfo.FieldsMap[name.String()]; ok {\n\t\t\tif d.strict {\n\t\t\t\tif doneFields[info.Id] {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s already set in type %s\", ni.line+1, name.String(), out.Type()))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdoneFields[info.Id] = true\n\t\t\t}\n\t\t\tvar field reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tfield = out.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tfield = out.FieldByIndex(info.Inline)\n\t\t\t}\n\t\t\td.unmarshal(n.children[i+1], field)\n\t\t} else if sinfo.InlineMap != -1 {\n\t\t\tif inlineMap.IsNil() {\n\t\t\t\tinlineMap.Set(reflect.MakeMap(inlineMap.Type()))\n\t\t\t}\n\t\t\tvalue := reflect.New(elemType).Elem()\n\t\t\td.unmarshal(n.children[i+1], value)\n\t\t\td.setMapIndex(n.children[i+1], inlineMap, name, value)\n\t\t} else if d.strict {\n\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s not found in type %s\", ni.line+1, name.String(), out.Type()))\n\t\t}\n\t}\n\treturn true\n}\n\nfunc failWantMap() {\n\tfailf(\"map merge requires map or sequence of maps as the value\")\n}\n\nfunc (d *decoder) merge(n *node, out reflect.Value) {\n\tswitch n.kind {\n\tcase mappingNode:\n\t\td.unmarshal(n, out)\n\tcase aliasNode:\n\t\tan, ok := d.doc.anchors[n.value]\n\t\tif ok && an.kind != mappingNode {\n\t\t\tfailWantMap()\n\t\t}\n\t\td.unmarshal(n, out)\n\tcase sequenceNode:\n\t\t// Step backwards as earlier nodes take precedence.\n\t\tfor i := len(n.children) - 1; i >= 0; i-- {\n\t\t\tni := n.children[i]\n\t\t\tif ni.kind == aliasNode {\n\t\t\t\tan, ok := d.doc.anchors[ni.value]\n\t\t\t\tif ok && an.kind != mappingNode {\n\t\t\t\t\tfailWantMap()\n\t\t\t\t}\n\t\t\t} else if ni.kind != mappingNode {\n\t\t\t\tfailWantMap()\n\t\t\t}\n\t\t\td.unmarshal(ni, out)\n\t\t}\n\tdefault:\n\t\tfailWantMap()\n\t}\n}\n\nfunc isMerge(n *node) bool {\n\treturn n.kind == scalarNode && n.value == \"<<\" && (n.implicit == true || n.tag == yaml_MERGE_TAG)\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/emitterc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Flush the buffer if needed.\nfunc flush(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) {\n\t\treturn yaml_emitter_flush(emitter)\n\t}\n\treturn true\n}\n\n// Put a character to the output buffer.\nfunc put(emitter *yaml_emitter_t, value byte) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.buffer[emitter.buffer_pos] = value\n\temitter.buffer_pos++\n\temitter.column++\n\treturn true\n}\n\n// Put a line break to the output buffer.\nfunc put_break(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tswitch emitter.line_break {\n\tcase yaml_CR_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\r'\n\t\temitter.buffer_pos += 1\n\tcase yaml_LN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\n'\n\t\temitter.buffer_pos += 1\n\tcase yaml_CRLN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos+0] = '\\r'\n\t\temitter.buffer[emitter.buffer_pos+1] = '\\n'\n\t\temitter.buffer_pos += 2\n\tdefault:\n\t\tpanic(\"unknown line break setting\")\n\t}\n\temitter.column = 0\n\temitter.line++\n\treturn true\n}\n\n// Copy a character from a string into buffer.\nfunc write(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tp := emitter.buffer_pos\n\tw := width(s[*i])\n\tswitch w {\n\tcase 4:\n\t\temitter.buffer[p+3] = s[*i+3]\n\t\tfallthrough\n\tcase 3:\n\t\temitter.buffer[p+2] = s[*i+2]\n\t\tfallthrough\n\tcase 2:\n\t\temitter.buffer[p+1] = s[*i+1]\n\t\tfallthrough\n\tcase 1:\n\t\temitter.buffer[p+0] = s[*i+0]\n\tdefault:\n\t\tpanic(\"unknown character width\")\n\t}\n\temitter.column++\n\temitter.buffer_pos += w\n\t*i += w\n\treturn true\n}\n\n// Write a whole string into buffer.\nfunc write_all(emitter *yaml_emitter_t, s []byte) bool {\n\tfor i := 0; i < len(s); {\n\t\tif !write(emitter, s, &i) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Copy a line break character from a string into buffer.\nfunc write_break(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif s[*i] == '\\n' {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t\t*i++\n\t} else {\n\t\tif !write(emitter, s, i) {\n\t\t\treturn false\n\t\t}\n\t\temitter.column = 0\n\t\temitter.line++\n\t}\n\treturn true\n}\n\n// Set an emitter error and return false.\nfunc yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_EMITTER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Emit an event.\nfunc yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.events = append(emitter.events, *event)\n\tfor !yaml_emitter_need_more_events(emitter) {\n\t\tevent := &emitter.events[emitter.events_head]\n\t\tif !yaml_emitter_analyze_event(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_state_machine(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tyaml_event_delete(event)\n\t\temitter.events_head++\n\t}\n\treturn true\n}\n\n// Check if we need to accumulate more events before emitting.\n//\n// We accumulate extra\n//  - 1 event for DOCUMENT-START\n//  - 2 events for SEQUENCE-START\n//  - 3 events for MAPPING-START\n//\nfunc yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool {\n\tif emitter.events_head == len(emitter.events) {\n\t\treturn true\n\t}\n\tvar accumulate int\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\taccumulate = 1\n\t\tbreak\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\taccumulate = 2\n\t\tbreak\n\tcase yaml_MAPPING_START_EVENT:\n\t\taccumulate = 3\n\t\tbreak\n\tdefault:\n\t\treturn false\n\t}\n\tif len(emitter.events)-emitter.events_head > accumulate {\n\t\treturn false\n\t}\n\tvar level int\n\tfor i := emitter.events_head; i < len(emitter.events); i++ {\n\t\tswitch emitter.events[i].typ {\n\t\tcase yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT:\n\t\t\tlevel++\n\t\tcase yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT:\n\t\t\tlevel--\n\t\t}\n\t\tif level == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Append a directive to the directives stack.\nfunc yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool {\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\tif bytes.Equal(value.handle, emitter.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"duplicate %TAG directive\")\n\t\t}\n\t}\n\n\t// [Go] Do we actually need to copy this given garbage collection\n\t// and the lack of deallocating destructors?\n\ttag_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(tag_copy.handle, value.handle)\n\tcopy(tag_copy.prefix, value.prefix)\n\temitter.tag_directives = append(emitter.tag_directives, tag_copy)\n\treturn true\n}\n\n// Increase the indentation level.\nfunc yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool {\n\temitter.indents = append(emitter.indents, emitter.indent)\n\tif emitter.indent < 0 {\n\t\tif flow {\n\t\t\temitter.indent = emitter.best_indent\n\t\t} else {\n\t\t\temitter.indent = 0\n\t\t}\n\t} else if !indentless {\n\t\temitter.indent += emitter.best_indent\n\t}\n\treturn true\n}\n\n// State dispatcher.\nfunc yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tswitch emitter.state {\n\tdefault:\n\tcase yaml_EMIT_STREAM_START_STATE:\n\t\treturn yaml_emitter_emit_stream_start(emitter, event)\n\n\tcase yaml_EMIT_FIRST_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, true)\n\n\tcase yaml_EMIT_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, false)\n\n\tcase yaml_EMIT_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_emitter_emit_document_content(emitter, event)\n\n\tcase yaml_EMIT_DOCUMENT_END_STATE:\n\t\treturn yaml_emitter_emit_document_end(emitter, event)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_END_STATE:\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected nothing after STREAM-END\")\n\t}\n\tpanic(\"invalid emitter state\")\n}\n\n// Expect STREAM-START.\nfunc yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_STREAM_START_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected STREAM-START\")\n\t}\n\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\temitter.encoding = event.encoding\n\t\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\t\temitter.encoding = yaml_UTF8_ENCODING\n\t\t}\n\t}\n\tif emitter.best_indent < 2 || emitter.best_indent > 9 {\n\t\temitter.best_indent = 2\n\t}\n\tif emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 {\n\t\temitter.best_width = 80\n\t}\n\tif emitter.best_width < 0 {\n\t\temitter.best_width = 1<<31 - 1\n\t}\n\tif emitter.line_break == yaml_ANY_BREAK {\n\t\temitter.line_break = yaml_LN_BREAK\n\t}\n\n\temitter.indent = -1\n\temitter.line = 0\n\temitter.column = 0\n\temitter.whitespace = true\n\temitter.indention = true\n\n\tif emitter.encoding != yaml_UTF8_ENCODING {\n\t\tif !yaml_emitter_write_bom(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE\n\treturn true\n}\n\n// Expect DOCUMENT-START or STREAM-END.\nfunc yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\n\tif event.typ == yaml_DOCUMENT_START_EVENT {\n\n\t\tif event.version_directive != nil {\n\t\t\tif !yaml_emitter_analyze_version_directive(emitter, event.version_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\tif !yaml_emitter_analyze_tag_directive(emitter, tag_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(default_tag_directives); i++ {\n\t\t\ttag_directive := &default_tag_directives[i]\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, true) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\timplicit := event.implicit\n\t\tif !first || emitter.canonical {\n\t\t\timplicit = false\n\t\t}\n\n\t\tif emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif event.version_directive != nil {\n\t\t\timplicit = false\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%YAML\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"1.1\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif len(event.tag_directives) > 0 {\n\t\t\timplicit = false\n\t\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%TAG\"), true, false, false) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif yaml_emitter_check_empty_document(emitter) {\n\t\t\timplicit = false\n\t\t}\n\t\tif !implicit {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"---\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif emitter.canonical {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\temitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE\n\t\treturn true\n\t}\n\n\tif event.typ == yaml_STREAM_END_EVENT {\n\t\tif emitter.open_ended {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_flush(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = yaml_EMIT_END_STATE\n\t\treturn true\n\t}\n\n\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-START or STREAM-END\")\n}\n\n// Expect the root node.\nfunc yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, true, false, false, false)\n}\n\n// Expect DOCUMENT-END.\nfunc yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_DOCUMENT_END_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-END\")\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !event.implicit {\n\t\t// [Go] Allocate the slice elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.state = yaml_EMIT_DOCUMENT_START_STATE\n\temitter.tag_directives = emitter.tag_directives[:0]\n\treturn true\n}\n\n// Expect a flow item node.\nfunc yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\n\t\treturn true\n\t}\n\n\tif !first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, true, false, false)\n}\n\n// Expect a flow key node.\nfunc yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\n\tif !first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !emitter.canonical && yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a flow value node.\nfunc yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block item node.\nfunc yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, true, false, false)\n}\n\n// Expect a block key node.\nfunc yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block value node.\nfunc yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a node.\nfunc yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t,\n\troot bool, sequence bool, mapping bool, simple_key bool) bool {\n\n\temitter.root_context = root\n\temitter.sequence_context = sequence\n\temitter.mapping_context = mapping\n\temitter.simple_key_context = simple_key\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\treturn yaml_emitter_emit_alias(emitter, event)\n\tcase yaml_SCALAR_EVENT:\n\t\treturn yaml_emitter_emit_scalar(emitter, event)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn yaml_emitter_emit_sequence_start(emitter, event)\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn yaml_emitter_emit_mapping_start(emitter, event)\n\tdefault:\n\t\treturn yaml_emitter_set_emitter_error(emitter,\n\t\t\tfmt.Sprintf(\"expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v\", event.typ))\n\t}\n}\n\n// Expect ALIAS.\nfunc yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SCALAR.\nfunc yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_select_scalar_style(emitter, event) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_scalar(emitter) {\n\t\treturn false\n\t}\n\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SEQUENCE-START.\nfunc yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE ||\n\t\tyaml_emitter_check_empty_sequence(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE\n\t}\n\treturn true\n}\n\n// Expect MAPPING-START.\nfunc yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE ||\n\t\tyaml_emitter_check_empty_mapping(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE\n\t}\n\treturn true\n}\n\n// Check if the document content is an empty scalar.\nfunc yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool {\n\treturn false // [Go] Huh?\n}\n\n// Check if the next events represent an empty sequence.\nfunc yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT\n}\n\n// Check if the next events represent an empty mapping.\nfunc yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT\n}\n\n// Check if the next node can be expressed as a simple key.\nfunc yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool {\n\tlength := 0\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tlength += len(emitter.anchor_data.anchor)\n\tcase yaml_SCALAR_EVENT:\n\t\tif emitter.scalar_data.multiline {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix) +\n\t\t\tlen(emitter.scalar_data.value)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif !yaml_emitter_check_empty_sequence(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif !yaml_emitter_check_empty_mapping(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tdefault:\n\t\treturn false\n\t}\n\treturn length <= 128\n}\n\n// Determine an acceptable scalar style.\nfunc yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\tno_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0\n\tif no_tag && !event.implicit && !event.quoted_implicit {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"neither tag nor implicit flags are specified\")\n\t}\n\n\tstyle := event.scalar_style()\n\tif style == yaml_ANY_SCALAR_STYLE {\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\t}\n\tif emitter.canonical {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\tif emitter.simple_key_context && emitter.scalar_data.multiline {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\n\tif style == yaml_PLAIN_SCALAR_STYLE {\n\t\tif emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed ||\n\t\t\temitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif no_tag && !event.implicit {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_SINGLE_QUOTED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.single_quoted_allowed {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\n\tif no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE {\n\t\temitter.tag_data.handle = []byte{'!'}\n\t}\n\temitter.scalar_data.style = style\n\treturn true\n}\n\n// Write an anchor.\nfunc yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool {\n\tif emitter.anchor_data.anchor == nil {\n\t\treturn true\n\t}\n\tc := []byte{'&'}\n\tif emitter.anchor_data.alias {\n\t\tc[0] = '*'\n\t}\n\tif !yaml_emitter_write_indicator(emitter, c, true, false, false) {\n\t\treturn false\n\t}\n\treturn yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor)\n}\n\n// Write a tag.\nfunc yaml_emitter_process_tag(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 {\n\t\treturn true\n\t}\n\tif len(emitter.tag_data.handle) > 0 {\n\t\tif !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) {\n\t\t\treturn false\n\t\t}\n\t\tif len(emitter.tag_data.suffix) > 0 {\n\t\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// [Go] Allocate these slices elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"!<\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Write a scalar.\nfunc yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool {\n\tswitch emitter.scalar_data.style {\n\tcase yaml_PLAIN_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_SINGLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_DOUBLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_LITERAL_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value)\n\n\tcase yaml_FOLDED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value)\n\t}\n\tpanic(\"unknown scalar style\")\n}\n\n// Check if a %YAML directive is valid.\nfunc yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool {\n\tif version_directive.major != 1 || version_directive.minor != 1 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"incompatible %YAML directive\")\n\t}\n\treturn true\n}\n\n// Check if a %TAG directive is valid.\nfunc yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool {\n\thandle := tag_directive.handle\n\tprefix := tag_directive.prefix\n\tif len(handle) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must not be empty\")\n\t}\n\tif handle[0] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must start with '!'\")\n\t}\n\tif handle[len(handle)-1] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must end with '!'\")\n\t}\n\tfor i := 1; i < len(handle)-1; i += width(handle[i]) {\n\t\tif !is_alpha(handle, i) {\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must contain alphanumerical characters only\")\n\t\t}\n\t}\n\tif len(prefix) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag prefix must not be empty\")\n\t}\n\treturn true\n}\n\n// Check if an anchor is valid.\nfunc yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool {\n\tif len(anchor) == 0 {\n\t\tproblem := \"anchor value must not be empty\"\n\t\tif alias {\n\t\t\tproblem = \"alias value must not be empty\"\n\t\t}\n\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t}\n\tfor i := 0; i < len(anchor); i += width(anchor[i]) {\n\t\tif !is_alpha(anchor, i) {\n\t\t\tproblem := \"anchor value must contain alphanumerical characters only\"\n\t\t\tif alias {\n\t\t\t\tproblem = \"alias value must contain alphanumerical characters only\"\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t\t}\n\t}\n\temitter.anchor_data.anchor = anchor\n\temitter.anchor_data.alias = alias\n\treturn true\n}\n\n// Check if a tag is valid.\nfunc yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool {\n\tif len(tag) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag value must not be empty\")\n\t}\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\ttag_directive := &emitter.tag_directives[i]\n\t\tif bytes.HasPrefix(tag, tag_directive.prefix) {\n\t\t\temitter.tag_data.handle = tag_directive.handle\n\t\t\temitter.tag_data.suffix = tag[len(tag_directive.prefix):]\n\t\t\treturn true\n\t\t}\n\t}\n\temitter.tag_data.suffix = tag\n\treturn true\n}\n\n// Check if a scalar is valid.\nfunc yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tvar (\n\t\tblock_indicators   = false\n\t\tflow_indicators    = false\n\t\tline_breaks        = false\n\t\tspecial_characters = false\n\n\t\tleading_space  = false\n\t\tleading_break  = false\n\t\ttrailing_space = false\n\t\ttrailing_break = false\n\t\tbreak_space    = false\n\t\tspace_break    = false\n\n\t\tpreceded_by_whitespace = false\n\t\tfollowed_by_whitespace = false\n\t\tprevious_space         = false\n\t\tprevious_break         = false\n\t)\n\n\temitter.scalar_data.value = value\n\n\tif len(value) == 0 {\n\t\temitter.scalar_data.multiline = false\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = true\n\t\temitter.scalar_data.single_quoted_allowed = true\n\t\temitter.scalar_data.block_allowed = false\n\t\treturn true\n\t}\n\n\tif len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) {\n\t\tblock_indicators = true\n\t\tflow_indicators = true\n\t}\n\n\tpreceded_by_whitespace = true\n\tfor i, w := 0, 0; i < len(value); i += w {\n\t\tw = width(value[i])\n\t\tfollowed_by_whitespace = i+w >= len(value) || is_blank(value, i+w)\n\n\t\tif i == 0 {\n\t\t\tswitch value[i] {\n\t\t\tcase '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\\'', '\"', '%', '@', '`':\n\t\t\t\tflow_indicators = true\n\t\t\t\tblock_indicators = true\n\t\t\tcase '?', ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '-':\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tswitch value[i] {\n\t\t\tcase ',', '?', '[', ']', '{', '}':\n\t\t\t\tflow_indicators = true\n\t\t\tcase ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '#':\n\t\t\t\tif preceded_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode {\n\t\t\tspecial_characters = true\n\t\t}\n\t\tif is_space(value, i) {\n\t\t\tif i == 0 {\n\t\t\t\tleading_space = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_space = true\n\t\t\t}\n\t\t\tif previous_break {\n\t\t\t\tbreak_space = true\n\t\t\t}\n\t\t\tprevious_space = true\n\t\t\tprevious_break = false\n\t\t} else if is_break(value, i) {\n\t\t\tline_breaks = true\n\t\t\tif i == 0 {\n\t\t\t\tleading_break = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_break = true\n\t\t\t}\n\t\t\tif previous_space {\n\t\t\t\tspace_break = true\n\t\t\t}\n\t\t\tprevious_space = false\n\t\t\tprevious_break = true\n\t\t} else {\n\t\t\tprevious_space = false\n\t\t\tprevious_break = false\n\t\t}\n\n\t\t// [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition.\n\t\tpreceded_by_whitespace = is_blankz(value, i)\n\t}\n\n\temitter.scalar_data.multiline = line_breaks\n\temitter.scalar_data.flow_plain_allowed = true\n\temitter.scalar_data.block_plain_allowed = true\n\temitter.scalar_data.single_quoted_allowed = true\n\temitter.scalar_data.block_allowed = true\n\n\tif leading_space || leading_break || trailing_space || trailing_break {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif trailing_space {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif break_space {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || special_characters {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif line_breaks {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif flow_indicators {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t}\n\tif block_indicators {\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\treturn true\n}\n\n// Check if the event data is valid.\nfunc yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\temitter.anchor_data.anchor = nil\n\temitter.tag_data.handle = nil\n\temitter.tag_data.suffix = nil\n\temitter.scalar_data.value = nil\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, true) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SCALAR_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_analyze_scalar(emitter, event.value) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// Write the BOM character.\nfunc yaml_emitter_write_bom(emitter *yaml_emitter_t) bool {\n\tif !flush(emitter) {\n\t\treturn false\n\t}\n\tpos := emitter.buffer_pos\n\temitter.buffer[pos+0] = '\\xEF'\n\temitter.buffer[pos+1] = '\\xBB'\n\temitter.buffer[pos+2] = '\\xBF'\n\temitter.buffer_pos += 3\n\treturn true\n}\n\nfunc yaml_emitter_write_indent(emitter *yaml_emitter_t) bool {\n\tindent := emitter.indent\n\tif indent < 0 {\n\t\tindent = 0\n\t}\n\tif !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor emitter.column < indent {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.whitespace = true\n\temitter.indention = true\n\treturn true\n}\n\nfunc yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, indicator) {\n\t\treturn false\n\t}\n\temitter.whitespace = is_whitespace\n\temitter.indention = (emitter.indention && is_indention)\n\temitter.open_ended = false\n\treturn true\n}\n\nfunc yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool {\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor i := 0; i < len(value); {\n\t\tvar must_write bool\n\t\tswitch value[i] {\n\t\tcase ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\\'', '(', ')', '[', ']':\n\t\t\tmust_write = true\n\t\tdefault:\n\t\t\tmust_write = is_alpha(value, i)\n\t\t}\n\t\tif must_write {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\tw := width(value[i])\n\t\t\tfor k := 0; k < w; k++ {\n\t\t\t\toctet := value[i]\n\t\t\t\ti++\n\t\t\t\tif !put(emitter, '%') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc := octet >> 4\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc = octet & 0x0f\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\temitter.whitespace = false\n\temitter.indention = false\n\tif emitter.root_context {\n\t\temitter.open_ended = true\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, true, false, false) {\n\t\treturn false\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif value[i] == '\\'' {\n\t\t\t\tif !put(emitter, '\\'') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tspaces := false\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, true, false, false) {\n\t\treturn false\n\t}\n\n\tfor i := 0; i < len(value); {\n\t\tif !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) ||\n\t\t\tis_bom(value, i) || is_break(value, i) ||\n\t\t\tvalue[i] == '\"' || value[i] == '\\\\' {\n\n\t\t\toctet := value[i]\n\n\t\t\tvar w int\n\t\t\tvar v rune\n\t\t\tswitch {\n\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\tw, v = 1, rune(octet&0x7F)\n\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\tw, v = 2, rune(octet&0x1F)\n\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\tw, v = 3, rune(octet&0x0F)\n\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\tw, v = 4, rune(octet&0x07)\n\t\t\t}\n\t\t\tfor k := 1; k < w; k++ {\n\t\t\t\toctet = value[i+k]\n\t\t\t\tv = (v << 6) + (rune(octet) & 0x3F)\n\t\t\t}\n\t\t\ti += w\n\n\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tvar ok bool\n\t\t\tswitch v {\n\t\t\tcase 0x00:\n\t\t\t\tok = put(emitter, '0')\n\t\t\tcase 0x07:\n\t\t\t\tok = put(emitter, 'a')\n\t\t\tcase 0x08:\n\t\t\t\tok = put(emitter, 'b')\n\t\t\tcase 0x09:\n\t\t\t\tok = put(emitter, 't')\n\t\t\tcase 0x0A:\n\t\t\t\tok = put(emitter, 'n')\n\t\t\tcase 0x0b:\n\t\t\t\tok = put(emitter, 'v')\n\t\t\tcase 0x0c:\n\t\t\t\tok = put(emitter, 'f')\n\t\t\tcase 0x0d:\n\t\t\t\tok = put(emitter, 'r')\n\t\t\tcase 0x1b:\n\t\t\t\tok = put(emitter, 'e')\n\t\t\tcase 0x22:\n\t\t\t\tok = put(emitter, '\"')\n\t\t\tcase 0x5c:\n\t\t\t\tok = put(emitter, '\\\\')\n\t\t\tcase 0x85:\n\t\t\t\tok = put(emitter, 'N')\n\t\t\tcase 0xA0:\n\t\t\t\tok = put(emitter, '_')\n\t\t\tcase 0x2028:\n\t\t\t\tok = put(emitter, 'L')\n\t\t\tcase 0x2029:\n\t\t\t\tok = put(emitter, 'P')\n\t\t\tdefault:\n\t\t\t\tif v <= 0xFF {\n\t\t\t\t\tok = put(emitter, 'x')\n\t\t\t\t\tw = 2\n\t\t\t\t} else if v <= 0xFFFF {\n\t\t\t\t\tok = put(emitter, 'u')\n\t\t\t\t\tw = 4\n\t\t\t\t} else {\n\t\t\t\t\tok = put(emitter, 'U')\n\t\t\t\t\tw = 8\n\t\t\t\t}\n\t\t\t\tfor k := (w - 1) * 4; ok && k >= 0; k -= 4 {\n\t\t\t\t\tdigit := byte((v >> uint(k)) & 0x0F)\n\t\t\t\t\tif digit < 10 {\n\t\t\t\t\t\tok = put(emitter, digit+'0')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tok = put(emitter, digit+'A'-10)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t} else if is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_space(value, i+1) {\n\t\t\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else if !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool {\n\tif is_space(value, 0) || is_break(value, 0) {\n\t\tindent_hint := []byte{'0' + byte(emitter.best_indent)}\n\t\tif !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\temitter.open_ended = false\n\n\tvar chomp_hint [1]byte\n\tif len(value) == 0 {\n\t\tchomp_hint[0] = '-'\n\t} else {\n\t\ti := len(value) - 1\n\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\ti--\n\t\t}\n\t\tif !is_break(value, i) {\n\t\t\tchomp_hint[0] = '-'\n\t\t} else if i == 0 {\n\t\t\tchomp_hint[0] = '+'\n\t\t\temitter.open_ended = true\n\t\t} else {\n\t\t\ti--\n\t\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\t\ti--\n\t\t\t}\n\t\t\tif is_break(value, i) {\n\t\t\t\tchomp_hint[0] = '+'\n\t\t\t\temitter.open_ended = true\n\t\t\t}\n\t\t}\n\t}\n\tif chomp_hint[0] != 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !put_break(emitter) {\n\t\treturn false\n\t}\n\temitter.indention = true\n\temitter.whitespace = true\n\tbreaks := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\n\tif !put_break(emitter) {\n\t\treturn false\n\t}\n\temitter.indention = true\n\temitter.whitespace = true\n\n\tbreaks := true\n\tleading_spaces := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !breaks && !leading_spaces && value[i] == '\\n' {\n\t\t\t\tk := 0\n\t\t\t\tfor is_break(value, k) {\n\t\t\t\t\tk += width(value[k])\n\t\t\t\t}\n\t\t\t\tif !is_blankz(value, k) {\n\t\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tleading_spaces = is_blank(value, i)\n\t\t\t}\n\t\t\tif !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/encode.go",
    "content": "package yaml\n\nimport (\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\n// jsonNumber is the interface of the encoding/json.Number datatype.\n// Repeating the interface here avoids a dependency on encoding/json, and also\n// supports other libraries like jsoniter, which use a similar datatype with\n// the same interface. Detecting this interface is useful when dealing with\n// structures containing json.Number, which is a string under the hood. The\n// encoder should prefer the use of Int64(), Float64() and string(), in that\n// order, when encoding this type.\ntype jsonNumber interface {\n\tFloat64() (float64, error)\n\tInt64() (int64, error)\n\tString() string\n}\n\ntype encoder struct {\n\temitter yaml_emitter_t\n\tevent   yaml_event_t\n\tout     []byte\n\tflow    bool\n\t// doneInit holds whether the initial stream_start_event has been\n\t// emitted.\n\tdoneInit bool\n\n\t// includOmitted tells us whether we want to include fields that were marked as 'omitEmpty'\n\tincludeOmitted bool\n}\n\nfunc newEncoder() *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_string(&e.emitter, &e.out)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc newEncoderWithWriter(w io.Writer) *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_writer(&e.emitter, w)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc (e *encoder) init() {\n\tif e.doneInit {\n\t\treturn\n\t}\n\tyaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)\n\te.emit()\n\te.doneInit = true\n}\n\nfunc (e *encoder) finish() {\n\te.emitter.open_ended = false\n\tyaml_stream_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) destroy() {\n\tyaml_emitter_delete(&e.emitter)\n}\n\nfunc (e *encoder) emit() {\n\t// This will internally delete the e.event value.\n\te.must(yaml_emitter_emit(&e.emitter, &e.event))\n}\n\nfunc (e *encoder) must(ok bool) {\n\tif !ok {\n\t\tmsg := e.emitter.problem\n\t\tif msg == \"\" {\n\t\t\tmsg = \"unknown problem generating YAML content\"\n\t\t}\n\t\tfailf(\"%s\", msg)\n\t}\n}\n\nfunc (e *encoder) marshalDoc(tag string, in reflect.Value) {\n\te.init()\n\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\te.emit()\n\te.marshal(tag, in)\n\tyaml_document_end_event_initialize(&e.event, true)\n\te.emit()\n}\n\nfunc (e *encoder) marshal(tag string, in reflect.Value) {\n\tif !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() {\n\t\te.nilv()\n\t\treturn\n\t}\n\tiface := in.Interface()\n\tswitch m := iface.(type) {\n\tcase jsonNumber:\n\t\tinteger, err := m.Int64()\n\t\tif err == nil {\n\t\t\t// In this case the json.Number is a valid int64\n\t\t\tin = reflect.ValueOf(integer)\n\t\t\tbreak\n\t\t}\n\t\tfloat, err := m.Float64()\n\t\tif err == nil {\n\t\t\t// In this case the json.Number is a valid float64\n\t\t\tin = reflect.ValueOf(float)\n\t\t\tbreak\n\t\t}\n\t\t// fallback case - no number could be obtained\n\t\tin = reflect.ValueOf(m.String())\n\tcase time.Time, *time.Time:\n\t\t// Although time.Time implements TextMarshaler,\n\t\t// we don't want to treat it as a string for YAML\n\t\t// purposes because YAML has special support for\n\t\t// timestamps.\n\tcase Marshaler:\n\t\tv, err := m.MarshalYAML()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tif v == nil {\n\t\t\te.nilv()\n\t\t\treturn\n\t\t}\n\t\tin = reflect.ValueOf(v)\n\tcase encoding.TextMarshaler:\n\t\ttext, err := m.MarshalText()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tin = reflect.ValueOf(string(text))\n\tcase nil:\n\t\te.nilv()\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Interface:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Map:\n\t\te.mapv(tag, in)\n\tcase reflect.Ptr:\n\t\tif in.Type() == ptrTimeType {\n\t\t\te.timev(tag, in.Elem())\n\t\t} else {\n\t\t\te.marshal(tag, in.Elem())\n\t\t}\n\tcase reflect.Struct:\n\t\tif in.Type() == timeType {\n\t\t\te.timev(tag, in)\n\t\t} else {\n\t\t\te.structv(tag, in)\n\t\t}\n\tcase reflect.Slice, reflect.Array:\n\t\tif in.Type().Elem() == mapItemType {\n\t\t\te.itemsv(tag, in)\n\t\t} else {\n\t\t\te.slicev(tag, in)\n\t\t}\n\tcase reflect.String:\n\t\te.stringv(tag, in)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tif in.Type() == durationType {\n\t\t\te.stringv(tag, reflect.ValueOf(iface.(time.Duration).String()))\n\t\t} else {\n\t\t\te.intv(tag, in)\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\te.uintv(tag, in)\n\tcase reflect.Float32, reflect.Float64:\n\t\te.floatv(tag, in)\n\tcase reflect.Bool:\n\t\te.boolv(tag, in)\n\tdefault:\n\t\tpanic(\"cannot marshal type: \" + in.Type().String())\n\t}\n}\n\nfunc (e *encoder) mapv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tkeys := keyList(in.MapKeys())\n\t\tsort.Sort(keys)\n\t\tfor _, k := range keys {\n\t\t\te.marshal(\"\", k)\n\t\t\te.marshal(\"\", in.MapIndex(k))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) itemsv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tslice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem)\n\t\tfor _, item := range slice {\n\t\t\te.marshal(\"\", reflect.ValueOf(item.Key))\n\t\t\te.marshal(\"\", reflect.ValueOf(item.Value))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) structv(tag string, in reflect.Value) {\n\tsinfo, err := getStructInfo(in.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\te.mappingv(tag, func() {\n\t\tfor _, info := range sinfo.FieldsList {\n\t\t\tvar value reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tvalue = in.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tvalue = in.FieldByIndex(info.Inline)\n\t\t\t}\n\t\t\tif info.OmitEmpty && isZero(value) && !e.includeOmitted {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\te.marshal(\"\", reflect.ValueOf(info.Key))\n\t\t\te.flow = info.Flow\n\t\t\te.marshal(\"\", value)\n\t\t}\n\t\tif sinfo.InlineMap >= 0 {\n\t\t\tm := in.Field(sinfo.InlineMap)\n\t\t\tif m.Len() > 0 {\n\t\t\t\te.flow = false\n\t\t\t\tkeys := keyList(m.MapKeys())\n\t\t\t\tsort.Sort(keys)\n\t\t\t\tfor _, k := range keys {\n\t\t\t\t\tif _, found := sinfo.FieldsMap[k.String()]; found {\n\t\t\t\t\t\tpanic(fmt.Sprintf(\"Can't have key %q in inlined map; conflicts with struct field\", k.String()))\n\t\t\t\t\t}\n\t\t\t\t\te.marshal(\"\", k)\n\t\t\t\t\te.flow = false\n\t\t\t\t\te.marshal(\"\", m.MapIndex(k))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc (e *encoder) mappingv(tag string, f func()) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_MAPPING_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t}\n\tyaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)\n\te.emit()\n\tf()\n\tyaml_mapping_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) slicev(tag string, in reflect.Value) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t}\n\te.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style))\n\te.emit()\n\tn := in.Len()\n\tfor i := 0; i < n; i++ {\n\t\te.marshal(\"\", in.Index(i))\n\t}\n\te.must(yaml_sequence_end_event_initialize(&e.event))\n\te.emit()\n}\n\n// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1.\n//\n// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported\n// in YAML 1.2 and by this package, but these should be marshalled quoted for\n// the time being for compatibility with other parsers.\nfunc isBase60Float(s string) (result bool) {\n\t// Fast path.\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tc := s[0]\n\tif !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 {\n\t\treturn false\n\t}\n\t// Do the full match.\n\treturn base60float.MatchString(s)\n}\n\n// From http://yaml.org/type/float.html, except the regular expression there\n// is bogus. In practice parsers do not enforce the \"\\.[0-9_]*\" suffix.\nvar base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\\.[0-9_]*)?$`)\n\nfunc (e *encoder) stringv(tag string, in reflect.Value) {\n\tvar style yaml_scalar_style_t\n\ts := in.String()\n\tcanUsePlain := true\n\tswitch {\n\tcase !utf8.ValidString(s):\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t}\n\t\tif tag != \"\" {\n\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", shortTag(tag))\n\t\t}\n\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t// and encode it as base64.\n\t\ttag = yaml_BINARY_TAG\n\t\ts = encodeBase64(s)\n\tcase tag == \"\":\n\t\t// Check to see if it would resolve to a specific\n\t\t// tag when encoded unquoted. If it doesn't,\n\t\t// there's no need to quote it.\n\t\trtag, _ := resolve(\"\", s)\n\t\tcanUsePlain = rtag == yaml_STR_TAG && !isBase60Float(s)\n\t}\n\t// Note: it's possible for user code to emit invalid YAML\n\t// if they explicitly specify a tag and a string containing\n\t// text that's incompatible with that tag.\n\tswitch {\n\tcase strings.Contains(s, \"\\n\"):\n\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\tcase canUsePlain:\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\tdefault:\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\te.emitScalar(s, \"\", tag, style)\n}\n\nfunc (e *encoder) boolv(tag string, in reflect.Value) {\n\tvar s string\n\tif in.Bool() {\n\t\ts = \"true\"\n\t} else {\n\t\ts = \"false\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) intv(tag string, in reflect.Value) {\n\ts := strconv.FormatInt(in.Int(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) uintv(tag string, in reflect.Value) {\n\ts := strconv.FormatUint(in.Uint(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) timev(tag string, in reflect.Value) {\n\tt := in.Interface().(time.Time)\n\ts := t.Format(time.RFC3339Nano)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) floatv(tag string, in reflect.Value) {\n\t// Issue #352: When formatting, use the precision of the underlying value\n\tprecision := 64\n\tif in.Kind() == reflect.Float32 {\n\t\tprecision = 32\n\t}\n\n\ts := strconv.FormatFloat(in.Float(), 'g', -1, precision)\n\tswitch s {\n\tcase \"+Inf\":\n\t\ts = \".inf\"\n\tcase \"-Inf\":\n\t\ts = \"-.inf\"\n\tcase \"NaN\":\n\t\ts = \".nan\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) nilv() {\n\te.emitScalar(\"null\", \"\", \"\", yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) {\n\timplicit := tag == \"\"\n\te.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style))\n\te.emit()\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/parserc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n)\n\n// The parser implements the following grammar:\n//\n// stream               ::= STREAM-START implicit_document? explicit_document* STREAM-END\n// implicit_document    ::= block_node DOCUMENT-END*\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          | properties (block_content | indentless_block_sequence)?\n//                          | block_content\n//                          | indentless_block_sequence\n// block_node           ::= ALIAS\n//                          | properties block_content?\n//                          | block_content\n// flow_node            ::= ALIAS\n//                          | properties flow_content?\n//                          | flow_content\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n// block_content        ::= block_collection | flow_collection | SCALAR\n// flow_content         ::= flow_collection | SCALAR\n// block_collection     ::= block_sequence | block_mapping\n// flow_collection      ::= flow_sequence | flow_mapping\n// block_sequence       ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                          BLOCK-END\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                          flow_sequence_entry?\n//                          FLOW-SEQUENCE-END\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                          flow_mapping_entry?\n//                          FLOW-MAPPING-END\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n\n// Peek the next token in the token queue.\nfunc peek_token(parser *yaml_parser_t) *yaml_token_t {\n\tif parser.token_available || yaml_parser_fetch_more_tokens(parser) {\n\t\treturn &parser.tokens[parser.tokens_head]\n\t}\n\treturn nil\n}\n\n// Remove the next token from the queue (must be called after peek_token).\nfunc skip_token(parser *yaml_parser_t) {\n\tparser.token_available = false\n\tparser.tokens_parsed++\n\tparser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN\n\tparser.tokens_head++\n}\n\n// Get the next event.\nfunc yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t// Erase the event object.\n\t*event = yaml_event_t{}\n\n\t// No events after the end of the stream or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE {\n\t\treturn true\n\t}\n\n\t// Generate the next event.\n\treturn yaml_parser_state_machine(parser, event)\n}\n\n// Set parser error.\nfunc yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\nfunc yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\n// State dispatcher.\nfunc yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t//trace(\"yaml_parser_state_machine\", \"state:\", parser.state.String())\n\n\tswitch parser.state {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn yaml_parser_parse_stream_start(parser, event)\n\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, true)\n\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, false)\n\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_parser_parse_document_content(parser, event)\n\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn yaml_parser_parse_document_end(parser, event)\n\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_indentless_sequence_entry(parser, event)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_block_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event)\n\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, true)\n\n\tdefault:\n\t\tpanic(\"invalid parser state\")\n\t}\n}\n\n// Parse the production:\n// stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END\n//              ************\nfunc yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_STREAM_START_TOKEN {\n\t\treturn yaml_parser_set_parser_error(parser, \"did not find expected <stream-start>\", token.start_mark)\n\t}\n\tparser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_STREAM_START_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t\tencoding:   token.encoding,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                          *\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                          *************************\nfunc yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool {\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// Parse extra document end indicators.\n\tif !implicit {\n\t\tfor token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tif implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_TAG_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_DOCUMENT_START_TOKEN &&\n\t\ttoken.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an implicit document.\n\t\tif !yaml_parser_process_directives(parser, nil, nil) {\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_BLOCK_NODE_STATE\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t} else if token.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an explicit document.\n\t\tvar version_directive *yaml_version_directive_t\n\t\tvar tag_directives []yaml_tag_directive_t\n\t\tstart_mark := token.start_mark\n\t\tif !yaml_parser_process_directives(parser, &version_directive, &tag_directives) {\n\t\t\treturn false\n\t\t}\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_DOCUMENT_START_TOKEN {\n\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\"did not find expected <document start>\", token.start_mark)\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE\n\t\tend_mark := token.end_mark\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark:        start_mark,\n\t\t\tend_mark:          end_mark,\n\t\t\tversion_directive: version_directive,\n\t\t\ttag_directives:    tag_directives,\n\t\t\timplicit:          false,\n\t\t}\n\t\tskip_token(parser)\n\n\t} else {\n\t\t// Parse the stream end.\n\t\tparser.state = yaml_PARSE_END_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_STREAM_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t}\n\n\treturn true\n}\n\n// Parse the productions:\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                                                    ***********\n//\nfunc yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_TAG_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_START_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_END_TOKEN ||\n\t\ttoken.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\treturn yaml_parser_process_empty_scalar(parser, event,\n\t\t\ttoken.start_mark)\n\t}\n\treturn yaml_parser_parse_node(parser, event, true, false)\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                                     *************\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//\nfunc yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\timplicit := true\n\tif token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\timplicit = false\n\t}\n\n\tparser.tag_directives = parser.tag_directives[:0]\n\n\tparser.state = yaml_PARSE_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_DOCUMENT_END_EVENT,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\timplicit:   implicit,\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          *****\n//                          | properties (block_content | indentless_block_sequence)?\n//                            **********  *\n//                          | block_content | indentless_block_sequence\n//                            *\n// block_node           ::= ALIAS\n//                          *****\n//                          | properties block_content?\n//                            ********** *\n//                          | block_content\n//                            *\n// flow_node            ::= ALIAS\n//                          *****\n//                          | properties flow_content?\n//                            ********** *\n//                          | flow_content\n//                            *\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n//                          *************************\n// block_content        ::= block_collection | flow_collection | SCALAR\n//                                                               ******\n// flow_content         ::= flow_collection | SCALAR\n//                                            ******\nfunc yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool {\n\t//defer trace(\"yaml_parser_parse_node\", \"block:\", block, \"indentless_sequence:\", indentless_sequence)()\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_ALIAS_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_ALIAS_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t\tanchor:     token.value,\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\tvar tag_token bool\n\tvar tag_handle, tag_suffix, anchor []byte\n\tvar tag_mark yaml_mark_t\n\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\tanchor = token.value\n\t\tstart_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_TAG_TOKEN {\n\t\t\ttag_token = true\n\t\t\ttag_handle = token.value\n\t\t\ttag_suffix = token.suffix\n\t\t\ttag_mark = token.start_mark\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else if token.typ == yaml_TAG_TOKEN {\n\t\ttag_token = true\n\t\ttag_handle = token.value\n\t\ttag_suffix = token.suffix\n\t\tstart_mark = token.start_mark\n\t\ttag_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\t\tanchor = token.value\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tvar tag []byte\n\tif tag_token {\n\t\tif len(tag_handle) == 0 {\n\t\t\ttag = tag_suffix\n\t\t\ttag_suffix = nil\n\t\t} else {\n\t\t\tfor i := range parser.tag_directives {\n\t\t\t\tif bytes.Equal(parser.tag_directives[i].handle, tag_handle) {\n\t\t\t\t\ttag = append([]byte(nil), parser.tag_directives[i].prefix...)\n\t\t\t\t\ttag = append(tag, tag_suffix...)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(tag) == 0 {\n\t\t\t\tyaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a node\", start_mark,\n\t\t\t\t\t\"found undefined tag handle\", tag_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\timplicit := len(tag) == 0\n\tif indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_SCALAR_TOKEN {\n\t\tvar plain_implicit, quoted_implicit bool\n\t\tend_mark = token.end_mark\n\t\tif (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') {\n\t\t\tplain_implicit = true\n\t\t} else if len(tag) == 0 {\n\t\t\tquoted_implicit = true\n\t\t}\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\tvalue:           token.value,\n\t\t\timplicit:        plain_implicit,\n\t\t\tquoted_implicit: quoted_implicit,\n\t\t\tstyle:           yaml_style_t(token.style),\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_SEQUENCE_START_TOKEN {\n\t\t// [Go] Some of the events below can be merged as they differ only on style.\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_MAPPING_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif len(anchor) > 0 || len(tag) > 0 {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\timplicit:        implicit,\n\t\t\tquoted_implicit: false,\n\t\t\tstyle:           yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\n\tcontext := \"while parsing a flow node\"\n\tif block {\n\t\tcontext = \"while parsing a block node\"\n\t}\n\tyaml_parser_set_parser_error_context(parser, context, start_mark,\n\t\t\"did not find expected node content\", token.start_mark)\n\treturn false\n}\n\n// Parse the productions:\n// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n//                    ********************  *********** *             *********\n//\nfunc yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t}\n\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block collection\", context_mark,\n\t\t\"did not find expected '-' indicator\", token.start_mark)\n}\n\n// Parse the productions:\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n//                           *********** *\nfunc yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN &&\n\t\t\ttoken.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t}\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be token.end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          *******************\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                            *** *\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//\n//                          BLOCK-END\n//                          *********\n//\nfunc yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_KEY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t} else if token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block mapping\", context_mark,\n\t\t\"did not find expected key\", token.start_mark)\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//\n//                          ((KEY block_node_or_indentless_sequence?)?\n//\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                           ***** *\n//                          BLOCK-END\n//\n//\nfunc yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t}\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          *******************\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                           *                   **********\n//                          flow_sequence_entry?\n//                          *\n//                          FLOW-SEQUENCE-END\n//                          *****************\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *\n//\nfunc yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow sequence\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or ']'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\n\t\t\t*event = yaml_event_t{\n\t\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\t\tstart_mark: token.start_mark,\n\t\t\t\tend_mark:   token.end_mark,\n\t\t\t\timplicit:   true,\n\t\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t\t}\n\t\t\tskip_token(parser)\n\t\t\treturn true\n\t\t} else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\n\tskip_token(parser)\n\treturn true\n}\n\n//\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                      *** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_VALUE_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE)\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t}\n\tmark := token.end_mark\n\tskip_token(parser)\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                      ***** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                                      *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          ******************\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                           *                  **********\n//                          flow_mapping_entry?\n//                          ******************\n//                          FLOW-MAPPING-END\n//                          ****************\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *           *** *\n//\nfunc yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow mapping\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or '}'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.typ != yaml_VALUE_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE)\n\t\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t\t} else {\n\t\t\t\tparser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE\n\t\t\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t\t\t}\n\t\t} else if token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                   *                  ***** *\n//\nfunc yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif empty {\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Generate an empty scalar event.\nfunc yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SCALAR_EVENT,\n\t\tstart_mark: mark,\n\t\tend_mark:   mark,\n\t\tvalue:      nil, // Empty\n\t\timplicit:   true,\n\t\tstyle:      yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t}\n\treturn true\n}\n\nvar default_tag_directives = []yaml_tag_directive_t{\n\t{[]byte(\"!\"), []byte(\"!\")},\n\t{[]byte(\"!!\"), []byte(\"tag:yaml.org,2002:\")},\n}\n\n// Parse directives.\nfunc yaml_parser_process_directives(parser *yaml_parser_t,\n\tversion_directive_ref **yaml_version_directive_t,\n\ttag_directives_ref *[]yaml_tag_directive_t) bool {\n\n\tvar version_directive *yaml_version_directive_t\n\tvar tag_directives []yaml_tag_directive_t\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tfor token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN {\n\t\t\tif version_directive != nil {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found duplicate %YAML directive\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.major != 1 || token.minor != 1 {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found incompatible YAML document\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tversion_directive = &yaml_version_directive_t{\n\t\t\t\tmajor: token.major,\n\t\t\t\tminor: token.minor,\n\t\t\t}\n\t\t} else if token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\t\tvalue := yaml_tag_directive_t{\n\t\t\t\thandle: token.value,\n\t\t\t\tprefix: token.prefix,\n\t\t\t}\n\t\t\tif !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\ttag_directives = append(tag_directives, value)\n\t\t}\n\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tfor i := range default_tag_directives {\n\t\tif !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif version_directive_ref != nil {\n\t\t*version_directive_ref = version_directive\n\t}\n\tif tag_directives_ref != nil {\n\t\t*tag_directives_ref = tag_directives\n\t}\n\treturn true\n}\n\n// Append a tag directive to the directives stack.\nfunc yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool {\n\tfor i := range parser.tag_directives {\n\t\tif bytes.Equal(value.handle, parser.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_parser_set_parser_error(parser, \"found duplicate %TAG directive\", mark)\n\t\t}\n\t}\n\n\t// [Go] I suspect the copy is unnecessary. This was likely done\n\t// because there was no way to track ownership of the data.\n\tvalue_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(value_copy.handle, value.handle)\n\tcopy(value_copy.prefix, value.prefix)\n\tparser.tag_directives = append(parser.tag_directives, value_copy)\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/readerc.go",
    "content": "package yaml\n\nimport (\n\t\"io\"\n)\n\n// Set the reader error and return 0.\nfunc yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool {\n\tparser.error = yaml_READER_ERROR\n\tparser.problem = problem\n\tparser.problem_offset = offset\n\tparser.problem_value = value\n\treturn false\n}\n\n// Byte order marks.\nconst (\n\tbom_UTF8    = \"\\xef\\xbb\\xbf\"\n\tbom_UTF16LE = \"\\xff\\xfe\"\n\tbom_UTF16BE = \"\\xfe\\xff\"\n)\n\n// Determine the input stream encoding by checking the BOM symbol. If no BOM is\n// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure.\nfunc yaml_parser_determine_encoding(parser *yaml_parser_t) bool {\n\t// Ensure that we had enough bytes in the raw buffer.\n\tfor !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 {\n\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Determine the encoding.\n\tbuf := parser.raw_buffer\n\tpos := parser.raw_buffer_pos\n\tavail := len(buf) - pos\n\tif avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] {\n\t\tparser.encoding = yaml_UTF16LE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] {\n\t\tparser.encoding = yaml_UTF16BE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t\tparser.raw_buffer_pos += 3\n\t\tparser.offset += 3\n\t} else {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t}\n\treturn true\n}\n\n// Update the raw buffer.\nfunc yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool {\n\tsize_read := 0\n\n\t// Return if the raw buffer is full.\n\tif parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) {\n\t\treturn true\n\t}\n\n\t// Return on EOF.\n\tif parser.eof {\n\t\treturn true\n\t}\n\n\t// Move the remaining bytes in the raw buffer to the beginning.\n\tif parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) {\n\t\tcopy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:])\n\t}\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos]\n\tparser.raw_buffer_pos = 0\n\n\t// Call the read handler to fill the buffer.\n\tsize_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)])\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read]\n\tif err == io.EOF {\n\t\tparser.eof = true\n\t} else if err != nil {\n\t\treturn yaml_parser_set_reader_error(parser, \"input error: \"+err.Error(), parser.offset, -1)\n\t}\n\treturn true\n}\n\n// Ensure that the buffer contains at least `length` characters.\n// Return true on success, false on failure.\n//\n// The length is supposed to be significantly less that the buffer size.\nfunc yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {\n\tif parser.read_handler == nil {\n\t\tpanic(\"read handler must be set\")\n\t}\n\n\t// [Go] This function was changed to guarantee the requested length size at EOF.\n\t// The fact we need to do this is pretty awful, but the description above implies\n\t// for that to be the case, and there are tests \n\n\t// If the EOF flag is set and the raw buffer is empty, do nothing.\n\tif parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t// [Go] ACTUALLY! Read the documentation of this function above.\n\t\t// This is just broken. To return true, we need to have the\n\t\t// given length in the buffer. Not doing that means every single\n\t\t// check that calls this function to make sure the buffer has a\n\t\t// given length is Go) panicking; or C) accessing invalid memory.\n\t\t//return true\n\t}\n\n\t// Return if the buffer contains enough characters.\n\tif parser.unread >= length {\n\t\treturn true\n\t}\n\n\t// Determine the input encoding if it is not known yet.\n\tif parser.encoding == yaml_ANY_ENCODING {\n\t\tif !yaml_parser_determine_encoding(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Move the unread characters to the beginning of the buffer.\n\tbuffer_len := len(parser.buffer)\n\tif parser.buffer_pos > 0 && parser.buffer_pos < buffer_len {\n\t\tcopy(parser.buffer, parser.buffer[parser.buffer_pos:])\n\t\tbuffer_len -= parser.buffer_pos\n\t\tparser.buffer_pos = 0\n\t} else if parser.buffer_pos == buffer_len {\n\t\tbuffer_len = 0\n\t\tparser.buffer_pos = 0\n\t}\n\n\t// Open the whole buffer for writing, and cut it before returning.\n\tparser.buffer = parser.buffer[:cap(parser.buffer)]\n\n\t// Fill the buffer until it has enough characters.\n\tfirst := true\n\tfor parser.unread < length {\n\n\t\t// Fill the raw buffer if necessary.\n\t\tif !first || parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\t\tparser.buffer = parser.buffer[:buffer_len]\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tfirst = false\n\n\t\t// Decode the raw buffer.\n\tinner:\n\t\tfor parser.raw_buffer_pos != len(parser.raw_buffer) {\n\t\t\tvar value rune\n\t\t\tvar width int\n\n\t\t\traw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos\n\n\t\t\t// Decode the next character.\n\t\t\tswitch parser.encoding {\n\t\t\tcase yaml_UTF8_ENCODING:\n\t\t\t\t// Decode a UTF-8 character.  Check RFC 3629\n\t\t\t\t// (http://www.ietf.org/rfc/rfc3629.txt) for more details.\n\t\t\t\t//\n\t\t\t\t// The following table (taken from the RFC) is used for\n\t\t\t\t// decoding.\n\t\t\t\t//\n\t\t\t\t//    Char. number range |        UTF-8 octet sequence\n\t\t\t\t//      (hexadecimal)    |              (binary)\n\t\t\t\t//   --------------------+------------------------------------\n\t\t\t\t//   0000 0000-0000 007F | 0xxxxxxx\n\t\t\t\t//   0000 0080-0000 07FF | 110xxxxx 10xxxxxx\n\t\t\t\t//   0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//   0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//\n\t\t\t\t// Additionally, the characters in the range 0xD800-0xDFFF\n\t\t\t\t// are prohibited as they are reserved for use with UTF-16\n\t\t\t\t// surrogate pairs.\n\n\t\t\t\t// Determine the length of the UTF-8 sequence.\n\t\t\t\toctet := parser.raw_buffer[parser.raw_buffer_pos]\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\twidth = 1\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\twidth = 2\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\twidth = 3\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\twidth = 4\n\t\t\t\tdefault:\n\t\t\t\t\t// The leading octet is invalid.\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid leading UTF-8 octet\",\n\t\t\t\t\t\tparser.offset, int(octet))\n\t\t\t\t}\n\n\t\t\t\t// Check if the raw buffer contains an incomplete character.\n\t\t\t\tif width > raw_unread {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-8 octet sequence\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Decode the leading octet.\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\tvalue = rune(octet & 0x7F)\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\tvalue = rune(octet & 0x1F)\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\tvalue = rune(octet & 0x0F)\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\tvalue = rune(octet & 0x07)\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = 0\n\t\t\t\t}\n\n\t\t\t\t// Check and decode the trailing octets.\n\t\t\t\tfor k := 1; k < width; k++ {\n\t\t\t\t\toctet = parser.raw_buffer[parser.raw_buffer_pos+k]\n\n\t\t\t\t\t// Check if the octet is valid.\n\t\t\t\t\tif (octet & 0xC0) != 0x80 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"invalid trailing UTF-8 octet\",\n\t\t\t\t\t\t\tparser.offset+k, int(octet))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Decode the octet.\n\t\t\t\t\tvalue = (value << 6) + rune(octet&0x3F)\n\t\t\t\t}\n\n\t\t\t\t// Check the length of the sequence against the value.\n\t\t\t\tswitch {\n\t\t\t\tcase width == 1:\n\t\t\t\tcase width == 2 && value >= 0x80:\n\t\t\t\tcase width == 3 && value >= 0x800:\n\t\t\t\tcase width == 4 && value >= 0x10000:\n\t\t\t\tdefault:\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid length of a UTF-8 sequence\",\n\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t}\n\n\t\t\t\t// Check the range of the value.\n\t\t\t\tif value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid Unicode character\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\tcase yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING:\n\t\t\t\tvar low, high int\n\t\t\t\tif parser.encoding == yaml_UTF16LE_ENCODING {\n\t\t\t\t\tlow, high = 0, 1\n\t\t\t\t} else {\n\t\t\t\t\tlow, high = 1, 0\n\t\t\t\t}\n\n\t\t\t\t// The UTF-16 encoding is not as simple as one might\n\t\t\t\t// naively think.  Check RFC 2781\n\t\t\t\t// (http://www.ietf.org/rfc/rfc2781.txt).\n\t\t\t\t//\n\t\t\t\t// Normally, two subsequent bytes describe a Unicode\n\t\t\t\t// character.  However a special technique (called a\n\t\t\t\t// surrogate pair) is used for specifying character\n\t\t\t\t// values larger than 0xFFFF.\n\t\t\t\t//\n\t\t\t\t// A surrogate pair consists of two pseudo-characters:\n\t\t\t\t//      high surrogate area (0xD800-0xDBFF)\n\t\t\t\t//      low surrogate area (0xDC00-0xDFFF)\n\t\t\t\t//\n\t\t\t\t// The following formulas are used for decoding\n\t\t\t\t// and encoding characters using surrogate pairs:\n\t\t\t\t//\n\t\t\t\t//  U  = U' + 0x10000   (0x01 00 00 <= U <= 0x10 FF FF)\n\t\t\t\t//  U' = yyyyyyyyyyxxxxxxxxxx   (0 <= U' <= 0x0F FF FF)\n\t\t\t\t//  W1 = 110110yyyyyyyyyy\n\t\t\t\t//  W2 = 110111xxxxxxxxxx\n\t\t\t\t//\n\t\t\t\t// where U is the character value, W1 is the high surrogate\n\t\t\t\t// area, W2 is the low surrogate area.\n\n\t\t\t\t// Check for incomplete UTF-16 character.\n\t\t\t\tif raw_unread < 2 {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-16 character\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Get the character.\n\t\t\t\tvalue = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) +\n\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8)\n\n\t\t\t\t// Check for unexpected low surrogate area.\n\t\t\t\tif value&0xFC00 == 0xDC00 {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"unexpected low surrogate area\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\t\t// Check for a high surrogate area.\n\t\t\t\tif value&0xFC00 == 0xD800 {\n\t\t\t\t\twidth = 4\n\n\t\t\t\t\t// Check for incomplete surrogate pair.\n\t\t\t\t\tif raw_unread < 4 {\n\t\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\t\"incomplete UTF-16 surrogate pair\",\n\t\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak inner\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get the next character.\n\t\t\t\t\tvalue2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) +\n\t\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8)\n\n\t\t\t\t\t// Check for a low surrogate area.\n\t\t\t\t\tif value2&0xFC00 != 0xDC00 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"expected low surrogate area\",\n\t\t\t\t\t\t\tparser.offset+2, int(value2))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Generate the value of the surrogate pair.\n\t\t\t\t\tvalue = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF)\n\t\t\t\t} else {\n\t\t\t\t\twidth = 2\n\t\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tpanic(\"impossible\")\n\t\t\t}\n\n\t\t\t// Check if the character is in the allowed range:\n\t\t\t//      #x9 | #xA | #xD | [#x20-#x7E]               (8 bit)\n\t\t\t//      | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD]    (16 bit)\n\t\t\t//      | [#x10000-#x10FFFF]                        (32 bit)\n\t\t\tswitch {\n\t\t\tcase value == 0x09:\n\t\t\tcase value == 0x0A:\n\t\t\tcase value == 0x0D:\n\t\t\tcase value >= 0x20 && value <= 0x7E:\n\t\t\tcase value == 0x85:\n\t\t\tcase value >= 0xA0 && value <= 0xD7FF:\n\t\t\tcase value >= 0xE000 && value <= 0xFFFD:\n\t\t\tcase value >= 0x10000 && value <= 0x10FFFF:\n\t\t\tdefault:\n\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\"control characters are not allowed\",\n\t\t\t\t\tparser.offset, int(value))\n\t\t\t}\n\n\t\t\t// Move the raw pointers.\n\t\t\tparser.raw_buffer_pos += width\n\t\t\tparser.offset += width\n\n\t\t\t// Finally put the character into the buffer.\n\t\t\tif value <= 0x7F {\n\t\t\t\t// 0000 0000-0000 007F . 0xxxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(value)\n\t\t\t\tbuffer_len += 1\n\t\t\t} else if value <= 0x7FF {\n\t\t\t\t// 0000 0080-0000 07FF . 110xxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 2\n\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t// 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 3\n\t\t\t} else {\n\t\t\t\t// 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 4\n\t\t\t}\n\n\t\t\tparser.unread++\n\t\t}\n\n\t\t// On EOF, put NUL into the buffer and return.\n\t\tif parser.eof {\n\t\t\tparser.buffer[buffer_len] = 0\n\t\t\tbuffer_len++\n\t\t\tparser.unread++\n\t\t\tbreak\n\t\t}\n\t}\n\t// [Go] Read the documentation of this function above. To return true,\n\t// we need to have the given length in the buffer. Not doing that means\n\t// every single check that calls this function to make sure the buffer\n\t// has a given length is Go) panicking; or C) accessing invalid memory.\n\t// This happens here due to the EOF above breaking early.\n\tfor buffer_len < length {\n\t\tparser.buffer[buffer_len] = 0\n\t\tbuffer_len++\n\t}\n\tparser.buffer = parser.buffer[:buffer_len]\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/resolve.go",
    "content": "package yaml\n\nimport (\n\t\"encoding/base64\"\n\t\"math\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype resolveMapItem struct {\n\tvalue interface{}\n\ttag   string\n}\n\nvar resolveTable = make([]byte, 256)\nvar resolveMap = make(map[string]resolveMapItem)\n\nfunc init() {\n\tt := resolveTable\n\tt[int('+')] = 'S' // Sign\n\tt[int('-')] = 'S'\n\tfor _, c := range \"0123456789\" {\n\t\tt[int(c)] = 'D' // Digit\n\t}\n\tfor _, c := range \"yYnNtTfFoO~\" {\n\t\tt[int(c)] = 'M' // In map\n\t}\n\tt[int('.')] = '.' // Float (potentially in map)\n\n\tvar resolveMapList = []struct {\n\t\tv   interface{}\n\t\ttag string\n\t\tl   []string\n\t}{\n\t\t{true, yaml_BOOL_TAG, []string{\"y\", \"Y\", \"yes\", \"Yes\", \"YES\"}},\n\t\t{true, yaml_BOOL_TAG, []string{\"true\", \"True\", \"TRUE\"}},\n\t\t{true, yaml_BOOL_TAG, []string{\"on\", \"On\", \"ON\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"n\", \"N\", \"no\", \"No\", \"NO\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"false\", \"False\", \"FALSE\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"off\", \"Off\", \"OFF\"}},\n\t\t{nil, yaml_NULL_TAG, []string{\"\", \"~\", \"null\", \"Null\", \"NULL\"}},\n\t\t{math.NaN(), yaml_FLOAT_TAG, []string{\".nan\", \".NaN\", \".NAN\"}},\n\t\t{math.Inf(+1), yaml_FLOAT_TAG, []string{\".inf\", \".Inf\", \".INF\"}},\n\t\t{math.Inf(+1), yaml_FLOAT_TAG, []string{\"+.inf\", \"+.Inf\", \"+.INF\"}},\n\t\t{math.Inf(-1), yaml_FLOAT_TAG, []string{\"-.inf\", \"-.Inf\", \"-.INF\"}},\n\t\t{\"<<\", yaml_MERGE_TAG, []string{\"<<\"}},\n\t}\n\n\tm := resolveMap\n\tfor _, item := range resolveMapList {\n\t\tfor _, s := range item.l {\n\t\t\tm[s] = resolveMapItem{item.v, item.tag}\n\t\t}\n\t}\n}\n\nconst longTagPrefix = \"tag:yaml.org,2002:\"\n\nfunc shortTag(tag string) string {\n\t// TODO This can easily be made faster and produce less garbage.\n\tif strings.HasPrefix(tag, longTagPrefix) {\n\t\treturn \"!!\" + tag[len(longTagPrefix):]\n\t}\n\treturn tag\n}\n\nfunc longTag(tag string) string {\n\tif strings.HasPrefix(tag, \"!!\") {\n\t\treturn longTagPrefix + tag[2:]\n\t}\n\treturn tag\n}\n\nfunc resolvableTag(tag string) bool {\n\tswitch tag {\n\tcase \"\", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG, yaml_TIMESTAMP_TAG:\n\t\treturn true\n\t}\n\treturn false\n}\n\nvar yamlStyleFloat = regexp.MustCompile(`^[-+]?(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)([eE][-+]?[0-9]+)?$`)\n\nfunc resolve(tag string, in string) (rtag string, out interface{}) {\n\tif !resolvableTag(tag) {\n\t\treturn tag, in\n\t}\n\n\tdefer func() {\n\t\tswitch tag {\n\t\tcase \"\", rtag, yaml_STR_TAG, yaml_BINARY_TAG:\n\t\t\treturn\n\t\tcase yaml_FLOAT_TAG:\n\t\t\tif rtag == yaml_INT_TAG {\n\t\t\t\tswitch v := out.(type) {\n\t\t\t\tcase int64:\n\t\t\t\t\trtag = yaml_FLOAT_TAG\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\tcase int:\n\t\t\t\t\trtag = yaml_FLOAT_TAG\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfailf(\"cannot decode %s `%s` as a %s\", shortTag(rtag), in, shortTag(tag))\n\t}()\n\n\t// Any data is accepted as a !!str or !!binary.\n\t// Otherwise, the prefix is enough of a hint about what it might be.\n\thint := byte('N')\n\tif in != \"\" {\n\t\thint = resolveTable[in[0]]\n\t}\n\tif hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG {\n\t\t// Handle things we can lookup in a map.\n\t\tif item, ok := resolveMap[in]; ok {\n\t\t\treturn item.tag, item.value\n\t\t}\n\n\t\t// Base 60 floats are a bad idea, were dropped in YAML 1.2, and\n\t\t// are purposefully unsupported here. They're still quoted on\n\t\t// the way out for compatibility with other parser, though.\n\n\t\tswitch hint {\n\t\tcase 'M':\n\t\t\t// We've already checked the map above.\n\n\t\tcase '.':\n\t\t\t// Not in the map, so maybe a normal float.\n\t\t\tfloatv, err := strconv.ParseFloat(in, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn yaml_FLOAT_TAG, floatv\n\t\t\t}\n\n\t\tcase 'D', 'S':\n\t\t\t// Int, float, or timestamp.\n\t\t\t// Only try values as a timestamp if the value is unquoted or there's an explicit\n\t\t\t// !!timestamp tag.\n\t\t\tif tag == \"\" || tag == yaml_TIMESTAMP_TAG {\n\t\t\t\tt, ok := parseTimestamp(in)\n\t\t\t\tif ok {\n\t\t\t\t\treturn yaml_TIMESTAMP_TAG, t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tplain := strings.Replace(in, \"_\", \"\", -1)\n\t\t\tintv, err := strconv.ParseInt(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t} else {\n\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t}\n\t\t\t}\n\t\t\tuintv, err := strconv.ParseUint(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn yaml_INT_TAG, uintv\n\t\t\t}\n\t\t\tif yamlStyleFloat.MatchString(plain) {\n\t\t\t\tfloatv, err := strconv.ParseFloat(plain, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn yaml_FLOAT_TAG, floatv\n\t\t\t\t}\n\t\t\t}\n\t\t\tif strings.HasPrefix(plain, \"0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn yaml_INT_TAG, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\" + plain[3:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"resolveTable item not yet handled: \" + string(rune(hint)) + \" (with \" + in + \")\")\n\t\t}\n\t}\n\treturn yaml_STR_TAG, in\n}\n\n// encodeBase64 encodes s as base64 that is broken up into multiple lines\n// as appropriate for the resulting length.\nfunc encodeBase64(s string) string {\n\tconst lineLen = 70\n\tencLen := base64.StdEncoding.EncodedLen(len(s))\n\tlines := encLen/lineLen + 1\n\tbuf := make([]byte, encLen*2+lines)\n\tin := buf[0:encLen]\n\tout := buf[encLen:]\n\tbase64.StdEncoding.Encode(in, []byte(s))\n\tk := 0\n\tfor i := 0; i < len(in); i += lineLen {\n\t\tj := i + lineLen\n\t\tif j > len(in) {\n\t\t\tj = len(in)\n\t\t}\n\t\tk += copy(out[k:], in[i:j])\n\t\tif lines > 1 {\n\t\t\tout[k] = '\\n'\n\t\t\tk++\n\t\t}\n\t}\n\treturn string(out[:k])\n}\n\n// This is a subset of the formats allowed by the regular expression\n// defined at http://yaml.org/type/timestamp.html.\nvar allowedTimestampFormats = []string{\n\t\"2006-1-2T15:4:5.999999999Z07:00\", // RCF3339Nano with short date fields.\n\t\"2006-1-2t15:4:5.999999999Z07:00\", // RFC3339Nano with short date fields and lower-case \"t\".\n\t\"2006-1-2 15:4:5.999999999\",       // space separated with no time zone\n\t\"2006-1-2\",                        // date only\n\t// Notable exception: time.Parse cannot handle: \"2001-12-14 21:59:43.10 -5\"\n\t// from the set of examples.\n}\n\n// parseTimestamp parses s as a timestamp string and\n// returns the timestamp and reports whether it succeeded.\n// Timestamp formats are defined at http://yaml.org/type/timestamp.html\nfunc parseTimestamp(s string) (time.Time, bool) {\n\t// TODO write code to check all the formats supported by\n\t// http://yaml.org/type/timestamp.html instead of using time.Parse.\n\n\t// Quick check: all date formats start with YYYY-.\n\ti := 0\n\tfor ; i < len(s); i++ {\n\t\tif c := s[i]; c < '0' || c > '9' {\n\t\t\tbreak\n\t\t}\n\t}\n\tif i != 4 || i == len(s) || s[i] != '-' {\n\t\treturn time.Time{}, false\n\t}\n\tfor _, format := range allowedTimestampFormats {\n\t\tif t, err := time.Parse(format, s); err == nil {\n\t\t\treturn t, true\n\t\t}\n\t}\n\treturn time.Time{}, false\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/scannerc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Introduction\n// ************\n//\n// The following notes assume that you are familiar with the YAML specification\n// (http://yaml.org/spec/1.2/spec.html).  We mostly follow it, although in\n// some cases we are less restrictive that it requires.\n//\n// The process of transforming a YAML stream into a sequence of events is\n// divided on two steps: Scanning and Parsing.\n//\n// The Scanner transforms the input stream into a sequence of tokens, while the\n// parser transform the sequence of tokens produced by the Scanner into a\n// sequence of parsing events.\n//\n// The Scanner is rather clever and complicated. The Parser, on the contrary,\n// is a straightforward implementation of a recursive-descendant parser (or,\n// LL(1) parser, as it is usually called).\n//\n// Actually there are two issues of Scanning that might be called \"clever\", the\n// rest is quite straightforward.  The issues are \"block collection start\" and\n// \"simple keys\".  Both issues are explained below in details.\n//\n// Here the Scanning step is explained and implemented.  We start with the list\n// of all the tokens produced by the Scanner together with short descriptions.\n//\n// Now, tokens:\n//\n//      STREAM-START(encoding)          # The stream start.\n//      STREAM-END                      # The stream end.\n//      VERSION-DIRECTIVE(major,minor)  # The '%YAML' directive.\n//      TAG-DIRECTIVE(handle,prefix)    # The '%TAG' directive.\n//      DOCUMENT-START                  # '---'\n//      DOCUMENT-END                    # '...'\n//      BLOCK-SEQUENCE-START            # Indentation increase denoting a block\n//      BLOCK-MAPPING-START             # sequence or a block mapping.\n//      BLOCK-END                       # Indentation decrease.\n//      FLOW-SEQUENCE-START             # '['\n//      FLOW-SEQUENCE-END               # ']'\n//      BLOCK-SEQUENCE-START            # '{'\n//      BLOCK-SEQUENCE-END              # '}'\n//      BLOCK-ENTRY                     # '-'\n//      FLOW-ENTRY                      # ','\n//      KEY                             # '?' or nothing (simple keys).\n//      VALUE                           # ':'\n//      ALIAS(anchor)                   # '*anchor'\n//      ANCHOR(anchor)                  # '&anchor'\n//      TAG(handle,suffix)              # '!handle!suffix'\n//      SCALAR(value,style)             # A scalar.\n//\n// The following two tokens are \"virtual\" tokens denoting the beginning and the\n// end of the stream:\n//\n//      STREAM-START(encoding)\n//      STREAM-END\n//\n// We pass the information about the input stream encoding with the\n// STREAM-START token.\n//\n// The next two tokens are responsible for tags:\n//\n//      VERSION-DIRECTIVE(major,minor)\n//      TAG-DIRECTIVE(handle,prefix)\n//\n// Example:\n//\n//      %YAML   1.1\n//      %TAG    !   !foo\n//      %TAG    !yaml!  tag:yaml.org,2002:\n//      ---\n//\n// The correspoding sequence of tokens:\n//\n//      STREAM-START(utf-8)\n//      VERSION-DIRECTIVE(1,1)\n//      TAG-DIRECTIVE(\"!\",\"!foo\")\n//      TAG-DIRECTIVE(\"!yaml\",\"tag:yaml.org,2002:\")\n//      DOCUMENT-START\n//      STREAM-END\n//\n// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole\n// line.\n//\n// The document start and end indicators are represented by:\n//\n//      DOCUMENT-START\n//      DOCUMENT-END\n//\n// Note that if a YAML stream contains an implicit document (without '---'\n// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be\n// produced.\n//\n// In the following examples, we present whole documents together with the\n// produced tokens.\n//\n//      1. An implicit document:\n//\n//          'a scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          STREAM-END\n//\n//      2. An explicit document:\n//\n//          ---\n//          'a scalar'\n//          ...\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-END\n//          STREAM-END\n//\n//      3. Several documents in a stream:\n//\n//          'a scalar'\n//          ---\n//          'another scalar'\n//          ---\n//          'yet another scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"another scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"yet another scalar\",single-quoted)\n//          STREAM-END\n//\n// We have already introduced the SCALAR token above.  The following tokens are\n// used to describe aliases, anchors, tag, and scalars:\n//\n//      ALIAS(anchor)\n//      ANCHOR(anchor)\n//      TAG(handle,suffix)\n//      SCALAR(value,style)\n//\n// The following series of examples illustrate the usage of these tokens:\n//\n//      1. A recursive sequence:\n//\n//          &A [ *A ]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          ANCHOR(\"A\")\n//          FLOW-SEQUENCE-START\n//          ALIAS(\"A\")\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A tagged scalar:\n//\n//          !!float \"3.14\"  # A good approximation.\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          TAG(\"!!\",\"float\")\n//          SCALAR(\"3.14\",double-quoted)\n//          STREAM-END\n//\n//      3. Various scalar styles:\n//\n//          --- # Implicit empty plain scalars do not produce tokens.\n//          --- a plain scalar\n//          --- 'a single-quoted scalar'\n//          --- \"a double-quoted scalar\"\n//          --- |-\n//            a literal scalar\n//          --- >-\n//            a folded\n//            scalar\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          DOCUMENT-START\n//          SCALAR(\"a plain scalar\",plain)\n//          DOCUMENT-START\n//          SCALAR(\"a single-quoted scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a double-quoted scalar\",double-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a literal scalar\",literal)\n//          DOCUMENT-START\n//          SCALAR(\"a folded scalar\",folded)\n//          STREAM-END\n//\n// Now it's time to review collection-related tokens. We will start with\n// flow collections:\n//\n//      FLOW-SEQUENCE-START\n//      FLOW-SEQUENCE-END\n//      FLOW-MAPPING-START\n//      FLOW-MAPPING-END\n//      FLOW-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and\n// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}'\n// correspondingly.  FLOW-ENTRY represent the ',' indicator.  Finally the\n// indicators '?' and ':', which are used for denoting mapping keys and values,\n// are represented by the KEY and VALUE tokens.\n//\n// The following examples show flow collections:\n//\n//      1. A flow sequence:\n//\n//          [item 1, item 2, item 3]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-SEQUENCE-START\n//          SCALAR(\"item 1\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 3\",plain)\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A flow mapping:\n//\n//          {\n//              a simple key: a value,  # Note that the KEY token is produced.\n//              ? a complex key: another value,\n//          }\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          FLOW-ENTRY\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          FLOW-ENTRY\n//          FLOW-MAPPING-END\n//          STREAM-END\n//\n// A simple key is a key which is not denoted by the '?' indicator.  Note that\n// the Scanner still produce the KEY token whenever it encounters a simple key.\n//\n// For scanning block collections, the following tokens are used (note that we\n// repeat KEY and VALUE here):\n//\n//      BLOCK-SEQUENCE-START\n//      BLOCK-MAPPING-START\n//      BLOCK-END\n//      BLOCK-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation\n// increase that precedes a block collection (cf. the INDENT token in Python).\n// The token BLOCK-END denote indentation decrease that ends a block collection\n// (cf. the DEDENT token in Python).  However YAML has some syntax pecularities\n// that makes detections of these tokens more complex.\n//\n// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators\n// '-', '?', and ':' correspondingly.\n//\n// The following examples show how the tokens BLOCK-SEQUENCE-START,\n// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner:\n//\n//      1. Block sequences:\n//\n//          - item 1\n//          - item 2\n//          -\n//            - item 3.1\n//            - item 3.2\n//          -\n//            key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Block mappings:\n//\n//          a simple key: a value   # The KEY token is produced here.\n//          ? a complex key\n//          : another value\n//          a mapping:\n//            key 1: value 1\n//            key 2: value 2\n//          a sequence:\n//            - item 1\n//            - item 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML does not always require to start a new block collection from a new\n// line.  If the current line contains only '-', '?', and ':' indicators, a new\n// block collection may start at the current line.  The following examples\n// illustrate this case:\n//\n//      1. Collections in a sequence:\n//\n//          - - item 1\n//            - item 2\n//          - key 1: value 1\n//            key 2: value 2\n//          - ? complex key\n//            : complex value\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"complex key\")\n//          VALUE\n//          SCALAR(\"complex value\")\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Collections in a mapping:\n//\n//          ? a sequence\n//          : - item 1\n//            - item 2\n//          ? a mapping\n//          : key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          VALUE\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML also permits non-indented sequences if they are included into a block\n// mapping.  In this case, the token BLOCK-SEQUENCE-START is not produced:\n//\n//      key:\n//      - item 1    # BLOCK-SEQUENCE-START is NOT produced here.\n//      - item 2\n//\n// Tokens:\n//\n//      STREAM-START(utf-8)\n//      BLOCK-MAPPING-START\n//      KEY\n//      SCALAR(\"key\",plain)\n//      VALUE\n//      BLOCK-ENTRY\n//      SCALAR(\"item 1\",plain)\n//      BLOCK-ENTRY\n//      SCALAR(\"item 2\",plain)\n//      BLOCK-END\n//\n\n// Ensure that the buffer contains the required number of characters.\n// Return true on success, false on failure (reader error or memory error).\nfunc cache(parser *yaml_parser_t, length int) bool {\n\t// [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B)\n\treturn parser.unread >= length || yaml_parser_update_buffer(parser, length)\n}\n\n// Advance the buffer pointer.\nfunc skip(parser *yaml_parser_t) {\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n}\n\nfunc skip_line(parser *yaml_parser_t) {\n\tif is_crlf(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index += 2\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread -= 2\n\t\tparser.buffer_pos += 2\n\t} else if is_break(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index++\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread--\n\t\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n\t}\n}\n\n// Copy a character to a string buffer and advance pointers.\nfunc read(parser *yaml_parser_t, s []byte) []byte {\n\tw := width(parser.buffer[parser.buffer_pos])\n\tif w == 0 {\n\t\tpanic(\"invalid character sequence\")\n\t}\n\tif len(s) == 0 {\n\t\ts = make([]byte, 0, 32)\n\t}\n\tif w == 1 && len(s)+w <= cap(s) {\n\t\ts = s[:len(s)+1]\n\t\ts[len(s)-1] = parser.buffer[parser.buffer_pos]\n\t\tparser.buffer_pos++\n\t} else {\n\t\ts = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...)\n\t\tparser.buffer_pos += w\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\treturn s\n}\n\n// Copy a line break character to a string buffer and advance pointers.\nfunc read_line(parser *yaml_parser_t, s []byte) []byte {\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\tswitch {\n\tcase buf[pos] == '\\r' && buf[pos+1] == '\\n':\n\t\t// CR LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\t\tparser.mark.index++\n\t\tparser.unread--\n\tcase buf[pos] == '\\r' || buf[pos] == '\\n':\n\t\t// CR|LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 1\n\tcase buf[pos] == '\\xC2' && buf[pos+1] == '\\x85':\n\t\t// NEL . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\tcase buf[pos] == '\\xE2' && buf[pos+1] == '\\x80' && (buf[pos+2] == '\\xA8' || buf[pos+2] == '\\xA9'):\n\t\t// LS|PS . LS|PS\n\t\ts = append(s, buf[parser.buffer_pos:pos+3]...)\n\t\tparser.buffer_pos += 3\n\tdefault:\n\t\treturn s\n\t}\n\tparser.mark.index++\n\tparser.mark.column = 0\n\tparser.mark.line++\n\tparser.unread--\n\treturn s\n}\n\n// Get the next token.\nfunc yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Erase the token object.\n\t*token = yaml_token_t{} // [Go] Is this necessary?\n\n\t// No tokens after STREAM-END or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR {\n\t\treturn true\n\t}\n\n\t// Ensure that the tokens queue contains enough tokens.\n\tif !parser.token_available {\n\t\tif !yaml_parser_fetch_more_tokens(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Fetch the next token from the queue.\n\t*token = parser.tokens[parser.tokens_head]\n\tparser.tokens_head++\n\tparser.tokens_parsed++\n\tparser.token_available = false\n\n\tif token.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.stream_end_produced = true\n\t}\n\treturn true\n}\n\n// Set the scanner error and return false.\nfunc yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool {\n\tparser.error = yaml_SCANNER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = parser.mark\n\treturn false\n}\n\nfunc yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool {\n\tcontext := \"while parsing a tag\"\n\tif directive {\n\t\tcontext = \"while parsing a %TAG directive\"\n\t}\n\treturn yaml_parser_set_scanner_error(parser, context, context_mark, problem)\n}\n\nfunc trace(args ...interface{}) func() {\n\tpargs := append([]interface{}{\"+++\"}, args...)\n\tfmt.Println(pargs...)\n\tpargs = append([]interface{}{\"---\"}, args...)\n\treturn func() { fmt.Println(pargs...) }\n}\n\n// Ensure that the tokens queue contains at least one token which can be\n// returned to the Parser.\nfunc yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {\n\t// While we need more tokens to fetch, do it.\n\tfor {\n\t\t// Check if we really need to fetch more tokens.\n\t\tneed_more_tokens := false\n\n\t\tif parser.tokens_head == len(parser.tokens) {\n\t\t\t// Queue is empty.\n\t\t\tneed_more_tokens = true\n\t\t} else {\n\t\t\t// Check if any potential simple key may occupy the head position.\n\t\t\tif !yaml_parser_stale_simple_keys(parser) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tfor i := range parser.simple_keys {\n\t\t\t\tsimple_key := &parser.simple_keys[i]\n\t\t\t\tif simple_key.possible && simple_key.token_number == parser.tokens_parsed {\n\t\t\t\t\tneed_more_tokens = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// We are finished.\n\t\tif !need_more_tokens {\n\t\t\tbreak\n\t\t}\n\t\t// Fetch the next token.\n\t\tif !yaml_parser_fetch_next_token(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tparser.token_available = true\n\treturn true\n}\n\n// The dispatcher for token fetchers.\nfunc yaml_parser_fetch_next_token(parser *yaml_parser_t) bool {\n\t// Ensure that the buffer is initialized.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check if we just started scanning.  Fetch STREAM-START then.\n\tif !parser.stream_start_produced {\n\t\treturn yaml_parser_fetch_stream_start(parser)\n\t}\n\n\t// Eat whitespaces and comments until we reach the next token.\n\tif !yaml_parser_scan_to_next_token(parser) {\n\t\treturn false\n\t}\n\n\t// Remove obsolete potential simple keys.\n\tif !yaml_parser_stale_simple_keys(parser) {\n\t\treturn false\n\t}\n\n\t// Check the indentation level against the current column.\n\tif !yaml_parser_unroll_indent(parser, parser.mark.column) {\n\t\treturn false\n\t}\n\n\t// Ensure that the buffer contains at least 4 characters.  4 is the length\n\t// of the longest indicators ('--- ' and '... ').\n\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\treturn false\n\t}\n\n\t// Is it the end of the stream?\n\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\treturn yaml_parser_fetch_stream_end(parser)\n\t}\n\n\t// Is it a directive?\n\tif parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' {\n\t\treturn yaml_parser_fetch_directive(parser)\n\t}\n\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\n\t// Is it the document start indicator?\n\tif parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN)\n\t}\n\n\t// Is it the document end indicator?\n\tif parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN)\n\t}\n\n\t// Is it the flow sequence start indicator?\n\tif buf[pos] == '[' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN)\n\t}\n\n\t// Is it the flow mapping start indicator?\n\tif parser.buffer[parser.buffer_pos] == '{' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN)\n\t}\n\n\t// Is it the flow sequence end indicator?\n\tif parser.buffer[parser.buffer_pos] == ']' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_SEQUENCE_END_TOKEN)\n\t}\n\n\t// Is it the flow mapping end indicator?\n\tif parser.buffer[parser.buffer_pos] == '}' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_MAPPING_END_TOKEN)\n\t}\n\n\t// Is it the flow entry indicator?\n\tif parser.buffer[parser.buffer_pos] == ',' {\n\t\treturn yaml_parser_fetch_flow_entry(parser)\n\t}\n\n\t// Is it the block entry indicator?\n\tif parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) {\n\t\treturn yaml_parser_fetch_block_entry(parser)\n\t}\n\n\t// Is it the key indicator?\n\tif parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_key(parser)\n\t}\n\n\t// Is it the value indicator?\n\tif parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_value(parser)\n\t}\n\n\t// Is it an alias?\n\tif parser.buffer[parser.buffer_pos] == '*' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN)\n\t}\n\n\t// Is it an anchor?\n\tif parser.buffer[parser.buffer_pos] == '&' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN)\n\t}\n\n\t// Is it a tag?\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\treturn yaml_parser_fetch_tag(parser)\n\t}\n\n\t// Is it a literal scalar?\n\tif parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, true)\n\t}\n\n\t// Is it a folded scalar?\n\tif parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, false)\n\t}\n\n\t// Is it a single-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, true)\n\t}\n\n\t// Is it a double-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, false)\n\t}\n\n\t// Is it a plain scalar?\n\t//\n\t// A plain scalar may start with any non-blank characters except\n\t//\n\t//      '-', '?', ':', ',', '[', ']', '{', '}',\n\t//      '#', '&', '*', '!', '|', '>', '\\'', '\\\"',\n\t//      '%', '@', '`'.\n\t//\n\t// In the block context (and, for the '-' indicator, in the flow context\n\t// too), it may also start with the characters\n\t//\n\t//      '-', '?', ':'\n\t//\n\t// if it is followed by a non-space character.\n\t//\n\t// The last rule is more restrictive than the specification requires.\n\t// [Go] Make this logic more reasonable.\n\t//switch parser.buffer[parser.buffer_pos] {\n\t//case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '\"', '\\'', '@', '%', '-', '`':\n\t//}\n\tif !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' ||\n\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\tparser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' ||\n\t\tparser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '\"' || parser.buffer[parser.buffer_pos] == '%' ||\n\t\tparser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') ||\n\t\t(parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) ||\n\t\t(parser.flow_level == 0 &&\n\t\t\t(parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') &&\n\t\t\t!is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_plain_scalar(parser)\n\t}\n\n\t// If we don't determine the token type so far, it is an error.\n\treturn yaml_parser_set_scanner_error(parser,\n\t\t\"while scanning for the next token\", parser.mark,\n\t\t\"found character that cannot start any token\")\n}\n\n// Check the list of potential simple keys and remove the positions that\n// cannot contain simple keys anymore.\nfunc yaml_parser_stale_simple_keys(parser *yaml_parser_t) bool {\n\t// Check for a potential simple key for each flow level.\n\tfor i := range parser.simple_keys {\n\t\tsimple_key := &parser.simple_keys[i]\n\n\t\t// The specification requires that a simple key\n\t\t//\n\t\t//  - is limited to a single line,\n\t\t//  - is shorter than 1024 characters.\n\t\tif simple_key.possible && (simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index) {\n\n\t\t\t// Check if the potential simple key to be removed is required.\n\t\t\tif simple_key.required {\n\t\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\t\"while scanning a simple key\", simple_key.mark,\n\t\t\t\t\t\"could not find expected ':'\")\n\t\t\t}\n\t\t\tsimple_key.possible = false\n\t\t}\n\t}\n\treturn true\n}\n\n// Check if a simple key may start at the current position and add it if\n// needed.\nfunc yaml_parser_save_simple_key(parser *yaml_parser_t) bool {\n\t// A simple key is required at the current position if the scanner is in\n\t// the block context and the current column coincides with the indentation\n\t// level.\n\n\trequired := parser.flow_level == 0 && parser.indent == parser.mark.column\n\n\t//\n\t// If the current position may start a simple key, save it.\n\t//\n\tif parser.simple_key_allowed {\n\t\tsimple_key := yaml_simple_key_t{\n\t\t\tpossible:     true,\n\t\t\trequired:     required,\n\t\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\t}\n\t\tsimple_key.mark = parser.mark\n\n\t\tif !yaml_parser_remove_simple_key(parser) {\n\t\t\treturn false\n\t\t}\n\t\tparser.simple_keys[len(parser.simple_keys)-1] = simple_key\n\t}\n\treturn true\n}\n\n// Remove a potential simple key at the current flow level.\nfunc yaml_parser_remove_simple_key(parser *yaml_parser_t) bool {\n\ti := len(parser.simple_keys) - 1\n\tif parser.simple_keys[i].possible {\n\t\t// If the key is required, it is an error.\n\t\tif parser.simple_keys[i].required {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", parser.simple_keys[i].mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t}\n\t// Remove the key from the stack.\n\tparser.simple_keys[i].possible = false\n\treturn true\n}\n\n// Increase the flow level and resize the simple key list if needed.\nfunc yaml_parser_increase_flow_level(parser *yaml_parser_t) bool {\n\t// Reset the simple key on the next level.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})\n\n\t// Increase the flow level.\n\tparser.flow_level++\n\treturn true\n}\n\n// Decrease the flow level.\nfunc yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool {\n\tif parser.flow_level > 0 {\n\t\tparser.flow_level--\n\t\tparser.simple_keys = parser.simple_keys[:len(parser.simple_keys)-1]\n\t}\n\treturn true\n}\n\n// Push the current indentation level to the stack and set the new level\n// the current column is greater than the indentation level.  In this case,\n// append or insert the specified token into the token queue.\nfunc yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tif parser.indent < column {\n\t\t// Push the current indentation level to the stack and set the new\n\t\t// indentation level.\n\t\tparser.indents = append(parser.indents, parser.indent)\n\t\tparser.indent = column\n\n\t\t// Create a token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        typ,\n\t\t\tstart_mark: mark,\n\t\t\tend_mark:   mark,\n\t\t}\n\t\tif number > -1 {\n\t\t\tnumber -= parser.tokens_parsed\n\t\t}\n\t\tyaml_insert_token(parser, number, &token)\n\t}\n\treturn true\n}\n\n// Pop indentation levels from the indents stack until the current level\n// becomes less or equal to the column.  For each indentation level, append\n// the BLOCK-END token.\nfunc yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\t// Loop through the indentation levels in the stack.\n\tfor parser.indent > column {\n\t\t// Create a token and append it to the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_BLOCK_END_TOKEN,\n\t\t\tstart_mark: parser.mark,\n\t\t\tend_mark:   parser.mark,\n\t\t}\n\t\tyaml_insert_token(parser, -1, &token)\n\n\t\t// Pop the indentation level.\n\t\tparser.indent = parser.indents[len(parser.indents)-1]\n\t\tparser.indents = parser.indents[:len(parser.indents)-1]\n\t}\n\treturn true\n}\n\n// Initialize the scanner and produce the STREAM-START token.\nfunc yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool {\n\n\t// Set the initial indentation.\n\tparser.indent = -1\n\n\t// Initialize the simple key stack.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})\n\n\t// A simple key is allowed at the beginning of the stream.\n\tparser.simple_key_allowed = true\n\n\t// We have started.\n\tparser.stream_start_produced = true\n\n\t// Create the STREAM-START token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_START_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t\tencoding:   parser.encoding,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the STREAM-END token and shut down the scanner.\nfunc yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool {\n\n\t// Force new line.\n\tif parser.mark.column != 0 {\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t}\n\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the STREAM-END token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_END_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token.\nfunc yaml_parser_fetch_directive(parser *yaml_parser_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the YAML-DIRECTIVE or TAG-DIRECTIVE token.\n\ttoken := yaml_token_t{}\n\tif !yaml_parser_scan_directive(parser, &token) {\n\t\treturn false\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the DOCUMENT-START or DOCUMENT-END token.\nfunc yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\n\tskip(parser)\n\tskip(parser)\n\tskip(parser)\n\n\tend_mark := parser.mark\n\n\t// Create the DOCUMENT-START or DOCUMENT-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token.\nfunc yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// The indicators '[' and '{' may start a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Increase the flow level.\n\tif !yaml_parser_increase_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow the indicators '[' and '{'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token.\nfunc yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset any potential simple key on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Decrease the flow level.\n\tif !yaml_parser_decrease_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// No simple keys after the indicators ']' and '}'.\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-ENTRY token.\nfunc yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool {\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after ','.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_FLOW_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the BLOCK-ENTRY token.\nfunc yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool {\n\t// Check if the scanner is in the block context.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new entry.\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"block sequence entries are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-SEQUENCE-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\t// It is an error for the '-' indicator to occur in the flow context,\n\t\t// but we let the Parser detect and report about it because the Parser\n\t\t// is able to point to the context.\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '-'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the BLOCK-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_BLOCK_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the KEY token.\nfunc yaml_parser_fetch_key(parser *yaml_parser_t) bool {\n\n\t// In the block context, additional checks are required.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new key (not nessesary simple).\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"mapping keys are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '?' in the block context.\n\tparser.simple_key_allowed = parser.flow_level == 0\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the KEY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_KEY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the VALUE token.\nfunc yaml_parser_fetch_value(parser *yaml_parser_t) bool {\n\n\tsimple_key := &parser.simple_keys[len(parser.simple_keys)-1]\n\n\t// Have we found a simple key?\n\tif simple_key.possible {\n\t\t// Create the KEY token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_KEY_TOKEN,\n\t\t\tstart_mark: simple_key.mark,\n\t\t\tend_mark:   simple_key.mark,\n\t\t}\n\t\tyaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token)\n\n\t\t// In the block context, we may need to add the BLOCK-MAPPING-START token.\n\t\tif !yaml_parser_roll_indent(parser, simple_key.mark.column,\n\t\t\tsimple_key.token_number,\n\t\t\tyaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Remove the simple key.\n\t\tsimple_key.possible = false\n\n\t\t// A simple key cannot follow another simple key.\n\t\tparser.simple_key_allowed = false\n\n\t} else {\n\t\t// The ':' indicator follows a complex key.\n\n\t\t// In the block context, extra checks are required.\n\t\tif parser.flow_level == 0 {\n\n\t\t\t// Check if we are allowed to start a complex value.\n\t\t\tif !parser.simple_key_allowed {\n\t\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\t\"mapping values are not allowed in this context\")\n\t\t\t}\n\n\t\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Simple keys after ':' are allowed in the block context.\n\t\tparser.simple_key_allowed = parser.flow_level == 0\n\t}\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the VALUE token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_VALUE_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the ALIAS or ANCHOR token.\nfunc yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// An anchor or an alias could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow an anchor or an alias.\n\tparser.simple_key_allowed = false\n\n\t// Create the ALIAS or ANCHOR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_anchor(parser, &token, typ) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the TAG token.\nfunc yaml_parser_fetch_tag(parser *yaml_parser_t) bool {\n\t// A tag could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a tag.\n\tparser.simple_key_allowed = false\n\n\t// Create the TAG token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_tag(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens.\nfunc yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool {\n\t// Remove any potential simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow a block scalar.\n\tparser.simple_key_allowed = true\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_block_scalar(parser, &token, literal) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens.\nfunc yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_flow_scalar(parser, &token, single) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,plain) token.\nfunc yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_plain_scalar(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Eat whitespaces and comments until the next token is found.\nfunc yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool {\n\n\t// Until the next token is not found.\n\tfor {\n\t\t// Allow the BOM mark to start a line.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t}\n\n\t\t// Eat whitespaces.\n\t\t// Tabs are allowed:\n\t\t//  - in the flow context\n\t\t//  - in the block context, but not at the beginning of the line or\n\t\t//  after '-', '?', or ':' (complex value).\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\\t') {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Eat a comment until a line break.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\tskip(parser)\n\t\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If it is a line break, eat it.\n\t\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tskip_line(parser)\n\n\t\t\t// In the block context, a new line may start a simple key.\n\t\t\tif parser.flow_level == 0 {\n\t\t\t\tparser.simple_key_allowed = true\n\t\t\t}\n\t\t} else {\n\t\t\tbreak // We have found a token.\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token.\n//\n// Scope:\n//      %YAML    1.1    # a comment \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Eat '%'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the directive name.\n\tvar name []byte\n\tif !yaml_parser_scan_directive_name(parser, start_mark, &name) {\n\t\treturn false\n\t}\n\n\t// Is it a YAML directive?\n\tif bytes.Equal(name, []byte(\"YAML\")) {\n\t\t// Scan the VERSION directive value.\n\t\tvar major, minor int8\n\t\tif !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a VERSION-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_VERSION_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tmajor:      major,\n\t\t\tminor:      minor,\n\t\t}\n\n\t\t// Is it a TAG directive?\n\t} else if bytes.Equal(name, []byte(\"TAG\")) {\n\t\t// Scan the TAG directive value.\n\t\tvar handle, prefix []byte\n\t\tif !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a TAG-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_TAG_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tvalue:      handle,\n\t\t\tprefix:     prefix,\n\t\t}\n\n\t\t// Unknown directive.\n\t} else {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unknown directive name\")\n\t\treturn false\n\t}\n\n\t// Eat the rest of the line including any comments.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\treturn true\n}\n\n// Scan the directive name.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//       ^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//       ^^^\n//\nfunc yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool {\n\t// Consume the directive name.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tvar s []byte\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the name is empty.\n\tif len(s) == 0 {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"could not find expected directive name\")\n\t\treturn false\n\t}\n\n\t// Check for an blank character after the name.\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unexpected non-alphabetical character\")\n\t\treturn false\n\t}\n\t*name = s\n\treturn true\n}\n\n// Scan the value of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//           ^^^^^^\nfunc yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool {\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Consume the major version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, major) {\n\t\treturn false\n\t}\n\n\t// Eat '.'.\n\tif parser.buffer[parser.buffer_pos] != '.' {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected digit or '.' character\")\n\t}\n\n\tskip(parser)\n\n\t// Consume the minor version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, minor) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nconst max_number_length = 2\n\n// Scan the version number of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//              ^\n//      %YAML   1.1     # a comment \\n\n//                ^\nfunc yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool {\n\n\t// Repeat while the next character is digit.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar value, length int8\n\tfor is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Check if the number is too long.\n\t\tlength++\n\t\tif length > max_number_length {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\t\tstart_mark, \"found extremely long version number\")\n\t\t}\n\t\tvalue = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos))\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the number was present.\n\tif length == 0 {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected version number\")\n\t}\n\t*number = value\n\treturn true\n}\n\n// Scan the value of a TAG-DIRECTIVE token.\n//\n// Scope:\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool {\n\tvar handle_value, prefix_value []byte\n\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a handle.\n\tif !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace\")\n\t\treturn false\n\t}\n\n\t// Eat whitespaces.\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a prefix.\n\tif !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace or line break.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\t*handle = handle_value\n\t*prefix = prefix_value\n\treturn true\n}\n\nfunc yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool {\n\tvar s []byte\n\n\t// Eat the indicator character.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the value.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tend_mark := parser.mark\n\n\t/*\n\t * Check if length of the anchor is greater than 0 and it is followed by\n\t * a whitespace character or one of the indicators:\n\t *\n\t *      '?', ':', ',', ']', '}', '%', '@', '`'.\n\t */\n\n\tif len(s) == 0 ||\n\t\t!(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '`') {\n\t\tcontext := \"while scanning an alias\"\n\t\tif typ == yaml_ANCHOR_TOKEN {\n\t\t\tcontext = \"while scanning an anchor\"\n\t\t}\n\t\tyaml_parser_set_scanner_error(parser, context, start_mark,\n\t\t\t\"did not find expected alphabetic or numeric character\")\n\t\treturn false\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t}\n\n\treturn true\n}\n\n/*\n * Scan a TAG token.\n */\n\nfunc yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool {\n\tvar handle, suffix []byte\n\n\tstart_mark := parser.mark\n\n\t// Check if the tag is in the canonical form.\n\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\treturn false\n\t}\n\n\tif parser.buffer[parser.buffer_pos+1] == '<' {\n\t\t// Keep the handle as ''\n\n\t\t// Eat '!<'\n\t\tskip(parser)\n\t\tskip(parser)\n\n\t\t// Consume the tag value.\n\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for '>' and eat it.\n\t\tif parser.buffer[parser.buffer_pos] != '>' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\t\tstart_mark, \"did not find the expected '>'\")\n\t\t\treturn false\n\t\t}\n\n\t\tskip(parser)\n\t} else {\n\t\t// The tag has either the '!suffix' or the '!handle!suffix' form.\n\n\t\t// First, try to scan a handle.\n\t\tif !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if it is, indeed, handle.\n\t\tif handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' {\n\t\t\t// Scan the suffix now.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\t// It wasn't a handle after all.  Scan the rest of the tag.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Set the handle to '!'.\n\t\t\thandle = []byte{'!'}\n\n\t\t\t// A special case: the '!' tag.  Set the handle to '' and the\n\t\t\t// suffix to '!'.\n\t\t\tif len(suffix) == 0 {\n\t\t\t\thandle, suffix = suffix, handle\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check the character which ends the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_TAG_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      handle,\n\t\tsuffix:     suffix,\n\t}\n\treturn true\n}\n\n// Scan a tag handle.\nfunc yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool {\n\t// Check the initial '!' character.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif parser.buffer[parser.buffer_pos] != '!' {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected '!'\")\n\t\treturn false\n\t}\n\n\tvar s []byte\n\n\t// Copy the '!' character.\n\ts = read(parser, s)\n\n\t// Copy all subsequent alphabetical and numerical characters.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the trailing character is '!' and copy it.\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\ts = read(parser, s)\n\t} else {\n\t\t// It's either the '!' tag or not really a tag handle.  If it's a %TAG\n\t\t// directive, it's an error.  If it's a tag token, it must be a part of URI.\n\t\tif directive && string(s) != \"!\" {\n\t\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find expected '!'\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\t*handle = s\n\treturn true\n}\n\n// Scan a tag.\nfunc yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool {\n\t//size_t length = head ? strlen((char *)head) : 0\n\tvar s []byte\n\thasTag := len(head) > 0\n\n\t// Copy the head if needed.\n\t//\n\t// Note that we don't copy the leading '!' character.\n\tif len(head) > 1 {\n\t\ts = append(s, head[1:]...)\n\t}\n\n\t// Scan the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// The set of characters that may appear in URI is as follows:\n\t//\n\t//      '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&',\n\t//      '=', '+', '$', ',', '.', '!', '~', '*', '\\'', '(', ')', '[', ']',\n\t//      '%'.\n\t// [Go] Convert this into more reasonable logic.\n\tfor is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' ||\n\t\tparser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' ||\n\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' ||\n\t\tparser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' ||\n\t\tparser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' ||\n\t\tparser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' ||\n\t\tparser.buffer[parser.buffer_pos] == '%' {\n\t\t// Check if it is a URI-escape sequence.\n\t\tif parser.buffer[parser.buffer_pos] == '%' {\n\t\t\tif !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\ts = read(parser, s)\n\t\t}\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\thasTag = true\n\t}\n\n\tif !hasTag {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected tag URI\")\n\t\treturn false\n\t}\n\t*uri = s\n\treturn true\n}\n\n// Decode an URI-escape sequence corresponding to a single UTF-8 character.\nfunc yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool {\n\n\t// Decode the required number of characters.\n\tw := 1024\n\tfor w > 0 {\n\t\t// Check for a URI-escaped octet.\n\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\treturn false\n\t\t}\n\n\t\tif !(parser.buffer[parser.buffer_pos] == '%' &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+1) &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+2)) {\n\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find URI escaped octet\")\n\t\t}\n\n\t\t// Get the octet.\n\t\toctet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2))\n\n\t\t// If it is the leading octet, determine the length of the UTF-8 sequence.\n\t\tif w == 1024 {\n\t\t\tw = width(octet)\n\t\t\tif w == 0 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect leading UTF-8 octet\")\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if the trailing octet is correct.\n\t\t\tif octet&0xC0 != 0x80 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect trailing UTF-8 octet\")\n\t\t\t}\n\t\t}\n\n\t\t// Copy the octet and move the pointers.\n\t\t*s = append(*s, octet)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tw--\n\t}\n\treturn true\n}\n\n// Scan a block scalar.\nfunc yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool {\n\t// Eat the indicator '|' or '>'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the additional block scalar indicators.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check for a chomping indicator.\n\tvar chomping, increment int\n\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t// Set the chomping method and eat the indicator.\n\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\tchomping = +1\n\t\t} else {\n\t\t\tchomping = -1\n\t\t}\n\t\tskip(parser)\n\n\t\t// Check for an indentation indicator.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif is_digit(parser.buffer, parser.buffer_pos) {\n\t\t\t// Check that the indentation is greater than 0.\n\t\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Get the indentation level and eat the indicator.\n\t\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\t\tskip(parser)\n\t\t}\n\n\t} else if is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Do the same as above, but in the opposite order.\n\n\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\treturn false\n\t\t}\n\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\tskip(parser)\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\t\tchomping = +1\n\t\t\t} else {\n\t\t\t\tchomping = -1\n\t\t\t}\n\t\t\tskip(parser)\n\t\t}\n\t}\n\n\t// Eat whitespaces and comments to the end of the line.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\tend_mark := parser.mark\n\n\t// Set the indentation level if it was specified.\n\tvar indent int\n\tif increment > 0 {\n\t\tif parser.indent >= 0 {\n\t\t\tindent = parser.indent + increment\n\t\t} else {\n\t\t\tindent = increment\n\t\t}\n\t}\n\n\t// Scan the leading line breaks and determine the indentation level if needed.\n\tvar s, leading_break, trailing_breaks []byte\n\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\treturn false\n\t}\n\n\t// Scan the block scalar content.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar leading_blank, trailing_blank bool\n\tfor parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) {\n\t\t// We are at the beginning of a non-empty line.\n\n\t\t// Is it a trailing whitespace?\n\t\ttrailing_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Check if we need to fold the leading line break.\n\t\tif !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t// Do we need to join the lines by space?\n\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\ts = append(s, ' ')\n\t\t\t}\n\t\t} else {\n\t\t\ts = append(s, leading_break...)\n\t\t}\n\t\tleading_break = leading_break[:0]\n\n\t\t// Append the remaining line breaks.\n\t\ts = append(s, trailing_breaks...)\n\t\ttrailing_breaks = trailing_breaks[:0]\n\n\t\t// Is it a leading whitespace?\n\t\tleading_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Consume the current line.\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\ts = read(parser, s)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\n\t\tleading_break = read_line(parser, leading_break)\n\n\t\t// Eat the following indentation spaces and line breaks.\n\t\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Chomp the tail.\n\tif chomping != -1 {\n\t\ts = append(s, leading_break...)\n\t}\n\tif chomping == 1 {\n\t\ts = append(s, trailing_breaks...)\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_LITERAL_SCALAR_STYLE,\n\t}\n\tif !literal {\n\t\ttoken.style = yaml_FOLDED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan indentation spaces and line breaks for a block scalar.  Determine the\n// indentation level if needed.\nfunc yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool {\n\t*end_mark = parser.mark\n\n\t// Eat the indentation spaces and line breaks.\n\tmax_indent := 0\n\tfor {\n\t\t// Eat the indentation spaces.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tfor (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif parser.mark.column > max_indent {\n\t\t\tmax_indent = parser.mark.column\n\t\t}\n\n\t\t// Check for a tab character messing the indentation.\n\t\tif (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found a tab character where an indentation space is expected\")\n\t\t}\n\n\t\t// Have we found a non-empty line?\n\t\tif !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\t// [Go] Should really be returning breaks instead.\n\t\t*breaks = read_line(parser, *breaks)\n\t\t*end_mark = parser.mark\n\t}\n\n\t// Determine the indentation level if needed.\n\tif *indent == 0 {\n\t\t*indent = max_indent\n\t\tif *indent < parser.indent+1 {\n\t\t\t*indent = parser.indent + 1\n\t\t}\n\t\tif *indent < 1 {\n\t\t\t*indent = 1\n\t\t}\n\t}\n\treturn true\n}\n\n// Scan a quoted scalar.\nfunc yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool {\n\t// Eat the left quote.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the content of the quoted scalar.\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tfor {\n\t\t// Check that there are no document indicators at the beginning of the line.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected document indicator\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for EOF.\n\t\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected end of stream\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tleading_blanks := false\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\t\tif single && parser.buffer[parser.buffer_pos] == '\\'' && parser.buffer[parser.buffer_pos+1] == '\\'' {\n\t\t\t\t// Is is an escaped single quote.\n\t\t\t\ts = append(s, '\\'')\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t} else if single && parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\t// It is a right single quote.\n\t\t\t\tbreak\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\t// It is a right double quote.\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' && is_break(parser.buffer, parser.buffer_pos+1) {\n\t\t\t\t// It is an escaped line break.\n\t\t\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip(parser)\n\t\t\t\tskip_line(parser)\n\t\t\t\tleading_blanks = true\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' {\n\t\t\t\t// It is an escape sequence.\n\t\t\t\tcode_length := 0\n\n\t\t\t\t// Check the escape character.\n\t\t\t\tswitch parser.buffer[parser.buffer_pos+1] {\n\t\t\t\tcase '0':\n\t\t\t\t\ts = append(s, 0)\n\t\t\t\tcase 'a':\n\t\t\t\t\ts = append(s, '\\x07')\n\t\t\t\tcase 'b':\n\t\t\t\t\ts = append(s, '\\x08')\n\t\t\t\tcase 't', '\\t':\n\t\t\t\t\ts = append(s, '\\x09')\n\t\t\t\tcase 'n':\n\t\t\t\t\ts = append(s, '\\x0A')\n\t\t\t\tcase 'v':\n\t\t\t\t\ts = append(s, '\\x0B')\n\t\t\t\tcase 'f':\n\t\t\t\t\ts = append(s, '\\x0C')\n\t\t\t\tcase 'r':\n\t\t\t\t\ts = append(s, '\\x0D')\n\t\t\t\tcase 'e':\n\t\t\t\t\ts = append(s, '\\x1B')\n\t\t\t\tcase ' ':\n\t\t\t\t\ts = append(s, '\\x20')\n\t\t\t\tcase '\"':\n\t\t\t\t\ts = append(s, '\"')\n\t\t\t\tcase '\\'':\n\t\t\t\t\ts = append(s, '\\'')\n\t\t\t\tcase '\\\\':\n\t\t\t\t\ts = append(s, '\\\\')\n\t\t\t\tcase 'N': // NEL (#x85)\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\x85')\n\t\t\t\tcase '_': // #xA0\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\xA0')\n\t\t\t\tcase 'L': // LS (#x2028)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA8')\n\t\t\t\tcase 'P': // PS (#x2029)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA9')\n\t\t\t\tcase 'x':\n\t\t\t\t\tcode_length = 2\n\t\t\t\tcase 'u':\n\t\t\t\t\tcode_length = 4\n\t\t\t\tcase 'U':\n\t\t\t\t\tcode_length = 8\n\t\t\t\tdefault:\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\tstart_mark, \"found unknown escape character\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t\t// Consume an arbitrary escape code.\n\t\t\t\tif code_length > 0 {\n\t\t\t\t\tvar value int\n\n\t\t\t\t\t// Scan the character value.\n\t\t\t\t\tif parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tif !is_hex(parser.buffer, parser.buffer_pos+k) {\n\t\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\t\tstart_mark, \"did not find expected hexdecimal number\")\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check the value and write the character.\n\t\t\t\t\tif (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF {\n\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\tstart_mark, \"found invalid Unicode character escape code\")\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tif value <= 0x7F {\n\t\t\t\t\t\ts = append(s, byte(value))\n\t\t\t\t\t} else if value <= 0x7FF {\n\t\t\t\t\t\ts = append(s, byte(0xC0+(value>>6)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t\t\ts = append(s, byte(0xE0+(value>>12)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, byte(0xF0+(value>>18)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>12)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Advance the pointer.\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tskip(parser)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// It is a non-escaped non-blank character.\n\t\t\t\ts = read(parser, s)\n\t\t\t}\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if we are at the end of the scalar.\n\t\tif single {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Join the whitespaces or fold line breaks.\n\t\tif leading_blanks {\n\t\t\t// Do we need to fold line breaks?\n\t\t\tif len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts = append(s, leading_break...)\n\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t}\n\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\tleading_break = leading_break[:0]\n\t\t} else {\n\t\t\ts = append(s, whitespaces...)\n\t\t\twhitespaces = whitespaces[:0]\n\t\t}\n\t}\n\n\t// Eat the right quote.\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_SINGLE_QUOTED_SCALAR_STYLE,\n\t}\n\tif !single {\n\t\ttoken.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan a plain scalar.\nfunc yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool {\n\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tvar leading_blanks bool\n\tvar indent = parser.indent + 1\n\n\tstart_mark := parser.mark\n\tend_mark := parser.mark\n\n\t// Consume the content of the plain scalar.\n\tfor {\n\t\t// Check for a document indicator.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for a comment.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\n\t\t\t// Check for indicators that may end a plain scalar.\n\t\t\tif (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) ||\n\t\t\t\t(parser.flow_level > 0 &&\n\t\t\t\t\t(parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '}')) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we need to join whitespaces and breaks.\n\t\t\tif leading_blanks || len(whitespaces) > 0 {\n\t\t\t\tif leading_blanks {\n\t\t\t\t\t// Do we need to fold line breaks?\n\t\t\t\t\tif leading_break[0] == '\\n' {\n\t\t\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, leading_break...)\n\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t}\n\t\t\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\t\t\tleading_break = leading_break[:0]\n\t\t\t\t\tleading_blanks = false\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, whitespaces...)\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Copy the character.\n\t\t\ts = read(parser, s)\n\n\t\t\tend_mark = parser.mark\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Is it the end?\n\t\tif !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\n\t\t\t\t// Check for tab characters that abuse indentation.\n\t\t\t\tif leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a plain scalar\",\n\t\t\t\t\t\tstart_mark, \"found a tab character that violates indentation\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check indentation level.\n\t\tif parser.flow_level == 0 && parser.mark.column < indent {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_PLAIN_SCALAR_STYLE,\n\t}\n\n\t// Note that we change the 'simple_key_allowed' flag.\n\tif leading_blanks {\n\t\tparser.simple_key_allowed = true\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/sorter.go",
    "content": "package yaml\n\nimport (\n\t\"reflect\"\n\t\"unicode\"\n)\n\ntype keyList []reflect.Value\n\nfunc (l keyList) Len() int      { return len(l) }\nfunc (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] }\nfunc (l keyList) Less(i, j int) bool {\n\ta := l[i]\n\tb := l[j]\n\tak := a.Kind()\n\tbk := b.Kind()\n\tfor (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() {\n\t\ta = a.Elem()\n\t\tak = a.Kind()\n\t}\n\tfor (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() {\n\t\tb = b.Elem()\n\t\tbk = b.Kind()\n\t}\n\taf, aok := keyFloat(a)\n\tbf, bok := keyFloat(b)\n\tif aok && bok {\n\t\tif af != bf {\n\t\t\treturn af < bf\n\t\t}\n\t\tif ak != bk {\n\t\t\treturn ak < bk\n\t\t}\n\t\treturn numLess(a, b)\n\t}\n\tif ak != reflect.String || bk != reflect.String {\n\t\treturn ak < bk\n\t}\n\tar, br := []rune(a.String()), []rune(b.String())\n\tfor i := 0; i < len(ar) && i < len(br); i++ {\n\t\tif ar[i] == br[i] {\n\t\t\tcontinue\n\t\t}\n\t\tal := unicode.IsLetter(ar[i])\n\t\tbl := unicode.IsLetter(br[i])\n\t\tif al && bl {\n\t\t\treturn ar[i] < br[i]\n\t\t}\n\t\tif al || bl {\n\t\t\treturn bl\n\t\t}\n\t\tvar ai, bi int\n\t\tvar an, bn int64\n\t\tif ar[i] == '0' || br[i] == '0' {\n\t\t\tfor j := i-1; j >= 0 && unicode.IsDigit(ar[j]); j-- {\n\t\t\t\tif ar[j] != '0' {\n\t\t\t\t\tan = 1\n\t\t\t\t\tbn = 1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ {\n\t\t\tan = an*10 + int64(ar[ai]-'0')\n\t\t}\n\t\tfor bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ {\n\t\t\tbn = bn*10 + int64(br[bi]-'0')\n\t\t}\n\t\tif an != bn {\n\t\t\treturn an < bn\n\t\t}\n\t\tif ai != bi {\n\t\t\treturn ai < bi\n\t\t}\n\t\treturn ar[i] < br[i]\n\t}\n\treturn len(ar) < len(br)\n}\n\n// keyFloat returns a float value for v if it is a number/bool\n// and whether it is a number/bool or not.\nfunc keyFloat(v reflect.Value) (f float64, ok bool) {\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn float64(v.Int()), true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float(), true\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn float64(v.Uint()), true\n\tcase reflect.Bool:\n\t\tif v.Bool() {\n\t\t\treturn 1, true\n\t\t}\n\t\treturn 0, true\n\t}\n\treturn 0, false\n}\n\n// numLess returns whether a < b.\n// a and b must necessarily have the same kind.\nfunc numLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\t}\n\tpanic(\"not a number\")\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/writerc.go",
    "content": "package yaml\n\n// Set the writer error and return false.\nfunc yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_WRITER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Flush the output buffer.\nfunc yaml_emitter_flush(emitter *yaml_emitter_t) bool {\n\tif emitter.write_handler == nil {\n\t\tpanic(\"write handler not set\")\n\t}\n\n\t// Check if the buffer is empty.\n\tif emitter.buffer_pos == 0 {\n\t\treturn true\n\t}\n\n\tif err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {\n\t\treturn yaml_emitter_set_writer_error(emitter, \"write error: \"+err.Error())\n\t}\n\temitter.buffer_pos = 0\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/yaml.go",
    "content": "// Package yaml implements YAML support for the Go language.\n//\n// Source code and other details for the project are available at GitHub:\n//\n//   https://github.com/go-yaml/yaml\n//\npackage yaml\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// MapSlice encodes and decodes as a YAML map.\n// The order of keys is preserved when encoding and decoding.\ntype MapSlice []MapItem\n\n// MapItem is an item in a MapSlice.\ntype MapItem struct {\n\tKey, Value interface{}\n}\n\n// The Unmarshaler interface may be implemented by types to customize their\n// behavior when being unmarshaled from a YAML document. The UnmarshalYAML\n// method receives a function that may be called to unmarshal the original\n// YAML value into a field or variable. It is safe to call the unmarshal\n// function parameter more than once if necessary.\ntype Unmarshaler interface {\n\tUnmarshalYAML(unmarshal func(interface{}) error) error\n}\n\n// The Marshaler interface may be implemented by types to customize their\n// behavior when being marshaled into a YAML document. The returned value\n// is marshaled in place of the original value implementing Marshaler.\n//\n// If an error is returned by MarshalYAML, the marshaling procedure stops\n// and returns with the provided error.\ntype Marshaler interface {\n\tMarshalYAML() (interface{}, error)\n}\n\n// Unmarshal decodes the first document found within the in byte slice\n// and assigns decoded values into the out value.\n//\n// Maps and pointers (to a struct, string, int, etc) are accepted as out\n// values. If an internal pointer within a struct is not initialized,\n// the yaml package will initialize it if necessary for unmarshalling\n// the provided data. The out parameter must not be nil.\n//\n// The type of the decoded values should be compatible with the respective\n// values in out. If one or more values cannot be decoded due to a type\n// mismatches, decoding continues partially until the end of the YAML\n// content, and a *yaml.TypeError is returned with details for all\n// missed values.\n//\n// Struct fields are only unmarshalled if they are exported (have an\n// upper case first letter), and are unmarshalled using the field name\n// lowercased as the default key. Custom keys may be defined via the\n// \"yaml\" name in the field tag: the content preceding the first comma\n// is used as the key, and the following comma-separated options are\n// used to tweak the marshalling process (see Marshal).\n// Conflicting names result in a runtime error.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     var t T\n//     yaml.Unmarshal([]byte(\"a: 1\\nb: 2\"), &t)\n//\n// See the documentation of Marshal for the format of tags and a list of\n// supported tag options.\n//\nfunc Unmarshal(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, false)\n}\n\n// UnmarshalStrict is like Unmarshal except that any fields that are found\n// in the data that do not have corresponding struct members, or mapping\n// keys that are duplicates, will result in\n// an error.\nfunc UnmarshalStrict(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, true)\n}\n\n// A Decorder reads and decodes YAML values from an input stream.\ntype Decoder struct {\n\tstrict bool\n\tparser *parser\n}\n\n// NewDecoder returns a new decoder that reads from r.\n//\n// The decoder introduces its own buffering and may read\n// data from r beyond the YAML values requested.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{\n\t\tparser: newParserFromReader(r),\n\t}\n}\n\n// SetStrict sets whether strict decoding behaviour is enabled when\n// decoding items in the data (see UnmarshalStrict). By default, decoding is not strict.\nfunc (dec *Decoder) SetStrict(strict bool) {\n\tdec.strict = strict\n}\n\n// Decode reads the next YAML-encoded value from its input\n// and stores it in the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (dec *Decoder) Decode(v interface{}) (err error) {\n\td := newDecoder(dec.strict)\n\tdefer handleErr(&err)\n\tnode := dec.parser.parse()\n\tif node == nil {\n\t\treturn io.EOF\n\t}\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(node, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\nfunc unmarshal(in []byte, out interface{}, strict bool) (err error) {\n\tdefer handleErr(&err)\n\td := newDecoder(strict)\n\tp := newParser(in)\n\tdefer p.destroy()\n\tnode := p.parse()\n\tif node != nil {\n\t\tv := reflect.ValueOf(out)\n\t\tif v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t\td.unmarshal(node, v)\n\t}\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Marshal serializes the value provided into a YAML document. The structure\n// of the generated document will reflect the structure of the value itself.\n// Maps and pointers (to struct, string, int, etc) are accepted as the in value.\n//\n// Struct fields are only marshalled if they are exported (have an upper case\n// first letter), and are marshalled using the field name lowercased as the\n// default key. Custom keys may be defined via the \"yaml\" name in the field\n// tag: the content preceding the first comma is used as the key, and the\n// following comma-separated options are used to tweak the marshalling process.\n// Conflicting names result in a runtime error.\n//\n// The field tag format accepted is:\n//\n//     `(...) yaml:\"[<key>][,<flag1>[,<flag2>]]\" (...)`\n//\n// The following flags are currently supported:\n//\n//     omitempty    Only include the field if it's not set to the zero\n//                  value for the type or to empty slices or maps.\n//                  Zero valued structs will be omitted if all their public\n//                  fields are zero, unless they implement an IsZero\n//                  method (see the IsZeroer interface type), in which\n//                  case the field will be included if that method returns true.\n//\n//     flow         Marshal using a flow style (useful for structs,\n//                  sequences and maps).\n//\n//     inline       Inline the field, which must be a struct or a map,\n//                  causing all of its fields or keys to be processed as if\n//                  they were part of the outer struct. For maps, keys must\n//                  not conflict with the yaml keys of other struct fields.\n//\n// In addition, if the key is \"-\", the field is ignored.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     yaml.Marshal(&T{B: 2}) // Returns \"b: 2\\n\"\n//     yaml.Marshal(&T{F: 1}} // Returns \"a: 1\\nb: 0\\n\"\n//\nfunc Marshal(in interface{}) (out []byte, err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(in))\n\te.finish()\n\tout = e.out\n\treturn\n}\n\n// An Encoder writes YAML values to an output stream.\ntype Encoder struct {\n\tencoder *encoder\n}\n\n// EncoderOption is an option for construcing an encoder\ntype EncoderOption func(*encoder)\n\n// IncludeOmitted is for when we want to encode a struct but including fields that were marked to be omitted\nfunc IncludeOmitted(e *encoder) {\n\te.includeOmitted = true\n}\n\n// NewEncoder returns a new encoder that writes to w.\n// The Encoder should be closed after use to flush all data\n// to w.\nfunc NewEncoder(w io.Writer, opts ...EncoderOption) *Encoder {\n\tencoder := newEncoderWithWriter(w)\n\n\tfor _, opt := range opts {\n\t\topt(encoder)\n\t}\n\n\treturn &Encoder{\n\t\tencoder: encoder,\n\t}\n}\n\n// Encode writes the YAML encoding of v to the stream.\n// If multiple items are encoded to the stream, the\n// second and subsequent document will be preceded\n// with a \"---\" document separator, but the first will not.\n//\n// See the documentation for Marshal for details about the conversion of Go\n// values to YAML.\nfunc (e *Encoder) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te.encoder.marshalDoc(\"\", reflect.ValueOf(v))\n\treturn nil\n}\n\n// Close closes the encoder by writing any remaining data.\n// It does not write a stream terminating string \"...\".\nfunc (e *Encoder) Close() (err error) {\n\tdefer handleErr(&err)\n\te.encoder.finish()\n\treturn nil\n}\n\nfunc handleErr(err *error) {\n\tif v := recover(); v != nil {\n\t\tif e, ok := v.(yamlError); ok {\n\t\t\t*err = e.err\n\t\t} else {\n\t\t\tpanic(v)\n\t\t}\n\t}\n}\n\ntype yamlError struct {\n\terr error\n}\n\nfunc fail(err error) {\n\tpanic(yamlError{err})\n}\n\nfunc failf(format string, args ...interface{}) {\n\tpanic(yamlError{fmt.Errorf(\"yaml: \"+format, args...)})\n}\n\n// A TypeError is returned by Unmarshal when one or more fields in\n// the YAML document cannot be properly decoded into the requested\n// types. When this error is returned, the value is still\n// unmarshaled partially.\ntype TypeError struct {\n\tErrors []string\n}\n\nfunc (e *TypeError) Error() string {\n\treturn fmt.Sprintf(\"yaml: unmarshal errors:\\n  %s\", strings.Join(e.Errors, \"\\n  \"))\n}\n\n// --------------------------------------------------------------------------\n// Maintain a mapping of keys to structure field indexes\n\n// The code in this section was copied from mgo/bson.\n\n// structInfo holds details for the serialization of fields of\n// a given struct.\ntype structInfo struct {\n\tFieldsMap  map[string]fieldInfo\n\tFieldsList []fieldInfo\n\n\t// InlineMap is the number of the field in the struct that\n\t// contains an ,inline map, or -1 if there's none.\n\tInlineMap int\n}\n\ntype fieldInfo struct {\n\tKey       string\n\tNum       int\n\tOmitEmpty bool\n\tFlow      bool\n\t// Id holds the unique field identifier, so we can cheaply\n\t// check for field duplicates without maintaining an extra map.\n\tId int\n\n\t// Inline holds the field index if the field is part of an inlined struct.\n\tInline []int\n}\n\nvar structMap = make(map[reflect.Type]*structInfo)\nvar fieldMapMutex sync.RWMutex\n\nfunc getStructInfo(st reflect.Type) (*structInfo, error) {\n\tfieldMapMutex.RLock()\n\tsinfo, found := structMap[st]\n\tfieldMapMutex.RUnlock()\n\tif found {\n\t\treturn sinfo, nil\n\t}\n\n\tn := st.NumField()\n\tfieldsMap := make(map[string]fieldInfo)\n\tfieldsList := make([]fieldInfo, 0, n)\n\tinlineMap := -1\n\tfor i := 0; i != n; i++ {\n\t\tfield := st.Field(i)\n\t\tif field.PkgPath != \"\" && !field.Anonymous {\n\t\t\tcontinue // Private field\n\t\t}\n\n\t\tinfo := fieldInfo{Num: i}\n\n\t\ttag := field.Tag.Get(\"yaml\")\n\t\tif tag == \"\" && strings.Index(string(field.Tag), \":\") < 0 {\n\t\t\ttag = string(field.Tag)\n\t\t}\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tinline := false\n\t\tfields := strings.Split(tag, \",\")\n\t\tif len(fields) > 1 {\n\t\t\tfor _, flag := range fields[1:] {\n\t\t\t\tswitch flag {\n\t\t\t\tcase \"omitempty\":\n\t\t\t\t\tinfo.OmitEmpty = true\n\t\t\t\tcase \"flow\":\n\t\t\t\t\tinfo.Flow = true\n\t\t\t\tcase \"inline\":\n\t\t\t\t\tinline = true\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, errors.New(fmt.Sprintf(\"Unsupported flag %q in tag %q of type %s\", flag, tag, st))\n\t\t\t\t}\n\t\t\t}\n\t\t\ttag = fields[0]\n\t\t}\n\n\t\tif inline {\n\t\t\tswitch field.Type.Kind() {\n\t\t\tcase reflect.Map:\n\t\t\t\tif inlineMap >= 0 {\n\t\t\t\t\treturn nil, errors.New(\"Multiple ,inline maps in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tif field.Type.Key() != reflect.TypeOf(\"\") {\n\t\t\t\t\treturn nil, errors.New(\"Option ,inline needs a map with string keys in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tinlineMap = info.Num\n\t\t\tcase reflect.Struct:\n\t\t\t\tsinfo, err := getStructInfo(field.Type)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tfor _, finfo := range sinfo.FieldsList {\n\t\t\t\t\tif _, found := fieldsMap[finfo.Key]; found {\n\t\t\t\t\t\tmsg := \"Duplicated key '\" + finfo.Key + \"' in struct \" + st.String()\n\t\t\t\t\t\treturn nil, errors.New(msg)\n\t\t\t\t\t}\n\t\t\t\t\tif finfo.Inline == nil {\n\t\t\t\t\t\tfinfo.Inline = []int{i, finfo.Num}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfinfo.Inline = append([]int{i}, finfo.Inline...)\n\t\t\t\t\t}\n\t\t\t\t\tfinfo.Id = len(fieldsList)\n\t\t\t\t\tfieldsMap[finfo.Key] = finfo\n\t\t\t\t\tfieldsList = append(fieldsList, finfo)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\t//return nil, errors.New(\"Option ,inline needs a struct value or map field\")\n\t\t\t\treturn nil, errors.New(\"Option ,inline needs a struct value field\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif tag != \"\" {\n\t\t\tinfo.Key = tag\n\t\t} else {\n\t\t\tinfo.Key = strings.ToLower(field.Name)\n\t\t}\n\n\t\tif _, found = fieldsMap[info.Key]; found {\n\t\t\tmsg := \"Duplicated key '\" + info.Key + \"' in struct \" + st.String()\n\t\t\treturn nil, errors.New(msg)\n\t\t}\n\n\t\tinfo.Id = len(fieldsList)\n\t\tfieldsList = append(fieldsList, info)\n\t\tfieldsMap[info.Key] = info\n\t}\n\n\tsinfo = &structInfo{\n\t\tFieldsMap:  fieldsMap,\n\t\tFieldsList: fieldsList,\n\t\tInlineMap:  inlineMap,\n\t}\n\n\tfieldMapMutex.Lock()\n\tstructMap[st] = sinfo\n\tfieldMapMutex.Unlock()\n\treturn sinfo, nil\n}\n\n// IsZeroer is used to check whether an object is zero to\n// determine whether it should be omitted when marshaling\n// with the omitempty flag. One notable implementation\n// is time.Time.\ntype IsZeroer interface {\n\tIsZero() bool\n}\n\nfunc isZero(v reflect.Value) bool {\n\tkind := v.Kind()\n\tif z, ok := v.Interface().(IsZeroer); ok {\n\t\tif (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn z.IsZero()\n\t}\n\tswitch kind {\n\tcase reflect.String:\n\t\treturn len(v.String()) == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Slice:\n\t\treturn v.Len() == 0\n\tcase reflect.Map:\n\t\treturn v.Len() == 0\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Struct:\n\t\tvt := v.Type()\n\t\tfor i := v.NumField() - 1; i >= 0; i-- {\n\t\t\tif vt.Field(i).PkgPath != \"\" {\n\t\t\t\tcontinue // Private field\n\t\t\t}\n\t\t\tif !isZero(v.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/yamlh.go",
    "content": "package yaml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// The version directive data.\ntype yaml_version_directive_t struct {\n\tmajor int8 // The major version number.\n\tminor int8 // The minor version number.\n}\n\n// The tag directive data.\ntype yaml_tag_directive_t struct {\n\thandle []byte // The tag handle.\n\tprefix []byte // The tag prefix.\n}\n\ntype yaml_encoding_t int\n\n// The stream encoding.\nconst (\n\t// Let the parser choose the encoding.\n\tyaml_ANY_ENCODING yaml_encoding_t = iota\n\n\tyaml_UTF8_ENCODING    // The default UTF-8 encoding.\n\tyaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM.\n\tyaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM.\n)\n\ntype yaml_break_t int\n\n// Line break types.\nconst (\n\t// Let the parser choose the break type.\n\tyaml_ANY_BREAK yaml_break_t = iota\n\n\tyaml_CR_BREAK   // Use CR for line breaks (Mac style).\n\tyaml_LN_BREAK   // Use LN for line breaks (Unix style).\n\tyaml_CRLN_BREAK // Use CR LN for line breaks (DOS style).\n)\n\ntype yaml_error_type_t int\n\n// Many bad things could happen with the parser and emitter.\nconst (\n\t// No error is produced.\n\tyaml_NO_ERROR yaml_error_type_t = iota\n\n\tyaml_MEMORY_ERROR   // Cannot allocate or reallocate a block of memory.\n\tyaml_READER_ERROR   // Cannot read or decode the input stream.\n\tyaml_SCANNER_ERROR  // Cannot scan the input stream.\n\tyaml_PARSER_ERROR   // Cannot parse the input stream.\n\tyaml_COMPOSER_ERROR // Cannot compose a YAML document.\n\tyaml_WRITER_ERROR   // Cannot write to the output stream.\n\tyaml_EMITTER_ERROR  // Cannot emit a YAML stream.\n)\n\n// The pointer position.\ntype yaml_mark_t struct {\n\tindex  int // The position index.\n\tline   int // The position line.\n\tcolumn int // The position column.\n}\n\n// Node Styles\n\ntype yaml_style_t int8\n\ntype yaml_scalar_style_t yaml_style_t\n\n// Scalar styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota\n\n\tyaml_PLAIN_SCALAR_STYLE         // The plain scalar style.\n\tyaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style.\n\tyaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style.\n\tyaml_LITERAL_SCALAR_STYLE       // The literal scalar style.\n\tyaml_FOLDED_SCALAR_STYLE        // The folded scalar style.\n)\n\ntype yaml_sequence_style_t yaml_style_t\n\n// Sequence styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota\n\n\tyaml_BLOCK_SEQUENCE_STYLE // The block sequence style.\n\tyaml_FLOW_SEQUENCE_STYLE  // The flow sequence style.\n)\n\ntype yaml_mapping_style_t yaml_style_t\n\n// Mapping styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota\n\n\tyaml_BLOCK_MAPPING_STYLE // The block mapping style.\n\tyaml_FLOW_MAPPING_STYLE  // The flow mapping style.\n)\n\n// Tokens\n\ntype yaml_token_type_t int\n\n// Token types.\nconst (\n\t// An empty token.\n\tyaml_NO_TOKEN yaml_token_type_t = iota\n\n\tyaml_STREAM_START_TOKEN // A STREAM-START token.\n\tyaml_STREAM_END_TOKEN   // A STREAM-END token.\n\n\tyaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token.\n\tyaml_TAG_DIRECTIVE_TOKEN     // A TAG-DIRECTIVE token.\n\tyaml_DOCUMENT_START_TOKEN    // A DOCUMENT-START token.\n\tyaml_DOCUMENT_END_TOKEN      // A DOCUMENT-END token.\n\n\tyaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token.\n\tyaml_BLOCK_MAPPING_START_TOKEN  // A BLOCK-SEQUENCE-END token.\n\tyaml_BLOCK_END_TOKEN            // A BLOCK-END token.\n\n\tyaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token.\n\tyaml_FLOW_SEQUENCE_END_TOKEN   // A FLOW-SEQUENCE-END token.\n\tyaml_FLOW_MAPPING_START_TOKEN  // A FLOW-MAPPING-START token.\n\tyaml_FLOW_MAPPING_END_TOKEN    // A FLOW-MAPPING-END token.\n\n\tyaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token.\n\tyaml_FLOW_ENTRY_TOKEN  // A FLOW-ENTRY token.\n\tyaml_KEY_TOKEN         // A KEY token.\n\tyaml_VALUE_TOKEN       // A VALUE token.\n\n\tyaml_ALIAS_TOKEN  // An ALIAS token.\n\tyaml_ANCHOR_TOKEN // An ANCHOR token.\n\tyaml_TAG_TOKEN    // A TAG token.\n\tyaml_SCALAR_TOKEN // A SCALAR token.\n)\n\nfunc (tt yaml_token_type_t) String() string {\n\tswitch tt {\n\tcase yaml_NO_TOKEN:\n\t\treturn \"yaml_NO_TOKEN\"\n\tcase yaml_STREAM_START_TOKEN:\n\t\treturn \"yaml_STREAM_START_TOKEN\"\n\tcase yaml_STREAM_END_TOKEN:\n\t\treturn \"yaml_STREAM_END_TOKEN\"\n\tcase yaml_VERSION_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_VERSION_DIRECTIVE_TOKEN\"\n\tcase yaml_TAG_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_TAG_DIRECTIVE_TOKEN\"\n\tcase yaml_DOCUMENT_START_TOKEN:\n\t\treturn \"yaml_DOCUMENT_START_TOKEN\"\n\tcase yaml_DOCUMENT_END_TOKEN:\n\t\treturn \"yaml_DOCUMENT_END_TOKEN\"\n\tcase yaml_BLOCK_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_BLOCK_SEQUENCE_START_TOKEN\"\n\tcase yaml_BLOCK_MAPPING_START_TOKEN:\n\t\treturn \"yaml_BLOCK_MAPPING_START_TOKEN\"\n\tcase yaml_BLOCK_END_TOKEN:\n\t\treturn \"yaml_BLOCK_END_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_START_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_END_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_END_TOKEN\"\n\tcase yaml_FLOW_MAPPING_START_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_START_TOKEN\"\n\tcase yaml_FLOW_MAPPING_END_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_END_TOKEN\"\n\tcase yaml_BLOCK_ENTRY_TOKEN:\n\t\treturn \"yaml_BLOCK_ENTRY_TOKEN\"\n\tcase yaml_FLOW_ENTRY_TOKEN:\n\t\treturn \"yaml_FLOW_ENTRY_TOKEN\"\n\tcase yaml_KEY_TOKEN:\n\t\treturn \"yaml_KEY_TOKEN\"\n\tcase yaml_VALUE_TOKEN:\n\t\treturn \"yaml_VALUE_TOKEN\"\n\tcase yaml_ALIAS_TOKEN:\n\t\treturn \"yaml_ALIAS_TOKEN\"\n\tcase yaml_ANCHOR_TOKEN:\n\t\treturn \"yaml_ANCHOR_TOKEN\"\n\tcase yaml_TAG_TOKEN:\n\t\treturn \"yaml_TAG_TOKEN\"\n\tcase yaml_SCALAR_TOKEN:\n\t\treturn \"yaml_SCALAR_TOKEN\"\n\t}\n\treturn \"<unknown token>\"\n}\n\n// The token structure.\ntype yaml_token_t struct {\n\t// The token type.\n\ttyp yaml_token_type_t\n\n\t// The start/end of the token.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The stream encoding (for yaml_STREAM_START_TOKEN).\n\tencoding yaml_encoding_t\n\n\t// The alias/anchor/scalar value or tag/tag directive handle\n\t// (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN).\n\tvalue []byte\n\n\t// The tag suffix (for yaml_TAG_TOKEN).\n\tsuffix []byte\n\n\t// The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN).\n\tprefix []byte\n\n\t// The scalar style (for yaml_SCALAR_TOKEN).\n\tstyle yaml_scalar_style_t\n\n\t// The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN).\n\tmajor, minor int8\n}\n\n// Events\n\ntype yaml_event_type_t int8\n\n// Event types.\nconst (\n\t// An empty event.\n\tyaml_NO_EVENT yaml_event_type_t = iota\n\n\tyaml_STREAM_START_EVENT   // A STREAM-START event.\n\tyaml_STREAM_END_EVENT     // A STREAM-END event.\n\tyaml_DOCUMENT_START_EVENT // A DOCUMENT-START event.\n\tyaml_DOCUMENT_END_EVENT   // A DOCUMENT-END event.\n\tyaml_ALIAS_EVENT          // An ALIAS event.\n\tyaml_SCALAR_EVENT         // A SCALAR event.\n\tyaml_SEQUENCE_START_EVENT // A SEQUENCE-START event.\n\tyaml_SEQUENCE_END_EVENT   // A SEQUENCE-END event.\n\tyaml_MAPPING_START_EVENT  // A MAPPING-START event.\n\tyaml_MAPPING_END_EVENT    // A MAPPING-END event.\n)\n\nvar eventStrings = []string{\n\tyaml_NO_EVENT:             \"none\",\n\tyaml_STREAM_START_EVENT:   \"stream start\",\n\tyaml_STREAM_END_EVENT:     \"stream end\",\n\tyaml_DOCUMENT_START_EVENT: \"document start\",\n\tyaml_DOCUMENT_END_EVENT:   \"document end\",\n\tyaml_ALIAS_EVENT:          \"alias\",\n\tyaml_SCALAR_EVENT:         \"scalar\",\n\tyaml_SEQUENCE_START_EVENT: \"sequence start\",\n\tyaml_SEQUENCE_END_EVENT:   \"sequence end\",\n\tyaml_MAPPING_START_EVENT:  \"mapping start\",\n\tyaml_MAPPING_END_EVENT:    \"mapping end\",\n}\n\nfunc (e yaml_event_type_t) String() string {\n\tif e < 0 || int(e) >= len(eventStrings) {\n\t\treturn fmt.Sprintf(\"unknown event %d\", e)\n\t}\n\treturn eventStrings[e]\n}\n\n// The event structure.\ntype yaml_event_t struct {\n\n\t// The event type.\n\ttyp yaml_event_type_t\n\n\t// The start and end of the event.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The document encoding (for yaml_STREAM_START_EVENT).\n\tencoding yaml_encoding_t\n\n\t// The version directive (for yaml_DOCUMENT_START_EVENT).\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives (for yaml_DOCUMENT_START_EVENT).\n\ttag_directives []yaml_tag_directive_t\n\n\t// The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT).\n\tanchor []byte\n\n\t// The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\ttag []byte\n\n\t// The scalar value (for yaml_SCALAR_EVENT).\n\tvalue []byte\n\n\t// Is the document start/end indicator implicit, or the tag optional?\n\t// (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT).\n\timplicit bool\n\n\t// Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT).\n\tquoted_implicit bool\n\n\t// The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\tstyle yaml_style_t\n}\n\nfunc (e *yaml_event_t) scalar_style() yaml_scalar_style_t     { return yaml_scalar_style_t(e.style) }\nfunc (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) }\nfunc (e *yaml_event_t) mapping_style() yaml_mapping_style_t   { return yaml_mapping_style_t(e.style) }\n\n// Nodes\n\nconst (\n\tyaml_NULL_TAG      = \"tag:yaml.org,2002:null\"      // The tag !!null with the only possible value: null.\n\tyaml_BOOL_TAG      = \"tag:yaml.org,2002:bool\"      // The tag !!bool with the values: true and false.\n\tyaml_STR_TAG       = \"tag:yaml.org,2002:str\"       // The tag !!str for string values.\n\tyaml_INT_TAG       = \"tag:yaml.org,2002:int\"       // The tag !!int for integer values.\n\tyaml_FLOAT_TAG     = \"tag:yaml.org,2002:float\"     // The tag !!float for float values.\n\tyaml_TIMESTAMP_TAG = \"tag:yaml.org,2002:timestamp\" // The tag !!timestamp for date and time values.\n\n\tyaml_SEQ_TAG = \"tag:yaml.org,2002:seq\" // The tag !!seq is used to denote sequences.\n\tyaml_MAP_TAG = \"tag:yaml.org,2002:map\" // The tag !!map is used to denote mapping.\n\n\t// Not in original libyaml.\n\tyaml_BINARY_TAG = \"tag:yaml.org,2002:binary\"\n\tyaml_MERGE_TAG  = \"tag:yaml.org,2002:merge\"\n\n\tyaml_DEFAULT_SCALAR_TAG   = yaml_STR_TAG // The default scalar tag is !!str.\n\tyaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq.\n\tyaml_DEFAULT_MAPPING_TAG  = yaml_MAP_TAG // The default mapping tag is !!map.\n)\n\ntype yaml_node_type_t int\n\n// Node types.\nconst (\n\t// An empty node.\n\tyaml_NO_NODE yaml_node_type_t = iota\n\n\tyaml_SCALAR_NODE   // A scalar node.\n\tyaml_SEQUENCE_NODE // A sequence node.\n\tyaml_MAPPING_NODE  // A mapping node.\n)\n\n// An element of a sequence node.\ntype yaml_node_item_t int\n\n// An element of a mapping node.\ntype yaml_node_pair_t struct {\n\tkey   int // The key of the element.\n\tvalue int // The value of the element.\n}\n\n// The node structure.\ntype yaml_node_t struct {\n\ttyp yaml_node_type_t // The node type.\n\ttag []byte           // The node tag.\n\n\t// The node data.\n\n\t// The scalar parameters (for yaml_SCALAR_NODE).\n\tscalar struct {\n\t\tvalue  []byte              // The scalar value.\n\t\tlength int                 // The length of the scalar value.\n\t\tstyle  yaml_scalar_style_t // The scalar style.\n\t}\n\n\t// The sequence parameters (for YAML_SEQUENCE_NODE).\n\tsequence struct {\n\t\titems_data []yaml_node_item_t    // The stack of sequence items.\n\t\tstyle      yaml_sequence_style_t // The sequence style.\n\t}\n\n\t// The mapping parameters (for yaml_MAPPING_NODE).\n\tmapping struct {\n\t\tpairs_data  []yaml_node_pair_t   // The stack of mapping pairs (key, value).\n\t\tpairs_start *yaml_node_pair_t    // The beginning of the stack.\n\t\tpairs_end   *yaml_node_pair_t    // The end of the stack.\n\t\tpairs_top   *yaml_node_pair_t    // The top of the stack.\n\t\tstyle       yaml_mapping_style_t // The mapping style.\n\t}\n\n\tstart_mark yaml_mark_t // The beginning of the node.\n\tend_mark   yaml_mark_t // The end of the node.\n\n}\n\n// The document structure.\ntype yaml_document_t struct {\n\n\t// The document nodes.\n\tnodes []yaml_node_t\n\n\t// The version directive.\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives.\n\ttag_directives_data  []yaml_tag_directive_t\n\ttag_directives_start int // The beginning of the tag directives list.\n\ttag_directives_end   int // The end of the tag directives list.\n\n\tstart_implicit int // Is the document start indicator implicit?\n\tend_implicit   int // Is the document end indicator implicit?\n\n\t// The start/end of the document.\n\tstart_mark, end_mark yaml_mark_t\n}\n\n// The prototype of a read handler.\n//\n// The read handler is called when the parser needs to read more bytes from the\n// source. The handler should write not more than size bytes to the buffer.\n// The number of written bytes should be set to the size_read variable.\n//\n// [in,out]   data        A pointer to an application data specified by\n//                        yaml_parser_set_input().\n// [out]      buffer      The buffer to write the data from the source.\n// [in]       size        The size of the buffer.\n// [out]      size_read   The actual number of bytes read from the source.\n//\n// On success, the handler should return 1.  If the handler failed,\n// the returned value should be 0. On EOF, the handler should set the\n// size_read to 0 and return 1.\ntype yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error)\n\n// This structure holds information about a potential simple key.\ntype yaml_simple_key_t struct {\n\tpossible     bool        // Is a simple key possible?\n\trequired     bool        // Is a simple key required?\n\ttoken_number int         // The number of the token.\n\tmark         yaml_mark_t // The position mark.\n}\n\n// The states of the parser.\ntype yaml_parser_state_t int\n\nconst (\n\tyaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota\n\n\tyaml_PARSE_IMPLICIT_DOCUMENT_START_STATE           // Expect the beginning of an implicit document.\n\tyaml_PARSE_DOCUMENT_START_STATE                    // Expect DOCUMENT-START.\n\tyaml_PARSE_DOCUMENT_CONTENT_STATE                  // Expect the content of a document.\n\tyaml_PARSE_DOCUMENT_END_STATE                      // Expect DOCUMENT-END.\n\tyaml_PARSE_BLOCK_NODE_STATE                        // Expect a block node.\n\tyaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence.\n\tyaml_PARSE_FLOW_NODE_STATE                         // Expect a flow node.\n\tyaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE        // Expect the first entry of a block sequence.\n\tyaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE              // Expect an entry of a block sequence.\n\tyaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE         // Expect an entry of an indentless sequence.\n\tyaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE           // Expect the first key of a block mapping.\n\tyaml_PARSE_BLOCK_MAPPING_KEY_STATE                 // Expect a block mapping key.\n\tyaml_PARSE_BLOCK_MAPPING_VALUE_STATE               // Expect a block mapping value.\n\tyaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE         // Expect the first entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE               // Expect an entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE   // Expect a key of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE   // Expect the and of an ordered mapping entry.\n\tyaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE            // Expect the first key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_KEY_STATE                  // Expect a key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_VALUE_STATE                // Expect a value of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE          // Expect an empty value of a flow mapping.\n\tyaml_PARSE_END_STATE                               // Expect nothing.\n)\n\nfunc (ps yaml_parser_state_t) String() string {\n\tswitch ps {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn \"yaml_PARSE_STREAM_START_STATE\"\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_CONTENT_STATE\"\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_END_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE\"\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE\"\n\tcase yaml_PARSE_END_STATE:\n\t\treturn \"yaml_PARSE_END_STATE\"\n\t}\n\treturn \"<unknown parser state>\"\n}\n\n// This structure holds aliases data.\ntype yaml_alias_data_t struct {\n\tanchor []byte      // The anchor.\n\tindex  int         // The node id.\n\tmark   yaml_mark_t // The anchor mark.\n}\n\n// The parser structure.\n//\n// All members are internal. Manage the structure using the\n// yaml_parser_ family of functions.\ntype yaml_parser_t struct {\n\n\t// Error handling\n\n\terror yaml_error_type_t // Error type.\n\n\tproblem string // Error description.\n\n\t// The byte about which the problem occurred.\n\tproblem_offset int\n\tproblem_value  int\n\tproblem_mark   yaml_mark_t\n\n\t// The error context.\n\tcontext      string\n\tcontext_mark yaml_mark_t\n\n\t// Reader stuff\n\n\tread_handler yaml_read_handler_t // Read handler.\n\n\tinput_reader io.Reader // File input data.\n\tinput        []byte    // String input data.\n\tinput_pos    int\n\n\teof bool // EOF flag\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\tunread int // The number of unread characters in the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The input encoding.\n\n\toffset int         // The offset of the current position (in bytes).\n\tmark   yaml_mark_t // The mark of the current position.\n\n\t// Scanner stuff\n\n\tstream_start_produced bool // Have we started to scan the input stream?\n\tstream_end_produced   bool // Have we reached the end of the input stream?\n\n\tflow_level int // The number of unclosed '[' and '{' indicators.\n\n\ttokens          []yaml_token_t // The tokens queue.\n\ttokens_head     int            // The head of the tokens queue.\n\ttokens_parsed   int            // The number of tokens fetched from the queue.\n\ttoken_available bool           // Does the tokens queue contain a token ready for dequeueing.\n\n\tindent  int   // The current indentation level.\n\tindents []int // The indentation levels stack.\n\n\tsimple_key_allowed bool                // May a simple key occur at the current position?\n\tsimple_keys        []yaml_simple_key_t // The stack of simple keys.\n\n\t// Parser stuff\n\n\tstate          yaml_parser_state_t    // The current parser state.\n\tstates         []yaml_parser_state_t  // The parser states stack.\n\tmarks          []yaml_mark_t          // The stack of marks.\n\ttag_directives []yaml_tag_directive_t // The list of TAG directives.\n\n\t// Dumper stuff\n\n\taliases []yaml_alias_data_t // The alias data.\n\n\tdocument *yaml_document_t // The currently parsed document.\n}\n\n// Emitter Definitions\n\n// The prototype of a write handler.\n//\n// The write handler is called when the emitter needs to flush the accumulated\n// characters to the output.  The handler should write @a size bytes of the\n// @a buffer to the output.\n//\n// @param[in,out]   data        A pointer to an application data specified by\n//                              yaml_emitter_set_output().\n// @param[in]       buffer      The buffer with bytes to be written.\n// @param[in]       size        The size of the buffer.\n//\n// @returns On success, the handler should return @c 1.  If the handler failed,\n// the returned value should be @c 0.\n//\ntype yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error\n\ntype yaml_emitter_state_t int\n\n// The emitter states.\nconst (\n\t// Expect STREAM-START.\n\tyaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota\n\n\tyaml_EMIT_FIRST_DOCUMENT_START_STATE       // Expect the first DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_START_STATE             // Expect DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_CONTENT_STATE           // Expect the content of a document.\n\tyaml_EMIT_DOCUMENT_END_STATE               // Expect DOCUMENT-END.\n\tyaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE   // Expect the first item of a flow sequence.\n\tyaml_EMIT_FLOW_SEQUENCE_ITEM_STATE         // Expect an item of a flow sequence.\n\tyaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE     // Expect the first key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_KEY_STATE           // Expect a key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE  // Expect a value for a simple key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_VALUE_STATE         // Expect a value of a flow mapping.\n\tyaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE  // Expect the first item of a block sequence.\n\tyaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE        // Expect an item of a block sequence.\n\tyaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE    // Expect the first key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_KEY_STATE          // Expect the key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_VALUE_STATE        // Expect a value of a block mapping.\n\tyaml_EMIT_END_STATE                        // Expect nothing.\n)\n\n// The emitter structure.\n//\n// All members are internal.  Manage the structure using the @c yaml_emitter_\n// family of functions.\ntype yaml_emitter_t struct {\n\n\t// Error handling\n\n\terror   yaml_error_type_t // Error type.\n\tproblem string            // Error description.\n\n\t// Writer stuff\n\n\twrite_handler yaml_write_handler_t // Write handler.\n\n\toutput_buffer *[]byte   // String output data.\n\toutput_writer io.Writer // File output data.\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The stream encoding.\n\n\t// Emitter stuff\n\n\tcanonical   bool         // If the output is in the canonical style?\n\tbest_indent int          // The number of indentation spaces.\n\tbest_width  int          // The preferred width of the output lines.\n\tunicode     bool         // Allow unescaped non-ASCII characters?\n\tline_break  yaml_break_t // The preferred line break.\n\n\tstate  yaml_emitter_state_t   // The current emitter state.\n\tstates []yaml_emitter_state_t // The stack of states.\n\n\tevents      []yaml_event_t // The event queue.\n\tevents_head int            // The head of the event queue.\n\n\tindents []int // The stack of indentation levels.\n\n\ttag_directives []yaml_tag_directive_t // The list of tag directives.\n\n\tindent int // The current indentation level.\n\n\tflow_level int // The current flow level.\n\n\troot_context       bool // Is it the document root context?\n\tsequence_context   bool // Is it a sequence context?\n\tmapping_context    bool // Is it a mapping context?\n\tsimple_key_context bool // Is it a simple mapping key context?\n\n\tline       int  // The current line.\n\tcolumn     int  // The current column.\n\twhitespace bool // If the last character was a whitespace?\n\tindention  bool // If the last character was an indentation character (' ', '-', '?', ':')?\n\topen_ended bool // If an explicit document end is required?\n\n\t// Anchor analysis.\n\tanchor_data struct {\n\t\tanchor []byte // The anchor value.\n\t\talias  bool   // Is it an alias?\n\t}\n\n\t// Tag analysis.\n\ttag_data struct {\n\t\thandle []byte // The tag handle.\n\t\tsuffix []byte // The tag suffix.\n\t}\n\n\t// Scalar analysis.\n\tscalar_data struct {\n\t\tvalue                 []byte              // The scalar value.\n\t\tmultiline             bool                // Does the scalar contain line breaks?\n\t\tflow_plain_allowed    bool                // Can the scalar be expessed in the flow plain style?\n\t\tblock_plain_allowed   bool                // Can the scalar be expressed in the block plain style?\n\t\tsingle_quoted_allowed bool                // Can the scalar be expressed in the single quoted style?\n\t\tblock_allowed         bool                // Can the scalar be expressed in the literal or folded styles?\n\t\tstyle                 yaml_scalar_style_t // The output style.\n\t}\n\n\t// Dumper stuff\n\n\topened bool // If the stream was already opened?\n\tclosed bool // If the stream was already closed?\n\n\t// The information associated with the document nodes.\n\tanchors *struct {\n\t\treferences int  // The number of references.\n\t\tanchor     int  // The anchor id.\n\t\tserialized bool // If the node has been emitted?\n\t}\n\n\tlast_anchor_id int // The last assigned anchor id.\n\n\tdocument *yaml_document_t // The currently emitted document.\n}\n"
  },
  {
    "path": "vendor/github.com/jesseduffield/yaml/yamlprivateh.go",
    "content": "package yaml\n\nconst (\n\t// The size of the input raw buffer.\n\tinput_raw_buffer_size = 512\n\n\t// The size of the input buffer.\n\t// It should be possible to decode the whole raw buffer.\n\tinput_buffer_size = input_raw_buffer_size * 3\n\n\t// The size of the output buffer.\n\toutput_buffer_size = 128\n\n\t// The size of the output raw buffer.\n\t// It should be possible to encode the whole output buffer.\n\toutput_raw_buffer_size = (output_buffer_size*2 + 2)\n\n\t// The size of other stacks and queues.\n\tinitial_stack_size  = 16\n\tinitial_queue_size  = 16\n\tinitial_string_size = 16\n)\n\n// Check if the character at the specified position is an alphabetical\n// character, a digit, '_', or '-'.\nfunc is_alpha(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-'\n}\n\n// Check if the character at the specified position is a digit.\nfunc is_digit(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9'\n}\n\n// Get the value of a digit.\nfunc as_digit(b []byte, i int) int {\n\treturn int(b[i]) - '0'\n}\n\n// Check if the character at the specified position is a hex-digit.\nfunc is_hex(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f'\n}\n\n// Get the value of a hex-digit.\nfunc as_hex(b []byte, i int) int {\n\tbi := b[i]\n\tif bi >= 'A' && bi <= 'F' {\n\t\treturn int(bi) - 'A' + 10\n\t}\n\tif bi >= 'a' && bi <= 'f' {\n\t\treturn int(bi) - 'a' + 10\n\t}\n\treturn int(bi) - '0'\n}\n\n// Check if the character is ASCII.\nfunc is_ascii(b []byte, i int) bool {\n\treturn b[i] <= 0x7F\n}\n\n// Check if the character at the start of the buffer can be printed unescaped.\nfunc is_printable(b []byte, i int) bool {\n\treturn ((b[i] == 0x0A) || // . == #x0A\n\t\t(b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E\n\t\t(b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF\n\t\t(b[i] > 0xC2 && b[i] < 0xED) ||\n\t\t(b[i] == 0xED && b[i+1] < 0xA0) ||\n\t\t(b[i] == 0xEE) ||\n\t\t(b[i] == 0xEF && // #xE000 <= . <= #xFFFD\n\t\t\t!(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF\n\t\t\t!(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF))))\n}\n\n// Check if the character at the specified position is NUL.\nfunc is_z(b []byte, i int) bool {\n\treturn b[i] == 0x00\n}\n\n// Check if the beginning of the buffer is a BOM.\nfunc is_bom(b []byte, i int) bool {\n\treturn b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF\n}\n\n// Check if the character at the specified position is space.\nfunc is_space(b []byte, i int) bool {\n\treturn b[i] == ' '\n}\n\n// Check if the character at the specified position is tab.\nfunc is_tab(b []byte, i int) bool {\n\treturn b[i] == '\\t'\n}\n\n// Check if the character at the specified position is blank (space or tab).\nfunc is_blank(b []byte, i int) bool {\n\t//return is_space(b, i) || is_tab(b, i)\n\treturn b[i] == ' ' || b[i] == '\\t'\n}\n\n// Check if the character at the specified position is a line break.\nfunc is_break(b []byte, i int) bool {\n\treturn (b[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029)\n}\n\nfunc is_crlf(b []byte, i int) bool {\n\treturn b[i] == '\\r' && b[i+1] == '\\n'\n}\n\n// Check if the character is a line break or NUL.\nfunc is_breakz(b []byte, i int) bool {\n\t//return is_break(b, i) || is_z(b, i)\n\treturn (        // is_break:\n\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\t// is_z:\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, or NUL.\nfunc is_spacez(b []byte, i int) bool {\n\t//return is_space(b, i) || is_breakz(b, i)\n\treturn ( // is_space:\n\tb[i] == ' ' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, tab, or NUL.\nfunc is_blankz(b []byte, i int) bool {\n\t//return is_blank(b, i) || is_breakz(b, i)\n\treturn ( // is_blank:\n\tb[i] == ' ' || b[i] == '\\t' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Determine the width of the character.\nfunc width(b byte) int {\n\t// Don't replace these by a switch without first\n\t// confirming that it is being inlined.\n\tif b&0x80 == 0x00 {\n\t\treturn 1\n\t}\n\tif b&0xE0 == 0xC0 {\n\t\treturn 2\n\t}\n\tif b&0xF0 == 0xE0 {\n\t\treturn 3\n\t}\n\tif b&0xF8 == 0xF0 {\n\t\treturn 4\n\t}\n\treturn 0\n\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/.travis.yml",
    "content": "language: go\nsudo: false\ngo:\n  - 1.13.x\n  - tip\n\nbefore_install:\n  - go get -t -v ./...\n\nscript:\n  - ./go.test.sh\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2016 Yasuhiro Matsumoto\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/README.md",
    "content": "# go-colorable\n\n[![Build Status](https://travis-ci.org/mattn/go-colorable.svg?branch=master)](https://travis-ci.org/mattn/go-colorable)\n[![Codecov](https://codecov.io/gh/mattn/go-colorable/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-colorable)\n[![GoDoc](https://godoc.org/github.com/mattn/go-colorable?status.svg)](http://godoc.org/github.com/mattn/go-colorable)\n[![Go Report Card](https://goreportcard.com/badge/mattn/go-colorable)](https://goreportcard.com/report/mattn/go-colorable)\n\nColorable writer for windows.\n\nFor example, most of logger packages doesn't show colors on windows. (I know we can do it with ansicon. But I don't want.)\nThis package is possible to handle escape sequence for ansi color on windows.\n\n## Too Bad!\n\n![](https://raw.githubusercontent.com/mattn/go-colorable/gh-pages/bad.png)\n\n\n## So Good!\n\n![](https://raw.githubusercontent.com/mattn/go-colorable/gh-pages/good.png)\n\n## Usage\n\n```go\nlogrus.SetFormatter(&logrus.TextFormatter{ForceColors: true})\nlogrus.SetOutput(colorable.NewColorableStdout())\n\nlogrus.Info(\"succeeded\")\nlogrus.Warn(\"not correct\")\nlogrus.Error(\"something error\")\nlogrus.Fatal(\"panic\")\n```\n\nYou can compile above code on non-windows OSs.\n\n## Installation\n\n```\n$ go get github.com/mattn/go-colorable\n```\n\n# License\n\nMIT\n\n# Author\n\nYasuhiro Matsumoto (a.k.a mattn)\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/colorable_appengine.go",
    "content": "// +build appengine\n\npackage colorable\n\nimport (\n\t\"io\"\n\t\"os\"\n\n\t_ \"github.com/mattn/go-isatty\"\n)\n\n// NewColorable returns new instance of Writer which handles escape sequence.\nfunc NewColorable(file *os.File) io.Writer {\n\tif file == nil {\n\t\tpanic(\"nil passed instead of *os.File to NewColorable()\")\n\t}\n\n\treturn file\n}\n\n// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout.\nfunc NewColorableStdout() io.Writer {\n\treturn os.Stdout\n}\n\n// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr.\nfunc NewColorableStderr() io.Writer {\n\treturn os.Stderr\n}\n\n// EnableColorsStdout enable colors if possible.\nfunc EnableColorsStdout(enabled *bool) func() {\n\tif enabled != nil {\n\t\t*enabled = true\n\t}\n\treturn func() {}\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/colorable_others.go",
    "content": "// +build !windows\n// +build !appengine\n\npackage colorable\n\nimport (\n\t\"io\"\n\t\"os\"\n\n\t_ \"github.com/mattn/go-isatty\"\n)\n\n// NewColorable returns new instance of Writer which handles escape sequence.\nfunc NewColorable(file *os.File) io.Writer {\n\tif file == nil {\n\t\tpanic(\"nil passed instead of *os.File to NewColorable()\")\n\t}\n\n\treturn file\n}\n\n// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout.\nfunc NewColorableStdout() io.Writer {\n\treturn os.Stdout\n}\n\n// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr.\nfunc NewColorableStderr() io.Writer {\n\treturn os.Stderr\n}\n\n// EnableColorsStdout enable colors if possible.\nfunc EnableColorsStdout(enabled *bool) func() {\n\tif enabled != nil {\n\t\t*enabled = true\n\t}\n\treturn func() {}\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/colorable_windows.go",
    "content": "// +build windows\n// +build !appengine\n\npackage colorable\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"math\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n\n\t\"github.com/mattn/go-isatty\"\n)\n\nconst (\n\tforegroundBlue      = 0x1\n\tforegroundGreen     = 0x2\n\tforegroundRed       = 0x4\n\tforegroundIntensity = 0x8\n\tforegroundMask      = (foregroundRed | foregroundBlue | foregroundGreen | foregroundIntensity)\n\tbackgroundBlue      = 0x10\n\tbackgroundGreen     = 0x20\n\tbackgroundRed       = 0x40\n\tbackgroundIntensity = 0x80\n\tbackgroundMask      = (backgroundRed | backgroundBlue | backgroundGreen | backgroundIntensity)\n\tcommonLvbUnderscore = 0x8000\n\n\tcENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4\n)\n\nconst (\n\tgenericRead  = 0x80000000\n\tgenericWrite = 0x40000000\n)\n\nconst (\n\tconsoleTextmodeBuffer = 0x1\n)\n\ntype wchar uint16\ntype short int16\ntype dword uint32\ntype word uint16\n\ntype coord struct {\n\tx short\n\ty short\n}\n\ntype smallRect struct {\n\tleft   short\n\ttop    short\n\tright  short\n\tbottom short\n}\n\ntype consoleScreenBufferInfo struct {\n\tsize              coord\n\tcursorPosition    coord\n\tattributes        word\n\twindow            smallRect\n\tmaximumWindowSize coord\n}\n\ntype consoleCursorInfo struct {\n\tsize    dword\n\tvisible int32\n}\n\nvar (\n\tkernel32                       = syscall.NewLazyDLL(\"kernel32.dll\")\n\tprocGetConsoleScreenBufferInfo = kernel32.NewProc(\"GetConsoleScreenBufferInfo\")\n\tprocSetConsoleTextAttribute    = kernel32.NewProc(\"SetConsoleTextAttribute\")\n\tprocSetConsoleCursorPosition   = kernel32.NewProc(\"SetConsoleCursorPosition\")\n\tprocFillConsoleOutputCharacter = kernel32.NewProc(\"FillConsoleOutputCharacterW\")\n\tprocFillConsoleOutputAttribute = kernel32.NewProc(\"FillConsoleOutputAttribute\")\n\tprocGetConsoleCursorInfo       = kernel32.NewProc(\"GetConsoleCursorInfo\")\n\tprocSetConsoleCursorInfo       = kernel32.NewProc(\"SetConsoleCursorInfo\")\n\tprocSetConsoleTitle            = kernel32.NewProc(\"SetConsoleTitleW\")\n\tprocGetConsoleMode             = kernel32.NewProc(\"GetConsoleMode\")\n\tprocSetConsoleMode             = kernel32.NewProc(\"SetConsoleMode\")\n\tprocCreateConsoleScreenBuffer  = kernel32.NewProc(\"CreateConsoleScreenBuffer\")\n)\n\n// Writer provides colorable Writer to the console\ntype Writer struct {\n\tout       io.Writer\n\thandle    syscall.Handle\n\talthandle syscall.Handle\n\toldattr   word\n\toldpos    coord\n\trest      bytes.Buffer\n\tmutex     sync.Mutex\n}\n\n// NewColorable returns new instance of Writer which handles escape sequence from File.\nfunc NewColorable(file *os.File) io.Writer {\n\tif file == nil {\n\t\tpanic(\"nil passed instead of *os.File to NewColorable()\")\n\t}\n\n\tif isatty.IsTerminal(file.Fd()) {\n\t\tvar mode uint32\n\t\tif r, _, _ := procGetConsoleMode.Call(file.Fd(), uintptr(unsafe.Pointer(&mode))); r != 0 && mode&cENABLE_VIRTUAL_TERMINAL_PROCESSING != 0 {\n\t\t\treturn file\n\t\t}\n\t\tvar csbi consoleScreenBufferInfo\n\t\thandle := syscall.Handle(file.Fd())\n\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\treturn &Writer{out: file, handle: handle, oldattr: csbi.attributes, oldpos: coord{0, 0}}\n\t}\n\treturn file\n}\n\n// NewColorableStdout returns new instance of Writer which handles escape sequence for stdout.\nfunc NewColorableStdout() io.Writer {\n\treturn NewColorable(os.Stdout)\n}\n\n// NewColorableStderr returns new instance of Writer which handles escape sequence for stderr.\nfunc NewColorableStderr() io.Writer {\n\treturn NewColorable(os.Stderr)\n}\n\nvar color256 = map[int]int{\n\t0:   0x000000,\n\t1:   0x800000,\n\t2:   0x008000,\n\t3:   0x808000,\n\t4:   0x000080,\n\t5:   0x800080,\n\t6:   0x008080,\n\t7:   0xc0c0c0,\n\t8:   0x808080,\n\t9:   0xff0000,\n\t10:  0x00ff00,\n\t11:  0xffff00,\n\t12:  0x0000ff,\n\t13:  0xff00ff,\n\t14:  0x00ffff,\n\t15:  0xffffff,\n\t16:  0x000000,\n\t17:  0x00005f,\n\t18:  0x000087,\n\t19:  0x0000af,\n\t20:  0x0000d7,\n\t21:  0x0000ff,\n\t22:  0x005f00,\n\t23:  0x005f5f,\n\t24:  0x005f87,\n\t25:  0x005faf,\n\t26:  0x005fd7,\n\t27:  0x005fff,\n\t28:  0x008700,\n\t29:  0x00875f,\n\t30:  0x008787,\n\t31:  0x0087af,\n\t32:  0x0087d7,\n\t33:  0x0087ff,\n\t34:  0x00af00,\n\t35:  0x00af5f,\n\t36:  0x00af87,\n\t37:  0x00afaf,\n\t38:  0x00afd7,\n\t39:  0x00afff,\n\t40:  0x00d700,\n\t41:  0x00d75f,\n\t42:  0x00d787,\n\t43:  0x00d7af,\n\t44:  0x00d7d7,\n\t45:  0x00d7ff,\n\t46:  0x00ff00,\n\t47:  0x00ff5f,\n\t48:  0x00ff87,\n\t49:  0x00ffaf,\n\t50:  0x00ffd7,\n\t51:  0x00ffff,\n\t52:  0x5f0000,\n\t53:  0x5f005f,\n\t54:  0x5f0087,\n\t55:  0x5f00af,\n\t56:  0x5f00d7,\n\t57:  0x5f00ff,\n\t58:  0x5f5f00,\n\t59:  0x5f5f5f,\n\t60:  0x5f5f87,\n\t61:  0x5f5faf,\n\t62:  0x5f5fd7,\n\t63:  0x5f5fff,\n\t64:  0x5f8700,\n\t65:  0x5f875f,\n\t66:  0x5f8787,\n\t67:  0x5f87af,\n\t68:  0x5f87d7,\n\t69:  0x5f87ff,\n\t70:  0x5faf00,\n\t71:  0x5faf5f,\n\t72:  0x5faf87,\n\t73:  0x5fafaf,\n\t74:  0x5fafd7,\n\t75:  0x5fafff,\n\t76:  0x5fd700,\n\t77:  0x5fd75f,\n\t78:  0x5fd787,\n\t79:  0x5fd7af,\n\t80:  0x5fd7d7,\n\t81:  0x5fd7ff,\n\t82:  0x5fff00,\n\t83:  0x5fff5f,\n\t84:  0x5fff87,\n\t85:  0x5fffaf,\n\t86:  0x5fffd7,\n\t87:  0x5fffff,\n\t88:  0x870000,\n\t89:  0x87005f,\n\t90:  0x870087,\n\t91:  0x8700af,\n\t92:  0x8700d7,\n\t93:  0x8700ff,\n\t94:  0x875f00,\n\t95:  0x875f5f,\n\t96:  0x875f87,\n\t97:  0x875faf,\n\t98:  0x875fd7,\n\t99:  0x875fff,\n\t100: 0x878700,\n\t101: 0x87875f,\n\t102: 0x878787,\n\t103: 0x8787af,\n\t104: 0x8787d7,\n\t105: 0x8787ff,\n\t106: 0x87af00,\n\t107: 0x87af5f,\n\t108: 0x87af87,\n\t109: 0x87afaf,\n\t110: 0x87afd7,\n\t111: 0x87afff,\n\t112: 0x87d700,\n\t113: 0x87d75f,\n\t114: 0x87d787,\n\t115: 0x87d7af,\n\t116: 0x87d7d7,\n\t117: 0x87d7ff,\n\t118: 0x87ff00,\n\t119: 0x87ff5f,\n\t120: 0x87ff87,\n\t121: 0x87ffaf,\n\t122: 0x87ffd7,\n\t123: 0x87ffff,\n\t124: 0xaf0000,\n\t125: 0xaf005f,\n\t126: 0xaf0087,\n\t127: 0xaf00af,\n\t128: 0xaf00d7,\n\t129: 0xaf00ff,\n\t130: 0xaf5f00,\n\t131: 0xaf5f5f,\n\t132: 0xaf5f87,\n\t133: 0xaf5faf,\n\t134: 0xaf5fd7,\n\t135: 0xaf5fff,\n\t136: 0xaf8700,\n\t137: 0xaf875f,\n\t138: 0xaf8787,\n\t139: 0xaf87af,\n\t140: 0xaf87d7,\n\t141: 0xaf87ff,\n\t142: 0xafaf00,\n\t143: 0xafaf5f,\n\t144: 0xafaf87,\n\t145: 0xafafaf,\n\t146: 0xafafd7,\n\t147: 0xafafff,\n\t148: 0xafd700,\n\t149: 0xafd75f,\n\t150: 0xafd787,\n\t151: 0xafd7af,\n\t152: 0xafd7d7,\n\t153: 0xafd7ff,\n\t154: 0xafff00,\n\t155: 0xafff5f,\n\t156: 0xafff87,\n\t157: 0xafffaf,\n\t158: 0xafffd7,\n\t159: 0xafffff,\n\t160: 0xd70000,\n\t161: 0xd7005f,\n\t162: 0xd70087,\n\t163: 0xd700af,\n\t164: 0xd700d7,\n\t165: 0xd700ff,\n\t166: 0xd75f00,\n\t167: 0xd75f5f,\n\t168: 0xd75f87,\n\t169: 0xd75faf,\n\t170: 0xd75fd7,\n\t171: 0xd75fff,\n\t172: 0xd78700,\n\t173: 0xd7875f,\n\t174: 0xd78787,\n\t175: 0xd787af,\n\t176: 0xd787d7,\n\t177: 0xd787ff,\n\t178: 0xd7af00,\n\t179: 0xd7af5f,\n\t180: 0xd7af87,\n\t181: 0xd7afaf,\n\t182: 0xd7afd7,\n\t183: 0xd7afff,\n\t184: 0xd7d700,\n\t185: 0xd7d75f,\n\t186: 0xd7d787,\n\t187: 0xd7d7af,\n\t188: 0xd7d7d7,\n\t189: 0xd7d7ff,\n\t190: 0xd7ff00,\n\t191: 0xd7ff5f,\n\t192: 0xd7ff87,\n\t193: 0xd7ffaf,\n\t194: 0xd7ffd7,\n\t195: 0xd7ffff,\n\t196: 0xff0000,\n\t197: 0xff005f,\n\t198: 0xff0087,\n\t199: 0xff00af,\n\t200: 0xff00d7,\n\t201: 0xff00ff,\n\t202: 0xff5f00,\n\t203: 0xff5f5f,\n\t204: 0xff5f87,\n\t205: 0xff5faf,\n\t206: 0xff5fd7,\n\t207: 0xff5fff,\n\t208: 0xff8700,\n\t209: 0xff875f,\n\t210: 0xff8787,\n\t211: 0xff87af,\n\t212: 0xff87d7,\n\t213: 0xff87ff,\n\t214: 0xffaf00,\n\t215: 0xffaf5f,\n\t216: 0xffaf87,\n\t217: 0xffafaf,\n\t218: 0xffafd7,\n\t219: 0xffafff,\n\t220: 0xffd700,\n\t221: 0xffd75f,\n\t222: 0xffd787,\n\t223: 0xffd7af,\n\t224: 0xffd7d7,\n\t225: 0xffd7ff,\n\t226: 0xffff00,\n\t227: 0xffff5f,\n\t228: 0xffff87,\n\t229: 0xffffaf,\n\t230: 0xffffd7,\n\t231: 0xffffff,\n\t232: 0x080808,\n\t233: 0x121212,\n\t234: 0x1c1c1c,\n\t235: 0x262626,\n\t236: 0x303030,\n\t237: 0x3a3a3a,\n\t238: 0x444444,\n\t239: 0x4e4e4e,\n\t240: 0x585858,\n\t241: 0x626262,\n\t242: 0x6c6c6c,\n\t243: 0x767676,\n\t244: 0x808080,\n\t245: 0x8a8a8a,\n\t246: 0x949494,\n\t247: 0x9e9e9e,\n\t248: 0xa8a8a8,\n\t249: 0xb2b2b2,\n\t250: 0xbcbcbc,\n\t251: 0xc6c6c6,\n\t252: 0xd0d0d0,\n\t253: 0xdadada,\n\t254: 0xe4e4e4,\n\t255: 0xeeeeee,\n}\n\n// `\\033]0;TITLESTR\\007`\nfunc doTitleSequence(er *bytes.Reader) error {\n\tvar c byte\n\tvar err error\n\n\tc, err = er.ReadByte()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif c != '0' && c != '2' {\n\t\treturn nil\n\t}\n\tc, err = er.ReadByte()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif c != ';' {\n\t\treturn nil\n\t}\n\ttitle := make([]byte, 0, 80)\n\tfor {\n\t\tc, err = er.ReadByte()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif c == 0x07 || c == '\\n' {\n\t\t\tbreak\n\t\t}\n\t\ttitle = append(title, c)\n\t}\n\tif len(title) > 0 {\n\t\ttitle8, err := syscall.UTF16PtrFromString(string(title))\n\t\tif err == nil {\n\t\t\tprocSetConsoleTitle.Call(uintptr(unsafe.Pointer(title8)))\n\t\t}\n\t}\n\treturn nil\n}\n\n// returns Atoi(s) unless s == \"\" in which case it returns def\nfunc atoiWithDefault(s string, def int) (int, error) {\n\tif s == \"\" {\n\t\treturn def, nil\n\t}\n\treturn strconv.Atoi(s)\n}\n\n// Write writes data on console\nfunc (w *Writer) Write(data []byte) (n int, err error) {\n\tw.mutex.Lock()\n\tdefer w.mutex.Unlock()\n\tvar csbi consoleScreenBufferInfo\n\tprocGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))\n\n\thandle := w.handle\n\n\tvar er *bytes.Reader\n\tif w.rest.Len() > 0 {\n\t\tvar rest bytes.Buffer\n\t\tw.rest.WriteTo(&rest)\n\t\tw.rest.Reset()\n\t\trest.Write(data)\n\t\ter = bytes.NewReader(rest.Bytes())\n\t} else {\n\t\ter = bytes.NewReader(data)\n\t}\n\tvar bw [1]byte\nloop:\n\tfor {\n\t\tc1, err := er.ReadByte()\n\t\tif err != nil {\n\t\t\tbreak loop\n\t\t}\n\t\tif c1 != 0x1b {\n\t\t\tbw[0] = c1\n\t\t\tw.out.Write(bw[:])\n\t\t\tcontinue\n\t\t}\n\t\tc2, err := er.ReadByte()\n\t\tif err != nil {\n\t\t\tbreak loop\n\t\t}\n\n\t\tswitch c2 {\n\t\tcase '>':\n\t\t\tcontinue\n\t\tcase ']':\n\t\t\tw.rest.WriteByte(c1)\n\t\t\tw.rest.WriteByte(c2)\n\t\t\ter.WriteTo(&w.rest)\n\t\t\tif bytes.IndexByte(w.rest.Bytes(), 0x07) == -1 {\n\t\t\t\tbreak loop\n\t\t\t}\n\t\t\ter = bytes.NewReader(w.rest.Bytes()[2:])\n\t\t\terr := doTitleSequence(er)\n\t\t\tif err != nil {\n\t\t\t\tbreak loop\n\t\t\t}\n\t\t\tw.rest.Reset()\n\t\t\tcontinue\n\t\t// https://github.com/mattn/go-colorable/issues/27\n\t\tcase '7':\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tw.oldpos = csbi.cursorPosition\n\t\t\tcontinue\n\t\tcase '8':\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&w.oldpos)))\n\t\t\tcontinue\n\t\tcase 0x5b:\n\t\t\t// execute part after switch\n\t\tdefault:\n\t\t\tcontinue\n\t\t}\n\n\t\tw.rest.WriteByte(c1)\n\t\tw.rest.WriteByte(c2)\n\t\ter.WriteTo(&w.rest)\n\n\t\tvar buf bytes.Buffer\n\t\tvar m byte\n\t\tfor i, c := range w.rest.Bytes()[2:] {\n\t\t\tif ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' {\n\t\t\t\tm = c\n\t\t\t\ter = bytes.NewReader(w.rest.Bytes()[2+i+1:])\n\t\t\t\tw.rest.Reset()\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tbuf.Write([]byte(string(c)))\n\t\t}\n\t\tif m == 0 {\n\t\t\tbreak loop\n\t\t}\n\n\t\tswitch m {\n\t\tcase 'A':\n\t\t\tn, err = atoiWithDefault(buf.String(), 1)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.y -= short(n)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'B':\n\t\t\tn, err = atoiWithDefault(buf.String(), 1)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.y += short(n)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'C':\n\t\t\tn, err = atoiWithDefault(buf.String(), 1)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.x += short(n)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'D':\n\t\t\tn, err = atoiWithDefault(buf.String(), 1)\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.x -= short(n)\n\t\t\tif csbi.cursorPosition.x < 0 {\n\t\t\t\tcsbi.cursorPosition.x = 0\n\t\t\t}\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'E':\n\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.x = 0\n\t\t\tcsbi.cursorPosition.y += short(n)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'F':\n\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.x = 0\n\t\t\tcsbi.cursorPosition.y -= short(n)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'G':\n\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif n < 1 {\n\t\t\t\tn = 1\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tcsbi.cursorPosition.x = short(n - 1)\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'H', 'f':\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tif buf.Len() > 0 {\n\t\t\t\ttoken := strings.Split(buf.String(), \";\")\n\t\t\t\tswitch len(token) {\n\t\t\t\tcase 1:\n\t\t\t\t\tn1, err := strconv.Atoi(token[0])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tcsbi.cursorPosition.y = short(n1 - 1)\n\t\t\t\tcase 2:\n\t\t\t\t\tn1, err := strconv.Atoi(token[0])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tn2, err := strconv.Atoi(token[1])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tcsbi.cursorPosition.x = short(n2 - 1)\n\t\t\t\t\tcsbi.cursorPosition.y = short(n1 - 1)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcsbi.cursorPosition.y = 0\n\t\t\t}\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))\n\t\tcase 'J':\n\t\t\tn := 0\n\t\t\tif buf.Len() > 0 {\n\t\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\t\tif err != nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar count, written dword\n\t\t\tvar cursor coord\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tswitch n {\n\t\t\tcase 0:\n\t\t\t\tcursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y}\n\t\t\t\tcount = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.size.y-csbi.cursorPosition.y)*dword(csbi.size.x)\n\t\t\tcase 1:\n\t\t\t\tcursor = coord{x: csbi.window.left, y: csbi.window.top}\n\t\t\t\tcount = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.window.top-csbi.cursorPosition.y)*dword(csbi.size.x)\n\t\t\tcase 2:\n\t\t\t\tcursor = coord{x: csbi.window.left, y: csbi.window.top}\n\t\t\t\tcount = dword(csbi.size.x) - dword(csbi.cursorPosition.x) + dword(csbi.size.y-csbi.cursorPosition.y)*dword(csbi.size.x)\n\t\t\t}\n\t\t\tprocFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\t\tprocFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\tcase 'K':\n\t\t\tn := 0\n\t\t\tif buf.Len() > 0 {\n\t\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\t\tif err != nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tvar cursor coord\n\t\t\tvar count, written dword\n\t\t\tswitch n {\n\t\t\tcase 0:\n\t\t\t\tcursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y}\n\t\t\t\tcount = dword(csbi.size.x - csbi.cursorPosition.x)\n\t\t\tcase 1:\n\t\t\t\tcursor = coord{x: csbi.window.left, y: csbi.cursorPosition.y}\n\t\t\t\tcount = dword(csbi.size.x - csbi.cursorPosition.x)\n\t\t\tcase 2:\n\t\t\t\tcursor = coord{x: csbi.window.left, y: csbi.cursorPosition.y}\n\t\t\t\tcount = dword(csbi.size.x)\n\t\t\t}\n\t\t\tprocFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\t\tprocFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\tcase 'X':\n\t\t\tn := 0\n\t\t\tif buf.Len() > 0 {\n\t\t\t\tn, err = strconv.Atoi(buf.String())\n\t\t\t\tif err != nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tvar cursor coord\n\t\t\tvar written dword\n\t\t\tcursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y}\n\t\t\tprocFillConsoleOutputCharacter.Call(uintptr(handle), uintptr(' '), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\t\tprocFillConsoleOutputAttribute.Call(uintptr(handle), uintptr(csbi.attributes), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))\n\t\tcase 'm':\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tattr := csbi.attributes\n\t\t\tcs := buf.String()\n\t\t\tif cs == \"\" {\n\t\t\t\tprocSetConsoleTextAttribute.Call(uintptr(handle), uintptr(w.oldattr))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttoken := strings.Split(cs, \";\")\n\t\t\tfor i := 0; i < len(token); i++ {\n\t\t\t\tns := token[i]\n\t\t\t\tif n, err = strconv.Atoi(ns); err == nil {\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase n == 0 || n == 100:\n\t\t\t\t\t\tattr = w.oldattr\n\t\t\t\t\tcase n == 4:\n\t\t\t\t\t\tattr |= commonLvbUnderscore\n\t\t\t\t\tcase (1 <= n && n <= 3) || n == 5:\n\t\t\t\t\t\tattr |= foregroundIntensity\n\t\t\t\t\tcase n == 7 || n == 27:\n\t\t\t\t\t\tattr =\n\t\t\t\t\t\t\t(attr &^ (foregroundMask | backgroundMask)) |\n\t\t\t\t\t\t\t\t((attr & foregroundMask) << 4) |\n\t\t\t\t\t\t\t\t((attr & backgroundMask) >> 4)\n\t\t\t\t\tcase n == 22:\n\t\t\t\t\t\tattr &^= foregroundIntensity\n\t\t\t\t\tcase n == 24:\n\t\t\t\t\t\tattr &^= commonLvbUnderscore\n\t\t\t\t\tcase 30 <= n && n <= 37:\n\t\t\t\t\t\tattr &= backgroundMask\n\t\t\t\t\t\tif (n-30)&1 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundRed\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-30)&2 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundGreen\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-30)&4 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundBlue\n\t\t\t\t\t\t}\n\t\t\t\t\tcase n == 38: // set foreground color.\n\t\t\t\t\t\tif i < len(token)-2 && (token[i+1] == \"5\" || token[i+1] == \"05\") {\n\t\t\t\t\t\t\tif n256, err := strconv.Atoi(token[i+2]); err == nil {\n\t\t\t\t\t\t\t\tif n256foreAttr == nil {\n\t\t\t\t\t\t\t\t\tn256setup()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tattr &= backgroundMask\n\t\t\t\t\t\t\t\tattr |= n256foreAttr[n256%len(n256foreAttr)]\n\t\t\t\t\t\t\t\ti += 2\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if len(token) == 5 && token[i+1] == \"2\" {\n\t\t\t\t\t\t\tvar r, g, b int\n\t\t\t\t\t\t\tr, _ = strconv.Atoi(token[i+2])\n\t\t\t\t\t\t\tg, _ = strconv.Atoi(token[i+3])\n\t\t\t\t\t\t\tb, _ = strconv.Atoi(token[i+4])\n\t\t\t\t\t\t\ti += 4\n\t\t\t\t\t\t\tif r > 127 {\n\t\t\t\t\t\t\t\tattr |= foregroundRed\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif g > 127 {\n\t\t\t\t\t\t\t\tattr |= foregroundGreen\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif b > 127 {\n\t\t\t\t\t\t\t\tattr |= foregroundBlue\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tattr = attr & (w.oldattr & backgroundMask)\n\t\t\t\t\t\t}\n\t\t\t\t\tcase n == 39: // reset foreground color.\n\t\t\t\t\t\tattr &= backgroundMask\n\t\t\t\t\t\tattr |= w.oldattr & foregroundMask\n\t\t\t\t\tcase 40 <= n && n <= 47:\n\t\t\t\t\t\tattr &= foregroundMask\n\t\t\t\t\t\tif (n-40)&1 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundRed\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-40)&2 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundGreen\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-40)&4 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundBlue\n\t\t\t\t\t\t}\n\t\t\t\t\tcase n == 48: // set background color.\n\t\t\t\t\t\tif i < len(token)-2 && token[i+1] == \"5\" {\n\t\t\t\t\t\t\tif n256, err := strconv.Atoi(token[i+2]); err == nil {\n\t\t\t\t\t\t\t\tif n256backAttr == nil {\n\t\t\t\t\t\t\t\t\tn256setup()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tattr &= foregroundMask\n\t\t\t\t\t\t\t\tattr |= n256backAttr[n256%len(n256backAttr)]\n\t\t\t\t\t\t\t\ti += 2\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if len(token) == 5 && token[i+1] == \"2\" {\n\t\t\t\t\t\t\tvar r, g, b int\n\t\t\t\t\t\t\tr, _ = strconv.Atoi(token[i+2])\n\t\t\t\t\t\t\tg, _ = strconv.Atoi(token[i+3])\n\t\t\t\t\t\t\tb, _ = strconv.Atoi(token[i+4])\n\t\t\t\t\t\t\ti += 4\n\t\t\t\t\t\t\tif r > 127 {\n\t\t\t\t\t\t\t\tattr |= backgroundRed\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif g > 127 {\n\t\t\t\t\t\t\t\tattr |= backgroundGreen\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif b > 127 {\n\t\t\t\t\t\t\t\tattr |= backgroundBlue\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tattr = attr & (w.oldattr & foregroundMask)\n\t\t\t\t\t\t}\n\t\t\t\t\tcase n == 49: // reset foreground color.\n\t\t\t\t\t\tattr &= foregroundMask\n\t\t\t\t\t\tattr |= w.oldattr & backgroundMask\n\t\t\t\t\tcase 90 <= n && n <= 97:\n\t\t\t\t\t\tattr = (attr & backgroundMask)\n\t\t\t\t\t\tattr |= foregroundIntensity\n\t\t\t\t\t\tif (n-90)&1 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundRed\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-90)&2 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundGreen\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-90)&4 != 0 {\n\t\t\t\t\t\t\tattr |= foregroundBlue\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 100 <= n && n <= 107:\n\t\t\t\t\t\tattr = (attr & foregroundMask)\n\t\t\t\t\t\tattr |= backgroundIntensity\n\t\t\t\t\t\tif (n-100)&1 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundRed\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-100)&2 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundGreen\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (n-100)&4 != 0 {\n\t\t\t\t\t\t\tattr |= backgroundBlue\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tprocSetConsoleTextAttribute.Call(uintptr(handle), uintptr(attr))\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'h':\n\t\t\tvar ci consoleCursorInfo\n\t\t\tcs := buf.String()\n\t\t\tif cs == \"5>\" {\n\t\t\t\tprocGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t\tci.visible = 0\n\t\t\t\tprocSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t} else if cs == \"?25\" {\n\t\t\t\tprocGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t\tci.visible = 1\n\t\t\t\tprocSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t} else if cs == \"?1049\" {\n\t\t\t\tif w.althandle == 0 {\n\t\t\t\t\th, _, _ := procCreateConsoleScreenBuffer.Call(uintptr(genericRead|genericWrite), 0, 0, uintptr(consoleTextmodeBuffer), 0, 0)\n\t\t\t\t\tw.althandle = syscall.Handle(h)\n\t\t\t\t\tif w.althandle != 0 {\n\t\t\t\t\t\thandle = w.althandle\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'l':\n\t\t\tvar ci consoleCursorInfo\n\t\t\tcs := buf.String()\n\t\t\tif cs == \"5>\" {\n\t\t\t\tprocGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t\tci.visible = 1\n\t\t\t\tprocSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t} else if cs == \"?25\" {\n\t\t\t\tprocGetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t\tci.visible = 0\n\t\t\t\tprocSetConsoleCursorInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&ci)))\n\t\t\t} else if cs == \"?1049\" {\n\t\t\t\tif w.althandle != 0 {\n\t\t\t\t\tsyscall.CloseHandle(w.althandle)\n\t\t\t\t\tw.althandle = 0\n\t\t\t\t\thandle = w.handle\n\t\t\t\t}\n\t\t\t}\n\t\tcase 's':\n\t\t\tprocGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))\n\t\t\tw.oldpos = csbi.cursorPosition\n\t\tcase 'u':\n\t\t\tprocSetConsoleCursorPosition.Call(uintptr(handle), *(*uintptr)(unsafe.Pointer(&w.oldpos)))\n\t\t}\n\t}\n\n\treturn len(data), nil\n}\n\ntype consoleColor struct {\n\trgb       int\n\tred       bool\n\tgreen     bool\n\tblue      bool\n\tintensity bool\n}\n\nfunc (c consoleColor) foregroundAttr() (attr word) {\n\tif c.red {\n\t\tattr |= foregroundRed\n\t}\n\tif c.green {\n\t\tattr |= foregroundGreen\n\t}\n\tif c.blue {\n\t\tattr |= foregroundBlue\n\t}\n\tif c.intensity {\n\t\tattr |= foregroundIntensity\n\t}\n\treturn\n}\n\nfunc (c consoleColor) backgroundAttr() (attr word) {\n\tif c.red {\n\t\tattr |= backgroundRed\n\t}\n\tif c.green {\n\t\tattr |= backgroundGreen\n\t}\n\tif c.blue {\n\t\tattr |= backgroundBlue\n\t}\n\tif c.intensity {\n\t\tattr |= backgroundIntensity\n\t}\n\treturn\n}\n\nvar color16 = []consoleColor{\n\t{0x000000, false, false, false, false},\n\t{0x000080, false, false, true, false},\n\t{0x008000, false, true, false, false},\n\t{0x008080, false, true, true, false},\n\t{0x800000, true, false, false, false},\n\t{0x800080, true, false, true, false},\n\t{0x808000, true, true, false, false},\n\t{0xc0c0c0, true, true, true, false},\n\t{0x808080, false, false, false, true},\n\t{0x0000ff, false, false, true, true},\n\t{0x00ff00, false, true, false, true},\n\t{0x00ffff, false, true, true, true},\n\t{0xff0000, true, false, false, true},\n\t{0xff00ff, true, false, true, true},\n\t{0xffff00, true, true, false, true},\n\t{0xffffff, true, true, true, true},\n}\n\ntype hsv struct {\n\th, s, v float32\n}\n\nfunc (a hsv) dist(b hsv) float32 {\n\tdh := a.h - b.h\n\tswitch {\n\tcase dh > 0.5:\n\t\tdh = 1 - dh\n\tcase dh < -0.5:\n\t\tdh = -1 - dh\n\t}\n\tds := a.s - b.s\n\tdv := a.v - b.v\n\treturn float32(math.Sqrt(float64(dh*dh + ds*ds + dv*dv)))\n}\n\nfunc toHSV(rgb int) hsv {\n\tr, g, b := float32((rgb&0xFF0000)>>16)/256.0,\n\t\tfloat32((rgb&0x00FF00)>>8)/256.0,\n\t\tfloat32(rgb&0x0000FF)/256.0\n\tmin, max := minmax3f(r, g, b)\n\th := max - min\n\tif h > 0 {\n\t\tif max == r {\n\t\t\th = (g - b) / h\n\t\t\tif h < 0 {\n\t\t\t\th += 6\n\t\t\t}\n\t\t} else if max == g {\n\t\t\th = 2 + (b-r)/h\n\t\t} else {\n\t\t\th = 4 + (r-g)/h\n\t\t}\n\t}\n\th /= 6.0\n\ts := max - min\n\tif max != 0 {\n\t\ts /= max\n\t}\n\tv := max\n\treturn hsv{h: h, s: s, v: v}\n}\n\ntype hsvTable []hsv\n\nfunc toHSVTable(rgbTable []consoleColor) hsvTable {\n\tt := make(hsvTable, len(rgbTable))\n\tfor i, c := range rgbTable {\n\t\tt[i] = toHSV(c.rgb)\n\t}\n\treturn t\n}\n\nfunc (t hsvTable) find(rgb int) consoleColor {\n\thsv := toHSV(rgb)\n\tn := 7\n\tl := float32(5.0)\n\tfor i, p := range t {\n\t\td := hsv.dist(p)\n\t\tif d < l {\n\t\t\tl, n = d, i\n\t\t}\n\t}\n\treturn color16[n]\n}\n\nfunc minmax3f(a, b, c float32) (min, max float32) {\n\tif a < b {\n\t\tif b < c {\n\t\t\treturn a, c\n\t\t} else if a < c {\n\t\t\treturn a, b\n\t\t} else {\n\t\t\treturn c, b\n\t\t}\n\t} else {\n\t\tif a < c {\n\t\t\treturn b, c\n\t\t} else if b < c {\n\t\t\treturn b, a\n\t\t} else {\n\t\t\treturn c, a\n\t\t}\n\t}\n}\n\nvar n256foreAttr []word\nvar n256backAttr []word\n\nfunc n256setup() {\n\tn256foreAttr = make([]word, 256)\n\tn256backAttr = make([]word, 256)\n\tt := toHSVTable(color16)\n\tfor i, rgb := range color256 {\n\t\tc := t.find(rgb)\n\t\tn256foreAttr[i] = c.foregroundAttr()\n\t\tn256backAttr[i] = c.backgroundAttr()\n\t}\n}\n\n// EnableColorsStdout enable colors if possible.\nfunc EnableColorsStdout(enabled *bool) func() {\n\tvar mode uint32\n\th := os.Stdout.Fd()\n\tif r, _, _ := procGetConsoleMode.Call(h, uintptr(unsafe.Pointer(&mode))); r != 0 {\n\t\tif r, _, _ = procSetConsoleMode.Call(h, uintptr(mode|cENABLE_VIRTUAL_TERMINAL_PROCESSING)); r != 0 {\n\t\t\tif enabled != nil {\n\t\t\t\t*enabled = true\n\t\t\t}\n\t\t\treturn func() {\n\t\t\t\tprocSetConsoleMode.Call(h, uintptr(mode))\n\t\t\t}\n\t\t}\n\t}\n\tif enabled != nil {\n\t\t*enabled = true\n\t}\n\treturn func() {}\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/go.test.sh",
    "content": "#!/usr/bin/env bash\n\nset -e\necho \"\" > coverage.txt\n\nfor d in $(go list ./... | grep -v vendor); do\n    go test -race -coverprofile=profile.out -covermode=atomic \"$d\"\n    if [ -f profile.out ]; then\n        cat profile.out >> coverage.txt\n        rm profile.out\n    fi\ndone\n"
  },
  {
    "path": "vendor/github.com/mattn/go-colorable/noncolorable.go",
    "content": "package colorable\n\nimport (\n\t\"bytes\"\n\t\"io\"\n)\n\n// NonColorable holds writer but removes escape sequence.\ntype NonColorable struct {\n\tout io.Writer\n}\n\n// NewNonColorable returns new instance of Writer which removes escape sequence from Writer.\nfunc NewNonColorable(w io.Writer) io.Writer {\n\treturn &NonColorable{out: w}\n}\n\n// Write writes data on console\nfunc (w *NonColorable) Write(data []byte) (n int, err error) {\n\ter := bytes.NewReader(data)\n\tvar bw [1]byte\nloop:\n\tfor {\n\t\tc1, err := er.ReadByte()\n\t\tif err != nil {\n\t\t\tbreak loop\n\t\t}\n\t\tif c1 != 0x1b {\n\t\t\tbw[0] = c1\n\t\t\tw.out.Write(bw[:])\n\t\t\tcontinue\n\t\t}\n\t\tc2, err := er.ReadByte()\n\t\tif err != nil {\n\t\t\tbreak loop\n\t\t}\n\t\tif c2 != 0x5b {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar buf bytes.Buffer\n\t\tfor {\n\t\t\tc, err := er.ReadByte()\n\t\t\tif err != nil {\n\t\t\t\tbreak loop\n\t\t\t}\n\t\t\tif ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tbuf.Write([]byte(string(c)))\n\t\t}\n\t}\n\n\treturn len(data), nil\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/.travis.yml",
    "content": "language: go\nsudo: false\ngo:\n  - 1.13.x\n  - tip\n\nbefore_install:\n  - go get -t -v ./...\n\nscript:\n  - ./go.test.sh\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/LICENSE",
    "content": "Copyright (c) Yasuhiro MATSUMOTO <mattn.jp@gmail.com>\n\nMIT License (Expat)\n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/README.md",
    "content": "# go-isatty\n\n[![Godoc Reference](https://godoc.org/github.com/mattn/go-isatty?status.svg)](http://godoc.org/github.com/mattn/go-isatty)\n[![Codecov](https://codecov.io/gh/mattn/go-isatty/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-isatty)\n[![Coverage Status](https://coveralls.io/repos/github/mattn/go-isatty/badge.svg?branch=master)](https://coveralls.io/github/mattn/go-isatty?branch=master)\n[![Go Report Card](https://goreportcard.com/badge/mattn/go-isatty)](https://goreportcard.com/report/mattn/go-isatty)\n\nisatty for golang\n\n## Usage\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"github.com/mattn/go-isatty\"\n\t\"os\"\n)\n\nfunc main() {\n\tif isatty.IsTerminal(os.Stdout.Fd()) {\n\t\tfmt.Println(\"Is Terminal\")\n\t} else if isatty.IsCygwinTerminal(os.Stdout.Fd()) {\n\t\tfmt.Println(\"Is Cygwin/MSYS2 Terminal\")\n\t} else {\n\t\tfmt.Println(\"Is Not Terminal\")\n\t}\n}\n```\n\n## Installation\n\n```\n$ go get github.com/mattn/go-isatty\n```\n\n## License\n\nMIT\n\n## Author\n\nYasuhiro Matsumoto (a.k.a mattn)\n\n## Thanks\n\n* k-takata: base idea for IsCygwinTerminal\n\n    https://github.com/k-takata/go-iscygpty\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/doc.go",
    "content": "// Package isatty implements interface to isatty\npackage isatty\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/go.test.sh",
    "content": "#!/usr/bin/env bash\n\nset -e\necho \"\" > coverage.txt\n\nfor d in $(go list ./... | grep -v vendor); do\n    go test -race -coverprofile=profile.out -covermode=atomic \"$d\"\n    if [ -f profile.out ]; then\n        cat profile.out >> coverage.txt\n        rm profile.out\n    fi\ndone\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_bsd.go",
    "content": "// +build darwin freebsd openbsd netbsd dragonfly\n// +build !appengine\n\npackage isatty\n\nimport \"golang.org/x/sys/unix\"\n\n// IsTerminal return true if the file descriptor is terminal.\nfunc IsTerminal(fd uintptr) bool {\n\t_, err := unix.IoctlGetTermios(int(fd), unix.TIOCGETA)\n\treturn err == nil\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_others.go",
    "content": "// +build appengine js nacl\n\npackage isatty\n\n// IsTerminal returns true if the file descriptor is terminal which\n// is always false on js and appengine classic which is a sandboxed PaaS.\nfunc IsTerminal(fd uintptr) bool {\n\treturn false\n}\n\n// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_plan9.go",
    "content": "// +build plan9\n\npackage isatty\n\nimport (\n\t\"syscall\"\n)\n\n// IsTerminal returns true if the given file descriptor is a terminal.\nfunc IsTerminal(fd uintptr) bool {\n\tpath, err := syscall.Fd2path(int(fd))\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn path == \"/dev/cons\" || path == \"/mnt/term/dev/cons\"\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_solaris.go",
    "content": "// +build solaris\n// +build !appengine\n\npackage isatty\n\nimport (\n\t\"golang.org/x/sys/unix\"\n)\n\n// IsTerminal returns true if the given file descriptor is a terminal.\n// see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c\nfunc IsTerminal(fd uintptr) bool {\n\tvar termio unix.Termio\n\terr := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio)\n\treturn err == nil\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_tcgets.go",
    "content": "// +build linux aix\n// +build !appengine\n\npackage isatty\n\nimport \"golang.org/x/sys/unix\"\n\n// IsTerminal return true if the file descriptor is terminal.\nfunc IsTerminal(fd uintptr) bool {\n\t_, err := unix.IoctlGetTermios(int(fd), unix.TCGETS)\n\treturn err == nil\n}\n\n// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2\n// terminal. This is also always false on this environment.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/isatty_windows.go",
    "content": "// +build windows\n// +build !appengine\n\npackage isatty\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\t\"syscall\"\n\t\"unicode/utf16\"\n\t\"unsafe\"\n)\n\nconst (\n\tobjectNameInfo uintptr = 1\n\tfileNameInfo           = 2\n\tfileTypePipe           = 3\n)\n\nvar (\n\tkernel32                         = syscall.NewLazyDLL(\"kernel32.dll\")\n\tntdll                            = syscall.NewLazyDLL(\"ntdll.dll\")\n\tprocGetConsoleMode               = kernel32.NewProc(\"GetConsoleMode\")\n\tprocGetFileInformationByHandleEx = kernel32.NewProc(\"GetFileInformationByHandleEx\")\n\tprocGetFileType                  = kernel32.NewProc(\"GetFileType\")\n\tprocNtQueryObject                = ntdll.NewProc(\"NtQueryObject\")\n)\n\nfunc init() {\n\t// Check if GetFileInformationByHandleEx is available.\n\tif procGetFileInformationByHandleEx.Find() != nil {\n\t\tprocGetFileInformationByHandleEx = nil\n\t}\n}\n\n// IsTerminal return true if the file descriptor is terminal.\nfunc IsTerminal(fd uintptr) bool {\n\tvar st uint32\n\tr, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0)\n\treturn r != 0 && e == 0\n}\n\n// Check pipe name is used for cygwin/msys2 pty.\n// Cygwin/MSYS2 PTY has a name like:\n//   \\{cygwin,msys}-XXXXXXXXXXXXXXXX-ptyN-{from,to}-master\nfunc isCygwinPipeName(name string) bool {\n\ttoken := strings.Split(name, \"-\")\n\tif len(token) < 5 {\n\t\treturn false\n\t}\n\n\tif token[0] != `\\msys` &&\n\t\ttoken[0] != `\\cygwin` &&\n\t\ttoken[0] != `\\Device\\NamedPipe\\msys` &&\n\t\ttoken[0] != `\\Device\\NamedPipe\\cygwin` {\n\t\treturn false\n\t}\n\n\tif token[1] == \"\" {\n\t\treturn false\n\t}\n\n\tif !strings.HasPrefix(token[2], \"pty\") {\n\t\treturn false\n\t}\n\n\tif token[3] != `from` && token[3] != `to` {\n\t\treturn false\n\t}\n\n\tif token[4] != \"master\" {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// getFileNameByHandle use the undocomented ntdll NtQueryObject to get file full name from file handler\n// since GetFileInformationByHandleEx is not avilable under windows Vista and still some old fashion\n// guys are using Windows XP, this is a workaround for those guys, it will also work on system from\n// Windows vista to 10\n// see https://stackoverflow.com/a/18792477 for details\nfunc getFileNameByHandle(fd uintptr) (string, error) {\n\tif procNtQueryObject == nil {\n\t\treturn \"\", errors.New(\"ntdll.dll: NtQueryObject not supported\")\n\t}\n\n\tvar buf [4 + syscall.MAX_PATH]uint16\n\tvar result int\n\tr, _, e := syscall.Syscall6(procNtQueryObject.Addr(), 5,\n\t\tfd, objectNameInfo, uintptr(unsafe.Pointer(&buf)), uintptr(2*len(buf)), uintptr(unsafe.Pointer(&result)), 0)\n\tif r != 0 {\n\t\treturn \"\", e\n\t}\n\treturn string(utf16.Decode(buf[4 : 4+buf[0]/2])), nil\n}\n\n// IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2\n// terminal.\nfunc IsCygwinTerminal(fd uintptr) bool {\n\tif procGetFileInformationByHandleEx == nil {\n\t\tname, err := getFileNameByHandle(fd)\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\t\treturn isCygwinPipeName(name)\n\t}\n\n\t// Cygwin/msys's pty is a pipe.\n\tft, _, e := syscall.Syscall(procGetFileType.Addr(), 1, fd, 0, 0)\n\tif ft != fileTypePipe || e != 0 {\n\t\treturn false\n\t}\n\n\tvar buf [2 + syscall.MAX_PATH]uint16\n\tr, _, e := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(),\n\t\t4, fd, fileNameInfo, uintptr(unsafe.Pointer(&buf)),\n\t\tuintptr(len(buf)*2), 0, 0)\n\tif r == 0 || e != 0 {\n\t\treturn false\n\t}\n\n\tl := *(*uint32)(unsafe.Pointer(&buf))\n\treturn isCygwinPipeName(string(utf16.Decode(buf[2 : 2+l/2])))\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-isatty/renovate.json",
    "content": "{\n  \"extends\": [\n    \"config:base\"\n  ],\n  \"postUpdateOptions\": [\n    \"gomodTidy\"\n  ]\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2016 Yasuhiro Matsumoto\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/README.md",
    "content": "go-runewidth\n============\n\n[![Build Status](https://github.com/mattn/go-runewidth/workflows/test/badge.svg?branch=master)](https://github.com/mattn/go-runewidth/actions?query=workflow%3Atest)\n[![Codecov](https://codecov.io/gh/mattn/go-runewidth/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-runewidth)\n[![GoDoc](https://godoc.org/github.com/mattn/go-runewidth?status.svg)](http://godoc.org/github.com/mattn/go-runewidth)\n[![Go Report Card](https://goreportcard.com/badge/github.com/mattn/go-runewidth)](https://goreportcard.com/report/github.com/mattn/go-runewidth)\n\nProvides functions to get fixed width of the character or string.\n\nUsage\n-----\n\n```go\nrunewidth.StringWidth(\"つのだ☆HIRO\") == 12\n```\n\n\nAuthor\n------\n\nYasuhiro Matsumoto\n\nLicense\n-------\n\nunder the MIT License: http://mattn.mit-license.org/2013\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth.go",
    "content": "package runewidth\n\nimport (\n\t\"os\"\n\t\"strings\"\n\n\t\"github.com/rivo/uniseg\"\n)\n\n//go:generate go run script/generate.go\n\nvar (\n\t// EastAsianWidth will be set true if the current locale is CJK\n\tEastAsianWidth bool\n\n\t// StrictEmojiNeutral should be set false if handle broken fonts\n\tStrictEmojiNeutral bool = true\n\n\t// DefaultCondition is a condition in current locale\n\tDefaultCondition = &Condition{\n\t\tEastAsianWidth:     false,\n\t\tStrictEmojiNeutral: true,\n\t}\n)\n\nfunc init() {\n\thandleEnv()\n}\n\nfunc handleEnv() {\n\tenv := os.Getenv(\"RUNEWIDTH_EASTASIAN\")\n\tif env == \"\" {\n\t\tEastAsianWidth = IsEastAsian()\n\t} else {\n\t\tEastAsianWidth = env == \"1\"\n\t}\n\t// update DefaultCondition\n\tif DefaultCondition.EastAsianWidth != EastAsianWidth {\n\t\tDefaultCondition.EastAsianWidth = EastAsianWidth\n\t\tif len(DefaultCondition.combinedLut) > 0 {\n\t\t\tDefaultCondition.combinedLut = DefaultCondition.combinedLut[:0]\n\t\t\tCreateLUT()\n\t\t}\n\t}\n}\n\ntype interval struct {\n\tfirst rune\n\tlast  rune\n}\n\ntype table []interval\n\nfunc inTables(r rune, ts ...table) bool {\n\tfor _, t := range ts {\n\t\tif inTable(r, t) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc inTable(r rune, t table) bool {\n\tif r < t[0].first {\n\t\treturn false\n\t}\n\n\tbot := 0\n\ttop := len(t) - 1\n\tfor top >= bot {\n\t\tmid := (bot + top) >> 1\n\n\t\tswitch {\n\t\tcase t[mid].last < r:\n\t\t\tbot = mid + 1\n\t\tcase t[mid].first > r:\n\t\t\ttop = mid - 1\n\t\tdefault:\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nvar private = table{\n\t{0x00E000, 0x00F8FF}, {0x0F0000, 0x0FFFFD}, {0x100000, 0x10FFFD},\n}\n\nvar nonprint = table{\n\t{0x0000, 0x001F}, {0x007F, 0x009F}, {0x00AD, 0x00AD},\n\t{0x070F, 0x070F}, {0x180B, 0x180E}, {0x200B, 0x200F},\n\t{0x2028, 0x202E}, {0x206A, 0x206F}, {0xD800, 0xDFFF},\n\t{0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFB}, {0xFFFE, 0xFFFF},\n}\n\n// Condition have flag EastAsianWidth whether the current locale is CJK or not.\ntype Condition struct {\n\tcombinedLut        []byte\n\tEastAsianWidth     bool\n\tStrictEmojiNeutral bool\n}\n\n// NewCondition return new instance of Condition which is current locale.\nfunc NewCondition() *Condition {\n\treturn &Condition{\n\t\tEastAsianWidth:     EastAsianWidth,\n\t\tStrictEmojiNeutral: StrictEmojiNeutral,\n\t}\n}\n\n// RuneWidth returns the number of cells in r.\n// See http://www.unicode.org/reports/tr11/\nfunc (c *Condition) RuneWidth(r rune) int {\n\tif r < 0 || r > 0x10FFFF {\n\t\treturn 0\n\t}\n\tif len(c.combinedLut) > 0 {\n\t\treturn int(c.combinedLut[r>>1]>>(uint(r&1)*4)) & 3\n\t}\n\t// optimized version, verified by TestRuneWidthChecksums()\n\tif !c.EastAsianWidth {\n\t\tswitch {\n\t\tcase r < 0x20:\n\t\t\treturn 0\n\t\tcase (r >= 0x7F && r <= 0x9F) || r == 0xAD: // nonprint\n\t\t\treturn 0\n\t\tcase r < 0x300:\n\t\t\treturn 1\n\t\tcase inTable(r, narrow):\n\t\t\treturn 1\n\t\tcase inTables(r, nonprint, combining):\n\t\t\treturn 0\n\t\tcase inTable(r, doublewidth):\n\t\t\treturn 2\n\t\tdefault:\n\t\t\treturn 1\n\t\t}\n\t} else {\n\t\tswitch {\n\t\tcase inTables(r, nonprint, combining):\n\t\t\treturn 0\n\t\tcase inTable(r, narrow):\n\t\t\treturn 1\n\t\tcase inTables(r, ambiguous, doublewidth):\n\t\t\treturn 2\n\t\tcase !c.StrictEmojiNeutral && inTables(r, ambiguous, emoji, narrow):\n\t\t\treturn 2\n\t\tdefault:\n\t\t\treturn 1\n\t\t}\n\t}\n}\n\n// CreateLUT will create an in-memory lookup table of 557056 bytes for faster operation.\n// This should not be called concurrently with other operations on c.\n// If options in c is changed, CreateLUT should be called again.\nfunc (c *Condition) CreateLUT() {\n\tconst max = 0x110000\n\tlut := c.combinedLut\n\tif len(c.combinedLut) != 0 {\n\t\t// Remove so we don't use it.\n\t\tc.combinedLut = nil\n\t} else {\n\t\tlut = make([]byte, max/2)\n\t}\n\tfor i := range lut {\n\t\ti32 := int32(i * 2)\n\t\tx0 := c.RuneWidth(i32)\n\t\tx1 := c.RuneWidth(i32 + 1)\n\t\tlut[i] = uint8(x0) | uint8(x1)<<4\n\t}\n\tc.combinedLut = lut\n}\n\n// StringWidth return width as you can see\nfunc (c *Condition) StringWidth(s string) (width int) {\n\tg := uniseg.NewGraphemes(s)\n\tfor g.Next() {\n\t\tvar chWidth int\n\t\tfor _, r := range g.Runes() {\n\t\t\tchWidth = c.RuneWidth(r)\n\t\t\tif chWidth > 0 {\n\t\t\t\tbreak // Our best guess at this point is to use the width of the first non-zero-width rune.\n\t\t\t}\n\t\t}\n\t\twidth += chWidth\n\t}\n\treturn\n}\n\n// Truncate return string truncated with w cells\nfunc (c *Condition) Truncate(s string, w int, tail string) string {\n\tif c.StringWidth(s) <= w {\n\t\treturn s\n\t}\n\tw -= c.StringWidth(tail)\n\tvar width int\n\tpos := len(s)\n\tg := uniseg.NewGraphemes(s)\n\tfor g.Next() {\n\t\tvar chWidth int\n\t\tfor _, r := range g.Runes() {\n\t\t\tchWidth = c.RuneWidth(r)\n\t\t\tif chWidth > 0 {\n\t\t\t\tbreak // See StringWidth() for details.\n\t\t\t}\n\t\t}\n\t\tif width+chWidth > w {\n\t\t\tpos, _ = g.Positions()\n\t\t\tbreak\n\t\t}\n\t\twidth += chWidth\n\t}\n\treturn s[:pos] + tail\n}\n\n// TruncateLeft cuts w cells from the beginning of the `s`.\nfunc (c *Condition) TruncateLeft(s string, w int, prefix string) string {\n\tif c.StringWidth(s) <= w {\n\t\treturn prefix\n\t}\n\n\tvar width int\n\tpos := len(s)\n\n\tg := uniseg.NewGraphemes(s)\n\tfor g.Next() {\n\t\tvar chWidth int\n\t\tfor _, r := range g.Runes() {\n\t\t\tchWidth = c.RuneWidth(r)\n\t\t\tif chWidth > 0 {\n\t\t\t\tbreak // See StringWidth() for details.\n\t\t\t}\n\t\t}\n\n\t\tif width+chWidth > w {\n\t\t\tif width < w {\n\t\t\t\t_, pos = g.Positions()\n\t\t\t\tprefix += strings.Repeat(\" \", width+chWidth-w)\n\t\t\t} else {\n\t\t\t\tpos, _ = g.Positions()\n\t\t\t}\n\n\t\t\tbreak\n\t\t}\n\n\t\twidth += chWidth\n\t}\n\n\treturn prefix + s[pos:]\n}\n\n// Wrap return string wrapped with w cells\nfunc (c *Condition) Wrap(s string, w int) string {\n\twidth := 0\n\tout := \"\"\n\tfor _, r := range s {\n\t\tcw := c.RuneWidth(r)\n\t\tif r == '\\n' {\n\t\t\tout += string(r)\n\t\t\twidth = 0\n\t\t\tcontinue\n\t\t} else if width+cw > w {\n\t\t\tout += \"\\n\"\n\t\t\twidth = 0\n\t\t\tout += string(r)\n\t\t\twidth += cw\n\t\t\tcontinue\n\t\t}\n\t\tout += string(r)\n\t\twidth += cw\n\t}\n\treturn out\n}\n\n// FillLeft return string filled in left by spaces in w cells\nfunc (c *Condition) FillLeft(s string, w int) string {\n\twidth := c.StringWidth(s)\n\tcount := w - width\n\tif count > 0 {\n\t\tb := make([]byte, count)\n\t\tfor i := range b {\n\t\t\tb[i] = ' '\n\t\t}\n\t\treturn string(b) + s\n\t}\n\treturn s\n}\n\n// FillRight return string filled in left by spaces in w cells\nfunc (c *Condition) FillRight(s string, w int) string {\n\twidth := c.StringWidth(s)\n\tcount := w - width\n\tif count > 0 {\n\t\tb := make([]byte, count)\n\t\tfor i := range b {\n\t\t\tb[i] = ' '\n\t\t}\n\t\treturn s + string(b)\n\t}\n\treturn s\n}\n\n// RuneWidth returns the number of cells in r.\n// See http://www.unicode.org/reports/tr11/\nfunc RuneWidth(r rune) int {\n\treturn DefaultCondition.RuneWidth(r)\n}\n\n// IsAmbiguousWidth returns whether is ambiguous width or not.\nfunc IsAmbiguousWidth(r rune) bool {\n\treturn inTables(r, private, ambiguous)\n}\n\n// IsNeutralWidth returns whether is neutral width or not.\nfunc IsNeutralWidth(r rune) bool {\n\treturn inTable(r, neutral)\n}\n\n// StringWidth return width as you can see\nfunc StringWidth(s string) (width int) {\n\treturn DefaultCondition.StringWidth(s)\n}\n\n// Truncate return string truncated with w cells\nfunc Truncate(s string, w int, tail string) string {\n\treturn DefaultCondition.Truncate(s, w, tail)\n}\n\n// TruncateLeft cuts w cells from the beginning of the `s`.\nfunc TruncateLeft(s string, w int, prefix string) string {\n\treturn DefaultCondition.TruncateLeft(s, w, prefix)\n}\n\n// Wrap return string wrapped with w cells\nfunc Wrap(s string, w int) string {\n\treturn DefaultCondition.Wrap(s, w)\n}\n\n// FillLeft return string filled in left by spaces in w cells\nfunc FillLeft(s string, w int) string {\n\treturn DefaultCondition.FillLeft(s, w)\n}\n\n// FillRight return string filled in left by spaces in w cells\nfunc FillRight(s string, w int) string {\n\treturn DefaultCondition.FillRight(s, w)\n}\n\n// CreateLUT will create an in-memory lookup table of 557055 bytes for faster operation.\n// This should not be called concurrently with other operations.\nfunc CreateLUT() {\n\tif len(DefaultCondition.combinedLut) > 0 {\n\t\treturn\n\t}\n\tDefaultCondition.CreateLUT()\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth_appengine.go",
    "content": "//go:build appengine\n// +build appengine\n\npackage runewidth\n\n// IsEastAsian return true if the current locale is CJK\nfunc IsEastAsian() bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth_js.go",
    "content": "//go:build js && !appengine\n// +build js,!appengine\n\npackage runewidth\n\nfunc IsEastAsian() bool {\n\t// TODO: Implement this for the web. Detect east asian in a compatible way, and return true.\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth_posix.go",
    "content": "//go:build !windows && !js && !appengine\n// +build !windows,!js,!appengine\n\npackage runewidth\n\nimport (\n\t\"os\"\n\t\"regexp\"\n\t\"strings\"\n)\n\nvar reLoc = regexp.MustCompile(`^[a-z][a-z][a-z]?(?:_[A-Z][A-Z])?\\.(.+)`)\n\nvar mblenTable = map[string]int{\n\t\"utf-8\":   6,\n\t\"utf8\":    6,\n\t\"jis\":     8,\n\t\"eucjp\":   3,\n\t\"euckr\":   2,\n\t\"euccn\":   2,\n\t\"sjis\":    2,\n\t\"cp932\":   2,\n\t\"cp51932\": 2,\n\t\"cp936\":   2,\n\t\"cp949\":   2,\n\t\"cp950\":   2,\n\t\"big5\":    2,\n\t\"gbk\":     2,\n\t\"gb2312\":  2,\n}\n\nfunc isEastAsian(locale string) bool {\n\tcharset := strings.ToLower(locale)\n\tr := reLoc.FindStringSubmatch(locale)\n\tif len(r) == 2 {\n\t\tcharset = strings.ToLower(r[1])\n\t}\n\n\tif strings.HasSuffix(charset, \"@cjk_narrow\") {\n\t\treturn false\n\t}\n\n\tfor pos, b := range []byte(charset) {\n\t\tif b == '@' {\n\t\t\tcharset = charset[:pos]\n\t\t\tbreak\n\t\t}\n\t}\n\tmax := 1\n\tif m, ok := mblenTable[charset]; ok {\n\t\tmax = m\n\t}\n\tif max > 1 && (charset[0] != 'u' ||\n\t\tstrings.HasPrefix(locale, \"ja\") ||\n\t\tstrings.HasPrefix(locale, \"ko\") ||\n\t\tstrings.HasPrefix(locale, \"zh\")) {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsEastAsian return true if the current locale is CJK\nfunc IsEastAsian() bool {\n\tlocale := os.Getenv(\"LC_ALL\")\n\tif locale == \"\" {\n\t\tlocale = os.Getenv(\"LC_CTYPE\")\n\t}\n\tif locale == \"\" {\n\t\tlocale = os.Getenv(\"LANG\")\n\t}\n\n\t// ignore C locale\n\tif locale == \"POSIX\" || locale == \"C\" {\n\t\treturn false\n\t}\n\tif len(locale) > 1 && locale[0] == 'C' && (locale[1] == '.' || locale[1] == '-') {\n\t\treturn false\n\t}\n\n\treturn isEastAsian(locale)\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth_table.go",
    "content": "// Code generated by script/generate.go. DO NOT EDIT.\n\npackage runewidth\n\nvar combining = table{\n\t{0x0300, 0x036F}, {0x0483, 0x0489}, {0x07EB, 0x07F3},\n\t{0x0C00, 0x0C00}, {0x0C04, 0x0C04}, {0x0D00, 0x0D01},\n\t{0x135D, 0x135F}, {0x1A7F, 0x1A7F}, {0x1AB0, 0x1AC0},\n\t{0x1B6B, 0x1B73}, {0x1DC0, 0x1DF9}, {0x1DFB, 0x1DFF},\n\t{0x20D0, 0x20F0}, {0x2CEF, 0x2CF1}, {0x2DE0, 0x2DFF},\n\t{0x3099, 0x309A}, {0xA66F, 0xA672}, {0xA674, 0xA67D},\n\t{0xA69E, 0xA69F}, {0xA6F0, 0xA6F1}, {0xA8E0, 0xA8F1},\n\t{0xFE20, 0xFE2F}, {0x101FD, 0x101FD}, {0x10376, 0x1037A},\n\t{0x10EAB, 0x10EAC}, {0x10F46, 0x10F50}, {0x11300, 0x11301},\n\t{0x1133B, 0x1133C}, {0x11366, 0x1136C}, {0x11370, 0x11374},\n\t{0x16AF0, 0x16AF4}, {0x1D165, 0x1D169}, {0x1D16D, 0x1D172},\n\t{0x1D17B, 0x1D182}, {0x1D185, 0x1D18B}, {0x1D1AA, 0x1D1AD},\n\t{0x1D242, 0x1D244}, {0x1E000, 0x1E006}, {0x1E008, 0x1E018},\n\t{0x1E01B, 0x1E021}, {0x1E023, 0x1E024}, {0x1E026, 0x1E02A},\n\t{0x1E8D0, 0x1E8D6},\n}\n\nvar doublewidth = table{\n\t{0x1100, 0x115F}, {0x231A, 0x231B}, {0x2329, 0x232A},\n\t{0x23E9, 0x23EC}, {0x23F0, 0x23F0}, {0x23F3, 0x23F3},\n\t{0x25FD, 0x25FE}, {0x2614, 0x2615}, {0x2648, 0x2653},\n\t{0x267F, 0x267F}, {0x2693, 0x2693}, {0x26A1, 0x26A1},\n\t{0x26AA, 0x26AB}, {0x26BD, 0x26BE}, {0x26C4, 0x26C5},\n\t{0x26CE, 0x26CE}, {0x26D4, 0x26D4}, {0x26EA, 0x26EA},\n\t{0x26F2, 0x26F3}, {0x26F5, 0x26F5}, {0x26FA, 0x26FA},\n\t{0x26FD, 0x26FD}, {0x2705, 0x2705}, {0x270A, 0x270B},\n\t{0x2728, 0x2728}, {0x274C, 0x274C}, {0x274E, 0x274E},\n\t{0x2753, 0x2755}, {0x2757, 0x2757}, {0x2795, 0x2797},\n\t{0x27B0, 0x27B0}, {0x27BF, 0x27BF}, {0x2B1B, 0x2B1C},\n\t{0x2B50, 0x2B50}, {0x2B55, 0x2B55}, {0x2E80, 0x2E99},\n\t{0x2E9B, 0x2EF3}, {0x2F00, 0x2FD5}, {0x2FF0, 0x2FFB},\n\t{0x3000, 0x303E}, {0x3041, 0x3096}, {0x3099, 0x30FF},\n\t{0x3105, 0x312F}, {0x3131, 0x318E}, {0x3190, 0x31E3},\n\t{0x31F0, 0x321E}, {0x3220, 0x3247}, {0x3250, 0x4DBF},\n\t{0x4E00, 0xA48C}, {0xA490, 0xA4C6}, {0xA960, 0xA97C},\n\t{0xAC00, 0xD7A3}, {0xF900, 0xFAFF}, {0xFE10, 0xFE19},\n\t{0xFE30, 0xFE52}, {0xFE54, 0xFE66}, {0xFE68, 0xFE6B},\n\t{0xFF01, 0xFF60}, {0xFFE0, 0xFFE6}, {0x16FE0, 0x16FE4},\n\t{0x16FF0, 0x16FF1}, {0x17000, 0x187F7}, {0x18800, 0x18CD5},\n\t{0x18D00, 0x18D08}, {0x1B000, 0x1B11E}, {0x1B150, 0x1B152},\n\t{0x1B164, 0x1B167}, {0x1B170, 0x1B2FB}, {0x1F004, 0x1F004},\n\t{0x1F0CF, 0x1F0CF}, {0x1F18E, 0x1F18E}, {0x1F191, 0x1F19A},\n\t{0x1F200, 0x1F202}, {0x1F210, 0x1F23B}, {0x1F240, 0x1F248},\n\t{0x1F250, 0x1F251}, {0x1F260, 0x1F265}, {0x1F300, 0x1F320},\n\t{0x1F32D, 0x1F335}, {0x1F337, 0x1F37C}, {0x1F37E, 0x1F393},\n\t{0x1F3A0, 0x1F3CA}, {0x1F3CF, 0x1F3D3}, {0x1F3E0, 0x1F3F0},\n\t{0x1F3F4, 0x1F3F4}, {0x1F3F8, 0x1F43E}, {0x1F440, 0x1F440},\n\t{0x1F442, 0x1F4FC}, {0x1F4FF, 0x1F53D}, {0x1F54B, 0x1F54E},\n\t{0x1F550, 0x1F567}, {0x1F57A, 0x1F57A}, {0x1F595, 0x1F596},\n\t{0x1F5A4, 0x1F5A4}, {0x1F5FB, 0x1F64F}, {0x1F680, 0x1F6C5},\n\t{0x1F6CC, 0x1F6CC}, {0x1F6D0, 0x1F6D2}, {0x1F6D5, 0x1F6D7},\n\t{0x1F6EB, 0x1F6EC}, {0x1F6F4, 0x1F6FC}, {0x1F7E0, 0x1F7EB},\n\t{0x1F90C, 0x1F93A}, {0x1F93C, 0x1F945}, {0x1F947, 0x1F978},\n\t{0x1F97A, 0x1F9CB}, {0x1F9CD, 0x1F9FF}, {0x1FA70, 0x1FA74},\n\t{0x1FA78, 0x1FA7A}, {0x1FA80, 0x1FA86}, {0x1FA90, 0x1FAA8},\n\t{0x1FAB0, 0x1FAB6}, {0x1FAC0, 0x1FAC2}, {0x1FAD0, 0x1FAD6},\n\t{0x20000, 0x2FFFD}, {0x30000, 0x3FFFD},\n}\n\nvar ambiguous = table{\n\t{0x00A1, 0x00A1}, {0x00A4, 0x00A4}, {0x00A7, 0x00A8},\n\t{0x00AA, 0x00AA}, {0x00AD, 0x00AE}, {0x00B0, 0x00B4},\n\t{0x00B6, 0x00BA}, {0x00BC, 0x00BF}, {0x00C6, 0x00C6},\n\t{0x00D0, 0x00D0}, {0x00D7, 0x00D8}, {0x00DE, 0x00E1},\n\t{0x00E6, 0x00E6}, {0x00E8, 0x00EA}, {0x00EC, 0x00ED},\n\t{0x00F0, 0x00F0}, {0x00F2, 0x00F3}, {0x00F7, 0x00FA},\n\t{0x00FC, 0x00FC}, {0x00FE, 0x00FE}, {0x0101, 0x0101},\n\t{0x0111, 0x0111}, {0x0113, 0x0113}, {0x011B, 0x011B},\n\t{0x0126, 0x0127}, {0x012B, 0x012B}, {0x0131, 0x0133},\n\t{0x0138, 0x0138}, {0x013F, 0x0142}, {0x0144, 0x0144},\n\t{0x0148, 0x014B}, {0x014D, 0x014D}, {0x0152, 0x0153},\n\t{0x0166, 0x0167}, {0x016B, 0x016B}, {0x01CE, 0x01CE},\n\t{0x01D0, 0x01D0}, {0x01D2, 0x01D2}, {0x01D4, 0x01D4},\n\t{0x01D6, 0x01D6}, {0x01D8, 0x01D8}, {0x01DA, 0x01DA},\n\t{0x01DC, 0x01DC}, {0x0251, 0x0251}, {0x0261, 0x0261},\n\t{0x02C4, 0x02C4}, {0x02C7, 0x02C7}, {0x02C9, 0x02CB},\n\t{0x02CD, 0x02CD}, {0x02D0, 0x02D0}, {0x02D8, 0x02DB},\n\t{0x02DD, 0x02DD}, {0x02DF, 0x02DF}, {0x0300, 0x036F},\n\t{0x0391, 0x03A1}, {0x03A3, 0x03A9}, {0x03B1, 0x03C1},\n\t{0x03C3, 0x03C9}, {0x0401, 0x0401}, {0x0410, 0x044F},\n\t{0x0451, 0x0451}, {0x2010, 0x2010}, {0x2013, 0x2016},\n\t{0x2018, 0x2019}, {0x201C, 0x201D}, {0x2020, 0x2022},\n\t{0x2024, 0x2027}, {0x2030, 0x2030}, {0x2032, 0x2033},\n\t{0x2035, 0x2035}, {0x203B, 0x203B}, {0x203E, 0x203E},\n\t{0x2074, 0x2074}, {0x207F, 0x207F}, {0x2081, 0x2084},\n\t{0x20AC, 0x20AC}, {0x2103, 0x2103}, {0x2105, 0x2105},\n\t{0x2109, 0x2109}, {0x2113, 0x2113}, {0x2116, 0x2116},\n\t{0x2121, 0x2122}, {0x2126, 0x2126}, {0x212B, 0x212B},\n\t{0x2153, 0x2154}, {0x215B, 0x215E}, {0x2160, 0x216B},\n\t{0x2170, 0x2179}, {0x2189, 0x2189}, {0x2190, 0x2199},\n\t{0x21B8, 0x21B9}, {0x21D2, 0x21D2}, {0x21D4, 0x21D4},\n\t{0x21E7, 0x21E7}, {0x2200, 0x2200}, {0x2202, 0x2203},\n\t{0x2207, 0x2208}, {0x220B, 0x220B}, {0x220F, 0x220F},\n\t{0x2211, 0x2211}, {0x2215, 0x2215}, {0x221A, 0x221A},\n\t{0x221D, 0x2220}, {0x2223, 0x2223}, {0x2225, 0x2225},\n\t{0x2227, 0x222C}, {0x222E, 0x222E}, {0x2234, 0x2237},\n\t{0x223C, 0x223D}, {0x2248, 0x2248}, {0x224C, 0x224C},\n\t{0x2252, 0x2252}, {0x2260, 0x2261}, {0x2264, 0x2267},\n\t{0x226A, 0x226B}, {0x226E, 0x226F}, {0x2282, 0x2283},\n\t{0x2286, 0x2287}, {0x2295, 0x2295}, {0x2299, 0x2299},\n\t{0x22A5, 0x22A5}, {0x22BF, 0x22BF}, {0x2312, 0x2312},\n\t{0x2460, 0x24E9}, {0x24EB, 0x254B}, {0x2550, 0x2573},\n\t{0x2580, 0x258F}, {0x2592, 0x2595}, {0x25A0, 0x25A1},\n\t{0x25A3, 0x25A9}, {0x25B2, 0x25B3}, {0x25B6, 0x25B7},\n\t{0x25BC, 0x25BD}, {0x25C0, 0x25C1}, {0x25C6, 0x25C8},\n\t{0x25CB, 0x25CB}, {0x25CE, 0x25D1}, {0x25E2, 0x25E5},\n\t{0x25EF, 0x25EF}, {0x2605, 0x2606}, {0x2609, 0x2609},\n\t{0x260E, 0x260F}, {0x261C, 0x261C}, {0x261E, 0x261E},\n\t{0x2640, 0x2640}, {0x2642, 0x2642}, {0x2660, 0x2661},\n\t{0x2663, 0x2665}, {0x2667, 0x266A}, {0x266C, 0x266D},\n\t{0x266F, 0x266F}, {0x269E, 0x269F}, {0x26BF, 0x26BF},\n\t{0x26C6, 0x26CD}, {0x26CF, 0x26D3}, {0x26D5, 0x26E1},\n\t{0x26E3, 0x26E3}, {0x26E8, 0x26E9}, {0x26EB, 0x26F1},\n\t{0x26F4, 0x26F4}, {0x26F6, 0x26F9}, {0x26FB, 0x26FC},\n\t{0x26FE, 0x26FF}, {0x273D, 0x273D}, {0x2776, 0x277F},\n\t{0x2B56, 0x2B59}, {0x3248, 0x324F}, {0xE000, 0xF8FF},\n\t{0xFE00, 0xFE0F}, {0xFFFD, 0xFFFD}, {0x1F100, 0x1F10A},\n\t{0x1F110, 0x1F12D}, {0x1F130, 0x1F169}, {0x1F170, 0x1F18D},\n\t{0x1F18F, 0x1F190}, {0x1F19B, 0x1F1AC}, {0xE0100, 0xE01EF},\n\t{0xF0000, 0xFFFFD}, {0x100000, 0x10FFFD},\n}\nvar narrow = table{\n\t{0x0020, 0x007E}, {0x00A2, 0x00A3}, {0x00A5, 0x00A6},\n\t{0x00AC, 0x00AC}, {0x00AF, 0x00AF}, {0x27E6, 0x27ED},\n\t{0x2985, 0x2986},\n}\n\nvar neutral = table{\n\t{0x0000, 0x001F}, {0x007F, 0x00A0}, {0x00A9, 0x00A9},\n\t{0x00AB, 0x00AB}, {0x00B5, 0x00B5}, {0x00BB, 0x00BB},\n\t{0x00C0, 0x00C5}, {0x00C7, 0x00CF}, {0x00D1, 0x00D6},\n\t{0x00D9, 0x00DD}, {0x00E2, 0x00E5}, {0x00E7, 0x00E7},\n\t{0x00EB, 0x00EB}, {0x00EE, 0x00EF}, {0x00F1, 0x00F1},\n\t{0x00F4, 0x00F6}, {0x00FB, 0x00FB}, {0x00FD, 0x00FD},\n\t{0x00FF, 0x0100}, {0x0102, 0x0110}, {0x0112, 0x0112},\n\t{0x0114, 0x011A}, {0x011C, 0x0125}, {0x0128, 0x012A},\n\t{0x012C, 0x0130}, {0x0134, 0x0137}, {0x0139, 0x013E},\n\t{0x0143, 0x0143}, {0x0145, 0x0147}, {0x014C, 0x014C},\n\t{0x014E, 0x0151}, {0x0154, 0x0165}, {0x0168, 0x016A},\n\t{0x016C, 0x01CD}, {0x01CF, 0x01CF}, {0x01D1, 0x01D1},\n\t{0x01D3, 0x01D3}, {0x01D5, 0x01D5}, {0x01D7, 0x01D7},\n\t{0x01D9, 0x01D9}, {0x01DB, 0x01DB}, {0x01DD, 0x0250},\n\t{0x0252, 0x0260}, {0x0262, 0x02C3}, {0x02C5, 0x02C6},\n\t{0x02C8, 0x02C8}, {0x02CC, 0x02CC}, {0x02CE, 0x02CF},\n\t{0x02D1, 0x02D7}, {0x02DC, 0x02DC}, {0x02DE, 0x02DE},\n\t{0x02E0, 0x02FF}, {0x0370, 0x0377}, {0x037A, 0x037F},\n\t{0x0384, 0x038A}, {0x038C, 0x038C}, {0x038E, 0x0390},\n\t{0x03AA, 0x03B0}, {0x03C2, 0x03C2}, {0x03CA, 0x0400},\n\t{0x0402, 0x040F}, {0x0450, 0x0450}, {0x0452, 0x052F},\n\t{0x0531, 0x0556}, {0x0559, 0x058A}, {0x058D, 0x058F},\n\t{0x0591, 0x05C7}, {0x05D0, 0x05EA}, {0x05EF, 0x05F4},\n\t{0x0600, 0x061C}, {0x061E, 0x070D}, {0x070F, 0x074A},\n\t{0x074D, 0x07B1}, {0x07C0, 0x07FA}, {0x07FD, 0x082D},\n\t{0x0830, 0x083E}, {0x0840, 0x085B}, {0x085E, 0x085E},\n\t{0x0860, 0x086A}, {0x08A0, 0x08B4}, {0x08B6, 0x08C7},\n\t{0x08D3, 0x0983}, {0x0985, 0x098C}, {0x098F, 0x0990},\n\t{0x0993, 0x09A8}, {0x09AA, 0x09B0}, {0x09B2, 0x09B2},\n\t{0x09B6, 0x09B9}, {0x09BC, 0x09C4}, {0x09C7, 0x09C8},\n\t{0x09CB, 0x09CE}, {0x09D7, 0x09D7}, {0x09DC, 0x09DD},\n\t{0x09DF, 0x09E3}, {0x09E6, 0x09FE}, {0x0A01, 0x0A03},\n\t{0x0A05, 0x0A0A}, {0x0A0F, 0x0A10}, {0x0A13, 0x0A28},\n\t{0x0A2A, 0x0A30}, {0x0A32, 0x0A33}, {0x0A35, 0x0A36},\n\t{0x0A38, 0x0A39}, {0x0A3C, 0x0A3C}, {0x0A3E, 0x0A42},\n\t{0x0A47, 0x0A48}, {0x0A4B, 0x0A4D}, {0x0A51, 0x0A51},\n\t{0x0A59, 0x0A5C}, {0x0A5E, 0x0A5E}, {0x0A66, 0x0A76},\n\t{0x0A81, 0x0A83}, {0x0A85, 0x0A8D}, {0x0A8F, 0x0A91},\n\t{0x0A93, 0x0AA8}, {0x0AAA, 0x0AB0}, {0x0AB2, 0x0AB3},\n\t{0x0AB5, 0x0AB9}, {0x0ABC, 0x0AC5}, {0x0AC7, 0x0AC9},\n\t{0x0ACB, 0x0ACD}, {0x0AD0, 0x0AD0}, {0x0AE0, 0x0AE3},\n\t{0x0AE6, 0x0AF1}, {0x0AF9, 0x0AFF}, {0x0B01, 0x0B03},\n\t{0x0B05, 0x0B0C}, {0x0B0F, 0x0B10}, {0x0B13, 0x0B28},\n\t{0x0B2A, 0x0B30}, {0x0B32, 0x0B33}, {0x0B35, 0x0B39},\n\t{0x0B3C, 0x0B44}, {0x0B47, 0x0B48}, {0x0B4B, 0x0B4D},\n\t{0x0B55, 0x0B57}, {0x0B5C, 0x0B5D}, {0x0B5F, 0x0B63},\n\t{0x0B66, 0x0B77}, {0x0B82, 0x0B83}, {0x0B85, 0x0B8A},\n\t{0x0B8E, 0x0B90}, {0x0B92, 0x0B95}, {0x0B99, 0x0B9A},\n\t{0x0B9C, 0x0B9C}, {0x0B9E, 0x0B9F}, {0x0BA3, 0x0BA4},\n\t{0x0BA8, 0x0BAA}, {0x0BAE, 0x0BB9}, {0x0BBE, 0x0BC2},\n\t{0x0BC6, 0x0BC8}, {0x0BCA, 0x0BCD}, {0x0BD0, 0x0BD0},\n\t{0x0BD7, 0x0BD7}, {0x0BE6, 0x0BFA}, {0x0C00, 0x0C0C},\n\t{0x0C0E, 0x0C10}, {0x0C12, 0x0C28}, {0x0C2A, 0x0C39},\n\t{0x0C3D, 0x0C44}, {0x0C46, 0x0C48}, {0x0C4A, 0x0C4D},\n\t{0x0C55, 0x0C56}, {0x0C58, 0x0C5A}, {0x0C60, 0x0C63},\n\t{0x0C66, 0x0C6F}, {0x0C77, 0x0C8C}, {0x0C8E, 0x0C90},\n\t{0x0C92, 0x0CA8}, {0x0CAA, 0x0CB3}, {0x0CB5, 0x0CB9},\n\t{0x0CBC, 0x0CC4}, {0x0CC6, 0x0CC8}, {0x0CCA, 0x0CCD},\n\t{0x0CD5, 0x0CD6}, {0x0CDE, 0x0CDE}, {0x0CE0, 0x0CE3},\n\t{0x0CE6, 0x0CEF}, {0x0CF1, 0x0CF2}, {0x0D00, 0x0D0C},\n\t{0x0D0E, 0x0D10}, {0x0D12, 0x0D44}, {0x0D46, 0x0D48},\n\t{0x0D4A, 0x0D4F}, {0x0D54, 0x0D63}, {0x0D66, 0x0D7F},\n\t{0x0D81, 0x0D83}, {0x0D85, 0x0D96}, {0x0D9A, 0x0DB1},\n\t{0x0DB3, 0x0DBB}, {0x0DBD, 0x0DBD}, {0x0DC0, 0x0DC6},\n\t{0x0DCA, 0x0DCA}, {0x0DCF, 0x0DD4}, {0x0DD6, 0x0DD6},\n\t{0x0DD8, 0x0DDF}, {0x0DE6, 0x0DEF}, {0x0DF2, 0x0DF4},\n\t{0x0E01, 0x0E3A}, {0x0E3F, 0x0E5B}, {0x0E81, 0x0E82},\n\t{0x0E84, 0x0E84}, {0x0E86, 0x0E8A}, {0x0E8C, 0x0EA3},\n\t{0x0EA5, 0x0EA5}, {0x0EA7, 0x0EBD}, {0x0EC0, 0x0EC4},\n\t{0x0EC6, 0x0EC6}, {0x0EC8, 0x0ECD}, {0x0ED0, 0x0ED9},\n\t{0x0EDC, 0x0EDF}, {0x0F00, 0x0F47}, {0x0F49, 0x0F6C},\n\t{0x0F71, 0x0F97}, {0x0F99, 0x0FBC}, {0x0FBE, 0x0FCC},\n\t{0x0FCE, 0x0FDA}, {0x1000, 0x10C5}, {0x10C7, 0x10C7},\n\t{0x10CD, 0x10CD}, {0x10D0, 0x10FF}, {0x1160, 0x1248},\n\t{0x124A, 0x124D}, {0x1250, 0x1256}, {0x1258, 0x1258},\n\t{0x125A, 0x125D}, {0x1260, 0x1288}, {0x128A, 0x128D},\n\t{0x1290, 0x12B0}, {0x12B2, 0x12B5}, {0x12B8, 0x12BE},\n\t{0x12C0, 0x12C0}, {0x12C2, 0x12C5}, {0x12C8, 0x12D6},\n\t{0x12D8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135A},\n\t{0x135D, 0x137C}, {0x1380, 0x1399}, {0x13A0, 0x13F5},\n\t{0x13F8, 0x13FD}, {0x1400, 0x169C}, {0x16A0, 0x16F8},\n\t{0x1700, 0x170C}, {0x170E, 0x1714}, {0x1720, 0x1736},\n\t{0x1740, 0x1753}, {0x1760, 0x176C}, {0x176E, 0x1770},\n\t{0x1772, 0x1773}, {0x1780, 0x17DD}, {0x17E0, 0x17E9},\n\t{0x17F0, 0x17F9}, {0x1800, 0x180E}, {0x1810, 0x1819},\n\t{0x1820, 0x1878}, {0x1880, 0x18AA}, {0x18B0, 0x18F5},\n\t{0x1900, 0x191E}, {0x1920, 0x192B}, {0x1930, 0x193B},\n\t{0x1940, 0x1940}, {0x1944, 0x196D}, {0x1970, 0x1974},\n\t{0x1980, 0x19AB}, {0x19B0, 0x19C9}, {0x19D0, 0x19DA},\n\t{0x19DE, 0x1A1B}, {0x1A1E, 0x1A5E}, {0x1A60, 0x1A7C},\n\t{0x1A7F, 0x1A89}, {0x1A90, 0x1A99}, {0x1AA0, 0x1AAD},\n\t{0x1AB0, 0x1AC0}, {0x1B00, 0x1B4B}, {0x1B50, 0x1B7C},\n\t{0x1B80, 0x1BF3}, {0x1BFC, 0x1C37}, {0x1C3B, 0x1C49},\n\t{0x1C4D, 0x1C88}, {0x1C90, 0x1CBA}, {0x1CBD, 0x1CC7},\n\t{0x1CD0, 0x1CFA}, {0x1D00, 0x1DF9}, {0x1DFB, 0x1F15},\n\t{0x1F18, 0x1F1D}, {0x1F20, 0x1F45}, {0x1F48, 0x1F4D},\n\t{0x1F50, 0x1F57}, {0x1F59, 0x1F59}, {0x1F5B, 0x1F5B},\n\t{0x1F5D, 0x1F5D}, {0x1F5F, 0x1F7D}, {0x1F80, 0x1FB4},\n\t{0x1FB6, 0x1FC4}, {0x1FC6, 0x1FD3}, {0x1FD6, 0x1FDB},\n\t{0x1FDD, 0x1FEF}, {0x1FF2, 0x1FF4}, {0x1FF6, 0x1FFE},\n\t{0x2000, 0x200F}, {0x2011, 0x2012}, {0x2017, 0x2017},\n\t{0x201A, 0x201B}, {0x201E, 0x201F}, {0x2023, 0x2023},\n\t{0x2028, 0x202F}, {0x2031, 0x2031}, {0x2034, 0x2034},\n\t{0x2036, 0x203A}, {0x203C, 0x203D}, {0x203F, 0x2064},\n\t{0x2066, 0x2071}, {0x2075, 0x207E}, {0x2080, 0x2080},\n\t{0x2085, 0x208E}, {0x2090, 0x209C}, {0x20A0, 0x20A8},\n\t{0x20AA, 0x20AB}, {0x20AD, 0x20BF}, {0x20D0, 0x20F0},\n\t{0x2100, 0x2102}, {0x2104, 0x2104}, {0x2106, 0x2108},\n\t{0x210A, 0x2112}, {0x2114, 0x2115}, {0x2117, 0x2120},\n\t{0x2123, 0x2125}, {0x2127, 0x212A}, {0x212C, 0x2152},\n\t{0x2155, 0x215A}, {0x215F, 0x215F}, {0x216C, 0x216F},\n\t{0x217A, 0x2188}, {0x218A, 0x218B}, {0x219A, 0x21B7},\n\t{0x21BA, 0x21D1}, {0x21D3, 0x21D3}, {0x21D5, 0x21E6},\n\t{0x21E8, 0x21FF}, {0x2201, 0x2201}, {0x2204, 0x2206},\n\t{0x2209, 0x220A}, {0x220C, 0x220E}, {0x2210, 0x2210},\n\t{0x2212, 0x2214}, {0x2216, 0x2219}, {0x221B, 0x221C},\n\t{0x2221, 0x2222}, {0x2224, 0x2224}, {0x2226, 0x2226},\n\t{0x222D, 0x222D}, {0x222F, 0x2233}, {0x2238, 0x223B},\n\t{0x223E, 0x2247}, {0x2249, 0x224B}, {0x224D, 0x2251},\n\t{0x2253, 0x225F}, {0x2262, 0x2263}, {0x2268, 0x2269},\n\t{0x226C, 0x226D}, {0x2270, 0x2281}, {0x2284, 0x2285},\n\t{0x2288, 0x2294}, {0x2296, 0x2298}, {0x229A, 0x22A4},\n\t{0x22A6, 0x22BE}, {0x22C0, 0x2311}, {0x2313, 0x2319},\n\t{0x231C, 0x2328}, {0x232B, 0x23E8}, {0x23ED, 0x23EF},\n\t{0x23F1, 0x23F2}, {0x23F4, 0x2426}, {0x2440, 0x244A},\n\t{0x24EA, 0x24EA}, {0x254C, 0x254F}, {0x2574, 0x257F},\n\t{0x2590, 0x2591}, {0x2596, 0x259F}, {0x25A2, 0x25A2},\n\t{0x25AA, 0x25B1}, {0x25B4, 0x25B5}, {0x25B8, 0x25BB},\n\t{0x25BE, 0x25BF}, {0x25C2, 0x25C5}, {0x25C9, 0x25CA},\n\t{0x25CC, 0x25CD}, {0x25D2, 0x25E1}, {0x25E6, 0x25EE},\n\t{0x25F0, 0x25FC}, {0x25FF, 0x2604}, {0x2607, 0x2608},\n\t{0x260A, 0x260D}, {0x2610, 0x2613}, {0x2616, 0x261B},\n\t{0x261D, 0x261D}, {0x261F, 0x263F}, {0x2641, 0x2641},\n\t{0x2643, 0x2647}, {0x2654, 0x265F}, {0x2662, 0x2662},\n\t{0x2666, 0x2666}, {0x266B, 0x266B}, {0x266E, 0x266E},\n\t{0x2670, 0x267E}, {0x2680, 0x2692}, {0x2694, 0x269D},\n\t{0x26A0, 0x26A0}, {0x26A2, 0x26A9}, {0x26AC, 0x26BC},\n\t{0x26C0, 0x26C3}, {0x26E2, 0x26E2}, {0x26E4, 0x26E7},\n\t{0x2700, 0x2704}, {0x2706, 0x2709}, {0x270C, 0x2727},\n\t{0x2729, 0x273C}, {0x273E, 0x274B}, {0x274D, 0x274D},\n\t{0x274F, 0x2752}, {0x2756, 0x2756}, {0x2758, 0x2775},\n\t{0x2780, 0x2794}, {0x2798, 0x27AF}, {0x27B1, 0x27BE},\n\t{0x27C0, 0x27E5}, {0x27EE, 0x2984}, {0x2987, 0x2B1A},\n\t{0x2B1D, 0x2B4F}, {0x2B51, 0x2B54}, {0x2B5A, 0x2B73},\n\t{0x2B76, 0x2B95}, {0x2B97, 0x2C2E}, {0x2C30, 0x2C5E},\n\t{0x2C60, 0x2CF3}, {0x2CF9, 0x2D25}, {0x2D27, 0x2D27},\n\t{0x2D2D, 0x2D2D}, {0x2D30, 0x2D67}, {0x2D6F, 0x2D70},\n\t{0x2D7F, 0x2D96}, {0x2DA0, 0x2DA6}, {0x2DA8, 0x2DAE},\n\t{0x2DB0, 0x2DB6}, {0x2DB8, 0x2DBE}, {0x2DC0, 0x2DC6},\n\t{0x2DC8, 0x2DCE}, {0x2DD0, 0x2DD6}, {0x2DD8, 0x2DDE},\n\t{0x2DE0, 0x2E52}, {0x303F, 0x303F}, {0x4DC0, 0x4DFF},\n\t{0xA4D0, 0xA62B}, {0xA640, 0xA6F7}, {0xA700, 0xA7BF},\n\t{0xA7C2, 0xA7CA}, {0xA7F5, 0xA82C}, {0xA830, 0xA839},\n\t{0xA840, 0xA877}, {0xA880, 0xA8C5}, {0xA8CE, 0xA8D9},\n\t{0xA8E0, 0xA953}, {0xA95F, 0xA95F}, {0xA980, 0xA9CD},\n\t{0xA9CF, 0xA9D9}, {0xA9DE, 0xA9FE}, {0xAA00, 0xAA36},\n\t{0xAA40, 0xAA4D}, {0xAA50, 0xAA59}, {0xAA5C, 0xAAC2},\n\t{0xAADB, 0xAAF6}, {0xAB01, 0xAB06}, {0xAB09, 0xAB0E},\n\t{0xAB11, 0xAB16}, {0xAB20, 0xAB26}, {0xAB28, 0xAB2E},\n\t{0xAB30, 0xAB6B}, {0xAB70, 0xABED}, {0xABF0, 0xABF9},\n\t{0xD7B0, 0xD7C6}, {0xD7CB, 0xD7FB}, {0xD800, 0xDFFF},\n\t{0xFB00, 0xFB06}, {0xFB13, 0xFB17}, {0xFB1D, 0xFB36},\n\t{0xFB38, 0xFB3C}, {0xFB3E, 0xFB3E}, {0xFB40, 0xFB41},\n\t{0xFB43, 0xFB44}, {0xFB46, 0xFBC1}, {0xFBD3, 0xFD3F},\n\t{0xFD50, 0xFD8F}, {0xFD92, 0xFDC7}, {0xFDF0, 0xFDFD},\n\t{0xFE20, 0xFE2F}, {0xFE70, 0xFE74}, {0xFE76, 0xFEFC},\n\t{0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFC}, {0x10000, 0x1000B},\n\t{0x1000D, 0x10026}, {0x10028, 0x1003A}, {0x1003C, 0x1003D},\n\t{0x1003F, 0x1004D}, {0x10050, 0x1005D}, {0x10080, 0x100FA},\n\t{0x10100, 0x10102}, {0x10107, 0x10133}, {0x10137, 0x1018E},\n\t{0x10190, 0x1019C}, {0x101A0, 0x101A0}, {0x101D0, 0x101FD},\n\t{0x10280, 0x1029C}, {0x102A0, 0x102D0}, {0x102E0, 0x102FB},\n\t{0x10300, 0x10323}, {0x1032D, 0x1034A}, {0x10350, 0x1037A},\n\t{0x10380, 0x1039D}, {0x1039F, 0x103C3}, {0x103C8, 0x103D5},\n\t{0x10400, 0x1049D}, {0x104A0, 0x104A9}, {0x104B0, 0x104D3},\n\t{0x104D8, 0x104FB}, {0x10500, 0x10527}, {0x10530, 0x10563},\n\t{0x1056F, 0x1056F}, {0x10600, 0x10736}, {0x10740, 0x10755},\n\t{0x10760, 0x10767}, {0x10800, 0x10805}, {0x10808, 0x10808},\n\t{0x1080A, 0x10835}, {0x10837, 0x10838}, {0x1083C, 0x1083C},\n\t{0x1083F, 0x10855}, {0x10857, 0x1089E}, {0x108A7, 0x108AF},\n\t{0x108E0, 0x108F2}, {0x108F4, 0x108F5}, {0x108FB, 0x1091B},\n\t{0x1091F, 0x10939}, {0x1093F, 0x1093F}, {0x10980, 0x109B7},\n\t{0x109BC, 0x109CF}, {0x109D2, 0x10A03}, {0x10A05, 0x10A06},\n\t{0x10A0C, 0x10A13}, {0x10A15, 0x10A17}, {0x10A19, 0x10A35},\n\t{0x10A38, 0x10A3A}, {0x10A3F, 0x10A48}, {0x10A50, 0x10A58},\n\t{0x10A60, 0x10A9F}, {0x10AC0, 0x10AE6}, {0x10AEB, 0x10AF6},\n\t{0x10B00, 0x10B35}, {0x10B39, 0x10B55}, {0x10B58, 0x10B72},\n\t{0x10B78, 0x10B91}, {0x10B99, 0x10B9C}, {0x10BA9, 0x10BAF},\n\t{0x10C00, 0x10C48}, {0x10C80, 0x10CB2}, {0x10CC0, 0x10CF2},\n\t{0x10CFA, 0x10D27}, {0x10D30, 0x10D39}, {0x10E60, 0x10E7E},\n\t{0x10E80, 0x10EA9}, {0x10EAB, 0x10EAD}, {0x10EB0, 0x10EB1},\n\t{0x10F00, 0x10F27}, {0x10F30, 0x10F59}, {0x10FB0, 0x10FCB},\n\t{0x10FE0, 0x10FF6}, {0x11000, 0x1104D}, {0x11052, 0x1106F},\n\t{0x1107F, 0x110C1}, {0x110CD, 0x110CD}, {0x110D0, 0x110E8},\n\t{0x110F0, 0x110F9}, {0x11100, 0x11134}, {0x11136, 0x11147},\n\t{0x11150, 0x11176}, {0x11180, 0x111DF}, {0x111E1, 0x111F4},\n\t{0x11200, 0x11211}, {0x11213, 0x1123E}, {0x11280, 0x11286},\n\t{0x11288, 0x11288}, {0x1128A, 0x1128D}, {0x1128F, 0x1129D},\n\t{0x1129F, 0x112A9}, {0x112B0, 0x112EA}, {0x112F0, 0x112F9},\n\t{0x11300, 0x11303}, {0x11305, 0x1130C}, {0x1130F, 0x11310},\n\t{0x11313, 0x11328}, {0x1132A, 0x11330}, {0x11332, 0x11333},\n\t{0x11335, 0x11339}, {0x1133B, 0x11344}, {0x11347, 0x11348},\n\t{0x1134B, 0x1134D}, {0x11350, 0x11350}, {0x11357, 0x11357},\n\t{0x1135D, 0x11363}, {0x11366, 0x1136C}, {0x11370, 0x11374},\n\t{0x11400, 0x1145B}, {0x1145D, 0x11461}, {0x11480, 0x114C7},\n\t{0x114D0, 0x114D9}, {0x11580, 0x115B5}, {0x115B8, 0x115DD},\n\t{0x11600, 0x11644}, {0x11650, 0x11659}, {0x11660, 0x1166C},\n\t{0x11680, 0x116B8}, {0x116C0, 0x116C9}, {0x11700, 0x1171A},\n\t{0x1171D, 0x1172B}, {0x11730, 0x1173F}, {0x11800, 0x1183B},\n\t{0x118A0, 0x118F2}, {0x118FF, 0x11906}, {0x11909, 0x11909},\n\t{0x1190C, 0x11913}, {0x11915, 0x11916}, {0x11918, 0x11935},\n\t{0x11937, 0x11938}, {0x1193B, 0x11946}, {0x11950, 0x11959},\n\t{0x119A0, 0x119A7}, {0x119AA, 0x119D7}, {0x119DA, 0x119E4},\n\t{0x11A00, 0x11A47}, {0x11A50, 0x11AA2}, {0x11AC0, 0x11AF8},\n\t{0x11C00, 0x11C08}, {0x11C0A, 0x11C36}, {0x11C38, 0x11C45},\n\t{0x11C50, 0x11C6C}, {0x11C70, 0x11C8F}, {0x11C92, 0x11CA7},\n\t{0x11CA9, 0x11CB6}, {0x11D00, 0x11D06}, {0x11D08, 0x11D09},\n\t{0x11D0B, 0x11D36}, {0x11D3A, 0x11D3A}, {0x11D3C, 0x11D3D},\n\t{0x11D3F, 0x11D47}, {0x11D50, 0x11D59}, {0x11D60, 0x11D65},\n\t{0x11D67, 0x11D68}, {0x11D6A, 0x11D8E}, {0x11D90, 0x11D91},\n\t{0x11D93, 0x11D98}, {0x11DA0, 0x11DA9}, {0x11EE0, 0x11EF8},\n\t{0x11FB0, 0x11FB0}, {0x11FC0, 0x11FF1}, {0x11FFF, 0x12399},\n\t{0x12400, 0x1246E}, {0x12470, 0x12474}, {0x12480, 0x12543},\n\t{0x13000, 0x1342E}, {0x13430, 0x13438}, {0x14400, 0x14646},\n\t{0x16800, 0x16A38}, {0x16A40, 0x16A5E}, {0x16A60, 0x16A69},\n\t{0x16A6E, 0x16A6F}, {0x16AD0, 0x16AED}, {0x16AF0, 0x16AF5},\n\t{0x16B00, 0x16B45}, {0x16B50, 0x16B59}, {0x16B5B, 0x16B61},\n\t{0x16B63, 0x16B77}, {0x16B7D, 0x16B8F}, {0x16E40, 0x16E9A},\n\t{0x16F00, 0x16F4A}, {0x16F4F, 0x16F87}, {0x16F8F, 0x16F9F},\n\t{0x1BC00, 0x1BC6A}, {0x1BC70, 0x1BC7C}, {0x1BC80, 0x1BC88},\n\t{0x1BC90, 0x1BC99}, {0x1BC9C, 0x1BCA3}, {0x1D000, 0x1D0F5},\n\t{0x1D100, 0x1D126}, {0x1D129, 0x1D1E8}, {0x1D200, 0x1D245},\n\t{0x1D2E0, 0x1D2F3}, {0x1D300, 0x1D356}, {0x1D360, 0x1D378},\n\t{0x1D400, 0x1D454}, {0x1D456, 0x1D49C}, {0x1D49E, 0x1D49F},\n\t{0x1D4A2, 0x1D4A2}, {0x1D4A5, 0x1D4A6}, {0x1D4A9, 0x1D4AC},\n\t{0x1D4AE, 0x1D4B9}, {0x1D4BB, 0x1D4BB}, {0x1D4BD, 0x1D4C3},\n\t{0x1D4C5, 0x1D505}, {0x1D507, 0x1D50A}, {0x1D50D, 0x1D514},\n\t{0x1D516, 0x1D51C}, {0x1D51E, 0x1D539}, {0x1D53B, 0x1D53E},\n\t{0x1D540, 0x1D544}, {0x1D546, 0x1D546}, {0x1D54A, 0x1D550},\n\t{0x1D552, 0x1D6A5}, {0x1D6A8, 0x1D7CB}, {0x1D7CE, 0x1DA8B},\n\t{0x1DA9B, 0x1DA9F}, {0x1DAA1, 0x1DAAF}, {0x1E000, 0x1E006},\n\t{0x1E008, 0x1E018}, {0x1E01B, 0x1E021}, {0x1E023, 0x1E024},\n\t{0x1E026, 0x1E02A}, {0x1E100, 0x1E12C}, {0x1E130, 0x1E13D},\n\t{0x1E140, 0x1E149}, {0x1E14E, 0x1E14F}, {0x1E2C0, 0x1E2F9},\n\t{0x1E2FF, 0x1E2FF}, {0x1E800, 0x1E8C4}, {0x1E8C7, 0x1E8D6},\n\t{0x1E900, 0x1E94B}, {0x1E950, 0x1E959}, {0x1E95E, 0x1E95F},\n\t{0x1EC71, 0x1ECB4}, {0x1ED01, 0x1ED3D}, {0x1EE00, 0x1EE03},\n\t{0x1EE05, 0x1EE1F}, {0x1EE21, 0x1EE22}, {0x1EE24, 0x1EE24},\n\t{0x1EE27, 0x1EE27}, {0x1EE29, 0x1EE32}, {0x1EE34, 0x1EE37},\n\t{0x1EE39, 0x1EE39}, {0x1EE3B, 0x1EE3B}, {0x1EE42, 0x1EE42},\n\t{0x1EE47, 0x1EE47}, {0x1EE49, 0x1EE49}, {0x1EE4B, 0x1EE4B},\n\t{0x1EE4D, 0x1EE4F}, {0x1EE51, 0x1EE52}, {0x1EE54, 0x1EE54},\n\t{0x1EE57, 0x1EE57}, {0x1EE59, 0x1EE59}, {0x1EE5B, 0x1EE5B},\n\t{0x1EE5D, 0x1EE5D}, {0x1EE5F, 0x1EE5F}, {0x1EE61, 0x1EE62},\n\t{0x1EE64, 0x1EE64}, {0x1EE67, 0x1EE6A}, {0x1EE6C, 0x1EE72},\n\t{0x1EE74, 0x1EE77}, {0x1EE79, 0x1EE7C}, {0x1EE7E, 0x1EE7E},\n\t{0x1EE80, 0x1EE89}, {0x1EE8B, 0x1EE9B}, {0x1EEA1, 0x1EEA3},\n\t{0x1EEA5, 0x1EEA9}, {0x1EEAB, 0x1EEBB}, {0x1EEF0, 0x1EEF1},\n\t{0x1F000, 0x1F003}, {0x1F005, 0x1F02B}, {0x1F030, 0x1F093},\n\t{0x1F0A0, 0x1F0AE}, {0x1F0B1, 0x1F0BF}, {0x1F0C1, 0x1F0CE},\n\t{0x1F0D1, 0x1F0F5}, {0x1F10B, 0x1F10F}, {0x1F12E, 0x1F12F},\n\t{0x1F16A, 0x1F16F}, {0x1F1AD, 0x1F1AD}, {0x1F1E6, 0x1F1FF},\n\t{0x1F321, 0x1F32C}, {0x1F336, 0x1F336}, {0x1F37D, 0x1F37D},\n\t{0x1F394, 0x1F39F}, {0x1F3CB, 0x1F3CE}, {0x1F3D4, 0x1F3DF},\n\t{0x1F3F1, 0x1F3F3}, {0x1F3F5, 0x1F3F7}, {0x1F43F, 0x1F43F},\n\t{0x1F441, 0x1F441}, {0x1F4FD, 0x1F4FE}, {0x1F53E, 0x1F54A},\n\t{0x1F54F, 0x1F54F}, {0x1F568, 0x1F579}, {0x1F57B, 0x1F594},\n\t{0x1F597, 0x1F5A3}, {0x1F5A5, 0x1F5FA}, {0x1F650, 0x1F67F},\n\t{0x1F6C6, 0x1F6CB}, {0x1F6CD, 0x1F6CF}, {0x1F6D3, 0x1F6D4},\n\t{0x1F6E0, 0x1F6EA}, {0x1F6F0, 0x1F6F3}, {0x1F700, 0x1F773},\n\t{0x1F780, 0x1F7D8}, {0x1F800, 0x1F80B}, {0x1F810, 0x1F847},\n\t{0x1F850, 0x1F859}, {0x1F860, 0x1F887}, {0x1F890, 0x1F8AD},\n\t{0x1F8B0, 0x1F8B1}, {0x1F900, 0x1F90B}, {0x1F93B, 0x1F93B},\n\t{0x1F946, 0x1F946}, {0x1FA00, 0x1FA53}, {0x1FA60, 0x1FA6D},\n\t{0x1FB00, 0x1FB92}, {0x1FB94, 0x1FBCA}, {0x1FBF0, 0x1FBF9},\n\t{0xE0001, 0xE0001}, {0xE0020, 0xE007F},\n}\n\nvar emoji = table{\n\t{0x203C, 0x203C}, {0x2049, 0x2049}, {0x2122, 0x2122},\n\t{0x2139, 0x2139}, {0x2194, 0x2199}, {0x21A9, 0x21AA},\n\t{0x231A, 0x231B}, {0x2328, 0x2328}, {0x2388, 0x2388},\n\t{0x23CF, 0x23CF}, {0x23E9, 0x23F3}, {0x23F8, 0x23FA},\n\t{0x24C2, 0x24C2}, {0x25AA, 0x25AB}, {0x25B6, 0x25B6},\n\t{0x25C0, 0x25C0}, {0x25FB, 0x25FE}, {0x2600, 0x2605},\n\t{0x2607, 0x2612}, {0x2614, 0x2685}, {0x2690, 0x2705},\n\t{0x2708, 0x2712}, {0x2714, 0x2714}, {0x2716, 0x2716},\n\t{0x271D, 0x271D}, {0x2721, 0x2721}, {0x2728, 0x2728},\n\t{0x2733, 0x2734}, {0x2744, 0x2744}, {0x2747, 0x2747},\n\t{0x274C, 0x274C}, {0x274E, 0x274E}, {0x2753, 0x2755},\n\t{0x2757, 0x2757}, {0x2763, 0x2767}, {0x2795, 0x2797},\n\t{0x27A1, 0x27A1}, {0x27B0, 0x27B0}, {0x27BF, 0x27BF},\n\t{0x2934, 0x2935}, {0x2B05, 0x2B07}, {0x2B1B, 0x2B1C},\n\t{0x2B50, 0x2B50}, {0x2B55, 0x2B55}, {0x3030, 0x3030},\n\t{0x303D, 0x303D}, {0x3297, 0x3297}, {0x3299, 0x3299},\n\t{0x1F000, 0x1F0FF}, {0x1F10D, 0x1F10F}, {0x1F12F, 0x1F12F},\n\t{0x1F16C, 0x1F171}, {0x1F17E, 0x1F17F}, {0x1F18E, 0x1F18E},\n\t{0x1F191, 0x1F19A}, {0x1F1AD, 0x1F1E5}, {0x1F201, 0x1F20F},\n\t{0x1F21A, 0x1F21A}, {0x1F22F, 0x1F22F}, {0x1F232, 0x1F23A},\n\t{0x1F23C, 0x1F23F}, {0x1F249, 0x1F3FA}, {0x1F400, 0x1F53D},\n\t{0x1F546, 0x1F64F}, {0x1F680, 0x1F6FF}, {0x1F774, 0x1F77F},\n\t{0x1F7D5, 0x1F7FF}, {0x1F80C, 0x1F80F}, {0x1F848, 0x1F84F},\n\t{0x1F85A, 0x1F85F}, {0x1F888, 0x1F88F}, {0x1F8AE, 0x1F8FF},\n\t{0x1F90C, 0x1F93A}, {0x1F93C, 0x1F945}, {0x1F947, 0x1FAFF},\n\t{0x1FC00, 0x1FFFD},\n}\n"
  },
  {
    "path": "vendor/github.com/mattn/go-runewidth/runewidth_windows.go",
    "content": "//go:build windows && !appengine\n// +build windows,!appengine\n\npackage runewidth\n\nimport (\n\t\"syscall\"\n)\n\nvar (\n\tkernel32               = syscall.NewLazyDLL(\"kernel32\")\n\tprocGetConsoleOutputCP = kernel32.NewProc(\"GetConsoleOutputCP\")\n)\n\n// IsEastAsian return true if the current locale is CJK\nfunc IsEastAsian() bool {\n\tr1, _, _ := procGetConsoleOutputCP.Call()\n\tif r1 == 0 {\n\t\treturn false\n\t}\n\n\tswitch int(r1) {\n\tcase 932, 51932, 936, 949, 950:\n\t\treturn true\n\t}\n\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/mcuadros/go-lookup/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.2\n  - 1.3\n  - 1.4\n  - tip\n\nscript:\n  - go get gopkg.in/check.v1\n  - go test -v .\n"
  },
  {
    "path": "vendor/github.com/mcuadros/go-lookup/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015 Máximo Cuadros\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "vendor/github.com/mcuadros/go-lookup/README.md",
    "content": "go-lookup [![Build Status](https://travis-ci.org/mcuadros/go-lookup.png?branch=master)](https://travis-ci.org/mcuadros/go-lookup) [![GoDoc](http://godoc.org/github.com/mcuadros/go-lookup?status.png)](http://godoc.org/github.com/mcuadros/go-lookup)\n==============================\n\nSmall library on top of reflect for make lookups to Structs or Maps. Using a very simple DSL you can access to any property, key or value of any value of Go.\n\nInstallation\n------------\n\nThe recommended way to install go-lookup\n\n```\ngo get github.com/mcuadros/go-lookup\n```\n\nExample\n-------\n\n```go\ntype Cast struct {\n  Actor, Role string\n}\n\ntype Serie struct {\n  Cast []Cast\n}\n\nseries := map[string]Serie{\n  \"A-Team\": {Cast: []Cast{\n    {Actor: \"George Peppard\", Role: \"Hannibal\"},\n    {Actor: \"Dwight Schultz\", Role: \"Murdock\"},\n    {Actor: \"Mr. T\", Role: \"Baracus\"},\n    {Actor: \"Dirk Benedict\", Role: \"Faceman\"},\n  }},\n}\n\nq := \"A-Team.Cast.Role\"\nvalue, _ := LookupString(series, q)\nfmt.Println(q, \"->\", value.Interface())\n// A-Team.Cast.Role -> [Hannibal Murdock Baracus Faceman]\n\nq = \"A-Team.Cast[0].Actor\"\nvalue, _ = LookupString(series, q)\nfmt.Println(q, \"->\", value.Interface())\n// A-Team.Cast[0].Actor -> George Peppard\n```\n\nLicense\n-------\n\nMIT, see [LICENSE](LICENSE)\n"
  },
  {
    "path": "vendor/github.com/mcuadros/go-lookup/lookup.go",
    "content": "/*\nSmall library on top of reflect for make lookups to Structs or Maps. Using a\nvery simple DSL you can access to any property, key or value of any value of Go.\n*/\npackage lookup\n\nimport (\n\t\"errors\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nconst (\n\tSplitToken     = \".\"\n\tIndexCloseChar = \"]\"\n\tIndexOpenChar  = \"[\"\n)\n\nvar (\n\tErrMalformedIndex    = errors.New(\"Malformed index key\")\n\tErrInvalidIndexUsage = errors.New(\"Invalid index key usage\")\n\tErrKeyNotFound       = errors.New(\"Unable to find the key\")\n)\n\n// LookupString performs a lookup into a value, using a string. Same as `Loookup`\n// but using a string with the keys separated by `.`\nfunc LookupString(i interface{}, path string) (reflect.Value, error) {\n\treturn Lookup(i, strings.Split(path, SplitToken)...)\n}\n\n// Lookup performs a lookup into a value, using a path of keys. The key should\n// match with a Field or a MapIndex. For slice you can use the syntax key[index]\n// to access a specific index. If one key owns to a slice and an index is not\n// specificied the rest of the path will be apllied to evaley value of the\n// slice, and the value will be merged into a slice.\nfunc Lookup(i interface{}, path ...string) (reflect.Value, error) {\n\tvalue := reflect.ValueOf(i)\n\tvar parent reflect.Value\n\tvar err error\n\n\tfor i, part := range path {\n\t\tparent = value\n\n\t\tvalue, err = getValueByName(value, part)\n\t\tif err == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif !isAggregable(parent) {\n\t\t\tbreak\n\t\t}\n\n\t\tvalue, err = aggreateAggregableValue(parent, path[i:])\n\n\t\tbreak\n\t}\n\n\treturn value, err\n}\n\nfunc getValueByName(v reflect.Value, key string) (reflect.Value, error) {\n\tvar value reflect.Value\n\tvar index int\n\tvar err error\n\n\tkey, index, err = parseIndex(key)\n\tif err != nil {\n\t\treturn value, err\n\t}\n\tswitch v.Kind() {\n\tcase reflect.Ptr, reflect.Interface:\n\t\treturn getValueByName(v.Elem(), key)\n\tcase reflect.Struct:\n\t\tvalue = v.FieldByName(key)\n\tcase reflect.Map:\n\t\tkValue := reflect.Indirect(reflect.New(v.Type().Key()))\n\t\tkValue.SetString(key)\n\t\tvalue = v.MapIndex(kValue)\n\t}\n\n\tif !value.IsValid() {\n\t\treturn reflect.Value{}, ErrKeyNotFound\n\t}\n\n\tif index != -1 {\n\t\tif value.Type().Kind() != reflect.Slice {\n\t\t\treturn reflect.Value{}, ErrInvalidIndexUsage\n\t\t}\n\n\t\tvalue = value.Index(index)\n\t}\n\n\tif value.Kind() == reflect.Ptr || value.Kind() == reflect.Interface {\n\t\tvalue = value.Elem()\n\t}\n\n\treturn value, nil\n}\n\nfunc aggreateAggregableValue(v reflect.Value, path []string) (reflect.Value, error) {\n\tvalues := make([]reflect.Value, 0)\n\n\tl := v.Len()\n\tif l == 0 {\n\t\tty, ok := lookupType(v.Type(), path...)\n\t\tif !ok {\n\t\t\treturn reflect.Value{}, ErrKeyNotFound\n\t\t}\n\t\treturn reflect.MakeSlice(reflect.SliceOf(ty), 0, 0), nil\n\t}\n\n\tindex := indexFunction(v)\n\tfor i := 0; i < l; i++ {\n\t\tvalue, err := Lookup(index(i).Interface(), path...)\n\t\tif err != nil {\n\t\t\treturn reflect.Value{}, err\n\t\t}\n\n\t\tvalues = append(values, value)\n\t}\n\n\treturn mergeValue(values), nil\n}\n\nfunc indexFunction(v reflect.Value) func(i int) reflect.Value {\n\tswitch v.Kind() {\n\tcase reflect.Slice:\n\t\treturn v.Index\n\tcase reflect.Map:\n\t\tkeys := v.MapKeys()\n\t\treturn func(i int) reflect.Value {\n\t\t\treturn v.MapIndex(keys[i])\n\t\t}\n\tdefault:\n\t\tpanic(\"unsuported kind for index\")\n\t}\n}\n\nfunc mergeValue(values []reflect.Value) reflect.Value {\n\tvalues = removeZeroValues(values)\n\tl := len(values)\n\tif l == 0 {\n\t\treturn reflect.Value{}\n\t}\n\n\tsample := values[0]\n\tmergeable := isMergeable(sample)\n\n\tt := sample.Type()\n\tif mergeable {\n\t\tt = t.Elem()\n\t}\n\n\tvalue := reflect.MakeSlice(reflect.SliceOf(t), 0, 0)\n\tfor i := 0; i < l; i++ {\n\t\tif !values[i].IsValid() {\n\t\t\tcontinue\n\t\t}\n\n\t\tif mergeable {\n\t\t\tvalue = reflect.AppendSlice(value, values[i])\n\t\t} else {\n\t\t\tvalue = reflect.Append(value, values[i])\n\t\t}\n\t}\n\n\treturn value\n}\n\nfunc removeZeroValues(values []reflect.Value) []reflect.Value {\n\tl := len(values)\n\n\tvar v []reflect.Value\n\tfor i := 0; i < l; i++ {\n\t\tif values[i].IsValid() {\n\t\t\tv = append(v, values[i])\n\t\t}\n\t}\n\n\treturn v\n}\n\nfunc isAggregable(v reflect.Value) bool {\n\tk := v.Kind()\n\n\treturn k == reflect.Map || k == reflect.Slice\n}\n\nfunc isMergeable(v reflect.Value) bool {\n\tk := v.Kind()\n\treturn k == reflect.Map || k == reflect.Slice\n}\n\nfunc hasIndex(s string) bool {\n\treturn strings.Index(s, IndexOpenChar) != -1\n}\n\nfunc parseIndex(s string) (string, int, error) {\n\tstart := strings.Index(s, IndexOpenChar)\n\tend := strings.Index(s, IndexCloseChar)\n\n\tif start == -1 && end == -1 {\n\t\treturn s, -1, nil\n\t}\n\n\tif (start != -1 && end == -1) || (start == -1 && end != -1) {\n\t\treturn \"\", -1, ErrMalformedIndex\n\t}\n\n\tindex, err := strconv.Atoi(s[start+1 : end])\n\tif err != nil {\n\t\treturn \"\", -1, ErrMalformedIndex\n\t}\n\n\treturn s[:start], index, nil\n}\n\nfunc lookupType(ty reflect.Type, path ...string) (reflect.Type, bool) {\n\tif len(path) == 0 {\n\t\treturn ty, true\n\t}\n\n\tswitch ty.Kind() {\n\tcase reflect.Slice, reflect.Array, reflect.Map:\n\t\tif hasIndex(path[0]) {\n\t\t\treturn lookupType(ty.Elem(), path[1:]...)\n\t\t}\n\t\t// Aggregate.\n\t\treturn lookupType(ty.Elem(), path...)\n\tcase reflect.Ptr:\n\t\treturn lookupType(ty.Elem(), path...)\n\tcase reflect.Interface:\n\t\t// We can't know from here without a value. Let's just return this type.\n\t\treturn ty, true\n\tcase reflect.Struct:\n\t\tf, ok := ty.FieldByName(path[0])\n\t\tif ok {\n\t\t\treturn lookupType(f.Type, path[1:]...)\n\t\t}\n\t}\n\treturn nil, false\n}\n"
  },
  {
    "path": "vendor/github.com/mgutz/str/.gitignore",
    "content": "tmp/\n*.log\n_*\nnode_modules\nexample/dist\n/Gododir/godobin*\n/Gododir/Gododir\n"
  },
  {
    "path": "vendor/github.com/mgutz/str/CREDITS",
    "content": "*   [string.js](http://stringjs.com) - I contributed several\n    functions to this project.\n\n*   [bbgen.net](http://bbgen.net/blog/2011/06/string-to-argc-argv/)\n\n"
  },
  {
    "path": "vendor/github.com/mgutz/str/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2013-2014 Mario L. Gutierrez <mario@mgutz.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/mgutz/str/README.md",
    "content": "# str\n\n    import \"github.com/mgutz/str\"\n\nPackage str is a comprehensive set of string functions to build more Go\nawesomeness. Str complements Go's standard packages and does not duplicate\nfunctionality found in `strings` or `strconv`.\n\nStr is based on plain functions instead of object-based methods, consistent with\nGo standard string packages.\n\n    str.Between(\"<a>foo</a>\", \"<a>\", \"</a>\") == \"foo\"\n\nStr supports pipelining instead of chaining\n\n    s := str.Pipe(\"\\nabcdef\\n\", Clean, BetweenF(\"a\", \"f\"), ChompLeftF(\"bc\"))\n\nUser-defined filters can be added to the pipeline by inserting a function or\nclosure that returns a function with this signature\n\n    func(string) string\n\n### Index\n\n* [Variables](#variables)\n* [func  Between](#func\n[godoc](https://godoc.org/github.com/mgutz/str)\nbetween)\n* [func  BetweenF](#func--betweenf)\n* [func  Camelize](#func--camelize)\n* [func  Capitalize](#func--capitalize)\n* [func  CharAt](#func--charat)\n* [func  CharAtF](#func--charatf)\n* [func  ChompLeft](#func--chompleft)\n* [func  ChompLeftF](#func--chompleftf)\n* [func  ChompRight](#func--chompright)\n* [func  ChompRightF](#func--chomprightf)\n* [func  Classify](#func--classify)\n* [func  ClassifyF](#func--classifyf)\n* [func  Clean](#func--clean)\n* [func  Dasherize](#func--dasherize)\n* [func  DecodeHTMLEntities](#func--decodehtmlentities)\n* [func  EnsurePrefix](#func--ensureprefix)\n* [func  EnsurePrefixF](#func--ensureprefixf)\n* [func  EnsureSuffix](#func--ensuresuffix)\n* [func  EnsureSuffixF](#func--ensuresuffixf)\n* [func  EscapeHTML](#func--escapehtml)\n* [func  Humanize](#func--humanize)\n* [func  Iif](#func--iif)\n* [func  IndexOf](#func--indexof)\n* [func  IsAlpha](#func--isalpha)\n* [func  IsAlphaNumeric](#func--isalphanumeric)\n* [func  IsEmpty](#func--isempty)\n* [func  IsLower](#func--islower)\n* [func  IsNumeric](#func--isnumeric)\n* [func  IsUpper](#func--isupper)\n* [func  Left](#func--left)\n* [func  LeftF](#func--leftf)\n* [func  LeftOf](#func--leftof)\n* [func  Letters](#func--letters)\n* [func  Lines](#func--lines)\n* [func  Map](#func--map)\n* [func  Match](#func--match)\n* [func  Pad](#func--pad)\n* [func  PadF](#func--padf)\n* [func  PadLeft](#func--padleft)\n* [func  PadLeftF](#func--padleftf)\n* [func  PadRight](#func--padright)\n* [func  PadRightF](#func--padrightf)\n* [func  Pipe](#func--pipe)\n* [func  QuoteItems](#func--quoteitems)\n* [func  ReplaceF](#func--replacef)\n* [func  ReplacePattern](#func--replacepattern)\n* [func  ReplacePatternF](#func--replacepatternf)\n* [func  Reverse](#func--reverse)\n* [func  Right](#func--right)\n* [func  RightF](#func--rightf)\n* [func  RightOf](#func--rightof)\n* [func  SetTemplateDelimiters](#func--settemplatedelimiters)\n* [func  Slice](#func--slice)\n* [func  SliceContains](#func--slicecontains)\n* [func  SliceF](#func--slicef)\n* [func  SliceIndexOf](#func--sliceindexof)\n* [func  Slugify](#func--slugify)\n* [func  StripPunctuation](#func--strippunctuation)\n* [func  StripTags](#func--striptags)\n* [func  Substr](#func--substr)\n* [func  SubstrF](#func--substrf)\n* [func  Template](#func--template)\n* [func  TemplateDelimiters](#func--templatedelimiters)\n* [func  TemplateWithDelimiters](#func--templatewithdelimiters)\n* [func  ToArgv](#func--toargv)\n* [func  ToBool](#func--tobool)\n* [func  ToBoolOr](#func--toboolor)\n* [func  ToFloat32Or](#func--tofloat32or)\n* [func  ToFloat64Or](#func--tofloat64or)\n* [func  ToIntOr](#func--tointor)\n* [func  Underscore](#func--underscore)\n* [func  UnescapeHTML](#func--unescapehtml)\n* [func  WrapHTML](#func--wraphtml)\n* [func  WrapHTMLF](#func--wraphtmlf)\n\n\n#### Variables\n\n```go\nvar ToFloatOr = ToFloat64Or\n```\nToFloatOr parses as a float64 or returns defaultValue.\n\n```go\nvar Verbose = false\n```\nVerbose flag enables console output for those functions that have counterparts\nin Go's excellent stadard packages.\n\n#### func  [Between](#between)\n\n```go\nfunc Between(s, left, right string) string\n```\nBetween extracts a string between left and right strings.\n\n#### func  [BetweenF](#betweenf)\n\n```go\nfunc BetweenF(left, right string) func(string) string\n```\nBetweenF is the filter form for Between.\n\n#### func  [Camelize](#camelize)\n\n```go\nfunc Camelize(s string) string\n```\nCamelize return new string which removes any underscores or dashes and convert a\nstring into camel casing.\n\n#### func  [Capitalize](#capitalize)\n\n```go\nfunc Capitalize(s string) string\n```\nCapitalize uppercases the first char of s and lowercases the rest.\n\n#### func  [CharAt](#charat)\n\n```go\nfunc CharAt(s string, index int) string\n```\nCharAt returns a string from the character at the specified position.\n\n#### func  [CharAtF](#charatf)\n\n```go\nfunc CharAtF(index int) func(string) string\n```\nCharAtF is the filter form of CharAt.\n\n#### func  [ChompLeft](#chompleft)\n\n```go\nfunc ChompLeft(s, prefix string) string\n```\nChompLeft removes prefix at the start of a string.\n\n#### func  [ChompLeftF](#chompleftf)\n\n```go\nfunc ChompLeftF(prefix string) func(string) string\n```\nChompLeftF is the filter form of ChompLeft.\n\n#### func  [ChompRight](#chompright)\n\n```go\nfunc ChompRight(s, suffix string) string\n```\nChompRight removes suffix from end of s.\n\n#### func  [ChompRightF](#chomprightf)\n\n```go\nfunc ChompRightF(suffix string) func(string) string\n```\nChompRightF is the filter form of ChompRight.\n\n#### func  [Classify](#classify)\n\n```go\nfunc Classify(s string) string\n```\nClassify returns a camelized string with the first letter upper cased.\n\n#### func  [ClassifyF](#classifyf)\n\n```go\nfunc ClassifyF(s string) func(string) string\n```\nClassifyF is the filter form of Classify.\n\n#### func  [Clean](#clean)\n\n```go\nfunc Clean(s string) string\n```\nClean compresses all adjacent whitespace to a single space and trims s.\n\n#### func  [Dasherize](#dasherize)\n\n```go\nfunc Dasherize(s string) string\n```\nDasherize converts a camel cased string into a string delimited by dashes.\n\n#### func  [DecodeHTMLEntities](#decodehtmlentities)\n\n```go\nfunc DecodeHTMLEntities(s string) string\n```\nDecodeHTMLEntities decodes HTML entities into their proper string\nrepresentation. DecodeHTMLEntities is an alias for html.UnescapeString\n\n#### func  [EnsurePrefix](#ensureprefix)\n\n```go\nfunc EnsurePrefix(s, prefix string) string\n```\nEnsurePrefix ensures s starts with prefix.\n\n#### func  [EnsurePrefixF](#ensureprefixf)\n\n```go\nfunc EnsurePrefixF(prefix string) func(string) string\n```\nEnsurePrefixF is the filter form of EnsurePrefix.\n\n#### func  [EnsureSuffix](#ensuresuffix)\n\n```go\nfunc EnsureSuffix(s, suffix string) string\n```\nEnsureSuffix ensures s ends with suffix.\n\n#### func  [EnsureSuffixF](#ensuresuffixf)\n\n```go\nfunc EnsureSuffixF(suffix string) func(string) string\n```\nEnsureSuffixF is the filter form of EnsureSuffix.\n\n#### func  [EscapeHTML](#escapehtml)\n\n```go\nfunc EscapeHTML(s string) string\n```\nEscapeHTML is alias for html.EscapeString.\n\n#### func  [Humanize](#humanize)\n\n```go\nfunc Humanize(s string) string\n```\nHumanize transforms s into a human friendly form.\n\n#### func  [Iif](#iif)\n\n```go\nfunc Iif(condition bool, truthy string, falsey string) string\n```\nIif is short for immediate if. If condition is true return truthy else falsey.\n\n#### func  [IndexOf](#indexof)\n\n```go\nfunc IndexOf(s string, needle string, start int) int\n```\nIndexOf finds the index of needle in s starting from start.\n\n#### func  [IsAlpha](#isalpha)\n\n```go\nfunc IsAlpha(s string) bool\n```\nIsAlpha returns true if a string contains only letters from ASCII (a-z,A-Z).\nOther letters from other languages are not supported.\n\n#### func  [IsAlphaNumeric](#isalphanumeric)\n\n```go\nfunc IsAlphaNumeric(s string) bool\n```\nIsAlphaNumeric returns true if a string contains letters and digits.\n\n#### func  [IsEmpty](#isempty)\n\n```go\nfunc IsEmpty(s string) bool\n```\nIsEmpty returns true if the string is solely composed of whitespace.\n\n#### func  [IsLower](#islower)\n\n```go\nfunc IsLower(s string) bool\n```\nIsLower returns true if s comprised of all lower case characters.\n\n#### func  [IsNumeric](#isnumeric)\n\n```go\nfunc IsNumeric(s string) bool\n```\nIsNumeric returns true if a string contains only digits from 0-9. Other digits\nnot in Latin (such as Arabic) are not currently supported.\n\n#### func  [IsUpper](#isupper)\n\n```go\nfunc IsUpper(s string) bool\n```\nIsUpper returns true if s contains all upper case chracters.\n\n#### func  [Left](#left)\n\n```go\nfunc Left(s string, n int) string\n```\nLeft returns the left substring of length n.\n\n#### func  [LeftF](#leftf)\n\n```go\nfunc LeftF(n int) func(string) string\n```\nLeftF is the filter form of Left.\n\n#### func  [LeftOf](#leftof)\n\n```go\nfunc LeftOf(s string, needle string) string\n```\nLeftOf returns the substring left of needle.\n\n#### func  [Letters](#letters)\n\n```go\nfunc Letters(s string) []string\n```\nLetters returns an array of runes as strings so it can be indexed into.\n\n#### func  [Lines](#lines)\n\n```go\nfunc Lines(s string) []string\n```\nLines convert windows newlines to unix newlines then convert to an Array of\nlines.\n\n#### func  [Map](#map)\n\n```go\nfunc Map(arr []string, iterator func(string) string) []string\n```\nMap maps an array's iitem through an iterator.\n\n#### func  [Match](#match)\n\n```go\nfunc Match(s, pattern string) bool\n```\nMatch returns true if patterns matches the string\n\n#### func  [Pad](#pad)\n\n```go\nfunc Pad(s, c string, n int) string\n```\nPad pads string s on both sides with c until it has length of n.\n\n#### func  [PadF](#padf)\n\n```go\nfunc PadF(c string, n int) func(string) string\n```\nPadF is the filter form of Pad.\n\n#### func  [PadLeft](#padleft)\n\n```go\nfunc PadLeft(s, c string, n int) string\n```\nPadLeft pads s on left side with c until it has length of n.\n\n#### func  [PadLeftF](#padleftf)\n\n```go\nfunc PadLeftF(c string, n int) func(string) string\n```\nPadLeftF is the filter form of PadLeft.\n\n#### func  [PadRight](#padright)\n\n```go\nfunc PadRight(s, c string, n int) string\n```\nPadRight pads s on right side with c until it has length of n.\n\n#### func  [PadRightF](#padrightf)\n\n```go\nfunc PadRightF(c string, n int) func(string) string\n```\nPadRightF is the filter form of Padright\n\n#### func  [Pipe](#pipe)\n\n```go\nfunc Pipe(s string, funcs ...func(string) string) string\n```\nPipe pipes s through one or more string filters.\n\n#### func  [QuoteItems](#quoteitems)\n\n```go\nfunc QuoteItems(arr []string) []string\n```\nQuoteItems quotes all items in array, mostly for debugging.\n\n#### func  [ReplaceF](#replacef)\n\n```go\nfunc ReplaceF(old, new string, n int) func(string) string\n```\nReplaceF is the filter form of strings.Replace.\n\n#### func  [ReplacePattern](#replacepattern)\n\n```go\nfunc ReplacePattern(s, pattern, repl string) string\n```\nReplacePattern replaces string with regexp string. ReplacePattern returns a copy\nof src, replacing matches of the Regexp with the replacement string repl. Inside\nrepl, $ signs are interpreted as in Expand, so for instance $1 represents the\ntext of the first submatch.\n\n#### func  [ReplacePatternF](#replacepatternf)\n\n```go\nfunc ReplacePatternF(pattern, repl string) func(string) string\n```\nReplacePatternF is the filter form of ReplaceRegexp.\n\n#### func  [Reverse](#reverse)\n\n```go\nfunc Reverse(s string) string\n```\nReverse a string\n\n#### func  [Right](#right)\n\n```go\nfunc Right(s string, n int) string\n```\nRight returns the right substring of length n.\n\n#### func  [RightF](#rightf)\n\n```go\nfunc RightF(n int) func(string) string\n```\nRightF is the Filter version of Right.\n\n#### func  [RightOf](#rightof)\n\n```go\nfunc RightOf(s string, prefix string) string\n```\nRightOf returns the substring to the right of prefix.\n\n#### func  [SetTemplateDelimiters](#settemplatedelimiters)\n\n```go\nfunc SetTemplateDelimiters(opening, closing string)\n```\nSetTemplateDelimiters sets the delimiters for Template function. Defaults to\n\"{{\" and \"}}\"\n\n#### func  [Slice](#slice)\n\n```go\nfunc Slice(s string, start, end int) string\n```\nSlice slices a string. If end is negative then it is the from the end of the\nstring.\n\n#### func  [SliceContains](#slicecontains)\n\n```go\nfunc SliceContains(slice []string, val string) bool\n```\nSliceContains determines whether val is an element in slice.\n\n#### func  [SliceF](#slicef)\n\n```go\nfunc SliceF(start, end int) func(string) string\n```\nSliceF is the filter for Slice.\n\n#### func  [SliceIndexOf](#sliceindexof)\n\n```go\nfunc SliceIndexOf(slice []string, val string) int\n```\nSliceIndexOf gets the indx of val in slice. Returns -1 if not found.\n\n#### func  [Slugify](#slugify)\n\n```go\nfunc Slugify(s string) string\n```\nSlugify converts s into a dasherized string suitable for URL segment.\n\n#### func  [StripPunctuation](#strippunctuation)\n\n```go\nfunc StripPunctuation(s string) string\n```\nStripPunctuation strips puncation from string.\n\n#### func  [StripTags](#striptags)\n\n```go\nfunc StripTags(s string, tags ...string) string\n```\nStripTags strips all of the html tags or tags specified by the parameters\n\n#### func  [Substr](#substr)\n\n```go\nfunc Substr(s string, index int, n int) string\n```\nSubstr returns a substring of s starting at index of length n.\n\n#### func  [SubstrF](#substrf)\n\n```go\nfunc SubstrF(index, n int) func(string) string\n```\nSubstrF is the filter form of Substr.\n\n#### func  [Template](#template)\n\n```go\nfunc Template(s string, values map[string]interface{}) string\n```\nTemplate is a string template which replaces template placeholders delimited by\n\"{{\" and \"}}\" with values from map. The global delimiters may be set with\nSetTemplateDelimiters.\n\n#### func  [TemplateDelimiters](#templatedelimiters)\n\n```go\nfunc TemplateDelimiters() (opening string, closing string)\n```\nTemplateDelimiters is the getter for the opening and closing delimiters for\nTemplate.\n\n#### func  [TemplateWithDelimiters](#templatewithdelimiters)\n\n```go\nfunc TemplateWithDelimiters(s string, values map[string]interface{}, opening, closing string) string\n```\nTemplateWithDelimiters is string template with user-defineable opening and\nclosing delimiters.\n\n#### func  [ToArgv](#toargv)\n\n```go\nfunc ToArgv(s string) []string\n```\nToArgv converts string s into an argv for exec.\n\n#### func  [ToBool](#tobool)\n\n```go\nfunc ToBool(s string) bool\n```\nToBool fuzzily converts truthy values.\n\n#### func  [ToBoolOr](#toboolor)\n\n```go\nfunc ToBoolOr(s string, defaultValue bool) bool\n```\nToBoolOr parses s as a bool or returns defaultValue.\n\n#### func  [ToFloat32Or](#tofloat32or)\n\n```go\nfunc ToFloat32Or(s string, defaultValue float32) float32\n```\nToFloat32Or parses as a float32 or returns defaultValue on error.\n\n#### func  [ToFloat64Or](#tofloat64or)\n\n```go\nfunc ToFloat64Or(s string, defaultValue float64) float64\n```\nToFloat64Or parses s as a float64 or returns defaultValue.\n\n#### func  [ToIntOr](#tointor)\n\n```go\nfunc ToIntOr(s string, defaultValue int) int\n```\nToIntOr parses s as an int or returns defaultValue.\n\n#### func  [Underscore](#underscore)\n\n```go\nfunc Underscore(s string) string\n```\nUnderscore returns converted camel cased string into a string delimited by\nunderscores.\n\n#### func  [UnescapeHTML](#unescapehtml)\n\n```go\nfunc UnescapeHTML(s string) string\n```\nUnescapeHTML is an alias for html.UnescapeString.\n\n#### func  [WrapHTML](#wraphtml)\n\n```go\nfunc WrapHTML(s string, tag string, attrs map[string]string) string\n```\nWrapHTML wraps s within HTML tag having attributes attrs. Note, WrapHTML does\nnot escape s value.\n\n#### func  [WrapHTMLF](#wraphtmlf)\n\n```go\nfunc WrapHTMLF(tag string, attrs map[string]string) func(string) string\n```\nWrapHTMLF is the filter form of WrapHTML.\n"
  },
  {
    "path": "vendor/github.com/mgutz/str/VERSION",
    "content": "1.1.0\n"
  },
  {
    "path": "vendor/github.com/mgutz/str/doc.go",
    "content": "// Package str is a comprehensive set of string functions to build more\n// Go awesomeness. Str complements Go's standard packages and does not duplicate\n// functionality found in `strings` or  `strconv`.\n//\n// Str is based on plain functions instead of object-based methods,\n// consistent with Go standard string packages.\n//\n//      str.Between(\"<a>foo</a>\", \"<a>\", \"</a>\") == \"foo\"\n//\n// Str supports pipelining instead of chaining\n//\n//      s := str.Pipe(\"\\nabcdef\\n\", Clean, BetweenF(\"a\", \"f\"), ChompLeftF(\"bc\"))\n//\n// User-defined filters can be added to the pipeline by inserting a function\n// or closure that returns a function with this signature\n//\n//      func(string) string\n//\npackage str\n"
  },
  {
    "path": "vendor/github.com/mgutz/str/funcsAO.go",
    "content": "package str\n\nimport (\n\t\"fmt\"\n\t\"html\"\n\t//\"log\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// Verbose flag enables console output for those functions that have\n// counterparts in Go's excellent stadard packages.\nvar Verbose = false\nvar templateOpen = \"{{\"\nvar templateClose = \"}}\"\n\nvar beginEndSpacesRe = regexp.MustCompile(\"^\\\\s+|\\\\s+$\")\nvar camelizeRe = regexp.MustCompile(`(\\-|_|\\s)+(.)?`)\nvar camelizeRe2 = regexp.MustCompile(`(\\-|_|\\s)+`)\nvar capitalsRe = regexp.MustCompile(\"([A-Z])\")\nvar dashSpaceRe = regexp.MustCompile(`[-\\s]+`)\nvar dashesRe = regexp.MustCompile(\"-+\")\nvar isAlphaNumericRe = regexp.MustCompile(`[^0-9a-z\\xC0-\\xFF]`)\nvar isAlphaRe = regexp.MustCompile(`[^a-z\\xC0-\\xFF]`)\nvar nWhitespaceRe = regexp.MustCompile(`\\s+`)\nvar notDigitsRe = regexp.MustCompile(`[^0-9]`)\nvar slugifyRe = regexp.MustCompile(`[^\\w\\s\\-]`)\nvar spaceUnderscoreRe = regexp.MustCompile(\"[_\\\\s]+\")\nvar spacesRe = regexp.MustCompile(\"[\\\\s\\\\xA0]+\")\nvar stripPuncRe = regexp.MustCompile(`[^\\w\\s]|_`)\nvar templateRe = regexp.MustCompile(`([\\-\\[\\]()*\\s])`)\nvar templateRe2 = regexp.MustCompile(`\\$`)\nvar underscoreRe = regexp.MustCompile(`([a-z\\d])([A-Z]+)`)\nvar whitespaceRe = regexp.MustCompile(`^[\\s\\xa0]*$`)\n\nfunc min(a, b int) int {\n\tif a < b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc max(a, b int) int {\n\tif a > b {\n\t\treturn a\n\t}\n\treturn b\n}\n\n// Between extracts a string between left and right strings.\nfunc Between(s, left, right string) string {\n\tl := len(left)\n\tstartPos := strings.Index(s, left)\n\tif startPos < 0 {\n\t\treturn \"\"\n\t}\n\tendPos := IndexOf(s, right, startPos+l)\n\t//log.Printf(\"%s: left %s right %s start %d end %d\", s, left, right, startPos+l, endPos)\n\tif endPos < 0 {\n\t\treturn \"\"\n\t} else if right == \"\" {\n\t\treturn s[endPos:]\n\t} else {\n\t\treturn s[startPos+l : endPos]\n\t}\n}\n\n// BetweenF is the filter form for Between.\nfunc BetweenF(left, right string) func(string) string {\n\treturn func(s string) string {\n\t\treturn Between(s, left, right)\n\t}\n}\n\n// Camelize return new string which removes any underscores or dashes and convert a string into camel casing.\nfunc Camelize(s string) string {\n\treturn camelizeRe.ReplaceAllStringFunc(s, func(val string) string {\n\t\tval = strings.ToUpper(val)\n\t\tval = camelizeRe2.ReplaceAllString(val, \"\")\n\t\treturn val\n\t})\n}\n\n// Capitalize uppercases the first char of s and lowercases the rest.\nfunc Capitalize(s string) string {\n\treturn strings.ToUpper(s[0:1]) + strings.ToLower(s[1:])\n}\n\n// CharAt returns a string from the character at the specified position.\nfunc CharAt(s string, index int) string {\n\tl := len(s)\n\tshortcut := index < 0 || index > l-1 || l == 0\n\tif shortcut {\n\t\treturn \"\"\n\t}\n\treturn s[index : index+1]\n}\n\n// CharAtF is the filter form of CharAt.\nfunc CharAtF(index int) func(string) string {\n\treturn func(s string) string {\n\t\treturn CharAt(s, index)\n\t}\n}\n\n// ChompLeft removes prefix at the start of a string.\nfunc ChompLeft(s, prefix string) string {\n\tif strings.HasPrefix(s, prefix) {\n\t\treturn s[len(prefix):]\n\t}\n\treturn s\n}\n\n// ChompLeftF is the filter form of ChompLeft.\nfunc ChompLeftF(prefix string) func(string) string {\n\treturn func(s string) string {\n\t\treturn ChompLeft(s, prefix)\n\t}\n}\n\n// ChompRight removes suffix from end of s.\nfunc ChompRight(s, suffix string) string {\n\tif strings.HasSuffix(s, suffix) {\n\t\treturn s[:len(s)-len(suffix)]\n\t}\n\treturn s\n}\n\n// ChompRightF is the filter form of ChompRight.\nfunc ChompRightF(suffix string) func(string) string {\n\treturn func(s string) string {\n\t\treturn ChompRight(s, suffix)\n\t}\n}\n\n// Classify returns a camelized string with the first letter upper cased.\nfunc Classify(s string) string {\n\treturn Camelize(\"-\" + s)\n}\n\n// ClassifyF is the filter form of Classify.\nfunc ClassifyF(s string) func(string) string {\n\treturn func(s string) string {\n\t\treturn Classify(s)\n\t}\n}\n\n// Clean compresses all adjacent whitespace to a single space and trims s.\nfunc Clean(s string) string {\n\ts = spacesRe.ReplaceAllString(s, \" \")\n\ts = beginEndSpacesRe.ReplaceAllString(s, \"\")\n\treturn s\n}\n\n// Dasherize  converts a camel cased string into a string delimited by dashes.\nfunc Dasherize(s string) string {\n\ts = strings.TrimSpace(s)\n\ts = spaceUnderscoreRe.ReplaceAllString(s, \"-\")\n\ts = capitalsRe.ReplaceAllString(s, \"-$1\")\n\ts = dashesRe.ReplaceAllString(s, \"-\")\n\ts = strings.ToLower(s)\n\treturn s\n}\n\n// EscapeHTML is alias for html.EscapeString.\nfunc EscapeHTML(s string) string {\n\tif Verbose {\n\t\tfmt.Println(\"Use html.EscapeString instead of EscapeHTML\")\n\t}\n\treturn html.EscapeString(s)\n}\n\n// DecodeHTMLEntities decodes HTML entities into their proper string representation.\n// DecodeHTMLEntities is an alias for html.UnescapeString\nfunc DecodeHTMLEntities(s string) string {\n\tif Verbose {\n\t\tfmt.Println(\"Use html.UnescapeString instead of DecodeHTMLEntities\")\n\t}\n\treturn html.UnescapeString(s)\n}\n\n// EnsurePrefix ensures s starts with prefix.\nfunc EnsurePrefix(s, prefix string) string {\n\tif strings.HasPrefix(s, prefix) {\n\t\treturn s\n\t}\n\treturn prefix + s\n}\n\n// EnsurePrefixF is the filter form of EnsurePrefix.\nfunc EnsurePrefixF(prefix string) func(string) string {\n\treturn func(s string) string {\n\t\treturn EnsurePrefix(s, prefix)\n\t}\n}\n\n// EnsureSuffix ensures s ends with suffix.\nfunc EnsureSuffix(s, suffix string) string {\n\tif strings.HasSuffix(s, suffix) {\n\t\treturn s\n\t}\n\treturn s + suffix\n}\n\n// EnsureSuffixF is the filter form of EnsureSuffix.\nfunc EnsureSuffixF(suffix string) func(string) string {\n\treturn func(s string) string {\n\t\treturn EnsureSuffix(s, suffix)\n\t}\n}\n\n// Humanize transforms s into a human friendly form.\nfunc Humanize(s string) string {\n\tif s == \"\" {\n\t\treturn s\n\t}\n\ts = Underscore(s)\n\tvar humanizeRe = regexp.MustCompile(`_id$`)\n\ts = humanizeRe.ReplaceAllString(s, \"\")\n\ts = strings.Replace(s, \"_\", \" \", -1)\n\ts = strings.TrimSpace(s)\n\ts = Capitalize(s)\n\treturn s\n}\n\n// Iif is short for immediate if. If condition is true return truthy else falsey.\nfunc Iif(condition bool, truthy string, falsey string) string {\n\tif condition {\n\t\treturn truthy\n\t}\n\treturn falsey\n}\n\n// IndexOf finds the index of needle in s starting from start.\nfunc IndexOf(s string, needle string, start int) int {\n\tl := len(s)\n\tif needle == \"\" {\n\t\tif start < 0 {\n\t\t\treturn 0\n\t\t} else if start < l {\n\t\t\treturn start\n\t\t} else {\n\t\t\treturn l\n\t\t}\n\t}\n\tif start < 0 || start > l-1 {\n\t\treturn -1\n\t}\n\tpos := strings.Index(s[start:], needle)\n\tif pos == -1 {\n\t\treturn -1\n\t}\n\treturn start + pos\n}\n\n// IsAlpha returns true if a string contains only letters from ASCII (a-z,A-Z). Other letters from other languages are not supported.\nfunc IsAlpha(s string) bool {\n\treturn !isAlphaRe.MatchString(strings.ToLower(s))\n}\n\n// IsAlphaNumeric returns true if a string contains letters and digits.\nfunc IsAlphaNumeric(s string) bool {\n\treturn !isAlphaNumericRe.MatchString(strings.ToLower(s))\n}\n\n// IsLower returns true if s comprised of all lower case characters.\nfunc IsLower(s string) bool {\n\treturn IsAlpha(s) && s == strings.ToLower(s)\n}\n\n// IsNumeric returns true if a string contains only digits from 0-9. Other digits not in Latin (such as Arabic) are not currently supported.\nfunc IsNumeric(s string) bool {\n\treturn !notDigitsRe.MatchString(s)\n}\n\n// IsUpper returns true if s contains all upper case chracters.\nfunc IsUpper(s string) bool {\n\treturn IsAlpha(s) && s == strings.ToUpper(s)\n}\n\n// IsEmpty returns true if the string is solely composed of whitespace.\nfunc IsEmpty(s string) bool {\n\tif s == \"\" {\n\t\treturn true\n\t}\n\treturn whitespaceRe.MatchString(s)\n}\n\n// Left returns the left substring of length n.\nfunc Left(s string, n int) string {\n\tif n < 0 {\n\t\treturn Right(s, -n)\n\t}\n\treturn Substr(s, 0, n)\n}\n\n// LeftF is the filter form of Left.\nfunc LeftF(n int) func(string) string {\n\treturn func(s string) string {\n\t\treturn Left(s, n)\n\t}\n}\n\n// LeftOf returns the substring left of needle.\nfunc LeftOf(s string, needle string) string {\n\treturn Between(s, \"\", needle)\n}\n\n// Letters returns an array of runes as strings so it can be indexed into.\nfunc Letters(s string) []string {\n\tresult := []string{}\n\tfor _, r := range s {\n\t\tresult = append(result, string(r))\n\t}\n\treturn result\n}\n\n// Lines convert windows newlines to unix newlines then convert to an Array of lines.\nfunc Lines(s string) []string {\n\ts = strings.Replace(s, \"\\r\\n\", \"\\n\", -1)\n\treturn strings.Split(s, \"\\n\")\n}\n\n// Map maps an array's iitem through an iterator.\nfunc Map(arr []string, iterator func(string) string) []string {\n\tr := []string{}\n\tfor _, item := range arr {\n\t\tr = append(r, iterator(item))\n\t}\n\treturn r\n}\n\n// Match returns true if patterns matches the string\nfunc Match(s, pattern string) bool {\n\tr := regexp.MustCompile(pattern)\n\treturn r.MatchString(s)\n}\n"
  },
  {
    "path": "vendor/github.com/mgutz/str/funcsPZ.go",
    "content": "package str\n\nimport (\n\t\"fmt\"\n\t\"html\"\n\t//\"log\"\n\t\"math\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\n// Pad pads string s on both sides with c until it has length of n.\nfunc Pad(s, c string, n int) string {\n\tL := len(s)\n\tif L >= n {\n\t\treturn s\n\t}\n\tn -= L\n\n\tleft := strings.Repeat(c, int(math.Ceil(float64(n)/2)))\n\tright := strings.Repeat(c, int(math.Floor(float64(n)/2)))\n\treturn left + s + right\n}\n\n// PadF is the filter form of Pad.\nfunc PadF(c string, n int) func(string) string {\n\treturn func(s string) string {\n\t\treturn Pad(s, c, n)\n\t}\n}\n\n// PadLeft pads s on left side with c until it has length of n.\nfunc PadLeft(s, c string, n int) string {\n\tL := len(s)\n\tif L > n {\n\t\treturn s\n\t}\n\treturn strings.Repeat(c, (n-L)) + s\n}\n\n// PadLeftF is the filter form of PadLeft.\nfunc PadLeftF(c string, n int) func(string) string {\n\treturn func(s string) string {\n\t\treturn PadLeft(s, c, n)\n\t}\n}\n\n// PadRight pads s on right side with c until it has length of n.\nfunc PadRight(s, c string, n int) string {\n\tL := len(s)\n\tif L > n {\n\t\treturn s\n\t}\n\treturn s + strings.Repeat(c, n-L)\n}\n\n// PadRightF is the filter form of Padright\nfunc PadRightF(c string, n int) func(string) string {\n\treturn func(s string) string {\n\t\treturn PadRight(s, c, n)\n\t}\n}\n\n// Pipe pipes s through one or more string filters.\nfunc Pipe(s string, funcs ...func(string) string) string {\n\tfor _, fn := range funcs {\n\t\ts = fn(s)\n\t}\n\treturn s\n}\n\n// QuoteItems quotes all items in array, mostly for debugging.\nfunc QuoteItems(arr []string) []string {\n\treturn Map(arr, func(s string) string {\n\t\treturn strconv.Quote(s)\n\t})\n}\n\n// ReplaceF is the filter form of strings.Replace.\nfunc ReplaceF(old, new string, n int) func(string) string {\n\treturn func(s string) string {\n\t\treturn strings.Replace(s, old, new, n)\n\t}\n}\n\n// ReplacePattern replaces string with regexp string.\n// ReplacePattern returns a copy of src, replacing matches of the Regexp with the replacement string repl. Inside repl, $ signs are interpreted as in Expand, so for instance $1 represents the text of the first submatch.\nfunc ReplacePattern(s, pattern, repl string) string {\n\tr := regexp.MustCompile(pattern)\n\treturn r.ReplaceAllString(s, repl)\n}\n\n// ReplacePatternF is the filter form of ReplaceRegexp.\nfunc ReplacePatternF(pattern, repl string) func(string) string {\n\treturn func(s string) string {\n\t\treturn ReplacePattern(s, pattern, repl)\n\t}\n}\n\n// Reverse a string\nfunc Reverse(s string) string {\n\tcs := make([]rune, utf8.RuneCountInString(s))\n\ti := len(cs)\n\tfor _, c := range s {\n\t\ti--\n\t\tcs[i] = c\n\t}\n\treturn string(cs)\n}\n\n// Right returns the right substring of length n.\nfunc Right(s string, n int) string {\n\tif n < 0 {\n\t\treturn Left(s, -n)\n\t}\n\treturn Substr(s, len(s)-n, n)\n}\n\n// RightF is the Filter version of Right.\nfunc RightF(n int) func(string) string {\n\treturn func(s string) string {\n\t\treturn Right(s, n)\n\t}\n}\n\n// RightOf returns the substring to the right of prefix.\nfunc RightOf(s string, prefix string) string {\n\treturn Between(s, prefix, \"\")\n}\n\n// SetTemplateDelimiters sets the delimiters for Template function. Defaults to \"{{\" and \"}}\"\nfunc SetTemplateDelimiters(opening, closing string) {\n\ttemplateOpen = opening\n\ttemplateClose = closing\n}\n\n// Slice slices a string. If end is negative then it is the from the end\n// of the string.\nfunc Slice(s string, start, end int) string {\n\tif end > -1 {\n\t\treturn s[start:end]\n\t}\n\tL := len(s)\n\tif L+end > 0 {\n\t\treturn s[start : L-end]\n\t}\n\treturn s[start:]\n}\n\n// SliceF is the filter for Slice.\nfunc SliceF(start, end int) func(string) string {\n\treturn func(s string) string {\n\t\treturn Slice(s, start, end)\n\t}\n}\n\n// SliceContains determines whether val is an element in slice.\nfunc SliceContains(slice []string, val string) bool {\n\tif slice == nil {\n\t\treturn false\n\t}\n\n\tfor _, it := range slice {\n\t\tif it == val {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// SliceIndexOf gets the indx of val in slice. Returns -1 if not found.\nfunc SliceIndexOf(slice []string, val string) int {\n\tif slice == nil {\n\t\treturn -1\n\t}\n\n\tfor i, it := range slice {\n\t\tif it == val {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\n// Slugify converts s into a dasherized string suitable for URL segment.\nfunc Slugify(s string) string {\n\tsl := slugifyRe.ReplaceAllString(s, \"\")\n\tsl = strings.ToLower(sl)\n\tsl = Dasherize(sl)\n\treturn sl\n}\n\n// StripPunctuation strips puncation from string.\nfunc StripPunctuation(s string) string {\n\ts = stripPuncRe.ReplaceAllString(s, \"\")\n\ts = nWhitespaceRe.ReplaceAllString(s, \" \")\n\treturn s\n}\n\n// StripTags strips all of the html tags or tags specified by the parameters\nfunc StripTags(s string, tags ...string) string {\n\tif len(tags) == 0 {\n\t\ttags = append(tags, \"\")\n\t}\n\tfor _, tag := range tags {\n\t\tstripTagsRe := regexp.MustCompile(`(?i)<\\/?` + tag + `[^<>]*>`)\n\t\ts = stripTagsRe.ReplaceAllString(s, \"\")\n\t}\n\treturn s\n}\n\n// Substr returns a substring of s starting at index of length n.\nfunc Substr(s string, index int, n int) string {\n\tL := len(s)\n\tif index < 0 || index >= L || s == \"\" {\n\t\treturn \"\"\n\t}\n\tend := index + n\n\tif end >= L {\n\t\tend = L\n\t}\n\tif end <= index {\n\t\treturn \"\"\n\t}\n\treturn s[index:end]\n}\n\n// SubstrF is the filter form of Substr.\nfunc SubstrF(index, n int) func(string) string {\n\treturn func(s string) string {\n\t\treturn Substr(s, index, n)\n\t}\n}\n\n// Template is a string template which replaces template placeholders delimited\n// by \"{{\" and \"}}\" with values from map. The global delimiters may be set with\n// SetTemplateDelimiters.\nfunc Template(s string, values map[string]interface{}) string {\n\treturn TemplateWithDelimiters(s, values, templateOpen, templateClose)\n}\n\n// TemplateDelimiters is the getter for the opening and closing delimiters for Template.\nfunc TemplateDelimiters() (opening string, closing string) {\n\treturn templateOpen, templateClose\n}\n\n// TemplateWithDelimiters is string template with user-defineable opening and closing delimiters.\nfunc TemplateWithDelimiters(s string, values map[string]interface{}, opening, closing string) string {\n\tescapeDelimiter := func(delim string) string {\n\t\tresult := templateRe.ReplaceAllString(delim, \"\\\\$1\")\n\t\treturn templateRe2.ReplaceAllString(result, \"\\\\$\")\n\t}\n\n\topeningDelim := escapeDelimiter(opening)\n\tclosingDelim := escapeDelimiter(closing)\n\tr := regexp.MustCompile(openingDelim + `(.+?)` + closingDelim)\n\tmatches := r.FindAllStringSubmatch(s, -1)\n\tfor _, submatches := range matches {\n\t\tmatch := submatches[0]\n\t\tkey := submatches[1]\n\t\t//log.Printf(\"match %s key %s\\n\", match, key)\n\t\tif values[key] != nil {\n\t\t\tv := fmt.Sprintf(\"%v\", values[key])\n\t\t\ts = strings.Replace(s, match, v, -1)\n\t\t}\n\t}\n\n\treturn s\n}\n\n// ToArgv converts string s into an argv for exec.\nfunc ToArgv(s string) []string {\n\tconst (\n\t\tInArg = iota\n\t\tInArgQuote\n\t\tOutOfArg\n\t)\n\tcurrentState := OutOfArg\n\tcurrentQuoteChar := \"\\x00\" // to distinguish between ' and \" quotations\n\t// this allows to use \"foo'bar\"\n\tcurrentArg := \"\"\n\targv := []string{}\n\n\tisQuote := func(c string) bool {\n\t\treturn c == `\"` || c == `'`\n\t}\n\n\tisEscape := func(c string) bool {\n\t\treturn c == `\\`\n\t}\n\n\tisWhitespace := func(c string) bool {\n\t\treturn c == \" \" || c == \"\\t\"\n\t}\n\n\tL := len(s)\n\tfor i := 0; i < L; i++ {\n\t\tc := s[i : i+1]\n\n\t\t//fmt.Printf(\"c %s state %v arg %s argv %v i %d\\n\", c, currentState, currentArg, args, i)\n\t\tif isQuote(c) {\n\t\t\tswitch currentState {\n\t\t\tcase OutOfArg:\n\t\t\t\tcurrentArg = \"\"\n\t\t\t\tfallthrough\n\t\t\tcase InArg:\n\t\t\t\tcurrentState = InArgQuote\n\t\t\t\tcurrentQuoteChar = c\n\n\t\t\tcase InArgQuote:\n\t\t\t\tif c == currentQuoteChar {\n\t\t\t\t\tcurrentState = InArg\n\t\t\t\t} else {\n\t\t\t\t\tcurrentArg += c\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else if isWhitespace(c) {\n\t\t\tswitch currentState {\n\t\t\tcase InArg:\n\t\t\t\targv = append(argv, currentArg)\n\t\t\t\tcurrentState = OutOfArg\n\t\t\tcase InArgQuote:\n\t\t\t\tcurrentArg += c\n\t\t\tcase OutOfArg:\n\t\t\t\t// nothing\n\t\t\t}\n\n\t\t} else if isEscape(c) {\n\t\t\tswitch currentState {\n\t\t\tcase OutOfArg:\n\t\t\t\tcurrentArg = \"\"\n\t\t\t\tcurrentState = InArg\n\t\t\t\tfallthrough\n\t\t\tcase InArg:\n\t\t\t\tfallthrough\n\t\t\tcase InArgQuote:\n\t\t\t\tif i == L-1 {\n\t\t\t\t\tif runtime.GOOS == \"windows\" {\n\t\t\t\t\t\t// just add \\ to end for windows\n\t\t\t\t\t\tcurrentArg += c\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpanic(\"Escape character at end string\")\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif runtime.GOOS == \"windows\" {\n\t\t\t\t\t\tpeek := s[i+1 : i+2]\n\t\t\t\t\t\tif peek != `\"` {\n\t\t\t\t\t\t\tcurrentArg += c\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ti++\n\t\t\t\t\t\tc = s[i : i+1]\n\t\t\t\t\t\tcurrentArg += c\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tswitch currentState {\n\t\t\tcase InArg, InArgQuote:\n\t\t\t\tcurrentArg += c\n\n\t\t\tcase OutOfArg:\n\t\t\t\tcurrentArg = \"\"\n\t\t\t\tcurrentArg += c\n\t\t\t\tcurrentState = InArg\n\t\t\t}\n\t\t}\n\t}\n\n\tif currentState == InArg {\n\t\targv = append(argv, currentArg)\n\t} else if currentState == InArgQuote {\n\t\tpanic(\"Starting quote has no ending quote.\")\n\t}\n\n\treturn argv\n}\n\n// ToBool fuzzily converts truthy values.\nfunc ToBool(s string) bool {\n\ts = strings.ToLower(s)\n\treturn s == \"true\" || s == \"yes\" || s == \"on\" || s == \"1\"\n}\n\n// ToBoolOr parses s as a bool or returns defaultValue.\nfunc ToBoolOr(s string, defaultValue bool) bool {\n\tb, err := strconv.ParseBool(s)\n\tif err != nil {\n\t\treturn defaultValue\n\t}\n\treturn b\n}\n\n// ToIntOr parses s as an int or returns defaultValue.\nfunc ToIntOr(s string, defaultValue int) int {\n\tn, err := strconv.Atoi(s)\n\tif err != nil {\n\t\treturn defaultValue\n\t}\n\treturn n\n}\n\n// ToFloat32Or parses as a float32 or returns defaultValue on error.\nfunc ToFloat32Or(s string, defaultValue float32) float32 {\n\tf, err := strconv.ParseFloat(s, 32)\n\tif err != nil {\n\t\treturn defaultValue\n\t}\n\treturn float32(f)\n}\n\n// ToFloat64Or parses s as a float64 or returns defaultValue.\nfunc ToFloat64Or(s string, defaultValue float64) float64 {\n\tf, err := strconv.ParseFloat(s, 64)\n\tif err != nil {\n\t\treturn defaultValue\n\t}\n\treturn f\n}\n\n// ToFloatOr parses as a float64 or returns defaultValue.\nvar ToFloatOr = ToFloat64Or\n\n// TODO This is not working yet. Go's regexp package does not have some\n// of the niceities in JavaScript\n//\n// Truncate truncates the string, accounting for word placement and chars count\n// adding a morestr (defaults to ellipsis)\n// func Truncate(s, morestr string, n int) string {\n// \tL := len(s)\n// \tif L <= n {\n// \t\treturn s\n// \t}\n//\n// \tif morestr == \"\" {\n// \t\tmorestr = \"...\"\n// \t}\n//\n// \ttmpl := func(c string) string {\n// \t\tif strings.ToUpper(c) != strings.ToLower(c) {\n// \t\t\treturn \"A\"\n// \t\t}\n// \t\treturn \" \"\n// \t}\n// \ttemplate := s[0 : n+1]\n// \tvar truncateRe = regexp.MustCompile(`.(?=\\W*\\w*$)`)\n// \ttruncateRe.ReplaceAllStringFunc(template, tmpl) // 'Hello, world' -> 'HellAA AAAAA'\n// \tvar wwRe = regexp.MustCompile(`\\w\\w`)\n// \tvar whitespaceRe2 = regexp.MustCompile(`\\s*\\S+$`)\n// \tif wwRe.MatchString(template[len(template)-2:]) {\n// \t\ttemplate = whitespaceRe2.ReplaceAllString(template, \"\")\n// \t} else {\n// \t\ttemplate = strings.TrimRight(template, \" \\t\\n\")\n// \t}\n//\n// \tif len(template+morestr) > L {\n// \t\treturn s\n// \t}\n// \treturn s[0:len(template)] + morestr\n// }\n//\n//     truncate: function(length, pruneStr) { //from underscore.string, author: github.com/rwz\n//       var str = this.s;\n//\n//       length = ~~length;\n//       pruneStr = pruneStr || '...';\n//\n//       if (str.length <= length) return new this.constructor(str);\n//\n//       var tmpl = function(c){ return c.toUpperCase() !== c.toLowerCase() ? 'A' : ' '; },\n//         template = str.slice(0, length+1).replace(/.(?=\\W*\\w*$)/g, tmpl); // 'Hello, world' -> 'HellAA AAAAA'\n//\n//       if (template.slice(template.length-2).match(/\\w\\w/))\n//         template = template.replace(/\\s*\\S+$/, '');\n//       else\n//         template = new S(template.slice(0, template.length-1)).trimRight().s;\n//\n//       return (template+pruneStr).length > str.length ? new S(str) : new S(str.slice(0, template.length)+pruneStr);\n//     },\n\n// Underscore returns converted camel cased string into a string delimited by underscores.\nfunc Underscore(s string) string {\n\tif s == \"\" {\n\t\treturn \"\"\n\t}\n\tu := strings.TrimSpace(s)\n\n\tu = underscoreRe.ReplaceAllString(u, \"${1}_$2\")\n\tu = dashSpaceRe.ReplaceAllString(u, \"_\")\n\tu = strings.ToLower(u)\n\tif IsUpper(s[0:1]) {\n\t\treturn \"_\" + u\n\t}\n\treturn u\n}\n\n// UnescapeHTML is an alias for html.UnescapeString.\nfunc UnescapeHTML(s string) string {\n\tif Verbose {\n\t\tfmt.Println(\"Use html.UnescapeString instead of UnescapeHTML\")\n\t}\n\treturn html.UnescapeString(s)\n}\n\n// WrapHTML wraps s within HTML tag having attributes attrs. Note,\n// WrapHTML does not escape s value.\nfunc WrapHTML(s string, tag string, attrs map[string]string) string {\n\tescapeHTMLAttributeQuotes := func(v string) string {\n\t\tv = strings.Replace(v, \"<\", \"&lt;\", -1)\n\t\tv = strings.Replace(v, \"&\", \"&amp;\", -1)\n\t\tv = strings.Replace(v, \"\\\"\", \"&quot;\", -1)\n\t\treturn v\n\t}\n\tif tag == \"\" {\n\t\ttag = \"div\"\n\t}\n\tel := \"<\" + tag\n\tfor name, val := range attrs {\n\t\tel += \" \" + name + \"=\\\"\" + escapeHTMLAttributeQuotes(val) + \"\\\"\"\n\t}\n\tel += \">\" + s + \"</\" + tag + \">\"\n\treturn el\n}\n\n// WrapHTMLF is the filter form of WrapHTML.\nfunc WrapHTMLF(tag string, attrs map[string]string) func(string) string {\n\treturn func(s string) string {\n\t\treturn WrapHTML(s, tag, attrs)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/moby/docker-image-spec/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/moby/docker-image-spec/specs-go/v1/image.go",
    "content": "package v1\n\nimport (\n\t\"time\"\n\n\tocispec \"github.com/opencontainers/image-spec/specs-go/v1\"\n)\n\nconst DockerOCIImageMediaType = \"application/vnd.docker.container.image.v1+json\"\n\n// DockerOCIImage is a ocispec.Image extended with Docker specific Config.\ntype DockerOCIImage struct {\n\tocispec.Image\n\n\t// Shadow ocispec.Image.Config\n\tConfig DockerOCIImageConfig `json:\"config,omitempty\"`\n}\n\n// DockerOCIImageConfig is a ocispec.ImageConfig extended with Docker specific fields.\ntype DockerOCIImageConfig struct {\n\tocispec.ImageConfig\n\n\tDockerOCIImageConfigExt\n}\n\n// DockerOCIImageConfigExt contains Docker-specific fields in DockerImageConfig.\ntype DockerOCIImageConfigExt struct {\n\tHealthcheck *HealthcheckConfig `json:\",omitempty\"` // Healthcheck describes how to check the container is healthy\n\n\tOnBuild []string `json:\",omitempty\"` // ONBUILD metadata that were defined on the image Dockerfile\n\tShell   []string `json:\",omitempty\"` // Shell for shell-form of RUN, CMD, ENTRYPOINT\n}\n\n// HealthcheckConfig holds configuration settings for the HEALTHCHECK feature.\ntype HealthcheckConfig struct {\n\t// Test is the test to perform to check that the container is healthy.\n\t// An empty slice means to inherit the default.\n\t// The options are:\n\t// {} : inherit healthcheck\n\t// {\"NONE\"} : disable healthcheck\n\t// {\"CMD\", args...} : exec arguments directly\n\t// {\"CMD-SHELL\", command} : run command with system's default shell\n\tTest []string `json:\",omitempty\"`\n\n\t// Zero means to inherit. Durations are expressed as integer nanoseconds.\n\tInterval      time.Duration `json:\",omitempty\"` // Interval is the time to wait between checks.\n\tTimeout       time.Duration `json:\",omitempty\"` // Timeout is the time to wait before considering the check to have hung.\n\tStartPeriod   time.Duration `json:\",omitempty\"` // The start period for the container to initialize before the retries starts to count down.\n\tStartInterval time.Duration `json:\",omitempty\"` // The interval to attempt healthchecks at during the start period\n\n\t// Retries is the number of consecutive failures needed to consider a container as unhealthy.\n\t// Zero means inherit.\n\tRetries int `json:\",omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/moby/sys/atomicwriter/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/moby/sys/atomicwriter/atomicwriter.go",
    "content": "// Package atomicwriter provides utilities to perform atomic writes to a\n// file or set of files.\npackage atomicwriter\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"syscall\"\n\n\t\"github.com/moby/sys/sequential\"\n)\n\nfunc validateDestination(fileName string) error {\n\tif fileName == \"\" {\n\t\treturn errors.New(\"file name is empty\")\n\t}\n\tif dir := filepath.Dir(fileName); dir != \"\" && dir != \".\" && dir != \"..\" {\n\t\tdi, err := os.Stat(dir)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid output path: %w\", err)\n\t\t}\n\t\tif !di.IsDir() {\n\t\t\treturn fmt.Errorf(\"invalid output path: %w\", &os.PathError{Op: \"stat\", Path: dir, Err: syscall.ENOTDIR})\n\t\t}\n\t}\n\n\t// Deliberately using Lstat here to match the behavior of [os.Rename],\n\t// which is used when completing the write and does not resolve symlinks.\n\tfi, err := os.Lstat(fileName)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(\"failed to stat output path: %w\", err)\n\t}\n\n\tswitch mode := fi.Mode(); {\n\tcase mode.IsRegular():\n\t\treturn nil // Regular file\n\tcase mode&os.ModeDir != 0:\n\t\treturn errors.New(\"cannot write to a directory\")\n\tcase mode&os.ModeSymlink != 0:\n\t\treturn errors.New(\"cannot write to a symbolic link directly\")\n\tcase mode&os.ModeNamedPipe != 0:\n\t\treturn errors.New(\"cannot write to a named pipe (FIFO)\")\n\tcase mode&os.ModeSocket != 0:\n\t\treturn errors.New(\"cannot write to a socket\")\n\tcase mode&os.ModeDevice != 0:\n\t\tif mode&os.ModeCharDevice != 0 {\n\t\t\treturn errors.New(\"cannot write to a character device file\")\n\t\t}\n\t\treturn errors.New(\"cannot write to a block device file\")\n\tcase mode&os.ModeSetuid != 0:\n\t\treturn errors.New(\"cannot write to a setuid file\")\n\tcase mode&os.ModeSetgid != 0:\n\t\treturn errors.New(\"cannot write to a setgid file\")\n\tcase mode&os.ModeSticky != 0:\n\t\treturn errors.New(\"cannot write to a sticky bit file\")\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown file mode: %[1]s (%#[1]o)\", mode)\n\t}\n}\n\n// New returns a WriteCloser so that writing to it writes to a\n// temporary file and closing it atomically changes the temporary file to\n// destination path. Writing and closing concurrently is not allowed.\n// NOTE: umask is not considered for the file's permissions.\n//\n// New uses [sequential.CreateTemp] to use sequential file access on Windows,\n// avoiding depleting the standby list un-necessarily. On Linux, this equates to\n// a regular [os.CreateTemp]. Refer to the [Win32 API documentation] for details\n// on sequential file access.\n//\n// [Win32 API documentation]: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#FILE_FLAG_SEQUENTIAL_SCAN\nfunc New(filename string, perm os.FileMode) (io.WriteCloser, error) {\n\tif err := validateDestination(filename); err != nil {\n\t\treturn nil, err\n\t}\n\tabspath, err := filepath.Abs(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tf, err := sequential.CreateTemp(filepath.Dir(abspath), \".tmp-\"+filepath.Base(filename))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &atomicFileWriter{\n\t\tf:    f,\n\t\tfn:   abspath,\n\t\tperm: perm,\n\t}, nil\n}\n\n// WriteFile atomically writes data to a file named by filename and with the\n// specified permission bits. The given filename is created if it does not exist,\n// but the destination directory must exist. It can be used as a drop-in replacement\n// for [os.WriteFile], but currently does not allow the destination path to be\n// a symlink. WriteFile is implemented using [New] for its implementation.\n//\n// NOTE: umask is not considered for the file's permissions.\nfunc WriteFile(filename string, data []byte, perm os.FileMode) error {\n\tf, err := New(filename, perm)\n\tif err != nil {\n\t\treturn err\n\t}\n\tn, err := f.Write(data)\n\tif err == nil && n < len(data) {\n\t\terr = io.ErrShortWrite\n\t\tf.(*atomicFileWriter).writeErr = err\n\t}\n\tif err1 := f.Close(); err == nil {\n\t\terr = err1\n\t}\n\treturn err\n}\n\ntype atomicFileWriter struct {\n\tf        *os.File\n\tfn       string\n\twriteErr error\n\twritten  bool\n\tperm     os.FileMode\n}\n\nfunc (w *atomicFileWriter) Write(dt []byte) (int, error) {\n\tw.written = true\n\tn, err := w.f.Write(dt)\n\tif err != nil {\n\t\tw.writeErr = err\n\t}\n\treturn n, err\n}\n\nfunc (w *atomicFileWriter) Close() (retErr error) {\n\tdefer func() {\n\t\tif err := os.Remove(w.f.Name()); !errors.Is(err, os.ErrNotExist) && retErr == nil {\n\t\t\tretErr = err\n\t\t}\n\t}()\n\tif err := w.f.Sync(); err != nil {\n\t\t_ = w.f.Close()\n\t\treturn err\n\t}\n\tif err := w.f.Close(); err != nil {\n\t\treturn err\n\t}\n\tif err := os.Chmod(w.f.Name(), w.perm); err != nil {\n\t\treturn err\n\t}\n\tif w.writeErr == nil && w.written {\n\t\treturn os.Rename(w.f.Name(), w.fn)\n\t}\n\treturn nil\n}\n\n// WriteSet is used to atomically write a set\n// of files and ensure they are visible at the same time.\n// Must be committed to a new directory.\ntype WriteSet struct {\n\troot string\n}\n\n// NewWriteSet creates a new atomic write set to\n// atomically create a set of files. The given directory\n// is used as the base directory for storing files before\n// commit. If no temporary directory is given the system\n// default is used.\nfunc NewWriteSet(tmpDir string) (*WriteSet, error) {\n\ttd, err := os.MkdirTemp(tmpDir, \"write-set-\")\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &WriteSet{\n\t\troot: td,\n\t}, nil\n}\n\n// WriteFile writes a file to the set, guaranteeing the file\n// has been synced.\nfunc (ws *WriteSet) WriteFile(filename string, data []byte, perm os.FileMode) error {\n\tf, err := ws.FileWriter(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm)\n\tif err != nil {\n\t\treturn err\n\t}\n\tn, err := f.Write(data)\n\tif err == nil && n < len(data) {\n\t\terr = io.ErrShortWrite\n\t}\n\tif err1 := f.Close(); err == nil {\n\t\terr = err1\n\t}\n\treturn err\n}\n\ntype syncFileCloser struct {\n\t*os.File\n}\n\nfunc (w syncFileCloser) Close() error {\n\terr := w.File.Sync()\n\tif err1 := w.File.Close(); err == nil {\n\t\terr = err1\n\t}\n\treturn err\n}\n\n// FileWriter opens a file writer inside the set. The file\n// should be synced and closed before calling commit.\n//\n// FileWriter uses [sequential.OpenFile] to use sequential file access on Windows,\n// avoiding depleting the standby list un-necessarily. On Linux, this equates to\n// a regular [os.OpenFile]. Refer to the [Win32 API documentation] for details\n// on sequential file access.\n//\n// [Win32 API documentation]: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#FILE_FLAG_SEQUENTIAL_SCAN\nfunc (ws *WriteSet) FileWriter(name string, flag int, perm os.FileMode) (io.WriteCloser, error) {\n\tf, err := sequential.OpenFile(filepath.Join(ws.root, name), flag, perm)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn syncFileCloser{f}, nil\n}\n\n// Cancel cancels the set and removes all temporary data\n// created in the set.\nfunc (ws *WriteSet) Cancel() error {\n\treturn os.RemoveAll(ws.root)\n}\n\n// Commit moves all created files to the target directory. The\n// target directory must not exist and the parent of the target\n// directory must exist.\nfunc (ws *WriteSet) Commit(target string) error {\n\treturn os.Rename(ws.root, target)\n}\n\n// String returns the location the set is writing to.\nfunc (ws *WriteSet) String() string {\n\treturn ws.root\n}\n"
  },
  {
    "path": "vendor/github.com/moby/sys/sequential/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/moby/sys/sequential/doc.go",
    "content": "// Package sequential provides a set of functions for managing sequential\n// files on Windows.\n//\n// The origin of these functions are the golang OS and windows packages,\n// slightly modified to only cope with files, not directories due to the\n// specific use case.\n//\n// The alteration is to allow a file on Windows to be opened with\n// FILE_FLAG_SEQUENTIAL_SCAN (particular for docker load), to avoid eating\n// the standby list, particularly when accessing large files such as layer.tar.\n//\n// For non-Windows platforms, the package provides wrappers for the equivalents\n// in the os packages. They are passthrough on Unix platforms, and only relevant\n// on Windows.\npackage sequential\n"
  },
  {
    "path": "vendor/github.com/moby/sys/sequential/sequential_unix.go",
    "content": "//go:build !windows\n// +build !windows\n\npackage sequential\n\nimport \"os\"\n\n// Create is an alias for [os.Create] on non-Windows platforms.\nfunc Create(name string) (*os.File, error) {\n\treturn os.Create(name)\n}\n\n// Open is an alias for [os.Open] on non-Windows platforms.\nfunc Open(name string) (*os.File, error) {\n\treturn os.Open(name)\n}\n\n// OpenFile is an alias for [os.OpenFile] on non-Windows platforms.\nfunc OpenFile(name string, flag int, perm os.FileMode) (*os.File, error) {\n\treturn os.OpenFile(name, flag, perm)\n}\n\n// CreateTemp is an alias for [os.CreateTemp] on non-Windows platforms.\nfunc CreateTemp(dir, prefix string) (f *os.File, err error) {\n\treturn os.CreateTemp(dir, prefix)\n}\n"
  },
  {
    "path": "vendor/github.com/moby/sys/sequential/sequential_windows.go",
    "content": "package sequential\n\nimport (\n\t\"os\"\n\t\"path/filepath\"\n\t\"strconv\"\n\t\"sync\"\n\t\"time\"\n\t\"unsafe\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\n// Create is a copy of [os.Create], modified to use sequential file access.\n//\n// It uses [windows.FILE_FLAG_SEQUENTIAL_SCAN] rather than [windows.FILE_ATTRIBUTE_NORMAL]\n// as implemented in golang. Refer to the [Win32 API documentation] for details\n// on sequential file access.\n//\n// [Win32 API documentation]: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#FILE_FLAG_SEQUENTIAL_SCAN\nfunc Create(name string) (*os.File, error) {\n\treturn openFileSequential(name, windows.O_RDWR|windows.O_CREAT|windows.O_TRUNC)\n}\n\n// Open is a copy of [os.Open], modified to use sequential file access.\n//\n// It uses [windows.FILE_FLAG_SEQUENTIAL_SCAN] rather than [windows.FILE_ATTRIBUTE_NORMAL]\n// as implemented in golang. Refer to the [Win32 API documentation] for details\n// on sequential file access.\n//\n// [Win32 API documentation]: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#FILE_FLAG_SEQUENTIAL_SCAN\nfunc Open(name string) (*os.File, error) {\n\treturn openFileSequential(name, windows.O_RDONLY)\n}\n\n// OpenFile is a copy of [os.OpenFile], modified to use sequential file access.\n//\n// It uses [windows.FILE_FLAG_SEQUENTIAL_SCAN] rather than [windows.FILE_ATTRIBUTE_NORMAL]\n// as implemented in golang. Refer to the [Win32 API documentation] for details\n// on sequential file access.\n//\n// [Win32 API documentation]: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#FILE_FLAG_SEQUENTIAL_SCAN\nfunc OpenFile(name string, flag int, _ os.FileMode) (*os.File, error) {\n\treturn openFileSequential(name, flag)\n}\n\nfunc openFileSequential(name string, flag int) (file *os.File, err error) {\n\tif name == \"\" {\n\t\treturn nil, &os.PathError{Op: \"open\", Path: name, Err: windows.ERROR_FILE_NOT_FOUND}\n\t}\n\tr, e := openSequential(name, flag|windows.O_CLOEXEC)\n\tif e != nil {\n\t\treturn nil, &os.PathError{Op: \"open\", Path: name, Err: e}\n\t}\n\treturn os.NewFile(uintptr(r), name), nil\n}\n\nfunc makeInheritSa() *windows.SecurityAttributes {\n\tvar sa windows.SecurityAttributes\n\tsa.Length = uint32(unsafe.Sizeof(sa))\n\tsa.InheritHandle = 1\n\treturn &sa\n}\n\nfunc openSequential(path string, mode int) (fd windows.Handle, err error) {\n\tif len(path) == 0 {\n\t\treturn windows.InvalidHandle, windows.ERROR_FILE_NOT_FOUND\n\t}\n\tpathp, err := windows.UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn windows.InvalidHandle, err\n\t}\n\tvar access uint32\n\tswitch mode & (windows.O_RDONLY | windows.O_WRONLY | windows.O_RDWR) {\n\tcase windows.O_RDONLY:\n\t\taccess = windows.GENERIC_READ\n\tcase windows.O_WRONLY:\n\t\taccess = windows.GENERIC_WRITE\n\tcase windows.O_RDWR:\n\t\taccess = windows.GENERIC_READ | windows.GENERIC_WRITE\n\t}\n\tif mode&windows.O_CREAT != 0 {\n\t\taccess |= windows.GENERIC_WRITE\n\t}\n\tif mode&windows.O_APPEND != 0 {\n\t\taccess &^= windows.GENERIC_WRITE\n\t\taccess |= windows.FILE_APPEND_DATA\n\t}\n\tsharemode := uint32(windows.FILE_SHARE_READ | windows.FILE_SHARE_WRITE)\n\tvar sa *windows.SecurityAttributes\n\tif mode&windows.O_CLOEXEC == 0 {\n\t\tsa = makeInheritSa()\n\t}\n\tvar createmode uint32\n\tswitch {\n\tcase mode&(windows.O_CREAT|windows.O_EXCL) == (windows.O_CREAT | windows.O_EXCL):\n\t\tcreatemode = windows.CREATE_NEW\n\tcase mode&(windows.O_CREAT|windows.O_TRUNC) == (windows.O_CREAT | windows.O_TRUNC):\n\t\tcreatemode = windows.CREATE_ALWAYS\n\tcase mode&windows.O_CREAT == windows.O_CREAT:\n\t\tcreatemode = windows.OPEN_ALWAYS\n\tcase mode&windows.O_TRUNC == windows.O_TRUNC:\n\t\tcreatemode = windows.TRUNCATE_EXISTING\n\tdefault:\n\t\tcreatemode = windows.OPEN_EXISTING\n\t}\n\t// Use FILE_FLAG_SEQUENTIAL_SCAN rather than FILE_ATTRIBUTE_NORMAL as implemented in golang.\n\t// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#FILE_FLAG_SEQUENTIAL_SCAN\n\th, e := windows.CreateFile(pathp, access, sharemode, sa, createmode, windows.FILE_FLAG_SEQUENTIAL_SCAN, 0)\n\treturn h, e\n}\n\n// Helpers for CreateTemp\nvar (\n\trand   uint32\n\trandmu sync.Mutex\n)\n\nfunc reseed() uint32 {\n\treturn uint32(time.Now().UnixNano() + int64(os.Getpid()))\n}\n\nfunc nextSuffix() string {\n\trandmu.Lock()\n\tr := rand\n\tif r == 0 {\n\t\tr = reseed()\n\t}\n\tr = r*1664525 + 1013904223 // constants from Numerical Recipes\n\trand = r\n\trandmu.Unlock()\n\treturn strconv.Itoa(int(1e9 + r%1e9))[1:]\n}\n\n// CreateTemp is a copy of [os.CreateTemp], modified to use sequential file access.\n//\n// It uses [windows.FILE_FLAG_SEQUENTIAL_SCAN] rather than [windows.FILE_ATTRIBUTE_NORMAL]\n// as implemented in golang. Refer to the [Win32 API documentation] for details\n// on sequential file access.\n//\n// [Win32 API documentation]: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#FILE_FLAG_SEQUENTIAL_SCAN\nfunc CreateTemp(dir, prefix string) (f *os.File, err error) {\n\tif dir == \"\" {\n\t\tdir = os.TempDir()\n\t}\n\n\tnconflict := 0\n\tfor i := 0; i < 10000; i++ {\n\t\tname := filepath.Join(dir, prefix+nextSuffix())\n\t\tf, err = openFileSequential(name, windows.O_RDWR|windows.O_CREAT|windows.O_EXCL)\n\t\tif os.IsExist(err) {\n\t\t\tif nconflict++; nconflict > 10 {\n\t\t\t\trandmu.Lock()\n\t\t\t\trand = reseed()\n\t\t\t\trandmu.Unlock()\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tbreak\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/.mailmap",
    "content": "Aaron Lehmann <aaronl@vitelus.com> <aaron.lehmann@docker.com>\nDerek McGowan <derek@mcg.dev> <derek@mcgstyle.net>\nStephen J Day <stephen.day@docker.com> <stevvooe@users.noreply.github.com>\nHaibing Zhou <zhouhaibing089@gmail.com>\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/.pullapprove.yml",
    "content": "version: 2\n\nrequirements:\n  signed_off_by:\n    required: true\n\nalways_pending:\n  title_regex: '^WIP'\n  explanation: 'Work in progress...'\n\ngroup_defaults:\n  required: 2\n  approve_by_comment:\n    enabled: true\n    approve_regex: '^LGTM'\n    reject_regex: '^Rejected'\n  reset_on_push:\n    enabled: true\n  author_approval:\n    ignored: true\n  conditions:\n    branches:\n      - master\n\ngroups:\n  go-digest:\n    teams:\n      - go-digest-maintainers\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/.travis.yml",
    "content": "language: go\ngo:\n  - 1.12.x\n  - 1.13.x\n  - master\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/CONTRIBUTING.md",
    "content": "# Contributing to Docker open source projects\n\nWant to hack on this project? Awesome! Here are instructions to get you started.\n\nThis project is a part of the [Docker](https://www.docker.com) project, and follows\nthe same rules and principles. If you're already familiar with the way\nDocker does things, you'll feel right at home.\n\nOtherwise, go read Docker's\n[contributions guidelines](https://github.com/docker/docker/blob/master/CONTRIBUTING.md),\n[issue triaging](https://github.com/docker/docker/blob/master/project/ISSUE-TRIAGE.md),\n[review process](https://github.com/docker/docker/blob/master/project/REVIEWING.md) and\n[branches and tags](https://github.com/docker/docker/blob/master/project/BRANCHES-AND-TAGS.md).\n\nFor an in-depth description of our contribution process, visit the\ncontributors guide: [Understand how to contribute](https://docs.docker.com/opensource/workflow/make-a-contribution/)\n\n### Sign your work\n\nThe sign-off is a simple line at the end of the explanation for the patch. Your\nsignature certifies that you wrote the patch or otherwise have the right to pass\nit on as an open-source patch. The rules are pretty simple: if you can certify\nthe below (from [developercertificate.org](http://developercertificate.org/)):\n\n```\nDeveloper Certificate of Origin\nVersion 1.1\n\nCopyright (C) 2004, 2006 The Linux Foundation and its contributors.\n1 Letterman Drive\nSuite D4700\nSan Francisco, CA, 94129\n\nEveryone is permitted to copy and distribute verbatim copies of this\nlicense document, but changing it is not allowed.\n\n\nDeveloper's Certificate of Origin 1.1\n\nBy making a contribution to this project, I certify that:\n\n(a) The contribution was created in whole or in part by me and I\n    have the right to submit it under the open source license\n    indicated in the file; or\n\n(b) The contribution is based upon previous work that, to the best\n    of my knowledge, is covered under an appropriate open source\n    license and I have the right under that license to submit that\n    work with modifications, whether created in whole or in part\n    by me, under the same open source license (unless I am\n    permitted to submit under a different license), as indicated\n    in the file; or\n\n(c) The contribution was provided directly to me by some other\n    person who certified (a), (b) or (c) and I have not modified\n    it.\n\n(d) I understand and agree that this project and the contribution\n    are public and that a record of the contribution (including all\n    personal information I submit with it, including my sign-off) is\n    maintained indefinitely and may be redistributed consistent with\n    this project or the open source license(s) involved.\n```\n\nThen you just add a line to every git commit message:\n\n    Signed-off-by: Joe Smith <joe.smith@email.com>\n\nUse your real name (sorry, no pseudonyms or anonymous contributions.)\n\nIf you set your `user.name` and `user.email` git configs, you can sign your\ncommit automatically with `git commit -s`.\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        https://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   Copyright 2019, 2020 OCI Contributors\n   Copyright 2016 Docker, Inc.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       https://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/LICENSE.docs",
    "content": "Attribution-ShareAlike 4.0 International\n\n=======================================================================\n\nCreative Commons Corporation (\"Creative Commons\") is not a law firm and\ndoes not provide legal services or legal advice. Distribution of\nCreative Commons public licenses does not create a lawyer-client or\nother relationship. Creative Commons makes its licenses and related\ninformation available on an \"as-is\" basis. Creative Commons gives no\nwarranties regarding its licenses, any material licensed under their\nterms and conditions, or any related information. Creative Commons\ndisclaims all liability for damages resulting from their use to the\nfullest extent possible.\n\nUsing Creative Commons Public Licenses\n\nCreative Commons public licenses provide a standard set of terms and\nconditions that creators and other rights holders may use to share\noriginal works of authorship and other material subject to copyright\nand certain other rights specified in the public license below. The\nfollowing considerations are for informational purposes only, are not\nexhaustive, and do not form part of our licenses.\n\n     Considerations for licensors: Our public licenses are\n     intended for use by those authorized to give the public\n     permission to use material in ways otherwise restricted by\n     copyright and certain other rights. Our licenses are\n     irrevocable. Licensors should read and understand the terms\n     and conditions of the license they choose before applying it.\n     Licensors should also secure all rights necessary before\n     applying our licenses so that the public can reuse the\n     material as expected. Licensors should clearly mark any\n     material not subject to the license. This includes other CC-\n     licensed material, or material used under an exception or\n     limitation to copyright. More considerations for licensors:\n\twiki.creativecommons.org/Considerations_for_licensors\n\n     Considerations for the public: By using one of our public\n     licenses, a licensor grants the public permission to use the\n     licensed material under specified terms and conditions. If\n     the licensor's permission is not necessary for any reason--for\n     example, because of any applicable exception or limitation to\n     copyright--then that use is not regulated by the license. Our\n     licenses grant only permissions under copyright and certain\n     other rights that a licensor has authority to grant. Use of\n     the licensed material may still be restricted for other\n     reasons, including because others have copyright or other\n     rights in the material. A licensor may make special requests,\n     such as asking that all changes be marked or described.\n     Although not required by our licenses, you are encouraged to\n     respect those requests where reasonable. More_considerations\n     for the public:\n\twiki.creativecommons.org/Considerations_for_licensees\n\n=======================================================================\n\nCreative Commons Attribution-ShareAlike 4.0 International Public\nLicense\n\nBy exercising the Licensed Rights (defined below), You accept and agree\nto be bound by the terms and conditions of this Creative Commons\nAttribution-ShareAlike 4.0 International Public License (\"Public\nLicense\"). To the extent this Public License may be interpreted as a\ncontract, You are granted the Licensed Rights in consideration of Your\nacceptance of these terms and conditions, and the Licensor grants You\nsuch rights in consideration of benefits the Licensor receives from\nmaking the Licensed Material available under these terms and\nconditions.\n\n\nSection 1 -- Definitions.\n\n  a. Adapted Material means material subject to Copyright and Similar\n     Rights that is derived from or based upon the Licensed Material\n     and in which the Licensed Material is translated, altered,\n     arranged, transformed, or otherwise modified in a manner requiring\n     permission under the Copyright and Similar Rights held by the\n     Licensor. For purposes of this Public License, where the Licensed\n     Material is a musical work, performance, or sound recording,\n     Adapted Material is always produced where the Licensed Material is\n     synched in timed relation with a moving image.\n\n  b. Adapter's License means the license You apply to Your Copyright\n     and Similar Rights in Your contributions to Adapted Material in\n     accordance with the terms and conditions of this Public License.\n\n  c. BY-SA Compatible License means a license listed at\n     creativecommons.org/compatiblelicenses, approved by Creative\n     Commons as essentially the equivalent of this Public License.\n\n  d. Copyright and Similar Rights means copyright and/or similar rights\n     closely related to copyright including, without limitation,\n     performance, broadcast, sound recording, and Sui Generis Database\n     Rights, without regard to how the rights are labeled or\n     categorized. For purposes of this Public License, the rights\n     specified in Section 2(b)(1)-(2) are not Copyright and Similar\n     Rights.\n\n  e. Effective Technological Measures means those measures that, in the\n     absence of proper authority, may not be circumvented under laws\n     fulfilling obligations under Article 11 of the WIPO Copyright\n     Treaty adopted on December 20, 1996, and/or similar international\n     agreements.\n\n  f. Exceptions and Limitations means fair use, fair dealing, and/or\n     any other exception or limitation to Copyright and Similar Rights\n     that applies to Your use of the Licensed Material.\n\n  g. License Elements means the license attributes listed in the name\n     of a Creative Commons Public License. The License Elements of this\n     Public License are Attribution and ShareAlike.\n\n  h. Licensed Material means the artistic or literary work, database,\n     or other material to which the Licensor applied this Public\n     License.\n\n  i. Licensed Rights means the rights granted to You subject to the\n     terms and conditions of this Public License, which are limited to\n     all Copyright and Similar Rights that apply to Your use of the\n     Licensed Material and that the Licensor has authority to license.\n\n  j. Licensor means the individual(s) or entity(ies) granting rights\n     under this Public License.\n\n  k. Share means to provide material to the public by any means or\n     process that requires permission under the Licensed Rights, such\n     as reproduction, public display, public performance, distribution,\n     dissemination, communication, or importation, and to make material\n     available to the public including in ways that members of the\n     public may access the material from a place and at a time\n     individually chosen by them.\n\n  l. Sui Generis Database Rights means rights other than copyright\n     resulting from Directive 96/9/EC of the European Parliament and of\n     the Council of 11 March 1996 on the legal protection of databases,\n     as amended and/or succeeded, as well as other essentially\n     equivalent rights anywhere in the world.\n\n  m. You means the individual or entity exercising the Licensed Rights\n     under this Public License. Your has a corresponding meaning.\n\n\nSection 2 -- Scope.\n\n  a. License grant.\n\n       1. Subject to the terms and conditions of this Public License,\n          the Licensor hereby grants You a worldwide, royalty-free,\n          non-sublicensable, non-exclusive, irrevocable license to\n          exercise the Licensed Rights in the Licensed Material to:\n\n            a. reproduce and Share the Licensed Material, in whole or\n               in part; and\n\n            b. produce, reproduce, and Share Adapted Material.\n\n       2. Exceptions and Limitations. For the avoidance of doubt, where\n          Exceptions and Limitations apply to Your use, this Public\n          License does not apply, and You do not need to comply with\n          its terms and conditions.\n\n       3. Term. The term of this Public License is specified in Section\n          6(a).\n\n       4. Media and formats; technical modifications allowed. The\n          Licensor authorizes You to exercise the Licensed Rights in\n          all media and formats whether now known or hereafter created,\n          and to make technical modifications necessary to do so. The\n          Licensor waives and/or agrees not to assert any right or\n          authority to forbid You from making technical modifications\n          necessary to exercise the Licensed Rights, including\n          technical modifications necessary to circumvent Effective\n          Technological Measures. For purposes of this Public License,\n          simply making modifications authorized by this Section 2(a)\n          (4) never produces Adapted Material.\n\n       5. Downstream recipients.\n\n            a. Offer from the Licensor -- Licensed Material. Every\n               recipient of the Licensed Material automatically\n               receives an offer from the Licensor to exercise the\n               Licensed Rights under the terms and conditions of this\n               Public License.\n\n            b. Additional offer from the Licensor -- Adapted Material.\n               Every recipient of Adapted Material from You\n               automatically receives an offer from the Licensor to\n               exercise the Licensed Rights in the Adapted Material\n               under the conditions of the Adapter's License You apply.\n\n            c. No downstream restrictions. You may not offer or impose\n               any additional or different terms or conditions on, or\n               apply any Effective Technological Measures to, the\n               Licensed Material if doing so restricts exercise of the\n               Licensed Rights by any recipient of the Licensed\n               Material.\n\n       6. No endorsement. Nothing in this Public License constitutes or\n          may be construed as permission to assert or imply that You\n          are, or that Your use of the Licensed Material is, connected\n          with, or sponsored, endorsed, or granted official status by,\n          the Licensor or others designated to receive attribution as\n          provided in Section 3(a)(1)(A)(i).\n\n  b. Other rights.\n\n       1. Moral rights, such as the right of integrity, are not\n          licensed under this Public License, nor are publicity,\n          privacy, and/or other similar personality rights; however, to\n          the extent possible, the Licensor waives and/or agrees not to\n          assert any such rights held by the Licensor to the limited\n          extent necessary to allow You to exercise the Licensed\n          Rights, but not otherwise.\n\n       2. Patent and trademark rights are not licensed under this\n          Public License.\n\n       3. To the extent possible, the Licensor waives any right to\n          collect royalties from You for the exercise of the Licensed\n          Rights, whether directly or through a collecting society\n          under any voluntary or waivable statutory or compulsory\n          licensing scheme. In all other cases the Licensor expressly\n          reserves any right to collect such royalties.\n\n\nSection 3 -- License Conditions.\n\nYour exercise of the Licensed Rights is expressly made subject to the\nfollowing conditions.\n\n  a. Attribution.\n\n       1. If You Share the Licensed Material (including in modified\n          form), You must:\n\n            a. retain the following if it is supplied by the Licensor\n               with the Licensed Material:\n\n                 i. identification of the creator(s) of the Licensed\n                    Material and any others designated to receive\n                    attribution, in any reasonable manner requested by\n                    the Licensor (including by pseudonym if\n                    designated);\n\n                ii. a copyright notice;\n\n               iii. a notice that refers to this Public License;\n\n                iv. a notice that refers to the disclaimer of\n                    warranties;\n\n                 v. a URI or hyperlink to the Licensed Material to the\n                    extent reasonably practicable;\n\n            b. indicate if You modified the Licensed Material and\n               retain an indication of any previous modifications; and\n\n            c. indicate the Licensed Material is licensed under this\n               Public License, and include the text of, or the URI or\n               hyperlink to, this Public License.\n\n       2. You may satisfy the conditions in Section 3(a)(1) in any\n          reasonable manner based on the medium, means, and context in\n          which You Share the Licensed Material. For example, it may be\n          reasonable to satisfy the conditions by providing a URI or\n          hyperlink to a resource that includes the required\n          information.\n\n       3. If requested by the Licensor, You must remove any of the\n          information required by Section 3(a)(1)(A) to the extent\n          reasonably practicable.\n\n  b. ShareAlike.\n\n     In addition to the conditions in Section 3(a), if You Share\n     Adapted Material You produce, the following conditions also apply.\n\n       1. The Adapter's License You apply must be a Creative Commons\n          license with the same License Elements, this version or\n          later, or a BY-SA Compatible License.\n\n       2. You must include the text of, or the URI or hyperlink to, the\n          Adapter's License You apply. You may satisfy this condition\n          in any reasonable manner based on the medium, means, and\n          context in which You Share Adapted Material.\n\n       3. You may not offer or impose any additional or different terms\n          or conditions on, or apply any Effective Technological\n          Measures to, Adapted Material that restrict exercise of the\n          rights granted under the Adapter's License You apply.\n\n\nSection 4 -- Sui Generis Database Rights.\n\nWhere the Licensed Rights include Sui Generis Database Rights that\napply to Your use of the Licensed Material:\n\n  a. for the avoidance of doubt, Section 2(a)(1) grants You the right\n     to extract, reuse, reproduce, and Share all or a substantial\n     portion of the contents of the database;\n\n  b. if You include all or a substantial portion of the database\n     contents in a database in which You have Sui Generis Database\n     Rights, then the database in which You have Sui Generis Database\n     Rights (but not its individual contents) is Adapted Material,\n\n     including for purposes of Section 3(b); and\n  c. You must comply with the conditions in Section 3(a) if You Share\n     all or a substantial portion of the contents of the database.\n\nFor the avoidance of doubt, this Section 4 supplements and does not\nreplace Your obligations under this Public License where the Licensed\nRights include other Copyright and Similar Rights.\n\n\nSection 5 -- Disclaimer of Warranties and Limitation of Liability.\n\n  a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE\n     EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS\n     AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF\n     ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,\n     IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,\n     WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR\n     PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,\n     ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT\n     KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT\n     ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.\n\n  b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE\n     TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,\n     NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,\n     INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,\n     COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR\n     USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN\n     ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR\n     DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR\n     IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.\n\n  c. The disclaimer of warranties and limitation of liability provided\n     above shall be interpreted in a manner that, to the extent\n     possible, most closely approximates an absolute disclaimer and\n     waiver of all liability.\n\n\nSection 6 -- Term and Termination.\n\n  a. This Public License applies for the term of the Copyright and\n     Similar Rights licensed here. However, if You fail to comply with\n     this Public License, then Your rights under this Public License\n     terminate automatically.\n\n  b. Where Your right to use the Licensed Material has terminated under\n     Section 6(a), it reinstates:\n\n       1. automatically as of the date the violation is cured, provided\n          it is cured within 30 days of Your discovery of the\n          violation; or\n\n       2. upon express reinstatement by the Licensor.\n\n     For the avoidance of doubt, this Section 6(b) does not affect any\n     right the Licensor may have to seek remedies for Your violations\n     of this Public License.\n\n  c. For the avoidance of doubt, the Licensor may also offer the\n     Licensed Material under separate terms or conditions or stop\n     distributing the Licensed Material at any time; however, doing so\n     will not terminate this Public License.\n\n  d. Sections 1, 5, 6, 7, and 8 survive termination of this Public\n     License.\n\n\nSection 7 -- Other Terms and Conditions.\n\n  a. The Licensor shall not be bound by any additional or different\n     terms or conditions communicated by You unless expressly agreed.\n\n  b. Any arrangements, understandings, or agreements regarding the\n     Licensed Material not stated herein are separate from and\n     independent of the terms and conditions of this Public License.\n\n\nSection 8 -- Interpretation.\n\n  a. For the avoidance of doubt, this Public License does not, and\n     shall not be interpreted to, reduce, limit, restrict, or impose\n     conditions on any use of the Licensed Material that could lawfully\n     be made without permission under this Public License.\n\n  b. To the extent possible, if any provision of this Public License is\n     deemed unenforceable, it shall be automatically reformed to the\n     minimum extent necessary to make it enforceable. If the provision\n     cannot be reformed, it shall be severed from this Public License\n     without affecting the enforceability of the remaining terms and\n     conditions.\n\n  c. No term or condition of this Public License will be waived and no\n     failure to comply consented to unless expressly agreed to by the\n     Licensor.\n\n  d. Nothing in this Public License constitutes or may be interpreted\n     as a limitation upon, or waiver of, any privileges and immunities\n     that apply to the Licensor or You, including from the legal\n     processes of any jurisdiction or authority.\n\n\n=======================================================================\n\nCreative Commons is not a party to its public licenses.\nNotwithstanding, Creative Commons may elect to apply one of its public\nlicenses to material it publishes and in those instances will be\nconsidered the \"Licensor.\" Except for the limited purpose of indicating\nthat material is shared under a Creative Commons public license or as\notherwise permitted by the Creative Commons policies published at\ncreativecommons.org/policies, Creative Commons does not authorize the\nuse of the trademark \"Creative Commons\" or any other trademark or logo\nof Creative Commons without its prior written consent including,\nwithout limitation, in connection with any unauthorized modifications\nto any of its public licenses or any other arrangements,\nunderstandings, or agreements concerning use of licensed material. For\nthe avoidance of doubt, this paragraph does not form part of the public\nlicenses.\n\nCreative Commons may be contacted at creativecommons.org.\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/MAINTAINERS",
    "content": "Derek McGowan <derek@mcgstyle.net> (@dmcgowan)\nStephen Day <stevvooe@gmail.com> (@stevvooe)\nVincent Batts <vbatts@hashbangbash.com> (@vbatts)\nAkihiro Suda <akihiro.suda.cz@hco.ntt.co.jp> (@AkihiroSuda)\nSebastiaan van Stijn <github@gone.nl> (@thaJeztah)\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/README.md",
    "content": "# go-digest\n\n[![GoDoc](https://godoc.org/github.com/opencontainers/go-digest?status.svg)](https://godoc.org/github.com/opencontainers/go-digest) [![Go Report Card](https://goreportcard.com/badge/github.com/opencontainers/go-digest)](https://goreportcard.com/report/github.com/opencontainers/go-digest) [![Build Status](https://travis-ci.org/opencontainers/go-digest.svg?branch=master)](https://travis-ci.org/opencontainers/go-digest)\n\nCommon digest package used across the container ecosystem.\n\nPlease see the [godoc](https://godoc.org/github.com/opencontainers/go-digest) for more information.\n\n# What is a digest?\n\nA digest is just a [hash](https://en.wikipedia.org/wiki/Hash_function).\n\nThe most common use case for a digest is to create a content identifier for use in [Content Addressable Storage](https://en.wikipedia.org/wiki/Content-addressable_storage) systems:\n\n```go\nid := digest.FromBytes([]byte(\"my content\"))\n```\n\nIn the example above, the id can be used to uniquely identify the byte slice \"my content\".\nThis allows two disparate applications to agree on a verifiable identifier without having to trust one another.\n\nAn identifying digest can be verified, as follows:\n\n```go\nif id != digest.FromBytes([]byte(\"my content\")) {\n  return errors.New(\"the content has changed!\")\n}\n```\n\nA `Verifier` type can be used to handle cases where an `io.Reader` makes more sense:\n\n```go\nrd := getContent()\nverifier := id.Verifier()\nio.Copy(verifier, rd)\n\nif !verifier.Verified() {\n  return errors.New(\"the content has changed!\")\n}\n```\n\nUsing [Merkle DAGs](https://en.wikipedia.org/wiki/Merkle_tree), this can power a rich, safe, content distribution system.\n\n# Usage\n\nWhile the [godoc](https://godoc.org/github.com/opencontainers/go-digest) is considered the best resource, a few important items need to be called out when using this package.\n\n1. Make sure to import the hash implementations into your application or the package will panic.\n    You should have something like the following in the main (or other entrypoint) of your application:\n   \n    ```go\n    import (\n        _ \"crypto/sha256\"\n        _ \"crypto/sha512\"\n    )\n    ```\n    This may seem inconvenient but it allows you replace the hash \n    implementations with others, such as https://github.com/stevvooe/resumable.\n \n2. Even though `digest.Digest` may be assemblable as a string, _always_ verify your input with `digest.Parse` or use `Digest.Validate` when accepting untrusted input.\n    While there are measures to avoid common problems, this will ensure you have valid digests in the rest of your application.\n\n3. While alternative encodings of hash values (digests) are possible (for example, base64), this package deals exclusively with hex-encoded digests.\n\n# Stability\n\nThe Go API, at this stage, is considered stable, unless otherwise noted.\n\nAs always, before using a package export, read the [godoc](https://godoc.org/github.com/opencontainers/go-digest).\n\n# Contributing\n\nThis package is considered fairly complete.\nIt has been in production in thousands (millions?) of deployments and is fairly battle-hardened.\nNew additions will be met with skepticism.\nIf you think there is a missing feature, please file a bug clearly describing the problem and the alternatives you tried before submitting a PR.\n\n## Code of Conduct\n\nParticipation in the OpenContainers community is governed by [OpenContainer's Code of Conduct][code-of-conduct].\n\n## Security\n\nIf you find an issue, please follow the [security][security] protocol to report it.\n\n# Copyright and license\n\nCopyright © 2019, 2020 OCI Contributors\nCopyright © 2016 Docker, Inc.\nAll rights reserved, except as follows.\nCode is released under the [Apache 2.0 license](LICENSE).\nThis `README.md` file and the [`CONTRIBUTING.md`](CONTRIBUTING.md) file are licensed under the Creative Commons Attribution 4.0 International License under the terms and conditions set forth in the file [`LICENSE.docs`](LICENSE.docs).\nYou may obtain a duplicate copy of the same license, titled CC BY-SA 4.0, at http://creativecommons.org/licenses/by-sa/4.0/.\n\n[security]: https://github.com/opencontainers/org/blob/master/security\n[code-of-conduct]: https://github.com/opencontainers/org/blob/master/CODE_OF_CONDUCT.md\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/algorithm.go",
    "content": "// Copyright 2019, 2020 OCI Contributors\n// Copyright 2017 Docker, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     https://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage digest\n\nimport (\n\t\"crypto\"\n\t\"fmt\"\n\t\"hash\"\n\t\"io\"\n\t\"regexp\"\n)\n\n// Algorithm identifies and implementation of a digester by an identifier.\n// Note the that this defines both the hash algorithm used and the string\n// encoding.\ntype Algorithm string\n\n// supported digest types\nconst (\n\tSHA256 Algorithm = \"sha256\" // sha256 with hex encoding (lower case only)\n\tSHA384 Algorithm = \"sha384\" // sha384 with hex encoding (lower case only)\n\tSHA512 Algorithm = \"sha512\" // sha512 with hex encoding (lower case only)\n\n\t// Canonical is the primary digest algorithm used with the distribution\n\t// project. Other digests may be used but this one is the primary storage\n\t// digest.\n\tCanonical = SHA256\n)\n\nvar (\n\t// TODO(stevvooe): Follow the pattern of the standard crypto package for\n\t// registration of digests. Effectively, we are a registerable set and\n\t// common symbol access.\n\n\t// algorithms maps values to hash.Hash implementations. Other algorithms\n\t// may be available but they cannot be calculated by the digest package.\n\talgorithms = map[Algorithm]crypto.Hash{\n\t\tSHA256: crypto.SHA256,\n\t\tSHA384: crypto.SHA384,\n\t\tSHA512: crypto.SHA512,\n\t}\n\n\t// anchoredEncodedRegexps contains anchored regular expressions for hex-encoded digests.\n\t// Note that /A-F/ disallowed.\n\tanchoredEncodedRegexps = map[Algorithm]*regexp.Regexp{\n\t\tSHA256: regexp.MustCompile(`^[a-f0-9]{64}$`),\n\t\tSHA384: regexp.MustCompile(`^[a-f0-9]{96}$`),\n\t\tSHA512: regexp.MustCompile(`^[a-f0-9]{128}$`),\n\t}\n)\n\n// Available returns true if the digest type is available for use. If this\n// returns false, Digester and Hash will return nil.\nfunc (a Algorithm) Available() bool {\n\th, ok := algorithms[a]\n\tif !ok {\n\t\treturn false\n\t}\n\n\t// check availability of the hash, as well\n\treturn h.Available()\n}\n\nfunc (a Algorithm) String() string {\n\treturn string(a)\n}\n\n// Size returns number of bytes returned by the hash.\nfunc (a Algorithm) Size() int {\n\th, ok := algorithms[a]\n\tif !ok {\n\t\treturn 0\n\t}\n\treturn h.Size()\n}\n\n// Set implemented to allow use of Algorithm as a command line flag.\nfunc (a *Algorithm) Set(value string) error {\n\tif value == \"\" {\n\t\t*a = Canonical\n\t} else {\n\t\t// just do a type conversion, support is queried with Available.\n\t\t*a = Algorithm(value)\n\t}\n\n\tif !a.Available() {\n\t\treturn ErrDigestUnsupported\n\t}\n\n\treturn nil\n}\n\n// Digester returns a new digester for the specified algorithm. If the algorithm\n// does not have a digester implementation, nil will be returned. This can be\n// checked by calling Available before calling Digester.\nfunc (a Algorithm) Digester() Digester {\n\treturn &digester{\n\t\talg:  a,\n\t\thash: a.Hash(),\n\t}\n}\n\n// Hash returns a new hash as used by the algorithm. If not available, the\n// method will panic. Check Algorithm.Available() before calling.\nfunc (a Algorithm) Hash() hash.Hash {\n\tif !a.Available() {\n\t\t// Empty algorithm string is invalid\n\t\tif a == \"\" {\n\t\t\tpanic(fmt.Sprintf(\"empty digest algorithm, validate before calling Algorithm.Hash()\"))\n\t\t}\n\n\t\t// NOTE(stevvooe): A missing hash is usually a programming error that\n\t\t// must be resolved at compile time. We don't import in the digest\n\t\t// package to allow users to choose their hash implementation (such as\n\t\t// when using stevvooe/resumable or a hardware accelerated package).\n\t\t//\n\t\t// Applications that may want to resolve the hash at runtime should\n\t\t// call Algorithm.Available before call Algorithm.Hash().\n\t\tpanic(fmt.Sprintf(\"%v not available (make sure it is imported)\", a))\n\t}\n\n\treturn algorithms[a].New()\n}\n\n// Encode encodes the raw bytes of a digest, typically from a hash.Hash, into\n// the encoded portion of the digest.\nfunc (a Algorithm) Encode(d []byte) string {\n\t// TODO(stevvooe): Currently, all algorithms use a hex encoding. When we\n\t// add support for back registration, we can modify this accordingly.\n\treturn fmt.Sprintf(\"%x\", d)\n}\n\n// FromReader returns the digest of the reader using the algorithm.\nfunc (a Algorithm) FromReader(rd io.Reader) (Digest, error) {\n\tdigester := a.Digester()\n\n\tif _, err := io.Copy(digester.Hash(), rd); err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn digester.Digest(), nil\n}\n\n// FromBytes digests the input and returns a Digest.\nfunc (a Algorithm) FromBytes(p []byte) Digest {\n\tdigester := a.Digester()\n\n\tif _, err := digester.Hash().Write(p); err != nil {\n\t\t// Writes to a Hash should never fail. None of the existing\n\t\t// hash implementations in the stdlib or hashes vendored\n\t\t// here can return errors from Write. Having a panic in this\n\t\t// condition instead of having FromBytes return an error value\n\t\t// avoids unnecessary error handling paths in all callers.\n\t\tpanic(\"write to hash function returned error: \" + err.Error())\n\t}\n\n\treturn digester.Digest()\n}\n\n// FromString digests the string input and returns a Digest.\nfunc (a Algorithm) FromString(s string) Digest {\n\treturn a.FromBytes([]byte(s))\n}\n\n// Validate validates the encoded portion string\nfunc (a Algorithm) Validate(encoded string) error {\n\tr, ok := anchoredEncodedRegexps[a]\n\tif !ok {\n\t\treturn ErrDigestUnsupported\n\t}\n\t// Digests much always be hex-encoded, ensuring that their hex portion will\n\t// always be size*2\n\tif a.Size()*2 != len(encoded) {\n\t\treturn ErrDigestInvalidLength\n\t}\n\tif r.MatchString(encoded) {\n\t\treturn nil\n\t}\n\treturn ErrDigestInvalidFormat\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/digest.go",
    "content": "// Copyright 2019, 2020 OCI Contributors\n// Copyright 2017 Docker, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     https://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage digest\n\nimport (\n\t\"fmt\"\n\t\"hash\"\n\t\"io\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// Digest allows simple protection of hex formatted digest strings, prefixed\n// by their algorithm. Strings of type Digest have some guarantee of being in\n// the correct format and it provides quick access to the components of a\n// digest string.\n//\n// The following is an example of the contents of Digest types:\n//\n// \tsha256:7173b809ca12ec5dee4506cd86be934c4596dd234ee82c0662eac04a8c2c71dc\n//\n// This allows to abstract the digest behind this type and work only in those\n// terms.\ntype Digest string\n\n// NewDigest returns a Digest from alg and a hash.Hash object.\nfunc NewDigest(alg Algorithm, h hash.Hash) Digest {\n\treturn NewDigestFromBytes(alg, h.Sum(nil))\n}\n\n// NewDigestFromBytes returns a new digest from the byte contents of p.\n// Typically, this can come from hash.Hash.Sum(...) or xxx.SumXXX(...)\n// functions. This is also useful for rebuilding digests from binary\n// serializations.\nfunc NewDigestFromBytes(alg Algorithm, p []byte) Digest {\n\treturn NewDigestFromEncoded(alg, alg.Encode(p))\n}\n\n// NewDigestFromHex is deprecated. Please use NewDigestFromEncoded.\nfunc NewDigestFromHex(alg, hex string) Digest {\n\treturn NewDigestFromEncoded(Algorithm(alg), hex)\n}\n\n// NewDigestFromEncoded returns a Digest from alg and the encoded digest.\nfunc NewDigestFromEncoded(alg Algorithm, encoded string) Digest {\n\treturn Digest(fmt.Sprintf(\"%s:%s\", alg, encoded))\n}\n\n// DigestRegexp matches valid digest types.\nvar DigestRegexp = regexp.MustCompile(`[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+`)\n\n// DigestRegexpAnchored matches valid digest types, anchored to the start and end of the match.\nvar DigestRegexpAnchored = regexp.MustCompile(`^` + DigestRegexp.String() + `$`)\n\nvar (\n\t// ErrDigestInvalidFormat returned when digest format invalid.\n\tErrDigestInvalidFormat = fmt.Errorf(\"invalid checksum digest format\")\n\n\t// ErrDigestInvalidLength returned when digest has invalid length.\n\tErrDigestInvalidLength = fmt.Errorf(\"invalid checksum digest length\")\n\n\t// ErrDigestUnsupported returned when the digest algorithm is unsupported.\n\tErrDigestUnsupported = fmt.Errorf(\"unsupported digest algorithm\")\n)\n\n// Parse parses s and returns the validated digest object. An error will\n// be returned if the format is invalid.\nfunc Parse(s string) (Digest, error) {\n\td := Digest(s)\n\treturn d, d.Validate()\n}\n\n// FromReader consumes the content of rd until io.EOF, returning canonical digest.\nfunc FromReader(rd io.Reader) (Digest, error) {\n\treturn Canonical.FromReader(rd)\n}\n\n// FromBytes digests the input and returns a Digest.\nfunc FromBytes(p []byte) Digest {\n\treturn Canonical.FromBytes(p)\n}\n\n// FromString digests the input and returns a Digest.\nfunc FromString(s string) Digest {\n\treturn Canonical.FromString(s)\n}\n\n// Validate checks that the contents of d is a valid digest, returning an\n// error if not.\nfunc (d Digest) Validate() error {\n\ts := string(d)\n\ti := strings.Index(s, \":\")\n\tif i <= 0 || i+1 == len(s) {\n\t\treturn ErrDigestInvalidFormat\n\t}\n\talgorithm, encoded := Algorithm(s[:i]), s[i+1:]\n\tif !algorithm.Available() {\n\t\tif !DigestRegexpAnchored.MatchString(s) {\n\t\t\treturn ErrDigestInvalidFormat\n\t\t}\n\t\treturn ErrDigestUnsupported\n\t}\n\treturn algorithm.Validate(encoded)\n}\n\n// Algorithm returns the algorithm portion of the digest. This will panic if\n// the underlying digest is not in a valid format.\nfunc (d Digest) Algorithm() Algorithm {\n\treturn Algorithm(d[:d.sepIndex()])\n}\n\n// Verifier returns a writer object that can be used to verify a stream of\n// content against the digest. If the digest is invalid, the method will panic.\nfunc (d Digest) Verifier() Verifier {\n\treturn hashVerifier{\n\t\thash:   d.Algorithm().Hash(),\n\t\tdigest: d,\n\t}\n}\n\n// Encoded returns the encoded portion of the digest. This will panic if the\n// underlying digest is not in a valid format.\nfunc (d Digest) Encoded() string {\n\treturn string(d[d.sepIndex()+1:])\n}\n\n// Hex is deprecated. Please use Digest.Encoded.\nfunc (d Digest) Hex() string {\n\treturn d.Encoded()\n}\n\nfunc (d Digest) String() string {\n\treturn string(d)\n}\n\nfunc (d Digest) sepIndex() int {\n\ti := strings.Index(string(d), \":\")\n\n\tif i < 0 {\n\t\tpanic(fmt.Sprintf(\"no ':' separator in digest %q\", d))\n\t}\n\n\treturn i\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/digester.go",
    "content": "// Copyright 2019, 2020 OCI Contributors\n// Copyright 2017 Docker, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     https://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage digest\n\nimport \"hash\"\n\n// Digester calculates the digest of written data. Writes should go directly\n// to the return value of Hash, while calling Digest will return the current\n// value of the digest.\ntype Digester interface {\n\tHash() hash.Hash // provides direct access to underlying hash instance.\n\tDigest() Digest\n}\n\n// digester provides a simple digester definition that embeds a hasher.\ntype digester struct {\n\talg  Algorithm\n\thash hash.Hash\n}\n\nfunc (d *digester) Hash() hash.Hash {\n\treturn d.hash\n}\n\nfunc (d *digester) Digest() Digest {\n\treturn NewDigest(d.alg, d.hash)\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/doc.go",
    "content": "// Copyright 2019, 2020 OCI Contributors\n// Copyright 2017 Docker, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     https://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package digest provides a generalized type to opaquely represent message\n// digests and their operations within the registry. The Digest type is\n// designed to serve as a flexible identifier in a content-addressable system.\n// More importantly, it provides tools and wrappers to work with\n// hash.Hash-based digests with little effort.\n//\n// Basics\n//\n// The format of a digest is simply a string with two parts, dubbed the\n// \"algorithm\" and the \"digest\", separated by a colon:\n//\n// \t<algorithm>:<digest>\n//\n// An example of a sha256 digest representation follows:\n//\n// \tsha256:7173b809ca12ec5dee4506cd86be934c4596dd234ee82c0662eac04a8c2c71dc\n//\n// The \"algorithm\" portion defines both the hashing algorithm used to calculate\n// the digest and the encoding of the resulting digest, which defaults to \"hex\"\n// if not otherwise specified. Currently, all supported algorithms have their\n// digests encoded in hex strings.\n//\n// In the example above, the string \"sha256\" is the algorithm and the hex bytes\n// are the \"digest\".\n//\n// Because the Digest type is simply a string, once a valid Digest is\n// obtained, comparisons are cheap, quick and simple to express with the\n// standard equality operator.\n//\n// Verification\n//\n// The main benefit of using the Digest type is simple verification against a\n// given digest. The Verifier interface, modeled after the stdlib hash.Hash\n// interface, provides a common write sink for digest verification. After\n// writing is complete, calling the Verifier.Verified method will indicate\n// whether or not the stream of bytes matches the target digest.\n//\n// Missing Features\n//\n// In addition to the above, we intend to add the following features to this\n// package:\n//\n// 1. A Digester type that supports write sink digest calculation.\n//\n// 2. Suspend and resume of ongoing digest calculations to support efficient digest verification in the registry.\n//\npackage digest\n"
  },
  {
    "path": "vendor/github.com/opencontainers/go-digest/verifiers.go",
    "content": "// Copyright 2019, 2020 OCI Contributors\n// Copyright 2017 Docker, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     https://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage digest\n\nimport (\n\t\"hash\"\n\t\"io\"\n)\n\n// Verifier presents a general verification interface to be used with message\n// digests and other byte stream verifications. Users instantiate a Verifier\n// from one of the various methods, write the data under test to it then check\n// the result with the Verified method.\ntype Verifier interface {\n\tio.Writer\n\n\t// Verified will return true if the content written to Verifier matches\n\t// the digest.\n\tVerified() bool\n}\n\ntype hashVerifier struct {\n\tdigest Digest\n\thash   hash.Hash\n}\n\nfunc (hv hashVerifier) Write(p []byte) (n int, err error) {\n\treturn hv.hash.Write(p)\n}\n\nfunc (hv hashVerifier) Verified() bool {\n\treturn hv.digest == NewDigest(hv.digest.Algorithm(), hv.hash)\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/image-spec/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   Copyright 2016 The Linux Foundation.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/opencontainers/image-spec/specs-go/v1/annotations.go",
    "content": "// Copyright 2016 The Linux Foundation\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage v1\n\nconst (\n\t// AnnotationCreated is the annotation key for the date and time on which the image was built (date-time string as defined by RFC 3339).\n\tAnnotationCreated = \"org.opencontainers.image.created\"\n\n\t// AnnotationAuthors is the annotation key for the contact details of the people or organization responsible for the image (freeform string).\n\tAnnotationAuthors = \"org.opencontainers.image.authors\"\n\n\t// AnnotationURL is the annotation key for the URL to find more information on the image.\n\tAnnotationURL = \"org.opencontainers.image.url\"\n\n\t// AnnotationDocumentation is the annotation key for the URL to get documentation on the image.\n\tAnnotationDocumentation = \"org.opencontainers.image.documentation\"\n\n\t// AnnotationSource is the annotation key for the URL to get source code for building the image.\n\tAnnotationSource = \"org.opencontainers.image.source\"\n\n\t// AnnotationVersion is the annotation key for the version of the packaged software.\n\t// The version MAY match a label or tag in the source code repository.\n\t// The version MAY be Semantic versioning-compatible.\n\tAnnotationVersion = \"org.opencontainers.image.version\"\n\n\t// AnnotationRevision is the annotation key for the source control revision identifier for the packaged software.\n\tAnnotationRevision = \"org.opencontainers.image.revision\"\n\n\t// AnnotationVendor is the annotation key for the name of the distributing entity, organization or individual.\n\tAnnotationVendor = \"org.opencontainers.image.vendor\"\n\n\t// AnnotationLicenses is the annotation key for the license(s) under which contained software is distributed as an SPDX License Expression.\n\tAnnotationLicenses = \"org.opencontainers.image.licenses\"\n\n\t// AnnotationRefName is the annotation key for the name of the reference for a target.\n\t// SHOULD only be considered valid when on descriptors on `index.json` within image layout.\n\tAnnotationRefName = \"org.opencontainers.image.ref.name\"\n\n\t// AnnotationTitle is the annotation key for the human-readable title of the image.\n\tAnnotationTitle = \"org.opencontainers.image.title\"\n\n\t// AnnotationDescription is the annotation key for the human-readable description of the software packaged in the image.\n\tAnnotationDescription = \"org.opencontainers.image.description\"\n\n\t// AnnotationBaseImageDigest is the annotation key for the digest of the image's base image.\n\tAnnotationBaseImageDigest = \"org.opencontainers.image.base.digest\"\n\n\t// AnnotationBaseImageName is the annotation key for the image reference of the image's base image.\n\tAnnotationBaseImageName = \"org.opencontainers.image.base.name\"\n)\n"
  },
  {
    "path": "vendor/github.com/opencontainers/image-spec/specs-go/v1/config.go",
    "content": "// Copyright 2016 The Linux Foundation\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage v1\n\nimport (\n\t\"time\"\n\n\tdigest \"github.com/opencontainers/go-digest\"\n)\n\n// ImageConfig defines the execution parameters which should be used as a base when running a container using an image.\ntype ImageConfig struct {\n\t// User defines the username or UID which the process in the container should run as.\n\tUser string `json:\"User,omitempty\"`\n\n\t// ExposedPorts a set of ports to expose from a container running this image.\n\tExposedPorts map[string]struct{} `json:\"ExposedPorts,omitempty\"`\n\n\t// Env is a list of environment variables to be used in a container.\n\tEnv []string `json:\"Env,omitempty\"`\n\n\t// Entrypoint defines a list of arguments to use as the command to execute when the container starts.\n\tEntrypoint []string `json:\"Entrypoint,omitempty\"`\n\n\t// Cmd defines the default arguments to the entrypoint of the container.\n\tCmd []string `json:\"Cmd,omitempty\"`\n\n\t// Volumes is a set of directories describing where the process is likely write data specific to a container instance.\n\tVolumes map[string]struct{} `json:\"Volumes,omitempty\"`\n\n\t// WorkingDir sets the current working directory of the entrypoint process in the container.\n\tWorkingDir string `json:\"WorkingDir,omitempty\"`\n\n\t// Labels contains arbitrary metadata for the container.\n\tLabels map[string]string `json:\"Labels,omitempty\"`\n\n\t// StopSignal contains the system call signal that will be sent to the container to exit.\n\tStopSignal string `json:\"StopSignal,omitempty\"`\n\n\t// ArgsEscaped\n\t//\n\t// Deprecated: This field is present only for legacy compatibility with\n\t// Docker and should not be used by new image builders.  It is used by Docker\n\t// for Windows images to indicate that the `Entrypoint` or `Cmd` or both,\n\t// contains only a single element array, that is a pre-escaped, and combined\n\t// into a single string `CommandLine`. If `true` the value in `Entrypoint` or\n\t// `Cmd` should be used as-is to avoid double escaping.\n\t// https://github.com/opencontainers/image-spec/pull/892\n\tArgsEscaped bool `json:\"ArgsEscaped,omitempty\"`\n}\n\n// RootFS describes a layer content addresses\ntype RootFS struct {\n\t// Type is the type of the rootfs.\n\tType string `json:\"type\"`\n\n\t// DiffIDs is an array of layer content hashes (DiffIDs), in order from bottom-most to top-most.\n\tDiffIDs []digest.Digest `json:\"diff_ids\"`\n}\n\n// History describes the history of a layer.\ntype History struct {\n\t// Created is the combined date and time at which the layer was created, formatted as defined by RFC 3339, section 5.6.\n\tCreated *time.Time `json:\"created,omitempty\"`\n\n\t// CreatedBy is the command which created the layer.\n\tCreatedBy string `json:\"created_by,omitempty\"`\n\n\t// Author is the author of the build point.\n\tAuthor string `json:\"author,omitempty\"`\n\n\t// Comment is a custom message set when creating the layer.\n\tComment string `json:\"comment,omitempty\"`\n\n\t// EmptyLayer is used to mark if the history item created a filesystem diff.\n\tEmptyLayer bool `json:\"empty_layer,omitempty\"`\n}\n\n// Image is the JSON structure which describes some basic information about the image.\n// This provides the `application/vnd.oci.image.config.v1+json` mediatype when marshalled to JSON.\ntype Image struct {\n\t// Created is the combined date and time at which the image was created, formatted as defined by RFC 3339, section 5.6.\n\tCreated *time.Time `json:\"created,omitempty\"`\n\n\t// Author defines the name and/or email address of the person or entity which created and is responsible for maintaining the image.\n\tAuthor string `json:\"author,omitempty\"`\n\n\t// Platform describes the platform which the image in the manifest runs on.\n\tPlatform\n\n\t// Config defines the execution parameters which should be used as a base when running a container using the image.\n\tConfig ImageConfig `json:\"config,omitempty\"`\n\n\t// RootFS references the layer content addresses used by the image.\n\tRootFS RootFS `json:\"rootfs\"`\n\n\t// History describes the history of each layer.\n\tHistory []History `json:\"history,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/image-spec/specs-go/v1/descriptor.go",
    "content": "// Copyright 2016-2022 The Linux Foundation\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage v1\n\nimport digest \"github.com/opencontainers/go-digest\"\n\n// Descriptor describes the disposition of targeted content.\n// This structure provides `application/vnd.oci.descriptor.v1+json` mediatype\n// when marshalled to JSON.\ntype Descriptor struct {\n\t// MediaType is the media type of the object this schema refers to.\n\tMediaType string `json:\"mediaType\"`\n\n\t// Digest is the digest of the targeted content.\n\tDigest digest.Digest `json:\"digest\"`\n\n\t// Size specifies the size in bytes of the blob.\n\tSize int64 `json:\"size\"`\n\n\t// URLs specifies a list of URLs from which this object MAY be downloaded\n\tURLs []string `json:\"urls,omitempty\"`\n\n\t// Annotations contains arbitrary metadata relating to the targeted content.\n\tAnnotations map[string]string `json:\"annotations,omitempty\"`\n\n\t// Data is an embedding of the targeted content. This is encoded as a base64\n\t// string when marshalled to JSON (automatically, by encoding/json). If\n\t// present, Data can be used directly to avoid fetching the targeted content.\n\tData []byte `json:\"data,omitempty\"`\n\n\t// Platform describes the platform which the image in the manifest runs on.\n\t//\n\t// This should only be used when referring to a manifest.\n\tPlatform *Platform `json:\"platform,omitempty\"`\n\n\t// ArtifactType is the IANA media type of this artifact.\n\tArtifactType string `json:\"artifactType,omitempty\"`\n}\n\n// Platform describes the platform which the image in the manifest runs on.\ntype Platform struct {\n\t// Architecture field specifies the CPU architecture, for example\n\t// `amd64` or `ppc64le`.\n\tArchitecture string `json:\"architecture\"`\n\n\t// OS specifies the operating system, for example `linux` or `windows`.\n\tOS string `json:\"os\"`\n\n\t// OSVersion is an optional field specifying the operating system\n\t// version, for example on Windows `10.0.14393.1066`.\n\tOSVersion string `json:\"os.version,omitempty\"`\n\n\t// OSFeatures is an optional field specifying an array of strings,\n\t// each listing a required OS feature (for example on Windows `win32k`).\n\tOSFeatures []string `json:\"os.features,omitempty\"`\n\n\t// Variant is an optional field specifying a variant of the CPU, for\n\t// example `v7` to specify ARMv7 when architecture is `arm`.\n\tVariant string `json:\"variant,omitempty\"`\n}\n\n// DescriptorEmptyJSON is the descriptor of a blob with content of `{}`.\nvar DescriptorEmptyJSON = Descriptor{\n\tMediaType: MediaTypeEmptyJSON,\n\tDigest:    `sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a`,\n\tSize:      2,\n\tData:      []byte(`{}`),\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/image-spec/specs-go/v1/index.go",
    "content": "// Copyright 2016 The Linux Foundation\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage v1\n\nimport \"github.com/opencontainers/image-spec/specs-go\"\n\n// Index references manifests for various platforms.\n// This structure provides `application/vnd.oci.image.index.v1+json` mediatype when marshalled to JSON.\ntype Index struct {\n\tspecs.Versioned\n\n\t// MediaType specifies the type of this document data structure e.g. `application/vnd.oci.image.index.v1+json`\n\tMediaType string `json:\"mediaType,omitempty\"`\n\n\t// ArtifactType specifies the IANA media type of artifact when the manifest is used for an artifact.\n\tArtifactType string `json:\"artifactType,omitempty\"`\n\n\t// Manifests references platform specific manifests.\n\tManifests []Descriptor `json:\"manifests\"`\n\n\t// Subject is an optional link from the image manifest to another manifest forming an association between the image manifest and the other manifest.\n\tSubject *Descriptor `json:\"subject,omitempty\"`\n\n\t// Annotations contains arbitrary metadata for the image index.\n\tAnnotations map[string]string `json:\"annotations,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/image-spec/specs-go/v1/layout.go",
    "content": "// Copyright 2016 The Linux Foundation\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage v1\n\nconst (\n\t// ImageLayoutFile is the file name containing ImageLayout in an OCI Image Layout\n\tImageLayoutFile = \"oci-layout\"\n\t// ImageLayoutVersion is the version of ImageLayout\n\tImageLayoutVersion = \"1.0.0\"\n\t// ImageIndexFile is the file name of the entry point for references and descriptors in an OCI Image Layout\n\tImageIndexFile = \"index.json\"\n\t// ImageBlobsDir is the directory name containing content addressable blobs in an OCI Image Layout\n\tImageBlobsDir = \"blobs\"\n)\n\n// ImageLayout is the structure in the \"oci-layout\" file, found in the root\n// of an OCI Image-layout directory.\ntype ImageLayout struct {\n\tVersion string `json:\"imageLayoutVersion\"`\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/image-spec/specs-go/v1/manifest.go",
    "content": "// Copyright 2016-2022 The Linux Foundation\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage v1\n\nimport \"github.com/opencontainers/image-spec/specs-go\"\n\n// Manifest provides `application/vnd.oci.image.manifest.v1+json` mediatype structure when marshalled to JSON.\ntype Manifest struct {\n\tspecs.Versioned\n\n\t// MediaType specifies the type of this document data structure e.g. `application/vnd.oci.image.manifest.v1+json`\n\tMediaType string `json:\"mediaType,omitempty\"`\n\n\t// ArtifactType specifies the IANA media type of artifact when the manifest is used for an artifact.\n\tArtifactType string `json:\"artifactType,omitempty\"`\n\n\t// Config references a configuration object for a container, by digest.\n\t// The referenced configuration object is a JSON blob that the runtime uses to set up the container.\n\tConfig Descriptor `json:\"config\"`\n\n\t// Layers is an indexed list of layers referenced by the manifest.\n\tLayers []Descriptor `json:\"layers\"`\n\n\t// Subject is an optional link from the image manifest to another manifest forming an association between the image manifest and the other manifest.\n\tSubject *Descriptor `json:\"subject,omitempty\"`\n\n\t// Annotations contains arbitrary metadata for the image manifest.\n\tAnnotations map[string]string `json:\"annotations,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/github.com/opencontainers/image-spec/specs-go/v1/mediatype.go",
    "content": "// Copyright 2016 The Linux Foundation\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage v1\n\nconst (\n\t// MediaTypeDescriptor specifies the media type for a content descriptor.\n\tMediaTypeDescriptor = \"application/vnd.oci.descriptor.v1+json\"\n\n\t// MediaTypeLayoutHeader specifies the media type for the oci-layout.\n\tMediaTypeLayoutHeader = \"application/vnd.oci.layout.header.v1+json\"\n\n\t// MediaTypeImageIndex specifies the media type for an image index.\n\tMediaTypeImageIndex = \"application/vnd.oci.image.index.v1+json\"\n\n\t// MediaTypeImageManifest specifies the media type for an image manifest.\n\tMediaTypeImageManifest = \"application/vnd.oci.image.manifest.v1+json\"\n\n\t// MediaTypeImageConfig specifies the media type for the image configuration.\n\tMediaTypeImageConfig = \"application/vnd.oci.image.config.v1+json\"\n\n\t// MediaTypeEmptyJSON specifies the media type for an unused blob containing the value \"{}\".\n\tMediaTypeEmptyJSON = \"application/vnd.oci.empty.v1+json\"\n)\n\nconst (\n\t// MediaTypeImageLayer is the media type used for layers referenced by the manifest.\n\tMediaTypeImageLayer = \"application/vnd.oci.image.layer.v1.tar\"\n\n\t// MediaTypeImageLayerGzip is the media type used for gzipped layers\n\t// referenced by the manifest.\n\tMediaTypeImageLayerGzip = \"application/vnd.oci.image.layer.v1.tar+gzip\"\n\n\t// MediaTypeImageLayerZstd is the media type used for zstd compressed\n\t// layers referenced by the manifest.\n\tMediaTypeImageLayerZstd = \"application/vnd.oci.image.layer.v1.tar+zstd\"\n)\n\n// Non-distributable layer media-types.\n//\n// Deprecated: Non-distributable layers are deprecated, and not recommended\n// for future use. Implementations SHOULD NOT produce new non-distributable\n// layers.\n// https://github.com/opencontainers/image-spec/pull/965\nconst (\n\t// MediaTypeImageLayerNonDistributable is the media type for layers referenced by\n\t// the manifest but with distribution restrictions.\n\t//\n\t// Deprecated: Non-distributable layers are deprecated, and not recommended\n\t// for future use. Implementations SHOULD NOT produce new non-distributable\n\t// layers.\n\t// https://github.com/opencontainers/image-spec/pull/965\n\tMediaTypeImageLayerNonDistributable = \"application/vnd.oci.image.layer.nondistributable.v1.tar\"\n\n\t// MediaTypeImageLayerNonDistributableGzip is the media type for\n\t// gzipped layers referenced by the manifest but with distribution\n\t// restrictions.\n\t//\n\t// Deprecated: Non-distributable layers are deprecated, and not recommended\n\t// for future use. Implementations SHOULD NOT produce new non-distributable\n\t// layers.\n\t// https://github.com/opencontainers/image-spec/pull/965\n\tMediaTypeImageLayerNonDistributableGzip = \"application/vnd.oci.image.layer.nondistributable.v1.tar+gzip\"\n\n\t// MediaTypeImageLayerNonDistributableZstd is the media type for zstd\n\t// compressed layers referenced by the manifest but with distribution\n\t// restrictions.\n\t//\n\t// Deprecated: Non-distributable layers are deprecated, and not recommended\n\t// for future use. Implementations SHOULD NOT produce new non-distributable\n\t// layers.\n\t// https://github.com/opencontainers/image-spec/pull/965\n\tMediaTypeImageLayerNonDistributableZstd = \"application/vnd.oci.image.layer.nondistributable.v1.tar+zstd\"\n)\n"
  },
  {
    "path": "vendor/github.com/opencontainers/image-spec/specs-go/version.go",
    "content": "// Copyright 2016 The Linux Foundation\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage specs\n\nimport \"fmt\"\n\nconst (\n\t// VersionMajor is for an API incompatible changes\n\tVersionMajor = 1\n\t// VersionMinor is for functionality in a backwards-compatible manner\n\tVersionMinor = 1\n\t// VersionPatch is for backwards-compatible bug fixes\n\tVersionPatch = 0\n\n\t// VersionDev indicates development branch. Releases will be empty string.\n\tVersionDev = \"\"\n)\n\n// Version is the specification version that the package types support.\nvar Version = fmt.Sprintf(\"%d.%d.%d%s\", VersionMajor, VersionMinor, VersionPatch, VersionDev)\n"
  },
  {
    "path": "vendor/github.com/opencontainers/image-spec/specs-go/versioned.go",
    "content": "// Copyright 2016 The Linux Foundation\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage specs\n\n// Versioned provides a struct with the manifest schemaVersion and mediaType.\n// Incoming content with unknown schema version can be decoded against this\n// struct to check the version.\ntype Versioned struct {\n\t// SchemaVersion is the image manifest schema that this image follows\n\tSchemaVersion int `json:\"schemaVersion\"`\n}\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/.gitignore",
    "content": "*~\n*.test\n.*.swp\n.DS_Store\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.3.x\n  - 1.4.x\n  - 1.5.x\n  - 1.6.x\n  - 1.7.x\n  - 1.8.x\n  - 1.9.x\n  - master\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/LICENSE",
    "content": "Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/README.md",
    "content": "# goid [![Build Status](https://travis-ci.org/petermattis/goid.svg?branch=master)](https://travis-ci.org/petermattis/goid)\n\nProgramatically retrieve the current goroutine's ID. See [the CI\nconfiguration](.travis.yml) for supported Go versions. In addition,\ngccgo 7.2.1 (Go 1.8.3) is supported.\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/goid.go",
    "content": "// Copyright 2016 Peter Mattis.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n// implied. See the License for the specific language governing\n// permissions and limitations under the License. See the AUTHORS file\n// for names of contributors.\n\npackage goid\n\nimport (\n\t\"bytes\"\n\t\"runtime\"\n\t\"strconv\"\n)\n\nfunc ExtractGID(s []byte) int64 {\n\ts = s[len(\"goroutine \"):]\n\ts = s[:bytes.IndexByte(s, ' ')]\n\tgid, _ := strconv.ParseInt(string(s), 10, 64)\n\treturn gid\n}\n\n// Parse the goid from runtime.Stack() output. Slow, but it works.\nfunc getSlow() int64 {\n\tvar buf [64]byte\n\treturn ExtractGID(buf[:runtime.Stack(buf[:], false)])\n}\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/goid_gccgo.go",
    "content": "// Copyright 2018 Peter Mattis.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n// implied. See the License for the specific language governing\n// permissions and limitations under the License. See the AUTHORS file\n// for names of contributors.\n\n// +build gccgo\n\npackage goid\n\n//extern runtime.getg\nfunc getg() *g\n\nfunc Get() int64 {\n\treturn getg().goid\n}\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/goid_go1.3.c",
    "content": "// Copyright 2015 Peter Mattis.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n// implied. See the License for the specific language governing\n// permissions and limitations under the License. See the AUTHORS file\n// for names of contributors.\n\n// +build !go1.4\n\n#include <runtime.h>\n\nvoid ·Get(int64 ret) {\n  ret = g->goid;\n  USED(&ret);\n}\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/goid_go1.3.go",
    "content": "// Copyright 2015 Peter Mattis.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n// implied. See the License for the specific language governing\n// permissions and limitations under the License. See the AUTHORS file\n// for names of contributors.\n\n// +build !go1.4\n\npackage goid\n\n// Get returns the id of the current goroutine.\nfunc Get() int64\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/goid_go1.4.go",
    "content": "// Copyright 2015 Peter Mattis.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n// implied. See the License for the specific language governing\n// permissions and limitations under the License. See the AUTHORS file\n// for names of contributors.\n\n// +build go1.4,!go1.5\n\npackage goid\n\nimport \"unsafe\"\n\nvar pointerSize = unsafe.Sizeof(uintptr(0))\n\n// Backdoor access to runtime·getg().\nfunc getg() uintptr // in goid_go1.4.s\n\n// Get returns the id of the current goroutine.\nfunc Get() int64 {\n\t// The goid is the 16th field in the G struct where each field is a\n\t// pointer, uintptr or padded to that size. See runtime.h from the\n\t// Go sources. I'm not aware of a cleaner way to determine the\n\t// offset.\n\treturn *(*int64)(unsafe.Pointer(getg() + 16*pointerSize))\n}\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/goid_go1.4.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Assembly to get into package runtime without using exported symbols.\n// See https://github.com/golang/go/blob/release-branch.go1.4/misc/cgo/test/backdoor/thunk.s\n\n// +build amd64 amd64p32 arm 386\n// +build go1.4,!go1.5\n\n#include \"textflag.h\"\n\n#ifdef GOARCH_arm\n#define JMP B\n#endif\n\nTEXT ·getg(SB),NOSPLIT,$0-0\n\tJMP\truntime·getg(SB)\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/goid_go1.5_amd64.go",
    "content": "// Copyright 2016 Peter Mattis.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n// implied. See the License for the specific language governing\n// permissions and limitations under the License. See the AUTHORS file\n// for names of contributors.\n\n// +build amd64 amd64p32\n// +build gc,go1.5\n\npackage goid\n\nfunc Get() int64\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/goid_go1.5_amd64.s",
    "content": "// Copyright 2016 Peter Mattis.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n// implied. See the License for the specific language governing\n// permissions and limitations under the License. See the AUTHORS file\n// for names of contributors.\n\n// Assembly to mimic runtime.getg.\n\n// +build amd64 amd64p32\n// +build gc,go1.5\n\n#include \"go_asm.h\"\n#include \"textflag.h\"\n\n// func Get() int64\nTEXT ·Get(SB),NOSPLIT,$0-8\n\tMOVQ (TLS), R14\n\tMOVQ g_goid(R14), R13\n\tMOVQ R13, ret+0(FP)\n\tRET\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/goid_go1.5_arm.go",
    "content": "// Copyright 2016 Peter Mattis.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n// implied. See the License for the specific language governing\n// permissions and limitations under the License. See the AUTHORS file\n// for names of contributors.\n\n// +build arm\n// +build gc,go1.5\n\npackage goid\n\n// Backdoor access to runtime·getg().\nfunc getg() *g // in goid_go1.5plus.s\n\nfunc Get() int64 {\n\treturn getg().goid\n}\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/goid_go1.5_arm.s",
    "content": "// Copyright 2016 Peter Mattis.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n// implied. See the License for the specific language governing\n// permissions and limitations under the License. See the AUTHORS file\n// for names of contributors.\n\n// Assembly to mimic runtime.getg.\n// This should work on arm64 as well, but it hasn't been tested.\n\n// +build arm\n// +build gc,go1.5\n\n#include \"textflag.h\"\n\n// func getg() *g\nTEXT ·getg(SB),NOSPLIT,$0-8\n\tMOVW g, ret+0(FP)\n\tRET\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/goid_slow.go",
    "content": "// Copyright 2016 Peter Mattis.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n// implied. See the License for the specific language governing\n// permissions and limitations under the License. See the AUTHORS file\n// for names of contributors.\n\n// +build go1.4,!go1.5,!amd64,!amd64p32,!arm,!386 go1.5,!go1.6,!amd64,!amd64p32,!arm go1.6,!amd64,!amd64p32,!arm go1.9,!amd64,!amd64p32,!arm\n\npackage goid\n\n// Get returns the id of the current goroutine.\nfunc Get() int64 {\n\treturn getSlow()\n}\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/runtime_gccgo_go1.8.go",
    "content": "// +build gccgo,go1.8\n\npackage goid\n\n// https://github.com/gcc-mirror/gcc/blob/gcc-7-branch/libgo/go/runtime/runtime2.go#L329-L422\n\ntype g struct {\n\t_panic       uintptr\n\t_defer       uintptr\n\tm            uintptr\n\tsyscallsp    uintptr\n\tsyscallpc    uintptr\n\tparam        uintptr\n\tatomicstatus uint32\n\tgoid         int64 // Here it is!\n}\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/runtime_go1.5.go",
    "content": "// Copyright 2016 Peter Mattis.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n// implied. See the License for the specific language governing\n// permissions and limitations under the License. See the AUTHORS file\n// for names of contributors.\n\n// +build go1.5,!go1.6\n\npackage goid\n\n// Just enough of the structs from runtime/runtime2.go to get the offset to goid.\n// See https://github.com/golang/go/blob/release-branch.go1.5/src/runtime/runtime2.go\n\ntype stack struct {\n\tlo uintptr\n\thi uintptr\n}\n\ntype gobuf struct {\n\tsp   uintptr\n\tpc   uintptr\n\tg    uintptr\n\tctxt uintptr\n\tret  uintptr\n\tlr   uintptr\n\tbp   uintptr\n}\n\ntype g struct {\n\tstack       stack\n\tstackguard0 uintptr\n\tstackguard1 uintptr\n\n\t_panic       uintptr\n\t_defer       uintptr\n\tm            uintptr\n\tstackAlloc   uintptr\n\tsched        gobuf\n\tsyscallsp    uintptr\n\tsyscallpc    uintptr\n\tstkbar       []uintptr\n\tstkbarPos    uintptr\n\tparam        uintptr\n\tatomicstatus uint32\n\tstackLock    uint32\n\tgoid         int64 // Here it is!\n}\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/runtime_go1.6.go",
    "content": "// +build gc,go1.6,!go1.9\n\npackage goid\n\n// Just enough of the structs from runtime/runtime2.go to get the offset to goid.\n// See https://github.com/golang/go/blob/release-branch.go1.6/src/runtime/runtime2.go\n\ntype stack struct {\n\tlo uintptr\n\thi uintptr\n}\n\ntype gobuf struct {\n\tsp   uintptr\n\tpc   uintptr\n\tg    uintptr\n\tctxt uintptr\n\tret  uintptr\n\tlr   uintptr\n\tbp   uintptr\n}\n\ntype g struct {\n\tstack       stack\n\tstackguard0 uintptr\n\tstackguard1 uintptr\n\n\t_panic       uintptr\n\t_defer       uintptr\n\tm            uintptr\n\tstackAlloc   uintptr\n\tsched        gobuf\n\tsyscallsp    uintptr\n\tsyscallpc    uintptr\n\tstkbar       []uintptr\n\tstkbarPos    uintptr\n\tstktopsp     uintptr\n\tparam        uintptr\n\tatomicstatus uint32\n\tstackLock    uint32\n\tgoid         int64 // Here it is!\n}\n"
  },
  {
    "path": "vendor/github.com/petermattis/goid/runtime_go1.9.go",
    "content": "// +build gc,go1.9\n\npackage goid\n\ntype stack struct {\n\tlo uintptr\n\thi uintptr\n}\n\ntype gobuf struct {\n\tsp   uintptr\n\tpc   uintptr\n\tg    uintptr\n\tctxt uintptr\n\tret  uintptr\n\tlr   uintptr\n\tbp   uintptr\n}\n\ntype g struct {\n\tstack       stack\n\tstackguard0 uintptr\n\tstackguard1 uintptr\n\n\t_panic       uintptr\n\t_defer       uintptr\n\tm            uintptr\n\tsched        gobuf\n\tsyscallsp    uintptr\n\tsyscallpc    uintptr\n\tstktopsp     uintptr\n\tparam        uintptr\n\tatomicstatus uint32\n\tstackLock    uint32\n\tgoid         int64 // Here it is!\n}\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/.gitignore",
    "content": "# 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 specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n*.test\n*.prof\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/.travis.yml",
    "content": "language: go\ngo_import_path: github.com/pkg/errors\ngo:\n  - 1.11.x\n  - 1.12.x\n  - 1.13.x\n  - tip\n\nscript:\n  - make check\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/LICENSE",
    "content": "Copyright (c) 2015, Dave Cheney <dave@cheney.net>\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/Makefile",
    "content": "PKGS := github.com/pkg/errors\nSRCDIRS := $(shell go list -f '{{.Dir}}' $(PKGS))\nGO := go\n\ncheck: test vet gofmt misspell unconvert staticcheck ineffassign unparam\n\ntest: \n\t$(GO) test $(PKGS)\n\nvet: | test\n\t$(GO) vet $(PKGS)\n\nstaticcheck:\n\t$(GO) get honnef.co/go/tools/cmd/staticcheck\n\tstaticcheck -checks all $(PKGS)\n\nmisspell:\n\t$(GO) get github.com/client9/misspell/cmd/misspell\n\tmisspell \\\n\t\t-locale GB \\\n\t\t-error \\\n\t\t*.md *.go\n\nunconvert:\n\t$(GO) get github.com/mdempsky/unconvert\n\tunconvert -v $(PKGS)\n\nineffassign:\n\t$(GO) get github.com/gordonklaus/ineffassign\n\tfind $(SRCDIRS) -name '*.go' | xargs ineffassign\n\npedantic: check errcheck\n\nunparam:\n\t$(GO) get mvdan.cc/unparam\n\tunparam ./...\n\nerrcheck:\n\t$(GO) get github.com/kisielk/errcheck\n\terrcheck $(PKGS)\n\ngofmt:  \n\t@echo Checking code is gofmted\n\t@test -z \"$(shell gofmt -s -l -d -e $(SRCDIRS) | tee /dev/stderr)\"\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/README.md",
    "content": "# errors [![Travis-CI](https://travis-ci.org/pkg/errors.svg)](https://travis-ci.org/pkg/errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/b98mptawhudj53ep/branch/master?svg=true)](https://ci.appveyor.com/project/davecheney/errors/branch/master) [![GoDoc](https://godoc.org/github.com/pkg/errors?status.svg)](http://godoc.org/github.com/pkg/errors) [![Report card](https://goreportcard.com/badge/github.com/pkg/errors)](https://goreportcard.com/report/github.com/pkg/errors) [![Sourcegraph](https://sourcegraph.com/github.com/pkg/errors/-/badge.svg)](https://sourcegraph.com/github.com/pkg/errors?badge)\n\nPackage errors provides simple error handling primitives.\n\n`go get github.com/pkg/errors`\n\nThe traditional error handling idiom in Go is roughly akin to\n```go\nif err != nil {\n        return err\n}\n```\nwhich applied recursively up the call stack results in error reports without context or debugging information. The errors package allows programmers to add context to the failure path in their code in a way that does not destroy the original value of the error.\n\n## Adding context to an error\n\nThe errors.Wrap function returns a new error that adds context to the original error. For example\n```go\n_, err := ioutil.ReadAll(r)\nif err != nil {\n        return errors.Wrap(err, \"read failed\")\n}\n```\n## Retrieving the cause of an error\n\nUsing `errors.Wrap` constructs a stack of errors, adding context to the preceding error. Depending on the nature of the error it may be necessary to reverse the operation of errors.Wrap to retrieve the original error for inspection. Any error value which implements this interface can be inspected by `errors.Cause`.\n```go\ntype causer interface {\n        Cause() error\n}\n```\n`errors.Cause` will recursively retrieve the topmost error which does not implement `causer`, which is assumed to be the original cause. For example:\n```go\nswitch err := errors.Cause(err).(type) {\ncase *MyError:\n        // handle specifically\ndefault:\n        // unknown error\n}\n```\n\n[Read the package documentation for more information](https://godoc.org/github.com/pkg/errors).\n\n## Roadmap\n\nWith the upcoming [Go2 error proposals](https://go.googlesource.com/proposal/+/master/design/go2draft.md) this package is moving into maintenance mode. The roadmap for a 1.0 release is as follows:\n\n- 0.9. Remove pre Go 1.9 and Go 1.10 support, address outstanding pull requests (if possible)\n- 1.0. Final release.\n\n## Contributing\n\nBecause of the Go2 errors changes, this package is not accepting proposals for new functionality. With that said, we welcome pull requests, bug fixes and issue reports. \n\nBefore sending a PR, please discuss your change by raising an issue.\n\n## License\n\nBSD-2-Clause\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/appveyor.yml",
    "content": "version: build-{build}.{branch}\n\nclone_folder: C:\\gopath\\src\\github.com\\pkg\\errors\nshallow_clone: true # for startup speed\n\nenvironment:\n  GOPATH: C:\\gopath\n\nplatform:\n  - x64\n\n# http://www.appveyor.com/docs/installed-software\ninstall:\n  # some helpful output for debugging builds\n  - go version\n  - go env\n  # pre-installed MinGW at C:\\MinGW is 32bit only\n  # but MSYS2 at C:\\msys64 has mingw64\n  - set PATH=C:\\msys64\\mingw64\\bin;%PATH%\n  - gcc --version\n  - g++ --version\n\nbuild_script:\n  - go install -v ./...\n\ntest_script:\n  - set PATH=C:\\gopath\\bin;%PATH%\n  - go test -v ./...\n\n#artifacts:\n#  - path: '%GOPATH%\\bin\\*.exe'\ndeploy: off\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/errors.go",
    "content": "// Package errors provides simple error handling primitives.\n//\n// The traditional error handling idiom in Go is roughly akin to\n//\n//     if err != nil {\n//             return err\n//     }\n//\n// which when applied recursively up the call stack results in error reports\n// without context or debugging information. The errors package allows\n// programmers to add context to the failure path in their code in a way\n// that does not destroy the original value of the error.\n//\n// Adding context to an error\n//\n// The errors.Wrap function returns a new error that adds context to the\n// original error by recording a stack trace at the point Wrap is called,\n// together with the supplied message. For example\n//\n//     _, err := ioutil.ReadAll(r)\n//     if err != nil {\n//             return errors.Wrap(err, \"read failed\")\n//     }\n//\n// If additional control is required, the errors.WithStack and\n// errors.WithMessage functions destructure errors.Wrap into its component\n// operations: annotating an error with a stack trace and with a message,\n// respectively.\n//\n// Retrieving the cause of an error\n//\n// Using errors.Wrap constructs a stack of errors, adding context to the\n// preceding error. Depending on the nature of the error it may be necessary\n// to reverse the operation of errors.Wrap to retrieve the original error\n// for inspection. Any error value which implements this interface\n//\n//     type causer interface {\n//             Cause() error\n//     }\n//\n// can be inspected by errors.Cause. errors.Cause will recursively retrieve\n// the topmost error that does not implement causer, which is assumed to be\n// the original cause. For example:\n//\n//     switch err := errors.Cause(err).(type) {\n//     case *MyError:\n//             // handle specifically\n//     default:\n//             // unknown error\n//     }\n//\n// Although the causer interface is not exported by this package, it is\n// considered a part of its stable public interface.\n//\n// Formatted printing of errors\n//\n// All error values returned from this package implement fmt.Formatter and can\n// be formatted by the fmt package. The following verbs are supported:\n//\n//     %s    print the error. If the error has a Cause it will be\n//           printed recursively.\n//     %v    see %s\n//     %+v   extended format. Each Frame of the error's StackTrace will\n//           be printed in detail.\n//\n// Retrieving the stack trace of an error or wrapper\n//\n// New, Errorf, Wrap, and Wrapf record a stack trace at the point they are\n// invoked. This information can be retrieved with the following interface:\n//\n//     type stackTracer interface {\n//             StackTrace() errors.StackTrace\n//     }\n//\n// The returned errors.StackTrace type is defined as\n//\n//     type StackTrace []Frame\n//\n// The Frame type represents a call site in the stack trace. Frame supports\n// the fmt.Formatter interface that can be used for printing information about\n// the stack trace of this error. For example:\n//\n//     if err, ok := err.(stackTracer); ok {\n//             for _, f := range err.StackTrace() {\n//                     fmt.Printf(\"%+s:%d\\n\", f, f)\n//             }\n//     }\n//\n// Although the stackTracer interface is not exported by this package, it is\n// considered a part of its stable public interface.\n//\n// See the documentation for Frame.Format for more details.\npackage errors\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// New returns an error with the supplied message.\n// New also records the stack trace at the point it was called.\nfunc New(message string) error {\n\treturn &fundamental{\n\t\tmsg:   message,\n\t\tstack: callers(),\n\t}\n}\n\n// Errorf formats according to a format specifier and returns the string\n// as a value that satisfies error.\n// Errorf also records the stack trace at the point it was called.\nfunc Errorf(format string, args ...interface{}) error {\n\treturn &fundamental{\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t\tstack: callers(),\n\t}\n}\n\n// fundamental is an error that has a message and a stack, but no caller.\ntype fundamental struct {\n\tmsg string\n\t*stack\n}\n\nfunc (f *fundamental) Error() string { return f.msg }\n\nfunc (f *fundamental) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tio.WriteString(s, f.msg)\n\t\t\tf.stack.Format(s, verb)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's':\n\t\tio.WriteString(s, f.msg)\n\tcase 'q':\n\t\tfmt.Fprintf(s, \"%q\", f.msg)\n\t}\n}\n\n// WithStack annotates err with a stack trace at the point WithStack was called.\n// If err is nil, WithStack returns nil.\nfunc WithStack(err error) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\ntype withStack struct {\n\terror\n\t*stack\n}\n\nfunc (w *withStack) Cause() error { return w.error }\n\n// Unwrap provides compatibility for Go 1.13 error chains.\nfunc (w *withStack) Unwrap() error { return w.error }\n\nfunc (w *withStack) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tfmt.Fprintf(s, \"%+v\", w.Cause())\n\t\t\tw.stack.Format(s, verb)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's':\n\t\tio.WriteString(s, w.Error())\n\tcase 'q':\n\t\tfmt.Fprintf(s, \"%q\", w.Error())\n\t}\n}\n\n// Wrap returns an error annotating err with a stack trace\n// at the point Wrap is called, and the supplied message.\n// If err is nil, Wrap returns nil.\nfunc Wrap(err error, message string) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\terr = &withMessage{\n\t\tcause: err,\n\t\tmsg:   message,\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\n// Wrapf returns an error annotating err with a stack trace\n// at the point Wrapf is called, and the format specifier.\n// If err is nil, Wrapf returns nil.\nfunc Wrapf(err error, format string, args ...interface{}) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\terr = &withMessage{\n\t\tcause: err,\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\n// WithMessage annotates err with a new message.\n// If err is nil, WithMessage returns nil.\nfunc WithMessage(err error, message string) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withMessage{\n\t\tcause: err,\n\t\tmsg:   message,\n\t}\n}\n\n// WithMessagef annotates err with the format specifier.\n// If err is nil, WithMessagef returns nil.\nfunc WithMessagef(err error, format string, args ...interface{}) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withMessage{\n\t\tcause: err,\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t}\n}\n\ntype withMessage struct {\n\tcause error\n\tmsg   string\n}\n\nfunc (w *withMessage) Error() string { return w.msg + \": \" + w.cause.Error() }\nfunc (w *withMessage) Cause() error  { return w.cause }\n\n// Unwrap provides compatibility for Go 1.13 error chains.\nfunc (w *withMessage) Unwrap() error { return w.cause }\n\nfunc (w *withMessage) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tfmt.Fprintf(s, \"%+v\\n\", w.Cause())\n\t\t\tio.WriteString(s, w.msg)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's', 'q':\n\t\tio.WriteString(s, w.Error())\n\t}\n}\n\n// Cause returns the underlying cause of the error, if possible.\n// An error value has a cause if it implements the following\n// interface:\n//\n//     type causer interface {\n//            Cause() error\n//     }\n//\n// If the error does not implement Cause, the original error will\n// be returned. If the error is nil, nil will be returned without further\n// investigation.\nfunc Cause(err error) error {\n\ttype causer interface {\n\t\tCause() error\n\t}\n\n\tfor err != nil {\n\t\tcause, ok := err.(causer)\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\terr = cause.Cause()\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/go113.go",
    "content": "// +build go1.13\n\npackage errors\n\nimport (\n\tstderrors \"errors\"\n)\n\n// Is reports whether any error in err's chain matches target.\n//\n// The chain consists of err itself followed by the sequence of errors obtained by\n// repeatedly calling Unwrap.\n//\n// An error is considered to match a target if it is equal to that target or if\n// it implements a method Is(error) bool such that Is(target) returns true.\nfunc Is(err, target error) bool { return stderrors.Is(err, target) }\n\n// As finds the first error in err's chain that matches target, and if so, sets\n// target to that error value and returns true.\n//\n// The chain consists of err itself followed by the sequence of errors obtained by\n// repeatedly calling Unwrap.\n//\n// An error matches target if the error's concrete value is assignable to the value\n// pointed to by target, or if the error has a method As(interface{}) bool such that\n// As(target) returns true. In the latter case, the As method is responsible for\n// setting target.\n//\n// As will panic if target is not a non-nil pointer to either a type that implements\n// error, or to any interface type. As returns false if err is nil.\nfunc As(err error, target interface{}) bool { return stderrors.As(err, target) }\n\n// Unwrap returns the result of calling the Unwrap method on err, if err's\n// type contains an Unwrap method returning error.\n// Otherwise, Unwrap returns nil.\nfunc Unwrap(err error) error {\n\treturn stderrors.Unwrap(err)\n}\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/stack.go",
    "content": "package errors\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"path\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Frame represents a program counter inside a stack frame.\n// For historical reasons if Frame is interpreted as a uintptr\n// its value represents the program counter + 1.\ntype Frame uintptr\n\n// pc returns the program counter for this frame;\n// multiple frames may have the same PC value.\nfunc (f Frame) pc() uintptr { return uintptr(f) - 1 }\n\n// file returns the full path to the file that contains the\n// function for this Frame's pc.\nfunc (f Frame) file() string {\n\tfn := runtime.FuncForPC(f.pc())\n\tif fn == nil {\n\t\treturn \"unknown\"\n\t}\n\tfile, _ := fn.FileLine(f.pc())\n\treturn file\n}\n\n// line returns the line number of source code of the\n// function for this Frame's pc.\nfunc (f Frame) line() int {\n\tfn := runtime.FuncForPC(f.pc())\n\tif fn == nil {\n\t\treturn 0\n\t}\n\t_, line := fn.FileLine(f.pc())\n\treturn line\n}\n\n// name returns the name of this function, if known.\nfunc (f Frame) name() string {\n\tfn := runtime.FuncForPC(f.pc())\n\tif fn == nil {\n\t\treturn \"unknown\"\n\t}\n\treturn fn.Name()\n}\n\n// Format formats the frame according to the fmt.Formatter interface.\n//\n//    %s    source file\n//    %d    source line\n//    %n    function name\n//    %v    equivalent to %s:%d\n//\n// Format accepts flags that alter the printing of some verbs, as follows:\n//\n//    %+s   function name and path of source file relative to the compile time\n//          GOPATH separated by \\n\\t (<funcname>\\n\\t<path>)\n//    %+v   equivalent to %+s:%d\nfunc (f Frame) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 's':\n\t\tswitch {\n\t\tcase s.Flag('+'):\n\t\t\tio.WriteString(s, f.name())\n\t\t\tio.WriteString(s, \"\\n\\t\")\n\t\t\tio.WriteString(s, f.file())\n\t\tdefault:\n\t\t\tio.WriteString(s, path.Base(f.file()))\n\t\t}\n\tcase 'd':\n\t\tio.WriteString(s, strconv.Itoa(f.line()))\n\tcase 'n':\n\t\tio.WriteString(s, funcname(f.name()))\n\tcase 'v':\n\t\tf.Format(s, 's')\n\t\tio.WriteString(s, \":\")\n\t\tf.Format(s, 'd')\n\t}\n}\n\n// MarshalText formats a stacktrace Frame as a text string. The output is the\n// same as that of fmt.Sprintf(\"%+v\", f), but without newlines or tabs.\nfunc (f Frame) MarshalText() ([]byte, error) {\n\tname := f.name()\n\tif name == \"unknown\" {\n\t\treturn []byte(name), nil\n\t}\n\treturn []byte(fmt.Sprintf(\"%s %s:%d\", name, f.file(), f.line())), nil\n}\n\n// StackTrace is stack of Frames from innermost (newest) to outermost (oldest).\ntype StackTrace []Frame\n\n// Format formats the stack of Frames according to the fmt.Formatter interface.\n//\n//    %s\tlists source files for each Frame in the stack\n//    %v\tlists the source file and line number for each Frame in the stack\n//\n// Format accepts flags that alter the printing of some verbs, as follows:\n//\n//    %+v   Prints filename, function, and line number for each Frame in the stack.\nfunc (st StackTrace) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tswitch {\n\t\tcase s.Flag('+'):\n\t\t\tfor _, f := range st {\n\t\t\t\tio.WriteString(s, \"\\n\")\n\t\t\t\tf.Format(s, verb)\n\t\t\t}\n\t\tcase s.Flag('#'):\n\t\t\tfmt.Fprintf(s, \"%#v\", []Frame(st))\n\t\tdefault:\n\t\t\tst.formatSlice(s, verb)\n\t\t}\n\tcase 's':\n\t\tst.formatSlice(s, verb)\n\t}\n}\n\n// formatSlice will format this StackTrace into the given buffer as a slice of\n// Frame, only valid when called with '%s' or '%v'.\nfunc (st StackTrace) formatSlice(s fmt.State, verb rune) {\n\tio.WriteString(s, \"[\")\n\tfor i, f := range st {\n\t\tif i > 0 {\n\t\t\tio.WriteString(s, \" \")\n\t\t}\n\t\tf.Format(s, verb)\n\t}\n\tio.WriteString(s, \"]\")\n}\n\n// stack represents a stack of program counters.\ntype stack []uintptr\n\nfunc (s *stack) Format(st fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tswitch {\n\t\tcase st.Flag('+'):\n\t\t\tfor _, pc := range *s {\n\t\t\t\tf := Frame(pc)\n\t\t\t\tfmt.Fprintf(st, \"\\n%+v\", f)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (s *stack) StackTrace() StackTrace {\n\tf := make([]Frame, len(*s))\n\tfor i := 0; i < len(f); i++ {\n\t\tf[i] = Frame((*s)[i])\n\t}\n\treturn f\n}\n\nfunc callers() *stack {\n\tconst depth = 32\n\tvar pcs [depth]uintptr\n\tn := runtime.Callers(3, pcs[:])\n\tvar st stack = pcs[0:n]\n\treturn &st\n}\n\n// funcname removes the path prefix component of a function's name reported by func.Name().\nfunc funcname(name string) string {\n\ti := strings.LastIndex(name, \"/\")\n\tname = name[i+1:]\n\ti = strings.Index(name, \".\")\n\treturn name[i+1:]\n}\n"
  },
  {
    "path": "vendor/github.com/pmezard/go-difflib/LICENSE",
    "content": "Copyright (c) 2013, Patrick Mezard\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n    Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n    The names of its contributors may not be used to endorse or promote\nproducts derived from this software without specific prior written\npermission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/pmezard/go-difflib/difflib/difflib.go",
    "content": "// Package difflib is a partial port of Python difflib module.\n//\n// It provides tools to compare sequences of strings and generate textual diffs.\n//\n// The following class and functions have been ported:\n//\n// - SequenceMatcher\n//\n// - unified_diff\n//\n// - context_diff\n//\n// Getting unified diffs was the main goal of the port. Keep in mind this code\n// is mostly suitable to output text differences in a human friendly way, there\n// are no guarantees generated diffs are consumable by patch(1).\npackage difflib\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n)\n\nfunc min(a, b int) int {\n\tif a < b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc max(a, b int) int {\n\tif a > b {\n\t\treturn a\n\t}\n\treturn b\n}\n\nfunc calculateRatio(matches, length int) float64 {\n\tif length > 0 {\n\t\treturn 2.0 * float64(matches) / float64(length)\n\t}\n\treturn 1.0\n}\n\ntype Match struct {\n\tA    int\n\tB    int\n\tSize int\n}\n\ntype OpCode struct {\n\tTag byte\n\tI1  int\n\tI2  int\n\tJ1  int\n\tJ2  int\n}\n\n// SequenceMatcher compares sequence of strings. The basic\n// algorithm predates, and is a little fancier than, an algorithm\n// published in the late 1980's by Ratcliff and Obershelp under the\n// hyperbolic name \"gestalt pattern matching\".  The basic idea is to find\n// the longest contiguous matching subsequence that contains no \"junk\"\n// elements (R-O doesn't address junk).  The same idea is then applied\n// recursively to the pieces of the sequences to the left and to the right\n// of the matching subsequence.  This does not yield minimal edit\n// sequences, but does tend to yield matches that \"look right\" to people.\n//\n// SequenceMatcher tries to compute a \"human-friendly diff\" between two\n// sequences.  Unlike e.g. UNIX(tm) diff, the fundamental notion is the\n// longest *contiguous* & junk-free matching subsequence.  That's what\n// catches peoples' eyes.  The Windows(tm) windiff has another interesting\n// notion, pairing up elements that appear uniquely in each sequence.\n// That, and the method here, appear to yield more intuitive difference\n// reports than does diff.  This method appears to be the least vulnerable\n// to synching up on blocks of \"junk lines\", though (like blank lines in\n// ordinary text files, or maybe \"<P>\" lines in HTML files).  That may be\n// because this is the only method of the 3 that has a *concept* of\n// \"junk\" <wink>.\n//\n// Timing:  Basic R-O is cubic time worst case and quadratic time expected\n// case.  SequenceMatcher is quadratic time for the worst case and has\n// expected-case behavior dependent in a complicated way on how many\n// elements the sequences have in common; best case time is linear.\ntype SequenceMatcher struct {\n\ta              []string\n\tb              []string\n\tb2j            map[string][]int\n\tIsJunk         func(string) bool\n\tautoJunk       bool\n\tbJunk          map[string]struct{}\n\tmatchingBlocks []Match\n\tfullBCount     map[string]int\n\tbPopular       map[string]struct{}\n\topCodes        []OpCode\n}\n\nfunc NewMatcher(a, b []string) *SequenceMatcher {\n\tm := SequenceMatcher{autoJunk: true}\n\tm.SetSeqs(a, b)\n\treturn &m\n}\n\nfunc NewMatcherWithJunk(a, b []string, autoJunk bool,\n\tisJunk func(string) bool) *SequenceMatcher {\n\n\tm := SequenceMatcher{IsJunk: isJunk, autoJunk: autoJunk}\n\tm.SetSeqs(a, b)\n\treturn &m\n}\n\n// Set two sequences to be compared.\nfunc (m *SequenceMatcher) SetSeqs(a, b []string) {\n\tm.SetSeq1(a)\n\tm.SetSeq2(b)\n}\n\n// Set the first sequence to be compared. The second sequence to be compared is\n// not changed.\n//\n// SequenceMatcher computes and caches detailed information about the second\n// sequence, so if you want to compare one sequence S against many sequences,\n// use .SetSeq2(s) once and call .SetSeq1(x) repeatedly for each of the other\n// sequences.\n//\n// See also SetSeqs() and SetSeq2().\nfunc (m *SequenceMatcher) SetSeq1(a []string) {\n\tif &a == &m.a {\n\t\treturn\n\t}\n\tm.a = a\n\tm.matchingBlocks = nil\n\tm.opCodes = nil\n}\n\n// Set the second sequence to be compared. The first sequence to be compared is\n// not changed.\nfunc (m *SequenceMatcher) SetSeq2(b []string) {\n\tif &b == &m.b {\n\t\treturn\n\t}\n\tm.b = b\n\tm.matchingBlocks = nil\n\tm.opCodes = nil\n\tm.fullBCount = nil\n\tm.chainB()\n}\n\nfunc (m *SequenceMatcher) chainB() {\n\t// Populate line -> index mapping\n\tb2j := map[string][]int{}\n\tfor i, s := range m.b {\n\t\tindices := b2j[s]\n\t\tindices = append(indices, i)\n\t\tb2j[s] = indices\n\t}\n\n\t// Purge junk elements\n\tm.bJunk = map[string]struct{}{}\n\tif m.IsJunk != nil {\n\t\tjunk := m.bJunk\n\t\tfor s, _ := range b2j {\n\t\t\tif m.IsJunk(s) {\n\t\t\t\tjunk[s] = struct{}{}\n\t\t\t}\n\t\t}\n\t\tfor s, _ := range junk {\n\t\t\tdelete(b2j, s)\n\t\t}\n\t}\n\n\t// Purge remaining popular elements\n\tpopular := map[string]struct{}{}\n\tn := len(m.b)\n\tif m.autoJunk && n >= 200 {\n\t\tntest := n/100 + 1\n\t\tfor s, indices := range b2j {\n\t\t\tif len(indices) > ntest {\n\t\t\t\tpopular[s] = struct{}{}\n\t\t\t}\n\t\t}\n\t\tfor s, _ := range popular {\n\t\t\tdelete(b2j, s)\n\t\t}\n\t}\n\tm.bPopular = popular\n\tm.b2j = b2j\n}\n\nfunc (m *SequenceMatcher) isBJunk(s string) bool {\n\t_, ok := m.bJunk[s]\n\treturn ok\n}\n\n// Find longest matching block in a[alo:ahi] and b[blo:bhi].\n//\n// If IsJunk is not defined:\n//\n// Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where\n//     alo <= i <= i+k <= ahi\n//     blo <= j <= j+k <= bhi\n// and for all (i',j',k') meeting those conditions,\n//     k >= k'\n//     i <= i'\n//     and if i == i', j <= j'\n//\n// In other words, of all maximal matching blocks, return one that\n// starts earliest in a, and of all those maximal matching blocks that\n// start earliest in a, return the one that starts earliest in b.\n//\n// If IsJunk is defined, first the longest matching block is\n// determined as above, but with the additional restriction that no\n// junk element appears in the block.  Then that block is extended as\n// far as possible by matching (only) junk elements on both sides.  So\n// the resulting block never matches on junk except as identical junk\n// happens to be adjacent to an \"interesting\" match.\n//\n// If no blocks match, return (alo, blo, 0).\nfunc (m *SequenceMatcher) findLongestMatch(alo, ahi, blo, bhi int) Match {\n\t// CAUTION:  stripping common prefix or suffix would be incorrect.\n\t// E.g.,\n\t//    ab\n\t//    acab\n\t// Longest matching block is \"ab\", but if common prefix is\n\t// stripped, it's \"a\" (tied with \"b\").  UNIX(tm) diff does so\n\t// strip, so ends up claiming that ab is changed to acab by\n\t// inserting \"ca\" in the middle.  That's minimal but unintuitive:\n\t// \"it's obvious\" that someone inserted \"ac\" at the front.\n\t// Windiff ends up at the same place as diff, but by pairing up\n\t// the unique 'b's and then matching the first two 'a's.\n\tbesti, bestj, bestsize := alo, blo, 0\n\n\t// find longest junk-free match\n\t// during an iteration of the loop, j2len[j] = length of longest\n\t// junk-free match ending with a[i-1] and b[j]\n\tj2len := map[int]int{}\n\tfor i := alo; i != ahi; i++ {\n\t\t// look at all instances of a[i] in b; note that because\n\t\t// b2j has no junk keys, the loop is skipped if a[i] is junk\n\t\tnewj2len := map[int]int{}\n\t\tfor _, j := range m.b2j[m.a[i]] {\n\t\t\t// a[i] matches b[j]\n\t\t\tif j < blo {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif j >= bhi {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tk := j2len[j-1] + 1\n\t\t\tnewj2len[j] = k\n\t\t\tif k > bestsize {\n\t\t\t\tbesti, bestj, bestsize = i-k+1, j-k+1, k\n\t\t\t}\n\t\t}\n\t\tj2len = newj2len\n\t}\n\n\t// Extend the best by non-junk elements on each end.  In particular,\n\t// \"popular\" non-junk elements aren't in b2j, which greatly speeds\n\t// the inner loop above, but also means \"the best\" match so far\n\t// doesn't contain any junk *or* popular non-junk elements.\n\tfor besti > alo && bestj > blo && !m.isBJunk(m.b[bestj-1]) &&\n\t\tm.a[besti-1] == m.b[bestj-1] {\n\t\tbesti, bestj, bestsize = besti-1, bestj-1, bestsize+1\n\t}\n\tfor besti+bestsize < ahi && bestj+bestsize < bhi &&\n\t\t!m.isBJunk(m.b[bestj+bestsize]) &&\n\t\tm.a[besti+bestsize] == m.b[bestj+bestsize] {\n\t\tbestsize += 1\n\t}\n\n\t// Now that we have a wholly interesting match (albeit possibly\n\t// empty!), we may as well suck up the matching junk on each\n\t// side of it too.  Can't think of a good reason not to, and it\n\t// saves post-processing the (possibly considerable) expense of\n\t// figuring out what to do with it.  In the case of an empty\n\t// interesting match, this is clearly the right thing to do,\n\t// because no other kind of match is possible in the regions.\n\tfor besti > alo && bestj > blo && m.isBJunk(m.b[bestj-1]) &&\n\t\tm.a[besti-1] == m.b[bestj-1] {\n\t\tbesti, bestj, bestsize = besti-1, bestj-1, bestsize+1\n\t}\n\tfor besti+bestsize < ahi && bestj+bestsize < bhi &&\n\t\tm.isBJunk(m.b[bestj+bestsize]) &&\n\t\tm.a[besti+bestsize] == m.b[bestj+bestsize] {\n\t\tbestsize += 1\n\t}\n\n\treturn Match{A: besti, B: bestj, Size: bestsize}\n}\n\n// Return list of triples describing matching subsequences.\n//\n// Each triple is of the form (i, j, n), and means that\n// a[i:i+n] == b[j:j+n].  The triples are monotonically increasing in\n// i and in j. It's also guaranteed that if (i, j, n) and (i', j', n') are\n// adjacent triples in the list, and the second is not the last triple in the\n// list, then i+n != i' or j+n != j'. IOW, adjacent triples never describe\n// adjacent equal blocks.\n//\n// The last triple is a dummy, (len(a), len(b), 0), and is the only\n// triple with n==0.\nfunc (m *SequenceMatcher) GetMatchingBlocks() []Match {\n\tif m.matchingBlocks != nil {\n\t\treturn m.matchingBlocks\n\t}\n\n\tvar matchBlocks func(alo, ahi, blo, bhi int, matched []Match) []Match\n\tmatchBlocks = func(alo, ahi, blo, bhi int, matched []Match) []Match {\n\t\tmatch := m.findLongestMatch(alo, ahi, blo, bhi)\n\t\ti, j, k := match.A, match.B, match.Size\n\t\tif match.Size > 0 {\n\t\t\tif alo < i && blo < j {\n\t\t\t\tmatched = matchBlocks(alo, i, blo, j, matched)\n\t\t\t}\n\t\t\tmatched = append(matched, match)\n\t\t\tif i+k < ahi && j+k < bhi {\n\t\t\t\tmatched = matchBlocks(i+k, ahi, j+k, bhi, matched)\n\t\t\t}\n\t\t}\n\t\treturn matched\n\t}\n\tmatched := matchBlocks(0, len(m.a), 0, len(m.b), nil)\n\n\t// It's possible that we have adjacent equal blocks in the\n\t// matching_blocks list now.\n\tnonAdjacent := []Match{}\n\ti1, j1, k1 := 0, 0, 0\n\tfor _, b := range matched {\n\t\t// Is this block adjacent to i1, j1, k1?\n\t\ti2, j2, k2 := b.A, b.B, b.Size\n\t\tif i1+k1 == i2 && j1+k1 == j2 {\n\t\t\t// Yes, so collapse them -- this just increases the length of\n\t\t\t// the first block by the length of the second, and the first\n\t\t\t// block so lengthened remains the block to compare against.\n\t\t\tk1 += k2\n\t\t} else {\n\t\t\t// Not adjacent.  Remember the first block (k1==0 means it's\n\t\t\t// the dummy we started with), and make the second block the\n\t\t\t// new block to compare against.\n\t\t\tif k1 > 0 {\n\t\t\t\tnonAdjacent = append(nonAdjacent, Match{i1, j1, k1})\n\t\t\t}\n\t\t\ti1, j1, k1 = i2, j2, k2\n\t\t}\n\t}\n\tif k1 > 0 {\n\t\tnonAdjacent = append(nonAdjacent, Match{i1, j1, k1})\n\t}\n\n\tnonAdjacent = append(nonAdjacent, Match{len(m.a), len(m.b), 0})\n\tm.matchingBlocks = nonAdjacent\n\treturn m.matchingBlocks\n}\n\n// Return list of 5-tuples describing how to turn a into b.\n//\n// Each tuple is of the form (tag, i1, i2, j1, j2).  The first tuple\n// has i1 == j1 == 0, and remaining tuples have i1 == the i2 from the\n// tuple preceding it, and likewise for j1 == the previous j2.\n//\n// The tags are characters, with these meanings:\n//\n// 'r' (replace):  a[i1:i2] should be replaced by b[j1:j2]\n//\n// 'd' (delete):   a[i1:i2] should be deleted, j1==j2 in this case.\n//\n// 'i' (insert):   b[j1:j2] should be inserted at a[i1:i1], i1==i2 in this case.\n//\n// 'e' (equal):    a[i1:i2] == b[j1:j2]\nfunc (m *SequenceMatcher) GetOpCodes() []OpCode {\n\tif m.opCodes != nil {\n\t\treturn m.opCodes\n\t}\n\ti, j := 0, 0\n\tmatching := m.GetMatchingBlocks()\n\topCodes := make([]OpCode, 0, len(matching))\n\tfor _, m := range matching {\n\t\t//  invariant:  we've pumped out correct diffs to change\n\t\t//  a[:i] into b[:j], and the next matching block is\n\t\t//  a[ai:ai+size] == b[bj:bj+size]. So we need to pump\n\t\t//  out a diff to change a[i:ai] into b[j:bj], pump out\n\t\t//  the matching block, and move (i,j) beyond the match\n\t\tai, bj, size := m.A, m.B, m.Size\n\t\ttag := byte(0)\n\t\tif i < ai && j < bj {\n\t\t\ttag = 'r'\n\t\t} else if i < ai {\n\t\t\ttag = 'd'\n\t\t} else if j < bj {\n\t\t\ttag = 'i'\n\t\t}\n\t\tif tag > 0 {\n\t\t\topCodes = append(opCodes, OpCode{tag, i, ai, j, bj})\n\t\t}\n\t\ti, j = ai+size, bj+size\n\t\t// the list of matching blocks is terminated by a\n\t\t// sentinel with size 0\n\t\tif size > 0 {\n\t\t\topCodes = append(opCodes, OpCode{'e', ai, i, bj, j})\n\t\t}\n\t}\n\tm.opCodes = opCodes\n\treturn m.opCodes\n}\n\n// Isolate change clusters by eliminating ranges with no changes.\n//\n// Return a generator of groups with up to n lines of context.\n// Each group is in the same format as returned by GetOpCodes().\nfunc (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode {\n\tif n < 0 {\n\t\tn = 3\n\t}\n\tcodes := m.GetOpCodes()\n\tif len(codes) == 0 {\n\t\tcodes = []OpCode{OpCode{'e', 0, 1, 0, 1}}\n\t}\n\t// Fixup leading and trailing groups if they show no changes.\n\tif codes[0].Tag == 'e' {\n\t\tc := codes[0]\n\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\tcodes[0] = OpCode{c.Tag, max(i1, i2-n), i2, max(j1, j2-n), j2}\n\t}\n\tif codes[len(codes)-1].Tag == 'e' {\n\t\tc := codes[len(codes)-1]\n\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\tcodes[len(codes)-1] = OpCode{c.Tag, i1, min(i2, i1+n), j1, min(j2, j1+n)}\n\t}\n\tnn := n + n\n\tgroups := [][]OpCode{}\n\tgroup := []OpCode{}\n\tfor _, c := range codes {\n\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\t// End the current group and start a new one whenever\n\t\t// there is a large range with no changes.\n\t\tif c.Tag == 'e' && i2-i1 > nn {\n\t\t\tgroup = append(group, OpCode{c.Tag, i1, min(i2, i1+n),\n\t\t\t\tj1, min(j2, j1+n)})\n\t\t\tgroups = append(groups, group)\n\t\t\tgroup = []OpCode{}\n\t\t\ti1, j1 = max(i1, i2-n), max(j1, j2-n)\n\t\t}\n\t\tgroup = append(group, OpCode{c.Tag, i1, i2, j1, j2})\n\t}\n\tif len(group) > 0 && !(len(group) == 1 && group[0].Tag == 'e') {\n\t\tgroups = append(groups, group)\n\t}\n\treturn groups\n}\n\n// Return a measure of the sequences' similarity (float in [0,1]).\n//\n// Where T is the total number of elements in both sequences, and\n// M is the number of matches, this is 2.0*M / T.\n// Note that this is 1 if the sequences are identical, and 0 if\n// they have nothing in common.\n//\n// .Ratio() is expensive to compute if you haven't already computed\n// .GetMatchingBlocks() or .GetOpCodes(), in which case you may\n// want to try .QuickRatio() or .RealQuickRation() first to get an\n// upper bound.\nfunc (m *SequenceMatcher) Ratio() float64 {\n\tmatches := 0\n\tfor _, m := range m.GetMatchingBlocks() {\n\t\tmatches += m.Size\n\t}\n\treturn calculateRatio(matches, len(m.a)+len(m.b))\n}\n\n// Return an upper bound on ratio() relatively quickly.\n//\n// This isn't defined beyond that it is an upper bound on .Ratio(), and\n// is faster to compute.\nfunc (m *SequenceMatcher) QuickRatio() float64 {\n\t// viewing a and b as multisets, set matches to the cardinality\n\t// of their intersection; this counts the number of matches\n\t// without regard to order, so is clearly an upper bound\n\tif m.fullBCount == nil {\n\t\tm.fullBCount = map[string]int{}\n\t\tfor _, s := range m.b {\n\t\t\tm.fullBCount[s] = m.fullBCount[s] + 1\n\t\t}\n\t}\n\n\t// avail[x] is the number of times x appears in 'b' less the\n\t// number of times we've seen it in 'a' so far ... kinda\n\tavail := map[string]int{}\n\tmatches := 0\n\tfor _, s := range m.a {\n\t\tn, ok := avail[s]\n\t\tif !ok {\n\t\t\tn = m.fullBCount[s]\n\t\t}\n\t\tavail[s] = n - 1\n\t\tif n > 0 {\n\t\t\tmatches += 1\n\t\t}\n\t}\n\treturn calculateRatio(matches, len(m.a)+len(m.b))\n}\n\n// Return an upper bound on ratio() very quickly.\n//\n// This isn't defined beyond that it is an upper bound on .Ratio(), and\n// is faster to compute than either .Ratio() or .QuickRatio().\nfunc (m *SequenceMatcher) RealQuickRatio() float64 {\n\tla, lb := len(m.a), len(m.b)\n\treturn calculateRatio(min(la, lb), la+lb)\n}\n\n// Convert range to the \"ed\" format\nfunc formatRangeUnified(start, stop int) string {\n\t// Per the diff spec at http://www.unix.org/single_unix_specification/\n\tbeginning := start + 1 // lines start numbering with one\n\tlength := stop - start\n\tif length == 1 {\n\t\treturn fmt.Sprintf(\"%d\", beginning)\n\t}\n\tif length == 0 {\n\t\tbeginning -= 1 // empty ranges begin at line just before the range\n\t}\n\treturn fmt.Sprintf(\"%d,%d\", beginning, length)\n}\n\n// Unified diff parameters\ntype UnifiedDiff struct {\n\tA        []string // First sequence lines\n\tFromFile string   // First file name\n\tFromDate string   // First file time\n\tB        []string // Second sequence lines\n\tToFile   string   // Second file name\n\tToDate   string   // Second file time\n\tEol      string   // Headers end of line, defaults to LF\n\tContext  int      // Number of context lines\n}\n\n// Compare two sequences of lines; generate the delta as a unified diff.\n//\n// Unified diffs are a compact way of showing line changes and a few\n// lines of context.  The number of context lines is set by 'n' which\n// defaults to three.\n//\n// By default, the diff control lines (those with ---, +++, or @@) are\n// created with a trailing newline.  This is helpful so that inputs\n// created from file.readlines() result in diffs that are suitable for\n// file.writelines() since both the inputs and outputs have trailing\n// newlines.\n//\n// For inputs that do not have trailing newlines, set the lineterm\n// argument to \"\" so that the output will be uniformly newline free.\n//\n// The unidiff format normally has a header for filenames and modification\n// times.  Any or all of these may be specified using strings for\n// 'fromfile', 'tofile', 'fromfiledate', and 'tofiledate'.\n// The modification times are normally expressed in the ISO 8601 format.\nfunc WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error {\n\tbuf := bufio.NewWriter(writer)\n\tdefer buf.Flush()\n\twf := func(format string, args ...interface{}) error {\n\t\t_, err := buf.WriteString(fmt.Sprintf(format, args...))\n\t\treturn err\n\t}\n\tws := func(s string) error {\n\t\t_, err := buf.WriteString(s)\n\t\treturn err\n\t}\n\n\tif len(diff.Eol) == 0 {\n\t\tdiff.Eol = \"\\n\"\n\t}\n\n\tstarted := false\n\tm := NewMatcher(diff.A, diff.B)\n\tfor _, g := range m.GetGroupedOpCodes(diff.Context) {\n\t\tif !started {\n\t\t\tstarted = true\n\t\t\tfromDate := \"\"\n\t\t\tif len(diff.FromDate) > 0 {\n\t\t\t\tfromDate = \"\\t\" + diff.FromDate\n\t\t\t}\n\t\t\ttoDate := \"\"\n\t\t\tif len(diff.ToDate) > 0 {\n\t\t\t\ttoDate = \"\\t\" + diff.ToDate\n\t\t\t}\n\t\t\tif diff.FromFile != \"\" || diff.ToFile != \"\" {\n\t\t\t\terr := wf(\"--- %s%s%s\", diff.FromFile, fromDate, diff.Eol)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\terr = wf(\"+++ %s%s%s\", diff.ToFile, toDate, diff.Eol)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfirst, last := g[0], g[len(g)-1]\n\t\trange1 := formatRangeUnified(first.I1, last.I2)\n\t\trange2 := formatRangeUnified(first.J1, last.J2)\n\t\tif err := wf(\"@@ -%s +%s @@%s\", range1, range2, diff.Eol); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfor _, c := range g {\n\t\t\ti1, i2, j1, j2 := c.I1, c.I2, c.J1, c.J2\n\t\t\tif c.Tag == 'e' {\n\t\t\t\tfor _, line := range diff.A[i1:i2] {\n\t\t\t\t\tif err := ws(\" \" + line); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif c.Tag == 'r' || c.Tag == 'd' {\n\t\t\t\tfor _, line := range diff.A[i1:i2] {\n\t\t\t\t\tif err := ws(\"-\" + line); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif c.Tag == 'r' || c.Tag == 'i' {\n\t\t\t\tfor _, line := range diff.B[j1:j2] {\n\t\t\t\t\tif err := ws(\"+\" + line); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// Like WriteUnifiedDiff but returns the diff a string.\nfunc GetUnifiedDiffString(diff UnifiedDiff) (string, error) {\n\tw := &bytes.Buffer{}\n\terr := WriteUnifiedDiff(w, diff)\n\treturn string(w.Bytes()), err\n}\n\n// Convert range to the \"ed\" format.\nfunc formatRangeContext(start, stop int) string {\n\t// Per the diff spec at http://www.unix.org/single_unix_specification/\n\tbeginning := start + 1 // lines start numbering with one\n\tlength := stop - start\n\tif length == 0 {\n\t\tbeginning -= 1 // empty ranges begin at line just before the range\n\t}\n\tif length <= 1 {\n\t\treturn fmt.Sprintf(\"%d\", beginning)\n\t}\n\treturn fmt.Sprintf(\"%d,%d\", beginning, beginning+length-1)\n}\n\ntype ContextDiff UnifiedDiff\n\n// Compare two sequences of lines; generate the delta as a context diff.\n//\n// Context diffs are a compact way of showing line changes and a few\n// lines of context. The number of context lines is set by diff.Context\n// which defaults to three.\n//\n// By default, the diff control lines (those with *** or ---) are\n// created with a trailing newline.\n//\n// For inputs that do not have trailing newlines, set the diff.Eol\n// argument to \"\" so that the output will be uniformly newline free.\n//\n// The context diff format normally has a header for filenames and\n// modification times.  Any or all of these may be specified using\n// strings for diff.FromFile, diff.ToFile, diff.FromDate, diff.ToDate.\n// The modification times are normally expressed in the ISO 8601 format.\n// If not specified, the strings default to blanks.\nfunc WriteContextDiff(writer io.Writer, diff ContextDiff) error {\n\tbuf := bufio.NewWriter(writer)\n\tdefer buf.Flush()\n\tvar diffErr error\n\twf := func(format string, args ...interface{}) {\n\t\t_, err := buf.WriteString(fmt.Sprintf(format, args...))\n\t\tif diffErr == nil && err != nil {\n\t\t\tdiffErr = err\n\t\t}\n\t}\n\tws := func(s string) {\n\t\t_, err := buf.WriteString(s)\n\t\tif diffErr == nil && err != nil {\n\t\t\tdiffErr = err\n\t\t}\n\t}\n\n\tif len(diff.Eol) == 0 {\n\t\tdiff.Eol = \"\\n\"\n\t}\n\n\tprefix := map[byte]string{\n\t\t'i': \"+ \",\n\t\t'd': \"- \",\n\t\t'r': \"! \",\n\t\t'e': \"  \",\n\t}\n\n\tstarted := false\n\tm := NewMatcher(diff.A, diff.B)\n\tfor _, g := range m.GetGroupedOpCodes(diff.Context) {\n\t\tif !started {\n\t\t\tstarted = true\n\t\t\tfromDate := \"\"\n\t\t\tif len(diff.FromDate) > 0 {\n\t\t\t\tfromDate = \"\\t\" + diff.FromDate\n\t\t\t}\n\t\t\ttoDate := \"\"\n\t\t\tif len(diff.ToDate) > 0 {\n\t\t\t\ttoDate = \"\\t\" + diff.ToDate\n\t\t\t}\n\t\t\tif diff.FromFile != \"\" || diff.ToFile != \"\" {\n\t\t\t\twf(\"*** %s%s%s\", diff.FromFile, fromDate, diff.Eol)\n\t\t\t\twf(\"--- %s%s%s\", diff.ToFile, toDate, diff.Eol)\n\t\t\t}\n\t\t}\n\n\t\tfirst, last := g[0], g[len(g)-1]\n\t\tws(\"***************\" + diff.Eol)\n\n\t\trange1 := formatRangeContext(first.I1, last.I2)\n\t\twf(\"*** %s ****%s\", range1, diff.Eol)\n\t\tfor _, c := range g {\n\t\t\tif c.Tag == 'r' || c.Tag == 'd' {\n\t\t\t\tfor _, cc := range g {\n\t\t\t\t\tif cc.Tag == 'i' {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tfor _, line := range diff.A[cc.I1:cc.I2] {\n\t\t\t\t\t\tws(prefix[cc.Tag] + line)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\trange2 := formatRangeContext(first.J1, last.J2)\n\t\twf(\"--- %s ----%s\", range2, diff.Eol)\n\t\tfor _, c := range g {\n\t\t\tif c.Tag == 'r' || c.Tag == 'i' {\n\t\t\t\tfor _, cc := range g {\n\t\t\t\t\tif cc.Tag == 'd' {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tfor _, line := range diff.B[cc.J1:cc.J2] {\n\t\t\t\t\t\tws(prefix[cc.Tag] + line)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\treturn diffErr\n}\n\n// Like WriteContextDiff but returns the diff a string.\nfunc GetContextDiffString(diff ContextDiff) (string, error) {\n\tw := &bytes.Buffer{}\n\terr := WriteContextDiff(w, diff)\n\treturn string(w.Bytes()), err\n}\n\n// Split a string on \"\\n\" while preserving them. The output can be used\n// as input for UnifiedDiff and ContextDiff structures.\nfunc SplitLines(s string) []string {\n\tlines := strings.SplitAfter(s, \"\\n\")\n\tlines[len(lines)-1] += \"\\n\"\n\treturn lines\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/LICENSE.txt",
    "content": "MIT License\n\nCopyright (c) 2019 Oliver Kuederle\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/README.md",
    "content": "# Unicode Text Segmentation for Go\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/rivo/uniseg.svg)](https://pkg.go.dev/github.com/rivo/uniseg)\n[![Go Report](https://img.shields.io/badge/go%20report-A%2B-brightgreen.svg)](https://goreportcard.com/report/github.com/rivo/uniseg)\n\nThis Go package implements Unicode Text Segmentation according to [Unicode Standard Annex #29](https://unicode.org/reports/tr29/), Unicode Line Breaking according to [Unicode Standard Annex #14](https://unicode.org/reports/tr14/) (Unicode version 15.0.0), and monospace font string width calculation similar to [wcwidth](https://man7.org/linux/man-pages/man3/wcwidth.3.html).\n\n## Background\n\n### Grapheme Clusters\n\nIn Go, [strings are read-only slices of bytes](https://go.dev/blog/strings). They can be turned into Unicode code points using the `for` loop or by casting: `[]rune(str)`. However, multiple code points may be combined into one user-perceived character or what the Unicode specification calls \"grapheme cluster\". Here are some examples:\n\n|String|Bytes (UTF-8)|Code points (runes)|Grapheme clusters|\n|-|-|-|-|\n|Käse|6 bytes: `4b 61 cc 88 73 65`|5 code points: `4b 61 308 73 65`|4 clusters: `[4b],[61 308],[73],[65]`|\n|🏳️‍🌈|14 bytes: `f0 9f 8f b3 ef b8 8f e2 80 8d f0 9f 8c 88`|4 code points: `1f3f3 fe0f 200d 1f308`|1 cluster: `[1f3f3 fe0f 200d 1f308]`|\n|🇩🇪|8 bytes: `f0 9f 87 a9 f0 9f 87 aa`|2 code points: `1f1e9 1f1ea`|1 cluster: `[1f1e9 1f1ea]`|\n\nThis package provides tools to iterate over these grapheme clusters. This may be used to determine the number of user-perceived characters, to split strings in their intended places, or to extract individual characters which form a unit.\n\n### Word Boundaries\n\nWord boundaries are used in a number of different contexts. The most familiar ones are selection (double-click mouse selection), cursor movement (\"move to next word\" control-arrow keys), and the dialog option \"Whole Word Search\" for search and replace. They are also used in database queries, to determine whether elements are within a certain number of words of one another. Searching may also use word boundaries in determining matching items. This package provides tools to determine word boundaries within strings.\n\n### Sentence Boundaries\n\nSentence boundaries are often used for triple-click or some other method of selecting or iterating through blocks of text that are larger than single words. They are also used to determine whether words occur within the same sentence in database queries. This package provides tools to determine sentence boundaries within strings.\n\n### Line Breaking\n\nLine breaking, also known as word wrapping, is the process of breaking a section of text into lines such that it will fit in the available width of a page, window or other display area. This package provides tools to determine where a string may or may not be broken and where it must be broken (for example after newline characters).\n\n### Monospace Width\n\nMost terminals or text displays / text editors using a monospace font (for example source code editors) use a fixed width for each character. Some characters such as emojis or characters found in Asian and other languages may take up more than one character cell. This package provides tools to determine the number of cells a string will take up when displayed in a monospace font. See [here](https://pkg.go.dev/github.com/rivo/uniseg#hdr-Monospace_Width) for more information.\n\n## Installation\n\n```bash\ngo get github.com/rivo/uniseg\n```\n\n## Examples\n\n### Counting Characters in a String\n\n```go\nn := uniseg.GraphemeClusterCount(\"🇩🇪🏳️‍🌈\")\nfmt.Println(n)\n// 2\n```\n\n### Calculating the Monospace String Width\n\n```go\nwidth := uniseg.StringWidth(\"🇩🇪🏳️‍🌈!\")\nfmt.Println(width)\n// 5\n```\n\n### Using the [`Graphemes`](https://pkg.go.dev/github.com/rivo/uniseg#Graphemes) Class\n\nThis is the most convenient method of iterating over grapheme clusters:\n\n```go\ngr := uniseg.NewGraphemes(\"👍🏼!\")\nfor gr.Next() {\n\tfmt.Printf(\"%x \", gr.Runes())\n}\n// [1f44d 1f3fc] [21]\n```\n\n### Using the [`Step`](https://pkg.go.dev/github.com/rivo/uniseg#Step) or [`StepString`](https://pkg.go.dev/github.com/rivo/uniseg#StepString) Function\n\nThis avoids allocating a new `Graphemes` object but it requires the handling of states and boundaries:\n\n```go\nstr := \"🇩🇪🏳️‍🌈\"\nstate := -1\nvar c string\nfor len(str) > 0 {\n\tc, str, _, state = uniseg.StepString(str, state)\n\tfmt.Printf(\"%x \", []rune(c))\n}\n// [1f1e9 1f1ea] [1f3f3 fe0f 200d 1f308]\n```\n\n### Advanced Examples\n\nThe [`Graphemes`](https://pkg.go.dev/github.com/rivo/uniseg#Graphemes) class offers the most convenient way to access all functionality of this package. But in some cases, it may be better to use the specialized functions directly. For example, if you're only interested in word segmentation, use [`FirstWord`](https://pkg.go.dev/github.com/rivo/uniseg#FirstWord) or [`FirstWordInString`](https://pkg.go.dev/github.com/rivo/uniseg#FirstWordInString):\n\n```go\nstr := \"Hello, world!\"\nstate := -1\nvar c string\nfor len(str) > 0 {\n\tc, str, state = uniseg.FirstWordInString(str, state)\n\tfmt.Printf(\"(%s)\\n\", c)\n}\n// (Hello)\n// (,)\n// ( )\n// (world)\n// (!)\n```\n\nSimilarly, use\n\n- [`FirstGraphemeCluster`](https://pkg.go.dev/github.com/rivo/uniseg#FirstGraphemeCluster) or [`FirstGraphemeClusterInString`](https://pkg.go.dev/github.com/rivo/uniseg#FirstGraphemeClusterInString) for grapheme cluster determination only,\n- [`FirstSentence`](https://pkg.go.dev/github.com/rivo/uniseg#FirstSentence) or [`FirstSentenceInString`](https://pkg.go.dev/github.com/rivo/uniseg#FirstSentenceInString) for sentence segmentation only, and\n- [`FirstLineSegment`](https://pkg.go.dev/github.com/rivo/uniseg#FirstLineSegment) or [`FirstLineSegmentInString`](https://pkg.go.dev/github.com/rivo/uniseg#FirstLineSegmentInString) for line breaking / word wrapping (although using [`Step`](https://pkg.go.dev/github.com/rivo/uniseg#Step) or [`StepString`](https://pkg.go.dev/github.com/rivo/uniseg#StepString) is preferred as it will observe grapheme cluster boundaries).\n\nIf you're only interested in the width of characters, use [`FirstGraphemeCluster`](https://pkg.go.dev/github.com/rivo/uniseg#FirstGraphemeCluster) or [`FirstGraphemeClusterInString`](https://pkg.go.dev/github.com/rivo/uniseg#FirstGraphemeClusterInString). It is much faster than using [`Step`](https://pkg.go.dev/github.com/rivo/uniseg#Step), [`StepString`](https://pkg.go.dev/github.com/rivo/uniseg#StepString), or the [`Graphemes`](https://pkg.go.dev/github.com/rivo/uniseg#Graphemes) class because it does not include the logic for word / sentence / line boundaries.\n\nFinally, if you need to reverse a string while preserving grapheme clusters, use [`ReverseString`](https://pkg.go.dev/github.com/rivo/uniseg#ReverseString):\n\n```go\nfmt.Println(uniseg.ReverseString(\"🇩🇪🏳️‍🌈\"))\n// 🏳️‍🌈🇩🇪\n```\n\n## Documentation\n\nRefer to https://pkg.go.dev/github.com/rivo/uniseg for the package's documentation.\n\n## Dependencies\n\nThis package does not depend on any packages outside the standard library.\n\n## Sponsor this Project\n\n[Become a Sponsor on GitHub](https://github.com/sponsors/rivo?metadata_source=uniseg_readme) to support this project!\n\n## Your Feedback\n\nAdd your issue here on GitHub, preferably before submitting any PR's. Feel free to get in touch if you have any questions."
  },
  {
    "path": "vendor/github.com/rivo/uniseg/doc.go",
    "content": "/*\nPackage uniseg implements Unicode Text Segmentation, Unicode Line Breaking, and\nstring width calculation for monospace fonts. Unicode Text Segmentation conforms\nto Unicode Standard Annex #29 (https://unicode.org/reports/tr29/) and Unicode\nLine Breaking conforms to Unicode Standard Annex #14\n(https://unicode.org/reports/tr14/).\n\nIn short, using this package, you can split a string into grapheme clusters\n(what people would usually refer to as a \"character\"), into words, and into\nsentences. Or, in its simplest case, this package allows you to count the number\nof characters in a string, especially when it contains complex characters such\nas emojis, combining characters, or characters from Asian, Arabic, Hebrew, or\nother languages. Additionally, you can use it to implement line breaking (or\n\"word wrapping\"), that is, to determine where text can be broken over to the\nnext line when the width of the line is not big enough to fit the entire text.\nFinally, you can use it to calculate the display width of a string for monospace\nfonts.\n\n# Getting Started\n\nIf you just want to count the number of characters in a string, you can use\n[GraphemeClusterCount]. If you want to determine the display width of a string,\nyou can use [StringWidth]. If you want to iterate over a string, you can use\n[Step], [StepString], or the [Graphemes] class (more convenient but less\nperformant). This will provide you with all information: grapheme clusters,\nword boundaries, sentence boundaries, line breaks, and monospace character\nwidths. The specialized functions [FirstGraphemeCluster],\n[FirstGraphemeClusterInString], [FirstWord], [FirstWordInString],\n[FirstSentence], and [FirstSentenceInString] can be used if only one type of\ninformation is needed.\n\n# Grapheme Clusters\n\nConsider the rainbow flag emoji: 🏳️‍🌈. On most modern systems, it appears as one\ncharacter. But its string representation actually has 14 bytes, so counting\nbytes (or using len(\"🏳️‍🌈\")) will not work as expected. Counting runes won't,\neither: The flag has 4 Unicode code points, thus 4 runes. The stdlib function\nutf8.RuneCountInString(\"🏳️‍🌈\") and len([]rune(\"🏳️‍🌈\")) will both return 4.\n\nThe [GraphemeClusterCount] function will return 1 for the rainbow flag emoji.\nThe Graphemes class and a variety of functions in this package will allow you to\nsplit strings into its grapheme clusters.\n\n# Word Boundaries\n\nWord boundaries are used in a number of different contexts. The most familiar\nones are selection (double-click mouse selection), cursor movement (\"move to\nnext word\" control-arrow keys), and the dialog option \"Whole Word Search\" for\nsearch and replace. This package provides methods for determining word\nboundaries.\n\n# Sentence Boundaries\n\nSentence boundaries are often used for triple-click or some other method of\nselecting or iterating through blocks of text that are larger than single words.\nThey are also used to determine whether words occur within the same sentence in\ndatabase queries. This package provides methods for determining sentence\nboundaries.\n\n# Line Breaking\n\nLine breaking, also known as word wrapping, is the process of breaking a section\nof text into lines such that it will fit in the available width of a page,\nwindow or other display area. This package provides methods to determine the\npositions in a string where a line must be broken, may be broken, or must not be\nbroken.\n\n# Monospace Width\n\nMonospace width, as referred to in this package, is the width of a string in a\nmonospace font. This is commonly used in terminal user interfaces or text\ndisplays or editors that don't support proportional fonts. A width of 1\ncorresponds to a single character cell. The C function [wcswidth()] and its\nimplementation in other programming languages is in widespread use for the same\npurpose. However, there is no standard for the calculation of such widths, and\nthis package differs from wcswidth() in a number of ways, presumably to generate\nmore visually pleasing results.\n\nTo start, we assume that every code point has a width of 1, with the following\nexceptions:\n\n  - Code points with grapheme cluster break properties Control, CR, LF, Extend,\n    and ZWJ have a width of 0.\n  - U+2E3A, Two-Em Dash, has a width of 3.\n  - U+2E3B, Three-Em Dash, has a width of 4.\n  - Characters with the East-Asian Width properties \"Fullwidth\" (F) and \"Wide\"\n    (W) have a width of 2. (Properties \"Ambiguous\" (A) and \"Neutral\" (N) both\n    have a width of 1.)\n  - Code points with grapheme cluster break property Regional Indicator have a\n    width of 2.\n  - Code points with grapheme cluster break property Extended Pictographic have\n    a width of 2, unless their Emoji Presentation flag is \"No\", in which case\n    the width is 1.\n\nFor Hangul grapheme clusters composed of conjoining Jamo and for Regional\nIndicators (flags), all code points except the first one have a width of 0. For\ngrapheme clusters starting with an Extended Pictographic, any additional code\npoint will force a total width of 2, except if the Variation Selector-15\n(U+FE0E) is included, in which case the total width is always 1. Grapheme\nclusters ending with Variation Selector-16 (U+FE0F) have a width of 2.\n\nNote that whether these widths appear correct depends on your application's\nrender engine, to which extent it conforms to the Unicode Standard, and its\nchoice of font.\n\n[wcswidth()]: https://man7.org/linux/man-pages/man3/wcswidth.3.html\n*/\npackage uniseg\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/eastasianwidth.go",
    "content": "// Code generated via go generate from gen_properties.go. DO NOT EDIT.\n\npackage uniseg\n\n// eastAsianWidth are taken from\n// https://www.unicode.org/Public/15.0.0/ucd/EastAsianWidth.txt\n// and\n// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt\n// (\"Extended_Pictographic\" only)\n// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode\n// license agreement.\nvar eastAsianWidth = [][3]int{\n\t{0x0000, 0x001F, prN},     // Cc    [32] <control-0000>..<control-001F>\n\t{0x0020, 0x0020, prNa},    // Zs         SPACE\n\t{0x0021, 0x0023, prNa},    // Po     [3] EXCLAMATION MARK..NUMBER SIGN\n\t{0x0024, 0x0024, prNa},    // Sc         DOLLAR SIGN\n\t{0x0025, 0x0027, prNa},    // Po     [3] PERCENT SIGN..APOSTROPHE\n\t{0x0028, 0x0028, prNa},    // Ps         LEFT PARENTHESIS\n\t{0x0029, 0x0029, prNa},    // Pe         RIGHT PARENTHESIS\n\t{0x002A, 0x002A, prNa},    // Po         ASTERISK\n\t{0x002B, 0x002B, prNa},    // Sm         PLUS SIGN\n\t{0x002C, 0x002C, prNa},    // Po         COMMA\n\t{0x002D, 0x002D, prNa},    // Pd         HYPHEN-MINUS\n\t{0x002E, 0x002F, prNa},    // Po     [2] FULL STOP..SOLIDUS\n\t{0x0030, 0x0039, prNa},    // Nd    [10] DIGIT ZERO..DIGIT NINE\n\t{0x003A, 0x003B, prNa},    // Po     [2] COLON..SEMICOLON\n\t{0x003C, 0x003E, prNa},    // Sm     [3] LESS-THAN SIGN..GREATER-THAN SIGN\n\t{0x003F, 0x0040, prNa},    // Po     [2] QUESTION MARK..COMMERCIAL AT\n\t{0x0041, 0x005A, prNa},    // Lu    [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z\n\t{0x005B, 0x005B, prNa},    // Ps         LEFT SQUARE BRACKET\n\t{0x005C, 0x005C, prNa},    // Po         REVERSE SOLIDUS\n\t{0x005D, 0x005D, prNa},    // Pe         RIGHT SQUARE BRACKET\n\t{0x005E, 0x005E, prNa},    // Sk         CIRCUMFLEX ACCENT\n\t{0x005F, 0x005F, prNa},    // Pc         LOW LINE\n\t{0x0060, 0x0060, prNa},    // Sk         GRAVE ACCENT\n\t{0x0061, 0x007A, prNa},    // Ll    [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z\n\t{0x007B, 0x007B, prNa},    // Ps         LEFT CURLY BRACKET\n\t{0x007C, 0x007C, prNa},    // Sm         VERTICAL LINE\n\t{0x007D, 0x007D, prNa},    // Pe         RIGHT CURLY BRACKET\n\t{0x007E, 0x007E, prNa},    // Sm         TILDE\n\t{0x007F, 0x007F, prN},     // Cc         <control-007F>\n\t{0x0080, 0x009F, prN},     // Cc    [32] <control-0080>..<control-009F>\n\t{0x00A0, 0x00A0, prN},     // Zs         NO-BREAK SPACE\n\t{0x00A1, 0x00A1, prA},     // Po         INVERTED EXCLAMATION MARK\n\t{0x00A2, 0x00A3, prNa},    // Sc     [2] CENT SIGN..POUND SIGN\n\t{0x00A4, 0x00A4, prA},     // Sc         CURRENCY SIGN\n\t{0x00A5, 0x00A5, prNa},    // Sc         YEN SIGN\n\t{0x00A6, 0x00A6, prNa},    // So         BROKEN BAR\n\t{0x00A7, 0x00A7, prA},     // Po         SECTION SIGN\n\t{0x00A8, 0x00A8, prA},     // Sk         DIAERESIS\n\t{0x00A9, 0x00A9, prN},     // So         COPYRIGHT SIGN\n\t{0x00AA, 0x00AA, prA},     // Lo         FEMININE ORDINAL INDICATOR\n\t{0x00AB, 0x00AB, prN},     // Pi         LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\n\t{0x00AC, 0x00AC, prNa},    // Sm         NOT SIGN\n\t{0x00AD, 0x00AD, prA},     // Cf         SOFT HYPHEN\n\t{0x00AE, 0x00AE, prA},     // So         REGISTERED SIGN\n\t{0x00AF, 0x00AF, prNa},    // Sk         MACRON\n\t{0x00B0, 0x00B0, prA},     // So         DEGREE SIGN\n\t{0x00B1, 0x00B1, prA},     // Sm         PLUS-MINUS SIGN\n\t{0x00B2, 0x00B3, prA},     // No     [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE\n\t{0x00B4, 0x00B4, prA},     // Sk         ACUTE ACCENT\n\t{0x00B5, 0x00B5, prN},     // Ll         MICRO SIGN\n\t{0x00B6, 0x00B7, prA},     // Po     [2] PILCROW SIGN..MIDDLE DOT\n\t{0x00B8, 0x00B8, prA},     // Sk         CEDILLA\n\t{0x00B9, 0x00B9, prA},     // No         SUPERSCRIPT ONE\n\t{0x00BA, 0x00BA, prA},     // Lo         MASCULINE ORDINAL INDICATOR\n\t{0x00BB, 0x00BB, prN},     // Pf         RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\n\t{0x00BC, 0x00BE, prA},     // No     [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS\n\t{0x00BF, 0x00BF, prA},     // Po         INVERTED QUESTION MARK\n\t{0x00C0, 0x00C5, prN},     // Lu     [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE\n\t{0x00C6, 0x00C6, prA},     // Lu         LATIN CAPITAL LETTER AE\n\t{0x00C7, 0x00CF, prN},     // Lu     [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS\n\t{0x00D0, 0x00D0, prA},     // Lu         LATIN CAPITAL LETTER ETH\n\t{0x00D1, 0x00D6, prN},     // Lu     [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS\n\t{0x00D7, 0x00D7, prA},     // Sm         MULTIPLICATION SIGN\n\t{0x00D8, 0x00D8, prA},     // Lu         LATIN CAPITAL LETTER O WITH STROKE\n\t{0x00D9, 0x00DD, prN},     // Lu     [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE\n\t{0x00DE, 0x00E1, prA},     // L&     [4] LATIN CAPITAL LETTER THORN..LATIN SMALL LETTER A WITH ACUTE\n\t{0x00E2, 0x00E5, prN},     // Ll     [4] LATIN SMALL LETTER A WITH CIRCUMFLEX..LATIN SMALL LETTER A WITH RING ABOVE\n\t{0x00E6, 0x00E6, prA},     // Ll         LATIN SMALL LETTER AE\n\t{0x00E7, 0x00E7, prN},     // Ll         LATIN SMALL LETTER C WITH CEDILLA\n\t{0x00E8, 0x00EA, prA},     // Ll     [3] LATIN SMALL LETTER E WITH GRAVE..LATIN SMALL LETTER E WITH CIRCUMFLEX\n\t{0x00EB, 0x00EB, prN},     // Ll         LATIN SMALL LETTER E WITH DIAERESIS\n\t{0x00EC, 0x00ED, prA},     // Ll     [2] LATIN SMALL LETTER I WITH GRAVE..LATIN SMALL LETTER I WITH ACUTE\n\t{0x00EE, 0x00EF, prN},     // Ll     [2] LATIN SMALL LETTER I WITH CIRCUMFLEX..LATIN SMALL LETTER I WITH DIAERESIS\n\t{0x00F0, 0x00F0, prA},     // Ll         LATIN SMALL LETTER ETH\n\t{0x00F1, 0x00F1, prN},     // Ll         LATIN SMALL LETTER N WITH TILDE\n\t{0x00F2, 0x00F3, prA},     // Ll     [2] LATIN SMALL LETTER O WITH GRAVE..LATIN SMALL LETTER O WITH ACUTE\n\t{0x00F4, 0x00F6, prN},     // Ll     [3] LATIN SMALL LETTER O WITH CIRCUMFLEX..LATIN SMALL LETTER O WITH DIAERESIS\n\t{0x00F7, 0x00F7, prA},     // Sm         DIVISION SIGN\n\t{0x00F8, 0x00FA, prA},     // Ll     [3] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER U WITH ACUTE\n\t{0x00FB, 0x00FB, prN},     // Ll         LATIN SMALL LETTER U WITH CIRCUMFLEX\n\t{0x00FC, 0x00FC, prA},     // Ll         LATIN SMALL LETTER U WITH DIAERESIS\n\t{0x00FD, 0x00FD, prN},     // Ll         LATIN SMALL LETTER Y WITH ACUTE\n\t{0x00FE, 0x00FE, prA},     // Ll         LATIN SMALL LETTER THORN\n\t{0x00FF, 0x00FF, prN},     // Ll         LATIN SMALL LETTER Y WITH DIAERESIS\n\t{0x0100, 0x0100, prN},     // Lu         LATIN CAPITAL LETTER A WITH MACRON\n\t{0x0101, 0x0101, prA},     // Ll         LATIN SMALL LETTER A WITH MACRON\n\t{0x0102, 0x0110, prN},     // L&    [15] LATIN CAPITAL LETTER A WITH BREVE..LATIN CAPITAL LETTER D WITH STROKE\n\t{0x0111, 0x0111, prA},     // Ll         LATIN SMALL LETTER D WITH STROKE\n\t{0x0112, 0x0112, prN},     // Lu         LATIN CAPITAL LETTER E WITH MACRON\n\t{0x0113, 0x0113, prA},     // Ll         LATIN SMALL LETTER E WITH MACRON\n\t{0x0114, 0x011A, prN},     // L&     [7] LATIN CAPITAL LETTER E WITH BREVE..LATIN CAPITAL LETTER E WITH CARON\n\t{0x011B, 0x011B, prA},     // Ll         LATIN SMALL LETTER E WITH CARON\n\t{0x011C, 0x0125, prN},     // L&    [10] LATIN CAPITAL LETTER G WITH CIRCUMFLEX..LATIN SMALL LETTER H WITH CIRCUMFLEX\n\t{0x0126, 0x0127, prA},     // L&     [2] LATIN CAPITAL LETTER H WITH STROKE..LATIN SMALL LETTER H WITH STROKE\n\t{0x0128, 0x012A, prN},     // L&     [3] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH MACRON\n\t{0x012B, 0x012B, prA},     // Ll         LATIN SMALL LETTER I WITH MACRON\n\t{0x012C, 0x0130, prN},     // L&     [5] LATIN CAPITAL LETTER I WITH BREVE..LATIN CAPITAL LETTER I WITH DOT ABOVE\n\t{0x0131, 0x0133, prA},     // L&     [3] LATIN SMALL LETTER DOTLESS I..LATIN SMALL LIGATURE IJ\n\t{0x0134, 0x0137, prN},     // L&     [4] LATIN CAPITAL LETTER J WITH CIRCUMFLEX..LATIN SMALL LETTER K WITH CEDILLA\n\t{0x0138, 0x0138, prA},     // Ll         LATIN SMALL LETTER KRA\n\t{0x0139, 0x013E, prN},     // L&     [6] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH CARON\n\t{0x013F, 0x0142, prA},     // L&     [4] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH STROKE\n\t{0x0143, 0x0143, prN},     // Lu         LATIN CAPITAL LETTER N WITH ACUTE\n\t{0x0144, 0x0144, prA},     // Ll         LATIN SMALL LETTER N WITH ACUTE\n\t{0x0145, 0x0147, prN},     // L&     [3] LATIN CAPITAL LETTER N WITH CEDILLA..LATIN CAPITAL LETTER N WITH CARON\n\t{0x0148, 0x014B, prA},     // L&     [4] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER ENG\n\t{0x014C, 0x014C, prN},     // Lu         LATIN CAPITAL LETTER O WITH MACRON\n\t{0x014D, 0x014D, prA},     // Ll         LATIN SMALL LETTER O WITH MACRON\n\t{0x014E, 0x0151, prN},     // L&     [4] LATIN CAPITAL LETTER O WITH BREVE..LATIN SMALL LETTER O WITH DOUBLE ACUTE\n\t{0x0152, 0x0153, prA},     // L&     [2] LATIN CAPITAL LIGATURE OE..LATIN SMALL LIGATURE OE\n\t{0x0154, 0x0165, prN},     // L&    [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON\n\t{0x0166, 0x0167, prA},     // L&     [2] LATIN CAPITAL LETTER T WITH STROKE..LATIN SMALL LETTER T WITH STROKE\n\t{0x0168, 0x016A, prN},     // L&     [3] LATIN CAPITAL LETTER U WITH TILDE..LATIN CAPITAL LETTER U WITH MACRON\n\t{0x016B, 0x016B, prA},     // Ll         LATIN SMALL LETTER U WITH MACRON\n\t{0x016C, 0x017F, prN},     // L&    [20] LATIN CAPITAL LETTER U WITH BREVE..LATIN SMALL LETTER LONG S\n\t{0x0180, 0x01BA, prN},     // L&    [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL\n\t{0x01BB, 0x01BB, prN},     // Lo         LATIN LETTER TWO WITH STROKE\n\t{0x01BC, 0x01BF, prN},     // L&     [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN\n\t{0x01C0, 0x01C3, prN},     // Lo     [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK\n\t{0x01C4, 0x01CD, prN},     // L&    [10] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON\n\t{0x01CE, 0x01CE, prA},     // Ll         LATIN SMALL LETTER A WITH CARON\n\t{0x01CF, 0x01CF, prN},     // Lu         LATIN CAPITAL LETTER I WITH CARON\n\t{0x01D0, 0x01D0, prA},     // Ll         LATIN SMALL LETTER I WITH CARON\n\t{0x01D1, 0x01D1, prN},     // Lu         LATIN CAPITAL LETTER O WITH CARON\n\t{0x01D2, 0x01D2, prA},     // Ll         LATIN SMALL LETTER O WITH CARON\n\t{0x01D3, 0x01D3, prN},     // Lu         LATIN CAPITAL LETTER U WITH CARON\n\t{0x01D4, 0x01D4, prA},     // Ll         LATIN SMALL LETTER U WITH CARON\n\t{0x01D5, 0x01D5, prN},     // Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON\n\t{0x01D6, 0x01D6, prA},     // Ll         LATIN SMALL LETTER U WITH DIAERESIS AND MACRON\n\t{0x01D7, 0x01D7, prN},     // Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE\n\t{0x01D8, 0x01D8, prA},     // Ll         LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE\n\t{0x01D9, 0x01D9, prN},     // Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON\n\t{0x01DA, 0x01DA, prA},     // Ll         LATIN SMALL LETTER U WITH DIAERESIS AND CARON\n\t{0x01DB, 0x01DB, prN},     // Lu         LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE\n\t{0x01DC, 0x01DC, prA},     // Ll         LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE\n\t{0x01DD, 0x024F, prN},     // L&   [115] LATIN SMALL LETTER TURNED E..LATIN SMALL LETTER Y WITH STROKE\n\t{0x0250, 0x0250, prN},     // Ll         LATIN SMALL LETTER TURNED A\n\t{0x0251, 0x0251, prA},     // Ll         LATIN SMALL LETTER ALPHA\n\t{0x0252, 0x0260, prN},     // Ll    [15] LATIN SMALL LETTER TURNED ALPHA..LATIN SMALL LETTER G WITH HOOK\n\t{0x0261, 0x0261, prA},     // Ll         LATIN SMALL LETTER SCRIPT G\n\t{0x0262, 0x0293, prN},     // Ll    [50] LATIN LETTER SMALL CAPITAL G..LATIN SMALL LETTER EZH WITH CURL\n\t{0x0294, 0x0294, prN},     // Lo         LATIN LETTER GLOTTAL STOP\n\t{0x0295, 0x02AF, prN},     // Ll    [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL\n\t{0x02B0, 0x02C1, prN},     // Lm    [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP\n\t{0x02C2, 0x02C3, prN},     // Sk     [2] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER RIGHT ARROWHEAD\n\t{0x02C4, 0x02C4, prA},     // Sk         MODIFIER LETTER UP ARROWHEAD\n\t{0x02C5, 0x02C5, prN},     // Sk         MODIFIER LETTER DOWN ARROWHEAD\n\t{0x02C6, 0x02C6, prN},     // Lm         MODIFIER LETTER CIRCUMFLEX ACCENT\n\t{0x02C7, 0x02C7, prA},     // Lm         CARON\n\t{0x02C8, 0x02C8, prN},     // Lm         MODIFIER LETTER VERTICAL LINE\n\t{0x02C9, 0x02CB, prA},     // Lm     [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT\n\t{0x02CC, 0x02CC, prN},     // Lm         MODIFIER LETTER LOW VERTICAL LINE\n\t{0x02CD, 0x02CD, prA},     // Lm         MODIFIER LETTER LOW MACRON\n\t{0x02CE, 0x02CF, prN},     // Lm     [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT\n\t{0x02D0, 0x02D0, prA},     // Lm         MODIFIER LETTER TRIANGULAR COLON\n\t{0x02D1, 0x02D1, prN},     // Lm         MODIFIER LETTER HALF TRIANGULAR COLON\n\t{0x02D2, 0x02D7, prN},     // Sk     [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN\n\t{0x02D8, 0x02DB, prA},     // Sk     [4] BREVE..OGONEK\n\t{0x02DC, 0x02DC, prN},     // Sk         SMALL TILDE\n\t{0x02DD, 0x02DD, prA},     // Sk         DOUBLE ACUTE ACCENT\n\t{0x02DE, 0x02DE, prN},     // Sk         MODIFIER LETTER RHOTIC HOOK\n\t{0x02DF, 0x02DF, prA},     // Sk         MODIFIER LETTER CROSS ACCENT\n\t{0x02E0, 0x02E4, prN},     // Lm     [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP\n\t{0x02E5, 0x02EB, prN},     // Sk     [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK\n\t{0x02EC, 0x02EC, prN},     // Lm         MODIFIER LETTER VOICING\n\t{0x02ED, 0x02ED, prN},     // Sk         MODIFIER LETTER UNASPIRATED\n\t{0x02EE, 0x02EE, prN},     // Lm         MODIFIER LETTER DOUBLE APOSTROPHE\n\t{0x02EF, 0x02FF, prN},     // Sk    [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW\n\t{0x0300, 0x036F, prA},     // Mn   [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X\n\t{0x0370, 0x0373, prN},     // L&     [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI\n\t{0x0374, 0x0374, prN},     // Lm         GREEK NUMERAL SIGN\n\t{0x0375, 0x0375, prN},     // Sk         GREEK LOWER NUMERAL SIGN\n\t{0x0376, 0x0377, prN},     // L&     [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA\n\t{0x037A, 0x037A, prN},     // Lm         GREEK YPOGEGRAMMENI\n\t{0x037B, 0x037D, prN},     // Ll     [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL\n\t{0x037E, 0x037E, prN},     // Po         GREEK QUESTION MARK\n\t{0x037F, 0x037F, prN},     // Lu         GREEK CAPITAL LETTER YOT\n\t{0x0384, 0x0385, prN},     // Sk     [2] GREEK TONOS..GREEK DIALYTIKA TONOS\n\t{0x0386, 0x0386, prN},     // Lu         GREEK CAPITAL LETTER ALPHA WITH TONOS\n\t{0x0387, 0x0387, prN},     // Po         GREEK ANO TELEIA\n\t{0x0388, 0x038A, prN},     // Lu     [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS\n\t{0x038C, 0x038C, prN},     // Lu         GREEK CAPITAL LETTER OMICRON WITH TONOS\n\t{0x038E, 0x0390, prN},     // L&     [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS\n\t{0x0391, 0x03A1, prA},     // Lu    [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO\n\t{0x03A3, 0x03A9, prA},     // Lu     [7] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER OMEGA\n\t{0x03AA, 0x03B0, prN},     // L&     [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS\n\t{0x03B1, 0x03C1, prA},     // Ll    [17] GREEK SMALL LETTER ALPHA..GREEK SMALL LETTER RHO\n\t{0x03C2, 0x03C2, prN},     // Ll         GREEK SMALL LETTER FINAL SIGMA\n\t{0x03C3, 0x03C9, prA},     // Ll     [7] GREEK SMALL LETTER SIGMA..GREEK SMALL LETTER OMEGA\n\t{0x03CA, 0x03F5, prN},     // L&    [44] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK LUNATE EPSILON SYMBOL\n\t{0x03F6, 0x03F6, prN},     // Sm         GREEK REVERSED LUNATE EPSILON SYMBOL\n\t{0x03F7, 0x03FF, prN},     // L&     [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL\n\t{0x0400, 0x0400, prN},     // Lu         CYRILLIC CAPITAL LETTER IE WITH GRAVE\n\t{0x0401, 0x0401, prA},     // Lu         CYRILLIC CAPITAL LETTER IO\n\t{0x0402, 0x040F, prN},     // Lu    [14] CYRILLIC CAPITAL LETTER DJE..CYRILLIC CAPITAL LETTER DZHE\n\t{0x0410, 0x044F, prA},     // L&    [64] CYRILLIC CAPITAL LETTER A..CYRILLIC SMALL LETTER YA\n\t{0x0450, 0x0450, prN},     // Ll         CYRILLIC SMALL LETTER IE WITH GRAVE\n\t{0x0451, 0x0451, prA},     // Ll         CYRILLIC SMALL LETTER IO\n\t{0x0452, 0x0481, prN},     // L&    [48] CYRILLIC SMALL LETTER DJE..CYRILLIC SMALL LETTER KOPPA\n\t{0x0482, 0x0482, prN},     // So         CYRILLIC THOUSANDS SIGN\n\t{0x0483, 0x0487, prN},     // Mn     [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE\n\t{0x0488, 0x0489, prN},     // Me     [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN\n\t{0x048A, 0x04FF, prN},     // L&   [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE\n\t{0x0500, 0x052F, prN},     // L&    [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER\n\t{0x0531, 0x0556, prN},     // Lu    [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH\n\t{0x0559, 0x0559, prN},     // Lm         ARMENIAN MODIFIER LETTER LEFT HALF RING\n\t{0x055A, 0x055F, prN},     // Po     [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK\n\t{0x0560, 0x0588, prN},     // Ll    [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE\n\t{0x0589, 0x0589, prN},     // Po         ARMENIAN FULL STOP\n\t{0x058A, 0x058A, prN},     // Pd         ARMENIAN HYPHEN\n\t{0x058D, 0x058E, prN},     // So     [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN\n\t{0x058F, 0x058F, prN},     // Sc         ARMENIAN DRAM SIGN\n\t{0x0591, 0x05BD, prN},     // Mn    [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG\n\t{0x05BE, 0x05BE, prN},     // Pd         HEBREW PUNCTUATION MAQAF\n\t{0x05BF, 0x05BF, prN},     // Mn         HEBREW POINT RAFE\n\t{0x05C0, 0x05C0, prN},     // Po         HEBREW PUNCTUATION PASEQ\n\t{0x05C1, 0x05C2, prN},     // Mn     [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT\n\t{0x05C3, 0x05C3, prN},     // Po         HEBREW PUNCTUATION SOF PASUQ\n\t{0x05C4, 0x05C5, prN},     // Mn     [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT\n\t{0x05C6, 0x05C6, prN},     // Po         HEBREW PUNCTUATION NUN HAFUKHA\n\t{0x05C7, 0x05C7, prN},     // Mn         HEBREW POINT QAMATS QATAN\n\t{0x05D0, 0x05EA, prN},     // Lo    [27] HEBREW LETTER ALEF..HEBREW LETTER TAV\n\t{0x05EF, 0x05F2, prN},     // Lo     [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD\n\t{0x05F3, 0x05F4, prN},     // Po     [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM\n\t{0x0600, 0x0605, prN},     // Cf     [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE\n\t{0x0606, 0x0608, prN},     // Sm     [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY\n\t{0x0609, 0x060A, prN},     // Po     [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN\n\t{0x060B, 0x060B, prN},     // Sc         AFGHANI SIGN\n\t{0x060C, 0x060D, prN},     // Po     [2] ARABIC COMMA..ARABIC DATE SEPARATOR\n\t{0x060E, 0x060F, prN},     // So     [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA\n\t{0x0610, 0x061A, prN},     // Mn    [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA\n\t{0x061B, 0x061B, prN},     // Po         ARABIC SEMICOLON\n\t{0x061C, 0x061C, prN},     // Cf         ARABIC LETTER MARK\n\t{0x061D, 0x061F, prN},     // Po     [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK\n\t{0x0620, 0x063F, prN},     // Lo    [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE\n\t{0x0640, 0x0640, prN},     // Lm         ARABIC TATWEEL\n\t{0x0641, 0x064A, prN},     // Lo    [10] ARABIC LETTER FEH..ARABIC LETTER YEH\n\t{0x064B, 0x065F, prN},     // Mn    [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW\n\t{0x0660, 0x0669, prN},     // Nd    [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE\n\t{0x066A, 0x066D, prN},     // Po     [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR\n\t{0x066E, 0x066F, prN},     // Lo     [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF\n\t{0x0670, 0x0670, prN},     // Mn         ARABIC LETTER SUPERSCRIPT ALEF\n\t{0x0671, 0x06D3, prN},     // Lo    [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n\t{0x06D4, 0x06D4, prN},     // Po         ARABIC FULL STOP\n\t{0x06D5, 0x06D5, prN},     // Lo         ARABIC LETTER AE\n\t{0x06D6, 0x06DC, prN},     // Mn     [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN\n\t{0x06DD, 0x06DD, prN},     // Cf         ARABIC END OF AYAH\n\t{0x06DE, 0x06DE, prN},     // So         ARABIC START OF RUB EL HIZB\n\t{0x06DF, 0x06E4, prN},     // Mn     [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA\n\t{0x06E5, 0x06E6, prN},     // Lm     [2] ARABIC SMALL WAW..ARABIC SMALL YEH\n\t{0x06E7, 0x06E8, prN},     // Mn     [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON\n\t{0x06E9, 0x06E9, prN},     // So         ARABIC PLACE OF SAJDAH\n\t{0x06EA, 0x06ED, prN},     // Mn     [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM\n\t{0x06EE, 0x06EF, prN},     // Lo     [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V\n\t{0x06F0, 0x06F9, prN},     // Nd    [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE\n\t{0x06FA, 0x06FC, prN},     // Lo     [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW\n\t{0x06FD, 0x06FE, prN},     // So     [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN\n\t{0x06FF, 0x06FF, prN},     // Lo         ARABIC LETTER HEH WITH INVERTED V\n\t{0x0700, 0x070D, prN},     // Po    [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS\n\t{0x070F, 0x070F, prN},     // Cf         SYRIAC ABBREVIATION MARK\n\t{0x0710, 0x0710, prN},     // Lo         SYRIAC LETTER ALAPH\n\t{0x0711, 0x0711, prN},     // Mn         SYRIAC LETTER SUPERSCRIPT ALAPH\n\t{0x0712, 0x072F, prN},     // Lo    [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH\n\t{0x0730, 0x074A, prN},     // Mn    [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH\n\t{0x074D, 0x074F, prN},     // Lo     [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE\n\t{0x0750, 0x077F, prN},     // Lo    [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE\n\t{0x0780, 0x07A5, prN},     // Lo    [38] THAANA LETTER HAA..THAANA LETTER WAAVU\n\t{0x07A6, 0x07B0, prN},     // Mn    [11] THAANA ABAFILI..THAANA SUKUN\n\t{0x07B1, 0x07B1, prN},     // Lo         THAANA LETTER NAA\n\t{0x07C0, 0x07C9, prN},     // Nd    [10] NKO DIGIT ZERO..NKO DIGIT NINE\n\t{0x07CA, 0x07EA, prN},     // Lo    [33] NKO LETTER A..NKO LETTER JONA RA\n\t{0x07EB, 0x07F3, prN},     // Mn     [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE\n\t{0x07F4, 0x07F5, prN},     // Lm     [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE\n\t{0x07F6, 0x07F6, prN},     // So         NKO SYMBOL OO DENNEN\n\t{0x07F7, 0x07F9, prN},     // Po     [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK\n\t{0x07FA, 0x07FA, prN},     // Lm         NKO LAJANYALAN\n\t{0x07FD, 0x07FD, prN},     // Mn         NKO DANTAYALAN\n\t{0x07FE, 0x07FF, prN},     // Sc     [2] NKO DOROME SIGN..NKO TAMAN SIGN\n\t{0x0800, 0x0815, prN},     // Lo    [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF\n\t{0x0816, 0x0819, prN},     // Mn     [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH\n\t{0x081A, 0x081A, prN},     // Lm         SAMARITAN MODIFIER LETTER EPENTHETIC YUT\n\t{0x081B, 0x0823, prN},     // Mn     [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A\n\t{0x0824, 0x0824, prN},     // Lm         SAMARITAN MODIFIER LETTER SHORT A\n\t{0x0825, 0x0827, prN},     // Mn     [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U\n\t{0x0828, 0x0828, prN},     // Lm         SAMARITAN MODIFIER LETTER I\n\t{0x0829, 0x082D, prN},     // Mn     [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA\n\t{0x0830, 0x083E, prN},     // Po    [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU\n\t{0x0840, 0x0858, prN},     // Lo    [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN\n\t{0x0859, 0x085B, prN},     // Mn     [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK\n\t{0x085E, 0x085E, prN},     // Po         MANDAIC PUNCTUATION\n\t{0x0860, 0x086A, prN},     // Lo    [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA\n\t{0x0870, 0x0887, prN},     // Lo    [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT\n\t{0x0888, 0x0888, prN},     // Sk         ARABIC RAISED ROUND DOT\n\t{0x0889, 0x088E, prN},     // Lo     [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL\n\t{0x0890, 0x0891, prN},     // Cf     [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE\n\t{0x0898, 0x089F, prN},     // Mn     [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA\n\t{0x08A0, 0x08C8, prN},     // Lo    [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF\n\t{0x08C9, 0x08C9, prN},     // Lm         ARABIC SMALL FARSI YEH\n\t{0x08CA, 0x08E1, prN},     // Mn    [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA\n\t{0x08E2, 0x08E2, prN},     // Cf         ARABIC DISPUTED END OF AYAH\n\t{0x08E3, 0x08FF, prN},     // Mn    [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA\n\t{0x0900, 0x0902, prN},     // Mn     [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA\n\t{0x0903, 0x0903, prN},     // Mc         DEVANAGARI SIGN VISARGA\n\t{0x0904, 0x0939, prN},     // Lo    [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA\n\t{0x093A, 0x093A, prN},     // Mn         DEVANAGARI VOWEL SIGN OE\n\t{0x093B, 0x093B, prN},     // Mc         DEVANAGARI VOWEL SIGN OOE\n\t{0x093C, 0x093C, prN},     // Mn         DEVANAGARI SIGN NUKTA\n\t{0x093D, 0x093D, prN},     // Lo         DEVANAGARI SIGN AVAGRAHA\n\t{0x093E, 0x0940, prN},     // Mc     [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II\n\t{0x0941, 0x0948, prN},     // Mn     [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI\n\t{0x0949, 0x094C, prN},     // Mc     [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU\n\t{0x094D, 0x094D, prN},     // Mn         DEVANAGARI SIGN VIRAMA\n\t{0x094E, 0x094F, prN},     // Mc     [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW\n\t{0x0950, 0x0950, prN},     // Lo         DEVANAGARI OM\n\t{0x0951, 0x0957, prN},     // Mn     [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE\n\t{0x0958, 0x0961, prN},     // Lo    [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL\n\t{0x0962, 0x0963, prN},     // Mn     [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL\n\t{0x0964, 0x0965, prN},     // Po     [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA\n\t{0x0966, 0x096F, prN},     // Nd    [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE\n\t{0x0970, 0x0970, prN},     // Po         DEVANAGARI ABBREVIATION SIGN\n\t{0x0971, 0x0971, prN},     // Lm         DEVANAGARI SIGN HIGH SPACING DOT\n\t{0x0972, 0x097F, prN},     // Lo    [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA\n\t{0x0980, 0x0980, prN},     // Lo         BENGALI ANJI\n\t{0x0981, 0x0981, prN},     // Mn         BENGALI SIGN CANDRABINDU\n\t{0x0982, 0x0983, prN},     // Mc     [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA\n\t{0x0985, 0x098C, prN},     // Lo     [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L\n\t{0x098F, 0x0990, prN},     // Lo     [2] BENGALI LETTER E..BENGALI LETTER AI\n\t{0x0993, 0x09A8, prN},     // Lo    [22] BENGALI LETTER O..BENGALI LETTER NA\n\t{0x09AA, 0x09B0, prN},     // Lo     [7] BENGALI LETTER PA..BENGALI LETTER RA\n\t{0x09B2, 0x09B2, prN},     // Lo         BENGALI LETTER LA\n\t{0x09B6, 0x09B9, prN},     // Lo     [4] BENGALI LETTER SHA..BENGALI LETTER HA\n\t{0x09BC, 0x09BC, prN},     // Mn         BENGALI SIGN NUKTA\n\t{0x09BD, 0x09BD, prN},     // Lo         BENGALI SIGN AVAGRAHA\n\t{0x09BE, 0x09C0, prN},     // Mc     [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II\n\t{0x09C1, 0x09C4, prN},     // Mn     [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR\n\t{0x09C7, 0x09C8, prN},     // Mc     [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI\n\t{0x09CB, 0x09CC, prN},     // Mc     [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU\n\t{0x09CD, 0x09CD, prN},     // Mn         BENGALI SIGN VIRAMA\n\t{0x09CE, 0x09CE, prN},     // Lo         BENGALI LETTER KHANDA TA\n\t{0x09D7, 0x09D7, prN},     // Mc         BENGALI AU LENGTH MARK\n\t{0x09DC, 0x09DD, prN},     // Lo     [2] BENGALI LETTER RRA..BENGALI LETTER RHA\n\t{0x09DF, 0x09E1, prN},     // Lo     [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL\n\t{0x09E2, 0x09E3, prN},     // Mn     [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL\n\t{0x09E6, 0x09EF, prN},     // Nd    [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE\n\t{0x09F0, 0x09F1, prN},     // Lo     [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL\n\t{0x09F2, 0x09F3, prN},     // Sc     [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN\n\t{0x09F4, 0x09F9, prN},     // No     [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN\n\t{0x09FA, 0x09FA, prN},     // So         BENGALI ISSHAR\n\t{0x09FB, 0x09FB, prN},     // Sc         BENGALI GANDA MARK\n\t{0x09FC, 0x09FC, prN},     // Lo         BENGALI LETTER VEDIC ANUSVARA\n\t{0x09FD, 0x09FD, prN},     // Po         BENGALI ABBREVIATION SIGN\n\t{0x09FE, 0x09FE, prN},     // Mn         BENGALI SANDHI MARK\n\t{0x0A01, 0x0A02, prN},     // Mn     [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI\n\t{0x0A03, 0x0A03, prN},     // Mc         GURMUKHI SIGN VISARGA\n\t{0x0A05, 0x0A0A, prN},     // Lo     [6] GURMUKHI LETTER A..GURMUKHI LETTER UU\n\t{0x0A0F, 0x0A10, prN},     // Lo     [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI\n\t{0x0A13, 0x0A28, prN},     // Lo    [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA\n\t{0x0A2A, 0x0A30, prN},     // Lo     [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA\n\t{0x0A32, 0x0A33, prN},     // Lo     [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA\n\t{0x0A35, 0x0A36, prN},     // Lo     [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA\n\t{0x0A38, 0x0A39, prN},     // Lo     [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA\n\t{0x0A3C, 0x0A3C, prN},     // Mn         GURMUKHI SIGN NUKTA\n\t{0x0A3E, 0x0A40, prN},     // Mc     [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II\n\t{0x0A41, 0x0A42, prN},     // Mn     [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU\n\t{0x0A47, 0x0A48, prN},     // Mn     [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI\n\t{0x0A4B, 0x0A4D, prN},     // Mn     [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA\n\t{0x0A51, 0x0A51, prN},     // Mn         GURMUKHI SIGN UDAAT\n\t{0x0A59, 0x0A5C, prN},     // Lo     [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA\n\t{0x0A5E, 0x0A5E, prN},     // Lo         GURMUKHI LETTER FA\n\t{0x0A66, 0x0A6F, prN},     // Nd    [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE\n\t{0x0A70, 0x0A71, prN},     // Mn     [2] GURMUKHI TIPPI..GURMUKHI ADDAK\n\t{0x0A72, 0x0A74, prN},     // Lo     [3] GURMUKHI IRI..GURMUKHI EK ONKAR\n\t{0x0A75, 0x0A75, prN},     // Mn         GURMUKHI SIGN YAKASH\n\t{0x0A76, 0x0A76, prN},     // Po         GURMUKHI ABBREVIATION SIGN\n\t{0x0A81, 0x0A82, prN},     // Mn     [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA\n\t{0x0A83, 0x0A83, prN},     // Mc         GUJARATI SIGN VISARGA\n\t{0x0A85, 0x0A8D, prN},     // Lo     [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E\n\t{0x0A8F, 0x0A91, prN},     // Lo     [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O\n\t{0x0A93, 0x0AA8, prN},     // Lo    [22] GUJARATI LETTER O..GUJARATI LETTER NA\n\t{0x0AAA, 0x0AB0, prN},     // Lo     [7] GUJARATI LETTER PA..GUJARATI LETTER RA\n\t{0x0AB2, 0x0AB3, prN},     // Lo     [2] GUJARATI LETTER LA..GUJARATI LETTER LLA\n\t{0x0AB5, 0x0AB9, prN},     // Lo     [5] GUJARATI LETTER VA..GUJARATI LETTER HA\n\t{0x0ABC, 0x0ABC, prN},     // Mn         GUJARATI SIGN NUKTA\n\t{0x0ABD, 0x0ABD, prN},     // Lo         GUJARATI SIGN AVAGRAHA\n\t{0x0ABE, 0x0AC0, prN},     // Mc     [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II\n\t{0x0AC1, 0x0AC5, prN},     // Mn     [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E\n\t{0x0AC7, 0x0AC8, prN},     // Mn     [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI\n\t{0x0AC9, 0x0AC9, prN},     // Mc         GUJARATI VOWEL SIGN CANDRA O\n\t{0x0ACB, 0x0ACC, prN},     // Mc     [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU\n\t{0x0ACD, 0x0ACD, prN},     // Mn         GUJARATI SIGN VIRAMA\n\t{0x0AD0, 0x0AD0, prN},     // Lo         GUJARATI OM\n\t{0x0AE0, 0x0AE1, prN},     // Lo     [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL\n\t{0x0AE2, 0x0AE3, prN},     // Mn     [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL\n\t{0x0AE6, 0x0AEF, prN},     // Nd    [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE\n\t{0x0AF0, 0x0AF0, prN},     // Po         GUJARATI ABBREVIATION SIGN\n\t{0x0AF1, 0x0AF1, prN},     // Sc         GUJARATI RUPEE SIGN\n\t{0x0AF9, 0x0AF9, prN},     // Lo         GUJARATI LETTER ZHA\n\t{0x0AFA, 0x0AFF, prN},     // Mn     [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE\n\t{0x0B01, 0x0B01, prN},     // Mn         ORIYA SIGN CANDRABINDU\n\t{0x0B02, 0x0B03, prN},     // Mc     [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA\n\t{0x0B05, 0x0B0C, prN},     // Lo     [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L\n\t{0x0B0F, 0x0B10, prN},     // Lo     [2] ORIYA LETTER E..ORIYA LETTER AI\n\t{0x0B13, 0x0B28, prN},     // Lo    [22] ORIYA LETTER O..ORIYA LETTER NA\n\t{0x0B2A, 0x0B30, prN},     // Lo     [7] ORIYA LETTER PA..ORIYA LETTER RA\n\t{0x0B32, 0x0B33, prN},     // Lo     [2] ORIYA LETTER LA..ORIYA LETTER LLA\n\t{0x0B35, 0x0B39, prN},     // Lo     [5] ORIYA LETTER VA..ORIYA LETTER HA\n\t{0x0B3C, 0x0B3C, prN},     // Mn         ORIYA SIGN NUKTA\n\t{0x0B3D, 0x0B3D, prN},     // Lo         ORIYA SIGN AVAGRAHA\n\t{0x0B3E, 0x0B3E, prN},     // Mc         ORIYA VOWEL SIGN AA\n\t{0x0B3F, 0x0B3F, prN},     // Mn         ORIYA VOWEL SIGN I\n\t{0x0B40, 0x0B40, prN},     // Mc         ORIYA VOWEL SIGN II\n\t{0x0B41, 0x0B44, prN},     // Mn     [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR\n\t{0x0B47, 0x0B48, prN},     // Mc     [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI\n\t{0x0B4B, 0x0B4C, prN},     // Mc     [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU\n\t{0x0B4D, 0x0B4D, prN},     // Mn         ORIYA SIGN VIRAMA\n\t{0x0B55, 0x0B56, prN},     // Mn     [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK\n\t{0x0B57, 0x0B57, prN},     // Mc         ORIYA AU LENGTH MARK\n\t{0x0B5C, 0x0B5D, prN},     // Lo     [2] ORIYA LETTER RRA..ORIYA LETTER RHA\n\t{0x0B5F, 0x0B61, prN},     // Lo     [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL\n\t{0x0B62, 0x0B63, prN},     // Mn     [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL\n\t{0x0B66, 0x0B6F, prN},     // Nd    [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE\n\t{0x0B70, 0x0B70, prN},     // So         ORIYA ISSHAR\n\t{0x0B71, 0x0B71, prN},     // Lo         ORIYA LETTER WA\n\t{0x0B72, 0x0B77, prN},     // No     [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS\n\t{0x0B82, 0x0B82, prN},     // Mn         TAMIL SIGN ANUSVARA\n\t{0x0B83, 0x0B83, prN},     // Lo         TAMIL SIGN VISARGA\n\t{0x0B85, 0x0B8A, prN},     // Lo     [6] TAMIL LETTER A..TAMIL LETTER UU\n\t{0x0B8E, 0x0B90, prN},     // Lo     [3] TAMIL LETTER E..TAMIL LETTER AI\n\t{0x0B92, 0x0B95, prN},     // Lo     [4] TAMIL LETTER O..TAMIL LETTER KA\n\t{0x0B99, 0x0B9A, prN},     // Lo     [2] TAMIL LETTER NGA..TAMIL LETTER CA\n\t{0x0B9C, 0x0B9C, prN},     // Lo         TAMIL LETTER JA\n\t{0x0B9E, 0x0B9F, prN},     // Lo     [2] TAMIL LETTER NYA..TAMIL LETTER TTA\n\t{0x0BA3, 0x0BA4, prN},     // Lo     [2] TAMIL LETTER NNA..TAMIL LETTER TA\n\t{0x0BA8, 0x0BAA, prN},     // Lo     [3] TAMIL LETTER NA..TAMIL LETTER PA\n\t{0x0BAE, 0x0BB9, prN},     // Lo    [12] TAMIL LETTER MA..TAMIL LETTER HA\n\t{0x0BBE, 0x0BBF, prN},     // Mc     [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I\n\t{0x0BC0, 0x0BC0, prN},     // Mn         TAMIL VOWEL SIGN II\n\t{0x0BC1, 0x0BC2, prN},     // Mc     [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU\n\t{0x0BC6, 0x0BC8, prN},     // Mc     [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI\n\t{0x0BCA, 0x0BCC, prN},     // Mc     [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU\n\t{0x0BCD, 0x0BCD, prN},     // Mn         TAMIL SIGN VIRAMA\n\t{0x0BD0, 0x0BD0, prN},     // Lo         TAMIL OM\n\t{0x0BD7, 0x0BD7, prN},     // Mc         TAMIL AU LENGTH MARK\n\t{0x0BE6, 0x0BEF, prN},     // Nd    [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE\n\t{0x0BF0, 0x0BF2, prN},     // No     [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND\n\t{0x0BF3, 0x0BF8, prN},     // So     [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN\n\t{0x0BF9, 0x0BF9, prN},     // Sc         TAMIL RUPEE SIGN\n\t{0x0BFA, 0x0BFA, prN},     // So         TAMIL NUMBER SIGN\n\t{0x0C00, 0x0C00, prN},     // Mn         TELUGU SIGN COMBINING CANDRABINDU ABOVE\n\t{0x0C01, 0x0C03, prN},     // Mc     [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA\n\t{0x0C04, 0x0C04, prN},     // Mn         TELUGU SIGN COMBINING ANUSVARA ABOVE\n\t{0x0C05, 0x0C0C, prN},     // Lo     [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L\n\t{0x0C0E, 0x0C10, prN},     // Lo     [3] TELUGU LETTER E..TELUGU LETTER AI\n\t{0x0C12, 0x0C28, prN},     // Lo    [23] TELUGU LETTER O..TELUGU LETTER NA\n\t{0x0C2A, 0x0C39, prN},     // Lo    [16] TELUGU LETTER PA..TELUGU LETTER HA\n\t{0x0C3C, 0x0C3C, prN},     // Mn         TELUGU SIGN NUKTA\n\t{0x0C3D, 0x0C3D, prN},     // Lo         TELUGU SIGN AVAGRAHA\n\t{0x0C3E, 0x0C40, prN},     // Mn     [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II\n\t{0x0C41, 0x0C44, prN},     // Mc     [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR\n\t{0x0C46, 0x0C48, prN},     // Mn     [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI\n\t{0x0C4A, 0x0C4D, prN},     // Mn     [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA\n\t{0x0C55, 0x0C56, prN},     // Mn     [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK\n\t{0x0C58, 0x0C5A, prN},     // Lo     [3] TELUGU LETTER TSA..TELUGU LETTER RRRA\n\t{0x0C5D, 0x0C5D, prN},     // Lo         TELUGU LETTER NAKAARA POLLU\n\t{0x0C60, 0x0C61, prN},     // Lo     [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL\n\t{0x0C62, 0x0C63, prN},     // Mn     [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL\n\t{0x0C66, 0x0C6F, prN},     // Nd    [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE\n\t{0x0C77, 0x0C77, prN},     // Po         TELUGU SIGN SIDDHAM\n\t{0x0C78, 0x0C7E, prN},     // No     [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR\n\t{0x0C7F, 0x0C7F, prN},     // So         TELUGU SIGN TUUMU\n\t{0x0C80, 0x0C80, prN},     // Lo         KANNADA SIGN SPACING CANDRABINDU\n\t{0x0C81, 0x0C81, prN},     // Mn         KANNADA SIGN CANDRABINDU\n\t{0x0C82, 0x0C83, prN},     // Mc     [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA\n\t{0x0C84, 0x0C84, prN},     // Po         KANNADA SIGN SIDDHAM\n\t{0x0C85, 0x0C8C, prN},     // Lo     [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L\n\t{0x0C8E, 0x0C90, prN},     // Lo     [3] KANNADA LETTER E..KANNADA LETTER AI\n\t{0x0C92, 0x0CA8, prN},     // Lo    [23] KANNADA LETTER O..KANNADA LETTER NA\n\t{0x0CAA, 0x0CB3, prN},     // Lo    [10] KANNADA LETTER PA..KANNADA LETTER LLA\n\t{0x0CB5, 0x0CB9, prN},     // Lo     [5] KANNADA LETTER VA..KANNADA LETTER HA\n\t{0x0CBC, 0x0CBC, prN},     // Mn         KANNADA SIGN NUKTA\n\t{0x0CBD, 0x0CBD, prN},     // Lo         KANNADA SIGN AVAGRAHA\n\t{0x0CBE, 0x0CBE, prN},     // Mc         KANNADA VOWEL SIGN AA\n\t{0x0CBF, 0x0CBF, prN},     // Mn         KANNADA VOWEL SIGN I\n\t{0x0CC0, 0x0CC4, prN},     // Mc     [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR\n\t{0x0CC6, 0x0CC6, prN},     // Mn         KANNADA VOWEL SIGN E\n\t{0x0CC7, 0x0CC8, prN},     // Mc     [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI\n\t{0x0CCA, 0x0CCB, prN},     // Mc     [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO\n\t{0x0CCC, 0x0CCD, prN},     // Mn     [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA\n\t{0x0CD5, 0x0CD6, prN},     // Mc     [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK\n\t{0x0CDD, 0x0CDE, prN},     // Lo     [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA\n\t{0x0CE0, 0x0CE1, prN},     // Lo     [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL\n\t{0x0CE2, 0x0CE3, prN},     // Mn     [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL\n\t{0x0CE6, 0x0CEF, prN},     // Nd    [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE\n\t{0x0CF1, 0x0CF2, prN},     // Lo     [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA\n\t{0x0CF3, 0x0CF3, prN},     // Mc         KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT\n\t{0x0D00, 0x0D01, prN},     // Mn     [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU\n\t{0x0D02, 0x0D03, prN},     // Mc     [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA\n\t{0x0D04, 0x0D0C, prN},     // Lo     [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L\n\t{0x0D0E, 0x0D10, prN},     // Lo     [3] MALAYALAM LETTER E..MALAYALAM LETTER AI\n\t{0x0D12, 0x0D3A, prN},     // Lo    [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA\n\t{0x0D3B, 0x0D3C, prN},     // Mn     [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA\n\t{0x0D3D, 0x0D3D, prN},     // Lo         MALAYALAM SIGN AVAGRAHA\n\t{0x0D3E, 0x0D40, prN},     // Mc     [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II\n\t{0x0D41, 0x0D44, prN},     // Mn     [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR\n\t{0x0D46, 0x0D48, prN},     // Mc     [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI\n\t{0x0D4A, 0x0D4C, prN},     // Mc     [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU\n\t{0x0D4D, 0x0D4D, prN},     // Mn         MALAYALAM SIGN VIRAMA\n\t{0x0D4E, 0x0D4E, prN},     // Lo         MALAYALAM LETTER DOT REPH\n\t{0x0D4F, 0x0D4F, prN},     // So         MALAYALAM SIGN PARA\n\t{0x0D54, 0x0D56, prN},     // Lo     [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL\n\t{0x0D57, 0x0D57, prN},     // Mc         MALAYALAM AU LENGTH MARK\n\t{0x0D58, 0x0D5E, prN},     // No     [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH\n\t{0x0D5F, 0x0D61, prN},     // Lo     [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL\n\t{0x0D62, 0x0D63, prN},     // Mn     [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL\n\t{0x0D66, 0x0D6F, prN},     // Nd    [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE\n\t{0x0D70, 0x0D78, prN},     // No     [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS\n\t{0x0D79, 0x0D79, prN},     // So         MALAYALAM DATE MARK\n\t{0x0D7A, 0x0D7F, prN},     // Lo     [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K\n\t{0x0D81, 0x0D81, prN},     // Mn         SINHALA SIGN CANDRABINDU\n\t{0x0D82, 0x0D83, prN},     // Mc     [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA\n\t{0x0D85, 0x0D96, prN},     // Lo    [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA\n\t{0x0D9A, 0x0DB1, prN},     // Lo    [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA\n\t{0x0DB3, 0x0DBB, prN},     // Lo     [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA\n\t{0x0DBD, 0x0DBD, prN},     // Lo         SINHALA LETTER DANTAJA LAYANNA\n\t{0x0DC0, 0x0DC6, prN},     // Lo     [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA\n\t{0x0DCA, 0x0DCA, prN},     // Mn         SINHALA SIGN AL-LAKUNA\n\t{0x0DCF, 0x0DD1, prN},     // Mc     [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA\n\t{0x0DD2, 0x0DD4, prN},     // Mn     [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA\n\t{0x0DD6, 0x0DD6, prN},     // Mn         SINHALA VOWEL SIGN DIGA PAA-PILLA\n\t{0x0DD8, 0x0DDF, prN},     // Mc     [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA\n\t{0x0DE6, 0x0DEF, prN},     // Nd    [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE\n\t{0x0DF2, 0x0DF3, prN},     // Mc     [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA\n\t{0x0DF4, 0x0DF4, prN},     // Po         SINHALA PUNCTUATION KUNDDALIYA\n\t{0x0E01, 0x0E30, prN},     // Lo    [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A\n\t{0x0E31, 0x0E31, prN},     // Mn         THAI CHARACTER MAI HAN-AKAT\n\t{0x0E32, 0x0E33, prN},     // Lo     [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM\n\t{0x0E34, 0x0E3A, prN},     // Mn     [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU\n\t{0x0E3F, 0x0E3F, prN},     // Sc         THAI CURRENCY SYMBOL BAHT\n\t{0x0E40, 0x0E45, prN},     // Lo     [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO\n\t{0x0E46, 0x0E46, prN},     // Lm         THAI CHARACTER MAIYAMOK\n\t{0x0E47, 0x0E4E, prN},     // Mn     [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN\n\t{0x0E4F, 0x0E4F, prN},     // Po         THAI CHARACTER FONGMAN\n\t{0x0E50, 0x0E59, prN},     // Nd    [10] THAI DIGIT ZERO..THAI DIGIT NINE\n\t{0x0E5A, 0x0E5B, prN},     // Po     [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT\n\t{0x0E81, 0x0E82, prN},     // Lo     [2] LAO LETTER KO..LAO LETTER KHO SUNG\n\t{0x0E84, 0x0E84, prN},     // Lo         LAO LETTER KHO TAM\n\t{0x0E86, 0x0E8A, prN},     // Lo     [5] LAO LETTER PALI GHA..LAO LETTER SO TAM\n\t{0x0E8C, 0x0EA3, prN},     // Lo    [24] LAO LETTER PALI JHA..LAO LETTER LO LING\n\t{0x0EA5, 0x0EA5, prN},     // Lo         LAO LETTER LO LOOT\n\t{0x0EA7, 0x0EB0, prN},     // Lo    [10] LAO LETTER WO..LAO VOWEL SIGN A\n\t{0x0EB1, 0x0EB1, prN},     // Mn         LAO VOWEL SIGN MAI KAN\n\t{0x0EB2, 0x0EB3, prN},     // Lo     [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM\n\t{0x0EB4, 0x0EBC, prN},     // Mn     [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO\n\t{0x0EBD, 0x0EBD, prN},     // Lo         LAO SEMIVOWEL SIGN NYO\n\t{0x0EC0, 0x0EC4, prN},     // Lo     [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI\n\t{0x0EC6, 0x0EC6, prN},     // Lm         LAO KO LA\n\t{0x0EC8, 0x0ECE, prN},     // Mn     [7] LAO TONE MAI EK..LAO YAMAKKAN\n\t{0x0ED0, 0x0ED9, prN},     // Nd    [10] LAO DIGIT ZERO..LAO DIGIT NINE\n\t{0x0EDC, 0x0EDF, prN},     // Lo     [4] LAO HO NO..LAO LETTER KHMU NYO\n\t{0x0F00, 0x0F00, prN},     // Lo         TIBETAN SYLLABLE OM\n\t{0x0F01, 0x0F03, prN},     // So     [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA\n\t{0x0F04, 0x0F12, prN},     // Po    [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD\n\t{0x0F13, 0x0F13, prN},     // So         TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN\n\t{0x0F14, 0x0F14, prN},     // Po         TIBETAN MARK GTER TSHEG\n\t{0x0F15, 0x0F17, prN},     // So     [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS\n\t{0x0F18, 0x0F19, prN},     // Mn     [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS\n\t{0x0F1A, 0x0F1F, prN},     // So     [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG\n\t{0x0F20, 0x0F29, prN},     // Nd    [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE\n\t{0x0F2A, 0x0F33, prN},     // No    [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO\n\t{0x0F34, 0x0F34, prN},     // So         TIBETAN MARK BSDUS RTAGS\n\t{0x0F35, 0x0F35, prN},     // Mn         TIBETAN MARK NGAS BZUNG NYI ZLA\n\t{0x0F36, 0x0F36, prN},     // So         TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN\n\t{0x0F37, 0x0F37, prN},     // Mn         TIBETAN MARK NGAS BZUNG SGOR RTAGS\n\t{0x0F38, 0x0F38, prN},     // So         TIBETAN MARK CHE MGO\n\t{0x0F39, 0x0F39, prN},     // Mn         TIBETAN MARK TSA -PHRU\n\t{0x0F3A, 0x0F3A, prN},     // Ps         TIBETAN MARK GUG RTAGS GYON\n\t{0x0F3B, 0x0F3B, prN},     // Pe         TIBETAN MARK GUG RTAGS GYAS\n\t{0x0F3C, 0x0F3C, prN},     // Ps         TIBETAN MARK ANG KHANG GYON\n\t{0x0F3D, 0x0F3D, prN},     // Pe         TIBETAN MARK ANG KHANG GYAS\n\t{0x0F3E, 0x0F3F, prN},     // Mc     [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES\n\t{0x0F40, 0x0F47, prN},     // Lo     [8] TIBETAN LETTER KA..TIBETAN LETTER JA\n\t{0x0F49, 0x0F6C, prN},     // Lo    [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA\n\t{0x0F71, 0x0F7E, prN},     // Mn    [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO\n\t{0x0F7F, 0x0F7F, prN},     // Mc         TIBETAN SIGN RNAM BCAD\n\t{0x0F80, 0x0F84, prN},     // Mn     [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA\n\t{0x0F85, 0x0F85, prN},     // Po         TIBETAN MARK PALUTA\n\t{0x0F86, 0x0F87, prN},     // Mn     [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS\n\t{0x0F88, 0x0F8C, prN},     // Lo     [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN\n\t{0x0F8D, 0x0F97, prN},     // Mn    [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA\n\t{0x0F99, 0x0FBC, prN},     // Mn    [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA\n\t{0x0FBE, 0x0FC5, prN},     // So     [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE\n\t{0x0FC6, 0x0FC6, prN},     // Mn         TIBETAN SYMBOL PADMA GDAN\n\t{0x0FC7, 0x0FCC, prN},     // So     [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL\n\t{0x0FCE, 0x0FCF, prN},     // So     [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM\n\t{0x0FD0, 0x0FD4, prN},     // Po     [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA\n\t{0x0FD5, 0x0FD8, prN},     // So     [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS\n\t{0x0FD9, 0x0FDA, prN},     // Po     [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS\n\t{0x1000, 0x102A, prN},     // Lo    [43] MYANMAR LETTER KA..MYANMAR LETTER AU\n\t{0x102B, 0x102C, prN},     // Mc     [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA\n\t{0x102D, 0x1030, prN},     // Mn     [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU\n\t{0x1031, 0x1031, prN},     // Mc         MYANMAR VOWEL SIGN E\n\t{0x1032, 0x1037, prN},     // Mn     [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW\n\t{0x1038, 0x1038, prN},     // Mc         MYANMAR SIGN VISARGA\n\t{0x1039, 0x103A, prN},     // Mn     [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT\n\t{0x103B, 0x103C, prN},     // Mc     [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA\n\t{0x103D, 0x103E, prN},     // Mn     [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA\n\t{0x103F, 0x103F, prN},     // Lo         MYANMAR LETTER GREAT SA\n\t{0x1040, 0x1049, prN},     // Nd    [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE\n\t{0x104A, 0x104F, prN},     // Po     [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE\n\t{0x1050, 0x1055, prN},     // Lo     [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL\n\t{0x1056, 0x1057, prN},     // Mc     [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR\n\t{0x1058, 0x1059, prN},     // Mn     [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL\n\t{0x105A, 0x105D, prN},     // Lo     [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE\n\t{0x105E, 0x1060, prN},     // Mn     [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA\n\t{0x1061, 0x1061, prN},     // Lo         MYANMAR LETTER SGAW KAREN SHA\n\t{0x1062, 0x1064, prN},     // Mc     [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO\n\t{0x1065, 0x1066, prN},     // Lo     [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA\n\t{0x1067, 0x106D, prN},     // Mc     [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5\n\t{0x106E, 0x1070, prN},     // Lo     [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA\n\t{0x1071, 0x1074, prN},     // Mn     [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE\n\t{0x1075, 0x1081, prN},     // Lo    [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA\n\t{0x1082, 0x1082, prN},     // Mn         MYANMAR CONSONANT SIGN SHAN MEDIAL WA\n\t{0x1083, 0x1084, prN},     // Mc     [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E\n\t{0x1085, 0x1086, prN},     // Mn     [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y\n\t{0x1087, 0x108C, prN},     // Mc     [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3\n\t{0x108D, 0x108D, prN},     // Mn         MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE\n\t{0x108E, 0x108E, prN},     // Lo         MYANMAR LETTER RUMAI PALAUNG FA\n\t{0x108F, 0x108F, prN},     // Mc         MYANMAR SIGN RUMAI PALAUNG TONE-5\n\t{0x1090, 0x1099, prN},     // Nd    [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE\n\t{0x109A, 0x109C, prN},     // Mc     [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A\n\t{0x109D, 0x109D, prN},     // Mn         MYANMAR VOWEL SIGN AITON AI\n\t{0x109E, 0x109F, prN},     // So     [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION\n\t{0x10A0, 0x10C5, prN},     // Lu    [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE\n\t{0x10C7, 0x10C7, prN},     // Lu         GEORGIAN CAPITAL LETTER YN\n\t{0x10CD, 0x10CD, prN},     // Lu         GEORGIAN CAPITAL LETTER AEN\n\t{0x10D0, 0x10FA, prN},     // Ll    [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN\n\t{0x10FB, 0x10FB, prN},     // Po         GEORGIAN PARAGRAPH SEPARATOR\n\t{0x10FC, 0x10FC, prN},     // Lm         MODIFIER LETTER GEORGIAN NAR\n\t{0x10FD, 0x10FF, prN},     // Ll     [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN\n\t{0x1100, 0x115F, prW},     // Lo    [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER\n\t{0x1160, 0x11FF, prN},     // Lo   [160] HANGUL JUNGSEONG FILLER..HANGUL JONGSEONG SSANGNIEUN\n\t{0x1200, 0x1248, prN},     // Lo    [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA\n\t{0x124A, 0x124D, prN},     // Lo     [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE\n\t{0x1250, 0x1256, prN},     // Lo     [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO\n\t{0x1258, 0x1258, prN},     // Lo         ETHIOPIC SYLLABLE QHWA\n\t{0x125A, 0x125D, prN},     // Lo     [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE\n\t{0x1260, 0x1288, prN},     // Lo    [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA\n\t{0x128A, 0x128D, prN},     // Lo     [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE\n\t{0x1290, 0x12B0, prN},     // Lo    [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA\n\t{0x12B2, 0x12B5, prN},     // Lo     [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE\n\t{0x12B8, 0x12BE, prN},     // Lo     [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO\n\t{0x12C0, 0x12C0, prN},     // Lo         ETHIOPIC SYLLABLE KXWA\n\t{0x12C2, 0x12C5, prN},     // Lo     [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE\n\t{0x12C8, 0x12D6, prN},     // Lo    [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O\n\t{0x12D8, 0x1310, prN},     // Lo    [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA\n\t{0x1312, 0x1315, prN},     // Lo     [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE\n\t{0x1318, 0x135A, prN},     // Lo    [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA\n\t{0x135D, 0x135F, prN},     // Mn     [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK\n\t{0x1360, 0x1368, prN},     // Po     [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR\n\t{0x1369, 0x137C, prN},     // No    [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND\n\t{0x1380, 0x138F, prN},     // Lo    [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE\n\t{0x1390, 0x1399, prN},     // So    [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT\n\t{0x13A0, 0x13F5, prN},     // Lu    [86] CHEROKEE LETTER A..CHEROKEE LETTER MV\n\t{0x13F8, 0x13FD, prN},     // Ll     [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV\n\t{0x1400, 0x1400, prN},     // Pd         CANADIAN SYLLABICS HYPHEN\n\t{0x1401, 0x166C, prN},     // Lo   [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA\n\t{0x166D, 0x166D, prN},     // So         CANADIAN SYLLABICS CHI SIGN\n\t{0x166E, 0x166E, prN},     // Po         CANADIAN SYLLABICS FULL STOP\n\t{0x166F, 0x167F, prN},     // Lo    [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W\n\t{0x1680, 0x1680, prN},     // Zs         OGHAM SPACE MARK\n\t{0x1681, 0x169A, prN},     // Lo    [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH\n\t{0x169B, 0x169B, prN},     // Ps         OGHAM FEATHER MARK\n\t{0x169C, 0x169C, prN},     // Pe         OGHAM REVERSED FEATHER MARK\n\t{0x16A0, 0x16EA, prN},     // Lo    [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X\n\t{0x16EB, 0x16ED, prN},     // Po     [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION\n\t{0x16EE, 0x16F0, prN},     // Nl     [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL\n\t{0x16F1, 0x16F8, prN},     // Lo     [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC\n\t{0x1700, 0x1711, prN},     // Lo    [18] TAGALOG LETTER A..TAGALOG LETTER HA\n\t{0x1712, 0x1714, prN},     // Mn     [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA\n\t{0x1715, 0x1715, prN},     // Mc         TAGALOG SIGN PAMUDPOD\n\t{0x171F, 0x171F, prN},     // Lo         TAGALOG LETTER ARCHAIC RA\n\t{0x1720, 0x1731, prN},     // Lo    [18] HANUNOO LETTER A..HANUNOO LETTER HA\n\t{0x1732, 0x1733, prN},     // Mn     [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U\n\t{0x1734, 0x1734, prN},     // Mc         HANUNOO SIGN PAMUDPOD\n\t{0x1735, 0x1736, prN},     // Po     [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION\n\t{0x1740, 0x1751, prN},     // Lo    [18] BUHID LETTER A..BUHID LETTER HA\n\t{0x1752, 0x1753, prN},     // Mn     [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U\n\t{0x1760, 0x176C, prN},     // Lo    [13] TAGBANWA LETTER A..TAGBANWA LETTER YA\n\t{0x176E, 0x1770, prN},     // Lo     [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA\n\t{0x1772, 0x1773, prN},     // Mn     [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U\n\t{0x1780, 0x17B3, prN},     // Lo    [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU\n\t{0x17B4, 0x17B5, prN},     // Mn     [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA\n\t{0x17B6, 0x17B6, prN},     // Mc         KHMER VOWEL SIGN AA\n\t{0x17B7, 0x17BD, prN},     // Mn     [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA\n\t{0x17BE, 0x17C5, prN},     // Mc     [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU\n\t{0x17C6, 0x17C6, prN},     // Mn         KHMER SIGN NIKAHIT\n\t{0x17C7, 0x17C8, prN},     // Mc     [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU\n\t{0x17C9, 0x17D3, prN},     // Mn    [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT\n\t{0x17D4, 0x17D6, prN},     // Po     [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH\n\t{0x17D7, 0x17D7, prN},     // Lm         KHMER SIGN LEK TOO\n\t{0x17D8, 0x17DA, prN},     // Po     [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT\n\t{0x17DB, 0x17DB, prN},     // Sc         KHMER CURRENCY SYMBOL RIEL\n\t{0x17DC, 0x17DC, prN},     // Lo         KHMER SIGN AVAKRAHASANYA\n\t{0x17DD, 0x17DD, prN},     // Mn         KHMER SIGN ATTHACAN\n\t{0x17E0, 0x17E9, prN},     // Nd    [10] KHMER DIGIT ZERO..KHMER DIGIT NINE\n\t{0x17F0, 0x17F9, prN},     // No    [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON\n\t{0x1800, 0x1805, prN},     // Po     [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS\n\t{0x1806, 0x1806, prN},     // Pd         MONGOLIAN TODO SOFT HYPHEN\n\t{0x1807, 0x180A, prN},     // Po     [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU\n\t{0x180B, 0x180D, prN},     // Mn     [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE\n\t{0x180E, 0x180E, prN},     // Cf         MONGOLIAN VOWEL SEPARATOR\n\t{0x180F, 0x180F, prN},     // Mn         MONGOLIAN FREE VARIATION SELECTOR FOUR\n\t{0x1810, 0x1819, prN},     // Nd    [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE\n\t{0x1820, 0x1842, prN},     // Lo    [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI\n\t{0x1843, 0x1843, prN},     // Lm         MONGOLIAN LETTER TODO LONG VOWEL SIGN\n\t{0x1844, 0x1878, prN},     // Lo    [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS\n\t{0x1880, 0x1884, prN},     // Lo     [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA\n\t{0x1885, 0x1886, prN},     // Mn     [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA\n\t{0x1887, 0x18A8, prN},     // Lo    [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA\n\t{0x18A9, 0x18A9, prN},     // Mn         MONGOLIAN LETTER ALI GALI DAGALGA\n\t{0x18AA, 0x18AA, prN},     // Lo         MONGOLIAN LETTER MANCHU ALI GALI LHA\n\t{0x18B0, 0x18F5, prN},     // Lo    [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S\n\t{0x1900, 0x191E, prN},     // Lo    [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA\n\t{0x1920, 0x1922, prN},     // Mn     [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U\n\t{0x1923, 0x1926, prN},     // Mc     [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU\n\t{0x1927, 0x1928, prN},     // Mn     [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O\n\t{0x1929, 0x192B, prN},     // Mc     [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA\n\t{0x1930, 0x1931, prN},     // Mc     [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA\n\t{0x1932, 0x1932, prN},     // Mn         LIMBU SMALL LETTER ANUSVARA\n\t{0x1933, 0x1938, prN},     // Mc     [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA\n\t{0x1939, 0x193B, prN},     // Mn     [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I\n\t{0x1940, 0x1940, prN},     // So         LIMBU SIGN LOO\n\t{0x1944, 0x1945, prN},     // Po     [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK\n\t{0x1946, 0x194F, prN},     // Nd    [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE\n\t{0x1950, 0x196D, prN},     // Lo    [30] TAI LE LETTER KA..TAI LE LETTER AI\n\t{0x1970, 0x1974, prN},     // Lo     [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6\n\t{0x1980, 0x19AB, prN},     // Lo    [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA\n\t{0x19B0, 0x19C9, prN},     // Lo    [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2\n\t{0x19D0, 0x19D9, prN},     // Nd    [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE\n\t{0x19DA, 0x19DA, prN},     // No         NEW TAI LUE THAM DIGIT ONE\n\t{0x19DE, 0x19DF, prN},     // So     [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV\n\t{0x19E0, 0x19FF, prN},     // So    [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC\n\t{0x1A00, 0x1A16, prN},     // Lo    [23] BUGINESE LETTER KA..BUGINESE LETTER HA\n\t{0x1A17, 0x1A18, prN},     // Mn     [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U\n\t{0x1A19, 0x1A1A, prN},     // Mc     [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O\n\t{0x1A1B, 0x1A1B, prN},     // Mn         BUGINESE VOWEL SIGN AE\n\t{0x1A1E, 0x1A1F, prN},     // Po     [2] BUGINESE PALLAWA..BUGINESE END OF SECTION\n\t{0x1A20, 0x1A54, prN},     // Lo    [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA\n\t{0x1A55, 0x1A55, prN},     // Mc         TAI THAM CONSONANT SIGN MEDIAL RA\n\t{0x1A56, 0x1A56, prN},     // Mn         TAI THAM CONSONANT SIGN MEDIAL LA\n\t{0x1A57, 0x1A57, prN},     // Mc         TAI THAM CONSONANT SIGN LA TANG LAI\n\t{0x1A58, 0x1A5E, prN},     // Mn     [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA\n\t{0x1A60, 0x1A60, prN},     // Mn         TAI THAM SIGN SAKOT\n\t{0x1A61, 0x1A61, prN},     // Mc         TAI THAM VOWEL SIGN A\n\t{0x1A62, 0x1A62, prN},     // Mn         TAI THAM VOWEL SIGN MAI SAT\n\t{0x1A63, 0x1A64, prN},     // Mc     [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA\n\t{0x1A65, 0x1A6C, prN},     // Mn     [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW\n\t{0x1A6D, 0x1A72, prN},     // Mc     [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI\n\t{0x1A73, 0x1A7C, prN},     // Mn    [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN\n\t{0x1A7F, 0x1A7F, prN},     // Mn         TAI THAM COMBINING CRYPTOGRAMMIC DOT\n\t{0x1A80, 0x1A89, prN},     // Nd    [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE\n\t{0x1A90, 0x1A99, prN},     // Nd    [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE\n\t{0x1AA0, 0x1AA6, prN},     // Po     [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA\n\t{0x1AA7, 0x1AA7, prN},     // Lm         TAI THAM SIGN MAI YAMOK\n\t{0x1AA8, 0x1AAD, prN},     // Po     [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG\n\t{0x1AB0, 0x1ABD, prN},     // Mn    [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW\n\t{0x1ABE, 0x1ABE, prN},     // Me         COMBINING PARENTHESES OVERLAY\n\t{0x1ABF, 0x1ACE, prN},     // Mn    [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T\n\t{0x1B00, 0x1B03, prN},     // Mn     [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG\n\t{0x1B04, 0x1B04, prN},     // Mc         BALINESE SIGN BISAH\n\t{0x1B05, 0x1B33, prN},     // Lo    [47] BALINESE LETTER AKARA..BALINESE LETTER HA\n\t{0x1B34, 0x1B34, prN},     // Mn         BALINESE SIGN REREKAN\n\t{0x1B35, 0x1B35, prN},     // Mc         BALINESE VOWEL SIGN TEDUNG\n\t{0x1B36, 0x1B3A, prN},     // Mn     [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA\n\t{0x1B3B, 0x1B3B, prN},     // Mc         BALINESE VOWEL SIGN RA REPA TEDUNG\n\t{0x1B3C, 0x1B3C, prN},     // Mn         BALINESE VOWEL SIGN LA LENGA\n\t{0x1B3D, 0x1B41, prN},     // Mc     [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG\n\t{0x1B42, 0x1B42, prN},     // Mn         BALINESE VOWEL SIGN PEPET\n\t{0x1B43, 0x1B44, prN},     // Mc     [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG\n\t{0x1B45, 0x1B4C, prN},     // Lo     [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA\n\t{0x1B50, 0x1B59, prN},     // Nd    [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE\n\t{0x1B5A, 0x1B60, prN},     // Po     [7] BALINESE PANTI..BALINESE PAMENENG\n\t{0x1B61, 0x1B6A, prN},     // So    [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE\n\t{0x1B6B, 0x1B73, prN},     // Mn     [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG\n\t{0x1B74, 0x1B7C, prN},     // So     [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING\n\t{0x1B7D, 0x1B7E, prN},     // Po     [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG\n\t{0x1B80, 0x1B81, prN},     // Mn     [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR\n\t{0x1B82, 0x1B82, prN},     // Mc         SUNDANESE SIGN PANGWISAD\n\t{0x1B83, 0x1BA0, prN},     // Lo    [30] SUNDANESE LETTER A..SUNDANESE LETTER HA\n\t{0x1BA1, 0x1BA1, prN},     // Mc         SUNDANESE CONSONANT SIGN PAMINGKAL\n\t{0x1BA2, 0x1BA5, prN},     // Mn     [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU\n\t{0x1BA6, 0x1BA7, prN},     // Mc     [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG\n\t{0x1BA8, 0x1BA9, prN},     // Mn     [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG\n\t{0x1BAA, 0x1BAA, prN},     // Mc         SUNDANESE SIGN PAMAAEH\n\t{0x1BAB, 0x1BAD, prN},     // Mn     [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA\n\t{0x1BAE, 0x1BAF, prN},     // Lo     [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA\n\t{0x1BB0, 0x1BB9, prN},     // Nd    [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE\n\t{0x1BBA, 0x1BBF, prN},     // Lo     [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M\n\t{0x1BC0, 0x1BE5, prN},     // Lo    [38] BATAK LETTER A..BATAK LETTER U\n\t{0x1BE6, 0x1BE6, prN},     // Mn         BATAK SIGN TOMPI\n\t{0x1BE7, 0x1BE7, prN},     // Mc         BATAK VOWEL SIGN E\n\t{0x1BE8, 0x1BE9, prN},     // Mn     [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE\n\t{0x1BEA, 0x1BEC, prN},     // Mc     [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O\n\t{0x1BED, 0x1BED, prN},     // Mn         BATAK VOWEL SIGN KARO O\n\t{0x1BEE, 0x1BEE, prN},     // Mc         BATAK VOWEL SIGN U\n\t{0x1BEF, 0x1BF1, prN},     // Mn     [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H\n\t{0x1BF2, 0x1BF3, prN},     // Mc     [2] BATAK PANGOLAT..BATAK PANONGONAN\n\t{0x1BFC, 0x1BFF, prN},     // Po     [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT\n\t{0x1C00, 0x1C23, prN},     // Lo    [36] LEPCHA LETTER KA..LEPCHA LETTER A\n\t{0x1C24, 0x1C2B, prN},     // Mc     [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU\n\t{0x1C2C, 0x1C33, prN},     // Mn     [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T\n\t{0x1C34, 0x1C35, prN},     // Mc     [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG\n\t{0x1C36, 0x1C37, prN},     // Mn     [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA\n\t{0x1C3B, 0x1C3F, prN},     // Po     [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK\n\t{0x1C40, 0x1C49, prN},     // Nd    [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE\n\t{0x1C4D, 0x1C4F, prN},     // Lo     [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA\n\t{0x1C50, 0x1C59, prN},     // Nd    [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE\n\t{0x1C5A, 0x1C77, prN},     // Lo    [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH\n\t{0x1C78, 0x1C7D, prN},     // Lm     [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD\n\t{0x1C7E, 0x1C7F, prN},     // Po     [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD\n\t{0x1C80, 0x1C88, prN},     // Ll     [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK\n\t{0x1C90, 0x1CBA, prN},     // Lu    [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN\n\t{0x1CBD, 0x1CBF, prN},     // Lu     [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN\n\t{0x1CC0, 0x1CC7, prN},     // Po     [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA\n\t{0x1CD0, 0x1CD2, prN},     // Mn     [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA\n\t{0x1CD3, 0x1CD3, prN},     // Po         VEDIC SIGN NIHSHVASA\n\t{0x1CD4, 0x1CE0, prN},     // Mn    [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA\n\t{0x1CE1, 0x1CE1, prN},     // Mc         VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA\n\t{0x1CE2, 0x1CE8, prN},     // Mn     [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL\n\t{0x1CE9, 0x1CEC, prN},     // Lo     [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL\n\t{0x1CED, 0x1CED, prN},     // Mn         VEDIC SIGN TIRYAK\n\t{0x1CEE, 0x1CF3, prN},     // Lo     [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA\n\t{0x1CF4, 0x1CF4, prN},     // Mn         VEDIC TONE CANDRA ABOVE\n\t{0x1CF5, 0x1CF6, prN},     // Lo     [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA\n\t{0x1CF7, 0x1CF7, prN},     // Mc         VEDIC SIGN ATIKRAMA\n\t{0x1CF8, 0x1CF9, prN},     // Mn     [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE\n\t{0x1CFA, 0x1CFA, prN},     // Lo         VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA\n\t{0x1D00, 0x1D2B, prN},     // Ll    [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL\n\t{0x1D2C, 0x1D6A, prN},     // Lm    [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI\n\t{0x1D6B, 0x1D77, prN},     // Ll    [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G\n\t{0x1D78, 0x1D78, prN},     // Lm         MODIFIER LETTER CYRILLIC EN\n\t{0x1D79, 0x1D7F, prN},     // Ll     [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE\n\t{0x1D80, 0x1D9A, prN},     // Ll    [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK\n\t{0x1D9B, 0x1DBF, prN},     // Lm    [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA\n\t{0x1DC0, 0x1DFF, prN},     // Mn    [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW\n\t{0x1E00, 0x1EFF, prN},     // L&   [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP\n\t{0x1F00, 0x1F15, prN},     // L&    [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA\n\t{0x1F18, 0x1F1D, prN},     // Lu     [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA\n\t{0x1F20, 0x1F45, prN},     // L&    [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA\n\t{0x1F48, 0x1F4D, prN},     // Lu     [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA\n\t{0x1F50, 0x1F57, prN},     // Ll     [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI\n\t{0x1F59, 0x1F59, prN},     // Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA\n\t{0x1F5B, 0x1F5B, prN},     // Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA\n\t{0x1F5D, 0x1F5D, prN},     // Lu         GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA\n\t{0x1F5F, 0x1F7D, prN},     // L&    [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA\n\t{0x1F80, 0x1FB4, prN},     // L&    [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FB6, 0x1FBC, prN},     // L&     [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI\n\t{0x1FBD, 0x1FBD, prN},     // Sk         GREEK KORONIS\n\t{0x1FBE, 0x1FBE, prN},     // Ll         GREEK PROSGEGRAMMENI\n\t{0x1FBF, 0x1FC1, prN},     // Sk     [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI\n\t{0x1FC2, 0x1FC4, prN},     // Ll     [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FC6, 0x1FCC, prN},     // L&     [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI\n\t{0x1FCD, 0x1FCF, prN},     // Sk     [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI\n\t{0x1FD0, 0x1FD3, prN},     // Ll     [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA\n\t{0x1FD6, 0x1FDB, prN},     // L&     [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA\n\t{0x1FDD, 0x1FDF, prN},     // Sk     [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI\n\t{0x1FE0, 0x1FEC, prN},     // L&    [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA\n\t{0x1FED, 0x1FEF, prN},     // Sk     [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA\n\t{0x1FF2, 0x1FF4, prN},     // Ll     [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FF6, 0x1FFC, prN},     // L&     [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI\n\t{0x1FFD, 0x1FFE, prN},     // Sk     [2] GREEK OXIA..GREEK DASIA\n\t{0x2000, 0x200A, prN},     // Zs    [11] EN QUAD..HAIR SPACE\n\t{0x200B, 0x200F, prN},     // Cf     [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK\n\t{0x2010, 0x2010, prA},     // Pd         HYPHEN\n\t{0x2011, 0x2012, prN},     // Pd     [2] NON-BREAKING HYPHEN..FIGURE DASH\n\t{0x2013, 0x2015, prA},     // Pd     [3] EN DASH..HORIZONTAL BAR\n\t{0x2016, 0x2016, prA},     // Po         DOUBLE VERTICAL LINE\n\t{0x2017, 0x2017, prN},     // Po         DOUBLE LOW LINE\n\t{0x2018, 0x2018, prA},     // Pi         LEFT SINGLE QUOTATION MARK\n\t{0x2019, 0x2019, prA},     // Pf         RIGHT SINGLE QUOTATION MARK\n\t{0x201A, 0x201A, prN},     // Ps         SINGLE LOW-9 QUOTATION MARK\n\t{0x201B, 0x201B, prN},     // Pi         SINGLE HIGH-REVERSED-9 QUOTATION MARK\n\t{0x201C, 0x201C, prA},     // Pi         LEFT DOUBLE QUOTATION MARK\n\t{0x201D, 0x201D, prA},     // Pf         RIGHT DOUBLE QUOTATION MARK\n\t{0x201E, 0x201E, prN},     // Ps         DOUBLE LOW-9 QUOTATION MARK\n\t{0x201F, 0x201F, prN},     // Pi         DOUBLE HIGH-REVERSED-9 QUOTATION MARK\n\t{0x2020, 0x2022, prA},     // Po     [3] DAGGER..BULLET\n\t{0x2023, 0x2023, prN},     // Po         TRIANGULAR BULLET\n\t{0x2024, 0x2027, prA},     // Po     [4] ONE DOT LEADER..HYPHENATION POINT\n\t{0x2028, 0x2028, prN},     // Zl         LINE SEPARATOR\n\t{0x2029, 0x2029, prN},     // Zp         PARAGRAPH SEPARATOR\n\t{0x202A, 0x202E, prN},     // Cf     [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE\n\t{0x202F, 0x202F, prN},     // Zs         NARROW NO-BREAK SPACE\n\t{0x2030, 0x2030, prA},     // Po         PER MILLE SIGN\n\t{0x2031, 0x2031, prN},     // Po         PER TEN THOUSAND SIGN\n\t{0x2032, 0x2033, prA},     // Po     [2] PRIME..DOUBLE PRIME\n\t{0x2034, 0x2034, prN},     // Po         TRIPLE PRIME\n\t{0x2035, 0x2035, prA},     // Po         REVERSED PRIME\n\t{0x2036, 0x2038, prN},     // Po     [3] REVERSED DOUBLE PRIME..CARET\n\t{0x2039, 0x2039, prN},     // Pi         SINGLE LEFT-POINTING ANGLE QUOTATION MARK\n\t{0x203A, 0x203A, prN},     // Pf         SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\n\t{0x203B, 0x203B, prA},     // Po         REFERENCE MARK\n\t{0x203C, 0x203D, prN},     // Po     [2] DOUBLE EXCLAMATION MARK..INTERROBANG\n\t{0x203E, 0x203E, prA},     // Po         OVERLINE\n\t{0x203F, 0x2040, prN},     // Pc     [2] UNDERTIE..CHARACTER TIE\n\t{0x2041, 0x2043, prN},     // Po     [3] CARET INSERTION POINT..HYPHEN BULLET\n\t{0x2044, 0x2044, prN},     // Sm         FRACTION SLASH\n\t{0x2045, 0x2045, prN},     // Ps         LEFT SQUARE BRACKET WITH QUILL\n\t{0x2046, 0x2046, prN},     // Pe         RIGHT SQUARE BRACKET WITH QUILL\n\t{0x2047, 0x2051, prN},     // Po    [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY\n\t{0x2052, 0x2052, prN},     // Sm         COMMERCIAL MINUS SIGN\n\t{0x2053, 0x2053, prN},     // Po         SWUNG DASH\n\t{0x2054, 0x2054, prN},     // Pc         INVERTED UNDERTIE\n\t{0x2055, 0x205E, prN},     // Po    [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS\n\t{0x205F, 0x205F, prN},     // Zs         MEDIUM MATHEMATICAL SPACE\n\t{0x2060, 0x2064, prN},     // Cf     [5] WORD JOINER..INVISIBLE PLUS\n\t{0x2066, 0x206F, prN},     // Cf    [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES\n\t{0x2070, 0x2070, prN},     // No         SUPERSCRIPT ZERO\n\t{0x2071, 0x2071, prN},     // Lm         SUPERSCRIPT LATIN SMALL LETTER I\n\t{0x2074, 0x2074, prA},     // No         SUPERSCRIPT FOUR\n\t{0x2075, 0x2079, prN},     // No     [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE\n\t{0x207A, 0x207C, prN},     // Sm     [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN\n\t{0x207D, 0x207D, prN},     // Ps         SUPERSCRIPT LEFT PARENTHESIS\n\t{0x207E, 0x207E, prN},     // Pe         SUPERSCRIPT RIGHT PARENTHESIS\n\t{0x207F, 0x207F, prA},     // Lm         SUPERSCRIPT LATIN SMALL LETTER N\n\t{0x2080, 0x2080, prN},     // No         SUBSCRIPT ZERO\n\t{0x2081, 0x2084, prA},     // No     [4] SUBSCRIPT ONE..SUBSCRIPT FOUR\n\t{0x2085, 0x2089, prN},     // No     [5] SUBSCRIPT FIVE..SUBSCRIPT NINE\n\t{0x208A, 0x208C, prN},     // Sm     [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN\n\t{0x208D, 0x208D, prN},     // Ps         SUBSCRIPT LEFT PARENTHESIS\n\t{0x208E, 0x208E, prN},     // Pe         SUBSCRIPT RIGHT PARENTHESIS\n\t{0x2090, 0x209C, prN},     // Lm    [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T\n\t{0x20A0, 0x20A8, prN},     // Sc     [9] EURO-CURRENCY SIGN..RUPEE SIGN\n\t{0x20A9, 0x20A9, prH},     // Sc         WON SIGN\n\t{0x20AA, 0x20AB, prN},     // Sc     [2] NEW SHEQEL SIGN..DONG SIGN\n\t{0x20AC, 0x20AC, prA},     // Sc         EURO SIGN\n\t{0x20AD, 0x20C0, prN},     // Sc    [20] KIP SIGN..SOM SIGN\n\t{0x20D0, 0x20DC, prN},     // Mn    [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE\n\t{0x20DD, 0x20E0, prN},     // Me     [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH\n\t{0x20E1, 0x20E1, prN},     // Mn         COMBINING LEFT RIGHT ARROW ABOVE\n\t{0x20E2, 0x20E4, prN},     // Me     [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE\n\t{0x20E5, 0x20F0, prN},     // Mn    [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE\n\t{0x2100, 0x2101, prN},     // So     [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT\n\t{0x2102, 0x2102, prN},     // Lu         DOUBLE-STRUCK CAPITAL C\n\t{0x2103, 0x2103, prA},     // So         DEGREE CELSIUS\n\t{0x2104, 0x2104, prN},     // So         CENTRE LINE SYMBOL\n\t{0x2105, 0x2105, prA},     // So         CARE OF\n\t{0x2106, 0x2106, prN},     // So         CADA UNA\n\t{0x2107, 0x2107, prN},     // Lu         EULER CONSTANT\n\t{0x2108, 0x2108, prN},     // So         SCRUPLE\n\t{0x2109, 0x2109, prA},     // So         DEGREE FAHRENHEIT\n\t{0x210A, 0x2112, prN},     // L&     [9] SCRIPT SMALL G..SCRIPT CAPITAL L\n\t{0x2113, 0x2113, prA},     // Ll         SCRIPT SMALL L\n\t{0x2114, 0x2114, prN},     // So         L B BAR SYMBOL\n\t{0x2115, 0x2115, prN},     // Lu         DOUBLE-STRUCK CAPITAL N\n\t{0x2116, 0x2116, prA},     // So         NUMERO SIGN\n\t{0x2117, 0x2117, prN},     // So         SOUND RECORDING COPYRIGHT\n\t{0x2118, 0x2118, prN},     // Sm         SCRIPT CAPITAL P\n\t{0x2119, 0x211D, prN},     // Lu     [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R\n\t{0x211E, 0x2120, prN},     // So     [3] PRESCRIPTION TAKE..SERVICE MARK\n\t{0x2121, 0x2122, prA},     // So     [2] TELEPHONE SIGN..TRADE MARK SIGN\n\t{0x2123, 0x2123, prN},     // So         VERSICLE\n\t{0x2124, 0x2124, prN},     // Lu         DOUBLE-STRUCK CAPITAL Z\n\t{0x2125, 0x2125, prN},     // So         OUNCE SIGN\n\t{0x2126, 0x2126, prA},     // Lu         OHM SIGN\n\t{0x2127, 0x2127, prN},     // So         INVERTED OHM SIGN\n\t{0x2128, 0x2128, prN},     // Lu         BLACK-LETTER CAPITAL Z\n\t{0x2129, 0x2129, prN},     // So         TURNED GREEK SMALL LETTER IOTA\n\t{0x212A, 0x212A, prN},     // Lu         KELVIN SIGN\n\t{0x212B, 0x212B, prA},     // Lu         ANGSTROM SIGN\n\t{0x212C, 0x212D, prN},     // Lu     [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C\n\t{0x212E, 0x212E, prN},     // So         ESTIMATED SYMBOL\n\t{0x212F, 0x2134, prN},     // L&     [6] SCRIPT SMALL E..SCRIPT SMALL O\n\t{0x2135, 0x2138, prN},     // Lo     [4] ALEF SYMBOL..DALET SYMBOL\n\t{0x2139, 0x2139, prN},     // Ll         INFORMATION SOURCE\n\t{0x213A, 0x213B, prN},     // So     [2] ROTATED CAPITAL Q..FACSIMILE SIGN\n\t{0x213C, 0x213F, prN},     // L&     [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI\n\t{0x2140, 0x2144, prN},     // Sm     [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y\n\t{0x2145, 0x2149, prN},     // L&     [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J\n\t{0x214A, 0x214A, prN},     // So         PROPERTY LINE\n\t{0x214B, 0x214B, prN},     // Sm         TURNED AMPERSAND\n\t{0x214C, 0x214D, prN},     // So     [2] PER SIGN..AKTIESELSKAB\n\t{0x214E, 0x214E, prN},     // Ll         TURNED SMALL F\n\t{0x214F, 0x214F, prN},     // So         SYMBOL FOR SAMARITAN SOURCE\n\t{0x2150, 0x2152, prN},     // No     [3] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE TENTH\n\t{0x2153, 0x2154, prA},     // No     [2] VULGAR FRACTION ONE THIRD..VULGAR FRACTION TWO THIRDS\n\t{0x2155, 0x215A, prN},     // No     [6] VULGAR FRACTION ONE FIFTH..VULGAR FRACTION FIVE SIXTHS\n\t{0x215B, 0x215E, prA},     // No     [4] VULGAR FRACTION ONE EIGHTH..VULGAR FRACTION SEVEN EIGHTHS\n\t{0x215F, 0x215F, prN},     // No         FRACTION NUMERATOR ONE\n\t{0x2160, 0x216B, prA},     // Nl    [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE\n\t{0x216C, 0x216F, prN},     // Nl     [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND\n\t{0x2170, 0x2179, prA},     // Nl    [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN\n\t{0x217A, 0x2182, prN},     // Nl     [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND\n\t{0x2183, 0x2184, prN},     // L&     [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C\n\t{0x2185, 0x2188, prN},     // Nl     [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND\n\t{0x2189, 0x2189, prA},     // No         VULGAR FRACTION ZERO THIRDS\n\t{0x218A, 0x218B, prN},     // So     [2] TURNED DIGIT TWO..TURNED DIGIT THREE\n\t{0x2190, 0x2194, prA},     // Sm     [5] LEFTWARDS ARROW..LEFT RIGHT ARROW\n\t{0x2195, 0x2199, prA},     // So     [5] UP DOWN ARROW..SOUTH WEST ARROW\n\t{0x219A, 0x219B, prN},     // Sm     [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE\n\t{0x219C, 0x219F, prN},     // So     [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW\n\t{0x21A0, 0x21A0, prN},     // Sm         RIGHTWARDS TWO HEADED ARROW\n\t{0x21A1, 0x21A2, prN},     // So     [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL\n\t{0x21A3, 0x21A3, prN},     // Sm         RIGHTWARDS ARROW WITH TAIL\n\t{0x21A4, 0x21A5, prN},     // So     [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR\n\t{0x21A6, 0x21A6, prN},     // Sm         RIGHTWARDS ARROW FROM BAR\n\t{0x21A7, 0x21AD, prN},     // So     [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW\n\t{0x21AE, 0x21AE, prN},     // Sm         LEFT RIGHT ARROW WITH STROKE\n\t{0x21AF, 0x21B7, prN},     // So     [9] DOWNWARDS ZIGZAG ARROW..CLOCKWISE TOP SEMICIRCLE ARROW\n\t{0x21B8, 0x21B9, prA},     // So     [2] NORTH WEST ARROW TO LONG BAR..LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR\n\t{0x21BA, 0x21CD, prN},     // So    [20] ANTICLOCKWISE OPEN CIRCLE ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE\n\t{0x21CE, 0x21CF, prN},     // Sm     [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE\n\t{0x21D0, 0x21D1, prN},     // So     [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW\n\t{0x21D2, 0x21D2, prA},     // Sm         RIGHTWARDS DOUBLE ARROW\n\t{0x21D3, 0x21D3, prN},     // So         DOWNWARDS DOUBLE ARROW\n\t{0x21D4, 0x21D4, prA},     // Sm         LEFT RIGHT DOUBLE ARROW\n\t{0x21D5, 0x21E6, prN},     // So    [18] UP DOWN DOUBLE ARROW..LEFTWARDS WHITE ARROW\n\t{0x21E7, 0x21E7, prA},     // So         UPWARDS WHITE ARROW\n\t{0x21E8, 0x21F3, prN},     // So    [12] RIGHTWARDS WHITE ARROW..UP DOWN WHITE ARROW\n\t{0x21F4, 0x21FF, prN},     // Sm    [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW\n\t{0x2200, 0x2200, prA},     // Sm         FOR ALL\n\t{0x2201, 0x2201, prN},     // Sm         COMPLEMENT\n\t{0x2202, 0x2203, prA},     // Sm     [2] PARTIAL DIFFERENTIAL..THERE EXISTS\n\t{0x2204, 0x2206, prN},     // Sm     [3] THERE DOES NOT EXIST..INCREMENT\n\t{0x2207, 0x2208, prA},     // Sm     [2] NABLA..ELEMENT OF\n\t{0x2209, 0x220A, prN},     // Sm     [2] NOT AN ELEMENT OF..SMALL ELEMENT OF\n\t{0x220B, 0x220B, prA},     // Sm         CONTAINS AS MEMBER\n\t{0x220C, 0x220E, prN},     // Sm     [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF\n\t{0x220F, 0x220F, prA},     // Sm         N-ARY PRODUCT\n\t{0x2210, 0x2210, prN},     // Sm         N-ARY COPRODUCT\n\t{0x2211, 0x2211, prA},     // Sm         N-ARY SUMMATION\n\t{0x2212, 0x2214, prN},     // Sm     [3] MINUS SIGN..DOT PLUS\n\t{0x2215, 0x2215, prA},     // Sm         DIVISION SLASH\n\t{0x2216, 0x2219, prN},     // Sm     [4] SET MINUS..BULLET OPERATOR\n\t{0x221A, 0x221A, prA},     // Sm         SQUARE ROOT\n\t{0x221B, 0x221C, prN},     // Sm     [2] CUBE ROOT..FOURTH ROOT\n\t{0x221D, 0x2220, prA},     // Sm     [4] PROPORTIONAL TO..ANGLE\n\t{0x2221, 0x2222, prN},     // Sm     [2] MEASURED ANGLE..SPHERICAL ANGLE\n\t{0x2223, 0x2223, prA},     // Sm         DIVIDES\n\t{0x2224, 0x2224, prN},     // Sm         DOES NOT DIVIDE\n\t{0x2225, 0x2225, prA},     // Sm         PARALLEL TO\n\t{0x2226, 0x2226, prN},     // Sm         NOT PARALLEL TO\n\t{0x2227, 0x222C, prA},     // Sm     [6] LOGICAL AND..DOUBLE INTEGRAL\n\t{0x222D, 0x222D, prN},     // Sm         TRIPLE INTEGRAL\n\t{0x222E, 0x222E, prA},     // Sm         CONTOUR INTEGRAL\n\t{0x222F, 0x2233, prN},     // Sm     [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL\n\t{0x2234, 0x2237, prA},     // Sm     [4] THEREFORE..PROPORTION\n\t{0x2238, 0x223B, prN},     // Sm     [4] DOT MINUS..HOMOTHETIC\n\t{0x223C, 0x223D, prA},     // Sm     [2] TILDE OPERATOR..REVERSED TILDE\n\t{0x223E, 0x2247, prN},     // Sm    [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO\n\t{0x2248, 0x2248, prA},     // Sm         ALMOST EQUAL TO\n\t{0x2249, 0x224B, prN},     // Sm     [3] NOT ALMOST EQUAL TO..TRIPLE TILDE\n\t{0x224C, 0x224C, prA},     // Sm         ALL EQUAL TO\n\t{0x224D, 0x2251, prN},     // Sm     [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO\n\t{0x2252, 0x2252, prA},     // Sm         APPROXIMATELY EQUAL TO OR THE IMAGE OF\n\t{0x2253, 0x225F, prN},     // Sm    [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO\n\t{0x2260, 0x2261, prA},     // Sm     [2] NOT EQUAL TO..IDENTICAL TO\n\t{0x2262, 0x2263, prN},     // Sm     [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO\n\t{0x2264, 0x2267, prA},     // Sm     [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO\n\t{0x2268, 0x2269, prN},     // Sm     [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO\n\t{0x226A, 0x226B, prA},     // Sm     [2] MUCH LESS-THAN..MUCH GREATER-THAN\n\t{0x226C, 0x226D, prN},     // Sm     [2] BETWEEN..NOT EQUIVALENT TO\n\t{0x226E, 0x226F, prA},     // Sm     [2] NOT LESS-THAN..NOT GREATER-THAN\n\t{0x2270, 0x2281, prN},     // Sm    [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED\n\t{0x2282, 0x2283, prA},     // Sm     [2] SUBSET OF..SUPERSET OF\n\t{0x2284, 0x2285, prN},     // Sm     [2] NOT A SUBSET OF..NOT A SUPERSET OF\n\t{0x2286, 0x2287, prA},     // Sm     [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO\n\t{0x2288, 0x2294, prN},     // Sm    [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP\n\t{0x2295, 0x2295, prA},     // Sm         CIRCLED PLUS\n\t{0x2296, 0x2298, prN},     // Sm     [3] CIRCLED MINUS..CIRCLED DIVISION SLASH\n\t{0x2299, 0x2299, prA},     // Sm         CIRCLED DOT OPERATOR\n\t{0x229A, 0x22A4, prN},     // Sm    [11] CIRCLED RING OPERATOR..DOWN TACK\n\t{0x22A5, 0x22A5, prA},     // Sm         UP TACK\n\t{0x22A6, 0x22BE, prN},     // Sm    [25] ASSERTION..RIGHT ANGLE WITH ARC\n\t{0x22BF, 0x22BF, prA},     // Sm         RIGHT TRIANGLE\n\t{0x22C0, 0x22FF, prN},     // Sm    [64] N-ARY LOGICAL AND..Z NOTATION BAG MEMBERSHIP\n\t{0x2300, 0x2307, prN},     // So     [8] DIAMETER SIGN..WAVY LINE\n\t{0x2308, 0x2308, prN},     // Ps         LEFT CEILING\n\t{0x2309, 0x2309, prN},     // Pe         RIGHT CEILING\n\t{0x230A, 0x230A, prN},     // Ps         LEFT FLOOR\n\t{0x230B, 0x230B, prN},     // Pe         RIGHT FLOOR\n\t{0x230C, 0x2311, prN},     // So     [6] BOTTOM RIGHT CROP..SQUARE LOZENGE\n\t{0x2312, 0x2312, prA},     // So         ARC\n\t{0x2313, 0x2319, prN},     // So     [7] SEGMENT..TURNED NOT SIGN\n\t{0x231A, 0x231B, prW},     // So     [2] WATCH..HOURGLASS\n\t{0x231C, 0x231F, prN},     // So     [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER\n\t{0x2320, 0x2321, prN},     // Sm     [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL\n\t{0x2322, 0x2328, prN},     // So     [7] FROWN..KEYBOARD\n\t{0x2329, 0x2329, prW},     // Ps         LEFT-POINTING ANGLE BRACKET\n\t{0x232A, 0x232A, prW},     // Pe         RIGHT-POINTING ANGLE BRACKET\n\t{0x232B, 0x237B, prN},     // So    [81] ERASE TO THE LEFT..NOT CHECK MARK\n\t{0x237C, 0x237C, prN},     // Sm         RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW\n\t{0x237D, 0x239A, prN},     // So    [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL\n\t{0x239B, 0x23B3, prN},     // Sm    [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM\n\t{0x23B4, 0x23DB, prN},     // So    [40] TOP SQUARE BRACKET..FUSE\n\t{0x23DC, 0x23E1, prN},     // Sm     [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET\n\t{0x23E2, 0x23E8, prN},     // So     [7] WHITE TRAPEZIUM..DECIMAL EXPONENT SYMBOL\n\t{0x23E9, 0x23EC, prW},     // So     [4] BLACK RIGHT-POINTING DOUBLE TRIANGLE..BLACK DOWN-POINTING DOUBLE TRIANGLE\n\t{0x23ED, 0x23EF, prN},     // So     [3] BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR\n\t{0x23F0, 0x23F0, prW},     // So         ALARM CLOCK\n\t{0x23F1, 0x23F2, prN},     // So     [2] STOPWATCH..TIMER CLOCK\n\t{0x23F3, 0x23F3, prW},     // So         HOURGLASS WITH FLOWING SAND\n\t{0x23F4, 0x23FF, prN},     // So    [12] BLACK MEDIUM LEFT-POINTING TRIANGLE..OBSERVER EYE SYMBOL\n\t{0x2400, 0x2426, prN},     // So    [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO\n\t{0x2440, 0x244A, prN},     // So    [11] OCR HOOK..OCR DOUBLE BACKSLASH\n\t{0x2460, 0x249B, prA},     // No    [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP\n\t{0x249C, 0x24E9, prA},     // So    [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z\n\t{0x24EA, 0x24EA, prN},     // No         CIRCLED DIGIT ZERO\n\t{0x24EB, 0x24FF, prA},     // No    [21] NEGATIVE CIRCLED NUMBER ELEVEN..NEGATIVE CIRCLED DIGIT ZERO\n\t{0x2500, 0x254B, prA},     // So    [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL\n\t{0x254C, 0x254F, prN},     // So     [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL\n\t{0x2550, 0x2573, prA},     // So    [36] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT DIAGONAL CROSS\n\t{0x2574, 0x257F, prN},     // So    [12] BOX DRAWINGS LIGHT LEFT..BOX DRAWINGS HEAVY UP AND LIGHT DOWN\n\t{0x2580, 0x258F, prA},     // So    [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK\n\t{0x2590, 0x2591, prN},     // So     [2] RIGHT HALF BLOCK..LIGHT SHADE\n\t{0x2592, 0x2595, prA},     // So     [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK\n\t{0x2596, 0x259F, prN},     // So    [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT\n\t{0x25A0, 0x25A1, prA},     // So     [2] BLACK SQUARE..WHITE SQUARE\n\t{0x25A2, 0x25A2, prN},     // So         WHITE SQUARE WITH ROUNDED CORNERS\n\t{0x25A3, 0x25A9, prA},     // So     [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL\n\t{0x25AA, 0x25B1, prN},     // So     [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM\n\t{0x25B2, 0x25B3, prA},     // So     [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE\n\t{0x25B4, 0x25B5, prN},     // So     [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE\n\t{0x25B6, 0x25B6, prA},     // So         BLACK RIGHT-POINTING TRIANGLE\n\t{0x25B7, 0x25B7, prA},     // Sm         WHITE RIGHT-POINTING TRIANGLE\n\t{0x25B8, 0x25BB, prN},     // So     [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER\n\t{0x25BC, 0x25BD, prA},     // So     [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE\n\t{0x25BE, 0x25BF, prN},     // So     [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE\n\t{0x25C0, 0x25C0, prA},     // So         BLACK LEFT-POINTING TRIANGLE\n\t{0x25C1, 0x25C1, prA},     // Sm         WHITE LEFT-POINTING TRIANGLE\n\t{0x25C2, 0x25C5, prN},     // So     [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER\n\t{0x25C6, 0x25C8, prA},     // So     [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND\n\t{0x25C9, 0x25CA, prN},     // So     [2] FISHEYE..LOZENGE\n\t{0x25CB, 0x25CB, prA},     // So         WHITE CIRCLE\n\t{0x25CC, 0x25CD, prN},     // So     [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL\n\t{0x25CE, 0x25D1, prA},     // So     [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK\n\t{0x25D2, 0x25E1, prN},     // So    [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE\n\t{0x25E2, 0x25E5, prA},     // So     [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE\n\t{0x25E6, 0x25EE, prN},     // So     [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK\n\t{0x25EF, 0x25EF, prA},     // So         LARGE CIRCLE\n\t{0x25F0, 0x25F7, prN},     // So     [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT\n\t{0x25F8, 0x25FC, prN},     // Sm     [5] UPPER LEFT TRIANGLE..BLACK MEDIUM SQUARE\n\t{0x25FD, 0x25FE, prW},     // Sm     [2] WHITE MEDIUM SMALL SQUARE..BLACK MEDIUM SMALL SQUARE\n\t{0x25FF, 0x25FF, prN},     // Sm         LOWER RIGHT TRIANGLE\n\t{0x2600, 0x2604, prN},     // So     [5] BLACK SUN WITH RAYS..COMET\n\t{0x2605, 0x2606, prA},     // So     [2] BLACK STAR..WHITE STAR\n\t{0x2607, 0x2608, prN},     // So     [2] LIGHTNING..THUNDERSTORM\n\t{0x2609, 0x2609, prA},     // So         SUN\n\t{0x260A, 0x260D, prN},     // So     [4] ASCENDING NODE..OPPOSITION\n\t{0x260E, 0x260F, prA},     // So     [2] BLACK TELEPHONE..WHITE TELEPHONE\n\t{0x2610, 0x2613, prN},     // So     [4] BALLOT BOX..SALTIRE\n\t{0x2614, 0x2615, prW},     // So     [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE\n\t{0x2616, 0x261B, prN},     // So     [6] WHITE SHOGI PIECE..BLACK RIGHT POINTING INDEX\n\t{0x261C, 0x261C, prA},     // So         WHITE LEFT POINTING INDEX\n\t{0x261D, 0x261D, prN},     // So         WHITE UP POINTING INDEX\n\t{0x261E, 0x261E, prA},     // So         WHITE RIGHT POINTING INDEX\n\t{0x261F, 0x263F, prN},     // So    [33] WHITE DOWN POINTING INDEX..MERCURY\n\t{0x2640, 0x2640, prA},     // So         FEMALE SIGN\n\t{0x2641, 0x2641, prN},     // So         EARTH\n\t{0x2642, 0x2642, prA},     // So         MALE SIGN\n\t{0x2643, 0x2647, prN},     // So     [5] JUPITER..PLUTO\n\t{0x2648, 0x2653, prW},     // So    [12] ARIES..PISCES\n\t{0x2654, 0x265F, prN},     // So    [12] WHITE CHESS KING..BLACK CHESS PAWN\n\t{0x2660, 0x2661, prA},     // So     [2] BLACK SPADE SUIT..WHITE HEART SUIT\n\t{0x2662, 0x2662, prN},     // So         WHITE DIAMOND SUIT\n\t{0x2663, 0x2665, prA},     // So     [3] BLACK CLUB SUIT..BLACK HEART SUIT\n\t{0x2666, 0x2666, prN},     // So         BLACK DIAMOND SUIT\n\t{0x2667, 0x266A, prA},     // So     [4] WHITE CLUB SUIT..EIGHTH NOTE\n\t{0x266B, 0x266B, prN},     // So         BEAMED EIGHTH NOTES\n\t{0x266C, 0x266D, prA},     // So     [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN\n\t{0x266E, 0x266E, prN},     // So         MUSIC NATURAL SIGN\n\t{0x266F, 0x266F, prA},     // Sm         MUSIC SHARP SIGN\n\t{0x2670, 0x267E, prN},     // So    [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN\n\t{0x267F, 0x267F, prW},     // So         WHEELCHAIR SYMBOL\n\t{0x2680, 0x2692, prN},     // So    [19] DIE FACE-1..HAMMER AND PICK\n\t{0x2693, 0x2693, prW},     // So         ANCHOR\n\t{0x2694, 0x269D, prN},     // So    [10] CROSSED SWORDS..OUTLINED WHITE STAR\n\t{0x269E, 0x269F, prA},     // So     [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT\n\t{0x26A0, 0x26A0, prN},     // So         WARNING SIGN\n\t{0x26A1, 0x26A1, prW},     // So         HIGH VOLTAGE SIGN\n\t{0x26A2, 0x26A9, prN},     // So     [8] DOUBLED FEMALE SIGN..HORIZONTAL MALE WITH STROKE SIGN\n\t{0x26AA, 0x26AB, prW},     // So     [2] MEDIUM WHITE CIRCLE..MEDIUM BLACK CIRCLE\n\t{0x26AC, 0x26BC, prN},     // So    [17] MEDIUM SMALL WHITE CIRCLE..SESQUIQUADRATE\n\t{0x26BD, 0x26BE, prW},     // So     [2] SOCCER BALL..BASEBALL\n\t{0x26BF, 0x26BF, prA},     // So         SQUARED KEY\n\t{0x26C0, 0x26C3, prN},     // So     [4] WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING\n\t{0x26C4, 0x26C5, prW},     // So     [2] SNOWMAN WITHOUT SNOW..SUN BEHIND CLOUD\n\t{0x26C6, 0x26CD, prA},     // So     [8] RAIN..DISABLED CAR\n\t{0x26CE, 0x26CE, prW},     // So         OPHIUCHUS\n\t{0x26CF, 0x26D3, prA},     // So     [5] PICK..CHAINS\n\t{0x26D4, 0x26D4, prW},     // So         NO ENTRY\n\t{0x26D5, 0x26E1, prA},     // So    [13] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..RESTRICTED LEFT ENTRY-2\n\t{0x26E2, 0x26E2, prN},     // So         ASTRONOMICAL SYMBOL FOR URANUS\n\t{0x26E3, 0x26E3, prA},     // So         HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE\n\t{0x26E4, 0x26E7, prN},     // So     [4] PENTAGRAM..INVERTED PENTAGRAM\n\t{0x26E8, 0x26E9, prA},     // So     [2] BLACK CROSS ON SHIELD..SHINTO SHRINE\n\t{0x26EA, 0x26EA, prW},     // So         CHURCH\n\t{0x26EB, 0x26F1, prA},     // So     [7] CASTLE..UMBRELLA ON GROUND\n\t{0x26F2, 0x26F3, prW},     // So     [2] FOUNTAIN..FLAG IN HOLE\n\t{0x26F4, 0x26F4, prA},     // So         FERRY\n\t{0x26F5, 0x26F5, prW},     // So         SAILBOAT\n\t{0x26F6, 0x26F9, prA},     // So     [4] SQUARE FOUR CORNERS..PERSON WITH BALL\n\t{0x26FA, 0x26FA, prW},     // So         TENT\n\t{0x26FB, 0x26FC, prA},     // So     [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL\n\t{0x26FD, 0x26FD, prW},     // So         FUEL PUMP\n\t{0x26FE, 0x26FF, prA},     // So     [2] CUP ON BLACK SQUARE..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE\n\t{0x2700, 0x2704, prN},     // So     [5] BLACK SAFETY SCISSORS..WHITE SCISSORS\n\t{0x2705, 0x2705, prW},     // So         WHITE HEAVY CHECK MARK\n\t{0x2706, 0x2709, prN},     // So     [4] TELEPHONE LOCATION SIGN..ENVELOPE\n\t{0x270A, 0x270B, prW},     // So     [2] RAISED FIST..RAISED HAND\n\t{0x270C, 0x2727, prN},     // So    [28] VICTORY HAND..WHITE FOUR POINTED STAR\n\t{0x2728, 0x2728, prW},     // So         SPARKLES\n\t{0x2729, 0x273C, prN},     // So    [20] STRESS OUTLINED WHITE STAR..OPEN CENTRE TEARDROP-SPOKED ASTERISK\n\t{0x273D, 0x273D, prA},     // So         HEAVY TEARDROP-SPOKED ASTERISK\n\t{0x273E, 0x274B, prN},     // So    [14] SIX PETALLED BLACK AND WHITE FLORETTE..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK\n\t{0x274C, 0x274C, prW},     // So         CROSS MARK\n\t{0x274D, 0x274D, prN},     // So         SHADOWED WHITE CIRCLE\n\t{0x274E, 0x274E, prW},     // So         NEGATIVE SQUARED CROSS MARK\n\t{0x274F, 0x2752, prN},     // So     [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE\n\t{0x2753, 0x2755, prW},     // So     [3] BLACK QUESTION MARK ORNAMENT..WHITE EXCLAMATION MARK ORNAMENT\n\t{0x2756, 0x2756, prN},     // So         BLACK DIAMOND MINUS WHITE X\n\t{0x2757, 0x2757, prW},     // So         HEAVY EXCLAMATION MARK SYMBOL\n\t{0x2758, 0x2767, prN},     // So    [16] LIGHT VERTICAL BAR..ROTATED FLORAL HEART BULLET\n\t{0x2768, 0x2768, prN},     // Ps         MEDIUM LEFT PARENTHESIS ORNAMENT\n\t{0x2769, 0x2769, prN},     // Pe         MEDIUM RIGHT PARENTHESIS ORNAMENT\n\t{0x276A, 0x276A, prN},     // Ps         MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT\n\t{0x276B, 0x276B, prN},     // Pe         MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT\n\t{0x276C, 0x276C, prN},     // Ps         MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x276D, 0x276D, prN},     // Pe         MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x276E, 0x276E, prN},     // Ps         HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT\n\t{0x276F, 0x276F, prN},     // Pe         HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT\n\t{0x2770, 0x2770, prN},     // Ps         HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x2771, 0x2771, prN},     // Pe         HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x2772, 0x2772, prN},     // Ps         LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT\n\t{0x2773, 0x2773, prN},     // Pe         LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT\n\t{0x2774, 0x2774, prN},     // Ps         MEDIUM LEFT CURLY BRACKET ORNAMENT\n\t{0x2775, 0x2775, prN},     // Pe         MEDIUM RIGHT CURLY BRACKET ORNAMENT\n\t{0x2776, 0x277F, prA},     // No    [10] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED NUMBER TEN\n\t{0x2780, 0x2793, prN},     // No    [20] DINGBAT CIRCLED SANS-SERIF DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN\n\t{0x2794, 0x2794, prN},     // So         HEAVY WIDE-HEADED RIGHTWARDS ARROW\n\t{0x2795, 0x2797, prW},     // So     [3] HEAVY PLUS SIGN..HEAVY DIVISION SIGN\n\t{0x2798, 0x27AF, prN},     // So    [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW\n\t{0x27B0, 0x27B0, prW},     // So         CURLY LOOP\n\t{0x27B1, 0x27BE, prN},     // So    [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW\n\t{0x27BF, 0x27BF, prW},     // So         DOUBLE CURLY LOOP\n\t{0x27C0, 0x27C4, prN},     // Sm     [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET\n\t{0x27C5, 0x27C5, prN},     // Ps         LEFT S-SHAPED BAG DELIMITER\n\t{0x27C6, 0x27C6, prN},     // Pe         RIGHT S-SHAPED BAG DELIMITER\n\t{0x27C7, 0x27E5, prN},     // Sm    [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK\n\t{0x27E6, 0x27E6, prNa},    // Ps         MATHEMATICAL LEFT WHITE SQUARE BRACKET\n\t{0x27E7, 0x27E7, prNa},    // Pe         MATHEMATICAL RIGHT WHITE SQUARE BRACKET\n\t{0x27E8, 0x27E8, prNa},    // Ps         MATHEMATICAL LEFT ANGLE BRACKET\n\t{0x27E9, 0x27E9, prNa},    // Pe         MATHEMATICAL RIGHT ANGLE BRACKET\n\t{0x27EA, 0x27EA, prNa},    // Ps         MATHEMATICAL LEFT DOUBLE ANGLE BRACKET\n\t{0x27EB, 0x27EB, prNa},    // Pe         MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET\n\t{0x27EC, 0x27EC, prNa},    // Ps         MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET\n\t{0x27ED, 0x27ED, prNa},    // Pe         MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET\n\t{0x27EE, 0x27EE, prN},     // Ps         MATHEMATICAL LEFT FLATTENED PARENTHESIS\n\t{0x27EF, 0x27EF, prN},     // Pe         MATHEMATICAL RIGHT FLATTENED PARENTHESIS\n\t{0x27F0, 0x27FF, prN},     // Sm    [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW\n\t{0x2800, 0x28FF, prN},     // So   [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678\n\t{0x2900, 0x297F, prN},     // Sm   [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL\n\t{0x2980, 0x2982, prN},     // Sm     [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON\n\t{0x2983, 0x2983, prN},     // Ps         LEFT WHITE CURLY BRACKET\n\t{0x2984, 0x2984, prN},     // Pe         RIGHT WHITE CURLY BRACKET\n\t{0x2985, 0x2985, prNa},    // Ps         LEFT WHITE PARENTHESIS\n\t{0x2986, 0x2986, prNa},    // Pe         RIGHT WHITE PARENTHESIS\n\t{0x2987, 0x2987, prN},     // Ps         Z NOTATION LEFT IMAGE BRACKET\n\t{0x2988, 0x2988, prN},     // Pe         Z NOTATION RIGHT IMAGE BRACKET\n\t{0x2989, 0x2989, prN},     // Ps         Z NOTATION LEFT BINDING BRACKET\n\t{0x298A, 0x298A, prN},     // Pe         Z NOTATION RIGHT BINDING BRACKET\n\t{0x298B, 0x298B, prN},     // Ps         LEFT SQUARE BRACKET WITH UNDERBAR\n\t{0x298C, 0x298C, prN},     // Pe         RIGHT SQUARE BRACKET WITH UNDERBAR\n\t{0x298D, 0x298D, prN},     // Ps         LEFT SQUARE BRACKET WITH TICK IN TOP CORNER\n\t{0x298E, 0x298E, prN},     // Pe         RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER\n\t{0x298F, 0x298F, prN},     // Ps         LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER\n\t{0x2990, 0x2990, prN},     // Pe         RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER\n\t{0x2991, 0x2991, prN},     // Ps         LEFT ANGLE BRACKET WITH DOT\n\t{0x2992, 0x2992, prN},     // Pe         RIGHT ANGLE BRACKET WITH DOT\n\t{0x2993, 0x2993, prN},     // Ps         LEFT ARC LESS-THAN BRACKET\n\t{0x2994, 0x2994, prN},     // Pe         RIGHT ARC GREATER-THAN BRACKET\n\t{0x2995, 0x2995, prN},     // Ps         DOUBLE LEFT ARC GREATER-THAN BRACKET\n\t{0x2996, 0x2996, prN},     // Pe         DOUBLE RIGHT ARC LESS-THAN BRACKET\n\t{0x2997, 0x2997, prN},     // Ps         LEFT BLACK TORTOISE SHELL BRACKET\n\t{0x2998, 0x2998, prN},     // Pe         RIGHT BLACK TORTOISE SHELL BRACKET\n\t{0x2999, 0x29D7, prN},     // Sm    [63] DOTTED FENCE..BLACK HOURGLASS\n\t{0x29D8, 0x29D8, prN},     // Ps         LEFT WIGGLY FENCE\n\t{0x29D9, 0x29D9, prN},     // Pe         RIGHT WIGGLY FENCE\n\t{0x29DA, 0x29DA, prN},     // Ps         LEFT DOUBLE WIGGLY FENCE\n\t{0x29DB, 0x29DB, prN},     // Pe         RIGHT DOUBLE WIGGLY FENCE\n\t{0x29DC, 0x29FB, prN},     // Sm    [32] INCOMPLETE INFINITY..TRIPLE PLUS\n\t{0x29FC, 0x29FC, prN},     // Ps         LEFT-POINTING CURVED ANGLE BRACKET\n\t{0x29FD, 0x29FD, prN},     // Pe         RIGHT-POINTING CURVED ANGLE BRACKET\n\t{0x29FE, 0x29FF, prN},     // Sm     [2] TINY..MINY\n\t{0x2A00, 0x2AFF, prN},     // Sm   [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR\n\t{0x2B00, 0x2B1A, prN},     // So    [27] NORTH EAST WHITE ARROW..DOTTED SQUARE\n\t{0x2B1B, 0x2B1C, prW},     // So     [2] BLACK LARGE SQUARE..WHITE LARGE SQUARE\n\t{0x2B1D, 0x2B2F, prN},     // So    [19] BLACK VERY SMALL SQUARE..WHITE VERTICAL ELLIPSE\n\t{0x2B30, 0x2B44, prN},     // Sm    [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET\n\t{0x2B45, 0x2B46, prN},     // So     [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW\n\t{0x2B47, 0x2B4C, prN},     // Sm     [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR\n\t{0x2B4D, 0x2B4F, prN},     // So     [3] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..SHORT BACKSLANTED SOUTH ARROW\n\t{0x2B50, 0x2B50, prW},     // So         WHITE MEDIUM STAR\n\t{0x2B51, 0x2B54, prN},     // So     [4] BLACK SMALL STAR..WHITE RIGHT-POINTING PENTAGON\n\t{0x2B55, 0x2B55, prW},     // So         HEAVY LARGE CIRCLE\n\t{0x2B56, 0x2B59, prA},     // So     [4] HEAVY OVAL WITH OVAL INSIDE..HEAVY CIRCLED SALTIRE\n\t{0x2B5A, 0x2B73, prN},     // So    [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR\n\t{0x2B76, 0x2B95, prN},     // So    [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW\n\t{0x2B97, 0x2BFF, prN},     // So   [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL\n\t{0x2C00, 0x2C5F, prN},     // L&    [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI\n\t{0x2C60, 0x2C7B, prN},     // L&    [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E\n\t{0x2C7C, 0x2C7D, prN},     // Lm     [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V\n\t{0x2C7E, 0x2C7F, prN},     // Lu     [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL\n\t{0x2C80, 0x2CE4, prN},     // L&   [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI\n\t{0x2CE5, 0x2CEA, prN},     // So     [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA\n\t{0x2CEB, 0x2CEE, prN},     // L&     [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA\n\t{0x2CEF, 0x2CF1, prN},     // Mn     [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS\n\t{0x2CF2, 0x2CF3, prN},     // L&     [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI\n\t{0x2CF9, 0x2CFC, prN},     // Po     [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER\n\t{0x2CFD, 0x2CFD, prN},     // No         COPTIC FRACTION ONE HALF\n\t{0x2CFE, 0x2CFF, prN},     // Po     [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER\n\t{0x2D00, 0x2D25, prN},     // Ll    [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE\n\t{0x2D27, 0x2D27, prN},     // Ll         GEORGIAN SMALL LETTER YN\n\t{0x2D2D, 0x2D2D, prN},     // Ll         GEORGIAN SMALL LETTER AEN\n\t{0x2D30, 0x2D67, prN},     // Lo    [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO\n\t{0x2D6F, 0x2D6F, prN},     // Lm         TIFINAGH MODIFIER LETTER LABIALIZATION MARK\n\t{0x2D70, 0x2D70, prN},     // Po         TIFINAGH SEPARATOR MARK\n\t{0x2D7F, 0x2D7F, prN},     // Mn         TIFINAGH CONSONANT JOINER\n\t{0x2D80, 0x2D96, prN},     // Lo    [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE\n\t{0x2DA0, 0x2DA6, prN},     // Lo     [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO\n\t{0x2DA8, 0x2DAE, prN},     // Lo     [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO\n\t{0x2DB0, 0x2DB6, prN},     // Lo     [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO\n\t{0x2DB8, 0x2DBE, prN},     // Lo     [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO\n\t{0x2DC0, 0x2DC6, prN},     // Lo     [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO\n\t{0x2DC8, 0x2DCE, prN},     // Lo     [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO\n\t{0x2DD0, 0x2DD6, prN},     // Lo     [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO\n\t{0x2DD8, 0x2DDE, prN},     // Lo     [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO\n\t{0x2DE0, 0x2DFF, prN},     // Mn    [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS\n\t{0x2E00, 0x2E01, prN},     // Po     [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER\n\t{0x2E02, 0x2E02, prN},     // Pi         LEFT SUBSTITUTION BRACKET\n\t{0x2E03, 0x2E03, prN},     // Pf         RIGHT SUBSTITUTION BRACKET\n\t{0x2E04, 0x2E04, prN},     // Pi         LEFT DOTTED SUBSTITUTION BRACKET\n\t{0x2E05, 0x2E05, prN},     // Pf         RIGHT DOTTED SUBSTITUTION BRACKET\n\t{0x2E06, 0x2E08, prN},     // Po     [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER\n\t{0x2E09, 0x2E09, prN},     // Pi         LEFT TRANSPOSITION BRACKET\n\t{0x2E0A, 0x2E0A, prN},     // Pf         RIGHT TRANSPOSITION BRACKET\n\t{0x2E0B, 0x2E0B, prN},     // Po         RAISED SQUARE\n\t{0x2E0C, 0x2E0C, prN},     // Pi         LEFT RAISED OMISSION BRACKET\n\t{0x2E0D, 0x2E0D, prN},     // Pf         RIGHT RAISED OMISSION BRACKET\n\t{0x2E0E, 0x2E16, prN},     // Po     [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE\n\t{0x2E17, 0x2E17, prN},     // Pd         DOUBLE OBLIQUE HYPHEN\n\t{0x2E18, 0x2E19, prN},     // Po     [2] INVERTED INTERROBANG..PALM BRANCH\n\t{0x2E1A, 0x2E1A, prN},     // Pd         HYPHEN WITH DIAERESIS\n\t{0x2E1B, 0x2E1B, prN},     // Po         TILDE WITH RING ABOVE\n\t{0x2E1C, 0x2E1C, prN},     // Pi         LEFT LOW PARAPHRASE BRACKET\n\t{0x2E1D, 0x2E1D, prN},     // Pf         RIGHT LOW PARAPHRASE BRACKET\n\t{0x2E1E, 0x2E1F, prN},     // Po     [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW\n\t{0x2E20, 0x2E20, prN},     // Pi         LEFT VERTICAL BAR WITH QUILL\n\t{0x2E21, 0x2E21, prN},     // Pf         RIGHT VERTICAL BAR WITH QUILL\n\t{0x2E22, 0x2E22, prN},     // Ps         TOP LEFT HALF BRACKET\n\t{0x2E23, 0x2E23, prN},     // Pe         TOP RIGHT HALF BRACKET\n\t{0x2E24, 0x2E24, prN},     // Ps         BOTTOM LEFT HALF BRACKET\n\t{0x2E25, 0x2E25, prN},     // Pe         BOTTOM RIGHT HALF BRACKET\n\t{0x2E26, 0x2E26, prN},     // Ps         LEFT SIDEWAYS U BRACKET\n\t{0x2E27, 0x2E27, prN},     // Pe         RIGHT SIDEWAYS U BRACKET\n\t{0x2E28, 0x2E28, prN},     // Ps         LEFT DOUBLE PARENTHESIS\n\t{0x2E29, 0x2E29, prN},     // Pe         RIGHT DOUBLE PARENTHESIS\n\t{0x2E2A, 0x2E2E, prN},     // Po     [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK\n\t{0x2E2F, 0x2E2F, prN},     // Lm         VERTICAL TILDE\n\t{0x2E30, 0x2E39, prN},     // Po    [10] RING POINT..TOP HALF SECTION SIGN\n\t{0x2E3A, 0x2E3B, prN},     // Pd     [2] TWO-EM DASH..THREE-EM DASH\n\t{0x2E3C, 0x2E3F, prN},     // Po     [4] STENOGRAPHIC FULL STOP..CAPITULUM\n\t{0x2E40, 0x2E40, prN},     // Pd         DOUBLE HYPHEN\n\t{0x2E41, 0x2E41, prN},     // Po         REVERSED COMMA\n\t{0x2E42, 0x2E42, prN},     // Ps         DOUBLE LOW-REVERSED-9 QUOTATION MARK\n\t{0x2E43, 0x2E4F, prN},     // Po    [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER\n\t{0x2E50, 0x2E51, prN},     // So     [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR\n\t{0x2E52, 0x2E54, prN},     // Po     [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK\n\t{0x2E55, 0x2E55, prN},     // Ps         LEFT SQUARE BRACKET WITH STROKE\n\t{0x2E56, 0x2E56, prN},     // Pe         RIGHT SQUARE BRACKET WITH STROKE\n\t{0x2E57, 0x2E57, prN},     // Ps         LEFT SQUARE BRACKET WITH DOUBLE STROKE\n\t{0x2E58, 0x2E58, prN},     // Pe         RIGHT SQUARE BRACKET WITH DOUBLE STROKE\n\t{0x2E59, 0x2E59, prN},     // Ps         TOP HALF LEFT PARENTHESIS\n\t{0x2E5A, 0x2E5A, prN},     // Pe         TOP HALF RIGHT PARENTHESIS\n\t{0x2E5B, 0x2E5B, prN},     // Ps         BOTTOM HALF LEFT PARENTHESIS\n\t{0x2E5C, 0x2E5C, prN},     // Pe         BOTTOM HALF RIGHT PARENTHESIS\n\t{0x2E5D, 0x2E5D, prN},     // Pd         OBLIQUE HYPHEN\n\t{0x2E80, 0x2E99, prW},     // So    [26] CJK RADICAL REPEAT..CJK RADICAL RAP\n\t{0x2E9B, 0x2EF3, prW},     // So    [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE\n\t{0x2F00, 0x2FD5, prW},     // So   [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE\n\t{0x2FF0, 0x2FFB, prW},     // So    [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID\n\t{0x3000, 0x3000, prF},     // Zs         IDEOGRAPHIC SPACE\n\t{0x3001, 0x3003, prW},     // Po     [3] IDEOGRAPHIC COMMA..DITTO MARK\n\t{0x3004, 0x3004, prW},     // So         JAPANESE INDUSTRIAL STANDARD SYMBOL\n\t{0x3005, 0x3005, prW},     // Lm         IDEOGRAPHIC ITERATION MARK\n\t{0x3006, 0x3006, prW},     // Lo         IDEOGRAPHIC CLOSING MARK\n\t{0x3007, 0x3007, prW},     // Nl         IDEOGRAPHIC NUMBER ZERO\n\t{0x3008, 0x3008, prW},     // Ps         LEFT ANGLE BRACKET\n\t{0x3009, 0x3009, prW},     // Pe         RIGHT ANGLE BRACKET\n\t{0x300A, 0x300A, prW},     // Ps         LEFT DOUBLE ANGLE BRACKET\n\t{0x300B, 0x300B, prW},     // Pe         RIGHT DOUBLE ANGLE BRACKET\n\t{0x300C, 0x300C, prW},     // Ps         LEFT CORNER BRACKET\n\t{0x300D, 0x300D, prW},     // Pe         RIGHT CORNER BRACKET\n\t{0x300E, 0x300E, prW},     // Ps         LEFT WHITE CORNER BRACKET\n\t{0x300F, 0x300F, prW},     // Pe         RIGHT WHITE CORNER BRACKET\n\t{0x3010, 0x3010, prW},     // Ps         LEFT BLACK LENTICULAR BRACKET\n\t{0x3011, 0x3011, prW},     // Pe         RIGHT BLACK LENTICULAR BRACKET\n\t{0x3012, 0x3013, prW},     // So     [2] POSTAL MARK..GETA MARK\n\t{0x3014, 0x3014, prW},     // Ps         LEFT TORTOISE SHELL BRACKET\n\t{0x3015, 0x3015, prW},     // Pe         RIGHT TORTOISE SHELL BRACKET\n\t{0x3016, 0x3016, prW},     // Ps         LEFT WHITE LENTICULAR BRACKET\n\t{0x3017, 0x3017, prW},     // Pe         RIGHT WHITE LENTICULAR BRACKET\n\t{0x3018, 0x3018, prW},     // Ps         LEFT WHITE TORTOISE SHELL BRACKET\n\t{0x3019, 0x3019, prW},     // Pe         RIGHT WHITE TORTOISE SHELL BRACKET\n\t{0x301A, 0x301A, prW},     // Ps         LEFT WHITE SQUARE BRACKET\n\t{0x301B, 0x301B, prW},     // Pe         RIGHT WHITE SQUARE BRACKET\n\t{0x301C, 0x301C, prW},     // Pd         WAVE DASH\n\t{0x301D, 0x301D, prW},     // Ps         REVERSED DOUBLE PRIME QUOTATION MARK\n\t{0x301E, 0x301F, prW},     // Pe     [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK\n\t{0x3020, 0x3020, prW},     // So         POSTAL MARK FACE\n\t{0x3021, 0x3029, prW},     // Nl     [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE\n\t{0x302A, 0x302D, prW},     // Mn     [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK\n\t{0x302E, 0x302F, prW},     // Mc     [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK\n\t{0x3030, 0x3030, prW},     // Pd         WAVY DASH\n\t{0x3031, 0x3035, prW},     // Lm     [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF\n\t{0x3036, 0x3037, prW},     // So     [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL\n\t{0x3038, 0x303A, prW},     // Nl     [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY\n\t{0x303B, 0x303B, prW},     // Lm         VERTICAL IDEOGRAPHIC ITERATION MARK\n\t{0x303C, 0x303C, prW},     // Lo         MASU MARK\n\t{0x303D, 0x303D, prW},     // Po         PART ALTERNATION MARK\n\t{0x303E, 0x303E, prW},     // So         IDEOGRAPHIC VARIATION INDICATOR\n\t{0x303F, 0x303F, prN},     // So         IDEOGRAPHIC HALF FILL SPACE\n\t{0x3041, 0x3096, prW},     // Lo    [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE\n\t{0x3099, 0x309A, prW},     // Mn     [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK\n\t{0x309B, 0x309C, prW},     // Sk     [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK\n\t{0x309D, 0x309E, prW},     // Lm     [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK\n\t{0x309F, 0x309F, prW},     // Lo         HIRAGANA DIGRAPH YORI\n\t{0x30A0, 0x30A0, prW},     // Pd         KATAKANA-HIRAGANA DOUBLE HYPHEN\n\t{0x30A1, 0x30FA, prW},     // Lo    [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO\n\t{0x30FB, 0x30FB, prW},     // Po         KATAKANA MIDDLE DOT\n\t{0x30FC, 0x30FE, prW},     // Lm     [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK\n\t{0x30FF, 0x30FF, prW},     // Lo         KATAKANA DIGRAPH KOTO\n\t{0x3105, 0x312F, prW},     // Lo    [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN\n\t{0x3131, 0x318E, prW},     // Lo    [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE\n\t{0x3190, 0x3191, prW},     // So     [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK\n\t{0x3192, 0x3195, prW},     // No     [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK\n\t{0x3196, 0x319F, prW},     // So    [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK\n\t{0x31A0, 0x31BF, prW},     // Lo    [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH\n\t{0x31C0, 0x31E3, prW},     // So    [36] CJK STROKE T..CJK STROKE Q\n\t{0x31F0, 0x31FF, prW},     // Lo    [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO\n\t{0x3200, 0x321E, prW},     // So    [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU\n\t{0x3220, 0x3229, prW},     // No    [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN\n\t{0x322A, 0x3247, prW},     // So    [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO\n\t{0x3248, 0x324F, prA},     // No     [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE\n\t{0x3250, 0x3250, prW},     // So         PARTNERSHIP SIGN\n\t{0x3251, 0x325F, prW},     // No    [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE\n\t{0x3260, 0x327F, prW},     // So    [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL\n\t{0x3280, 0x3289, prW},     // No    [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN\n\t{0x328A, 0x32B0, prW},     // So    [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT\n\t{0x32B1, 0x32BF, prW},     // No    [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY\n\t{0x32C0, 0x32FF, prW},     // So    [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA\n\t{0x3300, 0x33FF, prW},     // So   [256] SQUARE APAATO..SQUARE GAL\n\t{0x3400, 0x4DBF, prW},     // Lo  [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF\n\t{0x4DC0, 0x4DFF, prN},     // So    [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION\n\t{0x4E00, 0x9FFF, prW},     // Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF\n\t{0xA000, 0xA014, prW},     // Lo    [21] YI SYLLABLE IT..YI SYLLABLE E\n\t{0xA015, 0xA015, prW},     // Lm         YI SYLLABLE WU\n\t{0xA016, 0xA48C, prW},     // Lo  [1143] YI SYLLABLE BIT..YI SYLLABLE YYR\n\t{0xA490, 0xA4C6, prW},     // So    [55] YI RADICAL QOT..YI RADICAL KE\n\t{0xA4D0, 0xA4F7, prN},     // Lo    [40] LISU LETTER BA..LISU LETTER OE\n\t{0xA4F8, 0xA4FD, prN},     // Lm     [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU\n\t{0xA4FE, 0xA4FF, prN},     // Po     [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP\n\t{0xA500, 0xA60B, prN},     // Lo   [268] VAI SYLLABLE EE..VAI SYLLABLE NG\n\t{0xA60C, 0xA60C, prN},     // Lm         VAI SYLLABLE LENGTHENER\n\t{0xA60D, 0xA60F, prN},     // Po     [3] VAI COMMA..VAI QUESTION MARK\n\t{0xA610, 0xA61F, prN},     // Lo    [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG\n\t{0xA620, 0xA629, prN},     // Nd    [10] VAI DIGIT ZERO..VAI DIGIT NINE\n\t{0xA62A, 0xA62B, prN},     // Lo     [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO\n\t{0xA640, 0xA66D, prN},     // L&    [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O\n\t{0xA66E, 0xA66E, prN},     // Lo         CYRILLIC LETTER MULTIOCULAR O\n\t{0xA66F, 0xA66F, prN},     // Mn         COMBINING CYRILLIC VZMET\n\t{0xA670, 0xA672, prN},     // Me     [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN\n\t{0xA673, 0xA673, prN},     // Po         SLAVONIC ASTERISK\n\t{0xA674, 0xA67D, prN},     // Mn    [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK\n\t{0xA67E, 0xA67E, prN},     // Po         CYRILLIC KAVYKA\n\t{0xA67F, 0xA67F, prN},     // Lm         CYRILLIC PAYEROK\n\t{0xA680, 0xA69B, prN},     // L&    [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O\n\t{0xA69C, 0xA69D, prN},     // Lm     [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN\n\t{0xA69E, 0xA69F, prN},     // Mn     [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E\n\t{0xA6A0, 0xA6E5, prN},     // Lo    [70] BAMUM LETTER A..BAMUM LETTER KI\n\t{0xA6E6, 0xA6EF, prN},     // Nl    [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM\n\t{0xA6F0, 0xA6F1, prN},     // Mn     [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS\n\t{0xA6F2, 0xA6F7, prN},     // Po     [6] BAMUM NJAEMLI..BAMUM QUESTION MARK\n\t{0xA700, 0xA716, prN},     // Sk    [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR\n\t{0xA717, 0xA71F, prN},     // Lm     [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK\n\t{0xA720, 0xA721, prN},     // Sk     [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE\n\t{0xA722, 0xA76F, prN},     // L&    [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON\n\t{0xA770, 0xA770, prN},     // Lm         MODIFIER LETTER US\n\t{0xA771, 0xA787, prN},     // L&    [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T\n\t{0xA788, 0xA788, prN},     // Lm         MODIFIER LETTER LOW CIRCUMFLEX ACCENT\n\t{0xA789, 0xA78A, prN},     // Sk     [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN\n\t{0xA78B, 0xA78E, prN},     // L&     [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT\n\t{0xA78F, 0xA78F, prN},     // Lo         LATIN LETTER SINOLOGICAL DOT\n\t{0xA790, 0xA7CA, prN},     // L&    [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY\n\t{0xA7D0, 0xA7D1, prN},     // L&     [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G\n\t{0xA7D3, 0xA7D3, prN},     // Ll         LATIN SMALL LETTER DOUBLE THORN\n\t{0xA7D5, 0xA7D9, prN},     // L&     [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S\n\t{0xA7F2, 0xA7F4, prN},     // Lm     [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q\n\t{0xA7F5, 0xA7F6, prN},     // L&     [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H\n\t{0xA7F7, 0xA7F7, prN},     // Lo         LATIN EPIGRAPHIC LETTER SIDEWAYS I\n\t{0xA7F8, 0xA7F9, prN},     // Lm     [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE\n\t{0xA7FA, 0xA7FA, prN},     // Ll         LATIN LETTER SMALL CAPITAL TURNED M\n\t{0xA7FB, 0xA7FF, prN},     // Lo     [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M\n\t{0xA800, 0xA801, prN},     // Lo     [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I\n\t{0xA802, 0xA802, prN},     // Mn         SYLOTI NAGRI SIGN DVISVARA\n\t{0xA803, 0xA805, prN},     // Lo     [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O\n\t{0xA806, 0xA806, prN},     // Mn         SYLOTI NAGRI SIGN HASANTA\n\t{0xA807, 0xA80A, prN},     // Lo     [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO\n\t{0xA80B, 0xA80B, prN},     // Mn         SYLOTI NAGRI SIGN ANUSVARA\n\t{0xA80C, 0xA822, prN},     // Lo    [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO\n\t{0xA823, 0xA824, prN},     // Mc     [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I\n\t{0xA825, 0xA826, prN},     // Mn     [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E\n\t{0xA827, 0xA827, prN},     // Mc         SYLOTI NAGRI VOWEL SIGN OO\n\t{0xA828, 0xA82B, prN},     // So     [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4\n\t{0xA82C, 0xA82C, prN},     // Mn         SYLOTI NAGRI SIGN ALTERNATE HASANTA\n\t{0xA830, 0xA835, prN},     // No     [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS\n\t{0xA836, 0xA837, prN},     // So     [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK\n\t{0xA838, 0xA838, prN},     // Sc         NORTH INDIC RUPEE MARK\n\t{0xA839, 0xA839, prN},     // So         NORTH INDIC QUANTITY MARK\n\t{0xA840, 0xA873, prN},     // Lo    [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU\n\t{0xA874, 0xA877, prN},     // Po     [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD\n\t{0xA880, 0xA881, prN},     // Mc     [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA\n\t{0xA882, 0xA8B3, prN},     // Lo    [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA\n\t{0xA8B4, 0xA8C3, prN},     // Mc    [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU\n\t{0xA8C4, 0xA8C5, prN},     // Mn     [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU\n\t{0xA8CE, 0xA8CF, prN},     // Po     [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA\n\t{0xA8D0, 0xA8D9, prN},     // Nd    [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE\n\t{0xA8E0, 0xA8F1, prN},     // Mn    [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA\n\t{0xA8F2, 0xA8F7, prN},     // Lo     [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA\n\t{0xA8F8, 0xA8FA, prN},     // Po     [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET\n\t{0xA8FB, 0xA8FB, prN},     // Lo         DEVANAGARI HEADSTROKE\n\t{0xA8FC, 0xA8FC, prN},     // Po         DEVANAGARI SIGN SIDDHAM\n\t{0xA8FD, 0xA8FE, prN},     // Lo     [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY\n\t{0xA8FF, 0xA8FF, prN},     // Mn         DEVANAGARI VOWEL SIGN AY\n\t{0xA900, 0xA909, prN},     // Nd    [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE\n\t{0xA90A, 0xA925, prN},     // Lo    [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO\n\t{0xA926, 0xA92D, prN},     // Mn     [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU\n\t{0xA92E, 0xA92F, prN},     // Po     [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA\n\t{0xA930, 0xA946, prN},     // Lo    [23] REJANG LETTER KA..REJANG LETTER A\n\t{0xA947, 0xA951, prN},     // Mn    [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R\n\t{0xA952, 0xA953, prN},     // Mc     [2] REJANG CONSONANT SIGN H..REJANG VIRAMA\n\t{0xA95F, 0xA95F, prN},     // Po         REJANG SECTION MARK\n\t{0xA960, 0xA97C, prW},     // Lo    [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH\n\t{0xA980, 0xA982, prN},     // Mn     [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR\n\t{0xA983, 0xA983, prN},     // Mc         JAVANESE SIGN WIGNYAN\n\t{0xA984, 0xA9B2, prN},     // Lo    [47] JAVANESE LETTER A..JAVANESE LETTER HA\n\t{0xA9B3, 0xA9B3, prN},     // Mn         JAVANESE SIGN CECAK TELU\n\t{0xA9B4, 0xA9B5, prN},     // Mc     [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG\n\t{0xA9B6, 0xA9B9, prN},     // Mn     [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT\n\t{0xA9BA, 0xA9BB, prN},     // Mc     [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE\n\t{0xA9BC, 0xA9BD, prN},     // Mn     [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET\n\t{0xA9BE, 0xA9C0, prN},     // Mc     [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON\n\t{0xA9C1, 0xA9CD, prN},     // Po    [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH\n\t{0xA9CF, 0xA9CF, prN},     // Lm         JAVANESE PANGRANGKEP\n\t{0xA9D0, 0xA9D9, prN},     // Nd    [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE\n\t{0xA9DE, 0xA9DF, prN},     // Po     [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN\n\t{0xA9E0, 0xA9E4, prN},     // Lo     [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA\n\t{0xA9E5, 0xA9E5, prN},     // Mn         MYANMAR SIGN SHAN SAW\n\t{0xA9E6, 0xA9E6, prN},     // Lm         MYANMAR MODIFIER LETTER SHAN REDUPLICATION\n\t{0xA9E7, 0xA9EF, prN},     // Lo     [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA\n\t{0xA9F0, 0xA9F9, prN},     // Nd    [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE\n\t{0xA9FA, 0xA9FE, prN},     // Lo     [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA\n\t{0xAA00, 0xAA28, prN},     // Lo    [41] CHAM LETTER A..CHAM LETTER HA\n\t{0xAA29, 0xAA2E, prN},     // Mn     [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE\n\t{0xAA2F, 0xAA30, prN},     // Mc     [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI\n\t{0xAA31, 0xAA32, prN},     // Mn     [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE\n\t{0xAA33, 0xAA34, prN},     // Mc     [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA\n\t{0xAA35, 0xAA36, prN},     // Mn     [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA\n\t{0xAA40, 0xAA42, prN},     // Lo     [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG\n\t{0xAA43, 0xAA43, prN},     // Mn         CHAM CONSONANT SIGN FINAL NG\n\t{0xAA44, 0xAA4B, prN},     // Lo     [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS\n\t{0xAA4C, 0xAA4C, prN},     // Mn         CHAM CONSONANT SIGN FINAL M\n\t{0xAA4D, 0xAA4D, prN},     // Mc         CHAM CONSONANT SIGN FINAL H\n\t{0xAA50, 0xAA59, prN},     // Nd    [10] CHAM DIGIT ZERO..CHAM DIGIT NINE\n\t{0xAA5C, 0xAA5F, prN},     // Po     [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA\n\t{0xAA60, 0xAA6F, prN},     // Lo    [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA\n\t{0xAA70, 0xAA70, prN},     // Lm         MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION\n\t{0xAA71, 0xAA76, prN},     // Lo     [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM\n\t{0xAA77, 0xAA79, prN},     // So     [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO\n\t{0xAA7A, 0xAA7A, prN},     // Lo         MYANMAR LETTER AITON RA\n\t{0xAA7B, 0xAA7B, prN},     // Mc         MYANMAR SIGN PAO KAREN TONE\n\t{0xAA7C, 0xAA7C, prN},     // Mn         MYANMAR SIGN TAI LAING TONE-2\n\t{0xAA7D, 0xAA7D, prN},     // Mc         MYANMAR SIGN TAI LAING TONE-5\n\t{0xAA7E, 0xAA7F, prN},     // Lo     [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA\n\t{0xAA80, 0xAAAF, prN},     // Lo    [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O\n\t{0xAAB0, 0xAAB0, prN},     // Mn         TAI VIET MAI KANG\n\t{0xAAB1, 0xAAB1, prN},     // Lo         TAI VIET VOWEL AA\n\t{0xAAB2, 0xAAB4, prN},     // Mn     [3] TAI VIET VOWEL I..TAI VIET VOWEL U\n\t{0xAAB5, 0xAAB6, prN},     // Lo     [2] TAI VIET VOWEL E..TAI VIET VOWEL O\n\t{0xAAB7, 0xAAB8, prN},     // Mn     [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA\n\t{0xAAB9, 0xAABD, prN},     // Lo     [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN\n\t{0xAABE, 0xAABF, prN},     // Mn     [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK\n\t{0xAAC0, 0xAAC0, prN},     // Lo         TAI VIET TONE MAI NUENG\n\t{0xAAC1, 0xAAC1, prN},     // Mn         TAI VIET TONE MAI THO\n\t{0xAAC2, 0xAAC2, prN},     // Lo         TAI VIET TONE MAI SONG\n\t{0xAADB, 0xAADC, prN},     // Lo     [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG\n\t{0xAADD, 0xAADD, prN},     // Lm         TAI VIET SYMBOL SAM\n\t{0xAADE, 0xAADF, prN},     // Po     [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI\n\t{0xAAE0, 0xAAEA, prN},     // Lo    [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA\n\t{0xAAEB, 0xAAEB, prN},     // Mc         MEETEI MAYEK VOWEL SIGN II\n\t{0xAAEC, 0xAAED, prN},     // Mn     [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI\n\t{0xAAEE, 0xAAEF, prN},     // Mc     [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU\n\t{0xAAF0, 0xAAF1, prN},     // Po     [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM\n\t{0xAAF2, 0xAAF2, prN},     // Lo         MEETEI MAYEK ANJI\n\t{0xAAF3, 0xAAF4, prN},     // Lm     [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK\n\t{0xAAF5, 0xAAF5, prN},     // Mc         MEETEI MAYEK VOWEL SIGN VISARGA\n\t{0xAAF6, 0xAAF6, prN},     // Mn         MEETEI MAYEK VIRAMA\n\t{0xAB01, 0xAB06, prN},     // Lo     [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO\n\t{0xAB09, 0xAB0E, prN},     // Lo     [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO\n\t{0xAB11, 0xAB16, prN},     // Lo     [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO\n\t{0xAB20, 0xAB26, prN},     // Lo     [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO\n\t{0xAB28, 0xAB2E, prN},     // Lo     [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO\n\t{0xAB30, 0xAB5A, prN},     // Ll    [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG\n\t{0xAB5B, 0xAB5B, prN},     // Sk         MODIFIER BREVE WITH INVERTED BREVE\n\t{0xAB5C, 0xAB5F, prN},     // Lm     [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK\n\t{0xAB60, 0xAB68, prN},     // Ll     [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE\n\t{0xAB69, 0xAB69, prN},     // Lm         MODIFIER LETTER SMALL TURNED W\n\t{0xAB6A, 0xAB6B, prN},     // Sk     [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK\n\t{0xAB70, 0xABBF, prN},     // Ll    [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA\n\t{0xABC0, 0xABE2, prN},     // Lo    [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM\n\t{0xABE3, 0xABE4, prN},     // Mc     [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP\n\t{0xABE5, 0xABE5, prN},     // Mn         MEETEI MAYEK VOWEL SIGN ANAP\n\t{0xABE6, 0xABE7, prN},     // Mc     [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP\n\t{0xABE8, 0xABE8, prN},     // Mn         MEETEI MAYEK VOWEL SIGN UNAP\n\t{0xABE9, 0xABEA, prN},     // Mc     [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG\n\t{0xABEB, 0xABEB, prN},     // Po         MEETEI MAYEK CHEIKHEI\n\t{0xABEC, 0xABEC, prN},     // Mc         MEETEI MAYEK LUM IYEK\n\t{0xABED, 0xABED, prN},     // Mn         MEETEI MAYEK APUN IYEK\n\t{0xABF0, 0xABF9, prN},     // Nd    [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE\n\t{0xAC00, 0xD7A3, prW},     // Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH\n\t{0xD7B0, 0xD7C6, prN},     // Lo    [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E\n\t{0xD7CB, 0xD7FB, prN},     // Lo    [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH\n\t{0xD800, 0xDB7F, prN},     // Cs   [896] <surrogate-D800>..<surrogate-DB7F>\n\t{0xDB80, 0xDBFF, prN},     // Cs   [128] <surrogate-DB80>..<surrogate-DBFF>\n\t{0xDC00, 0xDFFF, prN},     // Cs  [1024] <surrogate-DC00>..<surrogate-DFFF>\n\t{0xE000, 0xF8FF, prA},     // Co  [6400] <private-use-E000>..<private-use-F8FF>\n\t{0xF900, 0xFA6D, prW},     // Lo   [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D\n\t{0xFA6E, 0xFA6F, prW},     // Cn     [2] <reserved-FA6E>..<reserved-FA6F>\n\t{0xFA70, 0xFAD9, prW},     // Lo   [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9\n\t{0xFADA, 0xFAFF, prW},     // Cn    [38] <reserved-FADA>..<reserved-FAFF>\n\t{0xFB00, 0xFB06, prN},     // Ll     [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST\n\t{0xFB13, 0xFB17, prN},     // Ll     [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH\n\t{0xFB1D, 0xFB1D, prN},     // Lo         HEBREW LETTER YOD WITH HIRIQ\n\t{0xFB1E, 0xFB1E, prN},     // Mn         HEBREW POINT JUDEO-SPANISH VARIKA\n\t{0xFB1F, 0xFB28, prN},     // Lo    [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV\n\t{0xFB29, 0xFB29, prN},     // Sm         HEBREW LETTER ALTERNATIVE PLUS SIGN\n\t{0xFB2A, 0xFB36, prN},     // Lo    [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH\n\t{0xFB38, 0xFB3C, prN},     // Lo     [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH\n\t{0xFB3E, 0xFB3E, prN},     // Lo         HEBREW LETTER MEM WITH DAGESH\n\t{0xFB40, 0xFB41, prN},     // Lo     [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH\n\t{0xFB43, 0xFB44, prN},     // Lo     [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH\n\t{0xFB46, 0xFB4F, prN},     // Lo    [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED\n\t{0xFB50, 0xFBB1, prN},     // Lo    [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM\n\t{0xFBB2, 0xFBC2, prN},     // Sk    [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE\n\t{0xFBD3, 0xFD3D, prN},     // Lo   [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM\n\t{0xFD3E, 0xFD3E, prN},     // Pe         ORNATE LEFT PARENTHESIS\n\t{0xFD3F, 0xFD3F, prN},     // Ps         ORNATE RIGHT PARENTHESIS\n\t{0xFD40, 0xFD4F, prN},     // So    [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH\n\t{0xFD50, 0xFD8F, prN},     // Lo    [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM\n\t{0xFD92, 0xFDC7, prN},     // Lo    [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM\n\t{0xFDCF, 0xFDCF, prN},     // So         ARABIC LIGATURE SALAAMUHU ALAYNAA\n\t{0xFDF0, 0xFDFB, prN},     // Lo    [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU\n\t{0xFDFC, 0xFDFC, prN},     // Sc         RIAL SIGN\n\t{0xFDFD, 0xFDFF, prN},     // So     [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL\n\t{0xFE00, 0xFE0F, prA},     // Mn    [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16\n\t{0xFE10, 0xFE16, prW},     // Po     [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK\n\t{0xFE17, 0xFE17, prW},     // Ps         PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET\n\t{0xFE18, 0xFE18, prW},     // Pe         PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET\n\t{0xFE19, 0xFE19, prW},     // Po         PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS\n\t{0xFE20, 0xFE2F, prN},     // Mn    [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF\n\t{0xFE30, 0xFE30, prW},     // Po         PRESENTATION FORM FOR VERTICAL TWO DOT LEADER\n\t{0xFE31, 0xFE32, prW},     // Pd     [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH\n\t{0xFE33, 0xFE34, prW},     // Pc     [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE\n\t{0xFE35, 0xFE35, prW},     // Ps         PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS\n\t{0xFE36, 0xFE36, prW},     // Pe         PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS\n\t{0xFE37, 0xFE37, prW},     // Ps         PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET\n\t{0xFE38, 0xFE38, prW},     // Pe         PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET\n\t{0xFE39, 0xFE39, prW},     // Ps         PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET\n\t{0xFE3A, 0xFE3A, prW},     // Pe         PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET\n\t{0xFE3B, 0xFE3B, prW},     // Ps         PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET\n\t{0xFE3C, 0xFE3C, prW},     // Pe         PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET\n\t{0xFE3D, 0xFE3D, prW},     // Ps         PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET\n\t{0xFE3E, 0xFE3E, prW},     // Pe         PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET\n\t{0xFE3F, 0xFE3F, prW},     // Ps         PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET\n\t{0xFE40, 0xFE40, prW},     // Pe         PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET\n\t{0xFE41, 0xFE41, prW},     // Ps         PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET\n\t{0xFE42, 0xFE42, prW},     // Pe         PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET\n\t{0xFE43, 0xFE43, prW},     // Ps         PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET\n\t{0xFE44, 0xFE44, prW},     // Pe         PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET\n\t{0xFE45, 0xFE46, prW},     // Po     [2] SESAME DOT..WHITE SESAME DOT\n\t{0xFE47, 0xFE47, prW},     // Ps         PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET\n\t{0xFE48, 0xFE48, prW},     // Pe         PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET\n\t{0xFE49, 0xFE4C, prW},     // Po     [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE\n\t{0xFE4D, 0xFE4F, prW},     // Pc     [3] DASHED LOW LINE..WAVY LOW LINE\n\t{0xFE50, 0xFE52, prW},     // Po     [3] SMALL COMMA..SMALL FULL STOP\n\t{0xFE54, 0xFE57, prW},     // Po     [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK\n\t{0xFE58, 0xFE58, prW},     // Pd         SMALL EM DASH\n\t{0xFE59, 0xFE59, prW},     // Ps         SMALL LEFT PARENTHESIS\n\t{0xFE5A, 0xFE5A, prW},     // Pe         SMALL RIGHT PARENTHESIS\n\t{0xFE5B, 0xFE5B, prW},     // Ps         SMALL LEFT CURLY BRACKET\n\t{0xFE5C, 0xFE5C, prW},     // Pe         SMALL RIGHT CURLY BRACKET\n\t{0xFE5D, 0xFE5D, prW},     // Ps         SMALL LEFT TORTOISE SHELL BRACKET\n\t{0xFE5E, 0xFE5E, prW},     // Pe         SMALL RIGHT TORTOISE SHELL BRACKET\n\t{0xFE5F, 0xFE61, prW},     // Po     [3] SMALL NUMBER SIGN..SMALL ASTERISK\n\t{0xFE62, 0xFE62, prW},     // Sm         SMALL PLUS SIGN\n\t{0xFE63, 0xFE63, prW},     // Pd         SMALL HYPHEN-MINUS\n\t{0xFE64, 0xFE66, prW},     // Sm     [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN\n\t{0xFE68, 0xFE68, prW},     // Po         SMALL REVERSE SOLIDUS\n\t{0xFE69, 0xFE69, prW},     // Sc         SMALL DOLLAR SIGN\n\t{0xFE6A, 0xFE6B, prW},     // Po     [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT\n\t{0xFE70, 0xFE74, prN},     // Lo     [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM\n\t{0xFE76, 0xFEFC, prN},     // Lo   [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n\t{0xFEFF, 0xFEFF, prN},     // Cf         ZERO WIDTH NO-BREAK SPACE\n\t{0xFF01, 0xFF03, prF},     // Po     [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN\n\t{0xFF04, 0xFF04, prF},     // Sc         FULLWIDTH DOLLAR SIGN\n\t{0xFF05, 0xFF07, prF},     // Po     [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE\n\t{0xFF08, 0xFF08, prF},     // Ps         FULLWIDTH LEFT PARENTHESIS\n\t{0xFF09, 0xFF09, prF},     // Pe         FULLWIDTH RIGHT PARENTHESIS\n\t{0xFF0A, 0xFF0A, prF},     // Po         FULLWIDTH ASTERISK\n\t{0xFF0B, 0xFF0B, prF},     // Sm         FULLWIDTH PLUS SIGN\n\t{0xFF0C, 0xFF0C, prF},     // Po         FULLWIDTH COMMA\n\t{0xFF0D, 0xFF0D, prF},     // Pd         FULLWIDTH HYPHEN-MINUS\n\t{0xFF0E, 0xFF0F, prF},     // Po     [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS\n\t{0xFF10, 0xFF19, prF},     // Nd    [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE\n\t{0xFF1A, 0xFF1B, prF},     // Po     [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON\n\t{0xFF1C, 0xFF1E, prF},     // Sm     [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN\n\t{0xFF1F, 0xFF20, prF},     // Po     [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT\n\t{0xFF21, 0xFF3A, prF},     // Lu    [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z\n\t{0xFF3B, 0xFF3B, prF},     // Ps         FULLWIDTH LEFT SQUARE BRACKET\n\t{0xFF3C, 0xFF3C, prF},     // Po         FULLWIDTH REVERSE SOLIDUS\n\t{0xFF3D, 0xFF3D, prF},     // Pe         FULLWIDTH RIGHT SQUARE BRACKET\n\t{0xFF3E, 0xFF3E, prF},     // Sk         FULLWIDTH CIRCUMFLEX ACCENT\n\t{0xFF3F, 0xFF3F, prF},     // Pc         FULLWIDTH LOW LINE\n\t{0xFF40, 0xFF40, prF},     // Sk         FULLWIDTH GRAVE ACCENT\n\t{0xFF41, 0xFF5A, prF},     // Ll    [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z\n\t{0xFF5B, 0xFF5B, prF},     // Ps         FULLWIDTH LEFT CURLY BRACKET\n\t{0xFF5C, 0xFF5C, prF},     // Sm         FULLWIDTH VERTICAL LINE\n\t{0xFF5D, 0xFF5D, prF},     // Pe         FULLWIDTH RIGHT CURLY BRACKET\n\t{0xFF5E, 0xFF5E, prF},     // Sm         FULLWIDTH TILDE\n\t{0xFF5F, 0xFF5F, prF},     // Ps         FULLWIDTH LEFT WHITE PARENTHESIS\n\t{0xFF60, 0xFF60, prF},     // Pe         FULLWIDTH RIGHT WHITE PARENTHESIS\n\t{0xFF61, 0xFF61, prH},     // Po         HALFWIDTH IDEOGRAPHIC FULL STOP\n\t{0xFF62, 0xFF62, prH},     // Ps         HALFWIDTH LEFT CORNER BRACKET\n\t{0xFF63, 0xFF63, prH},     // Pe         HALFWIDTH RIGHT CORNER BRACKET\n\t{0xFF64, 0xFF65, prH},     // Po     [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT\n\t{0xFF66, 0xFF6F, prH},     // Lo    [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU\n\t{0xFF70, 0xFF70, prH},     // Lm         HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK\n\t{0xFF71, 0xFF9D, prH},     // Lo    [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N\n\t{0xFF9E, 0xFF9F, prH},     // Lm     [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK\n\t{0xFFA0, 0xFFBE, prH},     // Lo    [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH\n\t{0xFFC2, 0xFFC7, prH},     // Lo     [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E\n\t{0xFFCA, 0xFFCF, prH},     // Lo     [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE\n\t{0xFFD2, 0xFFD7, prH},     // Lo     [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU\n\t{0xFFDA, 0xFFDC, prH},     // Lo     [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I\n\t{0xFFE0, 0xFFE1, prF},     // Sc     [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN\n\t{0xFFE2, 0xFFE2, prF},     // Sm         FULLWIDTH NOT SIGN\n\t{0xFFE3, 0xFFE3, prF},     // Sk         FULLWIDTH MACRON\n\t{0xFFE4, 0xFFE4, prF},     // So         FULLWIDTH BROKEN BAR\n\t{0xFFE5, 0xFFE6, prF},     // Sc     [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN\n\t{0xFFE8, 0xFFE8, prH},     // So         HALFWIDTH FORMS LIGHT VERTICAL\n\t{0xFFE9, 0xFFEC, prH},     // Sm     [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW\n\t{0xFFED, 0xFFEE, prH},     // So     [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE\n\t{0xFFF9, 0xFFFB, prN},     // Cf     [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR\n\t{0xFFFC, 0xFFFC, prN},     // So         OBJECT REPLACEMENT CHARACTER\n\t{0xFFFD, 0xFFFD, prA},     // So         REPLACEMENT CHARACTER\n\t{0x10000, 0x1000B, prN},   // Lo    [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE\n\t{0x1000D, 0x10026, prN},   // Lo    [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO\n\t{0x10028, 0x1003A, prN},   // Lo    [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO\n\t{0x1003C, 0x1003D, prN},   // Lo     [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE\n\t{0x1003F, 0x1004D, prN},   // Lo    [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO\n\t{0x10050, 0x1005D, prN},   // Lo    [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089\n\t{0x10080, 0x100FA, prN},   // Lo   [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305\n\t{0x10100, 0x10102, prN},   // Po     [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK\n\t{0x10107, 0x10133, prN},   // No    [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND\n\t{0x10137, 0x1013F, prN},   // So     [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT\n\t{0x10140, 0x10174, prN},   // Nl    [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS\n\t{0x10175, 0x10178, prN},   // No     [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN\n\t{0x10179, 0x10189, prN},   // So    [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN\n\t{0x1018A, 0x1018B, prN},   // No     [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN\n\t{0x1018C, 0x1018E, prN},   // So     [3] GREEK SINUSOID SIGN..NOMISMA SIGN\n\t{0x10190, 0x1019C, prN},   // So    [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL\n\t{0x101A0, 0x101A0, prN},   // So         GREEK SYMBOL TAU RHO\n\t{0x101D0, 0x101FC, prN},   // So    [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND\n\t{0x101FD, 0x101FD, prN},   // Mn         PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE\n\t{0x10280, 0x1029C, prN},   // Lo    [29] LYCIAN LETTER A..LYCIAN LETTER X\n\t{0x102A0, 0x102D0, prN},   // Lo    [49] CARIAN LETTER A..CARIAN LETTER UUU3\n\t{0x102E0, 0x102E0, prN},   // Mn         COPTIC EPACT THOUSANDS MARK\n\t{0x102E1, 0x102FB, prN},   // No    [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED\n\t{0x10300, 0x1031F, prN},   // Lo    [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS\n\t{0x10320, 0x10323, prN},   // No     [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY\n\t{0x1032D, 0x1032F, prN},   // Lo     [3] OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE\n\t{0x10330, 0x10340, prN},   // Lo    [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA\n\t{0x10341, 0x10341, prN},   // Nl         GOTHIC LETTER NINETY\n\t{0x10342, 0x10349, prN},   // Lo     [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL\n\t{0x1034A, 0x1034A, prN},   // Nl         GOTHIC LETTER NINE HUNDRED\n\t{0x10350, 0x10375, prN},   // Lo    [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA\n\t{0x10376, 0x1037A, prN},   // Mn     [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII\n\t{0x10380, 0x1039D, prN},   // Lo    [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU\n\t{0x1039F, 0x1039F, prN},   // Po         UGARITIC WORD DIVIDER\n\t{0x103A0, 0x103C3, prN},   // Lo    [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA\n\t{0x103C8, 0x103CF, prN},   // Lo     [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH\n\t{0x103D0, 0x103D0, prN},   // Po         OLD PERSIAN WORD DIVIDER\n\t{0x103D1, 0x103D5, prN},   // Nl     [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED\n\t{0x10400, 0x1044F, prN},   // L&    [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW\n\t{0x10450, 0x1047F, prN},   // Lo    [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW\n\t{0x10480, 0x1049D, prN},   // Lo    [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO\n\t{0x104A0, 0x104A9, prN},   // Nd    [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE\n\t{0x104B0, 0x104D3, prN},   // Lu    [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA\n\t{0x104D8, 0x104FB, prN},   // Ll    [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA\n\t{0x10500, 0x10527, prN},   // Lo    [40] ELBASAN LETTER A..ELBASAN LETTER KHE\n\t{0x10530, 0x10563, prN},   // Lo    [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW\n\t{0x1056F, 0x1056F, prN},   // Po         CAUCASIAN ALBANIAN CITATION MARK\n\t{0x10570, 0x1057A, prN},   // Lu    [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA\n\t{0x1057C, 0x1058A, prN},   // Lu    [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE\n\t{0x1058C, 0x10592, prN},   // Lu     [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE\n\t{0x10594, 0x10595, prN},   // Lu     [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE\n\t{0x10597, 0x105A1, prN},   // Ll    [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA\n\t{0x105A3, 0x105B1, prN},   // Ll    [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE\n\t{0x105B3, 0x105B9, prN},   // Ll     [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE\n\t{0x105BB, 0x105BC, prN},   // Ll     [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE\n\t{0x10600, 0x10736, prN},   // Lo   [311] LINEAR A SIGN AB001..LINEAR A SIGN A664\n\t{0x10740, 0x10755, prN},   // Lo    [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE\n\t{0x10760, 0x10767, prN},   // Lo     [8] LINEAR A SIGN A800..LINEAR A SIGN A807\n\t{0x10780, 0x10785, prN},   // Lm     [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK\n\t{0x10787, 0x107B0, prN},   // Lm    [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK\n\t{0x107B2, 0x107BA, prN},   // Lm     [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL\n\t{0x10800, 0x10805, prN},   // Lo     [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA\n\t{0x10808, 0x10808, prN},   // Lo         CYPRIOT SYLLABLE JO\n\t{0x1080A, 0x10835, prN},   // Lo    [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO\n\t{0x10837, 0x10838, prN},   // Lo     [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE\n\t{0x1083C, 0x1083C, prN},   // Lo         CYPRIOT SYLLABLE ZA\n\t{0x1083F, 0x1083F, prN},   // Lo         CYPRIOT SYLLABLE ZO\n\t{0x10840, 0x10855, prN},   // Lo    [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW\n\t{0x10857, 0x10857, prN},   // Po         IMPERIAL ARAMAIC SECTION SIGN\n\t{0x10858, 0x1085F, prN},   // No     [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND\n\t{0x10860, 0x10876, prN},   // Lo    [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW\n\t{0x10877, 0x10878, prN},   // So     [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON\n\t{0x10879, 0x1087F, prN},   // No     [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY\n\t{0x10880, 0x1089E, prN},   // Lo    [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW\n\t{0x108A7, 0x108AF, prN},   // No     [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED\n\t{0x108E0, 0x108F2, prN},   // Lo    [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH\n\t{0x108F4, 0x108F5, prN},   // Lo     [2] HATRAN LETTER SHIN..HATRAN LETTER TAW\n\t{0x108FB, 0x108FF, prN},   // No     [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED\n\t{0x10900, 0x10915, prN},   // Lo    [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU\n\t{0x10916, 0x1091B, prN},   // No     [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE\n\t{0x1091F, 0x1091F, prN},   // Po         PHOENICIAN WORD SEPARATOR\n\t{0x10920, 0x10939, prN},   // Lo    [26] LYDIAN LETTER A..LYDIAN LETTER C\n\t{0x1093F, 0x1093F, prN},   // Po         LYDIAN TRIANGULAR MARK\n\t{0x10980, 0x1099F, prN},   // Lo    [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2\n\t{0x109A0, 0x109B7, prN},   // Lo    [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA\n\t{0x109BC, 0x109BD, prN},   // No     [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF\n\t{0x109BE, 0x109BF, prN},   // Lo     [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN\n\t{0x109C0, 0x109CF, prN},   // No    [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY\n\t{0x109D2, 0x109FF, prN},   // No    [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS\n\t{0x10A00, 0x10A00, prN},   // Lo         KHAROSHTHI LETTER A\n\t{0x10A01, 0x10A03, prN},   // Mn     [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R\n\t{0x10A05, 0x10A06, prN},   // Mn     [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O\n\t{0x10A0C, 0x10A0F, prN},   // Mn     [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA\n\t{0x10A10, 0x10A13, prN},   // Lo     [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA\n\t{0x10A15, 0x10A17, prN},   // Lo     [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA\n\t{0x10A19, 0x10A35, prN},   // Lo    [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA\n\t{0x10A38, 0x10A3A, prN},   // Mn     [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW\n\t{0x10A3F, 0x10A3F, prN},   // Mn         KHAROSHTHI VIRAMA\n\t{0x10A40, 0x10A48, prN},   // No     [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF\n\t{0x10A50, 0x10A58, prN},   // Po     [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES\n\t{0x10A60, 0x10A7C, prN},   // Lo    [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH\n\t{0x10A7D, 0x10A7E, prN},   // No     [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY\n\t{0x10A7F, 0x10A7F, prN},   // Po         OLD SOUTH ARABIAN NUMERIC INDICATOR\n\t{0x10A80, 0x10A9C, prN},   // Lo    [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH\n\t{0x10A9D, 0x10A9F, prN},   // No     [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY\n\t{0x10AC0, 0x10AC7, prN},   // Lo     [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW\n\t{0x10AC8, 0x10AC8, prN},   // So         MANICHAEAN SIGN UD\n\t{0x10AC9, 0x10AE4, prN},   // Lo    [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW\n\t{0x10AE5, 0x10AE6, prN},   // Mn     [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW\n\t{0x10AEB, 0x10AEF, prN},   // No     [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED\n\t{0x10AF0, 0x10AF6, prN},   // Po     [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER\n\t{0x10B00, 0x10B35, prN},   // Lo    [54] AVESTAN LETTER A..AVESTAN LETTER HE\n\t{0x10B39, 0x10B3F, prN},   // Po     [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION\n\t{0x10B40, 0x10B55, prN},   // Lo    [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW\n\t{0x10B58, 0x10B5F, prN},   // No     [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND\n\t{0x10B60, 0x10B72, prN},   // Lo    [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW\n\t{0x10B78, 0x10B7F, prN},   // No     [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND\n\t{0x10B80, 0x10B91, prN},   // Lo    [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW\n\t{0x10B99, 0x10B9C, prN},   // Po     [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT\n\t{0x10BA9, 0x10BAF, prN},   // No     [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED\n\t{0x10C00, 0x10C48, prN},   // Lo    [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH\n\t{0x10C80, 0x10CB2, prN},   // Lu    [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US\n\t{0x10CC0, 0x10CF2, prN},   // Ll    [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US\n\t{0x10CFA, 0x10CFF, prN},   // No     [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND\n\t{0x10D00, 0x10D23, prN},   // Lo    [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA\n\t{0x10D24, 0x10D27, prN},   // Mn     [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI\n\t{0x10D30, 0x10D39, prN},   // Nd    [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE\n\t{0x10E60, 0x10E7E, prN},   // No    [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS\n\t{0x10E80, 0x10EA9, prN},   // Lo    [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET\n\t{0x10EAB, 0x10EAC, prN},   // Mn     [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK\n\t{0x10EAD, 0x10EAD, prN},   // Pd         YEZIDI HYPHENATION MARK\n\t{0x10EB0, 0x10EB1, prN},   // Lo     [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE\n\t{0x10EFD, 0x10EFF, prN},   // Mn     [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA\n\t{0x10F00, 0x10F1C, prN},   // Lo    [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL\n\t{0x10F1D, 0x10F26, prN},   // No    [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF\n\t{0x10F27, 0x10F27, prN},   // Lo         OLD SOGDIAN LIGATURE AYIN-DALETH\n\t{0x10F30, 0x10F45, prN},   // Lo    [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN\n\t{0x10F46, 0x10F50, prN},   // Mn    [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW\n\t{0x10F51, 0x10F54, prN},   // No     [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED\n\t{0x10F55, 0x10F59, prN},   // Po     [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT\n\t{0x10F70, 0x10F81, prN},   // Lo    [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH\n\t{0x10F82, 0x10F85, prN},   // Mn     [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW\n\t{0x10F86, 0x10F89, prN},   // Po     [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS\n\t{0x10FB0, 0x10FC4, prN},   // Lo    [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW\n\t{0x10FC5, 0x10FCB, prN},   // No     [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED\n\t{0x10FE0, 0x10FF6, prN},   // Lo    [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH\n\t{0x11000, 0x11000, prN},   // Mc         BRAHMI SIGN CANDRABINDU\n\t{0x11001, 0x11001, prN},   // Mn         BRAHMI SIGN ANUSVARA\n\t{0x11002, 0x11002, prN},   // Mc         BRAHMI SIGN VISARGA\n\t{0x11003, 0x11037, prN},   // Lo    [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA\n\t{0x11038, 0x11046, prN},   // Mn    [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA\n\t{0x11047, 0x1104D, prN},   // Po     [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS\n\t{0x11052, 0x11065, prN},   // No    [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND\n\t{0x11066, 0x1106F, prN},   // Nd    [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE\n\t{0x11070, 0x11070, prN},   // Mn         BRAHMI SIGN OLD TAMIL VIRAMA\n\t{0x11071, 0x11072, prN},   // Lo     [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O\n\t{0x11073, 0x11074, prN},   // Mn     [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O\n\t{0x11075, 0x11075, prN},   // Lo         BRAHMI LETTER OLD TAMIL LLA\n\t{0x1107F, 0x1107F, prN},   // Mn         BRAHMI NUMBER JOINER\n\t{0x11080, 0x11081, prN},   // Mn     [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA\n\t{0x11082, 0x11082, prN},   // Mc         KAITHI SIGN VISARGA\n\t{0x11083, 0x110AF, prN},   // Lo    [45] KAITHI LETTER A..KAITHI LETTER HA\n\t{0x110B0, 0x110B2, prN},   // Mc     [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II\n\t{0x110B3, 0x110B6, prN},   // Mn     [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI\n\t{0x110B7, 0x110B8, prN},   // Mc     [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU\n\t{0x110B9, 0x110BA, prN},   // Mn     [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA\n\t{0x110BB, 0x110BC, prN},   // Po     [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN\n\t{0x110BD, 0x110BD, prN},   // Cf         KAITHI NUMBER SIGN\n\t{0x110BE, 0x110C1, prN},   // Po     [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA\n\t{0x110C2, 0x110C2, prN},   // Mn         KAITHI VOWEL SIGN VOCALIC R\n\t{0x110CD, 0x110CD, prN},   // Cf         KAITHI NUMBER SIGN ABOVE\n\t{0x110D0, 0x110E8, prN},   // Lo    [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE\n\t{0x110F0, 0x110F9, prN},   // Nd    [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE\n\t{0x11100, 0x11102, prN},   // Mn     [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA\n\t{0x11103, 0x11126, prN},   // Lo    [36] CHAKMA LETTER AA..CHAKMA LETTER HAA\n\t{0x11127, 0x1112B, prN},   // Mn     [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU\n\t{0x1112C, 0x1112C, prN},   // Mc         CHAKMA VOWEL SIGN E\n\t{0x1112D, 0x11134, prN},   // Mn     [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA\n\t{0x11136, 0x1113F, prN},   // Nd    [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE\n\t{0x11140, 0x11143, prN},   // Po     [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK\n\t{0x11144, 0x11144, prN},   // Lo         CHAKMA LETTER LHAA\n\t{0x11145, 0x11146, prN},   // Mc     [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI\n\t{0x11147, 0x11147, prN},   // Lo         CHAKMA LETTER VAA\n\t{0x11150, 0x11172, prN},   // Lo    [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA\n\t{0x11173, 0x11173, prN},   // Mn         MAHAJANI SIGN NUKTA\n\t{0x11174, 0x11175, prN},   // Po     [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK\n\t{0x11176, 0x11176, prN},   // Lo         MAHAJANI LIGATURE SHRI\n\t{0x11180, 0x11181, prN},   // Mn     [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA\n\t{0x11182, 0x11182, prN},   // Mc         SHARADA SIGN VISARGA\n\t{0x11183, 0x111B2, prN},   // Lo    [48] SHARADA LETTER A..SHARADA LETTER HA\n\t{0x111B3, 0x111B5, prN},   // Mc     [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II\n\t{0x111B6, 0x111BE, prN},   // Mn     [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O\n\t{0x111BF, 0x111C0, prN},   // Mc     [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA\n\t{0x111C1, 0x111C4, prN},   // Lo     [4] SHARADA SIGN AVAGRAHA..SHARADA OM\n\t{0x111C5, 0x111C8, prN},   // Po     [4] SHARADA DANDA..SHARADA SEPARATOR\n\t{0x111C9, 0x111CC, prN},   // Mn     [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK\n\t{0x111CD, 0x111CD, prN},   // Po         SHARADA SUTRA MARK\n\t{0x111CE, 0x111CE, prN},   // Mc         SHARADA VOWEL SIGN PRISHTHAMATRA E\n\t{0x111CF, 0x111CF, prN},   // Mn         SHARADA SIGN INVERTED CANDRABINDU\n\t{0x111D0, 0x111D9, prN},   // Nd    [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE\n\t{0x111DA, 0x111DA, prN},   // Lo         SHARADA EKAM\n\t{0x111DB, 0x111DB, prN},   // Po         SHARADA SIGN SIDDHAM\n\t{0x111DC, 0x111DC, prN},   // Lo         SHARADA HEADSTROKE\n\t{0x111DD, 0x111DF, prN},   // Po     [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2\n\t{0x111E1, 0x111F4, prN},   // No    [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND\n\t{0x11200, 0x11211, prN},   // Lo    [18] KHOJKI LETTER A..KHOJKI LETTER JJA\n\t{0x11213, 0x1122B, prN},   // Lo    [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA\n\t{0x1122C, 0x1122E, prN},   // Mc     [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II\n\t{0x1122F, 0x11231, prN},   // Mn     [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI\n\t{0x11232, 0x11233, prN},   // Mc     [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU\n\t{0x11234, 0x11234, prN},   // Mn         KHOJKI SIGN ANUSVARA\n\t{0x11235, 0x11235, prN},   // Mc         KHOJKI SIGN VIRAMA\n\t{0x11236, 0x11237, prN},   // Mn     [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA\n\t{0x11238, 0x1123D, prN},   // Po     [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN\n\t{0x1123E, 0x1123E, prN},   // Mn         KHOJKI SIGN SUKUN\n\t{0x1123F, 0x11240, prN},   // Lo     [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I\n\t{0x11241, 0x11241, prN},   // Mn         KHOJKI VOWEL SIGN VOCALIC R\n\t{0x11280, 0x11286, prN},   // Lo     [7] MULTANI LETTER A..MULTANI LETTER GA\n\t{0x11288, 0x11288, prN},   // Lo         MULTANI LETTER GHA\n\t{0x1128A, 0x1128D, prN},   // Lo     [4] MULTANI LETTER CA..MULTANI LETTER JJA\n\t{0x1128F, 0x1129D, prN},   // Lo    [15] MULTANI LETTER NYA..MULTANI LETTER BA\n\t{0x1129F, 0x112A8, prN},   // Lo    [10] MULTANI LETTER BHA..MULTANI LETTER RHA\n\t{0x112A9, 0x112A9, prN},   // Po         MULTANI SECTION MARK\n\t{0x112B0, 0x112DE, prN},   // Lo    [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA\n\t{0x112DF, 0x112DF, prN},   // Mn         KHUDAWADI SIGN ANUSVARA\n\t{0x112E0, 0x112E2, prN},   // Mc     [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II\n\t{0x112E3, 0x112EA, prN},   // Mn     [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA\n\t{0x112F0, 0x112F9, prN},   // Nd    [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE\n\t{0x11300, 0x11301, prN},   // Mn     [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU\n\t{0x11302, 0x11303, prN},   // Mc     [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA\n\t{0x11305, 0x1130C, prN},   // Lo     [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L\n\t{0x1130F, 0x11310, prN},   // Lo     [2] GRANTHA LETTER EE..GRANTHA LETTER AI\n\t{0x11313, 0x11328, prN},   // Lo    [22] GRANTHA LETTER OO..GRANTHA LETTER NA\n\t{0x1132A, 0x11330, prN},   // Lo     [7] GRANTHA LETTER PA..GRANTHA LETTER RA\n\t{0x11332, 0x11333, prN},   // Lo     [2] GRANTHA LETTER LA..GRANTHA LETTER LLA\n\t{0x11335, 0x11339, prN},   // Lo     [5] GRANTHA LETTER VA..GRANTHA LETTER HA\n\t{0x1133B, 0x1133C, prN},   // Mn     [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA\n\t{0x1133D, 0x1133D, prN},   // Lo         GRANTHA SIGN AVAGRAHA\n\t{0x1133E, 0x1133F, prN},   // Mc     [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I\n\t{0x11340, 0x11340, prN},   // Mn         GRANTHA VOWEL SIGN II\n\t{0x11341, 0x11344, prN},   // Mc     [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR\n\t{0x11347, 0x11348, prN},   // Mc     [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI\n\t{0x1134B, 0x1134D, prN},   // Mc     [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA\n\t{0x11350, 0x11350, prN},   // Lo         GRANTHA OM\n\t{0x11357, 0x11357, prN},   // Mc         GRANTHA AU LENGTH MARK\n\t{0x1135D, 0x11361, prN},   // Lo     [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL\n\t{0x11362, 0x11363, prN},   // Mc     [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL\n\t{0x11366, 0x1136C, prN},   // Mn     [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX\n\t{0x11370, 0x11374, prN},   // Mn     [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA\n\t{0x11400, 0x11434, prN},   // Lo    [53] NEWA LETTER A..NEWA LETTER HA\n\t{0x11435, 0x11437, prN},   // Mc     [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II\n\t{0x11438, 0x1143F, prN},   // Mn     [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI\n\t{0x11440, 0x11441, prN},   // Mc     [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU\n\t{0x11442, 0x11444, prN},   // Mn     [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA\n\t{0x11445, 0x11445, prN},   // Mc         NEWA SIGN VISARGA\n\t{0x11446, 0x11446, prN},   // Mn         NEWA SIGN NUKTA\n\t{0x11447, 0x1144A, prN},   // Lo     [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI\n\t{0x1144B, 0x1144F, prN},   // Po     [5] NEWA DANDA..NEWA ABBREVIATION SIGN\n\t{0x11450, 0x11459, prN},   // Nd    [10] NEWA DIGIT ZERO..NEWA DIGIT NINE\n\t{0x1145A, 0x1145B, prN},   // Po     [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK\n\t{0x1145D, 0x1145D, prN},   // Po         NEWA INSERTION SIGN\n\t{0x1145E, 0x1145E, prN},   // Mn         NEWA SANDHI MARK\n\t{0x1145F, 0x11461, prN},   // Lo     [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA\n\t{0x11480, 0x114AF, prN},   // Lo    [48] TIRHUTA ANJI..TIRHUTA LETTER HA\n\t{0x114B0, 0x114B2, prN},   // Mc     [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II\n\t{0x114B3, 0x114B8, prN},   // Mn     [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL\n\t{0x114B9, 0x114B9, prN},   // Mc         TIRHUTA VOWEL SIGN E\n\t{0x114BA, 0x114BA, prN},   // Mn         TIRHUTA VOWEL SIGN SHORT E\n\t{0x114BB, 0x114BE, prN},   // Mc     [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU\n\t{0x114BF, 0x114C0, prN},   // Mn     [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA\n\t{0x114C1, 0x114C1, prN},   // Mc         TIRHUTA SIGN VISARGA\n\t{0x114C2, 0x114C3, prN},   // Mn     [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA\n\t{0x114C4, 0x114C5, prN},   // Lo     [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG\n\t{0x114C6, 0x114C6, prN},   // Po         TIRHUTA ABBREVIATION SIGN\n\t{0x114C7, 0x114C7, prN},   // Lo         TIRHUTA OM\n\t{0x114D0, 0x114D9, prN},   // Nd    [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE\n\t{0x11580, 0x115AE, prN},   // Lo    [47] SIDDHAM LETTER A..SIDDHAM LETTER HA\n\t{0x115AF, 0x115B1, prN},   // Mc     [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II\n\t{0x115B2, 0x115B5, prN},   // Mn     [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR\n\t{0x115B8, 0x115BB, prN},   // Mc     [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU\n\t{0x115BC, 0x115BD, prN},   // Mn     [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA\n\t{0x115BE, 0x115BE, prN},   // Mc         SIDDHAM SIGN VISARGA\n\t{0x115BF, 0x115C0, prN},   // Mn     [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA\n\t{0x115C1, 0x115D7, prN},   // Po    [23] SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES\n\t{0x115D8, 0x115DB, prN},   // Lo     [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U\n\t{0x115DC, 0x115DD, prN},   // Mn     [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU\n\t{0x11600, 0x1162F, prN},   // Lo    [48] MODI LETTER A..MODI LETTER LLA\n\t{0x11630, 0x11632, prN},   // Mc     [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II\n\t{0x11633, 0x1163A, prN},   // Mn     [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI\n\t{0x1163B, 0x1163C, prN},   // Mc     [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU\n\t{0x1163D, 0x1163D, prN},   // Mn         MODI SIGN ANUSVARA\n\t{0x1163E, 0x1163E, prN},   // Mc         MODI SIGN VISARGA\n\t{0x1163F, 0x11640, prN},   // Mn     [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA\n\t{0x11641, 0x11643, prN},   // Po     [3] MODI DANDA..MODI ABBREVIATION SIGN\n\t{0x11644, 0x11644, prN},   // Lo         MODI SIGN HUVA\n\t{0x11650, 0x11659, prN},   // Nd    [10] MODI DIGIT ZERO..MODI DIGIT NINE\n\t{0x11660, 0x1166C, prN},   // Po    [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT\n\t{0x11680, 0x116AA, prN},   // Lo    [43] TAKRI LETTER A..TAKRI LETTER RRA\n\t{0x116AB, 0x116AB, prN},   // Mn         TAKRI SIGN ANUSVARA\n\t{0x116AC, 0x116AC, prN},   // Mc         TAKRI SIGN VISARGA\n\t{0x116AD, 0x116AD, prN},   // Mn         TAKRI VOWEL SIGN AA\n\t{0x116AE, 0x116AF, prN},   // Mc     [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II\n\t{0x116B0, 0x116B5, prN},   // Mn     [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU\n\t{0x116B6, 0x116B6, prN},   // Mc         TAKRI SIGN VIRAMA\n\t{0x116B7, 0x116B7, prN},   // Mn         TAKRI SIGN NUKTA\n\t{0x116B8, 0x116B8, prN},   // Lo         TAKRI LETTER ARCHAIC KHA\n\t{0x116B9, 0x116B9, prN},   // Po         TAKRI ABBREVIATION SIGN\n\t{0x116C0, 0x116C9, prN},   // Nd    [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE\n\t{0x11700, 0x1171A, prN},   // Lo    [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA\n\t{0x1171D, 0x1171F, prN},   // Mn     [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA\n\t{0x11720, 0x11721, prN},   // Mc     [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA\n\t{0x11722, 0x11725, prN},   // Mn     [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU\n\t{0x11726, 0x11726, prN},   // Mc         AHOM VOWEL SIGN E\n\t{0x11727, 0x1172B, prN},   // Mn     [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER\n\t{0x11730, 0x11739, prN},   // Nd    [10] AHOM DIGIT ZERO..AHOM DIGIT NINE\n\t{0x1173A, 0x1173B, prN},   // No     [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY\n\t{0x1173C, 0x1173E, prN},   // Po     [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI\n\t{0x1173F, 0x1173F, prN},   // So         AHOM SYMBOL VI\n\t{0x11740, 0x11746, prN},   // Lo     [7] AHOM LETTER CA..AHOM LETTER LLA\n\t{0x11800, 0x1182B, prN},   // Lo    [44] DOGRA LETTER A..DOGRA LETTER RRA\n\t{0x1182C, 0x1182E, prN},   // Mc     [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II\n\t{0x1182F, 0x11837, prN},   // Mn     [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA\n\t{0x11838, 0x11838, prN},   // Mc         DOGRA SIGN VISARGA\n\t{0x11839, 0x1183A, prN},   // Mn     [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA\n\t{0x1183B, 0x1183B, prN},   // Po         DOGRA ABBREVIATION SIGN\n\t{0x118A0, 0x118DF, prN},   // L&    [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO\n\t{0x118E0, 0x118E9, prN},   // Nd    [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE\n\t{0x118EA, 0x118F2, prN},   // No     [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY\n\t{0x118FF, 0x118FF, prN},   // Lo         WARANG CITI OM\n\t{0x11900, 0x11906, prN},   // Lo     [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E\n\t{0x11909, 0x11909, prN},   // Lo         DIVES AKURU LETTER O\n\t{0x1190C, 0x11913, prN},   // Lo     [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA\n\t{0x11915, 0x11916, prN},   // Lo     [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA\n\t{0x11918, 0x1192F, prN},   // Lo    [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA\n\t{0x11930, 0x11935, prN},   // Mc     [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E\n\t{0x11937, 0x11938, prN},   // Mc     [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O\n\t{0x1193B, 0x1193C, prN},   // Mn     [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU\n\t{0x1193D, 0x1193D, prN},   // Mc         DIVES AKURU SIGN HALANTA\n\t{0x1193E, 0x1193E, prN},   // Mn         DIVES AKURU VIRAMA\n\t{0x1193F, 0x1193F, prN},   // Lo         DIVES AKURU PREFIXED NASAL SIGN\n\t{0x11940, 0x11940, prN},   // Mc         DIVES AKURU MEDIAL YA\n\t{0x11941, 0x11941, prN},   // Lo         DIVES AKURU INITIAL RA\n\t{0x11942, 0x11942, prN},   // Mc         DIVES AKURU MEDIAL RA\n\t{0x11943, 0x11943, prN},   // Mn         DIVES AKURU SIGN NUKTA\n\t{0x11944, 0x11946, prN},   // Po     [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK\n\t{0x11950, 0x11959, prN},   // Nd    [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE\n\t{0x119A0, 0x119A7, prN},   // Lo     [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR\n\t{0x119AA, 0x119D0, prN},   // Lo    [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA\n\t{0x119D1, 0x119D3, prN},   // Mc     [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II\n\t{0x119D4, 0x119D7, prN},   // Mn     [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR\n\t{0x119DA, 0x119DB, prN},   // Mn     [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI\n\t{0x119DC, 0x119DF, prN},   // Mc     [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA\n\t{0x119E0, 0x119E0, prN},   // Mn         NANDINAGARI SIGN VIRAMA\n\t{0x119E1, 0x119E1, prN},   // Lo         NANDINAGARI SIGN AVAGRAHA\n\t{0x119E2, 0x119E2, prN},   // Po         NANDINAGARI SIGN SIDDHAM\n\t{0x119E3, 0x119E3, prN},   // Lo         NANDINAGARI HEADSTROKE\n\t{0x119E4, 0x119E4, prN},   // Mc         NANDINAGARI VOWEL SIGN PRISHTHAMATRA E\n\t{0x11A00, 0x11A00, prN},   // Lo         ZANABAZAR SQUARE LETTER A\n\t{0x11A01, 0x11A0A, prN},   // Mn    [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK\n\t{0x11A0B, 0x11A32, prN},   // Lo    [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA\n\t{0x11A33, 0x11A38, prN},   // Mn     [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA\n\t{0x11A39, 0x11A39, prN},   // Mc         ZANABAZAR SQUARE SIGN VISARGA\n\t{0x11A3A, 0x11A3A, prN},   // Lo         ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA\n\t{0x11A3B, 0x11A3E, prN},   // Mn     [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA\n\t{0x11A3F, 0x11A46, prN},   // Po     [8] ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK\n\t{0x11A47, 0x11A47, prN},   // Mn         ZANABAZAR SQUARE SUBJOINER\n\t{0x11A50, 0x11A50, prN},   // Lo         SOYOMBO LETTER A\n\t{0x11A51, 0x11A56, prN},   // Mn     [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE\n\t{0x11A57, 0x11A58, prN},   // Mc     [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU\n\t{0x11A59, 0x11A5B, prN},   // Mn     [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK\n\t{0x11A5C, 0x11A89, prN},   // Lo    [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA\n\t{0x11A8A, 0x11A96, prN},   // Mn    [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA\n\t{0x11A97, 0x11A97, prN},   // Mc         SOYOMBO SIGN VISARGA\n\t{0x11A98, 0x11A99, prN},   // Mn     [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER\n\t{0x11A9A, 0x11A9C, prN},   // Po     [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD\n\t{0x11A9D, 0x11A9D, prN},   // Lo         SOYOMBO MARK PLUTA\n\t{0x11A9E, 0x11AA2, prN},   // Po     [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2\n\t{0x11AB0, 0x11ABF, prN},   // Lo    [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA\n\t{0x11AC0, 0x11AF8, prN},   // Lo    [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL\n\t{0x11B00, 0x11B09, prN},   // Po    [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU\n\t{0x11C00, 0x11C08, prN},   // Lo     [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L\n\t{0x11C0A, 0x11C2E, prN},   // Lo    [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA\n\t{0x11C2F, 0x11C2F, prN},   // Mc         BHAIKSUKI VOWEL SIGN AA\n\t{0x11C30, 0x11C36, prN},   // Mn     [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L\n\t{0x11C38, 0x11C3D, prN},   // Mn     [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA\n\t{0x11C3E, 0x11C3E, prN},   // Mc         BHAIKSUKI SIGN VISARGA\n\t{0x11C3F, 0x11C3F, prN},   // Mn         BHAIKSUKI SIGN VIRAMA\n\t{0x11C40, 0x11C40, prN},   // Lo         BHAIKSUKI SIGN AVAGRAHA\n\t{0x11C41, 0x11C45, prN},   // Po     [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2\n\t{0x11C50, 0x11C59, prN},   // Nd    [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE\n\t{0x11C5A, 0x11C6C, prN},   // No    [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK\n\t{0x11C70, 0x11C71, prN},   // Po     [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD\n\t{0x11C72, 0x11C8F, prN},   // Lo    [30] MARCHEN LETTER KA..MARCHEN LETTER A\n\t{0x11C92, 0x11CA7, prN},   // Mn    [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA\n\t{0x11CA9, 0x11CA9, prN},   // Mc         MARCHEN SUBJOINED LETTER YA\n\t{0x11CAA, 0x11CB0, prN},   // Mn     [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA\n\t{0x11CB1, 0x11CB1, prN},   // Mc         MARCHEN VOWEL SIGN I\n\t{0x11CB2, 0x11CB3, prN},   // Mn     [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E\n\t{0x11CB4, 0x11CB4, prN},   // Mc         MARCHEN VOWEL SIGN O\n\t{0x11CB5, 0x11CB6, prN},   // Mn     [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU\n\t{0x11D00, 0x11D06, prN},   // Lo     [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E\n\t{0x11D08, 0x11D09, prN},   // Lo     [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O\n\t{0x11D0B, 0x11D30, prN},   // Lo    [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA\n\t{0x11D31, 0x11D36, prN},   // Mn     [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R\n\t{0x11D3A, 0x11D3A, prN},   // Mn         MASARAM GONDI VOWEL SIGN E\n\t{0x11D3C, 0x11D3D, prN},   // Mn     [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O\n\t{0x11D3F, 0x11D45, prN},   // Mn     [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA\n\t{0x11D46, 0x11D46, prN},   // Lo         MASARAM GONDI REPHA\n\t{0x11D47, 0x11D47, prN},   // Mn         MASARAM GONDI RA-KARA\n\t{0x11D50, 0x11D59, prN},   // Nd    [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE\n\t{0x11D60, 0x11D65, prN},   // Lo     [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU\n\t{0x11D67, 0x11D68, prN},   // Lo     [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI\n\t{0x11D6A, 0x11D89, prN},   // Lo    [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA\n\t{0x11D8A, 0x11D8E, prN},   // Mc     [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU\n\t{0x11D90, 0x11D91, prN},   // Mn     [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI\n\t{0x11D93, 0x11D94, prN},   // Mc     [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU\n\t{0x11D95, 0x11D95, prN},   // Mn         GUNJALA GONDI SIGN ANUSVARA\n\t{0x11D96, 0x11D96, prN},   // Mc         GUNJALA GONDI SIGN VISARGA\n\t{0x11D97, 0x11D97, prN},   // Mn         GUNJALA GONDI VIRAMA\n\t{0x11D98, 0x11D98, prN},   // Lo         GUNJALA GONDI OM\n\t{0x11DA0, 0x11DA9, prN},   // Nd    [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE\n\t{0x11EE0, 0x11EF2, prN},   // Lo    [19] MAKASAR LETTER KA..MAKASAR ANGKA\n\t{0x11EF3, 0x11EF4, prN},   // Mn     [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U\n\t{0x11EF5, 0x11EF6, prN},   // Mc     [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O\n\t{0x11EF7, 0x11EF8, prN},   // Po     [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION\n\t{0x11F00, 0x11F01, prN},   // Mn     [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA\n\t{0x11F02, 0x11F02, prN},   // Lo         KAWI SIGN REPHA\n\t{0x11F03, 0x11F03, prN},   // Mc         KAWI SIGN VISARGA\n\t{0x11F04, 0x11F10, prN},   // Lo    [13] KAWI LETTER A..KAWI LETTER O\n\t{0x11F12, 0x11F33, prN},   // Lo    [34] KAWI LETTER KA..KAWI LETTER JNYA\n\t{0x11F34, 0x11F35, prN},   // Mc     [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA\n\t{0x11F36, 0x11F3A, prN},   // Mn     [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R\n\t{0x11F3E, 0x11F3F, prN},   // Mc     [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI\n\t{0x11F40, 0x11F40, prN},   // Mn         KAWI VOWEL SIGN EU\n\t{0x11F41, 0x11F41, prN},   // Mc         KAWI SIGN KILLER\n\t{0x11F42, 0x11F42, prN},   // Mn         KAWI CONJOINER\n\t{0x11F43, 0x11F4F, prN},   // Po    [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL\n\t{0x11F50, 0x11F59, prN},   // Nd    [10] KAWI DIGIT ZERO..KAWI DIGIT NINE\n\t{0x11FB0, 0x11FB0, prN},   // Lo         LISU LETTER YHA\n\t{0x11FC0, 0x11FD4, prN},   // No    [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH\n\t{0x11FD5, 0x11FDC, prN},   // So     [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI\n\t{0x11FDD, 0x11FE0, prN},   // Sc     [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN\n\t{0x11FE1, 0x11FF1, prN},   // So    [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA\n\t{0x11FFF, 0x11FFF, prN},   // Po         TAMIL PUNCTUATION END OF TEXT\n\t{0x12000, 0x12399, prN},   // Lo   [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U\n\t{0x12400, 0x1246E, prN},   // Nl   [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM\n\t{0x12470, 0x12474, prN},   // Po     [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON\n\t{0x12480, 0x12543, prN},   // Lo   [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU\n\t{0x12F90, 0x12FF0, prN},   // Lo    [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114\n\t{0x12FF1, 0x12FF2, prN},   // Po     [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302\n\t{0x13000, 0x1342F, prN},   // Lo  [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D\n\t{0x13430, 0x1343F, prN},   // Cf    [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE\n\t{0x13440, 0x13440, prN},   // Mn         EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY\n\t{0x13441, 0x13446, prN},   // Lo     [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN\n\t{0x13447, 0x13455, prN},   // Mn    [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED\n\t{0x14400, 0x14646, prN},   // Lo   [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530\n\t{0x16800, 0x16A38, prN},   // Lo   [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ\n\t{0x16A40, 0x16A5E, prN},   // Lo    [31] MRO LETTER TA..MRO LETTER TEK\n\t{0x16A60, 0x16A69, prN},   // Nd    [10] MRO DIGIT ZERO..MRO DIGIT NINE\n\t{0x16A6E, 0x16A6F, prN},   // Po     [2] MRO DANDA..MRO DOUBLE DANDA\n\t{0x16A70, 0x16ABE, prN},   // Lo    [79] TANGSA LETTER OZ..TANGSA LETTER ZA\n\t{0x16AC0, 0x16AC9, prN},   // Nd    [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE\n\t{0x16AD0, 0x16AED, prN},   // Lo    [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I\n\t{0x16AF0, 0x16AF4, prN},   // Mn     [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE\n\t{0x16AF5, 0x16AF5, prN},   // Po         BASSA VAH FULL STOP\n\t{0x16B00, 0x16B2F, prN},   // Lo    [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU\n\t{0x16B30, 0x16B36, prN},   // Mn     [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM\n\t{0x16B37, 0x16B3B, prN},   // Po     [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM\n\t{0x16B3C, 0x16B3F, prN},   // So     [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB\n\t{0x16B40, 0x16B43, prN},   // Lm     [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM\n\t{0x16B44, 0x16B44, prN},   // Po         PAHAWH HMONG SIGN XAUS\n\t{0x16B45, 0x16B45, prN},   // So         PAHAWH HMONG SIGN CIM TSOV ROG\n\t{0x16B50, 0x16B59, prN},   // Nd    [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE\n\t{0x16B5B, 0x16B61, prN},   // No     [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS\n\t{0x16B63, 0x16B77, prN},   // Lo    [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS\n\t{0x16B7D, 0x16B8F, prN},   // Lo    [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ\n\t{0x16E40, 0x16E7F, prN},   // L&    [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y\n\t{0x16E80, 0x16E96, prN},   // No    [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM\n\t{0x16E97, 0x16E9A, prN},   // Po     [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH\n\t{0x16F00, 0x16F4A, prN},   // Lo    [75] MIAO LETTER PA..MIAO LETTER RTE\n\t{0x16F4F, 0x16F4F, prN},   // Mn         MIAO SIGN CONSONANT MODIFIER BAR\n\t{0x16F50, 0x16F50, prN},   // Lo         MIAO LETTER NASALIZATION\n\t{0x16F51, 0x16F87, prN},   // Mc    [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI\n\t{0x16F8F, 0x16F92, prN},   // Mn     [4] MIAO TONE RIGHT..MIAO TONE BELOW\n\t{0x16F93, 0x16F9F, prN},   // Lm    [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8\n\t{0x16FE0, 0x16FE1, prW},   // Lm     [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK\n\t{0x16FE2, 0x16FE2, prW},   // Po         OLD CHINESE HOOK MARK\n\t{0x16FE3, 0x16FE3, prW},   // Lm         OLD CHINESE ITERATION MARK\n\t{0x16FE4, 0x16FE4, prW},   // Mn         KHITAN SMALL SCRIPT FILLER\n\t{0x16FF0, 0x16FF1, prW},   // Mc     [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY\n\t{0x17000, 0x187F7, prW},   // Lo  [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7\n\t{0x18800, 0x18AFF, prW},   // Lo   [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768\n\t{0x18B00, 0x18CD5, prW},   // Lo   [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5\n\t{0x18D00, 0x18D08, prW},   // Lo     [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08\n\t{0x1AFF0, 0x1AFF3, prW},   // Lm     [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5\n\t{0x1AFF5, 0x1AFFB, prW},   // Lm     [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5\n\t{0x1AFFD, 0x1AFFE, prW},   // Lm     [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8\n\t{0x1B000, 0x1B0FF, prW},   // Lo   [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2\n\t{0x1B100, 0x1B122, prW},   // Lo    [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU\n\t{0x1B132, 0x1B132, prW},   // Lo         HIRAGANA LETTER SMALL KO\n\t{0x1B150, 0x1B152, prW},   // Lo     [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO\n\t{0x1B155, 0x1B155, prW},   // Lo         KATAKANA LETTER SMALL KO\n\t{0x1B164, 0x1B167, prW},   // Lo     [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N\n\t{0x1B170, 0x1B2FB, prW},   // Lo   [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB\n\t{0x1BC00, 0x1BC6A, prN},   // Lo   [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M\n\t{0x1BC70, 0x1BC7C, prN},   // Lo    [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK\n\t{0x1BC80, 0x1BC88, prN},   // Lo     [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL\n\t{0x1BC90, 0x1BC99, prN},   // Lo    [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW\n\t{0x1BC9C, 0x1BC9C, prN},   // So         DUPLOYAN SIGN O WITH CROSS\n\t{0x1BC9D, 0x1BC9E, prN},   // Mn     [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK\n\t{0x1BC9F, 0x1BC9F, prN},   // Po         DUPLOYAN PUNCTUATION CHINOOK FULL STOP\n\t{0x1BCA0, 0x1BCA3, prN},   // Cf     [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP\n\t{0x1CF00, 0x1CF2D, prN},   // Mn    [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT\n\t{0x1CF30, 0x1CF46, prN},   // Mn    [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG\n\t{0x1CF50, 0x1CFC3, prN},   // So   [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK\n\t{0x1D000, 0x1D0F5, prN},   // So   [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO\n\t{0x1D100, 0x1D126, prN},   // So    [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2\n\t{0x1D129, 0x1D164, prN},   // So    [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE\n\t{0x1D165, 0x1D166, prN},   // Mc     [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM\n\t{0x1D167, 0x1D169, prN},   // Mn     [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3\n\t{0x1D16A, 0x1D16C, prN},   // So     [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3\n\t{0x1D16D, 0x1D172, prN},   // Mc     [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5\n\t{0x1D173, 0x1D17A, prN},   // Cf     [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE\n\t{0x1D17B, 0x1D182, prN},   // Mn     [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE\n\t{0x1D183, 0x1D184, prN},   // So     [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN\n\t{0x1D185, 0x1D18B, prN},   // Mn     [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE\n\t{0x1D18C, 0x1D1A9, prN},   // So    [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH\n\t{0x1D1AA, 0x1D1AD, prN},   // Mn     [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO\n\t{0x1D1AE, 0x1D1EA, prN},   // So    [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON\n\t{0x1D200, 0x1D241, prN},   // So    [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54\n\t{0x1D242, 0x1D244, prN},   // Mn     [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME\n\t{0x1D245, 0x1D245, prN},   // So         GREEK MUSICAL LEIMMA\n\t{0x1D2C0, 0x1D2D3, prN},   // No    [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN\n\t{0x1D2E0, 0x1D2F3, prN},   // No    [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN\n\t{0x1D300, 0x1D356, prN},   // So    [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING\n\t{0x1D360, 0x1D378, prN},   // No    [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE\n\t{0x1D400, 0x1D454, prN},   // L&    [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G\n\t{0x1D456, 0x1D49C, prN},   // L&    [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A\n\t{0x1D49E, 0x1D49F, prN},   // Lu     [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D\n\t{0x1D4A2, 0x1D4A2, prN},   // Lu         MATHEMATICAL SCRIPT CAPITAL G\n\t{0x1D4A5, 0x1D4A6, prN},   // Lu     [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K\n\t{0x1D4A9, 0x1D4AC, prN},   // Lu     [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q\n\t{0x1D4AE, 0x1D4B9, prN},   // L&    [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D\n\t{0x1D4BB, 0x1D4BB, prN},   // Ll         MATHEMATICAL SCRIPT SMALL F\n\t{0x1D4BD, 0x1D4C3, prN},   // Ll     [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N\n\t{0x1D4C5, 0x1D505, prN},   // L&    [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B\n\t{0x1D507, 0x1D50A, prN},   // Lu     [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G\n\t{0x1D50D, 0x1D514, prN},   // Lu     [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q\n\t{0x1D516, 0x1D51C, prN},   // Lu     [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y\n\t{0x1D51E, 0x1D539, prN},   // L&    [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B\n\t{0x1D53B, 0x1D53E, prN},   // Lu     [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G\n\t{0x1D540, 0x1D544, prN},   // Lu     [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M\n\t{0x1D546, 0x1D546, prN},   // Lu         MATHEMATICAL DOUBLE-STRUCK CAPITAL O\n\t{0x1D54A, 0x1D550, prN},   // Lu     [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y\n\t{0x1D552, 0x1D6A5, prN},   // L&   [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J\n\t{0x1D6A8, 0x1D6C0, prN},   // Lu    [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA\n\t{0x1D6C1, 0x1D6C1, prN},   // Sm         MATHEMATICAL BOLD NABLA\n\t{0x1D6C2, 0x1D6DA, prN},   // Ll    [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA\n\t{0x1D6DB, 0x1D6DB, prN},   // Sm         MATHEMATICAL BOLD PARTIAL DIFFERENTIAL\n\t{0x1D6DC, 0x1D6FA, prN},   // L&    [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA\n\t{0x1D6FB, 0x1D6FB, prN},   // Sm         MATHEMATICAL ITALIC NABLA\n\t{0x1D6FC, 0x1D714, prN},   // Ll    [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA\n\t{0x1D715, 0x1D715, prN},   // Sm         MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL\n\t{0x1D716, 0x1D734, prN},   // L&    [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA\n\t{0x1D735, 0x1D735, prN},   // Sm         MATHEMATICAL BOLD ITALIC NABLA\n\t{0x1D736, 0x1D74E, prN},   // Ll    [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA\n\t{0x1D74F, 0x1D74F, prN},   // Sm         MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL\n\t{0x1D750, 0x1D76E, prN},   // L&    [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA\n\t{0x1D76F, 0x1D76F, prN},   // Sm         MATHEMATICAL SANS-SERIF BOLD NABLA\n\t{0x1D770, 0x1D788, prN},   // Ll    [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA\n\t{0x1D789, 0x1D789, prN},   // Sm         MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL\n\t{0x1D78A, 0x1D7A8, prN},   // L&    [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA\n\t{0x1D7A9, 0x1D7A9, prN},   // Sm         MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA\n\t{0x1D7AA, 0x1D7C2, prN},   // Ll    [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA\n\t{0x1D7C3, 0x1D7C3, prN},   // Sm         MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL\n\t{0x1D7C4, 0x1D7CB, prN},   // L&     [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA\n\t{0x1D7CE, 0x1D7FF, prN},   // Nd    [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE\n\t{0x1D800, 0x1D9FF, prN},   // So   [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD\n\t{0x1DA00, 0x1DA36, prN},   // Mn    [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN\n\t{0x1DA37, 0x1DA3A, prN},   // So     [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE\n\t{0x1DA3B, 0x1DA6C, prN},   // Mn    [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT\n\t{0x1DA6D, 0x1DA74, prN},   // So     [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING\n\t{0x1DA75, 0x1DA75, prN},   // Mn         SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS\n\t{0x1DA76, 0x1DA83, prN},   // So    [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH\n\t{0x1DA84, 0x1DA84, prN},   // Mn         SIGNWRITING LOCATION HEAD NECK\n\t{0x1DA85, 0x1DA86, prN},   // So     [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS\n\t{0x1DA87, 0x1DA8B, prN},   // Po     [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS\n\t{0x1DA9B, 0x1DA9F, prN},   // Mn     [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6\n\t{0x1DAA1, 0x1DAAF, prN},   // Mn    [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16\n\t{0x1DF00, 0x1DF09, prN},   // Ll    [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK\n\t{0x1DF0A, 0x1DF0A, prN},   // Lo         LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK\n\t{0x1DF0B, 0x1DF1E, prN},   // Ll    [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL\n\t{0x1DF25, 0x1DF2A, prN},   // Ll     [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK\n\t{0x1E000, 0x1E006, prN},   // Mn     [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE\n\t{0x1E008, 0x1E018, prN},   // Mn    [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU\n\t{0x1E01B, 0x1E021, prN},   // Mn     [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI\n\t{0x1E023, 0x1E024, prN},   // Mn     [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS\n\t{0x1E026, 0x1E02A, prN},   // Mn     [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA\n\t{0x1E030, 0x1E06D, prN},   // Lm    [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE\n\t{0x1E08F, 0x1E08F, prN},   // Mn         COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I\n\t{0x1E100, 0x1E12C, prN},   // Lo    [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W\n\t{0x1E130, 0x1E136, prN},   // Mn     [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D\n\t{0x1E137, 0x1E13D, prN},   // Lm     [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER\n\t{0x1E140, 0x1E149, prN},   // Nd    [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE\n\t{0x1E14E, 0x1E14E, prN},   // Lo         NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ\n\t{0x1E14F, 0x1E14F, prN},   // So         NYIAKENG PUACHUE HMONG CIRCLED CA\n\t{0x1E290, 0x1E2AD, prN},   // Lo    [30] TOTO LETTER PA..TOTO LETTER A\n\t{0x1E2AE, 0x1E2AE, prN},   // Mn         TOTO SIGN RISING TONE\n\t{0x1E2C0, 0x1E2EB, prN},   // Lo    [44] WANCHO LETTER AA..WANCHO LETTER YIH\n\t{0x1E2EC, 0x1E2EF, prN},   // Mn     [4] WANCHO TONE TUP..WANCHO TONE KOINI\n\t{0x1E2F0, 0x1E2F9, prN},   // Nd    [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE\n\t{0x1E2FF, 0x1E2FF, prN},   // Sc         WANCHO NGUN SIGN\n\t{0x1E4D0, 0x1E4EA, prN},   // Lo    [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL\n\t{0x1E4EB, 0x1E4EB, prN},   // Lm         NAG MUNDARI SIGN OJOD\n\t{0x1E4EC, 0x1E4EF, prN},   // Mn     [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH\n\t{0x1E4F0, 0x1E4F9, prN},   // Nd    [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE\n\t{0x1E7E0, 0x1E7E6, prN},   // Lo     [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO\n\t{0x1E7E8, 0x1E7EB, prN},   // Lo     [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE\n\t{0x1E7ED, 0x1E7EE, prN},   // Lo     [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE\n\t{0x1E7F0, 0x1E7FE, prN},   // Lo    [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE\n\t{0x1E800, 0x1E8C4, prN},   // Lo   [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON\n\t{0x1E8C7, 0x1E8CF, prN},   // No     [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE\n\t{0x1E8D0, 0x1E8D6, prN},   // Mn     [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS\n\t{0x1E900, 0x1E943, prN},   // L&    [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA\n\t{0x1E944, 0x1E94A, prN},   // Mn     [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA\n\t{0x1E94B, 0x1E94B, prN},   // Lm         ADLAM NASALIZATION MARK\n\t{0x1E950, 0x1E959, prN},   // Nd    [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE\n\t{0x1E95E, 0x1E95F, prN},   // Po     [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK\n\t{0x1EC71, 0x1ECAB, prN},   // No    [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE\n\t{0x1ECAC, 0x1ECAC, prN},   // So         INDIC SIYAQ PLACEHOLDER\n\t{0x1ECAD, 0x1ECAF, prN},   // No     [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS\n\t{0x1ECB0, 0x1ECB0, prN},   // Sc         INDIC SIYAQ RUPEE MARK\n\t{0x1ECB1, 0x1ECB4, prN},   // No     [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK\n\t{0x1ED01, 0x1ED2D, prN},   // No    [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND\n\t{0x1ED2E, 0x1ED2E, prN},   // So         OTTOMAN SIYAQ MARRATAN\n\t{0x1ED2F, 0x1ED3D, prN},   // No    [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH\n\t{0x1EE00, 0x1EE03, prN},   // Lo     [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL\n\t{0x1EE05, 0x1EE1F, prN},   // Lo    [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF\n\t{0x1EE21, 0x1EE22, prN},   // Lo     [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM\n\t{0x1EE24, 0x1EE24, prN},   // Lo         ARABIC MATHEMATICAL INITIAL HEH\n\t{0x1EE27, 0x1EE27, prN},   // Lo         ARABIC MATHEMATICAL INITIAL HAH\n\t{0x1EE29, 0x1EE32, prN},   // Lo    [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF\n\t{0x1EE34, 0x1EE37, prN},   // Lo     [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH\n\t{0x1EE39, 0x1EE39, prN},   // Lo         ARABIC MATHEMATICAL INITIAL DAD\n\t{0x1EE3B, 0x1EE3B, prN},   // Lo         ARABIC MATHEMATICAL INITIAL GHAIN\n\t{0x1EE42, 0x1EE42, prN},   // Lo         ARABIC MATHEMATICAL TAILED JEEM\n\t{0x1EE47, 0x1EE47, prN},   // Lo         ARABIC MATHEMATICAL TAILED HAH\n\t{0x1EE49, 0x1EE49, prN},   // Lo         ARABIC MATHEMATICAL TAILED YEH\n\t{0x1EE4B, 0x1EE4B, prN},   // Lo         ARABIC MATHEMATICAL TAILED LAM\n\t{0x1EE4D, 0x1EE4F, prN},   // Lo     [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN\n\t{0x1EE51, 0x1EE52, prN},   // Lo     [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF\n\t{0x1EE54, 0x1EE54, prN},   // Lo         ARABIC MATHEMATICAL TAILED SHEEN\n\t{0x1EE57, 0x1EE57, prN},   // Lo         ARABIC MATHEMATICAL TAILED KHAH\n\t{0x1EE59, 0x1EE59, prN},   // Lo         ARABIC MATHEMATICAL TAILED DAD\n\t{0x1EE5B, 0x1EE5B, prN},   // Lo         ARABIC MATHEMATICAL TAILED GHAIN\n\t{0x1EE5D, 0x1EE5D, prN},   // Lo         ARABIC MATHEMATICAL TAILED DOTLESS NOON\n\t{0x1EE5F, 0x1EE5F, prN},   // Lo         ARABIC MATHEMATICAL TAILED DOTLESS QAF\n\t{0x1EE61, 0x1EE62, prN},   // Lo     [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM\n\t{0x1EE64, 0x1EE64, prN},   // Lo         ARABIC MATHEMATICAL STRETCHED HEH\n\t{0x1EE67, 0x1EE6A, prN},   // Lo     [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF\n\t{0x1EE6C, 0x1EE72, prN},   // Lo     [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF\n\t{0x1EE74, 0x1EE77, prN},   // Lo     [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH\n\t{0x1EE79, 0x1EE7C, prN},   // Lo     [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH\n\t{0x1EE7E, 0x1EE7E, prN},   // Lo         ARABIC MATHEMATICAL STRETCHED DOTLESS FEH\n\t{0x1EE80, 0x1EE89, prN},   // Lo    [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH\n\t{0x1EE8B, 0x1EE9B, prN},   // Lo    [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN\n\t{0x1EEA1, 0x1EEA3, prN},   // Lo     [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL\n\t{0x1EEA5, 0x1EEA9, prN},   // Lo     [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH\n\t{0x1EEAB, 0x1EEBB, prN},   // Lo    [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN\n\t{0x1EEF0, 0x1EEF1, prN},   // Sm     [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL\n\t{0x1F000, 0x1F003, prN},   // So     [4] MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND\n\t{0x1F004, 0x1F004, prW},   // So         MAHJONG TILE RED DRAGON\n\t{0x1F005, 0x1F02B, prN},   // So    [39] MAHJONG TILE GREEN DRAGON..MAHJONG TILE BACK\n\t{0x1F030, 0x1F093, prN},   // So   [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06\n\t{0x1F0A0, 0x1F0AE, prN},   // So    [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES\n\t{0x1F0B1, 0x1F0BF, prN},   // So    [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER\n\t{0x1F0C1, 0x1F0CE, prN},   // So    [14] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD KING OF DIAMONDS\n\t{0x1F0CF, 0x1F0CF, prW},   // So         PLAYING CARD BLACK JOKER\n\t{0x1F0D1, 0x1F0F5, prN},   // So    [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21\n\t{0x1F100, 0x1F10A, prA},   // No    [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA\n\t{0x1F10B, 0x1F10C, prN},   // No     [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO\n\t{0x1F10D, 0x1F10F, prN},   // So     [3] CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH\n\t{0x1F110, 0x1F12D, prA},   // So    [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD\n\t{0x1F12E, 0x1F12F, prN},   // So     [2] CIRCLED WZ..COPYLEFT SYMBOL\n\t{0x1F130, 0x1F169, prA},   // So    [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z\n\t{0x1F16A, 0x1F16F, prN},   // So     [6] RAISED MC SIGN..CIRCLED HUMAN FIGURE\n\t{0x1F170, 0x1F18D, prA},   // So    [30] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED SA\n\t{0x1F18E, 0x1F18E, prW},   // So         NEGATIVE SQUARED AB\n\t{0x1F18F, 0x1F190, prA},   // So     [2] NEGATIVE SQUARED WC..SQUARE DJ\n\t{0x1F191, 0x1F19A, prW},   // So    [10] SQUARED CL..SQUARED VS\n\t{0x1F19B, 0x1F1AC, prA},   // So    [18] SQUARED THREE D..SQUARED VOD\n\t{0x1F1AD, 0x1F1AD, prN},   // So         MASK WORK SYMBOL\n\t{0x1F1E6, 0x1F1FF, prN},   // So    [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z\n\t{0x1F200, 0x1F202, prW},   // So     [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA\n\t{0x1F210, 0x1F23B, prW},   // So    [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D\n\t{0x1F240, 0x1F248, prW},   // So     [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557\n\t{0x1F250, 0x1F251, prW},   // So     [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT\n\t{0x1F260, 0x1F265, prW},   // So     [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI\n\t{0x1F300, 0x1F320, prW},   // So    [33] CYCLONE..SHOOTING STAR\n\t{0x1F321, 0x1F32C, prN},   // So    [12] THERMOMETER..WIND BLOWING FACE\n\t{0x1F32D, 0x1F335, prW},   // So     [9] HOT DOG..CACTUS\n\t{0x1F336, 0x1F336, prN},   // So         HOT PEPPER\n\t{0x1F337, 0x1F37C, prW},   // So    [70] TULIP..BABY BOTTLE\n\t{0x1F37D, 0x1F37D, prN},   // So         FORK AND KNIFE WITH PLATE\n\t{0x1F37E, 0x1F393, prW},   // So    [22] BOTTLE WITH POPPING CORK..GRADUATION CAP\n\t{0x1F394, 0x1F39F, prN},   // So    [12] HEART WITH TIP ON THE LEFT..ADMISSION TICKETS\n\t{0x1F3A0, 0x1F3CA, prW},   // So    [43] CAROUSEL HORSE..SWIMMER\n\t{0x1F3CB, 0x1F3CE, prN},   // So     [4] WEIGHT LIFTER..RACING CAR\n\t{0x1F3CF, 0x1F3D3, prW},   // So     [5] CRICKET BAT AND BALL..TABLE TENNIS PADDLE AND BALL\n\t{0x1F3D4, 0x1F3DF, prN},   // So    [12] SNOW CAPPED MOUNTAIN..STADIUM\n\t{0x1F3E0, 0x1F3F0, prW},   // So    [17] HOUSE BUILDING..EUROPEAN CASTLE\n\t{0x1F3F1, 0x1F3F3, prN},   // So     [3] WHITE PENNANT..WAVING WHITE FLAG\n\t{0x1F3F4, 0x1F3F4, prW},   // So         WAVING BLACK FLAG\n\t{0x1F3F5, 0x1F3F7, prN},   // So     [3] ROSETTE..LABEL\n\t{0x1F3F8, 0x1F3FA, prW},   // So     [3] BADMINTON RACQUET AND SHUTTLECOCK..AMPHORA\n\t{0x1F3FB, 0x1F3FF, prW},   // Sk     [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6\n\t{0x1F400, 0x1F43E, prW},   // So    [63] RAT..PAW PRINTS\n\t{0x1F43F, 0x1F43F, prN},   // So         CHIPMUNK\n\t{0x1F440, 0x1F440, prW},   // So         EYES\n\t{0x1F441, 0x1F441, prN},   // So         EYE\n\t{0x1F442, 0x1F4FC, prW},   // So   [187] EAR..VIDEOCASSETTE\n\t{0x1F4FD, 0x1F4FE, prN},   // So     [2] FILM PROJECTOR..PORTABLE STEREO\n\t{0x1F4FF, 0x1F53D, prW},   // So    [63] PRAYER BEADS..DOWN-POINTING SMALL RED TRIANGLE\n\t{0x1F53E, 0x1F54A, prN},   // So    [13] LOWER RIGHT SHADOWED WHITE CIRCLE..DOVE OF PEACE\n\t{0x1F54B, 0x1F54E, prW},   // So     [4] KAABA..MENORAH WITH NINE BRANCHES\n\t{0x1F54F, 0x1F54F, prN},   // So         BOWL OF HYGIEIA\n\t{0x1F550, 0x1F567, prW},   // So    [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY\n\t{0x1F568, 0x1F579, prN},   // So    [18] RIGHT SPEAKER..JOYSTICK\n\t{0x1F57A, 0x1F57A, prW},   // So         MAN DANCING\n\t{0x1F57B, 0x1F594, prN},   // So    [26] LEFT HAND TELEPHONE RECEIVER..REVERSED VICTORY HAND\n\t{0x1F595, 0x1F596, prW},   // So     [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS\n\t{0x1F597, 0x1F5A3, prN},   // So    [13] WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX\n\t{0x1F5A4, 0x1F5A4, prW},   // So         BLACK HEART\n\t{0x1F5A5, 0x1F5FA, prN},   // So    [86] DESKTOP COMPUTER..WORLD MAP\n\t{0x1F5FB, 0x1F5FF, prW},   // So     [5] MOUNT FUJI..MOYAI\n\t{0x1F600, 0x1F64F, prW},   // So    [80] GRINNING FACE..PERSON WITH FOLDED HANDS\n\t{0x1F650, 0x1F67F, prN},   // So    [48] NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD\n\t{0x1F680, 0x1F6C5, prW},   // So    [70] ROCKET..LEFT LUGGAGE\n\t{0x1F6C6, 0x1F6CB, prN},   // So     [6] TRIANGLE WITH ROUNDED CORNERS..COUCH AND LAMP\n\t{0x1F6CC, 0x1F6CC, prW},   // So         SLEEPING ACCOMMODATION\n\t{0x1F6CD, 0x1F6CF, prN},   // So     [3] SHOPPING BAGS..BED\n\t{0x1F6D0, 0x1F6D2, prW},   // So     [3] PLACE OF WORSHIP..SHOPPING TROLLEY\n\t{0x1F6D3, 0x1F6D4, prN},   // So     [2] STUPA..PAGODA\n\t{0x1F6D5, 0x1F6D7, prW},   // So     [3] HINDU TEMPLE..ELEVATOR\n\t{0x1F6DC, 0x1F6DF, prW},   // So     [4] WIRELESS..RING BUOY\n\t{0x1F6E0, 0x1F6EA, prN},   // So    [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE\n\t{0x1F6EB, 0x1F6EC, prW},   // So     [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING\n\t{0x1F6F0, 0x1F6F3, prN},   // So     [4] SATELLITE..PASSENGER SHIP\n\t{0x1F6F4, 0x1F6FC, prW},   // So     [9] SCOOTER..ROLLER SKATE\n\t{0x1F700, 0x1F776, prN},   // So   [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE\n\t{0x1F77B, 0x1F77F, prN},   // So     [5] HAUMEA..ORCUS\n\t{0x1F780, 0x1F7D9, prN},   // So    [90] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NINE POINTED WHITE STAR\n\t{0x1F7E0, 0x1F7EB, prW},   // So    [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE\n\t{0x1F7F0, 0x1F7F0, prW},   // So         HEAVY EQUALS SIGN\n\t{0x1F800, 0x1F80B, prN},   // So    [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD\n\t{0x1F810, 0x1F847, prN},   // So    [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW\n\t{0x1F850, 0x1F859, prN},   // So    [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW\n\t{0x1F860, 0x1F887, prN},   // So    [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW\n\t{0x1F890, 0x1F8AD, prN},   // So    [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS\n\t{0x1F8B0, 0x1F8B1, prN},   // So     [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST\n\t{0x1F900, 0x1F90B, prN},   // So    [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT\n\t{0x1F90C, 0x1F93A, prW},   // So    [47] PINCHED FINGERS..FENCER\n\t{0x1F93B, 0x1F93B, prN},   // So         MODERN PENTATHLON\n\t{0x1F93C, 0x1F945, prW},   // So    [10] WRESTLERS..GOAL NET\n\t{0x1F946, 0x1F946, prN},   // So         RIFLE\n\t{0x1F947, 0x1F9FF, prW},   // So   [185] FIRST PLACE MEDAL..NAZAR AMULET\n\t{0x1FA00, 0x1FA53, prN},   // So    [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP\n\t{0x1FA60, 0x1FA6D, prN},   // So    [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER\n\t{0x1FA70, 0x1FA7C, prW},   // So    [13] BALLET SHOES..CRUTCH\n\t{0x1FA80, 0x1FA88, prW},   // So     [9] YO-YO..FLUTE\n\t{0x1FA90, 0x1FABD, prW},   // So    [46] RINGED PLANET..WING\n\t{0x1FABF, 0x1FAC5, prW},   // So     [7] GOOSE..PERSON WITH CROWN\n\t{0x1FACE, 0x1FADB, prW},   // So    [14] MOOSE..PEA POD\n\t{0x1FAE0, 0x1FAE8, prW},   // So     [9] MELTING FACE..SHAKING FACE\n\t{0x1FAF0, 0x1FAF8, prW},   // So     [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND\n\t{0x1FB00, 0x1FB92, prN},   // So   [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK\n\t{0x1FB94, 0x1FBCA, prN},   // So    [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON\n\t{0x1FBF0, 0x1FBF9, prN},   // Nd    [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE\n\t{0x20000, 0x2A6DF, prW},   // Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF\n\t{0x2A6E0, 0x2A6FF, prW},   // Cn    [32] <reserved-2A6E0>..<reserved-2A6FF>\n\t{0x2A700, 0x2B739, prW},   // Lo  [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739\n\t{0x2B73A, 0x2B73F, prW},   // Cn     [6] <reserved-2B73A>..<reserved-2B73F>\n\t{0x2B740, 0x2B81D, prW},   // Lo   [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D\n\t{0x2B81E, 0x2B81F, prW},   // Cn     [2] <reserved-2B81E>..<reserved-2B81F>\n\t{0x2B820, 0x2CEA1, prW},   // Lo  [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1\n\t{0x2CEA2, 0x2CEAF, prW},   // Cn    [14] <reserved-2CEA2>..<reserved-2CEAF>\n\t{0x2CEB0, 0x2EBE0, prW},   // Lo  [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0\n\t{0x2EBE1, 0x2F7FF, prW},   // Cn  [3103] <reserved-2EBE1>..<reserved-2F7FF>\n\t{0x2F800, 0x2FA1D, prW},   // Lo   [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D\n\t{0x2FA1E, 0x2FA1F, prW},   // Cn     [2] <reserved-2FA1E>..<reserved-2FA1F>\n\t{0x2FA20, 0x2FFFD, prW},   // Cn  [1502] <reserved-2FA20>..<reserved-2FFFD>\n\t{0x30000, 0x3134A, prW},   // Lo  [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A\n\t{0x3134B, 0x3134F, prW},   // Cn     [5] <reserved-3134B>..<reserved-3134F>\n\t{0x31350, 0x323AF, prW},   // Lo  [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF\n\t{0x323B0, 0x3FFFD, prW},   // Cn [56398] <reserved-323B0>..<reserved-3FFFD>\n\t{0xE0001, 0xE0001, prN},   // Cf         LANGUAGE TAG\n\t{0xE0020, 0xE007F, prN},   // Cf    [96] TAG SPACE..CANCEL TAG\n\t{0xE0100, 0xE01EF, prA},   // Mn   [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256\n\t{0xF0000, 0xFFFFD, prA},   // Co [65534] <private-use-F0000>..<private-use-FFFFD>\n\t{0x100000, 0x10FFFD, prA}, // Co [65534] <private-use-100000>..<private-use-10FFFD>\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/emojipresentation.go",
    "content": "// Code generated via go generate from gen_properties.go. DO NOT EDIT.\n\npackage uniseg\n\n// emojiPresentation are taken from\n//\n// and\n// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt\n// (\"Extended_Pictographic\" only)\n// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode\n// license agreement.\nvar emojiPresentation = [][3]int{\n\t{0x231A, 0x231B, prEmojiPresentation},   // E0.6   [2] (⌚..⌛)    watch..hourglass done\n\t{0x23E9, 0x23EC, prEmojiPresentation},   // E0.6   [4] (⏩..⏬)    fast-forward button..fast down button\n\t{0x23F0, 0x23F0, prEmojiPresentation},   // E0.6   [1] (⏰)       alarm clock\n\t{0x23F3, 0x23F3, prEmojiPresentation},   // E0.6   [1] (⏳)       hourglass not done\n\t{0x25FD, 0x25FE, prEmojiPresentation},   // E0.6   [2] (◽..◾)    white medium-small square..black medium-small square\n\t{0x2614, 0x2615, prEmojiPresentation},   // E0.6   [2] (☔..☕)    umbrella with rain drops..hot beverage\n\t{0x2648, 0x2653, prEmojiPresentation},   // E0.6  [12] (♈..♓)    Aries..Pisces\n\t{0x267F, 0x267F, prEmojiPresentation},   // E0.6   [1] (♿)       wheelchair symbol\n\t{0x2693, 0x2693, prEmojiPresentation},   // E0.6   [1] (⚓)       anchor\n\t{0x26A1, 0x26A1, prEmojiPresentation},   // E0.6   [1] (⚡)       high voltage\n\t{0x26AA, 0x26AB, prEmojiPresentation},   // E0.6   [2] (⚪..⚫)    white circle..black circle\n\t{0x26BD, 0x26BE, prEmojiPresentation},   // E0.6   [2] (⚽..⚾)    soccer ball..baseball\n\t{0x26C4, 0x26C5, prEmojiPresentation},   // E0.6   [2] (⛄..⛅)    snowman without snow..sun behind cloud\n\t{0x26CE, 0x26CE, prEmojiPresentation},   // E0.6   [1] (⛎)       Ophiuchus\n\t{0x26D4, 0x26D4, prEmojiPresentation},   // E0.6   [1] (⛔)       no entry\n\t{0x26EA, 0x26EA, prEmojiPresentation},   // E0.6   [1] (⛪)       church\n\t{0x26F2, 0x26F3, prEmojiPresentation},   // E0.6   [2] (⛲..⛳)    fountain..flag in hole\n\t{0x26F5, 0x26F5, prEmojiPresentation},   // E0.6   [1] (⛵)       sailboat\n\t{0x26FA, 0x26FA, prEmojiPresentation},   // E0.6   [1] (⛺)       tent\n\t{0x26FD, 0x26FD, prEmojiPresentation},   // E0.6   [1] (⛽)       fuel pump\n\t{0x2705, 0x2705, prEmojiPresentation},   // E0.6   [1] (✅)       check mark button\n\t{0x270A, 0x270B, prEmojiPresentation},   // E0.6   [2] (✊..✋)    raised fist..raised hand\n\t{0x2728, 0x2728, prEmojiPresentation},   // E0.6   [1] (✨)       sparkles\n\t{0x274C, 0x274C, prEmojiPresentation},   // E0.6   [1] (❌)       cross mark\n\t{0x274E, 0x274E, prEmojiPresentation},   // E0.6   [1] (❎)       cross mark button\n\t{0x2753, 0x2755, prEmojiPresentation},   // E0.6   [3] (❓..❕)    red question mark..white exclamation mark\n\t{0x2757, 0x2757, prEmojiPresentation},   // E0.6   [1] (❗)       red exclamation mark\n\t{0x2795, 0x2797, prEmojiPresentation},   // E0.6   [3] (➕..➗)    plus..divide\n\t{0x27B0, 0x27B0, prEmojiPresentation},   // E0.6   [1] (➰)       curly loop\n\t{0x27BF, 0x27BF, prEmojiPresentation},   // E1.0   [1] (➿)       double curly loop\n\t{0x2B1B, 0x2B1C, prEmojiPresentation},   // E0.6   [2] (⬛..⬜)    black large square..white large square\n\t{0x2B50, 0x2B50, prEmojiPresentation},   // E0.6   [1] (⭐)       star\n\t{0x2B55, 0x2B55, prEmojiPresentation},   // E0.6   [1] (⭕)       hollow red circle\n\t{0x1F004, 0x1F004, prEmojiPresentation}, // E0.6   [1] (🀄)       mahjong red dragon\n\t{0x1F0CF, 0x1F0CF, prEmojiPresentation}, // E0.6   [1] (🃏)       joker\n\t{0x1F18E, 0x1F18E, prEmojiPresentation}, // E0.6   [1] (🆎)       AB button (blood type)\n\t{0x1F191, 0x1F19A, prEmojiPresentation}, // E0.6  [10] (🆑..🆚)    CL button..VS button\n\t{0x1F1E6, 0x1F1FF, prEmojiPresentation}, // E0.0  [26] (🇦..🇿)    regional indicator symbol letter a..regional indicator symbol letter z\n\t{0x1F201, 0x1F201, prEmojiPresentation}, // E0.6   [1] (🈁)       Japanese “here” button\n\t{0x1F21A, 0x1F21A, prEmojiPresentation}, // E0.6   [1] (🈚)       Japanese “free of charge” button\n\t{0x1F22F, 0x1F22F, prEmojiPresentation}, // E0.6   [1] (🈯)       Japanese “reserved” button\n\t{0x1F232, 0x1F236, prEmojiPresentation}, // E0.6   [5] (🈲..🈶)    Japanese “prohibited” button..Japanese “not free of charge” button\n\t{0x1F238, 0x1F23A, prEmojiPresentation}, // E0.6   [3] (🈸..🈺)    Japanese “application” button..Japanese “open for business” button\n\t{0x1F250, 0x1F251, prEmojiPresentation}, // E0.6   [2] (🉐..🉑)    Japanese “bargain” button..Japanese “acceptable” button\n\t{0x1F300, 0x1F30C, prEmojiPresentation}, // E0.6  [13] (🌀..🌌)    cyclone..milky way\n\t{0x1F30D, 0x1F30E, prEmojiPresentation}, // E0.7   [2] (🌍..🌎)    globe showing Europe-Africa..globe showing Americas\n\t{0x1F30F, 0x1F30F, prEmojiPresentation}, // E0.6   [1] (🌏)       globe showing Asia-Australia\n\t{0x1F310, 0x1F310, prEmojiPresentation}, // E1.0   [1] (🌐)       globe with meridians\n\t{0x1F311, 0x1F311, prEmojiPresentation}, // E0.6   [1] (🌑)       new moon\n\t{0x1F312, 0x1F312, prEmojiPresentation}, // E1.0   [1] (🌒)       waxing crescent moon\n\t{0x1F313, 0x1F315, prEmojiPresentation}, // E0.6   [3] (🌓..🌕)    first quarter moon..full moon\n\t{0x1F316, 0x1F318, prEmojiPresentation}, // E1.0   [3] (🌖..🌘)    waning gibbous moon..waning crescent moon\n\t{0x1F319, 0x1F319, prEmojiPresentation}, // E0.6   [1] (🌙)       crescent moon\n\t{0x1F31A, 0x1F31A, prEmojiPresentation}, // E1.0   [1] (🌚)       new moon face\n\t{0x1F31B, 0x1F31B, prEmojiPresentation}, // E0.6   [1] (🌛)       first quarter moon face\n\t{0x1F31C, 0x1F31C, prEmojiPresentation}, // E0.7   [1] (🌜)       last quarter moon face\n\t{0x1F31D, 0x1F31E, prEmojiPresentation}, // E1.0   [2] (🌝..🌞)    full moon face..sun with face\n\t{0x1F31F, 0x1F320, prEmojiPresentation}, // E0.6   [2] (🌟..🌠)    glowing star..shooting star\n\t{0x1F32D, 0x1F32F, prEmojiPresentation}, // E1.0   [3] (🌭..🌯)    hot dog..burrito\n\t{0x1F330, 0x1F331, prEmojiPresentation}, // E0.6   [2] (🌰..🌱)    chestnut..seedling\n\t{0x1F332, 0x1F333, prEmojiPresentation}, // E1.0   [2] (🌲..🌳)    evergreen tree..deciduous tree\n\t{0x1F334, 0x1F335, prEmojiPresentation}, // E0.6   [2] (🌴..🌵)    palm tree..cactus\n\t{0x1F337, 0x1F34A, prEmojiPresentation}, // E0.6  [20] (🌷..🍊)    tulip..tangerine\n\t{0x1F34B, 0x1F34B, prEmojiPresentation}, // E1.0   [1] (🍋)       lemon\n\t{0x1F34C, 0x1F34F, prEmojiPresentation}, // E0.6   [4] (🍌..🍏)    banana..green apple\n\t{0x1F350, 0x1F350, prEmojiPresentation}, // E1.0   [1] (🍐)       pear\n\t{0x1F351, 0x1F37B, prEmojiPresentation}, // E0.6  [43] (🍑..🍻)    peach..clinking beer mugs\n\t{0x1F37C, 0x1F37C, prEmojiPresentation}, // E1.0   [1] (🍼)       baby bottle\n\t{0x1F37E, 0x1F37F, prEmojiPresentation}, // E1.0   [2] (🍾..🍿)    bottle with popping cork..popcorn\n\t{0x1F380, 0x1F393, prEmojiPresentation}, // E0.6  [20] (🎀..🎓)    ribbon..graduation cap\n\t{0x1F3A0, 0x1F3C4, prEmojiPresentation}, // E0.6  [37] (🎠..🏄)    carousel horse..person surfing\n\t{0x1F3C5, 0x1F3C5, prEmojiPresentation}, // E1.0   [1] (🏅)       sports medal\n\t{0x1F3C6, 0x1F3C6, prEmojiPresentation}, // E0.6   [1] (🏆)       trophy\n\t{0x1F3C7, 0x1F3C7, prEmojiPresentation}, // E1.0   [1] (🏇)       horse racing\n\t{0x1F3C8, 0x1F3C8, prEmojiPresentation}, // E0.6   [1] (🏈)       american football\n\t{0x1F3C9, 0x1F3C9, prEmojiPresentation}, // E1.0   [1] (🏉)       rugby football\n\t{0x1F3CA, 0x1F3CA, prEmojiPresentation}, // E0.6   [1] (🏊)       person swimming\n\t{0x1F3CF, 0x1F3D3, prEmojiPresentation}, // E1.0   [5] (🏏..🏓)    cricket game..ping pong\n\t{0x1F3E0, 0x1F3E3, prEmojiPresentation}, // E0.6   [4] (🏠..🏣)    house..Japanese post office\n\t{0x1F3E4, 0x1F3E4, prEmojiPresentation}, // E1.0   [1] (🏤)       post office\n\t{0x1F3E5, 0x1F3F0, prEmojiPresentation}, // E0.6  [12] (🏥..🏰)    hospital..castle\n\t{0x1F3F4, 0x1F3F4, prEmojiPresentation}, // E1.0   [1] (🏴)       black flag\n\t{0x1F3F8, 0x1F407, prEmojiPresentation}, // E1.0  [16] (🏸..🐇)    badminton..rabbit\n\t{0x1F408, 0x1F408, prEmojiPresentation}, // E0.7   [1] (🐈)       cat\n\t{0x1F409, 0x1F40B, prEmojiPresentation}, // E1.0   [3] (🐉..🐋)    dragon..whale\n\t{0x1F40C, 0x1F40E, prEmojiPresentation}, // E0.6   [3] (🐌..🐎)    snail..horse\n\t{0x1F40F, 0x1F410, prEmojiPresentation}, // E1.0   [2] (🐏..🐐)    ram..goat\n\t{0x1F411, 0x1F412, prEmojiPresentation}, // E0.6   [2] (🐑..🐒)    ewe..monkey\n\t{0x1F413, 0x1F413, prEmojiPresentation}, // E1.0   [1] (🐓)       rooster\n\t{0x1F414, 0x1F414, prEmojiPresentation}, // E0.6   [1] (🐔)       chicken\n\t{0x1F415, 0x1F415, prEmojiPresentation}, // E0.7   [1] (🐕)       dog\n\t{0x1F416, 0x1F416, prEmojiPresentation}, // E1.0   [1] (🐖)       pig\n\t{0x1F417, 0x1F429, prEmojiPresentation}, // E0.6  [19] (🐗..🐩)    boar..poodle\n\t{0x1F42A, 0x1F42A, prEmojiPresentation}, // E1.0   [1] (🐪)       camel\n\t{0x1F42B, 0x1F43E, prEmojiPresentation}, // E0.6  [20] (🐫..🐾)    two-hump camel..paw prints\n\t{0x1F440, 0x1F440, prEmojiPresentation}, // E0.6   [1] (👀)       eyes\n\t{0x1F442, 0x1F464, prEmojiPresentation}, // E0.6  [35] (👂..👤)    ear..bust in silhouette\n\t{0x1F465, 0x1F465, prEmojiPresentation}, // E1.0   [1] (👥)       busts in silhouette\n\t{0x1F466, 0x1F46B, prEmojiPresentation}, // E0.6   [6] (👦..👫)    boy..woman and man holding hands\n\t{0x1F46C, 0x1F46D, prEmojiPresentation}, // E1.0   [2] (👬..👭)    men holding hands..women holding hands\n\t{0x1F46E, 0x1F4AC, prEmojiPresentation}, // E0.6  [63] (👮..💬)    police officer..speech balloon\n\t{0x1F4AD, 0x1F4AD, prEmojiPresentation}, // E1.0   [1] (💭)       thought balloon\n\t{0x1F4AE, 0x1F4B5, prEmojiPresentation}, // E0.6   [8] (💮..💵)    white flower..dollar banknote\n\t{0x1F4B6, 0x1F4B7, prEmojiPresentation}, // E1.0   [2] (💶..💷)    euro banknote..pound banknote\n\t{0x1F4B8, 0x1F4EB, prEmojiPresentation}, // E0.6  [52] (💸..📫)    money with wings..closed mailbox with raised flag\n\t{0x1F4EC, 0x1F4ED, prEmojiPresentation}, // E0.7   [2] (📬..📭)    open mailbox with raised flag..open mailbox with lowered flag\n\t{0x1F4EE, 0x1F4EE, prEmojiPresentation}, // E0.6   [1] (📮)       postbox\n\t{0x1F4EF, 0x1F4EF, prEmojiPresentation}, // E1.0   [1] (📯)       postal horn\n\t{0x1F4F0, 0x1F4F4, prEmojiPresentation}, // E0.6   [5] (📰..📴)    newspaper..mobile phone off\n\t{0x1F4F5, 0x1F4F5, prEmojiPresentation}, // E1.0   [1] (📵)       no mobile phones\n\t{0x1F4F6, 0x1F4F7, prEmojiPresentation}, // E0.6   [2] (📶..📷)    antenna bars..camera\n\t{0x1F4F8, 0x1F4F8, prEmojiPresentation}, // E1.0   [1] (📸)       camera with flash\n\t{0x1F4F9, 0x1F4FC, prEmojiPresentation}, // E0.6   [4] (📹..📼)    video camera..videocassette\n\t{0x1F4FF, 0x1F502, prEmojiPresentation}, // E1.0   [4] (📿..🔂)    prayer beads..repeat single button\n\t{0x1F503, 0x1F503, prEmojiPresentation}, // E0.6   [1] (🔃)       clockwise vertical arrows\n\t{0x1F504, 0x1F507, prEmojiPresentation}, // E1.0   [4] (🔄..🔇)    counterclockwise arrows button..muted speaker\n\t{0x1F508, 0x1F508, prEmojiPresentation}, // E0.7   [1] (🔈)       speaker low volume\n\t{0x1F509, 0x1F509, prEmojiPresentation}, // E1.0   [1] (🔉)       speaker medium volume\n\t{0x1F50A, 0x1F514, prEmojiPresentation}, // E0.6  [11] (🔊..🔔)    speaker high volume..bell\n\t{0x1F515, 0x1F515, prEmojiPresentation}, // E1.0   [1] (🔕)       bell with slash\n\t{0x1F516, 0x1F52B, prEmojiPresentation}, // E0.6  [22] (🔖..🔫)    bookmark..water pistol\n\t{0x1F52C, 0x1F52D, prEmojiPresentation}, // E1.0   [2] (🔬..🔭)    microscope..telescope\n\t{0x1F52E, 0x1F53D, prEmojiPresentation}, // E0.6  [16] (🔮..🔽)    crystal ball..downwards button\n\t{0x1F54B, 0x1F54E, prEmojiPresentation}, // E1.0   [4] (🕋..🕎)    kaaba..menorah\n\t{0x1F550, 0x1F55B, prEmojiPresentation}, // E0.6  [12] (🕐..🕛)    one o’clock..twelve o’clock\n\t{0x1F55C, 0x1F567, prEmojiPresentation}, // E0.7  [12] (🕜..🕧)    one-thirty..twelve-thirty\n\t{0x1F57A, 0x1F57A, prEmojiPresentation}, // E3.0   [1] (🕺)       man dancing\n\t{0x1F595, 0x1F596, prEmojiPresentation}, // E1.0   [2] (🖕..🖖)    middle finger..vulcan salute\n\t{0x1F5A4, 0x1F5A4, prEmojiPresentation}, // E3.0   [1] (🖤)       black heart\n\t{0x1F5FB, 0x1F5FF, prEmojiPresentation}, // E0.6   [5] (🗻..🗿)    mount fuji..moai\n\t{0x1F600, 0x1F600, prEmojiPresentation}, // E1.0   [1] (😀)       grinning face\n\t{0x1F601, 0x1F606, prEmojiPresentation}, // E0.6   [6] (😁..😆)    beaming face with smiling eyes..grinning squinting face\n\t{0x1F607, 0x1F608, prEmojiPresentation}, // E1.0   [2] (😇..😈)    smiling face with halo..smiling face with horns\n\t{0x1F609, 0x1F60D, prEmojiPresentation}, // E0.6   [5] (😉..😍)    winking face..smiling face with heart-eyes\n\t{0x1F60E, 0x1F60E, prEmojiPresentation}, // E1.0   [1] (😎)       smiling face with sunglasses\n\t{0x1F60F, 0x1F60F, prEmojiPresentation}, // E0.6   [1] (😏)       smirking face\n\t{0x1F610, 0x1F610, prEmojiPresentation}, // E0.7   [1] (😐)       neutral face\n\t{0x1F611, 0x1F611, prEmojiPresentation}, // E1.0   [1] (😑)       expressionless face\n\t{0x1F612, 0x1F614, prEmojiPresentation}, // E0.6   [3] (😒..😔)    unamused face..pensive face\n\t{0x1F615, 0x1F615, prEmojiPresentation}, // E1.0   [1] (😕)       confused face\n\t{0x1F616, 0x1F616, prEmojiPresentation}, // E0.6   [1] (😖)       confounded face\n\t{0x1F617, 0x1F617, prEmojiPresentation}, // E1.0   [1] (😗)       kissing face\n\t{0x1F618, 0x1F618, prEmojiPresentation}, // E0.6   [1] (😘)       face blowing a kiss\n\t{0x1F619, 0x1F619, prEmojiPresentation}, // E1.0   [1] (😙)       kissing face with smiling eyes\n\t{0x1F61A, 0x1F61A, prEmojiPresentation}, // E0.6   [1] (😚)       kissing face with closed eyes\n\t{0x1F61B, 0x1F61B, prEmojiPresentation}, // E1.0   [1] (😛)       face with tongue\n\t{0x1F61C, 0x1F61E, prEmojiPresentation}, // E0.6   [3] (😜..😞)    winking face with tongue..disappointed face\n\t{0x1F61F, 0x1F61F, prEmojiPresentation}, // E1.0   [1] (😟)       worried face\n\t{0x1F620, 0x1F625, prEmojiPresentation}, // E0.6   [6] (😠..😥)    angry face..sad but relieved face\n\t{0x1F626, 0x1F627, prEmojiPresentation}, // E1.0   [2] (😦..😧)    frowning face with open mouth..anguished face\n\t{0x1F628, 0x1F62B, prEmojiPresentation}, // E0.6   [4] (😨..😫)    fearful face..tired face\n\t{0x1F62C, 0x1F62C, prEmojiPresentation}, // E1.0   [1] (😬)       grimacing face\n\t{0x1F62D, 0x1F62D, prEmojiPresentation}, // E0.6   [1] (😭)       loudly crying face\n\t{0x1F62E, 0x1F62F, prEmojiPresentation}, // E1.0   [2] (😮..😯)    face with open mouth..hushed face\n\t{0x1F630, 0x1F633, prEmojiPresentation}, // E0.6   [4] (😰..😳)    anxious face with sweat..flushed face\n\t{0x1F634, 0x1F634, prEmojiPresentation}, // E1.0   [1] (😴)       sleeping face\n\t{0x1F635, 0x1F635, prEmojiPresentation}, // E0.6   [1] (😵)       face with crossed-out eyes\n\t{0x1F636, 0x1F636, prEmojiPresentation}, // E1.0   [1] (😶)       face without mouth\n\t{0x1F637, 0x1F640, prEmojiPresentation}, // E0.6  [10] (😷..🙀)    face with medical mask..weary cat\n\t{0x1F641, 0x1F644, prEmojiPresentation}, // E1.0   [4] (🙁..🙄)    slightly frowning face..face with rolling eyes\n\t{0x1F645, 0x1F64F, prEmojiPresentation}, // E0.6  [11] (🙅..🙏)    person gesturing NO..folded hands\n\t{0x1F680, 0x1F680, prEmojiPresentation}, // E0.6   [1] (🚀)       rocket\n\t{0x1F681, 0x1F682, prEmojiPresentation}, // E1.0   [2] (🚁..🚂)    helicopter..locomotive\n\t{0x1F683, 0x1F685, prEmojiPresentation}, // E0.6   [3] (🚃..🚅)    railway car..bullet train\n\t{0x1F686, 0x1F686, prEmojiPresentation}, // E1.0   [1] (🚆)       train\n\t{0x1F687, 0x1F687, prEmojiPresentation}, // E0.6   [1] (🚇)       metro\n\t{0x1F688, 0x1F688, prEmojiPresentation}, // E1.0   [1] (🚈)       light rail\n\t{0x1F689, 0x1F689, prEmojiPresentation}, // E0.6   [1] (🚉)       station\n\t{0x1F68A, 0x1F68B, prEmojiPresentation}, // E1.0   [2] (🚊..🚋)    tram..tram car\n\t{0x1F68C, 0x1F68C, prEmojiPresentation}, // E0.6   [1] (🚌)       bus\n\t{0x1F68D, 0x1F68D, prEmojiPresentation}, // E0.7   [1] (🚍)       oncoming bus\n\t{0x1F68E, 0x1F68E, prEmojiPresentation}, // E1.0   [1] (🚎)       trolleybus\n\t{0x1F68F, 0x1F68F, prEmojiPresentation}, // E0.6   [1] (🚏)       bus stop\n\t{0x1F690, 0x1F690, prEmojiPresentation}, // E1.0   [1] (🚐)       minibus\n\t{0x1F691, 0x1F693, prEmojiPresentation}, // E0.6   [3] (🚑..🚓)    ambulance..police car\n\t{0x1F694, 0x1F694, prEmojiPresentation}, // E0.7   [1] (🚔)       oncoming police car\n\t{0x1F695, 0x1F695, prEmojiPresentation}, // E0.6   [1] (🚕)       taxi\n\t{0x1F696, 0x1F696, prEmojiPresentation}, // E1.0   [1] (🚖)       oncoming taxi\n\t{0x1F697, 0x1F697, prEmojiPresentation}, // E0.6   [1] (🚗)       automobile\n\t{0x1F698, 0x1F698, prEmojiPresentation}, // E0.7   [1] (🚘)       oncoming automobile\n\t{0x1F699, 0x1F69A, prEmojiPresentation}, // E0.6   [2] (🚙..🚚)    sport utility vehicle..delivery truck\n\t{0x1F69B, 0x1F6A1, prEmojiPresentation}, // E1.0   [7] (🚛..🚡)    articulated lorry..aerial tramway\n\t{0x1F6A2, 0x1F6A2, prEmojiPresentation}, // E0.6   [1] (🚢)       ship\n\t{0x1F6A3, 0x1F6A3, prEmojiPresentation}, // E1.0   [1] (🚣)       person rowing boat\n\t{0x1F6A4, 0x1F6A5, prEmojiPresentation}, // E0.6   [2] (🚤..🚥)    speedboat..horizontal traffic light\n\t{0x1F6A6, 0x1F6A6, prEmojiPresentation}, // E1.0   [1] (🚦)       vertical traffic light\n\t{0x1F6A7, 0x1F6AD, prEmojiPresentation}, // E0.6   [7] (🚧..🚭)    construction..no smoking\n\t{0x1F6AE, 0x1F6B1, prEmojiPresentation}, // E1.0   [4] (🚮..🚱)    litter in bin sign..non-potable water\n\t{0x1F6B2, 0x1F6B2, prEmojiPresentation}, // E0.6   [1] (🚲)       bicycle\n\t{0x1F6B3, 0x1F6B5, prEmojiPresentation}, // E1.0   [3] (🚳..🚵)    no bicycles..person mountain biking\n\t{0x1F6B6, 0x1F6B6, prEmojiPresentation}, // E0.6   [1] (🚶)       person walking\n\t{0x1F6B7, 0x1F6B8, prEmojiPresentation}, // E1.0   [2] (🚷..🚸)    no pedestrians..children crossing\n\t{0x1F6B9, 0x1F6BE, prEmojiPresentation}, // E0.6   [6] (🚹..🚾)    men’s room..water closet\n\t{0x1F6BF, 0x1F6BF, prEmojiPresentation}, // E1.0   [1] (🚿)       shower\n\t{0x1F6C0, 0x1F6C0, prEmojiPresentation}, // E0.6   [1] (🛀)       person taking bath\n\t{0x1F6C1, 0x1F6C5, prEmojiPresentation}, // E1.0   [5] (🛁..🛅)    bathtub..left luggage\n\t{0x1F6CC, 0x1F6CC, prEmojiPresentation}, // E1.0   [1] (🛌)       person in bed\n\t{0x1F6D0, 0x1F6D0, prEmojiPresentation}, // E1.0   [1] (🛐)       place of worship\n\t{0x1F6D1, 0x1F6D2, prEmojiPresentation}, // E3.0   [2] (🛑..🛒)    stop sign..shopping cart\n\t{0x1F6D5, 0x1F6D5, prEmojiPresentation}, // E12.0  [1] (🛕)       hindu temple\n\t{0x1F6D6, 0x1F6D7, prEmojiPresentation}, // E13.0  [2] (🛖..🛗)    hut..elevator\n\t{0x1F6DC, 0x1F6DC, prEmojiPresentation}, // E15.0  [1] (🛜)       wireless\n\t{0x1F6DD, 0x1F6DF, prEmojiPresentation}, // E14.0  [3] (🛝..🛟)    playground slide..ring buoy\n\t{0x1F6EB, 0x1F6EC, prEmojiPresentation}, // E1.0   [2] (🛫..🛬)    airplane departure..airplane arrival\n\t{0x1F6F4, 0x1F6F6, prEmojiPresentation}, // E3.0   [3] (🛴..🛶)    kick scooter..canoe\n\t{0x1F6F7, 0x1F6F8, prEmojiPresentation}, // E5.0   [2] (🛷..🛸)    sled..flying saucer\n\t{0x1F6F9, 0x1F6F9, prEmojiPresentation}, // E11.0  [1] (🛹)       skateboard\n\t{0x1F6FA, 0x1F6FA, prEmojiPresentation}, // E12.0  [1] (🛺)       auto rickshaw\n\t{0x1F6FB, 0x1F6FC, prEmojiPresentation}, // E13.0  [2] (🛻..🛼)    pickup truck..roller skate\n\t{0x1F7E0, 0x1F7EB, prEmojiPresentation}, // E12.0 [12] (🟠..🟫)    orange circle..brown square\n\t{0x1F7F0, 0x1F7F0, prEmojiPresentation}, // E14.0  [1] (🟰)       heavy equals sign\n\t{0x1F90C, 0x1F90C, prEmojiPresentation}, // E13.0  [1] (🤌)       pinched fingers\n\t{0x1F90D, 0x1F90F, prEmojiPresentation}, // E12.0  [3] (🤍..🤏)    white heart..pinching hand\n\t{0x1F910, 0x1F918, prEmojiPresentation}, // E1.0   [9] (🤐..🤘)    zipper-mouth face..sign of the horns\n\t{0x1F919, 0x1F91E, prEmojiPresentation}, // E3.0   [6] (🤙..🤞)    call me hand..crossed fingers\n\t{0x1F91F, 0x1F91F, prEmojiPresentation}, // E5.0   [1] (🤟)       love-you gesture\n\t{0x1F920, 0x1F927, prEmojiPresentation}, // E3.0   [8] (🤠..🤧)    cowboy hat face..sneezing face\n\t{0x1F928, 0x1F92F, prEmojiPresentation}, // E5.0   [8] (🤨..🤯)    face with raised eyebrow..exploding head\n\t{0x1F930, 0x1F930, prEmojiPresentation}, // E3.0   [1] (🤰)       pregnant woman\n\t{0x1F931, 0x1F932, prEmojiPresentation}, // E5.0   [2] (🤱..🤲)    breast-feeding..palms up together\n\t{0x1F933, 0x1F93A, prEmojiPresentation}, // E3.0   [8] (🤳..🤺)    selfie..person fencing\n\t{0x1F93C, 0x1F93E, prEmojiPresentation}, // E3.0   [3] (🤼..🤾)    people wrestling..person playing handball\n\t{0x1F93F, 0x1F93F, prEmojiPresentation}, // E12.0  [1] (🤿)       diving mask\n\t{0x1F940, 0x1F945, prEmojiPresentation}, // E3.0   [6] (🥀..🥅)    wilted flower..goal net\n\t{0x1F947, 0x1F94B, prEmojiPresentation}, // E3.0   [5] (🥇..🥋)    1st place medal..martial arts uniform\n\t{0x1F94C, 0x1F94C, prEmojiPresentation}, // E5.0   [1] (🥌)       curling stone\n\t{0x1F94D, 0x1F94F, prEmojiPresentation}, // E11.0  [3] (🥍..🥏)    lacrosse..flying disc\n\t{0x1F950, 0x1F95E, prEmojiPresentation}, // E3.0  [15] (🥐..🥞)    croissant..pancakes\n\t{0x1F95F, 0x1F96B, prEmojiPresentation}, // E5.0  [13] (🥟..🥫)    dumpling..canned food\n\t{0x1F96C, 0x1F970, prEmojiPresentation}, // E11.0  [5] (🥬..🥰)    leafy green..smiling face with hearts\n\t{0x1F971, 0x1F971, prEmojiPresentation}, // E12.0  [1] (🥱)       yawning face\n\t{0x1F972, 0x1F972, prEmojiPresentation}, // E13.0  [1] (🥲)       smiling face with tear\n\t{0x1F973, 0x1F976, prEmojiPresentation}, // E11.0  [4] (🥳..🥶)    partying face..cold face\n\t{0x1F977, 0x1F978, prEmojiPresentation}, // E13.0  [2] (🥷..🥸)    ninja..disguised face\n\t{0x1F979, 0x1F979, prEmojiPresentation}, // E14.0  [1] (🥹)       face holding back tears\n\t{0x1F97A, 0x1F97A, prEmojiPresentation}, // E11.0  [1] (🥺)       pleading face\n\t{0x1F97B, 0x1F97B, prEmojiPresentation}, // E12.0  [1] (🥻)       sari\n\t{0x1F97C, 0x1F97F, prEmojiPresentation}, // E11.0  [4] (🥼..🥿)    lab coat..flat shoe\n\t{0x1F980, 0x1F984, prEmojiPresentation}, // E1.0   [5] (🦀..🦄)    crab..unicorn\n\t{0x1F985, 0x1F991, prEmojiPresentation}, // E3.0  [13] (🦅..🦑)    eagle..squid\n\t{0x1F992, 0x1F997, prEmojiPresentation}, // E5.0   [6] (🦒..🦗)    giraffe..cricket\n\t{0x1F998, 0x1F9A2, prEmojiPresentation}, // E11.0 [11] (🦘..🦢)    kangaroo..swan\n\t{0x1F9A3, 0x1F9A4, prEmojiPresentation}, // E13.0  [2] (🦣..🦤)    mammoth..dodo\n\t{0x1F9A5, 0x1F9AA, prEmojiPresentation}, // E12.0  [6] (🦥..🦪)    sloth..oyster\n\t{0x1F9AB, 0x1F9AD, prEmojiPresentation}, // E13.0  [3] (🦫..🦭)    beaver..seal\n\t{0x1F9AE, 0x1F9AF, prEmojiPresentation}, // E12.0  [2] (🦮..🦯)    guide dog..white cane\n\t{0x1F9B0, 0x1F9B9, prEmojiPresentation}, // E11.0 [10] (🦰..🦹)    red hair..supervillain\n\t{0x1F9BA, 0x1F9BF, prEmojiPresentation}, // E12.0  [6] (🦺..🦿)    safety vest..mechanical leg\n\t{0x1F9C0, 0x1F9C0, prEmojiPresentation}, // E1.0   [1] (🧀)       cheese wedge\n\t{0x1F9C1, 0x1F9C2, prEmojiPresentation}, // E11.0  [2] (🧁..🧂)    cupcake..salt\n\t{0x1F9C3, 0x1F9CA, prEmojiPresentation}, // E12.0  [8] (🧃..🧊)    beverage box..ice\n\t{0x1F9CB, 0x1F9CB, prEmojiPresentation}, // E13.0  [1] (🧋)       bubble tea\n\t{0x1F9CC, 0x1F9CC, prEmojiPresentation}, // E14.0  [1] (🧌)       troll\n\t{0x1F9CD, 0x1F9CF, prEmojiPresentation}, // E12.0  [3] (🧍..🧏)    person standing..deaf person\n\t{0x1F9D0, 0x1F9E6, prEmojiPresentation}, // E5.0  [23] (🧐..🧦)    face with monocle..socks\n\t{0x1F9E7, 0x1F9FF, prEmojiPresentation}, // E11.0 [25] (🧧..🧿)    red envelope..nazar amulet\n\t{0x1FA70, 0x1FA73, prEmojiPresentation}, // E12.0  [4] (🩰..🩳)    ballet shoes..shorts\n\t{0x1FA74, 0x1FA74, prEmojiPresentation}, // E13.0  [1] (🩴)       thong sandal\n\t{0x1FA75, 0x1FA77, prEmojiPresentation}, // E15.0  [3] (🩵..🩷)    light blue heart..pink heart\n\t{0x1FA78, 0x1FA7A, prEmojiPresentation}, // E12.0  [3] (🩸..🩺)    drop of blood..stethoscope\n\t{0x1FA7B, 0x1FA7C, prEmojiPresentation}, // E14.0  [2] (🩻..🩼)    x-ray..crutch\n\t{0x1FA80, 0x1FA82, prEmojiPresentation}, // E12.0  [3] (🪀..🪂)    yo-yo..parachute\n\t{0x1FA83, 0x1FA86, prEmojiPresentation}, // E13.0  [4] (🪃..🪆)    boomerang..nesting dolls\n\t{0x1FA87, 0x1FA88, prEmojiPresentation}, // E15.0  [2] (🪇..🪈)    maracas..flute\n\t{0x1FA90, 0x1FA95, prEmojiPresentation}, // E12.0  [6] (🪐..🪕)    ringed planet..banjo\n\t{0x1FA96, 0x1FAA8, prEmojiPresentation}, // E13.0 [19] (🪖..🪨)    military helmet..rock\n\t{0x1FAA9, 0x1FAAC, prEmojiPresentation}, // E14.0  [4] (🪩..🪬)    mirror ball..hamsa\n\t{0x1FAAD, 0x1FAAF, prEmojiPresentation}, // E15.0  [3] (🪭..🪯)    folding hand fan..khanda\n\t{0x1FAB0, 0x1FAB6, prEmojiPresentation}, // E13.0  [7] (🪰..🪶)    fly..feather\n\t{0x1FAB7, 0x1FABA, prEmojiPresentation}, // E14.0  [4] (🪷..🪺)    lotus..nest with eggs\n\t{0x1FABB, 0x1FABD, prEmojiPresentation}, // E15.0  [3] (🪻..🪽)    hyacinth..wing\n\t{0x1FABF, 0x1FABF, prEmojiPresentation}, // E15.0  [1] (🪿)       goose\n\t{0x1FAC0, 0x1FAC2, prEmojiPresentation}, // E13.0  [3] (🫀..🫂)    anatomical heart..people hugging\n\t{0x1FAC3, 0x1FAC5, prEmojiPresentation}, // E14.0  [3] (🫃..🫅)    pregnant man..person with crown\n\t{0x1FACE, 0x1FACF, prEmojiPresentation}, // E15.0  [2] (🫎..🫏)    moose..donkey\n\t{0x1FAD0, 0x1FAD6, prEmojiPresentation}, // E13.0  [7] (🫐..🫖)    blueberries..teapot\n\t{0x1FAD7, 0x1FAD9, prEmojiPresentation}, // E14.0  [3] (🫗..🫙)    pouring liquid..jar\n\t{0x1FADA, 0x1FADB, prEmojiPresentation}, // E15.0  [2] (🫚..🫛)    ginger root..pea pod\n\t{0x1FAE0, 0x1FAE7, prEmojiPresentation}, // E14.0  [8] (🫠..🫧)    melting face..bubbles\n\t{0x1FAE8, 0x1FAE8, prEmojiPresentation}, // E15.0  [1] (🫨)       shaking face\n\t{0x1FAF0, 0x1FAF6, prEmojiPresentation}, // E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands\n\t{0x1FAF7, 0x1FAF8, prEmojiPresentation}, // E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/gen_breaktest.go",
    "content": "//go:build generate\n\n// This program generates a Go containing a slice of test cases based on the\n// Unicode Character Database auxiliary data files. The command line arguments\n// are as follows:\n//\n//   1. The name of the Unicode data file (just the filename, without extension).\n//   2. The name of the locally generated Go file.\n//   3. The name of the slice containing the test cases.\n//   4. The name of the generator, for logging purposes.\n//\n//go:generate go run gen_breaktest.go GraphemeBreakTest graphemebreak_test.go graphemeBreakTestCases graphemes\n//go:generate go run gen_breaktest.go WordBreakTest wordbreak_test.go wordBreakTestCases words\n//go:generate go run gen_breaktest.go SentenceBreakTest sentencebreak_test.go sentenceBreakTestCases sentences\n//go:generate go run gen_breaktest.go LineBreakTest linebreak_test.go lineBreakTestCases lines\n\npackage main\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"go/format\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\t\"time\"\n)\n\n// We want to test against a specific version rather than the latest. When the\n// package is upgraded to a new version, change these to generate new tests.\nconst (\n\ttestCaseURL = `https://www.unicode.org/Public/15.0.0/ucd/auxiliary/%s.txt`\n)\n\nfunc main() {\n\tif len(os.Args) < 5 {\n\t\tfmt.Println(\"Not enough arguments, see code for details\")\n\t\tos.Exit(1)\n\t}\n\n\tlog.SetPrefix(\"gen_breaktest (\" + os.Args[4] + \"): \")\n\tlog.SetFlags(0)\n\n\t// Read text of testcases and parse into Go source code.\n\tsrc, err := parse(fmt.Sprintf(testCaseURL, os.Args[1]))\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\t// Format the Go code.\n\tformatted, err := format.Source(src)\n\tif err != nil {\n\t\tlog.Fatalln(\"gofmt:\", err)\n\t}\n\n\t// Write it out.\n\tlog.Print(\"Writing to \", os.Args[2])\n\tif err := ioutil.WriteFile(os.Args[2], formatted, 0644); err != nil {\n\t\tlog.Fatal(err)\n\t}\n}\n\n// parse reads a break text file, either from a local file or from a URL. It\n// parses the file data into Go source code representing the test cases.\nfunc parse(url string) ([]byte, error) {\n\tlog.Printf(\"Parsing %s\", url)\n\tres, err := http.Get(url)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbody := res.Body\n\tdefer body.Close()\n\n\tbuf := new(bytes.Buffer)\n\tbuf.Grow(120 << 10)\n\tbuf.WriteString(`// Code generated via go generate from gen_breaktest.go. DO NOT EDIT.\n\npackage uniseg\n\n// ` + os.Args[3] + ` are Grapheme testcases taken from\n// ` + url + `\n// on ` + time.Now().Format(\"January 2, 2006\") + `. See\n// https://www.unicode.org/license.html for the Unicode license agreement.\nvar ` + os.Args[3] + ` = []testCase {\n`)\n\n\tsc := bufio.NewScanner(body)\n\tnum := 1\n\tvar line []byte\n\toriginal := make([]byte, 0, 64)\n\texpected := make([]byte, 0, 64)\n\tfor sc.Scan() {\n\t\tnum++\n\t\tline = sc.Bytes()\n\t\tif len(line) == 0 || line[0] == '#' {\n\t\t\tcontinue\n\t\t}\n\t\tvar comment []byte\n\t\tif i := bytes.IndexByte(line, '#'); i >= 0 {\n\t\t\tcomment = bytes.TrimSpace(line[i+1:])\n\t\t\tline = bytes.TrimSpace(line[:i])\n\t\t}\n\t\toriginal, expected, err := parseRuneSequence(line, original[:0], expected[:0])\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(`line %d: %v: %q`, num, err, line)\n\t\t}\n\t\tfmt.Fprintf(buf, \"\\t{original: \\\"%s\\\", expected: %s}, // %s\\n\", original, expected, comment)\n\t}\n\tif err := sc.Err(); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Check for final \"# EOF\", useful check if we're streaming via HTTP\n\tif !bytes.Equal(line, []byte(\"# EOF\")) {\n\t\treturn nil, fmt.Errorf(`line %d: exected \"# EOF\" as final line, got %q`, num, line)\n\t}\n\tbuf.WriteString(\"}\\n\")\n\treturn buf.Bytes(), nil\n}\n\n// Used by parseRuneSequence to match input via bytes.HasPrefix.\nvar (\n\tprefixBreak     = []byte(\"÷ \")\n\tprefixDontBreak = []byte(\"× \")\n\tbreakOk         = []byte(\"÷\")\n\tbreakNo         = []byte(\"×\")\n)\n\n// parseRuneSequence parses a rune + breaking opportunity sequence from b\n// and appends the Go code for testcase.original to orig\n// and appends the Go code for testcase.expected to exp.\n// It retuns the new orig and exp slices.\n//\n// E.g. for the input b=\"÷ 0020 × 0308 ÷ 1F1E6 ÷\"\n// it will append\n//\n//\t\"\\u0020\\u0308\\U0001F1E6\"\n//\n// and \"[][]rune{{0x0020,0x0308},{0x1F1E6},}\"\n// to orig and exp respectively.\n//\n// The formatting of exp is expected to be cleaned up by gofmt or format.Source.\n// Note we explicitly require the sequence to start with ÷ and we implicitly\n// require it to end with ÷.\nfunc parseRuneSequence(b, orig, exp []byte) ([]byte, []byte, error) {\n\t// Check for and remove first ÷ or ×.\n\tif !bytes.HasPrefix(b, prefixBreak) && !bytes.HasPrefix(b, prefixDontBreak) {\n\t\treturn nil, nil, errors.New(\"expected ÷ or × as first character\")\n\t}\n\tif bytes.HasPrefix(b, prefixBreak) {\n\t\tb = b[len(prefixBreak):]\n\t} else {\n\t\tb = b[len(prefixDontBreak):]\n\t}\n\n\tboundary := true\n\texp = append(exp, \"[][]rune{\"...)\n\tfor len(b) > 0 {\n\t\tif boundary {\n\t\t\texp = append(exp, '{')\n\t\t}\n\t\texp = append(exp, \"0x\"...)\n\t\t// Find end of hex digits.\n\t\tvar i int\n\t\tfor i = 0; i < len(b) && b[i] != ' '; i++ {\n\t\t\tif d := b[i]; ('0' <= d || d <= '9') ||\n\t\t\t\t('A' <= d || d <= 'F') ||\n\t\t\t\t('a' <= d || d <= 'f') {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn nil, nil, errors.New(\"bad hex digit\")\n\t\t}\n\t\tswitch i {\n\t\tcase 4:\n\t\t\torig = append(orig, \"\\\\u\"...)\n\t\tcase 5:\n\t\t\torig = append(orig, \"\\\\U000\"...)\n\t\tdefault:\n\t\t\treturn nil, nil, errors.New(\"unsupport code point hex length\")\n\t\t}\n\t\torig = append(orig, b[:i]...)\n\t\texp = append(exp, b[:i]...)\n\t\tb = b[i:]\n\n\t\t// Check for space between hex and ÷ or ×.\n\t\tif len(b) < 1 || b[0] != ' ' {\n\t\t\treturn nil, nil, errors.New(\"bad input\")\n\t\t}\n\t\tb = b[1:]\n\n\t\t// Check for next boundary.\n\t\tswitch {\n\t\tcase bytes.HasPrefix(b, breakOk):\n\t\t\tboundary = true\n\t\t\tb = b[len(breakOk):]\n\t\tcase bytes.HasPrefix(b, breakNo):\n\t\t\tboundary = false\n\t\t\tb = b[len(breakNo):]\n\t\tdefault:\n\t\t\treturn nil, nil, errors.New(\"missing ÷ or ×\")\n\t\t}\n\t\tif boundary {\n\t\t\texp = append(exp, '}')\n\t\t}\n\t\texp = append(exp, ',')\n\t\tif len(b) > 0 && b[0] == ' ' {\n\t\t\tb = b[1:]\n\t\t}\n\t}\n\texp = append(exp, '}')\n\treturn orig, exp, nil\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/gen_properties.go",
    "content": "//go:build generate\n\n// This program generates a property file in Go file from Unicode Character\n// Database auxiliary data files. The command line arguments are as follows:\n//\n//  1. The name of the Unicode data file (just the filename, without extension).\n//     Can be \"-\" (to skip) if the emoji flag is included.\n//  2. The name of the locally generated Go file.\n//  3. The name of the slice mapping code points to properties.\n//  4. The name of the generator, for logging purposes.\n//  5. (Optional) Flags, comma-separated. The following flags are available:\n//     - \"emojis=<property>\": include the specified emoji properties (e.g.\n//     \"Extended_Pictographic\").\n//     - \"gencat\": include general category properties.\n//\n//go:generate go run gen_properties.go auxiliary/GraphemeBreakProperty graphemeproperties.go graphemeCodePoints graphemes emojis=Extended_Pictographic\n//go:generate go run gen_properties.go auxiliary/WordBreakProperty wordproperties.go workBreakCodePoints words emojis=Extended_Pictographic\n//go:generate go run gen_properties.go auxiliary/SentenceBreakProperty sentenceproperties.go sentenceBreakCodePoints sentences\n//go:generate go run gen_properties.go LineBreak lineproperties.go lineBreakCodePoints lines gencat\n//go:generate go run gen_properties.go EastAsianWidth eastasianwidth.go eastAsianWidth eastasianwidth\n//go:generate go run gen_properties.go - emojipresentation.go emojiPresentation emojipresentation emojis=Emoji_Presentation\npackage main\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"go/format\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"net/http\"\n\t\"os\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\n// We want to test against a specific version rather than the latest. When the\n// package is upgraded to a new version, change these to generate new tests.\nconst (\n\tpropertyURL = `https://www.unicode.org/Public/15.0.0/ucd/%s.txt`\n\temojiURL    = `https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt`\n)\n\n// The regular expression for a line containing a code point range property.\nvar propertyPattern = regexp.MustCompile(`^([0-9A-F]{4,6})(\\.\\.([0-9A-F]{4,6}))?\\s*;\\s*([A-Za-z0-9_]+)\\s*#\\s(.+)$`)\n\nfunc main() {\n\tif len(os.Args) < 5 {\n\t\tfmt.Println(\"Not enough arguments, see code for details\")\n\t\tos.Exit(1)\n\t}\n\n\tlog.SetPrefix(\"gen_properties (\" + os.Args[4] + \"): \")\n\tlog.SetFlags(0)\n\n\t// Parse flags.\n\tflags := make(map[string]string)\n\tif len(os.Args) >= 6 {\n\t\tfor _, flag := range strings.Split(os.Args[5], \",\") {\n\t\t\tflagFields := strings.Split(flag, \"=\")\n\t\t\tif len(flagFields) == 1 {\n\t\t\t\tflags[flagFields[0]] = \"yes\"\n\t\t\t} else {\n\t\t\t\tflags[flagFields[0]] = flagFields[1]\n\t\t\t}\n\t\t}\n\t}\n\n\t// Parse the text file and generate Go source code from it.\n\t_, includeGeneralCategory := flags[\"gencat\"]\n\tvar mainURL string\n\tif os.Args[1] != \"-\" {\n\t\tmainURL = fmt.Sprintf(propertyURL, os.Args[1])\n\t}\n\tsrc, err := parse(mainURL, flags[\"emojis\"], includeGeneralCategory)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\t// Format the Go code.\n\tformatted, err := format.Source([]byte(src))\n\tif err != nil {\n\t\tlog.Fatal(\"gofmt:\", err)\n\t}\n\n\t// Save it to the (local) target file.\n\tlog.Print(\"Writing to \", os.Args[2])\n\tif err := ioutil.WriteFile(os.Args[2], formatted, 0644); err != nil {\n\t\tlog.Fatal(err)\n\t}\n}\n\n// parse parses the Unicode Properties text files located at the given URLs and\n// returns their equivalent Go source code to be used in the uniseg package. If\n// \"emojiProperty\" is not an empty string, emoji code points for that emoji\n// property (e.g. \"Extended_Pictographic\") will be included. In those cases, you\n// may pass an empty \"propertyURL\" to skip parsing the main properties file. If\n// \"includeGeneralCategory\" is true, the Unicode General Category property will\n// be extracted from the comments and included in the output.\nfunc parse(propertyURL, emojiProperty string, includeGeneralCategory bool) (string, error) {\n\tif propertyURL == \"\" && emojiProperty == \"\" {\n\t\treturn \"\", errors.New(\"no properties to parse\")\n\t}\n\n\t// Temporary buffer to hold properties.\n\tvar properties [][4]string\n\n\t// Open the first URL.\n\tif propertyURL != \"\" {\n\t\tlog.Printf(\"Parsing %s\", propertyURL)\n\t\tres, err := http.Get(propertyURL)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tin1 := res.Body\n\t\tdefer in1.Close()\n\n\t\t// Parse it.\n\t\tscanner := bufio.NewScanner(in1)\n\t\tnum := 0\n\t\tfor scanner.Scan() {\n\t\t\tnum++\n\t\t\tline := strings.TrimSpace(scanner.Text())\n\n\t\t\t// Skip comments and empty lines.\n\t\t\tif strings.HasPrefix(line, \"#\") || line == \"\" {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Everything else must be a code point range, a property and a comment.\n\t\t\tfrom, to, property, comment, err := parseProperty(line)\n\t\t\tif err != nil {\n\t\t\t\treturn \"\", fmt.Errorf(\"%s line %d: %v\", os.Args[4], num, err)\n\t\t\t}\n\t\t\tproperties = append(properties, [4]string{from, to, property, comment})\n\t\t}\n\t\tif err := scanner.Err(); err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n\n\t// Open the second URL.\n\tif emojiProperty != \"\" {\n\t\tlog.Printf(\"Parsing %s\", emojiURL)\n\t\tres, err := http.Get(emojiURL)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tin2 := res.Body\n\t\tdefer in2.Close()\n\n\t\t// Parse it.\n\t\tscanner := bufio.NewScanner(in2)\n\t\tnum := 0\n\t\tfor scanner.Scan() {\n\t\t\tnum++\n\t\t\tline := scanner.Text()\n\n\t\t\t// Skip comments, empty lines, and everything not containing\n\t\t\t// \"Extended_Pictographic\".\n\t\t\tif strings.HasPrefix(line, \"#\") || line == \"\" || !strings.Contains(line, emojiProperty) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Everything else must be a code point range, a property and a comment.\n\t\t\tfrom, to, property, comment, err := parseProperty(line)\n\t\t\tif err != nil {\n\t\t\t\treturn \"\", fmt.Errorf(\"emojis line %d: %v\", num, err)\n\t\t\t}\n\t\t\tproperties = append(properties, [4]string{from, to, property, comment})\n\t\t}\n\t\tif err := scanner.Err(); err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n\n\t// Avoid overflow during binary search.\n\tif len(properties) >= 1<<31 {\n\t\treturn \"\", errors.New(\"too many properties\")\n\t}\n\n\t// Sort properties.\n\tsort.Slice(properties, func(i, j int) bool {\n\t\tleft, _ := strconv.ParseUint(properties[i][0], 16, 64)\n\t\tright, _ := strconv.ParseUint(properties[j][0], 16, 64)\n\t\treturn left < right\n\t})\n\n\t// Header.\n\tvar (\n\t\tbuf          bytes.Buffer\n\t\temojiComment string\n\t)\n\tcolumns := 3\n\tif includeGeneralCategory {\n\t\tcolumns = 4\n\t}\n\tif emojiURL != \"\" {\n\t\temojiComment = `\n// and\n// ` + emojiURL + `\n// (\"Extended_Pictographic\" only)`\n\t}\n\tbuf.WriteString(`// Code generated via go generate from gen_properties.go. DO NOT EDIT.\n\npackage uniseg\n\n// ` + os.Args[3] + ` are taken from\n// ` + propertyURL + emojiComment + `\n// on ` + time.Now().Format(\"January 2, 2006\") + `. See https://www.unicode.org/license.html for the Unicode\n// license agreement.\nvar ` + os.Args[3] + ` = [][` + strconv.Itoa(columns) + `]int{\n\t`)\n\n\t// Properties.\n\tfor _, prop := range properties {\n\t\tif includeGeneralCategory {\n\t\t\tgeneralCategory := \"gc\" + prop[3][:2]\n\t\t\tif generalCategory == \"gcL&\" {\n\t\t\t\tgeneralCategory = \"gcLC\"\n\t\t\t}\n\t\t\tprop[3] = prop[3][3:]\n\t\t\tfmt.Fprintf(&buf, \"{0x%s,0x%s,%s,%s}, // %s\\n\", prop[0], prop[1], translateProperty(\"pr\", prop[2]), generalCategory, prop[3])\n\t\t} else {\n\t\t\tfmt.Fprintf(&buf, \"{0x%s,0x%s,%s}, // %s\\n\", prop[0], prop[1], translateProperty(\"pr\", prop[2]), prop[3])\n\t\t}\n\t}\n\n\t// Tail.\n\tbuf.WriteString(\"}\")\n\n\treturn buf.String(), nil\n}\n\n// parseProperty parses a line of the Unicode properties text file containing a\n// property for a code point range and returns it along with its comment.\nfunc parseProperty(line string) (from, to, property, comment string, err error) {\n\tfields := propertyPattern.FindStringSubmatch(line)\n\tif fields == nil {\n\t\terr = errors.New(\"no property found\")\n\t\treturn\n\t}\n\tfrom = fields[1]\n\tto = fields[3]\n\tif to == \"\" {\n\t\tto = from\n\t}\n\tproperty = fields[4]\n\tcomment = fields[5]\n\treturn\n}\n\n// translateProperty translates a property name as used in the Unicode data file\n// to a variable used in the Go code.\nfunc translateProperty(prefix, property string) string {\n\treturn prefix + strings.ReplaceAll(property, \"_\", \"\")\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/grapheme.go",
    "content": "package uniseg\n\nimport \"unicode/utf8\"\n\n// Graphemes implements an iterator over Unicode grapheme clusters, or\n// user-perceived characters. While iterating, it also provides information\n// about word boundaries, sentence boundaries, line breaks, and monospace\n// character widths.\n//\n// After constructing the class via [NewGraphemes] for a given string \"str\",\n// [Graphemes.Next] is called for every grapheme cluster in a loop until it\n// returns false. Inside the loop, information about the grapheme cluster as\n// well as boundary information and character width is available via the various\n// methods (see examples below).\n//\n// This class basically wraps the [StepString] parser and provides a convenient\n// interface to it. If you are only interested in some parts of this package's\n// functionality, using the specialized functions starting with \"First\" is\n// almost always faster.\ntype Graphemes struct {\n\t// The original string.\n\toriginal string\n\n\t// The remaining string to be parsed.\n\tremaining string\n\n\t// The current grapheme cluster.\n\tcluster string\n\n\t// The byte offset of the current grapheme cluster relative to the original\n\t// string.\n\toffset int\n\n\t// The current boundary information of the [Step] parser.\n\tboundaries int\n\n\t// The current state of the [Step] parser.\n\tstate int\n}\n\n// NewGraphemes returns a new grapheme cluster iterator.\nfunc NewGraphemes(str string) *Graphemes {\n\treturn &Graphemes{\n\t\toriginal:  str,\n\t\tremaining: str,\n\t\tstate:     -1,\n\t}\n}\n\n// Next advances the iterator by one grapheme cluster and returns false if no\n// clusters are left. This function must be called before the first cluster is\n// accessed.\nfunc (g *Graphemes) Next() bool {\n\tif len(g.remaining) == 0 {\n\t\t// We're already past the end.\n\t\tg.state = -2\n\t\tg.cluster = \"\"\n\t\treturn false\n\t}\n\tg.offset += len(g.cluster)\n\tg.cluster, g.remaining, g.boundaries, g.state = StepString(g.remaining, g.state)\n\treturn true\n}\n\n// Runes returns a slice of runes (code points) which corresponds to the current\n// grapheme cluster. If the iterator is already past the end or [Graphemes.Next]\n// has not yet been called, nil is returned.\nfunc (g *Graphemes) Runes() []rune {\n\tif g.state < 0 {\n\t\treturn nil\n\t}\n\treturn []rune(g.cluster)\n}\n\n// Str returns a substring of the original string which corresponds to the\n// current grapheme cluster. If the iterator is already past the end or\n// [Graphemes.Next] has not yet been called, an empty string is returned.\nfunc (g *Graphemes) Str() string {\n\treturn g.cluster\n}\n\n// Bytes returns a byte slice which corresponds to the current grapheme cluster.\n// If the iterator is already past the end or [Graphemes.Next] has not yet been\n// called, nil is returned.\nfunc (g *Graphemes) Bytes() []byte {\n\tif g.state < 0 {\n\t\treturn nil\n\t}\n\treturn []byte(g.cluster)\n}\n\n// Positions returns the interval of the current grapheme cluster as byte\n// positions into the original string. The first returned value \"from\" indexes\n// the first byte and the second returned value \"to\" indexes the first byte that\n// is not included anymore, i.e. str[from:to] is the current grapheme cluster of\n// the original string \"str\". If [Graphemes.Next] has not yet been called, both\n// values are 0. If the iterator is already past the end, both values are 1.\nfunc (g *Graphemes) Positions() (int, int) {\n\tif g.state == -1 {\n\t\treturn 0, 0\n\t} else if g.state == -2 {\n\t\treturn 1, 1\n\t}\n\treturn g.offset, g.offset + len(g.cluster)\n}\n\n// IsWordBoundary returns true if a word ends after the current grapheme\n// cluster.\nfunc (g *Graphemes) IsWordBoundary() bool {\n\tif g.state < 0 {\n\t\treturn true\n\t}\n\treturn g.boundaries&MaskWord != 0\n}\n\n// IsSentenceBoundary returns true if a sentence ends after the current\n// grapheme cluster.\nfunc (g *Graphemes) IsSentenceBoundary() bool {\n\tif g.state < 0 {\n\t\treturn true\n\t}\n\treturn g.boundaries&MaskSentence != 0\n}\n\n// LineBreak returns whether the line can be broken after the current grapheme\n// cluster. A value of [LineDontBreak] means the line may not be broken, a value\n// of [LineMustBreak] means the line must be broken, and a value of\n// [LineCanBreak] means the line may or may not be broken.\nfunc (g *Graphemes) LineBreak() int {\n\tif g.state == -1 {\n\t\treturn LineDontBreak\n\t}\n\tif g.state == -2 {\n\t\treturn LineMustBreak\n\t}\n\treturn g.boundaries & MaskLine\n}\n\n// Width returns the monospace width of the current grapheme cluster.\nfunc (g *Graphemes) Width() int {\n\tif g.state < 0 {\n\t\treturn 0\n\t}\n\treturn g.boundaries >> ShiftWidth\n}\n\n// Reset puts the iterator into its initial state such that the next call to\n// [Graphemes.Next] sets it to the first grapheme cluster again.\nfunc (g *Graphemes) Reset() {\n\tg.state = -1\n\tg.offset = 0\n\tg.cluster = \"\"\n\tg.remaining = g.original\n}\n\n// GraphemeClusterCount returns the number of user-perceived characters\n// (grapheme clusters) for the given string.\nfunc GraphemeClusterCount(s string) (n int) {\n\tstate := -1\n\tfor len(s) > 0 {\n\t\t_, s, _, state = FirstGraphemeClusterInString(s, state)\n\t\tn++\n\t}\n\treturn\n}\n\n// ReverseString reverses the given string while observing grapheme cluster\n// boundaries.\nfunc ReverseString(s string) string {\n\tstr := []byte(s)\n\treversed := make([]byte, len(str))\n\tstate := -1\n\tindex := len(str)\n\tfor len(str) > 0 {\n\t\tvar cluster []byte\n\t\tcluster, str, _, state = FirstGraphemeCluster(str, state)\n\t\tindex -= len(cluster)\n\t\tcopy(reversed[index:], cluster)\n\t\tif index <= len(str)/2 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn string(reversed)\n}\n\n// The number of bits the grapheme property must be shifted to make place for\n// grapheme states.\nconst shiftGraphemePropState = 4\n\n// FirstGraphemeCluster returns the first grapheme cluster found in the given\n// byte slice according to the rules of [Unicode Standard Annex #29, Grapheme\n// Cluster Boundaries]. This function can be called continuously to extract all\n// grapheme clusters from a byte slice, as illustrated in the example below.\n//\n// If you don't know the current state, for example when calling the function\n// for the first time, you must pass -1. For consecutive calls, pass the state\n// and rest slice returned by the previous call.\n//\n// The \"rest\" slice is the sub-slice of the original byte slice \"b\" starting\n// after the last byte of the identified grapheme cluster. If the length of the\n// \"rest\" slice is 0, the entire byte slice \"b\" has been processed. The\n// \"cluster\" byte slice is the sub-slice of the input slice containing the\n// identified grapheme cluster.\n//\n// The returned width is the width of the grapheme cluster for most monospace\n// fonts where a value of 1 represents one character cell.\n//\n// Given an empty byte slice \"b\", the function returns nil values.\n//\n// While slightly less convenient than using the Graphemes class, this function\n// has much better performance and makes no allocations. It lends itself well to\n// large byte slices.\n//\n// [Unicode Standard Annex #29, Grapheme Cluster Boundaries]: http://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries\nfunc FirstGraphemeCluster(b []byte, state int) (cluster, rest []byte, width, newState int) {\n\t// An empty byte slice returns nothing.\n\tif len(b) == 0 {\n\t\treturn\n\t}\n\n\t// Extract the first rune.\n\tr, length := utf8.DecodeRune(b)\n\tif len(b) <= length { // If we're already past the end, there is nothing else to parse.\n\t\tvar prop int\n\t\tif state < 0 {\n\t\t\tprop = propertyGraphemes(r)\n\t\t} else {\n\t\t\tprop = state >> shiftGraphemePropState\n\t\t}\n\t\treturn b, nil, runeWidth(r, prop), grAny | (prop << shiftGraphemePropState)\n\t}\n\n\t// If we don't know the state, determine it now.\n\tvar firstProp int\n\tif state < 0 {\n\t\tstate, firstProp, _ = transitionGraphemeState(state, r)\n\t} else {\n\t\tfirstProp = state >> shiftGraphemePropState\n\t}\n\twidth += runeWidth(r, firstProp)\n\n\t// Transition until we find a boundary.\n\tfor {\n\t\tvar (\n\t\t\tprop     int\n\t\t\tboundary bool\n\t\t)\n\n\t\tr, l := utf8.DecodeRune(b[length:])\n\t\tstate, prop, boundary = transitionGraphemeState(state&maskGraphemeState, r)\n\n\t\tif boundary {\n\t\t\treturn b[:length], b[length:], width, state | (prop << shiftGraphemePropState)\n\t\t}\n\n\t\tif firstProp == prExtendedPictographic {\n\t\t\tif r == vs15 {\n\t\t\t\twidth = 1\n\t\t\t} else if r == vs16 {\n\t\t\t\twidth = 2\n\t\t\t}\n\t\t} else if firstProp != prRegionalIndicator && firstProp != prL {\n\t\t\twidth += runeWidth(r, prop)\n\t\t}\n\n\t\tlength += l\n\t\tif len(b) <= length {\n\t\t\treturn b, nil, width, grAny | (prop << shiftGraphemePropState)\n\t\t}\n\t}\n}\n\n// FirstGraphemeClusterInString is like [FirstGraphemeCluster] but its input and\n// outputs are strings.\nfunc FirstGraphemeClusterInString(str string, state int) (cluster, rest string, width, newState int) {\n\t// An empty string returns nothing.\n\tif len(str) == 0 {\n\t\treturn\n\t}\n\n\t// Extract the first rune.\n\tr, length := utf8.DecodeRuneInString(str)\n\tif len(str) <= length { // If we're already past the end, there is nothing else to parse.\n\t\tvar prop int\n\t\tif state < 0 {\n\t\t\tprop = propertyGraphemes(r)\n\t\t} else {\n\t\t\tprop = state >> shiftGraphemePropState\n\t\t}\n\t\treturn str, \"\", runeWidth(r, prop), grAny | (prop << shiftGraphemePropState)\n\t}\n\n\t// If we don't know the state, determine it now.\n\tvar firstProp int\n\tif state < 0 {\n\t\tstate, firstProp, _ = transitionGraphemeState(state, r)\n\t} else {\n\t\tfirstProp = state >> shiftGraphemePropState\n\t}\n\twidth += runeWidth(r, firstProp)\n\n\t// Transition until we find a boundary.\n\tfor {\n\t\tvar (\n\t\t\tprop     int\n\t\t\tboundary bool\n\t\t)\n\n\t\tr, l := utf8.DecodeRuneInString(str[length:])\n\t\tstate, prop, boundary = transitionGraphemeState(state&maskGraphemeState, r)\n\n\t\tif boundary {\n\t\t\treturn str[:length], str[length:], width, state | (prop << shiftGraphemePropState)\n\t\t}\n\n\t\tif firstProp == prExtendedPictographic {\n\t\t\tif r == vs15 {\n\t\t\t\twidth = 1\n\t\t\t} else if r == vs16 {\n\t\t\t\twidth = 2\n\t\t\t}\n\t\t} else if firstProp != prRegionalIndicator && firstProp != prL {\n\t\t\twidth += runeWidth(r, prop)\n\t\t}\n\n\t\tlength += l\n\t\tif len(str) <= length {\n\t\t\treturn str, \"\", width, grAny | (prop << shiftGraphemePropState)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/graphemeproperties.go",
    "content": "// Code generated via go generate from gen_properties.go. DO NOT EDIT.\n\npackage uniseg\n\n// graphemeCodePoints are taken from\n// https://www.unicode.org/Public/15.0.0/ucd/auxiliary/GraphemeBreakProperty.txt\n// and\n// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt\n// (\"Extended_Pictographic\" only)\n// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode\n// license agreement.\nvar graphemeCodePoints = [][3]int{\n\t{0x0000, 0x0009, prControl},                // Cc  [10] <control-0000>..<control-0009>\n\t{0x000A, 0x000A, prLF},                     // Cc       <control-000A>\n\t{0x000B, 0x000C, prControl},                // Cc   [2] <control-000B>..<control-000C>\n\t{0x000D, 0x000D, prCR},                     // Cc       <control-000D>\n\t{0x000E, 0x001F, prControl},                // Cc  [18] <control-000E>..<control-001F>\n\t{0x007F, 0x009F, prControl},                // Cc  [33] <control-007F>..<control-009F>\n\t{0x00A9, 0x00A9, prExtendedPictographic},   // E0.6   [1] (©️)       copyright\n\t{0x00AD, 0x00AD, prControl},                // Cf       SOFT HYPHEN\n\t{0x00AE, 0x00AE, prExtendedPictographic},   // E0.6   [1] (®️)       registered\n\t{0x0300, 0x036F, prExtend},                 // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X\n\t{0x0483, 0x0487, prExtend},                 // Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE\n\t{0x0488, 0x0489, prExtend},                 // Me   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN\n\t{0x0591, 0x05BD, prExtend},                 // Mn  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG\n\t{0x05BF, 0x05BF, prExtend},                 // Mn       HEBREW POINT RAFE\n\t{0x05C1, 0x05C2, prExtend},                 // Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT\n\t{0x05C4, 0x05C5, prExtend},                 // Mn   [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT\n\t{0x05C7, 0x05C7, prExtend},                 // Mn       HEBREW POINT QAMATS QATAN\n\t{0x0600, 0x0605, prPrepend},                // Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE\n\t{0x0610, 0x061A, prExtend},                 // Mn  [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA\n\t{0x061C, 0x061C, prControl},                // Cf       ARABIC LETTER MARK\n\t{0x064B, 0x065F, prExtend},                 // Mn  [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW\n\t{0x0670, 0x0670, prExtend},                 // Mn       ARABIC LETTER SUPERSCRIPT ALEF\n\t{0x06D6, 0x06DC, prExtend},                 // Mn   [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN\n\t{0x06DD, 0x06DD, prPrepend},                // Cf       ARABIC END OF AYAH\n\t{0x06DF, 0x06E4, prExtend},                 // Mn   [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA\n\t{0x06E7, 0x06E8, prExtend},                 // Mn   [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON\n\t{0x06EA, 0x06ED, prExtend},                 // Mn   [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM\n\t{0x070F, 0x070F, prPrepend},                // Cf       SYRIAC ABBREVIATION MARK\n\t{0x0711, 0x0711, prExtend},                 // Mn       SYRIAC LETTER SUPERSCRIPT ALAPH\n\t{0x0730, 0x074A, prExtend},                 // Mn  [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH\n\t{0x07A6, 0x07B0, prExtend},                 // Mn  [11] THAANA ABAFILI..THAANA SUKUN\n\t{0x07EB, 0x07F3, prExtend},                 // Mn   [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE\n\t{0x07FD, 0x07FD, prExtend},                 // Mn       NKO DANTAYALAN\n\t{0x0816, 0x0819, prExtend},                 // Mn   [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH\n\t{0x081B, 0x0823, prExtend},                 // Mn   [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A\n\t{0x0825, 0x0827, prExtend},                 // Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U\n\t{0x0829, 0x082D, prExtend},                 // Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA\n\t{0x0859, 0x085B, prExtend},                 // Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK\n\t{0x0890, 0x0891, prPrepend},                // Cf   [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE\n\t{0x0898, 0x089F, prExtend},                 // Mn   [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA\n\t{0x08CA, 0x08E1, prExtend},                 // Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA\n\t{0x08E2, 0x08E2, prPrepend},                // Cf       ARABIC DISPUTED END OF AYAH\n\t{0x08E3, 0x0902, prExtend},                 // Mn  [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA\n\t{0x0903, 0x0903, prSpacingMark},            // Mc       DEVANAGARI SIGN VISARGA\n\t{0x093A, 0x093A, prExtend},                 // Mn       DEVANAGARI VOWEL SIGN OE\n\t{0x093B, 0x093B, prSpacingMark},            // Mc       DEVANAGARI VOWEL SIGN OOE\n\t{0x093C, 0x093C, prExtend},                 // Mn       DEVANAGARI SIGN NUKTA\n\t{0x093E, 0x0940, prSpacingMark},            // Mc   [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II\n\t{0x0941, 0x0948, prExtend},                 // Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI\n\t{0x0949, 0x094C, prSpacingMark},            // Mc   [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU\n\t{0x094D, 0x094D, prExtend},                 // Mn       DEVANAGARI SIGN VIRAMA\n\t{0x094E, 0x094F, prSpacingMark},            // Mc   [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW\n\t{0x0951, 0x0957, prExtend},                 // Mn   [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE\n\t{0x0962, 0x0963, prExtend},                 // Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL\n\t{0x0981, 0x0981, prExtend},                 // Mn       BENGALI SIGN CANDRABINDU\n\t{0x0982, 0x0983, prSpacingMark},            // Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA\n\t{0x09BC, 0x09BC, prExtend},                 // Mn       BENGALI SIGN NUKTA\n\t{0x09BE, 0x09BE, prExtend},                 // Mc       BENGALI VOWEL SIGN AA\n\t{0x09BF, 0x09C0, prSpacingMark},            // Mc   [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II\n\t{0x09C1, 0x09C4, prExtend},                 // Mn   [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR\n\t{0x09C7, 0x09C8, prSpacingMark},            // Mc   [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI\n\t{0x09CB, 0x09CC, prSpacingMark},            // Mc   [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU\n\t{0x09CD, 0x09CD, prExtend},                 // Mn       BENGALI SIGN VIRAMA\n\t{0x09D7, 0x09D7, prExtend},                 // Mc       BENGALI AU LENGTH MARK\n\t{0x09E2, 0x09E3, prExtend},                 // Mn   [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL\n\t{0x09FE, 0x09FE, prExtend},                 // Mn       BENGALI SANDHI MARK\n\t{0x0A01, 0x0A02, prExtend},                 // Mn   [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI\n\t{0x0A03, 0x0A03, prSpacingMark},            // Mc       GURMUKHI SIGN VISARGA\n\t{0x0A3C, 0x0A3C, prExtend},                 // Mn       GURMUKHI SIGN NUKTA\n\t{0x0A3E, 0x0A40, prSpacingMark},            // Mc   [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II\n\t{0x0A41, 0x0A42, prExtend},                 // Mn   [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU\n\t{0x0A47, 0x0A48, prExtend},                 // Mn   [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI\n\t{0x0A4B, 0x0A4D, prExtend},                 // Mn   [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA\n\t{0x0A51, 0x0A51, prExtend},                 // Mn       GURMUKHI SIGN UDAAT\n\t{0x0A70, 0x0A71, prExtend},                 // Mn   [2] GURMUKHI TIPPI..GURMUKHI ADDAK\n\t{0x0A75, 0x0A75, prExtend},                 // Mn       GURMUKHI SIGN YAKASH\n\t{0x0A81, 0x0A82, prExtend},                 // Mn   [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA\n\t{0x0A83, 0x0A83, prSpacingMark},            // Mc       GUJARATI SIGN VISARGA\n\t{0x0ABC, 0x0ABC, prExtend},                 // Mn       GUJARATI SIGN NUKTA\n\t{0x0ABE, 0x0AC0, prSpacingMark},            // Mc   [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II\n\t{0x0AC1, 0x0AC5, prExtend},                 // Mn   [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E\n\t{0x0AC7, 0x0AC8, prExtend},                 // Mn   [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI\n\t{0x0AC9, 0x0AC9, prSpacingMark},            // Mc       GUJARATI VOWEL SIGN CANDRA O\n\t{0x0ACB, 0x0ACC, prSpacingMark},            // Mc   [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU\n\t{0x0ACD, 0x0ACD, prExtend},                 // Mn       GUJARATI SIGN VIRAMA\n\t{0x0AE2, 0x0AE3, prExtend},                 // Mn   [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL\n\t{0x0AFA, 0x0AFF, prExtend},                 // Mn   [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE\n\t{0x0B01, 0x0B01, prExtend},                 // Mn       ORIYA SIGN CANDRABINDU\n\t{0x0B02, 0x0B03, prSpacingMark},            // Mc   [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA\n\t{0x0B3C, 0x0B3C, prExtend},                 // Mn       ORIYA SIGN NUKTA\n\t{0x0B3E, 0x0B3E, prExtend},                 // Mc       ORIYA VOWEL SIGN AA\n\t{0x0B3F, 0x0B3F, prExtend},                 // Mn       ORIYA VOWEL SIGN I\n\t{0x0B40, 0x0B40, prSpacingMark},            // Mc       ORIYA VOWEL SIGN II\n\t{0x0B41, 0x0B44, prExtend},                 // Mn   [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR\n\t{0x0B47, 0x0B48, prSpacingMark},            // Mc   [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI\n\t{0x0B4B, 0x0B4C, prSpacingMark},            // Mc   [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU\n\t{0x0B4D, 0x0B4D, prExtend},                 // Mn       ORIYA SIGN VIRAMA\n\t{0x0B55, 0x0B56, prExtend},                 // Mn   [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK\n\t{0x0B57, 0x0B57, prExtend},                 // Mc       ORIYA AU LENGTH MARK\n\t{0x0B62, 0x0B63, prExtend},                 // Mn   [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL\n\t{0x0B82, 0x0B82, prExtend},                 // Mn       TAMIL SIGN ANUSVARA\n\t{0x0BBE, 0x0BBE, prExtend},                 // Mc       TAMIL VOWEL SIGN AA\n\t{0x0BBF, 0x0BBF, prSpacingMark},            // Mc       TAMIL VOWEL SIGN I\n\t{0x0BC0, 0x0BC0, prExtend},                 // Mn       TAMIL VOWEL SIGN II\n\t{0x0BC1, 0x0BC2, prSpacingMark},            // Mc   [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU\n\t{0x0BC6, 0x0BC8, prSpacingMark},            // Mc   [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI\n\t{0x0BCA, 0x0BCC, prSpacingMark},            // Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU\n\t{0x0BCD, 0x0BCD, prExtend},                 // Mn       TAMIL SIGN VIRAMA\n\t{0x0BD7, 0x0BD7, prExtend},                 // Mc       TAMIL AU LENGTH MARK\n\t{0x0C00, 0x0C00, prExtend},                 // Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE\n\t{0x0C01, 0x0C03, prSpacingMark},            // Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA\n\t{0x0C04, 0x0C04, prExtend},                 // Mn       TELUGU SIGN COMBINING ANUSVARA ABOVE\n\t{0x0C3C, 0x0C3C, prExtend},                 // Mn       TELUGU SIGN NUKTA\n\t{0x0C3E, 0x0C40, prExtend},                 // Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II\n\t{0x0C41, 0x0C44, prSpacingMark},            // Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR\n\t{0x0C46, 0x0C48, prExtend},                 // Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI\n\t{0x0C4A, 0x0C4D, prExtend},                 // Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA\n\t{0x0C55, 0x0C56, prExtend},                 // Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK\n\t{0x0C62, 0x0C63, prExtend},                 // Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL\n\t{0x0C81, 0x0C81, prExtend},                 // Mn       KANNADA SIGN CANDRABINDU\n\t{0x0C82, 0x0C83, prSpacingMark},            // Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA\n\t{0x0CBC, 0x0CBC, prExtend},                 // Mn       KANNADA SIGN NUKTA\n\t{0x0CBE, 0x0CBE, prSpacingMark},            // Mc       KANNADA VOWEL SIGN AA\n\t{0x0CBF, 0x0CBF, prExtend},                 // Mn       KANNADA VOWEL SIGN I\n\t{0x0CC0, 0x0CC1, prSpacingMark},            // Mc   [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U\n\t{0x0CC2, 0x0CC2, prExtend},                 // Mc       KANNADA VOWEL SIGN UU\n\t{0x0CC3, 0x0CC4, prSpacingMark},            // Mc   [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR\n\t{0x0CC6, 0x0CC6, prExtend},                 // Mn       KANNADA VOWEL SIGN E\n\t{0x0CC7, 0x0CC8, prSpacingMark},            // Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI\n\t{0x0CCA, 0x0CCB, prSpacingMark},            // Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO\n\t{0x0CCC, 0x0CCD, prExtend},                 // Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA\n\t{0x0CD5, 0x0CD6, prExtend},                 // Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK\n\t{0x0CE2, 0x0CE3, prExtend},                 // Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL\n\t{0x0CF3, 0x0CF3, prSpacingMark},            // Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT\n\t{0x0D00, 0x0D01, prExtend},                 // Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU\n\t{0x0D02, 0x0D03, prSpacingMark},            // Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA\n\t{0x0D3B, 0x0D3C, prExtend},                 // Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA\n\t{0x0D3E, 0x0D3E, prExtend},                 // Mc       MALAYALAM VOWEL SIGN AA\n\t{0x0D3F, 0x0D40, prSpacingMark},            // Mc   [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II\n\t{0x0D41, 0x0D44, prExtend},                 // Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR\n\t{0x0D46, 0x0D48, prSpacingMark},            // Mc   [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI\n\t{0x0D4A, 0x0D4C, prSpacingMark},            // Mc   [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU\n\t{0x0D4D, 0x0D4D, prExtend},                 // Mn       MALAYALAM SIGN VIRAMA\n\t{0x0D4E, 0x0D4E, prPrepend},                // Lo       MALAYALAM LETTER DOT REPH\n\t{0x0D57, 0x0D57, prExtend},                 // Mc       MALAYALAM AU LENGTH MARK\n\t{0x0D62, 0x0D63, prExtend},                 // Mn   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL\n\t{0x0D81, 0x0D81, prExtend},                 // Mn       SINHALA SIGN CANDRABINDU\n\t{0x0D82, 0x0D83, prSpacingMark},            // Mc   [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA\n\t{0x0DCA, 0x0DCA, prExtend},                 // Mn       SINHALA SIGN AL-LAKUNA\n\t{0x0DCF, 0x0DCF, prExtend},                 // Mc       SINHALA VOWEL SIGN AELA-PILLA\n\t{0x0DD0, 0x0DD1, prSpacingMark},            // Mc   [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA\n\t{0x0DD2, 0x0DD4, prExtend},                 // Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA\n\t{0x0DD6, 0x0DD6, prExtend},                 // Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA\n\t{0x0DD8, 0x0DDE, prSpacingMark},            // Mc   [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA\n\t{0x0DDF, 0x0DDF, prExtend},                 // Mc       SINHALA VOWEL SIGN GAYANUKITTA\n\t{0x0DF2, 0x0DF3, prSpacingMark},            // Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA\n\t{0x0E31, 0x0E31, prExtend},                 // Mn       THAI CHARACTER MAI HAN-AKAT\n\t{0x0E33, 0x0E33, prSpacingMark},            // Lo       THAI CHARACTER SARA AM\n\t{0x0E34, 0x0E3A, prExtend},                 // Mn   [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU\n\t{0x0E47, 0x0E4E, prExtend},                 // Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN\n\t{0x0EB1, 0x0EB1, prExtend},                 // Mn       LAO VOWEL SIGN MAI KAN\n\t{0x0EB3, 0x0EB3, prSpacingMark},            // Lo       LAO VOWEL SIGN AM\n\t{0x0EB4, 0x0EBC, prExtend},                 // Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO\n\t{0x0EC8, 0x0ECE, prExtend},                 // Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN\n\t{0x0F18, 0x0F19, prExtend},                 // Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS\n\t{0x0F35, 0x0F35, prExtend},                 // Mn       TIBETAN MARK NGAS BZUNG NYI ZLA\n\t{0x0F37, 0x0F37, prExtend},                 // Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS\n\t{0x0F39, 0x0F39, prExtend},                 // Mn       TIBETAN MARK TSA -PHRU\n\t{0x0F3E, 0x0F3F, prSpacingMark},            // Mc   [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES\n\t{0x0F71, 0x0F7E, prExtend},                 // Mn  [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO\n\t{0x0F7F, 0x0F7F, prSpacingMark},            // Mc       TIBETAN SIGN RNAM BCAD\n\t{0x0F80, 0x0F84, prExtend},                 // Mn   [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA\n\t{0x0F86, 0x0F87, prExtend},                 // Mn   [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS\n\t{0x0F8D, 0x0F97, prExtend},                 // Mn  [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA\n\t{0x0F99, 0x0FBC, prExtend},                 // Mn  [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA\n\t{0x0FC6, 0x0FC6, prExtend},                 // Mn       TIBETAN SYMBOL PADMA GDAN\n\t{0x102D, 0x1030, prExtend},                 // Mn   [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU\n\t{0x1031, 0x1031, prSpacingMark},            // Mc       MYANMAR VOWEL SIGN E\n\t{0x1032, 0x1037, prExtend},                 // Mn   [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW\n\t{0x1039, 0x103A, prExtend},                 // Mn   [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT\n\t{0x103B, 0x103C, prSpacingMark},            // Mc   [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA\n\t{0x103D, 0x103E, prExtend},                 // Mn   [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA\n\t{0x1056, 0x1057, prSpacingMark},            // Mc   [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR\n\t{0x1058, 0x1059, prExtend},                 // Mn   [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL\n\t{0x105E, 0x1060, prExtend},                 // Mn   [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA\n\t{0x1071, 0x1074, prExtend},                 // Mn   [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE\n\t{0x1082, 0x1082, prExtend},                 // Mn       MYANMAR CONSONANT SIGN SHAN MEDIAL WA\n\t{0x1084, 0x1084, prSpacingMark},            // Mc       MYANMAR VOWEL SIGN SHAN E\n\t{0x1085, 0x1086, prExtend},                 // Mn   [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y\n\t{0x108D, 0x108D, prExtend},                 // Mn       MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE\n\t{0x109D, 0x109D, prExtend},                 // Mn       MYANMAR VOWEL SIGN AITON AI\n\t{0x1100, 0x115F, prL},                      // Lo  [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER\n\t{0x1160, 0x11A7, prV},                      // Lo  [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE\n\t{0x11A8, 0x11FF, prT},                      // Lo  [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN\n\t{0x135D, 0x135F, prExtend},                 // Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK\n\t{0x1712, 0x1714, prExtend},                 // Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA\n\t{0x1715, 0x1715, prSpacingMark},            // Mc       TAGALOG SIGN PAMUDPOD\n\t{0x1732, 0x1733, prExtend},                 // Mn   [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U\n\t{0x1734, 0x1734, prSpacingMark},            // Mc       HANUNOO SIGN PAMUDPOD\n\t{0x1752, 0x1753, prExtend},                 // Mn   [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U\n\t{0x1772, 0x1773, prExtend},                 // Mn   [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U\n\t{0x17B4, 0x17B5, prExtend},                 // Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA\n\t{0x17B6, 0x17B6, prSpacingMark},            // Mc       KHMER VOWEL SIGN AA\n\t{0x17B7, 0x17BD, prExtend},                 // Mn   [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA\n\t{0x17BE, 0x17C5, prSpacingMark},            // Mc   [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU\n\t{0x17C6, 0x17C6, prExtend},                 // Mn       KHMER SIGN NIKAHIT\n\t{0x17C7, 0x17C8, prSpacingMark},            // Mc   [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU\n\t{0x17C9, 0x17D3, prExtend},                 // Mn  [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT\n\t{0x17DD, 0x17DD, prExtend},                 // Mn       KHMER SIGN ATTHACAN\n\t{0x180B, 0x180D, prExtend},                 // Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE\n\t{0x180E, 0x180E, prControl},                // Cf       MONGOLIAN VOWEL SEPARATOR\n\t{0x180F, 0x180F, prExtend},                 // Mn       MONGOLIAN FREE VARIATION SELECTOR FOUR\n\t{0x1885, 0x1886, prExtend},                 // Mn   [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA\n\t{0x18A9, 0x18A9, prExtend},                 // Mn       MONGOLIAN LETTER ALI GALI DAGALGA\n\t{0x1920, 0x1922, prExtend},                 // Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U\n\t{0x1923, 0x1926, prSpacingMark},            // Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU\n\t{0x1927, 0x1928, prExtend},                 // Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O\n\t{0x1929, 0x192B, prSpacingMark},            // Mc   [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA\n\t{0x1930, 0x1931, prSpacingMark},            // Mc   [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA\n\t{0x1932, 0x1932, prExtend},                 // Mn       LIMBU SMALL LETTER ANUSVARA\n\t{0x1933, 0x1938, prSpacingMark},            // Mc   [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA\n\t{0x1939, 0x193B, prExtend},                 // Mn   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I\n\t{0x1A17, 0x1A18, prExtend},                 // Mn   [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U\n\t{0x1A19, 0x1A1A, prSpacingMark},            // Mc   [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O\n\t{0x1A1B, 0x1A1B, prExtend},                 // Mn       BUGINESE VOWEL SIGN AE\n\t{0x1A55, 0x1A55, prSpacingMark},            // Mc       TAI THAM CONSONANT SIGN MEDIAL RA\n\t{0x1A56, 0x1A56, prExtend},                 // Mn       TAI THAM CONSONANT SIGN MEDIAL LA\n\t{0x1A57, 0x1A57, prSpacingMark},            // Mc       TAI THAM CONSONANT SIGN LA TANG LAI\n\t{0x1A58, 0x1A5E, prExtend},                 // Mn   [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA\n\t{0x1A60, 0x1A60, prExtend},                 // Mn       TAI THAM SIGN SAKOT\n\t{0x1A62, 0x1A62, prExtend},                 // Mn       TAI THAM VOWEL SIGN MAI SAT\n\t{0x1A65, 0x1A6C, prExtend},                 // Mn   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW\n\t{0x1A6D, 0x1A72, prSpacingMark},            // Mc   [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI\n\t{0x1A73, 0x1A7C, prExtend},                 // Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN\n\t{0x1A7F, 0x1A7F, prExtend},                 // Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT\n\t{0x1AB0, 0x1ABD, prExtend},                 // Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW\n\t{0x1ABE, 0x1ABE, prExtend},                 // Me       COMBINING PARENTHESES OVERLAY\n\t{0x1ABF, 0x1ACE, prExtend},                 // Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T\n\t{0x1B00, 0x1B03, prExtend},                 // Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG\n\t{0x1B04, 0x1B04, prSpacingMark},            // Mc       BALINESE SIGN BISAH\n\t{0x1B34, 0x1B34, prExtend},                 // Mn       BALINESE SIGN REREKAN\n\t{0x1B35, 0x1B35, prExtend},                 // Mc       BALINESE VOWEL SIGN TEDUNG\n\t{0x1B36, 0x1B3A, prExtend},                 // Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA\n\t{0x1B3B, 0x1B3B, prSpacingMark},            // Mc       BALINESE VOWEL SIGN RA REPA TEDUNG\n\t{0x1B3C, 0x1B3C, prExtend},                 // Mn       BALINESE VOWEL SIGN LA LENGA\n\t{0x1B3D, 0x1B41, prSpacingMark},            // Mc   [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG\n\t{0x1B42, 0x1B42, prExtend},                 // Mn       BALINESE VOWEL SIGN PEPET\n\t{0x1B43, 0x1B44, prSpacingMark},            // Mc   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG\n\t{0x1B6B, 0x1B73, prExtend},                 // Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG\n\t{0x1B80, 0x1B81, prExtend},                 // Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR\n\t{0x1B82, 0x1B82, prSpacingMark},            // Mc       SUNDANESE SIGN PANGWISAD\n\t{0x1BA1, 0x1BA1, prSpacingMark},            // Mc       SUNDANESE CONSONANT SIGN PAMINGKAL\n\t{0x1BA2, 0x1BA5, prExtend},                 // Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU\n\t{0x1BA6, 0x1BA7, prSpacingMark},            // Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG\n\t{0x1BA8, 0x1BA9, prExtend},                 // Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG\n\t{0x1BAA, 0x1BAA, prSpacingMark},            // Mc       SUNDANESE SIGN PAMAAEH\n\t{0x1BAB, 0x1BAD, prExtend},                 // Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA\n\t{0x1BE6, 0x1BE6, prExtend},                 // Mn       BATAK SIGN TOMPI\n\t{0x1BE7, 0x1BE7, prSpacingMark},            // Mc       BATAK VOWEL SIGN E\n\t{0x1BE8, 0x1BE9, prExtend},                 // Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE\n\t{0x1BEA, 0x1BEC, prSpacingMark},            // Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O\n\t{0x1BED, 0x1BED, prExtend},                 // Mn       BATAK VOWEL SIGN KARO O\n\t{0x1BEE, 0x1BEE, prSpacingMark},            // Mc       BATAK VOWEL SIGN U\n\t{0x1BEF, 0x1BF1, prExtend},                 // Mn   [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H\n\t{0x1BF2, 0x1BF3, prSpacingMark},            // Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN\n\t{0x1C24, 0x1C2B, prSpacingMark},            // Mc   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU\n\t{0x1C2C, 0x1C33, prExtend},                 // Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T\n\t{0x1C34, 0x1C35, prSpacingMark},            // Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG\n\t{0x1C36, 0x1C37, prExtend},                 // Mn   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA\n\t{0x1CD0, 0x1CD2, prExtend},                 // Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA\n\t{0x1CD4, 0x1CE0, prExtend},                 // Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA\n\t{0x1CE1, 0x1CE1, prSpacingMark},            // Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA\n\t{0x1CE2, 0x1CE8, prExtend},                 // Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL\n\t{0x1CED, 0x1CED, prExtend},                 // Mn       VEDIC SIGN TIRYAK\n\t{0x1CF4, 0x1CF4, prExtend},                 // Mn       VEDIC TONE CANDRA ABOVE\n\t{0x1CF7, 0x1CF7, prSpacingMark},            // Mc       VEDIC SIGN ATIKRAMA\n\t{0x1CF8, 0x1CF9, prExtend},                 // Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE\n\t{0x1DC0, 0x1DFF, prExtend},                 // Mn  [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW\n\t{0x200B, 0x200B, prControl},                // Cf       ZERO WIDTH SPACE\n\t{0x200C, 0x200C, prExtend},                 // Cf       ZERO WIDTH NON-JOINER\n\t{0x200D, 0x200D, prZWJ},                    // Cf       ZERO WIDTH JOINER\n\t{0x200E, 0x200F, prControl},                // Cf   [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK\n\t{0x2028, 0x2028, prControl},                // Zl       LINE SEPARATOR\n\t{0x2029, 0x2029, prControl},                // Zp       PARAGRAPH SEPARATOR\n\t{0x202A, 0x202E, prControl},                // Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE\n\t{0x203C, 0x203C, prExtendedPictographic},   // E0.6   [1] (‼️)       double exclamation mark\n\t{0x2049, 0x2049, prExtendedPictographic},   // E0.6   [1] (⁉️)       exclamation question mark\n\t{0x2060, 0x2064, prControl},                // Cf   [5] WORD JOINER..INVISIBLE PLUS\n\t{0x2065, 0x2065, prControl},                // Cn       <reserved-2065>\n\t{0x2066, 0x206F, prControl},                // Cf  [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES\n\t{0x20D0, 0x20DC, prExtend},                 // Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE\n\t{0x20DD, 0x20E0, prExtend},                 // Me   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH\n\t{0x20E1, 0x20E1, prExtend},                 // Mn       COMBINING LEFT RIGHT ARROW ABOVE\n\t{0x20E2, 0x20E4, prExtend},                 // Me   [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE\n\t{0x20E5, 0x20F0, prExtend},                 // Mn  [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE\n\t{0x2122, 0x2122, prExtendedPictographic},   // E0.6   [1] (™️)       trade mark\n\t{0x2139, 0x2139, prExtendedPictographic},   // E0.6   [1] (ℹ️)       information\n\t{0x2194, 0x2199, prExtendedPictographic},   // E0.6   [6] (↔️..↙️)    left-right arrow..down-left arrow\n\t{0x21A9, 0x21AA, prExtendedPictographic},   // E0.6   [2] (↩️..↪️)    right arrow curving left..left arrow curving right\n\t{0x231A, 0x231B, prExtendedPictographic},   // E0.6   [2] (⌚..⌛)    watch..hourglass done\n\t{0x2328, 0x2328, prExtendedPictographic},   // E1.0   [1] (⌨️)       keyboard\n\t{0x2388, 0x2388, prExtendedPictographic},   // E0.0   [1] (⎈)       HELM SYMBOL\n\t{0x23CF, 0x23CF, prExtendedPictographic},   // E1.0   [1] (⏏️)       eject button\n\t{0x23E9, 0x23EC, prExtendedPictographic},   // E0.6   [4] (⏩..⏬)    fast-forward button..fast down button\n\t{0x23ED, 0x23EE, prExtendedPictographic},   // E0.7   [2] (⏭️..⏮️)    next track button..last track button\n\t{0x23EF, 0x23EF, prExtendedPictographic},   // E1.0   [1] (⏯️)       play or pause button\n\t{0x23F0, 0x23F0, prExtendedPictographic},   // E0.6   [1] (⏰)       alarm clock\n\t{0x23F1, 0x23F2, prExtendedPictographic},   // E1.0   [2] (⏱️..⏲️)    stopwatch..timer clock\n\t{0x23F3, 0x23F3, prExtendedPictographic},   // E0.6   [1] (⏳)       hourglass not done\n\t{0x23F8, 0x23FA, prExtendedPictographic},   // E0.7   [3] (⏸️..⏺️)    pause button..record button\n\t{0x24C2, 0x24C2, prExtendedPictographic},   // E0.6   [1] (Ⓜ️)       circled M\n\t{0x25AA, 0x25AB, prExtendedPictographic},   // E0.6   [2] (▪️..▫️)    black small square..white small square\n\t{0x25B6, 0x25B6, prExtendedPictographic},   // E0.6   [1] (▶️)       play button\n\t{0x25C0, 0x25C0, prExtendedPictographic},   // E0.6   [1] (◀️)       reverse button\n\t{0x25FB, 0x25FE, prExtendedPictographic},   // E0.6   [4] (◻️..◾)    white medium square..black medium-small square\n\t{0x2600, 0x2601, prExtendedPictographic},   // E0.6   [2] (☀️..☁️)    sun..cloud\n\t{0x2602, 0x2603, prExtendedPictographic},   // E0.7   [2] (☂️..☃️)    umbrella..snowman\n\t{0x2604, 0x2604, prExtendedPictographic},   // E1.0   [1] (☄️)       comet\n\t{0x2605, 0x2605, prExtendedPictographic},   // E0.0   [1] (★)       BLACK STAR\n\t{0x2607, 0x260D, prExtendedPictographic},   // E0.0   [7] (☇..☍)    LIGHTNING..OPPOSITION\n\t{0x260E, 0x260E, prExtendedPictographic},   // E0.6   [1] (☎️)       telephone\n\t{0x260F, 0x2610, prExtendedPictographic},   // E0.0   [2] (☏..☐)    WHITE TELEPHONE..BALLOT BOX\n\t{0x2611, 0x2611, prExtendedPictographic},   // E0.6   [1] (☑️)       check box with check\n\t{0x2612, 0x2612, prExtendedPictographic},   // E0.0   [1] (☒)       BALLOT BOX WITH X\n\t{0x2614, 0x2615, prExtendedPictographic},   // E0.6   [2] (☔..☕)    umbrella with rain drops..hot beverage\n\t{0x2616, 0x2617, prExtendedPictographic},   // E0.0   [2] (☖..☗)    WHITE SHOGI PIECE..BLACK SHOGI PIECE\n\t{0x2618, 0x2618, prExtendedPictographic},   // E1.0   [1] (☘️)       shamrock\n\t{0x2619, 0x261C, prExtendedPictographic},   // E0.0   [4] (☙..☜)    REVERSED ROTATED FLORAL HEART BULLET..WHITE LEFT POINTING INDEX\n\t{0x261D, 0x261D, prExtendedPictographic},   // E0.6   [1] (☝️)       index pointing up\n\t{0x261E, 0x261F, prExtendedPictographic},   // E0.0   [2] (☞..☟)    WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX\n\t{0x2620, 0x2620, prExtendedPictographic},   // E1.0   [1] (☠️)       skull and crossbones\n\t{0x2621, 0x2621, prExtendedPictographic},   // E0.0   [1] (☡)       CAUTION SIGN\n\t{0x2622, 0x2623, prExtendedPictographic},   // E1.0   [2] (☢️..☣️)    radioactive..biohazard\n\t{0x2624, 0x2625, prExtendedPictographic},   // E0.0   [2] (☤..☥)    CADUCEUS..ANKH\n\t{0x2626, 0x2626, prExtendedPictographic},   // E1.0   [1] (☦️)       orthodox cross\n\t{0x2627, 0x2629, prExtendedPictographic},   // E0.0   [3] (☧..☩)    CHI RHO..CROSS OF JERUSALEM\n\t{0x262A, 0x262A, prExtendedPictographic},   // E0.7   [1] (☪️)       star and crescent\n\t{0x262B, 0x262D, prExtendedPictographic},   // E0.0   [3] (☫..☭)    FARSI SYMBOL..HAMMER AND SICKLE\n\t{0x262E, 0x262E, prExtendedPictographic},   // E1.0   [1] (☮️)       peace symbol\n\t{0x262F, 0x262F, prExtendedPictographic},   // E0.7   [1] (☯️)       yin yang\n\t{0x2630, 0x2637, prExtendedPictographic},   // E0.0   [8] (☰..☷)    TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH\n\t{0x2638, 0x2639, prExtendedPictographic},   // E0.7   [2] (☸️..☹️)    wheel of dharma..frowning face\n\t{0x263A, 0x263A, prExtendedPictographic},   // E0.6   [1] (☺️)       smiling face\n\t{0x263B, 0x263F, prExtendedPictographic},   // E0.0   [5] (☻..☿)    BLACK SMILING FACE..MERCURY\n\t{0x2640, 0x2640, prExtendedPictographic},   // E4.0   [1] (♀️)       female sign\n\t{0x2641, 0x2641, prExtendedPictographic},   // E0.0   [1] (♁)       EARTH\n\t{0x2642, 0x2642, prExtendedPictographic},   // E4.0   [1] (♂️)       male sign\n\t{0x2643, 0x2647, prExtendedPictographic},   // E0.0   [5] (♃..♇)    JUPITER..PLUTO\n\t{0x2648, 0x2653, prExtendedPictographic},   // E0.6  [12] (♈..♓)    Aries..Pisces\n\t{0x2654, 0x265E, prExtendedPictographic},   // E0.0  [11] (♔..♞)    WHITE CHESS KING..BLACK CHESS KNIGHT\n\t{0x265F, 0x265F, prExtendedPictographic},   // E11.0  [1] (♟️)       chess pawn\n\t{0x2660, 0x2660, prExtendedPictographic},   // E0.6   [1] (♠️)       spade suit\n\t{0x2661, 0x2662, prExtendedPictographic},   // E0.0   [2] (♡..♢)    WHITE HEART SUIT..WHITE DIAMOND SUIT\n\t{0x2663, 0x2663, prExtendedPictographic},   // E0.6   [1] (♣️)       club suit\n\t{0x2664, 0x2664, prExtendedPictographic},   // E0.0   [1] (♤)       WHITE SPADE SUIT\n\t{0x2665, 0x2666, prExtendedPictographic},   // E0.6   [2] (♥️..♦️)    heart suit..diamond suit\n\t{0x2667, 0x2667, prExtendedPictographic},   // E0.0   [1] (♧)       WHITE CLUB SUIT\n\t{0x2668, 0x2668, prExtendedPictographic},   // E0.6   [1] (♨️)       hot springs\n\t{0x2669, 0x267A, prExtendedPictographic},   // E0.0  [18] (♩..♺)    QUARTER NOTE..RECYCLING SYMBOL FOR GENERIC MATERIALS\n\t{0x267B, 0x267B, prExtendedPictographic},   // E0.6   [1] (♻️)       recycling symbol\n\t{0x267C, 0x267D, prExtendedPictographic},   // E0.0   [2] (♼..♽)    RECYCLED PAPER SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL\n\t{0x267E, 0x267E, prExtendedPictographic},   // E11.0  [1] (♾️)       infinity\n\t{0x267F, 0x267F, prExtendedPictographic},   // E0.6   [1] (♿)       wheelchair symbol\n\t{0x2680, 0x2685, prExtendedPictographic},   // E0.0   [6] (⚀..⚅)    DIE FACE-1..DIE FACE-6\n\t{0x2690, 0x2691, prExtendedPictographic},   // E0.0   [2] (⚐..⚑)    WHITE FLAG..BLACK FLAG\n\t{0x2692, 0x2692, prExtendedPictographic},   // E1.0   [1] (⚒️)       hammer and pick\n\t{0x2693, 0x2693, prExtendedPictographic},   // E0.6   [1] (⚓)       anchor\n\t{0x2694, 0x2694, prExtendedPictographic},   // E1.0   [1] (⚔️)       crossed swords\n\t{0x2695, 0x2695, prExtendedPictographic},   // E4.0   [1] (⚕️)       medical symbol\n\t{0x2696, 0x2697, prExtendedPictographic},   // E1.0   [2] (⚖️..⚗️)    balance scale..alembic\n\t{0x2698, 0x2698, prExtendedPictographic},   // E0.0   [1] (⚘)       FLOWER\n\t{0x2699, 0x2699, prExtendedPictographic},   // E1.0   [1] (⚙️)       gear\n\t{0x269A, 0x269A, prExtendedPictographic},   // E0.0   [1] (⚚)       STAFF OF HERMES\n\t{0x269B, 0x269C, prExtendedPictographic},   // E1.0   [2] (⚛️..⚜️)    atom symbol..fleur-de-lis\n\t{0x269D, 0x269F, prExtendedPictographic},   // E0.0   [3] (⚝..⚟)    OUTLINED WHITE STAR..THREE LINES CONVERGING LEFT\n\t{0x26A0, 0x26A1, prExtendedPictographic},   // E0.6   [2] (⚠️..⚡)    warning..high voltage\n\t{0x26A2, 0x26A6, prExtendedPictographic},   // E0.0   [5] (⚢..⚦)    DOUBLED FEMALE SIGN..MALE WITH STROKE SIGN\n\t{0x26A7, 0x26A7, prExtendedPictographic},   // E13.0  [1] (⚧️)       transgender symbol\n\t{0x26A8, 0x26A9, prExtendedPictographic},   // E0.0   [2] (⚨..⚩)    VERTICAL MALE WITH STROKE SIGN..HORIZONTAL MALE WITH STROKE SIGN\n\t{0x26AA, 0x26AB, prExtendedPictographic},   // E0.6   [2] (⚪..⚫)    white circle..black circle\n\t{0x26AC, 0x26AF, prExtendedPictographic},   // E0.0   [4] (⚬..⚯)    MEDIUM SMALL WHITE CIRCLE..UNMARRIED PARTNERSHIP SYMBOL\n\t{0x26B0, 0x26B1, prExtendedPictographic},   // E1.0   [2] (⚰️..⚱️)    coffin..funeral urn\n\t{0x26B2, 0x26BC, prExtendedPictographic},   // E0.0  [11] (⚲..⚼)    NEUTER..SESQUIQUADRATE\n\t{0x26BD, 0x26BE, prExtendedPictographic},   // E0.6   [2] (⚽..⚾)    soccer ball..baseball\n\t{0x26BF, 0x26C3, prExtendedPictographic},   // E0.0   [5] (⚿..⛃)    SQUARED KEY..BLACK DRAUGHTS KING\n\t{0x26C4, 0x26C5, prExtendedPictographic},   // E0.6   [2] (⛄..⛅)    snowman without snow..sun behind cloud\n\t{0x26C6, 0x26C7, prExtendedPictographic},   // E0.0   [2] (⛆..⛇)    RAIN..BLACK SNOWMAN\n\t{0x26C8, 0x26C8, prExtendedPictographic},   // E0.7   [1] (⛈️)       cloud with lightning and rain\n\t{0x26C9, 0x26CD, prExtendedPictographic},   // E0.0   [5] (⛉..⛍)    TURNED WHITE SHOGI PIECE..DISABLED CAR\n\t{0x26CE, 0x26CE, prExtendedPictographic},   // E0.6   [1] (⛎)       Ophiuchus\n\t{0x26CF, 0x26CF, prExtendedPictographic},   // E0.7   [1] (⛏️)       pick\n\t{0x26D0, 0x26D0, prExtendedPictographic},   // E0.0   [1] (⛐)       CAR SLIDING\n\t{0x26D1, 0x26D1, prExtendedPictographic},   // E0.7   [1] (⛑️)       rescue worker’s helmet\n\t{0x26D2, 0x26D2, prExtendedPictographic},   // E0.0   [1] (⛒)       CIRCLED CROSSING LANES\n\t{0x26D3, 0x26D3, prExtendedPictographic},   // E0.7   [1] (⛓️)       chains\n\t{0x26D4, 0x26D4, prExtendedPictographic},   // E0.6   [1] (⛔)       no entry\n\t{0x26D5, 0x26E8, prExtendedPictographic},   // E0.0  [20] (⛕..⛨)    ALTERNATE ONE-WAY LEFT WAY TRAFFIC..BLACK CROSS ON SHIELD\n\t{0x26E9, 0x26E9, prExtendedPictographic},   // E0.7   [1] (⛩️)       shinto shrine\n\t{0x26EA, 0x26EA, prExtendedPictographic},   // E0.6   [1] (⛪)       church\n\t{0x26EB, 0x26EF, prExtendedPictographic},   // E0.0   [5] (⛫..⛯)    CASTLE..MAP SYMBOL FOR LIGHTHOUSE\n\t{0x26F0, 0x26F1, prExtendedPictographic},   // E0.7   [2] (⛰️..⛱️)    mountain..umbrella on ground\n\t{0x26F2, 0x26F3, prExtendedPictographic},   // E0.6   [2] (⛲..⛳)    fountain..flag in hole\n\t{0x26F4, 0x26F4, prExtendedPictographic},   // E0.7   [1] (⛴️)       ferry\n\t{0x26F5, 0x26F5, prExtendedPictographic},   // E0.6   [1] (⛵)       sailboat\n\t{0x26F6, 0x26F6, prExtendedPictographic},   // E0.0   [1] (⛶)       SQUARE FOUR CORNERS\n\t{0x26F7, 0x26F9, prExtendedPictographic},   // E0.7   [3] (⛷️..⛹️)    skier..person bouncing ball\n\t{0x26FA, 0x26FA, prExtendedPictographic},   // E0.6   [1] (⛺)       tent\n\t{0x26FB, 0x26FC, prExtendedPictographic},   // E0.0   [2] (⛻..⛼)    JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL\n\t{0x26FD, 0x26FD, prExtendedPictographic},   // E0.6   [1] (⛽)       fuel pump\n\t{0x26FE, 0x2701, prExtendedPictographic},   // E0.0   [4] (⛾..✁)    CUP ON BLACK SQUARE..UPPER BLADE SCISSORS\n\t{0x2702, 0x2702, prExtendedPictographic},   // E0.6   [1] (✂️)       scissors\n\t{0x2703, 0x2704, prExtendedPictographic},   // E0.0   [2] (✃..✄)    LOWER BLADE SCISSORS..WHITE SCISSORS\n\t{0x2705, 0x2705, prExtendedPictographic},   // E0.6   [1] (✅)       check mark button\n\t{0x2708, 0x270C, prExtendedPictographic},   // E0.6   [5] (✈️..✌️)    airplane..victory hand\n\t{0x270D, 0x270D, prExtendedPictographic},   // E0.7   [1] (✍️)       writing hand\n\t{0x270E, 0x270E, prExtendedPictographic},   // E0.0   [1] (✎)       LOWER RIGHT PENCIL\n\t{0x270F, 0x270F, prExtendedPictographic},   // E0.6   [1] (✏️)       pencil\n\t{0x2710, 0x2711, prExtendedPictographic},   // E0.0   [2] (✐..✑)    UPPER RIGHT PENCIL..WHITE NIB\n\t{0x2712, 0x2712, prExtendedPictographic},   // E0.6   [1] (✒️)       black nib\n\t{0x2714, 0x2714, prExtendedPictographic},   // E0.6   [1] (✔️)       check mark\n\t{0x2716, 0x2716, prExtendedPictographic},   // E0.6   [1] (✖️)       multiply\n\t{0x271D, 0x271D, prExtendedPictographic},   // E0.7   [1] (✝️)       latin cross\n\t{0x2721, 0x2721, prExtendedPictographic},   // E0.7   [1] (✡️)       star of David\n\t{0x2728, 0x2728, prExtendedPictographic},   // E0.6   [1] (✨)       sparkles\n\t{0x2733, 0x2734, prExtendedPictographic},   // E0.6   [2] (✳️..✴️)    eight-spoked asterisk..eight-pointed star\n\t{0x2744, 0x2744, prExtendedPictographic},   // E0.6   [1] (❄️)       snowflake\n\t{0x2747, 0x2747, prExtendedPictographic},   // E0.6   [1] (❇️)       sparkle\n\t{0x274C, 0x274C, prExtendedPictographic},   // E0.6   [1] (❌)       cross mark\n\t{0x274E, 0x274E, prExtendedPictographic},   // E0.6   [1] (❎)       cross mark button\n\t{0x2753, 0x2755, prExtendedPictographic},   // E0.6   [3] (❓..❕)    red question mark..white exclamation mark\n\t{0x2757, 0x2757, prExtendedPictographic},   // E0.6   [1] (❗)       red exclamation mark\n\t{0x2763, 0x2763, prExtendedPictographic},   // E1.0   [1] (❣️)       heart exclamation\n\t{0x2764, 0x2764, prExtendedPictographic},   // E0.6   [1] (❤️)       red heart\n\t{0x2765, 0x2767, prExtendedPictographic},   // E0.0   [3] (❥..❧)    ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET\n\t{0x2795, 0x2797, prExtendedPictographic},   // E0.6   [3] (➕..➗)    plus..divide\n\t{0x27A1, 0x27A1, prExtendedPictographic},   // E0.6   [1] (➡️)       right arrow\n\t{0x27B0, 0x27B0, prExtendedPictographic},   // E0.6   [1] (➰)       curly loop\n\t{0x27BF, 0x27BF, prExtendedPictographic},   // E1.0   [1] (➿)       double curly loop\n\t{0x2934, 0x2935, prExtendedPictographic},   // E0.6   [2] (⤴️..⤵️)    right arrow curving up..right arrow curving down\n\t{0x2B05, 0x2B07, prExtendedPictographic},   // E0.6   [3] (⬅️..⬇️)    left arrow..down arrow\n\t{0x2B1B, 0x2B1C, prExtendedPictographic},   // E0.6   [2] (⬛..⬜)    black large square..white large square\n\t{0x2B50, 0x2B50, prExtendedPictographic},   // E0.6   [1] (⭐)       star\n\t{0x2B55, 0x2B55, prExtendedPictographic},   // E0.6   [1] (⭕)       hollow red circle\n\t{0x2CEF, 0x2CF1, prExtend},                 // Mn   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS\n\t{0x2D7F, 0x2D7F, prExtend},                 // Mn       TIFINAGH CONSONANT JOINER\n\t{0x2DE0, 0x2DFF, prExtend},                 // Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS\n\t{0x302A, 0x302D, prExtend},                 // Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK\n\t{0x302E, 0x302F, prExtend},                 // Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK\n\t{0x3030, 0x3030, prExtendedPictographic},   // E0.6   [1] (〰️)       wavy dash\n\t{0x303D, 0x303D, prExtendedPictographic},   // E0.6   [1] (〽️)       part alternation mark\n\t{0x3099, 0x309A, prExtend},                 // Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK\n\t{0x3297, 0x3297, prExtendedPictographic},   // E0.6   [1] (㊗️)       Japanese “congratulations” button\n\t{0x3299, 0x3299, prExtendedPictographic},   // E0.6   [1] (㊙️)       Japanese “secret” button\n\t{0xA66F, 0xA66F, prExtend},                 // Mn       COMBINING CYRILLIC VZMET\n\t{0xA670, 0xA672, prExtend},                 // Me   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN\n\t{0xA674, 0xA67D, prExtend},                 // Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK\n\t{0xA69E, 0xA69F, prExtend},                 // Mn   [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E\n\t{0xA6F0, 0xA6F1, prExtend},                 // Mn   [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS\n\t{0xA802, 0xA802, prExtend},                 // Mn       SYLOTI NAGRI SIGN DVISVARA\n\t{0xA806, 0xA806, prExtend},                 // Mn       SYLOTI NAGRI SIGN HASANTA\n\t{0xA80B, 0xA80B, prExtend},                 // Mn       SYLOTI NAGRI SIGN ANUSVARA\n\t{0xA823, 0xA824, prSpacingMark},            // Mc   [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I\n\t{0xA825, 0xA826, prExtend},                 // Mn   [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E\n\t{0xA827, 0xA827, prSpacingMark},            // Mc       SYLOTI NAGRI VOWEL SIGN OO\n\t{0xA82C, 0xA82C, prExtend},                 // Mn       SYLOTI NAGRI SIGN ALTERNATE HASANTA\n\t{0xA880, 0xA881, prSpacingMark},            // Mc   [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA\n\t{0xA8B4, 0xA8C3, prSpacingMark},            // Mc  [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU\n\t{0xA8C4, 0xA8C5, prExtend},                 // Mn   [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU\n\t{0xA8E0, 0xA8F1, prExtend},                 // Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA\n\t{0xA8FF, 0xA8FF, prExtend},                 // Mn       DEVANAGARI VOWEL SIGN AY\n\t{0xA926, 0xA92D, prExtend},                 // Mn   [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU\n\t{0xA947, 0xA951, prExtend},                 // Mn  [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R\n\t{0xA952, 0xA953, prSpacingMark},            // Mc   [2] REJANG CONSONANT SIGN H..REJANG VIRAMA\n\t{0xA960, 0xA97C, prL},                      // Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH\n\t{0xA980, 0xA982, prExtend},                 // Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR\n\t{0xA983, 0xA983, prSpacingMark},            // Mc       JAVANESE SIGN WIGNYAN\n\t{0xA9B3, 0xA9B3, prExtend},                 // Mn       JAVANESE SIGN CECAK TELU\n\t{0xA9B4, 0xA9B5, prSpacingMark},            // Mc   [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG\n\t{0xA9B6, 0xA9B9, prExtend},                 // Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT\n\t{0xA9BA, 0xA9BB, prSpacingMark},            // Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE\n\t{0xA9BC, 0xA9BD, prExtend},                 // Mn   [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET\n\t{0xA9BE, 0xA9C0, prSpacingMark},            // Mc   [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON\n\t{0xA9E5, 0xA9E5, prExtend},                 // Mn       MYANMAR SIGN SHAN SAW\n\t{0xAA29, 0xAA2E, prExtend},                 // Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE\n\t{0xAA2F, 0xAA30, prSpacingMark},            // Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI\n\t{0xAA31, 0xAA32, prExtend},                 // Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE\n\t{0xAA33, 0xAA34, prSpacingMark},            // Mc   [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA\n\t{0xAA35, 0xAA36, prExtend},                 // Mn   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA\n\t{0xAA43, 0xAA43, prExtend},                 // Mn       CHAM CONSONANT SIGN FINAL NG\n\t{0xAA4C, 0xAA4C, prExtend},                 // Mn       CHAM CONSONANT SIGN FINAL M\n\t{0xAA4D, 0xAA4D, prSpacingMark},            // Mc       CHAM CONSONANT SIGN FINAL H\n\t{0xAA7C, 0xAA7C, prExtend},                 // Mn       MYANMAR SIGN TAI LAING TONE-2\n\t{0xAAB0, 0xAAB0, prExtend},                 // Mn       TAI VIET MAI KANG\n\t{0xAAB2, 0xAAB4, prExtend},                 // Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U\n\t{0xAAB7, 0xAAB8, prExtend},                 // Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA\n\t{0xAABE, 0xAABF, prExtend},                 // Mn   [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK\n\t{0xAAC1, 0xAAC1, prExtend},                 // Mn       TAI VIET TONE MAI THO\n\t{0xAAEB, 0xAAEB, prSpacingMark},            // Mc       MEETEI MAYEK VOWEL SIGN II\n\t{0xAAEC, 0xAAED, prExtend},                 // Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI\n\t{0xAAEE, 0xAAEF, prSpacingMark},            // Mc   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU\n\t{0xAAF5, 0xAAF5, prSpacingMark},            // Mc       MEETEI MAYEK VOWEL SIGN VISARGA\n\t{0xAAF6, 0xAAF6, prExtend},                 // Mn       MEETEI MAYEK VIRAMA\n\t{0xABE3, 0xABE4, prSpacingMark},            // Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP\n\t{0xABE5, 0xABE5, prExtend},                 // Mn       MEETEI MAYEK VOWEL SIGN ANAP\n\t{0xABE6, 0xABE7, prSpacingMark},            // Mc   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP\n\t{0xABE8, 0xABE8, prExtend},                 // Mn       MEETEI MAYEK VOWEL SIGN UNAP\n\t{0xABE9, 0xABEA, prSpacingMark},            // Mc   [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG\n\t{0xABEC, 0xABEC, prSpacingMark},            // Mc       MEETEI MAYEK LUM IYEK\n\t{0xABED, 0xABED, prExtend},                 // Mn       MEETEI MAYEK APUN IYEK\n\t{0xAC00, 0xAC00, prLV},                     // Lo       HANGUL SYLLABLE GA\n\t{0xAC01, 0xAC1B, prLVT},                    // Lo  [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH\n\t{0xAC1C, 0xAC1C, prLV},                     // Lo       HANGUL SYLLABLE GAE\n\t{0xAC1D, 0xAC37, prLVT},                    // Lo  [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH\n\t{0xAC38, 0xAC38, prLV},                     // Lo       HANGUL SYLLABLE GYA\n\t{0xAC39, 0xAC53, prLVT},                    // Lo  [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH\n\t{0xAC54, 0xAC54, prLV},                     // Lo       HANGUL SYLLABLE GYAE\n\t{0xAC55, 0xAC6F, prLVT},                    // Lo  [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH\n\t{0xAC70, 0xAC70, prLV},                     // Lo       HANGUL SYLLABLE GEO\n\t{0xAC71, 0xAC8B, prLVT},                    // Lo  [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH\n\t{0xAC8C, 0xAC8C, prLV},                     // Lo       HANGUL SYLLABLE GE\n\t{0xAC8D, 0xACA7, prLVT},                    // Lo  [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH\n\t{0xACA8, 0xACA8, prLV},                     // Lo       HANGUL SYLLABLE GYEO\n\t{0xACA9, 0xACC3, prLVT},                    // Lo  [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH\n\t{0xACC4, 0xACC4, prLV},                     // Lo       HANGUL SYLLABLE GYE\n\t{0xACC5, 0xACDF, prLVT},                    // Lo  [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH\n\t{0xACE0, 0xACE0, prLV},                     // Lo       HANGUL SYLLABLE GO\n\t{0xACE1, 0xACFB, prLVT},                    // Lo  [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH\n\t{0xACFC, 0xACFC, prLV},                     // Lo       HANGUL SYLLABLE GWA\n\t{0xACFD, 0xAD17, prLVT},                    // Lo  [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH\n\t{0xAD18, 0xAD18, prLV},                     // Lo       HANGUL SYLLABLE GWAE\n\t{0xAD19, 0xAD33, prLVT},                    // Lo  [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH\n\t{0xAD34, 0xAD34, prLV},                     // Lo       HANGUL SYLLABLE GOE\n\t{0xAD35, 0xAD4F, prLVT},                    // Lo  [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH\n\t{0xAD50, 0xAD50, prLV},                     // Lo       HANGUL SYLLABLE GYO\n\t{0xAD51, 0xAD6B, prLVT},                    // Lo  [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH\n\t{0xAD6C, 0xAD6C, prLV},                     // Lo       HANGUL SYLLABLE GU\n\t{0xAD6D, 0xAD87, prLVT},                    // Lo  [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH\n\t{0xAD88, 0xAD88, prLV},                     // Lo       HANGUL SYLLABLE GWEO\n\t{0xAD89, 0xADA3, prLVT},                    // Lo  [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH\n\t{0xADA4, 0xADA4, prLV},                     // Lo       HANGUL SYLLABLE GWE\n\t{0xADA5, 0xADBF, prLVT},                    // Lo  [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH\n\t{0xADC0, 0xADC0, prLV},                     // Lo       HANGUL SYLLABLE GWI\n\t{0xADC1, 0xADDB, prLVT},                    // Lo  [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH\n\t{0xADDC, 0xADDC, prLV},                     // Lo       HANGUL SYLLABLE GYU\n\t{0xADDD, 0xADF7, prLVT},                    // Lo  [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH\n\t{0xADF8, 0xADF8, prLV},                     // Lo       HANGUL SYLLABLE GEU\n\t{0xADF9, 0xAE13, prLVT},                    // Lo  [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH\n\t{0xAE14, 0xAE14, prLV},                     // Lo       HANGUL SYLLABLE GYI\n\t{0xAE15, 0xAE2F, prLVT},                    // Lo  [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH\n\t{0xAE30, 0xAE30, prLV},                     // Lo       HANGUL SYLLABLE GI\n\t{0xAE31, 0xAE4B, prLVT},                    // Lo  [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH\n\t{0xAE4C, 0xAE4C, prLV},                     // Lo       HANGUL SYLLABLE GGA\n\t{0xAE4D, 0xAE67, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH\n\t{0xAE68, 0xAE68, prLV},                     // Lo       HANGUL SYLLABLE GGAE\n\t{0xAE69, 0xAE83, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH\n\t{0xAE84, 0xAE84, prLV},                     // Lo       HANGUL SYLLABLE GGYA\n\t{0xAE85, 0xAE9F, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH\n\t{0xAEA0, 0xAEA0, prLV},                     // Lo       HANGUL SYLLABLE GGYAE\n\t{0xAEA1, 0xAEBB, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH\n\t{0xAEBC, 0xAEBC, prLV},                     // Lo       HANGUL SYLLABLE GGEO\n\t{0xAEBD, 0xAED7, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH\n\t{0xAED8, 0xAED8, prLV},                     // Lo       HANGUL SYLLABLE GGE\n\t{0xAED9, 0xAEF3, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH\n\t{0xAEF4, 0xAEF4, prLV},                     // Lo       HANGUL SYLLABLE GGYEO\n\t{0xAEF5, 0xAF0F, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH\n\t{0xAF10, 0xAF10, prLV},                     // Lo       HANGUL SYLLABLE GGYE\n\t{0xAF11, 0xAF2B, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH\n\t{0xAF2C, 0xAF2C, prLV},                     // Lo       HANGUL SYLLABLE GGO\n\t{0xAF2D, 0xAF47, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH\n\t{0xAF48, 0xAF48, prLV},                     // Lo       HANGUL SYLLABLE GGWA\n\t{0xAF49, 0xAF63, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH\n\t{0xAF64, 0xAF64, prLV},                     // Lo       HANGUL SYLLABLE GGWAE\n\t{0xAF65, 0xAF7F, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH\n\t{0xAF80, 0xAF80, prLV},                     // Lo       HANGUL SYLLABLE GGOE\n\t{0xAF81, 0xAF9B, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH\n\t{0xAF9C, 0xAF9C, prLV},                     // Lo       HANGUL SYLLABLE GGYO\n\t{0xAF9D, 0xAFB7, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH\n\t{0xAFB8, 0xAFB8, prLV},                     // Lo       HANGUL SYLLABLE GGU\n\t{0xAFB9, 0xAFD3, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH\n\t{0xAFD4, 0xAFD4, prLV},                     // Lo       HANGUL SYLLABLE GGWEO\n\t{0xAFD5, 0xAFEF, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH\n\t{0xAFF0, 0xAFF0, prLV},                     // Lo       HANGUL SYLLABLE GGWE\n\t{0xAFF1, 0xB00B, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH\n\t{0xB00C, 0xB00C, prLV},                     // Lo       HANGUL SYLLABLE GGWI\n\t{0xB00D, 0xB027, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH\n\t{0xB028, 0xB028, prLV},                     // Lo       HANGUL SYLLABLE GGYU\n\t{0xB029, 0xB043, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH\n\t{0xB044, 0xB044, prLV},                     // Lo       HANGUL SYLLABLE GGEU\n\t{0xB045, 0xB05F, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH\n\t{0xB060, 0xB060, prLV},                     // Lo       HANGUL SYLLABLE GGYI\n\t{0xB061, 0xB07B, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH\n\t{0xB07C, 0xB07C, prLV},                     // Lo       HANGUL SYLLABLE GGI\n\t{0xB07D, 0xB097, prLVT},                    // Lo  [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH\n\t{0xB098, 0xB098, prLV},                     // Lo       HANGUL SYLLABLE NA\n\t{0xB099, 0xB0B3, prLVT},                    // Lo  [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH\n\t{0xB0B4, 0xB0B4, prLV},                     // Lo       HANGUL SYLLABLE NAE\n\t{0xB0B5, 0xB0CF, prLVT},                    // Lo  [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH\n\t{0xB0D0, 0xB0D0, prLV},                     // Lo       HANGUL SYLLABLE NYA\n\t{0xB0D1, 0xB0EB, prLVT},                    // Lo  [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH\n\t{0xB0EC, 0xB0EC, prLV},                     // Lo       HANGUL SYLLABLE NYAE\n\t{0xB0ED, 0xB107, prLVT},                    // Lo  [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH\n\t{0xB108, 0xB108, prLV},                     // Lo       HANGUL SYLLABLE NEO\n\t{0xB109, 0xB123, prLVT},                    // Lo  [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH\n\t{0xB124, 0xB124, prLV},                     // Lo       HANGUL SYLLABLE NE\n\t{0xB125, 0xB13F, prLVT},                    // Lo  [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH\n\t{0xB140, 0xB140, prLV},                     // Lo       HANGUL SYLLABLE NYEO\n\t{0xB141, 0xB15B, prLVT},                    // Lo  [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH\n\t{0xB15C, 0xB15C, prLV},                     // Lo       HANGUL SYLLABLE NYE\n\t{0xB15D, 0xB177, prLVT},                    // Lo  [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH\n\t{0xB178, 0xB178, prLV},                     // Lo       HANGUL SYLLABLE NO\n\t{0xB179, 0xB193, prLVT},                    // Lo  [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH\n\t{0xB194, 0xB194, prLV},                     // Lo       HANGUL SYLLABLE NWA\n\t{0xB195, 0xB1AF, prLVT},                    // Lo  [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH\n\t{0xB1B0, 0xB1B0, prLV},                     // Lo       HANGUL SYLLABLE NWAE\n\t{0xB1B1, 0xB1CB, prLVT},                    // Lo  [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH\n\t{0xB1CC, 0xB1CC, prLV},                     // Lo       HANGUL SYLLABLE NOE\n\t{0xB1CD, 0xB1E7, prLVT},                    // Lo  [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH\n\t{0xB1E8, 0xB1E8, prLV},                     // Lo       HANGUL SYLLABLE NYO\n\t{0xB1E9, 0xB203, prLVT},                    // Lo  [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH\n\t{0xB204, 0xB204, prLV},                     // Lo       HANGUL SYLLABLE NU\n\t{0xB205, 0xB21F, prLVT},                    // Lo  [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH\n\t{0xB220, 0xB220, prLV},                     // Lo       HANGUL SYLLABLE NWEO\n\t{0xB221, 0xB23B, prLVT},                    // Lo  [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH\n\t{0xB23C, 0xB23C, prLV},                     // Lo       HANGUL SYLLABLE NWE\n\t{0xB23D, 0xB257, prLVT},                    // Lo  [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH\n\t{0xB258, 0xB258, prLV},                     // Lo       HANGUL SYLLABLE NWI\n\t{0xB259, 0xB273, prLVT},                    // Lo  [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH\n\t{0xB274, 0xB274, prLV},                     // Lo       HANGUL SYLLABLE NYU\n\t{0xB275, 0xB28F, prLVT},                    // Lo  [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH\n\t{0xB290, 0xB290, prLV},                     // Lo       HANGUL SYLLABLE NEU\n\t{0xB291, 0xB2AB, prLVT},                    // Lo  [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH\n\t{0xB2AC, 0xB2AC, prLV},                     // Lo       HANGUL SYLLABLE NYI\n\t{0xB2AD, 0xB2C7, prLVT},                    // Lo  [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH\n\t{0xB2C8, 0xB2C8, prLV},                     // Lo       HANGUL SYLLABLE NI\n\t{0xB2C9, 0xB2E3, prLVT},                    // Lo  [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH\n\t{0xB2E4, 0xB2E4, prLV},                     // Lo       HANGUL SYLLABLE DA\n\t{0xB2E5, 0xB2FF, prLVT},                    // Lo  [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH\n\t{0xB300, 0xB300, prLV},                     // Lo       HANGUL SYLLABLE DAE\n\t{0xB301, 0xB31B, prLVT},                    // Lo  [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH\n\t{0xB31C, 0xB31C, prLV},                     // Lo       HANGUL SYLLABLE DYA\n\t{0xB31D, 0xB337, prLVT},                    // Lo  [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH\n\t{0xB338, 0xB338, prLV},                     // Lo       HANGUL SYLLABLE DYAE\n\t{0xB339, 0xB353, prLVT},                    // Lo  [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH\n\t{0xB354, 0xB354, prLV},                     // Lo       HANGUL SYLLABLE DEO\n\t{0xB355, 0xB36F, prLVT},                    // Lo  [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH\n\t{0xB370, 0xB370, prLV},                     // Lo       HANGUL SYLLABLE DE\n\t{0xB371, 0xB38B, prLVT},                    // Lo  [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH\n\t{0xB38C, 0xB38C, prLV},                     // Lo       HANGUL SYLLABLE DYEO\n\t{0xB38D, 0xB3A7, prLVT},                    // Lo  [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH\n\t{0xB3A8, 0xB3A8, prLV},                     // Lo       HANGUL SYLLABLE DYE\n\t{0xB3A9, 0xB3C3, prLVT},                    // Lo  [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH\n\t{0xB3C4, 0xB3C4, prLV},                     // Lo       HANGUL SYLLABLE DO\n\t{0xB3C5, 0xB3DF, prLVT},                    // Lo  [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH\n\t{0xB3E0, 0xB3E0, prLV},                     // Lo       HANGUL SYLLABLE DWA\n\t{0xB3E1, 0xB3FB, prLVT},                    // Lo  [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH\n\t{0xB3FC, 0xB3FC, prLV},                     // Lo       HANGUL SYLLABLE DWAE\n\t{0xB3FD, 0xB417, prLVT},                    // Lo  [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH\n\t{0xB418, 0xB418, prLV},                     // Lo       HANGUL SYLLABLE DOE\n\t{0xB419, 0xB433, prLVT},                    // Lo  [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH\n\t{0xB434, 0xB434, prLV},                     // Lo       HANGUL SYLLABLE DYO\n\t{0xB435, 0xB44F, prLVT},                    // Lo  [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH\n\t{0xB450, 0xB450, prLV},                     // Lo       HANGUL SYLLABLE DU\n\t{0xB451, 0xB46B, prLVT},                    // Lo  [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH\n\t{0xB46C, 0xB46C, prLV},                     // Lo       HANGUL SYLLABLE DWEO\n\t{0xB46D, 0xB487, prLVT},                    // Lo  [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH\n\t{0xB488, 0xB488, prLV},                     // Lo       HANGUL SYLLABLE DWE\n\t{0xB489, 0xB4A3, prLVT},                    // Lo  [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH\n\t{0xB4A4, 0xB4A4, prLV},                     // Lo       HANGUL SYLLABLE DWI\n\t{0xB4A5, 0xB4BF, prLVT},                    // Lo  [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH\n\t{0xB4C0, 0xB4C0, prLV},                     // Lo       HANGUL SYLLABLE DYU\n\t{0xB4C1, 0xB4DB, prLVT},                    // Lo  [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH\n\t{0xB4DC, 0xB4DC, prLV},                     // Lo       HANGUL SYLLABLE DEU\n\t{0xB4DD, 0xB4F7, prLVT},                    // Lo  [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH\n\t{0xB4F8, 0xB4F8, prLV},                     // Lo       HANGUL SYLLABLE DYI\n\t{0xB4F9, 0xB513, prLVT},                    // Lo  [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH\n\t{0xB514, 0xB514, prLV},                     // Lo       HANGUL SYLLABLE DI\n\t{0xB515, 0xB52F, prLVT},                    // Lo  [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH\n\t{0xB530, 0xB530, prLV},                     // Lo       HANGUL SYLLABLE DDA\n\t{0xB531, 0xB54B, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH\n\t{0xB54C, 0xB54C, prLV},                     // Lo       HANGUL SYLLABLE DDAE\n\t{0xB54D, 0xB567, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH\n\t{0xB568, 0xB568, prLV},                     // Lo       HANGUL SYLLABLE DDYA\n\t{0xB569, 0xB583, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH\n\t{0xB584, 0xB584, prLV},                     // Lo       HANGUL SYLLABLE DDYAE\n\t{0xB585, 0xB59F, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH\n\t{0xB5A0, 0xB5A0, prLV},                     // Lo       HANGUL SYLLABLE DDEO\n\t{0xB5A1, 0xB5BB, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH\n\t{0xB5BC, 0xB5BC, prLV},                     // Lo       HANGUL SYLLABLE DDE\n\t{0xB5BD, 0xB5D7, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH\n\t{0xB5D8, 0xB5D8, prLV},                     // Lo       HANGUL SYLLABLE DDYEO\n\t{0xB5D9, 0xB5F3, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH\n\t{0xB5F4, 0xB5F4, prLV},                     // Lo       HANGUL SYLLABLE DDYE\n\t{0xB5F5, 0xB60F, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH\n\t{0xB610, 0xB610, prLV},                     // Lo       HANGUL SYLLABLE DDO\n\t{0xB611, 0xB62B, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH\n\t{0xB62C, 0xB62C, prLV},                     // Lo       HANGUL SYLLABLE DDWA\n\t{0xB62D, 0xB647, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH\n\t{0xB648, 0xB648, prLV},                     // Lo       HANGUL SYLLABLE DDWAE\n\t{0xB649, 0xB663, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH\n\t{0xB664, 0xB664, prLV},                     // Lo       HANGUL SYLLABLE DDOE\n\t{0xB665, 0xB67F, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH\n\t{0xB680, 0xB680, prLV},                     // Lo       HANGUL SYLLABLE DDYO\n\t{0xB681, 0xB69B, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH\n\t{0xB69C, 0xB69C, prLV},                     // Lo       HANGUL SYLLABLE DDU\n\t{0xB69D, 0xB6B7, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH\n\t{0xB6B8, 0xB6B8, prLV},                     // Lo       HANGUL SYLLABLE DDWEO\n\t{0xB6B9, 0xB6D3, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH\n\t{0xB6D4, 0xB6D4, prLV},                     // Lo       HANGUL SYLLABLE DDWE\n\t{0xB6D5, 0xB6EF, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH\n\t{0xB6F0, 0xB6F0, prLV},                     // Lo       HANGUL SYLLABLE DDWI\n\t{0xB6F1, 0xB70B, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH\n\t{0xB70C, 0xB70C, prLV},                     // Lo       HANGUL SYLLABLE DDYU\n\t{0xB70D, 0xB727, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH\n\t{0xB728, 0xB728, prLV},                     // Lo       HANGUL SYLLABLE DDEU\n\t{0xB729, 0xB743, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH\n\t{0xB744, 0xB744, prLV},                     // Lo       HANGUL SYLLABLE DDYI\n\t{0xB745, 0xB75F, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH\n\t{0xB760, 0xB760, prLV},                     // Lo       HANGUL SYLLABLE DDI\n\t{0xB761, 0xB77B, prLVT},                    // Lo  [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH\n\t{0xB77C, 0xB77C, prLV},                     // Lo       HANGUL SYLLABLE RA\n\t{0xB77D, 0xB797, prLVT},                    // Lo  [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH\n\t{0xB798, 0xB798, prLV},                     // Lo       HANGUL SYLLABLE RAE\n\t{0xB799, 0xB7B3, prLVT},                    // Lo  [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH\n\t{0xB7B4, 0xB7B4, prLV},                     // Lo       HANGUL SYLLABLE RYA\n\t{0xB7B5, 0xB7CF, prLVT},                    // Lo  [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH\n\t{0xB7D0, 0xB7D0, prLV},                     // Lo       HANGUL SYLLABLE RYAE\n\t{0xB7D1, 0xB7EB, prLVT},                    // Lo  [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH\n\t{0xB7EC, 0xB7EC, prLV},                     // Lo       HANGUL SYLLABLE REO\n\t{0xB7ED, 0xB807, prLVT},                    // Lo  [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH\n\t{0xB808, 0xB808, prLV},                     // Lo       HANGUL SYLLABLE RE\n\t{0xB809, 0xB823, prLVT},                    // Lo  [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH\n\t{0xB824, 0xB824, prLV},                     // Lo       HANGUL SYLLABLE RYEO\n\t{0xB825, 0xB83F, prLVT},                    // Lo  [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH\n\t{0xB840, 0xB840, prLV},                     // Lo       HANGUL SYLLABLE RYE\n\t{0xB841, 0xB85B, prLVT},                    // Lo  [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH\n\t{0xB85C, 0xB85C, prLV},                     // Lo       HANGUL SYLLABLE RO\n\t{0xB85D, 0xB877, prLVT},                    // Lo  [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH\n\t{0xB878, 0xB878, prLV},                     // Lo       HANGUL SYLLABLE RWA\n\t{0xB879, 0xB893, prLVT},                    // Lo  [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH\n\t{0xB894, 0xB894, prLV},                     // Lo       HANGUL SYLLABLE RWAE\n\t{0xB895, 0xB8AF, prLVT},                    // Lo  [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH\n\t{0xB8B0, 0xB8B0, prLV},                     // Lo       HANGUL SYLLABLE ROE\n\t{0xB8B1, 0xB8CB, prLVT},                    // Lo  [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH\n\t{0xB8CC, 0xB8CC, prLV},                     // Lo       HANGUL SYLLABLE RYO\n\t{0xB8CD, 0xB8E7, prLVT},                    // Lo  [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH\n\t{0xB8E8, 0xB8E8, prLV},                     // Lo       HANGUL SYLLABLE RU\n\t{0xB8E9, 0xB903, prLVT},                    // Lo  [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH\n\t{0xB904, 0xB904, prLV},                     // Lo       HANGUL SYLLABLE RWEO\n\t{0xB905, 0xB91F, prLVT},                    // Lo  [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH\n\t{0xB920, 0xB920, prLV},                     // Lo       HANGUL SYLLABLE RWE\n\t{0xB921, 0xB93B, prLVT},                    // Lo  [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH\n\t{0xB93C, 0xB93C, prLV},                     // Lo       HANGUL SYLLABLE RWI\n\t{0xB93D, 0xB957, prLVT},                    // Lo  [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH\n\t{0xB958, 0xB958, prLV},                     // Lo       HANGUL SYLLABLE RYU\n\t{0xB959, 0xB973, prLVT},                    // Lo  [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH\n\t{0xB974, 0xB974, prLV},                     // Lo       HANGUL SYLLABLE REU\n\t{0xB975, 0xB98F, prLVT},                    // Lo  [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH\n\t{0xB990, 0xB990, prLV},                     // Lo       HANGUL SYLLABLE RYI\n\t{0xB991, 0xB9AB, prLVT},                    // Lo  [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH\n\t{0xB9AC, 0xB9AC, prLV},                     // Lo       HANGUL SYLLABLE RI\n\t{0xB9AD, 0xB9C7, prLVT},                    // Lo  [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH\n\t{0xB9C8, 0xB9C8, prLV},                     // Lo       HANGUL SYLLABLE MA\n\t{0xB9C9, 0xB9E3, prLVT},                    // Lo  [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH\n\t{0xB9E4, 0xB9E4, prLV},                     // Lo       HANGUL SYLLABLE MAE\n\t{0xB9E5, 0xB9FF, prLVT},                    // Lo  [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH\n\t{0xBA00, 0xBA00, prLV},                     // Lo       HANGUL SYLLABLE MYA\n\t{0xBA01, 0xBA1B, prLVT},                    // Lo  [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH\n\t{0xBA1C, 0xBA1C, prLV},                     // Lo       HANGUL SYLLABLE MYAE\n\t{0xBA1D, 0xBA37, prLVT},                    // Lo  [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH\n\t{0xBA38, 0xBA38, prLV},                     // Lo       HANGUL SYLLABLE MEO\n\t{0xBA39, 0xBA53, prLVT},                    // Lo  [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH\n\t{0xBA54, 0xBA54, prLV},                     // Lo       HANGUL SYLLABLE ME\n\t{0xBA55, 0xBA6F, prLVT},                    // Lo  [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH\n\t{0xBA70, 0xBA70, prLV},                     // Lo       HANGUL SYLLABLE MYEO\n\t{0xBA71, 0xBA8B, prLVT},                    // Lo  [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH\n\t{0xBA8C, 0xBA8C, prLV},                     // Lo       HANGUL SYLLABLE MYE\n\t{0xBA8D, 0xBAA7, prLVT},                    // Lo  [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH\n\t{0xBAA8, 0xBAA8, prLV},                     // Lo       HANGUL SYLLABLE MO\n\t{0xBAA9, 0xBAC3, prLVT},                    // Lo  [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH\n\t{0xBAC4, 0xBAC4, prLV},                     // Lo       HANGUL SYLLABLE MWA\n\t{0xBAC5, 0xBADF, prLVT},                    // Lo  [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH\n\t{0xBAE0, 0xBAE0, prLV},                     // Lo       HANGUL SYLLABLE MWAE\n\t{0xBAE1, 0xBAFB, prLVT},                    // Lo  [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH\n\t{0xBAFC, 0xBAFC, prLV},                     // Lo       HANGUL SYLLABLE MOE\n\t{0xBAFD, 0xBB17, prLVT},                    // Lo  [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH\n\t{0xBB18, 0xBB18, prLV},                     // Lo       HANGUL SYLLABLE MYO\n\t{0xBB19, 0xBB33, prLVT},                    // Lo  [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH\n\t{0xBB34, 0xBB34, prLV},                     // Lo       HANGUL SYLLABLE MU\n\t{0xBB35, 0xBB4F, prLVT},                    // Lo  [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH\n\t{0xBB50, 0xBB50, prLV},                     // Lo       HANGUL SYLLABLE MWEO\n\t{0xBB51, 0xBB6B, prLVT},                    // Lo  [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH\n\t{0xBB6C, 0xBB6C, prLV},                     // Lo       HANGUL SYLLABLE MWE\n\t{0xBB6D, 0xBB87, prLVT},                    // Lo  [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH\n\t{0xBB88, 0xBB88, prLV},                     // Lo       HANGUL SYLLABLE MWI\n\t{0xBB89, 0xBBA3, prLVT},                    // Lo  [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH\n\t{0xBBA4, 0xBBA4, prLV},                     // Lo       HANGUL SYLLABLE MYU\n\t{0xBBA5, 0xBBBF, prLVT},                    // Lo  [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH\n\t{0xBBC0, 0xBBC0, prLV},                     // Lo       HANGUL SYLLABLE MEU\n\t{0xBBC1, 0xBBDB, prLVT},                    // Lo  [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH\n\t{0xBBDC, 0xBBDC, prLV},                     // Lo       HANGUL SYLLABLE MYI\n\t{0xBBDD, 0xBBF7, prLVT},                    // Lo  [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH\n\t{0xBBF8, 0xBBF8, prLV},                     // Lo       HANGUL SYLLABLE MI\n\t{0xBBF9, 0xBC13, prLVT},                    // Lo  [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH\n\t{0xBC14, 0xBC14, prLV},                     // Lo       HANGUL SYLLABLE BA\n\t{0xBC15, 0xBC2F, prLVT},                    // Lo  [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH\n\t{0xBC30, 0xBC30, prLV},                     // Lo       HANGUL SYLLABLE BAE\n\t{0xBC31, 0xBC4B, prLVT},                    // Lo  [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH\n\t{0xBC4C, 0xBC4C, prLV},                     // Lo       HANGUL SYLLABLE BYA\n\t{0xBC4D, 0xBC67, prLVT},                    // Lo  [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH\n\t{0xBC68, 0xBC68, prLV},                     // Lo       HANGUL SYLLABLE BYAE\n\t{0xBC69, 0xBC83, prLVT},                    // Lo  [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH\n\t{0xBC84, 0xBC84, prLV},                     // Lo       HANGUL SYLLABLE BEO\n\t{0xBC85, 0xBC9F, prLVT},                    // Lo  [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH\n\t{0xBCA0, 0xBCA0, prLV},                     // Lo       HANGUL SYLLABLE BE\n\t{0xBCA1, 0xBCBB, prLVT},                    // Lo  [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH\n\t{0xBCBC, 0xBCBC, prLV},                     // Lo       HANGUL SYLLABLE BYEO\n\t{0xBCBD, 0xBCD7, prLVT},                    // Lo  [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH\n\t{0xBCD8, 0xBCD8, prLV},                     // Lo       HANGUL SYLLABLE BYE\n\t{0xBCD9, 0xBCF3, prLVT},                    // Lo  [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH\n\t{0xBCF4, 0xBCF4, prLV},                     // Lo       HANGUL SYLLABLE BO\n\t{0xBCF5, 0xBD0F, prLVT},                    // Lo  [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH\n\t{0xBD10, 0xBD10, prLV},                     // Lo       HANGUL SYLLABLE BWA\n\t{0xBD11, 0xBD2B, prLVT},                    // Lo  [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH\n\t{0xBD2C, 0xBD2C, prLV},                     // Lo       HANGUL SYLLABLE BWAE\n\t{0xBD2D, 0xBD47, prLVT},                    // Lo  [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH\n\t{0xBD48, 0xBD48, prLV},                     // Lo       HANGUL SYLLABLE BOE\n\t{0xBD49, 0xBD63, prLVT},                    // Lo  [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH\n\t{0xBD64, 0xBD64, prLV},                     // Lo       HANGUL SYLLABLE BYO\n\t{0xBD65, 0xBD7F, prLVT},                    // Lo  [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH\n\t{0xBD80, 0xBD80, prLV},                     // Lo       HANGUL SYLLABLE BU\n\t{0xBD81, 0xBD9B, prLVT},                    // Lo  [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH\n\t{0xBD9C, 0xBD9C, prLV},                     // Lo       HANGUL SYLLABLE BWEO\n\t{0xBD9D, 0xBDB7, prLVT},                    // Lo  [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH\n\t{0xBDB8, 0xBDB8, prLV},                     // Lo       HANGUL SYLLABLE BWE\n\t{0xBDB9, 0xBDD3, prLVT},                    // Lo  [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH\n\t{0xBDD4, 0xBDD4, prLV},                     // Lo       HANGUL SYLLABLE BWI\n\t{0xBDD5, 0xBDEF, prLVT},                    // Lo  [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH\n\t{0xBDF0, 0xBDF0, prLV},                     // Lo       HANGUL SYLLABLE BYU\n\t{0xBDF1, 0xBE0B, prLVT},                    // Lo  [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH\n\t{0xBE0C, 0xBE0C, prLV},                     // Lo       HANGUL SYLLABLE BEU\n\t{0xBE0D, 0xBE27, prLVT},                    // Lo  [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH\n\t{0xBE28, 0xBE28, prLV},                     // Lo       HANGUL SYLLABLE BYI\n\t{0xBE29, 0xBE43, prLVT},                    // Lo  [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH\n\t{0xBE44, 0xBE44, prLV},                     // Lo       HANGUL SYLLABLE BI\n\t{0xBE45, 0xBE5F, prLVT},                    // Lo  [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH\n\t{0xBE60, 0xBE60, prLV},                     // Lo       HANGUL SYLLABLE BBA\n\t{0xBE61, 0xBE7B, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH\n\t{0xBE7C, 0xBE7C, prLV},                     // Lo       HANGUL SYLLABLE BBAE\n\t{0xBE7D, 0xBE97, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH\n\t{0xBE98, 0xBE98, prLV},                     // Lo       HANGUL SYLLABLE BBYA\n\t{0xBE99, 0xBEB3, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH\n\t{0xBEB4, 0xBEB4, prLV},                     // Lo       HANGUL SYLLABLE BBYAE\n\t{0xBEB5, 0xBECF, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH\n\t{0xBED0, 0xBED0, prLV},                     // Lo       HANGUL SYLLABLE BBEO\n\t{0xBED1, 0xBEEB, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH\n\t{0xBEEC, 0xBEEC, prLV},                     // Lo       HANGUL SYLLABLE BBE\n\t{0xBEED, 0xBF07, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH\n\t{0xBF08, 0xBF08, prLV},                     // Lo       HANGUL SYLLABLE BBYEO\n\t{0xBF09, 0xBF23, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH\n\t{0xBF24, 0xBF24, prLV},                     // Lo       HANGUL SYLLABLE BBYE\n\t{0xBF25, 0xBF3F, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH\n\t{0xBF40, 0xBF40, prLV},                     // Lo       HANGUL SYLLABLE BBO\n\t{0xBF41, 0xBF5B, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH\n\t{0xBF5C, 0xBF5C, prLV},                     // Lo       HANGUL SYLLABLE BBWA\n\t{0xBF5D, 0xBF77, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH\n\t{0xBF78, 0xBF78, prLV},                     // Lo       HANGUL SYLLABLE BBWAE\n\t{0xBF79, 0xBF93, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH\n\t{0xBF94, 0xBF94, prLV},                     // Lo       HANGUL SYLLABLE BBOE\n\t{0xBF95, 0xBFAF, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH\n\t{0xBFB0, 0xBFB0, prLV},                     // Lo       HANGUL SYLLABLE BBYO\n\t{0xBFB1, 0xBFCB, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH\n\t{0xBFCC, 0xBFCC, prLV},                     // Lo       HANGUL SYLLABLE BBU\n\t{0xBFCD, 0xBFE7, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH\n\t{0xBFE8, 0xBFE8, prLV},                     // Lo       HANGUL SYLLABLE BBWEO\n\t{0xBFE9, 0xC003, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH\n\t{0xC004, 0xC004, prLV},                     // Lo       HANGUL SYLLABLE BBWE\n\t{0xC005, 0xC01F, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH\n\t{0xC020, 0xC020, prLV},                     // Lo       HANGUL SYLLABLE BBWI\n\t{0xC021, 0xC03B, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH\n\t{0xC03C, 0xC03C, prLV},                     // Lo       HANGUL SYLLABLE BBYU\n\t{0xC03D, 0xC057, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH\n\t{0xC058, 0xC058, prLV},                     // Lo       HANGUL SYLLABLE BBEU\n\t{0xC059, 0xC073, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH\n\t{0xC074, 0xC074, prLV},                     // Lo       HANGUL SYLLABLE BBYI\n\t{0xC075, 0xC08F, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH\n\t{0xC090, 0xC090, prLV},                     // Lo       HANGUL SYLLABLE BBI\n\t{0xC091, 0xC0AB, prLVT},                    // Lo  [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH\n\t{0xC0AC, 0xC0AC, prLV},                     // Lo       HANGUL SYLLABLE SA\n\t{0xC0AD, 0xC0C7, prLVT},                    // Lo  [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH\n\t{0xC0C8, 0xC0C8, prLV},                     // Lo       HANGUL SYLLABLE SAE\n\t{0xC0C9, 0xC0E3, prLVT},                    // Lo  [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH\n\t{0xC0E4, 0xC0E4, prLV},                     // Lo       HANGUL SYLLABLE SYA\n\t{0xC0E5, 0xC0FF, prLVT},                    // Lo  [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH\n\t{0xC100, 0xC100, prLV},                     // Lo       HANGUL SYLLABLE SYAE\n\t{0xC101, 0xC11B, prLVT},                    // Lo  [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH\n\t{0xC11C, 0xC11C, prLV},                     // Lo       HANGUL SYLLABLE SEO\n\t{0xC11D, 0xC137, prLVT},                    // Lo  [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH\n\t{0xC138, 0xC138, prLV},                     // Lo       HANGUL SYLLABLE SE\n\t{0xC139, 0xC153, prLVT},                    // Lo  [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH\n\t{0xC154, 0xC154, prLV},                     // Lo       HANGUL SYLLABLE SYEO\n\t{0xC155, 0xC16F, prLVT},                    // Lo  [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH\n\t{0xC170, 0xC170, prLV},                     // Lo       HANGUL SYLLABLE SYE\n\t{0xC171, 0xC18B, prLVT},                    // Lo  [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH\n\t{0xC18C, 0xC18C, prLV},                     // Lo       HANGUL SYLLABLE SO\n\t{0xC18D, 0xC1A7, prLVT},                    // Lo  [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH\n\t{0xC1A8, 0xC1A8, prLV},                     // Lo       HANGUL SYLLABLE SWA\n\t{0xC1A9, 0xC1C3, prLVT},                    // Lo  [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH\n\t{0xC1C4, 0xC1C4, prLV},                     // Lo       HANGUL SYLLABLE SWAE\n\t{0xC1C5, 0xC1DF, prLVT},                    // Lo  [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH\n\t{0xC1E0, 0xC1E0, prLV},                     // Lo       HANGUL SYLLABLE SOE\n\t{0xC1E1, 0xC1FB, prLVT},                    // Lo  [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH\n\t{0xC1FC, 0xC1FC, prLV},                     // Lo       HANGUL SYLLABLE SYO\n\t{0xC1FD, 0xC217, prLVT},                    // Lo  [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH\n\t{0xC218, 0xC218, prLV},                     // Lo       HANGUL SYLLABLE SU\n\t{0xC219, 0xC233, prLVT},                    // Lo  [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH\n\t{0xC234, 0xC234, prLV},                     // Lo       HANGUL SYLLABLE SWEO\n\t{0xC235, 0xC24F, prLVT},                    // Lo  [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH\n\t{0xC250, 0xC250, prLV},                     // Lo       HANGUL SYLLABLE SWE\n\t{0xC251, 0xC26B, prLVT},                    // Lo  [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH\n\t{0xC26C, 0xC26C, prLV},                     // Lo       HANGUL SYLLABLE SWI\n\t{0xC26D, 0xC287, prLVT},                    // Lo  [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH\n\t{0xC288, 0xC288, prLV},                     // Lo       HANGUL SYLLABLE SYU\n\t{0xC289, 0xC2A3, prLVT},                    // Lo  [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH\n\t{0xC2A4, 0xC2A4, prLV},                     // Lo       HANGUL SYLLABLE SEU\n\t{0xC2A5, 0xC2BF, prLVT},                    // Lo  [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH\n\t{0xC2C0, 0xC2C0, prLV},                     // Lo       HANGUL SYLLABLE SYI\n\t{0xC2C1, 0xC2DB, prLVT},                    // Lo  [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH\n\t{0xC2DC, 0xC2DC, prLV},                     // Lo       HANGUL SYLLABLE SI\n\t{0xC2DD, 0xC2F7, prLVT},                    // Lo  [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH\n\t{0xC2F8, 0xC2F8, prLV},                     // Lo       HANGUL SYLLABLE SSA\n\t{0xC2F9, 0xC313, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH\n\t{0xC314, 0xC314, prLV},                     // Lo       HANGUL SYLLABLE SSAE\n\t{0xC315, 0xC32F, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH\n\t{0xC330, 0xC330, prLV},                     // Lo       HANGUL SYLLABLE SSYA\n\t{0xC331, 0xC34B, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH\n\t{0xC34C, 0xC34C, prLV},                     // Lo       HANGUL SYLLABLE SSYAE\n\t{0xC34D, 0xC367, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH\n\t{0xC368, 0xC368, prLV},                     // Lo       HANGUL SYLLABLE SSEO\n\t{0xC369, 0xC383, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH\n\t{0xC384, 0xC384, prLV},                     // Lo       HANGUL SYLLABLE SSE\n\t{0xC385, 0xC39F, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH\n\t{0xC3A0, 0xC3A0, prLV},                     // Lo       HANGUL SYLLABLE SSYEO\n\t{0xC3A1, 0xC3BB, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH\n\t{0xC3BC, 0xC3BC, prLV},                     // Lo       HANGUL SYLLABLE SSYE\n\t{0xC3BD, 0xC3D7, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH\n\t{0xC3D8, 0xC3D8, prLV},                     // Lo       HANGUL SYLLABLE SSO\n\t{0xC3D9, 0xC3F3, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH\n\t{0xC3F4, 0xC3F4, prLV},                     // Lo       HANGUL SYLLABLE SSWA\n\t{0xC3F5, 0xC40F, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH\n\t{0xC410, 0xC410, prLV},                     // Lo       HANGUL SYLLABLE SSWAE\n\t{0xC411, 0xC42B, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH\n\t{0xC42C, 0xC42C, prLV},                     // Lo       HANGUL SYLLABLE SSOE\n\t{0xC42D, 0xC447, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH\n\t{0xC448, 0xC448, prLV},                     // Lo       HANGUL SYLLABLE SSYO\n\t{0xC449, 0xC463, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH\n\t{0xC464, 0xC464, prLV},                     // Lo       HANGUL SYLLABLE SSU\n\t{0xC465, 0xC47F, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH\n\t{0xC480, 0xC480, prLV},                     // Lo       HANGUL SYLLABLE SSWEO\n\t{0xC481, 0xC49B, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH\n\t{0xC49C, 0xC49C, prLV},                     // Lo       HANGUL SYLLABLE SSWE\n\t{0xC49D, 0xC4B7, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH\n\t{0xC4B8, 0xC4B8, prLV},                     // Lo       HANGUL SYLLABLE SSWI\n\t{0xC4B9, 0xC4D3, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH\n\t{0xC4D4, 0xC4D4, prLV},                     // Lo       HANGUL SYLLABLE SSYU\n\t{0xC4D5, 0xC4EF, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH\n\t{0xC4F0, 0xC4F0, prLV},                     // Lo       HANGUL SYLLABLE SSEU\n\t{0xC4F1, 0xC50B, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH\n\t{0xC50C, 0xC50C, prLV},                     // Lo       HANGUL SYLLABLE SSYI\n\t{0xC50D, 0xC527, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH\n\t{0xC528, 0xC528, prLV},                     // Lo       HANGUL SYLLABLE SSI\n\t{0xC529, 0xC543, prLVT},                    // Lo  [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH\n\t{0xC544, 0xC544, prLV},                     // Lo       HANGUL SYLLABLE A\n\t{0xC545, 0xC55F, prLVT},                    // Lo  [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH\n\t{0xC560, 0xC560, prLV},                     // Lo       HANGUL SYLLABLE AE\n\t{0xC561, 0xC57B, prLVT},                    // Lo  [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH\n\t{0xC57C, 0xC57C, prLV},                     // Lo       HANGUL SYLLABLE YA\n\t{0xC57D, 0xC597, prLVT},                    // Lo  [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH\n\t{0xC598, 0xC598, prLV},                     // Lo       HANGUL SYLLABLE YAE\n\t{0xC599, 0xC5B3, prLVT},                    // Lo  [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH\n\t{0xC5B4, 0xC5B4, prLV},                     // Lo       HANGUL SYLLABLE EO\n\t{0xC5B5, 0xC5CF, prLVT},                    // Lo  [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH\n\t{0xC5D0, 0xC5D0, prLV},                     // Lo       HANGUL SYLLABLE E\n\t{0xC5D1, 0xC5EB, prLVT},                    // Lo  [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH\n\t{0xC5EC, 0xC5EC, prLV},                     // Lo       HANGUL SYLLABLE YEO\n\t{0xC5ED, 0xC607, prLVT},                    // Lo  [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH\n\t{0xC608, 0xC608, prLV},                     // Lo       HANGUL SYLLABLE YE\n\t{0xC609, 0xC623, prLVT},                    // Lo  [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH\n\t{0xC624, 0xC624, prLV},                     // Lo       HANGUL SYLLABLE O\n\t{0xC625, 0xC63F, prLVT},                    // Lo  [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH\n\t{0xC640, 0xC640, prLV},                     // Lo       HANGUL SYLLABLE WA\n\t{0xC641, 0xC65B, prLVT},                    // Lo  [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH\n\t{0xC65C, 0xC65C, prLV},                     // Lo       HANGUL SYLLABLE WAE\n\t{0xC65D, 0xC677, prLVT},                    // Lo  [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH\n\t{0xC678, 0xC678, prLV},                     // Lo       HANGUL SYLLABLE OE\n\t{0xC679, 0xC693, prLVT},                    // Lo  [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH\n\t{0xC694, 0xC694, prLV},                     // Lo       HANGUL SYLLABLE YO\n\t{0xC695, 0xC6AF, prLVT},                    // Lo  [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH\n\t{0xC6B0, 0xC6B0, prLV},                     // Lo       HANGUL SYLLABLE U\n\t{0xC6B1, 0xC6CB, prLVT},                    // Lo  [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH\n\t{0xC6CC, 0xC6CC, prLV},                     // Lo       HANGUL SYLLABLE WEO\n\t{0xC6CD, 0xC6E7, prLVT},                    // Lo  [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH\n\t{0xC6E8, 0xC6E8, prLV},                     // Lo       HANGUL SYLLABLE WE\n\t{0xC6E9, 0xC703, prLVT},                    // Lo  [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH\n\t{0xC704, 0xC704, prLV},                     // Lo       HANGUL SYLLABLE WI\n\t{0xC705, 0xC71F, prLVT},                    // Lo  [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH\n\t{0xC720, 0xC720, prLV},                     // Lo       HANGUL SYLLABLE YU\n\t{0xC721, 0xC73B, prLVT},                    // Lo  [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH\n\t{0xC73C, 0xC73C, prLV},                     // Lo       HANGUL SYLLABLE EU\n\t{0xC73D, 0xC757, prLVT},                    // Lo  [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH\n\t{0xC758, 0xC758, prLV},                     // Lo       HANGUL SYLLABLE YI\n\t{0xC759, 0xC773, prLVT},                    // Lo  [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH\n\t{0xC774, 0xC774, prLV},                     // Lo       HANGUL SYLLABLE I\n\t{0xC775, 0xC78F, prLVT},                    // Lo  [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH\n\t{0xC790, 0xC790, prLV},                     // Lo       HANGUL SYLLABLE JA\n\t{0xC791, 0xC7AB, prLVT},                    // Lo  [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH\n\t{0xC7AC, 0xC7AC, prLV},                     // Lo       HANGUL SYLLABLE JAE\n\t{0xC7AD, 0xC7C7, prLVT},                    // Lo  [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH\n\t{0xC7C8, 0xC7C8, prLV},                     // Lo       HANGUL SYLLABLE JYA\n\t{0xC7C9, 0xC7E3, prLVT},                    // Lo  [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH\n\t{0xC7E4, 0xC7E4, prLV},                     // Lo       HANGUL SYLLABLE JYAE\n\t{0xC7E5, 0xC7FF, prLVT},                    // Lo  [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH\n\t{0xC800, 0xC800, prLV},                     // Lo       HANGUL SYLLABLE JEO\n\t{0xC801, 0xC81B, prLVT},                    // Lo  [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH\n\t{0xC81C, 0xC81C, prLV},                     // Lo       HANGUL SYLLABLE JE\n\t{0xC81D, 0xC837, prLVT},                    // Lo  [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH\n\t{0xC838, 0xC838, prLV},                     // Lo       HANGUL SYLLABLE JYEO\n\t{0xC839, 0xC853, prLVT},                    // Lo  [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH\n\t{0xC854, 0xC854, prLV},                     // Lo       HANGUL SYLLABLE JYE\n\t{0xC855, 0xC86F, prLVT},                    // Lo  [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH\n\t{0xC870, 0xC870, prLV},                     // Lo       HANGUL SYLLABLE JO\n\t{0xC871, 0xC88B, prLVT},                    // Lo  [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH\n\t{0xC88C, 0xC88C, prLV},                     // Lo       HANGUL SYLLABLE JWA\n\t{0xC88D, 0xC8A7, prLVT},                    // Lo  [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH\n\t{0xC8A8, 0xC8A8, prLV},                     // Lo       HANGUL SYLLABLE JWAE\n\t{0xC8A9, 0xC8C3, prLVT},                    // Lo  [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH\n\t{0xC8C4, 0xC8C4, prLV},                     // Lo       HANGUL SYLLABLE JOE\n\t{0xC8C5, 0xC8DF, prLVT},                    // Lo  [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH\n\t{0xC8E0, 0xC8E0, prLV},                     // Lo       HANGUL SYLLABLE JYO\n\t{0xC8E1, 0xC8FB, prLVT},                    // Lo  [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH\n\t{0xC8FC, 0xC8FC, prLV},                     // Lo       HANGUL SYLLABLE JU\n\t{0xC8FD, 0xC917, prLVT},                    // Lo  [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH\n\t{0xC918, 0xC918, prLV},                     // Lo       HANGUL SYLLABLE JWEO\n\t{0xC919, 0xC933, prLVT},                    // Lo  [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH\n\t{0xC934, 0xC934, prLV},                     // Lo       HANGUL SYLLABLE JWE\n\t{0xC935, 0xC94F, prLVT},                    // Lo  [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH\n\t{0xC950, 0xC950, prLV},                     // Lo       HANGUL SYLLABLE JWI\n\t{0xC951, 0xC96B, prLVT},                    // Lo  [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH\n\t{0xC96C, 0xC96C, prLV},                     // Lo       HANGUL SYLLABLE JYU\n\t{0xC96D, 0xC987, prLVT},                    // Lo  [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH\n\t{0xC988, 0xC988, prLV},                     // Lo       HANGUL SYLLABLE JEU\n\t{0xC989, 0xC9A3, prLVT},                    // Lo  [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH\n\t{0xC9A4, 0xC9A4, prLV},                     // Lo       HANGUL SYLLABLE JYI\n\t{0xC9A5, 0xC9BF, prLVT},                    // Lo  [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH\n\t{0xC9C0, 0xC9C0, prLV},                     // Lo       HANGUL SYLLABLE JI\n\t{0xC9C1, 0xC9DB, prLVT},                    // Lo  [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH\n\t{0xC9DC, 0xC9DC, prLV},                     // Lo       HANGUL SYLLABLE JJA\n\t{0xC9DD, 0xC9F7, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH\n\t{0xC9F8, 0xC9F8, prLV},                     // Lo       HANGUL SYLLABLE JJAE\n\t{0xC9F9, 0xCA13, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH\n\t{0xCA14, 0xCA14, prLV},                     // Lo       HANGUL SYLLABLE JJYA\n\t{0xCA15, 0xCA2F, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH\n\t{0xCA30, 0xCA30, prLV},                     // Lo       HANGUL SYLLABLE JJYAE\n\t{0xCA31, 0xCA4B, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH\n\t{0xCA4C, 0xCA4C, prLV},                     // Lo       HANGUL SYLLABLE JJEO\n\t{0xCA4D, 0xCA67, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH\n\t{0xCA68, 0xCA68, prLV},                     // Lo       HANGUL SYLLABLE JJE\n\t{0xCA69, 0xCA83, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH\n\t{0xCA84, 0xCA84, prLV},                     // Lo       HANGUL SYLLABLE JJYEO\n\t{0xCA85, 0xCA9F, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH\n\t{0xCAA0, 0xCAA0, prLV},                     // Lo       HANGUL SYLLABLE JJYE\n\t{0xCAA1, 0xCABB, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH\n\t{0xCABC, 0xCABC, prLV},                     // Lo       HANGUL SYLLABLE JJO\n\t{0xCABD, 0xCAD7, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH\n\t{0xCAD8, 0xCAD8, prLV},                     // Lo       HANGUL SYLLABLE JJWA\n\t{0xCAD9, 0xCAF3, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH\n\t{0xCAF4, 0xCAF4, prLV},                     // Lo       HANGUL SYLLABLE JJWAE\n\t{0xCAF5, 0xCB0F, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH\n\t{0xCB10, 0xCB10, prLV},                     // Lo       HANGUL SYLLABLE JJOE\n\t{0xCB11, 0xCB2B, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH\n\t{0xCB2C, 0xCB2C, prLV},                     // Lo       HANGUL SYLLABLE JJYO\n\t{0xCB2D, 0xCB47, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH\n\t{0xCB48, 0xCB48, prLV},                     // Lo       HANGUL SYLLABLE JJU\n\t{0xCB49, 0xCB63, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH\n\t{0xCB64, 0xCB64, prLV},                     // Lo       HANGUL SYLLABLE JJWEO\n\t{0xCB65, 0xCB7F, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH\n\t{0xCB80, 0xCB80, prLV},                     // Lo       HANGUL SYLLABLE JJWE\n\t{0xCB81, 0xCB9B, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH\n\t{0xCB9C, 0xCB9C, prLV},                     // Lo       HANGUL SYLLABLE JJWI\n\t{0xCB9D, 0xCBB7, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH\n\t{0xCBB8, 0xCBB8, prLV},                     // Lo       HANGUL SYLLABLE JJYU\n\t{0xCBB9, 0xCBD3, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH\n\t{0xCBD4, 0xCBD4, prLV},                     // Lo       HANGUL SYLLABLE JJEU\n\t{0xCBD5, 0xCBEF, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH\n\t{0xCBF0, 0xCBF0, prLV},                     // Lo       HANGUL SYLLABLE JJYI\n\t{0xCBF1, 0xCC0B, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH\n\t{0xCC0C, 0xCC0C, prLV},                     // Lo       HANGUL SYLLABLE JJI\n\t{0xCC0D, 0xCC27, prLVT},                    // Lo  [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH\n\t{0xCC28, 0xCC28, prLV},                     // Lo       HANGUL SYLLABLE CA\n\t{0xCC29, 0xCC43, prLVT},                    // Lo  [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH\n\t{0xCC44, 0xCC44, prLV},                     // Lo       HANGUL SYLLABLE CAE\n\t{0xCC45, 0xCC5F, prLVT},                    // Lo  [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH\n\t{0xCC60, 0xCC60, prLV},                     // Lo       HANGUL SYLLABLE CYA\n\t{0xCC61, 0xCC7B, prLVT},                    // Lo  [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH\n\t{0xCC7C, 0xCC7C, prLV},                     // Lo       HANGUL SYLLABLE CYAE\n\t{0xCC7D, 0xCC97, prLVT},                    // Lo  [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH\n\t{0xCC98, 0xCC98, prLV},                     // Lo       HANGUL SYLLABLE CEO\n\t{0xCC99, 0xCCB3, prLVT},                    // Lo  [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH\n\t{0xCCB4, 0xCCB4, prLV},                     // Lo       HANGUL SYLLABLE CE\n\t{0xCCB5, 0xCCCF, prLVT},                    // Lo  [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH\n\t{0xCCD0, 0xCCD0, prLV},                     // Lo       HANGUL SYLLABLE CYEO\n\t{0xCCD1, 0xCCEB, prLVT},                    // Lo  [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH\n\t{0xCCEC, 0xCCEC, prLV},                     // Lo       HANGUL SYLLABLE CYE\n\t{0xCCED, 0xCD07, prLVT},                    // Lo  [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH\n\t{0xCD08, 0xCD08, prLV},                     // Lo       HANGUL SYLLABLE CO\n\t{0xCD09, 0xCD23, prLVT},                    // Lo  [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH\n\t{0xCD24, 0xCD24, prLV},                     // Lo       HANGUL SYLLABLE CWA\n\t{0xCD25, 0xCD3F, prLVT},                    // Lo  [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH\n\t{0xCD40, 0xCD40, prLV},                     // Lo       HANGUL SYLLABLE CWAE\n\t{0xCD41, 0xCD5B, prLVT},                    // Lo  [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH\n\t{0xCD5C, 0xCD5C, prLV},                     // Lo       HANGUL SYLLABLE COE\n\t{0xCD5D, 0xCD77, prLVT},                    // Lo  [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH\n\t{0xCD78, 0xCD78, prLV},                     // Lo       HANGUL SYLLABLE CYO\n\t{0xCD79, 0xCD93, prLVT},                    // Lo  [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH\n\t{0xCD94, 0xCD94, prLV},                     // Lo       HANGUL SYLLABLE CU\n\t{0xCD95, 0xCDAF, prLVT},                    // Lo  [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH\n\t{0xCDB0, 0xCDB0, prLV},                     // Lo       HANGUL SYLLABLE CWEO\n\t{0xCDB1, 0xCDCB, prLVT},                    // Lo  [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH\n\t{0xCDCC, 0xCDCC, prLV},                     // Lo       HANGUL SYLLABLE CWE\n\t{0xCDCD, 0xCDE7, prLVT},                    // Lo  [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH\n\t{0xCDE8, 0xCDE8, prLV},                     // Lo       HANGUL SYLLABLE CWI\n\t{0xCDE9, 0xCE03, prLVT},                    // Lo  [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH\n\t{0xCE04, 0xCE04, prLV},                     // Lo       HANGUL SYLLABLE CYU\n\t{0xCE05, 0xCE1F, prLVT},                    // Lo  [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH\n\t{0xCE20, 0xCE20, prLV},                     // Lo       HANGUL SYLLABLE CEU\n\t{0xCE21, 0xCE3B, prLVT},                    // Lo  [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH\n\t{0xCE3C, 0xCE3C, prLV},                     // Lo       HANGUL SYLLABLE CYI\n\t{0xCE3D, 0xCE57, prLVT},                    // Lo  [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH\n\t{0xCE58, 0xCE58, prLV},                     // Lo       HANGUL SYLLABLE CI\n\t{0xCE59, 0xCE73, prLVT},                    // Lo  [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH\n\t{0xCE74, 0xCE74, prLV},                     // Lo       HANGUL SYLLABLE KA\n\t{0xCE75, 0xCE8F, prLVT},                    // Lo  [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH\n\t{0xCE90, 0xCE90, prLV},                     // Lo       HANGUL SYLLABLE KAE\n\t{0xCE91, 0xCEAB, prLVT},                    // Lo  [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH\n\t{0xCEAC, 0xCEAC, prLV},                     // Lo       HANGUL SYLLABLE KYA\n\t{0xCEAD, 0xCEC7, prLVT},                    // Lo  [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH\n\t{0xCEC8, 0xCEC8, prLV},                     // Lo       HANGUL SYLLABLE KYAE\n\t{0xCEC9, 0xCEE3, prLVT},                    // Lo  [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH\n\t{0xCEE4, 0xCEE4, prLV},                     // Lo       HANGUL SYLLABLE KEO\n\t{0xCEE5, 0xCEFF, prLVT},                    // Lo  [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH\n\t{0xCF00, 0xCF00, prLV},                     // Lo       HANGUL SYLLABLE KE\n\t{0xCF01, 0xCF1B, prLVT},                    // Lo  [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH\n\t{0xCF1C, 0xCF1C, prLV},                     // Lo       HANGUL SYLLABLE KYEO\n\t{0xCF1D, 0xCF37, prLVT},                    // Lo  [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH\n\t{0xCF38, 0xCF38, prLV},                     // Lo       HANGUL SYLLABLE KYE\n\t{0xCF39, 0xCF53, prLVT},                    // Lo  [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH\n\t{0xCF54, 0xCF54, prLV},                     // Lo       HANGUL SYLLABLE KO\n\t{0xCF55, 0xCF6F, prLVT},                    // Lo  [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH\n\t{0xCF70, 0xCF70, prLV},                     // Lo       HANGUL SYLLABLE KWA\n\t{0xCF71, 0xCF8B, prLVT},                    // Lo  [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH\n\t{0xCF8C, 0xCF8C, prLV},                     // Lo       HANGUL SYLLABLE KWAE\n\t{0xCF8D, 0xCFA7, prLVT},                    // Lo  [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH\n\t{0xCFA8, 0xCFA8, prLV},                     // Lo       HANGUL SYLLABLE KOE\n\t{0xCFA9, 0xCFC3, prLVT},                    // Lo  [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH\n\t{0xCFC4, 0xCFC4, prLV},                     // Lo       HANGUL SYLLABLE KYO\n\t{0xCFC5, 0xCFDF, prLVT},                    // Lo  [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH\n\t{0xCFE0, 0xCFE0, prLV},                     // Lo       HANGUL SYLLABLE KU\n\t{0xCFE1, 0xCFFB, prLVT},                    // Lo  [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH\n\t{0xCFFC, 0xCFFC, prLV},                     // Lo       HANGUL SYLLABLE KWEO\n\t{0xCFFD, 0xD017, prLVT},                    // Lo  [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH\n\t{0xD018, 0xD018, prLV},                     // Lo       HANGUL SYLLABLE KWE\n\t{0xD019, 0xD033, prLVT},                    // Lo  [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH\n\t{0xD034, 0xD034, prLV},                     // Lo       HANGUL SYLLABLE KWI\n\t{0xD035, 0xD04F, prLVT},                    // Lo  [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH\n\t{0xD050, 0xD050, prLV},                     // Lo       HANGUL SYLLABLE KYU\n\t{0xD051, 0xD06B, prLVT},                    // Lo  [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH\n\t{0xD06C, 0xD06C, prLV},                     // Lo       HANGUL SYLLABLE KEU\n\t{0xD06D, 0xD087, prLVT},                    // Lo  [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH\n\t{0xD088, 0xD088, prLV},                     // Lo       HANGUL SYLLABLE KYI\n\t{0xD089, 0xD0A3, prLVT},                    // Lo  [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH\n\t{0xD0A4, 0xD0A4, prLV},                     // Lo       HANGUL SYLLABLE KI\n\t{0xD0A5, 0xD0BF, prLVT},                    // Lo  [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH\n\t{0xD0C0, 0xD0C0, prLV},                     // Lo       HANGUL SYLLABLE TA\n\t{0xD0C1, 0xD0DB, prLVT},                    // Lo  [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH\n\t{0xD0DC, 0xD0DC, prLV},                     // Lo       HANGUL SYLLABLE TAE\n\t{0xD0DD, 0xD0F7, prLVT},                    // Lo  [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH\n\t{0xD0F8, 0xD0F8, prLV},                     // Lo       HANGUL SYLLABLE TYA\n\t{0xD0F9, 0xD113, prLVT},                    // Lo  [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH\n\t{0xD114, 0xD114, prLV},                     // Lo       HANGUL SYLLABLE TYAE\n\t{0xD115, 0xD12F, prLVT},                    // Lo  [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH\n\t{0xD130, 0xD130, prLV},                     // Lo       HANGUL SYLLABLE TEO\n\t{0xD131, 0xD14B, prLVT},                    // Lo  [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH\n\t{0xD14C, 0xD14C, prLV},                     // Lo       HANGUL SYLLABLE TE\n\t{0xD14D, 0xD167, prLVT},                    // Lo  [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH\n\t{0xD168, 0xD168, prLV},                     // Lo       HANGUL SYLLABLE TYEO\n\t{0xD169, 0xD183, prLVT},                    // Lo  [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH\n\t{0xD184, 0xD184, prLV},                     // Lo       HANGUL SYLLABLE TYE\n\t{0xD185, 0xD19F, prLVT},                    // Lo  [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH\n\t{0xD1A0, 0xD1A0, prLV},                     // Lo       HANGUL SYLLABLE TO\n\t{0xD1A1, 0xD1BB, prLVT},                    // Lo  [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH\n\t{0xD1BC, 0xD1BC, prLV},                     // Lo       HANGUL SYLLABLE TWA\n\t{0xD1BD, 0xD1D7, prLVT},                    // Lo  [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH\n\t{0xD1D8, 0xD1D8, prLV},                     // Lo       HANGUL SYLLABLE TWAE\n\t{0xD1D9, 0xD1F3, prLVT},                    // Lo  [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH\n\t{0xD1F4, 0xD1F4, prLV},                     // Lo       HANGUL SYLLABLE TOE\n\t{0xD1F5, 0xD20F, prLVT},                    // Lo  [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH\n\t{0xD210, 0xD210, prLV},                     // Lo       HANGUL SYLLABLE TYO\n\t{0xD211, 0xD22B, prLVT},                    // Lo  [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH\n\t{0xD22C, 0xD22C, prLV},                     // Lo       HANGUL SYLLABLE TU\n\t{0xD22D, 0xD247, prLVT},                    // Lo  [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH\n\t{0xD248, 0xD248, prLV},                     // Lo       HANGUL SYLLABLE TWEO\n\t{0xD249, 0xD263, prLVT},                    // Lo  [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH\n\t{0xD264, 0xD264, prLV},                     // Lo       HANGUL SYLLABLE TWE\n\t{0xD265, 0xD27F, prLVT},                    // Lo  [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH\n\t{0xD280, 0xD280, prLV},                     // Lo       HANGUL SYLLABLE TWI\n\t{0xD281, 0xD29B, prLVT},                    // Lo  [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH\n\t{0xD29C, 0xD29C, prLV},                     // Lo       HANGUL SYLLABLE TYU\n\t{0xD29D, 0xD2B7, prLVT},                    // Lo  [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH\n\t{0xD2B8, 0xD2B8, prLV},                     // Lo       HANGUL SYLLABLE TEU\n\t{0xD2B9, 0xD2D3, prLVT},                    // Lo  [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH\n\t{0xD2D4, 0xD2D4, prLV},                     // Lo       HANGUL SYLLABLE TYI\n\t{0xD2D5, 0xD2EF, prLVT},                    // Lo  [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH\n\t{0xD2F0, 0xD2F0, prLV},                     // Lo       HANGUL SYLLABLE TI\n\t{0xD2F1, 0xD30B, prLVT},                    // Lo  [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH\n\t{0xD30C, 0xD30C, prLV},                     // Lo       HANGUL SYLLABLE PA\n\t{0xD30D, 0xD327, prLVT},                    // Lo  [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH\n\t{0xD328, 0xD328, prLV},                     // Lo       HANGUL SYLLABLE PAE\n\t{0xD329, 0xD343, prLVT},                    // Lo  [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH\n\t{0xD344, 0xD344, prLV},                     // Lo       HANGUL SYLLABLE PYA\n\t{0xD345, 0xD35F, prLVT},                    // Lo  [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH\n\t{0xD360, 0xD360, prLV},                     // Lo       HANGUL SYLLABLE PYAE\n\t{0xD361, 0xD37B, prLVT},                    // Lo  [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH\n\t{0xD37C, 0xD37C, prLV},                     // Lo       HANGUL SYLLABLE PEO\n\t{0xD37D, 0xD397, prLVT},                    // Lo  [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH\n\t{0xD398, 0xD398, prLV},                     // Lo       HANGUL SYLLABLE PE\n\t{0xD399, 0xD3B3, prLVT},                    // Lo  [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH\n\t{0xD3B4, 0xD3B4, prLV},                     // Lo       HANGUL SYLLABLE PYEO\n\t{0xD3B5, 0xD3CF, prLVT},                    // Lo  [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH\n\t{0xD3D0, 0xD3D0, prLV},                     // Lo       HANGUL SYLLABLE PYE\n\t{0xD3D1, 0xD3EB, prLVT},                    // Lo  [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH\n\t{0xD3EC, 0xD3EC, prLV},                     // Lo       HANGUL SYLLABLE PO\n\t{0xD3ED, 0xD407, prLVT},                    // Lo  [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH\n\t{0xD408, 0xD408, prLV},                     // Lo       HANGUL SYLLABLE PWA\n\t{0xD409, 0xD423, prLVT},                    // Lo  [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH\n\t{0xD424, 0xD424, prLV},                     // Lo       HANGUL SYLLABLE PWAE\n\t{0xD425, 0xD43F, prLVT},                    // Lo  [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH\n\t{0xD440, 0xD440, prLV},                     // Lo       HANGUL SYLLABLE POE\n\t{0xD441, 0xD45B, prLVT},                    // Lo  [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH\n\t{0xD45C, 0xD45C, prLV},                     // Lo       HANGUL SYLLABLE PYO\n\t{0xD45D, 0xD477, prLVT},                    // Lo  [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH\n\t{0xD478, 0xD478, prLV},                     // Lo       HANGUL SYLLABLE PU\n\t{0xD479, 0xD493, prLVT},                    // Lo  [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH\n\t{0xD494, 0xD494, prLV},                     // Lo       HANGUL SYLLABLE PWEO\n\t{0xD495, 0xD4AF, prLVT},                    // Lo  [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH\n\t{0xD4B0, 0xD4B0, prLV},                     // Lo       HANGUL SYLLABLE PWE\n\t{0xD4B1, 0xD4CB, prLVT},                    // Lo  [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH\n\t{0xD4CC, 0xD4CC, prLV},                     // Lo       HANGUL SYLLABLE PWI\n\t{0xD4CD, 0xD4E7, prLVT},                    // Lo  [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH\n\t{0xD4E8, 0xD4E8, prLV},                     // Lo       HANGUL SYLLABLE PYU\n\t{0xD4E9, 0xD503, prLVT},                    // Lo  [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH\n\t{0xD504, 0xD504, prLV},                     // Lo       HANGUL SYLLABLE PEU\n\t{0xD505, 0xD51F, prLVT},                    // Lo  [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH\n\t{0xD520, 0xD520, prLV},                     // Lo       HANGUL SYLLABLE PYI\n\t{0xD521, 0xD53B, prLVT},                    // Lo  [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH\n\t{0xD53C, 0xD53C, prLV},                     // Lo       HANGUL SYLLABLE PI\n\t{0xD53D, 0xD557, prLVT},                    // Lo  [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH\n\t{0xD558, 0xD558, prLV},                     // Lo       HANGUL SYLLABLE HA\n\t{0xD559, 0xD573, prLVT},                    // Lo  [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH\n\t{0xD574, 0xD574, prLV},                     // Lo       HANGUL SYLLABLE HAE\n\t{0xD575, 0xD58F, prLVT},                    // Lo  [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH\n\t{0xD590, 0xD590, prLV},                     // Lo       HANGUL SYLLABLE HYA\n\t{0xD591, 0xD5AB, prLVT},                    // Lo  [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH\n\t{0xD5AC, 0xD5AC, prLV},                     // Lo       HANGUL SYLLABLE HYAE\n\t{0xD5AD, 0xD5C7, prLVT},                    // Lo  [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH\n\t{0xD5C8, 0xD5C8, prLV},                     // Lo       HANGUL SYLLABLE HEO\n\t{0xD5C9, 0xD5E3, prLVT},                    // Lo  [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH\n\t{0xD5E4, 0xD5E4, prLV},                     // Lo       HANGUL SYLLABLE HE\n\t{0xD5E5, 0xD5FF, prLVT},                    // Lo  [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH\n\t{0xD600, 0xD600, prLV},                     // Lo       HANGUL SYLLABLE HYEO\n\t{0xD601, 0xD61B, prLVT},                    // Lo  [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH\n\t{0xD61C, 0xD61C, prLV},                     // Lo       HANGUL SYLLABLE HYE\n\t{0xD61D, 0xD637, prLVT},                    // Lo  [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH\n\t{0xD638, 0xD638, prLV},                     // Lo       HANGUL SYLLABLE HO\n\t{0xD639, 0xD653, prLVT},                    // Lo  [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH\n\t{0xD654, 0xD654, prLV},                     // Lo       HANGUL SYLLABLE HWA\n\t{0xD655, 0xD66F, prLVT},                    // Lo  [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH\n\t{0xD670, 0xD670, prLV},                     // Lo       HANGUL SYLLABLE HWAE\n\t{0xD671, 0xD68B, prLVT},                    // Lo  [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH\n\t{0xD68C, 0xD68C, prLV},                     // Lo       HANGUL SYLLABLE HOE\n\t{0xD68D, 0xD6A7, prLVT},                    // Lo  [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH\n\t{0xD6A8, 0xD6A8, prLV},                     // Lo       HANGUL SYLLABLE HYO\n\t{0xD6A9, 0xD6C3, prLVT},                    // Lo  [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH\n\t{0xD6C4, 0xD6C4, prLV},                     // Lo       HANGUL SYLLABLE HU\n\t{0xD6C5, 0xD6DF, prLVT},                    // Lo  [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH\n\t{0xD6E0, 0xD6E0, prLV},                     // Lo       HANGUL SYLLABLE HWEO\n\t{0xD6E1, 0xD6FB, prLVT},                    // Lo  [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH\n\t{0xD6FC, 0xD6FC, prLV},                     // Lo       HANGUL SYLLABLE HWE\n\t{0xD6FD, 0xD717, prLVT},                    // Lo  [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH\n\t{0xD718, 0xD718, prLV},                     // Lo       HANGUL SYLLABLE HWI\n\t{0xD719, 0xD733, prLVT},                    // Lo  [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH\n\t{0xD734, 0xD734, prLV},                     // Lo       HANGUL SYLLABLE HYU\n\t{0xD735, 0xD74F, prLVT},                    // Lo  [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH\n\t{0xD750, 0xD750, prLV},                     // Lo       HANGUL SYLLABLE HEU\n\t{0xD751, 0xD76B, prLVT},                    // Lo  [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH\n\t{0xD76C, 0xD76C, prLV},                     // Lo       HANGUL SYLLABLE HYI\n\t{0xD76D, 0xD787, prLVT},                    // Lo  [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH\n\t{0xD788, 0xD788, prLV},                     // Lo       HANGUL SYLLABLE HI\n\t{0xD789, 0xD7A3, prLVT},                    // Lo  [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH\n\t{0xD7B0, 0xD7C6, prV},                      // Lo  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E\n\t{0xD7CB, 0xD7FB, prT},                      // Lo  [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH\n\t{0xFB1E, 0xFB1E, prExtend},                 // Mn       HEBREW POINT JUDEO-SPANISH VARIKA\n\t{0xFE00, 0xFE0F, prExtend},                 // Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16\n\t{0xFE20, 0xFE2F, prExtend},                 // Mn  [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF\n\t{0xFEFF, 0xFEFF, prControl},                // Cf       ZERO WIDTH NO-BREAK SPACE\n\t{0xFF9E, 0xFF9F, prExtend},                 // Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK\n\t{0xFFF0, 0xFFF8, prControl},                // Cn   [9] <reserved-FFF0>..<reserved-FFF8>\n\t{0xFFF9, 0xFFFB, prControl},                // Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR\n\t{0x101FD, 0x101FD, prExtend},               // Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE\n\t{0x102E0, 0x102E0, prExtend},               // Mn       COPTIC EPACT THOUSANDS MARK\n\t{0x10376, 0x1037A, prExtend},               // Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII\n\t{0x10A01, 0x10A03, prExtend},               // Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R\n\t{0x10A05, 0x10A06, prExtend},               // Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O\n\t{0x10A0C, 0x10A0F, prExtend},               // Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA\n\t{0x10A38, 0x10A3A, prExtend},               // Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW\n\t{0x10A3F, 0x10A3F, prExtend},               // Mn       KHAROSHTHI VIRAMA\n\t{0x10AE5, 0x10AE6, prExtend},               // Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW\n\t{0x10D24, 0x10D27, prExtend},               // Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI\n\t{0x10EAB, 0x10EAC, prExtend},               // Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK\n\t{0x10EFD, 0x10EFF, prExtend},               // Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA\n\t{0x10F46, 0x10F50, prExtend},               // Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW\n\t{0x10F82, 0x10F85, prExtend},               // Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW\n\t{0x11000, 0x11000, prSpacingMark},          // Mc       BRAHMI SIGN CANDRABINDU\n\t{0x11001, 0x11001, prExtend},               // Mn       BRAHMI SIGN ANUSVARA\n\t{0x11002, 0x11002, prSpacingMark},          // Mc       BRAHMI SIGN VISARGA\n\t{0x11038, 0x11046, prExtend},               // Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA\n\t{0x11070, 0x11070, prExtend},               // Mn       BRAHMI SIGN OLD TAMIL VIRAMA\n\t{0x11073, 0x11074, prExtend},               // Mn   [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O\n\t{0x1107F, 0x11081, prExtend},               // Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA\n\t{0x11082, 0x11082, prSpacingMark},          // Mc       KAITHI SIGN VISARGA\n\t{0x110B0, 0x110B2, prSpacingMark},          // Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II\n\t{0x110B3, 0x110B6, prExtend},               // Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI\n\t{0x110B7, 0x110B8, prSpacingMark},          // Mc   [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU\n\t{0x110B9, 0x110BA, prExtend},               // Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA\n\t{0x110BD, 0x110BD, prPrepend},              // Cf       KAITHI NUMBER SIGN\n\t{0x110C2, 0x110C2, prExtend},               // Mn       KAITHI VOWEL SIGN VOCALIC R\n\t{0x110CD, 0x110CD, prPrepend},              // Cf       KAITHI NUMBER SIGN ABOVE\n\t{0x11100, 0x11102, prExtend},               // Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA\n\t{0x11127, 0x1112B, prExtend},               // Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU\n\t{0x1112C, 0x1112C, prSpacingMark},          // Mc       CHAKMA VOWEL SIGN E\n\t{0x1112D, 0x11134, prExtend},               // Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA\n\t{0x11145, 0x11146, prSpacingMark},          // Mc   [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI\n\t{0x11173, 0x11173, prExtend},               // Mn       MAHAJANI SIGN NUKTA\n\t{0x11180, 0x11181, prExtend},               // Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA\n\t{0x11182, 0x11182, prSpacingMark},          // Mc       SHARADA SIGN VISARGA\n\t{0x111B3, 0x111B5, prSpacingMark},          // Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II\n\t{0x111B6, 0x111BE, prExtend},               // Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O\n\t{0x111BF, 0x111C0, prSpacingMark},          // Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA\n\t{0x111C2, 0x111C3, prPrepend},              // Lo   [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA\n\t{0x111C9, 0x111CC, prExtend},               // Mn   [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK\n\t{0x111CE, 0x111CE, prSpacingMark},          // Mc       SHARADA VOWEL SIGN PRISHTHAMATRA E\n\t{0x111CF, 0x111CF, prExtend},               // Mn       SHARADA SIGN INVERTED CANDRABINDU\n\t{0x1122C, 0x1122E, prSpacingMark},          // Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II\n\t{0x1122F, 0x11231, prExtend},               // Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI\n\t{0x11232, 0x11233, prSpacingMark},          // Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU\n\t{0x11234, 0x11234, prExtend},               // Mn       KHOJKI SIGN ANUSVARA\n\t{0x11235, 0x11235, prSpacingMark},          // Mc       KHOJKI SIGN VIRAMA\n\t{0x11236, 0x11237, prExtend},               // Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA\n\t{0x1123E, 0x1123E, prExtend},               // Mn       KHOJKI SIGN SUKUN\n\t{0x11241, 0x11241, prExtend},               // Mn       KHOJKI VOWEL SIGN VOCALIC R\n\t{0x112DF, 0x112DF, prExtend},               // Mn       KHUDAWADI SIGN ANUSVARA\n\t{0x112E0, 0x112E2, prSpacingMark},          // Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II\n\t{0x112E3, 0x112EA, prExtend},               // Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA\n\t{0x11300, 0x11301, prExtend},               // Mn   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU\n\t{0x11302, 0x11303, prSpacingMark},          // Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA\n\t{0x1133B, 0x1133C, prExtend},               // Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA\n\t{0x1133E, 0x1133E, prExtend},               // Mc       GRANTHA VOWEL SIGN AA\n\t{0x1133F, 0x1133F, prSpacingMark},          // Mc       GRANTHA VOWEL SIGN I\n\t{0x11340, 0x11340, prExtend},               // Mn       GRANTHA VOWEL SIGN II\n\t{0x11341, 0x11344, prSpacingMark},          // Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR\n\t{0x11347, 0x11348, prSpacingMark},          // Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI\n\t{0x1134B, 0x1134D, prSpacingMark},          // Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA\n\t{0x11357, 0x11357, prExtend},               // Mc       GRANTHA AU LENGTH MARK\n\t{0x11362, 0x11363, prSpacingMark},          // Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL\n\t{0x11366, 0x1136C, prExtend},               // Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX\n\t{0x11370, 0x11374, prExtend},               // Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA\n\t{0x11435, 0x11437, prSpacingMark},          // Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II\n\t{0x11438, 0x1143F, prExtend},               // Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI\n\t{0x11440, 0x11441, prSpacingMark},          // Mc   [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU\n\t{0x11442, 0x11444, prExtend},               // Mn   [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA\n\t{0x11445, 0x11445, prSpacingMark},          // Mc       NEWA SIGN VISARGA\n\t{0x11446, 0x11446, prExtend},               // Mn       NEWA SIGN NUKTA\n\t{0x1145E, 0x1145E, prExtend},               // Mn       NEWA SANDHI MARK\n\t{0x114B0, 0x114B0, prExtend},               // Mc       TIRHUTA VOWEL SIGN AA\n\t{0x114B1, 0x114B2, prSpacingMark},          // Mc   [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II\n\t{0x114B3, 0x114B8, prExtend},               // Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL\n\t{0x114B9, 0x114B9, prSpacingMark},          // Mc       TIRHUTA VOWEL SIGN E\n\t{0x114BA, 0x114BA, prExtend},               // Mn       TIRHUTA VOWEL SIGN SHORT E\n\t{0x114BB, 0x114BC, prSpacingMark},          // Mc   [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O\n\t{0x114BD, 0x114BD, prExtend},               // Mc       TIRHUTA VOWEL SIGN SHORT O\n\t{0x114BE, 0x114BE, prSpacingMark},          // Mc       TIRHUTA VOWEL SIGN AU\n\t{0x114BF, 0x114C0, prExtend},               // Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA\n\t{0x114C1, 0x114C1, prSpacingMark},          // Mc       TIRHUTA SIGN VISARGA\n\t{0x114C2, 0x114C3, prExtend},               // Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA\n\t{0x115AF, 0x115AF, prExtend},               // Mc       SIDDHAM VOWEL SIGN AA\n\t{0x115B0, 0x115B1, prSpacingMark},          // Mc   [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II\n\t{0x115B2, 0x115B5, prExtend},               // Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR\n\t{0x115B8, 0x115BB, prSpacingMark},          // Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU\n\t{0x115BC, 0x115BD, prExtend},               // Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA\n\t{0x115BE, 0x115BE, prSpacingMark},          // Mc       SIDDHAM SIGN VISARGA\n\t{0x115BF, 0x115C0, prExtend},               // Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA\n\t{0x115DC, 0x115DD, prExtend},               // Mn   [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU\n\t{0x11630, 0x11632, prSpacingMark},          // Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II\n\t{0x11633, 0x1163A, prExtend},               // Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI\n\t{0x1163B, 0x1163C, prSpacingMark},          // Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU\n\t{0x1163D, 0x1163D, prExtend},               // Mn       MODI SIGN ANUSVARA\n\t{0x1163E, 0x1163E, prSpacingMark},          // Mc       MODI SIGN VISARGA\n\t{0x1163F, 0x11640, prExtend},               // Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA\n\t{0x116AB, 0x116AB, prExtend},               // Mn       TAKRI SIGN ANUSVARA\n\t{0x116AC, 0x116AC, prSpacingMark},          // Mc       TAKRI SIGN VISARGA\n\t{0x116AD, 0x116AD, prExtend},               // Mn       TAKRI VOWEL SIGN AA\n\t{0x116AE, 0x116AF, prSpacingMark},          // Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II\n\t{0x116B0, 0x116B5, prExtend},               // Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU\n\t{0x116B6, 0x116B6, prSpacingMark},          // Mc       TAKRI SIGN VIRAMA\n\t{0x116B7, 0x116B7, prExtend},               // Mn       TAKRI SIGN NUKTA\n\t{0x1171D, 0x1171F, prExtend},               // Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA\n\t{0x11722, 0x11725, prExtend},               // Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU\n\t{0x11726, 0x11726, prSpacingMark},          // Mc       AHOM VOWEL SIGN E\n\t{0x11727, 0x1172B, prExtend},               // Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER\n\t{0x1182C, 0x1182E, prSpacingMark},          // Mc   [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II\n\t{0x1182F, 0x11837, prExtend},               // Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA\n\t{0x11838, 0x11838, prSpacingMark},          // Mc       DOGRA SIGN VISARGA\n\t{0x11839, 0x1183A, prExtend},               // Mn   [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA\n\t{0x11930, 0x11930, prExtend},               // Mc       DIVES AKURU VOWEL SIGN AA\n\t{0x11931, 0x11935, prSpacingMark},          // Mc   [5] DIVES AKURU VOWEL SIGN I..DIVES AKURU VOWEL SIGN E\n\t{0x11937, 0x11938, prSpacingMark},          // Mc   [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O\n\t{0x1193B, 0x1193C, prExtend},               // Mn   [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU\n\t{0x1193D, 0x1193D, prSpacingMark},          // Mc       DIVES AKURU SIGN HALANTA\n\t{0x1193E, 0x1193E, prExtend},               // Mn       DIVES AKURU VIRAMA\n\t{0x1193F, 0x1193F, prPrepend},              // Lo       DIVES AKURU PREFIXED NASAL SIGN\n\t{0x11940, 0x11940, prSpacingMark},          // Mc       DIVES AKURU MEDIAL YA\n\t{0x11941, 0x11941, prPrepend},              // Lo       DIVES AKURU INITIAL RA\n\t{0x11942, 0x11942, prSpacingMark},          // Mc       DIVES AKURU MEDIAL RA\n\t{0x11943, 0x11943, prExtend},               // Mn       DIVES AKURU SIGN NUKTA\n\t{0x119D1, 0x119D3, prSpacingMark},          // Mc   [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II\n\t{0x119D4, 0x119D7, prExtend},               // Mn   [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR\n\t{0x119DA, 0x119DB, prExtend},               // Mn   [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI\n\t{0x119DC, 0x119DF, prSpacingMark},          // Mc   [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA\n\t{0x119E0, 0x119E0, prExtend},               // Mn       NANDINAGARI SIGN VIRAMA\n\t{0x119E4, 0x119E4, prSpacingMark},          // Mc       NANDINAGARI VOWEL SIGN PRISHTHAMATRA E\n\t{0x11A01, 0x11A0A, prExtend},               // Mn  [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK\n\t{0x11A33, 0x11A38, prExtend},               // Mn   [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA\n\t{0x11A39, 0x11A39, prSpacingMark},          // Mc       ZANABAZAR SQUARE SIGN VISARGA\n\t{0x11A3A, 0x11A3A, prPrepend},              // Lo       ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA\n\t{0x11A3B, 0x11A3E, prExtend},               // Mn   [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA\n\t{0x11A47, 0x11A47, prExtend},               // Mn       ZANABAZAR SQUARE SUBJOINER\n\t{0x11A51, 0x11A56, prExtend},               // Mn   [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE\n\t{0x11A57, 0x11A58, prSpacingMark},          // Mc   [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU\n\t{0x11A59, 0x11A5B, prExtend},               // Mn   [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK\n\t{0x11A84, 0x11A89, prPrepend},              // Lo   [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA\n\t{0x11A8A, 0x11A96, prExtend},               // Mn  [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA\n\t{0x11A97, 0x11A97, prSpacingMark},          // Mc       SOYOMBO SIGN VISARGA\n\t{0x11A98, 0x11A99, prExtend},               // Mn   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER\n\t{0x11C2F, 0x11C2F, prSpacingMark},          // Mc       BHAIKSUKI VOWEL SIGN AA\n\t{0x11C30, 0x11C36, prExtend},               // Mn   [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L\n\t{0x11C38, 0x11C3D, prExtend},               // Mn   [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA\n\t{0x11C3E, 0x11C3E, prSpacingMark},          // Mc       BHAIKSUKI SIGN VISARGA\n\t{0x11C3F, 0x11C3F, prExtend},               // Mn       BHAIKSUKI SIGN VIRAMA\n\t{0x11C92, 0x11CA7, prExtend},               // Mn  [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA\n\t{0x11CA9, 0x11CA9, prSpacingMark},          // Mc       MARCHEN SUBJOINED LETTER YA\n\t{0x11CAA, 0x11CB0, prExtend},               // Mn   [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA\n\t{0x11CB1, 0x11CB1, prSpacingMark},          // Mc       MARCHEN VOWEL SIGN I\n\t{0x11CB2, 0x11CB3, prExtend},               // Mn   [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E\n\t{0x11CB4, 0x11CB4, prSpacingMark},          // Mc       MARCHEN VOWEL SIGN O\n\t{0x11CB5, 0x11CB6, prExtend},               // Mn   [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU\n\t{0x11D31, 0x11D36, prExtend},               // Mn   [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R\n\t{0x11D3A, 0x11D3A, prExtend},               // Mn       MASARAM GONDI VOWEL SIGN E\n\t{0x11D3C, 0x11D3D, prExtend},               // Mn   [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O\n\t{0x11D3F, 0x11D45, prExtend},               // Mn   [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA\n\t{0x11D46, 0x11D46, prPrepend},              // Lo       MASARAM GONDI REPHA\n\t{0x11D47, 0x11D47, prExtend},               // Mn       MASARAM GONDI RA-KARA\n\t{0x11D8A, 0x11D8E, prSpacingMark},          // Mc   [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU\n\t{0x11D90, 0x11D91, prExtend},               // Mn   [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI\n\t{0x11D93, 0x11D94, prSpacingMark},          // Mc   [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU\n\t{0x11D95, 0x11D95, prExtend},               // Mn       GUNJALA GONDI SIGN ANUSVARA\n\t{0x11D96, 0x11D96, prSpacingMark},          // Mc       GUNJALA GONDI SIGN VISARGA\n\t{0x11D97, 0x11D97, prExtend},               // Mn       GUNJALA GONDI VIRAMA\n\t{0x11EF3, 0x11EF4, prExtend},               // Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U\n\t{0x11EF5, 0x11EF6, prSpacingMark},          // Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O\n\t{0x11F00, 0x11F01, prExtend},               // Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA\n\t{0x11F02, 0x11F02, prPrepend},              // Lo       KAWI SIGN REPHA\n\t{0x11F03, 0x11F03, prSpacingMark},          // Mc       KAWI SIGN VISARGA\n\t{0x11F34, 0x11F35, prSpacingMark},          // Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA\n\t{0x11F36, 0x11F3A, prExtend},               // Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R\n\t{0x11F3E, 0x11F3F, prSpacingMark},          // Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI\n\t{0x11F40, 0x11F40, prExtend},               // Mn       KAWI VOWEL SIGN EU\n\t{0x11F41, 0x11F41, prSpacingMark},          // Mc       KAWI SIGN KILLER\n\t{0x11F42, 0x11F42, prExtend},               // Mn       KAWI CONJOINER\n\t{0x13430, 0x1343F, prControl},              // Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE\n\t{0x13440, 0x13440, prExtend},               // Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY\n\t{0x13447, 0x13455, prExtend},               // Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED\n\t{0x16AF0, 0x16AF4, prExtend},               // Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE\n\t{0x16B30, 0x16B36, prExtend},               // Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM\n\t{0x16F4F, 0x16F4F, prExtend},               // Mn       MIAO SIGN CONSONANT MODIFIER BAR\n\t{0x16F51, 0x16F87, prSpacingMark},          // Mc  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI\n\t{0x16F8F, 0x16F92, prExtend},               // Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW\n\t{0x16FE4, 0x16FE4, prExtend},               // Mn       KHITAN SMALL SCRIPT FILLER\n\t{0x16FF0, 0x16FF1, prSpacingMark},          // Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY\n\t{0x1BC9D, 0x1BC9E, prExtend},               // Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK\n\t{0x1BCA0, 0x1BCA3, prControl},              // Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP\n\t{0x1CF00, 0x1CF2D, prExtend},               // Mn  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT\n\t{0x1CF30, 0x1CF46, prExtend},               // Mn  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG\n\t{0x1D165, 0x1D165, prExtend},               // Mc       MUSICAL SYMBOL COMBINING STEM\n\t{0x1D166, 0x1D166, prSpacingMark},          // Mc       MUSICAL SYMBOL COMBINING SPRECHGESANG STEM\n\t{0x1D167, 0x1D169, prExtend},               // Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3\n\t{0x1D16D, 0x1D16D, prSpacingMark},          // Mc       MUSICAL SYMBOL COMBINING AUGMENTATION DOT\n\t{0x1D16E, 0x1D172, prExtend},               // Mc   [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5\n\t{0x1D173, 0x1D17A, prControl},              // Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE\n\t{0x1D17B, 0x1D182, prExtend},               // Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE\n\t{0x1D185, 0x1D18B, prExtend},               // Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE\n\t{0x1D1AA, 0x1D1AD, prExtend},               // Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO\n\t{0x1D242, 0x1D244, prExtend},               // Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME\n\t{0x1DA00, 0x1DA36, prExtend},               // Mn  [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN\n\t{0x1DA3B, 0x1DA6C, prExtend},               // Mn  [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT\n\t{0x1DA75, 0x1DA75, prExtend},               // Mn       SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS\n\t{0x1DA84, 0x1DA84, prExtend},               // Mn       SIGNWRITING LOCATION HEAD NECK\n\t{0x1DA9B, 0x1DA9F, prExtend},               // Mn   [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6\n\t{0x1DAA1, 0x1DAAF, prExtend},               // Mn  [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16\n\t{0x1E000, 0x1E006, prExtend},               // Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE\n\t{0x1E008, 0x1E018, prExtend},               // Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU\n\t{0x1E01B, 0x1E021, prExtend},               // Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI\n\t{0x1E023, 0x1E024, prExtend},               // Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS\n\t{0x1E026, 0x1E02A, prExtend},               // Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA\n\t{0x1E08F, 0x1E08F, prExtend},               // Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I\n\t{0x1E130, 0x1E136, prExtend},               // Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D\n\t{0x1E2AE, 0x1E2AE, prExtend},               // Mn       TOTO SIGN RISING TONE\n\t{0x1E2EC, 0x1E2EF, prExtend},               // Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI\n\t{0x1E4EC, 0x1E4EF, prExtend},               // Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH\n\t{0x1E8D0, 0x1E8D6, prExtend},               // Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS\n\t{0x1E944, 0x1E94A, prExtend},               // Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA\n\t{0x1F000, 0x1F003, prExtendedPictographic}, // E0.0   [4] (🀀..🀃)    MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND\n\t{0x1F004, 0x1F004, prExtendedPictographic}, // E0.6   [1] (🀄)       mahjong red dragon\n\t{0x1F005, 0x1F0CE, prExtendedPictographic}, // E0.0 [202] (🀅..🃎)    MAHJONG TILE GREEN DRAGON..PLAYING CARD KING OF DIAMONDS\n\t{0x1F0CF, 0x1F0CF, prExtendedPictographic}, // E0.6   [1] (🃏)       joker\n\t{0x1F0D0, 0x1F0FF, prExtendedPictographic}, // E0.0  [48] (🃐..🃿)    <reserved-1F0D0>..<reserved-1F0FF>\n\t{0x1F10D, 0x1F10F, prExtendedPictographic}, // E0.0   [3] (🄍..🄏)    CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH\n\t{0x1F12F, 0x1F12F, prExtendedPictographic}, // E0.0   [1] (🄯)       COPYLEFT SYMBOL\n\t{0x1F16C, 0x1F16F, prExtendedPictographic}, // E0.0   [4] (🅬..🅯)    RAISED MR SIGN..CIRCLED HUMAN FIGURE\n\t{0x1F170, 0x1F171, prExtendedPictographic}, // E0.6   [2] (🅰️..🅱️)    A button (blood type)..B button (blood type)\n\t{0x1F17E, 0x1F17F, prExtendedPictographic}, // E0.6   [2] (🅾️..🅿️)    O button (blood type)..P button\n\t{0x1F18E, 0x1F18E, prExtendedPictographic}, // E0.6   [1] (🆎)       AB button (blood type)\n\t{0x1F191, 0x1F19A, prExtendedPictographic}, // E0.6  [10] (🆑..🆚)    CL button..VS button\n\t{0x1F1AD, 0x1F1E5, prExtendedPictographic}, // E0.0  [57] (🆭..🇥)    MASK WORK SYMBOL..<reserved-1F1E5>\n\t{0x1F1E6, 0x1F1FF, prRegionalIndicator},    // So  [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z\n\t{0x1F201, 0x1F202, prExtendedPictographic}, // E0.6   [2] (🈁..🈂️)    Japanese “here” button..Japanese “service charge” button\n\t{0x1F203, 0x1F20F, prExtendedPictographic}, // E0.0  [13] (🈃..🈏)    <reserved-1F203>..<reserved-1F20F>\n\t{0x1F21A, 0x1F21A, prExtendedPictographic}, // E0.6   [1] (🈚)       Japanese “free of charge” button\n\t{0x1F22F, 0x1F22F, prExtendedPictographic}, // E0.6   [1] (🈯)       Japanese “reserved” button\n\t{0x1F232, 0x1F23A, prExtendedPictographic}, // E0.6   [9] (🈲..🈺)    Japanese “prohibited” button..Japanese “open for business” button\n\t{0x1F23C, 0x1F23F, prExtendedPictographic}, // E0.0   [4] (🈼..🈿)    <reserved-1F23C>..<reserved-1F23F>\n\t{0x1F249, 0x1F24F, prExtendedPictographic}, // E0.0   [7] (🉉..🉏)    <reserved-1F249>..<reserved-1F24F>\n\t{0x1F250, 0x1F251, prExtendedPictographic}, // E0.6   [2] (🉐..🉑)    Japanese “bargain” button..Japanese “acceptable” button\n\t{0x1F252, 0x1F2FF, prExtendedPictographic}, // E0.0 [174] (🉒..🋿)    <reserved-1F252>..<reserved-1F2FF>\n\t{0x1F300, 0x1F30C, prExtendedPictographic}, // E0.6  [13] (🌀..🌌)    cyclone..milky way\n\t{0x1F30D, 0x1F30E, prExtendedPictographic}, // E0.7   [2] (🌍..🌎)    globe showing Europe-Africa..globe showing Americas\n\t{0x1F30F, 0x1F30F, prExtendedPictographic}, // E0.6   [1] (🌏)       globe showing Asia-Australia\n\t{0x1F310, 0x1F310, prExtendedPictographic}, // E1.0   [1] (🌐)       globe with meridians\n\t{0x1F311, 0x1F311, prExtendedPictographic}, // E0.6   [1] (🌑)       new moon\n\t{0x1F312, 0x1F312, prExtendedPictographic}, // E1.0   [1] (🌒)       waxing crescent moon\n\t{0x1F313, 0x1F315, prExtendedPictographic}, // E0.6   [3] (🌓..🌕)    first quarter moon..full moon\n\t{0x1F316, 0x1F318, prExtendedPictographic}, // E1.0   [3] (🌖..🌘)    waning gibbous moon..waning crescent moon\n\t{0x1F319, 0x1F319, prExtendedPictographic}, // E0.6   [1] (🌙)       crescent moon\n\t{0x1F31A, 0x1F31A, prExtendedPictographic}, // E1.0   [1] (🌚)       new moon face\n\t{0x1F31B, 0x1F31B, prExtendedPictographic}, // E0.6   [1] (🌛)       first quarter moon face\n\t{0x1F31C, 0x1F31C, prExtendedPictographic}, // E0.7   [1] (🌜)       last quarter moon face\n\t{0x1F31D, 0x1F31E, prExtendedPictographic}, // E1.0   [2] (🌝..🌞)    full moon face..sun with face\n\t{0x1F31F, 0x1F320, prExtendedPictographic}, // E0.6   [2] (🌟..🌠)    glowing star..shooting star\n\t{0x1F321, 0x1F321, prExtendedPictographic}, // E0.7   [1] (🌡️)       thermometer\n\t{0x1F322, 0x1F323, prExtendedPictographic}, // E0.0   [2] (🌢..🌣)    BLACK DROPLET..WHITE SUN\n\t{0x1F324, 0x1F32C, prExtendedPictographic}, // E0.7   [9] (🌤️..🌬️)    sun behind small cloud..wind face\n\t{0x1F32D, 0x1F32F, prExtendedPictographic}, // E1.0   [3] (🌭..🌯)    hot dog..burrito\n\t{0x1F330, 0x1F331, prExtendedPictographic}, // E0.6   [2] (🌰..🌱)    chestnut..seedling\n\t{0x1F332, 0x1F333, prExtendedPictographic}, // E1.0   [2] (🌲..🌳)    evergreen tree..deciduous tree\n\t{0x1F334, 0x1F335, prExtendedPictographic}, // E0.6   [2] (🌴..🌵)    palm tree..cactus\n\t{0x1F336, 0x1F336, prExtendedPictographic}, // E0.7   [1] (🌶️)       hot pepper\n\t{0x1F337, 0x1F34A, prExtendedPictographic}, // E0.6  [20] (🌷..🍊)    tulip..tangerine\n\t{0x1F34B, 0x1F34B, prExtendedPictographic}, // E1.0   [1] (🍋)       lemon\n\t{0x1F34C, 0x1F34F, prExtendedPictographic}, // E0.6   [4] (🍌..🍏)    banana..green apple\n\t{0x1F350, 0x1F350, prExtendedPictographic}, // E1.0   [1] (🍐)       pear\n\t{0x1F351, 0x1F37B, prExtendedPictographic}, // E0.6  [43] (🍑..🍻)    peach..clinking beer mugs\n\t{0x1F37C, 0x1F37C, prExtendedPictographic}, // E1.0   [1] (🍼)       baby bottle\n\t{0x1F37D, 0x1F37D, prExtendedPictographic}, // E0.7   [1] (🍽️)       fork and knife with plate\n\t{0x1F37E, 0x1F37F, prExtendedPictographic}, // E1.0   [2] (🍾..🍿)    bottle with popping cork..popcorn\n\t{0x1F380, 0x1F393, prExtendedPictographic}, // E0.6  [20] (🎀..🎓)    ribbon..graduation cap\n\t{0x1F394, 0x1F395, prExtendedPictographic}, // E0.0   [2] (🎔..🎕)    HEART WITH TIP ON THE LEFT..BOUQUET OF FLOWERS\n\t{0x1F396, 0x1F397, prExtendedPictographic}, // E0.7   [2] (🎖️..🎗️)    military medal..reminder ribbon\n\t{0x1F398, 0x1F398, prExtendedPictographic}, // E0.0   [1] (🎘)       MUSICAL KEYBOARD WITH JACKS\n\t{0x1F399, 0x1F39B, prExtendedPictographic}, // E0.7   [3] (🎙️..🎛️)    studio microphone..control knobs\n\t{0x1F39C, 0x1F39D, prExtendedPictographic}, // E0.0   [2] (🎜..🎝)    BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES\n\t{0x1F39E, 0x1F39F, prExtendedPictographic}, // E0.7   [2] (🎞️..🎟️)    film frames..admission tickets\n\t{0x1F3A0, 0x1F3C4, prExtendedPictographic}, // E0.6  [37] (🎠..🏄)    carousel horse..person surfing\n\t{0x1F3C5, 0x1F3C5, prExtendedPictographic}, // E1.0   [1] (🏅)       sports medal\n\t{0x1F3C6, 0x1F3C6, prExtendedPictographic}, // E0.6   [1] (🏆)       trophy\n\t{0x1F3C7, 0x1F3C7, prExtendedPictographic}, // E1.0   [1] (🏇)       horse racing\n\t{0x1F3C8, 0x1F3C8, prExtendedPictographic}, // E0.6   [1] (🏈)       american football\n\t{0x1F3C9, 0x1F3C9, prExtendedPictographic}, // E1.0   [1] (🏉)       rugby football\n\t{0x1F3CA, 0x1F3CA, prExtendedPictographic}, // E0.6   [1] (🏊)       person swimming\n\t{0x1F3CB, 0x1F3CE, prExtendedPictographic}, // E0.7   [4] (🏋️..🏎️)    person lifting weights..racing car\n\t{0x1F3CF, 0x1F3D3, prExtendedPictographic}, // E1.0   [5] (🏏..🏓)    cricket game..ping pong\n\t{0x1F3D4, 0x1F3DF, prExtendedPictographic}, // E0.7  [12] (🏔️..🏟️)    snow-capped mountain..stadium\n\t{0x1F3E0, 0x1F3E3, prExtendedPictographic}, // E0.6   [4] (🏠..🏣)    house..Japanese post office\n\t{0x1F3E4, 0x1F3E4, prExtendedPictographic}, // E1.0   [1] (🏤)       post office\n\t{0x1F3E5, 0x1F3F0, prExtendedPictographic}, // E0.6  [12] (🏥..🏰)    hospital..castle\n\t{0x1F3F1, 0x1F3F2, prExtendedPictographic}, // E0.0   [2] (🏱..🏲)    WHITE PENNANT..BLACK PENNANT\n\t{0x1F3F3, 0x1F3F3, prExtendedPictographic}, // E0.7   [1] (🏳️)       white flag\n\t{0x1F3F4, 0x1F3F4, prExtendedPictographic}, // E1.0   [1] (🏴)       black flag\n\t{0x1F3F5, 0x1F3F5, prExtendedPictographic}, // E0.7   [1] (🏵️)       rosette\n\t{0x1F3F6, 0x1F3F6, prExtendedPictographic}, // E0.0   [1] (🏶)       BLACK ROSETTE\n\t{0x1F3F7, 0x1F3F7, prExtendedPictographic}, // E0.7   [1] (🏷️)       label\n\t{0x1F3F8, 0x1F3FA, prExtendedPictographic}, // E1.0   [3] (🏸..🏺)    badminton..amphora\n\t{0x1F3FB, 0x1F3FF, prExtend},               // Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6\n\t{0x1F400, 0x1F407, prExtendedPictographic}, // E1.0   [8] (🐀..🐇)    rat..rabbit\n\t{0x1F408, 0x1F408, prExtendedPictographic}, // E0.7   [1] (🐈)       cat\n\t{0x1F409, 0x1F40B, prExtendedPictographic}, // E1.0   [3] (🐉..🐋)    dragon..whale\n\t{0x1F40C, 0x1F40E, prExtendedPictographic}, // E0.6   [3] (🐌..🐎)    snail..horse\n\t{0x1F40F, 0x1F410, prExtendedPictographic}, // E1.0   [2] (🐏..🐐)    ram..goat\n\t{0x1F411, 0x1F412, prExtendedPictographic}, // E0.6   [2] (🐑..🐒)    ewe..monkey\n\t{0x1F413, 0x1F413, prExtendedPictographic}, // E1.0   [1] (🐓)       rooster\n\t{0x1F414, 0x1F414, prExtendedPictographic}, // E0.6   [1] (🐔)       chicken\n\t{0x1F415, 0x1F415, prExtendedPictographic}, // E0.7   [1] (🐕)       dog\n\t{0x1F416, 0x1F416, prExtendedPictographic}, // E1.0   [1] (🐖)       pig\n\t{0x1F417, 0x1F429, prExtendedPictographic}, // E0.6  [19] (🐗..🐩)    boar..poodle\n\t{0x1F42A, 0x1F42A, prExtendedPictographic}, // E1.0   [1] (🐪)       camel\n\t{0x1F42B, 0x1F43E, prExtendedPictographic}, // E0.6  [20] (🐫..🐾)    two-hump camel..paw prints\n\t{0x1F43F, 0x1F43F, prExtendedPictographic}, // E0.7   [1] (🐿️)       chipmunk\n\t{0x1F440, 0x1F440, prExtendedPictographic}, // E0.6   [1] (👀)       eyes\n\t{0x1F441, 0x1F441, prExtendedPictographic}, // E0.7   [1] (👁️)       eye\n\t{0x1F442, 0x1F464, prExtendedPictographic}, // E0.6  [35] (👂..👤)    ear..bust in silhouette\n\t{0x1F465, 0x1F465, prExtendedPictographic}, // E1.0   [1] (👥)       busts in silhouette\n\t{0x1F466, 0x1F46B, prExtendedPictographic}, // E0.6   [6] (👦..👫)    boy..woman and man holding hands\n\t{0x1F46C, 0x1F46D, prExtendedPictographic}, // E1.0   [2] (👬..👭)    men holding hands..women holding hands\n\t{0x1F46E, 0x1F4AC, prExtendedPictographic}, // E0.6  [63] (👮..💬)    police officer..speech balloon\n\t{0x1F4AD, 0x1F4AD, prExtendedPictographic}, // E1.0   [1] (💭)       thought balloon\n\t{0x1F4AE, 0x1F4B5, prExtendedPictographic}, // E0.6   [8] (💮..💵)    white flower..dollar banknote\n\t{0x1F4B6, 0x1F4B7, prExtendedPictographic}, // E1.0   [2] (💶..💷)    euro banknote..pound banknote\n\t{0x1F4B8, 0x1F4EB, prExtendedPictographic}, // E0.6  [52] (💸..📫)    money with wings..closed mailbox with raised flag\n\t{0x1F4EC, 0x1F4ED, prExtendedPictographic}, // E0.7   [2] (📬..📭)    open mailbox with raised flag..open mailbox with lowered flag\n\t{0x1F4EE, 0x1F4EE, prExtendedPictographic}, // E0.6   [1] (📮)       postbox\n\t{0x1F4EF, 0x1F4EF, prExtendedPictographic}, // E1.0   [1] (📯)       postal horn\n\t{0x1F4F0, 0x1F4F4, prExtendedPictographic}, // E0.6   [5] (📰..📴)    newspaper..mobile phone off\n\t{0x1F4F5, 0x1F4F5, prExtendedPictographic}, // E1.0   [1] (📵)       no mobile phones\n\t{0x1F4F6, 0x1F4F7, prExtendedPictographic}, // E0.6   [2] (📶..📷)    antenna bars..camera\n\t{0x1F4F8, 0x1F4F8, prExtendedPictographic}, // E1.0   [1] (📸)       camera with flash\n\t{0x1F4F9, 0x1F4FC, prExtendedPictographic}, // E0.6   [4] (📹..📼)    video camera..videocassette\n\t{0x1F4FD, 0x1F4FD, prExtendedPictographic}, // E0.7   [1] (📽️)       film projector\n\t{0x1F4FE, 0x1F4FE, prExtendedPictographic}, // E0.0   [1] (📾)       PORTABLE STEREO\n\t{0x1F4FF, 0x1F502, prExtendedPictographic}, // E1.0   [4] (📿..🔂)    prayer beads..repeat single button\n\t{0x1F503, 0x1F503, prExtendedPictographic}, // E0.6   [1] (🔃)       clockwise vertical arrows\n\t{0x1F504, 0x1F507, prExtendedPictographic}, // E1.0   [4] (🔄..🔇)    counterclockwise arrows button..muted speaker\n\t{0x1F508, 0x1F508, prExtendedPictographic}, // E0.7   [1] (🔈)       speaker low volume\n\t{0x1F509, 0x1F509, prExtendedPictographic}, // E1.0   [1] (🔉)       speaker medium volume\n\t{0x1F50A, 0x1F514, prExtendedPictographic}, // E0.6  [11] (🔊..🔔)    speaker high volume..bell\n\t{0x1F515, 0x1F515, prExtendedPictographic}, // E1.0   [1] (🔕)       bell with slash\n\t{0x1F516, 0x1F52B, prExtendedPictographic}, // E0.6  [22] (🔖..🔫)    bookmark..water pistol\n\t{0x1F52C, 0x1F52D, prExtendedPictographic}, // E1.0   [2] (🔬..🔭)    microscope..telescope\n\t{0x1F52E, 0x1F53D, prExtendedPictographic}, // E0.6  [16] (🔮..🔽)    crystal ball..downwards button\n\t{0x1F546, 0x1F548, prExtendedPictographic}, // E0.0   [3] (🕆..🕈)    WHITE LATIN CROSS..CELTIC CROSS\n\t{0x1F549, 0x1F54A, prExtendedPictographic}, // E0.7   [2] (🕉️..🕊️)    om..dove\n\t{0x1F54B, 0x1F54E, prExtendedPictographic}, // E1.0   [4] (🕋..🕎)    kaaba..menorah\n\t{0x1F54F, 0x1F54F, prExtendedPictographic}, // E0.0   [1] (🕏)       BOWL OF HYGIEIA\n\t{0x1F550, 0x1F55B, prExtendedPictographic}, // E0.6  [12] (🕐..🕛)    one o’clock..twelve o’clock\n\t{0x1F55C, 0x1F567, prExtendedPictographic}, // E0.7  [12] (🕜..🕧)    one-thirty..twelve-thirty\n\t{0x1F568, 0x1F56E, prExtendedPictographic}, // E0.0   [7] (🕨..🕮)    RIGHT SPEAKER..BOOK\n\t{0x1F56F, 0x1F570, prExtendedPictographic}, // E0.7   [2] (🕯️..🕰️)    candle..mantelpiece clock\n\t{0x1F571, 0x1F572, prExtendedPictographic}, // E0.0   [2] (🕱..🕲)    BLACK SKULL AND CROSSBONES..NO PIRACY\n\t{0x1F573, 0x1F579, prExtendedPictographic}, // E0.7   [7] (🕳️..🕹️)    hole..joystick\n\t{0x1F57A, 0x1F57A, prExtendedPictographic}, // E3.0   [1] (🕺)       man dancing\n\t{0x1F57B, 0x1F586, prExtendedPictographic}, // E0.0  [12] (🕻..🖆)    LEFT HAND TELEPHONE RECEIVER..PEN OVER STAMPED ENVELOPE\n\t{0x1F587, 0x1F587, prExtendedPictographic}, // E0.7   [1] (🖇️)       linked paperclips\n\t{0x1F588, 0x1F589, prExtendedPictographic}, // E0.0   [2] (🖈..🖉)    BLACK PUSHPIN..LOWER LEFT PENCIL\n\t{0x1F58A, 0x1F58D, prExtendedPictographic}, // E0.7   [4] (🖊️..🖍️)    pen..crayon\n\t{0x1F58E, 0x1F58F, prExtendedPictographic}, // E0.0   [2] (🖎..🖏)    LEFT WRITING HAND..TURNED OK HAND SIGN\n\t{0x1F590, 0x1F590, prExtendedPictographic}, // E0.7   [1] (🖐️)       hand with fingers splayed\n\t{0x1F591, 0x1F594, prExtendedPictographic}, // E0.0   [4] (🖑..🖔)    REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND\n\t{0x1F595, 0x1F596, prExtendedPictographic}, // E1.0   [2] (🖕..🖖)    middle finger..vulcan salute\n\t{0x1F597, 0x1F5A3, prExtendedPictographic}, // E0.0  [13] (🖗..🖣)    WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX\n\t{0x1F5A4, 0x1F5A4, prExtendedPictographic}, // E3.0   [1] (🖤)       black heart\n\t{0x1F5A5, 0x1F5A5, prExtendedPictographic}, // E0.7   [1] (🖥️)       desktop computer\n\t{0x1F5A6, 0x1F5A7, prExtendedPictographic}, // E0.0   [2] (🖦..🖧)    KEYBOARD AND MOUSE..THREE NETWORKED COMPUTERS\n\t{0x1F5A8, 0x1F5A8, prExtendedPictographic}, // E0.7   [1] (🖨️)       printer\n\t{0x1F5A9, 0x1F5B0, prExtendedPictographic}, // E0.0   [8] (🖩..🖰)    POCKET CALCULATOR..TWO BUTTON MOUSE\n\t{0x1F5B1, 0x1F5B2, prExtendedPictographic}, // E0.7   [2] (🖱️..🖲️)    computer mouse..trackball\n\t{0x1F5B3, 0x1F5BB, prExtendedPictographic}, // E0.0   [9] (🖳..🖻)    OLD PERSONAL COMPUTER..DOCUMENT WITH PICTURE\n\t{0x1F5BC, 0x1F5BC, prExtendedPictographic}, // E0.7   [1] (🖼️)       framed picture\n\t{0x1F5BD, 0x1F5C1, prExtendedPictographic}, // E0.0   [5] (🖽..🗁)    FRAME WITH TILES..OPEN FOLDER\n\t{0x1F5C2, 0x1F5C4, prExtendedPictographic}, // E0.7   [3] (🗂️..🗄️)    card index dividers..file cabinet\n\t{0x1F5C5, 0x1F5D0, prExtendedPictographic}, // E0.0  [12] (🗅..🗐)    EMPTY NOTE..PAGES\n\t{0x1F5D1, 0x1F5D3, prExtendedPictographic}, // E0.7   [3] (🗑️..🗓️)    wastebasket..spiral calendar\n\t{0x1F5D4, 0x1F5DB, prExtendedPictographic}, // E0.0   [8] (🗔..🗛)    DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL\n\t{0x1F5DC, 0x1F5DE, prExtendedPictographic}, // E0.7   [3] (🗜️..🗞️)    clamp..rolled-up newspaper\n\t{0x1F5DF, 0x1F5E0, prExtendedPictographic}, // E0.0   [2] (🗟..🗠)    PAGE WITH CIRCLED TEXT..STOCK CHART\n\t{0x1F5E1, 0x1F5E1, prExtendedPictographic}, // E0.7   [1] (🗡️)       dagger\n\t{0x1F5E2, 0x1F5E2, prExtendedPictographic}, // E0.0   [1] (🗢)       LIPS\n\t{0x1F5E3, 0x1F5E3, prExtendedPictographic}, // E0.7   [1] (🗣️)       speaking head\n\t{0x1F5E4, 0x1F5E7, prExtendedPictographic}, // E0.0   [4] (🗤..🗧)    THREE RAYS ABOVE..THREE RAYS RIGHT\n\t{0x1F5E8, 0x1F5E8, prExtendedPictographic}, // E2.0   [1] (🗨️)       left speech bubble\n\t{0x1F5E9, 0x1F5EE, prExtendedPictographic}, // E0.0   [6] (🗩..🗮)    RIGHT SPEECH BUBBLE..LEFT ANGER BUBBLE\n\t{0x1F5EF, 0x1F5EF, prExtendedPictographic}, // E0.7   [1] (🗯️)       right anger bubble\n\t{0x1F5F0, 0x1F5F2, prExtendedPictographic}, // E0.0   [3] (🗰..🗲)    MOOD BUBBLE..LIGHTNING MOOD\n\t{0x1F5F3, 0x1F5F3, prExtendedPictographic}, // E0.7   [1] (🗳️)       ballot box with ballot\n\t{0x1F5F4, 0x1F5F9, prExtendedPictographic}, // E0.0   [6] (🗴..🗹)    BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK\n\t{0x1F5FA, 0x1F5FA, prExtendedPictographic}, // E0.7   [1] (🗺️)       world map\n\t{0x1F5FB, 0x1F5FF, prExtendedPictographic}, // E0.6   [5] (🗻..🗿)    mount fuji..moai\n\t{0x1F600, 0x1F600, prExtendedPictographic}, // E1.0   [1] (😀)       grinning face\n\t{0x1F601, 0x1F606, prExtendedPictographic}, // E0.6   [6] (😁..😆)    beaming face with smiling eyes..grinning squinting face\n\t{0x1F607, 0x1F608, prExtendedPictographic}, // E1.0   [2] (😇..😈)    smiling face with halo..smiling face with horns\n\t{0x1F609, 0x1F60D, prExtendedPictographic}, // E0.6   [5] (😉..😍)    winking face..smiling face with heart-eyes\n\t{0x1F60E, 0x1F60E, prExtendedPictographic}, // E1.0   [1] (😎)       smiling face with sunglasses\n\t{0x1F60F, 0x1F60F, prExtendedPictographic}, // E0.6   [1] (😏)       smirking face\n\t{0x1F610, 0x1F610, prExtendedPictographic}, // E0.7   [1] (😐)       neutral face\n\t{0x1F611, 0x1F611, prExtendedPictographic}, // E1.0   [1] (😑)       expressionless face\n\t{0x1F612, 0x1F614, prExtendedPictographic}, // E0.6   [3] (😒..😔)    unamused face..pensive face\n\t{0x1F615, 0x1F615, prExtendedPictographic}, // E1.0   [1] (😕)       confused face\n\t{0x1F616, 0x1F616, prExtendedPictographic}, // E0.6   [1] (😖)       confounded face\n\t{0x1F617, 0x1F617, prExtendedPictographic}, // E1.0   [1] (😗)       kissing face\n\t{0x1F618, 0x1F618, prExtendedPictographic}, // E0.6   [1] (😘)       face blowing a kiss\n\t{0x1F619, 0x1F619, prExtendedPictographic}, // E1.0   [1] (😙)       kissing face with smiling eyes\n\t{0x1F61A, 0x1F61A, prExtendedPictographic}, // E0.6   [1] (😚)       kissing face with closed eyes\n\t{0x1F61B, 0x1F61B, prExtendedPictographic}, // E1.0   [1] (😛)       face with tongue\n\t{0x1F61C, 0x1F61E, prExtendedPictographic}, // E0.6   [3] (😜..😞)    winking face with tongue..disappointed face\n\t{0x1F61F, 0x1F61F, prExtendedPictographic}, // E1.0   [1] (😟)       worried face\n\t{0x1F620, 0x1F625, prExtendedPictographic}, // E0.6   [6] (😠..😥)    angry face..sad but relieved face\n\t{0x1F626, 0x1F627, prExtendedPictographic}, // E1.0   [2] (😦..😧)    frowning face with open mouth..anguished face\n\t{0x1F628, 0x1F62B, prExtendedPictographic}, // E0.6   [4] (😨..😫)    fearful face..tired face\n\t{0x1F62C, 0x1F62C, prExtendedPictographic}, // E1.0   [1] (😬)       grimacing face\n\t{0x1F62D, 0x1F62D, prExtendedPictographic}, // E0.6   [1] (😭)       loudly crying face\n\t{0x1F62E, 0x1F62F, prExtendedPictographic}, // E1.0   [2] (😮..😯)    face with open mouth..hushed face\n\t{0x1F630, 0x1F633, prExtendedPictographic}, // E0.6   [4] (😰..😳)    anxious face with sweat..flushed face\n\t{0x1F634, 0x1F634, prExtendedPictographic}, // E1.0   [1] (😴)       sleeping face\n\t{0x1F635, 0x1F635, prExtendedPictographic}, // E0.6   [1] (😵)       face with crossed-out eyes\n\t{0x1F636, 0x1F636, prExtendedPictographic}, // E1.0   [1] (😶)       face without mouth\n\t{0x1F637, 0x1F640, prExtendedPictographic}, // E0.6  [10] (😷..🙀)    face with medical mask..weary cat\n\t{0x1F641, 0x1F644, prExtendedPictographic}, // E1.0   [4] (🙁..🙄)    slightly frowning face..face with rolling eyes\n\t{0x1F645, 0x1F64F, prExtendedPictographic}, // E0.6  [11] (🙅..🙏)    person gesturing NO..folded hands\n\t{0x1F680, 0x1F680, prExtendedPictographic}, // E0.6   [1] (🚀)       rocket\n\t{0x1F681, 0x1F682, prExtendedPictographic}, // E1.0   [2] (🚁..🚂)    helicopter..locomotive\n\t{0x1F683, 0x1F685, prExtendedPictographic}, // E0.6   [3] (🚃..🚅)    railway car..bullet train\n\t{0x1F686, 0x1F686, prExtendedPictographic}, // E1.0   [1] (🚆)       train\n\t{0x1F687, 0x1F687, prExtendedPictographic}, // E0.6   [1] (🚇)       metro\n\t{0x1F688, 0x1F688, prExtendedPictographic}, // E1.0   [1] (🚈)       light rail\n\t{0x1F689, 0x1F689, prExtendedPictographic}, // E0.6   [1] (🚉)       station\n\t{0x1F68A, 0x1F68B, prExtendedPictographic}, // E1.0   [2] (🚊..🚋)    tram..tram car\n\t{0x1F68C, 0x1F68C, prExtendedPictographic}, // E0.6   [1] (🚌)       bus\n\t{0x1F68D, 0x1F68D, prExtendedPictographic}, // E0.7   [1] (🚍)       oncoming bus\n\t{0x1F68E, 0x1F68E, prExtendedPictographic}, // E1.0   [1] (🚎)       trolleybus\n\t{0x1F68F, 0x1F68F, prExtendedPictographic}, // E0.6   [1] (🚏)       bus stop\n\t{0x1F690, 0x1F690, prExtendedPictographic}, // E1.0   [1] (🚐)       minibus\n\t{0x1F691, 0x1F693, prExtendedPictographic}, // E0.6   [3] (🚑..🚓)    ambulance..police car\n\t{0x1F694, 0x1F694, prExtendedPictographic}, // E0.7   [1] (🚔)       oncoming police car\n\t{0x1F695, 0x1F695, prExtendedPictographic}, // E0.6   [1] (🚕)       taxi\n\t{0x1F696, 0x1F696, prExtendedPictographic}, // E1.0   [1] (🚖)       oncoming taxi\n\t{0x1F697, 0x1F697, prExtendedPictographic}, // E0.6   [1] (🚗)       automobile\n\t{0x1F698, 0x1F698, prExtendedPictographic}, // E0.7   [1] (🚘)       oncoming automobile\n\t{0x1F699, 0x1F69A, prExtendedPictographic}, // E0.6   [2] (🚙..🚚)    sport utility vehicle..delivery truck\n\t{0x1F69B, 0x1F6A1, prExtendedPictographic}, // E1.0   [7] (🚛..🚡)    articulated lorry..aerial tramway\n\t{0x1F6A2, 0x1F6A2, prExtendedPictographic}, // E0.6   [1] (🚢)       ship\n\t{0x1F6A3, 0x1F6A3, prExtendedPictographic}, // E1.0   [1] (🚣)       person rowing boat\n\t{0x1F6A4, 0x1F6A5, prExtendedPictographic}, // E0.6   [2] (🚤..🚥)    speedboat..horizontal traffic light\n\t{0x1F6A6, 0x1F6A6, prExtendedPictographic}, // E1.0   [1] (🚦)       vertical traffic light\n\t{0x1F6A7, 0x1F6AD, prExtendedPictographic}, // E0.6   [7] (🚧..🚭)    construction..no smoking\n\t{0x1F6AE, 0x1F6B1, prExtendedPictographic}, // E1.0   [4] (🚮..🚱)    litter in bin sign..non-potable water\n\t{0x1F6B2, 0x1F6B2, prExtendedPictographic}, // E0.6   [1] (🚲)       bicycle\n\t{0x1F6B3, 0x1F6B5, prExtendedPictographic}, // E1.0   [3] (🚳..🚵)    no bicycles..person mountain biking\n\t{0x1F6B6, 0x1F6B6, prExtendedPictographic}, // E0.6   [1] (🚶)       person walking\n\t{0x1F6B7, 0x1F6B8, prExtendedPictographic}, // E1.0   [2] (🚷..🚸)    no pedestrians..children crossing\n\t{0x1F6B9, 0x1F6BE, prExtendedPictographic}, // E0.6   [6] (🚹..🚾)    men’s room..water closet\n\t{0x1F6BF, 0x1F6BF, prExtendedPictographic}, // E1.0   [1] (🚿)       shower\n\t{0x1F6C0, 0x1F6C0, prExtendedPictographic}, // E0.6   [1] (🛀)       person taking bath\n\t{0x1F6C1, 0x1F6C5, prExtendedPictographic}, // E1.0   [5] (🛁..🛅)    bathtub..left luggage\n\t{0x1F6C6, 0x1F6CA, prExtendedPictographic}, // E0.0   [5] (🛆..🛊)    TRIANGLE WITH ROUNDED CORNERS..GIRLS SYMBOL\n\t{0x1F6CB, 0x1F6CB, prExtendedPictographic}, // E0.7   [1] (🛋️)       couch and lamp\n\t{0x1F6CC, 0x1F6CC, prExtendedPictographic}, // E1.0   [1] (🛌)       person in bed\n\t{0x1F6CD, 0x1F6CF, prExtendedPictographic}, // E0.7   [3] (🛍️..🛏️)    shopping bags..bed\n\t{0x1F6D0, 0x1F6D0, prExtendedPictographic}, // E1.0   [1] (🛐)       place of worship\n\t{0x1F6D1, 0x1F6D2, prExtendedPictographic}, // E3.0   [2] (🛑..🛒)    stop sign..shopping cart\n\t{0x1F6D3, 0x1F6D4, prExtendedPictographic}, // E0.0   [2] (🛓..🛔)    STUPA..PAGODA\n\t{0x1F6D5, 0x1F6D5, prExtendedPictographic}, // E12.0  [1] (🛕)       hindu temple\n\t{0x1F6D6, 0x1F6D7, prExtendedPictographic}, // E13.0  [2] (🛖..🛗)    hut..elevator\n\t{0x1F6D8, 0x1F6DB, prExtendedPictographic}, // E0.0   [4] (🛘..🛛)    <reserved-1F6D8>..<reserved-1F6DB>\n\t{0x1F6DC, 0x1F6DC, prExtendedPictographic}, // E15.0  [1] (🛜)       wireless\n\t{0x1F6DD, 0x1F6DF, prExtendedPictographic}, // E14.0  [3] (🛝..🛟)    playground slide..ring buoy\n\t{0x1F6E0, 0x1F6E5, prExtendedPictographic}, // E0.7   [6] (🛠️..🛥️)    hammer and wrench..motor boat\n\t{0x1F6E6, 0x1F6E8, prExtendedPictographic}, // E0.0   [3] (🛦..🛨)    UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE\n\t{0x1F6E9, 0x1F6E9, prExtendedPictographic}, // E0.7   [1] (🛩️)       small airplane\n\t{0x1F6EA, 0x1F6EA, prExtendedPictographic}, // E0.0   [1] (🛪)       NORTHEAST-POINTING AIRPLANE\n\t{0x1F6EB, 0x1F6EC, prExtendedPictographic}, // E1.0   [2] (🛫..🛬)    airplane departure..airplane arrival\n\t{0x1F6ED, 0x1F6EF, prExtendedPictographic}, // E0.0   [3] (🛭..🛯)    <reserved-1F6ED>..<reserved-1F6EF>\n\t{0x1F6F0, 0x1F6F0, prExtendedPictographic}, // E0.7   [1] (🛰️)       satellite\n\t{0x1F6F1, 0x1F6F2, prExtendedPictographic}, // E0.0   [2] (🛱..🛲)    ONCOMING FIRE ENGINE..DIESEL LOCOMOTIVE\n\t{0x1F6F3, 0x1F6F3, prExtendedPictographic}, // E0.7   [1] (🛳️)       passenger ship\n\t{0x1F6F4, 0x1F6F6, prExtendedPictographic}, // E3.0   [3] (🛴..🛶)    kick scooter..canoe\n\t{0x1F6F7, 0x1F6F8, prExtendedPictographic}, // E5.0   [2] (🛷..🛸)    sled..flying saucer\n\t{0x1F6F9, 0x1F6F9, prExtendedPictographic}, // E11.0  [1] (🛹)       skateboard\n\t{0x1F6FA, 0x1F6FA, prExtendedPictographic}, // E12.0  [1] (🛺)       auto rickshaw\n\t{0x1F6FB, 0x1F6FC, prExtendedPictographic}, // E13.0  [2] (🛻..🛼)    pickup truck..roller skate\n\t{0x1F6FD, 0x1F6FF, prExtendedPictographic}, // E0.0   [3] (🛽..🛿)    <reserved-1F6FD>..<reserved-1F6FF>\n\t{0x1F774, 0x1F77F, prExtendedPictographic}, // E0.0  [12] (🝴..🝿)    LOT OF FORTUNE..ORCUS\n\t{0x1F7D5, 0x1F7DF, prExtendedPictographic}, // E0.0  [11] (🟕..🟟)    CIRCLED TRIANGLE..<reserved-1F7DF>\n\t{0x1F7E0, 0x1F7EB, prExtendedPictographic}, // E12.0 [12] (🟠..🟫)    orange circle..brown square\n\t{0x1F7EC, 0x1F7EF, prExtendedPictographic}, // E0.0   [4] (🟬..🟯)    <reserved-1F7EC>..<reserved-1F7EF>\n\t{0x1F7F0, 0x1F7F0, prExtendedPictographic}, // E14.0  [1] (🟰)       heavy equals sign\n\t{0x1F7F1, 0x1F7FF, prExtendedPictographic}, // E0.0  [15] (🟱..🟿)    <reserved-1F7F1>..<reserved-1F7FF>\n\t{0x1F80C, 0x1F80F, prExtendedPictographic}, // E0.0   [4] (🠌..🠏)    <reserved-1F80C>..<reserved-1F80F>\n\t{0x1F848, 0x1F84F, prExtendedPictographic}, // E0.0   [8] (🡈..🡏)    <reserved-1F848>..<reserved-1F84F>\n\t{0x1F85A, 0x1F85F, prExtendedPictographic}, // E0.0   [6] (🡚..🡟)    <reserved-1F85A>..<reserved-1F85F>\n\t{0x1F888, 0x1F88F, prExtendedPictographic}, // E0.0   [8] (🢈..🢏)    <reserved-1F888>..<reserved-1F88F>\n\t{0x1F8AE, 0x1F8FF, prExtendedPictographic}, // E0.0  [82] (🢮..🣿)    <reserved-1F8AE>..<reserved-1F8FF>\n\t{0x1F90C, 0x1F90C, prExtendedPictographic}, // E13.0  [1] (🤌)       pinched fingers\n\t{0x1F90D, 0x1F90F, prExtendedPictographic}, // E12.0  [3] (🤍..🤏)    white heart..pinching hand\n\t{0x1F910, 0x1F918, prExtendedPictographic}, // E1.0   [9] (🤐..🤘)    zipper-mouth face..sign of the horns\n\t{0x1F919, 0x1F91E, prExtendedPictographic}, // E3.0   [6] (🤙..🤞)    call me hand..crossed fingers\n\t{0x1F91F, 0x1F91F, prExtendedPictographic}, // E5.0   [1] (🤟)       love-you gesture\n\t{0x1F920, 0x1F927, prExtendedPictographic}, // E3.0   [8] (🤠..🤧)    cowboy hat face..sneezing face\n\t{0x1F928, 0x1F92F, prExtendedPictographic}, // E5.0   [8] (🤨..🤯)    face with raised eyebrow..exploding head\n\t{0x1F930, 0x1F930, prExtendedPictographic}, // E3.0   [1] (🤰)       pregnant woman\n\t{0x1F931, 0x1F932, prExtendedPictographic}, // E5.0   [2] (🤱..🤲)    breast-feeding..palms up together\n\t{0x1F933, 0x1F93A, prExtendedPictographic}, // E3.0   [8] (🤳..🤺)    selfie..person fencing\n\t{0x1F93C, 0x1F93E, prExtendedPictographic}, // E3.0   [3] (🤼..🤾)    people wrestling..person playing handball\n\t{0x1F93F, 0x1F93F, prExtendedPictographic}, // E12.0  [1] (🤿)       diving mask\n\t{0x1F940, 0x1F945, prExtendedPictographic}, // E3.0   [6] (🥀..🥅)    wilted flower..goal net\n\t{0x1F947, 0x1F94B, prExtendedPictographic}, // E3.0   [5] (🥇..🥋)    1st place medal..martial arts uniform\n\t{0x1F94C, 0x1F94C, prExtendedPictographic}, // E5.0   [1] (🥌)       curling stone\n\t{0x1F94D, 0x1F94F, prExtendedPictographic}, // E11.0  [3] (🥍..🥏)    lacrosse..flying disc\n\t{0x1F950, 0x1F95E, prExtendedPictographic}, // E3.0  [15] (🥐..🥞)    croissant..pancakes\n\t{0x1F95F, 0x1F96B, prExtendedPictographic}, // E5.0  [13] (🥟..🥫)    dumpling..canned food\n\t{0x1F96C, 0x1F970, prExtendedPictographic}, // E11.0  [5] (🥬..🥰)    leafy green..smiling face with hearts\n\t{0x1F971, 0x1F971, prExtendedPictographic}, // E12.0  [1] (🥱)       yawning face\n\t{0x1F972, 0x1F972, prExtendedPictographic}, // E13.0  [1] (🥲)       smiling face with tear\n\t{0x1F973, 0x1F976, prExtendedPictographic}, // E11.0  [4] (🥳..🥶)    partying face..cold face\n\t{0x1F977, 0x1F978, prExtendedPictographic}, // E13.0  [2] (🥷..🥸)    ninja..disguised face\n\t{0x1F979, 0x1F979, prExtendedPictographic}, // E14.0  [1] (🥹)       face holding back tears\n\t{0x1F97A, 0x1F97A, prExtendedPictographic}, // E11.0  [1] (🥺)       pleading face\n\t{0x1F97B, 0x1F97B, prExtendedPictographic}, // E12.0  [1] (🥻)       sari\n\t{0x1F97C, 0x1F97F, prExtendedPictographic}, // E11.0  [4] (🥼..🥿)    lab coat..flat shoe\n\t{0x1F980, 0x1F984, prExtendedPictographic}, // E1.0   [5] (🦀..🦄)    crab..unicorn\n\t{0x1F985, 0x1F991, prExtendedPictographic}, // E3.0  [13] (🦅..🦑)    eagle..squid\n\t{0x1F992, 0x1F997, prExtendedPictographic}, // E5.0   [6] (🦒..🦗)    giraffe..cricket\n\t{0x1F998, 0x1F9A2, prExtendedPictographic}, // E11.0 [11] (🦘..🦢)    kangaroo..swan\n\t{0x1F9A3, 0x1F9A4, prExtendedPictographic}, // E13.0  [2] (🦣..🦤)    mammoth..dodo\n\t{0x1F9A5, 0x1F9AA, prExtendedPictographic}, // E12.0  [6] (🦥..🦪)    sloth..oyster\n\t{0x1F9AB, 0x1F9AD, prExtendedPictographic}, // E13.0  [3] (🦫..🦭)    beaver..seal\n\t{0x1F9AE, 0x1F9AF, prExtendedPictographic}, // E12.0  [2] (🦮..🦯)    guide dog..white cane\n\t{0x1F9B0, 0x1F9B9, prExtendedPictographic}, // E11.0 [10] (🦰..🦹)    red hair..supervillain\n\t{0x1F9BA, 0x1F9BF, prExtendedPictographic}, // E12.0  [6] (🦺..🦿)    safety vest..mechanical leg\n\t{0x1F9C0, 0x1F9C0, prExtendedPictographic}, // E1.0   [1] (🧀)       cheese wedge\n\t{0x1F9C1, 0x1F9C2, prExtendedPictographic}, // E11.0  [2] (🧁..🧂)    cupcake..salt\n\t{0x1F9C3, 0x1F9CA, prExtendedPictographic}, // E12.0  [8] (🧃..🧊)    beverage box..ice\n\t{0x1F9CB, 0x1F9CB, prExtendedPictographic}, // E13.0  [1] (🧋)       bubble tea\n\t{0x1F9CC, 0x1F9CC, prExtendedPictographic}, // E14.0  [1] (🧌)       troll\n\t{0x1F9CD, 0x1F9CF, prExtendedPictographic}, // E12.0  [3] (🧍..🧏)    person standing..deaf person\n\t{0x1F9D0, 0x1F9E6, prExtendedPictographic}, // E5.0  [23] (🧐..🧦)    face with monocle..socks\n\t{0x1F9E7, 0x1F9FF, prExtendedPictographic}, // E11.0 [25] (🧧..🧿)    red envelope..nazar amulet\n\t{0x1FA00, 0x1FA6F, prExtendedPictographic}, // E0.0 [112] (🨀..🩯)    NEUTRAL CHESS KING..<reserved-1FA6F>\n\t{0x1FA70, 0x1FA73, prExtendedPictographic}, // E12.0  [4] (🩰..🩳)    ballet shoes..shorts\n\t{0x1FA74, 0x1FA74, prExtendedPictographic}, // E13.0  [1] (🩴)       thong sandal\n\t{0x1FA75, 0x1FA77, prExtendedPictographic}, // E15.0  [3] (🩵..🩷)    light blue heart..pink heart\n\t{0x1FA78, 0x1FA7A, prExtendedPictographic}, // E12.0  [3] (🩸..🩺)    drop of blood..stethoscope\n\t{0x1FA7B, 0x1FA7C, prExtendedPictographic}, // E14.0  [2] (🩻..🩼)    x-ray..crutch\n\t{0x1FA7D, 0x1FA7F, prExtendedPictographic}, // E0.0   [3] (🩽..🩿)    <reserved-1FA7D>..<reserved-1FA7F>\n\t{0x1FA80, 0x1FA82, prExtendedPictographic}, // E12.0  [3] (🪀..🪂)    yo-yo..parachute\n\t{0x1FA83, 0x1FA86, prExtendedPictographic}, // E13.0  [4] (🪃..🪆)    boomerang..nesting dolls\n\t{0x1FA87, 0x1FA88, prExtendedPictographic}, // E15.0  [2] (🪇..🪈)    maracas..flute\n\t{0x1FA89, 0x1FA8F, prExtendedPictographic}, // E0.0   [7] (🪉..🪏)    <reserved-1FA89>..<reserved-1FA8F>\n\t{0x1FA90, 0x1FA95, prExtendedPictographic}, // E12.0  [6] (🪐..🪕)    ringed planet..banjo\n\t{0x1FA96, 0x1FAA8, prExtendedPictographic}, // E13.0 [19] (🪖..🪨)    military helmet..rock\n\t{0x1FAA9, 0x1FAAC, prExtendedPictographic}, // E14.0  [4] (🪩..🪬)    mirror ball..hamsa\n\t{0x1FAAD, 0x1FAAF, prExtendedPictographic}, // E15.0  [3] (🪭..🪯)    folding hand fan..khanda\n\t{0x1FAB0, 0x1FAB6, prExtendedPictographic}, // E13.0  [7] (🪰..🪶)    fly..feather\n\t{0x1FAB7, 0x1FABA, prExtendedPictographic}, // E14.0  [4] (🪷..🪺)    lotus..nest with eggs\n\t{0x1FABB, 0x1FABD, prExtendedPictographic}, // E15.0  [3] (🪻..🪽)    hyacinth..wing\n\t{0x1FABE, 0x1FABE, prExtendedPictographic}, // E0.0   [1] (🪾)       <reserved-1FABE>\n\t{0x1FABF, 0x1FABF, prExtendedPictographic}, // E15.0  [1] (🪿)       goose\n\t{0x1FAC0, 0x1FAC2, prExtendedPictographic}, // E13.0  [3] (🫀..🫂)    anatomical heart..people hugging\n\t{0x1FAC3, 0x1FAC5, prExtendedPictographic}, // E14.0  [3] (🫃..🫅)    pregnant man..person with crown\n\t{0x1FAC6, 0x1FACD, prExtendedPictographic}, // E0.0   [8] (🫆..🫍)    <reserved-1FAC6>..<reserved-1FACD>\n\t{0x1FACE, 0x1FACF, prExtendedPictographic}, // E15.0  [2] (🫎..🫏)    moose..donkey\n\t{0x1FAD0, 0x1FAD6, prExtendedPictographic}, // E13.0  [7] (🫐..🫖)    blueberries..teapot\n\t{0x1FAD7, 0x1FAD9, prExtendedPictographic}, // E14.0  [3] (🫗..🫙)    pouring liquid..jar\n\t{0x1FADA, 0x1FADB, prExtendedPictographic}, // E15.0  [2] (🫚..🫛)    ginger root..pea pod\n\t{0x1FADC, 0x1FADF, prExtendedPictographic}, // E0.0   [4] (🫜..🫟)    <reserved-1FADC>..<reserved-1FADF>\n\t{0x1FAE0, 0x1FAE7, prExtendedPictographic}, // E14.0  [8] (🫠..🫧)    melting face..bubbles\n\t{0x1FAE8, 0x1FAE8, prExtendedPictographic}, // E15.0  [1] (🫨)       shaking face\n\t{0x1FAE9, 0x1FAEF, prExtendedPictographic}, // E0.0   [7] (🫩..🫯)    <reserved-1FAE9>..<reserved-1FAEF>\n\t{0x1FAF0, 0x1FAF6, prExtendedPictographic}, // E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands\n\t{0x1FAF7, 0x1FAF8, prExtendedPictographic}, // E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand\n\t{0x1FAF9, 0x1FAFF, prExtendedPictographic}, // E0.0   [7] (🫹..🫿)    <reserved-1FAF9>..<reserved-1FAFF>\n\t{0x1FC00, 0x1FFFD, prExtendedPictographic}, // E0.0[1022] (🰀..🿽)    <reserved-1FC00>..<reserved-1FFFD>\n\t{0xE0000, 0xE0000, prControl},              // Cn       <reserved-E0000>\n\t{0xE0001, 0xE0001, prControl},              // Cf       LANGUAGE TAG\n\t{0xE0002, 0xE001F, prControl},              // Cn  [30] <reserved-E0002>..<reserved-E001F>\n\t{0xE0020, 0xE007F, prExtend},               // Cf  [96] TAG SPACE..CANCEL TAG\n\t{0xE0080, 0xE00FF, prControl},              // Cn [128] <reserved-E0080>..<reserved-E00FF>\n\t{0xE0100, 0xE01EF, prExtend},               // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256\n\t{0xE01F0, 0xE0FFF, prControl},              // Cn [3600] <reserved-E01F0>..<reserved-E0FFF>\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/graphemerules.go",
    "content": "package uniseg\n\n// The states of the grapheme cluster parser.\nconst (\n\tgrAny = iota\n\tgrCR\n\tgrControlLF\n\tgrL\n\tgrLVV\n\tgrLVTT\n\tgrPrepend\n\tgrExtendedPictographic\n\tgrExtendedPictographicZWJ\n\tgrRIOdd\n\tgrRIEven\n)\n\n// The grapheme cluster parser's breaking instructions.\nconst (\n\tgrNoBoundary = iota\n\tgrBoundary\n)\n\n// grTransitions implements the grapheme cluster parser's state transitions.\n// Maps state and property to a new state, a breaking instruction, and rule\n// number. The breaking instruction always refers to the boundary between the\n// last and next code point. Returns negative values if no transition is found.\n//\n// This function is used as follows:\n//\n//  1. Find specific state + specific property. Stop if found.\n//  2. Find specific state + any property.\n//  3. Find any state + specific property.\n//  4. If only (2) or (3) (but not both) was found, stop.\n//  5. If both (2) and (3) were found, use state from (3) and breaking instruction\n//     from the transition with the lower rule number, prefer (3) if rule numbers\n//     are equal. Stop.\n//  6. Assume grAny and grBoundary.\n//\n// Unicode version 15.0.0.\nfunc grTransitions(state, prop int) (newState int, newProp int, boundary int) {\n\t// It turns out that using a big switch statement is much faster than using\n\t// a map.\n\n\tswitch uint64(state) | uint64(prop)<<32 {\n\t// GB5\n\tcase grAny | prCR<<32:\n\t\treturn grCR, grBoundary, 50\n\tcase grAny | prLF<<32:\n\t\treturn grControlLF, grBoundary, 50\n\tcase grAny | prControl<<32:\n\t\treturn grControlLF, grBoundary, 50\n\n\t// GB4\n\tcase grCR | prAny<<32:\n\t\treturn grAny, grBoundary, 40\n\tcase grControlLF | prAny<<32:\n\t\treturn grAny, grBoundary, 40\n\n\t// GB3\n\tcase grCR | prLF<<32:\n\t\treturn grControlLF, grNoBoundary, 30\n\n\t// GB6\n\tcase grAny | prL<<32:\n\t\treturn grL, grBoundary, 9990\n\tcase grL | prL<<32:\n\t\treturn grL, grNoBoundary, 60\n\tcase grL | prV<<32:\n\t\treturn grLVV, grNoBoundary, 60\n\tcase grL | prLV<<32:\n\t\treturn grLVV, grNoBoundary, 60\n\tcase grL | prLVT<<32:\n\t\treturn grLVTT, grNoBoundary, 60\n\n\t// GB7\n\tcase grAny | prLV<<32:\n\t\treturn grLVV, grBoundary, 9990\n\tcase grAny | prV<<32:\n\t\treturn grLVV, grBoundary, 9990\n\tcase grLVV | prV<<32:\n\t\treturn grLVV, grNoBoundary, 70\n\tcase grLVV | prT<<32:\n\t\treturn grLVTT, grNoBoundary, 70\n\n\t// GB8\n\tcase grAny | prLVT<<32:\n\t\treturn grLVTT, grBoundary, 9990\n\tcase grAny | prT<<32:\n\t\treturn grLVTT, grBoundary, 9990\n\tcase grLVTT | prT<<32:\n\t\treturn grLVTT, grNoBoundary, 80\n\n\t// GB9\n\tcase grAny | prExtend<<32:\n\t\treturn grAny, grNoBoundary, 90\n\tcase grAny | prZWJ<<32:\n\t\treturn grAny, grNoBoundary, 90\n\n\t// GB9a\n\tcase grAny | prSpacingMark<<32:\n\t\treturn grAny, grNoBoundary, 91\n\n\t// GB9b\n\tcase grAny | prPrepend<<32:\n\t\treturn grPrepend, grBoundary, 9990\n\tcase grPrepend | prAny<<32:\n\t\treturn grAny, grNoBoundary, 92\n\n\t// GB11\n\tcase grAny | prExtendedPictographic<<32:\n\t\treturn grExtendedPictographic, grBoundary, 9990\n\tcase grExtendedPictographic | prExtend<<32:\n\t\treturn grExtendedPictographic, grNoBoundary, 110\n\tcase grExtendedPictographic | prZWJ<<32:\n\t\treturn grExtendedPictographicZWJ, grNoBoundary, 110\n\tcase grExtendedPictographicZWJ | prExtendedPictographic<<32:\n\t\treturn grExtendedPictographic, grNoBoundary, 110\n\n\t// GB12 / GB13\n\tcase grAny | prRegionalIndicator<<32:\n\t\treturn grRIOdd, grBoundary, 9990\n\tcase grRIOdd | prRegionalIndicator<<32:\n\t\treturn grRIEven, grNoBoundary, 120\n\tcase grRIEven | prRegionalIndicator<<32:\n\t\treturn grRIOdd, grBoundary, 120\n\tdefault:\n\t\treturn -1, -1, -1\n\t}\n}\n\n// transitionGraphemeState determines the new state of the grapheme cluster\n// parser given the current state and the next code point. It also returns the\n// code point's grapheme property (the value mapped by the [graphemeCodePoints]\n// table) and whether a cluster boundary was detected.\nfunc transitionGraphemeState(state int, r rune) (newState, prop int, boundary bool) {\n\t// Determine the property of the next character.\n\tprop = propertyGraphemes(r)\n\n\t// Find the applicable transition.\n\tnextState, nextProp, _ := grTransitions(state, prop)\n\tif nextState >= 0 {\n\t\t// We have a specific transition. We'll use it.\n\t\treturn nextState, prop, nextProp == grBoundary\n\t}\n\n\t// No specific transition found. Try the less specific ones.\n\tanyPropState, anyPropProp, anyPropRule := grTransitions(state, prAny)\n\tanyStateState, anyStateProp, anyStateRule := grTransitions(grAny, prop)\n\tif anyPropState >= 0 && anyStateState >= 0 {\n\t\t// Both apply. We'll use a mix (see comments for grTransitions).\n\t\tnewState = anyStateState\n\t\tboundary = anyStateProp == grBoundary\n\t\tif anyPropRule < anyStateRule {\n\t\t\tboundary = anyPropProp == grBoundary\n\t\t}\n\t\treturn\n\t}\n\n\tif anyPropState >= 0 {\n\t\t// We only have a specific state.\n\t\treturn anyPropState, prop, anyPropProp == grBoundary\n\t\t// This branch will probably never be reached because okAnyState will\n\t\t// always be true given the current transition map. But we keep it here\n\t\t// for future modifications to the transition map where this may not be\n\t\t// true anymore.\n\t}\n\n\tif anyStateState >= 0 {\n\t\t// We only have a specific property.\n\t\treturn anyStateState, prop, anyStateProp == grBoundary\n\t}\n\n\t// No known transition. GB999: Any ÷ Any.\n\treturn grAny, prop, true\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/line.go",
    "content": "package uniseg\n\nimport \"unicode/utf8\"\n\n// FirstLineSegment returns the prefix of the given byte slice after which a\n// decision to break the string over to the next line can or must be made,\n// according to the rules of [Unicode Standard Annex #14]. This is used to\n// implement line breaking.\n//\n// Line breaking, also known as word wrapping, is the process of breaking a\n// section of text into lines such that it will fit in the available width of a\n// page, window or other display area.\n//\n// The returned \"segment\" may not be broken into smaller parts, unless no other\n// breaking opportunities present themselves, in which case you may break by\n// grapheme clusters (using the [FirstGraphemeCluster] function to determine the\n// grapheme clusters).\n//\n// The \"mustBreak\" flag indicates whether you MUST break the line after the\n// given segment (true), for example after newline characters, or you MAY break\n// the line after the given segment (false).\n//\n// This function can be called continuously to extract all non-breaking sub-sets\n// from a byte slice, as illustrated in the example below.\n//\n// If you don't know the current state, for example when calling the function\n// for the first time, you must pass -1. For consecutive calls, pass the state\n// and rest slice returned by the previous call.\n//\n// The \"rest\" slice is the sub-slice of the original byte slice \"b\" starting\n// after the last byte of the identified line segment. If the length of the\n// \"rest\" slice is 0, the entire byte slice \"b\" has been processed. The\n// \"segment\" byte slice is the sub-slice of the input slice containing the\n// identified line segment.\n//\n// Given an empty byte slice \"b\", the function returns nil values.\n//\n// Note that in accordance with [UAX #14 LB3], the final segment will end with\n// \"mustBreak\" set to true. You can choose to ignore this by checking if the\n// length of the \"rest\" slice is 0 and calling [HasTrailingLineBreak] or\n// [HasTrailingLineBreakInString] on the last rune.\n//\n// Note also that this algorithm may break within grapheme clusters. This is\n// addressed in Section 8.2 Example 6 of UAX #14. To avoid this, you can use\n// the [Step] function instead.\n//\n// [Unicode Standard Annex #14]: https://www.unicode.org/reports/tr14/\n// [UAX #14 LB3]: https://www.unicode.org/reports/tr14/#Algorithm\nfunc FirstLineSegment(b []byte, state int) (segment, rest []byte, mustBreak bool, newState int) {\n\t// An empty byte slice returns nothing.\n\tif len(b) == 0 {\n\t\treturn\n\t}\n\n\t// Extract the first rune.\n\tr, length := utf8.DecodeRune(b)\n\tif len(b) <= length { // If we're already past the end, there is nothing else to parse.\n\t\treturn b, nil, true, lbAny // LB3.\n\t}\n\n\t// If we don't know the state, determine it now.\n\tif state < 0 {\n\t\tstate, _ = transitionLineBreakState(state, r, b[length:], \"\")\n\t}\n\n\t// Transition until we find a boundary.\n\tvar boundary int\n\tfor {\n\t\tr, l := utf8.DecodeRune(b[length:])\n\t\tstate, boundary = transitionLineBreakState(state, r, b[length+l:], \"\")\n\n\t\tif boundary != LineDontBreak {\n\t\t\treturn b[:length], b[length:], boundary == LineMustBreak, state\n\t\t}\n\n\t\tlength += l\n\t\tif len(b) <= length {\n\t\t\treturn b, nil, true, lbAny // LB3\n\t\t}\n\t}\n}\n\n// FirstLineSegmentInString is like [FirstLineSegment] but its input and outputs\n// are strings.\nfunc FirstLineSegmentInString(str string, state int) (segment, rest string, mustBreak bool, newState int) {\n\t// An empty byte slice returns nothing.\n\tif len(str) == 0 {\n\t\treturn\n\t}\n\n\t// Extract the first rune.\n\tr, length := utf8.DecodeRuneInString(str)\n\tif len(str) <= length { // If we're already past the end, there is nothing else to parse.\n\t\treturn str, \"\", true, lbAny // LB3.\n\t}\n\n\t// If we don't know the state, determine it now.\n\tif state < 0 {\n\t\tstate, _ = transitionLineBreakState(state, r, nil, str[length:])\n\t}\n\n\t// Transition until we find a boundary.\n\tvar boundary int\n\tfor {\n\t\tr, l := utf8.DecodeRuneInString(str[length:])\n\t\tstate, boundary = transitionLineBreakState(state, r, nil, str[length+l:])\n\n\t\tif boundary != LineDontBreak {\n\t\t\treturn str[:length], str[length:], boundary == LineMustBreak, state\n\t\t}\n\n\t\tlength += l\n\t\tif len(str) <= length {\n\t\t\treturn str, \"\", true, lbAny // LB3.\n\t\t}\n\t}\n}\n\n// HasTrailingLineBreak returns true if the last rune in the given byte slice is\n// one of the hard line break code points defined in LB4 and LB5 of [UAX #14].\n//\n// [UAX #14]: https://www.unicode.org/reports/tr14/#Algorithm\nfunc HasTrailingLineBreak(b []byte) bool {\n\tr, _ := utf8.DecodeLastRune(b)\n\tproperty, _ := propertyLineBreak(r)\n\treturn property == prBK || property == prCR || property == prLF || property == prNL\n}\n\n// HasTrailingLineBreakInString is like [HasTrailingLineBreak] but for a string.\nfunc HasTrailingLineBreakInString(str string) bool {\n\tr, _ := utf8.DecodeLastRuneInString(str)\n\tproperty, _ := propertyLineBreak(r)\n\treturn property == prBK || property == prCR || property == prLF || property == prNL\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/lineproperties.go",
    "content": "// Code generated via go generate from gen_properties.go. DO NOT EDIT.\n\npackage uniseg\n\n// lineBreakCodePoints are taken from\n// https://www.unicode.org/Public/15.0.0/ucd/LineBreak.txt\n// and\n// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt\n// (\"Extended_Pictographic\" only)\n// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode\n// license agreement.\nvar lineBreakCodePoints = [][4]int{\n\t{0x0000, 0x0008, prCM, gcCc},     //     [9] <control-0000>..<control-0008>\n\t{0x0009, 0x0009, prBA, gcCc},     //         <control-0009>\n\t{0x000A, 0x000A, prLF, gcCc},     //         <control-000A>\n\t{0x000B, 0x000C, prBK, gcCc},     //     [2] <control-000B>..<control-000C>\n\t{0x000D, 0x000D, prCR, gcCc},     //         <control-000D>\n\t{0x000E, 0x001F, prCM, gcCc},     //    [18] <control-000E>..<control-001F>\n\t{0x0020, 0x0020, prSP, gcZs},     //         SPACE\n\t{0x0021, 0x0021, prEX, gcPo},     //         EXCLAMATION MARK\n\t{0x0022, 0x0022, prQU, gcPo},     //         QUOTATION MARK\n\t{0x0023, 0x0023, prAL, gcPo},     //         NUMBER SIGN\n\t{0x0024, 0x0024, prPR, gcSc},     //         DOLLAR SIGN\n\t{0x0025, 0x0025, prPO, gcPo},     //         PERCENT SIGN\n\t{0x0026, 0x0026, prAL, gcPo},     //         AMPERSAND\n\t{0x0027, 0x0027, prQU, gcPo},     //         APOSTROPHE\n\t{0x0028, 0x0028, prOP, gcPs},     //         LEFT PARENTHESIS\n\t{0x0029, 0x0029, prCP, gcPe},     //         RIGHT PARENTHESIS\n\t{0x002A, 0x002A, prAL, gcPo},     //         ASTERISK\n\t{0x002B, 0x002B, prPR, gcSm},     //         PLUS SIGN\n\t{0x002C, 0x002C, prIS, gcPo},     //         COMMA\n\t{0x002D, 0x002D, prHY, gcPd},     //         HYPHEN-MINUS\n\t{0x002E, 0x002E, prIS, gcPo},     //         FULL STOP\n\t{0x002F, 0x002F, prSY, gcPo},     //         SOLIDUS\n\t{0x0030, 0x0039, prNU, gcNd},     //    [10] DIGIT ZERO..DIGIT NINE\n\t{0x003A, 0x003B, prIS, gcPo},     //     [2] COLON..SEMICOLON\n\t{0x003C, 0x003E, prAL, gcSm},     //     [3] LESS-THAN SIGN..GREATER-THAN SIGN\n\t{0x003F, 0x003F, prEX, gcPo},     //         QUESTION MARK\n\t{0x0040, 0x0040, prAL, gcPo},     //         COMMERCIAL AT\n\t{0x0041, 0x005A, prAL, gcLu},     //    [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z\n\t{0x005B, 0x005B, prOP, gcPs},     //         LEFT SQUARE BRACKET\n\t{0x005C, 0x005C, prPR, gcPo},     //         REVERSE SOLIDUS\n\t{0x005D, 0x005D, prCP, gcPe},     //         RIGHT SQUARE BRACKET\n\t{0x005E, 0x005E, prAL, gcSk},     //         CIRCUMFLEX ACCENT\n\t{0x005F, 0x005F, prAL, gcPc},     //         LOW LINE\n\t{0x0060, 0x0060, prAL, gcSk},     //         GRAVE ACCENT\n\t{0x0061, 0x007A, prAL, gcLl},     //    [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z\n\t{0x007B, 0x007B, prOP, gcPs},     //         LEFT CURLY BRACKET\n\t{0x007C, 0x007C, prBA, gcSm},     //         VERTICAL LINE\n\t{0x007D, 0x007D, prCL, gcPe},     //         RIGHT CURLY BRACKET\n\t{0x007E, 0x007E, prAL, gcSm},     //         TILDE\n\t{0x007F, 0x007F, prCM, gcCc},     //         <control-007F>\n\t{0x0080, 0x0084, prCM, gcCc},     //     [5] <control-0080>..<control-0084>\n\t{0x0085, 0x0085, prNL, gcCc},     //         <control-0085>\n\t{0x0086, 0x009F, prCM, gcCc},     //    [26] <control-0086>..<control-009F>\n\t{0x00A0, 0x00A0, prGL, gcZs},     //         NO-BREAK SPACE\n\t{0x00A1, 0x00A1, prOP, gcPo},     //         INVERTED EXCLAMATION MARK\n\t{0x00A2, 0x00A2, prPO, gcSc},     //         CENT SIGN\n\t{0x00A3, 0x00A5, prPR, gcSc},     //     [3] POUND SIGN..YEN SIGN\n\t{0x00A6, 0x00A6, prAL, gcSo},     //         BROKEN BAR\n\t{0x00A7, 0x00A7, prAI, gcPo},     //         SECTION SIGN\n\t{0x00A8, 0x00A8, prAI, gcSk},     //         DIAERESIS\n\t{0x00A9, 0x00A9, prAL, gcSo},     //         COPYRIGHT SIGN\n\t{0x00AA, 0x00AA, prAI, gcLo},     //         FEMININE ORDINAL INDICATOR\n\t{0x00AB, 0x00AB, prQU, gcPi},     //         LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\n\t{0x00AC, 0x00AC, prAL, gcSm},     //         NOT SIGN\n\t{0x00AD, 0x00AD, prBA, gcCf},     //         SOFT HYPHEN\n\t{0x00AE, 0x00AE, prAL, gcSo},     //         REGISTERED SIGN\n\t{0x00AF, 0x00AF, prAL, gcSk},     //         MACRON\n\t{0x00B0, 0x00B0, prPO, gcSo},     //         DEGREE SIGN\n\t{0x00B1, 0x00B1, prPR, gcSm},     //         PLUS-MINUS SIGN\n\t{0x00B2, 0x00B3, prAI, gcNo},     //     [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE\n\t{0x00B4, 0x00B4, prBB, gcSk},     //         ACUTE ACCENT\n\t{0x00B5, 0x00B5, prAL, gcLl},     //         MICRO SIGN\n\t{0x00B6, 0x00B7, prAI, gcPo},     //     [2] PILCROW SIGN..MIDDLE DOT\n\t{0x00B8, 0x00B8, prAI, gcSk},     //         CEDILLA\n\t{0x00B9, 0x00B9, prAI, gcNo},     //         SUPERSCRIPT ONE\n\t{0x00BA, 0x00BA, prAI, gcLo},     //         MASCULINE ORDINAL INDICATOR\n\t{0x00BB, 0x00BB, prQU, gcPf},     //         RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\n\t{0x00BC, 0x00BE, prAI, gcNo},     //     [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS\n\t{0x00BF, 0x00BF, prOP, gcPo},     //         INVERTED QUESTION MARK\n\t{0x00C0, 0x00D6, prAL, gcLu},     //    [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS\n\t{0x00D7, 0x00D7, prAI, gcSm},     //         MULTIPLICATION SIGN\n\t{0x00D8, 0x00F6, prAL, gcLC},     //    [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS\n\t{0x00F7, 0x00F7, prAI, gcSm},     //         DIVISION SIGN\n\t{0x00F8, 0x00FF, prAL, gcLl},     //     [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS\n\t{0x0100, 0x017F, prAL, gcLC},     //   [128] LATIN CAPITAL LETTER A WITH MACRON..LATIN SMALL LETTER LONG S\n\t{0x0180, 0x01BA, prAL, gcLC},     //    [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL\n\t{0x01BB, 0x01BB, prAL, gcLo},     //         LATIN LETTER TWO WITH STROKE\n\t{0x01BC, 0x01BF, prAL, gcLC},     //     [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN\n\t{0x01C0, 0x01C3, prAL, gcLo},     //     [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK\n\t{0x01C4, 0x024F, prAL, gcLC},     //   [140] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER Y WITH STROKE\n\t{0x0250, 0x0293, prAL, gcLl},     //    [68] LATIN SMALL LETTER TURNED A..LATIN SMALL LETTER EZH WITH CURL\n\t{0x0294, 0x0294, prAL, gcLo},     //         LATIN LETTER GLOTTAL STOP\n\t{0x0295, 0x02AF, prAL, gcLl},     //    [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL\n\t{0x02B0, 0x02C1, prAL, gcLm},     //    [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP\n\t{0x02C2, 0x02C5, prAL, gcSk},     //     [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD\n\t{0x02C6, 0x02C6, prAL, gcLm},     //         MODIFIER LETTER CIRCUMFLEX ACCENT\n\t{0x02C7, 0x02C7, prAI, gcLm},     //         CARON\n\t{0x02C8, 0x02C8, prBB, gcLm},     //         MODIFIER LETTER VERTICAL LINE\n\t{0x02C9, 0x02CB, prAI, gcLm},     //     [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT\n\t{0x02CC, 0x02CC, prBB, gcLm},     //         MODIFIER LETTER LOW VERTICAL LINE\n\t{0x02CD, 0x02CD, prAI, gcLm},     //         MODIFIER LETTER LOW MACRON\n\t{0x02CE, 0x02CF, prAL, gcLm},     //     [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT\n\t{0x02D0, 0x02D0, prAI, gcLm},     //         MODIFIER LETTER TRIANGULAR COLON\n\t{0x02D1, 0x02D1, prAL, gcLm},     //         MODIFIER LETTER HALF TRIANGULAR COLON\n\t{0x02D2, 0x02D7, prAL, gcSk},     //     [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN\n\t{0x02D8, 0x02DB, prAI, gcSk},     //     [4] BREVE..OGONEK\n\t{0x02DC, 0x02DC, prAL, gcSk},     //         SMALL TILDE\n\t{0x02DD, 0x02DD, prAI, gcSk},     //         DOUBLE ACUTE ACCENT\n\t{0x02DE, 0x02DE, prAL, gcSk},     //         MODIFIER LETTER RHOTIC HOOK\n\t{0x02DF, 0x02DF, prBB, gcSk},     //         MODIFIER LETTER CROSS ACCENT\n\t{0x02E0, 0x02E4, prAL, gcLm},     //     [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP\n\t{0x02E5, 0x02EB, prAL, gcSk},     //     [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK\n\t{0x02EC, 0x02EC, prAL, gcLm},     //         MODIFIER LETTER VOICING\n\t{0x02ED, 0x02ED, prAL, gcSk},     //         MODIFIER LETTER UNASPIRATED\n\t{0x02EE, 0x02EE, prAL, gcLm},     //         MODIFIER LETTER DOUBLE APOSTROPHE\n\t{0x02EF, 0x02FF, prAL, gcSk},     //    [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW\n\t{0x0300, 0x034E, prCM, gcMn},     //    [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW\n\t{0x034F, 0x034F, prGL, gcMn},     //         COMBINING GRAPHEME JOINER\n\t{0x0350, 0x035B, prCM, gcMn},     //    [12] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING ZIGZAG ABOVE\n\t{0x035C, 0x0362, prGL, gcMn},     //     [7] COMBINING DOUBLE BREVE BELOW..COMBINING DOUBLE RIGHTWARDS ARROW BELOW\n\t{0x0363, 0x036F, prCM, gcMn},     //    [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X\n\t{0x0370, 0x0373, prAL, gcLC},     //     [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI\n\t{0x0374, 0x0374, prAL, gcLm},     //         GREEK NUMERAL SIGN\n\t{0x0375, 0x0375, prAL, gcSk},     //         GREEK LOWER NUMERAL SIGN\n\t{0x0376, 0x0377, prAL, gcLC},     //     [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA\n\t{0x037A, 0x037A, prAL, gcLm},     //         GREEK YPOGEGRAMMENI\n\t{0x037B, 0x037D, prAL, gcLl},     //     [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL\n\t{0x037E, 0x037E, prIS, gcPo},     //         GREEK QUESTION MARK\n\t{0x037F, 0x037F, prAL, gcLu},     //         GREEK CAPITAL LETTER YOT\n\t{0x0384, 0x0385, prAL, gcSk},     //     [2] GREEK TONOS..GREEK DIALYTIKA TONOS\n\t{0x0386, 0x0386, prAL, gcLu},     //         GREEK CAPITAL LETTER ALPHA WITH TONOS\n\t{0x0387, 0x0387, prAL, gcPo},     //         GREEK ANO TELEIA\n\t{0x0388, 0x038A, prAL, gcLu},     //     [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS\n\t{0x038C, 0x038C, prAL, gcLu},     //         GREEK CAPITAL LETTER OMICRON WITH TONOS\n\t{0x038E, 0x03A1, prAL, gcLC},     //    [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO\n\t{0x03A3, 0x03F5, prAL, gcLC},     //    [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL\n\t{0x03F6, 0x03F6, prAL, gcSm},     //         GREEK REVERSED LUNATE EPSILON SYMBOL\n\t{0x03F7, 0x03FF, prAL, gcLC},     //     [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL\n\t{0x0400, 0x0481, prAL, gcLC},     //   [130] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER KOPPA\n\t{0x0482, 0x0482, prAL, gcSo},     //         CYRILLIC THOUSANDS SIGN\n\t{0x0483, 0x0487, prCM, gcMn},     //     [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE\n\t{0x0488, 0x0489, prCM, gcMe},     //     [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN\n\t{0x048A, 0x04FF, prAL, gcLC},     //   [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE\n\t{0x0500, 0x052F, prAL, gcLC},     //    [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER\n\t{0x0531, 0x0556, prAL, gcLu},     //    [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH\n\t{0x0559, 0x0559, prAL, gcLm},     //         ARMENIAN MODIFIER LETTER LEFT HALF RING\n\t{0x055A, 0x055F, prAL, gcPo},     //     [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK\n\t{0x0560, 0x0588, prAL, gcLl},     //    [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE\n\t{0x0589, 0x0589, prIS, gcPo},     //         ARMENIAN FULL STOP\n\t{0x058A, 0x058A, prBA, gcPd},     //         ARMENIAN HYPHEN\n\t{0x058D, 0x058E, prAL, gcSo},     //     [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN\n\t{0x058F, 0x058F, prPR, gcSc},     //         ARMENIAN DRAM SIGN\n\t{0x0591, 0x05BD, prCM, gcMn},     //    [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG\n\t{0x05BE, 0x05BE, prBA, gcPd},     //         HEBREW PUNCTUATION MAQAF\n\t{0x05BF, 0x05BF, prCM, gcMn},     //         HEBREW POINT RAFE\n\t{0x05C0, 0x05C0, prAL, gcPo},     //         HEBREW PUNCTUATION PASEQ\n\t{0x05C1, 0x05C2, prCM, gcMn},     //     [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT\n\t{0x05C3, 0x05C3, prAL, gcPo},     //         HEBREW PUNCTUATION SOF PASUQ\n\t{0x05C4, 0x05C5, prCM, gcMn},     //     [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT\n\t{0x05C6, 0x05C6, prEX, gcPo},     //         HEBREW PUNCTUATION NUN HAFUKHA\n\t{0x05C7, 0x05C7, prCM, gcMn},     //         HEBREW POINT QAMATS QATAN\n\t{0x05D0, 0x05EA, prHL, gcLo},     //    [27] HEBREW LETTER ALEF..HEBREW LETTER TAV\n\t{0x05EF, 0x05F2, prHL, gcLo},     //     [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD\n\t{0x05F3, 0x05F4, prAL, gcPo},     //     [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM\n\t{0x0600, 0x0605, prAL, gcCf},     //     [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE\n\t{0x0606, 0x0608, prAL, gcSm},     //     [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY\n\t{0x0609, 0x060A, prPO, gcPo},     //     [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN\n\t{0x060B, 0x060B, prPO, gcSc},     //         AFGHANI SIGN\n\t{0x060C, 0x060D, prIS, gcPo},     //     [2] ARABIC COMMA..ARABIC DATE SEPARATOR\n\t{0x060E, 0x060F, prAL, gcSo},     //     [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA\n\t{0x0610, 0x061A, prCM, gcMn},     //    [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA\n\t{0x061B, 0x061B, prEX, gcPo},     //         ARABIC SEMICOLON\n\t{0x061C, 0x061C, prCM, gcCf},     //         ARABIC LETTER MARK\n\t{0x061D, 0x061F, prEX, gcPo},     //     [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK\n\t{0x0620, 0x063F, prAL, gcLo},     //    [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE\n\t{0x0640, 0x0640, prAL, gcLm},     //         ARABIC TATWEEL\n\t{0x0641, 0x064A, prAL, gcLo},     //    [10] ARABIC LETTER FEH..ARABIC LETTER YEH\n\t{0x064B, 0x065F, prCM, gcMn},     //    [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW\n\t{0x0660, 0x0669, prNU, gcNd},     //    [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE\n\t{0x066A, 0x066A, prPO, gcPo},     //         ARABIC PERCENT SIGN\n\t{0x066B, 0x066C, prNU, gcPo},     //     [2] ARABIC DECIMAL SEPARATOR..ARABIC THOUSANDS SEPARATOR\n\t{0x066D, 0x066D, prAL, gcPo},     //         ARABIC FIVE POINTED STAR\n\t{0x066E, 0x066F, prAL, gcLo},     //     [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF\n\t{0x0670, 0x0670, prCM, gcMn},     //         ARABIC LETTER SUPERSCRIPT ALEF\n\t{0x0671, 0x06D3, prAL, gcLo},     //    [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n\t{0x06D4, 0x06D4, prEX, gcPo},     //         ARABIC FULL STOP\n\t{0x06D5, 0x06D5, prAL, gcLo},     //         ARABIC LETTER AE\n\t{0x06D6, 0x06DC, prCM, gcMn},     //     [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN\n\t{0x06DD, 0x06DD, prAL, gcCf},     //         ARABIC END OF AYAH\n\t{0x06DE, 0x06DE, prAL, gcSo},     //         ARABIC START OF RUB EL HIZB\n\t{0x06DF, 0x06E4, prCM, gcMn},     //     [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA\n\t{0x06E5, 0x06E6, prAL, gcLm},     //     [2] ARABIC SMALL WAW..ARABIC SMALL YEH\n\t{0x06E7, 0x06E8, prCM, gcMn},     //     [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON\n\t{0x06E9, 0x06E9, prAL, gcSo},     //         ARABIC PLACE OF SAJDAH\n\t{0x06EA, 0x06ED, prCM, gcMn},     //     [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM\n\t{0x06EE, 0x06EF, prAL, gcLo},     //     [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V\n\t{0x06F0, 0x06F9, prNU, gcNd},     //    [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE\n\t{0x06FA, 0x06FC, prAL, gcLo},     //     [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW\n\t{0x06FD, 0x06FE, prAL, gcSo},     //     [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN\n\t{0x06FF, 0x06FF, prAL, gcLo},     //         ARABIC LETTER HEH WITH INVERTED V\n\t{0x0700, 0x070D, prAL, gcPo},     //    [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS\n\t{0x070F, 0x070F, prAL, gcCf},     //         SYRIAC ABBREVIATION MARK\n\t{0x0710, 0x0710, prAL, gcLo},     //         SYRIAC LETTER ALAPH\n\t{0x0711, 0x0711, prCM, gcMn},     //         SYRIAC LETTER SUPERSCRIPT ALAPH\n\t{0x0712, 0x072F, prAL, gcLo},     //    [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH\n\t{0x0730, 0x074A, prCM, gcMn},     //    [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH\n\t{0x074D, 0x074F, prAL, gcLo},     //     [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE\n\t{0x0750, 0x077F, prAL, gcLo},     //    [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE\n\t{0x0780, 0x07A5, prAL, gcLo},     //    [38] THAANA LETTER HAA..THAANA LETTER WAAVU\n\t{0x07A6, 0x07B0, prCM, gcMn},     //    [11] THAANA ABAFILI..THAANA SUKUN\n\t{0x07B1, 0x07B1, prAL, gcLo},     //         THAANA LETTER NAA\n\t{0x07C0, 0x07C9, prNU, gcNd},     //    [10] NKO DIGIT ZERO..NKO DIGIT NINE\n\t{0x07CA, 0x07EA, prAL, gcLo},     //    [33] NKO LETTER A..NKO LETTER JONA RA\n\t{0x07EB, 0x07F3, prCM, gcMn},     //     [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE\n\t{0x07F4, 0x07F5, prAL, gcLm},     //     [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE\n\t{0x07F6, 0x07F6, prAL, gcSo},     //         NKO SYMBOL OO DENNEN\n\t{0x07F7, 0x07F7, prAL, gcPo},     //         NKO SYMBOL GBAKURUNEN\n\t{0x07F8, 0x07F8, prIS, gcPo},     //         NKO COMMA\n\t{0x07F9, 0x07F9, prEX, gcPo},     //         NKO EXCLAMATION MARK\n\t{0x07FA, 0x07FA, prAL, gcLm},     //         NKO LAJANYALAN\n\t{0x07FD, 0x07FD, prCM, gcMn},     //         NKO DANTAYALAN\n\t{0x07FE, 0x07FF, prPR, gcSc},     //     [2] NKO DOROME SIGN..NKO TAMAN SIGN\n\t{0x0800, 0x0815, prAL, gcLo},     //    [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF\n\t{0x0816, 0x0819, prCM, gcMn},     //     [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH\n\t{0x081A, 0x081A, prAL, gcLm},     //         SAMARITAN MODIFIER LETTER EPENTHETIC YUT\n\t{0x081B, 0x0823, prCM, gcMn},     //     [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A\n\t{0x0824, 0x0824, prAL, gcLm},     //         SAMARITAN MODIFIER LETTER SHORT A\n\t{0x0825, 0x0827, prCM, gcMn},     //     [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U\n\t{0x0828, 0x0828, prAL, gcLm},     //         SAMARITAN MODIFIER LETTER I\n\t{0x0829, 0x082D, prCM, gcMn},     //     [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA\n\t{0x0830, 0x083E, prAL, gcPo},     //    [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU\n\t{0x0840, 0x0858, prAL, gcLo},     //    [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN\n\t{0x0859, 0x085B, prCM, gcMn},     //     [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK\n\t{0x085E, 0x085E, prAL, gcPo},     //         MANDAIC PUNCTUATION\n\t{0x0860, 0x086A, prAL, gcLo},     //    [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA\n\t{0x0870, 0x0887, prAL, gcLo},     //    [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT\n\t{0x0888, 0x0888, prAL, gcSk},     //         ARABIC RAISED ROUND DOT\n\t{0x0889, 0x088E, prAL, gcLo},     //     [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL\n\t{0x0890, 0x0891, prAL, gcCf},     //     [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE\n\t{0x0898, 0x089F, prCM, gcMn},     //     [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA\n\t{0x08A0, 0x08C8, prAL, gcLo},     //    [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF\n\t{0x08C9, 0x08C9, prAL, gcLm},     //         ARABIC SMALL FARSI YEH\n\t{0x08CA, 0x08E1, prCM, gcMn},     //    [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA\n\t{0x08E2, 0x08E2, prAL, gcCf},     //         ARABIC DISPUTED END OF AYAH\n\t{0x08E3, 0x08FF, prCM, gcMn},     //    [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA\n\t{0x0900, 0x0902, prCM, gcMn},     //     [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA\n\t{0x0903, 0x0903, prCM, gcMc},     //         DEVANAGARI SIGN VISARGA\n\t{0x0904, 0x0939, prAL, gcLo},     //    [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA\n\t{0x093A, 0x093A, prCM, gcMn},     //         DEVANAGARI VOWEL SIGN OE\n\t{0x093B, 0x093B, prCM, gcMc},     //         DEVANAGARI VOWEL SIGN OOE\n\t{0x093C, 0x093C, prCM, gcMn},     //         DEVANAGARI SIGN NUKTA\n\t{0x093D, 0x093D, prAL, gcLo},     //         DEVANAGARI SIGN AVAGRAHA\n\t{0x093E, 0x0940, prCM, gcMc},     //     [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II\n\t{0x0941, 0x0948, prCM, gcMn},     //     [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI\n\t{0x0949, 0x094C, prCM, gcMc},     //     [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU\n\t{0x094D, 0x094D, prCM, gcMn},     //         DEVANAGARI SIGN VIRAMA\n\t{0x094E, 0x094F, prCM, gcMc},     //     [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW\n\t{0x0950, 0x0950, prAL, gcLo},     //         DEVANAGARI OM\n\t{0x0951, 0x0957, prCM, gcMn},     //     [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE\n\t{0x0958, 0x0961, prAL, gcLo},     //    [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL\n\t{0x0962, 0x0963, prCM, gcMn},     //     [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL\n\t{0x0964, 0x0965, prBA, gcPo},     //     [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA\n\t{0x0966, 0x096F, prNU, gcNd},     //    [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE\n\t{0x0970, 0x0970, prAL, gcPo},     //         DEVANAGARI ABBREVIATION SIGN\n\t{0x0971, 0x0971, prAL, gcLm},     //         DEVANAGARI SIGN HIGH SPACING DOT\n\t{0x0972, 0x097F, prAL, gcLo},     //    [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA\n\t{0x0980, 0x0980, prAL, gcLo},     //         BENGALI ANJI\n\t{0x0981, 0x0981, prCM, gcMn},     //         BENGALI SIGN CANDRABINDU\n\t{0x0982, 0x0983, prCM, gcMc},     //     [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA\n\t{0x0985, 0x098C, prAL, gcLo},     //     [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L\n\t{0x098F, 0x0990, prAL, gcLo},     //     [2] BENGALI LETTER E..BENGALI LETTER AI\n\t{0x0993, 0x09A8, prAL, gcLo},     //    [22] BENGALI LETTER O..BENGALI LETTER NA\n\t{0x09AA, 0x09B0, prAL, gcLo},     //     [7] BENGALI LETTER PA..BENGALI LETTER RA\n\t{0x09B2, 0x09B2, prAL, gcLo},     //         BENGALI LETTER LA\n\t{0x09B6, 0x09B9, prAL, gcLo},     //     [4] BENGALI LETTER SHA..BENGALI LETTER HA\n\t{0x09BC, 0x09BC, prCM, gcMn},     //         BENGALI SIGN NUKTA\n\t{0x09BD, 0x09BD, prAL, gcLo},     //         BENGALI SIGN AVAGRAHA\n\t{0x09BE, 0x09C0, prCM, gcMc},     //     [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II\n\t{0x09C1, 0x09C4, prCM, gcMn},     //     [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR\n\t{0x09C7, 0x09C8, prCM, gcMc},     //     [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI\n\t{0x09CB, 0x09CC, prCM, gcMc},     //     [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU\n\t{0x09CD, 0x09CD, prCM, gcMn},     //         BENGALI SIGN VIRAMA\n\t{0x09CE, 0x09CE, prAL, gcLo},     //         BENGALI LETTER KHANDA TA\n\t{0x09D7, 0x09D7, prCM, gcMc},     //         BENGALI AU LENGTH MARK\n\t{0x09DC, 0x09DD, prAL, gcLo},     //     [2] BENGALI LETTER RRA..BENGALI LETTER RHA\n\t{0x09DF, 0x09E1, prAL, gcLo},     //     [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL\n\t{0x09E2, 0x09E3, prCM, gcMn},     //     [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL\n\t{0x09E6, 0x09EF, prNU, gcNd},     //    [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE\n\t{0x09F0, 0x09F1, prAL, gcLo},     //     [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL\n\t{0x09F2, 0x09F3, prPO, gcSc},     //     [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN\n\t{0x09F4, 0x09F8, prAL, gcNo},     //     [5] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR\n\t{0x09F9, 0x09F9, prPO, gcNo},     //         BENGALI CURRENCY DENOMINATOR SIXTEEN\n\t{0x09FA, 0x09FA, prAL, gcSo},     //         BENGALI ISSHAR\n\t{0x09FB, 0x09FB, prPR, gcSc},     //         BENGALI GANDA MARK\n\t{0x09FC, 0x09FC, prAL, gcLo},     //         BENGALI LETTER VEDIC ANUSVARA\n\t{0x09FD, 0x09FD, prAL, gcPo},     //         BENGALI ABBREVIATION SIGN\n\t{0x09FE, 0x09FE, prCM, gcMn},     //         BENGALI SANDHI MARK\n\t{0x0A01, 0x0A02, prCM, gcMn},     //     [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI\n\t{0x0A03, 0x0A03, prCM, gcMc},     //         GURMUKHI SIGN VISARGA\n\t{0x0A05, 0x0A0A, prAL, gcLo},     //     [6] GURMUKHI LETTER A..GURMUKHI LETTER UU\n\t{0x0A0F, 0x0A10, prAL, gcLo},     //     [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI\n\t{0x0A13, 0x0A28, prAL, gcLo},     //    [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA\n\t{0x0A2A, 0x0A30, prAL, gcLo},     //     [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA\n\t{0x0A32, 0x0A33, prAL, gcLo},     //     [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA\n\t{0x0A35, 0x0A36, prAL, gcLo},     //     [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA\n\t{0x0A38, 0x0A39, prAL, gcLo},     //     [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA\n\t{0x0A3C, 0x0A3C, prCM, gcMn},     //         GURMUKHI SIGN NUKTA\n\t{0x0A3E, 0x0A40, prCM, gcMc},     //     [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II\n\t{0x0A41, 0x0A42, prCM, gcMn},     //     [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU\n\t{0x0A47, 0x0A48, prCM, gcMn},     //     [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI\n\t{0x0A4B, 0x0A4D, prCM, gcMn},     //     [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA\n\t{0x0A51, 0x0A51, prCM, gcMn},     //         GURMUKHI SIGN UDAAT\n\t{0x0A59, 0x0A5C, prAL, gcLo},     //     [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA\n\t{0x0A5E, 0x0A5E, prAL, gcLo},     //         GURMUKHI LETTER FA\n\t{0x0A66, 0x0A6F, prNU, gcNd},     //    [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE\n\t{0x0A70, 0x0A71, prCM, gcMn},     //     [2] GURMUKHI TIPPI..GURMUKHI ADDAK\n\t{0x0A72, 0x0A74, prAL, gcLo},     //     [3] GURMUKHI IRI..GURMUKHI EK ONKAR\n\t{0x0A75, 0x0A75, prCM, gcMn},     //         GURMUKHI SIGN YAKASH\n\t{0x0A76, 0x0A76, prAL, gcPo},     //         GURMUKHI ABBREVIATION SIGN\n\t{0x0A81, 0x0A82, prCM, gcMn},     //     [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA\n\t{0x0A83, 0x0A83, prCM, gcMc},     //         GUJARATI SIGN VISARGA\n\t{0x0A85, 0x0A8D, prAL, gcLo},     //     [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E\n\t{0x0A8F, 0x0A91, prAL, gcLo},     //     [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O\n\t{0x0A93, 0x0AA8, prAL, gcLo},     //    [22] GUJARATI LETTER O..GUJARATI LETTER NA\n\t{0x0AAA, 0x0AB0, prAL, gcLo},     //     [7] GUJARATI LETTER PA..GUJARATI LETTER RA\n\t{0x0AB2, 0x0AB3, prAL, gcLo},     //     [2] GUJARATI LETTER LA..GUJARATI LETTER LLA\n\t{0x0AB5, 0x0AB9, prAL, gcLo},     //     [5] GUJARATI LETTER VA..GUJARATI LETTER HA\n\t{0x0ABC, 0x0ABC, prCM, gcMn},     //         GUJARATI SIGN NUKTA\n\t{0x0ABD, 0x0ABD, prAL, gcLo},     //         GUJARATI SIGN AVAGRAHA\n\t{0x0ABE, 0x0AC0, prCM, gcMc},     //     [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II\n\t{0x0AC1, 0x0AC5, prCM, gcMn},     //     [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E\n\t{0x0AC7, 0x0AC8, prCM, gcMn},     //     [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI\n\t{0x0AC9, 0x0AC9, prCM, gcMc},     //         GUJARATI VOWEL SIGN CANDRA O\n\t{0x0ACB, 0x0ACC, prCM, gcMc},     //     [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU\n\t{0x0ACD, 0x0ACD, prCM, gcMn},     //         GUJARATI SIGN VIRAMA\n\t{0x0AD0, 0x0AD0, prAL, gcLo},     //         GUJARATI OM\n\t{0x0AE0, 0x0AE1, prAL, gcLo},     //     [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL\n\t{0x0AE2, 0x0AE3, prCM, gcMn},     //     [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL\n\t{0x0AE6, 0x0AEF, prNU, gcNd},     //    [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE\n\t{0x0AF0, 0x0AF0, prAL, gcPo},     //         GUJARATI ABBREVIATION SIGN\n\t{0x0AF1, 0x0AF1, prPR, gcSc},     //         GUJARATI RUPEE SIGN\n\t{0x0AF9, 0x0AF9, prAL, gcLo},     //         GUJARATI LETTER ZHA\n\t{0x0AFA, 0x0AFF, prCM, gcMn},     //     [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE\n\t{0x0B01, 0x0B01, prCM, gcMn},     //         ORIYA SIGN CANDRABINDU\n\t{0x0B02, 0x0B03, prCM, gcMc},     //     [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA\n\t{0x0B05, 0x0B0C, prAL, gcLo},     //     [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L\n\t{0x0B0F, 0x0B10, prAL, gcLo},     //     [2] ORIYA LETTER E..ORIYA LETTER AI\n\t{0x0B13, 0x0B28, prAL, gcLo},     //    [22] ORIYA LETTER O..ORIYA LETTER NA\n\t{0x0B2A, 0x0B30, prAL, gcLo},     //     [7] ORIYA LETTER PA..ORIYA LETTER RA\n\t{0x0B32, 0x0B33, prAL, gcLo},     //     [2] ORIYA LETTER LA..ORIYA LETTER LLA\n\t{0x0B35, 0x0B39, prAL, gcLo},     //     [5] ORIYA LETTER VA..ORIYA LETTER HA\n\t{0x0B3C, 0x0B3C, prCM, gcMn},     //         ORIYA SIGN NUKTA\n\t{0x0B3D, 0x0B3D, prAL, gcLo},     //         ORIYA SIGN AVAGRAHA\n\t{0x0B3E, 0x0B3E, prCM, gcMc},     //         ORIYA VOWEL SIGN AA\n\t{0x0B3F, 0x0B3F, prCM, gcMn},     //         ORIYA VOWEL SIGN I\n\t{0x0B40, 0x0B40, prCM, gcMc},     //         ORIYA VOWEL SIGN II\n\t{0x0B41, 0x0B44, prCM, gcMn},     //     [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR\n\t{0x0B47, 0x0B48, prCM, gcMc},     //     [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI\n\t{0x0B4B, 0x0B4C, prCM, gcMc},     //     [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU\n\t{0x0B4D, 0x0B4D, prCM, gcMn},     //         ORIYA SIGN VIRAMA\n\t{0x0B55, 0x0B56, prCM, gcMn},     //     [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK\n\t{0x0B57, 0x0B57, prCM, gcMc},     //         ORIYA AU LENGTH MARK\n\t{0x0B5C, 0x0B5D, prAL, gcLo},     //     [2] ORIYA LETTER RRA..ORIYA LETTER RHA\n\t{0x0B5F, 0x0B61, prAL, gcLo},     //     [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL\n\t{0x0B62, 0x0B63, prCM, gcMn},     //     [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL\n\t{0x0B66, 0x0B6F, prNU, gcNd},     //    [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE\n\t{0x0B70, 0x0B70, prAL, gcSo},     //         ORIYA ISSHAR\n\t{0x0B71, 0x0B71, prAL, gcLo},     //         ORIYA LETTER WA\n\t{0x0B72, 0x0B77, prAL, gcNo},     //     [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS\n\t{0x0B82, 0x0B82, prCM, gcMn},     //         TAMIL SIGN ANUSVARA\n\t{0x0B83, 0x0B83, prAL, gcLo},     //         TAMIL SIGN VISARGA\n\t{0x0B85, 0x0B8A, prAL, gcLo},     //     [6] TAMIL LETTER A..TAMIL LETTER UU\n\t{0x0B8E, 0x0B90, prAL, gcLo},     //     [3] TAMIL LETTER E..TAMIL LETTER AI\n\t{0x0B92, 0x0B95, prAL, gcLo},     //     [4] TAMIL LETTER O..TAMIL LETTER KA\n\t{0x0B99, 0x0B9A, prAL, gcLo},     //     [2] TAMIL LETTER NGA..TAMIL LETTER CA\n\t{0x0B9C, 0x0B9C, prAL, gcLo},     //         TAMIL LETTER JA\n\t{0x0B9E, 0x0B9F, prAL, gcLo},     //     [2] TAMIL LETTER NYA..TAMIL LETTER TTA\n\t{0x0BA3, 0x0BA4, prAL, gcLo},     //     [2] TAMIL LETTER NNA..TAMIL LETTER TA\n\t{0x0BA8, 0x0BAA, prAL, gcLo},     //     [3] TAMIL LETTER NA..TAMIL LETTER PA\n\t{0x0BAE, 0x0BB9, prAL, gcLo},     //    [12] TAMIL LETTER MA..TAMIL LETTER HA\n\t{0x0BBE, 0x0BBF, prCM, gcMc},     //     [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I\n\t{0x0BC0, 0x0BC0, prCM, gcMn},     //         TAMIL VOWEL SIGN II\n\t{0x0BC1, 0x0BC2, prCM, gcMc},     //     [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU\n\t{0x0BC6, 0x0BC8, prCM, gcMc},     //     [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI\n\t{0x0BCA, 0x0BCC, prCM, gcMc},     //     [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU\n\t{0x0BCD, 0x0BCD, prCM, gcMn},     //         TAMIL SIGN VIRAMA\n\t{0x0BD0, 0x0BD0, prAL, gcLo},     //         TAMIL OM\n\t{0x0BD7, 0x0BD7, prCM, gcMc},     //         TAMIL AU LENGTH MARK\n\t{0x0BE6, 0x0BEF, prNU, gcNd},     //    [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE\n\t{0x0BF0, 0x0BF2, prAL, gcNo},     //     [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND\n\t{0x0BF3, 0x0BF8, prAL, gcSo},     //     [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN\n\t{0x0BF9, 0x0BF9, prPR, gcSc},     //         TAMIL RUPEE SIGN\n\t{0x0BFA, 0x0BFA, prAL, gcSo},     //         TAMIL NUMBER SIGN\n\t{0x0C00, 0x0C00, prCM, gcMn},     //         TELUGU SIGN COMBINING CANDRABINDU ABOVE\n\t{0x0C01, 0x0C03, prCM, gcMc},     //     [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA\n\t{0x0C04, 0x0C04, prCM, gcMn},     //         TELUGU SIGN COMBINING ANUSVARA ABOVE\n\t{0x0C05, 0x0C0C, prAL, gcLo},     //     [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L\n\t{0x0C0E, 0x0C10, prAL, gcLo},     //     [3] TELUGU LETTER E..TELUGU LETTER AI\n\t{0x0C12, 0x0C28, prAL, gcLo},     //    [23] TELUGU LETTER O..TELUGU LETTER NA\n\t{0x0C2A, 0x0C39, prAL, gcLo},     //    [16] TELUGU LETTER PA..TELUGU LETTER HA\n\t{0x0C3C, 0x0C3C, prCM, gcMn},     //         TELUGU SIGN NUKTA\n\t{0x0C3D, 0x0C3D, prAL, gcLo},     //         TELUGU SIGN AVAGRAHA\n\t{0x0C3E, 0x0C40, prCM, gcMn},     //     [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II\n\t{0x0C41, 0x0C44, prCM, gcMc},     //     [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR\n\t{0x0C46, 0x0C48, prCM, gcMn},     //     [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI\n\t{0x0C4A, 0x0C4D, prCM, gcMn},     //     [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA\n\t{0x0C55, 0x0C56, prCM, gcMn},     //     [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK\n\t{0x0C58, 0x0C5A, prAL, gcLo},     //     [3] TELUGU LETTER TSA..TELUGU LETTER RRRA\n\t{0x0C5D, 0x0C5D, prAL, gcLo},     //         TELUGU LETTER NAKAARA POLLU\n\t{0x0C60, 0x0C61, prAL, gcLo},     //     [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL\n\t{0x0C62, 0x0C63, prCM, gcMn},     //     [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL\n\t{0x0C66, 0x0C6F, prNU, gcNd},     //    [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE\n\t{0x0C77, 0x0C77, prBB, gcPo},     //         TELUGU SIGN SIDDHAM\n\t{0x0C78, 0x0C7E, prAL, gcNo},     //     [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR\n\t{0x0C7F, 0x0C7F, prAL, gcSo},     //         TELUGU SIGN TUUMU\n\t{0x0C80, 0x0C80, prAL, gcLo},     //         KANNADA SIGN SPACING CANDRABINDU\n\t{0x0C81, 0x0C81, prCM, gcMn},     //         KANNADA SIGN CANDRABINDU\n\t{0x0C82, 0x0C83, prCM, gcMc},     //     [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA\n\t{0x0C84, 0x0C84, prBB, gcPo},     //         KANNADA SIGN SIDDHAM\n\t{0x0C85, 0x0C8C, prAL, gcLo},     //     [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L\n\t{0x0C8E, 0x0C90, prAL, gcLo},     //     [3] KANNADA LETTER E..KANNADA LETTER AI\n\t{0x0C92, 0x0CA8, prAL, gcLo},     //    [23] KANNADA LETTER O..KANNADA LETTER NA\n\t{0x0CAA, 0x0CB3, prAL, gcLo},     //    [10] KANNADA LETTER PA..KANNADA LETTER LLA\n\t{0x0CB5, 0x0CB9, prAL, gcLo},     //     [5] KANNADA LETTER VA..KANNADA LETTER HA\n\t{0x0CBC, 0x0CBC, prCM, gcMn},     //         KANNADA SIGN NUKTA\n\t{0x0CBD, 0x0CBD, prAL, gcLo},     //         KANNADA SIGN AVAGRAHA\n\t{0x0CBE, 0x0CBE, prCM, gcMc},     //         KANNADA VOWEL SIGN AA\n\t{0x0CBF, 0x0CBF, prCM, gcMn},     //         KANNADA VOWEL SIGN I\n\t{0x0CC0, 0x0CC4, prCM, gcMc},     //     [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR\n\t{0x0CC6, 0x0CC6, prCM, gcMn},     //         KANNADA VOWEL SIGN E\n\t{0x0CC7, 0x0CC8, prCM, gcMc},     //     [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI\n\t{0x0CCA, 0x0CCB, prCM, gcMc},     //     [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO\n\t{0x0CCC, 0x0CCD, prCM, gcMn},     //     [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA\n\t{0x0CD5, 0x0CD6, prCM, gcMc},     //     [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK\n\t{0x0CDD, 0x0CDE, prAL, gcLo},     //     [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA\n\t{0x0CE0, 0x0CE1, prAL, gcLo},     //     [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL\n\t{0x0CE2, 0x0CE3, prCM, gcMn},     //     [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL\n\t{0x0CE6, 0x0CEF, prNU, gcNd},     //    [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE\n\t{0x0CF1, 0x0CF2, prAL, gcLo},     //     [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA\n\t{0x0CF3, 0x0CF3, prCM, gcMc},     //         KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT\n\t{0x0D00, 0x0D01, prCM, gcMn},     //     [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU\n\t{0x0D02, 0x0D03, prCM, gcMc},     //     [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA\n\t{0x0D04, 0x0D0C, prAL, gcLo},     //     [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L\n\t{0x0D0E, 0x0D10, prAL, gcLo},     //     [3] MALAYALAM LETTER E..MALAYALAM LETTER AI\n\t{0x0D12, 0x0D3A, prAL, gcLo},     //    [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA\n\t{0x0D3B, 0x0D3C, prCM, gcMn},     //     [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA\n\t{0x0D3D, 0x0D3D, prAL, gcLo},     //         MALAYALAM SIGN AVAGRAHA\n\t{0x0D3E, 0x0D40, prCM, gcMc},     //     [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II\n\t{0x0D41, 0x0D44, prCM, gcMn},     //     [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR\n\t{0x0D46, 0x0D48, prCM, gcMc},     //     [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI\n\t{0x0D4A, 0x0D4C, prCM, gcMc},     //     [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU\n\t{0x0D4D, 0x0D4D, prCM, gcMn},     //         MALAYALAM SIGN VIRAMA\n\t{0x0D4E, 0x0D4E, prAL, gcLo},     //         MALAYALAM LETTER DOT REPH\n\t{0x0D4F, 0x0D4F, prAL, gcSo},     //         MALAYALAM SIGN PARA\n\t{0x0D54, 0x0D56, prAL, gcLo},     //     [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL\n\t{0x0D57, 0x0D57, prCM, gcMc},     //         MALAYALAM AU LENGTH MARK\n\t{0x0D58, 0x0D5E, prAL, gcNo},     //     [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH\n\t{0x0D5F, 0x0D61, prAL, gcLo},     //     [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL\n\t{0x0D62, 0x0D63, prCM, gcMn},     //     [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL\n\t{0x0D66, 0x0D6F, prNU, gcNd},     //    [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE\n\t{0x0D70, 0x0D78, prAL, gcNo},     //     [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS\n\t{0x0D79, 0x0D79, prPO, gcSo},     //         MALAYALAM DATE MARK\n\t{0x0D7A, 0x0D7F, prAL, gcLo},     //     [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K\n\t{0x0D81, 0x0D81, prCM, gcMn},     //         SINHALA SIGN CANDRABINDU\n\t{0x0D82, 0x0D83, prCM, gcMc},     //     [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA\n\t{0x0D85, 0x0D96, prAL, gcLo},     //    [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA\n\t{0x0D9A, 0x0DB1, prAL, gcLo},     //    [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA\n\t{0x0DB3, 0x0DBB, prAL, gcLo},     //     [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA\n\t{0x0DBD, 0x0DBD, prAL, gcLo},     //         SINHALA LETTER DANTAJA LAYANNA\n\t{0x0DC0, 0x0DC6, prAL, gcLo},     //     [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA\n\t{0x0DCA, 0x0DCA, prCM, gcMn},     //         SINHALA SIGN AL-LAKUNA\n\t{0x0DCF, 0x0DD1, prCM, gcMc},     //     [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA\n\t{0x0DD2, 0x0DD4, prCM, gcMn},     //     [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA\n\t{0x0DD6, 0x0DD6, prCM, gcMn},     //         SINHALA VOWEL SIGN DIGA PAA-PILLA\n\t{0x0DD8, 0x0DDF, prCM, gcMc},     //     [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA\n\t{0x0DE6, 0x0DEF, prNU, gcNd},     //    [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE\n\t{0x0DF2, 0x0DF3, prCM, gcMc},     //     [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA\n\t{0x0DF4, 0x0DF4, prAL, gcPo},     //         SINHALA PUNCTUATION KUNDDALIYA\n\t{0x0E01, 0x0E30, prSA, gcLo},     //    [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A\n\t{0x0E31, 0x0E31, prSA, gcMn},     //         THAI CHARACTER MAI HAN-AKAT\n\t{0x0E32, 0x0E33, prSA, gcLo},     //     [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM\n\t{0x0E34, 0x0E3A, prSA, gcMn},     //     [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU\n\t{0x0E3F, 0x0E3F, prPR, gcSc},     //         THAI CURRENCY SYMBOL BAHT\n\t{0x0E40, 0x0E45, prSA, gcLo},     //     [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO\n\t{0x0E46, 0x0E46, prSA, gcLm},     //         THAI CHARACTER MAIYAMOK\n\t{0x0E47, 0x0E4E, prSA, gcMn},     //     [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN\n\t{0x0E4F, 0x0E4F, prAL, gcPo},     //         THAI CHARACTER FONGMAN\n\t{0x0E50, 0x0E59, prNU, gcNd},     //    [10] THAI DIGIT ZERO..THAI DIGIT NINE\n\t{0x0E5A, 0x0E5B, prBA, gcPo},     //     [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT\n\t{0x0E81, 0x0E82, prSA, gcLo},     //     [2] LAO LETTER KO..LAO LETTER KHO SUNG\n\t{0x0E84, 0x0E84, prSA, gcLo},     //         LAO LETTER KHO TAM\n\t{0x0E86, 0x0E8A, prSA, gcLo},     //     [5] LAO LETTER PALI GHA..LAO LETTER SO TAM\n\t{0x0E8C, 0x0EA3, prSA, gcLo},     //    [24] LAO LETTER PALI JHA..LAO LETTER LO LING\n\t{0x0EA5, 0x0EA5, prSA, gcLo},     //         LAO LETTER LO LOOT\n\t{0x0EA7, 0x0EB0, prSA, gcLo},     //    [10] LAO LETTER WO..LAO VOWEL SIGN A\n\t{0x0EB1, 0x0EB1, prSA, gcMn},     //         LAO VOWEL SIGN MAI KAN\n\t{0x0EB2, 0x0EB3, prSA, gcLo},     //     [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM\n\t{0x0EB4, 0x0EBC, prSA, gcMn},     //     [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO\n\t{0x0EBD, 0x0EBD, prSA, gcLo},     //         LAO SEMIVOWEL SIGN NYO\n\t{0x0EC0, 0x0EC4, prSA, gcLo},     //     [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI\n\t{0x0EC6, 0x0EC6, prSA, gcLm},     //         LAO KO LA\n\t{0x0EC8, 0x0ECE, prSA, gcMn},     //     [7] LAO TONE MAI EK..LAO YAMAKKAN\n\t{0x0ED0, 0x0ED9, prNU, gcNd},     //    [10] LAO DIGIT ZERO..LAO DIGIT NINE\n\t{0x0EDC, 0x0EDF, prSA, gcLo},     //     [4] LAO HO NO..LAO LETTER KHMU NYO\n\t{0x0F00, 0x0F00, prAL, gcLo},     //         TIBETAN SYLLABLE OM\n\t{0x0F01, 0x0F03, prBB, gcSo},     //     [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA\n\t{0x0F04, 0x0F04, prBB, gcPo},     //         TIBETAN MARK INITIAL YIG MGO MDUN MA\n\t{0x0F05, 0x0F05, prAL, gcPo},     //         TIBETAN MARK CLOSING YIG MGO SGAB MA\n\t{0x0F06, 0x0F07, prBB, gcPo},     //     [2] TIBETAN MARK CARET YIG MGO PHUR SHAD MA..TIBETAN MARK YIG MGO TSHEG SHAD MA\n\t{0x0F08, 0x0F08, prGL, gcPo},     //         TIBETAN MARK SBRUL SHAD\n\t{0x0F09, 0x0F0A, prBB, gcPo},     //     [2] TIBETAN MARK BSKUR YIG MGO..TIBETAN MARK BKA- SHOG YIG MGO\n\t{0x0F0B, 0x0F0B, prBA, gcPo},     //         TIBETAN MARK INTERSYLLABIC TSHEG\n\t{0x0F0C, 0x0F0C, prGL, gcPo},     //         TIBETAN MARK DELIMITER TSHEG BSTAR\n\t{0x0F0D, 0x0F11, prEX, gcPo},     //     [5] TIBETAN MARK SHAD..TIBETAN MARK RIN CHEN SPUNGS SHAD\n\t{0x0F12, 0x0F12, prGL, gcPo},     //         TIBETAN MARK RGYA GRAM SHAD\n\t{0x0F13, 0x0F13, prAL, gcSo},     //         TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN\n\t{0x0F14, 0x0F14, prEX, gcPo},     //         TIBETAN MARK GTER TSHEG\n\t{0x0F15, 0x0F17, prAL, gcSo},     //     [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS\n\t{0x0F18, 0x0F19, prCM, gcMn},     //     [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS\n\t{0x0F1A, 0x0F1F, prAL, gcSo},     //     [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG\n\t{0x0F20, 0x0F29, prNU, gcNd},     //    [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE\n\t{0x0F2A, 0x0F33, prAL, gcNo},     //    [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO\n\t{0x0F34, 0x0F34, prBA, gcSo},     //         TIBETAN MARK BSDUS RTAGS\n\t{0x0F35, 0x0F35, prCM, gcMn},     //         TIBETAN MARK NGAS BZUNG NYI ZLA\n\t{0x0F36, 0x0F36, prAL, gcSo},     //         TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN\n\t{0x0F37, 0x0F37, prCM, gcMn},     //         TIBETAN MARK NGAS BZUNG SGOR RTAGS\n\t{0x0F38, 0x0F38, prAL, gcSo},     //         TIBETAN MARK CHE MGO\n\t{0x0F39, 0x0F39, prCM, gcMn},     //         TIBETAN MARK TSA -PHRU\n\t{0x0F3A, 0x0F3A, prOP, gcPs},     //         TIBETAN MARK GUG RTAGS GYON\n\t{0x0F3B, 0x0F3B, prCL, gcPe},     //         TIBETAN MARK GUG RTAGS GYAS\n\t{0x0F3C, 0x0F3C, prOP, gcPs},     //         TIBETAN MARK ANG KHANG GYON\n\t{0x0F3D, 0x0F3D, prCL, gcPe},     //         TIBETAN MARK ANG KHANG GYAS\n\t{0x0F3E, 0x0F3F, prCM, gcMc},     //     [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES\n\t{0x0F40, 0x0F47, prAL, gcLo},     //     [8] TIBETAN LETTER KA..TIBETAN LETTER JA\n\t{0x0F49, 0x0F6C, prAL, gcLo},     //    [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA\n\t{0x0F71, 0x0F7E, prCM, gcMn},     //    [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO\n\t{0x0F7F, 0x0F7F, prBA, gcMc},     //         TIBETAN SIGN RNAM BCAD\n\t{0x0F80, 0x0F84, prCM, gcMn},     //     [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA\n\t{0x0F85, 0x0F85, prBA, gcPo},     //         TIBETAN MARK PALUTA\n\t{0x0F86, 0x0F87, prCM, gcMn},     //     [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS\n\t{0x0F88, 0x0F8C, prAL, gcLo},     //     [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN\n\t{0x0F8D, 0x0F97, prCM, gcMn},     //    [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA\n\t{0x0F99, 0x0FBC, prCM, gcMn},     //    [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA\n\t{0x0FBE, 0x0FBF, prBA, gcSo},     //     [2] TIBETAN KU RU KHA..TIBETAN KU RU KHA BZHI MIG CAN\n\t{0x0FC0, 0x0FC5, prAL, gcSo},     //     [6] TIBETAN CANTILLATION SIGN HEAVY BEAT..TIBETAN SYMBOL RDO RJE\n\t{0x0FC6, 0x0FC6, prCM, gcMn},     //         TIBETAN SYMBOL PADMA GDAN\n\t{0x0FC7, 0x0FCC, prAL, gcSo},     //     [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL\n\t{0x0FCE, 0x0FCF, prAL, gcSo},     //     [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM\n\t{0x0FD0, 0x0FD1, prBB, gcPo},     //     [2] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK MNYAM YIG GI MGO RGYAN\n\t{0x0FD2, 0x0FD2, prBA, gcPo},     //         TIBETAN MARK NYIS TSHEG\n\t{0x0FD3, 0x0FD3, prBB, gcPo},     //         TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA\n\t{0x0FD4, 0x0FD4, prAL, gcPo},     //         TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA\n\t{0x0FD5, 0x0FD8, prAL, gcSo},     //     [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS\n\t{0x0FD9, 0x0FDA, prGL, gcPo},     //     [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS\n\t{0x1000, 0x102A, prSA, gcLo},     //    [43] MYANMAR LETTER KA..MYANMAR LETTER AU\n\t{0x102B, 0x102C, prSA, gcMc},     //     [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA\n\t{0x102D, 0x1030, prSA, gcMn},     //     [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU\n\t{0x1031, 0x1031, prSA, gcMc},     //         MYANMAR VOWEL SIGN E\n\t{0x1032, 0x1037, prSA, gcMn},     //     [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW\n\t{0x1038, 0x1038, prSA, gcMc},     //         MYANMAR SIGN VISARGA\n\t{0x1039, 0x103A, prSA, gcMn},     //     [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT\n\t{0x103B, 0x103C, prSA, gcMc},     //     [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA\n\t{0x103D, 0x103E, prSA, gcMn},     //     [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA\n\t{0x103F, 0x103F, prSA, gcLo},     //         MYANMAR LETTER GREAT SA\n\t{0x1040, 0x1049, prNU, gcNd},     //    [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE\n\t{0x104A, 0x104B, prBA, gcPo},     //     [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION\n\t{0x104C, 0x104F, prAL, gcPo},     //     [4] MYANMAR SYMBOL LOCATIVE..MYANMAR SYMBOL GENITIVE\n\t{0x1050, 0x1055, prSA, gcLo},     //     [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL\n\t{0x1056, 0x1057, prSA, gcMc},     //     [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR\n\t{0x1058, 0x1059, prSA, gcMn},     //     [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL\n\t{0x105A, 0x105D, prSA, gcLo},     //     [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE\n\t{0x105E, 0x1060, prSA, gcMn},     //     [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA\n\t{0x1061, 0x1061, prSA, gcLo},     //         MYANMAR LETTER SGAW KAREN SHA\n\t{0x1062, 0x1064, prSA, gcMc},     //     [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO\n\t{0x1065, 0x1066, prSA, gcLo},     //     [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA\n\t{0x1067, 0x106D, prSA, gcMc},     //     [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5\n\t{0x106E, 0x1070, prSA, gcLo},     //     [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA\n\t{0x1071, 0x1074, prSA, gcMn},     //     [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE\n\t{0x1075, 0x1081, prSA, gcLo},     //    [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA\n\t{0x1082, 0x1082, prSA, gcMn},     //         MYANMAR CONSONANT SIGN SHAN MEDIAL WA\n\t{0x1083, 0x1084, prSA, gcMc},     //     [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E\n\t{0x1085, 0x1086, prSA, gcMn},     //     [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y\n\t{0x1087, 0x108C, prSA, gcMc},     //     [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3\n\t{0x108D, 0x108D, prSA, gcMn},     //         MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE\n\t{0x108E, 0x108E, prSA, gcLo},     //         MYANMAR LETTER RUMAI PALAUNG FA\n\t{0x108F, 0x108F, prSA, gcMc},     //         MYANMAR SIGN RUMAI PALAUNG TONE-5\n\t{0x1090, 0x1099, prNU, gcNd},     //    [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE\n\t{0x109A, 0x109C, prSA, gcMc},     //     [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A\n\t{0x109D, 0x109D, prSA, gcMn},     //         MYANMAR VOWEL SIGN AITON AI\n\t{0x109E, 0x109F, prSA, gcSo},     //     [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION\n\t{0x10A0, 0x10C5, prAL, gcLu},     //    [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE\n\t{0x10C7, 0x10C7, prAL, gcLu},     //         GEORGIAN CAPITAL LETTER YN\n\t{0x10CD, 0x10CD, prAL, gcLu},     //         GEORGIAN CAPITAL LETTER AEN\n\t{0x10D0, 0x10FA, prAL, gcLl},     //    [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN\n\t{0x10FB, 0x10FB, prAL, gcPo},     //         GEORGIAN PARAGRAPH SEPARATOR\n\t{0x10FC, 0x10FC, prAL, gcLm},     //         MODIFIER LETTER GEORGIAN NAR\n\t{0x10FD, 0x10FF, prAL, gcLl},     //     [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN\n\t{0x1100, 0x115F, prJL, gcLo},     //    [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER\n\t{0x1160, 0x11A7, prJV, gcLo},     //    [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE\n\t{0x11A8, 0x11FF, prJT, gcLo},     //    [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN\n\t{0x1200, 0x1248, prAL, gcLo},     //    [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA\n\t{0x124A, 0x124D, prAL, gcLo},     //     [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE\n\t{0x1250, 0x1256, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO\n\t{0x1258, 0x1258, prAL, gcLo},     //         ETHIOPIC SYLLABLE QHWA\n\t{0x125A, 0x125D, prAL, gcLo},     //     [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE\n\t{0x1260, 0x1288, prAL, gcLo},     //    [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA\n\t{0x128A, 0x128D, prAL, gcLo},     //     [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE\n\t{0x1290, 0x12B0, prAL, gcLo},     //    [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA\n\t{0x12B2, 0x12B5, prAL, gcLo},     //     [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE\n\t{0x12B8, 0x12BE, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO\n\t{0x12C0, 0x12C0, prAL, gcLo},     //         ETHIOPIC SYLLABLE KXWA\n\t{0x12C2, 0x12C5, prAL, gcLo},     //     [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE\n\t{0x12C8, 0x12D6, prAL, gcLo},     //    [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O\n\t{0x12D8, 0x1310, prAL, gcLo},     //    [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA\n\t{0x1312, 0x1315, prAL, gcLo},     //     [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE\n\t{0x1318, 0x135A, prAL, gcLo},     //    [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA\n\t{0x135D, 0x135F, prCM, gcMn},     //     [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK\n\t{0x1360, 0x1360, prAL, gcPo},     //         ETHIOPIC SECTION MARK\n\t{0x1361, 0x1361, prBA, gcPo},     //         ETHIOPIC WORDSPACE\n\t{0x1362, 0x1368, prAL, gcPo},     //     [7] ETHIOPIC FULL STOP..ETHIOPIC PARAGRAPH SEPARATOR\n\t{0x1369, 0x137C, prAL, gcNo},     //    [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND\n\t{0x1380, 0x138F, prAL, gcLo},     //    [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE\n\t{0x1390, 0x1399, prAL, gcSo},     //    [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT\n\t{0x13A0, 0x13F5, prAL, gcLu},     //    [86] CHEROKEE LETTER A..CHEROKEE LETTER MV\n\t{0x13F8, 0x13FD, prAL, gcLl},     //     [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV\n\t{0x1400, 0x1400, prBA, gcPd},     //         CANADIAN SYLLABICS HYPHEN\n\t{0x1401, 0x166C, prAL, gcLo},     //   [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA\n\t{0x166D, 0x166D, prAL, gcSo},     //         CANADIAN SYLLABICS CHI SIGN\n\t{0x166E, 0x166E, prAL, gcPo},     //         CANADIAN SYLLABICS FULL STOP\n\t{0x166F, 0x167F, prAL, gcLo},     //    [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W\n\t{0x1680, 0x1680, prBA, gcZs},     //         OGHAM SPACE MARK\n\t{0x1681, 0x169A, prAL, gcLo},     //    [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH\n\t{0x169B, 0x169B, prOP, gcPs},     //         OGHAM FEATHER MARK\n\t{0x169C, 0x169C, prCL, gcPe},     //         OGHAM REVERSED FEATHER MARK\n\t{0x16A0, 0x16EA, prAL, gcLo},     //    [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X\n\t{0x16EB, 0x16ED, prBA, gcPo},     //     [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION\n\t{0x16EE, 0x16F0, prAL, gcNl},     //     [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL\n\t{0x16F1, 0x16F8, prAL, gcLo},     //     [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC\n\t{0x1700, 0x1711, prAL, gcLo},     //    [18] TAGALOG LETTER A..TAGALOG LETTER HA\n\t{0x1712, 0x1714, prCM, gcMn},     //     [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA\n\t{0x1715, 0x1715, prCM, gcMc},     //         TAGALOG SIGN PAMUDPOD\n\t{0x171F, 0x171F, prAL, gcLo},     //         TAGALOG LETTER ARCHAIC RA\n\t{0x1720, 0x1731, prAL, gcLo},     //    [18] HANUNOO LETTER A..HANUNOO LETTER HA\n\t{0x1732, 0x1733, prCM, gcMn},     //     [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U\n\t{0x1734, 0x1734, prCM, gcMc},     //         HANUNOO SIGN PAMUDPOD\n\t{0x1735, 0x1736, prBA, gcPo},     //     [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION\n\t{0x1740, 0x1751, prAL, gcLo},     //    [18] BUHID LETTER A..BUHID LETTER HA\n\t{0x1752, 0x1753, prCM, gcMn},     //     [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U\n\t{0x1760, 0x176C, prAL, gcLo},     //    [13] TAGBANWA LETTER A..TAGBANWA LETTER YA\n\t{0x176E, 0x1770, prAL, gcLo},     //     [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA\n\t{0x1772, 0x1773, prCM, gcMn},     //     [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U\n\t{0x1780, 0x17B3, prSA, gcLo},     //    [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU\n\t{0x17B4, 0x17B5, prSA, gcMn},     //     [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA\n\t{0x17B6, 0x17B6, prSA, gcMc},     //         KHMER VOWEL SIGN AA\n\t{0x17B7, 0x17BD, prSA, gcMn},     //     [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA\n\t{0x17BE, 0x17C5, prSA, gcMc},     //     [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU\n\t{0x17C6, 0x17C6, prSA, gcMn},     //         KHMER SIGN NIKAHIT\n\t{0x17C7, 0x17C8, prSA, gcMc},     //     [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU\n\t{0x17C9, 0x17D3, prSA, gcMn},     //    [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT\n\t{0x17D4, 0x17D5, prBA, gcPo},     //     [2] KHMER SIGN KHAN..KHMER SIGN BARIYOOSAN\n\t{0x17D6, 0x17D6, prNS, gcPo},     //         KHMER SIGN CAMNUC PII KUUH\n\t{0x17D7, 0x17D7, prSA, gcLm},     //         KHMER SIGN LEK TOO\n\t{0x17D8, 0x17D8, prBA, gcPo},     //         KHMER SIGN BEYYAL\n\t{0x17D9, 0x17D9, prAL, gcPo},     //         KHMER SIGN PHNAEK MUAN\n\t{0x17DA, 0x17DA, prBA, gcPo},     //         KHMER SIGN KOOMUUT\n\t{0x17DB, 0x17DB, prPR, gcSc},     //         KHMER CURRENCY SYMBOL RIEL\n\t{0x17DC, 0x17DC, prSA, gcLo},     //         KHMER SIGN AVAKRAHASANYA\n\t{0x17DD, 0x17DD, prSA, gcMn},     //         KHMER SIGN ATTHACAN\n\t{0x17E0, 0x17E9, prNU, gcNd},     //    [10] KHMER DIGIT ZERO..KHMER DIGIT NINE\n\t{0x17F0, 0x17F9, prAL, gcNo},     //    [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON\n\t{0x1800, 0x1801, prAL, gcPo},     //     [2] MONGOLIAN BIRGA..MONGOLIAN ELLIPSIS\n\t{0x1802, 0x1803, prEX, gcPo},     //     [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP\n\t{0x1804, 0x1805, prBA, gcPo},     //     [2] MONGOLIAN COLON..MONGOLIAN FOUR DOTS\n\t{0x1806, 0x1806, prBB, gcPd},     //         MONGOLIAN TODO SOFT HYPHEN\n\t{0x1807, 0x1807, prAL, gcPo},     //         MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER\n\t{0x1808, 0x1809, prEX, gcPo},     //     [2] MONGOLIAN MANCHU COMMA..MONGOLIAN MANCHU FULL STOP\n\t{0x180A, 0x180A, prAL, gcPo},     //         MONGOLIAN NIRUGU\n\t{0x180B, 0x180D, prCM, gcMn},     //     [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE\n\t{0x180E, 0x180E, prGL, gcCf},     //         MONGOLIAN VOWEL SEPARATOR\n\t{0x180F, 0x180F, prCM, gcMn},     //         MONGOLIAN FREE VARIATION SELECTOR FOUR\n\t{0x1810, 0x1819, prNU, gcNd},     //    [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE\n\t{0x1820, 0x1842, prAL, gcLo},     //    [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI\n\t{0x1843, 0x1843, prAL, gcLm},     //         MONGOLIAN LETTER TODO LONG VOWEL SIGN\n\t{0x1844, 0x1878, prAL, gcLo},     //    [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS\n\t{0x1880, 0x1884, prAL, gcLo},     //     [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA\n\t{0x1885, 0x1886, prCM, gcMn},     //     [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA\n\t{0x1887, 0x18A8, prAL, gcLo},     //    [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA\n\t{0x18A9, 0x18A9, prCM, gcMn},     //         MONGOLIAN LETTER ALI GALI DAGALGA\n\t{0x18AA, 0x18AA, prAL, gcLo},     //         MONGOLIAN LETTER MANCHU ALI GALI LHA\n\t{0x18B0, 0x18F5, prAL, gcLo},     //    [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S\n\t{0x1900, 0x191E, prAL, gcLo},     //    [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA\n\t{0x1920, 0x1922, prCM, gcMn},     //     [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U\n\t{0x1923, 0x1926, prCM, gcMc},     //     [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU\n\t{0x1927, 0x1928, prCM, gcMn},     //     [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O\n\t{0x1929, 0x192B, prCM, gcMc},     //     [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA\n\t{0x1930, 0x1931, prCM, gcMc},     //     [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA\n\t{0x1932, 0x1932, prCM, gcMn},     //         LIMBU SMALL LETTER ANUSVARA\n\t{0x1933, 0x1938, prCM, gcMc},     //     [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA\n\t{0x1939, 0x193B, prCM, gcMn},     //     [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I\n\t{0x1940, 0x1940, prAL, gcSo},     //         LIMBU SIGN LOO\n\t{0x1944, 0x1945, prEX, gcPo},     //     [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK\n\t{0x1946, 0x194F, prNU, gcNd},     //    [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE\n\t{0x1950, 0x196D, prSA, gcLo},     //    [30] TAI LE LETTER KA..TAI LE LETTER AI\n\t{0x1970, 0x1974, prSA, gcLo},     //     [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6\n\t{0x1980, 0x19AB, prSA, gcLo},     //    [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA\n\t{0x19B0, 0x19C9, prSA, gcLo},     //    [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2\n\t{0x19D0, 0x19D9, prNU, gcNd},     //    [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE\n\t{0x19DA, 0x19DA, prSA, gcNo},     //         NEW TAI LUE THAM DIGIT ONE\n\t{0x19DE, 0x19DF, prSA, gcSo},     //     [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV\n\t{0x19E0, 0x19FF, prAL, gcSo},     //    [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC\n\t{0x1A00, 0x1A16, prAL, gcLo},     //    [23] BUGINESE LETTER KA..BUGINESE LETTER HA\n\t{0x1A17, 0x1A18, prCM, gcMn},     //     [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U\n\t{0x1A19, 0x1A1A, prCM, gcMc},     //     [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O\n\t{0x1A1B, 0x1A1B, prCM, gcMn},     //         BUGINESE VOWEL SIGN AE\n\t{0x1A1E, 0x1A1F, prAL, gcPo},     //     [2] BUGINESE PALLAWA..BUGINESE END OF SECTION\n\t{0x1A20, 0x1A54, prSA, gcLo},     //    [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA\n\t{0x1A55, 0x1A55, prSA, gcMc},     //         TAI THAM CONSONANT SIGN MEDIAL RA\n\t{0x1A56, 0x1A56, prSA, gcMn},     //         TAI THAM CONSONANT SIGN MEDIAL LA\n\t{0x1A57, 0x1A57, prSA, gcMc},     //         TAI THAM CONSONANT SIGN LA TANG LAI\n\t{0x1A58, 0x1A5E, prSA, gcMn},     //     [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA\n\t{0x1A60, 0x1A60, prSA, gcMn},     //         TAI THAM SIGN SAKOT\n\t{0x1A61, 0x1A61, prSA, gcMc},     //         TAI THAM VOWEL SIGN A\n\t{0x1A62, 0x1A62, prSA, gcMn},     //         TAI THAM VOWEL SIGN MAI SAT\n\t{0x1A63, 0x1A64, prSA, gcMc},     //     [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA\n\t{0x1A65, 0x1A6C, prSA, gcMn},     //     [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW\n\t{0x1A6D, 0x1A72, prSA, gcMc},     //     [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI\n\t{0x1A73, 0x1A7C, prSA, gcMn},     //    [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN\n\t{0x1A7F, 0x1A7F, prCM, gcMn},     //         TAI THAM COMBINING CRYPTOGRAMMIC DOT\n\t{0x1A80, 0x1A89, prNU, gcNd},     //    [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE\n\t{0x1A90, 0x1A99, prNU, gcNd},     //    [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE\n\t{0x1AA0, 0x1AA6, prSA, gcPo},     //     [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA\n\t{0x1AA7, 0x1AA7, prSA, gcLm},     //         TAI THAM SIGN MAI YAMOK\n\t{0x1AA8, 0x1AAD, prSA, gcPo},     //     [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG\n\t{0x1AB0, 0x1ABD, prCM, gcMn},     //    [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW\n\t{0x1ABE, 0x1ABE, prCM, gcMe},     //         COMBINING PARENTHESES OVERLAY\n\t{0x1ABF, 0x1ACE, prCM, gcMn},     //    [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T\n\t{0x1B00, 0x1B03, prCM, gcMn},     //     [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG\n\t{0x1B04, 0x1B04, prCM, gcMc},     //         BALINESE SIGN BISAH\n\t{0x1B05, 0x1B33, prAL, gcLo},     //    [47] BALINESE LETTER AKARA..BALINESE LETTER HA\n\t{0x1B34, 0x1B34, prCM, gcMn},     //         BALINESE SIGN REREKAN\n\t{0x1B35, 0x1B35, prCM, gcMc},     //         BALINESE VOWEL SIGN TEDUNG\n\t{0x1B36, 0x1B3A, prCM, gcMn},     //     [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA\n\t{0x1B3B, 0x1B3B, prCM, gcMc},     //         BALINESE VOWEL SIGN RA REPA TEDUNG\n\t{0x1B3C, 0x1B3C, prCM, gcMn},     //         BALINESE VOWEL SIGN LA LENGA\n\t{0x1B3D, 0x1B41, prCM, gcMc},     //     [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG\n\t{0x1B42, 0x1B42, prCM, gcMn},     //         BALINESE VOWEL SIGN PEPET\n\t{0x1B43, 0x1B44, prCM, gcMc},     //     [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG\n\t{0x1B45, 0x1B4C, prAL, gcLo},     //     [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA\n\t{0x1B50, 0x1B59, prNU, gcNd},     //    [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE\n\t{0x1B5A, 0x1B5B, prBA, gcPo},     //     [2] BALINESE PANTI..BALINESE PAMADA\n\t{0x1B5C, 0x1B5C, prAL, gcPo},     //         BALINESE WINDU\n\t{0x1B5D, 0x1B60, prBA, gcPo},     //     [4] BALINESE CARIK PAMUNGKAH..BALINESE PAMENENG\n\t{0x1B61, 0x1B6A, prAL, gcSo},     //    [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE\n\t{0x1B6B, 0x1B73, prCM, gcMn},     //     [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG\n\t{0x1B74, 0x1B7C, prAL, gcSo},     //     [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING\n\t{0x1B7D, 0x1B7E, prBA, gcPo},     //     [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG\n\t{0x1B80, 0x1B81, prCM, gcMn},     //     [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR\n\t{0x1B82, 0x1B82, prCM, gcMc},     //         SUNDANESE SIGN PANGWISAD\n\t{0x1B83, 0x1BA0, prAL, gcLo},     //    [30] SUNDANESE LETTER A..SUNDANESE LETTER HA\n\t{0x1BA1, 0x1BA1, prCM, gcMc},     //         SUNDANESE CONSONANT SIGN PAMINGKAL\n\t{0x1BA2, 0x1BA5, prCM, gcMn},     //     [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU\n\t{0x1BA6, 0x1BA7, prCM, gcMc},     //     [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG\n\t{0x1BA8, 0x1BA9, prCM, gcMn},     //     [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG\n\t{0x1BAA, 0x1BAA, prCM, gcMc},     //         SUNDANESE SIGN PAMAAEH\n\t{0x1BAB, 0x1BAD, prCM, gcMn},     //     [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA\n\t{0x1BAE, 0x1BAF, prAL, gcLo},     //     [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA\n\t{0x1BB0, 0x1BB9, prNU, gcNd},     //    [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE\n\t{0x1BBA, 0x1BBF, prAL, gcLo},     //     [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M\n\t{0x1BC0, 0x1BE5, prAL, gcLo},     //    [38] BATAK LETTER A..BATAK LETTER U\n\t{0x1BE6, 0x1BE6, prCM, gcMn},     //         BATAK SIGN TOMPI\n\t{0x1BE7, 0x1BE7, prCM, gcMc},     //         BATAK VOWEL SIGN E\n\t{0x1BE8, 0x1BE9, prCM, gcMn},     //     [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE\n\t{0x1BEA, 0x1BEC, prCM, gcMc},     //     [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O\n\t{0x1BED, 0x1BED, prCM, gcMn},     //         BATAK VOWEL SIGN KARO O\n\t{0x1BEE, 0x1BEE, prCM, gcMc},     //         BATAK VOWEL SIGN U\n\t{0x1BEF, 0x1BF1, prCM, gcMn},     //     [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H\n\t{0x1BF2, 0x1BF3, prCM, gcMc},     //     [2] BATAK PANGOLAT..BATAK PANONGONAN\n\t{0x1BFC, 0x1BFF, prAL, gcPo},     //     [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT\n\t{0x1C00, 0x1C23, prAL, gcLo},     //    [36] LEPCHA LETTER KA..LEPCHA LETTER A\n\t{0x1C24, 0x1C2B, prCM, gcMc},     //     [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU\n\t{0x1C2C, 0x1C33, prCM, gcMn},     //     [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T\n\t{0x1C34, 0x1C35, prCM, gcMc},     //     [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG\n\t{0x1C36, 0x1C37, prCM, gcMn},     //     [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA\n\t{0x1C3B, 0x1C3F, prBA, gcPo},     //     [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK\n\t{0x1C40, 0x1C49, prNU, gcNd},     //    [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE\n\t{0x1C4D, 0x1C4F, prAL, gcLo},     //     [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA\n\t{0x1C50, 0x1C59, prNU, gcNd},     //    [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE\n\t{0x1C5A, 0x1C77, prAL, gcLo},     //    [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH\n\t{0x1C78, 0x1C7D, prAL, gcLm},     //     [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD\n\t{0x1C7E, 0x1C7F, prBA, gcPo},     //     [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD\n\t{0x1C80, 0x1C88, prAL, gcLl},     //     [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK\n\t{0x1C90, 0x1CBA, prAL, gcLu},     //    [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN\n\t{0x1CBD, 0x1CBF, prAL, gcLu},     //     [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN\n\t{0x1CC0, 0x1CC7, prAL, gcPo},     //     [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA\n\t{0x1CD0, 0x1CD2, prCM, gcMn},     //     [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA\n\t{0x1CD3, 0x1CD3, prAL, gcPo},     //         VEDIC SIGN NIHSHVASA\n\t{0x1CD4, 0x1CE0, prCM, gcMn},     //    [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA\n\t{0x1CE1, 0x1CE1, prCM, gcMc},     //         VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA\n\t{0x1CE2, 0x1CE8, prCM, gcMn},     //     [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL\n\t{0x1CE9, 0x1CEC, prAL, gcLo},     //     [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL\n\t{0x1CED, 0x1CED, prCM, gcMn},     //         VEDIC SIGN TIRYAK\n\t{0x1CEE, 0x1CF3, prAL, gcLo},     //     [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA\n\t{0x1CF4, 0x1CF4, prCM, gcMn},     //         VEDIC TONE CANDRA ABOVE\n\t{0x1CF5, 0x1CF6, prAL, gcLo},     //     [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA\n\t{0x1CF7, 0x1CF7, prCM, gcMc},     //         VEDIC SIGN ATIKRAMA\n\t{0x1CF8, 0x1CF9, prCM, gcMn},     //     [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE\n\t{0x1CFA, 0x1CFA, prAL, gcLo},     //         VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA\n\t{0x1D00, 0x1D2B, prAL, gcLl},     //    [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL\n\t{0x1D2C, 0x1D6A, prAL, gcLm},     //    [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI\n\t{0x1D6B, 0x1D77, prAL, gcLl},     //    [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G\n\t{0x1D78, 0x1D78, prAL, gcLm},     //         MODIFIER LETTER CYRILLIC EN\n\t{0x1D79, 0x1D7F, prAL, gcLl},     //     [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE\n\t{0x1D80, 0x1D9A, prAL, gcLl},     //    [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK\n\t{0x1D9B, 0x1DBF, prAL, gcLm},     //    [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA\n\t{0x1DC0, 0x1DCC, prCM, gcMn},     //    [13] COMBINING DOTTED GRAVE ACCENT..COMBINING MACRON-BREVE\n\t{0x1DCD, 0x1DCD, prGL, gcMn},     //         COMBINING DOUBLE CIRCUMFLEX ABOVE\n\t{0x1DCE, 0x1DFB, prCM, gcMn},     //    [46] COMBINING OGONEK ABOVE..COMBINING DELETION MARK\n\t{0x1DFC, 0x1DFC, prGL, gcMn},     //         COMBINING DOUBLE INVERTED BREVE BELOW\n\t{0x1DFD, 0x1DFF, prCM, gcMn},     //     [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW\n\t{0x1E00, 0x1EFF, prAL, gcLC},     //   [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP\n\t{0x1F00, 0x1F15, prAL, gcLC},     //    [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA\n\t{0x1F18, 0x1F1D, prAL, gcLu},     //     [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA\n\t{0x1F20, 0x1F45, prAL, gcLC},     //    [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA\n\t{0x1F48, 0x1F4D, prAL, gcLu},     //     [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA\n\t{0x1F50, 0x1F57, prAL, gcLl},     //     [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI\n\t{0x1F59, 0x1F59, prAL, gcLu},     //         GREEK CAPITAL LETTER UPSILON WITH DASIA\n\t{0x1F5B, 0x1F5B, prAL, gcLu},     //         GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA\n\t{0x1F5D, 0x1F5D, prAL, gcLu},     //         GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA\n\t{0x1F5F, 0x1F7D, prAL, gcLC},     //    [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA\n\t{0x1F80, 0x1FB4, prAL, gcLC},     //    [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FB6, 0x1FBC, prAL, gcLC},     //     [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI\n\t{0x1FBD, 0x1FBD, prAL, gcSk},     //         GREEK KORONIS\n\t{0x1FBE, 0x1FBE, prAL, gcLl},     //         GREEK PROSGEGRAMMENI\n\t{0x1FBF, 0x1FC1, prAL, gcSk},     //     [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI\n\t{0x1FC2, 0x1FC4, prAL, gcLl},     //     [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FC6, 0x1FCC, prAL, gcLC},     //     [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI\n\t{0x1FCD, 0x1FCF, prAL, gcSk},     //     [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI\n\t{0x1FD0, 0x1FD3, prAL, gcLl},     //     [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA\n\t{0x1FD6, 0x1FDB, prAL, gcLC},     //     [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA\n\t{0x1FDD, 0x1FDF, prAL, gcSk},     //     [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI\n\t{0x1FE0, 0x1FEC, prAL, gcLC},     //    [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA\n\t{0x1FED, 0x1FEF, prAL, gcSk},     //     [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA\n\t{0x1FF2, 0x1FF4, prAL, gcLl},     //     [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FF6, 0x1FFC, prAL, gcLC},     //     [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI\n\t{0x1FFD, 0x1FFD, prBB, gcSk},     //         GREEK OXIA\n\t{0x1FFE, 0x1FFE, prAL, gcSk},     //         GREEK DASIA\n\t{0x2000, 0x2006, prBA, gcZs},     //     [7] EN QUAD..SIX-PER-EM SPACE\n\t{0x2007, 0x2007, prGL, gcZs},     //         FIGURE SPACE\n\t{0x2008, 0x200A, prBA, gcZs},     //     [3] PUNCTUATION SPACE..HAIR SPACE\n\t{0x200B, 0x200B, prZW, gcCf},     //         ZERO WIDTH SPACE\n\t{0x200C, 0x200C, prCM, gcCf},     //         ZERO WIDTH NON-JOINER\n\t{0x200D, 0x200D, prZWJ, gcCf},    //         ZERO WIDTH JOINER\n\t{0x200E, 0x200F, prCM, gcCf},     //     [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK\n\t{0x2010, 0x2010, prBA, gcPd},     //         HYPHEN\n\t{0x2011, 0x2011, prGL, gcPd},     //         NON-BREAKING HYPHEN\n\t{0x2012, 0x2013, prBA, gcPd},     //     [2] FIGURE DASH..EN DASH\n\t{0x2014, 0x2014, prB2, gcPd},     //         EM DASH\n\t{0x2015, 0x2015, prAI, gcPd},     //         HORIZONTAL BAR\n\t{0x2016, 0x2016, prAI, gcPo},     //         DOUBLE VERTICAL LINE\n\t{0x2017, 0x2017, prAL, gcPo},     //         DOUBLE LOW LINE\n\t{0x2018, 0x2018, prQU, gcPi},     //         LEFT SINGLE QUOTATION MARK\n\t{0x2019, 0x2019, prQU, gcPf},     //         RIGHT SINGLE QUOTATION MARK\n\t{0x201A, 0x201A, prOP, gcPs},     //         SINGLE LOW-9 QUOTATION MARK\n\t{0x201B, 0x201C, prQU, gcPi},     //     [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK\n\t{0x201D, 0x201D, prQU, gcPf},     //         RIGHT DOUBLE QUOTATION MARK\n\t{0x201E, 0x201E, prOP, gcPs},     //         DOUBLE LOW-9 QUOTATION MARK\n\t{0x201F, 0x201F, prQU, gcPi},     //         DOUBLE HIGH-REVERSED-9 QUOTATION MARK\n\t{0x2020, 0x2021, prAI, gcPo},     //     [2] DAGGER..DOUBLE DAGGER\n\t{0x2022, 0x2023, prAL, gcPo},     //     [2] BULLET..TRIANGULAR BULLET\n\t{0x2024, 0x2026, prIN, gcPo},     //     [3] ONE DOT LEADER..HORIZONTAL ELLIPSIS\n\t{0x2027, 0x2027, prBA, gcPo},     //         HYPHENATION POINT\n\t{0x2028, 0x2028, prBK, gcZl},     //         LINE SEPARATOR\n\t{0x2029, 0x2029, prBK, gcZp},     //         PARAGRAPH SEPARATOR\n\t{0x202A, 0x202E, prCM, gcCf},     //     [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE\n\t{0x202F, 0x202F, prGL, gcZs},     //         NARROW NO-BREAK SPACE\n\t{0x2030, 0x2037, prPO, gcPo},     //     [8] PER MILLE SIGN..REVERSED TRIPLE PRIME\n\t{0x2038, 0x2038, prAL, gcPo},     //         CARET\n\t{0x2039, 0x2039, prQU, gcPi},     //         SINGLE LEFT-POINTING ANGLE QUOTATION MARK\n\t{0x203A, 0x203A, prQU, gcPf},     //         SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\n\t{0x203B, 0x203B, prAI, gcPo},     //         REFERENCE MARK\n\t{0x203C, 0x203D, prNS, gcPo},     //     [2] DOUBLE EXCLAMATION MARK..INTERROBANG\n\t{0x203E, 0x203E, prAL, gcPo},     //         OVERLINE\n\t{0x203F, 0x2040, prAL, gcPc},     //     [2] UNDERTIE..CHARACTER TIE\n\t{0x2041, 0x2043, prAL, gcPo},     //     [3] CARET INSERTION POINT..HYPHEN BULLET\n\t{0x2044, 0x2044, prIS, gcSm},     //         FRACTION SLASH\n\t{0x2045, 0x2045, prOP, gcPs},     //         LEFT SQUARE BRACKET WITH QUILL\n\t{0x2046, 0x2046, prCL, gcPe},     //         RIGHT SQUARE BRACKET WITH QUILL\n\t{0x2047, 0x2049, prNS, gcPo},     //     [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK\n\t{0x204A, 0x2051, prAL, gcPo},     //     [8] TIRONIAN SIGN ET..TWO ASTERISKS ALIGNED VERTICALLY\n\t{0x2052, 0x2052, prAL, gcSm},     //         COMMERCIAL MINUS SIGN\n\t{0x2053, 0x2053, prAL, gcPo},     //         SWUNG DASH\n\t{0x2054, 0x2054, prAL, gcPc},     //         INVERTED UNDERTIE\n\t{0x2055, 0x2055, prAL, gcPo},     //         FLOWER PUNCTUATION MARK\n\t{0x2056, 0x2056, prBA, gcPo},     //         THREE DOT PUNCTUATION\n\t{0x2057, 0x2057, prPO, gcPo},     //         QUADRUPLE PRIME\n\t{0x2058, 0x205B, prBA, gcPo},     //     [4] FOUR DOT PUNCTUATION..FOUR DOT MARK\n\t{0x205C, 0x205C, prAL, gcPo},     //         DOTTED CROSS\n\t{0x205D, 0x205E, prBA, gcPo},     //     [2] TRICOLON..VERTICAL FOUR DOTS\n\t{0x205F, 0x205F, prBA, gcZs},     //         MEDIUM MATHEMATICAL SPACE\n\t{0x2060, 0x2060, prWJ, gcCf},     //         WORD JOINER\n\t{0x2061, 0x2064, prAL, gcCf},     //     [4] FUNCTION APPLICATION..INVISIBLE PLUS\n\t{0x2066, 0x206F, prCM, gcCf},     //    [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES\n\t{0x2070, 0x2070, prAL, gcNo},     //         SUPERSCRIPT ZERO\n\t{0x2071, 0x2071, prAL, gcLm},     //         SUPERSCRIPT LATIN SMALL LETTER I\n\t{0x2074, 0x2074, prAI, gcNo},     //         SUPERSCRIPT FOUR\n\t{0x2075, 0x2079, prAL, gcNo},     //     [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE\n\t{0x207A, 0x207C, prAL, gcSm},     //     [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN\n\t{0x207D, 0x207D, prOP, gcPs},     //         SUPERSCRIPT LEFT PARENTHESIS\n\t{0x207E, 0x207E, prCL, gcPe},     //         SUPERSCRIPT RIGHT PARENTHESIS\n\t{0x207F, 0x207F, prAI, gcLm},     //         SUPERSCRIPT LATIN SMALL LETTER N\n\t{0x2080, 0x2080, prAL, gcNo},     //         SUBSCRIPT ZERO\n\t{0x2081, 0x2084, prAI, gcNo},     //     [4] SUBSCRIPT ONE..SUBSCRIPT FOUR\n\t{0x2085, 0x2089, prAL, gcNo},     //     [5] SUBSCRIPT FIVE..SUBSCRIPT NINE\n\t{0x208A, 0x208C, prAL, gcSm},     //     [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN\n\t{0x208D, 0x208D, prOP, gcPs},     //         SUBSCRIPT LEFT PARENTHESIS\n\t{0x208E, 0x208E, prCL, gcPe},     //         SUBSCRIPT RIGHT PARENTHESIS\n\t{0x2090, 0x209C, prAL, gcLm},     //    [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T\n\t{0x20A0, 0x20A6, prPR, gcSc},     //     [7] EURO-CURRENCY SIGN..NAIRA SIGN\n\t{0x20A7, 0x20A7, prPO, gcSc},     //         PESETA SIGN\n\t{0x20A8, 0x20B5, prPR, gcSc},     //    [14] RUPEE SIGN..CEDI SIGN\n\t{0x20B6, 0x20B6, prPO, gcSc},     //         LIVRE TOURNOIS SIGN\n\t{0x20B7, 0x20BA, prPR, gcSc},     //     [4] SPESMILO SIGN..TURKISH LIRA SIGN\n\t{0x20BB, 0x20BB, prPO, gcSc},     //         NORDIC MARK SIGN\n\t{0x20BC, 0x20BD, prPR, gcSc},     //     [2] MANAT SIGN..RUBLE SIGN\n\t{0x20BE, 0x20BE, prPO, gcSc},     //         LARI SIGN\n\t{0x20BF, 0x20BF, prPR, gcSc},     //         BITCOIN SIGN\n\t{0x20C0, 0x20C0, prPO, gcSc},     //         SOM SIGN\n\t{0x20C1, 0x20CF, prPR, gcCn},     //    [15] <reserved-20C1>..<reserved-20CF>\n\t{0x20D0, 0x20DC, prCM, gcMn},     //    [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE\n\t{0x20DD, 0x20E0, prCM, gcMe},     //     [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH\n\t{0x20E1, 0x20E1, prCM, gcMn},     //         COMBINING LEFT RIGHT ARROW ABOVE\n\t{0x20E2, 0x20E4, prCM, gcMe},     //     [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE\n\t{0x20E5, 0x20F0, prCM, gcMn},     //    [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE\n\t{0x2100, 0x2101, prAL, gcSo},     //     [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT\n\t{0x2102, 0x2102, prAL, gcLu},     //         DOUBLE-STRUCK CAPITAL C\n\t{0x2103, 0x2103, prPO, gcSo},     //         DEGREE CELSIUS\n\t{0x2104, 0x2104, prAL, gcSo},     //         CENTRE LINE SYMBOL\n\t{0x2105, 0x2105, prAI, gcSo},     //         CARE OF\n\t{0x2106, 0x2106, prAL, gcSo},     //         CADA UNA\n\t{0x2107, 0x2107, prAL, gcLu},     //         EULER CONSTANT\n\t{0x2108, 0x2108, prAL, gcSo},     //         SCRUPLE\n\t{0x2109, 0x2109, prPO, gcSo},     //         DEGREE FAHRENHEIT\n\t{0x210A, 0x2112, prAL, gcLC},     //     [9] SCRIPT SMALL G..SCRIPT CAPITAL L\n\t{0x2113, 0x2113, prAI, gcLl},     //         SCRIPT SMALL L\n\t{0x2114, 0x2114, prAL, gcSo},     //         L B BAR SYMBOL\n\t{0x2115, 0x2115, prAL, gcLu},     //         DOUBLE-STRUCK CAPITAL N\n\t{0x2116, 0x2116, prPR, gcSo},     //         NUMERO SIGN\n\t{0x2117, 0x2117, prAL, gcSo},     //         SOUND RECORDING COPYRIGHT\n\t{0x2118, 0x2118, prAL, gcSm},     //         SCRIPT CAPITAL P\n\t{0x2119, 0x211D, prAL, gcLu},     //     [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R\n\t{0x211E, 0x2120, prAL, gcSo},     //     [3] PRESCRIPTION TAKE..SERVICE MARK\n\t{0x2121, 0x2122, prAI, gcSo},     //     [2] TELEPHONE SIGN..TRADE MARK SIGN\n\t{0x2123, 0x2123, prAL, gcSo},     //         VERSICLE\n\t{0x2124, 0x2124, prAL, gcLu},     //         DOUBLE-STRUCK CAPITAL Z\n\t{0x2125, 0x2125, prAL, gcSo},     //         OUNCE SIGN\n\t{0x2126, 0x2126, prAL, gcLu},     //         OHM SIGN\n\t{0x2127, 0x2127, prAL, gcSo},     //         INVERTED OHM SIGN\n\t{0x2128, 0x2128, prAL, gcLu},     //         BLACK-LETTER CAPITAL Z\n\t{0x2129, 0x2129, prAL, gcSo},     //         TURNED GREEK SMALL LETTER IOTA\n\t{0x212A, 0x212A, prAL, gcLu},     //         KELVIN SIGN\n\t{0x212B, 0x212B, prAI, gcLu},     //         ANGSTROM SIGN\n\t{0x212C, 0x212D, prAL, gcLu},     //     [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C\n\t{0x212E, 0x212E, prAL, gcSo},     //         ESTIMATED SYMBOL\n\t{0x212F, 0x2134, prAL, gcLC},     //     [6] SCRIPT SMALL E..SCRIPT SMALL O\n\t{0x2135, 0x2138, prAL, gcLo},     //     [4] ALEF SYMBOL..DALET SYMBOL\n\t{0x2139, 0x2139, prAL, gcLl},     //         INFORMATION SOURCE\n\t{0x213A, 0x213B, prAL, gcSo},     //     [2] ROTATED CAPITAL Q..FACSIMILE SIGN\n\t{0x213C, 0x213F, prAL, gcLC},     //     [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI\n\t{0x2140, 0x2144, prAL, gcSm},     //     [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y\n\t{0x2145, 0x2149, prAL, gcLC},     //     [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J\n\t{0x214A, 0x214A, prAL, gcSo},     //         PROPERTY LINE\n\t{0x214B, 0x214B, prAL, gcSm},     //         TURNED AMPERSAND\n\t{0x214C, 0x214D, prAL, gcSo},     //     [2] PER SIGN..AKTIESELSKAB\n\t{0x214E, 0x214E, prAL, gcLl},     //         TURNED SMALL F\n\t{0x214F, 0x214F, prAL, gcSo},     //         SYMBOL FOR SAMARITAN SOURCE\n\t{0x2150, 0x2153, prAL, gcNo},     //     [4] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE THIRD\n\t{0x2154, 0x2155, prAI, gcNo},     //     [2] VULGAR FRACTION TWO THIRDS..VULGAR FRACTION ONE FIFTH\n\t{0x2156, 0x215A, prAL, gcNo},     //     [5] VULGAR FRACTION TWO FIFTHS..VULGAR FRACTION FIVE SIXTHS\n\t{0x215B, 0x215B, prAI, gcNo},     //         VULGAR FRACTION ONE EIGHTH\n\t{0x215C, 0x215D, prAL, gcNo},     //     [2] VULGAR FRACTION THREE EIGHTHS..VULGAR FRACTION FIVE EIGHTHS\n\t{0x215E, 0x215E, prAI, gcNo},     //         VULGAR FRACTION SEVEN EIGHTHS\n\t{0x215F, 0x215F, prAL, gcNo},     //         FRACTION NUMERATOR ONE\n\t{0x2160, 0x216B, prAI, gcNl},     //    [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE\n\t{0x216C, 0x216F, prAL, gcNl},     //     [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND\n\t{0x2170, 0x2179, prAI, gcNl},     //    [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN\n\t{0x217A, 0x2182, prAL, gcNl},     //     [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND\n\t{0x2183, 0x2184, prAL, gcLC},     //     [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C\n\t{0x2185, 0x2188, prAL, gcNl},     //     [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND\n\t{0x2189, 0x2189, prAI, gcNo},     //         VULGAR FRACTION ZERO THIRDS\n\t{0x218A, 0x218B, prAL, gcSo},     //     [2] TURNED DIGIT TWO..TURNED DIGIT THREE\n\t{0x2190, 0x2194, prAI, gcSm},     //     [5] LEFTWARDS ARROW..LEFT RIGHT ARROW\n\t{0x2195, 0x2199, prAI, gcSo},     //     [5] UP DOWN ARROW..SOUTH WEST ARROW\n\t{0x219A, 0x219B, prAL, gcSm},     //     [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE\n\t{0x219C, 0x219F, prAL, gcSo},     //     [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW\n\t{0x21A0, 0x21A0, prAL, gcSm},     //         RIGHTWARDS TWO HEADED ARROW\n\t{0x21A1, 0x21A2, prAL, gcSo},     //     [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL\n\t{0x21A3, 0x21A3, prAL, gcSm},     //         RIGHTWARDS ARROW WITH TAIL\n\t{0x21A4, 0x21A5, prAL, gcSo},     //     [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR\n\t{0x21A6, 0x21A6, prAL, gcSm},     //         RIGHTWARDS ARROW FROM BAR\n\t{0x21A7, 0x21AD, prAL, gcSo},     //     [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW\n\t{0x21AE, 0x21AE, prAL, gcSm},     //         LEFT RIGHT ARROW WITH STROKE\n\t{0x21AF, 0x21CD, prAL, gcSo},     //    [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE\n\t{0x21CE, 0x21CF, prAL, gcSm},     //     [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE\n\t{0x21D0, 0x21D1, prAL, gcSo},     //     [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW\n\t{0x21D2, 0x21D2, prAI, gcSm},     //         RIGHTWARDS DOUBLE ARROW\n\t{0x21D3, 0x21D3, prAL, gcSo},     //         DOWNWARDS DOUBLE ARROW\n\t{0x21D4, 0x21D4, prAI, gcSm},     //         LEFT RIGHT DOUBLE ARROW\n\t{0x21D5, 0x21F3, prAL, gcSo},     //    [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW\n\t{0x21F4, 0x21FF, prAL, gcSm},     //    [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW\n\t{0x2200, 0x2200, prAI, gcSm},     //         FOR ALL\n\t{0x2201, 0x2201, prAL, gcSm},     //         COMPLEMENT\n\t{0x2202, 0x2203, prAI, gcSm},     //     [2] PARTIAL DIFFERENTIAL..THERE EXISTS\n\t{0x2204, 0x2206, prAL, gcSm},     //     [3] THERE DOES NOT EXIST..INCREMENT\n\t{0x2207, 0x2208, prAI, gcSm},     //     [2] NABLA..ELEMENT OF\n\t{0x2209, 0x220A, prAL, gcSm},     //     [2] NOT AN ELEMENT OF..SMALL ELEMENT OF\n\t{0x220B, 0x220B, prAI, gcSm},     //         CONTAINS AS MEMBER\n\t{0x220C, 0x220E, prAL, gcSm},     //     [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF\n\t{0x220F, 0x220F, prAI, gcSm},     //         N-ARY PRODUCT\n\t{0x2210, 0x2210, prAL, gcSm},     //         N-ARY COPRODUCT\n\t{0x2211, 0x2211, prAI, gcSm},     //         N-ARY SUMMATION\n\t{0x2212, 0x2213, prPR, gcSm},     //     [2] MINUS SIGN..MINUS-OR-PLUS SIGN\n\t{0x2214, 0x2214, prAL, gcSm},     //         DOT PLUS\n\t{0x2215, 0x2215, prAI, gcSm},     //         DIVISION SLASH\n\t{0x2216, 0x2219, prAL, gcSm},     //     [4] SET MINUS..BULLET OPERATOR\n\t{0x221A, 0x221A, prAI, gcSm},     //         SQUARE ROOT\n\t{0x221B, 0x221C, prAL, gcSm},     //     [2] CUBE ROOT..FOURTH ROOT\n\t{0x221D, 0x2220, prAI, gcSm},     //     [4] PROPORTIONAL TO..ANGLE\n\t{0x2221, 0x2222, prAL, gcSm},     //     [2] MEASURED ANGLE..SPHERICAL ANGLE\n\t{0x2223, 0x2223, prAI, gcSm},     //         DIVIDES\n\t{0x2224, 0x2224, prAL, gcSm},     //         DOES NOT DIVIDE\n\t{0x2225, 0x2225, prAI, gcSm},     //         PARALLEL TO\n\t{0x2226, 0x2226, prAL, gcSm},     //         NOT PARALLEL TO\n\t{0x2227, 0x222C, prAI, gcSm},     //     [6] LOGICAL AND..DOUBLE INTEGRAL\n\t{0x222D, 0x222D, prAL, gcSm},     //         TRIPLE INTEGRAL\n\t{0x222E, 0x222E, prAI, gcSm},     //         CONTOUR INTEGRAL\n\t{0x222F, 0x2233, prAL, gcSm},     //     [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL\n\t{0x2234, 0x2237, prAI, gcSm},     //     [4] THEREFORE..PROPORTION\n\t{0x2238, 0x223B, prAL, gcSm},     //     [4] DOT MINUS..HOMOTHETIC\n\t{0x223C, 0x223D, prAI, gcSm},     //     [2] TILDE OPERATOR..REVERSED TILDE\n\t{0x223E, 0x2247, prAL, gcSm},     //    [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO\n\t{0x2248, 0x2248, prAI, gcSm},     //         ALMOST EQUAL TO\n\t{0x2249, 0x224B, prAL, gcSm},     //     [3] NOT ALMOST EQUAL TO..TRIPLE TILDE\n\t{0x224C, 0x224C, prAI, gcSm},     //         ALL EQUAL TO\n\t{0x224D, 0x2251, prAL, gcSm},     //     [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO\n\t{0x2252, 0x2252, prAI, gcSm},     //         APPROXIMATELY EQUAL TO OR THE IMAGE OF\n\t{0x2253, 0x225F, prAL, gcSm},     //    [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO\n\t{0x2260, 0x2261, prAI, gcSm},     //     [2] NOT EQUAL TO..IDENTICAL TO\n\t{0x2262, 0x2263, prAL, gcSm},     //     [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO\n\t{0x2264, 0x2267, prAI, gcSm},     //     [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO\n\t{0x2268, 0x2269, prAL, gcSm},     //     [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO\n\t{0x226A, 0x226B, prAI, gcSm},     //     [2] MUCH LESS-THAN..MUCH GREATER-THAN\n\t{0x226C, 0x226D, prAL, gcSm},     //     [2] BETWEEN..NOT EQUIVALENT TO\n\t{0x226E, 0x226F, prAI, gcSm},     //     [2] NOT LESS-THAN..NOT GREATER-THAN\n\t{0x2270, 0x2281, prAL, gcSm},     //    [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED\n\t{0x2282, 0x2283, prAI, gcSm},     //     [2] SUBSET OF..SUPERSET OF\n\t{0x2284, 0x2285, prAL, gcSm},     //     [2] NOT A SUBSET OF..NOT A SUPERSET OF\n\t{0x2286, 0x2287, prAI, gcSm},     //     [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO\n\t{0x2288, 0x2294, prAL, gcSm},     //    [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP\n\t{0x2295, 0x2295, prAI, gcSm},     //         CIRCLED PLUS\n\t{0x2296, 0x2298, prAL, gcSm},     //     [3] CIRCLED MINUS..CIRCLED DIVISION SLASH\n\t{0x2299, 0x2299, prAI, gcSm},     //         CIRCLED DOT OPERATOR\n\t{0x229A, 0x22A4, prAL, gcSm},     //    [11] CIRCLED RING OPERATOR..DOWN TACK\n\t{0x22A5, 0x22A5, prAI, gcSm},     //         UP TACK\n\t{0x22A6, 0x22BE, prAL, gcSm},     //    [25] ASSERTION..RIGHT ANGLE WITH ARC\n\t{0x22BF, 0x22BF, prAI, gcSm},     //         RIGHT TRIANGLE\n\t{0x22C0, 0x22EE, prAL, gcSm},     //    [47] N-ARY LOGICAL AND..VERTICAL ELLIPSIS\n\t{0x22EF, 0x22EF, prIN, gcSm},     //         MIDLINE HORIZONTAL ELLIPSIS\n\t{0x22F0, 0x22FF, prAL, gcSm},     //    [16] UP RIGHT DIAGONAL ELLIPSIS..Z NOTATION BAG MEMBERSHIP\n\t{0x2300, 0x2307, prAL, gcSo},     //     [8] DIAMETER SIGN..WAVY LINE\n\t{0x2308, 0x2308, prOP, gcPs},     //         LEFT CEILING\n\t{0x2309, 0x2309, prCL, gcPe},     //         RIGHT CEILING\n\t{0x230A, 0x230A, prOP, gcPs},     //         LEFT FLOOR\n\t{0x230B, 0x230B, prCL, gcPe},     //         RIGHT FLOOR\n\t{0x230C, 0x2311, prAL, gcSo},     //     [6] BOTTOM RIGHT CROP..SQUARE LOZENGE\n\t{0x2312, 0x2312, prAI, gcSo},     //         ARC\n\t{0x2313, 0x2319, prAL, gcSo},     //     [7] SEGMENT..TURNED NOT SIGN\n\t{0x231A, 0x231B, prID, gcSo},     //     [2] WATCH..HOURGLASS\n\t{0x231C, 0x231F, prAL, gcSo},     //     [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER\n\t{0x2320, 0x2321, prAL, gcSm},     //     [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL\n\t{0x2322, 0x2328, prAL, gcSo},     //     [7] FROWN..KEYBOARD\n\t{0x2329, 0x2329, prOP, gcPs},     //         LEFT-POINTING ANGLE BRACKET\n\t{0x232A, 0x232A, prCL, gcPe},     //         RIGHT-POINTING ANGLE BRACKET\n\t{0x232B, 0x237B, prAL, gcSo},     //    [81] ERASE TO THE LEFT..NOT CHECK MARK\n\t{0x237C, 0x237C, prAL, gcSm},     //         RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW\n\t{0x237D, 0x239A, prAL, gcSo},     //    [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL\n\t{0x239B, 0x23B3, prAL, gcSm},     //    [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM\n\t{0x23B4, 0x23DB, prAL, gcSo},     //    [40] TOP SQUARE BRACKET..FUSE\n\t{0x23DC, 0x23E1, prAL, gcSm},     //     [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET\n\t{0x23E2, 0x23EF, prAL, gcSo},     //    [14] WHITE TRAPEZIUM..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR\n\t{0x23F0, 0x23F3, prID, gcSo},     //     [4] ALARM CLOCK..HOURGLASS WITH FLOWING SAND\n\t{0x23F4, 0x23FF, prAL, gcSo},     //    [12] BLACK MEDIUM LEFT-POINTING TRIANGLE..OBSERVER EYE SYMBOL\n\t{0x2400, 0x2426, prAL, gcSo},     //    [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO\n\t{0x2440, 0x244A, prAL, gcSo},     //    [11] OCR HOOK..OCR DOUBLE BACKSLASH\n\t{0x2460, 0x249B, prAI, gcNo},     //    [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP\n\t{0x249C, 0x24E9, prAI, gcSo},     //    [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z\n\t{0x24EA, 0x24FE, prAI, gcNo},     //    [21] CIRCLED DIGIT ZERO..DOUBLE CIRCLED NUMBER TEN\n\t{0x24FF, 0x24FF, prAL, gcNo},     //         NEGATIVE CIRCLED DIGIT ZERO\n\t{0x2500, 0x254B, prAI, gcSo},     //    [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL\n\t{0x254C, 0x254F, prAL, gcSo},     //     [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL\n\t{0x2550, 0x2574, prAI, gcSo},     //    [37] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT LEFT\n\t{0x2575, 0x257F, prAL, gcSo},     //    [11] BOX DRAWINGS LIGHT UP..BOX DRAWINGS HEAVY UP AND LIGHT DOWN\n\t{0x2580, 0x258F, prAI, gcSo},     //    [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK\n\t{0x2590, 0x2591, prAL, gcSo},     //     [2] RIGHT HALF BLOCK..LIGHT SHADE\n\t{0x2592, 0x2595, prAI, gcSo},     //     [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK\n\t{0x2596, 0x259F, prAL, gcSo},     //    [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT\n\t{0x25A0, 0x25A1, prAI, gcSo},     //     [2] BLACK SQUARE..WHITE SQUARE\n\t{0x25A2, 0x25A2, prAL, gcSo},     //         WHITE SQUARE WITH ROUNDED CORNERS\n\t{0x25A3, 0x25A9, prAI, gcSo},     //     [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL\n\t{0x25AA, 0x25B1, prAL, gcSo},     //     [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM\n\t{0x25B2, 0x25B3, prAI, gcSo},     //     [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE\n\t{0x25B4, 0x25B5, prAL, gcSo},     //     [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE\n\t{0x25B6, 0x25B6, prAI, gcSo},     //         BLACK RIGHT-POINTING TRIANGLE\n\t{0x25B7, 0x25B7, prAI, gcSm},     //         WHITE RIGHT-POINTING TRIANGLE\n\t{0x25B8, 0x25BB, prAL, gcSo},     //     [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER\n\t{0x25BC, 0x25BD, prAI, gcSo},     //     [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE\n\t{0x25BE, 0x25BF, prAL, gcSo},     //     [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE\n\t{0x25C0, 0x25C0, prAI, gcSo},     //         BLACK LEFT-POINTING TRIANGLE\n\t{0x25C1, 0x25C1, prAI, gcSm},     //         WHITE LEFT-POINTING TRIANGLE\n\t{0x25C2, 0x25C5, prAL, gcSo},     //     [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER\n\t{0x25C6, 0x25C8, prAI, gcSo},     //     [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND\n\t{0x25C9, 0x25CA, prAL, gcSo},     //     [2] FISHEYE..LOZENGE\n\t{0x25CB, 0x25CB, prAI, gcSo},     //         WHITE CIRCLE\n\t{0x25CC, 0x25CD, prAL, gcSo},     //     [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL\n\t{0x25CE, 0x25D1, prAI, gcSo},     //     [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK\n\t{0x25D2, 0x25E1, prAL, gcSo},     //    [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE\n\t{0x25E2, 0x25E5, prAI, gcSo},     //     [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE\n\t{0x25E6, 0x25EE, prAL, gcSo},     //     [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK\n\t{0x25EF, 0x25EF, prAI, gcSo},     //         LARGE CIRCLE\n\t{0x25F0, 0x25F7, prAL, gcSo},     //     [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT\n\t{0x25F8, 0x25FF, prAL, gcSm},     //     [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE\n\t{0x2600, 0x2603, prID, gcSo},     //     [4] BLACK SUN WITH RAYS..SNOWMAN\n\t{0x2604, 0x2604, prAL, gcSo},     //         COMET\n\t{0x2605, 0x2606, prAI, gcSo},     //     [2] BLACK STAR..WHITE STAR\n\t{0x2607, 0x2608, prAL, gcSo},     //     [2] LIGHTNING..THUNDERSTORM\n\t{0x2609, 0x2609, prAI, gcSo},     //         SUN\n\t{0x260A, 0x260D, prAL, gcSo},     //     [4] ASCENDING NODE..OPPOSITION\n\t{0x260E, 0x260F, prAI, gcSo},     //     [2] BLACK TELEPHONE..WHITE TELEPHONE\n\t{0x2610, 0x2613, prAL, gcSo},     //     [4] BALLOT BOX..SALTIRE\n\t{0x2614, 0x2615, prID, gcSo},     //     [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE\n\t{0x2616, 0x2617, prAI, gcSo},     //     [2] WHITE SHOGI PIECE..BLACK SHOGI PIECE\n\t{0x2618, 0x2618, prID, gcSo},     //         SHAMROCK\n\t{0x2619, 0x2619, prAL, gcSo},     //         REVERSED ROTATED FLORAL HEART BULLET\n\t{0x261A, 0x261C, prID, gcSo},     //     [3] BLACK LEFT POINTING INDEX..WHITE LEFT POINTING INDEX\n\t{0x261D, 0x261D, prEB, gcSo},     //         WHITE UP POINTING INDEX\n\t{0x261E, 0x261F, prID, gcSo},     //     [2] WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX\n\t{0x2620, 0x2638, prAL, gcSo},     //    [25] SKULL AND CROSSBONES..WHEEL OF DHARMA\n\t{0x2639, 0x263B, prID, gcSo},     //     [3] WHITE FROWNING FACE..BLACK SMILING FACE\n\t{0x263C, 0x263F, prAL, gcSo},     //     [4] WHITE SUN WITH RAYS..MERCURY\n\t{0x2640, 0x2640, prAI, gcSo},     //         FEMALE SIGN\n\t{0x2641, 0x2641, prAL, gcSo},     //         EARTH\n\t{0x2642, 0x2642, prAI, gcSo},     //         MALE SIGN\n\t{0x2643, 0x265F, prAL, gcSo},     //    [29] JUPITER..BLACK CHESS PAWN\n\t{0x2660, 0x2661, prAI, gcSo},     //     [2] BLACK SPADE SUIT..WHITE HEART SUIT\n\t{0x2662, 0x2662, prAL, gcSo},     //         WHITE DIAMOND SUIT\n\t{0x2663, 0x2665, prAI, gcSo},     //     [3] BLACK CLUB SUIT..BLACK HEART SUIT\n\t{0x2666, 0x2666, prAL, gcSo},     //         BLACK DIAMOND SUIT\n\t{0x2667, 0x2667, prAI, gcSo},     //         WHITE CLUB SUIT\n\t{0x2668, 0x2668, prID, gcSo},     //         HOT SPRINGS\n\t{0x2669, 0x266A, prAI, gcSo},     //     [2] QUARTER NOTE..EIGHTH NOTE\n\t{0x266B, 0x266B, prAL, gcSo},     //         BEAMED EIGHTH NOTES\n\t{0x266C, 0x266D, prAI, gcSo},     //     [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN\n\t{0x266E, 0x266E, prAL, gcSo},     //         MUSIC NATURAL SIGN\n\t{0x266F, 0x266F, prAI, gcSm},     //         MUSIC SHARP SIGN\n\t{0x2670, 0x267E, prAL, gcSo},     //    [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN\n\t{0x267F, 0x267F, prID, gcSo},     //         WHEELCHAIR SYMBOL\n\t{0x2680, 0x269D, prAL, gcSo},     //    [30] DIE FACE-1..OUTLINED WHITE STAR\n\t{0x269E, 0x269F, prAI, gcSo},     //     [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT\n\t{0x26A0, 0x26BC, prAL, gcSo},     //    [29] WARNING SIGN..SESQUIQUADRATE\n\t{0x26BD, 0x26C8, prID, gcSo},     //    [12] SOCCER BALL..THUNDER CLOUD AND RAIN\n\t{0x26C9, 0x26CC, prAI, gcSo},     //     [4] TURNED WHITE SHOGI PIECE..CROSSING LANES\n\t{0x26CD, 0x26CD, prID, gcSo},     //         DISABLED CAR\n\t{0x26CE, 0x26CE, prAL, gcSo},     //         OPHIUCHUS\n\t{0x26CF, 0x26D1, prID, gcSo},     //     [3] PICK..HELMET WITH WHITE CROSS\n\t{0x26D2, 0x26D2, prAI, gcSo},     //         CIRCLED CROSSING LANES\n\t{0x26D3, 0x26D4, prID, gcSo},     //     [2] CHAINS..NO ENTRY\n\t{0x26D5, 0x26D7, prAI, gcSo},     //     [3] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..WHITE TWO-WAY LEFT WAY TRAFFIC\n\t{0x26D8, 0x26D9, prID, gcSo},     //     [2] BLACK LEFT LANE MERGE..WHITE LEFT LANE MERGE\n\t{0x26DA, 0x26DB, prAI, gcSo},     //     [2] DRIVE SLOW SIGN..HEAVY WHITE DOWN-POINTING TRIANGLE\n\t{0x26DC, 0x26DC, prID, gcSo},     //         LEFT CLOSED ENTRY\n\t{0x26DD, 0x26DE, prAI, gcSo},     //     [2] SQUARED SALTIRE..FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE\n\t{0x26DF, 0x26E1, prID, gcSo},     //     [3] BLACK TRUCK..RESTRICTED LEFT ENTRY-2\n\t{0x26E2, 0x26E2, prAL, gcSo},     //         ASTRONOMICAL SYMBOL FOR URANUS\n\t{0x26E3, 0x26E3, prAI, gcSo},     //         HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE\n\t{0x26E4, 0x26E7, prAL, gcSo},     //     [4] PENTAGRAM..INVERTED PENTAGRAM\n\t{0x26E8, 0x26E9, prAI, gcSo},     //     [2] BLACK CROSS ON SHIELD..SHINTO SHRINE\n\t{0x26EA, 0x26EA, prID, gcSo},     //         CHURCH\n\t{0x26EB, 0x26F0, prAI, gcSo},     //     [6] CASTLE..MOUNTAIN\n\t{0x26F1, 0x26F5, prID, gcSo},     //     [5] UMBRELLA ON GROUND..SAILBOAT\n\t{0x26F6, 0x26F6, prAI, gcSo},     //         SQUARE FOUR CORNERS\n\t{0x26F7, 0x26F8, prID, gcSo},     //     [2] SKIER..ICE SKATE\n\t{0x26F9, 0x26F9, prEB, gcSo},     //         PERSON WITH BALL\n\t{0x26FA, 0x26FA, prID, gcSo},     //         TENT\n\t{0x26FB, 0x26FC, prAI, gcSo},     //     [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL\n\t{0x26FD, 0x26FF, prID, gcSo},     //     [3] FUEL PUMP..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE\n\t{0x2700, 0x2704, prID, gcSo},     //     [5] BLACK SAFETY SCISSORS..WHITE SCISSORS\n\t{0x2705, 0x2707, prAL, gcSo},     //     [3] WHITE HEAVY CHECK MARK..TAPE DRIVE\n\t{0x2708, 0x2709, prID, gcSo},     //     [2] AIRPLANE..ENVELOPE\n\t{0x270A, 0x270D, prEB, gcSo},     //     [4] RAISED FIST..WRITING HAND\n\t{0x270E, 0x2756, prAL, gcSo},     //    [73] LOWER RIGHT PENCIL..BLACK DIAMOND MINUS WHITE X\n\t{0x2757, 0x2757, prAI, gcSo},     //         HEAVY EXCLAMATION MARK SYMBOL\n\t{0x2758, 0x275A, prAL, gcSo},     //     [3] LIGHT VERTICAL BAR..HEAVY VERTICAL BAR\n\t{0x275B, 0x2760, prQU, gcSo},     //     [6] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT\n\t{0x2761, 0x2761, prAL, gcSo},     //         CURVED STEM PARAGRAPH SIGN ORNAMENT\n\t{0x2762, 0x2763, prEX, gcSo},     //     [2] HEAVY EXCLAMATION MARK ORNAMENT..HEAVY HEART EXCLAMATION MARK ORNAMENT\n\t{0x2764, 0x2764, prID, gcSo},     //         HEAVY BLACK HEART\n\t{0x2765, 0x2767, prAL, gcSo},     //     [3] ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET\n\t{0x2768, 0x2768, prOP, gcPs},     //         MEDIUM LEFT PARENTHESIS ORNAMENT\n\t{0x2769, 0x2769, prCL, gcPe},     //         MEDIUM RIGHT PARENTHESIS ORNAMENT\n\t{0x276A, 0x276A, prOP, gcPs},     //         MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT\n\t{0x276B, 0x276B, prCL, gcPe},     //         MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT\n\t{0x276C, 0x276C, prOP, gcPs},     //         MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x276D, 0x276D, prCL, gcPe},     //         MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x276E, 0x276E, prOP, gcPs},     //         HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT\n\t{0x276F, 0x276F, prCL, gcPe},     //         HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT\n\t{0x2770, 0x2770, prOP, gcPs},     //         HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x2771, 0x2771, prCL, gcPe},     //         HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x2772, 0x2772, prOP, gcPs},     //         LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT\n\t{0x2773, 0x2773, prCL, gcPe},     //         LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT\n\t{0x2774, 0x2774, prOP, gcPs},     //         MEDIUM LEFT CURLY BRACKET ORNAMENT\n\t{0x2775, 0x2775, prCL, gcPe},     //         MEDIUM RIGHT CURLY BRACKET ORNAMENT\n\t{0x2776, 0x2793, prAI, gcNo},     //    [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN\n\t{0x2794, 0x27BF, prAL, gcSo},     //    [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP\n\t{0x27C0, 0x27C4, prAL, gcSm},     //     [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET\n\t{0x27C5, 0x27C5, prOP, gcPs},     //         LEFT S-SHAPED BAG DELIMITER\n\t{0x27C6, 0x27C6, prCL, gcPe},     //         RIGHT S-SHAPED BAG DELIMITER\n\t{0x27C7, 0x27E5, prAL, gcSm},     //    [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK\n\t{0x27E6, 0x27E6, prOP, gcPs},     //         MATHEMATICAL LEFT WHITE SQUARE BRACKET\n\t{0x27E7, 0x27E7, prCL, gcPe},     //         MATHEMATICAL RIGHT WHITE SQUARE BRACKET\n\t{0x27E8, 0x27E8, prOP, gcPs},     //         MATHEMATICAL LEFT ANGLE BRACKET\n\t{0x27E9, 0x27E9, prCL, gcPe},     //         MATHEMATICAL RIGHT ANGLE BRACKET\n\t{0x27EA, 0x27EA, prOP, gcPs},     //         MATHEMATICAL LEFT DOUBLE ANGLE BRACKET\n\t{0x27EB, 0x27EB, prCL, gcPe},     //         MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET\n\t{0x27EC, 0x27EC, prOP, gcPs},     //         MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET\n\t{0x27ED, 0x27ED, prCL, gcPe},     //         MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET\n\t{0x27EE, 0x27EE, prOP, gcPs},     //         MATHEMATICAL LEFT FLATTENED PARENTHESIS\n\t{0x27EF, 0x27EF, prCL, gcPe},     //         MATHEMATICAL RIGHT FLATTENED PARENTHESIS\n\t{0x27F0, 0x27FF, prAL, gcSm},     //    [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW\n\t{0x2800, 0x28FF, prAL, gcSo},     //   [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678\n\t{0x2900, 0x297F, prAL, gcSm},     //   [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL\n\t{0x2980, 0x2982, prAL, gcSm},     //     [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON\n\t{0x2983, 0x2983, prOP, gcPs},     //         LEFT WHITE CURLY BRACKET\n\t{0x2984, 0x2984, prCL, gcPe},     //         RIGHT WHITE CURLY BRACKET\n\t{0x2985, 0x2985, prOP, gcPs},     //         LEFT WHITE PARENTHESIS\n\t{0x2986, 0x2986, prCL, gcPe},     //         RIGHT WHITE PARENTHESIS\n\t{0x2987, 0x2987, prOP, gcPs},     //         Z NOTATION LEFT IMAGE BRACKET\n\t{0x2988, 0x2988, prCL, gcPe},     //         Z NOTATION RIGHT IMAGE BRACKET\n\t{0x2989, 0x2989, prOP, gcPs},     //         Z NOTATION LEFT BINDING BRACKET\n\t{0x298A, 0x298A, prCL, gcPe},     //         Z NOTATION RIGHT BINDING BRACKET\n\t{0x298B, 0x298B, prOP, gcPs},     //         LEFT SQUARE BRACKET WITH UNDERBAR\n\t{0x298C, 0x298C, prCL, gcPe},     //         RIGHT SQUARE BRACKET WITH UNDERBAR\n\t{0x298D, 0x298D, prOP, gcPs},     //         LEFT SQUARE BRACKET WITH TICK IN TOP CORNER\n\t{0x298E, 0x298E, prCL, gcPe},     //         RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER\n\t{0x298F, 0x298F, prOP, gcPs},     //         LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER\n\t{0x2990, 0x2990, prCL, gcPe},     //         RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER\n\t{0x2991, 0x2991, prOP, gcPs},     //         LEFT ANGLE BRACKET WITH DOT\n\t{0x2992, 0x2992, prCL, gcPe},     //         RIGHT ANGLE BRACKET WITH DOT\n\t{0x2993, 0x2993, prOP, gcPs},     //         LEFT ARC LESS-THAN BRACKET\n\t{0x2994, 0x2994, prCL, gcPe},     //         RIGHT ARC GREATER-THAN BRACKET\n\t{0x2995, 0x2995, prOP, gcPs},     //         DOUBLE LEFT ARC GREATER-THAN BRACKET\n\t{0x2996, 0x2996, prCL, gcPe},     //         DOUBLE RIGHT ARC LESS-THAN BRACKET\n\t{0x2997, 0x2997, prOP, gcPs},     //         LEFT BLACK TORTOISE SHELL BRACKET\n\t{0x2998, 0x2998, prCL, gcPe},     //         RIGHT BLACK TORTOISE SHELL BRACKET\n\t{0x2999, 0x29D7, prAL, gcSm},     //    [63] DOTTED FENCE..BLACK HOURGLASS\n\t{0x29D8, 0x29D8, prOP, gcPs},     //         LEFT WIGGLY FENCE\n\t{0x29D9, 0x29D9, prCL, gcPe},     //         RIGHT WIGGLY FENCE\n\t{0x29DA, 0x29DA, prOP, gcPs},     //         LEFT DOUBLE WIGGLY FENCE\n\t{0x29DB, 0x29DB, prCL, gcPe},     //         RIGHT DOUBLE WIGGLY FENCE\n\t{0x29DC, 0x29FB, prAL, gcSm},     //    [32] INCOMPLETE INFINITY..TRIPLE PLUS\n\t{0x29FC, 0x29FC, prOP, gcPs},     //         LEFT-POINTING CURVED ANGLE BRACKET\n\t{0x29FD, 0x29FD, prCL, gcPe},     //         RIGHT-POINTING CURVED ANGLE BRACKET\n\t{0x29FE, 0x29FF, prAL, gcSm},     //     [2] TINY..MINY\n\t{0x2A00, 0x2AFF, prAL, gcSm},     //   [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR\n\t{0x2B00, 0x2B2F, prAL, gcSo},     //    [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE\n\t{0x2B30, 0x2B44, prAL, gcSm},     //    [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET\n\t{0x2B45, 0x2B46, prAL, gcSo},     //     [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW\n\t{0x2B47, 0x2B4C, prAL, gcSm},     //     [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR\n\t{0x2B4D, 0x2B54, prAL, gcSo},     //     [8] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..WHITE RIGHT-POINTING PENTAGON\n\t{0x2B55, 0x2B59, prAI, gcSo},     //     [5] HEAVY LARGE CIRCLE..HEAVY CIRCLED SALTIRE\n\t{0x2B5A, 0x2B73, prAL, gcSo},     //    [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR\n\t{0x2B76, 0x2B95, prAL, gcSo},     //    [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW\n\t{0x2B97, 0x2BFF, prAL, gcSo},     //   [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL\n\t{0x2C00, 0x2C5F, prAL, gcLC},     //    [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI\n\t{0x2C60, 0x2C7B, prAL, gcLC},     //    [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E\n\t{0x2C7C, 0x2C7D, prAL, gcLm},     //     [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V\n\t{0x2C7E, 0x2C7F, prAL, gcLu},     //     [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL\n\t{0x2C80, 0x2CE4, prAL, gcLC},     //   [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI\n\t{0x2CE5, 0x2CEA, prAL, gcSo},     //     [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA\n\t{0x2CEB, 0x2CEE, prAL, gcLC},     //     [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA\n\t{0x2CEF, 0x2CF1, prCM, gcMn},     //     [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS\n\t{0x2CF2, 0x2CF3, prAL, gcLC},     //     [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI\n\t{0x2CF9, 0x2CF9, prEX, gcPo},     //         COPTIC OLD NUBIAN FULL STOP\n\t{0x2CFA, 0x2CFC, prBA, gcPo},     //     [3] COPTIC OLD NUBIAN DIRECT QUESTION MARK..COPTIC OLD NUBIAN VERSE DIVIDER\n\t{0x2CFD, 0x2CFD, prAL, gcNo},     //         COPTIC FRACTION ONE HALF\n\t{0x2CFE, 0x2CFE, prEX, gcPo},     //         COPTIC FULL STOP\n\t{0x2CFF, 0x2CFF, prBA, gcPo},     //         COPTIC MORPHOLOGICAL DIVIDER\n\t{0x2D00, 0x2D25, prAL, gcLl},     //    [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE\n\t{0x2D27, 0x2D27, prAL, gcLl},     //         GEORGIAN SMALL LETTER YN\n\t{0x2D2D, 0x2D2D, prAL, gcLl},     //         GEORGIAN SMALL LETTER AEN\n\t{0x2D30, 0x2D67, prAL, gcLo},     //    [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO\n\t{0x2D6F, 0x2D6F, prAL, gcLm},     //         TIFINAGH MODIFIER LETTER LABIALIZATION MARK\n\t{0x2D70, 0x2D70, prBA, gcPo},     //         TIFINAGH SEPARATOR MARK\n\t{0x2D7F, 0x2D7F, prCM, gcMn},     //         TIFINAGH CONSONANT JOINER\n\t{0x2D80, 0x2D96, prAL, gcLo},     //    [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE\n\t{0x2DA0, 0x2DA6, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO\n\t{0x2DA8, 0x2DAE, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO\n\t{0x2DB0, 0x2DB6, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO\n\t{0x2DB8, 0x2DBE, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO\n\t{0x2DC0, 0x2DC6, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO\n\t{0x2DC8, 0x2DCE, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO\n\t{0x2DD0, 0x2DD6, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO\n\t{0x2DD8, 0x2DDE, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO\n\t{0x2DE0, 0x2DFF, prCM, gcMn},     //    [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS\n\t{0x2E00, 0x2E01, prQU, gcPo},     //     [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER\n\t{0x2E02, 0x2E02, prQU, gcPi},     //         LEFT SUBSTITUTION BRACKET\n\t{0x2E03, 0x2E03, prQU, gcPf},     //         RIGHT SUBSTITUTION BRACKET\n\t{0x2E04, 0x2E04, prQU, gcPi},     //         LEFT DOTTED SUBSTITUTION BRACKET\n\t{0x2E05, 0x2E05, prQU, gcPf},     //         RIGHT DOTTED SUBSTITUTION BRACKET\n\t{0x2E06, 0x2E08, prQU, gcPo},     //     [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER\n\t{0x2E09, 0x2E09, prQU, gcPi},     //         LEFT TRANSPOSITION BRACKET\n\t{0x2E0A, 0x2E0A, prQU, gcPf},     //         RIGHT TRANSPOSITION BRACKET\n\t{0x2E0B, 0x2E0B, prQU, gcPo},     //         RAISED SQUARE\n\t{0x2E0C, 0x2E0C, prQU, gcPi},     //         LEFT RAISED OMISSION BRACKET\n\t{0x2E0D, 0x2E0D, prQU, gcPf},     //         RIGHT RAISED OMISSION BRACKET\n\t{0x2E0E, 0x2E15, prBA, gcPo},     //     [8] EDITORIAL CORONIS..UPWARDS ANCORA\n\t{0x2E16, 0x2E16, prAL, gcPo},     //         DOTTED RIGHT-POINTING ANGLE\n\t{0x2E17, 0x2E17, prBA, gcPd},     //         DOUBLE OBLIQUE HYPHEN\n\t{0x2E18, 0x2E18, prOP, gcPo},     //         INVERTED INTERROBANG\n\t{0x2E19, 0x2E19, prBA, gcPo},     //         PALM BRANCH\n\t{0x2E1A, 0x2E1A, prAL, gcPd},     //         HYPHEN WITH DIAERESIS\n\t{0x2E1B, 0x2E1B, prAL, gcPo},     //         TILDE WITH RING ABOVE\n\t{0x2E1C, 0x2E1C, prQU, gcPi},     //         LEFT LOW PARAPHRASE BRACKET\n\t{0x2E1D, 0x2E1D, prQU, gcPf},     //         RIGHT LOW PARAPHRASE BRACKET\n\t{0x2E1E, 0x2E1F, prAL, gcPo},     //     [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW\n\t{0x2E20, 0x2E20, prQU, gcPi},     //         LEFT VERTICAL BAR WITH QUILL\n\t{0x2E21, 0x2E21, prQU, gcPf},     //         RIGHT VERTICAL BAR WITH QUILL\n\t{0x2E22, 0x2E22, prOP, gcPs},     //         TOP LEFT HALF BRACKET\n\t{0x2E23, 0x2E23, prCL, gcPe},     //         TOP RIGHT HALF BRACKET\n\t{0x2E24, 0x2E24, prOP, gcPs},     //         BOTTOM LEFT HALF BRACKET\n\t{0x2E25, 0x2E25, prCL, gcPe},     //         BOTTOM RIGHT HALF BRACKET\n\t{0x2E26, 0x2E26, prOP, gcPs},     //         LEFT SIDEWAYS U BRACKET\n\t{0x2E27, 0x2E27, prCL, gcPe},     //         RIGHT SIDEWAYS U BRACKET\n\t{0x2E28, 0x2E28, prOP, gcPs},     //         LEFT DOUBLE PARENTHESIS\n\t{0x2E29, 0x2E29, prCL, gcPe},     //         RIGHT DOUBLE PARENTHESIS\n\t{0x2E2A, 0x2E2D, prBA, gcPo},     //     [4] TWO DOTS OVER ONE DOT PUNCTUATION..FIVE DOT MARK\n\t{0x2E2E, 0x2E2E, prEX, gcPo},     //         REVERSED QUESTION MARK\n\t{0x2E2F, 0x2E2F, prAL, gcLm},     //         VERTICAL TILDE\n\t{0x2E30, 0x2E31, prBA, gcPo},     //     [2] RING POINT..WORD SEPARATOR MIDDLE DOT\n\t{0x2E32, 0x2E32, prAL, gcPo},     //         TURNED COMMA\n\t{0x2E33, 0x2E34, prBA, gcPo},     //     [2] RAISED DOT..RAISED COMMA\n\t{0x2E35, 0x2E39, prAL, gcPo},     //     [5] TURNED SEMICOLON..TOP HALF SECTION SIGN\n\t{0x2E3A, 0x2E3B, prB2, gcPd},     //     [2] TWO-EM DASH..THREE-EM DASH\n\t{0x2E3C, 0x2E3E, prBA, gcPo},     //     [3] STENOGRAPHIC FULL STOP..WIGGLY VERTICAL LINE\n\t{0x2E3F, 0x2E3F, prAL, gcPo},     //         CAPITULUM\n\t{0x2E40, 0x2E40, prBA, gcPd},     //         DOUBLE HYPHEN\n\t{0x2E41, 0x2E41, prBA, gcPo},     //         REVERSED COMMA\n\t{0x2E42, 0x2E42, prOP, gcPs},     //         DOUBLE LOW-REVERSED-9 QUOTATION MARK\n\t{0x2E43, 0x2E4A, prBA, gcPo},     //     [8] DASH WITH LEFT UPTURN..DOTTED SOLIDUS\n\t{0x2E4B, 0x2E4B, prAL, gcPo},     //         TRIPLE DAGGER\n\t{0x2E4C, 0x2E4C, prBA, gcPo},     //         MEDIEVAL COMMA\n\t{0x2E4D, 0x2E4D, prAL, gcPo},     //         PARAGRAPHUS MARK\n\t{0x2E4E, 0x2E4F, prBA, gcPo},     //     [2] PUNCTUS ELEVATUS MARK..CORNISH VERSE DIVIDER\n\t{0x2E50, 0x2E51, prAL, gcSo},     //     [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR\n\t{0x2E52, 0x2E52, prAL, gcPo},     //         TIRONIAN SIGN CAPITAL ET\n\t{0x2E53, 0x2E54, prEX, gcPo},     //     [2] MEDIEVAL EXCLAMATION MARK..MEDIEVAL QUESTION MARK\n\t{0x2E55, 0x2E55, prOP, gcPs},     //         LEFT SQUARE BRACKET WITH STROKE\n\t{0x2E56, 0x2E56, prCL, gcPe},     //         RIGHT SQUARE BRACKET WITH STROKE\n\t{0x2E57, 0x2E57, prOP, gcPs},     //         LEFT SQUARE BRACKET WITH DOUBLE STROKE\n\t{0x2E58, 0x2E58, prCL, gcPe},     //         RIGHT SQUARE BRACKET WITH DOUBLE STROKE\n\t{0x2E59, 0x2E59, prOP, gcPs},     //         TOP HALF LEFT PARENTHESIS\n\t{0x2E5A, 0x2E5A, prCL, gcPe},     //         TOP HALF RIGHT PARENTHESIS\n\t{0x2E5B, 0x2E5B, prOP, gcPs},     //         BOTTOM HALF LEFT PARENTHESIS\n\t{0x2E5C, 0x2E5C, prCL, gcPe},     //         BOTTOM HALF RIGHT PARENTHESIS\n\t{0x2E5D, 0x2E5D, prBA, gcPd},     //         OBLIQUE HYPHEN\n\t{0x2E80, 0x2E99, prID, gcSo},     //    [26] CJK RADICAL REPEAT..CJK RADICAL RAP\n\t{0x2E9B, 0x2EF3, prID, gcSo},     //    [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE\n\t{0x2F00, 0x2FD5, prID, gcSo},     //   [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE\n\t{0x2FF0, 0x2FFB, prID, gcSo},     //    [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID\n\t{0x3000, 0x3000, prBA, gcZs},     //         IDEOGRAPHIC SPACE\n\t{0x3001, 0x3002, prCL, gcPo},     //     [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP\n\t{0x3003, 0x3003, prID, gcPo},     //         DITTO MARK\n\t{0x3004, 0x3004, prID, gcSo},     //         JAPANESE INDUSTRIAL STANDARD SYMBOL\n\t{0x3005, 0x3005, prNS, gcLm},     //         IDEOGRAPHIC ITERATION MARK\n\t{0x3006, 0x3006, prID, gcLo},     //         IDEOGRAPHIC CLOSING MARK\n\t{0x3007, 0x3007, prID, gcNl},     //         IDEOGRAPHIC NUMBER ZERO\n\t{0x3008, 0x3008, prOP, gcPs},     //         LEFT ANGLE BRACKET\n\t{0x3009, 0x3009, prCL, gcPe},     //         RIGHT ANGLE BRACKET\n\t{0x300A, 0x300A, prOP, gcPs},     //         LEFT DOUBLE ANGLE BRACKET\n\t{0x300B, 0x300B, prCL, gcPe},     //         RIGHT DOUBLE ANGLE BRACKET\n\t{0x300C, 0x300C, prOP, gcPs},     //         LEFT CORNER BRACKET\n\t{0x300D, 0x300D, prCL, gcPe},     //         RIGHT CORNER BRACKET\n\t{0x300E, 0x300E, prOP, gcPs},     //         LEFT WHITE CORNER BRACKET\n\t{0x300F, 0x300F, prCL, gcPe},     //         RIGHT WHITE CORNER BRACKET\n\t{0x3010, 0x3010, prOP, gcPs},     //         LEFT BLACK LENTICULAR BRACKET\n\t{0x3011, 0x3011, prCL, gcPe},     //         RIGHT BLACK LENTICULAR BRACKET\n\t{0x3012, 0x3013, prID, gcSo},     //     [2] POSTAL MARK..GETA MARK\n\t{0x3014, 0x3014, prOP, gcPs},     //         LEFT TORTOISE SHELL BRACKET\n\t{0x3015, 0x3015, prCL, gcPe},     //         RIGHT TORTOISE SHELL BRACKET\n\t{0x3016, 0x3016, prOP, gcPs},     //         LEFT WHITE LENTICULAR BRACKET\n\t{0x3017, 0x3017, prCL, gcPe},     //         RIGHT WHITE LENTICULAR BRACKET\n\t{0x3018, 0x3018, prOP, gcPs},     //         LEFT WHITE TORTOISE SHELL BRACKET\n\t{0x3019, 0x3019, prCL, gcPe},     //         RIGHT WHITE TORTOISE SHELL BRACKET\n\t{0x301A, 0x301A, prOP, gcPs},     //         LEFT WHITE SQUARE BRACKET\n\t{0x301B, 0x301B, prCL, gcPe},     //         RIGHT WHITE SQUARE BRACKET\n\t{0x301C, 0x301C, prNS, gcPd},     //         WAVE DASH\n\t{0x301D, 0x301D, prOP, gcPs},     //         REVERSED DOUBLE PRIME QUOTATION MARK\n\t{0x301E, 0x301F, prCL, gcPe},     //     [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK\n\t{0x3020, 0x3020, prID, gcSo},     //         POSTAL MARK FACE\n\t{0x3021, 0x3029, prID, gcNl},     //     [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE\n\t{0x302A, 0x302D, prCM, gcMn},     //     [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK\n\t{0x302E, 0x302F, prCM, gcMc},     //     [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK\n\t{0x3030, 0x3030, prID, gcPd},     //         WAVY DASH\n\t{0x3031, 0x3034, prID, gcLm},     //     [4] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF\n\t{0x3035, 0x3035, prCM, gcLm},     //         VERTICAL KANA REPEAT MARK LOWER HALF\n\t{0x3036, 0x3037, prID, gcSo},     //     [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL\n\t{0x3038, 0x303A, prID, gcNl},     //     [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY\n\t{0x303B, 0x303B, prNS, gcLm},     //         VERTICAL IDEOGRAPHIC ITERATION MARK\n\t{0x303C, 0x303C, prNS, gcLo},     //         MASU MARK\n\t{0x303D, 0x303D, prID, gcPo},     //         PART ALTERNATION MARK\n\t{0x303E, 0x303F, prID, gcSo},     //     [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE\n\t{0x3041, 0x3041, prCJ, gcLo},     //         HIRAGANA LETTER SMALL A\n\t{0x3042, 0x3042, prID, gcLo},     //         HIRAGANA LETTER A\n\t{0x3043, 0x3043, prCJ, gcLo},     //         HIRAGANA LETTER SMALL I\n\t{0x3044, 0x3044, prID, gcLo},     //         HIRAGANA LETTER I\n\t{0x3045, 0x3045, prCJ, gcLo},     //         HIRAGANA LETTER SMALL U\n\t{0x3046, 0x3046, prID, gcLo},     //         HIRAGANA LETTER U\n\t{0x3047, 0x3047, prCJ, gcLo},     //         HIRAGANA LETTER SMALL E\n\t{0x3048, 0x3048, prID, gcLo},     //         HIRAGANA LETTER E\n\t{0x3049, 0x3049, prCJ, gcLo},     //         HIRAGANA LETTER SMALL O\n\t{0x304A, 0x3062, prID, gcLo},     //    [25] HIRAGANA LETTER O..HIRAGANA LETTER DI\n\t{0x3063, 0x3063, prCJ, gcLo},     //         HIRAGANA LETTER SMALL TU\n\t{0x3064, 0x3082, prID, gcLo},     //    [31] HIRAGANA LETTER TU..HIRAGANA LETTER MO\n\t{0x3083, 0x3083, prCJ, gcLo},     //         HIRAGANA LETTER SMALL YA\n\t{0x3084, 0x3084, prID, gcLo},     //         HIRAGANA LETTER YA\n\t{0x3085, 0x3085, prCJ, gcLo},     //         HIRAGANA LETTER SMALL YU\n\t{0x3086, 0x3086, prID, gcLo},     //         HIRAGANA LETTER YU\n\t{0x3087, 0x3087, prCJ, gcLo},     //         HIRAGANA LETTER SMALL YO\n\t{0x3088, 0x308D, prID, gcLo},     //     [6] HIRAGANA LETTER YO..HIRAGANA LETTER RO\n\t{0x308E, 0x308E, prCJ, gcLo},     //         HIRAGANA LETTER SMALL WA\n\t{0x308F, 0x3094, prID, gcLo},     //     [6] HIRAGANA LETTER WA..HIRAGANA LETTER VU\n\t{0x3095, 0x3096, prCJ, gcLo},     //     [2] HIRAGANA LETTER SMALL KA..HIRAGANA LETTER SMALL KE\n\t{0x3099, 0x309A, prCM, gcMn},     //     [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK\n\t{0x309B, 0x309C, prNS, gcSk},     //     [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK\n\t{0x309D, 0x309E, prNS, gcLm},     //     [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK\n\t{0x309F, 0x309F, prID, gcLo},     //         HIRAGANA DIGRAPH YORI\n\t{0x30A0, 0x30A0, prNS, gcPd},     //         KATAKANA-HIRAGANA DOUBLE HYPHEN\n\t{0x30A1, 0x30A1, prCJ, gcLo},     //         KATAKANA LETTER SMALL A\n\t{0x30A2, 0x30A2, prID, gcLo},     //         KATAKANA LETTER A\n\t{0x30A3, 0x30A3, prCJ, gcLo},     //         KATAKANA LETTER SMALL I\n\t{0x30A4, 0x30A4, prID, gcLo},     //         KATAKANA LETTER I\n\t{0x30A5, 0x30A5, prCJ, gcLo},     //         KATAKANA LETTER SMALL U\n\t{0x30A6, 0x30A6, prID, gcLo},     //         KATAKANA LETTER U\n\t{0x30A7, 0x30A7, prCJ, gcLo},     //         KATAKANA LETTER SMALL E\n\t{0x30A8, 0x30A8, prID, gcLo},     //         KATAKANA LETTER E\n\t{0x30A9, 0x30A9, prCJ, gcLo},     //         KATAKANA LETTER SMALL O\n\t{0x30AA, 0x30C2, prID, gcLo},     //    [25] KATAKANA LETTER O..KATAKANA LETTER DI\n\t{0x30C3, 0x30C3, prCJ, gcLo},     //         KATAKANA LETTER SMALL TU\n\t{0x30C4, 0x30E2, prID, gcLo},     //    [31] KATAKANA LETTER TU..KATAKANA LETTER MO\n\t{0x30E3, 0x30E3, prCJ, gcLo},     //         KATAKANA LETTER SMALL YA\n\t{0x30E4, 0x30E4, prID, gcLo},     //         KATAKANA LETTER YA\n\t{0x30E5, 0x30E5, prCJ, gcLo},     //         KATAKANA LETTER SMALL YU\n\t{0x30E6, 0x30E6, prID, gcLo},     //         KATAKANA LETTER YU\n\t{0x30E7, 0x30E7, prCJ, gcLo},     //         KATAKANA LETTER SMALL YO\n\t{0x30E8, 0x30ED, prID, gcLo},     //     [6] KATAKANA LETTER YO..KATAKANA LETTER RO\n\t{0x30EE, 0x30EE, prCJ, gcLo},     //         KATAKANA LETTER SMALL WA\n\t{0x30EF, 0x30F4, prID, gcLo},     //     [6] KATAKANA LETTER WA..KATAKANA LETTER VU\n\t{0x30F5, 0x30F6, prCJ, gcLo},     //     [2] KATAKANA LETTER SMALL KA..KATAKANA LETTER SMALL KE\n\t{0x30F7, 0x30FA, prID, gcLo},     //     [4] KATAKANA LETTER VA..KATAKANA LETTER VO\n\t{0x30FB, 0x30FB, prNS, gcPo},     //         KATAKANA MIDDLE DOT\n\t{0x30FC, 0x30FC, prCJ, gcLm},     //         KATAKANA-HIRAGANA PROLONGED SOUND MARK\n\t{0x30FD, 0x30FE, prNS, gcLm},     //     [2] KATAKANA ITERATION MARK..KATAKANA VOICED ITERATION MARK\n\t{0x30FF, 0x30FF, prID, gcLo},     //         KATAKANA DIGRAPH KOTO\n\t{0x3105, 0x312F, prID, gcLo},     //    [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN\n\t{0x3131, 0x318E, prID, gcLo},     //    [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE\n\t{0x3190, 0x3191, prID, gcSo},     //     [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK\n\t{0x3192, 0x3195, prID, gcNo},     //     [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK\n\t{0x3196, 0x319F, prID, gcSo},     //    [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK\n\t{0x31A0, 0x31BF, prID, gcLo},     //    [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH\n\t{0x31C0, 0x31E3, prID, gcSo},     //    [36] CJK STROKE T..CJK STROKE Q\n\t{0x31F0, 0x31FF, prCJ, gcLo},     //    [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO\n\t{0x3200, 0x321E, prID, gcSo},     //    [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU\n\t{0x3220, 0x3229, prID, gcNo},     //    [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN\n\t{0x322A, 0x3247, prID, gcSo},     //    [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO\n\t{0x3248, 0x324F, prAI, gcNo},     //     [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE\n\t{0x3250, 0x3250, prID, gcSo},     //         PARTNERSHIP SIGN\n\t{0x3251, 0x325F, prID, gcNo},     //    [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE\n\t{0x3260, 0x327F, prID, gcSo},     //    [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL\n\t{0x3280, 0x3289, prID, gcNo},     //    [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN\n\t{0x328A, 0x32B0, prID, gcSo},     //    [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT\n\t{0x32B1, 0x32BF, prID, gcNo},     //    [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY\n\t{0x32C0, 0x32FF, prID, gcSo},     //    [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA\n\t{0x3300, 0x33FF, prID, gcSo},     //   [256] SQUARE APAATO..SQUARE GAL\n\t{0x3400, 0x4DBF, prID, gcLo},     //  [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF\n\t{0x4DC0, 0x4DFF, prAL, gcSo},     //    [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION\n\t{0x4E00, 0x9FFF, prID, gcLo},     // [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF\n\t{0xA000, 0xA014, prID, gcLo},     //    [21] YI SYLLABLE IT..YI SYLLABLE E\n\t{0xA015, 0xA015, prNS, gcLm},     //         YI SYLLABLE WU\n\t{0xA016, 0xA48C, prID, gcLo},     //  [1143] YI SYLLABLE BIT..YI SYLLABLE YYR\n\t{0xA490, 0xA4C6, prID, gcSo},     //    [55] YI RADICAL QOT..YI RADICAL KE\n\t{0xA4D0, 0xA4F7, prAL, gcLo},     //    [40] LISU LETTER BA..LISU LETTER OE\n\t{0xA4F8, 0xA4FD, prAL, gcLm},     //     [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU\n\t{0xA4FE, 0xA4FF, prBA, gcPo},     //     [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP\n\t{0xA500, 0xA60B, prAL, gcLo},     //   [268] VAI SYLLABLE EE..VAI SYLLABLE NG\n\t{0xA60C, 0xA60C, prAL, gcLm},     //         VAI SYLLABLE LENGTHENER\n\t{0xA60D, 0xA60D, prBA, gcPo},     //         VAI COMMA\n\t{0xA60E, 0xA60E, prEX, gcPo},     //         VAI FULL STOP\n\t{0xA60F, 0xA60F, prBA, gcPo},     //         VAI QUESTION MARK\n\t{0xA610, 0xA61F, prAL, gcLo},     //    [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG\n\t{0xA620, 0xA629, prNU, gcNd},     //    [10] VAI DIGIT ZERO..VAI DIGIT NINE\n\t{0xA62A, 0xA62B, prAL, gcLo},     //     [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO\n\t{0xA640, 0xA66D, prAL, gcLC},     //    [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O\n\t{0xA66E, 0xA66E, prAL, gcLo},     //         CYRILLIC LETTER MULTIOCULAR O\n\t{0xA66F, 0xA66F, prCM, gcMn},     //         COMBINING CYRILLIC VZMET\n\t{0xA670, 0xA672, prCM, gcMe},     //     [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN\n\t{0xA673, 0xA673, prAL, gcPo},     //         SLAVONIC ASTERISK\n\t{0xA674, 0xA67D, prCM, gcMn},     //    [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK\n\t{0xA67E, 0xA67E, prAL, gcPo},     //         CYRILLIC KAVYKA\n\t{0xA67F, 0xA67F, prAL, gcLm},     //         CYRILLIC PAYEROK\n\t{0xA680, 0xA69B, prAL, gcLC},     //    [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O\n\t{0xA69C, 0xA69D, prAL, gcLm},     //     [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN\n\t{0xA69E, 0xA69F, prCM, gcMn},     //     [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E\n\t{0xA6A0, 0xA6E5, prAL, gcLo},     //    [70] BAMUM LETTER A..BAMUM LETTER KI\n\t{0xA6E6, 0xA6EF, prAL, gcNl},     //    [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM\n\t{0xA6F0, 0xA6F1, prCM, gcMn},     //     [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS\n\t{0xA6F2, 0xA6F2, prAL, gcPo},     //         BAMUM NJAEMLI\n\t{0xA6F3, 0xA6F7, prBA, gcPo},     //     [5] BAMUM FULL STOP..BAMUM QUESTION MARK\n\t{0xA700, 0xA716, prAL, gcSk},     //    [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR\n\t{0xA717, 0xA71F, prAL, gcLm},     //     [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK\n\t{0xA720, 0xA721, prAL, gcSk},     //     [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE\n\t{0xA722, 0xA76F, prAL, gcLC},     //    [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON\n\t{0xA770, 0xA770, prAL, gcLm},     //         MODIFIER LETTER US\n\t{0xA771, 0xA787, prAL, gcLC},     //    [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T\n\t{0xA788, 0xA788, prAL, gcLm},     //         MODIFIER LETTER LOW CIRCUMFLEX ACCENT\n\t{0xA789, 0xA78A, prAL, gcSk},     //     [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN\n\t{0xA78B, 0xA78E, prAL, gcLC},     //     [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT\n\t{0xA78F, 0xA78F, prAL, gcLo},     //         LATIN LETTER SINOLOGICAL DOT\n\t{0xA790, 0xA7CA, prAL, gcLC},     //    [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY\n\t{0xA7D0, 0xA7D1, prAL, gcLC},     //     [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G\n\t{0xA7D3, 0xA7D3, prAL, gcLl},     //         LATIN SMALL LETTER DOUBLE THORN\n\t{0xA7D5, 0xA7D9, prAL, gcLC},     //     [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S\n\t{0xA7F2, 0xA7F4, prAL, gcLm},     //     [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q\n\t{0xA7F5, 0xA7F6, prAL, gcLC},     //     [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H\n\t{0xA7F7, 0xA7F7, prAL, gcLo},     //         LATIN EPIGRAPHIC LETTER SIDEWAYS I\n\t{0xA7F8, 0xA7F9, prAL, gcLm},     //     [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE\n\t{0xA7FA, 0xA7FA, prAL, gcLl},     //         LATIN LETTER SMALL CAPITAL TURNED M\n\t{0xA7FB, 0xA7FF, prAL, gcLo},     //     [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M\n\t{0xA800, 0xA801, prAL, gcLo},     //     [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I\n\t{0xA802, 0xA802, prCM, gcMn},     //         SYLOTI NAGRI SIGN DVISVARA\n\t{0xA803, 0xA805, prAL, gcLo},     //     [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O\n\t{0xA806, 0xA806, prCM, gcMn},     //         SYLOTI NAGRI SIGN HASANTA\n\t{0xA807, 0xA80A, prAL, gcLo},     //     [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO\n\t{0xA80B, 0xA80B, prCM, gcMn},     //         SYLOTI NAGRI SIGN ANUSVARA\n\t{0xA80C, 0xA822, prAL, gcLo},     //    [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO\n\t{0xA823, 0xA824, prCM, gcMc},     //     [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I\n\t{0xA825, 0xA826, prCM, gcMn},     //     [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E\n\t{0xA827, 0xA827, prCM, gcMc},     //         SYLOTI NAGRI VOWEL SIGN OO\n\t{0xA828, 0xA82B, prAL, gcSo},     //     [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4\n\t{0xA82C, 0xA82C, prCM, gcMn},     //         SYLOTI NAGRI SIGN ALTERNATE HASANTA\n\t{0xA830, 0xA835, prAL, gcNo},     //     [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS\n\t{0xA836, 0xA837, prAL, gcSo},     //     [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK\n\t{0xA838, 0xA838, prPO, gcSc},     //         NORTH INDIC RUPEE MARK\n\t{0xA839, 0xA839, prAL, gcSo},     //         NORTH INDIC QUANTITY MARK\n\t{0xA840, 0xA873, prAL, gcLo},     //    [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU\n\t{0xA874, 0xA875, prBB, gcPo},     //     [2] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA DOUBLE HEAD MARK\n\t{0xA876, 0xA877, prEX, gcPo},     //     [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD\n\t{0xA880, 0xA881, prCM, gcMc},     //     [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA\n\t{0xA882, 0xA8B3, prAL, gcLo},     //    [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA\n\t{0xA8B4, 0xA8C3, prCM, gcMc},     //    [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU\n\t{0xA8C4, 0xA8C5, prCM, gcMn},     //     [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU\n\t{0xA8CE, 0xA8CF, prBA, gcPo},     //     [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA\n\t{0xA8D0, 0xA8D9, prNU, gcNd},     //    [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE\n\t{0xA8E0, 0xA8F1, prCM, gcMn},     //    [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA\n\t{0xA8F2, 0xA8F7, prAL, gcLo},     //     [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA\n\t{0xA8F8, 0xA8FA, prAL, gcPo},     //     [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET\n\t{0xA8FB, 0xA8FB, prAL, gcLo},     //         DEVANAGARI HEADSTROKE\n\t{0xA8FC, 0xA8FC, prBB, gcPo},     //         DEVANAGARI SIGN SIDDHAM\n\t{0xA8FD, 0xA8FE, prAL, gcLo},     //     [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY\n\t{0xA8FF, 0xA8FF, prCM, gcMn},     //         DEVANAGARI VOWEL SIGN AY\n\t{0xA900, 0xA909, prNU, gcNd},     //    [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE\n\t{0xA90A, 0xA925, prAL, gcLo},     //    [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO\n\t{0xA926, 0xA92D, prCM, gcMn},     //     [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU\n\t{0xA92E, 0xA92F, prBA, gcPo},     //     [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA\n\t{0xA930, 0xA946, prAL, gcLo},     //    [23] REJANG LETTER KA..REJANG LETTER A\n\t{0xA947, 0xA951, prCM, gcMn},     //    [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R\n\t{0xA952, 0xA953, prCM, gcMc},     //     [2] REJANG CONSONANT SIGN H..REJANG VIRAMA\n\t{0xA95F, 0xA95F, prAL, gcPo},     //         REJANG SECTION MARK\n\t{0xA960, 0xA97C, prJL, gcLo},     //    [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH\n\t{0xA980, 0xA982, prCM, gcMn},     //     [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR\n\t{0xA983, 0xA983, prCM, gcMc},     //         JAVANESE SIGN WIGNYAN\n\t{0xA984, 0xA9B2, prAL, gcLo},     //    [47] JAVANESE LETTER A..JAVANESE LETTER HA\n\t{0xA9B3, 0xA9B3, prCM, gcMn},     //         JAVANESE SIGN CECAK TELU\n\t{0xA9B4, 0xA9B5, prCM, gcMc},     //     [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG\n\t{0xA9B6, 0xA9B9, prCM, gcMn},     //     [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT\n\t{0xA9BA, 0xA9BB, prCM, gcMc},     //     [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE\n\t{0xA9BC, 0xA9BD, prCM, gcMn},     //     [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET\n\t{0xA9BE, 0xA9C0, prCM, gcMc},     //     [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON\n\t{0xA9C1, 0xA9C6, prAL, gcPo},     //     [6] JAVANESE LEFT RERENGGAN..JAVANESE PADA WINDU\n\t{0xA9C7, 0xA9C9, prBA, gcPo},     //     [3] JAVANESE PADA PANGKAT..JAVANESE PADA LUNGSI\n\t{0xA9CA, 0xA9CD, prAL, gcPo},     //     [4] JAVANESE PADA ADEG..JAVANESE TURNED PADA PISELEH\n\t{0xA9CF, 0xA9CF, prAL, gcLm},     //         JAVANESE PANGRANGKEP\n\t{0xA9D0, 0xA9D9, prNU, gcNd},     //    [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE\n\t{0xA9DE, 0xA9DF, prAL, gcPo},     //     [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN\n\t{0xA9E0, 0xA9E4, prSA, gcLo},     //     [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA\n\t{0xA9E5, 0xA9E5, prSA, gcMn},     //         MYANMAR SIGN SHAN SAW\n\t{0xA9E6, 0xA9E6, prSA, gcLm},     //         MYANMAR MODIFIER LETTER SHAN REDUPLICATION\n\t{0xA9E7, 0xA9EF, prSA, gcLo},     //     [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA\n\t{0xA9F0, 0xA9F9, prNU, gcNd},     //    [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE\n\t{0xA9FA, 0xA9FE, prSA, gcLo},     //     [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA\n\t{0xAA00, 0xAA28, prAL, gcLo},     //    [41] CHAM LETTER A..CHAM LETTER HA\n\t{0xAA29, 0xAA2E, prCM, gcMn},     //     [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE\n\t{0xAA2F, 0xAA30, prCM, gcMc},     //     [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI\n\t{0xAA31, 0xAA32, prCM, gcMn},     //     [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE\n\t{0xAA33, 0xAA34, prCM, gcMc},     //     [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA\n\t{0xAA35, 0xAA36, prCM, gcMn},     //     [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA\n\t{0xAA40, 0xAA42, prAL, gcLo},     //     [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG\n\t{0xAA43, 0xAA43, prCM, gcMn},     //         CHAM CONSONANT SIGN FINAL NG\n\t{0xAA44, 0xAA4B, prAL, gcLo},     //     [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS\n\t{0xAA4C, 0xAA4C, prCM, gcMn},     //         CHAM CONSONANT SIGN FINAL M\n\t{0xAA4D, 0xAA4D, prCM, gcMc},     //         CHAM CONSONANT SIGN FINAL H\n\t{0xAA50, 0xAA59, prNU, gcNd},     //    [10] CHAM DIGIT ZERO..CHAM DIGIT NINE\n\t{0xAA5C, 0xAA5C, prAL, gcPo},     //         CHAM PUNCTUATION SPIRAL\n\t{0xAA5D, 0xAA5F, prBA, gcPo},     //     [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA\n\t{0xAA60, 0xAA6F, prSA, gcLo},     //    [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA\n\t{0xAA70, 0xAA70, prSA, gcLm},     //         MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION\n\t{0xAA71, 0xAA76, prSA, gcLo},     //     [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM\n\t{0xAA77, 0xAA79, prSA, gcSo},     //     [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO\n\t{0xAA7A, 0xAA7A, prSA, gcLo},     //         MYANMAR LETTER AITON RA\n\t{0xAA7B, 0xAA7B, prSA, gcMc},     //         MYANMAR SIGN PAO KAREN TONE\n\t{0xAA7C, 0xAA7C, prSA, gcMn},     //         MYANMAR SIGN TAI LAING TONE-2\n\t{0xAA7D, 0xAA7D, prSA, gcMc},     //         MYANMAR SIGN TAI LAING TONE-5\n\t{0xAA7E, 0xAA7F, prSA, gcLo},     //     [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA\n\t{0xAA80, 0xAAAF, prSA, gcLo},     //    [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O\n\t{0xAAB0, 0xAAB0, prSA, gcMn},     //         TAI VIET MAI KANG\n\t{0xAAB1, 0xAAB1, prSA, gcLo},     //         TAI VIET VOWEL AA\n\t{0xAAB2, 0xAAB4, prSA, gcMn},     //     [3] TAI VIET VOWEL I..TAI VIET VOWEL U\n\t{0xAAB5, 0xAAB6, prSA, gcLo},     //     [2] TAI VIET VOWEL E..TAI VIET VOWEL O\n\t{0xAAB7, 0xAAB8, prSA, gcMn},     //     [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA\n\t{0xAAB9, 0xAABD, prSA, gcLo},     //     [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN\n\t{0xAABE, 0xAABF, prSA, gcMn},     //     [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK\n\t{0xAAC0, 0xAAC0, prSA, gcLo},     //         TAI VIET TONE MAI NUENG\n\t{0xAAC1, 0xAAC1, prSA, gcMn},     //         TAI VIET TONE MAI THO\n\t{0xAAC2, 0xAAC2, prSA, gcLo},     //         TAI VIET TONE MAI SONG\n\t{0xAADB, 0xAADC, prSA, gcLo},     //     [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG\n\t{0xAADD, 0xAADD, prSA, gcLm},     //         TAI VIET SYMBOL SAM\n\t{0xAADE, 0xAADF, prSA, gcPo},     //     [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI\n\t{0xAAE0, 0xAAEA, prAL, gcLo},     //    [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA\n\t{0xAAEB, 0xAAEB, prCM, gcMc},     //         MEETEI MAYEK VOWEL SIGN II\n\t{0xAAEC, 0xAAED, prCM, gcMn},     //     [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI\n\t{0xAAEE, 0xAAEF, prCM, gcMc},     //     [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU\n\t{0xAAF0, 0xAAF1, prBA, gcPo},     //     [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM\n\t{0xAAF2, 0xAAF2, prAL, gcLo},     //         MEETEI MAYEK ANJI\n\t{0xAAF3, 0xAAF4, prAL, gcLm},     //     [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK\n\t{0xAAF5, 0xAAF5, prCM, gcMc},     //         MEETEI MAYEK VOWEL SIGN VISARGA\n\t{0xAAF6, 0xAAF6, prCM, gcMn},     //         MEETEI MAYEK VIRAMA\n\t{0xAB01, 0xAB06, prAL, gcLo},     //     [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO\n\t{0xAB09, 0xAB0E, prAL, gcLo},     //     [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO\n\t{0xAB11, 0xAB16, prAL, gcLo},     //     [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO\n\t{0xAB20, 0xAB26, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO\n\t{0xAB28, 0xAB2E, prAL, gcLo},     //     [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO\n\t{0xAB30, 0xAB5A, prAL, gcLl},     //    [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG\n\t{0xAB5B, 0xAB5B, prAL, gcSk},     //         MODIFIER BREVE WITH INVERTED BREVE\n\t{0xAB5C, 0xAB5F, prAL, gcLm},     //     [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK\n\t{0xAB60, 0xAB68, prAL, gcLl},     //     [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE\n\t{0xAB69, 0xAB69, prAL, gcLm},     //         MODIFIER LETTER SMALL TURNED W\n\t{0xAB6A, 0xAB6B, prAL, gcSk},     //     [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK\n\t{0xAB70, 0xABBF, prAL, gcLl},     //    [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA\n\t{0xABC0, 0xABE2, prAL, gcLo},     //    [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM\n\t{0xABE3, 0xABE4, prCM, gcMc},     //     [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP\n\t{0xABE5, 0xABE5, prCM, gcMn},     //         MEETEI MAYEK VOWEL SIGN ANAP\n\t{0xABE6, 0xABE7, prCM, gcMc},     //     [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP\n\t{0xABE8, 0xABE8, prCM, gcMn},     //         MEETEI MAYEK VOWEL SIGN UNAP\n\t{0xABE9, 0xABEA, prCM, gcMc},     //     [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG\n\t{0xABEB, 0xABEB, prBA, gcPo},     //         MEETEI MAYEK CHEIKHEI\n\t{0xABEC, 0xABEC, prCM, gcMc},     //         MEETEI MAYEK LUM IYEK\n\t{0xABED, 0xABED, prCM, gcMn},     //         MEETEI MAYEK APUN IYEK\n\t{0xABF0, 0xABF9, prNU, gcNd},     //    [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE\n\t{0xAC00, 0xAC00, prH2, gcLo},     //         HANGUL SYLLABLE GA\n\t{0xAC01, 0xAC1B, prH3, gcLo},     //    [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH\n\t{0xAC1C, 0xAC1C, prH2, gcLo},     //         HANGUL SYLLABLE GAE\n\t{0xAC1D, 0xAC37, prH3, gcLo},     //    [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH\n\t{0xAC38, 0xAC38, prH2, gcLo},     //         HANGUL SYLLABLE GYA\n\t{0xAC39, 0xAC53, prH3, gcLo},     //    [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH\n\t{0xAC54, 0xAC54, prH2, gcLo},     //         HANGUL SYLLABLE GYAE\n\t{0xAC55, 0xAC6F, prH3, gcLo},     //    [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH\n\t{0xAC70, 0xAC70, prH2, gcLo},     //         HANGUL SYLLABLE GEO\n\t{0xAC71, 0xAC8B, prH3, gcLo},     //    [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH\n\t{0xAC8C, 0xAC8C, prH2, gcLo},     //         HANGUL SYLLABLE GE\n\t{0xAC8D, 0xACA7, prH3, gcLo},     //    [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH\n\t{0xACA8, 0xACA8, prH2, gcLo},     //         HANGUL SYLLABLE GYEO\n\t{0xACA9, 0xACC3, prH3, gcLo},     //    [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH\n\t{0xACC4, 0xACC4, prH2, gcLo},     //         HANGUL SYLLABLE GYE\n\t{0xACC5, 0xACDF, prH3, gcLo},     //    [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH\n\t{0xACE0, 0xACE0, prH2, gcLo},     //         HANGUL SYLLABLE GO\n\t{0xACE1, 0xACFB, prH3, gcLo},     //    [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH\n\t{0xACFC, 0xACFC, prH2, gcLo},     //         HANGUL SYLLABLE GWA\n\t{0xACFD, 0xAD17, prH3, gcLo},     //    [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH\n\t{0xAD18, 0xAD18, prH2, gcLo},     //         HANGUL SYLLABLE GWAE\n\t{0xAD19, 0xAD33, prH3, gcLo},     //    [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH\n\t{0xAD34, 0xAD34, prH2, gcLo},     //         HANGUL SYLLABLE GOE\n\t{0xAD35, 0xAD4F, prH3, gcLo},     //    [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH\n\t{0xAD50, 0xAD50, prH2, gcLo},     //         HANGUL SYLLABLE GYO\n\t{0xAD51, 0xAD6B, prH3, gcLo},     //    [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH\n\t{0xAD6C, 0xAD6C, prH2, gcLo},     //         HANGUL SYLLABLE GU\n\t{0xAD6D, 0xAD87, prH3, gcLo},     //    [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH\n\t{0xAD88, 0xAD88, prH2, gcLo},     //         HANGUL SYLLABLE GWEO\n\t{0xAD89, 0xADA3, prH3, gcLo},     //    [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH\n\t{0xADA4, 0xADA4, prH2, gcLo},     //         HANGUL SYLLABLE GWE\n\t{0xADA5, 0xADBF, prH3, gcLo},     //    [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH\n\t{0xADC0, 0xADC0, prH2, gcLo},     //         HANGUL SYLLABLE GWI\n\t{0xADC1, 0xADDB, prH3, gcLo},     //    [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH\n\t{0xADDC, 0xADDC, prH2, gcLo},     //         HANGUL SYLLABLE GYU\n\t{0xADDD, 0xADF7, prH3, gcLo},     //    [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH\n\t{0xADF8, 0xADF8, prH2, gcLo},     //         HANGUL SYLLABLE GEU\n\t{0xADF9, 0xAE13, prH3, gcLo},     //    [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH\n\t{0xAE14, 0xAE14, prH2, gcLo},     //         HANGUL SYLLABLE GYI\n\t{0xAE15, 0xAE2F, prH3, gcLo},     //    [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH\n\t{0xAE30, 0xAE30, prH2, gcLo},     //         HANGUL SYLLABLE GI\n\t{0xAE31, 0xAE4B, prH3, gcLo},     //    [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH\n\t{0xAE4C, 0xAE4C, prH2, gcLo},     //         HANGUL SYLLABLE GGA\n\t{0xAE4D, 0xAE67, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH\n\t{0xAE68, 0xAE68, prH2, gcLo},     //         HANGUL SYLLABLE GGAE\n\t{0xAE69, 0xAE83, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH\n\t{0xAE84, 0xAE84, prH2, gcLo},     //         HANGUL SYLLABLE GGYA\n\t{0xAE85, 0xAE9F, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH\n\t{0xAEA0, 0xAEA0, prH2, gcLo},     //         HANGUL SYLLABLE GGYAE\n\t{0xAEA1, 0xAEBB, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH\n\t{0xAEBC, 0xAEBC, prH2, gcLo},     //         HANGUL SYLLABLE GGEO\n\t{0xAEBD, 0xAED7, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH\n\t{0xAED8, 0xAED8, prH2, gcLo},     //         HANGUL SYLLABLE GGE\n\t{0xAED9, 0xAEF3, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH\n\t{0xAEF4, 0xAEF4, prH2, gcLo},     //         HANGUL SYLLABLE GGYEO\n\t{0xAEF5, 0xAF0F, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH\n\t{0xAF10, 0xAF10, prH2, gcLo},     //         HANGUL SYLLABLE GGYE\n\t{0xAF11, 0xAF2B, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH\n\t{0xAF2C, 0xAF2C, prH2, gcLo},     //         HANGUL SYLLABLE GGO\n\t{0xAF2D, 0xAF47, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH\n\t{0xAF48, 0xAF48, prH2, gcLo},     //         HANGUL SYLLABLE GGWA\n\t{0xAF49, 0xAF63, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH\n\t{0xAF64, 0xAF64, prH2, gcLo},     //         HANGUL SYLLABLE GGWAE\n\t{0xAF65, 0xAF7F, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH\n\t{0xAF80, 0xAF80, prH2, gcLo},     //         HANGUL SYLLABLE GGOE\n\t{0xAF81, 0xAF9B, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH\n\t{0xAF9C, 0xAF9C, prH2, gcLo},     //         HANGUL SYLLABLE GGYO\n\t{0xAF9D, 0xAFB7, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH\n\t{0xAFB8, 0xAFB8, prH2, gcLo},     //         HANGUL SYLLABLE GGU\n\t{0xAFB9, 0xAFD3, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH\n\t{0xAFD4, 0xAFD4, prH2, gcLo},     //         HANGUL SYLLABLE GGWEO\n\t{0xAFD5, 0xAFEF, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH\n\t{0xAFF0, 0xAFF0, prH2, gcLo},     //         HANGUL SYLLABLE GGWE\n\t{0xAFF1, 0xB00B, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH\n\t{0xB00C, 0xB00C, prH2, gcLo},     //         HANGUL SYLLABLE GGWI\n\t{0xB00D, 0xB027, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH\n\t{0xB028, 0xB028, prH2, gcLo},     //         HANGUL SYLLABLE GGYU\n\t{0xB029, 0xB043, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH\n\t{0xB044, 0xB044, prH2, gcLo},     //         HANGUL SYLLABLE GGEU\n\t{0xB045, 0xB05F, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH\n\t{0xB060, 0xB060, prH2, gcLo},     //         HANGUL SYLLABLE GGYI\n\t{0xB061, 0xB07B, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH\n\t{0xB07C, 0xB07C, prH2, gcLo},     //         HANGUL SYLLABLE GGI\n\t{0xB07D, 0xB097, prH3, gcLo},     //    [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH\n\t{0xB098, 0xB098, prH2, gcLo},     //         HANGUL SYLLABLE NA\n\t{0xB099, 0xB0B3, prH3, gcLo},     //    [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH\n\t{0xB0B4, 0xB0B4, prH2, gcLo},     //         HANGUL SYLLABLE NAE\n\t{0xB0B5, 0xB0CF, prH3, gcLo},     //    [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH\n\t{0xB0D0, 0xB0D0, prH2, gcLo},     //         HANGUL SYLLABLE NYA\n\t{0xB0D1, 0xB0EB, prH3, gcLo},     //    [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH\n\t{0xB0EC, 0xB0EC, prH2, gcLo},     //         HANGUL SYLLABLE NYAE\n\t{0xB0ED, 0xB107, prH3, gcLo},     //    [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH\n\t{0xB108, 0xB108, prH2, gcLo},     //         HANGUL SYLLABLE NEO\n\t{0xB109, 0xB123, prH3, gcLo},     //    [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH\n\t{0xB124, 0xB124, prH2, gcLo},     //         HANGUL SYLLABLE NE\n\t{0xB125, 0xB13F, prH3, gcLo},     //    [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH\n\t{0xB140, 0xB140, prH2, gcLo},     //         HANGUL SYLLABLE NYEO\n\t{0xB141, 0xB15B, prH3, gcLo},     //    [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH\n\t{0xB15C, 0xB15C, prH2, gcLo},     //         HANGUL SYLLABLE NYE\n\t{0xB15D, 0xB177, prH3, gcLo},     //    [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH\n\t{0xB178, 0xB178, prH2, gcLo},     //         HANGUL SYLLABLE NO\n\t{0xB179, 0xB193, prH3, gcLo},     //    [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH\n\t{0xB194, 0xB194, prH2, gcLo},     //         HANGUL SYLLABLE NWA\n\t{0xB195, 0xB1AF, prH3, gcLo},     //    [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH\n\t{0xB1B0, 0xB1B0, prH2, gcLo},     //         HANGUL SYLLABLE NWAE\n\t{0xB1B1, 0xB1CB, prH3, gcLo},     //    [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH\n\t{0xB1CC, 0xB1CC, prH2, gcLo},     //         HANGUL SYLLABLE NOE\n\t{0xB1CD, 0xB1E7, prH3, gcLo},     //    [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH\n\t{0xB1E8, 0xB1E8, prH2, gcLo},     //         HANGUL SYLLABLE NYO\n\t{0xB1E9, 0xB203, prH3, gcLo},     //    [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH\n\t{0xB204, 0xB204, prH2, gcLo},     //         HANGUL SYLLABLE NU\n\t{0xB205, 0xB21F, prH3, gcLo},     //    [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH\n\t{0xB220, 0xB220, prH2, gcLo},     //         HANGUL SYLLABLE NWEO\n\t{0xB221, 0xB23B, prH3, gcLo},     //    [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH\n\t{0xB23C, 0xB23C, prH2, gcLo},     //         HANGUL SYLLABLE NWE\n\t{0xB23D, 0xB257, prH3, gcLo},     //    [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH\n\t{0xB258, 0xB258, prH2, gcLo},     //         HANGUL SYLLABLE NWI\n\t{0xB259, 0xB273, prH3, gcLo},     //    [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH\n\t{0xB274, 0xB274, prH2, gcLo},     //         HANGUL SYLLABLE NYU\n\t{0xB275, 0xB28F, prH3, gcLo},     //    [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH\n\t{0xB290, 0xB290, prH2, gcLo},     //         HANGUL SYLLABLE NEU\n\t{0xB291, 0xB2AB, prH3, gcLo},     //    [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH\n\t{0xB2AC, 0xB2AC, prH2, gcLo},     //         HANGUL SYLLABLE NYI\n\t{0xB2AD, 0xB2C7, prH3, gcLo},     //    [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH\n\t{0xB2C8, 0xB2C8, prH2, gcLo},     //         HANGUL SYLLABLE NI\n\t{0xB2C9, 0xB2E3, prH3, gcLo},     //    [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH\n\t{0xB2E4, 0xB2E4, prH2, gcLo},     //         HANGUL SYLLABLE DA\n\t{0xB2E5, 0xB2FF, prH3, gcLo},     //    [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH\n\t{0xB300, 0xB300, prH2, gcLo},     //         HANGUL SYLLABLE DAE\n\t{0xB301, 0xB31B, prH3, gcLo},     //    [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH\n\t{0xB31C, 0xB31C, prH2, gcLo},     //         HANGUL SYLLABLE DYA\n\t{0xB31D, 0xB337, prH3, gcLo},     //    [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH\n\t{0xB338, 0xB338, prH2, gcLo},     //         HANGUL SYLLABLE DYAE\n\t{0xB339, 0xB353, prH3, gcLo},     //    [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH\n\t{0xB354, 0xB354, prH2, gcLo},     //         HANGUL SYLLABLE DEO\n\t{0xB355, 0xB36F, prH3, gcLo},     //    [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH\n\t{0xB370, 0xB370, prH2, gcLo},     //         HANGUL SYLLABLE DE\n\t{0xB371, 0xB38B, prH3, gcLo},     //    [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH\n\t{0xB38C, 0xB38C, prH2, gcLo},     //         HANGUL SYLLABLE DYEO\n\t{0xB38D, 0xB3A7, prH3, gcLo},     //    [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH\n\t{0xB3A8, 0xB3A8, prH2, gcLo},     //         HANGUL SYLLABLE DYE\n\t{0xB3A9, 0xB3C3, prH3, gcLo},     //    [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH\n\t{0xB3C4, 0xB3C4, prH2, gcLo},     //         HANGUL SYLLABLE DO\n\t{0xB3C5, 0xB3DF, prH3, gcLo},     //    [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH\n\t{0xB3E0, 0xB3E0, prH2, gcLo},     //         HANGUL SYLLABLE DWA\n\t{0xB3E1, 0xB3FB, prH3, gcLo},     //    [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH\n\t{0xB3FC, 0xB3FC, prH2, gcLo},     //         HANGUL SYLLABLE DWAE\n\t{0xB3FD, 0xB417, prH3, gcLo},     //    [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH\n\t{0xB418, 0xB418, prH2, gcLo},     //         HANGUL SYLLABLE DOE\n\t{0xB419, 0xB433, prH3, gcLo},     //    [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH\n\t{0xB434, 0xB434, prH2, gcLo},     //         HANGUL SYLLABLE DYO\n\t{0xB435, 0xB44F, prH3, gcLo},     //    [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH\n\t{0xB450, 0xB450, prH2, gcLo},     //         HANGUL SYLLABLE DU\n\t{0xB451, 0xB46B, prH3, gcLo},     //    [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH\n\t{0xB46C, 0xB46C, prH2, gcLo},     //         HANGUL SYLLABLE DWEO\n\t{0xB46D, 0xB487, prH3, gcLo},     //    [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH\n\t{0xB488, 0xB488, prH2, gcLo},     //         HANGUL SYLLABLE DWE\n\t{0xB489, 0xB4A3, prH3, gcLo},     //    [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH\n\t{0xB4A4, 0xB4A4, prH2, gcLo},     //         HANGUL SYLLABLE DWI\n\t{0xB4A5, 0xB4BF, prH3, gcLo},     //    [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH\n\t{0xB4C0, 0xB4C0, prH2, gcLo},     //         HANGUL SYLLABLE DYU\n\t{0xB4C1, 0xB4DB, prH3, gcLo},     //    [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH\n\t{0xB4DC, 0xB4DC, prH2, gcLo},     //         HANGUL SYLLABLE DEU\n\t{0xB4DD, 0xB4F7, prH3, gcLo},     //    [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH\n\t{0xB4F8, 0xB4F8, prH2, gcLo},     //         HANGUL SYLLABLE DYI\n\t{0xB4F9, 0xB513, prH3, gcLo},     //    [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH\n\t{0xB514, 0xB514, prH2, gcLo},     //         HANGUL SYLLABLE DI\n\t{0xB515, 0xB52F, prH3, gcLo},     //    [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH\n\t{0xB530, 0xB530, prH2, gcLo},     //         HANGUL SYLLABLE DDA\n\t{0xB531, 0xB54B, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH\n\t{0xB54C, 0xB54C, prH2, gcLo},     //         HANGUL SYLLABLE DDAE\n\t{0xB54D, 0xB567, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH\n\t{0xB568, 0xB568, prH2, gcLo},     //         HANGUL SYLLABLE DDYA\n\t{0xB569, 0xB583, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH\n\t{0xB584, 0xB584, prH2, gcLo},     //         HANGUL SYLLABLE DDYAE\n\t{0xB585, 0xB59F, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH\n\t{0xB5A0, 0xB5A0, prH2, gcLo},     //         HANGUL SYLLABLE DDEO\n\t{0xB5A1, 0xB5BB, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH\n\t{0xB5BC, 0xB5BC, prH2, gcLo},     //         HANGUL SYLLABLE DDE\n\t{0xB5BD, 0xB5D7, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH\n\t{0xB5D8, 0xB5D8, prH2, gcLo},     //         HANGUL SYLLABLE DDYEO\n\t{0xB5D9, 0xB5F3, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH\n\t{0xB5F4, 0xB5F4, prH2, gcLo},     //         HANGUL SYLLABLE DDYE\n\t{0xB5F5, 0xB60F, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH\n\t{0xB610, 0xB610, prH2, gcLo},     //         HANGUL SYLLABLE DDO\n\t{0xB611, 0xB62B, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH\n\t{0xB62C, 0xB62C, prH2, gcLo},     //         HANGUL SYLLABLE DDWA\n\t{0xB62D, 0xB647, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH\n\t{0xB648, 0xB648, prH2, gcLo},     //         HANGUL SYLLABLE DDWAE\n\t{0xB649, 0xB663, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH\n\t{0xB664, 0xB664, prH2, gcLo},     //         HANGUL SYLLABLE DDOE\n\t{0xB665, 0xB67F, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH\n\t{0xB680, 0xB680, prH2, gcLo},     //         HANGUL SYLLABLE DDYO\n\t{0xB681, 0xB69B, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH\n\t{0xB69C, 0xB69C, prH2, gcLo},     //         HANGUL SYLLABLE DDU\n\t{0xB69D, 0xB6B7, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH\n\t{0xB6B8, 0xB6B8, prH2, gcLo},     //         HANGUL SYLLABLE DDWEO\n\t{0xB6B9, 0xB6D3, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH\n\t{0xB6D4, 0xB6D4, prH2, gcLo},     //         HANGUL SYLLABLE DDWE\n\t{0xB6D5, 0xB6EF, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH\n\t{0xB6F0, 0xB6F0, prH2, gcLo},     //         HANGUL SYLLABLE DDWI\n\t{0xB6F1, 0xB70B, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH\n\t{0xB70C, 0xB70C, prH2, gcLo},     //         HANGUL SYLLABLE DDYU\n\t{0xB70D, 0xB727, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH\n\t{0xB728, 0xB728, prH2, gcLo},     //         HANGUL SYLLABLE DDEU\n\t{0xB729, 0xB743, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH\n\t{0xB744, 0xB744, prH2, gcLo},     //         HANGUL SYLLABLE DDYI\n\t{0xB745, 0xB75F, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH\n\t{0xB760, 0xB760, prH2, gcLo},     //         HANGUL SYLLABLE DDI\n\t{0xB761, 0xB77B, prH3, gcLo},     //    [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH\n\t{0xB77C, 0xB77C, prH2, gcLo},     //         HANGUL SYLLABLE RA\n\t{0xB77D, 0xB797, prH3, gcLo},     //    [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH\n\t{0xB798, 0xB798, prH2, gcLo},     //         HANGUL SYLLABLE RAE\n\t{0xB799, 0xB7B3, prH3, gcLo},     //    [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH\n\t{0xB7B4, 0xB7B4, prH2, gcLo},     //         HANGUL SYLLABLE RYA\n\t{0xB7B5, 0xB7CF, prH3, gcLo},     //    [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH\n\t{0xB7D0, 0xB7D0, prH2, gcLo},     //         HANGUL SYLLABLE RYAE\n\t{0xB7D1, 0xB7EB, prH3, gcLo},     //    [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH\n\t{0xB7EC, 0xB7EC, prH2, gcLo},     //         HANGUL SYLLABLE REO\n\t{0xB7ED, 0xB807, prH3, gcLo},     //    [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH\n\t{0xB808, 0xB808, prH2, gcLo},     //         HANGUL SYLLABLE RE\n\t{0xB809, 0xB823, prH3, gcLo},     //    [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH\n\t{0xB824, 0xB824, prH2, gcLo},     //         HANGUL SYLLABLE RYEO\n\t{0xB825, 0xB83F, prH3, gcLo},     //    [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH\n\t{0xB840, 0xB840, prH2, gcLo},     //         HANGUL SYLLABLE RYE\n\t{0xB841, 0xB85B, prH3, gcLo},     //    [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH\n\t{0xB85C, 0xB85C, prH2, gcLo},     //         HANGUL SYLLABLE RO\n\t{0xB85D, 0xB877, prH3, gcLo},     //    [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH\n\t{0xB878, 0xB878, prH2, gcLo},     //         HANGUL SYLLABLE RWA\n\t{0xB879, 0xB893, prH3, gcLo},     //    [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH\n\t{0xB894, 0xB894, prH2, gcLo},     //         HANGUL SYLLABLE RWAE\n\t{0xB895, 0xB8AF, prH3, gcLo},     //    [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH\n\t{0xB8B0, 0xB8B0, prH2, gcLo},     //         HANGUL SYLLABLE ROE\n\t{0xB8B1, 0xB8CB, prH3, gcLo},     //    [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH\n\t{0xB8CC, 0xB8CC, prH2, gcLo},     //         HANGUL SYLLABLE RYO\n\t{0xB8CD, 0xB8E7, prH3, gcLo},     //    [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH\n\t{0xB8E8, 0xB8E8, prH2, gcLo},     //         HANGUL SYLLABLE RU\n\t{0xB8E9, 0xB903, prH3, gcLo},     //    [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH\n\t{0xB904, 0xB904, prH2, gcLo},     //         HANGUL SYLLABLE RWEO\n\t{0xB905, 0xB91F, prH3, gcLo},     //    [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH\n\t{0xB920, 0xB920, prH2, gcLo},     //         HANGUL SYLLABLE RWE\n\t{0xB921, 0xB93B, prH3, gcLo},     //    [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH\n\t{0xB93C, 0xB93C, prH2, gcLo},     //         HANGUL SYLLABLE RWI\n\t{0xB93D, 0xB957, prH3, gcLo},     //    [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH\n\t{0xB958, 0xB958, prH2, gcLo},     //         HANGUL SYLLABLE RYU\n\t{0xB959, 0xB973, prH3, gcLo},     //    [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH\n\t{0xB974, 0xB974, prH2, gcLo},     //         HANGUL SYLLABLE REU\n\t{0xB975, 0xB98F, prH3, gcLo},     //    [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH\n\t{0xB990, 0xB990, prH2, gcLo},     //         HANGUL SYLLABLE RYI\n\t{0xB991, 0xB9AB, prH3, gcLo},     //    [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH\n\t{0xB9AC, 0xB9AC, prH2, gcLo},     //         HANGUL SYLLABLE RI\n\t{0xB9AD, 0xB9C7, prH3, gcLo},     //    [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH\n\t{0xB9C8, 0xB9C8, prH2, gcLo},     //         HANGUL SYLLABLE MA\n\t{0xB9C9, 0xB9E3, prH3, gcLo},     //    [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH\n\t{0xB9E4, 0xB9E4, prH2, gcLo},     //         HANGUL SYLLABLE MAE\n\t{0xB9E5, 0xB9FF, prH3, gcLo},     //    [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH\n\t{0xBA00, 0xBA00, prH2, gcLo},     //         HANGUL SYLLABLE MYA\n\t{0xBA01, 0xBA1B, prH3, gcLo},     //    [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH\n\t{0xBA1C, 0xBA1C, prH2, gcLo},     //         HANGUL SYLLABLE MYAE\n\t{0xBA1D, 0xBA37, prH3, gcLo},     //    [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH\n\t{0xBA38, 0xBA38, prH2, gcLo},     //         HANGUL SYLLABLE MEO\n\t{0xBA39, 0xBA53, prH3, gcLo},     //    [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH\n\t{0xBA54, 0xBA54, prH2, gcLo},     //         HANGUL SYLLABLE ME\n\t{0xBA55, 0xBA6F, prH3, gcLo},     //    [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH\n\t{0xBA70, 0xBA70, prH2, gcLo},     //         HANGUL SYLLABLE MYEO\n\t{0xBA71, 0xBA8B, prH3, gcLo},     //    [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH\n\t{0xBA8C, 0xBA8C, prH2, gcLo},     //         HANGUL SYLLABLE MYE\n\t{0xBA8D, 0xBAA7, prH3, gcLo},     //    [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH\n\t{0xBAA8, 0xBAA8, prH2, gcLo},     //         HANGUL SYLLABLE MO\n\t{0xBAA9, 0xBAC3, prH3, gcLo},     //    [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH\n\t{0xBAC4, 0xBAC4, prH2, gcLo},     //         HANGUL SYLLABLE MWA\n\t{0xBAC5, 0xBADF, prH3, gcLo},     //    [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH\n\t{0xBAE0, 0xBAE0, prH2, gcLo},     //         HANGUL SYLLABLE MWAE\n\t{0xBAE1, 0xBAFB, prH3, gcLo},     //    [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH\n\t{0xBAFC, 0xBAFC, prH2, gcLo},     //         HANGUL SYLLABLE MOE\n\t{0xBAFD, 0xBB17, prH3, gcLo},     //    [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH\n\t{0xBB18, 0xBB18, prH2, gcLo},     //         HANGUL SYLLABLE MYO\n\t{0xBB19, 0xBB33, prH3, gcLo},     //    [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH\n\t{0xBB34, 0xBB34, prH2, gcLo},     //         HANGUL SYLLABLE MU\n\t{0xBB35, 0xBB4F, prH3, gcLo},     //    [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH\n\t{0xBB50, 0xBB50, prH2, gcLo},     //         HANGUL SYLLABLE MWEO\n\t{0xBB51, 0xBB6B, prH3, gcLo},     //    [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH\n\t{0xBB6C, 0xBB6C, prH2, gcLo},     //         HANGUL SYLLABLE MWE\n\t{0xBB6D, 0xBB87, prH3, gcLo},     //    [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH\n\t{0xBB88, 0xBB88, prH2, gcLo},     //         HANGUL SYLLABLE MWI\n\t{0xBB89, 0xBBA3, prH3, gcLo},     //    [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH\n\t{0xBBA4, 0xBBA4, prH2, gcLo},     //         HANGUL SYLLABLE MYU\n\t{0xBBA5, 0xBBBF, prH3, gcLo},     //    [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH\n\t{0xBBC0, 0xBBC0, prH2, gcLo},     //         HANGUL SYLLABLE MEU\n\t{0xBBC1, 0xBBDB, prH3, gcLo},     //    [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH\n\t{0xBBDC, 0xBBDC, prH2, gcLo},     //         HANGUL SYLLABLE MYI\n\t{0xBBDD, 0xBBF7, prH3, gcLo},     //    [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH\n\t{0xBBF8, 0xBBF8, prH2, gcLo},     //         HANGUL SYLLABLE MI\n\t{0xBBF9, 0xBC13, prH3, gcLo},     //    [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH\n\t{0xBC14, 0xBC14, prH2, gcLo},     //         HANGUL SYLLABLE BA\n\t{0xBC15, 0xBC2F, prH3, gcLo},     //    [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH\n\t{0xBC30, 0xBC30, prH2, gcLo},     //         HANGUL SYLLABLE BAE\n\t{0xBC31, 0xBC4B, prH3, gcLo},     //    [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH\n\t{0xBC4C, 0xBC4C, prH2, gcLo},     //         HANGUL SYLLABLE BYA\n\t{0xBC4D, 0xBC67, prH3, gcLo},     //    [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH\n\t{0xBC68, 0xBC68, prH2, gcLo},     //         HANGUL SYLLABLE BYAE\n\t{0xBC69, 0xBC83, prH3, gcLo},     //    [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH\n\t{0xBC84, 0xBC84, prH2, gcLo},     //         HANGUL SYLLABLE BEO\n\t{0xBC85, 0xBC9F, prH3, gcLo},     //    [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH\n\t{0xBCA0, 0xBCA0, prH2, gcLo},     //         HANGUL SYLLABLE BE\n\t{0xBCA1, 0xBCBB, prH3, gcLo},     //    [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH\n\t{0xBCBC, 0xBCBC, prH2, gcLo},     //         HANGUL SYLLABLE BYEO\n\t{0xBCBD, 0xBCD7, prH3, gcLo},     //    [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH\n\t{0xBCD8, 0xBCD8, prH2, gcLo},     //         HANGUL SYLLABLE BYE\n\t{0xBCD9, 0xBCF3, prH3, gcLo},     //    [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH\n\t{0xBCF4, 0xBCF4, prH2, gcLo},     //         HANGUL SYLLABLE BO\n\t{0xBCF5, 0xBD0F, prH3, gcLo},     //    [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH\n\t{0xBD10, 0xBD10, prH2, gcLo},     //         HANGUL SYLLABLE BWA\n\t{0xBD11, 0xBD2B, prH3, gcLo},     //    [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH\n\t{0xBD2C, 0xBD2C, prH2, gcLo},     //         HANGUL SYLLABLE BWAE\n\t{0xBD2D, 0xBD47, prH3, gcLo},     //    [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH\n\t{0xBD48, 0xBD48, prH2, gcLo},     //         HANGUL SYLLABLE BOE\n\t{0xBD49, 0xBD63, prH3, gcLo},     //    [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH\n\t{0xBD64, 0xBD64, prH2, gcLo},     //         HANGUL SYLLABLE BYO\n\t{0xBD65, 0xBD7F, prH3, gcLo},     //    [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH\n\t{0xBD80, 0xBD80, prH2, gcLo},     //         HANGUL SYLLABLE BU\n\t{0xBD81, 0xBD9B, prH3, gcLo},     //    [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH\n\t{0xBD9C, 0xBD9C, prH2, gcLo},     //         HANGUL SYLLABLE BWEO\n\t{0xBD9D, 0xBDB7, prH3, gcLo},     //    [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH\n\t{0xBDB8, 0xBDB8, prH2, gcLo},     //         HANGUL SYLLABLE BWE\n\t{0xBDB9, 0xBDD3, prH3, gcLo},     //    [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH\n\t{0xBDD4, 0xBDD4, prH2, gcLo},     //         HANGUL SYLLABLE BWI\n\t{0xBDD5, 0xBDEF, prH3, gcLo},     //    [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH\n\t{0xBDF0, 0xBDF0, prH2, gcLo},     //         HANGUL SYLLABLE BYU\n\t{0xBDF1, 0xBE0B, prH3, gcLo},     //    [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH\n\t{0xBE0C, 0xBE0C, prH2, gcLo},     //         HANGUL SYLLABLE BEU\n\t{0xBE0D, 0xBE27, prH3, gcLo},     //    [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH\n\t{0xBE28, 0xBE28, prH2, gcLo},     //         HANGUL SYLLABLE BYI\n\t{0xBE29, 0xBE43, prH3, gcLo},     //    [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH\n\t{0xBE44, 0xBE44, prH2, gcLo},     //         HANGUL SYLLABLE BI\n\t{0xBE45, 0xBE5F, prH3, gcLo},     //    [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH\n\t{0xBE60, 0xBE60, prH2, gcLo},     //         HANGUL SYLLABLE BBA\n\t{0xBE61, 0xBE7B, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH\n\t{0xBE7C, 0xBE7C, prH2, gcLo},     //         HANGUL SYLLABLE BBAE\n\t{0xBE7D, 0xBE97, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH\n\t{0xBE98, 0xBE98, prH2, gcLo},     //         HANGUL SYLLABLE BBYA\n\t{0xBE99, 0xBEB3, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH\n\t{0xBEB4, 0xBEB4, prH2, gcLo},     //         HANGUL SYLLABLE BBYAE\n\t{0xBEB5, 0xBECF, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH\n\t{0xBED0, 0xBED0, prH2, gcLo},     //         HANGUL SYLLABLE BBEO\n\t{0xBED1, 0xBEEB, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH\n\t{0xBEEC, 0xBEEC, prH2, gcLo},     //         HANGUL SYLLABLE BBE\n\t{0xBEED, 0xBF07, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH\n\t{0xBF08, 0xBF08, prH2, gcLo},     //         HANGUL SYLLABLE BBYEO\n\t{0xBF09, 0xBF23, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH\n\t{0xBF24, 0xBF24, prH2, gcLo},     //         HANGUL SYLLABLE BBYE\n\t{0xBF25, 0xBF3F, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH\n\t{0xBF40, 0xBF40, prH2, gcLo},     //         HANGUL SYLLABLE BBO\n\t{0xBF41, 0xBF5B, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH\n\t{0xBF5C, 0xBF5C, prH2, gcLo},     //         HANGUL SYLLABLE BBWA\n\t{0xBF5D, 0xBF77, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH\n\t{0xBF78, 0xBF78, prH2, gcLo},     //         HANGUL SYLLABLE BBWAE\n\t{0xBF79, 0xBF93, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH\n\t{0xBF94, 0xBF94, prH2, gcLo},     //         HANGUL SYLLABLE BBOE\n\t{0xBF95, 0xBFAF, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH\n\t{0xBFB0, 0xBFB0, prH2, gcLo},     //         HANGUL SYLLABLE BBYO\n\t{0xBFB1, 0xBFCB, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH\n\t{0xBFCC, 0xBFCC, prH2, gcLo},     //         HANGUL SYLLABLE BBU\n\t{0xBFCD, 0xBFE7, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH\n\t{0xBFE8, 0xBFE8, prH2, gcLo},     //         HANGUL SYLLABLE BBWEO\n\t{0xBFE9, 0xC003, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH\n\t{0xC004, 0xC004, prH2, gcLo},     //         HANGUL SYLLABLE BBWE\n\t{0xC005, 0xC01F, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH\n\t{0xC020, 0xC020, prH2, gcLo},     //         HANGUL SYLLABLE BBWI\n\t{0xC021, 0xC03B, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH\n\t{0xC03C, 0xC03C, prH2, gcLo},     //         HANGUL SYLLABLE BBYU\n\t{0xC03D, 0xC057, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH\n\t{0xC058, 0xC058, prH2, gcLo},     //         HANGUL SYLLABLE BBEU\n\t{0xC059, 0xC073, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH\n\t{0xC074, 0xC074, prH2, gcLo},     //         HANGUL SYLLABLE BBYI\n\t{0xC075, 0xC08F, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH\n\t{0xC090, 0xC090, prH2, gcLo},     //         HANGUL SYLLABLE BBI\n\t{0xC091, 0xC0AB, prH3, gcLo},     //    [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH\n\t{0xC0AC, 0xC0AC, prH2, gcLo},     //         HANGUL SYLLABLE SA\n\t{0xC0AD, 0xC0C7, prH3, gcLo},     //    [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH\n\t{0xC0C8, 0xC0C8, prH2, gcLo},     //         HANGUL SYLLABLE SAE\n\t{0xC0C9, 0xC0E3, prH3, gcLo},     //    [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH\n\t{0xC0E4, 0xC0E4, prH2, gcLo},     //         HANGUL SYLLABLE SYA\n\t{0xC0E5, 0xC0FF, prH3, gcLo},     //    [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH\n\t{0xC100, 0xC100, prH2, gcLo},     //         HANGUL SYLLABLE SYAE\n\t{0xC101, 0xC11B, prH3, gcLo},     //    [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH\n\t{0xC11C, 0xC11C, prH2, gcLo},     //         HANGUL SYLLABLE SEO\n\t{0xC11D, 0xC137, prH3, gcLo},     //    [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH\n\t{0xC138, 0xC138, prH2, gcLo},     //         HANGUL SYLLABLE SE\n\t{0xC139, 0xC153, prH3, gcLo},     //    [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH\n\t{0xC154, 0xC154, prH2, gcLo},     //         HANGUL SYLLABLE SYEO\n\t{0xC155, 0xC16F, prH3, gcLo},     //    [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH\n\t{0xC170, 0xC170, prH2, gcLo},     //         HANGUL SYLLABLE SYE\n\t{0xC171, 0xC18B, prH3, gcLo},     //    [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH\n\t{0xC18C, 0xC18C, prH2, gcLo},     //         HANGUL SYLLABLE SO\n\t{0xC18D, 0xC1A7, prH3, gcLo},     //    [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH\n\t{0xC1A8, 0xC1A8, prH2, gcLo},     //         HANGUL SYLLABLE SWA\n\t{0xC1A9, 0xC1C3, prH3, gcLo},     //    [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH\n\t{0xC1C4, 0xC1C4, prH2, gcLo},     //         HANGUL SYLLABLE SWAE\n\t{0xC1C5, 0xC1DF, prH3, gcLo},     //    [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH\n\t{0xC1E0, 0xC1E0, prH2, gcLo},     //         HANGUL SYLLABLE SOE\n\t{0xC1E1, 0xC1FB, prH3, gcLo},     //    [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH\n\t{0xC1FC, 0xC1FC, prH2, gcLo},     //         HANGUL SYLLABLE SYO\n\t{0xC1FD, 0xC217, prH3, gcLo},     //    [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH\n\t{0xC218, 0xC218, prH2, gcLo},     //         HANGUL SYLLABLE SU\n\t{0xC219, 0xC233, prH3, gcLo},     //    [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH\n\t{0xC234, 0xC234, prH2, gcLo},     //         HANGUL SYLLABLE SWEO\n\t{0xC235, 0xC24F, prH3, gcLo},     //    [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH\n\t{0xC250, 0xC250, prH2, gcLo},     //         HANGUL SYLLABLE SWE\n\t{0xC251, 0xC26B, prH3, gcLo},     //    [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH\n\t{0xC26C, 0xC26C, prH2, gcLo},     //         HANGUL SYLLABLE SWI\n\t{0xC26D, 0xC287, prH3, gcLo},     //    [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH\n\t{0xC288, 0xC288, prH2, gcLo},     //         HANGUL SYLLABLE SYU\n\t{0xC289, 0xC2A3, prH3, gcLo},     //    [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH\n\t{0xC2A4, 0xC2A4, prH2, gcLo},     //         HANGUL SYLLABLE SEU\n\t{0xC2A5, 0xC2BF, prH3, gcLo},     //    [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH\n\t{0xC2C0, 0xC2C0, prH2, gcLo},     //         HANGUL SYLLABLE SYI\n\t{0xC2C1, 0xC2DB, prH3, gcLo},     //    [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH\n\t{0xC2DC, 0xC2DC, prH2, gcLo},     //         HANGUL SYLLABLE SI\n\t{0xC2DD, 0xC2F7, prH3, gcLo},     //    [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH\n\t{0xC2F8, 0xC2F8, prH2, gcLo},     //         HANGUL SYLLABLE SSA\n\t{0xC2F9, 0xC313, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH\n\t{0xC314, 0xC314, prH2, gcLo},     //         HANGUL SYLLABLE SSAE\n\t{0xC315, 0xC32F, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH\n\t{0xC330, 0xC330, prH2, gcLo},     //         HANGUL SYLLABLE SSYA\n\t{0xC331, 0xC34B, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH\n\t{0xC34C, 0xC34C, prH2, gcLo},     //         HANGUL SYLLABLE SSYAE\n\t{0xC34D, 0xC367, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH\n\t{0xC368, 0xC368, prH2, gcLo},     //         HANGUL SYLLABLE SSEO\n\t{0xC369, 0xC383, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH\n\t{0xC384, 0xC384, prH2, gcLo},     //         HANGUL SYLLABLE SSE\n\t{0xC385, 0xC39F, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH\n\t{0xC3A0, 0xC3A0, prH2, gcLo},     //         HANGUL SYLLABLE SSYEO\n\t{0xC3A1, 0xC3BB, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH\n\t{0xC3BC, 0xC3BC, prH2, gcLo},     //         HANGUL SYLLABLE SSYE\n\t{0xC3BD, 0xC3D7, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH\n\t{0xC3D8, 0xC3D8, prH2, gcLo},     //         HANGUL SYLLABLE SSO\n\t{0xC3D9, 0xC3F3, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH\n\t{0xC3F4, 0xC3F4, prH2, gcLo},     //         HANGUL SYLLABLE SSWA\n\t{0xC3F5, 0xC40F, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH\n\t{0xC410, 0xC410, prH2, gcLo},     //         HANGUL SYLLABLE SSWAE\n\t{0xC411, 0xC42B, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH\n\t{0xC42C, 0xC42C, prH2, gcLo},     //         HANGUL SYLLABLE SSOE\n\t{0xC42D, 0xC447, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH\n\t{0xC448, 0xC448, prH2, gcLo},     //         HANGUL SYLLABLE SSYO\n\t{0xC449, 0xC463, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH\n\t{0xC464, 0xC464, prH2, gcLo},     //         HANGUL SYLLABLE SSU\n\t{0xC465, 0xC47F, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH\n\t{0xC480, 0xC480, prH2, gcLo},     //         HANGUL SYLLABLE SSWEO\n\t{0xC481, 0xC49B, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH\n\t{0xC49C, 0xC49C, prH2, gcLo},     //         HANGUL SYLLABLE SSWE\n\t{0xC49D, 0xC4B7, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH\n\t{0xC4B8, 0xC4B8, prH2, gcLo},     //         HANGUL SYLLABLE SSWI\n\t{0xC4B9, 0xC4D3, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH\n\t{0xC4D4, 0xC4D4, prH2, gcLo},     //         HANGUL SYLLABLE SSYU\n\t{0xC4D5, 0xC4EF, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH\n\t{0xC4F0, 0xC4F0, prH2, gcLo},     //         HANGUL SYLLABLE SSEU\n\t{0xC4F1, 0xC50B, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH\n\t{0xC50C, 0xC50C, prH2, gcLo},     //         HANGUL SYLLABLE SSYI\n\t{0xC50D, 0xC527, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH\n\t{0xC528, 0xC528, prH2, gcLo},     //         HANGUL SYLLABLE SSI\n\t{0xC529, 0xC543, prH3, gcLo},     //    [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH\n\t{0xC544, 0xC544, prH2, gcLo},     //         HANGUL SYLLABLE A\n\t{0xC545, 0xC55F, prH3, gcLo},     //    [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH\n\t{0xC560, 0xC560, prH2, gcLo},     //         HANGUL SYLLABLE AE\n\t{0xC561, 0xC57B, prH3, gcLo},     //    [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH\n\t{0xC57C, 0xC57C, prH2, gcLo},     //         HANGUL SYLLABLE YA\n\t{0xC57D, 0xC597, prH3, gcLo},     //    [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH\n\t{0xC598, 0xC598, prH2, gcLo},     //         HANGUL SYLLABLE YAE\n\t{0xC599, 0xC5B3, prH3, gcLo},     //    [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH\n\t{0xC5B4, 0xC5B4, prH2, gcLo},     //         HANGUL SYLLABLE EO\n\t{0xC5B5, 0xC5CF, prH3, gcLo},     //    [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH\n\t{0xC5D0, 0xC5D0, prH2, gcLo},     //         HANGUL SYLLABLE E\n\t{0xC5D1, 0xC5EB, prH3, gcLo},     //    [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH\n\t{0xC5EC, 0xC5EC, prH2, gcLo},     //         HANGUL SYLLABLE YEO\n\t{0xC5ED, 0xC607, prH3, gcLo},     //    [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH\n\t{0xC608, 0xC608, prH2, gcLo},     //         HANGUL SYLLABLE YE\n\t{0xC609, 0xC623, prH3, gcLo},     //    [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH\n\t{0xC624, 0xC624, prH2, gcLo},     //         HANGUL SYLLABLE O\n\t{0xC625, 0xC63F, prH3, gcLo},     //    [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH\n\t{0xC640, 0xC640, prH2, gcLo},     //         HANGUL SYLLABLE WA\n\t{0xC641, 0xC65B, prH3, gcLo},     //    [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH\n\t{0xC65C, 0xC65C, prH2, gcLo},     //         HANGUL SYLLABLE WAE\n\t{0xC65D, 0xC677, prH3, gcLo},     //    [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH\n\t{0xC678, 0xC678, prH2, gcLo},     //         HANGUL SYLLABLE OE\n\t{0xC679, 0xC693, prH3, gcLo},     //    [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH\n\t{0xC694, 0xC694, prH2, gcLo},     //         HANGUL SYLLABLE YO\n\t{0xC695, 0xC6AF, prH3, gcLo},     //    [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH\n\t{0xC6B0, 0xC6B0, prH2, gcLo},     //         HANGUL SYLLABLE U\n\t{0xC6B1, 0xC6CB, prH3, gcLo},     //    [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH\n\t{0xC6CC, 0xC6CC, prH2, gcLo},     //         HANGUL SYLLABLE WEO\n\t{0xC6CD, 0xC6E7, prH3, gcLo},     //    [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH\n\t{0xC6E8, 0xC6E8, prH2, gcLo},     //         HANGUL SYLLABLE WE\n\t{0xC6E9, 0xC703, prH3, gcLo},     //    [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH\n\t{0xC704, 0xC704, prH2, gcLo},     //         HANGUL SYLLABLE WI\n\t{0xC705, 0xC71F, prH3, gcLo},     //    [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH\n\t{0xC720, 0xC720, prH2, gcLo},     //         HANGUL SYLLABLE YU\n\t{0xC721, 0xC73B, prH3, gcLo},     //    [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH\n\t{0xC73C, 0xC73C, prH2, gcLo},     //         HANGUL SYLLABLE EU\n\t{0xC73D, 0xC757, prH3, gcLo},     //    [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH\n\t{0xC758, 0xC758, prH2, gcLo},     //         HANGUL SYLLABLE YI\n\t{0xC759, 0xC773, prH3, gcLo},     //    [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH\n\t{0xC774, 0xC774, prH2, gcLo},     //         HANGUL SYLLABLE I\n\t{0xC775, 0xC78F, prH3, gcLo},     //    [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH\n\t{0xC790, 0xC790, prH2, gcLo},     //         HANGUL SYLLABLE JA\n\t{0xC791, 0xC7AB, prH3, gcLo},     //    [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH\n\t{0xC7AC, 0xC7AC, prH2, gcLo},     //         HANGUL SYLLABLE JAE\n\t{0xC7AD, 0xC7C7, prH3, gcLo},     //    [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH\n\t{0xC7C8, 0xC7C8, prH2, gcLo},     //         HANGUL SYLLABLE JYA\n\t{0xC7C9, 0xC7E3, prH3, gcLo},     //    [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH\n\t{0xC7E4, 0xC7E4, prH2, gcLo},     //         HANGUL SYLLABLE JYAE\n\t{0xC7E5, 0xC7FF, prH3, gcLo},     //    [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH\n\t{0xC800, 0xC800, prH2, gcLo},     //         HANGUL SYLLABLE JEO\n\t{0xC801, 0xC81B, prH3, gcLo},     //    [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH\n\t{0xC81C, 0xC81C, prH2, gcLo},     //         HANGUL SYLLABLE JE\n\t{0xC81D, 0xC837, prH3, gcLo},     //    [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH\n\t{0xC838, 0xC838, prH2, gcLo},     //         HANGUL SYLLABLE JYEO\n\t{0xC839, 0xC853, prH3, gcLo},     //    [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH\n\t{0xC854, 0xC854, prH2, gcLo},     //         HANGUL SYLLABLE JYE\n\t{0xC855, 0xC86F, prH3, gcLo},     //    [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH\n\t{0xC870, 0xC870, prH2, gcLo},     //         HANGUL SYLLABLE JO\n\t{0xC871, 0xC88B, prH3, gcLo},     //    [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH\n\t{0xC88C, 0xC88C, prH2, gcLo},     //         HANGUL SYLLABLE JWA\n\t{0xC88D, 0xC8A7, prH3, gcLo},     //    [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH\n\t{0xC8A8, 0xC8A8, prH2, gcLo},     //         HANGUL SYLLABLE JWAE\n\t{0xC8A9, 0xC8C3, prH3, gcLo},     //    [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH\n\t{0xC8C4, 0xC8C4, prH2, gcLo},     //         HANGUL SYLLABLE JOE\n\t{0xC8C5, 0xC8DF, prH3, gcLo},     //    [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH\n\t{0xC8E0, 0xC8E0, prH2, gcLo},     //         HANGUL SYLLABLE JYO\n\t{0xC8E1, 0xC8FB, prH3, gcLo},     //    [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH\n\t{0xC8FC, 0xC8FC, prH2, gcLo},     //         HANGUL SYLLABLE JU\n\t{0xC8FD, 0xC917, prH3, gcLo},     //    [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH\n\t{0xC918, 0xC918, prH2, gcLo},     //         HANGUL SYLLABLE JWEO\n\t{0xC919, 0xC933, prH3, gcLo},     //    [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH\n\t{0xC934, 0xC934, prH2, gcLo},     //         HANGUL SYLLABLE JWE\n\t{0xC935, 0xC94F, prH3, gcLo},     //    [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH\n\t{0xC950, 0xC950, prH2, gcLo},     //         HANGUL SYLLABLE JWI\n\t{0xC951, 0xC96B, prH3, gcLo},     //    [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH\n\t{0xC96C, 0xC96C, prH2, gcLo},     //         HANGUL SYLLABLE JYU\n\t{0xC96D, 0xC987, prH3, gcLo},     //    [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH\n\t{0xC988, 0xC988, prH2, gcLo},     //         HANGUL SYLLABLE JEU\n\t{0xC989, 0xC9A3, prH3, gcLo},     //    [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH\n\t{0xC9A4, 0xC9A4, prH2, gcLo},     //         HANGUL SYLLABLE JYI\n\t{0xC9A5, 0xC9BF, prH3, gcLo},     //    [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH\n\t{0xC9C0, 0xC9C0, prH2, gcLo},     //         HANGUL SYLLABLE JI\n\t{0xC9C1, 0xC9DB, prH3, gcLo},     //    [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH\n\t{0xC9DC, 0xC9DC, prH2, gcLo},     //         HANGUL SYLLABLE JJA\n\t{0xC9DD, 0xC9F7, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH\n\t{0xC9F8, 0xC9F8, prH2, gcLo},     //         HANGUL SYLLABLE JJAE\n\t{0xC9F9, 0xCA13, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH\n\t{0xCA14, 0xCA14, prH2, gcLo},     //         HANGUL SYLLABLE JJYA\n\t{0xCA15, 0xCA2F, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH\n\t{0xCA30, 0xCA30, prH2, gcLo},     //         HANGUL SYLLABLE JJYAE\n\t{0xCA31, 0xCA4B, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH\n\t{0xCA4C, 0xCA4C, prH2, gcLo},     //         HANGUL SYLLABLE JJEO\n\t{0xCA4D, 0xCA67, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH\n\t{0xCA68, 0xCA68, prH2, gcLo},     //         HANGUL SYLLABLE JJE\n\t{0xCA69, 0xCA83, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH\n\t{0xCA84, 0xCA84, prH2, gcLo},     //         HANGUL SYLLABLE JJYEO\n\t{0xCA85, 0xCA9F, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH\n\t{0xCAA0, 0xCAA0, prH2, gcLo},     //         HANGUL SYLLABLE JJYE\n\t{0xCAA1, 0xCABB, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH\n\t{0xCABC, 0xCABC, prH2, gcLo},     //         HANGUL SYLLABLE JJO\n\t{0xCABD, 0xCAD7, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH\n\t{0xCAD8, 0xCAD8, prH2, gcLo},     //         HANGUL SYLLABLE JJWA\n\t{0xCAD9, 0xCAF3, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH\n\t{0xCAF4, 0xCAF4, prH2, gcLo},     //         HANGUL SYLLABLE JJWAE\n\t{0xCAF5, 0xCB0F, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH\n\t{0xCB10, 0xCB10, prH2, gcLo},     //         HANGUL SYLLABLE JJOE\n\t{0xCB11, 0xCB2B, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH\n\t{0xCB2C, 0xCB2C, prH2, gcLo},     //         HANGUL SYLLABLE JJYO\n\t{0xCB2D, 0xCB47, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH\n\t{0xCB48, 0xCB48, prH2, gcLo},     //         HANGUL SYLLABLE JJU\n\t{0xCB49, 0xCB63, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH\n\t{0xCB64, 0xCB64, prH2, gcLo},     //         HANGUL SYLLABLE JJWEO\n\t{0xCB65, 0xCB7F, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH\n\t{0xCB80, 0xCB80, prH2, gcLo},     //         HANGUL SYLLABLE JJWE\n\t{0xCB81, 0xCB9B, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH\n\t{0xCB9C, 0xCB9C, prH2, gcLo},     //         HANGUL SYLLABLE JJWI\n\t{0xCB9D, 0xCBB7, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH\n\t{0xCBB8, 0xCBB8, prH2, gcLo},     //         HANGUL SYLLABLE JJYU\n\t{0xCBB9, 0xCBD3, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH\n\t{0xCBD4, 0xCBD4, prH2, gcLo},     //         HANGUL SYLLABLE JJEU\n\t{0xCBD5, 0xCBEF, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH\n\t{0xCBF0, 0xCBF0, prH2, gcLo},     //         HANGUL SYLLABLE JJYI\n\t{0xCBF1, 0xCC0B, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH\n\t{0xCC0C, 0xCC0C, prH2, gcLo},     //         HANGUL SYLLABLE JJI\n\t{0xCC0D, 0xCC27, prH3, gcLo},     //    [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH\n\t{0xCC28, 0xCC28, prH2, gcLo},     //         HANGUL SYLLABLE CA\n\t{0xCC29, 0xCC43, prH3, gcLo},     //    [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH\n\t{0xCC44, 0xCC44, prH2, gcLo},     //         HANGUL SYLLABLE CAE\n\t{0xCC45, 0xCC5F, prH3, gcLo},     //    [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH\n\t{0xCC60, 0xCC60, prH2, gcLo},     //         HANGUL SYLLABLE CYA\n\t{0xCC61, 0xCC7B, prH3, gcLo},     //    [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH\n\t{0xCC7C, 0xCC7C, prH2, gcLo},     //         HANGUL SYLLABLE CYAE\n\t{0xCC7D, 0xCC97, prH3, gcLo},     //    [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH\n\t{0xCC98, 0xCC98, prH2, gcLo},     //         HANGUL SYLLABLE CEO\n\t{0xCC99, 0xCCB3, prH3, gcLo},     //    [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH\n\t{0xCCB4, 0xCCB4, prH2, gcLo},     //         HANGUL SYLLABLE CE\n\t{0xCCB5, 0xCCCF, prH3, gcLo},     //    [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH\n\t{0xCCD0, 0xCCD0, prH2, gcLo},     //         HANGUL SYLLABLE CYEO\n\t{0xCCD1, 0xCCEB, prH3, gcLo},     //    [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH\n\t{0xCCEC, 0xCCEC, prH2, gcLo},     //         HANGUL SYLLABLE CYE\n\t{0xCCED, 0xCD07, prH3, gcLo},     //    [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH\n\t{0xCD08, 0xCD08, prH2, gcLo},     //         HANGUL SYLLABLE CO\n\t{0xCD09, 0xCD23, prH3, gcLo},     //    [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH\n\t{0xCD24, 0xCD24, prH2, gcLo},     //         HANGUL SYLLABLE CWA\n\t{0xCD25, 0xCD3F, prH3, gcLo},     //    [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH\n\t{0xCD40, 0xCD40, prH2, gcLo},     //         HANGUL SYLLABLE CWAE\n\t{0xCD41, 0xCD5B, prH3, gcLo},     //    [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH\n\t{0xCD5C, 0xCD5C, prH2, gcLo},     //         HANGUL SYLLABLE COE\n\t{0xCD5D, 0xCD77, prH3, gcLo},     //    [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH\n\t{0xCD78, 0xCD78, prH2, gcLo},     //         HANGUL SYLLABLE CYO\n\t{0xCD79, 0xCD93, prH3, gcLo},     //    [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH\n\t{0xCD94, 0xCD94, prH2, gcLo},     //         HANGUL SYLLABLE CU\n\t{0xCD95, 0xCDAF, prH3, gcLo},     //    [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH\n\t{0xCDB0, 0xCDB0, prH2, gcLo},     //         HANGUL SYLLABLE CWEO\n\t{0xCDB1, 0xCDCB, prH3, gcLo},     //    [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH\n\t{0xCDCC, 0xCDCC, prH2, gcLo},     //         HANGUL SYLLABLE CWE\n\t{0xCDCD, 0xCDE7, prH3, gcLo},     //    [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH\n\t{0xCDE8, 0xCDE8, prH2, gcLo},     //         HANGUL SYLLABLE CWI\n\t{0xCDE9, 0xCE03, prH3, gcLo},     //    [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH\n\t{0xCE04, 0xCE04, prH2, gcLo},     //         HANGUL SYLLABLE CYU\n\t{0xCE05, 0xCE1F, prH3, gcLo},     //    [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH\n\t{0xCE20, 0xCE20, prH2, gcLo},     //         HANGUL SYLLABLE CEU\n\t{0xCE21, 0xCE3B, prH3, gcLo},     //    [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH\n\t{0xCE3C, 0xCE3C, prH2, gcLo},     //         HANGUL SYLLABLE CYI\n\t{0xCE3D, 0xCE57, prH3, gcLo},     //    [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH\n\t{0xCE58, 0xCE58, prH2, gcLo},     //         HANGUL SYLLABLE CI\n\t{0xCE59, 0xCE73, prH3, gcLo},     //    [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH\n\t{0xCE74, 0xCE74, prH2, gcLo},     //         HANGUL SYLLABLE KA\n\t{0xCE75, 0xCE8F, prH3, gcLo},     //    [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH\n\t{0xCE90, 0xCE90, prH2, gcLo},     //         HANGUL SYLLABLE KAE\n\t{0xCE91, 0xCEAB, prH3, gcLo},     //    [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH\n\t{0xCEAC, 0xCEAC, prH2, gcLo},     //         HANGUL SYLLABLE KYA\n\t{0xCEAD, 0xCEC7, prH3, gcLo},     //    [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH\n\t{0xCEC8, 0xCEC8, prH2, gcLo},     //         HANGUL SYLLABLE KYAE\n\t{0xCEC9, 0xCEE3, prH3, gcLo},     //    [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH\n\t{0xCEE4, 0xCEE4, prH2, gcLo},     //         HANGUL SYLLABLE KEO\n\t{0xCEE5, 0xCEFF, prH3, gcLo},     //    [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH\n\t{0xCF00, 0xCF00, prH2, gcLo},     //         HANGUL SYLLABLE KE\n\t{0xCF01, 0xCF1B, prH3, gcLo},     //    [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH\n\t{0xCF1C, 0xCF1C, prH2, gcLo},     //         HANGUL SYLLABLE KYEO\n\t{0xCF1D, 0xCF37, prH3, gcLo},     //    [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH\n\t{0xCF38, 0xCF38, prH2, gcLo},     //         HANGUL SYLLABLE KYE\n\t{0xCF39, 0xCF53, prH3, gcLo},     //    [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH\n\t{0xCF54, 0xCF54, prH2, gcLo},     //         HANGUL SYLLABLE KO\n\t{0xCF55, 0xCF6F, prH3, gcLo},     //    [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH\n\t{0xCF70, 0xCF70, prH2, gcLo},     //         HANGUL SYLLABLE KWA\n\t{0xCF71, 0xCF8B, prH3, gcLo},     //    [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH\n\t{0xCF8C, 0xCF8C, prH2, gcLo},     //         HANGUL SYLLABLE KWAE\n\t{0xCF8D, 0xCFA7, prH3, gcLo},     //    [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH\n\t{0xCFA8, 0xCFA8, prH2, gcLo},     //         HANGUL SYLLABLE KOE\n\t{0xCFA9, 0xCFC3, prH3, gcLo},     //    [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH\n\t{0xCFC4, 0xCFC4, prH2, gcLo},     //         HANGUL SYLLABLE KYO\n\t{0xCFC5, 0xCFDF, prH3, gcLo},     //    [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH\n\t{0xCFE0, 0xCFE0, prH2, gcLo},     //         HANGUL SYLLABLE KU\n\t{0xCFE1, 0xCFFB, prH3, gcLo},     //    [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH\n\t{0xCFFC, 0xCFFC, prH2, gcLo},     //         HANGUL SYLLABLE KWEO\n\t{0xCFFD, 0xD017, prH3, gcLo},     //    [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH\n\t{0xD018, 0xD018, prH2, gcLo},     //         HANGUL SYLLABLE KWE\n\t{0xD019, 0xD033, prH3, gcLo},     //    [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH\n\t{0xD034, 0xD034, prH2, gcLo},     //         HANGUL SYLLABLE KWI\n\t{0xD035, 0xD04F, prH3, gcLo},     //    [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH\n\t{0xD050, 0xD050, prH2, gcLo},     //         HANGUL SYLLABLE KYU\n\t{0xD051, 0xD06B, prH3, gcLo},     //    [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH\n\t{0xD06C, 0xD06C, prH2, gcLo},     //         HANGUL SYLLABLE KEU\n\t{0xD06D, 0xD087, prH3, gcLo},     //    [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH\n\t{0xD088, 0xD088, prH2, gcLo},     //         HANGUL SYLLABLE KYI\n\t{0xD089, 0xD0A3, prH3, gcLo},     //    [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH\n\t{0xD0A4, 0xD0A4, prH2, gcLo},     //         HANGUL SYLLABLE KI\n\t{0xD0A5, 0xD0BF, prH3, gcLo},     //    [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH\n\t{0xD0C0, 0xD0C0, prH2, gcLo},     //         HANGUL SYLLABLE TA\n\t{0xD0C1, 0xD0DB, prH3, gcLo},     //    [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH\n\t{0xD0DC, 0xD0DC, prH2, gcLo},     //         HANGUL SYLLABLE TAE\n\t{0xD0DD, 0xD0F7, prH3, gcLo},     //    [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH\n\t{0xD0F8, 0xD0F8, prH2, gcLo},     //         HANGUL SYLLABLE TYA\n\t{0xD0F9, 0xD113, prH3, gcLo},     //    [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH\n\t{0xD114, 0xD114, prH2, gcLo},     //         HANGUL SYLLABLE TYAE\n\t{0xD115, 0xD12F, prH3, gcLo},     //    [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH\n\t{0xD130, 0xD130, prH2, gcLo},     //         HANGUL SYLLABLE TEO\n\t{0xD131, 0xD14B, prH3, gcLo},     //    [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH\n\t{0xD14C, 0xD14C, prH2, gcLo},     //         HANGUL SYLLABLE TE\n\t{0xD14D, 0xD167, prH3, gcLo},     //    [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH\n\t{0xD168, 0xD168, prH2, gcLo},     //         HANGUL SYLLABLE TYEO\n\t{0xD169, 0xD183, prH3, gcLo},     //    [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH\n\t{0xD184, 0xD184, prH2, gcLo},     //         HANGUL SYLLABLE TYE\n\t{0xD185, 0xD19F, prH3, gcLo},     //    [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH\n\t{0xD1A0, 0xD1A0, prH2, gcLo},     //         HANGUL SYLLABLE TO\n\t{0xD1A1, 0xD1BB, prH3, gcLo},     //    [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH\n\t{0xD1BC, 0xD1BC, prH2, gcLo},     //         HANGUL SYLLABLE TWA\n\t{0xD1BD, 0xD1D7, prH3, gcLo},     //    [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH\n\t{0xD1D8, 0xD1D8, prH2, gcLo},     //         HANGUL SYLLABLE TWAE\n\t{0xD1D9, 0xD1F3, prH3, gcLo},     //    [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH\n\t{0xD1F4, 0xD1F4, prH2, gcLo},     //         HANGUL SYLLABLE TOE\n\t{0xD1F5, 0xD20F, prH3, gcLo},     //    [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH\n\t{0xD210, 0xD210, prH2, gcLo},     //         HANGUL SYLLABLE TYO\n\t{0xD211, 0xD22B, prH3, gcLo},     //    [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH\n\t{0xD22C, 0xD22C, prH2, gcLo},     //         HANGUL SYLLABLE TU\n\t{0xD22D, 0xD247, prH3, gcLo},     //    [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH\n\t{0xD248, 0xD248, prH2, gcLo},     //         HANGUL SYLLABLE TWEO\n\t{0xD249, 0xD263, prH3, gcLo},     //    [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH\n\t{0xD264, 0xD264, prH2, gcLo},     //         HANGUL SYLLABLE TWE\n\t{0xD265, 0xD27F, prH3, gcLo},     //    [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH\n\t{0xD280, 0xD280, prH2, gcLo},     //         HANGUL SYLLABLE TWI\n\t{0xD281, 0xD29B, prH3, gcLo},     //    [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH\n\t{0xD29C, 0xD29C, prH2, gcLo},     //         HANGUL SYLLABLE TYU\n\t{0xD29D, 0xD2B7, prH3, gcLo},     //    [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH\n\t{0xD2B8, 0xD2B8, prH2, gcLo},     //         HANGUL SYLLABLE TEU\n\t{0xD2B9, 0xD2D3, prH3, gcLo},     //    [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH\n\t{0xD2D4, 0xD2D4, prH2, gcLo},     //         HANGUL SYLLABLE TYI\n\t{0xD2D5, 0xD2EF, prH3, gcLo},     //    [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH\n\t{0xD2F0, 0xD2F0, prH2, gcLo},     //         HANGUL SYLLABLE TI\n\t{0xD2F1, 0xD30B, prH3, gcLo},     //    [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH\n\t{0xD30C, 0xD30C, prH2, gcLo},     //         HANGUL SYLLABLE PA\n\t{0xD30D, 0xD327, prH3, gcLo},     //    [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH\n\t{0xD328, 0xD328, prH2, gcLo},     //         HANGUL SYLLABLE PAE\n\t{0xD329, 0xD343, prH3, gcLo},     //    [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH\n\t{0xD344, 0xD344, prH2, gcLo},     //         HANGUL SYLLABLE PYA\n\t{0xD345, 0xD35F, prH3, gcLo},     //    [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH\n\t{0xD360, 0xD360, prH2, gcLo},     //         HANGUL SYLLABLE PYAE\n\t{0xD361, 0xD37B, prH3, gcLo},     //    [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH\n\t{0xD37C, 0xD37C, prH2, gcLo},     //         HANGUL SYLLABLE PEO\n\t{0xD37D, 0xD397, prH3, gcLo},     //    [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH\n\t{0xD398, 0xD398, prH2, gcLo},     //         HANGUL SYLLABLE PE\n\t{0xD399, 0xD3B3, prH3, gcLo},     //    [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH\n\t{0xD3B4, 0xD3B4, prH2, gcLo},     //         HANGUL SYLLABLE PYEO\n\t{0xD3B5, 0xD3CF, prH3, gcLo},     //    [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH\n\t{0xD3D0, 0xD3D0, prH2, gcLo},     //         HANGUL SYLLABLE PYE\n\t{0xD3D1, 0xD3EB, prH3, gcLo},     //    [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH\n\t{0xD3EC, 0xD3EC, prH2, gcLo},     //         HANGUL SYLLABLE PO\n\t{0xD3ED, 0xD407, prH3, gcLo},     //    [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH\n\t{0xD408, 0xD408, prH2, gcLo},     //         HANGUL SYLLABLE PWA\n\t{0xD409, 0xD423, prH3, gcLo},     //    [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH\n\t{0xD424, 0xD424, prH2, gcLo},     //         HANGUL SYLLABLE PWAE\n\t{0xD425, 0xD43F, prH3, gcLo},     //    [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH\n\t{0xD440, 0xD440, prH2, gcLo},     //         HANGUL SYLLABLE POE\n\t{0xD441, 0xD45B, prH3, gcLo},     //    [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH\n\t{0xD45C, 0xD45C, prH2, gcLo},     //         HANGUL SYLLABLE PYO\n\t{0xD45D, 0xD477, prH3, gcLo},     //    [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH\n\t{0xD478, 0xD478, prH2, gcLo},     //         HANGUL SYLLABLE PU\n\t{0xD479, 0xD493, prH3, gcLo},     //    [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH\n\t{0xD494, 0xD494, prH2, gcLo},     //         HANGUL SYLLABLE PWEO\n\t{0xD495, 0xD4AF, prH3, gcLo},     //    [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH\n\t{0xD4B0, 0xD4B0, prH2, gcLo},     //         HANGUL SYLLABLE PWE\n\t{0xD4B1, 0xD4CB, prH3, gcLo},     //    [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH\n\t{0xD4CC, 0xD4CC, prH2, gcLo},     //         HANGUL SYLLABLE PWI\n\t{0xD4CD, 0xD4E7, prH3, gcLo},     //    [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH\n\t{0xD4E8, 0xD4E8, prH2, gcLo},     //         HANGUL SYLLABLE PYU\n\t{0xD4E9, 0xD503, prH3, gcLo},     //    [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH\n\t{0xD504, 0xD504, prH2, gcLo},     //         HANGUL SYLLABLE PEU\n\t{0xD505, 0xD51F, prH3, gcLo},     //    [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH\n\t{0xD520, 0xD520, prH2, gcLo},     //         HANGUL SYLLABLE PYI\n\t{0xD521, 0xD53B, prH3, gcLo},     //    [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH\n\t{0xD53C, 0xD53C, prH2, gcLo},     //         HANGUL SYLLABLE PI\n\t{0xD53D, 0xD557, prH3, gcLo},     //    [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH\n\t{0xD558, 0xD558, prH2, gcLo},     //         HANGUL SYLLABLE HA\n\t{0xD559, 0xD573, prH3, gcLo},     //    [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH\n\t{0xD574, 0xD574, prH2, gcLo},     //         HANGUL SYLLABLE HAE\n\t{0xD575, 0xD58F, prH3, gcLo},     //    [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH\n\t{0xD590, 0xD590, prH2, gcLo},     //         HANGUL SYLLABLE HYA\n\t{0xD591, 0xD5AB, prH3, gcLo},     //    [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH\n\t{0xD5AC, 0xD5AC, prH2, gcLo},     //         HANGUL SYLLABLE HYAE\n\t{0xD5AD, 0xD5C7, prH3, gcLo},     //    [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH\n\t{0xD5C8, 0xD5C8, prH2, gcLo},     //         HANGUL SYLLABLE HEO\n\t{0xD5C9, 0xD5E3, prH3, gcLo},     //    [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH\n\t{0xD5E4, 0xD5E4, prH2, gcLo},     //         HANGUL SYLLABLE HE\n\t{0xD5E5, 0xD5FF, prH3, gcLo},     //    [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH\n\t{0xD600, 0xD600, prH2, gcLo},     //         HANGUL SYLLABLE HYEO\n\t{0xD601, 0xD61B, prH3, gcLo},     //    [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH\n\t{0xD61C, 0xD61C, prH2, gcLo},     //         HANGUL SYLLABLE HYE\n\t{0xD61D, 0xD637, prH3, gcLo},     //    [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH\n\t{0xD638, 0xD638, prH2, gcLo},     //         HANGUL SYLLABLE HO\n\t{0xD639, 0xD653, prH3, gcLo},     //    [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH\n\t{0xD654, 0xD654, prH2, gcLo},     //         HANGUL SYLLABLE HWA\n\t{0xD655, 0xD66F, prH3, gcLo},     //    [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH\n\t{0xD670, 0xD670, prH2, gcLo},     //         HANGUL SYLLABLE HWAE\n\t{0xD671, 0xD68B, prH3, gcLo},     //    [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH\n\t{0xD68C, 0xD68C, prH2, gcLo},     //         HANGUL SYLLABLE HOE\n\t{0xD68D, 0xD6A7, prH3, gcLo},     //    [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH\n\t{0xD6A8, 0xD6A8, prH2, gcLo},     //         HANGUL SYLLABLE HYO\n\t{0xD6A9, 0xD6C3, prH3, gcLo},     //    [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH\n\t{0xD6C4, 0xD6C4, prH2, gcLo},     //         HANGUL SYLLABLE HU\n\t{0xD6C5, 0xD6DF, prH3, gcLo},     //    [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH\n\t{0xD6E0, 0xD6E0, prH2, gcLo},     //         HANGUL SYLLABLE HWEO\n\t{0xD6E1, 0xD6FB, prH3, gcLo},     //    [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH\n\t{0xD6FC, 0xD6FC, prH2, gcLo},     //         HANGUL SYLLABLE HWE\n\t{0xD6FD, 0xD717, prH3, gcLo},     //    [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH\n\t{0xD718, 0xD718, prH2, gcLo},     //         HANGUL SYLLABLE HWI\n\t{0xD719, 0xD733, prH3, gcLo},     //    [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH\n\t{0xD734, 0xD734, prH2, gcLo},     //         HANGUL SYLLABLE HYU\n\t{0xD735, 0xD74F, prH3, gcLo},     //    [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH\n\t{0xD750, 0xD750, prH2, gcLo},     //         HANGUL SYLLABLE HEU\n\t{0xD751, 0xD76B, prH3, gcLo},     //    [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH\n\t{0xD76C, 0xD76C, prH2, gcLo},     //         HANGUL SYLLABLE HYI\n\t{0xD76D, 0xD787, prH3, gcLo},     //    [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH\n\t{0xD788, 0xD788, prH2, gcLo},     //         HANGUL SYLLABLE HI\n\t{0xD789, 0xD7A3, prH3, gcLo},     //    [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH\n\t{0xD7B0, 0xD7C6, prJV, gcLo},     //    [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E\n\t{0xD7CB, 0xD7FB, prJT, gcLo},     //    [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH\n\t{0xD800, 0xDB7F, prSG, gcCs},     //   [896] <surrogate-D800>..<surrogate-DB7F>\n\t{0xDB80, 0xDBFF, prSG, gcCs},     //   [128] <surrogate-DB80>..<surrogate-DBFF>\n\t{0xDC00, 0xDFFF, prSG, gcCs},     //  [1024] <surrogate-DC00>..<surrogate-DFFF>\n\t{0xE000, 0xF8FF, prXX, gcCo},     //  [6400] <private-use-E000>..<private-use-F8FF>\n\t{0xF900, 0xFA6D, prID, gcLo},     //   [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D\n\t{0xFA6E, 0xFA6F, prID, gcCn},     //     [2] <reserved-FA6E>..<reserved-FA6F>\n\t{0xFA70, 0xFAD9, prID, gcLo},     //   [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9\n\t{0xFADA, 0xFAFF, prID, gcCn},     //    [38] <reserved-FADA>..<reserved-FAFF>\n\t{0xFB00, 0xFB06, prAL, gcLl},     //     [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST\n\t{0xFB13, 0xFB17, prAL, gcLl},     //     [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH\n\t{0xFB1D, 0xFB1D, prHL, gcLo},     //         HEBREW LETTER YOD WITH HIRIQ\n\t{0xFB1E, 0xFB1E, prCM, gcMn},     //         HEBREW POINT JUDEO-SPANISH VARIKA\n\t{0xFB1F, 0xFB28, prHL, gcLo},     //    [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV\n\t{0xFB29, 0xFB29, prAL, gcSm},     //         HEBREW LETTER ALTERNATIVE PLUS SIGN\n\t{0xFB2A, 0xFB36, prHL, gcLo},     //    [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH\n\t{0xFB38, 0xFB3C, prHL, gcLo},     //     [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH\n\t{0xFB3E, 0xFB3E, prHL, gcLo},     //         HEBREW LETTER MEM WITH DAGESH\n\t{0xFB40, 0xFB41, prHL, gcLo},     //     [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH\n\t{0xFB43, 0xFB44, prHL, gcLo},     //     [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH\n\t{0xFB46, 0xFB4F, prHL, gcLo},     //    [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED\n\t{0xFB50, 0xFBB1, prAL, gcLo},     //    [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM\n\t{0xFBB2, 0xFBC2, prAL, gcSk},     //    [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE\n\t{0xFBD3, 0xFD3D, prAL, gcLo},     //   [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM\n\t{0xFD3E, 0xFD3E, prCL, gcPe},     //         ORNATE LEFT PARENTHESIS\n\t{0xFD3F, 0xFD3F, prOP, gcPs},     //         ORNATE RIGHT PARENTHESIS\n\t{0xFD40, 0xFD4F, prAL, gcSo},     //    [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH\n\t{0xFD50, 0xFD8F, prAL, gcLo},     //    [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM\n\t{0xFD92, 0xFDC7, prAL, gcLo},     //    [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM\n\t{0xFDCF, 0xFDCF, prAL, gcSo},     //         ARABIC LIGATURE SALAAMUHU ALAYNAA\n\t{0xFDF0, 0xFDFB, prAL, gcLo},     //    [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU\n\t{0xFDFC, 0xFDFC, prPO, gcSc},     //         RIAL SIGN\n\t{0xFDFD, 0xFDFF, prAL, gcSo},     //     [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL\n\t{0xFE00, 0xFE0F, prCM, gcMn},     //    [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16\n\t{0xFE10, 0xFE10, prIS, gcPo},     //         PRESENTATION FORM FOR VERTICAL COMMA\n\t{0xFE11, 0xFE12, prCL, gcPo},     //     [2] PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA..PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP\n\t{0xFE13, 0xFE14, prIS, gcPo},     //     [2] PRESENTATION FORM FOR VERTICAL COLON..PRESENTATION FORM FOR VERTICAL SEMICOLON\n\t{0xFE15, 0xFE16, prEX, gcPo},     //     [2] PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK..PRESENTATION FORM FOR VERTICAL QUESTION MARK\n\t{0xFE17, 0xFE17, prOP, gcPs},     //         PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET\n\t{0xFE18, 0xFE18, prCL, gcPe},     //         PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET\n\t{0xFE19, 0xFE19, prIN, gcPo},     //         PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS\n\t{0xFE20, 0xFE2F, prCM, gcMn},     //    [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF\n\t{0xFE30, 0xFE30, prID, gcPo},     //         PRESENTATION FORM FOR VERTICAL TWO DOT LEADER\n\t{0xFE31, 0xFE32, prID, gcPd},     //     [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH\n\t{0xFE33, 0xFE34, prID, gcPc},     //     [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE\n\t{0xFE35, 0xFE35, prOP, gcPs},     //         PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS\n\t{0xFE36, 0xFE36, prCL, gcPe},     //         PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS\n\t{0xFE37, 0xFE37, prOP, gcPs},     //         PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET\n\t{0xFE38, 0xFE38, prCL, gcPe},     //         PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET\n\t{0xFE39, 0xFE39, prOP, gcPs},     //         PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET\n\t{0xFE3A, 0xFE3A, prCL, gcPe},     //         PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET\n\t{0xFE3B, 0xFE3B, prOP, gcPs},     //         PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET\n\t{0xFE3C, 0xFE3C, prCL, gcPe},     //         PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET\n\t{0xFE3D, 0xFE3D, prOP, gcPs},     //         PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET\n\t{0xFE3E, 0xFE3E, prCL, gcPe},     //         PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET\n\t{0xFE3F, 0xFE3F, prOP, gcPs},     //         PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET\n\t{0xFE40, 0xFE40, prCL, gcPe},     //         PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET\n\t{0xFE41, 0xFE41, prOP, gcPs},     //         PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET\n\t{0xFE42, 0xFE42, prCL, gcPe},     //         PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET\n\t{0xFE43, 0xFE43, prOP, gcPs},     //         PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET\n\t{0xFE44, 0xFE44, prCL, gcPe},     //         PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET\n\t{0xFE45, 0xFE46, prID, gcPo},     //     [2] SESAME DOT..WHITE SESAME DOT\n\t{0xFE47, 0xFE47, prOP, gcPs},     //         PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET\n\t{0xFE48, 0xFE48, prCL, gcPe},     //         PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET\n\t{0xFE49, 0xFE4C, prID, gcPo},     //     [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE\n\t{0xFE4D, 0xFE4F, prID, gcPc},     //     [3] DASHED LOW LINE..WAVY LOW LINE\n\t{0xFE50, 0xFE50, prCL, gcPo},     //         SMALL COMMA\n\t{0xFE51, 0xFE51, prID, gcPo},     //         SMALL IDEOGRAPHIC COMMA\n\t{0xFE52, 0xFE52, prCL, gcPo},     //         SMALL FULL STOP\n\t{0xFE54, 0xFE55, prNS, gcPo},     //     [2] SMALL SEMICOLON..SMALL COLON\n\t{0xFE56, 0xFE57, prEX, gcPo},     //     [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK\n\t{0xFE58, 0xFE58, prID, gcPd},     //         SMALL EM DASH\n\t{0xFE59, 0xFE59, prOP, gcPs},     //         SMALL LEFT PARENTHESIS\n\t{0xFE5A, 0xFE5A, prCL, gcPe},     //         SMALL RIGHT PARENTHESIS\n\t{0xFE5B, 0xFE5B, prOP, gcPs},     //         SMALL LEFT CURLY BRACKET\n\t{0xFE5C, 0xFE5C, prCL, gcPe},     //         SMALL RIGHT CURLY BRACKET\n\t{0xFE5D, 0xFE5D, prOP, gcPs},     //         SMALL LEFT TORTOISE SHELL BRACKET\n\t{0xFE5E, 0xFE5E, prCL, gcPe},     //         SMALL RIGHT TORTOISE SHELL BRACKET\n\t{0xFE5F, 0xFE61, prID, gcPo},     //     [3] SMALL NUMBER SIGN..SMALL ASTERISK\n\t{0xFE62, 0xFE62, prID, gcSm},     //         SMALL PLUS SIGN\n\t{0xFE63, 0xFE63, prID, gcPd},     //         SMALL HYPHEN-MINUS\n\t{0xFE64, 0xFE66, prID, gcSm},     //     [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN\n\t{0xFE68, 0xFE68, prID, gcPo},     //         SMALL REVERSE SOLIDUS\n\t{0xFE69, 0xFE69, prPR, gcSc},     //         SMALL DOLLAR SIGN\n\t{0xFE6A, 0xFE6A, prPO, gcPo},     //         SMALL PERCENT SIGN\n\t{0xFE6B, 0xFE6B, prID, gcPo},     //         SMALL COMMERCIAL AT\n\t{0xFE70, 0xFE74, prAL, gcLo},     //     [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM\n\t{0xFE76, 0xFEFC, prAL, gcLo},     //   [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n\t{0xFEFF, 0xFEFF, prWJ, gcCf},     //         ZERO WIDTH NO-BREAK SPACE\n\t{0xFF01, 0xFF01, prEX, gcPo},     //         FULLWIDTH EXCLAMATION MARK\n\t{0xFF02, 0xFF03, prID, gcPo},     //     [2] FULLWIDTH QUOTATION MARK..FULLWIDTH NUMBER SIGN\n\t{0xFF04, 0xFF04, prPR, gcSc},     //         FULLWIDTH DOLLAR SIGN\n\t{0xFF05, 0xFF05, prPO, gcPo},     //         FULLWIDTH PERCENT SIGN\n\t{0xFF06, 0xFF07, prID, gcPo},     //     [2] FULLWIDTH AMPERSAND..FULLWIDTH APOSTROPHE\n\t{0xFF08, 0xFF08, prOP, gcPs},     //         FULLWIDTH LEFT PARENTHESIS\n\t{0xFF09, 0xFF09, prCL, gcPe},     //         FULLWIDTH RIGHT PARENTHESIS\n\t{0xFF0A, 0xFF0A, prID, gcPo},     //         FULLWIDTH ASTERISK\n\t{0xFF0B, 0xFF0B, prID, gcSm},     //         FULLWIDTH PLUS SIGN\n\t{0xFF0C, 0xFF0C, prCL, gcPo},     //         FULLWIDTH COMMA\n\t{0xFF0D, 0xFF0D, prID, gcPd},     //         FULLWIDTH HYPHEN-MINUS\n\t{0xFF0E, 0xFF0E, prCL, gcPo},     //         FULLWIDTH FULL STOP\n\t{0xFF0F, 0xFF0F, prID, gcPo},     //         FULLWIDTH SOLIDUS\n\t{0xFF10, 0xFF19, prID, gcNd},     //    [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE\n\t{0xFF1A, 0xFF1B, prNS, gcPo},     //     [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON\n\t{0xFF1C, 0xFF1E, prID, gcSm},     //     [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN\n\t{0xFF1F, 0xFF1F, prEX, gcPo},     //         FULLWIDTH QUESTION MARK\n\t{0xFF20, 0xFF20, prID, gcPo},     //         FULLWIDTH COMMERCIAL AT\n\t{0xFF21, 0xFF3A, prID, gcLu},     //    [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z\n\t{0xFF3B, 0xFF3B, prOP, gcPs},     //         FULLWIDTH LEFT SQUARE BRACKET\n\t{0xFF3C, 0xFF3C, prID, gcPo},     //         FULLWIDTH REVERSE SOLIDUS\n\t{0xFF3D, 0xFF3D, prCL, gcPe},     //         FULLWIDTH RIGHT SQUARE BRACKET\n\t{0xFF3E, 0xFF3E, prID, gcSk},     //         FULLWIDTH CIRCUMFLEX ACCENT\n\t{0xFF3F, 0xFF3F, prID, gcPc},     //         FULLWIDTH LOW LINE\n\t{0xFF40, 0xFF40, prID, gcSk},     //         FULLWIDTH GRAVE ACCENT\n\t{0xFF41, 0xFF5A, prID, gcLl},     //    [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z\n\t{0xFF5B, 0xFF5B, prOP, gcPs},     //         FULLWIDTH LEFT CURLY BRACKET\n\t{0xFF5C, 0xFF5C, prID, gcSm},     //         FULLWIDTH VERTICAL LINE\n\t{0xFF5D, 0xFF5D, prCL, gcPe},     //         FULLWIDTH RIGHT CURLY BRACKET\n\t{0xFF5E, 0xFF5E, prID, gcSm},     //         FULLWIDTH TILDE\n\t{0xFF5F, 0xFF5F, prOP, gcPs},     //         FULLWIDTH LEFT WHITE PARENTHESIS\n\t{0xFF60, 0xFF60, prCL, gcPe},     //         FULLWIDTH RIGHT WHITE PARENTHESIS\n\t{0xFF61, 0xFF61, prCL, gcPo},     //         HALFWIDTH IDEOGRAPHIC FULL STOP\n\t{0xFF62, 0xFF62, prOP, gcPs},     //         HALFWIDTH LEFT CORNER BRACKET\n\t{0xFF63, 0xFF63, prCL, gcPe},     //         HALFWIDTH RIGHT CORNER BRACKET\n\t{0xFF64, 0xFF64, prCL, gcPo},     //         HALFWIDTH IDEOGRAPHIC COMMA\n\t{0xFF65, 0xFF65, prNS, gcPo},     //         HALFWIDTH KATAKANA MIDDLE DOT\n\t{0xFF66, 0xFF66, prID, gcLo},     //         HALFWIDTH KATAKANA LETTER WO\n\t{0xFF67, 0xFF6F, prCJ, gcLo},     //     [9] HALFWIDTH KATAKANA LETTER SMALL A..HALFWIDTH KATAKANA LETTER SMALL TU\n\t{0xFF70, 0xFF70, prCJ, gcLm},     //         HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK\n\t{0xFF71, 0xFF9D, prID, gcLo},     //    [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N\n\t{0xFF9E, 0xFF9F, prNS, gcLm},     //     [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK\n\t{0xFFA0, 0xFFBE, prID, gcLo},     //    [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH\n\t{0xFFC2, 0xFFC7, prID, gcLo},     //     [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E\n\t{0xFFCA, 0xFFCF, prID, gcLo},     //     [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE\n\t{0xFFD2, 0xFFD7, prID, gcLo},     //     [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU\n\t{0xFFDA, 0xFFDC, prID, gcLo},     //     [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I\n\t{0xFFE0, 0xFFE0, prPO, gcSc},     //         FULLWIDTH CENT SIGN\n\t{0xFFE1, 0xFFE1, prPR, gcSc},     //         FULLWIDTH POUND SIGN\n\t{0xFFE2, 0xFFE2, prID, gcSm},     //         FULLWIDTH NOT SIGN\n\t{0xFFE3, 0xFFE3, prID, gcSk},     //         FULLWIDTH MACRON\n\t{0xFFE4, 0xFFE4, prID, gcSo},     //         FULLWIDTH BROKEN BAR\n\t{0xFFE5, 0xFFE6, prPR, gcSc},     //     [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN\n\t{0xFFE8, 0xFFE8, prAL, gcSo},     //         HALFWIDTH FORMS LIGHT VERTICAL\n\t{0xFFE9, 0xFFEC, prAL, gcSm},     //     [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW\n\t{0xFFED, 0xFFEE, prAL, gcSo},     //     [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE\n\t{0xFFF9, 0xFFFB, prCM, gcCf},     //     [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR\n\t{0xFFFC, 0xFFFC, prCB, gcSo},     //         OBJECT REPLACEMENT CHARACTER\n\t{0xFFFD, 0xFFFD, prAI, gcSo},     //         REPLACEMENT CHARACTER\n\t{0x10000, 0x1000B, prAL, gcLo},   //    [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE\n\t{0x1000D, 0x10026, prAL, gcLo},   //    [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO\n\t{0x10028, 0x1003A, prAL, gcLo},   //    [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO\n\t{0x1003C, 0x1003D, prAL, gcLo},   //     [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE\n\t{0x1003F, 0x1004D, prAL, gcLo},   //    [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO\n\t{0x10050, 0x1005D, prAL, gcLo},   //    [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089\n\t{0x10080, 0x100FA, prAL, gcLo},   //   [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305\n\t{0x10100, 0x10102, prBA, gcPo},   //     [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK\n\t{0x10107, 0x10133, prAL, gcNo},   //    [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND\n\t{0x10137, 0x1013F, prAL, gcSo},   //     [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT\n\t{0x10140, 0x10174, prAL, gcNl},   //    [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS\n\t{0x10175, 0x10178, prAL, gcNo},   //     [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN\n\t{0x10179, 0x10189, prAL, gcSo},   //    [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN\n\t{0x1018A, 0x1018B, prAL, gcNo},   //     [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN\n\t{0x1018C, 0x1018E, prAL, gcSo},   //     [3] GREEK SINUSOID SIGN..NOMISMA SIGN\n\t{0x10190, 0x1019C, prAL, gcSo},   //    [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL\n\t{0x101A0, 0x101A0, prAL, gcSo},   //         GREEK SYMBOL TAU RHO\n\t{0x101D0, 0x101FC, prAL, gcSo},   //    [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND\n\t{0x101FD, 0x101FD, prCM, gcMn},   //         PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE\n\t{0x10280, 0x1029C, prAL, gcLo},   //    [29] LYCIAN LETTER A..LYCIAN LETTER X\n\t{0x102A0, 0x102D0, prAL, gcLo},   //    [49] CARIAN LETTER A..CARIAN LETTER UUU3\n\t{0x102E0, 0x102E0, prCM, gcMn},   //         COPTIC EPACT THOUSANDS MARK\n\t{0x102E1, 0x102FB, prAL, gcNo},   //    [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED\n\t{0x10300, 0x1031F, prAL, gcLo},   //    [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS\n\t{0x10320, 0x10323, prAL, gcNo},   //     [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY\n\t{0x1032D, 0x1032F, prAL, gcLo},   //     [3] OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE\n\t{0x10330, 0x10340, prAL, gcLo},   //    [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA\n\t{0x10341, 0x10341, prAL, gcNl},   //         GOTHIC LETTER NINETY\n\t{0x10342, 0x10349, prAL, gcLo},   //     [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL\n\t{0x1034A, 0x1034A, prAL, gcNl},   //         GOTHIC LETTER NINE HUNDRED\n\t{0x10350, 0x10375, prAL, gcLo},   //    [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA\n\t{0x10376, 0x1037A, prCM, gcMn},   //     [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII\n\t{0x10380, 0x1039D, prAL, gcLo},   //    [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU\n\t{0x1039F, 0x1039F, prBA, gcPo},   //         UGARITIC WORD DIVIDER\n\t{0x103A0, 0x103C3, prAL, gcLo},   //    [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA\n\t{0x103C8, 0x103CF, prAL, gcLo},   //     [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH\n\t{0x103D0, 0x103D0, prBA, gcPo},   //         OLD PERSIAN WORD DIVIDER\n\t{0x103D1, 0x103D5, prAL, gcNl},   //     [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED\n\t{0x10400, 0x1044F, prAL, gcLC},   //    [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW\n\t{0x10450, 0x1047F, prAL, gcLo},   //    [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW\n\t{0x10480, 0x1049D, prAL, gcLo},   //    [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO\n\t{0x104A0, 0x104A9, prNU, gcNd},   //    [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE\n\t{0x104B0, 0x104D3, prAL, gcLu},   //    [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA\n\t{0x104D8, 0x104FB, prAL, gcLl},   //    [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA\n\t{0x10500, 0x10527, prAL, gcLo},   //    [40] ELBASAN LETTER A..ELBASAN LETTER KHE\n\t{0x10530, 0x10563, prAL, gcLo},   //    [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW\n\t{0x1056F, 0x1056F, prAL, gcPo},   //         CAUCASIAN ALBANIAN CITATION MARK\n\t{0x10570, 0x1057A, prAL, gcLu},   //    [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA\n\t{0x1057C, 0x1058A, prAL, gcLu},   //    [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE\n\t{0x1058C, 0x10592, prAL, gcLu},   //     [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE\n\t{0x10594, 0x10595, prAL, gcLu},   //     [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE\n\t{0x10597, 0x105A1, prAL, gcLl},   //    [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA\n\t{0x105A3, 0x105B1, prAL, gcLl},   //    [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE\n\t{0x105B3, 0x105B9, prAL, gcLl},   //     [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE\n\t{0x105BB, 0x105BC, prAL, gcLl},   //     [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE\n\t{0x10600, 0x10736, prAL, gcLo},   //   [311] LINEAR A SIGN AB001..LINEAR A SIGN A664\n\t{0x10740, 0x10755, prAL, gcLo},   //    [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE\n\t{0x10760, 0x10767, prAL, gcLo},   //     [8] LINEAR A SIGN A800..LINEAR A SIGN A807\n\t{0x10780, 0x10785, prAL, gcLm},   //     [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK\n\t{0x10787, 0x107B0, prAL, gcLm},   //    [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK\n\t{0x107B2, 0x107BA, prAL, gcLm},   //     [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL\n\t{0x10800, 0x10805, prAL, gcLo},   //     [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA\n\t{0x10808, 0x10808, prAL, gcLo},   //         CYPRIOT SYLLABLE JO\n\t{0x1080A, 0x10835, prAL, gcLo},   //    [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO\n\t{0x10837, 0x10838, prAL, gcLo},   //     [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE\n\t{0x1083C, 0x1083C, prAL, gcLo},   //         CYPRIOT SYLLABLE ZA\n\t{0x1083F, 0x1083F, prAL, gcLo},   //         CYPRIOT SYLLABLE ZO\n\t{0x10840, 0x10855, prAL, gcLo},   //    [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW\n\t{0x10857, 0x10857, prBA, gcPo},   //         IMPERIAL ARAMAIC SECTION SIGN\n\t{0x10858, 0x1085F, prAL, gcNo},   //     [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND\n\t{0x10860, 0x10876, prAL, gcLo},   //    [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW\n\t{0x10877, 0x10878, prAL, gcSo},   //     [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON\n\t{0x10879, 0x1087F, prAL, gcNo},   //     [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY\n\t{0x10880, 0x1089E, prAL, gcLo},   //    [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW\n\t{0x108A7, 0x108AF, prAL, gcNo},   //     [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED\n\t{0x108E0, 0x108F2, prAL, gcLo},   //    [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH\n\t{0x108F4, 0x108F5, prAL, gcLo},   //     [2] HATRAN LETTER SHIN..HATRAN LETTER TAW\n\t{0x108FB, 0x108FF, prAL, gcNo},   //     [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED\n\t{0x10900, 0x10915, prAL, gcLo},   //    [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU\n\t{0x10916, 0x1091B, prAL, gcNo},   //     [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE\n\t{0x1091F, 0x1091F, prBA, gcPo},   //         PHOENICIAN WORD SEPARATOR\n\t{0x10920, 0x10939, prAL, gcLo},   //    [26] LYDIAN LETTER A..LYDIAN LETTER C\n\t{0x1093F, 0x1093F, prAL, gcPo},   //         LYDIAN TRIANGULAR MARK\n\t{0x10980, 0x1099F, prAL, gcLo},   //    [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2\n\t{0x109A0, 0x109B7, prAL, gcLo},   //    [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA\n\t{0x109BC, 0x109BD, prAL, gcNo},   //     [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF\n\t{0x109BE, 0x109BF, prAL, gcLo},   //     [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN\n\t{0x109C0, 0x109CF, prAL, gcNo},   //    [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY\n\t{0x109D2, 0x109FF, prAL, gcNo},   //    [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS\n\t{0x10A00, 0x10A00, prAL, gcLo},   //         KHAROSHTHI LETTER A\n\t{0x10A01, 0x10A03, prCM, gcMn},   //     [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R\n\t{0x10A05, 0x10A06, prCM, gcMn},   //     [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O\n\t{0x10A0C, 0x10A0F, prCM, gcMn},   //     [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA\n\t{0x10A10, 0x10A13, prAL, gcLo},   //     [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA\n\t{0x10A15, 0x10A17, prAL, gcLo},   //     [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA\n\t{0x10A19, 0x10A35, prAL, gcLo},   //    [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA\n\t{0x10A38, 0x10A3A, prCM, gcMn},   //     [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW\n\t{0x10A3F, 0x10A3F, prCM, gcMn},   //         KHAROSHTHI VIRAMA\n\t{0x10A40, 0x10A48, prAL, gcNo},   //     [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF\n\t{0x10A50, 0x10A57, prBA, gcPo},   //     [8] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION DOUBLE DANDA\n\t{0x10A58, 0x10A58, prAL, gcPo},   //         KHAROSHTHI PUNCTUATION LINES\n\t{0x10A60, 0x10A7C, prAL, gcLo},   //    [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH\n\t{0x10A7D, 0x10A7E, prAL, gcNo},   //     [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY\n\t{0x10A7F, 0x10A7F, prAL, gcPo},   //         OLD SOUTH ARABIAN NUMERIC INDICATOR\n\t{0x10A80, 0x10A9C, prAL, gcLo},   //    [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH\n\t{0x10A9D, 0x10A9F, prAL, gcNo},   //     [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY\n\t{0x10AC0, 0x10AC7, prAL, gcLo},   //     [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW\n\t{0x10AC8, 0x10AC8, prAL, gcSo},   //         MANICHAEAN SIGN UD\n\t{0x10AC9, 0x10AE4, prAL, gcLo},   //    [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW\n\t{0x10AE5, 0x10AE6, prCM, gcMn},   //     [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW\n\t{0x10AEB, 0x10AEF, prAL, gcNo},   //     [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED\n\t{0x10AF0, 0x10AF5, prBA, gcPo},   //     [6] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION TWO DOTS\n\t{0x10AF6, 0x10AF6, prIN, gcPo},   //         MANICHAEAN PUNCTUATION LINE FILLER\n\t{0x10B00, 0x10B35, prAL, gcLo},   //    [54] AVESTAN LETTER A..AVESTAN LETTER HE\n\t{0x10B39, 0x10B3F, prBA, gcPo},   //     [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION\n\t{0x10B40, 0x10B55, prAL, gcLo},   //    [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW\n\t{0x10B58, 0x10B5F, prAL, gcNo},   //     [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND\n\t{0x10B60, 0x10B72, prAL, gcLo},   //    [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW\n\t{0x10B78, 0x10B7F, prAL, gcNo},   //     [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND\n\t{0x10B80, 0x10B91, prAL, gcLo},   //    [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW\n\t{0x10B99, 0x10B9C, prAL, gcPo},   //     [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT\n\t{0x10BA9, 0x10BAF, prAL, gcNo},   //     [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED\n\t{0x10C00, 0x10C48, prAL, gcLo},   //    [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH\n\t{0x10C80, 0x10CB2, prAL, gcLu},   //    [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US\n\t{0x10CC0, 0x10CF2, prAL, gcLl},   //    [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US\n\t{0x10CFA, 0x10CFF, prAL, gcNo},   //     [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND\n\t{0x10D00, 0x10D23, prAL, gcLo},   //    [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA\n\t{0x10D24, 0x10D27, prCM, gcMn},   //     [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI\n\t{0x10D30, 0x10D39, prNU, gcNd},   //    [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE\n\t{0x10E60, 0x10E7E, prAL, gcNo},   //    [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS\n\t{0x10E80, 0x10EA9, prAL, gcLo},   //    [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET\n\t{0x10EAB, 0x10EAC, prCM, gcMn},   //     [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK\n\t{0x10EAD, 0x10EAD, prBA, gcPd},   //         YEZIDI HYPHENATION MARK\n\t{0x10EB0, 0x10EB1, prAL, gcLo},   //     [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE\n\t{0x10EFD, 0x10EFF, prCM, gcMn},   //     [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA\n\t{0x10F00, 0x10F1C, prAL, gcLo},   //    [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL\n\t{0x10F1D, 0x10F26, prAL, gcNo},   //    [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF\n\t{0x10F27, 0x10F27, prAL, gcLo},   //         OLD SOGDIAN LIGATURE AYIN-DALETH\n\t{0x10F30, 0x10F45, prAL, gcLo},   //    [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN\n\t{0x10F46, 0x10F50, prCM, gcMn},   //    [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW\n\t{0x10F51, 0x10F54, prAL, gcNo},   //     [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED\n\t{0x10F55, 0x10F59, prAL, gcPo},   //     [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT\n\t{0x10F70, 0x10F81, prAL, gcLo},   //    [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH\n\t{0x10F82, 0x10F85, prCM, gcMn},   //     [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW\n\t{0x10F86, 0x10F89, prAL, gcPo},   //     [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS\n\t{0x10FB0, 0x10FC4, prAL, gcLo},   //    [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW\n\t{0x10FC5, 0x10FCB, prAL, gcNo},   //     [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED\n\t{0x10FE0, 0x10FF6, prAL, gcLo},   //    [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH\n\t{0x11000, 0x11000, prCM, gcMc},   //         BRAHMI SIGN CANDRABINDU\n\t{0x11001, 0x11001, prCM, gcMn},   //         BRAHMI SIGN ANUSVARA\n\t{0x11002, 0x11002, prCM, gcMc},   //         BRAHMI SIGN VISARGA\n\t{0x11003, 0x11037, prAL, gcLo},   //    [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA\n\t{0x11038, 0x11046, prCM, gcMn},   //    [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA\n\t{0x11047, 0x11048, prBA, gcPo},   //     [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA\n\t{0x11049, 0x1104D, prAL, gcPo},   //     [5] BRAHMI PUNCTUATION DOT..BRAHMI PUNCTUATION LOTUS\n\t{0x11052, 0x11065, prAL, gcNo},   //    [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND\n\t{0x11066, 0x1106F, prNU, gcNd},   //    [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE\n\t{0x11070, 0x11070, prCM, gcMn},   //         BRAHMI SIGN OLD TAMIL VIRAMA\n\t{0x11071, 0x11072, prAL, gcLo},   //     [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O\n\t{0x11073, 0x11074, prCM, gcMn},   //     [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O\n\t{0x11075, 0x11075, prAL, gcLo},   //         BRAHMI LETTER OLD TAMIL LLA\n\t{0x1107F, 0x1107F, prCM, gcMn},   //         BRAHMI NUMBER JOINER\n\t{0x11080, 0x11081, prCM, gcMn},   //     [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA\n\t{0x11082, 0x11082, prCM, gcMc},   //         KAITHI SIGN VISARGA\n\t{0x11083, 0x110AF, prAL, gcLo},   //    [45] KAITHI LETTER A..KAITHI LETTER HA\n\t{0x110B0, 0x110B2, prCM, gcMc},   //     [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II\n\t{0x110B3, 0x110B6, prCM, gcMn},   //     [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI\n\t{0x110B7, 0x110B8, prCM, gcMc},   //     [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU\n\t{0x110B9, 0x110BA, prCM, gcMn},   //     [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA\n\t{0x110BB, 0x110BC, prAL, gcPo},   //     [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN\n\t{0x110BD, 0x110BD, prAL, gcCf},   //         KAITHI NUMBER SIGN\n\t{0x110BE, 0x110C1, prBA, gcPo},   //     [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA\n\t{0x110C2, 0x110C2, prCM, gcMn},   //         KAITHI VOWEL SIGN VOCALIC R\n\t{0x110CD, 0x110CD, prAL, gcCf},   //         KAITHI NUMBER SIGN ABOVE\n\t{0x110D0, 0x110E8, prAL, gcLo},   //    [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE\n\t{0x110F0, 0x110F9, prNU, gcNd},   //    [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE\n\t{0x11100, 0x11102, prCM, gcMn},   //     [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA\n\t{0x11103, 0x11126, prAL, gcLo},   //    [36] CHAKMA LETTER AA..CHAKMA LETTER HAA\n\t{0x11127, 0x1112B, prCM, gcMn},   //     [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU\n\t{0x1112C, 0x1112C, prCM, gcMc},   //         CHAKMA VOWEL SIGN E\n\t{0x1112D, 0x11134, prCM, gcMn},   //     [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA\n\t{0x11136, 0x1113F, prNU, gcNd},   //    [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE\n\t{0x11140, 0x11143, prBA, gcPo},   //     [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK\n\t{0x11144, 0x11144, prAL, gcLo},   //         CHAKMA LETTER LHAA\n\t{0x11145, 0x11146, prCM, gcMc},   //     [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI\n\t{0x11147, 0x11147, prAL, gcLo},   //         CHAKMA LETTER VAA\n\t{0x11150, 0x11172, prAL, gcLo},   //    [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA\n\t{0x11173, 0x11173, prCM, gcMn},   //         MAHAJANI SIGN NUKTA\n\t{0x11174, 0x11174, prAL, gcPo},   //         MAHAJANI ABBREVIATION SIGN\n\t{0x11175, 0x11175, prBB, gcPo},   //         MAHAJANI SECTION MARK\n\t{0x11176, 0x11176, prAL, gcLo},   //         MAHAJANI LIGATURE SHRI\n\t{0x11180, 0x11181, prCM, gcMn},   //     [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA\n\t{0x11182, 0x11182, prCM, gcMc},   //         SHARADA SIGN VISARGA\n\t{0x11183, 0x111B2, prAL, gcLo},   //    [48] SHARADA LETTER A..SHARADA LETTER HA\n\t{0x111B3, 0x111B5, prCM, gcMc},   //     [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II\n\t{0x111B6, 0x111BE, prCM, gcMn},   //     [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O\n\t{0x111BF, 0x111C0, prCM, gcMc},   //     [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA\n\t{0x111C1, 0x111C4, prAL, gcLo},   //     [4] SHARADA SIGN AVAGRAHA..SHARADA OM\n\t{0x111C5, 0x111C6, prBA, gcPo},   //     [2] SHARADA DANDA..SHARADA DOUBLE DANDA\n\t{0x111C7, 0x111C7, prAL, gcPo},   //         SHARADA ABBREVIATION SIGN\n\t{0x111C8, 0x111C8, prBA, gcPo},   //         SHARADA SEPARATOR\n\t{0x111C9, 0x111CC, prCM, gcMn},   //     [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK\n\t{0x111CD, 0x111CD, prAL, gcPo},   //         SHARADA SUTRA MARK\n\t{0x111CE, 0x111CE, prCM, gcMc},   //         SHARADA VOWEL SIGN PRISHTHAMATRA E\n\t{0x111CF, 0x111CF, prCM, gcMn},   //         SHARADA SIGN INVERTED CANDRABINDU\n\t{0x111D0, 0x111D9, prNU, gcNd},   //    [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE\n\t{0x111DA, 0x111DA, prAL, gcLo},   //         SHARADA EKAM\n\t{0x111DB, 0x111DB, prBB, gcPo},   //         SHARADA SIGN SIDDHAM\n\t{0x111DC, 0x111DC, prAL, gcLo},   //         SHARADA HEADSTROKE\n\t{0x111DD, 0x111DF, prBA, gcPo},   //     [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2\n\t{0x111E1, 0x111F4, prAL, gcNo},   //    [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND\n\t{0x11200, 0x11211, prAL, gcLo},   //    [18] KHOJKI LETTER A..KHOJKI LETTER JJA\n\t{0x11213, 0x1122B, prAL, gcLo},   //    [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA\n\t{0x1122C, 0x1122E, prCM, gcMc},   //     [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II\n\t{0x1122F, 0x11231, prCM, gcMn},   //     [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI\n\t{0x11232, 0x11233, prCM, gcMc},   //     [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU\n\t{0x11234, 0x11234, prCM, gcMn},   //         KHOJKI SIGN ANUSVARA\n\t{0x11235, 0x11235, prCM, gcMc},   //         KHOJKI SIGN VIRAMA\n\t{0x11236, 0x11237, prCM, gcMn},   //     [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA\n\t{0x11238, 0x11239, prBA, gcPo},   //     [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA\n\t{0x1123A, 0x1123A, prAL, gcPo},   //         KHOJKI WORD SEPARATOR\n\t{0x1123B, 0x1123C, prBA, gcPo},   //     [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK\n\t{0x1123D, 0x1123D, prAL, gcPo},   //         KHOJKI ABBREVIATION SIGN\n\t{0x1123E, 0x1123E, prCM, gcMn},   //         KHOJKI SIGN SUKUN\n\t{0x1123F, 0x11240, prAL, gcLo},   //     [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I\n\t{0x11241, 0x11241, prCM, gcMn},   //         KHOJKI VOWEL SIGN VOCALIC R\n\t{0x11280, 0x11286, prAL, gcLo},   //     [7] MULTANI LETTER A..MULTANI LETTER GA\n\t{0x11288, 0x11288, prAL, gcLo},   //         MULTANI LETTER GHA\n\t{0x1128A, 0x1128D, prAL, gcLo},   //     [4] MULTANI LETTER CA..MULTANI LETTER JJA\n\t{0x1128F, 0x1129D, prAL, gcLo},   //    [15] MULTANI LETTER NYA..MULTANI LETTER BA\n\t{0x1129F, 0x112A8, prAL, gcLo},   //    [10] MULTANI LETTER BHA..MULTANI LETTER RHA\n\t{0x112A9, 0x112A9, prBA, gcPo},   //         MULTANI SECTION MARK\n\t{0x112B0, 0x112DE, prAL, gcLo},   //    [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA\n\t{0x112DF, 0x112DF, prCM, gcMn},   //         KHUDAWADI SIGN ANUSVARA\n\t{0x112E0, 0x112E2, prCM, gcMc},   //     [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II\n\t{0x112E3, 0x112EA, prCM, gcMn},   //     [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA\n\t{0x112F0, 0x112F9, prNU, gcNd},   //    [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE\n\t{0x11300, 0x11301, prCM, gcMn},   //     [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU\n\t{0x11302, 0x11303, prCM, gcMc},   //     [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA\n\t{0x11305, 0x1130C, prAL, gcLo},   //     [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L\n\t{0x1130F, 0x11310, prAL, gcLo},   //     [2] GRANTHA LETTER EE..GRANTHA LETTER AI\n\t{0x11313, 0x11328, prAL, gcLo},   //    [22] GRANTHA LETTER OO..GRANTHA LETTER NA\n\t{0x1132A, 0x11330, prAL, gcLo},   //     [7] GRANTHA LETTER PA..GRANTHA LETTER RA\n\t{0x11332, 0x11333, prAL, gcLo},   //     [2] GRANTHA LETTER LA..GRANTHA LETTER LLA\n\t{0x11335, 0x11339, prAL, gcLo},   //     [5] GRANTHA LETTER VA..GRANTHA LETTER HA\n\t{0x1133B, 0x1133C, prCM, gcMn},   //     [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA\n\t{0x1133D, 0x1133D, prAL, gcLo},   //         GRANTHA SIGN AVAGRAHA\n\t{0x1133E, 0x1133F, prCM, gcMc},   //     [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I\n\t{0x11340, 0x11340, prCM, gcMn},   //         GRANTHA VOWEL SIGN II\n\t{0x11341, 0x11344, prCM, gcMc},   //     [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR\n\t{0x11347, 0x11348, prCM, gcMc},   //     [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI\n\t{0x1134B, 0x1134D, prCM, gcMc},   //     [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA\n\t{0x11350, 0x11350, prAL, gcLo},   //         GRANTHA OM\n\t{0x11357, 0x11357, prCM, gcMc},   //         GRANTHA AU LENGTH MARK\n\t{0x1135D, 0x11361, prAL, gcLo},   //     [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL\n\t{0x11362, 0x11363, prCM, gcMc},   //     [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL\n\t{0x11366, 0x1136C, prCM, gcMn},   //     [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX\n\t{0x11370, 0x11374, prCM, gcMn},   //     [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA\n\t{0x11400, 0x11434, prAL, gcLo},   //    [53] NEWA LETTER A..NEWA LETTER HA\n\t{0x11435, 0x11437, prCM, gcMc},   //     [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II\n\t{0x11438, 0x1143F, prCM, gcMn},   //     [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI\n\t{0x11440, 0x11441, prCM, gcMc},   //     [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU\n\t{0x11442, 0x11444, prCM, gcMn},   //     [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA\n\t{0x11445, 0x11445, prCM, gcMc},   //         NEWA SIGN VISARGA\n\t{0x11446, 0x11446, prCM, gcMn},   //         NEWA SIGN NUKTA\n\t{0x11447, 0x1144A, prAL, gcLo},   //     [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI\n\t{0x1144B, 0x1144E, prBA, gcPo},   //     [4] NEWA DANDA..NEWA GAP FILLER\n\t{0x1144F, 0x1144F, prAL, gcPo},   //         NEWA ABBREVIATION SIGN\n\t{0x11450, 0x11459, prNU, gcNd},   //    [10] NEWA DIGIT ZERO..NEWA DIGIT NINE\n\t{0x1145A, 0x1145B, prBA, gcPo},   //     [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK\n\t{0x1145D, 0x1145D, prAL, gcPo},   //         NEWA INSERTION SIGN\n\t{0x1145E, 0x1145E, prCM, gcMn},   //         NEWA SANDHI MARK\n\t{0x1145F, 0x11461, prAL, gcLo},   //     [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA\n\t{0x11480, 0x114AF, prAL, gcLo},   //    [48] TIRHUTA ANJI..TIRHUTA LETTER HA\n\t{0x114B0, 0x114B2, prCM, gcMc},   //     [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II\n\t{0x114B3, 0x114B8, prCM, gcMn},   //     [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL\n\t{0x114B9, 0x114B9, prCM, gcMc},   //         TIRHUTA VOWEL SIGN E\n\t{0x114BA, 0x114BA, prCM, gcMn},   //         TIRHUTA VOWEL SIGN SHORT E\n\t{0x114BB, 0x114BE, prCM, gcMc},   //     [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU\n\t{0x114BF, 0x114C0, prCM, gcMn},   //     [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA\n\t{0x114C1, 0x114C1, prCM, gcMc},   //         TIRHUTA SIGN VISARGA\n\t{0x114C2, 0x114C3, prCM, gcMn},   //     [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA\n\t{0x114C4, 0x114C5, prAL, gcLo},   //     [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG\n\t{0x114C6, 0x114C6, prAL, gcPo},   //         TIRHUTA ABBREVIATION SIGN\n\t{0x114C7, 0x114C7, prAL, gcLo},   //         TIRHUTA OM\n\t{0x114D0, 0x114D9, prNU, gcNd},   //    [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE\n\t{0x11580, 0x115AE, prAL, gcLo},   //    [47] SIDDHAM LETTER A..SIDDHAM LETTER HA\n\t{0x115AF, 0x115B1, prCM, gcMc},   //     [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II\n\t{0x115B2, 0x115B5, prCM, gcMn},   //     [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR\n\t{0x115B8, 0x115BB, prCM, gcMc},   //     [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU\n\t{0x115BC, 0x115BD, prCM, gcMn},   //     [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA\n\t{0x115BE, 0x115BE, prCM, gcMc},   //         SIDDHAM SIGN VISARGA\n\t{0x115BF, 0x115C0, prCM, gcMn},   //     [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA\n\t{0x115C1, 0x115C1, prBB, gcPo},   //         SIDDHAM SIGN SIDDHAM\n\t{0x115C2, 0x115C3, prBA, gcPo},   //     [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA\n\t{0x115C4, 0x115C5, prEX, gcPo},   //     [2] SIDDHAM SEPARATOR DOT..SIDDHAM SEPARATOR BAR\n\t{0x115C6, 0x115C8, prAL, gcPo},   //     [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3\n\t{0x115C9, 0x115D7, prBA, gcPo},   //    [15] SIDDHAM END OF TEXT MARK..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES\n\t{0x115D8, 0x115DB, prAL, gcLo},   //     [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U\n\t{0x115DC, 0x115DD, prCM, gcMn},   //     [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU\n\t{0x11600, 0x1162F, prAL, gcLo},   //    [48] MODI LETTER A..MODI LETTER LLA\n\t{0x11630, 0x11632, prCM, gcMc},   //     [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II\n\t{0x11633, 0x1163A, prCM, gcMn},   //     [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI\n\t{0x1163B, 0x1163C, prCM, gcMc},   //     [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU\n\t{0x1163D, 0x1163D, prCM, gcMn},   //         MODI SIGN ANUSVARA\n\t{0x1163E, 0x1163E, prCM, gcMc},   //         MODI SIGN VISARGA\n\t{0x1163F, 0x11640, prCM, gcMn},   //     [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA\n\t{0x11641, 0x11642, prBA, gcPo},   //     [2] MODI DANDA..MODI DOUBLE DANDA\n\t{0x11643, 0x11643, prAL, gcPo},   //         MODI ABBREVIATION SIGN\n\t{0x11644, 0x11644, prAL, gcLo},   //         MODI SIGN HUVA\n\t{0x11650, 0x11659, prNU, gcNd},   //    [10] MODI DIGIT ZERO..MODI DIGIT NINE\n\t{0x11660, 0x1166C, prBB, gcPo},   //    [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT\n\t{0x11680, 0x116AA, prAL, gcLo},   //    [43] TAKRI LETTER A..TAKRI LETTER RRA\n\t{0x116AB, 0x116AB, prCM, gcMn},   //         TAKRI SIGN ANUSVARA\n\t{0x116AC, 0x116AC, prCM, gcMc},   //         TAKRI SIGN VISARGA\n\t{0x116AD, 0x116AD, prCM, gcMn},   //         TAKRI VOWEL SIGN AA\n\t{0x116AE, 0x116AF, prCM, gcMc},   //     [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II\n\t{0x116B0, 0x116B5, prCM, gcMn},   //     [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU\n\t{0x116B6, 0x116B6, prCM, gcMc},   //         TAKRI SIGN VIRAMA\n\t{0x116B7, 0x116B7, prCM, gcMn},   //         TAKRI SIGN NUKTA\n\t{0x116B8, 0x116B8, prAL, gcLo},   //         TAKRI LETTER ARCHAIC KHA\n\t{0x116B9, 0x116B9, prAL, gcPo},   //         TAKRI ABBREVIATION SIGN\n\t{0x116C0, 0x116C9, prNU, gcNd},   //    [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE\n\t{0x11700, 0x1171A, prSA, gcLo},   //    [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA\n\t{0x1171D, 0x1171F, prSA, gcMn},   //     [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA\n\t{0x11720, 0x11721, prSA, gcMc},   //     [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA\n\t{0x11722, 0x11725, prSA, gcMn},   //     [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU\n\t{0x11726, 0x11726, prSA, gcMc},   //         AHOM VOWEL SIGN E\n\t{0x11727, 0x1172B, prSA, gcMn},   //     [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER\n\t{0x11730, 0x11739, prNU, gcNd},   //    [10] AHOM DIGIT ZERO..AHOM DIGIT NINE\n\t{0x1173A, 0x1173B, prSA, gcNo},   //     [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY\n\t{0x1173C, 0x1173E, prBA, gcPo},   //     [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI\n\t{0x1173F, 0x1173F, prSA, gcSo},   //         AHOM SYMBOL VI\n\t{0x11740, 0x11746, prSA, gcLo},   //     [7] AHOM LETTER CA..AHOM LETTER LLA\n\t{0x11800, 0x1182B, prAL, gcLo},   //    [44] DOGRA LETTER A..DOGRA LETTER RRA\n\t{0x1182C, 0x1182E, prCM, gcMc},   //     [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II\n\t{0x1182F, 0x11837, prCM, gcMn},   //     [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA\n\t{0x11838, 0x11838, prCM, gcMc},   //         DOGRA SIGN VISARGA\n\t{0x11839, 0x1183A, prCM, gcMn},   //     [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA\n\t{0x1183B, 0x1183B, prAL, gcPo},   //         DOGRA ABBREVIATION SIGN\n\t{0x118A0, 0x118DF, prAL, gcLC},   //    [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO\n\t{0x118E0, 0x118E9, prNU, gcNd},   //    [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE\n\t{0x118EA, 0x118F2, prAL, gcNo},   //     [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY\n\t{0x118FF, 0x118FF, prAL, gcLo},   //         WARANG CITI OM\n\t{0x11900, 0x11906, prAL, gcLo},   //     [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E\n\t{0x11909, 0x11909, prAL, gcLo},   //         DIVES AKURU LETTER O\n\t{0x1190C, 0x11913, prAL, gcLo},   //     [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA\n\t{0x11915, 0x11916, prAL, gcLo},   //     [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA\n\t{0x11918, 0x1192F, prAL, gcLo},   //    [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA\n\t{0x11930, 0x11935, prCM, gcMc},   //     [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E\n\t{0x11937, 0x11938, prCM, gcMc},   //     [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O\n\t{0x1193B, 0x1193C, prCM, gcMn},   //     [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU\n\t{0x1193D, 0x1193D, prCM, gcMc},   //         DIVES AKURU SIGN HALANTA\n\t{0x1193E, 0x1193E, prCM, gcMn},   //         DIVES AKURU VIRAMA\n\t{0x1193F, 0x1193F, prAL, gcLo},   //         DIVES AKURU PREFIXED NASAL SIGN\n\t{0x11940, 0x11940, prCM, gcMc},   //         DIVES AKURU MEDIAL YA\n\t{0x11941, 0x11941, prAL, gcLo},   //         DIVES AKURU INITIAL RA\n\t{0x11942, 0x11942, prCM, gcMc},   //         DIVES AKURU MEDIAL RA\n\t{0x11943, 0x11943, prCM, gcMn},   //         DIVES AKURU SIGN NUKTA\n\t{0x11944, 0x11946, prBA, gcPo},   //     [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK\n\t{0x11950, 0x11959, prNU, gcNd},   //    [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE\n\t{0x119A0, 0x119A7, prAL, gcLo},   //     [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR\n\t{0x119AA, 0x119D0, prAL, gcLo},   //    [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA\n\t{0x119D1, 0x119D3, prCM, gcMc},   //     [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II\n\t{0x119D4, 0x119D7, prCM, gcMn},   //     [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR\n\t{0x119DA, 0x119DB, prCM, gcMn},   //     [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI\n\t{0x119DC, 0x119DF, prCM, gcMc},   //     [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA\n\t{0x119E0, 0x119E0, prCM, gcMn},   //         NANDINAGARI SIGN VIRAMA\n\t{0x119E1, 0x119E1, prAL, gcLo},   //         NANDINAGARI SIGN AVAGRAHA\n\t{0x119E2, 0x119E2, prBB, gcPo},   //         NANDINAGARI SIGN SIDDHAM\n\t{0x119E3, 0x119E3, prAL, gcLo},   //         NANDINAGARI HEADSTROKE\n\t{0x119E4, 0x119E4, prCM, gcMc},   //         NANDINAGARI VOWEL SIGN PRISHTHAMATRA E\n\t{0x11A00, 0x11A00, prAL, gcLo},   //         ZANABAZAR SQUARE LETTER A\n\t{0x11A01, 0x11A0A, prCM, gcMn},   //    [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK\n\t{0x11A0B, 0x11A32, prAL, gcLo},   //    [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA\n\t{0x11A33, 0x11A38, prCM, gcMn},   //     [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA\n\t{0x11A39, 0x11A39, prCM, gcMc},   //         ZANABAZAR SQUARE SIGN VISARGA\n\t{0x11A3A, 0x11A3A, prAL, gcLo},   //         ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA\n\t{0x11A3B, 0x11A3E, prCM, gcMn},   //     [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA\n\t{0x11A3F, 0x11A3F, prBB, gcPo},   //         ZANABAZAR SQUARE INITIAL HEAD MARK\n\t{0x11A40, 0x11A40, prAL, gcPo},   //         ZANABAZAR SQUARE CLOSING HEAD MARK\n\t{0x11A41, 0x11A44, prBA, gcPo},   //     [4] ZANABAZAR SQUARE MARK TSHEG..ZANABAZAR SQUARE MARK LONG TSHEG\n\t{0x11A45, 0x11A45, prBB, gcPo},   //         ZANABAZAR SQUARE INITIAL DOUBLE-LINED HEAD MARK\n\t{0x11A46, 0x11A46, prAL, gcPo},   //         ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK\n\t{0x11A47, 0x11A47, prCM, gcMn},   //         ZANABAZAR SQUARE SUBJOINER\n\t{0x11A50, 0x11A50, prAL, gcLo},   //         SOYOMBO LETTER A\n\t{0x11A51, 0x11A56, prCM, gcMn},   //     [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE\n\t{0x11A57, 0x11A58, prCM, gcMc},   //     [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU\n\t{0x11A59, 0x11A5B, prCM, gcMn},   //     [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK\n\t{0x11A5C, 0x11A89, prAL, gcLo},   //    [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA\n\t{0x11A8A, 0x11A96, prCM, gcMn},   //    [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA\n\t{0x11A97, 0x11A97, prCM, gcMc},   //         SOYOMBO SIGN VISARGA\n\t{0x11A98, 0x11A99, prCM, gcMn},   //     [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER\n\t{0x11A9A, 0x11A9C, prBA, gcPo},   //     [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD\n\t{0x11A9D, 0x11A9D, prAL, gcLo},   //         SOYOMBO MARK PLUTA\n\t{0x11A9E, 0x11AA0, prBB, gcPo},   //     [3] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO HEAD MARK WITH MOON AND SUN\n\t{0x11AA1, 0x11AA2, prBA, gcPo},   //     [2] SOYOMBO TERMINAL MARK-1..SOYOMBO TERMINAL MARK-2\n\t{0x11AB0, 0x11ABF, prAL, gcLo},   //    [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA\n\t{0x11AC0, 0x11AF8, prAL, gcLo},   //    [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL\n\t{0x11B00, 0x11B09, prBB, gcPo},   //    [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU\n\t{0x11C00, 0x11C08, prAL, gcLo},   //     [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L\n\t{0x11C0A, 0x11C2E, prAL, gcLo},   //    [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA\n\t{0x11C2F, 0x11C2F, prCM, gcMc},   //         BHAIKSUKI VOWEL SIGN AA\n\t{0x11C30, 0x11C36, prCM, gcMn},   //     [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L\n\t{0x11C38, 0x11C3D, prCM, gcMn},   //     [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA\n\t{0x11C3E, 0x11C3E, prCM, gcMc},   //         BHAIKSUKI SIGN VISARGA\n\t{0x11C3F, 0x11C3F, prCM, gcMn},   //         BHAIKSUKI SIGN VIRAMA\n\t{0x11C40, 0x11C40, prAL, gcLo},   //         BHAIKSUKI SIGN AVAGRAHA\n\t{0x11C41, 0x11C45, prBA, gcPo},   //     [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2\n\t{0x11C50, 0x11C59, prNU, gcNd},   //    [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE\n\t{0x11C5A, 0x11C6C, prAL, gcNo},   //    [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK\n\t{0x11C70, 0x11C70, prBB, gcPo},   //         MARCHEN HEAD MARK\n\t{0x11C71, 0x11C71, prEX, gcPo},   //         MARCHEN MARK SHAD\n\t{0x11C72, 0x11C8F, prAL, gcLo},   //    [30] MARCHEN LETTER KA..MARCHEN LETTER A\n\t{0x11C92, 0x11CA7, prCM, gcMn},   //    [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA\n\t{0x11CA9, 0x11CA9, prCM, gcMc},   //         MARCHEN SUBJOINED LETTER YA\n\t{0x11CAA, 0x11CB0, prCM, gcMn},   //     [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA\n\t{0x11CB1, 0x11CB1, prCM, gcMc},   //         MARCHEN VOWEL SIGN I\n\t{0x11CB2, 0x11CB3, prCM, gcMn},   //     [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E\n\t{0x11CB4, 0x11CB4, prCM, gcMc},   //         MARCHEN VOWEL SIGN O\n\t{0x11CB5, 0x11CB6, prCM, gcMn},   //     [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU\n\t{0x11D00, 0x11D06, prAL, gcLo},   //     [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E\n\t{0x11D08, 0x11D09, prAL, gcLo},   //     [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O\n\t{0x11D0B, 0x11D30, prAL, gcLo},   //    [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA\n\t{0x11D31, 0x11D36, prCM, gcMn},   //     [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R\n\t{0x11D3A, 0x11D3A, prCM, gcMn},   //         MASARAM GONDI VOWEL SIGN E\n\t{0x11D3C, 0x11D3D, prCM, gcMn},   //     [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O\n\t{0x11D3F, 0x11D45, prCM, gcMn},   //     [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA\n\t{0x11D46, 0x11D46, prAL, gcLo},   //         MASARAM GONDI REPHA\n\t{0x11D47, 0x11D47, prCM, gcMn},   //         MASARAM GONDI RA-KARA\n\t{0x11D50, 0x11D59, prNU, gcNd},   //    [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE\n\t{0x11D60, 0x11D65, prAL, gcLo},   //     [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU\n\t{0x11D67, 0x11D68, prAL, gcLo},   //     [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI\n\t{0x11D6A, 0x11D89, prAL, gcLo},   //    [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA\n\t{0x11D8A, 0x11D8E, prCM, gcMc},   //     [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU\n\t{0x11D90, 0x11D91, prCM, gcMn},   //     [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI\n\t{0x11D93, 0x11D94, prCM, gcMc},   //     [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU\n\t{0x11D95, 0x11D95, prCM, gcMn},   //         GUNJALA GONDI SIGN ANUSVARA\n\t{0x11D96, 0x11D96, prCM, gcMc},   //         GUNJALA GONDI SIGN VISARGA\n\t{0x11D97, 0x11D97, prCM, gcMn},   //         GUNJALA GONDI VIRAMA\n\t{0x11D98, 0x11D98, prAL, gcLo},   //         GUNJALA GONDI OM\n\t{0x11DA0, 0x11DA9, prNU, gcNd},   //    [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE\n\t{0x11EE0, 0x11EF2, prAL, gcLo},   //    [19] MAKASAR LETTER KA..MAKASAR ANGKA\n\t{0x11EF3, 0x11EF4, prCM, gcMn},   //     [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U\n\t{0x11EF5, 0x11EF6, prCM, gcMc},   //     [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O\n\t{0x11EF7, 0x11EF8, prAL, gcPo},   //     [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION\n\t{0x11F00, 0x11F01, prCM, gcMn},   //     [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA\n\t{0x11F02, 0x11F02, prAL, gcLo},   //         KAWI SIGN REPHA\n\t{0x11F03, 0x11F03, prCM, gcMc},   //         KAWI SIGN VISARGA\n\t{0x11F04, 0x11F10, prAL, gcLo},   //    [13] KAWI LETTER A..KAWI LETTER O\n\t{0x11F12, 0x11F33, prAL, gcLo},   //    [34] KAWI LETTER KA..KAWI LETTER JNYA\n\t{0x11F34, 0x11F35, prCM, gcMc},   //     [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA\n\t{0x11F36, 0x11F3A, prCM, gcMn},   //     [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R\n\t{0x11F3E, 0x11F3F, prCM, gcMc},   //     [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI\n\t{0x11F40, 0x11F40, prCM, gcMn},   //         KAWI VOWEL SIGN EU\n\t{0x11F41, 0x11F41, prCM, gcMc},   //         KAWI SIGN KILLER\n\t{0x11F42, 0x11F42, prCM, gcMn},   //         KAWI CONJOINER\n\t{0x11F43, 0x11F44, prBA, gcPo},   //     [2] KAWI DANDA..KAWI DOUBLE DANDA\n\t{0x11F45, 0x11F4F, prID, gcPo},   //    [11] KAWI PUNCTUATION SECTION MARKER..KAWI PUNCTUATION CLOSING SPIRAL\n\t{0x11F50, 0x11F59, prNU, gcNd},   //    [10] KAWI DIGIT ZERO..KAWI DIGIT NINE\n\t{0x11FB0, 0x11FB0, prAL, gcLo},   //         LISU LETTER YHA\n\t{0x11FC0, 0x11FD4, prAL, gcNo},   //    [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH\n\t{0x11FD5, 0x11FDC, prAL, gcSo},   //     [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI\n\t{0x11FDD, 0x11FE0, prPO, gcSc},   //     [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN\n\t{0x11FE1, 0x11FF1, prAL, gcSo},   //    [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA\n\t{0x11FFF, 0x11FFF, prBA, gcPo},   //         TAMIL PUNCTUATION END OF TEXT\n\t{0x12000, 0x12399, prAL, gcLo},   //   [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U\n\t{0x12400, 0x1246E, prAL, gcNl},   //   [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM\n\t{0x12470, 0x12474, prBA, gcPo},   //     [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON\n\t{0x12480, 0x12543, prAL, gcLo},   //   [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU\n\t{0x12F90, 0x12FF0, prAL, gcLo},   //    [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114\n\t{0x12FF1, 0x12FF2, prAL, gcPo},   //     [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302\n\t{0x13000, 0x13257, prAL, gcLo},   //   [600] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH O006\n\t{0x13258, 0x1325A, prOP, gcLo},   //     [3] EGYPTIAN HIEROGLYPH O006A..EGYPTIAN HIEROGLYPH O006C\n\t{0x1325B, 0x1325D, prCL, gcLo},   //     [3] EGYPTIAN HIEROGLYPH O006D..EGYPTIAN HIEROGLYPH O006F\n\t{0x1325E, 0x13281, prAL, gcLo},   //    [36] EGYPTIAN HIEROGLYPH O007..EGYPTIAN HIEROGLYPH O033\n\t{0x13282, 0x13282, prCL, gcLo},   //         EGYPTIAN HIEROGLYPH O033A\n\t{0x13283, 0x13285, prAL, gcLo},   //     [3] EGYPTIAN HIEROGLYPH O034..EGYPTIAN HIEROGLYPH O036\n\t{0x13286, 0x13286, prOP, gcLo},   //         EGYPTIAN HIEROGLYPH O036A\n\t{0x13287, 0x13287, prCL, gcLo},   //         EGYPTIAN HIEROGLYPH O036B\n\t{0x13288, 0x13288, prOP, gcLo},   //         EGYPTIAN HIEROGLYPH O036C\n\t{0x13289, 0x13289, prCL, gcLo},   //         EGYPTIAN HIEROGLYPH O036D\n\t{0x1328A, 0x13378, prAL, gcLo},   //   [239] EGYPTIAN HIEROGLYPH O037..EGYPTIAN HIEROGLYPH V011\n\t{0x13379, 0x13379, prOP, gcLo},   //         EGYPTIAN HIEROGLYPH V011A\n\t{0x1337A, 0x1337B, prCL, gcLo},   //     [2] EGYPTIAN HIEROGLYPH V011B..EGYPTIAN HIEROGLYPH V011C\n\t{0x1337C, 0x1342F, prAL, gcLo},   //   [180] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH V011D\n\t{0x13430, 0x13436, prGL, gcCf},   //     [7] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH OVERLAY MIDDLE\n\t{0x13437, 0x13437, prOP, gcCf},   //         EGYPTIAN HIEROGLYPH BEGIN SEGMENT\n\t{0x13438, 0x13438, prCL, gcCf},   //         EGYPTIAN HIEROGLYPH END SEGMENT\n\t{0x13439, 0x1343B, prGL, gcCf},   //     [3] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH INSERT AT BOTTOM\n\t{0x1343C, 0x1343C, prOP, gcCf},   //         EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE\n\t{0x1343D, 0x1343D, prCL, gcCf},   //         EGYPTIAN HIEROGLYPH END ENCLOSURE\n\t{0x1343E, 0x1343E, prOP, gcCf},   //         EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE\n\t{0x1343F, 0x1343F, prCL, gcCf},   //         EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE\n\t{0x13440, 0x13440, prCM, gcMn},   //         EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY\n\t{0x13441, 0x13446, prAL, gcLo},   //     [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN\n\t{0x13447, 0x13455, prCM, gcMn},   //    [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED\n\t{0x14400, 0x145CD, prAL, gcLo},   //   [462] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A409\n\t{0x145CE, 0x145CE, prOP, gcLo},   //         ANATOLIAN HIEROGLYPH A410 BEGIN LOGOGRAM MARK\n\t{0x145CF, 0x145CF, prCL, gcLo},   //         ANATOLIAN HIEROGLYPH A410A END LOGOGRAM MARK\n\t{0x145D0, 0x14646, prAL, gcLo},   //   [119] ANATOLIAN HIEROGLYPH A411..ANATOLIAN HIEROGLYPH A530\n\t{0x16800, 0x16A38, prAL, gcLo},   //   [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ\n\t{0x16A40, 0x16A5E, prAL, gcLo},   //    [31] MRO LETTER TA..MRO LETTER TEK\n\t{0x16A60, 0x16A69, prNU, gcNd},   //    [10] MRO DIGIT ZERO..MRO DIGIT NINE\n\t{0x16A6E, 0x16A6F, prBA, gcPo},   //     [2] MRO DANDA..MRO DOUBLE DANDA\n\t{0x16A70, 0x16ABE, prAL, gcLo},   //    [79] TANGSA LETTER OZ..TANGSA LETTER ZA\n\t{0x16AC0, 0x16AC9, prNU, gcNd},   //    [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE\n\t{0x16AD0, 0x16AED, prAL, gcLo},   //    [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I\n\t{0x16AF0, 0x16AF4, prCM, gcMn},   //     [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE\n\t{0x16AF5, 0x16AF5, prBA, gcPo},   //         BASSA VAH FULL STOP\n\t{0x16B00, 0x16B2F, prAL, gcLo},   //    [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU\n\t{0x16B30, 0x16B36, prCM, gcMn},   //     [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM\n\t{0x16B37, 0x16B39, prBA, gcPo},   //     [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM\n\t{0x16B3A, 0x16B3B, prAL, gcPo},   //     [2] PAHAWH HMONG SIGN VOS THIAB..PAHAWH HMONG SIGN VOS FEEM\n\t{0x16B3C, 0x16B3F, prAL, gcSo},   //     [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB\n\t{0x16B40, 0x16B43, prAL, gcLm},   //     [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM\n\t{0x16B44, 0x16B44, prBA, gcPo},   //         PAHAWH HMONG SIGN XAUS\n\t{0x16B45, 0x16B45, prAL, gcSo},   //         PAHAWH HMONG SIGN CIM TSOV ROG\n\t{0x16B50, 0x16B59, prNU, gcNd},   //    [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE\n\t{0x16B5B, 0x16B61, prAL, gcNo},   //     [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS\n\t{0x16B63, 0x16B77, prAL, gcLo},   //    [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS\n\t{0x16B7D, 0x16B8F, prAL, gcLo},   //    [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ\n\t{0x16E40, 0x16E7F, prAL, gcLC},   //    [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y\n\t{0x16E80, 0x16E96, prAL, gcNo},   //    [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM\n\t{0x16E97, 0x16E98, prBA, gcPo},   //     [2] MEDEFAIDRIN COMMA..MEDEFAIDRIN FULL STOP\n\t{0x16E99, 0x16E9A, prAL, gcPo},   //     [2] MEDEFAIDRIN SYMBOL AIVA..MEDEFAIDRIN EXCLAMATION OH\n\t{0x16F00, 0x16F4A, prAL, gcLo},   //    [75] MIAO LETTER PA..MIAO LETTER RTE\n\t{0x16F4F, 0x16F4F, prCM, gcMn},   //         MIAO SIGN CONSONANT MODIFIER BAR\n\t{0x16F50, 0x16F50, prAL, gcLo},   //         MIAO LETTER NASALIZATION\n\t{0x16F51, 0x16F87, prCM, gcMc},   //    [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI\n\t{0x16F8F, 0x16F92, prCM, gcMn},   //     [4] MIAO TONE RIGHT..MIAO TONE BELOW\n\t{0x16F93, 0x16F9F, prAL, gcLm},   //    [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8\n\t{0x16FE0, 0x16FE1, prNS, gcLm},   //     [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK\n\t{0x16FE2, 0x16FE2, prNS, gcPo},   //         OLD CHINESE HOOK MARK\n\t{0x16FE3, 0x16FE3, prNS, gcLm},   //         OLD CHINESE ITERATION MARK\n\t{0x16FE4, 0x16FE4, prGL, gcMn},   //         KHITAN SMALL SCRIPT FILLER\n\t{0x16FF0, 0x16FF1, prCM, gcMc},   //     [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY\n\t{0x17000, 0x187F7, prID, gcLo},   //  [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7\n\t{0x18800, 0x18AFF, prID, gcLo},   //   [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768\n\t{0x18B00, 0x18CD5, prAL, gcLo},   //   [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5\n\t{0x18D00, 0x18D08, prID, gcLo},   //     [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08\n\t{0x1AFF0, 0x1AFF3, prAL, gcLm},   //     [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5\n\t{0x1AFF5, 0x1AFFB, prAL, gcLm},   //     [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5\n\t{0x1AFFD, 0x1AFFE, prAL, gcLm},   //     [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8\n\t{0x1B000, 0x1B0FF, prID, gcLo},   //   [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2\n\t{0x1B100, 0x1B122, prID, gcLo},   //    [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU\n\t{0x1B132, 0x1B132, prCJ, gcLo},   //         HIRAGANA LETTER SMALL KO\n\t{0x1B150, 0x1B152, prCJ, gcLo},   //     [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO\n\t{0x1B155, 0x1B155, prCJ, gcLo},   //         KATAKANA LETTER SMALL KO\n\t{0x1B164, 0x1B167, prCJ, gcLo},   //     [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N\n\t{0x1B170, 0x1B2FB, prID, gcLo},   //   [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB\n\t{0x1BC00, 0x1BC6A, prAL, gcLo},   //   [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M\n\t{0x1BC70, 0x1BC7C, prAL, gcLo},   //    [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK\n\t{0x1BC80, 0x1BC88, prAL, gcLo},   //     [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL\n\t{0x1BC90, 0x1BC99, prAL, gcLo},   //    [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW\n\t{0x1BC9C, 0x1BC9C, prAL, gcSo},   //         DUPLOYAN SIGN O WITH CROSS\n\t{0x1BC9D, 0x1BC9E, prCM, gcMn},   //     [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK\n\t{0x1BC9F, 0x1BC9F, prBA, gcPo},   //         DUPLOYAN PUNCTUATION CHINOOK FULL STOP\n\t{0x1BCA0, 0x1BCA3, prCM, gcCf},   //     [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP\n\t{0x1CF00, 0x1CF2D, prCM, gcMn},   //    [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT\n\t{0x1CF30, 0x1CF46, prCM, gcMn},   //    [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG\n\t{0x1CF50, 0x1CFC3, prAL, gcSo},   //   [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK\n\t{0x1D000, 0x1D0F5, prAL, gcSo},   //   [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO\n\t{0x1D100, 0x1D126, prAL, gcSo},   //    [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2\n\t{0x1D129, 0x1D164, prAL, gcSo},   //    [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE\n\t{0x1D165, 0x1D166, prCM, gcMc},   //     [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM\n\t{0x1D167, 0x1D169, prCM, gcMn},   //     [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3\n\t{0x1D16A, 0x1D16C, prAL, gcSo},   //     [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3\n\t{0x1D16D, 0x1D172, prCM, gcMc},   //     [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5\n\t{0x1D173, 0x1D17A, prCM, gcCf},   //     [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE\n\t{0x1D17B, 0x1D182, prCM, gcMn},   //     [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE\n\t{0x1D183, 0x1D184, prAL, gcSo},   //     [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN\n\t{0x1D185, 0x1D18B, prCM, gcMn},   //     [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE\n\t{0x1D18C, 0x1D1A9, prAL, gcSo},   //    [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH\n\t{0x1D1AA, 0x1D1AD, prCM, gcMn},   //     [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO\n\t{0x1D1AE, 0x1D1EA, prAL, gcSo},   //    [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON\n\t{0x1D200, 0x1D241, prAL, gcSo},   //    [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54\n\t{0x1D242, 0x1D244, prCM, gcMn},   //     [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME\n\t{0x1D245, 0x1D245, prAL, gcSo},   //         GREEK MUSICAL LEIMMA\n\t{0x1D2C0, 0x1D2D3, prAL, gcNo},   //    [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN\n\t{0x1D2E0, 0x1D2F3, prAL, gcNo},   //    [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN\n\t{0x1D300, 0x1D356, prAL, gcSo},   //    [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING\n\t{0x1D360, 0x1D378, prAL, gcNo},   //    [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE\n\t{0x1D400, 0x1D454, prAL, gcLC},   //    [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G\n\t{0x1D456, 0x1D49C, prAL, gcLC},   //    [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A\n\t{0x1D49E, 0x1D49F, prAL, gcLu},   //     [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D\n\t{0x1D4A2, 0x1D4A2, prAL, gcLu},   //         MATHEMATICAL SCRIPT CAPITAL G\n\t{0x1D4A5, 0x1D4A6, prAL, gcLu},   //     [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K\n\t{0x1D4A9, 0x1D4AC, prAL, gcLu},   //     [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q\n\t{0x1D4AE, 0x1D4B9, prAL, gcLC},   //    [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D\n\t{0x1D4BB, 0x1D4BB, prAL, gcLl},   //         MATHEMATICAL SCRIPT SMALL F\n\t{0x1D4BD, 0x1D4C3, prAL, gcLl},   //     [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N\n\t{0x1D4C5, 0x1D505, prAL, gcLC},   //    [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B\n\t{0x1D507, 0x1D50A, prAL, gcLu},   //     [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G\n\t{0x1D50D, 0x1D514, prAL, gcLu},   //     [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q\n\t{0x1D516, 0x1D51C, prAL, gcLu},   //     [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y\n\t{0x1D51E, 0x1D539, prAL, gcLC},   //    [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B\n\t{0x1D53B, 0x1D53E, prAL, gcLu},   //     [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G\n\t{0x1D540, 0x1D544, prAL, gcLu},   //     [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M\n\t{0x1D546, 0x1D546, prAL, gcLu},   //         MATHEMATICAL DOUBLE-STRUCK CAPITAL O\n\t{0x1D54A, 0x1D550, prAL, gcLu},   //     [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y\n\t{0x1D552, 0x1D6A5, prAL, gcLC},   //   [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J\n\t{0x1D6A8, 0x1D6C0, prAL, gcLu},   //    [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA\n\t{0x1D6C1, 0x1D6C1, prAL, gcSm},   //         MATHEMATICAL BOLD NABLA\n\t{0x1D6C2, 0x1D6DA, prAL, gcLl},   //    [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA\n\t{0x1D6DB, 0x1D6DB, prAL, gcSm},   //         MATHEMATICAL BOLD PARTIAL DIFFERENTIAL\n\t{0x1D6DC, 0x1D6FA, prAL, gcLC},   //    [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA\n\t{0x1D6FB, 0x1D6FB, prAL, gcSm},   //         MATHEMATICAL ITALIC NABLA\n\t{0x1D6FC, 0x1D714, prAL, gcLl},   //    [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA\n\t{0x1D715, 0x1D715, prAL, gcSm},   //         MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL\n\t{0x1D716, 0x1D734, prAL, gcLC},   //    [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA\n\t{0x1D735, 0x1D735, prAL, gcSm},   //         MATHEMATICAL BOLD ITALIC NABLA\n\t{0x1D736, 0x1D74E, prAL, gcLl},   //    [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA\n\t{0x1D74F, 0x1D74F, prAL, gcSm},   //         MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL\n\t{0x1D750, 0x1D76E, prAL, gcLC},   //    [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA\n\t{0x1D76F, 0x1D76F, prAL, gcSm},   //         MATHEMATICAL SANS-SERIF BOLD NABLA\n\t{0x1D770, 0x1D788, prAL, gcLl},   //    [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA\n\t{0x1D789, 0x1D789, prAL, gcSm},   //         MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL\n\t{0x1D78A, 0x1D7A8, prAL, gcLC},   //    [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA\n\t{0x1D7A9, 0x1D7A9, prAL, gcSm},   //         MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA\n\t{0x1D7AA, 0x1D7C2, prAL, gcLl},   //    [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA\n\t{0x1D7C3, 0x1D7C3, prAL, gcSm},   //         MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL\n\t{0x1D7C4, 0x1D7CB, prAL, gcLC},   //     [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA\n\t{0x1D7CE, 0x1D7FF, prNU, gcNd},   //    [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE\n\t{0x1D800, 0x1D9FF, prAL, gcSo},   //   [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD\n\t{0x1DA00, 0x1DA36, prCM, gcMn},   //    [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN\n\t{0x1DA37, 0x1DA3A, prAL, gcSo},   //     [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE\n\t{0x1DA3B, 0x1DA6C, prCM, gcMn},   //    [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT\n\t{0x1DA6D, 0x1DA74, prAL, gcSo},   //     [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING\n\t{0x1DA75, 0x1DA75, prCM, gcMn},   //         SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS\n\t{0x1DA76, 0x1DA83, prAL, gcSo},   //    [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH\n\t{0x1DA84, 0x1DA84, prCM, gcMn},   //         SIGNWRITING LOCATION HEAD NECK\n\t{0x1DA85, 0x1DA86, prAL, gcSo},   //     [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS\n\t{0x1DA87, 0x1DA8A, prBA, gcPo},   //     [4] SIGNWRITING COMMA..SIGNWRITING COLON\n\t{0x1DA8B, 0x1DA8B, prAL, gcPo},   //         SIGNWRITING PARENTHESIS\n\t{0x1DA9B, 0x1DA9F, prCM, gcMn},   //     [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6\n\t{0x1DAA1, 0x1DAAF, prCM, gcMn},   //    [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16\n\t{0x1DF00, 0x1DF09, prAL, gcLl},   //    [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK\n\t{0x1DF0A, 0x1DF0A, prAL, gcLo},   //         LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK\n\t{0x1DF0B, 0x1DF1E, prAL, gcLl},   //    [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL\n\t{0x1DF25, 0x1DF2A, prAL, gcLl},   //     [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK\n\t{0x1E000, 0x1E006, prCM, gcMn},   //     [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE\n\t{0x1E008, 0x1E018, prCM, gcMn},   //    [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU\n\t{0x1E01B, 0x1E021, prCM, gcMn},   //     [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI\n\t{0x1E023, 0x1E024, prCM, gcMn},   //     [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS\n\t{0x1E026, 0x1E02A, prCM, gcMn},   //     [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA\n\t{0x1E030, 0x1E06D, prAL, gcLm},   //    [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE\n\t{0x1E08F, 0x1E08F, prCM, gcMn},   //         COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I\n\t{0x1E100, 0x1E12C, prAL, gcLo},   //    [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W\n\t{0x1E130, 0x1E136, prCM, gcMn},   //     [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D\n\t{0x1E137, 0x1E13D, prAL, gcLm},   //     [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER\n\t{0x1E140, 0x1E149, prNU, gcNd},   //    [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE\n\t{0x1E14E, 0x1E14E, prAL, gcLo},   //         NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ\n\t{0x1E14F, 0x1E14F, prAL, gcSo},   //         NYIAKENG PUACHUE HMONG CIRCLED CA\n\t{0x1E290, 0x1E2AD, prAL, gcLo},   //    [30] TOTO LETTER PA..TOTO LETTER A\n\t{0x1E2AE, 0x1E2AE, prCM, gcMn},   //         TOTO SIGN RISING TONE\n\t{0x1E2C0, 0x1E2EB, prAL, gcLo},   //    [44] WANCHO LETTER AA..WANCHO LETTER YIH\n\t{0x1E2EC, 0x1E2EF, prCM, gcMn},   //     [4] WANCHO TONE TUP..WANCHO TONE KOINI\n\t{0x1E2F0, 0x1E2F9, prNU, gcNd},   //    [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE\n\t{0x1E2FF, 0x1E2FF, prPR, gcSc},   //         WANCHO NGUN SIGN\n\t{0x1E4D0, 0x1E4EA, prAL, gcLo},   //    [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL\n\t{0x1E4EB, 0x1E4EB, prAL, gcLm},   //         NAG MUNDARI SIGN OJOD\n\t{0x1E4EC, 0x1E4EF, prCM, gcMn},   //     [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH\n\t{0x1E4F0, 0x1E4F9, prNU, gcNd},   //    [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE\n\t{0x1E7E0, 0x1E7E6, prAL, gcLo},   //     [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO\n\t{0x1E7E8, 0x1E7EB, prAL, gcLo},   //     [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE\n\t{0x1E7ED, 0x1E7EE, prAL, gcLo},   //     [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE\n\t{0x1E7F0, 0x1E7FE, prAL, gcLo},   //    [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE\n\t{0x1E800, 0x1E8C4, prAL, gcLo},   //   [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON\n\t{0x1E8C7, 0x1E8CF, prAL, gcNo},   //     [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE\n\t{0x1E8D0, 0x1E8D6, prCM, gcMn},   //     [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS\n\t{0x1E900, 0x1E943, prAL, gcLC},   //    [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA\n\t{0x1E944, 0x1E94A, prCM, gcMn},   //     [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA\n\t{0x1E94B, 0x1E94B, prAL, gcLm},   //         ADLAM NASALIZATION MARK\n\t{0x1E950, 0x1E959, prNU, gcNd},   //    [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE\n\t{0x1E95E, 0x1E95F, prOP, gcPo},   //     [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK\n\t{0x1EC71, 0x1ECAB, prAL, gcNo},   //    [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE\n\t{0x1ECAC, 0x1ECAC, prPO, gcSo},   //         INDIC SIYAQ PLACEHOLDER\n\t{0x1ECAD, 0x1ECAF, prAL, gcNo},   //     [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS\n\t{0x1ECB0, 0x1ECB0, prPO, gcSc},   //         INDIC SIYAQ RUPEE MARK\n\t{0x1ECB1, 0x1ECB4, prAL, gcNo},   //     [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK\n\t{0x1ED01, 0x1ED2D, prAL, gcNo},   //    [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND\n\t{0x1ED2E, 0x1ED2E, prAL, gcSo},   //         OTTOMAN SIYAQ MARRATAN\n\t{0x1ED2F, 0x1ED3D, prAL, gcNo},   //    [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH\n\t{0x1EE00, 0x1EE03, prAL, gcLo},   //     [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL\n\t{0x1EE05, 0x1EE1F, prAL, gcLo},   //    [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF\n\t{0x1EE21, 0x1EE22, prAL, gcLo},   //     [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM\n\t{0x1EE24, 0x1EE24, prAL, gcLo},   //         ARABIC MATHEMATICAL INITIAL HEH\n\t{0x1EE27, 0x1EE27, prAL, gcLo},   //         ARABIC MATHEMATICAL INITIAL HAH\n\t{0x1EE29, 0x1EE32, prAL, gcLo},   //    [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF\n\t{0x1EE34, 0x1EE37, prAL, gcLo},   //     [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH\n\t{0x1EE39, 0x1EE39, prAL, gcLo},   //         ARABIC MATHEMATICAL INITIAL DAD\n\t{0x1EE3B, 0x1EE3B, prAL, gcLo},   //         ARABIC MATHEMATICAL INITIAL GHAIN\n\t{0x1EE42, 0x1EE42, prAL, gcLo},   //         ARABIC MATHEMATICAL TAILED JEEM\n\t{0x1EE47, 0x1EE47, prAL, gcLo},   //         ARABIC MATHEMATICAL TAILED HAH\n\t{0x1EE49, 0x1EE49, prAL, gcLo},   //         ARABIC MATHEMATICAL TAILED YEH\n\t{0x1EE4B, 0x1EE4B, prAL, gcLo},   //         ARABIC MATHEMATICAL TAILED LAM\n\t{0x1EE4D, 0x1EE4F, prAL, gcLo},   //     [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN\n\t{0x1EE51, 0x1EE52, prAL, gcLo},   //     [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF\n\t{0x1EE54, 0x1EE54, prAL, gcLo},   //         ARABIC MATHEMATICAL TAILED SHEEN\n\t{0x1EE57, 0x1EE57, prAL, gcLo},   //         ARABIC MATHEMATICAL TAILED KHAH\n\t{0x1EE59, 0x1EE59, prAL, gcLo},   //         ARABIC MATHEMATICAL TAILED DAD\n\t{0x1EE5B, 0x1EE5B, prAL, gcLo},   //         ARABIC MATHEMATICAL TAILED GHAIN\n\t{0x1EE5D, 0x1EE5D, prAL, gcLo},   //         ARABIC MATHEMATICAL TAILED DOTLESS NOON\n\t{0x1EE5F, 0x1EE5F, prAL, gcLo},   //         ARABIC MATHEMATICAL TAILED DOTLESS QAF\n\t{0x1EE61, 0x1EE62, prAL, gcLo},   //     [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM\n\t{0x1EE64, 0x1EE64, prAL, gcLo},   //         ARABIC MATHEMATICAL STRETCHED HEH\n\t{0x1EE67, 0x1EE6A, prAL, gcLo},   //     [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF\n\t{0x1EE6C, 0x1EE72, prAL, gcLo},   //     [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF\n\t{0x1EE74, 0x1EE77, prAL, gcLo},   //     [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH\n\t{0x1EE79, 0x1EE7C, prAL, gcLo},   //     [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH\n\t{0x1EE7E, 0x1EE7E, prAL, gcLo},   //         ARABIC MATHEMATICAL STRETCHED DOTLESS FEH\n\t{0x1EE80, 0x1EE89, prAL, gcLo},   //    [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH\n\t{0x1EE8B, 0x1EE9B, prAL, gcLo},   //    [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN\n\t{0x1EEA1, 0x1EEA3, prAL, gcLo},   //     [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL\n\t{0x1EEA5, 0x1EEA9, prAL, gcLo},   //     [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH\n\t{0x1EEAB, 0x1EEBB, prAL, gcLo},   //    [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN\n\t{0x1EEF0, 0x1EEF1, prAL, gcSm},   //     [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL\n\t{0x1F000, 0x1F02B, prID, gcSo},   //    [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK\n\t{0x1F02C, 0x1F02F, prID, gcCn},   //     [4] <reserved-1F02C>..<reserved-1F02F>\n\t{0x1F030, 0x1F093, prID, gcSo},   //   [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06\n\t{0x1F094, 0x1F09F, prID, gcCn},   //    [12] <reserved-1F094>..<reserved-1F09F>\n\t{0x1F0A0, 0x1F0AE, prID, gcSo},   //    [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES\n\t{0x1F0AF, 0x1F0B0, prID, gcCn},   //     [2] <reserved-1F0AF>..<reserved-1F0B0>\n\t{0x1F0B1, 0x1F0BF, prID, gcSo},   //    [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER\n\t{0x1F0C0, 0x1F0C0, prID, gcCn},   //         <reserved-1F0C0>\n\t{0x1F0C1, 0x1F0CF, prID, gcSo},   //    [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER\n\t{0x1F0D0, 0x1F0D0, prID, gcCn},   //         <reserved-1F0D0>\n\t{0x1F0D1, 0x1F0F5, prID, gcSo},   //    [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21\n\t{0x1F0F6, 0x1F0FF, prID, gcCn},   //    [10] <reserved-1F0F6>..<reserved-1F0FF>\n\t{0x1F100, 0x1F10C, prAI, gcNo},   //    [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO\n\t{0x1F10D, 0x1F10F, prID, gcSo},   //     [3] CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH\n\t{0x1F110, 0x1F12D, prAI, gcSo},   //    [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD\n\t{0x1F12E, 0x1F12F, prAL, gcSo},   //     [2] CIRCLED WZ..COPYLEFT SYMBOL\n\t{0x1F130, 0x1F169, prAI, gcSo},   //    [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z\n\t{0x1F16A, 0x1F16C, prAL, gcSo},   //     [3] RAISED MC SIGN..RAISED MR SIGN\n\t{0x1F16D, 0x1F16F, prID, gcSo},   //     [3] CIRCLED CC..CIRCLED HUMAN FIGURE\n\t{0x1F170, 0x1F1AC, prAI, gcSo},   //    [61] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VOD\n\t{0x1F1AD, 0x1F1AD, prID, gcSo},   //         MASK WORK SYMBOL\n\t{0x1F1AE, 0x1F1E5, prID, gcCn},   //    [56] <reserved-1F1AE>..<reserved-1F1E5>\n\t{0x1F1E6, 0x1F1FF, prRI, gcSo},   //    [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z\n\t{0x1F200, 0x1F202, prID, gcSo},   //     [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA\n\t{0x1F203, 0x1F20F, prID, gcCn},   //    [13] <reserved-1F203>..<reserved-1F20F>\n\t{0x1F210, 0x1F23B, prID, gcSo},   //    [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D\n\t{0x1F23C, 0x1F23F, prID, gcCn},   //     [4] <reserved-1F23C>..<reserved-1F23F>\n\t{0x1F240, 0x1F248, prID, gcSo},   //     [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557\n\t{0x1F249, 0x1F24F, prID, gcCn},   //     [7] <reserved-1F249>..<reserved-1F24F>\n\t{0x1F250, 0x1F251, prID, gcSo},   //     [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT\n\t{0x1F252, 0x1F25F, prID, gcCn},   //    [14] <reserved-1F252>..<reserved-1F25F>\n\t{0x1F260, 0x1F265, prID, gcSo},   //     [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI\n\t{0x1F266, 0x1F2FF, prID, gcCn},   //   [154] <reserved-1F266>..<reserved-1F2FF>\n\t{0x1F300, 0x1F384, prID, gcSo},   //   [133] CYCLONE..CHRISTMAS TREE\n\t{0x1F385, 0x1F385, prEB, gcSo},   //         FATHER CHRISTMAS\n\t{0x1F386, 0x1F39B, prID, gcSo},   //    [22] FIREWORKS..CONTROL KNOBS\n\t{0x1F39C, 0x1F39D, prAL, gcSo},   //     [2] BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES\n\t{0x1F39E, 0x1F3B4, prID, gcSo},   //    [23] FILM FRAMES..FLOWER PLAYING CARDS\n\t{0x1F3B5, 0x1F3B6, prAL, gcSo},   //     [2] MUSICAL NOTE..MULTIPLE MUSICAL NOTES\n\t{0x1F3B7, 0x1F3BB, prID, gcSo},   //     [5] SAXOPHONE..VIOLIN\n\t{0x1F3BC, 0x1F3BC, prAL, gcSo},   //         MUSICAL SCORE\n\t{0x1F3BD, 0x1F3C1, prID, gcSo},   //     [5] RUNNING SHIRT WITH SASH..CHEQUERED FLAG\n\t{0x1F3C2, 0x1F3C4, prEB, gcSo},   //     [3] SNOWBOARDER..SURFER\n\t{0x1F3C5, 0x1F3C6, prID, gcSo},   //     [2] SPORTS MEDAL..TROPHY\n\t{0x1F3C7, 0x1F3C7, prEB, gcSo},   //         HORSE RACING\n\t{0x1F3C8, 0x1F3C9, prID, gcSo},   //     [2] AMERICAN FOOTBALL..RUGBY FOOTBALL\n\t{0x1F3CA, 0x1F3CC, prEB, gcSo},   //     [3] SWIMMER..GOLFER\n\t{0x1F3CD, 0x1F3FA, prID, gcSo},   //    [46] RACING MOTORCYCLE..AMPHORA\n\t{0x1F3FB, 0x1F3FF, prEM, gcSk},   //     [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6\n\t{0x1F400, 0x1F441, prID, gcSo},   //    [66] RAT..EYE\n\t{0x1F442, 0x1F443, prEB, gcSo},   //     [2] EAR..NOSE\n\t{0x1F444, 0x1F445, prID, gcSo},   //     [2] MOUTH..TONGUE\n\t{0x1F446, 0x1F450, prEB, gcSo},   //    [11] WHITE UP POINTING BACKHAND INDEX..OPEN HANDS SIGN\n\t{0x1F451, 0x1F465, prID, gcSo},   //    [21] CROWN..BUSTS IN SILHOUETTE\n\t{0x1F466, 0x1F478, prEB, gcSo},   //    [19] BOY..PRINCESS\n\t{0x1F479, 0x1F47B, prID, gcSo},   //     [3] JAPANESE OGRE..GHOST\n\t{0x1F47C, 0x1F47C, prEB, gcSo},   //         BABY ANGEL\n\t{0x1F47D, 0x1F480, prID, gcSo},   //     [4] EXTRATERRESTRIAL ALIEN..SKULL\n\t{0x1F481, 0x1F483, prEB, gcSo},   //     [3] INFORMATION DESK PERSON..DANCER\n\t{0x1F484, 0x1F484, prID, gcSo},   //         LIPSTICK\n\t{0x1F485, 0x1F487, prEB, gcSo},   //     [3] NAIL POLISH..HAIRCUT\n\t{0x1F488, 0x1F48E, prID, gcSo},   //     [7] BARBER POLE..GEM STONE\n\t{0x1F48F, 0x1F48F, prEB, gcSo},   //         KISS\n\t{0x1F490, 0x1F490, prID, gcSo},   //         BOUQUET\n\t{0x1F491, 0x1F491, prEB, gcSo},   //         COUPLE WITH HEART\n\t{0x1F492, 0x1F49F, prID, gcSo},   //    [14] WEDDING..HEART DECORATION\n\t{0x1F4A0, 0x1F4A0, prAL, gcSo},   //         DIAMOND SHAPE WITH A DOT INSIDE\n\t{0x1F4A1, 0x1F4A1, prID, gcSo},   //         ELECTRIC LIGHT BULB\n\t{0x1F4A2, 0x1F4A2, prAL, gcSo},   //         ANGER SYMBOL\n\t{0x1F4A3, 0x1F4A3, prID, gcSo},   //         BOMB\n\t{0x1F4A4, 0x1F4A4, prAL, gcSo},   //         SLEEPING SYMBOL\n\t{0x1F4A5, 0x1F4A9, prID, gcSo},   //     [5] COLLISION SYMBOL..PILE OF POO\n\t{0x1F4AA, 0x1F4AA, prEB, gcSo},   //         FLEXED BICEPS\n\t{0x1F4AB, 0x1F4AE, prID, gcSo},   //     [4] DIZZY SYMBOL..WHITE FLOWER\n\t{0x1F4AF, 0x1F4AF, prAL, gcSo},   //         HUNDRED POINTS SYMBOL\n\t{0x1F4B0, 0x1F4B0, prID, gcSo},   //         MONEY BAG\n\t{0x1F4B1, 0x1F4B2, prAL, gcSo},   //     [2] CURRENCY EXCHANGE..HEAVY DOLLAR SIGN\n\t{0x1F4B3, 0x1F4FF, prID, gcSo},   //    [77] CREDIT CARD..PRAYER BEADS\n\t{0x1F500, 0x1F506, prAL, gcSo},   //     [7] TWISTED RIGHTWARDS ARROWS..HIGH BRIGHTNESS SYMBOL\n\t{0x1F507, 0x1F516, prID, gcSo},   //    [16] SPEAKER WITH CANCELLATION STROKE..BOOKMARK\n\t{0x1F517, 0x1F524, prAL, gcSo},   //    [14] LINK SYMBOL..INPUT SYMBOL FOR LATIN LETTERS\n\t{0x1F525, 0x1F531, prID, gcSo},   //    [13] FIRE..TRIDENT EMBLEM\n\t{0x1F532, 0x1F549, prAL, gcSo},   //    [24] BLACK SQUARE BUTTON..OM SYMBOL\n\t{0x1F54A, 0x1F573, prID, gcSo},   //    [42] DOVE OF PEACE..HOLE\n\t{0x1F574, 0x1F575, prEB, gcSo},   //     [2] MAN IN BUSINESS SUIT LEVITATING..SLEUTH OR SPY\n\t{0x1F576, 0x1F579, prID, gcSo},   //     [4] DARK SUNGLASSES..JOYSTICK\n\t{0x1F57A, 0x1F57A, prEB, gcSo},   //         MAN DANCING\n\t{0x1F57B, 0x1F58F, prID, gcSo},   //    [21] LEFT HAND TELEPHONE RECEIVER..TURNED OK HAND SIGN\n\t{0x1F590, 0x1F590, prEB, gcSo},   //         RAISED HAND WITH FINGERS SPLAYED\n\t{0x1F591, 0x1F594, prID, gcSo},   //     [4] REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND\n\t{0x1F595, 0x1F596, prEB, gcSo},   //     [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS\n\t{0x1F597, 0x1F5D3, prID, gcSo},   //    [61] WHITE DOWN POINTING LEFT HAND INDEX..SPIRAL CALENDAR PAD\n\t{0x1F5D4, 0x1F5DB, prAL, gcSo},   //     [8] DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL\n\t{0x1F5DC, 0x1F5F3, prID, gcSo},   //    [24] COMPRESSION..BALLOT BOX WITH BALLOT\n\t{0x1F5F4, 0x1F5F9, prAL, gcSo},   //     [6] BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK\n\t{0x1F5FA, 0x1F5FF, prID, gcSo},   //     [6] WORLD MAP..MOYAI\n\t{0x1F600, 0x1F644, prID, gcSo},   //    [69] GRINNING FACE..FACE WITH ROLLING EYES\n\t{0x1F645, 0x1F647, prEB, gcSo},   //     [3] FACE WITH NO GOOD GESTURE..PERSON BOWING DEEPLY\n\t{0x1F648, 0x1F64A, prID, gcSo},   //     [3] SEE-NO-EVIL MONKEY..SPEAK-NO-EVIL MONKEY\n\t{0x1F64B, 0x1F64F, prEB, gcSo},   //     [5] HAPPY PERSON RAISING ONE HAND..PERSON WITH FOLDED HANDS\n\t{0x1F650, 0x1F675, prAL, gcSo},   //    [38] NORTH WEST POINTING LEAF..SWASH AMPERSAND ORNAMENT\n\t{0x1F676, 0x1F678, prQU, gcSo},   //     [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT\n\t{0x1F679, 0x1F67B, prNS, gcSo},   //     [3] HEAVY INTERROBANG ORNAMENT..HEAVY SANS-SERIF INTERROBANG ORNAMENT\n\t{0x1F67C, 0x1F67F, prAL, gcSo},   //     [4] VERY HEAVY SOLIDUS..REVERSE CHECKER BOARD\n\t{0x1F680, 0x1F6A2, prID, gcSo},   //    [35] ROCKET..SHIP\n\t{0x1F6A3, 0x1F6A3, prEB, gcSo},   //         ROWBOAT\n\t{0x1F6A4, 0x1F6B3, prID, gcSo},   //    [16] SPEEDBOAT..NO BICYCLES\n\t{0x1F6B4, 0x1F6B6, prEB, gcSo},   //     [3] BICYCLIST..PEDESTRIAN\n\t{0x1F6B7, 0x1F6BF, prID, gcSo},   //     [9] NO PEDESTRIANS..SHOWER\n\t{0x1F6C0, 0x1F6C0, prEB, gcSo},   //         BATH\n\t{0x1F6C1, 0x1F6CB, prID, gcSo},   //    [11] BATHTUB..COUCH AND LAMP\n\t{0x1F6CC, 0x1F6CC, prEB, gcSo},   //         SLEEPING ACCOMMODATION\n\t{0x1F6CD, 0x1F6D7, prID, gcSo},   //    [11] SHOPPING BAGS..ELEVATOR\n\t{0x1F6D8, 0x1F6DB, prID, gcCn},   //     [4] <reserved-1F6D8>..<reserved-1F6DB>\n\t{0x1F6DC, 0x1F6EC, prID, gcSo},   //    [17] WIRELESS..AIRPLANE ARRIVING\n\t{0x1F6ED, 0x1F6EF, prID, gcCn},   //     [3] <reserved-1F6ED>..<reserved-1F6EF>\n\t{0x1F6F0, 0x1F6FC, prID, gcSo},   //    [13] SATELLITE..ROLLER SKATE\n\t{0x1F6FD, 0x1F6FF, prID, gcCn},   //     [3] <reserved-1F6FD>..<reserved-1F6FF>\n\t{0x1F700, 0x1F773, prAL, gcSo},   //   [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE\n\t{0x1F774, 0x1F776, prID, gcSo},   //     [3] LOT OF FORTUNE..LUNAR ECLIPSE\n\t{0x1F777, 0x1F77A, prID, gcCn},   //     [4] <reserved-1F777>..<reserved-1F77A>\n\t{0x1F77B, 0x1F77F, prID, gcSo},   //     [5] HAUMEA..ORCUS\n\t{0x1F780, 0x1F7D4, prAL, gcSo},   //    [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR\n\t{0x1F7D5, 0x1F7D9, prID, gcSo},   //     [5] CIRCLED TRIANGLE..NINE POINTED WHITE STAR\n\t{0x1F7DA, 0x1F7DF, prID, gcCn},   //     [6] <reserved-1F7DA>..<reserved-1F7DF>\n\t{0x1F7E0, 0x1F7EB, prID, gcSo},   //    [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE\n\t{0x1F7EC, 0x1F7EF, prID, gcCn},   //     [4] <reserved-1F7EC>..<reserved-1F7EF>\n\t{0x1F7F0, 0x1F7F0, prID, gcSo},   //         HEAVY EQUALS SIGN\n\t{0x1F7F1, 0x1F7FF, prID, gcCn},   //    [15] <reserved-1F7F1>..<reserved-1F7FF>\n\t{0x1F800, 0x1F80B, prAL, gcSo},   //    [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD\n\t{0x1F80C, 0x1F80F, prID, gcCn},   //     [4] <reserved-1F80C>..<reserved-1F80F>\n\t{0x1F810, 0x1F847, prAL, gcSo},   //    [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW\n\t{0x1F848, 0x1F84F, prID, gcCn},   //     [8] <reserved-1F848>..<reserved-1F84F>\n\t{0x1F850, 0x1F859, prAL, gcSo},   //    [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW\n\t{0x1F85A, 0x1F85F, prID, gcCn},   //     [6] <reserved-1F85A>..<reserved-1F85F>\n\t{0x1F860, 0x1F887, prAL, gcSo},   //    [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW\n\t{0x1F888, 0x1F88F, prID, gcCn},   //     [8] <reserved-1F888>..<reserved-1F88F>\n\t{0x1F890, 0x1F8AD, prAL, gcSo},   //    [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS\n\t{0x1F8AE, 0x1F8AF, prID, gcCn},   //     [2] <reserved-1F8AE>..<reserved-1F8AF>\n\t{0x1F8B0, 0x1F8B1, prID, gcSo},   //     [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST\n\t{0x1F8B2, 0x1F8FF, prID, gcCn},   //    [78] <reserved-1F8B2>..<reserved-1F8FF>\n\t{0x1F900, 0x1F90B, prAL, gcSo},   //    [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT\n\t{0x1F90C, 0x1F90C, prEB, gcSo},   //         PINCHED FINGERS\n\t{0x1F90D, 0x1F90E, prID, gcSo},   //     [2] WHITE HEART..BROWN HEART\n\t{0x1F90F, 0x1F90F, prEB, gcSo},   //         PINCHING HAND\n\t{0x1F910, 0x1F917, prID, gcSo},   //     [8] ZIPPER-MOUTH FACE..HUGGING FACE\n\t{0x1F918, 0x1F91F, prEB, gcSo},   //     [8] SIGN OF THE HORNS..I LOVE YOU HAND SIGN\n\t{0x1F920, 0x1F925, prID, gcSo},   //     [6] FACE WITH COWBOY HAT..LYING FACE\n\t{0x1F926, 0x1F926, prEB, gcSo},   //         FACE PALM\n\t{0x1F927, 0x1F92F, prID, gcSo},   //     [9] SNEEZING FACE..SHOCKED FACE WITH EXPLODING HEAD\n\t{0x1F930, 0x1F939, prEB, gcSo},   //    [10] PREGNANT WOMAN..JUGGLING\n\t{0x1F93A, 0x1F93B, prID, gcSo},   //     [2] FENCER..MODERN PENTATHLON\n\t{0x1F93C, 0x1F93E, prEB, gcSo},   //     [3] WRESTLERS..HANDBALL\n\t{0x1F93F, 0x1F976, prID, gcSo},   //    [56] DIVING MASK..FREEZING FACE\n\t{0x1F977, 0x1F977, prEB, gcSo},   //         NINJA\n\t{0x1F978, 0x1F9B4, prID, gcSo},   //    [61] DISGUISED FACE..BONE\n\t{0x1F9B5, 0x1F9B6, prEB, gcSo},   //     [2] LEG..FOOT\n\t{0x1F9B7, 0x1F9B7, prID, gcSo},   //         TOOTH\n\t{0x1F9B8, 0x1F9B9, prEB, gcSo},   //     [2] SUPERHERO..SUPERVILLAIN\n\t{0x1F9BA, 0x1F9BA, prID, gcSo},   //         SAFETY VEST\n\t{0x1F9BB, 0x1F9BB, prEB, gcSo},   //         EAR WITH HEARING AID\n\t{0x1F9BC, 0x1F9CC, prID, gcSo},   //    [17] MOTORIZED WHEELCHAIR..TROLL\n\t{0x1F9CD, 0x1F9CF, prEB, gcSo},   //     [3] STANDING PERSON..DEAF PERSON\n\t{0x1F9D0, 0x1F9D0, prID, gcSo},   //         FACE WITH MONOCLE\n\t{0x1F9D1, 0x1F9DD, prEB, gcSo},   //    [13] ADULT..ELF\n\t{0x1F9DE, 0x1F9FF, prID, gcSo},   //    [34] GENIE..NAZAR AMULET\n\t{0x1FA00, 0x1FA53, prAL, gcSo},   //    [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP\n\t{0x1FA54, 0x1FA5F, prID, gcCn},   //    [12] <reserved-1FA54>..<reserved-1FA5F>\n\t{0x1FA60, 0x1FA6D, prID, gcSo},   //    [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER\n\t{0x1FA6E, 0x1FA6F, prID, gcCn},   //     [2] <reserved-1FA6E>..<reserved-1FA6F>\n\t{0x1FA70, 0x1FA7C, prID, gcSo},   //    [13] BALLET SHOES..CRUTCH\n\t{0x1FA7D, 0x1FA7F, prID, gcCn},   //     [3] <reserved-1FA7D>..<reserved-1FA7F>\n\t{0x1FA80, 0x1FA88, prID, gcSo},   //     [9] YO-YO..FLUTE\n\t{0x1FA89, 0x1FA8F, prID, gcCn},   //     [7] <reserved-1FA89>..<reserved-1FA8F>\n\t{0x1FA90, 0x1FABD, prID, gcSo},   //    [46] RINGED PLANET..WING\n\t{0x1FABE, 0x1FABE, prID, gcCn},   //         <reserved-1FABE>\n\t{0x1FABF, 0x1FAC2, prID, gcSo},   //     [4] GOOSE..PEOPLE HUGGING\n\t{0x1FAC3, 0x1FAC5, prEB, gcSo},   //     [3] PREGNANT MAN..PERSON WITH CROWN\n\t{0x1FAC6, 0x1FACD, prID, gcCn},   //     [8] <reserved-1FAC6>..<reserved-1FACD>\n\t{0x1FACE, 0x1FADB, prID, gcSo},   //    [14] MOOSE..PEA POD\n\t{0x1FADC, 0x1FADF, prID, gcCn},   //     [4] <reserved-1FADC>..<reserved-1FADF>\n\t{0x1FAE0, 0x1FAE8, prID, gcSo},   //     [9] MELTING FACE..SHAKING FACE\n\t{0x1FAE9, 0x1FAEF, prID, gcCn},   //     [7] <reserved-1FAE9>..<reserved-1FAEF>\n\t{0x1FAF0, 0x1FAF8, prEB, gcSo},   //     [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND\n\t{0x1FAF9, 0x1FAFF, prID, gcCn},   //     [7] <reserved-1FAF9>..<reserved-1FAFF>\n\t{0x1FB00, 0x1FB92, prAL, gcSo},   //   [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK\n\t{0x1FB94, 0x1FBCA, prAL, gcSo},   //    [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON\n\t{0x1FBF0, 0x1FBF9, prNU, gcNd},   //    [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE\n\t{0x1FC00, 0x1FFFD, prID, gcCn},   //  [1022] <reserved-1FC00>..<reserved-1FFFD>\n\t{0x20000, 0x2A6DF, prID, gcLo},   // [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF\n\t{0x2A6E0, 0x2A6FF, prID, gcCn},   //    [32] <reserved-2A6E0>..<reserved-2A6FF>\n\t{0x2A700, 0x2B739, prID, gcLo},   //  [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739\n\t{0x2B73A, 0x2B73F, prID, gcCn},   //     [6] <reserved-2B73A>..<reserved-2B73F>\n\t{0x2B740, 0x2B81D, prID, gcLo},   //   [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D\n\t{0x2B81E, 0x2B81F, prID, gcCn},   //     [2] <reserved-2B81E>..<reserved-2B81F>\n\t{0x2B820, 0x2CEA1, prID, gcLo},   //  [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1\n\t{0x2CEA2, 0x2CEAF, prID, gcCn},   //    [14] <reserved-2CEA2>..<reserved-2CEAF>\n\t{0x2CEB0, 0x2EBE0, prID, gcLo},   //  [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0\n\t{0x2EBE1, 0x2F7FF, prID, gcCn},   //  [3103] <reserved-2EBE1>..<reserved-2F7FF>\n\t{0x2F800, 0x2FA1D, prID, gcLo},   //   [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D\n\t{0x2FA1E, 0x2FA1F, prID, gcCn},   //     [2] <reserved-2FA1E>..<reserved-2FA1F>\n\t{0x2FA20, 0x2FFFD, prID, gcCn},   //  [1502] <reserved-2FA20>..<reserved-2FFFD>\n\t{0x30000, 0x3134A, prID, gcLo},   //  [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A\n\t{0x3134B, 0x3134F, prID, gcCn},   //     [5] <reserved-3134B>..<reserved-3134F>\n\t{0x31350, 0x323AF, prID, gcLo},   //  [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF\n\t{0x323B0, 0x3FFFD, prID, gcCn},   // [56398] <reserved-323B0>..<reserved-3FFFD>\n\t{0xE0001, 0xE0001, prCM, gcCf},   //         LANGUAGE TAG\n\t{0xE0020, 0xE007F, prCM, gcCf},   //    [96] TAG SPACE..CANCEL TAG\n\t{0xE0100, 0xE01EF, prCM, gcMn},   //   [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256\n\t{0xF0000, 0xFFFFD, prXX, gcCo},   // [65534] <private-use-F0000>..<private-use-FFFFD>\n\t{0x100000, 0x10FFFD, prXX, gcCo}, // [65534] <private-use-100000>..<private-use-10FFFD>\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/linerules.go",
    "content": "package uniseg\n\nimport \"unicode/utf8\"\n\n// The states of the line break parser.\nconst (\n\tlbAny = iota\n\tlbBK\n\tlbCR\n\tlbLF\n\tlbNL\n\tlbSP\n\tlbZW\n\tlbWJ\n\tlbGL\n\tlbBA\n\tlbHY\n\tlbCL\n\tlbCP\n\tlbEX\n\tlbIS\n\tlbSY\n\tlbOP\n\tlbQU\n\tlbQUSP\n\tlbNS\n\tlbCLCPSP\n\tlbB2\n\tlbB2SP\n\tlbCB\n\tlbBB\n\tlbLB21a\n\tlbHL\n\tlbAL\n\tlbNU\n\tlbPR\n\tlbEB\n\tlbIDEM\n\tlbNUNU\n\tlbNUSY\n\tlbNUIS\n\tlbNUCL\n\tlbNUCP\n\tlbPO\n\tlbJL\n\tlbJV\n\tlbJT\n\tlbH2\n\tlbH3\n\tlbOddRI\n\tlbEvenRI\n\tlbExtPicCn\n\tlbZWJBit     = 64\n\tlbCPeaFWHBit = 128\n)\n\n// These constants define whether a given text may be broken into the next line.\n// If the break is optional (LineCanBreak), you may choose to break or not based\n// on your own criteria, for example, if the text has reached the available\n// width.\nconst (\n\tLineDontBreak = iota // You may not break the line here.\n\tLineCanBreak         // You may or may not break the line here.\n\tLineMustBreak        // You must break the line here.\n)\n\n// lbTransitions implements the line break parser's state transitions. It's\n// anologous to [grTransitions], see comments there for details.\n//\n// Unicode version 15.0.0.\nfunc lbTransitions(state, prop int) (newState, lineBreak, rule int) {\n\tswitch uint64(state) | uint64(prop)<<32 {\n\t// LB4.\n\tcase lbBK | prAny<<32:\n\t\treturn lbAny, LineMustBreak, 40\n\n\t// LB5.\n\tcase lbCR | prLF<<32:\n\t\treturn lbLF, LineDontBreak, 50\n\tcase lbCR | prAny<<32:\n\t\treturn lbAny, LineMustBreak, 50\n\tcase lbLF | prAny<<32:\n\t\treturn lbAny, LineMustBreak, 50\n\tcase lbNL | prAny<<32:\n\t\treturn lbAny, LineMustBreak, 50\n\n\t// LB6.\n\tcase lbAny | prBK<<32:\n\t\treturn lbBK, LineDontBreak, 60\n\tcase lbAny | prCR<<32:\n\t\treturn lbCR, LineDontBreak, 60\n\tcase lbAny | prLF<<32:\n\t\treturn lbLF, LineDontBreak, 60\n\tcase lbAny | prNL<<32:\n\t\treturn lbNL, LineDontBreak, 60\n\n\t// LB7.\n\tcase lbAny | prSP<<32:\n\t\treturn lbSP, LineDontBreak, 70\n\tcase lbAny | prZW<<32:\n\t\treturn lbZW, LineDontBreak, 70\n\n\t// LB8.\n\tcase lbZW | prSP<<32:\n\t\treturn lbZW, LineDontBreak, 70\n\tcase lbZW | prAny<<32:\n\t\treturn lbAny, LineCanBreak, 80\n\n\t// LB11.\n\tcase lbAny | prWJ<<32:\n\t\treturn lbWJ, LineDontBreak, 110\n\tcase lbWJ | prAny<<32:\n\t\treturn lbAny, LineDontBreak, 110\n\n\t// LB12.\n\tcase lbAny | prGL<<32:\n\t\treturn lbGL, LineCanBreak, 310\n\tcase lbGL | prAny<<32:\n\t\treturn lbAny, LineDontBreak, 120\n\n\t// LB13 (simple transitions).\n\tcase lbAny | prCL<<32:\n\t\treturn lbCL, LineCanBreak, 310\n\tcase lbAny | prCP<<32:\n\t\treturn lbCP, LineCanBreak, 310\n\tcase lbAny | prEX<<32:\n\t\treturn lbEX, LineDontBreak, 130\n\tcase lbAny | prIS<<32:\n\t\treturn lbIS, LineCanBreak, 310\n\tcase lbAny | prSY<<32:\n\t\treturn lbSY, LineCanBreak, 310\n\n\t// LB14.\n\tcase lbAny | prOP<<32:\n\t\treturn lbOP, LineCanBreak, 310\n\tcase lbOP | prSP<<32:\n\t\treturn lbOP, LineDontBreak, 70\n\tcase lbOP | prAny<<32:\n\t\treturn lbAny, LineDontBreak, 140\n\n\t// LB15.\n\tcase lbQU | prSP<<32:\n\t\treturn lbQUSP, LineDontBreak, 70\n\tcase lbQU | prOP<<32:\n\t\treturn lbOP, LineDontBreak, 150\n\tcase lbQUSP | prOP<<32:\n\t\treturn lbOP, LineDontBreak, 150\n\n\t// LB16.\n\tcase lbCL | prSP<<32:\n\t\treturn lbCLCPSP, LineDontBreak, 70\n\tcase lbNUCL | prSP<<32:\n\t\treturn lbCLCPSP, LineDontBreak, 70\n\tcase lbCP | prSP<<32:\n\t\treturn lbCLCPSP, LineDontBreak, 70\n\tcase lbNUCP | prSP<<32:\n\t\treturn lbCLCPSP, LineDontBreak, 70\n\tcase lbCL | prNS<<32:\n\t\treturn lbNS, LineDontBreak, 160\n\tcase lbNUCL | prNS<<32:\n\t\treturn lbNS, LineDontBreak, 160\n\tcase lbCP | prNS<<32:\n\t\treturn lbNS, LineDontBreak, 160\n\tcase lbNUCP | prNS<<32:\n\t\treturn lbNS, LineDontBreak, 160\n\tcase lbCLCPSP | prNS<<32:\n\t\treturn lbNS, LineDontBreak, 160\n\n\t// LB17.\n\tcase lbAny | prB2<<32:\n\t\treturn lbB2, LineCanBreak, 310\n\tcase lbB2 | prSP<<32:\n\t\treturn lbB2SP, LineDontBreak, 70\n\tcase lbB2 | prB2<<32:\n\t\treturn lbB2, LineDontBreak, 170\n\tcase lbB2SP | prB2<<32:\n\t\treturn lbB2, LineDontBreak, 170\n\n\t// LB18.\n\tcase lbSP | prAny<<32:\n\t\treturn lbAny, LineCanBreak, 180\n\tcase lbQUSP | prAny<<32:\n\t\treturn lbAny, LineCanBreak, 180\n\tcase lbCLCPSP | prAny<<32:\n\t\treturn lbAny, LineCanBreak, 180\n\tcase lbB2SP | prAny<<32:\n\t\treturn lbAny, LineCanBreak, 180\n\n\t// LB19.\n\tcase lbAny | prQU<<32:\n\t\treturn lbQU, LineDontBreak, 190\n\tcase lbQU | prAny<<32:\n\t\treturn lbAny, LineDontBreak, 190\n\n\t// LB20.\n\tcase lbAny | prCB<<32:\n\t\treturn lbCB, LineCanBreak, 200\n\tcase lbCB | prAny<<32:\n\t\treturn lbAny, LineCanBreak, 200\n\n\t// LB21.\n\tcase lbAny | prBA<<32:\n\t\treturn lbBA, LineDontBreak, 210\n\tcase lbAny | prHY<<32:\n\t\treturn lbHY, LineDontBreak, 210\n\tcase lbAny | prNS<<32:\n\t\treturn lbNS, LineDontBreak, 210\n\tcase lbAny | prBB<<32:\n\t\treturn lbBB, LineCanBreak, 310\n\tcase lbBB | prAny<<32:\n\t\treturn lbAny, LineDontBreak, 210\n\n\t// LB21a.\n\tcase lbAny | prHL<<32:\n\t\treturn lbHL, LineCanBreak, 310\n\tcase lbHL | prHY<<32:\n\t\treturn lbLB21a, LineDontBreak, 210\n\tcase lbHL | prBA<<32:\n\t\treturn lbLB21a, LineDontBreak, 210\n\tcase lbLB21a | prAny<<32:\n\t\treturn lbAny, LineDontBreak, 211\n\n\t// LB21b.\n\tcase lbSY | prHL<<32:\n\t\treturn lbHL, LineDontBreak, 212\n\tcase lbNUSY | prHL<<32:\n\t\treturn lbHL, LineDontBreak, 212\n\n\t// LB22.\n\tcase lbAny | prIN<<32:\n\t\treturn lbAny, LineDontBreak, 220\n\n\t// LB23.\n\tcase lbAny | prAL<<32:\n\t\treturn lbAL, LineCanBreak, 310\n\tcase lbAny | prNU<<32:\n\t\treturn lbNU, LineCanBreak, 310\n\tcase lbAL | prNU<<32:\n\t\treturn lbNU, LineDontBreak, 230\n\tcase lbHL | prNU<<32:\n\t\treturn lbNU, LineDontBreak, 230\n\tcase lbNU | prAL<<32:\n\t\treturn lbAL, LineDontBreak, 230\n\tcase lbNU | prHL<<32:\n\t\treturn lbHL, LineDontBreak, 230\n\tcase lbNUNU | prAL<<32:\n\t\treturn lbAL, LineDontBreak, 230\n\tcase lbNUNU | prHL<<32:\n\t\treturn lbHL, LineDontBreak, 230\n\n\t// LB23a.\n\tcase lbAny | prPR<<32:\n\t\treturn lbPR, LineCanBreak, 310\n\tcase lbAny | prID<<32:\n\t\treturn lbIDEM, LineCanBreak, 310\n\tcase lbAny | prEB<<32:\n\t\treturn lbEB, LineCanBreak, 310\n\tcase lbAny | prEM<<32:\n\t\treturn lbIDEM, LineCanBreak, 310\n\tcase lbPR | prID<<32:\n\t\treturn lbIDEM, LineDontBreak, 231\n\tcase lbPR | prEB<<32:\n\t\treturn lbEB, LineDontBreak, 231\n\tcase lbPR | prEM<<32:\n\t\treturn lbIDEM, LineDontBreak, 231\n\tcase lbIDEM | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 231\n\tcase lbEB | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 231\n\n\t// LB24.\n\tcase lbAny | prPO<<32:\n\t\treturn lbPO, LineCanBreak, 310\n\tcase lbPR | prAL<<32:\n\t\treturn lbAL, LineDontBreak, 240\n\tcase lbPR | prHL<<32:\n\t\treturn lbHL, LineDontBreak, 240\n\tcase lbPO | prAL<<32:\n\t\treturn lbAL, LineDontBreak, 240\n\tcase lbPO | prHL<<32:\n\t\treturn lbHL, LineDontBreak, 240\n\tcase lbAL | prPR<<32:\n\t\treturn lbPR, LineDontBreak, 240\n\tcase lbAL | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 240\n\tcase lbHL | prPR<<32:\n\t\treturn lbPR, LineDontBreak, 240\n\tcase lbHL | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 240\n\n\t// LB25 (simple transitions).\n\tcase lbPR | prNU<<32:\n\t\treturn lbNU, LineDontBreak, 250\n\tcase lbPO | prNU<<32:\n\t\treturn lbNU, LineDontBreak, 250\n\tcase lbOP | prNU<<32:\n\t\treturn lbNU, LineDontBreak, 250\n\tcase lbHY | prNU<<32:\n\t\treturn lbNU, LineDontBreak, 250\n\tcase lbNU | prNU<<32:\n\t\treturn lbNUNU, LineDontBreak, 250\n\tcase lbNU | prSY<<32:\n\t\treturn lbNUSY, LineDontBreak, 250\n\tcase lbNU | prIS<<32:\n\t\treturn lbNUIS, LineDontBreak, 250\n\tcase lbNUNU | prNU<<32:\n\t\treturn lbNUNU, LineDontBreak, 250\n\tcase lbNUNU | prSY<<32:\n\t\treturn lbNUSY, LineDontBreak, 250\n\tcase lbNUNU | prIS<<32:\n\t\treturn lbNUIS, LineDontBreak, 250\n\tcase lbNUSY | prNU<<32:\n\t\treturn lbNUNU, LineDontBreak, 250\n\tcase lbNUSY | prSY<<32:\n\t\treturn lbNUSY, LineDontBreak, 250\n\tcase lbNUSY | prIS<<32:\n\t\treturn lbNUIS, LineDontBreak, 250\n\tcase lbNUIS | prNU<<32:\n\t\treturn lbNUNU, LineDontBreak, 250\n\tcase lbNUIS | prSY<<32:\n\t\treturn lbNUSY, LineDontBreak, 250\n\tcase lbNUIS | prIS<<32:\n\t\treturn lbNUIS, LineDontBreak, 250\n\tcase lbNU | prCL<<32:\n\t\treturn lbNUCL, LineDontBreak, 250\n\tcase lbNU | prCP<<32:\n\t\treturn lbNUCP, LineDontBreak, 250\n\tcase lbNUNU | prCL<<32:\n\t\treturn lbNUCL, LineDontBreak, 250\n\tcase lbNUNU | prCP<<32:\n\t\treturn lbNUCP, LineDontBreak, 250\n\tcase lbNUSY | prCL<<32:\n\t\treturn lbNUCL, LineDontBreak, 250\n\tcase lbNUSY | prCP<<32:\n\t\treturn lbNUCP, LineDontBreak, 250\n\tcase lbNUIS | prCL<<32:\n\t\treturn lbNUCL, LineDontBreak, 250\n\tcase lbNUIS | prCP<<32:\n\t\treturn lbNUCP, LineDontBreak, 250\n\tcase lbNU | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 250\n\tcase lbNUNU | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 250\n\tcase lbNUSY | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 250\n\tcase lbNUIS | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 250\n\tcase lbNUCL | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 250\n\tcase lbNUCP | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 250\n\tcase lbNU | prPR<<32:\n\t\treturn lbPR, LineDontBreak, 250\n\tcase lbNUNU | prPR<<32:\n\t\treturn lbPR, LineDontBreak, 250\n\tcase lbNUSY | prPR<<32:\n\t\treturn lbPR, LineDontBreak, 250\n\tcase lbNUIS | prPR<<32:\n\t\treturn lbPR, LineDontBreak, 250\n\tcase lbNUCL | prPR<<32:\n\t\treturn lbPR, LineDontBreak, 250\n\tcase lbNUCP | prPR<<32:\n\t\treturn lbPR, LineDontBreak, 250\n\n\t// LB26.\n\tcase lbAny | prJL<<32:\n\t\treturn lbJL, LineCanBreak, 310\n\tcase lbAny | prJV<<32:\n\t\treturn lbJV, LineCanBreak, 310\n\tcase lbAny | prJT<<32:\n\t\treturn lbJT, LineCanBreak, 310\n\tcase lbAny | prH2<<32:\n\t\treturn lbH2, LineCanBreak, 310\n\tcase lbAny | prH3<<32:\n\t\treturn lbH3, LineCanBreak, 310\n\tcase lbJL | prJL<<32:\n\t\treturn lbJL, LineDontBreak, 260\n\tcase lbJL | prJV<<32:\n\t\treturn lbJV, LineDontBreak, 260\n\tcase lbJL | prH2<<32:\n\t\treturn lbH2, LineDontBreak, 260\n\tcase lbJL | prH3<<32:\n\t\treturn lbH3, LineDontBreak, 260\n\tcase lbJV | prJV<<32:\n\t\treturn lbJV, LineDontBreak, 260\n\tcase lbJV | prJT<<32:\n\t\treturn lbJT, LineDontBreak, 260\n\tcase lbH2 | prJV<<32:\n\t\treturn lbJV, LineDontBreak, 260\n\tcase lbH2 | prJT<<32:\n\t\treturn lbJT, LineDontBreak, 260\n\tcase lbJT | prJT<<32:\n\t\treturn lbJT, LineDontBreak, 260\n\tcase lbH3 | prJT<<32:\n\t\treturn lbJT, LineDontBreak, 260\n\n\t// LB27.\n\tcase lbJL | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 270\n\tcase lbJV | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 270\n\tcase lbJT | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 270\n\tcase lbH2 | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 270\n\tcase lbH3 | prPO<<32:\n\t\treturn lbPO, LineDontBreak, 270\n\tcase lbPR | prJL<<32:\n\t\treturn lbJL, LineDontBreak, 270\n\tcase lbPR | prJV<<32:\n\t\treturn lbJV, LineDontBreak, 270\n\tcase lbPR | prJT<<32:\n\t\treturn lbJT, LineDontBreak, 270\n\tcase lbPR | prH2<<32:\n\t\treturn lbH2, LineDontBreak, 270\n\tcase lbPR | prH3<<32:\n\t\treturn lbH3, LineDontBreak, 270\n\n\t// LB28.\n\tcase lbAL | prAL<<32:\n\t\treturn lbAL, LineDontBreak, 280\n\tcase lbAL | prHL<<32:\n\t\treturn lbHL, LineDontBreak, 280\n\tcase lbHL | prAL<<32:\n\t\treturn lbAL, LineDontBreak, 280\n\tcase lbHL | prHL<<32:\n\t\treturn lbHL, LineDontBreak, 280\n\n\t// LB29.\n\tcase lbIS | prAL<<32:\n\t\treturn lbAL, LineDontBreak, 290\n\tcase lbIS | prHL<<32:\n\t\treturn lbHL, LineDontBreak, 290\n\tcase lbNUIS | prAL<<32:\n\t\treturn lbAL, LineDontBreak, 290\n\tcase lbNUIS | prHL<<32:\n\t\treturn lbHL, LineDontBreak, 290\n\n\tdefault:\n\t\treturn -1, -1, -1\n\t}\n}\n\n// transitionLineBreakState determines the new state of the line break parser\n// given the current state and the next code point. It also returns the type of\n// line break: LineDontBreak, LineCanBreak, or LineMustBreak. If more than one\n// code point is needed to determine the new state, the byte slice or the string\n// starting after rune \"r\" can be used (whichever is not nil or empty) for\n// further lookups.\nfunc transitionLineBreakState(state int, r rune, b []byte, str string) (newState int, lineBreak int) {\n\t// Determine the property of the next character.\n\tnextProperty, generalCategory := propertyLineBreak(r)\n\n\t// Prepare.\n\tvar forceNoBreak, isCPeaFWH bool\n\tif state >= 0 && state&lbCPeaFWHBit != 0 {\n\t\tisCPeaFWH = true // LB30: CP but ea is not F, W, or H.\n\t\tstate = state &^ lbCPeaFWHBit\n\t}\n\tif state >= 0 && state&lbZWJBit != 0 {\n\t\tstate = state &^ lbZWJBit // Extract zero-width joiner bit.\n\t\tforceNoBreak = true       // LB8a.\n\t}\n\n\tdefer func() {\n\t\t// Transition into LB30.\n\t\tif newState == lbCP || newState == lbNUCP {\n\t\t\tea := propertyEastAsianWidth(r)\n\t\t\tif ea != prF && ea != prW && ea != prH {\n\t\t\t\tnewState |= lbCPeaFWHBit\n\t\t\t}\n\t\t}\n\n\t\t// Override break.\n\t\tif forceNoBreak {\n\t\t\tlineBreak = LineDontBreak\n\t\t}\n\t}()\n\n\t// LB1.\n\tif nextProperty == prAI || nextProperty == prSG || nextProperty == prXX {\n\t\tnextProperty = prAL\n\t} else if nextProperty == prSA {\n\t\tif generalCategory == gcMn || generalCategory == gcMc {\n\t\t\tnextProperty = prCM\n\t\t} else {\n\t\t\tnextProperty = prAL\n\t\t}\n\t} else if nextProperty == prCJ {\n\t\tnextProperty = prNS\n\t}\n\n\t// Combining marks.\n\tif nextProperty == prZWJ || nextProperty == prCM {\n\t\tvar bit int\n\t\tif nextProperty == prZWJ {\n\t\t\tbit = lbZWJBit\n\t\t}\n\t\tmustBreakState := state < 0 || state == lbBK || state == lbCR || state == lbLF || state == lbNL\n\t\tif !mustBreakState && state != lbSP && state != lbZW && state != lbQUSP && state != lbCLCPSP && state != lbB2SP {\n\t\t\t// LB9.\n\t\t\treturn state | bit, LineDontBreak\n\t\t} else {\n\t\t\t// LB10.\n\t\t\tif mustBreakState {\n\t\t\t\treturn lbAL | bit, LineMustBreak\n\t\t\t}\n\t\t\treturn lbAL | bit, LineCanBreak\n\t\t}\n\t}\n\n\t// Find the applicable transition in the table.\n\tvar rule int\n\tnewState, lineBreak, rule = lbTransitions(state, nextProperty)\n\tif newState < 0 {\n\t\t// No specific transition found. Try the less specific ones.\n\t\tanyPropProp, anyPropLineBreak, anyPropRule := lbTransitions(state, prAny)\n\t\tanyStateProp, anyStateLineBreak, anyStateRule := lbTransitions(lbAny, nextProperty)\n\t\tif anyPropProp >= 0 && anyStateProp >= 0 {\n\t\t\t// Both apply. We'll use a mix (see comments for grTransitions).\n\t\t\tnewState, lineBreak, rule = anyStateProp, anyStateLineBreak, anyStateRule\n\t\t\tif anyPropRule < anyStateRule {\n\t\t\t\tlineBreak, rule = anyPropLineBreak, anyPropRule\n\t\t\t}\n\t\t} else if anyPropProp >= 0 {\n\t\t\t// We only have a specific state.\n\t\t\tnewState, lineBreak, rule = anyPropProp, anyPropLineBreak, anyPropRule\n\t\t\t// This branch will probably never be reached because okAnyState will\n\t\t\t// always be true given the current transition map. But we keep it here\n\t\t\t// for future modifications to the transition map where this may not be\n\t\t\t// true anymore.\n\t\t} else if anyStateProp >= 0 {\n\t\t\t// We only have a specific property.\n\t\t\tnewState, lineBreak, rule = anyStateProp, anyStateLineBreak, anyStateRule\n\t\t} else {\n\t\t\t// No known transition. LB31: ALL ÷ ALL.\n\t\t\tnewState, lineBreak, rule = lbAny, LineCanBreak, 310\n\t\t}\n\t}\n\n\t// LB12a.\n\tif rule > 121 &&\n\t\tnextProperty == prGL &&\n\t\t(state != lbSP && state != lbBA && state != lbHY && state != lbLB21a && state != lbQUSP && state != lbCLCPSP && state != lbB2SP) {\n\t\treturn lbGL, LineDontBreak\n\t}\n\n\t// LB13.\n\tif rule > 130 && state != lbNU && state != lbNUNU {\n\t\tswitch nextProperty {\n\t\tcase prCL:\n\t\t\treturn lbCL, LineDontBreak\n\t\tcase prCP:\n\t\t\treturn lbCP, LineDontBreak\n\t\tcase prIS:\n\t\t\treturn lbIS, LineDontBreak\n\t\tcase prSY:\n\t\t\treturn lbSY, LineDontBreak\n\t\t}\n\t}\n\n\t// LB25 (look ahead).\n\tif rule > 250 &&\n\t\t(state == lbPR || state == lbPO) &&\n\t\tnextProperty == prOP || nextProperty == prHY {\n\t\tvar r rune\n\t\tif b != nil { // Byte slice version.\n\t\t\tr, _ = utf8.DecodeRune(b)\n\t\t} else { // String version.\n\t\t\tr, _ = utf8.DecodeRuneInString(str)\n\t\t}\n\t\tif r != utf8.RuneError {\n\t\t\tpr, _ := propertyLineBreak(r)\n\t\t\tif pr == prNU {\n\t\t\t\treturn lbNU, LineDontBreak\n\t\t\t}\n\t\t}\n\t}\n\n\t// LB30 (part one).\n\tif rule > 300 {\n\t\tif (state == lbAL || state == lbHL || state == lbNU || state == lbNUNU) && nextProperty == prOP {\n\t\t\tea := propertyEastAsianWidth(r)\n\t\t\tif ea != prF && ea != prW && ea != prH {\n\t\t\t\treturn lbOP, LineDontBreak\n\t\t\t}\n\t\t} else if isCPeaFWH {\n\t\t\tswitch nextProperty {\n\t\t\tcase prAL:\n\t\t\t\treturn lbAL, LineDontBreak\n\t\t\tcase prHL:\n\t\t\t\treturn lbHL, LineDontBreak\n\t\t\tcase prNU:\n\t\t\t\treturn lbNU, LineDontBreak\n\t\t\t}\n\t\t}\n\t}\n\n\t// LB30a.\n\tif newState == lbAny && nextProperty == prRI {\n\t\tif state != lbOddRI && state != lbEvenRI { // Includes state == -1.\n\t\t\t// Transition into the first RI.\n\t\t\treturn lbOddRI, lineBreak\n\t\t}\n\t\tif state == lbOddRI {\n\t\t\t// Don't break pairs of Regional Indicators.\n\t\t\treturn lbEvenRI, LineDontBreak\n\t\t}\n\t\treturn lbOddRI, lineBreak\n\t}\n\n\t// LB30b.\n\tif rule > 302 {\n\t\tif nextProperty == prEM {\n\t\t\tif state == lbEB || state == lbExtPicCn {\n\t\t\t\treturn prAny, LineDontBreak\n\t\t\t}\n\t\t}\n\t\tgraphemeProperty := propertyGraphemes(r)\n\t\tif graphemeProperty == prExtendedPictographic && generalCategory == gcCn {\n\t\t\treturn lbExtPicCn, LineCanBreak\n\t\t}\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/properties.go",
    "content": "package uniseg\n\n// The Unicode properties as used in the various parsers. Only the ones needed\n// in the context of this package are included.\nconst (\n\tprXX      = 0    // Same as prAny.\n\tprAny     = iota // prAny must be 0.\n\tprPrepend        // Grapheme properties must come first, to reduce the number of bits stored in the state vector.\n\tprCR\n\tprLF\n\tprControl\n\tprExtend\n\tprRegionalIndicator\n\tprSpacingMark\n\tprL\n\tprV\n\tprT\n\tprLV\n\tprLVT\n\tprZWJ\n\tprExtendedPictographic\n\tprNewline\n\tprWSegSpace\n\tprDoubleQuote\n\tprSingleQuote\n\tprMidNumLet\n\tprNumeric\n\tprMidLetter\n\tprMidNum\n\tprExtendNumLet\n\tprALetter\n\tprFormat\n\tprHebrewLetter\n\tprKatakana\n\tprSp\n\tprSTerm\n\tprClose\n\tprSContinue\n\tprATerm\n\tprUpper\n\tprLower\n\tprSep\n\tprOLetter\n\tprCM\n\tprBA\n\tprBK\n\tprSP\n\tprEX\n\tprQU\n\tprAL\n\tprPR\n\tprPO\n\tprOP\n\tprCP\n\tprIS\n\tprHY\n\tprSY\n\tprNU\n\tprCL\n\tprNL\n\tprGL\n\tprAI\n\tprBB\n\tprHL\n\tprSA\n\tprJL\n\tprJV\n\tprJT\n\tprNS\n\tprZW\n\tprB2\n\tprIN\n\tprWJ\n\tprID\n\tprEB\n\tprCJ\n\tprH2\n\tprH3\n\tprSG\n\tprCB\n\tprRI\n\tprEM\n\tprN\n\tprNa\n\tprA\n\tprW\n\tprH\n\tprF\n\tprEmojiPresentation\n)\n\n// Unicode General Categories. Only the ones needed in the context of this\n// package are included.\nconst (\n\tgcNone = iota // gcNone must be 0.\n\tgcCc\n\tgcZs\n\tgcPo\n\tgcSc\n\tgcPs\n\tgcPe\n\tgcSm\n\tgcPd\n\tgcNd\n\tgcLu\n\tgcSk\n\tgcPc\n\tgcLl\n\tgcSo\n\tgcLo\n\tgcPi\n\tgcCf\n\tgcNo\n\tgcPf\n\tgcLC\n\tgcLm\n\tgcMn\n\tgcMe\n\tgcMc\n\tgcNl\n\tgcZl\n\tgcZp\n\tgcCn\n\tgcCs\n\tgcCo\n)\n\n// Special code points.\nconst (\n\tvs15 = 0xfe0e // Variation Selector-15 (text presentation)\n\tvs16 = 0xfe0f // Variation Selector-16 (emoji presentation)\n)\n\n// propertySearch performs a binary search on a property slice and returns the\n// entry whose range (start = first array element, end = second array element)\n// includes r, or an array of 0's if no such entry was found.\nfunc propertySearch[E interface{ [3]int | [4]int }](dictionary []E, r rune) (result E) {\n\t// Run a binary search.\n\tfrom := 0\n\tto := len(dictionary)\n\tfor to > from {\n\t\tmiddle := (from + to) / 2\n\t\tcpRange := dictionary[middle]\n\t\tif int(r) < cpRange[0] {\n\t\t\tto = middle\n\t\t\tcontinue\n\t\t}\n\t\tif int(r) > cpRange[1] {\n\t\t\tfrom = middle + 1\n\t\t\tcontinue\n\t\t}\n\t\treturn cpRange\n\t}\n\treturn\n}\n\n// property returns the Unicode property value (see constants above) of the\n// given code point.\nfunc property(dictionary [][3]int, r rune) int {\n\treturn propertySearch(dictionary, r)[2]\n}\n\n// propertyLineBreak returns the Unicode property value and General Category\n// (see constants above) of the given code point, as listed in the line break\n// code points table, while fast tracking ASCII digits and letters.\nfunc propertyLineBreak(r rune) (property, generalCategory int) {\n\tif r >= 'a' && r <= 'z' {\n\t\treturn prAL, gcLl\n\t}\n\tif r >= 'A' && r <= 'Z' {\n\t\treturn prAL, gcLu\n\t}\n\tif r >= '0' && r <= '9' {\n\t\treturn prNU, gcNd\n\t}\n\tentry := propertySearch(lineBreakCodePoints, r)\n\treturn entry[2], entry[3]\n}\n\n// propertyGraphemes returns the Unicode grapheme cluster property value of the\n// given code point while fast tracking ASCII characters.\nfunc propertyGraphemes(r rune) int {\n\tif r >= 0x20 && r <= 0x7e {\n\t\treturn prAny\n\t}\n\tif r == 0x0a {\n\t\treturn prLF\n\t}\n\tif r == 0x0d {\n\t\treturn prCR\n\t}\n\tif r >= 0 && r <= 0x1f || r == 0x7f {\n\t\treturn prControl\n\t}\n\treturn property(graphemeCodePoints, r)\n}\n\n// propertyEastAsianWidth returns the Unicode East Asian Width property value of\n// the given code point while fast tracking ASCII characters.\nfunc propertyEastAsianWidth(r rune) int {\n\tif r >= 0x20 && r <= 0x7e {\n\t\treturn prNa\n\t}\n\tif r >= 0 && r <= 0x1f || r == 0x7f {\n\t\treturn prN\n\t}\n\treturn property(eastAsianWidth, r)\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/sentence.go",
    "content": "package uniseg\n\nimport \"unicode/utf8\"\n\n// FirstSentence returns the first sentence found in the given byte slice\n// according to the rules of [Unicode Standard Annex #29, Sentence Boundaries].\n// This function can be called continuously to extract all sentences from a byte\n// slice, as illustrated in the example below.\n//\n// If you don't know the current state, for example when calling the function\n// for the first time, you must pass -1. For consecutive calls, pass the state\n// and rest slice returned by the previous call.\n//\n// The \"rest\" slice is the sub-slice of the original byte slice \"b\" starting\n// after the last byte of the identified sentence. If the length of the \"rest\"\n// slice is 0, the entire byte slice \"b\" has been processed. The \"sentence\" byte\n// slice is the sub-slice of the input slice containing the identified sentence.\n//\n// Given an empty byte slice \"b\", the function returns nil values.\n//\n// [Unicode Standard Annex #29, Sentence Boundaries]: http://unicode.org/reports/tr29/#Sentence_Boundaries\nfunc FirstSentence(b []byte, state int) (sentence, rest []byte, newState int) {\n\t// An empty byte slice returns nothing.\n\tif len(b) == 0 {\n\t\treturn\n\t}\n\n\t// Extract the first rune.\n\tr, length := utf8.DecodeRune(b)\n\tif len(b) <= length { // If we're already past the end, there is nothing else to parse.\n\t\treturn b, nil, sbAny\n\t}\n\n\t// If we don't know the state, determine it now.\n\tif state < 0 {\n\t\tstate, _ = transitionSentenceBreakState(state, r, b[length:], \"\")\n\t}\n\n\t// Transition until we find a boundary.\n\tvar boundary bool\n\tfor {\n\t\tr, l := utf8.DecodeRune(b[length:])\n\t\tstate, boundary = transitionSentenceBreakState(state, r, b[length+l:], \"\")\n\n\t\tif boundary {\n\t\t\treturn b[:length], b[length:], state\n\t\t}\n\n\t\tlength += l\n\t\tif len(b) <= length {\n\t\t\treturn b, nil, sbAny\n\t\t}\n\t}\n}\n\n// FirstSentenceInString is like [FirstSentence] but its input and outputs are\n// strings.\nfunc FirstSentenceInString(str string, state int) (sentence, rest string, newState int) {\n\t// An empty byte slice returns nothing.\n\tif len(str) == 0 {\n\t\treturn\n\t}\n\n\t// Extract the first rune.\n\tr, length := utf8.DecodeRuneInString(str)\n\tif len(str) <= length { // If we're already past the end, there is nothing else to parse.\n\t\treturn str, \"\", sbAny\n\t}\n\n\t// If we don't know the state, determine it now.\n\tif state < 0 {\n\t\tstate, _ = transitionSentenceBreakState(state, r, nil, str[length:])\n\t}\n\n\t// Transition until we find a boundary.\n\tvar boundary bool\n\tfor {\n\t\tr, l := utf8.DecodeRuneInString(str[length:])\n\t\tstate, boundary = transitionSentenceBreakState(state, r, nil, str[length+l:])\n\n\t\tif boundary {\n\t\t\treturn str[:length], str[length:], state\n\t\t}\n\n\t\tlength += l\n\t\tif len(str) <= length {\n\t\t\treturn str, \"\", sbAny\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/sentenceproperties.go",
    "content": "// Code generated via go generate from gen_properties.go. DO NOT EDIT.\n\npackage uniseg\n\n// sentenceBreakCodePoints are taken from\n// https://www.unicode.org/Public/15.0.0/ucd/auxiliary/SentenceBreakProperty.txt\n// and\n// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt\n// (\"Extended_Pictographic\" only)\n// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode\n// license agreement.\nvar sentenceBreakCodePoints = [][3]int{\n\t{0x0009, 0x0009, prSp},        // Cc       <control-0009>\n\t{0x000A, 0x000A, prLF},        // Cc       <control-000A>\n\t{0x000B, 0x000C, prSp},        // Cc   [2] <control-000B>..<control-000C>\n\t{0x000D, 0x000D, prCR},        // Cc       <control-000D>\n\t{0x0020, 0x0020, prSp},        // Zs       SPACE\n\t{0x0021, 0x0021, prSTerm},     // Po       EXCLAMATION MARK\n\t{0x0022, 0x0022, prClose},     // Po       QUOTATION MARK\n\t{0x0027, 0x0027, prClose},     // Po       APOSTROPHE\n\t{0x0028, 0x0028, prClose},     // Ps       LEFT PARENTHESIS\n\t{0x0029, 0x0029, prClose},     // Pe       RIGHT PARENTHESIS\n\t{0x002C, 0x002C, prSContinue}, // Po       COMMA\n\t{0x002D, 0x002D, prSContinue}, // Pd       HYPHEN-MINUS\n\t{0x002E, 0x002E, prATerm},     // Po       FULL STOP\n\t{0x0030, 0x0039, prNumeric},   // Nd  [10] DIGIT ZERO..DIGIT NINE\n\t{0x003A, 0x003A, prSContinue}, // Po       COLON\n\t{0x003F, 0x003F, prSTerm},     // Po       QUESTION MARK\n\t{0x0041, 0x005A, prUpper},     // L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z\n\t{0x005B, 0x005B, prClose},     // Ps       LEFT SQUARE BRACKET\n\t{0x005D, 0x005D, prClose},     // Pe       RIGHT SQUARE BRACKET\n\t{0x0061, 0x007A, prLower},     // L&  [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z\n\t{0x007B, 0x007B, prClose},     // Ps       LEFT CURLY BRACKET\n\t{0x007D, 0x007D, prClose},     // Pe       RIGHT CURLY BRACKET\n\t{0x0085, 0x0085, prSep},       // Cc       <control-0085>\n\t{0x00A0, 0x00A0, prSp},        // Zs       NO-BREAK SPACE\n\t{0x00AA, 0x00AA, prLower},     // Lo       FEMININE ORDINAL INDICATOR\n\t{0x00AB, 0x00AB, prClose},     // Pi       LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\n\t{0x00AD, 0x00AD, prFormat},    // Cf       SOFT HYPHEN\n\t{0x00B5, 0x00B5, prLower},     // L&       MICRO SIGN\n\t{0x00BA, 0x00BA, prLower},     // Lo       MASCULINE ORDINAL INDICATOR\n\t{0x00BB, 0x00BB, prClose},     // Pf       RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\n\t{0x00C0, 0x00D6, prUpper},     // L&  [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS\n\t{0x00D8, 0x00DE, prUpper},     // L&   [7] LATIN CAPITAL LETTER O WITH STROKE..LATIN CAPITAL LETTER THORN\n\t{0x00DF, 0x00F6, prLower},     // L&  [24] LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS\n\t{0x00F8, 0x00FF, prLower},     // L&   [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS\n\t{0x0100, 0x0100, prUpper},     // L&       LATIN CAPITAL LETTER A WITH MACRON\n\t{0x0101, 0x0101, prLower},     // L&       LATIN SMALL LETTER A WITH MACRON\n\t{0x0102, 0x0102, prUpper},     // L&       LATIN CAPITAL LETTER A WITH BREVE\n\t{0x0103, 0x0103, prLower},     // L&       LATIN SMALL LETTER A WITH BREVE\n\t{0x0104, 0x0104, prUpper},     // L&       LATIN CAPITAL LETTER A WITH OGONEK\n\t{0x0105, 0x0105, prLower},     // L&       LATIN SMALL LETTER A WITH OGONEK\n\t{0x0106, 0x0106, prUpper},     // L&       LATIN CAPITAL LETTER C WITH ACUTE\n\t{0x0107, 0x0107, prLower},     // L&       LATIN SMALL LETTER C WITH ACUTE\n\t{0x0108, 0x0108, prUpper},     // L&       LATIN CAPITAL LETTER C WITH CIRCUMFLEX\n\t{0x0109, 0x0109, prLower},     // L&       LATIN SMALL LETTER C WITH CIRCUMFLEX\n\t{0x010A, 0x010A, prUpper},     // L&       LATIN CAPITAL LETTER C WITH DOT ABOVE\n\t{0x010B, 0x010B, prLower},     // L&       LATIN SMALL LETTER C WITH DOT ABOVE\n\t{0x010C, 0x010C, prUpper},     // L&       LATIN CAPITAL LETTER C WITH CARON\n\t{0x010D, 0x010D, prLower},     // L&       LATIN SMALL LETTER C WITH CARON\n\t{0x010E, 0x010E, prUpper},     // L&       LATIN CAPITAL LETTER D WITH CARON\n\t{0x010F, 0x010F, prLower},     // L&       LATIN SMALL LETTER D WITH CARON\n\t{0x0110, 0x0110, prUpper},     // L&       LATIN CAPITAL LETTER D WITH STROKE\n\t{0x0111, 0x0111, prLower},     // L&       LATIN SMALL LETTER D WITH STROKE\n\t{0x0112, 0x0112, prUpper},     // L&       LATIN CAPITAL LETTER E WITH MACRON\n\t{0x0113, 0x0113, prLower},     // L&       LATIN SMALL LETTER E WITH MACRON\n\t{0x0114, 0x0114, prUpper},     // L&       LATIN CAPITAL LETTER E WITH BREVE\n\t{0x0115, 0x0115, prLower},     // L&       LATIN SMALL LETTER E WITH BREVE\n\t{0x0116, 0x0116, prUpper},     // L&       LATIN CAPITAL LETTER E WITH DOT ABOVE\n\t{0x0117, 0x0117, prLower},     // L&       LATIN SMALL LETTER E WITH DOT ABOVE\n\t{0x0118, 0x0118, prUpper},     // L&       LATIN CAPITAL LETTER E WITH OGONEK\n\t{0x0119, 0x0119, prLower},     // L&       LATIN SMALL LETTER E WITH OGONEK\n\t{0x011A, 0x011A, prUpper},     // L&       LATIN CAPITAL LETTER E WITH CARON\n\t{0x011B, 0x011B, prLower},     // L&       LATIN SMALL LETTER E WITH CARON\n\t{0x011C, 0x011C, prUpper},     // L&       LATIN CAPITAL LETTER G WITH CIRCUMFLEX\n\t{0x011D, 0x011D, prLower},     // L&       LATIN SMALL LETTER G WITH CIRCUMFLEX\n\t{0x011E, 0x011E, prUpper},     // L&       LATIN CAPITAL LETTER G WITH BREVE\n\t{0x011F, 0x011F, prLower},     // L&       LATIN SMALL LETTER G WITH BREVE\n\t{0x0120, 0x0120, prUpper},     // L&       LATIN CAPITAL LETTER G WITH DOT ABOVE\n\t{0x0121, 0x0121, prLower},     // L&       LATIN SMALL LETTER G WITH DOT ABOVE\n\t{0x0122, 0x0122, prUpper},     // L&       LATIN CAPITAL LETTER G WITH CEDILLA\n\t{0x0123, 0x0123, prLower},     // L&       LATIN SMALL LETTER G WITH CEDILLA\n\t{0x0124, 0x0124, prUpper},     // L&       LATIN CAPITAL LETTER H WITH CIRCUMFLEX\n\t{0x0125, 0x0125, prLower},     // L&       LATIN SMALL LETTER H WITH CIRCUMFLEX\n\t{0x0126, 0x0126, prUpper},     // L&       LATIN CAPITAL LETTER H WITH STROKE\n\t{0x0127, 0x0127, prLower},     // L&       LATIN SMALL LETTER H WITH STROKE\n\t{0x0128, 0x0128, prUpper},     // L&       LATIN CAPITAL LETTER I WITH TILDE\n\t{0x0129, 0x0129, prLower},     // L&       LATIN SMALL LETTER I WITH TILDE\n\t{0x012A, 0x012A, prUpper},     // L&       LATIN CAPITAL LETTER I WITH MACRON\n\t{0x012B, 0x012B, prLower},     // L&       LATIN SMALL LETTER I WITH MACRON\n\t{0x012C, 0x012C, prUpper},     // L&       LATIN CAPITAL LETTER I WITH BREVE\n\t{0x012D, 0x012D, prLower},     // L&       LATIN SMALL LETTER I WITH BREVE\n\t{0x012E, 0x012E, prUpper},     // L&       LATIN CAPITAL LETTER I WITH OGONEK\n\t{0x012F, 0x012F, prLower},     // L&       LATIN SMALL LETTER I WITH OGONEK\n\t{0x0130, 0x0130, prUpper},     // L&       LATIN CAPITAL LETTER I WITH DOT ABOVE\n\t{0x0131, 0x0131, prLower},     // L&       LATIN SMALL LETTER DOTLESS I\n\t{0x0132, 0x0132, prUpper},     // L&       LATIN CAPITAL LIGATURE IJ\n\t{0x0133, 0x0133, prLower},     // L&       LATIN SMALL LIGATURE IJ\n\t{0x0134, 0x0134, prUpper},     // L&       LATIN CAPITAL LETTER J WITH CIRCUMFLEX\n\t{0x0135, 0x0135, prLower},     // L&       LATIN SMALL LETTER J WITH CIRCUMFLEX\n\t{0x0136, 0x0136, prUpper},     // L&       LATIN CAPITAL LETTER K WITH CEDILLA\n\t{0x0137, 0x0138, prLower},     // L&   [2] LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA\n\t{0x0139, 0x0139, prUpper},     // L&       LATIN CAPITAL LETTER L WITH ACUTE\n\t{0x013A, 0x013A, prLower},     // L&       LATIN SMALL LETTER L WITH ACUTE\n\t{0x013B, 0x013B, prUpper},     // L&       LATIN CAPITAL LETTER L WITH CEDILLA\n\t{0x013C, 0x013C, prLower},     // L&       LATIN SMALL LETTER L WITH CEDILLA\n\t{0x013D, 0x013D, prUpper},     // L&       LATIN CAPITAL LETTER L WITH CARON\n\t{0x013E, 0x013E, prLower},     // L&       LATIN SMALL LETTER L WITH CARON\n\t{0x013F, 0x013F, prUpper},     // L&       LATIN CAPITAL LETTER L WITH MIDDLE DOT\n\t{0x0140, 0x0140, prLower},     // L&       LATIN SMALL LETTER L WITH MIDDLE DOT\n\t{0x0141, 0x0141, prUpper},     // L&       LATIN CAPITAL LETTER L WITH STROKE\n\t{0x0142, 0x0142, prLower},     // L&       LATIN SMALL LETTER L WITH STROKE\n\t{0x0143, 0x0143, prUpper},     // L&       LATIN CAPITAL LETTER N WITH ACUTE\n\t{0x0144, 0x0144, prLower},     // L&       LATIN SMALL LETTER N WITH ACUTE\n\t{0x0145, 0x0145, prUpper},     // L&       LATIN CAPITAL LETTER N WITH CEDILLA\n\t{0x0146, 0x0146, prLower},     // L&       LATIN SMALL LETTER N WITH CEDILLA\n\t{0x0147, 0x0147, prUpper},     // L&       LATIN CAPITAL LETTER N WITH CARON\n\t{0x0148, 0x0149, prLower},     // L&   [2] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER N PRECEDED BY APOSTROPHE\n\t{0x014A, 0x014A, prUpper},     // L&       LATIN CAPITAL LETTER ENG\n\t{0x014B, 0x014B, prLower},     // L&       LATIN SMALL LETTER ENG\n\t{0x014C, 0x014C, prUpper},     // L&       LATIN CAPITAL LETTER O WITH MACRON\n\t{0x014D, 0x014D, prLower},     // L&       LATIN SMALL LETTER O WITH MACRON\n\t{0x014E, 0x014E, prUpper},     // L&       LATIN CAPITAL LETTER O WITH BREVE\n\t{0x014F, 0x014F, prLower},     // L&       LATIN SMALL LETTER O WITH BREVE\n\t{0x0150, 0x0150, prUpper},     // L&       LATIN CAPITAL LETTER O WITH DOUBLE ACUTE\n\t{0x0151, 0x0151, prLower},     // L&       LATIN SMALL LETTER O WITH DOUBLE ACUTE\n\t{0x0152, 0x0152, prUpper},     // L&       LATIN CAPITAL LIGATURE OE\n\t{0x0153, 0x0153, prLower},     // L&       LATIN SMALL LIGATURE OE\n\t{0x0154, 0x0154, prUpper},     // L&       LATIN CAPITAL LETTER R WITH ACUTE\n\t{0x0155, 0x0155, prLower},     // L&       LATIN SMALL LETTER R WITH ACUTE\n\t{0x0156, 0x0156, prUpper},     // L&       LATIN CAPITAL LETTER R WITH CEDILLA\n\t{0x0157, 0x0157, prLower},     // L&       LATIN SMALL LETTER R WITH CEDILLA\n\t{0x0158, 0x0158, prUpper},     // L&       LATIN CAPITAL LETTER R WITH CARON\n\t{0x0159, 0x0159, prLower},     // L&       LATIN SMALL LETTER R WITH CARON\n\t{0x015A, 0x015A, prUpper},     // L&       LATIN CAPITAL LETTER S WITH ACUTE\n\t{0x015B, 0x015B, prLower},     // L&       LATIN SMALL LETTER S WITH ACUTE\n\t{0x015C, 0x015C, prUpper},     // L&       LATIN CAPITAL LETTER S WITH CIRCUMFLEX\n\t{0x015D, 0x015D, prLower},     // L&       LATIN SMALL LETTER S WITH CIRCUMFLEX\n\t{0x015E, 0x015E, prUpper},     // L&       LATIN CAPITAL LETTER S WITH CEDILLA\n\t{0x015F, 0x015F, prLower},     // L&       LATIN SMALL LETTER S WITH CEDILLA\n\t{0x0160, 0x0160, prUpper},     // L&       LATIN CAPITAL LETTER S WITH CARON\n\t{0x0161, 0x0161, prLower},     // L&       LATIN SMALL LETTER S WITH CARON\n\t{0x0162, 0x0162, prUpper},     // L&       LATIN CAPITAL LETTER T WITH CEDILLA\n\t{0x0163, 0x0163, prLower},     // L&       LATIN SMALL LETTER T WITH CEDILLA\n\t{0x0164, 0x0164, prUpper},     // L&       LATIN CAPITAL LETTER T WITH CARON\n\t{0x0165, 0x0165, prLower},     // L&       LATIN SMALL LETTER T WITH CARON\n\t{0x0166, 0x0166, prUpper},     // L&       LATIN CAPITAL LETTER T WITH STROKE\n\t{0x0167, 0x0167, prLower},     // L&       LATIN SMALL LETTER T WITH STROKE\n\t{0x0168, 0x0168, prUpper},     // L&       LATIN CAPITAL LETTER U WITH TILDE\n\t{0x0169, 0x0169, prLower},     // L&       LATIN SMALL LETTER U WITH TILDE\n\t{0x016A, 0x016A, prUpper},     // L&       LATIN CAPITAL LETTER U WITH MACRON\n\t{0x016B, 0x016B, prLower},     // L&       LATIN SMALL LETTER U WITH MACRON\n\t{0x016C, 0x016C, prUpper},     // L&       LATIN CAPITAL LETTER U WITH BREVE\n\t{0x016D, 0x016D, prLower},     // L&       LATIN SMALL LETTER U WITH BREVE\n\t{0x016E, 0x016E, prUpper},     // L&       LATIN CAPITAL LETTER U WITH RING ABOVE\n\t{0x016F, 0x016F, prLower},     // L&       LATIN SMALL LETTER U WITH RING ABOVE\n\t{0x0170, 0x0170, prUpper},     // L&       LATIN CAPITAL LETTER U WITH DOUBLE ACUTE\n\t{0x0171, 0x0171, prLower},     // L&       LATIN SMALL LETTER U WITH DOUBLE ACUTE\n\t{0x0172, 0x0172, prUpper},     // L&       LATIN CAPITAL LETTER U WITH OGONEK\n\t{0x0173, 0x0173, prLower},     // L&       LATIN SMALL LETTER U WITH OGONEK\n\t{0x0174, 0x0174, prUpper},     // L&       LATIN CAPITAL LETTER W WITH CIRCUMFLEX\n\t{0x0175, 0x0175, prLower},     // L&       LATIN SMALL LETTER W WITH CIRCUMFLEX\n\t{0x0176, 0x0176, prUpper},     // L&       LATIN CAPITAL LETTER Y WITH CIRCUMFLEX\n\t{0x0177, 0x0177, prLower},     // L&       LATIN SMALL LETTER Y WITH CIRCUMFLEX\n\t{0x0178, 0x0179, prUpper},     // L&   [2] LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE\n\t{0x017A, 0x017A, prLower},     // L&       LATIN SMALL LETTER Z WITH ACUTE\n\t{0x017B, 0x017B, prUpper},     // L&       LATIN CAPITAL LETTER Z WITH DOT ABOVE\n\t{0x017C, 0x017C, prLower},     // L&       LATIN SMALL LETTER Z WITH DOT ABOVE\n\t{0x017D, 0x017D, prUpper},     // L&       LATIN CAPITAL LETTER Z WITH CARON\n\t{0x017E, 0x0180, prLower},     // L&   [3] LATIN SMALL LETTER Z WITH CARON..LATIN SMALL LETTER B WITH STROKE\n\t{0x0181, 0x0182, prUpper},     // L&   [2] LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR\n\t{0x0183, 0x0183, prLower},     // L&       LATIN SMALL LETTER B WITH TOPBAR\n\t{0x0184, 0x0184, prUpper},     // L&       LATIN CAPITAL LETTER TONE SIX\n\t{0x0185, 0x0185, prLower},     // L&       LATIN SMALL LETTER TONE SIX\n\t{0x0186, 0x0187, prUpper},     // L&   [2] LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK\n\t{0x0188, 0x0188, prLower},     // L&       LATIN SMALL LETTER C WITH HOOK\n\t{0x0189, 0x018B, prUpper},     // L&   [3] LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR\n\t{0x018C, 0x018D, prLower},     // L&   [2] LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA\n\t{0x018E, 0x0191, prUpper},     // L&   [4] LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK\n\t{0x0192, 0x0192, prLower},     // L&       LATIN SMALL LETTER F WITH HOOK\n\t{0x0193, 0x0194, prUpper},     // L&   [2] LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA\n\t{0x0195, 0x0195, prLower},     // L&       LATIN SMALL LETTER HV\n\t{0x0196, 0x0198, prUpper},     // L&   [3] LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK\n\t{0x0199, 0x019B, prLower},     // L&   [3] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE\n\t{0x019C, 0x019D, prUpper},     // L&   [2] LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK\n\t{0x019E, 0x019E, prLower},     // L&       LATIN SMALL LETTER N WITH LONG RIGHT LEG\n\t{0x019F, 0x01A0, prUpper},     // L&   [2] LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN\n\t{0x01A1, 0x01A1, prLower},     // L&       LATIN SMALL LETTER O WITH HORN\n\t{0x01A2, 0x01A2, prUpper},     // L&       LATIN CAPITAL LETTER OI\n\t{0x01A3, 0x01A3, prLower},     // L&       LATIN SMALL LETTER OI\n\t{0x01A4, 0x01A4, prUpper},     // L&       LATIN CAPITAL LETTER P WITH HOOK\n\t{0x01A5, 0x01A5, prLower},     // L&       LATIN SMALL LETTER P WITH HOOK\n\t{0x01A6, 0x01A7, prUpper},     // L&   [2] LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO\n\t{0x01A8, 0x01A8, prLower},     // L&       LATIN SMALL LETTER TONE TWO\n\t{0x01A9, 0x01A9, prUpper},     // L&       LATIN CAPITAL LETTER ESH\n\t{0x01AA, 0x01AB, prLower},     // L&   [2] LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK\n\t{0x01AC, 0x01AC, prUpper},     // L&       LATIN CAPITAL LETTER T WITH HOOK\n\t{0x01AD, 0x01AD, prLower},     // L&       LATIN SMALL LETTER T WITH HOOK\n\t{0x01AE, 0x01AF, prUpper},     // L&   [2] LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN\n\t{0x01B0, 0x01B0, prLower},     // L&       LATIN SMALL LETTER U WITH HORN\n\t{0x01B1, 0x01B3, prUpper},     // L&   [3] LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK\n\t{0x01B4, 0x01B4, prLower},     // L&       LATIN SMALL LETTER Y WITH HOOK\n\t{0x01B5, 0x01B5, prUpper},     // L&       LATIN CAPITAL LETTER Z WITH STROKE\n\t{0x01B6, 0x01B6, prLower},     // L&       LATIN SMALL LETTER Z WITH STROKE\n\t{0x01B7, 0x01B8, prUpper},     // L&   [2] LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED\n\t{0x01B9, 0x01BA, prLower},     // L&   [2] LATIN SMALL LETTER EZH REVERSED..LATIN SMALL LETTER EZH WITH TAIL\n\t{0x01BB, 0x01BB, prOLetter},   // Lo       LATIN LETTER TWO WITH STROKE\n\t{0x01BC, 0x01BC, prUpper},     // L&       LATIN CAPITAL LETTER TONE FIVE\n\t{0x01BD, 0x01BF, prLower},     // L&   [3] LATIN SMALL LETTER TONE FIVE..LATIN LETTER WYNN\n\t{0x01C0, 0x01C3, prOLetter},   // Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK\n\t{0x01C4, 0x01C5, prUpper},     // L&   [2] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON\n\t{0x01C6, 0x01C6, prLower},     // L&       LATIN SMALL LETTER DZ WITH CARON\n\t{0x01C7, 0x01C8, prUpper},     // L&   [2] LATIN CAPITAL LETTER LJ..LATIN CAPITAL LETTER L WITH SMALL LETTER J\n\t{0x01C9, 0x01C9, prLower},     // L&       LATIN SMALL LETTER LJ\n\t{0x01CA, 0x01CB, prUpper},     // L&   [2] LATIN CAPITAL LETTER NJ..LATIN CAPITAL LETTER N WITH SMALL LETTER J\n\t{0x01CC, 0x01CC, prLower},     // L&       LATIN SMALL LETTER NJ\n\t{0x01CD, 0x01CD, prUpper},     // L&       LATIN CAPITAL LETTER A WITH CARON\n\t{0x01CE, 0x01CE, prLower},     // L&       LATIN SMALL LETTER A WITH CARON\n\t{0x01CF, 0x01CF, prUpper},     // L&       LATIN CAPITAL LETTER I WITH CARON\n\t{0x01D0, 0x01D0, prLower},     // L&       LATIN SMALL LETTER I WITH CARON\n\t{0x01D1, 0x01D1, prUpper},     // L&       LATIN CAPITAL LETTER O WITH CARON\n\t{0x01D2, 0x01D2, prLower},     // L&       LATIN SMALL LETTER O WITH CARON\n\t{0x01D3, 0x01D3, prUpper},     // L&       LATIN CAPITAL LETTER U WITH CARON\n\t{0x01D4, 0x01D4, prLower},     // L&       LATIN SMALL LETTER U WITH CARON\n\t{0x01D5, 0x01D5, prUpper},     // L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON\n\t{0x01D6, 0x01D6, prLower},     // L&       LATIN SMALL LETTER U WITH DIAERESIS AND MACRON\n\t{0x01D7, 0x01D7, prUpper},     // L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE\n\t{0x01D8, 0x01D8, prLower},     // L&       LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE\n\t{0x01D9, 0x01D9, prUpper},     // L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON\n\t{0x01DA, 0x01DA, prLower},     // L&       LATIN SMALL LETTER U WITH DIAERESIS AND CARON\n\t{0x01DB, 0x01DB, prUpper},     // L&       LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE\n\t{0x01DC, 0x01DD, prLower},     // L&   [2] LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E\n\t{0x01DE, 0x01DE, prUpper},     // L&       LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON\n\t{0x01DF, 0x01DF, prLower},     // L&       LATIN SMALL LETTER A WITH DIAERESIS AND MACRON\n\t{0x01E0, 0x01E0, prUpper},     // L&       LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON\n\t{0x01E1, 0x01E1, prLower},     // L&       LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON\n\t{0x01E2, 0x01E2, prUpper},     // L&       LATIN CAPITAL LETTER AE WITH MACRON\n\t{0x01E3, 0x01E3, prLower},     // L&       LATIN SMALL LETTER AE WITH MACRON\n\t{0x01E4, 0x01E4, prUpper},     // L&       LATIN CAPITAL LETTER G WITH STROKE\n\t{0x01E5, 0x01E5, prLower},     // L&       LATIN SMALL LETTER G WITH STROKE\n\t{0x01E6, 0x01E6, prUpper},     // L&       LATIN CAPITAL LETTER G WITH CARON\n\t{0x01E7, 0x01E7, prLower},     // L&       LATIN SMALL LETTER G WITH CARON\n\t{0x01E8, 0x01E8, prUpper},     // L&       LATIN CAPITAL LETTER K WITH CARON\n\t{0x01E9, 0x01E9, prLower},     // L&       LATIN SMALL LETTER K WITH CARON\n\t{0x01EA, 0x01EA, prUpper},     // L&       LATIN CAPITAL LETTER O WITH OGONEK\n\t{0x01EB, 0x01EB, prLower},     // L&       LATIN SMALL LETTER O WITH OGONEK\n\t{0x01EC, 0x01EC, prUpper},     // L&       LATIN CAPITAL LETTER O WITH OGONEK AND MACRON\n\t{0x01ED, 0x01ED, prLower},     // L&       LATIN SMALL LETTER O WITH OGONEK AND MACRON\n\t{0x01EE, 0x01EE, prUpper},     // L&       LATIN CAPITAL LETTER EZH WITH CARON\n\t{0x01EF, 0x01F0, prLower},     // L&   [2] LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON\n\t{0x01F1, 0x01F2, prUpper},     // L&   [2] LATIN CAPITAL LETTER DZ..LATIN CAPITAL LETTER D WITH SMALL LETTER Z\n\t{0x01F3, 0x01F3, prLower},     // L&       LATIN SMALL LETTER DZ\n\t{0x01F4, 0x01F4, prUpper},     // L&       LATIN CAPITAL LETTER G WITH ACUTE\n\t{0x01F5, 0x01F5, prLower},     // L&       LATIN SMALL LETTER G WITH ACUTE\n\t{0x01F6, 0x01F8, prUpper},     // L&   [3] LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE\n\t{0x01F9, 0x01F9, prLower},     // L&       LATIN SMALL LETTER N WITH GRAVE\n\t{0x01FA, 0x01FA, prUpper},     // L&       LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE\n\t{0x01FB, 0x01FB, prLower},     // L&       LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE\n\t{0x01FC, 0x01FC, prUpper},     // L&       LATIN CAPITAL LETTER AE WITH ACUTE\n\t{0x01FD, 0x01FD, prLower},     // L&       LATIN SMALL LETTER AE WITH ACUTE\n\t{0x01FE, 0x01FE, prUpper},     // L&       LATIN CAPITAL LETTER O WITH STROKE AND ACUTE\n\t{0x01FF, 0x01FF, prLower},     // L&       LATIN SMALL LETTER O WITH STROKE AND ACUTE\n\t{0x0200, 0x0200, prUpper},     // L&       LATIN CAPITAL LETTER A WITH DOUBLE GRAVE\n\t{0x0201, 0x0201, prLower},     // L&       LATIN SMALL LETTER A WITH DOUBLE GRAVE\n\t{0x0202, 0x0202, prUpper},     // L&       LATIN CAPITAL LETTER A WITH INVERTED BREVE\n\t{0x0203, 0x0203, prLower},     // L&       LATIN SMALL LETTER A WITH INVERTED BREVE\n\t{0x0204, 0x0204, prUpper},     // L&       LATIN CAPITAL LETTER E WITH DOUBLE GRAVE\n\t{0x0205, 0x0205, prLower},     // L&       LATIN SMALL LETTER E WITH DOUBLE GRAVE\n\t{0x0206, 0x0206, prUpper},     // L&       LATIN CAPITAL LETTER E WITH INVERTED BREVE\n\t{0x0207, 0x0207, prLower},     // L&       LATIN SMALL LETTER E WITH INVERTED BREVE\n\t{0x0208, 0x0208, prUpper},     // L&       LATIN CAPITAL LETTER I WITH DOUBLE GRAVE\n\t{0x0209, 0x0209, prLower},     // L&       LATIN SMALL LETTER I WITH DOUBLE GRAVE\n\t{0x020A, 0x020A, prUpper},     // L&       LATIN CAPITAL LETTER I WITH INVERTED BREVE\n\t{0x020B, 0x020B, prLower},     // L&       LATIN SMALL LETTER I WITH INVERTED BREVE\n\t{0x020C, 0x020C, prUpper},     // L&       LATIN CAPITAL LETTER O WITH DOUBLE GRAVE\n\t{0x020D, 0x020D, prLower},     // L&       LATIN SMALL LETTER O WITH DOUBLE GRAVE\n\t{0x020E, 0x020E, prUpper},     // L&       LATIN CAPITAL LETTER O WITH INVERTED BREVE\n\t{0x020F, 0x020F, prLower},     // L&       LATIN SMALL LETTER O WITH INVERTED BREVE\n\t{0x0210, 0x0210, prUpper},     // L&       LATIN CAPITAL LETTER R WITH DOUBLE GRAVE\n\t{0x0211, 0x0211, prLower},     // L&       LATIN SMALL LETTER R WITH DOUBLE GRAVE\n\t{0x0212, 0x0212, prUpper},     // L&       LATIN CAPITAL LETTER R WITH INVERTED BREVE\n\t{0x0213, 0x0213, prLower},     // L&       LATIN SMALL LETTER R WITH INVERTED BREVE\n\t{0x0214, 0x0214, prUpper},     // L&       LATIN CAPITAL LETTER U WITH DOUBLE GRAVE\n\t{0x0215, 0x0215, prLower},     // L&       LATIN SMALL LETTER U WITH DOUBLE GRAVE\n\t{0x0216, 0x0216, prUpper},     // L&       LATIN CAPITAL LETTER U WITH INVERTED BREVE\n\t{0x0217, 0x0217, prLower},     // L&       LATIN SMALL LETTER U WITH INVERTED BREVE\n\t{0x0218, 0x0218, prUpper},     // L&       LATIN CAPITAL LETTER S WITH COMMA BELOW\n\t{0x0219, 0x0219, prLower},     // L&       LATIN SMALL LETTER S WITH COMMA BELOW\n\t{0x021A, 0x021A, prUpper},     // L&       LATIN CAPITAL LETTER T WITH COMMA BELOW\n\t{0x021B, 0x021B, prLower},     // L&       LATIN SMALL LETTER T WITH COMMA BELOW\n\t{0x021C, 0x021C, prUpper},     // L&       LATIN CAPITAL LETTER YOGH\n\t{0x021D, 0x021D, prLower},     // L&       LATIN SMALL LETTER YOGH\n\t{0x021E, 0x021E, prUpper},     // L&       LATIN CAPITAL LETTER H WITH CARON\n\t{0x021F, 0x021F, prLower},     // L&       LATIN SMALL LETTER H WITH CARON\n\t{0x0220, 0x0220, prUpper},     // L&       LATIN CAPITAL LETTER N WITH LONG RIGHT LEG\n\t{0x0221, 0x0221, prLower},     // L&       LATIN SMALL LETTER D WITH CURL\n\t{0x0222, 0x0222, prUpper},     // L&       LATIN CAPITAL LETTER OU\n\t{0x0223, 0x0223, prLower},     // L&       LATIN SMALL LETTER OU\n\t{0x0224, 0x0224, prUpper},     // L&       LATIN CAPITAL LETTER Z WITH HOOK\n\t{0x0225, 0x0225, prLower},     // L&       LATIN SMALL LETTER Z WITH HOOK\n\t{0x0226, 0x0226, prUpper},     // L&       LATIN CAPITAL LETTER A WITH DOT ABOVE\n\t{0x0227, 0x0227, prLower},     // L&       LATIN SMALL LETTER A WITH DOT ABOVE\n\t{0x0228, 0x0228, prUpper},     // L&       LATIN CAPITAL LETTER E WITH CEDILLA\n\t{0x0229, 0x0229, prLower},     // L&       LATIN SMALL LETTER E WITH CEDILLA\n\t{0x022A, 0x022A, prUpper},     // L&       LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON\n\t{0x022B, 0x022B, prLower},     // L&       LATIN SMALL LETTER O WITH DIAERESIS AND MACRON\n\t{0x022C, 0x022C, prUpper},     // L&       LATIN CAPITAL LETTER O WITH TILDE AND MACRON\n\t{0x022D, 0x022D, prLower},     // L&       LATIN SMALL LETTER O WITH TILDE AND MACRON\n\t{0x022E, 0x022E, prUpper},     // L&       LATIN CAPITAL LETTER O WITH DOT ABOVE\n\t{0x022F, 0x022F, prLower},     // L&       LATIN SMALL LETTER O WITH DOT ABOVE\n\t{0x0230, 0x0230, prUpper},     // L&       LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON\n\t{0x0231, 0x0231, prLower},     // L&       LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON\n\t{0x0232, 0x0232, prUpper},     // L&       LATIN CAPITAL LETTER Y WITH MACRON\n\t{0x0233, 0x0239, prLower},     // L&   [7] LATIN SMALL LETTER Y WITH MACRON..LATIN SMALL LETTER QP DIGRAPH\n\t{0x023A, 0x023B, prUpper},     // L&   [2] LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE\n\t{0x023C, 0x023C, prLower},     // L&       LATIN SMALL LETTER C WITH STROKE\n\t{0x023D, 0x023E, prUpper},     // L&   [2] LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE\n\t{0x023F, 0x0240, prLower},     // L&   [2] LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL\n\t{0x0241, 0x0241, prUpper},     // L&       LATIN CAPITAL LETTER GLOTTAL STOP\n\t{0x0242, 0x0242, prLower},     // L&       LATIN SMALL LETTER GLOTTAL STOP\n\t{0x0243, 0x0246, prUpper},     // L&   [4] LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE\n\t{0x0247, 0x0247, prLower},     // L&       LATIN SMALL LETTER E WITH STROKE\n\t{0x0248, 0x0248, prUpper},     // L&       LATIN CAPITAL LETTER J WITH STROKE\n\t{0x0249, 0x0249, prLower},     // L&       LATIN SMALL LETTER J WITH STROKE\n\t{0x024A, 0x024A, prUpper},     // L&       LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL\n\t{0x024B, 0x024B, prLower},     // L&       LATIN SMALL LETTER Q WITH HOOK TAIL\n\t{0x024C, 0x024C, prUpper},     // L&       LATIN CAPITAL LETTER R WITH STROKE\n\t{0x024D, 0x024D, prLower},     // L&       LATIN SMALL LETTER R WITH STROKE\n\t{0x024E, 0x024E, prUpper},     // L&       LATIN CAPITAL LETTER Y WITH STROKE\n\t{0x024F, 0x0293, prLower},     // L&  [69] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER EZH WITH CURL\n\t{0x0294, 0x0294, prOLetter},   // Lo       LATIN LETTER GLOTTAL STOP\n\t{0x0295, 0x02AF, prLower},     // L&  [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL\n\t{0x02B0, 0x02B8, prLower},     // Lm   [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y\n\t{0x02B9, 0x02BF, prOLetter},   // Lm   [7] MODIFIER LETTER PRIME..MODIFIER LETTER LEFT HALF RING\n\t{0x02C0, 0x02C1, prLower},     // Lm   [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP\n\t{0x02C6, 0x02D1, prOLetter},   // Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON\n\t{0x02E0, 0x02E4, prLower},     // Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP\n\t{0x02EC, 0x02EC, prOLetter},   // Lm       MODIFIER LETTER VOICING\n\t{0x02EE, 0x02EE, prOLetter},   // Lm       MODIFIER LETTER DOUBLE APOSTROPHE\n\t{0x0300, 0x036F, prExtend},    // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X\n\t{0x0370, 0x0370, prUpper},     // L&       GREEK CAPITAL LETTER HETA\n\t{0x0371, 0x0371, prLower},     // L&       GREEK SMALL LETTER HETA\n\t{0x0372, 0x0372, prUpper},     // L&       GREEK CAPITAL LETTER ARCHAIC SAMPI\n\t{0x0373, 0x0373, prLower},     // L&       GREEK SMALL LETTER ARCHAIC SAMPI\n\t{0x0374, 0x0374, prOLetter},   // Lm       GREEK NUMERAL SIGN\n\t{0x0376, 0x0376, prUpper},     // L&       GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA\n\t{0x0377, 0x0377, prLower},     // L&       GREEK SMALL LETTER PAMPHYLIAN DIGAMMA\n\t{0x037A, 0x037A, prLower},     // Lm       GREEK YPOGEGRAMMENI\n\t{0x037B, 0x037D, prLower},     // L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL\n\t{0x037F, 0x037F, prUpper},     // L&       GREEK CAPITAL LETTER YOT\n\t{0x0386, 0x0386, prUpper},     // L&       GREEK CAPITAL LETTER ALPHA WITH TONOS\n\t{0x0388, 0x038A, prUpper},     // L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS\n\t{0x038C, 0x038C, prUpper},     // L&       GREEK CAPITAL LETTER OMICRON WITH TONOS\n\t{0x038E, 0x038F, prUpper},     // L&   [2] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS\n\t{0x0390, 0x0390, prLower},     // L&       GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS\n\t{0x0391, 0x03A1, prUpper},     // L&  [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO\n\t{0x03A3, 0x03AB, prUpper},     // L&   [9] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA\n\t{0x03AC, 0x03CE, prLower},     // L&  [35] GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS\n\t{0x03CF, 0x03CF, prUpper},     // L&       GREEK CAPITAL KAI SYMBOL\n\t{0x03D0, 0x03D1, prLower},     // L&   [2] GREEK BETA SYMBOL..GREEK THETA SYMBOL\n\t{0x03D2, 0x03D4, prUpper},     // L&   [3] GREEK UPSILON WITH HOOK SYMBOL..GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL\n\t{0x03D5, 0x03D7, prLower},     // L&   [3] GREEK PHI SYMBOL..GREEK KAI SYMBOL\n\t{0x03D8, 0x03D8, prUpper},     // L&       GREEK LETTER ARCHAIC KOPPA\n\t{0x03D9, 0x03D9, prLower},     // L&       GREEK SMALL LETTER ARCHAIC KOPPA\n\t{0x03DA, 0x03DA, prUpper},     // L&       GREEK LETTER STIGMA\n\t{0x03DB, 0x03DB, prLower},     // L&       GREEK SMALL LETTER STIGMA\n\t{0x03DC, 0x03DC, prUpper},     // L&       GREEK LETTER DIGAMMA\n\t{0x03DD, 0x03DD, prLower},     // L&       GREEK SMALL LETTER DIGAMMA\n\t{0x03DE, 0x03DE, prUpper},     // L&       GREEK LETTER KOPPA\n\t{0x03DF, 0x03DF, prLower},     // L&       GREEK SMALL LETTER KOPPA\n\t{0x03E0, 0x03E0, prUpper},     // L&       GREEK LETTER SAMPI\n\t{0x03E1, 0x03E1, prLower},     // L&       GREEK SMALL LETTER SAMPI\n\t{0x03E2, 0x03E2, prUpper},     // L&       COPTIC CAPITAL LETTER SHEI\n\t{0x03E3, 0x03E3, prLower},     // L&       COPTIC SMALL LETTER SHEI\n\t{0x03E4, 0x03E4, prUpper},     // L&       COPTIC CAPITAL LETTER FEI\n\t{0x03E5, 0x03E5, prLower},     // L&       COPTIC SMALL LETTER FEI\n\t{0x03E6, 0x03E6, prUpper},     // L&       COPTIC CAPITAL LETTER KHEI\n\t{0x03E7, 0x03E7, prLower},     // L&       COPTIC SMALL LETTER KHEI\n\t{0x03E8, 0x03E8, prUpper},     // L&       COPTIC CAPITAL LETTER HORI\n\t{0x03E9, 0x03E9, prLower},     // L&       COPTIC SMALL LETTER HORI\n\t{0x03EA, 0x03EA, prUpper},     // L&       COPTIC CAPITAL LETTER GANGIA\n\t{0x03EB, 0x03EB, prLower},     // L&       COPTIC SMALL LETTER GANGIA\n\t{0x03EC, 0x03EC, prUpper},     // L&       COPTIC CAPITAL LETTER SHIMA\n\t{0x03ED, 0x03ED, prLower},     // L&       COPTIC SMALL LETTER SHIMA\n\t{0x03EE, 0x03EE, prUpper},     // L&       COPTIC CAPITAL LETTER DEI\n\t{0x03EF, 0x03F3, prLower},     // L&   [5] COPTIC SMALL LETTER DEI..GREEK LETTER YOT\n\t{0x03F4, 0x03F4, prUpper},     // L&       GREEK CAPITAL THETA SYMBOL\n\t{0x03F5, 0x03F5, prLower},     // L&       GREEK LUNATE EPSILON SYMBOL\n\t{0x03F7, 0x03F7, prUpper},     // L&       GREEK CAPITAL LETTER SHO\n\t{0x03F8, 0x03F8, prLower},     // L&       GREEK SMALL LETTER SHO\n\t{0x03F9, 0x03FA, prUpper},     // L&   [2] GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN\n\t{0x03FB, 0x03FC, prLower},     // L&   [2] GREEK SMALL LETTER SAN..GREEK RHO WITH STROKE SYMBOL\n\t{0x03FD, 0x042F, prUpper},     // L&  [51] GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA\n\t{0x0430, 0x045F, prLower},     // L&  [48] CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE\n\t{0x0460, 0x0460, prUpper},     // L&       CYRILLIC CAPITAL LETTER OMEGA\n\t{0x0461, 0x0461, prLower},     // L&       CYRILLIC SMALL LETTER OMEGA\n\t{0x0462, 0x0462, prUpper},     // L&       CYRILLIC CAPITAL LETTER YAT\n\t{0x0463, 0x0463, prLower},     // L&       CYRILLIC SMALL LETTER YAT\n\t{0x0464, 0x0464, prUpper},     // L&       CYRILLIC CAPITAL LETTER IOTIFIED E\n\t{0x0465, 0x0465, prLower},     // L&       CYRILLIC SMALL LETTER IOTIFIED E\n\t{0x0466, 0x0466, prUpper},     // L&       CYRILLIC CAPITAL LETTER LITTLE YUS\n\t{0x0467, 0x0467, prLower},     // L&       CYRILLIC SMALL LETTER LITTLE YUS\n\t{0x0468, 0x0468, prUpper},     // L&       CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS\n\t{0x0469, 0x0469, prLower},     // L&       CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS\n\t{0x046A, 0x046A, prUpper},     // L&       CYRILLIC CAPITAL LETTER BIG YUS\n\t{0x046B, 0x046B, prLower},     // L&       CYRILLIC SMALL LETTER BIG YUS\n\t{0x046C, 0x046C, prUpper},     // L&       CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS\n\t{0x046D, 0x046D, prLower},     // L&       CYRILLIC SMALL LETTER IOTIFIED BIG YUS\n\t{0x046E, 0x046E, prUpper},     // L&       CYRILLIC CAPITAL LETTER KSI\n\t{0x046F, 0x046F, prLower},     // L&       CYRILLIC SMALL LETTER KSI\n\t{0x0470, 0x0470, prUpper},     // L&       CYRILLIC CAPITAL LETTER PSI\n\t{0x0471, 0x0471, prLower},     // L&       CYRILLIC SMALL LETTER PSI\n\t{0x0472, 0x0472, prUpper},     // L&       CYRILLIC CAPITAL LETTER FITA\n\t{0x0473, 0x0473, prLower},     // L&       CYRILLIC SMALL LETTER FITA\n\t{0x0474, 0x0474, prUpper},     // L&       CYRILLIC CAPITAL LETTER IZHITSA\n\t{0x0475, 0x0475, prLower},     // L&       CYRILLIC SMALL LETTER IZHITSA\n\t{0x0476, 0x0476, prUpper},     // L&       CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT\n\t{0x0477, 0x0477, prLower},     // L&       CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT\n\t{0x0478, 0x0478, prUpper},     // L&       CYRILLIC CAPITAL LETTER UK\n\t{0x0479, 0x0479, prLower},     // L&       CYRILLIC SMALL LETTER UK\n\t{0x047A, 0x047A, prUpper},     // L&       CYRILLIC CAPITAL LETTER ROUND OMEGA\n\t{0x047B, 0x047B, prLower},     // L&       CYRILLIC SMALL LETTER ROUND OMEGA\n\t{0x047C, 0x047C, prUpper},     // L&       CYRILLIC CAPITAL LETTER OMEGA WITH TITLO\n\t{0x047D, 0x047D, prLower},     // L&       CYRILLIC SMALL LETTER OMEGA WITH TITLO\n\t{0x047E, 0x047E, prUpper},     // L&       CYRILLIC CAPITAL LETTER OT\n\t{0x047F, 0x047F, prLower},     // L&       CYRILLIC SMALL LETTER OT\n\t{0x0480, 0x0480, prUpper},     // L&       CYRILLIC CAPITAL LETTER KOPPA\n\t{0x0481, 0x0481, prLower},     // L&       CYRILLIC SMALL LETTER KOPPA\n\t{0x0483, 0x0487, prExtend},    // Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE\n\t{0x0488, 0x0489, prExtend},    // Me   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN\n\t{0x048A, 0x048A, prUpper},     // L&       CYRILLIC CAPITAL LETTER SHORT I WITH TAIL\n\t{0x048B, 0x048B, prLower},     // L&       CYRILLIC SMALL LETTER SHORT I WITH TAIL\n\t{0x048C, 0x048C, prUpper},     // L&       CYRILLIC CAPITAL LETTER SEMISOFT SIGN\n\t{0x048D, 0x048D, prLower},     // L&       CYRILLIC SMALL LETTER SEMISOFT SIGN\n\t{0x048E, 0x048E, prUpper},     // L&       CYRILLIC CAPITAL LETTER ER WITH TICK\n\t{0x048F, 0x048F, prLower},     // L&       CYRILLIC SMALL LETTER ER WITH TICK\n\t{0x0490, 0x0490, prUpper},     // L&       CYRILLIC CAPITAL LETTER GHE WITH UPTURN\n\t{0x0491, 0x0491, prLower},     // L&       CYRILLIC SMALL LETTER GHE WITH UPTURN\n\t{0x0492, 0x0492, prUpper},     // L&       CYRILLIC CAPITAL LETTER GHE WITH STROKE\n\t{0x0493, 0x0493, prLower},     // L&       CYRILLIC SMALL LETTER GHE WITH STROKE\n\t{0x0494, 0x0494, prUpper},     // L&       CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK\n\t{0x0495, 0x0495, prLower},     // L&       CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK\n\t{0x0496, 0x0496, prUpper},     // L&       CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER\n\t{0x0497, 0x0497, prLower},     // L&       CYRILLIC SMALL LETTER ZHE WITH DESCENDER\n\t{0x0498, 0x0498, prUpper},     // L&       CYRILLIC CAPITAL LETTER ZE WITH DESCENDER\n\t{0x0499, 0x0499, prLower},     // L&       CYRILLIC SMALL LETTER ZE WITH DESCENDER\n\t{0x049A, 0x049A, prUpper},     // L&       CYRILLIC CAPITAL LETTER KA WITH DESCENDER\n\t{0x049B, 0x049B, prLower},     // L&       CYRILLIC SMALL LETTER KA WITH DESCENDER\n\t{0x049C, 0x049C, prUpper},     // L&       CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE\n\t{0x049D, 0x049D, prLower},     // L&       CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE\n\t{0x049E, 0x049E, prUpper},     // L&       CYRILLIC CAPITAL LETTER KA WITH STROKE\n\t{0x049F, 0x049F, prLower},     // L&       CYRILLIC SMALL LETTER KA WITH STROKE\n\t{0x04A0, 0x04A0, prUpper},     // L&       CYRILLIC CAPITAL LETTER BASHKIR KA\n\t{0x04A1, 0x04A1, prLower},     // L&       CYRILLIC SMALL LETTER BASHKIR KA\n\t{0x04A2, 0x04A2, prUpper},     // L&       CYRILLIC CAPITAL LETTER EN WITH DESCENDER\n\t{0x04A3, 0x04A3, prLower},     // L&       CYRILLIC SMALL LETTER EN WITH DESCENDER\n\t{0x04A4, 0x04A4, prUpper},     // L&       CYRILLIC CAPITAL LIGATURE EN GHE\n\t{0x04A5, 0x04A5, prLower},     // L&       CYRILLIC SMALL LIGATURE EN GHE\n\t{0x04A6, 0x04A6, prUpper},     // L&       CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK\n\t{0x04A7, 0x04A7, prLower},     // L&       CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK\n\t{0x04A8, 0x04A8, prUpper},     // L&       CYRILLIC CAPITAL LETTER ABKHASIAN HA\n\t{0x04A9, 0x04A9, prLower},     // L&       CYRILLIC SMALL LETTER ABKHASIAN HA\n\t{0x04AA, 0x04AA, prUpper},     // L&       CYRILLIC CAPITAL LETTER ES WITH DESCENDER\n\t{0x04AB, 0x04AB, prLower},     // L&       CYRILLIC SMALL LETTER ES WITH DESCENDER\n\t{0x04AC, 0x04AC, prUpper},     // L&       CYRILLIC CAPITAL LETTER TE WITH DESCENDER\n\t{0x04AD, 0x04AD, prLower},     // L&       CYRILLIC SMALL LETTER TE WITH DESCENDER\n\t{0x04AE, 0x04AE, prUpper},     // L&       CYRILLIC CAPITAL LETTER STRAIGHT U\n\t{0x04AF, 0x04AF, prLower},     // L&       CYRILLIC SMALL LETTER STRAIGHT U\n\t{0x04B0, 0x04B0, prUpper},     // L&       CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE\n\t{0x04B1, 0x04B1, prLower},     // L&       CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE\n\t{0x04B2, 0x04B2, prUpper},     // L&       CYRILLIC CAPITAL LETTER HA WITH DESCENDER\n\t{0x04B3, 0x04B3, prLower},     // L&       CYRILLIC SMALL LETTER HA WITH DESCENDER\n\t{0x04B4, 0x04B4, prUpper},     // L&       CYRILLIC CAPITAL LIGATURE TE TSE\n\t{0x04B5, 0x04B5, prLower},     // L&       CYRILLIC SMALL LIGATURE TE TSE\n\t{0x04B6, 0x04B6, prUpper},     // L&       CYRILLIC CAPITAL LETTER CHE WITH DESCENDER\n\t{0x04B7, 0x04B7, prLower},     // L&       CYRILLIC SMALL LETTER CHE WITH DESCENDER\n\t{0x04B8, 0x04B8, prUpper},     // L&       CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE\n\t{0x04B9, 0x04B9, prLower},     // L&       CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE\n\t{0x04BA, 0x04BA, prUpper},     // L&       CYRILLIC CAPITAL LETTER SHHA\n\t{0x04BB, 0x04BB, prLower},     // L&       CYRILLIC SMALL LETTER SHHA\n\t{0x04BC, 0x04BC, prUpper},     // L&       CYRILLIC CAPITAL LETTER ABKHASIAN CHE\n\t{0x04BD, 0x04BD, prLower},     // L&       CYRILLIC SMALL LETTER ABKHASIAN CHE\n\t{0x04BE, 0x04BE, prUpper},     // L&       CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER\n\t{0x04BF, 0x04BF, prLower},     // L&       CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER\n\t{0x04C0, 0x04C1, prUpper},     // L&   [2] CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE\n\t{0x04C2, 0x04C2, prLower},     // L&       CYRILLIC SMALL LETTER ZHE WITH BREVE\n\t{0x04C3, 0x04C3, prUpper},     // L&       CYRILLIC CAPITAL LETTER KA WITH HOOK\n\t{0x04C4, 0x04C4, prLower},     // L&       CYRILLIC SMALL LETTER KA WITH HOOK\n\t{0x04C5, 0x04C5, prUpper},     // L&       CYRILLIC CAPITAL LETTER EL WITH TAIL\n\t{0x04C6, 0x04C6, prLower},     // L&       CYRILLIC SMALL LETTER EL WITH TAIL\n\t{0x04C7, 0x04C7, prUpper},     // L&       CYRILLIC CAPITAL LETTER EN WITH HOOK\n\t{0x04C8, 0x04C8, prLower},     // L&       CYRILLIC SMALL LETTER EN WITH HOOK\n\t{0x04C9, 0x04C9, prUpper},     // L&       CYRILLIC CAPITAL LETTER EN WITH TAIL\n\t{0x04CA, 0x04CA, prLower},     // L&       CYRILLIC SMALL LETTER EN WITH TAIL\n\t{0x04CB, 0x04CB, prUpper},     // L&       CYRILLIC CAPITAL LETTER KHAKASSIAN CHE\n\t{0x04CC, 0x04CC, prLower},     // L&       CYRILLIC SMALL LETTER KHAKASSIAN CHE\n\t{0x04CD, 0x04CD, prUpper},     // L&       CYRILLIC CAPITAL LETTER EM WITH TAIL\n\t{0x04CE, 0x04CF, prLower},     // L&   [2] CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA\n\t{0x04D0, 0x04D0, prUpper},     // L&       CYRILLIC CAPITAL LETTER A WITH BREVE\n\t{0x04D1, 0x04D1, prLower},     // L&       CYRILLIC SMALL LETTER A WITH BREVE\n\t{0x04D2, 0x04D2, prUpper},     // L&       CYRILLIC CAPITAL LETTER A WITH DIAERESIS\n\t{0x04D3, 0x04D3, prLower},     // L&       CYRILLIC SMALL LETTER A WITH DIAERESIS\n\t{0x04D4, 0x04D4, prUpper},     // L&       CYRILLIC CAPITAL LIGATURE A IE\n\t{0x04D5, 0x04D5, prLower},     // L&       CYRILLIC SMALL LIGATURE A IE\n\t{0x04D6, 0x04D6, prUpper},     // L&       CYRILLIC CAPITAL LETTER IE WITH BREVE\n\t{0x04D7, 0x04D7, prLower},     // L&       CYRILLIC SMALL LETTER IE WITH BREVE\n\t{0x04D8, 0x04D8, prUpper},     // L&       CYRILLIC CAPITAL LETTER SCHWA\n\t{0x04D9, 0x04D9, prLower},     // L&       CYRILLIC SMALL LETTER SCHWA\n\t{0x04DA, 0x04DA, prUpper},     // L&       CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS\n\t{0x04DB, 0x04DB, prLower},     // L&       CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS\n\t{0x04DC, 0x04DC, prUpper},     // L&       CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS\n\t{0x04DD, 0x04DD, prLower},     // L&       CYRILLIC SMALL LETTER ZHE WITH DIAERESIS\n\t{0x04DE, 0x04DE, prUpper},     // L&       CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS\n\t{0x04DF, 0x04DF, prLower},     // L&       CYRILLIC SMALL LETTER ZE WITH DIAERESIS\n\t{0x04E0, 0x04E0, prUpper},     // L&       CYRILLIC CAPITAL LETTER ABKHASIAN DZE\n\t{0x04E1, 0x04E1, prLower},     // L&       CYRILLIC SMALL LETTER ABKHASIAN DZE\n\t{0x04E2, 0x04E2, prUpper},     // L&       CYRILLIC CAPITAL LETTER I WITH MACRON\n\t{0x04E3, 0x04E3, prLower},     // L&       CYRILLIC SMALL LETTER I WITH MACRON\n\t{0x04E4, 0x04E4, prUpper},     // L&       CYRILLIC CAPITAL LETTER I WITH DIAERESIS\n\t{0x04E5, 0x04E5, prLower},     // L&       CYRILLIC SMALL LETTER I WITH DIAERESIS\n\t{0x04E6, 0x04E6, prUpper},     // L&       CYRILLIC CAPITAL LETTER O WITH DIAERESIS\n\t{0x04E7, 0x04E7, prLower},     // L&       CYRILLIC SMALL LETTER O WITH DIAERESIS\n\t{0x04E8, 0x04E8, prUpper},     // L&       CYRILLIC CAPITAL LETTER BARRED O\n\t{0x04E9, 0x04E9, prLower},     // L&       CYRILLIC SMALL LETTER BARRED O\n\t{0x04EA, 0x04EA, prUpper},     // L&       CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS\n\t{0x04EB, 0x04EB, prLower},     // L&       CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS\n\t{0x04EC, 0x04EC, prUpper},     // L&       CYRILLIC CAPITAL LETTER E WITH DIAERESIS\n\t{0x04ED, 0x04ED, prLower},     // L&       CYRILLIC SMALL LETTER E WITH DIAERESIS\n\t{0x04EE, 0x04EE, prUpper},     // L&       CYRILLIC CAPITAL LETTER U WITH MACRON\n\t{0x04EF, 0x04EF, prLower},     // L&       CYRILLIC SMALL LETTER U WITH MACRON\n\t{0x04F0, 0x04F0, prUpper},     // L&       CYRILLIC CAPITAL LETTER U WITH DIAERESIS\n\t{0x04F1, 0x04F1, prLower},     // L&       CYRILLIC SMALL LETTER U WITH DIAERESIS\n\t{0x04F2, 0x04F2, prUpper},     // L&       CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE\n\t{0x04F3, 0x04F3, prLower},     // L&       CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE\n\t{0x04F4, 0x04F4, prUpper},     // L&       CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS\n\t{0x04F5, 0x04F5, prLower},     // L&       CYRILLIC SMALL LETTER CHE WITH DIAERESIS\n\t{0x04F6, 0x04F6, prUpper},     // L&       CYRILLIC CAPITAL LETTER GHE WITH DESCENDER\n\t{0x04F7, 0x04F7, prLower},     // L&       CYRILLIC SMALL LETTER GHE WITH DESCENDER\n\t{0x04F8, 0x04F8, prUpper},     // L&       CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS\n\t{0x04F9, 0x04F9, prLower},     // L&       CYRILLIC SMALL LETTER YERU WITH DIAERESIS\n\t{0x04FA, 0x04FA, prUpper},     // L&       CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK\n\t{0x04FB, 0x04FB, prLower},     // L&       CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK\n\t{0x04FC, 0x04FC, prUpper},     // L&       CYRILLIC CAPITAL LETTER HA WITH HOOK\n\t{0x04FD, 0x04FD, prLower},     // L&       CYRILLIC SMALL LETTER HA WITH HOOK\n\t{0x04FE, 0x04FE, prUpper},     // L&       CYRILLIC CAPITAL LETTER HA WITH STROKE\n\t{0x04FF, 0x04FF, prLower},     // L&       CYRILLIC SMALL LETTER HA WITH STROKE\n\t{0x0500, 0x0500, prUpper},     // L&       CYRILLIC CAPITAL LETTER KOMI DE\n\t{0x0501, 0x0501, prLower},     // L&       CYRILLIC SMALL LETTER KOMI DE\n\t{0x0502, 0x0502, prUpper},     // L&       CYRILLIC CAPITAL LETTER KOMI DJE\n\t{0x0503, 0x0503, prLower},     // L&       CYRILLIC SMALL LETTER KOMI DJE\n\t{0x0504, 0x0504, prUpper},     // L&       CYRILLIC CAPITAL LETTER KOMI ZJE\n\t{0x0505, 0x0505, prLower},     // L&       CYRILLIC SMALL LETTER KOMI ZJE\n\t{0x0506, 0x0506, prUpper},     // L&       CYRILLIC CAPITAL LETTER KOMI DZJE\n\t{0x0507, 0x0507, prLower},     // L&       CYRILLIC SMALL LETTER KOMI DZJE\n\t{0x0508, 0x0508, prUpper},     // L&       CYRILLIC CAPITAL LETTER KOMI LJE\n\t{0x0509, 0x0509, prLower},     // L&       CYRILLIC SMALL LETTER KOMI LJE\n\t{0x050A, 0x050A, prUpper},     // L&       CYRILLIC CAPITAL LETTER KOMI NJE\n\t{0x050B, 0x050B, prLower},     // L&       CYRILLIC SMALL LETTER KOMI NJE\n\t{0x050C, 0x050C, prUpper},     // L&       CYRILLIC CAPITAL LETTER KOMI SJE\n\t{0x050D, 0x050D, prLower},     // L&       CYRILLIC SMALL LETTER KOMI SJE\n\t{0x050E, 0x050E, prUpper},     // L&       CYRILLIC CAPITAL LETTER KOMI TJE\n\t{0x050F, 0x050F, prLower},     // L&       CYRILLIC SMALL LETTER KOMI TJE\n\t{0x0510, 0x0510, prUpper},     // L&       CYRILLIC CAPITAL LETTER REVERSED ZE\n\t{0x0511, 0x0511, prLower},     // L&       CYRILLIC SMALL LETTER REVERSED ZE\n\t{0x0512, 0x0512, prUpper},     // L&       CYRILLIC CAPITAL LETTER EL WITH HOOK\n\t{0x0513, 0x0513, prLower},     // L&       CYRILLIC SMALL LETTER EL WITH HOOK\n\t{0x0514, 0x0514, prUpper},     // L&       CYRILLIC CAPITAL LETTER LHA\n\t{0x0515, 0x0515, prLower},     // L&       CYRILLIC SMALL LETTER LHA\n\t{0x0516, 0x0516, prUpper},     // L&       CYRILLIC CAPITAL LETTER RHA\n\t{0x0517, 0x0517, prLower},     // L&       CYRILLIC SMALL LETTER RHA\n\t{0x0518, 0x0518, prUpper},     // L&       CYRILLIC CAPITAL LETTER YAE\n\t{0x0519, 0x0519, prLower},     // L&       CYRILLIC SMALL LETTER YAE\n\t{0x051A, 0x051A, prUpper},     // L&       CYRILLIC CAPITAL LETTER QA\n\t{0x051B, 0x051B, prLower},     // L&       CYRILLIC SMALL LETTER QA\n\t{0x051C, 0x051C, prUpper},     // L&       CYRILLIC CAPITAL LETTER WE\n\t{0x051D, 0x051D, prLower},     // L&       CYRILLIC SMALL LETTER WE\n\t{0x051E, 0x051E, prUpper},     // L&       CYRILLIC CAPITAL LETTER ALEUT KA\n\t{0x051F, 0x051F, prLower},     // L&       CYRILLIC SMALL LETTER ALEUT KA\n\t{0x0520, 0x0520, prUpper},     // L&       CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK\n\t{0x0521, 0x0521, prLower},     // L&       CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK\n\t{0x0522, 0x0522, prUpper},     // L&       CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK\n\t{0x0523, 0x0523, prLower},     // L&       CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK\n\t{0x0524, 0x0524, prUpper},     // L&       CYRILLIC CAPITAL LETTER PE WITH DESCENDER\n\t{0x0525, 0x0525, prLower},     // L&       CYRILLIC SMALL LETTER PE WITH DESCENDER\n\t{0x0526, 0x0526, prUpper},     // L&       CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER\n\t{0x0527, 0x0527, prLower},     // L&       CYRILLIC SMALL LETTER SHHA WITH DESCENDER\n\t{0x0528, 0x0528, prUpper},     // L&       CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK\n\t{0x0529, 0x0529, prLower},     // L&       CYRILLIC SMALL LETTER EN WITH LEFT HOOK\n\t{0x052A, 0x052A, prUpper},     // L&       CYRILLIC CAPITAL LETTER DZZHE\n\t{0x052B, 0x052B, prLower},     // L&       CYRILLIC SMALL LETTER DZZHE\n\t{0x052C, 0x052C, prUpper},     // L&       CYRILLIC CAPITAL LETTER DCHE\n\t{0x052D, 0x052D, prLower},     // L&       CYRILLIC SMALL LETTER DCHE\n\t{0x052E, 0x052E, prUpper},     // L&       CYRILLIC CAPITAL LETTER EL WITH DESCENDER\n\t{0x052F, 0x052F, prLower},     // L&       CYRILLIC SMALL LETTER EL WITH DESCENDER\n\t{0x0531, 0x0556, prUpper},     // L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH\n\t{0x0559, 0x0559, prOLetter},   // Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING\n\t{0x055D, 0x055D, prSContinue}, // Po       ARMENIAN COMMA\n\t{0x0560, 0x0588, prLower},     // L&  [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE\n\t{0x0589, 0x0589, prSTerm},     // Po       ARMENIAN FULL STOP\n\t{0x0591, 0x05BD, prExtend},    // Mn  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG\n\t{0x05BF, 0x05BF, prExtend},    // Mn       HEBREW POINT RAFE\n\t{0x05C1, 0x05C2, prExtend},    // Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT\n\t{0x05C4, 0x05C5, prExtend},    // Mn   [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT\n\t{0x05C7, 0x05C7, prExtend},    // Mn       HEBREW POINT QAMATS QATAN\n\t{0x05D0, 0x05EA, prOLetter},   // Lo  [27] HEBREW LETTER ALEF..HEBREW LETTER TAV\n\t{0x05EF, 0x05F2, prOLetter},   // Lo   [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD\n\t{0x05F3, 0x05F3, prOLetter},   // Po       HEBREW PUNCTUATION GERESH\n\t{0x0600, 0x0605, prFormat},    // Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE\n\t{0x060C, 0x060D, prSContinue}, // Po   [2] ARABIC COMMA..ARABIC DATE SEPARATOR\n\t{0x0610, 0x061A, prExtend},    // Mn  [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA\n\t{0x061C, 0x061C, prFormat},    // Cf       ARABIC LETTER MARK\n\t{0x061D, 0x061F, prSTerm},     // Po   [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK\n\t{0x0620, 0x063F, prOLetter},   // Lo  [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE\n\t{0x0640, 0x0640, prOLetter},   // Lm       ARABIC TATWEEL\n\t{0x0641, 0x064A, prOLetter},   // Lo  [10] ARABIC LETTER FEH..ARABIC LETTER YEH\n\t{0x064B, 0x065F, prExtend},    // Mn  [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW\n\t{0x0660, 0x0669, prNumeric},   // Nd  [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE\n\t{0x066B, 0x066C, prNumeric},   // Po   [2] ARABIC DECIMAL SEPARATOR..ARABIC THOUSANDS SEPARATOR\n\t{0x066E, 0x066F, prOLetter},   // Lo   [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF\n\t{0x0670, 0x0670, prExtend},    // Mn       ARABIC LETTER SUPERSCRIPT ALEF\n\t{0x0671, 0x06D3, prOLetter},   // Lo  [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n\t{0x06D4, 0x06D4, prSTerm},     // Po       ARABIC FULL STOP\n\t{0x06D5, 0x06D5, prOLetter},   // Lo       ARABIC LETTER AE\n\t{0x06D6, 0x06DC, prExtend},    // Mn   [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN\n\t{0x06DD, 0x06DD, prFormat},    // Cf       ARABIC END OF AYAH\n\t{0x06DF, 0x06E4, prExtend},    // Mn   [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA\n\t{0x06E5, 0x06E6, prOLetter},   // Lm   [2] ARABIC SMALL WAW..ARABIC SMALL YEH\n\t{0x06E7, 0x06E8, prExtend},    // Mn   [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON\n\t{0x06EA, 0x06ED, prExtend},    // Mn   [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM\n\t{0x06EE, 0x06EF, prOLetter},   // Lo   [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V\n\t{0x06F0, 0x06F9, prNumeric},   // Nd  [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE\n\t{0x06FA, 0x06FC, prOLetter},   // Lo   [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW\n\t{0x06FF, 0x06FF, prOLetter},   // Lo       ARABIC LETTER HEH WITH INVERTED V\n\t{0x0700, 0x0702, prSTerm},     // Po   [3] SYRIAC END OF PARAGRAPH..SYRIAC SUBLINEAR FULL STOP\n\t{0x070F, 0x070F, prFormat},    // Cf       SYRIAC ABBREVIATION MARK\n\t{0x0710, 0x0710, prOLetter},   // Lo       SYRIAC LETTER ALAPH\n\t{0x0711, 0x0711, prExtend},    // Mn       SYRIAC LETTER SUPERSCRIPT ALAPH\n\t{0x0712, 0x072F, prOLetter},   // Lo  [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH\n\t{0x0730, 0x074A, prExtend},    // Mn  [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH\n\t{0x074D, 0x07A5, prOLetter},   // Lo  [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU\n\t{0x07A6, 0x07B0, prExtend},    // Mn  [11] THAANA ABAFILI..THAANA SUKUN\n\t{0x07B1, 0x07B1, prOLetter},   // Lo       THAANA LETTER NAA\n\t{0x07C0, 0x07C9, prNumeric},   // Nd  [10] NKO DIGIT ZERO..NKO DIGIT NINE\n\t{0x07CA, 0x07EA, prOLetter},   // Lo  [33] NKO LETTER A..NKO LETTER JONA RA\n\t{0x07EB, 0x07F3, prExtend},    // Mn   [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE\n\t{0x07F4, 0x07F5, prOLetter},   // Lm   [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE\n\t{0x07F8, 0x07F8, prSContinue}, // Po       NKO COMMA\n\t{0x07F9, 0x07F9, prSTerm},     // Po       NKO EXCLAMATION MARK\n\t{0x07FA, 0x07FA, prOLetter},   // Lm       NKO LAJANYALAN\n\t{0x07FD, 0x07FD, prExtend},    // Mn       NKO DANTAYALAN\n\t{0x0800, 0x0815, prOLetter},   // Lo  [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF\n\t{0x0816, 0x0819, prExtend},    // Mn   [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH\n\t{0x081A, 0x081A, prOLetter},   // Lm       SAMARITAN MODIFIER LETTER EPENTHETIC YUT\n\t{0x081B, 0x0823, prExtend},    // Mn   [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A\n\t{0x0824, 0x0824, prOLetter},   // Lm       SAMARITAN MODIFIER LETTER SHORT A\n\t{0x0825, 0x0827, prExtend},    // Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U\n\t{0x0828, 0x0828, prOLetter},   // Lm       SAMARITAN MODIFIER LETTER I\n\t{0x0829, 0x082D, prExtend},    // Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA\n\t{0x0837, 0x0837, prSTerm},     // Po       SAMARITAN PUNCTUATION MELODIC QITSA\n\t{0x0839, 0x0839, prSTerm},     // Po       SAMARITAN PUNCTUATION QITSA\n\t{0x083D, 0x083E, prSTerm},     // Po   [2] SAMARITAN PUNCTUATION SOF MASHFAAT..SAMARITAN PUNCTUATION ANNAAU\n\t{0x0840, 0x0858, prOLetter},   // Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN\n\t{0x0859, 0x085B, prExtend},    // Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK\n\t{0x0860, 0x086A, prOLetter},   // Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA\n\t{0x0870, 0x0887, prOLetter},   // Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT\n\t{0x0889, 0x088E, prOLetter},   // Lo   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL\n\t{0x0890, 0x0891, prFormat},    // Cf   [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE\n\t{0x0898, 0x089F, prExtend},    // Mn   [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA\n\t{0x08A0, 0x08C8, prOLetter},   // Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF\n\t{0x08C9, 0x08C9, prOLetter},   // Lm       ARABIC SMALL FARSI YEH\n\t{0x08CA, 0x08E1, prExtend},    // Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA\n\t{0x08E2, 0x08E2, prFormat},    // Cf       ARABIC DISPUTED END OF AYAH\n\t{0x08E3, 0x0902, prExtend},    // Mn  [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA\n\t{0x0903, 0x0903, prExtend},    // Mc       DEVANAGARI SIGN VISARGA\n\t{0x0904, 0x0939, prOLetter},   // Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA\n\t{0x093A, 0x093A, prExtend},    // Mn       DEVANAGARI VOWEL SIGN OE\n\t{0x093B, 0x093B, prExtend},    // Mc       DEVANAGARI VOWEL SIGN OOE\n\t{0x093C, 0x093C, prExtend},    // Mn       DEVANAGARI SIGN NUKTA\n\t{0x093D, 0x093D, prOLetter},   // Lo       DEVANAGARI SIGN AVAGRAHA\n\t{0x093E, 0x0940, prExtend},    // Mc   [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II\n\t{0x0941, 0x0948, prExtend},    // Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI\n\t{0x0949, 0x094C, prExtend},    // Mc   [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU\n\t{0x094D, 0x094D, prExtend},    // Mn       DEVANAGARI SIGN VIRAMA\n\t{0x094E, 0x094F, prExtend},    // Mc   [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW\n\t{0x0950, 0x0950, prOLetter},   // Lo       DEVANAGARI OM\n\t{0x0951, 0x0957, prExtend},    // Mn   [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE\n\t{0x0958, 0x0961, prOLetter},   // Lo  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL\n\t{0x0962, 0x0963, prExtend},    // Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL\n\t{0x0964, 0x0965, prSTerm},     // Po   [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA\n\t{0x0966, 0x096F, prNumeric},   // Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE\n\t{0x0971, 0x0971, prOLetter},   // Lm       DEVANAGARI SIGN HIGH SPACING DOT\n\t{0x0972, 0x0980, prOLetter},   // Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI\n\t{0x0981, 0x0981, prExtend},    // Mn       BENGALI SIGN CANDRABINDU\n\t{0x0982, 0x0983, prExtend},    // Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA\n\t{0x0985, 0x098C, prOLetter},   // Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L\n\t{0x098F, 0x0990, prOLetter},   // Lo   [2] BENGALI LETTER E..BENGALI LETTER AI\n\t{0x0993, 0x09A8, prOLetter},   // Lo  [22] BENGALI LETTER O..BENGALI LETTER NA\n\t{0x09AA, 0x09B0, prOLetter},   // Lo   [7] BENGALI LETTER PA..BENGALI LETTER RA\n\t{0x09B2, 0x09B2, prOLetter},   // Lo       BENGALI LETTER LA\n\t{0x09B6, 0x09B9, prOLetter},   // Lo   [4] BENGALI LETTER SHA..BENGALI LETTER HA\n\t{0x09BC, 0x09BC, prExtend},    // Mn       BENGALI SIGN NUKTA\n\t{0x09BD, 0x09BD, prOLetter},   // Lo       BENGALI SIGN AVAGRAHA\n\t{0x09BE, 0x09C0, prExtend},    // Mc   [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II\n\t{0x09C1, 0x09C4, prExtend},    // Mn   [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR\n\t{0x09C7, 0x09C8, prExtend},    // Mc   [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI\n\t{0x09CB, 0x09CC, prExtend},    // Mc   [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU\n\t{0x09CD, 0x09CD, prExtend},    // Mn       BENGALI SIGN VIRAMA\n\t{0x09CE, 0x09CE, prOLetter},   // Lo       BENGALI LETTER KHANDA TA\n\t{0x09D7, 0x09D7, prExtend},    // Mc       BENGALI AU LENGTH MARK\n\t{0x09DC, 0x09DD, prOLetter},   // Lo   [2] BENGALI LETTER RRA..BENGALI LETTER RHA\n\t{0x09DF, 0x09E1, prOLetter},   // Lo   [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL\n\t{0x09E2, 0x09E3, prExtend},    // Mn   [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL\n\t{0x09E6, 0x09EF, prNumeric},   // Nd  [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE\n\t{0x09F0, 0x09F1, prOLetter},   // Lo   [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL\n\t{0x09FC, 0x09FC, prOLetter},   // Lo       BENGALI LETTER VEDIC ANUSVARA\n\t{0x09FE, 0x09FE, prExtend},    // Mn       BENGALI SANDHI MARK\n\t{0x0A01, 0x0A02, prExtend},    // Mn   [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI\n\t{0x0A03, 0x0A03, prExtend},    // Mc       GURMUKHI SIGN VISARGA\n\t{0x0A05, 0x0A0A, prOLetter},   // Lo   [6] GURMUKHI LETTER A..GURMUKHI LETTER UU\n\t{0x0A0F, 0x0A10, prOLetter},   // Lo   [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI\n\t{0x0A13, 0x0A28, prOLetter},   // Lo  [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA\n\t{0x0A2A, 0x0A30, prOLetter},   // Lo   [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA\n\t{0x0A32, 0x0A33, prOLetter},   // Lo   [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA\n\t{0x0A35, 0x0A36, prOLetter},   // Lo   [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA\n\t{0x0A38, 0x0A39, prOLetter},   // Lo   [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA\n\t{0x0A3C, 0x0A3C, prExtend},    // Mn       GURMUKHI SIGN NUKTA\n\t{0x0A3E, 0x0A40, prExtend},    // Mc   [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II\n\t{0x0A41, 0x0A42, prExtend},    // Mn   [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU\n\t{0x0A47, 0x0A48, prExtend},    // Mn   [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI\n\t{0x0A4B, 0x0A4D, prExtend},    // Mn   [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA\n\t{0x0A51, 0x0A51, prExtend},    // Mn       GURMUKHI SIGN UDAAT\n\t{0x0A59, 0x0A5C, prOLetter},   // Lo   [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA\n\t{0x0A5E, 0x0A5E, prOLetter},   // Lo       GURMUKHI LETTER FA\n\t{0x0A66, 0x0A6F, prNumeric},   // Nd  [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE\n\t{0x0A70, 0x0A71, prExtend},    // Mn   [2] GURMUKHI TIPPI..GURMUKHI ADDAK\n\t{0x0A72, 0x0A74, prOLetter},   // Lo   [3] GURMUKHI IRI..GURMUKHI EK ONKAR\n\t{0x0A75, 0x0A75, prExtend},    // Mn       GURMUKHI SIGN YAKASH\n\t{0x0A81, 0x0A82, prExtend},    // Mn   [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA\n\t{0x0A83, 0x0A83, prExtend},    // Mc       GUJARATI SIGN VISARGA\n\t{0x0A85, 0x0A8D, prOLetter},   // Lo   [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E\n\t{0x0A8F, 0x0A91, prOLetter},   // Lo   [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O\n\t{0x0A93, 0x0AA8, prOLetter},   // Lo  [22] GUJARATI LETTER O..GUJARATI LETTER NA\n\t{0x0AAA, 0x0AB0, prOLetter},   // Lo   [7] GUJARATI LETTER PA..GUJARATI LETTER RA\n\t{0x0AB2, 0x0AB3, prOLetter},   // Lo   [2] GUJARATI LETTER LA..GUJARATI LETTER LLA\n\t{0x0AB5, 0x0AB9, prOLetter},   // Lo   [5] GUJARATI LETTER VA..GUJARATI LETTER HA\n\t{0x0ABC, 0x0ABC, prExtend},    // Mn       GUJARATI SIGN NUKTA\n\t{0x0ABD, 0x0ABD, prOLetter},   // Lo       GUJARATI SIGN AVAGRAHA\n\t{0x0ABE, 0x0AC0, prExtend},    // Mc   [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II\n\t{0x0AC1, 0x0AC5, prExtend},    // Mn   [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E\n\t{0x0AC7, 0x0AC8, prExtend},    // Mn   [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI\n\t{0x0AC9, 0x0AC9, prExtend},    // Mc       GUJARATI VOWEL SIGN CANDRA O\n\t{0x0ACB, 0x0ACC, prExtend},    // Mc   [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU\n\t{0x0ACD, 0x0ACD, prExtend},    // Mn       GUJARATI SIGN VIRAMA\n\t{0x0AD0, 0x0AD0, prOLetter},   // Lo       GUJARATI OM\n\t{0x0AE0, 0x0AE1, prOLetter},   // Lo   [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL\n\t{0x0AE2, 0x0AE3, prExtend},    // Mn   [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL\n\t{0x0AE6, 0x0AEF, prNumeric},   // Nd  [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE\n\t{0x0AF9, 0x0AF9, prOLetter},   // Lo       GUJARATI LETTER ZHA\n\t{0x0AFA, 0x0AFF, prExtend},    // Mn   [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE\n\t{0x0B01, 0x0B01, prExtend},    // Mn       ORIYA SIGN CANDRABINDU\n\t{0x0B02, 0x0B03, prExtend},    // Mc   [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA\n\t{0x0B05, 0x0B0C, prOLetter},   // Lo   [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L\n\t{0x0B0F, 0x0B10, prOLetter},   // Lo   [2] ORIYA LETTER E..ORIYA LETTER AI\n\t{0x0B13, 0x0B28, prOLetter},   // Lo  [22] ORIYA LETTER O..ORIYA LETTER NA\n\t{0x0B2A, 0x0B30, prOLetter},   // Lo   [7] ORIYA LETTER PA..ORIYA LETTER RA\n\t{0x0B32, 0x0B33, prOLetter},   // Lo   [2] ORIYA LETTER LA..ORIYA LETTER LLA\n\t{0x0B35, 0x0B39, prOLetter},   // Lo   [5] ORIYA LETTER VA..ORIYA LETTER HA\n\t{0x0B3C, 0x0B3C, prExtend},    // Mn       ORIYA SIGN NUKTA\n\t{0x0B3D, 0x0B3D, prOLetter},   // Lo       ORIYA SIGN AVAGRAHA\n\t{0x0B3E, 0x0B3E, prExtend},    // Mc       ORIYA VOWEL SIGN AA\n\t{0x0B3F, 0x0B3F, prExtend},    // Mn       ORIYA VOWEL SIGN I\n\t{0x0B40, 0x0B40, prExtend},    // Mc       ORIYA VOWEL SIGN II\n\t{0x0B41, 0x0B44, prExtend},    // Mn   [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR\n\t{0x0B47, 0x0B48, prExtend},    // Mc   [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI\n\t{0x0B4B, 0x0B4C, prExtend},    // Mc   [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU\n\t{0x0B4D, 0x0B4D, prExtend},    // Mn       ORIYA SIGN VIRAMA\n\t{0x0B55, 0x0B56, prExtend},    // Mn   [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK\n\t{0x0B57, 0x0B57, prExtend},    // Mc       ORIYA AU LENGTH MARK\n\t{0x0B5C, 0x0B5D, prOLetter},   // Lo   [2] ORIYA LETTER RRA..ORIYA LETTER RHA\n\t{0x0B5F, 0x0B61, prOLetter},   // Lo   [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL\n\t{0x0B62, 0x0B63, prExtend},    // Mn   [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL\n\t{0x0B66, 0x0B6F, prNumeric},   // Nd  [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE\n\t{0x0B71, 0x0B71, prOLetter},   // Lo       ORIYA LETTER WA\n\t{0x0B82, 0x0B82, prExtend},    // Mn       TAMIL SIGN ANUSVARA\n\t{0x0B83, 0x0B83, prOLetter},   // Lo       TAMIL SIGN VISARGA\n\t{0x0B85, 0x0B8A, prOLetter},   // Lo   [6] TAMIL LETTER A..TAMIL LETTER UU\n\t{0x0B8E, 0x0B90, prOLetter},   // Lo   [3] TAMIL LETTER E..TAMIL LETTER AI\n\t{0x0B92, 0x0B95, prOLetter},   // Lo   [4] TAMIL LETTER O..TAMIL LETTER KA\n\t{0x0B99, 0x0B9A, prOLetter},   // Lo   [2] TAMIL LETTER NGA..TAMIL LETTER CA\n\t{0x0B9C, 0x0B9C, prOLetter},   // Lo       TAMIL LETTER JA\n\t{0x0B9E, 0x0B9F, prOLetter},   // Lo   [2] TAMIL LETTER NYA..TAMIL LETTER TTA\n\t{0x0BA3, 0x0BA4, prOLetter},   // Lo   [2] TAMIL LETTER NNA..TAMIL LETTER TA\n\t{0x0BA8, 0x0BAA, prOLetter},   // Lo   [3] TAMIL LETTER NA..TAMIL LETTER PA\n\t{0x0BAE, 0x0BB9, prOLetter},   // Lo  [12] TAMIL LETTER MA..TAMIL LETTER HA\n\t{0x0BBE, 0x0BBF, prExtend},    // Mc   [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I\n\t{0x0BC0, 0x0BC0, prExtend},    // Mn       TAMIL VOWEL SIGN II\n\t{0x0BC1, 0x0BC2, prExtend},    // Mc   [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU\n\t{0x0BC6, 0x0BC8, prExtend},    // Mc   [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI\n\t{0x0BCA, 0x0BCC, prExtend},    // Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU\n\t{0x0BCD, 0x0BCD, prExtend},    // Mn       TAMIL SIGN VIRAMA\n\t{0x0BD0, 0x0BD0, prOLetter},   // Lo       TAMIL OM\n\t{0x0BD7, 0x0BD7, prExtend},    // Mc       TAMIL AU LENGTH MARK\n\t{0x0BE6, 0x0BEF, prNumeric},   // Nd  [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE\n\t{0x0C00, 0x0C00, prExtend},    // Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE\n\t{0x0C01, 0x0C03, prExtend},    // Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA\n\t{0x0C04, 0x0C04, prExtend},    // Mn       TELUGU SIGN COMBINING ANUSVARA ABOVE\n\t{0x0C05, 0x0C0C, prOLetter},   // Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L\n\t{0x0C0E, 0x0C10, prOLetter},   // Lo   [3] TELUGU LETTER E..TELUGU LETTER AI\n\t{0x0C12, 0x0C28, prOLetter},   // Lo  [23] TELUGU LETTER O..TELUGU LETTER NA\n\t{0x0C2A, 0x0C39, prOLetter},   // Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA\n\t{0x0C3C, 0x0C3C, prExtend},    // Mn       TELUGU SIGN NUKTA\n\t{0x0C3D, 0x0C3D, prOLetter},   // Lo       TELUGU SIGN AVAGRAHA\n\t{0x0C3E, 0x0C40, prExtend},    // Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II\n\t{0x0C41, 0x0C44, prExtend},    // Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR\n\t{0x0C46, 0x0C48, prExtend},    // Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI\n\t{0x0C4A, 0x0C4D, prExtend},    // Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA\n\t{0x0C55, 0x0C56, prExtend},    // Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK\n\t{0x0C58, 0x0C5A, prOLetter},   // Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA\n\t{0x0C5D, 0x0C5D, prOLetter},   // Lo       TELUGU LETTER NAKAARA POLLU\n\t{0x0C60, 0x0C61, prOLetter},   // Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL\n\t{0x0C62, 0x0C63, prExtend},    // Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL\n\t{0x0C66, 0x0C6F, prNumeric},   // Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE\n\t{0x0C80, 0x0C80, prOLetter},   // Lo       KANNADA SIGN SPACING CANDRABINDU\n\t{0x0C81, 0x0C81, prExtend},    // Mn       KANNADA SIGN CANDRABINDU\n\t{0x0C82, 0x0C83, prExtend},    // Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA\n\t{0x0C85, 0x0C8C, prOLetter},   // Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L\n\t{0x0C8E, 0x0C90, prOLetter},   // Lo   [3] KANNADA LETTER E..KANNADA LETTER AI\n\t{0x0C92, 0x0CA8, prOLetter},   // Lo  [23] KANNADA LETTER O..KANNADA LETTER NA\n\t{0x0CAA, 0x0CB3, prOLetter},   // Lo  [10] KANNADA LETTER PA..KANNADA LETTER LLA\n\t{0x0CB5, 0x0CB9, prOLetter},   // Lo   [5] KANNADA LETTER VA..KANNADA LETTER HA\n\t{0x0CBC, 0x0CBC, prExtend},    // Mn       KANNADA SIGN NUKTA\n\t{0x0CBD, 0x0CBD, prOLetter},   // Lo       KANNADA SIGN AVAGRAHA\n\t{0x0CBE, 0x0CBE, prExtend},    // Mc       KANNADA VOWEL SIGN AA\n\t{0x0CBF, 0x0CBF, prExtend},    // Mn       KANNADA VOWEL SIGN I\n\t{0x0CC0, 0x0CC4, prExtend},    // Mc   [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR\n\t{0x0CC6, 0x0CC6, prExtend},    // Mn       KANNADA VOWEL SIGN E\n\t{0x0CC7, 0x0CC8, prExtend},    // Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI\n\t{0x0CCA, 0x0CCB, prExtend},    // Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO\n\t{0x0CCC, 0x0CCD, prExtend},    // Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA\n\t{0x0CD5, 0x0CD6, prExtend},    // Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK\n\t{0x0CDD, 0x0CDE, prOLetter},   // Lo   [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA\n\t{0x0CE0, 0x0CE1, prOLetter},   // Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL\n\t{0x0CE2, 0x0CE3, prExtend},    // Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL\n\t{0x0CE6, 0x0CEF, prNumeric},   // Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE\n\t{0x0CF1, 0x0CF2, prOLetter},   // Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA\n\t{0x0CF3, 0x0CF3, prExtend},    // Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT\n\t{0x0D00, 0x0D01, prExtend},    // Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU\n\t{0x0D02, 0x0D03, prExtend},    // Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA\n\t{0x0D04, 0x0D0C, prOLetter},   // Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L\n\t{0x0D0E, 0x0D10, prOLetter},   // Lo   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI\n\t{0x0D12, 0x0D3A, prOLetter},   // Lo  [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA\n\t{0x0D3B, 0x0D3C, prExtend},    // Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA\n\t{0x0D3D, 0x0D3D, prOLetter},   // Lo       MALAYALAM SIGN AVAGRAHA\n\t{0x0D3E, 0x0D40, prExtend},    // Mc   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II\n\t{0x0D41, 0x0D44, prExtend},    // Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR\n\t{0x0D46, 0x0D48, prExtend},    // Mc   [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI\n\t{0x0D4A, 0x0D4C, prExtend},    // Mc   [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU\n\t{0x0D4D, 0x0D4D, prExtend},    // Mn       MALAYALAM SIGN VIRAMA\n\t{0x0D4E, 0x0D4E, prOLetter},   // Lo       MALAYALAM LETTER DOT REPH\n\t{0x0D54, 0x0D56, prOLetter},   // Lo   [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL\n\t{0x0D57, 0x0D57, prExtend},    // Mc       MALAYALAM AU LENGTH MARK\n\t{0x0D5F, 0x0D61, prOLetter},   // Lo   [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL\n\t{0x0D62, 0x0D63, prExtend},    // Mn   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL\n\t{0x0D66, 0x0D6F, prNumeric},   // Nd  [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE\n\t{0x0D7A, 0x0D7F, prOLetter},   // Lo   [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K\n\t{0x0D81, 0x0D81, prExtend},    // Mn       SINHALA SIGN CANDRABINDU\n\t{0x0D82, 0x0D83, prExtend},    // Mc   [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA\n\t{0x0D85, 0x0D96, prOLetter},   // Lo  [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA\n\t{0x0D9A, 0x0DB1, prOLetter},   // Lo  [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA\n\t{0x0DB3, 0x0DBB, prOLetter},   // Lo   [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA\n\t{0x0DBD, 0x0DBD, prOLetter},   // Lo       SINHALA LETTER DANTAJA LAYANNA\n\t{0x0DC0, 0x0DC6, prOLetter},   // Lo   [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA\n\t{0x0DCA, 0x0DCA, prExtend},    // Mn       SINHALA SIGN AL-LAKUNA\n\t{0x0DCF, 0x0DD1, prExtend},    // Mc   [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA\n\t{0x0DD2, 0x0DD4, prExtend},    // Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA\n\t{0x0DD6, 0x0DD6, prExtend},    // Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA\n\t{0x0DD8, 0x0DDF, prExtend},    // Mc   [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA\n\t{0x0DE6, 0x0DEF, prNumeric},   // Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE\n\t{0x0DF2, 0x0DF3, prExtend},    // Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA\n\t{0x0E01, 0x0E30, prOLetter},   // Lo  [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A\n\t{0x0E31, 0x0E31, prExtend},    // Mn       THAI CHARACTER MAI HAN-AKAT\n\t{0x0E32, 0x0E33, prOLetter},   // Lo   [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM\n\t{0x0E34, 0x0E3A, prExtend},    // Mn   [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU\n\t{0x0E40, 0x0E45, prOLetter},   // Lo   [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO\n\t{0x0E46, 0x0E46, prOLetter},   // Lm       THAI CHARACTER MAIYAMOK\n\t{0x0E47, 0x0E4E, prExtend},    // Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN\n\t{0x0E50, 0x0E59, prNumeric},   // Nd  [10] THAI DIGIT ZERO..THAI DIGIT NINE\n\t{0x0E81, 0x0E82, prOLetter},   // Lo   [2] LAO LETTER KO..LAO LETTER KHO SUNG\n\t{0x0E84, 0x0E84, prOLetter},   // Lo       LAO LETTER KHO TAM\n\t{0x0E86, 0x0E8A, prOLetter},   // Lo   [5] LAO LETTER PALI GHA..LAO LETTER SO TAM\n\t{0x0E8C, 0x0EA3, prOLetter},   // Lo  [24] LAO LETTER PALI JHA..LAO LETTER LO LING\n\t{0x0EA5, 0x0EA5, prOLetter},   // Lo       LAO LETTER LO LOOT\n\t{0x0EA7, 0x0EB0, prOLetter},   // Lo  [10] LAO LETTER WO..LAO VOWEL SIGN A\n\t{0x0EB1, 0x0EB1, prExtend},    // Mn       LAO VOWEL SIGN MAI KAN\n\t{0x0EB2, 0x0EB3, prOLetter},   // Lo   [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM\n\t{0x0EB4, 0x0EBC, prExtend},    // Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO\n\t{0x0EBD, 0x0EBD, prOLetter},   // Lo       LAO SEMIVOWEL SIGN NYO\n\t{0x0EC0, 0x0EC4, prOLetter},   // Lo   [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI\n\t{0x0EC6, 0x0EC6, prOLetter},   // Lm       LAO KO LA\n\t{0x0EC8, 0x0ECE, prExtend},    // Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN\n\t{0x0ED0, 0x0ED9, prNumeric},   // Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE\n\t{0x0EDC, 0x0EDF, prOLetter},   // Lo   [4] LAO HO NO..LAO LETTER KHMU NYO\n\t{0x0F00, 0x0F00, prOLetter},   // Lo       TIBETAN SYLLABLE OM\n\t{0x0F18, 0x0F19, prExtend},    // Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS\n\t{0x0F20, 0x0F29, prNumeric},   // Nd  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE\n\t{0x0F35, 0x0F35, prExtend},    // Mn       TIBETAN MARK NGAS BZUNG NYI ZLA\n\t{0x0F37, 0x0F37, prExtend},    // Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS\n\t{0x0F39, 0x0F39, prExtend},    // Mn       TIBETAN MARK TSA -PHRU\n\t{0x0F3A, 0x0F3A, prClose},     // Ps       TIBETAN MARK GUG RTAGS GYON\n\t{0x0F3B, 0x0F3B, prClose},     // Pe       TIBETAN MARK GUG RTAGS GYAS\n\t{0x0F3C, 0x0F3C, prClose},     // Ps       TIBETAN MARK ANG KHANG GYON\n\t{0x0F3D, 0x0F3D, prClose},     // Pe       TIBETAN MARK ANG KHANG GYAS\n\t{0x0F3E, 0x0F3F, prExtend},    // Mc   [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES\n\t{0x0F40, 0x0F47, prOLetter},   // Lo   [8] TIBETAN LETTER KA..TIBETAN LETTER JA\n\t{0x0F49, 0x0F6C, prOLetter},   // Lo  [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA\n\t{0x0F71, 0x0F7E, prExtend},    // Mn  [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO\n\t{0x0F7F, 0x0F7F, prExtend},    // Mc       TIBETAN SIGN RNAM BCAD\n\t{0x0F80, 0x0F84, prExtend},    // Mn   [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA\n\t{0x0F86, 0x0F87, prExtend},    // Mn   [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS\n\t{0x0F88, 0x0F8C, prOLetter},   // Lo   [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN\n\t{0x0F8D, 0x0F97, prExtend},    // Mn  [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA\n\t{0x0F99, 0x0FBC, prExtend},    // Mn  [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA\n\t{0x0FC6, 0x0FC6, prExtend},    // Mn       TIBETAN SYMBOL PADMA GDAN\n\t{0x1000, 0x102A, prOLetter},   // Lo  [43] MYANMAR LETTER KA..MYANMAR LETTER AU\n\t{0x102B, 0x102C, prExtend},    // Mc   [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA\n\t{0x102D, 0x1030, prExtend},    // Mn   [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU\n\t{0x1031, 0x1031, prExtend},    // Mc       MYANMAR VOWEL SIGN E\n\t{0x1032, 0x1037, prExtend},    // Mn   [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW\n\t{0x1038, 0x1038, prExtend},    // Mc       MYANMAR SIGN VISARGA\n\t{0x1039, 0x103A, prExtend},    // Mn   [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT\n\t{0x103B, 0x103C, prExtend},    // Mc   [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA\n\t{0x103D, 0x103E, prExtend},    // Mn   [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA\n\t{0x103F, 0x103F, prOLetter},   // Lo       MYANMAR LETTER GREAT SA\n\t{0x1040, 0x1049, prNumeric},   // Nd  [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE\n\t{0x104A, 0x104B, prSTerm},     // Po   [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION\n\t{0x1050, 0x1055, prOLetter},   // Lo   [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL\n\t{0x1056, 0x1057, prExtend},    // Mc   [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR\n\t{0x1058, 0x1059, prExtend},    // Mn   [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL\n\t{0x105A, 0x105D, prOLetter},   // Lo   [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE\n\t{0x105E, 0x1060, prExtend},    // Mn   [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA\n\t{0x1061, 0x1061, prOLetter},   // Lo       MYANMAR LETTER SGAW KAREN SHA\n\t{0x1062, 0x1064, prExtend},    // Mc   [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO\n\t{0x1065, 0x1066, prOLetter},   // Lo   [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA\n\t{0x1067, 0x106D, prExtend},    // Mc   [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5\n\t{0x106E, 0x1070, prOLetter},   // Lo   [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA\n\t{0x1071, 0x1074, prExtend},    // Mn   [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE\n\t{0x1075, 0x1081, prOLetter},   // Lo  [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA\n\t{0x1082, 0x1082, prExtend},    // Mn       MYANMAR CONSONANT SIGN SHAN MEDIAL WA\n\t{0x1083, 0x1084, prExtend},    // Mc   [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E\n\t{0x1085, 0x1086, prExtend},    // Mn   [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y\n\t{0x1087, 0x108C, prExtend},    // Mc   [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3\n\t{0x108D, 0x108D, prExtend},    // Mn       MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE\n\t{0x108E, 0x108E, prOLetter},   // Lo       MYANMAR LETTER RUMAI PALAUNG FA\n\t{0x108F, 0x108F, prExtend},    // Mc       MYANMAR SIGN RUMAI PALAUNG TONE-5\n\t{0x1090, 0x1099, prNumeric},   // Nd  [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE\n\t{0x109A, 0x109C, prExtend},    // Mc   [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A\n\t{0x109D, 0x109D, prExtend},    // Mn       MYANMAR VOWEL SIGN AITON AI\n\t{0x10A0, 0x10C5, prUpper},     // L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE\n\t{0x10C7, 0x10C7, prUpper},     // L&       GEORGIAN CAPITAL LETTER YN\n\t{0x10CD, 0x10CD, prUpper},     // L&       GEORGIAN CAPITAL LETTER AEN\n\t{0x10D0, 0x10FA, prOLetter},   // L&  [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN\n\t{0x10FC, 0x10FC, prLower},     // Lm       MODIFIER LETTER GEORGIAN NAR\n\t{0x10FD, 0x10FF, prOLetter},   // L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN\n\t{0x1100, 0x1248, prOLetter},   // Lo [329] HANGUL CHOSEONG KIYEOK..ETHIOPIC SYLLABLE QWA\n\t{0x124A, 0x124D, prOLetter},   // Lo   [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE\n\t{0x1250, 0x1256, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO\n\t{0x1258, 0x1258, prOLetter},   // Lo       ETHIOPIC SYLLABLE QHWA\n\t{0x125A, 0x125D, prOLetter},   // Lo   [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE\n\t{0x1260, 0x1288, prOLetter},   // Lo  [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA\n\t{0x128A, 0x128D, prOLetter},   // Lo   [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE\n\t{0x1290, 0x12B0, prOLetter},   // Lo  [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA\n\t{0x12B2, 0x12B5, prOLetter},   // Lo   [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE\n\t{0x12B8, 0x12BE, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO\n\t{0x12C0, 0x12C0, prOLetter},   // Lo       ETHIOPIC SYLLABLE KXWA\n\t{0x12C2, 0x12C5, prOLetter},   // Lo   [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE\n\t{0x12C8, 0x12D6, prOLetter},   // Lo  [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O\n\t{0x12D8, 0x1310, prOLetter},   // Lo  [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA\n\t{0x1312, 0x1315, prOLetter},   // Lo   [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE\n\t{0x1318, 0x135A, prOLetter},   // Lo  [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA\n\t{0x135D, 0x135F, prExtend},    // Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK\n\t{0x1362, 0x1362, prSTerm},     // Po       ETHIOPIC FULL STOP\n\t{0x1367, 0x1368, prSTerm},     // Po   [2] ETHIOPIC QUESTION MARK..ETHIOPIC PARAGRAPH SEPARATOR\n\t{0x1380, 0x138F, prOLetter},   // Lo  [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE\n\t{0x13A0, 0x13F5, prUpper},     // L&  [86] CHEROKEE LETTER A..CHEROKEE LETTER MV\n\t{0x13F8, 0x13FD, prLower},     // L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV\n\t{0x1401, 0x166C, prOLetter},   // Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA\n\t{0x166E, 0x166E, prSTerm},     // Po       CANADIAN SYLLABICS FULL STOP\n\t{0x166F, 0x167F, prOLetter},   // Lo  [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W\n\t{0x1680, 0x1680, prSp},        // Zs       OGHAM SPACE MARK\n\t{0x1681, 0x169A, prOLetter},   // Lo  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH\n\t{0x169B, 0x169B, prClose},     // Ps       OGHAM FEATHER MARK\n\t{0x169C, 0x169C, prClose},     // Pe       OGHAM REVERSED FEATHER MARK\n\t{0x16A0, 0x16EA, prOLetter},   // Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X\n\t{0x16EE, 0x16F0, prOLetter},   // Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL\n\t{0x16F1, 0x16F8, prOLetter},   // Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC\n\t{0x1700, 0x1711, prOLetter},   // Lo  [18] TAGALOG LETTER A..TAGALOG LETTER HA\n\t{0x1712, 0x1714, prExtend},    // Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA\n\t{0x1715, 0x1715, prExtend},    // Mc       TAGALOG SIGN PAMUDPOD\n\t{0x171F, 0x1731, prOLetter},   // Lo  [19] TAGALOG LETTER ARCHAIC RA..HANUNOO LETTER HA\n\t{0x1732, 0x1733, prExtend},    // Mn   [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U\n\t{0x1734, 0x1734, prExtend},    // Mc       HANUNOO SIGN PAMUDPOD\n\t{0x1735, 0x1736, prSTerm},     // Po   [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION\n\t{0x1740, 0x1751, prOLetter},   // Lo  [18] BUHID LETTER A..BUHID LETTER HA\n\t{0x1752, 0x1753, prExtend},    // Mn   [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U\n\t{0x1760, 0x176C, prOLetter},   // Lo  [13] TAGBANWA LETTER A..TAGBANWA LETTER YA\n\t{0x176E, 0x1770, prOLetter},   // Lo   [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA\n\t{0x1772, 0x1773, prExtend},    // Mn   [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U\n\t{0x1780, 0x17B3, prOLetter},   // Lo  [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU\n\t{0x17B4, 0x17B5, prExtend},    // Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA\n\t{0x17B6, 0x17B6, prExtend},    // Mc       KHMER VOWEL SIGN AA\n\t{0x17B7, 0x17BD, prExtend},    // Mn   [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA\n\t{0x17BE, 0x17C5, prExtend},    // Mc   [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU\n\t{0x17C6, 0x17C6, prExtend},    // Mn       KHMER SIGN NIKAHIT\n\t{0x17C7, 0x17C8, prExtend},    // Mc   [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU\n\t{0x17C9, 0x17D3, prExtend},    // Mn  [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT\n\t{0x17D7, 0x17D7, prOLetter},   // Lm       KHMER SIGN LEK TOO\n\t{0x17DC, 0x17DC, prOLetter},   // Lo       KHMER SIGN AVAKRAHASANYA\n\t{0x17DD, 0x17DD, prExtend},    // Mn       KHMER SIGN ATTHACAN\n\t{0x17E0, 0x17E9, prNumeric},   // Nd  [10] KHMER DIGIT ZERO..KHMER DIGIT NINE\n\t{0x1802, 0x1802, prSContinue}, // Po       MONGOLIAN COMMA\n\t{0x1803, 0x1803, prSTerm},     // Po       MONGOLIAN FULL STOP\n\t{0x1808, 0x1808, prSContinue}, // Po       MONGOLIAN MANCHU COMMA\n\t{0x1809, 0x1809, prSTerm},     // Po       MONGOLIAN MANCHU FULL STOP\n\t{0x180B, 0x180D, prExtend},    // Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE\n\t{0x180E, 0x180E, prFormat},    // Cf       MONGOLIAN VOWEL SEPARATOR\n\t{0x180F, 0x180F, prExtend},    // Mn       MONGOLIAN FREE VARIATION SELECTOR FOUR\n\t{0x1810, 0x1819, prNumeric},   // Nd  [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE\n\t{0x1820, 0x1842, prOLetter},   // Lo  [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI\n\t{0x1843, 0x1843, prOLetter},   // Lm       MONGOLIAN LETTER TODO LONG VOWEL SIGN\n\t{0x1844, 0x1878, prOLetter},   // Lo  [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS\n\t{0x1880, 0x1884, prOLetter},   // Lo   [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA\n\t{0x1885, 0x1886, prExtend},    // Mn   [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA\n\t{0x1887, 0x18A8, prOLetter},   // Lo  [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA\n\t{0x18A9, 0x18A9, prExtend},    // Mn       MONGOLIAN LETTER ALI GALI DAGALGA\n\t{0x18AA, 0x18AA, prOLetter},   // Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA\n\t{0x18B0, 0x18F5, prOLetter},   // Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S\n\t{0x1900, 0x191E, prOLetter},   // Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA\n\t{0x1920, 0x1922, prExtend},    // Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U\n\t{0x1923, 0x1926, prExtend},    // Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU\n\t{0x1927, 0x1928, prExtend},    // Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O\n\t{0x1929, 0x192B, prExtend},    // Mc   [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA\n\t{0x1930, 0x1931, prExtend},    // Mc   [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA\n\t{0x1932, 0x1932, prExtend},    // Mn       LIMBU SMALL LETTER ANUSVARA\n\t{0x1933, 0x1938, prExtend},    // Mc   [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA\n\t{0x1939, 0x193B, prExtend},    // Mn   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I\n\t{0x1944, 0x1945, prSTerm},     // Po   [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK\n\t{0x1946, 0x194F, prNumeric},   // Nd  [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE\n\t{0x1950, 0x196D, prOLetter},   // Lo  [30] TAI LE LETTER KA..TAI LE LETTER AI\n\t{0x1970, 0x1974, prOLetter},   // Lo   [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6\n\t{0x1980, 0x19AB, prOLetter},   // Lo  [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA\n\t{0x19B0, 0x19C9, prOLetter},   // Lo  [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2\n\t{0x19D0, 0x19D9, prNumeric},   // Nd  [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE\n\t{0x1A00, 0x1A16, prOLetter},   // Lo  [23] BUGINESE LETTER KA..BUGINESE LETTER HA\n\t{0x1A17, 0x1A18, prExtend},    // Mn   [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U\n\t{0x1A19, 0x1A1A, prExtend},    // Mc   [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O\n\t{0x1A1B, 0x1A1B, prExtend},    // Mn       BUGINESE VOWEL SIGN AE\n\t{0x1A20, 0x1A54, prOLetter},   // Lo  [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA\n\t{0x1A55, 0x1A55, prExtend},    // Mc       TAI THAM CONSONANT SIGN MEDIAL RA\n\t{0x1A56, 0x1A56, prExtend},    // Mn       TAI THAM CONSONANT SIGN MEDIAL LA\n\t{0x1A57, 0x1A57, prExtend},    // Mc       TAI THAM CONSONANT SIGN LA TANG LAI\n\t{0x1A58, 0x1A5E, prExtend},    // Mn   [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA\n\t{0x1A60, 0x1A60, prExtend},    // Mn       TAI THAM SIGN SAKOT\n\t{0x1A61, 0x1A61, prExtend},    // Mc       TAI THAM VOWEL SIGN A\n\t{0x1A62, 0x1A62, prExtend},    // Mn       TAI THAM VOWEL SIGN MAI SAT\n\t{0x1A63, 0x1A64, prExtend},    // Mc   [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA\n\t{0x1A65, 0x1A6C, prExtend},    // Mn   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW\n\t{0x1A6D, 0x1A72, prExtend},    // Mc   [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI\n\t{0x1A73, 0x1A7C, prExtend},    // Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN\n\t{0x1A7F, 0x1A7F, prExtend},    // Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT\n\t{0x1A80, 0x1A89, prNumeric},   // Nd  [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE\n\t{0x1A90, 0x1A99, prNumeric},   // Nd  [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE\n\t{0x1AA7, 0x1AA7, prOLetter},   // Lm       TAI THAM SIGN MAI YAMOK\n\t{0x1AA8, 0x1AAB, prSTerm},     // Po   [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU\n\t{0x1AB0, 0x1ABD, prExtend},    // Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW\n\t{0x1ABE, 0x1ABE, prExtend},    // Me       COMBINING PARENTHESES OVERLAY\n\t{0x1ABF, 0x1ACE, prExtend},    // Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T\n\t{0x1B00, 0x1B03, prExtend},    // Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG\n\t{0x1B04, 0x1B04, prExtend},    // Mc       BALINESE SIGN BISAH\n\t{0x1B05, 0x1B33, prOLetter},   // Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA\n\t{0x1B34, 0x1B34, prExtend},    // Mn       BALINESE SIGN REREKAN\n\t{0x1B35, 0x1B35, prExtend},    // Mc       BALINESE VOWEL SIGN TEDUNG\n\t{0x1B36, 0x1B3A, prExtend},    // Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA\n\t{0x1B3B, 0x1B3B, prExtend},    // Mc       BALINESE VOWEL SIGN RA REPA TEDUNG\n\t{0x1B3C, 0x1B3C, prExtend},    // Mn       BALINESE VOWEL SIGN LA LENGA\n\t{0x1B3D, 0x1B41, prExtend},    // Mc   [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG\n\t{0x1B42, 0x1B42, prExtend},    // Mn       BALINESE VOWEL SIGN PEPET\n\t{0x1B43, 0x1B44, prExtend},    // Mc   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG\n\t{0x1B45, 0x1B4C, prOLetter},   // Lo   [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA\n\t{0x1B50, 0x1B59, prNumeric},   // Nd  [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE\n\t{0x1B5A, 0x1B5B, prSTerm},     // Po   [2] BALINESE PANTI..BALINESE PAMADA\n\t{0x1B5E, 0x1B5F, prSTerm},     // Po   [2] BALINESE CARIK SIKI..BALINESE CARIK PAREREN\n\t{0x1B6B, 0x1B73, prExtend},    // Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG\n\t{0x1B7D, 0x1B7E, prSTerm},     // Po   [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG\n\t{0x1B80, 0x1B81, prExtend},    // Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR\n\t{0x1B82, 0x1B82, prExtend},    // Mc       SUNDANESE SIGN PANGWISAD\n\t{0x1B83, 0x1BA0, prOLetter},   // Lo  [30] SUNDANESE LETTER A..SUNDANESE LETTER HA\n\t{0x1BA1, 0x1BA1, prExtend},    // Mc       SUNDANESE CONSONANT SIGN PAMINGKAL\n\t{0x1BA2, 0x1BA5, prExtend},    // Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU\n\t{0x1BA6, 0x1BA7, prExtend},    // Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG\n\t{0x1BA8, 0x1BA9, prExtend},    // Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG\n\t{0x1BAA, 0x1BAA, prExtend},    // Mc       SUNDANESE SIGN PAMAAEH\n\t{0x1BAB, 0x1BAD, prExtend},    // Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA\n\t{0x1BAE, 0x1BAF, prOLetter},   // Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA\n\t{0x1BB0, 0x1BB9, prNumeric},   // Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE\n\t{0x1BBA, 0x1BE5, prOLetter},   // Lo  [44] SUNDANESE AVAGRAHA..BATAK LETTER U\n\t{0x1BE6, 0x1BE6, prExtend},    // Mn       BATAK SIGN TOMPI\n\t{0x1BE7, 0x1BE7, prExtend},    // Mc       BATAK VOWEL SIGN E\n\t{0x1BE8, 0x1BE9, prExtend},    // Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE\n\t{0x1BEA, 0x1BEC, prExtend},    // Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O\n\t{0x1BED, 0x1BED, prExtend},    // Mn       BATAK VOWEL SIGN KARO O\n\t{0x1BEE, 0x1BEE, prExtend},    // Mc       BATAK VOWEL SIGN U\n\t{0x1BEF, 0x1BF1, prExtend},    // Mn   [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H\n\t{0x1BF2, 0x1BF3, prExtend},    // Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN\n\t{0x1C00, 0x1C23, prOLetter},   // Lo  [36] LEPCHA LETTER KA..LEPCHA LETTER A\n\t{0x1C24, 0x1C2B, prExtend},    // Mc   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU\n\t{0x1C2C, 0x1C33, prExtend},    // Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T\n\t{0x1C34, 0x1C35, prExtend},    // Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG\n\t{0x1C36, 0x1C37, prExtend},    // Mn   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA\n\t{0x1C3B, 0x1C3C, prSTerm},     // Po   [2] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION NYET THYOOM TA-ROL\n\t{0x1C40, 0x1C49, prNumeric},   // Nd  [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE\n\t{0x1C4D, 0x1C4F, prOLetter},   // Lo   [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA\n\t{0x1C50, 0x1C59, prNumeric},   // Nd  [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE\n\t{0x1C5A, 0x1C77, prOLetter},   // Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH\n\t{0x1C78, 0x1C7D, prOLetter},   // Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD\n\t{0x1C7E, 0x1C7F, prSTerm},     // Po   [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD\n\t{0x1C80, 0x1C88, prLower},     // L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK\n\t{0x1C90, 0x1CBA, prOLetter},   // L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN\n\t{0x1CBD, 0x1CBF, prOLetter},   // L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN\n\t{0x1CD0, 0x1CD2, prExtend},    // Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA\n\t{0x1CD4, 0x1CE0, prExtend},    // Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA\n\t{0x1CE1, 0x1CE1, prExtend},    // Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA\n\t{0x1CE2, 0x1CE8, prExtend},    // Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL\n\t{0x1CE9, 0x1CEC, prOLetter},   // Lo   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL\n\t{0x1CED, 0x1CED, prExtend},    // Mn       VEDIC SIGN TIRYAK\n\t{0x1CEE, 0x1CF3, prOLetter},   // Lo   [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA\n\t{0x1CF4, 0x1CF4, prExtend},    // Mn       VEDIC TONE CANDRA ABOVE\n\t{0x1CF5, 0x1CF6, prOLetter},   // Lo   [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA\n\t{0x1CF7, 0x1CF7, prExtend},    // Mc       VEDIC SIGN ATIKRAMA\n\t{0x1CF8, 0x1CF9, prExtend},    // Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE\n\t{0x1CFA, 0x1CFA, prOLetter},   // Lo       VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA\n\t{0x1D00, 0x1D2B, prLower},     // L&  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL\n\t{0x1D2C, 0x1D6A, prLower},     // Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI\n\t{0x1D6B, 0x1D77, prLower},     // L&  [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G\n\t{0x1D78, 0x1D78, prLower},     // Lm       MODIFIER LETTER CYRILLIC EN\n\t{0x1D79, 0x1D9A, prLower},     // L&  [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK\n\t{0x1D9B, 0x1DBF, prLower},     // Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA\n\t{0x1DC0, 0x1DFF, prExtend},    // Mn  [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW\n\t{0x1E00, 0x1E00, prUpper},     // L&       LATIN CAPITAL LETTER A WITH RING BELOW\n\t{0x1E01, 0x1E01, prLower},     // L&       LATIN SMALL LETTER A WITH RING BELOW\n\t{0x1E02, 0x1E02, prUpper},     // L&       LATIN CAPITAL LETTER B WITH DOT ABOVE\n\t{0x1E03, 0x1E03, prLower},     // L&       LATIN SMALL LETTER B WITH DOT ABOVE\n\t{0x1E04, 0x1E04, prUpper},     // L&       LATIN CAPITAL LETTER B WITH DOT BELOW\n\t{0x1E05, 0x1E05, prLower},     // L&       LATIN SMALL LETTER B WITH DOT BELOW\n\t{0x1E06, 0x1E06, prUpper},     // L&       LATIN CAPITAL LETTER B WITH LINE BELOW\n\t{0x1E07, 0x1E07, prLower},     // L&       LATIN SMALL LETTER B WITH LINE BELOW\n\t{0x1E08, 0x1E08, prUpper},     // L&       LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE\n\t{0x1E09, 0x1E09, prLower},     // L&       LATIN SMALL LETTER C WITH CEDILLA AND ACUTE\n\t{0x1E0A, 0x1E0A, prUpper},     // L&       LATIN CAPITAL LETTER D WITH DOT ABOVE\n\t{0x1E0B, 0x1E0B, prLower},     // L&       LATIN SMALL LETTER D WITH DOT ABOVE\n\t{0x1E0C, 0x1E0C, prUpper},     // L&       LATIN CAPITAL LETTER D WITH DOT BELOW\n\t{0x1E0D, 0x1E0D, prLower},     // L&       LATIN SMALL LETTER D WITH DOT BELOW\n\t{0x1E0E, 0x1E0E, prUpper},     // L&       LATIN CAPITAL LETTER D WITH LINE BELOW\n\t{0x1E0F, 0x1E0F, prLower},     // L&       LATIN SMALL LETTER D WITH LINE BELOW\n\t{0x1E10, 0x1E10, prUpper},     // L&       LATIN CAPITAL LETTER D WITH CEDILLA\n\t{0x1E11, 0x1E11, prLower},     // L&       LATIN SMALL LETTER D WITH CEDILLA\n\t{0x1E12, 0x1E12, prUpper},     // L&       LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW\n\t{0x1E13, 0x1E13, prLower},     // L&       LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW\n\t{0x1E14, 0x1E14, prUpper},     // L&       LATIN CAPITAL LETTER E WITH MACRON AND GRAVE\n\t{0x1E15, 0x1E15, prLower},     // L&       LATIN SMALL LETTER E WITH MACRON AND GRAVE\n\t{0x1E16, 0x1E16, prUpper},     // L&       LATIN CAPITAL LETTER E WITH MACRON AND ACUTE\n\t{0x1E17, 0x1E17, prLower},     // L&       LATIN SMALL LETTER E WITH MACRON AND ACUTE\n\t{0x1E18, 0x1E18, prUpper},     // L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW\n\t{0x1E19, 0x1E19, prLower},     // L&       LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW\n\t{0x1E1A, 0x1E1A, prUpper},     // L&       LATIN CAPITAL LETTER E WITH TILDE BELOW\n\t{0x1E1B, 0x1E1B, prLower},     // L&       LATIN SMALL LETTER E WITH TILDE BELOW\n\t{0x1E1C, 0x1E1C, prUpper},     // L&       LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE\n\t{0x1E1D, 0x1E1D, prLower},     // L&       LATIN SMALL LETTER E WITH CEDILLA AND BREVE\n\t{0x1E1E, 0x1E1E, prUpper},     // L&       LATIN CAPITAL LETTER F WITH DOT ABOVE\n\t{0x1E1F, 0x1E1F, prLower},     // L&       LATIN SMALL LETTER F WITH DOT ABOVE\n\t{0x1E20, 0x1E20, prUpper},     // L&       LATIN CAPITAL LETTER G WITH MACRON\n\t{0x1E21, 0x1E21, prLower},     // L&       LATIN SMALL LETTER G WITH MACRON\n\t{0x1E22, 0x1E22, prUpper},     // L&       LATIN CAPITAL LETTER H WITH DOT ABOVE\n\t{0x1E23, 0x1E23, prLower},     // L&       LATIN SMALL LETTER H WITH DOT ABOVE\n\t{0x1E24, 0x1E24, prUpper},     // L&       LATIN CAPITAL LETTER H WITH DOT BELOW\n\t{0x1E25, 0x1E25, prLower},     // L&       LATIN SMALL LETTER H WITH DOT BELOW\n\t{0x1E26, 0x1E26, prUpper},     // L&       LATIN CAPITAL LETTER H WITH DIAERESIS\n\t{0x1E27, 0x1E27, prLower},     // L&       LATIN SMALL LETTER H WITH DIAERESIS\n\t{0x1E28, 0x1E28, prUpper},     // L&       LATIN CAPITAL LETTER H WITH CEDILLA\n\t{0x1E29, 0x1E29, prLower},     // L&       LATIN SMALL LETTER H WITH CEDILLA\n\t{0x1E2A, 0x1E2A, prUpper},     // L&       LATIN CAPITAL LETTER H WITH BREVE BELOW\n\t{0x1E2B, 0x1E2B, prLower},     // L&       LATIN SMALL LETTER H WITH BREVE BELOW\n\t{0x1E2C, 0x1E2C, prUpper},     // L&       LATIN CAPITAL LETTER I WITH TILDE BELOW\n\t{0x1E2D, 0x1E2D, prLower},     // L&       LATIN SMALL LETTER I WITH TILDE BELOW\n\t{0x1E2E, 0x1E2E, prUpper},     // L&       LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE\n\t{0x1E2F, 0x1E2F, prLower},     // L&       LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE\n\t{0x1E30, 0x1E30, prUpper},     // L&       LATIN CAPITAL LETTER K WITH ACUTE\n\t{0x1E31, 0x1E31, prLower},     // L&       LATIN SMALL LETTER K WITH ACUTE\n\t{0x1E32, 0x1E32, prUpper},     // L&       LATIN CAPITAL LETTER K WITH DOT BELOW\n\t{0x1E33, 0x1E33, prLower},     // L&       LATIN SMALL LETTER K WITH DOT BELOW\n\t{0x1E34, 0x1E34, prUpper},     // L&       LATIN CAPITAL LETTER K WITH LINE BELOW\n\t{0x1E35, 0x1E35, prLower},     // L&       LATIN SMALL LETTER K WITH LINE BELOW\n\t{0x1E36, 0x1E36, prUpper},     // L&       LATIN CAPITAL LETTER L WITH DOT BELOW\n\t{0x1E37, 0x1E37, prLower},     // L&       LATIN SMALL LETTER L WITH DOT BELOW\n\t{0x1E38, 0x1E38, prUpper},     // L&       LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON\n\t{0x1E39, 0x1E39, prLower},     // L&       LATIN SMALL LETTER L WITH DOT BELOW AND MACRON\n\t{0x1E3A, 0x1E3A, prUpper},     // L&       LATIN CAPITAL LETTER L WITH LINE BELOW\n\t{0x1E3B, 0x1E3B, prLower},     // L&       LATIN SMALL LETTER L WITH LINE BELOW\n\t{0x1E3C, 0x1E3C, prUpper},     // L&       LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW\n\t{0x1E3D, 0x1E3D, prLower},     // L&       LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW\n\t{0x1E3E, 0x1E3E, prUpper},     // L&       LATIN CAPITAL LETTER M WITH ACUTE\n\t{0x1E3F, 0x1E3F, prLower},     // L&       LATIN SMALL LETTER M WITH ACUTE\n\t{0x1E40, 0x1E40, prUpper},     // L&       LATIN CAPITAL LETTER M WITH DOT ABOVE\n\t{0x1E41, 0x1E41, prLower},     // L&       LATIN SMALL LETTER M WITH DOT ABOVE\n\t{0x1E42, 0x1E42, prUpper},     // L&       LATIN CAPITAL LETTER M WITH DOT BELOW\n\t{0x1E43, 0x1E43, prLower},     // L&       LATIN SMALL LETTER M WITH DOT BELOW\n\t{0x1E44, 0x1E44, prUpper},     // L&       LATIN CAPITAL LETTER N WITH DOT ABOVE\n\t{0x1E45, 0x1E45, prLower},     // L&       LATIN SMALL LETTER N WITH DOT ABOVE\n\t{0x1E46, 0x1E46, prUpper},     // L&       LATIN CAPITAL LETTER N WITH DOT BELOW\n\t{0x1E47, 0x1E47, prLower},     // L&       LATIN SMALL LETTER N WITH DOT BELOW\n\t{0x1E48, 0x1E48, prUpper},     // L&       LATIN CAPITAL LETTER N WITH LINE BELOW\n\t{0x1E49, 0x1E49, prLower},     // L&       LATIN SMALL LETTER N WITH LINE BELOW\n\t{0x1E4A, 0x1E4A, prUpper},     // L&       LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW\n\t{0x1E4B, 0x1E4B, prLower},     // L&       LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW\n\t{0x1E4C, 0x1E4C, prUpper},     // L&       LATIN CAPITAL LETTER O WITH TILDE AND ACUTE\n\t{0x1E4D, 0x1E4D, prLower},     // L&       LATIN SMALL LETTER O WITH TILDE AND ACUTE\n\t{0x1E4E, 0x1E4E, prUpper},     // L&       LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS\n\t{0x1E4F, 0x1E4F, prLower},     // L&       LATIN SMALL LETTER O WITH TILDE AND DIAERESIS\n\t{0x1E50, 0x1E50, prUpper},     // L&       LATIN CAPITAL LETTER O WITH MACRON AND GRAVE\n\t{0x1E51, 0x1E51, prLower},     // L&       LATIN SMALL LETTER O WITH MACRON AND GRAVE\n\t{0x1E52, 0x1E52, prUpper},     // L&       LATIN CAPITAL LETTER O WITH MACRON AND ACUTE\n\t{0x1E53, 0x1E53, prLower},     // L&       LATIN SMALL LETTER O WITH MACRON AND ACUTE\n\t{0x1E54, 0x1E54, prUpper},     // L&       LATIN CAPITAL LETTER P WITH ACUTE\n\t{0x1E55, 0x1E55, prLower},     // L&       LATIN SMALL LETTER P WITH ACUTE\n\t{0x1E56, 0x1E56, prUpper},     // L&       LATIN CAPITAL LETTER P WITH DOT ABOVE\n\t{0x1E57, 0x1E57, prLower},     // L&       LATIN SMALL LETTER P WITH DOT ABOVE\n\t{0x1E58, 0x1E58, prUpper},     // L&       LATIN CAPITAL LETTER R WITH DOT ABOVE\n\t{0x1E59, 0x1E59, prLower},     // L&       LATIN SMALL LETTER R WITH DOT ABOVE\n\t{0x1E5A, 0x1E5A, prUpper},     // L&       LATIN CAPITAL LETTER R WITH DOT BELOW\n\t{0x1E5B, 0x1E5B, prLower},     // L&       LATIN SMALL LETTER R WITH DOT BELOW\n\t{0x1E5C, 0x1E5C, prUpper},     // L&       LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON\n\t{0x1E5D, 0x1E5D, prLower},     // L&       LATIN SMALL LETTER R WITH DOT BELOW AND MACRON\n\t{0x1E5E, 0x1E5E, prUpper},     // L&       LATIN CAPITAL LETTER R WITH LINE BELOW\n\t{0x1E5F, 0x1E5F, prLower},     // L&       LATIN SMALL LETTER R WITH LINE BELOW\n\t{0x1E60, 0x1E60, prUpper},     // L&       LATIN CAPITAL LETTER S WITH DOT ABOVE\n\t{0x1E61, 0x1E61, prLower},     // L&       LATIN SMALL LETTER S WITH DOT ABOVE\n\t{0x1E62, 0x1E62, prUpper},     // L&       LATIN CAPITAL LETTER S WITH DOT BELOW\n\t{0x1E63, 0x1E63, prLower},     // L&       LATIN SMALL LETTER S WITH DOT BELOW\n\t{0x1E64, 0x1E64, prUpper},     // L&       LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE\n\t{0x1E65, 0x1E65, prLower},     // L&       LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE\n\t{0x1E66, 0x1E66, prUpper},     // L&       LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE\n\t{0x1E67, 0x1E67, prLower},     // L&       LATIN SMALL LETTER S WITH CARON AND DOT ABOVE\n\t{0x1E68, 0x1E68, prUpper},     // L&       LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE\n\t{0x1E69, 0x1E69, prLower},     // L&       LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE\n\t{0x1E6A, 0x1E6A, prUpper},     // L&       LATIN CAPITAL LETTER T WITH DOT ABOVE\n\t{0x1E6B, 0x1E6B, prLower},     // L&       LATIN SMALL LETTER T WITH DOT ABOVE\n\t{0x1E6C, 0x1E6C, prUpper},     // L&       LATIN CAPITAL LETTER T WITH DOT BELOW\n\t{0x1E6D, 0x1E6D, prLower},     // L&       LATIN SMALL LETTER T WITH DOT BELOW\n\t{0x1E6E, 0x1E6E, prUpper},     // L&       LATIN CAPITAL LETTER T WITH LINE BELOW\n\t{0x1E6F, 0x1E6F, prLower},     // L&       LATIN SMALL LETTER T WITH LINE BELOW\n\t{0x1E70, 0x1E70, prUpper},     // L&       LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW\n\t{0x1E71, 0x1E71, prLower},     // L&       LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW\n\t{0x1E72, 0x1E72, prUpper},     // L&       LATIN CAPITAL LETTER U WITH DIAERESIS BELOW\n\t{0x1E73, 0x1E73, prLower},     // L&       LATIN SMALL LETTER U WITH DIAERESIS BELOW\n\t{0x1E74, 0x1E74, prUpper},     // L&       LATIN CAPITAL LETTER U WITH TILDE BELOW\n\t{0x1E75, 0x1E75, prLower},     // L&       LATIN SMALL LETTER U WITH TILDE BELOW\n\t{0x1E76, 0x1E76, prUpper},     // L&       LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW\n\t{0x1E77, 0x1E77, prLower},     // L&       LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW\n\t{0x1E78, 0x1E78, prUpper},     // L&       LATIN CAPITAL LETTER U WITH TILDE AND ACUTE\n\t{0x1E79, 0x1E79, prLower},     // L&       LATIN SMALL LETTER U WITH TILDE AND ACUTE\n\t{0x1E7A, 0x1E7A, prUpper},     // L&       LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS\n\t{0x1E7B, 0x1E7B, prLower},     // L&       LATIN SMALL LETTER U WITH MACRON AND DIAERESIS\n\t{0x1E7C, 0x1E7C, prUpper},     // L&       LATIN CAPITAL LETTER V WITH TILDE\n\t{0x1E7D, 0x1E7D, prLower},     // L&       LATIN SMALL LETTER V WITH TILDE\n\t{0x1E7E, 0x1E7E, prUpper},     // L&       LATIN CAPITAL LETTER V WITH DOT BELOW\n\t{0x1E7F, 0x1E7F, prLower},     // L&       LATIN SMALL LETTER V WITH DOT BELOW\n\t{0x1E80, 0x1E80, prUpper},     // L&       LATIN CAPITAL LETTER W WITH GRAVE\n\t{0x1E81, 0x1E81, prLower},     // L&       LATIN SMALL LETTER W WITH GRAVE\n\t{0x1E82, 0x1E82, prUpper},     // L&       LATIN CAPITAL LETTER W WITH ACUTE\n\t{0x1E83, 0x1E83, prLower},     // L&       LATIN SMALL LETTER W WITH ACUTE\n\t{0x1E84, 0x1E84, prUpper},     // L&       LATIN CAPITAL LETTER W WITH DIAERESIS\n\t{0x1E85, 0x1E85, prLower},     // L&       LATIN SMALL LETTER W WITH DIAERESIS\n\t{0x1E86, 0x1E86, prUpper},     // L&       LATIN CAPITAL LETTER W WITH DOT ABOVE\n\t{0x1E87, 0x1E87, prLower},     // L&       LATIN SMALL LETTER W WITH DOT ABOVE\n\t{0x1E88, 0x1E88, prUpper},     // L&       LATIN CAPITAL LETTER W WITH DOT BELOW\n\t{0x1E89, 0x1E89, prLower},     // L&       LATIN SMALL LETTER W WITH DOT BELOW\n\t{0x1E8A, 0x1E8A, prUpper},     // L&       LATIN CAPITAL LETTER X WITH DOT ABOVE\n\t{0x1E8B, 0x1E8B, prLower},     // L&       LATIN SMALL LETTER X WITH DOT ABOVE\n\t{0x1E8C, 0x1E8C, prUpper},     // L&       LATIN CAPITAL LETTER X WITH DIAERESIS\n\t{0x1E8D, 0x1E8D, prLower},     // L&       LATIN SMALL LETTER X WITH DIAERESIS\n\t{0x1E8E, 0x1E8E, prUpper},     // L&       LATIN CAPITAL LETTER Y WITH DOT ABOVE\n\t{0x1E8F, 0x1E8F, prLower},     // L&       LATIN SMALL LETTER Y WITH DOT ABOVE\n\t{0x1E90, 0x1E90, prUpper},     // L&       LATIN CAPITAL LETTER Z WITH CIRCUMFLEX\n\t{0x1E91, 0x1E91, prLower},     // L&       LATIN SMALL LETTER Z WITH CIRCUMFLEX\n\t{0x1E92, 0x1E92, prUpper},     // L&       LATIN CAPITAL LETTER Z WITH DOT BELOW\n\t{0x1E93, 0x1E93, prLower},     // L&       LATIN SMALL LETTER Z WITH DOT BELOW\n\t{0x1E94, 0x1E94, prUpper},     // L&       LATIN CAPITAL LETTER Z WITH LINE BELOW\n\t{0x1E95, 0x1E9D, prLower},     // L&   [9] LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER LONG S WITH HIGH STROKE\n\t{0x1E9E, 0x1E9E, prUpper},     // L&       LATIN CAPITAL LETTER SHARP S\n\t{0x1E9F, 0x1E9F, prLower},     // L&       LATIN SMALL LETTER DELTA\n\t{0x1EA0, 0x1EA0, prUpper},     // L&       LATIN CAPITAL LETTER A WITH DOT BELOW\n\t{0x1EA1, 0x1EA1, prLower},     // L&       LATIN SMALL LETTER A WITH DOT BELOW\n\t{0x1EA2, 0x1EA2, prUpper},     // L&       LATIN CAPITAL LETTER A WITH HOOK ABOVE\n\t{0x1EA3, 0x1EA3, prLower},     // L&       LATIN SMALL LETTER A WITH HOOK ABOVE\n\t{0x1EA4, 0x1EA4, prUpper},     // L&       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE\n\t{0x1EA5, 0x1EA5, prLower},     // L&       LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE\n\t{0x1EA6, 0x1EA6, prUpper},     // L&       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE\n\t{0x1EA7, 0x1EA7, prLower},     // L&       LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE\n\t{0x1EA8, 0x1EA8, prUpper},     // L&       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE\n\t{0x1EA9, 0x1EA9, prLower},     // L&       LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE\n\t{0x1EAA, 0x1EAA, prUpper},     // L&       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE\n\t{0x1EAB, 0x1EAB, prLower},     // L&       LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE\n\t{0x1EAC, 0x1EAC, prUpper},     // L&       LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW\n\t{0x1EAD, 0x1EAD, prLower},     // L&       LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW\n\t{0x1EAE, 0x1EAE, prUpper},     // L&       LATIN CAPITAL LETTER A WITH BREVE AND ACUTE\n\t{0x1EAF, 0x1EAF, prLower},     // L&       LATIN SMALL LETTER A WITH BREVE AND ACUTE\n\t{0x1EB0, 0x1EB0, prUpper},     // L&       LATIN CAPITAL LETTER A WITH BREVE AND GRAVE\n\t{0x1EB1, 0x1EB1, prLower},     // L&       LATIN SMALL LETTER A WITH BREVE AND GRAVE\n\t{0x1EB2, 0x1EB2, prUpper},     // L&       LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE\n\t{0x1EB3, 0x1EB3, prLower},     // L&       LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE\n\t{0x1EB4, 0x1EB4, prUpper},     // L&       LATIN CAPITAL LETTER A WITH BREVE AND TILDE\n\t{0x1EB5, 0x1EB5, prLower},     // L&       LATIN SMALL LETTER A WITH BREVE AND TILDE\n\t{0x1EB6, 0x1EB6, prUpper},     // L&       LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW\n\t{0x1EB7, 0x1EB7, prLower},     // L&       LATIN SMALL LETTER A WITH BREVE AND DOT BELOW\n\t{0x1EB8, 0x1EB8, prUpper},     // L&       LATIN CAPITAL LETTER E WITH DOT BELOW\n\t{0x1EB9, 0x1EB9, prLower},     // L&       LATIN SMALL LETTER E WITH DOT BELOW\n\t{0x1EBA, 0x1EBA, prUpper},     // L&       LATIN CAPITAL LETTER E WITH HOOK ABOVE\n\t{0x1EBB, 0x1EBB, prLower},     // L&       LATIN SMALL LETTER E WITH HOOK ABOVE\n\t{0x1EBC, 0x1EBC, prUpper},     // L&       LATIN CAPITAL LETTER E WITH TILDE\n\t{0x1EBD, 0x1EBD, prLower},     // L&       LATIN SMALL LETTER E WITH TILDE\n\t{0x1EBE, 0x1EBE, prUpper},     // L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE\n\t{0x1EBF, 0x1EBF, prLower},     // L&       LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE\n\t{0x1EC0, 0x1EC0, prUpper},     // L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE\n\t{0x1EC1, 0x1EC1, prLower},     // L&       LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE\n\t{0x1EC2, 0x1EC2, prUpper},     // L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE\n\t{0x1EC3, 0x1EC3, prLower},     // L&       LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE\n\t{0x1EC4, 0x1EC4, prUpper},     // L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE\n\t{0x1EC5, 0x1EC5, prLower},     // L&       LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE\n\t{0x1EC6, 0x1EC6, prUpper},     // L&       LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW\n\t{0x1EC7, 0x1EC7, prLower},     // L&       LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW\n\t{0x1EC8, 0x1EC8, prUpper},     // L&       LATIN CAPITAL LETTER I WITH HOOK ABOVE\n\t{0x1EC9, 0x1EC9, prLower},     // L&       LATIN SMALL LETTER I WITH HOOK ABOVE\n\t{0x1ECA, 0x1ECA, prUpper},     // L&       LATIN CAPITAL LETTER I WITH DOT BELOW\n\t{0x1ECB, 0x1ECB, prLower},     // L&       LATIN SMALL LETTER I WITH DOT BELOW\n\t{0x1ECC, 0x1ECC, prUpper},     // L&       LATIN CAPITAL LETTER O WITH DOT BELOW\n\t{0x1ECD, 0x1ECD, prLower},     // L&       LATIN SMALL LETTER O WITH DOT BELOW\n\t{0x1ECE, 0x1ECE, prUpper},     // L&       LATIN CAPITAL LETTER O WITH HOOK ABOVE\n\t{0x1ECF, 0x1ECF, prLower},     // L&       LATIN SMALL LETTER O WITH HOOK ABOVE\n\t{0x1ED0, 0x1ED0, prUpper},     // L&       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE\n\t{0x1ED1, 0x1ED1, prLower},     // L&       LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE\n\t{0x1ED2, 0x1ED2, prUpper},     // L&       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE\n\t{0x1ED3, 0x1ED3, prLower},     // L&       LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE\n\t{0x1ED4, 0x1ED4, prUpper},     // L&       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE\n\t{0x1ED5, 0x1ED5, prLower},     // L&       LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE\n\t{0x1ED6, 0x1ED6, prUpper},     // L&       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE\n\t{0x1ED7, 0x1ED7, prLower},     // L&       LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE\n\t{0x1ED8, 0x1ED8, prUpper},     // L&       LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW\n\t{0x1ED9, 0x1ED9, prLower},     // L&       LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW\n\t{0x1EDA, 0x1EDA, prUpper},     // L&       LATIN CAPITAL LETTER O WITH HORN AND ACUTE\n\t{0x1EDB, 0x1EDB, prLower},     // L&       LATIN SMALL LETTER O WITH HORN AND ACUTE\n\t{0x1EDC, 0x1EDC, prUpper},     // L&       LATIN CAPITAL LETTER O WITH HORN AND GRAVE\n\t{0x1EDD, 0x1EDD, prLower},     // L&       LATIN SMALL LETTER O WITH HORN AND GRAVE\n\t{0x1EDE, 0x1EDE, prUpper},     // L&       LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE\n\t{0x1EDF, 0x1EDF, prLower},     // L&       LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE\n\t{0x1EE0, 0x1EE0, prUpper},     // L&       LATIN CAPITAL LETTER O WITH HORN AND TILDE\n\t{0x1EE1, 0x1EE1, prLower},     // L&       LATIN SMALL LETTER O WITH HORN AND TILDE\n\t{0x1EE2, 0x1EE2, prUpper},     // L&       LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW\n\t{0x1EE3, 0x1EE3, prLower},     // L&       LATIN SMALL LETTER O WITH HORN AND DOT BELOW\n\t{0x1EE4, 0x1EE4, prUpper},     // L&       LATIN CAPITAL LETTER U WITH DOT BELOW\n\t{0x1EE5, 0x1EE5, prLower},     // L&       LATIN SMALL LETTER U WITH DOT BELOW\n\t{0x1EE6, 0x1EE6, prUpper},     // L&       LATIN CAPITAL LETTER U WITH HOOK ABOVE\n\t{0x1EE7, 0x1EE7, prLower},     // L&       LATIN SMALL LETTER U WITH HOOK ABOVE\n\t{0x1EE8, 0x1EE8, prUpper},     // L&       LATIN CAPITAL LETTER U WITH HORN AND ACUTE\n\t{0x1EE9, 0x1EE9, prLower},     // L&       LATIN SMALL LETTER U WITH HORN AND ACUTE\n\t{0x1EEA, 0x1EEA, prUpper},     // L&       LATIN CAPITAL LETTER U WITH HORN AND GRAVE\n\t{0x1EEB, 0x1EEB, prLower},     // L&       LATIN SMALL LETTER U WITH HORN AND GRAVE\n\t{0x1EEC, 0x1EEC, prUpper},     // L&       LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE\n\t{0x1EED, 0x1EED, prLower},     // L&       LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE\n\t{0x1EEE, 0x1EEE, prUpper},     // L&       LATIN CAPITAL LETTER U WITH HORN AND TILDE\n\t{0x1EEF, 0x1EEF, prLower},     // L&       LATIN SMALL LETTER U WITH HORN AND TILDE\n\t{0x1EF0, 0x1EF0, prUpper},     // L&       LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW\n\t{0x1EF1, 0x1EF1, prLower},     // L&       LATIN SMALL LETTER U WITH HORN AND DOT BELOW\n\t{0x1EF2, 0x1EF2, prUpper},     // L&       LATIN CAPITAL LETTER Y WITH GRAVE\n\t{0x1EF3, 0x1EF3, prLower},     // L&       LATIN SMALL LETTER Y WITH GRAVE\n\t{0x1EF4, 0x1EF4, prUpper},     // L&       LATIN CAPITAL LETTER Y WITH DOT BELOW\n\t{0x1EF5, 0x1EF5, prLower},     // L&       LATIN SMALL LETTER Y WITH DOT BELOW\n\t{0x1EF6, 0x1EF6, prUpper},     // L&       LATIN CAPITAL LETTER Y WITH HOOK ABOVE\n\t{0x1EF7, 0x1EF7, prLower},     // L&       LATIN SMALL LETTER Y WITH HOOK ABOVE\n\t{0x1EF8, 0x1EF8, prUpper},     // L&       LATIN CAPITAL LETTER Y WITH TILDE\n\t{0x1EF9, 0x1EF9, prLower},     // L&       LATIN SMALL LETTER Y WITH TILDE\n\t{0x1EFA, 0x1EFA, prUpper},     // L&       LATIN CAPITAL LETTER MIDDLE-WELSH LL\n\t{0x1EFB, 0x1EFB, prLower},     // L&       LATIN SMALL LETTER MIDDLE-WELSH LL\n\t{0x1EFC, 0x1EFC, prUpper},     // L&       LATIN CAPITAL LETTER MIDDLE-WELSH V\n\t{0x1EFD, 0x1EFD, prLower},     // L&       LATIN SMALL LETTER MIDDLE-WELSH V\n\t{0x1EFE, 0x1EFE, prUpper},     // L&       LATIN CAPITAL LETTER Y WITH LOOP\n\t{0x1EFF, 0x1F07, prLower},     // L&   [9] LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI\n\t{0x1F08, 0x1F0F, prUpper},     // L&   [8] GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI\n\t{0x1F10, 0x1F15, prLower},     // L&   [6] GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA\n\t{0x1F18, 0x1F1D, prUpper},     // L&   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA\n\t{0x1F20, 0x1F27, prLower},     // L&   [8] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI\n\t{0x1F28, 0x1F2F, prUpper},     // L&   [8] GREEK CAPITAL LETTER ETA WITH PSILI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI\n\t{0x1F30, 0x1F37, prLower},     // L&   [8] GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI\n\t{0x1F38, 0x1F3F, prUpper},     // L&   [8] GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI\n\t{0x1F40, 0x1F45, prLower},     // L&   [6] GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA\n\t{0x1F48, 0x1F4D, prUpper},     // L&   [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA\n\t{0x1F50, 0x1F57, prLower},     // L&   [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI\n\t{0x1F59, 0x1F59, prUpper},     // L&       GREEK CAPITAL LETTER UPSILON WITH DASIA\n\t{0x1F5B, 0x1F5B, prUpper},     // L&       GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA\n\t{0x1F5D, 0x1F5D, prUpper},     // L&       GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA\n\t{0x1F5F, 0x1F5F, prUpper},     // L&       GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI\n\t{0x1F60, 0x1F67, prLower},     // L&   [8] GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI\n\t{0x1F68, 0x1F6F, prUpper},     // L&   [8] GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI\n\t{0x1F70, 0x1F7D, prLower},     // L&  [14] GREEK SMALL LETTER ALPHA WITH VARIA..GREEK SMALL LETTER OMEGA WITH OXIA\n\t{0x1F80, 0x1F87, prLower},     // L&   [8] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI\n\t{0x1F88, 0x1F8F, prUpper},     // L&   [8] GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI\n\t{0x1F90, 0x1F97, prLower},     // L&   [8] GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI\n\t{0x1F98, 0x1F9F, prUpper},     // L&   [8] GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI\n\t{0x1FA0, 0x1FA7, prLower},     // L&   [8] GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI\n\t{0x1FA8, 0x1FAF, prUpper},     // L&   [8] GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI\n\t{0x1FB0, 0x1FB4, prLower},     // L&   [5] GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FB6, 0x1FB7, prLower},     // L&   [2] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI\n\t{0x1FB8, 0x1FBC, prUpper},     // L&   [5] GREEK CAPITAL LETTER ALPHA WITH VRACHY..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI\n\t{0x1FBE, 0x1FBE, prLower},     // L&       GREEK PROSGEGRAMMENI\n\t{0x1FC2, 0x1FC4, prLower},     // L&   [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FC6, 0x1FC7, prLower},     // L&   [2] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI\n\t{0x1FC8, 0x1FCC, prUpper},     // L&   [5] GREEK CAPITAL LETTER EPSILON WITH VARIA..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI\n\t{0x1FD0, 0x1FD3, prLower},     // L&   [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA\n\t{0x1FD6, 0x1FD7, prLower},     // L&   [2] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI\n\t{0x1FD8, 0x1FDB, prUpper},     // L&   [4] GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK CAPITAL LETTER IOTA WITH OXIA\n\t{0x1FE0, 0x1FE7, prLower},     // L&   [8] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI\n\t{0x1FE8, 0x1FEC, prUpper},     // L&   [5] GREEK CAPITAL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA\n\t{0x1FF2, 0x1FF4, prLower},     // L&   [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FF6, 0x1FF7, prLower},     // L&   [2] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI\n\t{0x1FF8, 0x1FFC, prUpper},     // L&   [5] GREEK CAPITAL LETTER OMICRON WITH VARIA..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI\n\t{0x2000, 0x200A, prSp},        // Zs  [11] EN QUAD..HAIR SPACE\n\t{0x200B, 0x200B, prFormat},    // Cf       ZERO WIDTH SPACE\n\t{0x200C, 0x200D, prExtend},    // Cf   [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER\n\t{0x200E, 0x200F, prFormat},    // Cf   [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK\n\t{0x2013, 0x2014, prSContinue}, // Pd   [2] EN DASH..EM DASH\n\t{0x2018, 0x2018, prClose},     // Pi       LEFT SINGLE QUOTATION MARK\n\t{0x2019, 0x2019, prClose},     // Pf       RIGHT SINGLE QUOTATION MARK\n\t{0x201A, 0x201A, prClose},     // Ps       SINGLE LOW-9 QUOTATION MARK\n\t{0x201B, 0x201C, prClose},     // Pi   [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK\n\t{0x201D, 0x201D, prClose},     // Pf       RIGHT DOUBLE QUOTATION MARK\n\t{0x201E, 0x201E, prClose},     // Ps       DOUBLE LOW-9 QUOTATION MARK\n\t{0x201F, 0x201F, prClose},     // Pi       DOUBLE HIGH-REVERSED-9 QUOTATION MARK\n\t{0x2024, 0x2024, prATerm},     // Po       ONE DOT LEADER\n\t{0x2028, 0x2028, prSep},       // Zl       LINE SEPARATOR\n\t{0x2029, 0x2029, prSep},       // Zp       PARAGRAPH SEPARATOR\n\t{0x202A, 0x202E, prFormat},    // Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE\n\t{0x202F, 0x202F, prSp},        // Zs       NARROW NO-BREAK SPACE\n\t{0x2039, 0x2039, prClose},     // Pi       SINGLE LEFT-POINTING ANGLE QUOTATION MARK\n\t{0x203A, 0x203A, prClose},     // Pf       SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\n\t{0x203C, 0x203D, prSTerm},     // Po   [2] DOUBLE EXCLAMATION MARK..INTERROBANG\n\t{0x2045, 0x2045, prClose},     // Ps       LEFT SQUARE BRACKET WITH QUILL\n\t{0x2046, 0x2046, prClose},     // Pe       RIGHT SQUARE BRACKET WITH QUILL\n\t{0x2047, 0x2049, prSTerm},     // Po   [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK\n\t{0x205F, 0x205F, prSp},        // Zs       MEDIUM MATHEMATICAL SPACE\n\t{0x2060, 0x2064, prFormat},    // Cf   [5] WORD JOINER..INVISIBLE PLUS\n\t{0x2066, 0x206F, prFormat},    // Cf  [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES\n\t{0x2071, 0x2071, prLower},     // Lm       SUPERSCRIPT LATIN SMALL LETTER I\n\t{0x207D, 0x207D, prClose},     // Ps       SUPERSCRIPT LEFT PARENTHESIS\n\t{0x207E, 0x207E, prClose},     // Pe       SUPERSCRIPT RIGHT PARENTHESIS\n\t{0x207F, 0x207F, prLower},     // Lm       SUPERSCRIPT LATIN SMALL LETTER N\n\t{0x208D, 0x208D, prClose},     // Ps       SUBSCRIPT LEFT PARENTHESIS\n\t{0x208E, 0x208E, prClose},     // Pe       SUBSCRIPT RIGHT PARENTHESIS\n\t{0x2090, 0x209C, prLower},     // Lm  [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T\n\t{0x20D0, 0x20DC, prExtend},    // Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE\n\t{0x20DD, 0x20E0, prExtend},    // Me   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH\n\t{0x20E1, 0x20E1, prExtend},    // Mn       COMBINING LEFT RIGHT ARROW ABOVE\n\t{0x20E2, 0x20E4, prExtend},    // Me   [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE\n\t{0x20E5, 0x20F0, prExtend},    // Mn  [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE\n\t{0x2102, 0x2102, prUpper},     // L&       DOUBLE-STRUCK CAPITAL C\n\t{0x2107, 0x2107, prUpper},     // L&       EULER CONSTANT\n\t{0x210A, 0x210A, prLower},     // L&       SCRIPT SMALL G\n\t{0x210B, 0x210D, prUpper},     // L&   [3] SCRIPT CAPITAL H..DOUBLE-STRUCK CAPITAL H\n\t{0x210E, 0x210F, prLower},     // L&   [2] PLANCK CONSTANT..PLANCK CONSTANT OVER TWO PI\n\t{0x2110, 0x2112, prUpper},     // L&   [3] SCRIPT CAPITAL I..SCRIPT CAPITAL L\n\t{0x2113, 0x2113, prLower},     // L&       SCRIPT SMALL L\n\t{0x2115, 0x2115, prUpper},     // L&       DOUBLE-STRUCK CAPITAL N\n\t{0x2119, 0x211D, prUpper},     // L&   [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R\n\t{0x2124, 0x2124, prUpper},     // L&       DOUBLE-STRUCK CAPITAL Z\n\t{0x2126, 0x2126, prUpper},     // L&       OHM SIGN\n\t{0x2128, 0x2128, prUpper},     // L&       BLACK-LETTER CAPITAL Z\n\t{0x212A, 0x212D, prUpper},     // L&   [4] KELVIN SIGN..BLACK-LETTER CAPITAL C\n\t{0x212F, 0x212F, prLower},     // L&       SCRIPT SMALL E\n\t{0x2130, 0x2133, prUpper},     // L&   [4] SCRIPT CAPITAL E..SCRIPT CAPITAL M\n\t{0x2134, 0x2134, prLower},     // L&       SCRIPT SMALL O\n\t{0x2135, 0x2138, prOLetter},   // Lo   [4] ALEF SYMBOL..DALET SYMBOL\n\t{0x2139, 0x2139, prLower},     // L&       INFORMATION SOURCE\n\t{0x213C, 0x213D, prLower},     // L&   [2] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK SMALL GAMMA\n\t{0x213E, 0x213F, prUpper},     // L&   [2] DOUBLE-STRUCK CAPITAL GAMMA..DOUBLE-STRUCK CAPITAL PI\n\t{0x2145, 0x2145, prUpper},     // L&       DOUBLE-STRUCK ITALIC CAPITAL D\n\t{0x2146, 0x2149, prLower},     // L&   [4] DOUBLE-STRUCK ITALIC SMALL D..DOUBLE-STRUCK ITALIC SMALL J\n\t{0x214E, 0x214E, prLower},     // L&       TURNED SMALL F\n\t{0x2160, 0x216F, prUpper},     // Nl  [16] ROMAN NUMERAL ONE..ROMAN NUMERAL ONE THOUSAND\n\t{0x2170, 0x217F, prLower},     // Nl  [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND\n\t{0x2180, 0x2182, prOLetter},   // Nl   [3] ROMAN NUMERAL ONE THOUSAND C D..ROMAN NUMERAL TEN THOUSAND\n\t{0x2183, 0x2183, prUpper},     // L&       ROMAN NUMERAL REVERSED ONE HUNDRED\n\t{0x2184, 0x2184, prLower},     // L&       LATIN SMALL LETTER REVERSED C\n\t{0x2185, 0x2188, prOLetter},   // Nl   [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND\n\t{0x2308, 0x2308, prClose},     // Ps       LEFT CEILING\n\t{0x2309, 0x2309, prClose},     // Pe       RIGHT CEILING\n\t{0x230A, 0x230A, prClose},     // Ps       LEFT FLOOR\n\t{0x230B, 0x230B, prClose},     // Pe       RIGHT FLOOR\n\t{0x2329, 0x2329, prClose},     // Ps       LEFT-POINTING ANGLE BRACKET\n\t{0x232A, 0x232A, prClose},     // Pe       RIGHT-POINTING ANGLE BRACKET\n\t{0x24B6, 0x24CF, prUpper},     // So  [26] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN CAPITAL LETTER Z\n\t{0x24D0, 0x24E9, prLower},     // So  [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z\n\t{0x275B, 0x2760, prClose},     // So   [6] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT\n\t{0x2768, 0x2768, prClose},     // Ps       MEDIUM LEFT PARENTHESIS ORNAMENT\n\t{0x2769, 0x2769, prClose},     // Pe       MEDIUM RIGHT PARENTHESIS ORNAMENT\n\t{0x276A, 0x276A, prClose},     // Ps       MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT\n\t{0x276B, 0x276B, prClose},     // Pe       MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT\n\t{0x276C, 0x276C, prClose},     // Ps       MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x276D, 0x276D, prClose},     // Pe       MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x276E, 0x276E, prClose},     // Ps       HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT\n\t{0x276F, 0x276F, prClose},     // Pe       HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT\n\t{0x2770, 0x2770, prClose},     // Ps       HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x2771, 0x2771, prClose},     // Pe       HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT\n\t{0x2772, 0x2772, prClose},     // Ps       LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT\n\t{0x2773, 0x2773, prClose},     // Pe       LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT\n\t{0x2774, 0x2774, prClose},     // Ps       MEDIUM LEFT CURLY BRACKET ORNAMENT\n\t{0x2775, 0x2775, prClose},     // Pe       MEDIUM RIGHT CURLY BRACKET ORNAMENT\n\t{0x27C5, 0x27C5, prClose},     // Ps       LEFT S-SHAPED BAG DELIMITER\n\t{0x27C6, 0x27C6, prClose},     // Pe       RIGHT S-SHAPED BAG DELIMITER\n\t{0x27E6, 0x27E6, prClose},     // Ps       MATHEMATICAL LEFT WHITE SQUARE BRACKET\n\t{0x27E7, 0x27E7, prClose},     // Pe       MATHEMATICAL RIGHT WHITE SQUARE BRACKET\n\t{0x27E8, 0x27E8, prClose},     // Ps       MATHEMATICAL LEFT ANGLE BRACKET\n\t{0x27E9, 0x27E9, prClose},     // Pe       MATHEMATICAL RIGHT ANGLE BRACKET\n\t{0x27EA, 0x27EA, prClose},     // Ps       MATHEMATICAL LEFT DOUBLE ANGLE BRACKET\n\t{0x27EB, 0x27EB, prClose},     // Pe       MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET\n\t{0x27EC, 0x27EC, prClose},     // Ps       MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET\n\t{0x27ED, 0x27ED, prClose},     // Pe       MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET\n\t{0x27EE, 0x27EE, prClose},     // Ps       MATHEMATICAL LEFT FLATTENED PARENTHESIS\n\t{0x27EF, 0x27EF, prClose},     // Pe       MATHEMATICAL RIGHT FLATTENED PARENTHESIS\n\t{0x2983, 0x2983, prClose},     // Ps       LEFT WHITE CURLY BRACKET\n\t{0x2984, 0x2984, prClose},     // Pe       RIGHT WHITE CURLY BRACKET\n\t{0x2985, 0x2985, prClose},     // Ps       LEFT WHITE PARENTHESIS\n\t{0x2986, 0x2986, prClose},     // Pe       RIGHT WHITE PARENTHESIS\n\t{0x2987, 0x2987, prClose},     // Ps       Z NOTATION LEFT IMAGE BRACKET\n\t{0x2988, 0x2988, prClose},     // Pe       Z NOTATION RIGHT IMAGE BRACKET\n\t{0x2989, 0x2989, prClose},     // Ps       Z NOTATION LEFT BINDING BRACKET\n\t{0x298A, 0x298A, prClose},     // Pe       Z NOTATION RIGHT BINDING BRACKET\n\t{0x298B, 0x298B, prClose},     // Ps       LEFT SQUARE BRACKET WITH UNDERBAR\n\t{0x298C, 0x298C, prClose},     // Pe       RIGHT SQUARE BRACKET WITH UNDERBAR\n\t{0x298D, 0x298D, prClose},     // Ps       LEFT SQUARE BRACKET WITH TICK IN TOP CORNER\n\t{0x298E, 0x298E, prClose},     // Pe       RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER\n\t{0x298F, 0x298F, prClose},     // Ps       LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER\n\t{0x2990, 0x2990, prClose},     // Pe       RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER\n\t{0x2991, 0x2991, prClose},     // Ps       LEFT ANGLE BRACKET WITH DOT\n\t{0x2992, 0x2992, prClose},     // Pe       RIGHT ANGLE BRACKET WITH DOT\n\t{0x2993, 0x2993, prClose},     // Ps       LEFT ARC LESS-THAN BRACKET\n\t{0x2994, 0x2994, prClose},     // Pe       RIGHT ARC GREATER-THAN BRACKET\n\t{0x2995, 0x2995, prClose},     // Ps       DOUBLE LEFT ARC GREATER-THAN BRACKET\n\t{0x2996, 0x2996, prClose},     // Pe       DOUBLE RIGHT ARC LESS-THAN BRACKET\n\t{0x2997, 0x2997, prClose},     // Ps       LEFT BLACK TORTOISE SHELL BRACKET\n\t{0x2998, 0x2998, prClose},     // Pe       RIGHT BLACK TORTOISE SHELL BRACKET\n\t{0x29D8, 0x29D8, prClose},     // Ps       LEFT WIGGLY FENCE\n\t{0x29D9, 0x29D9, prClose},     // Pe       RIGHT WIGGLY FENCE\n\t{0x29DA, 0x29DA, prClose},     // Ps       LEFT DOUBLE WIGGLY FENCE\n\t{0x29DB, 0x29DB, prClose},     // Pe       RIGHT DOUBLE WIGGLY FENCE\n\t{0x29FC, 0x29FC, prClose},     // Ps       LEFT-POINTING CURVED ANGLE BRACKET\n\t{0x29FD, 0x29FD, prClose},     // Pe       RIGHT-POINTING CURVED ANGLE BRACKET\n\t{0x2C00, 0x2C2F, prUpper},     // L&  [48] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI\n\t{0x2C30, 0x2C5F, prLower},     // L&  [48] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI\n\t{0x2C60, 0x2C60, prUpper},     // L&       LATIN CAPITAL LETTER L WITH DOUBLE BAR\n\t{0x2C61, 0x2C61, prLower},     // L&       LATIN SMALL LETTER L WITH DOUBLE BAR\n\t{0x2C62, 0x2C64, prUpper},     // L&   [3] LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL\n\t{0x2C65, 0x2C66, prLower},     // L&   [2] LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE\n\t{0x2C67, 0x2C67, prUpper},     // L&       LATIN CAPITAL LETTER H WITH DESCENDER\n\t{0x2C68, 0x2C68, prLower},     // L&       LATIN SMALL LETTER H WITH DESCENDER\n\t{0x2C69, 0x2C69, prUpper},     // L&       LATIN CAPITAL LETTER K WITH DESCENDER\n\t{0x2C6A, 0x2C6A, prLower},     // L&       LATIN SMALL LETTER K WITH DESCENDER\n\t{0x2C6B, 0x2C6B, prUpper},     // L&       LATIN CAPITAL LETTER Z WITH DESCENDER\n\t{0x2C6C, 0x2C6C, prLower},     // L&       LATIN SMALL LETTER Z WITH DESCENDER\n\t{0x2C6D, 0x2C70, prUpper},     // L&   [4] LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LETTER TURNED ALPHA\n\t{0x2C71, 0x2C71, prLower},     // L&       LATIN SMALL LETTER V WITH RIGHT HOOK\n\t{0x2C72, 0x2C72, prUpper},     // L&       LATIN CAPITAL LETTER W WITH HOOK\n\t{0x2C73, 0x2C74, prLower},     // L&   [2] LATIN SMALL LETTER W WITH HOOK..LATIN SMALL LETTER V WITH CURL\n\t{0x2C75, 0x2C75, prUpper},     // L&       LATIN CAPITAL LETTER HALF H\n\t{0x2C76, 0x2C7B, prLower},     // L&   [6] LATIN SMALL LETTER HALF H..LATIN LETTER SMALL CAPITAL TURNED E\n\t{0x2C7C, 0x2C7D, prLower},     // Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V\n\t{0x2C7E, 0x2C80, prUpper},     // L&   [3] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC CAPITAL LETTER ALFA\n\t{0x2C81, 0x2C81, prLower},     // L&       COPTIC SMALL LETTER ALFA\n\t{0x2C82, 0x2C82, prUpper},     // L&       COPTIC CAPITAL LETTER VIDA\n\t{0x2C83, 0x2C83, prLower},     // L&       COPTIC SMALL LETTER VIDA\n\t{0x2C84, 0x2C84, prUpper},     // L&       COPTIC CAPITAL LETTER GAMMA\n\t{0x2C85, 0x2C85, prLower},     // L&       COPTIC SMALL LETTER GAMMA\n\t{0x2C86, 0x2C86, prUpper},     // L&       COPTIC CAPITAL LETTER DALDA\n\t{0x2C87, 0x2C87, prLower},     // L&       COPTIC SMALL LETTER DALDA\n\t{0x2C88, 0x2C88, prUpper},     // L&       COPTIC CAPITAL LETTER EIE\n\t{0x2C89, 0x2C89, prLower},     // L&       COPTIC SMALL LETTER EIE\n\t{0x2C8A, 0x2C8A, prUpper},     // L&       COPTIC CAPITAL LETTER SOU\n\t{0x2C8B, 0x2C8B, prLower},     // L&       COPTIC SMALL LETTER SOU\n\t{0x2C8C, 0x2C8C, prUpper},     // L&       COPTIC CAPITAL LETTER ZATA\n\t{0x2C8D, 0x2C8D, prLower},     // L&       COPTIC SMALL LETTER ZATA\n\t{0x2C8E, 0x2C8E, prUpper},     // L&       COPTIC CAPITAL LETTER HATE\n\t{0x2C8F, 0x2C8F, prLower},     // L&       COPTIC SMALL LETTER HATE\n\t{0x2C90, 0x2C90, prUpper},     // L&       COPTIC CAPITAL LETTER THETHE\n\t{0x2C91, 0x2C91, prLower},     // L&       COPTIC SMALL LETTER THETHE\n\t{0x2C92, 0x2C92, prUpper},     // L&       COPTIC CAPITAL LETTER IAUDA\n\t{0x2C93, 0x2C93, prLower},     // L&       COPTIC SMALL LETTER IAUDA\n\t{0x2C94, 0x2C94, prUpper},     // L&       COPTIC CAPITAL LETTER KAPA\n\t{0x2C95, 0x2C95, prLower},     // L&       COPTIC SMALL LETTER KAPA\n\t{0x2C96, 0x2C96, prUpper},     // L&       COPTIC CAPITAL LETTER LAULA\n\t{0x2C97, 0x2C97, prLower},     // L&       COPTIC SMALL LETTER LAULA\n\t{0x2C98, 0x2C98, prUpper},     // L&       COPTIC CAPITAL LETTER MI\n\t{0x2C99, 0x2C99, prLower},     // L&       COPTIC SMALL LETTER MI\n\t{0x2C9A, 0x2C9A, prUpper},     // L&       COPTIC CAPITAL LETTER NI\n\t{0x2C9B, 0x2C9B, prLower},     // L&       COPTIC SMALL LETTER NI\n\t{0x2C9C, 0x2C9C, prUpper},     // L&       COPTIC CAPITAL LETTER KSI\n\t{0x2C9D, 0x2C9D, prLower},     // L&       COPTIC SMALL LETTER KSI\n\t{0x2C9E, 0x2C9E, prUpper},     // L&       COPTIC CAPITAL LETTER O\n\t{0x2C9F, 0x2C9F, prLower},     // L&       COPTIC SMALL LETTER O\n\t{0x2CA0, 0x2CA0, prUpper},     // L&       COPTIC CAPITAL LETTER PI\n\t{0x2CA1, 0x2CA1, prLower},     // L&       COPTIC SMALL LETTER PI\n\t{0x2CA2, 0x2CA2, prUpper},     // L&       COPTIC CAPITAL LETTER RO\n\t{0x2CA3, 0x2CA3, prLower},     // L&       COPTIC SMALL LETTER RO\n\t{0x2CA4, 0x2CA4, prUpper},     // L&       COPTIC CAPITAL LETTER SIMA\n\t{0x2CA5, 0x2CA5, prLower},     // L&       COPTIC SMALL LETTER SIMA\n\t{0x2CA6, 0x2CA6, prUpper},     // L&       COPTIC CAPITAL LETTER TAU\n\t{0x2CA7, 0x2CA7, prLower},     // L&       COPTIC SMALL LETTER TAU\n\t{0x2CA8, 0x2CA8, prUpper},     // L&       COPTIC CAPITAL LETTER UA\n\t{0x2CA9, 0x2CA9, prLower},     // L&       COPTIC SMALL LETTER UA\n\t{0x2CAA, 0x2CAA, prUpper},     // L&       COPTIC CAPITAL LETTER FI\n\t{0x2CAB, 0x2CAB, prLower},     // L&       COPTIC SMALL LETTER FI\n\t{0x2CAC, 0x2CAC, prUpper},     // L&       COPTIC CAPITAL LETTER KHI\n\t{0x2CAD, 0x2CAD, prLower},     // L&       COPTIC SMALL LETTER KHI\n\t{0x2CAE, 0x2CAE, prUpper},     // L&       COPTIC CAPITAL LETTER PSI\n\t{0x2CAF, 0x2CAF, prLower},     // L&       COPTIC SMALL LETTER PSI\n\t{0x2CB0, 0x2CB0, prUpper},     // L&       COPTIC CAPITAL LETTER OOU\n\t{0x2CB1, 0x2CB1, prLower},     // L&       COPTIC SMALL LETTER OOU\n\t{0x2CB2, 0x2CB2, prUpper},     // L&       COPTIC CAPITAL LETTER DIALECT-P ALEF\n\t{0x2CB3, 0x2CB3, prLower},     // L&       COPTIC SMALL LETTER DIALECT-P ALEF\n\t{0x2CB4, 0x2CB4, prUpper},     // L&       COPTIC CAPITAL LETTER OLD COPTIC AIN\n\t{0x2CB5, 0x2CB5, prLower},     // L&       COPTIC SMALL LETTER OLD COPTIC AIN\n\t{0x2CB6, 0x2CB6, prUpper},     // L&       COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE\n\t{0x2CB7, 0x2CB7, prLower},     // L&       COPTIC SMALL LETTER CRYPTOGRAMMIC EIE\n\t{0x2CB8, 0x2CB8, prUpper},     // L&       COPTIC CAPITAL LETTER DIALECT-P KAPA\n\t{0x2CB9, 0x2CB9, prLower},     // L&       COPTIC SMALL LETTER DIALECT-P KAPA\n\t{0x2CBA, 0x2CBA, prUpper},     // L&       COPTIC CAPITAL LETTER DIALECT-P NI\n\t{0x2CBB, 0x2CBB, prLower},     // L&       COPTIC SMALL LETTER DIALECT-P NI\n\t{0x2CBC, 0x2CBC, prUpper},     // L&       COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI\n\t{0x2CBD, 0x2CBD, prLower},     // L&       COPTIC SMALL LETTER CRYPTOGRAMMIC NI\n\t{0x2CBE, 0x2CBE, prUpper},     // L&       COPTIC CAPITAL LETTER OLD COPTIC OOU\n\t{0x2CBF, 0x2CBF, prLower},     // L&       COPTIC SMALL LETTER OLD COPTIC OOU\n\t{0x2CC0, 0x2CC0, prUpper},     // L&       COPTIC CAPITAL LETTER SAMPI\n\t{0x2CC1, 0x2CC1, prLower},     // L&       COPTIC SMALL LETTER SAMPI\n\t{0x2CC2, 0x2CC2, prUpper},     // L&       COPTIC CAPITAL LETTER CROSSED SHEI\n\t{0x2CC3, 0x2CC3, prLower},     // L&       COPTIC SMALL LETTER CROSSED SHEI\n\t{0x2CC4, 0x2CC4, prUpper},     // L&       COPTIC CAPITAL LETTER OLD COPTIC SHEI\n\t{0x2CC5, 0x2CC5, prLower},     // L&       COPTIC SMALL LETTER OLD COPTIC SHEI\n\t{0x2CC6, 0x2CC6, prUpper},     // L&       COPTIC CAPITAL LETTER OLD COPTIC ESH\n\t{0x2CC7, 0x2CC7, prLower},     // L&       COPTIC SMALL LETTER OLD COPTIC ESH\n\t{0x2CC8, 0x2CC8, prUpper},     // L&       COPTIC CAPITAL LETTER AKHMIMIC KHEI\n\t{0x2CC9, 0x2CC9, prLower},     // L&       COPTIC SMALL LETTER AKHMIMIC KHEI\n\t{0x2CCA, 0x2CCA, prUpper},     // L&       COPTIC CAPITAL LETTER DIALECT-P HORI\n\t{0x2CCB, 0x2CCB, prLower},     // L&       COPTIC SMALL LETTER DIALECT-P HORI\n\t{0x2CCC, 0x2CCC, prUpper},     // L&       COPTIC CAPITAL LETTER OLD COPTIC HORI\n\t{0x2CCD, 0x2CCD, prLower},     // L&       COPTIC SMALL LETTER OLD COPTIC HORI\n\t{0x2CCE, 0x2CCE, prUpper},     // L&       COPTIC CAPITAL LETTER OLD COPTIC HA\n\t{0x2CCF, 0x2CCF, prLower},     // L&       COPTIC SMALL LETTER OLD COPTIC HA\n\t{0x2CD0, 0x2CD0, prUpper},     // L&       COPTIC CAPITAL LETTER L-SHAPED HA\n\t{0x2CD1, 0x2CD1, prLower},     // L&       COPTIC SMALL LETTER L-SHAPED HA\n\t{0x2CD2, 0x2CD2, prUpper},     // L&       COPTIC CAPITAL LETTER OLD COPTIC HEI\n\t{0x2CD3, 0x2CD3, prLower},     // L&       COPTIC SMALL LETTER OLD COPTIC HEI\n\t{0x2CD4, 0x2CD4, prUpper},     // L&       COPTIC CAPITAL LETTER OLD COPTIC HAT\n\t{0x2CD5, 0x2CD5, prLower},     // L&       COPTIC SMALL LETTER OLD COPTIC HAT\n\t{0x2CD6, 0x2CD6, prUpper},     // L&       COPTIC CAPITAL LETTER OLD COPTIC GANGIA\n\t{0x2CD7, 0x2CD7, prLower},     // L&       COPTIC SMALL LETTER OLD COPTIC GANGIA\n\t{0x2CD8, 0x2CD8, prUpper},     // L&       COPTIC CAPITAL LETTER OLD COPTIC DJA\n\t{0x2CD9, 0x2CD9, prLower},     // L&       COPTIC SMALL LETTER OLD COPTIC DJA\n\t{0x2CDA, 0x2CDA, prUpper},     // L&       COPTIC CAPITAL LETTER OLD COPTIC SHIMA\n\t{0x2CDB, 0x2CDB, prLower},     // L&       COPTIC SMALL LETTER OLD COPTIC SHIMA\n\t{0x2CDC, 0x2CDC, prUpper},     // L&       COPTIC CAPITAL LETTER OLD NUBIAN SHIMA\n\t{0x2CDD, 0x2CDD, prLower},     // L&       COPTIC SMALL LETTER OLD NUBIAN SHIMA\n\t{0x2CDE, 0x2CDE, prUpper},     // L&       COPTIC CAPITAL LETTER OLD NUBIAN NGI\n\t{0x2CDF, 0x2CDF, prLower},     // L&       COPTIC SMALL LETTER OLD NUBIAN NGI\n\t{0x2CE0, 0x2CE0, prUpper},     // L&       COPTIC CAPITAL LETTER OLD NUBIAN NYI\n\t{0x2CE1, 0x2CE1, prLower},     // L&       COPTIC SMALL LETTER OLD NUBIAN NYI\n\t{0x2CE2, 0x2CE2, prUpper},     // L&       COPTIC CAPITAL LETTER OLD NUBIAN WAU\n\t{0x2CE3, 0x2CE4, prLower},     // L&   [2] COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI\n\t{0x2CEB, 0x2CEB, prUpper},     // L&       COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI\n\t{0x2CEC, 0x2CEC, prLower},     // L&       COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI\n\t{0x2CED, 0x2CED, prUpper},     // L&       COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA\n\t{0x2CEE, 0x2CEE, prLower},     // L&       COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA\n\t{0x2CEF, 0x2CF1, prExtend},    // Mn   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS\n\t{0x2CF2, 0x2CF2, prUpper},     // L&       COPTIC CAPITAL LETTER BOHAIRIC KHEI\n\t{0x2CF3, 0x2CF3, prLower},     // L&       COPTIC SMALL LETTER BOHAIRIC KHEI\n\t{0x2D00, 0x2D25, prLower},     // L&  [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE\n\t{0x2D27, 0x2D27, prLower},     // L&       GEORGIAN SMALL LETTER YN\n\t{0x2D2D, 0x2D2D, prLower},     // L&       GEORGIAN SMALL LETTER AEN\n\t{0x2D30, 0x2D67, prOLetter},   // Lo  [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO\n\t{0x2D6F, 0x2D6F, prOLetter},   // Lm       TIFINAGH MODIFIER LETTER LABIALIZATION MARK\n\t{0x2D7F, 0x2D7F, prExtend},    // Mn       TIFINAGH CONSONANT JOINER\n\t{0x2D80, 0x2D96, prOLetter},   // Lo  [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE\n\t{0x2DA0, 0x2DA6, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO\n\t{0x2DA8, 0x2DAE, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO\n\t{0x2DB0, 0x2DB6, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO\n\t{0x2DB8, 0x2DBE, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO\n\t{0x2DC0, 0x2DC6, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO\n\t{0x2DC8, 0x2DCE, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO\n\t{0x2DD0, 0x2DD6, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO\n\t{0x2DD8, 0x2DDE, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO\n\t{0x2DE0, 0x2DFF, prExtend},    // Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS\n\t{0x2E00, 0x2E01, prClose},     // Po   [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER\n\t{0x2E02, 0x2E02, prClose},     // Pi       LEFT SUBSTITUTION BRACKET\n\t{0x2E03, 0x2E03, prClose},     // Pf       RIGHT SUBSTITUTION BRACKET\n\t{0x2E04, 0x2E04, prClose},     // Pi       LEFT DOTTED SUBSTITUTION BRACKET\n\t{0x2E05, 0x2E05, prClose},     // Pf       RIGHT DOTTED SUBSTITUTION BRACKET\n\t{0x2E06, 0x2E08, prClose},     // Po   [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER\n\t{0x2E09, 0x2E09, prClose},     // Pi       LEFT TRANSPOSITION BRACKET\n\t{0x2E0A, 0x2E0A, prClose},     // Pf       RIGHT TRANSPOSITION BRACKET\n\t{0x2E0B, 0x2E0B, prClose},     // Po       RAISED SQUARE\n\t{0x2E0C, 0x2E0C, prClose},     // Pi       LEFT RAISED OMISSION BRACKET\n\t{0x2E0D, 0x2E0D, prClose},     // Pf       RIGHT RAISED OMISSION BRACKET\n\t{0x2E1C, 0x2E1C, prClose},     // Pi       LEFT LOW PARAPHRASE BRACKET\n\t{0x2E1D, 0x2E1D, prClose},     // Pf       RIGHT LOW PARAPHRASE BRACKET\n\t{0x2E20, 0x2E20, prClose},     // Pi       LEFT VERTICAL BAR WITH QUILL\n\t{0x2E21, 0x2E21, prClose},     // Pf       RIGHT VERTICAL BAR WITH QUILL\n\t{0x2E22, 0x2E22, prClose},     // Ps       TOP LEFT HALF BRACKET\n\t{0x2E23, 0x2E23, prClose},     // Pe       TOP RIGHT HALF BRACKET\n\t{0x2E24, 0x2E24, prClose},     // Ps       BOTTOM LEFT HALF BRACKET\n\t{0x2E25, 0x2E25, prClose},     // Pe       BOTTOM RIGHT HALF BRACKET\n\t{0x2E26, 0x2E26, prClose},     // Ps       LEFT SIDEWAYS U BRACKET\n\t{0x2E27, 0x2E27, prClose},     // Pe       RIGHT SIDEWAYS U BRACKET\n\t{0x2E28, 0x2E28, prClose},     // Ps       LEFT DOUBLE PARENTHESIS\n\t{0x2E29, 0x2E29, prClose},     // Pe       RIGHT DOUBLE PARENTHESIS\n\t{0x2E2E, 0x2E2E, prSTerm},     // Po       REVERSED QUESTION MARK\n\t{0x2E2F, 0x2E2F, prOLetter},   // Lm       VERTICAL TILDE\n\t{0x2E3C, 0x2E3C, prSTerm},     // Po       STENOGRAPHIC FULL STOP\n\t{0x2E42, 0x2E42, prClose},     // Ps       DOUBLE LOW-REVERSED-9 QUOTATION MARK\n\t{0x2E53, 0x2E54, prSTerm},     // Po   [2] MEDIEVAL EXCLAMATION MARK..MEDIEVAL QUESTION MARK\n\t{0x2E55, 0x2E55, prClose},     // Ps       LEFT SQUARE BRACKET WITH STROKE\n\t{0x2E56, 0x2E56, prClose},     // Pe       RIGHT SQUARE BRACKET WITH STROKE\n\t{0x2E57, 0x2E57, prClose},     // Ps       LEFT SQUARE BRACKET WITH DOUBLE STROKE\n\t{0x2E58, 0x2E58, prClose},     // Pe       RIGHT SQUARE BRACKET WITH DOUBLE STROKE\n\t{0x2E59, 0x2E59, prClose},     // Ps       TOP HALF LEFT PARENTHESIS\n\t{0x2E5A, 0x2E5A, prClose},     // Pe       TOP HALF RIGHT PARENTHESIS\n\t{0x2E5B, 0x2E5B, prClose},     // Ps       BOTTOM HALF LEFT PARENTHESIS\n\t{0x2E5C, 0x2E5C, prClose},     // Pe       BOTTOM HALF RIGHT PARENTHESIS\n\t{0x3000, 0x3000, prSp},        // Zs       IDEOGRAPHIC SPACE\n\t{0x3001, 0x3001, prSContinue}, // Po       IDEOGRAPHIC COMMA\n\t{0x3002, 0x3002, prSTerm},     // Po       IDEOGRAPHIC FULL STOP\n\t{0x3005, 0x3005, prOLetter},   // Lm       IDEOGRAPHIC ITERATION MARK\n\t{0x3006, 0x3006, prOLetter},   // Lo       IDEOGRAPHIC CLOSING MARK\n\t{0x3007, 0x3007, prOLetter},   // Nl       IDEOGRAPHIC NUMBER ZERO\n\t{0x3008, 0x3008, prClose},     // Ps       LEFT ANGLE BRACKET\n\t{0x3009, 0x3009, prClose},     // Pe       RIGHT ANGLE BRACKET\n\t{0x300A, 0x300A, prClose},     // Ps       LEFT DOUBLE ANGLE BRACKET\n\t{0x300B, 0x300B, prClose},     // Pe       RIGHT DOUBLE ANGLE BRACKET\n\t{0x300C, 0x300C, prClose},     // Ps       LEFT CORNER BRACKET\n\t{0x300D, 0x300D, prClose},     // Pe       RIGHT CORNER BRACKET\n\t{0x300E, 0x300E, prClose},     // Ps       LEFT WHITE CORNER BRACKET\n\t{0x300F, 0x300F, prClose},     // Pe       RIGHT WHITE CORNER BRACKET\n\t{0x3010, 0x3010, prClose},     // Ps       LEFT BLACK LENTICULAR BRACKET\n\t{0x3011, 0x3011, prClose},     // Pe       RIGHT BLACK LENTICULAR BRACKET\n\t{0x3014, 0x3014, prClose},     // Ps       LEFT TORTOISE SHELL BRACKET\n\t{0x3015, 0x3015, prClose},     // Pe       RIGHT TORTOISE SHELL BRACKET\n\t{0x3016, 0x3016, prClose},     // Ps       LEFT WHITE LENTICULAR BRACKET\n\t{0x3017, 0x3017, prClose},     // Pe       RIGHT WHITE LENTICULAR BRACKET\n\t{0x3018, 0x3018, prClose},     // Ps       LEFT WHITE TORTOISE SHELL BRACKET\n\t{0x3019, 0x3019, prClose},     // Pe       RIGHT WHITE TORTOISE SHELL BRACKET\n\t{0x301A, 0x301A, prClose},     // Ps       LEFT WHITE SQUARE BRACKET\n\t{0x301B, 0x301B, prClose},     // Pe       RIGHT WHITE SQUARE BRACKET\n\t{0x301D, 0x301D, prClose},     // Ps       REVERSED DOUBLE PRIME QUOTATION MARK\n\t{0x301E, 0x301F, prClose},     // Pe   [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK\n\t{0x3021, 0x3029, prOLetter},   // Nl   [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE\n\t{0x302A, 0x302D, prExtend},    // Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK\n\t{0x302E, 0x302F, prExtend},    // Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK\n\t{0x3031, 0x3035, prOLetter},   // Lm   [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF\n\t{0x3038, 0x303A, prOLetter},   // Nl   [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY\n\t{0x303B, 0x303B, prOLetter},   // Lm       VERTICAL IDEOGRAPHIC ITERATION MARK\n\t{0x303C, 0x303C, prOLetter},   // Lo       MASU MARK\n\t{0x3041, 0x3096, prOLetter},   // Lo  [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE\n\t{0x3099, 0x309A, prExtend},    // Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK\n\t{0x309D, 0x309E, prOLetter},   // Lm   [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK\n\t{0x309F, 0x309F, prOLetter},   // Lo       HIRAGANA DIGRAPH YORI\n\t{0x30A1, 0x30FA, prOLetter},   // Lo  [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO\n\t{0x30FC, 0x30FE, prOLetter},   // Lm   [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK\n\t{0x30FF, 0x30FF, prOLetter},   // Lo       KATAKANA DIGRAPH KOTO\n\t{0x3105, 0x312F, prOLetter},   // Lo  [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN\n\t{0x3131, 0x318E, prOLetter},   // Lo  [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE\n\t{0x31A0, 0x31BF, prOLetter},   // Lo  [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH\n\t{0x31F0, 0x31FF, prOLetter},   // Lo  [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO\n\t{0x3400, 0x4DBF, prOLetter},   // Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF\n\t{0x4E00, 0xA014, prOLetter},   // Lo [21013] CJK UNIFIED IDEOGRAPH-4E00..YI SYLLABLE E\n\t{0xA015, 0xA015, prOLetter},   // Lm       YI SYLLABLE WU\n\t{0xA016, 0xA48C, prOLetter},   // Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR\n\t{0xA4D0, 0xA4F7, prOLetter},   // Lo  [40] LISU LETTER BA..LISU LETTER OE\n\t{0xA4F8, 0xA4FD, prOLetter},   // Lm   [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU\n\t{0xA4FF, 0xA4FF, prSTerm},     // Po       LISU PUNCTUATION FULL STOP\n\t{0xA500, 0xA60B, prOLetter},   // Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG\n\t{0xA60C, 0xA60C, prOLetter},   // Lm       VAI SYLLABLE LENGTHENER\n\t{0xA60E, 0xA60F, prSTerm},     // Po   [2] VAI FULL STOP..VAI QUESTION MARK\n\t{0xA610, 0xA61F, prOLetter},   // Lo  [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG\n\t{0xA620, 0xA629, prNumeric},   // Nd  [10] VAI DIGIT ZERO..VAI DIGIT NINE\n\t{0xA62A, 0xA62B, prOLetter},   // Lo   [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO\n\t{0xA640, 0xA640, prUpper},     // L&       CYRILLIC CAPITAL LETTER ZEMLYA\n\t{0xA641, 0xA641, prLower},     // L&       CYRILLIC SMALL LETTER ZEMLYA\n\t{0xA642, 0xA642, prUpper},     // L&       CYRILLIC CAPITAL LETTER DZELO\n\t{0xA643, 0xA643, prLower},     // L&       CYRILLIC SMALL LETTER DZELO\n\t{0xA644, 0xA644, prUpper},     // L&       CYRILLIC CAPITAL LETTER REVERSED DZE\n\t{0xA645, 0xA645, prLower},     // L&       CYRILLIC SMALL LETTER REVERSED DZE\n\t{0xA646, 0xA646, prUpper},     // L&       CYRILLIC CAPITAL LETTER IOTA\n\t{0xA647, 0xA647, prLower},     // L&       CYRILLIC SMALL LETTER IOTA\n\t{0xA648, 0xA648, prUpper},     // L&       CYRILLIC CAPITAL LETTER DJERV\n\t{0xA649, 0xA649, prLower},     // L&       CYRILLIC SMALL LETTER DJERV\n\t{0xA64A, 0xA64A, prUpper},     // L&       CYRILLIC CAPITAL LETTER MONOGRAPH UK\n\t{0xA64B, 0xA64B, prLower},     // L&       CYRILLIC SMALL LETTER MONOGRAPH UK\n\t{0xA64C, 0xA64C, prUpper},     // L&       CYRILLIC CAPITAL LETTER BROAD OMEGA\n\t{0xA64D, 0xA64D, prLower},     // L&       CYRILLIC SMALL LETTER BROAD OMEGA\n\t{0xA64E, 0xA64E, prUpper},     // L&       CYRILLIC CAPITAL LETTER NEUTRAL YER\n\t{0xA64F, 0xA64F, prLower},     // L&       CYRILLIC SMALL LETTER NEUTRAL YER\n\t{0xA650, 0xA650, prUpper},     // L&       CYRILLIC CAPITAL LETTER YERU WITH BACK YER\n\t{0xA651, 0xA651, prLower},     // L&       CYRILLIC SMALL LETTER YERU WITH BACK YER\n\t{0xA652, 0xA652, prUpper},     // L&       CYRILLIC CAPITAL LETTER IOTIFIED YAT\n\t{0xA653, 0xA653, prLower},     // L&       CYRILLIC SMALL LETTER IOTIFIED YAT\n\t{0xA654, 0xA654, prUpper},     // L&       CYRILLIC CAPITAL LETTER REVERSED YU\n\t{0xA655, 0xA655, prLower},     // L&       CYRILLIC SMALL LETTER REVERSED YU\n\t{0xA656, 0xA656, prUpper},     // L&       CYRILLIC CAPITAL LETTER IOTIFIED A\n\t{0xA657, 0xA657, prLower},     // L&       CYRILLIC SMALL LETTER IOTIFIED A\n\t{0xA658, 0xA658, prUpper},     // L&       CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS\n\t{0xA659, 0xA659, prLower},     // L&       CYRILLIC SMALL LETTER CLOSED LITTLE YUS\n\t{0xA65A, 0xA65A, prUpper},     // L&       CYRILLIC CAPITAL LETTER BLENDED YUS\n\t{0xA65B, 0xA65B, prLower},     // L&       CYRILLIC SMALL LETTER BLENDED YUS\n\t{0xA65C, 0xA65C, prUpper},     // L&       CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS\n\t{0xA65D, 0xA65D, prLower},     // L&       CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS\n\t{0xA65E, 0xA65E, prUpper},     // L&       CYRILLIC CAPITAL LETTER YN\n\t{0xA65F, 0xA65F, prLower},     // L&       CYRILLIC SMALL LETTER YN\n\t{0xA660, 0xA660, prUpper},     // L&       CYRILLIC CAPITAL LETTER REVERSED TSE\n\t{0xA661, 0xA661, prLower},     // L&       CYRILLIC SMALL LETTER REVERSED TSE\n\t{0xA662, 0xA662, prUpper},     // L&       CYRILLIC CAPITAL LETTER SOFT DE\n\t{0xA663, 0xA663, prLower},     // L&       CYRILLIC SMALL LETTER SOFT DE\n\t{0xA664, 0xA664, prUpper},     // L&       CYRILLIC CAPITAL LETTER SOFT EL\n\t{0xA665, 0xA665, prLower},     // L&       CYRILLIC SMALL LETTER SOFT EL\n\t{0xA666, 0xA666, prUpper},     // L&       CYRILLIC CAPITAL LETTER SOFT EM\n\t{0xA667, 0xA667, prLower},     // L&       CYRILLIC SMALL LETTER SOFT EM\n\t{0xA668, 0xA668, prUpper},     // L&       CYRILLIC CAPITAL LETTER MONOCULAR O\n\t{0xA669, 0xA669, prLower},     // L&       CYRILLIC SMALL LETTER MONOCULAR O\n\t{0xA66A, 0xA66A, prUpper},     // L&       CYRILLIC CAPITAL LETTER BINOCULAR O\n\t{0xA66B, 0xA66B, prLower},     // L&       CYRILLIC SMALL LETTER BINOCULAR O\n\t{0xA66C, 0xA66C, prUpper},     // L&       CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O\n\t{0xA66D, 0xA66D, prLower},     // L&       CYRILLIC SMALL LETTER DOUBLE MONOCULAR O\n\t{0xA66E, 0xA66E, prOLetter},   // Lo       CYRILLIC LETTER MULTIOCULAR O\n\t{0xA66F, 0xA66F, prExtend},    // Mn       COMBINING CYRILLIC VZMET\n\t{0xA670, 0xA672, prExtend},    // Me   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN\n\t{0xA674, 0xA67D, prExtend},    // Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK\n\t{0xA67F, 0xA67F, prOLetter},   // Lm       CYRILLIC PAYEROK\n\t{0xA680, 0xA680, prUpper},     // L&       CYRILLIC CAPITAL LETTER DWE\n\t{0xA681, 0xA681, prLower},     // L&       CYRILLIC SMALL LETTER DWE\n\t{0xA682, 0xA682, prUpper},     // L&       CYRILLIC CAPITAL LETTER DZWE\n\t{0xA683, 0xA683, prLower},     // L&       CYRILLIC SMALL LETTER DZWE\n\t{0xA684, 0xA684, prUpper},     // L&       CYRILLIC CAPITAL LETTER ZHWE\n\t{0xA685, 0xA685, prLower},     // L&       CYRILLIC SMALL LETTER ZHWE\n\t{0xA686, 0xA686, prUpper},     // L&       CYRILLIC CAPITAL LETTER CCHE\n\t{0xA687, 0xA687, prLower},     // L&       CYRILLIC SMALL LETTER CCHE\n\t{0xA688, 0xA688, prUpper},     // L&       CYRILLIC CAPITAL LETTER DZZE\n\t{0xA689, 0xA689, prLower},     // L&       CYRILLIC SMALL LETTER DZZE\n\t{0xA68A, 0xA68A, prUpper},     // L&       CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK\n\t{0xA68B, 0xA68B, prLower},     // L&       CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK\n\t{0xA68C, 0xA68C, prUpper},     // L&       CYRILLIC CAPITAL LETTER TWE\n\t{0xA68D, 0xA68D, prLower},     // L&       CYRILLIC SMALL LETTER TWE\n\t{0xA68E, 0xA68E, prUpper},     // L&       CYRILLIC CAPITAL LETTER TSWE\n\t{0xA68F, 0xA68F, prLower},     // L&       CYRILLIC SMALL LETTER TSWE\n\t{0xA690, 0xA690, prUpper},     // L&       CYRILLIC CAPITAL LETTER TSSE\n\t{0xA691, 0xA691, prLower},     // L&       CYRILLIC SMALL LETTER TSSE\n\t{0xA692, 0xA692, prUpper},     // L&       CYRILLIC CAPITAL LETTER TCHE\n\t{0xA693, 0xA693, prLower},     // L&       CYRILLIC SMALL LETTER TCHE\n\t{0xA694, 0xA694, prUpper},     // L&       CYRILLIC CAPITAL LETTER HWE\n\t{0xA695, 0xA695, prLower},     // L&       CYRILLIC SMALL LETTER HWE\n\t{0xA696, 0xA696, prUpper},     // L&       CYRILLIC CAPITAL LETTER SHWE\n\t{0xA697, 0xA697, prLower},     // L&       CYRILLIC SMALL LETTER SHWE\n\t{0xA698, 0xA698, prUpper},     // L&       CYRILLIC CAPITAL LETTER DOUBLE O\n\t{0xA699, 0xA699, prLower},     // L&       CYRILLIC SMALL LETTER DOUBLE O\n\t{0xA69A, 0xA69A, prUpper},     // L&       CYRILLIC CAPITAL LETTER CROSSED O\n\t{0xA69B, 0xA69B, prLower},     // L&       CYRILLIC SMALL LETTER CROSSED O\n\t{0xA69C, 0xA69D, prLower},     // Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN\n\t{0xA69E, 0xA69F, prExtend},    // Mn   [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E\n\t{0xA6A0, 0xA6E5, prOLetter},   // Lo  [70] BAMUM LETTER A..BAMUM LETTER KI\n\t{0xA6E6, 0xA6EF, prOLetter},   // Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM\n\t{0xA6F0, 0xA6F1, prExtend},    // Mn   [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS\n\t{0xA6F3, 0xA6F3, prSTerm},     // Po       BAMUM FULL STOP\n\t{0xA6F7, 0xA6F7, prSTerm},     // Po       BAMUM QUESTION MARK\n\t{0xA717, 0xA71F, prOLetter},   // Lm   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK\n\t{0xA722, 0xA722, prUpper},     // L&       LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF\n\t{0xA723, 0xA723, prLower},     // L&       LATIN SMALL LETTER EGYPTOLOGICAL ALEF\n\t{0xA724, 0xA724, prUpper},     // L&       LATIN CAPITAL LETTER EGYPTOLOGICAL AIN\n\t{0xA725, 0xA725, prLower},     // L&       LATIN SMALL LETTER EGYPTOLOGICAL AIN\n\t{0xA726, 0xA726, prUpper},     // L&       LATIN CAPITAL LETTER HENG\n\t{0xA727, 0xA727, prLower},     // L&       LATIN SMALL LETTER HENG\n\t{0xA728, 0xA728, prUpper},     // L&       LATIN CAPITAL LETTER TZ\n\t{0xA729, 0xA729, prLower},     // L&       LATIN SMALL LETTER TZ\n\t{0xA72A, 0xA72A, prUpper},     // L&       LATIN CAPITAL LETTER TRESILLO\n\t{0xA72B, 0xA72B, prLower},     // L&       LATIN SMALL LETTER TRESILLO\n\t{0xA72C, 0xA72C, prUpper},     // L&       LATIN CAPITAL LETTER CUATRILLO\n\t{0xA72D, 0xA72D, prLower},     // L&       LATIN SMALL LETTER CUATRILLO\n\t{0xA72E, 0xA72E, prUpper},     // L&       LATIN CAPITAL LETTER CUATRILLO WITH COMMA\n\t{0xA72F, 0xA731, prLower},     // L&   [3] LATIN SMALL LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S\n\t{0xA732, 0xA732, prUpper},     // L&       LATIN CAPITAL LETTER AA\n\t{0xA733, 0xA733, prLower},     // L&       LATIN SMALL LETTER AA\n\t{0xA734, 0xA734, prUpper},     // L&       LATIN CAPITAL LETTER AO\n\t{0xA735, 0xA735, prLower},     // L&       LATIN SMALL LETTER AO\n\t{0xA736, 0xA736, prUpper},     // L&       LATIN CAPITAL LETTER AU\n\t{0xA737, 0xA737, prLower},     // L&       LATIN SMALL LETTER AU\n\t{0xA738, 0xA738, prUpper},     // L&       LATIN CAPITAL LETTER AV\n\t{0xA739, 0xA739, prLower},     // L&       LATIN SMALL LETTER AV\n\t{0xA73A, 0xA73A, prUpper},     // L&       LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR\n\t{0xA73B, 0xA73B, prLower},     // L&       LATIN SMALL LETTER AV WITH HORIZONTAL BAR\n\t{0xA73C, 0xA73C, prUpper},     // L&       LATIN CAPITAL LETTER AY\n\t{0xA73D, 0xA73D, prLower},     // L&       LATIN SMALL LETTER AY\n\t{0xA73E, 0xA73E, prUpper},     // L&       LATIN CAPITAL LETTER REVERSED C WITH DOT\n\t{0xA73F, 0xA73F, prLower},     // L&       LATIN SMALL LETTER REVERSED C WITH DOT\n\t{0xA740, 0xA740, prUpper},     // L&       LATIN CAPITAL LETTER K WITH STROKE\n\t{0xA741, 0xA741, prLower},     // L&       LATIN SMALL LETTER K WITH STROKE\n\t{0xA742, 0xA742, prUpper},     // L&       LATIN CAPITAL LETTER K WITH DIAGONAL STROKE\n\t{0xA743, 0xA743, prLower},     // L&       LATIN SMALL LETTER K WITH DIAGONAL STROKE\n\t{0xA744, 0xA744, prUpper},     // L&       LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE\n\t{0xA745, 0xA745, prLower},     // L&       LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE\n\t{0xA746, 0xA746, prUpper},     // L&       LATIN CAPITAL LETTER BROKEN L\n\t{0xA747, 0xA747, prLower},     // L&       LATIN SMALL LETTER BROKEN L\n\t{0xA748, 0xA748, prUpper},     // L&       LATIN CAPITAL LETTER L WITH HIGH STROKE\n\t{0xA749, 0xA749, prLower},     // L&       LATIN SMALL LETTER L WITH HIGH STROKE\n\t{0xA74A, 0xA74A, prUpper},     // L&       LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY\n\t{0xA74B, 0xA74B, prLower},     // L&       LATIN SMALL LETTER O WITH LONG STROKE OVERLAY\n\t{0xA74C, 0xA74C, prUpper},     // L&       LATIN CAPITAL LETTER O WITH LOOP\n\t{0xA74D, 0xA74D, prLower},     // L&       LATIN SMALL LETTER O WITH LOOP\n\t{0xA74E, 0xA74E, prUpper},     // L&       LATIN CAPITAL LETTER OO\n\t{0xA74F, 0xA74F, prLower},     // L&       LATIN SMALL LETTER OO\n\t{0xA750, 0xA750, prUpper},     // L&       LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER\n\t{0xA751, 0xA751, prLower},     // L&       LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER\n\t{0xA752, 0xA752, prUpper},     // L&       LATIN CAPITAL LETTER P WITH FLOURISH\n\t{0xA753, 0xA753, prLower},     // L&       LATIN SMALL LETTER P WITH FLOURISH\n\t{0xA754, 0xA754, prUpper},     // L&       LATIN CAPITAL LETTER P WITH SQUIRREL TAIL\n\t{0xA755, 0xA755, prLower},     // L&       LATIN SMALL LETTER P WITH SQUIRREL TAIL\n\t{0xA756, 0xA756, prUpper},     // L&       LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER\n\t{0xA757, 0xA757, prLower},     // L&       LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER\n\t{0xA758, 0xA758, prUpper},     // L&       LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE\n\t{0xA759, 0xA759, prLower},     // L&       LATIN SMALL LETTER Q WITH DIAGONAL STROKE\n\t{0xA75A, 0xA75A, prUpper},     // L&       LATIN CAPITAL LETTER R ROTUNDA\n\t{0xA75B, 0xA75B, prLower},     // L&       LATIN SMALL LETTER R ROTUNDA\n\t{0xA75C, 0xA75C, prUpper},     // L&       LATIN CAPITAL LETTER RUM ROTUNDA\n\t{0xA75D, 0xA75D, prLower},     // L&       LATIN SMALL LETTER RUM ROTUNDA\n\t{0xA75E, 0xA75E, prUpper},     // L&       LATIN CAPITAL LETTER V WITH DIAGONAL STROKE\n\t{0xA75F, 0xA75F, prLower},     // L&       LATIN SMALL LETTER V WITH DIAGONAL STROKE\n\t{0xA760, 0xA760, prUpper},     // L&       LATIN CAPITAL LETTER VY\n\t{0xA761, 0xA761, prLower},     // L&       LATIN SMALL LETTER VY\n\t{0xA762, 0xA762, prUpper},     // L&       LATIN CAPITAL LETTER VISIGOTHIC Z\n\t{0xA763, 0xA763, prLower},     // L&       LATIN SMALL LETTER VISIGOTHIC Z\n\t{0xA764, 0xA764, prUpper},     // L&       LATIN CAPITAL LETTER THORN WITH STROKE\n\t{0xA765, 0xA765, prLower},     // L&       LATIN SMALL LETTER THORN WITH STROKE\n\t{0xA766, 0xA766, prUpper},     // L&       LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER\n\t{0xA767, 0xA767, prLower},     // L&       LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER\n\t{0xA768, 0xA768, prUpper},     // L&       LATIN CAPITAL LETTER VEND\n\t{0xA769, 0xA769, prLower},     // L&       LATIN SMALL LETTER VEND\n\t{0xA76A, 0xA76A, prUpper},     // L&       LATIN CAPITAL LETTER ET\n\t{0xA76B, 0xA76B, prLower},     // L&       LATIN SMALL LETTER ET\n\t{0xA76C, 0xA76C, prUpper},     // L&       LATIN CAPITAL LETTER IS\n\t{0xA76D, 0xA76D, prLower},     // L&       LATIN SMALL LETTER IS\n\t{0xA76E, 0xA76E, prUpper},     // L&       LATIN CAPITAL LETTER CON\n\t{0xA76F, 0xA76F, prLower},     // L&       LATIN SMALL LETTER CON\n\t{0xA770, 0xA770, prLower},     // Lm       MODIFIER LETTER US\n\t{0xA771, 0xA778, prLower},     // L&   [8] LATIN SMALL LETTER DUM..LATIN SMALL LETTER UM\n\t{0xA779, 0xA779, prUpper},     // L&       LATIN CAPITAL LETTER INSULAR D\n\t{0xA77A, 0xA77A, prLower},     // L&       LATIN SMALL LETTER INSULAR D\n\t{0xA77B, 0xA77B, prUpper},     // L&       LATIN CAPITAL LETTER INSULAR F\n\t{0xA77C, 0xA77C, prLower},     // L&       LATIN SMALL LETTER INSULAR F\n\t{0xA77D, 0xA77E, prUpper},     // L&   [2] LATIN CAPITAL LETTER INSULAR G..LATIN CAPITAL LETTER TURNED INSULAR G\n\t{0xA77F, 0xA77F, prLower},     // L&       LATIN SMALL LETTER TURNED INSULAR G\n\t{0xA780, 0xA780, prUpper},     // L&       LATIN CAPITAL LETTER TURNED L\n\t{0xA781, 0xA781, prLower},     // L&       LATIN SMALL LETTER TURNED L\n\t{0xA782, 0xA782, prUpper},     // L&       LATIN CAPITAL LETTER INSULAR R\n\t{0xA783, 0xA783, prLower},     // L&       LATIN SMALL LETTER INSULAR R\n\t{0xA784, 0xA784, prUpper},     // L&       LATIN CAPITAL LETTER INSULAR S\n\t{0xA785, 0xA785, prLower},     // L&       LATIN SMALL LETTER INSULAR S\n\t{0xA786, 0xA786, prUpper},     // L&       LATIN CAPITAL LETTER INSULAR T\n\t{0xA787, 0xA787, prLower},     // L&       LATIN SMALL LETTER INSULAR T\n\t{0xA788, 0xA788, prOLetter},   // Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT\n\t{0xA78B, 0xA78B, prUpper},     // L&       LATIN CAPITAL LETTER SALTILLO\n\t{0xA78C, 0xA78C, prLower},     // L&       LATIN SMALL LETTER SALTILLO\n\t{0xA78D, 0xA78D, prUpper},     // L&       LATIN CAPITAL LETTER TURNED H\n\t{0xA78E, 0xA78E, prLower},     // L&       LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT\n\t{0xA78F, 0xA78F, prOLetter},   // Lo       LATIN LETTER SINOLOGICAL DOT\n\t{0xA790, 0xA790, prUpper},     // L&       LATIN CAPITAL LETTER N WITH DESCENDER\n\t{0xA791, 0xA791, prLower},     // L&       LATIN SMALL LETTER N WITH DESCENDER\n\t{0xA792, 0xA792, prUpper},     // L&       LATIN CAPITAL LETTER C WITH BAR\n\t{0xA793, 0xA795, prLower},     // L&   [3] LATIN SMALL LETTER C WITH BAR..LATIN SMALL LETTER H WITH PALATAL HOOK\n\t{0xA796, 0xA796, prUpper},     // L&       LATIN CAPITAL LETTER B WITH FLOURISH\n\t{0xA797, 0xA797, prLower},     // L&       LATIN SMALL LETTER B WITH FLOURISH\n\t{0xA798, 0xA798, prUpper},     // L&       LATIN CAPITAL LETTER F WITH STROKE\n\t{0xA799, 0xA799, prLower},     // L&       LATIN SMALL LETTER F WITH STROKE\n\t{0xA79A, 0xA79A, prUpper},     // L&       LATIN CAPITAL LETTER VOLAPUK AE\n\t{0xA79B, 0xA79B, prLower},     // L&       LATIN SMALL LETTER VOLAPUK AE\n\t{0xA79C, 0xA79C, prUpper},     // L&       LATIN CAPITAL LETTER VOLAPUK OE\n\t{0xA79D, 0xA79D, prLower},     // L&       LATIN SMALL LETTER VOLAPUK OE\n\t{0xA79E, 0xA79E, prUpper},     // L&       LATIN CAPITAL LETTER VOLAPUK UE\n\t{0xA79F, 0xA79F, prLower},     // L&       LATIN SMALL LETTER VOLAPUK UE\n\t{0xA7A0, 0xA7A0, prUpper},     // L&       LATIN CAPITAL LETTER G WITH OBLIQUE STROKE\n\t{0xA7A1, 0xA7A1, prLower},     // L&       LATIN SMALL LETTER G WITH OBLIQUE STROKE\n\t{0xA7A2, 0xA7A2, prUpper},     // L&       LATIN CAPITAL LETTER K WITH OBLIQUE STROKE\n\t{0xA7A3, 0xA7A3, prLower},     // L&       LATIN SMALL LETTER K WITH OBLIQUE STROKE\n\t{0xA7A4, 0xA7A4, prUpper},     // L&       LATIN CAPITAL LETTER N WITH OBLIQUE STROKE\n\t{0xA7A5, 0xA7A5, prLower},     // L&       LATIN SMALL LETTER N WITH OBLIQUE STROKE\n\t{0xA7A6, 0xA7A6, prUpper},     // L&       LATIN CAPITAL LETTER R WITH OBLIQUE STROKE\n\t{0xA7A7, 0xA7A7, prLower},     // L&       LATIN SMALL LETTER R WITH OBLIQUE STROKE\n\t{0xA7A8, 0xA7A8, prUpper},     // L&       LATIN CAPITAL LETTER S WITH OBLIQUE STROKE\n\t{0xA7A9, 0xA7A9, prLower},     // L&       LATIN SMALL LETTER S WITH OBLIQUE STROKE\n\t{0xA7AA, 0xA7AE, prUpper},     // L&   [5] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER SMALL CAPITAL I\n\t{0xA7AF, 0xA7AF, prLower},     // L&       LATIN LETTER SMALL CAPITAL Q\n\t{0xA7B0, 0xA7B4, prUpper},     // L&   [5] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER BETA\n\t{0xA7B5, 0xA7B5, prLower},     // L&       LATIN SMALL LETTER BETA\n\t{0xA7B6, 0xA7B6, prUpper},     // L&       LATIN CAPITAL LETTER OMEGA\n\t{0xA7B7, 0xA7B7, prLower},     // L&       LATIN SMALL LETTER OMEGA\n\t{0xA7B8, 0xA7B8, prUpper},     // L&       LATIN CAPITAL LETTER U WITH STROKE\n\t{0xA7B9, 0xA7B9, prLower},     // L&       LATIN SMALL LETTER U WITH STROKE\n\t{0xA7BA, 0xA7BA, prUpper},     // L&       LATIN CAPITAL LETTER GLOTTAL A\n\t{0xA7BB, 0xA7BB, prLower},     // L&       LATIN SMALL LETTER GLOTTAL A\n\t{0xA7BC, 0xA7BC, prUpper},     // L&       LATIN CAPITAL LETTER GLOTTAL I\n\t{0xA7BD, 0xA7BD, prLower},     // L&       LATIN SMALL LETTER GLOTTAL I\n\t{0xA7BE, 0xA7BE, prUpper},     // L&       LATIN CAPITAL LETTER GLOTTAL U\n\t{0xA7BF, 0xA7BF, prLower},     // L&       LATIN SMALL LETTER GLOTTAL U\n\t{0xA7C0, 0xA7C0, prUpper},     // L&       LATIN CAPITAL LETTER OLD POLISH O\n\t{0xA7C1, 0xA7C1, prLower},     // L&       LATIN SMALL LETTER OLD POLISH O\n\t{0xA7C2, 0xA7C2, prUpper},     // L&       LATIN CAPITAL LETTER ANGLICANA W\n\t{0xA7C3, 0xA7C3, prLower},     // L&       LATIN SMALL LETTER ANGLICANA W\n\t{0xA7C4, 0xA7C7, prUpper},     // L&   [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY\n\t{0xA7C8, 0xA7C8, prLower},     // L&       LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY\n\t{0xA7C9, 0xA7C9, prUpper},     // L&       LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY\n\t{0xA7CA, 0xA7CA, prLower},     // L&       LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY\n\t{0xA7D0, 0xA7D0, prUpper},     // L&       LATIN CAPITAL LETTER CLOSED INSULAR G\n\t{0xA7D1, 0xA7D1, prLower},     // L&       LATIN SMALL LETTER CLOSED INSULAR G\n\t{0xA7D3, 0xA7D3, prLower},     // L&       LATIN SMALL LETTER DOUBLE THORN\n\t{0xA7D5, 0xA7D5, prLower},     // L&       LATIN SMALL LETTER DOUBLE WYNN\n\t{0xA7D6, 0xA7D6, prUpper},     // L&       LATIN CAPITAL LETTER MIDDLE SCOTS S\n\t{0xA7D7, 0xA7D7, prLower},     // L&       LATIN SMALL LETTER MIDDLE SCOTS S\n\t{0xA7D8, 0xA7D8, prUpper},     // L&       LATIN CAPITAL LETTER SIGMOID S\n\t{0xA7D9, 0xA7D9, prLower},     // L&       LATIN SMALL LETTER SIGMOID S\n\t{0xA7F2, 0xA7F4, prLower},     // Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q\n\t{0xA7F5, 0xA7F5, prUpper},     // L&       LATIN CAPITAL LETTER REVERSED HALF H\n\t{0xA7F6, 0xA7F6, prLower},     // L&       LATIN SMALL LETTER REVERSED HALF H\n\t{0xA7F7, 0xA7F7, prOLetter},   // Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I\n\t{0xA7F8, 0xA7F9, prLower},     // Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE\n\t{0xA7FA, 0xA7FA, prLower},     // L&       LATIN LETTER SMALL CAPITAL TURNED M\n\t{0xA7FB, 0xA801, prOLetter},   // Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I\n\t{0xA802, 0xA802, prExtend},    // Mn       SYLOTI NAGRI SIGN DVISVARA\n\t{0xA803, 0xA805, prOLetter},   // Lo   [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O\n\t{0xA806, 0xA806, prExtend},    // Mn       SYLOTI NAGRI SIGN HASANTA\n\t{0xA807, 0xA80A, prOLetter},   // Lo   [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO\n\t{0xA80B, 0xA80B, prExtend},    // Mn       SYLOTI NAGRI SIGN ANUSVARA\n\t{0xA80C, 0xA822, prOLetter},   // Lo  [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO\n\t{0xA823, 0xA824, prExtend},    // Mc   [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I\n\t{0xA825, 0xA826, prExtend},    // Mn   [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E\n\t{0xA827, 0xA827, prExtend},    // Mc       SYLOTI NAGRI VOWEL SIGN OO\n\t{0xA82C, 0xA82C, prExtend},    // Mn       SYLOTI NAGRI SIGN ALTERNATE HASANTA\n\t{0xA840, 0xA873, prOLetter},   // Lo  [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU\n\t{0xA876, 0xA877, prSTerm},     // Po   [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD\n\t{0xA880, 0xA881, prExtend},    // Mc   [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA\n\t{0xA882, 0xA8B3, prOLetter},   // Lo  [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA\n\t{0xA8B4, 0xA8C3, prExtend},    // Mc  [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU\n\t{0xA8C4, 0xA8C5, prExtend},    // Mn   [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU\n\t{0xA8CE, 0xA8CF, prSTerm},     // Po   [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA\n\t{0xA8D0, 0xA8D9, prNumeric},   // Nd  [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE\n\t{0xA8E0, 0xA8F1, prExtend},    // Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA\n\t{0xA8F2, 0xA8F7, prOLetter},   // Lo   [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA\n\t{0xA8FB, 0xA8FB, prOLetter},   // Lo       DEVANAGARI HEADSTROKE\n\t{0xA8FD, 0xA8FE, prOLetter},   // Lo   [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY\n\t{0xA8FF, 0xA8FF, prExtend},    // Mn       DEVANAGARI VOWEL SIGN AY\n\t{0xA900, 0xA909, prNumeric},   // Nd  [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE\n\t{0xA90A, 0xA925, prOLetter},   // Lo  [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO\n\t{0xA926, 0xA92D, prExtend},    // Mn   [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU\n\t{0xA92F, 0xA92F, prSTerm},     // Po       KAYAH LI SIGN SHYA\n\t{0xA930, 0xA946, prOLetter},   // Lo  [23] REJANG LETTER KA..REJANG LETTER A\n\t{0xA947, 0xA951, prExtend},    // Mn  [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R\n\t{0xA952, 0xA953, prExtend},    // Mc   [2] REJANG CONSONANT SIGN H..REJANG VIRAMA\n\t{0xA960, 0xA97C, prOLetter},   // Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH\n\t{0xA980, 0xA982, prExtend},    // Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR\n\t{0xA983, 0xA983, prExtend},    // Mc       JAVANESE SIGN WIGNYAN\n\t{0xA984, 0xA9B2, prOLetter},   // Lo  [47] JAVANESE LETTER A..JAVANESE LETTER HA\n\t{0xA9B3, 0xA9B3, prExtend},    // Mn       JAVANESE SIGN CECAK TELU\n\t{0xA9B4, 0xA9B5, prExtend},    // Mc   [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG\n\t{0xA9B6, 0xA9B9, prExtend},    // Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT\n\t{0xA9BA, 0xA9BB, prExtend},    // Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE\n\t{0xA9BC, 0xA9BD, prExtend},    // Mn   [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET\n\t{0xA9BE, 0xA9C0, prExtend},    // Mc   [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON\n\t{0xA9C8, 0xA9C9, prSTerm},     // Po   [2] JAVANESE PADA LINGSA..JAVANESE PADA LUNGSI\n\t{0xA9CF, 0xA9CF, prOLetter},   // Lm       JAVANESE PANGRANGKEP\n\t{0xA9D0, 0xA9D9, prNumeric},   // Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE\n\t{0xA9E0, 0xA9E4, prOLetter},   // Lo   [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA\n\t{0xA9E5, 0xA9E5, prExtend},    // Mn       MYANMAR SIGN SHAN SAW\n\t{0xA9E6, 0xA9E6, prOLetter},   // Lm       MYANMAR MODIFIER LETTER SHAN REDUPLICATION\n\t{0xA9E7, 0xA9EF, prOLetter},   // Lo   [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA\n\t{0xA9F0, 0xA9F9, prNumeric},   // Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE\n\t{0xA9FA, 0xA9FE, prOLetter},   // Lo   [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA\n\t{0xAA00, 0xAA28, prOLetter},   // Lo  [41] CHAM LETTER A..CHAM LETTER HA\n\t{0xAA29, 0xAA2E, prExtend},    // Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE\n\t{0xAA2F, 0xAA30, prExtend},    // Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI\n\t{0xAA31, 0xAA32, prExtend},    // Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE\n\t{0xAA33, 0xAA34, prExtend},    // Mc   [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA\n\t{0xAA35, 0xAA36, prExtend},    // Mn   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA\n\t{0xAA40, 0xAA42, prOLetter},   // Lo   [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG\n\t{0xAA43, 0xAA43, prExtend},    // Mn       CHAM CONSONANT SIGN FINAL NG\n\t{0xAA44, 0xAA4B, prOLetter},   // Lo   [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS\n\t{0xAA4C, 0xAA4C, prExtend},    // Mn       CHAM CONSONANT SIGN FINAL M\n\t{0xAA4D, 0xAA4D, prExtend},    // Mc       CHAM CONSONANT SIGN FINAL H\n\t{0xAA50, 0xAA59, prNumeric},   // Nd  [10] CHAM DIGIT ZERO..CHAM DIGIT NINE\n\t{0xAA5D, 0xAA5F, prSTerm},     // Po   [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA\n\t{0xAA60, 0xAA6F, prOLetter},   // Lo  [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA\n\t{0xAA70, 0xAA70, prOLetter},   // Lm       MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION\n\t{0xAA71, 0xAA76, prOLetter},   // Lo   [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM\n\t{0xAA7A, 0xAA7A, prOLetter},   // Lo       MYANMAR LETTER AITON RA\n\t{0xAA7B, 0xAA7B, prExtend},    // Mc       MYANMAR SIGN PAO KAREN TONE\n\t{0xAA7C, 0xAA7C, prExtend},    // Mn       MYANMAR SIGN TAI LAING TONE-2\n\t{0xAA7D, 0xAA7D, prExtend},    // Mc       MYANMAR SIGN TAI LAING TONE-5\n\t{0xAA7E, 0xAAAF, prOLetter},   // Lo  [50] MYANMAR LETTER SHWE PALAUNG CHA..TAI VIET LETTER HIGH O\n\t{0xAAB0, 0xAAB0, prExtend},    // Mn       TAI VIET MAI KANG\n\t{0xAAB1, 0xAAB1, prOLetter},   // Lo       TAI VIET VOWEL AA\n\t{0xAAB2, 0xAAB4, prExtend},    // Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U\n\t{0xAAB5, 0xAAB6, prOLetter},   // Lo   [2] TAI VIET VOWEL E..TAI VIET VOWEL O\n\t{0xAAB7, 0xAAB8, prExtend},    // Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA\n\t{0xAAB9, 0xAABD, prOLetter},   // Lo   [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN\n\t{0xAABE, 0xAABF, prExtend},    // Mn   [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK\n\t{0xAAC0, 0xAAC0, prOLetter},   // Lo       TAI VIET TONE MAI NUENG\n\t{0xAAC1, 0xAAC1, prExtend},    // Mn       TAI VIET TONE MAI THO\n\t{0xAAC2, 0xAAC2, prOLetter},   // Lo       TAI VIET TONE MAI SONG\n\t{0xAADB, 0xAADC, prOLetter},   // Lo   [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG\n\t{0xAADD, 0xAADD, prOLetter},   // Lm       TAI VIET SYMBOL SAM\n\t{0xAAE0, 0xAAEA, prOLetter},   // Lo  [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA\n\t{0xAAEB, 0xAAEB, prExtend},    // Mc       MEETEI MAYEK VOWEL SIGN II\n\t{0xAAEC, 0xAAED, prExtend},    // Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI\n\t{0xAAEE, 0xAAEF, prExtend},    // Mc   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU\n\t{0xAAF0, 0xAAF1, prSTerm},     // Po   [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM\n\t{0xAAF2, 0xAAF2, prOLetter},   // Lo       MEETEI MAYEK ANJI\n\t{0xAAF3, 0xAAF4, prOLetter},   // Lm   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK\n\t{0xAAF5, 0xAAF5, prExtend},    // Mc       MEETEI MAYEK VOWEL SIGN VISARGA\n\t{0xAAF6, 0xAAF6, prExtend},    // Mn       MEETEI MAYEK VIRAMA\n\t{0xAB01, 0xAB06, prOLetter},   // Lo   [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO\n\t{0xAB09, 0xAB0E, prOLetter},   // Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO\n\t{0xAB11, 0xAB16, prOLetter},   // Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO\n\t{0xAB20, 0xAB26, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO\n\t{0xAB28, 0xAB2E, prOLetter},   // Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO\n\t{0xAB30, 0xAB5A, prLower},     // L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG\n\t{0xAB5C, 0xAB5F, prLower},     // Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK\n\t{0xAB60, 0xAB68, prLower},     // L&   [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE\n\t{0xAB69, 0xAB69, prLower},     // Lm       MODIFIER LETTER SMALL TURNED W\n\t{0xAB70, 0xABBF, prLower},     // L&  [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA\n\t{0xABC0, 0xABE2, prOLetter},   // Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM\n\t{0xABE3, 0xABE4, prExtend},    // Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP\n\t{0xABE5, 0xABE5, prExtend},    // Mn       MEETEI MAYEK VOWEL SIGN ANAP\n\t{0xABE6, 0xABE7, prExtend},    // Mc   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP\n\t{0xABE8, 0xABE8, prExtend},    // Mn       MEETEI MAYEK VOWEL SIGN UNAP\n\t{0xABE9, 0xABEA, prExtend},    // Mc   [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG\n\t{0xABEB, 0xABEB, prSTerm},     // Po       MEETEI MAYEK CHEIKHEI\n\t{0xABEC, 0xABEC, prExtend},    // Mc       MEETEI MAYEK LUM IYEK\n\t{0xABED, 0xABED, prExtend},    // Mn       MEETEI MAYEK APUN IYEK\n\t{0xABF0, 0xABF9, prNumeric},   // Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE\n\t{0xAC00, 0xD7A3, prOLetter},   // Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH\n\t{0xD7B0, 0xD7C6, prOLetter},   // Lo  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E\n\t{0xD7CB, 0xD7FB, prOLetter},   // Lo  [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH\n\t{0xF900, 0xFA6D, prOLetter},   // Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D\n\t{0xFA70, 0xFAD9, prOLetter},   // Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9\n\t{0xFB00, 0xFB06, prLower},     // L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST\n\t{0xFB13, 0xFB17, prLower},     // L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH\n\t{0xFB1D, 0xFB1D, prOLetter},   // Lo       HEBREW LETTER YOD WITH HIRIQ\n\t{0xFB1E, 0xFB1E, prExtend},    // Mn       HEBREW POINT JUDEO-SPANISH VARIKA\n\t{0xFB1F, 0xFB28, prOLetter},   // Lo  [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV\n\t{0xFB2A, 0xFB36, prOLetter},   // Lo  [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH\n\t{0xFB38, 0xFB3C, prOLetter},   // Lo   [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH\n\t{0xFB3E, 0xFB3E, prOLetter},   // Lo       HEBREW LETTER MEM WITH DAGESH\n\t{0xFB40, 0xFB41, prOLetter},   // Lo   [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH\n\t{0xFB43, 0xFB44, prOLetter},   // Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH\n\t{0xFB46, 0xFBB1, prOLetter},   // Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM\n\t{0xFBD3, 0xFD3D, prOLetter},   // Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM\n\t{0xFD3E, 0xFD3E, prClose},     // Pe       ORNATE LEFT PARENTHESIS\n\t{0xFD3F, 0xFD3F, prClose},     // Ps       ORNATE RIGHT PARENTHESIS\n\t{0xFD50, 0xFD8F, prOLetter},   // Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM\n\t{0xFD92, 0xFDC7, prOLetter},   // Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM\n\t{0xFDF0, 0xFDFB, prOLetter},   // Lo  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU\n\t{0xFE00, 0xFE0F, prExtend},    // Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16\n\t{0xFE10, 0xFE11, prSContinue}, // Po   [2] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA\n\t{0xFE13, 0xFE13, prSContinue}, // Po       PRESENTATION FORM FOR VERTICAL COLON\n\t{0xFE17, 0xFE17, prClose},     // Ps       PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET\n\t{0xFE18, 0xFE18, prClose},     // Pe       PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET\n\t{0xFE20, 0xFE2F, prExtend},    // Mn  [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF\n\t{0xFE31, 0xFE32, prSContinue}, // Pd   [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH\n\t{0xFE35, 0xFE35, prClose},     // Ps       PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS\n\t{0xFE36, 0xFE36, prClose},     // Pe       PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS\n\t{0xFE37, 0xFE37, prClose},     // Ps       PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET\n\t{0xFE38, 0xFE38, prClose},     // Pe       PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET\n\t{0xFE39, 0xFE39, prClose},     // Ps       PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET\n\t{0xFE3A, 0xFE3A, prClose},     // Pe       PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET\n\t{0xFE3B, 0xFE3B, prClose},     // Ps       PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET\n\t{0xFE3C, 0xFE3C, prClose},     // Pe       PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET\n\t{0xFE3D, 0xFE3D, prClose},     // Ps       PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET\n\t{0xFE3E, 0xFE3E, prClose},     // Pe       PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET\n\t{0xFE3F, 0xFE3F, prClose},     // Ps       PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET\n\t{0xFE40, 0xFE40, prClose},     // Pe       PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET\n\t{0xFE41, 0xFE41, prClose},     // Ps       PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET\n\t{0xFE42, 0xFE42, prClose},     // Pe       PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET\n\t{0xFE43, 0xFE43, prClose},     // Ps       PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET\n\t{0xFE44, 0xFE44, prClose},     // Pe       PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET\n\t{0xFE47, 0xFE47, prClose},     // Ps       PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET\n\t{0xFE48, 0xFE48, prClose},     // Pe       PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET\n\t{0xFE50, 0xFE51, prSContinue}, // Po   [2] SMALL COMMA..SMALL IDEOGRAPHIC COMMA\n\t{0xFE52, 0xFE52, prATerm},     // Po       SMALL FULL STOP\n\t{0xFE55, 0xFE55, prSContinue}, // Po       SMALL COLON\n\t{0xFE56, 0xFE57, prSTerm},     // Po   [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK\n\t{0xFE58, 0xFE58, prSContinue}, // Pd       SMALL EM DASH\n\t{0xFE59, 0xFE59, prClose},     // Ps       SMALL LEFT PARENTHESIS\n\t{0xFE5A, 0xFE5A, prClose},     // Pe       SMALL RIGHT PARENTHESIS\n\t{0xFE5B, 0xFE5B, prClose},     // Ps       SMALL LEFT CURLY BRACKET\n\t{0xFE5C, 0xFE5C, prClose},     // Pe       SMALL RIGHT CURLY BRACKET\n\t{0xFE5D, 0xFE5D, prClose},     // Ps       SMALL LEFT TORTOISE SHELL BRACKET\n\t{0xFE5E, 0xFE5E, prClose},     // Pe       SMALL RIGHT TORTOISE SHELL BRACKET\n\t{0xFE63, 0xFE63, prSContinue}, // Pd       SMALL HYPHEN-MINUS\n\t{0xFE70, 0xFE74, prOLetter},   // Lo   [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM\n\t{0xFE76, 0xFEFC, prOLetter},   // Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n\t{0xFEFF, 0xFEFF, prFormat},    // Cf       ZERO WIDTH NO-BREAK SPACE\n\t{0xFF01, 0xFF01, prSTerm},     // Po       FULLWIDTH EXCLAMATION MARK\n\t{0xFF08, 0xFF08, prClose},     // Ps       FULLWIDTH LEFT PARENTHESIS\n\t{0xFF09, 0xFF09, prClose},     // Pe       FULLWIDTH RIGHT PARENTHESIS\n\t{0xFF0C, 0xFF0C, prSContinue}, // Po       FULLWIDTH COMMA\n\t{0xFF0D, 0xFF0D, prSContinue}, // Pd       FULLWIDTH HYPHEN-MINUS\n\t{0xFF0E, 0xFF0E, prATerm},     // Po       FULLWIDTH FULL STOP\n\t{0xFF10, 0xFF19, prNumeric},   // Nd  [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE\n\t{0xFF1A, 0xFF1A, prSContinue}, // Po       FULLWIDTH COLON\n\t{0xFF1F, 0xFF1F, prSTerm},     // Po       FULLWIDTH QUESTION MARK\n\t{0xFF21, 0xFF3A, prUpper},     // L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z\n\t{0xFF3B, 0xFF3B, prClose},     // Ps       FULLWIDTH LEFT SQUARE BRACKET\n\t{0xFF3D, 0xFF3D, prClose},     // Pe       FULLWIDTH RIGHT SQUARE BRACKET\n\t{0xFF41, 0xFF5A, prLower},     // L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z\n\t{0xFF5B, 0xFF5B, prClose},     // Ps       FULLWIDTH LEFT CURLY BRACKET\n\t{0xFF5D, 0xFF5D, prClose},     // Pe       FULLWIDTH RIGHT CURLY BRACKET\n\t{0xFF5F, 0xFF5F, prClose},     // Ps       FULLWIDTH LEFT WHITE PARENTHESIS\n\t{0xFF60, 0xFF60, prClose},     // Pe       FULLWIDTH RIGHT WHITE PARENTHESIS\n\t{0xFF61, 0xFF61, prSTerm},     // Po       HALFWIDTH IDEOGRAPHIC FULL STOP\n\t{0xFF62, 0xFF62, prClose},     // Ps       HALFWIDTH LEFT CORNER BRACKET\n\t{0xFF63, 0xFF63, prClose},     // Pe       HALFWIDTH RIGHT CORNER BRACKET\n\t{0xFF64, 0xFF64, prSContinue}, // Po       HALFWIDTH IDEOGRAPHIC COMMA\n\t{0xFF66, 0xFF6F, prOLetter},   // Lo  [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU\n\t{0xFF70, 0xFF70, prOLetter},   // Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK\n\t{0xFF71, 0xFF9D, prOLetter},   // Lo  [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N\n\t{0xFF9E, 0xFF9F, prExtend},    // Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK\n\t{0xFFA0, 0xFFBE, prOLetter},   // Lo  [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH\n\t{0xFFC2, 0xFFC7, prOLetter},   // Lo   [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E\n\t{0xFFCA, 0xFFCF, prOLetter},   // Lo   [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE\n\t{0xFFD2, 0xFFD7, prOLetter},   // Lo   [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU\n\t{0xFFDA, 0xFFDC, prOLetter},   // Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I\n\t{0xFFF9, 0xFFFB, prFormat},    // Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR\n\t{0x10000, 0x1000B, prOLetter}, // Lo  [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE\n\t{0x1000D, 0x10026, prOLetter}, // Lo  [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO\n\t{0x10028, 0x1003A, prOLetter}, // Lo  [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO\n\t{0x1003C, 0x1003D, prOLetter}, // Lo   [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE\n\t{0x1003F, 0x1004D, prOLetter}, // Lo  [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO\n\t{0x10050, 0x1005D, prOLetter}, // Lo  [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089\n\t{0x10080, 0x100FA, prOLetter}, // Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305\n\t{0x10140, 0x10174, prOLetter}, // Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS\n\t{0x101FD, 0x101FD, prExtend},  // Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE\n\t{0x10280, 0x1029C, prOLetter}, // Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X\n\t{0x102A0, 0x102D0, prOLetter}, // Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3\n\t{0x102E0, 0x102E0, prExtend},  // Mn       COPTIC EPACT THOUSANDS MARK\n\t{0x10300, 0x1031F, prOLetter}, // Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS\n\t{0x1032D, 0x10340, prOLetter}, // Lo  [20] OLD ITALIC LETTER YE..GOTHIC LETTER PAIRTHRA\n\t{0x10341, 0x10341, prOLetter}, // Nl       GOTHIC LETTER NINETY\n\t{0x10342, 0x10349, prOLetter}, // Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL\n\t{0x1034A, 0x1034A, prOLetter}, // Nl       GOTHIC LETTER NINE HUNDRED\n\t{0x10350, 0x10375, prOLetter}, // Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA\n\t{0x10376, 0x1037A, prExtend},  // Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII\n\t{0x10380, 0x1039D, prOLetter}, // Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU\n\t{0x103A0, 0x103C3, prOLetter}, // Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA\n\t{0x103C8, 0x103CF, prOLetter}, // Lo   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH\n\t{0x103D1, 0x103D5, prOLetter}, // Nl   [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED\n\t{0x10400, 0x10427, prUpper},   // L&  [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW\n\t{0x10428, 0x1044F, prLower},   // L&  [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW\n\t{0x10450, 0x1049D, prOLetter}, // Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO\n\t{0x104A0, 0x104A9, prNumeric}, // Nd  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE\n\t{0x104B0, 0x104D3, prUpper},   // L&  [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA\n\t{0x104D8, 0x104FB, prLower},   // L&  [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA\n\t{0x10500, 0x10527, prOLetter}, // Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE\n\t{0x10530, 0x10563, prOLetter}, // Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW\n\t{0x10570, 0x1057A, prUpper},   // L&  [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA\n\t{0x1057C, 0x1058A, prUpper},   // L&  [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE\n\t{0x1058C, 0x10592, prUpper},   // L&   [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE\n\t{0x10594, 0x10595, prUpper},   // L&   [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE\n\t{0x10597, 0x105A1, prLower},   // L&  [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA\n\t{0x105A3, 0x105B1, prLower},   // L&  [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE\n\t{0x105B3, 0x105B9, prLower},   // L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE\n\t{0x105BB, 0x105BC, prLower},   // L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE\n\t{0x10600, 0x10736, prOLetter}, // Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664\n\t{0x10740, 0x10755, prOLetter}, // Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE\n\t{0x10760, 0x10767, prOLetter}, // Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807\n\t{0x10780, 0x10780, prLower},   // Lm       MODIFIER LETTER SMALL CAPITAL AA\n\t{0x10781, 0x10782, prOLetter}, // Lm   [2] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON\n\t{0x10783, 0x10785, prLower},   // Lm   [3] MODIFIER LETTER SMALL AE..MODIFIER LETTER SMALL B WITH HOOK\n\t{0x10787, 0x107B0, prLower},   // Lm  [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK\n\t{0x107B2, 0x107BA, prLower},   // Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL\n\t{0x10800, 0x10805, prOLetter}, // Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA\n\t{0x10808, 0x10808, prOLetter}, // Lo       CYPRIOT SYLLABLE JO\n\t{0x1080A, 0x10835, prOLetter}, // Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO\n\t{0x10837, 0x10838, prOLetter}, // Lo   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE\n\t{0x1083C, 0x1083C, prOLetter}, // Lo       CYPRIOT SYLLABLE ZA\n\t{0x1083F, 0x10855, prOLetter}, // Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW\n\t{0x10860, 0x10876, prOLetter}, // Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW\n\t{0x10880, 0x1089E, prOLetter}, // Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW\n\t{0x108E0, 0x108F2, prOLetter}, // Lo  [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH\n\t{0x108F4, 0x108F5, prOLetter}, // Lo   [2] HATRAN LETTER SHIN..HATRAN LETTER TAW\n\t{0x10900, 0x10915, prOLetter}, // Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU\n\t{0x10920, 0x10939, prOLetter}, // Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C\n\t{0x10980, 0x109B7, prOLetter}, // Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA\n\t{0x109BE, 0x109BF, prOLetter}, // Lo   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN\n\t{0x10A00, 0x10A00, prOLetter}, // Lo       KHAROSHTHI LETTER A\n\t{0x10A01, 0x10A03, prExtend},  // Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R\n\t{0x10A05, 0x10A06, prExtend},  // Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O\n\t{0x10A0C, 0x10A0F, prExtend},  // Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA\n\t{0x10A10, 0x10A13, prOLetter}, // Lo   [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA\n\t{0x10A15, 0x10A17, prOLetter}, // Lo   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA\n\t{0x10A19, 0x10A35, prOLetter}, // Lo  [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA\n\t{0x10A38, 0x10A3A, prExtend},  // Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW\n\t{0x10A3F, 0x10A3F, prExtend},  // Mn       KHAROSHTHI VIRAMA\n\t{0x10A56, 0x10A57, prSTerm},   // Po   [2] KHAROSHTHI PUNCTUATION DANDA..KHAROSHTHI PUNCTUATION DOUBLE DANDA\n\t{0x10A60, 0x10A7C, prOLetter}, // Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH\n\t{0x10A80, 0x10A9C, prOLetter}, // Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH\n\t{0x10AC0, 0x10AC7, prOLetter}, // Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW\n\t{0x10AC9, 0x10AE4, prOLetter}, // Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW\n\t{0x10AE5, 0x10AE6, prExtend},  // Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW\n\t{0x10B00, 0x10B35, prOLetter}, // Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE\n\t{0x10B40, 0x10B55, prOLetter}, // Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW\n\t{0x10B60, 0x10B72, prOLetter}, // Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW\n\t{0x10B80, 0x10B91, prOLetter}, // Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW\n\t{0x10C00, 0x10C48, prOLetter}, // Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH\n\t{0x10C80, 0x10CB2, prUpper},   // L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US\n\t{0x10CC0, 0x10CF2, prLower},   // L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US\n\t{0x10D00, 0x10D23, prOLetter}, // Lo  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA\n\t{0x10D24, 0x10D27, prExtend},  // Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI\n\t{0x10D30, 0x10D39, prNumeric}, // Nd  [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE\n\t{0x10E80, 0x10EA9, prOLetter}, // Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET\n\t{0x10EAB, 0x10EAC, prExtend},  // Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK\n\t{0x10EB0, 0x10EB1, prOLetter}, // Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE\n\t{0x10EFD, 0x10EFF, prExtend},  // Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA\n\t{0x10F00, 0x10F1C, prOLetter}, // Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL\n\t{0x10F27, 0x10F27, prOLetter}, // Lo       OLD SOGDIAN LIGATURE AYIN-DALETH\n\t{0x10F30, 0x10F45, prOLetter}, // Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN\n\t{0x10F46, 0x10F50, prExtend},  // Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW\n\t{0x10F55, 0x10F59, prSTerm},   // Po   [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT\n\t{0x10F70, 0x10F81, prOLetter}, // Lo  [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH\n\t{0x10F82, 0x10F85, prExtend},  // Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW\n\t{0x10F86, 0x10F89, prSTerm},   // Po   [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS\n\t{0x10FB0, 0x10FC4, prOLetter}, // Lo  [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW\n\t{0x10FE0, 0x10FF6, prOLetter}, // Lo  [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH\n\t{0x11000, 0x11000, prExtend},  // Mc       BRAHMI SIGN CANDRABINDU\n\t{0x11001, 0x11001, prExtend},  // Mn       BRAHMI SIGN ANUSVARA\n\t{0x11002, 0x11002, prExtend},  // Mc       BRAHMI SIGN VISARGA\n\t{0x11003, 0x11037, prOLetter}, // Lo  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA\n\t{0x11038, 0x11046, prExtend},  // Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA\n\t{0x11047, 0x11048, prSTerm},   // Po   [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA\n\t{0x11066, 0x1106F, prNumeric}, // Nd  [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE\n\t{0x11070, 0x11070, prExtend},  // Mn       BRAHMI SIGN OLD TAMIL VIRAMA\n\t{0x11071, 0x11072, prOLetter}, // Lo   [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O\n\t{0x11073, 0x11074, prExtend},  // Mn   [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O\n\t{0x11075, 0x11075, prOLetter}, // Lo       BRAHMI LETTER OLD TAMIL LLA\n\t{0x1107F, 0x11081, prExtend},  // Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA\n\t{0x11082, 0x11082, prExtend},  // Mc       KAITHI SIGN VISARGA\n\t{0x11083, 0x110AF, prOLetter}, // Lo  [45] KAITHI LETTER A..KAITHI LETTER HA\n\t{0x110B0, 0x110B2, prExtend},  // Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II\n\t{0x110B3, 0x110B6, prExtend},  // Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI\n\t{0x110B7, 0x110B8, prExtend},  // Mc   [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU\n\t{0x110B9, 0x110BA, prExtend},  // Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA\n\t{0x110BD, 0x110BD, prFormat},  // Cf       KAITHI NUMBER SIGN\n\t{0x110BE, 0x110C1, prSTerm},   // Po   [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA\n\t{0x110C2, 0x110C2, prExtend},  // Mn       KAITHI VOWEL SIGN VOCALIC R\n\t{0x110CD, 0x110CD, prFormat},  // Cf       KAITHI NUMBER SIGN ABOVE\n\t{0x110D0, 0x110E8, prOLetter}, // Lo  [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE\n\t{0x110F0, 0x110F9, prNumeric}, // Nd  [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE\n\t{0x11100, 0x11102, prExtend},  // Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA\n\t{0x11103, 0x11126, prOLetter}, // Lo  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA\n\t{0x11127, 0x1112B, prExtend},  // Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU\n\t{0x1112C, 0x1112C, prExtend},  // Mc       CHAKMA VOWEL SIGN E\n\t{0x1112D, 0x11134, prExtend},  // Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA\n\t{0x11136, 0x1113F, prNumeric}, // Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE\n\t{0x11141, 0x11143, prSTerm},   // Po   [3] CHAKMA DANDA..CHAKMA QUESTION MARK\n\t{0x11144, 0x11144, prOLetter}, // Lo       CHAKMA LETTER LHAA\n\t{0x11145, 0x11146, prExtend},  // Mc   [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI\n\t{0x11147, 0x11147, prOLetter}, // Lo       CHAKMA LETTER VAA\n\t{0x11150, 0x11172, prOLetter}, // Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA\n\t{0x11173, 0x11173, prExtend},  // Mn       MAHAJANI SIGN NUKTA\n\t{0x11176, 0x11176, prOLetter}, // Lo       MAHAJANI LIGATURE SHRI\n\t{0x11180, 0x11181, prExtend},  // Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA\n\t{0x11182, 0x11182, prExtend},  // Mc       SHARADA SIGN VISARGA\n\t{0x11183, 0x111B2, prOLetter}, // Lo  [48] SHARADA LETTER A..SHARADA LETTER HA\n\t{0x111B3, 0x111B5, prExtend},  // Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II\n\t{0x111B6, 0x111BE, prExtend},  // Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O\n\t{0x111BF, 0x111C0, prExtend},  // Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA\n\t{0x111C1, 0x111C4, prOLetter}, // Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM\n\t{0x111C5, 0x111C6, prSTerm},   // Po   [2] SHARADA DANDA..SHARADA DOUBLE DANDA\n\t{0x111C9, 0x111CC, prExtend},  // Mn   [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK\n\t{0x111CD, 0x111CD, prSTerm},   // Po       SHARADA SUTRA MARK\n\t{0x111CE, 0x111CE, prExtend},  // Mc       SHARADA VOWEL SIGN PRISHTHAMATRA E\n\t{0x111CF, 0x111CF, prExtend},  // Mn       SHARADA SIGN INVERTED CANDRABINDU\n\t{0x111D0, 0x111D9, prNumeric}, // Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE\n\t{0x111DA, 0x111DA, prOLetter}, // Lo       SHARADA EKAM\n\t{0x111DC, 0x111DC, prOLetter}, // Lo       SHARADA HEADSTROKE\n\t{0x111DE, 0x111DF, prSTerm},   // Po   [2] SHARADA SECTION MARK-1..SHARADA SECTION MARK-2\n\t{0x11200, 0x11211, prOLetter}, // Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA\n\t{0x11213, 0x1122B, prOLetter}, // Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA\n\t{0x1122C, 0x1122E, prExtend},  // Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II\n\t{0x1122F, 0x11231, prExtend},  // Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI\n\t{0x11232, 0x11233, prExtend},  // Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU\n\t{0x11234, 0x11234, prExtend},  // Mn       KHOJKI SIGN ANUSVARA\n\t{0x11235, 0x11235, prExtend},  // Mc       KHOJKI SIGN VIRAMA\n\t{0x11236, 0x11237, prExtend},  // Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA\n\t{0x11238, 0x11239, prSTerm},   // Po   [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA\n\t{0x1123B, 0x1123C, prSTerm},   // Po   [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK\n\t{0x1123E, 0x1123E, prExtend},  // Mn       KHOJKI SIGN SUKUN\n\t{0x1123F, 0x11240, prOLetter}, // Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I\n\t{0x11241, 0x11241, prExtend},  // Mn       KHOJKI VOWEL SIGN VOCALIC R\n\t{0x11280, 0x11286, prOLetter}, // Lo   [7] MULTANI LETTER A..MULTANI LETTER GA\n\t{0x11288, 0x11288, prOLetter}, // Lo       MULTANI LETTER GHA\n\t{0x1128A, 0x1128D, prOLetter}, // Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA\n\t{0x1128F, 0x1129D, prOLetter}, // Lo  [15] MULTANI LETTER NYA..MULTANI LETTER BA\n\t{0x1129F, 0x112A8, prOLetter}, // Lo  [10] MULTANI LETTER BHA..MULTANI LETTER RHA\n\t{0x112A9, 0x112A9, prSTerm},   // Po       MULTANI SECTION MARK\n\t{0x112B0, 0x112DE, prOLetter}, // Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA\n\t{0x112DF, 0x112DF, prExtend},  // Mn       KHUDAWADI SIGN ANUSVARA\n\t{0x112E0, 0x112E2, prExtend},  // Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II\n\t{0x112E3, 0x112EA, prExtend},  // Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA\n\t{0x112F0, 0x112F9, prNumeric}, // Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE\n\t{0x11300, 0x11301, prExtend},  // Mn   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU\n\t{0x11302, 0x11303, prExtend},  // Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA\n\t{0x11305, 0x1130C, prOLetter}, // Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L\n\t{0x1130F, 0x11310, prOLetter}, // Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI\n\t{0x11313, 0x11328, prOLetter}, // Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA\n\t{0x1132A, 0x11330, prOLetter}, // Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA\n\t{0x11332, 0x11333, prOLetter}, // Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA\n\t{0x11335, 0x11339, prOLetter}, // Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA\n\t{0x1133B, 0x1133C, prExtend},  // Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA\n\t{0x1133D, 0x1133D, prOLetter}, // Lo       GRANTHA SIGN AVAGRAHA\n\t{0x1133E, 0x1133F, prExtend},  // Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I\n\t{0x11340, 0x11340, prExtend},  // Mn       GRANTHA VOWEL SIGN II\n\t{0x11341, 0x11344, prExtend},  // Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR\n\t{0x11347, 0x11348, prExtend},  // Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI\n\t{0x1134B, 0x1134D, prExtend},  // Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA\n\t{0x11350, 0x11350, prOLetter}, // Lo       GRANTHA OM\n\t{0x11357, 0x11357, prExtend},  // Mc       GRANTHA AU LENGTH MARK\n\t{0x1135D, 0x11361, prOLetter}, // Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL\n\t{0x11362, 0x11363, prExtend},  // Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL\n\t{0x11366, 0x1136C, prExtend},  // Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX\n\t{0x11370, 0x11374, prExtend},  // Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA\n\t{0x11400, 0x11434, prOLetter}, // Lo  [53] NEWA LETTER A..NEWA LETTER HA\n\t{0x11435, 0x11437, prExtend},  // Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II\n\t{0x11438, 0x1143F, prExtend},  // Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI\n\t{0x11440, 0x11441, prExtend},  // Mc   [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU\n\t{0x11442, 0x11444, prExtend},  // Mn   [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA\n\t{0x11445, 0x11445, prExtend},  // Mc       NEWA SIGN VISARGA\n\t{0x11446, 0x11446, prExtend},  // Mn       NEWA SIGN NUKTA\n\t{0x11447, 0x1144A, prOLetter}, // Lo   [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI\n\t{0x1144B, 0x1144C, prSTerm},   // Po   [2] NEWA DANDA..NEWA DOUBLE DANDA\n\t{0x11450, 0x11459, prNumeric}, // Nd  [10] NEWA DIGIT ZERO..NEWA DIGIT NINE\n\t{0x1145E, 0x1145E, prExtend},  // Mn       NEWA SANDHI MARK\n\t{0x1145F, 0x11461, prOLetter}, // Lo   [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA\n\t{0x11480, 0x114AF, prOLetter}, // Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA\n\t{0x114B0, 0x114B2, prExtend},  // Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II\n\t{0x114B3, 0x114B8, prExtend},  // Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL\n\t{0x114B9, 0x114B9, prExtend},  // Mc       TIRHUTA VOWEL SIGN E\n\t{0x114BA, 0x114BA, prExtend},  // Mn       TIRHUTA VOWEL SIGN SHORT E\n\t{0x114BB, 0x114BE, prExtend},  // Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU\n\t{0x114BF, 0x114C0, prExtend},  // Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA\n\t{0x114C1, 0x114C1, prExtend},  // Mc       TIRHUTA SIGN VISARGA\n\t{0x114C2, 0x114C3, prExtend},  // Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA\n\t{0x114C4, 0x114C5, prOLetter}, // Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG\n\t{0x114C7, 0x114C7, prOLetter}, // Lo       TIRHUTA OM\n\t{0x114D0, 0x114D9, prNumeric}, // Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE\n\t{0x11580, 0x115AE, prOLetter}, // Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA\n\t{0x115AF, 0x115B1, prExtend},  // Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II\n\t{0x115B2, 0x115B5, prExtend},  // Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR\n\t{0x115B8, 0x115BB, prExtend},  // Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU\n\t{0x115BC, 0x115BD, prExtend},  // Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA\n\t{0x115BE, 0x115BE, prExtend},  // Mc       SIDDHAM SIGN VISARGA\n\t{0x115BF, 0x115C0, prExtend},  // Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA\n\t{0x115C2, 0x115C3, prSTerm},   // Po   [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA\n\t{0x115C9, 0x115D7, prSTerm},   // Po  [15] SIDDHAM END OF TEXT MARK..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES\n\t{0x115D8, 0x115DB, prOLetter}, // Lo   [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U\n\t{0x115DC, 0x115DD, prExtend},  // Mn   [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU\n\t{0x11600, 0x1162F, prOLetter}, // Lo  [48] MODI LETTER A..MODI LETTER LLA\n\t{0x11630, 0x11632, prExtend},  // Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II\n\t{0x11633, 0x1163A, prExtend},  // Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI\n\t{0x1163B, 0x1163C, prExtend},  // Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU\n\t{0x1163D, 0x1163D, prExtend},  // Mn       MODI SIGN ANUSVARA\n\t{0x1163E, 0x1163E, prExtend},  // Mc       MODI SIGN VISARGA\n\t{0x1163F, 0x11640, prExtend},  // Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA\n\t{0x11641, 0x11642, prSTerm},   // Po   [2] MODI DANDA..MODI DOUBLE DANDA\n\t{0x11644, 0x11644, prOLetter}, // Lo       MODI SIGN HUVA\n\t{0x11650, 0x11659, prNumeric}, // Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE\n\t{0x11680, 0x116AA, prOLetter}, // Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA\n\t{0x116AB, 0x116AB, prExtend},  // Mn       TAKRI SIGN ANUSVARA\n\t{0x116AC, 0x116AC, prExtend},  // Mc       TAKRI SIGN VISARGA\n\t{0x116AD, 0x116AD, prExtend},  // Mn       TAKRI VOWEL SIGN AA\n\t{0x116AE, 0x116AF, prExtend},  // Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II\n\t{0x116B0, 0x116B5, prExtend},  // Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU\n\t{0x116B6, 0x116B6, prExtend},  // Mc       TAKRI SIGN VIRAMA\n\t{0x116B7, 0x116B7, prExtend},  // Mn       TAKRI SIGN NUKTA\n\t{0x116B8, 0x116B8, prOLetter}, // Lo       TAKRI LETTER ARCHAIC KHA\n\t{0x116C0, 0x116C9, prNumeric}, // Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE\n\t{0x11700, 0x1171A, prOLetter}, // Lo  [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA\n\t{0x1171D, 0x1171F, prExtend},  // Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA\n\t{0x11720, 0x11721, prExtend},  // Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA\n\t{0x11722, 0x11725, prExtend},  // Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU\n\t{0x11726, 0x11726, prExtend},  // Mc       AHOM VOWEL SIGN E\n\t{0x11727, 0x1172B, prExtend},  // Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER\n\t{0x11730, 0x11739, prNumeric}, // Nd  [10] AHOM DIGIT ZERO..AHOM DIGIT NINE\n\t{0x1173C, 0x1173E, prSTerm},   // Po   [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI\n\t{0x11740, 0x11746, prOLetter}, // Lo   [7] AHOM LETTER CA..AHOM LETTER LLA\n\t{0x11800, 0x1182B, prOLetter}, // Lo  [44] DOGRA LETTER A..DOGRA LETTER RRA\n\t{0x1182C, 0x1182E, prExtend},  // Mc   [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II\n\t{0x1182F, 0x11837, prExtend},  // Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA\n\t{0x11838, 0x11838, prExtend},  // Mc       DOGRA SIGN VISARGA\n\t{0x11839, 0x1183A, prExtend},  // Mn   [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA\n\t{0x118A0, 0x118BF, prUpper},   // L&  [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO\n\t{0x118C0, 0x118DF, prLower},   // L&  [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO\n\t{0x118E0, 0x118E9, prNumeric}, // Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE\n\t{0x118FF, 0x11906, prOLetter}, // Lo   [8] WARANG CITI OM..DIVES AKURU LETTER E\n\t{0x11909, 0x11909, prOLetter}, // Lo       DIVES AKURU LETTER O\n\t{0x1190C, 0x11913, prOLetter}, // Lo   [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA\n\t{0x11915, 0x11916, prOLetter}, // Lo   [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA\n\t{0x11918, 0x1192F, prOLetter}, // Lo  [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA\n\t{0x11930, 0x11935, prExtend},  // Mc   [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E\n\t{0x11937, 0x11938, prExtend},  // Mc   [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O\n\t{0x1193B, 0x1193C, prExtend},  // Mn   [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU\n\t{0x1193D, 0x1193D, prExtend},  // Mc       DIVES AKURU SIGN HALANTA\n\t{0x1193E, 0x1193E, prExtend},  // Mn       DIVES AKURU VIRAMA\n\t{0x1193F, 0x1193F, prOLetter}, // Lo       DIVES AKURU PREFIXED NASAL SIGN\n\t{0x11940, 0x11940, prExtend},  // Mc       DIVES AKURU MEDIAL YA\n\t{0x11941, 0x11941, prOLetter}, // Lo       DIVES AKURU INITIAL RA\n\t{0x11942, 0x11942, prExtend},  // Mc       DIVES AKURU MEDIAL RA\n\t{0x11943, 0x11943, prExtend},  // Mn       DIVES AKURU SIGN NUKTA\n\t{0x11944, 0x11944, prSTerm},   // Po       DIVES AKURU DOUBLE DANDA\n\t{0x11946, 0x11946, prSTerm},   // Po       DIVES AKURU END OF TEXT MARK\n\t{0x11950, 0x11959, prNumeric}, // Nd  [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE\n\t{0x119A0, 0x119A7, prOLetter}, // Lo   [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR\n\t{0x119AA, 0x119D0, prOLetter}, // Lo  [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA\n\t{0x119D1, 0x119D3, prExtend},  // Mc   [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II\n\t{0x119D4, 0x119D7, prExtend},  // Mn   [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR\n\t{0x119DA, 0x119DB, prExtend},  // Mn   [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI\n\t{0x119DC, 0x119DF, prExtend},  // Mc   [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA\n\t{0x119E0, 0x119E0, prExtend},  // Mn       NANDINAGARI SIGN VIRAMA\n\t{0x119E1, 0x119E1, prOLetter}, // Lo       NANDINAGARI SIGN AVAGRAHA\n\t{0x119E3, 0x119E3, prOLetter}, // Lo       NANDINAGARI HEADSTROKE\n\t{0x119E4, 0x119E4, prExtend},  // Mc       NANDINAGARI VOWEL SIGN PRISHTHAMATRA E\n\t{0x11A00, 0x11A00, prOLetter}, // Lo       ZANABAZAR SQUARE LETTER A\n\t{0x11A01, 0x11A0A, prExtend},  // Mn  [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK\n\t{0x11A0B, 0x11A32, prOLetter}, // Lo  [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA\n\t{0x11A33, 0x11A38, prExtend},  // Mn   [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA\n\t{0x11A39, 0x11A39, prExtend},  // Mc       ZANABAZAR SQUARE SIGN VISARGA\n\t{0x11A3A, 0x11A3A, prOLetter}, // Lo       ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA\n\t{0x11A3B, 0x11A3E, prExtend},  // Mn   [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA\n\t{0x11A42, 0x11A43, prSTerm},   // Po   [2] ZANABAZAR SQUARE MARK SHAD..ZANABAZAR SQUARE MARK DOUBLE SHAD\n\t{0x11A47, 0x11A47, prExtend},  // Mn       ZANABAZAR SQUARE SUBJOINER\n\t{0x11A50, 0x11A50, prOLetter}, // Lo       SOYOMBO LETTER A\n\t{0x11A51, 0x11A56, prExtend},  // Mn   [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE\n\t{0x11A57, 0x11A58, prExtend},  // Mc   [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU\n\t{0x11A59, 0x11A5B, prExtend},  // Mn   [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK\n\t{0x11A5C, 0x11A89, prOLetter}, // Lo  [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA\n\t{0x11A8A, 0x11A96, prExtend},  // Mn  [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA\n\t{0x11A97, 0x11A97, prExtend},  // Mc       SOYOMBO SIGN VISARGA\n\t{0x11A98, 0x11A99, prExtend},  // Mn   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER\n\t{0x11A9B, 0x11A9C, prSTerm},   // Po   [2] SOYOMBO MARK SHAD..SOYOMBO MARK DOUBLE SHAD\n\t{0x11A9D, 0x11A9D, prOLetter}, // Lo       SOYOMBO MARK PLUTA\n\t{0x11AB0, 0x11AF8, prOLetter}, // Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL\n\t{0x11C00, 0x11C08, prOLetter}, // Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L\n\t{0x11C0A, 0x11C2E, prOLetter}, // Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA\n\t{0x11C2F, 0x11C2F, prExtend},  // Mc       BHAIKSUKI VOWEL SIGN AA\n\t{0x11C30, 0x11C36, prExtend},  // Mn   [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L\n\t{0x11C38, 0x11C3D, prExtend},  // Mn   [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA\n\t{0x11C3E, 0x11C3E, prExtend},  // Mc       BHAIKSUKI SIGN VISARGA\n\t{0x11C3F, 0x11C3F, prExtend},  // Mn       BHAIKSUKI SIGN VIRAMA\n\t{0x11C40, 0x11C40, prOLetter}, // Lo       BHAIKSUKI SIGN AVAGRAHA\n\t{0x11C41, 0x11C42, prSTerm},   // Po   [2] BHAIKSUKI DANDA..BHAIKSUKI DOUBLE DANDA\n\t{0x11C50, 0x11C59, prNumeric}, // Nd  [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE\n\t{0x11C72, 0x11C8F, prOLetter}, // Lo  [30] MARCHEN LETTER KA..MARCHEN LETTER A\n\t{0x11C92, 0x11CA7, prExtend},  // Mn  [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA\n\t{0x11CA9, 0x11CA9, prExtend},  // Mc       MARCHEN SUBJOINED LETTER YA\n\t{0x11CAA, 0x11CB0, prExtend},  // Mn   [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA\n\t{0x11CB1, 0x11CB1, prExtend},  // Mc       MARCHEN VOWEL SIGN I\n\t{0x11CB2, 0x11CB3, prExtend},  // Mn   [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E\n\t{0x11CB4, 0x11CB4, prExtend},  // Mc       MARCHEN VOWEL SIGN O\n\t{0x11CB5, 0x11CB6, prExtend},  // Mn   [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU\n\t{0x11D00, 0x11D06, prOLetter}, // Lo   [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E\n\t{0x11D08, 0x11D09, prOLetter}, // Lo   [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O\n\t{0x11D0B, 0x11D30, prOLetter}, // Lo  [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA\n\t{0x11D31, 0x11D36, prExtend},  // Mn   [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R\n\t{0x11D3A, 0x11D3A, prExtend},  // Mn       MASARAM GONDI VOWEL SIGN E\n\t{0x11D3C, 0x11D3D, prExtend},  // Mn   [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O\n\t{0x11D3F, 0x11D45, prExtend},  // Mn   [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA\n\t{0x11D46, 0x11D46, prOLetter}, // Lo       MASARAM GONDI REPHA\n\t{0x11D47, 0x11D47, prExtend},  // Mn       MASARAM GONDI RA-KARA\n\t{0x11D50, 0x11D59, prNumeric}, // Nd  [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE\n\t{0x11D60, 0x11D65, prOLetter}, // Lo   [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU\n\t{0x11D67, 0x11D68, prOLetter}, // Lo   [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI\n\t{0x11D6A, 0x11D89, prOLetter}, // Lo  [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA\n\t{0x11D8A, 0x11D8E, prExtend},  // Mc   [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU\n\t{0x11D90, 0x11D91, prExtend},  // Mn   [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI\n\t{0x11D93, 0x11D94, prExtend},  // Mc   [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU\n\t{0x11D95, 0x11D95, prExtend},  // Mn       GUNJALA GONDI SIGN ANUSVARA\n\t{0x11D96, 0x11D96, prExtend},  // Mc       GUNJALA GONDI SIGN VISARGA\n\t{0x11D97, 0x11D97, prExtend},  // Mn       GUNJALA GONDI VIRAMA\n\t{0x11D98, 0x11D98, prOLetter}, // Lo       GUNJALA GONDI OM\n\t{0x11DA0, 0x11DA9, prNumeric}, // Nd  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE\n\t{0x11EE0, 0x11EF2, prOLetter}, // Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA\n\t{0x11EF3, 0x11EF4, prExtend},  // Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U\n\t{0x11EF5, 0x11EF6, prExtend},  // Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O\n\t{0x11EF7, 0x11EF8, prSTerm},   // Po   [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION\n\t{0x11F00, 0x11F01, prExtend},  // Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA\n\t{0x11F02, 0x11F02, prOLetter}, // Lo       KAWI SIGN REPHA\n\t{0x11F03, 0x11F03, prExtend},  // Mc       KAWI SIGN VISARGA\n\t{0x11F04, 0x11F10, prOLetter}, // Lo  [13] KAWI LETTER A..KAWI LETTER O\n\t{0x11F12, 0x11F33, prOLetter}, // Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA\n\t{0x11F34, 0x11F35, prExtend},  // Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA\n\t{0x11F36, 0x11F3A, prExtend},  // Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R\n\t{0x11F3E, 0x11F3F, prExtend},  // Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI\n\t{0x11F40, 0x11F40, prExtend},  // Mn       KAWI VOWEL SIGN EU\n\t{0x11F41, 0x11F41, prExtend},  // Mc       KAWI SIGN KILLER\n\t{0x11F42, 0x11F42, prExtend},  // Mn       KAWI CONJOINER\n\t{0x11F43, 0x11F44, prSTerm},   // Po   [2] KAWI DANDA..KAWI DOUBLE DANDA\n\t{0x11F50, 0x11F59, prNumeric}, // Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE\n\t{0x11FB0, 0x11FB0, prOLetter}, // Lo       LISU LETTER YHA\n\t{0x12000, 0x12399, prOLetter}, // Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U\n\t{0x12400, 0x1246E, prOLetter}, // Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM\n\t{0x12480, 0x12543, prOLetter}, // Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU\n\t{0x12F90, 0x12FF0, prOLetter}, // Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114\n\t{0x13000, 0x1342F, prOLetter}, // Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D\n\t{0x13430, 0x1343F, prFormat},  // Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE\n\t{0x13440, 0x13440, prExtend},  // Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY\n\t{0x13441, 0x13446, prOLetter}, // Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN\n\t{0x13447, 0x13455, prExtend},  // Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED\n\t{0x14400, 0x14646, prOLetter}, // Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530\n\t{0x16800, 0x16A38, prOLetter}, // Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ\n\t{0x16A40, 0x16A5E, prOLetter}, // Lo  [31] MRO LETTER TA..MRO LETTER TEK\n\t{0x16A60, 0x16A69, prNumeric}, // Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE\n\t{0x16A6E, 0x16A6F, prSTerm},   // Po   [2] MRO DANDA..MRO DOUBLE DANDA\n\t{0x16A70, 0x16ABE, prOLetter}, // Lo  [79] TANGSA LETTER OZ..TANGSA LETTER ZA\n\t{0x16AC0, 0x16AC9, prNumeric}, // Nd  [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE\n\t{0x16AD0, 0x16AED, prOLetter}, // Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I\n\t{0x16AF0, 0x16AF4, prExtend},  // Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE\n\t{0x16AF5, 0x16AF5, prSTerm},   // Po       BASSA VAH FULL STOP\n\t{0x16B00, 0x16B2F, prOLetter}, // Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU\n\t{0x16B30, 0x16B36, prExtend},  // Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM\n\t{0x16B37, 0x16B38, prSTerm},   // Po   [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB\n\t{0x16B40, 0x16B43, prOLetter}, // Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM\n\t{0x16B44, 0x16B44, prSTerm},   // Po       PAHAWH HMONG SIGN XAUS\n\t{0x16B50, 0x16B59, prNumeric}, // Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE\n\t{0x16B63, 0x16B77, prOLetter}, // Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS\n\t{0x16B7D, 0x16B8F, prOLetter}, // Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ\n\t{0x16E40, 0x16E5F, prUpper},   // L&  [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y\n\t{0x16E60, 0x16E7F, prLower},   // L&  [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y\n\t{0x16E98, 0x16E98, prSTerm},   // Po       MEDEFAIDRIN FULL STOP\n\t{0x16F00, 0x16F4A, prOLetter}, // Lo  [75] MIAO LETTER PA..MIAO LETTER RTE\n\t{0x16F4F, 0x16F4F, prExtend},  // Mn       MIAO SIGN CONSONANT MODIFIER BAR\n\t{0x16F50, 0x16F50, prOLetter}, // Lo       MIAO LETTER NASALIZATION\n\t{0x16F51, 0x16F87, prExtend},  // Mc  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI\n\t{0x16F8F, 0x16F92, prExtend},  // Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW\n\t{0x16F93, 0x16F9F, prOLetter}, // Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8\n\t{0x16FE0, 0x16FE1, prOLetter}, // Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK\n\t{0x16FE3, 0x16FE3, prOLetter}, // Lm       OLD CHINESE ITERATION MARK\n\t{0x16FE4, 0x16FE4, prExtend},  // Mn       KHITAN SMALL SCRIPT FILLER\n\t{0x16FF0, 0x16FF1, prExtend},  // Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY\n\t{0x17000, 0x187F7, prOLetter}, // Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7\n\t{0x18800, 0x18CD5, prOLetter}, // Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5\n\t{0x18D00, 0x18D08, prOLetter}, // Lo   [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08\n\t{0x1AFF0, 0x1AFF3, prOLetter}, // Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5\n\t{0x1AFF5, 0x1AFFB, prOLetter}, // Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5\n\t{0x1AFFD, 0x1AFFE, prOLetter}, // Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8\n\t{0x1B000, 0x1B122, prOLetter}, // Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU\n\t{0x1B132, 0x1B132, prOLetter}, // Lo       HIRAGANA LETTER SMALL KO\n\t{0x1B150, 0x1B152, prOLetter}, // Lo   [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO\n\t{0x1B155, 0x1B155, prOLetter}, // Lo       KATAKANA LETTER SMALL KO\n\t{0x1B164, 0x1B167, prOLetter}, // Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N\n\t{0x1B170, 0x1B2FB, prOLetter}, // Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB\n\t{0x1BC00, 0x1BC6A, prOLetter}, // Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M\n\t{0x1BC70, 0x1BC7C, prOLetter}, // Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK\n\t{0x1BC80, 0x1BC88, prOLetter}, // Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL\n\t{0x1BC90, 0x1BC99, prOLetter}, // Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW\n\t{0x1BC9D, 0x1BC9E, prExtend},  // Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK\n\t{0x1BC9F, 0x1BC9F, prSTerm},   // Po       DUPLOYAN PUNCTUATION CHINOOK FULL STOP\n\t{0x1BCA0, 0x1BCA3, prFormat},  // Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP\n\t{0x1CF00, 0x1CF2D, prExtend},  // Mn  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT\n\t{0x1CF30, 0x1CF46, prExtend},  // Mn  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG\n\t{0x1D165, 0x1D166, prExtend},  // Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM\n\t{0x1D167, 0x1D169, prExtend},  // Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3\n\t{0x1D16D, 0x1D172, prExtend},  // Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5\n\t{0x1D173, 0x1D17A, prFormat},  // Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE\n\t{0x1D17B, 0x1D182, prExtend},  // Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE\n\t{0x1D185, 0x1D18B, prExtend},  // Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE\n\t{0x1D1AA, 0x1D1AD, prExtend},  // Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO\n\t{0x1D242, 0x1D244, prExtend},  // Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME\n\t{0x1D400, 0x1D419, prUpper},   // L&  [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z\n\t{0x1D41A, 0x1D433, prLower},   // L&  [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z\n\t{0x1D434, 0x1D44D, prUpper},   // L&  [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z\n\t{0x1D44E, 0x1D454, prLower},   // L&   [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G\n\t{0x1D456, 0x1D467, prLower},   // L&  [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z\n\t{0x1D468, 0x1D481, prUpper},   // L&  [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z\n\t{0x1D482, 0x1D49B, prLower},   // L&  [26] MATHEMATICAL BOLD ITALIC SMALL A..MATHEMATICAL BOLD ITALIC SMALL Z\n\t{0x1D49C, 0x1D49C, prUpper},   // L&       MATHEMATICAL SCRIPT CAPITAL A\n\t{0x1D49E, 0x1D49F, prUpper},   // L&   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D\n\t{0x1D4A2, 0x1D4A2, prUpper},   // L&       MATHEMATICAL SCRIPT CAPITAL G\n\t{0x1D4A5, 0x1D4A6, prUpper},   // L&   [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K\n\t{0x1D4A9, 0x1D4AC, prUpper},   // L&   [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q\n\t{0x1D4AE, 0x1D4B5, prUpper},   // L&   [8] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT CAPITAL Z\n\t{0x1D4B6, 0x1D4B9, prLower},   // L&   [4] MATHEMATICAL SCRIPT SMALL A..MATHEMATICAL SCRIPT SMALL D\n\t{0x1D4BB, 0x1D4BB, prLower},   // L&       MATHEMATICAL SCRIPT SMALL F\n\t{0x1D4BD, 0x1D4C3, prLower},   // L&   [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N\n\t{0x1D4C5, 0x1D4CF, prLower},   // L&  [11] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL SCRIPT SMALL Z\n\t{0x1D4D0, 0x1D4E9, prUpper},   // L&  [26] MATHEMATICAL BOLD SCRIPT CAPITAL A..MATHEMATICAL BOLD SCRIPT CAPITAL Z\n\t{0x1D4EA, 0x1D503, prLower},   // L&  [26] MATHEMATICAL BOLD SCRIPT SMALL A..MATHEMATICAL BOLD SCRIPT SMALL Z\n\t{0x1D504, 0x1D505, prUpper},   // L&   [2] MATHEMATICAL FRAKTUR CAPITAL A..MATHEMATICAL FRAKTUR CAPITAL B\n\t{0x1D507, 0x1D50A, prUpper},   // L&   [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G\n\t{0x1D50D, 0x1D514, prUpper},   // L&   [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q\n\t{0x1D516, 0x1D51C, prUpper},   // L&   [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y\n\t{0x1D51E, 0x1D537, prLower},   // L&  [26] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL FRAKTUR SMALL Z\n\t{0x1D538, 0x1D539, prUpper},   // L&   [2] MATHEMATICAL DOUBLE-STRUCK CAPITAL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B\n\t{0x1D53B, 0x1D53E, prUpper},   // L&   [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G\n\t{0x1D540, 0x1D544, prUpper},   // L&   [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M\n\t{0x1D546, 0x1D546, prUpper},   // L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL O\n\t{0x1D54A, 0x1D550, prUpper},   // L&   [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y\n\t{0x1D552, 0x1D56B, prLower},   // L&  [26] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL DOUBLE-STRUCK SMALL Z\n\t{0x1D56C, 0x1D585, prUpper},   // L&  [26] MATHEMATICAL BOLD FRAKTUR CAPITAL A..MATHEMATICAL BOLD FRAKTUR CAPITAL Z\n\t{0x1D586, 0x1D59F, prLower},   // L&  [26] MATHEMATICAL BOLD FRAKTUR SMALL A..MATHEMATICAL BOLD FRAKTUR SMALL Z\n\t{0x1D5A0, 0x1D5B9, prUpper},   // L&  [26] MATHEMATICAL SANS-SERIF CAPITAL A..MATHEMATICAL SANS-SERIF CAPITAL Z\n\t{0x1D5BA, 0x1D5D3, prLower},   // L&  [26] MATHEMATICAL SANS-SERIF SMALL A..MATHEMATICAL SANS-SERIF SMALL Z\n\t{0x1D5D4, 0x1D5ED, prUpper},   // L&  [26] MATHEMATICAL SANS-SERIF BOLD CAPITAL A..MATHEMATICAL SANS-SERIF BOLD CAPITAL Z\n\t{0x1D5EE, 0x1D607, prLower},   // L&  [26] MATHEMATICAL SANS-SERIF BOLD SMALL A..MATHEMATICAL SANS-SERIF BOLD SMALL Z\n\t{0x1D608, 0x1D621, prUpper},   // L&  [26] MATHEMATICAL SANS-SERIF ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z\n\t{0x1D622, 0x1D63B, prLower},   // L&  [26] MATHEMATICAL SANS-SERIF ITALIC SMALL A..MATHEMATICAL SANS-SERIF ITALIC SMALL Z\n\t{0x1D63C, 0x1D655, prUpper},   // L&  [26] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z\n\t{0x1D656, 0x1D66F, prLower},   // L&  [26] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z\n\t{0x1D670, 0x1D689, prUpper},   // L&  [26] MATHEMATICAL MONOSPACE CAPITAL A..MATHEMATICAL MONOSPACE CAPITAL Z\n\t{0x1D68A, 0x1D6A5, prLower},   // L&  [28] MATHEMATICAL MONOSPACE SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J\n\t{0x1D6A8, 0x1D6C0, prUpper},   // L&  [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA\n\t{0x1D6C2, 0x1D6DA, prLower},   // L&  [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA\n\t{0x1D6DC, 0x1D6E1, prLower},   // L&   [6] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL BOLD PI SYMBOL\n\t{0x1D6E2, 0x1D6FA, prUpper},   // L&  [25] MATHEMATICAL ITALIC CAPITAL ALPHA..MATHEMATICAL ITALIC CAPITAL OMEGA\n\t{0x1D6FC, 0x1D714, prLower},   // L&  [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA\n\t{0x1D716, 0x1D71B, prLower},   // L&   [6] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL ITALIC PI SYMBOL\n\t{0x1D71C, 0x1D734, prUpper},   // L&  [25] MATHEMATICAL BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA\n\t{0x1D736, 0x1D74E, prLower},   // L&  [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA\n\t{0x1D750, 0x1D755, prLower},   // L&   [6] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC PI SYMBOL\n\t{0x1D756, 0x1D76E, prUpper},   // L&  [25] MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA\n\t{0x1D770, 0x1D788, prLower},   // L&  [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA\n\t{0x1D78A, 0x1D78F, prLower},   // L&   [6] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD PI SYMBOL\n\t{0x1D790, 0x1D7A8, prUpper},   // L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA\n\t{0x1D7AA, 0x1D7C2, prLower},   // L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA\n\t{0x1D7C4, 0x1D7C9, prLower},   // L&   [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL\n\t{0x1D7CA, 0x1D7CA, prUpper},   // L&       MATHEMATICAL BOLD CAPITAL DIGAMMA\n\t{0x1D7CB, 0x1D7CB, prLower},   // L&       MATHEMATICAL BOLD SMALL DIGAMMA\n\t{0x1D7CE, 0x1D7FF, prNumeric}, // Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE\n\t{0x1DA00, 0x1DA36, prExtend},  // Mn  [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN\n\t{0x1DA3B, 0x1DA6C, prExtend},  // Mn  [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT\n\t{0x1DA75, 0x1DA75, prExtend},  // Mn       SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS\n\t{0x1DA84, 0x1DA84, prExtend},  // Mn       SIGNWRITING LOCATION HEAD NECK\n\t{0x1DA88, 0x1DA88, prSTerm},   // Po       SIGNWRITING FULL STOP\n\t{0x1DA9B, 0x1DA9F, prExtend},  // Mn   [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6\n\t{0x1DAA1, 0x1DAAF, prExtend},  // Mn  [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16\n\t{0x1DF00, 0x1DF09, prLower},   // L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK\n\t{0x1DF0A, 0x1DF0A, prOLetter}, // Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK\n\t{0x1DF0B, 0x1DF1E, prLower},   // L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL\n\t{0x1DF25, 0x1DF2A, prLower},   // L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK\n\t{0x1E000, 0x1E006, prExtend},  // Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE\n\t{0x1E008, 0x1E018, prExtend},  // Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU\n\t{0x1E01B, 0x1E021, prExtend},  // Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI\n\t{0x1E023, 0x1E024, prExtend},  // Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS\n\t{0x1E026, 0x1E02A, prExtend},  // Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA\n\t{0x1E030, 0x1E06D, prLower},   // Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE\n\t{0x1E08F, 0x1E08F, prExtend},  // Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I\n\t{0x1E100, 0x1E12C, prOLetter}, // Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W\n\t{0x1E130, 0x1E136, prExtend},  // Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D\n\t{0x1E137, 0x1E13D, prOLetter}, // Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER\n\t{0x1E140, 0x1E149, prNumeric}, // Nd  [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE\n\t{0x1E14E, 0x1E14E, prOLetter}, // Lo       NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ\n\t{0x1E290, 0x1E2AD, prOLetter}, // Lo  [30] TOTO LETTER PA..TOTO LETTER A\n\t{0x1E2AE, 0x1E2AE, prExtend},  // Mn       TOTO SIGN RISING TONE\n\t{0x1E2C0, 0x1E2EB, prOLetter}, // Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH\n\t{0x1E2EC, 0x1E2EF, prExtend},  // Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI\n\t{0x1E2F0, 0x1E2F9, prNumeric}, // Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE\n\t{0x1E4D0, 0x1E4EA, prOLetter}, // Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL\n\t{0x1E4EB, 0x1E4EB, prOLetter}, // Lm       NAG MUNDARI SIGN OJOD\n\t{0x1E4EC, 0x1E4EF, prExtend},  // Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH\n\t{0x1E4F0, 0x1E4F9, prNumeric}, // Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE\n\t{0x1E7E0, 0x1E7E6, prOLetter}, // Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO\n\t{0x1E7E8, 0x1E7EB, prOLetter}, // Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE\n\t{0x1E7ED, 0x1E7EE, prOLetter}, // Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE\n\t{0x1E7F0, 0x1E7FE, prOLetter}, // Lo  [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE\n\t{0x1E800, 0x1E8C4, prOLetter}, // Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON\n\t{0x1E8D0, 0x1E8D6, prExtend},  // Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS\n\t{0x1E900, 0x1E921, prUpper},   // L&  [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA\n\t{0x1E922, 0x1E943, prLower},   // L&  [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA\n\t{0x1E944, 0x1E94A, prExtend},  // Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA\n\t{0x1E94B, 0x1E94B, prOLetter}, // Lm       ADLAM NASALIZATION MARK\n\t{0x1E950, 0x1E959, prNumeric}, // Nd  [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE\n\t{0x1EE00, 0x1EE03, prOLetter}, // Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL\n\t{0x1EE05, 0x1EE1F, prOLetter}, // Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF\n\t{0x1EE21, 0x1EE22, prOLetter}, // Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM\n\t{0x1EE24, 0x1EE24, prOLetter}, // Lo       ARABIC MATHEMATICAL INITIAL HEH\n\t{0x1EE27, 0x1EE27, prOLetter}, // Lo       ARABIC MATHEMATICAL INITIAL HAH\n\t{0x1EE29, 0x1EE32, prOLetter}, // Lo  [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF\n\t{0x1EE34, 0x1EE37, prOLetter}, // Lo   [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH\n\t{0x1EE39, 0x1EE39, prOLetter}, // Lo       ARABIC MATHEMATICAL INITIAL DAD\n\t{0x1EE3B, 0x1EE3B, prOLetter}, // Lo       ARABIC MATHEMATICAL INITIAL GHAIN\n\t{0x1EE42, 0x1EE42, prOLetter}, // Lo       ARABIC MATHEMATICAL TAILED JEEM\n\t{0x1EE47, 0x1EE47, prOLetter}, // Lo       ARABIC MATHEMATICAL TAILED HAH\n\t{0x1EE49, 0x1EE49, prOLetter}, // Lo       ARABIC MATHEMATICAL TAILED YEH\n\t{0x1EE4B, 0x1EE4B, prOLetter}, // Lo       ARABIC MATHEMATICAL TAILED LAM\n\t{0x1EE4D, 0x1EE4F, prOLetter}, // Lo   [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN\n\t{0x1EE51, 0x1EE52, prOLetter}, // Lo   [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF\n\t{0x1EE54, 0x1EE54, prOLetter}, // Lo       ARABIC MATHEMATICAL TAILED SHEEN\n\t{0x1EE57, 0x1EE57, prOLetter}, // Lo       ARABIC MATHEMATICAL TAILED KHAH\n\t{0x1EE59, 0x1EE59, prOLetter}, // Lo       ARABIC MATHEMATICAL TAILED DAD\n\t{0x1EE5B, 0x1EE5B, prOLetter}, // Lo       ARABIC MATHEMATICAL TAILED GHAIN\n\t{0x1EE5D, 0x1EE5D, prOLetter}, // Lo       ARABIC MATHEMATICAL TAILED DOTLESS NOON\n\t{0x1EE5F, 0x1EE5F, prOLetter}, // Lo       ARABIC MATHEMATICAL TAILED DOTLESS QAF\n\t{0x1EE61, 0x1EE62, prOLetter}, // Lo   [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM\n\t{0x1EE64, 0x1EE64, prOLetter}, // Lo       ARABIC MATHEMATICAL STRETCHED HEH\n\t{0x1EE67, 0x1EE6A, prOLetter}, // Lo   [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF\n\t{0x1EE6C, 0x1EE72, prOLetter}, // Lo   [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF\n\t{0x1EE74, 0x1EE77, prOLetter}, // Lo   [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH\n\t{0x1EE79, 0x1EE7C, prOLetter}, // Lo   [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH\n\t{0x1EE7E, 0x1EE7E, prOLetter}, // Lo       ARABIC MATHEMATICAL STRETCHED DOTLESS FEH\n\t{0x1EE80, 0x1EE89, prOLetter}, // Lo  [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH\n\t{0x1EE8B, 0x1EE9B, prOLetter}, // Lo  [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN\n\t{0x1EEA1, 0x1EEA3, prOLetter}, // Lo   [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL\n\t{0x1EEA5, 0x1EEA9, prOLetter}, // Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH\n\t{0x1EEAB, 0x1EEBB, prOLetter}, // Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN\n\t{0x1F130, 0x1F149, prUpper},   // So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z\n\t{0x1F150, 0x1F169, prUpper},   // So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z\n\t{0x1F170, 0x1F189, prUpper},   // So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z\n\t{0x1F676, 0x1F678, prClose},   // So   [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT\n\t{0x1FBF0, 0x1FBF9, prNumeric}, // Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE\n\t{0x20000, 0x2A6DF, prOLetter}, // Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF\n\t{0x2A700, 0x2B739, prOLetter}, // Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739\n\t{0x2B740, 0x2B81D, prOLetter}, // Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D\n\t{0x2B820, 0x2CEA1, prOLetter}, // Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1\n\t{0x2CEB0, 0x2EBE0, prOLetter}, // Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0\n\t{0x2F800, 0x2FA1D, prOLetter}, // Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D\n\t{0x30000, 0x3134A, prOLetter}, // Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A\n\t{0x31350, 0x323AF, prOLetter}, // Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF\n\t{0xE0001, 0xE0001, prFormat},  // Cf       LANGUAGE TAG\n\t{0xE0020, 0xE007F, prExtend},  // Cf  [96] TAG SPACE..CANCEL TAG\n\t{0xE0100, 0xE01EF, prExtend},  // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/sentencerules.go",
    "content": "package uniseg\n\nimport \"unicode/utf8\"\n\n// The states of the sentence break parser.\nconst (\n\tsbAny = iota\n\tsbCR\n\tsbParaSep\n\tsbATerm\n\tsbUpper\n\tsbLower\n\tsbSB7\n\tsbSB8Close\n\tsbSB8Sp\n\tsbSTerm\n\tsbSB8aClose\n\tsbSB8aSp\n)\n\n// sbTransitions implements the sentence break parser's state transitions. It's\n// anologous to [grTransitions], see comments there for details.\n//\n// Unicode version 15.0.0.\nfunc sbTransitions(state, prop int) (newState int, sentenceBreak bool, rule int) {\n\tswitch uint64(state) | uint64(prop)<<32 {\n\t// SB3.\n\tcase sbAny | prCR<<32:\n\t\treturn sbCR, false, 9990\n\tcase sbCR | prLF<<32:\n\t\treturn sbParaSep, false, 30\n\n\t// SB4.\n\tcase sbAny | prSep<<32:\n\t\treturn sbParaSep, false, 9990\n\tcase sbAny | prLF<<32:\n\t\treturn sbParaSep, false, 9990\n\tcase sbParaSep | prAny<<32:\n\t\treturn sbAny, true, 40\n\tcase sbCR | prAny<<32:\n\t\treturn sbAny, true, 40\n\n\t// SB6.\n\tcase sbAny | prATerm<<32:\n\t\treturn sbATerm, false, 9990\n\tcase sbATerm | prNumeric<<32:\n\t\treturn sbAny, false, 60\n\tcase sbSB7 | prNumeric<<32:\n\t\treturn sbAny, false, 60 // Because ATerm also appears in SB7.\n\n\t// SB7.\n\tcase sbAny | prUpper<<32:\n\t\treturn sbUpper, false, 9990\n\tcase sbAny | prLower<<32:\n\t\treturn sbLower, false, 9990\n\tcase sbUpper | prATerm<<32:\n\t\treturn sbSB7, false, 70\n\tcase sbLower | prATerm<<32:\n\t\treturn sbSB7, false, 70\n\tcase sbSB7 | prUpper<<32:\n\t\treturn sbUpper, false, 70\n\n\t// SB8a.\n\tcase sbAny | prSTerm<<32:\n\t\treturn sbSTerm, false, 9990\n\tcase sbATerm | prSContinue<<32:\n\t\treturn sbAny, false, 81\n\tcase sbATerm | prATerm<<32:\n\t\treturn sbATerm, false, 81\n\tcase sbATerm | prSTerm<<32:\n\t\treturn sbSTerm, false, 81\n\tcase sbSB7 | prSContinue<<32:\n\t\treturn sbAny, false, 81\n\tcase sbSB7 | prATerm<<32:\n\t\treturn sbATerm, false, 81\n\tcase sbSB7 | prSTerm<<32:\n\t\treturn sbSTerm, false, 81\n\tcase sbSB8Close | prSContinue<<32:\n\t\treturn sbAny, false, 81\n\tcase sbSB8Close | prATerm<<32:\n\t\treturn sbATerm, false, 81\n\tcase sbSB8Close | prSTerm<<32:\n\t\treturn sbSTerm, false, 81\n\tcase sbSB8Sp | prSContinue<<32:\n\t\treturn sbAny, false, 81\n\tcase sbSB8Sp | prATerm<<32:\n\t\treturn sbATerm, false, 81\n\tcase sbSB8Sp | prSTerm<<32:\n\t\treturn sbSTerm, false, 81\n\tcase sbSTerm | prSContinue<<32:\n\t\treturn sbAny, false, 81\n\tcase sbSTerm | prATerm<<32:\n\t\treturn sbATerm, false, 81\n\tcase sbSTerm | prSTerm<<32:\n\t\treturn sbSTerm, false, 81\n\tcase sbSB8aClose | prSContinue<<32:\n\t\treturn sbAny, false, 81\n\tcase sbSB8aClose | prATerm<<32:\n\t\treturn sbATerm, false, 81\n\tcase sbSB8aClose | prSTerm<<32:\n\t\treturn sbSTerm, false, 81\n\tcase sbSB8aSp | prSContinue<<32:\n\t\treturn sbAny, false, 81\n\tcase sbSB8aSp | prATerm<<32:\n\t\treturn sbATerm, false, 81\n\tcase sbSB8aSp | prSTerm<<32:\n\t\treturn sbSTerm, false, 81\n\n\t// SB9.\n\tcase sbATerm | prClose<<32:\n\t\treturn sbSB8Close, false, 90\n\tcase sbSB7 | prClose<<32:\n\t\treturn sbSB8Close, false, 90\n\tcase sbSB8Close | prClose<<32:\n\t\treturn sbSB8Close, false, 90\n\tcase sbATerm | prSp<<32:\n\t\treturn sbSB8Sp, false, 90\n\tcase sbSB7 | prSp<<32:\n\t\treturn sbSB8Sp, false, 90\n\tcase sbSB8Close | prSp<<32:\n\t\treturn sbSB8Sp, false, 90\n\tcase sbSTerm | prClose<<32:\n\t\treturn sbSB8aClose, false, 90\n\tcase sbSB8aClose | prClose<<32:\n\t\treturn sbSB8aClose, false, 90\n\tcase sbSTerm | prSp<<32:\n\t\treturn sbSB8aSp, false, 90\n\tcase sbSB8aClose | prSp<<32:\n\t\treturn sbSB8aSp, false, 90\n\tcase sbATerm | prSep<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbATerm | prCR<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbATerm | prLF<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSB7 | prSep<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSB7 | prCR<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSB7 | prLF<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSB8Close | prSep<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSB8Close | prCR<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSB8Close | prLF<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSTerm | prSep<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSTerm | prCR<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSTerm | prLF<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSB8aClose | prSep<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSB8aClose | prCR<<32:\n\t\treturn sbParaSep, false, 90\n\tcase sbSB8aClose | prLF<<32:\n\t\treturn sbParaSep, false, 90\n\n\t// SB10.\n\tcase sbSB8Sp | prSp<<32:\n\t\treturn sbSB8Sp, false, 100\n\tcase sbSB8aSp | prSp<<32:\n\t\treturn sbSB8aSp, false, 100\n\tcase sbSB8Sp | prSep<<32:\n\t\treturn sbParaSep, false, 100\n\tcase sbSB8Sp | prCR<<32:\n\t\treturn sbParaSep, false, 100\n\tcase sbSB8Sp | prLF<<32:\n\t\treturn sbParaSep, false, 100\n\n\t// SB11.\n\tcase sbATerm | prAny<<32:\n\t\treturn sbAny, true, 110\n\tcase sbSB7 | prAny<<32:\n\t\treturn sbAny, true, 110\n\tcase sbSB8Close | prAny<<32:\n\t\treturn sbAny, true, 110\n\tcase sbSB8Sp | prAny<<32:\n\t\treturn sbAny, true, 110\n\tcase sbSTerm | prAny<<32:\n\t\treturn sbAny, true, 110\n\tcase sbSB8aClose | prAny<<32:\n\t\treturn sbAny, true, 110\n\tcase sbSB8aSp | prAny<<32:\n\t\treturn sbAny, true, 110\n\t// We'll always break after ParaSep due to SB4.\n\n\tdefault:\n\t\treturn -1, false, -1\n\t}\n}\n\n// transitionSentenceBreakState determines the new state of the sentence break\n// parser given the current state and the next code point. It also returns\n// whether a sentence boundary was detected. If more than one code point is\n// needed to determine the new state, the byte slice or the string starting\n// after rune \"r\" can be used (whichever is not nil or empty) for further\n// lookups.\nfunc transitionSentenceBreakState(state int, r rune, b []byte, str string) (newState int, sentenceBreak bool) {\n\t// Determine the property of the next character.\n\tnextProperty := property(sentenceBreakCodePoints, r)\n\n\t// SB5 (Replacing Ignore Rules).\n\tif nextProperty == prExtend || nextProperty == prFormat {\n\t\tif state == sbParaSep || state == sbCR {\n\t\t\treturn sbAny, true // Make sure we don't apply SB5 to SB3 or SB4.\n\t\t}\n\t\tif state < 0 {\n\t\t\treturn sbAny, true // SB1.\n\t\t}\n\t\treturn state, false\n\t}\n\n\t// Find the applicable transition in the table.\n\tvar rule int\n\tnewState, sentenceBreak, rule = sbTransitions(state, nextProperty)\n\tif newState < 0 {\n\t\t// No specific transition found. Try the less specific ones.\n\t\tanyPropState, anyPropProp, anyPropRule := sbTransitions(state, prAny)\n\t\tanyStateState, anyStateProp, anyStateRule := sbTransitions(sbAny, nextProperty)\n\t\tif anyPropState >= 0 && anyStateState >= 0 {\n\t\t\t// Both apply. We'll use a mix (see comments for grTransitions).\n\t\t\tnewState, sentenceBreak, rule = anyStateState, anyStateProp, anyStateRule\n\t\t\tif anyPropRule < anyStateRule {\n\t\t\t\tsentenceBreak, rule = anyPropProp, anyPropRule\n\t\t\t}\n\t\t} else if anyPropState >= 0 {\n\t\t\t// We only have a specific state.\n\t\t\tnewState, sentenceBreak, rule = anyPropState, anyPropProp, anyPropRule\n\t\t\t// This branch will probably never be reached because okAnyState will\n\t\t\t// always be true given the current transition map. But we keep it here\n\t\t\t// for future modifications to the transition map where this may not be\n\t\t\t// true anymore.\n\t\t} else if anyStateState >= 0 {\n\t\t\t// We only have a specific property.\n\t\t\tnewState, sentenceBreak, rule = anyStateState, anyStateProp, anyStateRule\n\t\t} else {\n\t\t\t// No known transition. SB999: Any × Any.\n\t\t\tnewState, sentenceBreak, rule = sbAny, false, 9990\n\t\t}\n\t}\n\n\t// SB8.\n\tif rule > 80 && (state == sbATerm || state == sbSB8Close || state == sbSB8Sp || state == sbSB7) {\n\t\t// Check the right side of the rule.\n\t\tvar length int\n\t\tfor nextProperty != prOLetter &&\n\t\t\tnextProperty != prUpper &&\n\t\t\tnextProperty != prLower &&\n\t\t\tnextProperty != prSep &&\n\t\t\tnextProperty != prCR &&\n\t\t\tnextProperty != prLF &&\n\t\t\tnextProperty != prATerm &&\n\t\t\tnextProperty != prSTerm {\n\t\t\t// Move on to the next rune.\n\t\t\tif b != nil { // Byte slice version.\n\t\t\t\tr, length = utf8.DecodeRune(b)\n\t\t\t\tb = b[length:]\n\t\t\t} else { // String version.\n\t\t\t\tr, length = utf8.DecodeRuneInString(str)\n\t\t\t\tstr = str[length:]\n\t\t\t}\n\t\t\tif r == utf8.RuneError {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tnextProperty = property(sentenceBreakCodePoints, r)\n\t\t}\n\t\tif nextProperty == prLower {\n\t\t\treturn sbLower, false\n\t\t}\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/step.go",
    "content": "package uniseg\n\nimport \"unicode/utf8\"\n\n// The bit masks used to extract boundary information returned by [Step].\nconst (\n\tMaskLine     = 3\n\tMaskWord     = 4\n\tMaskSentence = 8\n)\n\n// The number of bits to shift the boundary information returned by [Step] to\n// obtain the monospace width of the grapheme cluster.\nconst ShiftWidth = 4\n\n// The bit positions by which boundary flags are shifted by the [Step] function.\n// These must correspond to the Mask constants.\nconst (\n\tshiftWord     = 2\n\tshiftSentence = 3\n\t// shiftwWidth is ShiftWidth above. No mask as these are always the remaining bits.\n)\n\n// The bit positions by which states are shifted by the [Step] function. These\n// values must ensure state values defined for each of the boundary algorithms\n// don't overlap (and that they all still fit in a single int). These must\n// correspond to the Mask constants.\nconst (\n\tshiftWordState     = 4\n\tshiftSentenceState = 9\n\tshiftLineState     = 13\n\tshiftPropState     = 21 // No mask as these are always the remaining bits.\n)\n\n// The bit mask used to extract the state returned by the [Step] function, after\n// shifting. These values must correspond to the shift constants.\nconst (\n\tmaskGraphemeState = 0xf\n\tmaskWordState     = 0x1f\n\tmaskSentenceState = 0xf\n\tmaskLineState     = 0xff\n)\n\n// Step returns the first grapheme cluster (user-perceived character) found in\n// the given byte slice. It also returns information about the boundary between\n// that grapheme cluster and the one following it as well as the monospace width\n// of the grapheme cluster. There are three types of boundary information: word\n// boundaries, sentence boundaries, and line breaks. This function is therefore\n// a combination of [FirstGraphemeCluster], [FirstWord], [FirstSentence], and\n// [FirstLineSegment].\n//\n// The \"boundaries\" return value can be evaluated as follows:\n//\n//   - boundaries&MaskWord != 0: The boundary is a word boundary.\n//   - boundaries&MaskWord == 0: The boundary is not a word boundary.\n//   - boundaries&MaskSentence != 0: The boundary is a sentence boundary.\n//   - boundaries&MaskSentence == 0: The boundary is not a sentence boundary.\n//   - boundaries&MaskLine == LineDontBreak: You must not break the line at the\n//     boundary.\n//   - boundaries&MaskLine == LineMustBreak: You must break the line at the\n//     boundary.\n//   - boundaries&MaskLine == LineCanBreak: You may or may not break the line at\n//     the boundary.\n//   - boundaries >> ShiftWidth: The width of the grapheme cluster for most\n//     monospace fonts where a value of 1 represents one character cell.\n//\n// This function can be called continuously to extract all grapheme clusters\n// from a byte slice, as illustrated in the examples below.\n//\n// If you don't know which state to pass, for example when calling the function\n// for the first time, you must pass -1. For consecutive calls, pass the state\n// and rest slice returned by the previous call.\n//\n// The \"rest\" slice is the sub-slice of the original byte slice \"b\" starting\n// after the last byte of the identified grapheme cluster. If the length of the\n// \"rest\" slice is 0, the entire byte slice \"b\" has been processed. The\n// \"cluster\" byte slice is the sub-slice of the input slice containing the\n// first identified grapheme cluster.\n//\n// Given an empty byte slice \"b\", the function returns nil values.\n//\n// While slightly less convenient than using the Graphemes class, this function\n// has much better performance and makes no allocations. It lends itself well to\n// large byte slices.\n//\n// Note that in accordance with [UAX #14 LB3], the final segment will end with\n// a mandatory line break (boundaries&MaskLine == LineMustBreak). You can choose\n// to ignore this by checking if the length of the \"rest\" slice is 0 and calling\n// [HasTrailingLineBreak] or [HasTrailingLineBreakInString] on the last rune.\n//\n// [UAX #14 LB3]: https://www.unicode.org/reports/tr14/#Algorithm\nfunc Step(b []byte, state int) (cluster, rest []byte, boundaries int, newState int) {\n\t// An empty byte slice returns nothing.\n\tif len(b) == 0 {\n\t\treturn\n\t}\n\n\t// Extract the first rune.\n\tr, length := utf8.DecodeRune(b)\n\tif len(b) <= length { // If we're already past the end, there is nothing else to parse.\n\t\tvar prop int\n\t\tif state < 0 {\n\t\t\tprop = propertyGraphemes(r)\n\t\t} else {\n\t\t\tprop = state >> shiftPropState\n\t\t}\n\t\treturn b, nil, LineMustBreak | (1 << shiftWord) | (1 << shiftSentence) | (runeWidth(r, prop) << ShiftWidth), grAny | (wbAny << shiftWordState) | (sbAny << shiftSentenceState) | (lbAny << shiftLineState) | (prop << shiftPropState)\n\t}\n\n\t// If we don't know the state, determine it now.\n\tvar graphemeState, wordState, sentenceState, lineState, firstProp int\n\tremainder := b[length:]\n\tif state < 0 {\n\t\tgraphemeState, firstProp, _ = transitionGraphemeState(state, r)\n\t\twordState, _ = transitionWordBreakState(state, r, remainder, \"\")\n\t\tsentenceState, _ = transitionSentenceBreakState(state, r, remainder, \"\")\n\t\tlineState, _ = transitionLineBreakState(state, r, remainder, \"\")\n\t} else {\n\t\tgraphemeState = state & maskGraphemeState\n\t\twordState = (state >> shiftWordState) & maskWordState\n\t\tsentenceState = (state >> shiftSentenceState) & maskSentenceState\n\t\tlineState = (state >> shiftLineState) & maskLineState\n\t\tfirstProp = state >> shiftPropState\n\t}\n\n\t// Transition until we find a grapheme cluster boundary.\n\twidth := runeWidth(r, firstProp)\n\tfor {\n\t\tvar (\n\t\t\tgraphemeBoundary, wordBoundary, sentenceBoundary bool\n\t\t\tlineBreak, prop                                  int\n\t\t)\n\n\t\tr, l := utf8.DecodeRune(remainder)\n\t\tremainder = b[length+l:]\n\n\t\tgraphemeState, prop, graphemeBoundary = transitionGraphemeState(graphemeState, r)\n\t\twordState, wordBoundary = transitionWordBreakState(wordState, r, remainder, \"\")\n\t\tsentenceState, sentenceBoundary = transitionSentenceBreakState(sentenceState, r, remainder, \"\")\n\t\tlineState, lineBreak = transitionLineBreakState(lineState, r, remainder, \"\")\n\n\t\tif graphemeBoundary {\n\t\t\tboundary := lineBreak | (width << ShiftWidth)\n\t\t\tif wordBoundary {\n\t\t\t\tboundary |= 1 << shiftWord\n\t\t\t}\n\t\t\tif sentenceBoundary {\n\t\t\t\tboundary |= 1 << shiftSentence\n\t\t\t}\n\t\t\treturn b[:length], b[length:], boundary, graphemeState | (wordState << shiftWordState) | (sentenceState << shiftSentenceState) | (lineState << shiftLineState) | (prop << shiftPropState)\n\t\t}\n\n\t\tif firstProp == prExtendedPictographic {\n\t\t\tif r == vs15 {\n\t\t\t\twidth = 1\n\t\t\t} else if r == vs16 {\n\t\t\t\twidth = 2\n\t\t\t}\n\t\t} else if firstProp != prRegionalIndicator && firstProp != prL {\n\t\t\twidth += runeWidth(r, prop)\n\t\t}\n\n\t\tlength += l\n\t\tif len(b) <= length {\n\t\t\treturn b, nil, LineMustBreak | (1 << shiftWord) | (1 << shiftSentence) | (width << ShiftWidth), grAny | (wbAny << shiftWordState) | (sbAny << shiftSentenceState) | (lbAny << shiftLineState) | (prop << shiftPropState)\n\t\t}\n\t}\n}\n\n// StepString is like [Step] but its input and outputs are strings.\nfunc StepString(str string, state int) (cluster, rest string, boundaries int, newState int) {\n\t// An empty byte slice returns nothing.\n\tif len(str) == 0 {\n\t\treturn\n\t}\n\n\t// Extract the first rune.\n\tr, length := utf8.DecodeRuneInString(str)\n\tif len(str) <= length { // If we're already past the end, there is nothing else to parse.\n\t\tprop := propertyGraphemes(r)\n\t\treturn str, \"\", LineMustBreak | (1 << shiftWord) | (1 << shiftSentence) | (runeWidth(r, prop) << ShiftWidth), grAny | (wbAny << shiftWordState) | (sbAny << shiftSentenceState) | (lbAny << shiftLineState)\n\t}\n\n\t// If we don't know the state, determine it now.\n\tvar graphemeState, wordState, sentenceState, lineState, firstProp int\n\tremainder := str[length:]\n\tif state < 0 {\n\t\tgraphemeState, firstProp, _ = transitionGraphemeState(state, r)\n\t\twordState, _ = transitionWordBreakState(state, r, nil, remainder)\n\t\tsentenceState, _ = transitionSentenceBreakState(state, r, nil, remainder)\n\t\tlineState, _ = transitionLineBreakState(state, r, nil, remainder)\n\t} else {\n\t\tgraphemeState = state & maskGraphemeState\n\t\twordState = (state >> shiftWordState) & maskWordState\n\t\tsentenceState = (state >> shiftSentenceState) & maskSentenceState\n\t\tlineState = (state >> shiftLineState) & maskLineState\n\t\tfirstProp = state >> shiftPropState\n\t}\n\n\t// Transition until we find a grapheme cluster boundary.\n\twidth := runeWidth(r, firstProp)\n\tfor {\n\t\tvar (\n\t\t\tgraphemeBoundary, wordBoundary, sentenceBoundary bool\n\t\t\tlineBreak, prop                                  int\n\t\t)\n\n\t\tr, l := utf8.DecodeRuneInString(remainder)\n\t\tremainder = str[length+l:]\n\n\t\tgraphemeState, prop, graphemeBoundary = transitionGraphemeState(graphemeState, r)\n\t\twordState, wordBoundary = transitionWordBreakState(wordState, r, nil, remainder)\n\t\tsentenceState, sentenceBoundary = transitionSentenceBreakState(sentenceState, r, nil, remainder)\n\t\tlineState, lineBreak = transitionLineBreakState(lineState, r, nil, remainder)\n\n\t\tif graphemeBoundary {\n\t\t\tboundary := lineBreak | (width << ShiftWidth)\n\t\t\tif wordBoundary {\n\t\t\t\tboundary |= 1 << shiftWord\n\t\t\t}\n\t\t\tif sentenceBoundary {\n\t\t\t\tboundary |= 1 << shiftSentence\n\t\t\t}\n\t\t\treturn str[:length], str[length:], boundary, graphemeState | (wordState << shiftWordState) | (sentenceState << shiftSentenceState) | (lineState << shiftLineState) | (prop << shiftPropState)\n\t\t}\n\n\t\tif firstProp == prExtendedPictographic {\n\t\t\tif r == vs15 {\n\t\t\t\twidth = 1\n\t\t\t} else if r == vs16 {\n\t\t\t\twidth = 2\n\t\t\t}\n\t\t} else if firstProp != prRegionalIndicator && firstProp != prL {\n\t\t\twidth += runeWidth(r, prop)\n\t\t}\n\n\t\tlength += l\n\t\tif len(str) <= length {\n\t\t\treturn str, \"\", LineMustBreak | (1 << shiftWord) | (1 << shiftSentence) | (width << ShiftWidth), grAny | (wbAny << shiftWordState) | (sbAny << shiftSentenceState) | (lbAny << shiftLineState) | (prop << shiftPropState)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/width.go",
    "content": "package uniseg\n\n// EastAsianAmbiguousWidth specifies the monospace width for East Asian\n// characters classified as Ambiguous. The default is 1 but some rare fonts\n// render them with a width of 2.\nvar EastAsianAmbiguousWidth = 1\n\n// runeWidth returns the monospace width for the given rune. The provided\n// grapheme property is a value mapped by the [graphemeCodePoints] table.\n//\n// Every rune has a width of 1, except for runes with the following properties\n// (evaluated in this order):\n//\n//   - Control, CR, LF, Extend, ZWJ: Width of 0\n//   - \\u2e3a, TWO-EM DASH: Width of 3\n//   - \\u2e3b, THREE-EM DASH: Width of 4\n//   - East-Asian width Fullwidth and Wide: Width of 2 (Ambiguous and Neutral\n//     have a width of 1)\n//   - Regional Indicator: Width of 2\n//   - Extended Pictographic: Width of 2, unless Emoji Presentation is \"No\".\nfunc runeWidth(r rune, graphemeProperty int) int {\n\tswitch graphemeProperty {\n\tcase prControl, prCR, prLF, prExtend, prZWJ:\n\t\treturn 0\n\tcase prRegionalIndicator:\n\t\treturn 2\n\tcase prExtendedPictographic:\n\t\tif property(emojiPresentation, r) == prEmojiPresentation {\n\t\t\treturn 2\n\t\t}\n\t\treturn 1\n\t}\n\n\tswitch r {\n\tcase 0x2e3a:\n\t\treturn 3\n\tcase 0x2e3b:\n\t\treturn 4\n\t}\n\n\tswitch propertyEastAsianWidth(r) {\n\tcase prW, prF:\n\t\treturn 2\n\tcase prA:\n\t\treturn EastAsianAmbiguousWidth\n\t}\n\n\treturn 1\n}\n\n// StringWidth returns the monospace width for the given string, that is, the\n// number of same-size cells to be occupied by the string.\nfunc StringWidth(s string) (width int) {\n\tstate := -1\n\tfor len(s) > 0 {\n\t\tvar w int\n\t\t_, s, w, state = FirstGraphemeClusterInString(s, state)\n\t\twidth += w\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/word.go",
    "content": "package uniseg\n\nimport \"unicode/utf8\"\n\n// FirstWord returns the first word found in the given byte slice according to\n// the rules of [Unicode Standard Annex #29, Word Boundaries]. This function can\n// be called continuously to extract all words from a byte slice, as illustrated\n// in the example below.\n//\n// If you don't know the current state, for example when calling the function\n// for the first time, you must pass -1. For consecutive calls, pass the state\n// and rest slice returned by the previous call.\n//\n// The \"rest\" slice is the sub-slice of the original byte slice \"b\" starting\n// after the last byte of the identified word. If the length of the \"rest\" slice\n// is 0, the entire byte slice \"b\" has been processed. The \"word\" byte slice is\n// the sub-slice of the input slice containing the identified word.\n//\n// Given an empty byte slice \"b\", the function returns nil values.\n//\n// [Unicode Standard Annex #29, Word Boundaries]: http://unicode.org/reports/tr29/#Word_Boundaries\nfunc FirstWord(b []byte, state int) (word, rest []byte, newState int) {\n\t// An empty byte slice returns nothing.\n\tif len(b) == 0 {\n\t\treturn\n\t}\n\n\t// Extract the first rune.\n\tr, length := utf8.DecodeRune(b)\n\tif len(b) <= length { // If we're already past the end, there is nothing else to parse.\n\t\treturn b, nil, wbAny\n\t}\n\n\t// If we don't know the state, determine it now.\n\tif state < 0 {\n\t\tstate, _ = transitionWordBreakState(state, r, b[length:], \"\")\n\t}\n\n\t// Transition until we find a boundary.\n\tvar boundary bool\n\tfor {\n\t\tr, l := utf8.DecodeRune(b[length:])\n\t\tstate, boundary = transitionWordBreakState(state, r, b[length+l:], \"\")\n\n\t\tif boundary {\n\t\t\treturn b[:length], b[length:], state\n\t\t}\n\n\t\tlength += l\n\t\tif len(b) <= length {\n\t\t\treturn b, nil, wbAny\n\t\t}\n\t}\n}\n\n// FirstWordInString is like [FirstWord] but its input and outputs are strings.\nfunc FirstWordInString(str string, state int) (word, rest string, newState int) {\n\t// An empty byte slice returns nothing.\n\tif len(str) == 0 {\n\t\treturn\n\t}\n\n\t// Extract the first rune.\n\tr, length := utf8.DecodeRuneInString(str)\n\tif len(str) <= length { // If we're already past the end, there is nothing else to parse.\n\t\treturn str, \"\", wbAny\n\t}\n\n\t// If we don't know the state, determine it now.\n\tif state < 0 {\n\t\tstate, _ = transitionWordBreakState(state, r, nil, str[length:])\n\t}\n\n\t// Transition until we find a boundary.\n\tvar boundary bool\n\tfor {\n\t\tr, l := utf8.DecodeRuneInString(str[length:])\n\t\tstate, boundary = transitionWordBreakState(state, r, nil, str[length+l:])\n\n\t\tif boundary {\n\t\t\treturn str[:length], str[length:], state\n\t\t}\n\n\t\tlength += l\n\t\tif len(str) <= length {\n\t\t\treturn str, \"\", wbAny\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/wordproperties.go",
    "content": "// Code generated via go generate from gen_properties.go. DO NOT EDIT.\n\npackage uniseg\n\n// workBreakCodePoints are taken from\n// https://www.unicode.org/Public/15.0.0/ucd/auxiliary/WordBreakProperty.txt\n// and\n// https://unicode.org/Public/15.0.0/ucd/emoji/emoji-data.txt\n// (\"Extended_Pictographic\" only)\n// on September 5, 2023. See https://www.unicode.org/license.html for the Unicode\n// license agreement.\nvar workBreakCodePoints = [][3]int{\n\t{0x000A, 0x000A, prLF},                     // Cc       <control-000A>\n\t{0x000B, 0x000C, prNewline},                // Cc   [2] <control-000B>..<control-000C>\n\t{0x000D, 0x000D, prCR},                     // Cc       <control-000D>\n\t{0x0020, 0x0020, prWSegSpace},              // Zs       SPACE\n\t{0x0022, 0x0022, prDoubleQuote},            // Po       QUOTATION MARK\n\t{0x0027, 0x0027, prSingleQuote},            // Po       APOSTROPHE\n\t{0x002C, 0x002C, prMidNum},                 // Po       COMMA\n\t{0x002E, 0x002E, prMidNumLet},              // Po       FULL STOP\n\t{0x0030, 0x0039, prNumeric},                // Nd  [10] DIGIT ZERO..DIGIT NINE\n\t{0x003A, 0x003A, prMidLetter},              // Po       COLON\n\t{0x003B, 0x003B, prMidNum},                 // Po       SEMICOLON\n\t{0x0041, 0x005A, prALetter},                // L&  [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z\n\t{0x005F, 0x005F, prExtendNumLet},           // Pc       LOW LINE\n\t{0x0061, 0x007A, prALetter},                // L&  [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z\n\t{0x0085, 0x0085, prNewline},                // Cc       <control-0085>\n\t{0x00A9, 0x00A9, prExtendedPictographic},   // E0.6   [1] (©️)       copyright\n\t{0x00AA, 0x00AA, prALetter},                // Lo       FEMININE ORDINAL INDICATOR\n\t{0x00AD, 0x00AD, prFormat},                 // Cf       SOFT HYPHEN\n\t{0x00AE, 0x00AE, prExtendedPictographic},   // E0.6   [1] (®️)       registered\n\t{0x00B5, 0x00B5, prALetter},                // L&       MICRO SIGN\n\t{0x00B7, 0x00B7, prMidLetter},              // Po       MIDDLE DOT\n\t{0x00BA, 0x00BA, prALetter},                // Lo       MASCULINE ORDINAL INDICATOR\n\t{0x00C0, 0x00D6, prALetter},                // L&  [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS\n\t{0x00D8, 0x00F6, prALetter},                // L&  [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS\n\t{0x00F8, 0x01BA, prALetter},                // L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL\n\t{0x01BB, 0x01BB, prALetter},                // Lo       LATIN LETTER TWO WITH STROKE\n\t{0x01BC, 0x01BF, prALetter},                // L&   [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN\n\t{0x01C0, 0x01C3, prALetter},                // Lo   [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK\n\t{0x01C4, 0x0293, prALetter},                // L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL\n\t{0x0294, 0x0294, prALetter},                // Lo       LATIN LETTER GLOTTAL STOP\n\t{0x0295, 0x02AF, prALetter},                // L&  [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL\n\t{0x02B0, 0x02C1, prALetter},                // Lm  [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP\n\t{0x02C2, 0x02C5, prALetter},                // Sk   [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD\n\t{0x02C6, 0x02D1, prALetter},                // Lm  [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON\n\t{0x02D2, 0x02D7, prALetter},                // Sk   [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN\n\t{0x02DE, 0x02DF, prALetter},                // Sk   [2] MODIFIER LETTER RHOTIC HOOK..MODIFIER LETTER CROSS ACCENT\n\t{0x02E0, 0x02E4, prALetter},                // Lm   [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP\n\t{0x02E5, 0x02EB, prALetter},                // Sk   [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK\n\t{0x02EC, 0x02EC, prALetter},                // Lm       MODIFIER LETTER VOICING\n\t{0x02ED, 0x02ED, prALetter},                // Sk       MODIFIER LETTER UNASPIRATED\n\t{0x02EE, 0x02EE, prALetter},                // Lm       MODIFIER LETTER DOUBLE APOSTROPHE\n\t{0x02EF, 0x02FF, prALetter},                // Sk  [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW\n\t{0x0300, 0x036F, prExtend},                 // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X\n\t{0x0370, 0x0373, prALetter},                // L&   [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI\n\t{0x0374, 0x0374, prALetter},                // Lm       GREEK NUMERAL SIGN\n\t{0x0376, 0x0377, prALetter},                // L&   [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA\n\t{0x037A, 0x037A, prALetter},                // Lm       GREEK YPOGEGRAMMENI\n\t{0x037B, 0x037D, prALetter},                // L&   [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL\n\t{0x037E, 0x037E, prMidNum},                 // Po       GREEK QUESTION MARK\n\t{0x037F, 0x037F, prALetter},                // L&       GREEK CAPITAL LETTER YOT\n\t{0x0386, 0x0386, prALetter},                // L&       GREEK CAPITAL LETTER ALPHA WITH TONOS\n\t{0x0387, 0x0387, prMidLetter},              // Po       GREEK ANO TELEIA\n\t{0x0388, 0x038A, prALetter},                // L&   [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS\n\t{0x038C, 0x038C, prALetter},                // L&       GREEK CAPITAL LETTER OMICRON WITH TONOS\n\t{0x038E, 0x03A1, prALetter},                // L&  [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO\n\t{0x03A3, 0x03F5, prALetter},                // L&  [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL\n\t{0x03F7, 0x0481, prALetter},                // L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA\n\t{0x0483, 0x0487, prExtend},                 // Mn   [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE\n\t{0x0488, 0x0489, prExtend},                 // Me   [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN\n\t{0x048A, 0x052F, prALetter},                // L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER\n\t{0x0531, 0x0556, prALetter},                // L&  [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH\n\t{0x0559, 0x0559, prALetter},                // Lm       ARMENIAN MODIFIER LETTER LEFT HALF RING\n\t{0x055A, 0x055C, prALetter},                // Po   [3] ARMENIAN APOSTROPHE..ARMENIAN EXCLAMATION MARK\n\t{0x055E, 0x055E, prALetter},                // Po       ARMENIAN QUESTION MARK\n\t{0x055F, 0x055F, prMidLetter},              // Po       ARMENIAN ABBREVIATION MARK\n\t{0x0560, 0x0588, prALetter},                // L&  [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE\n\t{0x0589, 0x0589, prMidNum},                 // Po       ARMENIAN FULL STOP\n\t{0x058A, 0x058A, prALetter},                // Pd       ARMENIAN HYPHEN\n\t{0x0591, 0x05BD, prExtend},                 // Mn  [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG\n\t{0x05BF, 0x05BF, prExtend},                 // Mn       HEBREW POINT RAFE\n\t{0x05C1, 0x05C2, prExtend},                 // Mn   [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT\n\t{0x05C4, 0x05C5, prExtend},                 // Mn   [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT\n\t{0x05C7, 0x05C7, prExtend},                 // Mn       HEBREW POINT QAMATS QATAN\n\t{0x05D0, 0x05EA, prHebrewLetter},           // Lo  [27] HEBREW LETTER ALEF..HEBREW LETTER TAV\n\t{0x05EF, 0x05F2, prHebrewLetter},           // Lo   [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD\n\t{0x05F3, 0x05F3, prALetter},                // Po       HEBREW PUNCTUATION GERESH\n\t{0x05F4, 0x05F4, prMidLetter},              // Po       HEBREW PUNCTUATION GERSHAYIM\n\t{0x0600, 0x0605, prFormat},                 // Cf   [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE\n\t{0x060C, 0x060D, prMidNum},                 // Po   [2] ARABIC COMMA..ARABIC DATE SEPARATOR\n\t{0x0610, 0x061A, prExtend},                 // Mn  [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA\n\t{0x061C, 0x061C, prFormat},                 // Cf       ARABIC LETTER MARK\n\t{0x0620, 0x063F, prALetter},                // Lo  [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE\n\t{0x0640, 0x0640, prALetter},                // Lm       ARABIC TATWEEL\n\t{0x0641, 0x064A, prALetter},                // Lo  [10] ARABIC LETTER FEH..ARABIC LETTER YEH\n\t{0x064B, 0x065F, prExtend},                 // Mn  [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW\n\t{0x0660, 0x0669, prNumeric},                // Nd  [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE\n\t{0x066B, 0x066B, prNumeric},                // Po       ARABIC DECIMAL SEPARATOR\n\t{0x066C, 0x066C, prMidNum},                 // Po       ARABIC THOUSANDS SEPARATOR\n\t{0x066E, 0x066F, prALetter},                // Lo   [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF\n\t{0x0670, 0x0670, prExtend},                 // Mn       ARABIC LETTER SUPERSCRIPT ALEF\n\t{0x0671, 0x06D3, prALetter},                // Lo  [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n\t{0x06D5, 0x06D5, prALetter},                // Lo       ARABIC LETTER AE\n\t{0x06D6, 0x06DC, prExtend},                 // Mn   [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN\n\t{0x06DD, 0x06DD, prFormat},                 // Cf       ARABIC END OF AYAH\n\t{0x06DF, 0x06E4, prExtend},                 // Mn   [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA\n\t{0x06E5, 0x06E6, prALetter},                // Lm   [2] ARABIC SMALL WAW..ARABIC SMALL YEH\n\t{0x06E7, 0x06E8, prExtend},                 // Mn   [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON\n\t{0x06EA, 0x06ED, prExtend},                 // Mn   [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM\n\t{0x06EE, 0x06EF, prALetter},                // Lo   [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V\n\t{0x06F0, 0x06F9, prNumeric},                // Nd  [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE\n\t{0x06FA, 0x06FC, prALetter},                // Lo   [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW\n\t{0x06FF, 0x06FF, prALetter},                // Lo       ARABIC LETTER HEH WITH INVERTED V\n\t{0x070F, 0x070F, prFormat},                 // Cf       SYRIAC ABBREVIATION MARK\n\t{0x0710, 0x0710, prALetter},                // Lo       SYRIAC LETTER ALAPH\n\t{0x0711, 0x0711, prExtend},                 // Mn       SYRIAC LETTER SUPERSCRIPT ALAPH\n\t{0x0712, 0x072F, prALetter},                // Lo  [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH\n\t{0x0730, 0x074A, prExtend},                 // Mn  [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH\n\t{0x074D, 0x07A5, prALetter},                // Lo  [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU\n\t{0x07A6, 0x07B0, prExtend},                 // Mn  [11] THAANA ABAFILI..THAANA SUKUN\n\t{0x07B1, 0x07B1, prALetter},                // Lo       THAANA LETTER NAA\n\t{0x07C0, 0x07C9, prNumeric},                // Nd  [10] NKO DIGIT ZERO..NKO DIGIT NINE\n\t{0x07CA, 0x07EA, prALetter},                // Lo  [33] NKO LETTER A..NKO LETTER JONA RA\n\t{0x07EB, 0x07F3, prExtend},                 // Mn   [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE\n\t{0x07F4, 0x07F5, prALetter},                // Lm   [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE\n\t{0x07F8, 0x07F8, prMidNum},                 // Po       NKO COMMA\n\t{0x07FA, 0x07FA, prALetter},                // Lm       NKO LAJANYALAN\n\t{0x07FD, 0x07FD, prExtend},                 // Mn       NKO DANTAYALAN\n\t{0x0800, 0x0815, prALetter},                // Lo  [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF\n\t{0x0816, 0x0819, prExtend},                 // Mn   [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH\n\t{0x081A, 0x081A, prALetter},                // Lm       SAMARITAN MODIFIER LETTER EPENTHETIC YUT\n\t{0x081B, 0x0823, prExtend},                 // Mn   [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A\n\t{0x0824, 0x0824, prALetter},                // Lm       SAMARITAN MODIFIER LETTER SHORT A\n\t{0x0825, 0x0827, prExtend},                 // Mn   [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U\n\t{0x0828, 0x0828, prALetter},                // Lm       SAMARITAN MODIFIER LETTER I\n\t{0x0829, 0x082D, prExtend},                 // Mn   [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA\n\t{0x0840, 0x0858, prALetter},                // Lo  [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN\n\t{0x0859, 0x085B, prExtend},                 // Mn   [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK\n\t{0x0860, 0x086A, prALetter},                // Lo  [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA\n\t{0x0870, 0x0887, prALetter},                // Lo  [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT\n\t{0x0889, 0x088E, prALetter},                // Lo   [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL\n\t{0x0890, 0x0891, prFormat},                 // Cf   [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE\n\t{0x0898, 0x089F, prExtend},                 // Mn   [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA\n\t{0x08A0, 0x08C8, prALetter},                // Lo  [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF\n\t{0x08C9, 0x08C9, prALetter},                // Lm       ARABIC SMALL FARSI YEH\n\t{0x08CA, 0x08E1, prExtend},                 // Mn  [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA\n\t{0x08E2, 0x08E2, prFormat},                 // Cf       ARABIC DISPUTED END OF AYAH\n\t{0x08E3, 0x0902, prExtend},                 // Mn  [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA\n\t{0x0903, 0x0903, prExtend},                 // Mc       DEVANAGARI SIGN VISARGA\n\t{0x0904, 0x0939, prALetter},                // Lo  [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA\n\t{0x093A, 0x093A, prExtend},                 // Mn       DEVANAGARI VOWEL SIGN OE\n\t{0x093B, 0x093B, prExtend},                 // Mc       DEVANAGARI VOWEL SIGN OOE\n\t{0x093C, 0x093C, prExtend},                 // Mn       DEVANAGARI SIGN NUKTA\n\t{0x093D, 0x093D, prALetter},                // Lo       DEVANAGARI SIGN AVAGRAHA\n\t{0x093E, 0x0940, prExtend},                 // Mc   [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II\n\t{0x0941, 0x0948, prExtend},                 // Mn   [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI\n\t{0x0949, 0x094C, prExtend},                 // Mc   [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU\n\t{0x094D, 0x094D, prExtend},                 // Mn       DEVANAGARI SIGN VIRAMA\n\t{0x094E, 0x094F, prExtend},                 // Mc   [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW\n\t{0x0950, 0x0950, prALetter},                // Lo       DEVANAGARI OM\n\t{0x0951, 0x0957, prExtend},                 // Mn   [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE\n\t{0x0958, 0x0961, prALetter},                // Lo  [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL\n\t{0x0962, 0x0963, prExtend},                 // Mn   [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL\n\t{0x0966, 0x096F, prNumeric},                // Nd  [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE\n\t{0x0971, 0x0971, prALetter},                // Lm       DEVANAGARI SIGN HIGH SPACING DOT\n\t{0x0972, 0x0980, prALetter},                // Lo  [15] DEVANAGARI LETTER CANDRA A..BENGALI ANJI\n\t{0x0981, 0x0981, prExtend},                 // Mn       BENGALI SIGN CANDRABINDU\n\t{0x0982, 0x0983, prExtend},                 // Mc   [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA\n\t{0x0985, 0x098C, prALetter},                // Lo   [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L\n\t{0x098F, 0x0990, prALetter},                // Lo   [2] BENGALI LETTER E..BENGALI LETTER AI\n\t{0x0993, 0x09A8, prALetter},                // Lo  [22] BENGALI LETTER O..BENGALI LETTER NA\n\t{0x09AA, 0x09B0, prALetter},                // Lo   [7] BENGALI LETTER PA..BENGALI LETTER RA\n\t{0x09B2, 0x09B2, prALetter},                // Lo       BENGALI LETTER LA\n\t{0x09B6, 0x09B9, prALetter},                // Lo   [4] BENGALI LETTER SHA..BENGALI LETTER HA\n\t{0x09BC, 0x09BC, prExtend},                 // Mn       BENGALI SIGN NUKTA\n\t{0x09BD, 0x09BD, prALetter},                // Lo       BENGALI SIGN AVAGRAHA\n\t{0x09BE, 0x09C0, prExtend},                 // Mc   [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II\n\t{0x09C1, 0x09C4, prExtend},                 // Mn   [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR\n\t{0x09C7, 0x09C8, prExtend},                 // Mc   [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI\n\t{0x09CB, 0x09CC, prExtend},                 // Mc   [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU\n\t{0x09CD, 0x09CD, prExtend},                 // Mn       BENGALI SIGN VIRAMA\n\t{0x09CE, 0x09CE, prALetter},                // Lo       BENGALI LETTER KHANDA TA\n\t{0x09D7, 0x09D7, prExtend},                 // Mc       BENGALI AU LENGTH MARK\n\t{0x09DC, 0x09DD, prALetter},                // Lo   [2] BENGALI LETTER RRA..BENGALI LETTER RHA\n\t{0x09DF, 0x09E1, prALetter},                // Lo   [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL\n\t{0x09E2, 0x09E3, prExtend},                 // Mn   [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL\n\t{0x09E6, 0x09EF, prNumeric},                // Nd  [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE\n\t{0x09F0, 0x09F1, prALetter},                // Lo   [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL\n\t{0x09FC, 0x09FC, prALetter},                // Lo       BENGALI LETTER VEDIC ANUSVARA\n\t{0x09FE, 0x09FE, prExtend},                 // Mn       BENGALI SANDHI MARK\n\t{0x0A01, 0x0A02, prExtend},                 // Mn   [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI\n\t{0x0A03, 0x0A03, prExtend},                 // Mc       GURMUKHI SIGN VISARGA\n\t{0x0A05, 0x0A0A, prALetter},                // Lo   [6] GURMUKHI LETTER A..GURMUKHI LETTER UU\n\t{0x0A0F, 0x0A10, prALetter},                // Lo   [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI\n\t{0x0A13, 0x0A28, prALetter},                // Lo  [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA\n\t{0x0A2A, 0x0A30, prALetter},                // Lo   [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA\n\t{0x0A32, 0x0A33, prALetter},                // Lo   [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA\n\t{0x0A35, 0x0A36, prALetter},                // Lo   [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA\n\t{0x0A38, 0x0A39, prALetter},                // Lo   [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA\n\t{0x0A3C, 0x0A3C, prExtend},                 // Mn       GURMUKHI SIGN NUKTA\n\t{0x0A3E, 0x0A40, prExtend},                 // Mc   [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II\n\t{0x0A41, 0x0A42, prExtend},                 // Mn   [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU\n\t{0x0A47, 0x0A48, prExtend},                 // Mn   [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI\n\t{0x0A4B, 0x0A4D, prExtend},                 // Mn   [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA\n\t{0x0A51, 0x0A51, prExtend},                 // Mn       GURMUKHI SIGN UDAAT\n\t{0x0A59, 0x0A5C, prALetter},                // Lo   [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA\n\t{0x0A5E, 0x0A5E, prALetter},                // Lo       GURMUKHI LETTER FA\n\t{0x0A66, 0x0A6F, prNumeric},                // Nd  [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE\n\t{0x0A70, 0x0A71, prExtend},                 // Mn   [2] GURMUKHI TIPPI..GURMUKHI ADDAK\n\t{0x0A72, 0x0A74, prALetter},                // Lo   [3] GURMUKHI IRI..GURMUKHI EK ONKAR\n\t{0x0A75, 0x0A75, prExtend},                 // Mn       GURMUKHI SIGN YAKASH\n\t{0x0A81, 0x0A82, prExtend},                 // Mn   [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA\n\t{0x0A83, 0x0A83, prExtend},                 // Mc       GUJARATI SIGN VISARGA\n\t{0x0A85, 0x0A8D, prALetter},                // Lo   [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E\n\t{0x0A8F, 0x0A91, prALetter},                // Lo   [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O\n\t{0x0A93, 0x0AA8, prALetter},                // Lo  [22] GUJARATI LETTER O..GUJARATI LETTER NA\n\t{0x0AAA, 0x0AB0, prALetter},                // Lo   [7] GUJARATI LETTER PA..GUJARATI LETTER RA\n\t{0x0AB2, 0x0AB3, prALetter},                // Lo   [2] GUJARATI LETTER LA..GUJARATI LETTER LLA\n\t{0x0AB5, 0x0AB9, prALetter},                // Lo   [5] GUJARATI LETTER VA..GUJARATI LETTER HA\n\t{0x0ABC, 0x0ABC, prExtend},                 // Mn       GUJARATI SIGN NUKTA\n\t{0x0ABD, 0x0ABD, prALetter},                // Lo       GUJARATI SIGN AVAGRAHA\n\t{0x0ABE, 0x0AC0, prExtend},                 // Mc   [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II\n\t{0x0AC1, 0x0AC5, prExtend},                 // Mn   [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E\n\t{0x0AC7, 0x0AC8, prExtend},                 // Mn   [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI\n\t{0x0AC9, 0x0AC9, prExtend},                 // Mc       GUJARATI VOWEL SIGN CANDRA O\n\t{0x0ACB, 0x0ACC, prExtend},                 // Mc   [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU\n\t{0x0ACD, 0x0ACD, prExtend},                 // Mn       GUJARATI SIGN VIRAMA\n\t{0x0AD0, 0x0AD0, prALetter},                // Lo       GUJARATI OM\n\t{0x0AE0, 0x0AE1, prALetter},                // Lo   [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL\n\t{0x0AE2, 0x0AE3, prExtend},                 // Mn   [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL\n\t{0x0AE6, 0x0AEF, prNumeric},                // Nd  [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE\n\t{0x0AF9, 0x0AF9, prALetter},                // Lo       GUJARATI LETTER ZHA\n\t{0x0AFA, 0x0AFF, prExtend},                 // Mn   [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE\n\t{0x0B01, 0x0B01, prExtend},                 // Mn       ORIYA SIGN CANDRABINDU\n\t{0x0B02, 0x0B03, prExtend},                 // Mc   [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA\n\t{0x0B05, 0x0B0C, prALetter},                // Lo   [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L\n\t{0x0B0F, 0x0B10, prALetter},                // Lo   [2] ORIYA LETTER E..ORIYA LETTER AI\n\t{0x0B13, 0x0B28, prALetter},                // Lo  [22] ORIYA LETTER O..ORIYA LETTER NA\n\t{0x0B2A, 0x0B30, prALetter},                // Lo   [7] ORIYA LETTER PA..ORIYA LETTER RA\n\t{0x0B32, 0x0B33, prALetter},                // Lo   [2] ORIYA LETTER LA..ORIYA LETTER LLA\n\t{0x0B35, 0x0B39, prALetter},                // Lo   [5] ORIYA LETTER VA..ORIYA LETTER HA\n\t{0x0B3C, 0x0B3C, prExtend},                 // Mn       ORIYA SIGN NUKTA\n\t{0x0B3D, 0x0B3D, prALetter},                // Lo       ORIYA SIGN AVAGRAHA\n\t{0x0B3E, 0x0B3E, prExtend},                 // Mc       ORIYA VOWEL SIGN AA\n\t{0x0B3F, 0x0B3F, prExtend},                 // Mn       ORIYA VOWEL SIGN I\n\t{0x0B40, 0x0B40, prExtend},                 // Mc       ORIYA VOWEL SIGN II\n\t{0x0B41, 0x0B44, prExtend},                 // Mn   [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR\n\t{0x0B47, 0x0B48, prExtend},                 // Mc   [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI\n\t{0x0B4B, 0x0B4C, prExtend},                 // Mc   [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU\n\t{0x0B4D, 0x0B4D, prExtend},                 // Mn       ORIYA SIGN VIRAMA\n\t{0x0B55, 0x0B56, prExtend},                 // Mn   [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK\n\t{0x0B57, 0x0B57, prExtend},                 // Mc       ORIYA AU LENGTH MARK\n\t{0x0B5C, 0x0B5D, prALetter},                // Lo   [2] ORIYA LETTER RRA..ORIYA LETTER RHA\n\t{0x0B5F, 0x0B61, prALetter},                // Lo   [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL\n\t{0x0B62, 0x0B63, prExtend},                 // Mn   [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL\n\t{0x0B66, 0x0B6F, prNumeric},                // Nd  [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE\n\t{0x0B71, 0x0B71, prALetter},                // Lo       ORIYA LETTER WA\n\t{0x0B82, 0x0B82, prExtend},                 // Mn       TAMIL SIGN ANUSVARA\n\t{0x0B83, 0x0B83, prALetter},                // Lo       TAMIL SIGN VISARGA\n\t{0x0B85, 0x0B8A, prALetter},                // Lo   [6] TAMIL LETTER A..TAMIL LETTER UU\n\t{0x0B8E, 0x0B90, prALetter},                // Lo   [3] TAMIL LETTER E..TAMIL LETTER AI\n\t{0x0B92, 0x0B95, prALetter},                // Lo   [4] TAMIL LETTER O..TAMIL LETTER KA\n\t{0x0B99, 0x0B9A, prALetter},                // Lo   [2] TAMIL LETTER NGA..TAMIL LETTER CA\n\t{0x0B9C, 0x0B9C, prALetter},                // Lo       TAMIL LETTER JA\n\t{0x0B9E, 0x0B9F, prALetter},                // Lo   [2] TAMIL LETTER NYA..TAMIL LETTER TTA\n\t{0x0BA3, 0x0BA4, prALetter},                // Lo   [2] TAMIL LETTER NNA..TAMIL LETTER TA\n\t{0x0BA8, 0x0BAA, prALetter},                // Lo   [3] TAMIL LETTER NA..TAMIL LETTER PA\n\t{0x0BAE, 0x0BB9, prALetter},                // Lo  [12] TAMIL LETTER MA..TAMIL LETTER HA\n\t{0x0BBE, 0x0BBF, prExtend},                 // Mc   [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I\n\t{0x0BC0, 0x0BC0, prExtend},                 // Mn       TAMIL VOWEL SIGN II\n\t{0x0BC1, 0x0BC2, prExtend},                 // Mc   [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU\n\t{0x0BC6, 0x0BC8, prExtend},                 // Mc   [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI\n\t{0x0BCA, 0x0BCC, prExtend},                 // Mc   [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU\n\t{0x0BCD, 0x0BCD, prExtend},                 // Mn       TAMIL SIGN VIRAMA\n\t{0x0BD0, 0x0BD0, prALetter},                // Lo       TAMIL OM\n\t{0x0BD7, 0x0BD7, prExtend},                 // Mc       TAMIL AU LENGTH MARK\n\t{0x0BE6, 0x0BEF, prNumeric},                // Nd  [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE\n\t{0x0C00, 0x0C00, prExtend},                 // Mn       TELUGU SIGN COMBINING CANDRABINDU ABOVE\n\t{0x0C01, 0x0C03, prExtend},                 // Mc   [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA\n\t{0x0C04, 0x0C04, prExtend},                 // Mn       TELUGU SIGN COMBINING ANUSVARA ABOVE\n\t{0x0C05, 0x0C0C, prALetter},                // Lo   [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L\n\t{0x0C0E, 0x0C10, prALetter},                // Lo   [3] TELUGU LETTER E..TELUGU LETTER AI\n\t{0x0C12, 0x0C28, prALetter},                // Lo  [23] TELUGU LETTER O..TELUGU LETTER NA\n\t{0x0C2A, 0x0C39, prALetter},                // Lo  [16] TELUGU LETTER PA..TELUGU LETTER HA\n\t{0x0C3C, 0x0C3C, prExtend},                 // Mn       TELUGU SIGN NUKTA\n\t{0x0C3D, 0x0C3D, prALetter},                // Lo       TELUGU SIGN AVAGRAHA\n\t{0x0C3E, 0x0C40, prExtend},                 // Mn   [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II\n\t{0x0C41, 0x0C44, prExtend},                 // Mc   [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR\n\t{0x0C46, 0x0C48, prExtend},                 // Mn   [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI\n\t{0x0C4A, 0x0C4D, prExtend},                 // Mn   [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA\n\t{0x0C55, 0x0C56, prExtend},                 // Mn   [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK\n\t{0x0C58, 0x0C5A, prALetter},                // Lo   [3] TELUGU LETTER TSA..TELUGU LETTER RRRA\n\t{0x0C5D, 0x0C5D, prALetter},                // Lo       TELUGU LETTER NAKAARA POLLU\n\t{0x0C60, 0x0C61, prALetter},                // Lo   [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL\n\t{0x0C62, 0x0C63, prExtend},                 // Mn   [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL\n\t{0x0C66, 0x0C6F, prNumeric},                // Nd  [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE\n\t{0x0C80, 0x0C80, prALetter},                // Lo       KANNADA SIGN SPACING CANDRABINDU\n\t{0x0C81, 0x0C81, prExtend},                 // Mn       KANNADA SIGN CANDRABINDU\n\t{0x0C82, 0x0C83, prExtend},                 // Mc   [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA\n\t{0x0C85, 0x0C8C, prALetter},                // Lo   [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L\n\t{0x0C8E, 0x0C90, prALetter},                // Lo   [3] KANNADA LETTER E..KANNADA LETTER AI\n\t{0x0C92, 0x0CA8, prALetter},                // Lo  [23] KANNADA LETTER O..KANNADA LETTER NA\n\t{0x0CAA, 0x0CB3, prALetter},                // Lo  [10] KANNADA LETTER PA..KANNADA LETTER LLA\n\t{0x0CB5, 0x0CB9, prALetter},                // Lo   [5] KANNADA LETTER VA..KANNADA LETTER HA\n\t{0x0CBC, 0x0CBC, prExtend},                 // Mn       KANNADA SIGN NUKTA\n\t{0x0CBD, 0x0CBD, prALetter},                // Lo       KANNADA SIGN AVAGRAHA\n\t{0x0CBE, 0x0CBE, prExtend},                 // Mc       KANNADA VOWEL SIGN AA\n\t{0x0CBF, 0x0CBF, prExtend},                 // Mn       KANNADA VOWEL SIGN I\n\t{0x0CC0, 0x0CC4, prExtend},                 // Mc   [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR\n\t{0x0CC6, 0x0CC6, prExtend},                 // Mn       KANNADA VOWEL SIGN E\n\t{0x0CC7, 0x0CC8, prExtend},                 // Mc   [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI\n\t{0x0CCA, 0x0CCB, prExtend},                 // Mc   [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO\n\t{0x0CCC, 0x0CCD, prExtend},                 // Mn   [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA\n\t{0x0CD5, 0x0CD6, prExtend},                 // Mc   [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK\n\t{0x0CDD, 0x0CDE, prALetter},                // Lo   [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA\n\t{0x0CE0, 0x0CE1, prALetter},                // Lo   [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL\n\t{0x0CE2, 0x0CE3, prExtend},                 // Mn   [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL\n\t{0x0CE6, 0x0CEF, prNumeric},                // Nd  [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE\n\t{0x0CF1, 0x0CF2, prALetter},                // Lo   [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA\n\t{0x0CF3, 0x0CF3, prExtend},                 // Mc       KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT\n\t{0x0D00, 0x0D01, prExtend},                 // Mn   [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU\n\t{0x0D02, 0x0D03, prExtend},                 // Mc   [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA\n\t{0x0D04, 0x0D0C, prALetter},                // Lo   [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L\n\t{0x0D0E, 0x0D10, prALetter},                // Lo   [3] MALAYALAM LETTER E..MALAYALAM LETTER AI\n\t{0x0D12, 0x0D3A, prALetter},                // Lo  [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA\n\t{0x0D3B, 0x0D3C, prExtend},                 // Mn   [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA\n\t{0x0D3D, 0x0D3D, prALetter},                // Lo       MALAYALAM SIGN AVAGRAHA\n\t{0x0D3E, 0x0D40, prExtend},                 // Mc   [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II\n\t{0x0D41, 0x0D44, prExtend},                 // Mn   [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR\n\t{0x0D46, 0x0D48, prExtend},                 // Mc   [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI\n\t{0x0D4A, 0x0D4C, prExtend},                 // Mc   [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU\n\t{0x0D4D, 0x0D4D, prExtend},                 // Mn       MALAYALAM SIGN VIRAMA\n\t{0x0D4E, 0x0D4E, prALetter},                // Lo       MALAYALAM LETTER DOT REPH\n\t{0x0D54, 0x0D56, prALetter},                // Lo   [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL\n\t{0x0D57, 0x0D57, prExtend},                 // Mc       MALAYALAM AU LENGTH MARK\n\t{0x0D5F, 0x0D61, prALetter},                // Lo   [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL\n\t{0x0D62, 0x0D63, prExtend},                 // Mn   [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL\n\t{0x0D66, 0x0D6F, prNumeric},                // Nd  [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE\n\t{0x0D7A, 0x0D7F, prALetter},                // Lo   [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K\n\t{0x0D81, 0x0D81, prExtend},                 // Mn       SINHALA SIGN CANDRABINDU\n\t{0x0D82, 0x0D83, prExtend},                 // Mc   [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA\n\t{0x0D85, 0x0D96, prALetter},                // Lo  [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA\n\t{0x0D9A, 0x0DB1, prALetter},                // Lo  [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA\n\t{0x0DB3, 0x0DBB, prALetter},                // Lo   [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA\n\t{0x0DBD, 0x0DBD, prALetter},                // Lo       SINHALA LETTER DANTAJA LAYANNA\n\t{0x0DC0, 0x0DC6, prALetter},                // Lo   [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA\n\t{0x0DCA, 0x0DCA, prExtend},                 // Mn       SINHALA SIGN AL-LAKUNA\n\t{0x0DCF, 0x0DD1, prExtend},                 // Mc   [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA\n\t{0x0DD2, 0x0DD4, prExtend},                 // Mn   [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA\n\t{0x0DD6, 0x0DD6, prExtend},                 // Mn       SINHALA VOWEL SIGN DIGA PAA-PILLA\n\t{0x0DD8, 0x0DDF, prExtend},                 // Mc   [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA\n\t{0x0DE6, 0x0DEF, prNumeric},                // Nd  [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE\n\t{0x0DF2, 0x0DF3, prExtend},                 // Mc   [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA\n\t{0x0E31, 0x0E31, prExtend},                 // Mn       THAI CHARACTER MAI HAN-AKAT\n\t{0x0E34, 0x0E3A, prExtend},                 // Mn   [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU\n\t{0x0E47, 0x0E4E, prExtend},                 // Mn   [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN\n\t{0x0E50, 0x0E59, prNumeric},                // Nd  [10] THAI DIGIT ZERO..THAI DIGIT NINE\n\t{0x0EB1, 0x0EB1, prExtend},                 // Mn       LAO VOWEL SIGN MAI KAN\n\t{0x0EB4, 0x0EBC, prExtend},                 // Mn   [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO\n\t{0x0EC8, 0x0ECE, prExtend},                 // Mn   [7] LAO TONE MAI EK..LAO YAMAKKAN\n\t{0x0ED0, 0x0ED9, prNumeric},                // Nd  [10] LAO DIGIT ZERO..LAO DIGIT NINE\n\t{0x0F00, 0x0F00, prALetter},                // Lo       TIBETAN SYLLABLE OM\n\t{0x0F18, 0x0F19, prExtend},                 // Mn   [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS\n\t{0x0F20, 0x0F29, prNumeric},                // Nd  [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE\n\t{0x0F35, 0x0F35, prExtend},                 // Mn       TIBETAN MARK NGAS BZUNG NYI ZLA\n\t{0x0F37, 0x0F37, prExtend},                 // Mn       TIBETAN MARK NGAS BZUNG SGOR RTAGS\n\t{0x0F39, 0x0F39, prExtend},                 // Mn       TIBETAN MARK TSA -PHRU\n\t{0x0F3E, 0x0F3F, prExtend},                 // Mc   [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES\n\t{0x0F40, 0x0F47, prALetter},                // Lo   [8] TIBETAN LETTER KA..TIBETAN LETTER JA\n\t{0x0F49, 0x0F6C, prALetter},                // Lo  [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA\n\t{0x0F71, 0x0F7E, prExtend},                 // Mn  [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO\n\t{0x0F7F, 0x0F7F, prExtend},                 // Mc       TIBETAN SIGN RNAM BCAD\n\t{0x0F80, 0x0F84, prExtend},                 // Mn   [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA\n\t{0x0F86, 0x0F87, prExtend},                 // Mn   [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS\n\t{0x0F88, 0x0F8C, prALetter},                // Lo   [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN\n\t{0x0F8D, 0x0F97, prExtend},                 // Mn  [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA\n\t{0x0F99, 0x0FBC, prExtend},                 // Mn  [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA\n\t{0x0FC6, 0x0FC6, prExtend},                 // Mn       TIBETAN SYMBOL PADMA GDAN\n\t{0x102B, 0x102C, prExtend},                 // Mc   [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA\n\t{0x102D, 0x1030, prExtend},                 // Mn   [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU\n\t{0x1031, 0x1031, prExtend},                 // Mc       MYANMAR VOWEL SIGN E\n\t{0x1032, 0x1037, prExtend},                 // Mn   [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW\n\t{0x1038, 0x1038, prExtend},                 // Mc       MYANMAR SIGN VISARGA\n\t{0x1039, 0x103A, prExtend},                 // Mn   [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT\n\t{0x103B, 0x103C, prExtend},                 // Mc   [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA\n\t{0x103D, 0x103E, prExtend},                 // Mn   [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA\n\t{0x1040, 0x1049, prNumeric},                // Nd  [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE\n\t{0x1056, 0x1057, prExtend},                 // Mc   [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR\n\t{0x1058, 0x1059, prExtend},                 // Mn   [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL\n\t{0x105E, 0x1060, prExtend},                 // Mn   [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA\n\t{0x1062, 0x1064, prExtend},                 // Mc   [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO\n\t{0x1067, 0x106D, prExtend},                 // Mc   [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5\n\t{0x1071, 0x1074, prExtend},                 // Mn   [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE\n\t{0x1082, 0x1082, prExtend},                 // Mn       MYANMAR CONSONANT SIGN SHAN MEDIAL WA\n\t{0x1083, 0x1084, prExtend},                 // Mc   [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E\n\t{0x1085, 0x1086, prExtend},                 // Mn   [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y\n\t{0x1087, 0x108C, prExtend},                 // Mc   [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3\n\t{0x108D, 0x108D, prExtend},                 // Mn       MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE\n\t{0x108F, 0x108F, prExtend},                 // Mc       MYANMAR SIGN RUMAI PALAUNG TONE-5\n\t{0x1090, 0x1099, prNumeric},                // Nd  [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE\n\t{0x109A, 0x109C, prExtend},                 // Mc   [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A\n\t{0x109D, 0x109D, prExtend},                 // Mn       MYANMAR VOWEL SIGN AITON AI\n\t{0x10A0, 0x10C5, prALetter},                // L&  [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE\n\t{0x10C7, 0x10C7, prALetter},                // L&       GEORGIAN CAPITAL LETTER YN\n\t{0x10CD, 0x10CD, prALetter},                // L&       GEORGIAN CAPITAL LETTER AEN\n\t{0x10D0, 0x10FA, prALetter},                // L&  [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN\n\t{0x10FC, 0x10FC, prALetter},                // Lm       MODIFIER LETTER GEORGIAN NAR\n\t{0x10FD, 0x10FF, prALetter},                // L&   [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN\n\t{0x1100, 0x1248, prALetter},                // Lo [329] HANGUL CHOSEONG KIYEOK..ETHIOPIC SYLLABLE QWA\n\t{0x124A, 0x124D, prALetter},                // Lo   [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE\n\t{0x1250, 0x1256, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO\n\t{0x1258, 0x1258, prALetter},                // Lo       ETHIOPIC SYLLABLE QHWA\n\t{0x125A, 0x125D, prALetter},                // Lo   [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE\n\t{0x1260, 0x1288, prALetter},                // Lo  [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA\n\t{0x128A, 0x128D, prALetter},                // Lo   [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE\n\t{0x1290, 0x12B0, prALetter},                // Lo  [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA\n\t{0x12B2, 0x12B5, prALetter},                // Lo   [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE\n\t{0x12B8, 0x12BE, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO\n\t{0x12C0, 0x12C0, prALetter},                // Lo       ETHIOPIC SYLLABLE KXWA\n\t{0x12C2, 0x12C5, prALetter},                // Lo   [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE\n\t{0x12C8, 0x12D6, prALetter},                // Lo  [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O\n\t{0x12D8, 0x1310, prALetter},                // Lo  [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA\n\t{0x1312, 0x1315, prALetter},                // Lo   [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE\n\t{0x1318, 0x135A, prALetter},                // Lo  [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA\n\t{0x135D, 0x135F, prExtend},                 // Mn   [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK\n\t{0x1380, 0x138F, prALetter},                // Lo  [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE\n\t{0x13A0, 0x13F5, prALetter},                // L&  [86] CHEROKEE LETTER A..CHEROKEE LETTER MV\n\t{0x13F8, 0x13FD, prALetter},                // L&   [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV\n\t{0x1401, 0x166C, prALetter},                // Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA\n\t{0x166F, 0x167F, prALetter},                // Lo  [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W\n\t{0x1680, 0x1680, prWSegSpace},              // Zs       OGHAM SPACE MARK\n\t{0x1681, 0x169A, prALetter},                // Lo  [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH\n\t{0x16A0, 0x16EA, prALetter},                // Lo  [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X\n\t{0x16EE, 0x16F0, prALetter},                // Nl   [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL\n\t{0x16F1, 0x16F8, prALetter},                // Lo   [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC\n\t{0x1700, 0x1711, prALetter},                // Lo  [18] TAGALOG LETTER A..TAGALOG LETTER HA\n\t{0x1712, 0x1714, prExtend},                 // Mn   [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA\n\t{0x1715, 0x1715, prExtend},                 // Mc       TAGALOG SIGN PAMUDPOD\n\t{0x171F, 0x1731, prALetter},                // Lo  [19] TAGALOG LETTER ARCHAIC RA..HANUNOO LETTER HA\n\t{0x1732, 0x1733, prExtend},                 // Mn   [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U\n\t{0x1734, 0x1734, prExtend},                 // Mc       HANUNOO SIGN PAMUDPOD\n\t{0x1740, 0x1751, prALetter},                // Lo  [18] BUHID LETTER A..BUHID LETTER HA\n\t{0x1752, 0x1753, prExtend},                 // Mn   [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U\n\t{0x1760, 0x176C, prALetter},                // Lo  [13] TAGBANWA LETTER A..TAGBANWA LETTER YA\n\t{0x176E, 0x1770, prALetter},                // Lo   [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA\n\t{0x1772, 0x1773, prExtend},                 // Mn   [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U\n\t{0x17B4, 0x17B5, prExtend},                 // Mn   [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA\n\t{0x17B6, 0x17B6, prExtend},                 // Mc       KHMER VOWEL SIGN AA\n\t{0x17B7, 0x17BD, prExtend},                 // Mn   [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA\n\t{0x17BE, 0x17C5, prExtend},                 // Mc   [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU\n\t{0x17C6, 0x17C6, prExtend},                 // Mn       KHMER SIGN NIKAHIT\n\t{0x17C7, 0x17C8, prExtend},                 // Mc   [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU\n\t{0x17C9, 0x17D3, prExtend},                 // Mn  [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT\n\t{0x17DD, 0x17DD, prExtend},                 // Mn       KHMER SIGN ATTHACAN\n\t{0x17E0, 0x17E9, prNumeric},                // Nd  [10] KHMER DIGIT ZERO..KHMER DIGIT NINE\n\t{0x180B, 0x180D, prExtend},                 // Mn   [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE\n\t{0x180E, 0x180E, prFormat},                 // Cf       MONGOLIAN VOWEL SEPARATOR\n\t{0x180F, 0x180F, prExtend},                 // Mn       MONGOLIAN FREE VARIATION SELECTOR FOUR\n\t{0x1810, 0x1819, prNumeric},                // Nd  [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE\n\t{0x1820, 0x1842, prALetter},                // Lo  [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI\n\t{0x1843, 0x1843, prALetter},                // Lm       MONGOLIAN LETTER TODO LONG VOWEL SIGN\n\t{0x1844, 0x1878, prALetter},                // Lo  [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS\n\t{0x1880, 0x1884, prALetter},                // Lo   [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA\n\t{0x1885, 0x1886, prExtend},                 // Mn   [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA\n\t{0x1887, 0x18A8, prALetter},                // Lo  [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA\n\t{0x18A9, 0x18A9, prExtend},                 // Mn       MONGOLIAN LETTER ALI GALI DAGALGA\n\t{0x18AA, 0x18AA, prALetter},                // Lo       MONGOLIAN LETTER MANCHU ALI GALI LHA\n\t{0x18B0, 0x18F5, prALetter},                // Lo  [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S\n\t{0x1900, 0x191E, prALetter},                // Lo  [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA\n\t{0x1920, 0x1922, prExtend},                 // Mn   [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U\n\t{0x1923, 0x1926, prExtend},                 // Mc   [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU\n\t{0x1927, 0x1928, prExtend},                 // Mn   [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O\n\t{0x1929, 0x192B, prExtend},                 // Mc   [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA\n\t{0x1930, 0x1931, prExtend},                 // Mc   [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA\n\t{0x1932, 0x1932, prExtend},                 // Mn       LIMBU SMALL LETTER ANUSVARA\n\t{0x1933, 0x1938, prExtend},                 // Mc   [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA\n\t{0x1939, 0x193B, prExtend},                 // Mn   [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I\n\t{0x1946, 0x194F, prNumeric},                // Nd  [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE\n\t{0x19D0, 0x19D9, prNumeric},                // Nd  [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE\n\t{0x1A00, 0x1A16, prALetter},                // Lo  [23] BUGINESE LETTER KA..BUGINESE LETTER HA\n\t{0x1A17, 0x1A18, prExtend},                 // Mn   [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U\n\t{0x1A19, 0x1A1A, prExtend},                 // Mc   [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O\n\t{0x1A1B, 0x1A1B, prExtend},                 // Mn       BUGINESE VOWEL SIGN AE\n\t{0x1A55, 0x1A55, prExtend},                 // Mc       TAI THAM CONSONANT SIGN MEDIAL RA\n\t{0x1A56, 0x1A56, prExtend},                 // Mn       TAI THAM CONSONANT SIGN MEDIAL LA\n\t{0x1A57, 0x1A57, prExtend},                 // Mc       TAI THAM CONSONANT SIGN LA TANG LAI\n\t{0x1A58, 0x1A5E, prExtend},                 // Mn   [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA\n\t{0x1A60, 0x1A60, prExtend},                 // Mn       TAI THAM SIGN SAKOT\n\t{0x1A61, 0x1A61, prExtend},                 // Mc       TAI THAM VOWEL SIGN A\n\t{0x1A62, 0x1A62, prExtend},                 // Mn       TAI THAM VOWEL SIGN MAI SAT\n\t{0x1A63, 0x1A64, prExtend},                 // Mc   [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA\n\t{0x1A65, 0x1A6C, prExtend},                 // Mn   [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW\n\t{0x1A6D, 0x1A72, prExtend},                 // Mc   [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI\n\t{0x1A73, 0x1A7C, prExtend},                 // Mn  [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN\n\t{0x1A7F, 0x1A7F, prExtend},                 // Mn       TAI THAM COMBINING CRYPTOGRAMMIC DOT\n\t{0x1A80, 0x1A89, prNumeric},                // Nd  [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE\n\t{0x1A90, 0x1A99, prNumeric},                // Nd  [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE\n\t{0x1AB0, 0x1ABD, prExtend},                 // Mn  [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW\n\t{0x1ABE, 0x1ABE, prExtend},                 // Me       COMBINING PARENTHESES OVERLAY\n\t{0x1ABF, 0x1ACE, prExtend},                 // Mn  [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T\n\t{0x1B00, 0x1B03, prExtend},                 // Mn   [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG\n\t{0x1B04, 0x1B04, prExtend},                 // Mc       BALINESE SIGN BISAH\n\t{0x1B05, 0x1B33, prALetter},                // Lo  [47] BALINESE LETTER AKARA..BALINESE LETTER HA\n\t{0x1B34, 0x1B34, prExtend},                 // Mn       BALINESE SIGN REREKAN\n\t{0x1B35, 0x1B35, prExtend},                 // Mc       BALINESE VOWEL SIGN TEDUNG\n\t{0x1B36, 0x1B3A, prExtend},                 // Mn   [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA\n\t{0x1B3B, 0x1B3B, prExtend},                 // Mc       BALINESE VOWEL SIGN RA REPA TEDUNG\n\t{0x1B3C, 0x1B3C, prExtend},                 // Mn       BALINESE VOWEL SIGN LA LENGA\n\t{0x1B3D, 0x1B41, prExtend},                 // Mc   [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG\n\t{0x1B42, 0x1B42, prExtend},                 // Mn       BALINESE VOWEL SIGN PEPET\n\t{0x1B43, 0x1B44, prExtend},                 // Mc   [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG\n\t{0x1B45, 0x1B4C, prALetter},                // Lo   [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA\n\t{0x1B50, 0x1B59, prNumeric},                // Nd  [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE\n\t{0x1B6B, 0x1B73, prExtend},                 // Mn   [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG\n\t{0x1B80, 0x1B81, prExtend},                 // Mn   [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR\n\t{0x1B82, 0x1B82, prExtend},                 // Mc       SUNDANESE SIGN PANGWISAD\n\t{0x1B83, 0x1BA0, prALetter},                // Lo  [30] SUNDANESE LETTER A..SUNDANESE LETTER HA\n\t{0x1BA1, 0x1BA1, prExtend},                 // Mc       SUNDANESE CONSONANT SIGN PAMINGKAL\n\t{0x1BA2, 0x1BA5, prExtend},                 // Mn   [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU\n\t{0x1BA6, 0x1BA7, prExtend},                 // Mc   [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG\n\t{0x1BA8, 0x1BA9, prExtend},                 // Mn   [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG\n\t{0x1BAA, 0x1BAA, prExtend},                 // Mc       SUNDANESE SIGN PAMAAEH\n\t{0x1BAB, 0x1BAD, prExtend},                 // Mn   [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA\n\t{0x1BAE, 0x1BAF, prALetter},                // Lo   [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA\n\t{0x1BB0, 0x1BB9, prNumeric},                // Nd  [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE\n\t{0x1BBA, 0x1BE5, prALetter},                // Lo  [44] SUNDANESE AVAGRAHA..BATAK LETTER U\n\t{0x1BE6, 0x1BE6, prExtend},                 // Mn       BATAK SIGN TOMPI\n\t{0x1BE7, 0x1BE7, prExtend},                 // Mc       BATAK VOWEL SIGN E\n\t{0x1BE8, 0x1BE9, prExtend},                 // Mn   [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE\n\t{0x1BEA, 0x1BEC, prExtend},                 // Mc   [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O\n\t{0x1BED, 0x1BED, prExtend},                 // Mn       BATAK VOWEL SIGN KARO O\n\t{0x1BEE, 0x1BEE, prExtend},                 // Mc       BATAK VOWEL SIGN U\n\t{0x1BEF, 0x1BF1, prExtend},                 // Mn   [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H\n\t{0x1BF2, 0x1BF3, prExtend},                 // Mc   [2] BATAK PANGOLAT..BATAK PANONGONAN\n\t{0x1C00, 0x1C23, prALetter},                // Lo  [36] LEPCHA LETTER KA..LEPCHA LETTER A\n\t{0x1C24, 0x1C2B, prExtend},                 // Mc   [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU\n\t{0x1C2C, 0x1C33, prExtend},                 // Mn   [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T\n\t{0x1C34, 0x1C35, prExtend},                 // Mc   [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG\n\t{0x1C36, 0x1C37, prExtend},                 // Mn   [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA\n\t{0x1C40, 0x1C49, prNumeric},                // Nd  [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE\n\t{0x1C4D, 0x1C4F, prALetter},                // Lo   [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA\n\t{0x1C50, 0x1C59, prNumeric},                // Nd  [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE\n\t{0x1C5A, 0x1C77, prALetter},                // Lo  [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH\n\t{0x1C78, 0x1C7D, prALetter},                // Lm   [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD\n\t{0x1C80, 0x1C88, prALetter},                // L&   [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK\n\t{0x1C90, 0x1CBA, prALetter},                // L&  [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN\n\t{0x1CBD, 0x1CBF, prALetter},                // L&   [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN\n\t{0x1CD0, 0x1CD2, prExtend},                 // Mn   [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA\n\t{0x1CD4, 0x1CE0, prExtend},                 // Mn  [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA\n\t{0x1CE1, 0x1CE1, prExtend},                 // Mc       VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA\n\t{0x1CE2, 0x1CE8, prExtend},                 // Mn   [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL\n\t{0x1CE9, 0x1CEC, prALetter},                // Lo   [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL\n\t{0x1CED, 0x1CED, prExtend},                 // Mn       VEDIC SIGN TIRYAK\n\t{0x1CEE, 0x1CF3, prALetter},                // Lo   [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA\n\t{0x1CF4, 0x1CF4, prExtend},                 // Mn       VEDIC TONE CANDRA ABOVE\n\t{0x1CF5, 0x1CF6, prALetter},                // Lo   [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA\n\t{0x1CF7, 0x1CF7, prExtend},                 // Mc       VEDIC SIGN ATIKRAMA\n\t{0x1CF8, 0x1CF9, prExtend},                 // Mn   [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE\n\t{0x1CFA, 0x1CFA, prALetter},                // Lo       VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA\n\t{0x1D00, 0x1D2B, prALetter},                // L&  [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL\n\t{0x1D2C, 0x1D6A, prALetter},                // Lm  [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI\n\t{0x1D6B, 0x1D77, prALetter},                // L&  [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G\n\t{0x1D78, 0x1D78, prALetter},                // Lm       MODIFIER LETTER CYRILLIC EN\n\t{0x1D79, 0x1D9A, prALetter},                // L&  [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK\n\t{0x1D9B, 0x1DBF, prALetter},                // Lm  [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA\n\t{0x1DC0, 0x1DFF, prExtend},                 // Mn  [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW\n\t{0x1E00, 0x1F15, prALetter},                // L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA\n\t{0x1F18, 0x1F1D, prALetter},                // L&   [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA\n\t{0x1F20, 0x1F45, prALetter},                // L&  [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA\n\t{0x1F48, 0x1F4D, prALetter},                // L&   [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA\n\t{0x1F50, 0x1F57, prALetter},                // L&   [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI\n\t{0x1F59, 0x1F59, prALetter},                // L&       GREEK CAPITAL LETTER UPSILON WITH DASIA\n\t{0x1F5B, 0x1F5B, prALetter},                // L&       GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA\n\t{0x1F5D, 0x1F5D, prALetter},                // L&       GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA\n\t{0x1F5F, 0x1F7D, prALetter},                // L&  [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA\n\t{0x1F80, 0x1FB4, prALetter},                // L&  [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FB6, 0x1FBC, prALetter},                // L&   [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI\n\t{0x1FBE, 0x1FBE, prALetter},                // L&       GREEK PROSGEGRAMMENI\n\t{0x1FC2, 0x1FC4, prALetter},                // L&   [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FC6, 0x1FCC, prALetter},                // L&   [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI\n\t{0x1FD0, 0x1FD3, prALetter},                // L&   [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA\n\t{0x1FD6, 0x1FDB, prALetter},                // L&   [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA\n\t{0x1FE0, 0x1FEC, prALetter},                // L&  [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA\n\t{0x1FF2, 0x1FF4, prALetter},                // L&   [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI\n\t{0x1FF6, 0x1FFC, prALetter},                // L&   [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI\n\t{0x2000, 0x2006, prWSegSpace},              // Zs   [7] EN QUAD..SIX-PER-EM SPACE\n\t{0x2008, 0x200A, prWSegSpace},              // Zs   [3] PUNCTUATION SPACE..HAIR SPACE\n\t{0x200C, 0x200C, prExtend},                 // Cf       ZERO WIDTH NON-JOINER\n\t{0x200D, 0x200D, prZWJ},                    // Cf       ZERO WIDTH JOINER\n\t{0x200E, 0x200F, prFormat},                 // Cf   [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK\n\t{0x2018, 0x2018, prMidNumLet},              // Pi       LEFT SINGLE QUOTATION MARK\n\t{0x2019, 0x2019, prMidNumLet},              // Pf       RIGHT SINGLE QUOTATION MARK\n\t{0x2024, 0x2024, prMidNumLet},              // Po       ONE DOT LEADER\n\t{0x2027, 0x2027, prMidLetter},              // Po       HYPHENATION POINT\n\t{0x2028, 0x2028, prNewline},                // Zl       LINE SEPARATOR\n\t{0x2029, 0x2029, prNewline},                // Zp       PARAGRAPH SEPARATOR\n\t{0x202A, 0x202E, prFormat},                 // Cf   [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE\n\t{0x202F, 0x202F, prExtendNumLet},           // Zs       NARROW NO-BREAK SPACE\n\t{0x203C, 0x203C, prExtendedPictographic},   // E0.6   [1] (‼️)       double exclamation mark\n\t{0x203F, 0x2040, prExtendNumLet},           // Pc   [2] UNDERTIE..CHARACTER TIE\n\t{0x2044, 0x2044, prMidNum},                 // Sm       FRACTION SLASH\n\t{0x2049, 0x2049, prExtendedPictographic},   // E0.6   [1] (⁉️)       exclamation question mark\n\t{0x2054, 0x2054, prExtendNumLet},           // Pc       INVERTED UNDERTIE\n\t{0x205F, 0x205F, prWSegSpace},              // Zs       MEDIUM MATHEMATICAL SPACE\n\t{0x2060, 0x2064, prFormat},                 // Cf   [5] WORD JOINER..INVISIBLE PLUS\n\t{0x2066, 0x206F, prFormat},                 // Cf  [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES\n\t{0x2071, 0x2071, prALetter},                // Lm       SUPERSCRIPT LATIN SMALL LETTER I\n\t{0x207F, 0x207F, prALetter},                // Lm       SUPERSCRIPT LATIN SMALL LETTER N\n\t{0x2090, 0x209C, prALetter},                // Lm  [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T\n\t{0x20D0, 0x20DC, prExtend},                 // Mn  [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE\n\t{0x20DD, 0x20E0, prExtend},                 // Me   [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH\n\t{0x20E1, 0x20E1, prExtend},                 // Mn       COMBINING LEFT RIGHT ARROW ABOVE\n\t{0x20E2, 0x20E4, prExtend},                 // Me   [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE\n\t{0x20E5, 0x20F0, prExtend},                 // Mn  [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE\n\t{0x2102, 0x2102, prALetter},                // L&       DOUBLE-STRUCK CAPITAL C\n\t{0x2107, 0x2107, prALetter},                // L&       EULER CONSTANT\n\t{0x210A, 0x2113, prALetter},                // L&  [10] SCRIPT SMALL G..SCRIPT SMALL L\n\t{0x2115, 0x2115, prALetter},                // L&       DOUBLE-STRUCK CAPITAL N\n\t{0x2119, 0x211D, prALetter},                // L&   [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R\n\t{0x2122, 0x2122, prExtendedPictographic},   // E0.6   [1] (™️)       trade mark\n\t{0x2124, 0x2124, prALetter},                // L&       DOUBLE-STRUCK CAPITAL Z\n\t{0x2126, 0x2126, prALetter},                // L&       OHM SIGN\n\t{0x2128, 0x2128, prALetter},                // L&       BLACK-LETTER CAPITAL Z\n\t{0x212A, 0x212D, prALetter},                // L&   [4] KELVIN SIGN..BLACK-LETTER CAPITAL C\n\t{0x212F, 0x2134, prALetter},                // L&   [6] SCRIPT SMALL E..SCRIPT SMALL O\n\t{0x2135, 0x2138, prALetter},                // Lo   [4] ALEF SYMBOL..DALET SYMBOL\n\t{0x2139, 0x2139, prExtendedPictographic},   // E0.6   [1] (ℹ️)       information\n\t{0x2139, 0x2139, prALetter},                // L&       INFORMATION SOURCE\n\t{0x213C, 0x213F, prALetter},                // L&   [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI\n\t{0x2145, 0x2149, prALetter},                // L&   [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J\n\t{0x214E, 0x214E, prALetter},                // L&       TURNED SMALL F\n\t{0x2160, 0x2182, prALetter},                // Nl  [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND\n\t{0x2183, 0x2184, prALetter},                // L&   [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C\n\t{0x2185, 0x2188, prALetter},                // Nl   [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND\n\t{0x2194, 0x2199, prExtendedPictographic},   // E0.6   [6] (↔️..↙️)    left-right arrow..down-left arrow\n\t{0x21A9, 0x21AA, prExtendedPictographic},   // E0.6   [2] (↩️..↪️)    right arrow curving left..left arrow curving right\n\t{0x231A, 0x231B, prExtendedPictographic},   // E0.6   [2] (⌚..⌛)    watch..hourglass done\n\t{0x2328, 0x2328, prExtendedPictographic},   // E1.0   [1] (⌨️)       keyboard\n\t{0x2388, 0x2388, prExtendedPictographic},   // E0.0   [1] (⎈)       HELM SYMBOL\n\t{0x23CF, 0x23CF, prExtendedPictographic},   // E1.0   [1] (⏏️)       eject button\n\t{0x23E9, 0x23EC, prExtendedPictographic},   // E0.6   [4] (⏩..⏬)    fast-forward button..fast down button\n\t{0x23ED, 0x23EE, prExtendedPictographic},   // E0.7   [2] (⏭️..⏮️)    next track button..last track button\n\t{0x23EF, 0x23EF, prExtendedPictographic},   // E1.0   [1] (⏯️)       play or pause button\n\t{0x23F0, 0x23F0, prExtendedPictographic},   // E0.6   [1] (⏰)       alarm clock\n\t{0x23F1, 0x23F2, prExtendedPictographic},   // E1.0   [2] (⏱️..⏲️)    stopwatch..timer clock\n\t{0x23F3, 0x23F3, prExtendedPictographic},   // E0.6   [1] (⏳)       hourglass not done\n\t{0x23F8, 0x23FA, prExtendedPictographic},   // E0.7   [3] (⏸️..⏺️)    pause button..record button\n\t{0x24B6, 0x24E9, prALetter},                // So  [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z\n\t{0x24C2, 0x24C2, prExtendedPictographic},   // E0.6   [1] (Ⓜ️)       circled M\n\t{0x25AA, 0x25AB, prExtendedPictographic},   // E0.6   [2] (▪️..▫️)    black small square..white small square\n\t{0x25B6, 0x25B6, prExtendedPictographic},   // E0.6   [1] (▶️)       play button\n\t{0x25C0, 0x25C0, prExtendedPictographic},   // E0.6   [1] (◀️)       reverse button\n\t{0x25FB, 0x25FE, prExtendedPictographic},   // E0.6   [4] (◻️..◾)    white medium square..black medium-small square\n\t{0x2600, 0x2601, prExtendedPictographic},   // E0.6   [2] (☀️..☁️)    sun..cloud\n\t{0x2602, 0x2603, prExtendedPictographic},   // E0.7   [2] (☂️..☃️)    umbrella..snowman\n\t{0x2604, 0x2604, prExtendedPictographic},   // E1.0   [1] (☄️)       comet\n\t{0x2605, 0x2605, prExtendedPictographic},   // E0.0   [1] (★)       BLACK STAR\n\t{0x2607, 0x260D, prExtendedPictographic},   // E0.0   [7] (☇..☍)    LIGHTNING..OPPOSITION\n\t{0x260E, 0x260E, prExtendedPictographic},   // E0.6   [1] (☎️)       telephone\n\t{0x260F, 0x2610, prExtendedPictographic},   // E0.0   [2] (☏..☐)    WHITE TELEPHONE..BALLOT BOX\n\t{0x2611, 0x2611, prExtendedPictographic},   // E0.6   [1] (☑️)       check box with check\n\t{0x2612, 0x2612, prExtendedPictographic},   // E0.0   [1] (☒)       BALLOT BOX WITH X\n\t{0x2614, 0x2615, prExtendedPictographic},   // E0.6   [2] (☔..☕)    umbrella with rain drops..hot beverage\n\t{0x2616, 0x2617, prExtendedPictographic},   // E0.0   [2] (☖..☗)    WHITE SHOGI PIECE..BLACK SHOGI PIECE\n\t{0x2618, 0x2618, prExtendedPictographic},   // E1.0   [1] (☘️)       shamrock\n\t{0x2619, 0x261C, prExtendedPictographic},   // E0.0   [4] (☙..☜)    REVERSED ROTATED FLORAL HEART BULLET..WHITE LEFT POINTING INDEX\n\t{0x261D, 0x261D, prExtendedPictographic},   // E0.6   [1] (☝️)       index pointing up\n\t{0x261E, 0x261F, prExtendedPictographic},   // E0.0   [2] (☞..☟)    WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX\n\t{0x2620, 0x2620, prExtendedPictographic},   // E1.0   [1] (☠️)       skull and crossbones\n\t{0x2621, 0x2621, prExtendedPictographic},   // E0.0   [1] (☡)       CAUTION SIGN\n\t{0x2622, 0x2623, prExtendedPictographic},   // E1.0   [2] (☢️..☣️)    radioactive..biohazard\n\t{0x2624, 0x2625, prExtendedPictographic},   // E0.0   [2] (☤..☥)    CADUCEUS..ANKH\n\t{0x2626, 0x2626, prExtendedPictographic},   // E1.0   [1] (☦️)       orthodox cross\n\t{0x2627, 0x2629, prExtendedPictographic},   // E0.0   [3] (☧..☩)    CHI RHO..CROSS OF JERUSALEM\n\t{0x262A, 0x262A, prExtendedPictographic},   // E0.7   [1] (☪️)       star and crescent\n\t{0x262B, 0x262D, prExtendedPictographic},   // E0.0   [3] (☫..☭)    FARSI SYMBOL..HAMMER AND SICKLE\n\t{0x262E, 0x262E, prExtendedPictographic},   // E1.0   [1] (☮️)       peace symbol\n\t{0x262F, 0x262F, prExtendedPictographic},   // E0.7   [1] (☯️)       yin yang\n\t{0x2630, 0x2637, prExtendedPictographic},   // E0.0   [8] (☰..☷)    TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH\n\t{0x2638, 0x2639, prExtendedPictographic},   // E0.7   [2] (☸️..☹️)    wheel of dharma..frowning face\n\t{0x263A, 0x263A, prExtendedPictographic},   // E0.6   [1] (☺️)       smiling face\n\t{0x263B, 0x263F, prExtendedPictographic},   // E0.0   [5] (☻..☿)    BLACK SMILING FACE..MERCURY\n\t{0x2640, 0x2640, prExtendedPictographic},   // E4.0   [1] (♀️)       female sign\n\t{0x2641, 0x2641, prExtendedPictographic},   // E0.0   [1] (♁)       EARTH\n\t{0x2642, 0x2642, prExtendedPictographic},   // E4.0   [1] (♂️)       male sign\n\t{0x2643, 0x2647, prExtendedPictographic},   // E0.0   [5] (♃..♇)    JUPITER..PLUTO\n\t{0x2648, 0x2653, prExtendedPictographic},   // E0.6  [12] (♈..♓)    Aries..Pisces\n\t{0x2654, 0x265E, prExtendedPictographic},   // E0.0  [11] (♔..♞)    WHITE CHESS KING..BLACK CHESS KNIGHT\n\t{0x265F, 0x265F, prExtendedPictographic},   // E11.0  [1] (♟️)       chess pawn\n\t{0x2660, 0x2660, prExtendedPictographic},   // E0.6   [1] (♠️)       spade suit\n\t{0x2661, 0x2662, prExtendedPictographic},   // E0.0   [2] (♡..♢)    WHITE HEART SUIT..WHITE DIAMOND SUIT\n\t{0x2663, 0x2663, prExtendedPictographic},   // E0.6   [1] (♣️)       club suit\n\t{0x2664, 0x2664, prExtendedPictographic},   // E0.0   [1] (♤)       WHITE SPADE SUIT\n\t{0x2665, 0x2666, prExtendedPictographic},   // E0.6   [2] (♥️..♦️)    heart suit..diamond suit\n\t{0x2667, 0x2667, prExtendedPictographic},   // E0.0   [1] (♧)       WHITE CLUB SUIT\n\t{0x2668, 0x2668, prExtendedPictographic},   // E0.6   [1] (♨️)       hot springs\n\t{0x2669, 0x267A, prExtendedPictographic},   // E0.0  [18] (♩..♺)    QUARTER NOTE..RECYCLING SYMBOL FOR GENERIC MATERIALS\n\t{0x267B, 0x267B, prExtendedPictographic},   // E0.6   [1] (♻️)       recycling symbol\n\t{0x267C, 0x267D, prExtendedPictographic},   // E0.0   [2] (♼..♽)    RECYCLED PAPER SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL\n\t{0x267E, 0x267E, prExtendedPictographic},   // E11.0  [1] (♾️)       infinity\n\t{0x267F, 0x267F, prExtendedPictographic},   // E0.6   [1] (♿)       wheelchair symbol\n\t{0x2680, 0x2685, prExtendedPictographic},   // E0.0   [6] (⚀..⚅)    DIE FACE-1..DIE FACE-6\n\t{0x2690, 0x2691, prExtendedPictographic},   // E0.0   [2] (⚐..⚑)    WHITE FLAG..BLACK FLAG\n\t{0x2692, 0x2692, prExtendedPictographic},   // E1.0   [1] (⚒️)       hammer and pick\n\t{0x2693, 0x2693, prExtendedPictographic},   // E0.6   [1] (⚓)       anchor\n\t{0x2694, 0x2694, prExtendedPictographic},   // E1.0   [1] (⚔️)       crossed swords\n\t{0x2695, 0x2695, prExtendedPictographic},   // E4.0   [1] (⚕️)       medical symbol\n\t{0x2696, 0x2697, prExtendedPictographic},   // E1.0   [2] (⚖️..⚗️)    balance scale..alembic\n\t{0x2698, 0x2698, prExtendedPictographic},   // E0.0   [1] (⚘)       FLOWER\n\t{0x2699, 0x2699, prExtendedPictographic},   // E1.0   [1] (⚙️)       gear\n\t{0x269A, 0x269A, prExtendedPictographic},   // E0.0   [1] (⚚)       STAFF OF HERMES\n\t{0x269B, 0x269C, prExtendedPictographic},   // E1.0   [2] (⚛️..⚜️)    atom symbol..fleur-de-lis\n\t{0x269D, 0x269F, prExtendedPictographic},   // E0.0   [3] (⚝..⚟)    OUTLINED WHITE STAR..THREE LINES CONVERGING LEFT\n\t{0x26A0, 0x26A1, prExtendedPictographic},   // E0.6   [2] (⚠️..⚡)    warning..high voltage\n\t{0x26A2, 0x26A6, prExtendedPictographic},   // E0.0   [5] (⚢..⚦)    DOUBLED FEMALE SIGN..MALE WITH STROKE SIGN\n\t{0x26A7, 0x26A7, prExtendedPictographic},   // E13.0  [1] (⚧️)       transgender symbol\n\t{0x26A8, 0x26A9, prExtendedPictographic},   // E0.0   [2] (⚨..⚩)    VERTICAL MALE WITH STROKE SIGN..HORIZONTAL MALE WITH STROKE SIGN\n\t{0x26AA, 0x26AB, prExtendedPictographic},   // E0.6   [2] (⚪..⚫)    white circle..black circle\n\t{0x26AC, 0x26AF, prExtendedPictographic},   // E0.0   [4] (⚬..⚯)    MEDIUM SMALL WHITE CIRCLE..UNMARRIED PARTNERSHIP SYMBOL\n\t{0x26B0, 0x26B1, prExtendedPictographic},   // E1.0   [2] (⚰️..⚱️)    coffin..funeral urn\n\t{0x26B2, 0x26BC, prExtendedPictographic},   // E0.0  [11] (⚲..⚼)    NEUTER..SESQUIQUADRATE\n\t{0x26BD, 0x26BE, prExtendedPictographic},   // E0.6   [2] (⚽..⚾)    soccer ball..baseball\n\t{0x26BF, 0x26C3, prExtendedPictographic},   // E0.0   [5] (⚿..⛃)    SQUARED KEY..BLACK DRAUGHTS KING\n\t{0x26C4, 0x26C5, prExtendedPictographic},   // E0.6   [2] (⛄..⛅)    snowman without snow..sun behind cloud\n\t{0x26C6, 0x26C7, prExtendedPictographic},   // E0.0   [2] (⛆..⛇)    RAIN..BLACK SNOWMAN\n\t{0x26C8, 0x26C8, prExtendedPictographic},   // E0.7   [1] (⛈️)       cloud with lightning and rain\n\t{0x26C9, 0x26CD, prExtendedPictographic},   // E0.0   [5] (⛉..⛍)    TURNED WHITE SHOGI PIECE..DISABLED CAR\n\t{0x26CE, 0x26CE, prExtendedPictographic},   // E0.6   [1] (⛎)       Ophiuchus\n\t{0x26CF, 0x26CF, prExtendedPictographic},   // E0.7   [1] (⛏️)       pick\n\t{0x26D0, 0x26D0, prExtendedPictographic},   // E0.0   [1] (⛐)       CAR SLIDING\n\t{0x26D1, 0x26D1, prExtendedPictographic},   // E0.7   [1] (⛑️)       rescue worker’s helmet\n\t{0x26D2, 0x26D2, prExtendedPictographic},   // E0.0   [1] (⛒)       CIRCLED CROSSING LANES\n\t{0x26D3, 0x26D3, prExtendedPictographic},   // E0.7   [1] (⛓️)       chains\n\t{0x26D4, 0x26D4, prExtendedPictographic},   // E0.6   [1] (⛔)       no entry\n\t{0x26D5, 0x26E8, prExtendedPictographic},   // E0.0  [20] (⛕..⛨)    ALTERNATE ONE-WAY LEFT WAY TRAFFIC..BLACK CROSS ON SHIELD\n\t{0x26E9, 0x26E9, prExtendedPictographic},   // E0.7   [1] (⛩️)       shinto shrine\n\t{0x26EA, 0x26EA, prExtendedPictographic},   // E0.6   [1] (⛪)       church\n\t{0x26EB, 0x26EF, prExtendedPictographic},   // E0.0   [5] (⛫..⛯)    CASTLE..MAP SYMBOL FOR LIGHTHOUSE\n\t{0x26F0, 0x26F1, prExtendedPictographic},   // E0.7   [2] (⛰️..⛱️)    mountain..umbrella on ground\n\t{0x26F2, 0x26F3, prExtendedPictographic},   // E0.6   [2] (⛲..⛳)    fountain..flag in hole\n\t{0x26F4, 0x26F4, prExtendedPictographic},   // E0.7   [1] (⛴️)       ferry\n\t{0x26F5, 0x26F5, prExtendedPictographic},   // E0.6   [1] (⛵)       sailboat\n\t{0x26F6, 0x26F6, prExtendedPictographic},   // E0.0   [1] (⛶)       SQUARE FOUR CORNERS\n\t{0x26F7, 0x26F9, prExtendedPictographic},   // E0.7   [3] (⛷️..⛹️)    skier..person bouncing ball\n\t{0x26FA, 0x26FA, prExtendedPictographic},   // E0.6   [1] (⛺)       tent\n\t{0x26FB, 0x26FC, prExtendedPictographic},   // E0.0   [2] (⛻..⛼)    JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL\n\t{0x26FD, 0x26FD, prExtendedPictographic},   // E0.6   [1] (⛽)       fuel pump\n\t{0x26FE, 0x2701, prExtendedPictographic},   // E0.0   [4] (⛾..✁)    CUP ON BLACK SQUARE..UPPER BLADE SCISSORS\n\t{0x2702, 0x2702, prExtendedPictographic},   // E0.6   [1] (✂️)       scissors\n\t{0x2703, 0x2704, prExtendedPictographic},   // E0.0   [2] (✃..✄)    LOWER BLADE SCISSORS..WHITE SCISSORS\n\t{0x2705, 0x2705, prExtendedPictographic},   // E0.6   [1] (✅)       check mark button\n\t{0x2708, 0x270C, prExtendedPictographic},   // E0.6   [5] (✈️..✌️)    airplane..victory hand\n\t{0x270D, 0x270D, prExtendedPictographic},   // E0.7   [1] (✍️)       writing hand\n\t{0x270E, 0x270E, prExtendedPictographic},   // E0.0   [1] (✎)       LOWER RIGHT PENCIL\n\t{0x270F, 0x270F, prExtendedPictographic},   // E0.6   [1] (✏️)       pencil\n\t{0x2710, 0x2711, prExtendedPictographic},   // E0.0   [2] (✐..✑)    UPPER RIGHT PENCIL..WHITE NIB\n\t{0x2712, 0x2712, prExtendedPictographic},   // E0.6   [1] (✒️)       black nib\n\t{0x2714, 0x2714, prExtendedPictographic},   // E0.6   [1] (✔️)       check mark\n\t{0x2716, 0x2716, prExtendedPictographic},   // E0.6   [1] (✖️)       multiply\n\t{0x271D, 0x271D, prExtendedPictographic},   // E0.7   [1] (✝️)       latin cross\n\t{0x2721, 0x2721, prExtendedPictographic},   // E0.7   [1] (✡️)       star of David\n\t{0x2728, 0x2728, prExtendedPictographic},   // E0.6   [1] (✨)       sparkles\n\t{0x2733, 0x2734, prExtendedPictographic},   // E0.6   [2] (✳️..✴️)    eight-spoked asterisk..eight-pointed star\n\t{0x2744, 0x2744, prExtendedPictographic},   // E0.6   [1] (❄️)       snowflake\n\t{0x2747, 0x2747, prExtendedPictographic},   // E0.6   [1] (❇️)       sparkle\n\t{0x274C, 0x274C, prExtendedPictographic},   // E0.6   [1] (❌)       cross mark\n\t{0x274E, 0x274E, prExtendedPictographic},   // E0.6   [1] (❎)       cross mark button\n\t{0x2753, 0x2755, prExtendedPictographic},   // E0.6   [3] (❓..❕)    red question mark..white exclamation mark\n\t{0x2757, 0x2757, prExtendedPictographic},   // E0.6   [1] (❗)       red exclamation mark\n\t{0x2763, 0x2763, prExtendedPictographic},   // E1.0   [1] (❣️)       heart exclamation\n\t{0x2764, 0x2764, prExtendedPictographic},   // E0.6   [1] (❤️)       red heart\n\t{0x2765, 0x2767, prExtendedPictographic},   // E0.0   [3] (❥..❧)    ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET\n\t{0x2795, 0x2797, prExtendedPictographic},   // E0.6   [3] (➕..➗)    plus..divide\n\t{0x27A1, 0x27A1, prExtendedPictographic},   // E0.6   [1] (➡️)       right arrow\n\t{0x27B0, 0x27B0, prExtendedPictographic},   // E0.6   [1] (➰)       curly loop\n\t{0x27BF, 0x27BF, prExtendedPictographic},   // E1.0   [1] (➿)       double curly loop\n\t{0x2934, 0x2935, prExtendedPictographic},   // E0.6   [2] (⤴️..⤵️)    right arrow curving up..right arrow curving down\n\t{0x2B05, 0x2B07, prExtendedPictographic},   // E0.6   [3] (⬅️..⬇️)    left arrow..down arrow\n\t{0x2B1B, 0x2B1C, prExtendedPictographic},   // E0.6   [2] (⬛..⬜)    black large square..white large square\n\t{0x2B50, 0x2B50, prExtendedPictographic},   // E0.6   [1] (⭐)       star\n\t{0x2B55, 0x2B55, prExtendedPictographic},   // E0.6   [1] (⭕)       hollow red circle\n\t{0x2C00, 0x2C7B, prALetter},                // L& [124] GLAGOLITIC CAPITAL LETTER AZU..LATIN LETTER SMALL CAPITAL TURNED E\n\t{0x2C7C, 0x2C7D, prALetter},                // Lm   [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V\n\t{0x2C7E, 0x2CE4, prALetter},                // L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI\n\t{0x2CEB, 0x2CEE, prALetter},                // L&   [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA\n\t{0x2CEF, 0x2CF1, prExtend},                 // Mn   [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS\n\t{0x2CF2, 0x2CF3, prALetter},                // L&   [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI\n\t{0x2D00, 0x2D25, prALetter},                // L&  [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE\n\t{0x2D27, 0x2D27, prALetter},                // L&       GEORGIAN SMALL LETTER YN\n\t{0x2D2D, 0x2D2D, prALetter},                // L&       GEORGIAN SMALL LETTER AEN\n\t{0x2D30, 0x2D67, prALetter},                // Lo  [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO\n\t{0x2D6F, 0x2D6F, prALetter},                // Lm       TIFINAGH MODIFIER LETTER LABIALIZATION MARK\n\t{0x2D7F, 0x2D7F, prExtend},                 // Mn       TIFINAGH CONSONANT JOINER\n\t{0x2D80, 0x2D96, prALetter},                // Lo  [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE\n\t{0x2DA0, 0x2DA6, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO\n\t{0x2DA8, 0x2DAE, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO\n\t{0x2DB0, 0x2DB6, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO\n\t{0x2DB8, 0x2DBE, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO\n\t{0x2DC0, 0x2DC6, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO\n\t{0x2DC8, 0x2DCE, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO\n\t{0x2DD0, 0x2DD6, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO\n\t{0x2DD8, 0x2DDE, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO\n\t{0x2DE0, 0x2DFF, prExtend},                 // Mn  [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS\n\t{0x2E2F, 0x2E2F, prALetter},                // Lm       VERTICAL TILDE\n\t{0x3000, 0x3000, prWSegSpace},              // Zs       IDEOGRAPHIC SPACE\n\t{0x3005, 0x3005, prALetter},                // Lm       IDEOGRAPHIC ITERATION MARK\n\t{0x302A, 0x302D, prExtend},                 // Mn   [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK\n\t{0x302E, 0x302F, prExtend},                 // Mc   [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK\n\t{0x3030, 0x3030, prExtendedPictographic},   // E0.6   [1] (〰️)       wavy dash\n\t{0x3031, 0x3035, prKatakana},               // Lm   [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF\n\t{0x303B, 0x303B, prALetter},                // Lm       VERTICAL IDEOGRAPHIC ITERATION MARK\n\t{0x303C, 0x303C, prALetter},                // Lo       MASU MARK\n\t{0x303D, 0x303D, prExtendedPictographic},   // E0.6   [1] (〽️)       part alternation mark\n\t{0x3099, 0x309A, prExtend},                 // Mn   [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK\n\t{0x309B, 0x309C, prKatakana},               // Sk   [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK\n\t{0x30A0, 0x30A0, prKatakana},               // Pd       KATAKANA-HIRAGANA DOUBLE HYPHEN\n\t{0x30A1, 0x30FA, prKatakana},               // Lo  [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO\n\t{0x30FC, 0x30FE, prKatakana},               // Lm   [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK\n\t{0x30FF, 0x30FF, prKatakana},               // Lo       KATAKANA DIGRAPH KOTO\n\t{0x3105, 0x312F, prALetter},                // Lo  [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN\n\t{0x3131, 0x318E, prALetter},                // Lo  [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE\n\t{0x31A0, 0x31BF, prALetter},                // Lo  [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH\n\t{0x31F0, 0x31FF, prKatakana},               // Lo  [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO\n\t{0x3297, 0x3297, prExtendedPictographic},   // E0.6   [1] (㊗️)       Japanese “congratulations” button\n\t{0x3299, 0x3299, prExtendedPictographic},   // E0.6   [1] (㊙️)       Japanese “secret” button\n\t{0x32D0, 0x32FE, prKatakana},               // So  [47] CIRCLED KATAKANA A..CIRCLED KATAKANA WO\n\t{0x3300, 0x3357, prKatakana},               // So  [88] SQUARE APAATO..SQUARE WATTO\n\t{0xA000, 0xA014, prALetter},                // Lo  [21] YI SYLLABLE IT..YI SYLLABLE E\n\t{0xA015, 0xA015, prALetter},                // Lm       YI SYLLABLE WU\n\t{0xA016, 0xA48C, prALetter},                // Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR\n\t{0xA4D0, 0xA4F7, prALetter},                // Lo  [40] LISU LETTER BA..LISU LETTER OE\n\t{0xA4F8, 0xA4FD, prALetter},                // Lm   [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU\n\t{0xA500, 0xA60B, prALetter},                // Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG\n\t{0xA60C, 0xA60C, prALetter},                // Lm       VAI SYLLABLE LENGTHENER\n\t{0xA610, 0xA61F, prALetter},                // Lo  [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG\n\t{0xA620, 0xA629, prNumeric},                // Nd  [10] VAI DIGIT ZERO..VAI DIGIT NINE\n\t{0xA62A, 0xA62B, prALetter},                // Lo   [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO\n\t{0xA640, 0xA66D, prALetter},                // L&  [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O\n\t{0xA66E, 0xA66E, prALetter},                // Lo       CYRILLIC LETTER MULTIOCULAR O\n\t{0xA66F, 0xA66F, prExtend},                 // Mn       COMBINING CYRILLIC VZMET\n\t{0xA670, 0xA672, prExtend},                 // Me   [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN\n\t{0xA674, 0xA67D, prExtend},                 // Mn  [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK\n\t{0xA67F, 0xA67F, prALetter},                // Lm       CYRILLIC PAYEROK\n\t{0xA680, 0xA69B, prALetter},                // L&  [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O\n\t{0xA69C, 0xA69D, prALetter},                // Lm   [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN\n\t{0xA69E, 0xA69F, prExtend},                 // Mn   [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E\n\t{0xA6A0, 0xA6E5, prALetter},                // Lo  [70] BAMUM LETTER A..BAMUM LETTER KI\n\t{0xA6E6, 0xA6EF, prALetter},                // Nl  [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM\n\t{0xA6F0, 0xA6F1, prExtend},                 // Mn   [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS\n\t{0xA708, 0xA716, prALetter},                // Sk  [15] MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR\n\t{0xA717, 0xA71F, prALetter},                // Lm   [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK\n\t{0xA720, 0xA721, prALetter},                // Sk   [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE\n\t{0xA722, 0xA76F, prALetter},                // L&  [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON\n\t{0xA770, 0xA770, prALetter},                // Lm       MODIFIER LETTER US\n\t{0xA771, 0xA787, prALetter},                // L&  [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T\n\t{0xA788, 0xA788, prALetter},                // Lm       MODIFIER LETTER LOW CIRCUMFLEX ACCENT\n\t{0xA789, 0xA78A, prALetter},                // Sk   [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN\n\t{0xA78B, 0xA78E, prALetter},                // L&   [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT\n\t{0xA78F, 0xA78F, prALetter},                // Lo       LATIN LETTER SINOLOGICAL DOT\n\t{0xA790, 0xA7CA, prALetter},                // L&  [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY\n\t{0xA7D0, 0xA7D1, prALetter},                // L&   [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G\n\t{0xA7D3, 0xA7D3, prALetter},                // L&       LATIN SMALL LETTER DOUBLE THORN\n\t{0xA7D5, 0xA7D9, prALetter},                // L&   [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S\n\t{0xA7F2, 0xA7F4, prALetter},                // Lm   [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q\n\t{0xA7F5, 0xA7F6, prALetter},                // L&   [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H\n\t{0xA7F7, 0xA7F7, prALetter},                // Lo       LATIN EPIGRAPHIC LETTER SIDEWAYS I\n\t{0xA7F8, 0xA7F9, prALetter},                // Lm   [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE\n\t{0xA7FA, 0xA7FA, prALetter},                // L&       LATIN LETTER SMALL CAPITAL TURNED M\n\t{0xA7FB, 0xA801, prALetter},                // Lo   [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I\n\t{0xA802, 0xA802, prExtend},                 // Mn       SYLOTI NAGRI SIGN DVISVARA\n\t{0xA803, 0xA805, prALetter},                // Lo   [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O\n\t{0xA806, 0xA806, prExtend},                 // Mn       SYLOTI NAGRI SIGN HASANTA\n\t{0xA807, 0xA80A, prALetter},                // Lo   [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO\n\t{0xA80B, 0xA80B, prExtend},                 // Mn       SYLOTI NAGRI SIGN ANUSVARA\n\t{0xA80C, 0xA822, prALetter},                // Lo  [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO\n\t{0xA823, 0xA824, prExtend},                 // Mc   [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I\n\t{0xA825, 0xA826, prExtend},                 // Mn   [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E\n\t{0xA827, 0xA827, prExtend},                 // Mc       SYLOTI NAGRI VOWEL SIGN OO\n\t{0xA82C, 0xA82C, prExtend},                 // Mn       SYLOTI NAGRI SIGN ALTERNATE HASANTA\n\t{0xA840, 0xA873, prALetter},                // Lo  [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU\n\t{0xA880, 0xA881, prExtend},                 // Mc   [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA\n\t{0xA882, 0xA8B3, prALetter},                // Lo  [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA\n\t{0xA8B4, 0xA8C3, prExtend},                 // Mc  [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU\n\t{0xA8C4, 0xA8C5, prExtend},                 // Mn   [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU\n\t{0xA8D0, 0xA8D9, prNumeric},                // Nd  [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE\n\t{0xA8E0, 0xA8F1, prExtend},                 // Mn  [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA\n\t{0xA8F2, 0xA8F7, prALetter},                // Lo   [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA\n\t{0xA8FB, 0xA8FB, prALetter},                // Lo       DEVANAGARI HEADSTROKE\n\t{0xA8FD, 0xA8FE, prALetter},                // Lo   [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY\n\t{0xA8FF, 0xA8FF, prExtend},                 // Mn       DEVANAGARI VOWEL SIGN AY\n\t{0xA900, 0xA909, prNumeric},                // Nd  [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE\n\t{0xA90A, 0xA925, prALetter},                // Lo  [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO\n\t{0xA926, 0xA92D, prExtend},                 // Mn   [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU\n\t{0xA930, 0xA946, prALetter},                // Lo  [23] REJANG LETTER KA..REJANG LETTER A\n\t{0xA947, 0xA951, prExtend},                 // Mn  [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R\n\t{0xA952, 0xA953, prExtend},                 // Mc   [2] REJANG CONSONANT SIGN H..REJANG VIRAMA\n\t{0xA960, 0xA97C, prALetter},                // Lo  [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH\n\t{0xA980, 0xA982, prExtend},                 // Mn   [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR\n\t{0xA983, 0xA983, prExtend},                 // Mc       JAVANESE SIGN WIGNYAN\n\t{0xA984, 0xA9B2, prALetter},                // Lo  [47] JAVANESE LETTER A..JAVANESE LETTER HA\n\t{0xA9B3, 0xA9B3, prExtend},                 // Mn       JAVANESE SIGN CECAK TELU\n\t{0xA9B4, 0xA9B5, prExtend},                 // Mc   [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG\n\t{0xA9B6, 0xA9B9, prExtend},                 // Mn   [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT\n\t{0xA9BA, 0xA9BB, prExtend},                 // Mc   [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE\n\t{0xA9BC, 0xA9BD, prExtend},                 // Mn   [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET\n\t{0xA9BE, 0xA9C0, prExtend},                 // Mc   [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON\n\t{0xA9CF, 0xA9CF, prALetter},                // Lm       JAVANESE PANGRANGKEP\n\t{0xA9D0, 0xA9D9, prNumeric},                // Nd  [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE\n\t{0xA9E5, 0xA9E5, prExtend},                 // Mn       MYANMAR SIGN SHAN SAW\n\t{0xA9F0, 0xA9F9, prNumeric},                // Nd  [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE\n\t{0xAA00, 0xAA28, prALetter},                // Lo  [41] CHAM LETTER A..CHAM LETTER HA\n\t{0xAA29, 0xAA2E, prExtend},                 // Mn   [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE\n\t{0xAA2F, 0xAA30, prExtend},                 // Mc   [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI\n\t{0xAA31, 0xAA32, prExtend},                 // Mn   [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE\n\t{0xAA33, 0xAA34, prExtend},                 // Mc   [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA\n\t{0xAA35, 0xAA36, prExtend},                 // Mn   [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA\n\t{0xAA40, 0xAA42, prALetter},                // Lo   [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG\n\t{0xAA43, 0xAA43, prExtend},                 // Mn       CHAM CONSONANT SIGN FINAL NG\n\t{0xAA44, 0xAA4B, prALetter},                // Lo   [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS\n\t{0xAA4C, 0xAA4C, prExtend},                 // Mn       CHAM CONSONANT SIGN FINAL M\n\t{0xAA4D, 0xAA4D, prExtend},                 // Mc       CHAM CONSONANT SIGN FINAL H\n\t{0xAA50, 0xAA59, prNumeric},                // Nd  [10] CHAM DIGIT ZERO..CHAM DIGIT NINE\n\t{0xAA7B, 0xAA7B, prExtend},                 // Mc       MYANMAR SIGN PAO KAREN TONE\n\t{0xAA7C, 0xAA7C, prExtend},                 // Mn       MYANMAR SIGN TAI LAING TONE-2\n\t{0xAA7D, 0xAA7D, prExtend},                 // Mc       MYANMAR SIGN TAI LAING TONE-5\n\t{0xAAB0, 0xAAB0, prExtend},                 // Mn       TAI VIET MAI KANG\n\t{0xAAB2, 0xAAB4, prExtend},                 // Mn   [3] TAI VIET VOWEL I..TAI VIET VOWEL U\n\t{0xAAB7, 0xAAB8, prExtend},                 // Mn   [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA\n\t{0xAABE, 0xAABF, prExtend},                 // Mn   [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK\n\t{0xAAC1, 0xAAC1, prExtend},                 // Mn       TAI VIET TONE MAI THO\n\t{0xAAE0, 0xAAEA, prALetter},                // Lo  [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA\n\t{0xAAEB, 0xAAEB, prExtend},                 // Mc       MEETEI MAYEK VOWEL SIGN II\n\t{0xAAEC, 0xAAED, prExtend},                 // Mn   [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI\n\t{0xAAEE, 0xAAEF, prExtend},                 // Mc   [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU\n\t{0xAAF2, 0xAAF2, prALetter},                // Lo       MEETEI MAYEK ANJI\n\t{0xAAF3, 0xAAF4, prALetter},                // Lm   [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK\n\t{0xAAF5, 0xAAF5, prExtend},                 // Mc       MEETEI MAYEK VOWEL SIGN VISARGA\n\t{0xAAF6, 0xAAF6, prExtend},                 // Mn       MEETEI MAYEK VIRAMA\n\t{0xAB01, 0xAB06, prALetter},                // Lo   [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO\n\t{0xAB09, 0xAB0E, prALetter},                // Lo   [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO\n\t{0xAB11, 0xAB16, prALetter},                // Lo   [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO\n\t{0xAB20, 0xAB26, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO\n\t{0xAB28, 0xAB2E, prALetter},                // Lo   [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO\n\t{0xAB30, 0xAB5A, prALetter},                // L&  [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG\n\t{0xAB5B, 0xAB5B, prALetter},                // Sk       MODIFIER BREVE WITH INVERTED BREVE\n\t{0xAB5C, 0xAB5F, prALetter},                // Lm   [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK\n\t{0xAB60, 0xAB68, prALetter},                // L&   [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE\n\t{0xAB69, 0xAB69, prALetter},                // Lm       MODIFIER LETTER SMALL TURNED W\n\t{0xAB70, 0xABBF, prALetter},                // L&  [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA\n\t{0xABC0, 0xABE2, prALetter},                // Lo  [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM\n\t{0xABE3, 0xABE4, prExtend},                 // Mc   [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP\n\t{0xABE5, 0xABE5, prExtend},                 // Mn       MEETEI MAYEK VOWEL SIGN ANAP\n\t{0xABE6, 0xABE7, prExtend},                 // Mc   [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP\n\t{0xABE8, 0xABE8, prExtend},                 // Mn       MEETEI MAYEK VOWEL SIGN UNAP\n\t{0xABE9, 0xABEA, prExtend},                 // Mc   [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG\n\t{0xABEC, 0xABEC, prExtend},                 // Mc       MEETEI MAYEK LUM IYEK\n\t{0xABED, 0xABED, prExtend},                 // Mn       MEETEI MAYEK APUN IYEK\n\t{0xABF0, 0xABF9, prNumeric},                // Nd  [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE\n\t{0xAC00, 0xD7A3, prALetter},                // Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH\n\t{0xD7B0, 0xD7C6, prALetter},                // Lo  [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E\n\t{0xD7CB, 0xD7FB, prALetter},                // Lo  [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH\n\t{0xFB00, 0xFB06, prALetter},                // L&   [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST\n\t{0xFB13, 0xFB17, prALetter},                // L&   [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH\n\t{0xFB1D, 0xFB1D, prHebrewLetter},           // Lo       HEBREW LETTER YOD WITH HIRIQ\n\t{0xFB1E, 0xFB1E, prExtend},                 // Mn       HEBREW POINT JUDEO-SPANISH VARIKA\n\t{0xFB1F, 0xFB28, prHebrewLetter},           // Lo  [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV\n\t{0xFB2A, 0xFB36, prHebrewLetter},           // Lo  [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH\n\t{0xFB38, 0xFB3C, prHebrewLetter},           // Lo   [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH\n\t{0xFB3E, 0xFB3E, prHebrewLetter},           // Lo       HEBREW LETTER MEM WITH DAGESH\n\t{0xFB40, 0xFB41, prHebrewLetter},           // Lo   [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH\n\t{0xFB43, 0xFB44, prHebrewLetter},           // Lo   [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH\n\t{0xFB46, 0xFB4F, prHebrewLetter},           // Lo  [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED\n\t{0xFB50, 0xFBB1, prALetter},                // Lo  [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM\n\t{0xFBD3, 0xFD3D, prALetter},                // Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM\n\t{0xFD50, 0xFD8F, prALetter},                // Lo  [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM\n\t{0xFD92, 0xFDC7, prALetter},                // Lo  [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM\n\t{0xFDF0, 0xFDFB, prALetter},                // Lo  [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU\n\t{0xFE00, 0xFE0F, prExtend},                 // Mn  [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16\n\t{0xFE10, 0xFE10, prMidNum},                 // Po       PRESENTATION FORM FOR VERTICAL COMMA\n\t{0xFE13, 0xFE13, prMidLetter},              // Po       PRESENTATION FORM FOR VERTICAL COLON\n\t{0xFE14, 0xFE14, prMidNum},                 // Po       PRESENTATION FORM FOR VERTICAL SEMICOLON\n\t{0xFE20, 0xFE2F, prExtend},                 // Mn  [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF\n\t{0xFE33, 0xFE34, prExtendNumLet},           // Pc   [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE\n\t{0xFE4D, 0xFE4F, prExtendNumLet},           // Pc   [3] DASHED LOW LINE..WAVY LOW LINE\n\t{0xFE50, 0xFE50, prMidNum},                 // Po       SMALL COMMA\n\t{0xFE52, 0xFE52, prMidNumLet},              // Po       SMALL FULL STOP\n\t{0xFE54, 0xFE54, prMidNum},                 // Po       SMALL SEMICOLON\n\t{0xFE55, 0xFE55, prMidLetter},              // Po       SMALL COLON\n\t{0xFE70, 0xFE74, prALetter},                // Lo   [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM\n\t{0xFE76, 0xFEFC, prALetter},                // Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n\t{0xFEFF, 0xFEFF, prFormat},                 // Cf       ZERO WIDTH NO-BREAK SPACE\n\t{0xFF07, 0xFF07, prMidNumLet},              // Po       FULLWIDTH APOSTROPHE\n\t{0xFF0C, 0xFF0C, prMidNum},                 // Po       FULLWIDTH COMMA\n\t{0xFF0E, 0xFF0E, prMidNumLet},              // Po       FULLWIDTH FULL STOP\n\t{0xFF10, 0xFF19, prNumeric},                // Nd  [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE\n\t{0xFF1A, 0xFF1A, prMidLetter},              // Po       FULLWIDTH COLON\n\t{0xFF1B, 0xFF1B, prMidNum},                 // Po       FULLWIDTH SEMICOLON\n\t{0xFF21, 0xFF3A, prALetter},                // L&  [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z\n\t{0xFF3F, 0xFF3F, prExtendNumLet},           // Pc       FULLWIDTH LOW LINE\n\t{0xFF41, 0xFF5A, prALetter},                // L&  [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z\n\t{0xFF66, 0xFF6F, prKatakana},               // Lo  [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU\n\t{0xFF70, 0xFF70, prKatakana},               // Lm       HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK\n\t{0xFF71, 0xFF9D, prKatakana},               // Lo  [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N\n\t{0xFF9E, 0xFF9F, prExtend},                 // Lm   [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK\n\t{0xFFA0, 0xFFBE, prALetter},                // Lo  [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH\n\t{0xFFC2, 0xFFC7, prALetter},                // Lo   [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E\n\t{0xFFCA, 0xFFCF, prALetter},                // Lo   [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE\n\t{0xFFD2, 0xFFD7, prALetter},                // Lo   [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU\n\t{0xFFDA, 0xFFDC, prALetter},                // Lo   [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I\n\t{0xFFF9, 0xFFFB, prFormat},                 // Cf   [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR\n\t{0x10000, 0x1000B, prALetter},              // Lo  [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE\n\t{0x1000D, 0x10026, prALetter},              // Lo  [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO\n\t{0x10028, 0x1003A, prALetter},              // Lo  [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO\n\t{0x1003C, 0x1003D, prALetter},              // Lo   [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE\n\t{0x1003F, 0x1004D, prALetter},              // Lo  [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO\n\t{0x10050, 0x1005D, prALetter},              // Lo  [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089\n\t{0x10080, 0x100FA, prALetter},              // Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305\n\t{0x10140, 0x10174, prALetter},              // Nl  [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS\n\t{0x101FD, 0x101FD, prExtend},               // Mn       PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE\n\t{0x10280, 0x1029C, prALetter},              // Lo  [29] LYCIAN LETTER A..LYCIAN LETTER X\n\t{0x102A0, 0x102D0, prALetter},              // Lo  [49] CARIAN LETTER A..CARIAN LETTER UUU3\n\t{0x102E0, 0x102E0, prExtend},               // Mn       COPTIC EPACT THOUSANDS MARK\n\t{0x10300, 0x1031F, prALetter},              // Lo  [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS\n\t{0x1032D, 0x10340, prALetter},              // Lo  [20] OLD ITALIC LETTER YE..GOTHIC LETTER PAIRTHRA\n\t{0x10341, 0x10341, prALetter},              // Nl       GOTHIC LETTER NINETY\n\t{0x10342, 0x10349, prALetter},              // Lo   [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL\n\t{0x1034A, 0x1034A, prALetter},              // Nl       GOTHIC LETTER NINE HUNDRED\n\t{0x10350, 0x10375, prALetter},              // Lo  [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA\n\t{0x10376, 0x1037A, prExtend},               // Mn   [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII\n\t{0x10380, 0x1039D, prALetter},              // Lo  [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU\n\t{0x103A0, 0x103C3, prALetter},              // Lo  [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA\n\t{0x103C8, 0x103CF, prALetter},              // Lo   [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH\n\t{0x103D1, 0x103D5, prALetter},              // Nl   [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED\n\t{0x10400, 0x1044F, prALetter},              // L&  [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW\n\t{0x10450, 0x1049D, prALetter},              // Lo  [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO\n\t{0x104A0, 0x104A9, prNumeric},              // Nd  [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE\n\t{0x104B0, 0x104D3, prALetter},              // L&  [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA\n\t{0x104D8, 0x104FB, prALetter},              // L&  [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA\n\t{0x10500, 0x10527, prALetter},              // Lo  [40] ELBASAN LETTER A..ELBASAN LETTER KHE\n\t{0x10530, 0x10563, prALetter},              // Lo  [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW\n\t{0x10570, 0x1057A, prALetter},              // L&  [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA\n\t{0x1057C, 0x1058A, prALetter},              // L&  [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE\n\t{0x1058C, 0x10592, prALetter},              // L&   [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE\n\t{0x10594, 0x10595, prALetter},              // L&   [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE\n\t{0x10597, 0x105A1, prALetter},              // L&  [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA\n\t{0x105A3, 0x105B1, prALetter},              // L&  [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE\n\t{0x105B3, 0x105B9, prALetter},              // L&   [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE\n\t{0x105BB, 0x105BC, prALetter},              // L&   [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE\n\t{0x10600, 0x10736, prALetter},              // Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664\n\t{0x10740, 0x10755, prALetter},              // Lo  [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE\n\t{0x10760, 0x10767, prALetter},              // Lo   [8] LINEAR A SIGN A800..LINEAR A SIGN A807\n\t{0x10780, 0x10785, prALetter},              // Lm   [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK\n\t{0x10787, 0x107B0, prALetter},              // Lm  [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK\n\t{0x107B2, 0x107BA, prALetter},              // Lm   [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL\n\t{0x10800, 0x10805, prALetter},              // Lo   [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA\n\t{0x10808, 0x10808, prALetter},              // Lo       CYPRIOT SYLLABLE JO\n\t{0x1080A, 0x10835, prALetter},              // Lo  [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO\n\t{0x10837, 0x10838, prALetter},              // Lo   [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE\n\t{0x1083C, 0x1083C, prALetter},              // Lo       CYPRIOT SYLLABLE ZA\n\t{0x1083F, 0x10855, prALetter},              // Lo  [23] CYPRIOT SYLLABLE ZO..IMPERIAL ARAMAIC LETTER TAW\n\t{0x10860, 0x10876, prALetter},              // Lo  [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW\n\t{0x10880, 0x1089E, prALetter},              // Lo  [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW\n\t{0x108E0, 0x108F2, prALetter},              // Lo  [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH\n\t{0x108F4, 0x108F5, prALetter},              // Lo   [2] HATRAN LETTER SHIN..HATRAN LETTER TAW\n\t{0x10900, 0x10915, prALetter},              // Lo  [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU\n\t{0x10920, 0x10939, prALetter},              // Lo  [26] LYDIAN LETTER A..LYDIAN LETTER C\n\t{0x10980, 0x109B7, prALetter},              // Lo  [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA\n\t{0x109BE, 0x109BF, prALetter},              // Lo   [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN\n\t{0x10A00, 0x10A00, prALetter},              // Lo       KHAROSHTHI LETTER A\n\t{0x10A01, 0x10A03, prExtend},               // Mn   [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R\n\t{0x10A05, 0x10A06, prExtend},               // Mn   [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O\n\t{0x10A0C, 0x10A0F, prExtend},               // Mn   [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA\n\t{0x10A10, 0x10A13, prALetter},              // Lo   [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA\n\t{0x10A15, 0x10A17, prALetter},              // Lo   [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA\n\t{0x10A19, 0x10A35, prALetter},              // Lo  [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA\n\t{0x10A38, 0x10A3A, prExtend},               // Mn   [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW\n\t{0x10A3F, 0x10A3F, prExtend},               // Mn       KHAROSHTHI VIRAMA\n\t{0x10A60, 0x10A7C, prALetter},              // Lo  [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH\n\t{0x10A80, 0x10A9C, prALetter},              // Lo  [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH\n\t{0x10AC0, 0x10AC7, prALetter},              // Lo   [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW\n\t{0x10AC9, 0x10AE4, prALetter},              // Lo  [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW\n\t{0x10AE5, 0x10AE6, prExtend},               // Mn   [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW\n\t{0x10B00, 0x10B35, prALetter},              // Lo  [54] AVESTAN LETTER A..AVESTAN LETTER HE\n\t{0x10B40, 0x10B55, prALetter},              // Lo  [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW\n\t{0x10B60, 0x10B72, prALetter},              // Lo  [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW\n\t{0x10B80, 0x10B91, prALetter},              // Lo  [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW\n\t{0x10C00, 0x10C48, prALetter},              // Lo  [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH\n\t{0x10C80, 0x10CB2, prALetter},              // L&  [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US\n\t{0x10CC0, 0x10CF2, prALetter},              // L&  [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US\n\t{0x10D00, 0x10D23, prALetter},              // Lo  [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA\n\t{0x10D24, 0x10D27, prExtend},               // Mn   [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI\n\t{0x10D30, 0x10D39, prNumeric},              // Nd  [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE\n\t{0x10E80, 0x10EA9, prALetter},              // Lo  [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET\n\t{0x10EAB, 0x10EAC, prExtend},               // Mn   [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK\n\t{0x10EB0, 0x10EB1, prALetter},              // Lo   [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE\n\t{0x10EFD, 0x10EFF, prExtend},               // Mn   [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA\n\t{0x10F00, 0x10F1C, prALetter},              // Lo  [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL\n\t{0x10F27, 0x10F27, prALetter},              // Lo       OLD SOGDIAN LIGATURE AYIN-DALETH\n\t{0x10F30, 0x10F45, prALetter},              // Lo  [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN\n\t{0x10F46, 0x10F50, prExtend},               // Mn  [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW\n\t{0x10F70, 0x10F81, prALetter},              // Lo  [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH\n\t{0x10F82, 0x10F85, prExtend},               // Mn   [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW\n\t{0x10FB0, 0x10FC4, prALetter},              // Lo  [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW\n\t{0x10FE0, 0x10FF6, prALetter},              // Lo  [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH\n\t{0x11000, 0x11000, prExtend},               // Mc       BRAHMI SIGN CANDRABINDU\n\t{0x11001, 0x11001, prExtend},               // Mn       BRAHMI SIGN ANUSVARA\n\t{0x11002, 0x11002, prExtend},               // Mc       BRAHMI SIGN VISARGA\n\t{0x11003, 0x11037, prALetter},              // Lo  [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA\n\t{0x11038, 0x11046, prExtend},               // Mn  [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA\n\t{0x11066, 0x1106F, prNumeric},              // Nd  [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE\n\t{0x11070, 0x11070, prExtend},               // Mn       BRAHMI SIGN OLD TAMIL VIRAMA\n\t{0x11071, 0x11072, prALetter},              // Lo   [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O\n\t{0x11073, 0x11074, prExtend},               // Mn   [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O\n\t{0x11075, 0x11075, prALetter},              // Lo       BRAHMI LETTER OLD TAMIL LLA\n\t{0x1107F, 0x11081, prExtend},               // Mn   [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA\n\t{0x11082, 0x11082, prExtend},               // Mc       KAITHI SIGN VISARGA\n\t{0x11083, 0x110AF, prALetter},              // Lo  [45] KAITHI LETTER A..KAITHI LETTER HA\n\t{0x110B0, 0x110B2, prExtend},               // Mc   [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II\n\t{0x110B3, 0x110B6, prExtend},               // Mn   [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI\n\t{0x110B7, 0x110B8, prExtend},               // Mc   [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU\n\t{0x110B9, 0x110BA, prExtend},               // Mn   [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA\n\t{0x110BD, 0x110BD, prFormat},               // Cf       KAITHI NUMBER SIGN\n\t{0x110C2, 0x110C2, prExtend},               // Mn       KAITHI VOWEL SIGN VOCALIC R\n\t{0x110CD, 0x110CD, prFormat},               // Cf       KAITHI NUMBER SIGN ABOVE\n\t{0x110D0, 0x110E8, prALetter},              // Lo  [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE\n\t{0x110F0, 0x110F9, prNumeric},              // Nd  [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE\n\t{0x11100, 0x11102, prExtend},               // Mn   [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA\n\t{0x11103, 0x11126, prALetter},              // Lo  [36] CHAKMA LETTER AA..CHAKMA LETTER HAA\n\t{0x11127, 0x1112B, prExtend},               // Mn   [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU\n\t{0x1112C, 0x1112C, prExtend},               // Mc       CHAKMA VOWEL SIGN E\n\t{0x1112D, 0x11134, prExtend},               // Mn   [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA\n\t{0x11136, 0x1113F, prNumeric},              // Nd  [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE\n\t{0x11144, 0x11144, prALetter},              // Lo       CHAKMA LETTER LHAA\n\t{0x11145, 0x11146, prExtend},               // Mc   [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI\n\t{0x11147, 0x11147, prALetter},              // Lo       CHAKMA LETTER VAA\n\t{0x11150, 0x11172, prALetter},              // Lo  [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA\n\t{0x11173, 0x11173, prExtend},               // Mn       MAHAJANI SIGN NUKTA\n\t{0x11176, 0x11176, prALetter},              // Lo       MAHAJANI LIGATURE SHRI\n\t{0x11180, 0x11181, prExtend},               // Mn   [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA\n\t{0x11182, 0x11182, prExtend},               // Mc       SHARADA SIGN VISARGA\n\t{0x11183, 0x111B2, prALetter},              // Lo  [48] SHARADA LETTER A..SHARADA LETTER HA\n\t{0x111B3, 0x111B5, prExtend},               // Mc   [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II\n\t{0x111B6, 0x111BE, prExtend},               // Mn   [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O\n\t{0x111BF, 0x111C0, prExtend},               // Mc   [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA\n\t{0x111C1, 0x111C4, prALetter},              // Lo   [4] SHARADA SIGN AVAGRAHA..SHARADA OM\n\t{0x111C9, 0x111CC, prExtend},               // Mn   [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK\n\t{0x111CE, 0x111CE, prExtend},               // Mc       SHARADA VOWEL SIGN PRISHTHAMATRA E\n\t{0x111CF, 0x111CF, prExtend},               // Mn       SHARADA SIGN INVERTED CANDRABINDU\n\t{0x111D0, 0x111D9, prNumeric},              // Nd  [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE\n\t{0x111DA, 0x111DA, prALetter},              // Lo       SHARADA EKAM\n\t{0x111DC, 0x111DC, prALetter},              // Lo       SHARADA HEADSTROKE\n\t{0x11200, 0x11211, prALetter},              // Lo  [18] KHOJKI LETTER A..KHOJKI LETTER JJA\n\t{0x11213, 0x1122B, prALetter},              // Lo  [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA\n\t{0x1122C, 0x1122E, prExtend},               // Mc   [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II\n\t{0x1122F, 0x11231, prExtend},               // Mn   [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI\n\t{0x11232, 0x11233, prExtend},               // Mc   [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU\n\t{0x11234, 0x11234, prExtend},               // Mn       KHOJKI SIGN ANUSVARA\n\t{0x11235, 0x11235, prExtend},               // Mc       KHOJKI SIGN VIRAMA\n\t{0x11236, 0x11237, prExtend},               // Mn   [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA\n\t{0x1123E, 0x1123E, prExtend},               // Mn       KHOJKI SIGN SUKUN\n\t{0x1123F, 0x11240, prALetter},              // Lo   [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I\n\t{0x11241, 0x11241, prExtend},               // Mn       KHOJKI VOWEL SIGN VOCALIC R\n\t{0x11280, 0x11286, prALetter},              // Lo   [7] MULTANI LETTER A..MULTANI LETTER GA\n\t{0x11288, 0x11288, prALetter},              // Lo       MULTANI LETTER GHA\n\t{0x1128A, 0x1128D, prALetter},              // Lo   [4] MULTANI LETTER CA..MULTANI LETTER JJA\n\t{0x1128F, 0x1129D, prALetter},              // Lo  [15] MULTANI LETTER NYA..MULTANI LETTER BA\n\t{0x1129F, 0x112A8, prALetter},              // Lo  [10] MULTANI LETTER BHA..MULTANI LETTER RHA\n\t{0x112B0, 0x112DE, prALetter},              // Lo  [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA\n\t{0x112DF, 0x112DF, prExtend},               // Mn       KHUDAWADI SIGN ANUSVARA\n\t{0x112E0, 0x112E2, prExtend},               // Mc   [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II\n\t{0x112E3, 0x112EA, prExtend},               // Mn   [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA\n\t{0x112F0, 0x112F9, prNumeric},              // Nd  [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE\n\t{0x11300, 0x11301, prExtend},               // Mn   [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU\n\t{0x11302, 0x11303, prExtend},               // Mc   [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA\n\t{0x11305, 0x1130C, prALetter},              // Lo   [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L\n\t{0x1130F, 0x11310, prALetter},              // Lo   [2] GRANTHA LETTER EE..GRANTHA LETTER AI\n\t{0x11313, 0x11328, prALetter},              // Lo  [22] GRANTHA LETTER OO..GRANTHA LETTER NA\n\t{0x1132A, 0x11330, prALetter},              // Lo   [7] GRANTHA LETTER PA..GRANTHA LETTER RA\n\t{0x11332, 0x11333, prALetter},              // Lo   [2] GRANTHA LETTER LA..GRANTHA LETTER LLA\n\t{0x11335, 0x11339, prALetter},              // Lo   [5] GRANTHA LETTER VA..GRANTHA LETTER HA\n\t{0x1133B, 0x1133C, prExtend},               // Mn   [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA\n\t{0x1133D, 0x1133D, prALetter},              // Lo       GRANTHA SIGN AVAGRAHA\n\t{0x1133E, 0x1133F, prExtend},               // Mc   [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I\n\t{0x11340, 0x11340, prExtend},               // Mn       GRANTHA VOWEL SIGN II\n\t{0x11341, 0x11344, prExtend},               // Mc   [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR\n\t{0x11347, 0x11348, prExtend},               // Mc   [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI\n\t{0x1134B, 0x1134D, prExtend},               // Mc   [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA\n\t{0x11350, 0x11350, prALetter},              // Lo       GRANTHA OM\n\t{0x11357, 0x11357, prExtend},               // Mc       GRANTHA AU LENGTH MARK\n\t{0x1135D, 0x11361, prALetter},              // Lo   [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL\n\t{0x11362, 0x11363, prExtend},               // Mc   [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL\n\t{0x11366, 0x1136C, prExtend},               // Mn   [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX\n\t{0x11370, 0x11374, prExtend},               // Mn   [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA\n\t{0x11400, 0x11434, prALetter},              // Lo  [53] NEWA LETTER A..NEWA LETTER HA\n\t{0x11435, 0x11437, prExtend},               // Mc   [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II\n\t{0x11438, 0x1143F, prExtend},               // Mn   [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI\n\t{0x11440, 0x11441, prExtend},               // Mc   [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU\n\t{0x11442, 0x11444, prExtend},               // Mn   [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA\n\t{0x11445, 0x11445, prExtend},               // Mc       NEWA SIGN VISARGA\n\t{0x11446, 0x11446, prExtend},               // Mn       NEWA SIGN NUKTA\n\t{0x11447, 0x1144A, prALetter},              // Lo   [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI\n\t{0x11450, 0x11459, prNumeric},              // Nd  [10] NEWA DIGIT ZERO..NEWA DIGIT NINE\n\t{0x1145E, 0x1145E, prExtend},               // Mn       NEWA SANDHI MARK\n\t{0x1145F, 0x11461, prALetter},              // Lo   [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA\n\t{0x11480, 0x114AF, prALetter},              // Lo  [48] TIRHUTA ANJI..TIRHUTA LETTER HA\n\t{0x114B0, 0x114B2, prExtend},               // Mc   [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II\n\t{0x114B3, 0x114B8, prExtend},               // Mn   [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL\n\t{0x114B9, 0x114B9, prExtend},               // Mc       TIRHUTA VOWEL SIGN E\n\t{0x114BA, 0x114BA, prExtend},               // Mn       TIRHUTA VOWEL SIGN SHORT E\n\t{0x114BB, 0x114BE, prExtend},               // Mc   [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU\n\t{0x114BF, 0x114C0, prExtend},               // Mn   [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA\n\t{0x114C1, 0x114C1, prExtend},               // Mc       TIRHUTA SIGN VISARGA\n\t{0x114C2, 0x114C3, prExtend},               // Mn   [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA\n\t{0x114C4, 0x114C5, prALetter},              // Lo   [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG\n\t{0x114C7, 0x114C7, prALetter},              // Lo       TIRHUTA OM\n\t{0x114D0, 0x114D9, prNumeric},              // Nd  [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE\n\t{0x11580, 0x115AE, prALetter},              // Lo  [47] SIDDHAM LETTER A..SIDDHAM LETTER HA\n\t{0x115AF, 0x115B1, prExtend},               // Mc   [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II\n\t{0x115B2, 0x115B5, prExtend},               // Mn   [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR\n\t{0x115B8, 0x115BB, prExtend},               // Mc   [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU\n\t{0x115BC, 0x115BD, prExtend},               // Mn   [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA\n\t{0x115BE, 0x115BE, prExtend},               // Mc       SIDDHAM SIGN VISARGA\n\t{0x115BF, 0x115C0, prExtend},               // Mn   [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA\n\t{0x115D8, 0x115DB, prALetter},              // Lo   [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U\n\t{0x115DC, 0x115DD, prExtend},               // Mn   [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU\n\t{0x11600, 0x1162F, prALetter},              // Lo  [48] MODI LETTER A..MODI LETTER LLA\n\t{0x11630, 0x11632, prExtend},               // Mc   [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II\n\t{0x11633, 0x1163A, prExtend},               // Mn   [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI\n\t{0x1163B, 0x1163C, prExtend},               // Mc   [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU\n\t{0x1163D, 0x1163D, prExtend},               // Mn       MODI SIGN ANUSVARA\n\t{0x1163E, 0x1163E, prExtend},               // Mc       MODI SIGN VISARGA\n\t{0x1163F, 0x11640, prExtend},               // Mn   [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA\n\t{0x11644, 0x11644, prALetter},              // Lo       MODI SIGN HUVA\n\t{0x11650, 0x11659, prNumeric},              // Nd  [10] MODI DIGIT ZERO..MODI DIGIT NINE\n\t{0x11680, 0x116AA, prALetter},              // Lo  [43] TAKRI LETTER A..TAKRI LETTER RRA\n\t{0x116AB, 0x116AB, prExtend},               // Mn       TAKRI SIGN ANUSVARA\n\t{0x116AC, 0x116AC, prExtend},               // Mc       TAKRI SIGN VISARGA\n\t{0x116AD, 0x116AD, prExtend},               // Mn       TAKRI VOWEL SIGN AA\n\t{0x116AE, 0x116AF, prExtend},               // Mc   [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II\n\t{0x116B0, 0x116B5, prExtend},               // Mn   [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU\n\t{0x116B6, 0x116B6, prExtend},               // Mc       TAKRI SIGN VIRAMA\n\t{0x116B7, 0x116B7, prExtend},               // Mn       TAKRI SIGN NUKTA\n\t{0x116B8, 0x116B8, prALetter},              // Lo       TAKRI LETTER ARCHAIC KHA\n\t{0x116C0, 0x116C9, prNumeric},              // Nd  [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE\n\t{0x1171D, 0x1171F, prExtend},               // Mn   [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA\n\t{0x11720, 0x11721, prExtend},               // Mc   [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA\n\t{0x11722, 0x11725, prExtend},               // Mn   [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU\n\t{0x11726, 0x11726, prExtend},               // Mc       AHOM VOWEL SIGN E\n\t{0x11727, 0x1172B, prExtend},               // Mn   [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER\n\t{0x11730, 0x11739, prNumeric},              // Nd  [10] AHOM DIGIT ZERO..AHOM DIGIT NINE\n\t{0x11800, 0x1182B, prALetter},              // Lo  [44] DOGRA LETTER A..DOGRA LETTER RRA\n\t{0x1182C, 0x1182E, prExtend},               // Mc   [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II\n\t{0x1182F, 0x11837, prExtend},               // Mn   [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA\n\t{0x11838, 0x11838, prExtend},               // Mc       DOGRA SIGN VISARGA\n\t{0x11839, 0x1183A, prExtend},               // Mn   [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA\n\t{0x118A0, 0x118DF, prALetter},              // L&  [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO\n\t{0x118E0, 0x118E9, prNumeric},              // Nd  [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE\n\t{0x118FF, 0x11906, prALetter},              // Lo   [8] WARANG CITI OM..DIVES AKURU LETTER E\n\t{0x11909, 0x11909, prALetter},              // Lo       DIVES AKURU LETTER O\n\t{0x1190C, 0x11913, prALetter},              // Lo   [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA\n\t{0x11915, 0x11916, prALetter},              // Lo   [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA\n\t{0x11918, 0x1192F, prALetter},              // Lo  [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA\n\t{0x11930, 0x11935, prExtend},               // Mc   [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E\n\t{0x11937, 0x11938, prExtend},               // Mc   [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O\n\t{0x1193B, 0x1193C, prExtend},               // Mn   [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU\n\t{0x1193D, 0x1193D, prExtend},               // Mc       DIVES AKURU SIGN HALANTA\n\t{0x1193E, 0x1193E, prExtend},               // Mn       DIVES AKURU VIRAMA\n\t{0x1193F, 0x1193F, prALetter},              // Lo       DIVES AKURU PREFIXED NASAL SIGN\n\t{0x11940, 0x11940, prExtend},               // Mc       DIVES AKURU MEDIAL YA\n\t{0x11941, 0x11941, prALetter},              // Lo       DIVES AKURU INITIAL RA\n\t{0x11942, 0x11942, prExtend},               // Mc       DIVES AKURU MEDIAL RA\n\t{0x11943, 0x11943, prExtend},               // Mn       DIVES AKURU SIGN NUKTA\n\t{0x11950, 0x11959, prNumeric},              // Nd  [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE\n\t{0x119A0, 0x119A7, prALetter},              // Lo   [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR\n\t{0x119AA, 0x119D0, prALetter},              // Lo  [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA\n\t{0x119D1, 0x119D3, prExtend},               // Mc   [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II\n\t{0x119D4, 0x119D7, prExtend},               // Mn   [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR\n\t{0x119DA, 0x119DB, prExtend},               // Mn   [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI\n\t{0x119DC, 0x119DF, prExtend},               // Mc   [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA\n\t{0x119E0, 0x119E0, prExtend},               // Mn       NANDINAGARI SIGN VIRAMA\n\t{0x119E1, 0x119E1, prALetter},              // Lo       NANDINAGARI SIGN AVAGRAHA\n\t{0x119E3, 0x119E3, prALetter},              // Lo       NANDINAGARI HEADSTROKE\n\t{0x119E4, 0x119E4, prExtend},               // Mc       NANDINAGARI VOWEL SIGN PRISHTHAMATRA E\n\t{0x11A00, 0x11A00, prALetter},              // Lo       ZANABAZAR SQUARE LETTER A\n\t{0x11A01, 0x11A0A, prExtend},               // Mn  [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK\n\t{0x11A0B, 0x11A32, prALetter},              // Lo  [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA\n\t{0x11A33, 0x11A38, prExtend},               // Mn   [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA\n\t{0x11A39, 0x11A39, prExtend},               // Mc       ZANABAZAR SQUARE SIGN VISARGA\n\t{0x11A3A, 0x11A3A, prALetter},              // Lo       ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA\n\t{0x11A3B, 0x11A3E, prExtend},               // Mn   [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA\n\t{0x11A47, 0x11A47, prExtend},               // Mn       ZANABAZAR SQUARE SUBJOINER\n\t{0x11A50, 0x11A50, prALetter},              // Lo       SOYOMBO LETTER A\n\t{0x11A51, 0x11A56, prExtend},               // Mn   [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE\n\t{0x11A57, 0x11A58, prExtend},               // Mc   [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU\n\t{0x11A59, 0x11A5B, prExtend},               // Mn   [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK\n\t{0x11A5C, 0x11A89, prALetter},              // Lo  [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA\n\t{0x11A8A, 0x11A96, prExtend},               // Mn  [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA\n\t{0x11A97, 0x11A97, prExtend},               // Mc       SOYOMBO SIGN VISARGA\n\t{0x11A98, 0x11A99, prExtend},               // Mn   [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER\n\t{0x11A9D, 0x11A9D, prALetter},              // Lo       SOYOMBO MARK PLUTA\n\t{0x11AB0, 0x11AF8, prALetter},              // Lo  [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL\n\t{0x11C00, 0x11C08, prALetter},              // Lo   [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L\n\t{0x11C0A, 0x11C2E, prALetter},              // Lo  [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA\n\t{0x11C2F, 0x11C2F, prExtend},               // Mc       BHAIKSUKI VOWEL SIGN AA\n\t{0x11C30, 0x11C36, prExtend},               // Mn   [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L\n\t{0x11C38, 0x11C3D, prExtend},               // Mn   [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA\n\t{0x11C3E, 0x11C3E, prExtend},               // Mc       BHAIKSUKI SIGN VISARGA\n\t{0x11C3F, 0x11C3F, prExtend},               // Mn       BHAIKSUKI SIGN VIRAMA\n\t{0x11C40, 0x11C40, prALetter},              // Lo       BHAIKSUKI SIGN AVAGRAHA\n\t{0x11C50, 0x11C59, prNumeric},              // Nd  [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE\n\t{0x11C72, 0x11C8F, prALetter},              // Lo  [30] MARCHEN LETTER KA..MARCHEN LETTER A\n\t{0x11C92, 0x11CA7, prExtend},               // Mn  [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA\n\t{0x11CA9, 0x11CA9, prExtend},               // Mc       MARCHEN SUBJOINED LETTER YA\n\t{0x11CAA, 0x11CB0, prExtend},               // Mn   [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA\n\t{0x11CB1, 0x11CB1, prExtend},               // Mc       MARCHEN VOWEL SIGN I\n\t{0x11CB2, 0x11CB3, prExtend},               // Mn   [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E\n\t{0x11CB4, 0x11CB4, prExtend},               // Mc       MARCHEN VOWEL SIGN O\n\t{0x11CB5, 0x11CB6, prExtend},               // Mn   [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU\n\t{0x11D00, 0x11D06, prALetter},              // Lo   [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E\n\t{0x11D08, 0x11D09, prALetter},              // Lo   [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O\n\t{0x11D0B, 0x11D30, prALetter},              // Lo  [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA\n\t{0x11D31, 0x11D36, prExtend},               // Mn   [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R\n\t{0x11D3A, 0x11D3A, prExtend},               // Mn       MASARAM GONDI VOWEL SIGN E\n\t{0x11D3C, 0x11D3D, prExtend},               // Mn   [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O\n\t{0x11D3F, 0x11D45, prExtend},               // Mn   [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA\n\t{0x11D46, 0x11D46, prALetter},              // Lo       MASARAM GONDI REPHA\n\t{0x11D47, 0x11D47, prExtend},               // Mn       MASARAM GONDI RA-KARA\n\t{0x11D50, 0x11D59, prNumeric},              // Nd  [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE\n\t{0x11D60, 0x11D65, prALetter},              // Lo   [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU\n\t{0x11D67, 0x11D68, prALetter},              // Lo   [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI\n\t{0x11D6A, 0x11D89, prALetter},              // Lo  [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA\n\t{0x11D8A, 0x11D8E, prExtend},               // Mc   [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU\n\t{0x11D90, 0x11D91, prExtend},               // Mn   [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI\n\t{0x11D93, 0x11D94, prExtend},               // Mc   [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU\n\t{0x11D95, 0x11D95, prExtend},               // Mn       GUNJALA GONDI SIGN ANUSVARA\n\t{0x11D96, 0x11D96, prExtend},               // Mc       GUNJALA GONDI SIGN VISARGA\n\t{0x11D97, 0x11D97, prExtend},               // Mn       GUNJALA GONDI VIRAMA\n\t{0x11D98, 0x11D98, prALetter},              // Lo       GUNJALA GONDI OM\n\t{0x11DA0, 0x11DA9, prNumeric},              // Nd  [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE\n\t{0x11EE0, 0x11EF2, prALetter},              // Lo  [19] MAKASAR LETTER KA..MAKASAR ANGKA\n\t{0x11EF3, 0x11EF4, prExtend},               // Mn   [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U\n\t{0x11EF5, 0x11EF6, prExtend},               // Mc   [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O\n\t{0x11F00, 0x11F01, prExtend},               // Mn   [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA\n\t{0x11F02, 0x11F02, prALetter},              // Lo       KAWI SIGN REPHA\n\t{0x11F03, 0x11F03, prExtend},               // Mc       KAWI SIGN VISARGA\n\t{0x11F04, 0x11F10, prALetter},              // Lo  [13] KAWI LETTER A..KAWI LETTER O\n\t{0x11F12, 0x11F33, prALetter},              // Lo  [34] KAWI LETTER KA..KAWI LETTER JNYA\n\t{0x11F34, 0x11F35, prExtend},               // Mc   [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA\n\t{0x11F36, 0x11F3A, prExtend},               // Mn   [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R\n\t{0x11F3E, 0x11F3F, prExtend},               // Mc   [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI\n\t{0x11F40, 0x11F40, prExtend},               // Mn       KAWI VOWEL SIGN EU\n\t{0x11F41, 0x11F41, prExtend},               // Mc       KAWI SIGN KILLER\n\t{0x11F42, 0x11F42, prExtend},               // Mn       KAWI CONJOINER\n\t{0x11F50, 0x11F59, prNumeric},              // Nd  [10] KAWI DIGIT ZERO..KAWI DIGIT NINE\n\t{0x11FB0, 0x11FB0, prALetter},              // Lo       LISU LETTER YHA\n\t{0x12000, 0x12399, prALetter},              // Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U\n\t{0x12400, 0x1246E, prALetter},              // Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM\n\t{0x12480, 0x12543, prALetter},              // Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU\n\t{0x12F90, 0x12FF0, prALetter},              // Lo  [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114\n\t{0x13000, 0x1342F, prALetter},              // Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D\n\t{0x13430, 0x1343F, prFormat},               // Cf  [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE\n\t{0x13440, 0x13440, prExtend},               // Mn       EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY\n\t{0x13441, 0x13446, prALetter},              // Lo   [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN\n\t{0x13447, 0x13455, prExtend},               // Mn  [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED\n\t{0x14400, 0x14646, prALetter},              // Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530\n\t{0x16800, 0x16A38, prALetter},              // Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ\n\t{0x16A40, 0x16A5E, prALetter},              // Lo  [31] MRO LETTER TA..MRO LETTER TEK\n\t{0x16A60, 0x16A69, prNumeric},              // Nd  [10] MRO DIGIT ZERO..MRO DIGIT NINE\n\t{0x16A70, 0x16ABE, prALetter},              // Lo  [79] TANGSA LETTER OZ..TANGSA LETTER ZA\n\t{0x16AC0, 0x16AC9, prNumeric},              // Nd  [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE\n\t{0x16AD0, 0x16AED, prALetter},              // Lo  [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I\n\t{0x16AF0, 0x16AF4, prExtend},               // Mn   [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE\n\t{0x16B00, 0x16B2F, prALetter},              // Lo  [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU\n\t{0x16B30, 0x16B36, prExtend},               // Mn   [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM\n\t{0x16B40, 0x16B43, prALetter},              // Lm   [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM\n\t{0x16B50, 0x16B59, prNumeric},              // Nd  [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE\n\t{0x16B63, 0x16B77, prALetter},              // Lo  [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS\n\t{0x16B7D, 0x16B8F, prALetter},              // Lo  [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ\n\t{0x16E40, 0x16E7F, prALetter},              // L&  [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y\n\t{0x16F00, 0x16F4A, prALetter},              // Lo  [75] MIAO LETTER PA..MIAO LETTER RTE\n\t{0x16F4F, 0x16F4F, prExtend},               // Mn       MIAO SIGN CONSONANT MODIFIER BAR\n\t{0x16F50, 0x16F50, prALetter},              // Lo       MIAO LETTER NASALIZATION\n\t{0x16F51, 0x16F87, prExtend},               // Mc  [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI\n\t{0x16F8F, 0x16F92, prExtend},               // Mn   [4] MIAO TONE RIGHT..MIAO TONE BELOW\n\t{0x16F93, 0x16F9F, prALetter},              // Lm  [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8\n\t{0x16FE0, 0x16FE1, prALetter},              // Lm   [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK\n\t{0x16FE3, 0x16FE3, prALetter},              // Lm       OLD CHINESE ITERATION MARK\n\t{0x16FE4, 0x16FE4, prExtend},               // Mn       KHITAN SMALL SCRIPT FILLER\n\t{0x16FF0, 0x16FF1, prExtend},               // Mc   [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY\n\t{0x1AFF0, 0x1AFF3, prKatakana},             // Lm   [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5\n\t{0x1AFF5, 0x1AFFB, prKatakana},             // Lm   [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5\n\t{0x1AFFD, 0x1AFFE, prKatakana},             // Lm   [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8\n\t{0x1B000, 0x1B000, prKatakana},             // Lo       KATAKANA LETTER ARCHAIC E\n\t{0x1B120, 0x1B122, prKatakana},             // Lo   [3] KATAKANA LETTER ARCHAIC YI..KATAKANA LETTER ARCHAIC WU\n\t{0x1B155, 0x1B155, prKatakana},             // Lo       KATAKANA LETTER SMALL KO\n\t{0x1B164, 0x1B167, prKatakana},             // Lo   [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N\n\t{0x1BC00, 0x1BC6A, prALetter},              // Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M\n\t{0x1BC70, 0x1BC7C, prALetter},              // Lo  [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK\n\t{0x1BC80, 0x1BC88, prALetter},              // Lo   [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL\n\t{0x1BC90, 0x1BC99, prALetter},              // Lo  [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW\n\t{0x1BC9D, 0x1BC9E, prExtend},               // Mn   [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK\n\t{0x1BCA0, 0x1BCA3, prFormat},               // Cf   [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP\n\t{0x1CF00, 0x1CF2D, prExtend},               // Mn  [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT\n\t{0x1CF30, 0x1CF46, prExtend},               // Mn  [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG\n\t{0x1D165, 0x1D166, prExtend},               // Mc   [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM\n\t{0x1D167, 0x1D169, prExtend},               // Mn   [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3\n\t{0x1D16D, 0x1D172, prExtend},               // Mc   [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5\n\t{0x1D173, 0x1D17A, prFormat},               // Cf   [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE\n\t{0x1D17B, 0x1D182, prExtend},               // Mn   [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE\n\t{0x1D185, 0x1D18B, prExtend},               // Mn   [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE\n\t{0x1D1AA, 0x1D1AD, prExtend},               // Mn   [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO\n\t{0x1D242, 0x1D244, prExtend},               // Mn   [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME\n\t{0x1D400, 0x1D454, prALetter},              // L&  [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G\n\t{0x1D456, 0x1D49C, prALetter},              // L&  [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A\n\t{0x1D49E, 0x1D49F, prALetter},              // L&   [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D\n\t{0x1D4A2, 0x1D4A2, prALetter},              // L&       MATHEMATICAL SCRIPT CAPITAL G\n\t{0x1D4A5, 0x1D4A6, prALetter},              // L&   [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K\n\t{0x1D4A9, 0x1D4AC, prALetter},              // L&   [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q\n\t{0x1D4AE, 0x1D4B9, prALetter},              // L&  [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D\n\t{0x1D4BB, 0x1D4BB, prALetter},              // L&       MATHEMATICAL SCRIPT SMALL F\n\t{0x1D4BD, 0x1D4C3, prALetter},              // L&   [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N\n\t{0x1D4C5, 0x1D505, prALetter},              // L&  [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B\n\t{0x1D507, 0x1D50A, prALetter},              // L&   [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G\n\t{0x1D50D, 0x1D514, prALetter},              // L&   [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q\n\t{0x1D516, 0x1D51C, prALetter},              // L&   [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y\n\t{0x1D51E, 0x1D539, prALetter},              // L&  [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B\n\t{0x1D53B, 0x1D53E, prALetter},              // L&   [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G\n\t{0x1D540, 0x1D544, prALetter},              // L&   [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M\n\t{0x1D546, 0x1D546, prALetter},              // L&       MATHEMATICAL DOUBLE-STRUCK CAPITAL O\n\t{0x1D54A, 0x1D550, prALetter},              // L&   [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y\n\t{0x1D552, 0x1D6A5, prALetter},              // L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J\n\t{0x1D6A8, 0x1D6C0, prALetter},              // L&  [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA\n\t{0x1D6C2, 0x1D6DA, prALetter},              // L&  [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA\n\t{0x1D6DC, 0x1D6FA, prALetter},              // L&  [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA\n\t{0x1D6FC, 0x1D714, prALetter},              // L&  [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA\n\t{0x1D716, 0x1D734, prALetter},              // L&  [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA\n\t{0x1D736, 0x1D74E, prALetter},              // L&  [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA\n\t{0x1D750, 0x1D76E, prALetter},              // L&  [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA\n\t{0x1D770, 0x1D788, prALetter},              // L&  [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA\n\t{0x1D78A, 0x1D7A8, prALetter},              // L&  [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA\n\t{0x1D7AA, 0x1D7C2, prALetter},              // L&  [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA\n\t{0x1D7C4, 0x1D7CB, prALetter},              // L&   [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA\n\t{0x1D7CE, 0x1D7FF, prNumeric},              // Nd  [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE\n\t{0x1DA00, 0x1DA36, prExtend},               // Mn  [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN\n\t{0x1DA3B, 0x1DA6C, prExtend},               // Mn  [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT\n\t{0x1DA75, 0x1DA75, prExtend},               // Mn       SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS\n\t{0x1DA84, 0x1DA84, prExtend},               // Mn       SIGNWRITING LOCATION HEAD NECK\n\t{0x1DA9B, 0x1DA9F, prExtend},               // Mn   [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6\n\t{0x1DAA1, 0x1DAAF, prExtend},               // Mn  [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16\n\t{0x1DF00, 0x1DF09, prALetter},              // L&  [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK\n\t{0x1DF0A, 0x1DF0A, prALetter},              // Lo       LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK\n\t{0x1DF0B, 0x1DF1E, prALetter},              // L&  [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL\n\t{0x1DF25, 0x1DF2A, prALetter},              // L&   [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK\n\t{0x1E000, 0x1E006, prExtend},               // Mn   [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE\n\t{0x1E008, 0x1E018, prExtend},               // Mn  [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU\n\t{0x1E01B, 0x1E021, prExtend},               // Mn   [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI\n\t{0x1E023, 0x1E024, prExtend},               // Mn   [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS\n\t{0x1E026, 0x1E02A, prExtend},               // Mn   [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA\n\t{0x1E030, 0x1E06D, prALetter},              // Lm  [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE\n\t{0x1E08F, 0x1E08F, prExtend},               // Mn       COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I\n\t{0x1E100, 0x1E12C, prALetter},              // Lo  [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W\n\t{0x1E130, 0x1E136, prExtend},               // Mn   [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D\n\t{0x1E137, 0x1E13D, prALetter},              // Lm   [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER\n\t{0x1E140, 0x1E149, prNumeric},              // Nd  [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE\n\t{0x1E14E, 0x1E14E, prALetter},              // Lo       NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ\n\t{0x1E290, 0x1E2AD, prALetter},              // Lo  [30] TOTO LETTER PA..TOTO LETTER A\n\t{0x1E2AE, 0x1E2AE, prExtend},               // Mn       TOTO SIGN RISING TONE\n\t{0x1E2C0, 0x1E2EB, prALetter},              // Lo  [44] WANCHO LETTER AA..WANCHO LETTER YIH\n\t{0x1E2EC, 0x1E2EF, prExtend},               // Mn   [4] WANCHO TONE TUP..WANCHO TONE KOINI\n\t{0x1E2F0, 0x1E2F9, prNumeric},              // Nd  [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE\n\t{0x1E4D0, 0x1E4EA, prALetter},              // Lo  [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL\n\t{0x1E4EB, 0x1E4EB, prALetter},              // Lm       NAG MUNDARI SIGN OJOD\n\t{0x1E4EC, 0x1E4EF, prExtend},               // Mn   [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH\n\t{0x1E4F0, 0x1E4F9, prNumeric},              // Nd  [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE\n\t{0x1E7E0, 0x1E7E6, prALetter},              // Lo   [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO\n\t{0x1E7E8, 0x1E7EB, prALetter},              // Lo   [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE\n\t{0x1E7ED, 0x1E7EE, prALetter},              // Lo   [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE\n\t{0x1E7F0, 0x1E7FE, prALetter},              // Lo  [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE\n\t{0x1E800, 0x1E8C4, prALetter},              // Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON\n\t{0x1E8D0, 0x1E8D6, prExtend},               // Mn   [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS\n\t{0x1E900, 0x1E943, prALetter},              // L&  [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA\n\t{0x1E944, 0x1E94A, prExtend},               // Mn   [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA\n\t{0x1E94B, 0x1E94B, prALetter},              // Lm       ADLAM NASALIZATION MARK\n\t{0x1E950, 0x1E959, prNumeric},              // Nd  [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE\n\t{0x1EE00, 0x1EE03, prALetter},              // Lo   [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL\n\t{0x1EE05, 0x1EE1F, prALetter},              // Lo  [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF\n\t{0x1EE21, 0x1EE22, prALetter},              // Lo   [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM\n\t{0x1EE24, 0x1EE24, prALetter},              // Lo       ARABIC MATHEMATICAL INITIAL HEH\n\t{0x1EE27, 0x1EE27, prALetter},              // Lo       ARABIC MATHEMATICAL INITIAL HAH\n\t{0x1EE29, 0x1EE32, prALetter},              // Lo  [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF\n\t{0x1EE34, 0x1EE37, prALetter},              // Lo   [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH\n\t{0x1EE39, 0x1EE39, prALetter},              // Lo       ARABIC MATHEMATICAL INITIAL DAD\n\t{0x1EE3B, 0x1EE3B, prALetter},              // Lo       ARABIC MATHEMATICAL INITIAL GHAIN\n\t{0x1EE42, 0x1EE42, prALetter},              // Lo       ARABIC MATHEMATICAL TAILED JEEM\n\t{0x1EE47, 0x1EE47, prALetter},              // Lo       ARABIC MATHEMATICAL TAILED HAH\n\t{0x1EE49, 0x1EE49, prALetter},              // Lo       ARABIC MATHEMATICAL TAILED YEH\n\t{0x1EE4B, 0x1EE4B, prALetter},              // Lo       ARABIC MATHEMATICAL TAILED LAM\n\t{0x1EE4D, 0x1EE4F, prALetter},              // Lo   [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN\n\t{0x1EE51, 0x1EE52, prALetter},              // Lo   [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF\n\t{0x1EE54, 0x1EE54, prALetter},              // Lo       ARABIC MATHEMATICAL TAILED SHEEN\n\t{0x1EE57, 0x1EE57, prALetter},              // Lo       ARABIC MATHEMATICAL TAILED KHAH\n\t{0x1EE59, 0x1EE59, prALetter},              // Lo       ARABIC MATHEMATICAL TAILED DAD\n\t{0x1EE5B, 0x1EE5B, prALetter},              // Lo       ARABIC MATHEMATICAL TAILED GHAIN\n\t{0x1EE5D, 0x1EE5D, prALetter},              // Lo       ARABIC MATHEMATICAL TAILED DOTLESS NOON\n\t{0x1EE5F, 0x1EE5F, prALetter},              // Lo       ARABIC MATHEMATICAL TAILED DOTLESS QAF\n\t{0x1EE61, 0x1EE62, prALetter},              // Lo   [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM\n\t{0x1EE64, 0x1EE64, prALetter},              // Lo       ARABIC MATHEMATICAL STRETCHED HEH\n\t{0x1EE67, 0x1EE6A, prALetter},              // Lo   [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF\n\t{0x1EE6C, 0x1EE72, prALetter},              // Lo   [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF\n\t{0x1EE74, 0x1EE77, prALetter},              // Lo   [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH\n\t{0x1EE79, 0x1EE7C, prALetter},              // Lo   [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH\n\t{0x1EE7E, 0x1EE7E, prALetter},              // Lo       ARABIC MATHEMATICAL STRETCHED DOTLESS FEH\n\t{0x1EE80, 0x1EE89, prALetter},              // Lo  [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH\n\t{0x1EE8B, 0x1EE9B, prALetter},              // Lo  [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN\n\t{0x1EEA1, 0x1EEA3, prALetter},              // Lo   [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL\n\t{0x1EEA5, 0x1EEA9, prALetter},              // Lo   [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH\n\t{0x1EEAB, 0x1EEBB, prALetter},              // Lo  [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN\n\t{0x1F000, 0x1F003, prExtendedPictographic}, // E0.0   [4] (🀀..🀃)    MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND\n\t{0x1F004, 0x1F004, prExtendedPictographic}, // E0.6   [1] (🀄)       mahjong red dragon\n\t{0x1F005, 0x1F0CE, prExtendedPictographic}, // E0.0 [202] (🀅..🃎)    MAHJONG TILE GREEN DRAGON..PLAYING CARD KING OF DIAMONDS\n\t{0x1F0CF, 0x1F0CF, prExtendedPictographic}, // E0.6   [1] (🃏)       joker\n\t{0x1F0D0, 0x1F0FF, prExtendedPictographic}, // E0.0  [48] (🃐..🃿)    <reserved-1F0D0>..<reserved-1F0FF>\n\t{0x1F10D, 0x1F10F, prExtendedPictographic}, // E0.0   [3] (🄍..🄏)    CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH\n\t{0x1F12F, 0x1F12F, prExtendedPictographic}, // E0.0   [1] (🄯)       COPYLEFT SYMBOL\n\t{0x1F130, 0x1F149, prALetter},              // So  [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z\n\t{0x1F150, 0x1F169, prALetter},              // So  [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z\n\t{0x1F16C, 0x1F16F, prExtendedPictographic}, // E0.0   [4] (🅬..🅯)    RAISED MR SIGN..CIRCLED HUMAN FIGURE\n\t{0x1F170, 0x1F189, prALetter},              // So  [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z\n\t{0x1F170, 0x1F171, prExtendedPictographic}, // E0.6   [2] (🅰️..🅱️)    A button (blood type)..B button (blood type)\n\t{0x1F17E, 0x1F17F, prExtendedPictographic}, // E0.6   [2] (🅾️..🅿️)    O button (blood type)..P button\n\t{0x1F18E, 0x1F18E, prExtendedPictographic}, // E0.6   [1] (🆎)       AB button (blood type)\n\t{0x1F191, 0x1F19A, prExtendedPictographic}, // E0.6  [10] (🆑..🆚)    CL button..VS button\n\t{0x1F1AD, 0x1F1E5, prExtendedPictographic}, // E0.0  [57] (🆭..🇥)    MASK WORK SYMBOL..<reserved-1F1E5>\n\t{0x1F1E6, 0x1F1FF, prRegionalIndicator},    // So  [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z\n\t{0x1F201, 0x1F202, prExtendedPictographic}, // E0.6   [2] (🈁..🈂️)    Japanese “here” button..Japanese “service charge” button\n\t{0x1F203, 0x1F20F, prExtendedPictographic}, // E0.0  [13] (🈃..🈏)    <reserved-1F203>..<reserved-1F20F>\n\t{0x1F21A, 0x1F21A, prExtendedPictographic}, // E0.6   [1] (🈚)       Japanese “free of charge” button\n\t{0x1F22F, 0x1F22F, prExtendedPictographic}, // E0.6   [1] (🈯)       Japanese “reserved” button\n\t{0x1F232, 0x1F23A, prExtendedPictographic}, // E0.6   [9] (🈲..🈺)    Japanese “prohibited” button..Japanese “open for business” button\n\t{0x1F23C, 0x1F23F, prExtendedPictographic}, // E0.0   [4] (🈼..🈿)    <reserved-1F23C>..<reserved-1F23F>\n\t{0x1F249, 0x1F24F, prExtendedPictographic}, // E0.0   [7] (🉉..🉏)    <reserved-1F249>..<reserved-1F24F>\n\t{0x1F250, 0x1F251, prExtendedPictographic}, // E0.6   [2] (🉐..🉑)    Japanese “bargain” button..Japanese “acceptable” button\n\t{0x1F252, 0x1F2FF, prExtendedPictographic}, // E0.0 [174] (🉒..🋿)    <reserved-1F252>..<reserved-1F2FF>\n\t{0x1F300, 0x1F30C, prExtendedPictographic}, // E0.6  [13] (🌀..🌌)    cyclone..milky way\n\t{0x1F30D, 0x1F30E, prExtendedPictographic}, // E0.7   [2] (🌍..🌎)    globe showing Europe-Africa..globe showing Americas\n\t{0x1F30F, 0x1F30F, prExtendedPictographic}, // E0.6   [1] (🌏)       globe showing Asia-Australia\n\t{0x1F310, 0x1F310, prExtendedPictographic}, // E1.0   [1] (🌐)       globe with meridians\n\t{0x1F311, 0x1F311, prExtendedPictographic}, // E0.6   [1] (🌑)       new moon\n\t{0x1F312, 0x1F312, prExtendedPictographic}, // E1.0   [1] (🌒)       waxing crescent moon\n\t{0x1F313, 0x1F315, prExtendedPictographic}, // E0.6   [3] (🌓..🌕)    first quarter moon..full moon\n\t{0x1F316, 0x1F318, prExtendedPictographic}, // E1.0   [3] (🌖..🌘)    waning gibbous moon..waning crescent moon\n\t{0x1F319, 0x1F319, prExtendedPictographic}, // E0.6   [1] (🌙)       crescent moon\n\t{0x1F31A, 0x1F31A, prExtendedPictographic}, // E1.0   [1] (🌚)       new moon face\n\t{0x1F31B, 0x1F31B, prExtendedPictographic}, // E0.6   [1] (🌛)       first quarter moon face\n\t{0x1F31C, 0x1F31C, prExtendedPictographic}, // E0.7   [1] (🌜)       last quarter moon face\n\t{0x1F31D, 0x1F31E, prExtendedPictographic}, // E1.0   [2] (🌝..🌞)    full moon face..sun with face\n\t{0x1F31F, 0x1F320, prExtendedPictographic}, // E0.6   [2] (🌟..🌠)    glowing star..shooting star\n\t{0x1F321, 0x1F321, prExtendedPictographic}, // E0.7   [1] (🌡️)       thermometer\n\t{0x1F322, 0x1F323, prExtendedPictographic}, // E0.0   [2] (🌢..🌣)    BLACK DROPLET..WHITE SUN\n\t{0x1F324, 0x1F32C, prExtendedPictographic}, // E0.7   [9] (🌤️..🌬️)    sun behind small cloud..wind face\n\t{0x1F32D, 0x1F32F, prExtendedPictographic}, // E1.0   [3] (🌭..🌯)    hot dog..burrito\n\t{0x1F330, 0x1F331, prExtendedPictographic}, // E0.6   [2] (🌰..🌱)    chestnut..seedling\n\t{0x1F332, 0x1F333, prExtendedPictographic}, // E1.0   [2] (🌲..🌳)    evergreen tree..deciduous tree\n\t{0x1F334, 0x1F335, prExtendedPictographic}, // E0.6   [2] (🌴..🌵)    palm tree..cactus\n\t{0x1F336, 0x1F336, prExtendedPictographic}, // E0.7   [1] (🌶️)       hot pepper\n\t{0x1F337, 0x1F34A, prExtendedPictographic}, // E0.6  [20] (🌷..🍊)    tulip..tangerine\n\t{0x1F34B, 0x1F34B, prExtendedPictographic}, // E1.0   [1] (🍋)       lemon\n\t{0x1F34C, 0x1F34F, prExtendedPictographic}, // E0.6   [4] (🍌..🍏)    banana..green apple\n\t{0x1F350, 0x1F350, prExtendedPictographic}, // E1.0   [1] (🍐)       pear\n\t{0x1F351, 0x1F37B, prExtendedPictographic}, // E0.6  [43] (🍑..🍻)    peach..clinking beer mugs\n\t{0x1F37C, 0x1F37C, prExtendedPictographic}, // E1.0   [1] (🍼)       baby bottle\n\t{0x1F37D, 0x1F37D, prExtendedPictographic}, // E0.7   [1] (🍽️)       fork and knife with plate\n\t{0x1F37E, 0x1F37F, prExtendedPictographic}, // E1.0   [2] (🍾..🍿)    bottle with popping cork..popcorn\n\t{0x1F380, 0x1F393, prExtendedPictographic}, // E0.6  [20] (🎀..🎓)    ribbon..graduation cap\n\t{0x1F394, 0x1F395, prExtendedPictographic}, // E0.0   [2] (🎔..🎕)    HEART WITH TIP ON THE LEFT..BOUQUET OF FLOWERS\n\t{0x1F396, 0x1F397, prExtendedPictographic}, // E0.7   [2] (🎖️..🎗️)    military medal..reminder ribbon\n\t{0x1F398, 0x1F398, prExtendedPictographic}, // E0.0   [1] (🎘)       MUSICAL KEYBOARD WITH JACKS\n\t{0x1F399, 0x1F39B, prExtendedPictographic}, // E0.7   [3] (🎙️..🎛️)    studio microphone..control knobs\n\t{0x1F39C, 0x1F39D, prExtendedPictographic}, // E0.0   [2] (🎜..🎝)    BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES\n\t{0x1F39E, 0x1F39F, prExtendedPictographic}, // E0.7   [2] (🎞️..🎟️)    film frames..admission tickets\n\t{0x1F3A0, 0x1F3C4, prExtendedPictographic}, // E0.6  [37] (🎠..🏄)    carousel horse..person surfing\n\t{0x1F3C5, 0x1F3C5, prExtendedPictographic}, // E1.0   [1] (🏅)       sports medal\n\t{0x1F3C6, 0x1F3C6, prExtendedPictographic}, // E0.6   [1] (🏆)       trophy\n\t{0x1F3C7, 0x1F3C7, prExtendedPictographic}, // E1.0   [1] (🏇)       horse racing\n\t{0x1F3C8, 0x1F3C8, prExtendedPictographic}, // E0.6   [1] (🏈)       american football\n\t{0x1F3C9, 0x1F3C9, prExtendedPictographic}, // E1.0   [1] (🏉)       rugby football\n\t{0x1F3CA, 0x1F3CA, prExtendedPictographic}, // E0.6   [1] (🏊)       person swimming\n\t{0x1F3CB, 0x1F3CE, prExtendedPictographic}, // E0.7   [4] (🏋️..🏎️)    person lifting weights..racing car\n\t{0x1F3CF, 0x1F3D3, prExtendedPictographic}, // E1.0   [5] (🏏..🏓)    cricket game..ping pong\n\t{0x1F3D4, 0x1F3DF, prExtendedPictographic}, // E0.7  [12] (🏔️..🏟️)    snow-capped mountain..stadium\n\t{0x1F3E0, 0x1F3E3, prExtendedPictographic}, // E0.6   [4] (🏠..🏣)    house..Japanese post office\n\t{0x1F3E4, 0x1F3E4, prExtendedPictographic}, // E1.0   [1] (🏤)       post office\n\t{0x1F3E5, 0x1F3F0, prExtendedPictographic}, // E0.6  [12] (🏥..🏰)    hospital..castle\n\t{0x1F3F1, 0x1F3F2, prExtendedPictographic}, // E0.0   [2] (🏱..🏲)    WHITE PENNANT..BLACK PENNANT\n\t{0x1F3F3, 0x1F3F3, prExtendedPictographic}, // E0.7   [1] (🏳️)       white flag\n\t{0x1F3F4, 0x1F3F4, prExtendedPictographic}, // E1.0   [1] (🏴)       black flag\n\t{0x1F3F5, 0x1F3F5, prExtendedPictographic}, // E0.7   [1] (🏵️)       rosette\n\t{0x1F3F6, 0x1F3F6, prExtendedPictographic}, // E0.0   [1] (🏶)       BLACK ROSETTE\n\t{0x1F3F7, 0x1F3F7, prExtendedPictographic}, // E0.7   [1] (🏷️)       label\n\t{0x1F3F8, 0x1F3FA, prExtendedPictographic}, // E1.0   [3] (🏸..🏺)    badminton..amphora\n\t{0x1F3FB, 0x1F3FF, prExtend},               // Sk   [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6\n\t{0x1F400, 0x1F407, prExtendedPictographic}, // E1.0   [8] (🐀..🐇)    rat..rabbit\n\t{0x1F408, 0x1F408, prExtendedPictographic}, // E0.7   [1] (🐈)       cat\n\t{0x1F409, 0x1F40B, prExtendedPictographic}, // E1.0   [3] (🐉..🐋)    dragon..whale\n\t{0x1F40C, 0x1F40E, prExtendedPictographic}, // E0.6   [3] (🐌..🐎)    snail..horse\n\t{0x1F40F, 0x1F410, prExtendedPictographic}, // E1.0   [2] (🐏..🐐)    ram..goat\n\t{0x1F411, 0x1F412, prExtendedPictographic}, // E0.6   [2] (🐑..🐒)    ewe..monkey\n\t{0x1F413, 0x1F413, prExtendedPictographic}, // E1.0   [1] (🐓)       rooster\n\t{0x1F414, 0x1F414, prExtendedPictographic}, // E0.6   [1] (🐔)       chicken\n\t{0x1F415, 0x1F415, prExtendedPictographic}, // E0.7   [1] (🐕)       dog\n\t{0x1F416, 0x1F416, prExtendedPictographic}, // E1.0   [1] (🐖)       pig\n\t{0x1F417, 0x1F429, prExtendedPictographic}, // E0.6  [19] (🐗..🐩)    boar..poodle\n\t{0x1F42A, 0x1F42A, prExtendedPictographic}, // E1.0   [1] (🐪)       camel\n\t{0x1F42B, 0x1F43E, prExtendedPictographic}, // E0.6  [20] (🐫..🐾)    two-hump camel..paw prints\n\t{0x1F43F, 0x1F43F, prExtendedPictographic}, // E0.7   [1] (🐿️)       chipmunk\n\t{0x1F440, 0x1F440, prExtendedPictographic}, // E0.6   [1] (👀)       eyes\n\t{0x1F441, 0x1F441, prExtendedPictographic}, // E0.7   [1] (👁️)       eye\n\t{0x1F442, 0x1F464, prExtendedPictographic}, // E0.6  [35] (👂..👤)    ear..bust in silhouette\n\t{0x1F465, 0x1F465, prExtendedPictographic}, // E1.0   [1] (👥)       busts in silhouette\n\t{0x1F466, 0x1F46B, prExtendedPictographic}, // E0.6   [6] (👦..👫)    boy..woman and man holding hands\n\t{0x1F46C, 0x1F46D, prExtendedPictographic}, // E1.0   [2] (👬..👭)    men holding hands..women holding hands\n\t{0x1F46E, 0x1F4AC, prExtendedPictographic}, // E0.6  [63] (👮..💬)    police officer..speech balloon\n\t{0x1F4AD, 0x1F4AD, prExtendedPictographic}, // E1.0   [1] (💭)       thought balloon\n\t{0x1F4AE, 0x1F4B5, prExtendedPictographic}, // E0.6   [8] (💮..💵)    white flower..dollar banknote\n\t{0x1F4B6, 0x1F4B7, prExtendedPictographic}, // E1.0   [2] (💶..💷)    euro banknote..pound banknote\n\t{0x1F4B8, 0x1F4EB, prExtendedPictographic}, // E0.6  [52] (💸..📫)    money with wings..closed mailbox with raised flag\n\t{0x1F4EC, 0x1F4ED, prExtendedPictographic}, // E0.7   [2] (📬..📭)    open mailbox with raised flag..open mailbox with lowered flag\n\t{0x1F4EE, 0x1F4EE, prExtendedPictographic}, // E0.6   [1] (📮)       postbox\n\t{0x1F4EF, 0x1F4EF, prExtendedPictographic}, // E1.0   [1] (📯)       postal horn\n\t{0x1F4F0, 0x1F4F4, prExtendedPictographic}, // E0.6   [5] (📰..📴)    newspaper..mobile phone off\n\t{0x1F4F5, 0x1F4F5, prExtendedPictographic}, // E1.0   [1] (📵)       no mobile phones\n\t{0x1F4F6, 0x1F4F7, prExtendedPictographic}, // E0.6   [2] (📶..📷)    antenna bars..camera\n\t{0x1F4F8, 0x1F4F8, prExtendedPictographic}, // E1.0   [1] (📸)       camera with flash\n\t{0x1F4F9, 0x1F4FC, prExtendedPictographic}, // E0.6   [4] (📹..📼)    video camera..videocassette\n\t{0x1F4FD, 0x1F4FD, prExtendedPictographic}, // E0.7   [1] (📽️)       film projector\n\t{0x1F4FE, 0x1F4FE, prExtendedPictographic}, // E0.0   [1] (📾)       PORTABLE STEREO\n\t{0x1F4FF, 0x1F502, prExtendedPictographic}, // E1.0   [4] (📿..🔂)    prayer beads..repeat single button\n\t{0x1F503, 0x1F503, prExtendedPictographic}, // E0.6   [1] (🔃)       clockwise vertical arrows\n\t{0x1F504, 0x1F507, prExtendedPictographic}, // E1.0   [4] (🔄..🔇)    counterclockwise arrows button..muted speaker\n\t{0x1F508, 0x1F508, prExtendedPictographic}, // E0.7   [1] (🔈)       speaker low volume\n\t{0x1F509, 0x1F509, prExtendedPictographic}, // E1.0   [1] (🔉)       speaker medium volume\n\t{0x1F50A, 0x1F514, prExtendedPictographic}, // E0.6  [11] (🔊..🔔)    speaker high volume..bell\n\t{0x1F515, 0x1F515, prExtendedPictographic}, // E1.0   [1] (🔕)       bell with slash\n\t{0x1F516, 0x1F52B, prExtendedPictographic}, // E0.6  [22] (🔖..🔫)    bookmark..water pistol\n\t{0x1F52C, 0x1F52D, prExtendedPictographic}, // E1.0   [2] (🔬..🔭)    microscope..telescope\n\t{0x1F52E, 0x1F53D, prExtendedPictographic}, // E0.6  [16] (🔮..🔽)    crystal ball..downwards button\n\t{0x1F546, 0x1F548, prExtendedPictographic}, // E0.0   [3] (🕆..🕈)    WHITE LATIN CROSS..CELTIC CROSS\n\t{0x1F549, 0x1F54A, prExtendedPictographic}, // E0.7   [2] (🕉️..🕊️)    om..dove\n\t{0x1F54B, 0x1F54E, prExtendedPictographic}, // E1.0   [4] (🕋..🕎)    kaaba..menorah\n\t{0x1F54F, 0x1F54F, prExtendedPictographic}, // E0.0   [1] (🕏)       BOWL OF HYGIEIA\n\t{0x1F550, 0x1F55B, prExtendedPictographic}, // E0.6  [12] (🕐..🕛)    one o’clock..twelve o’clock\n\t{0x1F55C, 0x1F567, prExtendedPictographic}, // E0.7  [12] (🕜..🕧)    one-thirty..twelve-thirty\n\t{0x1F568, 0x1F56E, prExtendedPictographic}, // E0.0   [7] (🕨..🕮)    RIGHT SPEAKER..BOOK\n\t{0x1F56F, 0x1F570, prExtendedPictographic}, // E0.7   [2] (🕯️..🕰️)    candle..mantelpiece clock\n\t{0x1F571, 0x1F572, prExtendedPictographic}, // E0.0   [2] (🕱..🕲)    BLACK SKULL AND CROSSBONES..NO PIRACY\n\t{0x1F573, 0x1F579, prExtendedPictographic}, // E0.7   [7] (🕳️..🕹️)    hole..joystick\n\t{0x1F57A, 0x1F57A, prExtendedPictographic}, // E3.0   [1] (🕺)       man dancing\n\t{0x1F57B, 0x1F586, prExtendedPictographic}, // E0.0  [12] (🕻..🖆)    LEFT HAND TELEPHONE RECEIVER..PEN OVER STAMPED ENVELOPE\n\t{0x1F587, 0x1F587, prExtendedPictographic}, // E0.7   [1] (🖇️)       linked paperclips\n\t{0x1F588, 0x1F589, prExtendedPictographic}, // E0.0   [2] (🖈..🖉)    BLACK PUSHPIN..LOWER LEFT PENCIL\n\t{0x1F58A, 0x1F58D, prExtendedPictographic}, // E0.7   [4] (🖊️..🖍️)    pen..crayon\n\t{0x1F58E, 0x1F58F, prExtendedPictographic}, // E0.0   [2] (🖎..🖏)    LEFT WRITING HAND..TURNED OK HAND SIGN\n\t{0x1F590, 0x1F590, prExtendedPictographic}, // E0.7   [1] (🖐️)       hand with fingers splayed\n\t{0x1F591, 0x1F594, prExtendedPictographic}, // E0.0   [4] (🖑..🖔)    REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND\n\t{0x1F595, 0x1F596, prExtendedPictographic}, // E1.0   [2] (🖕..🖖)    middle finger..vulcan salute\n\t{0x1F597, 0x1F5A3, prExtendedPictographic}, // E0.0  [13] (🖗..🖣)    WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX\n\t{0x1F5A4, 0x1F5A4, prExtendedPictographic}, // E3.0   [1] (🖤)       black heart\n\t{0x1F5A5, 0x1F5A5, prExtendedPictographic}, // E0.7   [1] (🖥️)       desktop computer\n\t{0x1F5A6, 0x1F5A7, prExtendedPictographic}, // E0.0   [2] (🖦..🖧)    KEYBOARD AND MOUSE..THREE NETWORKED COMPUTERS\n\t{0x1F5A8, 0x1F5A8, prExtendedPictographic}, // E0.7   [1] (🖨️)       printer\n\t{0x1F5A9, 0x1F5B0, prExtendedPictographic}, // E0.0   [8] (🖩..🖰)    POCKET CALCULATOR..TWO BUTTON MOUSE\n\t{0x1F5B1, 0x1F5B2, prExtendedPictographic}, // E0.7   [2] (🖱️..🖲️)    computer mouse..trackball\n\t{0x1F5B3, 0x1F5BB, prExtendedPictographic}, // E0.0   [9] (🖳..🖻)    OLD PERSONAL COMPUTER..DOCUMENT WITH PICTURE\n\t{0x1F5BC, 0x1F5BC, prExtendedPictographic}, // E0.7   [1] (🖼️)       framed picture\n\t{0x1F5BD, 0x1F5C1, prExtendedPictographic}, // E0.0   [5] (🖽..🗁)    FRAME WITH TILES..OPEN FOLDER\n\t{0x1F5C2, 0x1F5C4, prExtendedPictographic}, // E0.7   [3] (🗂️..🗄️)    card index dividers..file cabinet\n\t{0x1F5C5, 0x1F5D0, prExtendedPictographic}, // E0.0  [12] (🗅..🗐)    EMPTY NOTE..PAGES\n\t{0x1F5D1, 0x1F5D3, prExtendedPictographic}, // E0.7   [3] (🗑️..🗓️)    wastebasket..spiral calendar\n\t{0x1F5D4, 0x1F5DB, prExtendedPictographic}, // E0.0   [8] (🗔..🗛)    DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL\n\t{0x1F5DC, 0x1F5DE, prExtendedPictographic}, // E0.7   [3] (🗜️..🗞️)    clamp..rolled-up newspaper\n\t{0x1F5DF, 0x1F5E0, prExtendedPictographic}, // E0.0   [2] (🗟..🗠)    PAGE WITH CIRCLED TEXT..STOCK CHART\n\t{0x1F5E1, 0x1F5E1, prExtendedPictographic}, // E0.7   [1] (🗡️)       dagger\n\t{0x1F5E2, 0x1F5E2, prExtendedPictographic}, // E0.0   [1] (🗢)       LIPS\n\t{0x1F5E3, 0x1F5E3, prExtendedPictographic}, // E0.7   [1] (🗣️)       speaking head\n\t{0x1F5E4, 0x1F5E7, prExtendedPictographic}, // E0.0   [4] (🗤..🗧)    THREE RAYS ABOVE..THREE RAYS RIGHT\n\t{0x1F5E8, 0x1F5E8, prExtendedPictographic}, // E2.0   [1] (🗨️)       left speech bubble\n\t{0x1F5E9, 0x1F5EE, prExtendedPictographic}, // E0.0   [6] (🗩..🗮)    RIGHT SPEECH BUBBLE..LEFT ANGER BUBBLE\n\t{0x1F5EF, 0x1F5EF, prExtendedPictographic}, // E0.7   [1] (🗯️)       right anger bubble\n\t{0x1F5F0, 0x1F5F2, prExtendedPictographic}, // E0.0   [3] (🗰..🗲)    MOOD BUBBLE..LIGHTNING MOOD\n\t{0x1F5F3, 0x1F5F3, prExtendedPictographic}, // E0.7   [1] (🗳️)       ballot box with ballot\n\t{0x1F5F4, 0x1F5F9, prExtendedPictographic}, // E0.0   [6] (🗴..🗹)    BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK\n\t{0x1F5FA, 0x1F5FA, prExtendedPictographic}, // E0.7   [1] (🗺️)       world map\n\t{0x1F5FB, 0x1F5FF, prExtendedPictographic}, // E0.6   [5] (🗻..🗿)    mount fuji..moai\n\t{0x1F600, 0x1F600, prExtendedPictographic}, // E1.0   [1] (😀)       grinning face\n\t{0x1F601, 0x1F606, prExtendedPictographic}, // E0.6   [6] (😁..😆)    beaming face with smiling eyes..grinning squinting face\n\t{0x1F607, 0x1F608, prExtendedPictographic}, // E1.0   [2] (😇..😈)    smiling face with halo..smiling face with horns\n\t{0x1F609, 0x1F60D, prExtendedPictographic}, // E0.6   [5] (😉..😍)    winking face..smiling face with heart-eyes\n\t{0x1F60E, 0x1F60E, prExtendedPictographic}, // E1.0   [1] (😎)       smiling face with sunglasses\n\t{0x1F60F, 0x1F60F, prExtendedPictographic}, // E0.6   [1] (😏)       smirking face\n\t{0x1F610, 0x1F610, prExtendedPictographic}, // E0.7   [1] (😐)       neutral face\n\t{0x1F611, 0x1F611, prExtendedPictographic}, // E1.0   [1] (😑)       expressionless face\n\t{0x1F612, 0x1F614, prExtendedPictographic}, // E0.6   [3] (😒..😔)    unamused face..pensive face\n\t{0x1F615, 0x1F615, prExtendedPictographic}, // E1.0   [1] (😕)       confused face\n\t{0x1F616, 0x1F616, prExtendedPictographic}, // E0.6   [1] (😖)       confounded face\n\t{0x1F617, 0x1F617, prExtendedPictographic}, // E1.0   [1] (😗)       kissing face\n\t{0x1F618, 0x1F618, prExtendedPictographic}, // E0.6   [1] (😘)       face blowing a kiss\n\t{0x1F619, 0x1F619, prExtendedPictographic}, // E1.0   [1] (😙)       kissing face with smiling eyes\n\t{0x1F61A, 0x1F61A, prExtendedPictographic}, // E0.6   [1] (😚)       kissing face with closed eyes\n\t{0x1F61B, 0x1F61B, prExtendedPictographic}, // E1.0   [1] (😛)       face with tongue\n\t{0x1F61C, 0x1F61E, prExtendedPictographic}, // E0.6   [3] (😜..😞)    winking face with tongue..disappointed face\n\t{0x1F61F, 0x1F61F, prExtendedPictographic}, // E1.0   [1] (😟)       worried face\n\t{0x1F620, 0x1F625, prExtendedPictographic}, // E0.6   [6] (😠..😥)    angry face..sad but relieved face\n\t{0x1F626, 0x1F627, prExtendedPictographic}, // E1.0   [2] (😦..😧)    frowning face with open mouth..anguished face\n\t{0x1F628, 0x1F62B, prExtendedPictographic}, // E0.6   [4] (😨..😫)    fearful face..tired face\n\t{0x1F62C, 0x1F62C, prExtendedPictographic}, // E1.0   [1] (😬)       grimacing face\n\t{0x1F62D, 0x1F62D, prExtendedPictographic}, // E0.6   [1] (😭)       loudly crying face\n\t{0x1F62E, 0x1F62F, prExtendedPictographic}, // E1.0   [2] (😮..😯)    face with open mouth..hushed face\n\t{0x1F630, 0x1F633, prExtendedPictographic}, // E0.6   [4] (😰..😳)    anxious face with sweat..flushed face\n\t{0x1F634, 0x1F634, prExtendedPictographic}, // E1.0   [1] (😴)       sleeping face\n\t{0x1F635, 0x1F635, prExtendedPictographic}, // E0.6   [1] (😵)       face with crossed-out eyes\n\t{0x1F636, 0x1F636, prExtendedPictographic}, // E1.0   [1] (😶)       face without mouth\n\t{0x1F637, 0x1F640, prExtendedPictographic}, // E0.6  [10] (😷..🙀)    face with medical mask..weary cat\n\t{0x1F641, 0x1F644, prExtendedPictographic}, // E1.0   [4] (🙁..🙄)    slightly frowning face..face with rolling eyes\n\t{0x1F645, 0x1F64F, prExtendedPictographic}, // E0.6  [11] (🙅..🙏)    person gesturing NO..folded hands\n\t{0x1F680, 0x1F680, prExtendedPictographic}, // E0.6   [1] (🚀)       rocket\n\t{0x1F681, 0x1F682, prExtendedPictographic}, // E1.0   [2] (🚁..🚂)    helicopter..locomotive\n\t{0x1F683, 0x1F685, prExtendedPictographic}, // E0.6   [3] (🚃..🚅)    railway car..bullet train\n\t{0x1F686, 0x1F686, prExtendedPictographic}, // E1.0   [1] (🚆)       train\n\t{0x1F687, 0x1F687, prExtendedPictographic}, // E0.6   [1] (🚇)       metro\n\t{0x1F688, 0x1F688, prExtendedPictographic}, // E1.0   [1] (🚈)       light rail\n\t{0x1F689, 0x1F689, prExtendedPictographic}, // E0.6   [1] (🚉)       station\n\t{0x1F68A, 0x1F68B, prExtendedPictographic}, // E1.0   [2] (🚊..🚋)    tram..tram car\n\t{0x1F68C, 0x1F68C, prExtendedPictographic}, // E0.6   [1] (🚌)       bus\n\t{0x1F68D, 0x1F68D, prExtendedPictographic}, // E0.7   [1] (🚍)       oncoming bus\n\t{0x1F68E, 0x1F68E, prExtendedPictographic}, // E1.0   [1] (🚎)       trolleybus\n\t{0x1F68F, 0x1F68F, prExtendedPictographic}, // E0.6   [1] (🚏)       bus stop\n\t{0x1F690, 0x1F690, prExtendedPictographic}, // E1.0   [1] (🚐)       minibus\n\t{0x1F691, 0x1F693, prExtendedPictographic}, // E0.6   [3] (🚑..🚓)    ambulance..police car\n\t{0x1F694, 0x1F694, prExtendedPictographic}, // E0.7   [1] (🚔)       oncoming police car\n\t{0x1F695, 0x1F695, prExtendedPictographic}, // E0.6   [1] (🚕)       taxi\n\t{0x1F696, 0x1F696, prExtendedPictographic}, // E1.0   [1] (🚖)       oncoming taxi\n\t{0x1F697, 0x1F697, prExtendedPictographic}, // E0.6   [1] (🚗)       automobile\n\t{0x1F698, 0x1F698, prExtendedPictographic}, // E0.7   [1] (🚘)       oncoming automobile\n\t{0x1F699, 0x1F69A, prExtendedPictographic}, // E0.6   [2] (🚙..🚚)    sport utility vehicle..delivery truck\n\t{0x1F69B, 0x1F6A1, prExtendedPictographic}, // E1.0   [7] (🚛..🚡)    articulated lorry..aerial tramway\n\t{0x1F6A2, 0x1F6A2, prExtendedPictographic}, // E0.6   [1] (🚢)       ship\n\t{0x1F6A3, 0x1F6A3, prExtendedPictographic}, // E1.0   [1] (🚣)       person rowing boat\n\t{0x1F6A4, 0x1F6A5, prExtendedPictographic}, // E0.6   [2] (🚤..🚥)    speedboat..horizontal traffic light\n\t{0x1F6A6, 0x1F6A6, prExtendedPictographic}, // E1.0   [1] (🚦)       vertical traffic light\n\t{0x1F6A7, 0x1F6AD, prExtendedPictographic}, // E0.6   [7] (🚧..🚭)    construction..no smoking\n\t{0x1F6AE, 0x1F6B1, prExtendedPictographic}, // E1.0   [4] (🚮..🚱)    litter in bin sign..non-potable water\n\t{0x1F6B2, 0x1F6B2, prExtendedPictographic}, // E0.6   [1] (🚲)       bicycle\n\t{0x1F6B3, 0x1F6B5, prExtendedPictographic}, // E1.0   [3] (🚳..🚵)    no bicycles..person mountain biking\n\t{0x1F6B6, 0x1F6B6, prExtendedPictographic}, // E0.6   [1] (🚶)       person walking\n\t{0x1F6B7, 0x1F6B8, prExtendedPictographic}, // E1.0   [2] (🚷..🚸)    no pedestrians..children crossing\n\t{0x1F6B9, 0x1F6BE, prExtendedPictographic}, // E0.6   [6] (🚹..🚾)    men’s room..water closet\n\t{0x1F6BF, 0x1F6BF, prExtendedPictographic}, // E1.0   [1] (🚿)       shower\n\t{0x1F6C0, 0x1F6C0, prExtendedPictographic}, // E0.6   [1] (🛀)       person taking bath\n\t{0x1F6C1, 0x1F6C5, prExtendedPictographic}, // E1.0   [5] (🛁..🛅)    bathtub..left luggage\n\t{0x1F6C6, 0x1F6CA, prExtendedPictographic}, // E0.0   [5] (🛆..🛊)    TRIANGLE WITH ROUNDED CORNERS..GIRLS SYMBOL\n\t{0x1F6CB, 0x1F6CB, prExtendedPictographic}, // E0.7   [1] (🛋️)       couch and lamp\n\t{0x1F6CC, 0x1F6CC, prExtendedPictographic}, // E1.0   [1] (🛌)       person in bed\n\t{0x1F6CD, 0x1F6CF, prExtendedPictographic}, // E0.7   [3] (🛍️..🛏️)    shopping bags..bed\n\t{0x1F6D0, 0x1F6D0, prExtendedPictographic}, // E1.0   [1] (🛐)       place of worship\n\t{0x1F6D1, 0x1F6D2, prExtendedPictographic}, // E3.0   [2] (🛑..🛒)    stop sign..shopping cart\n\t{0x1F6D3, 0x1F6D4, prExtendedPictographic}, // E0.0   [2] (🛓..🛔)    STUPA..PAGODA\n\t{0x1F6D5, 0x1F6D5, prExtendedPictographic}, // E12.0  [1] (🛕)       hindu temple\n\t{0x1F6D6, 0x1F6D7, prExtendedPictographic}, // E13.0  [2] (🛖..🛗)    hut..elevator\n\t{0x1F6D8, 0x1F6DB, prExtendedPictographic}, // E0.0   [4] (🛘..🛛)    <reserved-1F6D8>..<reserved-1F6DB>\n\t{0x1F6DC, 0x1F6DC, prExtendedPictographic}, // E15.0  [1] (🛜)       wireless\n\t{0x1F6DD, 0x1F6DF, prExtendedPictographic}, // E14.0  [3] (🛝..🛟)    playground slide..ring buoy\n\t{0x1F6E0, 0x1F6E5, prExtendedPictographic}, // E0.7   [6] (🛠️..🛥️)    hammer and wrench..motor boat\n\t{0x1F6E6, 0x1F6E8, prExtendedPictographic}, // E0.0   [3] (🛦..🛨)    UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE\n\t{0x1F6E9, 0x1F6E9, prExtendedPictographic}, // E0.7   [1] (🛩️)       small airplane\n\t{0x1F6EA, 0x1F6EA, prExtendedPictographic}, // E0.0   [1] (🛪)       NORTHEAST-POINTING AIRPLANE\n\t{0x1F6EB, 0x1F6EC, prExtendedPictographic}, // E1.0   [2] (🛫..🛬)    airplane departure..airplane arrival\n\t{0x1F6ED, 0x1F6EF, prExtendedPictographic}, // E0.0   [3] (🛭..🛯)    <reserved-1F6ED>..<reserved-1F6EF>\n\t{0x1F6F0, 0x1F6F0, prExtendedPictographic}, // E0.7   [1] (🛰️)       satellite\n\t{0x1F6F1, 0x1F6F2, prExtendedPictographic}, // E0.0   [2] (🛱..🛲)    ONCOMING FIRE ENGINE..DIESEL LOCOMOTIVE\n\t{0x1F6F3, 0x1F6F3, prExtendedPictographic}, // E0.7   [1] (🛳️)       passenger ship\n\t{0x1F6F4, 0x1F6F6, prExtendedPictographic}, // E3.0   [3] (🛴..🛶)    kick scooter..canoe\n\t{0x1F6F7, 0x1F6F8, prExtendedPictographic}, // E5.0   [2] (🛷..🛸)    sled..flying saucer\n\t{0x1F6F9, 0x1F6F9, prExtendedPictographic}, // E11.0  [1] (🛹)       skateboard\n\t{0x1F6FA, 0x1F6FA, prExtendedPictographic}, // E12.0  [1] (🛺)       auto rickshaw\n\t{0x1F6FB, 0x1F6FC, prExtendedPictographic}, // E13.0  [2] (🛻..🛼)    pickup truck..roller skate\n\t{0x1F6FD, 0x1F6FF, prExtendedPictographic}, // E0.0   [3] (🛽..🛿)    <reserved-1F6FD>..<reserved-1F6FF>\n\t{0x1F774, 0x1F77F, prExtendedPictographic}, // E0.0  [12] (🝴..🝿)    LOT OF FORTUNE..ORCUS\n\t{0x1F7D5, 0x1F7DF, prExtendedPictographic}, // E0.0  [11] (🟕..🟟)    CIRCLED TRIANGLE..<reserved-1F7DF>\n\t{0x1F7E0, 0x1F7EB, prExtendedPictographic}, // E12.0 [12] (🟠..🟫)    orange circle..brown square\n\t{0x1F7EC, 0x1F7EF, prExtendedPictographic}, // E0.0   [4] (🟬..🟯)    <reserved-1F7EC>..<reserved-1F7EF>\n\t{0x1F7F0, 0x1F7F0, prExtendedPictographic}, // E14.0  [1] (🟰)       heavy equals sign\n\t{0x1F7F1, 0x1F7FF, prExtendedPictographic}, // E0.0  [15] (🟱..🟿)    <reserved-1F7F1>..<reserved-1F7FF>\n\t{0x1F80C, 0x1F80F, prExtendedPictographic}, // E0.0   [4] (🠌..🠏)    <reserved-1F80C>..<reserved-1F80F>\n\t{0x1F848, 0x1F84F, prExtendedPictographic}, // E0.0   [8] (🡈..🡏)    <reserved-1F848>..<reserved-1F84F>\n\t{0x1F85A, 0x1F85F, prExtendedPictographic}, // E0.0   [6] (🡚..🡟)    <reserved-1F85A>..<reserved-1F85F>\n\t{0x1F888, 0x1F88F, prExtendedPictographic}, // E0.0   [8] (🢈..🢏)    <reserved-1F888>..<reserved-1F88F>\n\t{0x1F8AE, 0x1F8FF, prExtendedPictographic}, // E0.0  [82] (🢮..🣿)    <reserved-1F8AE>..<reserved-1F8FF>\n\t{0x1F90C, 0x1F90C, prExtendedPictographic}, // E13.0  [1] (🤌)       pinched fingers\n\t{0x1F90D, 0x1F90F, prExtendedPictographic}, // E12.0  [3] (🤍..🤏)    white heart..pinching hand\n\t{0x1F910, 0x1F918, prExtendedPictographic}, // E1.0   [9] (🤐..🤘)    zipper-mouth face..sign of the horns\n\t{0x1F919, 0x1F91E, prExtendedPictographic}, // E3.0   [6] (🤙..🤞)    call me hand..crossed fingers\n\t{0x1F91F, 0x1F91F, prExtendedPictographic}, // E5.0   [1] (🤟)       love-you gesture\n\t{0x1F920, 0x1F927, prExtendedPictographic}, // E3.0   [8] (🤠..🤧)    cowboy hat face..sneezing face\n\t{0x1F928, 0x1F92F, prExtendedPictographic}, // E5.0   [8] (🤨..🤯)    face with raised eyebrow..exploding head\n\t{0x1F930, 0x1F930, prExtendedPictographic}, // E3.0   [1] (🤰)       pregnant woman\n\t{0x1F931, 0x1F932, prExtendedPictographic}, // E5.0   [2] (🤱..🤲)    breast-feeding..palms up together\n\t{0x1F933, 0x1F93A, prExtendedPictographic}, // E3.0   [8] (🤳..🤺)    selfie..person fencing\n\t{0x1F93C, 0x1F93E, prExtendedPictographic}, // E3.0   [3] (🤼..🤾)    people wrestling..person playing handball\n\t{0x1F93F, 0x1F93F, prExtendedPictographic}, // E12.0  [1] (🤿)       diving mask\n\t{0x1F940, 0x1F945, prExtendedPictographic}, // E3.0   [6] (🥀..🥅)    wilted flower..goal net\n\t{0x1F947, 0x1F94B, prExtendedPictographic}, // E3.0   [5] (🥇..🥋)    1st place medal..martial arts uniform\n\t{0x1F94C, 0x1F94C, prExtendedPictographic}, // E5.0   [1] (🥌)       curling stone\n\t{0x1F94D, 0x1F94F, prExtendedPictographic}, // E11.0  [3] (🥍..🥏)    lacrosse..flying disc\n\t{0x1F950, 0x1F95E, prExtendedPictographic}, // E3.0  [15] (🥐..🥞)    croissant..pancakes\n\t{0x1F95F, 0x1F96B, prExtendedPictographic}, // E5.0  [13] (🥟..🥫)    dumpling..canned food\n\t{0x1F96C, 0x1F970, prExtendedPictographic}, // E11.0  [5] (🥬..🥰)    leafy green..smiling face with hearts\n\t{0x1F971, 0x1F971, prExtendedPictographic}, // E12.0  [1] (🥱)       yawning face\n\t{0x1F972, 0x1F972, prExtendedPictographic}, // E13.0  [1] (🥲)       smiling face with tear\n\t{0x1F973, 0x1F976, prExtendedPictographic}, // E11.0  [4] (🥳..🥶)    partying face..cold face\n\t{0x1F977, 0x1F978, prExtendedPictographic}, // E13.0  [2] (🥷..🥸)    ninja..disguised face\n\t{0x1F979, 0x1F979, prExtendedPictographic}, // E14.0  [1] (🥹)       face holding back tears\n\t{0x1F97A, 0x1F97A, prExtendedPictographic}, // E11.0  [1] (🥺)       pleading face\n\t{0x1F97B, 0x1F97B, prExtendedPictographic}, // E12.0  [1] (🥻)       sari\n\t{0x1F97C, 0x1F97F, prExtendedPictographic}, // E11.0  [4] (🥼..🥿)    lab coat..flat shoe\n\t{0x1F980, 0x1F984, prExtendedPictographic}, // E1.0   [5] (🦀..🦄)    crab..unicorn\n\t{0x1F985, 0x1F991, prExtendedPictographic}, // E3.0  [13] (🦅..🦑)    eagle..squid\n\t{0x1F992, 0x1F997, prExtendedPictographic}, // E5.0   [6] (🦒..🦗)    giraffe..cricket\n\t{0x1F998, 0x1F9A2, prExtendedPictographic}, // E11.0 [11] (🦘..🦢)    kangaroo..swan\n\t{0x1F9A3, 0x1F9A4, prExtendedPictographic}, // E13.0  [2] (🦣..🦤)    mammoth..dodo\n\t{0x1F9A5, 0x1F9AA, prExtendedPictographic}, // E12.0  [6] (🦥..🦪)    sloth..oyster\n\t{0x1F9AB, 0x1F9AD, prExtendedPictographic}, // E13.0  [3] (🦫..🦭)    beaver..seal\n\t{0x1F9AE, 0x1F9AF, prExtendedPictographic}, // E12.0  [2] (🦮..🦯)    guide dog..white cane\n\t{0x1F9B0, 0x1F9B9, prExtendedPictographic}, // E11.0 [10] (🦰..🦹)    red hair..supervillain\n\t{0x1F9BA, 0x1F9BF, prExtendedPictographic}, // E12.0  [6] (🦺..🦿)    safety vest..mechanical leg\n\t{0x1F9C0, 0x1F9C0, prExtendedPictographic}, // E1.0   [1] (🧀)       cheese wedge\n\t{0x1F9C1, 0x1F9C2, prExtendedPictographic}, // E11.0  [2] (🧁..🧂)    cupcake..salt\n\t{0x1F9C3, 0x1F9CA, prExtendedPictographic}, // E12.0  [8] (🧃..🧊)    beverage box..ice\n\t{0x1F9CB, 0x1F9CB, prExtendedPictographic}, // E13.0  [1] (🧋)       bubble tea\n\t{0x1F9CC, 0x1F9CC, prExtendedPictographic}, // E14.0  [1] (🧌)       troll\n\t{0x1F9CD, 0x1F9CF, prExtendedPictographic}, // E12.0  [3] (🧍..🧏)    person standing..deaf person\n\t{0x1F9D0, 0x1F9E6, prExtendedPictographic}, // E5.0  [23] (🧐..🧦)    face with monocle..socks\n\t{0x1F9E7, 0x1F9FF, prExtendedPictographic}, // E11.0 [25] (🧧..🧿)    red envelope..nazar amulet\n\t{0x1FA00, 0x1FA6F, prExtendedPictographic}, // E0.0 [112] (🨀..🩯)    NEUTRAL CHESS KING..<reserved-1FA6F>\n\t{0x1FA70, 0x1FA73, prExtendedPictographic}, // E12.0  [4] (🩰..🩳)    ballet shoes..shorts\n\t{0x1FA74, 0x1FA74, prExtendedPictographic}, // E13.0  [1] (🩴)       thong sandal\n\t{0x1FA75, 0x1FA77, prExtendedPictographic}, // E15.0  [3] (🩵..🩷)    light blue heart..pink heart\n\t{0x1FA78, 0x1FA7A, prExtendedPictographic}, // E12.0  [3] (🩸..🩺)    drop of blood..stethoscope\n\t{0x1FA7B, 0x1FA7C, prExtendedPictographic}, // E14.0  [2] (🩻..🩼)    x-ray..crutch\n\t{0x1FA7D, 0x1FA7F, prExtendedPictographic}, // E0.0   [3] (🩽..🩿)    <reserved-1FA7D>..<reserved-1FA7F>\n\t{0x1FA80, 0x1FA82, prExtendedPictographic}, // E12.0  [3] (🪀..🪂)    yo-yo..parachute\n\t{0x1FA83, 0x1FA86, prExtendedPictographic}, // E13.0  [4] (🪃..🪆)    boomerang..nesting dolls\n\t{0x1FA87, 0x1FA88, prExtendedPictographic}, // E15.0  [2] (🪇..🪈)    maracas..flute\n\t{0x1FA89, 0x1FA8F, prExtendedPictographic}, // E0.0   [7] (🪉..🪏)    <reserved-1FA89>..<reserved-1FA8F>\n\t{0x1FA90, 0x1FA95, prExtendedPictographic}, // E12.0  [6] (🪐..🪕)    ringed planet..banjo\n\t{0x1FA96, 0x1FAA8, prExtendedPictographic}, // E13.0 [19] (🪖..🪨)    military helmet..rock\n\t{0x1FAA9, 0x1FAAC, prExtendedPictographic}, // E14.0  [4] (🪩..🪬)    mirror ball..hamsa\n\t{0x1FAAD, 0x1FAAF, prExtendedPictographic}, // E15.0  [3] (🪭..🪯)    folding hand fan..khanda\n\t{0x1FAB0, 0x1FAB6, prExtendedPictographic}, // E13.0  [7] (🪰..🪶)    fly..feather\n\t{0x1FAB7, 0x1FABA, prExtendedPictographic}, // E14.0  [4] (🪷..🪺)    lotus..nest with eggs\n\t{0x1FABB, 0x1FABD, prExtendedPictographic}, // E15.0  [3] (🪻..🪽)    hyacinth..wing\n\t{0x1FABE, 0x1FABE, prExtendedPictographic}, // E0.0   [1] (🪾)       <reserved-1FABE>\n\t{0x1FABF, 0x1FABF, prExtendedPictographic}, // E15.0  [1] (🪿)       goose\n\t{0x1FAC0, 0x1FAC2, prExtendedPictographic}, // E13.0  [3] (🫀..🫂)    anatomical heart..people hugging\n\t{0x1FAC3, 0x1FAC5, prExtendedPictographic}, // E14.0  [3] (🫃..🫅)    pregnant man..person with crown\n\t{0x1FAC6, 0x1FACD, prExtendedPictographic}, // E0.0   [8] (🫆..🫍)    <reserved-1FAC6>..<reserved-1FACD>\n\t{0x1FACE, 0x1FACF, prExtendedPictographic}, // E15.0  [2] (🫎..🫏)    moose..donkey\n\t{0x1FAD0, 0x1FAD6, prExtendedPictographic}, // E13.0  [7] (🫐..🫖)    blueberries..teapot\n\t{0x1FAD7, 0x1FAD9, prExtendedPictographic}, // E14.0  [3] (🫗..🫙)    pouring liquid..jar\n\t{0x1FADA, 0x1FADB, prExtendedPictographic}, // E15.0  [2] (🫚..🫛)    ginger root..pea pod\n\t{0x1FADC, 0x1FADF, prExtendedPictographic}, // E0.0   [4] (🫜..🫟)    <reserved-1FADC>..<reserved-1FADF>\n\t{0x1FAE0, 0x1FAE7, prExtendedPictographic}, // E14.0  [8] (🫠..🫧)    melting face..bubbles\n\t{0x1FAE8, 0x1FAE8, prExtendedPictographic}, // E15.0  [1] (🫨)       shaking face\n\t{0x1FAE9, 0x1FAEF, prExtendedPictographic}, // E0.0   [7] (🫩..🫯)    <reserved-1FAE9>..<reserved-1FAEF>\n\t{0x1FAF0, 0x1FAF6, prExtendedPictographic}, // E14.0  [7] (🫰..🫶)    hand with index finger and thumb crossed..heart hands\n\t{0x1FAF7, 0x1FAF8, prExtendedPictographic}, // E15.0  [2] (🫷..🫸)    leftwards pushing hand..rightwards pushing hand\n\t{0x1FAF9, 0x1FAFF, prExtendedPictographic}, // E0.0   [7] (🫹..🫿)    <reserved-1FAF9>..<reserved-1FAFF>\n\t{0x1FBF0, 0x1FBF9, prNumeric},              // Nd  [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE\n\t{0x1FC00, 0x1FFFD, prExtendedPictographic}, // E0.0[1022] (🰀..🿽)    <reserved-1FC00>..<reserved-1FFFD>\n\t{0xE0001, 0xE0001, prFormat},               // Cf       LANGUAGE TAG\n\t{0xE0020, 0xE007F, prExtend},               // Cf  [96] TAG SPACE..CANCEL TAG\n\t{0xE0100, 0xE01EF, prExtend},               // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256\n}\n"
  },
  {
    "path": "vendor/github.com/rivo/uniseg/wordrules.go",
    "content": "package uniseg\n\nimport \"unicode/utf8\"\n\n// The states of the word break parser.\nconst (\n\twbAny = iota\n\twbCR\n\twbLF\n\twbNewline\n\twbWSegSpace\n\twbHebrewLetter\n\twbALetter\n\twbWB7\n\twbWB7c\n\twbNumeric\n\twbWB11\n\twbKatakana\n\twbExtendNumLet\n\twbOddRI\n\twbEvenRI\n\twbZWJBit = 16 // This bit is set for any states followed by at least one zero-width joiner (see WB4 and WB3c).\n)\n\n// wbTransitions implements the word break parser's state transitions. It's\n// anologous to [grTransitions], see comments there for details.\n//\n// Unicode version 15.0.0.\nfunc wbTransitions(state, prop int) (newState int, wordBreak bool, rule int) {\n\tswitch uint64(state) | uint64(prop)<<32 {\n\t// WB3b.\n\tcase wbAny | prNewline<<32:\n\t\treturn wbNewline, true, 32\n\tcase wbAny | prCR<<32:\n\t\treturn wbCR, true, 32\n\tcase wbAny | prLF<<32:\n\t\treturn wbLF, true, 32\n\n\t// WB3a.\n\tcase wbNewline | prAny<<32:\n\t\treturn wbAny, true, 31\n\tcase wbCR | prAny<<32:\n\t\treturn wbAny, true, 31\n\tcase wbLF | prAny<<32:\n\t\treturn wbAny, true, 31\n\n\t// WB3.\n\tcase wbCR | prLF<<32:\n\t\treturn wbLF, false, 30\n\n\t// WB3d.\n\tcase wbAny | prWSegSpace<<32:\n\t\treturn wbWSegSpace, true, 9990\n\tcase wbWSegSpace | prWSegSpace<<32:\n\t\treturn wbWSegSpace, false, 34\n\n\t// WB5.\n\tcase wbAny | prALetter<<32:\n\t\treturn wbALetter, true, 9990\n\tcase wbAny | prHebrewLetter<<32:\n\t\treturn wbHebrewLetter, true, 9990\n\tcase wbALetter | prALetter<<32:\n\t\treturn wbALetter, false, 50\n\tcase wbALetter | prHebrewLetter<<32:\n\t\treturn wbHebrewLetter, false, 50\n\tcase wbHebrewLetter | prALetter<<32:\n\t\treturn wbALetter, false, 50\n\tcase wbHebrewLetter | prHebrewLetter<<32:\n\t\treturn wbHebrewLetter, false, 50\n\n\t// WB7. Transitions to wbWB7 handled by transitionWordBreakState().\n\tcase wbWB7 | prALetter<<32:\n\t\treturn wbALetter, false, 70\n\tcase wbWB7 | prHebrewLetter<<32:\n\t\treturn wbHebrewLetter, false, 70\n\n\t// WB7a.\n\tcase wbHebrewLetter | prSingleQuote<<32:\n\t\treturn wbAny, false, 71\n\n\t// WB7c. Transitions to wbWB7c handled by transitionWordBreakState().\n\tcase wbWB7c | prHebrewLetter<<32:\n\t\treturn wbHebrewLetter, false, 73\n\n\t// WB8.\n\tcase wbAny | prNumeric<<32:\n\t\treturn wbNumeric, true, 9990\n\tcase wbNumeric | prNumeric<<32:\n\t\treturn wbNumeric, false, 80\n\n\t// WB9.\n\tcase wbALetter | prNumeric<<32:\n\t\treturn wbNumeric, false, 90\n\tcase wbHebrewLetter | prNumeric<<32:\n\t\treturn wbNumeric, false, 90\n\n\t// WB10.\n\tcase wbNumeric | prALetter<<32:\n\t\treturn wbALetter, false, 100\n\tcase wbNumeric | prHebrewLetter<<32:\n\t\treturn wbHebrewLetter, false, 100\n\n\t// WB11. Transitions to wbWB11 handled by transitionWordBreakState().\n\tcase wbWB11 | prNumeric<<32:\n\t\treturn wbNumeric, false, 110\n\n\t// WB13.\n\tcase wbAny | prKatakana<<32:\n\t\treturn wbKatakana, true, 9990\n\tcase wbKatakana | prKatakana<<32:\n\t\treturn wbKatakana, false, 130\n\n\t// WB13a.\n\tcase wbAny | prExtendNumLet<<32:\n\t\treturn wbExtendNumLet, true, 9990\n\tcase wbALetter | prExtendNumLet<<32:\n\t\treturn wbExtendNumLet, false, 131\n\tcase wbHebrewLetter | prExtendNumLet<<32:\n\t\treturn wbExtendNumLet, false, 131\n\tcase wbNumeric | prExtendNumLet<<32:\n\t\treturn wbExtendNumLet, false, 131\n\tcase wbKatakana | prExtendNumLet<<32:\n\t\treturn wbExtendNumLet, false, 131\n\tcase wbExtendNumLet | prExtendNumLet<<32:\n\t\treturn wbExtendNumLet, false, 131\n\n\t// WB13b.\n\tcase wbExtendNumLet | prALetter<<32:\n\t\treturn wbALetter, false, 132\n\tcase wbExtendNumLet | prHebrewLetter<<32:\n\t\treturn wbHebrewLetter, false, 132\n\tcase wbExtendNumLet | prNumeric<<32:\n\t\treturn wbNumeric, false, 132\n\tcase wbExtendNumLet | prKatakana<<32:\n\t\treturn wbKatakana, false, 132\n\n\tdefault:\n\t\treturn -1, false, -1\n\t}\n}\n\n// transitionWordBreakState determines the new state of the word break parser\n// given the current state and the next code point. It also returns whether a\n// word boundary was detected. If more than one code point is needed to\n// determine the new state, the byte slice or the string starting after rune \"r\"\n// can be used (whichever is not nil or empty) for further lookups.\nfunc transitionWordBreakState(state int, r rune, b []byte, str string) (newState int, wordBreak bool) {\n\t// Determine the property of the next character.\n\tnextProperty := property(workBreakCodePoints, r)\n\n\t// \"Replacing Ignore Rules\".\n\tif nextProperty == prZWJ {\n\t\t// WB4 (for zero-width joiners).\n\t\tif state == wbNewline || state == wbCR || state == wbLF {\n\t\t\treturn wbAny | wbZWJBit, true // Make sure we don't apply WB4 to WB3a.\n\t\t}\n\t\tif state < 0 {\n\t\t\treturn wbAny | wbZWJBit, false\n\t\t}\n\t\treturn state | wbZWJBit, false\n\t} else if nextProperty == prExtend || nextProperty == prFormat {\n\t\t// WB4 (for Extend and Format).\n\t\tif state == wbNewline || state == wbCR || state == wbLF {\n\t\t\treturn wbAny, true // Make sure we don't apply WB4 to WB3a.\n\t\t}\n\t\tif state == wbWSegSpace || state == wbAny|wbZWJBit {\n\t\t\treturn wbAny, false // We don't break but this is also not WB3d or WB3c.\n\t\t}\n\t\tif state < 0 {\n\t\t\treturn wbAny, false\n\t\t}\n\t\treturn state, false\n\t} else if nextProperty == prExtendedPictographic && state >= 0 && state&wbZWJBit != 0 {\n\t\t// WB3c.\n\t\treturn wbAny, false\n\t}\n\tif state >= 0 {\n\t\tstate = state &^ wbZWJBit\n\t}\n\n\t// Find the applicable transition in the table.\n\tvar rule int\n\tnewState, wordBreak, rule = wbTransitions(state, nextProperty)\n\tif newState < 0 {\n\t\t// No specific transition found. Try the less specific ones.\n\t\tanyPropState, anyPropWordBreak, anyPropRule := wbTransitions(state, prAny)\n\t\tanyStateState, anyStateWordBreak, anyStateRule := wbTransitions(wbAny, nextProperty)\n\t\tif anyPropState >= 0 && anyStateState >= 0 {\n\t\t\t// Both apply. We'll use a mix (see comments for grTransitions).\n\t\t\tnewState, wordBreak, rule = anyStateState, anyStateWordBreak, anyStateRule\n\t\t\tif anyPropRule < anyStateRule {\n\t\t\t\twordBreak, rule = anyPropWordBreak, anyPropRule\n\t\t\t}\n\t\t} else if anyPropState >= 0 {\n\t\t\t// We only have a specific state.\n\t\t\tnewState, wordBreak, rule = anyPropState, anyPropWordBreak, anyPropRule\n\t\t\t// This branch will probably never be reached because okAnyState will\n\t\t\t// always be true given the current transition map. But we keep it here\n\t\t\t// for future modifications to the transition map where this may not be\n\t\t\t// true anymore.\n\t\t} else if anyStateState >= 0 {\n\t\t\t// We only have a specific property.\n\t\t\tnewState, wordBreak, rule = anyStateState, anyStateWordBreak, anyStateRule\n\t\t} else {\n\t\t\t// No known transition. WB999: Any ÷ Any.\n\t\t\tnewState, wordBreak, rule = wbAny, true, 9990\n\t\t}\n\t}\n\n\t// For those rules that need to look up runes further in the string, we\n\t// determine the property after nextProperty, skipping over Format, Extend,\n\t// and ZWJ (according to WB4). It's -1 if not needed, if such a rune cannot\n\t// be determined (because the text ends or the rune is faulty).\n\tfarProperty := -1\n\tif rule > 60 &&\n\t\t(state == wbALetter || state == wbHebrewLetter || state == wbNumeric) &&\n\t\t(nextProperty == prMidLetter || nextProperty == prMidNumLet || nextProperty == prSingleQuote || // WB6.\n\t\t\tnextProperty == prDoubleQuote || // WB7b.\n\t\t\tnextProperty == prMidNum) { // WB12.\n\t\tfor {\n\t\t\tvar (\n\t\t\t\tr      rune\n\t\t\t\tlength int\n\t\t\t)\n\t\t\tif b != nil { // Byte slice version.\n\t\t\t\tr, length = utf8.DecodeRune(b)\n\t\t\t\tb = b[length:]\n\t\t\t} else { // String version.\n\t\t\t\tr, length = utf8.DecodeRuneInString(str)\n\t\t\t\tstr = str[length:]\n\t\t\t}\n\t\t\tif r == utf8.RuneError {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tprop := property(workBreakCodePoints, r)\n\t\t\tif prop == prExtend || prop == prFormat || prop == prZWJ {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfarProperty = prop\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// WB6.\n\tif rule > 60 &&\n\t\t(state == wbALetter || state == wbHebrewLetter) &&\n\t\t(nextProperty == prMidLetter || nextProperty == prMidNumLet || nextProperty == prSingleQuote) &&\n\t\t(farProperty == prALetter || farProperty == prHebrewLetter) {\n\t\treturn wbWB7, false\n\t}\n\n\t// WB7b.\n\tif rule > 72 &&\n\t\tstate == wbHebrewLetter &&\n\t\tnextProperty == prDoubleQuote &&\n\t\tfarProperty == prHebrewLetter {\n\t\treturn wbWB7c, false\n\t}\n\n\t// WB12.\n\tif rule > 120 &&\n\t\tstate == wbNumeric &&\n\t\t(nextProperty == prMidNum || nextProperty == prMidNumLet || nextProperty == prSingleQuote) &&\n\t\tfarProperty == prNumeric {\n\t\treturn wbWB11, false\n\t}\n\n\t// WB15 and WB16.\n\tif newState == wbAny && nextProperty == prRegionalIndicator {\n\t\tif state != wbOddRI && state != wbEvenRI { // Includes state == -1.\n\t\t\t// Transition into the first RI.\n\t\t\treturn wbOddRI, true\n\t\t}\n\t\tif state == wbOddRI {\n\t\t\t// Don't break pairs of Regional Indicators.\n\t\t\treturn wbEvenRI, false\n\t\t}\n\t\treturn wbOddRI, true // We can break after a pair.\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/sasha-s/go-deadlock/.travis.yml",
    "content": "arch:\n  - amd64\n  - ppc64le\nlanguage: go\nsudo: false\ngo:\n  - 1.5.x\n  - 1.6.x\n  - 1.7.x\n  - 1.8.x\n  - 1.9.x\n  - 1.10.x\n  - 1.11.x\n  - master\n  - tip\n\nbefore_install:\n  - go get golang.org/x/tools/cmd/cover\n  - go get -t -v ./...\n\nscript:\n  - ./test.sh\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/sasha-s/go-deadlock/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/sasha-s/go-deadlock/Readme.md",
    "content": "# Online deadlock detection in go (golang). [![Try it online](https://img.shields.io/badge/try%20it-online-blue.svg)](https://wandbox.org/permlink/hJc6QCZowxbNm9WW) [![Docs](https://godoc.org/github.com/sasha-s/go-deadlock?status.svg)](https://godoc.org/github.com/sasha-s/go-deadlock) [![Build Status](https://travis-ci.org/sasha-s/go-deadlock.svg?branch=master)](https://travis-ci.org/sasha-s/go-deadlock) [![codecov](https://codecov.io/gh/sasha-s/go-deadlock/branch/master/graph/badge.svg)](https://codecov.io/gh/sasha-s/go-deadlock) [![version](https://badge.fury.io/gh/sasha-s%2Fgo-deadlock.svg)](https://github.com/sasha-s/go-deadlock/releases)  [![Go Report Card](https://goreportcard.com/badge/github.com/sasha-s/go-deadlock)](https://goreportcard.com/report/github.com/sasha-s/go-deadlock) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) \n\n## Why\nDeadlocks happen and are painful to debug.\n\n## What\ngo-deadlock provides (RW)Mutex drop-in replacements for sync.(RW)Mutex.\nIt would not work if you create a spaghetti of channels.\nMutexes only.\n\n## Installation\n```sh\ngo get github.com/sasha-s/go-deadlock/...\n```\n\n## Usage\n```go\nimport \"github.com/sasha-s/go-deadlock\"\nvar mu deadlock.Mutex\n// Use normally, it works exactly like sync.Mutex does.\nmu.Lock()\n\ndefer mu.Unlock()\n// Or\nvar rw deadlock.RWMutex\nrw.RLock()\ndefer rw.RUnlock()\n```\n\n### Deadlocks\nOne of the most common sources of deadlocks is inconsistent lock ordering:\nsay, you have two mutexes A and B, and in some goroutines you have\n```go\nA.Lock() // defer A.Unlock() or similar.\n...\nB.Lock() // defer B.Unlock() or similar.\n```\nAnd in another goroutine the order of locks is reversed:\n```go\nB.Lock() // defer B.Unlock() or similar.\n...\nA.Lock() // defer A.Unlock() or similar.\n```\n\nAnother common sources of deadlocks is duplicate take a lock in a goroutine:\n```\nA.Rlock() or lock()\n\nA.lock() or A.RLock()\n```\n\nThis does not guarantee a deadlock (maybe the goroutines above can never be running at the same time), but it usually a design flaw at least.\n\ngo-deadlock can detect such cases (unless you cross goroutine boundary - say lock A, then spawn a goroutine, block until it is singals, and lock B inside of the goroutine), even if the deadlock itself happens very infrequently and is painful to reproduce!\n\nEach time go-deadlock sees a lock attempt for lock B, it records the order A before B, for each lock that is currently being held in the same goroutine, and it prints (and exits the program by default) when it sees the locking order being violated.\n\nIn addition, if it sees that we are waiting on a lock for a long time (opts.DeadlockTimeout, 30 seconds by default), it reports a potential deadlock, also printing the stacktrace for a goroutine that is currently holding the lock we are desperately trying to grab.\n\n\n## Sample output\n#### Inconsistent lock ordering:\n```\nPOTENTIAL DEADLOCK: Inconsistent locking. saw this ordering in one goroutine:\nhappened before\ninmem.go:623 bttest.(*server).ReadModifyWriteRow { r.mu.Lock() } <<<<<\ninmem_test.go:118 bttest.TestConcurrentMutationsReadModifyAndGC.func4 { _, _ = s.ReadModifyWriteRow(ctx, rmw()) }\n\nhappened after\ninmem.go:629 bttest.(*server).ReadModifyWriteRow { tbl.mu.RLock() } <<<<<\ninmem_test.go:118 bttest.TestConcurrentMutationsReadModifyAndGC.func4 { _, _ = s.ReadModifyWriteRow(ctx, rmw()) }\n\nin another goroutine: happened before\ninmem.go:799 bttest.(*table).gc { t.mu.RLock() } <<<<<\ninmem_test.go:125 bttest.TestConcurrentMutationsReadModifyAndGC.func5 { tbl.gc() }\n\nhappend after\ninmem.go:814 bttest.(*table).gc { r.mu.Lock() } <<<<<\ninmem_test.go:125 bttest.TestConcurrentMutationsReadModifyAndGC.func5 { tbl.gc() }\n```\n\n#### Waiting for a lock for a long time:\n\n```\nPOTENTIAL DEADLOCK:\nPrevious place where the lock was grabbed\ngoroutine 240 lock 0xc820160440\ninmem.go:799 bttest.(*table).gc { t.mu.RLock() } <<<<<\ninmem_test.go:125 bttest.TestConcurrentMutationsReadModifyAndGC.func5 { tbl.gc() }\n\nHave been trying to lock it again for more than 40ms\ngoroutine 68 lock 0xc820160440\ninmem.go:785 bttest.(*table).mutableRow { t.mu.Lock() } <<<<<\ninmem.go:428 bttest.(*server).MutateRow { r := tbl.mutableRow(string(req.RowKey)) }\ninmem_test.go:111 bttest.TestConcurrentMutationsReadModifyAndGC.func3 { s.MutateRow(ctx, req) }\n\n\nHere is what goroutine 240 doing now\ngoroutine 240 [select]:\ngithub.com/sasha-s/go-deadlock.lock(0xc82028ca10, 0x5189e0, 0xc82013a9b0)\n        /Users/sasha/go/src/github.com/sasha-s/go-deadlock/deadlock.go:163 +0x1640\ngithub.com/sasha-s/go-deadlock.(*Mutex).Lock(0xc82013a9b0)\n        /Users/sasha/go/src/github.com/sasha-s/go-deadlock/deadlock.go:54 +0x86\ngoogle.golang.org/cloud/bigtable/bttest.(*table).gc(0xc820160440)\n        /Users/sasha/go/src/google.golang.org/cloud/bigtable/bttest/inmem.go:814 +0x28d\ngoogle.golang.org/cloud/bigtable/bttest.TestConcurrentMutationsReadModifyAndGC.func5(0xc82015c760, 0xc820160440)      /Users/sasha/go/src/google.golang.org/cloud/bigtable/bttest/inmem_test.go:125 +0x48\ncreated by google.golang.org/cloud/bigtable/bttest.TestConcurrentMutationsReadModifyAndGC\n        /Users/sasha/go/src/google.golang.org/cloud/bigtable/bttest/inmem_test.go:126 +0xb6f\n```\n\n## Used in\n[cockroachdb: Potential deadlock between Gossip.SetStorage and Node.gossipStores](https://github.com/cockroachdb/cockroach/issues/7972)\n\n[bigtable/bttest: A race between GC and row mutations](https://code-review.googlesource.com#/c/5301/)\n\n## Need a mutex that works with net.context?\nI have [one](https://github.com/sasha-s/go-csync).\n\n## Grabbing an RLock twice from the same goroutine\nThis is, surprisingly, not a good idea!\n\nFrom [RWMutex](https://golang.org/pkg/sync/#RWMutex) docs:\n\n>If a goroutine holds a RWMutex for reading and another goroutine might call Lock, no goroutine should expect to be able to acquire a read lock until the initial read lock is released. In particular, this prohibits recursive read locking. This is to ensure that the lock eventually becomes available; a blocked Lock call excludes new readers from acquiring the lock.\n\n\nThe following code will deadlock &mdash; [run the example on playground](https://play.golang.org/p/AkL-W63nq5f) or [try it online with go-deadlock on wandbox](https://wandbox.org/permlink/JwnL0GMySBju4SII):\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n)\n\nfunc main() {\n\tvar mu sync.RWMutex\n\n\tchrlockTwice := make(chan struct{}) // Used to control rlockTwice\n\trlockTwice := func() {\n\t\tmu.RLock()\n\t\tfmt.Println(\"first Rlock succeeded\")\n\t\t<-chrlockTwice\n\t\t<-chrlockTwice\n\t\tfmt.Println(\"trying to Rlock again\")\n\t\tmu.RLock()\n\t\tfmt.Println(\"second Rlock succeeded\")\n\t\tmu.RUnlock()\n\t\tmu.RUnlock()\n\t}\n\n\tchLock := make(chan struct{}) // Used to contol lock\n\tlock := func() {\n\t\t<-chLock\n\t\tfmt.Println(\"about to Lock\")\n\t\tmu.Lock()\n\t\tfmt.Println(\"Lock succeeded\")\n\t\tmu.Unlock()\n\t\t<-chLock\n\t}\n\n\tcontrol := func() {\n\t\tchrlockTwice <- struct{}{}\n\t\tchLock <- struct{}{}\n\n\t\tclose(chrlockTwice)\n\t\tclose(chLock)\n\t}\n\n\tgo control()\n\tgo lock()\n\trlockTwice()\n}\n```\n## Configuring go-deadlock\n\nHave a look at [Opts](https://pkg.go.dev/github.com/sasha-s/go-deadlock#pkg-variables).\n\n* `Opts.Disable`: disables deadlock detection altogether\n* `Opts.DisableLockOrderDetection`: disables lock order based deadlock detection.\n* `Opts.DeadlockTimeout`: blocking on mutex for longer than DeadlockTimeout is considered a deadlock. ignored if negative\n* `Opts.OnPotentialDeadlock`: callback for then deadlock is detected\n* `Opts.MaxMapSize`: size of happens before // happens after table\n* `Opts.PrintAllCurrentGoroutines`:  dump stacktraces of all goroutines when inconsistent locking is detected, verbose\n* `Opts.LogBuf`: where to write deadlock info/stacktraces\n\n\t\n"
  },
  {
    "path": "vendor/github.com/sasha-s/go-deadlock/deadlock.go",
    "content": "package deadlock\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/petermattis/goid\"\n)\n\n// Opts control how deadlock detection behaves.\n// Options are supposed to be set once at a startup (say, when parsing flags).\nvar Opts = struct {\n\t// Mutex/RWMutex would work exactly as their sync counterparts\n\t// -- almost no runtime penalty, no deadlock detection if Disable == true.\n\tDisable bool\n\t// Would disable lock order based deadlock detection if DisableLockOrderDetection == true.\n\tDisableLockOrderDetection bool\n\t// Waiting for a lock for longer than DeadlockTimeout is considered a deadlock.\n\t// Ignored is DeadlockTimeout <= 0.\n\tDeadlockTimeout time.Duration\n\t// OnPotentialDeadlock is called each time a potential deadlock is detected -- either based on\n\t// lock order or on lock wait time.\n\tOnPotentialDeadlock func()\n\t// Will keep MaxMapSize lock pairs (happens before // happens after) in the map.\n\t// The map resets once the threshold is reached.\n\tMaxMapSize int\n\t// Will dump stacktraces of all goroutines when inconsistent locking is detected.\n\tPrintAllCurrentGoroutines bool\n\tmu                        *sync.Mutex // Protects the LogBuf.\n\t// Will print deadlock info to log buffer.\n\tLogBuf io.Writer\n}{\n\tDeadlockTimeout: time.Second * 30,\n\tOnPotentialDeadlock: func() {\n\t\tos.Exit(2)\n\t},\n\tMaxMapSize: 1024 * 64,\n\tmu:         &sync.Mutex{},\n\tLogBuf:     os.Stderr,\n}\n\n// Cond is sync.Cond wrapper\ntype Cond struct {\n\tsync.Cond\n}\n\n// Locker is sync.Locker wrapper\ntype Locker struct {\n\tsync.Locker\n}\n\n// Once is sync.Once wrapper\ntype Once struct {\n\tsync.Once\n}\n\n// Pool is sync.Poll wrapper\ntype Pool struct {\n\tsync.Pool\n}\n\n// WaitGroup is sync.WaitGroup wrapper\ntype WaitGroup struct {\n\tsync.WaitGroup\n}\n\n// A Mutex is a drop-in replacement for sync.Mutex.\n// Performs deadlock detection unless disabled in Opts.\ntype Mutex struct {\n\tmu sync.Mutex\n}\n\n// Lock locks the mutex.\n// If the lock is already in use, the calling goroutine\n// blocks until the mutex is available.\n//\n// Unless deadlock detection is disabled, logs potential deadlocks to Opts.LogBuf,\n// calling Opts.OnPotentialDeadlock on each occasion.\nfunc (m *Mutex) Lock() {\n\tlock(m.mu.Lock, m)\n}\n\n// Unlock unlocks the mutex.\n// It is a run-time error if m is not locked on entry to Unlock.\n//\n// A locked Mutex is not associated with a particular goroutine.\n// It is allowed for one goroutine to lock a Mutex and then\n// arrange for another goroutine to unlock it.\nfunc (m *Mutex) Unlock() {\n\tm.mu.Unlock()\n\tif !Opts.Disable {\n\t\tpostUnlock(m)\n\t}\n}\n\n// An RWMutex is a drop-in replacement for sync.RWMutex.\n// Performs deadlock detection unless disabled in Opts.\ntype RWMutex struct {\n\tmu sync.RWMutex\n}\n\n// Lock locks rw for writing.\n// If the lock is already locked for reading or writing,\n// Lock blocks until the lock is available.\n// To ensure that the lock eventually becomes available,\n// a blocked Lock call excludes new readers from acquiring\n// the lock.\n//\n// Unless deadlock detection is disabled, logs potential deadlocks to Opts.LogBuf,\n// calling Opts.OnPotentialDeadlock on each occasion.\nfunc (m *RWMutex) Lock() {\n\tlock(m.mu.Lock, m)\n}\n\n// Unlock unlocks the mutex for writing.  It is a run-time error if rw is\n// not locked for writing on entry to Unlock.\n//\n// As with Mutexes, a locked RWMutex is not associated with a particular\n// goroutine.  One goroutine may RLock (Lock) an RWMutex and then\n// arrange for another goroutine to RUnlock (Unlock) it.\nfunc (m *RWMutex) Unlock() {\n\tm.mu.Unlock()\n\tif !Opts.Disable {\n\t\tpostUnlock(m)\n\t}\n}\n\n// RLock locks the mutex for reading.\n//\n// Unless deadlock detection is disabled, logs potential deadlocks to Opts.LogBuf,\n// calling Opts.OnPotentialDeadlock on each occasion.\nfunc (m *RWMutex) RLock() {\n\tlock(m.mu.RLock, m)\n}\n\n// RUnlock undoes a single RLock call;\n// it does not affect other simultaneous readers.\n// It is a run-time error if rw is not locked for reading\n// on entry to RUnlock.\nfunc (m *RWMutex) RUnlock() {\n\tm.mu.RUnlock()\n\tif !Opts.Disable {\n\t\tpostUnlock(m)\n\t}\n}\n\n// RLocker returns a Locker interface that implements\n// the Lock and Unlock methods by calling RLock and RUnlock.\nfunc (m *RWMutex) RLocker() sync.Locker {\n\treturn (*rlocker)(m)\n}\n\nfunc preLock(stack []uintptr, p interface{}) {\n\tlo.preLock(stack, p)\n}\n\nfunc postLock(stack []uintptr, p interface{}) {\n\tlo.postLock(stack, p)\n}\n\nfunc postUnlock(p interface{}) {\n\tlo.postUnlock(p)\n}\n\nfunc lock(lockFn func(), ptr interface{}) {\n\tif Opts.Disable {\n\t\tlockFn()\n\t\treturn\n\t}\n\tstack := callers(1)\n\tpreLock(stack, ptr)\n\tif Opts.DeadlockTimeout <= 0 {\n\t\tlockFn()\n\t} else {\n\t\tch := make(chan struct{})\n\t\tcurrentID := goid.Get()\n\t\tgo func() {\n\t\t\tfor {\n\t\t\t\tt := time.NewTimer(Opts.DeadlockTimeout)\n\t\t\t\tdefer t.Stop() // This runs after the losure finishes, but it's OK.\n\t\t\t\tselect {\n\t\t\t\tcase <-t.C:\n\t\t\t\t\tlo.mu.Lock()\n\t\t\t\t\tprev, ok := lo.cur[ptr]\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\tlo.mu.Unlock()\n\t\t\t\t\t\tbreak // Nobody seems to be holding the lock, try again.\n\t\t\t\t\t}\n\t\t\t\t\tOpts.mu.Lock()\n\t\t\t\t\tfmt.Fprintln(Opts.LogBuf, header)\n\t\t\t\t\tfmt.Fprintln(Opts.LogBuf, \"Previous place where the lock was grabbed\")\n\t\t\t\t\tfmt.Fprintf(Opts.LogBuf, \"goroutine %v lock %p\\n\", prev.gid, ptr)\n\t\t\t\t\tprintStack(Opts.LogBuf, prev.stack)\n\t\t\t\t\tfmt.Fprintln(Opts.LogBuf, \"Have been trying to lock it again for more than\", Opts.DeadlockTimeout)\n\t\t\t\t\tfmt.Fprintf(Opts.LogBuf, \"goroutine %v lock %p\\n\", currentID, ptr)\n\t\t\t\t\tprintStack(Opts.LogBuf, stack)\n\t\t\t\t\tstacks := stacks()\n\t\t\t\t\tgrs := bytes.Split(stacks, []byte(\"\\n\\n\"))\n\t\t\t\t\tfor _, g := range grs {\n\t\t\t\t\t\tif goid.ExtractGID(g) == prev.gid {\n\t\t\t\t\t\t\tfmt.Fprintln(Opts.LogBuf, \"Here is what goroutine\", prev.gid, \"doing now\")\n\t\t\t\t\t\t\tOpts.LogBuf.Write(g)\n\t\t\t\t\t\t\tfmt.Fprintln(Opts.LogBuf)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlo.other(ptr)\n\t\t\t\t\tif Opts.PrintAllCurrentGoroutines {\n\t\t\t\t\t\tfmt.Fprintln(Opts.LogBuf, \"All current goroutines:\")\n\t\t\t\t\t\tOpts.LogBuf.Write(stacks)\n\t\t\t\t\t}\n\t\t\t\t\tfmt.Fprintln(Opts.LogBuf)\n\t\t\t\t\tif buf, ok := Opts.LogBuf.(*bufio.Writer); ok {\n\t\t\t\t\t\tbuf.Flush()\n\t\t\t\t\t}\n\t\t\t\t\tOpts.mu.Unlock()\n\t\t\t\t\tlo.mu.Unlock()\n\t\t\t\t\tOpts.OnPotentialDeadlock()\n\t\t\t\t\t<-ch\n\t\t\t\t\treturn\n\t\t\t\tcase <-ch:\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t\tlockFn()\n\t\tpostLock(stack, ptr)\n\t\tclose(ch)\n\t\treturn\n\t}\n\tpostLock(stack, ptr)\n}\n\ntype lockOrder struct {\n\tmu    sync.Mutex\n\tcur   map[interface{}]stackGID // stacktraces + gids for the locks currently taken.\n\torder map[beforeAfter]ss       // expected order of locks.\n}\n\ntype stackGID struct {\n\tstack []uintptr\n\tgid   int64\n}\n\ntype beforeAfter struct {\n\tbefore interface{}\n\tafter  interface{}\n}\n\ntype ss struct {\n\tbefore []uintptr\n\tafter  []uintptr\n}\n\nvar lo = newLockOrder()\n\nfunc newLockOrder() *lockOrder {\n\treturn &lockOrder{\n\t\tcur:   map[interface{}]stackGID{},\n\t\torder: map[beforeAfter]ss{},\n\t}\n}\n\nfunc (l *lockOrder) postLock(stack []uintptr, p interface{}) {\n\tgid := goid.Get()\n\tl.mu.Lock()\n\tl.cur[p] = stackGID{stack, gid}\n\tl.mu.Unlock()\n}\n\nfunc (l *lockOrder) preLock(stack []uintptr, p interface{}) {\n\tif Opts.DisableLockOrderDetection {\n\t\treturn\n\t}\n\tgid := goid.Get()\n\tl.mu.Lock()\n\tfor b, bs := range l.cur {\n\t\tif b == p {\n\t\t\tif bs.gid == gid {\n\t\t\t\tOpts.mu.Lock()\n\t\t\t\tfmt.Fprintln(Opts.LogBuf, header, \"Recursive locking:\")\n\t\t\t\tfmt.Fprintf(Opts.LogBuf, \"current goroutine %d lock %p\\n\", gid, b)\n\t\t\t\tprintStack(Opts.LogBuf, stack)\n\t\t\t\tfmt.Fprintln(Opts.LogBuf, \"Previous place where the lock was grabbed (same goroutine)\")\n\t\t\t\tprintStack(Opts.LogBuf, bs.stack)\n\t\t\t\tl.other(p)\n\t\t\t\tif buf, ok := Opts.LogBuf.(*bufio.Writer); ok {\n\t\t\t\t\tbuf.Flush()\n\t\t\t\t}\n\t\t\t\tOpts.mu.Unlock()\n\t\t\t\tOpts.OnPotentialDeadlock()\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif bs.gid != gid { // We want locks taken in the same goroutine only.\n\t\t\tcontinue\n\t\t}\n\t\tif s, ok := l.order[beforeAfter{p, b}]; ok {\n\t\t\tOpts.mu.Lock()\n\t\t\tfmt.Fprintln(Opts.LogBuf, header, \"Inconsistent locking. saw this ordering in one goroutine:\")\n\t\t\tfmt.Fprintln(Opts.LogBuf, \"happened before\")\n\t\t\tprintStack(Opts.LogBuf, s.before)\n\t\t\tfmt.Fprintln(Opts.LogBuf, \"happened after\")\n\t\t\tprintStack(Opts.LogBuf, s.after)\n\t\t\tfmt.Fprintln(Opts.LogBuf, \"in another goroutine: happened before\")\n\t\t\tprintStack(Opts.LogBuf, bs.stack)\n\t\t\tfmt.Fprintln(Opts.LogBuf, \"happened after\")\n\t\t\tprintStack(Opts.LogBuf, stack)\n\t\t\tl.other(p)\n\t\t\tfmt.Fprintln(Opts.LogBuf)\n\t\t\tif buf, ok := Opts.LogBuf.(*bufio.Writer); ok {\n\t\t\t\tbuf.Flush()\n\t\t\t}\n\t\t\tOpts.mu.Unlock()\n\t\t\tOpts.OnPotentialDeadlock()\n\t\t}\n\t\tl.order[beforeAfter{b, p}] = ss{bs.stack, stack}\n\t\tif len(l.order) == Opts.MaxMapSize { // Reset the map to keep memory footprint bounded.\n\t\t\tl.order = map[beforeAfter]ss{}\n\t\t}\n\t}\n\tl.mu.Unlock()\n}\n\nfunc (l *lockOrder) postUnlock(p interface{}) {\n\tl.mu.Lock()\n\tdelete(l.cur, p)\n\tl.mu.Unlock()\n}\n\ntype rlocker RWMutex\n\nfunc (r *rlocker) Lock()   { (*RWMutex)(r).RLock() }\nfunc (r *rlocker) Unlock() { (*RWMutex)(r).RUnlock() }\n\n// Under lo.mu Locked.\nfunc (l *lockOrder) other(ptr interface{}) {\n\tempty := true\n\tfor k := range l.cur {\n\t\tif k == ptr {\n\t\t\tcontinue\n\t\t}\n\t\tempty = false\n\t}\n\tif empty {\n\t\treturn\n\t}\n\tfmt.Fprintln(Opts.LogBuf, \"Other goroutines holding locks:\")\n\tfor k, pp := range l.cur {\n\t\tif k == ptr {\n\t\t\tcontinue\n\t\t}\n\t\tfmt.Fprintf(Opts.LogBuf, \"goroutine %v lock %p\\n\", pp.gid, k)\n\t\tprintStack(Opts.LogBuf, pp.stack)\n\t}\n\tfmt.Fprintln(Opts.LogBuf)\n}\n\nconst header = \"POTENTIAL DEADLOCK:\"\n"
  },
  {
    "path": "vendor/github.com/sasha-s/go-deadlock/deadlock_map.go",
    "content": "// +build go1.9\n\npackage deadlock\n\nimport \"sync\"\n\n// Map is sync.Map wrapper\ntype Map struct {\n\tsync.Map\n}\n"
  },
  {
    "path": "vendor/github.com/sasha-s/go-deadlock/stacktraces.go",
    "content": "package deadlock\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"os/user\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n)\n\nfunc callers(skip int) []uintptr {\n\ts := make([]uintptr, 50) // Most relevant context seem to appear near the top of the stack.\n\treturn s[:runtime.Callers(2+skip, s)]\n}\n\nfunc printStack(w io.Writer, stack []uintptr) {\n\thome := os.Getenv(\"HOME\")\n\tusr, err := user.Current()\n\tif err == nil {\n\t\thome = usr.HomeDir\n\t}\n\tcwd, _ := os.Getwd()\n\n\tfor i, pc := range stack {\n\t\tf := runtime.FuncForPC(pc)\n\t\tname := f.Name()\n\t\tpkg := \"\"\n\t\tif pos := strings.LastIndex(name, \"/\"); pos >= 0 {\n\t\t\tname = name[pos+1:]\n\t\t}\n\t\tif pos := strings.Index(name, \".\"); pos >= 0 {\n\t\t\tpkg = name[:pos]\n\t\t\tname = name[pos+1:]\n\t\t}\n\t\tfile, line := f.FileLine(pc)\n\t\tif (pkg == \"runtime\" && name == \"goexit\") || (pkg == \"testing\" && name == \"tRunner\") {\n\t\t\tfmt.Fprintln(w)\n\t\t\treturn\n\t\t}\n\t\ttail := \"\"\n\t\tif i == 0 {\n\t\t\ttail = \" <<<<<\" // Make the line performing a lock prominent.\n\t\t}\n\t\t// Shorten the file name.\n\t\tclean := file\n\t\tif cwd != \"\" {\n\t\t\tcl, err := filepath.Rel(cwd, file)\n\t\t\tif err == nil {\n\t\t\t\tclean = cl\n\t\t\t}\n\t\t}\n\t\tif home != \"\" {\n\t\t\ts2 := strings.Replace(file, home, \"~\", 1)\n\t\t\tif len(clean) > len(s2) {\n\t\t\t\tclean = s2\n\t\t\t}\n\t\t}\n\t\tfmt.Fprintf(w, \"%s:%d %s.%s %s%s\\n\", clean, line-1, pkg, name, code(file, line), tail)\n\t}\n\tfmt.Fprintln(w)\n}\n\nvar fileSources struct {\n\tsync.Mutex\n\tlines map[string][][]byte\n}\n\n// Reads souce file lines from disk if not cached already.\nfunc getSourceLines(file string) [][]byte {\n\tfileSources.Lock()\n\tdefer fileSources.Unlock()\n\tif fileSources.lines == nil {\n\t\tfileSources.lines = map[string][][]byte{}\n\t}\n\tif lines, ok := fileSources.lines[file]; ok {\n\t\treturn lines\n\t}\n\ttext, _ := ioutil.ReadFile(file)\n\tfileSources.lines[file] = bytes.Split(text, []byte{'\\n'})\n\treturn fileSources.lines[file]\n}\n\nfunc code(file string, line int) string {\n\tlines := getSourceLines(file)\n\tline -= 2\n\tif line >= len(lines) || line < 0 {\n\t\treturn \"???\"\n\t}\n\treturn \"{ \" + string(bytes.TrimSpace(lines[line])) + \" }\"\n}\n\n// Stacktraces for all goroutines.\nfunc stacks() []byte {\n\tbuf := make([]byte, 1024*16)\n\tfor {\n\t\tn := runtime.Stack(buf, true)\n\t\tif n < len(buf) {\n\t\t\treturn buf[:n]\n\t\t}\n\t\tbuf = make([]byte, 2*len(buf))\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/sasha-s/go-deadlock/test.sh",
    "content": "#!/usr/bin/env bash\n\nset -e\necho \"\" > coverage.txt\n\nfor d in $(go list ./...); do\n    go test -coverprofile=profile.out -covermode=atomic \"$d\"\n    if [ -f profile.out ]; then\n        cat profile.out >> coverage.txt\n        rm profile.out\n    fi\ndone\n"
  },
  {
    "path": "vendor/github.com/spkg/bom/.gitignore",
    "content": "coverage.out\n"
  },
  {
    "path": "vendor/github.com/spkg/bom/.travis.yml",
    "content": "language: go\ngo:\n  - 1.6\n  - 1.5\n  - 1.4\n  - 1.3\n\ninstall:\n  - go get github.com/stretchr/testify/assert\n  - go get golang.org/x/tools/cmd/cover\n  - go get github.com/mattn/goveralls\n\nscript:\n  - go test -v -covermode=count -coverprofile=coverage.out\n  - $(go env GOPATH | awk 'BEGIN{FS=\":\"} {print $1}')/bin/goveralls -coverprofile=coverage.out -service=travis-ci\n\n"
  },
  {
    "path": "vendor/github.com/spkg/bom/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015 John Jeffery\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/spkg/bom/README.md",
    "content": "# bom\n## strip UTF-8 byte order marks\n\n[![GoDoc](https://godoc.org/github.com/spkg/bom?status.svg)](https://godoc.org/github.com/spkg/bom)\n[![Build Status (Linux)](https://travis-ci.org/spkg/bom.svg?branch=master)](https://travis-ci.org/spkg/bom)\n[![Build status (Windows)](https://ci.appveyor.com/api/projects/status/065x7yuc77xicv59?svg=true)](https://ci.appveyor.com/project/jjeffery/bom)\n[![License](http://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://raw.githubusercontent.com/spkg/bom/master/LICENSE.md)\n[![Coverage Status](https://coveralls.io/repos/github/spkg/bom/badge.svg?branch=master)](https://coveralls.io/github/spkg/bom?branch=master)\n[![GoReportCard](https://goreportcard.com/badge/github.com/spkg/bom)](http://goreportcard.com/report/spkg/bom)\n\n\nThe `bom` package provides a convenient way to strip [UTF-8 byte order marks](https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8)\n(BOM) from the beginning of a byte slice or an `io.Reader`.\n\nThe Unicode Standard defines UTF-8 byte order marks as the byte sequence `0xEF,0xBB,0xBF`, but neither requires nor recommends their use.\nThe Go standard library provides no support for UTF-8 byte order marks, and it looks like it never will. To quote Andy Balholm in the\ndiscussion on this issue at https://groups.google.com/forum/#!topic/golang-nuts/OToNIPdfkks\n\n>  The Go team includes the original designers of UTF-8, and they consider BOMs an aBOMination.\n  They are reluctant to do anything to make life easier for people who use BOMs. :-)\n\n>  (Although they did make the compiler accept source files with BOMs, if I remember right.)\n\nIn the same discussion thread another participant makes the comment that it should not be difficult to write\nan `io.Reader` that eats the BOM.\n\nIt isn't difficult, and here is one simple implementation.\n\n"
  },
  {
    "path": "vendor/github.com/spkg/bom/bom.go",
    "content": "// Package bom is used to clean up UTF-8 Byte Order Marks.\npackage bom\n\nimport (\n\t\"bufio\"\n\t\"io\"\n)\n\nconst (\n\tbom0 = 0xef\n\tbom1 = 0xbb\n\tbom2 = 0xbf\n)\n\n// Clean returns b with the 3 byte BOM stripped off the front if it is present.\n// If the BOM is not present, then b is returned.\nfunc Clean(b []byte) []byte {\n\tif len(b) >= 3 &&\n\t\tb[0] == bom0 &&\n\t\tb[1] == bom1 &&\n\t\tb[2] == bom2 {\n\t\treturn b[3:]\n\t}\n\treturn b\n}\n\n// NewReader returns an io.Reader that will skip over initial UTF-8 byte order marks.\nfunc NewReader(r io.Reader) io.Reader {\n\tbuf := bufio.NewReader(r)\n\tb, err := buf.Peek(3)\n\tif err != nil {\n\t\t// not enough bytes\n\t\treturn buf\n\t}\n\tif b[0] == bom0 && b[1] == bom1 && b[2] == bom2 {\n\t\tdiscardBytes(buf, 3)\n\t}\n\treturn buf\n}\n"
  },
  {
    "path": "vendor/github.com/spkg/bom/discard_go14.go",
    "content": "// +build !go1.5\n\npackage bom\n\nimport \"bufio\"\n\nfunc discardBytes(buf *bufio.Reader, n int) {\n\t// cannot use the buf.Discard method as it was introduced in Go 1.5\n\tfor i := 0; i < n; i++ {\n\t\tbuf.ReadByte()\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/spkg/bom/discard_go15.go",
    "content": "// +build go1.5\n\npackage bom\n\nimport \"bufio\"\n\nfunc discardBytes(buf *bufio.Reader, n int) {\n\t// the Discard method was introduced in Go 1.5\n\tbuf.Discard(n)\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_compare.go",
    "content": "package assert\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"time\"\n)\n\ntype CompareType int\n\nconst (\n\tcompareLess CompareType = iota - 1\n\tcompareEqual\n\tcompareGreater\n)\n\nvar (\n\tintType   = reflect.TypeOf(int(1))\n\tint8Type  = reflect.TypeOf(int8(1))\n\tint16Type = reflect.TypeOf(int16(1))\n\tint32Type = reflect.TypeOf(int32(1))\n\tint64Type = reflect.TypeOf(int64(1))\n\n\tuintType   = reflect.TypeOf(uint(1))\n\tuint8Type  = reflect.TypeOf(uint8(1))\n\tuint16Type = reflect.TypeOf(uint16(1))\n\tuint32Type = reflect.TypeOf(uint32(1))\n\tuint64Type = reflect.TypeOf(uint64(1))\n\n\tuintptrType = reflect.TypeOf(uintptr(1))\n\n\tfloat32Type = reflect.TypeOf(float32(1))\n\tfloat64Type = reflect.TypeOf(float64(1))\n\n\tstringType = reflect.TypeOf(\"\")\n\n\ttimeType  = reflect.TypeOf(time.Time{})\n\tbytesType = reflect.TypeOf([]byte{})\n)\n\nfunc compare(obj1, obj2 interface{}, kind reflect.Kind) (CompareType, bool) {\n\tobj1Value := reflect.ValueOf(obj1)\n\tobj2Value := reflect.ValueOf(obj2)\n\n\t// throughout this switch we try and avoid calling .Convert() if possible,\n\t// as this has a pretty big performance impact\n\tswitch kind {\n\tcase reflect.Int:\n\t\t{\n\t\t\tintobj1, ok := obj1.(int)\n\t\t\tif !ok {\n\t\t\t\tintobj1 = obj1Value.Convert(intType).Interface().(int)\n\t\t\t}\n\t\t\tintobj2, ok := obj2.(int)\n\t\t\tif !ok {\n\t\t\t\tintobj2 = obj2Value.Convert(intType).Interface().(int)\n\t\t\t}\n\t\t\tif intobj1 > intobj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif intobj1 == intobj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif intobj1 < intobj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Int8:\n\t\t{\n\t\t\tint8obj1, ok := obj1.(int8)\n\t\t\tif !ok {\n\t\t\t\tint8obj1 = obj1Value.Convert(int8Type).Interface().(int8)\n\t\t\t}\n\t\t\tint8obj2, ok := obj2.(int8)\n\t\t\tif !ok {\n\t\t\t\tint8obj2 = obj2Value.Convert(int8Type).Interface().(int8)\n\t\t\t}\n\t\t\tif int8obj1 > int8obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif int8obj1 == int8obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif int8obj1 < int8obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Int16:\n\t\t{\n\t\t\tint16obj1, ok := obj1.(int16)\n\t\t\tif !ok {\n\t\t\t\tint16obj1 = obj1Value.Convert(int16Type).Interface().(int16)\n\t\t\t}\n\t\t\tint16obj2, ok := obj2.(int16)\n\t\t\tif !ok {\n\t\t\t\tint16obj2 = obj2Value.Convert(int16Type).Interface().(int16)\n\t\t\t}\n\t\t\tif int16obj1 > int16obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif int16obj1 == int16obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif int16obj1 < int16obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Int32:\n\t\t{\n\t\t\tint32obj1, ok := obj1.(int32)\n\t\t\tif !ok {\n\t\t\t\tint32obj1 = obj1Value.Convert(int32Type).Interface().(int32)\n\t\t\t}\n\t\t\tint32obj2, ok := obj2.(int32)\n\t\t\tif !ok {\n\t\t\t\tint32obj2 = obj2Value.Convert(int32Type).Interface().(int32)\n\t\t\t}\n\t\t\tif int32obj1 > int32obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif int32obj1 == int32obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif int32obj1 < int32obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Int64:\n\t\t{\n\t\t\tint64obj1, ok := obj1.(int64)\n\t\t\tif !ok {\n\t\t\t\tint64obj1 = obj1Value.Convert(int64Type).Interface().(int64)\n\t\t\t}\n\t\t\tint64obj2, ok := obj2.(int64)\n\t\t\tif !ok {\n\t\t\t\tint64obj2 = obj2Value.Convert(int64Type).Interface().(int64)\n\t\t\t}\n\t\t\tif int64obj1 > int64obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif int64obj1 == int64obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif int64obj1 < int64obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Uint:\n\t\t{\n\t\t\tuintobj1, ok := obj1.(uint)\n\t\t\tif !ok {\n\t\t\t\tuintobj1 = obj1Value.Convert(uintType).Interface().(uint)\n\t\t\t}\n\t\t\tuintobj2, ok := obj2.(uint)\n\t\t\tif !ok {\n\t\t\t\tuintobj2 = obj2Value.Convert(uintType).Interface().(uint)\n\t\t\t}\n\t\t\tif uintobj1 > uintobj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif uintobj1 == uintobj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif uintobj1 < uintobj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Uint8:\n\t\t{\n\t\t\tuint8obj1, ok := obj1.(uint8)\n\t\t\tif !ok {\n\t\t\t\tuint8obj1 = obj1Value.Convert(uint8Type).Interface().(uint8)\n\t\t\t}\n\t\t\tuint8obj2, ok := obj2.(uint8)\n\t\t\tif !ok {\n\t\t\t\tuint8obj2 = obj2Value.Convert(uint8Type).Interface().(uint8)\n\t\t\t}\n\t\t\tif uint8obj1 > uint8obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif uint8obj1 == uint8obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif uint8obj1 < uint8obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Uint16:\n\t\t{\n\t\t\tuint16obj1, ok := obj1.(uint16)\n\t\t\tif !ok {\n\t\t\t\tuint16obj1 = obj1Value.Convert(uint16Type).Interface().(uint16)\n\t\t\t}\n\t\t\tuint16obj2, ok := obj2.(uint16)\n\t\t\tif !ok {\n\t\t\t\tuint16obj2 = obj2Value.Convert(uint16Type).Interface().(uint16)\n\t\t\t}\n\t\t\tif uint16obj1 > uint16obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif uint16obj1 == uint16obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif uint16obj1 < uint16obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Uint32:\n\t\t{\n\t\t\tuint32obj1, ok := obj1.(uint32)\n\t\t\tif !ok {\n\t\t\t\tuint32obj1 = obj1Value.Convert(uint32Type).Interface().(uint32)\n\t\t\t}\n\t\t\tuint32obj2, ok := obj2.(uint32)\n\t\t\tif !ok {\n\t\t\t\tuint32obj2 = obj2Value.Convert(uint32Type).Interface().(uint32)\n\t\t\t}\n\t\t\tif uint32obj1 > uint32obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif uint32obj1 == uint32obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif uint32obj1 < uint32obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Uint64:\n\t\t{\n\t\t\tuint64obj1, ok := obj1.(uint64)\n\t\t\tif !ok {\n\t\t\t\tuint64obj1 = obj1Value.Convert(uint64Type).Interface().(uint64)\n\t\t\t}\n\t\t\tuint64obj2, ok := obj2.(uint64)\n\t\t\tif !ok {\n\t\t\t\tuint64obj2 = obj2Value.Convert(uint64Type).Interface().(uint64)\n\t\t\t}\n\t\t\tif uint64obj1 > uint64obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif uint64obj1 == uint64obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif uint64obj1 < uint64obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Float32:\n\t\t{\n\t\t\tfloat32obj1, ok := obj1.(float32)\n\t\t\tif !ok {\n\t\t\t\tfloat32obj1 = obj1Value.Convert(float32Type).Interface().(float32)\n\t\t\t}\n\t\t\tfloat32obj2, ok := obj2.(float32)\n\t\t\tif !ok {\n\t\t\t\tfloat32obj2 = obj2Value.Convert(float32Type).Interface().(float32)\n\t\t\t}\n\t\t\tif float32obj1 > float32obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif float32obj1 == float32obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif float32obj1 < float32obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.Float64:\n\t\t{\n\t\t\tfloat64obj1, ok := obj1.(float64)\n\t\t\tif !ok {\n\t\t\t\tfloat64obj1 = obj1Value.Convert(float64Type).Interface().(float64)\n\t\t\t}\n\t\t\tfloat64obj2, ok := obj2.(float64)\n\t\t\tif !ok {\n\t\t\t\tfloat64obj2 = obj2Value.Convert(float64Type).Interface().(float64)\n\t\t\t}\n\t\t\tif float64obj1 > float64obj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif float64obj1 == float64obj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif float64obj1 < float64obj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\tcase reflect.String:\n\t\t{\n\t\t\tstringobj1, ok := obj1.(string)\n\t\t\tif !ok {\n\t\t\t\tstringobj1 = obj1Value.Convert(stringType).Interface().(string)\n\t\t\t}\n\t\t\tstringobj2, ok := obj2.(string)\n\t\t\tif !ok {\n\t\t\t\tstringobj2 = obj2Value.Convert(stringType).Interface().(string)\n\t\t\t}\n\t\t\tif stringobj1 > stringobj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif stringobj1 == stringobj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif stringobj1 < stringobj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\t// Check for known struct types we can check for compare results.\n\tcase reflect.Struct:\n\t\t{\n\t\t\t// All structs enter here. We're not interested in most types.\n\t\t\tif !obj1Value.CanConvert(timeType) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// time.Time can be compared!\n\t\t\ttimeObj1, ok := obj1.(time.Time)\n\t\t\tif !ok {\n\t\t\t\ttimeObj1 = obj1Value.Convert(timeType).Interface().(time.Time)\n\t\t\t}\n\n\t\t\ttimeObj2, ok := obj2.(time.Time)\n\t\t\tif !ok {\n\t\t\t\ttimeObj2 = obj2Value.Convert(timeType).Interface().(time.Time)\n\t\t\t}\n\n\t\t\treturn compare(timeObj1.UnixNano(), timeObj2.UnixNano(), reflect.Int64)\n\t\t}\n\tcase reflect.Slice:\n\t\t{\n\t\t\t// We only care about the []byte type.\n\t\t\tif !obj1Value.CanConvert(bytesType) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// []byte can be compared!\n\t\t\tbytesObj1, ok := obj1.([]byte)\n\t\t\tif !ok {\n\t\t\t\tbytesObj1 = obj1Value.Convert(bytesType).Interface().([]byte)\n\n\t\t\t}\n\t\t\tbytesObj2, ok := obj2.([]byte)\n\t\t\tif !ok {\n\t\t\t\tbytesObj2 = obj2Value.Convert(bytesType).Interface().([]byte)\n\t\t\t}\n\n\t\t\treturn CompareType(bytes.Compare(bytesObj1, bytesObj2)), true\n\t\t}\n\tcase reflect.Uintptr:\n\t\t{\n\t\t\tuintptrObj1, ok := obj1.(uintptr)\n\t\t\tif !ok {\n\t\t\t\tuintptrObj1 = obj1Value.Convert(uintptrType).Interface().(uintptr)\n\t\t\t}\n\t\t\tuintptrObj2, ok := obj2.(uintptr)\n\t\t\tif !ok {\n\t\t\t\tuintptrObj2 = obj2Value.Convert(uintptrType).Interface().(uintptr)\n\t\t\t}\n\t\t\tif uintptrObj1 > uintptrObj2 {\n\t\t\t\treturn compareGreater, true\n\t\t\t}\n\t\t\tif uintptrObj1 == uintptrObj2 {\n\t\t\t\treturn compareEqual, true\n\t\t\t}\n\t\t\tif uintptrObj1 < uintptrObj2 {\n\t\t\t\treturn compareLess, true\n\t\t\t}\n\t\t}\n\t}\n\n\treturn compareEqual, false\n}\n\n// Greater asserts that the first element is greater than the second\n//\n//\tassert.Greater(t, 2, 1)\n//\tassert.Greater(t, float64(2), float64(1))\n//\tassert.Greater(t, \"b\", \"a\")\nfunc Greater(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn compareTwoValues(t, e1, e2, []CompareType{compareGreater}, \"\\\"%v\\\" is not greater than \\\"%v\\\"\", msgAndArgs...)\n}\n\n// GreaterOrEqual asserts that the first element is greater than or equal to the second\n//\n//\tassert.GreaterOrEqual(t, 2, 1)\n//\tassert.GreaterOrEqual(t, 2, 2)\n//\tassert.GreaterOrEqual(t, \"b\", \"a\")\n//\tassert.GreaterOrEqual(t, \"b\", \"b\")\nfunc GreaterOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn compareTwoValues(t, e1, e2, []CompareType{compareGreater, compareEqual}, \"\\\"%v\\\" is not greater than or equal to \\\"%v\\\"\", msgAndArgs...)\n}\n\n// Less asserts that the first element is less than the second\n//\n//\tassert.Less(t, 1, 2)\n//\tassert.Less(t, float64(1), float64(2))\n//\tassert.Less(t, \"a\", \"b\")\nfunc Less(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn compareTwoValues(t, e1, e2, []CompareType{compareLess}, \"\\\"%v\\\" is not less than \\\"%v\\\"\", msgAndArgs...)\n}\n\n// LessOrEqual asserts that the first element is less than or equal to the second\n//\n//\tassert.LessOrEqual(t, 1, 2)\n//\tassert.LessOrEqual(t, 2, 2)\n//\tassert.LessOrEqual(t, \"a\", \"b\")\n//\tassert.LessOrEqual(t, \"b\", \"b\")\nfunc LessOrEqual(t TestingT, e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn compareTwoValues(t, e1, e2, []CompareType{compareLess, compareEqual}, \"\\\"%v\\\" is not less than or equal to \\\"%v\\\"\", msgAndArgs...)\n}\n\n// Positive asserts that the specified element is positive\n//\n//\tassert.Positive(t, 1)\n//\tassert.Positive(t, 1.23)\nfunc Positive(t TestingT, e interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tzero := reflect.Zero(reflect.TypeOf(e))\n\treturn compareTwoValues(t, e, zero.Interface(), []CompareType{compareGreater}, \"\\\"%v\\\" is not positive\", msgAndArgs...)\n}\n\n// Negative asserts that the specified element is negative\n//\n//\tassert.Negative(t, -1)\n//\tassert.Negative(t, -1.23)\nfunc Negative(t TestingT, e interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tzero := reflect.Zero(reflect.TypeOf(e))\n\treturn compareTwoValues(t, e, zero.Interface(), []CompareType{compareLess}, \"\\\"%v\\\" is not negative\", msgAndArgs...)\n}\n\nfunc compareTwoValues(t TestingT, e1 interface{}, e2 interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\te1Kind := reflect.ValueOf(e1).Kind()\n\te2Kind := reflect.ValueOf(e2).Kind()\n\tif e1Kind != e2Kind {\n\t\treturn Fail(t, \"Elements should be the same type\", msgAndArgs...)\n\t}\n\n\tcompareResult, isComparable := compare(e1, e2, e1Kind)\n\tif !isComparable {\n\t\treturn Fail(t, fmt.Sprintf(\"Can not compare type \\\"%s\\\"\", reflect.TypeOf(e1)), msgAndArgs...)\n\t}\n\n\tif !containsValue(allowedComparesResults, compareResult) {\n\t\treturn Fail(t, fmt.Sprintf(failMessage, e1, e2), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\nfunc containsValue(values []CompareType, value CompareType) bool {\n\tfor _, v := range values {\n\t\tif v == value {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_format.go",
    "content": "// Code generated with github.com/stretchr/testify/_codegen; DO NOT EDIT.\n\npackage assert\n\nimport (\n\thttp \"net/http\"\n\turl \"net/url\"\n\ttime \"time\"\n)\n\n// Conditionf uses a Comparison to assert a complex condition.\nfunc Conditionf(t TestingT, comp Comparison, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Condition(t, comp, append([]interface{}{msg}, args...)...)\n}\n\n// Containsf asserts that the specified string, list(array, slice...) or map contains the\n// specified substring or element.\n//\n//\tassert.Containsf(t, \"Hello World\", \"World\", \"error message %s\", \"formatted\")\n//\tassert.Containsf(t, [\"Hello\", \"World\"], \"World\", \"error message %s\", \"formatted\")\n//\tassert.Containsf(t, {\"Hello\": \"World\"}, \"Hello\", \"error message %s\", \"formatted\")\nfunc Containsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Contains(t, s, contains, append([]interface{}{msg}, args...)...)\n}\n\n// DirExistsf checks whether a directory exists in the given path. It also fails\n// if the path is a file rather a directory or there is an error checking whether it exists.\nfunc DirExistsf(t TestingT, path string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn DirExists(t, path, append([]interface{}{msg}, args...)...)\n}\n\n// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified\n// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,\n// the number of appearances of each of them in both lists should match.\n//\n// assert.ElementsMatchf(t, [1, 3, 2, 3], [1, 3, 3, 2], \"error message %s\", \"formatted\")\nfunc ElementsMatchf(t TestingT, listA interface{}, listB interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ElementsMatch(t, listA, listB, append([]interface{}{msg}, args...)...)\n}\n\n// Emptyf asserts that the specified object is empty.  I.e. nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tassert.Emptyf(t, obj, \"error message %s\", \"formatted\")\nfunc Emptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Empty(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// Equalf asserts that two objects are equal.\n//\n//\tassert.Equalf(t, 123, 123, \"error message %s\", \"formatted\")\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses). Function equality\n// cannot be determined and will always fail.\nfunc Equalf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Equal(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// EqualErrorf asserts that a function returned an error (i.e. not `nil`)\n// and that it is equal to the provided error.\n//\n//\tactualObj, err := SomeFunction()\n//\tassert.EqualErrorf(t, err,  expectedErrorString, \"error message %s\", \"formatted\")\nfunc EqualErrorf(t TestingT, theError error, errString string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualError(t, theError, errString, append([]interface{}{msg}, args...)...)\n}\n\n// EqualExportedValuesf asserts that the types of two objects are equal and their public\n// fields are also equal. This is useful for comparing structs that have private fields\n// that could potentially differ.\n//\n//\t type S struct {\n//\t\tExported     \tint\n//\t\tnotExported   \tint\n//\t }\n//\t assert.EqualExportedValuesf(t, S{1, 2}, S{1, 3}, \"error message %s\", \"formatted\") => true\n//\t assert.EqualExportedValuesf(t, S{1, 2}, S{2, 3}, \"error message %s\", \"formatted\") => false\nfunc EqualExportedValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualExportedValues(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// EqualValuesf asserts that two objects are equal or convertible to the same types\n// and equal.\n//\n//\tassert.EqualValuesf(t, uint32(123), int32(123), \"error message %s\", \"formatted\")\nfunc EqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualValues(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// Errorf asserts that a function returned an error (i.e. not `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if assert.Errorf(t, err, \"error message %s\", \"formatted\") {\n//\t\t   assert.Equal(t, expectedErrorf, err)\n//\t  }\nfunc Errorf(t TestingT, err error, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Error(t, err, append([]interface{}{msg}, args...)...)\n}\n\n// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value.\n// This is a wrapper for errors.As.\nfunc ErrorAsf(t TestingT, err error, target interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorAs(t, err, target, append([]interface{}{msg}, args...)...)\n}\n\n// ErrorContainsf asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\n//\n//\tactualObj, err := SomeFunction()\n//\tassert.ErrorContainsf(t, err,  expectedErrorSubString, \"error message %s\", \"formatted\")\nfunc ErrorContainsf(t TestingT, theError error, contains string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorContains(t, theError, contains, append([]interface{}{msg}, args...)...)\n}\n\n// ErrorIsf asserts that at least one of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc ErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorIs(t, err, target, append([]interface{}{msg}, args...)...)\n}\n\n// Eventuallyf asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick.\n//\n//\tassert.Eventuallyf(t, func() bool { return true; }, time.Second, 10*time.Millisecond, \"error message %s\", \"formatted\")\nfunc Eventuallyf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Eventually(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...)\n}\n\n// EventuallyWithTf asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick. In contrast to Eventually,\n// it supplies a CollectT to the condition function, so that the condition\n// function can use the CollectT to call other assertions.\n// The condition is considered \"met\" if no errors are raised in a tick.\n// The supplied CollectT collects all errors from one tick (if there are any).\n// If the condition is not met before waitFor, the collected errors of\n// the last tick are copied to t.\n//\n//\texternalValue := false\n//\tgo func() {\n//\t\ttime.Sleep(8*time.Second)\n//\t\texternalValue = true\n//\t}()\n//\tassert.EventuallyWithTf(t, func(c *assert.CollectT, \"error message %s\", \"formatted\") {\n//\t\t// add assertions as needed; any assertion failure will fail the current tick\n//\t\tassert.True(c, externalValue, \"expected 'externalValue' to be true\")\n//\t}, 1*time.Second, 10*time.Second, \"external state has not changed to 'true'; still false\")\nfunc EventuallyWithTf(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EventuallyWithT(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...)\n}\n\n// Exactlyf asserts that two objects are equal in value and type.\n//\n//\tassert.Exactlyf(t, int32(123), int64(123), \"error message %s\", \"formatted\")\nfunc Exactlyf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Exactly(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// Failf reports a failure through\nfunc Failf(t TestingT, failureMessage string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Fail(t, failureMessage, append([]interface{}{msg}, args...)...)\n}\n\n// FailNowf fails test\nfunc FailNowf(t TestingT, failureMessage string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FailNow(t, failureMessage, append([]interface{}{msg}, args...)...)\n}\n\n// Falsef asserts that the specified value is false.\n//\n//\tassert.Falsef(t, myBool, \"error message %s\", \"formatted\")\nfunc Falsef(t TestingT, value bool, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn False(t, value, append([]interface{}{msg}, args...)...)\n}\n\n// FileExistsf checks whether a file exists in the given path. It also fails if\n// the path points to a directory or there is an error when trying to check the file.\nfunc FileExistsf(t TestingT, path string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FileExists(t, path, append([]interface{}{msg}, args...)...)\n}\n\n// Greaterf asserts that the first element is greater than the second\n//\n//\tassert.Greaterf(t, 2, 1, \"error message %s\", \"formatted\")\n//\tassert.Greaterf(t, float64(2), float64(1), \"error message %s\", \"formatted\")\n//\tassert.Greaterf(t, \"b\", \"a\", \"error message %s\", \"formatted\")\nfunc Greaterf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Greater(t, e1, e2, append([]interface{}{msg}, args...)...)\n}\n\n// GreaterOrEqualf asserts that the first element is greater than or equal to the second\n//\n//\tassert.GreaterOrEqualf(t, 2, 1, \"error message %s\", \"formatted\")\n//\tassert.GreaterOrEqualf(t, 2, 2, \"error message %s\", \"formatted\")\n//\tassert.GreaterOrEqualf(t, \"b\", \"a\", \"error message %s\", \"formatted\")\n//\tassert.GreaterOrEqualf(t, \"b\", \"b\", \"error message %s\", \"formatted\")\nfunc GreaterOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn GreaterOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPBodyContainsf asserts that a specified handler returns a\n// body that contains a string.\n//\n//\tassert.HTTPBodyContainsf(t, myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\", \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPBodyContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPBodyNotContainsf asserts that a specified handler returns a\n// body that does not contain a string.\n//\n//\tassert.HTTPBodyNotContainsf(t, myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\", \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPBodyNotContainsf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyNotContains(t, handler, method, url, values, str, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPErrorf asserts that a specified handler returns an error status code.\n//\n//\tassert.HTTPErrorf(t, myHandler, \"POST\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPErrorf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPError(t, handler, method, url, values, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPRedirectf asserts that a specified handler returns a redirect status code.\n//\n//\tassert.HTTPRedirectf(t, myHandler, \"GET\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPRedirectf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPRedirect(t, handler, method, url, values, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPStatusCodef asserts that a specified handler returns a specified status code.\n//\n//\tassert.HTTPStatusCodef(t, myHandler, \"GET\", \"/notImplemented\", nil, 501, \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPStatusCodef(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPStatusCode(t, handler, method, url, values, statuscode, append([]interface{}{msg}, args...)...)\n}\n\n// HTTPSuccessf asserts that a specified handler returns a success status code.\n//\n//\tassert.HTTPSuccessf(t, myHandler, \"POST\", \"http://www.google.com\", nil, \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPSuccessf(t TestingT, handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPSuccess(t, handler, method, url, values, append([]interface{}{msg}, args...)...)\n}\n\n// Implementsf asserts that an object is implemented by the specified interface.\n//\n//\tassert.Implementsf(t, (*MyInterface)(nil), new(MyObject), \"error message %s\", \"formatted\")\nfunc Implementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Implements(t, interfaceObject, object, append([]interface{}{msg}, args...)...)\n}\n\n// InDeltaf asserts that the two numerals are within delta of each other.\n//\n//\tassert.InDeltaf(t, math.Pi, 22/7.0, 0.01, \"error message %s\", \"formatted\")\nfunc InDeltaf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDelta(t, expected, actual, delta, append([]interface{}{msg}, args...)...)\n}\n\n// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.\nfunc InDeltaMapValuesf(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaMapValues(t, expected, actual, delta, append([]interface{}{msg}, args...)...)\n}\n\n// InDeltaSlicef is the same as InDelta, except it compares two slices.\nfunc InDeltaSlicef(t TestingT, expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaSlice(t, expected, actual, delta, append([]interface{}{msg}, args...)...)\n}\n\n// InEpsilonf asserts that expected and actual have a relative error less than epsilon\nfunc InEpsilonf(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilon(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...)\n}\n\n// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices.\nfunc InEpsilonSlicef(t TestingT, expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilonSlice(t, expected, actual, epsilon, append([]interface{}{msg}, args...)...)\n}\n\n// IsDecreasingf asserts that the collection is decreasing\n//\n//\tassert.IsDecreasingf(t, []int{2, 1, 0}, \"error message %s\", \"formatted\")\n//\tassert.IsDecreasingf(t, []float{2, 1}, \"error message %s\", \"formatted\")\n//\tassert.IsDecreasingf(t, []string{\"b\", \"a\"}, \"error message %s\", \"formatted\")\nfunc IsDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsDecreasing(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// IsIncreasingf asserts that the collection is increasing\n//\n//\tassert.IsIncreasingf(t, []int{1, 2, 3}, \"error message %s\", \"formatted\")\n//\tassert.IsIncreasingf(t, []float{1, 2}, \"error message %s\", \"formatted\")\n//\tassert.IsIncreasingf(t, []string{\"a\", \"b\"}, \"error message %s\", \"formatted\")\nfunc IsIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsIncreasing(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// IsNonDecreasingf asserts that the collection is not decreasing\n//\n//\tassert.IsNonDecreasingf(t, []int{1, 1, 2}, \"error message %s\", \"formatted\")\n//\tassert.IsNonDecreasingf(t, []float{1, 2}, \"error message %s\", \"formatted\")\n//\tassert.IsNonDecreasingf(t, []string{\"a\", \"b\"}, \"error message %s\", \"formatted\")\nfunc IsNonDecreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonDecreasing(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// IsNonIncreasingf asserts that the collection is not increasing\n//\n//\tassert.IsNonIncreasingf(t, []int{2, 1, 1}, \"error message %s\", \"formatted\")\n//\tassert.IsNonIncreasingf(t, []float{2, 1}, \"error message %s\", \"formatted\")\n//\tassert.IsNonIncreasingf(t, []string{\"b\", \"a\"}, \"error message %s\", \"formatted\")\nfunc IsNonIncreasingf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonIncreasing(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// IsTypef asserts that the specified objects are of the same type.\nfunc IsTypef(t TestingT, expectedType interface{}, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsType(t, expectedType, object, append([]interface{}{msg}, args...)...)\n}\n\n// JSONEqf asserts that two JSON strings are equivalent.\n//\n//\tassert.JSONEqf(t, `{\"hello\": \"world\", \"foo\": \"bar\"}`, `{\"foo\": \"bar\", \"hello\": \"world\"}`, \"error message %s\", \"formatted\")\nfunc JSONEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn JSONEq(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// Lenf asserts that the specified object has specific length.\n// Lenf also fails if the object has a type that len() not accept.\n//\n//\tassert.Lenf(t, mySlice, 3, \"error message %s\", \"formatted\")\nfunc Lenf(t TestingT, object interface{}, length int, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Len(t, object, length, append([]interface{}{msg}, args...)...)\n}\n\n// Lessf asserts that the first element is less than the second\n//\n//\tassert.Lessf(t, 1, 2, \"error message %s\", \"formatted\")\n//\tassert.Lessf(t, float64(1), float64(2), \"error message %s\", \"formatted\")\n//\tassert.Lessf(t, \"a\", \"b\", \"error message %s\", \"formatted\")\nfunc Lessf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Less(t, e1, e2, append([]interface{}{msg}, args...)...)\n}\n\n// LessOrEqualf asserts that the first element is less than or equal to the second\n//\n//\tassert.LessOrEqualf(t, 1, 2, \"error message %s\", \"formatted\")\n//\tassert.LessOrEqualf(t, 2, 2, \"error message %s\", \"formatted\")\n//\tassert.LessOrEqualf(t, \"a\", \"b\", \"error message %s\", \"formatted\")\n//\tassert.LessOrEqualf(t, \"b\", \"b\", \"error message %s\", \"formatted\")\nfunc LessOrEqualf(t TestingT, e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn LessOrEqual(t, e1, e2, append([]interface{}{msg}, args...)...)\n}\n\n// Negativef asserts that the specified element is negative\n//\n//\tassert.Negativef(t, -1, \"error message %s\", \"formatted\")\n//\tassert.Negativef(t, -1.23, \"error message %s\", \"formatted\")\nfunc Negativef(t TestingT, e interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Negative(t, e, append([]interface{}{msg}, args...)...)\n}\n\n// Neverf asserts that the given condition doesn't satisfy in waitFor time,\n// periodically checking the target function each tick.\n//\n//\tassert.Neverf(t, func() bool { return false; }, time.Second, 10*time.Millisecond, \"error message %s\", \"formatted\")\nfunc Neverf(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Never(t, condition, waitFor, tick, append([]interface{}{msg}, args...)...)\n}\n\n// Nilf asserts that the specified object is nil.\n//\n//\tassert.Nilf(t, err, \"error message %s\", \"formatted\")\nfunc Nilf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Nil(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// NoDirExistsf checks whether a directory does not exist in the given path.\n// It fails if the path points to an existing _directory_ only.\nfunc NoDirExistsf(t TestingT, path string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoDirExists(t, path, append([]interface{}{msg}, args...)...)\n}\n\n// NoErrorf asserts that a function returned no error (i.e. `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if assert.NoErrorf(t, err, \"error message %s\", \"formatted\") {\n//\t\t   assert.Equal(t, expectedObj, actualObj)\n//\t  }\nfunc NoErrorf(t TestingT, err error, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoError(t, err, append([]interface{}{msg}, args...)...)\n}\n\n// NoFileExistsf checks whether a file does not exist in a given path. It fails\n// if the path points to an existing _file_ only.\nfunc NoFileExistsf(t TestingT, path string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoFileExists(t, path, append([]interface{}{msg}, args...)...)\n}\n\n// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the\n// specified substring or element.\n//\n//\tassert.NotContainsf(t, \"Hello World\", \"Earth\", \"error message %s\", \"formatted\")\n//\tassert.NotContainsf(t, [\"Hello\", \"World\"], \"Earth\", \"error message %s\", \"formatted\")\n//\tassert.NotContainsf(t, {\"Hello\": \"World\"}, \"Earth\", \"error message %s\", \"formatted\")\nfunc NotContainsf(t TestingT, s interface{}, contains interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotContains(t, s, contains, append([]interface{}{msg}, args...)...)\n}\n\n// NotEmptyf asserts that the specified object is NOT empty.  I.e. not nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tif assert.NotEmptyf(t, obj, \"error message %s\", \"formatted\") {\n//\t  assert.Equal(t, \"two\", obj[1])\n//\t}\nfunc NotEmptyf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEmpty(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// NotEqualf asserts that the specified values are NOT equal.\n//\n//\tassert.NotEqualf(t, obj1, obj2, \"error message %s\", \"formatted\")\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses).\nfunc NotEqualf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqual(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// NotEqualValuesf asserts that two objects are not equal even when converted to the same type\n//\n//\tassert.NotEqualValuesf(t, obj1, obj2, \"error message %s\", \"formatted\")\nfunc NotEqualValuesf(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqualValues(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// NotErrorIsf asserts that at none of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc NotErrorIsf(t TestingT, err error, target error, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotErrorIs(t, err, target, append([]interface{}{msg}, args...)...)\n}\n\n// NotImplementsf asserts that an object does not implement the specified interface.\n//\n//\tassert.NotImplementsf(t, (*MyInterface)(nil), new(MyObject), \"error message %s\", \"formatted\")\nfunc NotImplementsf(t TestingT, interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotImplements(t, interfaceObject, object, append([]interface{}{msg}, args...)...)\n}\n\n// NotNilf asserts that the specified object is not nil.\n//\n//\tassert.NotNilf(t, err, \"error message %s\", \"formatted\")\nfunc NotNilf(t TestingT, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotNil(t, object, append([]interface{}{msg}, args...)...)\n}\n\n// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic.\n//\n//\tassert.NotPanicsf(t, func(){ RemainCalm() }, \"error message %s\", \"formatted\")\nfunc NotPanicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotPanics(t, f, append([]interface{}{msg}, args...)...)\n}\n\n// NotRegexpf asserts that a specified regexp does not match a string.\n//\n//\tassert.NotRegexpf(t, regexp.MustCompile(\"starts\"), \"it's starting\", \"error message %s\", \"formatted\")\n//\tassert.NotRegexpf(t, \"^start\", \"it's not starting\", \"error message %s\", \"formatted\")\nfunc NotRegexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotRegexp(t, rx, str, append([]interface{}{msg}, args...)...)\n}\n\n// NotSamef asserts that two pointers do not reference the same object.\n//\n//\tassert.NotSamef(t, ptr1, ptr2, \"error message %s\", \"formatted\")\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc NotSamef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSame(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// NotSubsetf asserts that the specified list(array, slice...) or map does NOT\n// contain all elements given in the specified subset list(array, slice...) or\n// map.\n//\n//\tassert.NotSubsetf(t, [1, 3, 4], [1, 2], \"error message %s\", \"formatted\")\n//\tassert.NotSubsetf(t, {\"x\": 1, \"y\": 2}, {\"z\": 3}, \"error message %s\", \"formatted\")\nfunc NotSubsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSubset(t, list, subset, append([]interface{}{msg}, args...)...)\n}\n\n// NotZerof asserts that i is not the zero value for its type.\nfunc NotZerof(t TestingT, i interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotZero(t, i, append([]interface{}{msg}, args...)...)\n}\n\n// Panicsf asserts that the code inside the specified PanicTestFunc panics.\n//\n//\tassert.Panicsf(t, func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc Panicsf(t TestingT, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Panics(t, f, append([]interface{}{msg}, args...)...)\n}\n\n// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc\n// panics, and that the recovered panic value is an error that satisfies the\n// EqualError comparison.\n//\n//\tassert.PanicsWithErrorf(t, \"crazy error\", func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc PanicsWithErrorf(t TestingT, errString string, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithError(t, errString, f, append([]interface{}{msg}, args...)...)\n}\n\n// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that\n// the recovered panic value equals the expected panic value.\n//\n//\tassert.PanicsWithValuef(t, \"crazy error\", func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc PanicsWithValuef(t TestingT, expected interface{}, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithValue(t, expected, f, append([]interface{}{msg}, args...)...)\n}\n\n// Positivef asserts that the specified element is positive\n//\n//\tassert.Positivef(t, 1, \"error message %s\", \"formatted\")\n//\tassert.Positivef(t, 1.23, \"error message %s\", \"formatted\")\nfunc Positivef(t TestingT, e interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Positive(t, e, append([]interface{}{msg}, args...)...)\n}\n\n// Regexpf asserts that a specified regexp matches a string.\n//\n//\tassert.Regexpf(t, regexp.MustCompile(\"start\"), \"it's starting\", \"error message %s\", \"formatted\")\n//\tassert.Regexpf(t, \"start...$\", \"it's not starting\", \"error message %s\", \"formatted\")\nfunc Regexpf(t TestingT, rx interface{}, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Regexp(t, rx, str, append([]interface{}{msg}, args...)...)\n}\n\n// Samef asserts that two pointers reference the same object.\n//\n//\tassert.Samef(t, ptr1, ptr2, \"error message %s\", \"formatted\")\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc Samef(t TestingT, expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Same(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// Subsetf asserts that the specified list(array, slice...) or map contains all\n// elements given in the specified subset list(array, slice...) or map.\n//\n//\tassert.Subsetf(t, [1, 2, 3], [1, 2], \"error message %s\", \"formatted\")\n//\tassert.Subsetf(t, {\"x\": 1, \"y\": 2}, {\"x\": 1}, \"error message %s\", \"formatted\")\nfunc Subsetf(t TestingT, list interface{}, subset interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Subset(t, list, subset, append([]interface{}{msg}, args...)...)\n}\n\n// Truef asserts that the specified value is true.\n//\n//\tassert.Truef(t, myBool, \"error message %s\", \"formatted\")\nfunc Truef(t TestingT, value bool, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn True(t, value, append([]interface{}{msg}, args...)...)\n}\n\n// WithinDurationf asserts that the two times are within duration delta of each other.\n//\n//\tassert.WithinDurationf(t, time.Now(), time.Now(), 10*time.Second, \"error message %s\", \"formatted\")\nfunc WithinDurationf(t TestingT, expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinDuration(t, expected, actual, delta, append([]interface{}{msg}, args...)...)\n}\n\n// WithinRangef asserts that a time is within a time range (inclusive).\n//\n//\tassert.WithinRangef(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), \"error message %s\", \"formatted\")\nfunc WithinRangef(t TestingT, actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinRange(t, actual, start, end, append([]interface{}{msg}, args...)...)\n}\n\n// YAMLEqf asserts that two YAML strings are equivalent.\nfunc YAMLEqf(t TestingT, expected string, actual string, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn YAMLEq(t, expected, actual, append([]interface{}{msg}, args...)...)\n}\n\n// Zerof asserts that i is the zero value for its type.\nfunc Zerof(t TestingT, i interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Zero(t, i, append([]interface{}{msg}, args...)...)\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl",
    "content": "{{.CommentFormat}}\nfunc {{.DocInfo.Name}}f(t TestingT, {{.ParamsFormat}}) bool {\n\tif h, ok := t.(tHelper); ok { h.Helper() }\n\treturn {{.DocInfo.Name}}(t, {{.ForwardedParamsFormat}})\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_forward.go",
    "content": "// Code generated with github.com/stretchr/testify/_codegen; DO NOT EDIT.\n\npackage assert\n\nimport (\n\thttp \"net/http\"\n\turl \"net/url\"\n\ttime \"time\"\n)\n\n// Condition uses a Comparison to assert a complex condition.\nfunc (a *Assertions) Condition(comp Comparison, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Condition(a.t, comp, msgAndArgs...)\n}\n\n// Conditionf uses a Comparison to assert a complex condition.\nfunc (a *Assertions) Conditionf(comp Comparison, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Conditionf(a.t, comp, msg, args...)\n}\n\n// Contains asserts that the specified string, list(array, slice...) or map contains the\n// specified substring or element.\n//\n//\ta.Contains(\"Hello World\", \"World\")\n//\ta.Contains([\"Hello\", \"World\"], \"World\")\n//\ta.Contains({\"Hello\": \"World\"}, \"Hello\")\nfunc (a *Assertions) Contains(s interface{}, contains interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Contains(a.t, s, contains, msgAndArgs...)\n}\n\n// Containsf asserts that the specified string, list(array, slice...) or map contains the\n// specified substring or element.\n//\n//\ta.Containsf(\"Hello World\", \"World\", \"error message %s\", \"formatted\")\n//\ta.Containsf([\"Hello\", \"World\"], \"World\", \"error message %s\", \"formatted\")\n//\ta.Containsf({\"Hello\": \"World\"}, \"Hello\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) Containsf(s interface{}, contains interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Containsf(a.t, s, contains, msg, args...)\n}\n\n// DirExists checks whether a directory exists in the given path. It also fails\n// if the path is a file rather a directory or there is an error checking whether it exists.\nfunc (a *Assertions) DirExists(path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn DirExists(a.t, path, msgAndArgs...)\n}\n\n// DirExistsf checks whether a directory exists in the given path. It also fails\n// if the path is a file rather a directory or there is an error checking whether it exists.\nfunc (a *Assertions) DirExistsf(path string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn DirExistsf(a.t, path, msg, args...)\n}\n\n// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified\n// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,\n// the number of appearances of each of them in both lists should match.\n//\n// a.ElementsMatch([1, 3, 2, 3], [1, 3, 3, 2])\nfunc (a *Assertions) ElementsMatch(listA interface{}, listB interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ElementsMatch(a.t, listA, listB, msgAndArgs...)\n}\n\n// ElementsMatchf asserts that the specified listA(array, slice...) is equal to specified\n// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,\n// the number of appearances of each of them in both lists should match.\n//\n// a.ElementsMatchf([1, 3, 2, 3], [1, 3, 3, 2], \"error message %s\", \"formatted\")\nfunc (a *Assertions) ElementsMatchf(listA interface{}, listB interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ElementsMatchf(a.t, listA, listB, msg, args...)\n}\n\n// Empty asserts that the specified object is empty.  I.e. nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\ta.Empty(obj)\nfunc (a *Assertions) Empty(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Empty(a.t, object, msgAndArgs...)\n}\n\n// Emptyf asserts that the specified object is empty.  I.e. nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\ta.Emptyf(obj, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Emptyf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Emptyf(a.t, object, msg, args...)\n}\n\n// Equal asserts that two objects are equal.\n//\n//\ta.Equal(123, 123)\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses). Function equality\n// cannot be determined and will always fail.\nfunc (a *Assertions) Equal(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Equal(a.t, expected, actual, msgAndArgs...)\n}\n\n// EqualError asserts that a function returned an error (i.e. not `nil`)\n// and that it is equal to the provided error.\n//\n//\tactualObj, err := SomeFunction()\n//\ta.EqualError(err,  expectedErrorString)\nfunc (a *Assertions) EqualError(theError error, errString string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualError(a.t, theError, errString, msgAndArgs...)\n}\n\n// EqualErrorf asserts that a function returned an error (i.e. not `nil`)\n// and that it is equal to the provided error.\n//\n//\tactualObj, err := SomeFunction()\n//\ta.EqualErrorf(err,  expectedErrorString, \"error message %s\", \"formatted\")\nfunc (a *Assertions) EqualErrorf(theError error, errString string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualErrorf(a.t, theError, errString, msg, args...)\n}\n\n// EqualExportedValues asserts that the types of two objects are equal and their public\n// fields are also equal. This is useful for comparing structs that have private fields\n// that could potentially differ.\n//\n//\t type S struct {\n//\t\tExported     \tint\n//\t\tnotExported   \tint\n//\t }\n//\t a.EqualExportedValues(S{1, 2}, S{1, 3}) => true\n//\t a.EqualExportedValues(S{1, 2}, S{2, 3}) => false\nfunc (a *Assertions) EqualExportedValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualExportedValues(a.t, expected, actual, msgAndArgs...)\n}\n\n// EqualExportedValuesf asserts that the types of two objects are equal and their public\n// fields are also equal. This is useful for comparing structs that have private fields\n// that could potentially differ.\n//\n//\t type S struct {\n//\t\tExported     \tint\n//\t\tnotExported   \tint\n//\t }\n//\t a.EqualExportedValuesf(S{1, 2}, S{1, 3}, \"error message %s\", \"formatted\") => true\n//\t a.EqualExportedValuesf(S{1, 2}, S{2, 3}, \"error message %s\", \"formatted\") => false\nfunc (a *Assertions) EqualExportedValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualExportedValuesf(a.t, expected, actual, msg, args...)\n}\n\n// EqualValues asserts that two objects are equal or convertible to the same types\n// and equal.\n//\n//\ta.EqualValues(uint32(123), int32(123))\nfunc (a *Assertions) EqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualValues(a.t, expected, actual, msgAndArgs...)\n}\n\n// EqualValuesf asserts that two objects are equal or convertible to the same types\n// and equal.\n//\n//\ta.EqualValuesf(uint32(123), int32(123), \"error message %s\", \"formatted\")\nfunc (a *Assertions) EqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EqualValuesf(a.t, expected, actual, msg, args...)\n}\n\n// Equalf asserts that two objects are equal.\n//\n//\ta.Equalf(123, 123, \"error message %s\", \"formatted\")\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses). Function equality\n// cannot be determined and will always fail.\nfunc (a *Assertions) Equalf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Equalf(a.t, expected, actual, msg, args...)\n}\n\n// Error asserts that a function returned an error (i.e. not `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if a.Error(err) {\n//\t\t   assert.Equal(t, expectedError, err)\n//\t  }\nfunc (a *Assertions) Error(err error, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Error(a.t, err, msgAndArgs...)\n}\n\n// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value.\n// This is a wrapper for errors.As.\nfunc (a *Assertions) ErrorAs(err error, target interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorAs(a.t, err, target, msgAndArgs...)\n}\n\n// ErrorAsf asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value.\n// This is a wrapper for errors.As.\nfunc (a *Assertions) ErrorAsf(err error, target interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorAsf(a.t, err, target, msg, args...)\n}\n\n// ErrorContains asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\n//\n//\tactualObj, err := SomeFunction()\n//\ta.ErrorContains(err,  expectedErrorSubString)\nfunc (a *Assertions) ErrorContains(theError error, contains string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorContains(a.t, theError, contains, msgAndArgs...)\n}\n\n// ErrorContainsf asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\n//\n//\tactualObj, err := SomeFunction()\n//\ta.ErrorContainsf(err,  expectedErrorSubString, \"error message %s\", \"formatted\")\nfunc (a *Assertions) ErrorContainsf(theError error, contains string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorContainsf(a.t, theError, contains, msg, args...)\n}\n\n// ErrorIs asserts that at least one of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc (a *Assertions) ErrorIs(err error, target error, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorIs(a.t, err, target, msgAndArgs...)\n}\n\n// ErrorIsf asserts that at least one of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc (a *Assertions) ErrorIsf(err error, target error, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn ErrorIsf(a.t, err, target, msg, args...)\n}\n\n// Errorf asserts that a function returned an error (i.e. not `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if a.Errorf(err, \"error message %s\", \"formatted\") {\n//\t\t   assert.Equal(t, expectedErrorf, err)\n//\t  }\nfunc (a *Assertions) Errorf(err error, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Errorf(a.t, err, msg, args...)\n}\n\n// Eventually asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick.\n//\n//\ta.Eventually(func() bool { return true; }, time.Second, 10*time.Millisecond)\nfunc (a *Assertions) Eventually(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Eventually(a.t, condition, waitFor, tick, msgAndArgs...)\n}\n\n// EventuallyWithT asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick. In contrast to Eventually,\n// it supplies a CollectT to the condition function, so that the condition\n// function can use the CollectT to call other assertions.\n// The condition is considered \"met\" if no errors are raised in a tick.\n// The supplied CollectT collects all errors from one tick (if there are any).\n// If the condition is not met before waitFor, the collected errors of\n// the last tick are copied to t.\n//\n//\texternalValue := false\n//\tgo func() {\n//\t\ttime.Sleep(8*time.Second)\n//\t\texternalValue = true\n//\t}()\n//\ta.EventuallyWithT(func(c *assert.CollectT) {\n//\t\t// add assertions as needed; any assertion failure will fail the current tick\n//\t\tassert.True(c, externalValue, \"expected 'externalValue' to be true\")\n//\t}, 1*time.Second, 10*time.Second, \"external state has not changed to 'true'; still false\")\nfunc (a *Assertions) EventuallyWithT(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EventuallyWithT(a.t, condition, waitFor, tick, msgAndArgs...)\n}\n\n// EventuallyWithTf asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick. In contrast to Eventually,\n// it supplies a CollectT to the condition function, so that the condition\n// function can use the CollectT to call other assertions.\n// The condition is considered \"met\" if no errors are raised in a tick.\n// The supplied CollectT collects all errors from one tick (if there are any).\n// If the condition is not met before waitFor, the collected errors of\n// the last tick are copied to t.\n//\n//\texternalValue := false\n//\tgo func() {\n//\t\ttime.Sleep(8*time.Second)\n//\t\texternalValue = true\n//\t}()\n//\ta.EventuallyWithTf(func(c *assert.CollectT, \"error message %s\", \"formatted\") {\n//\t\t// add assertions as needed; any assertion failure will fail the current tick\n//\t\tassert.True(c, externalValue, \"expected 'externalValue' to be true\")\n//\t}, 1*time.Second, 10*time.Second, \"external state has not changed to 'true'; still false\")\nfunc (a *Assertions) EventuallyWithTf(condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn EventuallyWithTf(a.t, condition, waitFor, tick, msg, args...)\n}\n\n// Eventuallyf asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick.\n//\n//\ta.Eventuallyf(func() bool { return true; }, time.Second, 10*time.Millisecond, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Eventuallyf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Eventuallyf(a.t, condition, waitFor, tick, msg, args...)\n}\n\n// Exactly asserts that two objects are equal in value and type.\n//\n//\ta.Exactly(int32(123), int64(123))\nfunc (a *Assertions) Exactly(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Exactly(a.t, expected, actual, msgAndArgs...)\n}\n\n// Exactlyf asserts that two objects are equal in value and type.\n//\n//\ta.Exactlyf(int32(123), int64(123), \"error message %s\", \"formatted\")\nfunc (a *Assertions) Exactlyf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Exactlyf(a.t, expected, actual, msg, args...)\n}\n\n// Fail reports a failure through\nfunc (a *Assertions) Fail(failureMessage string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Fail(a.t, failureMessage, msgAndArgs...)\n}\n\n// FailNow fails test\nfunc (a *Assertions) FailNow(failureMessage string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FailNow(a.t, failureMessage, msgAndArgs...)\n}\n\n// FailNowf fails test\nfunc (a *Assertions) FailNowf(failureMessage string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FailNowf(a.t, failureMessage, msg, args...)\n}\n\n// Failf reports a failure through\nfunc (a *Assertions) Failf(failureMessage string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Failf(a.t, failureMessage, msg, args...)\n}\n\n// False asserts that the specified value is false.\n//\n//\ta.False(myBool)\nfunc (a *Assertions) False(value bool, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn False(a.t, value, msgAndArgs...)\n}\n\n// Falsef asserts that the specified value is false.\n//\n//\ta.Falsef(myBool, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Falsef(value bool, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Falsef(a.t, value, msg, args...)\n}\n\n// FileExists checks whether a file exists in the given path. It also fails if\n// the path points to a directory or there is an error when trying to check the file.\nfunc (a *Assertions) FileExists(path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FileExists(a.t, path, msgAndArgs...)\n}\n\n// FileExistsf checks whether a file exists in the given path. It also fails if\n// the path points to a directory or there is an error when trying to check the file.\nfunc (a *Assertions) FileExistsf(path string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn FileExistsf(a.t, path, msg, args...)\n}\n\n// Greater asserts that the first element is greater than the second\n//\n//\ta.Greater(2, 1)\n//\ta.Greater(float64(2), float64(1))\n//\ta.Greater(\"b\", \"a\")\nfunc (a *Assertions) Greater(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Greater(a.t, e1, e2, msgAndArgs...)\n}\n\n// GreaterOrEqual asserts that the first element is greater than or equal to the second\n//\n//\ta.GreaterOrEqual(2, 1)\n//\ta.GreaterOrEqual(2, 2)\n//\ta.GreaterOrEqual(\"b\", \"a\")\n//\ta.GreaterOrEqual(\"b\", \"b\")\nfunc (a *Assertions) GreaterOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn GreaterOrEqual(a.t, e1, e2, msgAndArgs...)\n}\n\n// GreaterOrEqualf asserts that the first element is greater than or equal to the second\n//\n//\ta.GreaterOrEqualf(2, 1, \"error message %s\", \"formatted\")\n//\ta.GreaterOrEqualf(2, 2, \"error message %s\", \"formatted\")\n//\ta.GreaterOrEqualf(\"b\", \"a\", \"error message %s\", \"formatted\")\n//\ta.GreaterOrEqualf(\"b\", \"b\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) GreaterOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn GreaterOrEqualf(a.t, e1, e2, msg, args...)\n}\n\n// Greaterf asserts that the first element is greater than the second\n//\n//\ta.Greaterf(2, 1, \"error message %s\", \"formatted\")\n//\ta.Greaterf(float64(2), float64(1), \"error message %s\", \"formatted\")\n//\ta.Greaterf(\"b\", \"a\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) Greaterf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Greaterf(a.t, e1, e2, msg, args...)\n}\n\n// HTTPBodyContains asserts that a specified handler returns a\n// body that contains a string.\n//\n//\ta.HTTPBodyContains(myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPBodyContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyContains(a.t, handler, method, url, values, str, msgAndArgs...)\n}\n\n// HTTPBodyContainsf asserts that a specified handler returns a\n// body that contains a string.\n//\n//\ta.HTTPBodyContainsf(myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\", \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPBodyContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyContainsf(a.t, handler, method, url, values, str, msg, args...)\n}\n\n// HTTPBodyNotContains asserts that a specified handler returns a\n// body that does not contain a string.\n//\n//\ta.HTTPBodyNotContains(myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPBodyNotContains(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyNotContains(a.t, handler, method, url, values, str, msgAndArgs...)\n}\n\n// HTTPBodyNotContainsf asserts that a specified handler returns a\n// body that does not contain a string.\n//\n//\ta.HTTPBodyNotContainsf(myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\", \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPBodyNotContainsf(handler http.HandlerFunc, method string, url string, values url.Values, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPBodyNotContainsf(a.t, handler, method, url, values, str, msg, args...)\n}\n\n// HTTPError asserts that a specified handler returns an error status code.\n//\n//\ta.HTTPError(myHandler, \"POST\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPError(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPError(a.t, handler, method, url, values, msgAndArgs...)\n}\n\n// HTTPErrorf asserts that a specified handler returns an error status code.\n//\n//\ta.HTTPErrorf(myHandler, \"POST\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPErrorf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPErrorf(a.t, handler, method, url, values, msg, args...)\n}\n\n// HTTPRedirect asserts that a specified handler returns a redirect status code.\n//\n//\ta.HTTPRedirect(myHandler, \"GET\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPRedirect(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPRedirect(a.t, handler, method, url, values, msgAndArgs...)\n}\n\n// HTTPRedirectf asserts that a specified handler returns a redirect status code.\n//\n//\ta.HTTPRedirectf(myHandler, \"GET\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPRedirectf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPRedirectf(a.t, handler, method, url, values, msg, args...)\n}\n\n// HTTPStatusCode asserts that a specified handler returns a specified status code.\n//\n//\ta.HTTPStatusCode(myHandler, \"GET\", \"/notImplemented\", nil, 501)\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPStatusCode(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPStatusCode(a.t, handler, method, url, values, statuscode, msgAndArgs...)\n}\n\n// HTTPStatusCodef asserts that a specified handler returns a specified status code.\n//\n//\ta.HTTPStatusCodef(myHandler, \"GET\", \"/notImplemented\", nil, 501, \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPStatusCodef(handler http.HandlerFunc, method string, url string, values url.Values, statuscode int, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPStatusCodef(a.t, handler, method, url, values, statuscode, msg, args...)\n}\n\n// HTTPSuccess asserts that a specified handler returns a success status code.\n//\n//\ta.HTTPSuccess(myHandler, \"POST\", \"http://www.google.com\", nil)\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPSuccess(handler http.HandlerFunc, method string, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPSuccess(a.t, handler, method, url, values, msgAndArgs...)\n}\n\n// HTTPSuccessf asserts that a specified handler returns a success status code.\n//\n//\ta.HTTPSuccessf(myHandler, \"POST\", \"http://www.google.com\", nil, \"error message %s\", \"formatted\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc (a *Assertions) HTTPSuccessf(handler http.HandlerFunc, method string, url string, values url.Values, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn HTTPSuccessf(a.t, handler, method, url, values, msg, args...)\n}\n\n// Implements asserts that an object is implemented by the specified interface.\n//\n//\ta.Implements((*MyInterface)(nil), new(MyObject))\nfunc (a *Assertions) Implements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Implements(a.t, interfaceObject, object, msgAndArgs...)\n}\n\n// Implementsf asserts that an object is implemented by the specified interface.\n//\n//\ta.Implementsf((*MyInterface)(nil), new(MyObject), \"error message %s\", \"formatted\")\nfunc (a *Assertions) Implementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Implementsf(a.t, interfaceObject, object, msg, args...)\n}\n\n// InDelta asserts that the two numerals are within delta of each other.\n//\n//\ta.InDelta(math.Pi, 22/7.0, 0.01)\nfunc (a *Assertions) InDelta(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDelta(a.t, expected, actual, delta, msgAndArgs...)\n}\n\n// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.\nfunc (a *Assertions) InDeltaMapValues(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaMapValues(a.t, expected, actual, delta, msgAndArgs...)\n}\n\n// InDeltaMapValuesf is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.\nfunc (a *Assertions) InDeltaMapValuesf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaMapValuesf(a.t, expected, actual, delta, msg, args...)\n}\n\n// InDeltaSlice is the same as InDelta, except it compares two slices.\nfunc (a *Assertions) InDeltaSlice(expected interface{}, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaSlice(a.t, expected, actual, delta, msgAndArgs...)\n}\n\n// InDeltaSlicef is the same as InDelta, except it compares two slices.\nfunc (a *Assertions) InDeltaSlicef(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaSlicef(a.t, expected, actual, delta, msg, args...)\n}\n\n// InDeltaf asserts that the two numerals are within delta of each other.\n//\n//\ta.InDeltaf(math.Pi, 22/7.0, 0.01, \"error message %s\", \"formatted\")\nfunc (a *Assertions) InDeltaf(expected interface{}, actual interface{}, delta float64, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InDeltaf(a.t, expected, actual, delta, msg, args...)\n}\n\n// InEpsilon asserts that expected and actual have a relative error less than epsilon\nfunc (a *Assertions) InEpsilon(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilon(a.t, expected, actual, epsilon, msgAndArgs...)\n}\n\n// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices.\nfunc (a *Assertions) InEpsilonSlice(expected interface{}, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilonSlice(a.t, expected, actual, epsilon, msgAndArgs...)\n}\n\n// InEpsilonSlicef is the same as InEpsilon, except it compares each value from two slices.\nfunc (a *Assertions) InEpsilonSlicef(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilonSlicef(a.t, expected, actual, epsilon, msg, args...)\n}\n\n// InEpsilonf asserts that expected and actual have a relative error less than epsilon\nfunc (a *Assertions) InEpsilonf(expected interface{}, actual interface{}, epsilon float64, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn InEpsilonf(a.t, expected, actual, epsilon, msg, args...)\n}\n\n// IsDecreasing asserts that the collection is decreasing\n//\n//\ta.IsDecreasing([]int{2, 1, 0})\n//\ta.IsDecreasing([]float{2, 1})\n//\ta.IsDecreasing([]string{\"b\", \"a\"})\nfunc (a *Assertions) IsDecreasing(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsDecreasing(a.t, object, msgAndArgs...)\n}\n\n// IsDecreasingf asserts that the collection is decreasing\n//\n//\ta.IsDecreasingf([]int{2, 1, 0}, \"error message %s\", \"formatted\")\n//\ta.IsDecreasingf([]float{2, 1}, \"error message %s\", \"formatted\")\n//\ta.IsDecreasingf([]string{\"b\", \"a\"}, \"error message %s\", \"formatted\")\nfunc (a *Assertions) IsDecreasingf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsDecreasingf(a.t, object, msg, args...)\n}\n\n// IsIncreasing asserts that the collection is increasing\n//\n//\ta.IsIncreasing([]int{1, 2, 3})\n//\ta.IsIncreasing([]float{1, 2})\n//\ta.IsIncreasing([]string{\"a\", \"b\"})\nfunc (a *Assertions) IsIncreasing(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsIncreasing(a.t, object, msgAndArgs...)\n}\n\n// IsIncreasingf asserts that the collection is increasing\n//\n//\ta.IsIncreasingf([]int{1, 2, 3}, \"error message %s\", \"formatted\")\n//\ta.IsIncreasingf([]float{1, 2}, \"error message %s\", \"formatted\")\n//\ta.IsIncreasingf([]string{\"a\", \"b\"}, \"error message %s\", \"formatted\")\nfunc (a *Assertions) IsIncreasingf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsIncreasingf(a.t, object, msg, args...)\n}\n\n// IsNonDecreasing asserts that the collection is not decreasing\n//\n//\ta.IsNonDecreasing([]int{1, 1, 2})\n//\ta.IsNonDecreasing([]float{1, 2})\n//\ta.IsNonDecreasing([]string{\"a\", \"b\"})\nfunc (a *Assertions) IsNonDecreasing(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonDecreasing(a.t, object, msgAndArgs...)\n}\n\n// IsNonDecreasingf asserts that the collection is not decreasing\n//\n//\ta.IsNonDecreasingf([]int{1, 1, 2}, \"error message %s\", \"formatted\")\n//\ta.IsNonDecreasingf([]float{1, 2}, \"error message %s\", \"formatted\")\n//\ta.IsNonDecreasingf([]string{\"a\", \"b\"}, \"error message %s\", \"formatted\")\nfunc (a *Assertions) IsNonDecreasingf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonDecreasingf(a.t, object, msg, args...)\n}\n\n// IsNonIncreasing asserts that the collection is not increasing\n//\n//\ta.IsNonIncreasing([]int{2, 1, 1})\n//\ta.IsNonIncreasing([]float{2, 1})\n//\ta.IsNonIncreasing([]string{\"b\", \"a\"})\nfunc (a *Assertions) IsNonIncreasing(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonIncreasing(a.t, object, msgAndArgs...)\n}\n\n// IsNonIncreasingf asserts that the collection is not increasing\n//\n//\ta.IsNonIncreasingf([]int{2, 1, 1}, \"error message %s\", \"formatted\")\n//\ta.IsNonIncreasingf([]float{2, 1}, \"error message %s\", \"formatted\")\n//\ta.IsNonIncreasingf([]string{\"b\", \"a\"}, \"error message %s\", \"formatted\")\nfunc (a *Assertions) IsNonIncreasingf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsNonIncreasingf(a.t, object, msg, args...)\n}\n\n// IsType asserts that the specified objects are of the same type.\nfunc (a *Assertions) IsType(expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsType(a.t, expectedType, object, msgAndArgs...)\n}\n\n// IsTypef asserts that the specified objects are of the same type.\nfunc (a *Assertions) IsTypef(expectedType interface{}, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn IsTypef(a.t, expectedType, object, msg, args...)\n}\n\n// JSONEq asserts that two JSON strings are equivalent.\n//\n//\ta.JSONEq(`{\"hello\": \"world\", \"foo\": \"bar\"}`, `{\"foo\": \"bar\", \"hello\": \"world\"}`)\nfunc (a *Assertions) JSONEq(expected string, actual string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn JSONEq(a.t, expected, actual, msgAndArgs...)\n}\n\n// JSONEqf asserts that two JSON strings are equivalent.\n//\n//\ta.JSONEqf(`{\"hello\": \"world\", \"foo\": \"bar\"}`, `{\"foo\": \"bar\", \"hello\": \"world\"}`, \"error message %s\", \"formatted\")\nfunc (a *Assertions) JSONEqf(expected string, actual string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn JSONEqf(a.t, expected, actual, msg, args...)\n}\n\n// Len asserts that the specified object has specific length.\n// Len also fails if the object has a type that len() not accept.\n//\n//\ta.Len(mySlice, 3)\nfunc (a *Assertions) Len(object interface{}, length int, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Len(a.t, object, length, msgAndArgs...)\n}\n\n// Lenf asserts that the specified object has specific length.\n// Lenf also fails if the object has a type that len() not accept.\n//\n//\ta.Lenf(mySlice, 3, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Lenf(object interface{}, length int, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Lenf(a.t, object, length, msg, args...)\n}\n\n// Less asserts that the first element is less than the second\n//\n//\ta.Less(1, 2)\n//\ta.Less(float64(1), float64(2))\n//\ta.Less(\"a\", \"b\")\nfunc (a *Assertions) Less(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Less(a.t, e1, e2, msgAndArgs...)\n}\n\n// LessOrEqual asserts that the first element is less than or equal to the second\n//\n//\ta.LessOrEqual(1, 2)\n//\ta.LessOrEqual(2, 2)\n//\ta.LessOrEqual(\"a\", \"b\")\n//\ta.LessOrEqual(\"b\", \"b\")\nfunc (a *Assertions) LessOrEqual(e1 interface{}, e2 interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn LessOrEqual(a.t, e1, e2, msgAndArgs...)\n}\n\n// LessOrEqualf asserts that the first element is less than or equal to the second\n//\n//\ta.LessOrEqualf(1, 2, \"error message %s\", \"formatted\")\n//\ta.LessOrEqualf(2, 2, \"error message %s\", \"formatted\")\n//\ta.LessOrEqualf(\"a\", \"b\", \"error message %s\", \"formatted\")\n//\ta.LessOrEqualf(\"b\", \"b\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) LessOrEqualf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn LessOrEqualf(a.t, e1, e2, msg, args...)\n}\n\n// Lessf asserts that the first element is less than the second\n//\n//\ta.Lessf(1, 2, \"error message %s\", \"formatted\")\n//\ta.Lessf(float64(1), float64(2), \"error message %s\", \"formatted\")\n//\ta.Lessf(\"a\", \"b\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) Lessf(e1 interface{}, e2 interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Lessf(a.t, e1, e2, msg, args...)\n}\n\n// Negative asserts that the specified element is negative\n//\n//\ta.Negative(-1)\n//\ta.Negative(-1.23)\nfunc (a *Assertions) Negative(e interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Negative(a.t, e, msgAndArgs...)\n}\n\n// Negativef asserts that the specified element is negative\n//\n//\ta.Negativef(-1, \"error message %s\", \"formatted\")\n//\ta.Negativef(-1.23, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Negativef(e interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Negativef(a.t, e, msg, args...)\n}\n\n// Never asserts that the given condition doesn't satisfy in waitFor time,\n// periodically checking the target function each tick.\n//\n//\ta.Never(func() bool { return false; }, time.Second, 10*time.Millisecond)\nfunc (a *Assertions) Never(condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Never(a.t, condition, waitFor, tick, msgAndArgs...)\n}\n\n// Neverf asserts that the given condition doesn't satisfy in waitFor time,\n// periodically checking the target function each tick.\n//\n//\ta.Neverf(func() bool { return false; }, time.Second, 10*time.Millisecond, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Neverf(condition func() bool, waitFor time.Duration, tick time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Neverf(a.t, condition, waitFor, tick, msg, args...)\n}\n\n// Nil asserts that the specified object is nil.\n//\n//\ta.Nil(err)\nfunc (a *Assertions) Nil(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Nil(a.t, object, msgAndArgs...)\n}\n\n// Nilf asserts that the specified object is nil.\n//\n//\ta.Nilf(err, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Nilf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Nilf(a.t, object, msg, args...)\n}\n\n// NoDirExists checks whether a directory does not exist in the given path.\n// It fails if the path points to an existing _directory_ only.\nfunc (a *Assertions) NoDirExists(path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoDirExists(a.t, path, msgAndArgs...)\n}\n\n// NoDirExistsf checks whether a directory does not exist in the given path.\n// It fails if the path points to an existing _directory_ only.\nfunc (a *Assertions) NoDirExistsf(path string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoDirExistsf(a.t, path, msg, args...)\n}\n\n// NoError asserts that a function returned no error (i.e. `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if a.NoError(err) {\n//\t\t   assert.Equal(t, expectedObj, actualObj)\n//\t  }\nfunc (a *Assertions) NoError(err error, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoError(a.t, err, msgAndArgs...)\n}\n\n// NoErrorf asserts that a function returned no error (i.e. `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if a.NoErrorf(err, \"error message %s\", \"formatted\") {\n//\t\t   assert.Equal(t, expectedObj, actualObj)\n//\t  }\nfunc (a *Assertions) NoErrorf(err error, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoErrorf(a.t, err, msg, args...)\n}\n\n// NoFileExists checks whether a file does not exist in a given path. It fails\n// if the path points to an existing _file_ only.\nfunc (a *Assertions) NoFileExists(path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoFileExists(a.t, path, msgAndArgs...)\n}\n\n// NoFileExistsf checks whether a file does not exist in a given path. It fails\n// if the path points to an existing _file_ only.\nfunc (a *Assertions) NoFileExistsf(path string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NoFileExistsf(a.t, path, msg, args...)\n}\n\n// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the\n// specified substring or element.\n//\n//\ta.NotContains(\"Hello World\", \"Earth\")\n//\ta.NotContains([\"Hello\", \"World\"], \"Earth\")\n//\ta.NotContains({\"Hello\": \"World\"}, \"Earth\")\nfunc (a *Assertions) NotContains(s interface{}, contains interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotContains(a.t, s, contains, msgAndArgs...)\n}\n\n// NotContainsf asserts that the specified string, list(array, slice...) or map does NOT contain the\n// specified substring or element.\n//\n//\ta.NotContainsf(\"Hello World\", \"Earth\", \"error message %s\", \"formatted\")\n//\ta.NotContainsf([\"Hello\", \"World\"], \"Earth\", \"error message %s\", \"formatted\")\n//\ta.NotContainsf({\"Hello\": \"World\"}, \"Earth\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotContainsf(s interface{}, contains interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotContainsf(a.t, s, contains, msg, args...)\n}\n\n// NotEmpty asserts that the specified object is NOT empty.  I.e. not nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tif a.NotEmpty(obj) {\n//\t  assert.Equal(t, \"two\", obj[1])\n//\t}\nfunc (a *Assertions) NotEmpty(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEmpty(a.t, object, msgAndArgs...)\n}\n\n// NotEmptyf asserts that the specified object is NOT empty.  I.e. not nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tif a.NotEmptyf(obj, \"error message %s\", \"formatted\") {\n//\t  assert.Equal(t, \"two\", obj[1])\n//\t}\nfunc (a *Assertions) NotEmptyf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEmptyf(a.t, object, msg, args...)\n}\n\n// NotEqual asserts that the specified values are NOT equal.\n//\n//\ta.NotEqual(obj1, obj2)\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses).\nfunc (a *Assertions) NotEqual(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqual(a.t, expected, actual, msgAndArgs...)\n}\n\n// NotEqualValues asserts that two objects are not equal even when converted to the same type\n//\n//\ta.NotEqualValues(obj1, obj2)\nfunc (a *Assertions) NotEqualValues(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqualValues(a.t, expected, actual, msgAndArgs...)\n}\n\n// NotEqualValuesf asserts that two objects are not equal even when converted to the same type\n//\n//\ta.NotEqualValuesf(obj1, obj2, \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotEqualValuesf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqualValuesf(a.t, expected, actual, msg, args...)\n}\n\n// NotEqualf asserts that the specified values are NOT equal.\n//\n//\ta.NotEqualf(obj1, obj2, \"error message %s\", \"formatted\")\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses).\nfunc (a *Assertions) NotEqualf(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotEqualf(a.t, expected, actual, msg, args...)\n}\n\n// NotErrorIs asserts that at none of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc (a *Assertions) NotErrorIs(err error, target error, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotErrorIs(a.t, err, target, msgAndArgs...)\n}\n\n// NotErrorIsf asserts that at none of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc (a *Assertions) NotErrorIsf(err error, target error, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotErrorIsf(a.t, err, target, msg, args...)\n}\n\n// NotImplements asserts that an object does not implement the specified interface.\n//\n//\ta.NotImplements((*MyInterface)(nil), new(MyObject))\nfunc (a *Assertions) NotImplements(interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotImplements(a.t, interfaceObject, object, msgAndArgs...)\n}\n\n// NotImplementsf asserts that an object does not implement the specified interface.\n//\n//\ta.NotImplementsf((*MyInterface)(nil), new(MyObject), \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotImplementsf(interfaceObject interface{}, object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotImplementsf(a.t, interfaceObject, object, msg, args...)\n}\n\n// NotNil asserts that the specified object is not nil.\n//\n//\ta.NotNil(err)\nfunc (a *Assertions) NotNil(object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotNil(a.t, object, msgAndArgs...)\n}\n\n// NotNilf asserts that the specified object is not nil.\n//\n//\ta.NotNilf(err, \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotNilf(object interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotNilf(a.t, object, msg, args...)\n}\n\n// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic.\n//\n//\ta.NotPanics(func(){ RemainCalm() })\nfunc (a *Assertions) NotPanics(f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotPanics(a.t, f, msgAndArgs...)\n}\n\n// NotPanicsf asserts that the code inside the specified PanicTestFunc does NOT panic.\n//\n//\ta.NotPanicsf(func(){ RemainCalm() }, \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotPanicsf(f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotPanicsf(a.t, f, msg, args...)\n}\n\n// NotRegexp asserts that a specified regexp does not match a string.\n//\n//\ta.NotRegexp(regexp.MustCompile(\"starts\"), \"it's starting\")\n//\ta.NotRegexp(\"^start\", \"it's not starting\")\nfunc (a *Assertions) NotRegexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotRegexp(a.t, rx, str, msgAndArgs...)\n}\n\n// NotRegexpf asserts that a specified regexp does not match a string.\n//\n//\ta.NotRegexpf(regexp.MustCompile(\"starts\"), \"it's starting\", \"error message %s\", \"formatted\")\n//\ta.NotRegexpf(\"^start\", \"it's not starting\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotRegexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotRegexpf(a.t, rx, str, msg, args...)\n}\n\n// NotSame asserts that two pointers do not reference the same object.\n//\n//\ta.NotSame(ptr1, ptr2)\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc (a *Assertions) NotSame(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSame(a.t, expected, actual, msgAndArgs...)\n}\n\n// NotSamef asserts that two pointers do not reference the same object.\n//\n//\ta.NotSamef(ptr1, ptr2, \"error message %s\", \"formatted\")\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc (a *Assertions) NotSamef(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSamef(a.t, expected, actual, msg, args...)\n}\n\n// NotSubset asserts that the specified list(array, slice...) or map does NOT\n// contain all elements given in the specified subset list(array, slice...) or\n// map.\n//\n//\ta.NotSubset([1, 3, 4], [1, 2])\n//\ta.NotSubset({\"x\": 1, \"y\": 2}, {\"z\": 3})\nfunc (a *Assertions) NotSubset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSubset(a.t, list, subset, msgAndArgs...)\n}\n\n// NotSubsetf asserts that the specified list(array, slice...) or map does NOT\n// contain all elements given in the specified subset list(array, slice...) or\n// map.\n//\n//\ta.NotSubsetf([1, 3, 4], [1, 2], \"error message %s\", \"formatted\")\n//\ta.NotSubsetf({\"x\": 1, \"y\": 2}, {\"z\": 3}, \"error message %s\", \"formatted\")\nfunc (a *Assertions) NotSubsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotSubsetf(a.t, list, subset, msg, args...)\n}\n\n// NotZero asserts that i is not the zero value for its type.\nfunc (a *Assertions) NotZero(i interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotZero(a.t, i, msgAndArgs...)\n}\n\n// NotZerof asserts that i is not the zero value for its type.\nfunc (a *Assertions) NotZerof(i interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn NotZerof(a.t, i, msg, args...)\n}\n\n// Panics asserts that the code inside the specified PanicTestFunc panics.\n//\n//\ta.Panics(func(){ GoCrazy() })\nfunc (a *Assertions) Panics(f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Panics(a.t, f, msgAndArgs...)\n}\n\n// PanicsWithError asserts that the code inside the specified PanicTestFunc\n// panics, and that the recovered panic value is an error that satisfies the\n// EqualError comparison.\n//\n//\ta.PanicsWithError(\"crazy error\", func(){ GoCrazy() })\nfunc (a *Assertions) PanicsWithError(errString string, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithError(a.t, errString, f, msgAndArgs...)\n}\n\n// PanicsWithErrorf asserts that the code inside the specified PanicTestFunc\n// panics, and that the recovered panic value is an error that satisfies the\n// EqualError comparison.\n//\n//\ta.PanicsWithErrorf(\"crazy error\", func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc (a *Assertions) PanicsWithErrorf(errString string, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithErrorf(a.t, errString, f, msg, args...)\n}\n\n// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that\n// the recovered panic value equals the expected panic value.\n//\n//\ta.PanicsWithValue(\"crazy error\", func(){ GoCrazy() })\nfunc (a *Assertions) PanicsWithValue(expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithValue(a.t, expected, f, msgAndArgs...)\n}\n\n// PanicsWithValuef asserts that the code inside the specified PanicTestFunc panics, and that\n// the recovered panic value equals the expected panic value.\n//\n//\ta.PanicsWithValuef(\"crazy error\", func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc (a *Assertions) PanicsWithValuef(expected interface{}, f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn PanicsWithValuef(a.t, expected, f, msg, args...)\n}\n\n// Panicsf asserts that the code inside the specified PanicTestFunc panics.\n//\n//\ta.Panicsf(func(){ GoCrazy() }, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Panicsf(f PanicTestFunc, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Panicsf(a.t, f, msg, args...)\n}\n\n// Positive asserts that the specified element is positive\n//\n//\ta.Positive(1)\n//\ta.Positive(1.23)\nfunc (a *Assertions) Positive(e interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Positive(a.t, e, msgAndArgs...)\n}\n\n// Positivef asserts that the specified element is positive\n//\n//\ta.Positivef(1, \"error message %s\", \"formatted\")\n//\ta.Positivef(1.23, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Positivef(e interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Positivef(a.t, e, msg, args...)\n}\n\n// Regexp asserts that a specified regexp matches a string.\n//\n//\ta.Regexp(regexp.MustCompile(\"start\"), \"it's starting\")\n//\ta.Regexp(\"start...$\", \"it's not starting\")\nfunc (a *Assertions) Regexp(rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Regexp(a.t, rx, str, msgAndArgs...)\n}\n\n// Regexpf asserts that a specified regexp matches a string.\n//\n//\ta.Regexpf(regexp.MustCompile(\"start\"), \"it's starting\", \"error message %s\", \"formatted\")\n//\ta.Regexpf(\"start...$\", \"it's not starting\", \"error message %s\", \"formatted\")\nfunc (a *Assertions) Regexpf(rx interface{}, str interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Regexpf(a.t, rx, str, msg, args...)\n}\n\n// Same asserts that two pointers reference the same object.\n//\n//\ta.Same(ptr1, ptr2)\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc (a *Assertions) Same(expected interface{}, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Same(a.t, expected, actual, msgAndArgs...)\n}\n\n// Samef asserts that two pointers reference the same object.\n//\n//\ta.Samef(ptr1, ptr2, \"error message %s\", \"formatted\")\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc (a *Assertions) Samef(expected interface{}, actual interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Samef(a.t, expected, actual, msg, args...)\n}\n\n// Subset asserts that the specified list(array, slice...) or map contains all\n// elements given in the specified subset list(array, slice...) or map.\n//\n//\ta.Subset([1, 2, 3], [1, 2])\n//\ta.Subset({\"x\": 1, \"y\": 2}, {\"x\": 1})\nfunc (a *Assertions) Subset(list interface{}, subset interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Subset(a.t, list, subset, msgAndArgs...)\n}\n\n// Subsetf asserts that the specified list(array, slice...) or map contains all\n// elements given in the specified subset list(array, slice...) or map.\n//\n//\ta.Subsetf([1, 2, 3], [1, 2], \"error message %s\", \"formatted\")\n//\ta.Subsetf({\"x\": 1, \"y\": 2}, {\"x\": 1}, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Subsetf(list interface{}, subset interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Subsetf(a.t, list, subset, msg, args...)\n}\n\n// True asserts that the specified value is true.\n//\n//\ta.True(myBool)\nfunc (a *Assertions) True(value bool, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn True(a.t, value, msgAndArgs...)\n}\n\n// Truef asserts that the specified value is true.\n//\n//\ta.Truef(myBool, \"error message %s\", \"formatted\")\nfunc (a *Assertions) Truef(value bool, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Truef(a.t, value, msg, args...)\n}\n\n// WithinDuration asserts that the two times are within duration delta of each other.\n//\n//\ta.WithinDuration(time.Now(), time.Now(), 10*time.Second)\nfunc (a *Assertions) WithinDuration(expected time.Time, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinDuration(a.t, expected, actual, delta, msgAndArgs...)\n}\n\n// WithinDurationf asserts that the two times are within duration delta of each other.\n//\n//\ta.WithinDurationf(time.Now(), time.Now(), 10*time.Second, \"error message %s\", \"formatted\")\nfunc (a *Assertions) WithinDurationf(expected time.Time, actual time.Time, delta time.Duration, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinDurationf(a.t, expected, actual, delta, msg, args...)\n}\n\n// WithinRange asserts that a time is within a time range (inclusive).\n//\n//\ta.WithinRange(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second))\nfunc (a *Assertions) WithinRange(actual time.Time, start time.Time, end time.Time, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinRange(a.t, actual, start, end, msgAndArgs...)\n}\n\n// WithinRangef asserts that a time is within a time range (inclusive).\n//\n//\ta.WithinRangef(time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second), \"error message %s\", \"formatted\")\nfunc (a *Assertions) WithinRangef(actual time.Time, start time.Time, end time.Time, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn WithinRangef(a.t, actual, start, end, msg, args...)\n}\n\n// YAMLEq asserts that two YAML strings are equivalent.\nfunc (a *Assertions) YAMLEq(expected string, actual string, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn YAMLEq(a.t, expected, actual, msgAndArgs...)\n}\n\n// YAMLEqf asserts that two YAML strings are equivalent.\nfunc (a *Assertions) YAMLEqf(expected string, actual string, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn YAMLEqf(a.t, expected, actual, msg, args...)\n}\n\n// Zero asserts that i is the zero value for its type.\nfunc (a *Assertions) Zero(i interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Zero(a.t, i, msgAndArgs...)\n}\n\n// Zerof asserts that i is the zero value for its type.\nfunc (a *Assertions) Zerof(i interface{}, msg string, args ...interface{}) bool {\n\tif h, ok := a.t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Zerof(a.t, i, msg, args...)\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl",
    "content": "{{.CommentWithoutT \"a\"}}\nfunc (a *Assertions) {{.DocInfo.Name}}({{.Params}}) bool {\n\tif h, ok := a.t.(tHelper); ok { h.Helper() }\n\treturn {{.DocInfo.Name}}(a.t, {{.ForwardedParams}})\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertion_order.go",
    "content": "package assert\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// isOrdered checks that collection contains orderable elements.\nfunc isOrdered(t TestingT, object interface{}, allowedComparesResults []CompareType, failMessage string, msgAndArgs ...interface{}) bool {\n\tobjKind := reflect.TypeOf(object).Kind()\n\tif objKind != reflect.Slice && objKind != reflect.Array {\n\t\treturn false\n\t}\n\n\tobjValue := reflect.ValueOf(object)\n\tobjLen := objValue.Len()\n\n\tif objLen <= 1 {\n\t\treturn true\n\t}\n\n\tvalue := objValue.Index(0)\n\tvalueInterface := value.Interface()\n\tfirstValueKind := value.Kind()\n\n\tfor i := 1; i < objLen; i++ {\n\t\tprevValue := value\n\t\tprevValueInterface := valueInterface\n\n\t\tvalue = objValue.Index(i)\n\t\tvalueInterface = value.Interface()\n\n\t\tcompareResult, isComparable := compare(prevValueInterface, valueInterface, firstValueKind)\n\n\t\tif !isComparable {\n\t\t\treturn Fail(t, fmt.Sprintf(\"Can not compare type \\\"%s\\\" and \\\"%s\\\"\", reflect.TypeOf(value), reflect.TypeOf(prevValue)), msgAndArgs...)\n\t\t}\n\n\t\tif !containsValue(allowedComparesResults, compareResult) {\n\t\t\treturn Fail(t, fmt.Sprintf(failMessage, prevValue, value), msgAndArgs...)\n\t\t}\n\t}\n\n\treturn true\n}\n\n// IsIncreasing asserts that the collection is increasing\n//\n//\tassert.IsIncreasing(t, []int{1, 2, 3})\n//\tassert.IsIncreasing(t, []float{1, 2})\n//\tassert.IsIncreasing(t, []string{\"a\", \"b\"})\nfunc IsIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\treturn isOrdered(t, object, []CompareType{compareLess}, \"\\\"%v\\\" is not less than \\\"%v\\\"\", msgAndArgs...)\n}\n\n// IsNonIncreasing asserts that the collection is not increasing\n//\n//\tassert.IsNonIncreasing(t, []int{2, 1, 1})\n//\tassert.IsNonIncreasing(t, []float{2, 1})\n//\tassert.IsNonIncreasing(t, []string{\"b\", \"a\"})\nfunc IsNonIncreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\treturn isOrdered(t, object, []CompareType{compareEqual, compareGreater}, \"\\\"%v\\\" is not greater than or equal to \\\"%v\\\"\", msgAndArgs...)\n}\n\n// IsDecreasing asserts that the collection is decreasing\n//\n//\tassert.IsDecreasing(t, []int{2, 1, 0})\n//\tassert.IsDecreasing(t, []float{2, 1})\n//\tassert.IsDecreasing(t, []string{\"b\", \"a\"})\nfunc IsDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\treturn isOrdered(t, object, []CompareType{compareGreater}, \"\\\"%v\\\" is not greater than \\\"%v\\\"\", msgAndArgs...)\n}\n\n// IsNonDecreasing asserts that the collection is not decreasing\n//\n//\tassert.IsNonDecreasing(t, []int{1, 1, 2})\n//\tassert.IsNonDecreasing(t, []float{1, 2})\n//\tassert.IsNonDecreasing(t, []string{\"a\", \"b\"})\nfunc IsNonDecreasing(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\treturn isOrdered(t, object, []CompareType{compareLess, compareEqual}, \"\\\"%v\\\" is not less than or equal to \\\"%v\\\"\", msgAndArgs...)\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/assertions.go",
    "content": "package assert\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"os\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"runtime/debug\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"github.com/davecgh/go-spew/spew\"\n\t\"github.com/pmezard/go-difflib/difflib\"\n\t\"gopkg.in/yaml.v3\"\n)\n\n//go:generate sh -c \"cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_format.go.tmpl\"\n\n// TestingT is an interface wrapper around *testing.T\ntype TestingT interface {\n\tErrorf(format string, args ...interface{})\n}\n\n// ComparisonAssertionFunc is a common function prototype when comparing two values.  Can be useful\n// for table driven tests.\ntype ComparisonAssertionFunc func(TestingT, interface{}, interface{}, ...interface{}) bool\n\n// ValueAssertionFunc is a common function prototype when validating a single value.  Can be useful\n// for table driven tests.\ntype ValueAssertionFunc func(TestingT, interface{}, ...interface{}) bool\n\n// BoolAssertionFunc is a common function prototype when validating a bool value.  Can be useful\n// for table driven tests.\ntype BoolAssertionFunc func(TestingT, bool, ...interface{}) bool\n\n// ErrorAssertionFunc is a common function prototype when validating an error value.  Can be useful\n// for table driven tests.\ntype ErrorAssertionFunc func(TestingT, error, ...interface{}) bool\n\n// Comparison is a custom function that returns true on success and false on failure\ntype Comparison func() (success bool)\n\n/*\n\tHelper functions\n*/\n\n// ObjectsAreEqual determines if two objects are considered equal.\n//\n// This function does no assertion of any kind.\nfunc ObjectsAreEqual(expected, actual interface{}) bool {\n\tif expected == nil || actual == nil {\n\t\treturn expected == actual\n\t}\n\n\texp, ok := expected.([]byte)\n\tif !ok {\n\t\treturn reflect.DeepEqual(expected, actual)\n\t}\n\n\tact, ok := actual.([]byte)\n\tif !ok {\n\t\treturn false\n\t}\n\tif exp == nil || act == nil {\n\t\treturn exp == nil && act == nil\n\t}\n\treturn bytes.Equal(exp, act)\n}\n\n// copyExportedFields iterates downward through nested data structures and creates a copy\n// that only contains the exported struct fields.\nfunc copyExportedFields(expected interface{}) interface{} {\n\tif isNil(expected) {\n\t\treturn expected\n\t}\n\n\texpectedType := reflect.TypeOf(expected)\n\texpectedKind := expectedType.Kind()\n\texpectedValue := reflect.ValueOf(expected)\n\n\tswitch expectedKind {\n\tcase reflect.Struct:\n\t\tresult := reflect.New(expectedType).Elem()\n\t\tfor i := 0; i < expectedType.NumField(); i++ {\n\t\t\tfield := expectedType.Field(i)\n\t\t\tisExported := field.IsExported()\n\t\t\tif isExported {\n\t\t\t\tfieldValue := expectedValue.Field(i)\n\t\t\t\tif isNil(fieldValue) || isNil(fieldValue.Interface()) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tnewValue := copyExportedFields(fieldValue.Interface())\n\t\t\t\tresult.Field(i).Set(reflect.ValueOf(newValue))\n\t\t\t}\n\t\t}\n\t\treturn result.Interface()\n\n\tcase reflect.Ptr:\n\t\tresult := reflect.New(expectedType.Elem())\n\t\tunexportedRemoved := copyExportedFields(expectedValue.Elem().Interface())\n\t\tresult.Elem().Set(reflect.ValueOf(unexportedRemoved))\n\t\treturn result.Interface()\n\n\tcase reflect.Array, reflect.Slice:\n\t\tvar result reflect.Value\n\t\tif expectedKind == reflect.Array {\n\t\t\tresult = reflect.New(reflect.ArrayOf(expectedValue.Len(), expectedType.Elem())).Elem()\n\t\t} else {\n\t\t\tresult = reflect.MakeSlice(expectedType, expectedValue.Len(), expectedValue.Len())\n\t\t}\n\t\tfor i := 0; i < expectedValue.Len(); i++ {\n\t\t\tindex := expectedValue.Index(i)\n\t\t\tif isNil(index) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tunexportedRemoved := copyExportedFields(index.Interface())\n\t\t\tresult.Index(i).Set(reflect.ValueOf(unexportedRemoved))\n\t\t}\n\t\treturn result.Interface()\n\n\tcase reflect.Map:\n\t\tresult := reflect.MakeMap(expectedType)\n\t\tfor _, k := range expectedValue.MapKeys() {\n\t\t\tindex := expectedValue.MapIndex(k)\n\t\t\tunexportedRemoved := copyExportedFields(index.Interface())\n\t\t\tresult.SetMapIndex(k, reflect.ValueOf(unexportedRemoved))\n\t\t}\n\t\treturn result.Interface()\n\n\tdefault:\n\t\treturn expected\n\t}\n}\n\n// ObjectsExportedFieldsAreEqual determines if the exported (public) fields of two objects are\n// considered equal. This comparison of only exported fields is applied recursively to nested data\n// structures.\n//\n// This function does no assertion of any kind.\n//\n// Deprecated: Use [EqualExportedValues] instead.\nfunc ObjectsExportedFieldsAreEqual(expected, actual interface{}) bool {\n\texpectedCleaned := copyExportedFields(expected)\n\tactualCleaned := copyExportedFields(actual)\n\treturn ObjectsAreEqualValues(expectedCleaned, actualCleaned)\n}\n\n// ObjectsAreEqualValues gets whether two objects are equal, or if their\n// values are equal.\nfunc ObjectsAreEqualValues(expected, actual interface{}) bool {\n\tif ObjectsAreEqual(expected, actual) {\n\t\treturn true\n\t}\n\n\texpectedValue := reflect.ValueOf(expected)\n\tactualValue := reflect.ValueOf(actual)\n\tif !expectedValue.IsValid() || !actualValue.IsValid() {\n\t\treturn false\n\t}\n\n\texpectedType := expectedValue.Type()\n\tactualType := actualValue.Type()\n\tif !expectedType.ConvertibleTo(actualType) {\n\t\treturn false\n\t}\n\n\tif !isNumericType(expectedType) || !isNumericType(actualType) {\n\t\t// Attempt comparison after type conversion\n\t\treturn reflect.DeepEqual(\n\t\t\texpectedValue.Convert(actualType).Interface(), actual,\n\t\t)\n\t}\n\n\t// If BOTH values are numeric, there are chances of false positives due\n\t// to overflow or underflow. So, we need to make sure to always convert\n\t// the smaller type to a larger type before comparing.\n\tif expectedType.Size() >= actualType.Size() {\n\t\treturn actualValue.Convert(expectedType).Interface() == expected\n\t}\n\n\treturn expectedValue.Convert(actualType).Interface() == actual\n}\n\n// isNumericType returns true if the type is one of:\n// int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64,\n// float32, float64, complex64, complex128\nfunc isNumericType(t reflect.Type) bool {\n\treturn t.Kind() >= reflect.Int && t.Kind() <= reflect.Complex128\n}\n\n/* CallerInfo is necessary because the assert functions use the testing object\ninternally, causing it to print the file:line of the assert method, rather than where\nthe problem actually occurred in calling code.*/\n\n// CallerInfo returns an array of strings containing the file and line number\n// of each stack frame leading from the current test to the assert call that\n// failed.\nfunc CallerInfo() []string {\n\n\tvar pc uintptr\n\tvar ok bool\n\tvar file string\n\tvar line int\n\tvar name string\n\n\tcallers := []string{}\n\tfor i := 0; ; i++ {\n\t\tpc, file, line, ok = runtime.Caller(i)\n\t\tif !ok {\n\t\t\t// The breaks below failed to terminate the loop, and we ran off the\n\t\t\t// end of the call stack.\n\t\t\tbreak\n\t\t}\n\n\t\t// This is a huge edge case, but it will panic if this is the case, see #180\n\t\tif file == \"<autogenerated>\" {\n\t\t\tbreak\n\t\t}\n\n\t\tf := runtime.FuncForPC(pc)\n\t\tif f == nil {\n\t\t\tbreak\n\t\t}\n\t\tname = f.Name()\n\n\t\t// testing.tRunner is the standard library function that calls\n\t\t// tests. Subtests are called directly by tRunner, without going through\n\t\t// the Test/Benchmark/Example function that contains the t.Run calls, so\n\t\t// with subtests we should break when we hit tRunner, without adding it\n\t\t// to the list of callers.\n\t\tif name == \"testing.tRunner\" {\n\t\t\tbreak\n\t\t}\n\n\t\tparts := strings.Split(file, \"/\")\n\t\tif len(parts) > 1 {\n\t\t\tfilename := parts[len(parts)-1]\n\t\t\tdir := parts[len(parts)-2]\n\t\t\tif (dir != \"assert\" && dir != \"mock\" && dir != \"require\") || filename == \"mock_test.go\" {\n\t\t\t\tcallers = append(callers, fmt.Sprintf(\"%s:%d\", file, line))\n\t\t\t}\n\t\t}\n\n\t\t// Drop the package\n\t\tsegments := strings.Split(name, \".\")\n\t\tname = segments[len(segments)-1]\n\t\tif isTest(name, \"Test\") ||\n\t\t\tisTest(name, \"Benchmark\") ||\n\t\t\tisTest(name, \"Example\") {\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn callers\n}\n\n// Stolen from the `go test` tool.\n// isTest tells whether name looks like a test (or benchmark, according to prefix).\n// It is a Test (say) if there is a character after Test that is not a lower-case letter.\n// We don't want TesticularCancer.\nfunc isTest(name, prefix string) bool {\n\tif !strings.HasPrefix(name, prefix) {\n\t\treturn false\n\t}\n\tif len(name) == len(prefix) { // \"Test\" is ok\n\t\treturn true\n\t}\n\tr, _ := utf8.DecodeRuneInString(name[len(prefix):])\n\treturn !unicode.IsLower(r)\n}\n\nfunc messageFromMsgAndArgs(msgAndArgs ...interface{}) string {\n\tif len(msgAndArgs) == 0 || msgAndArgs == nil {\n\t\treturn \"\"\n\t}\n\tif len(msgAndArgs) == 1 {\n\t\tmsg := msgAndArgs[0]\n\t\tif msgAsStr, ok := msg.(string); ok {\n\t\t\treturn msgAsStr\n\t\t}\n\t\treturn fmt.Sprintf(\"%+v\", msg)\n\t}\n\tif len(msgAndArgs) > 1 {\n\t\treturn fmt.Sprintf(msgAndArgs[0].(string), msgAndArgs[1:]...)\n\t}\n\treturn \"\"\n}\n\n// Aligns the provided message so that all lines after the first line start at the same location as the first line.\n// Assumes that the first line starts at the correct location (after carriage return, tab, label, spacer and tab).\n// The longestLabelLen parameter specifies the length of the longest label in the output (required because this is the\n// basis on which the alignment occurs).\nfunc indentMessageLines(message string, longestLabelLen int) string {\n\toutBuf := new(bytes.Buffer)\n\n\tfor i, scanner := 0, bufio.NewScanner(strings.NewReader(message)); scanner.Scan(); i++ {\n\t\t// no need to align first line because it starts at the correct location (after the label)\n\t\tif i != 0 {\n\t\t\t// append alignLen+1 spaces to align with \"{{longestLabel}}:\" before adding tab\n\t\t\toutBuf.WriteString(\"\\n\\t\" + strings.Repeat(\" \", longestLabelLen+1) + \"\\t\")\n\t\t}\n\t\toutBuf.WriteString(scanner.Text())\n\t}\n\n\treturn outBuf.String()\n}\n\ntype failNower interface {\n\tFailNow()\n}\n\n// FailNow fails test\nfunc FailNow(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tFail(t, failureMessage, msgAndArgs...)\n\n\t// We cannot extend TestingT with FailNow() and\n\t// maintain backwards compatibility, so we fallback\n\t// to panicking when FailNow is not available in\n\t// TestingT.\n\t// See issue #263\n\n\tif t, ok := t.(failNower); ok {\n\t\tt.FailNow()\n\t} else {\n\t\tpanic(\"test failed and t is missing `FailNow()`\")\n\t}\n\treturn false\n}\n\n// Fail reports a failure through\nfunc Fail(t TestingT, failureMessage string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tcontent := []labeledContent{\n\t\t{\"Error Trace\", strings.Join(CallerInfo(), \"\\n\\t\\t\\t\")},\n\t\t{\"Error\", failureMessage},\n\t}\n\n\t// Add test name if the Go version supports it\n\tif n, ok := t.(interface {\n\t\tName() string\n\t}); ok {\n\t\tcontent = append(content, labeledContent{\"Test\", n.Name()})\n\t}\n\n\tmessage := messageFromMsgAndArgs(msgAndArgs...)\n\tif len(message) > 0 {\n\t\tcontent = append(content, labeledContent{\"Messages\", message})\n\t}\n\n\tt.Errorf(\"\\n%s\", \"\"+labeledOutput(content...))\n\n\treturn false\n}\n\ntype labeledContent struct {\n\tlabel   string\n\tcontent string\n}\n\n// labeledOutput returns a string consisting of the provided labeledContent. Each labeled output is appended in the following manner:\n//\n//\t\\t{{label}}:{{align_spaces}}\\t{{content}}\\n\n//\n// The initial carriage return is required to undo/erase any padding added by testing.T.Errorf. The \"\\t{{label}}:\" is for the label.\n// If a label is shorter than the longest label provided, padding spaces are added to make all the labels match in length. Once this\n// alignment is achieved, \"\\t{{content}}\\n\" is added for the output.\n//\n// If the content of the labeledOutput contains line breaks, the subsequent lines are aligned so that they start at the same location as the first line.\nfunc labeledOutput(content ...labeledContent) string {\n\tlongestLabel := 0\n\tfor _, v := range content {\n\t\tif len(v.label) > longestLabel {\n\t\t\tlongestLabel = len(v.label)\n\t\t}\n\t}\n\tvar output string\n\tfor _, v := range content {\n\t\toutput += \"\\t\" + v.label + \":\" + strings.Repeat(\" \", longestLabel-len(v.label)) + \"\\t\" + indentMessageLines(v.content, longestLabel) + \"\\n\"\n\t}\n\treturn output\n}\n\n// Implements asserts that an object is implemented by the specified interface.\n//\n//\tassert.Implements(t, (*MyInterface)(nil), new(MyObject))\nfunc Implements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tinterfaceType := reflect.TypeOf(interfaceObject).Elem()\n\n\tif object == nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Cannot check if nil implements %v\", interfaceType), msgAndArgs...)\n\t}\n\tif !reflect.TypeOf(object).Implements(interfaceType) {\n\t\treturn Fail(t, fmt.Sprintf(\"%T must implement %v\", object, interfaceType), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// NotImplements asserts that an object does not implement the specified interface.\n//\n//\tassert.NotImplements(t, (*MyInterface)(nil), new(MyObject))\nfunc NotImplements(t TestingT, interfaceObject interface{}, object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tinterfaceType := reflect.TypeOf(interfaceObject).Elem()\n\n\tif object == nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Cannot check if nil does not implement %v\", interfaceType), msgAndArgs...)\n\t}\n\tif reflect.TypeOf(object).Implements(interfaceType) {\n\t\treturn Fail(t, fmt.Sprintf(\"%T implements %v\", object, interfaceType), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// IsType asserts that the specified objects are of the same type.\nfunc IsType(t TestingT, expectedType interface{}, object interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif !ObjectsAreEqual(reflect.TypeOf(object), reflect.TypeOf(expectedType)) {\n\t\treturn Fail(t, fmt.Sprintf(\"Object expected to be of type %v, but was %v\", reflect.TypeOf(expectedType), reflect.TypeOf(object)), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// Equal asserts that two objects are equal.\n//\n//\tassert.Equal(t, 123, 123)\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses). Function equality\n// cannot be determined and will always fail.\nfunc Equal(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif err := validateEqualArgs(expected, actual); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Invalid operation: %#v == %#v (%s)\",\n\t\t\texpected, actual, err), msgAndArgs...)\n\t}\n\n\tif !ObjectsAreEqual(expected, actual) {\n\t\tdiff := diff(expected, actual)\n\t\texpected, actual = formatUnequalValues(expected, actual)\n\t\treturn Fail(t, fmt.Sprintf(\"Not equal: \\n\"+\n\t\t\t\"expected: %s\\n\"+\n\t\t\t\"actual  : %s%s\", expected, actual, diff), msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// validateEqualArgs checks whether provided arguments can be safely used in the\n// Equal/NotEqual functions.\nfunc validateEqualArgs(expected, actual interface{}) error {\n\tif expected == nil && actual == nil {\n\t\treturn nil\n\t}\n\n\tif isFunction(expected) || isFunction(actual) {\n\t\treturn errors.New(\"cannot take func type as argument\")\n\t}\n\treturn nil\n}\n\n// Same asserts that two pointers reference the same object.\n//\n//\tassert.Same(t, ptr1, ptr2)\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc Same(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif !samePointers(expected, actual) {\n\t\treturn Fail(t, fmt.Sprintf(\"Not same: \\n\"+\n\t\t\t\"expected: %p %#v\\n\"+\n\t\t\t\"actual  : %p %#v\", expected, expected, actual, actual), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// NotSame asserts that two pointers do not reference the same object.\n//\n//\tassert.NotSame(t, ptr1, ptr2)\n//\n// Both arguments must be pointer variables. Pointer variable sameness is\n// determined based on the equality of both type and value.\nfunc NotSame(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif samePointers(expected, actual) {\n\t\treturn Fail(t, fmt.Sprintf(\n\t\t\t\"Expected and actual point to the same object: %p %#v\",\n\t\t\texpected, expected), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// samePointers compares two generic interface objects and returns whether\n// they point to the same object\nfunc samePointers(first, second interface{}) bool {\n\tfirstPtr, secondPtr := reflect.ValueOf(first), reflect.ValueOf(second)\n\tif firstPtr.Kind() != reflect.Ptr || secondPtr.Kind() != reflect.Ptr {\n\t\treturn false\n\t}\n\n\tfirstType, secondType := reflect.TypeOf(first), reflect.TypeOf(second)\n\tif firstType != secondType {\n\t\treturn false\n\t}\n\n\t// compare pointer addresses\n\treturn first == second\n}\n\n// formatUnequalValues takes two values of arbitrary types and returns string\n// representations appropriate to be presented to the user.\n//\n// If the values are not of like type, the returned strings will be prefixed\n// with the type name, and the value will be enclosed in parentheses similar\n// to a type conversion in the Go grammar.\nfunc formatUnequalValues(expected, actual interface{}) (e string, a string) {\n\tif reflect.TypeOf(expected) != reflect.TypeOf(actual) {\n\t\treturn fmt.Sprintf(\"%T(%s)\", expected, truncatingFormat(expected)),\n\t\t\tfmt.Sprintf(\"%T(%s)\", actual, truncatingFormat(actual))\n\t}\n\tswitch expected.(type) {\n\tcase time.Duration:\n\t\treturn fmt.Sprintf(\"%v\", expected), fmt.Sprintf(\"%v\", actual)\n\t}\n\treturn truncatingFormat(expected), truncatingFormat(actual)\n}\n\n// truncatingFormat formats the data and truncates it if it's too long.\n//\n// This helps keep formatted error messages lines from exceeding the\n// bufio.MaxScanTokenSize max line length that the go testing framework imposes.\nfunc truncatingFormat(data interface{}) string {\n\tvalue := fmt.Sprintf(\"%#v\", data)\n\tmax := bufio.MaxScanTokenSize - 100 // Give us some space the type info too if needed.\n\tif len(value) > max {\n\t\tvalue = value[0:max] + \"<... truncated>\"\n\t}\n\treturn value\n}\n\n// EqualValues asserts that two objects are equal or convertible to the same types\n// and equal.\n//\n//\tassert.EqualValues(t, uint32(123), int32(123))\nfunc EqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif !ObjectsAreEqualValues(expected, actual) {\n\t\tdiff := diff(expected, actual)\n\t\texpected, actual = formatUnequalValues(expected, actual)\n\t\treturn Fail(t, fmt.Sprintf(\"Not equal: \\n\"+\n\t\t\t\"expected: %s\\n\"+\n\t\t\t\"actual  : %s%s\", expected, actual, diff), msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// EqualExportedValues asserts that the types of two objects are equal and their public\n// fields are also equal. This is useful for comparing structs that have private fields\n// that could potentially differ.\n//\n//\t type S struct {\n//\t\tExported     \tint\n//\t\tnotExported   \tint\n//\t }\n//\t assert.EqualExportedValues(t, S{1, 2}, S{1, 3}) => true\n//\t assert.EqualExportedValues(t, S{1, 2}, S{2, 3}) => false\nfunc EqualExportedValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\taType := reflect.TypeOf(expected)\n\tbType := reflect.TypeOf(actual)\n\n\tif aType != bType {\n\t\treturn Fail(t, fmt.Sprintf(\"Types expected to match exactly\\n\\t%v != %v\", aType, bType), msgAndArgs...)\n\t}\n\n\tif aType.Kind() == reflect.Ptr {\n\t\taType = aType.Elem()\n\t}\n\tif bType.Kind() == reflect.Ptr {\n\t\tbType = bType.Elem()\n\t}\n\n\tif aType.Kind() != reflect.Struct {\n\t\treturn Fail(t, fmt.Sprintf(\"Types expected to both be struct or pointer to struct \\n\\t%v != %v\", aType.Kind(), reflect.Struct), msgAndArgs...)\n\t}\n\n\tif bType.Kind() != reflect.Struct {\n\t\treturn Fail(t, fmt.Sprintf(\"Types expected to both be struct or pointer to struct \\n\\t%v != %v\", bType.Kind(), reflect.Struct), msgAndArgs...)\n\t}\n\n\texpected = copyExportedFields(expected)\n\tactual = copyExportedFields(actual)\n\n\tif !ObjectsAreEqualValues(expected, actual) {\n\t\tdiff := diff(expected, actual)\n\t\texpected, actual = formatUnequalValues(expected, actual)\n\t\treturn Fail(t, fmt.Sprintf(\"Not equal (comparing only exported fields): \\n\"+\n\t\t\t\"expected: %s\\n\"+\n\t\t\t\"actual  : %s%s\", expected, actual, diff), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// Exactly asserts that two objects are equal in value and type.\n//\n//\tassert.Exactly(t, int32(123), int64(123))\nfunc Exactly(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\taType := reflect.TypeOf(expected)\n\tbType := reflect.TypeOf(actual)\n\n\tif aType != bType {\n\t\treturn Fail(t, fmt.Sprintf(\"Types expected to match exactly\\n\\t%v != %v\", aType, bType), msgAndArgs...)\n\t}\n\n\treturn Equal(t, expected, actual, msgAndArgs...)\n\n}\n\n// NotNil asserts that the specified object is not nil.\n//\n//\tassert.NotNil(t, err)\nfunc NotNil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\tif !isNil(object) {\n\t\treturn true\n\t}\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Fail(t, \"Expected value not to be nil.\", msgAndArgs...)\n}\n\n// isNil checks if a specified object is nil or not, without Failing.\nfunc isNil(object interface{}) bool {\n\tif object == nil {\n\t\treturn true\n\t}\n\n\tvalue := reflect.ValueOf(object)\n\tswitch value.Kind() {\n\tcase\n\t\treflect.Chan, reflect.Func,\n\t\treflect.Interface, reflect.Map,\n\t\treflect.Ptr, reflect.Slice, reflect.UnsafePointer:\n\n\t\treturn value.IsNil()\n\t}\n\n\treturn false\n}\n\n// Nil asserts that the specified object is nil.\n//\n//\tassert.Nil(t, err)\nfunc Nil(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\tif isNil(object) {\n\t\treturn true\n\t}\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\treturn Fail(t, fmt.Sprintf(\"Expected nil, but got: %#v\", object), msgAndArgs...)\n}\n\n// isEmpty gets whether the specified object is considered empty or not.\nfunc isEmpty(object interface{}) bool {\n\n\t// get nil case out of the way\n\tif object == nil {\n\t\treturn true\n\t}\n\n\tobjValue := reflect.ValueOf(object)\n\n\tswitch objValue.Kind() {\n\t// collection types are empty when they have no element\n\tcase reflect.Chan, reflect.Map, reflect.Slice:\n\t\treturn objValue.Len() == 0\n\t// pointers are empty if nil or if the value they point to is empty\n\tcase reflect.Ptr:\n\t\tif objValue.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\tderef := objValue.Elem().Interface()\n\t\treturn isEmpty(deref)\n\t// for all other types, compare against the zero value\n\t// array types are empty when they match their zero-initialized state\n\tdefault:\n\t\tzero := reflect.Zero(objValue.Type())\n\t\treturn reflect.DeepEqual(object, zero.Interface())\n\t}\n}\n\n// Empty asserts that the specified object is empty.  I.e. nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tassert.Empty(t, obj)\nfunc Empty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\tpass := isEmpty(object)\n\tif !pass {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\tFail(t, fmt.Sprintf(\"Should be empty, but was %v\", object), msgAndArgs...)\n\t}\n\n\treturn pass\n\n}\n\n// NotEmpty asserts that the specified object is NOT empty.  I.e. not nil, \"\", false, 0 or either\n// a slice or a channel with len == 0.\n//\n//\tif assert.NotEmpty(t, obj) {\n//\t  assert.Equal(t, \"two\", obj[1])\n//\t}\nfunc NotEmpty(t TestingT, object interface{}, msgAndArgs ...interface{}) bool {\n\tpass := !isEmpty(object)\n\tif !pass {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\tFail(t, fmt.Sprintf(\"Should NOT be empty, but was %v\", object), msgAndArgs...)\n\t}\n\n\treturn pass\n\n}\n\n// getLen tries to get the length of an object.\n// It returns (0, false) if impossible.\nfunc getLen(x interface{}) (length int, ok bool) {\n\tv := reflect.ValueOf(x)\n\tdefer func() {\n\t\tok = recover() == nil\n\t}()\n\treturn v.Len(), true\n}\n\n// Len asserts that the specified object has specific length.\n// Len also fails if the object has a type that len() not accept.\n//\n//\tassert.Len(t, mySlice, 3)\nfunc Len(t TestingT, object interface{}, length int, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tl, ok := getLen(object)\n\tif !ok {\n\t\treturn Fail(t, fmt.Sprintf(\"\\\"%v\\\" could not be applied builtin len()\", object), msgAndArgs...)\n\t}\n\n\tif l != length {\n\t\treturn Fail(t, fmt.Sprintf(\"\\\"%v\\\" should have %d item(s), but has %d\", object, length, l), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// True asserts that the specified value is true.\n//\n//\tassert.True(t, myBool)\nfunc True(t TestingT, value bool, msgAndArgs ...interface{}) bool {\n\tif !value {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\treturn Fail(t, \"Should be true\", msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// False asserts that the specified value is false.\n//\n//\tassert.False(t, myBool)\nfunc False(t TestingT, value bool, msgAndArgs ...interface{}) bool {\n\tif value {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\treturn Fail(t, \"Should be false\", msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// NotEqual asserts that the specified values are NOT equal.\n//\n//\tassert.NotEqual(t, obj1, obj2)\n//\n// Pointer variable equality is determined based on the equality of the\n// referenced values (as opposed to the memory addresses).\nfunc NotEqual(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif err := validateEqualArgs(expected, actual); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Invalid operation: %#v != %#v (%s)\",\n\t\t\texpected, actual, err), msgAndArgs...)\n\t}\n\n\tif ObjectsAreEqual(expected, actual) {\n\t\treturn Fail(t, fmt.Sprintf(\"Should not be: %#v\\n\", actual), msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// NotEqualValues asserts that two objects are not equal even when converted to the same type\n//\n//\tassert.NotEqualValues(t, obj1, obj2)\nfunc NotEqualValues(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif ObjectsAreEqualValues(expected, actual) {\n\t\treturn Fail(t, fmt.Sprintf(\"Should not be: %#v\\n\", actual), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// containsElement try loop over the list check if the list includes the element.\n// return (false, false) if impossible.\n// return (true, false) if element was not found.\n// return (true, true) if element was found.\nfunc containsElement(list interface{}, element interface{}) (ok, found bool) {\n\n\tlistValue := reflect.ValueOf(list)\n\tlistType := reflect.TypeOf(list)\n\tif listType == nil {\n\t\treturn false, false\n\t}\n\tlistKind := listType.Kind()\n\tdefer func() {\n\t\tif e := recover(); e != nil {\n\t\t\tok = false\n\t\t\tfound = false\n\t\t}\n\t}()\n\n\tif listKind == reflect.String {\n\t\telementValue := reflect.ValueOf(element)\n\t\treturn true, strings.Contains(listValue.String(), elementValue.String())\n\t}\n\n\tif listKind == reflect.Map {\n\t\tmapKeys := listValue.MapKeys()\n\t\tfor i := 0; i < len(mapKeys); i++ {\n\t\t\tif ObjectsAreEqual(mapKeys[i].Interface(), element) {\n\t\t\t\treturn true, true\n\t\t\t}\n\t\t}\n\t\treturn true, false\n\t}\n\n\tfor i := 0; i < listValue.Len(); i++ {\n\t\tif ObjectsAreEqual(listValue.Index(i).Interface(), element) {\n\t\t\treturn true, true\n\t\t}\n\t}\n\treturn true, false\n\n}\n\n// Contains asserts that the specified string, list(array, slice...) or map contains the\n// specified substring or element.\n//\n//\tassert.Contains(t, \"Hello World\", \"World\")\n//\tassert.Contains(t, [\"Hello\", \"World\"], \"World\")\n//\tassert.Contains(t, {\"Hello\": \"World\"}, \"Hello\")\nfunc Contains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tok, found := containsElement(s, contains)\n\tif !ok {\n\t\treturn Fail(t, fmt.Sprintf(\"%#v could not be applied builtin len()\", s), msgAndArgs...)\n\t}\n\tif !found {\n\t\treturn Fail(t, fmt.Sprintf(\"%#v does not contain %#v\", s, contains), msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// NotContains asserts that the specified string, list(array, slice...) or map does NOT contain the\n// specified substring or element.\n//\n//\tassert.NotContains(t, \"Hello World\", \"Earth\")\n//\tassert.NotContains(t, [\"Hello\", \"World\"], \"Earth\")\n//\tassert.NotContains(t, {\"Hello\": \"World\"}, \"Earth\")\nfunc NotContains(t TestingT, s, contains interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tok, found := containsElement(s, contains)\n\tif !ok {\n\t\treturn Fail(t, fmt.Sprintf(\"%#v could not be applied builtin len()\", s), msgAndArgs...)\n\t}\n\tif found {\n\t\treturn Fail(t, fmt.Sprintf(\"%#v should not contain %#v\", s, contains), msgAndArgs...)\n\t}\n\n\treturn true\n\n}\n\n// Subset asserts that the specified list(array, slice...) or map contains all\n// elements given in the specified subset list(array, slice...) or map.\n//\n//\tassert.Subset(t, [1, 2, 3], [1, 2])\n//\tassert.Subset(t, {\"x\": 1, \"y\": 2}, {\"x\": 1})\nfunc Subset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif subset == nil {\n\t\treturn true // we consider nil to be equal to the nil set\n\t}\n\n\tlistKind := reflect.TypeOf(list).Kind()\n\tif listKind != reflect.Array && listKind != reflect.Slice && listKind != reflect.Map {\n\t\treturn Fail(t, fmt.Sprintf(\"%q has an unsupported type %s\", list, listKind), msgAndArgs...)\n\t}\n\n\tsubsetKind := reflect.TypeOf(subset).Kind()\n\tif subsetKind != reflect.Array && subsetKind != reflect.Slice && listKind != reflect.Map {\n\t\treturn Fail(t, fmt.Sprintf(\"%q has an unsupported type %s\", subset, subsetKind), msgAndArgs...)\n\t}\n\n\tif subsetKind == reflect.Map && listKind == reflect.Map {\n\t\tsubsetMap := reflect.ValueOf(subset)\n\t\tactualMap := reflect.ValueOf(list)\n\n\t\tfor _, k := range subsetMap.MapKeys() {\n\t\t\tev := subsetMap.MapIndex(k)\n\t\t\tav := actualMap.MapIndex(k)\n\n\t\t\tif !av.IsValid() {\n\t\t\t\treturn Fail(t, fmt.Sprintf(\"%#v does not contain %#v\", list, subset), msgAndArgs...)\n\t\t\t}\n\t\t\tif !ObjectsAreEqual(ev.Interface(), av.Interface()) {\n\t\t\t\treturn Fail(t, fmt.Sprintf(\"%#v does not contain %#v\", list, subset), msgAndArgs...)\n\t\t\t}\n\t\t}\n\n\t\treturn true\n\t}\n\n\tsubsetList := reflect.ValueOf(subset)\n\tfor i := 0; i < subsetList.Len(); i++ {\n\t\telement := subsetList.Index(i).Interface()\n\t\tok, found := containsElement(list, element)\n\t\tif !ok {\n\t\t\treturn Fail(t, fmt.Sprintf(\"%#v could not be applied builtin len()\", list), msgAndArgs...)\n\t\t}\n\t\tif !found {\n\t\t\treturn Fail(t, fmt.Sprintf(\"%#v does not contain %#v\", list, element), msgAndArgs...)\n\t\t}\n\t}\n\n\treturn true\n}\n\n// NotSubset asserts that the specified list(array, slice...) or map does NOT\n// contain all elements given in the specified subset list(array, slice...) or\n// map.\n//\n//\tassert.NotSubset(t, [1, 3, 4], [1, 2])\n//\tassert.NotSubset(t, {\"x\": 1, \"y\": 2}, {\"z\": 3})\nfunc NotSubset(t TestingT, list, subset interface{}, msgAndArgs ...interface{}) (ok bool) {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif subset == nil {\n\t\treturn Fail(t, \"nil is the empty set which is a subset of every set\", msgAndArgs...)\n\t}\n\n\tlistKind := reflect.TypeOf(list).Kind()\n\tif listKind != reflect.Array && listKind != reflect.Slice && listKind != reflect.Map {\n\t\treturn Fail(t, fmt.Sprintf(\"%q has an unsupported type %s\", list, listKind), msgAndArgs...)\n\t}\n\n\tsubsetKind := reflect.TypeOf(subset).Kind()\n\tif subsetKind != reflect.Array && subsetKind != reflect.Slice && listKind != reflect.Map {\n\t\treturn Fail(t, fmt.Sprintf(\"%q has an unsupported type %s\", subset, subsetKind), msgAndArgs...)\n\t}\n\n\tif subsetKind == reflect.Map && listKind == reflect.Map {\n\t\tsubsetMap := reflect.ValueOf(subset)\n\t\tactualMap := reflect.ValueOf(list)\n\n\t\tfor _, k := range subsetMap.MapKeys() {\n\t\t\tev := subsetMap.MapIndex(k)\n\t\t\tav := actualMap.MapIndex(k)\n\n\t\t\tif !av.IsValid() {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif !ObjectsAreEqual(ev.Interface(), av.Interface()) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\n\t\treturn Fail(t, fmt.Sprintf(\"%q is a subset of %q\", subset, list), msgAndArgs...)\n\t}\n\n\tsubsetList := reflect.ValueOf(subset)\n\tfor i := 0; i < subsetList.Len(); i++ {\n\t\telement := subsetList.Index(i).Interface()\n\t\tok, found := containsElement(list, element)\n\t\tif !ok {\n\t\t\treturn Fail(t, fmt.Sprintf(\"\\\"%s\\\" could not be applied builtin len()\", list), msgAndArgs...)\n\t\t}\n\t\tif !found {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn Fail(t, fmt.Sprintf(\"%q is a subset of %q\", subset, list), msgAndArgs...)\n}\n\n// ElementsMatch asserts that the specified listA(array, slice...) is equal to specified\n// listB(array, slice...) ignoring the order of the elements. If there are duplicate elements,\n// the number of appearances of each of them in both lists should match.\n//\n// assert.ElementsMatch(t, [1, 3, 2, 3], [1, 3, 3, 2])\nfunc ElementsMatch(t TestingT, listA, listB interface{}, msgAndArgs ...interface{}) (ok bool) {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif isEmpty(listA) && isEmpty(listB) {\n\t\treturn true\n\t}\n\n\tif !isList(t, listA, msgAndArgs...) || !isList(t, listB, msgAndArgs...) {\n\t\treturn false\n\t}\n\n\textraA, extraB := diffLists(listA, listB)\n\n\tif len(extraA) == 0 && len(extraB) == 0 {\n\t\treturn true\n\t}\n\n\treturn Fail(t, formatListDiff(listA, listB, extraA, extraB), msgAndArgs...)\n}\n\n// isList checks that the provided value is array or slice.\nfunc isList(t TestingT, list interface{}, msgAndArgs ...interface{}) (ok bool) {\n\tkind := reflect.TypeOf(list).Kind()\n\tif kind != reflect.Array && kind != reflect.Slice {\n\t\treturn Fail(t, fmt.Sprintf(\"%q has an unsupported type %s, expecting array or slice\", list, kind),\n\t\t\tmsgAndArgs...)\n\t}\n\treturn true\n}\n\n// diffLists diffs two arrays/slices and returns slices of elements that are only in A and only in B.\n// If some element is present multiple times, each instance is counted separately (e.g. if something is 2x in A and\n// 5x in B, it will be 0x in extraA and 3x in extraB). The order of items in both lists is ignored.\nfunc diffLists(listA, listB interface{}) (extraA, extraB []interface{}) {\n\taValue := reflect.ValueOf(listA)\n\tbValue := reflect.ValueOf(listB)\n\n\taLen := aValue.Len()\n\tbLen := bValue.Len()\n\n\t// Mark indexes in bValue that we already used\n\tvisited := make([]bool, bLen)\n\tfor i := 0; i < aLen; i++ {\n\t\telement := aValue.Index(i).Interface()\n\t\tfound := false\n\t\tfor j := 0; j < bLen; j++ {\n\t\t\tif visited[j] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif ObjectsAreEqual(bValue.Index(j).Interface(), element) {\n\t\t\t\tvisited[j] = true\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\textraA = append(extraA, element)\n\t\t}\n\t}\n\n\tfor j := 0; j < bLen; j++ {\n\t\tif visited[j] {\n\t\t\tcontinue\n\t\t}\n\t\textraB = append(extraB, bValue.Index(j).Interface())\n\t}\n\n\treturn\n}\n\nfunc formatListDiff(listA, listB interface{}, extraA, extraB []interface{}) string {\n\tvar msg bytes.Buffer\n\n\tmsg.WriteString(\"elements differ\")\n\tif len(extraA) > 0 {\n\t\tmsg.WriteString(\"\\n\\nextra elements in list A:\\n\")\n\t\tmsg.WriteString(spewConfig.Sdump(extraA))\n\t}\n\tif len(extraB) > 0 {\n\t\tmsg.WriteString(\"\\n\\nextra elements in list B:\\n\")\n\t\tmsg.WriteString(spewConfig.Sdump(extraB))\n\t}\n\tmsg.WriteString(\"\\n\\nlistA:\\n\")\n\tmsg.WriteString(spewConfig.Sdump(listA))\n\tmsg.WriteString(\"\\n\\nlistB:\\n\")\n\tmsg.WriteString(spewConfig.Sdump(listB))\n\n\treturn msg.String()\n}\n\n// Condition uses a Comparison to assert a complex condition.\nfunc Condition(t TestingT, comp Comparison, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tresult := comp()\n\tif !result {\n\t\tFail(t, \"Condition failed!\", msgAndArgs...)\n\t}\n\treturn result\n}\n\n// PanicTestFunc defines a func that should be passed to the assert.Panics and assert.NotPanics\n// methods, and represents a simple func that takes no arguments, and returns nothing.\ntype PanicTestFunc func()\n\n// didPanic returns true if the function passed to it panics. Otherwise, it returns false.\nfunc didPanic(f PanicTestFunc) (didPanic bool, message interface{}, stack string) {\n\tdidPanic = true\n\n\tdefer func() {\n\t\tmessage = recover()\n\t\tif didPanic {\n\t\t\tstack = string(debug.Stack())\n\t\t}\n\t}()\n\n\t// call the target function\n\tf()\n\tdidPanic = false\n\n\treturn\n}\n\n// Panics asserts that the code inside the specified PanicTestFunc panics.\n//\n//\tassert.Panics(t, func(){ GoCrazy() })\nfunc Panics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif funcDidPanic, panicValue, _ := didPanic(f); !funcDidPanic {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should panic\\n\\tPanic value:\\t%#v\", f, panicValue), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// PanicsWithValue asserts that the code inside the specified PanicTestFunc panics, and that\n// the recovered panic value equals the expected panic value.\n//\n//\tassert.PanicsWithValue(t, \"crazy error\", func(){ GoCrazy() })\nfunc PanicsWithValue(t TestingT, expected interface{}, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tfuncDidPanic, panicValue, panickedStack := didPanic(f)\n\tif !funcDidPanic {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should panic\\n\\tPanic value:\\t%#v\", f, panicValue), msgAndArgs...)\n\t}\n\tif panicValue != expected {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should panic with value:\\t%#v\\n\\tPanic value:\\t%#v\\n\\tPanic stack:\\t%s\", f, expected, panicValue, panickedStack), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// PanicsWithError asserts that the code inside the specified PanicTestFunc\n// panics, and that the recovered panic value is an error that satisfies the\n// EqualError comparison.\n//\n//\tassert.PanicsWithError(t, \"crazy error\", func(){ GoCrazy() })\nfunc PanicsWithError(t TestingT, errString string, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tfuncDidPanic, panicValue, panickedStack := didPanic(f)\n\tif !funcDidPanic {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should panic\\n\\tPanic value:\\t%#v\", f, panicValue), msgAndArgs...)\n\t}\n\tpanicErr, ok := panicValue.(error)\n\tif !ok || panicErr.Error() != errString {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should panic with error message:\\t%#v\\n\\tPanic value:\\t%#v\\n\\tPanic stack:\\t%s\", f, errString, panicValue, panickedStack), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// NotPanics asserts that the code inside the specified PanicTestFunc does NOT panic.\n//\n//\tassert.NotPanics(t, func(){ RemainCalm() })\nfunc NotPanics(t TestingT, f PanicTestFunc, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif funcDidPanic, panicValue, panickedStack := didPanic(f); funcDidPanic {\n\t\treturn Fail(t, fmt.Sprintf(\"func %#v should not panic\\n\\tPanic value:\\t%v\\n\\tPanic stack:\\t%s\", f, panicValue, panickedStack), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// WithinDuration asserts that the two times are within duration delta of each other.\n//\n//\tassert.WithinDuration(t, time.Now(), time.Now(), 10*time.Second)\nfunc WithinDuration(t TestingT, expected, actual time.Time, delta time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tdt := expected.Sub(actual)\n\tif dt < -delta || dt > delta {\n\t\treturn Fail(t, fmt.Sprintf(\"Max difference between %v and %v allowed is %v, but difference was %v\", expected, actual, delta, dt), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// WithinRange asserts that a time is within a time range (inclusive).\n//\n//\tassert.WithinRange(t, time.Now(), time.Now().Add(-time.Second), time.Now().Add(time.Second))\nfunc WithinRange(t TestingT, actual, start, end time.Time, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif end.Before(start) {\n\t\treturn Fail(t, \"Start should be before end\", msgAndArgs...)\n\t}\n\n\tif actual.Before(start) {\n\t\treturn Fail(t, fmt.Sprintf(\"Time %v expected to be in time range %v to %v, but is before the range\", actual, start, end), msgAndArgs...)\n\t} else if actual.After(end) {\n\t\treturn Fail(t, fmt.Sprintf(\"Time %v expected to be in time range %v to %v, but is after the range\", actual, start, end), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\nfunc toFloat(x interface{}) (float64, bool) {\n\tvar xf float64\n\txok := true\n\n\tswitch xn := x.(type) {\n\tcase uint:\n\t\txf = float64(xn)\n\tcase uint8:\n\t\txf = float64(xn)\n\tcase uint16:\n\t\txf = float64(xn)\n\tcase uint32:\n\t\txf = float64(xn)\n\tcase uint64:\n\t\txf = float64(xn)\n\tcase int:\n\t\txf = float64(xn)\n\tcase int8:\n\t\txf = float64(xn)\n\tcase int16:\n\t\txf = float64(xn)\n\tcase int32:\n\t\txf = float64(xn)\n\tcase int64:\n\t\txf = float64(xn)\n\tcase float32:\n\t\txf = float64(xn)\n\tcase float64:\n\t\txf = xn\n\tcase time.Duration:\n\t\txf = float64(xn)\n\tdefault:\n\t\txok = false\n\t}\n\n\treturn xf, xok\n}\n\n// InDelta asserts that the two numerals are within delta of each other.\n//\n//\tassert.InDelta(t, math.Pi, 22/7.0, 0.01)\nfunc InDelta(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\taf, aok := toFloat(expected)\n\tbf, bok := toFloat(actual)\n\n\tif !aok || !bok {\n\t\treturn Fail(t, \"Parameters must be numerical\", msgAndArgs...)\n\t}\n\n\tif math.IsNaN(af) && math.IsNaN(bf) {\n\t\treturn true\n\t}\n\n\tif math.IsNaN(af) {\n\t\treturn Fail(t, \"Expected must not be NaN\", msgAndArgs...)\n\t}\n\n\tif math.IsNaN(bf) {\n\t\treturn Fail(t, fmt.Sprintf(\"Expected %v with delta %v, but was NaN\", expected, delta), msgAndArgs...)\n\t}\n\n\tdt := af - bf\n\tif dt < -delta || dt > delta {\n\t\treturn Fail(t, fmt.Sprintf(\"Max difference between %v and %v allowed is %v, but difference was %v\", expected, actual, delta, dt), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// InDeltaSlice is the same as InDelta, except it compares two slices.\nfunc InDeltaSlice(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif expected == nil || actual == nil ||\n\t\treflect.TypeOf(actual).Kind() != reflect.Slice ||\n\t\treflect.TypeOf(expected).Kind() != reflect.Slice {\n\t\treturn Fail(t, \"Parameters must be slice\", msgAndArgs...)\n\t}\n\n\tactualSlice := reflect.ValueOf(actual)\n\texpectedSlice := reflect.ValueOf(expected)\n\n\tfor i := 0; i < actualSlice.Len(); i++ {\n\t\tresult := InDelta(t, actualSlice.Index(i).Interface(), expectedSlice.Index(i).Interface(), delta, msgAndArgs...)\n\t\tif !result {\n\t\t\treturn result\n\t\t}\n\t}\n\n\treturn true\n}\n\n// InDeltaMapValues is the same as InDelta, but it compares all values between two maps. Both maps must have exactly the same keys.\nfunc InDeltaMapValues(t TestingT, expected, actual interface{}, delta float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif expected == nil || actual == nil ||\n\t\treflect.TypeOf(actual).Kind() != reflect.Map ||\n\t\treflect.TypeOf(expected).Kind() != reflect.Map {\n\t\treturn Fail(t, \"Arguments must be maps\", msgAndArgs...)\n\t}\n\n\texpectedMap := reflect.ValueOf(expected)\n\tactualMap := reflect.ValueOf(actual)\n\n\tif expectedMap.Len() != actualMap.Len() {\n\t\treturn Fail(t, \"Arguments must have the same number of keys\", msgAndArgs...)\n\t}\n\n\tfor _, k := range expectedMap.MapKeys() {\n\t\tev := expectedMap.MapIndex(k)\n\t\tav := actualMap.MapIndex(k)\n\n\t\tif !ev.IsValid() {\n\t\t\treturn Fail(t, fmt.Sprintf(\"missing key %q in expected map\", k), msgAndArgs...)\n\t\t}\n\n\t\tif !av.IsValid() {\n\t\t\treturn Fail(t, fmt.Sprintf(\"missing key %q in actual map\", k), msgAndArgs...)\n\t\t}\n\n\t\tif !InDelta(\n\t\t\tt,\n\t\t\tev.Interface(),\n\t\t\tav.Interface(),\n\t\t\tdelta,\n\t\t\tmsgAndArgs...,\n\t\t) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc calcRelativeError(expected, actual interface{}) (float64, error) {\n\taf, aok := toFloat(expected)\n\tbf, bok := toFloat(actual)\n\tif !aok || !bok {\n\t\treturn 0, fmt.Errorf(\"Parameters must be numerical\")\n\t}\n\tif math.IsNaN(af) && math.IsNaN(bf) {\n\t\treturn 0, nil\n\t}\n\tif math.IsNaN(af) {\n\t\treturn 0, errors.New(\"expected value must not be NaN\")\n\t}\n\tif af == 0 {\n\t\treturn 0, fmt.Errorf(\"expected value must have a value other than zero to calculate the relative error\")\n\t}\n\tif math.IsNaN(bf) {\n\t\treturn 0, errors.New(\"actual value must not be NaN\")\n\t}\n\n\treturn math.Abs(af-bf) / math.Abs(af), nil\n}\n\n// InEpsilon asserts that expected and actual have a relative error less than epsilon\nfunc InEpsilon(t TestingT, expected, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif math.IsNaN(epsilon) {\n\t\treturn Fail(t, \"epsilon must not be NaN\", msgAndArgs...)\n\t}\n\tactualEpsilon, err := calcRelativeError(expected, actual)\n\tif err != nil {\n\t\treturn Fail(t, err.Error(), msgAndArgs...)\n\t}\n\tif actualEpsilon > epsilon {\n\t\treturn Fail(t, fmt.Sprintf(\"Relative error is too high: %#v (expected)\\n\"+\n\t\t\t\"        < %#v (actual)\", epsilon, actualEpsilon), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// InEpsilonSlice is the same as InEpsilon, except it compares each value from two slices.\nfunc InEpsilonSlice(t TestingT, expected, actual interface{}, epsilon float64, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tif expected == nil || actual == nil {\n\t\treturn Fail(t, \"Parameters must be slice\", msgAndArgs...)\n\t}\n\n\texpectedSlice := reflect.ValueOf(expected)\n\tactualSlice := reflect.ValueOf(actual)\n\n\tif expectedSlice.Type().Kind() != reflect.Slice {\n\t\treturn Fail(t, \"Expected value must be slice\", msgAndArgs...)\n\t}\n\n\texpectedLen := expectedSlice.Len()\n\tif !IsType(t, expected, actual) || !Len(t, actual, expectedLen) {\n\t\treturn false\n\t}\n\n\tfor i := 0; i < expectedLen; i++ {\n\t\tif !InEpsilon(t, expectedSlice.Index(i).Interface(), actualSlice.Index(i).Interface(), epsilon, \"at index %d\", i) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n/*\n\tErrors\n*/\n\n// NoError asserts that a function returned no error (i.e. `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if assert.NoError(t, err) {\n//\t\t   assert.Equal(t, expectedObj, actualObj)\n//\t  }\nfunc NoError(t TestingT, err error, msgAndArgs ...interface{}) bool {\n\tif err != nil {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\treturn Fail(t, fmt.Sprintf(\"Received unexpected error:\\n%+v\", err), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// Error asserts that a function returned an error (i.e. not `nil`).\n//\n//\t  actualObj, err := SomeFunction()\n//\t  if assert.Error(t, err) {\n//\t\t   assert.Equal(t, expectedError, err)\n//\t  }\nfunc Error(t TestingT, err error, msgAndArgs ...interface{}) bool {\n\tif err == nil {\n\t\tif h, ok := t.(tHelper); ok {\n\t\t\th.Helper()\n\t\t}\n\t\treturn Fail(t, \"An error is expected but got nil.\", msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// EqualError asserts that a function returned an error (i.e. not `nil`)\n// and that it is equal to the provided error.\n//\n//\tactualObj, err := SomeFunction()\n//\tassert.EqualError(t, err,  expectedErrorString)\nfunc EqualError(t TestingT, theError error, errString string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif !Error(t, theError, msgAndArgs...) {\n\t\treturn false\n\t}\n\texpected := errString\n\tactual := theError.Error()\n\t// don't need to use deep equals here, we know they are both strings\n\tif expected != actual {\n\t\treturn Fail(t, fmt.Sprintf(\"Error message not equal:\\n\"+\n\t\t\t\"expected: %q\\n\"+\n\t\t\t\"actual  : %q\", expected, actual), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// ErrorContains asserts that a function returned an error (i.e. not `nil`)\n// and that the error contains the specified substring.\n//\n//\tactualObj, err := SomeFunction()\n//\tassert.ErrorContains(t, err,  expectedErrorSubString)\nfunc ErrorContains(t TestingT, theError error, contains string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif !Error(t, theError, msgAndArgs...) {\n\t\treturn false\n\t}\n\n\tactual := theError.Error()\n\tif !strings.Contains(actual, contains) {\n\t\treturn Fail(t, fmt.Sprintf(\"Error %#v does not contain %#v\", actual, contains), msgAndArgs...)\n\t}\n\n\treturn true\n}\n\n// matchRegexp return true if a specified regexp matches a string.\nfunc matchRegexp(rx interface{}, str interface{}) bool {\n\n\tvar r *regexp.Regexp\n\tif rr, ok := rx.(*regexp.Regexp); ok {\n\t\tr = rr\n\t} else {\n\t\tr = regexp.MustCompile(fmt.Sprint(rx))\n\t}\n\n\treturn (r.FindStringIndex(fmt.Sprint(str)) != nil)\n\n}\n\n// Regexp asserts that a specified regexp matches a string.\n//\n//\tassert.Regexp(t, regexp.MustCompile(\"start\"), \"it's starting\")\n//\tassert.Regexp(t, \"start...$\", \"it's not starting\")\nfunc Regexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tmatch := matchRegexp(rx, str)\n\n\tif !match {\n\t\tFail(t, fmt.Sprintf(\"Expect \\\"%v\\\" to match \\\"%v\\\"\", str, rx), msgAndArgs...)\n\t}\n\n\treturn match\n}\n\n// NotRegexp asserts that a specified regexp does not match a string.\n//\n//\tassert.NotRegexp(t, regexp.MustCompile(\"starts\"), \"it's starting\")\n//\tassert.NotRegexp(t, \"^start\", \"it's not starting\")\nfunc NotRegexp(t TestingT, rx interface{}, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tmatch := matchRegexp(rx, str)\n\n\tif match {\n\t\tFail(t, fmt.Sprintf(\"Expect \\\"%v\\\" to NOT match \\\"%v\\\"\", str, rx), msgAndArgs...)\n\t}\n\n\treturn !match\n\n}\n\n// Zero asserts that i is the zero value for its type.\nfunc Zero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif i != nil && !reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) {\n\t\treturn Fail(t, fmt.Sprintf(\"Should be zero, but was %v\", i), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// NotZero asserts that i is not the zero value for its type.\nfunc NotZero(t TestingT, i interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif i == nil || reflect.DeepEqual(i, reflect.Zero(reflect.TypeOf(i)).Interface()) {\n\t\treturn Fail(t, fmt.Sprintf(\"Should not be zero, but was %v\", i), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// FileExists checks whether a file exists in the given path. It also fails if\n// the path points to a directory or there is an error when trying to check the file.\nfunc FileExists(t TestingT, path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tinfo, err := os.Lstat(path)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn Fail(t, fmt.Sprintf(\"unable to find file %q\", path), msgAndArgs...)\n\t\t}\n\t\treturn Fail(t, fmt.Sprintf(\"error when running os.Lstat(%q): %s\", path, err), msgAndArgs...)\n\t}\n\tif info.IsDir() {\n\t\treturn Fail(t, fmt.Sprintf(\"%q is a directory\", path), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// NoFileExists checks whether a file does not exist in a given path. It fails\n// if the path points to an existing _file_ only.\nfunc NoFileExists(t TestingT, path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tinfo, err := os.Lstat(path)\n\tif err != nil {\n\t\treturn true\n\t}\n\tif info.IsDir() {\n\t\treturn true\n\t}\n\treturn Fail(t, fmt.Sprintf(\"file %q exists\", path), msgAndArgs...)\n}\n\n// DirExists checks whether a directory exists in the given path. It also fails\n// if the path is a file rather a directory or there is an error checking whether it exists.\nfunc DirExists(t TestingT, path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tinfo, err := os.Lstat(path)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn Fail(t, fmt.Sprintf(\"unable to find file %q\", path), msgAndArgs...)\n\t\t}\n\t\treturn Fail(t, fmt.Sprintf(\"error when running os.Lstat(%q): %s\", path, err), msgAndArgs...)\n\t}\n\tif !info.IsDir() {\n\t\treturn Fail(t, fmt.Sprintf(\"%q is a file\", path), msgAndArgs...)\n\t}\n\treturn true\n}\n\n// NoDirExists checks whether a directory does not exist in the given path.\n// It fails if the path points to an existing _directory_ only.\nfunc NoDirExists(t TestingT, path string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tinfo, err := os.Lstat(path)\n\tif err != nil {\n\t\tif os.IsNotExist(err) {\n\t\t\treturn true\n\t\t}\n\t\treturn true\n\t}\n\tif !info.IsDir() {\n\t\treturn true\n\t}\n\treturn Fail(t, fmt.Sprintf(\"directory %q exists\", path), msgAndArgs...)\n}\n\n// JSONEq asserts that two JSON strings are equivalent.\n//\n//\tassert.JSONEq(t, `{\"hello\": \"world\", \"foo\": \"bar\"}`, `{\"foo\": \"bar\", \"hello\": \"world\"}`)\nfunc JSONEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tvar expectedJSONAsInterface, actualJSONAsInterface interface{}\n\n\tif err := json.Unmarshal([]byte(expected), &expectedJSONAsInterface); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Expected value ('%s') is not valid json.\\nJSON parsing error: '%s'\", expected, err.Error()), msgAndArgs...)\n\t}\n\n\tif err := json.Unmarshal([]byte(actual), &actualJSONAsInterface); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Input ('%s') needs to be valid json.\\nJSON parsing error: '%s'\", actual, err.Error()), msgAndArgs...)\n\t}\n\n\treturn Equal(t, expectedJSONAsInterface, actualJSONAsInterface, msgAndArgs...)\n}\n\n// YAMLEq asserts that two YAML strings are equivalent.\nfunc YAMLEq(t TestingT, expected string, actual string, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tvar expectedYAMLAsInterface, actualYAMLAsInterface interface{}\n\n\tif err := yaml.Unmarshal([]byte(expected), &expectedYAMLAsInterface); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Expected value ('%s') is not valid yaml.\\nYAML parsing error: '%s'\", expected, err.Error()), msgAndArgs...)\n\t}\n\n\tif err := yaml.Unmarshal([]byte(actual), &actualYAMLAsInterface); err != nil {\n\t\treturn Fail(t, fmt.Sprintf(\"Input ('%s') needs to be valid yaml.\\nYAML error: '%s'\", actual, err.Error()), msgAndArgs...)\n\t}\n\n\treturn Equal(t, expectedYAMLAsInterface, actualYAMLAsInterface, msgAndArgs...)\n}\n\nfunc typeAndKind(v interface{}) (reflect.Type, reflect.Kind) {\n\tt := reflect.TypeOf(v)\n\tk := t.Kind()\n\n\tif k == reflect.Ptr {\n\t\tt = t.Elem()\n\t\tk = t.Kind()\n\t}\n\treturn t, k\n}\n\n// diff returns a diff of both values as long as both are of the same type and\n// are a struct, map, slice, array or string. Otherwise it returns an empty string.\nfunc diff(expected interface{}, actual interface{}) string {\n\tif expected == nil || actual == nil {\n\t\treturn \"\"\n\t}\n\n\tet, ek := typeAndKind(expected)\n\tat, _ := typeAndKind(actual)\n\n\tif et != at {\n\t\treturn \"\"\n\t}\n\n\tif ek != reflect.Struct && ek != reflect.Map && ek != reflect.Slice && ek != reflect.Array && ek != reflect.String {\n\t\treturn \"\"\n\t}\n\n\tvar e, a string\n\n\tswitch et {\n\tcase reflect.TypeOf(\"\"):\n\t\te = reflect.ValueOf(expected).String()\n\t\ta = reflect.ValueOf(actual).String()\n\tcase reflect.TypeOf(time.Time{}):\n\t\te = spewConfigStringerEnabled.Sdump(expected)\n\t\ta = spewConfigStringerEnabled.Sdump(actual)\n\tdefault:\n\t\te = spewConfig.Sdump(expected)\n\t\ta = spewConfig.Sdump(actual)\n\t}\n\n\tdiff, _ := difflib.GetUnifiedDiffString(difflib.UnifiedDiff{\n\t\tA:        difflib.SplitLines(e),\n\t\tB:        difflib.SplitLines(a),\n\t\tFromFile: \"Expected\",\n\t\tFromDate: \"\",\n\t\tToFile:   \"Actual\",\n\t\tToDate:   \"\",\n\t\tContext:  1,\n\t})\n\n\treturn \"\\n\\nDiff:\\n\" + diff\n}\n\nfunc isFunction(arg interface{}) bool {\n\tif arg == nil {\n\t\treturn false\n\t}\n\treturn reflect.TypeOf(arg).Kind() == reflect.Func\n}\n\nvar spewConfig = spew.ConfigState{\n\tIndent:                  \" \",\n\tDisablePointerAddresses: true,\n\tDisableCapacities:       true,\n\tSortKeys:                true,\n\tDisableMethods:          true,\n\tMaxDepth:                10,\n}\n\nvar spewConfigStringerEnabled = spew.ConfigState{\n\tIndent:                  \" \",\n\tDisablePointerAddresses: true,\n\tDisableCapacities:       true,\n\tSortKeys:                true,\n\tMaxDepth:                10,\n}\n\ntype tHelper interface {\n\tHelper()\n}\n\n// Eventually asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick.\n//\n//\tassert.Eventually(t, func() bool { return true; }, time.Second, 10*time.Millisecond)\nfunc Eventually(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tch := make(chan bool, 1)\n\n\ttimer := time.NewTimer(waitFor)\n\tdefer timer.Stop()\n\n\tticker := time.NewTicker(tick)\n\tdefer ticker.Stop()\n\n\tfor tick := ticker.C; ; {\n\t\tselect {\n\t\tcase <-timer.C:\n\t\t\treturn Fail(t, \"Condition never satisfied\", msgAndArgs...)\n\t\tcase <-tick:\n\t\t\ttick = nil\n\t\t\tgo func() { ch <- condition() }()\n\t\tcase v := <-ch:\n\t\t\tif v {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\ttick = ticker.C\n\t\t}\n\t}\n}\n\n// CollectT implements the TestingT interface and collects all errors.\ntype CollectT struct {\n\terrors []error\n}\n\n// Errorf collects the error.\nfunc (c *CollectT) Errorf(format string, args ...interface{}) {\n\tc.errors = append(c.errors, fmt.Errorf(format, args...))\n}\n\n// FailNow panics.\nfunc (*CollectT) FailNow() {\n\tpanic(\"Assertion failed\")\n}\n\n// Deprecated: That was a method for internal usage that should not have been published. Now just panics.\nfunc (*CollectT) Reset() {\n\tpanic(\"Reset() is deprecated\")\n}\n\n// Deprecated: That was a method for internal usage that should not have been published. Now just panics.\nfunc (*CollectT) Copy(TestingT) {\n\tpanic(\"Copy() is deprecated\")\n}\n\n// EventuallyWithT asserts that given condition will be met in waitFor time,\n// periodically checking target function each tick. In contrast to Eventually,\n// it supplies a CollectT to the condition function, so that the condition\n// function can use the CollectT to call other assertions.\n// The condition is considered \"met\" if no errors are raised in a tick.\n// The supplied CollectT collects all errors from one tick (if there are any).\n// If the condition is not met before waitFor, the collected errors of\n// the last tick are copied to t.\n//\n//\texternalValue := false\n//\tgo func() {\n//\t\ttime.Sleep(8*time.Second)\n//\t\texternalValue = true\n//\t}()\n//\tassert.EventuallyWithT(t, func(c *assert.CollectT) {\n//\t\t// add assertions as needed; any assertion failure will fail the current tick\n//\t\tassert.True(c, externalValue, \"expected 'externalValue' to be true\")\n//\t}, 1*time.Second, 10*time.Second, \"external state has not changed to 'true'; still false\")\nfunc EventuallyWithT(t TestingT, condition func(collect *CollectT), waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tvar lastFinishedTickErrs []error\n\tch := make(chan []error, 1)\n\n\ttimer := time.NewTimer(waitFor)\n\tdefer timer.Stop()\n\n\tticker := time.NewTicker(tick)\n\tdefer ticker.Stop()\n\n\tfor tick := ticker.C; ; {\n\t\tselect {\n\t\tcase <-timer.C:\n\t\t\tfor _, err := range lastFinishedTickErrs {\n\t\t\t\tt.Errorf(\"%v\", err)\n\t\t\t}\n\t\t\treturn Fail(t, \"Condition never satisfied\", msgAndArgs...)\n\t\tcase <-tick:\n\t\t\ttick = nil\n\t\t\tgo func() {\n\t\t\t\tcollect := new(CollectT)\n\t\t\t\tdefer func() {\n\t\t\t\t\tch <- collect.errors\n\t\t\t\t}()\n\t\t\t\tcondition(collect)\n\t\t\t}()\n\t\tcase errs := <-ch:\n\t\t\tif len(errs) == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Keep the errors from the last ended condition, so that they can be copied to t if timeout is reached.\n\t\t\tlastFinishedTickErrs = errs\n\t\t\ttick = ticker.C\n\t\t}\n\t}\n}\n\n// Never asserts that the given condition doesn't satisfy in waitFor time,\n// periodically checking the target function each tick.\n//\n//\tassert.Never(t, func() bool { return false; }, time.Second, 10*time.Millisecond)\nfunc Never(t TestingT, condition func() bool, waitFor time.Duration, tick time.Duration, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\n\tch := make(chan bool, 1)\n\n\ttimer := time.NewTimer(waitFor)\n\tdefer timer.Stop()\n\n\tticker := time.NewTicker(tick)\n\tdefer ticker.Stop()\n\n\tfor tick := ticker.C; ; {\n\t\tselect {\n\t\tcase <-timer.C:\n\t\t\treturn true\n\t\tcase <-tick:\n\t\t\ttick = nil\n\t\t\tgo func() { ch <- condition() }()\n\t\tcase v := <-ch:\n\t\t\tif v {\n\t\t\t\treturn Fail(t, \"Condition satisfied\", msgAndArgs...)\n\t\t\t}\n\t\t\ttick = ticker.C\n\t\t}\n\t}\n}\n\n// ErrorIs asserts that at least one of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc ErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif errors.Is(err, target) {\n\t\treturn true\n\t}\n\n\tvar expectedText string\n\tif target != nil {\n\t\texpectedText = target.Error()\n\t}\n\n\tchain := buildErrorChainString(err)\n\n\treturn Fail(t, fmt.Sprintf(\"Target error should be in err chain:\\n\"+\n\t\t\"expected: %q\\n\"+\n\t\t\"in chain: %s\", expectedText, chain,\n\t), msgAndArgs...)\n}\n\n// NotErrorIs asserts that at none of the errors in err's chain matches target.\n// This is a wrapper for errors.Is.\nfunc NotErrorIs(t TestingT, err, target error, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif !errors.Is(err, target) {\n\t\treturn true\n\t}\n\n\tvar expectedText string\n\tif target != nil {\n\t\texpectedText = target.Error()\n\t}\n\n\tchain := buildErrorChainString(err)\n\n\treturn Fail(t, fmt.Sprintf(\"Target error should not be in err chain:\\n\"+\n\t\t\"found: %q\\n\"+\n\t\t\"in chain: %s\", expectedText, chain,\n\t), msgAndArgs...)\n}\n\n// ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value.\n// This is a wrapper for errors.As.\nfunc ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tif errors.As(err, target) {\n\t\treturn true\n\t}\n\n\tchain := buildErrorChainString(err)\n\n\treturn Fail(t, fmt.Sprintf(\"Should be in error chain:\\n\"+\n\t\t\"expected: %q\\n\"+\n\t\t\"in chain: %s\", target, chain,\n\t), msgAndArgs...)\n}\n\nfunc buildErrorChainString(err error) string {\n\tif err == nil {\n\t\treturn \"\"\n\t}\n\n\te := errors.Unwrap(err)\n\tchain := fmt.Sprintf(\"%q\", err.Error())\n\tfor e != nil {\n\t\tchain += fmt.Sprintf(\"\\n\\t%q\", e.Error())\n\t\te = errors.Unwrap(e)\n\t}\n\treturn chain\n}\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/doc.go",
    "content": "// Package assert provides a set of comprehensive testing tools for use with the normal Go testing system.\n//\n// # Example Usage\n//\n// The following is a complete example using assert in a standard test function:\n//\n//\timport (\n//\t  \"testing\"\n//\t  \"github.com/stretchr/testify/assert\"\n//\t)\n//\n//\tfunc TestSomething(t *testing.T) {\n//\n//\t  var a string = \"Hello\"\n//\t  var b string = \"Hello\"\n//\n//\t  assert.Equal(t, a, b, \"The two words should be the same.\")\n//\n//\t}\n//\n// if you assert many times, use the format below:\n//\n//\timport (\n//\t  \"testing\"\n//\t  \"github.com/stretchr/testify/assert\"\n//\t)\n//\n//\tfunc TestSomething(t *testing.T) {\n//\t  assert := assert.New(t)\n//\n//\t  var a string = \"Hello\"\n//\t  var b string = \"Hello\"\n//\n//\t  assert.Equal(a, b, \"The two words should be the same.\")\n//\t}\n//\n// # Assertions\n//\n// Assertions allow you to easily write test code, and are global funcs in the `assert` package.\n// All assertion functions take, as the first argument, the `*testing.T` object provided by the\n// testing framework. This allows the assertion funcs to write the failings and other details to\n// the correct place.\n//\n// Every assertion function also takes an optional string message as the final argument,\n// allowing custom error messages to be appended to the message the assertion method outputs.\npackage assert\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/errors.go",
    "content": "package assert\n\nimport (\n\t\"errors\"\n)\n\n// AnError is an error instance useful for testing.  If the code does not care\n// about error specifics, and only needs to return the error for example, this\n// error should be used to make the test code more readable.\nvar AnError = errors.New(\"assert.AnError general error for testing\")\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/forward_assertions.go",
    "content": "package assert\n\n// Assertions provides assertion methods around the\n// TestingT interface.\ntype Assertions struct {\n\tt TestingT\n}\n\n// New makes a new Assertions object for the specified TestingT.\nfunc New(t TestingT) *Assertions {\n\treturn &Assertions{\n\t\tt: t,\n\t}\n}\n\n//go:generate sh -c \"cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_forward.go.tmpl -include-format-funcs\"\n"
  },
  {
    "path": "vendor/github.com/stretchr/testify/assert/http_assertions.go",
    "content": "package assert\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"net/url\"\n\t\"strings\"\n)\n\n// httpCode is a helper that returns HTTP code of the response. It returns -1 and\n// an error if building a new request fails.\nfunc httpCode(handler http.HandlerFunc, method, url string, values url.Values) (int, error) {\n\tw := httptest.NewRecorder()\n\treq, err := http.NewRequest(method, url, http.NoBody)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\treq.URL.RawQuery = values.Encode()\n\thandler(w, req)\n\treturn w.Code, nil\n}\n\n// HTTPSuccess asserts that a specified handler returns a success status code.\n//\n//\tassert.HTTPSuccess(t, myHandler, \"POST\", \"http://www.google.com\", nil)\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPSuccess(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tcode, err := httpCode(handler, method, url, values)\n\tif err != nil {\n\t\tFail(t, fmt.Sprintf(\"Failed to build test request, got error: %s\", err), msgAndArgs...)\n\t}\n\n\tisSuccessCode := code >= http.StatusOK && code <= http.StatusPartialContent\n\tif !isSuccessCode {\n\t\tFail(t, fmt.Sprintf(\"Expected HTTP success status code for %q but received %d\", url+\"?\"+values.Encode(), code), msgAndArgs...)\n\t}\n\n\treturn isSuccessCode\n}\n\n// HTTPRedirect asserts that a specified handler returns a redirect status code.\n//\n//\tassert.HTTPRedirect(t, myHandler, \"GET\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPRedirect(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tcode, err := httpCode(handler, method, url, values)\n\tif err != nil {\n\t\tFail(t, fmt.Sprintf(\"Failed to build test request, got error: %s\", err), msgAndArgs...)\n\t}\n\n\tisRedirectCode := code >= http.StatusMultipleChoices && code <= http.StatusTemporaryRedirect\n\tif !isRedirectCode {\n\t\tFail(t, fmt.Sprintf(\"Expected HTTP redirect status code for %q but received %d\", url+\"?\"+values.Encode(), code), msgAndArgs...)\n\t}\n\n\treturn isRedirectCode\n}\n\n// HTTPError asserts that a specified handler returns an error status code.\n//\n//\tassert.HTTPError(t, myHandler, \"POST\", \"/a/b/c\", url.Values{\"a\": []string{\"b\", \"c\"}}\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPError(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tcode, err := httpCode(handler, method, url, values)\n\tif err != nil {\n\t\tFail(t, fmt.Sprintf(\"Failed to build test request, got error: %s\", err), msgAndArgs...)\n\t}\n\n\tisErrorCode := code >= http.StatusBadRequest\n\tif !isErrorCode {\n\t\tFail(t, fmt.Sprintf(\"Expected HTTP error status code for %q but received %d\", url+\"?\"+values.Encode(), code), msgAndArgs...)\n\t}\n\n\treturn isErrorCode\n}\n\n// HTTPStatusCode asserts that a specified handler returns a specified status code.\n//\n//\tassert.HTTPStatusCode(t, myHandler, \"GET\", \"/notImplemented\", nil, 501)\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPStatusCode(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, statuscode int, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tcode, err := httpCode(handler, method, url, values)\n\tif err != nil {\n\t\tFail(t, fmt.Sprintf(\"Failed to build test request, got error: %s\", err), msgAndArgs...)\n\t}\n\n\tsuccessful := code == statuscode\n\tif !successful {\n\t\tFail(t, fmt.Sprintf(\"Expected HTTP status code %d for %q but received %d\", statuscode, url+\"?\"+values.Encode(), code), msgAndArgs...)\n\t}\n\n\treturn successful\n}\n\n// HTTPBody is a helper that returns HTTP body of the response. It returns\n// empty string if building a new request fails.\nfunc HTTPBody(handler http.HandlerFunc, method, url string, values url.Values) string {\n\tw := httptest.NewRecorder()\n\tif len(values) > 0 {\n\t\turl += \"?\" + values.Encode()\n\t}\n\treq, err := http.NewRequest(method, url, http.NoBody)\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\thandler(w, req)\n\treturn w.Body.String()\n}\n\n// HTTPBodyContains asserts that a specified handler returns a\n// body that contains a string.\n//\n//\tassert.HTTPBodyContains(t, myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPBodyContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tbody := HTTPBody(handler, method, url, values)\n\n\tcontains := strings.Contains(body, fmt.Sprint(str))\n\tif !contains {\n\t\tFail(t, fmt.Sprintf(\"Expected response body for \\\"%s\\\" to contain \\\"%s\\\" but found \\\"%s\\\"\", url+\"?\"+values.Encode(), str, body), msgAndArgs...)\n\t}\n\n\treturn contains\n}\n\n// HTTPBodyNotContains asserts that a specified handler returns a\n// body that does not contain a string.\n//\n//\tassert.HTTPBodyNotContains(t, myHandler, \"GET\", \"www.google.com\", nil, \"I'm Feeling Lucky\")\n//\n// Returns whether the assertion was successful (true) or not (false).\nfunc HTTPBodyNotContains(t TestingT, handler http.HandlerFunc, method, url string, values url.Values, str interface{}, msgAndArgs ...interface{}) bool {\n\tif h, ok := t.(tHelper); ok {\n\t\th.Helper()\n\t}\n\tbody := HTTPBody(handler, method, url, values)\n\n\tcontains := strings.Contains(body, fmt.Sprint(str))\n\tif contains {\n\t\tFail(t, fmt.Sprintf(\"Expected response body for \\\"%s\\\" to NOT contain \\\"%s\\\" but found \\\"%s\\\"\", url+\"?\"+values.Encode(), str, body), msgAndArgs...)\n\t}\n\n\treturn !contains\n}\n"
  },
  {
    "path": "vendor/github.com/xo/terminfo/.gitignore",
    "content": "/.cache/\n\n/cmd/infocmp/infocmp\n/cmd/infocmp/.out/\n\n/infocmp\n/.out/\n\n*.txt\n"
  },
  {
    "path": "vendor/github.com/xo/terminfo/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2016 Anmol Sethi\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/xo/terminfo/README.md",
    "content": "# About terminfo [![GoDoc][1]][2]\n\nPackage `terminfo` provides a pure-Go implementation of reading information\nfrom the terminfo database.\n\n`terminfo` is meant as a replacement for `ncurses` in simple Go programs.\n\n## Installing\n\nInstall in the usual Go way:\n\n```sh\n$ go get -u github.com/xo/terminfo\n```\n\n## Using\n\nPlease see the [GoDoc API listing][2] for more information on using `terminfo`.\n\n```go\n// _examples/simple/main.go\npackage main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\t\"os/signal\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\n\t\"github.com/xo/terminfo\"\n)\n\nfunc main() {\n\t//r := rand.New(nil)\n\n\t// load terminfo\n\tti, err := terminfo.LoadFromEnv()\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\t// cleanup\n\tdefer func() {\n\t\terr := recover()\n\t\ttermreset(ti)\n\t\tif err != nil {\n\t\t\tlog.Fatal(err)\n\t\t}\n\t}()\n\n\tterminit(ti)\n\ttermtitle(ti, \"simple example!\")\n\ttermputs(ti, 3, 3, \"Ctrl-C to exit\")\n\tmaxColors := termcolors(ti)\n\tif maxColors > 256 {\n\t\tmaxColors = 256\n\t}\n\tfor i := 0; i < maxColors; i++ {\n\t\ttermputs(ti, 5+i/16, 5+i%16, ti.Colorf(i, 0, \"█\"))\n\t}\n\n\t// wait for signal\n\tsigs := make(chan os.Signal, 1)\n\tsignal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)\n\t<-sigs\n}\n\n// terminit initializes the special CA mode on the terminal, and makes the\n// cursor invisible.\nfunc terminit(ti *terminfo.Terminfo) {\n\tbuf := new(bytes.Buffer)\n\t// set the cursor invisible\n\tti.Fprintf(buf, terminfo.CursorInvisible)\n\t// enter special mode\n\tti.Fprintf(buf, terminfo.EnterCaMode)\n\t// clear the screen\n\tti.Fprintf(buf, terminfo.ClearScreen)\n\tos.Stdout.Write(buf.Bytes())\n}\n\n// termreset is the inverse of terminit.\nfunc termreset(ti *terminfo.Terminfo) {\n\tbuf := new(bytes.Buffer)\n\tti.Fprintf(buf, terminfo.ExitCaMode)\n\tti.Fprintf(buf, terminfo.CursorNormal)\n\tos.Stdout.Write(buf.Bytes())\n}\n\n// termputs puts a string at row, col, interpolating v.\nfunc termputs(ti *terminfo.Terminfo, row, col int, s string, v ...interface{}) {\n\tbuf := new(bytes.Buffer)\n\tti.Fprintf(buf, terminfo.CursorAddress, row, col)\n\tfmt.Fprintf(buf, s, v...)\n\tos.Stdout.Write(buf.Bytes())\n}\n\n// sl is the status line terminfo.\nvar sl *terminfo.Terminfo\n\n// termtitle sets the window title.\nfunc termtitle(ti *terminfo.Terminfo, s string) {\n\tvar once sync.Once\n\tonce.Do(func() {\n\t\tif ti.Has(terminfo.HasStatusLine) {\n\t\t\treturn\n\t\t}\n\t\t// load the sl xterm if terminal is an xterm or has COLORTERM\n\t\tif strings.Contains(strings.ToLower(os.Getenv(\"TERM\")), \"xterm\") || os.Getenv(\"COLORTERM\") == \"truecolor\" {\n\t\t\tsl, _ = terminfo.Load(\"xterm+sl\")\n\t\t}\n\t})\n\tif sl != nil {\n\t\tti = sl\n\t}\n\tif !ti.Has(terminfo.HasStatusLine) {\n\t\treturn\n\t}\n\tbuf := new(bytes.Buffer)\n\tti.Fprintf(buf, terminfo.ToStatusLine)\n\tfmt.Fprint(buf, s)\n\tti.Fprintf(buf, terminfo.FromStatusLine)\n\tos.Stdout.Write(buf.Bytes())\n}\n\n// termcolors returns the maximum colors available for the terminal.\nfunc termcolors(ti *terminfo.Terminfo) int {\n\tif colors := ti.Num(terminfo.MaxColors); colors > 0 {\n\t\treturn colors\n\t}\n\treturn int(terminfo.ColorLevelBasic)\n}\n```\n\n[1]: https://godoc.org/github.com/xo/terminfo?status.svg\n[2]: https://godoc.org/github.com/xo/terminfo\n"
  },
  {
    "path": "vendor/github.com/xo/terminfo/caps.go",
    "content": "package terminfo\n\n//go:generate go run gen.go\n\n// BoolCapName returns the bool capability name.\nfunc BoolCapName(i int) string {\n\treturn boolCapNames[2*i]\n}\n\n// BoolCapNameShort returns the short bool capability name.\nfunc BoolCapNameShort(i int) string {\n\treturn boolCapNames[2*i+1]\n}\n\n// NumCapName returns the num capability name.\nfunc NumCapName(i int) string {\n\treturn numCapNames[2*i]\n}\n\n// NumCapNameShort returns the short num capability name.\nfunc NumCapNameShort(i int) string {\n\treturn numCapNames[2*i+1]\n}\n\n// StringCapName returns the string capability name.\nfunc StringCapName(i int) string {\n\treturn stringCapNames[2*i]\n}\n\n// StringCapNameShort returns the short string capability name.\nfunc StringCapNameShort(i int) string {\n\treturn stringCapNames[2*i+1]\n}\n"
  },
  {
    "path": "vendor/github.com/xo/terminfo/capvals.go",
    "content": "package terminfo\n\n// Code generated by gen.go. DO NOT EDIT.\n\n// Bool capabilities.\nconst (\n\t// The AutoLeftMargin [auto_left_margin, bw] bool capability indicates cub1 wraps from column 0 to last column.\n\tAutoLeftMargin = iota\n\n\t// The AutoRightMargin [auto_right_margin, am] bool capability indicates terminal has automatic margins.\n\tAutoRightMargin\n\n\t// The NoEscCtlc [no_esc_ctlc, xsb] bool capability indicates beehive (f1=escape, f2=ctrl C).\n\tNoEscCtlc\n\n\t// The CeolStandoutGlitch [ceol_standout_glitch, xhp] bool capability indicates standout not erased by overwriting (hp).\n\tCeolStandoutGlitch\n\n\t// The EatNewlineGlitch [eat_newline_glitch, xenl] bool capability indicates newline ignored after 80 cols (concept).\n\tEatNewlineGlitch\n\n\t// The EraseOverstrike [erase_overstrike, eo] bool capability indicates can erase overstrikes with a blank.\n\tEraseOverstrike\n\n\t// The GenericType [generic_type, gn] bool capability indicates generic line type.\n\tGenericType\n\n\t// The HardCopy [hard_copy, hc] bool capability indicates hardcopy terminal.\n\tHardCopy\n\n\t// The HasMetaKey [has_meta_key, km] bool capability indicates Has a meta key (i.e., sets 8th-bit).\n\tHasMetaKey\n\n\t// The HasStatusLine [has_status_line, hs] bool capability indicates has extra status line.\n\tHasStatusLine\n\n\t// The InsertNullGlitch [insert_null_glitch, in] bool capability indicates insert mode distinguishes nulls.\n\tInsertNullGlitch\n\n\t// The MemoryAbove [memory_above, da] bool capability indicates display may be retained above the screen.\n\tMemoryAbove\n\n\t// The MemoryBelow [memory_below, db] bool capability indicates display may be retained below the screen.\n\tMemoryBelow\n\n\t// The MoveInsertMode [move_insert_mode, mir] bool capability indicates safe to move while in insert mode.\n\tMoveInsertMode\n\n\t// The MoveStandoutMode [move_standout_mode, msgr] bool capability indicates safe to move while in standout mode.\n\tMoveStandoutMode\n\n\t// The OverStrike [over_strike, os] bool capability indicates terminal can overstrike.\n\tOverStrike\n\n\t// The StatusLineEscOk [status_line_esc_ok, eslok] bool capability indicates escape can be used on the status line.\n\tStatusLineEscOk\n\n\t// The DestTabsMagicSmso [dest_tabs_magic_smso, xt] bool capability indicates tabs destructive, magic so char (t1061).\n\tDestTabsMagicSmso\n\n\t// The TildeGlitch [tilde_glitch, hz] bool capability indicates cannot print ~'s (Hazeltine).\n\tTildeGlitch\n\n\t// The TransparentUnderline [transparent_underline, ul] bool capability indicates underline character overstrikes.\n\tTransparentUnderline\n\n\t// The XonXoff [xon_xoff, xon] bool capability indicates terminal uses xon/xoff handshaking.\n\tXonXoff\n\n\t// The NeedsXonXoff [needs_xon_xoff, nxon] bool capability indicates padding will not work, xon/xoff required.\n\tNeedsXonXoff\n\n\t// The PrtrSilent [prtr_silent, mc5i] bool capability indicates printer will not echo on screen.\n\tPrtrSilent\n\n\t// The HardCursor [hard_cursor, chts] bool capability indicates cursor is hard to see.\n\tHardCursor\n\n\t// The NonRevRmcup [non_rev_rmcup, nrrmc] bool capability indicates smcup does not reverse rmcup.\n\tNonRevRmcup\n\n\t// The NoPadChar [no_pad_char, npc] bool capability indicates pad character does not exist.\n\tNoPadChar\n\n\t// The NonDestScrollRegion [non_dest_scroll_region, ndscr] bool capability indicates scrolling region is non-destructive.\n\tNonDestScrollRegion\n\n\t// The CanChange [can_change, ccc] bool capability indicates terminal can re-define existing colors.\n\tCanChange\n\n\t// The BackColorErase [back_color_erase, bce] bool capability indicates screen erased with background color.\n\tBackColorErase\n\n\t// The HueLightnessSaturation [hue_lightness_saturation, hls] bool capability indicates terminal uses only HLS color notation (Tektronix).\n\tHueLightnessSaturation\n\n\t// The ColAddrGlitch [col_addr_glitch, xhpa] bool capability indicates only positive motion for hpa/mhpa caps.\n\tColAddrGlitch\n\n\t// The CrCancelsMicroMode [cr_cancels_micro_mode, crxm] bool capability indicates using cr turns off micro mode.\n\tCrCancelsMicroMode\n\n\t// The HasPrintWheel [has_print_wheel, daisy] bool capability indicates printer needs operator to change character set.\n\tHasPrintWheel\n\n\t// The RowAddrGlitch [row_addr_glitch, xvpa] bool capability indicates only positive motion for vpa/mvpa caps.\n\tRowAddrGlitch\n\n\t// The SemiAutoRightMargin [semi_auto_right_margin, sam] bool capability indicates printing in last column causes cr.\n\tSemiAutoRightMargin\n\n\t// The CpiChangesRes [cpi_changes_res, cpix] bool capability indicates changing character pitch changes resolution.\n\tCpiChangesRes\n\n\t// The LpiChangesRes [lpi_changes_res, lpix] bool capability indicates changing line pitch changes resolution.\n\tLpiChangesRes\n\n\t// The BackspacesWithBs [backspaces_with_bs, OTbs] bool capability indicates uses ^H to move left.\n\tBackspacesWithBs\n\n\t// The CrtNoScrolling [crt_no_scrolling, OTns] bool capability indicates crt cannot scroll.\n\tCrtNoScrolling\n\n\t// The NoCorrectlyWorkingCr [no_correctly_working_cr, OTnc] bool capability indicates no way to go to start of line.\n\tNoCorrectlyWorkingCr\n\n\t// The GnuHasMetaKey [gnu_has_meta_key, OTMT] bool capability indicates has meta key.\n\tGnuHasMetaKey\n\n\t// The LinefeedIsNewline [linefeed_is_newline, OTNL] bool capability indicates move down with \\n.\n\tLinefeedIsNewline\n\n\t// The HasHardwareTabs [has_hardware_tabs, OTpt] bool capability indicates has 8-char tabs invoked with ^I.\n\tHasHardwareTabs\n\n\t// The ReturnDoesClrEol [return_does_clr_eol, OTxr] bool capability indicates return clears the line.\n\tReturnDoesClrEol\n)\n\n// Num capabilities.\nconst (\n\t// The Columns [columns, cols] num capability is number of columns in a line.\n\tColumns = iota\n\n\t// The InitTabs [init_tabs, it] num capability is tabs initially every # spaces.\n\tInitTabs\n\n\t// The Lines [lines, lines] num capability is number of lines on screen or page.\n\tLines\n\n\t// The LinesOfMemory [lines_of_memory, lm] num capability is lines of memory if > line. 0 means varies.\n\tLinesOfMemory\n\n\t// The MagicCookieGlitch [magic_cookie_glitch, xmc] num capability is number of blank characters left by smso or rmso.\n\tMagicCookieGlitch\n\n\t// The PaddingBaudRate [padding_baud_rate, pb] num capability is lowest baud rate where padding needed.\n\tPaddingBaudRate\n\n\t// The VirtualTerminal [virtual_terminal, vt] num capability is virtual terminal number (CB/unix).\n\tVirtualTerminal\n\n\t// The WidthStatusLine [width_status_line, wsl] num capability is number of columns in status line.\n\tWidthStatusLine\n\n\t// The NumLabels [num_labels, nlab] num capability is number of labels on screen.\n\tNumLabels\n\n\t// The LabelHeight [label_height, lh] num capability is rows in each label.\n\tLabelHeight\n\n\t// The LabelWidth [label_width, lw] num capability is columns in each label.\n\tLabelWidth\n\n\t// The MaxAttributes [max_attributes, ma] num capability is maximum combined attributes terminal can handle.\n\tMaxAttributes\n\n\t// The MaximumWindows [maximum_windows, wnum] num capability is maximum number of definable windows.\n\tMaximumWindows\n\n\t// The MaxColors [max_colors, colors] num capability is maximum number of colors on screen.\n\tMaxColors\n\n\t// The MaxPairs [max_pairs, pairs] num capability is maximum number of color-pairs on the screen.\n\tMaxPairs\n\n\t// The NoColorVideo [no_color_video, ncv] num capability is video attributes that cannot be used with colors.\n\tNoColorVideo\n\n\t// The BufferCapacity [buffer_capacity, bufsz] num capability is numbers of bytes buffered before printing.\n\tBufferCapacity\n\n\t// The DotVertSpacing [dot_vert_spacing, spinv] num capability is spacing of pins vertically in pins per inch.\n\tDotVertSpacing\n\n\t// The DotHorzSpacing [dot_horz_spacing, spinh] num capability is spacing of dots horizontally in dots per inch.\n\tDotHorzSpacing\n\n\t// The MaxMicroAddress [max_micro_address, maddr] num capability is maximum value in micro_..._address.\n\tMaxMicroAddress\n\n\t// The MaxMicroJump [max_micro_jump, mjump] num capability is maximum value in parm_..._micro.\n\tMaxMicroJump\n\n\t// The MicroColSize [micro_col_size, mcs] num capability is character step size when in micro mode.\n\tMicroColSize\n\n\t// The MicroLineSize [micro_line_size, mls] num capability is line step size when in micro mode.\n\tMicroLineSize\n\n\t// The NumberOfPins [number_of_pins, npins] num capability is numbers of pins in print-head.\n\tNumberOfPins\n\n\t// The OutputResChar [output_res_char, orc] num capability is horizontal resolution in units per line.\n\tOutputResChar\n\n\t// The OutputResLine [output_res_line, orl] num capability is vertical resolution in units per line.\n\tOutputResLine\n\n\t// The OutputResHorzInch [output_res_horz_inch, orhi] num capability is horizontal resolution in units per inch.\n\tOutputResHorzInch\n\n\t// The OutputResVertInch [output_res_vert_inch, orvi] num capability is vertical resolution in units per inch.\n\tOutputResVertInch\n\n\t// The PrintRate [print_rate, cps] num capability is print rate in characters per second.\n\tPrintRate\n\n\t// The WideCharSize [wide_char_size, widcs] num capability is character step size when in double wide mode.\n\tWideCharSize\n\n\t// The Buttons [buttons, btns] num capability is number of buttons on mouse.\n\tButtons\n\n\t// The BitImageEntwining [bit_image_entwining, bitwin] num capability is number of passes for each bit-image row.\n\tBitImageEntwining\n\n\t// The BitImageType [bit_image_type, bitype] num capability is type of bit-image device.\n\tBitImageType\n\n\t// The MagicCookieGlitchUl [magic_cookie_glitch_ul, OTug] num capability is number of blanks left by ul.\n\tMagicCookieGlitchUl\n\n\t// The CarriageReturnDelay [carriage_return_delay, OTdC] num capability is pad needed for CR.\n\tCarriageReturnDelay\n\n\t// The NewLineDelay [new_line_delay, OTdN] num capability is pad needed for LF.\n\tNewLineDelay\n\n\t// The BackspaceDelay [backspace_delay, OTdB] num capability is padding required for ^H.\n\tBackspaceDelay\n\n\t// The HorizontalTabDelay [horizontal_tab_delay, OTdT] num capability is padding required for ^I.\n\tHorizontalTabDelay\n\n\t// The NumberOfFunctionKeys [number_of_function_keys, OTkn] num capability is count of function keys.\n\tNumberOfFunctionKeys\n)\n\n// String capabilities.\nconst (\n\t// The BackTab [back_tab, cbt] string capability is the back tab (P).\n\tBackTab = iota\n\n\t// The Bell [bell, bel] string capability is the audible signal (bell) (P).\n\tBell\n\n\t// The CarriageReturn [carriage_return, cr] string capability is the carriage return (P*) (P*).\n\tCarriageReturn\n\n\t// The ChangeScrollRegion [change_scroll_region, csr] string capability is the change region to line #1 to line #2 (P).\n\tChangeScrollRegion\n\n\t// The ClearAllTabs [clear_all_tabs, tbc] string capability is the clear all tab stops (P).\n\tClearAllTabs\n\n\t// The ClearScreen [clear_screen, clear] string capability is the clear screen and home cursor (P*).\n\tClearScreen\n\n\t// The ClrEol [clr_eol, el] string capability is the clear to end of line (P).\n\tClrEol\n\n\t// The ClrEos [clr_eos, ed] string capability is the clear to end of screen (P*).\n\tClrEos\n\n\t// The ColumnAddress [column_address, hpa] string capability is the horizontal position #1, absolute (P).\n\tColumnAddress\n\n\t// The CommandCharacter [command_character, cmdch] string capability is the terminal settable cmd character in prototype !?.\n\tCommandCharacter\n\n\t// The CursorAddress [cursor_address, cup] string capability is the move to row #1 columns #2.\n\tCursorAddress\n\n\t// The CursorDown [cursor_down, cud1] string capability is the down one line.\n\tCursorDown\n\n\t// The CursorHome [cursor_home, home] string capability is the home cursor (if no cup).\n\tCursorHome\n\n\t// The CursorInvisible [cursor_invisible, civis] string capability is the make cursor invisible.\n\tCursorInvisible\n\n\t// The CursorLeft [cursor_left, cub1] string capability is the move left one space.\n\tCursorLeft\n\n\t// The CursorMemAddress [cursor_mem_address, mrcup] string capability is the memory relative cursor addressing, move to row #1 columns #2.\n\tCursorMemAddress\n\n\t// The CursorNormal [cursor_normal, cnorm] string capability is the make cursor appear normal (undo civis/cvvis).\n\tCursorNormal\n\n\t// The CursorRight [cursor_right, cuf1] string capability is the non-destructive space (move right one space).\n\tCursorRight\n\n\t// The CursorToLl [cursor_to_ll, ll] string capability is the last line, first column (if no cup).\n\tCursorToLl\n\n\t// The CursorUp [cursor_up, cuu1] string capability is the up one line.\n\tCursorUp\n\n\t// The CursorVisible [cursor_visible, cvvis] string capability is the make cursor very visible.\n\tCursorVisible\n\n\t// The DeleteCharacter [delete_character, dch1] string capability is the delete character (P*).\n\tDeleteCharacter\n\n\t// The DeleteLine [delete_line, dl1] string capability is the delete line (P*).\n\tDeleteLine\n\n\t// The DisStatusLine [dis_status_line, dsl] string capability is the disable status line.\n\tDisStatusLine\n\n\t// The DownHalfLine [down_half_line, hd] string capability is the half a line down.\n\tDownHalfLine\n\n\t// The EnterAltCharsetMode [enter_alt_charset_mode, smacs] string capability is the start alternate character set (P).\n\tEnterAltCharsetMode\n\n\t// The EnterBlinkMode [enter_blink_mode, blink] string capability is the turn on blinking.\n\tEnterBlinkMode\n\n\t// The EnterBoldMode [enter_bold_mode, bold] string capability is the turn on bold (extra bright) mode.\n\tEnterBoldMode\n\n\t// The EnterCaMode [enter_ca_mode, smcup] string capability is the string to start programs using cup.\n\tEnterCaMode\n\n\t// The EnterDeleteMode [enter_delete_mode, smdc] string capability is the enter delete mode.\n\tEnterDeleteMode\n\n\t// The EnterDimMode [enter_dim_mode, dim] string capability is the turn on half-bright mode.\n\tEnterDimMode\n\n\t// The EnterInsertMode [enter_insert_mode, smir] string capability is the enter insert mode.\n\tEnterInsertMode\n\n\t// The EnterSecureMode [enter_secure_mode, invis] string capability is the turn on blank mode (characters invisible).\n\tEnterSecureMode\n\n\t// The EnterProtectedMode [enter_protected_mode, prot] string capability is the turn on protected mode.\n\tEnterProtectedMode\n\n\t// The EnterReverseMode [enter_reverse_mode, rev] string capability is the turn on reverse video mode.\n\tEnterReverseMode\n\n\t// The EnterStandoutMode [enter_standout_mode, smso] string capability is the begin standout mode.\n\tEnterStandoutMode\n\n\t// The EnterUnderlineMode [enter_underline_mode, smul] string capability is the begin underline mode.\n\tEnterUnderlineMode\n\n\t// The EraseChars [erase_chars, ech] string capability is the erase #1 characters (P).\n\tEraseChars\n\n\t// The ExitAltCharsetMode [exit_alt_charset_mode, rmacs] string capability is the end alternate character set (P).\n\tExitAltCharsetMode\n\n\t// The ExitAttributeMode [exit_attribute_mode, sgr0] string capability is the turn off all attributes.\n\tExitAttributeMode\n\n\t// The ExitCaMode [exit_ca_mode, rmcup] string capability is the strings to end programs using cup.\n\tExitCaMode\n\n\t// The ExitDeleteMode [exit_delete_mode, rmdc] string capability is the end delete mode.\n\tExitDeleteMode\n\n\t// The ExitInsertMode [exit_insert_mode, rmir] string capability is the exit insert mode.\n\tExitInsertMode\n\n\t// The ExitStandoutMode [exit_standout_mode, rmso] string capability is the exit standout mode.\n\tExitStandoutMode\n\n\t// The ExitUnderlineMode [exit_underline_mode, rmul] string capability is the exit underline mode.\n\tExitUnderlineMode\n\n\t// The FlashScreen [flash_screen, flash] string capability is the visible bell (may not move cursor).\n\tFlashScreen\n\n\t// The FormFeed [form_feed, ff] string capability is the hardcopy terminal page eject (P*).\n\tFormFeed\n\n\t// The FromStatusLine [from_status_line, fsl] string capability is the return from status line.\n\tFromStatusLine\n\n\t// The Init1string [init_1string, is1] string capability is the initialization string.\n\tInit1string\n\n\t// The Init2string [init_2string, is2] string capability is the initialization string.\n\tInit2string\n\n\t// The Init3string [init_3string, is3] string capability is the initialization string.\n\tInit3string\n\n\t// The InitFile [init_file, if] string capability is the name of initialization file.\n\tInitFile\n\n\t// The InsertCharacter [insert_character, ich1] string capability is the insert character (P).\n\tInsertCharacter\n\n\t// The InsertLine [insert_line, il1] string capability is the insert line (P*).\n\tInsertLine\n\n\t// The InsertPadding [insert_padding, ip] string capability is the insert padding after inserted character.\n\tInsertPadding\n\n\t// The KeyBackspace [key_backspace, kbs] string capability is the backspace key.\n\tKeyBackspace\n\n\t// The KeyCatab [key_catab, ktbc] string capability is the clear-all-tabs key.\n\tKeyCatab\n\n\t// The KeyClear [key_clear, kclr] string capability is the clear-screen or erase key.\n\tKeyClear\n\n\t// The KeyCtab [key_ctab, kctab] string capability is the clear-tab key.\n\tKeyCtab\n\n\t// The KeyDc [key_dc, kdch1] string capability is the delete-character key.\n\tKeyDc\n\n\t// The KeyDl [key_dl, kdl1] string capability is the delete-line key.\n\tKeyDl\n\n\t// The KeyDown [key_down, kcud1] string capability is the down-arrow key.\n\tKeyDown\n\n\t// The KeyEic [key_eic, krmir] string capability is the sent by rmir or smir in insert mode.\n\tKeyEic\n\n\t// The KeyEol [key_eol, kel] string capability is the clear-to-end-of-line key.\n\tKeyEol\n\n\t// The KeyEos [key_eos, ked] string capability is the clear-to-end-of-screen key.\n\tKeyEos\n\n\t// The KeyF0 [key_f0, kf0] string capability is the F0 function key.\n\tKeyF0\n\n\t// The KeyF1 [key_f1, kf1] string capability is the F1 function key.\n\tKeyF1\n\n\t// The KeyF10 [key_f10, kf10] string capability is the F10 function key.\n\tKeyF10\n\n\t// The KeyF2 [key_f2, kf2] string capability is the F2 function key.\n\tKeyF2\n\n\t// The KeyF3 [key_f3, kf3] string capability is the F3 function key.\n\tKeyF3\n\n\t// The KeyF4 [key_f4, kf4] string capability is the F4 function key.\n\tKeyF4\n\n\t// The KeyF5 [key_f5, kf5] string capability is the F5 function key.\n\tKeyF5\n\n\t// The KeyF6 [key_f6, kf6] string capability is the F6 function key.\n\tKeyF6\n\n\t// The KeyF7 [key_f7, kf7] string capability is the F7 function key.\n\tKeyF7\n\n\t// The KeyF8 [key_f8, kf8] string capability is the F8 function key.\n\tKeyF8\n\n\t// The KeyF9 [key_f9, kf9] string capability is the F9 function key.\n\tKeyF9\n\n\t// The KeyHome [key_home, khome] string capability is the home key.\n\tKeyHome\n\n\t// The KeyIc [key_ic, kich1] string capability is the insert-character key.\n\tKeyIc\n\n\t// The KeyIl [key_il, kil1] string capability is the insert-line key.\n\tKeyIl\n\n\t// The KeyLeft [key_left, kcub1] string capability is the left-arrow key.\n\tKeyLeft\n\n\t// The KeyLl [key_ll, kll] string capability is the lower-left key (home down).\n\tKeyLl\n\n\t// The KeyNpage [key_npage, knp] string capability is the next-page key.\n\tKeyNpage\n\n\t// The KeyPpage [key_ppage, kpp] string capability is the previous-page key.\n\tKeyPpage\n\n\t// The KeyRight [key_right, kcuf1] string capability is the right-arrow key.\n\tKeyRight\n\n\t// The KeySf [key_sf, kind] string capability is the scroll-forward key.\n\tKeySf\n\n\t// The KeySr [key_sr, kri] string capability is the scroll-backward key.\n\tKeySr\n\n\t// The KeyStab [key_stab, khts] string capability is the set-tab key.\n\tKeyStab\n\n\t// The KeyUp [key_up, kcuu1] string capability is the up-arrow key.\n\tKeyUp\n\n\t// The KeypadLocal [keypad_local, rmkx] string capability is the leave 'keyboard_transmit' mode.\n\tKeypadLocal\n\n\t// The KeypadXmit [keypad_xmit, smkx] string capability is the enter 'keyboard_transmit' mode.\n\tKeypadXmit\n\n\t// The LabF0 [lab_f0, lf0] string capability is the label on function key f0 if not f0.\n\tLabF0\n\n\t// The LabF1 [lab_f1, lf1] string capability is the label on function key f1 if not f1.\n\tLabF1\n\n\t// The LabF10 [lab_f10, lf10] string capability is the label on function key f10 if not f10.\n\tLabF10\n\n\t// The LabF2 [lab_f2, lf2] string capability is the label on function key f2 if not f2.\n\tLabF2\n\n\t// The LabF3 [lab_f3, lf3] string capability is the label on function key f3 if not f3.\n\tLabF3\n\n\t// The LabF4 [lab_f4, lf4] string capability is the label on function key f4 if not f4.\n\tLabF4\n\n\t// The LabF5 [lab_f5, lf5] string capability is the label on function key f5 if not f5.\n\tLabF5\n\n\t// The LabF6 [lab_f6, lf6] string capability is the label on function key f6 if not f6.\n\tLabF6\n\n\t// The LabF7 [lab_f7, lf7] string capability is the label on function key f7 if not f7.\n\tLabF7\n\n\t// The LabF8 [lab_f8, lf8] string capability is the label on function key f8 if not f8.\n\tLabF8\n\n\t// The LabF9 [lab_f9, lf9] string capability is the label on function key f9 if not f9.\n\tLabF9\n\n\t// The MetaOff [meta_off, rmm] string capability is the turn off meta mode.\n\tMetaOff\n\n\t// The MetaOn [meta_on, smm] string capability is the turn on meta mode (8th-bit on).\n\tMetaOn\n\n\t// The Newline [newline, nel] string capability is the newline (behave like cr followed by lf).\n\tNewline\n\n\t// The PadChar [pad_char, pad] string capability is the padding char (instead of null).\n\tPadChar\n\n\t// The ParmDch [parm_dch, dch] string capability is the delete #1 characters (P*).\n\tParmDch\n\n\t// The ParmDeleteLine [parm_delete_line, dl] string capability is the delete #1 lines (P*).\n\tParmDeleteLine\n\n\t// The ParmDownCursor [parm_down_cursor, cud] string capability is the down #1 lines (P*).\n\tParmDownCursor\n\n\t// The ParmIch [parm_ich, ich] string capability is the insert #1 characters (P*).\n\tParmIch\n\n\t// The ParmIndex [parm_index, indn] string capability is the scroll forward #1 lines (P).\n\tParmIndex\n\n\t// The ParmInsertLine [parm_insert_line, il] string capability is the insert #1 lines (P*).\n\tParmInsertLine\n\n\t// The ParmLeftCursor [parm_left_cursor, cub] string capability is the move #1 characters to the left (P).\n\tParmLeftCursor\n\n\t// The ParmRightCursor [parm_right_cursor, cuf] string capability is the move #1 characters to the right (P*).\n\tParmRightCursor\n\n\t// The ParmRindex [parm_rindex, rin] string capability is the scroll back #1 lines (P).\n\tParmRindex\n\n\t// The ParmUpCursor [parm_up_cursor, cuu] string capability is the up #1 lines (P*).\n\tParmUpCursor\n\n\t// The PkeyKey [pkey_key, pfkey] string capability is the program function key #1 to type string #2.\n\tPkeyKey\n\n\t// The PkeyLocal [pkey_local, pfloc] string capability is the program function key #1 to execute string #2.\n\tPkeyLocal\n\n\t// The PkeyXmit [pkey_xmit, pfx] string capability is the program function key #1 to transmit string #2.\n\tPkeyXmit\n\n\t// The PrintScreen [print_screen, mc0] string capability is the print contents of screen.\n\tPrintScreen\n\n\t// The PrtrOff [prtr_off, mc4] string capability is the turn off printer.\n\tPrtrOff\n\n\t// The PrtrOn [prtr_on, mc5] string capability is the turn on printer.\n\tPrtrOn\n\n\t// The RepeatChar [repeat_char, rep] string capability is the repeat char #1 #2 times (P*).\n\tRepeatChar\n\n\t// The Reset1string [reset_1string, rs1] string capability is the reset string.\n\tReset1string\n\n\t// The Reset2string [reset_2string, rs2] string capability is the reset string.\n\tReset2string\n\n\t// The Reset3string [reset_3string, rs3] string capability is the reset string.\n\tReset3string\n\n\t// The ResetFile [reset_file, rf] string capability is the name of reset file.\n\tResetFile\n\n\t// The RestoreCursor [restore_cursor, rc] string capability is the restore cursor to position of last save_cursor.\n\tRestoreCursor\n\n\t// The RowAddress [row_address, vpa] string capability is the vertical position #1 absolute (P).\n\tRowAddress\n\n\t// The SaveCursor [save_cursor, sc] string capability is the save current cursor position (P).\n\tSaveCursor\n\n\t// The ScrollForward [scroll_forward, ind] string capability is the scroll text up (P).\n\tScrollForward\n\n\t// The ScrollReverse [scroll_reverse, ri] string capability is the scroll text down (P).\n\tScrollReverse\n\n\t// The SetAttributes [set_attributes, sgr] string capability is the define video attributes #1-#9 (PG9).\n\tSetAttributes\n\n\t// The SetTab [set_tab, hts] string capability is the set a tab in every row, current columns.\n\tSetTab\n\n\t// The SetWindow [set_window, wind] string capability is the current window is lines #1-#2 cols #3-#4.\n\tSetWindow\n\n\t// The Tab [tab, ht] string capability is the tab to next 8-space hardware tab stop.\n\tTab\n\n\t// The ToStatusLine [to_status_line, tsl] string capability is the move to status line, column #1.\n\tToStatusLine\n\n\t// The UnderlineChar [underline_char, uc] string capability is the underline char and move past it.\n\tUnderlineChar\n\n\t// The UpHalfLine [up_half_line, hu] string capability is the half a line up.\n\tUpHalfLine\n\n\t// The InitProg [init_prog, iprog] string capability is the path name of program for initialization.\n\tInitProg\n\n\t// The KeyA1 [key_a1, ka1] string capability is the upper left of keypad.\n\tKeyA1\n\n\t// The KeyA3 [key_a3, ka3] string capability is the upper right of keypad.\n\tKeyA3\n\n\t// The KeyB2 [key_b2, kb2] string capability is the center of keypad.\n\tKeyB2\n\n\t// The KeyC1 [key_c1, kc1] string capability is the lower left of keypad.\n\tKeyC1\n\n\t// The KeyC3 [key_c3, kc3] string capability is the lower right of keypad.\n\tKeyC3\n\n\t// The PrtrNon [prtr_non, mc5p] string capability is the turn on printer for #1 bytes.\n\tPrtrNon\n\n\t// The CharPadding [char_padding, rmp] string capability is the like ip but when in insert mode.\n\tCharPadding\n\n\t// The AcsChars [acs_chars, acsc] string capability is the graphics charset pairs, based on vt100.\n\tAcsChars\n\n\t// The PlabNorm [plab_norm, pln] string capability is the program label #1 to show string #2.\n\tPlabNorm\n\n\t// The KeyBtab [key_btab, kcbt] string capability is the back-tab key.\n\tKeyBtab\n\n\t// The EnterXonMode [enter_xon_mode, smxon] string capability is the turn on xon/xoff handshaking.\n\tEnterXonMode\n\n\t// The ExitXonMode [exit_xon_mode, rmxon] string capability is the turn off xon/xoff handshaking.\n\tExitXonMode\n\n\t// The EnterAmMode [enter_am_mode, smam] string capability is the turn on automatic margins.\n\tEnterAmMode\n\n\t// The ExitAmMode [exit_am_mode, rmam] string capability is the turn off automatic margins.\n\tExitAmMode\n\n\t// The XonCharacter [xon_character, xonc] string capability is the XON character.\n\tXonCharacter\n\n\t// The XoffCharacter [xoff_character, xoffc] string capability is the XOFF character.\n\tXoffCharacter\n\n\t// The EnaAcs [ena_acs, enacs] string capability is the enable alternate char set.\n\tEnaAcs\n\n\t// The LabelOn [label_on, smln] string capability is the turn on soft labels.\n\tLabelOn\n\n\t// The LabelOff [label_off, rmln] string capability is the turn off soft labels.\n\tLabelOff\n\n\t// The KeyBeg [key_beg, kbeg] string capability is the begin key.\n\tKeyBeg\n\n\t// The KeyCancel [key_cancel, kcan] string capability is the cancel key.\n\tKeyCancel\n\n\t// The KeyClose [key_close, kclo] string capability is the close key.\n\tKeyClose\n\n\t// The KeyCommand [key_command, kcmd] string capability is the command key.\n\tKeyCommand\n\n\t// The KeyCopy [key_copy, kcpy] string capability is the copy key.\n\tKeyCopy\n\n\t// The KeyCreate [key_create, kcrt] string capability is the create key.\n\tKeyCreate\n\n\t// The KeyEnd [key_end, kend] string capability is the end key.\n\tKeyEnd\n\n\t// The KeyEnter [key_enter, kent] string capability is the enter/send key.\n\tKeyEnter\n\n\t// The KeyExit [key_exit, kext] string capability is the exit key.\n\tKeyExit\n\n\t// The KeyFind [key_find, kfnd] string capability is the find key.\n\tKeyFind\n\n\t// The KeyHelp [key_help, khlp] string capability is the help key.\n\tKeyHelp\n\n\t// The KeyMark [key_mark, kmrk] string capability is the mark key.\n\tKeyMark\n\n\t// The KeyMessage [key_message, kmsg] string capability is the message key.\n\tKeyMessage\n\n\t// The KeyMove [key_move, kmov] string capability is the move key.\n\tKeyMove\n\n\t// The KeyNext [key_next, knxt] string capability is the next key.\n\tKeyNext\n\n\t// The KeyOpen [key_open, kopn] string capability is the open key.\n\tKeyOpen\n\n\t// The KeyOptions [key_options, kopt] string capability is the options key.\n\tKeyOptions\n\n\t// The KeyPrevious [key_previous, kprv] string capability is the previous key.\n\tKeyPrevious\n\n\t// The KeyPrint [key_print, kprt] string capability is the print key.\n\tKeyPrint\n\n\t// The KeyRedo [key_redo, krdo] string capability is the redo key.\n\tKeyRedo\n\n\t// The KeyReference [key_reference, kref] string capability is the reference key.\n\tKeyReference\n\n\t// The KeyRefresh [key_refresh, krfr] string capability is the refresh key.\n\tKeyRefresh\n\n\t// The KeyReplace [key_replace, krpl] string capability is the replace key.\n\tKeyReplace\n\n\t// The KeyRestart [key_restart, krst] string capability is the restart key.\n\tKeyRestart\n\n\t// The KeyResume [key_resume, kres] string capability is the resume key.\n\tKeyResume\n\n\t// The KeySave [key_save, ksav] string capability is the save key.\n\tKeySave\n\n\t// The KeySuspend [key_suspend, kspd] string capability is the suspend key.\n\tKeySuspend\n\n\t// The KeyUndo [key_undo, kund] string capability is the undo key.\n\tKeyUndo\n\n\t// The KeySbeg [key_sbeg, kBEG] string capability is the shifted begin key.\n\tKeySbeg\n\n\t// The KeyScancel [key_scancel, kCAN] string capability is the shifted cancel key.\n\tKeyScancel\n\n\t// The KeyScommand [key_scommand, kCMD] string capability is the shifted command key.\n\tKeyScommand\n\n\t// The KeyScopy [key_scopy, kCPY] string capability is the shifted copy key.\n\tKeyScopy\n\n\t// The KeyScreate [key_screate, kCRT] string capability is the shifted create key.\n\tKeyScreate\n\n\t// The KeySdc [key_sdc, kDC] string capability is the shifted delete-character key.\n\tKeySdc\n\n\t// The KeySdl [key_sdl, kDL] string capability is the shifted delete-line key.\n\tKeySdl\n\n\t// The KeySelect [key_select, kslt] string capability is the select key.\n\tKeySelect\n\n\t// The KeySend [key_send, kEND] string capability is the shifted end key.\n\tKeySend\n\n\t// The KeySeol [key_seol, kEOL] string capability is the shifted clear-to-end-of-line key.\n\tKeySeol\n\n\t// The KeySexit [key_sexit, kEXT] string capability is the shifted exit key.\n\tKeySexit\n\n\t// The KeySfind [key_sfind, kFND] string capability is the shifted find key.\n\tKeySfind\n\n\t// The KeyShelp [key_shelp, kHLP] string capability is the shifted help key.\n\tKeyShelp\n\n\t// The KeyShome [key_shome, kHOM] string capability is the shifted home key.\n\tKeyShome\n\n\t// The KeySic [key_sic, kIC] string capability is the shifted insert-character key.\n\tKeySic\n\n\t// The KeySleft [key_sleft, kLFT] string capability is the shifted left-arrow key.\n\tKeySleft\n\n\t// The KeySmessage [key_smessage, kMSG] string capability is the shifted message key.\n\tKeySmessage\n\n\t// The KeySmove [key_smove, kMOV] string capability is the shifted move key.\n\tKeySmove\n\n\t// The KeySnext [key_snext, kNXT] string capability is the shifted next key.\n\tKeySnext\n\n\t// The KeySoptions [key_soptions, kOPT] string capability is the shifted options key.\n\tKeySoptions\n\n\t// The KeySprevious [key_sprevious, kPRV] string capability is the shifted previous key.\n\tKeySprevious\n\n\t// The KeySprint [key_sprint, kPRT] string capability is the shifted print key.\n\tKeySprint\n\n\t// The KeySredo [key_sredo, kRDO] string capability is the shifted redo key.\n\tKeySredo\n\n\t// The KeySreplace [key_sreplace, kRPL] string capability is the shifted replace key.\n\tKeySreplace\n\n\t// The KeySright [key_sright, kRIT] string capability is the shifted right-arrow key.\n\tKeySright\n\n\t// The KeySrsume [key_srsume, kRES] string capability is the shifted resume key.\n\tKeySrsume\n\n\t// The KeySsave [key_ssave, kSAV] string capability is the shifted save key.\n\tKeySsave\n\n\t// The KeySsuspend [key_ssuspend, kSPD] string capability is the shifted suspend key.\n\tKeySsuspend\n\n\t// The KeySundo [key_sundo, kUND] string capability is the shifted undo key.\n\tKeySundo\n\n\t// The ReqForInput [req_for_input, rfi] string capability is the send next input char (for ptys).\n\tReqForInput\n\n\t// The KeyF11 [key_f11, kf11] string capability is the F11 function key.\n\tKeyF11\n\n\t// The KeyF12 [key_f12, kf12] string capability is the F12 function key.\n\tKeyF12\n\n\t// The KeyF13 [key_f13, kf13] string capability is the F13 function key.\n\tKeyF13\n\n\t// The KeyF14 [key_f14, kf14] string capability is the F14 function key.\n\tKeyF14\n\n\t// The KeyF15 [key_f15, kf15] string capability is the F15 function key.\n\tKeyF15\n\n\t// The KeyF16 [key_f16, kf16] string capability is the F16 function key.\n\tKeyF16\n\n\t// The KeyF17 [key_f17, kf17] string capability is the F17 function key.\n\tKeyF17\n\n\t// The KeyF18 [key_f18, kf18] string capability is the F18 function key.\n\tKeyF18\n\n\t// The KeyF19 [key_f19, kf19] string capability is the F19 function key.\n\tKeyF19\n\n\t// The KeyF20 [key_f20, kf20] string capability is the F20 function key.\n\tKeyF20\n\n\t// The KeyF21 [key_f21, kf21] string capability is the F21 function key.\n\tKeyF21\n\n\t// The KeyF22 [key_f22, kf22] string capability is the F22 function key.\n\tKeyF22\n\n\t// The KeyF23 [key_f23, kf23] string capability is the F23 function key.\n\tKeyF23\n\n\t// The KeyF24 [key_f24, kf24] string capability is the F24 function key.\n\tKeyF24\n\n\t// The KeyF25 [key_f25, kf25] string capability is the F25 function key.\n\tKeyF25\n\n\t// The KeyF26 [key_f26, kf26] string capability is the F26 function key.\n\tKeyF26\n\n\t// The KeyF27 [key_f27, kf27] string capability is the F27 function key.\n\tKeyF27\n\n\t// The KeyF28 [key_f28, kf28] string capability is the F28 function key.\n\tKeyF28\n\n\t// The KeyF29 [key_f29, kf29] string capability is the F29 function key.\n\tKeyF29\n\n\t// The KeyF30 [key_f30, kf30] string capability is the F30 function key.\n\tKeyF30\n\n\t// The KeyF31 [key_f31, kf31] string capability is the F31 function key.\n\tKeyF31\n\n\t// The KeyF32 [key_f32, kf32] string capability is the F32 function key.\n\tKeyF32\n\n\t// The KeyF33 [key_f33, kf33] string capability is the F33 function key.\n\tKeyF33\n\n\t// The KeyF34 [key_f34, kf34] string capability is the F34 function key.\n\tKeyF34\n\n\t// The KeyF35 [key_f35, kf35] string capability is the F35 function key.\n\tKeyF35\n\n\t// The KeyF36 [key_f36, kf36] string capability is the F36 function key.\n\tKeyF36\n\n\t// The KeyF37 [key_f37, kf37] string capability is the F37 function key.\n\tKeyF37\n\n\t// The KeyF38 [key_f38, kf38] string capability is the F38 function key.\n\tKeyF38\n\n\t// The KeyF39 [key_f39, kf39] string capability is the F39 function key.\n\tKeyF39\n\n\t// The KeyF40 [key_f40, kf40] string capability is the F40 function key.\n\tKeyF40\n\n\t// The KeyF41 [key_f41, kf41] string capability is the F41 function key.\n\tKeyF41\n\n\t// The KeyF42 [key_f42, kf42] string capability is the F42 function key.\n\tKeyF42\n\n\t// The KeyF43 [key_f43, kf43] string capability is the F43 function key.\n\tKeyF43\n\n\t// The KeyF44 [key_f44, kf44] string capability is the F44 function key.\n\tKeyF44\n\n\t// The KeyF45 [key_f45, kf45] string capability is the F45 function key.\n\tKeyF45\n\n\t// The KeyF46 [key_f46, kf46] string capability is the F46 function key.\n\tKeyF46\n\n\t// The KeyF47 [key_f47, kf47] string capability is the F47 function key.\n\tKeyF47\n\n\t// The KeyF48 [key_f48, kf48] string capability is the F48 function key.\n\tKeyF48\n\n\t// The KeyF49 [key_f49, kf49] string capability is the F49 function key.\n\tKeyF49\n\n\t// The KeyF50 [key_f50, kf50] string capability is the F50 function key.\n\tKeyF50\n\n\t// The KeyF51 [key_f51, kf51] string capability is the F51 function key.\n\tKeyF51\n\n\t// The KeyF52 [key_f52, kf52] string capability is the F52 function key.\n\tKeyF52\n\n\t// The KeyF53 [key_f53, kf53] string capability is the F53 function key.\n\tKeyF53\n\n\t// The KeyF54 [key_f54, kf54] string capability is the F54 function key.\n\tKeyF54\n\n\t// The KeyF55 [key_f55, kf55] string capability is the F55 function key.\n\tKeyF55\n\n\t// The KeyF56 [key_f56, kf56] string capability is the F56 function key.\n\tKeyF56\n\n\t// The KeyF57 [key_f57, kf57] string capability is the F57 function key.\n\tKeyF57\n\n\t// The KeyF58 [key_f58, kf58] string capability is the F58 function key.\n\tKeyF58\n\n\t// The KeyF59 [key_f59, kf59] string capability is the F59 function key.\n\tKeyF59\n\n\t// The KeyF60 [key_f60, kf60] string capability is the F60 function key.\n\tKeyF60\n\n\t// The KeyF61 [key_f61, kf61] string capability is the F61 function key.\n\tKeyF61\n\n\t// The KeyF62 [key_f62, kf62] string capability is the F62 function key.\n\tKeyF62\n\n\t// The KeyF63 [key_f63, kf63] string capability is the F63 function key.\n\tKeyF63\n\n\t// The ClrBol [clr_bol, el1] string capability is the Clear to beginning of line.\n\tClrBol\n\n\t// The ClearMargins [clear_margins, mgc] string capability is the clear right and left soft margins.\n\tClearMargins\n\n\t// The SetLeftMargin [set_left_margin, smgl] string capability is the set left soft margin at current column.\t See smgl. (ML is not in BSD termcap).\n\tSetLeftMargin\n\n\t// The SetRightMargin [set_right_margin, smgr] string capability is the set right soft margin at current column.\n\tSetRightMargin\n\n\t// The LabelFormat [label_format, fln] string capability is the label format.\n\tLabelFormat\n\n\t// The SetClock [set_clock, sclk] string capability is the set clock, #1 hrs #2 mins #3 secs.\n\tSetClock\n\n\t// The DisplayClock [display_clock, dclk] string capability is the display clock.\n\tDisplayClock\n\n\t// The RemoveClock [remove_clock, rmclk] string capability is the remove clock.\n\tRemoveClock\n\n\t// The CreateWindow [create_window, cwin] string capability is the define a window #1 from #2,#3 to #4,#5.\n\tCreateWindow\n\n\t// The GotoWindow [goto_window, wingo] string capability is the go to window #1.\n\tGotoWindow\n\n\t// The Hangup [hangup, hup] string capability is the hang-up phone.\n\tHangup\n\n\t// The DialPhone [dial_phone, dial] string capability is the dial number #1.\n\tDialPhone\n\n\t// The QuickDial [quick_dial, qdial] string capability is the dial number #1 without checking.\n\tQuickDial\n\n\t// The Tone [tone, tone] string capability is the select touch tone dialing.\n\tTone\n\n\t// The Pulse [pulse, pulse] string capability is the select pulse dialing.\n\tPulse\n\n\t// The FlashHook [flash_hook, hook] string capability is the flash switch hook.\n\tFlashHook\n\n\t// The FixedPause [fixed_pause, pause] string capability is the pause for 2-3 seconds.\n\tFixedPause\n\n\t// The WaitTone [wait_tone, wait] string capability is the wait for dial-tone.\n\tWaitTone\n\n\t// The User0 [user0, u0] string capability is the User string #0.\n\tUser0\n\n\t// The User1 [user1, u1] string capability is the User string #1.\n\tUser1\n\n\t// The User2 [user2, u2] string capability is the User string #2.\n\tUser2\n\n\t// The User3 [user3, u3] string capability is the User string #3.\n\tUser3\n\n\t// The User4 [user4, u4] string capability is the User string #4.\n\tUser4\n\n\t// The User5 [user5, u5] string capability is the User string #5.\n\tUser5\n\n\t// The User6 [user6, u6] string capability is the User string #6.\n\tUser6\n\n\t// The User7 [user7, u7] string capability is the User string #7.\n\tUser7\n\n\t// The User8 [user8, u8] string capability is the User string #8.\n\tUser8\n\n\t// The User9 [user9, u9] string capability is the User string #9.\n\tUser9\n\n\t// The OrigPair [orig_pair, op] string capability is the Set default pair to its original value.\n\tOrigPair\n\n\t// The OrigColors [orig_colors, oc] string capability is the Set all color pairs to the original ones.\n\tOrigColors\n\n\t// The InitializeColor [initialize_color, initc] string capability is the initialize color #1 to (#2,#3,#4).\n\tInitializeColor\n\n\t// The InitializePair [initialize_pair, initp] string capability is the Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7).\n\tInitializePair\n\n\t// The SetColorPair [set_color_pair, scp] string capability is the Set current color pair to #1.\n\tSetColorPair\n\n\t// The SetForeground [set_foreground, setf] string capability is the Set foreground color #1.\n\tSetForeground\n\n\t// The SetBackground [set_background, setb] string capability is the Set background color #1.\n\tSetBackground\n\n\t// The ChangeCharPitch [change_char_pitch, cpi] string capability is the Change number of characters per inch to #1.\n\tChangeCharPitch\n\n\t// The ChangeLinePitch [change_line_pitch, lpi] string capability is the Change number of lines per inch to #1.\n\tChangeLinePitch\n\n\t// The ChangeResHorz [change_res_horz, chr] string capability is the Change horizontal resolution to #1.\n\tChangeResHorz\n\n\t// The ChangeResVert [change_res_vert, cvr] string capability is the Change vertical resolution to #1.\n\tChangeResVert\n\n\t// The DefineChar [define_char, defc] string capability is the Define a character #1, #2 dots wide, descender #3.\n\tDefineChar\n\n\t// The EnterDoublewideMode [enter_doublewide_mode, swidm] string capability is the Enter double-wide mode.\n\tEnterDoublewideMode\n\n\t// The EnterDraftQuality [enter_draft_quality, sdrfq] string capability is the Enter draft-quality mode.\n\tEnterDraftQuality\n\n\t// The EnterItalicsMode [enter_italics_mode, sitm] string capability is the Enter italic mode.\n\tEnterItalicsMode\n\n\t// The EnterLeftwardMode [enter_leftward_mode, slm] string capability is the Start leftward carriage motion.\n\tEnterLeftwardMode\n\n\t// The EnterMicroMode [enter_micro_mode, smicm] string capability is the Start micro-motion mode.\n\tEnterMicroMode\n\n\t// The EnterNearLetterQuality [enter_near_letter_quality, snlq] string capability is the Enter NLQ mode.\n\tEnterNearLetterQuality\n\n\t// The EnterNormalQuality [enter_normal_quality, snrmq] string capability is the Enter normal-quality mode.\n\tEnterNormalQuality\n\n\t// The EnterShadowMode [enter_shadow_mode, sshm] string capability is the Enter shadow-print mode.\n\tEnterShadowMode\n\n\t// The EnterSubscriptMode [enter_subscript_mode, ssubm] string capability is the Enter subscript mode.\n\tEnterSubscriptMode\n\n\t// The EnterSuperscriptMode [enter_superscript_mode, ssupm] string capability is the Enter superscript mode.\n\tEnterSuperscriptMode\n\n\t// The EnterUpwardMode [enter_upward_mode, sum] string capability is the Start upward carriage motion.\n\tEnterUpwardMode\n\n\t// The ExitDoublewideMode [exit_doublewide_mode, rwidm] string capability is the End double-wide mode.\n\tExitDoublewideMode\n\n\t// The ExitItalicsMode [exit_italics_mode, ritm] string capability is the End italic mode.\n\tExitItalicsMode\n\n\t// The ExitLeftwardMode [exit_leftward_mode, rlm] string capability is the End left-motion mode.\n\tExitLeftwardMode\n\n\t// The ExitMicroMode [exit_micro_mode, rmicm] string capability is the End micro-motion mode.\n\tExitMicroMode\n\n\t// The ExitShadowMode [exit_shadow_mode, rshm] string capability is the End shadow-print mode.\n\tExitShadowMode\n\n\t// The ExitSubscriptMode [exit_subscript_mode, rsubm] string capability is the End subscript mode.\n\tExitSubscriptMode\n\n\t// The ExitSuperscriptMode [exit_superscript_mode, rsupm] string capability is the End superscript mode.\n\tExitSuperscriptMode\n\n\t// The ExitUpwardMode [exit_upward_mode, rum] string capability is the End reverse character motion.\n\tExitUpwardMode\n\n\t// The MicroColumnAddress [micro_column_address, mhpa] string capability is the Like column_address in micro mode.\n\tMicroColumnAddress\n\n\t// The MicroDown [micro_down, mcud1] string capability is the Like cursor_down in micro mode.\n\tMicroDown\n\n\t// The MicroLeft [micro_left, mcub1] string capability is the Like cursor_left in micro mode.\n\tMicroLeft\n\n\t// The MicroRight [micro_right, mcuf1] string capability is the Like cursor_right in micro mode.\n\tMicroRight\n\n\t// The MicroRowAddress [micro_row_address, mvpa] string capability is the Like row_address #1 in micro mode.\n\tMicroRowAddress\n\n\t// The MicroUp [micro_up, mcuu1] string capability is the Like cursor_up in micro mode.\n\tMicroUp\n\n\t// The OrderOfPins [order_of_pins, porder] string capability is the Match software bits to print-head pins.\n\tOrderOfPins\n\n\t// The ParmDownMicro [parm_down_micro, mcud] string capability is the Like parm_down_cursor in micro mode.\n\tParmDownMicro\n\n\t// The ParmLeftMicro [parm_left_micro, mcub] string capability is the Like parm_left_cursor in micro mode.\n\tParmLeftMicro\n\n\t// The ParmRightMicro [parm_right_micro, mcuf] string capability is the Like parm_right_cursor in micro mode.\n\tParmRightMicro\n\n\t// The ParmUpMicro [parm_up_micro, mcuu] string capability is the Like parm_up_cursor in micro mode.\n\tParmUpMicro\n\n\t// The SelectCharSet [select_char_set, scs] string capability is the Select character set, #1.\n\tSelectCharSet\n\n\t// The SetBottomMargin [set_bottom_margin, smgb] string capability is the Set bottom margin at current line.\n\tSetBottomMargin\n\n\t// The SetBottomMarginParm [set_bottom_margin_parm, smgbp] string capability is the Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom.\n\tSetBottomMarginParm\n\n\t// The SetLeftMarginParm [set_left_margin_parm, smglp] string capability is the Set left (right) margin at column #1.\n\tSetLeftMarginParm\n\n\t// The SetRightMarginParm [set_right_margin_parm, smgrp] string capability is the Set right margin at column #1.\n\tSetRightMarginParm\n\n\t// The SetTopMargin [set_top_margin, smgt] string capability is the Set top margin at current line.\n\tSetTopMargin\n\n\t// The SetTopMarginParm [set_top_margin_parm, smgtp] string capability is the Set top (bottom) margin at row #1.\n\tSetTopMarginParm\n\n\t// The StartBitImage [start_bit_image, sbim] string capability is the Start printing bit image graphics.\n\tStartBitImage\n\n\t// The StartCharSetDef [start_char_set_def, scsd] string capability is the Start character set definition #1, with #2 characters in the set.\n\tStartCharSetDef\n\n\t// The StopBitImage [stop_bit_image, rbim] string capability is the Stop printing bit image graphics.\n\tStopBitImage\n\n\t// The StopCharSetDef [stop_char_set_def, rcsd] string capability is the End definition of character set #1.\n\tStopCharSetDef\n\n\t// The SubscriptCharacters [subscript_characters, subcs] string capability is the List of subscriptable characters.\n\tSubscriptCharacters\n\n\t// The SuperscriptCharacters [superscript_characters, supcs] string capability is the List of superscriptable characters.\n\tSuperscriptCharacters\n\n\t// The TheseCauseCr [these_cause_cr, docr] string capability is the Printing any of these characters causes CR.\n\tTheseCauseCr\n\n\t// The ZeroMotion [zero_motion, zerom] string capability is the No motion for subsequent character.\n\tZeroMotion\n\n\t// The CharSetNames [char_set_names, csnm] string capability is the Produce #1'th item from list of character set names.\n\tCharSetNames\n\n\t// The KeyMouse [key_mouse, kmous] string capability is the Mouse event has occurred.\n\tKeyMouse\n\n\t// The MouseInfo [mouse_info, minfo] string capability is the Mouse status information.\n\tMouseInfo\n\n\t// The ReqMousePos [req_mouse_pos, reqmp] string capability is the Request mouse position.\n\tReqMousePos\n\n\t// The GetMouse [get_mouse, getm] string capability is the Curses should get button events, parameter #1 not documented.\n\tGetMouse\n\n\t// The SetAForeground [set_a_foreground, setaf] string capability is the Set foreground color to #1, using ANSI escape.\n\tSetAForeground\n\n\t// The SetABackground [set_a_background, setab] string capability is the Set background color to #1, using ANSI escape.\n\tSetABackground\n\n\t// The PkeyPlab [pkey_plab, pfxl] string capability is the Program function key #1 to type string #2 and show string #3.\n\tPkeyPlab\n\n\t// The DeviceType [device_type, devt] string capability is the Indicate language/codeset support.\n\tDeviceType\n\n\t// The CodeSetInit [code_set_init, csin] string capability is the Init sequence for multiple codesets.\n\tCodeSetInit\n\n\t// The Set0DesSeq [set0_des_seq, s0ds] string capability is the Shift to codeset 0 (EUC set 0, ASCII).\n\tSet0DesSeq\n\n\t// The Set1DesSeq [set1_des_seq, s1ds] string capability is the Shift to codeset 1.\n\tSet1DesSeq\n\n\t// The Set2DesSeq [set2_des_seq, s2ds] string capability is the Shift to codeset 2.\n\tSet2DesSeq\n\n\t// The Set3DesSeq [set3_des_seq, s3ds] string capability is the Shift to codeset 3.\n\tSet3DesSeq\n\n\t// The SetLrMargin [set_lr_margin, smglr] string capability is the Set both left and right margins to #1, #2.  (ML is not in BSD termcap).\n\tSetLrMargin\n\n\t// The SetTbMargin [set_tb_margin, smgtb] string capability is the Sets both top and bottom margins to #1, #2.\n\tSetTbMargin\n\n\t// The BitImageRepeat [bit_image_repeat, birep] string capability is the Repeat bit image cell #1 #2 times.\n\tBitImageRepeat\n\n\t// The BitImageNewline [bit_image_newline, binel] string capability is the Move to next row of the bit image.\n\tBitImageNewline\n\n\t// The BitImageCarriageReturn [bit_image_carriage_return, bicr] string capability is the Move to beginning of same row.\n\tBitImageCarriageReturn\n\n\t// The ColorNames [color_names, colornm] string capability is the Give name for color #1.\n\tColorNames\n\n\t// The DefineBitImageRegion [define_bit_image_region, defbi] string capability is the Define rectangular bit image region.\n\tDefineBitImageRegion\n\n\t// The EndBitImageRegion [end_bit_image_region, endbi] string capability is the End a bit-image region.\n\tEndBitImageRegion\n\n\t// The SetColorBand [set_color_band, setcolor] string capability is the Change to ribbon color #1.\n\tSetColorBand\n\n\t// The SetPageLength [set_page_length, slines] string capability is the Set page length to #1 lines.\n\tSetPageLength\n\n\t// The DisplayPcChar [display_pc_char, dispc] string capability is the Display PC character #1.\n\tDisplayPcChar\n\n\t// The EnterPcCharsetMode [enter_pc_charset_mode, smpch] string capability is the Enter PC character display mode.\n\tEnterPcCharsetMode\n\n\t// The ExitPcCharsetMode [exit_pc_charset_mode, rmpch] string capability is the Exit PC character display mode.\n\tExitPcCharsetMode\n\n\t// The EnterScancodeMode [enter_scancode_mode, smsc] string capability is the Enter PC scancode mode.\n\tEnterScancodeMode\n\n\t// The ExitScancodeMode [exit_scancode_mode, rmsc] string capability is the Exit PC scancode mode.\n\tExitScancodeMode\n\n\t// The PcTermOptions [pc_term_options, pctrm] string capability is the PC terminal options.\n\tPcTermOptions\n\n\t// The ScancodeEscape [scancode_escape, scesc] string capability is the Escape for scancode emulation.\n\tScancodeEscape\n\n\t// The AltScancodeEsc [alt_scancode_esc, scesa] string capability is the Alternate escape for scancode emulation.\n\tAltScancodeEsc\n\n\t// The EnterHorizontalHlMode [enter_horizontal_hl_mode, ehhlm] string capability is the Enter horizontal highlight mode.\n\tEnterHorizontalHlMode\n\n\t// The EnterLeftHlMode [enter_left_hl_mode, elhlm] string capability is the Enter left highlight mode.\n\tEnterLeftHlMode\n\n\t// The EnterLowHlMode [enter_low_hl_mode, elohlm] string capability is the Enter low highlight mode.\n\tEnterLowHlMode\n\n\t// The EnterRightHlMode [enter_right_hl_mode, erhlm] string capability is the Enter right highlight mode.\n\tEnterRightHlMode\n\n\t// The EnterTopHlMode [enter_top_hl_mode, ethlm] string capability is the Enter top highlight mode.\n\tEnterTopHlMode\n\n\t// The EnterVerticalHlMode [enter_vertical_hl_mode, evhlm] string capability is the Enter vertical highlight mode.\n\tEnterVerticalHlMode\n\n\t// The SetAAttributes [set_a_attributes, sgr1] string capability is the Define second set of video attributes #1-#6.\n\tSetAAttributes\n\n\t// The SetPglenInch [set_pglen_inch, slength] string capability is the Set page length to #1 hundredth of an inch (some implementations use sL for termcap).\n\tSetPglenInch\n\n\t// The TermcapInit2 [termcap_init2, OTi2] string capability is the secondary initialization string.\n\tTermcapInit2\n\n\t// The TermcapReset [termcap_reset, OTrs] string capability is the terminal reset string.\n\tTermcapReset\n\n\t// The LinefeedIfNotLf [linefeed_if_not_lf, OTnl] string capability is the use to move down.\n\tLinefeedIfNotLf\n\n\t// The BackspaceIfNotBs [backspace_if_not_bs, OTbc] string capability is the move left, if not ^H.\n\tBackspaceIfNotBs\n\n\t// The OtherNonFunctionKeys [other_non_function_keys, OTko] string capability is the list of self-mapped keycaps.\n\tOtherNonFunctionKeys\n\n\t// The ArrowKeyMap [arrow_key_map, OTma] string capability is the map motion-keys for vi version 2.\n\tArrowKeyMap\n\n\t// The AcsUlcorner [acs_ulcorner, OTG2] string capability is the single upper left.\n\tAcsUlcorner\n\n\t// The AcsLlcorner [acs_llcorner, OTG3] string capability is the single lower left.\n\tAcsLlcorner\n\n\t// The AcsUrcorner [acs_urcorner, OTG1] string capability is the single upper right.\n\tAcsUrcorner\n\n\t// The AcsLrcorner [acs_lrcorner, OTG4] string capability is the single lower right.\n\tAcsLrcorner\n\n\t// The AcsLtee [acs_ltee, OTGR] string capability is the tee pointing right.\n\tAcsLtee\n\n\t// The AcsRtee [acs_rtee, OTGL] string capability is the tee pointing left.\n\tAcsRtee\n\n\t// The AcsBtee [acs_btee, OTGU] string capability is the tee pointing up.\n\tAcsBtee\n\n\t// The AcsTtee [acs_ttee, OTGD] string capability is the tee pointing down.\n\tAcsTtee\n\n\t// The AcsHline [acs_hline, OTGH] string capability is the single horizontal line.\n\tAcsHline\n\n\t// The AcsVline [acs_vline, OTGV] string capability is the single vertical line.\n\tAcsVline\n\n\t// The AcsPlus [acs_plus, OTGC] string capability is the single intersection.\n\tAcsPlus\n\n\t// The MemoryLock [memory_lock, meml] string capability is the lock memory above cursor.\n\tMemoryLock\n\n\t// The MemoryUnlock [memory_unlock, memu] string capability is the unlock memory.\n\tMemoryUnlock\n\n\t// The BoxChars1 [box_chars_1, box1] string capability is the box characters primary set.\n\tBoxChars1\n)\n\nconst (\n\t// CapCountBool is the count of bool capabilities.\n\tCapCountBool = ReturnDoesClrEol + 1\n\n\t// CapCountNum is the count of num capabilities.\n\tCapCountNum = NumberOfFunctionKeys + 1\n\n\t// CapCountString is the count of string capabilities.\n\tCapCountString = BoxChars1 + 1\n)\n\n// boolCapNames are the bool term cap names.\nvar boolCapNames = [...]string{\n\t\"auto_left_margin\", \"bw\",\n\t\"auto_right_margin\", \"am\",\n\t\"no_esc_ctlc\", \"xsb\",\n\t\"ceol_standout_glitch\", \"xhp\",\n\t\"eat_newline_glitch\", \"xenl\",\n\t\"erase_overstrike\", \"eo\",\n\t\"generic_type\", \"gn\",\n\t\"hard_copy\", \"hc\",\n\t\"has_meta_key\", \"km\",\n\t\"has_status_line\", \"hs\",\n\t\"insert_null_glitch\", \"in\",\n\t\"memory_above\", \"da\",\n\t\"memory_below\", \"db\",\n\t\"move_insert_mode\", \"mir\",\n\t\"move_standout_mode\", \"msgr\",\n\t\"over_strike\", \"os\",\n\t\"status_line_esc_ok\", \"eslok\",\n\t\"dest_tabs_magic_smso\", \"xt\",\n\t\"tilde_glitch\", \"hz\",\n\t\"transparent_underline\", \"ul\",\n\t\"xon_xoff\", \"xon\",\n\t\"needs_xon_xoff\", \"nxon\",\n\t\"prtr_silent\", \"mc5i\",\n\t\"hard_cursor\", \"chts\",\n\t\"non_rev_rmcup\", \"nrrmc\",\n\t\"no_pad_char\", \"npc\",\n\t\"non_dest_scroll_region\", \"ndscr\",\n\t\"can_change\", \"ccc\",\n\t\"back_color_erase\", \"bce\",\n\t\"hue_lightness_saturation\", \"hls\",\n\t\"col_addr_glitch\", \"xhpa\",\n\t\"cr_cancels_micro_mode\", \"crxm\",\n\t\"has_print_wheel\", \"daisy\",\n\t\"row_addr_glitch\", \"xvpa\",\n\t\"semi_auto_right_margin\", \"sam\",\n\t\"cpi_changes_res\", \"cpix\",\n\t\"lpi_changes_res\", \"lpix\",\n\t\"backspaces_with_bs\", \"OTbs\",\n\t\"crt_no_scrolling\", \"OTns\",\n\t\"no_correctly_working_cr\", \"OTnc\",\n\t\"gnu_has_meta_key\", \"OTMT\",\n\t\"linefeed_is_newline\", \"OTNL\",\n\t\"has_hardware_tabs\", \"OTpt\",\n\t\"return_does_clr_eol\", \"OTxr\",\n}\n\n// numCapNames are the num term cap names.\nvar numCapNames = [...]string{\n\t\"columns\", \"cols\",\n\t\"init_tabs\", \"it\",\n\t\"lines\", \"lines\",\n\t\"lines_of_memory\", \"lm\",\n\t\"magic_cookie_glitch\", \"xmc\",\n\t\"padding_baud_rate\", \"pb\",\n\t\"virtual_terminal\", \"vt\",\n\t\"width_status_line\", \"wsl\",\n\t\"num_labels\", \"nlab\",\n\t\"label_height\", \"lh\",\n\t\"label_width\", \"lw\",\n\t\"max_attributes\", \"ma\",\n\t\"maximum_windows\", \"wnum\",\n\t\"max_colors\", \"colors\",\n\t\"max_pairs\", \"pairs\",\n\t\"no_color_video\", \"ncv\",\n\t\"buffer_capacity\", \"bufsz\",\n\t\"dot_vert_spacing\", \"spinv\",\n\t\"dot_horz_spacing\", \"spinh\",\n\t\"max_micro_address\", \"maddr\",\n\t\"max_micro_jump\", \"mjump\",\n\t\"micro_col_size\", \"mcs\",\n\t\"micro_line_size\", \"mls\",\n\t\"number_of_pins\", \"npins\",\n\t\"output_res_char\", \"orc\",\n\t\"output_res_line\", \"orl\",\n\t\"output_res_horz_inch\", \"orhi\",\n\t\"output_res_vert_inch\", \"orvi\",\n\t\"print_rate\", \"cps\",\n\t\"wide_char_size\", \"widcs\",\n\t\"buttons\", \"btns\",\n\t\"bit_image_entwining\", \"bitwin\",\n\t\"bit_image_type\", \"bitype\",\n\t\"magic_cookie_glitch_ul\", \"OTug\",\n\t\"carriage_return_delay\", \"OTdC\",\n\t\"new_line_delay\", \"OTdN\",\n\t\"backspace_delay\", \"OTdB\",\n\t\"horizontal_tab_delay\", \"OTdT\",\n\t\"number_of_function_keys\", \"OTkn\",\n}\n\n// stringCapNames are the string term cap names.\nvar stringCapNames = [...]string{\n\t\"back_tab\", \"cbt\",\n\t\"bell\", \"bel\",\n\t\"carriage_return\", \"cr\",\n\t\"change_scroll_region\", \"csr\",\n\t\"clear_all_tabs\", \"tbc\",\n\t\"clear_screen\", \"clear\",\n\t\"clr_eol\", \"el\",\n\t\"clr_eos\", \"ed\",\n\t\"column_address\", \"hpa\",\n\t\"command_character\", \"cmdch\",\n\t\"cursor_address\", \"cup\",\n\t\"cursor_down\", \"cud1\",\n\t\"cursor_home\", \"home\",\n\t\"cursor_invisible\", \"civis\",\n\t\"cursor_left\", \"cub1\",\n\t\"cursor_mem_address\", \"mrcup\",\n\t\"cursor_normal\", \"cnorm\",\n\t\"cursor_right\", \"cuf1\",\n\t\"cursor_to_ll\", \"ll\",\n\t\"cursor_up\", \"cuu1\",\n\t\"cursor_visible\", \"cvvis\",\n\t\"delete_character\", \"dch1\",\n\t\"delete_line\", \"dl1\",\n\t\"dis_status_line\", \"dsl\",\n\t\"down_half_line\", \"hd\",\n\t\"enter_alt_charset_mode\", \"smacs\",\n\t\"enter_blink_mode\", \"blink\",\n\t\"enter_bold_mode\", \"bold\",\n\t\"enter_ca_mode\", \"smcup\",\n\t\"enter_delete_mode\", \"smdc\",\n\t\"enter_dim_mode\", \"dim\",\n\t\"enter_insert_mode\", \"smir\",\n\t\"enter_secure_mode\", \"invis\",\n\t\"enter_protected_mode\", \"prot\",\n\t\"enter_reverse_mode\", \"rev\",\n\t\"enter_standout_mode\", \"smso\",\n\t\"enter_underline_mode\", \"smul\",\n\t\"erase_chars\", \"ech\",\n\t\"exit_alt_charset_mode\", \"rmacs\",\n\t\"exit_attribute_mode\", \"sgr0\",\n\t\"exit_ca_mode\", \"rmcup\",\n\t\"exit_delete_mode\", \"rmdc\",\n\t\"exit_insert_mode\", \"rmir\",\n\t\"exit_standout_mode\", \"rmso\",\n\t\"exit_underline_mode\", \"rmul\",\n\t\"flash_screen\", \"flash\",\n\t\"form_feed\", \"ff\",\n\t\"from_status_line\", \"fsl\",\n\t\"init_1string\", \"is1\",\n\t\"init_2string\", \"is2\",\n\t\"init_3string\", \"is3\",\n\t\"init_file\", \"if\",\n\t\"insert_character\", \"ich1\",\n\t\"insert_line\", \"il1\",\n\t\"insert_padding\", \"ip\",\n\t\"key_backspace\", \"kbs\",\n\t\"key_catab\", \"ktbc\",\n\t\"key_clear\", \"kclr\",\n\t\"key_ctab\", \"kctab\",\n\t\"key_dc\", \"kdch1\",\n\t\"key_dl\", \"kdl1\",\n\t\"key_down\", \"kcud1\",\n\t\"key_eic\", \"krmir\",\n\t\"key_eol\", \"kel\",\n\t\"key_eos\", \"ked\",\n\t\"key_f0\", \"kf0\",\n\t\"key_f1\", \"kf1\",\n\t\"key_f10\", \"kf10\",\n\t\"key_f2\", \"kf2\",\n\t\"key_f3\", \"kf3\",\n\t\"key_f4\", \"kf4\",\n\t\"key_f5\", \"kf5\",\n\t\"key_f6\", \"kf6\",\n\t\"key_f7\", \"kf7\",\n\t\"key_f8\", \"kf8\",\n\t\"key_f9\", \"kf9\",\n\t\"key_home\", \"khome\",\n\t\"key_ic\", \"kich1\",\n\t\"key_il\", \"kil1\",\n\t\"key_left\", \"kcub1\",\n\t\"key_ll\", \"kll\",\n\t\"key_npage\", \"knp\",\n\t\"key_ppage\", \"kpp\",\n\t\"key_right\", \"kcuf1\",\n\t\"key_sf\", \"kind\",\n\t\"key_sr\", \"kri\",\n\t\"key_stab\", \"khts\",\n\t\"key_up\", \"kcuu1\",\n\t\"keypad_local\", \"rmkx\",\n\t\"keypad_xmit\", \"smkx\",\n\t\"lab_f0\", \"lf0\",\n\t\"lab_f1\", \"lf1\",\n\t\"lab_f10\", \"lf10\",\n\t\"lab_f2\", \"lf2\",\n\t\"lab_f3\", \"lf3\",\n\t\"lab_f4\", \"lf4\",\n\t\"lab_f5\", \"lf5\",\n\t\"lab_f6\", \"lf6\",\n\t\"lab_f7\", \"lf7\",\n\t\"lab_f8\", \"lf8\",\n\t\"lab_f9\", \"lf9\",\n\t\"meta_off\", \"rmm\",\n\t\"meta_on\", \"smm\",\n\t\"newline\", \"nel\",\n\t\"pad_char\", \"pad\",\n\t\"parm_dch\", \"dch\",\n\t\"parm_delete_line\", \"dl\",\n\t\"parm_down_cursor\", \"cud\",\n\t\"parm_ich\", \"ich\",\n\t\"parm_index\", \"indn\",\n\t\"parm_insert_line\", \"il\",\n\t\"parm_left_cursor\", \"cub\",\n\t\"parm_right_cursor\", \"cuf\",\n\t\"parm_rindex\", \"rin\",\n\t\"parm_up_cursor\", \"cuu\",\n\t\"pkey_key\", \"pfkey\",\n\t\"pkey_local\", \"pfloc\",\n\t\"pkey_xmit\", \"pfx\",\n\t\"print_screen\", \"mc0\",\n\t\"prtr_off\", \"mc4\",\n\t\"prtr_on\", \"mc5\",\n\t\"repeat_char\", \"rep\",\n\t\"reset_1string\", \"rs1\",\n\t\"reset_2string\", \"rs2\",\n\t\"reset_3string\", \"rs3\",\n\t\"reset_file\", \"rf\",\n\t\"restore_cursor\", \"rc\",\n\t\"row_address\", \"vpa\",\n\t\"save_cursor\", \"sc\",\n\t\"scroll_forward\", \"ind\",\n\t\"scroll_reverse\", \"ri\",\n\t\"set_attributes\", \"sgr\",\n\t\"set_tab\", \"hts\",\n\t\"set_window\", \"wind\",\n\t\"tab\", \"ht\",\n\t\"to_status_line\", \"tsl\",\n\t\"underline_char\", \"uc\",\n\t\"up_half_line\", \"hu\",\n\t\"init_prog\", \"iprog\",\n\t\"key_a1\", \"ka1\",\n\t\"key_a3\", \"ka3\",\n\t\"key_b2\", \"kb2\",\n\t\"key_c1\", \"kc1\",\n\t\"key_c3\", \"kc3\",\n\t\"prtr_non\", \"mc5p\",\n\t\"char_padding\", \"rmp\",\n\t\"acs_chars\", \"acsc\",\n\t\"plab_norm\", \"pln\",\n\t\"key_btab\", \"kcbt\",\n\t\"enter_xon_mode\", \"smxon\",\n\t\"exit_xon_mode\", \"rmxon\",\n\t\"enter_am_mode\", \"smam\",\n\t\"exit_am_mode\", \"rmam\",\n\t\"xon_character\", \"xonc\",\n\t\"xoff_character\", \"xoffc\",\n\t\"ena_acs\", \"enacs\",\n\t\"label_on\", \"smln\",\n\t\"label_off\", \"rmln\",\n\t\"key_beg\", \"kbeg\",\n\t\"key_cancel\", \"kcan\",\n\t\"key_close\", \"kclo\",\n\t\"key_command\", \"kcmd\",\n\t\"key_copy\", \"kcpy\",\n\t\"key_create\", \"kcrt\",\n\t\"key_end\", \"kend\",\n\t\"key_enter\", \"kent\",\n\t\"key_exit\", \"kext\",\n\t\"key_find\", \"kfnd\",\n\t\"key_help\", \"khlp\",\n\t\"key_mark\", \"kmrk\",\n\t\"key_message\", \"kmsg\",\n\t\"key_move\", \"kmov\",\n\t\"key_next\", \"knxt\",\n\t\"key_open\", \"kopn\",\n\t\"key_options\", \"kopt\",\n\t\"key_previous\", \"kprv\",\n\t\"key_print\", \"kprt\",\n\t\"key_redo\", \"krdo\",\n\t\"key_reference\", \"kref\",\n\t\"key_refresh\", \"krfr\",\n\t\"key_replace\", \"krpl\",\n\t\"key_restart\", \"krst\",\n\t\"key_resume\", \"kres\",\n\t\"key_save\", \"ksav\",\n\t\"key_suspend\", \"kspd\",\n\t\"key_undo\", \"kund\",\n\t\"key_sbeg\", \"kBEG\",\n\t\"key_scancel\", \"kCAN\",\n\t\"key_scommand\", \"kCMD\",\n\t\"key_scopy\", \"kCPY\",\n\t\"key_screate\", \"kCRT\",\n\t\"key_sdc\", \"kDC\",\n\t\"key_sdl\", \"kDL\",\n\t\"key_select\", \"kslt\",\n\t\"key_send\", \"kEND\",\n\t\"key_seol\", \"kEOL\",\n\t\"key_sexit\", \"kEXT\",\n\t\"key_sfind\", \"kFND\",\n\t\"key_shelp\", \"kHLP\",\n\t\"key_shome\", \"kHOM\",\n\t\"key_sic\", \"kIC\",\n\t\"key_sleft\", \"kLFT\",\n\t\"key_smessage\", \"kMSG\",\n\t\"key_smove\", \"kMOV\",\n\t\"key_snext\", \"kNXT\",\n\t\"key_soptions\", \"kOPT\",\n\t\"key_sprevious\", \"kPRV\",\n\t\"key_sprint\", \"kPRT\",\n\t\"key_sredo\", \"kRDO\",\n\t\"key_sreplace\", \"kRPL\",\n\t\"key_sright\", \"kRIT\",\n\t\"key_srsume\", \"kRES\",\n\t\"key_ssave\", \"kSAV\",\n\t\"key_ssuspend\", \"kSPD\",\n\t\"key_sundo\", \"kUND\",\n\t\"req_for_input\", \"rfi\",\n\t\"key_f11\", \"kf11\",\n\t\"key_f12\", \"kf12\",\n\t\"key_f13\", \"kf13\",\n\t\"key_f14\", \"kf14\",\n\t\"key_f15\", \"kf15\",\n\t\"key_f16\", \"kf16\",\n\t\"key_f17\", \"kf17\",\n\t\"key_f18\", \"kf18\",\n\t\"key_f19\", \"kf19\",\n\t\"key_f20\", \"kf20\",\n\t\"key_f21\", \"kf21\",\n\t\"key_f22\", \"kf22\",\n\t\"key_f23\", \"kf23\",\n\t\"key_f24\", \"kf24\",\n\t\"key_f25\", \"kf25\",\n\t\"key_f26\", \"kf26\",\n\t\"key_f27\", \"kf27\",\n\t\"key_f28\", \"kf28\",\n\t\"key_f29\", \"kf29\",\n\t\"key_f30\", \"kf30\",\n\t\"key_f31\", \"kf31\",\n\t\"key_f32\", \"kf32\",\n\t\"key_f33\", \"kf33\",\n\t\"key_f34\", \"kf34\",\n\t\"key_f35\", \"kf35\",\n\t\"key_f36\", \"kf36\",\n\t\"key_f37\", \"kf37\",\n\t\"key_f38\", \"kf38\",\n\t\"key_f39\", \"kf39\",\n\t\"key_f40\", \"kf40\",\n\t\"key_f41\", \"kf41\",\n\t\"key_f42\", \"kf42\",\n\t\"key_f43\", \"kf43\",\n\t\"key_f44\", \"kf44\",\n\t\"key_f45\", \"kf45\",\n\t\"key_f46\", \"kf46\",\n\t\"key_f47\", \"kf47\",\n\t\"key_f48\", \"kf48\",\n\t\"key_f49\", \"kf49\",\n\t\"key_f50\", \"kf50\",\n\t\"key_f51\", \"kf51\",\n\t\"key_f52\", \"kf52\",\n\t\"key_f53\", \"kf53\",\n\t\"key_f54\", \"kf54\",\n\t\"key_f55\", \"kf55\",\n\t\"key_f56\", \"kf56\",\n\t\"key_f57\", \"kf57\",\n\t\"key_f58\", \"kf58\",\n\t\"key_f59\", \"kf59\",\n\t\"key_f60\", \"kf60\",\n\t\"key_f61\", \"kf61\",\n\t\"key_f62\", \"kf62\",\n\t\"key_f63\", \"kf63\",\n\t\"clr_bol\", \"el1\",\n\t\"clear_margins\", \"mgc\",\n\t\"set_left_margin\", \"smgl\",\n\t\"set_right_margin\", \"smgr\",\n\t\"label_format\", \"fln\",\n\t\"set_clock\", \"sclk\",\n\t\"display_clock\", \"dclk\",\n\t\"remove_clock\", \"rmclk\",\n\t\"create_window\", \"cwin\",\n\t\"goto_window\", \"wingo\",\n\t\"hangup\", \"hup\",\n\t\"dial_phone\", \"dial\",\n\t\"quick_dial\", \"qdial\",\n\t\"tone\", \"tone\",\n\t\"pulse\", \"pulse\",\n\t\"flash_hook\", \"hook\",\n\t\"fixed_pause\", \"pause\",\n\t\"wait_tone\", \"wait\",\n\t\"user0\", \"u0\",\n\t\"user1\", \"u1\",\n\t\"user2\", \"u2\",\n\t\"user3\", \"u3\",\n\t\"user4\", \"u4\",\n\t\"user5\", \"u5\",\n\t\"user6\", \"u6\",\n\t\"user7\", \"u7\",\n\t\"user8\", \"u8\",\n\t\"user9\", \"u9\",\n\t\"orig_pair\", \"op\",\n\t\"orig_colors\", \"oc\",\n\t\"initialize_color\", \"initc\",\n\t\"initialize_pair\", \"initp\",\n\t\"set_color_pair\", \"scp\",\n\t\"set_foreground\", \"setf\",\n\t\"set_background\", \"setb\",\n\t\"change_char_pitch\", \"cpi\",\n\t\"change_line_pitch\", \"lpi\",\n\t\"change_res_horz\", \"chr\",\n\t\"change_res_vert\", \"cvr\",\n\t\"define_char\", \"defc\",\n\t\"enter_doublewide_mode\", \"swidm\",\n\t\"enter_draft_quality\", \"sdrfq\",\n\t\"enter_italics_mode\", \"sitm\",\n\t\"enter_leftward_mode\", \"slm\",\n\t\"enter_micro_mode\", \"smicm\",\n\t\"enter_near_letter_quality\", \"snlq\",\n\t\"enter_normal_quality\", \"snrmq\",\n\t\"enter_shadow_mode\", \"sshm\",\n\t\"enter_subscript_mode\", \"ssubm\",\n\t\"enter_superscript_mode\", \"ssupm\",\n\t\"enter_upward_mode\", \"sum\",\n\t\"exit_doublewide_mode\", \"rwidm\",\n\t\"exit_italics_mode\", \"ritm\",\n\t\"exit_leftward_mode\", \"rlm\",\n\t\"exit_micro_mode\", \"rmicm\",\n\t\"exit_shadow_mode\", \"rshm\",\n\t\"exit_subscript_mode\", \"rsubm\",\n\t\"exit_superscript_mode\", \"rsupm\",\n\t\"exit_upward_mode\", \"rum\",\n\t\"micro_column_address\", \"mhpa\",\n\t\"micro_down\", \"mcud1\",\n\t\"micro_left\", \"mcub1\",\n\t\"micro_right\", \"mcuf1\",\n\t\"micro_row_address\", \"mvpa\",\n\t\"micro_up\", \"mcuu1\",\n\t\"order_of_pins\", \"porder\",\n\t\"parm_down_micro\", \"mcud\",\n\t\"parm_left_micro\", \"mcub\",\n\t\"parm_right_micro\", \"mcuf\",\n\t\"parm_up_micro\", \"mcuu\",\n\t\"select_char_set\", \"scs\",\n\t\"set_bottom_margin\", \"smgb\",\n\t\"set_bottom_margin_parm\", \"smgbp\",\n\t\"set_left_margin_parm\", \"smglp\",\n\t\"set_right_margin_parm\", \"smgrp\",\n\t\"set_top_margin\", \"smgt\",\n\t\"set_top_margin_parm\", \"smgtp\",\n\t\"start_bit_image\", \"sbim\",\n\t\"start_char_set_def\", \"scsd\",\n\t\"stop_bit_image\", \"rbim\",\n\t\"stop_char_set_def\", \"rcsd\",\n\t\"subscript_characters\", \"subcs\",\n\t\"superscript_characters\", \"supcs\",\n\t\"these_cause_cr\", \"docr\",\n\t\"zero_motion\", \"zerom\",\n\t\"char_set_names\", \"csnm\",\n\t\"key_mouse\", \"kmous\",\n\t\"mouse_info\", \"minfo\",\n\t\"req_mouse_pos\", \"reqmp\",\n\t\"get_mouse\", \"getm\",\n\t\"set_a_foreground\", \"setaf\",\n\t\"set_a_background\", \"setab\",\n\t\"pkey_plab\", \"pfxl\",\n\t\"device_type\", \"devt\",\n\t\"code_set_init\", \"csin\",\n\t\"set0_des_seq\", \"s0ds\",\n\t\"set1_des_seq\", \"s1ds\",\n\t\"set2_des_seq\", \"s2ds\",\n\t\"set3_des_seq\", \"s3ds\",\n\t\"set_lr_margin\", \"smglr\",\n\t\"set_tb_margin\", \"smgtb\",\n\t\"bit_image_repeat\", \"birep\",\n\t\"bit_image_newline\", \"binel\",\n\t\"bit_image_carriage_return\", \"bicr\",\n\t\"color_names\", \"colornm\",\n\t\"define_bit_image_region\", \"defbi\",\n\t\"end_bit_image_region\", \"endbi\",\n\t\"set_color_band\", \"setcolor\",\n\t\"set_page_length\", \"slines\",\n\t\"display_pc_char\", \"dispc\",\n\t\"enter_pc_charset_mode\", \"smpch\",\n\t\"exit_pc_charset_mode\", \"rmpch\",\n\t\"enter_scancode_mode\", \"smsc\",\n\t\"exit_scancode_mode\", \"rmsc\",\n\t\"pc_term_options\", \"pctrm\",\n\t\"scancode_escape\", \"scesc\",\n\t\"alt_scancode_esc\", \"scesa\",\n\t\"enter_horizontal_hl_mode\", \"ehhlm\",\n\t\"enter_left_hl_mode\", \"elhlm\",\n\t\"enter_low_hl_mode\", \"elohlm\",\n\t\"enter_right_hl_mode\", \"erhlm\",\n\t\"enter_top_hl_mode\", \"ethlm\",\n\t\"enter_vertical_hl_mode\", \"evhlm\",\n\t\"set_a_attributes\", \"sgr1\",\n\t\"set_pglen_inch\", \"slength\",\n\t\"termcap_init2\", \"OTi2\",\n\t\"termcap_reset\", \"OTrs\",\n\t\"linefeed_if_not_lf\", \"OTnl\",\n\t\"backspace_if_not_bs\", \"OTbc\",\n\t\"other_non_function_keys\", \"OTko\",\n\t\"arrow_key_map\", \"OTma\",\n\t\"acs_ulcorner\", \"OTG2\",\n\t\"acs_llcorner\", \"OTG3\",\n\t\"acs_urcorner\", \"OTG1\",\n\t\"acs_lrcorner\", \"OTG4\",\n\t\"acs_ltee\", \"OTGR\",\n\t\"acs_rtee\", \"OTGL\",\n\t\"acs_btee\", \"OTGU\",\n\t\"acs_ttee\", \"OTGD\",\n\t\"acs_hline\", \"OTGH\",\n\t\"acs_vline\", \"OTGV\",\n\t\"acs_plus\", \"OTGC\",\n\t\"memory_lock\", \"meml\",\n\t\"memory_unlock\", \"memu\",\n\t\"box_chars_1\", \"box1\",\n}\n"
  },
  {
    "path": "vendor/github.com/xo/terminfo/color.go",
    "content": "package terminfo\n\nimport (\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// ColorLevel is the color level supported by a terminal.\ntype ColorLevel uint\n\n// ColorLevel values.\nconst (\n\tColorLevelNone ColorLevel = iota\n\tColorLevelBasic\n\tColorLevelHundreds\n\tColorLevelMillions\n)\n\n// String satisfies the Stringer interface.\nfunc (c ColorLevel) String() string {\n\tswitch c {\n\tcase ColorLevelBasic:\n\t\treturn \"basic\"\n\tcase ColorLevelHundreds:\n\t\treturn \"hundreds\"\n\tcase ColorLevelMillions:\n\t\treturn \"millions\"\n\t}\n\treturn \"none\"\n}\n\n// ChromaFormatterName returns the github.com/alecthomas/chroma compatible\n// formatter name for the color level.\nfunc (c ColorLevel) ChromaFormatterName() string {\n\tswitch c {\n\tcase ColorLevelBasic:\n\t\treturn \"terminal\"\n\tcase ColorLevelHundreds:\n\t\treturn \"terminal256\"\n\tcase ColorLevelMillions:\n\t\treturn \"terminal16m\"\n\t}\n\treturn \"noop\"\n}\n\n// ColorLevelFromEnv returns the color level COLORTERM, FORCE_COLOR,\n// TERM_PROGRAM, or determined from the TERM environment variable.\nfunc ColorLevelFromEnv() (ColorLevel, error) {\n\t// check for overriding environment variables\n\tcolorTerm, termProg, forceColor := os.Getenv(\"COLORTERM\"), os.Getenv(\"TERM_PROGRAM\"), os.Getenv(\"FORCE_COLOR\")\n\tswitch {\n\tcase strings.Contains(colorTerm, \"truecolor\") || strings.Contains(colorTerm, \"24bit\") || termProg == \"Hyper\":\n\t\treturn ColorLevelMillions, nil\n\tcase colorTerm != \"\" || forceColor != \"\":\n\t\treturn ColorLevelBasic, nil\n\tcase termProg == \"Apple_Terminal\":\n\t\treturn ColorLevelHundreds, nil\n\tcase termProg == \"iTerm.app\":\n\t\tver := os.Getenv(\"TERM_PROGRAM_VERSION\")\n\t\tif ver == \"\" {\n\t\t\treturn ColorLevelHundreds, nil\n\t\t}\n\t\ti, err := strconv.Atoi(strings.Split(ver, \".\")[0])\n\t\tif err != nil {\n\t\t\treturn ColorLevelNone, ErrInvalidTermProgramVersion\n\t\t}\n\t\tif i == 3 {\n\t\t\treturn ColorLevelMillions, nil\n\t\t}\n\t\treturn ColorLevelHundreds, nil\n\t}\n\n\t// otherwise determine from TERM's max_colors capability\n\tif term := os.Getenv(\"TERM\"); term != \"\" {\n\t\tti, err := Load(term)\n\t\tif err != nil {\n\t\t\treturn ColorLevelNone, err\n\t\t}\n\n\t\tv, ok := ti.Nums[MaxColors]\n\t\tswitch {\n\t\tcase !ok || v <= 16:\n\t\t\treturn ColorLevelNone, nil\n\t\tcase ok && v >= 256:\n\t\t\treturn ColorLevelHundreds, nil\n\t\t}\n\t}\n\n\treturn ColorLevelBasic, nil\n}\n"
  },
  {
    "path": "vendor/github.com/xo/terminfo/load.go",
    "content": "package terminfo\n\nimport (\n\t\"os\"\n\t\"os/user\"\n\t\"path\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// termCache is the terminfo cache.\nvar termCache = struct {\n\tdb map[string]*Terminfo\n\tsync.RWMutex\n}{\n\tdb: make(map[string]*Terminfo),\n}\n\n// Load follows the behavior described in terminfo(5) to find correct the\n// terminfo file using the name, reads the file and then returns a Terminfo\n// struct that describes the file.\nfunc Load(name string) (*Terminfo, error) {\n\tif name == \"\" {\n\t\treturn nil, ErrEmptyTermName\n\t}\n\n\ttermCache.RLock()\n\tti, ok := termCache.db[name]\n\ttermCache.RUnlock()\n\n\tif ok {\n\t\treturn ti, nil\n\t}\n\n\tvar checkDirs []string\n\n\t// check $TERMINFO\n\tif dir := os.Getenv(\"TERMINFO\"); dir != \"\" {\n\t\tcheckDirs = append(checkDirs, dir)\n\t}\n\n\t// check $HOME/.terminfo\n\tu, err := user.Current()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcheckDirs = append(checkDirs, path.Join(u.HomeDir, \".terminfo\"))\n\n\t// check $TERMINFO_DIRS\n\tif dirs := os.Getenv(\"TERMINFO_DIRS\"); dirs != \"\" {\n\t\tcheckDirs = append(checkDirs, strings.Split(dirs, \":\")...)\n\t}\n\n\t// check fallback directories\n\tcheckDirs = append(checkDirs, \"/etc/terminfo\", \"/lib/terminfo\", \"/usr/share/terminfo\")\n\tfor _, dir := range checkDirs {\n\t\tti, err = Open(dir, name)\n\t\tif err != nil && err != ErrFileNotFound && !os.IsNotExist(err) {\n\t\t\treturn nil, err\n\t\t} else if err == nil {\n\t\t\treturn ti, nil\n\t\t}\n\t}\n\n\treturn nil, ErrDatabaseDirectoryNotFound\n}\n\n// LoadFromEnv loads the terminal info based on the name contained in\n// environment variable TERM.\nfunc LoadFromEnv() (*Terminfo, error) {\n\treturn Load(os.Getenv(\"TERM\"))\n}\n"
  },
  {
    "path": "vendor/github.com/xo/terminfo/param.go",
    "content": "package terminfo\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// parametizer represents the a scan state for a parameterized string.\ntype parametizer struct {\n\t// z is the string to parameterize\n\tz []byte\n\n\t// pos is the current position in s.\n\tpos int\n\n\t// nest is the current nest level.\n\tnest int\n\n\t// s is the variable stack.\n\ts stack\n\n\t// skipElse keeps the state of skipping else.\n\tskipElse bool\n\n\t// buf is the result buffer.\n\tbuf *bytes.Buffer\n\n\t// params are the parameters to interpolate.\n\tparams [9]interface{}\n\n\t// vars are dynamic variables.\n\tvars [26]interface{}\n}\n\n// staticVars are the static, global variables.\nvar staticVars = struct {\n\tvars [26]interface{}\n\tsync.Mutex\n}{}\n\nvar parametizerPool = sync.Pool{\n\tNew: func() interface{} {\n\t\tp := new(parametizer)\n\t\tp.buf = bytes.NewBuffer(make([]byte, 0, 45))\n\t\treturn p\n\t},\n}\n\n// newParametizer returns a new initialized parametizer from the pool.\nfunc newParametizer(z []byte) *parametizer {\n\tp := parametizerPool.Get().(*parametizer)\n\tp.z = z\n\n\treturn p\n}\n\n// reset resets the parametizer.\nfunc (p *parametizer) reset() {\n\tp.pos, p.nest = 0, 0\n\n\tp.s.reset()\n\tp.buf.Reset()\n\n\tp.params, p.vars = [9]interface{}{}, [26]interface{}{}\n\n\tparametizerPool.Put(p)\n}\n\n// stateFn represents the state of the scanner as a function that returns the\n// next state.\ntype stateFn func() stateFn\n\n// exec executes the parameterizer, interpolating the supplied parameters.\nfunc (p *parametizer) exec() string {\n\tfor state := p.scanTextFn; state != nil; {\n\t\tstate = state()\n\t}\n\treturn p.buf.String()\n}\n\n// peek returns the next byte.\nfunc (p *parametizer) peek() (byte, error) {\n\tif p.pos >= len(p.z) {\n\t\treturn 0, io.EOF\n\t}\n\treturn p.z[p.pos], nil\n}\n\n// writeFrom writes the characters from ppos to pos to the buffer.\nfunc (p *parametizer) writeFrom(ppos int) {\n\tif p.pos > ppos {\n\t\t// append remaining characters.\n\t\tp.buf.Write(p.z[ppos:p.pos])\n\t}\n}\n\nfunc (p *parametizer) scanTextFn() stateFn {\n\tppos := p.pos\n\tfor {\n\t\tch, err := p.peek()\n\t\tif err != nil {\n\t\t\tp.writeFrom(ppos)\n\t\t\treturn nil\n\t\t}\n\n\t\tif ch == '%' {\n\t\t\tp.writeFrom(ppos)\n\t\t\tp.pos++\n\t\t\treturn p.scanCodeFn\n\t\t}\n\n\t\tp.pos++\n\t}\n}\n\nfunc (p *parametizer) scanCodeFn() stateFn {\n\tch, err := p.peek()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tswitch ch {\n\tcase '%':\n\t\tp.buf.WriteByte('%')\n\n\tcase ':':\n\t\t// this character is used to avoid interpreting \"%-\" and \"%+\" as operators.\n\t\t// the next character is where the format really begins.\n\t\tp.pos++\n\t\t_, err = p.peek()\n\t\tif err != nil {\n\t\t\treturn nil\n\t\t}\n\t\treturn p.scanFormatFn\n\n\tcase '#', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.':\n\t\treturn p.scanFormatFn\n\n\tcase 'o':\n\t\tp.buf.WriteString(strconv.FormatInt(int64(p.s.popInt()), 8))\n\n\tcase 'd':\n\t\tp.buf.WriteString(strconv.Itoa(p.s.popInt()))\n\n\tcase 'x':\n\t\tp.buf.WriteString(strconv.FormatInt(int64(p.s.popInt()), 16))\n\n\tcase 'X':\n\t\tp.buf.WriteString(strings.ToUpper(strconv.FormatInt(int64(p.s.popInt()), 16)))\n\n\tcase 's':\n\t\tp.buf.WriteString(p.s.popString())\n\n\tcase 'c':\n\t\tp.buf.WriteByte(p.s.popByte())\n\n\tcase 'p':\n\t\tp.pos++\n\t\treturn p.pushParamFn\n\n\tcase 'P':\n\t\tp.pos++\n\t\treturn p.setDsVarFn\n\n\tcase 'g':\n\t\tp.pos++\n\t\treturn p.getDsVarFn\n\n\tcase '\\'':\n\t\tp.pos++\n\t\tch, err = p.peek()\n\t\tif err != nil {\n\t\t\treturn nil\n\t\t}\n\n\t\tp.s.push(ch)\n\n\t\t// skip the '\\''\n\t\tp.pos++\n\n\tcase '{':\n\t\tp.pos++\n\t\treturn p.pushIntfn\n\n\tcase 'l':\n\t\tp.s.push(len(p.s.popString()))\n\n\tcase '+':\n\t\tbi, ai := p.s.popInt(), p.s.popInt()\n\t\tp.s.push(ai + bi)\n\n\tcase '-':\n\t\tbi, ai := p.s.popInt(), p.s.popInt()\n\t\tp.s.push(ai - bi)\n\n\tcase '*':\n\t\tbi, ai := p.s.popInt(), p.s.popInt()\n\t\tp.s.push(ai * bi)\n\n\tcase '/':\n\t\tbi, ai := p.s.popInt(), p.s.popInt()\n\t\tif bi != 0 {\n\t\t\tp.s.push(ai / bi)\n\t\t} else {\n\t\t\tp.s.push(0)\n\t\t}\n\n\tcase 'm':\n\t\tbi, ai := p.s.popInt(), p.s.popInt()\n\t\tif bi != 0 {\n\t\t\tp.s.push(ai % bi)\n\t\t} else {\n\t\t\tp.s.push(0)\n\t\t}\n\n\tcase '&':\n\t\tbi, ai := p.s.popInt(), p.s.popInt()\n\t\tp.s.push(ai & bi)\n\n\tcase '|':\n\t\tbi, ai := p.s.popInt(), p.s.popInt()\n\t\tp.s.push(ai | bi)\n\n\tcase '^':\n\t\tbi, ai := p.s.popInt(), p.s.popInt()\n\t\tp.s.push(ai ^ bi)\n\n\tcase '=':\n\t\tbi, ai := p.s.popInt(), p.s.popInt()\n\t\tp.s.push(ai == bi)\n\n\tcase '>':\n\t\tbi, ai := p.s.popInt(), p.s.popInt()\n\t\tp.s.push(ai > bi)\n\n\tcase '<':\n\t\tbi, ai := p.s.popInt(), p.s.popInt()\n\t\tp.s.push(ai < bi)\n\n\tcase 'A':\n\t\tbi, ai := p.s.popBool(), p.s.popBool()\n\t\tp.s.push(ai && bi)\n\n\tcase 'O':\n\t\tbi, ai := p.s.popBool(), p.s.popBool()\n\t\tp.s.push(ai || bi)\n\n\tcase '!':\n\t\tp.s.push(!p.s.popBool())\n\n\tcase '~':\n\t\tp.s.push(^p.s.popInt())\n\n\tcase 'i':\n\t\tfor i := range p.params[:2] {\n\t\t\tif n, ok := p.params[i].(int); ok {\n\t\t\t\tp.params[i] = n + 1\n\t\t\t}\n\t\t}\n\n\tcase '?', ';':\n\n\tcase 't':\n\t\treturn p.scanThenFn\n\n\tcase 'e':\n\t\tp.skipElse = true\n\t\treturn p.skipTextFn\n\t}\n\n\tp.pos++\n\n\treturn p.scanTextFn\n}\n\nfunc (p *parametizer) scanFormatFn() stateFn {\n\t// the character was already read, so no need to check the error.\n\tch, _ := p.peek()\n\n\t// 6 should be the maximum length of a format string, for example \"%:-9.9d\".\n\tf := []byte{'%', ch, 0, 0, 0, 0}\n\n\tvar err error\n\n\tfor {\n\t\tp.pos++\n\t\tch, err = p.peek()\n\t\tif err != nil {\n\t\t\treturn nil\n\t\t}\n\n\t\tf = append(f, ch)\n\t\tswitch ch {\n\t\tcase 'o', 'd', 'x', 'X':\n\t\t\tfmt.Fprintf(p.buf, string(f), p.s.popInt())\n\t\t\tbreak\n\n\t\tcase 's':\n\t\t\tfmt.Fprintf(p.buf, string(f), p.s.popString())\n\t\t\tbreak\n\n\t\tcase 'c':\n\t\t\tfmt.Fprintf(p.buf, string(f), p.s.popByte())\n\t\t\tbreak\n\t\t}\n\t}\n\n\tp.pos++\n\n\treturn p.scanTextFn\n}\n\nfunc (p *parametizer) pushParamFn() stateFn {\n\tch, err := p.peek()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tif ai := int(ch - '1'); ai >= 0 && ai < len(p.params) {\n\t\tp.s.push(p.params[ai])\n\t} else {\n\t\tp.s.push(0)\n\t}\n\n\t// skip the '}'\n\tp.pos++\n\n\treturn p.scanTextFn\n}\n\nfunc (p *parametizer) setDsVarFn() stateFn {\n\tch, err := p.peek()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tif ch >= 'A' && ch <= 'Z' {\n\t\tstaticVars.Lock()\n\t\tstaticVars.vars[int(ch-'A')] = p.s.pop()\n\t\tstaticVars.Unlock()\n\t} else if ch >= 'a' && ch <= 'z' {\n\t\tp.vars[int(ch-'a')] = p.s.pop()\n\t}\n\n\tp.pos++\n\treturn p.scanTextFn\n}\n\nfunc (p *parametizer) getDsVarFn() stateFn {\n\tch, err := p.peek()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tvar a byte\n\tif ch >= 'A' && ch <= 'Z' {\n\t\ta = 'A'\n\t} else if ch >= 'a' && ch <= 'z' {\n\t\ta = 'a'\n\t}\n\n\tstaticVars.Lock()\n\tp.s.push(staticVars.vars[int(ch-a)])\n\tstaticVars.Unlock()\n\n\tp.pos++\n\n\treturn p.scanTextFn\n}\n\nfunc (p *parametizer) pushIntfn() stateFn {\n\tvar ai int\n\tfor {\n\t\tch, err := p.peek()\n\t\tif err != nil {\n\t\t\treturn nil\n\t\t}\n\n\t\tp.pos++\n\t\tif ch < '0' || ch > '9' {\n\t\t\tp.s.push(ai)\n\t\t\treturn p.scanTextFn\n\t\t}\n\n\t\tai = (ai * 10) + int(ch-'0')\n\t}\n}\n\nfunc (p *parametizer) scanThenFn() stateFn {\n\tp.pos++\n\n\tif p.s.popBool() {\n\t\treturn p.scanTextFn\n\t}\n\n\tp.skipElse = false\n\n\treturn p.skipTextFn\n}\n\nfunc (p *parametizer) skipTextFn() stateFn {\n\tfor {\n\t\tch, err := p.peek()\n\t\tif err != nil {\n\t\t\treturn nil\n\t\t}\n\n\t\tp.pos++\n\t\tif ch == '%' {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif p.skipElse {\n\t\treturn p.skipElseFn\n\t}\n\n\treturn p.skipThenFn\n}\n\nfunc (p *parametizer) skipThenFn() stateFn {\n\tch, err := p.peek()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tp.pos++\n\tswitch ch {\n\tcase ';':\n\t\tif p.nest == 0 {\n\t\t\treturn p.scanTextFn\n\t\t}\n\t\tp.nest--\n\n\tcase '?':\n\t\tp.nest++\n\n\tcase 'e':\n\t\tif p.nest == 0 {\n\t\t\treturn p.scanTextFn\n\t\t}\n\t}\n\n\treturn p.skipTextFn\n}\n\nfunc (p *parametizer) skipElseFn() stateFn {\n\tch, err := p.peek()\n\tif err != nil {\n\t\treturn nil\n\t}\n\n\tp.pos++\n\tswitch ch {\n\tcase ';':\n\t\tif p.nest == 0 {\n\t\t\treturn p.scanTextFn\n\t\t}\n\t\tp.nest--\n\n\tcase '?':\n\t\tp.nest++\n\t}\n\n\treturn p.skipTextFn\n}\n\n// Printf evaluates a parameterized terminfo value z, interpolating params.\nfunc Printf(z []byte, params ...interface{}) string {\n\tp := newParametizer(z)\n\tdefer p.reset()\n\n\t// make sure we always have 9 parameters -- makes it easier\n\t// later to skip checks and its faster\n\tfor i := 0; i < len(p.params) && i < len(params); i++ {\n\t\tp.params[i] = params[i]\n\t}\n\n\treturn p.exec()\n}\n\n// Fprintf evaluates a parameterized terminfo value z, interpolating params and\n// writing to w.\nfunc Fprintf(w io.Writer, z []byte, params ...interface{}) {\n\tw.Write([]byte(Printf(z, params...)))\n}\n"
  },
  {
    "path": "vendor/github.com/xo/terminfo/stack.go",
    "content": "package terminfo\n\ntype stack []interface{}\n\nfunc (s *stack) push(v interface{}) {\n\t*s = append(*s, v)\n}\n\nfunc (s *stack) pop() interface{} {\n\tif len(*s) == 0 {\n\t\treturn nil\n\t}\n\tv := (*s)[len(*s)-1]\n\t*s = (*s)[:len(*s)-1]\n\treturn v\n}\n\nfunc (s *stack) popInt() int {\n\tif i, ok := s.pop().(int); ok {\n\t\treturn i\n\t}\n\treturn 0\n}\n\nfunc (s *stack) popBool() bool {\n\tif b, ok := s.pop().(bool); ok {\n\t\treturn b\n\t}\n\treturn false\n}\n\nfunc (s *stack) popByte() byte {\n\tif b, ok := s.pop().(byte); ok {\n\t\treturn b\n\t}\n\treturn 0\n}\n\nfunc (s *stack) popString() string {\n\tif a, ok := s.pop().(string); ok {\n\t\treturn a\n\t}\n\treturn \"\"\n}\n\nfunc (s *stack) reset() {\n\t*s = (*s)[:0]\n}\n"
  },
  {
    "path": "vendor/github.com/xo/terminfo/terminfo.go",
    "content": "// Package terminfo implements reading terminfo files in pure go.\npackage terminfo\n\nimport (\n\t\"io\"\n\t\"io/ioutil\"\n\t\"path\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Error is a terminfo error.\ntype Error string\n\n// Error satisfies the error interface.\nfunc (err Error) Error() string {\n\treturn string(err)\n}\n\nconst (\n\t// ErrInvalidFileSize is the invalid file size error.\n\tErrInvalidFileSize Error = \"invalid file size\"\n\n\t// ErrUnexpectedFileEnd is the unexpected file end error.\n\tErrUnexpectedFileEnd Error = \"unexpected file end\"\n\n\t// ErrInvalidStringTable is the invalid string table error.\n\tErrInvalidStringTable Error = \"invalid string table\"\n\n\t// ErrInvalidMagic is the invalid magic error.\n\tErrInvalidMagic Error = \"invalid magic\"\n\n\t// ErrInvalidHeader is the invalid header error.\n\tErrInvalidHeader Error = \"invalid header\"\n\n\t// ErrInvalidNames is the invalid names error.\n\tErrInvalidNames Error = \"invalid names\"\n\n\t// ErrInvalidExtendedHeader is the invalid extended header error.\n\tErrInvalidExtendedHeader Error = \"invalid extended header\"\n\n\t// ErrEmptyTermName is the empty term name error.\n\tErrEmptyTermName Error = \"empty term name\"\n\n\t// ErrDatabaseDirectoryNotFound is the database directory not found error.\n\tErrDatabaseDirectoryNotFound Error = \"database directory not found\"\n\n\t// ErrFileNotFound is the file not found error.\n\tErrFileNotFound Error = \"file not found\"\n\n\t// ErrInvalidTermProgramVersion is the invalid TERM_PROGRAM_VERSION error.\n\tErrInvalidTermProgramVersion Error = \"invalid TERM_PROGRAM_VERSION\"\n)\n\n// Terminfo describes a terminal's capabilities.\ntype Terminfo struct {\n\t// File is the original source file.\n\tFile string\n\n\t// Names are the provided cap names.\n\tNames []string\n\n\t// Bools are the bool capabilities.\n\tBools map[int]bool\n\n\t// BoolsM are the missing bool capabilities.\n\tBoolsM map[int]bool\n\n\t// Nums are the num capabilities.\n\tNums map[int]int\n\n\t// NumsM are the missing num capabilities.\n\tNumsM map[int]bool\n\n\t// Strings are the string capabilities.\n\tStrings map[int][]byte\n\n\t// StringsM are the missing string capabilities.\n\tStringsM map[int]bool\n\n\t// ExtBools are the extended bool capabilities.\n\tExtBools map[int]bool\n\n\t// ExtBoolsNames is the map of extended bool capabilities to their index.\n\tExtBoolNames map[int][]byte\n\n\t// ExtNums are the extended num capabilities.\n\tExtNums map[int]int\n\n\t// ExtNumsNames is the map of extended num capabilities to their index.\n\tExtNumNames map[int][]byte\n\n\t// ExtStrings are the extended string capabilities.\n\tExtStrings map[int][]byte\n\n\t// ExtStringsNames is the map of extended string capabilities to their index.\n\tExtStringNames map[int][]byte\n}\n\n// Decode decodes the terminfo data contained in buf.\nfunc Decode(buf []byte) (*Terminfo, error) {\n\tvar err error\n\n\t// check max file length\n\tif len(buf) >= maxFileLength {\n\t\treturn nil, ErrInvalidFileSize\n\t}\n\n\td := &decoder{\n\t\tbuf: buf,\n\t\tlen: len(buf),\n\t}\n\n\t// read header\n\th, err := d.readInts(6, 16)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar numWidth int\n\n\t// check magic\n\tif h[fieldMagic] == magic {\n\t\tnumWidth = 16\n\t} else if h[fieldMagic] == magicExtended {\n\t\tnumWidth = 32\n\t} else {\n\t\treturn nil, ErrInvalidMagic\n\t}\n\n\t// check header\n\tif hasInvalidCaps(h) {\n\t\treturn nil, ErrInvalidHeader\n\t}\n\n\t// check remaining length\n\tif d.len-d.pos < capLength(h) {\n\t\treturn nil, ErrUnexpectedFileEnd\n\t}\n\n\t// read names\n\tnames, err := d.readBytes(h[fieldNameSize])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// check name is terminated properly\n\ti := findNull(names, 0)\n\tif i == -1 {\n\t\treturn nil, ErrInvalidNames\n\t}\n\tnames = names[:i]\n\n\t// read bool caps\n\tbools, boolsM, err := d.readBools(h[fieldBoolCount])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// read num caps\n\tnums, numsM, err := d.readNums(h[fieldNumCount], numWidth)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// read string caps\n\tstrs, strsM, err := d.readStrings(h[fieldStringCount], h[fieldTableSize])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tti := &Terminfo{\n\t\tNames:    strings.Split(string(names), \"|\"),\n\t\tBools:    bools,\n\t\tBoolsM:   boolsM,\n\t\tNums:     nums,\n\t\tNumsM:    numsM,\n\t\tStrings:  strs,\n\t\tStringsM: strsM,\n\t}\n\n\t// at the end of file, so no extended caps\n\tif d.pos >= d.len {\n\t\treturn ti, nil\n\t}\n\n\t// decode extended header\n\teh, err := d.readInts(5, 16)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// check extended offset field\n\tif hasInvalidExtOffset(eh) {\n\t\treturn nil, ErrInvalidExtendedHeader\n\t}\n\n\t// check extended cap lengths\n\tif d.len-d.pos != extCapLength(eh, numWidth) {\n\t\treturn nil, ErrInvalidExtendedHeader\n\t}\n\n\t// read extended bool caps\n\tti.ExtBools, _, err = d.readBools(eh[fieldExtBoolCount])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// read extended num caps\n\tti.ExtNums, _, err = d.readNums(eh[fieldExtNumCount], numWidth)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// read extended string data table indexes\n\textIndexes, err := d.readInts(eh[fieldExtOffsetCount], 16)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// read string data table\n\textData, err := d.readBytes(eh[fieldExtTableSize])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// precautionary check that exactly at end of file\n\tif d.pos != d.len {\n\t\treturn nil, ErrUnexpectedFileEnd\n\t}\n\n\tvar last int\n\t// read extended string caps\n\tti.ExtStrings, last, err = readStrings(extIndexes, extData, eh[fieldExtStringCount])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\textIndexes, extData = extIndexes[eh[fieldExtStringCount]:], extData[last:]\n\n\t// read extended bool names\n\tti.ExtBoolNames, _, err = readStrings(extIndexes, extData, eh[fieldExtBoolCount])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\textIndexes = extIndexes[eh[fieldExtBoolCount]:]\n\n\t// read extended num names\n\tti.ExtNumNames, _, err = readStrings(extIndexes, extData, eh[fieldExtNumCount])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\textIndexes = extIndexes[eh[fieldExtNumCount]:]\n\n\t// read extended string names\n\tti.ExtStringNames, _, err = readStrings(extIndexes, extData, eh[fieldExtStringCount])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t//extIndexes = extIndexes[eh[fieldExtStringCount]:]\n\n\treturn ti, nil\n}\n\n// Open reads the terminfo file name from the specified directory dir.\nfunc Open(dir, name string) (*Terminfo, error) {\n\tvar err error\n\tvar buf []byte\n\tvar filename string\n\tfor _, f := range []string{\n\t\tpath.Join(dir, name[0:1], name),\n\t\tpath.Join(dir, strconv.FormatUint(uint64(name[0]), 16), name),\n\t} {\n\t\tbuf, err = ioutil.ReadFile(f)\n\t\tif err == nil {\n\t\t\tfilename = f\n\t\t\tbreak\n\t\t}\n\t}\n\tif buf == nil {\n\t\treturn nil, ErrFileNotFound\n\t}\n\n\t// decode\n\tti, err := Decode(buf)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// save original file name\n\tti.File = filename\n\n\t// add to cache\n\ttermCache.Lock()\n\tfor _, n := range ti.Names {\n\t\ttermCache.db[n] = ti\n\t}\n\ttermCache.Unlock()\n\n\treturn ti, nil\n}\n\n// boolCaps returns all bool and extended capabilities using f to format the\n// index key.\nfunc (ti *Terminfo) boolCaps(f func(int) string, extended bool) map[string]bool {\n\tm := make(map[string]bool, len(ti.Bools)+len(ti.ExtBools))\n\tif !extended {\n\t\tfor k, v := range ti.Bools {\n\t\t\tm[f(k)] = v\n\t\t}\n\t} else {\n\t\tfor k, v := range ti.ExtBools {\n\t\t\tm[string(ti.ExtBoolNames[k])] = v\n\t\t}\n\t}\n\treturn m\n}\n\n// BoolCaps returns all bool capabilities.\nfunc (ti *Terminfo) BoolCaps() map[string]bool {\n\treturn ti.boolCaps(BoolCapName, false)\n}\n\n// BoolCapsShort returns all bool capabilities, using the short name as the\n// index.\nfunc (ti *Terminfo) BoolCapsShort() map[string]bool {\n\treturn ti.boolCaps(BoolCapNameShort, false)\n}\n\n// ExtBoolCaps returns all extended bool capabilities.\nfunc (ti *Terminfo) ExtBoolCaps() map[string]bool {\n\treturn ti.boolCaps(BoolCapName, true)\n}\n\n// ExtBoolCapsShort returns all extended bool capabilities, using the short\n// name as the index.\nfunc (ti *Terminfo) ExtBoolCapsShort() map[string]bool {\n\treturn ti.boolCaps(BoolCapNameShort, true)\n}\n\n// numCaps returns all num and extended capabilities using f to format the\n// index key.\nfunc (ti *Terminfo) numCaps(f func(int) string, extended bool) map[string]int {\n\tm := make(map[string]int, len(ti.Nums)+len(ti.ExtNums))\n\tif !extended {\n\t\tfor k, v := range ti.Nums {\n\t\t\tm[f(k)] = v\n\t\t}\n\t} else {\n\t\tfor k, v := range ti.ExtNums {\n\t\t\tm[string(ti.ExtNumNames[k])] = v\n\t\t}\n\t}\n\treturn m\n}\n\n// NumCaps returns all num capabilities.\nfunc (ti *Terminfo) NumCaps() map[string]int {\n\treturn ti.numCaps(NumCapName, false)\n}\n\n// NumCapsShort returns all num capabilities, using the short name as the\n// index.\nfunc (ti *Terminfo) NumCapsShort() map[string]int {\n\treturn ti.numCaps(NumCapNameShort, false)\n}\n\n// ExtNumCaps returns all extended num capabilities.\nfunc (ti *Terminfo) ExtNumCaps() map[string]int {\n\treturn ti.numCaps(NumCapName, true)\n}\n\n// ExtNumCapsShort returns all extended num capabilities, using the short\n// name as the index.\nfunc (ti *Terminfo) ExtNumCapsShort() map[string]int {\n\treturn ti.numCaps(NumCapNameShort, true)\n}\n\n// stringCaps returns all string and extended capabilities using f to format the\n// index key.\nfunc (ti *Terminfo) stringCaps(f func(int) string, extended bool) map[string][]byte {\n\tm := make(map[string][]byte, len(ti.Strings)+len(ti.ExtStrings))\n\tif !extended {\n\t\tfor k, v := range ti.Strings {\n\t\t\tm[f(k)] = v\n\t\t}\n\t} else {\n\t\tfor k, v := range ti.ExtStrings {\n\t\t\tm[string(ti.ExtStringNames[k])] = v\n\t\t}\n\t}\n\treturn m\n}\n\n// StringCaps returns all string capabilities.\nfunc (ti *Terminfo) StringCaps() map[string][]byte {\n\treturn ti.stringCaps(StringCapName, false)\n}\n\n// StringCapsShort returns all string capabilities, using the short name as the\n// index.\nfunc (ti *Terminfo) StringCapsShort() map[string][]byte {\n\treturn ti.stringCaps(StringCapNameShort, false)\n}\n\n// ExtStringCaps returns all extended string capabilities.\nfunc (ti *Terminfo) ExtStringCaps() map[string][]byte {\n\treturn ti.stringCaps(StringCapName, true)\n}\n\n// ExtStringCapsShort returns all extended string capabilities, using the short\n// name as the index.\nfunc (ti *Terminfo) ExtStringCapsShort() map[string][]byte {\n\treturn ti.stringCaps(StringCapNameShort, true)\n}\n\n// Has determines if the bool cap i is present.\nfunc (ti *Terminfo) Has(i int) bool {\n\treturn ti.Bools[i]\n}\n\n// Num returns the num cap i, or -1 if not present.\nfunc (ti *Terminfo) Num(i int) int {\n\tn, ok := ti.Nums[i]\n\tif !ok {\n\t\treturn -1\n\t}\n\treturn n\n}\n\n// Printf formats the string cap i, interpolating parameters v.\nfunc (ti *Terminfo) Printf(i int, v ...interface{}) string {\n\treturn Printf(ti.Strings[i], v...)\n}\n\n// Fprintf prints the string cap i to writer w, interpolating parameters v.\nfunc (ti *Terminfo) Fprintf(w io.Writer, i int, v ...interface{}) {\n\tFprintf(w, ti.Strings[i], v...)\n}\n\n// Color takes a foreground and background color and returns string that sets\n// them for this terminal.\nfunc (ti *Terminfo) Colorf(fg, bg int, str string) string {\n\tmaxColors := int(ti.Nums[MaxColors])\n\n\t// map bright colors to lower versions if the color table only holds 8.\n\tif maxColors == 8 {\n\t\tif fg > 7 && fg < 16 {\n\t\t\tfg -= 8\n\t\t}\n\t\tif bg > 7 && bg < 16 {\n\t\t\tbg -= 8\n\t\t}\n\t}\n\n\tvar s string\n\tif maxColors > fg && fg >= 0 {\n\t\ts += ti.Printf(SetAForeground, fg)\n\t}\n\tif maxColors > bg && bg >= 0 {\n\t\ts += ti.Printf(SetABackground, bg)\n\t}\n\treturn s + str + ti.Printf(ExitAttributeMode)\n}\n\n// Goto returns a string suitable for addressing the cursor at the given\n// row and column. The origin 0, 0 is in the upper left corner of the screen.\nfunc (ti *Terminfo) Goto(row, col int) string {\n\treturn Printf(ti.Strings[CursorAddress], row, col)\n}\n\n// Puts emits the string to the writer, but expands inline padding indications\n// (of the form $<[delay]> where [delay] is msec) to a suitable number of\n// padding characters (usually null bytes) based upon the supplied baud. At\n// high baud rates, more padding characters will be inserted.\n/*func (ti *Terminfo) Puts(w io.Writer, s string, lines, baud int) (int, error) {\n\tvar err error\n\tfor {\n\t\tstart := strings.Index(s, \"$<\")\n\t\tif start == -1 {\n\t\t\t// most strings don't need padding, which is good news!\n\t\t\treturn io.WriteString(w, s)\n\t\t}\n\n\t\tend := strings.Index(s, \">\")\n\t\tif end == -1 {\n\t\t\t// unterminated... just emit bytes unadulterated.\n\t\t\treturn io.WriteString(w, \"$<\"+s)\n\t\t}\n\n\t\tvar c int\n\t\tc, err = io.WriteString(w, s[:start])\n\t\tif err != nil {\n\t\t\treturn n + c, err\n\t\t}\n\t\tn += c\n\n\t\ts = s[start+2:]\n\t\tval := s[:end]\n\t\ts = s[end+1:]\n\t\tvar ms int\n\t\tvar dot, mandatory, asterisk bool\n\t\tunit := 1000\n\t\tfor _, ch := range val {\n\t\t\tswitch {\n\t\t\tcase ch >= '0' && ch <= '9':\n\t\t\t\tms = (ms * 10) + int(ch-'0')\n\t\t\t\tif dot {\n\t\t\t\t\tunit *= 10\n\t\t\t\t}\n\t\t\tcase ch == '.' && !dot:\n\t\t\t\tdot = true\n\t\t\tcase ch == '*' && !asterisk:\n\t\t\t\tms *= lines\n\t\t\t\tasterisk = true\n\t\t\tcase ch == '/':\n\t\t\t\tmandatory = true\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tz, pad := ((baud/8)/unit)*ms, ti.Strings[PadChar]\n\t\tb := make([]byte, len(pad)*z)\n\t\tfor bp := copy(b, pad); bp < len(b); bp *= 2 {\n\t\t\tcopy(b[bp:], b[:bp])\n\t\t}\n\n\t\tif (!ti.Bools[XonXoff] && baud > int(ti.Nums[PaddingBaudRate])) || mandatory {\n\t\t\tc, err = w.Write(b)\n\t\t\tif err != nil {\n\t\t\t\treturn n + c, err\n\t\t\t}\n\t\t\tn += c\n\t\t}\n\t}\n\n\treturn n, nil\n}*/\n"
  },
  {
    "path": "vendor/github.com/xo/terminfo/util.go",
    "content": "package terminfo\n\nimport (\n\t\"sort\"\n)\n\nconst (\n\t// maxFileLength is the max file length.\n\tmaxFileLength = 4096\n\n\t// magic is the file magic for terminfo files.\n\tmagic = 0432\n\n\t// magicExtended is the file magic for terminfo files with the extended number format.\n\tmagicExtended = 01036\n)\n\n// header fields.\nconst (\n\tfieldMagic = iota\n\tfieldNameSize\n\tfieldBoolCount\n\tfieldNumCount\n\tfieldStringCount\n\tfieldTableSize\n)\n\n// header extended fields.\nconst (\n\tfieldExtBoolCount = iota\n\tfieldExtNumCount\n\tfieldExtStringCount\n\tfieldExtOffsetCount\n\tfieldExtTableSize\n)\n\n// hasInvalidCaps determines if the capabilities in h are invalid.\nfunc hasInvalidCaps(h []int) bool {\n\treturn h[fieldBoolCount] > CapCountBool ||\n\t\th[fieldNumCount] > CapCountNum ||\n\t\th[fieldStringCount] > CapCountString\n}\n\n// capLength returns the total length of the capabilities in bytes.\nfunc capLength(h []int) int {\n\treturn h[fieldNameSize] +\n\t\th[fieldBoolCount] +\n\t\t(h[fieldNameSize]+h[fieldBoolCount])%2 + // account for word align\n\t\th[fieldNumCount]*2 +\n\t\th[fieldStringCount]*2 +\n\t\th[fieldTableSize]\n}\n\n// hasInvalidExtOffset determines if the extended offset field is valid.\nfunc hasInvalidExtOffset(h []int) bool {\n\treturn h[fieldExtBoolCount]+\n\t\th[fieldExtNumCount]+\n\t\th[fieldExtStringCount]*2 != h[fieldExtOffsetCount]\n}\n\n// extCapLength returns the total length of extended capabilities in bytes.\nfunc extCapLength(h []int, numWidth int) int {\n\treturn h[fieldExtBoolCount] +\n\t\th[fieldExtBoolCount]%2 + // account for word align\n\t\th[fieldExtNumCount]*(numWidth/8) +\n\t\th[fieldExtOffsetCount]*2 +\n\t\th[fieldExtTableSize]\n}\n\n// findNull finds the position of null in buf.\nfunc findNull(buf []byte, i int) int {\n\tfor ; i < len(buf); i++ {\n\t\tif buf[i] == 0 {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\n// readStrings decodes n strings from string data table buf using the indexes in idx.\nfunc readStrings(idx []int, buf []byte, n int) (map[int][]byte, int, error) {\n\tvar last int\n\tm := make(map[int][]byte)\n\tfor i := 0; i < n; i++ {\n\t\tstart := idx[i]\n\t\tif start < 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif end := findNull(buf, start); end != -1 {\n\t\t\tm[i], last = buf[start:end], end+1\n\t\t} else {\n\t\t\treturn nil, 0, ErrInvalidStringTable\n\t\t}\n\t}\n\treturn m, last, nil\n}\n\n// decoder holds state info while decoding a terminfo file.\ntype decoder struct {\n\tbuf []byte\n\tpos int\n\tlen int\n}\n\n// readBytes reads the next n bytes of buf, incrementing pos by n.\nfunc (d *decoder) readBytes(n int) ([]byte, error) {\n\tif d.len < d.pos+n {\n\t\treturn nil, ErrUnexpectedFileEnd\n\t}\n\tn, d.pos = d.pos, d.pos+n\n\treturn d.buf[n:d.pos], nil\n}\n\n// readInts reads n number of ints with width w.\nfunc (d *decoder) readInts(n, w int) ([]int, error) {\n\tw /= 8\n\tl := n * w\n\n\tbuf, err := d.readBytes(l)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// align\n\td.pos += d.pos % 2\n\n\tz := make([]int, n)\n\tfor i, j := 0, 0; i < l; i, j = i+w, j+1 {\n\t\tswitch w {\n\t\tcase 1:\n\t\t\tz[i] = int(buf[i])\n\t\tcase 2:\n\t\t\tz[j] = int(int16(buf[i+1])<<8 | int16(buf[i]))\n\t\tcase 4:\n\t\t\tz[j] = int(buf[i+3])<<24 | int(buf[i+2])<<16 | int(buf[i+1])<<8 | int(buf[i])\n\t\t}\n\t}\n\n\treturn z, nil\n}\n\n// readBools reads the next n bools.\nfunc (d *decoder) readBools(n int) (map[int]bool, map[int]bool, error) {\n\tbuf, err := d.readInts(n, 8)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\t// process\n\tbools, boolsM := make(map[int]bool), make(map[int]bool)\n\tfor i, b := range buf {\n\t\tbools[i] = b == 1\n\t\tif int8(b) == -2 {\n\t\t\tboolsM[i] = true\n\t\t}\n\t}\n\n\treturn bools, boolsM, nil\n}\n\n// readNums reads the next n nums.\nfunc (d *decoder) readNums(n, w int) (map[int]int, map[int]bool, error) {\n\tbuf, err := d.readInts(n, w)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\t// process\n\tnums, numsM := make(map[int]int), make(map[int]bool)\n\tfor i := 0; i < n; i++ {\n\t\tnums[i] = buf[i]\n\t\tif buf[i] == -2 {\n\t\t\tnumsM[i] = true\n\t\t}\n\t}\n\n\treturn nums, numsM, nil\n}\n\n// readStringTable reads the string data for n strings and the accompanying data\n// table of length sz.\nfunc (d *decoder) readStringTable(n, sz int) ([][]byte, []int, error) {\n\tbuf, err := d.readInts(n, 16)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\t// read string data table\n\tdata, err := d.readBytes(sz)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\t// align\n\td.pos += d.pos % 2\n\n\t// process\n\ts := make([][]byte, n)\n\tvar m []int\n\tfor i := 0; i < n; i++ {\n\t\tstart := buf[i]\n\t\tif start == -2 {\n\t\t\tm = append(m, i)\n\t\t} else if start >= 0 {\n\t\t\tif end := findNull(data, start); end != -1 {\n\t\t\t\ts[i] = data[start:end]\n\t\t\t} else {\n\t\t\t\treturn nil, nil, ErrInvalidStringTable\n\t\t\t}\n\t\t}\n\t}\n\n\treturn s, m, nil\n}\n\n// readStrings reads the next n strings and processes the string data table of\n// length sz.\nfunc (d *decoder) readStrings(n, sz int) (map[int][]byte, map[int]bool, error) {\n\ts, m, err := d.readStringTable(n, sz)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tstrs := make(map[int][]byte)\n\tfor k, v := range s {\n\t\tif k == AcsChars {\n\t\t\tv = canonicalizeAscChars(v)\n\t\t}\n\t\tstrs[k] = v\n\t}\n\n\tstrsM := make(map[int]bool, len(m))\n\tfor _, k := range m {\n\t\tstrsM[k] = true\n\t}\n\n\treturn strs, strsM, nil\n}\n\n// canonicalizeAscChars reorders chars to be unique, in order.\n//\n// see repair_ascc in ncurses-6.0/progs/dump_entry.c\nfunc canonicalizeAscChars(z []byte) []byte {\n\tvar c chars\n\tenc := make(map[byte]byte, len(z)/2)\n\tfor i := 0; i < len(z); i += 2 {\n\t\tif _, ok := enc[z[i]]; !ok {\n\t\t\ta, b := z[i], z[i+1]\n\t\t\t//log.Printf(\">>> a: %d %c, b: %d %c\", a, a, b, b)\n\t\t\tc, enc[a] = append(c, b), b\n\t\t}\n\t}\n\tsort.Sort(c)\n\n\tr := make([]byte, 2*len(c))\n\tfor i := 0; i < len(c); i++ {\n\t\tr[i*2], r[i*2+1] = c[i], enc[c[i]]\n\t}\n\treturn r\n}\n\ntype chars []byte\n\nfunc (c chars) Len() int           { return len(c) }\nfunc (c chars) Swap(i, j int)      { c[i], c[j] = c[j], c[i] }\nfunc (c chars) Less(i, j int) bool { return c[i] < c[j] }\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/client.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otelhttp // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n)\n\n// DefaultClient is the default Client and is used by Get, Head, Post and PostForm.\n// Please be careful of initialization order - for example, if you change\n// the global propagator, the DefaultClient might still be using the old one.\nvar DefaultClient = &http.Client{Transport: NewTransport(http.DefaultTransport)}\n\n// Get is a convenient replacement for http.Get that adds a span around the request.\nfunc Get(ctx context.Context, targetURL string) (resp *http.Response, err error) {\n\treq, err := http.NewRequestWithContext(ctx, \"GET\", targetURL, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn DefaultClient.Do(req)\n}\n\n// Head is a convenient replacement for http.Head that adds a span around the request.\nfunc Head(ctx context.Context, targetURL string) (resp *http.Response, err error) {\n\treq, err := http.NewRequestWithContext(ctx, \"HEAD\", targetURL, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn DefaultClient.Do(req)\n}\n\n// Post is a convenient replacement for http.Post that adds a span around the request.\nfunc Post(ctx context.Context, targetURL, contentType string, body io.Reader) (resp *http.Response, err error) {\n\treq, err := http.NewRequestWithContext(ctx, \"POST\", targetURL, body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header.Set(\"Content-Type\", contentType)\n\treturn DefaultClient.Do(req)\n}\n\n// PostForm is a convenient replacement for http.PostForm that adds a span around the request.\nfunc PostForm(ctx context.Context, targetURL string, data url.Values) (resp *http.Response, err error) {\n\treturn Post(ctx, targetURL, \"application/x-www-form-urlencoded\", strings.NewReader(data.Encode()))\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/common.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otelhttp // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n\nimport (\n\t\"net/http\"\n\n\t\"go.opentelemetry.io/otel/attribute\"\n\t\"go.opentelemetry.io/otel/trace\"\n)\n\n// Attribute keys that can be added to a span.\nconst (\n\tReadBytesKey  = attribute.Key(\"http.read_bytes\")  // if anything was read from the request body, the total number of bytes read\n\tReadErrorKey  = attribute.Key(\"http.read_error\")  // If an error occurred while reading a request, the string of the error (io.EOF is not recorded)\n\tWroteBytesKey = attribute.Key(\"http.wrote_bytes\") // if anything was written to the response writer, the total number of bytes written\n\tWriteErrorKey = attribute.Key(\"http.write_error\") // if an error occurred while writing a reply, the string of the error (io.EOF is not recorded)\n)\n\n// Server HTTP metrics.\nconst (\n\tserverRequestSize  = \"http.server.request.size\"  // Incoming request bytes total\n\tserverResponseSize = \"http.server.response.size\" // Incoming response bytes total\n\tserverDuration     = \"http.server.duration\"      // Incoming end to end duration, milliseconds\n)\n\n// Client HTTP metrics.\nconst (\n\tclientRequestSize  = \"http.client.request.size\"  // Outgoing request bytes total\n\tclientResponseSize = \"http.client.response.size\" // Outgoing response bytes total\n\tclientDuration     = \"http.client.duration\"      // Outgoing end to end duration, milliseconds\n)\n\n// Filter is a predicate used to determine whether a given http.request should\n// be traced. A Filter must return true if the request should be traced.\ntype Filter func(*http.Request) bool\n\nfunc newTracer(tp trace.TracerProvider) trace.Tracer {\n\treturn tp.Tracer(ScopeName, trace.WithInstrumentationVersion(Version()))\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/config.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otelhttp // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n\nimport (\n\t\"context\"\n\t\"net/http\"\n\t\"net/http/httptrace\"\n\n\t\"go.opentelemetry.io/otel\"\n\t\"go.opentelemetry.io/otel/metric\"\n\t\"go.opentelemetry.io/otel/propagation\"\n\t\"go.opentelemetry.io/otel/trace\"\n)\n\n// ScopeName is the instrumentation scope name.\nconst ScopeName = \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n\n// config represents the configuration options available for the http.Handler\n// and http.Transport types.\ntype config struct {\n\tServerName        string\n\tTracer            trace.Tracer\n\tMeter             metric.Meter\n\tPropagators       propagation.TextMapPropagator\n\tSpanStartOptions  []trace.SpanStartOption\n\tPublicEndpoint    bool\n\tPublicEndpointFn  func(*http.Request) bool\n\tReadEvent         bool\n\tWriteEvent        bool\n\tFilters           []Filter\n\tSpanNameFormatter func(string, *http.Request) string\n\tClientTrace       func(context.Context) *httptrace.ClientTrace\n\n\tTracerProvider trace.TracerProvider\n\tMeterProvider  metric.MeterProvider\n}\n\n// Option interface used for setting optional config properties.\ntype Option interface {\n\tapply(*config)\n}\n\ntype optionFunc func(*config)\n\nfunc (o optionFunc) apply(c *config) {\n\to(c)\n}\n\n// newConfig creates a new config struct and applies opts to it.\nfunc newConfig(opts ...Option) *config {\n\tc := &config{\n\t\tPropagators:   otel.GetTextMapPropagator(),\n\t\tMeterProvider: otel.GetMeterProvider(),\n\t}\n\tfor _, opt := range opts {\n\t\topt.apply(c)\n\t}\n\n\t// Tracer is only initialized if manually specified. Otherwise, can be passed with the tracing context.\n\tif c.TracerProvider != nil {\n\t\tc.Tracer = newTracer(c.TracerProvider)\n\t}\n\n\tc.Meter = c.MeterProvider.Meter(\n\t\tScopeName,\n\t\tmetric.WithInstrumentationVersion(Version()),\n\t)\n\n\treturn c\n}\n\n// WithTracerProvider specifies a tracer provider to use for creating a tracer.\n// If none is specified, the global provider is used.\nfunc WithTracerProvider(provider trace.TracerProvider) Option {\n\treturn optionFunc(func(cfg *config) {\n\t\tif provider != nil {\n\t\t\tcfg.TracerProvider = provider\n\t\t}\n\t})\n}\n\n// WithMeterProvider specifies a meter provider to use for creating a meter.\n// If none is specified, the global provider is used.\nfunc WithMeterProvider(provider metric.MeterProvider) Option {\n\treturn optionFunc(func(cfg *config) {\n\t\tif provider != nil {\n\t\t\tcfg.MeterProvider = provider\n\t\t}\n\t})\n}\n\n// WithPublicEndpoint configures the Handler to link the span with an incoming\n// span context. If this option is not provided, then the association is a child\n// association instead of a link.\nfunc WithPublicEndpoint() Option {\n\treturn optionFunc(func(c *config) {\n\t\tc.PublicEndpoint = true\n\t})\n}\n\n// WithPublicEndpointFn runs with every request, and allows conditionally\n// configuring the Handler to link the span with an incoming span context. If\n// this option is not provided or returns false, then the association is a\n// child association instead of a link.\n// Note: WithPublicEndpoint takes precedence over WithPublicEndpointFn.\nfunc WithPublicEndpointFn(fn func(*http.Request) bool) Option {\n\treturn optionFunc(func(c *config) {\n\t\tc.PublicEndpointFn = fn\n\t})\n}\n\n// WithPropagators configures specific propagators. If this\n// option isn't specified, then the global TextMapPropagator is used.\nfunc WithPropagators(ps propagation.TextMapPropagator) Option {\n\treturn optionFunc(func(c *config) {\n\t\tif ps != nil {\n\t\t\tc.Propagators = ps\n\t\t}\n\t})\n}\n\n// WithSpanOptions configures an additional set of\n// trace.SpanOptions, which are applied to each new span.\nfunc WithSpanOptions(opts ...trace.SpanStartOption) Option {\n\treturn optionFunc(func(c *config) {\n\t\tc.SpanStartOptions = append(c.SpanStartOptions, opts...)\n\t})\n}\n\n// WithFilter adds a filter to the list of filters used by the handler.\n// If any filter indicates to exclude a request then the request will not be\n// traced. All filters must allow a request to be traced for a Span to be created.\n// If no filters are provided then all requests are traced.\n// Filters will be invoked for each processed request, it is advised to make them\n// simple and fast.\nfunc WithFilter(f Filter) Option {\n\treturn optionFunc(func(c *config) {\n\t\tc.Filters = append(c.Filters, f)\n\t})\n}\n\ntype event int\n\n// Different types of events that can be recorded, see WithMessageEvents.\nconst (\n\tReadEvents event = iota\n\tWriteEvents\n)\n\n// WithMessageEvents configures the Handler to record the specified events\n// (span.AddEvent) on spans. By default only summary attributes are added at the\n// end of the request.\n//\n// Valid events are:\n//   - ReadEvents: Record the number of bytes read after every http.Request.Body.Read\n//     using the ReadBytesKey\n//   - WriteEvents: Record the number of bytes written after every http.ResponeWriter.Write\n//     using the WriteBytesKey\nfunc WithMessageEvents(events ...event) Option {\n\treturn optionFunc(func(c *config) {\n\t\tfor _, e := range events {\n\t\t\tswitch e {\n\t\t\tcase ReadEvents:\n\t\t\t\tc.ReadEvent = true\n\t\t\tcase WriteEvents:\n\t\t\t\tc.WriteEvent = true\n\t\t\t}\n\t\t}\n\t})\n}\n\n// WithSpanNameFormatter takes a function that will be called on every\n// request and the returned string will become the Span Name.\nfunc WithSpanNameFormatter(f func(operation string, r *http.Request) string) Option {\n\treturn optionFunc(func(c *config) {\n\t\tc.SpanNameFormatter = f\n\t})\n}\n\n// WithClientTrace takes a function that returns client trace instance that will be\n// applied to the requests sent through the otelhttp Transport.\nfunc WithClientTrace(f func(context.Context) *httptrace.ClientTrace) Option {\n\treturn optionFunc(func(c *config) {\n\t\tc.ClientTrace = f\n\t})\n}\n\n// WithServerName returns an Option that sets the name of the (virtual) server\n// handling requests.\nfunc WithServerName(server string) Option {\n\treturn optionFunc(func(c *config) {\n\t\tc.ServerName = server\n\t})\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/doc.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Package otelhttp provides an http.Handler and functions that are intended\n// to be used to add tracing by wrapping existing handlers (with Handler) and\n// routes WithRouteTag.\npackage otelhttp // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/handler.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otelhttp // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n\nimport (\n\t\"net/http\"\n\t\"time\"\n\n\t\"github.com/felixge/httpsnoop\"\n\n\t\"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv\"\n\t\"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil\"\n\t\"go.opentelemetry.io/otel\"\n\t\"go.opentelemetry.io/otel/attribute\"\n\t\"go.opentelemetry.io/otel/metric\"\n\t\"go.opentelemetry.io/otel/propagation\"\n\t\"go.opentelemetry.io/otel/trace\"\n)\n\n// middleware is an http middleware which wraps the next handler in a span.\ntype middleware struct {\n\toperation string\n\tserver    string\n\n\ttracer            trace.Tracer\n\tmeter             metric.Meter\n\tpropagators       propagation.TextMapPropagator\n\tspanStartOptions  []trace.SpanStartOption\n\treadEvent         bool\n\twriteEvent        bool\n\tfilters           []Filter\n\tspanNameFormatter func(string, *http.Request) string\n\tpublicEndpoint    bool\n\tpublicEndpointFn  func(*http.Request) bool\n\n\ttraceSemconv         semconv.HTTPServer\n\trequestBytesCounter  metric.Int64Counter\n\tresponseBytesCounter metric.Int64Counter\n\tserverLatencyMeasure metric.Float64Histogram\n}\n\nfunc defaultHandlerFormatter(operation string, _ *http.Request) string {\n\treturn operation\n}\n\n// NewHandler wraps the passed handler in a span named after the operation and\n// enriches it with metrics.\nfunc NewHandler(handler http.Handler, operation string, opts ...Option) http.Handler {\n\treturn NewMiddleware(operation, opts...)(handler)\n}\n\n// NewMiddleware returns a tracing and metrics instrumentation middleware.\n// The handler returned by the middleware wraps a handler\n// in a span named after the operation and enriches it with metrics.\nfunc NewMiddleware(operation string, opts ...Option) func(http.Handler) http.Handler {\n\th := middleware{\n\t\toperation: operation,\n\n\t\ttraceSemconv: semconv.NewHTTPServer(),\n\t}\n\n\tdefaultOpts := []Option{\n\t\tWithSpanOptions(trace.WithSpanKind(trace.SpanKindServer)),\n\t\tWithSpanNameFormatter(defaultHandlerFormatter),\n\t}\n\n\tc := newConfig(append(defaultOpts, opts...)...)\n\th.configure(c)\n\th.createMeasures()\n\n\treturn func(next http.Handler) http.Handler {\n\t\treturn http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\t\th.serveHTTP(w, r, next)\n\t\t})\n\t}\n}\n\nfunc (h *middleware) configure(c *config) {\n\th.tracer = c.Tracer\n\th.meter = c.Meter\n\th.propagators = c.Propagators\n\th.spanStartOptions = c.SpanStartOptions\n\th.readEvent = c.ReadEvent\n\th.writeEvent = c.WriteEvent\n\th.filters = c.Filters\n\th.spanNameFormatter = c.SpanNameFormatter\n\th.publicEndpoint = c.PublicEndpoint\n\th.publicEndpointFn = c.PublicEndpointFn\n\th.server = c.ServerName\n}\n\nfunc handleErr(err error) {\n\tif err != nil {\n\t\totel.Handle(err)\n\t}\n}\n\nfunc (h *middleware) createMeasures() {\n\tvar err error\n\th.requestBytesCounter, err = h.meter.Int64Counter(\n\t\tserverRequestSize,\n\t\tmetric.WithUnit(\"By\"),\n\t\tmetric.WithDescription(\"Measures the size of HTTP request messages.\"),\n\t)\n\thandleErr(err)\n\n\th.responseBytesCounter, err = h.meter.Int64Counter(\n\t\tserverResponseSize,\n\t\tmetric.WithUnit(\"By\"),\n\t\tmetric.WithDescription(\"Measures the size of HTTP response messages.\"),\n\t)\n\thandleErr(err)\n\n\th.serverLatencyMeasure, err = h.meter.Float64Histogram(\n\t\tserverDuration,\n\t\tmetric.WithUnit(\"ms\"),\n\t\tmetric.WithDescription(\"Measures the duration of inbound HTTP requests.\"),\n\t)\n\thandleErr(err)\n}\n\n// serveHTTP sets up tracing and calls the given next http.Handler with the span\n// context injected into the request context.\nfunc (h *middleware) serveHTTP(w http.ResponseWriter, r *http.Request, next http.Handler) {\n\trequestStartTime := time.Now()\n\tfor _, f := range h.filters {\n\t\tif !f(r) {\n\t\t\t// Simply pass through to the handler if a filter rejects the request\n\t\t\tnext.ServeHTTP(w, r)\n\t\t\treturn\n\t\t}\n\t}\n\n\tctx := h.propagators.Extract(r.Context(), propagation.HeaderCarrier(r.Header))\n\topts := []trace.SpanStartOption{\n\t\ttrace.WithAttributes(h.traceSemconv.RequestTraceAttrs(h.server, r)...),\n\t}\n\n\topts = append(opts, h.spanStartOptions...)\n\tif h.publicEndpoint || (h.publicEndpointFn != nil && h.publicEndpointFn(r.WithContext(ctx))) {\n\t\topts = append(opts, trace.WithNewRoot())\n\t\t// Linking incoming span context if any for public endpoint.\n\t\tif s := trace.SpanContextFromContext(ctx); s.IsValid() && s.IsRemote() {\n\t\t\topts = append(opts, trace.WithLinks(trace.Link{SpanContext: s}))\n\t\t}\n\t}\n\n\ttracer := h.tracer\n\n\tif tracer == nil {\n\t\tif span := trace.SpanFromContext(r.Context()); span.SpanContext().IsValid() {\n\t\t\ttracer = newTracer(span.TracerProvider())\n\t\t} else {\n\t\t\ttracer = newTracer(otel.GetTracerProvider())\n\t\t}\n\t}\n\n\tctx, span := tracer.Start(ctx, h.spanNameFormatter(h.operation, r), opts...)\n\tdefer span.End()\n\n\treadRecordFunc := func(int64) {}\n\tif h.readEvent {\n\t\treadRecordFunc = func(n int64) {\n\t\t\tspan.AddEvent(\"read\", trace.WithAttributes(ReadBytesKey.Int64(n)))\n\t\t}\n\t}\n\n\tvar bw bodyWrapper\n\t// if request body is nil or NoBody, we don't want to mutate the body as it\n\t// will affect the identity of it in an unforeseeable way because we assert\n\t// ReadCloser fulfills a certain interface and it is indeed nil or NoBody.\n\tif r.Body != nil && r.Body != http.NoBody {\n\t\tbw.ReadCloser = r.Body\n\t\tbw.record = readRecordFunc\n\t\tr.Body = &bw\n\t}\n\n\twriteRecordFunc := func(int64) {}\n\tif h.writeEvent {\n\t\twriteRecordFunc = func(n int64) {\n\t\t\tspan.AddEvent(\"write\", trace.WithAttributes(WroteBytesKey.Int64(n)))\n\t\t}\n\t}\n\n\trww := &respWriterWrapper{\n\t\tResponseWriter: w,\n\t\trecord:         writeRecordFunc,\n\t\tctx:            ctx,\n\t\tprops:          h.propagators,\n\t\tstatusCode:     http.StatusOK, // default status code in case the Handler doesn't write anything\n\t}\n\n\t// Wrap w to use our ResponseWriter methods while also exposing\n\t// other interfaces that w may implement (http.CloseNotifier,\n\t// http.Flusher, http.Hijacker, http.Pusher, io.ReaderFrom).\n\n\tw = httpsnoop.Wrap(w, httpsnoop.Hooks{\n\t\tHeader: func(httpsnoop.HeaderFunc) httpsnoop.HeaderFunc {\n\t\t\treturn rww.Header\n\t\t},\n\t\tWrite: func(httpsnoop.WriteFunc) httpsnoop.WriteFunc {\n\t\t\treturn rww.Write\n\t\t},\n\t\tWriteHeader: func(httpsnoop.WriteHeaderFunc) httpsnoop.WriteHeaderFunc {\n\t\t\treturn rww.WriteHeader\n\t\t},\n\t\tFlush: func(httpsnoop.FlushFunc) httpsnoop.FlushFunc {\n\t\t\treturn rww.Flush\n\t\t},\n\t})\n\n\tlabeler, found := LabelerFromContext(ctx)\n\tif !found {\n\t\tctx = ContextWithLabeler(ctx, labeler)\n\t}\n\n\tnext.ServeHTTP(w, r.WithContext(ctx))\n\n\tspan.SetStatus(semconv.ServerStatus(rww.statusCode))\n\tspan.SetAttributes(h.traceSemconv.ResponseTraceAttrs(semconv.ResponseTelemetry{\n\t\tStatusCode: rww.statusCode,\n\t\tReadBytes:  bw.read.Load(),\n\t\tReadError:  bw.err,\n\t\tWriteBytes: rww.written,\n\t\tWriteError: rww.err,\n\t})...)\n\n\t// Add metrics\n\tattributes := append(labeler.Get(), semconvutil.HTTPServerRequestMetrics(h.server, r)...)\n\tif rww.statusCode > 0 {\n\t\tattributes = append(attributes, semconv.HTTPStatusCode(rww.statusCode))\n\t}\n\to := metric.WithAttributeSet(attribute.NewSet(attributes...))\n\taddOpts := []metric.AddOption{o} // Allocate vararg slice once.\n\th.requestBytesCounter.Add(ctx, bw.read.Load(), addOpts...)\n\th.responseBytesCounter.Add(ctx, rww.written, addOpts...)\n\n\t// Use floating point division here for higher precision (instead of Millisecond method).\n\telapsedTime := float64(time.Since(requestStartTime)) / float64(time.Millisecond)\n\n\th.serverLatencyMeasure.Record(ctx, elapsedTime, o)\n}\n\n// WithRouteTag annotates spans and metrics with the provided route name\n// with HTTP route attribute.\nfunc WithRouteTag(route string, h http.Handler) http.Handler {\n\tattr := semconv.NewHTTPServer().Route(route)\n\treturn http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {\n\t\tspan := trace.SpanFromContext(r.Context())\n\t\tspan.SetAttributes(attr)\n\n\t\tlabeler, _ := LabelerFromContext(r.Context())\n\t\tlabeler.Add(attr)\n\n\t\th.ServeHTTP(w, r)\n\t})\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/env.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconv // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv\"\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"os\"\n\t\"strings\"\n\n\t\"go.opentelemetry.io/otel/attribute\"\n\t\"go.opentelemetry.io/otel/codes\"\n)\n\ntype ResponseTelemetry struct {\n\tStatusCode int\n\tReadBytes  int64\n\tReadError  error\n\tWriteBytes int64\n\tWriteError error\n}\n\ntype HTTPServer struct {\n\tduplicate bool\n}\n\n// RequestTraceAttrs returns trace attributes for an HTTP request received by a\n// server.\n//\n// The server must be the primary server name if it is known. For example this\n// would be the ServerName directive\n// (https://httpd.apache.org/docs/2.4/mod/core.html#servername) for an Apache\n// server, and the server_name directive\n// (http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name) for an\n// nginx server. More generically, the primary server name would be the host\n// header value that matches the default virtual host of an HTTP server. It\n// should include the host identifier and if a port is used to route to the\n// server that port identifier should be included as an appropriate port\n// suffix.\n//\n// If the primary server name is not known, server should be an empty string.\n// The req Host will be used to determine the server instead.\nfunc (s HTTPServer) RequestTraceAttrs(server string, req *http.Request) []attribute.KeyValue {\n\tif s.duplicate {\n\t\treturn append(oldHTTPServer{}.RequestTraceAttrs(server, req), newHTTPServer{}.RequestTraceAttrs(server, req)...)\n\t}\n\treturn oldHTTPServer{}.RequestTraceAttrs(server, req)\n}\n\n// ResponseTraceAttrs returns trace attributes for telemetry from an HTTP response.\n//\n// If any of the fields in the ResponseTelemetry are not set the attribute will be omitted.\nfunc (s HTTPServer) ResponseTraceAttrs(resp ResponseTelemetry) []attribute.KeyValue {\n\tif s.duplicate {\n\t\treturn append(oldHTTPServer{}.ResponseTraceAttrs(resp), newHTTPServer{}.ResponseTraceAttrs(resp)...)\n\t}\n\treturn oldHTTPServer{}.ResponseTraceAttrs(resp)\n}\n\n// Route returns the attribute for the route.\nfunc (s HTTPServer) Route(route string) attribute.KeyValue {\n\treturn oldHTTPServer{}.Route(route)\n}\n\nfunc NewHTTPServer() HTTPServer {\n\tenv := strings.ToLower(os.Getenv(\"OTEL_HTTP_CLIENT_COMPATIBILITY_MODE\"))\n\treturn HTTPServer{duplicate: env == \"http/dup\"}\n}\n\n// ServerStatus returns a span status code and message for an HTTP status code\n// value returned by a server. Status codes in the 400-499 range are not\n// returned as errors.\nfunc ServerStatus(code int) (codes.Code, string) {\n\tif code < 100 || code >= 600 {\n\t\treturn codes.Error, fmt.Sprintf(\"Invalid HTTP status code %d\", code)\n\t}\n\tif code >= 500 {\n\t\treturn codes.Error, \"\"\n\t}\n\treturn codes.Unset, \"\"\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/util.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconv // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv\"\n\nimport (\n\t\"net\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"go.opentelemetry.io/otel/attribute\"\n\tsemconvNew \"go.opentelemetry.io/otel/semconv/v1.24.0\"\n)\n\n// splitHostPort splits a network address hostport of the form \"host\",\n// \"host%zone\", \"[host]\", \"[host%zone], \"host:port\", \"host%zone:port\",\n// \"[host]:port\", \"[host%zone]:port\", or \":port\" into host or host%zone and\n// port.\n//\n// An empty host is returned if it is not provided or unparsable. A negative\n// port is returned if it is not provided or unparsable.\nfunc splitHostPort(hostport string) (host string, port int) {\n\tport = -1\n\n\tif strings.HasPrefix(hostport, \"[\") {\n\t\taddrEnd := strings.LastIndex(hostport, \"]\")\n\t\tif addrEnd < 0 {\n\t\t\t// Invalid hostport.\n\t\t\treturn\n\t\t}\n\t\tif i := strings.LastIndex(hostport[addrEnd:], \":\"); i < 0 {\n\t\t\thost = hostport[1:addrEnd]\n\t\t\treturn\n\t\t}\n\t} else {\n\t\tif i := strings.LastIndex(hostport, \":\"); i < 0 {\n\t\t\thost = hostport\n\t\t\treturn\n\t\t}\n\t}\n\n\thost, pStr, err := net.SplitHostPort(hostport)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tp, err := strconv.ParseUint(pStr, 10, 16)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn host, int(p)\n}\n\nfunc requiredHTTPPort(https bool, port int) int { // nolint:revive\n\tif https {\n\t\tif port > 0 && port != 443 {\n\t\t\treturn port\n\t\t}\n\t} else {\n\t\tif port > 0 && port != 80 {\n\t\t\treturn port\n\t\t}\n\t}\n\treturn -1\n}\n\nfunc serverClientIP(xForwardedFor string) string {\n\tif idx := strings.Index(xForwardedFor, \",\"); idx >= 0 {\n\t\txForwardedFor = xForwardedFor[:idx]\n\t}\n\treturn xForwardedFor\n}\n\nfunc netProtocol(proto string) (name string, version string) {\n\tname, version, _ = strings.Cut(proto, \"/\")\n\tname = strings.ToLower(name)\n\treturn name, version\n}\n\nvar methodLookup = map[string]attribute.KeyValue{\n\thttp.MethodConnect: semconvNew.HTTPRequestMethodConnect,\n\thttp.MethodDelete:  semconvNew.HTTPRequestMethodDelete,\n\thttp.MethodGet:     semconvNew.HTTPRequestMethodGet,\n\thttp.MethodHead:    semconvNew.HTTPRequestMethodHead,\n\thttp.MethodOptions: semconvNew.HTTPRequestMethodOptions,\n\thttp.MethodPatch:   semconvNew.HTTPRequestMethodPatch,\n\thttp.MethodPost:    semconvNew.HTTPRequestMethodPost,\n\thttp.MethodPut:     semconvNew.HTTPRequestMethodPut,\n\thttp.MethodTrace:   semconvNew.HTTPRequestMethodTrace,\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/v1.20.0.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconv // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv\"\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"net/http\"\n\n\t\"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil\"\n\t\"go.opentelemetry.io/otel/attribute\"\n\tsemconv \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n)\n\ntype oldHTTPServer struct{}\n\n// RequestTraceAttrs returns trace attributes for an HTTP request received by a\n// server.\n//\n// The server must be the primary server name if it is known. For example this\n// would be the ServerName directive\n// (https://httpd.apache.org/docs/2.4/mod/core.html#servername) for an Apache\n// server, and the server_name directive\n// (http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name) for an\n// nginx server. More generically, the primary server name would be the host\n// header value that matches the default virtual host of an HTTP server. It\n// should include the host identifier and if a port is used to route to the\n// server that port identifier should be included as an appropriate port\n// suffix.\n//\n// If the primary server name is not known, server should be an empty string.\n// The req Host will be used to determine the server instead.\nfunc (o oldHTTPServer) RequestTraceAttrs(server string, req *http.Request) []attribute.KeyValue {\n\treturn semconvutil.HTTPServerRequest(server, req)\n}\n\n// ResponseTraceAttrs returns trace attributes for telemetry from an HTTP response.\n//\n// If any of the fields in the ResponseTelemetry are not set the attribute will be omitted.\nfunc (o oldHTTPServer) ResponseTraceAttrs(resp ResponseTelemetry) []attribute.KeyValue {\n\tattributes := []attribute.KeyValue{}\n\n\tif resp.ReadBytes > 0 {\n\t\tattributes = append(attributes, semconv.HTTPRequestContentLength(int(resp.ReadBytes)))\n\t}\n\tif resp.ReadError != nil && !errors.Is(resp.ReadError, io.EOF) {\n\t\t// This is not in the semantic conventions, but is historically provided\n\t\tattributes = append(attributes, attribute.String(\"http.read_error\", resp.ReadError.Error()))\n\t}\n\tif resp.WriteBytes > 0 {\n\t\tattributes = append(attributes, semconv.HTTPResponseContentLength(int(resp.WriteBytes)))\n\t}\n\tif resp.StatusCode > 0 {\n\t\tattributes = append(attributes, semconv.HTTPStatusCode(resp.StatusCode))\n\t}\n\tif resp.WriteError != nil && !errors.Is(resp.WriteError, io.EOF) {\n\t\t// This is not in the semantic conventions, but is historically provided\n\t\tattributes = append(attributes, attribute.String(\"http.write_error\", resp.WriteError.Error()))\n\t}\n\n\treturn attributes\n}\n\n// Route returns the attribute for the route.\nfunc (o oldHTTPServer) Route(route string) attribute.KeyValue {\n\treturn semconv.HTTPRoute(route)\n}\n\n// HTTPStatusCode returns the attribute for the HTTP status code.\n// This is a temporary function needed by metrics.  This will be removed when MetricsRequest is added.\nfunc HTTPStatusCode(status int) attribute.KeyValue {\n\treturn semconv.HTTPStatusCode(status)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/v1.24.0.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconv // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv\"\n\nimport (\n\t\"net/http\"\n\t\"strings\"\n\n\t\"go.opentelemetry.io/otel/attribute\"\n\tsemconvNew \"go.opentelemetry.io/otel/semconv/v1.24.0\"\n)\n\ntype newHTTPServer struct{}\n\n// TraceRequest returns trace attributes for an HTTP request received by a\n// server.\n//\n// The server must be the primary server name if it is known. For example this\n// would be the ServerName directive\n// (https://httpd.apache.org/docs/2.4/mod/core.html#servername) for an Apache\n// server, and the server_name directive\n// (http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name) for an\n// nginx server. More generically, the primary server name would be the host\n// header value that matches the default virtual host of an HTTP server. It\n// should include the host identifier and if a port is used to route to the\n// server that port identifier should be included as an appropriate port\n// suffix.\n//\n// If the primary server name is not known, server should be an empty string.\n// The req Host will be used to determine the server instead.\nfunc (n newHTTPServer) RequestTraceAttrs(server string, req *http.Request) []attribute.KeyValue {\n\tcount := 3 // ServerAddress, Method, Scheme\n\n\tvar host string\n\tvar p int\n\tif server == \"\" {\n\t\thost, p = splitHostPort(req.Host)\n\t} else {\n\t\t// Prioritize the primary server name.\n\t\thost, p = splitHostPort(server)\n\t\tif p < 0 {\n\t\t\t_, p = splitHostPort(req.Host)\n\t\t}\n\t}\n\n\thostPort := requiredHTTPPort(req.TLS != nil, p)\n\tif hostPort > 0 {\n\t\tcount++\n\t}\n\n\tmethod, methodOriginal := n.method(req.Method)\n\tif methodOriginal != (attribute.KeyValue{}) {\n\t\tcount++\n\t}\n\n\tscheme := n.scheme(req.TLS != nil)\n\n\tif peer, peerPort := splitHostPort(req.RemoteAddr); peer != \"\" {\n\t\t// The Go HTTP server sets RemoteAddr to \"IP:port\", this will not be a\n\t\t// file-path that would be interpreted with a sock family.\n\t\tcount++\n\t\tif peerPort > 0 {\n\t\t\tcount++\n\t\t}\n\t}\n\n\tuseragent := req.UserAgent()\n\tif useragent != \"\" {\n\t\tcount++\n\t}\n\n\tclientIP := serverClientIP(req.Header.Get(\"X-Forwarded-For\"))\n\tif clientIP != \"\" {\n\t\tcount++\n\t}\n\n\tif req.URL != nil && req.URL.Path != \"\" {\n\t\tcount++\n\t}\n\n\tprotoName, protoVersion := netProtocol(req.Proto)\n\tif protoName != \"\" && protoName != \"http\" {\n\t\tcount++\n\t}\n\tif protoVersion != \"\" {\n\t\tcount++\n\t}\n\n\tattrs := make([]attribute.KeyValue, 0, count)\n\tattrs = append(attrs,\n\t\tsemconvNew.ServerAddress(host),\n\t\tmethod,\n\t\tscheme,\n\t)\n\n\tif hostPort > 0 {\n\t\tattrs = append(attrs, semconvNew.ServerPort(hostPort))\n\t}\n\tif methodOriginal != (attribute.KeyValue{}) {\n\t\tattrs = append(attrs, methodOriginal)\n\t}\n\n\tif peer, peerPort := splitHostPort(req.RemoteAddr); peer != \"\" {\n\t\t// The Go HTTP server sets RemoteAddr to \"IP:port\", this will not be a\n\t\t// file-path that would be interpreted with a sock family.\n\t\tattrs = append(attrs, semconvNew.NetworkPeerAddress(peer))\n\t\tif peerPort > 0 {\n\t\t\tattrs = append(attrs, semconvNew.NetworkPeerPort(peerPort))\n\t\t}\n\t}\n\n\tif useragent := req.UserAgent(); useragent != \"\" {\n\t\tattrs = append(attrs, semconvNew.UserAgentOriginal(useragent))\n\t}\n\n\tif clientIP != \"\" {\n\t\tattrs = append(attrs, semconvNew.ClientAddress(clientIP))\n\t}\n\n\tif req.URL != nil && req.URL.Path != \"\" {\n\t\tattrs = append(attrs, semconvNew.URLPath(req.URL.Path))\n\t}\n\n\tif protoName != \"\" && protoName != \"http\" {\n\t\tattrs = append(attrs, semconvNew.NetworkProtocolName(protoName))\n\t}\n\tif protoVersion != \"\" {\n\t\tattrs = append(attrs, semconvNew.NetworkProtocolVersion(protoVersion))\n\t}\n\n\treturn attrs\n}\n\nfunc (n newHTTPServer) method(method string) (attribute.KeyValue, attribute.KeyValue) {\n\tif method == \"\" {\n\t\treturn semconvNew.HTTPRequestMethodGet, attribute.KeyValue{}\n\t}\n\tif attr, ok := methodLookup[method]; ok {\n\t\treturn attr, attribute.KeyValue{}\n\t}\n\n\torig := semconvNew.HTTPRequestMethodOriginal(method)\n\tif attr, ok := methodLookup[strings.ToUpper(method)]; ok {\n\t\treturn attr, orig\n\t}\n\treturn semconvNew.HTTPRequestMethodGet, orig\n}\n\nfunc (n newHTTPServer) scheme(https bool) attribute.KeyValue { // nolint:revive\n\tif https {\n\t\treturn semconvNew.URLScheme(\"https\")\n\t}\n\treturn semconvNew.URLScheme(\"http\")\n}\n\n// TraceResponse returns trace attributes for telemetry from an HTTP response.\n//\n// If any of the fields in the ResponseTelemetry are not set the attribute will be omitted.\nfunc (n newHTTPServer) ResponseTraceAttrs(resp ResponseTelemetry) []attribute.KeyValue {\n\tvar count int\n\n\tif resp.ReadBytes > 0 {\n\t\tcount++\n\t}\n\tif resp.WriteBytes > 0 {\n\t\tcount++\n\t}\n\tif resp.StatusCode > 0 {\n\t\tcount++\n\t}\n\n\tattributes := make([]attribute.KeyValue, 0, count)\n\n\tif resp.ReadBytes > 0 {\n\t\tattributes = append(attributes,\n\t\t\tsemconvNew.HTTPRequestBodySize(int(resp.ReadBytes)),\n\t\t)\n\t}\n\tif resp.WriteBytes > 0 {\n\t\tattributes = append(attributes,\n\t\t\tsemconvNew.HTTPResponseBodySize(int(resp.WriteBytes)),\n\t\t)\n\t}\n\tif resp.StatusCode > 0 {\n\t\tattributes = append(attributes,\n\t\t\tsemconvNew.HTTPResponseStatusCode(resp.StatusCode),\n\t\t)\n\t}\n\n\treturn attributes\n}\n\n// Route returns the attribute for the route.\nfunc (n newHTTPServer) Route(route string) attribute.KeyValue {\n\treturn semconvNew.HTTPRoute(route)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil/gen.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconvutil // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil\"\n\n// Generate semconvutil package:\n//go:generate gotmpl --body=../../../../../../internal/shared/semconvutil/httpconv_test.go.tmpl \"--data={}\" --out=httpconv_test.go\n//go:generate gotmpl --body=../../../../../../internal/shared/semconvutil/httpconv.go.tmpl \"--data={}\" --out=httpconv.go\n//go:generate gotmpl --body=../../../../../../internal/shared/semconvutil/netconv_test.go.tmpl \"--data={}\" --out=netconv_test.go\n//go:generate gotmpl --body=../../../../../../internal/shared/semconvutil/netconv.go.tmpl \"--data={}\" --out=netconv.go\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil/httpconv.go",
    "content": "// Code created by gotmpl. DO NOT MODIFY.\n// source: internal/shared/semconvutil/httpconv.go.tmpl\n\n// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconvutil // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil\"\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"strings\"\n\n\t\"go.opentelemetry.io/otel/attribute\"\n\t\"go.opentelemetry.io/otel/codes\"\n\tsemconv \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n)\n\n// HTTPClientResponse returns trace attributes for an HTTP response received by a\n// client from a server. It will return the following attributes if the related\n// values are defined in resp: \"http.status.code\",\n// \"http.response_content_length\".\n//\n// This does not add all OpenTelemetry required attributes for an HTTP event,\n// it assumes ClientRequest was used to create the span with a complete set of\n// attributes. If a complete set of attributes can be generated using the\n// request contained in resp. For example:\n//\n//\tappend(HTTPClientResponse(resp), ClientRequest(resp.Request)...)\nfunc HTTPClientResponse(resp *http.Response) []attribute.KeyValue {\n\treturn hc.ClientResponse(resp)\n}\n\n// HTTPClientRequest returns trace attributes for an HTTP request made by a client.\n// The following attributes are always returned: \"http.url\", \"http.method\",\n// \"net.peer.name\". The following attributes are returned if the related values\n// are defined in req: \"net.peer.port\", \"user_agent.original\",\n// \"http.request_content_length\".\nfunc HTTPClientRequest(req *http.Request) []attribute.KeyValue {\n\treturn hc.ClientRequest(req)\n}\n\n// HTTPClientRequestMetrics returns metric attributes for an HTTP request made by a client.\n// The following attributes are always returned: \"http.method\", \"net.peer.name\".\n// The following attributes are returned if the\n// related values are defined in req: \"net.peer.port\".\nfunc HTTPClientRequestMetrics(req *http.Request) []attribute.KeyValue {\n\treturn hc.ClientRequestMetrics(req)\n}\n\n// HTTPClientStatus returns a span status code and message for an HTTP status code\n// value received by a client.\nfunc HTTPClientStatus(code int) (codes.Code, string) {\n\treturn hc.ClientStatus(code)\n}\n\n// HTTPServerRequest returns trace attributes for an HTTP request received by a\n// server.\n//\n// The server must be the primary server name if it is known. For example this\n// would be the ServerName directive\n// (https://httpd.apache.org/docs/2.4/mod/core.html#servername) for an Apache\n// server, and the server_name directive\n// (http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name) for an\n// nginx server. More generically, the primary server name would be the host\n// header value that matches the default virtual host of an HTTP server. It\n// should include the host identifier and if a port is used to route to the\n// server that port identifier should be included as an appropriate port\n// suffix.\n//\n// If the primary server name is not known, server should be an empty string.\n// The req Host will be used to determine the server instead.\n//\n// The following attributes are always returned: \"http.method\", \"http.scheme\",\n// \"http.target\", \"net.host.name\". The following attributes are returned if\n// they related values are defined in req: \"net.host.port\", \"net.sock.peer.addr\",\n// \"net.sock.peer.port\", \"user_agent.original\", \"http.client_ip\".\nfunc HTTPServerRequest(server string, req *http.Request) []attribute.KeyValue {\n\treturn hc.ServerRequest(server, req)\n}\n\n// HTTPServerRequestMetrics returns metric attributes for an HTTP request received by a\n// server.\n//\n// The server must be the primary server name if it is known. For example this\n// would be the ServerName directive\n// (https://httpd.apache.org/docs/2.4/mod/core.html#servername) for an Apache\n// server, and the server_name directive\n// (http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name) for an\n// nginx server. More generically, the primary server name would be the host\n// header value that matches the default virtual host of an HTTP server. It\n// should include the host identifier and if a port is used to route to the\n// server that port identifier should be included as an appropriate port\n// suffix.\n//\n// If the primary server name is not known, server should be an empty string.\n// The req Host will be used to determine the server instead.\n//\n// The following attributes are always returned: \"http.method\", \"http.scheme\",\n// \"net.host.name\". The following attributes are returned if they related\n// values are defined in req: \"net.host.port\".\nfunc HTTPServerRequestMetrics(server string, req *http.Request) []attribute.KeyValue {\n\treturn hc.ServerRequestMetrics(server, req)\n}\n\n// HTTPServerStatus returns a span status code and message for an HTTP status code\n// value returned by a server. Status codes in the 400-499 range are not\n// returned as errors.\nfunc HTTPServerStatus(code int) (codes.Code, string) {\n\treturn hc.ServerStatus(code)\n}\n\n// httpConv are the HTTP semantic convention attributes defined for a version\n// of the OpenTelemetry specification.\ntype httpConv struct {\n\tNetConv *netConv\n\n\tHTTPClientIPKey              attribute.Key\n\tHTTPMethodKey                attribute.Key\n\tHTTPRequestContentLengthKey  attribute.Key\n\tHTTPResponseContentLengthKey attribute.Key\n\tHTTPRouteKey                 attribute.Key\n\tHTTPSchemeHTTP               attribute.KeyValue\n\tHTTPSchemeHTTPS              attribute.KeyValue\n\tHTTPStatusCodeKey            attribute.Key\n\tHTTPTargetKey                attribute.Key\n\tHTTPURLKey                   attribute.Key\n\tUserAgentOriginalKey         attribute.Key\n}\n\nvar hc = &httpConv{\n\tNetConv: nc,\n\n\tHTTPClientIPKey:              semconv.HTTPClientIPKey,\n\tHTTPMethodKey:                semconv.HTTPMethodKey,\n\tHTTPRequestContentLengthKey:  semconv.HTTPRequestContentLengthKey,\n\tHTTPResponseContentLengthKey: semconv.HTTPResponseContentLengthKey,\n\tHTTPRouteKey:                 semconv.HTTPRouteKey,\n\tHTTPSchemeHTTP:               semconv.HTTPSchemeHTTP,\n\tHTTPSchemeHTTPS:              semconv.HTTPSchemeHTTPS,\n\tHTTPStatusCodeKey:            semconv.HTTPStatusCodeKey,\n\tHTTPTargetKey:                semconv.HTTPTargetKey,\n\tHTTPURLKey:                   semconv.HTTPURLKey,\n\tUserAgentOriginalKey:         semconv.UserAgentOriginalKey,\n}\n\n// ClientResponse returns attributes for an HTTP response received by a client\n// from a server. The following attributes are returned if the related values\n// are defined in resp: \"http.status.code\", \"http.response_content_length\".\n//\n// This does not add all OpenTelemetry required attributes for an HTTP event,\n// it assumes ClientRequest was used to create the span with a complete set of\n// attributes. If a complete set of attributes can be generated using the\n// request contained in resp. For example:\n//\n//\tappend(ClientResponse(resp), ClientRequest(resp.Request)...)\nfunc (c *httpConv) ClientResponse(resp *http.Response) []attribute.KeyValue {\n\t/* The following semantic conventions are returned if present:\n\thttp.status_code                int\n\thttp.response_content_length    int\n\t*/\n\tvar n int\n\tif resp.StatusCode > 0 {\n\t\tn++\n\t}\n\tif resp.ContentLength > 0 {\n\t\tn++\n\t}\n\n\tattrs := make([]attribute.KeyValue, 0, n)\n\tif resp.StatusCode > 0 {\n\t\tattrs = append(attrs, c.HTTPStatusCodeKey.Int(resp.StatusCode))\n\t}\n\tif resp.ContentLength > 0 {\n\t\tattrs = append(attrs, c.HTTPResponseContentLengthKey.Int(int(resp.ContentLength)))\n\t}\n\treturn attrs\n}\n\n// ClientRequest returns attributes for an HTTP request made by a client. The\n// following attributes are always returned: \"http.url\", \"http.method\",\n// \"net.peer.name\". The following attributes are returned if the related values\n// are defined in req: \"net.peer.port\", \"user_agent.original\",\n// \"http.request_content_length\", \"user_agent.original\".\nfunc (c *httpConv) ClientRequest(req *http.Request) []attribute.KeyValue {\n\t/* The following semantic conventions are returned if present:\n\thttp.method                     string\n\tuser_agent.original             string\n\thttp.url                        string\n\tnet.peer.name                   string\n\tnet.peer.port                   int\n\thttp.request_content_length     int\n\t*/\n\n\t/* The following semantic conventions are not returned:\n\thttp.status_code                This requires the response. See ClientResponse.\n\thttp.response_content_length    This requires the response. See ClientResponse.\n\tnet.sock.family                 This requires the socket used.\n\tnet.sock.peer.addr              This requires the socket used.\n\tnet.sock.peer.name              This requires the socket used.\n\tnet.sock.peer.port              This requires the socket used.\n\thttp.resend_count               This is something outside of a single request.\n\tnet.protocol.name               The value is the Request is ignored, and the go client will always use \"http\".\n\tnet.protocol.version            The value in the Request is ignored, and the go client will always use 1.1 or 2.0.\n\t*/\n\tn := 3 // URL, peer name, proto, and method.\n\tvar h string\n\tif req.URL != nil {\n\t\th = req.URL.Host\n\t}\n\tpeer, p := firstHostPort(h, req.Header.Get(\"Host\"))\n\tport := requiredHTTPPort(req.URL != nil && req.URL.Scheme == \"https\", p)\n\tif port > 0 {\n\t\tn++\n\t}\n\tuseragent := req.UserAgent()\n\tif useragent != \"\" {\n\t\tn++\n\t}\n\tif req.ContentLength > 0 {\n\t\tn++\n\t}\n\n\tattrs := make([]attribute.KeyValue, 0, n)\n\n\tattrs = append(attrs, c.method(req.Method))\n\n\tvar u string\n\tif req.URL != nil {\n\t\t// Remove any username/password info that may be in the URL.\n\t\tuserinfo := req.URL.User\n\t\treq.URL.User = nil\n\t\tu = req.URL.String()\n\t\t// Restore any username/password info that was removed.\n\t\treq.URL.User = userinfo\n\t}\n\tattrs = append(attrs, c.HTTPURLKey.String(u))\n\n\tattrs = append(attrs, c.NetConv.PeerName(peer))\n\tif port > 0 {\n\t\tattrs = append(attrs, c.NetConv.PeerPort(port))\n\t}\n\n\tif useragent != \"\" {\n\t\tattrs = append(attrs, c.UserAgentOriginalKey.String(useragent))\n\t}\n\n\tif l := req.ContentLength; l > 0 {\n\t\tattrs = append(attrs, c.HTTPRequestContentLengthKey.Int64(l))\n\t}\n\n\treturn attrs\n}\n\n// ClientRequestMetrics returns metric attributes for an HTTP request made by a client. The\n// following attributes are always returned: \"http.method\", \"net.peer.name\".\n// The following attributes are returned if the related values\n// are defined in req: \"net.peer.port\".\nfunc (c *httpConv) ClientRequestMetrics(req *http.Request) []attribute.KeyValue {\n\t/* The following semantic conventions are returned if present:\n\thttp.method                     string\n\tnet.peer.name                   string\n\tnet.peer.port                   int\n\t*/\n\n\tn := 2 // method, peer name.\n\tvar h string\n\tif req.URL != nil {\n\t\th = req.URL.Host\n\t}\n\tpeer, p := firstHostPort(h, req.Header.Get(\"Host\"))\n\tport := requiredHTTPPort(req.URL != nil && req.URL.Scheme == \"https\", p)\n\tif port > 0 {\n\t\tn++\n\t}\n\n\tattrs := make([]attribute.KeyValue, 0, n)\n\tattrs = append(attrs, c.method(req.Method), c.NetConv.PeerName(peer))\n\n\tif port > 0 {\n\t\tattrs = append(attrs, c.NetConv.PeerPort(port))\n\t}\n\n\treturn attrs\n}\n\n// ServerRequest returns attributes for an HTTP request received by a server.\n//\n// The server must be the primary server name if it is known. For example this\n// would be the ServerName directive\n// (https://httpd.apache.org/docs/2.4/mod/core.html#servername) for an Apache\n// server, and the server_name directive\n// (http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name) for an\n// nginx server. More generically, the primary server name would be the host\n// header value that matches the default virtual host of an HTTP server. It\n// should include the host identifier and if a port is used to route to the\n// server that port identifier should be included as an appropriate port\n// suffix.\n//\n// If the primary server name is not known, server should be an empty string.\n// The req Host will be used to determine the server instead.\n//\n// The following attributes are always returned: \"http.method\", \"http.scheme\",\n// \"http.target\", \"net.host.name\". The following attributes are returned if they\n// related values are defined in req: \"net.host.port\", \"net.sock.peer.addr\",\n// \"net.sock.peer.port\", \"user_agent.original\", \"http.client_ip\",\n// \"net.protocol.name\", \"net.protocol.version\".\nfunc (c *httpConv) ServerRequest(server string, req *http.Request) []attribute.KeyValue {\n\t/* The following semantic conventions are returned if present:\n\thttp.method             string\n\thttp.scheme             string\n\tnet.host.name           string\n\tnet.host.port           int\n\tnet.sock.peer.addr      string\n\tnet.sock.peer.port      int\n\tuser_agent.original     string\n\thttp.client_ip          string\n\tnet.protocol.name       string Note: not set if the value is \"http\".\n\tnet.protocol.version    string\n\thttp.target             string Note: doesn't include the query parameter.\n\t*/\n\n\t/* The following semantic conventions are not returned:\n\thttp.status_code                This requires the response.\n\thttp.request_content_length     This requires the len() of body, which can mutate it.\n\thttp.response_content_length    This requires the response.\n\thttp.route                      This is not available.\n\tnet.sock.peer.name              This would require a DNS lookup.\n\tnet.sock.host.addr              The request doesn't have access to the underlying socket.\n\tnet.sock.host.port              The request doesn't have access to the underlying socket.\n\n\t*/\n\tn := 4 // Method, scheme, proto, and host name.\n\tvar host string\n\tvar p int\n\tif server == \"\" {\n\t\thost, p = splitHostPort(req.Host)\n\t} else {\n\t\t// Prioritize the primary server name.\n\t\thost, p = splitHostPort(server)\n\t\tif p < 0 {\n\t\t\t_, p = splitHostPort(req.Host)\n\t\t}\n\t}\n\thostPort := requiredHTTPPort(req.TLS != nil, p)\n\tif hostPort > 0 {\n\t\tn++\n\t}\n\tpeer, peerPort := splitHostPort(req.RemoteAddr)\n\tif peer != \"\" {\n\t\tn++\n\t\tif peerPort > 0 {\n\t\t\tn++\n\t\t}\n\t}\n\tuseragent := req.UserAgent()\n\tif useragent != \"\" {\n\t\tn++\n\t}\n\n\tclientIP := serverClientIP(req.Header.Get(\"X-Forwarded-For\"))\n\tif clientIP != \"\" {\n\t\tn++\n\t}\n\n\tvar target string\n\tif req.URL != nil {\n\t\ttarget = req.URL.Path\n\t\tif target != \"\" {\n\t\t\tn++\n\t\t}\n\t}\n\tprotoName, protoVersion := netProtocol(req.Proto)\n\tif protoName != \"\" && protoName != \"http\" {\n\t\tn++\n\t}\n\tif protoVersion != \"\" {\n\t\tn++\n\t}\n\n\tattrs := make([]attribute.KeyValue, 0, n)\n\n\tattrs = append(attrs, c.method(req.Method))\n\tattrs = append(attrs, c.scheme(req.TLS != nil))\n\tattrs = append(attrs, c.NetConv.HostName(host))\n\n\tif hostPort > 0 {\n\t\tattrs = append(attrs, c.NetConv.HostPort(hostPort))\n\t}\n\n\tif peer != \"\" {\n\t\t// The Go HTTP server sets RemoteAddr to \"IP:port\", this will not be a\n\t\t// file-path that would be interpreted with a sock family.\n\t\tattrs = append(attrs, c.NetConv.SockPeerAddr(peer))\n\t\tif peerPort > 0 {\n\t\t\tattrs = append(attrs, c.NetConv.SockPeerPort(peerPort))\n\t\t}\n\t}\n\n\tif useragent != \"\" {\n\t\tattrs = append(attrs, c.UserAgentOriginalKey.String(useragent))\n\t}\n\n\tif clientIP != \"\" {\n\t\tattrs = append(attrs, c.HTTPClientIPKey.String(clientIP))\n\t}\n\n\tif target != \"\" {\n\t\tattrs = append(attrs, c.HTTPTargetKey.String(target))\n\t}\n\n\tif protoName != \"\" && protoName != \"http\" {\n\t\tattrs = append(attrs, c.NetConv.NetProtocolName.String(protoName))\n\t}\n\tif protoVersion != \"\" {\n\t\tattrs = append(attrs, c.NetConv.NetProtocolVersion.String(protoVersion))\n\t}\n\n\treturn attrs\n}\n\n// ServerRequestMetrics returns metric attributes for an HTTP request received\n// by a server.\n//\n// The server must be the primary server name if it is known. For example this\n// would be the ServerName directive\n// (https://httpd.apache.org/docs/2.4/mod/core.html#servername) for an Apache\n// server, and the server_name directive\n// (http://nginx.org/en/docs/http/ngx_http_core_module.html#server_name) for an\n// nginx server. More generically, the primary server name would be the host\n// header value that matches the default virtual host of an HTTP server. It\n// should include the host identifier and if a port is used to route to the\n// server that port identifier should be included as an appropriate port\n// suffix.\n//\n// If the primary server name is not known, server should be an empty string.\n// The req Host will be used to determine the server instead.\n//\n// The following attributes are always returned: \"http.method\", \"http.scheme\",\n// \"net.host.name\". The following attributes are returned if they related\n// values are defined in req: \"net.host.port\".\nfunc (c *httpConv) ServerRequestMetrics(server string, req *http.Request) []attribute.KeyValue {\n\t/* The following semantic conventions are returned if present:\n\thttp.scheme             string\n\thttp.route              string\n\thttp.method             string\n\thttp.status_code        int\n\tnet.host.name           string\n\tnet.host.port           int\n\tnet.protocol.name       string Note: not set if the value is \"http\".\n\tnet.protocol.version    string\n\t*/\n\n\tn := 3 // Method, scheme, and host name.\n\tvar host string\n\tvar p int\n\tif server == \"\" {\n\t\thost, p = splitHostPort(req.Host)\n\t} else {\n\t\t// Prioritize the primary server name.\n\t\thost, p = splitHostPort(server)\n\t\tif p < 0 {\n\t\t\t_, p = splitHostPort(req.Host)\n\t\t}\n\t}\n\thostPort := requiredHTTPPort(req.TLS != nil, p)\n\tif hostPort > 0 {\n\t\tn++\n\t}\n\tprotoName, protoVersion := netProtocol(req.Proto)\n\tif protoName != \"\" {\n\t\tn++\n\t}\n\tif protoVersion != \"\" {\n\t\tn++\n\t}\n\n\tattrs := make([]attribute.KeyValue, 0, n)\n\n\tattrs = append(attrs, c.methodMetric(req.Method))\n\tattrs = append(attrs, c.scheme(req.TLS != nil))\n\tattrs = append(attrs, c.NetConv.HostName(host))\n\n\tif hostPort > 0 {\n\t\tattrs = append(attrs, c.NetConv.HostPort(hostPort))\n\t}\n\tif protoName != \"\" {\n\t\tattrs = append(attrs, c.NetConv.NetProtocolName.String(protoName))\n\t}\n\tif protoVersion != \"\" {\n\t\tattrs = append(attrs, c.NetConv.NetProtocolVersion.String(protoVersion))\n\t}\n\n\treturn attrs\n}\n\nfunc (c *httpConv) method(method string) attribute.KeyValue {\n\tif method == \"\" {\n\t\treturn c.HTTPMethodKey.String(http.MethodGet)\n\t}\n\treturn c.HTTPMethodKey.String(method)\n}\n\nfunc (c *httpConv) methodMetric(method string) attribute.KeyValue {\n\tmethod = strings.ToUpper(method)\n\tswitch method {\n\tcase http.MethodConnect, http.MethodDelete, http.MethodGet, http.MethodHead, http.MethodOptions, http.MethodPatch, http.MethodPost, http.MethodPut, http.MethodTrace:\n\tdefault:\n\t\tmethod = \"_OTHER\"\n\t}\n\treturn c.HTTPMethodKey.String(method)\n}\n\nfunc (c *httpConv) scheme(https bool) attribute.KeyValue { // nolint:revive\n\tif https {\n\t\treturn c.HTTPSchemeHTTPS\n\t}\n\treturn c.HTTPSchemeHTTP\n}\n\nfunc serverClientIP(xForwardedFor string) string {\n\tif idx := strings.Index(xForwardedFor, \",\"); idx >= 0 {\n\t\txForwardedFor = xForwardedFor[:idx]\n\t}\n\treturn xForwardedFor\n}\n\nfunc requiredHTTPPort(https bool, port int) int { // nolint:revive\n\tif https {\n\t\tif port > 0 && port != 443 {\n\t\t\treturn port\n\t\t}\n\t} else {\n\t\tif port > 0 && port != 80 {\n\t\t\treturn port\n\t\t}\n\t}\n\treturn -1\n}\n\n// Return the request host and port from the first non-empty source.\nfunc firstHostPort(source ...string) (host string, port int) {\n\tfor _, hostport := range source {\n\t\thost, port = splitHostPort(hostport)\n\t\tif host != \"\" || port > 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn\n}\n\n// ClientStatus returns a span status code and message for an HTTP status code\n// value received by a client.\nfunc (c *httpConv) ClientStatus(code int) (codes.Code, string) {\n\tif code < 100 || code >= 600 {\n\t\treturn codes.Error, fmt.Sprintf(\"Invalid HTTP status code %d\", code)\n\t}\n\tif code >= 400 {\n\t\treturn codes.Error, \"\"\n\t}\n\treturn codes.Unset, \"\"\n}\n\n// ServerStatus returns a span status code and message for an HTTP status code\n// value returned by a server. Status codes in the 400-499 range are not\n// returned as errors.\nfunc (c *httpConv) ServerStatus(code int) (codes.Code, string) {\n\tif code < 100 || code >= 600 {\n\t\treturn codes.Error, fmt.Sprintf(\"Invalid HTTP status code %d\", code)\n\t}\n\tif code >= 500 {\n\t\treturn codes.Error, \"\"\n\t}\n\treturn codes.Unset, \"\"\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil/netconv.go",
    "content": "// Code created by gotmpl. DO NOT MODIFY.\n// source: internal/shared/semconvutil/netconv.go.tmpl\n\n// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconvutil // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil\"\n\nimport (\n\t\"net\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"go.opentelemetry.io/otel/attribute\"\n\tsemconv \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n)\n\n// NetTransport returns a trace attribute describing the transport protocol of the\n// passed network. See the net.Dial for information about acceptable network\n// values.\nfunc NetTransport(network string) attribute.KeyValue {\n\treturn nc.Transport(network)\n}\n\n// netConv are the network semantic convention attributes defined for a version\n// of the OpenTelemetry specification.\ntype netConv struct {\n\tNetHostNameKey     attribute.Key\n\tNetHostPortKey     attribute.Key\n\tNetPeerNameKey     attribute.Key\n\tNetPeerPortKey     attribute.Key\n\tNetProtocolName    attribute.Key\n\tNetProtocolVersion attribute.Key\n\tNetSockFamilyKey   attribute.Key\n\tNetSockPeerAddrKey attribute.Key\n\tNetSockPeerPortKey attribute.Key\n\tNetSockHostAddrKey attribute.Key\n\tNetSockHostPortKey attribute.Key\n\tNetTransportOther  attribute.KeyValue\n\tNetTransportTCP    attribute.KeyValue\n\tNetTransportUDP    attribute.KeyValue\n\tNetTransportInProc attribute.KeyValue\n}\n\nvar nc = &netConv{\n\tNetHostNameKey:     semconv.NetHostNameKey,\n\tNetHostPortKey:     semconv.NetHostPortKey,\n\tNetPeerNameKey:     semconv.NetPeerNameKey,\n\tNetPeerPortKey:     semconv.NetPeerPortKey,\n\tNetProtocolName:    semconv.NetProtocolNameKey,\n\tNetProtocolVersion: semconv.NetProtocolVersionKey,\n\tNetSockFamilyKey:   semconv.NetSockFamilyKey,\n\tNetSockPeerAddrKey: semconv.NetSockPeerAddrKey,\n\tNetSockPeerPortKey: semconv.NetSockPeerPortKey,\n\tNetSockHostAddrKey: semconv.NetSockHostAddrKey,\n\tNetSockHostPortKey: semconv.NetSockHostPortKey,\n\tNetTransportOther:  semconv.NetTransportOther,\n\tNetTransportTCP:    semconv.NetTransportTCP,\n\tNetTransportUDP:    semconv.NetTransportUDP,\n\tNetTransportInProc: semconv.NetTransportInProc,\n}\n\nfunc (c *netConv) Transport(network string) attribute.KeyValue {\n\tswitch network {\n\tcase \"tcp\", \"tcp4\", \"tcp6\":\n\t\treturn c.NetTransportTCP\n\tcase \"udp\", \"udp4\", \"udp6\":\n\t\treturn c.NetTransportUDP\n\tcase \"unix\", \"unixgram\", \"unixpacket\":\n\t\treturn c.NetTransportInProc\n\tdefault:\n\t\t// \"ip:*\", \"ip4:*\", and \"ip6:*\" all are considered other.\n\t\treturn c.NetTransportOther\n\t}\n}\n\n// Host returns attributes for a network host address.\nfunc (c *netConv) Host(address string) []attribute.KeyValue {\n\th, p := splitHostPort(address)\n\tvar n int\n\tif h != \"\" {\n\t\tn++\n\t\tif p > 0 {\n\t\t\tn++\n\t\t}\n\t}\n\n\tif n == 0 {\n\t\treturn nil\n\t}\n\n\tattrs := make([]attribute.KeyValue, 0, n)\n\tattrs = append(attrs, c.HostName(h))\n\tif p > 0 {\n\t\tattrs = append(attrs, c.HostPort(p))\n\t}\n\treturn attrs\n}\n\nfunc (c *netConv) HostName(name string) attribute.KeyValue {\n\treturn c.NetHostNameKey.String(name)\n}\n\nfunc (c *netConv) HostPort(port int) attribute.KeyValue {\n\treturn c.NetHostPortKey.Int(port)\n}\n\nfunc family(network, address string) string {\n\tswitch network {\n\tcase \"unix\", \"unixgram\", \"unixpacket\":\n\t\treturn \"unix\"\n\tdefault:\n\t\tif ip := net.ParseIP(address); ip != nil {\n\t\t\tif ip.To4() == nil {\n\t\t\t\treturn \"inet6\"\n\t\t\t}\n\t\t\treturn \"inet\"\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// Peer returns attributes for a network peer address.\nfunc (c *netConv) Peer(address string) []attribute.KeyValue {\n\th, p := splitHostPort(address)\n\tvar n int\n\tif h != \"\" {\n\t\tn++\n\t\tif p > 0 {\n\t\t\tn++\n\t\t}\n\t}\n\n\tif n == 0 {\n\t\treturn nil\n\t}\n\n\tattrs := make([]attribute.KeyValue, 0, n)\n\tattrs = append(attrs, c.PeerName(h))\n\tif p > 0 {\n\t\tattrs = append(attrs, c.PeerPort(p))\n\t}\n\treturn attrs\n}\n\nfunc (c *netConv) PeerName(name string) attribute.KeyValue {\n\treturn c.NetPeerNameKey.String(name)\n}\n\nfunc (c *netConv) PeerPort(port int) attribute.KeyValue {\n\treturn c.NetPeerPortKey.Int(port)\n}\n\nfunc (c *netConv) SockPeerAddr(addr string) attribute.KeyValue {\n\treturn c.NetSockPeerAddrKey.String(addr)\n}\n\nfunc (c *netConv) SockPeerPort(port int) attribute.KeyValue {\n\treturn c.NetSockPeerPortKey.Int(port)\n}\n\n// splitHostPort splits a network address hostport of the form \"host\",\n// \"host%zone\", \"[host]\", \"[host%zone], \"host:port\", \"host%zone:port\",\n// \"[host]:port\", \"[host%zone]:port\", or \":port\" into host or host%zone and\n// port.\n//\n// An empty host is returned if it is not provided or unparsable. A negative\n// port is returned if it is not provided or unparsable.\nfunc splitHostPort(hostport string) (host string, port int) {\n\tport = -1\n\n\tif strings.HasPrefix(hostport, \"[\") {\n\t\taddrEnd := strings.LastIndex(hostport, \"]\")\n\t\tif addrEnd < 0 {\n\t\t\t// Invalid hostport.\n\t\t\treturn\n\t\t}\n\t\tif i := strings.LastIndex(hostport[addrEnd:], \":\"); i < 0 {\n\t\t\thost = hostport[1:addrEnd]\n\t\t\treturn\n\t\t}\n\t} else {\n\t\tif i := strings.LastIndex(hostport, \":\"); i < 0 {\n\t\t\thost = hostport\n\t\t\treturn\n\t\t}\n\t}\n\n\thost, pStr, err := net.SplitHostPort(hostport)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tp, err := strconv.ParseUint(pStr, 10, 16)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn host, int(p)\n}\n\nfunc netProtocol(proto string) (name string, version string) {\n\tname, version, _ = strings.Cut(proto, \"/\")\n\tname = strings.ToLower(name)\n\treturn name, version\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/labeler.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otelhttp // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n\nimport (\n\t\"context\"\n\t\"sync\"\n\n\t\"go.opentelemetry.io/otel/attribute\"\n)\n\n// Labeler is used to allow instrumented HTTP handlers to add custom attributes to\n// the metrics recorded by the net/http instrumentation.\ntype Labeler struct {\n\tmu         sync.Mutex\n\tattributes []attribute.KeyValue\n}\n\n// Add attributes to a Labeler.\nfunc (l *Labeler) Add(ls ...attribute.KeyValue) {\n\tl.mu.Lock()\n\tdefer l.mu.Unlock()\n\tl.attributes = append(l.attributes, ls...)\n}\n\n// Get returns a copy of the attributes added to the Labeler.\nfunc (l *Labeler) Get() []attribute.KeyValue {\n\tl.mu.Lock()\n\tdefer l.mu.Unlock()\n\tret := make([]attribute.KeyValue, len(l.attributes))\n\tcopy(ret, l.attributes)\n\treturn ret\n}\n\ntype labelerContextKeyType int\n\nconst lablelerContextKey labelerContextKeyType = 0\n\n// ContextWithLabeler returns a new context with the provided Labeler instance.\n// Attributes added to the specified labeler will be injected into metrics\n// emitted by the instrumentation. Only one labeller can be injected into the\n// context. Injecting it multiple times will override the previous calls.\nfunc ContextWithLabeler(parent context.Context, l *Labeler) context.Context {\n\treturn context.WithValue(parent, lablelerContextKey, l)\n}\n\n// LabelerFromContext retrieves a Labeler instance from the provided context if\n// one is available.  If no Labeler was found in the provided context a new, empty\n// Labeler is returned and the second return value is false.  In this case it is\n// safe to use the Labeler but any attributes added to it will not be used.\nfunc LabelerFromContext(ctx context.Context) (*Labeler, bool) {\n\tl, ok := ctx.Value(lablelerContextKey).(*Labeler)\n\tif !ok {\n\t\tl = &Labeler{}\n\t}\n\treturn l, ok\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/transport.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otelhttp // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/http/httptrace\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil\"\n\t\"go.opentelemetry.io/otel\"\n\t\"go.opentelemetry.io/otel/attribute\"\n\t\"go.opentelemetry.io/otel/codes\"\n\t\"go.opentelemetry.io/otel/metric\"\n\t\"go.opentelemetry.io/otel/propagation\"\n\tsemconv \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n\t\"go.opentelemetry.io/otel/trace\"\n)\n\n// Transport implements the http.RoundTripper interface and wraps\n// outbound HTTP(S) requests with a span and enriches it with metrics.\ntype Transport struct {\n\trt http.RoundTripper\n\n\ttracer            trace.Tracer\n\tmeter             metric.Meter\n\tpropagators       propagation.TextMapPropagator\n\tspanStartOptions  []trace.SpanStartOption\n\tfilters           []Filter\n\tspanNameFormatter func(string, *http.Request) string\n\tclientTrace       func(context.Context) *httptrace.ClientTrace\n\n\trequestBytesCounter  metric.Int64Counter\n\tresponseBytesCounter metric.Int64Counter\n\tlatencyMeasure       metric.Float64Histogram\n}\n\nvar _ http.RoundTripper = &Transport{}\n\n// NewTransport wraps the provided http.RoundTripper with one that\n// starts a span, injects the span context into the outbound request headers,\n// and enriches it with metrics.\n//\n// If the provided http.RoundTripper is nil, http.DefaultTransport will be used\n// as the base http.RoundTripper.\nfunc NewTransport(base http.RoundTripper, opts ...Option) *Transport {\n\tif base == nil {\n\t\tbase = http.DefaultTransport\n\t}\n\n\tt := Transport{\n\t\trt: base,\n\t}\n\n\tdefaultOpts := []Option{\n\t\tWithSpanOptions(trace.WithSpanKind(trace.SpanKindClient)),\n\t\tWithSpanNameFormatter(defaultTransportFormatter),\n\t}\n\n\tc := newConfig(append(defaultOpts, opts...)...)\n\tt.applyConfig(c)\n\tt.createMeasures()\n\n\treturn &t\n}\n\nfunc (t *Transport) applyConfig(c *config) {\n\tt.tracer = c.Tracer\n\tt.meter = c.Meter\n\tt.propagators = c.Propagators\n\tt.spanStartOptions = c.SpanStartOptions\n\tt.filters = c.Filters\n\tt.spanNameFormatter = c.SpanNameFormatter\n\tt.clientTrace = c.ClientTrace\n}\n\nfunc (t *Transport) createMeasures() {\n\tvar err error\n\tt.requestBytesCounter, err = t.meter.Int64Counter(\n\t\tclientRequestSize,\n\t\tmetric.WithUnit(\"By\"),\n\t\tmetric.WithDescription(\"Measures the size of HTTP request messages.\"),\n\t)\n\thandleErr(err)\n\n\tt.responseBytesCounter, err = t.meter.Int64Counter(\n\t\tclientResponseSize,\n\t\tmetric.WithUnit(\"By\"),\n\t\tmetric.WithDescription(\"Measures the size of HTTP response messages.\"),\n\t)\n\thandleErr(err)\n\n\tt.latencyMeasure, err = t.meter.Float64Histogram(\n\t\tclientDuration,\n\t\tmetric.WithUnit(\"ms\"),\n\t\tmetric.WithDescription(\"Measures the duration of outbound HTTP requests.\"),\n\t)\n\thandleErr(err)\n}\n\nfunc defaultTransportFormatter(_ string, r *http.Request) string {\n\treturn \"HTTP \" + r.Method\n}\n\n// RoundTrip creates a Span and propagates its context via the provided request's headers\n// before handing the request to the configured base RoundTripper. The created span will\n// end when the response body is closed or when a read from the body returns io.EOF.\nfunc (t *Transport) RoundTrip(r *http.Request) (*http.Response, error) {\n\trequestStartTime := time.Now()\n\tfor _, f := range t.filters {\n\t\tif !f(r) {\n\t\t\t// Simply pass through to the base RoundTripper if a filter rejects the request\n\t\t\treturn t.rt.RoundTrip(r)\n\t\t}\n\t}\n\n\ttracer := t.tracer\n\n\tif tracer == nil {\n\t\tif span := trace.SpanFromContext(r.Context()); span.SpanContext().IsValid() {\n\t\t\ttracer = newTracer(span.TracerProvider())\n\t\t} else {\n\t\t\ttracer = newTracer(otel.GetTracerProvider())\n\t\t}\n\t}\n\n\topts := append([]trace.SpanStartOption{}, t.spanStartOptions...) // start with the configured options\n\n\tctx, span := tracer.Start(r.Context(), t.spanNameFormatter(\"\", r), opts...)\n\n\tif t.clientTrace != nil {\n\t\tctx = httptrace.WithClientTrace(ctx, t.clientTrace(ctx))\n\t}\n\n\tlabeler, found := LabelerFromContext(ctx)\n\tif !found {\n\t\tctx = ContextWithLabeler(ctx, labeler)\n\t}\n\n\tr = r.Clone(ctx) // According to RoundTripper spec, we shouldn't modify the origin request.\n\n\t// use a body wrapper to determine the request size\n\tvar bw bodyWrapper\n\t// if request body is nil or NoBody, we don't want to mutate the body as it\n\t// will affect the identity of it in an unforeseeable way because we assert\n\t// ReadCloser fulfills a certain interface and it is indeed nil or NoBody.\n\tif r.Body != nil && r.Body != http.NoBody {\n\t\tbw.ReadCloser = r.Body\n\t\t// noop to prevent nil panic. not using this record fun yet.\n\t\tbw.record = func(int64) {}\n\t\tr.Body = &bw\n\t}\n\n\tspan.SetAttributes(semconvutil.HTTPClientRequest(r)...)\n\tt.propagators.Inject(ctx, propagation.HeaderCarrier(r.Header))\n\n\tres, err := t.rt.RoundTrip(r)\n\tif err != nil {\n\t\tspan.RecordError(err)\n\t\tspan.SetStatus(codes.Error, err.Error())\n\t\tspan.End()\n\t\treturn res, err\n\t}\n\n\t// metrics\n\tmetricAttrs := append(labeler.Get(), semconvutil.HTTPClientRequestMetrics(r)...)\n\tif res.StatusCode > 0 {\n\t\tmetricAttrs = append(metricAttrs, semconv.HTTPStatusCode(res.StatusCode))\n\t}\n\to := metric.WithAttributeSet(attribute.NewSet(metricAttrs...))\n\taddOpts := []metric.AddOption{o} // Allocate vararg slice once.\n\tt.requestBytesCounter.Add(ctx, bw.read.Load(), addOpts...)\n\t// For handling response bytes we leverage a callback when the client reads the http response\n\treadRecordFunc := func(n int64) {\n\t\tt.responseBytesCounter.Add(ctx, n, addOpts...)\n\t}\n\n\t// traces\n\tspan.SetAttributes(semconvutil.HTTPClientResponse(res)...)\n\tspan.SetStatus(semconvutil.HTTPClientStatus(res.StatusCode))\n\n\tres.Body = newWrappedBody(span, readRecordFunc, res.Body)\n\n\t// Use floating point division here for higher precision (instead of Millisecond method).\n\telapsedTime := float64(time.Since(requestStartTime)) / float64(time.Millisecond)\n\n\tt.latencyMeasure.Record(ctx, elapsedTime, o)\n\n\treturn res, err\n}\n\n// newWrappedBody returns a new and appropriately scoped *wrappedBody as an\n// io.ReadCloser. If the passed body implements io.Writer, the returned value\n// will implement io.ReadWriteCloser.\nfunc newWrappedBody(span trace.Span, record func(n int64), body io.ReadCloser) io.ReadCloser {\n\t// The successful protocol switch responses will have a body that\n\t// implement an io.ReadWriteCloser. Ensure this interface type continues\n\t// to be satisfied if that is the case.\n\tif _, ok := body.(io.ReadWriteCloser); ok {\n\t\treturn &wrappedBody{span: span, record: record, body: body}\n\t}\n\n\t// Remove the implementation of the io.ReadWriteCloser and only implement\n\t// the io.ReadCloser.\n\treturn struct{ io.ReadCloser }{&wrappedBody{span: span, record: record, body: body}}\n}\n\n// wrappedBody is the response body type returned by the transport\n// instrumentation to complete a span. Errors encountered when using the\n// response body are recorded in span tracking the response.\n//\n// The span tracking the response is ended when this body is closed.\n//\n// If the response body implements the io.Writer interface (i.e. for\n// successful protocol switches), the wrapped body also will.\ntype wrappedBody struct {\n\tspan     trace.Span\n\trecorded atomic.Bool\n\trecord   func(n int64)\n\tbody     io.ReadCloser\n\tread     atomic.Int64\n}\n\nvar _ io.ReadWriteCloser = &wrappedBody{}\n\nfunc (wb *wrappedBody) Write(p []byte) (int, error) {\n\t// This will not panic given the guard in newWrappedBody.\n\tn, err := wb.body.(io.Writer).Write(p)\n\tif err != nil {\n\t\twb.span.RecordError(err)\n\t\twb.span.SetStatus(codes.Error, err.Error())\n\t}\n\treturn n, err\n}\n\nfunc (wb *wrappedBody) Read(b []byte) (int, error) {\n\tn, err := wb.body.Read(b)\n\t// Record the number of bytes read\n\twb.read.Add(int64(n))\n\n\tswitch err {\n\tcase nil:\n\t\t// nothing to do here but fall through to the return\n\tcase io.EOF:\n\t\twb.recordBytesRead()\n\t\twb.span.End()\n\tdefault:\n\t\twb.span.RecordError(err)\n\t\twb.span.SetStatus(codes.Error, err.Error())\n\t}\n\treturn n, err\n}\n\n// recordBytesRead is a function that ensures the number of bytes read is recorded once and only once.\nfunc (wb *wrappedBody) recordBytesRead() {\n\t// note: it is more performant (and equally correct) to use atomic.Bool over sync.Once here. In the event that\n\t// two goroutines are racing to call this method, the number of bytes read will no longer increase. Using\n\t// CompareAndSwap allows later goroutines to return quickly and not block waiting for the race winner to finish\n\t// calling wb.record(wb.read.Load()).\n\tif wb.recorded.CompareAndSwap(false, true) {\n\t\t// Record the total number of bytes read\n\t\twb.record(wb.read.Load())\n\t}\n}\n\nfunc (wb *wrappedBody) Close() error {\n\twb.recordBytesRead()\n\twb.span.End()\n\tif wb.body != nil {\n\t\treturn wb.body.Close()\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otelhttp // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n\n// Version is the current release version of the otelhttp instrumentation.\nfunc Version() string {\n\treturn \"0.53.0\"\n\t// This string is updated by the pre_release.sh script during release\n}\n\n// SemVersion is the semantic version to be supplied to tracer/meter creation.\n//\n// Deprecated: Use [Version] instead.\nfunc SemVersion() string {\n\treturn Version()\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/wrap.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otelhttp // import \"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\"\n\nimport (\n\t\"context\"\n\t\"io\"\n\t\"net/http\"\n\t\"sync/atomic\"\n\n\t\"go.opentelemetry.io/otel/propagation\"\n)\n\nvar _ io.ReadCloser = &bodyWrapper{}\n\n// bodyWrapper wraps a http.Request.Body (an io.ReadCloser) to track the number\n// of bytes read and the last error.\ntype bodyWrapper struct {\n\tio.ReadCloser\n\trecord func(n int64) // must not be nil\n\n\tread atomic.Int64\n\terr  error\n}\n\nfunc (w *bodyWrapper) Read(b []byte) (int, error) {\n\tn, err := w.ReadCloser.Read(b)\n\tn1 := int64(n)\n\tw.read.Add(n1)\n\tw.err = err\n\tw.record(n1)\n\treturn n, err\n}\n\nfunc (w *bodyWrapper) Close() error {\n\treturn w.ReadCloser.Close()\n}\n\nvar _ http.ResponseWriter = &respWriterWrapper{}\n\n// respWriterWrapper wraps a http.ResponseWriter in order to track the number of\n// bytes written, the last error, and to catch the first written statusCode.\n// TODO: The wrapped http.ResponseWriter doesn't implement any of the optional\n// types (http.Hijacker, http.Pusher, http.CloseNotifier, http.Flusher, etc)\n// that may be useful when using it in real life situations.\ntype respWriterWrapper struct {\n\thttp.ResponseWriter\n\trecord func(n int64) // must not be nil\n\n\t// used to inject the header\n\tctx context.Context\n\n\tprops propagation.TextMapPropagator\n\n\twritten     int64\n\tstatusCode  int\n\terr         error\n\twroteHeader bool\n}\n\nfunc (w *respWriterWrapper) Header() http.Header {\n\treturn w.ResponseWriter.Header()\n}\n\nfunc (w *respWriterWrapper) Write(p []byte) (int, error) {\n\tif !w.wroteHeader {\n\t\tw.WriteHeader(http.StatusOK)\n\t}\n\tn, err := w.ResponseWriter.Write(p)\n\tn1 := int64(n)\n\tw.record(n1)\n\tw.written += n1\n\tw.err = err\n\treturn n, err\n}\n\n// WriteHeader persists initial statusCode for span attribution.\n// All calls to WriteHeader will be propagated to the underlying ResponseWriter\n// and will persist the statusCode from the first call.\n// Blocking consecutive calls to WriteHeader alters expected behavior and will\n// remove warning logs from net/http where developers will notice incorrect handler implementations.\nfunc (w *respWriterWrapper) WriteHeader(statusCode int) {\n\tif !w.wroteHeader {\n\t\tw.wroteHeader = true\n\t\tw.statusCode = statusCode\n\t}\n\tw.ResponseWriter.WriteHeader(statusCode)\n}\n\nfunc (w *respWriterWrapper) Flush() {\n\tif !w.wroteHeader {\n\t\tw.WriteHeader(http.StatusOK)\n\t}\n\n\tif f, ok := w.ResponseWriter.(http.Flusher); ok {\n\t\tf.Flush()\n\t}\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/.codespellignore",
    "content": "ot\nfo\nte\ncollison\nconsequentially\nans\nnam\nvalu\nthirdparty\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/.codespellrc",
    "content": "# https://github.com/codespell-project/codespell\n[codespell]\nbuiltin = clear,rare,informal\ncheck-filenames =\ncheck-hidden =\nignore-words = .codespellignore\ninteractive = 1\nskip = .git,go.mod,go.sum,go.work,go.work.sum,semconv,venv,.tools\nuri-ignore-words-list = *\nwrite =\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/.gitattributes",
    "content": "* text=auto eol=lf\n*.{cmd,[cC][mM][dD]} text eol=crlf\n*.{bat,[bB][aA][tT]} text eol=crlf\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/.gitignore",
    "content": ".DS_Store\nThumbs.db\n\n.tools/\nvenv/\n.idea/\n.vscode/\n*.iml\n*.so\ncoverage.*\ngo.work\ngo.work.sum\n\ngen/\n\n/example/dice/dice\n/example/namedtracer/namedtracer\n/example/otel-collector/otel-collector\n/example/opencensus/opencensus\n/example/passthrough/passthrough\n/example/prometheus/prometheus\n/example/zipkin/zipkin\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/.golangci.yml",
    "content": "# See https://github.com/golangci/golangci-lint#config-file\nrun:\n  issues-exit-code: 1 #Default\n  tests: true #Default\n\nlinters:\n  # Disable everything by default so upgrades to not include new \"default\n  # enabled\" linters.\n  disable-all: true\n  # Specifically enable linters we want to use.\n  enable:\n    - depguard\n    - errcheck\n    - errorlint\n    - godot\n    - gofumpt\n    - goimports\n    - gosec\n    - gosimple\n    - govet\n    - ineffassign\n    - misspell\n    - revive\n    - staticcheck\n    - tenv\n    - typecheck\n    - unconvert\n    - unused\n    - unparam\n\nissues:\n  # Maximum issues count per one linter.\n  # Set to 0 to disable.\n  # Default: 50\n  # Setting to unlimited so the linter only is run once to debug all issues.\n  max-issues-per-linter: 0\n  # Maximum count of issues with the same text.\n  # Set to 0 to disable.\n  # Default: 3\n  # Setting to unlimited so the linter only is run once to debug all issues.\n  max-same-issues: 0\n  # Excluding configuration per-path, per-linter, per-text and per-source.\n  exclude-rules:\n    # TODO: Having appropriate comments for exported objects helps development,\n    # even for objects in internal packages. Appropriate comments for all\n    # exported objects should be added and this exclusion removed.\n    - path: '.*internal/.*'\n      text: \"exported (method|function|type|const) (.+) should have comment or be unexported\"\n      linters:\n        - revive\n    # Yes, they are, but it's okay in a test.\n    - path: _test\\.go\n      text: \"exported func.*returns unexported type.*which can be annoying to use\"\n      linters:\n        - revive\n    # Example test functions should be treated like main.\n    - path: example.*_test\\.go\n      text: \"calls to (.+) only in main[(][)] or init[(][)] functions\"\n      linters:\n        - revive\n    # It's okay to not run gosec in a test.\n    - path: _test\\.go\n      linters:\n        - gosec\n    # Igonoring gosec G404: Use of weak random number generator (math/rand instead of crypto/rand)\n    # as we commonly use it in tests and examples.\n    - text: \"G404:\"\n      linters:\n        - gosec\n    # Igonoring gosec G402: TLS MinVersion too low\n    # as the https://pkg.go.dev/crypto/tls#Config handles MinVersion default well.\n    - text: \"G402: TLS MinVersion too low.\"\n      linters:\n        - gosec\n  include:\n    # revive exported should have comment or be unexported.\n    - EXC0012\n    # revive package comment should be of the form ...\n    - EXC0013\n\nlinters-settings:\n  depguard:\n    rules:\n      non-tests:\n        files:\n          - \"!$test\"\n          - \"!**/*test/*.go\"\n          - \"!**/internal/matchers/*.go\"\n        deny:\n          - pkg: \"testing\"\n          - pkg: \"github.com/stretchr/testify\"\n          - pkg: \"crypto/md5\"\n          - pkg: \"crypto/sha1\"\n          - pkg: \"crypto/**/pkix\"\n      otlp-internal:\n        files:\n          - \"!**/exporters/otlp/internal/**/*.go\"\n        deny:\n          - pkg: \"go.opentelemetry.io/otel/exporters/otlp/internal\"\n            desc: Do not use cross-module internal packages.\n      otlptrace-internal:\n        files:\n          - \"!**/exporters/otlp/otlptrace/*.go\"\n          - \"!**/exporters/otlp/otlptrace/internal/**.go\"\n        deny:\n          - pkg: \"go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal\"\n            desc: Do not use cross-module internal packages.\n      otlpmetric-internal:\n        files:\n          - \"!**/exporters/otlp/otlpmetric/internal/*.go\"\n          - \"!**/exporters/otlp/otlpmetric/internal/**/*.go\"\n        deny:\n          - pkg: \"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal\"\n            desc: Do not use cross-module internal packages.\n      otel-internal:\n        files:\n          - \"**/sdk/*.go\"\n          - \"**/sdk/**/*.go\"\n          - \"**/exporters/*.go\"\n          - \"**/exporters/**/*.go\"\n          - \"**/schema/*.go\"\n          - \"**/schema/**/*.go\"\n          - \"**/metric/*.go\"\n          - \"**/metric/**/*.go\"\n          - \"**/bridge/*.go\"\n          - \"**/bridge/**/*.go\"\n          - \"**/example/*.go\"\n          - \"**/example/**/*.go\"\n          - \"**/trace/*.go\"\n          - \"**/trace/**/*.go\"\n          - \"**/log/*.go\"\n          - \"**/log/**/*.go\"\n        deny:\n          - pkg: \"go.opentelemetry.io/otel/internal$\"\n            desc: Do not use cross-module internal packages.\n          - pkg: \"go.opentelemetry.io/otel/internal/attribute\"\n            desc: Do not use cross-module internal packages.\n          - pkg: \"go.opentelemetry.io/otel/internal/internaltest\"\n            desc: Do not use cross-module internal packages.\n          - pkg: \"go.opentelemetry.io/otel/internal/matchers\"\n            desc: Do not use cross-module internal packages.\n  godot:\n    exclude:\n      # Exclude links.\n      - '^ *\\[[^]]+\\]:'\n      # Exclude sentence fragments for lists.\n      - '^[ ]*[-•]'\n      # Exclude sentences prefixing a list.\n      - ':$'\n  goimports:\n    local-prefixes: go.opentelemetry.io\n  misspell:\n    locale: US\n    ignore-words:\n      - cancelled\n  revive:\n    # Sets the default failure confidence.\n    # This means that linting errors with less than 0.8 confidence will be ignored.\n    # Default: 0.8\n    confidence: 0.01\n    rules:\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#blank-imports\n      - name: blank-imports\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bool-literal-in-expr\n      - name: bool-literal-in-expr\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#constant-logical-expr\n      - name: constant-logical-expr\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-as-argument\n      # TODO (#3372) re-enable linter when it is compatible. https://github.com/golangci/golangci-lint/issues/3280\n      - name: context-as-argument\n        disabled: true\n        arguments:\n          allowTypesBefore: \"*testing.T\"\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-keys-type\n      - name: context-keys-type\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#deep-exit\n      - name: deep-exit\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#defer\n      - name: defer\n        disabled: false\n        arguments:\n          - [\"call-chain\", \"loop\"]\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#dot-imports\n      - name: dot-imports\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#duplicated-imports\n      - name: duplicated-imports\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#early-return\n      - name: early-return\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-block\n      - name: empty-block\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-lines\n      - name: empty-lines\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-naming\n      - name: error-naming\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-return\n      - name: error-return\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-strings\n      - name: error-strings\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#errorf\n      - name: errorf\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#exported\n      - name: exported\n        disabled: false\n        arguments:\n          - \"sayRepetitiveInsteadOfStutters\"\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#flag-parameter\n      - name: flag-parameter\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#identical-branches\n      - name: identical-branches\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#if-return\n      - name: if-return\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#increment-decrement\n      - name: increment-decrement\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#indent-error-flow\n      - name: indent-error-flow\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#import-shadowing\n      - name: import-shadowing\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#package-comments\n      - name: package-comments\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range\n      - name: range\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-in-closure\n      - name: range-val-in-closure\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-address\n      - name: range-val-address\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#redefines-builtin-id\n      - name: redefines-builtin-id\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-format\n      - name: string-format\n        disabled: false\n        arguments:\n          - - panic\n            - '/^[^\\n]*$/'\n            - must not contain line breaks\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#struct-tag\n      - name: struct-tag\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#superfluous-else\n      - name: superfluous-else\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-equal\n      - name: time-equal\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-naming\n      - name: var-naming\n        disabled: false\n        arguments:\n          - [\"ID\"] # AllowList\n          - [\"Otel\", \"Aws\", \"Gcp\"] # DenyList\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-declaration\n      - name: var-declaration\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unconditional-recursion\n      - name: unconditional-recursion\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-return\n      - name: unexported-return\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unhandled-error\n      - name: unhandled-error\n        disabled: false\n        arguments:\n          - \"fmt.Fprint\"\n          - \"fmt.Fprintf\"\n          - \"fmt.Fprintln\"\n          - \"fmt.Print\"\n          - \"fmt.Printf\"\n          - \"fmt.Println\"\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unnecessary-stmt\n      - name: unnecessary-stmt\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#useless-break\n      - name: useless-break\n        disabled: false\n      # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#waitgroup-by-value\n      - name: waitgroup-by-value\n        disabled: false\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/.lycheeignore",
    "content": "http://localhost\nhttp://jaeger-collector\nhttps://github.com/open-telemetry/opentelemetry-go/milestone/\nhttps://github.com/open-telemetry/opentelemetry-go/projects\nfile:///home/runner/work/opentelemetry-go/opentelemetry-go/libraries\nfile:///home/runner/work/opentelemetry-go/opentelemetry-go/manual\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/.markdownlint.yaml",
    "content": "# Default state for all rules\ndefault: true\n\n# ul-style\nMD004: false\n\n# hard-tabs\nMD010: false\n\n# line-length\nMD013: false\n\n# no-duplicate-header\nMD024:\n  siblings_only: true\n\n#single-title\nMD025: false\n\n# ol-prefix\nMD029:\n  style: ordered\n\n# no-inline-html\nMD033: false\n\n# fenced-code-language\nMD040: false\n\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/CHANGELOG.md",
    "content": "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).\n\nThis project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [1.28.0/0.50.0/0.4.0] 2024-07-02\n\n### Added\n\n- The `IsEmpty` method is added to the `Instrument` type in `go.opentelemetry.io/otel/sdk/metric`.\n  This method is used to check if an `Instrument` instance is a zero-value. (#5431)\n- Store and provide the emitted `context.Context` in `ScopeRecords` of `go.opentelemetry.io/otel/sdk/log/logtest`. (#5468)\n- The `go.opentelemetry.io/otel/semconv/v1.26.0` package.\n  The package contains semantic conventions from the `v1.26.0` version of the OpenTelemetry Semantic Conventions. (#5476)\n- The `AssertRecordEqual` method to `go.opentelemetry.io/otel/log/logtest` to allow comparison of two log records in tests. (#5499)\n- The `WithHeaders` option to `go.opentelemetry.io/otel/exporters/zipkin` to allow configuring custom http headers while exporting spans. (#5530)\n\n### Changed\n\n- `Tracer.Start` in `go.opentelemetry.io/otel/trace/noop` no longer allocates a span for empty span context. (#5457)\n- Upgrade `go.opentelemetry.io/otel/semconv/v1.25.0` to `go.opentelemetry.io/otel/semconv/v1.26.0` in `go.opentelemetry.io/otel/example/otel-collector`. (#5490)\n- Upgrade `go.opentelemetry.io/otel/semconv/v1.25.0` to `go.opentelemetry.io/otel/semconv/v1.26.0` in `go.opentelemetry.io/otel/example/zipkin`. (#5490)\n- Upgrade `go.opentelemetry.io/otel/semconv/v1.25.0` to `go.opentelemetry.io/otel/semconv/v1.26.0` in `go.opentelemetry.io/otel/exporters/zipkin`. (#5490)\n  - The exporter no longer exports the deprecated \"otel.library.name\" or \"otel.library.version\" attributes.\n- Upgrade `go.opentelemetry.io/otel/semconv/v1.25.0` to `go.opentelemetry.io/otel/semconv/v1.26.0` in `go.opentelemetry.io/otel/sdk/resource`. (#5490)\n- Upgrade `go.opentelemetry.io/otel/semconv/v1.25.0` to `go.opentelemetry.io/otel/semconv/v1.26.0` in `go.opentelemetry.io/otel/sdk/trace`. (#5490)\n- `SimpleProcessor.OnEmit` in `go.opentelemetry.io/otel/sdk/log` no longer allocates a slice which makes it possible to have a zero-allocation log processing using `SimpleProcessor`. (#5493)\n- Use non-generic functions in the `Start` method of `\"go.opentelemetry.io/otel/sdk/trace\".Trace` to reduce memory allocation. (#5497)\n- `service.instance.id` is populated for a `Resource` created with `\"go.opentelemetry.io/otel/sdk/resource\".Default` with a default value when `OTEL_GO_X_RESOURCE` is set. (#5520)\n- Improve performance of metric instruments in `go.opentelemetry.io/otel/sdk/metric` by removing unnecessary calls to `time.Now`. (#5545)\n\n### Fixed\n\n- Log a warning to the OpenTelemetry internal logger when a `Record` in `go.opentelemetry.io/otel/sdk/log` drops an attribute due to a limit being reached. (#5376)\n- Identify the `Tracer` returned from the global `TracerProvider` in `go.opentelemetry.io/otel/global` with its schema URL. (#5426)\n- Identify the `Meter` returned from the global `MeterProvider` in `go.opentelemetry.io/otel/global` with its schema URL. (#5426)\n- Log a warning to the OpenTelemetry internal logger when a `Span` in `go.opentelemetry.io/otel/sdk/trace` drops an attribute, event, or link due to a limit being reached. (#5434)\n- Document instrument name requirements in `go.opentelemetry.io/otel/metric`. (#5435)\n- Prevent random number generation data-race for experimental rand exemplars in `go.opentelemetry.io/otel/sdk/metric`. (#5456)\n- Fix counting number of dropped attributes of `Record` in `go.opentelemetry.io/otel/sdk/log`. (#5464)\n- Fix panic in baggage creation when a member contains `0x80` char in key or value. (#5494)\n- Correct comments for the priority of the `WithEndpoint` and `WithEndpointURL` options and their corresponding environment variables in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. (#5508)\n- Retry trace and span ID generation if it generated an invalid one in `go.opentelemetry.io/otel/sdk/trace`. (#5514)\n- Fix stale timestamps reported by the last-value aggregation. (#5517)\n- Indicate the `Exporter` in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp` must be created by the `New` method. (#5521)\n- Improved performance in all `{Bool,Int64,Float64,String}SliceValue` functions of `go.opentelemetry.io/attributes` by reducing the number of allocations. (#5549)\n\n## [1.27.0/0.49.0/0.3.0] 2024-05-21\n\n### Added\n\n- Add example for `go.opentelemetry.io/otel/exporters/stdout/stdoutlog`. (#5242)\n- Add `RecordFactory` in `go.opentelemetry.io/otel/sdk/log/logtest` to facilitate testing exporter and processor implementations. (#5258)\n- Add `RecordFactory` in `go.opentelemetry.io/otel/log/logtest` to facilitate testing bridge implementations. (#5263)\n- The count of dropped records from the `BatchProcessor` in `go.opentelemetry.io/otel/sdk/log` is logged. (#5276)\n- Add metrics in the `otel-collector` example. (#5283)\n- Add the synchronous gauge instrument to `go.opentelemetry.io/otel/metric`. (#5304)\n  - An `int64` or `float64` synchronous gauge instrument can now be created from a `Meter`.\n  - All implementations of the API (`go.opentelemetry.io/otel/metric/noop`, `go.opentelemetry.io/otel/sdk/metric`) are updated to support this instrument.\n- Add logs to `go.opentelemetry.io/otel/example/dice`. (#5349)\n\n### Changed\n\n- The `Shutdown` method of `Exporter` in `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` ignores the context cancellation and always returns `nil`. (#5189)\n- The `ForceFlush` and `Shutdown` methods of the exporter returned by `New` in `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` ignore the context cancellation and always return `nil`. (#5189)\n- Apply the value length limits to `Record` attributes in `go.opentelemetry.io/otel/sdk/log`. (#5230)\n- De-duplicate map attributes added to a `Record` in `go.opentelemetry.io/otel/sdk/log`. (#5230)\n- `go.opentelemetry.io/otel/exporters/stdout/stdoutlog` won't print timestamps when `WithoutTimestamps` option is set. (#5241)\n- The `go.opentelemetry.io/otel/exporters/stdout/stdoutlog` exporter won't print `AttributeValueLengthLimit` and `AttributeCountLimit` fields now, instead it prints the `DroppedAttributes` field. (#5272)\n- Improved performance in the `Stringer` implementation of `go.opentelemetry.io/otel/baggage.Member` by reducing the number of allocations. (#5286)\n- Set the start time for last-value aggregates in `go.opentelemetry.io/otel/sdk/metric`. (#5305)\n- The `Span` in `go.opentelemetry.io/otel/sdk/trace` will record links without span context if either non-empty `TraceState` or attributes are provided. (#5315)\n- Upgrade all dependencies of `go.opentelemetry.io/otel/semconv/v1.24.0` to `go.opentelemetry.io/otel/semconv/v1.25.0`. (#5374)\n\n### Fixed\n\n- Comparison of unordered maps for `go.opentelemetry.io/otel/log.KeyValue` and `go.opentelemetry.io/otel/log.Value`. (#5306)\n- Fix the empty output of `go.opentelemetry.io/otel/log.Value` in `go.opentelemetry.io/otel/exporters/stdout/stdoutlog`. (#5311)\n- Split the behavior of `Recorder` in `go.opentelemetry.io/otel/log/logtest` so it behaves as a `LoggerProvider` only. (#5365)\n- Fix wrong package name of the error message when parsing endpoint URL in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#5371)\n- Identify the `Logger` returned from the global `LoggerProvider` in `go.opentelemetry.io/otel/log/global` with its schema URL. (#5375)\n\n## [1.26.0/0.48.0/0.2.0-alpha] 2024-04-24\n\n### Added\n\n- Add `Recorder` in `go.opentelemetry.io/otel/log/logtest` to facilitate testing the log bridge implementations. (#5134)\n- Add span flags to OTLP spans and links exported by `go.opentelemetry.io/otel/exporters/otlp/otlptrace`. (#5194)\n- Make the initial alpha release of `go.opentelemetry.io/otel/sdk/log`.\n  This new module contains the Go implementation of the OpenTelemetry Logs SDK.\n  This module is unstable and breaking changes may be introduced.\n  See our [versioning policy](VERSIONING.md) for more information about these stability guarantees. (#5240)\n- Make the initial alpha release of `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`.\n  This new module contains an OTLP exporter that transmits log telemetry using HTTP.\n  This module is unstable and breaking changes may be introduced.\n  See our [versioning policy](VERSIONING.md) for more information about these stability guarantees. (#5240)\n- Make the initial alpha release of `go.opentelemetry.io/otel/exporters/stdout/stdoutlog`.\n  This new module contains an exporter prints log records to STDOUT.\n  This module is unstable and breaking changes may be introduced.\n  See our [versioning policy](VERSIONING.md) for more information about these stability guarantees. (#5240)\n- The `go.opentelemetry.io/otel/semconv/v1.25.0` package.\n  The package contains semantic conventions from the `v1.25.0` version of the OpenTelemetry Semantic Conventions. (#5254)\n\n### Changed\n\n- Update `go.opentelemetry.io/proto/otlp` from v1.1.0 to v1.2.0. (#5177)\n- Improve performance of baggage member character validation in `go.opentelemetry.io/otel/baggage`. (#5214)\n- The `otel-collector` example now uses docker compose to bring up services instead of kubernetes. (#5244)\n\n### Fixed\n\n- Slice attribute values in `go.opentelemetry.io/otel/attribute` are now emitted as their JSON representation. (#5159)\n\n## [1.25.0/0.47.0/0.0.8/0.1.0-alpha] 2024-04-05\n\n### Added\n\n- Add `WithProxy` option in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#4906)\n- Add `WithProxy` option in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlptracehttp`. (#4906)\n- Add `AddLink` method to the `Span` interface in `go.opentelemetry.io/otel/trace`. (#5032)\n- The `Enabled` method is added to the `Logger` interface in `go.opentelemetry.io/otel/log`.\n  This method is used to notify users if a log record will be emitted or not. (#5071)\n- Add `SeverityUndefined` `const` to `go.opentelemetry.io/otel/log`.\n  This value represents an unset severity level. (#5072)\n- Add `Empty` function in `go.opentelemetry.io/otel/log` to return a `KeyValue` for an empty value. (#5076)\n- Add `go.opentelemetry.io/otel/log/global` to manage the global `LoggerProvider`.\n  This package is provided with the anticipation that all functionality will be migrate to `go.opentelemetry.io/otel` when `go.opentelemetry.io/otel/log` stabilizes.\n  At which point, users will be required to migrage their code, and this package will be deprecated then removed. (#5085)\n- Add support for `Summary` metrics in the `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` and `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` exporters. (#5100)\n- Add `otel.scope.name` and `otel.scope.version` tags to spans exported by `go.opentelemetry.io/otel/exporters/zipkin`. (#5108)\n- Add support for `AddLink` to `go.opentelemetry.io/otel/bridge/opencensus`. (#5116)\n- Add `String` method to `Value` and `KeyValue` in `go.opentelemetry.io/otel/log`. (#5117)\n- Add Exemplar support to `go.opentelemetry.io/otel/exporters/prometheus`. (#5111)\n- Add metric semantic conventions to `go.opentelemetry.io/otel/semconv/v1.24.0`. Future `semconv` packages will include metric semantic conventions as well. (#4528)\n\n### Changed\n\n- `SpanFromContext` and `SpanContextFromContext` in `go.opentelemetry.io/otel/trace` no longer make a heap allocation when the passed context has no span. (#5049)\n- `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` and `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` now create a gRPC client in idle mode and with \"dns\" as the default resolver using [`grpc.NewClient`](https://pkg.go.dev/google.golang.org/grpc#NewClient). (#5151)\n  Because of that `WithDialOption` ignores [`grpc.WithBlock`](https://pkg.go.dev/google.golang.org/grpc#WithBlock), [`grpc.WithTimeout`](https://pkg.go.dev/google.golang.org/grpc#WithTimeout), and [`grpc.WithReturnConnectionError`](https://pkg.go.dev/google.golang.org/grpc#WithReturnConnectionError).\n  Notice that [`grpc.DialContext`](https://pkg.go.dev/google.golang.org/grpc#DialContext) which was used before is now deprecated.\n\n### Fixed\n\n- Clarify the documentation about equivalence guarantees for the `Set` and `Distinct` types in `go.opentelemetry.io/otel/attribute`. (#5027)\n- Prevent default `ErrorHandler` self-delegation. (#5137)\n- Update all dependencies to address [GO-2024-2687]. (#5139)\n\n### Removed\n\n- Drop support for [Go 1.20]. (#4967)\n\n### Deprecated\n\n- Deprecate `go.opentelemetry.io/otel/attribute.Sortable` type. (#4734)\n- Deprecate `go.opentelemetry.io/otel/attribute.NewSetWithSortable` function. (#4734)\n- Deprecate `go.opentelemetry.io/otel/attribute.NewSetWithSortableFiltered` function. (#4734)\n\n## [1.24.0/0.46.0/0.0.1-alpha] 2024-02-23\n\nThis release is the last to support [Go 1.20].\nThe next release will require at least [Go 1.21].\n\n### Added\n\n- Support [Go 1.22]. (#4890)\n- Add exemplar support to `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. (#4900)\n- Add exemplar support to `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#4900)\n- The `go.opentelemetry.io/otel/log` module is added.\n  This module includes OpenTelemetry Go's implementation of the Logs Bridge API.\n  This module is in an alpha state, it is subject to breaking changes.\n  See our [versioning policy](./VERSIONING.md) for more info. (#4961)\n- ARM64 platform to the compatibility testing suite. (#4994)\n\n### Fixed\n\n- Fix registration of multiple callbacks when using the global meter provider from `go.opentelemetry.io/otel`. (#4945)\n- Fix negative buckets in output of exponential histograms. (#4956)\n\n## [1.23.1] 2024-02-07\n\n### Fixed\n\n- Register all callbacks passed during observable instrument creation instead of just the last one multiple times in `go.opentelemetry.io/otel/sdk/metric`. (#4888)\n\n## [1.23.0] 2024-02-06\n\nThis release contains the first stable, `v1`, release of the following modules:\n\n- `go.opentelemetry.io/otel/bridge/opencensus`\n- `go.opentelemetry.io/otel/bridge/opencensus/test`\n- `go.opentelemetry.io/otel/example/opencensus`\n- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`\n- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`\n- `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric`\n\nSee our [versioning policy](VERSIONING.md) for more information about these stability guarantees.\n\n### Added\n\n- Add `WithEndpointURL` option to the `exporters/otlp/otlpmetric/otlpmetricgrpc`, `exporters/otlp/otlpmetric/otlpmetrichttp`, `exporters/otlp/otlptrace/otlptracegrpc` and `exporters/otlp/otlptrace/otlptracehttp` packages. (#4808)\n- Experimental exemplar exporting is added to the metric SDK.\n  See [metric documentation](./sdk/metric/internal/x/README.md#exemplars) for more information about this feature and how to enable it. (#4871)\n- `ErrSchemaURLConflict` is added to `go.opentelemetry.io/otel/sdk/resource`.\n  This error is returned when a merge of two `Resource`s with different (non-empty) schema URL is attempted. (#4876)\n\n### Changed\n\n- The `Merge` and `New` functions in `go.opentelemetry.io/otel/sdk/resource` now returns a partial result if there is a schema URL merge conflict.\n  Instead of returning `nil` when two `Resource`s with different (non-empty) schema URLs are merged the merged `Resource`, along with the new `ErrSchemaURLConflict` error, is returned.\n  It is up to the user to decide if they want to use the returned `Resource` or not.\n  It may have desired attributes overwritten or include stale semantic conventions. (#4876)\n\n### Fixed\n\n- Fix `ContainerID` resource detection on systemd when cgroup path has a colon. (#4449)\n- Fix `go.opentelemetry.io/otel/sdk/metric` to cache instruments to avoid leaking memory when the same instrument is created multiple times. (#4820)\n- Fix missing `Mix` and `Max` values for `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` by introducing `MarshalText` and `MarshalJSON` for the `Extrema` type in `go.opentelemetry.io/sdk/metric/metricdata`. (#4827)\n\n## [1.23.0-rc.1] 2024-01-18\n\nThis is a release candidate for the v1.23.0 release.\nThat release is expected to include the `v1` release of the following modules:\n\n- `go.opentelemetry.io/otel/bridge/opencensus`\n- `go.opentelemetry.io/otel/bridge/opencensus/test`\n- `go.opentelemetry.io/otel/example/opencensus`\n- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`\n- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`\n- `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric`\n\nSee our [versioning policy](VERSIONING.md) for more information about these stability guarantees.\n\n## [1.22.0/0.45.0] 2024-01-17\n\n### Added\n\n- The `go.opentelemetry.io/otel/semconv/v1.22.0` package.\n  The package contains semantic conventions from the `v1.22.0` version of the OpenTelemetry Semantic Conventions. (#4735)\n- The `go.opentelemetry.io/otel/semconv/v1.23.0` package.\n  The package contains semantic conventions from the `v1.23.0` version of the OpenTelemetry Semantic Conventions. (#4746)\n- The `go.opentelemetry.io/otel/semconv/v1.23.1` package.\n  The package contains semantic conventions from the `v1.23.1` version of the OpenTelemetry Semantic Conventions. (#4749)\n- The `go.opentelemetry.io/otel/semconv/v1.24.0` package.\n  The package contains semantic conventions from the `v1.24.0` version of the OpenTelemetry Semantic Conventions. (#4770)\n- Add `WithResourceAsConstantLabels` option to apply resource attributes for every metric emitted by the Prometheus exporter. (#4733)\n- Experimental cardinality limiting is added to the metric SDK.\n  See [metric documentation](./sdk/metric/internal/x/README.md#cardinality-limit) for more information about this feature and how to enable it. (#4457)\n- Add `NewMemberRaw` and `NewKeyValuePropertyRaw` in `go.opentelemetry.io/otel/baggage`. (#4804)\n\n### Changed\n\n- Upgrade all use of `go.opentelemetry.io/otel/semconv` to use `v1.24.0`. (#4754)\n- Update transformations in `go.opentelemetry.io/otel/exporters/zipkin` to follow `v1.24.0` version of the OpenTelemetry specification. (#4754)\n- Record synchronous measurements when the passed context is canceled instead of dropping in `go.opentelemetry.io/otel/sdk/metric`.\n  If you do not want to make a measurement when the context is cancelled, you need to handle it yourself (e.g  `if ctx.Err() != nil`). (#4671)\n- Improve `go.opentelemetry.io/otel/trace.TraceState`'s performance. (#4722)\n- Improve `go.opentelemetry.io/otel/propagation.TraceContext`'s performance. (#4721)\n- Improve `go.opentelemetry.io/otel/baggage` performance. (#4743)\n- Improve performance of the `(*Set).Filter` method in `go.opentelemetry.io/otel/attribute` when the passed filter does not filter out any attributes from the set. (#4774)\n- `Member.String` in `go.opentelemetry.io/otel/baggage` percent-encodes only when necessary. (#4775)\n- Improve `go.opentelemetry.io/otel/trace.Span`'s performance when adding multiple attributes. (#4818)\n- `Property.Value` in `go.opentelemetry.io/otel/baggage` now returns a raw string instead of a percent-encoded value. (#4804)\n\n### Fixed\n\n- Fix `Parse` in `go.opentelemetry.io/otel/baggage` to validate member value before percent-decoding. (#4755)\n- Fix whitespace encoding of `Member.String` in `go.opentelemetry.io/otel/baggage`. (#4756)\n- Fix observable not registered error when the asynchronous instrument has a drop aggregation in `go.opentelemetry.io/otel/sdk/metric`. (#4772)\n- Fix baggage item key so that it is not canonicalized in `go.opentelemetry.io/otel/bridge/opentracing`. (#4776)\n- Fix `go.opentelemetry.io/otel/bridge/opentracing` to properly handle baggage values that requires escaping during propagation. (#4804)\n- Fix a bug where using multiple readers resulted in incorrect asynchronous counter values in `go.opentelemetry.io/otel/sdk/metric`. (#4742)\n\n## [1.21.0/0.44.0] 2023-11-16\n\n### Removed\n\n- Remove the deprecated `go.opentelemetry.io/otel/bridge/opencensus.NewTracer`. (#4706)\n- Remove the deprecated `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` module. (#4707)\n- Remove the deprecated `go.opentelemetry.io/otel/example/view` module. (#4708)\n- Remove the deprecated `go.opentelemetry.io/otel/example/fib` module. (#4723)\n\n### Fixed\n\n- Do not parse non-protobuf responses in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#4719)\n- Do not parse non-protobuf responses in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#4719)\n\n## [1.20.0/0.43.0] 2023-11-10\n\nThis release brings a breaking change for custom trace API implementations. Some interfaces (`TracerProvider`, `Tracer`, `Span`) now embed the `go.opentelemetry.io/otel/trace/embedded` types. Implementers need to update their implementations based on what they want the default behavior to be. See the \"API Implementations\" section of the [trace API] package documentation for more information about how to accomplish this.\n\n### Added\n\n- Add `go.opentelemetry.io/otel/bridge/opencensus.InstallTraceBridge`, which installs the OpenCensus trace bridge, and replaces `opencensus.NewTracer`. (#4567)\n- Add scope version to trace and metric bridges in `go.opentelemetry.io/otel/bridge/opencensus`. (#4584)\n- Add the `go.opentelemetry.io/otel/trace/embedded` package to be embedded in the exported trace API interfaces. (#4620)\n- Add the `go.opentelemetry.io/otel/trace/noop` package as a default no-op implementation of the trace API. (#4620)\n- Add context propagation in `go.opentelemetry.io/otel/example/dice`. (#4644)\n- Add view configuration to `go.opentelemetry.io/otel/example/prometheus`. (#4649)\n- Add `go.opentelemetry.io/otel/metric.WithExplicitBucketBoundaries`, which allows defining default explicit bucket boundaries when creating histogram instruments. (#4603)\n- Add `Version` function in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. (#4660)\n- Add `Version` function in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#4660)\n- Add Summary, SummaryDataPoint, and QuantileValue to `go.opentelemetry.io/sdk/metric/metricdata`. (#4622)\n- `go.opentelemetry.io/otel/bridge/opencensus.NewMetricProducer` now supports exemplars from OpenCensus. (#4585)\n- Add support for `WithExplicitBucketBoundaries` in `go.opentelemetry.io/otel/sdk/metric`. (#4605)\n- Add support for Summary metrics in `go.opentelemetry.io/otel/bridge/opencensus`. (#4668)\n\n### Deprecated\n\n- Deprecate `go.opentelemetry.io/otel/bridge/opencensus.NewTracer` in favor of `opencensus.InstallTraceBridge`. (#4567)\n- Deprecate `go.opentelemetry.io/otel/example/fib` package is in favor of `go.opentelemetry.io/otel/example/dice`. (#4618)\n- Deprecate `go.opentelemetry.io/otel/trace.NewNoopTracerProvider`.\n  Use the added `NewTracerProvider` function in `go.opentelemetry.io/otel/trace/noop` instead. (#4620)\n- Deprecate `go.opentelemetry.io/otel/example/view` package in favor of `go.opentelemetry.io/otel/example/prometheus`. (#4649)\n- Deprecate `go.opentelemetry.io/otel/exporters/otlp/otlpmetric`. (#4693)\n\n### Changed\n\n- `go.opentelemetry.io/otel/bridge/opencensus.NewMetricProducer` returns a `*MetricProducer` struct instead of the metric.Producer interface. (#4583)\n- The `TracerProvider` in `go.opentelemetry.io/otel/trace` now embeds the `go.opentelemetry.io/otel/trace/embedded.TracerProvider` type.\n  This extends the `TracerProvider` interface and is is a breaking change for any existing implementation.\n  Implementers need to update their implementations based on what they want the default behavior of the interface to be.\n  See the \"API Implementations\" section of the `go.opentelemetry.io/otel/trace` package documentation for more information about how to accomplish this. (#4620)\n- The `Tracer` in `go.opentelemetry.io/otel/trace` now embeds the `go.opentelemetry.io/otel/trace/embedded.Tracer` type.\n  This extends the `Tracer` interface and is is a breaking change for any existing implementation.\n  Implementers need to update their implementations based on what they want the default behavior of the interface to be.\n  See the \"API Implementations\" section of the `go.opentelemetry.io/otel/trace` package documentation for more information about how to accomplish this. (#4620)\n- The `Span` in `go.opentelemetry.io/otel/trace` now embeds the `go.opentelemetry.io/otel/trace/embedded.Span` type.\n  This extends the `Span` interface and is is a breaking change for any existing implementation.\n  Implementers need to update their implementations based on what they want the default behavior of the interface to be.\n  See the \"API Implementations\" section of the `go.opentelemetry.io/otel/trace` package documentation for more information about how to accomplish this. (#4620)\n- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` does no longer depend on `go.opentelemetry.io/otel/exporters/otlp/otlpmetric`. (#4660)\n- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` does no longer depend on `go.opentelemetry.io/otel/exporters/otlp/otlpmetric`. (#4660)\n- Retry for `502 Bad Gateway` and `504 Gateway Timeout` HTTP statuses in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#4670)\n- Retry for `502 Bad Gateway` and `504 Gateway Timeout` HTTP statuses in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#4670)\n- Retry for `RESOURCE_EXHAUSTED` only if RetryInfo is returned in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. (#4669)\n- Retry for `RESOURCE_EXHAUSTED` only if RetryInfo is returned in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. (#4669)\n- Retry temporary HTTP request failures in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#4679)\n- Retry temporary HTTP request failures in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#4679)\n\n### Fixed\n\n- Fix improper parsing of characters such us `+`, `/` by `Parse` in `go.opentelemetry.io/otel/baggage` as they were rendered as a whitespace. (#4667)\n- Fix improper parsing of characters such us `+`, `/` passed via `OTEL_RESOURCE_ATTRIBUTES` in `go.opentelemetry.io/otel/sdk/resource` as they were rendered as a whitespace. (#4699)\n- Fix improper parsing of characters such us `+`, `/` passed via `OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_METRICS_HEADERS` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` as they were rendered as a whitespace. (#4699)\n- Fix improper parsing of characters such us `+`, `/` passed via `OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_METRICS_HEADERS` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` as they were rendered as a whitespace. (#4699)\n- Fix improper parsing of characters such us `+`, `/` passed via `OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_TRACES_HEADERS` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlptracegrpc` as they were rendered as a whitespace. (#4699)\n- Fix improper parsing of characters such us `+`, `/` passed via `OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_TRACES_HEADERS` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlptracehttp` as they were rendered as a whitespace. (#4699)\n- In `go.opentelemetry.op/otel/exporters/prometheus`, the exporter no longer `Collect`s metrics after `Shutdown` is invoked. (#4648)\n- Fix documentation for `WithCompressor` in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. (#4695)\n- Fix documentation for `WithCompressor` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. (#4695)\n\n## [1.19.0/0.42.0/0.0.7] 2023-09-28\n\nThis release contains the first stable release of the OpenTelemetry Go [metric SDK].\nOur project stability guarantees now apply to the `go.opentelemetry.io/otel/sdk/metric` package.\nSee our [versioning policy](VERSIONING.md) for more information about these stability guarantees.\n\n### Added\n\n- Add the \"Roll the dice\" getting started application example in `go.opentelemetry.io/otel/example/dice`. (#4539)\n- The `WithWriter` and `WithPrettyPrint` options to `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` to set a custom `io.Writer`, and allow displaying the output in human-readable JSON. (#4507)\n\n### Changed\n\n- Allow '/' characters in metric instrument names. (#4501)\n- The exporter in `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` does not prettify its output by default anymore. (#4507)\n- Upgrade `gopkg.io/yaml` from `v2` to `v3` in `go.opentelemetry.io/otel/schema`. (#4535)\n\n### Fixed\n\n- In `go.opentelemetry.op/otel/exporters/prometheus`, don't try to create the Prometheus metric on every `Collect` if we know the scope is invalid. (#4499)\n\n### Removed\n\n- Remove `\"go.opentelemetry.io/otel/bridge/opencensus\".NewMetricExporter`, which is replaced by `NewMetricProducer`. (#4566)\n\n## [1.19.0-rc.1/0.42.0-rc.1] 2023-09-14\n\nThis is a release candidate for the v1.19.0/v0.42.0 release.\nThat release is expected to include the `v1` release of the OpenTelemetry Go metric SDK and will provide stability guarantees of that SDK.\nSee our [versioning policy](VERSIONING.md) for more information about these stability guarantees.\n\n### Changed\n\n- Allow '/' characters in metric instrument names. (#4501)\n\n### Fixed\n\n- In `go.opentelemetry.op/otel/exporters/prometheus`, don't try to create the prometheus metric on every `Collect` if we know the scope is invalid. (#4499)\n\n## [1.18.0/0.41.0/0.0.6] 2023-09-12\n\nThis release drops the compatibility guarantee of [Go 1.19].\n\n### Added\n\n- Add `WithProducer` option in `go.opentelemetry.op/otel/exporters/prometheus` to restore the ability to register producers on the prometheus exporter's manual reader. (#4473)\n- Add `IgnoreValue` option in `go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest` to allow ignoring values when comparing metrics. (#4447)\n\n### Changed\n\n- Use a `TestingT` interface instead of `*testing.T` struct in `go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest`. (#4483)\n\n### Deprecated\n\n- The `NewMetricExporter` in `go.opentelemetry.io/otel/bridge/opencensus` was deprecated in `v0.35.0` (#3541).\n  The deprecation notice format for the function has been corrected to trigger Go documentation and build tooling. (#4470)\n\n### Removed\n\n- Removed the deprecated `go.opentelemetry.io/otel/exporters/jaeger` package. (#4467)\n- Removed the deprecated `go.opentelemetry.io/otel/example/jaeger` package. (#4467)\n- Removed the deprecated `go.opentelemetry.io/otel/sdk/metric/aggregation` package. (#4468)\n- Removed the deprecated internal packages in `go.opentelemetry.io/otel/exporters/otlp` and its sub-packages. (#4469)\n- Dropped guaranteed support for versions of Go less than 1.20. (#4481)\n\n## [1.17.0/0.40.0/0.0.5] 2023-08-28\n\n### Added\n\n- Export the `ManualReader` struct in `go.opentelemetry.io/otel/sdk/metric`. (#4244)\n- Export the `PeriodicReader` struct in `go.opentelemetry.io/otel/sdk/metric`. (#4244)\n- Add support for exponential histogram aggregations.\n  A histogram can be configured as an exponential histogram using a view with `\"go.opentelemetry.io/otel/sdk/metric\".ExponentialHistogram` as the aggregation. (#4245)\n- Export the `Exporter` struct in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. (#4272)\n- Export the `Exporter` struct in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#4272)\n- The exporters in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` now support the `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` environment variable. (#4287)\n- Add `WithoutCounterSuffixes` option in `go.opentelemetry.io/otel/exporters/prometheus` to disable addition of `_total` suffixes. (#4306)\n- Add info and debug logging to the metric SDK in `go.opentelemetry.io/otel/sdk/metric`. (#4315)\n- The `go.opentelemetry.io/otel/semconv/v1.21.0` package.\n  The package contains semantic conventions from the `v1.21.0` version of the OpenTelemetry Semantic Conventions. (#4362)\n- Accept 201 to 299 HTTP status as success in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` and `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#4365)\n- Document the `Temporality` and `Aggregation` methods of the `\"go.opentelemetry.io/otel/sdk/metric\".Exporter\"` need to be concurrent safe. (#4381)\n- Expand the set of units supported by the Prometheus exporter, and don't add unit suffixes if they are already present in `go.opentelemetry.op/otel/exporters/prometheus` (#4374)\n- Move the `Aggregation` interface and its implementations from `go.opentelemetry.io/otel/sdk/metric/aggregation` to `go.opentelemetry.io/otel/sdk/metric`. (#4435)\n- The exporters in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` now support the `OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION` environment variable. (#4437)\n- Add the `NewAllowKeysFilter` and `NewDenyKeysFilter` functions to `go.opentelemetry.io/otel/attribute` to allow convenient creation of allow-keys and deny-keys filters. (#4444)\n- Support Go 1.21. (#4463)\n\n### Changed\n\n- Starting from `v1.21.0` of semantic conventions, `go.opentelemetry.io/otel/semconv/{version}/httpconv` and `go.opentelemetry.io/otel/semconv/{version}/netconv` packages will no longer be published. (#4145)\n- Log duplicate instrument conflict at a warning level instead of info in `go.opentelemetry.io/otel/sdk/metric`. (#4202)\n- Return an error on the creation of new instruments in `go.opentelemetry.io/otel/sdk/metric` if their name doesn't pass regexp validation. (#4210)\n- `NewManualReader` in `go.opentelemetry.io/otel/sdk/metric` returns `*ManualReader` instead of `Reader`. (#4244)\n- `NewPeriodicReader` in `go.opentelemetry.io/otel/sdk/metric` returns `*PeriodicReader` instead of `Reader`. (#4244)\n- Count the Collect time in the `PeriodicReader` timeout in `go.opentelemetry.io/otel/sdk/metric`. (#4221)\n- The function `New` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` returns `*Exporter` instead of `\"go.opentelemetry.io/otel/sdk/metric\".Exporter`. (#4272)\n- The function `New` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` returns `*Exporter` instead of `\"go.opentelemetry.io/otel/sdk/metric\".Exporter`. (#4272)\n- If an attribute set is omitted from an async callback, the previous value will no longer be exported in `go.opentelemetry.io/otel/sdk/metric`. (#4290)\n- If an attribute set is observed multiple times in an async callback in `go.opentelemetry.io/otel/sdk/metric`, the values will be summed instead of the last observation winning. (#4289)\n- Allow the explicit bucket histogram aggregation to be used for the up-down counter, observable counter, observable up-down counter, and observable gauge in the `go.opentelemetry.io/otel/sdk/metric` package. (#4332)\n- Restrict `Meter`s in `go.opentelemetry.io/otel/sdk/metric` to only register and collect instruments it created. (#4333)\n- `PeriodicReader.Shutdown` and `PeriodicReader.ForceFlush` in `go.opentelemetry.io/otel/sdk/metric` now apply the periodic reader's timeout to the operation if the user provided context does not contain a deadline. (#4356, #4377)\n- Upgrade all use of `go.opentelemetry.io/otel/semconv` to use `v1.21.0`. (#4408)\n- Increase instrument name maximum length from 63 to 255 characters in `go.opentelemetry.io/otel/sdk/metric`. (#4434)\n- Add `go.opentelemetry.op/otel/sdk/metric.WithProducer` as an `Option` for `\"go.opentelemetry.io/otel/sdk/metric\".NewManualReader` and `\"go.opentelemetry.io/otel/sdk/metric\".NewPeriodicReader`. (#4346)\n\n### Removed\n\n- Remove `Reader.RegisterProducer` in `go.opentelemetry.io/otel/metric`.\n  Use the added `WithProducer` option instead. (#4346)\n- Remove `Reader.ForceFlush` in `go.opentelemetry.io/otel/metric`.\n  Notice that `PeriodicReader.ForceFlush` is still available. (#4375)\n\n### Fixed\n\n- Correctly format log messages from the `go.opentelemetry.io/otel/exporters/zipkin` exporter. (#4143)\n- Log an error for calls to `NewView` in `go.opentelemetry.io/otel/sdk/metric` that have empty criteria. (#4307)\n- Fix `\"go.opentelemetry.io/otel/sdk/resource\".WithHostID()` to not set an empty `host.id`. (#4317)\n- Use the instrument identifying fields to cache aggregators and determine duplicate instrument registrations in `go.opentelemetry.io/otel/sdk/metric`. (#4337)\n- Detect duplicate instruments for case-insensitive names in `go.opentelemetry.io/otel/sdk/metric`. (#4338)\n- The `ManualReader` will not panic if `AggregationSelector` returns `nil` in `go.opentelemetry.io/otel/sdk/metric`. (#4350)\n- If a `Reader`'s `AggregationSelector` returns `nil` or `DefaultAggregation` the pipeline will use the default aggregation. (#4350)\n- Log a suggested view that fixes instrument conflicts in `go.opentelemetry.io/otel/sdk/metric`. (#4349)\n- Fix possible panic, deadlock and race condition in batch span processor in `go.opentelemetry.io/otel/sdk/trace`. (#4353)\n- Improve context cancellation handling in batch span processor's `ForceFlush` in  `go.opentelemetry.io/otel/sdk/trace`. (#4369)\n- Decouple `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal` from `go.opentelemetry.io/otel/exporters/otlp/internal` using gotmpl. (#4397, #3846)\n- Decouple `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal` from `go.opentelemetry.io/otel/exporters/otlp/internal` and `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal` using gotmpl. (#4404, #3846)\n- Decouple `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal` from `go.opentelemetry.io/otel/exporters/otlp/internal` and `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal` using gotmpl. (#4407, #3846)\n- Decouple `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal` from `go.opentelemetry.io/otel/exporters/otlp/internal` and `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal` using gotmpl. (#4400, #3846)\n- Decouple `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal` from `go.opentelemetry.io/otel/exporters/otlp/internal` and `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal` using gotmpl. (#4401, #3846)\n- Do not block the metric SDK when OTLP metric exports are blocked in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` and `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#3925, #4395)\n- Do not append `_total` if the counter already has that suffix for the Prometheus exproter in `go.opentelemetry.io/otel/exporter/prometheus`. (#4373)\n- Fix resource detection data race in `go.opentelemetry.io/otel/sdk/resource`. (#4409)\n- Use the first-seen instrument name during instrument name conflicts in `go.opentelemetry.io/otel/sdk/metric`. (#4428)\n\n### Deprecated\n\n- The `go.opentelemetry.io/otel/exporters/jaeger` package is deprecated.\n  OpenTelemetry dropped support for Jaeger exporter in July 2023.\n  Use `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`\n  or `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` instead. (#4423)\n- The `go.opentelemetry.io/otel/example/jaeger` package is deprecated. (#4423)\n- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal` package is deprecated. (#4420)\n- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/oconf` package is deprecated. (#4420)\n- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/otest` package is deprecated. (#4420)\n- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/transform` package is deprecated. (#4420)\n- The `go.opentelemetry.io/otel/exporters/otlp/internal` package is deprecated. (#4421)\n- The `go.opentelemetry.io/otel/exporters/otlp/internal/envconfig` package is deprecated. (#4421)\n- The `go.opentelemetry.io/otel/exporters/otlp/internal/retry` package is deprecated. (#4421)\n- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal` package is deprecated. (#4425)\n- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/envconfig` package is deprecated. (#4425)\n- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig` package is deprecated. (#4425)\n- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlptracetest` package is deprecated. (#4425)\n- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/retry` package is deprecated. (#4425)\n- The `go.opentelemetry.io/otel/sdk/metric/aggregation` package is deprecated.\n  Use the aggregation types added to `go.opentelemetry.io/otel/sdk/metric` instead. (#4435)\n\n## [1.16.0/0.39.0] 2023-05-18\n\nThis release contains the first stable release of the OpenTelemetry Go [metric API].\nOur project stability guarantees now apply to the `go.opentelemetry.io/otel/metric` package.\nSee our [versioning policy](VERSIONING.md) for more information about these stability guarantees.\n\n### Added\n\n- The `go.opentelemetry.io/otel/semconv/v1.19.0` package.\n  The package contains semantic conventions from the `v1.19.0` version of the OpenTelemetry specification. (#3848)\n- The `go.opentelemetry.io/otel/semconv/v1.20.0` package.\n  The package contains semantic conventions from the `v1.20.0` version of the OpenTelemetry specification. (#4078)\n- The Exponential Histogram data types in `go.opentelemetry.io/otel/sdk/metric/metricdata`. (#4165)\n- OTLP metrics exporter now supports the Exponential Histogram Data Type. (#4222)\n- Fix serialization of `time.Time` zero values in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` and `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` packages. (#4271)\n\n### Changed\n\n- Use `strings.Cut()` instead of `string.SplitN()` for better readability and memory use. (#4049)\n- `MeterProvider` returns noop meters once it has been shutdown. (#4154)\n\n### Removed\n\n- The deprecated `go.opentelemetry.io/otel/metric/instrument` package is removed.\n  Use `go.opentelemetry.io/otel/metric` instead. (#4055)\n\n### Fixed\n\n- Fix build for BSD based systems in `go.opentelemetry.io/otel/sdk/resource`. (#4077)\n\n## [1.16.0-rc.1/0.39.0-rc.1] 2023-05-03\n\nThis is a release candidate for the v1.16.0/v0.39.0 release.\nThat release is expected to include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API.\nSee our [versioning policy](VERSIONING.md) for more information about these stability guarantees.\n\n### Added\n\n- Support global `MeterProvider` in `go.opentelemetry.io/otel`. (#4039)\n  - Use `Meter` for a `metric.Meter` from the global `metric.MeterProvider`.\n  - Use `GetMeterProivder` for a global `metric.MeterProvider`.\n  - Use `SetMeterProivder` to set the global `metric.MeterProvider`.\n\n### Changed\n\n- Move the `go.opentelemetry.io/otel/metric` module to the `stable-v1` module set.\n  This stages the metric API to be released as a stable module. (#4038)\n\n### Removed\n\n- The `go.opentelemetry.io/otel/metric/global` package is removed.\n  Use `go.opentelemetry.io/otel` instead. (#4039)\n\n## [1.15.1/0.38.1] 2023-05-02\n\n### Fixed\n\n- Remove unused imports from `sdk/resource/host_id_bsd.go` which caused build failures. (#4040, #4041)\n\n## [1.15.0/0.38.0] 2023-04-27\n\n### Added\n\n- The `go.opentelemetry.io/otel/metric/embedded` package. (#3916)\n- The `Version` function to `go.opentelemetry.io/otel/sdk` to return the SDK version. (#3949)\n- Add a `WithNamespace` option to `go.opentelemetry.io/otel/exporters/prometheus` to allow users to prefix metrics with a namespace. (#3970)\n- The following configuration types were added to `go.opentelemetry.io/otel/metric/instrument` to be used in the configuration of measurement methods. (#3971)\n  - The `AddConfig` used to hold configuration for addition measurements\n    - `NewAddConfig` used to create a new `AddConfig`\n    - `AddOption` used to configure an `AddConfig`\n  - The `RecordConfig` used to hold configuration for recorded measurements\n    - `NewRecordConfig` used to create a new `RecordConfig`\n    - `RecordOption` used to configure a `RecordConfig`\n  - The `ObserveConfig` used to hold configuration for observed measurements\n    - `NewObserveConfig` used to create a new `ObserveConfig`\n    - `ObserveOption` used to configure an `ObserveConfig`\n- `WithAttributeSet` and `WithAttributes` are added to `go.opentelemetry.io/otel/metric/instrument`.\n  They return an option used during a measurement that defines the attribute Set associated with the measurement. (#3971)\n- The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` to return the OTLP metrics client version. (#3956)\n- The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlptrace` to return the OTLP trace client version. (#3956)\n\n### Changed\n\n- The `Extrema` in `go.opentelemetry.io/otel/sdk/metric/metricdata` is redefined with a generic argument of `[N int64 | float64]`. (#3870)\n- Update all exported interfaces from `go.opentelemetry.io/otel/metric` to embed their corresponding interface from `go.opentelemetry.io/otel/metric/embedded`.\n  This adds an implementation requirement to set the interface default behavior for unimplemented methods. (#3916)\n- Move No-Op implementation from `go.opentelemetry.io/otel/metric` into its own package `go.opentelemetry.io/otel/metric/noop`. (#3941)\n  - `metric.NewNoopMeterProvider` is replaced with `noop.NewMeterProvider`\n- Add all the methods from `\"go.opentelemetry.io/otel/trace\".SpanContext` to `bridgeSpanContext` by embedding `otel.SpanContext` in `bridgeSpanContext`. (#3966)\n- Wrap `UploadMetrics` error in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/` to improve error message when encountering generic grpc errors. (#3974)\n- The measurement methods for all instruments in `go.opentelemetry.io/otel/metric/instrument` accept an option instead of the variadic `\"go.opentelemetry.io/otel/attribute\".KeyValue`. (#3971)\n  - The `Int64Counter.Add` method now accepts `...AddOption`\n  - The `Float64Counter.Add` method now accepts `...AddOption`\n  - The `Int64UpDownCounter.Add` method now accepts `...AddOption`\n  - The `Float64UpDownCounter.Add` method now accepts `...AddOption`\n  - The `Int64Histogram.Record` method now accepts `...RecordOption`\n  - The `Float64Histogram.Record` method now accepts `...RecordOption`\n  - The `Int64Observer.Observe` method now accepts `...ObserveOption`\n  - The `Float64Observer.Observe` method now accepts `...ObserveOption`\n- The `Observer` methods in `go.opentelemetry.io/otel/metric` accept an option instead of the variadic `\"go.opentelemetry.io/otel/attribute\".KeyValue`. (#3971)\n  - The `Observer.ObserveInt64` method now accepts `...ObserveOption`\n  - The `Observer.ObserveFloat64` method now accepts `...ObserveOption`\n- Move global metric back to `go.opentelemetry.io/otel/metric/global` from `go.opentelemetry.io/otel`. (#3986)\n\n### Fixed\n\n- `TracerProvider` allows calling `Tracer()` while it's shutting down.\n  It used to deadlock. (#3924)\n- Use the SDK version for the Telemetry SDK resource detector in `go.opentelemetry.io/otel/sdk/resource`. (#3949)\n- Fix a data race in `SpanProcessor` returned by `NewSimpleSpanProcessor` in `go.opentelemetry.io/otel/sdk/trace`. (#3951)\n- Automatically figure out the default aggregation with `aggregation.Default`. (#3967)\n\n### Deprecated\n\n- The `go.opentelemetry.io/otel/metric/instrument` package is deprecated.\n  Use the equivalent types added to `go.opentelemetry.io/otel/metric` instead. (#4018)\n\n## [1.15.0-rc.2/0.38.0-rc.2] 2023-03-23\n\nThis is a release candidate for the v1.15.0/v0.38.0 release.\nThat release will include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API.\nSee our [versioning policy](VERSIONING.md) for more information about these stability guarantees.\n\n### Added\n\n- The `WithHostID` option to `go.opentelemetry.io/otel/sdk/resource`. (#3812)\n- The `WithoutTimestamps` option to `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` to sets all timestamps to zero. (#3828)\n- The new `Exemplar` type is added to `go.opentelemetry.io/otel/sdk/metric/metricdata`.\n  Both the `DataPoint` and `HistogramDataPoint` types from that package have a new field of `Exemplars` containing the sampled exemplars for their timeseries. (#3849)\n- Configuration for each metric instrument in `go.opentelemetry.io/otel/sdk/metric/instrument`. (#3895)\n- The internal logging introduces a warning level verbosity equal to `V(1)`. (#3900)\n- Added a log message warning about usage of `SimpleSpanProcessor` in production environments. (#3854)\n\n### Changed\n\n- Optimize memory allocation when creation a new `Set` using `NewSet` or `NewSetWithFiltered` in `go.opentelemetry.io/otel/attribute`. (#3832)\n- Optimize memory allocation when creation new metric instruments in `go.opentelemetry.io/otel/sdk/metric`. (#3832)\n- Avoid creating new objects on all calls to `WithDeferredSetup` and `SkipContextSetup` in OpenTracing bridge. (#3833)\n- The `New` and `Detect` functions from `go.opentelemetry.io/otel/sdk/resource` return errors that wrap underlying errors instead of just containing the underlying error strings. (#3844)\n- Both the `Histogram` and `HistogramDataPoint` are redefined with a generic argument of `[N int64 | float64]` in `go.opentelemetry.io/otel/sdk/metric/metricdata`. (#3849)\n- The metric `Export` interface from `go.opentelemetry.io/otel/sdk/metric` accepts a `*ResourceMetrics` instead of `ResourceMetrics`. (#3853)\n- Rename `Asynchronous` to `Observable` in `go.opentelemetry.io/otel/metric/instrument`. (#3892)\n- Rename `Int64ObserverOption` to `Int64ObservableOption` in `go.opentelemetry.io/otel/metric/instrument`. (#3895)\n- Rename `Float64ObserverOption` to `Float64ObservableOption` in `go.opentelemetry.io/otel/metric/instrument`. (#3895)\n- The internal logging changes the verbosity level of info to `V(4)`, the verbosity level of debug to `V(8)`. (#3900)\n\n### Fixed\n\n- `TracerProvider` consistently doesn't allow to register a `SpanProcessor` after shutdown. (#3845)\n\n### Removed\n\n- The deprecated `go.opentelemetry.io/otel/metric/global` package is removed. (#3829)\n- The unneeded `Synchronous` interface in `go.opentelemetry.io/otel/metric/instrument` was removed. (#3892)\n- The `Float64ObserverConfig` and `NewFloat64ObserverConfig` in `go.opentelemetry.io/otel/sdk/metric/instrument`.\n  Use the added `float64` instrument configuration instead. (#3895)\n- The `Int64ObserverConfig` and `NewInt64ObserverConfig` in `go.opentelemetry.io/otel/sdk/metric/instrument`.\n  Use the added `int64` instrument configuration instead. (#3895)\n- The `NewNoopMeter` function in `go.opentelemetry.io/otel/metric`, use `NewMeterProvider().Meter(\"\")` instead. (#3893)\n\n## [1.15.0-rc.1/0.38.0-rc.1] 2023-03-01\n\nThis is a release candidate for the v1.15.0/v0.38.0 release.\nThat release will include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API.\nSee our [versioning policy](VERSIONING.md) for more information about these stability guarantees.\n\nThis release drops the compatibility guarantee of [Go 1.18].\n\n### Added\n\n- Support global `MeterProvider` in `go.opentelemetry.io/otel`. (#3818)\n  - Use `Meter` for a `metric.Meter` from the global `metric.MeterProvider`.\n  - Use `GetMeterProivder` for a global `metric.MeterProvider`.\n  - Use `SetMeterProivder` to set the global `metric.MeterProvider`.\n\n### Changed\n\n- Dropped compatibility testing for [Go 1.18].\n  The project no longer guarantees support for this version of Go. (#3813)\n\n### Fixed\n\n- Handle empty environment variable as it they were not set. (#3764)\n- Clarify the `httpconv` and `netconv` packages in `go.opentelemetry.io/otel/semconv/*` provide tracing semantic conventions. (#3823)\n- Fix race conditions in `go.opentelemetry.io/otel/exporters/metric/prometheus` that could cause a panic. (#3899)\n- Fix sending nil `scopeInfo` to metrics channel in `go.opentelemetry.io/otel/exporters/metric/prometheus` that could cause a panic in `github.com/prometheus/client_golang/prometheus`. (#3899)\n\n### Deprecated\n\n- The `go.opentelemetry.io/otel/metric/global` package is deprecated.\n  Use `go.opentelemetry.io/otel` instead. (#3818)\n\n### Removed\n\n- The deprecated `go.opentelemetry.io/otel/metric/unit` package is removed. (#3814)\n\n## [1.14.0/0.37.0/0.0.4] 2023-02-27\n\nThis release is the last to support [Go 1.18].\nThe next release will require at least [Go 1.19].\n\n### Added\n\n- The `event` type semantic conventions are added to `go.opentelemetry.io/otel/semconv/v1.17.0`. (#3697)\n- Support [Go 1.20]. (#3693)\n- The `go.opentelemetry.io/otel/semconv/v1.18.0` package.\n  The package contains semantic conventions from the `v1.18.0` version of the OpenTelemetry specification. (#3719)\n  - The following `const` renames from `go.opentelemetry.io/otel/semconv/v1.17.0` are included:\n    - `OtelScopeNameKey` -> `OTelScopeNameKey`\n    - `OtelScopeVersionKey` -> `OTelScopeVersionKey`\n    - `OtelLibraryNameKey` -> `OTelLibraryNameKey`\n    - `OtelLibraryVersionKey` -> `OTelLibraryVersionKey`\n    - `OtelStatusCodeKey` -> `OTelStatusCodeKey`\n    - `OtelStatusDescriptionKey` -> `OTelStatusDescriptionKey`\n    - `OtelStatusCodeOk` -> `OTelStatusCodeOk`\n    - `OtelStatusCodeError` -> `OTelStatusCodeError`\n  - The following `func` renames from `go.opentelemetry.io/otel/semconv/v1.17.0` are included:\n    - `OtelScopeName` -> `OTelScopeName`\n    - `OtelScopeVersion` -> `OTelScopeVersion`\n    - `OtelLibraryName` -> `OTelLibraryName`\n    - `OtelLibraryVersion` -> `OTelLibraryVersion`\n    - `OtelStatusDescription` -> `OTelStatusDescription`\n- A `IsSampled` method is added to the `SpanContext` implementation in `go.opentelemetry.io/otel/bridge/opentracing` to expose the span sampled state.\n  See the [README](./bridge/opentracing/README.md) for more information. (#3570)\n- The `WithInstrumentationAttributes` option to `go.opentelemetry.io/otel/metric`. (#3738)\n- The `WithInstrumentationAttributes` option to `go.opentelemetry.io/otel/trace`. (#3739)\n- The following environment variables are supported by the periodic `Reader` in `go.opentelemetry.io/otel/sdk/metric`. (#3763)\n  - `OTEL_METRIC_EXPORT_INTERVAL` sets the time between collections and exports.\n  - `OTEL_METRIC_EXPORT_TIMEOUT` sets the timeout an export is attempted.\n\n### Changed\n\n- Fall-back to `TextMapCarrier` when it's not `HttpHeader`s in `go.opentelemetry.io/otel/bridge/opentracing`. (#3679)\n- The `Collect` method of the `\"go.opentelemetry.io/otel/sdk/metric\".Reader` interface is updated to accept the `metricdata.ResourceMetrics` value the collection will be made into.\n  This change is made to enable memory reuse by SDK users. (#3732)\n- The `WithUnit` option in `go.opentelemetry.io/otel/sdk/metric/instrument` is updated to accept a `string` for the unit value. (#3776)\n\n### Fixed\n\n- Ensure `go.opentelemetry.io/otel` does not use generics. (#3723, #3725)\n- Multi-reader `MeterProvider`s now export metrics for all readers, instead of just the first reader. (#3720, #3724)\n- Remove use of deprecated `\"math/rand\".Seed` in `go.opentelemetry.io/otel/example/prometheus`. (#3733)\n- Do not silently drop unknown schema data with `Parse` in  `go.opentelemetry.io/otel/schema/v1.1`. (#3743)\n- Data race issue in OTLP exporter retry mechanism. (#3755, #3756)\n- Wrapping empty errors when exporting in `go.opentelemetry.io/otel/sdk/metric`. (#3698, #3772)\n- Incorrect \"all\" and \"resource\" definition for schema files in `go.opentelemetry.io/otel/schema/v1.1`. (#3777)\n\n### Deprecated\n\n- The `go.opentelemetry.io/otel/metric/unit` package is deprecated.\n  Use the equivalent unit string instead. (#3776)\n  - Use `\"1\"` instead of `unit.Dimensionless`\n  - Use `\"By\"` instead of `unit.Bytes`\n  - Use `\"ms\"` instead of `unit.Milliseconds`\n\n## [1.13.0/0.36.0] 2023-02-07\n\n### Added\n\n- Attribute `KeyValue` creations functions to `go.opentelemetry.io/otel/semconv/v1.17.0` for all non-enum semantic conventions.\n  These functions ensure semantic convention type correctness. (#3675)\n\n### Fixed\n\n- Removed the `http.target` attribute from being added by `ServerRequest` in the following packages. (#3687)\n  - `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`\n  - `go.opentelemetry.io/otel/semconv/v1.14.0/httpconv`\n  - `go.opentelemetry.io/otel/semconv/v1.15.0/httpconv`\n  - `go.opentelemetry.io/otel/semconv/v1.16.0/httpconv`\n  - `go.opentelemetry.io/otel/semconv/v1.17.0/httpconv`\n\n### Removed\n\n- The deprecated `go.opentelemetry.io/otel/metric/instrument/asyncfloat64` package is removed. (#3631)\n- The deprecated `go.opentelemetry.io/otel/metric/instrument/asyncint64` package is removed. (#3631)\n- The deprecated `go.opentelemetry.io/otel/metric/instrument/syncfloat64` package is removed. (#3631)\n- The deprecated `go.opentelemetry.io/otel/metric/instrument/syncint64` package is removed. (#3631)\n\n## [1.12.0/0.35.0] 2023-01-28\n\n### Added\n\n- The `WithInt64Callback` option to `go.opentelemetry.io/otel/metric/instrument`.\n  This options is used to configure `int64` Observer callbacks during their creation. (#3507)\n- The `WithFloat64Callback` option to `go.opentelemetry.io/otel/metric/instrument`.\n  This options is used to configure `float64` Observer callbacks during their creation. (#3507)\n- The `Producer` interface and `Reader.RegisterProducer(Producer)` to `go.opentelemetry.io/otel/sdk/metric`.\n  These additions are used to enable external metric Producers. (#3524)\n- The `Callback` function type to `go.opentelemetry.io/otel/metric`.\n  This new named function type is registered with a `Meter`. (#3564)\n- The `go.opentelemetry.io/otel/semconv/v1.13.0` package.\n  The package contains semantic conventions from the `v1.13.0` version of the OpenTelemetry specification. (#3499)\n  - The `EndUserAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is merged into `ClientRequest` and `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.\n  - The `HTTPAttributesFromHTTPStatusCode` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is merged into `ClientResponse` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.\n  - The `HTTPClientAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ClientRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.\n  - The `HTTPServerAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.\n  - The `HTTPServerMetricAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.\n  - The `NetAttributesFromHTTPRequest` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is split into `Transport` in `go.opentelemetry.io/otel/semconv/v1.13.0/netconv` and `ClientRequest` or `ServerRequest` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.\n  - The `SpanStatusFromHTTPStatusCode` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is replaced by `ClientStatus` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.\n  - The `SpanStatusFromHTTPStatusCodeAndSpanKind` function in `go.opentelemetry.io/otel/semconv/v1.12.0` is split into `ClientStatus` and `ServerStatus` in `go.opentelemetry.io/otel/semconv/v1.13.0/httpconv`.\n  - The `Client` function is included in `go.opentelemetry.io/otel/semconv/v1.13.0/netconv` to generate attributes for a `net.Conn`.\n  - The `Server` function is included in `go.opentelemetry.io/otel/semconv/v1.13.0/netconv` to generate attributes for a `net.Listener`.\n- The `go.opentelemetry.io/otel/semconv/v1.14.0` package.\n  The package contains semantic conventions from the `v1.14.0` version of the OpenTelemetry specification. (#3566)\n- The `go.opentelemetry.io/otel/semconv/v1.15.0` package.\n  The package contains semantic conventions from the `v1.15.0` version of the OpenTelemetry specification. (#3578)\n- The `go.opentelemetry.io/otel/semconv/v1.16.0` package.\n  The package contains semantic conventions from the `v1.16.0` version of the OpenTelemetry specification. (#3579)\n- Metric instruments to `go.opentelemetry.io/otel/metric/instrument`.\n  These instruments are use as replacements of the deprecated `go.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64}` packages.(#3575, #3586)\n  - `Float64ObservableCounter` replaces the `asyncfloat64.Counter`\n  - `Float64ObservableUpDownCounter` replaces the `asyncfloat64.UpDownCounter`\n  - `Float64ObservableGauge` replaces the `asyncfloat64.Gauge`\n  - `Int64ObservableCounter` replaces the `asyncint64.Counter`\n  - `Int64ObservableUpDownCounter` replaces the `asyncint64.UpDownCounter`\n  - `Int64ObservableGauge` replaces the `asyncint64.Gauge`\n  - `Float64Counter` replaces the `syncfloat64.Counter`\n  - `Float64UpDownCounter` replaces the `syncfloat64.UpDownCounter`\n  - `Float64Histogram` replaces the `syncfloat64.Histogram`\n  - `Int64Counter` replaces the `syncint64.Counter`\n  - `Int64UpDownCounter` replaces the `syncint64.UpDownCounter`\n  - `Int64Histogram` replaces the `syncint64.Histogram`\n- `NewTracerProvider` to `go.opentelemetry.io/otel/bridge/opentracing`.\n  This is used to create `WrapperTracer` instances from a `TracerProvider`. (#3116)\n- The `Extrema` type to `go.opentelemetry.io/otel/sdk/metric/metricdata`.\n  This type is used to represent min/max values and still be able to distinguish unset and zero values. (#3487)\n- The `go.opentelemetry.io/otel/semconv/v1.17.0` package.\n  The package contains semantic conventions from the `v1.17.0` version of the OpenTelemetry specification. (#3599)\n\n### Changed\n\n- Jaeger and Zipkin exporter use `github.com/go-logr/logr` as the logging interface, and add the `WithLogr` option. (#3497, #3500)\n- Instrument configuration in `go.opentelemetry.io/otel/metric/instrument` is split into specific options and configuration based on the instrument type. (#3507)\n  - Use the added `Int64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncint64`.\n  - Use the added `Float64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncfloat64`.\n  - Use the added `Int64ObserverOption` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/asyncint64`.\n  - Use the added `Float64ObserverOption` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/asyncfloat64`.\n- Return a `Registration` from the `RegisterCallback` method of a `Meter` in the `go.opentelemetry.io/otel/metric` package.\n  This `Registration` can be used to unregister callbacks. (#3522)\n- Global error handler uses an atomic value instead of a mutex. (#3543)\n- Add `NewMetricProducer` to `go.opentelemetry.io/otel/bridge/opencensus`, which can be used to pass OpenCensus metrics to an OpenTelemetry Reader. (#3541)\n- Global logger uses an atomic value instead of a mutex. (#3545)\n- The `Shutdown` method of the `\"go.opentelemetry.io/otel/sdk/trace\".TracerProvider` releases all computational resources when called the first time. (#3551)\n- The `Sampler` returned from `TraceIDRatioBased` `go.opentelemetry.io/otel/sdk/trace` now uses the rightmost bits for sampling decisions.\n  This fixes random sampling when using ID generators like `xray.IDGenerator` and increasing parity with other language implementations. (#3557)\n- Errors from `go.opentelemetry.io/otel/exporters/otlp/otlptrace` exporters are wrapped in errors identifying their signal name.\n  Existing users of the exporters attempting to identify specific errors will need to use `errors.Unwrap()` to get the underlying error. (#3516)\n- Exporters from `go.opentelemetry.io/otel/exporters/otlp` will print the final retryable error message when attempts to retry time out. (#3514)\n- The instrument kind names in `go.opentelemetry.io/otel/sdk/metric` are updated to match the API. (#3562)\n  - `InstrumentKindSyncCounter` is renamed to `InstrumentKindCounter`\n  - `InstrumentKindSyncUpDownCounter` is renamed to `InstrumentKindUpDownCounter`\n  - `InstrumentKindSyncHistogram` is renamed to `InstrumentKindHistogram`\n  - `InstrumentKindAsyncCounter` is renamed to `InstrumentKindObservableCounter`\n  - `InstrumentKindAsyncUpDownCounter` is renamed to `InstrumentKindObservableUpDownCounter`\n  - `InstrumentKindAsyncGauge` is renamed to `InstrumentKindObservableGauge`\n- The `RegisterCallback` method of the `Meter` in `go.opentelemetry.io/otel/metric` changed.\n  - The named `Callback` replaces the inline function parameter. (#3564)\n  - `Callback` is required to return an error. (#3576)\n  - `Callback` accepts the added `Observer` parameter added.\n    This new parameter is used by `Callback` implementations to observe values for asynchronous instruments instead of calling the `Observe` method of the instrument directly. (#3584)\n  - The slice of `instrument.Asynchronous` is now passed as a variadic argument. (#3587)\n- The exporter from `go.opentelemetry.io/otel/exporters/zipkin` is updated to use the `v1.16.0` version of semantic conventions.\n  This means it no longer uses the removed `net.peer.ip` or `http.host` attributes to determine the remote endpoint.\n  Instead it uses the `net.sock.peer` attributes. (#3581)\n- The `Min` and `Max` fields of the `HistogramDataPoint` in `go.opentelemetry.io/otel/sdk/metric/metricdata` are now defined with the added `Extrema` type instead of a `*float64`. (#3487)\n\n### Fixed\n\n- Asynchronous instruments that use sum aggregators and attribute filters correctly add values from equivalent attribute sets that have been filtered. (#3439, #3549)\n- The `RegisterCallback` method of the `Meter` from `go.opentelemetry.io/otel/sdk/metric` only registers a callback for instruments created by that meter.\n  Trying to register a callback with instruments from a different meter will result in an error being returned. (#3584)\n\n### Deprecated\n\n- The `NewMetricExporter` in `go.opentelemetry.io/otel/bridge/opencensus` is deprecated.\n  Use `NewMetricProducer` instead. (#3541)\n- The `go.opentelemetry.io/otel/metric/instrument/asyncfloat64` package is deprecated.\n  Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. (#3575)\n- The `go.opentelemetry.io/otel/metric/instrument/asyncint64` package is deprecated.\n  Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. (#3575)\n- The `go.opentelemetry.io/otel/metric/instrument/syncfloat64` package is deprecated.\n  Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. (#3575)\n- The `go.opentelemetry.io/otel/metric/instrument/syncint64` package is deprecated.\n  Use the instruments from `go.opentelemetry.io/otel/metric/instrument` instead. (#3575)\n- The `NewWrappedTracerProvider` in `go.opentelemetry.io/otel/bridge/opentracing` is now deprecated.\n  Use `NewTracerProvider` instead. (#3116)\n\n### Removed\n\n- The deprecated `go.opentelemetry.io/otel/sdk/metric/view` package is removed. (#3520)\n- The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/asyncint64` is removed.\n  Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. (#3530)\n  - The `Counter` method is replaced by `Meter.Int64ObservableCounter`\n  - The `UpDownCounter` method is replaced by `Meter.Int64ObservableUpDownCounter`\n  - The `Gauge` method is replaced by `Meter.Int64ObservableGauge`\n- The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/asyncfloat64` is removed.\n  Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. (#3530)\n  - The `Counter` method is replaced by `Meter.Float64ObservableCounter`\n  - The `UpDownCounter` method is replaced by `Meter.Float64ObservableUpDownCounter`\n  - The `Gauge` method is replaced by `Meter.Float64ObservableGauge`\n- The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/syncint64` is removed.\n  Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. (#3530)\n  - The `Counter` method is replaced by `Meter.Int64Counter`\n  - The `UpDownCounter` method is replaced by `Meter.Int64UpDownCounter`\n  - The `Histogram` method is replaced by `Meter.Int64Histogram`\n- The `InstrumentProvider` from `go.opentelemetry.io/otel/sdk/metric/syncfloat64` is removed.\n  Use the new creation methods of the `Meter` in `go.opentelemetry.io/otel/sdk/metric` instead. (#3530)\n  - The `Counter` method is replaced by `Meter.Float64Counter`\n  - The `UpDownCounter` method is replaced by `Meter.Float64UpDownCounter`\n  - The `Histogram` method is replaced by `Meter.Float64Histogram`\n\n## [1.11.2/0.34.0] 2022-12-05\n\n### Added\n\n- The `WithView` `Option` is added to the `go.opentelemetry.io/otel/sdk/metric` package.\n   This option is used to configure the view(s) a `MeterProvider` will use for all `Reader`s that are registered with it. (#3387)\n- Add Instrumentation Scope and Version as info metric and label in Prometheus exporter.\n  This can be disabled using the `WithoutScopeInfo()` option added to that package.(#3273, #3357)\n- OTLP exporters now recognize: (#3363)\n  - `OTEL_EXPORTER_OTLP_INSECURE`\n  - `OTEL_EXPORTER_OTLP_TRACES_INSECURE`\n  - `OTEL_EXPORTER_OTLP_METRICS_INSECURE`\n  - `OTEL_EXPORTER_OTLP_CLIENT_KEY`\n  - `OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY`\n  - `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY`\n  - `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`\n  - `OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE`\n  - `OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE`\n- The `View` type and related `NewView` function to create a view according to the OpenTelemetry specification are added to `go.opentelemetry.io/otel/sdk/metric`.\n  These additions are replacements for the `View` type and `New` function from `go.opentelemetry.io/otel/sdk/metric/view`. (#3459)\n- The `Instrument` and `InstrumentKind` type are added to `go.opentelemetry.io/otel/sdk/metric`.\n  These additions are replacements for the `Instrument` and `InstrumentKind` types from `go.opentelemetry.io/otel/sdk/metric/view`. (#3459)\n- The `Stream` type is added to `go.opentelemetry.io/otel/sdk/metric` to define a metric data stream a view will produce. (#3459)\n- The `AssertHasAttributes` allows instrument authors to test that datapoints returned have appropriate attributes. (#3487)\n\n### Changed\n\n- The `\"go.opentelemetry.io/otel/sdk/metric\".WithReader` option no longer accepts views to associate with the `Reader`.\n   Instead, views are now registered directly with the `MeterProvider` via the new `WithView` option.\n   The views registered with the `MeterProvider` apply to all `Reader`s. (#3387)\n- The `Temporality(view.InstrumentKind) metricdata.Temporality` and `Aggregation(view.InstrumentKind) aggregation.Aggregation` methods are added to the `\"go.opentelemetry.io/otel/sdk/metric\".Exporter` interface. (#3260)\n- The `Temporality(view.InstrumentKind) metricdata.Temporality` and `Aggregation(view.InstrumentKind) aggregation.Aggregation` methods are added to the `\"go.opentelemetry.io/otel/exporters/otlp/otlpmetric\".Client` interface. (#3260)\n- The `WithTemporalitySelector` and `WithAggregationSelector` `ReaderOption`s have been changed to `ManualReaderOption`s in the `go.opentelemetry.io/otel/sdk/metric` package. (#3260)\n- The periodic reader in the `go.opentelemetry.io/otel/sdk/metric` package now uses the temporality and aggregation selectors from its configured exporter instead of accepting them as options. (#3260)\n\n### Fixed\n\n- The `go.opentelemetry.io/otel/exporters/prometheus` exporter fixes duplicated `_total` suffixes. (#3369)\n- Remove comparable requirement for `Reader`s. (#3387)\n- Cumulative metrics from the OpenCensus bridge (`go.opentelemetry.io/otel/bridge/opencensus`) are defined as monotonic sums, instead of non-monotonic. (#3389)\n- Asynchronous counters (`Counter` and `UpDownCounter`) from the metric SDK now produce delta sums when configured with delta temporality. (#3398)\n- Exported `Status` codes in the `go.opentelemetry.io/otel/exporters/zipkin` exporter are now exported as all upper case values. (#3340)\n- `Aggregation`s from `go.opentelemetry.io/otel/sdk/metric` with no data are not exported. (#3394, #3436)\n- Re-enabled Attribute Filters in the Metric SDK. (#3396)\n- Asynchronous callbacks are only called if they are registered with at least one instrument that does not use drop aggregation. (#3408)\n- Do not report empty partial-success responses in the `go.opentelemetry.io/otel/exporters/otlp` exporters. (#3438, #3432)\n- Handle partial success responses in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` exporters. (#3162, #3440)\n- Prevent duplicate Prometheus description, unit, and type. (#3469)\n- Prevents panic when using incorrect `attribute.Value.As[Type]Slice()`. (#3489)\n\n### Removed\n\n- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric.Client` interface is removed. (#3486)\n- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric.New` function is removed. Use the `otlpmetric[http|grpc].New` directly. (#3486)\n\n### Deprecated\n\n- The `go.opentelemetry.io/otel/sdk/metric/view` package is deprecated.\n  Use `Instrument`, `InstrumentKind`, `View`, and `NewView` in `go.opentelemetry.io/otel/sdk/metric` instead. (#3476)\n\n## [1.11.1/0.33.0] 2022-10-19\n\n### Added\n\n- The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` registers with a Prometheus registerer on creation.\n   By default, it will register with the default Prometheus registerer.\n   A non-default registerer can be used by passing the `WithRegisterer` option. (#3239)\n- Added the `WithAggregationSelector` option to the `go.opentelemetry.io/otel/exporters/prometheus` package to change the default `AggregationSelector` used. (#3341)\n- The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` converts the `Resource` associated with metric exports into a `target_info` metric. (#3285)\n\n### Changed\n\n- The `\"go.opentelemetry.io/otel/exporters/prometheus\".New` function is updated to return an error.\n   It will return an error if the exporter fails to register with Prometheus. (#3239)\n\n### Fixed\n\n- The URL-encoded values from the `OTEL_RESOURCE_ATTRIBUTES` environment variable are decoded. (#2963)\n- The `baggage.NewMember` function decodes the `value` parameter instead of directly using it.\n   This fixes the implementation to be compliant with the W3C specification. (#3226)\n- Slice attributes of the `attribute` package are now comparable based on their value, not instance. (#3108 #3252)\n- The `Shutdown` and `ForceFlush` methods of the `\"go.opentelemetry.io/otel/sdk/trace\".TraceProvider` no longer return an error when no processor is registered. (#3268)\n- The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` cumulatively sums histogram buckets. (#3281)\n- The sum of each histogram data point is now uniquely exported by the `go.opentelemetry.io/otel/exporters/otlpmetric` exporters. (#3284, #3293)\n- Recorded values for asynchronous counters (`Counter` and `UpDownCounter`) are interpreted as exact, not incremental, sum values by the metric SDK. (#3350, #3278)\n- `UpDownCounters` are now correctly output as Prometheus gauges in the `go.opentelemetry.io/otel/exporters/prometheus` exporter. (#3358)\n- The Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus` no longer describes the metrics it will send to Prometheus on startup.\n   Instead the exporter is defined as an \"unchecked\" collector for Prometheus.\n   This fixes the `reader is not registered` warning currently emitted on startup. (#3291 #3342)\n- The `go.opentelemetry.io/otel/exporters/prometheus` exporter now correctly adds `_total` suffixes to counter metrics. (#3360)\n- The `go.opentelemetry.io/otel/exporters/prometheus` exporter now adds a unit suffix to metric names.\n   This can be disabled using the `WithoutUnits()` option added to that package. (#3352)\n\n## [1.11.0/0.32.3] 2022-10-12\n\n### Added\n\n- Add default User-Agent header to OTLP exporter requests (`go.opentelemetry.io/otel/exporters/otlptrace/otlptracegrpc` and `go.opentelemetry.io/otel/exporters/otlptrace/otlptracehttp`). (#3261)\n\n### Changed\n\n- `span.SetStatus` has been updated such that calls that lower the status are now no-ops. (#3214)\n- Upgrade `golang.org/x/sys/unix` from `v0.0.0-20210423185535-09eb48e85fd7` to `v0.0.0-20220919091848-fb04ddd9f9c8`.\n  This addresses [GO-2022-0493](https://pkg.go.dev/vuln/GO-2022-0493). (#3235)\n\n## [0.32.2] Metric SDK (Alpha) - 2022-10-11\n\n### Added\n\n- Added an example of using metric views to customize instruments. (#3177)\n- Add default User-Agent header to OTLP exporter requests (`go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetricgrpc` and `go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetrichttp`). (#3261)\n\n### Changed\n\n- Flush pending measurements with the `PeriodicReader` in the `go.opentelemetry.io/otel/sdk/metric` when `ForceFlush` or `Shutdown` are called. (#3220)\n- Update histogram default bounds to match the requirements of the latest specification. (#3222)\n- Encode the HTTP status code in the OpenTracing bridge (`go.opentelemetry.io/otel/bridge/opentracing`) as an integer.  (#3265)\n\n### Fixed\n\n- Use default view if instrument does not match any registered view of a reader. (#3224, #3237)\n- Return the same instrument every time a user makes the exact same instrument creation call. (#3229, #3251)\n- Return the existing instrument when a view transforms a creation call to match an existing instrument. (#3240, #3251)\n- Log a warning when a conflicting instrument (e.g. description, unit, data-type) is created instead of returning an error. (#3251)\n- The OpenCensus bridge no longer sends empty batches of metrics. (#3263)\n\n## [0.32.1] Metric SDK (Alpha) - 2022-09-22\n\n### Changed\n\n- The Prometheus exporter sanitizes OpenTelemetry instrument names when exporting.\n   Invalid characters are replaced with `_`. (#3212)\n\n### Added\n\n- The metric portion of the OpenCensus bridge (`go.opentelemetry.io/otel/bridge/opencensus`) has been reintroduced. (#3192)\n- The OpenCensus bridge example (`go.opentelemetry.io/otel/example/opencensus`) has been reintroduced. (#3206)\n\n### Fixed\n\n- Updated go.mods to point to valid versions of the sdk. (#3216)\n- Set the `MeterProvider` resource on all exported metric data. (#3218)\n\n## [0.32.0] Revised Metric SDK (Alpha) - 2022-09-18\n\n### Changed\n\n- The metric SDK in `go.opentelemetry.io/otel/sdk/metric` is completely refactored to comply with the OpenTelemetry specification.\n  Please see the package documentation for how the new SDK is initialized and configured. (#3175)\n- Update the minimum supported go version to go1.18. Removes support for go1.17 (#3179)\n\n### Removed\n\n- The metric portion of the OpenCensus bridge (`go.opentelemetry.io/otel/bridge/opencensus`) has been removed.\n  A new bridge compliant with the revised metric SDK will be added back in a future release. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/aggregator/aggregatortest` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/aggregator/histogram` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/aggregator/lastvalue` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/aggregator/sum` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/aggregator` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/controller/basic` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/controller/controllertest` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/controller/time` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/export/aggregation` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/export` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/metrictest` package is removed.\n  A replacement package that supports the new metric SDK will be added back in a future release. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/number` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/processor/basic` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/processor/processortest` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/processor/reducer` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/registry` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/sdkapi` package is removed, see the new metric SDK. (#3175)\n- The `go.opentelemetry.io/otel/sdk/metric/selector/simple` package is removed, see the new metric SDK. (#3175)\n- The `\"go.opentelemetry.io/otel/sdk/metric\".ErrUninitializedInstrument` variable was removed. (#3175)\n- The `\"go.opentelemetry.io/otel/sdk/metric\".ErrBadInstrument` variable was removed. (#3175)\n- The `\"go.opentelemetry.io/otel/sdk/metric\".Accumulator` type was removed, see the `MeterProvider`in the new metric SDK. (#3175)\n- The `\"go.opentelemetry.io/otel/sdk/metric\".NewAccumulator` function was removed, see `NewMeterProvider`in the new metric SDK. (#3175)\n- The deprecated `\"go.opentelemetry.io/otel/sdk/metric\".AtomicFieldOffsets` function was removed. (#3175)\n\n## [1.10.0] - 2022-09-09\n\n### Added\n\n- Support Go 1.19. (#3077)\n  Include compatibility testing and document support. (#3077)\n- Support the OTLP ExportTracePartialSuccess response; these are passed to the registered error handler. (#3106)\n- Upgrade go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0 (#3107)\n\n### Changed\n\n- Fix misidentification of OpenTelemetry `SpanKind` in OpenTracing bridge (`go.opentelemetry.io/otel/bridge/opentracing`).  (#3096)\n- Attempting to start a span with a nil `context` will no longer cause a panic. (#3110)\n- All exporters will be shutdown even if one reports an error (#3091)\n- Ensure valid UTF-8 when truncating over-length attribute values. (#3156)\n\n## [1.9.0/0.0.3] - 2022-08-01\n\n### Added\n\n- Add support for Schema Files format 1.1.x (metric \"split\" transform) with the new `go.opentelemetry.io/otel/schema/v1.1` package. (#2999)\n- Add the `go.opentelemetry.io/otel/semconv/v1.11.0` package.\n  The package contains semantic conventions from the `v1.11.0` version of the OpenTelemetry specification. (#3009)\n- Add the `go.opentelemetry.io/otel/semconv/v1.12.0` package.\n  The package contains semantic conventions from the `v1.12.0` version of the OpenTelemetry specification. (#3010)\n- Add the `http.method` attribute to HTTP server metric from all `go.opentelemetry.io/otel/semconv/*` packages. (#3018)\n\n### Fixed\n\n- Invalid warning for context setup being deferred in `go.opentelemetry.io/otel/bridge/opentracing` package. (#3029)\n\n## [1.8.0/0.31.0] - 2022-07-08\n\n### Added\n\n- Add support for `opentracing.TextMap` format in the `Inject` and `Extract` methods\nof the `\"go.opentelemetry.io/otel/bridge/opentracing\".BridgeTracer` type. (#2911)\n\n### Changed\n\n- The `crosslink` make target has been updated to use the `go.opentelemetry.io/build-tools/crosslink` package. (#2886)\n- In the `go.opentelemetry.io/otel/sdk/instrumentation` package rename `Library` to `Scope` and alias `Library` as `Scope` (#2976)\n- Move metric no-op implementation form `nonrecording` to `metric` package. (#2866)\n\n### Removed\n\n- Support for go1.16. Support is now only for go1.17 and go1.18 (#2917)\n\n### Deprecated\n\n- The `Library` struct in the `go.opentelemetry.io/otel/sdk/instrumentation` package is deprecated.\n  Use the equivalent `Scope` struct instead. (#2977)\n- The `ReadOnlySpan.InstrumentationLibrary` method from the `go.opentelemetry.io/otel/sdk/trace` package is deprecated.\n  Use the equivalent `ReadOnlySpan.InstrumentationScope` method instead. (#2977)\n\n## [1.7.0/0.30.0] - 2022-04-28\n\n### Added\n\n- Add the `go.opentelemetry.io/otel/semconv/v1.8.0` package.\n  The package contains semantic conventions from the `v1.8.0` version of the OpenTelemetry specification. (#2763)\n- Add the `go.opentelemetry.io/otel/semconv/v1.9.0` package.\n  The package contains semantic conventions from the `v1.9.0` version of the OpenTelemetry specification. (#2792)\n- Add the `go.opentelemetry.io/otel/semconv/v1.10.0` package.\n  The package contains semantic conventions from the `v1.10.0` version of the OpenTelemetry specification. (#2842)\n- Added an in-memory exporter to metrictest to aid testing with a full SDK. (#2776)\n\n### Fixed\n\n- Globally delegated instruments are unwrapped before delegating asynchronous callbacks. (#2784)\n- Remove import of `testing` package in non-tests builds of the `go.opentelemetry.io/otel` package. (#2786)\n\n### Changed\n\n- The `WithLabelEncoder` option from the `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` package is renamed to `WithAttributeEncoder`. (#2790)\n- The `LabelFilterSelector` interface from `go.opentelemetry.io/otel/sdk/metric/processor/reducer` is renamed to `AttributeFilterSelector`.\n  The method included in the renamed interface also changed from `LabelFilterFor` to `AttributeFilterFor`. (#2790)\n- The `Metadata.Labels` method from the `go.opentelemetry.io/otel/sdk/metric/export` package is renamed to `Metadata.Attributes`.\n  Consequentially, the `Record` type from the same package also has had the embedded method renamed. (#2790)\n\n### Deprecated\n\n- The `Iterator.Label` method in the `go.opentelemetry.io/otel/attribute` package is deprecated.\n  Use the equivalent `Iterator.Attribute` method instead. (#2790)\n- The `Iterator.IndexedLabel` method in the `go.opentelemetry.io/otel/attribute` package is deprecated.\n  Use the equivalent `Iterator.IndexedAttribute` method instead. (#2790)\n- The `MergeIterator.Label` method in the `go.opentelemetry.io/otel/attribute` package is deprecated.\n  Use the equivalent `MergeIterator.Attribute` method instead. (#2790)\n\n### Removed\n\n- Removed the `Batch` type from the `go.opentelemetry.io/otel/sdk/metric/metrictest` package. (#2864)\n- Removed the `Measurement` type from the `go.opentelemetry.io/otel/sdk/metric/metrictest` package. (#2864)\n\n## [0.29.0] - 2022-04-11\n\n### Added\n\n- The metrics global package was added back into several test files. (#2764)\n- The `Meter` function is added back to the `go.opentelemetry.io/otel/metric/global` package.\n  This function is a convenience function equivalent to calling `global.MeterProvider().Meter(...)`. (#2750)\n\n### Removed\n\n- Removed module the `go.opentelemetry.io/otel/sdk/export/metric`.\n  Use the `go.opentelemetry.io/otel/sdk/metric` module instead. (#2720)\n\n### Changed\n\n- Don't panic anymore when setting a global MeterProvider to itself. (#2749)\n- Upgrade `go.opentelemetry.io/proto/otlp` in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` from `v0.12.1` to `v0.15.0`.\n  This replaces the use of the now deprecated `InstrumentationLibrary` and `InstrumentationLibraryMetrics` types and fields in the proto library with the equivalent `InstrumentationScope` and `ScopeMetrics`. (#2748)\n\n## [1.6.3] - 2022-04-07\n\n### Fixed\n\n- Allow non-comparable global `MeterProvider`, `TracerProvider`, and `TextMapPropagator` types to be set. (#2772, #2773)\n\n## [1.6.2] - 2022-04-06\n\n### Changed\n\n- Don't panic anymore when setting a global TracerProvider or TextMapPropagator to itself. (#2749)\n- Upgrade `go.opentelemetry.io/proto/otlp` in `go.opentelemetry.io/otel/exporters/otlp/otlptrace` from `v0.12.1` to `v0.15.0`.\n  This replaces the use of the now deprecated `InstrumentationLibrary` and `InstrumentationLibrarySpans` types and fields in the proto library with the equivalent `InstrumentationScope` and `ScopeSpans`. (#2748)\n\n## [1.6.1] - 2022-03-28\n\n### Fixed\n\n- The `go.opentelemetry.io/otel/schema/*` packages now use the correct schema URL for their `SchemaURL` constant.\n  Instead of using `\"https://opentelemetry.io/schemas/v<version>\"` they now use the correct URL without a `v` prefix, `\"https://opentelemetry.io/schemas/<version>\"`. (#2743, #2744)\n\n### Security\n\n- Upgrade `go.opentelemetry.io/proto/otlp` from `v0.12.0` to `v0.12.1`.\n  This includes an indirect upgrade of `github.com/grpc-ecosystem/grpc-gateway` which resolves [a vulnerability](https://nvd.nist.gov/vuln/detail/CVE-2019-11254) from `gopkg.in/yaml.v2` in version `v2.2.3`. (#2724, #2728)\n\n## [1.6.0/0.28.0] - 2022-03-23\n\n### ⚠️ Notice ⚠️\n\nThis update is a breaking change of the unstable Metrics API.\nCode instrumented with the `go.opentelemetry.io/otel/metric` will need to be modified.\n\n### Added\n\n- Add metrics exponential histogram support.\n  New mapping functions have been made available in `sdk/metric/aggregator/exponential/mapping` for other OpenTelemetry projects to take dependencies on. (#2502)\n- Add Go 1.18 to our compatibility tests. (#2679)\n- Allow configuring the Sampler with the `OTEL_TRACES_SAMPLER` and `OTEL_TRACES_SAMPLER_ARG` environment variables. (#2305, #2517)\n- Add the `metric/global` for obtaining and setting the global `MeterProvider`. (#2660)\n\n### Changed\n\n- The metrics API has been significantly changed to match the revised OpenTelemetry specification.\n  High-level changes include:\n\n  - Synchronous and asynchronous instruments are now handled by independent `InstrumentProvider`s.\n    These `InstrumentProvider`s are managed with a `Meter`.\n  - Synchronous and asynchronous instruments are grouped into their own packages based on value types.\n  - Asynchronous callbacks can now be registered with a `Meter`.\n\n  Be sure to check out the metric module documentation for more information on how to use the revised API. (#2587, #2660)\n\n### Fixed\n\n- Fallback to general attribute limits when span specific ones are not set in the environment. (#2675, #2677)\n\n## [1.5.0] - 2022-03-16\n\n### Added\n\n- Log the Exporters configuration in the TracerProviders message. (#2578)\n- Added support to configure the span limits with environment variables.\n  The following environment variables are supported. (#2606, #2637)\n  - `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT`\n  - `OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT`\n  - `OTEL_SPAN_EVENT_COUNT_LIMIT`\n  - `OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT`\n  - `OTEL_SPAN_LINK_COUNT_LIMIT`\n  - `OTEL_LINK_ATTRIBUTE_COUNT_LIMIT`\n\n  If the provided environment variables are invalid (negative), the default values would be used.\n- Rename the `gc` runtime name to `go` (#2560)\n- Add resource container ID detection. (#2418)\n- Add span attribute value length limit.\n  The new `AttributeValueLengthLimit` field is added to the `\"go.opentelemetry.io/otel/sdk/trace\".SpanLimits` type to configure this limit for a `TracerProvider`.\n  The default limit for this resource is \"unlimited\". (#2637)\n- Add the `WithRawSpanLimits` option to `go.opentelemetry.io/otel/sdk/trace`.\n  This option replaces the `WithSpanLimits` option.\n  Zero or negative values will not be changed to the default value like `WithSpanLimits` does.\n  Setting a limit to zero will effectively disable the related resource it limits and setting to a negative value will mean that resource is unlimited.\n  Consequentially, limits should be constructed using `NewSpanLimits` and updated accordingly. (#2637)\n\n### Changed\n\n- Drop oldest tracestate `Member` when capacity is reached. (#2592)\n- Add event and link drop counts to the exported data from the `oltptrace` exporter. (#2601)\n- Unify path cleaning functionally in the `otlpmetric` and `otlptrace` configuration. (#2639)\n- Change the debug message from the `sdk/trace.BatchSpanProcessor` to reflect the count is cumulative. (#2640)\n- Introduce new internal `envconfig` package for OTLP exporters. (#2608)\n- If `http.Request.Host` is empty, fall back to use `URL.Host` when populating `http.host` in the `semconv` packages. (#2661)\n\n### Fixed\n\n- Remove the OTLP trace exporter limit of SpanEvents when exporting. (#2616)\n- Default to port `4318` instead of `4317` for the `otlpmetrichttp` and `otlptracehttp` client. (#2614, #2625)\n- Unlimited span limits are now supported (negative values). (#2636, #2637)\n\n### Deprecated\n\n- Deprecated `\"go.opentelemetry.io/otel/sdk/trace\".WithSpanLimits`.\n  Use `WithRawSpanLimits` instead.\n  That option allows setting unlimited and zero limits, this option does not.\n  This option will be kept until the next major version incremented release. (#2637)\n\n## [1.4.1] - 2022-02-16\n\n### Fixed\n\n- Fix race condition in reading the dropped spans number for the `BatchSpanProcessor`. (#2615)\n\n## [1.4.0] - 2022-02-11\n\n### Added\n\n- Use `OTEL_EXPORTER_ZIPKIN_ENDPOINT` environment variable to specify zipkin collector endpoint. (#2490)\n- Log the configuration of `TracerProvider`s, and `Tracer`s for debugging.\n  To enable use a logger with Verbosity (V level) `>=1`. (#2500)\n- Added support to configure the batch span-processor with environment variables.\n  The following environment variables are used. (#2515)\n  - `OTEL_BSP_SCHEDULE_DELAY`\n  - `OTEL_BSP_EXPORT_TIMEOUT`\n  - `OTEL_BSP_MAX_QUEUE_SIZE`.\n  - `OTEL_BSP_MAX_EXPORT_BATCH_SIZE`\n\n### Changed\n\n- Zipkin exporter exports `Resource` attributes in the `Tags` field. (#2589)\n\n### Deprecated\n\n- Deprecate module the `go.opentelemetry.io/otel/sdk/export/metric`.\n  Use the `go.opentelemetry.io/otel/sdk/metric` module instead. (#2382)\n- Deprecate `\"go.opentelemetry.io/otel/sdk/metric\".AtomicFieldOffsets`. (#2445)\n\n### Fixed\n\n- Fixed the instrument kind for noop async instruments to correctly report an implementation. (#2461)\n- Fix UDP packets overflowing with Jaeger payloads. (#2489, #2512)\n- Change the `otlpmetric.Client` interface's `UploadMetrics` method to accept a single `ResourceMetrics` instead of a slice of them. (#2491)\n- Specify explicit buckets in Prometheus example, fixing issue where example only has `+inf` bucket. (#2419, #2493)\n- W3C baggage will now decode urlescaped values. (#2529)\n- Baggage members are now only validated once, when calling `NewMember` and not also when adding it to the baggage itself. (#2522)\n- The order attributes are dropped from spans in the `go.opentelemetry.io/otel/sdk/trace` package when capacity is reached is fixed to be in compliance with the OpenTelemetry specification.\n  Instead of dropping the least-recently-used attribute, the last added attribute is dropped.\n  This drop order still only applies to attributes with unique keys not already contained in the span.\n  If an attribute is added with a key already contained in the span, that attribute is updated to the new value being added. (#2576)\n\n### Removed\n\n- Updated `go.opentelemetry.io/proto/otlp` from `v0.11.0` to `v0.12.0`. This version removes a number of deprecated methods. (#2546)\n  - [`Metric.GetIntGauge()`](https://pkg.go.dev/go.opentelemetry.io/proto/otlp@v0.11.0/metrics/v1#Metric.GetIntGauge)\n  - [`Metric.GetIntHistogram()`](https://pkg.go.dev/go.opentelemetry.io/proto/otlp@v0.11.0/metrics/v1#Metric.GetIntHistogram)\n  - [`Metric.GetIntSum()`](https://pkg.go.dev/go.opentelemetry.io/proto/otlp@v0.11.0/metrics/v1#Metric.GetIntSum)\n\n## [1.3.0] - 2021-12-10\n\n### ⚠️ Notice ⚠️\n\nWe have updated the project minimum supported Go version to 1.16\n\n### Added\n\n- Added an internal Logger.\n  This can be used by the SDK and API to provide users with feedback of the internal state.\n  To enable verbose logs configure the logger which will print V(1) logs. For debugging information configure to print V(5) logs. (#2343)\n- Add the `WithRetry` `Option` and the `RetryConfig` type to the `go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp` package to specify retry behavior consistently. (#2425)\n- Add `SpanStatusFromHTTPStatusCodeAndSpanKind` to all `semconv` packages to return a span status code similar to `SpanStatusFromHTTPStatusCode`, but exclude `4XX` HTTP errors as span errors if the span is of server kind. (#2296)\n\n### Changed\n\n- The `\"go.opentelemetry.io/otel/exporter/otel/otlptrace/otlptracegrpc\".Client` now uses the underlying gRPC `ClientConn` to handle name resolution, TCP connection establishment (with retries and backoff) and TLS handshakes, and handling errors on established connections by re-resolving the name and reconnecting. (#2329)\n- The `\"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetricgrpc\".Client` now uses the underlying gRPC `ClientConn` to handle name resolution, TCP connection establishment (with retries and backoff) and TLS handshakes, and handling errors on established connections by re-resolving the name and reconnecting. (#2425)\n- The `\"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetricgrpc\".RetrySettings` type is renamed to `RetryConfig`. (#2425)\n- The `go.opentelemetry.io/otel/exporter/otel/*` gRPC exporters now default to using the host's root CA set if none are provided by the user and `WithInsecure` is not specified. (#2432)\n- Change `resource.Default` to be evaluated the first time it is called, rather than on import. This allows the caller the option to update `OTEL_RESOURCE_ATTRIBUTES` first, such as with `os.Setenv`. (#2371)\n\n### Fixed\n\n- The `go.opentelemetry.io/otel/exporter/otel/*` exporters are updated to handle per-signal and universal endpoints according to the OpenTelemetry specification.\n  Any per-signal endpoint set via an `OTEL_EXPORTER_OTLP_<signal>_ENDPOINT` environment variable is now used without modification of the path.\n  When `OTEL_EXPORTER_OTLP_ENDPOINT` is set, if it contains a path, that path is used as a base path which per-signal paths are appended to. (#2433)\n- Basic metric controller updated to use sync.Map to avoid blocking calls (#2381)\n- The `go.opentelemetry.io/otel/exporter/jaeger` correctly sets the `otel.status_code` value to be a string of `ERROR` or `OK` instead of an integer code. (#2439, #2440)\n\n### Deprecated\n\n- Deprecated the `\"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp\".WithMaxAttempts` `Option`, use the new `WithRetry` `Option` instead. (#2425)\n- Deprecated the `\"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp\".WithBackoff` `Option`, use the new `WithRetry` `Option` instead. (#2425)\n\n### Removed\n\n- Remove the metric Processor's ability to convert cumulative to delta aggregation temporality. (#2350)\n- Remove the metric Bound Instruments interface and implementations. (#2399)\n- Remove the metric MinMaxSumCount kind aggregation and the corresponding OTLP export path. (#2423)\n- Metric SDK removes the \"exact\" aggregator for histogram instruments, as it performed a non-standard aggregation for OTLP export (creating repeated Gauge points) and worked its way into a number of confusing examples. (#2348)\n\n## [1.2.0] - 2021-11-12\n\n### Changed\n\n- Metric SDK `export.ExportKind`, `export.ExportKindSelector` types have been renamed to `aggregation.Temporality` and `aggregation.TemporalitySelector` respectively to keep in line with current specification and protocol along with built-in selectors (e.g., `aggregation.CumulativeTemporalitySelector`, ...). (#2274)\n- The Metric `Exporter` interface now requires a `TemporalitySelector` method instead of an `ExportKindSelector`. (#2274)\n- Metrics API cleanup. The `metric/sdkapi` package has been created to relocate the API-to-SDK interface:\n  - The following interface types simply moved from `metric` to `metric/sdkapi`: `Descriptor`, `MeterImpl`, `InstrumentImpl`, `SyncImpl`, `BoundSyncImpl`, `AsyncImpl`, `AsyncRunner`, `AsyncSingleRunner`, and `AsyncBatchRunner`\n  - The following struct types moved and are replaced with type aliases, since they are exposed to the user: `Observation`, `Measurement`.\n  - The No-op implementations of sync and async instruments are no longer exported, new functions `sdkapi.NewNoopAsyncInstrument()` and `sdkapi.NewNoopSyncInstrument()` are provided instead. (#2271)\n- Update the SDK `BatchSpanProcessor` to export all queued spans when `ForceFlush` is called. (#2080, #2335)\n\n### Added\n\n- Add the `\"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc\".WithGRPCConn` option so the exporter can reuse an existing gRPC connection. (#2002)\n- Added a new `schema` module to help parse Schema Files in OTEP 0152 format. (#2267)\n- Added a new `MapCarrier` to the `go.opentelemetry.io/otel/propagation` package to hold propagated cross-cutting concerns as a `map[string]string` held in memory. (#2334)\n\n## [1.1.0] - 2021-10-27\n\n### Added\n\n- Add the `\"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc\".WithGRPCConn` option so the exporter can reuse an existing gRPC connection. (#2002)\n- Add the `go.opentelemetry.io/otel/semconv/v1.7.0` package.\n  The package contains semantic conventions from the `v1.7.0` version of the OpenTelemetry specification. (#2320)\n- Add the `go.opentelemetry.io/otel/semconv/v1.6.1` package.\n  The package contains semantic conventions from the `v1.6.1` version of the OpenTelemetry specification. (#2321)\n- Add the `go.opentelemetry.io/otel/semconv/v1.5.0` package.\n  The package contains semantic conventions from the `v1.5.0` version of the OpenTelemetry specification. (#2322)\n  - When upgrading from the `semconv/v1.4.0` package note the following name changes:\n    - `K8SReplicasetUIDKey` -> `K8SReplicaSetUIDKey`\n    - `K8SReplicasetNameKey` -> `K8SReplicaSetNameKey`\n    - `K8SStatefulsetUIDKey` -> `K8SStatefulSetUIDKey`\n    - `k8SStatefulsetNameKey` -> `K8SStatefulSetNameKey`\n    - `K8SDaemonsetUIDKey` -> `K8SDaemonSetUIDKey`\n    - `K8SDaemonsetNameKey` -> `K8SDaemonSetNameKey`\n\n### Changed\n\n- Links added to a span will be dropped by the SDK if they contain an invalid span context (#2275).\n\n### Fixed\n\n- The `\"go.opentelemetry.io/otel/semconv/v1.4.0\".HTTPServerAttributesFromHTTPRequest` now correctly only sets the HTTP client IP attribute even if the connection was routed with proxies and there are multiple addresses in the `X-Forwarded-For` header. (#2282, #2284)\n- The `\"go.opentelemetry.io/otel/semconv/v1.4.0\".NetAttributesFromHTTPRequest` function correctly handles IPv6 addresses as IP addresses and sets the correct net peer IP instead of the net peer hostname attribute. (#2283, #2285)\n- The simple span processor shutdown method deterministically returns the exporter error status if it simultaneously finishes when the deadline is reached. (#2290, #2289)\n\n## [1.0.1] - 2021-10-01\n\n### Fixed\n\n- json stdout exporter no longer crashes due to concurrency bug. (#2265)\n\n## [Metrics 0.24.0] - 2021-10-01\n\n### Changed\n\n- NoopMeterProvider is now private and NewNoopMeterProvider must be used to obtain a noopMeterProvider. (#2237)\n- The Metric SDK `Export()` function takes a new two-level reader interface for iterating over results one instrumentation library at a time. (#2197)\n  - The former `\"go.opentelemetry.io/otel/sdk/export/metric\".CheckpointSet` is renamed `Reader`.\n  - The new interface is named `\"go.opentelemetry.io/otel/sdk/export/metric\".InstrumentationLibraryReader`.\n\n## [1.0.0] - 2021-09-20\n\nThis is the first stable release for the project.\nThis release includes an API and SDK for the tracing signal that will comply with the stability guarantees defined by the projects [versioning policy](./VERSIONING.md).\n\n### Added\n\n- OTLP trace exporter now sets the `SchemaURL` field in the exported telemetry if the Tracer has `WithSchemaURL` option. (#2242)\n\n### Fixed\n\n- Slice-valued attributes can correctly be used as map keys. (#2223)\n\n### Removed\n\n- Removed the `\"go.opentelemetry.io/otel/exporters/zipkin\".WithSDKOptions` function. (#2248)\n- Removed the deprecated package `go.opentelemetry.io/otel/oteltest`. (#2234)\n- Removed the deprecated package `go.opentelemetry.io/otel/bridge/opencensus/utils`. (#2233)\n- Removed deprecated functions, types, and methods from `go.opentelemetry.io/otel/attribute` package.\n  Use the typed functions and methods added to the package instead. (#2235)\n  - The `Key.Array` method is removed.\n  - The `Array` function is removed.\n  - The `Any` function is removed.\n  - The `ArrayValue` function is removed.\n  - The `AsArray` function is removed.\n\n## [1.0.0-RC3] - 2021-09-02\n\n### Added\n\n- Added `ErrorHandlerFunc` to use a function as an `\"go.opentelemetry.io/otel\".ErrorHandler`. (#2149)\n- Added `\"go.opentelemetry.io/otel/trace\".WithStackTrace` option to add a stack trace when using `span.RecordError` or when panic is handled in `span.End`. (#2163)\n- Added typed slice attribute types and functionality to the `go.opentelemetry.io/otel/attribute` package to replace the existing array type and functions. (#2162)\n  - `BoolSlice`, `IntSlice`, `Int64Slice`, `Float64Slice`, and `StringSlice` replace the use of the `Array` function in the package.\n- Added the `go.opentelemetry.io/otel/example/fib` example package.\n  Included is an example application that computes Fibonacci numbers. (#2203)\n\n### Changed\n\n- Metric instruments have been renamed to match the (feature-frozen) metric API specification:\n  - ValueRecorder becomes Histogram\n  - ValueObserver becomes Gauge\n  - SumObserver becomes CounterObserver\n  - UpDownSumObserver becomes UpDownCounterObserver\n  The API exported from this project is still considered experimental. (#2202)\n- Metric SDK/API implementation type `InstrumentKind` moves into `sdkapi` sub-package. (#2091)\n- The Metrics SDK export record no longer contains a Resource pointer, the SDK `\"go.opentelemetry.io/otel/sdk/trace/export/metric\".Exporter.Export()` function for push-based exporters now takes a single Resource argument, pull-based exporters use `\"go.opentelemetry.io/otel/sdk/metric/controller/basic\".Controller.Resource()`. (#2120)\n- The JSON output of the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` is harmonized now such that the output is \"plain\" JSON objects after each other of the form `{ ... } { ... } { ... }`. Earlier the JSON objects describing a span were wrapped in a slice for each `Exporter.ExportSpans` call, like `[ { ... } ][ { ... } { ... } ]`. Outputting JSON object directly after each other is consistent with JSON loggers, and a bit easier to parse and read. (#2196)\n- Update the `NewTracerConfig`, `NewSpanStartConfig`, `NewSpanEndConfig`, and `NewEventConfig` function in the `go.opentelemetry.io/otel/trace` package to return their respective configurations as structs instead of pointers to the struct. (#2212)\n\n### Deprecated\n\n- The `go.opentelemetry.io/otel/bridge/opencensus/utils` package is deprecated.\n  All functionality from this package now exists in the `go.opentelemetry.io/otel/bridge/opencensus` package.\n  The functions from that package should be used instead. (#2166)\n- The `\"go.opentelemetry.io/otel/attribute\".Array` function and the related `ARRAY` value type is deprecated.\n  Use the typed `*Slice` functions and types added to the package instead. (#2162)\n- The `\"go.opentelemetry.io/otel/attribute\".Any` function is deprecated.\n  Use the typed functions instead. (#2181)\n- The `go.opentelemetry.io/otel/oteltest` package is deprecated.\n  The `\"go.opentelemetry.io/otel/sdk/trace/tracetest\".SpanRecorder` can be registered with the default SDK (`go.opentelemetry.io/otel/sdk/trace`) as a `SpanProcessor` and used as a replacement for this deprecated package. (#2188)\n\n### Removed\n\n- Removed metrics test package `go.opentelemetry.io/otel/sdk/export/metric/metrictest`. (#2105)\n\n### Fixed\n\n- The `fromEnv` detector no longer throws an error when `OTEL_RESOURCE_ATTRIBUTES` environment variable is not set or empty. (#2138)\n- Setting the global `ErrorHandler` with `\"go.opentelemetry.io/otel\".SetErrorHandler` multiple times is now supported. (#2160, #2140)\n- The `\"go.opentelemetry.io/otel/attribute\".Any` function now supports `int32` values. (#2169)\n- Multiple calls to `\"go.opentelemetry.io/otel/sdk/metric/controller/basic\".WithResource()` are handled correctly, and when no resources are provided `\"go.opentelemetry.io/otel/sdk/resource\".Default()` is used. (#2120)\n- The `WithoutTimestamps` option for the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` exporter causes the exporter to correctly omit timestamps. (#2195)\n- Fixed typos in resources.go. (#2201)\n\n## [1.0.0-RC2] - 2021-07-26\n\n### Added\n\n- Added `WithOSDescription` resource configuration option to set OS (Operating System) description resource attribute (`os.description`). (#1840)\n- Added `WithOS` resource configuration option to set all OS (Operating System) resource attributes at once. (#1840)\n- Added the `WithRetry` option to the `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` package.\n  This option is a replacement for the removed `WithMaxAttempts` and `WithBackoff` options. (#2095)\n- Added API `LinkFromContext` to return Link which encapsulates SpanContext from provided context and also encapsulates attributes. (#2115)\n- Added a new `Link` type under the SDK `otel/sdk/trace` package that counts the number of attributes that were dropped for surpassing the `AttributePerLinkCountLimit` configured in the Span's `SpanLimits`.\n  This new type replaces the equal-named API `Link` type found in the `otel/trace` package for most usages within the SDK.\n  For example, instances of this type are now returned by the `Links()` function of `ReadOnlySpan`s provided in places like the `OnEnd` function of `SpanProcessor` implementations. (#2118)\n- Added the `SpanRecorder` type to the `go.opentelemetry.io/otel/skd/trace/tracetest` package.\n  This type can be used with the default SDK as a `SpanProcessor` during testing. (#2132)\n\n### Changed\n\n- The `SpanModels` function is now exported from the `go.opentelemetry.io/otel/exporters/zipkin` package to convert OpenTelemetry spans into Zipkin model spans. (#2027)\n- Rename the `\"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc\".RetrySettings` to `RetryConfig`. (#2095)\n\n### Deprecated\n\n- The `TextMapCarrier` and `TextMapPropagator` from the `go.opentelemetry.io/otel/oteltest` package and their associated creation functions (`TextMapCarrier`, `NewTextMapPropagator`) are deprecated. (#2114)\n- The `Harness` type from the `go.opentelemetry.io/otel/oteltest` package and its associated creation function, `NewHarness` are deprecated and will be removed in the next release. (#2123)\n- The `TraceStateFromKeyValues` function from the `go.opentelemetry.io/otel/oteltest` package is deprecated.\n  Use the `trace.ParseTraceState` function instead. (#2122)\n\n### Removed\n\n- Removed the deprecated package `go.opentelemetry.io/otel/exporters/trace/jaeger`. (#2020)\n- Removed the deprecated package `go.opentelemetry.io/otel/exporters/trace/zipkin`. (#2020)\n- Removed the `\"go.opentelemetry.io/otel/sdk/resource\".WithBuiltinDetectors` function.\n  The explicit `With*` options for every built-in detector should be used instead. (#2026 #2097)\n- Removed the `WithMaxAttempts` and `WithBackoff` options from the `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` package.\n  The retry logic of the package has been updated to match the `otlptracegrpc` package and accordingly a `WithRetry` option is added that should be used instead. (#2095)\n- Removed `DroppedAttributeCount` field from `otel/trace.Link` struct. (#2118)\n\n### Fixed\n\n- When using WithNewRoot, don't use the parent context for making sampling decisions. (#2032)\n- `oteltest.Tracer` now creates a valid `SpanContext` when using `WithNewRoot`. (#2073)\n- OS type detector now sets the correct `dragonflybsd` value for DragonFly BSD. (#2092)\n- The OTel span status is correctly transformed into the OTLP status in the `go.opentelemetry.io/otel/exporters/otlp/otlptrace` package.\n  This fix will by default set the status to `Unset` if it is not explicitly set to `Ok` or `Error`. (#2099 #2102)\n- The `Inject` method for the `\"go.opentelemetry.io/otel/propagation\".TraceContext` type no longer injects empty `tracestate` values. (#2108)\n- Use `6831` as default Jaeger agent port instead of `6832`. (#2131)\n\n## [Experimental Metrics v0.22.0] - 2021-07-19\n\n### Added\n\n- Adds HTTP support for OTLP metrics exporter. (#2022)\n\n### Removed\n\n- Removed the deprecated package `go.opentelemetry.io/otel/exporters/metric/prometheus`. (#2020)\n\n## [1.0.0-RC1] / 0.21.0 - 2021-06-18\n\nWith this release we are introducing a split in module versions.  The tracing API and SDK are entering the `v1.0.0` Release Candidate phase with `v1.0.0-RC1`\nwhile the experimental metrics API and SDK continue with `v0.x` releases at `v0.21.0`.  Modules at major version 1 or greater will not depend on modules\nwith major version 0.\n\n### Added\n\n- Adds `otlpgrpc.WithRetry`option for configuring the retry policy for transient errors on the otlp/gRPC exporter. (#1832)\n  - The following status codes are defined as transient errors:\n      | gRPC Status Code | Description |\n      | ---------------- | ----------- |\n      | 1  | Cancelled |\n      | 4  | Deadline Exceeded |\n      | 8  | Resource Exhausted |\n      | 10 | Aborted |\n      | 10 | Out of Range |\n      | 14 | Unavailable |\n      | 15 | Data Loss |\n- Added `Status` type to the `go.opentelemetry.io/otel/sdk/trace` package to represent the status of a span. (#1874)\n- Added `SpanStub` type and its associated functions to the `go.opentelemetry.io/otel/sdk/trace/tracetest` package.\n  This type can be used as a testing replacement for the `SpanSnapshot` that was removed from the `go.opentelemetry.io/otel/sdk/trace` package. (#1873)\n- Adds support for scheme in `OTEL_EXPORTER_OTLP_ENDPOINT` according to the spec. (#1886)\n- Adds `trace.WithSchemaURL` option for configuring the tracer with a Schema URL. (#1889)\n- Added an example of using OpenTelemetry Go as a trace context forwarder. (#1912)\n- `ParseTraceState` is added to the `go.opentelemetry.io/otel/trace` package.\n  It can be used to decode a `TraceState` from a `tracestate` header string value. (#1937)\n- Added `Len` method to the `TraceState` type in the `go.opentelemetry.io/otel/trace` package.\n  This method returns the number of list-members the `TraceState` holds. (#1937)\n- Creates package `go.opentelemetry.io/otel/exporters/otlp/otlptrace` that defines a trace exporter that uses a `otlptrace.Client` to send data.\n  Creates package `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` implementing a gRPC `otlptrace.Client` and offers convenience functions, `NewExportPipeline` and `InstallNewPipeline`, to setup and install a `otlptrace.Exporter` in tracing .(#1922)\n- Added `Baggage`, `Member`, and `Property` types to the `go.opentelemetry.io/otel/baggage` package along with their related functions. (#1967)\n- Added `ContextWithBaggage`, `ContextWithoutBaggage`, and `FromContext` functions to the `go.opentelemetry.io/otel/baggage` package.\n  These functions replace the `Set`, `Value`, `ContextWithValue`, `ContextWithoutValue`, and `ContextWithEmpty` functions from that package and directly work with the new `Baggage` type. (#1967)\n- The `OTEL_SERVICE_NAME` environment variable is the preferred source for `service.name`, used by the environment resource detector if a service name is present both there and in `OTEL_RESOURCE_ATTRIBUTES`. (#1969)\n- Creates package `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` implementing an HTTP `otlptrace.Client` and offers convenience functions, `NewExportPipeline` and `InstallNewPipeline`, to setup and install a `otlptrace.Exporter` in tracing. (#1963)\n- Changes `go.opentelemetry.io/otel/sdk/resource.NewWithAttributes` to require a schema URL. The old function is still available as `resource.NewSchemaless`. This is a breaking change. (#1938)\n- Several builtin resource detectors now correctly populate the schema URL. (#1938)\n- Creates package `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` that defines a metrics exporter that uses a `otlpmetric.Client` to send data.\n- Creates package `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` implementing a gRPC `otlpmetric.Client` and offers convenience functions, `New` and `NewUnstarted`, to create an `otlpmetric.Exporter`.(#1991)\n- Added `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` exporter. (#2005)\n- Added `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` exporter. (#2005)\n- Added a `TracerProvider()` method to the `\"go.opentelemetry.io/otel/trace\".Span` interface. This can be used to obtain a `TracerProvider` from a given span that utilizes the same trace processing pipeline.  (#2009)\n\n### Changed\n\n- Make `NewSplitDriver` from `go.opentelemetry.io/otel/exporters/otlp` take variadic arguments instead of a `SplitConfig` item.\n  `NewSplitDriver` now automatically implements an internal `noopDriver` for `SplitConfig` fields that are not initialized. (#1798)\n- `resource.New()` now creates a Resource without builtin detectors. Previous behavior is now achieved by using `WithBuiltinDetectors` Option. (#1810)\n- Move the `Event` type from the `go.opentelemetry.io/otel` package to the `go.opentelemetry.io/otel/sdk/trace` package. (#1846)\n- CI builds validate against last two versions of Go, dropping 1.14 and adding 1.16. (#1865)\n- BatchSpanProcessor now report export failures when calling `ForceFlush()` method. (#1860)\n- `Set.Encoded(Encoder)` no longer caches the result of an encoding. (#1855)\n- Renamed `CloudZoneKey` to `CloudAvailabilityZoneKey` in Resource semantic conventions according to spec. (#1871)\n- The `StatusCode` and `StatusMessage` methods of the `ReadOnlySpan` interface and the `Span` produced by the `go.opentelemetry.io/otel/sdk/trace` package have been replaced with a single `Status` method.\n  This method returns the status of a span using the new `Status` type. (#1874)\n- Updated `ExportSpans` method of the`SpanExporter` interface type to accept `ReadOnlySpan`s instead of the removed `SpanSnapshot`.\n  This brings the export interface into compliance with the specification in that it now accepts an explicitly immutable type instead of just an implied one. (#1873)\n- Unembed `SpanContext` in `Link`. (#1877)\n- Generate Semantic conventions from the specification YAML. (#1891)\n- Spans created by the global `Tracer` obtained from `go.opentelemetry.io/otel`, prior to a functioning `TracerProvider` being set, now propagate the span context from their parent if one exists. (#1901)\n- The `\"go.opentelemetry.io/otel\".Tracer` function now accepts tracer options. (#1902)\n- Move the `go.opentelemetry.io/otel/unit` package to `go.opentelemetry.io/otel/metric/unit`. (#1903)\n- Changed `go.opentelemetry.io/otel/trace.TracerConfig` to conform to the [Contributing guidelines](CONTRIBUTING.md#config.) (#1921)\n- Changed `go.opentelemetry.io/otel/trace.SpanConfig` to conform to the [Contributing guidelines](CONTRIBUTING.md#config). (#1921)\n- Changed `span.End()` now only accepts Options that are allowed at `End()`. (#1921)\n- Changed `go.opentelemetry.io/otel/metric.InstrumentConfig` to conform to the [Contributing guidelines](CONTRIBUTING.md#config). (#1921)\n- Changed `go.opentelemetry.io/otel/metric.MeterConfig` to conform to the [Contributing guidelines](CONTRIBUTING.md#config). (#1921)\n- Refactored option types according to the contribution style guide. (#1882)\n- Move the `go.opentelemetry.io/otel/trace.TraceStateFromKeyValues` function to the `go.opentelemetry.io/otel/oteltest` package.\n  This function is preserved for testing purposes where it may be useful to create a `TraceState` from `attribute.KeyValue`s, but it is not intended for production use.\n  The new `ParseTraceState` function should be used to create a `TraceState`. (#1931)\n- Updated `MarshalJSON` method of the `go.opentelemetry.io/otel/trace.TraceState` type to marshal the type into the string representation of the `TraceState`. (#1931)\n- The `TraceState.Delete` method from the `go.opentelemetry.io/otel/trace` package no longer returns an error in addition to a `TraceState`. (#1931)\n- Updated `Get` method of the `TraceState` type from the `go.opentelemetry.io/otel/trace` package to accept a `string` instead of an `attribute.Key` type. (#1931)\n- Updated `Insert` method of the `TraceState` type from the `go.opentelemetry.io/otel/trace` package to accept a pair of `string`s instead of an `attribute.KeyValue` type. (#1931)\n- Updated `Delete` method of the `TraceState` type from the `go.opentelemetry.io/otel/trace` package to accept a `string` instead of an `attribute.Key` type. (#1931)\n- Renamed `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/stdout` package. (#1985)\n- Renamed `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/metric/prometheus` package. (#1985)\n- Renamed `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/trace/jaeger` package. (#1985)\n- Renamed `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/trace/zipkin` package. (#1985)\n- Renamed `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/otlp` package. (#1985)\n- Renamed `NewUnstartedExporter` to `NewUnstarted` in the `go.opentelemetry.io/otel/exporters/otlp` package. (#1985)\n- The `go.opentelemetry.io/otel/semconv` package has been moved to `go.opentelemetry.io/otel/semconv/v1.4.0` to allow for multiple [telemetry schema](https://github.com/open-telemetry/oteps/blob/main/text/0152-telemetry-schemas.md) versions to be used concurrently. (#1987)\n- Metrics test helpers in `go.opentelemetry.io/otel/oteltest` have been moved to `go.opentelemetry.io/otel/metric/metrictest`. (#1988)\n\n### Deprecated\n\n- The `go.opentelemetry.io/otel/exporters/metric/prometheus` is deprecated, use `go.opentelemetry.io/otel/exporters/prometheus` instead. (#1993)\n- The `go.opentelemetry.io/otel/exporters/trace/jaeger` is deprecated, use `go.opentelemetry.io/otel/exporters/jaeger` instead. (#1993)\n- The `go.opentelemetry.io/otel/exporters/trace/zipkin` is deprecated, use `go.opentelemetry.io/otel/exporters/zipkin` instead. (#1993)\n\n### Removed\n\n- Removed `resource.WithoutBuiltin()`. Use `resource.New()`. (#1810)\n- Unexported types `resource.FromEnv`, `resource.Host`, and `resource.TelemetrySDK`, Use the corresponding `With*()` to use individually. (#1810)\n- Removed the `Tracer` and `IsRecording` method from the `ReadOnlySpan` in the `go.opentelemetry.io/otel/sdk/trace`.\n  The `Tracer` method is not a required to be included in this interface and given the mutable nature of the tracer that is associated with a span, this method is not appropriate.\n  The `IsRecording` method returns if the span is recording or not.\n  A read-only span value does not need to know if updates to it will be recorded or not.\n  By definition, it cannot be updated so there is no point in communicating if an update is recorded. (#1873)\n- Removed the `SpanSnapshot` type from the `go.opentelemetry.io/otel/sdk/trace` package.\n  The use of this type has been replaced with the use of the explicitly immutable `ReadOnlySpan` type.\n  When a concrete representation of a read-only span is needed for testing, the newly added `SpanStub` in the `go.opentelemetry.io/otel/sdk/trace/tracetest` package should be used. (#1873)\n- Removed the `Tracer` method from the `Span` interface in the `go.opentelemetry.io/otel/trace` package.\n  Using the same tracer that created a span introduces the error where an instrumentation library's `Tracer` is used by other code instead of their own.\n  The `\"go.opentelemetry.io/otel\".Tracer` function or a `TracerProvider` should be used to acquire a library specific `Tracer` instead. (#1900)\n  - The `TracerProvider()` method on the `Span` interface may also be used to obtain a `TracerProvider` using the same trace processing pipeline. (#2009)\n- The `http.url` attribute generated by `HTTPClientAttributesFromHTTPRequest` will no longer include username or password information. (#1919)\n- Removed `IsEmpty` method of the `TraceState` type in the `go.opentelemetry.io/otel/trace` package in favor of using the added `TraceState.Len` method. (#1931)\n- Removed `Set`, `Value`, `ContextWithValue`, `ContextWithoutValue`, and `ContextWithEmpty` functions in the `go.opentelemetry.io/otel/baggage` package.\n  Handling of baggage is now done using the added `Baggage` type and related context functions (`ContextWithBaggage`, `ContextWithoutBaggage`, and `FromContext`) in that package. (#1967)\n- The `InstallNewPipeline` and `NewExportPipeline` creation functions in all the exporters (prometheus, otlp, stdout, jaeger, and zipkin) have been removed.\n  These functions were deemed premature attempts to provide convenience that did not achieve this aim. (#1985)\n- The `go.opentelemetry.io/otel/exporters/otlp` exporter has been removed.  Use `go.opentelemetry.io/otel/exporters/otlp/otlptrace` instead. (#1990)\n- The `go.opentelemetry.io/otel/exporters/stdout` exporter has been removed.  Use `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` or `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` instead. (#2005)\n\n### Fixed\n\n- Only report errors from the `\"go.opentelemetry.io/otel/sdk/resource\".Environment` function when they are not `nil`. (#1850, #1851)\n- The `Shutdown` method of the simple `SpanProcessor` in the `go.opentelemetry.io/otel/sdk/trace` package now honors the context deadline or cancellation. (#1616, #1856)\n- BatchSpanProcessor now drops span batches that failed to be exported. (#1860)\n- Use `http://localhost:14268/api/traces` as default Jaeger collector endpoint instead of `http://localhost:14250`. (#1898)\n- Allow trailing and leading whitespace in the parsing of a `tracestate` header. (#1931)\n- Add logic to determine if the channel is closed to fix Jaeger exporter test panic with close closed channel. (#1870, #1973)\n- Avoid transport security when OTLP endpoint is a Unix socket. (#2001)\n\n### Security\n\n## [0.20.0] - 2021-04-23\n\n### Added\n\n- The OTLP exporter now has two new convenience functions, `NewExportPipeline` and `InstallNewPipeline`, setup and install the exporter in tracing and metrics pipelines. (#1373)\n- Adds semantic conventions for exceptions. (#1492)\n- Added Jaeger Environment variables: `OTEL_EXPORTER_JAEGER_AGENT_HOST`, `OTEL_EXPORTER_JAEGER_AGENT_PORT`\n  These environment variables can be used to override Jaeger agent hostname and port (#1752)\n- Option `ExportTimeout` was added to batch span processor. (#1755)\n- `trace.TraceFlags` is now a defined type over `byte` and `WithSampled(bool) TraceFlags` and `IsSampled() bool` methods have been added to it. (#1770)\n- The `Event` and `Link` struct types from the `go.opentelemetry.io/otel` package now include a `DroppedAttributeCount` field to record the number of attributes that were not recorded due to configured limits being reached. (#1771)\n- The Jaeger exporter now reports dropped attributes for a Span event in the exported log. (#1771)\n- Adds test to check BatchSpanProcessor ignores `OnEnd` and `ForceFlush` post `Shutdown`. (#1772)\n- Extract resource attributes from the `OTEL_RESOURCE_ATTRIBUTES` environment variable and merge them with the `resource.Default` resource as well as resources provided to the `TracerProvider` and metric `Controller`. (#1785)\n- Added `WithOSType` resource configuration option to set OS (Operating System) type resource attribute (`os.type`). (#1788)\n- Added `WithProcess*` resource configuration options to set Process resource attributes. (#1788)\n  - `process.pid`\n  - `process.executable.name`\n  - `process.executable.path`\n  - `process.command_args`\n  - `process.owner`\n  - `process.runtime.name`\n  - `process.runtime.version`\n  - `process.runtime.description`\n- Adds `k8s.node.name` and `k8s.node.uid` attribute keys to the `semconv` package. (#1789)\n- Added support for configuring OTLP/HTTP and OTLP/gRPC Endpoints, TLS Certificates, Headers, Compression and Timeout via Environment Variables. (#1758, #1769 and #1811)\n  - `OTEL_EXPORTER_OTLP_ENDPOINT`\n  - `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`\n  - `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`\n  - `OTEL_EXPORTER_OTLP_HEADERS`\n  - `OTEL_EXPORTER_OTLP_TRACES_HEADERS`\n  - `OTEL_EXPORTER_OTLP_METRICS_HEADERS`\n  - `OTEL_EXPORTER_OTLP_COMPRESSION`\n  - `OTEL_EXPORTER_OTLP_TRACES_COMPRESSION`\n  - `OTEL_EXPORTER_OTLP_METRICS_COMPRESSION`\n  - `OTEL_EXPORTER_OTLP_TIMEOUT`\n  - `OTEL_EXPORTER_OTLP_TRACES_TIMEOUT`\n  - `OTEL_EXPORTER_OTLP_METRICS_TIMEOUT`\n  - `OTEL_EXPORTER_OTLP_CERTIFICATE`\n  - `OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE`\n  - `OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE`\n- Adds `otlpgrpc.WithTimeout` option for configuring timeout to the otlp/gRPC exporter. (#1821)\n- Adds `jaeger.WithMaxPacketSize` option for configuring maximum UDP packet size used when connecting to the Jaeger agent. (#1853)\n\n### Fixed\n\n- The `Span.IsRecording` implementation from `go.opentelemetry.io/otel/sdk/trace` always returns false when not being sampled. (#1750)\n- The Jaeger exporter now correctly sets tags for the Span status code and message.\n  This means it uses the correct tag keys (`\"otel.status_code\"`, `\"otel.status_description\"`) and does not set the status message as a tag unless it is set on the span. (#1761)\n- The Jaeger exporter now correctly records Span event's names using the `\"event\"` key for a tag.\n  Additionally, this tag is overridden, as specified in the OTel specification, if the event contains an attribute with that key. (#1768)\n- Zipkin Exporter: Ensure mapping between OTel and Zipkin span data complies with the specification. (#1688)\n- Fixed typo for default service name in Jaeger Exporter. (#1797)\n- Fix flaky OTLP for the reconnnection of the client connection. (#1527, #1814)\n- Fix Jaeger exporter dropping of span batches that exceed the UDP packet size limit.\n  Instead, the exporter now splits the batch into smaller sendable batches. (#1828)\n\n### Changed\n\n- Span `RecordError` now records an `exception` event to comply with the semantic convention specification. (#1492)\n- Jaeger exporter was updated to use thrift v0.14.1. (#1712)\n- Migrate from using internally built and maintained version of the OTLP to the one hosted at `go.opentelemetry.io/proto/otlp`. (#1713)\n- Migrate from using `github.com/gogo/protobuf` to `google.golang.org/protobuf` to match `go.opentelemetry.io/proto/otlp`. (#1713)\n- The storage of a local or remote Span in a `context.Context` using its SpanContext is unified to store just the current Span.\n  The Span's SpanContext can now self-identify as being remote or not.\n  This means that `\"go.opentelemetry.io/otel/trace\".ContextWithRemoteSpanContext` will now overwrite any existing current Span, not just existing remote Spans, and make it the current Span in a `context.Context`. (#1731)\n- Improve OTLP/gRPC exporter connection errors. (#1737)\n- Information about a parent span context in a `\"go.opentelemetry.io/otel/export/trace\".SpanSnapshot` is unified in a new `Parent` field.\n  The existing `ParentSpanID` and `HasRemoteParent` fields are removed in favor of this. (#1748)\n- The `ParentContext` field of the `\"go.opentelemetry.io/otel/sdk/trace\".SamplingParameters` is updated to hold a `context.Context` containing the parent span.\n  This changes it to make `SamplingParameters` conform with the OpenTelemetry specification. (#1749)\n- Updated Jaeger Environment Variables: `JAEGER_ENDPOINT`, `JAEGER_USER`, `JAEGER_PASSWORD`\n  to `OTEL_EXPORTER_JAEGER_ENDPOINT`, `OTEL_EXPORTER_JAEGER_USER`, `OTEL_EXPORTER_JAEGER_PASSWORD` in compliance with OTel specification. (#1752)\n- Modify `BatchSpanProcessor.ForceFlush` to abort after timeout/cancellation. (#1757)\n- The `DroppedAttributeCount` field of the `Span` in the `go.opentelemetry.io/otel` package now only represents the number of attributes dropped for the span itself.\n  It no longer is a conglomerate of itself, events, and link attributes that have been dropped. (#1771)\n- Make `ExportSpans` in Jaeger Exporter honor context deadline. (#1773)\n- Modify Zipkin Exporter default service name, use default resource's serviceName instead of empty. (#1777)\n- The `go.opentelemetry.io/otel/sdk/export/trace` package is merged into the `go.opentelemetry.io/otel/sdk/trace` package. (#1778)\n- The prometheus.InstallNewPipeline example is moved from comment to example test (#1796)\n- The convenience functions for the stdout exporter have been updated to return the `TracerProvider` implementation and enable the shutdown of the exporter. (#1800)\n- Replace the flush function returned from the Jaeger exporter's convenience creation functions (`InstallNewPipeline` and `NewExportPipeline`) with the `TracerProvider` implementation they create.\n  This enables the caller to shutdown and flush using the related `TracerProvider` methods. (#1822)\n- Updated the Jaeger exporter to have a default endpoint, `http://localhost:14250`, for the collector. (#1824)\n- Changed the function `WithCollectorEndpoint` in the Jaeger exporter to no longer accept an endpoint as an argument.\n  The endpoint can be passed with the `CollectorEndpointOption` using the `WithEndpoint` function or by setting the `OTEL_EXPORTER_JAEGER_ENDPOINT` environment variable value appropriately. (#1824)\n- The Jaeger exporter no longer batches exported spans itself, instead it relies on the SDK's `BatchSpanProcessor` for this functionality. (#1830)\n- The Jaeger exporter creation functions (`NewRawExporter`, `NewExportPipeline`, and `InstallNewPipeline`) no longer accept the removed `Option` type as a variadic argument. (#1830)\n\n### Removed\n\n- Removed Jaeger Environment variables: `JAEGER_SERVICE_NAME`, `JAEGER_DISABLED`, `JAEGER_TAGS`\n  These environment variables will no longer be used to override values of the Jaeger exporter (#1752)\n- No longer set the links for a `Span` in `go.opentelemetry.io/otel/sdk/trace` that is configured to be a new root.\n  This is unspecified behavior that the OpenTelemetry community plans to standardize in the future.\n  To prevent backwards incompatible changes when it is specified, these links are removed. (#1726)\n- Setting error status while recording error with Span from oteltest package. (#1729)\n- The concept of a remote and local Span stored in a context is unified to just the current Span.\n  Because of this `\"go.opentelemetry.io/otel/trace\".RemoteSpanContextFromContext` is removed as it is no longer needed.\n  Instead, `\"go.opentelemetry.io/otel/trace\".SpanContextFromContex` can be used to return the current Span.\n  If needed, that Span's `SpanContext.IsRemote()` can then be used to determine if it is remote or not. (#1731)\n- The `HasRemoteParent` field of the `\"go.opentelemetry.io/otel/sdk/trace\".SamplingParameters` is removed.\n  This field is redundant to the information returned from the `Remote` method of the `SpanContext` held in the `ParentContext` field. (#1749)\n- The `trace.FlagsDebug` and `trace.FlagsDeferred` constants have been removed and will be localized to the B3 propagator. (#1770)\n- Remove `Process` configuration, `WithProcessFromEnv` and `ProcessFromEnv`, and type from the Jaeger exporter package.\n  The information that could be configured in the `Process` struct should be configured in a `Resource` instead. (#1776, #1804)\n- Remove the `WithDisabled` option from the Jaeger exporter.\n  To disable the exporter unregister it from the `TracerProvider` or use a no-operation `TracerProvider`. (#1806)\n- Removed the functions `CollectorEndpointFromEnv` and `WithCollectorEndpointOptionFromEnv` from the Jaeger exporter.\n  These functions for retrieving specific environment variable values are redundant of other internal functions and\n  are not intended for end user use. (#1824)\n- Removed the Jaeger exporter `WithSDKOptions` `Option`.\n  This option was used to set SDK options for the exporter creation convenience functions.\n  These functions are provided as a way to easily setup or install the exporter with what are deemed reasonable SDK settings for common use cases.\n  If the SDK needs to be configured differently, the `NewRawExporter` function and direct setup of the SDK with the desired settings should be used. (#1825)\n- The `WithBufferMaxCount` and `WithBatchMaxCount` `Option`s from the Jaeger exporter are removed.\n  The exporter no longer batches exports, instead relying on the SDK's `BatchSpanProcessor` for this functionality. (#1830)\n- The Jaeger exporter `Option` type is removed.\n  The type is no longer used by the exporter to configure anything.\n  All the previous configurations these options provided were duplicates of SDK configuration.\n  They have been removed in favor of using the SDK configuration and focuses the exporter configuration to be only about the endpoints it will send telemetry to. (#1830)\n\n## [0.19.0] - 2021-03-18\n\n### Added\n\n- Added `Marshaler` config option to `otlphttp` to enable otlp over json or protobufs. (#1586)\n- A `ForceFlush` method to the `\"go.opentelemetry.io/otel/sdk/trace\".TracerProvider` to flush all registered `SpanProcessor`s. (#1608)\n- Added `WithSampler` and `WithSpanLimits` to tracer provider. (#1633, #1702)\n- `\"go.opentelemetry.io/otel/trace\".SpanContext` now has a `remote` property, and `IsRemote()` predicate, that is true when the `SpanContext` has been extracted from remote context data. (#1701)\n- A `Valid` method to the `\"go.opentelemetry.io/otel/attribute\".KeyValue` type. (#1703)\n\n### Changed\n\n- `trace.SpanContext` is now immutable and has no exported fields. (#1573)\n  - `trace.NewSpanContext()` can be used in conjunction with the `trace.SpanContextConfig` struct to initialize a new `SpanContext` where all values are known.\n- Update the `ForceFlush` method signature to the `\"go.opentelemetry.io/otel/sdk/trace\".SpanProcessor` to accept a `context.Context` and return an error. (#1608)\n- Update the `Shutdown` method to the `\"go.opentelemetry.io/otel/sdk/trace\".TracerProvider` return an error on shutdown failure. (#1608)\n- The SimpleSpanProcessor will now shut down the enclosed `SpanExporter` and gracefully ignore subsequent calls to `OnEnd` after `Shutdown` is called. (#1612)\n- `\"go.opentelemetry.io/sdk/metric/controller.basic\".WithPusher` is replaced with `WithExporter` to provide consistent naming across project. (#1656)\n- Added non-empty string check for trace `Attribute` keys. (#1659)\n- Add `description` to SpanStatus only when `StatusCode` is set to error. (#1662)\n- Jaeger exporter falls back to `resource.Default`'s `service.name` if the exported Span does not have one. (#1673)\n- Jaeger exporter populates Jaeger's Span Process from Resource. (#1673)\n- Renamed the `LabelSet` method of `\"go.opentelemetry.io/otel/sdk/resource\".Resource` to `Set`. (#1692)\n- Changed `WithSDK` to `WithSDKOptions` to accept variadic arguments of `TracerProviderOption` type in `go.opentelemetry.io/otel/exporters/trace/jaeger` package. (#1693)\n- Changed `WithSDK` to `WithSDKOptions` to accept variadic arguments of `TracerProviderOption` type in `go.opentelemetry.io/otel/exporters/trace/zipkin` package. (#1693)\n\n### Removed\n\n- Removed `serviceName` parameter from Zipkin exporter and uses resource instead. (#1549)\n- Removed `WithConfig` from tracer provider to avoid overriding configuration. (#1633)\n- Removed the exported `SimpleSpanProcessor` and `BatchSpanProcessor` structs.\n   These are now returned as a SpanProcessor interface from their respective constructors. (#1638)\n- Removed `WithRecord()` from `trace.SpanOption` when creating a span. (#1660)\n- Removed setting status to `Error` while recording an error as a span event in `RecordError`. (#1663)\n- Removed `jaeger.WithProcess` configuration option. (#1673)\n- Removed `ApplyConfig` method from `\"go.opentelemetry.io/otel/sdk/trace\".TracerProvider` and the now unneeded `Config` struct. (#1693)\n\n### Fixed\n\n- Jaeger Exporter: Ensure mapping between OTEL and Jaeger span data complies with the specification. (#1626)\n- `SamplingResult.TraceState` is correctly propagated to a newly created span's `SpanContext`. (#1655)\n- The `otel-collector` example now correctly flushes metric events prior to shutting down the exporter. (#1678)\n- Do not set span status message in `SpanStatusFromHTTPStatusCode` if it can be inferred from `http.status_code`. (#1681)\n- Synchronization issues in global trace delegate implementation. (#1686)\n- Reduced excess memory usage by global `TracerProvider`. (#1687)\n\n## [0.18.0] - 2021-03-03\n\n### Added\n\n- Added `resource.Default()` for use with meter and tracer providers. (#1507)\n- `AttributePerEventCountLimit` and `AttributePerLinkCountLimit` for `SpanLimits`. (#1535)\n- Added `Keys()` method to `propagation.TextMapCarrier` and `propagation.HeaderCarrier` to adapt `http.Header` to this interface. (#1544)\n- Added `code` attributes to `go.opentelemetry.io/otel/semconv` package. (#1558)\n- Compatibility testing suite in the CI system for the following systems. (#1567)\n   | OS      | Go Version | Architecture |\n   | ------- | ---------- | ------------ |\n   | Ubuntu  | 1.15       | amd64        |\n   | Ubuntu  | 1.14       | amd64        |\n   | Ubuntu  | 1.15       | 386          |\n   | Ubuntu  | 1.14       | 386          |\n   | MacOS   | 1.15       | amd64        |\n   | MacOS   | 1.14       | amd64        |\n   | Windows | 1.15       | amd64        |\n   | Windows | 1.14       | amd64        |\n   | Windows | 1.15       | 386          |\n   | Windows | 1.14       | 386          |\n\n### Changed\n\n- Replaced interface `oteltest.SpanRecorder` with its existing implementation\n  `StandardSpanRecorder`. (#1542)\n- Default span limit values to 128. (#1535)\n- Rename `MaxEventsPerSpan`, `MaxAttributesPerSpan` and `MaxLinksPerSpan` to `EventCountLimit`, `AttributeCountLimit` and `LinkCountLimit`, and move these fields into `SpanLimits`. (#1535)\n- Renamed the `otel/label` package to `otel/attribute`. (#1541)\n- Vendor the Jaeger exporter's dependency on Apache Thrift. (#1551)\n- Parallelize the CI linting and testing. (#1567)\n- Stagger timestamps in exact aggregator tests. (#1569)\n- Changed all examples to use `WithBatchTimeout(5 * time.Second)` rather than `WithBatchTimeout(5)`. (#1621)\n- Prevent end-users from implementing some interfaces (#1575)\n\n  ```\n      \"otel/exporters/otlp/otlphttp\".Option\n      \"otel/exporters/stdout\".Option\n      \"otel/oteltest\".Option\n      \"otel/trace\".TracerOption\n      \"otel/trace\".SpanOption\n      \"otel/trace\".EventOption\n      \"otel/trace\".LifeCycleOption\n      \"otel/trace\".InstrumentationOption\n      \"otel/sdk/resource\".Option\n      \"otel/sdk/trace\".ParentBasedSamplerOption\n      \"otel/sdk/trace\".ReadOnlySpan\n      \"otel/sdk/trace\".ReadWriteSpan\n  ```\n\n### Removed\n\n- Removed attempt to resample spans upon changing the span name with `span.SetName()`. (#1545)\n- The `test-benchmark` is no longer a dependency of the `precommit` make target. (#1567)\n- Removed the `test-386` make target.\n   This was replaced with a full compatibility testing suite (i.e. multi OS/arch) in the CI system. (#1567)\n\n### Fixed\n\n- The sequential timing check of timestamps in the stdout exporter are now setup explicitly to be sequential (#1571). (#1572)\n- Windows build of Jaeger tests now compiles with OS specific functions (#1576). (#1577)\n- The sequential timing check of timestamps of go.opentelemetry.io/otel/sdk/metric/aggregator/lastvalue are now setup explicitly to be sequential (#1578). (#1579)\n- Validate tracestate header keys with vendors according to the W3C TraceContext specification (#1475). (#1581)\n- The OTLP exporter includes related labels for translations of a GaugeArray (#1563). (#1570)\n\n## [0.17.0] - 2021-02-12\n\n### Changed\n\n- Rename project default branch from `master` to `main`. (#1505)\n- Reverse order in which `Resource` attributes are merged, per change in spec. (#1501)\n- Add tooling to maintain \"replace\" directives in go.mod files automatically. (#1528)\n- Create new modules: otel/metric, otel/trace, otel/oteltest, otel/sdk/export/metric, otel/sdk/metric (#1528)\n- Move metric-related public global APIs from otel to otel/metric/global. (#1528)\n\n## Fixed\n\n- Fixed otlpgrpc reconnection issue.\n- The example code in the README.md of `go.opentelemetry.io/otel/exporters/otlp` is moved to a compiled example test and used the new `WithAddress` instead of `WithEndpoint`. (#1513)\n- The otel-collector example now uses the default OTLP receiver port of the collector.\n\n## [0.16.0] - 2021-01-13\n\n### Added\n\n- Add the `ReadOnlySpan` and `ReadWriteSpan` interfaces to provide better control for accessing span data. (#1360)\n- `NewGRPCDriver` function returns a `ProtocolDriver` that maintains a single gRPC connection to the collector. (#1369)\n- Added documentation about the project's versioning policy. (#1388)\n- Added `NewSplitDriver` for OTLP exporter that allows sending traces and metrics to different endpoints. (#1418)\n- Added codeql workflow to GitHub Actions (#1428)\n- Added Gosec workflow to GitHub Actions (#1429)\n- Add new HTTP driver for OTLP exporter in `exporters/otlp/otlphttp`. Currently it only supports the binary protobuf payloads. (#1420)\n- Add an OpenCensus exporter bridge. (#1444)\n\n### Changed\n\n- Rename `internal/testing` to `internal/internaltest`. (#1449)\n- Rename `export.SpanData` to `export.SpanSnapshot` and use it only for exporting spans. (#1360)\n- Store the parent's full `SpanContext` rather than just its span ID in the `span` struct. (#1360)\n- Improve span duration accuracy. (#1360)\n- Migrated CI/CD from CircleCI to GitHub Actions (#1382)\n- Remove duplicate checkout from GitHub Actions workflow (#1407)\n- Metric `array` aggregator renamed `exact` to match its `aggregation.Kind` (#1412)\n- Metric `exact` aggregator includes per-point timestamps (#1412)\n- Metric stdout exporter uses MinMaxSumCount aggregator for ValueRecorder instruments (#1412)\n- `NewExporter` from `exporters/otlp` now takes a `ProtocolDriver` as a parameter. (#1369)\n- Many OTLP Exporter options became gRPC ProtocolDriver options. (#1369)\n- Unify endpoint API that related to OTel exporter. (#1401)\n- Optimize metric histogram aggregator to reuse its slice of buckets. (#1435)\n- Metric aggregator Count() and histogram Bucket.Counts are consistently `uint64`. (1430)\n- Histogram aggregator accepts functional options, uses default boundaries if none given. (#1434)\n- `SamplingResult` now passed a `Tracestate` from the parent `SpanContext` (#1432)\n- Moved gRPC driver for OTLP exporter to `exporters/otlp/otlpgrpc`. (#1420)\n- The `TraceContext` propagator now correctly propagates `TraceState` through the `SpanContext`. (#1447)\n- Metric Push and Pull Controller components are combined into a single \"basic\" Controller:\n  - `WithExporter()` and `Start()` to configure Push behavior\n  - `Start()` is optional; use `Collect()` and `ForEach()` for Pull behavior\n  - `Start()` and `Stop()` accept Context. (#1378)\n- The `Event` type is moved from the `otel/sdk/export/trace` package to the `otel/trace` API package. (#1452)\n\n### Removed\n\n- Remove `errUninitializedSpan` as its only usage is now obsolete. (#1360)\n- Remove Metric export functionality related to quantiles and summary data points: this is not specified (#1412)\n- Remove DDSketch metric aggregator; our intention is to re-introduce this as an option of the histogram aggregator after [new OTLP histogram data types](https://github.com/open-telemetry/opentelemetry-proto/pull/226) are released (#1412)\n\n### Fixed\n\n- `BatchSpanProcessor.Shutdown()` will now shutdown underlying `export.SpanExporter`. (#1443)\n\n## [0.15.0] - 2020-12-10\n\n### Added\n\n- The `WithIDGenerator` `TracerProviderOption` is added to the `go.opentelemetry.io/otel/trace` package to configure an `IDGenerator` for the `TracerProvider`. (#1363)\n\n### Changed\n\n- The Zipkin exporter now uses the Span status code to determine. (#1328)\n- `NewExporter` and `Start` functions in `go.opentelemetry.io/otel/exporters/otlp` now receive `context.Context` as a first parameter. (#1357)\n- Move the OpenCensus example into `example` directory. (#1359)\n- Moved the SDK's `internal.IDGenerator` interface in to the `sdk/trace` package to enable support for externally-defined ID generators. (#1363)\n- Bump `github.com/google/go-cmp` from 0.5.3 to 0.5.4 (#1374)\n- Bump `github.com/golangci/golangci-lint` in `/internal/tools` (#1375)\n\n### Fixed\n\n- Metric SDK `SumObserver` and `UpDownSumObserver` instruments correctness fixes. (#1381)\n\n## [0.14.0] - 2020-11-19\n\n### Added\n\n- An `EventOption` and the related `NewEventConfig` function are added to the `go.opentelemetry.io/otel` package to configure Span events. (#1254)\n- A `TextMapPropagator` and associated `TextMapCarrier` are added to the `go.opentelemetry.io/otel/oteltest` package to test `TextMap` type propagators and their use. (#1259)\n- `SpanContextFromContext` returns `SpanContext` from context. (#1255)\n- `TraceState` has been added to `SpanContext`. (#1340)\n- `DeploymentEnvironmentKey` added to `go.opentelemetry.io/otel/semconv` package. (#1323)\n- Add an OpenCensus to OpenTelemetry tracing bridge. (#1305)\n- Add a parent context argument to `SpanProcessor.OnStart` to follow the specification. (#1333)\n- Add missing tests for `sdk/trace/attributes_map.go`. (#1337)\n\n### Changed\n\n- Move the `go.opentelemetry.io/otel/api/trace` package into `go.opentelemetry.io/otel/trace` with the following changes. (#1229) (#1307)\n  - `ID` has been renamed to `TraceID`.\n  - `IDFromHex` has been renamed to `TraceIDFromHex`.\n  - `EmptySpanContext` is removed.\n- Move the `go.opentelemetry.io/otel/api/trace/tracetest` package into `go.opentelemetry.io/otel/oteltest`. (#1229)\n- OTLP Exporter updates:\n  - supports OTLP v0.6.0 (#1230, #1354)\n  - supports configurable aggregation temporality (default: Cumulative, optional: Stateless). (#1296)\n- The Sampler is now called on local child spans. (#1233)\n- The `Kind` type from the `go.opentelemetry.io/otel/api/metric` package was renamed to `InstrumentKind` to more specifically describe what it is and avoid semantic ambiguity. (#1240)\n- The `MetricKind` method of the `Descriptor` type in the `go.opentelemetry.io/otel/api/metric` package was renamed to `Descriptor.InstrumentKind`.\n   This matches the returned type and fixes misuse of the term metric. (#1240)\n- Move test harness from the `go.opentelemetry.io/otel/api/apitest` package into `go.opentelemetry.io/otel/oteltest`. (#1241)\n- Move the `go.opentelemetry.io/otel/api/metric/metrictest` package into `go.opentelemetry.io/oteltest` as part of #964. (#1252)\n- Move the `go.opentelemetry.io/otel/api/metric` package into `go.opentelemetry.io/otel/metric` as part of #1303. (#1321)\n- Move the `go.opentelemetry.io/otel/api/metric/registry` package into `go.opentelemetry.io/otel/metric/registry` as a part of #1303. (#1316)\n- Move the `Number` type (together with related functions) from `go.opentelemetry.io/otel/api/metric` package into `go.opentelemetry.io/otel/metric/number` as a part of #1303. (#1316)\n- The function signature of the Span `AddEvent` method in `go.opentelemetry.io/otel` is updated to no longer take an unused context and instead take a required name and a variable number of `EventOption`s. (#1254)\n- The function signature of the Span `RecordError` method in `go.opentelemetry.io/otel` is updated to no longer take an unused context and instead take a required error value and a variable number of `EventOption`s. (#1254)\n- Move the `go.opentelemetry.io/otel/api/global` package to `go.opentelemetry.io/otel`. (#1262) (#1330)\n- Move the `Version` function from `go.opentelemetry.io/otel/sdk` to `go.opentelemetry.io/otel`. (#1330)\n- Rename correlation context header from `\"otcorrelations\"` to `\"baggage\"` to match the OpenTelemetry specification. (#1267)\n- Fix `Code.UnmarshalJSON` to work with valid JSON only. (#1276)\n- The `resource.New()` method changes signature to support builtin attributes and functional options, including `telemetry.sdk.*` and\n  `host.name` semantic conventions; the former method is renamed `resource.NewWithAttributes`. (#1235)\n- The Prometheus exporter now exports non-monotonic counters (i.e. `UpDownCounter`s) as gauges. (#1210)\n- Correct the `Span.End` method documentation in the `otel` API to state updates are not allowed on a span after it has ended. (#1310)\n- Updated span collection limits for attribute, event and link counts to 1000 (#1318)\n- Renamed `semconv.HTTPUrlKey` to `semconv.HTTPURLKey`. (#1338)\n\n### Removed\n\n- The `ErrInvalidHexID`, `ErrInvalidTraceIDLength`, `ErrInvalidSpanIDLength`, `ErrInvalidSpanIDLength`, or `ErrNilSpanID` from the `go.opentelemetry.io/otel` package are unexported now. (#1243)\n- The `AddEventWithTimestamp` method on the `Span` interface in `go.opentelemetry.io/otel` is removed due to its redundancy.\n   It is replaced by using the `AddEvent` method with a `WithTimestamp` option. (#1254)\n- The `MockSpan` and `MockTracer` types are removed from `go.opentelemetry.io/otel/oteltest`.\n   `Tracer` and `Span` from the same module should be used in their place instead. (#1306)\n- `WorkerCount` option is removed from `go.opentelemetry.io/otel/exporters/otlp`. (#1350)\n- Remove the following labels types: INT32, UINT32, UINT64 and FLOAT32. (#1314)\n\n### Fixed\n\n- Rename `MergeItererator` to `MergeIterator` in the `go.opentelemetry.io/otel/label` package. (#1244)\n- The `go.opentelemetry.io/otel/api/global` packages global TextMapPropagator now delegates functionality to a globally set delegate for all previously returned propagators. (#1258)\n- Fix condition in `label.Any`. (#1299)\n- Fix global `TracerProvider` to pass options to its configured provider. (#1329)\n- Fix missing handler for `ExactKind` aggregator in OTLP metrics transformer (#1309)\n\n## [0.13.0] - 2020-10-08\n\n### Added\n\n- OTLP Metric exporter supports Histogram aggregation. (#1209)\n- The `Code` struct from the `go.opentelemetry.io/otel/codes` package now supports JSON marshaling and unmarshaling as well as implements the `Stringer` interface. (#1214)\n- A Baggage API to implement the OpenTelemetry specification. (#1217)\n- Add Shutdown method to sdk/trace/provider, shutdown processors in the order they were registered. (#1227)\n\n### Changed\n\n- Set default propagator to no-op propagator. (#1184)\n- The `HTTPSupplier`, `HTTPExtractor`, `HTTPInjector`, and `HTTPPropagator` from the `go.opentelemetry.io/otel/api/propagation` package were replaced with unified `TextMapCarrier` and `TextMapPropagator` in the `go.opentelemetry.io/otel/propagation` package. (#1212) (#1325)\n- The `New` function from the `go.opentelemetry.io/otel/api/propagation` package was replaced with `NewCompositeTextMapPropagator` in the `go.opentelemetry.io/otel` package. (#1212)\n- The status codes of the `go.opentelemetry.io/otel/codes` package have been updated to match the latest OpenTelemetry specification.\n   They now are `Unset`, `Error`, and `Ok`.\n   They no longer track the gRPC codes. (#1214)\n- The `StatusCode` field of the `SpanData` struct in the `go.opentelemetry.io/otel/sdk/export/trace` package now uses the codes package from this package instead of the gRPC project. (#1214)\n- Move the `go.opentelemetry.io/otel/api/baggage` package into `go.opentelemetry.io/otel/baggage`. (#1217) (#1325)\n- A `Shutdown` method of `SpanProcessor` and all its implementations receives a context and returns an error. (#1264)\n\n### Fixed\n\n- Copies of data from arrays and slices passed to `go.opentelemetry.io/otel/label.ArrayValue()` are now used in the returned `Value` instead of using the mutable data itself. (#1226)\n\n### Removed\n\n- The `ExtractHTTP` and `InjectHTTP` functions from the `go.opentelemetry.io/otel/api/propagation` package were removed. (#1212)\n- The `Propagators` interface from the `go.opentelemetry.io/otel/api/propagation` package was removed to conform to the OpenTelemetry specification.\n   The explicit `TextMapPropagator` type can be used in its place as this is the `Propagator` type the specification defines. (#1212)\n- The `SetAttribute` method of the `Span` from the `go.opentelemetry.io/otel/api/trace` package was removed given its redundancy with the `SetAttributes` method. (#1216)\n- The internal implementation of Baggage storage is removed in favor of using the new Baggage API functionality. (#1217)\n- Remove duplicate hostname key `HostHostNameKey` in Resource semantic conventions. (#1219)\n- Nested array/slice support has been removed. (#1226)\n\n## [0.12.0] - 2020-09-24\n\n### Added\n\n- A `SpanConfigure` function in `go.opentelemetry.io/otel/api/trace` to create a new `SpanConfig` from `SpanOption`s. (#1108)\n- In the `go.opentelemetry.io/otel/api/trace` package, `NewTracerConfig` was added to construct new `TracerConfig`s.\n   This addition was made to conform with our project option conventions. (#1155)\n- Instrumentation library information was added to the Zipkin exporter. (#1119)\n- The `SpanProcessor` interface now has a `ForceFlush()` method. (#1166)\n- More semantic conventions for k8s as resource attributes. (#1167)\n\n### Changed\n\n- Add reconnecting udp connection type to Jaeger exporter.\n   This change adds a new optional implementation of the udp conn interface used to detect changes to an agent's host dns record.\n   It then adopts the new destination address to ensure the exporter doesn't get stuck. This change was ported from jaegertracing/jaeger-client-go#520. (#1063)\n- Replace `StartOption` and `EndOption` in `go.opentelemetry.io/otel/api/trace` with `SpanOption`.\n   This change is matched by replacing the `StartConfig` and `EndConfig` with a unified `SpanConfig`. (#1108)\n- Replace the `LinkedTo` span option in `go.opentelemetry.io/otel/api/trace` with `WithLinks`.\n   This is be more consistent with our other option patterns, i.e. passing the item to be configured directly instead of its component parts, and provides a cleaner function signature. (#1108)\n- The `go.opentelemetry.io/otel/api/trace` `TracerOption` was changed to an interface to conform to project option conventions. (#1109)\n- Move the `B3` and `TraceContext` from within the `go.opentelemetry.io/otel/api/trace` package to their own `go.opentelemetry.io/otel/propagators` package.\n    This removal of the propagators is reflective of the OpenTelemetry specification for these propagators as well as cleans up the `go.opentelemetry.io/otel/api/trace` API. (#1118)\n- Rename Jaeger tags used for instrumentation library information to reflect changes in OpenTelemetry specification. (#1119)\n- Rename `ProbabilitySampler` to `TraceIDRatioBased` and change semantics to ignore parent span sampling status. (#1115)\n- Move `tools` package under `internal`. (#1141)\n- Move `go.opentelemetry.io/otel/api/correlation` package to `go.opentelemetry.io/otel/api/baggage`. (#1142)\n   The `correlation.CorrelationContext` propagator has been renamed `baggage.Baggage`.  Other exported functions and types are unchanged.\n- Rename `ParentOrElse` sampler to `ParentBased` and allow setting samplers depending on parent span. (#1153)\n- In the `go.opentelemetry.io/otel/api/trace` package, `SpanConfigure` was renamed to `NewSpanConfig`. (#1155)\n- Change `dependabot.yml` to add a `Skip Changelog` label to dependabot-sourced PRs. (#1161)\n- The [configuration style guide](https://github.com/open-telemetry/opentelemetry-go/blob/master/CONTRIBUTING.md#config) has been updated to\n   recommend the use of `newConfig()` instead of `configure()`. (#1163)\n- The `otlp.Config` type has been unexported and changed to `otlp.config`, along with its initializer. (#1163)\n- Ensure exported interface types include parameter names and update the\n   Style Guide to reflect this styling rule. (#1172)\n- Don't consider unset environment variable for resource detection to be an error. (#1170)\n- Rename `go.opentelemetry.io/otel/api/metric.ConfigureInstrument` to `NewInstrumentConfig` and\n  `go.opentelemetry.io/otel/api/metric.ConfigureMeter` to `NewMeterConfig`.\n- ValueObserver instruments use LastValue aggregator by default. (#1165)\n- OTLP Metric exporter supports LastValue aggregation. (#1165)\n- Move the `go.opentelemetry.io/otel/api/unit` package to `go.opentelemetry.io/otel/unit`. (#1185)\n- Rename `Provider` to `MeterProvider` in the `go.opentelemetry.io/otel/api/metric` package. (#1190)\n- Rename `NoopProvider` to `NoopMeterProvider` in the `go.opentelemetry.io/otel/api/metric` package. (#1190)\n- Rename `NewProvider` to `NewMeterProvider` in the `go.opentelemetry.io/otel/api/metric/metrictest` package. (#1190)\n- Rename `Provider` to `MeterProvider` in the `go.opentelemetry.io/otel/api/metric/registry` package. (#1190)\n- Rename `NewProvider` to `NewMeterProvider` in the `go.opentelemetry.io/otel/api/metri/registryc` package. (#1190)\n- Rename `Provider` to `TracerProvider` in the `go.opentelemetry.io/otel/api/trace` package. (#1190)\n- Rename `NoopProvider` to `NoopTracerProvider` in the `go.opentelemetry.io/otel/api/trace` package. (#1190)\n- Rename `Provider` to `TracerProvider` in the `go.opentelemetry.io/otel/api/trace/tracetest` package. (#1190)\n- Rename `NewProvider` to `NewTracerProvider` in the `go.opentelemetry.io/otel/api/trace/tracetest` package. (#1190)\n- Rename `WrapperProvider` to `WrapperTracerProvider` in the `go.opentelemetry.io/otel/bridge/opentracing` package. (#1190)\n- Rename `NewWrapperProvider` to `NewWrapperTracerProvider` in the `go.opentelemetry.io/otel/bridge/opentracing` package. (#1190)\n- Rename `Provider` method of the pull controller to `MeterProvider` in the `go.opentelemetry.io/otel/sdk/metric/controller/pull` package. (#1190)\n- Rename `Provider` method of the push controller to `MeterProvider` in the `go.opentelemetry.io/otel/sdk/metric/controller/push` package. (#1190)\n- Rename `ProviderOptions` to `TracerProviderConfig` in the `go.opentelemetry.io/otel/sdk/trace` package. (#1190)\n- Rename `ProviderOption` to `TracerProviderOption` in the `go.opentelemetry.io/otel/sdk/trace` package. (#1190)\n- Rename `Provider` to `TracerProvider` in the `go.opentelemetry.io/otel/sdk/trace` package. (#1190)\n- Rename `NewProvider` to `NewTracerProvider` in the `go.opentelemetry.io/otel/sdk/trace` package. (#1190)\n- Renamed `SamplingDecision` values to comply with OpenTelemetry specification change. (#1192)\n- Renamed Zipkin attribute names from `ot.status_code & ot.status_description` to `otel.status_code & otel.status_description`. (#1201)\n- The default SDK now invokes registered `SpanProcessor`s in the order they were registered with the `TracerProvider`. (#1195)\n- Add test of spans being processed by the `SpanProcessor`s in the order they were registered. (#1203)\n\n### Removed\n\n- Remove the B3 propagator from `go.opentelemetry.io/otel/propagators`. It is now located in the\n   `go.opentelemetry.io/contrib/propagators/` module. (#1191)\n- Remove the semantic convention for HTTP status text, `HTTPStatusTextKey` from package `go.opentelemetry.io/otel/semconv`. (#1194)\n\n### Fixed\n\n- Zipkin example no longer mentions `ParentSampler`, corrected to `ParentBased`. (#1171)\n- Fix missing shutdown processor in otel-collector example. (#1186)\n- Fix missing shutdown processor in basic and namedtracer examples. (#1197)\n\n## [0.11.0] - 2020-08-24\n\n### Added\n\n- Support for exporting array-valued attributes via OTLP. (#992)\n- `Noop` and `InMemory` `SpanBatcher` implementations to help with testing integrations. (#994)\n- Support for filtering metric label sets. (#1047)\n- A dimensionality-reducing metric Processor. (#1057)\n- Integration tests for more OTel Collector Attribute types. (#1062)\n- A new `WithSpanProcessor` `ProviderOption` is added to the `go.opentelemetry.io/otel/sdk/trace` package to create a `Provider` and automatically register the `SpanProcessor`. (#1078)\n\n### Changed\n\n- Rename `sdk/metric/processor/test` to `sdk/metric/processor/processortest`. (#1049)\n- Rename `sdk/metric/controller/test` to `sdk/metric/controller/controllertest`. (#1049)\n- Rename `api/testharness` to `api/apitest`. (#1049)\n- Rename `api/trace/testtrace` to `api/trace/tracetest`. (#1049)\n- Change Metric Processor to merge multiple observations. (#1024)\n- The `go.opentelemetry.io/otel/bridge/opentracing` bridge package has been made into its own module.\n   This removes the package dependencies of this bridge from the rest of the OpenTelemetry based project. (#1038)\n- Renamed `go.opentelemetry.io/otel/api/standard` package to `go.opentelemetry.io/otel/semconv` to avoid the ambiguous and generic name `standard` and better describe the package as containing OpenTelemetry semantic conventions. (#1016)\n- The environment variable used for resource detection has been changed from `OTEL_RESOURCE_LABELS` to `OTEL_RESOURCE_ATTRIBUTES` (#1042)\n- Replace `WithSyncer` with `WithBatcher` in examples. (#1044)\n- Replace the `google.golang.org/grpc/codes` dependency in the API with an equivalent `go.opentelemetry.io/otel/codes` package. (#1046)\n- Merge the `go.opentelemetry.io/otel/api/label` and `go.opentelemetry.io/otel/api/kv` into the new `go.opentelemetry.io/otel/label` package. (#1060)\n- Unify Callback Function Naming.\n   Rename `*Callback` with `*Func`. (#1061)\n- CI builds validate against last two versions of Go, dropping 1.13 and adding 1.15. (#1064)\n- The `go.opentelemetry.io/otel/sdk/export/trace` interfaces `SpanSyncer` and `SpanBatcher` have been replaced with a specification compliant `Exporter` interface.\n   This interface still supports the export of `SpanData`, but only as a slice.\n   Implementation are also required now to return any error from `ExportSpans` if one occurs as well as implement a `Shutdown` method for exporter clean-up. (#1078)\n- The `go.opentelemetry.io/otel/sdk/trace` `NewBatchSpanProcessor` function no longer returns an error.\n   If a `nil` exporter is passed as an argument to this function, instead of it returning an error, it now returns a `BatchSpanProcessor` that handles the export of `SpanData` by not taking any action. (#1078)\n- The `go.opentelemetry.io/otel/sdk/trace` `NewProvider` function to create a `Provider` no longer returns an error, instead only a `*Provider`.\n   This change is related to `NewBatchSpanProcessor` not returning an error which was the only error this function would return. (#1078)\n\n### Removed\n\n- Duplicate, unused API sampler interface. (#999)\n   Use the [`Sampler` interface](https://github.com/open-telemetry/opentelemetry-go/blob/v0.11.0/sdk/trace/sampling.go) provided by the SDK instead.\n- The `grpctrace` instrumentation was moved to the `go.opentelemetry.io/contrib` repository and out of this repository.\n   This move includes moving the `grpc` example to the `go.opentelemetry.io/contrib` as well. (#1027)\n- The `WithSpan` method of the `Tracer` interface.\n   The functionality this method provided was limited compared to what a user can provide themselves.\n   It was removed with the understanding that if there is sufficient user need it can be added back based on actual user usage. (#1043)\n- The `RegisterSpanProcessor` and `UnregisterSpanProcessor` functions.\n   These were holdovers from an approach prior to the TracerProvider design. They were not used anymore. (#1077)\n- The `oterror` package. (#1026)\n- The `othttp` and `httptrace` instrumentations were moved to `go.opentelemetry.io/contrib`. (#1032)\n\n### Fixed\n\n- The `semconv.HTTPServerMetricAttributesFromHTTPRequest()` function no longer generates the high-cardinality `http.request.content.length` label. (#1031)\n- Correct instrumentation version tag in Jaeger exporter. (#1037)\n- The SDK span will now set an error event if the `End` method is called during a panic (i.e. it was deferred). (#1043)\n- Move internally generated protobuf code from the `go.opentelemetry.io/otel` to the OTLP exporter to reduce dependency overhead. (#1050)\n- The `otel-collector` example referenced outdated collector processors. (#1006)\n\n## [0.10.0] - 2020-07-29\n\nThis release migrates the default OpenTelemetry SDK into its own Go module, decoupling the SDK from the API and reducing dependencies for instrumentation packages.\n\n### Added\n\n- The Zipkin exporter now has `NewExportPipeline` and `InstallNewPipeline` constructor functions to match the common pattern.\n    These function build a new exporter with default SDK options and register the exporter with the `global` package respectively. (#944)\n- Add propagator option for gRPC instrumentation. (#986)\n- The `testtrace` package now tracks the `trace.SpanKind` for each span. (#987)\n\n### Changed\n\n- Replace the `RegisterGlobal` `Option` in the Jaeger exporter with an `InstallNewPipeline` constructor function.\n   This matches the other exporter constructor patterns and will register a new exporter after building it with default configuration. (#944)\n- The trace (`go.opentelemetry.io/otel/exporters/trace/stdout`) and metric (`go.opentelemetry.io/otel/exporters/metric/stdout`) `stdout` exporters are now merged into a single exporter at `go.opentelemetry.io/otel/exporters/stdout`.\n   This new exporter was made into its own Go module to follow the pattern of all exporters and decouple it from the `go.opentelemetry.io/otel` module. (#956, #963)\n- Move the `go.opentelemetry.io/otel/exporters/test` test package to `go.opentelemetry.io/otel/sdk/export/metric/metrictest`. (#962)\n- The `go.opentelemetry.io/otel/api/kv/value` package was merged into the parent `go.opentelemetry.io/otel/api/kv` package. (#968)\n  - `value.Bool` was replaced with `kv.BoolValue`.\n  - `value.Int64` was replaced with `kv.Int64Value`.\n  - `value.Uint64` was replaced with `kv.Uint64Value`.\n  - `value.Float64` was replaced with `kv.Float64Value`.\n  - `value.Int32` was replaced with `kv.Int32Value`.\n  - `value.Uint32` was replaced with `kv.Uint32Value`.\n  - `value.Float32` was replaced with `kv.Float32Value`.\n  - `value.String` was replaced with `kv.StringValue`.\n  - `value.Int` was replaced with `kv.IntValue`.\n  - `value.Uint` was replaced with `kv.UintValue`.\n  - `value.Array` was replaced with `kv.ArrayValue`.\n- Rename `Infer` to `Any` in the `go.opentelemetry.io/otel/api/kv` package. (#972)\n- Change `othttp` to use the `httpsnoop` package to wrap the `ResponseWriter` so that optional interfaces (`http.Hijacker`, `http.Flusher`, etc.) that are implemented by the original `ResponseWriter`are also implemented by the wrapped `ResponseWriter`. (#979)\n- Rename `go.opentelemetry.io/otel/sdk/metric/aggregator/test` package to `go.opentelemetry.io/otel/sdk/metric/aggregator/aggregatortest`. (#980)\n- Make the SDK into its own Go module called `go.opentelemetry.io/otel/sdk`. (#985)\n- Changed the default trace `Sampler` from `AlwaysOn` to `ParentOrElse(AlwaysOn)`. (#989)\n\n### Removed\n\n- The `IndexedAttribute` function from the `go.opentelemetry.io/otel/api/label` package was removed in favor of `IndexedLabel` which it was synonymous with. (#970)\n\n### Fixed\n\n- Bump github.com/golangci/golangci-lint from 1.28.3 to 1.29.0 in /tools. (#953)\n- Bump github.com/google/go-cmp from 0.5.0 to 0.5.1. (#957)\n- Use `global.Handle` for span export errors in the OTLP exporter. (#946)\n- Correct Go language formatting in the README documentation. (#961)\n- Remove default SDK dependencies from the `go.opentelemetry.io/otel/api` package. (#977)\n- Remove default SDK dependencies from the `go.opentelemetry.io/otel/instrumentation` package. (#983)\n- Move documented examples for `go.opentelemetry.io/otel/instrumentation/grpctrace` interceptors into Go example tests. (#984)\n\n## [0.9.0] - 2020-07-20\n\n### Added\n\n- A new Resource Detector interface is included to allow resources to be automatically detected and included. (#939)\n- A Detector to automatically detect resources from an environment variable. (#939)\n- Github action to generate protobuf Go bindings locally in `internal/opentelemetry-proto-gen`. (#938)\n- OTLP .proto files from `open-telemetry/opentelemetry-proto` imported as a git submodule under `internal/opentelemetry-proto`.\n   References to `github.com/open-telemetry/opentelemetry-proto` changed to `go.opentelemetry.io/otel/internal/opentelemetry-proto-gen`. (#942)\n\n### Changed\n\n- Non-nil value `struct`s for key-value pairs will be marshalled using JSON rather than `Sprintf`. (#948)\n\n### Removed\n\n- Removed dependency on `github.com/open-telemetry/opentelemetry-collector`. (#943)\n\n## [0.8.0] - 2020-07-09\n\n### Added\n\n- The `B3Encoding` type to represent the B3 encoding(s) the B3 propagator can inject.\n   A value for HTTP supported encodings (Multiple Header: `MultipleHeader`, Single Header: `SingleHeader`) are included. (#882)\n- The `FlagsDeferred` trace flag to indicate if the trace sampling decision has been deferred. (#882)\n- The `FlagsDebug` trace flag to indicate if the trace is a debug trace. (#882)\n- Add `peer.service` semantic attribute. (#898)\n- Add database-specific semantic attributes. (#899)\n- Add semantic convention for `faas.coldstart` and `container.id`. (#909)\n- Add http content size semantic conventions. (#905)\n- Include `http.request_content_length` in HTTP request basic attributes. (#905)\n- Add semantic conventions for operating system process resource attribute keys. (#919)\n- The Jaeger exporter now has a `WithBatchMaxCount` option to specify the maximum number of spans sent in a batch. (#931)\n\n### Changed\n\n- Update `CONTRIBUTING.md` to ask for updates to `CHANGELOG.md` with each pull request. (#879)\n- Use lowercase header names for B3 Multiple Headers. (#881)\n- The B3 propagator `SingleHeader` field has been replaced with `InjectEncoding`.\n   This new field can be set to combinations of the `B3Encoding` bitmasks and will inject trace information in these encodings.\n   If no encoding is set, the propagator will default to `MultipleHeader` encoding. (#882)\n- The B3 propagator now extracts from either HTTP encoding of B3 (Single Header or Multiple Header) based on what is contained in the header.\n   Preference is given to Single Header encoding with Multiple Header being the fallback if Single Header is not found or is invalid.\n   This behavior change is made to dynamically support all correctly encoded traces received instead of having to guess the expected encoding prior to receiving. (#882)\n- Extend semantic conventions for RPC. (#900)\n- To match constant naming conventions in the `api/standard` package, the `FaaS*` key names are appended with a suffix of `Key`. (#920)\n  - `\"api/standard\".FaaSName` -> `FaaSNameKey`\n  - `\"api/standard\".FaaSID` -> `FaaSIDKey`\n  - `\"api/standard\".FaaSVersion` -> `FaaSVersionKey`\n  - `\"api/standard\".FaaSInstance` -> `FaaSInstanceKey`\n\n### Removed\n\n- The `FlagsUnused` trace flag is removed.\n   The purpose of this flag was to act as the inverse of `FlagsSampled`, the inverse of `FlagsSampled` is used instead. (#882)\n- The B3 header constants (`B3SingleHeader`, `B3DebugFlagHeader`, `B3TraceIDHeader`, `B3SpanIDHeader`, `B3SampledHeader`, `B3ParentSpanIDHeader`) are removed.\n   If B3 header keys are needed [the authoritative OpenZipkin package constants](https://pkg.go.dev/github.com/openzipkin/zipkin-go@v0.2.2/propagation/b3?tab=doc#pkg-constants) should be used instead. (#882)\n\n### Fixed\n\n- The B3 Single Header name is now correctly `b3` instead of the previous `X-B3`. (#881)\n- The B3 propagator now correctly supports sampling only values (`b3: 0`, `b3: 1`, or `b3: d`) for a Single B3 Header. (#882)\n- The B3 propagator now propagates the debug flag.\n   This removes the behavior of changing the debug flag into a set sampling bit.\n   Instead, this now follow the B3 specification and omits the `X-B3-Sampling` header. (#882)\n- The B3 propagator now tracks \"unset\" sampling state (meaning \"defer the decision\") and does not set the `X-B3-Sampling` header when injecting. (#882)\n- Bump github.com/itchyny/gojq from 0.10.3 to 0.10.4 in /tools. (#883)\n- Bump github.com/opentracing/opentracing-go from v1.1.1-0.20190913142402-a7454ce5950e to v1.2.0. (#885)\n- The tracing time conversion for OTLP spans is now correctly set to `UnixNano`. (#896)\n- Ensure span status is not set to `Unknown` when no HTTP status code is provided as it is assumed to be `200 OK`. (#908)\n- Ensure `httptrace.clientTracer` closes `http.headers` span. (#912)\n- Prometheus exporter will not apply stale updates or forget inactive metrics. (#903)\n- Add test for api.standard `HTTPClientAttributesFromHTTPRequest`. (#905)\n- Bump github.com/golangci/golangci-lint from 1.27.0 to 1.28.1 in /tools. (#901, #913)\n- Update otel-colector example to use the v0.5.0 collector. (#915)\n- The `grpctrace` instrumentation uses a span name conforming to the OpenTelemetry semantic conventions (does not contain a leading slash (`/`)). (#922)\n- The `grpctrace` instrumentation includes an `rpc.method` attribute now set to the gRPC method name. (#900, #922)\n- The `grpctrace` instrumentation `rpc.service` attribute now contains the package name if one exists.\n   This is in accordance with OpenTelemetry semantic conventions. (#922)\n- Correlation Context extractor will no longer insert an empty map into the returned context when no valid values are extracted. (#923)\n- Bump google.golang.org/api from 0.28.0 to 0.29.0 in /exporters/trace/jaeger. (#925)\n- Bump github.com/itchyny/gojq from 0.10.4 to 0.11.0 in /tools. (#926)\n- Bump github.com/golangci/golangci-lint from 1.28.1 to 1.28.2 in /tools. (#930)\n\n## [0.7.0] - 2020-06-26\n\nThis release implements the v0.5.0 version of the OpenTelemetry specification.\n\n### Added\n\n- The othttp instrumentation now includes default metrics. (#861)\n- This CHANGELOG file to track all changes in the project going forward.\n- Support for array type attributes. (#798)\n- Apply transitive dependabot go.mod dependency updates as part of a new automatic Github workflow. (#844)\n- Timestamps are now passed to exporters for each export. (#835)\n- Add new `Accumulation` type to metric SDK to transport telemetry from `Accumulator`s to `Processor`s.\n   This replaces the prior `Record` `struct` use for this purpose. (#835)\n- New dependabot integration to automate package upgrades. (#814)\n- `Meter` and `Tracer` implementations accept instrumentation version version as an optional argument.\n   This instrumentation version is passed on to exporters. (#811) (#805) (#802)\n- The OTLP exporter includes the instrumentation version in telemetry it exports. (#811)\n- Environment variables for Jaeger exporter are supported. (#796)\n- New `aggregation.Kind` in the export metric API. (#808)\n- New example that uses OTLP and the collector. (#790)\n- Handle errors in the span `SetName` during span initialization. (#791)\n- Default service config to enable retries for retry-able failed requests in the OTLP exporter and an option to override this default. (#777)\n- New `go.opentelemetry.io/otel/api/oterror` package to uniformly support error handling and definitions for the project. (#778)\n- New `global` default implementation of the `go.opentelemetry.io/otel/api/oterror.Handler` interface to be used to handle errors prior to an user defined `Handler`.\n   There is also functionality for the user to register their `Handler` as well as a convenience function `Handle` to handle an error with this global `Handler`(#778)\n- Options to specify propagators for httptrace and grpctrace instrumentation. (#784)\n- The required `application/json` header for the Zipkin exporter is included in all exports. (#774)\n- Integrate HTTP semantics helpers from the contrib repository into the `api/standard` package. #769\n\n### Changed\n\n- Rename `Integrator` to `Processor` in the metric SDK. (#863)\n- Rename `AggregationSelector` to `AggregatorSelector`. (#859)\n- Rename `SynchronizedCopy` to `SynchronizedMove`. (#858)\n- Rename `simple` integrator to `basic` integrator. (#857)\n- Merge otlp collector examples. (#841)\n- Change the metric SDK to support cumulative, delta, and pass-through exporters directly.\n   With these changes, cumulative and delta specific exporters are able to request the correct kind of aggregation from the SDK. (#840)\n- The `Aggregator.Checkpoint` API is renamed to `SynchronizedCopy` and adds an argument, a different `Aggregator` into which the copy is stored. (#812)\n- The `export.Aggregator` contract is that `Update()` and `SynchronizedCopy()` are synchronized with each other.\n   All the aggregation interfaces (`Sum`, `LastValue`, ...) are not meant to be synchronized, as the caller is expected to synchronize aggregators at a higher level after the `Accumulator`.\n   Some of the `Aggregators` used unnecessary locking and that has been cleaned up. (#812)\n- Use of `metric.Number` was replaced by `int64` now that we use `sync.Mutex` in the `MinMaxSumCount` and `Histogram` `Aggregators`. (#812)\n- Replace `AlwaysParentSample` with `ParentSample(fallback)` to match the OpenTelemetry v0.5.0 specification. (#810)\n- Rename `sdk/export/metric/aggregator` to `sdk/export/metric/aggregation`. #808\n- Send configured headers with every request in the OTLP exporter, instead of just on connection creation. (#806)\n- Update error handling for any one off error handlers, replacing, instead, with the `global.Handle` function. (#791)\n- Rename `plugin` directory to `instrumentation` to match the OpenTelemetry specification. (#779)\n- Makes the argument order to Histogram and DDSketch `New()` consistent. (#781)\n\n### Removed\n\n- `Uint64NumberKind` and related functions from the API. (#864)\n- Context arguments from `Aggregator.Checkpoint` and `Integrator.Process` as they were unused. (#803)\n- `SpanID` is no longer included in parameters for sampling decision to match the OpenTelemetry specification. (#775)\n\n### Fixed\n\n- Upgrade OTLP exporter to opentelemetry-proto matching the opentelemetry-collector v0.4.0 release. (#866)\n- Allow changes to `go.sum` and `go.mod` when running dependabot tidy-up. (#871)\n- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1. (#824)\n- Bump github.com/prometheus/client_golang from 1.7.0 to 1.7.1 in /exporters/metric/prometheus. (#867)\n- Bump google.golang.org/grpc from 1.29.1 to 1.30.0 in /exporters/trace/jaeger. (#853)\n- Bump google.golang.org/grpc from 1.29.1 to 1.30.0 in /exporters/trace/zipkin. (#854)\n- Bumps github.com/golang/protobuf from 1.3.2 to 1.4.2 (#848)\n- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/otlp (#817)\n- Bump github.com/golangci/golangci-lint from 1.25.1 to 1.27.0 in /tools (#828)\n- Bump github.com/prometheus/client_golang from 1.5.0 to 1.7.0 in /exporters/metric/prometheus (#838)\n- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/trace/jaeger (#829)\n- Bump github.com/benbjohnson/clock from 1.0.0 to 1.0.3 (#815)\n- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/trace/zipkin (#823)\n- Bump github.com/itchyny/gojq from 0.10.1 to 0.10.3 in /tools (#830)\n- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/metric/prometheus (#822)\n- Bump google.golang.org/grpc from 1.27.1 to 1.29.1 in /exporters/trace/zipkin (#820)\n- Bump google.golang.org/grpc from 1.27.1 to 1.29.1 in /exporters/trace/jaeger (#831)\n- Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 (#836)\n- Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 in /exporters/trace/jaeger (#837)\n- Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 in /exporters/otlp (#839)\n- Bump google.golang.org/api from 0.20.0 to 0.28.0 in /exporters/trace/jaeger (#843)\n- Set span status from HTTP status code in the othttp instrumentation. (#832)\n- Fixed typo in push controller comment. (#834)\n- The `Aggregator` testing has been updated and cleaned. (#812)\n- `metric.Number(0)` expressions are replaced by `0` where possible. (#812)\n- Fixed `global` `handler_test.go` test failure. #804\n- Fixed `BatchSpanProcessor.Shutdown` to wait until all spans are processed. (#766)\n- Fixed OTLP example's accidental early close of exporter. (#807)\n- Ensure zipkin exporter reads and closes response body. (#788)\n- Update instrumentation to use `api/standard` keys instead of custom keys. (#782)\n- Clean up tools and RELEASING documentation. (#762)\n\n## [0.6.0] - 2020-05-21\n\n### Added\n\n- Support for `Resource`s in the prometheus exporter. (#757)\n- New pull controller. (#751)\n- New `UpDownSumObserver` instrument. (#750)\n- OpenTelemetry collector demo. (#711)\n- New `SumObserver` instrument. (#747)\n- New `UpDownCounter` instrument. (#745)\n- New timeout `Option` and configuration function `WithTimeout` to the push controller. (#742)\n- New `api/standards` package to implement semantic conventions and standard key-value generation. (#731)\n\n### Changed\n\n- Rename `Register*` functions in the metric API to `New*` for all `Observer` instruments. (#761)\n- Use `[]float64` for histogram boundaries, not `[]metric.Number`. (#758)\n- Change OTLP example to use exporter as a trace `Syncer` instead of as an unneeded `Batcher`. (#756)\n- Replace `WithResourceAttributes()` with `WithResource()` in the trace SDK. (#754)\n- The prometheus exporter now uses the new pull controller. (#751)\n- Rename `ScheduleDelayMillis` to `BatchTimeout` in the trace `BatchSpanProcessor`.(#752)\n- Support use of synchronous instruments in asynchronous callbacks (#725)\n- Move `Resource` from the `Export` method parameter into the metric export `Record`. (#739)\n- Rename `Observer` instrument to `ValueObserver`. (#734)\n- The push controller now has a method (`Provider()`) to return a `metric.Provider` instead of the old `Meter` method that acted as a `metric.Provider`. (#738)\n- Replace `Measure` instrument by `ValueRecorder` instrument. (#732)\n- Rename correlation context header from `\"Correlation-Context\"` to `\"otcorrelations\"` to match the OpenTelemetry specification. (#727)\n\n### Fixed\n\n- Ensure gRPC `ClientStream` override methods do not panic in grpctrace package. (#755)\n- Disable parts of `BatchSpanProcessor` test until a fix is found. (#743)\n- Fix `string` case in `kv` `Infer` function. (#746)\n- Fix panic in grpctrace client interceptors. (#740)\n- Refactor the `api/metrics` push controller and add `CheckpointSet` synchronization. (#737)\n- Rewrite span batch process queue batching logic. (#719)\n- Remove the push controller named Meter map. (#738)\n- Fix Histogram aggregator initial state (fix #735). (#736)\n- Ensure golang alpine image is running `golang-1.14` for examples. (#733)\n- Added test for grpctrace `UnaryInterceptorClient`. (#695)\n- Rearrange `api/metric` code layout. (#724)\n\n## [0.5.0] - 2020-05-13\n\n### Added\n\n- Batch `Observer` callback support. (#717)\n- Alias `api` types to root package of project. (#696)\n- Create basic `othttp.Transport` for simple client instrumentation. (#678)\n- `SetAttribute(string, interface{})` to the trace API. (#674)\n- Jaeger exporter option that allows user to specify custom http client. (#671)\n- `Stringer` and `Infer` methods to `key`s. (#662)\n\n### Changed\n\n- Rename `NewKey` in the `kv` package to just `Key`. (#721)\n- Move `core` and `key` to `kv` package. (#720)\n- Make the metric API `Meter` a `struct` so the abstract `MeterImpl` can be passed and simplify implementation. (#709)\n- Rename SDK `Batcher` to `Integrator` to match draft OpenTelemetry SDK specification. (#710)\n- Rename SDK `Ungrouped` integrator to `simple.Integrator` to match draft OpenTelemetry SDK specification. (#710)\n- Rename SDK `SDK` `struct` to `Accumulator` to match draft OpenTelemetry SDK specification. (#710)\n- Move `Number` from `core` to `api/metric` package. (#706)\n- Move `SpanContext` from `core` to `trace` package. (#692)\n- Change traceparent header from `Traceparent` to `traceparent` to implement the W3C specification. (#681)\n\n### Fixed\n\n- Update tooling to run generators in all submodules. (#705)\n- gRPC interceptor regexp to match methods without a service name. (#683)\n- Use a `const` for padding 64-bit B3 trace IDs. (#701)\n- Update `mockZipkin` listen address from `:0` to `127.0.0.1:0`. (#700)\n- Left-pad 64-bit B3 trace IDs with zero. (#698)\n- Propagate at least the first W3C tracestate header. (#694)\n- Remove internal `StateLocker` implementation. (#688)\n- Increase instance size CI system uses. (#690)\n- Add a `key` benchmark and use reflection in `key.Infer()`. (#679)\n- Fix internal `global` test by using `global.Meter` with `RecordBatch()`. (#680)\n- Reimplement histogram using mutex instead of `StateLocker`. (#669)\n- Switch `MinMaxSumCount` to a mutex lock implementation instead of `StateLocker`. (#667)\n- Update documentation to not include any references to `WithKeys`. (#672)\n- Correct misspelling. (#668)\n- Fix clobbering of the span context if extraction fails. (#656)\n- Bump `golangci-lint` and work around the corrupting bug. (#666) (#670)\n\n## [0.4.3] - 2020-04-24\n\n### Added\n\n- `Dockerfile` and `docker-compose.yml` to run example code. (#635)\n- New `grpctrace` package that provides gRPC client and server interceptors for both unary and stream connections. (#621)\n- New `api/label` package, providing common label set implementation. (#651)\n- Support for JSON marshaling of `Resources`. (#654)\n- `TraceID` and `SpanID` implementations for `Stringer` interface. (#642)\n- `RemoteAddrKey` in the othttp plugin to include the HTTP client address in top-level spans. (#627)\n- `WithSpanFormatter` option to the othttp plugin. (#617)\n- Updated README to include section for compatible libraries and include reference to the contrib repository. (#612)\n- The prometheus exporter now supports exporting histograms. (#601)\n- A `String` method to the `Resource` to return a hashable identifier for a now unique resource. (#613)\n- An `Iter` method to the `Resource` to return an array `AttributeIterator`. (#613)\n- An `Equal` method to the `Resource` test the equivalence of resources. (#613)\n- An iterable structure (`AttributeIterator`) for `Resource` attributes.\n\n### Changed\n\n- zipkin export's `NewExporter` now requires a `serviceName` argument to ensure this needed values is provided. (#644)\n- Pass `Resources` through the metrics export pipeline. (#659)\n\n### Removed\n\n- `WithKeys` option from the metric API. (#639)\n\n### Fixed\n\n- Use the `label.Set.Equivalent` value instead of an encoding in the batcher. (#658)\n- Correct typo `trace.Exporter` to `trace.SpanSyncer` in comments. (#653)\n- Use type names for return values in jaeger exporter. (#648)\n- Increase the visibility of the `api/key` package by updating comments and fixing usages locally. (#650)\n- `Checkpoint` only after `Update`; Keep records in the `sync.Map` longer. (#647)\n- Do not cache `reflect.ValueOf()` in metric Labels. (#649)\n- Batch metrics exported from the OTLP exporter based on `Resource` and labels. (#626)\n- Add error wrapping to the prometheus exporter. (#631)\n- Update the OTLP exporter batching of traces to use a unique `string` representation of an associated `Resource` as the batching key. (#623)\n- Update OTLP `SpanData` transform to only include the `ParentSpanID` if one exists. (#614)\n- Update `Resource` internal representation to uniquely and reliably identify resources. (#613)\n- Check return value from `CheckpointSet.ForEach` in prometheus exporter. (#622)\n- Ensure spans created by httptrace client tracer reflect operation structure. (#618)\n- Create a new recorder rather than reuse when multiple observations in same epoch for asynchronous instruments. #610\n- The default port the OTLP exporter uses to connect to the OpenTelemetry collector is updated to match the one the collector listens on by default. (#611)\n\n## [0.4.2] - 2020-03-31\n\n### Fixed\n\n- Fix `pre_release.sh` to update version in `sdk/opentelemetry.go`. (#607)\n- Fix time conversion from internal to OTLP in OTLP exporter. (#606)\n\n## [0.4.1] - 2020-03-31\n\n### Fixed\n\n- Update `tag.sh` to create signed tags. (#604)\n\n## [0.4.0] - 2020-03-30\n\n### Added\n\n- New API package `api/metric/registry` that exposes a `MeterImpl` wrapper for use by SDKs to generate unique instruments. (#580)\n- Script to verify examples after a new release. (#579)\n\n### Removed\n\n- The dogstatsd exporter due to lack of support.\n   This additionally removes support for statsd. (#591)\n- `LabelSet` from the metric API.\n   This is replaced by a `[]core.KeyValue` slice. (#595)\n- `Labels` from the metric API's `Meter` interface. (#595)\n\n### Changed\n\n- The metric `export.Labels` became an interface which the SDK implements and the `export` package provides a simple, immutable implementation of this interface intended for testing purposes. (#574)\n- Renamed `internal/metric.Meter` to `MeterImpl`. (#580)\n- Renamed `api/global/internal.obsImpl` to `asyncImpl`. (#580)\n\n### Fixed\n\n- Corrected missing return in mock span. (#582)\n- Update License header for all source files to match CNCF guidelines and include a test to ensure it is present. (#586) (#596)\n- Update to v0.3.0 of the OTLP in the OTLP exporter. (#588)\n- Update pre-release script to be compatible between GNU and BSD based systems. (#592)\n- Add a `RecordBatch` benchmark. (#594)\n- Moved span transforms of the OTLP exporter to the internal package. (#593)\n- Build both go-1.13 and go-1.14 in circleci to test for all supported versions of Go. (#569)\n- Removed unneeded allocation on empty labels in OLTP exporter. (#597)\n- Update `BatchedSpanProcessor` to process the queue until no data but respect max batch size. (#599)\n- Update project documentation godoc.org links to pkg.go.dev. (#602)\n\n## [0.3.0] - 2020-03-21\n\nThis is a first official beta release, which provides almost fully complete metrics, tracing, and context propagation functionality.\nThere is still a possibility of breaking changes.\n\n### Added\n\n- Add `Observer` metric instrument. (#474)\n- Add global `Propagators` functionality to enable deferred initialization for propagators registered before the first Meter SDK is installed. (#494)\n- Simplified export setup pipeline for the jaeger exporter to match other exporters. (#459)\n- The zipkin trace exporter. (#495)\n- The OTLP exporter to export metric and trace telemetry to the OpenTelemetry collector. (#497) (#544) (#545)\n- Add `StatusMessage` field to the trace `Span`. (#524)\n- Context propagation in OpenTracing bridge in terms of OpenTelemetry context propagation. (#525)\n- The `Resource` type was added to the SDK. (#528)\n- The global API now supports a `Tracer` and `Meter` function as shortcuts to getting a global `*Provider` and calling these methods directly. (#538)\n- The metric API now defines a generic `MeterImpl` interface to support general purpose `Meter` construction.\n   Additionally, `SyncImpl` and `AsyncImpl` are added to support general purpose instrument construction. (#560)\n- A metric `Kind` is added to represent the `MeasureKind`, `ObserverKind`, and `CounterKind`. (#560)\n- Scripts to better automate the release process. (#576)\n\n### Changed\n\n- Default to to use `AlwaysSampler` instead of `ProbabilitySampler` to match OpenTelemetry specification. (#506)\n- Renamed `AlwaysSampleSampler` to `AlwaysOnSampler` in the trace API. (#511)\n- Renamed `NeverSampleSampler` to `AlwaysOffSampler` in the trace API. (#511)\n- The `Status` field of the `Span` was changed to `StatusCode` to disambiguate with the added `StatusMessage`. (#524)\n- Updated the trace `Sampler` interface conform to the OpenTelemetry specification. (#531)\n- Rename metric API `Options` to `Config`. (#541)\n- Rename metric `Counter` aggregator to be `Sum`. (#541)\n- Unify metric options into `Option` from instrument specific options. (#541)\n- The trace API's `TraceProvider` now support `Resource`s. (#545)\n- Correct error in zipkin module name. (#548)\n- The jaeger trace exporter now supports `Resource`s. (#551)\n- Metric SDK now supports `Resource`s.\n   The `WithResource` option was added to configure a `Resource` on creation and the `Resource` method was added to the metric `Descriptor` to return the associated `Resource`. (#552)\n- Replace `ErrNoLastValue` and `ErrEmptyDataSet` by `ErrNoData` in the metric SDK. (#557)\n- The stdout trace exporter now supports `Resource`s. (#558)\n- The metric `Descriptor` is now included at the API instead of the SDK. (#560)\n- Replace `Ordered` with an iterator in `export.Labels`. (#567)\n\n### Removed\n\n- The vendor specific Stackdriver. It is now hosted on 3rd party vendor infrastructure. (#452)\n- The `Unregister` method for metric observers as it is not in the OpenTelemetry specification. (#560)\n- `GetDescriptor` from the metric SDK. (#575)\n- The `Gauge` instrument from the metric API. (#537)\n\n### Fixed\n\n- Make histogram aggregator checkpoint consistent. (#438)\n- Update README with import instructions and how to build and test. (#505)\n- The default label encoding was updated to be unique. (#508)\n- Use `NewRoot` in the othttp plugin for public endpoints. (#513)\n- Fix data race in `BatchedSpanProcessor`. (#518)\n- Skip test-386 for Mac OS 10.15.x (Catalina and upwards). #521\n- Use a variable-size array to represent ordered labels in maps. (#523)\n- Update the OTLP protobuf and update changed import path. (#532)\n- Use `StateLocker` implementation in `MinMaxSumCount`. (#546)\n- Eliminate goroutine leak in histogram stress test. (#547)\n- Update OTLP exporter with latest protobuf. (#550)\n- Add filters to the othttp plugin. (#556)\n- Provide an implementation of the `Header*` filters that do not depend on Go 1.14. (#565)\n- Encode labels once during checkpoint.\n   The checkpoint function is executed in a single thread so we can do the encoding lazily before passing the encoded version of labels to the exporter.\n   This is a cheap and quick way to avoid encoding the labels on every collection interval. (#572)\n- Run coverage over all packages in `COVERAGE_MOD_DIR`. (#573)\n\n## [0.2.3] - 2020-03-04\n\n### Added\n\n- `RecordError` method on `Span`s in the trace API to Simplify adding error events to spans. (#473)\n- Configurable push frequency for exporters setup pipeline. (#504)\n\n### Changed\n\n- Rename the `exporter` directory to `exporters`.\n   The `go.opentelemetry.io/otel/exporter/trace/jaeger` package was mistakenly released with a `v1.0.0` tag instead of `v0.1.0`.\n   This resulted in all subsequent releases not becoming the default latest.\n   A consequence of this was that all `go get`s pulled in the incompatible `v0.1.0` release of that package when pulling in more recent packages from other otel packages.\n   Renaming the `exporter` directory to `exporters` fixes this issue by renaming the package and therefore clearing any existing dependency tags.\n   Consequentially, this action also renames *all* exporter packages. (#502)\n\n### Removed\n\n- The `CorrelationContextHeader` constant in the `correlation` package is no longer exported. (#503)\n\n## [0.2.2] - 2020-02-27\n\n### Added\n\n- `HTTPSupplier` interface in the propagation API to specify methods to retrieve and store a single value for a key to be associated with a carrier. (#467)\n- `HTTPExtractor` interface in the propagation API to extract information from an `HTTPSupplier` into a context. (#467)\n- `HTTPInjector` interface in the propagation API to inject information into an `HTTPSupplier.` (#467)\n- `Config` and configuring `Option` to the propagator API. (#467)\n- `Propagators` interface in the propagation API to contain the set of injectors and extractors for all supported carrier formats. (#467)\n- `HTTPPropagator` interface in the propagation API to inject and extract from an `HTTPSupplier.` (#467)\n- `WithInjectors` and `WithExtractors` functions to the propagator API to configure injectors and extractors to use. (#467)\n- `ExtractHTTP` and `InjectHTTP` functions to apply configured HTTP extractors and injectors to a passed context. (#467)\n- Histogram aggregator. (#433)\n- `DefaultPropagator` function and have it return `trace.TraceContext` as the default context propagator. (#456)\n- `AlwaysParentSample` sampler to the trace API. (#455)\n- `WithNewRoot` option function to the trace API to specify the created span should be considered a root span. (#451)\n\n### Changed\n\n- Renamed `WithMap` to `ContextWithMap` in the correlation package. (#481)\n- Renamed `FromContext` to `MapFromContext` in the correlation package. (#481)\n- Move correlation context propagation to correlation package. (#479)\n- Do not default to putting remote span context into links. (#480)\n- `Tracer.WithSpan` updated to accept `StartOptions`. (#472)\n- Renamed `MetricKind` to `Kind` to not stutter in the type usage. (#432)\n- Renamed the `export` package to `metric` to match directory structure. (#432)\n- Rename the `api/distributedcontext` package to `api/correlation`. (#444)\n- Rename the `api/propagators` package to `api/propagation`. (#444)\n- Move the propagators from the `propagators` package into the `trace` API package. (#444)\n- Update `Float64Gauge`, `Int64Gauge`, `Float64Counter`, `Int64Counter`, `Float64Measure`, and `Int64Measure` metric methods to use value receivers instead of pointers. (#462)\n- Moved all dependencies of tools package to a tools directory. (#466)\n\n### Removed\n\n- Binary propagators. (#467)\n- NOOP propagator. (#467)\n\n### Fixed\n\n- Upgraded `github.com/golangci/golangci-lint` from `v1.21.0` to `v1.23.6` in `tools/`. (#492)\n- Fix a possible nil-dereference crash (#478)\n- Correct comments for `InstallNewPipeline` in the stdout exporter. (#483)\n- Correct comments for `InstallNewPipeline` in the dogstatsd exporter. (#484)\n- Correct comments for `InstallNewPipeline` in the prometheus exporter. (#482)\n- Initialize `onError` based on `Config` in prometheus exporter. (#486)\n- Correct module name in prometheus exporter README. (#475)\n- Removed tracer name prefix from span names. (#430)\n- Fix `aggregator_test.go` import package comment. (#431)\n- Improved detail in stdout exporter. (#436)\n- Fix a dependency issue (generate target should depend on stringer, not lint target) in Makefile. (#442)\n- Reorders the Makefile targets within `precommit` target so we generate files and build the code before doing linting, so we can get much nicer errors about syntax errors from the compiler. (#442)\n- Reword function documentation in gRPC plugin. (#446)\n- Send the `span.kind` tag to Jaeger from the jaeger exporter. (#441)\n- Fix `metadataSupplier` in the jaeger exporter to overwrite the header if existing instead of appending to it. (#441)\n- Upgraded to Go 1.13 in CI. (#465)\n- Correct opentelemetry.io URL in trace SDK documentation. (#464)\n- Refactored reference counting logic in SDK determination of stale records. (#468)\n- Add call to `runtime.Gosched` in instrument `acquireHandle` logic to not block the collector. (#469)\n\n## [0.2.1.1] - 2020-01-13\n\n### Fixed\n\n- Use stateful batcher on Prometheus exporter fixing regression introduced in #395. (#428)\n\n## [0.2.1] - 2020-01-08\n\n### Added\n\n- Global meter forwarding implementation.\n   This enables deferred initialization for metric instruments registered before the first Meter SDK is installed. (#392)\n- Global trace forwarding implementation.\n   This enables deferred initialization for tracers registered before the first Trace SDK is installed. (#406)\n- Standardize export pipeline creation in all exporters. (#395)\n- A testing, organization, and comments for 64-bit field alignment. (#418)\n- Script to tag all modules in the project. (#414)\n\n### Changed\n\n- Renamed `propagation` package to `propagators`. (#362)\n- Renamed `B3Propagator` propagator to `B3`. (#362)\n- Renamed `TextFormatPropagator` propagator to `TextFormat`. (#362)\n- Renamed `BinaryPropagator` propagator to `Binary`. (#362)\n- Renamed `BinaryFormatPropagator` propagator to `BinaryFormat`. (#362)\n- Renamed `NoopTextFormatPropagator` propagator to `NoopTextFormat`. (#362)\n- Renamed `TraceContextPropagator` propagator to `TraceContext`. (#362)\n- Renamed `SpanOption` to `StartOption` in the trace API. (#369)\n- Renamed `StartOptions` to `StartConfig` in the trace API. (#369)\n- Renamed `EndOptions` to `EndConfig` in the trace API. (#369)\n- `Number` now has a pointer receiver for its methods. (#375)\n- Renamed `CurrentSpan` to `SpanFromContext` in the trace API. (#379)\n- Renamed `SetCurrentSpan` to `ContextWithSpan` in the trace API. (#379)\n- Renamed `Message` in Event to `Name` in the trace API. (#389)\n- Prometheus exporter no longer aggregates metrics, instead it only exports them. (#385)\n- Renamed `HandleImpl` to `BoundInstrumentImpl` in the metric API. (#400)\n- Renamed `Float64CounterHandle` to `Float64CounterBoundInstrument` in the metric API. (#400)\n- Renamed `Int64CounterHandle` to `Int64CounterBoundInstrument` in the metric API. (#400)\n- Renamed `Float64GaugeHandle` to `Float64GaugeBoundInstrument` in the metric API. (#400)\n- Renamed `Int64GaugeHandle` to `Int64GaugeBoundInstrument` in the metric API. (#400)\n- Renamed `Float64MeasureHandle` to `Float64MeasureBoundInstrument` in the metric API. (#400)\n- Renamed `Int64MeasureHandle` to `Int64MeasureBoundInstrument` in the metric API. (#400)\n- Renamed `Release` method for bound instruments in the metric API to `Unbind`. (#400)\n- Renamed `AcquireHandle` method for bound instruments in the metric API to `Bind`. (#400)\n- Renamed the `File` option in the stdout exporter to `Writer`. (#404)\n- Renamed all `Options` to `Config` for all metric exports where this wasn't already the case.\n\n### Fixed\n\n- Aggregator import path corrected. (#421)\n- Correct links in README. (#368)\n- The README was updated to match latest code changes in its examples. (#374)\n- Don't capitalize error statements. (#375)\n- Fix ignored errors. (#375)\n- Fix ambiguous variable naming. (#375)\n- Removed unnecessary type casting. (#375)\n- Use named parameters. (#375)\n- Updated release schedule. (#378)\n- Correct http-stackdriver example module name. (#394)\n- Removed the `http.request` span in `httptrace` package. (#397)\n- Add comments in the metrics SDK (#399)\n- Initialize checkpoint when creating ddsketch aggregator to prevent panic when merging into a empty one. (#402) (#403)\n- Add documentation of compatible exporters in the README. (#405)\n- Typo fix. (#408)\n- Simplify span check logic in SDK tracer implementation. (#419)\n\n## [0.2.0] - 2019-12-03\n\n### Added\n\n- Unary gRPC tracing example. (#351)\n- Prometheus exporter. (#334)\n- Dogstatsd metrics exporter. (#326)\n\n### Changed\n\n- Rename `MaxSumCount` aggregation to `MinMaxSumCount` and add the `Min` interface for this aggregation. (#352)\n- Rename `GetMeter` to `Meter`. (#357)\n- Rename `HTTPTraceContextPropagator` to `TraceContextPropagator`. (#355)\n- Rename `HTTPB3Propagator` to `B3Propagator`. (#355)\n- Rename `HTTPTraceContextPropagator` to `TraceContextPropagator`. (#355)\n- Move `/global` package to `/api/global`. (#356)\n- Rename `GetTracer` to `Tracer`. (#347)\n\n### Removed\n\n- `SetAttribute` from the `Span` interface in the trace API. (#361)\n- `AddLink` from the `Span` interface in the trace API. (#349)\n- `Link` from the `Span` interface in the trace API. (#349)\n\n### Fixed\n\n- Exclude example directories from coverage report. (#365)\n- Lint make target now implements automatic fixes with `golangci-lint` before a second run to report the remaining issues. (#360)\n- Drop `GO111MODULE` environment variable in Makefile as Go 1.13 is the project specified minimum version and this is environment variable is not needed for that version of Go. (#359)\n- Run the race checker for all test. (#354)\n- Redundant commands in the Makefile are removed. (#354)\n- Split the `generate` and `lint` targets of the Makefile. (#354)\n- Renames `circle-ci` target to more generic `ci` in Makefile. (#354)\n- Add example Prometheus binary to gitignore. (#358)\n- Support negative numbers with the `MaxSumCount`. (#335)\n- Resolve race conditions in `push_test.go` identified in #339. (#340)\n- Use `/usr/bin/env bash` as a shebang in scripts rather than `/bin/bash`. (#336)\n- Trace benchmark now tests both `AlwaysSample` and `NeverSample`.\n   Previously it was testing `AlwaysSample` twice. (#325)\n- Trace benchmark now uses a `[]byte` for `TraceID` to fix failing test. (#325)\n- Added a trace benchmark to test variadic functions in `setAttribute` vs `setAttributes` (#325)\n- The `defaultkeys` batcher was only using the encoded label set as its map key while building a checkpoint.\n   This allowed distinct label sets through, but any metrics sharing a label set could be overwritten or merged incorrectly.\n   This was corrected. (#333)\n\n## [0.1.2] - 2019-11-18\n\n### Fixed\n\n- Optimized the `simplelru` map for attributes to reduce the number of allocations. (#328)\n- Removed unnecessary unslicing of parameters that are already a slice. (#324)\n\n## [0.1.1] - 2019-11-18\n\nThis release contains a Metrics SDK with stdout exporter and supports basic aggregations such as counter, gauges, array, maxsumcount, and ddsketch.\n\n### Added\n\n- Metrics stdout export pipeline. (#265)\n- Array aggregation for raw measure metrics. (#282)\n- The core.Value now have a `MarshalJSON` method. (#281)\n\n### Removed\n\n- `WithService`, `WithResources`, and `WithComponent` methods of tracers. (#314)\n- Prefix slash in `Tracer.Start()` for the Jaeger example. (#292)\n\n### Changed\n\n- Allocation in LabelSet construction to reduce GC overhead. (#318)\n- `trace.WithAttributes` to append values instead of replacing (#315)\n- Use a formula for tolerance in sampling tests. (#298)\n- Move export types into trace and metric-specific sub-directories. (#289)\n- `SpanKind` back to being based on an `int` type. (#288)\n\n### Fixed\n\n- URL to OpenTelemetry website in README. (#323)\n- Name of othttp default tracer. (#321)\n- `ExportSpans` for the stackdriver exporter now handles `nil` context. (#294)\n- CI modules cache to correctly restore/save from/to the cache. (#316)\n- Fix metric SDK race condition between `LoadOrStore` and the assignment `rec.recorder = i.meter.exporter.AggregatorFor(rec)`. (#293)\n- README now reflects the new code structure introduced with these changes. (#291)\n- Make the basic example work. (#279)\n\n## [0.1.0] - 2019-11-04\n\nThis is the first release of open-telemetry go library.\nIt contains api and sdk for trace and meter.\n\n### Added\n\n- Initial OpenTelemetry trace and metric API prototypes.\n- Initial OpenTelemetry trace, metric, and export SDK packages.\n- A wireframe bridge to support compatibility with OpenTracing.\n- Example code for a basic, http-stackdriver, http, jaeger, and named tracer setup.\n- Exporters for Jaeger, Stackdriver, and stdout.\n- Propagators for binary, B3, and trace-context protocols.\n- Project information and guidelines in the form of a README and CONTRIBUTING.\n- Tools to build the project and a Makefile to automate the process.\n- Apache-2.0 license.\n- CircleCI build CI manifest files.\n- CODEOWNERS file to track owners of this project.\n\n[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.28.0...HEAD\n[1.28.0/0.50.0/0.4.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.28.0\n[1.27.0/0.49.0/0.3.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.27.0\n[1.26.0/0.48.0/0.2.0-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.26.0\n[1.25.0/0.47.0/0.0.8/0.1.0-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.25.0\n[1.24.0/0.46.0/0.0.1-alpha]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.24.0\n[1.23.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.23.1\n[1.23.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.23.0\n[1.23.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.23.0-rc.1\n[1.22.0/0.45.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.22.0\n[1.21.0/0.44.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.21.0\n[1.20.0/0.43.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.20.0\n[1.19.0/0.42.0/0.0.7]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.19.0\n[1.19.0-rc.1/0.42.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.19.0-rc.1\n[1.18.0/0.41.0/0.0.6]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.18.0\n[1.17.0/0.40.0/0.0.5]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.17.0\n[1.16.0/0.39.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.16.0\n[1.16.0-rc.1/0.39.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.16.0-rc.1\n[1.15.1/0.38.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.1\n[1.15.0/0.38.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0\n[1.15.0-rc.2/0.38.0-rc.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.2\n[1.15.0-rc.1/0.38.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.1\n[1.14.0/0.37.0/0.0.4]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.14.0\n[1.13.0/0.36.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.13.0\n[1.12.0/0.35.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.12.0\n[1.11.2/0.34.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.2\n[1.11.1/0.33.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.1\n[1.11.0/0.32.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.11.0\n[0.32.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/sdk/metric/v0.32.2\n[0.32.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/sdk/metric/v0.32.1\n[0.32.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/sdk/metric/v0.32.0\n[1.10.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.10.0\n[1.9.0/0.0.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.9.0\n[1.8.0/0.31.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.8.0\n[1.7.0/0.30.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.7.0\n[0.29.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/metric/v0.29.0\n[1.6.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.3\n[1.6.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.2\n[1.6.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.1\n[1.6.0/0.28.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.6.0\n[1.5.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.5.0\n[1.4.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.4.1\n[1.4.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.4.0\n[1.3.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.3.0\n[1.2.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.2.0\n[1.1.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.1.0\n[1.0.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.1\n[Metrics 0.24.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/metric/v0.24.0\n[1.0.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0\n[1.0.0-RC3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0-RC3\n[1.0.0-RC2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0-RC2\n[Experimental Metrics v0.22.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/metric/v0.22.0\n[1.0.0-RC1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.0.0-RC1\n[0.20.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.20.0\n[0.19.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.19.0\n[0.18.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.18.0\n[0.17.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.17.0\n[0.16.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.16.0\n[0.15.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.15.0\n[0.14.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.14.0\n[0.13.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.13.0\n[0.12.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.12.0\n[0.11.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.11.0\n[0.10.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.10.0\n[0.9.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.9.0\n[0.8.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.8.0\n[0.7.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.7.0\n[0.6.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.6.0\n[0.5.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.5.0\n[0.4.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.3\n[0.4.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.2\n[0.4.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.1\n[0.4.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.4.0\n[0.3.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.3.0\n[0.2.3]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.3\n[0.2.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.2\n[0.2.1.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.1.1\n[0.2.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.1\n[0.2.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.2.0\n[0.1.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.1.2\n[0.1.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.1.1\n[0.1.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v0.1.0\n\n[Go 1.22]: https://go.dev/doc/go1.22\n[Go 1.21]: https://go.dev/doc/go1.21\n[Go 1.20]: https://go.dev/doc/go1.20\n[Go 1.19]: https://go.dev/doc/go1.19\n[Go 1.18]: https://go.dev/doc/go1.18\n\n[metric API]:https://pkg.go.dev/go.opentelemetry.io/otel/metric\n[metric SDK]:https://pkg.go.dev/go.opentelemetry.io/otel/sdk/metric\n[trace API]:https://pkg.go.dev/go.opentelemetry.io/otel/trace\n\n[GO-2024-2687]: https://pkg.go.dev/vuln/GO-2024-2687\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/CODEOWNERS",
    "content": "#####################################################\n#\n# List of approvers for this repository\n#\n#####################################################\n#\n# Learn about membership in OpenTelemetry community:\n#  https://github.com/open-telemetry/community/blob/main/community-membership.md\n#\n#\n# Learn about CODEOWNERS file format:\n#  https://help.github.com/en/articles/about-code-owners\n#\n\n* @MrAlias @XSAM @dashpole @MadVikingGod @pellared @hanyuancheung @dmathieu\n\nCODEOWNERS @MrAlias @MadVikingGod @pellared @dashpole @XSAM @dmathieu\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/CONTRIBUTING.md",
    "content": "# Contributing to opentelemetry-go\n\nThe Go special interest group (SIG) meets regularly. See the\nOpenTelemetry\n[community](https://github.com/open-telemetry/community#golang-sdk)\nrepo for information on this and other language SIGs.\n\nSee the [public meeting\nnotes](https://docs.google.com/document/d/1E5e7Ld0NuU1iVvf-42tOBpu2VBBLYnh73GJuITGJTTU/edit)\nfor a summary description of past meetings. To request edit access,\njoin the meeting or get in touch on\n[Slack](https://cloud-native.slack.com/archives/C01NPAXACKT).\n\n## Development\n\nYou can view and edit the source code by cloning this repository:\n\n```sh\ngit clone https://github.com/open-telemetry/opentelemetry-go.git\n```\n\nRun `make test` to run the tests instead of `go test`.\n\nThere are some generated files checked into the repo. To make sure\nthat the generated files are up-to-date, run `make` (or `make\nprecommit` - the `precommit` target is the default).\n\nThe `precommit` target also fixes the formatting of the code and\nchecks the status of the go module files.\n\nAdditionally, there is a `codespell` target that checks for common\ntypos in the code. It is not run by default, but you can run it\nmanually with `make codespell`. It will set up a virtual environment\nin `venv` and install `codespell` there.\n\nIf after running `make precommit` the output of `git status` contains\n`nothing to commit, working tree clean` then it means that everything\nis up-to-date and properly formatted.\n\n## Pull Requests\n\n### How to Send Pull Requests\n\nEveryone is welcome to contribute code to `opentelemetry-go` via\nGitHub pull requests (PRs).\n\nTo create a new PR, fork the project in GitHub and clone the upstream\nrepo:\n\n```sh\ngo get -d go.opentelemetry.io/otel\n```\n\n(This may print some warning about \"build constraints exclude all Go\nfiles\", just ignore it.)\n\nThis will put the project in `${GOPATH}/src/go.opentelemetry.io/otel`. You\ncan alternatively use `git` directly with:\n\n```sh\ngit clone https://github.com/open-telemetry/opentelemetry-go\n```\n\n(Note that `git clone` is *not* using the `go.opentelemetry.io/otel` name -\nthat name is a kind of a redirector to GitHub that `go get` can\nunderstand, but `git` does not.)\n\nThis would put the project in the `opentelemetry-go` directory in\ncurrent working directory.\n\nEnter the newly created directory and add your fork as a new remote:\n\n```sh\ngit remote add <YOUR_FORK> git@github.com:<YOUR_GITHUB_USERNAME>/opentelemetry-go\n```\n\nCheck out a new branch, make modifications, run linters and tests, update\n`CHANGELOG.md`, and push the branch to your fork:\n\n```sh\ngit checkout -b <YOUR_BRANCH_NAME>\n# edit files\n# update changelog\nmake precommit\ngit add -p\ngit commit\ngit push <YOUR_FORK> <YOUR_BRANCH_NAME>\n```\n\nOpen a pull request against the main `opentelemetry-go` repo. Be sure to add the pull\nrequest ID to the entry you added to `CHANGELOG.md`.\n\nAvoid rebasing and force-pushing to your branch to facilitate reviewing the pull request.\nRewriting Git history makes it difficult to keep track of iterations during code review.\nAll pull requests are squashed to a single commit upon merge to `main`.\n\n### How to Receive Comments\n\n* If the PR is not ready for review, please put `[WIP]` in the title,\n  tag it as `work-in-progress`, or mark it as\n  [`draft`](https://github.blog/2019-02-14-introducing-draft-pull-requests/).\n* Make sure CLA is signed and CI is clear.\n\n### How to Get PRs Merged\n\nA PR is considered **ready to merge** when:\n\n* It has received two qualified approvals[^1].\n\n  This is not enforced through automation, but needs to be validated by the\n  maintainer merging.\n  * The qualified approvals need to be from [Approver]s/[Maintainer]s\n    affiliated with different companies. Two qualified approvals from\n    [Approver]s or [Maintainer]s affiliated with the same company counts as a\n    single qualified approval.\n  * PRs introducing changes that have already been discussed and consensus\n    reached only need one qualified approval. The discussion and resolution\n    needs to be linked to the PR.\n  * Trivial changes[^2] only need one qualified approval.\n\n* All feedback has been addressed.\n  * All PR comments and suggestions are resolved.\n  * All GitHub Pull Request reviews with a status of \"Request changes\" have\n    been addressed. Another review by the objecting reviewer with a different\n    status can be submitted to clear the original review, or the review can be\n    dismissed by a [Maintainer] when the issues from the original review have\n    been addressed.\n  * Any comments or reviews that cannot be resolved between the PR author and\n    reviewers can be submitted to the community [Approver]s and [Maintainer]s\n    during the weekly SIG meeting. If consensus is reached among the\n    [Approver]s and [Maintainer]s during the SIG meeting the objections to the\n    PR may be dismissed or resolved or the PR closed by a [Maintainer].\n  * Any substantive changes to the PR require existing Approval reviews be\n    cleared unless the approver explicitly states that their approval persists\n    across changes. This includes changes resulting from other feedback.\n    [Approver]s and [Maintainer]s can help in clearing reviews and they should\n    be consulted if there are any questions.\n\n* The PR branch is up to date with the base branch it is merging into.\n  * To ensure this does not block the PR, it should be configured to allow\n    maintainers to update it.\n\n* It has been open for review for at least one working day. This gives people\n  reasonable time to review.\n  * Trivial changes[^2] do not have to wait for one day and may be merged with\n    a single [Maintainer]'s approval.\n\n* All required GitHub workflows have succeeded.\n* Urgent fix can take exception as long as it has been actively communicated\n  among [Maintainer]s.\n\nAny [Maintainer] can merge the PR once the above criteria have been met.\n\n[^1]: A qualified approval is a GitHub Pull Request review with \"Approve\"\n  status from an OpenTelemetry Go [Approver] or [Maintainer].\n[^2]: Trivial changes include: typo corrections, cosmetic non-substantive\n  changes, documentation corrections or updates, dependency updates, etc.\n\n## Design Choices\n\nAs with other OpenTelemetry clients, opentelemetry-go follows the\n[OpenTelemetry Specification](https://opentelemetry.io/docs/specs/otel).\n\nIt's especially valuable to read through the [library\nguidelines](https://opentelemetry.io/docs/specs/otel/library-guidelines).\n\n### Focus on Capabilities, Not Structure Compliance\n\nOpenTelemetry is an evolving specification, one where the desires and\nuse cases are clear, but the method to satisfy those uses cases are\nnot.\n\nAs such, Contributions should provide functionality and behavior that\nconforms to the specification, but the interface and structure is\nflexible.\n\nIt is preferable to have contributions follow the idioms of the\nlanguage rather than conform to specific API names or argument\npatterns in the spec.\n\nFor a deeper discussion, see\n[this](https://github.com/open-telemetry/opentelemetry-specification/issues/165).\n\n## Documentation\n\nEach (non-internal, non-test) package must be documented using\n[Go Doc Comments](https://go.dev/doc/comment),\npreferably in a `doc.go` file.\n\nPrefer using [Examples](https://pkg.go.dev/testing#hdr-Examples)\ninstead of putting code snippets in Go doc comments.\nIn some cases, you can even create [Testable Examples](https://go.dev/blog/examples).\n\nYou can install and run a \"local Go Doc site\" in the following way:\n\n  ```sh\n  go install golang.org/x/pkgsite/cmd/pkgsite@latest\n  pkgsite\n  ```\n\n[`go.opentelemetry.io/otel/metric`](https://pkg.go.dev/go.opentelemetry.io/otel/metric)\nis an example of a very well-documented package.\n\n### README files\n\nEach (non-internal, non-test, non-documentation) package must contain a\n`README.md` file containing at least a title, and a `pkg.go.dev` badge.\n\nThe README should not be a repetition of Go doc comments.\n\nYou can verify the presence of all README files with the `make verify-readmes`\ncommand.\n\n## Style Guide\n\nOne of the primary goals of this project is that it is actually used by\ndevelopers. With this goal in mind the project strives to build\nuser-friendly and idiomatic Go code adhering to the Go community's best\npractices.\n\nFor a non-comprehensive but foundational overview of these best practices\nthe [Effective Go](https://golang.org/doc/effective_go.html) documentation\nis an excellent starting place.\n\nAs a convenience for developers building this project the `make precommit`\nwill format, lint, validate, and in some cases fix the changes you plan to\nsubmit. This check will need to pass for your changes to be able to be\nmerged.\n\nIn addition to idiomatic Go, the project has adopted certain standards for\nimplementations of common patterns. These standards should be followed as a\ndefault, and if they are not followed documentation needs to be included as\nto the reasons why.\n\n### Configuration\n\nWhen creating an instantiation function for a complex `type T struct`, it is\nuseful to allow variable number of options to be applied. However, the strong\ntype system of Go restricts the function design options. There are a few ways\nto solve this problem, but we have landed on the following design.\n\n#### `config`\n\nConfiguration should be held in a `struct` named `config`, or prefixed with\nspecific type name this Configuration applies to if there are multiple\n`config` in the package. This type must contain configuration options.\n\n```go\n// config contains configuration options for a thing.\ntype config struct {\n\t// options ...\n}\n```\n\nIn general the `config` type will not need to be used externally to the\npackage and should be unexported. If, however, it is expected that the user\nwill likely want to build custom options for the configuration, the `config`\nshould be exported. Please, include in the documentation for the `config`\nhow the user can extend the configuration.\n\nIt is important that internal `config` are not shared across package boundaries.\nMeaning a `config` from one package should not be directly used by another. The\none exception is the API packages.  The configs from the base API, eg.\n`go.opentelemetry.io/otel/trace.TracerConfig` and\n`go.opentelemetry.io/otel/metric.InstrumentConfig`, are intended to be consumed\nby the SDK therefore it is expected that these are exported.\n\nWhen a config is exported we want to maintain forward and backward\ncompatibility, to achieve this no fields should be exported but should\ninstead be accessed by methods.\n\nOptionally, it is common to include a `newConfig` function (with the same\nnaming scheme). This function wraps any defaults setting and looping over\nall options to create a configured `config`.\n\n```go\n// newConfig returns an appropriately configured config.\nfunc newConfig(options ...Option) config {\n\t// Set default values for config.\n\tconfig := config{/* […] */}\n\tfor _, option := range options {\n\t\tconfig = option.apply(config)\n\t}\n\t// Perform any validation here.\n\treturn config\n}\n```\n\nIf validation of the `config` options is also performed this can return an\nerror as well that is expected to be handled by the instantiation function\nor propagated to the user.\n\nGiven the design goal of not having the user need to work with the `config`,\nthe `newConfig` function should also be unexported.\n\n#### `Option`\n\nTo set the value of the options a `config` contains, a corresponding\n`Option` interface type should be used.\n\n```go\ntype Option interface {\n\tapply(config) config\n}\n```\n\nHaving `apply` unexported makes sure that it will not be used externally.\nMoreover, the interface becomes sealed so the user cannot easily implement\nthe interface on its own.\n\nThe `apply` method should return a modified version of the passed config.\nThis approach, instead of passing a pointer, is used to prevent the config from being allocated to the heap.\n\nThe name of the interface should be prefixed in the same way the\ncorresponding `config` is (if at all).\n\n#### Options\n\nAll user configurable options for a `config` must have a related unexported\nimplementation of the `Option` interface and an exported configuration\nfunction that wraps this implementation.\n\nThe wrapping function name should be prefixed with `With*` (or in the\nspecial case of a boolean options `Without*`) and should have the following\nfunction signature.\n\n```go\nfunc With*(…) Option { … }\n```\n\n##### `bool` Options\n\n```go\ntype defaultFalseOption bool\n\nfunc (o defaultFalseOption) apply(c config) config {\n\tc.Bool = bool(o)\n    return c\n}\n\n// WithOption sets a T to have an option included.\nfunc WithOption() Option {\n\treturn defaultFalseOption(true)\n}\n```\n\n```go\ntype defaultTrueOption bool\n\nfunc (o defaultTrueOption) apply(c config) config {\n\tc.Bool = bool(o)\n    return c\n}\n\n// WithoutOption sets a T to have Bool option excluded.\nfunc WithoutOption() Option {\n\treturn defaultTrueOption(false)\n}\n```\n\n##### Declared Type Options\n\n```go\ntype myTypeOption struct {\n\tMyType MyType\n}\n\nfunc (o myTypeOption) apply(c config) config {\n\tc.MyType = o.MyType\n    return c\n}\n\n// WithMyType sets T to have include MyType.\nfunc WithMyType(t MyType) Option {\n\treturn myTypeOption{t}\n}\n```\n\n##### Functional Options\n\n```go\ntype optionFunc func(config) config\n\nfunc (fn optionFunc) apply(c config) config {\n\treturn fn(c)\n}\n\n// WithMyType sets t as MyType.\nfunc WithMyType(t MyType) Option {\n\treturn optionFunc(func(c config) config {\n\t\tc.MyType = t\n        return c\n\t})\n}\n```\n\n#### Instantiation\n\nUsing this configuration pattern to configure instantiation with a `NewT`\nfunction.\n\n```go\nfunc NewT(options ...Option) T {…}\n```\n\nAny required parameters can be declared before the variadic `options`.\n\n#### Dealing with Overlap\n\nSometimes there are multiple complex `struct` that share common\nconfiguration and also have distinct configuration. To avoid repeated\nportions of `config`s, a common `config` can be used with the union of\noptions being handled with the `Option` interface.\n\nFor example.\n\n```go\n// config holds options for all animals.\ntype config struct {\n\tWeight      float64\n\tColor       string\n\tMaxAltitude float64\n}\n\n// DogOption apply Dog specific options.\ntype DogOption interface {\n\tapplyDog(config) config\n}\n\n// BirdOption apply Bird specific options.\ntype BirdOption interface {\n\tapplyBird(config) config\n}\n\n// Option apply options for all animals.\ntype Option interface {\n\tBirdOption\n\tDogOption\n}\n\ntype weightOption float64\n\nfunc (o weightOption) applyDog(c config) config {\n\tc.Weight = float64(o)\n\treturn c\n}\n\nfunc (o weightOption) applyBird(c config) config {\n\tc.Weight = float64(o)\n\treturn c\n}\n\nfunc WithWeight(w float64) Option { return weightOption(w) }\n\ntype furColorOption string\n\nfunc (o furColorOption) applyDog(c config) config {\n\tc.Color = string(o)\n\treturn c\n}\n\nfunc WithFurColor(c string) DogOption { return furColorOption(c) }\n\ntype maxAltitudeOption float64\n\nfunc (o maxAltitudeOption) applyBird(c config) config {\n\tc.MaxAltitude = float64(o)\n\treturn c\n}\n\nfunc WithMaxAltitude(a float64) BirdOption { return maxAltitudeOption(a) }\n\nfunc NewDog(name string, o ...DogOption) Dog    {…}\nfunc NewBird(name string, o ...BirdOption) Bird {…}\n```\n\n### Interfaces\n\nTo allow other developers to better comprehend the code, it is important\nto ensure it is sufficiently documented. One simple measure that contributes\nto this aim is self-documenting by naming method parameters. Therefore,\nwhere appropriate, methods of every exported interface type should have\ntheir parameters appropriately named.\n\n#### Interface Stability\n\nAll exported stable interfaces that include the following warning in their\ndocumentation are allowed to be extended with additional methods.\n\n> Warning: methods may be added to this interface in minor releases.\n\nThese interfaces are defined by the OpenTelemetry specification and will be\nupdated as the specification evolves.\n\nOtherwise, stable interfaces MUST NOT be modified.\n\n#### How to Change Specification Interfaces\n\nWhen an API change must be made, we will update the SDK with the new method one\nrelease before the API change. This will allow the SDK one version before the\nAPI change to work seamlessly with the new API.\n\nIf an incompatible version of the SDK is used with the new API the application\nwill fail to compile.\n\n#### How Not to Change Specification Interfaces\n\nWe have explored using a v2 of the API to change interfaces and found that there\nwas no way to introduce a v2 and have it work seamlessly with the v1 of the API.\nProblems happened with libraries that upgraded to v2 when an application did not,\nand would not produce any telemetry.\n\nMore detail of the approaches considered and their limitations can be found in\nthe [Use a V2 API to evolve interfaces](https://github.com/open-telemetry/opentelemetry-go/issues/3920)\nissue.\n\n#### How to Change Other Interfaces\n\nIf new functionality is needed for an interface that cannot be changed it MUST\nbe added by including an additional interface. That added interface can be a\nsimple interface for the specific functionality that you want to add or it can\nbe a super-set of the original interface. For example, if you wanted to a\n`Close` method to the `Exporter` interface:\n\n```go\ntype Exporter interface {\n\tExport()\n}\n```\n\nA new interface, `Closer`, can be added:\n\n```go\ntype Closer interface {\n\tClose()\n}\n```\n\nCode that is passed the `Exporter` interface can now check to see if the passed\nvalue also satisfies the new interface. E.g.\n\n```go\nfunc caller(e Exporter) {\n\t/* ... */\n\tif c, ok := e.(Closer); ok {\n\t\tc.Close()\n\t}\n\t/* ... */\n}\n```\n\nAlternatively, a new type that is the super-set of an `Exporter` can be created.\n\n```go\ntype ClosingExporter struct {\n\tExporter\n\tClose()\n}\n```\n\nThis new type can be used similar to the simple interface above in that a\npassed `Exporter` type can be asserted to satisfy the `ClosingExporter` type\nand the `Close` method called.\n\nThis super-set approach can be useful if there is explicit behavior that needs\nto be coupled with the original type and passed as a unified type to a new\nfunction, but, because of this coupling, it also limits the applicability of\nthe added functionality. If there exist other interfaces where this\nfunctionality should be added, each one will need their own super-set\ninterfaces and will duplicate the pattern. For this reason, the simple targeted\ninterface that defines the specific functionality should be preferred.\n\nSee also:\n[Keeping Your Modules Compatible: Working with interfaces](https://go.dev/blog/module-compatibility#working-with-interfaces).\n\n### Testing\n\nThe tests should never leak goroutines.\n\nUse the term `ConcurrentSafe` in the test name when it aims to verify the\nabsence of race conditions.\n\n### Internal packages\n\nThe use of internal packages should be scoped to a single module. A sub-module\nshould never import from a parent internal package. This creates a coupling\nbetween the two modules where a user can upgrade the parent without the child\nand if the internal package API has changed it will fail to upgrade[^3].\n\nThere are two known exceptions to this rule:\n\n- `go.opentelemetry.io/otel/internal/global`\n  - This package manages global state for all of opentelemetry-go. It needs to\n  be a single package in order to ensure the uniqueness of the global state.\n- `go.opentelemetry.io/otel/internal/baggage`\n  - This package provides values in a `context.Context` that need to be\n  recognized by `go.opentelemetry.io/otel/baggage` and\n  `go.opentelemetry.io/otel/bridge/opentracing` but remain private.\n\nIf you have duplicate code in multiple modules, make that code into a Go\ntemplate stored in `go.opentelemetry.io/otel/internal/shared` and use [gotmpl]\nto render the templates in the desired locations. See [#4404] for an example of\nthis.\n\n[^3]: https://github.com/open-telemetry/opentelemetry-go/issues/3548\n\n### Ignoring context cancellation\n\nOpenTelemetry API implementations need to ignore the cancellation of the context that are\npassed when recording a value (e.g. starting a span, recording a measurement, emitting a log).\nRecording methods should not return an error describing the cancellation state of the context\nwhen they complete, nor should they abort any work.\n\nThis rule may not apply if the OpenTelemetry specification defines a timeout mechanism for\nthe method. In that case the context cancellation can be used for the timeout with the\nrestriction that this behavior is documented for the method. Otherwise, timeouts\nare expected to be handled by the user calling the API, not the implementation.\n\nStoppage of the telemetry pipeline is handled by calling the appropriate `Shutdown` method\nof a provider. It is assumed the context passed from a user is not used for this purpose.\n\nOutside of the direct recording of telemetry from the API (e.g. exporting telemetry,\nforce flushing telemetry, shutting down a signal provider) the context cancellation\nshould be honored. This means all work done on behalf of the user provided context\nshould be canceled.\n\n## Approvers and Maintainers\n\n### Approvers\n\n- [Chester Cheung](https://github.com/hanyuancheung), Tencent\n\n### Maintainers\n\n- [Aaron Clawson](https://github.com/MadVikingGod), LightStep\n- [Damien Mathieu](https://github.com/dmathieu), Elastic\n- [David Ashpole](https://github.com/dashpole), Google\n- [Robert Pająk](https://github.com/pellared), Splunk\n- [Sam Xie](https://github.com/XSAM), Cisco/AppDynamics\n- [Tyler Yahn](https://github.com/MrAlias), Splunk\n\n### Emeritus\n\n- [Liz Fong-Jones](https://github.com/lizthegrey), Honeycomb\n- [Gustavo Silva Paiva](https://github.com/paivagustavo), LightStep\n- [Josh MacDonald](https://github.com/jmacd), LightStep\n- [Anthony Mirabella](https://github.com/Aneurysm9), AWS\n- [Evan Torrie](https://github.com/evantorrie), Yahoo\n\n### Become an Approver or a Maintainer\n\nSee the [community membership document in OpenTelemetry community\nrepo](https://github.com/open-telemetry/community/blob/main/community-membership.md).\n\n[Approver]: #approvers\n[Maintainer]: #maintainers\n[gotmpl]: https://pkg.go.dev/go.opentelemetry.io/build-tools/gotmpl\n[#4404]: https://github.com/open-telemetry/opentelemetry-go/pull/4404\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/Makefile",
    "content": "# Copyright The OpenTelemetry Authors\n# SPDX-License-Identifier: Apache-2.0\n\nTOOLS_MOD_DIR := ./internal/tools\n\nALL_DOCS := $(shell find . -name '*.md' -type f | sort)\nALL_GO_MOD_DIRS := $(shell find . -type f -name 'go.mod' -exec dirname {} \\; | sort)\nOTEL_GO_MOD_DIRS := $(filter-out $(TOOLS_MOD_DIR), $(ALL_GO_MOD_DIRS))\nALL_COVERAGE_MOD_DIRS := $(shell find . -type f -name 'go.mod' -exec dirname {} \\; | grep -E -v '^./example|^$(TOOLS_MOD_DIR)' | sort)\n\nGO = go\nTIMEOUT = 60\n\n.DEFAULT_GOAL := precommit\n\n.PHONY: precommit ci\nprecommit: generate license-check misspell go-mod-tidy golangci-lint-fix verify-readmes verify-mods test-default\nci: generate license-check lint vanity-import-check verify-readmes verify-mods build test-default check-clean-work-tree test-coverage\n\n# Tools\n\nTOOLS = $(CURDIR)/.tools\n\n$(TOOLS):\n\t@mkdir -p $@\n$(TOOLS)/%: $(TOOLS_MOD_DIR)/go.mod | $(TOOLS)\n\tcd $(TOOLS_MOD_DIR) && \\\n\t$(GO) build -o $@ $(PACKAGE)\n\nMULTIMOD = $(TOOLS)/multimod\n$(TOOLS)/multimod: PACKAGE=go.opentelemetry.io/build-tools/multimod\n\nSEMCONVGEN = $(TOOLS)/semconvgen\n$(TOOLS)/semconvgen: PACKAGE=go.opentelemetry.io/build-tools/semconvgen\n\nCROSSLINK = $(TOOLS)/crosslink\n$(TOOLS)/crosslink: PACKAGE=go.opentelemetry.io/build-tools/crosslink\n\nSEMCONVKIT = $(TOOLS)/semconvkit\n$(TOOLS)/semconvkit: PACKAGE=go.opentelemetry.io/otel/$(TOOLS_MOD_DIR)/semconvkit\n\nGOLANGCI_LINT = $(TOOLS)/golangci-lint\n$(TOOLS)/golangci-lint: PACKAGE=github.com/golangci/golangci-lint/cmd/golangci-lint\n\nMISSPELL = $(TOOLS)/misspell\n$(TOOLS)/misspell: PACKAGE=github.com/client9/misspell/cmd/misspell\n\nGOCOVMERGE = $(TOOLS)/gocovmerge\n$(TOOLS)/gocovmerge: PACKAGE=github.com/wadey/gocovmerge\n\nSTRINGER = $(TOOLS)/stringer\n$(TOOLS)/stringer: PACKAGE=golang.org/x/tools/cmd/stringer\n\nPORTO = $(TOOLS)/porto\n$(TOOLS)/porto: PACKAGE=github.com/jcchavezs/porto/cmd/porto\n\nGOJQ = $(TOOLS)/gojq\n$(TOOLS)/gojq: PACKAGE=github.com/itchyny/gojq/cmd/gojq\n\nGOTMPL = $(TOOLS)/gotmpl\n$(GOTMPL): PACKAGE=go.opentelemetry.io/build-tools/gotmpl\n\nGORELEASE = $(TOOLS)/gorelease\n$(GORELEASE): PACKAGE=golang.org/x/exp/cmd/gorelease\n\nGOVULNCHECK = $(TOOLS)/govulncheck\n$(TOOLS)/govulncheck: PACKAGE=golang.org/x/vuln/cmd/govulncheck\n\n.PHONY: tools\ntools: $(CROSSLINK) $(GOLANGCI_LINT) $(MISSPELL) $(GOCOVMERGE) $(STRINGER) $(PORTO) $(GOJQ) $(SEMCONVGEN) $(MULTIMOD) $(SEMCONVKIT) $(GOTMPL) $(GORELEASE)\n\n# Virtualized python tools via docker\n\n# The directory where the virtual environment is created.\nVENVDIR := venv\n\n# The directory where the python tools are installed.\nPYTOOLS := $(VENVDIR)/bin\n\n# The pip executable in the virtual environment.\nPIP := $(PYTOOLS)/pip\n\n# The directory in the docker image where the current directory is mounted.\nWORKDIR := /workdir\n\n# The python image to use for the virtual environment.\nPYTHONIMAGE := python:3.11.3-slim-bullseye\n\n# Run the python image with the current directory mounted.\nDOCKERPY := docker run --rm -v \"$(CURDIR):$(WORKDIR)\" -w $(WORKDIR) $(PYTHONIMAGE)\n\n# Create a virtual environment for Python tools.\n$(PYTOOLS):\n# The `--upgrade` flag is needed to ensure that the virtual environment is\n# created with the latest pip version.\n\t@$(DOCKERPY) bash -c \"python3 -m venv $(VENVDIR) && $(PIP) install --upgrade pip\"\n\n# Install python packages into the virtual environment.\n$(PYTOOLS)/%: $(PYTOOLS)\n\t@$(DOCKERPY) $(PIP) install -r requirements.txt\n\nCODESPELL = $(PYTOOLS)/codespell\n$(CODESPELL): PACKAGE=codespell\n\n# Generate\n\n.PHONY: generate\ngenerate: go-generate vanity-import-fix\n\n.PHONY: go-generate\ngo-generate: $(OTEL_GO_MOD_DIRS:%=go-generate/%)\ngo-generate/%: DIR=$*\ngo-generate/%: $(STRINGER) $(GOTMPL)\n\t@echo \"$(GO) generate $(DIR)/...\" \\\n\t\t&& cd $(DIR) \\\n\t\t&& PATH=\"$(TOOLS):$${PATH}\" $(GO) generate ./...\n\n.PHONY: vanity-import-fix\nvanity-import-fix: $(PORTO)\n\t@$(PORTO) --include-internal -w .\n\n# Generate go.work file for local development.\n.PHONY: go-work\ngo-work: $(CROSSLINK)\n\t$(CROSSLINK) work --root=$(shell pwd)\n\n# Build\n\n.PHONY: build\n\nbuild: $(OTEL_GO_MOD_DIRS:%=build/%) $(OTEL_GO_MOD_DIRS:%=build-tests/%)\nbuild/%: DIR=$*\nbuild/%:\n\t@echo \"$(GO) build $(DIR)/...\" \\\n\t\t&& cd $(DIR) \\\n\t\t&& $(GO) build ./...\n\nbuild-tests/%: DIR=$*\nbuild-tests/%:\n\t@echo \"$(GO) build tests $(DIR)/...\" \\\n\t\t&& cd $(DIR) \\\n\t\t&& $(GO) list ./... \\\n\t\t| grep -v third_party \\\n\t\t| xargs $(GO) test -vet=off -run xxxxxMatchNothingxxxxx >/dev/null\n\n# Tests\n\nTEST_TARGETS := test-default test-bench test-short test-verbose test-race\n.PHONY: $(TEST_TARGETS) test\ntest-default test-race: ARGS=-race\ntest-bench:   ARGS=-run=xxxxxMatchNothingxxxxx -test.benchtime=1ms -bench=.\ntest-short:   ARGS=-short\ntest-verbose: ARGS=-v -race\n$(TEST_TARGETS): test\ntest: $(OTEL_GO_MOD_DIRS:%=test/%)\ntest/%: DIR=$*\ntest/%:\n\t@echo \"$(GO) test -timeout $(TIMEOUT)s $(ARGS) $(DIR)/...\" \\\n\t\t&& cd $(DIR) \\\n\t\t&& $(GO) list ./... \\\n\t\t| grep -v third_party \\\n\t\t| xargs $(GO) test -timeout $(TIMEOUT)s $(ARGS)\n\nCOVERAGE_MODE    = atomic\nCOVERAGE_PROFILE = coverage.out\n.PHONY: test-coverage\ntest-coverage: $(GOCOVMERGE)\n\t@set -e; \\\n\tprintf \"\" > coverage.txt; \\\n\tfor dir in $(ALL_COVERAGE_MOD_DIRS); do \\\n\t  echo \"$(GO) test -coverpkg=go.opentelemetry.io/otel/... -covermode=$(COVERAGE_MODE) -coverprofile=\"$(COVERAGE_PROFILE)\" $${dir}/...\"; \\\n\t  (cd \"$${dir}\" && \\\n\t    $(GO) list ./... \\\n\t    | grep -v third_party \\\n\t    | grep -v 'semconv/v.*' \\\n\t    | xargs $(GO) test -coverpkg=./... -covermode=$(COVERAGE_MODE) -coverprofile=\"$(COVERAGE_PROFILE)\" && \\\n\t  $(GO) tool cover -html=coverage.out -o coverage.html); \\\n\tdone; \\\n\t$(GOCOVMERGE) $$(find . -name coverage.out) > coverage.txt\n\n# Adding a directory will include all benchmarks in that directory if a filter is not specified.\nBENCHMARK_TARGETS := sdk/trace\n.PHONY: benchmark\nbenchmark: $(BENCHMARK_TARGETS:%=benchmark/%)\nBENCHMARK_FILTER = .\n# You can override the filter for a particular directory by adding a rule here.\nbenchmark/sdk/trace: BENCHMARK_FILTER = SpanWithAttributes_8/AlwaysSample\nbenchmark/%:\n\t@echo \"$(GO) test -timeout $(TIMEOUT)s -run=xxxxxMatchNothingxxxxx -bench=$(BENCHMARK_FILTER) $*...\" \\\n\t\t&& cd $* \\\n\t\t$(foreach filter, $(BENCHMARK_FILTER), && $(GO) test -timeout $(TIMEOUT)s -run=xxxxxMatchNothingxxxxx -bench=$(filter))\n\n.PHONY: golangci-lint golangci-lint-fix\ngolangci-lint-fix: ARGS=--fix\ngolangci-lint-fix: golangci-lint\ngolangci-lint: $(OTEL_GO_MOD_DIRS:%=golangci-lint/%)\ngolangci-lint/%: DIR=$*\ngolangci-lint/%: $(GOLANGCI_LINT)\n\t@echo 'golangci-lint $(if $(ARGS),$(ARGS) ,)$(DIR)' \\\n\t\t&& cd $(DIR) \\\n\t\t&& $(GOLANGCI_LINT) run --allow-serial-runners $(ARGS)\n\n.PHONY: crosslink\ncrosslink: $(CROSSLINK)\n\t@echo \"Updating intra-repository dependencies in all go modules\" \\\n\t\t&& $(CROSSLINK) --root=$(shell pwd) --prune\n\n.PHONY: go-mod-tidy\ngo-mod-tidy: $(ALL_GO_MOD_DIRS:%=go-mod-tidy/%)\ngo-mod-tidy/%: DIR=$*\ngo-mod-tidy/%: crosslink\n\t@echo \"$(GO) mod tidy in $(DIR)\" \\\n\t\t&& cd $(DIR) \\\n\t\t&& $(GO) mod tidy -compat=1.21\n\n.PHONY: lint-modules\nlint-modules: go-mod-tidy\n\n.PHONY: lint\nlint: misspell lint-modules golangci-lint govulncheck\n\n.PHONY: vanity-import-check\nvanity-import-check: $(PORTO)\n\t@$(PORTO) --include-internal -l . || ( echo \"(run: make vanity-import-fix)\"; exit 1 )\n\n.PHONY: misspell\nmisspell: $(MISSPELL)\n\t@$(MISSPELL) -w $(ALL_DOCS)\n\n.PHONY: govulncheck\ngovulncheck: $(OTEL_GO_MOD_DIRS:%=govulncheck/%)\ngovulncheck/%: DIR=$*\ngovulncheck/%: $(GOVULNCHECK)\n\t@echo \"govulncheck ./... in $(DIR)\" \\\n\t\t&& cd $(DIR) \\\n\t\t&& $(GOVULNCHECK) ./...\n\n.PHONY: codespell\ncodespell: $(CODESPELL)\n\t@$(DOCKERPY) $(CODESPELL)\n\n.PHONY: license-check\nlicense-check:\n\t@licRes=$$(for f in $$(find . -type f \\( -iname '*.go' -o -iname '*.sh' \\) ! -path '**/third_party/*' ! -path './.git/*' ) ; do \\\n\t           awk '/Copyright The OpenTelemetry Authors|generated|GENERATED/ && NR<=4 { found=1; next } END { if (!found) print FILENAME }' $$f; \\\n\t   done); \\\n\t   if [ -n \"$${licRes}\" ]; then \\\n\t           echo \"license header checking failed:\"; echo \"$${licRes}\"; \\\n\t           exit 1; \\\n\t   fi\n\n.PHONY: check-clean-work-tree\ncheck-clean-work-tree:\n\t@if ! git diff --quiet; then \\\n\t  echo; \\\n\t  echo 'Working tree is not clean, did you forget to run \"make precommit\"?'; \\\n\t  echo; \\\n\t  git status; \\\n\t  exit 1; \\\n\tfi\n\nSEMCONVPKG ?= \"semconv/\"\n.PHONY: semconv-generate\nsemconv-generate: $(SEMCONVGEN) $(SEMCONVKIT)\n\t[ \"$(TAG)\" ] || ( echo \"TAG unset: missing opentelemetry semantic-conventions tag\"; exit 1 )\n\t[ \"$(OTEL_SEMCONV_REPO)\" ] || ( echo \"OTEL_SEMCONV_REPO unset: missing path to opentelemetry semantic-conventions repo\"; exit 1 )\n\t$(SEMCONVGEN) -i \"$(OTEL_SEMCONV_REPO)/model/.\" --only=attribute_group -p conventionType=trace -f attribute_group.go -t \"$(SEMCONVPKG)/template.j2\" -s \"$(TAG)\"\n\t$(SEMCONVGEN) -i \"$(OTEL_SEMCONV_REPO)/model/.\" --only=metric  -f metric.go -t \"$(SEMCONVPKG)/metric_template.j2\" -s \"$(TAG)\"\n\t$(SEMCONVKIT) -output \"$(SEMCONVPKG)/$(TAG)\" -tag \"$(TAG)\"\n\n.PHONY: gorelease\ngorelease: $(OTEL_GO_MOD_DIRS:%=gorelease/%)\ngorelease/%: DIR=$*\ngorelease/%:| $(GORELEASE)\n\t@echo \"gorelease in $(DIR):\" \\\n\t\t&& cd $(DIR) \\\n\t\t&& $(GORELEASE) \\\n\t\t|| echo \"\"\n\n.PHONY: verify-mods\nverify-mods: $(MULTIMOD)\n\t$(MULTIMOD) verify\n\n.PHONY: prerelease\nprerelease: verify-mods\n\t@[ \"${MODSET}\" ] || ( echo \">> env var MODSET is not set\"; exit 1 )\n\t$(MULTIMOD) prerelease -m ${MODSET}\n\nCOMMIT ?= \"HEAD\"\n.PHONY: add-tags\nadd-tags: verify-mods\n\t@[ \"${MODSET}\" ] || ( echo \">> env var MODSET is not set\"; exit 1 )\n\t$(MULTIMOD) tag -m ${MODSET} -c ${COMMIT}\n\n.PHONY: lint-markdown\nlint-markdown:\n\tdocker run -v \"$(CURDIR):$(WORKDIR)\" avtodev/markdown-lint:v1 -c $(WORKDIR)/.markdownlint.yaml $(WORKDIR)/**/*.md\n\n.PHONY: verify-readmes\nverify-readmes:\n\t./verify_readmes.sh\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/README.md",
    "content": "# OpenTelemetry-Go\n\n[![CI](https://github.com/open-telemetry/opentelemetry-go/workflows/ci/badge.svg)](https://github.com/open-telemetry/opentelemetry-go/actions?query=workflow%3Aci+branch%3Amain)\n[![codecov.io](https://codecov.io/gh/open-telemetry/opentelemetry-go/coverage.svg?branch=main)](https://app.codecov.io/gh/open-telemetry/opentelemetry-go?branch=main)\n[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel)](https://pkg.go.dev/go.opentelemetry.io/otel)\n[![Go Report Card](https://goreportcard.com/badge/go.opentelemetry.io/otel)](https://goreportcard.com/report/go.opentelemetry.io/otel)\n[![Slack](https://img.shields.io/badge/slack-@cncf/otel--go-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C01NPAXACKT)\n\nOpenTelemetry-Go is the [Go](https://golang.org/) implementation of [OpenTelemetry](https://opentelemetry.io/).\nIt provides a set of APIs to directly measure performance and behavior of your software and send this data to observability platforms.\n\n## Project Status\n\n| Signal  | Status             |\n|---------|--------------------|\n| Traces  | Stable             |\n| Metrics | Stable             |\n| Logs    | Beta[^1]           |\n\nProgress and status specific to this repository is tracked in our\n[project boards](https://github.com/open-telemetry/opentelemetry-go/projects)\nand\n[milestones](https://github.com/open-telemetry/opentelemetry-go/milestones).\n\nProject versioning information and stability guarantees can be found in the\n[versioning documentation](VERSIONING.md).\n\n[^1]: https://github.com/orgs/open-telemetry/projects/43\n\n### Compatibility\n\nOpenTelemetry-Go ensures compatibility with the current supported versions of\nthe [Go language](https://golang.org/doc/devel/release#policy):\n\n> Each major Go release is supported until there are two newer major releases.\n> For example, Go 1.5 was supported until the Go 1.7 release, and Go 1.6 was supported until the Go 1.8 release.\n\nFor versions of Go that are no longer supported upstream, opentelemetry-go will\nstop ensuring compatibility with these versions in the following manner:\n\n- A minor release of opentelemetry-go will be made to add support for the new\n  supported release of Go.\n- The following minor release of opentelemetry-go will remove compatibility\n  testing for the oldest (now archived upstream) version of Go. This, and\n  future, releases of opentelemetry-go may include features only supported by\n  the currently supported versions of Go.\n\nCurrently, this project supports the following environments.\n\n| OS      | Go Version | Architecture |\n|---------|------------|--------------|\n| Ubuntu  | 1.22       | amd64        |\n| Ubuntu  | 1.21       | amd64        |\n| Ubuntu  | 1.22       | 386          |\n| Ubuntu  | 1.21       | 386          |\n| Linux   | 1.22       | arm64        |\n| Linux   | 1.21       | arm64        |\n| MacOS   | 1.22       | amd64        |\n| MacOS   | 1.21       | amd64        |\n| Windows | 1.22       | amd64        |\n| Windows | 1.21       | amd64        |\n| Windows | 1.22       | 386          |\n| Windows | 1.21       | 386          |\n\nWhile this project should work for other systems, no compatibility guarantees\nare made for those systems currently.\n\n## Getting Started\n\nYou can find a getting started guide on [opentelemetry.io](https://opentelemetry.io/docs/languages/go/getting-started/).\n\nOpenTelemetry's goal is to provide a single set of APIs to capture distributed\ntraces and metrics from your application and send them to an observability\nplatform. This project allows you to do just that for applications written in\nGo. There are two steps to this process: instrument your application, and\nconfigure an exporter.\n\n### Instrumentation\n\nTo start capturing distributed traces and metric events from your application\nit first needs to be instrumented. The easiest way to do this is by using an\ninstrumentation library for your code. Be sure to check out [the officially\nsupported instrumentation\nlibraries](https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation).\n\nIf you need to extend the telemetry an instrumentation library provides or want\nto build your own instrumentation for your application directly you will need\nto use the\n[Go otel](https://pkg.go.dev/go.opentelemetry.io/otel)\npackage. The included [examples](./example/) are a good way to see some\npractical uses of this process.\n\n### Export\n\nNow that your application is instrumented to collect telemetry, it needs an\nexport pipeline to send that telemetry to an observability platform.\n\nAll officially supported exporters for the OpenTelemetry project are contained in the [exporters directory](./exporters).\n\n| Exporter                              | Logs | Metrics | Traces |\n|---------------------------------------|:----:|:-------:|:------:|\n| [OTLP](./exporters/otlp/)             |  ✓   |    ✓    |   ✓    |\n| [Prometheus](./exporters/prometheus/) |      |    ✓    |        |\n| [stdout](./exporters/stdout/)         |  ✓   |    ✓    |   ✓    |\n| [Zipkin](./exporters/zipkin/)         |      |         |   ✓    |\n\n## Contributing\n\nSee the [contributing documentation](CONTRIBUTING.md).\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/RELEASING.md",
    "content": "# Release Process\n\n## Semantic Convention Generation\n\nNew versions of the [OpenTelemetry Semantic Conventions] mean new versions of the `semconv` package need to be generated.\nThe `semconv-generate` make target is used for this.\n\n1. Checkout a local copy of the [OpenTelemetry Semantic Conventions] to the desired release tag.\n2. Pull the latest `otel/semconvgen` image: `docker pull otel/semconvgen:latest`\n3. Run the `make semconv-generate ...` target from this repository.\n\nFor example,\n\n```sh\nexport TAG=\"v1.21.0\" # Change to the release version you are generating.\nexport OTEL_SEMCONV_REPO=\"/absolute/path/to/opentelemetry/semantic-conventions\"\ndocker pull otel/semconvgen:latest\nmake semconv-generate # Uses the exported TAG and OTEL_SEMCONV_REPO.\n```\n\nThis should create a new sub-package of [`semconv`](./semconv).\nEnsure things look correct before submitting a pull request to include the addition.\n\n## Breaking changes validation\n\nYou can run `make gorelease` that runs [gorelease](https://pkg.go.dev/golang.org/x/exp/cmd/gorelease) to ensure that there are no unwanted changes done in the public API.\n\nYou can check/report problems with `gorelease` [here](https://golang.org/issues/26420).\n\n## Verify changes for contrib repository\n\nIf the changes in the main repository are going to affect the contrib repository, it is important to verify that the changes are compatible with the contrib repository.\n\nFollow [the steps](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/RELEASING.md#verify-otel-changes) in the contrib repository to verify OTel changes.\n\n## Pre-Release\n\nFirst, decide which module sets will be released and update their versions\nin `versions.yaml`.  Commit this change to a new branch.\n\nUpdate go.mod for submodules to depend on the new release which will happen in the next step.\n\n1. Run the `prerelease` make target. It creates a branch\n    `prerelease_<module set>_<new tag>` that will contain all release changes.\n\n    ```\n    make prerelease MODSET=<module set>\n    ```\n\n2. Verify the changes.\n\n    ```\n    git diff ...prerelease_<module set>_<new tag>\n    ```\n\n    This should have changed the version for all modules to be `<new tag>`.\n    If these changes look correct, merge them into your pre-release branch:\n\n    ```go\n    git merge prerelease_<module set>_<new tag>\n    ```\n\n3. Update the [Changelog](./CHANGELOG.md).\n   - Make sure all relevant changes for this release are included and are in language that non-contributors to the project can understand.\n       To verify this, you can look directly at the commits since the `<last tag>`.\n\n       ```\n       git --no-pager log --pretty=oneline \"<last tag>..HEAD\"\n       ```\n\n   - Move all the `Unreleased` changes into a new section following the title scheme (`[<new tag>] - <date of release>`).\n   - Update all the appropriate links at the bottom.\n\n4. Push the changes to upstream and create a Pull Request on GitHub.\n    Be sure to include the curated changes from the [Changelog](./CHANGELOG.md) in the description.\n\n## Tag\n\nOnce the Pull Request with all the version changes has been approved and merged it is time to tag the merged commit.\n\n***IMPORTANT***: It is critical you use the same tag that you used in the Pre-Release step!\nFailure to do so will leave things in a broken state. As long as you do not\nchange `versions.yaml` between pre-release and this step, things should be fine.\n\n***IMPORTANT***: [There is currently no way to remove an incorrectly tagged version of a Go module](https://github.com/golang/go/issues/34189).\nIt is critical you make sure the version you push upstream is correct.\n[Failure to do so will lead to minor emergencies and tough to work around](https://github.com/open-telemetry/opentelemetry-go/issues/331).\n\n1. For each module set that will be released, run the `add-tags` make target\n    using the `<commit-hash>` of the commit on the main branch for the merged Pull Request.\n\n    ```\n    make add-tags MODSET=<module set> COMMIT=<commit hash>\n    ```\n\n    It should only be necessary to provide an explicit `COMMIT` value if the\n    current `HEAD` of your working directory is not the correct commit.\n\n2. Push tags to the upstream remote (not your fork: `github.com/open-telemetry/opentelemetry-go.git`).\n    Make sure you push all sub-modules as well.\n\n    ```\n    git push upstream <new tag>\n    git push upstream <submodules-path/new tag>\n    ...\n    ```\n\n## Release\n\nFinally create a Release for the new `<new tag>` on GitHub.\nThe release body should include all the release notes from the Changelog for this release.\n\n## Verify Examples\n\nAfter releasing verify that examples build outside of the repository.\n\n```\n./verify_examples.sh\n```\n\nThe script copies examples into a different directory removes any `replace` declarations in `go.mod` and builds them.\nThis ensures they build with the published release, not the local copy.\n\n## Post-Release\n\n### Contrib Repository\n\nOnce verified be sure to [make a release for the `contrib` repository](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/RELEASING.md) that uses this release.\n\n### Website Documentation\n\nUpdate the [Go instrumentation documentation] in the OpenTelemetry website under [content/en/docs/languages/go].\nImportantly, bump any package versions referenced to be the latest one you just released and ensure all code examples still compile and are accurate.\n\n[OpenTelemetry Semantic Conventions]: https://github.com/open-telemetry/semantic-conventions\n[Go instrumentation documentation]: https://opentelemetry.io/docs/languages/go/\n[content/en/docs/languages/go]: https://github.com/open-telemetry/opentelemetry.io/tree/main/content/en/docs/languages/go\n\n### Demo Repository\n\nBump the dependencies in the following Go services:\n\n- [`accountingservice`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/accountingservice)\n- [`checkoutservice`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/checkoutservice)\n- [`productcatalogservice`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/productcatalogservice)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/VERSIONING.md",
    "content": "# Versioning\n\nThis document describes the versioning policy for this repository. This policy\nis designed so the following goals can be achieved.\n\n**Users are provided a codebase of value that is stable and secure.**\n\n## Policy\n\n* Versioning of this project will be idiomatic of a Go project using [Go\n  modules](https://github.com/golang/go/wiki/Modules).\n  * [Semantic import\n    versioning](https://github.com/golang/go/wiki/Modules#semantic-import-versioning)\n    will be used.\n    * Versions will comply with [semver\n      2.0](https://semver.org/spec/v2.0.0.html) with the following exceptions.\n      * New methods may be added to exported API interfaces. All exported\n        interfaces that fall within this exception will include the following\n        paragraph in their public documentation.\n\n        > Warning: methods may be added to this interface in minor releases.\n\n    * If a module is version `v2` or higher, the major version of the module\n      must be included as a `/vN` at the end of the module paths used in\n      `go.mod` files (e.g., `module go.opentelemetry.io/otel/v2`, `require\n      go.opentelemetry.io/otel/v2 v2.0.1`) and in the package import path\n      (e.g., `import \"go.opentelemetry.io/otel/v2/trace\"`). This includes the\n      paths used in `go get` commands (e.g., `go get\n      go.opentelemetry.io/otel/v2@v2.0.1`.  Note there is both a `/v2` and a\n      `@v2.0.1` in that example. One way to think about it is that the module\n      name now includes the `/v2`, so include `/v2` whenever you are using the\n      module name).\n    * If a module is version `v0` or `v1`, do not include the major version in\n      either the module path or the import path.\n  * Modules will be used to encapsulate signals and components.\n    * Experimental modules still under active development will be versioned at\n      `v0` to imply the stability guarantee defined by\n      [semver](https://semver.org/spec/v2.0.0.html#spec-item-4).\n\n      > Major version zero (0.y.z) is for initial development. Anything MAY\n      > change at any time. The public API SHOULD NOT be considered stable.\n\n    * Mature modules for which we guarantee a stable public API will be versioned\n      with a major version greater than `v0`.\n      * The decision to make a module stable will be made on a case-by-case\n        basis by the maintainers of this project.\n    * Experimental modules will start their versioning at `v0.0.0` and will\n      increment their minor version when backwards incompatible changes are\n      released and increment their patch version when backwards compatible\n      changes are released.\n    * All stable modules that use the same major version number will use the\n      same entire version number.\n      * Stable modules may be released with an incremented minor or patch\n        version even though that module has not been changed, but rather so\n        that it will remain at the same version as other stable modules that\n        did undergo change.\n      * When an experimental module becomes stable a new stable module version\n        will be released and will include this now stable module. The new\n        stable module version will be an increment of the minor version number\n        and will be applied to all existing stable modules as well as the newly\n        stable module being released.\n* Versioning of the associated [contrib\n  repository](https://github.com/open-telemetry/opentelemetry-go-contrib) of\n  this project will be idiomatic of a Go project using [Go\n  modules](https://github.com/golang/go/wiki/Modules).\n  * [Semantic import\n    versioning](https://github.com/golang/go/wiki/Modules#semantic-import-versioning)\n    will be used.\n    * Versions will comply with [semver 2.0](https://semver.org/spec/v2.0.0.html).\n    * If a module is version `v2` or higher, the\n      major version of the module must be included as a `/vN` at the end of the\n      module paths used in `go.mod` files (e.g., `module\n      go.opentelemetry.io/contrib/instrumentation/host/v2`, `require\n      go.opentelemetry.io/contrib/instrumentation/host/v2 v2.0.1`) and in the\n      package import path (e.g., `import\n      \"go.opentelemetry.io/contrib/instrumentation/host/v2\"`). This includes\n      the paths used in `go get` commands (e.g., `go get\n      go.opentelemetry.io/contrib/instrumentation/host/v2@v2.0.1`.  Note there\n      is both a `/v2` and a `@v2.0.1` in that example. One way to think about\n      it is that the module name now includes the `/v2`, so include `/v2`\n      whenever you are using the module name).\n    * If a module is version `v0` or `v1`, do not include the major version\n      in either the module path or the import path.\n  * In addition to public APIs, telemetry produced by stable instrumentation\n    will remain stable and backwards compatible. This is to avoid breaking\n    alerts and dashboard.\n  * Modules will be used to encapsulate instrumentation, detectors, exporters,\n    propagators, and any other independent sets of related components.\n    * Experimental modules still under active development will be versioned at\n      `v0` to imply the stability guarantee defined by\n      [semver](https://semver.org/spec/v2.0.0.html#spec-item-4).\n\n      > Major version zero (0.y.z) is for initial development. Anything MAY\n      > change at any time. The public API SHOULD NOT be considered stable.\n\n    * Mature modules for which we guarantee a stable public API and telemetry will\n      be versioned with a major version greater than `v0`.\n    * Experimental modules will start their versioning at `v0.0.0` and will\n      increment their minor version when backwards incompatible changes are\n      released and increment their patch version when backwards compatible\n      changes are released.\n    * Stable contrib modules cannot depend on experimental modules from this\n      project.\n    * All stable contrib modules of the same major version with this project\n      will use the same entire version as this project.\n      * Stable modules may be released with an incremented minor or patch\n        version even though that module's code has not been changed. Instead\n        the only change that will have been included is to have updated that\n        modules dependency on this project's stable APIs.\n      * When an experimental module in contrib becomes stable a new stable\n        module version will be released and will include this now stable\n        module. The new stable module version will be an increment of the minor\n        version number and will be applied to all existing stable contrib\n        modules, this project's modules, and the newly stable module being\n        released.\n  * Contrib modules will be kept up to date with this project's releases.\n    * Due to the dependency contrib modules will implicitly have on this\n      project's modules the release of stable contrib modules to match the\n      released version number will be staggered after this project's release.\n      There is no explicit time guarantee for how long after this projects\n      release the contrib release will be. Effort should be made to keep them\n      as close in time as possible.\n    * No additional stable release in this project can be made until the\n      contrib repository has a matching stable release.\n    * No release can be made in the contrib repository after this project's\n      stable release except for a stable release of the contrib repository.\n* GitHub releases will be made for all releases.\n* Go modules will be made available at Go package mirrors.\n\n## Example Versioning Lifecycle\n\nTo better understand the implementation of the above policy the following\nexample is provided. This project is simplified to include only the following\nmodules and their versions:\n\n* `otel`: `v0.14.0`\n* `otel/trace`: `v0.14.0`\n* `otel/metric`: `v0.14.0`\n* `otel/baggage`: `v0.14.0`\n* `otel/sdk/trace`: `v0.14.0`\n* `otel/sdk/metric`: `v0.14.0`\n\nThese modules have been developed to a point where the `otel/trace`,\n`otel/baggage`, and `otel/sdk/trace` modules have reached a point that they\nshould be considered for a stable release. The `otel/metric` and\n`otel/sdk/metric` are still under active development and the `otel` module\ndepends on both `otel/trace` and `otel/metric`.\n\nThe `otel` package is refactored to remove its dependencies on `otel/metric` so\nit can be released as stable as well. With that done the following release\ncandidates are made:\n\n* `otel`: `v1.0.0-RC1`\n* `otel/trace`: `v1.0.0-RC1`\n* `otel/baggage`: `v1.0.0-RC1`\n* `otel/sdk/trace`: `v1.0.0-RC1`\n\nThe `otel/metric` and `otel/sdk/metric` modules remain at `v0.14.0`.\n\nA few minor issues are discovered in the `otel/trace` package. These issues are\nresolved with some minor, but backwards incompatible, changes and are released\nas a second release candidate:\n\n* `otel`: `v1.0.0-RC2`\n* `otel/trace`: `v1.0.0-RC2`\n* `otel/baggage`: `v1.0.0-RC2`\n* `otel/sdk/trace`: `v1.0.0-RC2`\n\nNotice that all module version numbers are incremented to adhere to our\nversioning policy.\n\nAfter these release candidates have been evaluated to satisfaction, they are\nreleased as version `v1.0.0`.\n\n* `otel`: `v1.0.0`\n* `otel/trace`: `v1.0.0`\n* `otel/baggage`: `v1.0.0`\n* `otel/sdk/trace`: `v1.0.0`\n\nSince both the `go` utility and the Go module system support [the semantic\nversioning definition of\nprecedence](https://semver.org/spec/v2.0.0.html#spec-item-11), this release\nwill correctly be interpreted as the successor to the previous release\ncandidates.\n\nActive development of this project continues. The `otel/metric` module now has\nbackwards incompatible changes to its API that need to be released and the\n`otel/baggage` module has a minor bug fix that needs to be released. The\nfollowing release is made:\n\n* `otel`: `v1.0.1`\n* `otel/trace`: `v1.0.1`\n* `otel/metric`: `v0.15.0`\n* `otel/baggage`: `v1.0.1`\n* `otel/sdk/trace`: `v1.0.1`\n* `otel/sdk/metric`: `v0.15.0`\n\nNotice that, again, all stable module versions are incremented in unison and\nthe `otel/sdk/metric` package, which depends on the `otel/metric` package, also\nbumped its version. This bump of the `otel/sdk/metric` package makes sense\ngiven their coupling, though it is not explicitly required by our versioning\npolicy.\n\nAs we progress, the `otel/metric` and `otel/sdk/metric` packages have reached a\npoint where they should be evaluated for stability. The `otel` module is\nreintegrated with the `otel/metric` package and the following release is made:\n\n* `otel`: `v1.1.0-RC1`\n* `otel/trace`: `v1.1.0-RC1`\n* `otel/metric`: `v1.1.0-RC1`\n* `otel/baggage`: `v1.1.0-RC1`\n* `otel/sdk/trace`: `v1.1.0-RC1`\n* `otel/sdk/metric`: `v1.1.0-RC1`\n\nAll the modules are evaluated and determined to a viable stable release. They\nare then released as version `v1.1.0` (the minor version is incremented to\nindicate the addition of new signal).\n\n* `otel`: `v1.1.0`\n* `otel/trace`: `v1.1.0`\n* `otel/metric`: `v1.1.0`\n* `otel/baggage`: `v1.1.0`\n* `otel/sdk/trace`: `v1.1.0`\n* `otel/sdk/metric`: `v1.1.0`\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/attribute/README.md",
    "content": "# Attribute\n\n[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/attribute)](https://pkg.go.dev/go.opentelemetry.io/otel/attribute)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/attribute/doc.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Package attribute provides key and value attributes.\npackage attribute // import \"go.opentelemetry.io/otel/attribute\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/attribute/encoder.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage attribute // import \"go.opentelemetry.io/otel/attribute\"\n\nimport (\n\t\"bytes\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\ntype (\n\t// Encoder is a mechanism for serializing an attribute set into a specific\n\t// string representation that supports caching, to avoid repeated\n\t// serialization. An example could be an exporter encoding the attribute\n\t// set into a wire representation.\n\tEncoder interface {\n\t\t// Encode returns the serialized encoding of the attribute set using\n\t\t// its Iterator. This result may be cached by a attribute.Set.\n\t\tEncode(iterator Iterator) string\n\n\t\t// ID returns a value that is unique for each class of attribute\n\t\t// encoder. Attribute encoders allocate these using `NewEncoderID`.\n\t\tID() EncoderID\n\t}\n\n\t// EncoderID is used to identify distinct Encoder\n\t// implementations, for caching encoded results.\n\tEncoderID struct {\n\t\tvalue uint64\n\t}\n\n\t// defaultAttrEncoder uses a sync.Pool of buffers to reduce the number of\n\t// allocations used in encoding attributes. This implementation encodes a\n\t// comma-separated list of key=value, with '/'-escaping of '=', ',', and\n\t// '\\'.\n\tdefaultAttrEncoder struct {\n\t\t// pool is a pool of attribute set builders. The buffers in this pool\n\t\t// grow to a size that most attribute encodings will not allocate new\n\t\t// memory.\n\t\tpool sync.Pool // *bytes.Buffer\n\t}\n)\n\n// escapeChar is used to ensure uniqueness of the attribute encoding where\n// keys or values contain either '=' or ','.  Since there is no parser needed\n// for this encoding and its only requirement is to be unique, this choice is\n// arbitrary.  Users will see these in some exporters (e.g., stdout), so the\n// backslash ('\\') is used as a conventional choice.\nconst escapeChar = '\\\\'\n\nvar (\n\t_ Encoder = &defaultAttrEncoder{}\n\n\t// encoderIDCounter is for generating IDs for other attribute encoders.\n\tencoderIDCounter uint64\n\n\tdefaultEncoderOnce     sync.Once\n\tdefaultEncoderID       = NewEncoderID()\n\tdefaultEncoderInstance *defaultAttrEncoder\n)\n\n// NewEncoderID returns a unique attribute encoder ID. It should be called\n// once per each type of attribute encoder. Preferably in init() or in var\n// definition.\nfunc NewEncoderID() EncoderID {\n\treturn EncoderID{value: atomic.AddUint64(&encoderIDCounter, 1)}\n}\n\n// DefaultEncoder returns an attribute encoder that encodes attributes in such\n// a way that each escaped attribute's key is followed by an equal sign and\n// then by an escaped attribute's value. All key-value pairs are separated by\n// a comma.\n//\n// Escaping is done by prepending a backslash before either a backslash, equal\n// sign or a comma.\nfunc DefaultEncoder() Encoder {\n\tdefaultEncoderOnce.Do(func() {\n\t\tdefaultEncoderInstance = &defaultAttrEncoder{\n\t\t\tpool: sync.Pool{\n\t\t\t\tNew: func() interface{} {\n\t\t\t\t\treturn &bytes.Buffer{}\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\t})\n\treturn defaultEncoderInstance\n}\n\n// Encode is a part of an implementation of the AttributeEncoder interface.\nfunc (d *defaultAttrEncoder) Encode(iter Iterator) string {\n\tbuf := d.pool.Get().(*bytes.Buffer)\n\tdefer d.pool.Put(buf)\n\tbuf.Reset()\n\n\tfor iter.Next() {\n\t\ti, keyValue := iter.IndexedAttribute()\n\t\tif i > 0 {\n\t\t\t_, _ = buf.WriteRune(',')\n\t\t}\n\t\tcopyAndEscape(buf, string(keyValue.Key))\n\n\t\t_, _ = buf.WriteRune('=')\n\n\t\tif keyValue.Value.Type() == STRING {\n\t\t\tcopyAndEscape(buf, keyValue.Value.AsString())\n\t\t} else {\n\t\t\t_, _ = buf.WriteString(keyValue.Value.Emit())\n\t\t}\n\t}\n\treturn buf.String()\n}\n\n// ID is a part of an implementation of the AttributeEncoder interface.\nfunc (*defaultAttrEncoder) ID() EncoderID {\n\treturn defaultEncoderID\n}\n\n// copyAndEscape escapes `=`, `,` and its own escape character (`\\`),\n// making the default encoding unique.\nfunc copyAndEscape(buf *bytes.Buffer, val string) {\n\tfor _, ch := range val {\n\t\tswitch ch {\n\t\tcase '=', ',', escapeChar:\n\t\t\t_, _ = buf.WriteRune(escapeChar)\n\t\t}\n\t\t_, _ = buf.WriteRune(ch)\n\t}\n}\n\n// Valid returns true if this encoder ID was allocated by\n// `NewEncoderID`.  Invalid encoder IDs will not be cached.\nfunc (id EncoderID) Valid() bool {\n\treturn id.value != 0\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/attribute/filter.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage attribute // import \"go.opentelemetry.io/otel/attribute\"\n\n// Filter supports removing certain attributes from attribute sets. When\n// the filter returns true, the attribute will be kept in the filtered\n// attribute set. When the filter returns false, the attribute is excluded\n// from the filtered attribute set, and the attribute instead appears in\n// the removed list of excluded attributes.\ntype Filter func(KeyValue) bool\n\n// NewAllowKeysFilter returns a Filter that only allows attributes with one of\n// the provided keys.\n//\n// If keys is empty a deny-all filter is returned.\nfunc NewAllowKeysFilter(keys ...Key) Filter {\n\tif len(keys) <= 0 {\n\t\treturn func(kv KeyValue) bool { return false }\n\t}\n\n\tallowed := make(map[Key]struct{})\n\tfor _, k := range keys {\n\t\tallowed[k] = struct{}{}\n\t}\n\treturn func(kv KeyValue) bool {\n\t\t_, ok := allowed[kv.Key]\n\t\treturn ok\n\t}\n}\n\n// NewDenyKeysFilter returns a Filter that only allows attributes\n// that do not have one of the provided keys.\n//\n// If keys is empty an allow-all filter is returned.\nfunc NewDenyKeysFilter(keys ...Key) Filter {\n\tif len(keys) <= 0 {\n\t\treturn func(kv KeyValue) bool { return true }\n\t}\n\n\tforbid := make(map[Key]struct{})\n\tfor _, k := range keys {\n\t\tforbid[k] = struct{}{}\n\t}\n\treturn func(kv KeyValue) bool {\n\t\t_, ok := forbid[kv.Key]\n\t\treturn !ok\n\t}\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/attribute/iterator.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage attribute // import \"go.opentelemetry.io/otel/attribute\"\n\n// Iterator allows iterating over the set of attributes in order, sorted by\n// key.\ntype Iterator struct {\n\tstorage *Set\n\tidx     int\n}\n\n// MergeIterator supports iterating over two sets of attributes while\n// eliminating duplicate values from the combined set. The first iterator\n// value takes precedence.\ntype MergeIterator struct {\n\tone     oneIterator\n\ttwo     oneIterator\n\tcurrent KeyValue\n}\n\ntype oneIterator struct {\n\titer Iterator\n\tdone bool\n\tattr KeyValue\n}\n\n// Next moves the iterator to the next position. Returns false if there are no\n// more attributes.\nfunc (i *Iterator) Next() bool {\n\ti.idx++\n\treturn i.idx < i.Len()\n}\n\n// Label returns current KeyValue. Must be called only after Next returns\n// true.\n//\n// Deprecated: Use Attribute instead.\nfunc (i *Iterator) Label() KeyValue {\n\treturn i.Attribute()\n}\n\n// Attribute returns the current KeyValue of the Iterator. It must be called\n// only after Next returns true.\nfunc (i *Iterator) Attribute() KeyValue {\n\tkv, _ := i.storage.Get(i.idx)\n\treturn kv\n}\n\n// IndexedLabel returns current index and attribute. Must be called only\n// after Next returns true.\n//\n// Deprecated: Use IndexedAttribute instead.\nfunc (i *Iterator) IndexedLabel() (int, KeyValue) {\n\treturn i.idx, i.Attribute()\n}\n\n// IndexedAttribute returns current index and attribute. Must be called only\n// after Next returns true.\nfunc (i *Iterator) IndexedAttribute() (int, KeyValue) {\n\treturn i.idx, i.Attribute()\n}\n\n// Len returns a number of attributes in the iterated set.\nfunc (i *Iterator) Len() int {\n\treturn i.storage.Len()\n}\n\n// ToSlice is a convenience function that creates a slice of attributes from\n// the passed iterator. The iterator is set up to start from the beginning\n// before creating the slice.\nfunc (i *Iterator) ToSlice() []KeyValue {\n\tl := i.Len()\n\tif l == 0 {\n\t\treturn nil\n\t}\n\ti.idx = -1\n\tslice := make([]KeyValue, 0, l)\n\tfor i.Next() {\n\t\tslice = append(slice, i.Attribute())\n\t}\n\treturn slice\n}\n\n// NewMergeIterator returns a MergeIterator for merging two attribute sets.\n// Duplicates are resolved by taking the value from the first set.\nfunc NewMergeIterator(s1, s2 *Set) MergeIterator {\n\tmi := MergeIterator{\n\t\tone: makeOne(s1.Iter()),\n\t\ttwo: makeOne(s2.Iter()),\n\t}\n\treturn mi\n}\n\nfunc makeOne(iter Iterator) oneIterator {\n\toi := oneIterator{\n\t\titer: iter,\n\t}\n\toi.advance()\n\treturn oi\n}\n\nfunc (oi *oneIterator) advance() {\n\tif oi.done = !oi.iter.Next(); !oi.done {\n\t\toi.attr = oi.iter.Attribute()\n\t}\n}\n\n// Next returns true if there is another attribute available.\nfunc (m *MergeIterator) Next() bool {\n\tif m.one.done && m.two.done {\n\t\treturn false\n\t}\n\tif m.one.done {\n\t\tm.current = m.two.attr\n\t\tm.two.advance()\n\t\treturn true\n\t}\n\tif m.two.done {\n\t\tm.current = m.one.attr\n\t\tm.one.advance()\n\t\treturn true\n\t}\n\tif m.one.attr.Key == m.two.attr.Key {\n\t\tm.current = m.one.attr // first iterator attribute value wins\n\t\tm.one.advance()\n\t\tm.two.advance()\n\t\treturn true\n\t}\n\tif m.one.attr.Key < m.two.attr.Key {\n\t\tm.current = m.one.attr\n\t\tm.one.advance()\n\t\treturn true\n\t}\n\tm.current = m.two.attr\n\tm.two.advance()\n\treturn true\n}\n\n// Label returns the current value after Next() returns true.\n//\n// Deprecated: Use Attribute instead.\nfunc (m *MergeIterator) Label() KeyValue {\n\treturn m.current\n}\n\n// Attribute returns the current value after Next() returns true.\nfunc (m *MergeIterator) Attribute() KeyValue {\n\treturn m.current\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/attribute/key.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage attribute // import \"go.opentelemetry.io/otel/attribute\"\n\n// Key represents the key part in key-value pairs. It's a string. The\n// allowed character set in the key depends on the use of the key.\ntype Key string\n\n// Bool creates a KeyValue instance with a BOOL Value.\n//\n// If creating both a key and value at the same time, use the provided\n// convenience function instead -- Bool(name, value).\nfunc (k Key) Bool(v bool) KeyValue {\n\treturn KeyValue{\n\t\tKey:   k,\n\t\tValue: BoolValue(v),\n\t}\n}\n\n// BoolSlice creates a KeyValue instance with a BOOLSLICE Value.\n//\n// If creating both a key and value at the same time, use the provided\n// convenience function instead -- BoolSlice(name, value).\nfunc (k Key) BoolSlice(v []bool) KeyValue {\n\treturn KeyValue{\n\t\tKey:   k,\n\t\tValue: BoolSliceValue(v),\n\t}\n}\n\n// Int creates a KeyValue instance with an INT64 Value.\n//\n// If creating both a key and value at the same time, use the provided\n// convenience function instead -- Int(name, value).\nfunc (k Key) Int(v int) KeyValue {\n\treturn KeyValue{\n\t\tKey:   k,\n\t\tValue: IntValue(v),\n\t}\n}\n\n// IntSlice creates a KeyValue instance with an INT64SLICE Value.\n//\n// If creating both a key and value at the same time, use the provided\n// convenience function instead -- IntSlice(name, value).\nfunc (k Key) IntSlice(v []int) KeyValue {\n\treturn KeyValue{\n\t\tKey:   k,\n\t\tValue: IntSliceValue(v),\n\t}\n}\n\n// Int64 creates a KeyValue instance with an INT64 Value.\n//\n// If creating both a key and value at the same time, use the provided\n// convenience function instead -- Int64(name, value).\nfunc (k Key) Int64(v int64) KeyValue {\n\treturn KeyValue{\n\t\tKey:   k,\n\t\tValue: Int64Value(v),\n\t}\n}\n\n// Int64Slice creates a KeyValue instance with an INT64SLICE Value.\n//\n// If creating both a key and value at the same time, use the provided\n// convenience function instead -- Int64Slice(name, value).\nfunc (k Key) Int64Slice(v []int64) KeyValue {\n\treturn KeyValue{\n\t\tKey:   k,\n\t\tValue: Int64SliceValue(v),\n\t}\n}\n\n// Float64 creates a KeyValue instance with a FLOAT64 Value.\n//\n// If creating both a key and value at the same time, use the provided\n// convenience function instead -- Float64(name, value).\nfunc (k Key) Float64(v float64) KeyValue {\n\treturn KeyValue{\n\t\tKey:   k,\n\t\tValue: Float64Value(v),\n\t}\n}\n\n// Float64Slice creates a KeyValue instance with a FLOAT64SLICE Value.\n//\n// If creating both a key and value at the same time, use the provided\n// convenience function instead -- Float64(name, value).\nfunc (k Key) Float64Slice(v []float64) KeyValue {\n\treturn KeyValue{\n\t\tKey:   k,\n\t\tValue: Float64SliceValue(v),\n\t}\n}\n\n// String creates a KeyValue instance with a STRING Value.\n//\n// If creating both a key and value at the same time, use the provided\n// convenience function instead -- String(name, value).\nfunc (k Key) String(v string) KeyValue {\n\treturn KeyValue{\n\t\tKey:   k,\n\t\tValue: StringValue(v),\n\t}\n}\n\n// StringSlice creates a KeyValue instance with a STRINGSLICE Value.\n//\n// If creating both a key and value at the same time, use the provided\n// convenience function instead -- StringSlice(name, value).\nfunc (k Key) StringSlice(v []string) KeyValue {\n\treturn KeyValue{\n\t\tKey:   k,\n\t\tValue: StringSliceValue(v),\n\t}\n}\n\n// Defined returns true for non-empty keys.\nfunc (k Key) Defined() bool {\n\treturn len(k) != 0\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/attribute/kv.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage attribute // import \"go.opentelemetry.io/otel/attribute\"\n\nimport (\n\t\"fmt\"\n)\n\n// KeyValue holds a key and value pair.\ntype KeyValue struct {\n\tKey   Key\n\tValue Value\n}\n\n// Valid returns if kv is a valid OpenTelemetry attribute.\nfunc (kv KeyValue) Valid() bool {\n\treturn kv.Key.Defined() && kv.Value.Type() != INVALID\n}\n\n// Bool creates a KeyValue with a BOOL Value type.\nfunc Bool(k string, v bool) KeyValue {\n\treturn Key(k).Bool(v)\n}\n\n// BoolSlice creates a KeyValue with a BOOLSLICE Value type.\nfunc BoolSlice(k string, v []bool) KeyValue {\n\treturn Key(k).BoolSlice(v)\n}\n\n// Int creates a KeyValue with an INT64 Value type.\nfunc Int(k string, v int) KeyValue {\n\treturn Key(k).Int(v)\n}\n\n// IntSlice creates a KeyValue with an INT64SLICE Value type.\nfunc IntSlice(k string, v []int) KeyValue {\n\treturn Key(k).IntSlice(v)\n}\n\n// Int64 creates a KeyValue with an INT64 Value type.\nfunc Int64(k string, v int64) KeyValue {\n\treturn Key(k).Int64(v)\n}\n\n// Int64Slice creates a KeyValue with an INT64SLICE Value type.\nfunc Int64Slice(k string, v []int64) KeyValue {\n\treturn Key(k).Int64Slice(v)\n}\n\n// Float64 creates a KeyValue with a FLOAT64 Value type.\nfunc Float64(k string, v float64) KeyValue {\n\treturn Key(k).Float64(v)\n}\n\n// Float64Slice creates a KeyValue with a FLOAT64SLICE Value type.\nfunc Float64Slice(k string, v []float64) KeyValue {\n\treturn Key(k).Float64Slice(v)\n}\n\n// String creates a KeyValue with a STRING Value type.\nfunc String(k, v string) KeyValue {\n\treturn Key(k).String(v)\n}\n\n// StringSlice creates a KeyValue with a STRINGSLICE Value type.\nfunc StringSlice(k string, v []string) KeyValue {\n\treturn Key(k).StringSlice(v)\n}\n\n// Stringer creates a new key-value pair with a passed name and a string\n// value generated by the passed Stringer interface.\nfunc Stringer(k string, v fmt.Stringer) KeyValue {\n\treturn Key(k).String(v.String())\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/attribute/set.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage attribute // import \"go.opentelemetry.io/otel/attribute\"\n\nimport (\n\t\"cmp\"\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"slices\"\n\t\"sort\"\n)\n\ntype (\n\t// Set is the representation for a distinct attribute set. It manages an\n\t// immutable set of attributes, with an internal cache for storing\n\t// attribute encodings.\n\t//\n\t// This type will remain comparable for backwards compatibility. The\n\t// equivalence of Sets across versions is not guaranteed to be stable.\n\t// Prior versions may find two Sets to be equal or not when compared\n\t// directly (i.e. ==), but subsequent versions may not. Users should use\n\t// the Equals method to ensure stable equivalence checking.\n\t//\n\t// Users should also use the Distinct returned from Equivalent as a map key\n\t// instead of a Set directly. In addition to that type providing guarantees\n\t// on stable equivalence, it may also provide performance improvements.\n\tSet struct {\n\t\tequivalent Distinct\n\t}\n\n\t// Distinct is a unique identifier of a Set.\n\t//\n\t// Distinct is designed to be ensures equivalence stability: comparisons\n\t// will return the save value across versions. For this reason, Distinct\n\t// should always be used as a map key instead of a Set.\n\tDistinct struct {\n\t\tiface interface{}\n\t}\n\n\t// Sortable implements sort.Interface, used for sorting KeyValue.\n\t//\n\t// Deprecated: This type is no longer used. It was added as a performance\n\t// optimization for Go < 1.21 that is no longer needed (Go < 1.21 is no\n\t// longer supported by the module).\n\tSortable []KeyValue\n)\n\nvar (\n\t// keyValueType is used in computeDistinctReflect.\n\tkeyValueType = reflect.TypeOf(KeyValue{})\n\n\t// emptySet is returned for empty attribute sets.\n\temptySet = &Set{\n\t\tequivalent: Distinct{\n\t\t\tiface: [0]KeyValue{},\n\t\t},\n\t}\n)\n\n// EmptySet returns a reference to a Set with no elements.\n//\n// This is a convenience provided for optimized calling utility.\nfunc EmptySet() *Set {\n\treturn emptySet\n}\n\n// reflectValue abbreviates reflect.ValueOf(d).\nfunc (d Distinct) reflectValue() reflect.Value {\n\treturn reflect.ValueOf(d.iface)\n}\n\n// Valid returns true if this value refers to a valid Set.\nfunc (d Distinct) Valid() bool {\n\treturn d.iface != nil\n}\n\n// Len returns the number of attributes in this set.\nfunc (l *Set) Len() int {\n\tif l == nil || !l.equivalent.Valid() {\n\t\treturn 0\n\t}\n\treturn l.equivalent.reflectValue().Len()\n}\n\n// Get returns the KeyValue at ordered position idx in this set.\nfunc (l *Set) Get(idx int) (KeyValue, bool) {\n\tif l == nil || !l.equivalent.Valid() {\n\t\treturn KeyValue{}, false\n\t}\n\tvalue := l.equivalent.reflectValue()\n\n\tif idx >= 0 && idx < value.Len() {\n\t\t// Note: The Go compiler successfully avoids an allocation for\n\t\t// the interface{} conversion here:\n\t\treturn value.Index(idx).Interface().(KeyValue), true\n\t}\n\n\treturn KeyValue{}, false\n}\n\n// Value returns the value of a specified key in this set.\nfunc (l *Set) Value(k Key) (Value, bool) {\n\tif l == nil || !l.equivalent.Valid() {\n\t\treturn Value{}, false\n\t}\n\trValue := l.equivalent.reflectValue()\n\tvlen := rValue.Len()\n\n\tidx := sort.Search(vlen, func(idx int) bool {\n\t\treturn rValue.Index(idx).Interface().(KeyValue).Key >= k\n\t})\n\tif idx >= vlen {\n\t\treturn Value{}, false\n\t}\n\tkeyValue := rValue.Index(idx).Interface().(KeyValue)\n\tif k == keyValue.Key {\n\t\treturn keyValue.Value, true\n\t}\n\treturn Value{}, false\n}\n\n// HasValue tests whether a key is defined in this set.\nfunc (l *Set) HasValue(k Key) bool {\n\tif l == nil {\n\t\treturn false\n\t}\n\t_, ok := l.Value(k)\n\treturn ok\n}\n\n// Iter returns an iterator for visiting the attributes in this set.\nfunc (l *Set) Iter() Iterator {\n\treturn Iterator{\n\t\tstorage: l,\n\t\tidx:     -1,\n\t}\n}\n\n// ToSlice returns the set of attributes belonging to this set, sorted, where\n// keys appear no more than once.\nfunc (l *Set) ToSlice() []KeyValue {\n\titer := l.Iter()\n\treturn iter.ToSlice()\n}\n\n// Equivalent returns a value that may be used as a map key. The Distinct type\n// guarantees that the result will equal the equivalent. Distinct value of any\n// attribute set with the same elements as this, where sets are made unique by\n// choosing the last value in the input for any given key.\nfunc (l *Set) Equivalent() Distinct {\n\tif l == nil || !l.equivalent.Valid() {\n\t\treturn emptySet.equivalent\n\t}\n\treturn l.equivalent\n}\n\n// Equals returns true if the argument set is equivalent to this set.\nfunc (l *Set) Equals(o *Set) bool {\n\treturn l.Equivalent() == o.Equivalent()\n}\n\n// Encoded returns the encoded form of this set, according to encoder.\nfunc (l *Set) Encoded(encoder Encoder) string {\n\tif l == nil || encoder == nil {\n\t\treturn \"\"\n\t}\n\n\treturn encoder.Encode(l.Iter())\n}\n\nfunc empty() Set {\n\treturn Set{\n\t\tequivalent: emptySet.equivalent,\n\t}\n}\n\n// NewSet returns a new Set. See the documentation for\n// NewSetWithSortableFiltered for more details.\n//\n// Except for empty sets, this method adds an additional allocation compared\n// with calls that include a Sortable.\nfunc NewSet(kvs ...KeyValue) Set {\n\ts, _ := NewSetWithFiltered(kvs, nil)\n\treturn s\n}\n\n// NewSetWithSortable returns a new Set. See the documentation for\n// NewSetWithSortableFiltered for more details.\n//\n// This call includes a Sortable option as a memory optimization.\n//\n// Deprecated: Use [NewSet] instead.\nfunc NewSetWithSortable(kvs []KeyValue, _ *Sortable) Set {\n\ts, _ := NewSetWithFiltered(kvs, nil)\n\treturn s\n}\n\n// NewSetWithFiltered returns a new Set. See the documentation for\n// NewSetWithSortableFiltered for more details.\n//\n// This call includes a Filter to include/exclude attribute keys from the\n// return value. Excluded keys are returned as a slice of attribute values.\nfunc NewSetWithFiltered(kvs []KeyValue, filter Filter) (Set, []KeyValue) {\n\t// Check for empty set.\n\tif len(kvs) == 0 {\n\t\treturn empty(), nil\n\t}\n\n\t// Stable sort so the following de-duplication can implement\n\t// last-value-wins semantics.\n\tslices.SortStableFunc(kvs, func(a, b KeyValue) int {\n\t\treturn cmp.Compare(a.Key, b.Key)\n\t})\n\n\tposition := len(kvs) - 1\n\toffset := position - 1\n\n\t// The requirements stated above require that the stable\n\t// result be placed in the end of the input slice, while\n\t// overwritten values are swapped to the beginning.\n\t//\n\t// De-duplicate with last-value-wins semantics.  Preserve\n\t// duplicate values at the beginning of the input slice.\n\tfor ; offset >= 0; offset-- {\n\t\tif kvs[offset].Key == kvs[position].Key {\n\t\t\tcontinue\n\t\t}\n\t\tposition--\n\t\tkvs[offset], kvs[position] = kvs[position], kvs[offset]\n\t}\n\tkvs = kvs[position:]\n\n\tif filter != nil {\n\t\tif div := filteredToFront(kvs, filter); div != 0 {\n\t\t\treturn Set{equivalent: computeDistinct(kvs[div:])}, kvs[:div]\n\t\t}\n\t}\n\treturn Set{equivalent: computeDistinct(kvs)}, nil\n}\n\n// NewSetWithSortableFiltered returns a new Set.\n//\n// Duplicate keys are eliminated by taking the last value.  This\n// re-orders the input slice so that unique last-values are contiguous\n// at the end of the slice.\n//\n// This ensures the following:\n//\n// - Last-value-wins semantics\n// - Caller sees the reordering, but doesn't lose values\n// - Repeated call preserve last-value wins.\n//\n// Note that methods are defined on Set, although this returns Set. Callers\n// can avoid memory allocations by:\n//\n// - allocating a Sortable for use as a temporary in this method\n// - allocating a Set for storing the return value of this constructor.\n//\n// The result maintains a cache of encoded attributes, by attribute.EncoderID.\n// This value should not be copied after its first use.\n//\n// The second []KeyValue return value is a list of attributes that were\n// excluded by the Filter (if non-nil).\n//\n// Deprecated: Use [NewSetWithFiltered] instead.\nfunc NewSetWithSortableFiltered(kvs []KeyValue, _ *Sortable, filter Filter) (Set, []KeyValue) {\n\treturn NewSetWithFiltered(kvs, filter)\n}\n\n// filteredToFront filters slice in-place using keep function. All KeyValues that need to\n// be removed are moved to the front. All KeyValues that need to be kept are\n// moved (in-order) to the back. The index for the first KeyValue to be kept is\n// returned.\nfunc filteredToFront(slice []KeyValue, keep Filter) int {\n\tn := len(slice)\n\tj := n\n\tfor i := n - 1; i >= 0; i-- {\n\t\tif keep(slice[i]) {\n\t\t\tj--\n\t\t\tslice[i], slice[j] = slice[j], slice[i]\n\t\t}\n\t}\n\treturn j\n}\n\n// Filter returns a filtered copy of this Set. See the documentation for\n// NewSetWithSortableFiltered for more details.\nfunc (l *Set) Filter(re Filter) (Set, []KeyValue) {\n\tif re == nil {\n\t\treturn *l, nil\n\t}\n\n\t// Iterate in reverse to the first attribute that will be filtered out.\n\tn := l.Len()\n\tfirst := n - 1\n\tfor ; first >= 0; first-- {\n\t\tkv, _ := l.Get(first)\n\t\tif !re(kv) {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// No attributes will be dropped, return the immutable Set l and nil.\n\tif first < 0 {\n\t\treturn *l, nil\n\t}\n\n\t// Copy now that we know we need to return a modified set.\n\t//\n\t// Do not do this in-place on the underlying storage of *Set l. Sets are\n\t// immutable and filtering should not change this.\n\tslice := l.ToSlice()\n\n\t// Don't re-iterate the slice if only slice[0] is filtered.\n\tif first == 0 {\n\t\t// It is safe to assume len(slice) >= 1 given we found at least one\n\t\t// attribute above that needs to be filtered out.\n\t\treturn Set{equivalent: computeDistinct(slice[1:])}, slice[:1]\n\t}\n\n\t// Move the filtered slice[first] to the front (preserving order).\n\tkv := slice[first]\n\tcopy(slice[1:first+1], slice[:first])\n\tslice[0] = kv\n\n\t// Do not re-evaluate re(slice[first+1:]).\n\tdiv := filteredToFront(slice[1:first+1], re) + 1\n\treturn Set{equivalent: computeDistinct(slice[div:])}, slice[:div]\n}\n\n// computeDistinct returns a Distinct using either the fixed- or\n// reflect-oriented code path, depending on the size of the input. The input\n// slice is assumed to already be sorted and de-duplicated.\nfunc computeDistinct(kvs []KeyValue) Distinct {\n\tiface := computeDistinctFixed(kvs)\n\tif iface == nil {\n\t\tiface = computeDistinctReflect(kvs)\n\t}\n\treturn Distinct{\n\t\tiface: iface,\n\t}\n}\n\n// computeDistinctFixed computes a Distinct for small slices. It returns nil\n// if the input is too large for this code path.\nfunc computeDistinctFixed(kvs []KeyValue) interface{} {\n\tswitch len(kvs) {\n\tcase 1:\n\t\tptr := new([1]KeyValue)\n\t\tcopy((*ptr)[:], kvs)\n\t\treturn *ptr\n\tcase 2:\n\t\tptr := new([2]KeyValue)\n\t\tcopy((*ptr)[:], kvs)\n\t\treturn *ptr\n\tcase 3:\n\t\tptr := new([3]KeyValue)\n\t\tcopy((*ptr)[:], kvs)\n\t\treturn *ptr\n\tcase 4:\n\t\tptr := new([4]KeyValue)\n\t\tcopy((*ptr)[:], kvs)\n\t\treturn *ptr\n\tcase 5:\n\t\tptr := new([5]KeyValue)\n\t\tcopy((*ptr)[:], kvs)\n\t\treturn *ptr\n\tcase 6:\n\t\tptr := new([6]KeyValue)\n\t\tcopy((*ptr)[:], kvs)\n\t\treturn *ptr\n\tcase 7:\n\t\tptr := new([7]KeyValue)\n\t\tcopy((*ptr)[:], kvs)\n\t\treturn *ptr\n\tcase 8:\n\t\tptr := new([8]KeyValue)\n\t\tcopy((*ptr)[:], kvs)\n\t\treturn *ptr\n\tcase 9:\n\t\tptr := new([9]KeyValue)\n\t\tcopy((*ptr)[:], kvs)\n\t\treturn *ptr\n\tcase 10:\n\t\tptr := new([10]KeyValue)\n\t\tcopy((*ptr)[:], kvs)\n\t\treturn *ptr\n\tdefault:\n\t\treturn nil\n\t}\n}\n\n// computeDistinctReflect computes a Distinct using reflection, works for any\n// size input.\nfunc computeDistinctReflect(kvs []KeyValue) interface{} {\n\tat := reflect.New(reflect.ArrayOf(len(kvs), keyValueType)).Elem()\n\tfor i, keyValue := range kvs {\n\t\t*(at.Index(i).Addr().Interface().(*KeyValue)) = keyValue\n\t}\n\treturn at.Interface()\n}\n\n// MarshalJSON returns the JSON encoding of the Set.\nfunc (l *Set) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(l.equivalent.iface)\n}\n\n// MarshalLog is the marshaling function used by the logging system to represent this Set.\nfunc (l Set) MarshalLog() interface{} {\n\tkvs := make(map[string]string)\n\tfor _, kv := range l.ToSlice() {\n\t\tkvs[string(kv.Key)] = kv.Value.Emit()\n\t}\n\treturn kvs\n}\n\n// Len implements sort.Interface.\nfunc (l *Sortable) Len() int {\n\treturn len(*l)\n}\n\n// Swap implements sort.Interface.\nfunc (l *Sortable) Swap(i, j int) {\n\t(*l)[i], (*l)[j] = (*l)[j], (*l)[i]\n}\n\n// Less implements sort.Interface.\nfunc (l *Sortable) Less(i, j int) bool {\n\treturn (*l)[i].Key < (*l)[j].Key\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/attribute/type_string.go",
    "content": "// Code generated by \"stringer -type=Type\"; DO NOT EDIT.\n\npackage attribute\n\nimport \"strconv\"\n\nfunc _() {\n\t// An \"invalid array index\" compiler error signifies that the constant values have changed.\n\t// Re-run the stringer command to generate them again.\n\tvar x [1]struct{}\n\t_ = x[INVALID-0]\n\t_ = x[BOOL-1]\n\t_ = x[INT64-2]\n\t_ = x[FLOAT64-3]\n\t_ = x[STRING-4]\n\t_ = x[BOOLSLICE-5]\n\t_ = x[INT64SLICE-6]\n\t_ = x[FLOAT64SLICE-7]\n\t_ = x[STRINGSLICE-8]\n}\n\nconst _Type_name = \"INVALIDBOOLINT64FLOAT64STRINGBOOLSLICEINT64SLICEFLOAT64SLICESTRINGSLICE\"\n\nvar _Type_index = [...]uint8{0, 7, 11, 16, 23, 29, 38, 48, 60, 71}\n\nfunc (i Type) String() string {\n\tif i < 0 || i >= Type(len(_Type_index)-1) {\n\t\treturn \"Type(\" + strconv.FormatInt(int64(i), 10) + \")\"\n\t}\n\treturn _Type_name[_Type_index[i]:_Type_index[i+1]]\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/attribute/value.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage attribute // import \"go.opentelemetry.io/otel/attribute\"\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\n\t\"go.opentelemetry.io/otel/internal\"\n\t\"go.opentelemetry.io/otel/internal/attribute\"\n)\n\n//go:generate stringer -type=Type\n\n// Type describes the type of the data Value holds.\ntype Type int // nolint: revive  // redefines builtin Type.\n\n// Value represents the value part in key-value pairs.\ntype Value struct {\n\tvtype    Type\n\tnumeric  uint64\n\tstringly string\n\tslice    interface{}\n}\n\nconst (\n\t// INVALID is used for a Value with no value set.\n\tINVALID Type = iota\n\t// BOOL is a boolean Type Value.\n\tBOOL\n\t// INT64 is a 64-bit signed integral Type Value.\n\tINT64\n\t// FLOAT64 is a 64-bit floating point Type Value.\n\tFLOAT64\n\t// STRING is a string Type Value.\n\tSTRING\n\t// BOOLSLICE is a slice of booleans Type Value.\n\tBOOLSLICE\n\t// INT64SLICE is a slice of 64-bit signed integral numbers Type Value.\n\tINT64SLICE\n\t// FLOAT64SLICE is a slice of 64-bit floating point numbers Type Value.\n\tFLOAT64SLICE\n\t// STRINGSLICE is a slice of strings Type Value.\n\tSTRINGSLICE\n)\n\n// BoolValue creates a BOOL Value.\nfunc BoolValue(v bool) Value {\n\treturn Value{\n\t\tvtype:   BOOL,\n\t\tnumeric: internal.BoolToRaw(v),\n\t}\n}\n\n// BoolSliceValue creates a BOOLSLICE Value.\nfunc BoolSliceValue(v []bool) Value {\n\treturn Value{vtype: BOOLSLICE, slice: attribute.BoolSliceValue(v)}\n}\n\n// IntValue creates an INT64 Value.\nfunc IntValue(v int) Value {\n\treturn Int64Value(int64(v))\n}\n\n// IntSliceValue creates an INTSLICE Value.\nfunc IntSliceValue(v []int) Value {\n\tvar int64Val int64\n\tcp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(int64Val)))\n\tfor i, val := range v {\n\t\tcp.Elem().Index(i).SetInt(int64(val))\n\t}\n\treturn Value{\n\t\tvtype: INT64SLICE,\n\t\tslice: cp.Elem().Interface(),\n\t}\n}\n\n// Int64Value creates an INT64 Value.\nfunc Int64Value(v int64) Value {\n\treturn Value{\n\t\tvtype:   INT64,\n\t\tnumeric: internal.Int64ToRaw(v),\n\t}\n}\n\n// Int64SliceValue creates an INT64SLICE Value.\nfunc Int64SliceValue(v []int64) Value {\n\treturn Value{vtype: INT64SLICE, slice: attribute.Int64SliceValue(v)}\n}\n\n// Float64Value creates a FLOAT64 Value.\nfunc Float64Value(v float64) Value {\n\treturn Value{\n\t\tvtype:   FLOAT64,\n\t\tnumeric: internal.Float64ToRaw(v),\n\t}\n}\n\n// Float64SliceValue creates a FLOAT64SLICE Value.\nfunc Float64SliceValue(v []float64) Value {\n\treturn Value{vtype: FLOAT64SLICE, slice: attribute.Float64SliceValue(v)}\n}\n\n// StringValue creates a STRING Value.\nfunc StringValue(v string) Value {\n\treturn Value{\n\t\tvtype:    STRING,\n\t\tstringly: v,\n\t}\n}\n\n// StringSliceValue creates a STRINGSLICE Value.\nfunc StringSliceValue(v []string) Value {\n\treturn Value{vtype: STRINGSLICE, slice: attribute.StringSliceValue(v)}\n}\n\n// Type returns a type of the Value.\nfunc (v Value) Type() Type {\n\treturn v.vtype\n}\n\n// AsBool returns the bool value. Make sure that the Value's type is\n// BOOL.\nfunc (v Value) AsBool() bool {\n\treturn internal.RawToBool(v.numeric)\n}\n\n// AsBoolSlice returns the []bool value. Make sure that the Value's type is\n// BOOLSLICE.\nfunc (v Value) AsBoolSlice() []bool {\n\tif v.vtype != BOOLSLICE {\n\t\treturn nil\n\t}\n\treturn v.asBoolSlice()\n}\n\nfunc (v Value) asBoolSlice() []bool {\n\treturn attribute.AsBoolSlice(v.slice)\n}\n\n// AsInt64 returns the int64 value. Make sure that the Value's type is\n// INT64.\nfunc (v Value) AsInt64() int64 {\n\treturn internal.RawToInt64(v.numeric)\n}\n\n// AsInt64Slice returns the []int64 value. Make sure that the Value's type is\n// INT64SLICE.\nfunc (v Value) AsInt64Slice() []int64 {\n\tif v.vtype != INT64SLICE {\n\t\treturn nil\n\t}\n\treturn v.asInt64Slice()\n}\n\nfunc (v Value) asInt64Slice() []int64 {\n\treturn attribute.AsInt64Slice(v.slice)\n}\n\n// AsFloat64 returns the float64 value. Make sure that the Value's\n// type is FLOAT64.\nfunc (v Value) AsFloat64() float64 {\n\treturn internal.RawToFloat64(v.numeric)\n}\n\n// AsFloat64Slice returns the []float64 value. Make sure that the Value's type is\n// FLOAT64SLICE.\nfunc (v Value) AsFloat64Slice() []float64 {\n\tif v.vtype != FLOAT64SLICE {\n\t\treturn nil\n\t}\n\treturn v.asFloat64Slice()\n}\n\nfunc (v Value) asFloat64Slice() []float64 {\n\treturn attribute.AsFloat64Slice(v.slice)\n}\n\n// AsString returns the string value. Make sure that the Value's type\n// is STRING.\nfunc (v Value) AsString() string {\n\treturn v.stringly\n}\n\n// AsStringSlice returns the []string value. Make sure that the Value's type is\n// STRINGSLICE.\nfunc (v Value) AsStringSlice() []string {\n\tif v.vtype != STRINGSLICE {\n\t\treturn nil\n\t}\n\treturn v.asStringSlice()\n}\n\nfunc (v Value) asStringSlice() []string {\n\treturn attribute.AsStringSlice(v.slice)\n}\n\ntype unknownValueType struct{}\n\n// AsInterface returns Value's data as interface{}.\nfunc (v Value) AsInterface() interface{} {\n\tswitch v.Type() {\n\tcase BOOL:\n\t\treturn v.AsBool()\n\tcase BOOLSLICE:\n\t\treturn v.asBoolSlice()\n\tcase INT64:\n\t\treturn v.AsInt64()\n\tcase INT64SLICE:\n\t\treturn v.asInt64Slice()\n\tcase FLOAT64:\n\t\treturn v.AsFloat64()\n\tcase FLOAT64SLICE:\n\t\treturn v.asFloat64Slice()\n\tcase STRING:\n\t\treturn v.stringly\n\tcase STRINGSLICE:\n\t\treturn v.asStringSlice()\n\t}\n\treturn unknownValueType{}\n}\n\n// Emit returns a string representation of Value's data.\nfunc (v Value) Emit() string {\n\tswitch v.Type() {\n\tcase BOOLSLICE:\n\t\treturn fmt.Sprint(v.asBoolSlice())\n\tcase BOOL:\n\t\treturn strconv.FormatBool(v.AsBool())\n\tcase INT64SLICE:\n\t\tj, err := json.Marshal(v.asInt64Slice())\n\t\tif err != nil {\n\t\t\treturn fmt.Sprintf(\"invalid: %v\", v.asInt64Slice())\n\t\t}\n\t\treturn string(j)\n\tcase INT64:\n\t\treturn strconv.FormatInt(v.AsInt64(), 10)\n\tcase FLOAT64SLICE:\n\t\tj, err := json.Marshal(v.asFloat64Slice())\n\t\tif err != nil {\n\t\t\treturn fmt.Sprintf(\"invalid: %v\", v.asFloat64Slice())\n\t\t}\n\t\treturn string(j)\n\tcase FLOAT64:\n\t\treturn fmt.Sprint(v.AsFloat64())\n\tcase STRINGSLICE:\n\t\tj, err := json.Marshal(v.asStringSlice())\n\t\tif err != nil {\n\t\t\treturn fmt.Sprintf(\"invalid: %v\", v.asStringSlice())\n\t\t}\n\t\treturn string(j)\n\tcase STRING:\n\t\treturn v.stringly\n\tdefault:\n\t\treturn \"unknown\"\n\t}\n}\n\n// MarshalJSON returns the JSON encoding of the Value.\nfunc (v Value) MarshalJSON() ([]byte, error) {\n\tvar jsonVal struct {\n\t\tType  string\n\t\tValue interface{}\n\t}\n\tjsonVal.Type = v.Type().String()\n\tjsonVal.Value = v.AsInterface()\n\treturn json.Marshal(jsonVal)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/baggage/README.md",
    "content": "# Baggage\n\n[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/baggage)](https://pkg.go.dev/go.opentelemetry.io/otel/baggage)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/baggage/baggage.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage baggage // import \"go.opentelemetry.io/otel/baggage\"\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"go.opentelemetry.io/otel/internal/baggage\"\n)\n\nconst (\n\tmaxMembers               = 180\n\tmaxBytesPerMembers       = 4096\n\tmaxBytesPerBaggageString = 8192\n\n\tlistDelimiter     = \",\"\n\tkeyValueDelimiter = \"=\"\n\tpropertyDelimiter = \";\"\n)\n\nvar (\n\terrInvalidKey      = errors.New(\"invalid key\")\n\terrInvalidValue    = errors.New(\"invalid value\")\n\terrInvalidProperty = errors.New(\"invalid baggage list-member property\")\n\terrInvalidMember   = errors.New(\"invalid baggage list-member\")\n\terrMemberNumber    = errors.New(\"too many list-members in baggage-string\")\n\terrMemberBytes     = errors.New(\"list-member too large\")\n\terrBaggageBytes    = errors.New(\"baggage-string too large\")\n)\n\n// Property is an additional metadata entry for a baggage list-member.\ntype Property struct {\n\tkey, value string\n\n\t// hasValue indicates if a zero-value value means the property does not\n\t// have a value or if it was the zero-value.\n\thasValue bool\n}\n\n// NewKeyProperty returns a new Property for key.\n//\n// If key is invalid, an error will be returned.\nfunc NewKeyProperty(key string) (Property, error) {\n\tif !validateKey(key) {\n\t\treturn newInvalidProperty(), fmt.Errorf(\"%w: %q\", errInvalidKey, key)\n\t}\n\n\tp := Property{key: key}\n\treturn p, nil\n}\n\n// NewKeyValueProperty returns a new Property for key with value.\n//\n// The passed key must be compliant with W3C Baggage specification.\n// The passed value must be percent-encoded as defined in W3C Baggage specification.\n//\n// Notice: Consider using [NewKeyValuePropertyRaw] instead\n// that does not require percent-encoding of the value.\nfunc NewKeyValueProperty(key, value string) (Property, error) {\n\tif !validateValue(value) {\n\t\treturn newInvalidProperty(), fmt.Errorf(\"%w: %q\", errInvalidValue, value)\n\t}\n\tdecodedValue, err := url.PathUnescape(value)\n\tif err != nil {\n\t\treturn newInvalidProperty(), fmt.Errorf(\"%w: %q\", errInvalidValue, value)\n\t}\n\treturn NewKeyValuePropertyRaw(key, decodedValue)\n}\n\n// NewKeyValuePropertyRaw returns a new Property for key with value.\n//\n// The passed key must be compliant with W3C Baggage specification.\nfunc NewKeyValuePropertyRaw(key, value string) (Property, error) {\n\tif !validateKey(key) {\n\t\treturn newInvalidProperty(), fmt.Errorf(\"%w: %q\", errInvalidKey, key)\n\t}\n\n\tp := Property{\n\t\tkey:      key,\n\t\tvalue:    value,\n\t\thasValue: true,\n\t}\n\treturn p, nil\n}\n\nfunc newInvalidProperty() Property {\n\treturn Property{}\n}\n\n// parseProperty attempts to decode a Property from the passed string. It\n// returns an error if the input is invalid according to the W3C Baggage\n// specification.\nfunc parseProperty(property string) (Property, error) {\n\tif property == \"\" {\n\t\treturn newInvalidProperty(), nil\n\t}\n\n\tp, ok := parsePropertyInternal(property)\n\tif !ok {\n\t\treturn newInvalidProperty(), fmt.Errorf(\"%w: %q\", errInvalidProperty, property)\n\t}\n\n\treturn p, nil\n}\n\n// validate ensures p conforms to the W3C Baggage specification, returning an\n// error otherwise.\nfunc (p Property) validate() error {\n\terrFunc := func(err error) error {\n\t\treturn fmt.Errorf(\"invalid property: %w\", err)\n\t}\n\n\tif !validateKey(p.key) {\n\t\treturn errFunc(fmt.Errorf(\"%w: %q\", errInvalidKey, p.key))\n\t}\n\tif !p.hasValue && p.value != \"\" {\n\t\treturn errFunc(errors.New(\"inconsistent value\"))\n\t}\n\treturn nil\n}\n\n// Key returns the Property key.\nfunc (p Property) Key() string {\n\treturn p.key\n}\n\n// Value returns the Property value. Additionally, a boolean value is returned\n// indicating if the returned value is the empty if the Property has a value\n// that is empty or if the value is not set.\nfunc (p Property) Value() (string, bool) {\n\treturn p.value, p.hasValue\n}\n\n// String encodes Property into a header string compliant with the W3C Baggage\n// specification.\nfunc (p Property) String() string {\n\tif p.hasValue {\n\t\treturn fmt.Sprintf(\"%s%s%v\", p.key, keyValueDelimiter, valueEscape(p.value))\n\t}\n\treturn p.key\n}\n\ntype properties []Property\n\nfunc fromInternalProperties(iProps []baggage.Property) properties {\n\tif len(iProps) == 0 {\n\t\treturn nil\n\t}\n\n\tprops := make(properties, len(iProps))\n\tfor i, p := range iProps {\n\t\tprops[i] = Property{\n\t\t\tkey:      p.Key,\n\t\t\tvalue:    p.Value,\n\t\t\thasValue: p.HasValue,\n\t\t}\n\t}\n\treturn props\n}\n\nfunc (p properties) asInternal() []baggage.Property {\n\tif len(p) == 0 {\n\t\treturn nil\n\t}\n\n\tiProps := make([]baggage.Property, len(p))\n\tfor i, prop := range p {\n\t\tiProps[i] = baggage.Property{\n\t\t\tKey:      prop.key,\n\t\t\tValue:    prop.value,\n\t\t\tHasValue: prop.hasValue,\n\t\t}\n\t}\n\treturn iProps\n}\n\nfunc (p properties) Copy() properties {\n\tif len(p) == 0 {\n\t\treturn nil\n\t}\n\n\tprops := make(properties, len(p))\n\tcopy(props, p)\n\treturn props\n}\n\n// validate ensures each Property in p conforms to the W3C Baggage\n// specification, returning an error otherwise.\nfunc (p properties) validate() error {\n\tfor _, prop := range p {\n\t\tif err := prop.validate(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// String encodes properties into a header string compliant with the W3C Baggage\n// specification.\nfunc (p properties) String() string {\n\tprops := make([]string, len(p))\n\tfor i, prop := range p {\n\t\tprops[i] = prop.String()\n\t}\n\treturn strings.Join(props, propertyDelimiter)\n}\n\n// Member is a list-member of a baggage-string as defined by the W3C Baggage\n// specification.\ntype Member struct {\n\tkey, value string\n\tproperties properties\n\n\t// hasData indicates whether the created property contains data or not.\n\t// Properties that do not contain data are invalid with no other check\n\t// required.\n\thasData bool\n}\n\n// NewMember returns a new Member from the passed arguments.\n//\n// The passed key must be compliant with W3C Baggage specification.\n// The passed value must be percent-encoded as defined in W3C Baggage specification.\n//\n// Notice: Consider using [NewMemberRaw] instead\n// that does not require percent-encoding of the value.\nfunc NewMember(key, value string, props ...Property) (Member, error) {\n\tif !validateValue(value) {\n\t\treturn newInvalidMember(), fmt.Errorf(\"%w: %q\", errInvalidValue, value)\n\t}\n\tdecodedValue, err := url.PathUnescape(value)\n\tif err != nil {\n\t\treturn newInvalidMember(), fmt.Errorf(\"%w: %q\", errInvalidValue, value)\n\t}\n\treturn NewMemberRaw(key, decodedValue, props...)\n}\n\n// NewMemberRaw returns a new Member from the passed arguments.\n//\n// The passed key must be compliant with W3C Baggage specification.\nfunc NewMemberRaw(key, value string, props ...Property) (Member, error) {\n\tm := Member{\n\t\tkey:        key,\n\t\tvalue:      value,\n\t\tproperties: properties(props).Copy(),\n\t\thasData:    true,\n\t}\n\tif err := m.validate(); err != nil {\n\t\treturn newInvalidMember(), err\n\t}\n\treturn m, nil\n}\n\nfunc newInvalidMember() Member {\n\treturn Member{}\n}\n\n// parseMember attempts to decode a Member from the passed string. It returns\n// an error if the input is invalid according to the W3C Baggage\n// specification.\nfunc parseMember(member string) (Member, error) {\n\tif n := len(member); n > maxBytesPerMembers {\n\t\treturn newInvalidMember(), fmt.Errorf(\"%w: %d\", errMemberBytes, n)\n\t}\n\n\tvar props properties\n\tkeyValue, properties, found := strings.Cut(member, propertyDelimiter)\n\tif found {\n\t\t// Parse the member properties.\n\t\tfor _, pStr := range strings.Split(properties, propertyDelimiter) {\n\t\t\tp, err := parseProperty(pStr)\n\t\t\tif err != nil {\n\t\t\t\treturn newInvalidMember(), err\n\t\t\t}\n\t\t\tprops = append(props, p)\n\t\t}\n\t}\n\t// Parse the member key/value pair.\n\n\t// Take into account a value can contain equal signs (=).\n\tk, v, found := strings.Cut(keyValue, keyValueDelimiter)\n\tif !found {\n\t\treturn newInvalidMember(), fmt.Errorf(\"%w: %q\", errInvalidMember, member)\n\t}\n\t// \"Leading and trailing whitespaces are allowed but MUST be trimmed\n\t// when converting the header into a data structure.\"\n\tkey := strings.TrimSpace(k)\n\tif !validateKey(key) {\n\t\treturn newInvalidMember(), fmt.Errorf(\"%w: %q\", errInvalidKey, key)\n\t}\n\n\tval := strings.TrimSpace(v)\n\tif !validateValue(val) {\n\t\treturn newInvalidMember(), fmt.Errorf(\"%w: %q\", errInvalidValue, v)\n\t}\n\n\t// Decode a percent-encoded value.\n\tvalue, err := url.PathUnescape(val)\n\tif err != nil {\n\t\treturn newInvalidMember(), fmt.Errorf(\"%w: %w\", errInvalidValue, err)\n\t}\n\treturn Member{key: key, value: value, properties: props, hasData: true}, nil\n}\n\n// validate ensures m conforms to the W3C Baggage specification.\n// A key must be an ASCII string, returning an error otherwise.\nfunc (m Member) validate() error {\n\tif !m.hasData {\n\t\treturn fmt.Errorf(\"%w: %q\", errInvalidMember, m)\n\t}\n\n\tif !validateKey(m.key) {\n\t\treturn fmt.Errorf(\"%w: %q\", errInvalidKey, m.key)\n\t}\n\treturn m.properties.validate()\n}\n\n// Key returns the Member key.\nfunc (m Member) Key() string { return m.key }\n\n// Value returns the Member value.\nfunc (m Member) Value() string { return m.value }\n\n// Properties returns a copy of the Member properties.\nfunc (m Member) Properties() []Property { return m.properties.Copy() }\n\n// String encodes Member into a header string compliant with the W3C Baggage\n// specification.\nfunc (m Member) String() string {\n\t// A key is just an ASCII string. A value is restricted to be\n\t// US-ASCII characters excluding CTLs, whitespace,\n\t// DQUOTE, comma, semicolon, and backslash.\n\ts := m.key + keyValueDelimiter + valueEscape(m.value)\n\tif len(m.properties) > 0 {\n\t\ts += propertyDelimiter + m.properties.String()\n\t}\n\treturn s\n}\n\n// Baggage is a list of baggage members representing the baggage-string as\n// defined by the W3C Baggage specification.\ntype Baggage struct { //nolint:golint\n\tlist baggage.List\n}\n\n// New returns a new valid Baggage. It returns an error if it results in a\n// Baggage exceeding limits set in that specification.\n//\n// It expects all the provided members to have already been validated.\nfunc New(members ...Member) (Baggage, error) {\n\tif len(members) == 0 {\n\t\treturn Baggage{}, nil\n\t}\n\n\tb := make(baggage.List)\n\tfor _, m := range members {\n\t\tif !m.hasData {\n\t\t\treturn Baggage{}, errInvalidMember\n\t\t}\n\n\t\t// OpenTelemetry resolves duplicates by last-one-wins.\n\t\tb[m.key] = baggage.Item{\n\t\t\tValue:      m.value,\n\t\t\tProperties: m.properties.asInternal(),\n\t\t}\n\t}\n\n\t// Check member numbers after deduplication.\n\tif len(b) > maxMembers {\n\t\treturn Baggage{}, errMemberNumber\n\t}\n\n\tbag := Baggage{b}\n\tif n := len(bag.String()); n > maxBytesPerBaggageString {\n\t\treturn Baggage{}, fmt.Errorf(\"%w: %d\", errBaggageBytes, n)\n\t}\n\n\treturn bag, nil\n}\n\n// Parse attempts to decode a baggage-string from the passed string. It\n// returns an error if the input is invalid according to the W3C Baggage\n// specification.\n//\n// If there are duplicate list-members contained in baggage, the last one\n// defined (reading left-to-right) will be the only one kept. This diverges\n// from the W3C Baggage specification which allows duplicate list-members, but\n// conforms to the OpenTelemetry Baggage specification.\nfunc Parse(bStr string) (Baggage, error) {\n\tif bStr == \"\" {\n\t\treturn Baggage{}, nil\n\t}\n\n\tif n := len(bStr); n > maxBytesPerBaggageString {\n\t\treturn Baggage{}, fmt.Errorf(\"%w: %d\", errBaggageBytes, n)\n\t}\n\n\tb := make(baggage.List)\n\tfor _, memberStr := range strings.Split(bStr, listDelimiter) {\n\t\tm, err := parseMember(memberStr)\n\t\tif err != nil {\n\t\t\treturn Baggage{}, err\n\t\t}\n\t\t// OpenTelemetry resolves duplicates by last-one-wins.\n\t\tb[m.key] = baggage.Item{\n\t\t\tValue:      m.value,\n\t\t\tProperties: m.properties.asInternal(),\n\t\t}\n\t}\n\n\t// OpenTelemetry does not allow for duplicate list-members, but the W3C\n\t// specification does. Now that we have deduplicated, ensure the baggage\n\t// does not exceed list-member limits.\n\tif len(b) > maxMembers {\n\t\treturn Baggage{}, errMemberNumber\n\t}\n\n\treturn Baggage{b}, nil\n}\n\n// Member returns the baggage list-member identified by key.\n//\n// If there is no list-member matching the passed key the returned Member will\n// be a zero-value Member.\n// The returned member is not validated, as we assume the validation happened\n// when it was added to the Baggage.\nfunc (b Baggage) Member(key string) Member {\n\tv, ok := b.list[key]\n\tif !ok {\n\t\t// We do not need to worry about distinguishing between the situation\n\t\t// where a zero-valued Member is included in the Baggage because a\n\t\t// zero-valued Member is invalid according to the W3C Baggage\n\t\t// specification (it has an empty key).\n\t\treturn newInvalidMember()\n\t}\n\n\treturn Member{\n\t\tkey:        key,\n\t\tvalue:      v.Value,\n\t\tproperties: fromInternalProperties(v.Properties),\n\t\thasData:    true,\n\t}\n}\n\n// Members returns all the baggage list-members.\n// The order of the returned list-members does not have significance.\n//\n// The returned members are not validated, as we assume the validation happened\n// when they were added to the Baggage.\nfunc (b Baggage) Members() []Member {\n\tif len(b.list) == 0 {\n\t\treturn nil\n\t}\n\n\tmembers := make([]Member, 0, len(b.list))\n\tfor k, v := range b.list {\n\t\tmembers = append(members, Member{\n\t\t\tkey:        k,\n\t\t\tvalue:      v.Value,\n\t\t\tproperties: fromInternalProperties(v.Properties),\n\t\t\thasData:    true,\n\t\t})\n\t}\n\treturn members\n}\n\n// SetMember returns a copy the Baggage with the member included. If the\n// baggage contains a Member with the same key the existing Member is\n// replaced.\n//\n// If member is invalid according to the W3C Baggage specification, an error\n// is returned with the original Baggage.\nfunc (b Baggage) SetMember(member Member) (Baggage, error) {\n\tif !member.hasData {\n\t\treturn b, errInvalidMember\n\t}\n\n\tn := len(b.list)\n\tif _, ok := b.list[member.key]; !ok {\n\t\tn++\n\t}\n\tlist := make(baggage.List, n)\n\n\tfor k, v := range b.list {\n\t\t// Do not copy if we are just going to overwrite.\n\t\tif k == member.key {\n\t\t\tcontinue\n\t\t}\n\t\tlist[k] = v\n\t}\n\n\tlist[member.key] = baggage.Item{\n\t\tValue:      member.value,\n\t\tProperties: member.properties.asInternal(),\n\t}\n\n\treturn Baggage{list: list}, nil\n}\n\n// DeleteMember returns a copy of the Baggage with the list-member identified\n// by key removed.\nfunc (b Baggage) DeleteMember(key string) Baggage {\n\tn := len(b.list)\n\tif _, ok := b.list[key]; ok {\n\t\tn--\n\t}\n\tlist := make(baggage.List, n)\n\n\tfor k, v := range b.list {\n\t\tif k == key {\n\t\t\tcontinue\n\t\t}\n\t\tlist[k] = v\n\t}\n\n\treturn Baggage{list: list}\n}\n\n// Len returns the number of list-members in the Baggage.\nfunc (b Baggage) Len() int {\n\treturn len(b.list)\n}\n\n// String encodes Baggage into a header string compliant with the W3C Baggage\n// specification.\nfunc (b Baggage) String() string {\n\tmembers := make([]string, 0, len(b.list))\n\tfor k, v := range b.list {\n\t\tmembers = append(members, Member{\n\t\t\tkey:        k,\n\t\t\tvalue:      v.Value,\n\t\t\tproperties: fromInternalProperties(v.Properties),\n\t\t}.String())\n\t}\n\treturn strings.Join(members, listDelimiter)\n}\n\n// parsePropertyInternal attempts to decode a Property from the passed string.\n// It follows the spec at https://www.w3.org/TR/baggage/#definition.\nfunc parsePropertyInternal(s string) (p Property, ok bool) {\n\t// For the entire function we will use \"   key    =    value  \" as an example.\n\t// Attempting to parse the key.\n\t// First skip spaces at the beginning \"<   >key    =    value  \" (they could be empty).\n\tindex := skipSpace(s, 0)\n\n\t// Parse the key: \"   <key>    =    value  \".\n\tkeyStart := index\n\tkeyEnd := index\n\tfor _, c := range s[keyStart:] {\n\t\tif !validateKeyChar(c) {\n\t\t\tbreak\n\t\t}\n\t\tkeyEnd++\n\t}\n\n\t// If we couldn't find any valid key character,\n\t// it means the key is either empty or invalid.\n\tif keyStart == keyEnd {\n\t\treturn\n\t}\n\n\t// Skip spaces after the key: \"   key<    >=    value  \".\n\tindex = skipSpace(s, keyEnd)\n\n\tif index == len(s) {\n\t\t// A key can have no value, like: \"   key    \".\n\t\tok = true\n\t\tp.key = s[keyStart:keyEnd]\n\t\treturn\n\t}\n\n\t// If we have not reached the end and we can't find the '=' delimiter,\n\t// it means the property is invalid.\n\tif s[index] != keyValueDelimiter[0] {\n\t\treturn\n\t}\n\n\t// Attempting to parse the value.\n\t// Match: \"   key    =<    >value  \".\n\tindex = skipSpace(s, index+1)\n\n\t// Match the value string: \"   key    =    <value>  \".\n\t// A valid property can be: \"   key    =\".\n\t// Therefore, we don't have to check if the value is empty.\n\tvalueStart := index\n\tvalueEnd := index\n\tfor _, c := range s[valueStart:] {\n\t\tif !validateValueChar(c) {\n\t\t\tbreak\n\t\t}\n\t\tvalueEnd++\n\t}\n\n\t// Skip all trailing whitespaces: \"   key    =    value<  >\".\n\tindex = skipSpace(s, valueEnd)\n\n\t// If after looking for the value and skipping whitespaces\n\t// we have not reached the end, it means the property is\n\t// invalid, something like: \"   key    =    value  value1\".\n\tif index != len(s) {\n\t\treturn\n\t}\n\n\t// Decode a percent-encoded value.\n\tvalue, err := url.PathUnescape(s[valueStart:valueEnd])\n\tif err != nil {\n\t\treturn\n\t}\n\n\tok = true\n\tp.key = s[keyStart:keyEnd]\n\tp.hasValue = true\n\n\tp.value = value\n\treturn\n}\n\nfunc skipSpace(s string, offset int) int {\n\ti := offset\n\tfor ; i < len(s); i++ {\n\t\tc := s[i]\n\t\tif c != ' ' && c != '\\t' {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn i\n}\n\nvar safeKeyCharset = [utf8.RuneSelf]bool{\n\t// 0x23 to 0x27\n\t'#':  true,\n\t'$':  true,\n\t'%':  true,\n\t'&':  true,\n\t'\\'': true,\n\n\t// 0x30 to 0x39\n\t'0': true,\n\t'1': true,\n\t'2': true,\n\t'3': true,\n\t'4': true,\n\t'5': true,\n\t'6': true,\n\t'7': true,\n\t'8': true,\n\t'9': true,\n\n\t// 0x41 to 0x5a\n\t'A': true,\n\t'B': true,\n\t'C': true,\n\t'D': true,\n\t'E': true,\n\t'F': true,\n\t'G': true,\n\t'H': true,\n\t'I': true,\n\t'J': true,\n\t'K': true,\n\t'L': true,\n\t'M': true,\n\t'N': true,\n\t'O': true,\n\t'P': true,\n\t'Q': true,\n\t'R': true,\n\t'S': true,\n\t'T': true,\n\t'U': true,\n\t'V': true,\n\t'W': true,\n\t'X': true,\n\t'Y': true,\n\t'Z': true,\n\n\t// 0x5e to 0x7a\n\t'^': true,\n\t'_': true,\n\t'`': true,\n\t'a': true,\n\t'b': true,\n\t'c': true,\n\t'd': true,\n\t'e': true,\n\t'f': true,\n\t'g': true,\n\t'h': true,\n\t'i': true,\n\t'j': true,\n\t'k': true,\n\t'l': true,\n\t'm': true,\n\t'n': true,\n\t'o': true,\n\t'p': true,\n\t'q': true,\n\t'r': true,\n\t's': true,\n\t't': true,\n\t'u': true,\n\t'v': true,\n\t'w': true,\n\t'x': true,\n\t'y': true,\n\t'z': true,\n\n\t// remainder\n\t'!': true,\n\t'*': true,\n\t'+': true,\n\t'-': true,\n\t'.': true,\n\t'|': true,\n\t'~': true,\n}\n\nfunc validateKey(s string) bool {\n\tif len(s) == 0 {\n\t\treturn false\n\t}\n\n\tfor _, c := range s {\n\t\tif !validateKeyChar(c) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc validateKeyChar(c int32) bool {\n\treturn c >= 0 && c < int32(utf8.RuneSelf) && safeKeyCharset[c]\n}\n\nfunc validateValue(s string) bool {\n\tfor _, c := range s {\n\t\tif !validateValueChar(c) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\nvar safeValueCharset = [utf8.RuneSelf]bool{\n\t'!': true, // 0x21\n\n\t// 0x23 to 0x2b\n\t'#':  true,\n\t'$':  true,\n\t'%':  true,\n\t'&':  true,\n\t'\\'': true,\n\t'(':  true,\n\t')':  true,\n\t'*':  true,\n\t'+':  true,\n\n\t// 0x2d to 0x3a\n\t'-': true,\n\t'.': true,\n\t'/': true,\n\t'0': true,\n\t'1': true,\n\t'2': true,\n\t'3': true,\n\t'4': true,\n\t'5': true,\n\t'6': true,\n\t'7': true,\n\t'8': true,\n\t'9': true,\n\t':': true,\n\n\t// 0x3c to 0x5b\n\t'<': true, // 0x3C\n\t'=': true, // 0x3D\n\t'>': true, // 0x3E\n\t'?': true, // 0x3F\n\t'@': true, // 0x40\n\t'A': true, // 0x41\n\t'B': true, // 0x42\n\t'C': true, // 0x43\n\t'D': true, // 0x44\n\t'E': true, // 0x45\n\t'F': true, // 0x46\n\t'G': true, // 0x47\n\t'H': true, // 0x48\n\t'I': true, // 0x49\n\t'J': true, // 0x4A\n\t'K': true, // 0x4B\n\t'L': true, // 0x4C\n\t'M': true, // 0x4D\n\t'N': true, // 0x4E\n\t'O': true, // 0x4F\n\t'P': true, // 0x50\n\t'Q': true, // 0x51\n\t'R': true, // 0x52\n\t'S': true, // 0x53\n\t'T': true, // 0x54\n\t'U': true, // 0x55\n\t'V': true, // 0x56\n\t'W': true, // 0x57\n\t'X': true, // 0x58\n\t'Y': true, // 0x59\n\t'Z': true, // 0x5A\n\t'[': true, // 0x5B\n\n\t// 0x5d to 0x7e\n\t']': true, // 0x5D\n\t'^': true, // 0x5E\n\t'_': true, // 0x5F\n\t'`': true, // 0x60\n\t'a': true, // 0x61\n\t'b': true, // 0x62\n\t'c': true, // 0x63\n\t'd': true, // 0x64\n\t'e': true, // 0x65\n\t'f': true, // 0x66\n\t'g': true, // 0x67\n\t'h': true, // 0x68\n\t'i': true, // 0x69\n\t'j': true, // 0x6A\n\t'k': true, // 0x6B\n\t'l': true, // 0x6C\n\t'm': true, // 0x6D\n\t'n': true, // 0x6E\n\t'o': true, // 0x6F\n\t'p': true, // 0x70\n\t'q': true, // 0x71\n\t'r': true, // 0x72\n\t's': true, // 0x73\n\t't': true, // 0x74\n\t'u': true, // 0x75\n\t'v': true, // 0x76\n\t'w': true, // 0x77\n\t'x': true, // 0x78\n\t'y': true, // 0x79\n\t'z': true, // 0x7A\n\t'{': true, // 0x7B\n\t'|': true, // 0x7C\n\t'}': true, // 0x7D\n\t'~': true, // 0x7E\n}\n\nfunc validateValueChar(c int32) bool {\n\treturn c >= 0 && c < int32(utf8.RuneSelf) && safeValueCharset[c]\n}\n\n// valueEscape escapes the string so it can be safely placed inside a baggage value,\n// replacing special characters with %XX sequences as needed.\n//\n// The implementation is based on:\n// https://github.com/golang/go/blob/f6509cf5cdbb5787061b784973782933c47f1782/src/net/url/url.go#L285.\nfunc valueEscape(s string) string {\n\thexCount := 0\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tif shouldEscape(c) {\n\t\t\thexCount++\n\t\t}\n\t}\n\n\tif hexCount == 0 {\n\t\treturn s\n\t}\n\n\tvar buf [64]byte\n\tvar t []byte\n\n\trequired := len(s) + 2*hexCount\n\tif required <= len(buf) {\n\t\tt = buf[:required]\n\t} else {\n\t\tt = make([]byte, required)\n\t}\n\n\tj := 0\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tif shouldEscape(s[i]) {\n\t\t\tconst upperhex = \"0123456789ABCDEF\"\n\t\t\tt[j] = '%'\n\t\t\tt[j+1] = upperhex[c>>4]\n\t\t\tt[j+2] = upperhex[c&15]\n\t\t\tj += 3\n\t\t} else {\n\t\t\tt[j] = c\n\t\t\tj++\n\t\t}\n\t}\n\n\treturn string(t)\n}\n\n// shouldEscape returns true if the specified byte should be escaped when\n// appearing in a baggage value string.\nfunc shouldEscape(c byte) bool {\n\tif c == '%' {\n\t\t// The percent character must be encoded so that percent-encoding can work.\n\t\treturn true\n\t}\n\treturn !validateValueChar(int32(c))\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/baggage/context.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage baggage // import \"go.opentelemetry.io/otel/baggage\"\n\nimport (\n\t\"context\"\n\n\t\"go.opentelemetry.io/otel/internal/baggage\"\n)\n\n// ContextWithBaggage returns a copy of parent with baggage.\nfunc ContextWithBaggage(parent context.Context, b Baggage) context.Context {\n\t// Delegate so any hooks for the OpenTracing bridge are handled.\n\treturn baggage.ContextWithList(parent, b.list)\n}\n\n// ContextWithoutBaggage returns a copy of parent with no baggage.\nfunc ContextWithoutBaggage(parent context.Context) context.Context {\n\t// Delegate so any hooks for the OpenTracing bridge are handled.\n\treturn baggage.ContextWithList(parent, nil)\n}\n\n// FromContext returns the baggage contained in ctx.\nfunc FromContext(ctx context.Context) Baggage {\n\t// Delegate so any hooks for the OpenTracing bridge are handled.\n\treturn Baggage{list: baggage.ListFromContext(ctx)}\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/baggage/doc.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/*\nPackage baggage provides functionality for storing and retrieving\nbaggage items in Go context. For propagating the baggage, see the\ngo.opentelemetry.io/otel/propagation package.\n*/\npackage baggage // import \"go.opentelemetry.io/otel/baggage\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/codes/README.md",
    "content": "# Codes\n\n[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/codes)](https://pkg.go.dev/go.opentelemetry.io/otel/codes)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/codes/codes.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage codes // import \"go.opentelemetry.io/otel/codes\"\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strconv\"\n)\n\nconst (\n\t// Unset is the default status code.\n\tUnset Code = 0\n\n\t// Error indicates the operation contains an error.\n\t//\n\t// NOTE: The error code in OTLP is 2.\n\t// The value of this enum is only relevant to the internals\n\t// of the Go SDK.\n\tError Code = 1\n\n\t// Ok indicates operation has been validated by an Application developers\n\t// or Operator to have completed successfully, or contain no error.\n\t//\n\t// NOTE: The Ok code in OTLP is 1.\n\t// The value of this enum is only relevant to the internals\n\t// of the Go SDK.\n\tOk Code = 2\n\n\tmaxCode = 3\n)\n\n// Code is an 32-bit representation of a status state.\ntype Code uint32\n\nvar codeToStr = map[Code]string{\n\tUnset: \"Unset\",\n\tError: \"Error\",\n\tOk:    \"Ok\",\n}\n\nvar strToCode = map[string]Code{\n\t`\"Unset\"`: Unset,\n\t`\"Error\"`: Error,\n\t`\"Ok\"`:    Ok,\n}\n\n// String returns the Code as a string.\nfunc (c Code) String() string {\n\treturn codeToStr[c]\n}\n\n// UnmarshalJSON unmarshals b into the Code.\n//\n// This is based on the functionality in the gRPC codes package:\n// https://github.com/grpc/grpc-go/blob/bb64fee312b46ebee26be43364a7a966033521b1/codes/codes.go#L218-L244\nfunc (c *Code) UnmarshalJSON(b []byte) error {\n\t// From json.Unmarshaler: By convention, to approximate the behavior of\n\t// Unmarshal itself, Unmarshalers implement UnmarshalJSON([]byte(\"null\")) as\n\t// a no-op.\n\tif string(b) == \"null\" {\n\t\treturn nil\n\t}\n\tif c == nil {\n\t\treturn fmt.Errorf(\"nil receiver passed to UnmarshalJSON\")\n\t}\n\n\tvar x interface{}\n\tif err := json.Unmarshal(b, &x); err != nil {\n\t\treturn err\n\t}\n\tswitch x.(type) {\n\tcase string:\n\t\tif jc, ok := strToCode[string(b)]; ok {\n\t\t\t*c = jc\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(\"invalid code: %q\", string(b))\n\tcase float64:\n\t\tif ci, err := strconv.ParseUint(string(b), 10, 32); err == nil {\n\t\t\tif ci >= maxCode {\n\t\t\t\treturn fmt.Errorf(\"invalid code: %q\", ci)\n\t\t\t}\n\n\t\t\t*c = Code(ci)\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(\"invalid code: %q\", string(b))\n\tdefault:\n\t\treturn fmt.Errorf(\"invalid code: %q\", string(b))\n\t}\n}\n\n// MarshalJSON returns c as the JSON encoding of c.\nfunc (c *Code) MarshalJSON() ([]byte, error) {\n\tif c == nil {\n\t\treturn []byte(\"null\"), nil\n\t}\n\tstr, ok := codeToStr[*c]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"invalid code: %d\", *c)\n\t}\n\treturn []byte(fmt.Sprintf(\"%q\", str)), nil\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/codes/doc.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/*\nPackage codes defines the canonical error codes used by OpenTelemetry.\n\nIt conforms to [the OpenTelemetry\nspecification](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.20.0/specification/trace/api.md#set-status).\n*/\npackage codes // import \"go.opentelemetry.io/otel/codes\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/doc.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/*\nPackage otel provides global access to the OpenTelemetry API. The subpackages of\nthe otel package provide an implementation of the OpenTelemetry API.\n\nThe provided API is used to instrument code and measure data about that code's\nperformance and operation. The measured data, by default, is not processed or\ntransmitted anywhere. An implementation of the OpenTelemetry SDK, like the\ndefault SDK implementation (go.opentelemetry.io/otel/sdk), and associated\nexporters are used to process and transport this data.\n\nTo read the getting started guide, see https://opentelemetry.io/docs/languages/go/getting-started/.\n\nTo read more about tracing, see go.opentelemetry.io/otel/trace.\n\nTo read more about metrics, see go.opentelemetry.io/otel/metric.\n\nTo read more about propagation, see go.opentelemetry.io/otel/propagation and\ngo.opentelemetry.io/otel/baggage.\n*/\npackage otel // import \"go.opentelemetry.io/otel\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/error_handler.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otel // import \"go.opentelemetry.io/otel\"\n\n// ErrorHandler handles irremediable events.\ntype ErrorHandler interface {\n\t// DO NOT CHANGE: any modification will not be backwards compatible and\n\t// must never be done outside of a new major release.\n\n\t// Handle handles any error deemed irremediable by an OpenTelemetry\n\t// component.\n\tHandle(error)\n\t// DO NOT CHANGE: any modification will not be backwards compatible and\n\t// must never be done outside of a new major release.\n}\n\n// ErrorHandlerFunc is a convenience adapter to allow the use of a function\n// as an ErrorHandler.\ntype ErrorHandlerFunc func(error)\n\nvar _ ErrorHandler = ErrorHandlerFunc(nil)\n\n// Handle handles the irremediable error by calling the ErrorHandlerFunc itself.\nfunc (f ErrorHandlerFunc) Handle(err error) {\n\tf(err)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/get_main_pkgs.sh",
    "content": "#!/usr/bin/env bash\n\n# Copyright The OpenTelemetry Authors\n# SPDX-License-Identifier: Apache-2.0\n\nset -euo pipefail\n\ntop_dir='.'\nif [[ $# -gt 0 ]]; then\n    top_dir=\"${1}\"\nfi\n\np=$(pwd)\nmod_dirs=()\n\n# Note `mapfile` does not exist in older bash versions:\n# https://stackoverflow.com/questions/41475261/need-alternative-to-readarray-mapfile-for-script-on-older-version-of-bash\n\nwhile IFS= read -r line; do\n    mod_dirs+=(\"$line\")\ndone < <(find \"${top_dir}\" -type f -name 'go.mod' -exec dirname {} \\; | sort)\n\nfor mod_dir in \"${mod_dirs[@]}\"; do\n    cd \"${mod_dir}\"\n\n    while IFS= read -r line; do\n        echo \".${line#${p}}\"\n    done < <(go list --find -f '{{.Name}}|{{.Dir}}' ./... | grep '^main|' | cut -f 2- -d '|')\n    cd \"${p}\"\ndone\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/handler.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otel // import \"go.opentelemetry.io/otel\"\n\nimport (\n\t\"go.opentelemetry.io/otel/internal/global\"\n)\n\n// Compile-time check global.ErrDelegator implements ErrorHandler.\nvar _ ErrorHandler = (*global.ErrDelegator)(nil)\n\n// GetErrorHandler returns the global ErrorHandler instance.\n//\n// The default ErrorHandler instance returned will log all errors to STDERR\n// until an override ErrorHandler is set with SetErrorHandler. All\n// ErrorHandler returned prior to this will automatically forward errors to\n// the set instance instead of logging.\n//\n// Subsequent calls to SetErrorHandler after the first will not forward errors\n// to the new ErrorHandler for prior returned instances.\nfunc GetErrorHandler() ErrorHandler { return global.GetErrorHandler() }\n\n// SetErrorHandler sets the global ErrorHandler to h.\n//\n// The first time this is called all ErrorHandler previously returned from\n// GetErrorHandler will send errors to h instead of the default logging\n// ErrorHandler. Subsequent calls will set the global ErrorHandler, but not\n// delegate errors to h.\nfunc SetErrorHandler(h ErrorHandler) { global.SetErrorHandler(h) }\n\n// Handle is a convenience function for GetErrorHandler().Handle(err).\nfunc Handle(err error) { global.GetErrorHandler().Handle(err) }\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/attribute/attribute.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/*\nPackage attribute provide several helper functions for some commonly used\nlogic of processing attributes.\n*/\npackage attribute // import \"go.opentelemetry.io/otel/internal/attribute\"\n\nimport (\n\t\"reflect\"\n)\n\n// BoolSliceValue converts a bool slice into an array with same elements as slice.\nfunc BoolSliceValue(v []bool) interface{} {\n\tvar zero bool\n\tcp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()\n\treflect.Copy(cp, reflect.ValueOf(v))\n\treturn cp.Interface()\n}\n\n// Int64SliceValue converts an int64 slice into an array with same elements as slice.\nfunc Int64SliceValue(v []int64) interface{} {\n\tvar zero int64\n\tcp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()\n\treflect.Copy(cp, reflect.ValueOf(v))\n\treturn cp.Interface()\n}\n\n// Float64SliceValue converts a float64 slice into an array with same elements as slice.\nfunc Float64SliceValue(v []float64) interface{} {\n\tvar zero float64\n\tcp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()\n\treflect.Copy(cp, reflect.ValueOf(v))\n\treturn cp.Interface()\n}\n\n// StringSliceValue converts a string slice into an array with same elements as slice.\nfunc StringSliceValue(v []string) interface{} {\n\tvar zero string\n\tcp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()\n\treflect.Copy(cp, reflect.ValueOf(v))\n\treturn cp.Interface()\n}\n\n// AsBoolSlice converts a bool array into a slice into with same elements as array.\nfunc AsBoolSlice(v interface{}) []bool {\n\trv := reflect.ValueOf(v)\n\tif rv.Type().Kind() != reflect.Array {\n\t\treturn nil\n\t}\n\tvar zero bool\n\tcorrectLen := rv.Len()\n\tcorrectType := reflect.ArrayOf(correctLen, reflect.TypeOf(zero))\n\tcpy := reflect.New(correctType)\n\t_ = reflect.Copy(cpy.Elem(), rv)\n\treturn cpy.Elem().Slice(0, correctLen).Interface().([]bool)\n}\n\n// AsInt64Slice converts an int64 array into a slice into with same elements as array.\nfunc AsInt64Slice(v interface{}) []int64 {\n\trv := reflect.ValueOf(v)\n\tif rv.Type().Kind() != reflect.Array {\n\t\treturn nil\n\t}\n\tvar zero int64\n\tcorrectLen := rv.Len()\n\tcorrectType := reflect.ArrayOf(correctLen, reflect.TypeOf(zero))\n\tcpy := reflect.New(correctType)\n\t_ = reflect.Copy(cpy.Elem(), rv)\n\treturn cpy.Elem().Slice(0, correctLen).Interface().([]int64)\n}\n\n// AsFloat64Slice converts a float64 array into a slice into with same elements as array.\nfunc AsFloat64Slice(v interface{}) []float64 {\n\trv := reflect.ValueOf(v)\n\tif rv.Type().Kind() != reflect.Array {\n\t\treturn nil\n\t}\n\tvar zero float64\n\tcorrectLen := rv.Len()\n\tcorrectType := reflect.ArrayOf(correctLen, reflect.TypeOf(zero))\n\tcpy := reflect.New(correctType)\n\t_ = reflect.Copy(cpy.Elem(), rv)\n\treturn cpy.Elem().Slice(0, correctLen).Interface().([]float64)\n}\n\n// AsStringSlice converts a string array into a slice into with same elements as array.\nfunc AsStringSlice(v interface{}) []string {\n\trv := reflect.ValueOf(v)\n\tif rv.Type().Kind() != reflect.Array {\n\t\treturn nil\n\t}\n\tvar zero string\n\tcorrectLen := rv.Len()\n\tcorrectType := reflect.ArrayOf(correctLen, reflect.TypeOf(zero))\n\tcpy := reflect.New(correctType)\n\t_ = reflect.Copy(cpy.Elem(), rv)\n\treturn cpy.Elem().Slice(0, correctLen).Interface().([]string)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/baggage/baggage.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/*\nPackage baggage provides base types and functionality to store and retrieve\nbaggage in Go context. This package exists because the OpenTracing bridge to\nOpenTelemetry needs to synchronize state whenever baggage for a context is\nmodified and that context contains an OpenTracing span. If it were not for\nthis need this package would not need to exist and the\n`go.opentelemetry.io/otel/baggage` package would be the singular place where\nW3C baggage is handled.\n*/\npackage baggage // import \"go.opentelemetry.io/otel/internal/baggage\"\n\n// List is the collection of baggage members. The W3C allows for duplicates,\n// but OpenTelemetry does not, therefore, this is represented as a map.\ntype List map[string]Item\n\n// Item is the value and metadata properties part of a list-member.\ntype Item struct {\n\tValue      string\n\tProperties []Property\n}\n\n// Property is a metadata entry for a list-member.\ntype Property struct {\n\tKey, Value string\n\n\t// HasValue indicates if a zero-value value means the property does not\n\t// have a value or if it was the zero-value.\n\tHasValue bool\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/baggage/context.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage baggage // import \"go.opentelemetry.io/otel/internal/baggage\"\n\nimport \"context\"\n\ntype baggageContextKeyType int\n\nconst baggageKey baggageContextKeyType = iota\n\n// SetHookFunc is a callback called when storing baggage in the context.\ntype SetHookFunc func(context.Context, List) context.Context\n\n// GetHookFunc is a callback called when getting baggage from the context.\ntype GetHookFunc func(context.Context, List) List\n\ntype baggageState struct {\n\tlist List\n\n\tsetHook SetHookFunc\n\tgetHook GetHookFunc\n}\n\n// ContextWithSetHook returns a copy of parent with hook configured to be\n// invoked every time ContextWithBaggage is called.\n//\n// Passing nil SetHookFunc creates a context with no set hook to call.\nfunc ContextWithSetHook(parent context.Context, hook SetHookFunc) context.Context {\n\tvar s baggageState\n\tif v, ok := parent.Value(baggageKey).(baggageState); ok {\n\t\ts = v\n\t}\n\n\ts.setHook = hook\n\treturn context.WithValue(parent, baggageKey, s)\n}\n\n// ContextWithGetHook returns a copy of parent with hook configured to be\n// invoked every time FromContext is called.\n//\n// Passing nil GetHookFunc creates a context with no get hook to call.\nfunc ContextWithGetHook(parent context.Context, hook GetHookFunc) context.Context {\n\tvar s baggageState\n\tif v, ok := parent.Value(baggageKey).(baggageState); ok {\n\t\ts = v\n\t}\n\n\ts.getHook = hook\n\treturn context.WithValue(parent, baggageKey, s)\n}\n\n// ContextWithList returns a copy of parent with baggage. Passing nil list\n// returns a context without any baggage.\nfunc ContextWithList(parent context.Context, list List) context.Context {\n\tvar s baggageState\n\tif v, ok := parent.Value(baggageKey).(baggageState); ok {\n\t\ts = v\n\t}\n\n\ts.list = list\n\tctx := context.WithValue(parent, baggageKey, s)\n\tif s.setHook != nil {\n\t\tctx = s.setHook(ctx, list)\n\t}\n\n\treturn ctx\n}\n\n// ListFromContext returns the baggage contained in ctx.\nfunc ListFromContext(ctx context.Context) List {\n\tswitch v := ctx.Value(baggageKey).(type) {\n\tcase baggageState:\n\t\tif v.getHook != nil {\n\t\t\treturn v.getHook(ctx, v.list)\n\t\t}\n\t\treturn v.list\n\tdefault:\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/gen.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage internal // import \"go.opentelemetry.io/otel/internal\"\n\n//go:generate gotmpl --body=./shared/matchers/expectation.go.tmpl \"--data={}\" --out=matchers/expectation.go\n//go:generate gotmpl --body=./shared/matchers/expecter.go.tmpl \"--data={}\" --out=matchers/expecter.go\n//go:generate gotmpl --body=./shared/matchers/temporal_matcher.go.tmpl \"--data={}\" --out=matchers/temporal_matcher.go\n\n//go:generate gotmpl --body=./shared/internaltest/alignment.go.tmpl \"--data={}\" --out=internaltest/alignment.go\n//go:generate gotmpl --body=./shared/internaltest/env.go.tmpl \"--data={}\" --out=internaltest/env.go\n//go:generate gotmpl --body=./shared/internaltest/env_test.go.tmpl \"--data={}\" --out=internaltest/env_test.go\n//go:generate gotmpl --body=./shared/internaltest/errors.go.tmpl \"--data={}\" --out=internaltest/errors.go\n//go:generate gotmpl --body=./shared/internaltest/harness.go.tmpl \"--data={\\\"matchersImportPath\\\": \\\"go.opentelemetry.io/otel/internal/matchers\\\"}\" --out=internaltest/harness.go\n//go:generate gotmpl --body=./shared/internaltest/text_map_carrier.go.tmpl \"--data={}\" --out=internaltest/text_map_carrier.go\n//go:generate gotmpl --body=./shared/internaltest/text_map_carrier_test.go.tmpl \"--data={}\" --out=internaltest/text_map_carrier_test.go\n//go:generate gotmpl --body=./shared/internaltest/text_map_propagator.go.tmpl \"--data={}\" --out=internaltest/text_map_propagator.go\n//go:generate gotmpl --body=./shared/internaltest/text_map_propagator_test.go.tmpl \"--data={}\" --out=internaltest/text_map_propagator_test.go\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/global/handler.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage global // import \"go.opentelemetry.io/otel/internal/global\"\n\nimport (\n\t\"log\"\n\t\"sync/atomic\"\n)\n\n// ErrorHandler handles irremediable events.\ntype ErrorHandler interface {\n\t// Handle handles any error deemed irremediable by an OpenTelemetry\n\t// component.\n\tHandle(error)\n}\n\ntype ErrDelegator struct {\n\tdelegate atomic.Pointer[ErrorHandler]\n}\n\n// Compile-time check that delegator implements ErrorHandler.\nvar _ ErrorHandler = (*ErrDelegator)(nil)\n\nfunc (d *ErrDelegator) Handle(err error) {\n\tif eh := d.delegate.Load(); eh != nil {\n\t\t(*eh).Handle(err)\n\t\treturn\n\t}\n\tlog.Print(err)\n}\n\n// setDelegate sets the ErrorHandler delegate.\nfunc (d *ErrDelegator) setDelegate(eh ErrorHandler) {\n\td.delegate.Store(&eh)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/global/instruments.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage global // import \"go.opentelemetry.io/otel/internal/global\"\n\nimport (\n\t\"context\"\n\t\"sync/atomic\"\n\n\t\"go.opentelemetry.io/otel/metric\"\n\t\"go.opentelemetry.io/otel/metric/embedded\"\n)\n\n// unwrapper unwraps to return the underlying instrument implementation.\ntype unwrapper interface {\n\tUnwrap() metric.Observable\n}\n\ntype afCounter struct {\n\tembedded.Float64ObservableCounter\n\tmetric.Float64Observable\n\n\tname string\n\topts []metric.Float64ObservableCounterOption\n\n\tdelegate atomic.Value // metric.Float64ObservableCounter\n}\n\nvar (\n\t_ unwrapper                       = (*afCounter)(nil)\n\t_ metric.Float64ObservableCounter = (*afCounter)(nil)\n)\n\nfunc (i *afCounter) setDelegate(m metric.Meter) {\n\tctr, err := m.Float64ObservableCounter(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *afCounter) Unwrap() metric.Observable {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\treturn ctr.(metric.Float64ObservableCounter)\n\t}\n\treturn nil\n}\n\ntype afUpDownCounter struct {\n\tembedded.Float64ObservableUpDownCounter\n\tmetric.Float64Observable\n\n\tname string\n\topts []metric.Float64ObservableUpDownCounterOption\n\n\tdelegate atomic.Value // metric.Float64ObservableUpDownCounter\n}\n\nvar (\n\t_ unwrapper                             = (*afUpDownCounter)(nil)\n\t_ metric.Float64ObservableUpDownCounter = (*afUpDownCounter)(nil)\n)\n\nfunc (i *afUpDownCounter) setDelegate(m metric.Meter) {\n\tctr, err := m.Float64ObservableUpDownCounter(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *afUpDownCounter) Unwrap() metric.Observable {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\treturn ctr.(metric.Float64ObservableUpDownCounter)\n\t}\n\treturn nil\n}\n\ntype afGauge struct {\n\tembedded.Float64ObservableGauge\n\tmetric.Float64Observable\n\n\tname string\n\topts []metric.Float64ObservableGaugeOption\n\n\tdelegate atomic.Value // metric.Float64ObservableGauge\n}\n\nvar (\n\t_ unwrapper                     = (*afGauge)(nil)\n\t_ metric.Float64ObservableGauge = (*afGauge)(nil)\n)\n\nfunc (i *afGauge) setDelegate(m metric.Meter) {\n\tctr, err := m.Float64ObservableGauge(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *afGauge) Unwrap() metric.Observable {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\treturn ctr.(metric.Float64ObservableGauge)\n\t}\n\treturn nil\n}\n\ntype aiCounter struct {\n\tembedded.Int64ObservableCounter\n\tmetric.Int64Observable\n\n\tname string\n\topts []metric.Int64ObservableCounterOption\n\n\tdelegate atomic.Value // metric.Int64ObservableCounter\n}\n\nvar (\n\t_ unwrapper                     = (*aiCounter)(nil)\n\t_ metric.Int64ObservableCounter = (*aiCounter)(nil)\n)\n\nfunc (i *aiCounter) setDelegate(m metric.Meter) {\n\tctr, err := m.Int64ObservableCounter(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *aiCounter) Unwrap() metric.Observable {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\treturn ctr.(metric.Int64ObservableCounter)\n\t}\n\treturn nil\n}\n\ntype aiUpDownCounter struct {\n\tembedded.Int64ObservableUpDownCounter\n\tmetric.Int64Observable\n\n\tname string\n\topts []metric.Int64ObservableUpDownCounterOption\n\n\tdelegate atomic.Value // metric.Int64ObservableUpDownCounter\n}\n\nvar (\n\t_ unwrapper                           = (*aiUpDownCounter)(nil)\n\t_ metric.Int64ObservableUpDownCounter = (*aiUpDownCounter)(nil)\n)\n\nfunc (i *aiUpDownCounter) setDelegate(m metric.Meter) {\n\tctr, err := m.Int64ObservableUpDownCounter(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *aiUpDownCounter) Unwrap() metric.Observable {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\treturn ctr.(metric.Int64ObservableUpDownCounter)\n\t}\n\treturn nil\n}\n\ntype aiGauge struct {\n\tembedded.Int64ObservableGauge\n\tmetric.Int64Observable\n\n\tname string\n\topts []metric.Int64ObservableGaugeOption\n\n\tdelegate atomic.Value // metric.Int64ObservableGauge\n}\n\nvar (\n\t_ unwrapper                   = (*aiGauge)(nil)\n\t_ metric.Int64ObservableGauge = (*aiGauge)(nil)\n)\n\nfunc (i *aiGauge) setDelegate(m metric.Meter) {\n\tctr, err := m.Int64ObservableGauge(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *aiGauge) Unwrap() metric.Observable {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\treturn ctr.(metric.Int64ObservableGauge)\n\t}\n\treturn nil\n}\n\n// Sync Instruments.\ntype sfCounter struct {\n\tembedded.Float64Counter\n\n\tname string\n\topts []metric.Float64CounterOption\n\n\tdelegate atomic.Value // metric.Float64Counter\n}\n\nvar _ metric.Float64Counter = (*sfCounter)(nil)\n\nfunc (i *sfCounter) setDelegate(m metric.Meter) {\n\tctr, err := m.Float64Counter(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *sfCounter) Add(ctx context.Context, incr float64, opts ...metric.AddOption) {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\tctr.(metric.Float64Counter).Add(ctx, incr, opts...)\n\t}\n}\n\ntype sfUpDownCounter struct {\n\tembedded.Float64UpDownCounter\n\n\tname string\n\topts []metric.Float64UpDownCounterOption\n\n\tdelegate atomic.Value // metric.Float64UpDownCounter\n}\n\nvar _ metric.Float64UpDownCounter = (*sfUpDownCounter)(nil)\n\nfunc (i *sfUpDownCounter) setDelegate(m metric.Meter) {\n\tctr, err := m.Float64UpDownCounter(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *sfUpDownCounter) Add(ctx context.Context, incr float64, opts ...metric.AddOption) {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\tctr.(metric.Float64UpDownCounter).Add(ctx, incr, opts...)\n\t}\n}\n\ntype sfHistogram struct {\n\tembedded.Float64Histogram\n\n\tname string\n\topts []metric.Float64HistogramOption\n\n\tdelegate atomic.Value // metric.Float64Histogram\n}\n\nvar _ metric.Float64Histogram = (*sfHistogram)(nil)\n\nfunc (i *sfHistogram) setDelegate(m metric.Meter) {\n\tctr, err := m.Float64Histogram(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *sfHistogram) Record(ctx context.Context, x float64, opts ...metric.RecordOption) {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\tctr.(metric.Float64Histogram).Record(ctx, x, opts...)\n\t}\n}\n\ntype sfGauge struct {\n\tembedded.Float64Gauge\n\n\tname string\n\topts []metric.Float64GaugeOption\n\n\tdelegate atomic.Value // metric.Float64Gauge\n}\n\nvar _ metric.Float64Gauge = (*sfGauge)(nil)\n\nfunc (i *sfGauge) setDelegate(m metric.Meter) {\n\tctr, err := m.Float64Gauge(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *sfGauge) Record(ctx context.Context, x float64, opts ...metric.RecordOption) {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\tctr.(metric.Float64Gauge).Record(ctx, x, opts...)\n\t}\n}\n\ntype siCounter struct {\n\tembedded.Int64Counter\n\n\tname string\n\topts []metric.Int64CounterOption\n\n\tdelegate atomic.Value // metric.Int64Counter\n}\n\nvar _ metric.Int64Counter = (*siCounter)(nil)\n\nfunc (i *siCounter) setDelegate(m metric.Meter) {\n\tctr, err := m.Int64Counter(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *siCounter) Add(ctx context.Context, x int64, opts ...metric.AddOption) {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\tctr.(metric.Int64Counter).Add(ctx, x, opts...)\n\t}\n}\n\ntype siUpDownCounter struct {\n\tembedded.Int64UpDownCounter\n\n\tname string\n\topts []metric.Int64UpDownCounterOption\n\n\tdelegate atomic.Value // metric.Int64UpDownCounter\n}\n\nvar _ metric.Int64UpDownCounter = (*siUpDownCounter)(nil)\n\nfunc (i *siUpDownCounter) setDelegate(m metric.Meter) {\n\tctr, err := m.Int64UpDownCounter(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *siUpDownCounter) Add(ctx context.Context, x int64, opts ...metric.AddOption) {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\tctr.(metric.Int64UpDownCounter).Add(ctx, x, opts...)\n\t}\n}\n\ntype siHistogram struct {\n\tembedded.Int64Histogram\n\n\tname string\n\topts []metric.Int64HistogramOption\n\n\tdelegate atomic.Value // metric.Int64Histogram\n}\n\nvar _ metric.Int64Histogram = (*siHistogram)(nil)\n\nfunc (i *siHistogram) setDelegate(m metric.Meter) {\n\tctr, err := m.Int64Histogram(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *siHistogram) Record(ctx context.Context, x int64, opts ...metric.RecordOption) {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\tctr.(metric.Int64Histogram).Record(ctx, x, opts...)\n\t}\n}\n\ntype siGauge struct {\n\tembedded.Int64Gauge\n\n\tname string\n\topts []metric.Int64GaugeOption\n\n\tdelegate atomic.Value // metric.Int64Gauge\n}\n\nvar _ metric.Int64Gauge = (*siGauge)(nil)\n\nfunc (i *siGauge) setDelegate(m metric.Meter) {\n\tctr, err := m.Int64Gauge(i.name, i.opts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t\treturn\n\t}\n\ti.delegate.Store(ctr)\n}\n\nfunc (i *siGauge) Record(ctx context.Context, x int64, opts ...metric.RecordOption) {\n\tif ctr := i.delegate.Load(); ctr != nil {\n\t\tctr.(metric.Int64Gauge).Record(ctx, x, opts...)\n\t}\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage global // import \"go.opentelemetry.io/otel/internal/global\"\n\nimport (\n\t\"log\"\n\t\"os\"\n\t\"sync/atomic\"\n\n\t\"github.com/go-logr/logr\"\n\t\"github.com/go-logr/stdr\"\n)\n\n// globalLogger holds a reference to the [logr.Logger] used within\n// go.opentelemetry.io/otel.\n//\n// The default logger uses stdr which is backed by the standard `log.Logger`\n// interface. This logger will only show messages at the Error Level.\nvar globalLogger = func() *atomic.Pointer[logr.Logger] {\n\tl := stdr.New(log.New(os.Stderr, \"\", log.LstdFlags|log.Lshortfile))\n\n\tp := new(atomic.Pointer[logr.Logger])\n\tp.Store(&l)\n\treturn p\n}()\n\n// SetLogger sets the global Logger to l.\n//\n// To see Warn messages use a logger with `l.V(1).Enabled() == true`\n// To see Info messages use a logger with `l.V(4).Enabled() == true`\n// To see Debug messages use a logger with `l.V(8).Enabled() == true`.\nfunc SetLogger(l logr.Logger) {\n\tglobalLogger.Store(&l)\n}\n\n// GetLogger returns the global logger.\nfunc GetLogger() logr.Logger {\n\treturn *globalLogger.Load()\n}\n\n// Info prints messages about the general state of the API or SDK.\n// This should usually be less than 5 messages a minute.\nfunc Info(msg string, keysAndValues ...interface{}) {\n\tGetLogger().V(4).Info(msg, keysAndValues...)\n}\n\n// Error prints messages about exceptional states of the API or SDK.\nfunc Error(err error, msg string, keysAndValues ...interface{}) {\n\tGetLogger().Error(err, msg, keysAndValues...)\n}\n\n// Debug prints messages about all internal changes in the API or SDK.\nfunc Debug(msg string, keysAndValues ...interface{}) {\n\tGetLogger().V(8).Info(msg, keysAndValues...)\n}\n\n// Warn prints messages about warnings in the API or SDK.\n// Not an error but is likely more important than an informational event.\nfunc Warn(msg string, keysAndValues ...interface{}) {\n\tGetLogger().V(1).Info(msg, keysAndValues...)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/global/meter.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage global // import \"go.opentelemetry.io/otel/internal/global\"\n\nimport (\n\t\"container/list\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"go.opentelemetry.io/otel/metric\"\n\t\"go.opentelemetry.io/otel/metric/embedded\"\n)\n\n// meterProvider is a placeholder for a configured SDK MeterProvider.\n//\n// All MeterProvider functionality is forwarded to a delegate once\n// configured.\ntype meterProvider struct {\n\tembedded.MeterProvider\n\n\tmtx    sync.Mutex\n\tmeters map[il]*meter\n\n\tdelegate metric.MeterProvider\n}\n\n// setDelegate configures p to delegate all MeterProvider functionality to\n// provider.\n//\n// All Meters provided prior to this function call are switched out to be\n// Meters provided by provider. All instruments and callbacks are recreated and\n// delegated.\n//\n// It is guaranteed by the caller that this happens only once.\nfunc (p *meterProvider) setDelegate(provider metric.MeterProvider) {\n\tp.mtx.Lock()\n\tdefer p.mtx.Unlock()\n\n\tp.delegate = provider\n\n\tif len(p.meters) == 0 {\n\t\treturn\n\t}\n\n\tfor _, meter := range p.meters {\n\t\tmeter.setDelegate(provider)\n\t}\n\n\tp.meters = nil\n}\n\n// Meter implements MeterProvider.\nfunc (p *meterProvider) Meter(name string, opts ...metric.MeterOption) metric.Meter {\n\tp.mtx.Lock()\n\tdefer p.mtx.Unlock()\n\n\tif p.delegate != nil {\n\t\treturn p.delegate.Meter(name, opts...)\n\t}\n\n\t// At this moment it is guaranteed that no sdk is installed, save the meter in the meters map.\n\n\tc := metric.NewMeterConfig(opts...)\n\tkey := il{\n\t\tname:    name,\n\t\tversion: c.InstrumentationVersion(),\n\t\tschema:  c.SchemaURL(),\n\t}\n\n\tif p.meters == nil {\n\t\tp.meters = make(map[il]*meter)\n\t}\n\n\tif val, ok := p.meters[key]; ok {\n\t\treturn val\n\t}\n\n\tt := &meter{name: name, opts: opts}\n\tp.meters[key] = t\n\treturn t\n}\n\n// meter is a placeholder for a metric.Meter.\n//\n// All Meter functionality is forwarded to a delegate once configured.\n// Otherwise, all functionality is forwarded to a NoopMeter.\ntype meter struct {\n\tembedded.Meter\n\n\tname string\n\topts []metric.MeterOption\n\n\tmtx         sync.Mutex\n\tinstruments []delegatedInstrument\n\n\tregistry list.List\n\n\tdelegate atomic.Value // metric.Meter\n}\n\ntype delegatedInstrument interface {\n\tsetDelegate(metric.Meter)\n}\n\n// setDelegate configures m to delegate all Meter functionality to Meters\n// created by provider.\n//\n// All subsequent calls to the Meter methods will be passed to the delegate.\n//\n// It is guaranteed by the caller that this happens only once.\nfunc (m *meter) setDelegate(provider metric.MeterProvider) {\n\tmeter := provider.Meter(m.name, m.opts...)\n\tm.delegate.Store(meter)\n\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\n\tfor _, inst := range m.instruments {\n\t\tinst.setDelegate(meter)\n\t}\n\n\tvar n *list.Element\n\tfor e := m.registry.Front(); e != nil; e = n {\n\t\tr := e.Value.(*registration)\n\t\tr.setDelegate(meter)\n\t\tn = e.Next()\n\t\tm.registry.Remove(e)\n\t}\n\n\tm.instruments = nil\n\tm.registry.Init()\n}\n\nfunc (m *meter) Int64Counter(name string, options ...metric.Int64CounterOption) (metric.Int64Counter, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Int64Counter(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &siCounter{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Int64UpDownCounter(name string, options ...metric.Int64UpDownCounterOption) (metric.Int64UpDownCounter, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Int64UpDownCounter(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &siUpDownCounter{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Int64Histogram(name string, options ...metric.Int64HistogramOption) (metric.Int64Histogram, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Int64Histogram(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &siHistogram{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Int64Gauge(name string, options ...metric.Int64GaugeOption) (metric.Int64Gauge, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Int64Gauge(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &siGauge{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Int64ObservableCounter(name string, options ...metric.Int64ObservableCounterOption) (metric.Int64ObservableCounter, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Int64ObservableCounter(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &aiCounter{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Int64ObservableUpDownCounter(name string, options ...metric.Int64ObservableUpDownCounterOption) (metric.Int64ObservableUpDownCounter, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Int64ObservableUpDownCounter(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &aiUpDownCounter{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Int64ObservableGauge(name string, options ...metric.Int64ObservableGaugeOption) (metric.Int64ObservableGauge, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Int64ObservableGauge(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &aiGauge{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Float64Counter(name string, options ...metric.Float64CounterOption) (metric.Float64Counter, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Float64Counter(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &sfCounter{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Float64UpDownCounter(name string, options ...metric.Float64UpDownCounterOption) (metric.Float64UpDownCounter, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Float64UpDownCounter(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &sfUpDownCounter{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Float64Histogram(name string, options ...metric.Float64HistogramOption) (metric.Float64Histogram, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Float64Histogram(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &sfHistogram{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Float64Gauge(name string, options ...metric.Float64GaugeOption) (metric.Float64Gauge, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Float64Gauge(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &sfGauge{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Float64ObservableCounter(name string, options ...metric.Float64ObservableCounterOption) (metric.Float64ObservableCounter, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Float64ObservableCounter(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &afCounter{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Float64ObservableUpDownCounter(name string, options ...metric.Float64ObservableUpDownCounterOption) (metric.Float64ObservableUpDownCounter, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Float64ObservableUpDownCounter(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &afUpDownCounter{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\nfunc (m *meter) Float64ObservableGauge(name string, options ...metric.Float64ObservableGaugeOption) (metric.Float64ObservableGauge, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\treturn del.Float64ObservableGauge(name, options...)\n\t}\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\ti := &afGauge{name: name, opts: options}\n\tm.instruments = append(m.instruments, i)\n\treturn i, nil\n}\n\n// RegisterCallback captures the function that will be called during Collect.\nfunc (m *meter) RegisterCallback(f metric.Callback, insts ...metric.Observable) (metric.Registration, error) {\n\tif del, ok := m.delegate.Load().(metric.Meter); ok {\n\t\tinsts = unwrapInstruments(insts)\n\t\treturn del.RegisterCallback(f, insts...)\n\t}\n\n\tm.mtx.Lock()\n\tdefer m.mtx.Unlock()\n\n\treg := &registration{instruments: insts, function: f}\n\te := m.registry.PushBack(reg)\n\treg.unreg = func() error {\n\t\tm.mtx.Lock()\n\t\t_ = m.registry.Remove(e)\n\t\tm.mtx.Unlock()\n\t\treturn nil\n\t}\n\treturn reg, nil\n}\n\ntype wrapped interface {\n\tunwrap() metric.Observable\n}\n\nfunc unwrapInstruments(instruments []metric.Observable) []metric.Observable {\n\tout := make([]metric.Observable, 0, len(instruments))\n\n\tfor _, inst := range instruments {\n\t\tif in, ok := inst.(wrapped); ok {\n\t\t\tout = append(out, in.unwrap())\n\t\t} else {\n\t\t\tout = append(out, inst)\n\t\t}\n\t}\n\n\treturn out\n}\n\ntype registration struct {\n\tembedded.Registration\n\n\tinstruments []metric.Observable\n\tfunction    metric.Callback\n\n\tunreg   func() error\n\tunregMu sync.Mutex\n}\n\nfunc (c *registration) setDelegate(m metric.Meter) {\n\tinsts := unwrapInstruments(c.instruments)\n\n\tc.unregMu.Lock()\n\tdefer c.unregMu.Unlock()\n\n\tif c.unreg == nil {\n\t\t// Unregister already called.\n\t\treturn\n\t}\n\n\treg, err := m.RegisterCallback(c.function, insts...)\n\tif err != nil {\n\t\tGetErrorHandler().Handle(err)\n\t}\n\n\tc.unreg = reg.Unregister\n}\n\nfunc (c *registration) Unregister() error {\n\tc.unregMu.Lock()\n\tdefer c.unregMu.Unlock()\n\tif c.unreg == nil {\n\t\t// Unregister already called.\n\t\treturn nil\n\t}\n\n\tvar err error\n\terr, c.unreg = c.unreg(), nil\n\treturn err\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/global/propagator.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage global // import \"go.opentelemetry.io/otel/internal/global\"\n\nimport (\n\t\"context\"\n\t\"sync\"\n\n\t\"go.opentelemetry.io/otel/propagation\"\n)\n\n// textMapPropagator is a default TextMapPropagator that delegates calls to a\n// registered delegate if one is set, otherwise it defaults to delegating the\n// calls to a the default no-op propagation.TextMapPropagator.\ntype textMapPropagator struct {\n\tmtx      sync.Mutex\n\tonce     sync.Once\n\tdelegate propagation.TextMapPropagator\n\tnoop     propagation.TextMapPropagator\n}\n\n// Compile-time guarantee that textMapPropagator implements the\n// propagation.TextMapPropagator interface.\nvar _ propagation.TextMapPropagator = (*textMapPropagator)(nil)\n\nfunc newTextMapPropagator() *textMapPropagator {\n\treturn &textMapPropagator{\n\t\tnoop: propagation.NewCompositeTextMapPropagator(),\n\t}\n}\n\n// SetDelegate sets a delegate propagation.TextMapPropagator that all calls are\n// forwarded to. Delegation can only be performed once, all subsequent calls\n// perform no delegation.\nfunc (p *textMapPropagator) SetDelegate(delegate propagation.TextMapPropagator) {\n\tif delegate == nil {\n\t\treturn\n\t}\n\n\tp.mtx.Lock()\n\tp.once.Do(func() { p.delegate = delegate })\n\tp.mtx.Unlock()\n}\n\n// effectiveDelegate returns the current delegate of p if one is set,\n// otherwise the default noop TextMapPropagator is returned. This method\n// can be called concurrently.\nfunc (p *textMapPropagator) effectiveDelegate() propagation.TextMapPropagator {\n\tp.mtx.Lock()\n\tdefer p.mtx.Unlock()\n\tif p.delegate != nil {\n\t\treturn p.delegate\n\t}\n\treturn p.noop\n}\n\n// Inject set cross-cutting concerns from the Context into the carrier.\nfunc (p *textMapPropagator) Inject(ctx context.Context, carrier propagation.TextMapCarrier) {\n\tp.effectiveDelegate().Inject(ctx, carrier)\n}\n\n// Extract reads cross-cutting concerns from the carrier into a Context.\nfunc (p *textMapPropagator) Extract(ctx context.Context, carrier propagation.TextMapCarrier) context.Context {\n\treturn p.effectiveDelegate().Extract(ctx, carrier)\n}\n\n// Fields returns the keys whose values are set with Inject.\nfunc (p *textMapPropagator) Fields() []string {\n\treturn p.effectiveDelegate().Fields()\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/global/state.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage global // import \"go.opentelemetry.io/otel/internal/global\"\n\nimport (\n\t\"errors\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"go.opentelemetry.io/otel/metric\"\n\t\"go.opentelemetry.io/otel/propagation\"\n\t\"go.opentelemetry.io/otel/trace\"\n)\n\ntype (\n\terrorHandlerHolder struct {\n\t\teh ErrorHandler\n\t}\n\n\ttracerProviderHolder struct {\n\t\ttp trace.TracerProvider\n\t}\n\n\tpropagatorsHolder struct {\n\t\ttm propagation.TextMapPropagator\n\t}\n\n\tmeterProviderHolder struct {\n\t\tmp metric.MeterProvider\n\t}\n)\n\nvar (\n\tglobalErrorHandler  = defaultErrorHandler()\n\tglobalTracer        = defaultTracerValue()\n\tglobalPropagators   = defaultPropagatorsValue()\n\tglobalMeterProvider = defaultMeterProvider()\n\n\tdelegateErrorHandlerOnce      sync.Once\n\tdelegateTraceOnce             sync.Once\n\tdelegateTextMapPropagatorOnce sync.Once\n\tdelegateMeterOnce             sync.Once\n)\n\n// GetErrorHandler returns the global ErrorHandler instance.\n//\n// The default ErrorHandler instance returned will log all errors to STDERR\n// until an override ErrorHandler is set with SetErrorHandler. All\n// ErrorHandler returned prior to this will automatically forward errors to\n// the set instance instead of logging.\n//\n// Subsequent calls to SetErrorHandler after the first will not forward errors\n// to the new ErrorHandler for prior returned instances.\nfunc GetErrorHandler() ErrorHandler {\n\treturn globalErrorHandler.Load().(errorHandlerHolder).eh\n}\n\n// SetErrorHandler sets the global ErrorHandler to h.\n//\n// The first time this is called all ErrorHandler previously returned from\n// GetErrorHandler will send errors to h instead of the default logging\n// ErrorHandler. Subsequent calls will set the global ErrorHandler, but not\n// delegate errors to h.\nfunc SetErrorHandler(h ErrorHandler) {\n\tcurrent := GetErrorHandler()\n\n\tif _, cOk := current.(*ErrDelegator); cOk {\n\t\tif _, ehOk := h.(*ErrDelegator); ehOk && current == h {\n\t\t\t// Do not assign to the delegate of the default ErrDelegator to be\n\t\t\t// itself.\n\t\t\tError(\n\t\t\t\terrors.New(\"no ErrorHandler delegate configured\"),\n\t\t\t\t\"ErrorHandler remains its current value.\",\n\t\t\t)\n\t\t\treturn\n\t\t}\n\t}\n\n\tdelegateErrorHandlerOnce.Do(func() {\n\t\tif def, ok := current.(*ErrDelegator); ok {\n\t\t\tdef.setDelegate(h)\n\t\t}\n\t})\n\tglobalErrorHandler.Store(errorHandlerHolder{eh: h})\n}\n\n// TracerProvider is the internal implementation for global.TracerProvider.\nfunc TracerProvider() trace.TracerProvider {\n\treturn globalTracer.Load().(tracerProviderHolder).tp\n}\n\n// SetTracerProvider is the internal implementation for global.SetTracerProvider.\nfunc SetTracerProvider(tp trace.TracerProvider) {\n\tcurrent := TracerProvider()\n\n\tif _, cOk := current.(*tracerProvider); cOk {\n\t\tif _, tpOk := tp.(*tracerProvider); tpOk && current == tp {\n\t\t\t// Do not assign the default delegating TracerProvider to delegate\n\t\t\t// to itself.\n\t\t\tError(\n\t\t\t\terrors.New(\"no delegate configured in tracer provider\"),\n\t\t\t\t\"Setting tracer provider to its current value. No delegate will be configured\",\n\t\t\t)\n\t\t\treturn\n\t\t}\n\t}\n\n\tdelegateTraceOnce.Do(func() {\n\t\tif def, ok := current.(*tracerProvider); ok {\n\t\t\tdef.setDelegate(tp)\n\t\t}\n\t})\n\tglobalTracer.Store(tracerProviderHolder{tp: tp})\n}\n\n// TextMapPropagator is the internal implementation for global.TextMapPropagator.\nfunc TextMapPropagator() propagation.TextMapPropagator {\n\treturn globalPropagators.Load().(propagatorsHolder).tm\n}\n\n// SetTextMapPropagator is the internal implementation for global.SetTextMapPropagator.\nfunc SetTextMapPropagator(p propagation.TextMapPropagator) {\n\tcurrent := TextMapPropagator()\n\n\tif _, cOk := current.(*textMapPropagator); cOk {\n\t\tif _, pOk := p.(*textMapPropagator); pOk && current == p {\n\t\t\t// Do not assign the default delegating TextMapPropagator to\n\t\t\t// delegate to itself.\n\t\t\tError(\n\t\t\t\terrors.New(\"no delegate configured in text map propagator\"),\n\t\t\t\t\"Setting text map propagator to its current value. No delegate will be configured\",\n\t\t\t)\n\t\t\treturn\n\t\t}\n\t}\n\n\t// For the textMapPropagator already returned by TextMapPropagator\n\t// delegate to p.\n\tdelegateTextMapPropagatorOnce.Do(func() {\n\t\tif def, ok := current.(*textMapPropagator); ok {\n\t\t\tdef.SetDelegate(p)\n\t\t}\n\t})\n\t// Return p when subsequent calls to TextMapPropagator are made.\n\tglobalPropagators.Store(propagatorsHolder{tm: p})\n}\n\n// MeterProvider is the internal implementation for global.MeterProvider.\nfunc MeterProvider() metric.MeterProvider {\n\treturn globalMeterProvider.Load().(meterProviderHolder).mp\n}\n\n// SetMeterProvider is the internal implementation for global.SetMeterProvider.\nfunc SetMeterProvider(mp metric.MeterProvider) {\n\tcurrent := MeterProvider()\n\tif _, cOk := current.(*meterProvider); cOk {\n\t\tif _, mpOk := mp.(*meterProvider); mpOk && current == mp {\n\t\t\t// Do not assign the default delegating MeterProvider to delegate\n\t\t\t// to itself.\n\t\t\tError(\n\t\t\t\terrors.New(\"no delegate configured in meter provider\"),\n\t\t\t\t\"Setting meter provider to its current value. No delegate will be configured\",\n\t\t\t)\n\t\t\treturn\n\t\t}\n\t}\n\n\tdelegateMeterOnce.Do(func() {\n\t\tif def, ok := current.(*meterProvider); ok {\n\t\t\tdef.setDelegate(mp)\n\t\t}\n\t})\n\tglobalMeterProvider.Store(meterProviderHolder{mp: mp})\n}\n\nfunc defaultErrorHandler() *atomic.Value {\n\tv := &atomic.Value{}\n\tv.Store(errorHandlerHolder{eh: &ErrDelegator{}})\n\treturn v\n}\n\nfunc defaultTracerValue() *atomic.Value {\n\tv := &atomic.Value{}\n\tv.Store(tracerProviderHolder{tp: &tracerProvider{}})\n\treturn v\n}\n\nfunc defaultPropagatorsValue() *atomic.Value {\n\tv := &atomic.Value{}\n\tv.Store(propagatorsHolder{tm: newTextMapPropagator()})\n\treturn v\n}\n\nfunc defaultMeterProvider() *atomic.Value {\n\tv := &atomic.Value{}\n\tv.Store(meterProviderHolder{mp: &meterProvider{}})\n\treturn v\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/global/trace.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage global // import \"go.opentelemetry.io/otel/internal/global\"\n\n/*\nThis file contains the forwarding implementation of the TracerProvider used as\nthe default global instance. Prior to initialization of an SDK, Tracers\nreturned by the global TracerProvider will provide no-op functionality. This\nmeans that all Span created prior to initialization are no-op Spans.\n\nOnce an SDK has been initialized, all provided no-op Tracers are swapped for\nTracers provided by the SDK defined TracerProvider. However, any Span started\nprior to this initialization does not change its behavior. Meaning, the Span\nremains a no-op Span.\n\nThe implementation to track and swap Tracers locks all new Tracer creation\nuntil the swap is complete. This assumes that this operation is not\nperformance-critical. If that assumption is incorrect, be sure to configure an\nSDK prior to any Tracer creation.\n*/\n\nimport (\n\t\"context\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"go.opentelemetry.io/otel/attribute\"\n\t\"go.opentelemetry.io/otel/codes\"\n\t\"go.opentelemetry.io/otel/trace\"\n\t\"go.opentelemetry.io/otel/trace/embedded\"\n)\n\n// tracerProvider is a placeholder for a configured SDK TracerProvider.\n//\n// All TracerProvider functionality is forwarded to a delegate once\n// configured.\ntype tracerProvider struct {\n\tembedded.TracerProvider\n\n\tmtx      sync.Mutex\n\ttracers  map[il]*tracer\n\tdelegate trace.TracerProvider\n}\n\n// Compile-time guarantee that tracerProvider implements the TracerProvider\n// interface.\nvar _ trace.TracerProvider = &tracerProvider{}\n\n// setDelegate configures p to delegate all TracerProvider functionality to\n// provider.\n//\n// All Tracers provided prior to this function call are switched out to be\n// Tracers provided by provider.\n//\n// It is guaranteed by the caller that this happens only once.\nfunc (p *tracerProvider) setDelegate(provider trace.TracerProvider) {\n\tp.mtx.Lock()\n\tdefer p.mtx.Unlock()\n\n\tp.delegate = provider\n\n\tif len(p.tracers) == 0 {\n\t\treturn\n\t}\n\n\tfor _, t := range p.tracers {\n\t\tt.setDelegate(provider)\n\t}\n\n\tp.tracers = nil\n}\n\n// Tracer implements TracerProvider.\nfunc (p *tracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.Tracer {\n\tp.mtx.Lock()\n\tdefer p.mtx.Unlock()\n\n\tif p.delegate != nil {\n\t\treturn p.delegate.Tracer(name, opts...)\n\t}\n\n\t// At this moment it is guaranteed that no sdk is installed, save the tracer in the tracers map.\n\n\tc := trace.NewTracerConfig(opts...)\n\tkey := il{\n\t\tname:    name,\n\t\tversion: c.InstrumentationVersion(),\n\t\tschema:  c.SchemaURL(),\n\t}\n\n\tif p.tracers == nil {\n\t\tp.tracers = make(map[il]*tracer)\n\t}\n\n\tif val, ok := p.tracers[key]; ok {\n\t\treturn val\n\t}\n\n\tt := &tracer{name: name, opts: opts, provider: p}\n\tp.tracers[key] = t\n\treturn t\n}\n\ntype il struct{ name, version, schema string }\n\n// tracer is a placeholder for a trace.Tracer.\n//\n// All Tracer functionality is forwarded to a delegate once configured.\n// Otherwise, all functionality is forwarded to a NoopTracer.\ntype tracer struct {\n\tembedded.Tracer\n\n\tname     string\n\topts     []trace.TracerOption\n\tprovider *tracerProvider\n\n\tdelegate atomic.Value\n}\n\n// Compile-time guarantee that tracer implements the trace.Tracer interface.\nvar _ trace.Tracer = &tracer{}\n\n// setDelegate configures t to delegate all Tracer functionality to Tracers\n// created by provider.\n//\n// All subsequent calls to the Tracer methods will be passed to the delegate.\n//\n// It is guaranteed by the caller that this happens only once.\nfunc (t *tracer) setDelegate(provider trace.TracerProvider) {\n\tt.delegate.Store(provider.Tracer(t.name, t.opts...))\n}\n\n// Start implements trace.Tracer by forwarding the call to t.delegate if\n// set, otherwise it forwards the call to a NoopTracer.\nfunc (t *tracer) Start(ctx context.Context, name string, opts ...trace.SpanStartOption) (context.Context, trace.Span) {\n\tdelegate := t.delegate.Load()\n\tif delegate != nil {\n\t\treturn delegate.(trace.Tracer).Start(ctx, name, opts...)\n\t}\n\n\ts := nonRecordingSpan{sc: trace.SpanContextFromContext(ctx), tracer: t}\n\tctx = trace.ContextWithSpan(ctx, s)\n\treturn ctx, s\n}\n\n// nonRecordingSpan is a minimal implementation of a Span that wraps a\n// SpanContext. It performs no operations other than to return the wrapped\n// SpanContext.\ntype nonRecordingSpan struct {\n\tembedded.Span\n\n\tsc     trace.SpanContext\n\ttracer *tracer\n}\n\nvar _ trace.Span = nonRecordingSpan{}\n\n// SpanContext returns the wrapped SpanContext.\nfunc (s nonRecordingSpan) SpanContext() trace.SpanContext { return s.sc }\n\n// IsRecording always returns false.\nfunc (nonRecordingSpan) IsRecording() bool { return false }\n\n// SetStatus does nothing.\nfunc (nonRecordingSpan) SetStatus(codes.Code, string) {}\n\n// SetError does nothing.\nfunc (nonRecordingSpan) SetError(bool) {}\n\n// SetAttributes does nothing.\nfunc (nonRecordingSpan) SetAttributes(...attribute.KeyValue) {}\n\n// End does nothing.\nfunc (nonRecordingSpan) End(...trace.SpanEndOption) {}\n\n// RecordError does nothing.\nfunc (nonRecordingSpan) RecordError(error, ...trace.EventOption) {}\n\n// AddEvent does nothing.\nfunc (nonRecordingSpan) AddEvent(string, ...trace.EventOption) {}\n\n// AddLink does nothing.\nfunc (nonRecordingSpan) AddLink(trace.Link) {}\n\n// SetName does nothing.\nfunc (nonRecordingSpan) SetName(string) {}\n\nfunc (s nonRecordingSpan) TracerProvider() trace.TracerProvider { return s.tracer.provider }\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal/rawhelpers.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage internal // import \"go.opentelemetry.io/otel/internal\"\n\nimport (\n\t\"math\"\n\t\"unsafe\"\n)\n\nfunc BoolToRaw(b bool) uint64 { // nolint:revive  // b is not a control flag.\n\tif b {\n\t\treturn 1\n\t}\n\treturn 0\n}\n\nfunc RawToBool(r uint64) bool {\n\treturn r != 0\n}\n\nfunc Int64ToRaw(i int64) uint64 {\n\treturn uint64(i)\n}\n\nfunc RawToInt64(r uint64) int64 {\n\treturn int64(r)\n}\n\nfunc Float64ToRaw(f float64) uint64 {\n\treturn math.Float64bits(f)\n}\n\nfunc RawToFloat64(r uint64) float64 {\n\treturn math.Float64frombits(r)\n}\n\nfunc RawPtrToFloat64Ptr(r *uint64) *float64 {\n\treturn (*float64)(unsafe.Pointer(r))\n}\n\nfunc RawPtrToInt64Ptr(r *uint64) *int64 {\n\treturn (*int64)(unsafe.Pointer(r))\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/internal_logging.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otel // import \"go.opentelemetry.io/otel\"\n\nimport (\n\t\"github.com/go-logr/logr\"\n\n\t\"go.opentelemetry.io/otel/internal/global\"\n)\n\n// SetLogger configures the logger used internally to opentelemetry.\nfunc SetLogger(logger logr.Logger) {\n\tglobal.SetLogger(logger)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/README.md",
    "content": "# Metric API\n\n[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/metric)](https://pkg.go.dev/go.opentelemetry.io/otel/metric)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage metric // import \"go.opentelemetry.io/otel/metric\"\n\nimport (\n\t\"context\"\n\n\t\"go.opentelemetry.io/otel/metric/embedded\"\n)\n\n// Float64Observable describes a set of instruments used asynchronously to\n// record float64 measurements once per collection cycle. Observations of\n// these instruments are only made within a callback.\n//\n// Warning: Methods may be added to this interface in minor releases.\ntype Float64Observable interface {\n\tObservable\n\n\tfloat64Observable()\n}\n\n// Float64ObservableCounter is an instrument used to asynchronously record\n// increasing float64 measurements once per collection cycle. Observations are\n// only made within a callback for this instrument. The value observed is\n// assumed the to be the cumulative sum of the count.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for\n// unimplemented methods.\ntype Float64ObservableCounter interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Float64ObservableCounter\n\n\tFloat64Observable\n}\n\n// Float64ObservableCounterConfig contains options for asynchronous counter\n// instruments that record float64 values.\ntype Float64ObservableCounterConfig struct {\n\tdescription string\n\tunit        string\n\tcallbacks   []Float64Callback\n}\n\n// NewFloat64ObservableCounterConfig returns a new\n// [Float64ObservableCounterConfig] with all opts applied.\nfunc NewFloat64ObservableCounterConfig(opts ...Float64ObservableCounterOption) Float64ObservableCounterConfig {\n\tvar config Float64ObservableCounterConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyFloat64ObservableCounter(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Float64ObservableCounterConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Float64ObservableCounterConfig) Unit() string {\n\treturn c.unit\n}\n\n// Callbacks returns the configured callbacks.\nfunc (c Float64ObservableCounterConfig) Callbacks() []Float64Callback {\n\treturn c.callbacks\n}\n\n// Float64ObservableCounterOption applies options to a\n// [Float64ObservableCounterConfig]. See [Float64ObservableOption] and\n// [InstrumentOption] for other options that can be used as a\n// Float64ObservableCounterOption.\ntype Float64ObservableCounterOption interface {\n\tapplyFloat64ObservableCounter(Float64ObservableCounterConfig) Float64ObservableCounterConfig\n}\n\n// Float64ObservableUpDownCounter is an instrument used to asynchronously\n// record float64 measurements once per collection cycle. Observations are only\n// made within a callback for this instrument. The value observed is assumed\n// the to be the cumulative sum of the count.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Float64ObservableUpDownCounter interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Float64ObservableUpDownCounter\n\n\tFloat64Observable\n}\n\n// Float64ObservableUpDownCounterConfig contains options for asynchronous\n// counter instruments that record float64 values.\ntype Float64ObservableUpDownCounterConfig struct {\n\tdescription string\n\tunit        string\n\tcallbacks   []Float64Callback\n}\n\n// NewFloat64ObservableUpDownCounterConfig returns a new\n// [Float64ObservableUpDownCounterConfig] with all opts applied.\nfunc NewFloat64ObservableUpDownCounterConfig(opts ...Float64ObservableUpDownCounterOption) Float64ObservableUpDownCounterConfig {\n\tvar config Float64ObservableUpDownCounterConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyFloat64ObservableUpDownCounter(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Float64ObservableUpDownCounterConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Float64ObservableUpDownCounterConfig) Unit() string {\n\treturn c.unit\n}\n\n// Callbacks returns the configured callbacks.\nfunc (c Float64ObservableUpDownCounterConfig) Callbacks() []Float64Callback {\n\treturn c.callbacks\n}\n\n// Float64ObservableUpDownCounterOption applies options to a\n// [Float64ObservableUpDownCounterConfig]. See [Float64ObservableOption] and\n// [InstrumentOption] for other options that can be used as a\n// Float64ObservableUpDownCounterOption.\ntype Float64ObservableUpDownCounterOption interface {\n\tapplyFloat64ObservableUpDownCounter(Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig\n}\n\n// Float64ObservableGauge is an instrument used to asynchronously record\n// instantaneous float64 measurements once per collection cycle. Observations\n// are only made within a callback for this instrument.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Float64ObservableGauge interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Float64ObservableGauge\n\n\tFloat64Observable\n}\n\n// Float64ObservableGaugeConfig contains options for asynchronous counter\n// instruments that record float64 values.\ntype Float64ObservableGaugeConfig struct {\n\tdescription string\n\tunit        string\n\tcallbacks   []Float64Callback\n}\n\n// NewFloat64ObservableGaugeConfig returns a new [Float64ObservableGaugeConfig]\n// with all opts applied.\nfunc NewFloat64ObservableGaugeConfig(opts ...Float64ObservableGaugeOption) Float64ObservableGaugeConfig {\n\tvar config Float64ObservableGaugeConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyFloat64ObservableGauge(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Float64ObservableGaugeConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Float64ObservableGaugeConfig) Unit() string {\n\treturn c.unit\n}\n\n// Callbacks returns the configured callbacks.\nfunc (c Float64ObservableGaugeConfig) Callbacks() []Float64Callback {\n\treturn c.callbacks\n}\n\n// Float64ObservableGaugeOption applies options to a\n// [Float64ObservableGaugeConfig]. See [Float64ObservableOption] and\n// [InstrumentOption] for other options that can be used as a\n// Float64ObservableGaugeOption.\ntype Float64ObservableGaugeOption interface {\n\tapplyFloat64ObservableGauge(Float64ObservableGaugeConfig) Float64ObservableGaugeConfig\n}\n\n// Float64Observer is a recorder of float64 measurements.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Float64Observer interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Float64Observer\n\n\t// Observe records the float64 value.\n\t//\n\t// Use the WithAttributeSet (or, if performance is not a concern,\n\t// the WithAttributes) option to include measurement attributes.\n\tObserve(value float64, options ...ObserveOption)\n}\n\n// Float64Callback is a function registered with a Meter that makes\n// observations for a Float64Observerable instrument it is registered with.\n// Calls to the Float64Observer record measurement values for the\n// Float64Observable.\n//\n// The function needs to complete in a finite amount of time and the deadline\n// of the passed context is expected to be honored.\n//\n// The function needs to make unique observations across all registered\n// Float64Callbacks. Meaning, it should not report measurements with the same\n// attributes as another Float64Callbacks also registered for the same\n// instrument.\n//\n// The function needs to be concurrent safe.\ntype Float64Callback func(context.Context, Float64Observer) error\n\n// Float64ObservableOption applies options to float64 Observer instruments.\ntype Float64ObservableOption interface {\n\tFloat64ObservableCounterOption\n\tFloat64ObservableUpDownCounterOption\n\tFloat64ObservableGaugeOption\n}\n\ntype float64CallbackOpt struct {\n\tcback Float64Callback\n}\n\nfunc (o float64CallbackOpt) applyFloat64ObservableCounter(cfg Float64ObservableCounterConfig) Float64ObservableCounterConfig {\n\tcfg.callbacks = append(cfg.callbacks, o.cback)\n\treturn cfg\n}\n\nfunc (o float64CallbackOpt) applyFloat64ObservableUpDownCounter(cfg Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig {\n\tcfg.callbacks = append(cfg.callbacks, o.cback)\n\treturn cfg\n}\n\nfunc (o float64CallbackOpt) applyFloat64ObservableGauge(cfg Float64ObservableGaugeConfig) Float64ObservableGaugeConfig {\n\tcfg.callbacks = append(cfg.callbacks, o.cback)\n\treturn cfg\n}\n\n// WithFloat64Callback adds callback to be called for an instrument.\nfunc WithFloat64Callback(callback Float64Callback) Float64ObservableOption {\n\treturn float64CallbackOpt{callback}\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/asyncint64.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage metric // import \"go.opentelemetry.io/otel/metric\"\n\nimport (\n\t\"context\"\n\n\t\"go.opentelemetry.io/otel/metric/embedded\"\n)\n\n// Int64Observable describes a set of instruments used asynchronously to record\n// int64 measurements once per collection cycle. Observations of these\n// instruments are only made within a callback.\n//\n// Warning: Methods may be added to this interface in minor releases.\ntype Int64Observable interface {\n\tObservable\n\n\tint64Observable()\n}\n\n// Int64ObservableCounter is an instrument used to asynchronously record\n// increasing int64 measurements once per collection cycle. Observations are\n// only made within a callback for this instrument. The value observed is\n// assumed the to be the cumulative sum of the count.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Int64ObservableCounter interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Int64ObservableCounter\n\n\tInt64Observable\n}\n\n// Int64ObservableCounterConfig contains options for asynchronous counter\n// instruments that record int64 values.\ntype Int64ObservableCounterConfig struct {\n\tdescription string\n\tunit        string\n\tcallbacks   []Int64Callback\n}\n\n// NewInt64ObservableCounterConfig returns a new [Int64ObservableCounterConfig]\n// with all opts applied.\nfunc NewInt64ObservableCounterConfig(opts ...Int64ObservableCounterOption) Int64ObservableCounterConfig {\n\tvar config Int64ObservableCounterConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyInt64ObservableCounter(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Int64ObservableCounterConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Int64ObservableCounterConfig) Unit() string {\n\treturn c.unit\n}\n\n// Callbacks returns the configured callbacks.\nfunc (c Int64ObservableCounterConfig) Callbacks() []Int64Callback {\n\treturn c.callbacks\n}\n\n// Int64ObservableCounterOption applies options to a\n// [Int64ObservableCounterConfig]. See [Int64ObservableOption] and\n// [InstrumentOption] for other options that can be used as an\n// Int64ObservableCounterOption.\ntype Int64ObservableCounterOption interface {\n\tapplyInt64ObservableCounter(Int64ObservableCounterConfig) Int64ObservableCounterConfig\n}\n\n// Int64ObservableUpDownCounter is an instrument used to asynchronously record\n// int64 measurements once per collection cycle. Observations are only made\n// within a callback for this instrument. The value observed is assumed the to\n// be the cumulative sum of the count.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Int64ObservableUpDownCounter interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Int64ObservableUpDownCounter\n\n\tInt64Observable\n}\n\n// Int64ObservableUpDownCounterConfig contains options for asynchronous counter\n// instruments that record int64 values.\ntype Int64ObservableUpDownCounterConfig struct {\n\tdescription string\n\tunit        string\n\tcallbacks   []Int64Callback\n}\n\n// NewInt64ObservableUpDownCounterConfig returns a new\n// [Int64ObservableUpDownCounterConfig] with all opts applied.\nfunc NewInt64ObservableUpDownCounterConfig(opts ...Int64ObservableUpDownCounterOption) Int64ObservableUpDownCounterConfig {\n\tvar config Int64ObservableUpDownCounterConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyInt64ObservableUpDownCounter(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Int64ObservableUpDownCounterConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Int64ObservableUpDownCounterConfig) Unit() string {\n\treturn c.unit\n}\n\n// Callbacks returns the configured callbacks.\nfunc (c Int64ObservableUpDownCounterConfig) Callbacks() []Int64Callback {\n\treturn c.callbacks\n}\n\n// Int64ObservableUpDownCounterOption applies options to a\n// [Int64ObservableUpDownCounterConfig]. See [Int64ObservableOption] and\n// [InstrumentOption] for other options that can be used as an\n// Int64ObservableUpDownCounterOption.\ntype Int64ObservableUpDownCounterOption interface {\n\tapplyInt64ObservableUpDownCounter(Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig\n}\n\n// Int64ObservableGauge is an instrument used to asynchronously record\n// instantaneous int64 measurements once per collection cycle. Observations are\n// only made within a callback for this instrument.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Int64ObservableGauge interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Int64ObservableGauge\n\n\tInt64Observable\n}\n\n// Int64ObservableGaugeConfig contains options for asynchronous counter\n// instruments that record int64 values.\ntype Int64ObservableGaugeConfig struct {\n\tdescription string\n\tunit        string\n\tcallbacks   []Int64Callback\n}\n\n// NewInt64ObservableGaugeConfig returns a new [Int64ObservableGaugeConfig]\n// with all opts applied.\nfunc NewInt64ObservableGaugeConfig(opts ...Int64ObservableGaugeOption) Int64ObservableGaugeConfig {\n\tvar config Int64ObservableGaugeConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyInt64ObservableGauge(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Int64ObservableGaugeConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Int64ObservableGaugeConfig) Unit() string {\n\treturn c.unit\n}\n\n// Callbacks returns the configured callbacks.\nfunc (c Int64ObservableGaugeConfig) Callbacks() []Int64Callback {\n\treturn c.callbacks\n}\n\n// Int64ObservableGaugeOption applies options to a\n// [Int64ObservableGaugeConfig]. See [Int64ObservableOption] and\n// [InstrumentOption] for other options that can be used as an\n// Int64ObservableGaugeOption.\ntype Int64ObservableGaugeOption interface {\n\tapplyInt64ObservableGauge(Int64ObservableGaugeConfig) Int64ObservableGaugeConfig\n}\n\n// Int64Observer is a recorder of int64 measurements.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Int64Observer interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Int64Observer\n\n\t// Observe records the int64 value.\n\t//\n\t// Use the WithAttributeSet (or, if performance is not a concern,\n\t// the WithAttributes) option to include measurement attributes.\n\tObserve(value int64, options ...ObserveOption)\n}\n\n// Int64Callback is a function registered with a Meter that makes observations\n// for an Int64Observerable instrument it is registered with. Calls to the\n// Int64Observer record measurement values for the Int64Observable.\n//\n// The function needs to complete in a finite amount of time and the deadline\n// of the passed context is expected to be honored.\n//\n// The function needs to make unique observations across all registered\n// Int64Callbacks. Meaning, it should not report measurements with the same\n// attributes as another Int64Callbacks also registered for the same\n// instrument.\n//\n// The function needs to be concurrent safe.\ntype Int64Callback func(context.Context, Int64Observer) error\n\n// Int64ObservableOption applies options to int64 Observer instruments.\ntype Int64ObservableOption interface {\n\tInt64ObservableCounterOption\n\tInt64ObservableUpDownCounterOption\n\tInt64ObservableGaugeOption\n}\n\ntype int64CallbackOpt struct {\n\tcback Int64Callback\n}\n\nfunc (o int64CallbackOpt) applyInt64ObservableCounter(cfg Int64ObservableCounterConfig) Int64ObservableCounterConfig {\n\tcfg.callbacks = append(cfg.callbacks, o.cback)\n\treturn cfg\n}\n\nfunc (o int64CallbackOpt) applyInt64ObservableUpDownCounter(cfg Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig {\n\tcfg.callbacks = append(cfg.callbacks, o.cback)\n\treturn cfg\n}\n\nfunc (o int64CallbackOpt) applyInt64ObservableGauge(cfg Int64ObservableGaugeConfig) Int64ObservableGaugeConfig {\n\tcfg.callbacks = append(cfg.callbacks, o.cback)\n\treturn cfg\n}\n\n// WithInt64Callback adds callback to be called for an instrument.\nfunc WithInt64Callback(callback Int64Callback) Int64ObservableOption {\n\treturn int64CallbackOpt{callback}\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/config.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage metric // import \"go.opentelemetry.io/otel/metric\"\n\nimport \"go.opentelemetry.io/otel/attribute\"\n\n// MeterConfig contains options for Meters.\ntype MeterConfig struct {\n\tinstrumentationVersion string\n\tschemaURL              string\n\tattrs                  attribute.Set\n\n\t// Ensure forward compatibility by explicitly making this not comparable.\n\tnoCmp [0]func() //nolint: unused  // This is indeed used.\n}\n\n// InstrumentationVersion returns the version of the library providing\n// instrumentation.\nfunc (cfg MeterConfig) InstrumentationVersion() string {\n\treturn cfg.instrumentationVersion\n}\n\n// InstrumentationAttributes returns the attributes associated with the library\n// providing instrumentation.\nfunc (cfg MeterConfig) InstrumentationAttributes() attribute.Set {\n\treturn cfg.attrs\n}\n\n// SchemaURL is the schema_url of the library providing instrumentation.\nfunc (cfg MeterConfig) SchemaURL() string {\n\treturn cfg.schemaURL\n}\n\n// MeterOption is an interface for applying Meter options.\ntype MeterOption interface {\n\t// applyMeter is used to set a MeterOption value of a MeterConfig.\n\tapplyMeter(MeterConfig) MeterConfig\n}\n\n// NewMeterConfig creates a new MeterConfig and applies\n// all the given options.\nfunc NewMeterConfig(opts ...MeterOption) MeterConfig {\n\tvar config MeterConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyMeter(config)\n\t}\n\treturn config\n}\n\ntype meterOptionFunc func(MeterConfig) MeterConfig\n\nfunc (fn meterOptionFunc) applyMeter(cfg MeterConfig) MeterConfig {\n\treturn fn(cfg)\n}\n\n// WithInstrumentationVersion sets the instrumentation version.\nfunc WithInstrumentationVersion(version string) MeterOption {\n\treturn meterOptionFunc(func(config MeterConfig) MeterConfig {\n\t\tconfig.instrumentationVersion = version\n\t\treturn config\n\t})\n}\n\n// WithInstrumentationAttributes sets the instrumentation attributes.\n//\n// The passed attributes will be de-duplicated.\nfunc WithInstrumentationAttributes(attr ...attribute.KeyValue) MeterOption {\n\treturn meterOptionFunc(func(config MeterConfig) MeterConfig {\n\t\tconfig.attrs = attribute.NewSet(attr...)\n\t\treturn config\n\t})\n}\n\n// WithSchemaURL sets the schema URL.\nfunc WithSchemaURL(schemaURL string) MeterOption {\n\treturn meterOptionFunc(func(config MeterConfig) MeterConfig {\n\t\tconfig.schemaURL = schemaURL\n\t\treturn config\n\t})\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/doc.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/*\nPackage metric provides the OpenTelemetry API used to measure metrics about\nsource code operation.\n\nThis API is separate from its implementation so the instrumentation built from\nit is reusable. See [go.opentelemetry.io/otel/sdk/metric] for the official\nOpenTelemetry implementation of this API.\n\nAll measurements made with this package are made via instruments. These\ninstruments are created by a [Meter] which itself is created by a\n[MeterProvider]. Applications need to accept a [MeterProvider] implementation\nas a starting point when instrumenting. This can be done directly, or by using\nthe OpenTelemetry global MeterProvider via [GetMeterProvider]. Using an\nappropriately named [Meter] from the accepted [MeterProvider], instrumentation\ncan then be built from the [Meter]'s instruments.\n\n# Instruments\n\nEach instrument is designed to make measurements of a particular type. Broadly,\nall instruments fall into two overlapping logical categories: asynchronous or\nsynchronous, and int64 or float64.\n\nAll synchronous instruments ([Int64Counter], [Int64UpDownCounter],\n[Int64Histogram], [Float64Counter], [Float64UpDownCounter], and\n[Float64Histogram]) are used to measure the operation and performance of source\ncode during the source code execution. These instruments only make measurements\nwhen the source code they instrument is run.\n\nAll asynchronous instruments ([Int64ObservableCounter],\n[Int64ObservableUpDownCounter], [Int64ObservableGauge],\n[Float64ObservableCounter], [Float64ObservableUpDownCounter], and\n[Float64ObservableGauge]) are used to measure metrics outside of the execution\nof source code. They are said to make \"observations\" via a callback function\ncalled once every measurement collection cycle.\n\nEach instrument is also grouped by the value type it measures. Either int64 or\nfloat64. The value being measured will dictate which instrument in these\ncategories to use.\n\nOutside of these two broad categories, instruments are described by the\nfunction they are designed to serve. All Counters ([Int64Counter],\n[Float64Counter], [Int64ObservableCounter], and [Float64ObservableCounter]) are\ndesigned to measure values that never decrease in value, but instead only\nincrementally increase in value. UpDownCounters ([Int64UpDownCounter],\n[Float64UpDownCounter], [Int64ObservableUpDownCounter], and\n[Float64ObservableUpDownCounter]) on the other hand, are designed to measure\nvalues that can increase and decrease. When more information needs to be\nconveyed about all the synchronous measurements made during a collection cycle,\na Histogram ([Int64Histogram] and [Float64Histogram]) should be used. Finally,\nwhen just the most recent measurement needs to be conveyed about an\nasynchronous measurement, a Gauge ([Int64ObservableGauge] and\n[Float64ObservableGauge]) should be used.\n\nSee the [OpenTelemetry documentation] for more information about instruments\nand their intended use.\n\n# Instrument Name\n\nOpenTelemetry defines an [instrument name syntax] that restricts what\ninstrument names are allowed.\n\nInstrument names should ...\n\n  - Not be empty.\n  - Have an alphabetic character as their first letter.\n  - Have any letter after the first be an alphanumeric character, ‘_’, ‘.’,\n    ‘-’, or ‘/’.\n  - Have a maximum length of 255 letters.\n\nTo ensure compatibility with observability platforms, all instruments created\nneed to conform to this syntax. Not all implementations of the API will validate\nthese names, it is the callers responsibility to ensure compliance.\n\n# Measurements\n\nMeasurements are made by recording values and information about the values with\nan instrument. How these measurements are recorded depends on the instrument.\n\nMeasurements for synchronous instruments ([Int64Counter], [Int64UpDownCounter],\n[Int64Histogram], [Float64Counter], [Float64UpDownCounter], and\n[Float64Histogram]) are recorded using the instrument methods directly. All\ncounter instruments have an Add method that is used to measure an increment\nvalue, and all histogram instruments have a Record method to measure a data\npoint.\n\nAsynchronous instruments ([Int64ObservableCounter],\n[Int64ObservableUpDownCounter], [Int64ObservableGauge],\n[Float64ObservableCounter], [Float64ObservableUpDownCounter], and\n[Float64ObservableGauge]) record measurements within a callback function. The\ncallback is registered with the Meter which ensures the callback is called once\nper collection cycle. A callback can be registered two ways: during the\ninstrument's creation using an option, or later using the RegisterCallback\nmethod of the [Meter] that created the instrument.\n\nIf the following criteria are met, an option ([WithInt64Callback] or\n[WithFloat64Callback]) can be used during the asynchronous instrument's\ncreation to register a callback ([Int64Callback] or [Float64Callback],\nrespectively):\n\n  - The measurement process is known when the instrument is created\n  - Only that instrument will make a measurement within the callback\n  - The callback never needs to be unregistered\n\nIf the criteria are not met, use the RegisterCallback method of the [Meter] that\ncreated the instrument to register a [Callback].\n\n# API Implementations\n\nThis package does not conform to the standard Go versioning policy, all of its\ninterfaces may have methods added to them without a package major version bump.\nThis non-standard API evolution could surprise an uninformed implementation\nauthor. They could unknowingly build their implementation in a way that would\nresult in a runtime panic for their users that update to the new API.\n\nThe API is designed to help inform an instrumentation author about this\nnon-standard API evolution. It requires them to choose a default behavior for\nunimplemented interface methods. There are three behavior choices they can\nmake:\n\n  - Compilation failure\n  - Panic\n  - Default to another implementation\n\nAll interfaces in this API embed a corresponding interface from\n[go.opentelemetry.io/otel/metric/embedded]. If an author wants the default\nbehavior of their implementations to be a compilation failure, signaling to\ntheir users they need to update to the latest version of that implementation,\nthey need to embed the corresponding interface from\n[go.opentelemetry.io/otel/metric/embedded] in their implementation. For\nexample,\n\n\timport \"go.opentelemetry.io/otel/metric/embedded\"\n\n\ttype MeterProvider struct {\n\t\tembedded.MeterProvider\n\t\t// ...\n\t}\n\nIf an author wants the default behavior of their implementations to a panic,\nthey need to embed the API interface directly.\n\n\timport \"go.opentelemetry.io/otel/metric\"\n\n\ttype MeterProvider struct {\n\t\tmetric.MeterProvider\n\t\t// ...\n\t}\n\nThis is not a recommended behavior as it could lead to publishing packages that\ncontain runtime panics when users update other package that use newer versions\nof [go.opentelemetry.io/otel/metric].\n\nFinally, an author can embed another implementation in theirs. The embedded\nimplementation will be used for methods not defined by the author. For example,\nan author who wants to default to silently dropping the call can use\n[go.opentelemetry.io/otel/metric/noop]:\n\n\timport \"go.opentelemetry.io/otel/metric/noop\"\n\n\ttype MeterProvider struct {\n\t\tnoop.MeterProvider\n\t\t// ...\n\t}\n\nIt is strongly recommended that authors only embed\n[go.opentelemetry.io/otel/metric/noop] if they choose this default behavior.\nThat implementation is the only one OpenTelemetry authors can guarantee will\nfully implement all the API interfaces when a user updates their API.\n\n[instrument name syntax]: https://opentelemetry.io/docs/specs/otel/metrics/api/#instrument-name-syntax\n[OpenTelemetry documentation]: https://opentelemetry.io/docs/concepts/signals/metrics/\n[GetMeterProvider]: https://pkg.go.dev/go.opentelemetry.io/otel#GetMeterProvider\n*/\npackage metric // import \"go.opentelemetry.io/otel/metric\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/embedded/README.md",
    "content": "# Metric Embedded\n\n[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/metric/embedded)](https://pkg.go.dev/go.opentelemetry.io/otel/metric/embedded)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Package embedded provides interfaces embedded within the [OpenTelemetry\n// metric API].\n//\n// Implementers of the [OpenTelemetry metric API] can embed the relevant type\n// from this package into their implementation directly. Doing so will result\n// in a compilation error for users when the [OpenTelemetry metric API] is\n// extended (which is something that can happen without a major version bump of\n// the API package).\n//\n// [OpenTelemetry metric API]: https://pkg.go.dev/go.opentelemetry.io/otel/metric\npackage embedded // import \"go.opentelemetry.io/otel/metric/embedded\"\n\n// MeterProvider is embedded in\n// [go.opentelemetry.io/otel/metric.MeterProvider].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.MeterProvider] if you want users to\n// experience a compilation error, signaling they need to update to your latest\n// implementation, when the [go.opentelemetry.io/otel/metric.MeterProvider]\n// interface is extended (which is something that can happen without a major\n// version bump of the API package).\ntype MeterProvider interface{ meterProvider() }\n\n// Meter is embedded in [go.opentelemetry.io/otel/metric.Meter].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Meter] if you want users to experience a\n// compilation error, signaling they need to update to your latest\n// implementation, when the [go.opentelemetry.io/otel/metric.Meter] interface\n// is extended (which is something that can happen without a major version bump\n// of the API package).\ntype Meter interface{ meter() }\n\n// Float64Observer is embedded in\n// [go.opentelemetry.io/otel/metric.Float64Observer].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Float64Observer] if you want\n// users to experience a compilation error, signaling they need to update to\n// your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Float64Observer] interface is\n// extended (which is something that can happen without a major version bump of\n// the API package).\ntype Float64Observer interface{ float64Observer() }\n\n// Int64Observer is embedded in\n// [go.opentelemetry.io/otel/metric.Int64Observer].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Int64Observer] if you want users\n// to experience a compilation error, signaling they need to update to your\n// latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Int64Observer] interface is\n// extended (which is something that can happen without a major version bump of\n// the API package).\ntype Int64Observer interface{ int64Observer() }\n\n// Observer is embedded in [go.opentelemetry.io/otel/metric.Observer].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Observer] if you want users to experience a\n// compilation error, signaling they need to update to your latest\n// implementation, when the [go.opentelemetry.io/otel/metric.Observer]\n// interface is extended (which is something that can happen without a major\n// version bump of the API package).\ntype Observer interface{ observer() }\n\n// Registration is embedded in [go.opentelemetry.io/otel/metric.Registration].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Registration] if you want users to\n// experience a compilation error, signaling they need to update to your latest\n// implementation, when the [go.opentelemetry.io/otel/metric.Registration]\n// interface is extended (which is something that can happen without a major\n// version bump of the API package).\ntype Registration interface{ registration() }\n\n// Float64Counter is embedded in\n// [go.opentelemetry.io/otel/metric.Float64Counter].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Float64Counter] if you want\n// users to experience a compilation error, signaling they need to update to\n// your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Float64Counter] interface is\n// extended (which is something that can happen without a major version bump of\n// the API package).\ntype Float64Counter interface{ float64Counter() }\n\n// Float64Histogram is embedded in\n// [go.opentelemetry.io/otel/metric.Float64Histogram].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Float64Histogram] if you want\n// users to experience a compilation error, signaling they need to update to\n// your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Float64Histogram] interface is\n// extended (which is something that can happen without a major version bump of\n// the API package).\ntype Float64Histogram interface{ float64Histogram() }\n\n// Float64Gauge is embedded in [go.opentelemetry.io/otel/metric.Float64Gauge].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Float64Gauge] if you want users to\n// experience a compilation error, signaling they need to update to your latest\n// implementation, when the [go.opentelemetry.io/otel/metric.Float64Gauge]\n// interface is extended (which is something that can happen without a major\n// version bump of the API package).\ntype Float64Gauge interface{ float64Gauge() }\n\n// Float64ObservableCounter is embedded in\n// [go.opentelemetry.io/otel/metric.Float64ObservableCounter].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Float64ObservableCounter] if you\n// want users to experience a compilation error, signaling they need to update\n// to your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Float64ObservableCounter]\n// interface is extended (which is something that can happen without a major\n// version bump of the API package).\ntype Float64ObservableCounter interface{ float64ObservableCounter() }\n\n// Float64ObservableGauge is embedded in\n// [go.opentelemetry.io/otel/metric.Float64ObservableGauge].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Float64ObservableGauge] if you\n// want users to experience a compilation error, signaling they need to update\n// to your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Float64ObservableGauge]\n// interface is extended (which is something that can happen without a major\n// version bump of the API package).\ntype Float64ObservableGauge interface{ float64ObservableGauge() }\n\n// Float64ObservableUpDownCounter is embedded in\n// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter]\n// if you want users to experience a compilation error, signaling they need to\n// update to your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter]\n// interface is extended (which is something that can happen without a major\n// version bump of the API package).\ntype Float64ObservableUpDownCounter interface{ float64ObservableUpDownCounter() }\n\n// Float64UpDownCounter is embedded in\n// [go.opentelemetry.io/otel/metric.Float64UpDownCounter].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Float64UpDownCounter] if you\n// want users to experience a compilation error, signaling they need to update\n// to your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Float64UpDownCounter] interface\n// is extended (which is something that can happen without a major version bump\n// of the API package).\ntype Float64UpDownCounter interface{ float64UpDownCounter() }\n\n// Int64Counter is embedded in\n// [go.opentelemetry.io/otel/metric.Int64Counter].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Int64Counter] if you want users\n// to experience a compilation error, signaling they need to update to your\n// latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Int64Counter] interface is\n// extended (which is something that can happen without a major version bump of\n// the API package).\ntype Int64Counter interface{ int64Counter() }\n\n// Int64Histogram is embedded in\n// [go.opentelemetry.io/otel/metric.Int64Histogram].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Int64Histogram] if you want\n// users to experience a compilation error, signaling they need to update to\n// your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Int64Histogram] interface is\n// extended (which is something that can happen without a major version bump of\n// the API package).\ntype Int64Histogram interface{ int64Histogram() }\n\n// Int64Gauge is embedded in [go.opentelemetry.io/otel/metric.Int64Gauge].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Int64Gauge] if you want users to experience\n// a compilation error, signaling they need to update to your latest\n// implementation, when the [go.opentelemetry.io/otel/metric.Int64Gauge]\n// interface is extended (which is something that can happen without a major\n// version bump of the API package).\ntype Int64Gauge interface{ int64Gauge() }\n\n// Int64ObservableCounter is embedded in\n// [go.opentelemetry.io/otel/metric.Int64ObservableCounter].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Int64ObservableCounter] if you\n// want users to experience a compilation error, signaling they need to update\n// to your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Int64ObservableCounter]\n// interface is extended (which is something that can happen without a major\n// version bump of the API package).\ntype Int64ObservableCounter interface{ int64ObservableCounter() }\n\n// Int64ObservableGauge is embedded in\n// [go.opentelemetry.io/otel/metric.Int64ObservableGauge].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Int64ObservableGauge] if you\n// want users to experience a compilation error, signaling they need to update\n// to your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Int64ObservableGauge] interface\n// is extended (which is something that can happen without a major version bump\n// of the API package).\ntype Int64ObservableGauge interface{ int64ObservableGauge() }\n\n// Int64ObservableUpDownCounter is embedded in\n// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter] if\n// you want users to experience a compilation error, signaling they need to\n// update to your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter]\n// interface is extended (which is something that can happen without a major\n// version bump of the API package).\ntype Int64ObservableUpDownCounter interface{ int64ObservableUpDownCounter() }\n\n// Int64UpDownCounter is embedded in\n// [go.opentelemetry.io/otel/metric.Int64UpDownCounter].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/metric.Int64UpDownCounter] if you want\n// users to experience a compilation error, signaling they need to update to\n// your latest implementation, when the\n// [go.opentelemetry.io/otel/metric.Int64UpDownCounter] interface is\n// extended (which is something that can happen without a major version bump of\n// the API package).\ntype Int64UpDownCounter interface{ int64UpDownCounter() }\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/instrument.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage metric // import \"go.opentelemetry.io/otel/metric\"\n\nimport \"go.opentelemetry.io/otel/attribute\"\n\n// Observable is used as a grouping mechanism for all instruments that are\n// updated within a Callback.\ntype Observable interface {\n\tobservable()\n}\n\n// InstrumentOption applies options to all instruments.\ntype InstrumentOption interface {\n\tInt64CounterOption\n\tInt64UpDownCounterOption\n\tInt64HistogramOption\n\tInt64GaugeOption\n\tInt64ObservableCounterOption\n\tInt64ObservableUpDownCounterOption\n\tInt64ObservableGaugeOption\n\n\tFloat64CounterOption\n\tFloat64UpDownCounterOption\n\tFloat64HistogramOption\n\tFloat64GaugeOption\n\tFloat64ObservableCounterOption\n\tFloat64ObservableUpDownCounterOption\n\tFloat64ObservableGaugeOption\n}\n\n// HistogramOption applies options to histogram instruments.\ntype HistogramOption interface {\n\tInt64HistogramOption\n\tFloat64HistogramOption\n}\n\ntype descOpt string\n\nfunc (o descOpt) applyFloat64Counter(c Float64CounterConfig) Float64CounterConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyFloat64UpDownCounter(c Float64UpDownCounterConfig) Float64UpDownCounterConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyFloat64Histogram(c Float64HistogramConfig) Float64HistogramConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyFloat64Gauge(c Float64GaugeConfig) Float64GaugeConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyFloat64ObservableCounter(c Float64ObservableCounterConfig) Float64ObservableCounterConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyFloat64ObservableUpDownCounter(c Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyFloat64ObservableGauge(c Float64ObservableGaugeConfig) Float64ObservableGaugeConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyInt64Counter(c Int64CounterConfig) Int64CounterConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyInt64UpDownCounter(c Int64UpDownCounterConfig) Int64UpDownCounterConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyInt64Histogram(c Int64HistogramConfig) Int64HistogramConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyInt64Gauge(c Int64GaugeConfig) Int64GaugeConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyInt64ObservableCounter(c Int64ObservableCounterConfig) Int64ObservableCounterConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyInt64ObservableUpDownCounter(c Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig {\n\tc.description = string(o)\n\treturn c\n}\n\nfunc (o descOpt) applyInt64ObservableGauge(c Int64ObservableGaugeConfig) Int64ObservableGaugeConfig {\n\tc.description = string(o)\n\treturn c\n}\n\n// WithDescription sets the instrument description.\nfunc WithDescription(desc string) InstrumentOption { return descOpt(desc) }\n\ntype unitOpt string\n\nfunc (o unitOpt) applyFloat64Counter(c Float64CounterConfig) Float64CounterConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyFloat64UpDownCounter(c Float64UpDownCounterConfig) Float64UpDownCounterConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyFloat64Histogram(c Float64HistogramConfig) Float64HistogramConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyFloat64Gauge(c Float64GaugeConfig) Float64GaugeConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyFloat64ObservableCounter(c Float64ObservableCounterConfig) Float64ObservableCounterConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyFloat64ObservableUpDownCounter(c Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyFloat64ObservableGauge(c Float64ObservableGaugeConfig) Float64ObservableGaugeConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyInt64Counter(c Int64CounterConfig) Int64CounterConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyInt64UpDownCounter(c Int64UpDownCounterConfig) Int64UpDownCounterConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyInt64Histogram(c Int64HistogramConfig) Int64HistogramConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyInt64Gauge(c Int64GaugeConfig) Int64GaugeConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyInt64ObservableCounter(c Int64ObservableCounterConfig) Int64ObservableCounterConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyInt64ObservableUpDownCounter(c Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\nfunc (o unitOpt) applyInt64ObservableGauge(c Int64ObservableGaugeConfig) Int64ObservableGaugeConfig {\n\tc.unit = string(o)\n\treturn c\n}\n\n// WithUnit sets the instrument unit.\n//\n// The unit u should be defined using the appropriate [UCUM](https://ucum.org) case-sensitive code.\nfunc WithUnit(u string) InstrumentOption { return unitOpt(u) }\n\n// WithExplicitBucketBoundaries sets the instrument explicit bucket boundaries.\n//\n// This option is considered \"advisory\", and may be ignored by API implementations.\nfunc WithExplicitBucketBoundaries(bounds ...float64) HistogramOption { return bucketOpt(bounds) }\n\ntype bucketOpt []float64\n\nfunc (o bucketOpt) applyFloat64Histogram(c Float64HistogramConfig) Float64HistogramConfig {\n\tc.explicitBucketBoundaries = o\n\treturn c\n}\n\nfunc (o bucketOpt) applyInt64Histogram(c Int64HistogramConfig) Int64HistogramConfig {\n\tc.explicitBucketBoundaries = o\n\treturn c\n}\n\n// AddOption applies options to an addition measurement. See\n// [MeasurementOption] for other options that can be used as an AddOption.\ntype AddOption interface {\n\tapplyAdd(AddConfig) AddConfig\n}\n\n// AddConfig contains options for an addition measurement.\ntype AddConfig struct {\n\tattrs attribute.Set\n}\n\n// NewAddConfig returns a new [AddConfig] with all opts applied.\nfunc NewAddConfig(opts []AddOption) AddConfig {\n\tconfig := AddConfig{attrs: *attribute.EmptySet()}\n\tfor _, o := range opts {\n\t\tconfig = o.applyAdd(config)\n\t}\n\treturn config\n}\n\n// Attributes returns the configured attribute set.\nfunc (c AddConfig) Attributes() attribute.Set {\n\treturn c.attrs\n}\n\n// RecordOption applies options to an addition measurement. See\n// [MeasurementOption] for other options that can be used as a RecordOption.\ntype RecordOption interface {\n\tapplyRecord(RecordConfig) RecordConfig\n}\n\n// RecordConfig contains options for a recorded measurement.\ntype RecordConfig struct {\n\tattrs attribute.Set\n}\n\n// NewRecordConfig returns a new [RecordConfig] with all opts applied.\nfunc NewRecordConfig(opts []RecordOption) RecordConfig {\n\tconfig := RecordConfig{attrs: *attribute.EmptySet()}\n\tfor _, o := range opts {\n\t\tconfig = o.applyRecord(config)\n\t}\n\treturn config\n}\n\n// Attributes returns the configured attribute set.\nfunc (c RecordConfig) Attributes() attribute.Set {\n\treturn c.attrs\n}\n\n// ObserveOption applies options to an addition measurement. See\n// [MeasurementOption] for other options that can be used as a ObserveOption.\ntype ObserveOption interface {\n\tapplyObserve(ObserveConfig) ObserveConfig\n}\n\n// ObserveConfig contains options for an observed measurement.\ntype ObserveConfig struct {\n\tattrs attribute.Set\n}\n\n// NewObserveConfig returns a new [ObserveConfig] with all opts applied.\nfunc NewObserveConfig(opts []ObserveOption) ObserveConfig {\n\tconfig := ObserveConfig{attrs: *attribute.EmptySet()}\n\tfor _, o := range opts {\n\t\tconfig = o.applyObserve(config)\n\t}\n\treturn config\n}\n\n// Attributes returns the configured attribute set.\nfunc (c ObserveConfig) Attributes() attribute.Set {\n\treturn c.attrs\n}\n\n// MeasurementOption applies options to all instrument measurement.\ntype MeasurementOption interface {\n\tAddOption\n\tRecordOption\n\tObserveOption\n}\n\ntype attrOpt struct {\n\tset attribute.Set\n}\n\n// mergeSets returns the union of keys between a and b. Any duplicate keys will\n// use the value associated with b.\nfunc mergeSets(a, b attribute.Set) attribute.Set {\n\t// NewMergeIterator uses the first value for any duplicates.\n\titer := attribute.NewMergeIterator(&b, &a)\n\tmerged := make([]attribute.KeyValue, 0, a.Len()+b.Len())\n\tfor iter.Next() {\n\t\tmerged = append(merged, iter.Attribute())\n\t}\n\treturn attribute.NewSet(merged...)\n}\n\nfunc (o attrOpt) applyAdd(c AddConfig) AddConfig {\n\tswitch {\n\tcase o.set.Len() == 0:\n\tcase c.attrs.Len() == 0:\n\t\tc.attrs = o.set\n\tdefault:\n\t\tc.attrs = mergeSets(c.attrs, o.set)\n\t}\n\treturn c\n}\n\nfunc (o attrOpt) applyRecord(c RecordConfig) RecordConfig {\n\tswitch {\n\tcase o.set.Len() == 0:\n\tcase c.attrs.Len() == 0:\n\t\tc.attrs = o.set\n\tdefault:\n\t\tc.attrs = mergeSets(c.attrs, o.set)\n\t}\n\treturn c\n}\n\nfunc (o attrOpt) applyObserve(c ObserveConfig) ObserveConfig {\n\tswitch {\n\tcase o.set.Len() == 0:\n\tcase c.attrs.Len() == 0:\n\t\tc.attrs = o.set\n\tdefault:\n\t\tc.attrs = mergeSets(c.attrs, o.set)\n\t}\n\treturn c\n}\n\n// WithAttributeSet sets the attribute Set associated with a measurement is\n// made with.\n//\n// If multiple WithAttributeSet or WithAttributes options are passed the\n// attributes will be merged together in the order they are passed. Attributes\n// with duplicate keys will use the last value passed.\nfunc WithAttributeSet(attributes attribute.Set) MeasurementOption {\n\treturn attrOpt{set: attributes}\n}\n\n// WithAttributes converts attributes into an attribute Set and sets the Set to\n// be associated with a measurement. This is shorthand for:\n//\n//\tcp := make([]attribute.KeyValue, len(attributes))\n//\tcopy(cp, attributes)\n//\tWithAttributes(attribute.NewSet(cp...))\n//\n// [attribute.NewSet] may modify the passed attributes so this will make a copy\n// of attributes before creating a set in order to ensure this function is\n// concurrent safe. This makes this option function less optimized in\n// comparison to [WithAttributeSet]. Therefore, [WithAttributeSet] should be\n// preferred for performance sensitive code.\n//\n// See [WithAttributeSet] for information about how multiple WithAttributes are\n// merged.\nfunc WithAttributes(attributes ...attribute.KeyValue) MeasurementOption {\n\tcp := make([]attribute.KeyValue, len(attributes))\n\tcopy(cp, attributes)\n\treturn attrOpt{set: attribute.NewSet(cp...)}\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/meter.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage metric // import \"go.opentelemetry.io/otel/metric\"\n\nimport (\n\t\"context\"\n\n\t\"go.opentelemetry.io/otel/metric/embedded\"\n)\n\n// MeterProvider provides access to named Meter instances, for instrumenting\n// an application or package.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype MeterProvider interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.MeterProvider\n\n\t// Meter returns a new Meter with the provided name and configuration.\n\t//\n\t// A Meter should be scoped at most to a single package. The name needs to\n\t// be unique so it does not collide with other names used by\n\t// an application, nor other applications. To achieve this, the import path\n\t// of the instrumentation package is recommended to be used as name.\n\t//\n\t// If the name is empty, then an implementation defined default name will\n\t// be used instead.\n\tMeter(name string, opts ...MeterOption) Meter\n}\n\n// Meter provides access to instrument instances for recording metrics.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Meter interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Meter\n\n\t// Int64Counter returns a new Int64Counter instrument identified by name\n\t// and configured with options. The instrument is used to synchronously\n\t// record increasing int64 measurements during a computational operation.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tInt64Counter(name string, options ...Int64CounterOption) (Int64Counter, error)\n\t// Int64UpDownCounter returns a new Int64UpDownCounter instrument\n\t// identified by name and configured with options. The instrument is used\n\t// to synchronously record int64 measurements during a computational\n\t// operation.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tInt64UpDownCounter(name string, options ...Int64UpDownCounterOption) (Int64UpDownCounter, error)\n\t// Int64Histogram returns a new Int64Histogram instrument identified by\n\t// name and configured with options. The instrument is used to\n\t// synchronously record the distribution of int64 measurements during a\n\t// computational operation.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tInt64Histogram(name string, options ...Int64HistogramOption) (Int64Histogram, error)\n\t// Int64Gauge returns a new Int64Gauge instrument identified by name and\n\t// configured with options. The instrument is used to synchronously record\n\t// instantaneous int64 measurements during a computational operation.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tInt64Gauge(name string, options ...Int64GaugeOption) (Int64Gauge, error)\n\t// Int64ObservableCounter returns a new Int64ObservableCounter identified\n\t// by name and configured with options. The instrument is used to\n\t// asynchronously record increasing int64 measurements once per a\n\t// measurement collection cycle.\n\t//\n\t// Measurements for the returned instrument are made via a callback. Use\n\t// the WithInt64Callback option to register the callback here, or use the\n\t// RegisterCallback method of this Meter to register one later. See the\n\t// Measurements section of the package documentation for more information.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tInt64ObservableCounter(name string, options ...Int64ObservableCounterOption) (Int64ObservableCounter, error)\n\t// Int64ObservableUpDownCounter returns a new Int64ObservableUpDownCounter\n\t// instrument identified by name and configured with options. The\n\t// instrument is used to asynchronously record int64 measurements once per\n\t// a measurement collection cycle.\n\t//\n\t// Measurements for the returned instrument are made via a callback. Use\n\t// the WithInt64Callback option to register the callback here, or use the\n\t// RegisterCallback method of this Meter to register one later. See the\n\t// Measurements section of the package documentation for more information.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tInt64ObservableUpDownCounter(name string, options ...Int64ObservableUpDownCounterOption) (Int64ObservableUpDownCounter, error)\n\t// Int64ObservableGauge returns a new Int64ObservableGauge instrument\n\t// identified by name and configured with options. The instrument is used\n\t// to asynchronously record instantaneous int64 measurements once per a\n\t// measurement collection cycle.\n\t//\n\t// Measurements for the returned instrument are made via a callback. Use\n\t// the WithInt64Callback option to register the callback here, or use the\n\t// RegisterCallback method of this Meter to register one later. See the\n\t// Measurements section of the package documentation for more information.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tInt64ObservableGauge(name string, options ...Int64ObservableGaugeOption) (Int64ObservableGauge, error)\n\n\t// Float64Counter returns a new Float64Counter instrument identified by\n\t// name and configured with options. The instrument is used to\n\t// synchronously record increasing float64 measurements during a\n\t// computational operation.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tFloat64Counter(name string, options ...Float64CounterOption) (Float64Counter, error)\n\t// Float64UpDownCounter returns a new Float64UpDownCounter instrument\n\t// identified by name and configured with options. The instrument is used\n\t// to synchronously record float64 measurements during a computational\n\t// operation.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tFloat64UpDownCounter(name string, options ...Float64UpDownCounterOption) (Float64UpDownCounter, error)\n\t// Float64Histogram returns a new Float64Histogram instrument identified by\n\t// name and configured with options. The instrument is used to\n\t// synchronously record the distribution of float64 measurements during a\n\t// computational operation.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tFloat64Histogram(name string, options ...Float64HistogramOption) (Float64Histogram, error)\n\t// Float64Gauge returns a new Float64Gauge instrument identified by name and\n\t// configured with options. The instrument is used to synchronously record\n\t// instantaneous float64 measurements during a computational operation.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tFloat64Gauge(name string, options ...Float64GaugeOption) (Float64Gauge, error)\n\t// Float64ObservableCounter returns a new Float64ObservableCounter\n\t// instrument identified by name and configured with options. The\n\t// instrument is used to asynchronously record increasing float64\n\t// measurements once per a measurement collection cycle.\n\t//\n\t// Measurements for the returned instrument are made via a callback. Use\n\t// the WithFloat64Callback option to register the callback here, or use the\n\t// RegisterCallback method of this Meter to register one later. See the\n\t// Measurements section of the package documentation for more information.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tFloat64ObservableCounter(name string, options ...Float64ObservableCounterOption) (Float64ObservableCounter, error)\n\t// Float64ObservableUpDownCounter returns a new\n\t// Float64ObservableUpDownCounter instrument identified by name and\n\t// configured with options. The instrument is used to asynchronously record\n\t// float64 measurements once per a measurement collection cycle.\n\t//\n\t// Measurements for the returned instrument are made via a callback. Use\n\t// the WithFloat64Callback option to register the callback here, or use the\n\t// RegisterCallback method of this Meter to register one later. See the\n\t// Measurements section of the package documentation for more information.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tFloat64ObservableUpDownCounter(name string, options ...Float64ObservableUpDownCounterOption) (Float64ObservableUpDownCounter, error)\n\t// Float64ObservableGauge returns a new Float64ObservableGauge instrument\n\t// identified by name and configured with options. The instrument is used\n\t// to asynchronously record instantaneous float64 measurements once per a\n\t// measurement collection cycle.\n\t//\n\t// Measurements for the returned instrument are made via a callback. Use\n\t// the WithFloat64Callback option to register the callback here, or use the\n\t// RegisterCallback method of this Meter to register one later. See the\n\t// Measurements section of the package documentation for more information.\n\t//\n\t// The name needs to conform to the OpenTelemetry instrument name syntax.\n\t// See the Instrument Name section of the package documentation for more\n\t// information.\n\tFloat64ObservableGauge(name string, options ...Float64ObservableGaugeOption) (Float64ObservableGauge, error)\n\n\t// RegisterCallback registers f to be called during the collection of a\n\t// measurement cycle.\n\t//\n\t// If Unregister of the returned Registration is called, f needs to be\n\t// unregistered and not called during collection.\n\t//\n\t// The instruments f is registered with are the only instruments that f may\n\t// observe values for.\n\t//\n\t// If no instruments are passed, f should not be registered nor called\n\t// during collection.\n\t//\n\t// The function f needs to be concurrent safe.\n\tRegisterCallback(f Callback, instruments ...Observable) (Registration, error)\n}\n\n// Callback is a function registered with a Meter that makes observations for\n// the set of instruments it is registered with. The Observer parameter is used\n// to record measurement observations for these instruments.\n//\n// The function needs to complete in a finite amount of time and the deadline\n// of the passed context is expected to be honored.\n//\n// The function needs to make unique observations across all registered\n// Callbacks. Meaning, it should not report measurements for an instrument with\n// the same attributes as another Callback will report.\n//\n// The function needs to be concurrent safe.\ntype Callback func(context.Context, Observer) error\n\n// Observer records measurements for multiple instruments in a Callback.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Observer interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Observer\n\n\t// ObserveFloat64 records the float64 value for obsrv.\n\tObserveFloat64(obsrv Float64Observable, value float64, opts ...ObserveOption)\n\t// ObserveInt64 records the int64 value for obsrv.\n\tObserveInt64(obsrv Int64Observable, value int64, opts ...ObserveOption)\n}\n\n// Registration is an token representing the unique registration of a callback\n// for a set of instruments with a Meter.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Registration interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Registration\n\n\t// Unregister removes the callback registration from a Meter.\n\t//\n\t// This method needs to be idempotent and concurrent safe.\n\tUnregister() error\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/syncfloat64.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage metric // import \"go.opentelemetry.io/otel/metric\"\n\nimport (\n\t\"context\"\n\n\t\"go.opentelemetry.io/otel/metric/embedded\"\n)\n\n// Float64Counter is an instrument that records increasing float64 values.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Float64Counter interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Float64Counter\n\n\t// Add records a change to the counter.\n\t//\n\t// Use the WithAttributeSet (or, if performance is not a concern,\n\t// the WithAttributes) option to include measurement attributes.\n\tAdd(ctx context.Context, incr float64, options ...AddOption)\n}\n\n// Float64CounterConfig contains options for synchronous counter instruments that\n// record float64 values.\ntype Float64CounterConfig struct {\n\tdescription string\n\tunit        string\n}\n\n// NewFloat64CounterConfig returns a new [Float64CounterConfig] with all opts\n// applied.\nfunc NewFloat64CounterConfig(opts ...Float64CounterOption) Float64CounterConfig {\n\tvar config Float64CounterConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyFloat64Counter(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Float64CounterConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Float64CounterConfig) Unit() string {\n\treturn c.unit\n}\n\n// Float64CounterOption applies options to a [Float64CounterConfig]. See\n// [InstrumentOption] for other options that can be used as a\n// Float64CounterOption.\ntype Float64CounterOption interface {\n\tapplyFloat64Counter(Float64CounterConfig) Float64CounterConfig\n}\n\n// Float64UpDownCounter is an instrument that records increasing or decreasing\n// float64 values.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Float64UpDownCounter interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Float64UpDownCounter\n\n\t// Add records a change to the counter.\n\t//\n\t// Use the WithAttributeSet (or, if performance is not a concern,\n\t// the WithAttributes) option to include measurement attributes.\n\tAdd(ctx context.Context, incr float64, options ...AddOption)\n}\n\n// Float64UpDownCounterConfig contains options for synchronous counter\n// instruments that record float64 values.\ntype Float64UpDownCounterConfig struct {\n\tdescription string\n\tunit        string\n}\n\n// NewFloat64UpDownCounterConfig returns a new [Float64UpDownCounterConfig]\n// with all opts applied.\nfunc NewFloat64UpDownCounterConfig(opts ...Float64UpDownCounterOption) Float64UpDownCounterConfig {\n\tvar config Float64UpDownCounterConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyFloat64UpDownCounter(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Float64UpDownCounterConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Float64UpDownCounterConfig) Unit() string {\n\treturn c.unit\n}\n\n// Float64UpDownCounterOption applies options to a\n// [Float64UpDownCounterConfig]. See [InstrumentOption] for other options that\n// can be used as a Float64UpDownCounterOption.\ntype Float64UpDownCounterOption interface {\n\tapplyFloat64UpDownCounter(Float64UpDownCounterConfig) Float64UpDownCounterConfig\n}\n\n// Float64Histogram is an instrument that records a distribution of float64\n// values.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Float64Histogram interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Float64Histogram\n\n\t// Record adds an additional value to the distribution.\n\t//\n\t// Use the WithAttributeSet (or, if performance is not a concern,\n\t// the WithAttributes) option to include measurement attributes.\n\tRecord(ctx context.Context, incr float64, options ...RecordOption)\n}\n\n// Float64HistogramConfig contains options for synchronous histogram\n// instruments that record float64 values.\ntype Float64HistogramConfig struct {\n\tdescription              string\n\tunit                     string\n\texplicitBucketBoundaries []float64\n}\n\n// NewFloat64HistogramConfig returns a new [Float64HistogramConfig] with all\n// opts applied.\nfunc NewFloat64HistogramConfig(opts ...Float64HistogramOption) Float64HistogramConfig {\n\tvar config Float64HistogramConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyFloat64Histogram(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Float64HistogramConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Float64HistogramConfig) Unit() string {\n\treturn c.unit\n}\n\n// ExplicitBucketBoundaries returns the configured explicit bucket boundaries.\nfunc (c Float64HistogramConfig) ExplicitBucketBoundaries() []float64 {\n\treturn c.explicitBucketBoundaries\n}\n\n// Float64HistogramOption applies options to a [Float64HistogramConfig]. See\n// [InstrumentOption] for other options that can be used as a\n// Float64HistogramOption.\ntype Float64HistogramOption interface {\n\tapplyFloat64Histogram(Float64HistogramConfig) Float64HistogramConfig\n}\n\n// Float64Gauge is an instrument that records instantaneous float64 values.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Float64Gauge interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Float64Gauge\n\n\t// Record records the instantaneous value.\n\t//\n\t// Use the WithAttributeSet (or, if performance is not a concern,\n\t// the WithAttributes) option to include measurement attributes.\n\tRecord(ctx context.Context, value float64, options ...RecordOption)\n}\n\n// Float64GaugeConfig contains options for synchronous gauge instruments that\n// record float64 values.\ntype Float64GaugeConfig struct {\n\tdescription string\n\tunit        string\n}\n\n// NewFloat64GaugeConfig returns a new [Float64GaugeConfig] with all opts\n// applied.\nfunc NewFloat64GaugeConfig(opts ...Float64GaugeOption) Float64GaugeConfig {\n\tvar config Float64GaugeConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyFloat64Gauge(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Float64GaugeConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Float64GaugeConfig) Unit() string {\n\treturn c.unit\n}\n\n// Float64GaugeOption applies options to a [Float64GaugeConfig]. See\n// [InstrumentOption] for other options that can be used as a\n// Float64GaugeOption.\ntype Float64GaugeOption interface {\n\tapplyFloat64Gauge(Float64GaugeConfig) Float64GaugeConfig\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric/syncint64.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage metric // import \"go.opentelemetry.io/otel/metric\"\n\nimport (\n\t\"context\"\n\n\t\"go.opentelemetry.io/otel/metric/embedded\"\n)\n\n// Int64Counter is an instrument that records increasing int64 values.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Int64Counter interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Int64Counter\n\n\t// Add records a change to the counter.\n\t//\n\t// Use the WithAttributeSet (or, if performance is not a concern,\n\t// the WithAttributes) option to include measurement attributes.\n\tAdd(ctx context.Context, incr int64, options ...AddOption)\n}\n\n// Int64CounterConfig contains options for synchronous counter instruments that\n// record int64 values.\ntype Int64CounterConfig struct {\n\tdescription string\n\tunit        string\n}\n\n// NewInt64CounterConfig returns a new [Int64CounterConfig] with all opts\n// applied.\nfunc NewInt64CounterConfig(opts ...Int64CounterOption) Int64CounterConfig {\n\tvar config Int64CounterConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyInt64Counter(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Int64CounterConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Int64CounterConfig) Unit() string {\n\treturn c.unit\n}\n\n// Int64CounterOption applies options to a [Int64CounterConfig]. See\n// [InstrumentOption] for other options that can be used as an\n// Int64CounterOption.\ntype Int64CounterOption interface {\n\tapplyInt64Counter(Int64CounterConfig) Int64CounterConfig\n}\n\n// Int64UpDownCounter is an instrument that records increasing or decreasing\n// int64 values.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Int64UpDownCounter interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Int64UpDownCounter\n\n\t// Add records a change to the counter.\n\t//\n\t// Use the WithAttributeSet (or, if performance is not a concern,\n\t// the WithAttributes) option to include measurement attributes.\n\tAdd(ctx context.Context, incr int64, options ...AddOption)\n}\n\n// Int64UpDownCounterConfig contains options for synchronous counter\n// instruments that record int64 values.\ntype Int64UpDownCounterConfig struct {\n\tdescription string\n\tunit        string\n}\n\n// NewInt64UpDownCounterConfig returns a new [Int64UpDownCounterConfig] with\n// all opts applied.\nfunc NewInt64UpDownCounterConfig(opts ...Int64UpDownCounterOption) Int64UpDownCounterConfig {\n\tvar config Int64UpDownCounterConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyInt64UpDownCounter(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Int64UpDownCounterConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Int64UpDownCounterConfig) Unit() string {\n\treturn c.unit\n}\n\n// Int64UpDownCounterOption applies options to a [Int64UpDownCounterConfig].\n// See [InstrumentOption] for other options that can be used as an\n// Int64UpDownCounterOption.\ntype Int64UpDownCounterOption interface {\n\tapplyInt64UpDownCounter(Int64UpDownCounterConfig) Int64UpDownCounterConfig\n}\n\n// Int64Histogram is an instrument that records a distribution of int64\n// values.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Int64Histogram interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Int64Histogram\n\n\t// Record adds an additional value to the distribution.\n\t//\n\t// Use the WithAttributeSet (or, if performance is not a concern,\n\t// the WithAttributes) option to include measurement attributes.\n\tRecord(ctx context.Context, incr int64, options ...RecordOption)\n}\n\n// Int64HistogramConfig contains options for synchronous histogram instruments\n// that record int64 values.\ntype Int64HistogramConfig struct {\n\tdescription              string\n\tunit                     string\n\texplicitBucketBoundaries []float64\n}\n\n// NewInt64HistogramConfig returns a new [Int64HistogramConfig] with all opts\n// applied.\nfunc NewInt64HistogramConfig(opts ...Int64HistogramOption) Int64HistogramConfig {\n\tvar config Int64HistogramConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyInt64Histogram(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Int64HistogramConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Int64HistogramConfig) Unit() string {\n\treturn c.unit\n}\n\n// ExplicitBucketBoundaries returns the configured explicit bucket boundaries.\nfunc (c Int64HistogramConfig) ExplicitBucketBoundaries() []float64 {\n\treturn c.explicitBucketBoundaries\n}\n\n// Int64HistogramOption applies options to a [Int64HistogramConfig]. See\n// [InstrumentOption] for other options that can be used as an\n// Int64HistogramOption.\ntype Int64HistogramOption interface {\n\tapplyInt64Histogram(Int64HistogramConfig) Int64HistogramConfig\n}\n\n// Int64Gauge is an instrument that records instantaneous int64 values.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Int64Gauge interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Int64Gauge\n\n\t// Record records the instantaneous value.\n\t//\n\t// Use the WithAttributeSet (or, if performance is not a concern,\n\t// the WithAttributes) option to include measurement attributes.\n\tRecord(ctx context.Context, value int64, options ...RecordOption)\n}\n\n// Int64GaugeConfig contains options for synchronous gauge instruments that\n// record int64 values.\ntype Int64GaugeConfig struct {\n\tdescription string\n\tunit        string\n}\n\n// NewInt64GaugeConfig returns a new [Int64GaugeConfig] with all opts\n// applied.\nfunc NewInt64GaugeConfig(opts ...Int64GaugeOption) Int64GaugeConfig {\n\tvar config Int64GaugeConfig\n\tfor _, o := range opts {\n\t\tconfig = o.applyInt64Gauge(config)\n\t}\n\treturn config\n}\n\n// Description returns the configured description.\nfunc (c Int64GaugeConfig) Description() string {\n\treturn c.description\n}\n\n// Unit returns the configured unit.\nfunc (c Int64GaugeConfig) Unit() string {\n\treturn c.unit\n}\n\n// Int64GaugeOption applies options to a [Int64GaugeConfig]. See\n// [InstrumentOption] for other options that can be used as a\n// Int64GaugeOption.\ntype Int64GaugeOption interface {\n\tapplyInt64Gauge(Int64GaugeConfig) Int64GaugeConfig\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/metric.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otel // import \"go.opentelemetry.io/otel\"\n\nimport (\n\t\"go.opentelemetry.io/otel/internal/global\"\n\t\"go.opentelemetry.io/otel/metric\"\n)\n\n// Meter returns a Meter from the global MeterProvider. The name must be the\n// name of the library providing instrumentation. This name may be the same as\n// the instrumented code only if that code provides built-in instrumentation.\n// If the name is empty, then a implementation defined default name will be\n// used instead.\n//\n// If this is called before a global MeterProvider is registered the returned\n// Meter will be a No-op implementation of a Meter. When a global MeterProvider\n// is registered for the first time, the returned Meter, and all the\n// instruments it has created or will create, are recreated automatically from\n// the new MeterProvider.\n//\n// This is short for GetMeterProvider().Meter(name).\nfunc Meter(name string, opts ...metric.MeterOption) metric.Meter {\n\treturn GetMeterProvider().Meter(name, opts...)\n}\n\n// GetMeterProvider returns the registered global meter provider.\n//\n// If no global GetMeterProvider has been registered, a No-op GetMeterProvider\n// implementation is returned. When a global GetMeterProvider is registered for\n// the first time, the returned GetMeterProvider, and all the Meters it has\n// created or will create, are recreated automatically from the new\n// GetMeterProvider.\nfunc GetMeterProvider() metric.MeterProvider {\n\treturn global.MeterProvider()\n}\n\n// SetMeterProvider registers mp as the global MeterProvider.\nfunc SetMeterProvider(mp metric.MeterProvider) {\n\tglobal.SetMeterProvider(mp)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/propagation/README.md",
    "content": "# Propagation\n\n[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/propagation)](https://pkg.go.dev/go.opentelemetry.io/otel/propagation)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/propagation/baggage.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage propagation // import \"go.opentelemetry.io/otel/propagation\"\n\nimport (\n\t\"context\"\n\n\t\"go.opentelemetry.io/otel/baggage\"\n)\n\nconst baggageHeader = \"baggage\"\n\n// Baggage is a propagator that supports the W3C Baggage format.\n//\n// This propagates user-defined baggage associated with a trace. The complete\n// specification is defined at https://www.w3.org/TR/baggage/.\ntype Baggage struct{}\n\nvar _ TextMapPropagator = Baggage{}\n\n// Inject sets baggage key-values from ctx into the carrier.\nfunc (b Baggage) Inject(ctx context.Context, carrier TextMapCarrier) {\n\tbStr := baggage.FromContext(ctx).String()\n\tif bStr != \"\" {\n\t\tcarrier.Set(baggageHeader, bStr)\n\t}\n}\n\n// Extract returns a copy of parent with the baggage from the carrier added.\nfunc (b Baggage) Extract(parent context.Context, carrier TextMapCarrier) context.Context {\n\tbStr := carrier.Get(baggageHeader)\n\tif bStr == \"\" {\n\t\treturn parent\n\t}\n\n\tbag, err := baggage.Parse(bStr)\n\tif err != nil {\n\t\treturn parent\n\t}\n\treturn baggage.ContextWithBaggage(parent, bag)\n}\n\n// Fields returns the keys who's values are set with Inject.\nfunc (b Baggage) Fields() []string {\n\treturn []string{baggageHeader}\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/propagation/doc.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/*\nPackage propagation contains OpenTelemetry context propagators.\n\nOpenTelemetry propagators are used to extract and inject context data from and\ninto messages exchanged by applications. The propagator supported by this\npackage is the W3C Trace Context encoding\n(https://www.w3.org/TR/trace-context/), and W3C Baggage\n(https://www.w3.org/TR/baggage/).\n*/\npackage propagation // import \"go.opentelemetry.io/otel/propagation\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/propagation/propagation.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage propagation // import \"go.opentelemetry.io/otel/propagation\"\n\nimport (\n\t\"context\"\n\t\"net/http\"\n)\n\n// TextMapCarrier is the storage medium used by a TextMapPropagator.\ntype TextMapCarrier interface {\n\t// DO NOT CHANGE: any modification will not be backwards compatible and\n\t// must never be done outside of a new major release.\n\n\t// Get returns the value associated with the passed key.\n\tGet(key string) string\n\t// DO NOT CHANGE: any modification will not be backwards compatible and\n\t// must never be done outside of a new major release.\n\n\t// Set stores the key-value pair.\n\tSet(key string, value string)\n\t// DO NOT CHANGE: any modification will not be backwards compatible and\n\t// must never be done outside of a new major release.\n\n\t// Keys lists the keys stored in this carrier.\n\tKeys() []string\n\t// DO NOT CHANGE: any modification will not be backwards compatible and\n\t// must never be done outside of a new major release.\n}\n\n// MapCarrier is a TextMapCarrier that uses a map held in memory as a storage\n// medium for propagated key-value pairs.\ntype MapCarrier map[string]string\n\n// Compile time check that MapCarrier implements the TextMapCarrier.\nvar _ TextMapCarrier = MapCarrier{}\n\n// Get returns the value associated with the passed key.\nfunc (c MapCarrier) Get(key string) string {\n\treturn c[key]\n}\n\n// Set stores the key-value pair.\nfunc (c MapCarrier) Set(key, value string) {\n\tc[key] = value\n}\n\n// Keys lists the keys stored in this carrier.\nfunc (c MapCarrier) Keys() []string {\n\tkeys := make([]string, 0, len(c))\n\tfor k := range c {\n\t\tkeys = append(keys, k)\n\t}\n\treturn keys\n}\n\n// HeaderCarrier adapts http.Header to satisfy the TextMapCarrier interface.\ntype HeaderCarrier http.Header\n\n// Get returns the value associated with the passed key.\nfunc (hc HeaderCarrier) Get(key string) string {\n\treturn http.Header(hc).Get(key)\n}\n\n// Set stores the key-value pair.\nfunc (hc HeaderCarrier) Set(key string, value string) {\n\thttp.Header(hc).Set(key, value)\n}\n\n// Keys lists the keys stored in this carrier.\nfunc (hc HeaderCarrier) Keys() []string {\n\tkeys := make([]string, 0, len(hc))\n\tfor k := range hc {\n\t\tkeys = append(keys, k)\n\t}\n\treturn keys\n}\n\n// TextMapPropagator propagates cross-cutting concerns as key-value text\n// pairs within a carrier that travels in-band across process boundaries.\ntype TextMapPropagator interface {\n\t// DO NOT CHANGE: any modification will not be backwards compatible and\n\t// must never be done outside of a new major release.\n\n\t// Inject set cross-cutting concerns from the Context into the carrier.\n\tInject(ctx context.Context, carrier TextMapCarrier)\n\t// DO NOT CHANGE: any modification will not be backwards compatible and\n\t// must never be done outside of a new major release.\n\n\t// Extract reads cross-cutting concerns from the carrier into a Context.\n\tExtract(ctx context.Context, carrier TextMapCarrier) context.Context\n\t// DO NOT CHANGE: any modification will not be backwards compatible and\n\t// must never be done outside of a new major release.\n\n\t// Fields returns the keys whose values are set with Inject.\n\tFields() []string\n\t// DO NOT CHANGE: any modification will not be backwards compatible and\n\t// must never be done outside of a new major release.\n}\n\ntype compositeTextMapPropagator []TextMapPropagator\n\nfunc (p compositeTextMapPropagator) Inject(ctx context.Context, carrier TextMapCarrier) {\n\tfor _, i := range p {\n\t\ti.Inject(ctx, carrier)\n\t}\n}\n\nfunc (p compositeTextMapPropagator) Extract(ctx context.Context, carrier TextMapCarrier) context.Context {\n\tfor _, i := range p {\n\t\tctx = i.Extract(ctx, carrier)\n\t}\n\treturn ctx\n}\n\nfunc (p compositeTextMapPropagator) Fields() []string {\n\tunique := make(map[string]struct{})\n\tfor _, i := range p {\n\t\tfor _, k := range i.Fields() {\n\t\t\tunique[k] = struct{}{}\n\t\t}\n\t}\n\n\tfields := make([]string, 0, len(unique))\n\tfor k := range unique {\n\t\tfields = append(fields, k)\n\t}\n\treturn fields\n}\n\n// NewCompositeTextMapPropagator returns a unified TextMapPropagator from the\n// group of passed TextMapPropagator. This allows different cross-cutting\n// concerns to be propagates in a unified manner.\n//\n// The returned TextMapPropagator will inject and extract cross-cutting\n// concerns in the order the TextMapPropagators were provided. Additionally,\n// the Fields method will return a de-duplicated slice of the keys that are\n// set with the Inject method.\nfunc NewCompositeTextMapPropagator(p ...TextMapPropagator) TextMapPropagator {\n\treturn compositeTextMapPropagator(p)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/propagation/trace_context.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage propagation // import \"go.opentelemetry.io/otel/propagation\"\n\nimport (\n\t\"context\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"go.opentelemetry.io/otel/trace\"\n)\n\nconst (\n\tsupportedVersion  = 0\n\tmaxVersion        = 254\n\ttraceparentHeader = \"traceparent\"\n\ttracestateHeader  = \"tracestate\"\n\tdelimiter         = \"-\"\n)\n\n// TraceContext is a propagator that supports the W3C Trace Context format\n// (https://www.w3.org/TR/trace-context/)\n//\n// This propagator will propagate the traceparent and tracestate headers to\n// guarantee traces are not broken. It is up to the users of this propagator\n// to choose if they want to participate in a trace by modifying the\n// traceparent header and relevant parts of the tracestate header containing\n// their proprietary information.\ntype TraceContext struct{}\n\nvar (\n\t_           TextMapPropagator = TraceContext{}\n\tversionPart                   = fmt.Sprintf(\"%.2X\", supportedVersion)\n)\n\n// Inject injects the trace context from ctx into carrier.\nfunc (tc TraceContext) Inject(ctx context.Context, carrier TextMapCarrier) {\n\tsc := trace.SpanContextFromContext(ctx)\n\tif !sc.IsValid() {\n\t\treturn\n\t}\n\n\tif ts := sc.TraceState().String(); ts != \"\" {\n\t\tcarrier.Set(tracestateHeader, ts)\n\t}\n\n\t// Clear all flags other than the trace-context supported sampling bit.\n\tflags := sc.TraceFlags() & trace.FlagsSampled\n\n\tvar sb strings.Builder\n\tsb.Grow(2 + 32 + 16 + 2 + 3)\n\t_, _ = sb.WriteString(versionPart)\n\ttraceID := sc.TraceID()\n\tspanID := sc.SpanID()\n\tflagByte := [1]byte{byte(flags)}\n\tvar buf [32]byte\n\tfor _, src := range [][]byte{traceID[:], spanID[:], flagByte[:]} {\n\t\t_ = sb.WriteByte(delimiter[0])\n\t\tn := hex.Encode(buf[:], src)\n\t\t_, _ = sb.Write(buf[:n])\n\t}\n\tcarrier.Set(traceparentHeader, sb.String())\n}\n\n// Extract reads tracecontext from the carrier into a returned Context.\n//\n// The returned Context will be a copy of ctx and contain the extracted\n// tracecontext as the remote SpanContext. If the extracted tracecontext is\n// invalid, the passed ctx will be returned directly instead.\nfunc (tc TraceContext) Extract(ctx context.Context, carrier TextMapCarrier) context.Context {\n\tsc := tc.extract(carrier)\n\tif !sc.IsValid() {\n\t\treturn ctx\n\t}\n\treturn trace.ContextWithRemoteSpanContext(ctx, sc)\n}\n\nfunc (tc TraceContext) extract(carrier TextMapCarrier) trace.SpanContext {\n\th := carrier.Get(traceparentHeader)\n\tif h == \"\" {\n\t\treturn trace.SpanContext{}\n\t}\n\n\tvar ver [1]byte\n\tif !extractPart(ver[:], &h, 2) {\n\t\treturn trace.SpanContext{}\n\t}\n\tversion := int(ver[0])\n\tif version > maxVersion {\n\t\treturn trace.SpanContext{}\n\t}\n\n\tvar scc trace.SpanContextConfig\n\tif !extractPart(scc.TraceID[:], &h, 32) {\n\t\treturn trace.SpanContext{}\n\t}\n\tif !extractPart(scc.SpanID[:], &h, 16) {\n\t\treturn trace.SpanContext{}\n\t}\n\n\tvar opts [1]byte\n\tif !extractPart(opts[:], &h, 2) {\n\t\treturn trace.SpanContext{}\n\t}\n\tif version == 0 && (h != \"\" || opts[0] > 2) {\n\t\t// version 0 not allow extra\n\t\t// version 0 not allow other flag\n\t\treturn trace.SpanContext{}\n\t}\n\n\t// Clear all flags other than the trace-context supported sampling bit.\n\tscc.TraceFlags = trace.TraceFlags(opts[0]) & trace.FlagsSampled\n\n\t// Ignore the error returned here. Failure to parse tracestate MUST NOT\n\t// affect the parsing of traceparent according to the W3C tracecontext\n\t// specification.\n\tscc.TraceState, _ = trace.ParseTraceState(carrier.Get(tracestateHeader))\n\tscc.Remote = true\n\n\tsc := trace.NewSpanContext(scc)\n\tif !sc.IsValid() {\n\t\treturn trace.SpanContext{}\n\t}\n\n\treturn sc\n}\n\n// upperHex detect hex is upper case Unicode characters.\nfunc upperHex(v string) bool {\n\tfor _, c := range v {\n\t\tif c >= 'A' && c <= 'F' {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc extractPart(dst []byte, h *string, n int) bool {\n\tpart, left, _ := strings.Cut(*h, delimiter)\n\t*h = left\n\t// hex.Decode decodes unsupported upper-case characters, so exclude explicitly.\n\tif len(part) != n || upperHex(part) {\n\t\treturn false\n\t}\n\tif p, err := hex.Decode(dst, []byte(part)); err != nil || p != n/2 {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Fields returns the keys who's values are set with Inject.\nfunc (tc TraceContext) Fields() []string {\n\treturn []string{traceparentHeader, tracestateHeader}\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/propagation.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otel // import \"go.opentelemetry.io/otel\"\n\nimport (\n\t\"go.opentelemetry.io/otel/internal/global\"\n\t\"go.opentelemetry.io/otel/propagation\"\n)\n\n// GetTextMapPropagator returns the global TextMapPropagator. If none has been\n// set, a No-Op TextMapPropagator is returned.\nfunc GetTextMapPropagator() propagation.TextMapPropagator {\n\treturn global.TextMapPropagator()\n}\n\n// SetTextMapPropagator sets propagator as the global TextMapPropagator.\nfunc SetTextMapPropagator(propagator propagation.TextMapPropagator) {\n\tglobal.SetTextMapPropagator(propagator)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/renovate.json",
    "content": "{\n  \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\",\n  \"extends\": [\n    \"config:recommended\"\n  ],\n  \"ignorePaths\": [],\n  \"labels\": [\"Skip Changelog\", \"dependencies\"],\n  \"postUpdateOptions\" : [\n    \"gomodTidy\"\n  ],\n  \"packageRules\": [\n    {\n      \"matchManagers\": [\"gomod\"],\n      \"matchDepTypes\": [\"indirect\"],\n      \"enabled\": true\n    },\n    {\n      \"matchFileNames\": [\"internal/tools/**\"],\n      \"matchManagers\": [\"gomod\"],\n      \"matchDepTypes\": [\"indirect\"],\n      \"enabled\": false\n    }\n  ]\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/requirements.txt",
    "content": "codespell==2.3.0\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.20.0/README.md",
    "content": "# Semconv v1.20.0\n\n[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/semconv/v1.20.0)](https://pkg.go.dev/go.opentelemetry.io/otel/semconv/v1.20.0)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.20.0/attribute_group.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Code generated from semantic convention specification. DO NOT EDIT.\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n\nimport \"go.opentelemetry.io/otel/attribute\"\n\n// Describes HTTP attributes.\nconst (\n\t// HTTPMethodKey is the attribute Key conforming to the \"http.method\"\n\t// semantic conventions. It represents the hTTP request method.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'GET', 'POST', 'HEAD'\n\tHTTPMethodKey = attribute.Key(\"http.method\")\n\n\t// HTTPStatusCodeKey is the attribute Key conforming to the\n\t// \"http.status_code\" semantic conventions. It represents the [HTTP\n\t// response status code](https://tools.ietf.org/html/rfc7231#section-6).\n\t//\n\t// Type: int\n\t// RequirementLevel: ConditionallyRequired (If and only if one was\n\t// received/sent.)\n\t// Stability: stable\n\t// Examples: 200\n\tHTTPStatusCodeKey = attribute.Key(\"http.status_code\")\n)\n\n// HTTPMethod returns an attribute KeyValue conforming to the \"http.method\"\n// semantic conventions. It represents the hTTP request method.\nfunc HTTPMethod(val string) attribute.KeyValue {\n\treturn HTTPMethodKey.String(val)\n}\n\n// HTTPStatusCode returns an attribute KeyValue conforming to the\n// \"http.status_code\" semantic conventions. It represents the [HTTP response\n// status code](https://tools.ietf.org/html/rfc7231#section-6).\nfunc HTTPStatusCode(val int) attribute.KeyValue {\n\treturn HTTPStatusCodeKey.Int(val)\n}\n\n// HTTP Server spans attributes\nconst (\n\t// HTTPSchemeKey is the attribute Key conforming to the \"http.scheme\"\n\t// semantic conventions. It represents the URI scheme identifying the used\n\t// protocol.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'http', 'https'\n\tHTTPSchemeKey = attribute.Key(\"http.scheme\")\n\n\t// HTTPRouteKey is the attribute Key conforming to the \"http.route\"\n\t// semantic conventions. It represents the matched route (path template in\n\t// the format used by the respective server framework). See note below\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (If and only if it's available)\n\t// Stability: stable\n\t// Examples: '/users/:userID?', '{controller}/{action}/{id?}'\n\t// Note: MUST NOT be populated when this is not supported by the HTTP\n\t// server framework as the route attribute should have low-cardinality and\n\t// the URI path can NOT substitute it.\n\t// SHOULD include the [application\n\t// root](/specification/trace/semantic_conventions/http.md#http-server-definitions)\n\t// if there is one.\n\tHTTPRouteKey = attribute.Key(\"http.route\")\n)\n\n// HTTPScheme returns an attribute KeyValue conforming to the \"http.scheme\"\n// semantic conventions. It represents the URI scheme identifying the used\n// protocol.\nfunc HTTPScheme(val string) attribute.KeyValue {\n\treturn HTTPSchemeKey.String(val)\n}\n\n// HTTPRoute returns an attribute KeyValue conforming to the \"http.route\"\n// semantic conventions. It represents the matched route (path template in the\n// format used by the respective server framework). See note below\nfunc HTTPRoute(val string) attribute.KeyValue {\n\treturn HTTPRouteKey.String(val)\n}\n\n// Attributes for Events represented using Log Records.\nconst (\n\t// EventNameKey is the attribute Key conforming to the \"event.name\"\n\t// semantic conventions. It represents the name identifies the event.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'click', 'exception'\n\tEventNameKey = attribute.Key(\"event.name\")\n\n\t// EventDomainKey is the attribute Key conforming to the \"event.domain\"\n\t// semantic conventions. It represents the domain identifies the business\n\t// context for the events.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Note: Events across different domains may have same `event.name`, yet be\n\t// unrelated events.\n\tEventDomainKey = attribute.Key(\"event.domain\")\n)\n\nvar (\n\t// Events from browser apps\n\tEventDomainBrowser = EventDomainKey.String(\"browser\")\n\t// Events from mobile apps\n\tEventDomainDevice = EventDomainKey.String(\"device\")\n\t// Events from Kubernetes\n\tEventDomainK8S = EventDomainKey.String(\"k8s\")\n)\n\n// EventName returns an attribute KeyValue conforming to the \"event.name\"\n// semantic conventions. It represents the name identifies the event.\nfunc EventName(val string) attribute.KeyValue {\n\treturn EventNameKey.String(val)\n}\n\n// These attributes may be used for any network related operation.\nconst (\n\t// NetTransportKey is the attribute Key conforming to the \"net.transport\"\n\t// semantic conventions. It represents the transport protocol used. See\n\t// note below.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tNetTransportKey = attribute.Key(\"net.transport\")\n\n\t// NetProtocolNameKey is the attribute Key conforming to the\n\t// \"net.protocol.name\" semantic conventions. It represents the application\n\t// layer protocol used. The value SHOULD be normalized to lowercase.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'amqp', 'http', 'mqtt'\n\tNetProtocolNameKey = attribute.Key(\"net.protocol.name\")\n\n\t// NetProtocolVersionKey is the attribute Key conforming to the\n\t// \"net.protocol.version\" semantic conventions. It represents the version\n\t// of the application layer protocol used. See note below.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '3.1.1'\n\t// Note: `net.protocol.version` refers to the version of the protocol used\n\t// and might be different from the protocol client's version. If the HTTP\n\t// client used has a version of `0.27.2`, but sends HTTP version `1.1`,\n\t// this attribute should be set to `1.1`.\n\tNetProtocolVersionKey = attribute.Key(\"net.protocol.version\")\n\n\t// NetSockPeerNameKey is the attribute Key conforming to the\n\t// \"net.sock.peer.name\" semantic conventions. It represents the remote\n\t// socket peer name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended (If available and different from\n\t// `net.peer.name` and if `net.sock.peer.addr` is set.)\n\t// Stability: stable\n\t// Examples: 'proxy.example.com'\n\tNetSockPeerNameKey = attribute.Key(\"net.sock.peer.name\")\n\n\t// NetSockPeerAddrKey is the attribute Key conforming to the\n\t// \"net.sock.peer.addr\" semantic conventions. It represents the remote\n\t// socket peer address: IPv4 or IPv6 for internet protocols, path for local\n\t// communication,\n\t// [etc](https://man7.org/linux/man-pages/man7/address_families.7.html).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '127.0.0.1', '/tmp/mysql.sock'\n\tNetSockPeerAddrKey = attribute.Key(\"net.sock.peer.addr\")\n\n\t// NetSockPeerPortKey is the attribute Key conforming to the\n\t// \"net.sock.peer.port\" semantic conventions. It represents the remote\n\t// socket peer port.\n\t//\n\t// Type: int\n\t// RequirementLevel: Recommended (If defined for the address family and if\n\t// different than `net.peer.port` and if `net.sock.peer.addr` is set.)\n\t// Stability: stable\n\t// Examples: 16456\n\tNetSockPeerPortKey = attribute.Key(\"net.sock.peer.port\")\n\n\t// NetSockFamilyKey is the attribute Key conforming to the\n\t// \"net.sock.family\" semantic conventions. It represents the protocol\n\t// [address\n\t// family](https://man7.org/linux/man-pages/man7/address_families.7.html)\n\t// which is used for communication.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: ConditionallyRequired (If different than `inet` and if\n\t// any of `net.sock.peer.addr` or `net.sock.host.addr` are set. Consumers\n\t// of telemetry SHOULD accept both IPv4 and IPv6 formats for the address in\n\t// `net.sock.peer.addr` if `net.sock.family` is not set. This is to support\n\t// instrumentations that follow previous versions of this document.)\n\t// Stability: stable\n\t// Examples: 'inet6', 'bluetooth'\n\tNetSockFamilyKey = attribute.Key(\"net.sock.family\")\n\n\t// NetPeerNameKey is the attribute Key conforming to the \"net.peer.name\"\n\t// semantic conventions. It represents the logical remote hostname, see\n\t// note below.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'example.com'\n\t// Note: `net.peer.name` SHOULD NOT be set if capturing it would require an\n\t// extra DNS lookup.\n\tNetPeerNameKey = attribute.Key(\"net.peer.name\")\n\n\t// NetPeerPortKey is the attribute Key conforming to the \"net.peer.port\"\n\t// semantic conventions. It represents the logical remote port number\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 80, 8080, 443\n\tNetPeerPortKey = attribute.Key(\"net.peer.port\")\n\n\t// NetHostNameKey is the attribute Key conforming to the \"net.host.name\"\n\t// semantic conventions. It represents the logical local hostname or\n\t// similar, see note below.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'localhost'\n\tNetHostNameKey = attribute.Key(\"net.host.name\")\n\n\t// NetHostPortKey is the attribute Key conforming to the \"net.host.port\"\n\t// semantic conventions. It represents the logical local port number,\n\t// preferably the one that the peer used to connect\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 8080\n\tNetHostPortKey = attribute.Key(\"net.host.port\")\n\n\t// NetSockHostAddrKey is the attribute Key conforming to the\n\t// \"net.sock.host.addr\" semantic conventions. It represents the local\n\t// socket address. Useful in case of a multi-IP host.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '192.168.0.1'\n\tNetSockHostAddrKey = attribute.Key(\"net.sock.host.addr\")\n\n\t// NetSockHostPortKey is the attribute Key conforming to the\n\t// \"net.sock.host.port\" semantic conventions. It represents the local\n\t// socket port number.\n\t//\n\t// Type: int\n\t// RequirementLevel: ConditionallyRequired (If defined for the address\n\t// family and if different than `net.host.port` and if `net.sock.host.addr`\n\t// is set. In other cases, it is still recommended to set this.)\n\t// Stability: stable\n\t// Examples: 35555\n\tNetSockHostPortKey = attribute.Key(\"net.sock.host.port\")\n)\n\nvar (\n\t// ip_tcp\n\tNetTransportTCP = NetTransportKey.String(\"ip_tcp\")\n\t// ip_udp\n\tNetTransportUDP = NetTransportKey.String(\"ip_udp\")\n\t// Named or anonymous pipe. See note below\n\tNetTransportPipe = NetTransportKey.String(\"pipe\")\n\t// In-process communication\n\tNetTransportInProc = NetTransportKey.String(\"inproc\")\n\t// Something else (non IP-based)\n\tNetTransportOther = NetTransportKey.String(\"other\")\n)\n\nvar (\n\t// IPv4 address\n\tNetSockFamilyInet = NetSockFamilyKey.String(\"inet\")\n\t// IPv6 address\n\tNetSockFamilyInet6 = NetSockFamilyKey.String(\"inet6\")\n\t// Unix domain socket path\n\tNetSockFamilyUnix = NetSockFamilyKey.String(\"unix\")\n)\n\n// NetProtocolName returns an attribute KeyValue conforming to the\n// \"net.protocol.name\" semantic conventions. It represents the application\n// layer protocol used. The value SHOULD be normalized to lowercase.\nfunc NetProtocolName(val string) attribute.KeyValue {\n\treturn NetProtocolNameKey.String(val)\n}\n\n// NetProtocolVersion returns an attribute KeyValue conforming to the\n// \"net.protocol.version\" semantic conventions. It represents the version of\n// the application layer protocol used. See note below.\nfunc NetProtocolVersion(val string) attribute.KeyValue {\n\treturn NetProtocolVersionKey.String(val)\n}\n\n// NetSockPeerName returns an attribute KeyValue conforming to the\n// \"net.sock.peer.name\" semantic conventions. It represents the remote socket\n// peer name.\nfunc NetSockPeerName(val string) attribute.KeyValue {\n\treturn NetSockPeerNameKey.String(val)\n}\n\n// NetSockPeerAddr returns an attribute KeyValue conforming to the\n// \"net.sock.peer.addr\" semantic conventions. It represents the remote socket\n// peer address: IPv4 or IPv6 for internet protocols, path for local\n// communication,\n// [etc](https://man7.org/linux/man-pages/man7/address_families.7.html).\nfunc NetSockPeerAddr(val string) attribute.KeyValue {\n\treturn NetSockPeerAddrKey.String(val)\n}\n\n// NetSockPeerPort returns an attribute KeyValue conforming to the\n// \"net.sock.peer.port\" semantic conventions. It represents the remote socket\n// peer port.\nfunc NetSockPeerPort(val int) attribute.KeyValue {\n\treturn NetSockPeerPortKey.Int(val)\n}\n\n// NetPeerName returns an attribute KeyValue conforming to the\n// \"net.peer.name\" semantic conventions. It represents the logical remote\n// hostname, see note below.\nfunc NetPeerName(val string) attribute.KeyValue {\n\treturn NetPeerNameKey.String(val)\n}\n\n// NetPeerPort returns an attribute KeyValue conforming to the\n// \"net.peer.port\" semantic conventions. It represents the logical remote port\n// number\nfunc NetPeerPort(val int) attribute.KeyValue {\n\treturn NetPeerPortKey.Int(val)\n}\n\n// NetHostName returns an attribute KeyValue conforming to the\n// \"net.host.name\" semantic conventions. It represents the logical local\n// hostname or similar, see note below.\nfunc NetHostName(val string) attribute.KeyValue {\n\treturn NetHostNameKey.String(val)\n}\n\n// NetHostPort returns an attribute KeyValue conforming to the\n// \"net.host.port\" semantic conventions. It represents the logical local port\n// number, preferably the one that the peer used to connect\nfunc NetHostPort(val int) attribute.KeyValue {\n\treturn NetHostPortKey.Int(val)\n}\n\n// NetSockHostAddr returns an attribute KeyValue conforming to the\n// \"net.sock.host.addr\" semantic conventions. It represents the local socket\n// address. Useful in case of a multi-IP host.\nfunc NetSockHostAddr(val string) attribute.KeyValue {\n\treturn NetSockHostAddrKey.String(val)\n}\n\n// NetSockHostPort returns an attribute KeyValue conforming to the\n// \"net.sock.host.port\" semantic conventions. It represents the local socket\n// port number.\nfunc NetSockHostPort(val int) attribute.KeyValue {\n\treturn NetSockHostPortKey.Int(val)\n}\n\n// These attributes may be used for any network related operation.\nconst (\n\t// NetHostConnectionTypeKey is the attribute Key conforming to the\n\t// \"net.host.connection.type\" semantic conventions. It represents the\n\t// internet connection type currently being used by the host.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'wifi'\n\tNetHostConnectionTypeKey = attribute.Key(\"net.host.connection.type\")\n\n\t// NetHostConnectionSubtypeKey is the attribute Key conforming to the\n\t// \"net.host.connection.subtype\" semantic conventions. It represents the\n\t// this describes more details regarding the connection.type. It may be the\n\t// type of cell technology connection, but it could be used for describing\n\t// details about a wifi connection.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'LTE'\n\tNetHostConnectionSubtypeKey = attribute.Key(\"net.host.connection.subtype\")\n\n\t// NetHostCarrierNameKey is the attribute Key conforming to the\n\t// \"net.host.carrier.name\" semantic conventions. It represents the name of\n\t// the mobile carrier.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'sprint'\n\tNetHostCarrierNameKey = attribute.Key(\"net.host.carrier.name\")\n\n\t// NetHostCarrierMccKey is the attribute Key conforming to the\n\t// \"net.host.carrier.mcc\" semantic conventions. It represents the mobile\n\t// carrier country code.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '310'\n\tNetHostCarrierMccKey = attribute.Key(\"net.host.carrier.mcc\")\n\n\t// NetHostCarrierMncKey is the attribute Key conforming to the\n\t// \"net.host.carrier.mnc\" semantic conventions. It represents the mobile\n\t// carrier network code.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '001'\n\tNetHostCarrierMncKey = attribute.Key(\"net.host.carrier.mnc\")\n\n\t// NetHostCarrierIccKey is the attribute Key conforming to the\n\t// \"net.host.carrier.icc\" semantic conventions. It represents the ISO\n\t// 3166-1 alpha-2 2-character country code associated with the mobile\n\t// carrier network.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'DE'\n\tNetHostCarrierIccKey = attribute.Key(\"net.host.carrier.icc\")\n)\n\nvar (\n\t// wifi\n\tNetHostConnectionTypeWifi = NetHostConnectionTypeKey.String(\"wifi\")\n\t// wired\n\tNetHostConnectionTypeWired = NetHostConnectionTypeKey.String(\"wired\")\n\t// cell\n\tNetHostConnectionTypeCell = NetHostConnectionTypeKey.String(\"cell\")\n\t// unavailable\n\tNetHostConnectionTypeUnavailable = NetHostConnectionTypeKey.String(\"unavailable\")\n\t// unknown\n\tNetHostConnectionTypeUnknown = NetHostConnectionTypeKey.String(\"unknown\")\n)\n\nvar (\n\t// GPRS\n\tNetHostConnectionSubtypeGprs = NetHostConnectionSubtypeKey.String(\"gprs\")\n\t// EDGE\n\tNetHostConnectionSubtypeEdge = NetHostConnectionSubtypeKey.String(\"edge\")\n\t// UMTS\n\tNetHostConnectionSubtypeUmts = NetHostConnectionSubtypeKey.String(\"umts\")\n\t// CDMA\n\tNetHostConnectionSubtypeCdma = NetHostConnectionSubtypeKey.String(\"cdma\")\n\t// EVDO Rel. 0\n\tNetHostConnectionSubtypeEvdo0 = NetHostConnectionSubtypeKey.String(\"evdo_0\")\n\t// EVDO Rev. A\n\tNetHostConnectionSubtypeEvdoA = NetHostConnectionSubtypeKey.String(\"evdo_a\")\n\t// CDMA2000 1XRTT\n\tNetHostConnectionSubtypeCdma20001xrtt = NetHostConnectionSubtypeKey.String(\"cdma2000_1xrtt\")\n\t// HSDPA\n\tNetHostConnectionSubtypeHsdpa = NetHostConnectionSubtypeKey.String(\"hsdpa\")\n\t// HSUPA\n\tNetHostConnectionSubtypeHsupa = NetHostConnectionSubtypeKey.String(\"hsupa\")\n\t// HSPA\n\tNetHostConnectionSubtypeHspa = NetHostConnectionSubtypeKey.String(\"hspa\")\n\t// IDEN\n\tNetHostConnectionSubtypeIden = NetHostConnectionSubtypeKey.String(\"iden\")\n\t// EVDO Rev. B\n\tNetHostConnectionSubtypeEvdoB = NetHostConnectionSubtypeKey.String(\"evdo_b\")\n\t// LTE\n\tNetHostConnectionSubtypeLte = NetHostConnectionSubtypeKey.String(\"lte\")\n\t// EHRPD\n\tNetHostConnectionSubtypeEhrpd = NetHostConnectionSubtypeKey.String(\"ehrpd\")\n\t// HSPAP\n\tNetHostConnectionSubtypeHspap = NetHostConnectionSubtypeKey.String(\"hspap\")\n\t// GSM\n\tNetHostConnectionSubtypeGsm = NetHostConnectionSubtypeKey.String(\"gsm\")\n\t// TD-SCDMA\n\tNetHostConnectionSubtypeTdScdma = NetHostConnectionSubtypeKey.String(\"td_scdma\")\n\t// IWLAN\n\tNetHostConnectionSubtypeIwlan = NetHostConnectionSubtypeKey.String(\"iwlan\")\n\t// 5G NR (New Radio)\n\tNetHostConnectionSubtypeNr = NetHostConnectionSubtypeKey.String(\"nr\")\n\t// 5G NRNSA (New Radio Non-Standalone)\n\tNetHostConnectionSubtypeNrnsa = NetHostConnectionSubtypeKey.String(\"nrnsa\")\n\t// LTE CA\n\tNetHostConnectionSubtypeLteCa = NetHostConnectionSubtypeKey.String(\"lte_ca\")\n)\n\n// NetHostCarrierName returns an attribute KeyValue conforming to the\n// \"net.host.carrier.name\" semantic conventions. It represents the name of the\n// mobile carrier.\nfunc NetHostCarrierName(val string) attribute.KeyValue {\n\treturn NetHostCarrierNameKey.String(val)\n}\n\n// NetHostCarrierMcc returns an attribute KeyValue conforming to the\n// \"net.host.carrier.mcc\" semantic conventions. It represents the mobile\n// carrier country code.\nfunc NetHostCarrierMcc(val string) attribute.KeyValue {\n\treturn NetHostCarrierMccKey.String(val)\n}\n\n// NetHostCarrierMnc returns an attribute KeyValue conforming to the\n// \"net.host.carrier.mnc\" semantic conventions. It represents the mobile\n// carrier network code.\nfunc NetHostCarrierMnc(val string) attribute.KeyValue {\n\treturn NetHostCarrierMncKey.String(val)\n}\n\n// NetHostCarrierIcc returns an attribute KeyValue conforming to the\n// \"net.host.carrier.icc\" semantic conventions. It represents the ISO 3166-1\n// alpha-2 2-character country code associated with the mobile carrier network.\nfunc NetHostCarrierIcc(val string) attribute.KeyValue {\n\treturn NetHostCarrierIccKey.String(val)\n}\n\n// Semantic conventions for HTTP client and server Spans.\nconst (\n\t// HTTPRequestContentLengthKey is the attribute Key conforming to the\n\t// \"http.request_content_length\" semantic conventions. It represents the\n\t// size of the request payload body in bytes. This is the number of bytes\n\t// transferred excluding headers and is often, but not always, present as\n\t// the\n\t// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)\n\t// header. For requests using transport encoding, this should be the\n\t// compressed size.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 3495\n\tHTTPRequestContentLengthKey = attribute.Key(\"http.request_content_length\")\n\n\t// HTTPResponseContentLengthKey is the attribute Key conforming to the\n\t// \"http.response_content_length\" semantic conventions. It represents the\n\t// size of the response payload body in bytes. This is the number of bytes\n\t// transferred excluding headers and is often, but not always, present as\n\t// the\n\t// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)\n\t// header. For requests using transport encoding, this should be the\n\t// compressed size.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 3495\n\tHTTPResponseContentLengthKey = attribute.Key(\"http.response_content_length\")\n)\n\n// HTTPRequestContentLength returns an attribute KeyValue conforming to the\n// \"http.request_content_length\" semantic conventions. It represents the size\n// of the request payload body in bytes. This is the number of bytes\n// transferred excluding headers and is often, but not always, present as the\n// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)\n// header. For requests using transport encoding, this should be the compressed\n// size.\nfunc HTTPRequestContentLength(val int) attribute.KeyValue {\n\treturn HTTPRequestContentLengthKey.Int(val)\n}\n\n// HTTPResponseContentLength returns an attribute KeyValue conforming to the\n// \"http.response_content_length\" semantic conventions. It represents the size\n// of the response payload body in bytes. This is the number of bytes\n// transferred excluding headers and is often, but not always, present as the\n// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)\n// header. For requests using transport encoding, this should be the compressed\n// size.\nfunc HTTPResponseContentLength(val int) attribute.KeyValue {\n\treturn HTTPResponseContentLengthKey.Int(val)\n}\n\n// Semantic convention describing per-message attributes populated on messaging\n// spans or links.\nconst (\n\t// MessagingMessageIDKey is the attribute Key conforming to the\n\t// \"messaging.message.id\" semantic conventions. It represents a value used\n\t// by the messaging system as an identifier for the message, represented as\n\t// a string.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '452a7c7c7c7048c2f887f61572b18fc2'\n\tMessagingMessageIDKey = attribute.Key(\"messaging.message.id\")\n\n\t// MessagingMessageConversationIDKey is the attribute Key conforming to the\n\t// \"messaging.message.conversation_id\" semantic conventions. It represents\n\t// the [conversation ID](#conversations) identifying the conversation to\n\t// which the message belongs, represented as a string. Sometimes called\n\t// \"Correlation ID\".\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'MyConversationID'\n\tMessagingMessageConversationIDKey = attribute.Key(\"messaging.message.conversation_id\")\n\n\t// MessagingMessagePayloadSizeBytesKey is the attribute Key conforming to\n\t// the \"messaging.message.payload_size_bytes\" semantic conventions. It\n\t// represents the (uncompressed) size of the message payload in bytes. Also\n\t// use this attribute if it is unknown whether the compressed or\n\t// uncompressed payload size is reported.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 2738\n\tMessagingMessagePayloadSizeBytesKey = attribute.Key(\"messaging.message.payload_size_bytes\")\n\n\t// MessagingMessagePayloadCompressedSizeBytesKey is the attribute Key\n\t// conforming to the \"messaging.message.payload_compressed_size_bytes\"\n\t// semantic conventions. It represents the compressed size of the message\n\t// payload in bytes.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 2048\n\tMessagingMessagePayloadCompressedSizeBytesKey = attribute.Key(\"messaging.message.payload_compressed_size_bytes\")\n)\n\n// MessagingMessageID returns an attribute KeyValue conforming to the\n// \"messaging.message.id\" semantic conventions. It represents a value used by\n// the messaging system as an identifier for the message, represented as a\n// string.\nfunc MessagingMessageID(val string) attribute.KeyValue {\n\treturn MessagingMessageIDKey.String(val)\n}\n\n// MessagingMessageConversationID returns an attribute KeyValue conforming\n// to the \"messaging.message.conversation_id\" semantic conventions. It\n// represents the [conversation ID](#conversations) identifying the\n// conversation to which the message belongs, represented as a string.\n// Sometimes called \"Correlation ID\".\nfunc MessagingMessageConversationID(val string) attribute.KeyValue {\n\treturn MessagingMessageConversationIDKey.String(val)\n}\n\n// MessagingMessagePayloadSizeBytes returns an attribute KeyValue conforming\n// to the \"messaging.message.payload_size_bytes\" semantic conventions. It\n// represents the (uncompressed) size of the message payload in bytes. Also use\n// this attribute if it is unknown whether the compressed or uncompressed\n// payload size is reported.\nfunc MessagingMessagePayloadSizeBytes(val int) attribute.KeyValue {\n\treturn MessagingMessagePayloadSizeBytesKey.Int(val)\n}\n\n// MessagingMessagePayloadCompressedSizeBytes returns an attribute KeyValue\n// conforming to the \"messaging.message.payload_compressed_size_bytes\" semantic\n// conventions. It represents the compressed size of the message payload in\n// bytes.\nfunc MessagingMessagePayloadCompressedSizeBytes(val int) attribute.KeyValue {\n\treturn MessagingMessagePayloadCompressedSizeBytesKey.Int(val)\n}\n\n// Semantic convention for attributes that describe messaging destination on\n// broker\nconst (\n\t// MessagingDestinationNameKey is the attribute Key conforming to the\n\t// \"messaging.destination.name\" semantic conventions. It represents the\n\t// message destination name\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'MyQueue', 'MyTopic'\n\t// Note: Destination name SHOULD uniquely identify a specific queue, topic\n\t// or other entity within the broker. If\n\t// the broker does not have such notion, the destination name SHOULD\n\t// uniquely identify the broker.\n\tMessagingDestinationNameKey = attribute.Key(\"messaging.destination.name\")\n\n\t// MessagingDestinationTemplateKey is the attribute Key conforming to the\n\t// \"messaging.destination.template\" semantic conventions. It represents the\n\t// low cardinality representation of the messaging destination name\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '/customers/{customerID}'\n\t// Note: Destination names could be constructed from templates. An example\n\t// would be a destination name involving a user name or product id.\n\t// Although the destination name in this case is of high cardinality, the\n\t// underlying template is of low cardinality and can be effectively used\n\t// for grouping and aggregation.\n\tMessagingDestinationTemplateKey = attribute.Key(\"messaging.destination.template\")\n\n\t// MessagingDestinationTemporaryKey is the attribute Key conforming to the\n\t// \"messaging.destination.temporary\" semantic conventions. It represents a\n\t// boolean that is true if the message destination is temporary and might\n\t// not exist anymore after messages are processed.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tMessagingDestinationTemporaryKey = attribute.Key(\"messaging.destination.temporary\")\n\n\t// MessagingDestinationAnonymousKey is the attribute Key conforming to the\n\t// \"messaging.destination.anonymous\" semantic conventions. It represents a\n\t// boolean that is true if the message destination is anonymous (could be\n\t// unnamed or have auto-generated name).\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tMessagingDestinationAnonymousKey = attribute.Key(\"messaging.destination.anonymous\")\n)\n\n// MessagingDestinationName returns an attribute KeyValue conforming to the\n// \"messaging.destination.name\" semantic conventions. It represents the message\n// destination name\nfunc MessagingDestinationName(val string) attribute.KeyValue {\n\treturn MessagingDestinationNameKey.String(val)\n}\n\n// MessagingDestinationTemplate returns an attribute KeyValue conforming to\n// the \"messaging.destination.template\" semantic conventions. It represents the\n// low cardinality representation of the messaging destination name\nfunc MessagingDestinationTemplate(val string) attribute.KeyValue {\n\treturn MessagingDestinationTemplateKey.String(val)\n}\n\n// MessagingDestinationTemporary returns an attribute KeyValue conforming to\n// the \"messaging.destination.temporary\" semantic conventions. It represents a\n// boolean that is true if the message destination is temporary and might not\n// exist anymore after messages are processed.\nfunc MessagingDestinationTemporary(val bool) attribute.KeyValue {\n\treturn MessagingDestinationTemporaryKey.Bool(val)\n}\n\n// MessagingDestinationAnonymous returns an attribute KeyValue conforming to\n// the \"messaging.destination.anonymous\" semantic conventions. It represents a\n// boolean that is true if the message destination is anonymous (could be\n// unnamed or have auto-generated name).\nfunc MessagingDestinationAnonymous(val bool) attribute.KeyValue {\n\treturn MessagingDestinationAnonymousKey.Bool(val)\n}\n\n// Semantic convention for attributes that describe messaging source on broker\nconst (\n\t// MessagingSourceNameKey is the attribute Key conforming to the\n\t// \"messaging.source.name\" semantic conventions. It represents the message\n\t// source name\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'MyQueue', 'MyTopic'\n\t// Note: Source name SHOULD uniquely identify a specific queue, topic, or\n\t// other entity within the broker. If\n\t// the broker does not have such notion, the source name SHOULD uniquely\n\t// identify the broker.\n\tMessagingSourceNameKey = attribute.Key(\"messaging.source.name\")\n\n\t// MessagingSourceTemplateKey is the attribute Key conforming to the\n\t// \"messaging.source.template\" semantic conventions. It represents the low\n\t// cardinality representation of the messaging source name\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '/customers/{customerID}'\n\t// Note: Source names could be constructed from templates. An example would\n\t// be a source name involving a user name or product id. Although the\n\t// source name in this case is of high cardinality, the underlying template\n\t// is of low cardinality and can be effectively used for grouping and\n\t// aggregation.\n\tMessagingSourceTemplateKey = attribute.Key(\"messaging.source.template\")\n\n\t// MessagingSourceTemporaryKey is the attribute Key conforming to the\n\t// \"messaging.source.temporary\" semantic conventions. It represents a\n\t// boolean that is true if the message source is temporary and might not\n\t// exist anymore after messages are processed.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tMessagingSourceTemporaryKey = attribute.Key(\"messaging.source.temporary\")\n\n\t// MessagingSourceAnonymousKey is the attribute Key conforming to the\n\t// \"messaging.source.anonymous\" semantic conventions. It represents a\n\t// boolean that is true if the message source is anonymous (could be\n\t// unnamed or have auto-generated name).\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tMessagingSourceAnonymousKey = attribute.Key(\"messaging.source.anonymous\")\n)\n\n// MessagingSourceName returns an attribute KeyValue conforming to the\n// \"messaging.source.name\" semantic conventions. It represents the message\n// source name\nfunc MessagingSourceName(val string) attribute.KeyValue {\n\treturn MessagingSourceNameKey.String(val)\n}\n\n// MessagingSourceTemplate returns an attribute KeyValue conforming to the\n// \"messaging.source.template\" semantic conventions. It represents the low\n// cardinality representation of the messaging source name\nfunc MessagingSourceTemplate(val string) attribute.KeyValue {\n\treturn MessagingSourceTemplateKey.String(val)\n}\n\n// MessagingSourceTemporary returns an attribute KeyValue conforming to the\n// \"messaging.source.temporary\" semantic conventions. It represents a boolean\n// that is true if the message source is temporary and might not exist anymore\n// after messages are processed.\nfunc MessagingSourceTemporary(val bool) attribute.KeyValue {\n\treturn MessagingSourceTemporaryKey.Bool(val)\n}\n\n// MessagingSourceAnonymous returns an attribute KeyValue conforming to the\n// \"messaging.source.anonymous\" semantic conventions. It represents a boolean\n// that is true if the message source is anonymous (could be unnamed or have\n// auto-generated name).\nfunc MessagingSourceAnonymous(val bool) attribute.KeyValue {\n\treturn MessagingSourceAnonymousKey.Bool(val)\n}\n\n// Attributes for RabbitMQ\nconst (\n\t// MessagingRabbitmqDestinationRoutingKeyKey is the attribute Key\n\t// conforming to the \"messaging.rabbitmq.destination.routing_key\" semantic\n\t// conventions. It represents the rabbitMQ message routing key.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (If not empty.)\n\t// Stability: stable\n\t// Examples: 'myKey'\n\tMessagingRabbitmqDestinationRoutingKeyKey = attribute.Key(\"messaging.rabbitmq.destination.routing_key\")\n)\n\n// MessagingRabbitmqDestinationRoutingKey returns an attribute KeyValue\n// conforming to the \"messaging.rabbitmq.destination.routing_key\" semantic\n// conventions. It represents the rabbitMQ message routing key.\nfunc MessagingRabbitmqDestinationRoutingKey(val string) attribute.KeyValue {\n\treturn MessagingRabbitmqDestinationRoutingKeyKey.String(val)\n}\n\n// Attributes for Apache Kafka\nconst (\n\t// MessagingKafkaMessageKeyKey is the attribute Key conforming to the\n\t// \"messaging.kafka.message.key\" semantic conventions. It represents the\n\t// message keys in Kafka are used for grouping alike messages to ensure\n\t// they're processed on the same partition. They differ from\n\t// `messaging.message.id` in that they're not unique. If the key is `null`,\n\t// the attribute MUST NOT be set.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'myKey'\n\t// Note: If the key type is not string, it's string representation has to\n\t// be supplied for the attribute. If the key has no unambiguous, canonical\n\t// string form, don't include its value.\n\tMessagingKafkaMessageKeyKey = attribute.Key(\"messaging.kafka.message.key\")\n\n\t// MessagingKafkaConsumerGroupKey is the attribute Key conforming to the\n\t// \"messaging.kafka.consumer.group\" semantic conventions. It represents the\n\t// name of the Kafka Consumer Group that is handling the message. Only\n\t// applies to consumers, not producers.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'my-group'\n\tMessagingKafkaConsumerGroupKey = attribute.Key(\"messaging.kafka.consumer.group\")\n\n\t// MessagingKafkaClientIDKey is the attribute Key conforming to the\n\t// \"messaging.kafka.client_id\" semantic conventions. It represents the\n\t// client ID for the Consumer or Producer that is handling the message.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'client-5'\n\tMessagingKafkaClientIDKey = attribute.Key(\"messaging.kafka.client_id\")\n\n\t// MessagingKafkaDestinationPartitionKey is the attribute Key conforming to\n\t// the \"messaging.kafka.destination.partition\" semantic conventions. It\n\t// represents the partition the message is sent to.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 2\n\tMessagingKafkaDestinationPartitionKey = attribute.Key(\"messaging.kafka.destination.partition\")\n\n\t// MessagingKafkaSourcePartitionKey is the attribute Key conforming to the\n\t// \"messaging.kafka.source.partition\" semantic conventions. It represents\n\t// the partition the message is received from.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 2\n\tMessagingKafkaSourcePartitionKey = attribute.Key(\"messaging.kafka.source.partition\")\n\n\t// MessagingKafkaMessageOffsetKey is the attribute Key conforming to the\n\t// \"messaging.kafka.message.offset\" semantic conventions. It represents the\n\t// offset of a record in the corresponding Kafka partition.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 42\n\tMessagingKafkaMessageOffsetKey = attribute.Key(\"messaging.kafka.message.offset\")\n\n\t// MessagingKafkaMessageTombstoneKey is the attribute Key conforming to the\n\t// \"messaging.kafka.message.tombstone\" semantic conventions. It represents\n\t// a boolean that is true if the message is a tombstone.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: ConditionallyRequired (If value is `true`. When\n\t// missing, the value is assumed to be `false`.)\n\t// Stability: stable\n\tMessagingKafkaMessageTombstoneKey = attribute.Key(\"messaging.kafka.message.tombstone\")\n)\n\n// MessagingKafkaMessageKey returns an attribute KeyValue conforming to the\n// \"messaging.kafka.message.key\" semantic conventions. It represents the\n// message keys in Kafka are used for grouping alike messages to ensure they're\n// processed on the same partition. They differ from `messaging.message.id` in\n// that they're not unique. If the key is `null`, the attribute MUST NOT be\n// set.\nfunc MessagingKafkaMessageKey(val string) attribute.KeyValue {\n\treturn MessagingKafkaMessageKeyKey.String(val)\n}\n\n// MessagingKafkaConsumerGroup returns an attribute KeyValue conforming to\n// the \"messaging.kafka.consumer.group\" semantic conventions. It represents the\n// name of the Kafka Consumer Group that is handling the message. Only applies\n// to consumers, not producers.\nfunc MessagingKafkaConsumerGroup(val string) attribute.KeyValue {\n\treturn MessagingKafkaConsumerGroupKey.String(val)\n}\n\n// MessagingKafkaClientID returns an attribute KeyValue conforming to the\n// \"messaging.kafka.client_id\" semantic conventions. It represents the client\n// ID for the Consumer or Producer that is handling the message.\nfunc MessagingKafkaClientID(val string) attribute.KeyValue {\n\treturn MessagingKafkaClientIDKey.String(val)\n}\n\n// MessagingKafkaDestinationPartition returns an attribute KeyValue\n// conforming to the \"messaging.kafka.destination.partition\" semantic\n// conventions. It represents the partition the message is sent to.\nfunc MessagingKafkaDestinationPartition(val int) attribute.KeyValue {\n\treturn MessagingKafkaDestinationPartitionKey.Int(val)\n}\n\n// MessagingKafkaSourcePartition returns an attribute KeyValue conforming to\n// the \"messaging.kafka.source.partition\" semantic conventions. It represents\n// the partition the message is received from.\nfunc MessagingKafkaSourcePartition(val int) attribute.KeyValue {\n\treturn MessagingKafkaSourcePartitionKey.Int(val)\n}\n\n// MessagingKafkaMessageOffset returns an attribute KeyValue conforming to\n// the \"messaging.kafka.message.offset\" semantic conventions. It represents the\n// offset of a record in the corresponding Kafka partition.\nfunc MessagingKafkaMessageOffset(val int) attribute.KeyValue {\n\treturn MessagingKafkaMessageOffsetKey.Int(val)\n}\n\n// MessagingKafkaMessageTombstone returns an attribute KeyValue conforming\n// to the \"messaging.kafka.message.tombstone\" semantic conventions. It\n// represents a boolean that is true if the message is a tombstone.\nfunc MessagingKafkaMessageTombstone(val bool) attribute.KeyValue {\n\treturn MessagingKafkaMessageTombstoneKey.Bool(val)\n}\n\n// Attributes for Apache RocketMQ\nconst (\n\t// MessagingRocketmqNamespaceKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.namespace\" semantic conventions. It represents the\n\t// namespace of RocketMQ resources, resources in different namespaces are\n\t// individual.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'myNamespace'\n\tMessagingRocketmqNamespaceKey = attribute.Key(\"messaging.rocketmq.namespace\")\n\n\t// MessagingRocketmqClientGroupKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.client_group\" semantic conventions. It represents\n\t// the name of the RocketMQ producer/consumer group that is handling the\n\t// message. The client type is identified by the SpanKind.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'myConsumerGroup'\n\tMessagingRocketmqClientGroupKey = attribute.Key(\"messaging.rocketmq.client_group\")\n\n\t// MessagingRocketmqClientIDKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.client_id\" semantic conventions. It represents the\n\t// unique identifier for each client.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'myhost@8742@s8083jm'\n\tMessagingRocketmqClientIDKey = attribute.Key(\"messaging.rocketmq.client_id\")\n\n\t// MessagingRocketmqMessageDeliveryTimestampKey is the attribute Key\n\t// conforming to the \"messaging.rocketmq.message.delivery_timestamp\"\n\t// semantic conventions. It represents the timestamp in milliseconds that\n\t// the delay message is expected to be delivered to consumer.\n\t//\n\t// Type: int\n\t// RequirementLevel: ConditionallyRequired (If the message type is delay\n\t// and delay time level is not specified.)\n\t// Stability: stable\n\t// Examples: 1665987217045\n\tMessagingRocketmqMessageDeliveryTimestampKey = attribute.Key(\"messaging.rocketmq.message.delivery_timestamp\")\n\n\t// MessagingRocketmqMessageDelayTimeLevelKey is the attribute Key\n\t// conforming to the \"messaging.rocketmq.message.delay_time_level\" semantic\n\t// conventions. It represents the delay time level for delay message, which\n\t// determines the message delay time.\n\t//\n\t// Type: int\n\t// RequirementLevel: ConditionallyRequired (If the message type is delay\n\t// and delivery timestamp is not specified.)\n\t// Stability: stable\n\t// Examples: 3\n\tMessagingRocketmqMessageDelayTimeLevelKey = attribute.Key(\"messaging.rocketmq.message.delay_time_level\")\n\n\t// MessagingRocketmqMessageGroupKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.message.group\" semantic conventions. It represents\n\t// the it is essential for FIFO message. Messages that belong to the same\n\t// message group are always processed one by one within the same consumer\n\t// group.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (If the message type is FIFO.)\n\t// Stability: stable\n\t// Examples: 'myMessageGroup'\n\tMessagingRocketmqMessageGroupKey = attribute.Key(\"messaging.rocketmq.message.group\")\n\n\t// MessagingRocketmqMessageTypeKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.message.type\" semantic conventions. It represents\n\t// the type of message.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tMessagingRocketmqMessageTypeKey = attribute.Key(\"messaging.rocketmq.message.type\")\n\n\t// MessagingRocketmqMessageTagKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.message.tag\" semantic conventions. It represents the\n\t// secondary classifier of message besides topic.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'tagA'\n\tMessagingRocketmqMessageTagKey = attribute.Key(\"messaging.rocketmq.message.tag\")\n\n\t// MessagingRocketmqMessageKeysKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.message.keys\" semantic conventions. It represents\n\t// the key(s) of message, another way to mark message besides message id.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'keyA', 'keyB'\n\tMessagingRocketmqMessageKeysKey = attribute.Key(\"messaging.rocketmq.message.keys\")\n\n\t// MessagingRocketmqConsumptionModelKey is the attribute Key conforming to\n\t// the \"messaging.rocketmq.consumption_model\" semantic conventions. It\n\t// represents the model of message consumption. This only applies to\n\t// consumer spans.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tMessagingRocketmqConsumptionModelKey = attribute.Key(\"messaging.rocketmq.consumption_model\")\n)\n\nvar (\n\t// Normal message\n\tMessagingRocketmqMessageTypeNormal = MessagingRocketmqMessageTypeKey.String(\"normal\")\n\t// FIFO message\n\tMessagingRocketmqMessageTypeFifo = MessagingRocketmqMessageTypeKey.String(\"fifo\")\n\t// Delay message\n\tMessagingRocketmqMessageTypeDelay = MessagingRocketmqMessageTypeKey.String(\"delay\")\n\t// Transaction message\n\tMessagingRocketmqMessageTypeTransaction = MessagingRocketmqMessageTypeKey.String(\"transaction\")\n)\n\nvar (\n\t// Clustering consumption model\n\tMessagingRocketmqConsumptionModelClustering = MessagingRocketmqConsumptionModelKey.String(\"clustering\")\n\t// Broadcasting consumption model\n\tMessagingRocketmqConsumptionModelBroadcasting = MessagingRocketmqConsumptionModelKey.String(\"broadcasting\")\n)\n\n// MessagingRocketmqNamespace returns an attribute KeyValue conforming to\n// the \"messaging.rocketmq.namespace\" semantic conventions. It represents the\n// namespace of RocketMQ resources, resources in different namespaces are\n// individual.\nfunc MessagingRocketmqNamespace(val string) attribute.KeyValue {\n\treturn MessagingRocketmqNamespaceKey.String(val)\n}\n\n// MessagingRocketmqClientGroup returns an attribute KeyValue conforming to\n// the \"messaging.rocketmq.client_group\" semantic conventions. It represents\n// the name of the RocketMQ producer/consumer group that is handling the\n// message. The client type is identified by the SpanKind.\nfunc MessagingRocketmqClientGroup(val string) attribute.KeyValue {\n\treturn MessagingRocketmqClientGroupKey.String(val)\n}\n\n// MessagingRocketmqClientID returns an attribute KeyValue conforming to the\n// \"messaging.rocketmq.client_id\" semantic conventions. It represents the\n// unique identifier for each client.\nfunc MessagingRocketmqClientID(val string) attribute.KeyValue {\n\treturn MessagingRocketmqClientIDKey.String(val)\n}\n\n// MessagingRocketmqMessageDeliveryTimestamp returns an attribute KeyValue\n// conforming to the \"messaging.rocketmq.message.delivery_timestamp\" semantic\n// conventions. It represents the timestamp in milliseconds that the delay\n// message is expected to be delivered to consumer.\nfunc MessagingRocketmqMessageDeliveryTimestamp(val int) attribute.KeyValue {\n\treturn MessagingRocketmqMessageDeliveryTimestampKey.Int(val)\n}\n\n// MessagingRocketmqMessageDelayTimeLevel returns an attribute KeyValue\n// conforming to the \"messaging.rocketmq.message.delay_time_level\" semantic\n// conventions. It represents the delay time level for delay message, which\n// determines the message delay time.\nfunc MessagingRocketmqMessageDelayTimeLevel(val int) attribute.KeyValue {\n\treturn MessagingRocketmqMessageDelayTimeLevelKey.Int(val)\n}\n\n// MessagingRocketmqMessageGroup returns an attribute KeyValue conforming to\n// the \"messaging.rocketmq.message.group\" semantic conventions. It represents\n// the it is essential for FIFO message. Messages that belong to the same\n// message group are always processed one by one within the same consumer\n// group.\nfunc MessagingRocketmqMessageGroup(val string) attribute.KeyValue {\n\treturn MessagingRocketmqMessageGroupKey.String(val)\n}\n\n// MessagingRocketmqMessageTag returns an attribute KeyValue conforming to\n// the \"messaging.rocketmq.message.tag\" semantic conventions. It represents the\n// secondary classifier of message besides topic.\nfunc MessagingRocketmqMessageTag(val string) attribute.KeyValue {\n\treturn MessagingRocketmqMessageTagKey.String(val)\n}\n\n// MessagingRocketmqMessageKeys returns an attribute KeyValue conforming to\n// the \"messaging.rocketmq.message.keys\" semantic conventions. It represents\n// the key(s) of message, another way to mark message besides message id.\nfunc MessagingRocketmqMessageKeys(val ...string) attribute.KeyValue {\n\treturn MessagingRocketmqMessageKeysKey.StringSlice(val)\n}\n\n// Describes user-agent attributes.\nconst (\n\t// UserAgentOriginalKey is the attribute Key conforming to the\n\t// \"user_agent.original\" semantic conventions. It represents the value of\n\t// the [HTTP\n\t// User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent)\n\t// header sent by the client.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'CERN-LineMode/2.15 libwww/2.17b3'\n\tUserAgentOriginalKey = attribute.Key(\"user_agent.original\")\n)\n\n// UserAgentOriginal returns an attribute KeyValue conforming to the\n// \"user_agent.original\" semantic conventions. It represents the value of the\n// [HTTP\n// User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent)\n// header sent by the client.\nfunc UserAgentOriginal(val string) attribute.KeyValue {\n\treturn UserAgentOriginalKey.String(val)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.20.0/doc.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Package semconv implements OpenTelemetry semantic conventions.\n//\n// OpenTelemetry semantic conventions are agreed standardized naming\n// patterns for OpenTelemetry things. This package represents the conventions\n// as of the v1.20.0 version of the OpenTelemetry specification.\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.20.0/event.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Code generated from semantic convention specification. DO NOT EDIT.\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n\nimport \"go.opentelemetry.io/otel/attribute\"\n\n// This semantic convention defines the attributes used to represent a feature\n// flag evaluation as an event.\nconst (\n\t// FeatureFlagKeyKey is the attribute Key conforming to the\n\t// \"feature_flag.key\" semantic conventions. It represents the unique\n\t// identifier of the feature flag.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'logo-color'\n\tFeatureFlagKeyKey = attribute.Key(\"feature_flag.key\")\n\n\t// FeatureFlagProviderNameKey is the attribute Key conforming to the\n\t// \"feature_flag.provider_name\" semantic conventions. It represents the\n\t// name of the service provider that performs the flag evaluation.\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended\n\t// Stability: stable\n\t// Examples: 'Flag Manager'\n\tFeatureFlagProviderNameKey = attribute.Key(\"feature_flag.provider_name\")\n\n\t// FeatureFlagVariantKey is the attribute Key conforming to the\n\t// \"feature_flag.variant\" semantic conventions. It represents the sHOULD be\n\t// a semantic identifier for a value. If one is unavailable, a stringified\n\t// version of the value can be used.\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended\n\t// Stability: stable\n\t// Examples: 'red', 'true', 'on'\n\t// Note: A semantic identifier, commonly referred to as a variant, provides\n\t// a means\n\t// for referring to a value without including the value itself. This can\n\t// provide additional context for understanding the meaning behind a value.\n\t// For example, the variant `red` maybe be used for the value `#c05543`.\n\t//\n\t// A stringified version of the value can be used in situations where a\n\t// semantic identifier is unavailable. String representation of the value\n\t// should be determined by the implementer.\n\tFeatureFlagVariantKey = attribute.Key(\"feature_flag.variant\")\n)\n\n// FeatureFlagKey returns an attribute KeyValue conforming to the\n// \"feature_flag.key\" semantic conventions. It represents the unique identifier\n// of the feature flag.\nfunc FeatureFlagKey(val string) attribute.KeyValue {\n\treturn FeatureFlagKeyKey.String(val)\n}\n\n// FeatureFlagProviderName returns an attribute KeyValue conforming to the\n// \"feature_flag.provider_name\" semantic conventions. It represents the name of\n// the service provider that performs the flag evaluation.\nfunc FeatureFlagProviderName(val string) attribute.KeyValue {\n\treturn FeatureFlagProviderNameKey.String(val)\n}\n\n// FeatureFlagVariant returns an attribute KeyValue conforming to the\n// \"feature_flag.variant\" semantic conventions. It represents the sHOULD be a\n// semantic identifier for a value. If one is unavailable, a stringified\n// version of the value can be used.\nfunc FeatureFlagVariant(val string) attribute.KeyValue {\n\treturn FeatureFlagVariantKey.String(val)\n}\n\n// RPC received/sent message.\nconst (\n\t// MessageTypeKey is the attribute Key conforming to the \"message.type\"\n\t// semantic conventions. It represents the whether this is a received or\n\t// sent message.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tMessageTypeKey = attribute.Key(\"message.type\")\n\n\t// MessageIDKey is the attribute Key conforming to the \"message.id\"\n\t// semantic conventions. It represents the mUST be calculated as two\n\t// different counters starting from `1` one for sent messages and one for\n\t// received message.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Note: This way we guarantee that the values will be consistent between\n\t// different implementations.\n\tMessageIDKey = attribute.Key(\"message.id\")\n\n\t// MessageCompressedSizeKey is the attribute Key conforming to the\n\t// \"message.compressed_size\" semantic conventions. It represents the\n\t// compressed size of the message in bytes.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tMessageCompressedSizeKey = attribute.Key(\"message.compressed_size\")\n\n\t// MessageUncompressedSizeKey is the attribute Key conforming to the\n\t// \"message.uncompressed_size\" semantic conventions. It represents the\n\t// uncompressed size of the message in bytes.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tMessageUncompressedSizeKey = attribute.Key(\"message.uncompressed_size\")\n)\n\nvar (\n\t// sent\n\tMessageTypeSent = MessageTypeKey.String(\"SENT\")\n\t// received\n\tMessageTypeReceived = MessageTypeKey.String(\"RECEIVED\")\n)\n\n// MessageID returns an attribute KeyValue conforming to the \"message.id\"\n// semantic conventions. It represents the mUST be calculated as two different\n// counters starting from `1` one for sent messages and one for received\n// message.\nfunc MessageID(val int) attribute.KeyValue {\n\treturn MessageIDKey.Int(val)\n}\n\n// MessageCompressedSize returns an attribute KeyValue conforming to the\n// \"message.compressed_size\" semantic conventions. It represents the compressed\n// size of the message in bytes.\nfunc MessageCompressedSize(val int) attribute.KeyValue {\n\treturn MessageCompressedSizeKey.Int(val)\n}\n\n// MessageUncompressedSize returns an attribute KeyValue conforming to the\n// \"message.uncompressed_size\" semantic conventions. It represents the\n// uncompressed size of the message in bytes.\nfunc MessageUncompressedSize(val int) attribute.KeyValue {\n\treturn MessageUncompressedSizeKey.Int(val)\n}\n\n// The attributes used to report a single exception associated with a span.\nconst (\n\t// ExceptionEscapedKey is the attribute Key conforming to the\n\t// \"exception.escaped\" semantic conventions. It represents the sHOULD be\n\t// set to true if the exception event is recorded at a point where it is\n\t// known that the exception is escaping the scope of the span.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Note: An exception is considered to have escaped (or left) the scope of\n\t// a span,\n\t// if that span is ended while the exception is still logically \"in\n\t// flight\".\n\t// This may be actually \"in flight\" in some languages (e.g. if the\n\t// exception\n\t// is passed to a Context manager's `__exit__` method in Python) but will\n\t// usually be caught at the point of recording the exception in most\n\t// languages.\n\t//\n\t// It is usually not possible to determine at the point where an exception\n\t// is thrown\n\t// whether it will escape the scope of a span.\n\t// However, it is trivial to know that an exception\n\t// will escape, if one checks for an active exception just before ending\n\t// the span,\n\t// as done in the [example above](#recording-an-exception).\n\t//\n\t// It follows that an exception may still escape the scope of the span\n\t// even if the `exception.escaped` attribute was not set or set to false,\n\t// since the event might have been recorded at a time where it was not\n\t// clear whether the exception will escape.\n\tExceptionEscapedKey = attribute.Key(\"exception.escaped\")\n)\n\n// ExceptionEscaped returns an attribute KeyValue conforming to the\n// \"exception.escaped\" semantic conventions. It represents the sHOULD be set to\n// true if the exception event is recorded at a point where it is known that\n// the exception is escaping the scope of the span.\nfunc ExceptionEscaped(val bool) attribute.KeyValue {\n\treturn ExceptionEscapedKey.Bool(val)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.20.0/exception.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n\nconst (\n\t// ExceptionEventName is the name of the Span event representing an exception.\n\tExceptionEventName = \"exception\"\n)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.20.0/http.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n\n// HTTP scheme attributes.\nvar (\n\tHTTPSchemeHTTP  = HTTPSchemeKey.String(\"http\")\n\tHTTPSchemeHTTPS = HTTPSchemeKey.String(\"https\")\n)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.20.0/resource.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Code generated from semantic convention specification. DO NOT EDIT.\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n\nimport \"go.opentelemetry.io/otel/attribute\"\n\n// The web browser in which the application represented by the resource is\n// running. The `browser.*` attributes MUST be used only for resources that\n// represent applications running in a web browser (regardless of whether\n// running on a mobile or desktop device).\nconst (\n\t// BrowserBrandsKey is the attribute Key conforming to the \"browser.brands\"\n\t// semantic conventions. It represents the array of brand name and version\n\t// separated by a space\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: ' Not A;Brand 99', 'Chromium 99', 'Chrome 99'\n\t// Note: This value is intended to be taken from the [UA client hints\n\t// API](https://wicg.github.io/ua-client-hints/#interface)\n\t// (`navigator.userAgentData.brands`).\n\tBrowserBrandsKey = attribute.Key(\"browser.brands\")\n\n\t// BrowserPlatformKey is the attribute Key conforming to the\n\t// \"browser.platform\" semantic conventions. It represents the platform on\n\t// which the browser is running\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Windows', 'macOS', 'Android'\n\t// Note: This value is intended to be taken from the [UA client hints\n\t// API](https://wicg.github.io/ua-client-hints/#interface)\n\t// (`navigator.userAgentData.platform`). If unavailable, the legacy\n\t// `navigator.platform` API SHOULD NOT be used instead and this attribute\n\t// SHOULD be left unset in order for the values to be consistent.\n\t// The list of possible values is defined in the [W3C User-Agent Client\n\t// Hints\n\t// specification](https://wicg.github.io/ua-client-hints/#sec-ch-ua-platform).\n\t// Note that some (but not all) of these values can overlap with values in\n\t// the [`os.type` and `os.name` attributes](./os.md). However, for\n\t// consistency, the values in the `browser.platform` attribute should\n\t// capture the exact value that the user agent provides.\n\tBrowserPlatformKey = attribute.Key(\"browser.platform\")\n\n\t// BrowserMobileKey is the attribute Key conforming to the \"browser.mobile\"\n\t// semantic conventions. It represents a boolean that is true if the\n\t// browser is running on a mobile device\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Note: This value is intended to be taken from the [UA client hints\n\t// API](https://wicg.github.io/ua-client-hints/#interface)\n\t// (`navigator.userAgentData.mobile`). If unavailable, this attribute\n\t// SHOULD be left unset.\n\tBrowserMobileKey = attribute.Key(\"browser.mobile\")\n\n\t// BrowserLanguageKey is the attribute Key conforming to the\n\t// \"browser.language\" semantic conventions. It represents the preferred\n\t// language of the user using the browser\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'en', 'en-US', 'fr', 'fr-FR'\n\t// Note: This value is intended to be taken from the Navigator API\n\t// `navigator.language`.\n\tBrowserLanguageKey = attribute.Key(\"browser.language\")\n)\n\n// BrowserBrands returns an attribute KeyValue conforming to the\n// \"browser.brands\" semantic conventions. It represents the array of brand name\n// and version separated by a space\nfunc BrowserBrands(val ...string) attribute.KeyValue {\n\treturn BrowserBrandsKey.StringSlice(val)\n}\n\n// BrowserPlatform returns an attribute KeyValue conforming to the\n// \"browser.platform\" semantic conventions. It represents the platform on which\n// the browser is running\nfunc BrowserPlatform(val string) attribute.KeyValue {\n\treturn BrowserPlatformKey.String(val)\n}\n\n// BrowserMobile returns an attribute KeyValue conforming to the\n// \"browser.mobile\" semantic conventions. It represents a boolean that is true\n// if the browser is running on a mobile device\nfunc BrowserMobile(val bool) attribute.KeyValue {\n\treturn BrowserMobileKey.Bool(val)\n}\n\n// BrowserLanguage returns an attribute KeyValue conforming to the\n// \"browser.language\" semantic conventions. It represents the preferred\n// language of the user using the browser\nfunc BrowserLanguage(val string) attribute.KeyValue {\n\treturn BrowserLanguageKey.String(val)\n}\n\n// A cloud environment (e.g. GCP, Azure, AWS)\nconst (\n\t// CloudProviderKey is the attribute Key conforming to the \"cloud.provider\"\n\t// semantic conventions. It represents the name of the cloud provider.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tCloudProviderKey = attribute.Key(\"cloud.provider\")\n\n\t// CloudAccountIDKey is the attribute Key conforming to the\n\t// \"cloud.account.id\" semantic conventions. It represents the cloud account\n\t// ID the resource is assigned to.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '111111111111', 'opentelemetry'\n\tCloudAccountIDKey = attribute.Key(\"cloud.account.id\")\n\n\t// CloudRegionKey is the attribute Key conforming to the \"cloud.region\"\n\t// semantic conventions. It represents the geographical region the resource\n\t// is running.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'us-central1', 'us-east-1'\n\t// Note: Refer to your provider's docs to see the available regions, for\n\t// example [Alibaba Cloud\n\t// regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS\n\t// regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/),\n\t// [Azure\n\t// regions](https://azure.microsoft.com/en-us/global-infrastructure/geographies/),\n\t// [Google Cloud regions](https://cloud.google.com/about/locations), or\n\t// [Tencent Cloud\n\t// regions](https://www.tencentcloud.com/document/product/213/6091).\n\tCloudRegionKey = attribute.Key(\"cloud.region\")\n\n\t// CloudResourceIDKey is the attribute Key conforming to the\n\t// \"cloud.resource_id\" semantic conventions. It represents the cloud\n\t// provider-specific native identifier of the monitored cloud resource\n\t// (e.g. an\n\t// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)\n\t// on AWS, a [fully qualified resource\n\t// ID](https://learn.microsoft.com/en-us/rest/api/resources/resources/get-by-id)\n\t// on Azure, a [full resource\n\t// name](https://cloud.google.com/apis/design/resource_names#full_resource_name)\n\t// on GCP)\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function',\n\t// '//run.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/services/SERVICE_ID',\n\t// '/subscriptions/<SUBSCIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>'\n\t// Note: On some cloud providers, it may not be possible to determine the\n\t// full ID at startup,\n\t// so it may be necessary to set `cloud.resource_id` as a span attribute\n\t// instead.\n\t//\n\t// The exact value to use for `cloud.resource_id` depends on the cloud\n\t// provider.\n\t// The following well-known definitions MUST be used if you set this\n\t// attribute and they apply:\n\t//\n\t// * **AWS Lambda:** The function\n\t// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).\n\t//   Take care not to use the \"invoked ARN\" directly but replace any\n\t//   [alias\n\t// suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html)\n\t//   with the resolved function version, as the same runtime instance may\n\t// be invokable with\n\t//   multiple different aliases.\n\t// * **GCP:** The [URI of the\n\t// resource](https://cloud.google.com/iam/docs/full-resource-names)\n\t// * **Azure:** The [Fully Qualified Resource\n\t// ID](https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id)\n\t// of the invoked function,\n\t//   *not* the function app, having the form\n\t// `/subscriptions/<SUBSCIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>`.\n\t//   This means that a span attribute MUST be used, as an Azure function\n\t// app can host multiple functions that would usually share\n\t//   a TracerProvider.\n\tCloudResourceIDKey = attribute.Key(\"cloud.resource_id\")\n\n\t// CloudAvailabilityZoneKey is the attribute Key conforming to the\n\t// \"cloud.availability_zone\" semantic conventions. It represents the cloud\n\t// regions often have multiple, isolated locations known as zones to\n\t// increase availability. Availability zone represents the zone where the\n\t// resource is running.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'us-east-1c'\n\t// Note: Availability zones are called \"zones\" on Alibaba Cloud and Google\n\t// Cloud.\n\tCloudAvailabilityZoneKey = attribute.Key(\"cloud.availability_zone\")\n\n\t// CloudPlatformKey is the attribute Key conforming to the \"cloud.platform\"\n\t// semantic conventions. It represents the cloud platform in use.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Note: The prefix of the service SHOULD match the one specified in\n\t// `cloud.provider`.\n\tCloudPlatformKey = attribute.Key(\"cloud.platform\")\n)\n\nvar (\n\t// Alibaba Cloud\n\tCloudProviderAlibabaCloud = CloudProviderKey.String(\"alibaba_cloud\")\n\t// Amazon Web Services\n\tCloudProviderAWS = CloudProviderKey.String(\"aws\")\n\t// Microsoft Azure\n\tCloudProviderAzure = CloudProviderKey.String(\"azure\")\n\t// Google Cloud Platform\n\tCloudProviderGCP = CloudProviderKey.String(\"gcp\")\n\t// Heroku Platform as a Service\n\tCloudProviderHeroku = CloudProviderKey.String(\"heroku\")\n\t// IBM Cloud\n\tCloudProviderIbmCloud = CloudProviderKey.String(\"ibm_cloud\")\n\t// Tencent Cloud\n\tCloudProviderTencentCloud = CloudProviderKey.String(\"tencent_cloud\")\n)\n\nvar (\n\t// Alibaba Cloud Elastic Compute Service\n\tCloudPlatformAlibabaCloudECS = CloudPlatformKey.String(\"alibaba_cloud_ecs\")\n\t// Alibaba Cloud Function Compute\n\tCloudPlatformAlibabaCloudFc = CloudPlatformKey.String(\"alibaba_cloud_fc\")\n\t// Red Hat OpenShift on Alibaba Cloud\n\tCloudPlatformAlibabaCloudOpenshift = CloudPlatformKey.String(\"alibaba_cloud_openshift\")\n\t// AWS Elastic Compute Cloud\n\tCloudPlatformAWSEC2 = CloudPlatformKey.String(\"aws_ec2\")\n\t// AWS Elastic Container Service\n\tCloudPlatformAWSECS = CloudPlatformKey.String(\"aws_ecs\")\n\t// AWS Elastic Kubernetes Service\n\tCloudPlatformAWSEKS = CloudPlatformKey.String(\"aws_eks\")\n\t// AWS Lambda\n\tCloudPlatformAWSLambda = CloudPlatformKey.String(\"aws_lambda\")\n\t// AWS Elastic Beanstalk\n\tCloudPlatformAWSElasticBeanstalk = CloudPlatformKey.String(\"aws_elastic_beanstalk\")\n\t// AWS App Runner\n\tCloudPlatformAWSAppRunner = CloudPlatformKey.String(\"aws_app_runner\")\n\t// Red Hat OpenShift on AWS (ROSA)\n\tCloudPlatformAWSOpenshift = CloudPlatformKey.String(\"aws_openshift\")\n\t// Azure Virtual Machines\n\tCloudPlatformAzureVM = CloudPlatformKey.String(\"azure_vm\")\n\t// Azure Container Instances\n\tCloudPlatformAzureContainerInstances = CloudPlatformKey.String(\"azure_container_instances\")\n\t// Azure Kubernetes Service\n\tCloudPlatformAzureAKS = CloudPlatformKey.String(\"azure_aks\")\n\t// Azure Functions\n\tCloudPlatformAzureFunctions = CloudPlatformKey.String(\"azure_functions\")\n\t// Azure App Service\n\tCloudPlatformAzureAppService = CloudPlatformKey.String(\"azure_app_service\")\n\t// Azure Red Hat OpenShift\n\tCloudPlatformAzureOpenshift = CloudPlatformKey.String(\"azure_openshift\")\n\t// Google Cloud Compute Engine (GCE)\n\tCloudPlatformGCPComputeEngine = CloudPlatformKey.String(\"gcp_compute_engine\")\n\t// Google Cloud Run\n\tCloudPlatformGCPCloudRun = CloudPlatformKey.String(\"gcp_cloud_run\")\n\t// Google Cloud Kubernetes Engine (GKE)\n\tCloudPlatformGCPKubernetesEngine = CloudPlatformKey.String(\"gcp_kubernetes_engine\")\n\t// Google Cloud Functions (GCF)\n\tCloudPlatformGCPCloudFunctions = CloudPlatformKey.String(\"gcp_cloud_functions\")\n\t// Google Cloud App Engine (GAE)\n\tCloudPlatformGCPAppEngine = CloudPlatformKey.String(\"gcp_app_engine\")\n\t// Red Hat OpenShift on Google Cloud\n\tCloudPlatformGCPOpenshift = CloudPlatformKey.String(\"gcp_openshift\")\n\t// Red Hat OpenShift on IBM Cloud\n\tCloudPlatformIbmCloudOpenshift = CloudPlatformKey.String(\"ibm_cloud_openshift\")\n\t// Tencent Cloud Cloud Virtual Machine (CVM)\n\tCloudPlatformTencentCloudCvm = CloudPlatformKey.String(\"tencent_cloud_cvm\")\n\t// Tencent Cloud Elastic Kubernetes Service (EKS)\n\tCloudPlatformTencentCloudEKS = CloudPlatformKey.String(\"tencent_cloud_eks\")\n\t// Tencent Cloud Serverless Cloud Function (SCF)\n\tCloudPlatformTencentCloudScf = CloudPlatformKey.String(\"tencent_cloud_scf\")\n)\n\n// CloudAccountID returns an attribute KeyValue conforming to the\n// \"cloud.account.id\" semantic conventions. It represents the cloud account ID\n// the resource is assigned to.\nfunc CloudAccountID(val string) attribute.KeyValue {\n\treturn CloudAccountIDKey.String(val)\n}\n\n// CloudRegion returns an attribute KeyValue conforming to the\n// \"cloud.region\" semantic conventions. It represents the geographical region\n// the resource is running.\nfunc CloudRegion(val string) attribute.KeyValue {\n\treturn CloudRegionKey.String(val)\n}\n\n// CloudResourceID returns an attribute KeyValue conforming to the\n// \"cloud.resource_id\" semantic conventions. It represents the cloud\n// provider-specific native identifier of the monitored cloud resource (e.g. an\n// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)\n// on AWS, a [fully qualified resource\n// ID](https://learn.microsoft.com/en-us/rest/api/resources/resources/get-by-id)\n// on Azure, a [full resource\n// name](https://cloud.google.com/apis/design/resource_names#full_resource_name)\n// on GCP)\nfunc CloudResourceID(val string) attribute.KeyValue {\n\treturn CloudResourceIDKey.String(val)\n}\n\n// CloudAvailabilityZone returns an attribute KeyValue conforming to the\n// \"cloud.availability_zone\" semantic conventions. It represents the cloud\n// regions often have multiple, isolated locations known as zones to increase\n// availability. Availability zone represents the zone where the resource is\n// running.\nfunc CloudAvailabilityZone(val string) attribute.KeyValue {\n\treturn CloudAvailabilityZoneKey.String(val)\n}\n\n// Resources used by AWS Elastic Container Service (ECS).\nconst (\n\t// AWSECSContainerARNKey is the attribute Key conforming to the\n\t// \"aws.ecs.container.arn\" semantic conventions. It represents the Amazon\n\t// Resource Name (ARN) of an [ECS container\n\t// instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples:\n\t// 'arn:aws:ecs:us-west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9'\n\tAWSECSContainerARNKey = attribute.Key(\"aws.ecs.container.arn\")\n\n\t// AWSECSClusterARNKey is the attribute Key conforming to the\n\t// \"aws.ecs.cluster.arn\" semantic conventions. It represents the ARN of an\n\t// [ECS\n\t// cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster'\n\tAWSECSClusterARNKey = attribute.Key(\"aws.ecs.cluster.arn\")\n\n\t// AWSECSLaunchtypeKey is the attribute Key conforming to the\n\t// \"aws.ecs.launchtype\" semantic conventions. It represents the [launch\n\t// type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)\n\t// for an ECS task.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tAWSECSLaunchtypeKey = attribute.Key(\"aws.ecs.launchtype\")\n\n\t// AWSECSTaskARNKey is the attribute Key conforming to the\n\t// \"aws.ecs.task.arn\" semantic conventions. It represents the ARN of an\n\t// [ECS task\n\t// definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples:\n\t// 'arn:aws:ecs:us-west-1:123456789123:task/10838bed-421f-43ef-870a-f43feacbbb5b'\n\tAWSECSTaskARNKey = attribute.Key(\"aws.ecs.task.arn\")\n\n\t// AWSECSTaskFamilyKey is the attribute Key conforming to the\n\t// \"aws.ecs.task.family\" semantic conventions. It represents the task\n\t// definition family this task definition is a member of.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'opentelemetry-family'\n\tAWSECSTaskFamilyKey = attribute.Key(\"aws.ecs.task.family\")\n\n\t// AWSECSTaskRevisionKey is the attribute Key conforming to the\n\t// \"aws.ecs.task.revision\" semantic conventions. It represents the revision\n\t// for this task definition.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '8', '26'\n\tAWSECSTaskRevisionKey = attribute.Key(\"aws.ecs.task.revision\")\n)\n\nvar (\n\t// ec2\n\tAWSECSLaunchtypeEC2 = AWSECSLaunchtypeKey.String(\"ec2\")\n\t// fargate\n\tAWSECSLaunchtypeFargate = AWSECSLaunchtypeKey.String(\"fargate\")\n)\n\n// AWSECSContainerARN returns an attribute KeyValue conforming to the\n// \"aws.ecs.container.arn\" semantic conventions. It represents the Amazon\n// Resource Name (ARN) of an [ECS container\n// instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).\nfunc AWSECSContainerARN(val string) attribute.KeyValue {\n\treturn AWSECSContainerARNKey.String(val)\n}\n\n// AWSECSClusterARN returns an attribute KeyValue conforming to the\n// \"aws.ecs.cluster.arn\" semantic conventions. It represents the ARN of an [ECS\n// cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).\nfunc AWSECSClusterARN(val string) attribute.KeyValue {\n\treturn AWSECSClusterARNKey.String(val)\n}\n\n// AWSECSTaskARN returns an attribute KeyValue conforming to the\n// \"aws.ecs.task.arn\" semantic conventions. It represents the ARN of an [ECS\n// task\n// definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html).\nfunc AWSECSTaskARN(val string) attribute.KeyValue {\n\treturn AWSECSTaskARNKey.String(val)\n}\n\n// AWSECSTaskFamily returns an attribute KeyValue conforming to the\n// \"aws.ecs.task.family\" semantic conventions. It represents the task\n// definition family this task definition is a member of.\nfunc AWSECSTaskFamily(val string) attribute.KeyValue {\n\treturn AWSECSTaskFamilyKey.String(val)\n}\n\n// AWSECSTaskRevision returns an attribute KeyValue conforming to the\n// \"aws.ecs.task.revision\" semantic conventions. It represents the revision for\n// this task definition.\nfunc AWSECSTaskRevision(val string) attribute.KeyValue {\n\treturn AWSECSTaskRevisionKey.String(val)\n}\n\n// Resources used by AWS Elastic Kubernetes Service (EKS).\nconst (\n\t// AWSEKSClusterARNKey is the attribute Key conforming to the\n\t// \"aws.eks.cluster.arn\" semantic conventions. It represents the ARN of an\n\t// EKS cluster.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster'\n\tAWSEKSClusterARNKey = attribute.Key(\"aws.eks.cluster.arn\")\n)\n\n// AWSEKSClusterARN returns an attribute KeyValue conforming to the\n// \"aws.eks.cluster.arn\" semantic conventions. It represents the ARN of an EKS\n// cluster.\nfunc AWSEKSClusterARN(val string) attribute.KeyValue {\n\treturn AWSEKSClusterARNKey.String(val)\n}\n\n// Resources specific to Amazon Web Services.\nconst (\n\t// AWSLogGroupNamesKey is the attribute Key conforming to the\n\t// \"aws.log.group.names\" semantic conventions. It represents the name(s) of\n\t// the AWS log group(s) an application is writing to.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '/aws/lambda/my-function', 'opentelemetry-service'\n\t// Note: Multiple log groups must be supported for cases like\n\t// multi-container applications, where a single application has sidecar\n\t// containers, and each write to their own log group.\n\tAWSLogGroupNamesKey = attribute.Key(\"aws.log.group.names\")\n\n\t// AWSLogGroupARNsKey is the attribute Key conforming to the\n\t// \"aws.log.group.arns\" semantic conventions. It represents the Amazon\n\t// Resource Name(s) (ARN) of the AWS log group(s).\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples:\n\t// 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*'\n\t// Note: See the [log group ARN format\n\t// documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).\n\tAWSLogGroupARNsKey = attribute.Key(\"aws.log.group.arns\")\n\n\t// AWSLogStreamNamesKey is the attribute Key conforming to the\n\t// \"aws.log.stream.names\" semantic conventions. It represents the name(s)\n\t// of the AWS log stream(s) an application is writing to.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'logs/main/10838bed-421f-43ef-870a-f43feacbbb5b'\n\tAWSLogStreamNamesKey = attribute.Key(\"aws.log.stream.names\")\n\n\t// AWSLogStreamARNsKey is the attribute Key conforming to the\n\t// \"aws.log.stream.arns\" semantic conventions. It represents the ARN(s) of\n\t// the AWS log stream(s).\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples:\n\t// 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b'\n\t// Note: See the [log stream ARN format\n\t// documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).\n\t// One log group can contain several log streams, so these ARNs necessarily\n\t// identify both a log group and a log stream.\n\tAWSLogStreamARNsKey = attribute.Key(\"aws.log.stream.arns\")\n)\n\n// AWSLogGroupNames returns an attribute KeyValue conforming to the\n// \"aws.log.group.names\" semantic conventions. It represents the name(s) of the\n// AWS log group(s) an application is writing to.\nfunc AWSLogGroupNames(val ...string) attribute.KeyValue {\n\treturn AWSLogGroupNamesKey.StringSlice(val)\n}\n\n// AWSLogGroupARNs returns an attribute KeyValue conforming to the\n// \"aws.log.group.arns\" semantic conventions. It represents the Amazon Resource\n// Name(s) (ARN) of the AWS log group(s).\nfunc AWSLogGroupARNs(val ...string) attribute.KeyValue {\n\treturn AWSLogGroupARNsKey.StringSlice(val)\n}\n\n// AWSLogStreamNames returns an attribute KeyValue conforming to the\n// \"aws.log.stream.names\" semantic conventions. It represents the name(s) of\n// the AWS log stream(s) an application is writing to.\nfunc AWSLogStreamNames(val ...string) attribute.KeyValue {\n\treturn AWSLogStreamNamesKey.StringSlice(val)\n}\n\n// AWSLogStreamARNs returns an attribute KeyValue conforming to the\n// \"aws.log.stream.arns\" semantic conventions. It represents the ARN(s) of the\n// AWS log stream(s).\nfunc AWSLogStreamARNs(val ...string) attribute.KeyValue {\n\treturn AWSLogStreamARNsKey.StringSlice(val)\n}\n\n// Heroku dyno metadata\nconst (\n\t// HerokuReleaseCreationTimestampKey is the attribute Key conforming to the\n\t// \"heroku.release.creation_timestamp\" semantic conventions. It represents\n\t// the time and date the release was created\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '2022-10-23T18:00:42Z'\n\tHerokuReleaseCreationTimestampKey = attribute.Key(\"heroku.release.creation_timestamp\")\n\n\t// HerokuReleaseCommitKey is the attribute Key conforming to the\n\t// \"heroku.release.commit\" semantic conventions. It represents the commit\n\t// hash for the current release\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'e6134959463efd8966b20e75b913cafe3f5ec'\n\tHerokuReleaseCommitKey = attribute.Key(\"heroku.release.commit\")\n\n\t// HerokuAppIDKey is the attribute Key conforming to the \"heroku.app.id\"\n\t// semantic conventions. It represents the unique identifier for the\n\t// application\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '2daa2797-e42b-4624-9322-ec3f968df4da'\n\tHerokuAppIDKey = attribute.Key(\"heroku.app.id\")\n)\n\n// HerokuReleaseCreationTimestamp returns an attribute KeyValue conforming\n// to the \"heroku.release.creation_timestamp\" semantic conventions. It\n// represents the time and date the release was created\nfunc HerokuReleaseCreationTimestamp(val string) attribute.KeyValue {\n\treturn HerokuReleaseCreationTimestampKey.String(val)\n}\n\n// HerokuReleaseCommit returns an attribute KeyValue conforming to the\n// \"heroku.release.commit\" semantic conventions. It represents the commit hash\n// for the current release\nfunc HerokuReleaseCommit(val string) attribute.KeyValue {\n\treturn HerokuReleaseCommitKey.String(val)\n}\n\n// HerokuAppID returns an attribute KeyValue conforming to the\n// \"heroku.app.id\" semantic conventions. It represents the unique identifier\n// for the application\nfunc HerokuAppID(val string) attribute.KeyValue {\n\treturn HerokuAppIDKey.String(val)\n}\n\n// A container instance.\nconst (\n\t// ContainerNameKey is the attribute Key conforming to the \"container.name\"\n\t// semantic conventions. It represents the container name used by container\n\t// runtime.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'opentelemetry-autoconf'\n\tContainerNameKey = attribute.Key(\"container.name\")\n\n\t// ContainerIDKey is the attribute Key conforming to the \"container.id\"\n\t// semantic conventions. It represents the container ID. Usually a UUID, as\n\t// for example used to [identify Docker\n\t// containers](https://docs.docker.com/engine/reference/run/#container-identification).\n\t// The UUID might be abbreviated.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'a3bf90e006b2'\n\tContainerIDKey = attribute.Key(\"container.id\")\n\n\t// ContainerRuntimeKey is the attribute Key conforming to the\n\t// \"container.runtime\" semantic conventions. It represents the container\n\t// runtime managing this container.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'docker', 'containerd', 'rkt'\n\tContainerRuntimeKey = attribute.Key(\"container.runtime\")\n\n\t// ContainerImageNameKey is the attribute Key conforming to the\n\t// \"container.image.name\" semantic conventions. It represents the name of\n\t// the image the container was built on.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'gcr.io/opentelemetry/operator'\n\tContainerImageNameKey = attribute.Key(\"container.image.name\")\n\n\t// ContainerImageTagKey is the attribute Key conforming to the\n\t// \"container.image.tag\" semantic conventions. It represents the container\n\t// image tag.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '0.1'\n\tContainerImageTagKey = attribute.Key(\"container.image.tag\")\n)\n\n// ContainerName returns an attribute KeyValue conforming to the\n// \"container.name\" semantic conventions. It represents the container name used\n// by container runtime.\nfunc ContainerName(val string) attribute.KeyValue {\n\treturn ContainerNameKey.String(val)\n}\n\n// ContainerID returns an attribute KeyValue conforming to the\n// \"container.id\" semantic conventions. It represents the container ID. Usually\n// a UUID, as for example used to [identify Docker\n// containers](https://docs.docker.com/engine/reference/run/#container-identification).\n// The UUID might be abbreviated.\nfunc ContainerID(val string) attribute.KeyValue {\n\treturn ContainerIDKey.String(val)\n}\n\n// ContainerRuntime returns an attribute KeyValue conforming to the\n// \"container.runtime\" semantic conventions. It represents the container\n// runtime managing this container.\nfunc ContainerRuntime(val string) attribute.KeyValue {\n\treturn ContainerRuntimeKey.String(val)\n}\n\n// ContainerImageName returns an attribute KeyValue conforming to the\n// \"container.image.name\" semantic conventions. It represents the name of the\n// image the container was built on.\nfunc ContainerImageName(val string) attribute.KeyValue {\n\treturn ContainerImageNameKey.String(val)\n}\n\n// ContainerImageTag returns an attribute KeyValue conforming to the\n// \"container.image.tag\" semantic conventions. It represents the container\n// image tag.\nfunc ContainerImageTag(val string) attribute.KeyValue {\n\treturn ContainerImageTagKey.String(val)\n}\n\n// The software deployment.\nconst (\n\t// DeploymentEnvironmentKey is the attribute Key conforming to the\n\t// \"deployment.environment\" semantic conventions. It represents the name of\n\t// the [deployment\n\t// environment](https://en.wikipedia.org/wiki/Deployment_environment) (aka\n\t// deployment tier).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'staging', 'production'\n\tDeploymentEnvironmentKey = attribute.Key(\"deployment.environment\")\n)\n\n// DeploymentEnvironment returns an attribute KeyValue conforming to the\n// \"deployment.environment\" semantic conventions. It represents the name of the\n// [deployment\n// environment](https://en.wikipedia.org/wiki/Deployment_environment) (aka\n// deployment tier).\nfunc DeploymentEnvironment(val string) attribute.KeyValue {\n\treturn DeploymentEnvironmentKey.String(val)\n}\n\n// The device on which the process represented by this resource is running.\nconst (\n\t// DeviceIDKey is the attribute Key conforming to the \"device.id\" semantic\n\t// conventions. It represents a unique identifier representing the device\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '2ab2916d-a51f-4ac8-80ee-45ac31a28092'\n\t// Note: The device identifier MUST only be defined using the values\n\t// outlined below. This value is not an advertising identifier and MUST NOT\n\t// be used as such. On iOS (Swift or Objective-C), this value MUST be equal\n\t// to the [vendor\n\t// identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor).\n\t// On Android (Java or Kotlin), this value MUST be equal to the Firebase\n\t// Installation ID or a globally unique UUID which is persisted across\n\t// sessions in your application. More information can be found\n\t// [here](https://developer.android.com/training/articles/user-data-ids) on\n\t// best practices and exact implementation details. Caution should be taken\n\t// when storing personal data or anything which can identify a user. GDPR\n\t// and data protection laws may apply, ensure you do your own due\n\t// diligence.\n\tDeviceIDKey = attribute.Key(\"device.id\")\n\n\t// DeviceModelIdentifierKey is the attribute Key conforming to the\n\t// \"device.model.identifier\" semantic conventions. It represents the model\n\t// identifier for the device\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'iPhone3,4', 'SM-G920F'\n\t// Note: It's recommended this value represents a machine readable version\n\t// of the model identifier rather than the market or consumer-friendly name\n\t// of the device.\n\tDeviceModelIdentifierKey = attribute.Key(\"device.model.identifier\")\n\n\t// DeviceModelNameKey is the attribute Key conforming to the\n\t// \"device.model.name\" semantic conventions. It represents the marketing\n\t// name for the device model\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'iPhone 6s Plus', 'Samsung Galaxy S6'\n\t// Note: It's recommended this value represents a human readable version of\n\t// the device model rather than a machine readable alternative.\n\tDeviceModelNameKey = attribute.Key(\"device.model.name\")\n\n\t// DeviceManufacturerKey is the attribute Key conforming to the\n\t// \"device.manufacturer\" semantic conventions. It represents the name of\n\t// the device manufacturer\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Apple', 'Samsung'\n\t// Note: The Android OS provides this field via\n\t// [Build](https://developer.android.com/reference/android/os/Build#MANUFACTURER).\n\t// iOS apps SHOULD hardcode the value `Apple`.\n\tDeviceManufacturerKey = attribute.Key(\"device.manufacturer\")\n)\n\n// DeviceID returns an attribute KeyValue conforming to the \"device.id\"\n// semantic conventions. It represents a unique identifier representing the\n// device\nfunc DeviceID(val string) attribute.KeyValue {\n\treturn DeviceIDKey.String(val)\n}\n\n// DeviceModelIdentifier returns an attribute KeyValue conforming to the\n// \"device.model.identifier\" semantic conventions. It represents the model\n// identifier for the device\nfunc DeviceModelIdentifier(val string) attribute.KeyValue {\n\treturn DeviceModelIdentifierKey.String(val)\n}\n\n// DeviceModelName returns an attribute KeyValue conforming to the\n// \"device.model.name\" semantic conventions. It represents the marketing name\n// for the device model\nfunc DeviceModelName(val string) attribute.KeyValue {\n\treturn DeviceModelNameKey.String(val)\n}\n\n// DeviceManufacturer returns an attribute KeyValue conforming to the\n// \"device.manufacturer\" semantic conventions. It represents the name of the\n// device manufacturer\nfunc DeviceManufacturer(val string) attribute.KeyValue {\n\treturn DeviceManufacturerKey.String(val)\n}\n\n// A serverless instance.\nconst (\n\t// FaaSNameKey is the attribute Key conforming to the \"faas.name\" semantic\n\t// conventions. It represents the name of the single function that this\n\t// runtime instance executes.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'my-function', 'myazurefunctionapp/some-function-name'\n\t// Note: This is the name of the function as configured/deployed on the\n\t// FaaS\n\t// platform and is usually different from the name of the callback\n\t// function (which may be stored in the\n\t// [`code.namespace`/`code.function`](../../trace/semantic_conventions/span-general.md#source-code-attributes)\n\t// span attributes).\n\t//\n\t// For some cloud providers, the above definition is ambiguous. The\n\t// following\n\t// definition of function name MUST be used for this attribute\n\t// (and consequently the span name) for the listed cloud\n\t// providers/products:\n\t//\n\t// * **Azure:**  The full name `<FUNCAPP>/<FUNC>`, i.e., function app name\n\t//   followed by a forward slash followed by the function name (this form\n\t//   can also be seen in the resource JSON for the function).\n\t//   This means that a span attribute MUST be used, as an Azure function\n\t//   app can host multiple functions that would usually share\n\t//   a TracerProvider (see also the `cloud.resource_id` attribute).\n\tFaaSNameKey = attribute.Key(\"faas.name\")\n\n\t// FaaSVersionKey is the attribute Key conforming to the \"faas.version\"\n\t// semantic conventions. It represents the immutable version of the\n\t// function being executed.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '26', 'pinkfroid-00002'\n\t// Note: Depending on the cloud provider and platform, use:\n\t//\n\t// * **AWS Lambda:** The [function\n\t// version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)\n\t//   (an integer represented as a decimal string).\n\t// * **Google Cloud Run:** The\n\t// [revision](https://cloud.google.com/run/docs/managing/revisions)\n\t//   (i.e., the function name plus the revision suffix).\n\t// * **Google Cloud Functions:** The value of the\n\t//   [`K_REVISION` environment\n\t// variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically).\n\t// * **Azure Functions:** Not applicable. Do not set this attribute.\n\tFaaSVersionKey = attribute.Key(\"faas.version\")\n\n\t// FaaSInstanceKey is the attribute Key conforming to the \"faas.instance\"\n\t// semantic conventions. It represents the execution environment ID as a\n\t// string, that will be potentially reused for other invocations to the\n\t// same function/function version.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de'\n\t// Note: * **AWS Lambda:** Use the (full) log stream name.\n\tFaaSInstanceKey = attribute.Key(\"faas.instance\")\n\n\t// FaaSMaxMemoryKey is the attribute Key conforming to the\n\t// \"faas.max_memory\" semantic conventions. It represents the amount of\n\t// memory available to the serverless function converted to Bytes.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 134217728\n\t// Note: It's recommended to set this attribute since e.g. too little\n\t// memory can easily stop a Java AWS Lambda function from working\n\t// correctly. On AWS Lambda, the environment variable\n\t// `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` provides this information (which must\n\t// be multiplied by 1,048,576).\n\tFaaSMaxMemoryKey = attribute.Key(\"faas.max_memory\")\n)\n\n// FaaSName returns an attribute KeyValue conforming to the \"faas.name\"\n// semantic conventions. It represents the name of the single function that\n// this runtime instance executes.\nfunc FaaSName(val string) attribute.KeyValue {\n\treturn FaaSNameKey.String(val)\n}\n\n// FaaSVersion returns an attribute KeyValue conforming to the\n// \"faas.version\" semantic conventions. It represents the immutable version of\n// the function being executed.\nfunc FaaSVersion(val string) attribute.KeyValue {\n\treturn FaaSVersionKey.String(val)\n}\n\n// FaaSInstance returns an attribute KeyValue conforming to the\n// \"faas.instance\" semantic conventions. It represents the execution\n// environment ID as a string, that will be potentially reused for other\n// invocations to the same function/function version.\nfunc FaaSInstance(val string) attribute.KeyValue {\n\treturn FaaSInstanceKey.String(val)\n}\n\n// FaaSMaxMemory returns an attribute KeyValue conforming to the\n// \"faas.max_memory\" semantic conventions. It represents the amount of memory\n// available to the serverless function converted to Bytes.\nfunc FaaSMaxMemory(val int) attribute.KeyValue {\n\treturn FaaSMaxMemoryKey.Int(val)\n}\n\n// A host is defined as a general computing instance.\nconst (\n\t// HostIDKey is the attribute Key conforming to the \"host.id\" semantic\n\t// conventions. It represents the unique host ID. For Cloud, this must be\n\t// the instance_id assigned by the cloud provider. For non-containerized\n\t// systems, this should be the `machine-id`. See the table below for the\n\t// sources to use to determine the `machine-id` based on operating system.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'fdbf79e8af94cb7f9e8df36789187052'\n\tHostIDKey = attribute.Key(\"host.id\")\n\n\t// HostNameKey is the attribute Key conforming to the \"host.name\" semantic\n\t// conventions. It represents the name of the host. On Unix systems, it may\n\t// contain what the hostname command returns, or the fully qualified\n\t// hostname, or another name specified by the user.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'opentelemetry-test'\n\tHostNameKey = attribute.Key(\"host.name\")\n\n\t// HostTypeKey is the attribute Key conforming to the \"host.type\" semantic\n\t// conventions. It represents the type of host. For Cloud, this must be the\n\t// machine type.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'n1-standard-1'\n\tHostTypeKey = attribute.Key(\"host.type\")\n\n\t// HostArchKey is the attribute Key conforming to the \"host.arch\" semantic\n\t// conventions. It represents the CPU architecture the host system is\n\t// running on.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tHostArchKey = attribute.Key(\"host.arch\")\n\n\t// HostImageNameKey is the attribute Key conforming to the\n\t// \"host.image.name\" semantic conventions. It represents the name of the VM\n\t// image or OS install the host was instantiated from.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'infra-ami-eks-worker-node-7d4ec78312', 'CentOS-8-x86_64-1905'\n\tHostImageNameKey = attribute.Key(\"host.image.name\")\n\n\t// HostImageIDKey is the attribute Key conforming to the \"host.image.id\"\n\t// semantic conventions. It represents the vM image ID. For Cloud, this\n\t// value is from the provider.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'ami-07b06b442921831e5'\n\tHostImageIDKey = attribute.Key(\"host.image.id\")\n\n\t// HostImageVersionKey is the attribute Key conforming to the\n\t// \"host.image.version\" semantic conventions. It represents the version\n\t// string of the VM image as defined in [Version\n\t// Attributes](README.md#version-attributes).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '0.1'\n\tHostImageVersionKey = attribute.Key(\"host.image.version\")\n)\n\nvar (\n\t// AMD64\n\tHostArchAMD64 = HostArchKey.String(\"amd64\")\n\t// ARM32\n\tHostArchARM32 = HostArchKey.String(\"arm32\")\n\t// ARM64\n\tHostArchARM64 = HostArchKey.String(\"arm64\")\n\t// Itanium\n\tHostArchIA64 = HostArchKey.String(\"ia64\")\n\t// 32-bit PowerPC\n\tHostArchPPC32 = HostArchKey.String(\"ppc32\")\n\t// 64-bit PowerPC\n\tHostArchPPC64 = HostArchKey.String(\"ppc64\")\n\t// IBM z/Architecture\n\tHostArchS390x = HostArchKey.String(\"s390x\")\n\t// 32-bit x86\n\tHostArchX86 = HostArchKey.String(\"x86\")\n)\n\n// HostID returns an attribute KeyValue conforming to the \"host.id\" semantic\n// conventions. It represents the unique host ID. For Cloud, this must be the\n// instance_id assigned by the cloud provider. For non-containerized systems,\n// this should be the `machine-id`. See the table below for the sources to use\n// to determine the `machine-id` based on operating system.\nfunc HostID(val string) attribute.KeyValue {\n\treturn HostIDKey.String(val)\n}\n\n// HostName returns an attribute KeyValue conforming to the \"host.name\"\n// semantic conventions. It represents the name of the host. On Unix systems,\n// it may contain what the hostname command returns, or the fully qualified\n// hostname, or another name specified by the user.\nfunc HostName(val string) attribute.KeyValue {\n\treturn HostNameKey.String(val)\n}\n\n// HostType returns an attribute KeyValue conforming to the \"host.type\"\n// semantic conventions. It represents the type of host. For Cloud, this must\n// be the machine type.\nfunc HostType(val string) attribute.KeyValue {\n\treturn HostTypeKey.String(val)\n}\n\n// HostImageName returns an attribute KeyValue conforming to the\n// \"host.image.name\" semantic conventions. It represents the name of the VM\n// image or OS install the host was instantiated from.\nfunc HostImageName(val string) attribute.KeyValue {\n\treturn HostImageNameKey.String(val)\n}\n\n// HostImageID returns an attribute KeyValue conforming to the\n// \"host.image.id\" semantic conventions. It represents the vM image ID. For\n// Cloud, this value is from the provider.\nfunc HostImageID(val string) attribute.KeyValue {\n\treturn HostImageIDKey.String(val)\n}\n\n// HostImageVersion returns an attribute KeyValue conforming to the\n// \"host.image.version\" semantic conventions. It represents the version string\n// of the VM image as defined in [Version\n// Attributes](README.md#version-attributes).\nfunc HostImageVersion(val string) attribute.KeyValue {\n\treturn HostImageVersionKey.String(val)\n}\n\n// A Kubernetes Cluster.\nconst (\n\t// K8SClusterNameKey is the attribute Key conforming to the\n\t// \"k8s.cluster.name\" semantic conventions. It represents the name of the\n\t// cluster.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'opentelemetry-cluster'\n\tK8SClusterNameKey = attribute.Key(\"k8s.cluster.name\")\n)\n\n// K8SClusterName returns an attribute KeyValue conforming to the\n// \"k8s.cluster.name\" semantic conventions. It represents the name of the\n// cluster.\nfunc K8SClusterName(val string) attribute.KeyValue {\n\treturn K8SClusterNameKey.String(val)\n}\n\n// A Kubernetes Node object.\nconst (\n\t// K8SNodeNameKey is the attribute Key conforming to the \"k8s.node.name\"\n\t// semantic conventions. It represents the name of the Node.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'node-1'\n\tK8SNodeNameKey = attribute.Key(\"k8s.node.name\")\n\n\t// K8SNodeUIDKey is the attribute Key conforming to the \"k8s.node.uid\"\n\t// semantic conventions. It represents the UID of the Node.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2'\n\tK8SNodeUIDKey = attribute.Key(\"k8s.node.uid\")\n)\n\n// K8SNodeName returns an attribute KeyValue conforming to the\n// \"k8s.node.name\" semantic conventions. It represents the name of the Node.\nfunc K8SNodeName(val string) attribute.KeyValue {\n\treturn K8SNodeNameKey.String(val)\n}\n\n// K8SNodeUID returns an attribute KeyValue conforming to the \"k8s.node.uid\"\n// semantic conventions. It represents the UID of the Node.\nfunc K8SNodeUID(val string) attribute.KeyValue {\n\treturn K8SNodeUIDKey.String(val)\n}\n\n// A Kubernetes Namespace.\nconst (\n\t// K8SNamespaceNameKey is the attribute Key conforming to the\n\t// \"k8s.namespace.name\" semantic conventions. It represents the name of the\n\t// namespace that the pod is running in.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'default'\n\tK8SNamespaceNameKey = attribute.Key(\"k8s.namespace.name\")\n)\n\n// K8SNamespaceName returns an attribute KeyValue conforming to the\n// \"k8s.namespace.name\" semantic conventions. It represents the name of the\n// namespace that the pod is running in.\nfunc K8SNamespaceName(val string) attribute.KeyValue {\n\treturn K8SNamespaceNameKey.String(val)\n}\n\n// A Kubernetes Pod object.\nconst (\n\t// K8SPodUIDKey is the attribute Key conforming to the \"k8s.pod.uid\"\n\t// semantic conventions. It represents the UID of the Pod.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SPodUIDKey = attribute.Key(\"k8s.pod.uid\")\n\n\t// K8SPodNameKey is the attribute Key conforming to the \"k8s.pod.name\"\n\t// semantic conventions. It represents the name of the Pod.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'opentelemetry-pod-autoconf'\n\tK8SPodNameKey = attribute.Key(\"k8s.pod.name\")\n)\n\n// K8SPodUID returns an attribute KeyValue conforming to the \"k8s.pod.uid\"\n// semantic conventions. It represents the UID of the Pod.\nfunc K8SPodUID(val string) attribute.KeyValue {\n\treturn K8SPodUIDKey.String(val)\n}\n\n// K8SPodName returns an attribute KeyValue conforming to the \"k8s.pod.name\"\n// semantic conventions. It represents the name of the Pod.\nfunc K8SPodName(val string) attribute.KeyValue {\n\treturn K8SPodNameKey.String(val)\n}\n\n// A container in a\n// [PodTemplate](https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates).\nconst (\n\t// K8SContainerNameKey is the attribute Key conforming to the\n\t// \"k8s.container.name\" semantic conventions. It represents the name of the\n\t// Container from Pod specification, must be unique within a Pod. Container\n\t// runtime usually uses different globally unique name (`container.name`).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'redis'\n\tK8SContainerNameKey = attribute.Key(\"k8s.container.name\")\n\n\t// K8SContainerRestartCountKey is the attribute Key conforming to the\n\t// \"k8s.container.restart_count\" semantic conventions. It represents the\n\t// number of times the container was restarted. This attribute can be used\n\t// to identify a particular container (running or stopped) within a\n\t// container spec.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 0, 2\n\tK8SContainerRestartCountKey = attribute.Key(\"k8s.container.restart_count\")\n)\n\n// K8SContainerName returns an attribute KeyValue conforming to the\n// \"k8s.container.name\" semantic conventions. It represents the name of the\n// Container from Pod specification, must be unique within a Pod. Container\n// runtime usually uses different globally unique name (`container.name`).\nfunc K8SContainerName(val string) attribute.KeyValue {\n\treturn K8SContainerNameKey.String(val)\n}\n\n// K8SContainerRestartCount returns an attribute KeyValue conforming to the\n// \"k8s.container.restart_count\" semantic conventions. It represents the number\n// of times the container was restarted. This attribute can be used to identify\n// a particular container (running or stopped) within a container spec.\nfunc K8SContainerRestartCount(val int) attribute.KeyValue {\n\treturn K8SContainerRestartCountKey.Int(val)\n}\n\n// A Kubernetes ReplicaSet object.\nconst (\n\t// K8SReplicaSetUIDKey is the attribute Key conforming to the\n\t// \"k8s.replicaset.uid\" semantic conventions. It represents the UID of the\n\t// ReplicaSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SReplicaSetUIDKey = attribute.Key(\"k8s.replicaset.uid\")\n\n\t// K8SReplicaSetNameKey is the attribute Key conforming to the\n\t// \"k8s.replicaset.name\" semantic conventions. It represents the name of\n\t// the ReplicaSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'opentelemetry'\n\tK8SReplicaSetNameKey = attribute.Key(\"k8s.replicaset.name\")\n)\n\n// K8SReplicaSetUID returns an attribute KeyValue conforming to the\n// \"k8s.replicaset.uid\" semantic conventions. It represents the UID of the\n// ReplicaSet.\nfunc K8SReplicaSetUID(val string) attribute.KeyValue {\n\treturn K8SReplicaSetUIDKey.String(val)\n}\n\n// K8SReplicaSetName returns an attribute KeyValue conforming to the\n// \"k8s.replicaset.name\" semantic conventions. It represents the name of the\n// ReplicaSet.\nfunc K8SReplicaSetName(val string) attribute.KeyValue {\n\treturn K8SReplicaSetNameKey.String(val)\n}\n\n// A Kubernetes Deployment object.\nconst (\n\t// K8SDeploymentUIDKey is the attribute Key conforming to the\n\t// \"k8s.deployment.uid\" semantic conventions. It represents the UID of the\n\t// Deployment.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SDeploymentUIDKey = attribute.Key(\"k8s.deployment.uid\")\n\n\t// K8SDeploymentNameKey is the attribute Key conforming to the\n\t// \"k8s.deployment.name\" semantic conventions. It represents the name of\n\t// the Deployment.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'opentelemetry'\n\tK8SDeploymentNameKey = attribute.Key(\"k8s.deployment.name\")\n)\n\n// K8SDeploymentUID returns an attribute KeyValue conforming to the\n// \"k8s.deployment.uid\" semantic conventions. It represents the UID of the\n// Deployment.\nfunc K8SDeploymentUID(val string) attribute.KeyValue {\n\treturn K8SDeploymentUIDKey.String(val)\n}\n\n// K8SDeploymentName returns an attribute KeyValue conforming to the\n// \"k8s.deployment.name\" semantic conventions. It represents the name of the\n// Deployment.\nfunc K8SDeploymentName(val string) attribute.KeyValue {\n\treturn K8SDeploymentNameKey.String(val)\n}\n\n// A Kubernetes StatefulSet object.\nconst (\n\t// K8SStatefulSetUIDKey is the attribute Key conforming to the\n\t// \"k8s.statefulset.uid\" semantic conventions. It represents the UID of the\n\t// StatefulSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SStatefulSetUIDKey = attribute.Key(\"k8s.statefulset.uid\")\n\n\t// K8SStatefulSetNameKey is the attribute Key conforming to the\n\t// \"k8s.statefulset.name\" semantic conventions. It represents the name of\n\t// the StatefulSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'opentelemetry'\n\tK8SStatefulSetNameKey = attribute.Key(\"k8s.statefulset.name\")\n)\n\n// K8SStatefulSetUID returns an attribute KeyValue conforming to the\n// \"k8s.statefulset.uid\" semantic conventions. It represents the UID of the\n// StatefulSet.\nfunc K8SStatefulSetUID(val string) attribute.KeyValue {\n\treturn K8SStatefulSetUIDKey.String(val)\n}\n\n// K8SStatefulSetName returns an attribute KeyValue conforming to the\n// \"k8s.statefulset.name\" semantic conventions. It represents the name of the\n// StatefulSet.\nfunc K8SStatefulSetName(val string) attribute.KeyValue {\n\treturn K8SStatefulSetNameKey.String(val)\n}\n\n// A Kubernetes DaemonSet object.\nconst (\n\t// K8SDaemonSetUIDKey is the attribute Key conforming to the\n\t// \"k8s.daemonset.uid\" semantic conventions. It represents the UID of the\n\t// DaemonSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SDaemonSetUIDKey = attribute.Key(\"k8s.daemonset.uid\")\n\n\t// K8SDaemonSetNameKey is the attribute Key conforming to the\n\t// \"k8s.daemonset.name\" semantic conventions. It represents the name of the\n\t// DaemonSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'opentelemetry'\n\tK8SDaemonSetNameKey = attribute.Key(\"k8s.daemonset.name\")\n)\n\n// K8SDaemonSetUID returns an attribute KeyValue conforming to the\n// \"k8s.daemonset.uid\" semantic conventions. It represents the UID of the\n// DaemonSet.\nfunc K8SDaemonSetUID(val string) attribute.KeyValue {\n\treturn K8SDaemonSetUIDKey.String(val)\n}\n\n// K8SDaemonSetName returns an attribute KeyValue conforming to the\n// \"k8s.daemonset.name\" semantic conventions. It represents the name of the\n// DaemonSet.\nfunc K8SDaemonSetName(val string) attribute.KeyValue {\n\treturn K8SDaemonSetNameKey.String(val)\n}\n\n// A Kubernetes Job object.\nconst (\n\t// K8SJobUIDKey is the attribute Key conforming to the \"k8s.job.uid\"\n\t// semantic conventions. It represents the UID of the Job.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SJobUIDKey = attribute.Key(\"k8s.job.uid\")\n\n\t// K8SJobNameKey is the attribute Key conforming to the \"k8s.job.name\"\n\t// semantic conventions. It represents the name of the Job.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'opentelemetry'\n\tK8SJobNameKey = attribute.Key(\"k8s.job.name\")\n)\n\n// K8SJobUID returns an attribute KeyValue conforming to the \"k8s.job.uid\"\n// semantic conventions. It represents the UID of the Job.\nfunc K8SJobUID(val string) attribute.KeyValue {\n\treturn K8SJobUIDKey.String(val)\n}\n\n// K8SJobName returns an attribute KeyValue conforming to the \"k8s.job.name\"\n// semantic conventions. It represents the name of the Job.\nfunc K8SJobName(val string) attribute.KeyValue {\n\treturn K8SJobNameKey.String(val)\n}\n\n// A Kubernetes CronJob object.\nconst (\n\t// K8SCronJobUIDKey is the attribute Key conforming to the\n\t// \"k8s.cronjob.uid\" semantic conventions. It represents the UID of the\n\t// CronJob.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SCronJobUIDKey = attribute.Key(\"k8s.cronjob.uid\")\n\n\t// K8SCronJobNameKey is the attribute Key conforming to the\n\t// \"k8s.cronjob.name\" semantic conventions. It represents the name of the\n\t// CronJob.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'opentelemetry'\n\tK8SCronJobNameKey = attribute.Key(\"k8s.cronjob.name\")\n)\n\n// K8SCronJobUID returns an attribute KeyValue conforming to the\n// \"k8s.cronjob.uid\" semantic conventions. It represents the UID of the\n// CronJob.\nfunc K8SCronJobUID(val string) attribute.KeyValue {\n\treturn K8SCronJobUIDKey.String(val)\n}\n\n// K8SCronJobName returns an attribute KeyValue conforming to the\n// \"k8s.cronjob.name\" semantic conventions. It represents the name of the\n// CronJob.\nfunc K8SCronJobName(val string) attribute.KeyValue {\n\treturn K8SCronJobNameKey.String(val)\n}\n\n// The operating system (OS) on which the process represented by this resource\n// is running.\nconst (\n\t// OSTypeKey is the attribute Key conforming to the \"os.type\" semantic\n\t// conventions. It represents the operating system type.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: stable\n\tOSTypeKey = attribute.Key(\"os.type\")\n\n\t// OSDescriptionKey is the attribute Key conforming to the \"os.description\"\n\t// semantic conventions. It represents the human readable (not intended to\n\t// be parsed) OS version information, like e.g. reported by `ver` or\n\t// `lsb_release -a` commands.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Microsoft Windows [Version 10.0.18363.778]', 'Ubuntu 18.04.1\n\t// LTS'\n\tOSDescriptionKey = attribute.Key(\"os.description\")\n\n\t// OSNameKey is the attribute Key conforming to the \"os.name\" semantic\n\t// conventions. It represents the human readable operating system name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'iOS', 'Android', 'Ubuntu'\n\tOSNameKey = attribute.Key(\"os.name\")\n\n\t// OSVersionKey is the attribute Key conforming to the \"os.version\"\n\t// semantic conventions. It represents the version string of the operating\n\t// system as defined in [Version\n\t// Attributes](../../resource/semantic_conventions/README.md#version-attributes).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '14.2.1', '18.04.1'\n\tOSVersionKey = attribute.Key(\"os.version\")\n)\n\nvar (\n\t// Microsoft Windows\n\tOSTypeWindows = OSTypeKey.String(\"windows\")\n\t// Linux\n\tOSTypeLinux = OSTypeKey.String(\"linux\")\n\t// Apple Darwin\n\tOSTypeDarwin = OSTypeKey.String(\"darwin\")\n\t// FreeBSD\n\tOSTypeFreeBSD = OSTypeKey.String(\"freebsd\")\n\t// NetBSD\n\tOSTypeNetBSD = OSTypeKey.String(\"netbsd\")\n\t// OpenBSD\n\tOSTypeOpenBSD = OSTypeKey.String(\"openbsd\")\n\t// DragonFly BSD\n\tOSTypeDragonflyBSD = OSTypeKey.String(\"dragonflybsd\")\n\t// HP-UX (Hewlett Packard Unix)\n\tOSTypeHPUX = OSTypeKey.String(\"hpux\")\n\t// AIX (Advanced Interactive eXecutive)\n\tOSTypeAIX = OSTypeKey.String(\"aix\")\n\t// SunOS, Oracle Solaris\n\tOSTypeSolaris = OSTypeKey.String(\"solaris\")\n\t// IBM z/OS\n\tOSTypeZOS = OSTypeKey.String(\"z_os\")\n)\n\n// OSDescription returns an attribute KeyValue conforming to the\n// \"os.description\" semantic conventions. It represents the human readable (not\n// intended to be parsed) OS version information, like e.g. reported by `ver`\n// or `lsb_release -a` commands.\nfunc OSDescription(val string) attribute.KeyValue {\n\treturn OSDescriptionKey.String(val)\n}\n\n// OSName returns an attribute KeyValue conforming to the \"os.name\" semantic\n// conventions. It represents the human readable operating system name.\nfunc OSName(val string) attribute.KeyValue {\n\treturn OSNameKey.String(val)\n}\n\n// OSVersion returns an attribute KeyValue conforming to the \"os.version\"\n// semantic conventions. It represents the version string of the operating\n// system as defined in [Version\n// Attributes](../../resource/semantic_conventions/README.md#version-attributes).\nfunc OSVersion(val string) attribute.KeyValue {\n\treturn OSVersionKey.String(val)\n}\n\n// An operating system process.\nconst (\n\t// ProcessPIDKey is the attribute Key conforming to the \"process.pid\"\n\t// semantic conventions. It represents the process identifier (PID).\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 1234\n\tProcessPIDKey = attribute.Key(\"process.pid\")\n\n\t// ProcessParentPIDKey is the attribute Key conforming to the\n\t// \"process.parent_pid\" semantic conventions. It represents the parent\n\t// Process identifier (PID).\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 111\n\tProcessParentPIDKey = attribute.Key(\"process.parent_pid\")\n\n\t// ProcessExecutableNameKey is the attribute Key conforming to the\n\t// \"process.executable.name\" semantic conventions. It represents the name\n\t// of the process executable. On Linux based systems, can be set to the\n\t// `Name` in `proc/[pid]/status`. On Windows, can be set to the base name\n\t// of `GetProcessImageFileNameW`.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (See alternative attributes\n\t// below.)\n\t// Stability: stable\n\t// Examples: 'otelcol'\n\tProcessExecutableNameKey = attribute.Key(\"process.executable.name\")\n\n\t// ProcessExecutablePathKey is the attribute Key conforming to the\n\t// \"process.executable.path\" semantic conventions. It represents the full\n\t// path to the process executable. On Linux based systems, can be set to\n\t// the target of `proc/[pid]/exe`. On Windows, can be set to the result of\n\t// `GetProcessImageFileNameW`.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (See alternative attributes\n\t// below.)\n\t// Stability: stable\n\t// Examples: '/usr/bin/cmd/otelcol'\n\tProcessExecutablePathKey = attribute.Key(\"process.executable.path\")\n\n\t// ProcessCommandKey is the attribute Key conforming to the\n\t// \"process.command\" semantic conventions. It represents the command used\n\t// to launch the process (i.e. the command name). On Linux based systems,\n\t// can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can\n\t// be set to the first parameter extracted from `GetCommandLineW`.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (See alternative attributes\n\t// below.)\n\t// Stability: stable\n\t// Examples: 'cmd/otelcol'\n\tProcessCommandKey = attribute.Key(\"process.command\")\n\n\t// ProcessCommandLineKey is the attribute Key conforming to the\n\t// \"process.command_line\" semantic conventions. It represents the full\n\t// command used to launch the process as a single string representing the\n\t// full command. On Windows, can be set to the result of `GetCommandLineW`.\n\t// Do not set this if you have to assemble it just for monitoring; use\n\t// `process.command_args` instead.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (See alternative attributes\n\t// below.)\n\t// Stability: stable\n\t// Examples: 'C:\\\\cmd\\\\otecol --config=\"my directory\\\\config.yaml\"'\n\tProcessCommandLineKey = attribute.Key(\"process.command_line\")\n\n\t// ProcessCommandArgsKey is the attribute Key conforming to the\n\t// \"process.command_args\" semantic conventions. It represents the all the\n\t// command arguments (including the command/executable itself) as received\n\t// by the process. On Linux-based systems (and some other Unixoid systems\n\t// supporting procfs), can be set according to the list of null-delimited\n\t// strings extracted from `proc/[pid]/cmdline`. For libc-based executables,\n\t// this would be the full argv vector passed to `main`.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: ConditionallyRequired (See alternative attributes\n\t// below.)\n\t// Stability: stable\n\t// Examples: 'cmd/otecol', '--config=config.yaml'\n\tProcessCommandArgsKey = attribute.Key(\"process.command_args\")\n\n\t// ProcessOwnerKey is the attribute Key conforming to the \"process.owner\"\n\t// semantic conventions. It represents the username of the user that owns\n\t// the process.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'root'\n\tProcessOwnerKey = attribute.Key(\"process.owner\")\n)\n\n// ProcessPID returns an attribute KeyValue conforming to the \"process.pid\"\n// semantic conventions. It represents the process identifier (PID).\nfunc ProcessPID(val int) attribute.KeyValue {\n\treturn ProcessPIDKey.Int(val)\n}\n\n// ProcessParentPID returns an attribute KeyValue conforming to the\n// \"process.parent_pid\" semantic conventions. It represents the parent Process\n// identifier (PID).\nfunc ProcessParentPID(val int) attribute.KeyValue {\n\treturn ProcessParentPIDKey.Int(val)\n}\n\n// ProcessExecutableName returns an attribute KeyValue conforming to the\n// \"process.executable.name\" semantic conventions. It represents the name of\n// the process executable. On Linux based systems, can be set to the `Name` in\n// `proc/[pid]/status`. On Windows, can be set to the base name of\n// `GetProcessImageFileNameW`.\nfunc ProcessExecutableName(val string) attribute.KeyValue {\n\treturn ProcessExecutableNameKey.String(val)\n}\n\n// ProcessExecutablePath returns an attribute KeyValue conforming to the\n// \"process.executable.path\" semantic conventions. It represents the full path\n// to the process executable. On Linux based systems, can be set to the target\n// of `proc/[pid]/exe`. On Windows, can be set to the result of\n// `GetProcessImageFileNameW`.\nfunc ProcessExecutablePath(val string) attribute.KeyValue {\n\treturn ProcessExecutablePathKey.String(val)\n}\n\n// ProcessCommand returns an attribute KeyValue conforming to the\n// \"process.command\" semantic conventions. It represents the command used to\n// launch the process (i.e. the command name). On Linux based systems, can be\n// set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to\n// the first parameter extracted from `GetCommandLineW`.\nfunc ProcessCommand(val string) attribute.KeyValue {\n\treturn ProcessCommandKey.String(val)\n}\n\n// ProcessCommandLine returns an attribute KeyValue conforming to the\n// \"process.command_line\" semantic conventions. It represents the full command\n// used to launch the process as a single string representing the full command.\n// On Windows, can be set to the result of `GetCommandLineW`. Do not set this\n// if you have to assemble it just for monitoring; use `process.command_args`\n// instead.\nfunc ProcessCommandLine(val string) attribute.KeyValue {\n\treturn ProcessCommandLineKey.String(val)\n}\n\n// ProcessCommandArgs returns an attribute KeyValue conforming to the\n// \"process.command_args\" semantic conventions. It represents the all the\n// command arguments (including the command/executable itself) as received by\n// the process. On Linux-based systems (and some other Unixoid systems\n// supporting procfs), can be set according to the list of null-delimited\n// strings extracted from `proc/[pid]/cmdline`. For libc-based executables,\n// this would be the full argv vector passed to `main`.\nfunc ProcessCommandArgs(val ...string) attribute.KeyValue {\n\treturn ProcessCommandArgsKey.StringSlice(val)\n}\n\n// ProcessOwner returns an attribute KeyValue conforming to the\n// \"process.owner\" semantic conventions. It represents the username of the user\n// that owns the process.\nfunc ProcessOwner(val string) attribute.KeyValue {\n\treturn ProcessOwnerKey.String(val)\n}\n\n// The single (language) runtime instance which is monitored.\nconst (\n\t// ProcessRuntimeNameKey is the attribute Key conforming to the\n\t// \"process.runtime.name\" semantic conventions. It represents the name of\n\t// the runtime of this process. For compiled native binaries, this SHOULD\n\t// be the name of the compiler.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'OpenJDK Runtime Environment'\n\tProcessRuntimeNameKey = attribute.Key(\"process.runtime.name\")\n\n\t// ProcessRuntimeVersionKey is the attribute Key conforming to the\n\t// \"process.runtime.version\" semantic conventions. It represents the\n\t// version of the runtime of this process, as returned by the runtime\n\t// without modification.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '14.0.2'\n\tProcessRuntimeVersionKey = attribute.Key(\"process.runtime.version\")\n\n\t// ProcessRuntimeDescriptionKey is the attribute Key conforming to the\n\t// \"process.runtime.description\" semantic conventions. It represents an\n\t// additional description about the runtime of the process, for example a\n\t// specific vendor customization of the runtime environment.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0'\n\tProcessRuntimeDescriptionKey = attribute.Key(\"process.runtime.description\")\n)\n\n// ProcessRuntimeName returns an attribute KeyValue conforming to the\n// \"process.runtime.name\" semantic conventions. It represents the name of the\n// runtime of this process. For compiled native binaries, this SHOULD be the\n// name of the compiler.\nfunc ProcessRuntimeName(val string) attribute.KeyValue {\n\treturn ProcessRuntimeNameKey.String(val)\n}\n\n// ProcessRuntimeVersion returns an attribute KeyValue conforming to the\n// \"process.runtime.version\" semantic conventions. It represents the version of\n// the runtime of this process, as returned by the runtime without\n// modification.\nfunc ProcessRuntimeVersion(val string) attribute.KeyValue {\n\treturn ProcessRuntimeVersionKey.String(val)\n}\n\n// ProcessRuntimeDescription returns an attribute KeyValue conforming to the\n// \"process.runtime.description\" semantic conventions. It represents an\n// additional description about the runtime of the process, for example a\n// specific vendor customization of the runtime environment.\nfunc ProcessRuntimeDescription(val string) attribute.KeyValue {\n\treturn ProcessRuntimeDescriptionKey.String(val)\n}\n\n// A service instance.\nconst (\n\t// ServiceNameKey is the attribute Key conforming to the \"service.name\"\n\t// semantic conventions. It represents the logical name of the service.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'shoppingcart'\n\t// Note: MUST be the same for all instances of horizontally scaled\n\t// services. If the value was not specified, SDKs MUST fallback to\n\t// `unknown_service:` concatenated with\n\t// [`process.executable.name`](process.md#process), e.g.\n\t// `unknown_service:bash`. If `process.executable.name` is not available,\n\t// the value MUST be set to `unknown_service`.\n\tServiceNameKey = attribute.Key(\"service.name\")\n)\n\n// ServiceName returns an attribute KeyValue conforming to the\n// \"service.name\" semantic conventions. It represents the logical name of the\n// service.\nfunc ServiceName(val string) attribute.KeyValue {\n\treturn ServiceNameKey.String(val)\n}\n\n// A service instance.\nconst (\n\t// ServiceNamespaceKey is the attribute Key conforming to the\n\t// \"service.namespace\" semantic conventions. It represents a namespace for\n\t// `service.name`.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Shop'\n\t// Note: A string value having a meaning that helps to distinguish a group\n\t// of services, for example the team name that owns a group of services.\n\t// `service.name` is expected to be unique within the same namespace. If\n\t// `service.namespace` is not specified in the Resource then `service.name`\n\t// is expected to be unique for all services that have no explicit\n\t// namespace defined (so the empty/unspecified namespace is simply one more\n\t// valid namespace). Zero-length namespace string is assumed equal to\n\t// unspecified namespace.\n\tServiceNamespaceKey = attribute.Key(\"service.namespace\")\n\n\t// ServiceInstanceIDKey is the attribute Key conforming to the\n\t// \"service.instance.id\" semantic conventions. It represents the string ID\n\t// of the service instance.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'my-k8s-pod-deployment-1',\n\t// '627cc493-f310-47de-96bd-71410b7dec09'\n\t// Note: MUST be unique for each instance of the same\n\t// `service.namespace,service.name` pair (in other words\n\t// `service.namespace,service.name,service.instance.id` triplet MUST be\n\t// globally unique). The ID helps to distinguish instances of the same\n\t// service that exist at the same time (e.g. instances of a horizontally\n\t// scaled service). It is preferable for the ID to be persistent and stay\n\t// the same for the lifetime of the service instance, however it is\n\t// acceptable that the ID is ephemeral and changes during important\n\t// lifetime events for the service (e.g. service restarts). If the service\n\t// has no inherent unique ID that can be used as the value of this\n\t// attribute it is recommended to generate a random Version 1 or Version 4\n\t// RFC 4122 UUID (services aiming for reproducible UUIDs may also use\n\t// Version 5, see RFC 4122 for more recommendations).\n\tServiceInstanceIDKey = attribute.Key(\"service.instance.id\")\n\n\t// ServiceVersionKey is the attribute Key conforming to the\n\t// \"service.version\" semantic conventions. It represents the version string\n\t// of the service API or implementation.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '2.0.0'\n\tServiceVersionKey = attribute.Key(\"service.version\")\n)\n\n// ServiceNamespace returns an attribute KeyValue conforming to the\n// \"service.namespace\" semantic conventions. It represents a namespace for\n// `service.name`.\nfunc ServiceNamespace(val string) attribute.KeyValue {\n\treturn ServiceNamespaceKey.String(val)\n}\n\n// ServiceInstanceID returns an attribute KeyValue conforming to the\n// \"service.instance.id\" semantic conventions. It represents the string ID of\n// the service instance.\nfunc ServiceInstanceID(val string) attribute.KeyValue {\n\treturn ServiceInstanceIDKey.String(val)\n}\n\n// ServiceVersion returns an attribute KeyValue conforming to the\n// \"service.version\" semantic conventions. It represents the version string of\n// the service API or implementation.\nfunc ServiceVersion(val string) attribute.KeyValue {\n\treturn ServiceVersionKey.String(val)\n}\n\n// The telemetry SDK used to capture data recorded by the instrumentation\n// libraries.\nconst (\n\t// TelemetrySDKNameKey is the attribute Key conforming to the\n\t// \"telemetry.sdk.name\" semantic conventions. It represents the name of the\n\t// telemetry SDK as defined above.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'opentelemetry'\n\tTelemetrySDKNameKey = attribute.Key(\"telemetry.sdk.name\")\n\n\t// TelemetrySDKLanguageKey is the attribute Key conforming to the\n\t// \"telemetry.sdk.language\" semantic conventions. It represents the\n\t// language of the telemetry SDK.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: stable\n\tTelemetrySDKLanguageKey = attribute.Key(\"telemetry.sdk.language\")\n\n\t// TelemetrySDKVersionKey is the attribute Key conforming to the\n\t// \"telemetry.sdk.version\" semantic conventions. It represents the version\n\t// string of the telemetry SDK.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: '1.2.3'\n\tTelemetrySDKVersionKey = attribute.Key(\"telemetry.sdk.version\")\n)\n\nvar (\n\t// cpp\n\tTelemetrySDKLanguageCPP = TelemetrySDKLanguageKey.String(\"cpp\")\n\t// dotnet\n\tTelemetrySDKLanguageDotnet = TelemetrySDKLanguageKey.String(\"dotnet\")\n\t// erlang\n\tTelemetrySDKLanguageErlang = TelemetrySDKLanguageKey.String(\"erlang\")\n\t// go\n\tTelemetrySDKLanguageGo = TelemetrySDKLanguageKey.String(\"go\")\n\t// java\n\tTelemetrySDKLanguageJava = TelemetrySDKLanguageKey.String(\"java\")\n\t// nodejs\n\tTelemetrySDKLanguageNodejs = TelemetrySDKLanguageKey.String(\"nodejs\")\n\t// php\n\tTelemetrySDKLanguagePHP = TelemetrySDKLanguageKey.String(\"php\")\n\t// python\n\tTelemetrySDKLanguagePython = TelemetrySDKLanguageKey.String(\"python\")\n\t// ruby\n\tTelemetrySDKLanguageRuby = TelemetrySDKLanguageKey.String(\"ruby\")\n\t// webjs\n\tTelemetrySDKLanguageWebjs = TelemetrySDKLanguageKey.String(\"webjs\")\n\t// swift\n\tTelemetrySDKLanguageSwift = TelemetrySDKLanguageKey.String(\"swift\")\n)\n\n// TelemetrySDKName returns an attribute KeyValue conforming to the\n// \"telemetry.sdk.name\" semantic conventions. It represents the name of the\n// telemetry SDK as defined above.\nfunc TelemetrySDKName(val string) attribute.KeyValue {\n\treturn TelemetrySDKNameKey.String(val)\n}\n\n// TelemetrySDKVersion returns an attribute KeyValue conforming to the\n// \"telemetry.sdk.version\" semantic conventions. It represents the version\n// string of the telemetry SDK.\nfunc TelemetrySDKVersion(val string) attribute.KeyValue {\n\treturn TelemetrySDKVersionKey.String(val)\n}\n\n// The telemetry SDK used to capture data recorded by the instrumentation\n// libraries.\nconst (\n\t// TelemetryAutoVersionKey is the attribute Key conforming to the\n\t// \"telemetry.auto.version\" semantic conventions. It represents the version\n\t// string of the auto instrumentation agent, if used.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '1.2.3'\n\tTelemetryAutoVersionKey = attribute.Key(\"telemetry.auto.version\")\n)\n\n// TelemetryAutoVersion returns an attribute KeyValue conforming to the\n// \"telemetry.auto.version\" semantic conventions. It represents the version\n// string of the auto instrumentation agent, if used.\nfunc TelemetryAutoVersion(val string) attribute.KeyValue {\n\treturn TelemetryAutoVersionKey.String(val)\n}\n\n// Resource describing the packaged software running the application code. Web\n// engines are typically executed using process.runtime.\nconst (\n\t// WebEngineNameKey is the attribute Key conforming to the \"webengine.name\"\n\t// semantic conventions. It represents the name of the web engine.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'WildFly'\n\tWebEngineNameKey = attribute.Key(\"webengine.name\")\n\n\t// WebEngineVersionKey is the attribute Key conforming to the\n\t// \"webengine.version\" semantic conventions. It represents the version of\n\t// the web engine.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '21.0.0'\n\tWebEngineVersionKey = attribute.Key(\"webengine.version\")\n\n\t// WebEngineDescriptionKey is the attribute Key conforming to the\n\t// \"webengine.description\" semantic conventions. It represents the\n\t// additional description of the web engine (e.g. detailed version and\n\t// edition information).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) -\n\t// 2.2.2.Final'\n\tWebEngineDescriptionKey = attribute.Key(\"webengine.description\")\n)\n\n// WebEngineName returns an attribute KeyValue conforming to the\n// \"webengine.name\" semantic conventions. It represents the name of the web\n// engine.\nfunc WebEngineName(val string) attribute.KeyValue {\n\treturn WebEngineNameKey.String(val)\n}\n\n// WebEngineVersion returns an attribute KeyValue conforming to the\n// \"webengine.version\" semantic conventions. It represents the version of the\n// web engine.\nfunc WebEngineVersion(val string) attribute.KeyValue {\n\treturn WebEngineVersionKey.String(val)\n}\n\n// WebEngineDescription returns an attribute KeyValue conforming to the\n// \"webengine.description\" semantic conventions. It represents the additional\n// description of the web engine (e.g. detailed version and edition\n// information).\nfunc WebEngineDescription(val string) attribute.KeyValue {\n\treturn WebEngineDescriptionKey.String(val)\n}\n\n// Attributes used by non-OTLP exporters to represent OpenTelemetry Scope's\n// concepts.\nconst (\n\t// OTelScopeNameKey is the attribute Key conforming to the\n\t// \"otel.scope.name\" semantic conventions. It represents the name of the\n\t// instrumentation scope - (`InstrumentationScope.Name` in OTLP).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'io.opentelemetry.contrib.mongodb'\n\tOTelScopeNameKey = attribute.Key(\"otel.scope.name\")\n\n\t// OTelScopeVersionKey is the attribute Key conforming to the\n\t// \"otel.scope.version\" semantic conventions. It represents the version of\n\t// the instrumentation scope - (`InstrumentationScope.Version` in OTLP).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '1.0.0'\n\tOTelScopeVersionKey = attribute.Key(\"otel.scope.version\")\n)\n\n// OTelScopeName returns an attribute KeyValue conforming to the\n// \"otel.scope.name\" semantic conventions. It represents the name of the\n// instrumentation scope - (`InstrumentationScope.Name` in OTLP).\nfunc OTelScopeName(val string) attribute.KeyValue {\n\treturn OTelScopeNameKey.String(val)\n}\n\n// OTelScopeVersion returns an attribute KeyValue conforming to the\n// \"otel.scope.version\" semantic conventions. It represents the version of the\n// instrumentation scope - (`InstrumentationScope.Version` in OTLP).\nfunc OTelScopeVersion(val string) attribute.KeyValue {\n\treturn OTelScopeVersionKey.String(val)\n}\n\n// Span attributes used by non-OTLP exporters to represent OpenTelemetry\n// Scope's concepts.\nconst (\n\t// OTelLibraryNameKey is the attribute Key conforming to the\n\t// \"otel.library.name\" semantic conventions. It represents the deprecated,\n\t// use the `otel.scope.name` attribute.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 'io.opentelemetry.contrib.mongodb'\n\tOTelLibraryNameKey = attribute.Key(\"otel.library.name\")\n\n\t// OTelLibraryVersionKey is the attribute Key conforming to the\n\t// \"otel.library.version\" semantic conventions. It represents the\n\t// deprecated, use the `otel.scope.version` attribute.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: '1.0.0'\n\tOTelLibraryVersionKey = attribute.Key(\"otel.library.version\")\n)\n\n// OTelLibraryName returns an attribute KeyValue conforming to the\n// \"otel.library.name\" semantic conventions. It represents the deprecated, use\n// the `otel.scope.name` attribute.\nfunc OTelLibraryName(val string) attribute.KeyValue {\n\treturn OTelLibraryNameKey.String(val)\n}\n\n// OTelLibraryVersion returns an attribute KeyValue conforming to the\n// \"otel.library.version\" semantic conventions. It represents the deprecated,\n// use the `otel.scope.version` attribute.\nfunc OTelLibraryVersion(val string) attribute.KeyValue {\n\treturn OTelLibraryVersionKey.String(val)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.20.0/schema.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n\n// SchemaURL is the schema URL that matches the version of the semantic conventions\n// that this package defines. Semconv packages starting from v1.4.0 must declare\n// non-empty schema URL in the form https://opentelemetry.io/schemas/<version>\nconst SchemaURL = \"https://opentelemetry.io/schemas/1.20.0\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.20.0/trace.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Code generated from semantic convention specification. DO NOT EDIT.\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.20.0\"\n\nimport \"go.opentelemetry.io/otel/attribute\"\n\n// The shared attributes used to report a single exception associated with a\n// span or log.\nconst (\n\t// ExceptionTypeKey is the attribute Key conforming to the \"exception.type\"\n\t// semantic conventions. It represents the type of the exception (its\n\t// fully-qualified class name, if applicable). The dynamic type of the\n\t// exception should be preferred over the static type in languages that\n\t// support it.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'java.net.ConnectException', 'OSError'\n\tExceptionTypeKey = attribute.Key(\"exception.type\")\n\n\t// ExceptionMessageKey is the attribute Key conforming to the\n\t// \"exception.message\" semantic conventions. It represents the exception\n\t// message.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Division by zero', \"Can't convert 'int' object to str\n\t// implicitly\"\n\tExceptionMessageKey = attribute.Key(\"exception.message\")\n\n\t// ExceptionStacktraceKey is the attribute Key conforming to the\n\t// \"exception.stacktrace\" semantic conventions. It represents a stacktrace\n\t// as a string in the natural representation for the language runtime. The\n\t// representation is to be determined and documented by each language SIG.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Exception in thread \"main\" java.lang.RuntimeException: Test\n\t// exception\\\\n at '\n\t//  'com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\\\n at '\n\t//  'com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\\\n at '\n\t//  'com.example.GenerateTrace.main(GenerateTrace.java:5)'\n\tExceptionStacktraceKey = attribute.Key(\"exception.stacktrace\")\n)\n\n// ExceptionType returns an attribute KeyValue conforming to the\n// \"exception.type\" semantic conventions. It represents the type of the\n// exception (its fully-qualified class name, if applicable). The dynamic type\n// of the exception should be preferred over the static type in languages that\n// support it.\nfunc ExceptionType(val string) attribute.KeyValue {\n\treturn ExceptionTypeKey.String(val)\n}\n\n// ExceptionMessage returns an attribute KeyValue conforming to the\n// \"exception.message\" semantic conventions. It represents the exception\n// message.\nfunc ExceptionMessage(val string) attribute.KeyValue {\n\treturn ExceptionMessageKey.String(val)\n}\n\n// ExceptionStacktrace returns an attribute KeyValue conforming to the\n// \"exception.stacktrace\" semantic conventions. It represents a stacktrace as a\n// string in the natural representation for the language runtime. The\n// representation is to be determined and documented by each language SIG.\nfunc ExceptionStacktrace(val string) attribute.KeyValue {\n\treturn ExceptionStacktraceKey.String(val)\n}\n\n// The attributes described in this section are rather generic. They may be\n// used in any Log Record they apply to.\nconst (\n\t// LogRecordUIDKey is the attribute Key conforming to the \"log.record.uid\"\n\t// semantic conventions. It represents a unique identifier for the Log\n\t// Record.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '01ARZ3NDEKTSV4RRFFQ69G5FAV'\n\t// Note: If an id is provided, other log records with the same id will be\n\t// considered duplicates and can be removed safely. This means, that two\n\t// distinguishable log records MUST have different values.\n\t// The id MAY be an [Universally Unique Lexicographically Sortable\n\t// Identifier (ULID)](https://github.com/ulid/spec), but other identifiers\n\t// (e.g. UUID) may be used as needed.\n\tLogRecordUIDKey = attribute.Key(\"log.record.uid\")\n)\n\n// LogRecordUID returns an attribute KeyValue conforming to the\n// \"log.record.uid\" semantic conventions. It represents a unique identifier for\n// the Log Record.\nfunc LogRecordUID(val string) attribute.KeyValue {\n\treturn LogRecordUIDKey.String(val)\n}\n\n// Span attributes used by AWS Lambda (in addition to general `faas`\n// attributes).\nconst (\n\t// AWSLambdaInvokedARNKey is the attribute Key conforming to the\n\t// \"aws.lambda.invoked_arn\" semantic conventions. It represents the full\n\t// invoked ARN as provided on the `Context` passed to the function\n\t// (`Lambda-Runtime-Invoked-Function-ARN` header on the\n\t// `/runtime/invocation/next` applicable).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'arn:aws:lambda:us-east-1:123456:function:myfunction:myalias'\n\t// Note: This may be different from `cloud.resource_id` if an alias is\n\t// involved.\n\tAWSLambdaInvokedARNKey = attribute.Key(\"aws.lambda.invoked_arn\")\n)\n\n// AWSLambdaInvokedARN returns an attribute KeyValue conforming to the\n// \"aws.lambda.invoked_arn\" semantic conventions. It represents the full\n// invoked ARN as provided on the `Context` passed to the function\n// (`Lambda-Runtime-Invoked-Function-ARN` header on the\n// `/runtime/invocation/next` applicable).\nfunc AWSLambdaInvokedARN(val string) attribute.KeyValue {\n\treturn AWSLambdaInvokedARNKey.String(val)\n}\n\n// Attributes for CloudEvents. CloudEvents is a specification on how to define\n// event data in a standard way. These attributes can be attached to spans when\n// performing operations with CloudEvents, regardless of the protocol being\n// used.\nconst (\n\t// CloudeventsEventIDKey is the attribute Key conforming to the\n\t// \"cloudevents.event_id\" semantic conventions. It represents the\n\t// [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id)\n\t// uniquely identifies the event.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: '123e4567-e89b-12d3-a456-426614174000', '0001'\n\tCloudeventsEventIDKey = attribute.Key(\"cloudevents.event_id\")\n\n\t// CloudeventsEventSourceKey is the attribute Key conforming to the\n\t// \"cloudevents.event_source\" semantic conventions. It represents the\n\t// [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1)\n\t// identifies the context in which an event happened.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'https://github.com/cloudevents',\n\t// '/cloudevents/spec/pull/123', 'my-service'\n\tCloudeventsEventSourceKey = attribute.Key(\"cloudevents.event_source\")\n\n\t// CloudeventsEventSpecVersionKey is the attribute Key conforming to the\n\t// \"cloudevents.event_spec_version\" semantic conventions. It represents the\n\t// [version of the CloudEvents\n\t// specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion)\n\t// which the event uses.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '1.0'\n\tCloudeventsEventSpecVersionKey = attribute.Key(\"cloudevents.event_spec_version\")\n\n\t// CloudeventsEventTypeKey is the attribute Key conforming to the\n\t// \"cloudevents.event_type\" semantic conventions. It represents the\n\t// [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type)\n\t// contains a value describing the type of event related to the originating\n\t// occurrence.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'com.github.pull_request.opened',\n\t// 'com.example.object.deleted.v2'\n\tCloudeventsEventTypeKey = attribute.Key(\"cloudevents.event_type\")\n\n\t// CloudeventsEventSubjectKey is the attribute Key conforming to the\n\t// \"cloudevents.event_subject\" semantic conventions. It represents the\n\t// [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject)\n\t// of the event in the context of the event producer (identified by\n\t// source).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'mynewfile.jpg'\n\tCloudeventsEventSubjectKey = attribute.Key(\"cloudevents.event_subject\")\n)\n\n// CloudeventsEventID returns an attribute KeyValue conforming to the\n// \"cloudevents.event_id\" semantic conventions. It represents the\n// [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id)\n// uniquely identifies the event.\nfunc CloudeventsEventID(val string) attribute.KeyValue {\n\treturn CloudeventsEventIDKey.String(val)\n}\n\n// CloudeventsEventSource returns an attribute KeyValue conforming to the\n// \"cloudevents.event_source\" semantic conventions. It represents the\n// [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1)\n// identifies the context in which an event happened.\nfunc CloudeventsEventSource(val string) attribute.KeyValue {\n\treturn CloudeventsEventSourceKey.String(val)\n}\n\n// CloudeventsEventSpecVersion returns an attribute KeyValue conforming to\n// the \"cloudevents.event_spec_version\" semantic conventions. It represents the\n// [version of the CloudEvents\n// specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion)\n// which the event uses.\nfunc CloudeventsEventSpecVersion(val string) attribute.KeyValue {\n\treturn CloudeventsEventSpecVersionKey.String(val)\n}\n\n// CloudeventsEventType returns an attribute KeyValue conforming to the\n// \"cloudevents.event_type\" semantic conventions. It represents the\n// [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type)\n// contains a value describing the type of event related to the originating\n// occurrence.\nfunc CloudeventsEventType(val string) attribute.KeyValue {\n\treturn CloudeventsEventTypeKey.String(val)\n}\n\n// CloudeventsEventSubject returns an attribute KeyValue conforming to the\n// \"cloudevents.event_subject\" semantic conventions. It represents the\n// [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject)\n// of the event in the context of the event producer (identified by source).\nfunc CloudeventsEventSubject(val string) attribute.KeyValue {\n\treturn CloudeventsEventSubjectKey.String(val)\n}\n\n// Semantic conventions for the OpenTracing Shim\nconst (\n\t// OpentracingRefTypeKey is the attribute Key conforming to the\n\t// \"opentracing.ref_type\" semantic conventions. It represents the\n\t// parent-child Reference type\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Note: The causal relationship between a child Span and a parent Span.\n\tOpentracingRefTypeKey = attribute.Key(\"opentracing.ref_type\")\n)\n\nvar (\n\t// The parent Span depends on the child Span in some capacity\n\tOpentracingRefTypeChildOf = OpentracingRefTypeKey.String(\"child_of\")\n\t// The parent Span does not depend in any way on the result of the child Span\n\tOpentracingRefTypeFollowsFrom = OpentracingRefTypeKey.String(\"follows_from\")\n)\n\n// The attributes used to perform database client calls.\nconst (\n\t// DBSystemKey is the attribute Key conforming to the \"db.system\" semantic\n\t// conventions. It represents an identifier for the database management\n\t// system (DBMS) product being used. See below for a list of well-known\n\t// identifiers.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: stable\n\tDBSystemKey = attribute.Key(\"db.system\")\n\n\t// DBConnectionStringKey is the attribute Key conforming to the\n\t// \"db.connection_string\" semantic conventions. It represents the\n\t// connection string used to connect to the database. It is recommended to\n\t// remove embedded credentials.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Server=(localdb)\\\\v11.0;Integrated Security=true;'\n\tDBConnectionStringKey = attribute.Key(\"db.connection_string\")\n\n\t// DBUserKey is the attribute Key conforming to the \"db.user\" semantic\n\t// conventions. It represents the username for accessing the database.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'readonly_user', 'reporting_user'\n\tDBUserKey = attribute.Key(\"db.user\")\n\n\t// DBJDBCDriverClassnameKey is the attribute Key conforming to the\n\t// \"db.jdbc.driver_classname\" semantic conventions. It represents the\n\t// fully-qualified class name of the [Java Database Connectivity\n\t// (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/)\n\t// driver used to connect.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'org.postgresql.Driver',\n\t// 'com.microsoft.sqlserver.jdbc.SQLServerDriver'\n\tDBJDBCDriverClassnameKey = attribute.Key(\"db.jdbc.driver_classname\")\n\n\t// DBNameKey is the attribute Key conforming to the \"db.name\" semantic\n\t// conventions. It represents the this attribute is used to report the name\n\t// of the database being accessed. For commands that switch the database,\n\t// this should be set to the target database (even if the command fails).\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (If applicable.)\n\t// Stability: stable\n\t// Examples: 'customers', 'main'\n\t// Note: In some SQL databases, the database name to be used is called\n\t// \"schema name\". In case there are multiple layers that could be\n\t// considered for database name (e.g. Oracle instance name and schema\n\t// name), the database name to be used is the more specific layer (e.g.\n\t// Oracle schema name).\n\tDBNameKey = attribute.Key(\"db.name\")\n\n\t// DBStatementKey is the attribute Key conforming to the \"db.statement\"\n\t// semantic conventions. It represents the database statement being\n\t// executed.\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended (Should be collected by default only if\n\t// there is sanitization that excludes sensitive information.)\n\t// Stability: stable\n\t// Examples: 'SELECT * FROM wuser_table', 'SET mykey \"WuValue\"'\n\tDBStatementKey = attribute.Key(\"db.statement\")\n\n\t// DBOperationKey is the attribute Key conforming to the \"db.operation\"\n\t// semantic conventions. It represents the name of the operation being\n\t// executed, e.g. the [MongoDB command\n\t// name](https://docs.mongodb.com/manual/reference/command/#database-operations)\n\t// such as `findAndModify`, or the SQL keyword.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (If `db.statement` is not\n\t// applicable.)\n\t// Stability: stable\n\t// Examples: 'findAndModify', 'HMSET', 'SELECT'\n\t// Note: When setting this to an SQL keyword, it is not recommended to\n\t// attempt any client-side parsing of `db.statement` just to get this\n\t// property, but it should be set if the operation name is provided by the\n\t// library being instrumented. If the SQL statement has an ambiguous\n\t// operation, or performs more than one operation, this value may be\n\t// omitted.\n\tDBOperationKey = attribute.Key(\"db.operation\")\n)\n\nvar (\n\t// Some other SQL database. Fallback only. See notes\n\tDBSystemOtherSQL = DBSystemKey.String(\"other_sql\")\n\t// Microsoft SQL Server\n\tDBSystemMSSQL = DBSystemKey.String(\"mssql\")\n\t// Microsoft SQL Server Compact\n\tDBSystemMssqlcompact = DBSystemKey.String(\"mssqlcompact\")\n\t// MySQL\n\tDBSystemMySQL = DBSystemKey.String(\"mysql\")\n\t// Oracle Database\n\tDBSystemOracle = DBSystemKey.String(\"oracle\")\n\t// IBM DB2\n\tDBSystemDB2 = DBSystemKey.String(\"db2\")\n\t// PostgreSQL\n\tDBSystemPostgreSQL = DBSystemKey.String(\"postgresql\")\n\t// Amazon Redshift\n\tDBSystemRedshift = DBSystemKey.String(\"redshift\")\n\t// Apache Hive\n\tDBSystemHive = DBSystemKey.String(\"hive\")\n\t// Cloudscape\n\tDBSystemCloudscape = DBSystemKey.String(\"cloudscape\")\n\t// HyperSQL DataBase\n\tDBSystemHSQLDB = DBSystemKey.String(\"hsqldb\")\n\t// Progress Database\n\tDBSystemProgress = DBSystemKey.String(\"progress\")\n\t// SAP MaxDB\n\tDBSystemMaxDB = DBSystemKey.String(\"maxdb\")\n\t// SAP HANA\n\tDBSystemHanaDB = DBSystemKey.String(\"hanadb\")\n\t// Ingres\n\tDBSystemIngres = DBSystemKey.String(\"ingres\")\n\t// FirstSQL\n\tDBSystemFirstSQL = DBSystemKey.String(\"firstsql\")\n\t// EnterpriseDB\n\tDBSystemEDB = DBSystemKey.String(\"edb\")\n\t// InterSystems Caché\n\tDBSystemCache = DBSystemKey.String(\"cache\")\n\t// Adabas (Adaptable Database System)\n\tDBSystemAdabas = DBSystemKey.String(\"adabas\")\n\t// Firebird\n\tDBSystemFirebird = DBSystemKey.String(\"firebird\")\n\t// Apache Derby\n\tDBSystemDerby = DBSystemKey.String(\"derby\")\n\t// FileMaker\n\tDBSystemFilemaker = DBSystemKey.String(\"filemaker\")\n\t// Informix\n\tDBSystemInformix = DBSystemKey.String(\"informix\")\n\t// InstantDB\n\tDBSystemInstantDB = DBSystemKey.String(\"instantdb\")\n\t// InterBase\n\tDBSystemInterbase = DBSystemKey.String(\"interbase\")\n\t// MariaDB\n\tDBSystemMariaDB = DBSystemKey.String(\"mariadb\")\n\t// Netezza\n\tDBSystemNetezza = DBSystemKey.String(\"netezza\")\n\t// Pervasive PSQL\n\tDBSystemPervasive = DBSystemKey.String(\"pervasive\")\n\t// PointBase\n\tDBSystemPointbase = DBSystemKey.String(\"pointbase\")\n\t// SQLite\n\tDBSystemSqlite = DBSystemKey.String(\"sqlite\")\n\t// Sybase\n\tDBSystemSybase = DBSystemKey.String(\"sybase\")\n\t// Teradata\n\tDBSystemTeradata = DBSystemKey.String(\"teradata\")\n\t// Vertica\n\tDBSystemVertica = DBSystemKey.String(\"vertica\")\n\t// H2\n\tDBSystemH2 = DBSystemKey.String(\"h2\")\n\t// ColdFusion IMQ\n\tDBSystemColdfusion = DBSystemKey.String(\"coldfusion\")\n\t// Apache Cassandra\n\tDBSystemCassandra = DBSystemKey.String(\"cassandra\")\n\t// Apache HBase\n\tDBSystemHBase = DBSystemKey.String(\"hbase\")\n\t// MongoDB\n\tDBSystemMongoDB = DBSystemKey.String(\"mongodb\")\n\t// Redis\n\tDBSystemRedis = DBSystemKey.String(\"redis\")\n\t// Couchbase\n\tDBSystemCouchbase = DBSystemKey.String(\"couchbase\")\n\t// CouchDB\n\tDBSystemCouchDB = DBSystemKey.String(\"couchdb\")\n\t// Microsoft Azure Cosmos DB\n\tDBSystemCosmosDB = DBSystemKey.String(\"cosmosdb\")\n\t// Amazon DynamoDB\n\tDBSystemDynamoDB = DBSystemKey.String(\"dynamodb\")\n\t// Neo4j\n\tDBSystemNeo4j = DBSystemKey.String(\"neo4j\")\n\t// Apache Geode\n\tDBSystemGeode = DBSystemKey.String(\"geode\")\n\t// Elasticsearch\n\tDBSystemElasticsearch = DBSystemKey.String(\"elasticsearch\")\n\t// Memcached\n\tDBSystemMemcached = DBSystemKey.String(\"memcached\")\n\t// CockroachDB\n\tDBSystemCockroachdb = DBSystemKey.String(\"cockroachdb\")\n\t// OpenSearch\n\tDBSystemOpensearch = DBSystemKey.String(\"opensearch\")\n\t// ClickHouse\n\tDBSystemClickhouse = DBSystemKey.String(\"clickhouse\")\n\t// Cloud Spanner\n\tDBSystemSpanner = DBSystemKey.String(\"spanner\")\n\t// Trino\n\tDBSystemTrino = DBSystemKey.String(\"trino\")\n)\n\n// DBConnectionString returns an attribute KeyValue conforming to the\n// \"db.connection_string\" semantic conventions. It represents the connection\n// string used to connect to the database. It is recommended to remove embedded\n// credentials.\nfunc DBConnectionString(val string) attribute.KeyValue {\n\treturn DBConnectionStringKey.String(val)\n}\n\n// DBUser returns an attribute KeyValue conforming to the \"db.user\" semantic\n// conventions. It represents the username for accessing the database.\nfunc DBUser(val string) attribute.KeyValue {\n\treturn DBUserKey.String(val)\n}\n\n// DBJDBCDriverClassname returns an attribute KeyValue conforming to the\n// \"db.jdbc.driver_classname\" semantic conventions. It represents the\n// fully-qualified class name of the [Java Database Connectivity\n// (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) driver\n// used to connect.\nfunc DBJDBCDriverClassname(val string) attribute.KeyValue {\n\treturn DBJDBCDriverClassnameKey.String(val)\n}\n\n// DBName returns an attribute KeyValue conforming to the \"db.name\" semantic\n// conventions. It represents the this attribute is used to report the name of\n// the database being accessed. For commands that switch the database, this\n// should be set to the target database (even if the command fails).\nfunc DBName(val string) attribute.KeyValue {\n\treturn DBNameKey.String(val)\n}\n\n// DBStatement returns an attribute KeyValue conforming to the\n// \"db.statement\" semantic conventions. It represents the database statement\n// being executed.\nfunc DBStatement(val string) attribute.KeyValue {\n\treturn DBStatementKey.String(val)\n}\n\n// DBOperation returns an attribute KeyValue conforming to the\n// \"db.operation\" semantic conventions. It represents the name of the operation\n// being executed, e.g. the [MongoDB command\n// name](https://docs.mongodb.com/manual/reference/command/#database-operations)\n// such as `findAndModify`, or the SQL keyword.\nfunc DBOperation(val string) attribute.KeyValue {\n\treturn DBOperationKey.String(val)\n}\n\n// Connection-level attributes for Microsoft SQL Server\nconst (\n\t// DBMSSQLInstanceNameKey is the attribute Key conforming to the\n\t// \"db.mssql.instance_name\" semantic conventions. It represents the\n\t// Microsoft SQL Server [instance\n\t// name](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15)\n\t// connecting to. This name is used to determine the port of a named\n\t// instance.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'MSSQLSERVER'\n\t// Note: If setting a `db.mssql.instance_name`, `net.peer.port` is no\n\t// longer required (but still recommended if non-standard).\n\tDBMSSQLInstanceNameKey = attribute.Key(\"db.mssql.instance_name\")\n)\n\n// DBMSSQLInstanceName returns an attribute KeyValue conforming to the\n// \"db.mssql.instance_name\" semantic conventions. It represents the Microsoft\n// SQL Server [instance\n// name](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15)\n// connecting to. This name is used to determine the port of a named instance.\nfunc DBMSSQLInstanceName(val string) attribute.KeyValue {\n\treturn DBMSSQLInstanceNameKey.String(val)\n}\n\n// Call-level attributes for Cassandra\nconst (\n\t// DBCassandraPageSizeKey is the attribute Key conforming to the\n\t// \"db.cassandra.page_size\" semantic conventions. It represents the fetch\n\t// size used for paging, i.e. how many rows will be returned at once.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 5000\n\tDBCassandraPageSizeKey = attribute.Key(\"db.cassandra.page_size\")\n\n\t// DBCassandraConsistencyLevelKey is the attribute Key conforming to the\n\t// \"db.cassandra.consistency_level\" semantic conventions. It represents the\n\t// consistency level of the query. Based on consistency values from\n\t// [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tDBCassandraConsistencyLevelKey = attribute.Key(\"db.cassandra.consistency_level\")\n\n\t// DBCassandraTableKey is the attribute Key conforming to the\n\t// \"db.cassandra.table\" semantic conventions. It represents the name of the\n\t// primary table that the operation is acting upon, including the keyspace\n\t// name (if applicable).\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended\n\t// Stability: stable\n\t// Examples: 'mytable'\n\t// Note: This mirrors the db.sql.table attribute but references cassandra\n\t// rather than sql. It is not recommended to attempt any client-side\n\t// parsing of `db.statement` just to get this property, but it should be\n\t// set if it is provided by the library being instrumented. If the\n\t// operation is acting upon an anonymous table, or more than one table,\n\t// this value MUST NOT be set.\n\tDBCassandraTableKey = attribute.Key(\"db.cassandra.table\")\n\n\t// DBCassandraIdempotenceKey is the attribute Key conforming to the\n\t// \"db.cassandra.idempotence\" semantic conventions. It represents the\n\t// whether or not the query is idempotent.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tDBCassandraIdempotenceKey = attribute.Key(\"db.cassandra.idempotence\")\n\n\t// DBCassandraSpeculativeExecutionCountKey is the attribute Key conforming\n\t// to the \"db.cassandra.speculative_execution_count\" semantic conventions.\n\t// It represents the number of times a query was speculatively executed.\n\t// Not set or `0` if the query was not executed speculatively.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 0, 2\n\tDBCassandraSpeculativeExecutionCountKey = attribute.Key(\"db.cassandra.speculative_execution_count\")\n\n\t// DBCassandraCoordinatorIDKey is the attribute Key conforming to the\n\t// \"db.cassandra.coordinator.id\" semantic conventions. It represents the ID\n\t// of the coordinating node for a query.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'be13faa2-8574-4d71-926d-27f16cf8a7af'\n\tDBCassandraCoordinatorIDKey = attribute.Key(\"db.cassandra.coordinator.id\")\n\n\t// DBCassandraCoordinatorDCKey is the attribute Key conforming to the\n\t// \"db.cassandra.coordinator.dc\" semantic conventions. It represents the\n\t// data center of the coordinating node for a query.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'us-west-2'\n\tDBCassandraCoordinatorDCKey = attribute.Key(\"db.cassandra.coordinator.dc\")\n)\n\nvar (\n\t// all\n\tDBCassandraConsistencyLevelAll = DBCassandraConsistencyLevelKey.String(\"all\")\n\t// each_quorum\n\tDBCassandraConsistencyLevelEachQuorum = DBCassandraConsistencyLevelKey.String(\"each_quorum\")\n\t// quorum\n\tDBCassandraConsistencyLevelQuorum = DBCassandraConsistencyLevelKey.String(\"quorum\")\n\t// local_quorum\n\tDBCassandraConsistencyLevelLocalQuorum = DBCassandraConsistencyLevelKey.String(\"local_quorum\")\n\t// one\n\tDBCassandraConsistencyLevelOne = DBCassandraConsistencyLevelKey.String(\"one\")\n\t// two\n\tDBCassandraConsistencyLevelTwo = DBCassandraConsistencyLevelKey.String(\"two\")\n\t// three\n\tDBCassandraConsistencyLevelThree = DBCassandraConsistencyLevelKey.String(\"three\")\n\t// local_one\n\tDBCassandraConsistencyLevelLocalOne = DBCassandraConsistencyLevelKey.String(\"local_one\")\n\t// any\n\tDBCassandraConsistencyLevelAny = DBCassandraConsistencyLevelKey.String(\"any\")\n\t// serial\n\tDBCassandraConsistencyLevelSerial = DBCassandraConsistencyLevelKey.String(\"serial\")\n\t// local_serial\n\tDBCassandraConsistencyLevelLocalSerial = DBCassandraConsistencyLevelKey.String(\"local_serial\")\n)\n\n// DBCassandraPageSize returns an attribute KeyValue conforming to the\n// \"db.cassandra.page_size\" semantic conventions. It represents the fetch size\n// used for paging, i.e. how many rows will be returned at once.\nfunc DBCassandraPageSize(val int) attribute.KeyValue {\n\treturn DBCassandraPageSizeKey.Int(val)\n}\n\n// DBCassandraTable returns an attribute KeyValue conforming to the\n// \"db.cassandra.table\" semantic conventions. It represents the name of the\n// primary table that the operation is acting upon, including the keyspace name\n// (if applicable).\nfunc DBCassandraTable(val string) attribute.KeyValue {\n\treturn DBCassandraTableKey.String(val)\n}\n\n// DBCassandraIdempotence returns an attribute KeyValue conforming to the\n// \"db.cassandra.idempotence\" semantic conventions. It represents the whether\n// or not the query is idempotent.\nfunc DBCassandraIdempotence(val bool) attribute.KeyValue {\n\treturn DBCassandraIdempotenceKey.Bool(val)\n}\n\n// DBCassandraSpeculativeExecutionCount returns an attribute KeyValue\n// conforming to the \"db.cassandra.speculative_execution_count\" semantic\n// conventions. It represents the number of times a query was speculatively\n// executed. Not set or `0` if the query was not executed speculatively.\nfunc DBCassandraSpeculativeExecutionCount(val int) attribute.KeyValue {\n\treturn DBCassandraSpeculativeExecutionCountKey.Int(val)\n}\n\n// DBCassandraCoordinatorID returns an attribute KeyValue conforming to the\n// \"db.cassandra.coordinator.id\" semantic conventions. It represents the ID of\n// the coordinating node for a query.\nfunc DBCassandraCoordinatorID(val string) attribute.KeyValue {\n\treturn DBCassandraCoordinatorIDKey.String(val)\n}\n\n// DBCassandraCoordinatorDC returns an attribute KeyValue conforming to the\n// \"db.cassandra.coordinator.dc\" semantic conventions. It represents the data\n// center of the coordinating node for a query.\nfunc DBCassandraCoordinatorDC(val string) attribute.KeyValue {\n\treturn DBCassandraCoordinatorDCKey.String(val)\n}\n\n// Call-level attributes for Redis\nconst (\n\t// DBRedisDBIndexKey is the attribute Key conforming to the\n\t// \"db.redis.database_index\" semantic conventions. It represents the index\n\t// of the database being accessed as used in the [`SELECT`\n\t// command](https://redis.io/commands/select), provided as an integer. To\n\t// be used instead of the generic `db.name` attribute.\n\t//\n\t// Type: int\n\t// RequirementLevel: ConditionallyRequired (If other than the default\n\t// database (`0`).)\n\t// Stability: stable\n\t// Examples: 0, 1, 15\n\tDBRedisDBIndexKey = attribute.Key(\"db.redis.database_index\")\n)\n\n// DBRedisDBIndex returns an attribute KeyValue conforming to the\n// \"db.redis.database_index\" semantic conventions. It represents the index of\n// the database being accessed as used in the [`SELECT`\n// command](https://redis.io/commands/select), provided as an integer. To be\n// used instead of the generic `db.name` attribute.\nfunc DBRedisDBIndex(val int) attribute.KeyValue {\n\treturn DBRedisDBIndexKey.Int(val)\n}\n\n// Call-level attributes for MongoDB\nconst (\n\t// DBMongoDBCollectionKey is the attribute Key conforming to the\n\t// \"db.mongodb.collection\" semantic conventions. It represents the\n\t// collection being accessed within the database stated in `db.name`.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'customers', 'products'\n\tDBMongoDBCollectionKey = attribute.Key(\"db.mongodb.collection\")\n)\n\n// DBMongoDBCollection returns an attribute KeyValue conforming to the\n// \"db.mongodb.collection\" semantic conventions. It represents the collection\n// being accessed within the database stated in `db.name`.\nfunc DBMongoDBCollection(val string) attribute.KeyValue {\n\treturn DBMongoDBCollectionKey.String(val)\n}\n\n// Call-level attributes for SQL databases\nconst (\n\t// DBSQLTableKey is the attribute Key conforming to the \"db.sql.table\"\n\t// semantic conventions. It represents the name of the primary table that\n\t// the operation is acting upon, including the database name (if\n\t// applicable).\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended\n\t// Stability: stable\n\t// Examples: 'public.users', 'customers'\n\t// Note: It is not recommended to attempt any client-side parsing of\n\t// `db.statement` just to get this property, but it should be set if it is\n\t// provided by the library being instrumented. If the operation is acting\n\t// upon an anonymous table, or more than one table, this value MUST NOT be\n\t// set.\n\tDBSQLTableKey = attribute.Key(\"db.sql.table\")\n)\n\n// DBSQLTable returns an attribute KeyValue conforming to the \"db.sql.table\"\n// semantic conventions. It represents the name of the primary table that the\n// operation is acting upon, including the database name (if applicable).\nfunc DBSQLTable(val string) attribute.KeyValue {\n\treturn DBSQLTableKey.String(val)\n}\n\n// Call-level attributes for Cosmos DB.\nconst (\n\t// DBCosmosDBClientIDKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.client_id\" semantic conventions. It represents the unique\n\t// Cosmos client instance id.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '3ba4827d-4422-483f-b59f-85b74211c11d'\n\tDBCosmosDBClientIDKey = attribute.Key(\"db.cosmosdb.client_id\")\n\n\t// DBCosmosDBOperationTypeKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.operation_type\" semantic conventions. It represents the\n\t// cosmosDB Operation Type.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: ConditionallyRequired (when performing one of the\n\t// operations in this list)\n\t// Stability: stable\n\tDBCosmosDBOperationTypeKey = attribute.Key(\"db.cosmosdb.operation_type\")\n\n\t// DBCosmosDBConnectionModeKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.connection_mode\" semantic conventions. It represents the\n\t// cosmos client connection mode.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: ConditionallyRequired (if not `direct` (or pick gw as\n\t// default))\n\t// Stability: stable\n\tDBCosmosDBConnectionModeKey = attribute.Key(\"db.cosmosdb.connection_mode\")\n\n\t// DBCosmosDBContainerKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.container\" semantic conventions. It represents the cosmos\n\t// DB container name.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (if available)\n\t// Stability: stable\n\t// Examples: 'anystring'\n\tDBCosmosDBContainerKey = attribute.Key(\"db.cosmosdb.container\")\n\n\t// DBCosmosDBRequestContentLengthKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.request_content_length\" semantic conventions. It represents\n\t// the request payload size in bytes\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tDBCosmosDBRequestContentLengthKey = attribute.Key(\"db.cosmosdb.request_content_length\")\n\n\t// DBCosmosDBStatusCodeKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.status_code\" semantic conventions. It represents the cosmos\n\t// DB status code.\n\t//\n\t// Type: int\n\t// RequirementLevel: ConditionallyRequired (if response was received)\n\t// Stability: stable\n\t// Examples: 200, 201\n\tDBCosmosDBStatusCodeKey = attribute.Key(\"db.cosmosdb.status_code\")\n\n\t// DBCosmosDBSubStatusCodeKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.sub_status_code\" semantic conventions. It represents the\n\t// cosmos DB sub status code.\n\t//\n\t// Type: int\n\t// RequirementLevel: ConditionallyRequired (when response was received and\n\t// contained sub-code.)\n\t// Stability: stable\n\t// Examples: 1000, 1002\n\tDBCosmosDBSubStatusCodeKey = attribute.Key(\"db.cosmosdb.sub_status_code\")\n\n\t// DBCosmosDBRequestChargeKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.request_charge\" semantic conventions. It represents the rU\n\t// consumed for that operation\n\t//\n\t// Type: double\n\t// RequirementLevel: ConditionallyRequired (when available)\n\t// Stability: stable\n\t// Examples: 46.18, 1.0\n\tDBCosmosDBRequestChargeKey = attribute.Key(\"db.cosmosdb.request_charge\")\n)\n\nvar (\n\t// invalid\n\tDBCosmosDBOperationTypeInvalid = DBCosmosDBOperationTypeKey.String(\"Invalid\")\n\t// create\n\tDBCosmosDBOperationTypeCreate = DBCosmosDBOperationTypeKey.String(\"Create\")\n\t// patch\n\tDBCosmosDBOperationTypePatch = DBCosmosDBOperationTypeKey.String(\"Patch\")\n\t// read\n\tDBCosmosDBOperationTypeRead = DBCosmosDBOperationTypeKey.String(\"Read\")\n\t// read_feed\n\tDBCosmosDBOperationTypeReadFeed = DBCosmosDBOperationTypeKey.String(\"ReadFeed\")\n\t// delete\n\tDBCosmosDBOperationTypeDelete = DBCosmosDBOperationTypeKey.String(\"Delete\")\n\t// replace\n\tDBCosmosDBOperationTypeReplace = DBCosmosDBOperationTypeKey.String(\"Replace\")\n\t// execute\n\tDBCosmosDBOperationTypeExecute = DBCosmosDBOperationTypeKey.String(\"Execute\")\n\t// query\n\tDBCosmosDBOperationTypeQuery = DBCosmosDBOperationTypeKey.String(\"Query\")\n\t// head\n\tDBCosmosDBOperationTypeHead = DBCosmosDBOperationTypeKey.String(\"Head\")\n\t// head_feed\n\tDBCosmosDBOperationTypeHeadFeed = DBCosmosDBOperationTypeKey.String(\"HeadFeed\")\n\t// upsert\n\tDBCosmosDBOperationTypeUpsert = DBCosmosDBOperationTypeKey.String(\"Upsert\")\n\t// batch\n\tDBCosmosDBOperationTypeBatch = DBCosmosDBOperationTypeKey.String(\"Batch\")\n\t// query_plan\n\tDBCosmosDBOperationTypeQueryPlan = DBCosmosDBOperationTypeKey.String(\"QueryPlan\")\n\t// execute_javascript\n\tDBCosmosDBOperationTypeExecuteJavascript = DBCosmosDBOperationTypeKey.String(\"ExecuteJavaScript\")\n)\n\nvar (\n\t// Gateway (HTTP) connections mode\n\tDBCosmosDBConnectionModeGateway = DBCosmosDBConnectionModeKey.String(\"gateway\")\n\t// Direct connection\n\tDBCosmosDBConnectionModeDirect = DBCosmosDBConnectionModeKey.String(\"direct\")\n)\n\n// DBCosmosDBClientID returns an attribute KeyValue conforming to the\n// \"db.cosmosdb.client_id\" semantic conventions. It represents the unique\n// Cosmos client instance id.\nfunc DBCosmosDBClientID(val string) attribute.KeyValue {\n\treturn DBCosmosDBClientIDKey.String(val)\n}\n\n// DBCosmosDBContainer returns an attribute KeyValue conforming to the\n// \"db.cosmosdb.container\" semantic conventions. It represents the cosmos DB\n// container name.\nfunc DBCosmosDBContainer(val string) attribute.KeyValue {\n\treturn DBCosmosDBContainerKey.String(val)\n}\n\n// DBCosmosDBRequestContentLength returns an attribute KeyValue conforming\n// to the \"db.cosmosdb.request_content_length\" semantic conventions. It\n// represents the request payload size in bytes\nfunc DBCosmosDBRequestContentLength(val int) attribute.KeyValue {\n\treturn DBCosmosDBRequestContentLengthKey.Int(val)\n}\n\n// DBCosmosDBStatusCode returns an attribute KeyValue conforming to the\n// \"db.cosmosdb.status_code\" semantic conventions. It represents the cosmos DB\n// status code.\nfunc DBCosmosDBStatusCode(val int) attribute.KeyValue {\n\treturn DBCosmosDBStatusCodeKey.Int(val)\n}\n\n// DBCosmosDBSubStatusCode returns an attribute KeyValue conforming to the\n// \"db.cosmosdb.sub_status_code\" semantic conventions. It represents the cosmos\n// DB sub status code.\nfunc DBCosmosDBSubStatusCode(val int) attribute.KeyValue {\n\treturn DBCosmosDBSubStatusCodeKey.Int(val)\n}\n\n// DBCosmosDBRequestCharge returns an attribute KeyValue conforming to the\n// \"db.cosmosdb.request_charge\" semantic conventions. It represents the rU\n// consumed for that operation\nfunc DBCosmosDBRequestCharge(val float64) attribute.KeyValue {\n\treturn DBCosmosDBRequestChargeKey.Float64(val)\n}\n\n// Span attributes used by non-OTLP exporters to represent OpenTelemetry Span's\n// concepts.\nconst (\n\t// OTelStatusCodeKey is the attribute Key conforming to the\n\t// \"otel.status_code\" semantic conventions. It represents the name of the\n\t// code, either \"OK\" or \"ERROR\". MUST NOT be set if the status code is\n\t// UNSET.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tOTelStatusCodeKey = attribute.Key(\"otel.status_code\")\n\n\t// OTelStatusDescriptionKey is the attribute Key conforming to the\n\t// \"otel.status_description\" semantic conventions. It represents the\n\t// description of the Status if it has a value, otherwise not set.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'resource not found'\n\tOTelStatusDescriptionKey = attribute.Key(\"otel.status_description\")\n)\n\nvar (\n\t// The operation has been validated by an Application developer or Operator to have completed successfully\n\tOTelStatusCodeOk = OTelStatusCodeKey.String(\"OK\")\n\t// The operation contains an error\n\tOTelStatusCodeError = OTelStatusCodeKey.String(\"ERROR\")\n)\n\n// OTelStatusDescription returns an attribute KeyValue conforming to the\n// \"otel.status_description\" semantic conventions. It represents the\n// description of the Status if it has a value, otherwise not set.\nfunc OTelStatusDescription(val string) attribute.KeyValue {\n\treturn OTelStatusDescriptionKey.String(val)\n}\n\n// This semantic convention describes an instance of a function that runs\n// without provisioning or managing of servers (also known as serverless\n// functions or Function as a Service (FaaS)) with spans.\nconst (\n\t// FaaSTriggerKey is the attribute Key conforming to the \"faas.trigger\"\n\t// semantic conventions. It represents the type of the trigger which caused\n\t// this function invocation.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Note: For the server/consumer span on the incoming side,\n\t// `faas.trigger` MUST be set.\n\t//\n\t// Clients invoking FaaS instances usually cannot set `faas.trigger`,\n\t// since they would typically need to look in the payload to determine\n\t// the event type. If clients set it, it should be the same as the\n\t// trigger that corresponding incoming would have (i.e., this has\n\t// nothing to do with the underlying transport used to make the API\n\t// call to invoke the lambda, which is often HTTP).\n\tFaaSTriggerKey = attribute.Key(\"faas.trigger\")\n\n\t// FaaSInvocationIDKey is the attribute Key conforming to the\n\t// \"faas.invocation_id\" semantic conventions. It represents the invocation\n\t// ID of the current function invocation.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'af9d5aa4-a685-4c5f-a22b-444f80b3cc28'\n\tFaaSInvocationIDKey = attribute.Key(\"faas.invocation_id\")\n)\n\nvar (\n\t// A response to some data source operation such as a database or filesystem read/write\n\tFaaSTriggerDatasource = FaaSTriggerKey.String(\"datasource\")\n\t// To provide an answer to an inbound HTTP request\n\tFaaSTriggerHTTP = FaaSTriggerKey.String(\"http\")\n\t// A function is set to be executed when messages are sent to a messaging system\n\tFaaSTriggerPubsub = FaaSTriggerKey.String(\"pubsub\")\n\t// A function is scheduled to be executed regularly\n\tFaaSTriggerTimer = FaaSTriggerKey.String(\"timer\")\n\t// If none of the others apply\n\tFaaSTriggerOther = FaaSTriggerKey.String(\"other\")\n)\n\n// FaaSInvocationID returns an attribute KeyValue conforming to the\n// \"faas.invocation_id\" semantic conventions. It represents the invocation ID\n// of the current function invocation.\nfunc FaaSInvocationID(val string) attribute.KeyValue {\n\treturn FaaSInvocationIDKey.String(val)\n}\n\n// Semantic Convention for FaaS triggered as a response to some data source\n// operation such as a database or filesystem read/write.\nconst (\n\t// FaaSDocumentCollectionKey is the attribute Key conforming to the\n\t// \"faas.document.collection\" semantic conventions. It represents the name\n\t// of the source on which the triggering operation was performed. For\n\t// example, in Cloud Storage or S3 corresponds to the bucket name, and in\n\t// Cosmos DB to the database name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'myBucketName', 'myDBName'\n\tFaaSDocumentCollectionKey = attribute.Key(\"faas.document.collection\")\n\n\t// FaaSDocumentOperationKey is the attribute Key conforming to the\n\t// \"faas.document.operation\" semantic conventions. It represents the\n\t// describes the type of the operation that was performed on the data.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: stable\n\tFaaSDocumentOperationKey = attribute.Key(\"faas.document.operation\")\n\n\t// FaaSDocumentTimeKey is the attribute Key conforming to the\n\t// \"faas.document.time\" semantic conventions. It represents a string\n\t// containing the time when the data was accessed in the [ISO\n\t// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format\n\t// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '2020-01-23T13:47:06Z'\n\tFaaSDocumentTimeKey = attribute.Key(\"faas.document.time\")\n\n\t// FaaSDocumentNameKey is the attribute Key conforming to the\n\t// \"faas.document.name\" semantic conventions. It represents the document\n\t// name/table subjected to the operation. For example, in Cloud Storage or\n\t// S3 is the name of the file, and in Cosmos DB the table name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'myFile.txt', 'myTableName'\n\tFaaSDocumentNameKey = attribute.Key(\"faas.document.name\")\n)\n\nvar (\n\t// When a new object is created\n\tFaaSDocumentOperationInsert = FaaSDocumentOperationKey.String(\"insert\")\n\t// When an object is modified\n\tFaaSDocumentOperationEdit = FaaSDocumentOperationKey.String(\"edit\")\n\t// When an object is deleted\n\tFaaSDocumentOperationDelete = FaaSDocumentOperationKey.String(\"delete\")\n)\n\n// FaaSDocumentCollection returns an attribute KeyValue conforming to the\n// \"faas.document.collection\" semantic conventions. It represents the name of\n// the source on which the triggering operation was performed. For example, in\n// Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the\n// database name.\nfunc FaaSDocumentCollection(val string) attribute.KeyValue {\n\treturn FaaSDocumentCollectionKey.String(val)\n}\n\n// FaaSDocumentTime returns an attribute KeyValue conforming to the\n// \"faas.document.time\" semantic conventions. It represents a string containing\n// the time when the data was accessed in the [ISO\n// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format\n// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\nfunc FaaSDocumentTime(val string) attribute.KeyValue {\n\treturn FaaSDocumentTimeKey.String(val)\n}\n\n// FaaSDocumentName returns an attribute KeyValue conforming to the\n// \"faas.document.name\" semantic conventions. It represents the document\n// name/table subjected to the operation. For example, in Cloud Storage or S3\n// is the name of the file, and in Cosmos DB the table name.\nfunc FaaSDocumentName(val string) attribute.KeyValue {\n\treturn FaaSDocumentNameKey.String(val)\n}\n\n// Semantic Convention for FaaS scheduled to be executed regularly.\nconst (\n\t// FaaSTimeKey is the attribute Key conforming to the \"faas.time\" semantic\n\t// conventions. It represents a string containing the function invocation\n\t// time in the [ISO\n\t// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format\n\t// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '2020-01-23T13:47:06Z'\n\tFaaSTimeKey = attribute.Key(\"faas.time\")\n\n\t// FaaSCronKey is the attribute Key conforming to the \"faas.cron\" semantic\n\t// conventions. It represents a string containing the schedule period as\n\t// [Cron\n\t// Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '0/5 * * * ? *'\n\tFaaSCronKey = attribute.Key(\"faas.cron\")\n)\n\n// FaaSTime returns an attribute KeyValue conforming to the \"faas.time\"\n// semantic conventions. It represents a string containing the function\n// invocation time in the [ISO\n// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format\n// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\nfunc FaaSTime(val string) attribute.KeyValue {\n\treturn FaaSTimeKey.String(val)\n}\n\n// FaaSCron returns an attribute KeyValue conforming to the \"faas.cron\"\n// semantic conventions. It represents a string containing the schedule period\n// as [Cron\n// Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).\nfunc FaaSCron(val string) attribute.KeyValue {\n\treturn FaaSCronKey.String(val)\n}\n\n// Contains additional attributes for incoming FaaS spans.\nconst (\n\t// FaaSColdstartKey is the attribute Key conforming to the \"faas.coldstart\"\n\t// semantic conventions. It represents a boolean that is true if the\n\t// serverless function is executed for the first time (aka cold-start).\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tFaaSColdstartKey = attribute.Key(\"faas.coldstart\")\n)\n\n// FaaSColdstart returns an attribute KeyValue conforming to the\n// \"faas.coldstart\" semantic conventions. It represents a boolean that is true\n// if the serverless function is executed for the first time (aka cold-start).\nfunc FaaSColdstart(val bool) attribute.KeyValue {\n\treturn FaaSColdstartKey.Bool(val)\n}\n\n// Contains additional attributes for outgoing FaaS spans.\nconst (\n\t// FaaSInvokedNameKey is the attribute Key conforming to the\n\t// \"faas.invoked_name\" semantic conventions. It represents the name of the\n\t// invoked function.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'my-function'\n\t// Note: SHOULD be equal to the `faas.name` resource attribute of the\n\t// invoked function.\n\tFaaSInvokedNameKey = attribute.Key(\"faas.invoked_name\")\n\n\t// FaaSInvokedProviderKey is the attribute Key conforming to the\n\t// \"faas.invoked_provider\" semantic conventions. It represents the cloud\n\t// provider of the invoked function.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Note: SHOULD be equal to the `cloud.provider` resource attribute of the\n\t// invoked function.\n\tFaaSInvokedProviderKey = attribute.Key(\"faas.invoked_provider\")\n\n\t// FaaSInvokedRegionKey is the attribute Key conforming to the\n\t// \"faas.invoked_region\" semantic conventions. It represents the cloud\n\t// region of the invoked function.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (For some cloud providers, like\n\t// AWS or GCP, the region in which a function is hosted is essential to\n\t// uniquely identify the function and also part of its endpoint. Since it's\n\t// part of the endpoint being called, the region is always known to\n\t// clients. In these cases, `faas.invoked_region` MUST be set accordingly.\n\t// If the region is unknown to the client or not required for identifying\n\t// the invoked function, setting `faas.invoked_region` is optional.)\n\t// Stability: stable\n\t// Examples: 'eu-central-1'\n\t// Note: SHOULD be equal to the `cloud.region` resource attribute of the\n\t// invoked function.\n\tFaaSInvokedRegionKey = attribute.Key(\"faas.invoked_region\")\n)\n\nvar (\n\t// Alibaba Cloud\n\tFaaSInvokedProviderAlibabaCloud = FaaSInvokedProviderKey.String(\"alibaba_cloud\")\n\t// Amazon Web Services\n\tFaaSInvokedProviderAWS = FaaSInvokedProviderKey.String(\"aws\")\n\t// Microsoft Azure\n\tFaaSInvokedProviderAzure = FaaSInvokedProviderKey.String(\"azure\")\n\t// Google Cloud Platform\n\tFaaSInvokedProviderGCP = FaaSInvokedProviderKey.String(\"gcp\")\n\t// Tencent Cloud\n\tFaaSInvokedProviderTencentCloud = FaaSInvokedProviderKey.String(\"tencent_cloud\")\n)\n\n// FaaSInvokedName returns an attribute KeyValue conforming to the\n// \"faas.invoked_name\" semantic conventions. It represents the name of the\n// invoked function.\nfunc FaaSInvokedName(val string) attribute.KeyValue {\n\treturn FaaSInvokedNameKey.String(val)\n}\n\n// FaaSInvokedRegion returns an attribute KeyValue conforming to the\n// \"faas.invoked_region\" semantic conventions. It represents the cloud region\n// of the invoked function.\nfunc FaaSInvokedRegion(val string) attribute.KeyValue {\n\treturn FaaSInvokedRegionKey.String(val)\n}\n\n// Operations that access some remote service.\nconst (\n\t// PeerServiceKey is the attribute Key conforming to the \"peer.service\"\n\t// semantic conventions. It represents the\n\t// [`service.name`](../../resource/semantic_conventions/README.md#service)\n\t// of the remote service. SHOULD be equal to the actual `service.name`\n\t// resource attribute of the remote service if any.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'AuthTokenCache'\n\tPeerServiceKey = attribute.Key(\"peer.service\")\n)\n\n// PeerService returns an attribute KeyValue conforming to the\n// \"peer.service\" semantic conventions. It represents the\n// [`service.name`](../../resource/semantic_conventions/README.md#service) of\n// the remote service. SHOULD be equal to the actual `service.name` resource\n// attribute of the remote service if any.\nfunc PeerService(val string) attribute.KeyValue {\n\treturn PeerServiceKey.String(val)\n}\n\n// These attributes may be used for any operation with an authenticated and/or\n// authorized enduser.\nconst (\n\t// EnduserIDKey is the attribute Key conforming to the \"enduser.id\"\n\t// semantic conventions. It represents the username or client_id extracted\n\t// from the access token or\n\t// [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header\n\t// in the inbound request from outside the system.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'username'\n\tEnduserIDKey = attribute.Key(\"enduser.id\")\n\n\t// EnduserRoleKey is the attribute Key conforming to the \"enduser.role\"\n\t// semantic conventions. It represents the actual/assumed role the client\n\t// is making the request under extracted from token or application security\n\t// context.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'admin'\n\tEnduserRoleKey = attribute.Key(\"enduser.role\")\n\n\t// EnduserScopeKey is the attribute Key conforming to the \"enduser.scope\"\n\t// semantic conventions. It represents the scopes or granted authorities\n\t// the client currently possesses extracted from token or application\n\t// security context. The value would come from the scope associated with an\n\t// [OAuth 2.0 Access\n\t// Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute\n\t// value in a [SAML 2.0\n\t// Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'read:message, write:files'\n\tEnduserScopeKey = attribute.Key(\"enduser.scope\")\n)\n\n// EnduserID returns an attribute KeyValue conforming to the \"enduser.id\"\n// semantic conventions. It represents the username or client_id extracted from\n// the access token or\n// [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in\n// the inbound request from outside the system.\nfunc EnduserID(val string) attribute.KeyValue {\n\treturn EnduserIDKey.String(val)\n}\n\n// EnduserRole returns an attribute KeyValue conforming to the\n// \"enduser.role\" semantic conventions. It represents the actual/assumed role\n// the client is making the request under extracted from token or application\n// security context.\nfunc EnduserRole(val string) attribute.KeyValue {\n\treturn EnduserRoleKey.String(val)\n}\n\n// EnduserScope returns an attribute KeyValue conforming to the\n// \"enduser.scope\" semantic conventions. It represents the scopes or granted\n// authorities the client currently possesses extracted from token or\n// application security context. The value would come from the scope associated\n// with an [OAuth 2.0 Access\n// Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute\n// value in a [SAML 2.0\n// Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).\nfunc EnduserScope(val string) attribute.KeyValue {\n\treturn EnduserScopeKey.String(val)\n}\n\n// These attributes may be used for any operation to store information about a\n// thread that started a span.\nconst (\n\t// ThreadIDKey is the attribute Key conforming to the \"thread.id\" semantic\n\t// conventions. It represents the current \"managed\" thread ID (as opposed\n\t// to OS thread ID).\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 42\n\tThreadIDKey = attribute.Key(\"thread.id\")\n\n\t// ThreadNameKey is the attribute Key conforming to the \"thread.name\"\n\t// semantic conventions. It represents the current thread name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'main'\n\tThreadNameKey = attribute.Key(\"thread.name\")\n)\n\n// ThreadID returns an attribute KeyValue conforming to the \"thread.id\"\n// semantic conventions. It represents the current \"managed\" thread ID (as\n// opposed to OS thread ID).\nfunc ThreadID(val int) attribute.KeyValue {\n\treturn ThreadIDKey.Int(val)\n}\n\n// ThreadName returns an attribute KeyValue conforming to the \"thread.name\"\n// semantic conventions. It represents the current thread name.\nfunc ThreadName(val string) attribute.KeyValue {\n\treturn ThreadNameKey.String(val)\n}\n\n// These attributes allow to report this unit of code and therefore to provide\n// more context about the span.\nconst (\n\t// CodeFunctionKey is the attribute Key conforming to the \"code.function\"\n\t// semantic conventions. It represents the method or function name, or\n\t// equivalent (usually rightmost part of the code unit's name).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'serveRequest'\n\tCodeFunctionKey = attribute.Key(\"code.function\")\n\n\t// CodeNamespaceKey is the attribute Key conforming to the \"code.namespace\"\n\t// semantic conventions. It represents the \"namespace\" within which\n\t// `code.function` is defined. Usually the qualified class or module name,\n\t// such that `code.namespace` + some separator + `code.function` form a\n\t// unique identifier for the code unit.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'com.example.MyHTTPService'\n\tCodeNamespaceKey = attribute.Key(\"code.namespace\")\n\n\t// CodeFilepathKey is the attribute Key conforming to the \"code.filepath\"\n\t// semantic conventions. It represents the source code file name that\n\t// identifies the code unit as uniquely as possible (preferably an absolute\n\t// file path).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '/usr/local/MyApplication/content_root/app/index.php'\n\tCodeFilepathKey = attribute.Key(\"code.filepath\")\n\n\t// CodeLineNumberKey is the attribute Key conforming to the \"code.lineno\"\n\t// semantic conventions. It represents the line number in `code.filepath`\n\t// best representing the operation. It SHOULD point within the code unit\n\t// named in `code.function`.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 42\n\tCodeLineNumberKey = attribute.Key(\"code.lineno\")\n\n\t// CodeColumnKey is the attribute Key conforming to the \"code.column\"\n\t// semantic conventions. It represents the column number in `code.filepath`\n\t// best representing the operation. It SHOULD point within the code unit\n\t// named in `code.function`.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 16\n\tCodeColumnKey = attribute.Key(\"code.column\")\n)\n\n// CodeFunction returns an attribute KeyValue conforming to the\n// \"code.function\" semantic conventions. It represents the method or function\n// name, or equivalent (usually rightmost part of the code unit's name).\nfunc CodeFunction(val string) attribute.KeyValue {\n\treturn CodeFunctionKey.String(val)\n}\n\n// CodeNamespace returns an attribute KeyValue conforming to the\n// \"code.namespace\" semantic conventions. It represents the \"namespace\" within\n// which `code.function` is defined. Usually the qualified class or module\n// name, such that `code.namespace` + some separator + `code.function` form a\n// unique identifier for the code unit.\nfunc CodeNamespace(val string) attribute.KeyValue {\n\treturn CodeNamespaceKey.String(val)\n}\n\n// CodeFilepath returns an attribute KeyValue conforming to the\n// \"code.filepath\" semantic conventions. It represents the source code file\n// name that identifies the code unit as uniquely as possible (preferably an\n// absolute file path).\nfunc CodeFilepath(val string) attribute.KeyValue {\n\treturn CodeFilepathKey.String(val)\n}\n\n// CodeLineNumber returns an attribute KeyValue conforming to the \"code.lineno\"\n// semantic conventions. It represents the line number in `code.filepath` best\n// representing the operation. It SHOULD point within the code unit named in\n// `code.function`.\nfunc CodeLineNumber(val int) attribute.KeyValue {\n\treturn CodeLineNumberKey.Int(val)\n}\n\n// CodeColumn returns an attribute KeyValue conforming to the \"code.column\"\n// semantic conventions. It represents the column number in `code.filepath`\n// best representing the operation. It SHOULD point within the code unit named\n// in `code.function`.\nfunc CodeColumn(val int) attribute.KeyValue {\n\treturn CodeColumnKey.Int(val)\n}\n\n// Semantic Convention for HTTP Client\nconst (\n\t// HTTPURLKey is the attribute Key conforming to the \"http.url\" semantic\n\t// conventions. It represents the full HTTP request URL in the form\n\t// `scheme://host[:port]/path?query[#fragment]`. Usually the fragment is\n\t// not transmitted over HTTP, but if it is known, it should be included\n\t// nevertheless.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv'\n\t// Note: `http.url` MUST NOT contain credentials passed via URL in form of\n\t// `https://username:password@www.example.com/`. In such case the\n\t// attribute's value should be `https://www.example.com/`.\n\tHTTPURLKey = attribute.Key(\"http.url\")\n\n\t// HTTPResendCountKey is the attribute Key conforming to the\n\t// \"http.resend_count\" semantic conventions. It represents the ordinal\n\t// number of request resending attempt (for any reason, including\n\t// redirects).\n\t//\n\t// Type: int\n\t// RequirementLevel: Recommended (if and only if request was retried.)\n\t// Stability: stable\n\t// Examples: 3\n\t// Note: The resend count SHOULD be updated each time an HTTP request gets\n\t// resent by the client, regardless of what was the cause of the resending\n\t// (e.g. redirection, authorization failure, 503 Server Unavailable,\n\t// network issues, or any other).\n\tHTTPResendCountKey = attribute.Key(\"http.resend_count\")\n)\n\n// HTTPURL returns an attribute KeyValue conforming to the \"http.url\"\n// semantic conventions. It represents the full HTTP request URL in the form\n// `scheme://host[:port]/path?query[#fragment]`. Usually the fragment is not\n// transmitted over HTTP, but if it is known, it should be included\n// nevertheless.\nfunc HTTPURL(val string) attribute.KeyValue {\n\treturn HTTPURLKey.String(val)\n}\n\n// HTTPResendCount returns an attribute KeyValue conforming to the\n// \"http.resend_count\" semantic conventions. It represents the ordinal number\n// of request resending attempt (for any reason, including redirects).\nfunc HTTPResendCount(val int) attribute.KeyValue {\n\treturn HTTPResendCountKey.Int(val)\n}\n\n// Semantic Convention for HTTP Server\nconst (\n\t// HTTPTargetKey is the attribute Key conforming to the \"http.target\"\n\t// semantic conventions. It represents the full request target as passed in\n\t// a HTTP request line or equivalent.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: '/users/12314/?q=ddds'\n\tHTTPTargetKey = attribute.Key(\"http.target\")\n\n\t// HTTPClientIPKey is the attribute Key conforming to the \"http.client_ip\"\n\t// semantic conventions. It represents the IP address of the original\n\t// client behind all proxies, if known (e.g. from\n\t// [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For)).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '83.164.160.102'\n\t// Note: This is not necessarily the same as `net.sock.peer.addr`, which\n\t// would\n\t// identify the network-level peer, which may be a proxy.\n\t//\n\t// This attribute should be set when a source of information different\n\t// from the one used for `net.sock.peer.addr`, is available even if that\n\t// other\n\t// source just confirms the same value as `net.sock.peer.addr`.\n\t// Rationale: For `net.sock.peer.addr`, one typically does not know if it\n\t// comes from a proxy, reverse proxy, or the actual client. Setting\n\t// `http.client_ip` when it's the same as `net.sock.peer.addr` means that\n\t// one is at least somewhat confident that the address is not that of\n\t// the closest proxy.\n\tHTTPClientIPKey = attribute.Key(\"http.client_ip\")\n)\n\n// HTTPTarget returns an attribute KeyValue conforming to the \"http.target\"\n// semantic conventions. It represents the full request target as passed in a\n// HTTP request line or equivalent.\nfunc HTTPTarget(val string) attribute.KeyValue {\n\treturn HTTPTargetKey.String(val)\n}\n\n// HTTPClientIP returns an attribute KeyValue conforming to the\n// \"http.client_ip\" semantic conventions. It represents the IP address of the\n// original client behind all proxies, if known (e.g. from\n// [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For)).\nfunc HTTPClientIP(val string) attribute.KeyValue {\n\treturn HTTPClientIPKey.String(val)\n}\n\n// The `aws` conventions apply to operations using the AWS SDK. They map\n// request or response parameters in AWS SDK API calls to attributes on a Span.\n// The conventions have been collected over time based on feedback from AWS\n// users of tracing and will continue to evolve as new interesting conventions\n// are found.\n// Some descriptions are also provided for populating general OpenTelemetry\n// semantic conventions based on these APIs.\nconst (\n\t// AWSRequestIDKey is the attribute Key conforming to the \"aws.request_id\"\n\t// semantic conventions. It represents the AWS request ID as returned in\n\t// the response headers `x-amz-request-id` or `x-amz-requestid`.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '79b9da39-b7ae-508a-a6bc-864b2829c622', 'C9ER4AJX75574TDJ'\n\tAWSRequestIDKey = attribute.Key(\"aws.request_id\")\n)\n\n// AWSRequestID returns an attribute KeyValue conforming to the\n// \"aws.request_id\" semantic conventions. It represents the AWS request ID as\n// returned in the response headers `x-amz-request-id` or `x-amz-requestid`.\nfunc AWSRequestID(val string) attribute.KeyValue {\n\treturn AWSRequestIDKey.String(val)\n}\n\n// Attributes that exist for multiple DynamoDB request types.\nconst (\n\t// AWSDynamoDBTableNamesKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.table_names\" semantic conventions. It represents the keys\n\t// in the `RequestItems` object field.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Users', 'Cats'\n\tAWSDynamoDBTableNamesKey = attribute.Key(\"aws.dynamodb.table_names\")\n\n\t// AWSDynamoDBConsumedCapacityKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.consumed_capacity\" semantic conventions. It represents the\n\t// JSON-serialized value of each item in the `ConsumedCapacity` response\n\t// field.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '{ \"CapacityUnits\": number, \"GlobalSecondaryIndexes\": {\n\t// \"string\" : { \"CapacityUnits\": number, \"ReadCapacityUnits\": number,\n\t// \"WriteCapacityUnits\": number } }, \"LocalSecondaryIndexes\": { \"string\" :\n\t// { \"CapacityUnits\": number, \"ReadCapacityUnits\": number,\n\t// \"WriteCapacityUnits\": number } }, \"ReadCapacityUnits\": number, \"Table\":\n\t// { \"CapacityUnits\": number, \"ReadCapacityUnits\": number,\n\t// \"WriteCapacityUnits\": number }, \"TableName\": \"string\",\n\t// \"WriteCapacityUnits\": number }'\n\tAWSDynamoDBConsumedCapacityKey = attribute.Key(\"aws.dynamodb.consumed_capacity\")\n\n\t// AWSDynamoDBItemCollectionMetricsKey is the attribute Key conforming to\n\t// the \"aws.dynamodb.item_collection_metrics\" semantic conventions. It\n\t// represents the JSON-serialized value of the `ItemCollectionMetrics`\n\t// response field.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '{ \"string\" : [ { \"ItemCollectionKey\": { \"string\" : { \"B\":\n\t// blob, \"BOOL\": boolean, \"BS\": [ blob ], \"L\": [ \"AttributeValue\" ], \"M\": {\n\t// \"string\" : \"AttributeValue\" }, \"N\": \"string\", \"NS\": [ \"string\" ],\n\t// \"NULL\": boolean, \"S\": \"string\", \"SS\": [ \"string\" ] } },\n\t// \"SizeEstimateRangeGB\": [ number ] } ] }'\n\tAWSDynamoDBItemCollectionMetricsKey = attribute.Key(\"aws.dynamodb.item_collection_metrics\")\n\n\t// AWSDynamoDBProvisionedReadCapacityKey is the attribute Key conforming to\n\t// the \"aws.dynamodb.provisioned_read_capacity\" semantic conventions. It\n\t// represents the value of the `ProvisionedThroughput.ReadCapacityUnits`\n\t// request parameter.\n\t//\n\t// Type: double\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 1.0, 2.0\n\tAWSDynamoDBProvisionedReadCapacityKey = attribute.Key(\"aws.dynamodb.provisioned_read_capacity\")\n\n\t// AWSDynamoDBProvisionedWriteCapacityKey is the attribute Key conforming\n\t// to the \"aws.dynamodb.provisioned_write_capacity\" semantic conventions.\n\t// It represents the value of the\n\t// `ProvisionedThroughput.WriteCapacityUnits` request parameter.\n\t//\n\t// Type: double\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 1.0, 2.0\n\tAWSDynamoDBProvisionedWriteCapacityKey = attribute.Key(\"aws.dynamodb.provisioned_write_capacity\")\n\n\t// AWSDynamoDBConsistentReadKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.consistent_read\" semantic conventions. It represents the\n\t// value of the `ConsistentRead` request parameter.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tAWSDynamoDBConsistentReadKey = attribute.Key(\"aws.dynamodb.consistent_read\")\n\n\t// AWSDynamoDBProjectionKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.projection\" semantic conventions. It represents the value\n\t// of the `ProjectionExpression` request parameter.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Title', 'Title, Price, Color', 'Title, Description,\n\t// RelatedItems, ProductReviews'\n\tAWSDynamoDBProjectionKey = attribute.Key(\"aws.dynamodb.projection\")\n\n\t// AWSDynamoDBLimitKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.limit\" semantic conventions. It represents the value of\n\t// the `Limit` request parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 10\n\tAWSDynamoDBLimitKey = attribute.Key(\"aws.dynamodb.limit\")\n\n\t// AWSDynamoDBAttributesToGetKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.attributes_to_get\" semantic conventions. It represents the\n\t// value of the `AttributesToGet` request parameter.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'lives', 'id'\n\tAWSDynamoDBAttributesToGetKey = attribute.Key(\"aws.dynamodb.attributes_to_get\")\n\n\t// AWSDynamoDBIndexNameKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.index_name\" semantic conventions. It represents the value\n\t// of the `IndexName` request parameter.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'name_to_group'\n\tAWSDynamoDBIndexNameKey = attribute.Key(\"aws.dynamodb.index_name\")\n\n\t// AWSDynamoDBSelectKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.select\" semantic conventions. It represents the value of\n\t// the `Select` request parameter.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'ALL_ATTRIBUTES', 'COUNT'\n\tAWSDynamoDBSelectKey = attribute.Key(\"aws.dynamodb.select\")\n)\n\n// AWSDynamoDBTableNames returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.table_names\" semantic conventions. It represents the keys in\n// the `RequestItems` object field.\nfunc AWSDynamoDBTableNames(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBTableNamesKey.StringSlice(val)\n}\n\n// AWSDynamoDBConsumedCapacity returns an attribute KeyValue conforming to\n// the \"aws.dynamodb.consumed_capacity\" semantic conventions. It represents the\n// JSON-serialized value of each item in the `ConsumedCapacity` response field.\nfunc AWSDynamoDBConsumedCapacity(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBConsumedCapacityKey.StringSlice(val)\n}\n\n// AWSDynamoDBItemCollectionMetrics returns an attribute KeyValue conforming\n// to the \"aws.dynamodb.item_collection_metrics\" semantic conventions. It\n// represents the JSON-serialized value of the `ItemCollectionMetrics` response\n// field.\nfunc AWSDynamoDBItemCollectionMetrics(val string) attribute.KeyValue {\n\treturn AWSDynamoDBItemCollectionMetricsKey.String(val)\n}\n\n// AWSDynamoDBProvisionedReadCapacity returns an attribute KeyValue\n// conforming to the \"aws.dynamodb.provisioned_read_capacity\" semantic\n// conventions. It represents the value of the\n// `ProvisionedThroughput.ReadCapacityUnits` request parameter.\nfunc AWSDynamoDBProvisionedReadCapacity(val float64) attribute.KeyValue {\n\treturn AWSDynamoDBProvisionedReadCapacityKey.Float64(val)\n}\n\n// AWSDynamoDBProvisionedWriteCapacity returns an attribute KeyValue\n// conforming to the \"aws.dynamodb.provisioned_write_capacity\" semantic\n// conventions. It represents the value of the\n// `ProvisionedThroughput.WriteCapacityUnits` request parameter.\nfunc AWSDynamoDBProvisionedWriteCapacity(val float64) attribute.KeyValue {\n\treturn AWSDynamoDBProvisionedWriteCapacityKey.Float64(val)\n}\n\n// AWSDynamoDBConsistentRead returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.consistent_read\" semantic conventions. It represents the value\n// of the `ConsistentRead` request parameter.\nfunc AWSDynamoDBConsistentRead(val bool) attribute.KeyValue {\n\treturn AWSDynamoDBConsistentReadKey.Bool(val)\n}\n\n// AWSDynamoDBProjection returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.projection\" semantic conventions. It represents the value of\n// the `ProjectionExpression` request parameter.\nfunc AWSDynamoDBProjection(val string) attribute.KeyValue {\n\treturn AWSDynamoDBProjectionKey.String(val)\n}\n\n// AWSDynamoDBLimit returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.limit\" semantic conventions. It represents the value of the\n// `Limit` request parameter.\nfunc AWSDynamoDBLimit(val int) attribute.KeyValue {\n\treturn AWSDynamoDBLimitKey.Int(val)\n}\n\n// AWSDynamoDBAttributesToGet returns an attribute KeyValue conforming to\n// the \"aws.dynamodb.attributes_to_get\" semantic conventions. It represents the\n// value of the `AttributesToGet` request parameter.\nfunc AWSDynamoDBAttributesToGet(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBAttributesToGetKey.StringSlice(val)\n}\n\n// AWSDynamoDBIndexName returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.index_name\" semantic conventions. It represents the value of\n// the `IndexName` request parameter.\nfunc AWSDynamoDBIndexName(val string) attribute.KeyValue {\n\treturn AWSDynamoDBIndexNameKey.String(val)\n}\n\n// AWSDynamoDBSelect returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.select\" semantic conventions. It represents the value of the\n// `Select` request parameter.\nfunc AWSDynamoDBSelect(val string) attribute.KeyValue {\n\treturn AWSDynamoDBSelectKey.String(val)\n}\n\n// DynamoDB.CreateTable\nconst (\n\t// AWSDynamoDBGlobalSecondaryIndexesKey is the attribute Key conforming to\n\t// the \"aws.dynamodb.global_secondary_indexes\" semantic conventions. It\n\t// represents the JSON-serialized value of each item of the\n\t// `GlobalSecondaryIndexes` request field\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '{ \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\":\n\t// \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [\n\t// \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": {\n\t// \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }'\n\tAWSDynamoDBGlobalSecondaryIndexesKey = attribute.Key(\"aws.dynamodb.global_secondary_indexes\")\n\n\t// AWSDynamoDBLocalSecondaryIndexesKey is the attribute Key conforming to\n\t// the \"aws.dynamodb.local_secondary_indexes\" semantic conventions. It\n\t// represents the JSON-serialized value of each item of the\n\t// `LocalSecondaryIndexes` request field.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '{ \"IndexARN\": \"string\", \"IndexName\": \"string\",\n\t// \"IndexSizeBytes\": number, \"ItemCount\": number, \"KeySchema\": [ {\n\t// \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": {\n\t// \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" } }'\n\tAWSDynamoDBLocalSecondaryIndexesKey = attribute.Key(\"aws.dynamodb.local_secondary_indexes\")\n)\n\n// AWSDynamoDBGlobalSecondaryIndexes returns an attribute KeyValue\n// conforming to the \"aws.dynamodb.global_secondary_indexes\" semantic\n// conventions. It represents the JSON-serialized value of each item of the\n// `GlobalSecondaryIndexes` request field\nfunc AWSDynamoDBGlobalSecondaryIndexes(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBGlobalSecondaryIndexesKey.StringSlice(val)\n}\n\n// AWSDynamoDBLocalSecondaryIndexes returns an attribute KeyValue conforming\n// to the \"aws.dynamodb.local_secondary_indexes\" semantic conventions. It\n// represents the JSON-serialized value of each item of the\n// `LocalSecondaryIndexes` request field.\nfunc AWSDynamoDBLocalSecondaryIndexes(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBLocalSecondaryIndexesKey.StringSlice(val)\n}\n\n// DynamoDB.ListTables\nconst (\n\t// AWSDynamoDBExclusiveStartTableKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.exclusive_start_table\" semantic conventions. It represents\n\t// the value of the `ExclusiveStartTableName` request parameter.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Users', 'CatsTable'\n\tAWSDynamoDBExclusiveStartTableKey = attribute.Key(\"aws.dynamodb.exclusive_start_table\")\n\n\t// AWSDynamoDBTableCountKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.table_count\" semantic conventions. It represents the the\n\t// number of items in the `TableNames` response parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 20\n\tAWSDynamoDBTableCountKey = attribute.Key(\"aws.dynamodb.table_count\")\n)\n\n// AWSDynamoDBExclusiveStartTable returns an attribute KeyValue conforming\n// to the \"aws.dynamodb.exclusive_start_table\" semantic conventions. It\n// represents the value of the `ExclusiveStartTableName` request parameter.\nfunc AWSDynamoDBExclusiveStartTable(val string) attribute.KeyValue {\n\treturn AWSDynamoDBExclusiveStartTableKey.String(val)\n}\n\n// AWSDynamoDBTableCount returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.table_count\" semantic conventions. It represents the the\n// number of items in the `TableNames` response parameter.\nfunc AWSDynamoDBTableCount(val int) attribute.KeyValue {\n\treturn AWSDynamoDBTableCountKey.Int(val)\n}\n\n// DynamoDB.Query\nconst (\n\t// AWSDynamoDBScanForwardKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.scan_forward\" semantic conventions. It represents the\n\t// value of the `ScanIndexForward` request parameter.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\tAWSDynamoDBScanForwardKey = attribute.Key(\"aws.dynamodb.scan_forward\")\n)\n\n// AWSDynamoDBScanForward returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.scan_forward\" semantic conventions. It represents the value of\n// the `ScanIndexForward` request parameter.\nfunc AWSDynamoDBScanForward(val bool) attribute.KeyValue {\n\treturn AWSDynamoDBScanForwardKey.Bool(val)\n}\n\n// DynamoDB.Scan\nconst (\n\t// AWSDynamoDBSegmentKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.segment\" semantic conventions. It represents the value of\n\t// the `Segment` request parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 10\n\tAWSDynamoDBSegmentKey = attribute.Key(\"aws.dynamodb.segment\")\n\n\t// AWSDynamoDBTotalSegmentsKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.total_segments\" semantic conventions. It represents the\n\t// value of the `TotalSegments` request parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 100\n\tAWSDynamoDBTotalSegmentsKey = attribute.Key(\"aws.dynamodb.total_segments\")\n\n\t// AWSDynamoDBCountKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.count\" semantic conventions. It represents the value of\n\t// the `Count` response parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 10\n\tAWSDynamoDBCountKey = attribute.Key(\"aws.dynamodb.count\")\n\n\t// AWSDynamoDBScannedCountKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.scanned_count\" semantic conventions. It represents the\n\t// value of the `ScannedCount` response parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 50\n\tAWSDynamoDBScannedCountKey = attribute.Key(\"aws.dynamodb.scanned_count\")\n)\n\n// AWSDynamoDBSegment returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.segment\" semantic conventions. It represents the value of the\n// `Segment` request parameter.\nfunc AWSDynamoDBSegment(val int) attribute.KeyValue {\n\treturn AWSDynamoDBSegmentKey.Int(val)\n}\n\n// AWSDynamoDBTotalSegments returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.total_segments\" semantic conventions. It represents the value\n// of the `TotalSegments` request parameter.\nfunc AWSDynamoDBTotalSegments(val int) attribute.KeyValue {\n\treturn AWSDynamoDBTotalSegmentsKey.Int(val)\n}\n\n// AWSDynamoDBCount returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.count\" semantic conventions. It represents the value of the\n// `Count` response parameter.\nfunc AWSDynamoDBCount(val int) attribute.KeyValue {\n\treturn AWSDynamoDBCountKey.Int(val)\n}\n\n// AWSDynamoDBScannedCount returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.scanned_count\" semantic conventions. It represents the value\n// of the `ScannedCount` response parameter.\nfunc AWSDynamoDBScannedCount(val int) attribute.KeyValue {\n\treturn AWSDynamoDBScannedCountKey.Int(val)\n}\n\n// DynamoDB.UpdateTable\nconst (\n\t// AWSDynamoDBAttributeDefinitionsKey is the attribute Key conforming to\n\t// the \"aws.dynamodb.attribute_definitions\" semantic conventions. It\n\t// represents the JSON-serialized value of each item in the\n\t// `AttributeDefinitions` request field.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '{ \"AttributeName\": \"string\", \"AttributeType\": \"string\" }'\n\tAWSDynamoDBAttributeDefinitionsKey = attribute.Key(\"aws.dynamodb.attribute_definitions\")\n\n\t// AWSDynamoDBGlobalSecondaryIndexUpdatesKey is the attribute Key\n\t// conforming to the \"aws.dynamodb.global_secondary_index_updates\" semantic\n\t// conventions. It represents the JSON-serialized value of each item in the\n\t// the `GlobalSecondaryIndexUpdates` request field.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '{ \"Create\": { \"IndexName\": \"string\", \"KeySchema\": [ {\n\t// \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": {\n\t// \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" },\n\t// \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number,\n\t// \"WriteCapacityUnits\": number } }'\n\tAWSDynamoDBGlobalSecondaryIndexUpdatesKey = attribute.Key(\"aws.dynamodb.global_secondary_index_updates\")\n)\n\n// AWSDynamoDBAttributeDefinitions returns an attribute KeyValue conforming\n// to the \"aws.dynamodb.attribute_definitions\" semantic conventions. It\n// represents the JSON-serialized value of each item in the\n// `AttributeDefinitions` request field.\nfunc AWSDynamoDBAttributeDefinitions(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBAttributeDefinitionsKey.StringSlice(val)\n}\n\n// AWSDynamoDBGlobalSecondaryIndexUpdates returns an attribute KeyValue\n// conforming to the \"aws.dynamodb.global_secondary_index_updates\" semantic\n// conventions. It represents the JSON-serialized value of each item in the the\n// `GlobalSecondaryIndexUpdates` request field.\nfunc AWSDynamoDBGlobalSecondaryIndexUpdates(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBGlobalSecondaryIndexUpdatesKey.StringSlice(val)\n}\n\n// Attributes that exist for S3 request types.\nconst (\n\t// AWSS3BucketKey is the attribute Key conforming to the \"aws.s3.bucket\"\n\t// semantic conventions. It represents the S3 bucket name the request\n\t// refers to. Corresponds to the `--bucket` parameter of the [S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)\n\t// operations.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'some-bucket-name'\n\t// Note: The `bucket` attribute is applicable to all S3 operations that\n\t// reference a bucket, i.e. that require the bucket name as a mandatory\n\t// parameter.\n\t// This applies to almost all S3 operations except `list-buckets`.\n\tAWSS3BucketKey = attribute.Key(\"aws.s3.bucket\")\n\n\t// AWSS3KeyKey is the attribute Key conforming to the \"aws.s3.key\" semantic\n\t// conventions. It represents the S3 object key the request refers to.\n\t// Corresponds to the `--key` parameter of the [S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)\n\t// operations.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'someFile.yml'\n\t// Note: The `key` attribute is applicable to all object-related S3\n\t// operations, i.e. that require the object key as a mandatory parameter.\n\t// This applies in particular to the following operations:\n\t//\n\t// -\n\t// [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)\n\t// -\n\t// [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)\n\t// -\n\t// [get-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html)\n\t// -\n\t// [head-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html)\n\t// -\n\t// [put-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html)\n\t// -\n\t// [restore-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/restore-object.html)\n\t// -\n\t// [select-object-content](https://docs.aws.amazon.com/cli/latest/reference/s3api/select-object-content.html)\n\t// -\n\t// [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)\n\t// -\n\t// [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)\n\t// -\n\t// [create-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-multipart-upload.html)\n\t// -\n\t// [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)\n\t// -\n\t// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)\n\t// -\n\t// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)\n\tAWSS3KeyKey = attribute.Key(\"aws.s3.key\")\n\n\t// AWSS3CopySourceKey is the attribute Key conforming to the\n\t// \"aws.s3.copy_source\" semantic conventions. It represents the source\n\t// object (in the form `bucket`/`key`) for the copy operation.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'someFile.yml'\n\t// Note: The `copy_source` attribute applies to S3 copy operations and\n\t// corresponds to the `--copy-source` parameter\n\t// of the [copy-object operation within the S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html).\n\t// This applies in particular to the following operations:\n\t//\n\t// -\n\t// [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)\n\t// -\n\t// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)\n\tAWSS3CopySourceKey = attribute.Key(\"aws.s3.copy_source\")\n\n\t// AWSS3UploadIDKey is the attribute Key conforming to the\n\t// \"aws.s3.upload_id\" semantic conventions. It represents the upload ID\n\t// that identifies the multipart upload.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ'\n\t// Note: The `upload_id` attribute applies to S3 multipart-upload\n\t// operations and corresponds to the `--upload-id` parameter\n\t// of the [S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)\n\t// multipart operations.\n\t// This applies in particular to the following operations:\n\t//\n\t// -\n\t// [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)\n\t// -\n\t// [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)\n\t// -\n\t// [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)\n\t// -\n\t// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)\n\t// -\n\t// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)\n\tAWSS3UploadIDKey = attribute.Key(\"aws.s3.upload_id\")\n\n\t// AWSS3DeleteKey is the attribute Key conforming to the \"aws.s3.delete\"\n\t// semantic conventions. It represents the delete request container that\n\t// specifies the objects to be deleted.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples:\n\t// 'Objects=[{Key=string,VersionID=string},{Key=string,VersionID=string}],Quiet=boolean'\n\t// Note: The `delete` attribute is only applicable to the\n\t// [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)\n\t// operation.\n\t// The `delete` attribute corresponds to the `--delete` parameter of the\n\t// [delete-objects operation within the S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-objects.html).\n\tAWSS3DeleteKey = attribute.Key(\"aws.s3.delete\")\n\n\t// AWSS3PartNumberKey is the attribute Key conforming to the\n\t// \"aws.s3.part_number\" semantic conventions. It represents the part number\n\t// of the part being uploaded in a multipart-upload operation. This is a\n\t// positive integer between 1 and 10,000.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 3456\n\t// Note: The `part_number` attribute is only applicable to the\n\t// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)\n\t// and\n\t// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)\n\t// operations.\n\t// The `part_number` attribute corresponds to the `--part-number` parameter\n\t// of the\n\t// [upload-part operation within the S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html).\n\tAWSS3PartNumberKey = attribute.Key(\"aws.s3.part_number\")\n)\n\n// AWSS3Bucket returns an attribute KeyValue conforming to the\n// \"aws.s3.bucket\" semantic conventions. It represents the S3 bucket name the\n// request refers to. Corresponds to the `--bucket` parameter of the [S3\n// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)\n// operations.\nfunc AWSS3Bucket(val string) attribute.KeyValue {\n\treturn AWSS3BucketKey.String(val)\n}\n\n// AWSS3Key returns an attribute KeyValue conforming to the \"aws.s3.key\"\n// semantic conventions. It represents the S3 object key the request refers to.\n// Corresponds to the `--key` parameter of the [S3\n// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)\n// operations.\nfunc AWSS3Key(val string) attribute.KeyValue {\n\treturn AWSS3KeyKey.String(val)\n}\n\n// AWSS3CopySource returns an attribute KeyValue conforming to the\n// \"aws.s3.copy_source\" semantic conventions. It represents the source object\n// (in the form `bucket`/`key`) for the copy operation.\nfunc AWSS3CopySource(val string) attribute.KeyValue {\n\treturn AWSS3CopySourceKey.String(val)\n}\n\n// AWSS3UploadID returns an attribute KeyValue conforming to the\n// \"aws.s3.upload_id\" semantic conventions. It represents the upload ID that\n// identifies the multipart upload.\nfunc AWSS3UploadID(val string) attribute.KeyValue {\n\treturn AWSS3UploadIDKey.String(val)\n}\n\n// AWSS3Delete returns an attribute KeyValue conforming to the\n// \"aws.s3.delete\" semantic conventions. It represents the delete request\n// container that specifies the objects to be deleted.\nfunc AWSS3Delete(val string) attribute.KeyValue {\n\treturn AWSS3DeleteKey.String(val)\n}\n\n// AWSS3PartNumber returns an attribute KeyValue conforming to the\n// \"aws.s3.part_number\" semantic conventions. It represents the part number of\n// the part being uploaded in a multipart-upload operation. This is a positive\n// integer between 1 and 10,000.\nfunc AWSS3PartNumber(val int) attribute.KeyValue {\n\treturn AWSS3PartNumberKey.Int(val)\n}\n\n// Semantic conventions to apply when instrumenting the GraphQL implementation.\n// They map GraphQL operations to attributes on a Span.\nconst (\n\t// GraphqlOperationNameKey is the attribute Key conforming to the\n\t// \"graphql.operation.name\" semantic conventions. It represents the name of\n\t// the operation being executed.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'findBookByID'\n\tGraphqlOperationNameKey = attribute.Key(\"graphql.operation.name\")\n\n\t// GraphqlOperationTypeKey is the attribute Key conforming to the\n\t// \"graphql.operation.type\" semantic conventions. It represents the type of\n\t// the operation being executed.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'query', 'mutation', 'subscription'\n\tGraphqlOperationTypeKey = attribute.Key(\"graphql.operation.type\")\n\n\t// GraphqlDocumentKey is the attribute Key conforming to the\n\t// \"graphql.document\" semantic conventions. It represents the GraphQL\n\t// document being executed.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'query findBookByID { bookByID(id: ?) { name } }'\n\t// Note: The value may be sanitized to exclude sensitive information.\n\tGraphqlDocumentKey = attribute.Key(\"graphql.document\")\n)\n\nvar (\n\t// GraphQL query\n\tGraphqlOperationTypeQuery = GraphqlOperationTypeKey.String(\"query\")\n\t// GraphQL mutation\n\tGraphqlOperationTypeMutation = GraphqlOperationTypeKey.String(\"mutation\")\n\t// GraphQL subscription\n\tGraphqlOperationTypeSubscription = GraphqlOperationTypeKey.String(\"subscription\")\n)\n\n// GraphqlOperationName returns an attribute KeyValue conforming to the\n// \"graphql.operation.name\" semantic conventions. It represents the name of the\n// operation being executed.\nfunc GraphqlOperationName(val string) attribute.KeyValue {\n\treturn GraphqlOperationNameKey.String(val)\n}\n\n// GraphqlDocument returns an attribute KeyValue conforming to the\n// \"graphql.document\" semantic conventions. It represents the GraphQL document\n// being executed.\nfunc GraphqlDocument(val string) attribute.KeyValue {\n\treturn GraphqlDocumentKey.String(val)\n}\n\n// General attributes used in messaging systems.\nconst (\n\t// MessagingSystemKey is the attribute Key conforming to the\n\t// \"messaging.system\" semantic conventions. It represents a string\n\t// identifying the messaging system.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Examples: 'kafka', 'rabbitmq', 'rocketmq', 'activemq', 'AmazonSQS'\n\tMessagingSystemKey = attribute.Key(\"messaging.system\")\n\n\t// MessagingOperationKey is the attribute Key conforming to the\n\t// \"messaging.operation\" semantic conventions. It represents a string\n\t// identifying the kind of messaging operation as defined in the [Operation\n\t// names](#operation-names) section above.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: stable\n\t// Note: If a custom value is used, it MUST be of low cardinality.\n\tMessagingOperationKey = attribute.Key(\"messaging.operation\")\n\n\t// MessagingBatchMessageCountKey is the attribute Key conforming to the\n\t// \"messaging.batch.message_count\" semantic conventions. It represents the\n\t// number of messages sent, received, or processed in the scope of the\n\t// batching operation.\n\t//\n\t// Type: int\n\t// RequirementLevel: ConditionallyRequired (If the span describes an\n\t// operation on a batch of messages.)\n\t// Stability: stable\n\t// Examples: 0, 1, 2\n\t// Note: Instrumentations SHOULD NOT set `messaging.batch.message_count` on\n\t// spans that operate with a single message. When a messaging client\n\t// library supports both batch and single-message API for the same\n\t// operation, instrumentations SHOULD use `messaging.batch.message_count`\n\t// for batching APIs and SHOULD NOT use it for single-message APIs.\n\tMessagingBatchMessageCountKey = attribute.Key(\"messaging.batch.message_count\")\n)\n\nvar (\n\t// publish\n\tMessagingOperationPublish = MessagingOperationKey.String(\"publish\")\n\t// receive\n\tMessagingOperationReceive = MessagingOperationKey.String(\"receive\")\n\t// process\n\tMessagingOperationProcess = MessagingOperationKey.String(\"process\")\n)\n\n// MessagingSystem returns an attribute KeyValue conforming to the\n// \"messaging.system\" semantic conventions. It represents a string identifying\n// the messaging system.\nfunc MessagingSystem(val string) attribute.KeyValue {\n\treturn MessagingSystemKey.String(val)\n}\n\n// MessagingBatchMessageCount returns an attribute KeyValue conforming to\n// the \"messaging.batch.message_count\" semantic conventions. It represents the\n// number of messages sent, received, or processed in the scope of the batching\n// operation.\nfunc MessagingBatchMessageCount(val int) attribute.KeyValue {\n\treturn MessagingBatchMessageCountKey.Int(val)\n}\n\n// Semantic convention for a consumer of messages received from a messaging\n// system\nconst (\n\t// MessagingConsumerIDKey is the attribute Key conforming to the\n\t// \"messaging.consumer.id\" semantic conventions. It represents the\n\t// identifier for the consumer receiving a message. For Kafka, set it to\n\t// `{messaging.kafka.consumer.group} - {messaging.kafka.client_id}`, if\n\t// both are present, or only `messaging.kafka.consumer.group`. For brokers,\n\t// such as RabbitMQ and Artemis, set it to the `client_id` of the client\n\t// consuming the message.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'mygroup - client-6'\n\tMessagingConsumerIDKey = attribute.Key(\"messaging.consumer.id\")\n)\n\n// MessagingConsumerID returns an attribute KeyValue conforming to the\n// \"messaging.consumer.id\" semantic conventions. It represents the identifier\n// for the consumer receiving a message. For Kafka, set it to\n// `{messaging.kafka.consumer.group} - {messaging.kafka.client_id}`, if both\n// are present, or only `messaging.kafka.consumer.group`. For brokers, such as\n// RabbitMQ and Artemis, set it to the `client_id` of the client consuming the\n// message.\nfunc MessagingConsumerID(val string) attribute.KeyValue {\n\treturn MessagingConsumerIDKey.String(val)\n}\n\n// Semantic conventions for remote procedure calls.\nconst (\n\t// RPCSystemKey is the attribute Key conforming to the \"rpc.system\"\n\t// semantic conventions. It represents a string identifying the remoting\n\t// system. See below for a list of well-known identifiers.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: stable\n\tRPCSystemKey = attribute.Key(\"rpc.system\")\n\n\t// RPCServiceKey is the attribute Key conforming to the \"rpc.service\"\n\t// semantic conventions. It represents the full (logical) name of the\n\t// service being called, including its package name, if applicable.\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended\n\t// Stability: stable\n\t// Examples: 'myservice.EchoService'\n\t// Note: This is the logical name of the service from the RPC interface\n\t// perspective, which can be different from the name of any implementing\n\t// class. The `code.namespace` attribute may be used to store the latter\n\t// (despite the attribute name, it may include a class name; e.g., class\n\t// with method actually executing the call on the server side, RPC client\n\t// stub class on the client side).\n\tRPCServiceKey = attribute.Key(\"rpc.service\")\n\n\t// RPCMethodKey is the attribute Key conforming to the \"rpc.method\"\n\t// semantic conventions. It represents the name of the (logical) method\n\t// being called, must be equal to the $method part in the span name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended\n\t// Stability: stable\n\t// Examples: 'exampleMethod'\n\t// Note: This is the logical name of the method from the RPC interface\n\t// perspective, which can be different from the name of any implementing\n\t// method/function. The `code.function` attribute may be used to store the\n\t// latter (e.g., method actually executing the call on the server side, RPC\n\t// client stub method on the client side).\n\tRPCMethodKey = attribute.Key(\"rpc.method\")\n)\n\nvar (\n\t// gRPC\n\tRPCSystemGRPC = RPCSystemKey.String(\"grpc\")\n\t// Java RMI\n\tRPCSystemJavaRmi = RPCSystemKey.String(\"java_rmi\")\n\t// .NET WCF\n\tRPCSystemDotnetWcf = RPCSystemKey.String(\"dotnet_wcf\")\n\t// Apache Dubbo\n\tRPCSystemApacheDubbo = RPCSystemKey.String(\"apache_dubbo\")\n\t// Connect RPC\n\tRPCSystemConnectRPC = RPCSystemKey.String(\"connect_rpc\")\n)\n\n// RPCService returns an attribute KeyValue conforming to the \"rpc.service\"\n// semantic conventions. It represents the full (logical) name of the service\n// being called, including its package name, if applicable.\nfunc RPCService(val string) attribute.KeyValue {\n\treturn RPCServiceKey.String(val)\n}\n\n// RPCMethod returns an attribute KeyValue conforming to the \"rpc.method\"\n// semantic conventions. It represents the name of the (logical) method being\n// called, must be equal to the $method part in the span name.\nfunc RPCMethod(val string) attribute.KeyValue {\n\treturn RPCMethodKey.String(val)\n}\n\n// Tech-specific attributes for gRPC.\nconst (\n\t// RPCGRPCStatusCodeKey is the attribute Key conforming to the\n\t// \"rpc.grpc.status_code\" semantic conventions. It represents the [numeric\n\t// status\n\t// code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of\n\t// the gRPC request.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: stable\n\tRPCGRPCStatusCodeKey = attribute.Key(\"rpc.grpc.status_code\")\n)\n\nvar (\n\t// OK\n\tRPCGRPCStatusCodeOk = RPCGRPCStatusCodeKey.Int(0)\n\t// CANCELLED\n\tRPCGRPCStatusCodeCancelled = RPCGRPCStatusCodeKey.Int(1)\n\t// UNKNOWN\n\tRPCGRPCStatusCodeUnknown = RPCGRPCStatusCodeKey.Int(2)\n\t// INVALID_ARGUMENT\n\tRPCGRPCStatusCodeInvalidArgument = RPCGRPCStatusCodeKey.Int(3)\n\t// DEADLINE_EXCEEDED\n\tRPCGRPCStatusCodeDeadlineExceeded = RPCGRPCStatusCodeKey.Int(4)\n\t// NOT_FOUND\n\tRPCGRPCStatusCodeNotFound = RPCGRPCStatusCodeKey.Int(5)\n\t// ALREADY_EXISTS\n\tRPCGRPCStatusCodeAlreadyExists = RPCGRPCStatusCodeKey.Int(6)\n\t// PERMISSION_DENIED\n\tRPCGRPCStatusCodePermissionDenied = RPCGRPCStatusCodeKey.Int(7)\n\t// RESOURCE_EXHAUSTED\n\tRPCGRPCStatusCodeResourceExhausted = RPCGRPCStatusCodeKey.Int(8)\n\t// FAILED_PRECONDITION\n\tRPCGRPCStatusCodeFailedPrecondition = RPCGRPCStatusCodeKey.Int(9)\n\t// ABORTED\n\tRPCGRPCStatusCodeAborted = RPCGRPCStatusCodeKey.Int(10)\n\t// OUT_OF_RANGE\n\tRPCGRPCStatusCodeOutOfRange = RPCGRPCStatusCodeKey.Int(11)\n\t// UNIMPLEMENTED\n\tRPCGRPCStatusCodeUnimplemented = RPCGRPCStatusCodeKey.Int(12)\n\t// INTERNAL\n\tRPCGRPCStatusCodeInternal = RPCGRPCStatusCodeKey.Int(13)\n\t// UNAVAILABLE\n\tRPCGRPCStatusCodeUnavailable = RPCGRPCStatusCodeKey.Int(14)\n\t// DATA_LOSS\n\tRPCGRPCStatusCodeDataLoss = RPCGRPCStatusCodeKey.Int(15)\n\t// UNAUTHENTICATED\n\tRPCGRPCStatusCodeUnauthenticated = RPCGRPCStatusCodeKey.Int(16)\n)\n\n// Tech-specific attributes for [JSON RPC](https://www.jsonrpc.org/).\nconst (\n\t// RPCJsonrpcVersionKey is the attribute Key conforming to the\n\t// \"rpc.jsonrpc.version\" semantic conventions. It represents the protocol\n\t// version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0\n\t// does not specify this, the value can be omitted.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (If other than the default\n\t// version (`1.0`))\n\t// Stability: stable\n\t// Examples: '2.0', '1.0'\n\tRPCJsonrpcVersionKey = attribute.Key(\"rpc.jsonrpc.version\")\n\n\t// RPCJsonrpcRequestIDKey is the attribute Key conforming to the\n\t// \"rpc.jsonrpc.request_id\" semantic conventions. It represents the `id`\n\t// property of request or response. Since protocol allows id to be int,\n\t// string, `null` or missing (for notifications), value is expected to be\n\t// cast to string for simplicity. Use empty string in case of `null` value.\n\t// Omit entirely if this is a notification.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '10', 'request-7', ''\n\tRPCJsonrpcRequestIDKey = attribute.Key(\"rpc.jsonrpc.request_id\")\n\n\t// RPCJsonrpcErrorCodeKey is the attribute Key conforming to the\n\t// \"rpc.jsonrpc.error_code\" semantic conventions. It represents the\n\t// `error.code` property of response if it is an error response.\n\t//\n\t// Type: int\n\t// RequirementLevel: ConditionallyRequired (If response is not successful.)\n\t// Stability: stable\n\t// Examples: -32700, 100\n\tRPCJsonrpcErrorCodeKey = attribute.Key(\"rpc.jsonrpc.error_code\")\n\n\t// RPCJsonrpcErrorMessageKey is the attribute Key conforming to the\n\t// \"rpc.jsonrpc.error_message\" semantic conventions. It represents the\n\t// `error.message` property of response if it is an error response.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'Parse error', 'User already exists'\n\tRPCJsonrpcErrorMessageKey = attribute.Key(\"rpc.jsonrpc.error_message\")\n)\n\n// RPCJsonrpcVersion returns an attribute KeyValue conforming to the\n// \"rpc.jsonrpc.version\" semantic conventions. It represents the protocol\n// version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0\n// does not specify this, the value can be omitted.\nfunc RPCJsonrpcVersion(val string) attribute.KeyValue {\n\treturn RPCJsonrpcVersionKey.String(val)\n}\n\n// RPCJsonrpcRequestID returns an attribute KeyValue conforming to the\n// \"rpc.jsonrpc.request_id\" semantic conventions. It represents the `id`\n// property of request or response. Since protocol allows id to be int, string,\n// `null` or missing (for notifications), value is expected to be cast to\n// string for simplicity. Use empty string in case of `null` value. Omit\n// entirely if this is a notification.\nfunc RPCJsonrpcRequestID(val string) attribute.KeyValue {\n\treturn RPCJsonrpcRequestIDKey.String(val)\n}\n\n// RPCJsonrpcErrorCode returns an attribute KeyValue conforming to the\n// \"rpc.jsonrpc.error_code\" semantic conventions. It represents the\n// `error.code` property of response if it is an error response.\nfunc RPCJsonrpcErrorCode(val int) attribute.KeyValue {\n\treturn RPCJsonrpcErrorCodeKey.Int(val)\n}\n\n// RPCJsonrpcErrorMessage returns an attribute KeyValue conforming to the\n// \"rpc.jsonrpc.error_message\" semantic conventions. It represents the\n// `error.message` property of response if it is an error response.\nfunc RPCJsonrpcErrorMessage(val string) attribute.KeyValue {\n\treturn RPCJsonrpcErrorMessageKey.String(val)\n}\n\n// Tech-specific attributes for Connect RPC.\nconst (\n\t// RPCConnectRPCErrorCodeKey is the attribute Key conforming to the\n\t// \"rpc.connect_rpc.error_code\" semantic conventions. It represents the\n\t// [error codes](https://connect.build/docs/protocol/#error-codes) of the\n\t// Connect request. Error codes are always string values.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: ConditionallyRequired (If response is not successful\n\t// and if error code available.)\n\t// Stability: stable\n\tRPCConnectRPCErrorCodeKey = attribute.Key(\"rpc.connect_rpc.error_code\")\n)\n\nvar (\n\t// cancelled\n\tRPCConnectRPCErrorCodeCancelled = RPCConnectRPCErrorCodeKey.String(\"cancelled\")\n\t// unknown\n\tRPCConnectRPCErrorCodeUnknown = RPCConnectRPCErrorCodeKey.String(\"unknown\")\n\t// invalid_argument\n\tRPCConnectRPCErrorCodeInvalidArgument = RPCConnectRPCErrorCodeKey.String(\"invalid_argument\")\n\t// deadline_exceeded\n\tRPCConnectRPCErrorCodeDeadlineExceeded = RPCConnectRPCErrorCodeKey.String(\"deadline_exceeded\")\n\t// not_found\n\tRPCConnectRPCErrorCodeNotFound = RPCConnectRPCErrorCodeKey.String(\"not_found\")\n\t// already_exists\n\tRPCConnectRPCErrorCodeAlreadyExists = RPCConnectRPCErrorCodeKey.String(\"already_exists\")\n\t// permission_denied\n\tRPCConnectRPCErrorCodePermissionDenied = RPCConnectRPCErrorCodeKey.String(\"permission_denied\")\n\t// resource_exhausted\n\tRPCConnectRPCErrorCodeResourceExhausted = RPCConnectRPCErrorCodeKey.String(\"resource_exhausted\")\n\t// failed_precondition\n\tRPCConnectRPCErrorCodeFailedPrecondition = RPCConnectRPCErrorCodeKey.String(\"failed_precondition\")\n\t// aborted\n\tRPCConnectRPCErrorCodeAborted = RPCConnectRPCErrorCodeKey.String(\"aborted\")\n\t// out_of_range\n\tRPCConnectRPCErrorCodeOutOfRange = RPCConnectRPCErrorCodeKey.String(\"out_of_range\")\n\t// unimplemented\n\tRPCConnectRPCErrorCodeUnimplemented = RPCConnectRPCErrorCodeKey.String(\"unimplemented\")\n\t// internal\n\tRPCConnectRPCErrorCodeInternal = RPCConnectRPCErrorCodeKey.String(\"internal\")\n\t// unavailable\n\tRPCConnectRPCErrorCodeUnavailable = RPCConnectRPCErrorCodeKey.String(\"unavailable\")\n\t// data_loss\n\tRPCConnectRPCErrorCodeDataLoss = RPCConnectRPCErrorCodeKey.String(\"data_loss\")\n\t// unauthenticated\n\tRPCConnectRPCErrorCodeUnauthenticated = RPCConnectRPCErrorCodeKey.String(\"unauthenticated\")\n)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.24.0/README.md",
    "content": "# Semconv v1.24.0\n\n[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/semconv/v1.24.0)](https://pkg.go.dev/go.opentelemetry.io/otel/semconv/v1.24.0)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.24.0/attribute_group.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Code generated from semantic convention specification. DO NOT EDIT.\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.24.0\"\n\nimport \"go.opentelemetry.io/otel/attribute\"\n\n// Describes FaaS attributes.\nconst (\n\t// FaaSInvokedNameKey is the attribute Key conforming to the\n\t// \"faas.invoked_name\" semantic conventions. It represents the name of the\n\t// invoked function.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'my-function'\n\t// Note: SHOULD be equal to the `faas.name` resource attribute of the\n\t// invoked function.\n\tFaaSInvokedNameKey = attribute.Key(\"faas.invoked_name\")\n\n\t// FaaSInvokedProviderKey is the attribute Key conforming to the\n\t// \"faas.invoked_provider\" semantic conventions. It represents the cloud\n\t// provider of the invoked function.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Note: SHOULD be equal to the `cloud.provider` resource attribute of the\n\t// invoked function.\n\tFaaSInvokedProviderKey = attribute.Key(\"faas.invoked_provider\")\n\n\t// FaaSInvokedRegionKey is the attribute Key conforming to the\n\t// \"faas.invoked_region\" semantic conventions. It represents the cloud\n\t// region of the invoked function.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (For some cloud providers, like\n\t// AWS or GCP, the region in which a function is hosted is essential to\n\t// uniquely identify the function and also part of its endpoint. Since it's\n\t// part of the endpoint being called, the region is always known to\n\t// clients. In these cases, `faas.invoked_region` MUST be set accordingly.\n\t// If the region is unknown to the client or not required for identifying\n\t// the invoked function, setting `faas.invoked_region` is optional.)\n\t// Stability: experimental\n\t// Examples: 'eu-central-1'\n\t// Note: SHOULD be equal to the `cloud.region` resource attribute of the\n\t// invoked function.\n\tFaaSInvokedRegionKey = attribute.Key(\"faas.invoked_region\")\n\n\t// FaaSTriggerKey is the attribute Key conforming to the \"faas.trigger\"\n\t// semantic conventions. It represents the type of the trigger which caused\n\t// this function invocation.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tFaaSTriggerKey = attribute.Key(\"faas.trigger\")\n)\n\nvar (\n\t// Alibaba Cloud\n\tFaaSInvokedProviderAlibabaCloud = FaaSInvokedProviderKey.String(\"alibaba_cloud\")\n\t// Amazon Web Services\n\tFaaSInvokedProviderAWS = FaaSInvokedProviderKey.String(\"aws\")\n\t// Microsoft Azure\n\tFaaSInvokedProviderAzure = FaaSInvokedProviderKey.String(\"azure\")\n\t// Google Cloud Platform\n\tFaaSInvokedProviderGCP = FaaSInvokedProviderKey.String(\"gcp\")\n\t// Tencent Cloud\n\tFaaSInvokedProviderTencentCloud = FaaSInvokedProviderKey.String(\"tencent_cloud\")\n)\n\nvar (\n\t// A response to some data source operation such as a database or filesystem read/write\n\tFaaSTriggerDatasource = FaaSTriggerKey.String(\"datasource\")\n\t// To provide an answer to an inbound HTTP request\n\tFaaSTriggerHTTP = FaaSTriggerKey.String(\"http\")\n\t// A function is set to be executed when messages are sent to a messaging system\n\tFaaSTriggerPubsub = FaaSTriggerKey.String(\"pubsub\")\n\t// A function is scheduled to be executed regularly\n\tFaaSTriggerTimer = FaaSTriggerKey.String(\"timer\")\n\t// If none of the others apply\n\tFaaSTriggerOther = FaaSTriggerKey.String(\"other\")\n)\n\n// FaaSInvokedName returns an attribute KeyValue conforming to the\n// \"faas.invoked_name\" semantic conventions. It represents the name of the\n// invoked function.\nfunc FaaSInvokedName(val string) attribute.KeyValue {\n\treturn FaaSInvokedNameKey.String(val)\n}\n\n// FaaSInvokedRegion returns an attribute KeyValue conforming to the\n// \"faas.invoked_region\" semantic conventions. It represents the cloud region\n// of the invoked function.\nfunc FaaSInvokedRegion(val string) attribute.KeyValue {\n\treturn FaaSInvokedRegionKey.String(val)\n}\n\n// Attributes for Events represented using Log Records.\nconst (\n\t// EventNameKey is the attribute Key conforming to the \"event.name\"\n\t// semantic conventions. It represents the identifies the class / type of\n\t// event.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'browser.mouse.click', 'device.app.lifecycle'\n\t// Note: Event names are subject to the same rules as [attribute\n\t// names](https://github.com/open-telemetry/opentelemetry-specification/tree/v1.26.0/specification/common/attribute-naming.md).\n\t// Notably, event names are namespaced to avoid collisions and provide a\n\t// clean separation of semantics for events in separate domains like\n\t// browser, mobile, and kubernetes.\n\tEventNameKey = attribute.Key(\"event.name\")\n)\n\n// EventName returns an attribute KeyValue conforming to the \"event.name\"\n// semantic conventions. It represents the identifies the class / type of\n// event.\nfunc EventName(val string) attribute.KeyValue {\n\treturn EventNameKey.String(val)\n}\n\n// The attributes described in this section are rather generic. They may be\n// used in any Log Record they apply to.\nconst (\n\t// LogRecordUIDKey is the attribute Key conforming to the \"log.record.uid\"\n\t// semantic conventions. It represents a unique identifier for the Log\n\t// Record.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '01ARZ3NDEKTSV4RRFFQ69G5FAV'\n\t// Note: If an id is provided, other log records with the same id will be\n\t// considered duplicates and can be removed safely. This means, that two\n\t// distinguishable log records MUST have different values.\n\t// The id MAY be an [Universally Unique Lexicographically Sortable\n\t// Identifier (ULID)](https://github.com/ulid/spec), but other identifiers\n\t// (e.g. UUID) may be used as needed.\n\tLogRecordUIDKey = attribute.Key(\"log.record.uid\")\n)\n\n// LogRecordUID returns an attribute KeyValue conforming to the\n// \"log.record.uid\" semantic conventions. It represents a unique identifier for\n// the Log Record.\nfunc LogRecordUID(val string) attribute.KeyValue {\n\treturn LogRecordUIDKey.String(val)\n}\n\n// Describes Log attributes\nconst (\n\t// LogIostreamKey is the attribute Key conforming to the \"log.iostream\"\n\t// semantic conventions. It represents the stream associated with the log.\n\t// See below for a list of well-known values.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tLogIostreamKey = attribute.Key(\"log.iostream\")\n)\n\nvar (\n\t// Logs from stdout stream\n\tLogIostreamStdout = LogIostreamKey.String(\"stdout\")\n\t// Events from stderr stream\n\tLogIostreamStderr = LogIostreamKey.String(\"stderr\")\n)\n\n// A file to which log was emitted.\nconst (\n\t// LogFileNameKey is the attribute Key conforming to the \"log.file.name\"\n\t// semantic conventions. It represents the basename of the file.\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended\n\t// Stability: experimental\n\t// Examples: 'audit.log'\n\tLogFileNameKey = attribute.Key(\"log.file.name\")\n\n\t// LogFileNameResolvedKey is the attribute Key conforming to the\n\t// \"log.file.name_resolved\" semantic conventions. It represents the\n\t// basename of the file, with symlinks resolved.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'uuid.log'\n\tLogFileNameResolvedKey = attribute.Key(\"log.file.name_resolved\")\n\n\t// LogFilePathKey is the attribute Key conforming to the \"log.file.path\"\n\t// semantic conventions. It represents the full path to the file.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '/var/log/mysql/audit.log'\n\tLogFilePathKey = attribute.Key(\"log.file.path\")\n\n\t// LogFilePathResolvedKey is the attribute Key conforming to the\n\t// \"log.file.path_resolved\" semantic conventions. It represents the full\n\t// path to the file, with symlinks resolved.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '/var/lib/docker/uuid.log'\n\tLogFilePathResolvedKey = attribute.Key(\"log.file.path_resolved\")\n)\n\n// LogFileName returns an attribute KeyValue conforming to the\n// \"log.file.name\" semantic conventions. It represents the basename of the\n// file.\nfunc LogFileName(val string) attribute.KeyValue {\n\treturn LogFileNameKey.String(val)\n}\n\n// LogFileNameResolved returns an attribute KeyValue conforming to the\n// \"log.file.name_resolved\" semantic conventions. It represents the basename of\n// the file, with symlinks resolved.\nfunc LogFileNameResolved(val string) attribute.KeyValue {\n\treturn LogFileNameResolvedKey.String(val)\n}\n\n// LogFilePath returns an attribute KeyValue conforming to the\n// \"log.file.path\" semantic conventions. It represents the full path to the\n// file.\nfunc LogFilePath(val string) attribute.KeyValue {\n\treturn LogFilePathKey.String(val)\n}\n\n// LogFilePathResolved returns an attribute KeyValue conforming to the\n// \"log.file.path_resolved\" semantic conventions. It represents the full path\n// to the file, with symlinks resolved.\nfunc LogFilePathResolved(val string) attribute.KeyValue {\n\treturn LogFilePathResolvedKey.String(val)\n}\n\n// Describes Database attributes\nconst (\n\t// PoolNameKey is the attribute Key conforming to the \"pool.name\" semantic\n\t// conventions. It represents the name of the connection pool; unique\n\t// within the instrumented application. In case the connection pool\n\t// implementation doesn't provide a name, then the\n\t// [db.connection_string](/docs/database/database-spans.md#connection-level-attributes)\n\t// should be used\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'myDataSource'\n\tPoolNameKey = attribute.Key(\"pool.name\")\n\n\t// StateKey is the attribute Key conforming to the \"state\" semantic\n\t// conventions. It represents the state of a connection in the pool\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'idle'\n\tStateKey = attribute.Key(\"state\")\n)\n\nvar (\n\t// idle\n\tStateIdle = StateKey.String(\"idle\")\n\t// used\n\tStateUsed = StateKey.String(\"used\")\n)\n\n// PoolName returns an attribute KeyValue conforming to the \"pool.name\"\n// semantic conventions. It represents the name of the connection pool; unique\n// within the instrumented application. In case the connection pool\n// implementation doesn't provide a name, then the\n// [db.connection_string](/docs/database/database-spans.md#connection-level-attributes)\n// should be used\nfunc PoolName(val string) attribute.KeyValue {\n\treturn PoolNameKey.String(val)\n}\n\n// ASP.NET Core attributes\nconst (\n\t// AspnetcoreDiagnosticsHandlerTypeKey is the attribute Key conforming to\n\t// the \"aspnetcore.diagnostics.handler.type\" semantic conventions. It\n\t// represents the full type name of the\n\t// [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler)\n\t// implementation that handled the exception.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (if and only if the exception\n\t// was handled by this handler.)\n\t// Stability: experimental\n\t// Examples: 'Contoso.MyHandler'\n\tAspnetcoreDiagnosticsHandlerTypeKey = attribute.Key(\"aspnetcore.diagnostics.handler.type\")\n\n\t// AspnetcoreRateLimitingPolicyKey is the attribute Key conforming to the\n\t// \"aspnetcore.rate_limiting.policy\" semantic conventions. It represents\n\t// the rate limiting policy name.\n\t//\n\t// Type: string\n\t// RequirementLevel: ConditionallyRequired (if the matched endpoint for the\n\t// request had a rate-limiting policy.)\n\t// Stability: experimental\n\t// Examples: 'fixed', 'sliding', 'token'\n\tAspnetcoreRateLimitingPolicyKey = attribute.Key(\"aspnetcore.rate_limiting.policy\")\n\n\t// AspnetcoreRateLimitingResultKey is the attribute Key conforming to the\n\t// \"aspnetcore.rate_limiting.result\" semantic conventions. It represents\n\t// the rate-limiting result, shows whether the lease was acquired or\n\t// contains a rejection reason\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'acquired', 'request_canceled'\n\tAspnetcoreRateLimitingResultKey = attribute.Key(\"aspnetcore.rate_limiting.result\")\n\n\t// AspnetcoreRequestIsUnhandledKey is the attribute Key conforming to the\n\t// \"aspnetcore.request.is_unhandled\" semantic conventions. It represents\n\t// the flag indicating if request was handled by the application pipeline.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: ConditionallyRequired (if and only if the request was\n\t// not handled.)\n\t// Stability: experimental\n\t// Examples: True\n\tAspnetcoreRequestIsUnhandledKey = attribute.Key(\"aspnetcore.request.is_unhandled\")\n\n\t// AspnetcoreRoutingIsFallbackKey is the attribute Key conforming to the\n\t// \"aspnetcore.routing.is_fallback\" semantic conventions. It represents a\n\t// value that indicates whether the matched route is a fallback route.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: ConditionallyRequired (If and only if a route was\n\t// successfully matched.)\n\t// Stability: experimental\n\t// Examples: True\n\tAspnetcoreRoutingIsFallbackKey = attribute.Key(\"aspnetcore.routing.is_fallback\")\n)\n\nvar (\n\t// Lease was acquired\n\tAspnetcoreRateLimitingResultAcquired = AspnetcoreRateLimitingResultKey.String(\"acquired\")\n\t// Lease request was rejected by the endpoint limiter\n\tAspnetcoreRateLimitingResultEndpointLimiter = AspnetcoreRateLimitingResultKey.String(\"endpoint_limiter\")\n\t// Lease request was rejected by the global limiter\n\tAspnetcoreRateLimitingResultGlobalLimiter = AspnetcoreRateLimitingResultKey.String(\"global_limiter\")\n\t// Lease request was canceled\n\tAspnetcoreRateLimitingResultRequestCanceled = AspnetcoreRateLimitingResultKey.String(\"request_canceled\")\n)\n\n// AspnetcoreDiagnosticsHandlerType returns an attribute KeyValue conforming\n// to the \"aspnetcore.diagnostics.handler.type\" semantic conventions. It\n// represents the full type name of the\n// [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler)\n// implementation that handled the exception.\nfunc AspnetcoreDiagnosticsHandlerType(val string) attribute.KeyValue {\n\treturn AspnetcoreDiagnosticsHandlerTypeKey.String(val)\n}\n\n// AspnetcoreRateLimitingPolicy returns an attribute KeyValue conforming to\n// the \"aspnetcore.rate_limiting.policy\" semantic conventions. It represents\n// the rate limiting policy name.\nfunc AspnetcoreRateLimitingPolicy(val string) attribute.KeyValue {\n\treturn AspnetcoreRateLimitingPolicyKey.String(val)\n}\n\n// AspnetcoreRequestIsUnhandled returns an attribute KeyValue conforming to\n// the \"aspnetcore.request.is_unhandled\" semantic conventions. It represents\n// the flag indicating if request was handled by the application pipeline.\nfunc AspnetcoreRequestIsUnhandled(val bool) attribute.KeyValue {\n\treturn AspnetcoreRequestIsUnhandledKey.Bool(val)\n}\n\n// AspnetcoreRoutingIsFallback returns an attribute KeyValue conforming to\n// the \"aspnetcore.routing.is_fallback\" semantic conventions. It represents a\n// value that indicates whether the matched route is a fallback route.\nfunc AspnetcoreRoutingIsFallback(val bool) attribute.KeyValue {\n\treturn AspnetcoreRoutingIsFallbackKey.Bool(val)\n}\n\n// SignalR attributes\nconst (\n\t// SignalrConnectionStatusKey is the attribute Key conforming to the\n\t// \"signalr.connection.status\" semantic conventions. It represents the\n\t// signalR HTTP connection closure status.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'app_shutdown', 'timeout'\n\tSignalrConnectionStatusKey = attribute.Key(\"signalr.connection.status\")\n\n\t// SignalrTransportKey is the attribute Key conforming to the\n\t// \"signalr.transport\" semantic conventions. It represents the [SignalR\n\t// transport\n\t// type](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/TransportProtocols.md)\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'web_sockets', 'long_polling'\n\tSignalrTransportKey = attribute.Key(\"signalr.transport\")\n)\n\nvar (\n\t// The connection was closed normally\n\tSignalrConnectionStatusNormalClosure = SignalrConnectionStatusKey.String(\"normal_closure\")\n\t// The connection was closed due to a timeout\n\tSignalrConnectionStatusTimeout = SignalrConnectionStatusKey.String(\"timeout\")\n\t// The connection was closed because the app is shutting down\n\tSignalrConnectionStatusAppShutdown = SignalrConnectionStatusKey.String(\"app_shutdown\")\n)\n\nvar (\n\t// ServerSentEvents protocol\n\tSignalrTransportServerSentEvents = SignalrTransportKey.String(\"server_sent_events\")\n\t// LongPolling protocol\n\tSignalrTransportLongPolling = SignalrTransportKey.String(\"long_polling\")\n\t// WebSockets protocol\n\tSignalrTransportWebSockets = SignalrTransportKey.String(\"web_sockets\")\n)\n\n// Describes JVM buffer metric attributes.\nconst (\n\t// JvmBufferPoolNameKey is the attribute Key conforming to the\n\t// \"jvm.buffer.pool.name\" semantic conventions. It represents the name of\n\t// the buffer pool.\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended\n\t// Stability: experimental\n\t// Examples: 'mapped', 'direct'\n\t// Note: Pool names are generally obtained via\n\t// [BufferPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/BufferPoolMXBean.html#getName()).\n\tJvmBufferPoolNameKey = attribute.Key(\"jvm.buffer.pool.name\")\n)\n\n// JvmBufferPoolName returns an attribute KeyValue conforming to the\n// \"jvm.buffer.pool.name\" semantic conventions. It represents the name of the\n// buffer pool.\nfunc JvmBufferPoolName(val string) attribute.KeyValue {\n\treturn JvmBufferPoolNameKey.String(val)\n}\n\n// Describes JVM memory metric attributes.\nconst (\n\t// JvmMemoryPoolNameKey is the attribute Key conforming to the\n\t// \"jvm.memory.pool.name\" semantic conventions. It represents the name of\n\t// the memory pool.\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended\n\t// Stability: stable\n\t// Examples: 'G1 Old Gen', 'G1 Eden space', 'G1 Survivor Space'\n\t// Note: Pool names are generally obtained via\n\t// [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).\n\tJvmMemoryPoolNameKey = attribute.Key(\"jvm.memory.pool.name\")\n\n\t// JvmMemoryTypeKey is the attribute Key conforming to the\n\t// \"jvm.memory.type\" semantic conventions. It represents the type of\n\t// memory.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Recommended\n\t// Stability: stable\n\t// Examples: 'heap', 'non_heap'\n\tJvmMemoryTypeKey = attribute.Key(\"jvm.memory.type\")\n)\n\nvar (\n\t// Heap memory\n\tJvmMemoryTypeHeap = JvmMemoryTypeKey.String(\"heap\")\n\t// Non-heap memory\n\tJvmMemoryTypeNonHeap = JvmMemoryTypeKey.String(\"non_heap\")\n)\n\n// JvmMemoryPoolName returns an attribute KeyValue conforming to the\n// \"jvm.memory.pool.name\" semantic conventions. It represents the name of the\n// memory pool.\nfunc JvmMemoryPoolName(val string) attribute.KeyValue {\n\treturn JvmMemoryPoolNameKey.String(val)\n}\n\n// Describes System metric attributes\nconst (\n\t// SystemDeviceKey is the attribute Key conforming to the \"system.device\"\n\t// semantic conventions. It represents the device identifier\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '(identifier)'\n\tSystemDeviceKey = attribute.Key(\"system.device\")\n)\n\n// SystemDevice returns an attribute KeyValue conforming to the\n// \"system.device\" semantic conventions. It represents the device identifier\nfunc SystemDevice(val string) attribute.KeyValue {\n\treturn SystemDeviceKey.String(val)\n}\n\n// Describes System CPU metric attributes\nconst (\n\t// SystemCPULogicalNumberKey is the attribute Key conforming to the\n\t// \"system.cpu.logical_number\" semantic conventions. It represents the\n\t// logical CPU number [0..n-1]\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 1\n\tSystemCPULogicalNumberKey = attribute.Key(\"system.cpu.logical_number\")\n\n\t// SystemCPUStateKey is the attribute Key conforming to the\n\t// \"system.cpu.state\" semantic conventions. It represents the state of the\n\t// CPU\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'idle', 'interrupt'\n\tSystemCPUStateKey = attribute.Key(\"system.cpu.state\")\n)\n\nvar (\n\t// user\n\tSystemCPUStateUser = SystemCPUStateKey.String(\"user\")\n\t// system\n\tSystemCPUStateSystem = SystemCPUStateKey.String(\"system\")\n\t// nice\n\tSystemCPUStateNice = SystemCPUStateKey.String(\"nice\")\n\t// idle\n\tSystemCPUStateIdle = SystemCPUStateKey.String(\"idle\")\n\t// iowait\n\tSystemCPUStateIowait = SystemCPUStateKey.String(\"iowait\")\n\t// interrupt\n\tSystemCPUStateInterrupt = SystemCPUStateKey.String(\"interrupt\")\n\t// steal\n\tSystemCPUStateSteal = SystemCPUStateKey.String(\"steal\")\n)\n\n// SystemCPULogicalNumber returns an attribute KeyValue conforming to the\n// \"system.cpu.logical_number\" semantic conventions. It represents the logical\n// CPU number [0..n-1]\nfunc SystemCPULogicalNumber(val int) attribute.KeyValue {\n\treturn SystemCPULogicalNumberKey.Int(val)\n}\n\n// Describes System Memory metric attributes\nconst (\n\t// SystemMemoryStateKey is the attribute Key conforming to the\n\t// \"system.memory.state\" semantic conventions. It represents the memory\n\t// state\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'free', 'cached'\n\tSystemMemoryStateKey = attribute.Key(\"system.memory.state\")\n)\n\nvar (\n\t// used\n\tSystemMemoryStateUsed = SystemMemoryStateKey.String(\"used\")\n\t// free\n\tSystemMemoryStateFree = SystemMemoryStateKey.String(\"free\")\n\t// shared\n\tSystemMemoryStateShared = SystemMemoryStateKey.String(\"shared\")\n\t// buffers\n\tSystemMemoryStateBuffers = SystemMemoryStateKey.String(\"buffers\")\n\t// cached\n\tSystemMemoryStateCached = SystemMemoryStateKey.String(\"cached\")\n)\n\n// Describes System Memory Paging metric attributes\nconst (\n\t// SystemPagingDirectionKey is the attribute Key conforming to the\n\t// \"system.paging.direction\" semantic conventions. It represents the paging\n\t// access direction\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'in'\n\tSystemPagingDirectionKey = attribute.Key(\"system.paging.direction\")\n\n\t// SystemPagingStateKey is the attribute Key conforming to the\n\t// \"system.paging.state\" semantic conventions. It represents the memory\n\t// paging state\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'free'\n\tSystemPagingStateKey = attribute.Key(\"system.paging.state\")\n\n\t// SystemPagingTypeKey is the attribute Key conforming to the\n\t// \"system.paging.type\" semantic conventions. It represents the memory\n\t// paging type\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'minor'\n\tSystemPagingTypeKey = attribute.Key(\"system.paging.type\")\n)\n\nvar (\n\t// in\n\tSystemPagingDirectionIn = SystemPagingDirectionKey.String(\"in\")\n\t// out\n\tSystemPagingDirectionOut = SystemPagingDirectionKey.String(\"out\")\n)\n\nvar (\n\t// used\n\tSystemPagingStateUsed = SystemPagingStateKey.String(\"used\")\n\t// free\n\tSystemPagingStateFree = SystemPagingStateKey.String(\"free\")\n)\n\nvar (\n\t// major\n\tSystemPagingTypeMajor = SystemPagingTypeKey.String(\"major\")\n\t// minor\n\tSystemPagingTypeMinor = SystemPagingTypeKey.String(\"minor\")\n)\n\n// Describes Filesystem metric attributes\nconst (\n\t// SystemFilesystemModeKey is the attribute Key conforming to the\n\t// \"system.filesystem.mode\" semantic conventions. It represents the\n\t// filesystem mode\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'rw, ro'\n\tSystemFilesystemModeKey = attribute.Key(\"system.filesystem.mode\")\n\n\t// SystemFilesystemMountpointKey is the attribute Key conforming to the\n\t// \"system.filesystem.mountpoint\" semantic conventions. It represents the\n\t// filesystem mount path\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '/mnt/data'\n\tSystemFilesystemMountpointKey = attribute.Key(\"system.filesystem.mountpoint\")\n\n\t// SystemFilesystemStateKey is the attribute Key conforming to the\n\t// \"system.filesystem.state\" semantic conventions. It represents the\n\t// filesystem state\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'used'\n\tSystemFilesystemStateKey = attribute.Key(\"system.filesystem.state\")\n\n\t// SystemFilesystemTypeKey is the attribute Key conforming to the\n\t// \"system.filesystem.type\" semantic conventions. It represents the\n\t// filesystem type\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'ext4'\n\tSystemFilesystemTypeKey = attribute.Key(\"system.filesystem.type\")\n)\n\nvar (\n\t// used\n\tSystemFilesystemStateUsed = SystemFilesystemStateKey.String(\"used\")\n\t// free\n\tSystemFilesystemStateFree = SystemFilesystemStateKey.String(\"free\")\n\t// reserved\n\tSystemFilesystemStateReserved = SystemFilesystemStateKey.String(\"reserved\")\n)\n\nvar (\n\t// fat32\n\tSystemFilesystemTypeFat32 = SystemFilesystemTypeKey.String(\"fat32\")\n\t// exfat\n\tSystemFilesystemTypeExfat = SystemFilesystemTypeKey.String(\"exfat\")\n\t// ntfs\n\tSystemFilesystemTypeNtfs = SystemFilesystemTypeKey.String(\"ntfs\")\n\t// refs\n\tSystemFilesystemTypeRefs = SystemFilesystemTypeKey.String(\"refs\")\n\t// hfsplus\n\tSystemFilesystemTypeHfsplus = SystemFilesystemTypeKey.String(\"hfsplus\")\n\t// ext4\n\tSystemFilesystemTypeExt4 = SystemFilesystemTypeKey.String(\"ext4\")\n)\n\n// SystemFilesystemMode returns an attribute KeyValue conforming to the\n// \"system.filesystem.mode\" semantic conventions. It represents the filesystem\n// mode\nfunc SystemFilesystemMode(val string) attribute.KeyValue {\n\treturn SystemFilesystemModeKey.String(val)\n}\n\n// SystemFilesystemMountpoint returns an attribute KeyValue conforming to\n// the \"system.filesystem.mountpoint\" semantic conventions. It represents the\n// filesystem mount path\nfunc SystemFilesystemMountpoint(val string) attribute.KeyValue {\n\treturn SystemFilesystemMountpointKey.String(val)\n}\n\n// Describes Network metric attributes\nconst (\n\t// SystemNetworkStateKey is the attribute Key conforming to the\n\t// \"system.network.state\" semantic conventions. It represents a stateless\n\t// protocol MUST NOT set this attribute\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'close_wait'\n\tSystemNetworkStateKey = attribute.Key(\"system.network.state\")\n)\n\nvar (\n\t// close\n\tSystemNetworkStateClose = SystemNetworkStateKey.String(\"close\")\n\t// close_wait\n\tSystemNetworkStateCloseWait = SystemNetworkStateKey.String(\"close_wait\")\n\t// closing\n\tSystemNetworkStateClosing = SystemNetworkStateKey.String(\"closing\")\n\t// delete\n\tSystemNetworkStateDelete = SystemNetworkStateKey.String(\"delete\")\n\t// established\n\tSystemNetworkStateEstablished = SystemNetworkStateKey.String(\"established\")\n\t// fin_wait_1\n\tSystemNetworkStateFinWait1 = SystemNetworkStateKey.String(\"fin_wait_1\")\n\t// fin_wait_2\n\tSystemNetworkStateFinWait2 = SystemNetworkStateKey.String(\"fin_wait_2\")\n\t// last_ack\n\tSystemNetworkStateLastAck = SystemNetworkStateKey.String(\"last_ack\")\n\t// listen\n\tSystemNetworkStateListen = SystemNetworkStateKey.String(\"listen\")\n\t// syn_recv\n\tSystemNetworkStateSynRecv = SystemNetworkStateKey.String(\"syn_recv\")\n\t// syn_sent\n\tSystemNetworkStateSynSent = SystemNetworkStateKey.String(\"syn_sent\")\n\t// time_wait\n\tSystemNetworkStateTimeWait = SystemNetworkStateKey.String(\"time_wait\")\n)\n\n// Describes System Process metric attributes\nconst (\n\t// SystemProcessesStatusKey is the attribute Key conforming to the\n\t// \"system.processes.status\" semantic conventions. It represents the\n\t// process state, e.g., [Linux Process State\n\t// Codes](https://man7.org/linux/man-pages/man1/ps.1.html#PROCESS_STATE_CODES)\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'running'\n\tSystemProcessesStatusKey = attribute.Key(\"system.processes.status\")\n)\n\nvar (\n\t// running\n\tSystemProcessesStatusRunning = SystemProcessesStatusKey.String(\"running\")\n\t// sleeping\n\tSystemProcessesStatusSleeping = SystemProcessesStatusKey.String(\"sleeping\")\n\t// stopped\n\tSystemProcessesStatusStopped = SystemProcessesStatusKey.String(\"stopped\")\n\t// defunct\n\tSystemProcessesStatusDefunct = SystemProcessesStatusKey.String(\"defunct\")\n)\n\n// These attributes may be used to describe the client in a connection-based\n// network interaction where there is one side that initiates the connection\n// (the client is the side that initiates the connection). This covers all TCP\n// network interactions since TCP is connection-based and one side initiates\n// the connection (an exception is made for peer-to-peer communication over TCP\n// where the \"user-facing\" surface of the protocol / API doesn't expose a clear\n// notion of client and server). This also covers UDP network interactions\n// where one side initiates the interaction, e.g. QUIC (HTTP/3) and DNS.\nconst (\n\t// ClientAddressKey is the attribute Key conforming to the \"client.address\"\n\t// semantic conventions. It represents the client address - domain name if\n\t// available without reverse DNS lookup; otherwise, IP address or Unix\n\t// domain socket name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'client.example.com', '10.1.2.80', '/tmp/my.sock'\n\t// Note: When observed from the server side, and when communicating through\n\t// an intermediary, `client.address` SHOULD represent the client address\n\t// behind any intermediaries,  for example proxies, if it's available.\n\tClientAddressKey = attribute.Key(\"client.address\")\n\n\t// ClientPortKey is the attribute Key conforming to the \"client.port\"\n\t// semantic conventions. It represents the client port number.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 65123\n\t// Note: When observed from the server side, and when communicating through\n\t// an intermediary, `client.port` SHOULD represent the client port behind\n\t// any intermediaries,  for example proxies, if it's available.\n\tClientPortKey = attribute.Key(\"client.port\")\n)\n\n// ClientAddress returns an attribute KeyValue conforming to the\n// \"client.address\" semantic conventions. It represents the client address -\n// domain name if available without reverse DNS lookup; otherwise, IP address\n// or Unix domain socket name.\nfunc ClientAddress(val string) attribute.KeyValue {\n\treturn ClientAddressKey.String(val)\n}\n\n// ClientPort returns an attribute KeyValue conforming to the \"client.port\"\n// semantic conventions. It represents the client port number.\nfunc ClientPort(val int) attribute.KeyValue {\n\treturn ClientPortKey.Int(val)\n}\n\n// The attributes used to describe telemetry in the context of databases.\nconst (\n\t// DBCassandraConsistencyLevelKey is the attribute Key conforming to the\n\t// \"db.cassandra.consistency_level\" semantic conventions. It represents the\n\t// consistency level of the query. Based on consistency values from\n\t// [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tDBCassandraConsistencyLevelKey = attribute.Key(\"db.cassandra.consistency_level\")\n\n\t// DBCassandraCoordinatorDCKey is the attribute Key conforming to the\n\t// \"db.cassandra.coordinator.dc\" semantic conventions. It represents the\n\t// data center of the coordinating node for a query.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'us-west-2'\n\tDBCassandraCoordinatorDCKey = attribute.Key(\"db.cassandra.coordinator.dc\")\n\n\t// DBCassandraCoordinatorIDKey is the attribute Key conforming to the\n\t// \"db.cassandra.coordinator.id\" semantic conventions. It represents the ID\n\t// of the coordinating node for a query.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'be13faa2-8574-4d71-926d-27f16cf8a7af'\n\tDBCassandraCoordinatorIDKey = attribute.Key(\"db.cassandra.coordinator.id\")\n\n\t// DBCassandraIdempotenceKey is the attribute Key conforming to the\n\t// \"db.cassandra.idempotence\" semantic conventions. It represents the\n\t// whether or not the query is idempotent.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tDBCassandraIdempotenceKey = attribute.Key(\"db.cassandra.idempotence\")\n\n\t// DBCassandraPageSizeKey is the attribute Key conforming to the\n\t// \"db.cassandra.page_size\" semantic conventions. It represents the fetch\n\t// size used for paging, i.e. how many rows will be returned at once.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 5000\n\tDBCassandraPageSizeKey = attribute.Key(\"db.cassandra.page_size\")\n\n\t// DBCassandraSpeculativeExecutionCountKey is the attribute Key conforming\n\t// to the \"db.cassandra.speculative_execution_count\" semantic conventions.\n\t// It represents the number of times a query was speculatively executed.\n\t// Not set or `0` if the query was not executed speculatively.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 0, 2\n\tDBCassandraSpeculativeExecutionCountKey = attribute.Key(\"db.cassandra.speculative_execution_count\")\n\n\t// DBCassandraTableKey is the attribute Key conforming to the\n\t// \"db.cassandra.table\" semantic conventions. It represents the name of the\n\t// primary Cassandra table that the operation is acting upon, including the\n\t// keyspace name (if applicable).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'mytable'\n\t// Note: This mirrors the db.sql.table attribute but references cassandra\n\t// rather than sql. It is not recommended to attempt any client-side\n\t// parsing of `db.statement` just to get this property, but it should be\n\t// set if it is provided by the library being instrumented. If the\n\t// operation is acting upon an anonymous table, or more than one table,\n\t// this value MUST NOT be set.\n\tDBCassandraTableKey = attribute.Key(\"db.cassandra.table\")\n\n\t// DBConnectionStringKey is the attribute Key conforming to the\n\t// \"db.connection_string\" semantic conventions. It represents the\n\t// connection string used to connect to the database. It is recommended to\n\t// remove embedded credentials.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Server=(localdb)\\\\v11.0;Integrated Security=true;'\n\tDBConnectionStringKey = attribute.Key(\"db.connection_string\")\n\n\t// DBCosmosDBClientIDKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.client_id\" semantic conventions. It represents the unique\n\t// Cosmos client instance id.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '3ba4827d-4422-483f-b59f-85b74211c11d'\n\tDBCosmosDBClientIDKey = attribute.Key(\"db.cosmosdb.client_id\")\n\n\t// DBCosmosDBConnectionModeKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.connection_mode\" semantic conventions. It represents the\n\t// cosmos client connection mode.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tDBCosmosDBConnectionModeKey = attribute.Key(\"db.cosmosdb.connection_mode\")\n\n\t// DBCosmosDBContainerKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.container\" semantic conventions. It represents the cosmos\n\t// DB container name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'anystring'\n\tDBCosmosDBContainerKey = attribute.Key(\"db.cosmosdb.container\")\n\n\t// DBCosmosDBOperationTypeKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.operation_type\" semantic conventions. It represents the\n\t// cosmosDB Operation Type.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tDBCosmosDBOperationTypeKey = attribute.Key(\"db.cosmosdb.operation_type\")\n\n\t// DBCosmosDBRequestChargeKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.request_charge\" semantic conventions. It represents the rU\n\t// consumed for that operation\n\t//\n\t// Type: double\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 46.18, 1.0\n\tDBCosmosDBRequestChargeKey = attribute.Key(\"db.cosmosdb.request_charge\")\n\n\t// DBCosmosDBRequestContentLengthKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.request_content_length\" semantic conventions. It represents\n\t// the request payload size in bytes\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tDBCosmosDBRequestContentLengthKey = attribute.Key(\"db.cosmosdb.request_content_length\")\n\n\t// DBCosmosDBStatusCodeKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.status_code\" semantic conventions. It represents the cosmos\n\t// DB status code.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 200, 201\n\tDBCosmosDBStatusCodeKey = attribute.Key(\"db.cosmosdb.status_code\")\n\n\t// DBCosmosDBSubStatusCodeKey is the attribute Key conforming to the\n\t// \"db.cosmosdb.sub_status_code\" semantic conventions. It represents the\n\t// cosmos DB sub status code.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 1000, 1002\n\tDBCosmosDBSubStatusCodeKey = attribute.Key(\"db.cosmosdb.sub_status_code\")\n\n\t// DBElasticsearchClusterNameKey is the attribute Key conforming to the\n\t// \"db.elasticsearch.cluster.name\" semantic conventions. It represents the\n\t// represents the identifier of an Elasticsearch cluster.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'e9106fc68e3044f0b1475b04bf4ffd5f'\n\tDBElasticsearchClusterNameKey = attribute.Key(\"db.elasticsearch.cluster.name\")\n\n\t// DBElasticsearchNodeNameKey is the attribute Key conforming to the\n\t// \"db.elasticsearch.node.name\" semantic conventions. It represents the\n\t// represents the human-readable identifier of the node/instance to which a\n\t// request was routed.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'instance-0000000001'\n\tDBElasticsearchNodeNameKey = attribute.Key(\"db.elasticsearch.node.name\")\n\n\t// DBInstanceIDKey is the attribute Key conforming to the \"db.instance.id\"\n\t// semantic conventions. It represents an identifier (address, unique name,\n\t// or any other identifier) of the database instance that is executing\n\t// queries or mutations on the current connection. This is useful in cases\n\t// where the database is running in a clustered environment and the\n\t// instrumentation is able to record the node executing the query. The\n\t// client may obtain this value in databases like MySQL using queries like\n\t// `select @@hostname`.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'mysql-e26b99z.example.com'\n\tDBInstanceIDKey = attribute.Key(\"db.instance.id\")\n\n\t// DBJDBCDriverClassnameKey is the attribute Key conforming to the\n\t// \"db.jdbc.driver_classname\" semantic conventions. It represents the\n\t// fully-qualified class name of the [Java Database Connectivity\n\t// (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/)\n\t// driver used to connect.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'org.postgresql.Driver',\n\t// 'com.microsoft.sqlserver.jdbc.SQLServerDriver'\n\tDBJDBCDriverClassnameKey = attribute.Key(\"db.jdbc.driver_classname\")\n\n\t// DBMongoDBCollectionKey is the attribute Key conforming to the\n\t// \"db.mongodb.collection\" semantic conventions. It represents the MongoDB\n\t// collection being accessed within the database stated in `db.name`.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'customers', 'products'\n\tDBMongoDBCollectionKey = attribute.Key(\"db.mongodb.collection\")\n\n\t// DBMSSQLInstanceNameKey is the attribute Key conforming to the\n\t// \"db.mssql.instance_name\" semantic conventions. It represents the\n\t// Microsoft SQL Server [instance\n\t// name](https://docs.microsoft.com/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15)\n\t// connecting to. This name is used to determine the port of a named\n\t// instance.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'MSSQLSERVER'\n\t// Note: If setting a `db.mssql.instance_name`, `server.port` is no longer\n\t// required (but still recommended if non-standard).\n\tDBMSSQLInstanceNameKey = attribute.Key(\"db.mssql.instance_name\")\n\n\t// DBNameKey is the attribute Key conforming to the \"db.name\" semantic\n\t// conventions. It represents the this attribute is used to report the name\n\t// of the database being accessed. For commands that switch the database,\n\t// this should be set to the target database (even if the command fails).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'customers', 'main'\n\t// Note: In some SQL databases, the database name to be used is called\n\t// \"schema name\". In case there are multiple layers that could be\n\t// considered for database name (e.g. Oracle instance name and schema\n\t// name), the database name to be used is the more specific layer (e.g.\n\t// Oracle schema name).\n\tDBNameKey = attribute.Key(\"db.name\")\n\n\t// DBOperationKey is the attribute Key conforming to the \"db.operation\"\n\t// semantic conventions. It represents the name of the operation being\n\t// executed, e.g. the [MongoDB command\n\t// name](https://docs.mongodb.com/manual/reference/command/#database-operations)\n\t// such as `findAndModify`, or the SQL keyword.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'findAndModify', 'HMSET', 'SELECT'\n\t// Note: When setting this to an SQL keyword, it is not recommended to\n\t// attempt any client-side parsing of `db.statement` just to get this\n\t// property, but it should be set if the operation name is provided by the\n\t// library being instrumented. If the SQL statement has an ambiguous\n\t// operation, or performs more than one operation, this value may be\n\t// omitted.\n\tDBOperationKey = attribute.Key(\"db.operation\")\n\n\t// DBRedisDBIndexKey is the attribute Key conforming to the\n\t// \"db.redis.database_index\" semantic conventions. It represents the index\n\t// of the database being accessed as used in the [`SELECT`\n\t// command](https://redis.io/commands/select), provided as an integer. To\n\t// be used instead of the generic `db.name` attribute.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 0, 1, 15\n\tDBRedisDBIndexKey = attribute.Key(\"db.redis.database_index\")\n\n\t// DBSQLTableKey is the attribute Key conforming to the \"db.sql.table\"\n\t// semantic conventions. It represents the name of the primary table that\n\t// the operation is acting upon, including the database name (if\n\t// applicable).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'public.users', 'customers'\n\t// Note: It is not recommended to attempt any client-side parsing of\n\t// `db.statement` just to get this property, but it should be set if it is\n\t// provided by the library being instrumented. If the operation is acting\n\t// upon an anonymous table, or more than one table, this value MUST NOT be\n\t// set.\n\tDBSQLTableKey = attribute.Key(\"db.sql.table\")\n\n\t// DBStatementKey is the attribute Key conforming to the \"db.statement\"\n\t// semantic conventions. It represents the database statement being\n\t// executed.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'SELECT * FROM wuser_table', 'SET mykey \"WuValue\"'\n\tDBStatementKey = attribute.Key(\"db.statement\")\n\n\t// DBSystemKey is the attribute Key conforming to the \"db.system\" semantic\n\t// conventions. It represents an identifier for the database management\n\t// system (DBMS) product being used. See below for a list of well-known\n\t// identifiers.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tDBSystemKey = attribute.Key(\"db.system\")\n\n\t// DBUserKey is the attribute Key conforming to the \"db.user\" semantic\n\t// conventions. It represents the username for accessing the database.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'readonly_user', 'reporting_user'\n\tDBUserKey = attribute.Key(\"db.user\")\n)\n\nvar (\n\t// all\n\tDBCassandraConsistencyLevelAll = DBCassandraConsistencyLevelKey.String(\"all\")\n\t// each_quorum\n\tDBCassandraConsistencyLevelEachQuorum = DBCassandraConsistencyLevelKey.String(\"each_quorum\")\n\t// quorum\n\tDBCassandraConsistencyLevelQuorum = DBCassandraConsistencyLevelKey.String(\"quorum\")\n\t// local_quorum\n\tDBCassandraConsistencyLevelLocalQuorum = DBCassandraConsistencyLevelKey.String(\"local_quorum\")\n\t// one\n\tDBCassandraConsistencyLevelOne = DBCassandraConsistencyLevelKey.String(\"one\")\n\t// two\n\tDBCassandraConsistencyLevelTwo = DBCassandraConsistencyLevelKey.String(\"two\")\n\t// three\n\tDBCassandraConsistencyLevelThree = DBCassandraConsistencyLevelKey.String(\"three\")\n\t// local_one\n\tDBCassandraConsistencyLevelLocalOne = DBCassandraConsistencyLevelKey.String(\"local_one\")\n\t// any\n\tDBCassandraConsistencyLevelAny = DBCassandraConsistencyLevelKey.String(\"any\")\n\t// serial\n\tDBCassandraConsistencyLevelSerial = DBCassandraConsistencyLevelKey.String(\"serial\")\n\t// local_serial\n\tDBCassandraConsistencyLevelLocalSerial = DBCassandraConsistencyLevelKey.String(\"local_serial\")\n)\n\nvar (\n\t// Gateway (HTTP) connections mode\n\tDBCosmosDBConnectionModeGateway = DBCosmosDBConnectionModeKey.String(\"gateway\")\n\t// Direct connection\n\tDBCosmosDBConnectionModeDirect = DBCosmosDBConnectionModeKey.String(\"direct\")\n)\n\nvar (\n\t// invalid\n\tDBCosmosDBOperationTypeInvalid = DBCosmosDBOperationTypeKey.String(\"Invalid\")\n\t// create\n\tDBCosmosDBOperationTypeCreate = DBCosmosDBOperationTypeKey.String(\"Create\")\n\t// patch\n\tDBCosmosDBOperationTypePatch = DBCosmosDBOperationTypeKey.String(\"Patch\")\n\t// read\n\tDBCosmosDBOperationTypeRead = DBCosmosDBOperationTypeKey.String(\"Read\")\n\t// read_feed\n\tDBCosmosDBOperationTypeReadFeed = DBCosmosDBOperationTypeKey.String(\"ReadFeed\")\n\t// delete\n\tDBCosmosDBOperationTypeDelete = DBCosmosDBOperationTypeKey.String(\"Delete\")\n\t// replace\n\tDBCosmosDBOperationTypeReplace = DBCosmosDBOperationTypeKey.String(\"Replace\")\n\t// execute\n\tDBCosmosDBOperationTypeExecute = DBCosmosDBOperationTypeKey.String(\"Execute\")\n\t// query\n\tDBCosmosDBOperationTypeQuery = DBCosmosDBOperationTypeKey.String(\"Query\")\n\t// head\n\tDBCosmosDBOperationTypeHead = DBCosmosDBOperationTypeKey.String(\"Head\")\n\t// head_feed\n\tDBCosmosDBOperationTypeHeadFeed = DBCosmosDBOperationTypeKey.String(\"HeadFeed\")\n\t// upsert\n\tDBCosmosDBOperationTypeUpsert = DBCosmosDBOperationTypeKey.String(\"Upsert\")\n\t// batch\n\tDBCosmosDBOperationTypeBatch = DBCosmosDBOperationTypeKey.String(\"Batch\")\n\t// query_plan\n\tDBCosmosDBOperationTypeQueryPlan = DBCosmosDBOperationTypeKey.String(\"QueryPlan\")\n\t// execute_javascript\n\tDBCosmosDBOperationTypeExecuteJavascript = DBCosmosDBOperationTypeKey.String(\"ExecuteJavaScript\")\n)\n\nvar (\n\t// Some other SQL database. Fallback only. See notes\n\tDBSystemOtherSQL = DBSystemKey.String(\"other_sql\")\n\t// Microsoft SQL Server\n\tDBSystemMSSQL = DBSystemKey.String(\"mssql\")\n\t// Microsoft SQL Server Compact\n\tDBSystemMssqlcompact = DBSystemKey.String(\"mssqlcompact\")\n\t// MySQL\n\tDBSystemMySQL = DBSystemKey.String(\"mysql\")\n\t// Oracle Database\n\tDBSystemOracle = DBSystemKey.String(\"oracle\")\n\t// IBM DB2\n\tDBSystemDB2 = DBSystemKey.String(\"db2\")\n\t// PostgreSQL\n\tDBSystemPostgreSQL = DBSystemKey.String(\"postgresql\")\n\t// Amazon Redshift\n\tDBSystemRedshift = DBSystemKey.String(\"redshift\")\n\t// Apache Hive\n\tDBSystemHive = DBSystemKey.String(\"hive\")\n\t// Cloudscape\n\tDBSystemCloudscape = DBSystemKey.String(\"cloudscape\")\n\t// HyperSQL DataBase\n\tDBSystemHSQLDB = DBSystemKey.String(\"hsqldb\")\n\t// Progress Database\n\tDBSystemProgress = DBSystemKey.String(\"progress\")\n\t// SAP MaxDB\n\tDBSystemMaxDB = DBSystemKey.String(\"maxdb\")\n\t// SAP HANA\n\tDBSystemHanaDB = DBSystemKey.String(\"hanadb\")\n\t// Ingres\n\tDBSystemIngres = DBSystemKey.String(\"ingres\")\n\t// FirstSQL\n\tDBSystemFirstSQL = DBSystemKey.String(\"firstsql\")\n\t// EnterpriseDB\n\tDBSystemEDB = DBSystemKey.String(\"edb\")\n\t// InterSystems Caché\n\tDBSystemCache = DBSystemKey.String(\"cache\")\n\t// Adabas (Adaptable Database System)\n\tDBSystemAdabas = DBSystemKey.String(\"adabas\")\n\t// Firebird\n\tDBSystemFirebird = DBSystemKey.String(\"firebird\")\n\t// Apache Derby\n\tDBSystemDerby = DBSystemKey.String(\"derby\")\n\t// FileMaker\n\tDBSystemFilemaker = DBSystemKey.String(\"filemaker\")\n\t// Informix\n\tDBSystemInformix = DBSystemKey.String(\"informix\")\n\t// InstantDB\n\tDBSystemInstantDB = DBSystemKey.String(\"instantdb\")\n\t// InterBase\n\tDBSystemInterbase = DBSystemKey.String(\"interbase\")\n\t// MariaDB\n\tDBSystemMariaDB = DBSystemKey.String(\"mariadb\")\n\t// Netezza\n\tDBSystemNetezza = DBSystemKey.String(\"netezza\")\n\t// Pervasive PSQL\n\tDBSystemPervasive = DBSystemKey.String(\"pervasive\")\n\t// PointBase\n\tDBSystemPointbase = DBSystemKey.String(\"pointbase\")\n\t// SQLite\n\tDBSystemSqlite = DBSystemKey.String(\"sqlite\")\n\t// Sybase\n\tDBSystemSybase = DBSystemKey.String(\"sybase\")\n\t// Teradata\n\tDBSystemTeradata = DBSystemKey.String(\"teradata\")\n\t// Vertica\n\tDBSystemVertica = DBSystemKey.String(\"vertica\")\n\t// H2\n\tDBSystemH2 = DBSystemKey.String(\"h2\")\n\t// ColdFusion IMQ\n\tDBSystemColdfusion = DBSystemKey.String(\"coldfusion\")\n\t// Apache Cassandra\n\tDBSystemCassandra = DBSystemKey.String(\"cassandra\")\n\t// Apache HBase\n\tDBSystemHBase = DBSystemKey.String(\"hbase\")\n\t// MongoDB\n\tDBSystemMongoDB = DBSystemKey.String(\"mongodb\")\n\t// Redis\n\tDBSystemRedis = DBSystemKey.String(\"redis\")\n\t// Couchbase\n\tDBSystemCouchbase = DBSystemKey.String(\"couchbase\")\n\t// CouchDB\n\tDBSystemCouchDB = DBSystemKey.String(\"couchdb\")\n\t// Microsoft Azure Cosmos DB\n\tDBSystemCosmosDB = DBSystemKey.String(\"cosmosdb\")\n\t// Amazon DynamoDB\n\tDBSystemDynamoDB = DBSystemKey.String(\"dynamodb\")\n\t// Neo4j\n\tDBSystemNeo4j = DBSystemKey.String(\"neo4j\")\n\t// Apache Geode\n\tDBSystemGeode = DBSystemKey.String(\"geode\")\n\t// Elasticsearch\n\tDBSystemElasticsearch = DBSystemKey.String(\"elasticsearch\")\n\t// Memcached\n\tDBSystemMemcached = DBSystemKey.String(\"memcached\")\n\t// CockroachDB\n\tDBSystemCockroachdb = DBSystemKey.String(\"cockroachdb\")\n\t// OpenSearch\n\tDBSystemOpensearch = DBSystemKey.String(\"opensearch\")\n\t// ClickHouse\n\tDBSystemClickhouse = DBSystemKey.String(\"clickhouse\")\n\t// Cloud Spanner\n\tDBSystemSpanner = DBSystemKey.String(\"spanner\")\n\t// Trino\n\tDBSystemTrino = DBSystemKey.String(\"trino\")\n)\n\n// DBCassandraCoordinatorDC returns an attribute KeyValue conforming to the\n// \"db.cassandra.coordinator.dc\" semantic conventions. It represents the data\n// center of the coordinating node for a query.\nfunc DBCassandraCoordinatorDC(val string) attribute.KeyValue {\n\treturn DBCassandraCoordinatorDCKey.String(val)\n}\n\n// DBCassandraCoordinatorID returns an attribute KeyValue conforming to the\n// \"db.cassandra.coordinator.id\" semantic conventions. It represents the ID of\n// the coordinating node for a query.\nfunc DBCassandraCoordinatorID(val string) attribute.KeyValue {\n\treturn DBCassandraCoordinatorIDKey.String(val)\n}\n\n// DBCassandraIdempotence returns an attribute KeyValue conforming to the\n// \"db.cassandra.idempotence\" semantic conventions. It represents the whether\n// or not the query is idempotent.\nfunc DBCassandraIdempotence(val bool) attribute.KeyValue {\n\treturn DBCassandraIdempotenceKey.Bool(val)\n}\n\n// DBCassandraPageSize returns an attribute KeyValue conforming to the\n// \"db.cassandra.page_size\" semantic conventions. It represents the fetch size\n// used for paging, i.e. how many rows will be returned at once.\nfunc DBCassandraPageSize(val int) attribute.KeyValue {\n\treturn DBCassandraPageSizeKey.Int(val)\n}\n\n// DBCassandraSpeculativeExecutionCount returns an attribute KeyValue\n// conforming to the \"db.cassandra.speculative_execution_count\" semantic\n// conventions. It represents the number of times a query was speculatively\n// executed. Not set or `0` if the query was not executed speculatively.\nfunc DBCassandraSpeculativeExecutionCount(val int) attribute.KeyValue {\n\treturn DBCassandraSpeculativeExecutionCountKey.Int(val)\n}\n\n// DBCassandraTable returns an attribute KeyValue conforming to the\n// \"db.cassandra.table\" semantic conventions. It represents the name of the\n// primary Cassandra table that the operation is acting upon, including the\n// keyspace name (if applicable).\nfunc DBCassandraTable(val string) attribute.KeyValue {\n\treturn DBCassandraTableKey.String(val)\n}\n\n// DBConnectionString returns an attribute KeyValue conforming to the\n// \"db.connection_string\" semantic conventions. It represents the connection\n// string used to connect to the database. It is recommended to remove embedded\n// credentials.\nfunc DBConnectionString(val string) attribute.KeyValue {\n\treturn DBConnectionStringKey.String(val)\n}\n\n// DBCosmosDBClientID returns an attribute KeyValue conforming to the\n// \"db.cosmosdb.client_id\" semantic conventions. It represents the unique\n// Cosmos client instance id.\nfunc DBCosmosDBClientID(val string) attribute.KeyValue {\n\treturn DBCosmosDBClientIDKey.String(val)\n}\n\n// DBCosmosDBContainer returns an attribute KeyValue conforming to the\n// \"db.cosmosdb.container\" semantic conventions. It represents the cosmos DB\n// container name.\nfunc DBCosmosDBContainer(val string) attribute.KeyValue {\n\treturn DBCosmosDBContainerKey.String(val)\n}\n\n// DBCosmosDBRequestCharge returns an attribute KeyValue conforming to the\n// \"db.cosmosdb.request_charge\" semantic conventions. It represents the rU\n// consumed for that operation\nfunc DBCosmosDBRequestCharge(val float64) attribute.KeyValue {\n\treturn DBCosmosDBRequestChargeKey.Float64(val)\n}\n\n// DBCosmosDBRequestContentLength returns an attribute KeyValue conforming\n// to the \"db.cosmosdb.request_content_length\" semantic conventions. It\n// represents the request payload size in bytes\nfunc DBCosmosDBRequestContentLength(val int) attribute.KeyValue {\n\treturn DBCosmosDBRequestContentLengthKey.Int(val)\n}\n\n// DBCosmosDBStatusCode returns an attribute KeyValue conforming to the\n// \"db.cosmosdb.status_code\" semantic conventions. It represents the cosmos DB\n// status code.\nfunc DBCosmosDBStatusCode(val int) attribute.KeyValue {\n\treturn DBCosmosDBStatusCodeKey.Int(val)\n}\n\n// DBCosmosDBSubStatusCode returns an attribute KeyValue conforming to the\n// \"db.cosmosdb.sub_status_code\" semantic conventions. It represents the cosmos\n// DB sub status code.\nfunc DBCosmosDBSubStatusCode(val int) attribute.KeyValue {\n\treturn DBCosmosDBSubStatusCodeKey.Int(val)\n}\n\n// DBElasticsearchClusterName returns an attribute KeyValue conforming to\n// the \"db.elasticsearch.cluster.name\" semantic conventions. It represents the\n// represents the identifier of an Elasticsearch cluster.\nfunc DBElasticsearchClusterName(val string) attribute.KeyValue {\n\treturn DBElasticsearchClusterNameKey.String(val)\n}\n\n// DBElasticsearchNodeName returns an attribute KeyValue conforming to the\n// \"db.elasticsearch.node.name\" semantic conventions. It represents the\n// represents the human-readable identifier of the node/instance to which a\n// request was routed.\nfunc DBElasticsearchNodeName(val string) attribute.KeyValue {\n\treturn DBElasticsearchNodeNameKey.String(val)\n}\n\n// DBInstanceID returns an attribute KeyValue conforming to the\n// \"db.instance.id\" semantic conventions. It represents an identifier (address,\n// unique name, or any other identifier) of the database instance that is\n// executing queries or mutations on the current connection. This is useful in\n// cases where the database is running in a clustered environment and the\n// instrumentation is able to record the node executing the query. The client\n// may obtain this value in databases like MySQL using queries like `select\n// @@hostname`.\nfunc DBInstanceID(val string) attribute.KeyValue {\n\treturn DBInstanceIDKey.String(val)\n}\n\n// DBJDBCDriverClassname returns an attribute KeyValue conforming to the\n// \"db.jdbc.driver_classname\" semantic conventions. It represents the\n// fully-qualified class name of the [Java Database Connectivity\n// (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) driver\n// used to connect.\nfunc DBJDBCDriverClassname(val string) attribute.KeyValue {\n\treturn DBJDBCDriverClassnameKey.String(val)\n}\n\n// DBMongoDBCollection returns an attribute KeyValue conforming to the\n// \"db.mongodb.collection\" semantic conventions. It represents the MongoDB\n// collection being accessed within the database stated in `db.name`.\nfunc DBMongoDBCollection(val string) attribute.KeyValue {\n\treturn DBMongoDBCollectionKey.String(val)\n}\n\n// DBMSSQLInstanceName returns an attribute KeyValue conforming to the\n// \"db.mssql.instance_name\" semantic conventions. It represents the Microsoft\n// SQL Server [instance\n// name](https://docs.microsoft.com/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15)\n// connecting to. This name is used to determine the port of a named instance.\nfunc DBMSSQLInstanceName(val string) attribute.KeyValue {\n\treturn DBMSSQLInstanceNameKey.String(val)\n}\n\n// DBName returns an attribute KeyValue conforming to the \"db.name\" semantic\n// conventions. It represents the this attribute is used to report the name of\n// the database being accessed. For commands that switch the database, this\n// should be set to the target database (even if the command fails).\nfunc DBName(val string) attribute.KeyValue {\n\treturn DBNameKey.String(val)\n}\n\n// DBOperation returns an attribute KeyValue conforming to the\n// \"db.operation\" semantic conventions. It represents the name of the operation\n// being executed, e.g. the [MongoDB command\n// name](https://docs.mongodb.com/manual/reference/command/#database-operations)\n// such as `findAndModify`, or the SQL keyword.\nfunc DBOperation(val string) attribute.KeyValue {\n\treturn DBOperationKey.String(val)\n}\n\n// DBRedisDBIndex returns an attribute KeyValue conforming to the\n// \"db.redis.database_index\" semantic conventions. It represents the index of\n// the database being accessed as used in the [`SELECT`\n// command](https://redis.io/commands/select), provided as an integer. To be\n// used instead of the generic `db.name` attribute.\nfunc DBRedisDBIndex(val int) attribute.KeyValue {\n\treturn DBRedisDBIndexKey.Int(val)\n}\n\n// DBSQLTable returns an attribute KeyValue conforming to the \"db.sql.table\"\n// semantic conventions. It represents the name of the primary table that the\n// operation is acting upon, including the database name (if applicable).\nfunc DBSQLTable(val string) attribute.KeyValue {\n\treturn DBSQLTableKey.String(val)\n}\n\n// DBStatement returns an attribute KeyValue conforming to the\n// \"db.statement\" semantic conventions. It represents the database statement\n// being executed.\nfunc DBStatement(val string) attribute.KeyValue {\n\treturn DBStatementKey.String(val)\n}\n\n// DBUser returns an attribute KeyValue conforming to the \"db.user\" semantic\n// conventions. It represents the username for accessing the database.\nfunc DBUser(val string) attribute.KeyValue {\n\treturn DBUserKey.String(val)\n}\n\n// Describes deprecated HTTP attributes.\nconst (\n\t// HTTPFlavorKey is the attribute Key conforming to the \"http.flavor\"\n\t// semantic conventions.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Deprecated: use `network.protocol.name` instead.\n\tHTTPFlavorKey = attribute.Key(\"http.flavor\")\n\n\t// HTTPMethodKey is the attribute Key conforming to the \"http.method\"\n\t// semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 'GET', 'POST', 'HEAD'\n\t// Deprecated: use `http.request.method` instead.\n\tHTTPMethodKey = attribute.Key(\"http.method\")\n\n\t// HTTPRequestContentLengthKey is the attribute Key conforming to the\n\t// \"http.request_content_length\" semantic conventions.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 3495\n\t// Deprecated: use `http.request.header.content-length` instead.\n\tHTTPRequestContentLengthKey = attribute.Key(\"http.request_content_length\")\n\n\t// HTTPResponseContentLengthKey is the attribute Key conforming to the\n\t// \"http.response_content_length\" semantic conventions.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 3495\n\t// Deprecated: use `http.response.header.content-length` instead.\n\tHTTPResponseContentLengthKey = attribute.Key(\"http.response_content_length\")\n\n\t// HTTPSchemeKey is the attribute Key conforming to the \"http.scheme\"\n\t// semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 'http', 'https'\n\t// Deprecated: use `url.scheme` instead.\n\tHTTPSchemeKey = attribute.Key(\"http.scheme\")\n\n\t// HTTPStatusCodeKey is the attribute Key conforming to the\n\t// \"http.status_code\" semantic conventions.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 200\n\t// Deprecated: use `http.response.status_code` instead.\n\tHTTPStatusCodeKey = attribute.Key(\"http.status_code\")\n\n\t// HTTPTargetKey is the attribute Key conforming to the \"http.target\"\n\t// semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: '/search?q=OpenTelemetry#SemConv'\n\t// Deprecated: use `url.path` and `url.query` instead.\n\tHTTPTargetKey = attribute.Key(\"http.target\")\n\n\t// HTTPURLKey is the attribute Key conforming to the \"http.url\" semantic\n\t// conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv'\n\t// Deprecated: use `url.full` instead.\n\tHTTPURLKey = attribute.Key(\"http.url\")\n\n\t// HTTPUserAgentKey is the attribute Key conforming to the\n\t// \"http.user_agent\" semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 'CERN-LineMode/2.15 libwww/2.17b3', 'Mozilla/5.0 (iPhone; CPU\n\t// iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko)\n\t// Version/14.1.2 Mobile/15E148 Safari/604.1'\n\t// Deprecated: use `user_agent.original` instead.\n\tHTTPUserAgentKey = attribute.Key(\"http.user_agent\")\n)\n\nvar (\n\t// HTTP/1.0\n\t//\n\t// Deprecated: use `network.protocol.name` instead.\n\tHTTPFlavorHTTP10 = HTTPFlavorKey.String(\"1.0\")\n\t// HTTP/1.1\n\t//\n\t// Deprecated: use `network.protocol.name` instead.\n\tHTTPFlavorHTTP11 = HTTPFlavorKey.String(\"1.1\")\n\t// HTTP/2\n\t//\n\t// Deprecated: use `network.protocol.name` instead.\n\tHTTPFlavorHTTP20 = HTTPFlavorKey.String(\"2.0\")\n\t// HTTP/3\n\t//\n\t// Deprecated: use `network.protocol.name` instead.\n\tHTTPFlavorHTTP30 = HTTPFlavorKey.String(\"3.0\")\n\t// SPDY protocol\n\t//\n\t// Deprecated: use `network.protocol.name` instead.\n\tHTTPFlavorSPDY = HTTPFlavorKey.String(\"SPDY\")\n\t// QUIC protocol\n\t//\n\t// Deprecated: use `network.protocol.name` instead.\n\tHTTPFlavorQUIC = HTTPFlavorKey.String(\"QUIC\")\n)\n\n// HTTPMethod returns an attribute KeyValue conforming to the \"http.method\"\n// semantic conventions.\n//\n// Deprecated: use `http.request.method` instead.\nfunc HTTPMethod(val string) attribute.KeyValue {\n\treturn HTTPMethodKey.String(val)\n}\n\n// HTTPRequestContentLength returns an attribute KeyValue conforming to the\n// \"http.request_content_length\" semantic conventions.\n//\n// Deprecated: use `http.request.header.content-length` instead.\nfunc HTTPRequestContentLength(val int) attribute.KeyValue {\n\treturn HTTPRequestContentLengthKey.Int(val)\n}\n\n// HTTPResponseContentLength returns an attribute KeyValue conforming to the\n// \"http.response_content_length\" semantic conventions.\n//\n// Deprecated: use `http.response.header.content-length` instead.\nfunc HTTPResponseContentLength(val int) attribute.KeyValue {\n\treturn HTTPResponseContentLengthKey.Int(val)\n}\n\n// HTTPScheme returns an attribute KeyValue conforming to the \"http.scheme\"\n// semantic conventions.\n//\n// Deprecated: use `url.scheme` instead.\nfunc HTTPScheme(val string) attribute.KeyValue {\n\treturn HTTPSchemeKey.String(val)\n}\n\n// HTTPStatusCode returns an attribute KeyValue conforming to the\n// \"http.status_code\" semantic conventions.\n//\n// Deprecated: use `http.response.status_code` instead.\nfunc HTTPStatusCode(val int) attribute.KeyValue {\n\treturn HTTPStatusCodeKey.Int(val)\n}\n\n// HTTPTarget returns an attribute KeyValue conforming to the \"http.target\"\n// semantic conventions.\n//\n// Deprecated: use `url.path` and `url.query` instead.\nfunc HTTPTarget(val string) attribute.KeyValue {\n\treturn HTTPTargetKey.String(val)\n}\n\n// HTTPURL returns an attribute KeyValue conforming to the \"http.url\"\n// semantic conventions.\n//\n// Deprecated: use `url.full` instead.\nfunc HTTPURL(val string) attribute.KeyValue {\n\treturn HTTPURLKey.String(val)\n}\n\n// HTTPUserAgent returns an attribute KeyValue conforming to the\n// \"http.user_agent\" semantic conventions.\n//\n// Deprecated: use `user_agent.original` instead.\nfunc HTTPUserAgent(val string) attribute.KeyValue {\n\treturn HTTPUserAgentKey.String(val)\n}\n\n// These attributes may be used for any network related operation.\nconst (\n\t// NetHostNameKey is the attribute Key conforming to the \"net.host.name\"\n\t// semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 'example.com'\n\t// Deprecated: use `server.address`.\n\tNetHostNameKey = attribute.Key(\"net.host.name\")\n\n\t// NetHostPortKey is the attribute Key conforming to the \"net.host.port\"\n\t// semantic conventions.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 8080\n\t// Deprecated: use `server.port`.\n\tNetHostPortKey = attribute.Key(\"net.host.port\")\n\n\t// NetPeerNameKey is the attribute Key conforming to the \"net.peer.name\"\n\t// semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 'example.com'\n\t// Deprecated: use `server.address` on client spans and `client.address` on\n\t// server spans.\n\tNetPeerNameKey = attribute.Key(\"net.peer.name\")\n\n\t// NetPeerPortKey is the attribute Key conforming to the \"net.peer.port\"\n\t// semantic conventions.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 8080\n\t// Deprecated: use `server.port` on client spans and `client.port` on\n\t// server spans.\n\tNetPeerPortKey = attribute.Key(\"net.peer.port\")\n\n\t// NetProtocolNameKey is the attribute Key conforming to the\n\t// \"net.protocol.name\" semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 'amqp', 'http', 'mqtt'\n\t// Deprecated: use `network.protocol.name`.\n\tNetProtocolNameKey = attribute.Key(\"net.protocol.name\")\n\n\t// NetProtocolVersionKey is the attribute Key conforming to the\n\t// \"net.protocol.version\" semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: '3.1.1'\n\t// Deprecated: use `network.protocol.version`.\n\tNetProtocolVersionKey = attribute.Key(\"net.protocol.version\")\n\n\t// NetSockFamilyKey is the attribute Key conforming to the\n\t// \"net.sock.family\" semantic conventions.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Deprecated: use `network.transport` and `network.type`.\n\tNetSockFamilyKey = attribute.Key(\"net.sock.family\")\n\n\t// NetSockHostAddrKey is the attribute Key conforming to the\n\t// \"net.sock.host.addr\" semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: '/var/my.sock'\n\t// Deprecated: use `network.local.address`.\n\tNetSockHostAddrKey = attribute.Key(\"net.sock.host.addr\")\n\n\t// NetSockHostPortKey is the attribute Key conforming to the\n\t// \"net.sock.host.port\" semantic conventions.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 8080\n\t// Deprecated: use `network.local.port`.\n\tNetSockHostPortKey = attribute.Key(\"net.sock.host.port\")\n\n\t// NetSockPeerAddrKey is the attribute Key conforming to the\n\t// \"net.sock.peer.addr\" semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: '192.168.0.1'\n\t// Deprecated: use `network.peer.address`.\n\tNetSockPeerAddrKey = attribute.Key(\"net.sock.peer.addr\")\n\n\t// NetSockPeerNameKey is the attribute Key conforming to the\n\t// \"net.sock.peer.name\" semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: '/var/my.sock'\n\t// Deprecated: no replacement at this time.\n\tNetSockPeerNameKey = attribute.Key(\"net.sock.peer.name\")\n\n\t// NetSockPeerPortKey is the attribute Key conforming to the\n\t// \"net.sock.peer.port\" semantic conventions.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 65531\n\t// Deprecated: use `network.peer.port`.\n\tNetSockPeerPortKey = attribute.Key(\"net.sock.peer.port\")\n\n\t// NetTransportKey is the attribute Key conforming to the \"net.transport\"\n\t// semantic conventions.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Deprecated: use `network.transport`.\n\tNetTransportKey = attribute.Key(\"net.transport\")\n)\n\nvar (\n\t// IPv4 address\n\t//\n\t// Deprecated: use `network.transport` and `network.type`.\n\tNetSockFamilyInet = NetSockFamilyKey.String(\"inet\")\n\t// IPv6 address\n\t//\n\t// Deprecated: use `network.transport` and `network.type`.\n\tNetSockFamilyInet6 = NetSockFamilyKey.String(\"inet6\")\n\t// Unix domain socket path\n\t//\n\t// Deprecated: use `network.transport` and `network.type`.\n\tNetSockFamilyUnix = NetSockFamilyKey.String(\"unix\")\n)\n\nvar (\n\t// ip_tcp\n\t//\n\t// Deprecated: use `network.transport`.\n\tNetTransportTCP = NetTransportKey.String(\"ip_tcp\")\n\t// ip_udp\n\t//\n\t// Deprecated: use `network.transport`.\n\tNetTransportUDP = NetTransportKey.String(\"ip_udp\")\n\t// Named or anonymous pipe\n\t//\n\t// Deprecated: use `network.transport`.\n\tNetTransportPipe = NetTransportKey.String(\"pipe\")\n\t// In-process communication\n\t//\n\t// Deprecated: use `network.transport`.\n\tNetTransportInProc = NetTransportKey.String(\"inproc\")\n\t// Something else (non IP-based)\n\t//\n\t// Deprecated: use `network.transport`.\n\tNetTransportOther = NetTransportKey.String(\"other\")\n)\n\n// NetHostName returns an attribute KeyValue conforming to the\n// \"net.host.name\" semantic conventions.\n//\n// Deprecated: use `server.address`.\nfunc NetHostName(val string) attribute.KeyValue {\n\treturn NetHostNameKey.String(val)\n}\n\n// NetHostPort returns an attribute KeyValue conforming to the\n// \"net.host.port\" semantic conventions.\n//\n// Deprecated: use `server.port`.\nfunc NetHostPort(val int) attribute.KeyValue {\n\treturn NetHostPortKey.Int(val)\n}\n\n// NetPeerName returns an attribute KeyValue conforming to the\n// \"net.peer.name\" semantic conventions.\n//\n// Deprecated: use `server.address` on client spans and `client.address` on\n// server spans.\nfunc NetPeerName(val string) attribute.KeyValue {\n\treturn NetPeerNameKey.String(val)\n}\n\n// NetPeerPort returns an attribute KeyValue conforming to the\n// \"net.peer.port\" semantic conventions.\n//\n// Deprecated: use `server.port` on client spans and `client.port` on server\n// spans.\nfunc NetPeerPort(val int) attribute.KeyValue {\n\treturn NetPeerPortKey.Int(val)\n}\n\n// NetProtocolName returns an attribute KeyValue conforming to the\n// \"net.protocol.name\" semantic conventions.\n//\n// Deprecated: use `network.protocol.name`.\nfunc NetProtocolName(val string) attribute.KeyValue {\n\treturn NetProtocolNameKey.String(val)\n}\n\n// NetProtocolVersion returns an attribute KeyValue conforming to the\n// \"net.protocol.version\" semantic conventions.\n//\n// Deprecated: use `network.protocol.version`.\nfunc NetProtocolVersion(val string) attribute.KeyValue {\n\treturn NetProtocolVersionKey.String(val)\n}\n\n// NetSockHostAddr returns an attribute KeyValue conforming to the\n// \"net.sock.host.addr\" semantic conventions.\n//\n// Deprecated: use `network.local.address`.\nfunc NetSockHostAddr(val string) attribute.KeyValue {\n\treturn NetSockHostAddrKey.String(val)\n}\n\n// NetSockHostPort returns an attribute KeyValue conforming to the\n// \"net.sock.host.port\" semantic conventions.\n//\n// Deprecated: use `network.local.port`.\nfunc NetSockHostPort(val int) attribute.KeyValue {\n\treturn NetSockHostPortKey.Int(val)\n}\n\n// NetSockPeerAddr returns an attribute KeyValue conforming to the\n// \"net.sock.peer.addr\" semantic conventions.\n//\n// Deprecated: use `network.peer.address`.\nfunc NetSockPeerAddr(val string) attribute.KeyValue {\n\treturn NetSockPeerAddrKey.String(val)\n}\n\n// NetSockPeerName returns an attribute KeyValue conforming to the\n// \"net.sock.peer.name\" semantic conventions.\n//\n// Deprecated: no replacement at this time.\nfunc NetSockPeerName(val string) attribute.KeyValue {\n\treturn NetSockPeerNameKey.String(val)\n}\n\n// NetSockPeerPort returns an attribute KeyValue conforming to the\n// \"net.sock.peer.port\" semantic conventions.\n//\n// Deprecated: use `network.peer.port`.\nfunc NetSockPeerPort(val int) attribute.KeyValue {\n\treturn NetSockPeerPortKey.Int(val)\n}\n\n// These attributes may be used to describe the receiver of a network\n// exchange/packet. These should be used when there is no client/server\n// relationship between the two sides, or when that relationship is unknown.\n// This covers low-level network interactions (e.g. packet tracing) where you\n// don't know if there was a connection or which side initiated it. This also\n// covers unidirectional UDP flows and peer-to-peer communication where the\n// \"user-facing\" surface of the protocol / API doesn't expose a clear notion of\n// client and server.\nconst (\n\t// DestinationAddressKey is the attribute Key conforming to the\n\t// \"destination.address\" semantic conventions. It represents the\n\t// destination address - domain name if available without reverse DNS\n\t// lookup; otherwise, IP address or Unix domain socket name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'destination.example.com', '10.1.2.80', '/tmp/my.sock'\n\t// Note: When observed from the source side, and when communicating through\n\t// an intermediary, `destination.address` SHOULD represent the destination\n\t// address behind any intermediaries, for example proxies, if it's\n\t// available.\n\tDestinationAddressKey = attribute.Key(\"destination.address\")\n\n\t// DestinationPortKey is the attribute Key conforming to the\n\t// \"destination.port\" semantic conventions. It represents the destination\n\t// port number\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 3389, 2888\n\tDestinationPortKey = attribute.Key(\"destination.port\")\n)\n\n// DestinationAddress returns an attribute KeyValue conforming to the\n// \"destination.address\" semantic conventions. It represents the destination\n// address - domain name if available without reverse DNS lookup; otherwise, IP\n// address or Unix domain socket name.\nfunc DestinationAddress(val string) attribute.KeyValue {\n\treturn DestinationAddressKey.String(val)\n}\n\n// DestinationPort returns an attribute KeyValue conforming to the\n// \"destination.port\" semantic conventions. It represents the destination port\n// number\nfunc DestinationPort(val int) attribute.KeyValue {\n\treturn DestinationPortKey.Int(val)\n}\n\n// These attributes may be used for any disk related operation.\nconst (\n\t// DiskIoDirectionKey is the attribute Key conforming to the\n\t// \"disk.io.direction\" semantic conventions. It represents the disk IO\n\t// operation direction.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'read'\n\tDiskIoDirectionKey = attribute.Key(\"disk.io.direction\")\n)\n\nvar (\n\t// read\n\tDiskIoDirectionRead = DiskIoDirectionKey.String(\"read\")\n\t// write\n\tDiskIoDirectionWrite = DiskIoDirectionKey.String(\"write\")\n)\n\n// The shared attributes used to report an error.\nconst (\n\t// ErrorTypeKey is the attribute Key conforming to the \"error.type\"\n\t// semantic conventions. It represents the describes a class of error the\n\t// operation ended with.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'timeout', 'java.net.UnknownHostException',\n\t// 'server_certificate_invalid', '500'\n\t// Note: The `error.type` SHOULD be predictable and SHOULD have low\n\t// cardinality.\n\t// Instrumentations SHOULD document the list of errors they report.\n\t//\n\t// The cardinality of `error.type` within one instrumentation library\n\t// SHOULD be low.\n\t// Telemetry consumers that aggregate data from multiple instrumentation\n\t// libraries and applications\n\t// should be prepared for `error.type` to have high cardinality at query\n\t// time when no\n\t// additional filters are applied.\n\t//\n\t// If the operation has completed successfully, instrumentations SHOULD NOT\n\t// set `error.type`.\n\t//\n\t// If a specific domain defines its own set of error identifiers (such as\n\t// HTTP or gRPC status codes),\n\t// it's RECOMMENDED to:\n\t//\n\t// * Use a domain-specific attribute\n\t// * Set `error.type` to capture all errors, regardless of whether they are\n\t// defined within the domain-specific set or not.\n\tErrorTypeKey = attribute.Key(\"error.type\")\n)\n\nvar (\n\t// A fallback error value to be used when the instrumentation doesn't define a custom value\n\tErrorTypeOther = ErrorTypeKey.String(\"_OTHER\")\n)\n\n// The shared attributes used to report a single exception associated with a\n// span or log.\nconst (\n\t// ExceptionEscapedKey is the attribute Key conforming to the\n\t// \"exception.escaped\" semantic conventions. It represents the sHOULD be\n\t// set to true if the exception event is recorded at a point where it is\n\t// known that the exception is escaping the scope of the span.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Note: An exception is considered to have escaped (or left) the scope of\n\t// a span,\n\t// if that span is ended while the exception is still logically \"in\n\t// flight\".\n\t// This may be actually \"in flight\" in some languages (e.g. if the\n\t// exception\n\t// is passed to a Context manager's `__exit__` method in Python) but will\n\t// usually be caught at the point of recording the exception in most\n\t// languages.\n\t//\n\t// It is usually not possible to determine at the point where an exception\n\t// is thrown\n\t// whether it will escape the scope of a span.\n\t// However, it is trivial to know that an exception\n\t// will escape, if one checks for an active exception just before ending\n\t// the span,\n\t// as done in the [example for recording span\n\t// exceptions](#recording-an-exception).\n\t//\n\t// It follows that an exception may still escape the scope of the span\n\t// even if the `exception.escaped` attribute was not set or set to false,\n\t// since the event might have been recorded at a time where it was not\n\t// clear whether the exception will escape.\n\tExceptionEscapedKey = attribute.Key(\"exception.escaped\")\n\n\t// ExceptionMessageKey is the attribute Key conforming to the\n\t// \"exception.message\" semantic conventions. It represents the exception\n\t// message.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Division by zero', \"Can't convert 'int' object to str\n\t// implicitly\"\n\tExceptionMessageKey = attribute.Key(\"exception.message\")\n\n\t// ExceptionStacktraceKey is the attribute Key conforming to the\n\t// \"exception.stacktrace\" semantic conventions. It represents a stacktrace\n\t// as a string in the natural representation for the language runtime. The\n\t// representation is to be determined and documented by each language SIG.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Exception in thread \"main\" java.lang.RuntimeException: Test\n\t// exception\\\\n at '\n\t//  'com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\\\n at '\n\t//  'com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\\\n at '\n\t//  'com.example.GenerateTrace.main(GenerateTrace.java:5)'\n\tExceptionStacktraceKey = attribute.Key(\"exception.stacktrace\")\n\n\t// ExceptionTypeKey is the attribute Key conforming to the \"exception.type\"\n\t// semantic conventions. It represents the type of the exception (its\n\t// fully-qualified class name, if applicable). The dynamic type of the\n\t// exception should be preferred over the static type in languages that\n\t// support it.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'java.net.ConnectException', 'OSError'\n\tExceptionTypeKey = attribute.Key(\"exception.type\")\n)\n\n// ExceptionEscaped returns an attribute KeyValue conforming to the\n// \"exception.escaped\" semantic conventions. It represents the sHOULD be set to\n// true if the exception event is recorded at a point where it is known that\n// the exception is escaping the scope of the span.\nfunc ExceptionEscaped(val bool) attribute.KeyValue {\n\treturn ExceptionEscapedKey.Bool(val)\n}\n\n// ExceptionMessage returns an attribute KeyValue conforming to the\n// \"exception.message\" semantic conventions. It represents the exception\n// message.\nfunc ExceptionMessage(val string) attribute.KeyValue {\n\treturn ExceptionMessageKey.String(val)\n}\n\n// ExceptionStacktrace returns an attribute KeyValue conforming to the\n// \"exception.stacktrace\" semantic conventions. It represents a stacktrace as a\n// string in the natural representation for the language runtime. The\n// representation is to be determined and documented by each language SIG.\nfunc ExceptionStacktrace(val string) attribute.KeyValue {\n\treturn ExceptionStacktraceKey.String(val)\n}\n\n// ExceptionType returns an attribute KeyValue conforming to the\n// \"exception.type\" semantic conventions. It represents the type of the\n// exception (its fully-qualified class name, if applicable). The dynamic type\n// of the exception should be preferred over the static type in languages that\n// support it.\nfunc ExceptionType(val string) attribute.KeyValue {\n\treturn ExceptionTypeKey.String(val)\n}\n\n// Semantic convention attributes in the HTTP namespace.\nconst (\n\t// HTTPRequestBodySizeKey is the attribute Key conforming to the\n\t// \"http.request.body.size\" semantic conventions. It represents the size of\n\t// the request payload body in bytes. This is the number of bytes\n\t// transferred excluding headers and is often, but not always, present as\n\t// the\n\t// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)\n\t// header. For requests using transport encoding, this should be the\n\t// compressed size.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 3495\n\tHTTPRequestBodySizeKey = attribute.Key(\"http.request.body.size\")\n\n\t// HTTPRequestMethodKey is the attribute Key conforming to the\n\t// \"http.request.method\" semantic conventions. It represents the hTTP\n\t// request method.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'GET', 'POST', 'HEAD'\n\t// Note: HTTP request method value SHOULD be \"known\" to the\n\t// instrumentation.\n\t// By default, this convention defines \"known\" methods as the ones listed\n\t// in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods)\n\t// and the PATCH method defined in\n\t// [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html).\n\t//\n\t// If the HTTP request method is not known to instrumentation, it MUST set\n\t// the `http.request.method` attribute to `_OTHER`.\n\t//\n\t// If the HTTP instrumentation could end up converting valid HTTP request\n\t// methods to `_OTHER`, then it MUST provide a way to override\n\t// the list of known HTTP methods. If this override is done via environment\n\t// variable, then the environment variable MUST be named\n\t// OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated\n\t// list of case-sensitive known HTTP methods\n\t// (this list MUST be a full override of the default known method, it is\n\t// not a list of known methods in addition to the defaults).\n\t//\n\t// HTTP method names are case-sensitive and `http.request.method` attribute\n\t// value MUST match a known HTTP method name exactly.\n\t// Instrumentations for specific web frameworks that consider HTTP methods\n\t// to be case insensitive, SHOULD populate a canonical equivalent.\n\t// Tracing instrumentations that do so, MUST also set\n\t// `http.request.method_original` to the original value.\n\tHTTPRequestMethodKey = attribute.Key(\"http.request.method\")\n\n\t// HTTPRequestMethodOriginalKey is the attribute Key conforming to the\n\t// \"http.request.method_original\" semantic conventions. It represents the\n\t// original HTTP method sent by the client in the request line.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'GeT', 'ACL', 'foo'\n\tHTTPRequestMethodOriginalKey = attribute.Key(\"http.request.method_original\")\n\n\t// HTTPRequestResendCountKey is the attribute Key conforming to the\n\t// \"http.request.resend_count\" semantic conventions. It represents the\n\t// ordinal number of request resending attempt (for any reason, including\n\t// redirects).\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 3\n\t// Note: The resend count SHOULD be updated each time an HTTP request gets\n\t// resent by the client, regardless of what was the cause of the resending\n\t// (e.g. redirection, authorization failure, 503 Server Unavailable,\n\t// network issues, or any other).\n\tHTTPRequestResendCountKey = attribute.Key(\"http.request.resend_count\")\n\n\t// HTTPResponseBodySizeKey is the attribute Key conforming to the\n\t// \"http.response.body.size\" semantic conventions. It represents the size\n\t// of the response payload body in bytes. This is the number of bytes\n\t// transferred excluding headers and is often, but not always, present as\n\t// the\n\t// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)\n\t// header. For requests using transport encoding, this should be the\n\t// compressed size.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 3495\n\tHTTPResponseBodySizeKey = attribute.Key(\"http.response.body.size\")\n\n\t// HTTPResponseStatusCodeKey is the attribute Key conforming to the\n\t// \"http.response.status_code\" semantic conventions. It represents the\n\t// [HTTP response status\n\t// code](https://tools.ietf.org/html/rfc7231#section-6).\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 200\n\tHTTPResponseStatusCodeKey = attribute.Key(\"http.response.status_code\")\n\n\t// HTTPRouteKey is the attribute Key conforming to the \"http.route\"\n\t// semantic conventions. It represents the matched route, that is, the path\n\t// template in the format used by the respective server framework.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '/users/:userID?', '{controller}/{action}/{id?}'\n\t// Note: MUST NOT be populated when this is not supported by the HTTP\n\t// server framework as the route attribute should have low-cardinality and\n\t// the URI path can NOT substitute it.\n\t// SHOULD include the [application\n\t// root](/docs/http/http-spans.md#http-server-definitions) if there is one.\n\tHTTPRouteKey = attribute.Key(\"http.route\")\n)\n\nvar (\n\t// CONNECT method\n\tHTTPRequestMethodConnect = HTTPRequestMethodKey.String(\"CONNECT\")\n\t// DELETE method\n\tHTTPRequestMethodDelete = HTTPRequestMethodKey.String(\"DELETE\")\n\t// GET method\n\tHTTPRequestMethodGet = HTTPRequestMethodKey.String(\"GET\")\n\t// HEAD method\n\tHTTPRequestMethodHead = HTTPRequestMethodKey.String(\"HEAD\")\n\t// OPTIONS method\n\tHTTPRequestMethodOptions = HTTPRequestMethodKey.String(\"OPTIONS\")\n\t// PATCH method\n\tHTTPRequestMethodPatch = HTTPRequestMethodKey.String(\"PATCH\")\n\t// POST method\n\tHTTPRequestMethodPost = HTTPRequestMethodKey.String(\"POST\")\n\t// PUT method\n\tHTTPRequestMethodPut = HTTPRequestMethodKey.String(\"PUT\")\n\t// TRACE method\n\tHTTPRequestMethodTrace = HTTPRequestMethodKey.String(\"TRACE\")\n\t// Any HTTP method that the instrumentation has no prior knowledge of\n\tHTTPRequestMethodOther = HTTPRequestMethodKey.String(\"_OTHER\")\n)\n\n// HTTPRequestBodySize returns an attribute KeyValue conforming to the\n// \"http.request.body.size\" semantic conventions. It represents the size of the\n// request payload body in bytes. This is the number of bytes transferred\n// excluding headers and is often, but not always, present as the\n// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)\n// header. For requests using transport encoding, this should be the compressed\n// size.\nfunc HTTPRequestBodySize(val int) attribute.KeyValue {\n\treturn HTTPRequestBodySizeKey.Int(val)\n}\n\n// HTTPRequestMethodOriginal returns an attribute KeyValue conforming to the\n// \"http.request.method_original\" semantic conventions. It represents the\n// original HTTP method sent by the client in the request line.\nfunc HTTPRequestMethodOriginal(val string) attribute.KeyValue {\n\treturn HTTPRequestMethodOriginalKey.String(val)\n}\n\n// HTTPRequestResendCount returns an attribute KeyValue conforming to the\n// \"http.request.resend_count\" semantic conventions. It represents the ordinal\n// number of request resending attempt (for any reason, including redirects).\nfunc HTTPRequestResendCount(val int) attribute.KeyValue {\n\treturn HTTPRequestResendCountKey.Int(val)\n}\n\n// HTTPResponseBodySize returns an attribute KeyValue conforming to the\n// \"http.response.body.size\" semantic conventions. It represents the size of\n// the response payload body in bytes. This is the number of bytes transferred\n// excluding headers and is often, but not always, present as the\n// [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length)\n// header. For requests using transport encoding, this should be the compressed\n// size.\nfunc HTTPResponseBodySize(val int) attribute.KeyValue {\n\treturn HTTPResponseBodySizeKey.Int(val)\n}\n\n// HTTPResponseStatusCode returns an attribute KeyValue conforming to the\n// \"http.response.status_code\" semantic conventions. It represents the [HTTP\n// response status code](https://tools.ietf.org/html/rfc7231#section-6).\nfunc HTTPResponseStatusCode(val int) attribute.KeyValue {\n\treturn HTTPResponseStatusCodeKey.Int(val)\n}\n\n// HTTPRoute returns an attribute KeyValue conforming to the \"http.route\"\n// semantic conventions. It represents the matched route, that is, the path\n// template in the format used by the respective server framework.\nfunc HTTPRoute(val string) attribute.KeyValue {\n\treturn HTTPRouteKey.String(val)\n}\n\n// Attributes describing telemetry around messaging systems and messaging\n// activities.\nconst (\n\t// MessagingBatchMessageCountKey is the attribute Key conforming to the\n\t// \"messaging.batch.message_count\" semantic conventions. It represents the\n\t// number of messages sent, received, or processed in the scope of the\n\t// batching operation.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 0, 1, 2\n\t// Note: Instrumentations SHOULD NOT set `messaging.batch.message_count` on\n\t// spans that operate with a single message. When a messaging client\n\t// library supports both batch and single-message API for the same\n\t// operation, instrumentations SHOULD use `messaging.batch.message_count`\n\t// for batching APIs and SHOULD NOT use it for single-message APIs.\n\tMessagingBatchMessageCountKey = attribute.Key(\"messaging.batch.message_count\")\n\n\t// MessagingClientIDKey is the attribute Key conforming to the\n\t// \"messaging.client_id\" semantic conventions. It represents a unique\n\t// identifier for the client that consumes or produces a message.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'client-5', 'myhost@8742@s8083jm'\n\tMessagingClientIDKey = attribute.Key(\"messaging.client_id\")\n\n\t// MessagingDestinationAnonymousKey is the attribute Key conforming to the\n\t// \"messaging.destination.anonymous\" semantic conventions. It represents a\n\t// boolean that is true if the message destination is anonymous (could be\n\t// unnamed or have auto-generated name).\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tMessagingDestinationAnonymousKey = attribute.Key(\"messaging.destination.anonymous\")\n\n\t// MessagingDestinationNameKey is the attribute Key conforming to the\n\t// \"messaging.destination.name\" semantic conventions. It represents the\n\t// message destination name\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'MyQueue', 'MyTopic'\n\t// Note: Destination name SHOULD uniquely identify a specific queue, topic\n\t// or other entity within the broker. If\n\t// the broker doesn't have such notion, the destination name SHOULD\n\t// uniquely identify the broker.\n\tMessagingDestinationNameKey = attribute.Key(\"messaging.destination.name\")\n\n\t// MessagingDestinationTemplateKey is the attribute Key conforming to the\n\t// \"messaging.destination.template\" semantic conventions. It represents the\n\t// low cardinality representation of the messaging destination name\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '/customers/{customerID}'\n\t// Note: Destination names could be constructed from templates. An example\n\t// would be a destination name involving a user name or product id.\n\t// Although the destination name in this case is of high cardinality, the\n\t// underlying template is of low cardinality and can be effectively used\n\t// for grouping and aggregation.\n\tMessagingDestinationTemplateKey = attribute.Key(\"messaging.destination.template\")\n\n\t// MessagingDestinationTemporaryKey is the attribute Key conforming to the\n\t// \"messaging.destination.temporary\" semantic conventions. It represents a\n\t// boolean that is true if the message destination is temporary and might\n\t// not exist anymore after messages are processed.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tMessagingDestinationTemporaryKey = attribute.Key(\"messaging.destination.temporary\")\n\n\t// MessagingDestinationPublishAnonymousKey is the attribute Key conforming\n\t// to the \"messaging.destination_publish.anonymous\" semantic conventions.\n\t// It represents a boolean that is true if the publish message destination\n\t// is anonymous (could be unnamed or have auto-generated name).\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tMessagingDestinationPublishAnonymousKey = attribute.Key(\"messaging.destination_publish.anonymous\")\n\n\t// MessagingDestinationPublishNameKey is the attribute Key conforming to\n\t// the \"messaging.destination_publish.name\" semantic conventions. It\n\t// represents the name of the original destination the message was\n\t// published to\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'MyQueue', 'MyTopic'\n\t// Note: The name SHOULD uniquely identify a specific queue, topic, or\n\t// other entity within the broker. If\n\t// the broker doesn't have such notion, the original destination name\n\t// SHOULD uniquely identify the broker.\n\tMessagingDestinationPublishNameKey = attribute.Key(\"messaging.destination_publish.name\")\n\n\t// MessagingGCPPubsubMessageOrderingKeyKey is the attribute Key conforming\n\t// to the \"messaging.gcp_pubsub.message.ordering_key\" semantic conventions.\n\t// It represents the ordering key for a given message. If the attribute is\n\t// not present, the message does not have an ordering key.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'ordering_key'\n\tMessagingGCPPubsubMessageOrderingKeyKey = attribute.Key(\"messaging.gcp_pubsub.message.ordering_key\")\n\n\t// MessagingKafkaConsumerGroupKey is the attribute Key conforming to the\n\t// \"messaging.kafka.consumer.group\" semantic conventions. It represents the\n\t// name of the Kafka Consumer Group that is handling the message. Only\n\t// applies to consumers, not producers.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'my-group'\n\tMessagingKafkaConsumerGroupKey = attribute.Key(\"messaging.kafka.consumer.group\")\n\n\t// MessagingKafkaDestinationPartitionKey is the attribute Key conforming to\n\t// the \"messaging.kafka.destination.partition\" semantic conventions. It\n\t// represents the partition the message is sent to.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 2\n\tMessagingKafkaDestinationPartitionKey = attribute.Key(\"messaging.kafka.destination.partition\")\n\n\t// MessagingKafkaMessageKeyKey is the attribute Key conforming to the\n\t// \"messaging.kafka.message.key\" semantic conventions. It represents the\n\t// message keys in Kafka are used for grouping alike messages to ensure\n\t// they're processed on the same partition. They differ from\n\t// `messaging.message.id` in that they're not unique. If the key is `null`,\n\t// the attribute MUST NOT be set.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'myKey'\n\t// Note: If the key type is not string, it's string representation has to\n\t// be supplied for the attribute. If the key has no unambiguous, canonical\n\t// string form, don't include its value.\n\tMessagingKafkaMessageKeyKey = attribute.Key(\"messaging.kafka.message.key\")\n\n\t// MessagingKafkaMessageOffsetKey is the attribute Key conforming to the\n\t// \"messaging.kafka.message.offset\" semantic conventions. It represents the\n\t// offset of a record in the corresponding Kafka partition.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 42\n\tMessagingKafkaMessageOffsetKey = attribute.Key(\"messaging.kafka.message.offset\")\n\n\t// MessagingKafkaMessageTombstoneKey is the attribute Key conforming to the\n\t// \"messaging.kafka.message.tombstone\" semantic conventions. It represents\n\t// a boolean that is true if the message is a tombstone.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tMessagingKafkaMessageTombstoneKey = attribute.Key(\"messaging.kafka.message.tombstone\")\n\n\t// MessagingMessageBodySizeKey is the attribute Key conforming to the\n\t// \"messaging.message.body.size\" semantic conventions. It represents the\n\t// size of the message body in bytes.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 1439\n\t// Note: This can refer to both the compressed or uncompressed body size.\n\t// If both sizes are known, the uncompressed\n\t// body size should be used.\n\tMessagingMessageBodySizeKey = attribute.Key(\"messaging.message.body.size\")\n\n\t// MessagingMessageConversationIDKey is the attribute Key conforming to the\n\t// \"messaging.message.conversation_id\" semantic conventions. It represents\n\t// the conversation ID identifying the conversation to which the message\n\t// belongs, represented as a string. Sometimes called \"Correlation ID\".\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'MyConversationID'\n\tMessagingMessageConversationIDKey = attribute.Key(\"messaging.message.conversation_id\")\n\n\t// MessagingMessageEnvelopeSizeKey is the attribute Key conforming to the\n\t// \"messaging.message.envelope.size\" semantic conventions. It represents\n\t// the size of the message body and metadata in bytes.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 2738\n\t// Note: This can refer to both the compressed or uncompressed size. If\n\t// both sizes are known, the uncompressed\n\t// size should be used.\n\tMessagingMessageEnvelopeSizeKey = attribute.Key(\"messaging.message.envelope.size\")\n\n\t// MessagingMessageIDKey is the attribute Key conforming to the\n\t// \"messaging.message.id\" semantic conventions. It represents a value used\n\t// by the messaging system as an identifier for the message, represented as\n\t// a string.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '452a7c7c7c7048c2f887f61572b18fc2'\n\tMessagingMessageIDKey = attribute.Key(\"messaging.message.id\")\n\n\t// MessagingOperationKey is the attribute Key conforming to the\n\t// \"messaging.operation\" semantic conventions. It represents a string\n\t// identifying the kind of messaging operation.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Note: If a custom value is used, it MUST be of low cardinality.\n\tMessagingOperationKey = attribute.Key(\"messaging.operation\")\n\n\t// MessagingRabbitmqDestinationRoutingKeyKey is the attribute Key\n\t// conforming to the \"messaging.rabbitmq.destination.routing_key\" semantic\n\t// conventions. It represents the rabbitMQ message routing key.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'myKey'\n\tMessagingRabbitmqDestinationRoutingKeyKey = attribute.Key(\"messaging.rabbitmq.destination.routing_key\")\n\n\t// MessagingRocketmqClientGroupKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.client_group\" semantic conventions. It represents\n\t// the name of the RocketMQ producer/consumer group that is handling the\n\t// message. The client type is identified by the SpanKind.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'myConsumerGroup'\n\tMessagingRocketmqClientGroupKey = attribute.Key(\"messaging.rocketmq.client_group\")\n\n\t// MessagingRocketmqConsumptionModelKey is the attribute Key conforming to\n\t// the \"messaging.rocketmq.consumption_model\" semantic conventions. It\n\t// represents the model of message consumption. This only applies to\n\t// consumer spans.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tMessagingRocketmqConsumptionModelKey = attribute.Key(\"messaging.rocketmq.consumption_model\")\n\n\t// MessagingRocketmqMessageDelayTimeLevelKey is the attribute Key\n\t// conforming to the \"messaging.rocketmq.message.delay_time_level\" semantic\n\t// conventions. It represents the delay time level for delay message, which\n\t// determines the message delay time.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 3\n\tMessagingRocketmqMessageDelayTimeLevelKey = attribute.Key(\"messaging.rocketmq.message.delay_time_level\")\n\n\t// MessagingRocketmqMessageDeliveryTimestampKey is the attribute Key\n\t// conforming to the \"messaging.rocketmq.message.delivery_timestamp\"\n\t// semantic conventions. It represents the timestamp in milliseconds that\n\t// the delay message is expected to be delivered to consumer.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 1665987217045\n\tMessagingRocketmqMessageDeliveryTimestampKey = attribute.Key(\"messaging.rocketmq.message.delivery_timestamp\")\n\n\t// MessagingRocketmqMessageGroupKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.message.group\" semantic conventions. It represents\n\t// the it is essential for FIFO message. Messages that belong to the same\n\t// message group are always processed one by one within the same consumer\n\t// group.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'myMessageGroup'\n\tMessagingRocketmqMessageGroupKey = attribute.Key(\"messaging.rocketmq.message.group\")\n\n\t// MessagingRocketmqMessageKeysKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.message.keys\" semantic conventions. It represents\n\t// the key(s) of message, another way to mark message besides message id.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'keyA', 'keyB'\n\tMessagingRocketmqMessageKeysKey = attribute.Key(\"messaging.rocketmq.message.keys\")\n\n\t// MessagingRocketmqMessageTagKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.message.tag\" semantic conventions. It represents the\n\t// secondary classifier of message besides topic.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'tagA'\n\tMessagingRocketmqMessageTagKey = attribute.Key(\"messaging.rocketmq.message.tag\")\n\n\t// MessagingRocketmqMessageTypeKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.message.type\" semantic conventions. It represents\n\t// the type of message.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tMessagingRocketmqMessageTypeKey = attribute.Key(\"messaging.rocketmq.message.type\")\n\n\t// MessagingRocketmqNamespaceKey is the attribute Key conforming to the\n\t// \"messaging.rocketmq.namespace\" semantic conventions. It represents the\n\t// namespace of RocketMQ resources, resources in different namespaces are\n\t// individual.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'myNamespace'\n\tMessagingRocketmqNamespaceKey = attribute.Key(\"messaging.rocketmq.namespace\")\n\n\t// MessagingSystemKey is the attribute Key conforming to the\n\t// \"messaging.system\" semantic conventions. It represents an identifier for\n\t// the messaging system being used. See below for a list of well-known\n\t// identifiers.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tMessagingSystemKey = attribute.Key(\"messaging.system\")\n)\n\nvar (\n\t// One or more messages are provided for publishing to an intermediary. If a single message is published, the context of the \"Publish\" span can be used as the creation context and no \"Create\" span needs to be created\n\tMessagingOperationPublish = MessagingOperationKey.String(\"publish\")\n\t// A message is created. \"Create\" spans always refer to a single message and are used to provide a unique creation context for messages in batch publishing scenarios\n\tMessagingOperationCreate = MessagingOperationKey.String(\"create\")\n\t// One or more messages are requested by a consumer. This operation refers to pull-based scenarios, where consumers explicitly call methods of messaging SDKs to receive messages\n\tMessagingOperationReceive = MessagingOperationKey.String(\"receive\")\n\t// One or more messages are passed to a consumer. This operation refers to push-based scenarios, where consumer register callbacks which get called by messaging SDKs\n\tMessagingOperationDeliver = MessagingOperationKey.String(\"deliver\")\n)\n\nvar (\n\t// Clustering consumption model\n\tMessagingRocketmqConsumptionModelClustering = MessagingRocketmqConsumptionModelKey.String(\"clustering\")\n\t// Broadcasting consumption model\n\tMessagingRocketmqConsumptionModelBroadcasting = MessagingRocketmqConsumptionModelKey.String(\"broadcasting\")\n)\n\nvar (\n\t// Normal message\n\tMessagingRocketmqMessageTypeNormal = MessagingRocketmqMessageTypeKey.String(\"normal\")\n\t// FIFO message\n\tMessagingRocketmqMessageTypeFifo = MessagingRocketmqMessageTypeKey.String(\"fifo\")\n\t// Delay message\n\tMessagingRocketmqMessageTypeDelay = MessagingRocketmqMessageTypeKey.String(\"delay\")\n\t// Transaction message\n\tMessagingRocketmqMessageTypeTransaction = MessagingRocketmqMessageTypeKey.String(\"transaction\")\n)\n\nvar (\n\t// Apache ActiveMQ\n\tMessagingSystemActivemq = MessagingSystemKey.String(\"activemq\")\n\t// Amazon Simple Queue Service (SQS)\n\tMessagingSystemAWSSqs = MessagingSystemKey.String(\"aws_sqs\")\n\t// Azure Event Grid\n\tMessagingSystemAzureEventgrid = MessagingSystemKey.String(\"azure_eventgrid\")\n\t// Azure Event Hubs\n\tMessagingSystemAzureEventhubs = MessagingSystemKey.String(\"azure_eventhubs\")\n\t// Azure Service Bus\n\tMessagingSystemAzureServicebus = MessagingSystemKey.String(\"azure_servicebus\")\n\t// Google Cloud Pub/Sub\n\tMessagingSystemGCPPubsub = MessagingSystemKey.String(\"gcp_pubsub\")\n\t// Java Message Service\n\tMessagingSystemJms = MessagingSystemKey.String(\"jms\")\n\t// Apache Kafka\n\tMessagingSystemKafka = MessagingSystemKey.String(\"kafka\")\n\t// RabbitMQ\n\tMessagingSystemRabbitmq = MessagingSystemKey.String(\"rabbitmq\")\n\t// Apache RocketMQ\n\tMessagingSystemRocketmq = MessagingSystemKey.String(\"rocketmq\")\n)\n\n// MessagingBatchMessageCount returns an attribute KeyValue conforming to\n// the \"messaging.batch.message_count\" semantic conventions. It represents the\n// number of messages sent, received, or processed in the scope of the batching\n// operation.\nfunc MessagingBatchMessageCount(val int) attribute.KeyValue {\n\treturn MessagingBatchMessageCountKey.Int(val)\n}\n\n// MessagingClientID returns an attribute KeyValue conforming to the\n// \"messaging.client_id\" semantic conventions. It represents a unique\n// identifier for the client that consumes or produces a message.\nfunc MessagingClientID(val string) attribute.KeyValue {\n\treturn MessagingClientIDKey.String(val)\n}\n\n// MessagingDestinationAnonymous returns an attribute KeyValue conforming to\n// the \"messaging.destination.anonymous\" semantic conventions. It represents a\n// boolean that is true if the message destination is anonymous (could be\n// unnamed or have auto-generated name).\nfunc MessagingDestinationAnonymous(val bool) attribute.KeyValue {\n\treturn MessagingDestinationAnonymousKey.Bool(val)\n}\n\n// MessagingDestinationName returns an attribute KeyValue conforming to the\n// \"messaging.destination.name\" semantic conventions. It represents the message\n// destination name\nfunc MessagingDestinationName(val string) attribute.KeyValue {\n\treturn MessagingDestinationNameKey.String(val)\n}\n\n// MessagingDestinationTemplate returns an attribute KeyValue conforming to\n// the \"messaging.destination.template\" semantic conventions. It represents the\n// low cardinality representation of the messaging destination name\nfunc MessagingDestinationTemplate(val string) attribute.KeyValue {\n\treturn MessagingDestinationTemplateKey.String(val)\n}\n\n// MessagingDestinationTemporary returns an attribute KeyValue conforming to\n// the \"messaging.destination.temporary\" semantic conventions. It represents a\n// boolean that is true if the message destination is temporary and might not\n// exist anymore after messages are processed.\nfunc MessagingDestinationTemporary(val bool) attribute.KeyValue {\n\treturn MessagingDestinationTemporaryKey.Bool(val)\n}\n\n// MessagingDestinationPublishAnonymous returns an attribute KeyValue\n// conforming to the \"messaging.destination_publish.anonymous\" semantic\n// conventions. It represents a boolean that is true if the publish message\n// destination is anonymous (could be unnamed or have auto-generated name).\nfunc MessagingDestinationPublishAnonymous(val bool) attribute.KeyValue {\n\treturn MessagingDestinationPublishAnonymousKey.Bool(val)\n}\n\n// MessagingDestinationPublishName returns an attribute KeyValue conforming\n// to the \"messaging.destination_publish.name\" semantic conventions. It\n// represents the name of the original destination the message was published to\nfunc MessagingDestinationPublishName(val string) attribute.KeyValue {\n\treturn MessagingDestinationPublishNameKey.String(val)\n}\n\n// MessagingGCPPubsubMessageOrderingKey returns an attribute KeyValue\n// conforming to the \"messaging.gcp_pubsub.message.ordering_key\" semantic\n// conventions. It represents the ordering key for a given message. If the\n// attribute is not present, the message does not have an ordering key.\nfunc MessagingGCPPubsubMessageOrderingKey(val string) attribute.KeyValue {\n\treturn MessagingGCPPubsubMessageOrderingKeyKey.String(val)\n}\n\n// MessagingKafkaConsumerGroup returns an attribute KeyValue conforming to\n// the \"messaging.kafka.consumer.group\" semantic conventions. It represents the\n// name of the Kafka Consumer Group that is handling the message. Only applies\n// to consumers, not producers.\nfunc MessagingKafkaConsumerGroup(val string) attribute.KeyValue {\n\treturn MessagingKafkaConsumerGroupKey.String(val)\n}\n\n// MessagingKafkaDestinationPartition returns an attribute KeyValue\n// conforming to the \"messaging.kafka.destination.partition\" semantic\n// conventions. It represents the partition the message is sent to.\nfunc MessagingKafkaDestinationPartition(val int) attribute.KeyValue {\n\treturn MessagingKafkaDestinationPartitionKey.Int(val)\n}\n\n// MessagingKafkaMessageKey returns an attribute KeyValue conforming to the\n// \"messaging.kafka.message.key\" semantic conventions. It represents the\n// message keys in Kafka are used for grouping alike messages to ensure they're\n// processed on the same partition. They differ from `messaging.message.id` in\n// that they're not unique. If the key is `null`, the attribute MUST NOT be\n// set.\nfunc MessagingKafkaMessageKey(val string) attribute.KeyValue {\n\treturn MessagingKafkaMessageKeyKey.String(val)\n}\n\n// MessagingKafkaMessageOffset returns an attribute KeyValue conforming to\n// the \"messaging.kafka.message.offset\" semantic conventions. It represents the\n// offset of a record in the corresponding Kafka partition.\nfunc MessagingKafkaMessageOffset(val int) attribute.KeyValue {\n\treturn MessagingKafkaMessageOffsetKey.Int(val)\n}\n\n// MessagingKafkaMessageTombstone returns an attribute KeyValue conforming\n// to the \"messaging.kafka.message.tombstone\" semantic conventions. It\n// represents a boolean that is true if the message is a tombstone.\nfunc MessagingKafkaMessageTombstone(val bool) attribute.KeyValue {\n\treturn MessagingKafkaMessageTombstoneKey.Bool(val)\n}\n\n// MessagingMessageBodySize returns an attribute KeyValue conforming to the\n// \"messaging.message.body.size\" semantic conventions. It represents the size\n// of the message body in bytes.\nfunc MessagingMessageBodySize(val int) attribute.KeyValue {\n\treturn MessagingMessageBodySizeKey.Int(val)\n}\n\n// MessagingMessageConversationID returns an attribute KeyValue conforming\n// to the \"messaging.message.conversation_id\" semantic conventions. It\n// represents the conversation ID identifying the conversation to which the\n// message belongs, represented as a string. Sometimes called \"Correlation ID\".\nfunc MessagingMessageConversationID(val string) attribute.KeyValue {\n\treturn MessagingMessageConversationIDKey.String(val)\n}\n\n// MessagingMessageEnvelopeSize returns an attribute KeyValue conforming to\n// the \"messaging.message.envelope.size\" semantic conventions. It represents\n// the size of the message body and metadata in bytes.\nfunc MessagingMessageEnvelopeSize(val int) attribute.KeyValue {\n\treturn MessagingMessageEnvelopeSizeKey.Int(val)\n}\n\n// MessagingMessageID returns an attribute KeyValue conforming to the\n// \"messaging.message.id\" semantic conventions. It represents a value used by\n// the messaging system as an identifier for the message, represented as a\n// string.\nfunc MessagingMessageID(val string) attribute.KeyValue {\n\treturn MessagingMessageIDKey.String(val)\n}\n\n// MessagingRabbitmqDestinationRoutingKey returns an attribute KeyValue\n// conforming to the \"messaging.rabbitmq.destination.routing_key\" semantic\n// conventions. It represents the rabbitMQ message routing key.\nfunc MessagingRabbitmqDestinationRoutingKey(val string) attribute.KeyValue {\n\treturn MessagingRabbitmqDestinationRoutingKeyKey.String(val)\n}\n\n// MessagingRocketmqClientGroup returns an attribute KeyValue conforming to\n// the \"messaging.rocketmq.client_group\" semantic conventions. It represents\n// the name of the RocketMQ producer/consumer group that is handling the\n// message. The client type is identified by the SpanKind.\nfunc MessagingRocketmqClientGroup(val string) attribute.KeyValue {\n\treturn MessagingRocketmqClientGroupKey.String(val)\n}\n\n// MessagingRocketmqMessageDelayTimeLevel returns an attribute KeyValue\n// conforming to the \"messaging.rocketmq.message.delay_time_level\" semantic\n// conventions. It represents the delay time level for delay message, which\n// determines the message delay time.\nfunc MessagingRocketmqMessageDelayTimeLevel(val int) attribute.KeyValue {\n\treturn MessagingRocketmqMessageDelayTimeLevelKey.Int(val)\n}\n\n// MessagingRocketmqMessageDeliveryTimestamp returns an attribute KeyValue\n// conforming to the \"messaging.rocketmq.message.delivery_timestamp\" semantic\n// conventions. It represents the timestamp in milliseconds that the delay\n// message is expected to be delivered to consumer.\nfunc MessagingRocketmqMessageDeliveryTimestamp(val int) attribute.KeyValue {\n\treturn MessagingRocketmqMessageDeliveryTimestampKey.Int(val)\n}\n\n// MessagingRocketmqMessageGroup returns an attribute KeyValue conforming to\n// the \"messaging.rocketmq.message.group\" semantic conventions. It represents\n// the it is essential for FIFO message. Messages that belong to the same\n// message group are always processed one by one within the same consumer\n// group.\nfunc MessagingRocketmqMessageGroup(val string) attribute.KeyValue {\n\treturn MessagingRocketmqMessageGroupKey.String(val)\n}\n\n// MessagingRocketmqMessageKeys returns an attribute KeyValue conforming to\n// the \"messaging.rocketmq.message.keys\" semantic conventions. It represents\n// the key(s) of message, another way to mark message besides message id.\nfunc MessagingRocketmqMessageKeys(val ...string) attribute.KeyValue {\n\treturn MessagingRocketmqMessageKeysKey.StringSlice(val)\n}\n\n// MessagingRocketmqMessageTag returns an attribute KeyValue conforming to\n// the \"messaging.rocketmq.message.tag\" semantic conventions. It represents the\n// secondary classifier of message besides topic.\nfunc MessagingRocketmqMessageTag(val string) attribute.KeyValue {\n\treturn MessagingRocketmqMessageTagKey.String(val)\n}\n\n// MessagingRocketmqNamespace returns an attribute KeyValue conforming to\n// the \"messaging.rocketmq.namespace\" semantic conventions. It represents the\n// namespace of RocketMQ resources, resources in different namespaces are\n// individual.\nfunc MessagingRocketmqNamespace(val string) attribute.KeyValue {\n\treturn MessagingRocketmqNamespaceKey.String(val)\n}\n\n// These attributes may be used for any network related operation.\nconst (\n\t// NetworkCarrierIccKey is the attribute Key conforming to the\n\t// \"network.carrier.icc\" semantic conventions. It represents the ISO 3166-1\n\t// alpha-2 2-character country code associated with the mobile carrier\n\t// network.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'DE'\n\tNetworkCarrierIccKey = attribute.Key(\"network.carrier.icc\")\n\n\t// NetworkCarrierMccKey is the attribute Key conforming to the\n\t// \"network.carrier.mcc\" semantic conventions. It represents the mobile\n\t// carrier country code.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '310'\n\tNetworkCarrierMccKey = attribute.Key(\"network.carrier.mcc\")\n\n\t// NetworkCarrierMncKey is the attribute Key conforming to the\n\t// \"network.carrier.mnc\" semantic conventions. It represents the mobile\n\t// carrier network code.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '001'\n\tNetworkCarrierMncKey = attribute.Key(\"network.carrier.mnc\")\n\n\t// NetworkCarrierNameKey is the attribute Key conforming to the\n\t// \"network.carrier.name\" semantic conventions. It represents the name of\n\t// the mobile carrier.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'sprint'\n\tNetworkCarrierNameKey = attribute.Key(\"network.carrier.name\")\n\n\t// NetworkConnectionSubtypeKey is the attribute Key conforming to the\n\t// \"network.connection.subtype\" semantic conventions. It represents the\n\t// this describes more details regarding the connection.type. It may be the\n\t// type of cell technology connection, but it could be used for describing\n\t// details about a wifi connection.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'LTE'\n\tNetworkConnectionSubtypeKey = attribute.Key(\"network.connection.subtype\")\n\n\t// NetworkConnectionTypeKey is the attribute Key conforming to the\n\t// \"network.connection.type\" semantic conventions. It represents the\n\t// internet connection type.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'wifi'\n\tNetworkConnectionTypeKey = attribute.Key(\"network.connection.type\")\n\n\t// NetworkIoDirectionKey is the attribute Key conforming to the\n\t// \"network.io.direction\" semantic conventions. It represents the network\n\t// IO operation direction.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'transmit'\n\tNetworkIoDirectionKey = attribute.Key(\"network.io.direction\")\n\n\t// NetworkLocalAddressKey is the attribute Key conforming to the\n\t// \"network.local.address\" semantic conventions. It represents the local\n\t// address of the network connection - IP address or Unix domain socket\n\t// name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '10.1.2.80', '/tmp/my.sock'\n\tNetworkLocalAddressKey = attribute.Key(\"network.local.address\")\n\n\t// NetworkLocalPortKey is the attribute Key conforming to the\n\t// \"network.local.port\" semantic conventions. It represents the local port\n\t// number of the network connection.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 65123\n\tNetworkLocalPortKey = attribute.Key(\"network.local.port\")\n\n\t// NetworkPeerAddressKey is the attribute Key conforming to the\n\t// \"network.peer.address\" semantic conventions. It represents the peer\n\t// address of the network connection - IP address or Unix domain socket\n\t// name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '10.1.2.80', '/tmp/my.sock'\n\tNetworkPeerAddressKey = attribute.Key(\"network.peer.address\")\n\n\t// NetworkPeerPortKey is the attribute Key conforming to the\n\t// \"network.peer.port\" semantic conventions. It represents the peer port\n\t// number of the network connection.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 65123\n\tNetworkPeerPortKey = attribute.Key(\"network.peer.port\")\n\n\t// NetworkProtocolNameKey is the attribute Key conforming to the\n\t// \"network.protocol.name\" semantic conventions. It represents the [OSI\n\t// application layer](https://osi-model.com/application-layer/) or non-OSI\n\t// equivalent.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'amqp', 'http', 'mqtt'\n\t// Note: The value SHOULD be normalized to lowercase.\n\tNetworkProtocolNameKey = attribute.Key(\"network.protocol.name\")\n\n\t// NetworkProtocolVersionKey is the attribute Key conforming to the\n\t// \"network.protocol.version\" semantic conventions. It represents the\n\t// version of the protocol specified in `network.protocol.name`.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '3.1.1'\n\t// Note: `network.protocol.version` refers to the version of the protocol\n\t// used and might be different from the protocol client's version. If the\n\t// HTTP client has a version of `0.27.2`, but sends HTTP version `1.1`,\n\t// this attribute should be set to `1.1`.\n\tNetworkProtocolVersionKey = attribute.Key(\"network.protocol.version\")\n\n\t// NetworkTransportKey is the attribute Key conforming to the\n\t// \"network.transport\" semantic conventions. It represents the [OSI\n\t// transport layer](https://osi-model.com/transport-layer/) or\n\t// [inter-process communication\n\t// method](https://wikipedia.org/wiki/Inter-process_communication).\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'tcp', 'udp'\n\t// Note: The value SHOULD be normalized to lowercase.\n\t//\n\t// Consider always setting the transport when setting a port number, since\n\t// a port number is ambiguous without knowing the transport. For example\n\t// different processes could be listening on TCP port 12345 and UDP port\n\t// 12345.\n\tNetworkTransportKey = attribute.Key(\"network.transport\")\n\n\t// NetworkTypeKey is the attribute Key conforming to the \"network.type\"\n\t// semantic conventions. It represents the [OSI network\n\t// layer](https://osi-model.com/network-layer/) or non-OSI equivalent.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'ipv4', 'ipv6'\n\t// Note: The value SHOULD be normalized to lowercase.\n\tNetworkTypeKey = attribute.Key(\"network.type\")\n)\n\nvar (\n\t// GPRS\n\tNetworkConnectionSubtypeGprs = NetworkConnectionSubtypeKey.String(\"gprs\")\n\t// EDGE\n\tNetworkConnectionSubtypeEdge = NetworkConnectionSubtypeKey.String(\"edge\")\n\t// UMTS\n\tNetworkConnectionSubtypeUmts = NetworkConnectionSubtypeKey.String(\"umts\")\n\t// CDMA\n\tNetworkConnectionSubtypeCdma = NetworkConnectionSubtypeKey.String(\"cdma\")\n\t// EVDO Rel. 0\n\tNetworkConnectionSubtypeEvdo0 = NetworkConnectionSubtypeKey.String(\"evdo_0\")\n\t// EVDO Rev. A\n\tNetworkConnectionSubtypeEvdoA = NetworkConnectionSubtypeKey.String(\"evdo_a\")\n\t// CDMA2000 1XRTT\n\tNetworkConnectionSubtypeCdma20001xrtt = NetworkConnectionSubtypeKey.String(\"cdma2000_1xrtt\")\n\t// HSDPA\n\tNetworkConnectionSubtypeHsdpa = NetworkConnectionSubtypeKey.String(\"hsdpa\")\n\t// HSUPA\n\tNetworkConnectionSubtypeHsupa = NetworkConnectionSubtypeKey.String(\"hsupa\")\n\t// HSPA\n\tNetworkConnectionSubtypeHspa = NetworkConnectionSubtypeKey.String(\"hspa\")\n\t// IDEN\n\tNetworkConnectionSubtypeIden = NetworkConnectionSubtypeKey.String(\"iden\")\n\t// EVDO Rev. B\n\tNetworkConnectionSubtypeEvdoB = NetworkConnectionSubtypeKey.String(\"evdo_b\")\n\t// LTE\n\tNetworkConnectionSubtypeLte = NetworkConnectionSubtypeKey.String(\"lte\")\n\t// EHRPD\n\tNetworkConnectionSubtypeEhrpd = NetworkConnectionSubtypeKey.String(\"ehrpd\")\n\t// HSPAP\n\tNetworkConnectionSubtypeHspap = NetworkConnectionSubtypeKey.String(\"hspap\")\n\t// GSM\n\tNetworkConnectionSubtypeGsm = NetworkConnectionSubtypeKey.String(\"gsm\")\n\t// TD-SCDMA\n\tNetworkConnectionSubtypeTdScdma = NetworkConnectionSubtypeKey.String(\"td_scdma\")\n\t// IWLAN\n\tNetworkConnectionSubtypeIwlan = NetworkConnectionSubtypeKey.String(\"iwlan\")\n\t// 5G NR (New Radio)\n\tNetworkConnectionSubtypeNr = NetworkConnectionSubtypeKey.String(\"nr\")\n\t// 5G NRNSA (New Radio Non-Standalone)\n\tNetworkConnectionSubtypeNrnsa = NetworkConnectionSubtypeKey.String(\"nrnsa\")\n\t// LTE CA\n\tNetworkConnectionSubtypeLteCa = NetworkConnectionSubtypeKey.String(\"lte_ca\")\n)\n\nvar (\n\t// wifi\n\tNetworkConnectionTypeWifi = NetworkConnectionTypeKey.String(\"wifi\")\n\t// wired\n\tNetworkConnectionTypeWired = NetworkConnectionTypeKey.String(\"wired\")\n\t// cell\n\tNetworkConnectionTypeCell = NetworkConnectionTypeKey.String(\"cell\")\n\t// unavailable\n\tNetworkConnectionTypeUnavailable = NetworkConnectionTypeKey.String(\"unavailable\")\n\t// unknown\n\tNetworkConnectionTypeUnknown = NetworkConnectionTypeKey.String(\"unknown\")\n)\n\nvar (\n\t// transmit\n\tNetworkIoDirectionTransmit = NetworkIoDirectionKey.String(\"transmit\")\n\t// receive\n\tNetworkIoDirectionReceive = NetworkIoDirectionKey.String(\"receive\")\n)\n\nvar (\n\t// TCP\n\tNetworkTransportTCP = NetworkTransportKey.String(\"tcp\")\n\t// UDP\n\tNetworkTransportUDP = NetworkTransportKey.String(\"udp\")\n\t// Named or anonymous pipe\n\tNetworkTransportPipe = NetworkTransportKey.String(\"pipe\")\n\t// Unix domain socket\n\tNetworkTransportUnix = NetworkTransportKey.String(\"unix\")\n)\n\nvar (\n\t// IPv4\n\tNetworkTypeIpv4 = NetworkTypeKey.String(\"ipv4\")\n\t// IPv6\n\tNetworkTypeIpv6 = NetworkTypeKey.String(\"ipv6\")\n)\n\n// NetworkCarrierIcc returns an attribute KeyValue conforming to the\n// \"network.carrier.icc\" semantic conventions. It represents the ISO 3166-1\n// alpha-2 2-character country code associated with the mobile carrier network.\nfunc NetworkCarrierIcc(val string) attribute.KeyValue {\n\treturn NetworkCarrierIccKey.String(val)\n}\n\n// NetworkCarrierMcc returns an attribute KeyValue conforming to the\n// \"network.carrier.mcc\" semantic conventions. It represents the mobile carrier\n// country code.\nfunc NetworkCarrierMcc(val string) attribute.KeyValue {\n\treturn NetworkCarrierMccKey.String(val)\n}\n\n// NetworkCarrierMnc returns an attribute KeyValue conforming to the\n// \"network.carrier.mnc\" semantic conventions. It represents the mobile carrier\n// network code.\nfunc NetworkCarrierMnc(val string) attribute.KeyValue {\n\treturn NetworkCarrierMncKey.String(val)\n}\n\n// NetworkCarrierName returns an attribute KeyValue conforming to the\n// \"network.carrier.name\" semantic conventions. It represents the name of the\n// mobile carrier.\nfunc NetworkCarrierName(val string) attribute.KeyValue {\n\treturn NetworkCarrierNameKey.String(val)\n}\n\n// NetworkLocalAddress returns an attribute KeyValue conforming to the\n// \"network.local.address\" semantic conventions. It represents the local\n// address of the network connection - IP address or Unix domain socket name.\nfunc NetworkLocalAddress(val string) attribute.KeyValue {\n\treturn NetworkLocalAddressKey.String(val)\n}\n\n// NetworkLocalPort returns an attribute KeyValue conforming to the\n// \"network.local.port\" semantic conventions. It represents the local port\n// number of the network connection.\nfunc NetworkLocalPort(val int) attribute.KeyValue {\n\treturn NetworkLocalPortKey.Int(val)\n}\n\n// NetworkPeerAddress returns an attribute KeyValue conforming to the\n// \"network.peer.address\" semantic conventions. It represents the peer address\n// of the network connection - IP address or Unix domain socket name.\nfunc NetworkPeerAddress(val string) attribute.KeyValue {\n\treturn NetworkPeerAddressKey.String(val)\n}\n\n// NetworkPeerPort returns an attribute KeyValue conforming to the\n// \"network.peer.port\" semantic conventions. It represents the peer port number\n// of the network connection.\nfunc NetworkPeerPort(val int) attribute.KeyValue {\n\treturn NetworkPeerPortKey.Int(val)\n}\n\n// NetworkProtocolName returns an attribute KeyValue conforming to the\n// \"network.protocol.name\" semantic conventions. It represents the [OSI\n// application layer](https://osi-model.com/application-layer/) or non-OSI\n// equivalent.\nfunc NetworkProtocolName(val string) attribute.KeyValue {\n\treturn NetworkProtocolNameKey.String(val)\n}\n\n// NetworkProtocolVersion returns an attribute KeyValue conforming to the\n// \"network.protocol.version\" semantic conventions. It represents the version\n// of the protocol specified in `network.protocol.name`.\nfunc NetworkProtocolVersion(val string) attribute.KeyValue {\n\treturn NetworkProtocolVersionKey.String(val)\n}\n\n// Attributes for remote procedure calls.\nconst (\n\t// RPCConnectRPCErrorCodeKey is the attribute Key conforming to the\n\t// \"rpc.connect_rpc.error_code\" semantic conventions. It represents the\n\t// [error codes](https://connect.build/docs/protocol/#error-codes) of the\n\t// Connect request. Error codes are always string values.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tRPCConnectRPCErrorCodeKey = attribute.Key(\"rpc.connect_rpc.error_code\")\n\n\t// RPCGRPCStatusCodeKey is the attribute Key conforming to the\n\t// \"rpc.grpc.status_code\" semantic conventions. It represents the [numeric\n\t// status\n\t// code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of\n\t// the gRPC request.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tRPCGRPCStatusCodeKey = attribute.Key(\"rpc.grpc.status_code\")\n\n\t// RPCJsonrpcErrorCodeKey is the attribute Key conforming to the\n\t// \"rpc.jsonrpc.error_code\" semantic conventions. It represents the\n\t// `error.code` property of response if it is an error response.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: -32700, 100\n\tRPCJsonrpcErrorCodeKey = attribute.Key(\"rpc.jsonrpc.error_code\")\n\n\t// RPCJsonrpcErrorMessageKey is the attribute Key conforming to the\n\t// \"rpc.jsonrpc.error_message\" semantic conventions. It represents the\n\t// `error.message` property of response if it is an error response.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Parse error', 'User already exists'\n\tRPCJsonrpcErrorMessageKey = attribute.Key(\"rpc.jsonrpc.error_message\")\n\n\t// RPCJsonrpcRequestIDKey is the attribute Key conforming to the\n\t// \"rpc.jsonrpc.request_id\" semantic conventions. It represents the `id`\n\t// property of request or response. Since protocol allows id to be int,\n\t// string, `null` or missing (for notifications), value is expected to be\n\t// cast to string for simplicity. Use empty string in case of `null` value.\n\t// Omit entirely if this is a notification.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '10', 'request-7', ''\n\tRPCJsonrpcRequestIDKey = attribute.Key(\"rpc.jsonrpc.request_id\")\n\n\t// RPCJsonrpcVersionKey is the attribute Key conforming to the\n\t// \"rpc.jsonrpc.version\" semantic conventions. It represents the protocol\n\t// version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0\n\t// doesn't specify this, the value can be omitted.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '2.0', '1.0'\n\tRPCJsonrpcVersionKey = attribute.Key(\"rpc.jsonrpc.version\")\n\n\t// RPCMethodKey is the attribute Key conforming to the \"rpc.method\"\n\t// semantic conventions. It represents the name of the (logical) method\n\t// being called, must be equal to the $method part in the span name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'exampleMethod'\n\t// Note: This is the logical name of the method from the RPC interface\n\t// perspective, which can be different from the name of any implementing\n\t// method/function. The `code.function` attribute may be used to store the\n\t// latter (e.g., method actually executing the call on the server side, RPC\n\t// client stub method on the client side).\n\tRPCMethodKey = attribute.Key(\"rpc.method\")\n\n\t// RPCServiceKey is the attribute Key conforming to the \"rpc.service\"\n\t// semantic conventions. It represents the full (logical) name of the\n\t// service being called, including its package name, if applicable.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'myservice.EchoService'\n\t// Note: This is the logical name of the service from the RPC interface\n\t// perspective, which can be different from the name of any implementing\n\t// class. The `code.namespace` attribute may be used to store the latter\n\t// (despite the attribute name, it may include a class name; e.g., class\n\t// with method actually executing the call on the server side, RPC client\n\t// stub class on the client side).\n\tRPCServiceKey = attribute.Key(\"rpc.service\")\n\n\t// RPCSystemKey is the attribute Key conforming to the \"rpc.system\"\n\t// semantic conventions. It represents a string identifying the remoting\n\t// system. See below for a list of well-known identifiers.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tRPCSystemKey = attribute.Key(\"rpc.system\")\n)\n\nvar (\n\t// cancelled\n\tRPCConnectRPCErrorCodeCancelled = RPCConnectRPCErrorCodeKey.String(\"cancelled\")\n\t// unknown\n\tRPCConnectRPCErrorCodeUnknown = RPCConnectRPCErrorCodeKey.String(\"unknown\")\n\t// invalid_argument\n\tRPCConnectRPCErrorCodeInvalidArgument = RPCConnectRPCErrorCodeKey.String(\"invalid_argument\")\n\t// deadline_exceeded\n\tRPCConnectRPCErrorCodeDeadlineExceeded = RPCConnectRPCErrorCodeKey.String(\"deadline_exceeded\")\n\t// not_found\n\tRPCConnectRPCErrorCodeNotFound = RPCConnectRPCErrorCodeKey.String(\"not_found\")\n\t// already_exists\n\tRPCConnectRPCErrorCodeAlreadyExists = RPCConnectRPCErrorCodeKey.String(\"already_exists\")\n\t// permission_denied\n\tRPCConnectRPCErrorCodePermissionDenied = RPCConnectRPCErrorCodeKey.String(\"permission_denied\")\n\t// resource_exhausted\n\tRPCConnectRPCErrorCodeResourceExhausted = RPCConnectRPCErrorCodeKey.String(\"resource_exhausted\")\n\t// failed_precondition\n\tRPCConnectRPCErrorCodeFailedPrecondition = RPCConnectRPCErrorCodeKey.String(\"failed_precondition\")\n\t// aborted\n\tRPCConnectRPCErrorCodeAborted = RPCConnectRPCErrorCodeKey.String(\"aborted\")\n\t// out_of_range\n\tRPCConnectRPCErrorCodeOutOfRange = RPCConnectRPCErrorCodeKey.String(\"out_of_range\")\n\t// unimplemented\n\tRPCConnectRPCErrorCodeUnimplemented = RPCConnectRPCErrorCodeKey.String(\"unimplemented\")\n\t// internal\n\tRPCConnectRPCErrorCodeInternal = RPCConnectRPCErrorCodeKey.String(\"internal\")\n\t// unavailable\n\tRPCConnectRPCErrorCodeUnavailable = RPCConnectRPCErrorCodeKey.String(\"unavailable\")\n\t// data_loss\n\tRPCConnectRPCErrorCodeDataLoss = RPCConnectRPCErrorCodeKey.String(\"data_loss\")\n\t// unauthenticated\n\tRPCConnectRPCErrorCodeUnauthenticated = RPCConnectRPCErrorCodeKey.String(\"unauthenticated\")\n)\n\nvar (\n\t// OK\n\tRPCGRPCStatusCodeOk = RPCGRPCStatusCodeKey.Int(0)\n\t// CANCELLED\n\tRPCGRPCStatusCodeCancelled = RPCGRPCStatusCodeKey.Int(1)\n\t// UNKNOWN\n\tRPCGRPCStatusCodeUnknown = RPCGRPCStatusCodeKey.Int(2)\n\t// INVALID_ARGUMENT\n\tRPCGRPCStatusCodeInvalidArgument = RPCGRPCStatusCodeKey.Int(3)\n\t// DEADLINE_EXCEEDED\n\tRPCGRPCStatusCodeDeadlineExceeded = RPCGRPCStatusCodeKey.Int(4)\n\t// NOT_FOUND\n\tRPCGRPCStatusCodeNotFound = RPCGRPCStatusCodeKey.Int(5)\n\t// ALREADY_EXISTS\n\tRPCGRPCStatusCodeAlreadyExists = RPCGRPCStatusCodeKey.Int(6)\n\t// PERMISSION_DENIED\n\tRPCGRPCStatusCodePermissionDenied = RPCGRPCStatusCodeKey.Int(7)\n\t// RESOURCE_EXHAUSTED\n\tRPCGRPCStatusCodeResourceExhausted = RPCGRPCStatusCodeKey.Int(8)\n\t// FAILED_PRECONDITION\n\tRPCGRPCStatusCodeFailedPrecondition = RPCGRPCStatusCodeKey.Int(9)\n\t// ABORTED\n\tRPCGRPCStatusCodeAborted = RPCGRPCStatusCodeKey.Int(10)\n\t// OUT_OF_RANGE\n\tRPCGRPCStatusCodeOutOfRange = RPCGRPCStatusCodeKey.Int(11)\n\t// UNIMPLEMENTED\n\tRPCGRPCStatusCodeUnimplemented = RPCGRPCStatusCodeKey.Int(12)\n\t// INTERNAL\n\tRPCGRPCStatusCodeInternal = RPCGRPCStatusCodeKey.Int(13)\n\t// UNAVAILABLE\n\tRPCGRPCStatusCodeUnavailable = RPCGRPCStatusCodeKey.Int(14)\n\t// DATA_LOSS\n\tRPCGRPCStatusCodeDataLoss = RPCGRPCStatusCodeKey.Int(15)\n\t// UNAUTHENTICATED\n\tRPCGRPCStatusCodeUnauthenticated = RPCGRPCStatusCodeKey.Int(16)\n)\n\nvar (\n\t// gRPC\n\tRPCSystemGRPC = RPCSystemKey.String(\"grpc\")\n\t// Java RMI\n\tRPCSystemJavaRmi = RPCSystemKey.String(\"java_rmi\")\n\t// .NET WCF\n\tRPCSystemDotnetWcf = RPCSystemKey.String(\"dotnet_wcf\")\n\t// Apache Dubbo\n\tRPCSystemApacheDubbo = RPCSystemKey.String(\"apache_dubbo\")\n\t// Connect RPC\n\tRPCSystemConnectRPC = RPCSystemKey.String(\"connect_rpc\")\n)\n\n// RPCJsonrpcErrorCode returns an attribute KeyValue conforming to the\n// \"rpc.jsonrpc.error_code\" semantic conventions. It represents the\n// `error.code` property of response if it is an error response.\nfunc RPCJsonrpcErrorCode(val int) attribute.KeyValue {\n\treturn RPCJsonrpcErrorCodeKey.Int(val)\n}\n\n// RPCJsonrpcErrorMessage returns an attribute KeyValue conforming to the\n// \"rpc.jsonrpc.error_message\" semantic conventions. It represents the\n// `error.message` property of response if it is an error response.\nfunc RPCJsonrpcErrorMessage(val string) attribute.KeyValue {\n\treturn RPCJsonrpcErrorMessageKey.String(val)\n}\n\n// RPCJsonrpcRequestID returns an attribute KeyValue conforming to the\n// \"rpc.jsonrpc.request_id\" semantic conventions. It represents the `id`\n// property of request or response. Since protocol allows id to be int, string,\n// `null` or missing (for notifications), value is expected to be cast to\n// string for simplicity. Use empty string in case of `null` value. Omit\n// entirely if this is a notification.\nfunc RPCJsonrpcRequestID(val string) attribute.KeyValue {\n\treturn RPCJsonrpcRequestIDKey.String(val)\n}\n\n// RPCJsonrpcVersion returns an attribute KeyValue conforming to the\n// \"rpc.jsonrpc.version\" semantic conventions. It represents the protocol\n// version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0\n// doesn't specify this, the value can be omitted.\nfunc RPCJsonrpcVersion(val string) attribute.KeyValue {\n\treturn RPCJsonrpcVersionKey.String(val)\n}\n\n// RPCMethod returns an attribute KeyValue conforming to the \"rpc.method\"\n// semantic conventions. It represents the name of the (logical) method being\n// called, must be equal to the $method part in the span name.\nfunc RPCMethod(val string) attribute.KeyValue {\n\treturn RPCMethodKey.String(val)\n}\n\n// RPCService returns an attribute KeyValue conforming to the \"rpc.service\"\n// semantic conventions. It represents the full (logical) name of the service\n// being called, including its package name, if applicable.\nfunc RPCService(val string) attribute.KeyValue {\n\treturn RPCServiceKey.String(val)\n}\n\n// These attributes may be used to describe the server in a connection-based\n// network interaction where there is one side that initiates the connection\n// (the client is the side that initiates the connection). This covers all TCP\n// network interactions since TCP is connection-based and one side initiates\n// the connection (an exception is made for peer-to-peer communication over TCP\n// where the \"user-facing\" surface of the protocol / API doesn't expose a clear\n// notion of client and server). This also covers UDP network interactions\n// where one side initiates the interaction, e.g. QUIC (HTTP/3) and DNS.\nconst (\n\t// ServerAddressKey is the attribute Key conforming to the \"server.address\"\n\t// semantic conventions. It represents the server domain name if available\n\t// without reverse DNS lookup; otherwise, IP address or Unix domain socket\n\t// name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'example.com', '10.1.2.80', '/tmp/my.sock'\n\t// Note: When observed from the client side, and when communicating through\n\t// an intermediary, `server.address` SHOULD represent the server address\n\t// behind any intermediaries, for example proxies, if it's available.\n\tServerAddressKey = attribute.Key(\"server.address\")\n\n\t// ServerPortKey is the attribute Key conforming to the \"server.port\"\n\t// semantic conventions. It represents the server port number.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 80, 8080, 443\n\t// Note: When observed from the client side, and when communicating through\n\t// an intermediary, `server.port` SHOULD represent the server port behind\n\t// any intermediaries, for example proxies, if it's available.\n\tServerPortKey = attribute.Key(\"server.port\")\n)\n\n// ServerAddress returns an attribute KeyValue conforming to the\n// \"server.address\" semantic conventions. It represents the server domain name\n// if available without reverse DNS lookup; otherwise, IP address or Unix\n// domain socket name.\nfunc ServerAddress(val string) attribute.KeyValue {\n\treturn ServerAddressKey.String(val)\n}\n\n// ServerPort returns an attribute KeyValue conforming to the \"server.port\"\n// semantic conventions. It represents the server port number.\nfunc ServerPort(val int) attribute.KeyValue {\n\treturn ServerPortKey.Int(val)\n}\n\n// These attributes may be used to describe the sender of a network\n// exchange/packet. These should be used when there is no client/server\n// relationship between the two sides, or when that relationship is unknown.\n// This covers low-level network interactions (e.g. packet tracing) where you\n// don't know if there was a connection or which side initiated it. This also\n// covers unidirectional UDP flows and peer-to-peer communication where the\n// \"user-facing\" surface of the protocol / API doesn't expose a clear notion of\n// client and server.\nconst (\n\t// SourceAddressKey is the attribute Key conforming to the \"source.address\"\n\t// semantic conventions. It represents the source address - domain name if\n\t// available without reverse DNS lookup; otherwise, IP address or Unix\n\t// domain socket name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'source.example.com', '10.1.2.80', '/tmp/my.sock'\n\t// Note: When observed from the destination side, and when communicating\n\t// through an intermediary, `source.address` SHOULD represent the source\n\t// address behind any intermediaries, for example proxies, if it's\n\t// available.\n\tSourceAddressKey = attribute.Key(\"source.address\")\n\n\t// SourcePortKey is the attribute Key conforming to the \"source.port\"\n\t// semantic conventions. It represents the source port number\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 3389, 2888\n\tSourcePortKey = attribute.Key(\"source.port\")\n)\n\n// SourceAddress returns an attribute KeyValue conforming to the\n// \"source.address\" semantic conventions. It represents the source address -\n// domain name if available without reverse DNS lookup; otherwise, IP address\n// or Unix domain socket name.\nfunc SourceAddress(val string) attribute.KeyValue {\n\treturn SourceAddressKey.String(val)\n}\n\n// SourcePort returns an attribute KeyValue conforming to the \"source.port\"\n// semantic conventions. It represents the source port number\nfunc SourcePort(val int) attribute.KeyValue {\n\treturn SourcePortKey.Int(val)\n}\n\n// Semantic convention attributes in the TLS namespace.\nconst (\n\t// TLSCipherKey is the attribute Key conforming to the \"tls.cipher\"\n\t// semantic conventions. It represents the string indicating the\n\t// [cipher](https://datatracker.ietf.org/doc/html/rfc5246#appendix-A.5)\n\t// used during the current connection.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'TLS_RSA_WITH_3DES_EDE_CBC_SHA',\n\t// 'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256'\n\t// Note: The values allowed for `tls.cipher` MUST be one of the\n\t// `Descriptions` of the [registered TLS Cipher\n\t// Suits](https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#table-tls-parameters-4).\n\tTLSCipherKey = attribute.Key(\"tls.cipher\")\n\n\t// TLSClientCertificateKey is the attribute Key conforming to the\n\t// \"tls.client.certificate\" semantic conventions. It represents the\n\t// pEM-encoded stand-alone certificate offered by the client. This is\n\t// usually mutually-exclusive of `client.certificate_chain` since this\n\t// value also exists in that list.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'MII...'\n\tTLSClientCertificateKey = attribute.Key(\"tls.client.certificate\")\n\n\t// TLSClientCertificateChainKey is the attribute Key conforming to the\n\t// \"tls.client.certificate_chain\" semantic conventions. It represents the\n\t// array of PEM-encoded certificates that make up the certificate chain\n\t// offered by the client. This is usually mutually-exclusive of\n\t// `client.certificate` since that value should be the first certificate in\n\t// the chain.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'MII...', 'MI...'\n\tTLSClientCertificateChainKey = attribute.Key(\"tls.client.certificate_chain\")\n\n\t// TLSClientHashMd5Key is the attribute Key conforming to the\n\t// \"tls.client.hash.md5\" semantic conventions. It represents the\n\t// certificate fingerprint using the MD5 digest of DER-encoded version of\n\t// certificate offered by the client. For consistency with other hash\n\t// values, this value should be formatted as an uppercase hash.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC'\n\tTLSClientHashMd5Key = attribute.Key(\"tls.client.hash.md5\")\n\n\t// TLSClientHashSha1Key is the attribute Key conforming to the\n\t// \"tls.client.hash.sha1\" semantic conventions. It represents the\n\t// certificate fingerprint using the SHA1 digest of DER-encoded version of\n\t// certificate offered by the client. For consistency with other hash\n\t// values, this value should be formatted as an uppercase hash.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '9E393D93138888D288266C2D915214D1D1CCEB2A'\n\tTLSClientHashSha1Key = attribute.Key(\"tls.client.hash.sha1\")\n\n\t// TLSClientHashSha256Key is the attribute Key conforming to the\n\t// \"tls.client.hash.sha256\" semantic conventions. It represents the\n\t// certificate fingerprint using the SHA256 digest of DER-encoded version\n\t// of certificate offered by the client. For consistency with other hash\n\t// values, this value should be formatted as an uppercase hash.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples:\n\t// '0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0'\n\tTLSClientHashSha256Key = attribute.Key(\"tls.client.hash.sha256\")\n\n\t// TLSClientIssuerKey is the attribute Key conforming to the\n\t// \"tls.client.issuer\" semantic conventions. It represents the\n\t// distinguished name of\n\t// [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6)\n\t// of the issuer of the x.509 certificate presented by the client.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'CN=Example Root CA, OU=Infrastructure Team, DC=example,\n\t// DC=com'\n\tTLSClientIssuerKey = attribute.Key(\"tls.client.issuer\")\n\n\t// TLSClientJa3Key is the attribute Key conforming to the \"tls.client.ja3\"\n\t// semantic conventions. It represents a hash that identifies clients based\n\t// on how they perform an SSL/TLS handshake.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'd4e5b18d6b55c71272893221c96ba240'\n\tTLSClientJa3Key = attribute.Key(\"tls.client.ja3\")\n\n\t// TLSClientNotAfterKey is the attribute Key conforming to the\n\t// \"tls.client.not_after\" semantic conventions. It represents the date/Time\n\t// indicating when client certificate is no longer considered valid.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '2021-01-01T00:00:00.000Z'\n\tTLSClientNotAfterKey = attribute.Key(\"tls.client.not_after\")\n\n\t// TLSClientNotBeforeKey is the attribute Key conforming to the\n\t// \"tls.client.not_before\" semantic conventions. It represents the\n\t// date/Time indicating when client certificate is first considered valid.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '1970-01-01T00:00:00.000Z'\n\tTLSClientNotBeforeKey = attribute.Key(\"tls.client.not_before\")\n\n\t// TLSClientServerNameKey is the attribute Key conforming to the\n\t// \"tls.client.server_name\" semantic conventions. It represents the also\n\t// called an SNI, this tells the server which hostname to which the client\n\t// is attempting to connect to.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry.io'\n\tTLSClientServerNameKey = attribute.Key(\"tls.client.server_name\")\n\n\t// TLSClientSubjectKey is the attribute Key conforming to the\n\t// \"tls.client.subject\" semantic conventions. It represents the\n\t// distinguished name of subject of the x.509 certificate presented by the\n\t// client.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'CN=myclient, OU=Documentation Team, DC=example, DC=com'\n\tTLSClientSubjectKey = attribute.Key(\"tls.client.subject\")\n\n\t// TLSClientSupportedCiphersKey is the attribute Key conforming to the\n\t// \"tls.client.supported_ciphers\" semantic conventions. It represents the\n\t// array of ciphers offered by the client during the client hello.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\",\n\t// \"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\", \"...\"'\n\tTLSClientSupportedCiphersKey = attribute.Key(\"tls.client.supported_ciphers\")\n\n\t// TLSCurveKey is the attribute Key conforming to the \"tls.curve\" semantic\n\t// conventions. It represents the string indicating the curve used for the\n\t// given cipher, when applicable\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'secp256r1'\n\tTLSCurveKey = attribute.Key(\"tls.curve\")\n\n\t// TLSEstablishedKey is the attribute Key conforming to the\n\t// \"tls.established\" semantic conventions. It represents the boolean flag\n\t// indicating if the TLS negotiation was successful and transitioned to an\n\t// encrypted tunnel.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: True\n\tTLSEstablishedKey = attribute.Key(\"tls.established\")\n\n\t// TLSNextProtocolKey is the attribute Key conforming to the\n\t// \"tls.next_protocol\" semantic conventions. It represents the string\n\t// indicating the protocol being tunneled. Per the values in the [IANA\n\t// registry](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids),\n\t// this string should be lower case.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'http/1.1'\n\tTLSNextProtocolKey = attribute.Key(\"tls.next_protocol\")\n\n\t// TLSProtocolNameKey is the attribute Key conforming to the\n\t// \"tls.protocol.name\" semantic conventions. It represents the normalized\n\t// lowercase protocol name parsed from original string of the negotiated\n\t// [SSL/TLS protocol\n\t// version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES)\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tTLSProtocolNameKey = attribute.Key(\"tls.protocol.name\")\n\n\t// TLSProtocolVersionKey is the attribute Key conforming to the\n\t// \"tls.protocol.version\" semantic conventions. It represents the numeric\n\t// part of the version parsed from the original string of the negotiated\n\t// [SSL/TLS protocol\n\t// version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES)\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '1.2', '3'\n\tTLSProtocolVersionKey = attribute.Key(\"tls.protocol.version\")\n\n\t// TLSResumedKey is the attribute Key conforming to the \"tls.resumed\"\n\t// semantic conventions. It represents the boolean flag indicating if this\n\t// TLS connection was resumed from an existing TLS negotiation.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: True\n\tTLSResumedKey = attribute.Key(\"tls.resumed\")\n\n\t// TLSServerCertificateKey is the attribute Key conforming to the\n\t// \"tls.server.certificate\" semantic conventions. It represents the\n\t// pEM-encoded stand-alone certificate offered by the server. This is\n\t// usually mutually-exclusive of `server.certificate_chain` since this\n\t// value also exists in that list.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'MII...'\n\tTLSServerCertificateKey = attribute.Key(\"tls.server.certificate\")\n\n\t// TLSServerCertificateChainKey is the attribute Key conforming to the\n\t// \"tls.server.certificate_chain\" semantic conventions. It represents the\n\t// array of PEM-encoded certificates that make up the certificate chain\n\t// offered by the server. This is usually mutually-exclusive of\n\t// `server.certificate` since that value should be the first certificate in\n\t// the chain.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'MII...', 'MI...'\n\tTLSServerCertificateChainKey = attribute.Key(\"tls.server.certificate_chain\")\n\n\t// TLSServerHashMd5Key is the attribute Key conforming to the\n\t// \"tls.server.hash.md5\" semantic conventions. It represents the\n\t// certificate fingerprint using the MD5 digest of DER-encoded version of\n\t// certificate offered by the server. For consistency with other hash\n\t// values, this value should be formatted as an uppercase hash.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '0F76C7F2C55BFD7D8E8B8F4BFBF0C9EC'\n\tTLSServerHashMd5Key = attribute.Key(\"tls.server.hash.md5\")\n\n\t// TLSServerHashSha1Key is the attribute Key conforming to the\n\t// \"tls.server.hash.sha1\" semantic conventions. It represents the\n\t// certificate fingerprint using the SHA1 digest of DER-encoded version of\n\t// certificate offered by the server. For consistency with other hash\n\t// values, this value should be formatted as an uppercase hash.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '9E393D93138888D288266C2D915214D1D1CCEB2A'\n\tTLSServerHashSha1Key = attribute.Key(\"tls.server.hash.sha1\")\n\n\t// TLSServerHashSha256Key is the attribute Key conforming to the\n\t// \"tls.server.hash.sha256\" semantic conventions. It represents the\n\t// certificate fingerprint using the SHA256 digest of DER-encoded version\n\t// of certificate offered by the server. For consistency with other hash\n\t// values, this value should be formatted as an uppercase hash.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples:\n\t// '0687F666A054EF17A08E2F2162EAB4CBC0D265E1D7875BE74BF3C712CA92DAF0'\n\tTLSServerHashSha256Key = attribute.Key(\"tls.server.hash.sha256\")\n\n\t// TLSServerIssuerKey is the attribute Key conforming to the\n\t// \"tls.server.issuer\" semantic conventions. It represents the\n\t// distinguished name of\n\t// [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6)\n\t// of the issuer of the x.509 certificate presented by the client.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'CN=Example Root CA, OU=Infrastructure Team, DC=example,\n\t// DC=com'\n\tTLSServerIssuerKey = attribute.Key(\"tls.server.issuer\")\n\n\t// TLSServerJa3sKey is the attribute Key conforming to the\n\t// \"tls.server.ja3s\" semantic conventions. It represents a hash that\n\t// identifies servers based on how they perform an SSL/TLS handshake.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'd4e5b18d6b55c71272893221c96ba240'\n\tTLSServerJa3sKey = attribute.Key(\"tls.server.ja3s\")\n\n\t// TLSServerNotAfterKey is the attribute Key conforming to the\n\t// \"tls.server.not_after\" semantic conventions. It represents the date/Time\n\t// indicating when server certificate is no longer considered valid.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '2021-01-01T00:00:00.000Z'\n\tTLSServerNotAfterKey = attribute.Key(\"tls.server.not_after\")\n\n\t// TLSServerNotBeforeKey is the attribute Key conforming to the\n\t// \"tls.server.not_before\" semantic conventions. It represents the\n\t// date/Time indicating when server certificate is first considered valid.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '1970-01-01T00:00:00.000Z'\n\tTLSServerNotBeforeKey = attribute.Key(\"tls.server.not_before\")\n\n\t// TLSServerSubjectKey is the attribute Key conforming to the\n\t// \"tls.server.subject\" semantic conventions. It represents the\n\t// distinguished name of subject of the x.509 certificate presented by the\n\t// server.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'CN=myserver, OU=Documentation Team, DC=example, DC=com'\n\tTLSServerSubjectKey = attribute.Key(\"tls.server.subject\")\n)\n\nvar (\n\t// ssl\n\tTLSProtocolNameSsl = TLSProtocolNameKey.String(\"ssl\")\n\t// tls\n\tTLSProtocolNameTLS = TLSProtocolNameKey.String(\"tls\")\n)\n\n// TLSCipher returns an attribute KeyValue conforming to the \"tls.cipher\"\n// semantic conventions. It represents the string indicating the\n// [cipher](https://datatracker.ietf.org/doc/html/rfc5246#appendix-A.5) used\n// during the current connection.\nfunc TLSCipher(val string) attribute.KeyValue {\n\treturn TLSCipherKey.String(val)\n}\n\n// TLSClientCertificate returns an attribute KeyValue conforming to the\n// \"tls.client.certificate\" semantic conventions. It represents the pEM-encoded\n// stand-alone certificate offered by the client. This is usually\n// mutually-exclusive of `client.certificate_chain` since this value also\n// exists in that list.\nfunc TLSClientCertificate(val string) attribute.KeyValue {\n\treturn TLSClientCertificateKey.String(val)\n}\n\n// TLSClientCertificateChain returns an attribute KeyValue conforming to the\n// \"tls.client.certificate_chain\" semantic conventions. It represents the array\n// of PEM-encoded certificates that make up the certificate chain offered by\n// the client. This is usually mutually-exclusive of `client.certificate` since\n// that value should be the first certificate in the chain.\nfunc TLSClientCertificateChain(val ...string) attribute.KeyValue {\n\treturn TLSClientCertificateChainKey.StringSlice(val)\n}\n\n// TLSClientHashMd5 returns an attribute KeyValue conforming to the\n// \"tls.client.hash.md5\" semantic conventions. It represents the certificate\n// fingerprint using the MD5 digest of DER-encoded version of certificate\n// offered by the client. For consistency with other hash values, this value\n// should be formatted as an uppercase hash.\nfunc TLSClientHashMd5(val string) attribute.KeyValue {\n\treturn TLSClientHashMd5Key.String(val)\n}\n\n// TLSClientHashSha1 returns an attribute KeyValue conforming to the\n// \"tls.client.hash.sha1\" semantic conventions. It represents the certificate\n// fingerprint using the SHA1 digest of DER-encoded version of certificate\n// offered by the client. For consistency with other hash values, this value\n// should be formatted as an uppercase hash.\nfunc TLSClientHashSha1(val string) attribute.KeyValue {\n\treturn TLSClientHashSha1Key.String(val)\n}\n\n// TLSClientHashSha256 returns an attribute KeyValue conforming to the\n// \"tls.client.hash.sha256\" semantic conventions. It represents the certificate\n// fingerprint using the SHA256 digest of DER-encoded version of certificate\n// offered by the client. For consistency with other hash values, this value\n// should be formatted as an uppercase hash.\nfunc TLSClientHashSha256(val string) attribute.KeyValue {\n\treturn TLSClientHashSha256Key.String(val)\n}\n\n// TLSClientIssuer returns an attribute KeyValue conforming to the\n// \"tls.client.issuer\" semantic conventions. It represents the distinguished\n// name of\n// [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of\n// the issuer of the x.509 certificate presented by the client.\nfunc TLSClientIssuer(val string) attribute.KeyValue {\n\treturn TLSClientIssuerKey.String(val)\n}\n\n// TLSClientJa3 returns an attribute KeyValue conforming to the\n// \"tls.client.ja3\" semantic conventions. It represents a hash that identifies\n// clients based on how they perform an SSL/TLS handshake.\nfunc TLSClientJa3(val string) attribute.KeyValue {\n\treturn TLSClientJa3Key.String(val)\n}\n\n// TLSClientNotAfter returns an attribute KeyValue conforming to the\n// \"tls.client.not_after\" semantic conventions. It represents the date/Time\n// indicating when client certificate is no longer considered valid.\nfunc TLSClientNotAfter(val string) attribute.KeyValue {\n\treturn TLSClientNotAfterKey.String(val)\n}\n\n// TLSClientNotBefore returns an attribute KeyValue conforming to the\n// \"tls.client.not_before\" semantic conventions. It represents the date/Time\n// indicating when client certificate is first considered valid.\nfunc TLSClientNotBefore(val string) attribute.KeyValue {\n\treturn TLSClientNotBeforeKey.String(val)\n}\n\n// TLSClientServerName returns an attribute KeyValue conforming to the\n// \"tls.client.server_name\" semantic conventions. It represents the also called\n// an SNI, this tells the server which hostname to which the client is\n// attempting to connect to.\nfunc TLSClientServerName(val string) attribute.KeyValue {\n\treturn TLSClientServerNameKey.String(val)\n}\n\n// TLSClientSubject returns an attribute KeyValue conforming to the\n// \"tls.client.subject\" semantic conventions. It represents the distinguished\n// name of subject of the x.509 certificate presented by the client.\nfunc TLSClientSubject(val string) attribute.KeyValue {\n\treturn TLSClientSubjectKey.String(val)\n}\n\n// TLSClientSupportedCiphers returns an attribute KeyValue conforming to the\n// \"tls.client.supported_ciphers\" semantic conventions. It represents the array\n// of ciphers offered by the client during the client hello.\nfunc TLSClientSupportedCiphers(val ...string) attribute.KeyValue {\n\treturn TLSClientSupportedCiphersKey.StringSlice(val)\n}\n\n// TLSCurve returns an attribute KeyValue conforming to the \"tls.curve\"\n// semantic conventions. It represents the string indicating the curve used for\n// the given cipher, when applicable\nfunc TLSCurve(val string) attribute.KeyValue {\n\treturn TLSCurveKey.String(val)\n}\n\n// TLSEstablished returns an attribute KeyValue conforming to the\n// \"tls.established\" semantic conventions. It represents the boolean flag\n// indicating if the TLS negotiation was successful and transitioned to an\n// encrypted tunnel.\nfunc TLSEstablished(val bool) attribute.KeyValue {\n\treturn TLSEstablishedKey.Bool(val)\n}\n\n// TLSNextProtocol returns an attribute KeyValue conforming to the\n// \"tls.next_protocol\" semantic conventions. It represents the string\n// indicating the protocol being tunneled. Per the values in the [IANA\n// registry](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids),\n// this string should be lower case.\nfunc TLSNextProtocol(val string) attribute.KeyValue {\n\treturn TLSNextProtocolKey.String(val)\n}\n\n// TLSProtocolVersion returns an attribute KeyValue conforming to the\n// \"tls.protocol.version\" semantic conventions. It represents the numeric part\n// of the version parsed from the original string of the negotiated [SSL/TLS\n// protocol\n// version](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html#RETURN-VALUES)\nfunc TLSProtocolVersion(val string) attribute.KeyValue {\n\treturn TLSProtocolVersionKey.String(val)\n}\n\n// TLSResumed returns an attribute KeyValue conforming to the \"tls.resumed\"\n// semantic conventions. It represents the boolean flag indicating if this TLS\n// connection was resumed from an existing TLS negotiation.\nfunc TLSResumed(val bool) attribute.KeyValue {\n\treturn TLSResumedKey.Bool(val)\n}\n\n// TLSServerCertificate returns an attribute KeyValue conforming to the\n// \"tls.server.certificate\" semantic conventions. It represents the pEM-encoded\n// stand-alone certificate offered by the server. This is usually\n// mutually-exclusive of `server.certificate_chain` since this value also\n// exists in that list.\nfunc TLSServerCertificate(val string) attribute.KeyValue {\n\treturn TLSServerCertificateKey.String(val)\n}\n\n// TLSServerCertificateChain returns an attribute KeyValue conforming to the\n// \"tls.server.certificate_chain\" semantic conventions. It represents the array\n// of PEM-encoded certificates that make up the certificate chain offered by\n// the server. This is usually mutually-exclusive of `server.certificate` since\n// that value should be the first certificate in the chain.\nfunc TLSServerCertificateChain(val ...string) attribute.KeyValue {\n\treturn TLSServerCertificateChainKey.StringSlice(val)\n}\n\n// TLSServerHashMd5 returns an attribute KeyValue conforming to the\n// \"tls.server.hash.md5\" semantic conventions. It represents the certificate\n// fingerprint using the MD5 digest of DER-encoded version of certificate\n// offered by the server. For consistency with other hash values, this value\n// should be formatted as an uppercase hash.\nfunc TLSServerHashMd5(val string) attribute.KeyValue {\n\treturn TLSServerHashMd5Key.String(val)\n}\n\n// TLSServerHashSha1 returns an attribute KeyValue conforming to the\n// \"tls.server.hash.sha1\" semantic conventions. It represents the certificate\n// fingerprint using the SHA1 digest of DER-encoded version of certificate\n// offered by the server. For consistency with other hash values, this value\n// should be formatted as an uppercase hash.\nfunc TLSServerHashSha1(val string) attribute.KeyValue {\n\treturn TLSServerHashSha1Key.String(val)\n}\n\n// TLSServerHashSha256 returns an attribute KeyValue conforming to the\n// \"tls.server.hash.sha256\" semantic conventions. It represents the certificate\n// fingerprint using the SHA256 digest of DER-encoded version of certificate\n// offered by the server. For consistency with other hash values, this value\n// should be formatted as an uppercase hash.\nfunc TLSServerHashSha256(val string) attribute.KeyValue {\n\treturn TLSServerHashSha256Key.String(val)\n}\n\n// TLSServerIssuer returns an attribute KeyValue conforming to the\n// \"tls.server.issuer\" semantic conventions. It represents the distinguished\n// name of\n// [subject](https://datatracker.ietf.org/doc/html/rfc5280#section-4.1.2.6) of\n// the issuer of the x.509 certificate presented by the client.\nfunc TLSServerIssuer(val string) attribute.KeyValue {\n\treturn TLSServerIssuerKey.String(val)\n}\n\n// TLSServerJa3s returns an attribute KeyValue conforming to the\n// \"tls.server.ja3s\" semantic conventions. It represents a hash that identifies\n// servers based on how they perform an SSL/TLS handshake.\nfunc TLSServerJa3s(val string) attribute.KeyValue {\n\treturn TLSServerJa3sKey.String(val)\n}\n\n// TLSServerNotAfter returns an attribute KeyValue conforming to the\n// \"tls.server.not_after\" semantic conventions. It represents the date/Time\n// indicating when server certificate is no longer considered valid.\nfunc TLSServerNotAfter(val string) attribute.KeyValue {\n\treturn TLSServerNotAfterKey.String(val)\n}\n\n// TLSServerNotBefore returns an attribute KeyValue conforming to the\n// \"tls.server.not_before\" semantic conventions. It represents the date/Time\n// indicating when server certificate is first considered valid.\nfunc TLSServerNotBefore(val string) attribute.KeyValue {\n\treturn TLSServerNotBeforeKey.String(val)\n}\n\n// TLSServerSubject returns an attribute KeyValue conforming to the\n// \"tls.server.subject\" semantic conventions. It represents the distinguished\n// name of subject of the x.509 certificate presented by the server.\nfunc TLSServerSubject(val string) attribute.KeyValue {\n\treturn TLSServerSubjectKey.String(val)\n}\n\n// Attributes describing URL.\nconst (\n\t// URLFragmentKey is the attribute Key conforming to the \"url.fragment\"\n\t// semantic conventions. It represents the [URI\n\t// fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'SemConv'\n\tURLFragmentKey = attribute.Key(\"url.fragment\")\n\n\t// URLFullKey is the attribute Key conforming to the \"url.full\" semantic\n\t// conventions. It represents the absolute URL describing a network\n\t// resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'https://www.foo.bar/search?q=OpenTelemetry#SemConv',\n\t// '//localhost'\n\t// Note: For network calls, URL usually has\n\t// `scheme://host[:port][path][?query][#fragment]` format, where the\n\t// fragment is not transmitted over HTTP, but if it is known, it SHOULD be\n\t// included nevertheless.\n\t// `url.full` MUST NOT contain credentials passed via URL in form of\n\t// `https://username:password@www.example.com/`. In such case username and\n\t// password SHOULD be redacted and attribute's value SHOULD be\n\t// `https://REDACTED:REDACTED@www.example.com/`.\n\t// `url.full` SHOULD capture the absolute URL when it is available (or can\n\t// be reconstructed) and SHOULD NOT be validated or modified except for\n\t// sanitizing purposes.\n\tURLFullKey = attribute.Key(\"url.full\")\n\n\t// URLPathKey is the attribute Key conforming to the \"url.path\" semantic\n\t// conventions. It represents the [URI\n\t// path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: '/search'\n\tURLPathKey = attribute.Key(\"url.path\")\n\n\t// URLQueryKey is the attribute Key conforming to the \"url.query\" semantic\n\t// conventions. It represents the [URI\n\t// query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'q=OpenTelemetry'\n\t// Note: Sensitive content provided in query string SHOULD be scrubbed when\n\t// instrumentations can identify it.\n\tURLQueryKey = attribute.Key(\"url.query\")\n\n\t// URLSchemeKey is the attribute Key conforming to the \"url.scheme\"\n\t// semantic conventions. It represents the [URI\n\t// scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component\n\t// identifying the used protocol.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'https', 'ftp', 'telnet'\n\tURLSchemeKey = attribute.Key(\"url.scheme\")\n)\n\n// URLFragment returns an attribute KeyValue conforming to the\n// \"url.fragment\" semantic conventions. It represents the [URI\n// fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component\nfunc URLFragment(val string) attribute.KeyValue {\n\treturn URLFragmentKey.String(val)\n}\n\n// URLFull returns an attribute KeyValue conforming to the \"url.full\"\n// semantic conventions. It represents the absolute URL describing a network\n// resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)\nfunc URLFull(val string) attribute.KeyValue {\n\treturn URLFullKey.String(val)\n}\n\n// URLPath returns an attribute KeyValue conforming to the \"url.path\"\n// semantic conventions. It represents the [URI\n// path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component\nfunc URLPath(val string) attribute.KeyValue {\n\treturn URLPathKey.String(val)\n}\n\n// URLQuery returns an attribute KeyValue conforming to the \"url.query\"\n// semantic conventions. It represents the [URI\n// query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component\nfunc URLQuery(val string) attribute.KeyValue {\n\treturn URLQueryKey.String(val)\n}\n\n// URLScheme returns an attribute KeyValue conforming to the \"url.scheme\"\n// semantic conventions. It represents the [URI\n// scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component\n// identifying the used protocol.\nfunc URLScheme(val string) attribute.KeyValue {\n\treturn URLSchemeKey.String(val)\n}\n\n// Describes user-agent attributes.\nconst (\n\t// UserAgentOriginalKey is the attribute Key conforming to the\n\t// \"user_agent.original\" semantic conventions. It represents the value of\n\t// the [HTTP\n\t// User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent)\n\t// header sent by the client.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: stable\n\t// Examples: 'CERN-LineMode/2.15 libwww/2.17b3', 'Mozilla/5.0 (iPhone; CPU\n\t// iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko)\n\t// Version/14.1.2 Mobile/15E148 Safari/604.1'\n\tUserAgentOriginalKey = attribute.Key(\"user_agent.original\")\n)\n\n// UserAgentOriginal returns an attribute KeyValue conforming to the\n// \"user_agent.original\" semantic conventions. It represents the value of the\n// [HTTP\n// User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent)\n// header sent by the client.\nfunc UserAgentOriginal(val string) attribute.KeyValue {\n\treturn UserAgentOriginalKey.String(val)\n}\n\n// Session is defined as the period of time encompassing all activities\n// performed by the application and the actions executed by the end user.\n// Consequently, a Session is represented as a collection of Logs, Events, and\n// Spans emitted by the Client Application throughout the Session's duration.\n// Each Session is assigned a unique identifier, which is included as an\n// attribute in the Logs, Events, and Spans generated during the Session's\n// lifecycle.\n// When a session reaches end of life, typically due to user inactivity or\n// session timeout, a new session identifier will be assigned. The previous\n// session identifier may be provided by the instrumentation so that telemetry\n// backends can link the two sessions.\nconst (\n\t// SessionIDKey is the attribute Key conforming to the \"session.id\"\n\t// semantic conventions. It represents a unique id to identify a session.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '00112233-4455-6677-8899-aabbccddeeff'\n\tSessionIDKey = attribute.Key(\"session.id\")\n\n\t// SessionPreviousIDKey is the attribute Key conforming to the\n\t// \"session.previous_id\" semantic conventions. It represents the previous\n\t// `session.id` for this user, when known.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '00112233-4455-6677-8899-aabbccddeeff'\n\tSessionPreviousIDKey = attribute.Key(\"session.previous_id\")\n)\n\n// SessionID returns an attribute KeyValue conforming to the \"session.id\"\n// semantic conventions. It represents a unique id to identify a session.\nfunc SessionID(val string) attribute.KeyValue {\n\treturn SessionIDKey.String(val)\n}\n\n// SessionPreviousID returns an attribute KeyValue conforming to the\n// \"session.previous_id\" semantic conventions. It represents the previous\n// `session.id` for this user, when known.\nfunc SessionPreviousID(val string) attribute.KeyValue {\n\treturn SessionPreviousIDKey.String(val)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.24.0/doc.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Package semconv implements OpenTelemetry semantic conventions.\n//\n// OpenTelemetry semantic conventions are agreed standardized naming\n// patterns for OpenTelemetry things. This package represents the v1.24.0\n// version of the OpenTelemetry semantic conventions.\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.24.0\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.24.0/event.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Code generated from semantic convention specification. DO NOT EDIT.\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.24.0\"\n\nimport \"go.opentelemetry.io/otel/attribute\"\n\n// This event represents an occurrence of a lifecycle transition on the iOS\n// platform.\nconst (\n\t// IosStateKey is the attribute Key conforming to the \"ios.state\" semantic\n\t// conventions. It represents the this attribute represents the state the\n\t// application has transitioned into at the occurrence of the event.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Note: The iOS lifecycle states are defined in the [UIApplicationDelegate\n\t// documentation](https://developer.apple.com/documentation/uikit/uiapplicationdelegate#1656902),\n\t// and from which the `OS terminology` column values are derived.\n\tIosStateKey = attribute.Key(\"ios.state\")\n)\n\nvar (\n\t// The app has become `active`. Associated with UIKit notification `applicationDidBecomeActive`\n\tIosStateActive = IosStateKey.String(\"active\")\n\t// The app is now `inactive`. Associated with UIKit notification `applicationWillResignActive`\n\tIosStateInactive = IosStateKey.String(\"inactive\")\n\t// The app is now in the background. This value is associated with UIKit notification `applicationDidEnterBackground`\n\tIosStateBackground = IosStateKey.String(\"background\")\n\t// The app is now in the foreground. This value is associated with UIKit notification `applicationWillEnterForeground`\n\tIosStateForeground = IosStateKey.String(\"foreground\")\n\t// The app is about to terminate. Associated with UIKit notification `applicationWillTerminate`\n\tIosStateTerminate = IosStateKey.String(\"terminate\")\n)\n\n// This event represents an occurrence of a lifecycle transition on the Android\n// platform.\nconst (\n\t// AndroidStateKey is the attribute Key conforming to the \"android.state\"\n\t// semantic conventions. It represents the this attribute represents the\n\t// state the application has transitioned into at the occurrence of the\n\t// event.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Note: The Android lifecycle states are defined in [Activity lifecycle\n\t// callbacks](https://developer.android.com/guide/components/activities/activity-lifecycle#lc),\n\t// and from which the `OS identifiers` are derived.\n\tAndroidStateKey = attribute.Key(\"android.state\")\n)\n\nvar (\n\t// Any time before Activity.onResume() or, if the app has no Activity, Context.startService() has been called in the app for the first time\n\tAndroidStateCreated = AndroidStateKey.String(\"created\")\n\t// Any time after Activity.onPause() or, if the app has no Activity, Context.stopService() has been called when the app was in the foreground state\n\tAndroidStateBackground = AndroidStateKey.String(\"background\")\n\t// Any time after Activity.onResume() or, if the app has no Activity, Context.startService() has been called when the app was in either the created or background states\n\tAndroidStateForeground = AndroidStateKey.String(\"foreground\")\n)\n\n// This semantic convention defines the attributes used to represent a feature\n// flag evaluation as an event.\nconst (\n\t// FeatureFlagKeyKey is the attribute Key conforming to the\n\t// \"feature_flag.key\" semantic conventions. It represents the unique\n\t// identifier of the feature flag.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'logo-color'\n\tFeatureFlagKeyKey = attribute.Key(\"feature_flag.key\")\n\n\t// FeatureFlagProviderNameKey is the attribute Key conforming to the\n\t// \"feature_flag.provider_name\" semantic conventions. It represents the\n\t// name of the service provider that performs the flag evaluation.\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended\n\t// Stability: experimental\n\t// Examples: 'Flag Manager'\n\tFeatureFlagProviderNameKey = attribute.Key(\"feature_flag.provider_name\")\n\n\t// FeatureFlagVariantKey is the attribute Key conforming to the\n\t// \"feature_flag.variant\" semantic conventions. It represents the sHOULD be\n\t// a semantic identifier for a value. If one is unavailable, a stringified\n\t// version of the value can be used.\n\t//\n\t// Type: string\n\t// RequirementLevel: Recommended\n\t// Stability: experimental\n\t// Examples: 'red', 'true', 'on'\n\t// Note: A semantic identifier, commonly referred to as a variant, provides\n\t// a means\n\t// for referring to a value without including the value itself. This can\n\t// provide additional context for understanding the meaning behind a value.\n\t// For example, the variant `red` maybe be used for the value `#c05543`.\n\t//\n\t// A stringified version of the value can be used in situations where a\n\t// semantic identifier is unavailable. String representation of the value\n\t// should be determined by the implementer.\n\tFeatureFlagVariantKey = attribute.Key(\"feature_flag.variant\")\n)\n\n// FeatureFlagKey returns an attribute KeyValue conforming to the\n// \"feature_flag.key\" semantic conventions. It represents the unique identifier\n// of the feature flag.\nfunc FeatureFlagKey(val string) attribute.KeyValue {\n\treturn FeatureFlagKeyKey.String(val)\n}\n\n// FeatureFlagProviderName returns an attribute KeyValue conforming to the\n// \"feature_flag.provider_name\" semantic conventions. It represents the name of\n// the service provider that performs the flag evaluation.\nfunc FeatureFlagProviderName(val string) attribute.KeyValue {\n\treturn FeatureFlagProviderNameKey.String(val)\n}\n\n// FeatureFlagVariant returns an attribute KeyValue conforming to the\n// \"feature_flag.variant\" semantic conventions. It represents the sHOULD be a\n// semantic identifier for a value. If one is unavailable, a stringified\n// version of the value can be used.\nfunc FeatureFlagVariant(val string) attribute.KeyValue {\n\treturn FeatureFlagVariantKey.String(val)\n}\n\n// RPC received/sent message.\nconst (\n\t// MessageCompressedSizeKey is the attribute Key conforming to the\n\t// \"message.compressed_size\" semantic conventions. It represents the\n\t// compressed size of the message in bytes.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tMessageCompressedSizeKey = attribute.Key(\"message.compressed_size\")\n\n\t// MessageIDKey is the attribute Key conforming to the \"message.id\"\n\t// semantic conventions. It represents the mUST be calculated as two\n\t// different counters starting from `1` one for sent messages and one for\n\t// received message.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Note: This way we guarantee that the values will be consistent between\n\t// different implementations.\n\tMessageIDKey = attribute.Key(\"message.id\")\n\n\t// MessageTypeKey is the attribute Key conforming to the \"message.type\"\n\t// semantic conventions. It represents the whether this is a received or\n\t// sent message.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tMessageTypeKey = attribute.Key(\"message.type\")\n\n\t// MessageUncompressedSizeKey is the attribute Key conforming to the\n\t// \"message.uncompressed_size\" semantic conventions. It represents the\n\t// uncompressed size of the message in bytes.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tMessageUncompressedSizeKey = attribute.Key(\"message.uncompressed_size\")\n)\n\nvar (\n\t// sent\n\tMessageTypeSent = MessageTypeKey.String(\"SENT\")\n\t// received\n\tMessageTypeReceived = MessageTypeKey.String(\"RECEIVED\")\n)\n\n// MessageCompressedSize returns an attribute KeyValue conforming to the\n// \"message.compressed_size\" semantic conventions. It represents the compressed\n// size of the message in bytes.\nfunc MessageCompressedSize(val int) attribute.KeyValue {\n\treturn MessageCompressedSizeKey.Int(val)\n}\n\n// MessageID returns an attribute KeyValue conforming to the \"message.id\"\n// semantic conventions. It represents the mUST be calculated as two different\n// counters starting from `1` one for sent messages and one for received\n// message.\nfunc MessageID(val int) attribute.KeyValue {\n\treturn MessageIDKey.Int(val)\n}\n\n// MessageUncompressedSize returns an attribute KeyValue conforming to the\n// \"message.uncompressed_size\" semantic conventions. It represents the\n// uncompressed size of the message in bytes.\nfunc MessageUncompressedSize(val int) attribute.KeyValue {\n\treturn MessageUncompressedSizeKey.Int(val)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.24.0/exception.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.24.0\"\n\nconst (\n\t// ExceptionEventName is the name of the Span event representing an exception.\n\tExceptionEventName = \"exception\"\n)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.24.0/metric.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Code generated from semantic convention specification. DO NOT EDIT.\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.24.0\"\n\nconst (\n\n\t// DBClientConnectionsUsage is the metric conforming to the\n\t// \"db.client.connections.usage\" semantic conventions. It represents the number\n\t// of connections that are currently in state described by the `state`\n\t// attribute.\n\t// Instrument: updowncounter\n\t// Unit: {connection}\n\t// Stability: Experimental\n\tDBClientConnectionsUsageName        = \"db.client.connections.usage\"\n\tDBClientConnectionsUsageUnit        = \"{connection}\"\n\tDBClientConnectionsUsageDescription = \"The number of connections that are currently in state described by the `state` attribute\"\n\n\t// DBClientConnectionsIdleMax is the metric conforming to the\n\t// \"db.client.connections.idle.max\" semantic conventions. It represents the\n\t// maximum number of idle open connections allowed.\n\t// Instrument: updowncounter\n\t// Unit: {connection}\n\t// Stability: Experimental\n\tDBClientConnectionsIdleMaxName        = \"db.client.connections.idle.max\"\n\tDBClientConnectionsIdleMaxUnit        = \"{connection}\"\n\tDBClientConnectionsIdleMaxDescription = \"The maximum number of idle open connections allowed\"\n\n\t// DBClientConnectionsIdleMin is the metric conforming to the\n\t// \"db.client.connections.idle.min\" semantic conventions. It represents the\n\t// minimum number of idle open connections allowed.\n\t// Instrument: updowncounter\n\t// Unit: {connection}\n\t// Stability: Experimental\n\tDBClientConnectionsIdleMinName        = \"db.client.connections.idle.min\"\n\tDBClientConnectionsIdleMinUnit        = \"{connection}\"\n\tDBClientConnectionsIdleMinDescription = \"The minimum number of idle open connections allowed\"\n\n\t// DBClientConnectionsMax is the metric conforming to the\n\t// \"db.client.connections.max\" semantic conventions. It represents the maximum\n\t// number of open connections allowed.\n\t// Instrument: updowncounter\n\t// Unit: {connection}\n\t// Stability: Experimental\n\tDBClientConnectionsMaxName        = \"db.client.connections.max\"\n\tDBClientConnectionsMaxUnit        = \"{connection}\"\n\tDBClientConnectionsMaxDescription = \"The maximum number of open connections allowed\"\n\n\t// DBClientConnectionsPendingRequests is the metric conforming to the\n\t// \"db.client.connections.pending_requests\" semantic conventions. It represents\n\t// the number of pending requests for an open connection, cumulative for the\n\t// entire pool.\n\t// Instrument: updowncounter\n\t// Unit: {request}\n\t// Stability: Experimental\n\tDBClientConnectionsPendingRequestsName        = \"db.client.connections.pending_requests\"\n\tDBClientConnectionsPendingRequestsUnit        = \"{request}\"\n\tDBClientConnectionsPendingRequestsDescription = \"The number of pending requests for an open connection, cumulative for the entire pool\"\n\n\t// DBClientConnectionsTimeouts is the metric conforming to the\n\t// \"db.client.connections.timeouts\" semantic conventions. It represents the\n\t// number of connection timeouts that have occurred trying to obtain a\n\t// connection from the pool.\n\t// Instrument: counter\n\t// Unit: {timeout}\n\t// Stability: Experimental\n\tDBClientConnectionsTimeoutsName        = \"db.client.connections.timeouts\"\n\tDBClientConnectionsTimeoutsUnit        = \"{timeout}\"\n\tDBClientConnectionsTimeoutsDescription = \"The number of connection timeouts that have occurred trying to obtain a connection from the pool\"\n\n\t// DBClientConnectionsCreateTime is the metric conforming to the\n\t// \"db.client.connections.create_time\" semantic conventions. It represents the\n\t// time it took to create a new connection.\n\t// Instrument: histogram\n\t// Unit: ms\n\t// Stability: Experimental\n\tDBClientConnectionsCreateTimeName        = \"db.client.connections.create_time\"\n\tDBClientConnectionsCreateTimeUnit        = \"ms\"\n\tDBClientConnectionsCreateTimeDescription = \"The time it took to create a new connection\"\n\n\t// DBClientConnectionsWaitTime is the metric conforming to the\n\t// \"db.client.connections.wait_time\" semantic conventions. It represents the\n\t// time it took to obtain an open connection from the pool.\n\t// Instrument: histogram\n\t// Unit: ms\n\t// Stability: Experimental\n\tDBClientConnectionsWaitTimeName        = \"db.client.connections.wait_time\"\n\tDBClientConnectionsWaitTimeUnit        = \"ms\"\n\tDBClientConnectionsWaitTimeDescription = \"The time it took to obtain an open connection from the pool\"\n\n\t// DBClientConnectionsUseTime is the metric conforming to the\n\t// \"db.client.connections.use_time\" semantic conventions. It represents the\n\t// time between borrowing a connection and returning it to the pool.\n\t// Instrument: histogram\n\t// Unit: ms\n\t// Stability: Experimental\n\tDBClientConnectionsUseTimeName        = \"db.client.connections.use_time\"\n\tDBClientConnectionsUseTimeUnit        = \"ms\"\n\tDBClientConnectionsUseTimeDescription = \"The time between borrowing a connection and returning it to the pool\"\n\n\t// AspnetcoreRoutingMatchAttempts is the metric conforming to the\n\t// \"aspnetcore.routing.match_attempts\" semantic conventions. It represents the\n\t// number of requests that were attempted to be matched to an endpoint.\n\t// Instrument: counter\n\t// Unit: {match_attempt}\n\t// Stability: Experimental\n\tAspnetcoreRoutingMatchAttemptsName        = \"aspnetcore.routing.match_attempts\"\n\tAspnetcoreRoutingMatchAttemptsUnit        = \"{match_attempt}\"\n\tAspnetcoreRoutingMatchAttemptsDescription = \"Number of requests that were attempted to be matched to an endpoint.\"\n\n\t// AspnetcoreDiagnosticsExceptions is the metric conforming to the\n\t// \"aspnetcore.diagnostics.exceptions\" semantic conventions. It represents the\n\t// number of exceptions caught by exception handling middleware.\n\t// Instrument: counter\n\t// Unit: {exception}\n\t// Stability: Experimental\n\tAspnetcoreDiagnosticsExceptionsName        = \"aspnetcore.diagnostics.exceptions\"\n\tAspnetcoreDiagnosticsExceptionsUnit        = \"{exception}\"\n\tAspnetcoreDiagnosticsExceptionsDescription = \"Number of exceptions caught by exception handling middleware.\"\n\n\t// AspnetcoreRateLimitingActiveRequestLeases is the metric conforming to the\n\t// \"aspnetcore.rate_limiting.active_request_leases\" semantic conventions. It\n\t// represents the number of requests that are currently active on the server\n\t// that hold a rate limiting lease.\n\t// Instrument: updowncounter\n\t// Unit: {request}\n\t// Stability: Experimental\n\tAspnetcoreRateLimitingActiveRequestLeasesName        = \"aspnetcore.rate_limiting.active_request_leases\"\n\tAspnetcoreRateLimitingActiveRequestLeasesUnit        = \"{request}\"\n\tAspnetcoreRateLimitingActiveRequestLeasesDescription = \"Number of requests that are currently active on the server that hold a rate limiting lease.\"\n\n\t// AspnetcoreRateLimitingRequestLeaseDuration is the metric conforming to the\n\t// \"aspnetcore.rate_limiting.request_lease.duration\" semantic conventions. It\n\t// represents the duration of rate limiting lease held by requests on the\n\t// server.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tAspnetcoreRateLimitingRequestLeaseDurationName        = \"aspnetcore.rate_limiting.request_lease.duration\"\n\tAspnetcoreRateLimitingRequestLeaseDurationUnit        = \"s\"\n\tAspnetcoreRateLimitingRequestLeaseDurationDescription = \"The duration of rate limiting lease held by requests on the server.\"\n\n\t// AspnetcoreRateLimitingRequestTimeInQueue is the metric conforming to the\n\t// \"aspnetcore.rate_limiting.request.time_in_queue\" semantic conventions. It\n\t// represents the time the request spent in a queue waiting to acquire a rate\n\t// limiting lease.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tAspnetcoreRateLimitingRequestTimeInQueueName        = \"aspnetcore.rate_limiting.request.time_in_queue\"\n\tAspnetcoreRateLimitingRequestTimeInQueueUnit        = \"s\"\n\tAspnetcoreRateLimitingRequestTimeInQueueDescription = \"The time the request spent in a queue waiting to acquire a rate limiting lease.\"\n\n\t// AspnetcoreRateLimitingQueuedRequests is the metric conforming to the\n\t// \"aspnetcore.rate_limiting.queued_requests\" semantic conventions. It\n\t// represents the number of requests that are currently queued, waiting to\n\t// acquire a rate limiting lease.\n\t// Instrument: updowncounter\n\t// Unit: {request}\n\t// Stability: Experimental\n\tAspnetcoreRateLimitingQueuedRequestsName        = \"aspnetcore.rate_limiting.queued_requests\"\n\tAspnetcoreRateLimitingQueuedRequestsUnit        = \"{request}\"\n\tAspnetcoreRateLimitingQueuedRequestsDescription = \"Number of requests that are currently queued, waiting to acquire a rate limiting lease.\"\n\n\t// AspnetcoreRateLimitingRequests is the metric conforming to the\n\t// \"aspnetcore.rate_limiting.requests\" semantic conventions. It represents the\n\t// number of requests that tried to acquire a rate limiting lease.\n\t// Instrument: counter\n\t// Unit: {request}\n\t// Stability: Experimental\n\tAspnetcoreRateLimitingRequestsName        = \"aspnetcore.rate_limiting.requests\"\n\tAspnetcoreRateLimitingRequestsUnit        = \"{request}\"\n\tAspnetcoreRateLimitingRequestsDescription = \"Number of requests that tried to acquire a rate limiting lease.\"\n\n\t// DNSLookupDuration is the metric conforming to the \"dns.lookup.duration\"\n\t// semantic conventions. It represents the measures the time taken to perform a\n\t// DNS lookup.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tDNSLookupDurationName        = \"dns.lookup.duration\"\n\tDNSLookupDurationUnit        = \"s\"\n\tDNSLookupDurationDescription = \"Measures the time taken to perform a DNS lookup.\"\n\n\t// HTTPClientOpenConnections is the metric conforming to the\n\t// \"http.client.open_connections\" semantic conventions. It represents the\n\t// number of outbound HTTP connections that are currently active or idle on the\n\t// client.\n\t// Instrument: updowncounter\n\t// Unit: {connection}\n\t// Stability: Experimental\n\tHTTPClientOpenConnectionsName        = \"http.client.open_connections\"\n\tHTTPClientOpenConnectionsUnit        = \"{connection}\"\n\tHTTPClientOpenConnectionsDescription = \"Number of outbound HTTP connections that are currently active or idle on the client.\"\n\n\t// HTTPClientConnectionDuration is the metric conforming to the\n\t// \"http.client.connection.duration\" semantic conventions. It represents the\n\t// duration of the successfully established outbound HTTP connections.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tHTTPClientConnectionDurationName        = \"http.client.connection.duration\"\n\tHTTPClientConnectionDurationUnit        = \"s\"\n\tHTTPClientConnectionDurationDescription = \"The duration of the successfully established outbound HTTP connections.\"\n\n\t// HTTPClientActiveRequests is the metric conforming to the\n\t// \"http.client.active_requests\" semantic conventions. It represents the number\n\t// of active HTTP requests.\n\t// Instrument: updowncounter\n\t// Unit: {request}\n\t// Stability: Experimental\n\tHTTPClientActiveRequestsName        = \"http.client.active_requests\"\n\tHTTPClientActiveRequestsUnit        = \"{request}\"\n\tHTTPClientActiveRequestsDescription = \"Number of active HTTP requests.\"\n\n\t// HTTPClientRequestTimeInQueue is the metric conforming to the\n\t// \"http.client.request.time_in_queue\" semantic conventions. It represents the\n\t// amount of time requests spent on a queue waiting for an available\n\t// connection.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tHTTPClientRequestTimeInQueueName        = \"http.client.request.time_in_queue\"\n\tHTTPClientRequestTimeInQueueUnit        = \"s\"\n\tHTTPClientRequestTimeInQueueDescription = \"The amount of time requests spent on a queue waiting for an available connection.\"\n\n\t// KestrelActiveConnections is the metric conforming to the\n\t// \"kestrel.active_connections\" semantic conventions. It represents the number\n\t// of connections that are currently active on the server.\n\t// Instrument: updowncounter\n\t// Unit: {connection}\n\t// Stability: Experimental\n\tKestrelActiveConnectionsName        = \"kestrel.active_connections\"\n\tKestrelActiveConnectionsUnit        = \"{connection}\"\n\tKestrelActiveConnectionsDescription = \"Number of connections that are currently active on the server.\"\n\n\t// KestrelConnectionDuration is the metric conforming to the\n\t// \"kestrel.connection.duration\" semantic conventions. It represents the\n\t// duration of connections on the server.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tKestrelConnectionDurationName        = \"kestrel.connection.duration\"\n\tKestrelConnectionDurationUnit        = \"s\"\n\tKestrelConnectionDurationDescription = \"The duration of connections on the server.\"\n\n\t// KestrelRejectedConnections is the metric conforming to the\n\t// \"kestrel.rejected_connections\" semantic conventions. It represents the\n\t// number of connections rejected by the server.\n\t// Instrument: counter\n\t// Unit: {connection}\n\t// Stability: Experimental\n\tKestrelRejectedConnectionsName        = \"kestrel.rejected_connections\"\n\tKestrelRejectedConnectionsUnit        = \"{connection}\"\n\tKestrelRejectedConnectionsDescription = \"Number of connections rejected by the server.\"\n\n\t// KestrelQueuedConnections is the metric conforming to the\n\t// \"kestrel.queued_connections\" semantic conventions. It represents the number\n\t// of connections that are currently queued and are waiting to start.\n\t// Instrument: updowncounter\n\t// Unit: {connection}\n\t// Stability: Experimental\n\tKestrelQueuedConnectionsName        = \"kestrel.queued_connections\"\n\tKestrelQueuedConnectionsUnit        = \"{connection}\"\n\tKestrelQueuedConnectionsDescription = \"Number of connections that are currently queued and are waiting to start.\"\n\n\t// KestrelQueuedRequests is the metric conforming to the\n\t// \"kestrel.queued_requests\" semantic conventions. It represents the number of\n\t// HTTP requests on multiplexed connections (HTTP/2 and HTTP/3) that are\n\t// currently queued and are waiting to start.\n\t// Instrument: updowncounter\n\t// Unit: {request}\n\t// Stability: Experimental\n\tKestrelQueuedRequestsName        = \"kestrel.queued_requests\"\n\tKestrelQueuedRequestsUnit        = \"{request}\"\n\tKestrelQueuedRequestsDescription = \"Number of HTTP requests on multiplexed connections (HTTP/2 and HTTP/3) that are currently queued and are waiting to start.\"\n\n\t// KestrelUpgradedConnections is the metric conforming to the\n\t// \"kestrel.upgraded_connections\" semantic conventions. It represents the\n\t// number of connections that are currently upgraded (WebSockets). .\n\t// Instrument: updowncounter\n\t// Unit: {connection}\n\t// Stability: Experimental\n\tKestrelUpgradedConnectionsName        = \"kestrel.upgraded_connections\"\n\tKestrelUpgradedConnectionsUnit        = \"{connection}\"\n\tKestrelUpgradedConnectionsDescription = \"Number of connections that are currently upgraded (WebSockets). .\"\n\n\t// KestrelTLSHandshakeDuration is the metric conforming to the\n\t// \"kestrel.tls_handshake.duration\" semantic conventions. It represents the\n\t// duration of TLS handshakes on the server.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tKestrelTLSHandshakeDurationName        = \"kestrel.tls_handshake.duration\"\n\tKestrelTLSHandshakeDurationUnit        = \"s\"\n\tKestrelTLSHandshakeDurationDescription = \"The duration of TLS handshakes on the server.\"\n\n\t// KestrelActiveTLSHandshakes is the metric conforming to the\n\t// \"kestrel.active_tls_handshakes\" semantic conventions. It represents the\n\t// number of TLS handshakes that are currently in progress on the server.\n\t// Instrument: updowncounter\n\t// Unit: {handshake}\n\t// Stability: Experimental\n\tKestrelActiveTLSHandshakesName        = \"kestrel.active_tls_handshakes\"\n\tKestrelActiveTLSHandshakesUnit        = \"{handshake}\"\n\tKestrelActiveTLSHandshakesDescription = \"Number of TLS handshakes that are currently in progress on the server.\"\n\n\t// SignalrServerConnectionDuration is the metric conforming to the\n\t// \"signalr.server.connection.duration\" semantic conventions. It represents the\n\t// duration of connections on the server.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tSignalrServerConnectionDurationName        = \"signalr.server.connection.duration\"\n\tSignalrServerConnectionDurationUnit        = \"s\"\n\tSignalrServerConnectionDurationDescription = \"The duration of connections on the server.\"\n\n\t// SignalrServerActiveConnections is the metric conforming to the\n\t// \"signalr.server.active_connections\" semantic conventions. It represents the\n\t// number of connections that are currently active on the server.\n\t// Instrument: updowncounter\n\t// Unit: {connection}\n\t// Stability: Experimental\n\tSignalrServerActiveConnectionsName        = \"signalr.server.active_connections\"\n\tSignalrServerActiveConnectionsUnit        = \"{connection}\"\n\tSignalrServerActiveConnectionsDescription = \"Number of connections that are currently active on the server.\"\n\n\t// FaaSInvokeDuration is the metric conforming to the \"faas.invoke_duration\"\n\t// semantic conventions. It represents the measures the duration of the\n\t// function's logic execution.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tFaaSInvokeDurationName        = \"faas.invoke_duration\"\n\tFaaSInvokeDurationUnit        = \"s\"\n\tFaaSInvokeDurationDescription = \"Measures the duration of the function's logic execution\"\n\n\t// FaaSInitDuration is the metric conforming to the \"faas.init_duration\"\n\t// semantic conventions. It represents the measures the duration of the\n\t// function's initialization, such as a cold start.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tFaaSInitDurationName        = \"faas.init_duration\"\n\tFaaSInitDurationUnit        = \"s\"\n\tFaaSInitDurationDescription = \"Measures the duration of the function's initialization, such as a cold start\"\n\n\t// FaaSColdstarts is the metric conforming to the \"faas.coldstarts\" semantic\n\t// conventions. It represents the number of invocation cold starts.\n\t// Instrument: counter\n\t// Unit: {coldstart}\n\t// Stability: Experimental\n\tFaaSColdstartsName        = \"faas.coldstarts\"\n\tFaaSColdstartsUnit        = \"{coldstart}\"\n\tFaaSColdstartsDescription = \"Number of invocation cold starts\"\n\n\t// FaaSErrors is the metric conforming to the \"faas.errors\" semantic\n\t// conventions. It represents the number of invocation errors.\n\t// Instrument: counter\n\t// Unit: {error}\n\t// Stability: Experimental\n\tFaaSErrorsName        = \"faas.errors\"\n\tFaaSErrorsUnit        = \"{error}\"\n\tFaaSErrorsDescription = \"Number of invocation errors\"\n\n\t// FaaSInvocations is the metric conforming to the \"faas.invocations\" semantic\n\t// conventions. It represents the number of successful invocations.\n\t// Instrument: counter\n\t// Unit: {invocation}\n\t// Stability: Experimental\n\tFaaSInvocationsName        = \"faas.invocations\"\n\tFaaSInvocationsUnit        = \"{invocation}\"\n\tFaaSInvocationsDescription = \"Number of successful invocations\"\n\n\t// FaaSTimeouts is the metric conforming to the \"faas.timeouts\" semantic\n\t// conventions. It represents the number of invocation timeouts.\n\t// Instrument: counter\n\t// Unit: {timeout}\n\t// Stability: Experimental\n\tFaaSTimeoutsName        = \"faas.timeouts\"\n\tFaaSTimeoutsUnit        = \"{timeout}\"\n\tFaaSTimeoutsDescription = \"Number of invocation timeouts\"\n\n\t// FaaSMemUsage is the metric conforming to the \"faas.mem_usage\" semantic\n\t// conventions. It represents the distribution of max memory usage per\n\t// invocation.\n\t// Instrument: histogram\n\t// Unit: By\n\t// Stability: Experimental\n\tFaaSMemUsageName        = \"faas.mem_usage\"\n\tFaaSMemUsageUnit        = \"By\"\n\tFaaSMemUsageDescription = \"Distribution of max memory usage per invocation\"\n\n\t// FaaSCPUUsage is the metric conforming to the \"faas.cpu_usage\" semantic\n\t// conventions. It represents the distribution of CPU usage per invocation.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tFaaSCPUUsageName        = \"faas.cpu_usage\"\n\tFaaSCPUUsageUnit        = \"s\"\n\tFaaSCPUUsageDescription = \"Distribution of CPU usage per invocation\"\n\n\t// FaaSNetIo is the metric conforming to the \"faas.net_io\" semantic\n\t// conventions. It represents the distribution of net I/O usage per invocation.\n\t// Instrument: histogram\n\t// Unit: By\n\t// Stability: Experimental\n\tFaaSNetIoName        = \"faas.net_io\"\n\tFaaSNetIoUnit        = \"By\"\n\tFaaSNetIoDescription = \"Distribution of net I/O usage per invocation\"\n\n\t// HTTPServerRequestDuration is the metric conforming to the\n\t// \"http.server.request.duration\" semantic conventions. It represents the\n\t// duration of HTTP server requests.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Stable\n\tHTTPServerRequestDurationName        = \"http.server.request.duration\"\n\tHTTPServerRequestDurationUnit        = \"s\"\n\tHTTPServerRequestDurationDescription = \"Duration of HTTP server requests.\"\n\n\t// HTTPServerActiveRequests is the metric conforming to the\n\t// \"http.server.active_requests\" semantic conventions. It represents the number\n\t// of active HTTP server requests.\n\t// Instrument: updowncounter\n\t// Unit: {request}\n\t// Stability: Experimental\n\tHTTPServerActiveRequestsName        = \"http.server.active_requests\"\n\tHTTPServerActiveRequestsUnit        = \"{request}\"\n\tHTTPServerActiveRequestsDescription = \"Number of active HTTP server requests.\"\n\n\t// HTTPServerRequestBodySize is the metric conforming to the\n\t// \"http.server.request.body.size\" semantic conventions. It represents the size\n\t// of HTTP server request bodies.\n\t// Instrument: histogram\n\t// Unit: By\n\t// Stability: Experimental\n\tHTTPServerRequestBodySizeName        = \"http.server.request.body.size\"\n\tHTTPServerRequestBodySizeUnit        = \"By\"\n\tHTTPServerRequestBodySizeDescription = \"Size of HTTP server request bodies.\"\n\n\t// HTTPServerResponseBodySize is the metric conforming to the\n\t// \"http.server.response.body.size\" semantic conventions. It represents the\n\t// size of HTTP server response bodies.\n\t// Instrument: histogram\n\t// Unit: By\n\t// Stability: Experimental\n\tHTTPServerResponseBodySizeName        = \"http.server.response.body.size\"\n\tHTTPServerResponseBodySizeUnit        = \"By\"\n\tHTTPServerResponseBodySizeDescription = \"Size of HTTP server response bodies.\"\n\n\t// HTTPClientRequestDuration is the metric conforming to the\n\t// \"http.client.request.duration\" semantic conventions. It represents the\n\t// duration of HTTP client requests.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Stable\n\tHTTPClientRequestDurationName        = \"http.client.request.duration\"\n\tHTTPClientRequestDurationUnit        = \"s\"\n\tHTTPClientRequestDurationDescription = \"Duration of HTTP client requests.\"\n\n\t// HTTPClientRequestBodySize is the metric conforming to the\n\t// \"http.client.request.body.size\" semantic conventions. It represents the size\n\t// of HTTP client request bodies.\n\t// Instrument: histogram\n\t// Unit: By\n\t// Stability: Experimental\n\tHTTPClientRequestBodySizeName        = \"http.client.request.body.size\"\n\tHTTPClientRequestBodySizeUnit        = \"By\"\n\tHTTPClientRequestBodySizeDescription = \"Size of HTTP client request bodies.\"\n\n\t// HTTPClientResponseBodySize is the metric conforming to the\n\t// \"http.client.response.body.size\" semantic conventions. It represents the\n\t// size of HTTP client response bodies.\n\t// Instrument: histogram\n\t// Unit: By\n\t// Stability: Experimental\n\tHTTPClientResponseBodySizeName        = \"http.client.response.body.size\"\n\tHTTPClientResponseBodySizeUnit        = \"By\"\n\tHTTPClientResponseBodySizeDescription = \"Size of HTTP client response bodies.\"\n\n\t// JvmMemoryInit is the metric conforming to the \"jvm.memory.init\" semantic\n\t// conventions. It represents the measure of initial memory requested.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Experimental\n\tJvmMemoryInitName        = \"jvm.memory.init\"\n\tJvmMemoryInitUnit        = \"By\"\n\tJvmMemoryInitDescription = \"Measure of initial memory requested.\"\n\n\t// JvmSystemCPUUtilization is the metric conforming to the\n\t// \"jvm.system.cpu.utilization\" semantic conventions. It represents the recent\n\t// CPU utilization for the whole system as reported by the JVM.\n\t// Instrument: gauge\n\t// Unit: 1\n\t// Stability: Experimental\n\tJvmSystemCPUUtilizationName        = \"jvm.system.cpu.utilization\"\n\tJvmSystemCPUUtilizationUnit        = \"1\"\n\tJvmSystemCPUUtilizationDescription = \"Recent CPU utilization for the whole system as reported by the JVM.\"\n\n\t// JvmSystemCPULoad1m is the metric conforming to the \"jvm.system.cpu.load_1m\"\n\t// semantic conventions. It represents the average CPU load of the whole system\n\t// for the last minute as reported by the JVM.\n\t// Instrument: gauge\n\t// Unit: {run_queue_item}\n\t// Stability: Experimental\n\tJvmSystemCPULoad1mName        = \"jvm.system.cpu.load_1m\"\n\tJvmSystemCPULoad1mUnit        = \"{run_queue_item}\"\n\tJvmSystemCPULoad1mDescription = \"Average CPU load of the whole system for the last minute as reported by the JVM.\"\n\n\t// JvmBufferMemoryUsage is the metric conforming to the\n\t// \"jvm.buffer.memory.usage\" semantic conventions. It represents the measure of\n\t// memory used by buffers.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Experimental\n\tJvmBufferMemoryUsageName        = \"jvm.buffer.memory.usage\"\n\tJvmBufferMemoryUsageUnit        = \"By\"\n\tJvmBufferMemoryUsageDescription = \"Measure of memory used by buffers.\"\n\n\t// JvmBufferMemoryLimit is the metric conforming to the\n\t// \"jvm.buffer.memory.limit\" semantic conventions. It represents the measure of\n\t// total memory capacity of buffers.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Experimental\n\tJvmBufferMemoryLimitName        = \"jvm.buffer.memory.limit\"\n\tJvmBufferMemoryLimitUnit        = \"By\"\n\tJvmBufferMemoryLimitDescription = \"Measure of total memory capacity of buffers.\"\n\n\t// JvmBufferCount is the metric conforming to the \"jvm.buffer.count\" semantic\n\t// conventions. It represents the number of buffers in the pool.\n\t// Instrument: updowncounter\n\t// Unit: {buffer}\n\t// Stability: Experimental\n\tJvmBufferCountName        = \"jvm.buffer.count\"\n\tJvmBufferCountUnit        = \"{buffer}\"\n\tJvmBufferCountDescription = \"Number of buffers in the pool.\"\n\n\t// JvmMemoryUsed is the metric conforming to the \"jvm.memory.used\" semantic\n\t// conventions. It represents the measure of memory used.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Stable\n\tJvmMemoryUsedName        = \"jvm.memory.used\"\n\tJvmMemoryUsedUnit        = \"By\"\n\tJvmMemoryUsedDescription = \"Measure of memory used.\"\n\n\t// JvmMemoryCommitted is the metric conforming to the \"jvm.memory.committed\"\n\t// semantic conventions. It represents the measure of memory committed.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Stable\n\tJvmMemoryCommittedName        = \"jvm.memory.committed\"\n\tJvmMemoryCommittedUnit        = \"By\"\n\tJvmMemoryCommittedDescription = \"Measure of memory committed.\"\n\n\t// JvmMemoryLimit is the metric conforming to the \"jvm.memory.limit\" semantic\n\t// conventions. It represents the measure of max obtainable memory.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Stable\n\tJvmMemoryLimitName        = \"jvm.memory.limit\"\n\tJvmMemoryLimitUnit        = \"By\"\n\tJvmMemoryLimitDescription = \"Measure of max obtainable memory.\"\n\n\t// JvmMemoryUsedAfterLastGc is the metric conforming to the\n\t// \"jvm.memory.used_after_last_gc\" semantic conventions. It represents the\n\t// measure of memory used, as measured after the most recent garbage collection\n\t// event on this pool.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Stable\n\tJvmMemoryUsedAfterLastGcName        = \"jvm.memory.used_after_last_gc\"\n\tJvmMemoryUsedAfterLastGcUnit        = \"By\"\n\tJvmMemoryUsedAfterLastGcDescription = \"Measure of memory used, as measured after the most recent garbage collection event on this pool.\"\n\n\t// JvmGcDuration is the metric conforming to the \"jvm.gc.duration\" semantic\n\t// conventions. It represents the duration of JVM garbage collection actions.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Stable\n\tJvmGcDurationName        = \"jvm.gc.duration\"\n\tJvmGcDurationUnit        = \"s\"\n\tJvmGcDurationDescription = \"Duration of JVM garbage collection actions.\"\n\n\t// JvmThreadCount is the metric conforming to the \"jvm.thread.count\" semantic\n\t// conventions. It represents the number of executing platform threads.\n\t// Instrument: updowncounter\n\t// Unit: {thread}\n\t// Stability: Stable\n\tJvmThreadCountName        = \"jvm.thread.count\"\n\tJvmThreadCountUnit        = \"{thread}\"\n\tJvmThreadCountDescription = \"Number of executing platform threads.\"\n\n\t// JvmClassLoaded is the metric conforming to the \"jvm.class.loaded\" semantic\n\t// conventions. It represents the number of classes loaded since JVM start.\n\t// Instrument: counter\n\t// Unit: {class}\n\t// Stability: Stable\n\tJvmClassLoadedName        = \"jvm.class.loaded\"\n\tJvmClassLoadedUnit        = \"{class}\"\n\tJvmClassLoadedDescription = \"Number of classes loaded since JVM start.\"\n\n\t// JvmClassUnloaded is the metric conforming to the \"jvm.class.unloaded\"\n\t// semantic conventions. It represents the number of classes unloaded since JVM\n\t// start.\n\t// Instrument: counter\n\t// Unit: {class}\n\t// Stability: Stable\n\tJvmClassUnloadedName        = \"jvm.class.unloaded\"\n\tJvmClassUnloadedUnit        = \"{class}\"\n\tJvmClassUnloadedDescription = \"Number of classes unloaded since JVM start.\"\n\n\t// JvmClassCount is the metric conforming to the \"jvm.class.count\" semantic\n\t// conventions. It represents the number of classes currently loaded.\n\t// Instrument: updowncounter\n\t// Unit: {class}\n\t// Stability: Stable\n\tJvmClassCountName        = \"jvm.class.count\"\n\tJvmClassCountUnit        = \"{class}\"\n\tJvmClassCountDescription = \"Number of classes currently loaded.\"\n\n\t// JvmCPUCount is the metric conforming to the \"jvm.cpu.count\" semantic\n\t// conventions. It represents the number of processors available to the Java\n\t// virtual machine.\n\t// Instrument: updowncounter\n\t// Unit: {cpu}\n\t// Stability: Stable\n\tJvmCPUCountName        = \"jvm.cpu.count\"\n\tJvmCPUCountUnit        = \"{cpu}\"\n\tJvmCPUCountDescription = \"Number of processors available to the Java virtual machine.\"\n\n\t// JvmCPUTime is the metric conforming to the \"jvm.cpu.time\" semantic\n\t// conventions. It represents the cPU time used by the process as reported by\n\t// the JVM.\n\t// Instrument: counter\n\t// Unit: s\n\t// Stability: Stable\n\tJvmCPUTimeName        = \"jvm.cpu.time\"\n\tJvmCPUTimeUnit        = \"s\"\n\tJvmCPUTimeDescription = \"CPU time used by the process as reported by the JVM.\"\n\n\t// JvmCPURecentUtilization is the metric conforming to the\n\t// \"jvm.cpu.recent_utilization\" semantic conventions. It represents the recent\n\t// CPU utilization for the process as reported by the JVM.\n\t// Instrument: gauge\n\t// Unit: 1\n\t// Stability: Stable\n\tJvmCPURecentUtilizationName        = \"jvm.cpu.recent_utilization\"\n\tJvmCPURecentUtilizationUnit        = \"1\"\n\tJvmCPURecentUtilizationDescription = \"Recent CPU utilization for the process as reported by the JVM.\"\n\n\t// MessagingPublishDuration is the metric conforming to the\n\t// \"messaging.publish.duration\" semantic conventions. It represents the\n\t// measures the duration of publish operation.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tMessagingPublishDurationName        = \"messaging.publish.duration\"\n\tMessagingPublishDurationUnit        = \"s\"\n\tMessagingPublishDurationDescription = \"Measures the duration of publish operation.\"\n\n\t// MessagingReceiveDuration is the metric conforming to the\n\t// \"messaging.receive.duration\" semantic conventions. It represents the\n\t// measures the duration of receive operation.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tMessagingReceiveDurationName        = \"messaging.receive.duration\"\n\tMessagingReceiveDurationUnit        = \"s\"\n\tMessagingReceiveDurationDescription = \"Measures the duration of receive operation.\"\n\n\t// MessagingDeliverDuration is the metric conforming to the\n\t// \"messaging.deliver.duration\" semantic conventions. It represents the\n\t// measures the duration of deliver operation.\n\t// Instrument: histogram\n\t// Unit: s\n\t// Stability: Experimental\n\tMessagingDeliverDurationName        = \"messaging.deliver.duration\"\n\tMessagingDeliverDurationUnit        = \"s\"\n\tMessagingDeliverDurationDescription = \"Measures the duration of deliver operation.\"\n\n\t// MessagingPublishMessages is the metric conforming to the\n\t// \"messaging.publish.messages\" semantic conventions. It represents the\n\t// measures the number of published messages.\n\t// Instrument: counter\n\t// Unit: {message}\n\t// Stability: Experimental\n\tMessagingPublishMessagesName        = \"messaging.publish.messages\"\n\tMessagingPublishMessagesUnit        = \"{message}\"\n\tMessagingPublishMessagesDescription = \"Measures the number of published messages.\"\n\n\t// MessagingReceiveMessages is the metric conforming to the\n\t// \"messaging.receive.messages\" semantic conventions. It represents the\n\t// measures the number of received messages.\n\t// Instrument: counter\n\t// Unit: {message}\n\t// Stability: Experimental\n\tMessagingReceiveMessagesName        = \"messaging.receive.messages\"\n\tMessagingReceiveMessagesUnit        = \"{message}\"\n\tMessagingReceiveMessagesDescription = \"Measures the number of received messages.\"\n\n\t// MessagingDeliverMessages is the metric conforming to the\n\t// \"messaging.deliver.messages\" semantic conventions. It represents the\n\t// measures the number of delivered messages.\n\t// Instrument: counter\n\t// Unit: {message}\n\t// Stability: Experimental\n\tMessagingDeliverMessagesName        = \"messaging.deliver.messages\"\n\tMessagingDeliverMessagesUnit        = \"{message}\"\n\tMessagingDeliverMessagesDescription = \"Measures the number of delivered messages.\"\n\n\t// RPCServerDuration is the metric conforming to the \"rpc.server.duration\"\n\t// semantic conventions. It represents the measures the duration of inbound\n\t// RPC.\n\t// Instrument: histogram\n\t// Unit: ms\n\t// Stability: Experimental\n\tRPCServerDurationName        = \"rpc.server.duration\"\n\tRPCServerDurationUnit        = \"ms\"\n\tRPCServerDurationDescription = \"Measures the duration of inbound RPC.\"\n\n\t// RPCServerRequestSize is the metric conforming to the\n\t// \"rpc.server.request.size\" semantic conventions. It represents the measures\n\t// the size of RPC request messages (uncompressed).\n\t// Instrument: histogram\n\t// Unit: By\n\t// Stability: Experimental\n\tRPCServerRequestSizeName        = \"rpc.server.request.size\"\n\tRPCServerRequestSizeUnit        = \"By\"\n\tRPCServerRequestSizeDescription = \"Measures the size of RPC request messages (uncompressed).\"\n\n\t// RPCServerResponseSize is the metric conforming to the\n\t// \"rpc.server.response.size\" semantic conventions. It represents the measures\n\t// the size of RPC response messages (uncompressed).\n\t// Instrument: histogram\n\t// Unit: By\n\t// Stability: Experimental\n\tRPCServerResponseSizeName        = \"rpc.server.response.size\"\n\tRPCServerResponseSizeUnit        = \"By\"\n\tRPCServerResponseSizeDescription = \"Measures the size of RPC response messages (uncompressed).\"\n\n\t// RPCServerRequestsPerRPC is the metric conforming to the\n\t// \"rpc.server.requests_per_rpc\" semantic conventions. It represents the\n\t// measures the number of messages received per RPC.\n\t// Instrument: histogram\n\t// Unit: {count}\n\t// Stability: Experimental\n\tRPCServerRequestsPerRPCName        = \"rpc.server.requests_per_rpc\"\n\tRPCServerRequestsPerRPCUnit        = \"{count}\"\n\tRPCServerRequestsPerRPCDescription = \"Measures the number of messages received per RPC.\"\n\n\t// RPCServerResponsesPerRPC is the metric conforming to the\n\t// \"rpc.server.responses_per_rpc\" semantic conventions. It represents the\n\t// measures the number of messages sent per RPC.\n\t// Instrument: histogram\n\t// Unit: {count}\n\t// Stability: Experimental\n\tRPCServerResponsesPerRPCName        = \"rpc.server.responses_per_rpc\"\n\tRPCServerResponsesPerRPCUnit        = \"{count}\"\n\tRPCServerResponsesPerRPCDescription = \"Measures the number of messages sent per RPC.\"\n\n\t// RPCClientDuration is the metric conforming to the \"rpc.client.duration\"\n\t// semantic conventions. It represents the measures the duration of outbound\n\t// RPC.\n\t// Instrument: histogram\n\t// Unit: ms\n\t// Stability: Experimental\n\tRPCClientDurationName        = \"rpc.client.duration\"\n\tRPCClientDurationUnit        = \"ms\"\n\tRPCClientDurationDescription = \"Measures the duration of outbound RPC.\"\n\n\t// RPCClientRequestSize is the metric conforming to the\n\t// \"rpc.client.request.size\" semantic conventions. It represents the measures\n\t// the size of RPC request messages (uncompressed).\n\t// Instrument: histogram\n\t// Unit: By\n\t// Stability: Experimental\n\tRPCClientRequestSizeName        = \"rpc.client.request.size\"\n\tRPCClientRequestSizeUnit        = \"By\"\n\tRPCClientRequestSizeDescription = \"Measures the size of RPC request messages (uncompressed).\"\n\n\t// RPCClientResponseSize is the metric conforming to the\n\t// \"rpc.client.response.size\" semantic conventions. It represents the measures\n\t// the size of RPC response messages (uncompressed).\n\t// Instrument: histogram\n\t// Unit: By\n\t// Stability: Experimental\n\tRPCClientResponseSizeName        = \"rpc.client.response.size\"\n\tRPCClientResponseSizeUnit        = \"By\"\n\tRPCClientResponseSizeDescription = \"Measures the size of RPC response messages (uncompressed).\"\n\n\t// RPCClientRequestsPerRPC is the metric conforming to the\n\t// \"rpc.client.requests_per_rpc\" semantic conventions. It represents the\n\t// measures the number of messages received per RPC.\n\t// Instrument: histogram\n\t// Unit: {count}\n\t// Stability: Experimental\n\tRPCClientRequestsPerRPCName        = \"rpc.client.requests_per_rpc\"\n\tRPCClientRequestsPerRPCUnit        = \"{count}\"\n\tRPCClientRequestsPerRPCDescription = \"Measures the number of messages received per RPC.\"\n\n\t// RPCClientResponsesPerRPC is the metric conforming to the\n\t// \"rpc.client.responses_per_rpc\" semantic conventions. It represents the\n\t// measures the number of messages sent per RPC.\n\t// Instrument: histogram\n\t// Unit: {count}\n\t// Stability: Experimental\n\tRPCClientResponsesPerRPCName        = \"rpc.client.responses_per_rpc\"\n\tRPCClientResponsesPerRPCUnit        = \"{count}\"\n\tRPCClientResponsesPerRPCDescription = \"Measures the number of messages sent per RPC.\"\n\n\t// SystemCPUTime is the metric conforming to the \"system.cpu.time\" semantic\n\t// conventions. It represents the seconds each logical CPU spent on each mode.\n\t// Instrument: counter\n\t// Unit: s\n\t// Stability: Experimental\n\tSystemCPUTimeName        = \"system.cpu.time\"\n\tSystemCPUTimeUnit        = \"s\"\n\tSystemCPUTimeDescription = \"Seconds each logical CPU spent on each mode\"\n\n\t// SystemCPUUtilization is the metric conforming to the\n\t// \"system.cpu.utilization\" semantic conventions. It represents the difference\n\t// in system.cpu.time since the last measurement, divided by the elapsed time\n\t// and number of logical CPUs.\n\t// Instrument: gauge\n\t// Unit: 1\n\t// Stability: Experimental\n\tSystemCPUUtilizationName        = \"system.cpu.utilization\"\n\tSystemCPUUtilizationUnit        = \"1\"\n\tSystemCPUUtilizationDescription = \"Difference in system.cpu.time since the last measurement, divided by the elapsed time and number of logical CPUs\"\n\n\t// SystemCPUFrequency is the metric conforming to the \"system.cpu.frequency\"\n\t// semantic conventions. It represents the reports the current frequency of the\n\t// CPU in Hz.\n\t// Instrument: gauge\n\t// Unit: {Hz}\n\t// Stability: Experimental\n\tSystemCPUFrequencyName        = \"system.cpu.frequency\"\n\tSystemCPUFrequencyUnit        = \"{Hz}\"\n\tSystemCPUFrequencyDescription = \"Reports the current frequency of the CPU in Hz\"\n\n\t// SystemCPUPhysicalCount is the metric conforming to the\n\t// \"system.cpu.physical.count\" semantic conventions. It represents the reports\n\t// the number of actual physical processor cores on the hardware.\n\t// Instrument: updowncounter\n\t// Unit: {cpu}\n\t// Stability: Experimental\n\tSystemCPUPhysicalCountName        = \"system.cpu.physical.count\"\n\tSystemCPUPhysicalCountUnit        = \"{cpu}\"\n\tSystemCPUPhysicalCountDescription = \"Reports the number of actual physical processor cores on the hardware\"\n\n\t// SystemCPULogicalCount is the metric conforming to the\n\t// \"system.cpu.logical.count\" semantic conventions. It represents the reports\n\t// the number of logical (virtual) processor cores created by the operating\n\t// system to manage multitasking.\n\t// Instrument: updowncounter\n\t// Unit: {cpu}\n\t// Stability: Experimental\n\tSystemCPULogicalCountName        = \"system.cpu.logical.count\"\n\tSystemCPULogicalCountUnit        = \"{cpu}\"\n\tSystemCPULogicalCountDescription = \"Reports the number of logical (virtual) processor cores created by the operating system to manage multitasking\"\n\n\t// SystemMemoryUsage is the metric conforming to the \"system.memory.usage\"\n\t// semantic conventions. It represents the reports memory in use by state.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Experimental\n\tSystemMemoryUsageName        = \"system.memory.usage\"\n\tSystemMemoryUsageUnit        = \"By\"\n\tSystemMemoryUsageDescription = \"Reports memory in use by state.\"\n\n\t// SystemMemoryLimit is the metric conforming to the \"system.memory.limit\"\n\t// semantic conventions. It represents the total memory available in the\n\t// system.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Experimental\n\tSystemMemoryLimitName        = \"system.memory.limit\"\n\tSystemMemoryLimitUnit        = \"By\"\n\tSystemMemoryLimitDescription = \"Total memory available in the system.\"\n\n\t// SystemMemoryUtilization is the metric conforming to the\n\t// \"system.memory.utilization\" semantic conventions.\n\t// Instrument: gauge\n\t// Unit: 1\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemMemoryUtilizationName = \"system.memory.utilization\"\n\tSystemMemoryUtilizationUnit = \"1\"\n\n\t// SystemPagingUsage is the metric conforming to the \"system.paging.usage\"\n\t// semantic conventions. It represents the unix swap or windows pagefile usage.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Experimental\n\tSystemPagingUsageName        = \"system.paging.usage\"\n\tSystemPagingUsageUnit        = \"By\"\n\tSystemPagingUsageDescription = \"Unix swap or windows pagefile usage\"\n\n\t// SystemPagingUtilization is the metric conforming to the\n\t// \"system.paging.utilization\" semantic conventions.\n\t// Instrument: gauge\n\t// Unit: 1\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemPagingUtilizationName = \"system.paging.utilization\"\n\tSystemPagingUtilizationUnit = \"1\"\n\n\t// SystemPagingFaults is the metric conforming to the \"system.paging.faults\"\n\t// semantic conventions.\n\t// Instrument: counter\n\t// Unit: {fault}\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemPagingFaultsName = \"system.paging.faults\"\n\tSystemPagingFaultsUnit = \"{fault}\"\n\n\t// SystemPagingOperations is the metric conforming to the\n\t// \"system.paging.operations\" semantic conventions.\n\t// Instrument: counter\n\t// Unit: {operation}\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemPagingOperationsName = \"system.paging.operations\"\n\tSystemPagingOperationsUnit = \"{operation}\"\n\n\t// SystemDiskIo is the metric conforming to the \"system.disk.io\" semantic\n\t// conventions.\n\t// Instrument: counter\n\t// Unit: By\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemDiskIoName = \"system.disk.io\"\n\tSystemDiskIoUnit = \"By\"\n\n\t// SystemDiskOperations is the metric conforming to the\n\t// \"system.disk.operations\" semantic conventions.\n\t// Instrument: counter\n\t// Unit: {operation}\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemDiskOperationsName = \"system.disk.operations\"\n\tSystemDiskOperationsUnit = \"{operation}\"\n\n\t// SystemDiskIoTime is the metric conforming to the \"system.disk.io_time\"\n\t// semantic conventions. It represents the time disk spent activated.\n\t// Instrument: counter\n\t// Unit: s\n\t// Stability: Experimental\n\tSystemDiskIoTimeName        = \"system.disk.io_time\"\n\tSystemDiskIoTimeUnit        = \"s\"\n\tSystemDiskIoTimeDescription = \"Time disk spent activated\"\n\n\t// SystemDiskOperationTime is the metric conforming to the\n\t// \"system.disk.operation_time\" semantic conventions. It represents the sum of\n\t// the time each operation took to complete.\n\t// Instrument: counter\n\t// Unit: s\n\t// Stability: Experimental\n\tSystemDiskOperationTimeName        = \"system.disk.operation_time\"\n\tSystemDiskOperationTimeUnit        = \"s\"\n\tSystemDiskOperationTimeDescription = \"Sum of the time each operation took to complete\"\n\n\t// SystemDiskMerged is the metric conforming to the \"system.disk.merged\"\n\t// semantic conventions.\n\t// Instrument: counter\n\t// Unit: {operation}\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemDiskMergedName = \"system.disk.merged\"\n\tSystemDiskMergedUnit = \"{operation}\"\n\n\t// SystemFilesystemUsage is the metric conforming to the\n\t// \"system.filesystem.usage\" semantic conventions.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemFilesystemUsageName = \"system.filesystem.usage\"\n\tSystemFilesystemUsageUnit = \"By\"\n\n\t// SystemFilesystemUtilization is the metric conforming to the\n\t// \"system.filesystem.utilization\" semantic conventions.\n\t// Instrument: gauge\n\t// Unit: 1\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemFilesystemUtilizationName = \"system.filesystem.utilization\"\n\tSystemFilesystemUtilizationUnit = \"1\"\n\n\t// SystemNetworkDropped is the metric conforming to the\n\t// \"system.network.dropped\" semantic conventions. It represents the count of\n\t// packets that are dropped or discarded even though there was no error.\n\t// Instrument: counter\n\t// Unit: {packet}\n\t// Stability: Experimental\n\tSystemNetworkDroppedName        = \"system.network.dropped\"\n\tSystemNetworkDroppedUnit        = \"{packet}\"\n\tSystemNetworkDroppedDescription = \"Count of packets that are dropped or discarded even though there was no error\"\n\n\t// SystemNetworkPackets is the metric conforming to the\n\t// \"system.network.packets\" semantic conventions.\n\t// Instrument: counter\n\t// Unit: {packet}\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemNetworkPacketsName = \"system.network.packets\"\n\tSystemNetworkPacketsUnit = \"{packet}\"\n\n\t// SystemNetworkErrors is the metric conforming to the \"system.network.errors\"\n\t// semantic conventions. It represents the count of network errors detected.\n\t// Instrument: counter\n\t// Unit: {error}\n\t// Stability: Experimental\n\tSystemNetworkErrorsName        = \"system.network.errors\"\n\tSystemNetworkErrorsUnit        = \"{error}\"\n\tSystemNetworkErrorsDescription = \"Count of network errors detected\"\n\n\t// SystemNetworkIo is the metric conforming to the \"system.network.io\" semantic\n\t// conventions.\n\t// Instrument: counter\n\t// Unit: By\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemNetworkIoName = \"system.network.io\"\n\tSystemNetworkIoUnit = \"By\"\n\n\t// SystemNetworkConnections is the metric conforming to the\n\t// \"system.network.connections\" semantic conventions.\n\t// Instrument: updowncounter\n\t// Unit: {connection}\n\t// Stability: Experimental\n\t// NOTE: The description (brief) for this metric is not defined in the semantic-conventions repository.\n\tSystemNetworkConnectionsName = \"system.network.connections\"\n\tSystemNetworkConnectionsUnit = \"{connection}\"\n\n\t// SystemProcessesCount is the metric conforming to the\n\t// \"system.processes.count\" semantic conventions. It represents the total\n\t// number of processes in each state.\n\t// Instrument: updowncounter\n\t// Unit: {process}\n\t// Stability: Experimental\n\tSystemProcessesCountName        = \"system.processes.count\"\n\tSystemProcessesCountUnit        = \"{process}\"\n\tSystemProcessesCountDescription = \"Total number of processes in each state\"\n\n\t// SystemProcessesCreated is the metric conforming to the\n\t// \"system.processes.created\" semantic conventions. It represents the total\n\t// number of processes created over uptime of the host.\n\t// Instrument: counter\n\t// Unit: {process}\n\t// Stability: Experimental\n\tSystemProcessesCreatedName        = \"system.processes.created\"\n\tSystemProcessesCreatedUnit        = \"{process}\"\n\tSystemProcessesCreatedDescription = \"Total number of processes created over uptime of the host\"\n\n\t// SystemLinuxMemoryAvailable is the metric conforming to the\n\t// \"system.linux.memory.available\" semantic conventions. It represents an\n\t// estimate of how much memory is available for starting new applications,\n\t// without causing swapping.\n\t// Instrument: updowncounter\n\t// Unit: By\n\t// Stability: Experimental\n\tSystemLinuxMemoryAvailableName        = \"system.linux.memory.available\"\n\tSystemLinuxMemoryAvailableUnit        = \"By\"\n\tSystemLinuxMemoryAvailableDescription = \"An estimate of how much memory is available for starting new applications, without causing swapping\"\n)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.24.0/resource.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Code generated from semantic convention specification. DO NOT EDIT.\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.24.0\"\n\nimport \"go.opentelemetry.io/otel/attribute\"\n\n// A cloud environment (e.g. GCP, Azure, AWS).\nconst (\n\t// CloudAccountIDKey is the attribute Key conforming to the\n\t// \"cloud.account.id\" semantic conventions. It represents the cloud account\n\t// ID the resource is assigned to.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '111111111111', 'opentelemetry'\n\tCloudAccountIDKey = attribute.Key(\"cloud.account.id\")\n\n\t// CloudAvailabilityZoneKey is the attribute Key conforming to the\n\t// \"cloud.availability_zone\" semantic conventions. It represents the cloud\n\t// regions often have multiple, isolated locations known as zones to\n\t// increase availability. Availability zone represents the zone where the\n\t// resource is running.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'us-east-1c'\n\t// Note: Availability zones are called \"zones\" on Alibaba Cloud and Google\n\t// Cloud.\n\tCloudAvailabilityZoneKey = attribute.Key(\"cloud.availability_zone\")\n\n\t// CloudPlatformKey is the attribute Key conforming to the \"cloud.platform\"\n\t// semantic conventions. It represents the cloud platform in use.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Note: The prefix of the service SHOULD match the one specified in\n\t// `cloud.provider`.\n\tCloudPlatformKey = attribute.Key(\"cloud.platform\")\n\n\t// CloudProviderKey is the attribute Key conforming to the \"cloud.provider\"\n\t// semantic conventions. It represents the name of the cloud provider.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tCloudProviderKey = attribute.Key(\"cloud.provider\")\n\n\t// CloudRegionKey is the attribute Key conforming to the \"cloud.region\"\n\t// semantic conventions. It represents the geographical region the resource\n\t// is running.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'us-central1', 'us-east-1'\n\t// Note: Refer to your provider's docs to see the available regions, for\n\t// example [Alibaba Cloud\n\t// regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS\n\t// regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/),\n\t// [Azure\n\t// regions](https://azure.microsoft.com/global-infrastructure/geographies/),\n\t// [Google Cloud regions](https://cloud.google.com/about/locations), or\n\t// [Tencent Cloud\n\t// regions](https://www.tencentcloud.com/document/product/213/6091).\n\tCloudRegionKey = attribute.Key(\"cloud.region\")\n\n\t// CloudResourceIDKey is the attribute Key conforming to the\n\t// \"cloud.resource_id\" semantic conventions. It represents the cloud\n\t// provider-specific native identifier of the monitored cloud resource\n\t// (e.g. an\n\t// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)\n\t// on AWS, a [fully qualified resource\n\t// ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id)\n\t// on Azure, a [full resource\n\t// name](https://cloud.google.com/apis/design/resource_names#full_resource_name)\n\t// on GCP)\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function',\n\t// '//run.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/services/SERVICE_ID',\n\t// '/subscriptions/<SUBSCIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>'\n\t// Note: On some cloud providers, it may not be possible to determine the\n\t// full ID at startup,\n\t// so it may be necessary to set `cloud.resource_id` as a span attribute\n\t// instead.\n\t//\n\t// The exact value to use for `cloud.resource_id` depends on the cloud\n\t// provider.\n\t// The following well-known definitions MUST be used if you set this\n\t// attribute and they apply:\n\t//\n\t// * **AWS Lambda:** The function\n\t// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).\n\t//   Take care not to use the \"invoked ARN\" directly but replace any\n\t//   [alias\n\t// suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html)\n\t//   with the resolved function version, as the same runtime instance may\n\t// be invokable with\n\t//   multiple different aliases.\n\t// * **GCP:** The [URI of the\n\t// resource](https://cloud.google.com/iam/docs/full-resource-names)\n\t// * **Azure:** The [Fully Qualified Resource\n\t// ID](https://docs.microsoft.com/rest/api/resources/resources/get-by-id)\n\t// of the invoked function,\n\t//   *not* the function app, having the form\n\t// `/subscriptions/<SUBSCIPTION_GUID>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<FUNCAPP>/functions/<FUNC>`.\n\t//   This means that a span attribute MUST be used, as an Azure function\n\t// app can host multiple functions that would usually share\n\t//   a TracerProvider.\n\tCloudResourceIDKey = attribute.Key(\"cloud.resource_id\")\n)\n\nvar (\n\t// Alibaba Cloud Elastic Compute Service\n\tCloudPlatformAlibabaCloudECS = CloudPlatformKey.String(\"alibaba_cloud_ecs\")\n\t// Alibaba Cloud Function Compute\n\tCloudPlatformAlibabaCloudFc = CloudPlatformKey.String(\"alibaba_cloud_fc\")\n\t// Red Hat OpenShift on Alibaba Cloud\n\tCloudPlatformAlibabaCloudOpenshift = CloudPlatformKey.String(\"alibaba_cloud_openshift\")\n\t// AWS Elastic Compute Cloud\n\tCloudPlatformAWSEC2 = CloudPlatformKey.String(\"aws_ec2\")\n\t// AWS Elastic Container Service\n\tCloudPlatformAWSECS = CloudPlatformKey.String(\"aws_ecs\")\n\t// AWS Elastic Kubernetes Service\n\tCloudPlatformAWSEKS = CloudPlatformKey.String(\"aws_eks\")\n\t// AWS Lambda\n\tCloudPlatformAWSLambda = CloudPlatformKey.String(\"aws_lambda\")\n\t// AWS Elastic Beanstalk\n\tCloudPlatformAWSElasticBeanstalk = CloudPlatformKey.String(\"aws_elastic_beanstalk\")\n\t// AWS App Runner\n\tCloudPlatformAWSAppRunner = CloudPlatformKey.String(\"aws_app_runner\")\n\t// Red Hat OpenShift on AWS (ROSA)\n\tCloudPlatformAWSOpenshift = CloudPlatformKey.String(\"aws_openshift\")\n\t// Azure Virtual Machines\n\tCloudPlatformAzureVM = CloudPlatformKey.String(\"azure_vm\")\n\t// Azure Container Instances\n\tCloudPlatformAzureContainerInstances = CloudPlatformKey.String(\"azure_container_instances\")\n\t// Azure Kubernetes Service\n\tCloudPlatformAzureAKS = CloudPlatformKey.String(\"azure_aks\")\n\t// Azure Functions\n\tCloudPlatformAzureFunctions = CloudPlatformKey.String(\"azure_functions\")\n\t// Azure App Service\n\tCloudPlatformAzureAppService = CloudPlatformKey.String(\"azure_app_service\")\n\t// Azure Red Hat OpenShift\n\tCloudPlatformAzureOpenshift = CloudPlatformKey.String(\"azure_openshift\")\n\t// Google Bare Metal Solution (BMS)\n\tCloudPlatformGCPBareMetalSolution = CloudPlatformKey.String(\"gcp_bare_metal_solution\")\n\t// Google Cloud Compute Engine (GCE)\n\tCloudPlatformGCPComputeEngine = CloudPlatformKey.String(\"gcp_compute_engine\")\n\t// Google Cloud Run\n\tCloudPlatformGCPCloudRun = CloudPlatformKey.String(\"gcp_cloud_run\")\n\t// Google Cloud Kubernetes Engine (GKE)\n\tCloudPlatformGCPKubernetesEngine = CloudPlatformKey.String(\"gcp_kubernetes_engine\")\n\t// Google Cloud Functions (GCF)\n\tCloudPlatformGCPCloudFunctions = CloudPlatformKey.String(\"gcp_cloud_functions\")\n\t// Google Cloud App Engine (GAE)\n\tCloudPlatformGCPAppEngine = CloudPlatformKey.String(\"gcp_app_engine\")\n\t// Red Hat OpenShift on Google Cloud\n\tCloudPlatformGCPOpenshift = CloudPlatformKey.String(\"gcp_openshift\")\n\t// Red Hat OpenShift on IBM Cloud\n\tCloudPlatformIbmCloudOpenshift = CloudPlatformKey.String(\"ibm_cloud_openshift\")\n\t// Tencent Cloud Cloud Virtual Machine (CVM)\n\tCloudPlatformTencentCloudCvm = CloudPlatformKey.String(\"tencent_cloud_cvm\")\n\t// Tencent Cloud Elastic Kubernetes Service (EKS)\n\tCloudPlatformTencentCloudEKS = CloudPlatformKey.String(\"tencent_cloud_eks\")\n\t// Tencent Cloud Serverless Cloud Function (SCF)\n\tCloudPlatformTencentCloudScf = CloudPlatformKey.String(\"tencent_cloud_scf\")\n)\n\nvar (\n\t// Alibaba Cloud\n\tCloudProviderAlibabaCloud = CloudProviderKey.String(\"alibaba_cloud\")\n\t// Amazon Web Services\n\tCloudProviderAWS = CloudProviderKey.String(\"aws\")\n\t// Microsoft Azure\n\tCloudProviderAzure = CloudProviderKey.String(\"azure\")\n\t// Google Cloud Platform\n\tCloudProviderGCP = CloudProviderKey.String(\"gcp\")\n\t// Heroku Platform as a Service\n\tCloudProviderHeroku = CloudProviderKey.String(\"heroku\")\n\t// IBM Cloud\n\tCloudProviderIbmCloud = CloudProviderKey.String(\"ibm_cloud\")\n\t// Tencent Cloud\n\tCloudProviderTencentCloud = CloudProviderKey.String(\"tencent_cloud\")\n)\n\n// CloudAccountID returns an attribute KeyValue conforming to the\n// \"cloud.account.id\" semantic conventions. It represents the cloud account ID\n// the resource is assigned to.\nfunc CloudAccountID(val string) attribute.KeyValue {\n\treturn CloudAccountIDKey.String(val)\n}\n\n// CloudAvailabilityZone returns an attribute KeyValue conforming to the\n// \"cloud.availability_zone\" semantic conventions. It represents the cloud\n// regions often have multiple, isolated locations known as zones to increase\n// availability. Availability zone represents the zone where the resource is\n// running.\nfunc CloudAvailabilityZone(val string) attribute.KeyValue {\n\treturn CloudAvailabilityZoneKey.String(val)\n}\n\n// CloudRegion returns an attribute KeyValue conforming to the\n// \"cloud.region\" semantic conventions. It represents the geographical region\n// the resource is running.\nfunc CloudRegion(val string) attribute.KeyValue {\n\treturn CloudRegionKey.String(val)\n}\n\n// CloudResourceID returns an attribute KeyValue conforming to the\n// \"cloud.resource_id\" semantic conventions. It represents the cloud\n// provider-specific native identifier of the monitored cloud resource (e.g. an\n// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)\n// on AWS, a [fully qualified resource\n// ID](https://learn.microsoft.com/rest/api/resources/resources/get-by-id) on\n// Azure, a [full resource\n// name](https://cloud.google.com/apis/design/resource_names#full_resource_name)\n// on GCP)\nfunc CloudResourceID(val string) attribute.KeyValue {\n\treturn CloudResourceIDKey.String(val)\n}\n\n// A container instance.\nconst (\n\t// ContainerCommandKey is the attribute Key conforming to the\n\t// \"container.command\" semantic conventions. It represents the command used\n\t// to run the container (i.e. the command name).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'otelcontribcol'\n\t// Note: If using embedded credentials or sensitive data, it is recommended\n\t// to remove them to prevent potential leakage.\n\tContainerCommandKey = attribute.Key(\"container.command\")\n\n\t// ContainerCommandArgsKey is the attribute Key conforming to the\n\t// \"container.command_args\" semantic conventions. It represents the all the\n\t// command arguments (including the command/executable itself) run by the\n\t// container. [2]\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'otelcontribcol, --config, config.yaml'\n\tContainerCommandArgsKey = attribute.Key(\"container.command_args\")\n\n\t// ContainerCommandLineKey is the attribute Key conforming to the\n\t// \"container.command_line\" semantic conventions. It represents the full\n\t// command run by the container as a single string representing the full\n\t// command. [2]\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'otelcontribcol --config config.yaml'\n\tContainerCommandLineKey = attribute.Key(\"container.command_line\")\n\n\t// ContainerIDKey is the attribute Key conforming to the \"container.id\"\n\t// semantic conventions. It represents the container ID. Usually a UUID, as\n\t// for example used to [identify Docker\n\t// containers](https://docs.docker.com/engine/reference/run/#container-identification).\n\t// The UUID might be abbreviated.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'a3bf90e006b2'\n\tContainerIDKey = attribute.Key(\"container.id\")\n\n\t// ContainerImageIDKey is the attribute Key conforming to the\n\t// \"container.image.id\" semantic conventions. It represents the runtime\n\t// specific image identifier. Usually a hash algorithm followed by a UUID.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples:\n\t// 'sha256:19c92d0a00d1b66d897bceaa7319bee0dd38a10a851c60bcec9474aa3f01e50f'\n\t// Note: Docker defines a sha256 of the image id; `container.image.id`\n\t// corresponds to the `Image` field from the Docker container inspect\n\t// [API](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerInspect)\n\t// endpoint.\n\t// K8S defines a link to the container registry repository with digest\n\t// `\"imageID\": \"registry.azurecr.io\n\t// /namespace/service/dockerfile@sha256:bdeabd40c3a8a492eaf9e8e44d0ebbb84bac7ee25ac0cf8a7159d25f62555625\"`.\n\t// The ID is assinged by the container runtime and can vary in different\n\t// environments. Consider using `oci.manifest.digest` if it is important to\n\t// identify the same image in different environments/runtimes.\n\tContainerImageIDKey = attribute.Key(\"container.image.id\")\n\n\t// ContainerImageNameKey is the attribute Key conforming to the\n\t// \"container.image.name\" semantic conventions. It represents the name of\n\t// the image the container was built on.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'gcr.io/opentelemetry/operator'\n\tContainerImageNameKey = attribute.Key(\"container.image.name\")\n\n\t// ContainerImageRepoDigestsKey is the attribute Key conforming to the\n\t// \"container.image.repo_digests\" semantic conventions. It represents the\n\t// repo digests of the container image as provided by the container\n\t// runtime.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples:\n\t// 'example@sha256:afcc7f1ac1b49db317a7196c902e61c6c3c4607d63599ee1a82d702d249a0ccb',\n\t// 'internal.registry.example.com:5000/example@sha256:b69959407d21e8a062e0416bf13405bb2b71ed7a84dde4158ebafacfa06f5578'\n\t// Note:\n\t// [Docker](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect)\n\t// and\n\t// [CRI](https://github.com/kubernetes/cri-api/blob/c75ef5b473bbe2d0a4fc92f82235efd665ea8e9f/pkg/apis/runtime/v1/api.proto#L1237-L1238)\n\t// report those under the `RepoDigests` field.\n\tContainerImageRepoDigestsKey = attribute.Key(\"container.image.repo_digests\")\n\n\t// ContainerImageTagsKey is the attribute Key conforming to the\n\t// \"container.image.tags\" semantic conventions. It represents the container\n\t// image tags. An example can be found in [Docker Image\n\t// Inspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect).\n\t// Should be only the `<tag>` section of the full name for example from\n\t// `registry.example.com/my-org/my-image:<tag>`.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'v1.27.1', '3.5.7-0'\n\tContainerImageTagsKey = attribute.Key(\"container.image.tags\")\n\n\t// ContainerNameKey is the attribute Key conforming to the \"container.name\"\n\t// semantic conventions. It represents the container name used by container\n\t// runtime.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry-autoconf'\n\tContainerNameKey = attribute.Key(\"container.name\")\n\n\t// ContainerRuntimeKey is the attribute Key conforming to the\n\t// \"container.runtime\" semantic conventions. It represents the container\n\t// runtime managing this container.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'docker', 'containerd', 'rkt'\n\tContainerRuntimeKey = attribute.Key(\"container.runtime\")\n)\n\n// ContainerCommand returns an attribute KeyValue conforming to the\n// \"container.command\" semantic conventions. It represents the command used to\n// run the container (i.e. the command name).\nfunc ContainerCommand(val string) attribute.KeyValue {\n\treturn ContainerCommandKey.String(val)\n}\n\n// ContainerCommandArgs returns an attribute KeyValue conforming to the\n// \"container.command_args\" semantic conventions. It represents the all the\n// command arguments (including the command/executable itself) run by the\n// container. [2]\nfunc ContainerCommandArgs(val ...string) attribute.KeyValue {\n\treturn ContainerCommandArgsKey.StringSlice(val)\n}\n\n// ContainerCommandLine returns an attribute KeyValue conforming to the\n// \"container.command_line\" semantic conventions. It represents the full\n// command run by the container as a single string representing the full\n// command. [2]\nfunc ContainerCommandLine(val string) attribute.KeyValue {\n\treturn ContainerCommandLineKey.String(val)\n}\n\n// ContainerID returns an attribute KeyValue conforming to the\n// \"container.id\" semantic conventions. It represents the container ID. Usually\n// a UUID, as for example used to [identify Docker\n// containers](https://docs.docker.com/engine/reference/run/#container-identification).\n// The UUID might be abbreviated.\nfunc ContainerID(val string) attribute.KeyValue {\n\treturn ContainerIDKey.String(val)\n}\n\n// ContainerImageID returns an attribute KeyValue conforming to the\n// \"container.image.id\" semantic conventions. It represents the runtime\n// specific image identifier. Usually a hash algorithm followed by a UUID.\nfunc ContainerImageID(val string) attribute.KeyValue {\n\treturn ContainerImageIDKey.String(val)\n}\n\n// ContainerImageName returns an attribute KeyValue conforming to the\n// \"container.image.name\" semantic conventions. It represents the name of the\n// image the container was built on.\nfunc ContainerImageName(val string) attribute.KeyValue {\n\treturn ContainerImageNameKey.String(val)\n}\n\n// ContainerImageRepoDigests returns an attribute KeyValue conforming to the\n// \"container.image.repo_digests\" semantic conventions. It represents the repo\n// digests of the container image as provided by the container runtime.\nfunc ContainerImageRepoDigests(val ...string) attribute.KeyValue {\n\treturn ContainerImageRepoDigestsKey.StringSlice(val)\n}\n\n// ContainerImageTags returns an attribute KeyValue conforming to the\n// \"container.image.tags\" semantic conventions. It represents the container\n// image tags. An example can be found in [Docker Image\n// Inspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect).\n// Should be only the `<tag>` section of the full name for example from\n// `registry.example.com/my-org/my-image:<tag>`.\nfunc ContainerImageTags(val ...string) attribute.KeyValue {\n\treturn ContainerImageTagsKey.StringSlice(val)\n}\n\n// ContainerName returns an attribute KeyValue conforming to the\n// \"container.name\" semantic conventions. It represents the container name used\n// by container runtime.\nfunc ContainerName(val string) attribute.KeyValue {\n\treturn ContainerNameKey.String(val)\n}\n\n// ContainerRuntime returns an attribute KeyValue conforming to the\n// \"container.runtime\" semantic conventions. It represents the container\n// runtime managing this container.\nfunc ContainerRuntime(val string) attribute.KeyValue {\n\treturn ContainerRuntimeKey.String(val)\n}\n\n// Describes device attributes.\nconst (\n\t// DeviceIDKey is the attribute Key conforming to the \"device.id\" semantic\n\t// conventions. It represents a unique identifier representing the device\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '2ab2916d-a51f-4ac8-80ee-45ac31a28092'\n\t// Note: The device identifier MUST only be defined using the values\n\t// outlined below. This value is not an advertising identifier and MUST NOT\n\t// be used as such. On iOS (Swift or Objective-C), this value MUST be equal\n\t// to the [vendor\n\t// identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor).\n\t// On Android (Java or Kotlin), this value MUST be equal to the Firebase\n\t// Installation ID or a globally unique UUID which is persisted across\n\t// sessions in your application. More information can be found\n\t// [here](https://developer.android.com/training/articles/user-data-ids) on\n\t// best practices and exact implementation details. Caution should be taken\n\t// when storing personal data or anything which can identify a user. GDPR\n\t// and data protection laws may apply, ensure you do your own due\n\t// diligence.\n\tDeviceIDKey = attribute.Key(\"device.id\")\n\n\t// DeviceManufacturerKey is the attribute Key conforming to the\n\t// \"device.manufacturer\" semantic conventions. It represents the name of\n\t// the device manufacturer\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Apple', 'Samsung'\n\t// Note: The Android OS provides this field via\n\t// [Build](https://developer.android.com/reference/android/os/Build#MANUFACTURER).\n\t// iOS apps SHOULD hardcode the value `Apple`.\n\tDeviceManufacturerKey = attribute.Key(\"device.manufacturer\")\n\n\t// DeviceModelIdentifierKey is the attribute Key conforming to the\n\t// \"device.model.identifier\" semantic conventions. It represents the model\n\t// identifier for the device\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'iPhone3,4', 'SM-G920F'\n\t// Note: It's recommended this value represents a machine-readable version\n\t// of the model identifier rather than the market or consumer-friendly name\n\t// of the device.\n\tDeviceModelIdentifierKey = attribute.Key(\"device.model.identifier\")\n\n\t// DeviceModelNameKey is the attribute Key conforming to the\n\t// \"device.model.name\" semantic conventions. It represents the marketing\n\t// name for the device model\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'iPhone 6s Plus', 'Samsung Galaxy S6'\n\t// Note: It's recommended this value represents a human-readable version of\n\t// the device model rather than a machine-readable alternative.\n\tDeviceModelNameKey = attribute.Key(\"device.model.name\")\n)\n\n// DeviceID returns an attribute KeyValue conforming to the \"device.id\"\n// semantic conventions. It represents a unique identifier representing the\n// device\nfunc DeviceID(val string) attribute.KeyValue {\n\treturn DeviceIDKey.String(val)\n}\n\n// DeviceManufacturer returns an attribute KeyValue conforming to the\n// \"device.manufacturer\" semantic conventions. It represents the name of the\n// device manufacturer\nfunc DeviceManufacturer(val string) attribute.KeyValue {\n\treturn DeviceManufacturerKey.String(val)\n}\n\n// DeviceModelIdentifier returns an attribute KeyValue conforming to the\n// \"device.model.identifier\" semantic conventions. It represents the model\n// identifier for the device\nfunc DeviceModelIdentifier(val string) attribute.KeyValue {\n\treturn DeviceModelIdentifierKey.String(val)\n}\n\n// DeviceModelName returns an attribute KeyValue conforming to the\n// \"device.model.name\" semantic conventions. It represents the marketing name\n// for the device model\nfunc DeviceModelName(val string) attribute.KeyValue {\n\treturn DeviceModelNameKey.String(val)\n}\n\n// A host is defined as a computing instance. For example, physical servers,\n// virtual machines, switches or disk array.\nconst (\n\t// HostArchKey is the attribute Key conforming to the \"host.arch\" semantic\n\t// conventions. It represents the CPU architecture the host system is\n\t// running on.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tHostArchKey = attribute.Key(\"host.arch\")\n\n\t// HostCPUCacheL2SizeKey is the attribute Key conforming to the\n\t// \"host.cpu.cache.l2.size\" semantic conventions. It represents the amount\n\t// of level 2 memory cache available to the processor (in Bytes).\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 12288000\n\tHostCPUCacheL2SizeKey = attribute.Key(\"host.cpu.cache.l2.size\")\n\n\t// HostCPUFamilyKey is the attribute Key conforming to the\n\t// \"host.cpu.family\" semantic conventions. It represents the family or\n\t// generation of the CPU.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '6', 'PA-RISC 1.1e'\n\tHostCPUFamilyKey = attribute.Key(\"host.cpu.family\")\n\n\t// HostCPUModelIDKey is the attribute Key conforming to the\n\t// \"host.cpu.model.id\" semantic conventions. It represents the model\n\t// identifier. It provides more granular information about the CPU,\n\t// distinguishing it from other CPUs within the same family.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '6', '9000/778/B180L'\n\tHostCPUModelIDKey = attribute.Key(\"host.cpu.model.id\")\n\n\t// HostCPUModelNameKey is the attribute Key conforming to the\n\t// \"host.cpu.model.name\" semantic conventions. It represents the model\n\t// designation of the processor.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz'\n\tHostCPUModelNameKey = attribute.Key(\"host.cpu.model.name\")\n\n\t// HostCPUSteppingKey is the attribute Key conforming to the\n\t// \"host.cpu.stepping\" semantic conventions. It represents the stepping or\n\t// core revisions.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 1\n\tHostCPUSteppingKey = attribute.Key(\"host.cpu.stepping\")\n\n\t// HostCPUVendorIDKey is the attribute Key conforming to the\n\t// \"host.cpu.vendor.id\" semantic conventions. It represents the processor\n\t// manufacturer identifier. A maximum 12-character string.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'GenuineIntel'\n\t// Note: [CPUID](https://wiki.osdev.org/CPUID) command returns the vendor\n\t// ID string in EBX, EDX and ECX registers. Writing these to memory in this\n\t// order results in a 12-character string.\n\tHostCPUVendorIDKey = attribute.Key(\"host.cpu.vendor.id\")\n\n\t// HostIDKey is the attribute Key conforming to the \"host.id\" semantic\n\t// conventions. It represents the unique host ID. For Cloud, this must be\n\t// the instance_id assigned by the cloud provider. For non-containerized\n\t// systems, this should be the `machine-id`. See the table below for the\n\t// sources to use to determine the `machine-id` based on operating system.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'fdbf79e8af94cb7f9e8df36789187052'\n\tHostIDKey = attribute.Key(\"host.id\")\n\n\t// HostImageIDKey is the attribute Key conforming to the \"host.image.id\"\n\t// semantic conventions. It represents the vM image ID or host OS image ID.\n\t// For Cloud, this value is from the provider.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'ami-07b06b442921831e5'\n\tHostImageIDKey = attribute.Key(\"host.image.id\")\n\n\t// HostImageNameKey is the attribute Key conforming to the\n\t// \"host.image.name\" semantic conventions. It represents the name of the VM\n\t// image or OS install the host was instantiated from.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'infra-ami-eks-worker-node-7d4ec78312', 'CentOS-8-x86_64-1905'\n\tHostImageNameKey = attribute.Key(\"host.image.name\")\n\n\t// HostImageVersionKey is the attribute Key conforming to the\n\t// \"host.image.version\" semantic conventions. It represents the version\n\t// string of the VM image or host OS as defined in [Version\n\t// Attributes](/docs/resource/README.md#version-attributes).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '0.1'\n\tHostImageVersionKey = attribute.Key(\"host.image.version\")\n\n\t// HostIPKey is the attribute Key conforming to the \"host.ip\" semantic\n\t// conventions. It represents the available IP addresses of the host,\n\t// excluding loopback interfaces.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '192.168.1.140', 'fe80::abc2:4a28:737a:609e'\n\t// Note: IPv4 Addresses MUST be specified in dotted-quad notation. IPv6\n\t// addresses MUST be specified in the [RFC\n\t// 5952](https://www.rfc-editor.org/rfc/rfc5952.html) format.\n\tHostIPKey = attribute.Key(\"host.ip\")\n\n\t// HostMacKey is the attribute Key conforming to the \"host.mac\" semantic\n\t// conventions. It represents the available MAC addresses of the host,\n\t// excluding loopback interfaces.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'AC-DE-48-23-45-67', 'AC-DE-48-23-45-67-01-9F'\n\t// Note: MAC Addresses MUST be represented in [IEEE RA hexadecimal\n\t// form](https://standards.ieee.org/wp-content/uploads/import/documents/tutorials/eui.pdf):\n\t// as hyphen-separated octets in uppercase hexadecimal form from most to\n\t// least significant.\n\tHostMacKey = attribute.Key(\"host.mac\")\n\n\t// HostNameKey is the attribute Key conforming to the \"host.name\" semantic\n\t// conventions. It represents the name of the host. On Unix systems, it may\n\t// contain what the hostname command returns, or the fully qualified\n\t// hostname, or another name specified by the user.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry-test'\n\tHostNameKey = attribute.Key(\"host.name\")\n\n\t// HostTypeKey is the attribute Key conforming to the \"host.type\" semantic\n\t// conventions. It represents the type of host. For Cloud, this must be the\n\t// machine type.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'n1-standard-1'\n\tHostTypeKey = attribute.Key(\"host.type\")\n)\n\nvar (\n\t// AMD64\n\tHostArchAMD64 = HostArchKey.String(\"amd64\")\n\t// ARM32\n\tHostArchARM32 = HostArchKey.String(\"arm32\")\n\t// ARM64\n\tHostArchARM64 = HostArchKey.String(\"arm64\")\n\t// Itanium\n\tHostArchIA64 = HostArchKey.String(\"ia64\")\n\t// 32-bit PowerPC\n\tHostArchPPC32 = HostArchKey.String(\"ppc32\")\n\t// 64-bit PowerPC\n\tHostArchPPC64 = HostArchKey.String(\"ppc64\")\n\t// IBM z/Architecture\n\tHostArchS390x = HostArchKey.String(\"s390x\")\n\t// 32-bit x86\n\tHostArchX86 = HostArchKey.String(\"x86\")\n)\n\n// HostCPUCacheL2Size returns an attribute KeyValue conforming to the\n// \"host.cpu.cache.l2.size\" semantic conventions. It represents the amount of\n// level 2 memory cache available to the processor (in Bytes).\nfunc HostCPUCacheL2Size(val int) attribute.KeyValue {\n\treturn HostCPUCacheL2SizeKey.Int(val)\n}\n\n// HostCPUFamily returns an attribute KeyValue conforming to the\n// \"host.cpu.family\" semantic conventions. It represents the family or\n// generation of the CPU.\nfunc HostCPUFamily(val string) attribute.KeyValue {\n\treturn HostCPUFamilyKey.String(val)\n}\n\n// HostCPUModelID returns an attribute KeyValue conforming to the\n// \"host.cpu.model.id\" semantic conventions. It represents the model\n// identifier. It provides more granular information about the CPU,\n// distinguishing it from other CPUs within the same family.\nfunc HostCPUModelID(val string) attribute.KeyValue {\n\treturn HostCPUModelIDKey.String(val)\n}\n\n// HostCPUModelName returns an attribute KeyValue conforming to the\n// \"host.cpu.model.name\" semantic conventions. It represents the model\n// designation of the processor.\nfunc HostCPUModelName(val string) attribute.KeyValue {\n\treturn HostCPUModelNameKey.String(val)\n}\n\n// HostCPUStepping returns an attribute KeyValue conforming to the\n// \"host.cpu.stepping\" semantic conventions. It represents the stepping or core\n// revisions.\nfunc HostCPUStepping(val int) attribute.KeyValue {\n\treturn HostCPUSteppingKey.Int(val)\n}\n\n// HostCPUVendorID returns an attribute KeyValue conforming to the\n// \"host.cpu.vendor.id\" semantic conventions. It represents the processor\n// manufacturer identifier. A maximum 12-character string.\nfunc HostCPUVendorID(val string) attribute.KeyValue {\n\treturn HostCPUVendorIDKey.String(val)\n}\n\n// HostID returns an attribute KeyValue conforming to the \"host.id\" semantic\n// conventions. It represents the unique host ID. For Cloud, this must be the\n// instance_id assigned by the cloud provider. For non-containerized systems,\n// this should be the `machine-id`. See the table below for the sources to use\n// to determine the `machine-id` based on operating system.\nfunc HostID(val string) attribute.KeyValue {\n\treturn HostIDKey.String(val)\n}\n\n// HostImageID returns an attribute KeyValue conforming to the\n// \"host.image.id\" semantic conventions. It represents the vM image ID or host\n// OS image ID. For Cloud, this value is from the provider.\nfunc HostImageID(val string) attribute.KeyValue {\n\treturn HostImageIDKey.String(val)\n}\n\n// HostImageName returns an attribute KeyValue conforming to the\n// \"host.image.name\" semantic conventions. It represents the name of the VM\n// image or OS install the host was instantiated from.\nfunc HostImageName(val string) attribute.KeyValue {\n\treturn HostImageNameKey.String(val)\n}\n\n// HostImageVersion returns an attribute KeyValue conforming to the\n// \"host.image.version\" semantic conventions. It represents the version string\n// of the VM image or host OS as defined in [Version\n// Attributes](/docs/resource/README.md#version-attributes).\nfunc HostImageVersion(val string) attribute.KeyValue {\n\treturn HostImageVersionKey.String(val)\n}\n\n// HostIP returns an attribute KeyValue conforming to the \"host.ip\" semantic\n// conventions. It represents the available IP addresses of the host, excluding\n// loopback interfaces.\nfunc HostIP(val ...string) attribute.KeyValue {\n\treturn HostIPKey.StringSlice(val)\n}\n\n// HostMac returns an attribute KeyValue conforming to the \"host.mac\"\n// semantic conventions. It represents the available MAC addresses of the host,\n// excluding loopback interfaces.\nfunc HostMac(val ...string) attribute.KeyValue {\n\treturn HostMacKey.StringSlice(val)\n}\n\n// HostName returns an attribute KeyValue conforming to the \"host.name\"\n// semantic conventions. It represents the name of the host. On Unix systems,\n// it may contain what the hostname command returns, or the fully qualified\n// hostname, or another name specified by the user.\nfunc HostName(val string) attribute.KeyValue {\n\treturn HostNameKey.String(val)\n}\n\n// HostType returns an attribute KeyValue conforming to the \"host.type\"\n// semantic conventions. It represents the type of host. For Cloud, this must\n// be the machine type.\nfunc HostType(val string) attribute.KeyValue {\n\treturn HostTypeKey.String(val)\n}\n\n// Kubernetes resource attributes.\nconst (\n\t// K8SClusterNameKey is the attribute Key conforming to the\n\t// \"k8s.cluster.name\" semantic conventions. It represents the name of the\n\t// cluster.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry-cluster'\n\tK8SClusterNameKey = attribute.Key(\"k8s.cluster.name\")\n\n\t// K8SClusterUIDKey is the attribute Key conforming to the\n\t// \"k8s.cluster.uid\" semantic conventions. It represents a pseudo-ID for\n\t// the cluster, set to the UID of the `kube-system` namespace.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '218fc5a9-a5f1-4b54-aa05-46717d0ab26d'\n\t// Note: K8S doesn't have support for obtaining a cluster ID. If this is\n\t// ever\n\t// added, we will recommend collecting the `k8s.cluster.uid` through the\n\t// official APIs. In the meantime, we are able to use the `uid` of the\n\t// `kube-system` namespace as a proxy for cluster ID. Read on for the\n\t// rationale.\n\t//\n\t// Every object created in a K8S cluster is assigned a distinct UID. The\n\t// `kube-system` namespace is used by Kubernetes itself and will exist\n\t// for the lifetime of the cluster. Using the `uid` of the `kube-system`\n\t// namespace is a reasonable proxy for the K8S ClusterID as it will only\n\t// change if the cluster is rebuilt. Furthermore, Kubernetes UIDs are\n\t// UUIDs as standardized by\n\t// [ISO/IEC 9834-8 and ITU-T\n\t// X.667](https://www.itu.int/ITU-T/studygroups/com17/oid.html).\n\t// Which states:\n\t//\n\t// > If generated according to one of the mechanisms defined in Rec.\n\t//   ITU-T X.667 | ISO/IEC 9834-8, a UUID is either guaranteed to be\n\t//   different from all other UUIDs generated before 3603 A.D., or is\n\t//   extremely likely to be different (depending on the mechanism chosen).\n\t//\n\t// Therefore, UIDs between clusters should be extremely unlikely to\n\t// conflict.\n\tK8SClusterUIDKey = attribute.Key(\"k8s.cluster.uid\")\n\n\t// K8SContainerNameKey is the attribute Key conforming to the\n\t// \"k8s.container.name\" semantic conventions. It represents the name of the\n\t// Container from Pod specification, must be unique within a Pod. Container\n\t// runtime usually uses different globally unique name (`container.name`).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'redis'\n\tK8SContainerNameKey = attribute.Key(\"k8s.container.name\")\n\n\t// K8SContainerRestartCountKey is the attribute Key conforming to the\n\t// \"k8s.container.restart_count\" semantic conventions. It represents the\n\t// number of times the container was restarted. This attribute can be used\n\t// to identify a particular container (running or stopped) within a\n\t// container spec.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 0, 2\n\tK8SContainerRestartCountKey = attribute.Key(\"k8s.container.restart_count\")\n\n\t// K8SCronJobNameKey is the attribute Key conforming to the\n\t// \"k8s.cronjob.name\" semantic conventions. It represents the name of the\n\t// CronJob.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry'\n\tK8SCronJobNameKey = attribute.Key(\"k8s.cronjob.name\")\n\n\t// K8SCronJobUIDKey is the attribute Key conforming to the\n\t// \"k8s.cronjob.uid\" semantic conventions. It represents the UID of the\n\t// CronJob.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SCronJobUIDKey = attribute.Key(\"k8s.cronjob.uid\")\n\n\t// K8SDaemonSetNameKey is the attribute Key conforming to the\n\t// \"k8s.daemonset.name\" semantic conventions. It represents the name of the\n\t// DaemonSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry'\n\tK8SDaemonSetNameKey = attribute.Key(\"k8s.daemonset.name\")\n\n\t// K8SDaemonSetUIDKey is the attribute Key conforming to the\n\t// \"k8s.daemonset.uid\" semantic conventions. It represents the UID of the\n\t// DaemonSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SDaemonSetUIDKey = attribute.Key(\"k8s.daemonset.uid\")\n\n\t// K8SDeploymentNameKey is the attribute Key conforming to the\n\t// \"k8s.deployment.name\" semantic conventions. It represents the name of\n\t// the Deployment.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry'\n\tK8SDeploymentNameKey = attribute.Key(\"k8s.deployment.name\")\n\n\t// K8SDeploymentUIDKey is the attribute Key conforming to the\n\t// \"k8s.deployment.uid\" semantic conventions. It represents the UID of the\n\t// Deployment.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SDeploymentUIDKey = attribute.Key(\"k8s.deployment.uid\")\n\n\t// K8SJobNameKey is the attribute Key conforming to the \"k8s.job.name\"\n\t// semantic conventions. It represents the name of the Job.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry'\n\tK8SJobNameKey = attribute.Key(\"k8s.job.name\")\n\n\t// K8SJobUIDKey is the attribute Key conforming to the \"k8s.job.uid\"\n\t// semantic conventions. It represents the UID of the Job.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SJobUIDKey = attribute.Key(\"k8s.job.uid\")\n\n\t// K8SNamespaceNameKey is the attribute Key conforming to the\n\t// \"k8s.namespace.name\" semantic conventions. It represents the name of the\n\t// namespace that the pod is running in.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'default'\n\tK8SNamespaceNameKey = attribute.Key(\"k8s.namespace.name\")\n\n\t// K8SNodeNameKey is the attribute Key conforming to the \"k8s.node.name\"\n\t// semantic conventions. It represents the name of the Node.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'node-1'\n\tK8SNodeNameKey = attribute.Key(\"k8s.node.name\")\n\n\t// K8SNodeUIDKey is the attribute Key conforming to the \"k8s.node.uid\"\n\t// semantic conventions. It represents the UID of the Node.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2'\n\tK8SNodeUIDKey = attribute.Key(\"k8s.node.uid\")\n\n\t// K8SPodNameKey is the attribute Key conforming to the \"k8s.pod.name\"\n\t// semantic conventions. It represents the name of the Pod.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry-pod-autoconf'\n\tK8SPodNameKey = attribute.Key(\"k8s.pod.name\")\n\n\t// K8SPodUIDKey is the attribute Key conforming to the \"k8s.pod.uid\"\n\t// semantic conventions. It represents the UID of the Pod.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SPodUIDKey = attribute.Key(\"k8s.pod.uid\")\n\n\t// K8SReplicaSetNameKey is the attribute Key conforming to the\n\t// \"k8s.replicaset.name\" semantic conventions. It represents the name of\n\t// the ReplicaSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry'\n\tK8SReplicaSetNameKey = attribute.Key(\"k8s.replicaset.name\")\n\n\t// K8SReplicaSetUIDKey is the attribute Key conforming to the\n\t// \"k8s.replicaset.uid\" semantic conventions. It represents the UID of the\n\t// ReplicaSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SReplicaSetUIDKey = attribute.Key(\"k8s.replicaset.uid\")\n\n\t// K8SStatefulSetNameKey is the attribute Key conforming to the\n\t// \"k8s.statefulset.name\" semantic conventions. It represents the name of\n\t// the StatefulSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry'\n\tK8SStatefulSetNameKey = attribute.Key(\"k8s.statefulset.name\")\n\n\t// K8SStatefulSetUIDKey is the attribute Key conforming to the\n\t// \"k8s.statefulset.uid\" semantic conventions. It represents the UID of the\n\t// StatefulSet.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'\n\tK8SStatefulSetUIDKey = attribute.Key(\"k8s.statefulset.uid\")\n)\n\n// K8SClusterName returns an attribute KeyValue conforming to the\n// \"k8s.cluster.name\" semantic conventions. It represents the name of the\n// cluster.\nfunc K8SClusterName(val string) attribute.KeyValue {\n\treturn K8SClusterNameKey.String(val)\n}\n\n// K8SClusterUID returns an attribute KeyValue conforming to the\n// \"k8s.cluster.uid\" semantic conventions. It represents a pseudo-ID for the\n// cluster, set to the UID of the `kube-system` namespace.\nfunc K8SClusterUID(val string) attribute.KeyValue {\n\treturn K8SClusterUIDKey.String(val)\n}\n\n// K8SContainerName returns an attribute KeyValue conforming to the\n// \"k8s.container.name\" semantic conventions. It represents the name of the\n// Container from Pod specification, must be unique within a Pod. Container\n// runtime usually uses different globally unique name (`container.name`).\nfunc K8SContainerName(val string) attribute.KeyValue {\n\treturn K8SContainerNameKey.String(val)\n}\n\n// K8SContainerRestartCount returns an attribute KeyValue conforming to the\n// \"k8s.container.restart_count\" semantic conventions. It represents the number\n// of times the container was restarted. This attribute can be used to identify\n// a particular container (running or stopped) within a container spec.\nfunc K8SContainerRestartCount(val int) attribute.KeyValue {\n\treturn K8SContainerRestartCountKey.Int(val)\n}\n\n// K8SCronJobName returns an attribute KeyValue conforming to the\n// \"k8s.cronjob.name\" semantic conventions. It represents the name of the\n// CronJob.\nfunc K8SCronJobName(val string) attribute.KeyValue {\n\treturn K8SCronJobNameKey.String(val)\n}\n\n// K8SCronJobUID returns an attribute KeyValue conforming to the\n// \"k8s.cronjob.uid\" semantic conventions. It represents the UID of the\n// CronJob.\nfunc K8SCronJobUID(val string) attribute.KeyValue {\n\treturn K8SCronJobUIDKey.String(val)\n}\n\n// K8SDaemonSetName returns an attribute KeyValue conforming to the\n// \"k8s.daemonset.name\" semantic conventions. It represents the name of the\n// DaemonSet.\nfunc K8SDaemonSetName(val string) attribute.KeyValue {\n\treturn K8SDaemonSetNameKey.String(val)\n}\n\n// K8SDaemonSetUID returns an attribute KeyValue conforming to the\n// \"k8s.daemonset.uid\" semantic conventions. It represents the UID of the\n// DaemonSet.\nfunc K8SDaemonSetUID(val string) attribute.KeyValue {\n\treturn K8SDaemonSetUIDKey.String(val)\n}\n\n// K8SDeploymentName returns an attribute KeyValue conforming to the\n// \"k8s.deployment.name\" semantic conventions. It represents the name of the\n// Deployment.\nfunc K8SDeploymentName(val string) attribute.KeyValue {\n\treturn K8SDeploymentNameKey.String(val)\n}\n\n// K8SDeploymentUID returns an attribute KeyValue conforming to the\n// \"k8s.deployment.uid\" semantic conventions. It represents the UID of the\n// Deployment.\nfunc K8SDeploymentUID(val string) attribute.KeyValue {\n\treturn K8SDeploymentUIDKey.String(val)\n}\n\n// K8SJobName returns an attribute KeyValue conforming to the \"k8s.job.name\"\n// semantic conventions. It represents the name of the Job.\nfunc K8SJobName(val string) attribute.KeyValue {\n\treturn K8SJobNameKey.String(val)\n}\n\n// K8SJobUID returns an attribute KeyValue conforming to the \"k8s.job.uid\"\n// semantic conventions. It represents the UID of the Job.\nfunc K8SJobUID(val string) attribute.KeyValue {\n\treturn K8SJobUIDKey.String(val)\n}\n\n// K8SNamespaceName returns an attribute KeyValue conforming to the\n// \"k8s.namespace.name\" semantic conventions. It represents the name of the\n// namespace that the pod is running in.\nfunc K8SNamespaceName(val string) attribute.KeyValue {\n\treturn K8SNamespaceNameKey.String(val)\n}\n\n// K8SNodeName returns an attribute KeyValue conforming to the\n// \"k8s.node.name\" semantic conventions. It represents the name of the Node.\nfunc K8SNodeName(val string) attribute.KeyValue {\n\treturn K8SNodeNameKey.String(val)\n}\n\n// K8SNodeUID returns an attribute KeyValue conforming to the \"k8s.node.uid\"\n// semantic conventions. It represents the UID of the Node.\nfunc K8SNodeUID(val string) attribute.KeyValue {\n\treturn K8SNodeUIDKey.String(val)\n}\n\n// K8SPodName returns an attribute KeyValue conforming to the \"k8s.pod.name\"\n// semantic conventions. It represents the name of the Pod.\nfunc K8SPodName(val string) attribute.KeyValue {\n\treturn K8SPodNameKey.String(val)\n}\n\n// K8SPodUID returns an attribute KeyValue conforming to the \"k8s.pod.uid\"\n// semantic conventions. It represents the UID of the Pod.\nfunc K8SPodUID(val string) attribute.KeyValue {\n\treturn K8SPodUIDKey.String(val)\n}\n\n// K8SReplicaSetName returns an attribute KeyValue conforming to the\n// \"k8s.replicaset.name\" semantic conventions. It represents the name of the\n// ReplicaSet.\nfunc K8SReplicaSetName(val string) attribute.KeyValue {\n\treturn K8SReplicaSetNameKey.String(val)\n}\n\n// K8SReplicaSetUID returns an attribute KeyValue conforming to the\n// \"k8s.replicaset.uid\" semantic conventions. It represents the UID of the\n// ReplicaSet.\nfunc K8SReplicaSetUID(val string) attribute.KeyValue {\n\treturn K8SReplicaSetUIDKey.String(val)\n}\n\n// K8SStatefulSetName returns an attribute KeyValue conforming to the\n// \"k8s.statefulset.name\" semantic conventions. It represents the name of the\n// StatefulSet.\nfunc K8SStatefulSetName(val string) attribute.KeyValue {\n\treturn K8SStatefulSetNameKey.String(val)\n}\n\n// K8SStatefulSetUID returns an attribute KeyValue conforming to the\n// \"k8s.statefulset.uid\" semantic conventions. It represents the UID of the\n// StatefulSet.\nfunc K8SStatefulSetUID(val string) attribute.KeyValue {\n\treturn K8SStatefulSetUIDKey.String(val)\n}\n\n// An OCI image manifest.\nconst (\n\t// OciManifestDigestKey is the attribute Key conforming to the\n\t// \"oci.manifest.digest\" semantic conventions. It represents the digest of\n\t// the OCI image manifest. For container images specifically is the digest\n\t// by which the container image is known.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples:\n\t// 'sha256:e4ca62c0d62f3e886e684806dfe9d4e0cda60d54986898173c1083856cfda0f4'\n\t// Note: Follows [OCI Image Manifest\n\t// Specification](https://github.com/opencontainers/image-spec/blob/main/manifest.md),\n\t// and specifically the [Digest\n\t// property](https://github.com/opencontainers/image-spec/blob/main/descriptor.md#digests).\n\t// An example can be found in [Example Image\n\t// Manifest](https://docs.docker.com/registry/spec/manifest-v2-2/#example-image-manifest).\n\tOciManifestDigestKey = attribute.Key(\"oci.manifest.digest\")\n)\n\n// OciManifestDigest returns an attribute KeyValue conforming to the\n// \"oci.manifest.digest\" semantic conventions. It represents the digest of the\n// OCI image manifest. For container images specifically is the digest by which\n// the container image is known.\nfunc OciManifestDigest(val string) attribute.KeyValue {\n\treturn OciManifestDigestKey.String(val)\n}\n\n// The operating system (OS) on which the process represented by this resource\n// is running.\nconst (\n\t// OSBuildIDKey is the attribute Key conforming to the \"os.build_id\"\n\t// semantic conventions. It represents the unique identifier for a\n\t// particular build or compilation of the operating system.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'TQ3C.230805.001.B2', '20E247', '22621'\n\tOSBuildIDKey = attribute.Key(\"os.build_id\")\n\n\t// OSDescriptionKey is the attribute Key conforming to the \"os.description\"\n\t// semantic conventions. It represents the human readable (not intended to\n\t// be parsed) OS version information, like e.g. reported by `ver` or\n\t// `lsb_release -a` commands.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Microsoft Windows [Version 10.0.18363.778]', 'Ubuntu 18.04.1\n\t// LTS'\n\tOSDescriptionKey = attribute.Key(\"os.description\")\n\n\t// OSNameKey is the attribute Key conforming to the \"os.name\" semantic\n\t// conventions. It represents the human readable operating system name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'iOS', 'Android', 'Ubuntu'\n\tOSNameKey = attribute.Key(\"os.name\")\n\n\t// OSTypeKey is the attribute Key conforming to the \"os.type\" semantic\n\t// conventions. It represents the operating system type.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tOSTypeKey = attribute.Key(\"os.type\")\n\n\t// OSVersionKey is the attribute Key conforming to the \"os.version\"\n\t// semantic conventions. It represents the version string of the operating\n\t// system as defined in [Version\n\t// Attributes](/docs/resource/README.md#version-attributes).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '14.2.1', '18.04.1'\n\tOSVersionKey = attribute.Key(\"os.version\")\n)\n\nvar (\n\t// Microsoft Windows\n\tOSTypeWindows = OSTypeKey.String(\"windows\")\n\t// Linux\n\tOSTypeLinux = OSTypeKey.String(\"linux\")\n\t// Apple Darwin\n\tOSTypeDarwin = OSTypeKey.String(\"darwin\")\n\t// FreeBSD\n\tOSTypeFreeBSD = OSTypeKey.String(\"freebsd\")\n\t// NetBSD\n\tOSTypeNetBSD = OSTypeKey.String(\"netbsd\")\n\t// OpenBSD\n\tOSTypeOpenBSD = OSTypeKey.String(\"openbsd\")\n\t// DragonFly BSD\n\tOSTypeDragonflyBSD = OSTypeKey.String(\"dragonflybsd\")\n\t// HP-UX (Hewlett Packard Unix)\n\tOSTypeHPUX = OSTypeKey.String(\"hpux\")\n\t// AIX (Advanced Interactive eXecutive)\n\tOSTypeAIX = OSTypeKey.String(\"aix\")\n\t// SunOS, Oracle Solaris\n\tOSTypeSolaris = OSTypeKey.String(\"solaris\")\n\t// IBM z/OS\n\tOSTypeZOS = OSTypeKey.String(\"z_os\")\n)\n\n// OSBuildID returns an attribute KeyValue conforming to the \"os.build_id\"\n// semantic conventions. It represents the unique identifier for a particular\n// build or compilation of the operating system.\nfunc OSBuildID(val string) attribute.KeyValue {\n\treturn OSBuildIDKey.String(val)\n}\n\n// OSDescription returns an attribute KeyValue conforming to the\n// \"os.description\" semantic conventions. It represents the human readable (not\n// intended to be parsed) OS version information, like e.g. reported by `ver`\n// or `lsb_release -a` commands.\nfunc OSDescription(val string) attribute.KeyValue {\n\treturn OSDescriptionKey.String(val)\n}\n\n// OSName returns an attribute KeyValue conforming to the \"os.name\" semantic\n// conventions. It represents the human readable operating system name.\nfunc OSName(val string) attribute.KeyValue {\n\treturn OSNameKey.String(val)\n}\n\n// OSVersion returns an attribute KeyValue conforming to the \"os.version\"\n// semantic conventions. It represents the version string of the operating\n// system as defined in [Version\n// Attributes](/docs/resource/README.md#version-attributes).\nfunc OSVersion(val string) attribute.KeyValue {\n\treturn OSVersionKey.String(val)\n}\n\n// An operating system process.\nconst (\n\t// ProcessCommandKey is the attribute Key conforming to the\n\t// \"process.command\" semantic conventions. It represents the command used\n\t// to launch the process (i.e. the command name). On Linux based systems,\n\t// can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can\n\t// be set to the first parameter extracted from `GetCommandLineW`.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'cmd/otelcol'\n\tProcessCommandKey = attribute.Key(\"process.command\")\n\n\t// ProcessCommandArgsKey is the attribute Key conforming to the\n\t// \"process.command_args\" semantic conventions. It represents the all the\n\t// command arguments (including the command/executable itself) as received\n\t// by the process. On Linux-based systems (and some other Unixoid systems\n\t// supporting procfs), can be set according to the list of null-delimited\n\t// strings extracted from `proc/[pid]/cmdline`. For libc-based executables,\n\t// this would be the full argv vector passed to `main`.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'cmd/otecol', '--config=config.yaml'\n\tProcessCommandArgsKey = attribute.Key(\"process.command_args\")\n\n\t// ProcessCommandLineKey is the attribute Key conforming to the\n\t// \"process.command_line\" semantic conventions. It represents the full\n\t// command used to launch the process as a single string representing the\n\t// full command. On Windows, can be set to the result of `GetCommandLineW`.\n\t// Do not set this if you have to assemble it just for monitoring; use\n\t// `process.command_args` instead.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'C:\\\\cmd\\\\otecol --config=\"my directory\\\\config.yaml\"'\n\tProcessCommandLineKey = attribute.Key(\"process.command_line\")\n\n\t// ProcessExecutableNameKey is the attribute Key conforming to the\n\t// \"process.executable.name\" semantic conventions. It represents the name\n\t// of the process executable. On Linux based systems, can be set to the\n\t// `Name` in `proc/[pid]/status`. On Windows, can be set to the base name\n\t// of `GetProcessImageFileNameW`.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'otelcol'\n\tProcessExecutableNameKey = attribute.Key(\"process.executable.name\")\n\n\t// ProcessExecutablePathKey is the attribute Key conforming to the\n\t// \"process.executable.path\" semantic conventions. It represents the full\n\t// path to the process executable. On Linux based systems, can be set to\n\t// the target of `proc/[pid]/exe`. On Windows, can be set to the result of\n\t// `GetProcessImageFileNameW`.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '/usr/bin/cmd/otelcol'\n\tProcessExecutablePathKey = attribute.Key(\"process.executable.path\")\n\n\t// ProcessOwnerKey is the attribute Key conforming to the \"process.owner\"\n\t// semantic conventions. It represents the username of the user that owns\n\t// the process.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'root'\n\tProcessOwnerKey = attribute.Key(\"process.owner\")\n\n\t// ProcessParentPIDKey is the attribute Key conforming to the\n\t// \"process.parent_pid\" semantic conventions. It represents the parent\n\t// Process identifier (PPID).\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 111\n\tProcessParentPIDKey = attribute.Key(\"process.parent_pid\")\n\n\t// ProcessPIDKey is the attribute Key conforming to the \"process.pid\"\n\t// semantic conventions. It represents the process identifier (PID).\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 1234\n\tProcessPIDKey = attribute.Key(\"process.pid\")\n\n\t// ProcessRuntimeDescriptionKey is the attribute Key conforming to the\n\t// \"process.runtime.description\" semantic conventions. It represents an\n\t// additional description about the runtime of the process, for example a\n\t// specific vendor customization of the runtime environment.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0'\n\tProcessRuntimeDescriptionKey = attribute.Key(\"process.runtime.description\")\n\n\t// ProcessRuntimeNameKey is the attribute Key conforming to the\n\t// \"process.runtime.name\" semantic conventions. It represents the name of\n\t// the runtime of this process. For compiled native binaries, this SHOULD\n\t// be the name of the compiler.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'OpenJDK Runtime Environment'\n\tProcessRuntimeNameKey = attribute.Key(\"process.runtime.name\")\n\n\t// ProcessRuntimeVersionKey is the attribute Key conforming to the\n\t// \"process.runtime.version\" semantic conventions. It represents the\n\t// version of the runtime of this process, as returned by the runtime\n\t// without modification.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '14.0.2'\n\tProcessRuntimeVersionKey = attribute.Key(\"process.runtime.version\")\n)\n\n// ProcessCommand returns an attribute KeyValue conforming to the\n// \"process.command\" semantic conventions. It represents the command used to\n// launch the process (i.e. the command name). On Linux based systems, can be\n// set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to\n// the first parameter extracted from `GetCommandLineW`.\nfunc ProcessCommand(val string) attribute.KeyValue {\n\treturn ProcessCommandKey.String(val)\n}\n\n// ProcessCommandArgs returns an attribute KeyValue conforming to the\n// \"process.command_args\" semantic conventions. It represents the all the\n// command arguments (including the command/executable itself) as received by\n// the process. On Linux-based systems (and some other Unixoid systems\n// supporting procfs), can be set according to the list of null-delimited\n// strings extracted from `proc/[pid]/cmdline`. For libc-based executables,\n// this would be the full argv vector passed to `main`.\nfunc ProcessCommandArgs(val ...string) attribute.KeyValue {\n\treturn ProcessCommandArgsKey.StringSlice(val)\n}\n\n// ProcessCommandLine returns an attribute KeyValue conforming to the\n// \"process.command_line\" semantic conventions. It represents the full command\n// used to launch the process as a single string representing the full command.\n// On Windows, can be set to the result of `GetCommandLineW`. Do not set this\n// if you have to assemble it just for monitoring; use `process.command_args`\n// instead.\nfunc ProcessCommandLine(val string) attribute.KeyValue {\n\treturn ProcessCommandLineKey.String(val)\n}\n\n// ProcessExecutableName returns an attribute KeyValue conforming to the\n// \"process.executable.name\" semantic conventions. It represents the name of\n// the process executable. On Linux based systems, can be set to the `Name` in\n// `proc/[pid]/status`. On Windows, can be set to the base name of\n// `GetProcessImageFileNameW`.\nfunc ProcessExecutableName(val string) attribute.KeyValue {\n\treturn ProcessExecutableNameKey.String(val)\n}\n\n// ProcessExecutablePath returns an attribute KeyValue conforming to the\n// \"process.executable.path\" semantic conventions. It represents the full path\n// to the process executable. On Linux based systems, can be set to the target\n// of `proc/[pid]/exe`. On Windows, can be set to the result of\n// `GetProcessImageFileNameW`.\nfunc ProcessExecutablePath(val string) attribute.KeyValue {\n\treturn ProcessExecutablePathKey.String(val)\n}\n\n// ProcessOwner returns an attribute KeyValue conforming to the\n// \"process.owner\" semantic conventions. It represents the username of the user\n// that owns the process.\nfunc ProcessOwner(val string) attribute.KeyValue {\n\treturn ProcessOwnerKey.String(val)\n}\n\n// ProcessParentPID returns an attribute KeyValue conforming to the\n// \"process.parent_pid\" semantic conventions. It represents the parent Process\n// identifier (PPID).\nfunc ProcessParentPID(val int) attribute.KeyValue {\n\treturn ProcessParentPIDKey.Int(val)\n}\n\n// ProcessPID returns an attribute KeyValue conforming to the \"process.pid\"\n// semantic conventions. It represents the process identifier (PID).\nfunc ProcessPID(val int) attribute.KeyValue {\n\treturn ProcessPIDKey.Int(val)\n}\n\n// ProcessRuntimeDescription returns an attribute KeyValue conforming to the\n// \"process.runtime.description\" semantic conventions. It represents an\n// additional description about the runtime of the process, for example a\n// specific vendor customization of the runtime environment.\nfunc ProcessRuntimeDescription(val string) attribute.KeyValue {\n\treturn ProcessRuntimeDescriptionKey.String(val)\n}\n\n// ProcessRuntimeName returns an attribute KeyValue conforming to the\n// \"process.runtime.name\" semantic conventions. It represents the name of the\n// runtime of this process. For compiled native binaries, this SHOULD be the\n// name of the compiler.\nfunc ProcessRuntimeName(val string) attribute.KeyValue {\n\treturn ProcessRuntimeNameKey.String(val)\n}\n\n// ProcessRuntimeVersion returns an attribute KeyValue conforming to the\n// \"process.runtime.version\" semantic conventions. It represents the version of\n// the runtime of this process, as returned by the runtime without\n// modification.\nfunc ProcessRuntimeVersion(val string) attribute.KeyValue {\n\treturn ProcessRuntimeVersionKey.String(val)\n}\n\n// The Android platform on which the Android application is running.\nconst (\n\t// AndroidOSAPILevelKey is the attribute Key conforming to the\n\t// \"android.os.api_level\" semantic conventions. It represents the uniquely\n\t// identifies the framework API revision offered by a version\n\t// (`os.version`) of the android operating system. More information can be\n\t// found\n\t// [here](https://developer.android.com/guide/topics/manifest/uses-sdk-element#APILevels).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '33', '32'\n\tAndroidOSAPILevelKey = attribute.Key(\"android.os.api_level\")\n)\n\n// AndroidOSAPILevel returns an attribute KeyValue conforming to the\n// \"android.os.api_level\" semantic conventions. It represents the uniquely\n// identifies the framework API revision offered by a version (`os.version`) of\n// the android operating system. More information can be found\n// [here](https://developer.android.com/guide/topics/manifest/uses-sdk-element#APILevels).\nfunc AndroidOSAPILevel(val string) attribute.KeyValue {\n\treturn AndroidOSAPILevelKey.String(val)\n}\n\n// The web browser in which the application represented by the resource is\n// running. The `browser.*` attributes MUST be used only for resources that\n// represent applications running in a web browser (regardless of whether\n// running on a mobile or desktop device).\nconst (\n\t// BrowserBrandsKey is the attribute Key conforming to the \"browser.brands\"\n\t// semantic conventions. It represents the array of brand name and version\n\t// separated by a space\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: ' Not A;Brand 99', 'Chromium 99', 'Chrome 99'\n\t// Note: This value is intended to be taken from the [UA client hints\n\t// API](https://wicg.github.io/ua-client-hints/#interface)\n\t// (`navigator.userAgentData.brands`).\n\tBrowserBrandsKey = attribute.Key(\"browser.brands\")\n\n\t// BrowserLanguageKey is the attribute Key conforming to the\n\t// \"browser.language\" semantic conventions. It represents the preferred\n\t// language of the user using the browser\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'en', 'en-US', 'fr', 'fr-FR'\n\t// Note: This value is intended to be taken from the Navigator API\n\t// `navigator.language`.\n\tBrowserLanguageKey = attribute.Key(\"browser.language\")\n\n\t// BrowserMobileKey is the attribute Key conforming to the \"browser.mobile\"\n\t// semantic conventions. It represents a boolean that is true if the\n\t// browser is running on a mobile device\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Note: This value is intended to be taken from the [UA client hints\n\t// API](https://wicg.github.io/ua-client-hints/#interface)\n\t// (`navigator.userAgentData.mobile`). If unavailable, this attribute\n\t// SHOULD be left unset.\n\tBrowserMobileKey = attribute.Key(\"browser.mobile\")\n\n\t// BrowserPlatformKey is the attribute Key conforming to the\n\t// \"browser.platform\" semantic conventions. It represents the platform on\n\t// which the browser is running\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Windows', 'macOS', 'Android'\n\t// Note: This value is intended to be taken from the [UA client hints\n\t// API](https://wicg.github.io/ua-client-hints/#interface)\n\t// (`navigator.userAgentData.platform`). If unavailable, the legacy\n\t// `navigator.platform` API SHOULD NOT be used instead and this attribute\n\t// SHOULD be left unset in order for the values to be consistent.\n\t// The list of possible values is defined in the [W3C User-Agent Client\n\t// Hints\n\t// specification](https://wicg.github.io/ua-client-hints/#sec-ch-ua-platform).\n\t// Note that some (but not all) of these values can overlap with values in\n\t// the [`os.type` and `os.name` attributes](./os.md). However, for\n\t// consistency, the values in the `browser.platform` attribute should\n\t// capture the exact value that the user agent provides.\n\tBrowserPlatformKey = attribute.Key(\"browser.platform\")\n)\n\n// BrowserBrands returns an attribute KeyValue conforming to the\n// \"browser.brands\" semantic conventions. It represents the array of brand name\n// and version separated by a space\nfunc BrowserBrands(val ...string) attribute.KeyValue {\n\treturn BrowserBrandsKey.StringSlice(val)\n}\n\n// BrowserLanguage returns an attribute KeyValue conforming to the\n// \"browser.language\" semantic conventions. It represents the preferred\n// language of the user using the browser\nfunc BrowserLanguage(val string) attribute.KeyValue {\n\treturn BrowserLanguageKey.String(val)\n}\n\n// BrowserMobile returns an attribute KeyValue conforming to the\n// \"browser.mobile\" semantic conventions. It represents a boolean that is true\n// if the browser is running on a mobile device\nfunc BrowserMobile(val bool) attribute.KeyValue {\n\treturn BrowserMobileKey.Bool(val)\n}\n\n// BrowserPlatform returns an attribute KeyValue conforming to the\n// \"browser.platform\" semantic conventions. It represents the platform on which\n// the browser is running\nfunc BrowserPlatform(val string) attribute.KeyValue {\n\treturn BrowserPlatformKey.String(val)\n}\n\n// Resources used by AWS Elastic Container Service (ECS).\nconst (\n\t// AWSECSClusterARNKey is the attribute Key conforming to the\n\t// \"aws.ecs.cluster.arn\" semantic conventions. It represents the ARN of an\n\t// [ECS\n\t// cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster'\n\tAWSECSClusterARNKey = attribute.Key(\"aws.ecs.cluster.arn\")\n\n\t// AWSECSContainerARNKey is the attribute Key conforming to the\n\t// \"aws.ecs.container.arn\" semantic conventions. It represents the Amazon\n\t// Resource Name (ARN) of an [ECS container\n\t// instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples:\n\t// 'arn:aws:ecs:us-west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9'\n\tAWSECSContainerARNKey = attribute.Key(\"aws.ecs.container.arn\")\n\n\t// AWSECSLaunchtypeKey is the attribute Key conforming to the\n\t// \"aws.ecs.launchtype\" semantic conventions. It represents the [launch\n\t// type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html)\n\t// for an ECS task.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tAWSECSLaunchtypeKey = attribute.Key(\"aws.ecs.launchtype\")\n\n\t// AWSECSTaskARNKey is the attribute Key conforming to the\n\t// \"aws.ecs.task.arn\" semantic conventions. It represents the ARN of an\n\t// [ECS task\n\t// definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples:\n\t// 'arn:aws:ecs:us-west-1:123456789123:task/10838bed-421f-43ef-870a-f43feacbbb5b'\n\tAWSECSTaskARNKey = attribute.Key(\"aws.ecs.task.arn\")\n\n\t// AWSECSTaskFamilyKey is the attribute Key conforming to the\n\t// \"aws.ecs.task.family\" semantic conventions. It represents the task\n\t// definition family this task definition is a member of.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'opentelemetry-family'\n\tAWSECSTaskFamilyKey = attribute.Key(\"aws.ecs.task.family\")\n\n\t// AWSECSTaskRevisionKey is the attribute Key conforming to the\n\t// \"aws.ecs.task.revision\" semantic conventions. It represents the revision\n\t// for this task definition.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '8', '26'\n\tAWSECSTaskRevisionKey = attribute.Key(\"aws.ecs.task.revision\")\n)\n\nvar (\n\t// ec2\n\tAWSECSLaunchtypeEC2 = AWSECSLaunchtypeKey.String(\"ec2\")\n\t// fargate\n\tAWSECSLaunchtypeFargate = AWSECSLaunchtypeKey.String(\"fargate\")\n)\n\n// AWSECSClusterARN returns an attribute KeyValue conforming to the\n// \"aws.ecs.cluster.arn\" semantic conventions. It represents the ARN of an [ECS\n// cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).\nfunc AWSECSClusterARN(val string) attribute.KeyValue {\n\treturn AWSECSClusterARNKey.String(val)\n}\n\n// AWSECSContainerARN returns an attribute KeyValue conforming to the\n// \"aws.ecs.container.arn\" semantic conventions. It represents the Amazon\n// Resource Name (ARN) of an [ECS container\n// instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).\nfunc AWSECSContainerARN(val string) attribute.KeyValue {\n\treturn AWSECSContainerARNKey.String(val)\n}\n\n// AWSECSTaskARN returns an attribute KeyValue conforming to the\n// \"aws.ecs.task.arn\" semantic conventions. It represents the ARN of an [ECS\n// task\n// definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html).\nfunc AWSECSTaskARN(val string) attribute.KeyValue {\n\treturn AWSECSTaskARNKey.String(val)\n}\n\n// AWSECSTaskFamily returns an attribute KeyValue conforming to the\n// \"aws.ecs.task.family\" semantic conventions. It represents the task\n// definition family this task definition is a member of.\nfunc AWSECSTaskFamily(val string) attribute.KeyValue {\n\treturn AWSECSTaskFamilyKey.String(val)\n}\n\n// AWSECSTaskRevision returns an attribute KeyValue conforming to the\n// \"aws.ecs.task.revision\" semantic conventions. It represents the revision for\n// this task definition.\nfunc AWSECSTaskRevision(val string) attribute.KeyValue {\n\treturn AWSECSTaskRevisionKey.String(val)\n}\n\n// Resources used by AWS Elastic Kubernetes Service (EKS).\nconst (\n\t// AWSEKSClusterARNKey is the attribute Key conforming to the\n\t// \"aws.eks.cluster.arn\" semantic conventions. It represents the ARN of an\n\t// EKS cluster.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster'\n\tAWSEKSClusterARNKey = attribute.Key(\"aws.eks.cluster.arn\")\n)\n\n// AWSEKSClusterARN returns an attribute KeyValue conforming to the\n// \"aws.eks.cluster.arn\" semantic conventions. It represents the ARN of an EKS\n// cluster.\nfunc AWSEKSClusterARN(val string) attribute.KeyValue {\n\treturn AWSEKSClusterARNKey.String(val)\n}\n\n// Resources specific to Amazon Web Services.\nconst (\n\t// AWSLogGroupARNsKey is the attribute Key conforming to the\n\t// \"aws.log.group.arns\" semantic conventions. It represents the Amazon\n\t// Resource Name(s) (ARN) of the AWS log group(s).\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples:\n\t// 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*'\n\t// Note: See the [log group ARN format\n\t// documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).\n\tAWSLogGroupARNsKey = attribute.Key(\"aws.log.group.arns\")\n\n\t// AWSLogGroupNamesKey is the attribute Key conforming to the\n\t// \"aws.log.group.names\" semantic conventions. It represents the name(s) of\n\t// the AWS log group(s) an application is writing to.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '/aws/lambda/my-function', 'opentelemetry-service'\n\t// Note: Multiple log groups must be supported for cases like\n\t// multi-container applications, where a single application has sidecar\n\t// containers, and each write to their own log group.\n\tAWSLogGroupNamesKey = attribute.Key(\"aws.log.group.names\")\n\n\t// AWSLogStreamARNsKey is the attribute Key conforming to the\n\t// \"aws.log.stream.arns\" semantic conventions. It represents the ARN(s) of\n\t// the AWS log stream(s).\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples:\n\t// 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b'\n\t// Note: See the [log stream ARN format\n\t// documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).\n\t// One log group can contain several log streams, so these ARNs necessarily\n\t// identify both a log group and a log stream.\n\tAWSLogStreamARNsKey = attribute.Key(\"aws.log.stream.arns\")\n\n\t// AWSLogStreamNamesKey is the attribute Key conforming to the\n\t// \"aws.log.stream.names\" semantic conventions. It represents the name(s)\n\t// of the AWS log stream(s) an application is writing to.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'logs/main/10838bed-421f-43ef-870a-f43feacbbb5b'\n\tAWSLogStreamNamesKey = attribute.Key(\"aws.log.stream.names\")\n)\n\n// AWSLogGroupARNs returns an attribute KeyValue conforming to the\n// \"aws.log.group.arns\" semantic conventions. It represents the Amazon Resource\n// Name(s) (ARN) of the AWS log group(s).\nfunc AWSLogGroupARNs(val ...string) attribute.KeyValue {\n\treturn AWSLogGroupARNsKey.StringSlice(val)\n}\n\n// AWSLogGroupNames returns an attribute KeyValue conforming to the\n// \"aws.log.group.names\" semantic conventions. It represents the name(s) of the\n// AWS log group(s) an application is writing to.\nfunc AWSLogGroupNames(val ...string) attribute.KeyValue {\n\treturn AWSLogGroupNamesKey.StringSlice(val)\n}\n\n// AWSLogStreamARNs returns an attribute KeyValue conforming to the\n// \"aws.log.stream.arns\" semantic conventions. It represents the ARN(s) of the\n// AWS log stream(s).\nfunc AWSLogStreamARNs(val ...string) attribute.KeyValue {\n\treturn AWSLogStreamARNsKey.StringSlice(val)\n}\n\n// AWSLogStreamNames returns an attribute KeyValue conforming to the\n// \"aws.log.stream.names\" semantic conventions. It represents the name(s) of\n// the AWS log stream(s) an application is writing to.\nfunc AWSLogStreamNames(val ...string) attribute.KeyValue {\n\treturn AWSLogStreamNamesKey.StringSlice(val)\n}\n\n// Resource used by Google Cloud Run.\nconst (\n\t// GCPCloudRunJobExecutionKey is the attribute Key conforming to the\n\t// \"gcp.cloud_run.job.execution\" semantic conventions. It represents the\n\t// name of the Cloud Run\n\t// [execution](https://cloud.google.com/run/docs/managing/job-executions)\n\t// being run for the Job, as set by the\n\t// [`CLOUD_RUN_EXECUTION`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars)\n\t// environment variable.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'job-name-xxxx', 'sample-job-mdw84'\n\tGCPCloudRunJobExecutionKey = attribute.Key(\"gcp.cloud_run.job.execution\")\n\n\t// GCPCloudRunJobTaskIndexKey is the attribute Key conforming to the\n\t// \"gcp.cloud_run.job.task_index\" semantic conventions. It represents the\n\t// index for a task within an execution as provided by the\n\t// [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars)\n\t// environment variable.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 0, 1\n\tGCPCloudRunJobTaskIndexKey = attribute.Key(\"gcp.cloud_run.job.task_index\")\n)\n\n// GCPCloudRunJobExecution returns an attribute KeyValue conforming to the\n// \"gcp.cloud_run.job.execution\" semantic conventions. It represents the name\n// of the Cloud Run\n// [execution](https://cloud.google.com/run/docs/managing/job-executions) being\n// run for the Job, as set by the\n// [`CLOUD_RUN_EXECUTION`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars)\n// environment variable.\nfunc GCPCloudRunJobExecution(val string) attribute.KeyValue {\n\treturn GCPCloudRunJobExecutionKey.String(val)\n}\n\n// GCPCloudRunJobTaskIndex returns an attribute KeyValue conforming to the\n// \"gcp.cloud_run.job.task_index\" semantic conventions. It represents the index\n// for a task within an execution as provided by the\n// [`CLOUD_RUN_TASK_INDEX`](https://cloud.google.com/run/docs/container-contract#jobs-env-vars)\n// environment variable.\nfunc GCPCloudRunJobTaskIndex(val int) attribute.KeyValue {\n\treturn GCPCloudRunJobTaskIndexKey.Int(val)\n}\n\n// Resources used by Google Compute Engine (GCE).\nconst (\n\t// GCPGceInstanceHostnameKey is the attribute Key conforming to the\n\t// \"gcp.gce.instance.hostname\" semantic conventions. It represents the\n\t// hostname of a GCE instance. This is the full value of the default or\n\t// [custom\n\t// hostname](https://cloud.google.com/compute/docs/instances/custom-hostname-vm).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'my-host1234.example.com',\n\t// 'sample-vm.us-west1-b.c.my-project.internal'\n\tGCPGceInstanceHostnameKey = attribute.Key(\"gcp.gce.instance.hostname\")\n\n\t// GCPGceInstanceNameKey is the attribute Key conforming to the\n\t// \"gcp.gce.instance.name\" semantic conventions. It represents the instance\n\t// name of a GCE instance. This is the value provided by `host.name`, the\n\t// visible name of the instance in the Cloud Console UI, and the prefix for\n\t// the default hostname of the instance as defined by the [default internal\n\t// DNS\n\t// name](https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'instance-1', 'my-vm-name'\n\tGCPGceInstanceNameKey = attribute.Key(\"gcp.gce.instance.name\")\n)\n\n// GCPGceInstanceHostname returns an attribute KeyValue conforming to the\n// \"gcp.gce.instance.hostname\" semantic conventions. It represents the hostname\n// of a GCE instance. This is the full value of the default or [custom\n// hostname](https://cloud.google.com/compute/docs/instances/custom-hostname-vm).\nfunc GCPGceInstanceHostname(val string) attribute.KeyValue {\n\treturn GCPGceInstanceHostnameKey.String(val)\n}\n\n// GCPGceInstanceName returns an attribute KeyValue conforming to the\n// \"gcp.gce.instance.name\" semantic conventions. It represents the instance\n// name of a GCE instance. This is the value provided by `host.name`, the\n// visible name of the instance in the Cloud Console UI, and the prefix for the\n// default hostname of the instance as defined by the [default internal DNS\n// name](https://cloud.google.com/compute/docs/internal-dns#instance-fully-qualified-domain-names).\nfunc GCPGceInstanceName(val string) attribute.KeyValue {\n\treturn GCPGceInstanceNameKey.String(val)\n}\n\n// Heroku dyno metadata\nconst (\n\t// HerokuAppIDKey is the attribute Key conforming to the \"heroku.app.id\"\n\t// semantic conventions. It represents the unique identifier for the\n\t// application\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '2daa2797-e42b-4624-9322-ec3f968df4da'\n\tHerokuAppIDKey = attribute.Key(\"heroku.app.id\")\n\n\t// HerokuReleaseCommitKey is the attribute Key conforming to the\n\t// \"heroku.release.commit\" semantic conventions. It represents the commit\n\t// hash for the current release\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'e6134959463efd8966b20e75b913cafe3f5ec'\n\tHerokuReleaseCommitKey = attribute.Key(\"heroku.release.commit\")\n\n\t// HerokuReleaseCreationTimestampKey is the attribute Key conforming to the\n\t// \"heroku.release.creation_timestamp\" semantic conventions. It represents\n\t// the time and date the release was created\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '2022-10-23T18:00:42Z'\n\tHerokuReleaseCreationTimestampKey = attribute.Key(\"heroku.release.creation_timestamp\")\n)\n\n// HerokuAppID returns an attribute KeyValue conforming to the\n// \"heroku.app.id\" semantic conventions. It represents the unique identifier\n// for the application\nfunc HerokuAppID(val string) attribute.KeyValue {\n\treturn HerokuAppIDKey.String(val)\n}\n\n// HerokuReleaseCommit returns an attribute KeyValue conforming to the\n// \"heroku.release.commit\" semantic conventions. It represents the commit hash\n// for the current release\nfunc HerokuReleaseCommit(val string) attribute.KeyValue {\n\treturn HerokuReleaseCommitKey.String(val)\n}\n\n// HerokuReleaseCreationTimestamp returns an attribute KeyValue conforming\n// to the \"heroku.release.creation_timestamp\" semantic conventions. It\n// represents the time and date the release was created\nfunc HerokuReleaseCreationTimestamp(val string) attribute.KeyValue {\n\treturn HerokuReleaseCreationTimestampKey.String(val)\n}\n\n// The software deployment.\nconst (\n\t// DeploymentEnvironmentKey is the attribute Key conforming to the\n\t// \"deployment.environment\" semantic conventions. It represents the name of\n\t// the [deployment\n\t// environment](https://wikipedia.org/wiki/Deployment_environment) (aka\n\t// deployment tier).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'staging', 'production'\n\t// Note: `deployment.environment` does not affect the uniqueness\n\t// constraints defined through\n\t// the `service.namespace`, `service.name` and `service.instance.id`\n\t// resource attributes.\n\t// This implies that resources carrying the following attribute\n\t// combinations MUST be\n\t// considered to be identifying the same service:\n\t//\n\t// * `service.name=frontend`, `deployment.environment=production`\n\t// * `service.name=frontend`, `deployment.environment=staging`.\n\tDeploymentEnvironmentKey = attribute.Key(\"deployment.environment\")\n)\n\n// DeploymentEnvironment returns an attribute KeyValue conforming to the\n// \"deployment.environment\" semantic conventions. It represents the name of the\n// [deployment environment](https://wikipedia.org/wiki/Deployment_environment)\n// (aka deployment tier).\nfunc DeploymentEnvironment(val string) attribute.KeyValue {\n\treturn DeploymentEnvironmentKey.String(val)\n}\n\n// A serverless instance.\nconst (\n\t// FaaSInstanceKey is the attribute Key conforming to the \"faas.instance\"\n\t// semantic conventions. It represents the execution environment ID as a\n\t// string, that will be potentially reused for other invocations to the\n\t// same function/function version.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de'\n\t// Note: * **AWS Lambda:** Use the (full) log stream name.\n\tFaaSInstanceKey = attribute.Key(\"faas.instance\")\n\n\t// FaaSMaxMemoryKey is the attribute Key conforming to the\n\t// \"faas.max_memory\" semantic conventions. It represents the amount of\n\t// memory available to the serverless function converted to Bytes.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 134217728\n\t// Note: It's recommended to set this attribute since e.g. too little\n\t// memory can easily stop a Java AWS Lambda function from working\n\t// correctly. On AWS Lambda, the environment variable\n\t// `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` provides this information (which must\n\t// be multiplied by 1,048,576).\n\tFaaSMaxMemoryKey = attribute.Key(\"faas.max_memory\")\n\n\t// FaaSNameKey is the attribute Key conforming to the \"faas.name\" semantic\n\t// conventions. It represents the name of the single function that this\n\t// runtime instance executes.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'my-function', 'myazurefunctionapp/some-function-name'\n\t// Note: This is the name of the function as configured/deployed on the\n\t// FaaS\n\t// platform and is usually different from the name of the callback\n\t// function (which may be stored in the\n\t// [`code.namespace`/`code.function`](/docs/general/attributes.md#source-code-attributes)\n\t// span attributes).\n\t//\n\t// For some cloud providers, the above definition is ambiguous. The\n\t// following\n\t// definition of function name MUST be used for this attribute\n\t// (and consequently the span name) for the listed cloud\n\t// providers/products:\n\t//\n\t// * **Azure:**  The full name `<FUNCAPP>/<FUNC>`, i.e., function app name\n\t//   followed by a forward slash followed by the function name (this form\n\t//   can also be seen in the resource JSON for the function).\n\t//   This means that a span attribute MUST be used, as an Azure function\n\t//   app can host multiple functions that would usually share\n\t//   a TracerProvider (see also the `cloud.resource_id` attribute).\n\tFaaSNameKey = attribute.Key(\"faas.name\")\n\n\t// FaaSVersionKey is the attribute Key conforming to the \"faas.version\"\n\t// semantic conventions. It represents the immutable version of the\n\t// function being executed.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '26', 'pinkfroid-00002'\n\t// Note: Depending on the cloud provider and platform, use:\n\t//\n\t// * **AWS Lambda:** The [function\n\t// version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)\n\t//   (an integer represented as a decimal string).\n\t// * **Google Cloud Run (Services):** The\n\t// [revision](https://cloud.google.com/run/docs/managing/revisions)\n\t//   (i.e., the function name plus the revision suffix).\n\t// * **Google Cloud Functions:** The value of the\n\t//   [`K_REVISION` environment\n\t// variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically).\n\t// * **Azure Functions:** Not applicable. Do not set this attribute.\n\tFaaSVersionKey = attribute.Key(\"faas.version\")\n)\n\n// FaaSInstance returns an attribute KeyValue conforming to the\n// \"faas.instance\" semantic conventions. It represents the execution\n// environment ID as a string, that will be potentially reused for other\n// invocations to the same function/function version.\nfunc FaaSInstance(val string) attribute.KeyValue {\n\treturn FaaSInstanceKey.String(val)\n}\n\n// FaaSMaxMemory returns an attribute KeyValue conforming to the\n// \"faas.max_memory\" semantic conventions. It represents the amount of memory\n// available to the serverless function converted to Bytes.\nfunc FaaSMaxMemory(val int) attribute.KeyValue {\n\treturn FaaSMaxMemoryKey.Int(val)\n}\n\n// FaaSName returns an attribute KeyValue conforming to the \"faas.name\"\n// semantic conventions. It represents the name of the single function that\n// this runtime instance executes.\nfunc FaaSName(val string) attribute.KeyValue {\n\treturn FaaSNameKey.String(val)\n}\n\n// FaaSVersion returns an attribute KeyValue conforming to the\n// \"faas.version\" semantic conventions. It represents the immutable version of\n// the function being executed.\nfunc FaaSVersion(val string) attribute.KeyValue {\n\treturn FaaSVersionKey.String(val)\n}\n\n// A service instance.\nconst (\n\t// ServiceNameKey is the attribute Key conforming to the \"service.name\"\n\t// semantic conventions. It represents the logical name of the service.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'shoppingcart'\n\t// Note: MUST be the same for all instances of horizontally scaled\n\t// services. If the value was not specified, SDKs MUST fallback to\n\t// `unknown_service:` concatenated with\n\t// [`process.executable.name`](process.md#process), e.g.\n\t// `unknown_service:bash`. If `process.executable.name` is not available,\n\t// the value MUST be set to `unknown_service`.\n\tServiceNameKey = attribute.Key(\"service.name\")\n\n\t// ServiceVersionKey is the attribute Key conforming to the\n\t// \"service.version\" semantic conventions. It represents the version string\n\t// of the service API or implementation. The format is not defined by these\n\t// conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '2.0.0', 'a01dbef8a'\n\tServiceVersionKey = attribute.Key(\"service.version\")\n)\n\n// ServiceName returns an attribute KeyValue conforming to the\n// \"service.name\" semantic conventions. It represents the logical name of the\n// service.\nfunc ServiceName(val string) attribute.KeyValue {\n\treturn ServiceNameKey.String(val)\n}\n\n// ServiceVersion returns an attribute KeyValue conforming to the\n// \"service.version\" semantic conventions. It represents the version string of\n// the service API or implementation. The format is not defined by these\n// conventions.\nfunc ServiceVersion(val string) attribute.KeyValue {\n\treturn ServiceVersionKey.String(val)\n}\n\n// A service instance.\nconst (\n\t// ServiceInstanceIDKey is the attribute Key conforming to the\n\t// \"service.instance.id\" semantic conventions. It represents the string ID\n\t// of the service instance.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'my-k8s-pod-deployment-1',\n\t// '627cc493-f310-47de-96bd-71410b7dec09'\n\t// Note: MUST be unique for each instance of the same\n\t// `service.namespace,service.name` pair (in other words\n\t// `service.namespace,service.name,service.instance.id` triplet MUST be\n\t// globally unique). The ID helps to distinguish instances of the same\n\t// service that exist at the same time (e.g. instances of a horizontally\n\t// scaled service). It is preferable for the ID to be persistent and stay\n\t// the same for the lifetime of the service instance, however it is\n\t// acceptable that the ID is ephemeral and changes during important\n\t// lifetime events for the service (e.g. service restarts). If the service\n\t// has no inherent unique ID that can be used as the value of this\n\t// attribute it is recommended to generate a random Version 1 or Version 4\n\t// RFC 4122 UUID (services aiming for reproducible UUIDs may also use\n\t// Version 5, see RFC 4122 for more recommendations).\n\tServiceInstanceIDKey = attribute.Key(\"service.instance.id\")\n\n\t// ServiceNamespaceKey is the attribute Key conforming to the\n\t// \"service.namespace\" semantic conventions. It represents a namespace for\n\t// `service.name`.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Shop'\n\t// Note: A string value having a meaning that helps to distinguish a group\n\t// of services, for example the team name that owns a group of services.\n\t// `service.name` is expected to be unique within the same namespace. If\n\t// `service.namespace` is not specified in the Resource then `service.name`\n\t// is expected to be unique for all services that have no explicit\n\t// namespace defined (so the empty/unspecified namespace is simply one more\n\t// valid namespace). Zero-length namespace string is assumed equal to\n\t// unspecified namespace.\n\tServiceNamespaceKey = attribute.Key(\"service.namespace\")\n)\n\n// ServiceInstanceID returns an attribute KeyValue conforming to the\n// \"service.instance.id\" semantic conventions. It represents the string ID of\n// the service instance.\nfunc ServiceInstanceID(val string) attribute.KeyValue {\n\treturn ServiceInstanceIDKey.String(val)\n}\n\n// ServiceNamespace returns an attribute KeyValue conforming to the\n// \"service.namespace\" semantic conventions. It represents a namespace for\n// `service.name`.\nfunc ServiceNamespace(val string) attribute.KeyValue {\n\treturn ServiceNamespaceKey.String(val)\n}\n\n// The telemetry SDK used to capture data recorded by the instrumentation\n// libraries.\nconst (\n\t// TelemetrySDKLanguageKey is the attribute Key conforming to the\n\t// \"telemetry.sdk.language\" semantic conventions. It represents the\n\t// language of the telemetry SDK.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\tTelemetrySDKLanguageKey = attribute.Key(\"telemetry.sdk.language\")\n\n\t// TelemetrySDKNameKey is the attribute Key conforming to the\n\t// \"telemetry.sdk.name\" semantic conventions. It represents the name of the\n\t// telemetry SDK as defined above.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'opentelemetry'\n\t// Note: The OpenTelemetry SDK MUST set the `telemetry.sdk.name` attribute\n\t// to `opentelemetry`.\n\t// If another SDK, like a fork or a vendor-provided implementation, is\n\t// used, this SDK MUST set the\n\t// `telemetry.sdk.name` attribute to the fully-qualified class or module\n\t// name of this SDK's main entry point\n\t// or another suitable identifier depending on the language.\n\t// The identifier `opentelemetry` is reserved and MUST NOT be used in this\n\t// case.\n\t// All custom identifiers SHOULD be stable across different versions of an\n\t// implementation.\n\tTelemetrySDKNameKey = attribute.Key(\"telemetry.sdk.name\")\n\n\t// TelemetrySDKVersionKey is the attribute Key conforming to the\n\t// \"telemetry.sdk.version\" semantic conventions. It represents the version\n\t// string of the telemetry SDK.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: '1.2.3'\n\tTelemetrySDKVersionKey = attribute.Key(\"telemetry.sdk.version\")\n)\n\nvar (\n\t// cpp\n\tTelemetrySDKLanguageCPP = TelemetrySDKLanguageKey.String(\"cpp\")\n\t// dotnet\n\tTelemetrySDKLanguageDotnet = TelemetrySDKLanguageKey.String(\"dotnet\")\n\t// erlang\n\tTelemetrySDKLanguageErlang = TelemetrySDKLanguageKey.String(\"erlang\")\n\t// go\n\tTelemetrySDKLanguageGo = TelemetrySDKLanguageKey.String(\"go\")\n\t// java\n\tTelemetrySDKLanguageJava = TelemetrySDKLanguageKey.String(\"java\")\n\t// nodejs\n\tTelemetrySDKLanguageNodejs = TelemetrySDKLanguageKey.String(\"nodejs\")\n\t// php\n\tTelemetrySDKLanguagePHP = TelemetrySDKLanguageKey.String(\"php\")\n\t// python\n\tTelemetrySDKLanguagePython = TelemetrySDKLanguageKey.String(\"python\")\n\t// ruby\n\tTelemetrySDKLanguageRuby = TelemetrySDKLanguageKey.String(\"ruby\")\n\t// rust\n\tTelemetrySDKLanguageRust = TelemetrySDKLanguageKey.String(\"rust\")\n\t// swift\n\tTelemetrySDKLanguageSwift = TelemetrySDKLanguageKey.String(\"swift\")\n\t// webjs\n\tTelemetrySDKLanguageWebjs = TelemetrySDKLanguageKey.String(\"webjs\")\n)\n\n// TelemetrySDKName returns an attribute KeyValue conforming to the\n// \"telemetry.sdk.name\" semantic conventions. It represents the name of the\n// telemetry SDK as defined above.\nfunc TelemetrySDKName(val string) attribute.KeyValue {\n\treturn TelemetrySDKNameKey.String(val)\n}\n\n// TelemetrySDKVersion returns an attribute KeyValue conforming to the\n// \"telemetry.sdk.version\" semantic conventions. It represents the version\n// string of the telemetry SDK.\nfunc TelemetrySDKVersion(val string) attribute.KeyValue {\n\treturn TelemetrySDKVersionKey.String(val)\n}\n\n// The telemetry SDK used to capture data recorded by the instrumentation\n// libraries.\nconst (\n\t// TelemetryDistroNameKey is the attribute Key conforming to the\n\t// \"telemetry.distro.name\" semantic conventions. It represents the name of\n\t// the auto instrumentation agent or distribution, if used.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'parts-unlimited-java'\n\t// Note: Official auto instrumentation agents and distributions SHOULD set\n\t// the `telemetry.distro.name` attribute to\n\t// a string starting with `opentelemetry-`, e.g.\n\t// `opentelemetry-java-instrumentation`.\n\tTelemetryDistroNameKey = attribute.Key(\"telemetry.distro.name\")\n\n\t// TelemetryDistroVersionKey is the attribute Key conforming to the\n\t// \"telemetry.distro.version\" semantic conventions. It represents the\n\t// version string of the auto instrumentation agent or distribution, if\n\t// used.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '1.2.3'\n\tTelemetryDistroVersionKey = attribute.Key(\"telemetry.distro.version\")\n)\n\n// TelemetryDistroName returns an attribute KeyValue conforming to the\n// \"telemetry.distro.name\" semantic conventions. It represents the name of the\n// auto instrumentation agent or distribution, if used.\nfunc TelemetryDistroName(val string) attribute.KeyValue {\n\treturn TelemetryDistroNameKey.String(val)\n}\n\n// TelemetryDistroVersion returns an attribute KeyValue conforming to the\n// \"telemetry.distro.version\" semantic conventions. It represents the version\n// string of the auto instrumentation agent or distribution, if used.\nfunc TelemetryDistroVersion(val string) attribute.KeyValue {\n\treturn TelemetryDistroVersionKey.String(val)\n}\n\n// Resource describing the packaged software running the application code. Web\n// engines are typically executed using process.runtime.\nconst (\n\t// WebEngineDescriptionKey is the attribute Key conforming to the\n\t// \"webengine.description\" semantic conventions. It represents the\n\t// additional description of the web engine (e.g. detailed version and\n\t// edition information).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) -\n\t// 2.2.2.Final'\n\tWebEngineDescriptionKey = attribute.Key(\"webengine.description\")\n\n\t// WebEngineNameKey is the attribute Key conforming to the \"webengine.name\"\n\t// semantic conventions. It represents the name of the web engine.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'WildFly'\n\tWebEngineNameKey = attribute.Key(\"webengine.name\")\n\n\t// WebEngineVersionKey is the attribute Key conforming to the\n\t// \"webengine.version\" semantic conventions. It represents the version of\n\t// the web engine.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '21.0.0'\n\tWebEngineVersionKey = attribute.Key(\"webengine.version\")\n)\n\n// WebEngineDescription returns an attribute KeyValue conforming to the\n// \"webengine.description\" semantic conventions. It represents the additional\n// description of the web engine (e.g. detailed version and edition\n// information).\nfunc WebEngineDescription(val string) attribute.KeyValue {\n\treturn WebEngineDescriptionKey.String(val)\n}\n\n// WebEngineName returns an attribute KeyValue conforming to the\n// \"webengine.name\" semantic conventions. It represents the name of the web\n// engine.\nfunc WebEngineName(val string) attribute.KeyValue {\n\treturn WebEngineNameKey.String(val)\n}\n\n// WebEngineVersion returns an attribute KeyValue conforming to the\n// \"webengine.version\" semantic conventions. It represents the version of the\n// web engine.\nfunc WebEngineVersion(val string) attribute.KeyValue {\n\treturn WebEngineVersionKey.String(val)\n}\n\n// Attributes used by non-OTLP exporters to represent OpenTelemetry Scope's\n// concepts.\nconst (\n\t// OTelScopeNameKey is the attribute Key conforming to the\n\t// \"otel.scope.name\" semantic conventions. It represents the name of the\n\t// instrumentation scope - (`InstrumentationScope.Name` in OTLP).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'io.opentelemetry.contrib.mongodb'\n\tOTelScopeNameKey = attribute.Key(\"otel.scope.name\")\n\n\t// OTelScopeVersionKey is the attribute Key conforming to the\n\t// \"otel.scope.version\" semantic conventions. It represents the version of\n\t// the instrumentation scope - (`InstrumentationScope.Version` in OTLP).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '1.0.0'\n\tOTelScopeVersionKey = attribute.Key(\"otel.scope.version\")\n)\n\n// OTelScopeName returns an attribute KeyValue conforming to the\n// \"otel.scope.name\" semantic conventions. It represents the name of the\n// instrumentation scope - (`InstrumentationScope.Name` in OTLP).\nfunc OTelScopeName(val string) attribute.KeyValue {\n\treturn OTelScopeNameKey.String(val)\n}\n\n// OTelScopeVersion returns an attribute KeyValue conforming to the\n// \"otel.scope.version\" semantic conventions. It represents the version of the\n// instrumentation scope - (`InstrumentationScope.Version` in OTLP).\nfunc OTelScopeVersion(val string) attribute.KeyValue {\n\treturn OTelScopeVersionKey.String(val)\n}\n\n// Span attributes used by non-OTLP exporters to represent OpenTelemetry\n// Scope's concepts.\nconst (\n\t// OTelLibraryNameKey is the attribute Key conforming to the\n\t// \"otel.library.name\" semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: 'io.opentelemetry.contrib.mongodb'\n\t// Deprecated: use the `otel.scope.name` attribute.\n\tOTelLibraryNameKey = attribute.Key(\"otel.library.name\")\n\n\t// OTelLibraryVersionKey is the attribute Key conforming to the\n\t// \"otel.library.version\" semantic conventions.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: deprecated\n\t// Examples: '1.0.0'\n\t// Deprecated: use the `otel.scope.version` attribute.\n\tOTelLibraryVersionKey = attribute.Key(\"otel.library.version\")\n)\n\n// OTelLibraryName returns an attribute KeyValue conforming to the\n// \"otel.library.name\" semantic conventions.\n//\n// Deprecated: use the `otel.scope.name` attribute.\nfunc OTelLibraryName(val string) attribute.KeyValue {\n\treturn OTelLibraryNameKey.String(val)\n}\n\n// OTelLibraryVersion returns an attribute KeyValue conforming to the\n// \"otel.library.version\" semantic conventions.\n//\n// Deprecated: use the `otel.scope.version` attribute.\nfunc OTelLibraryVersion(val string) attribute.KeyValue {\n\treturn OTelLibraryVersionKey.String(val)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.24.0/schema.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.24.0\"\n\n// SchemaURL is the schema URL that matches the version of the semantic conventions\n// that this package defines. Semconv packages starting from v1.4.0 must declare\n// non-empty schema URL in the form https://opentelemetry.io/schemas/<version>\nconst SchemaURL = \"https://opentelemetry.io/schemas/1.24.0\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/semconv/v1.24.0/trace.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Code generated from semantic convention specification. DO NOT EDIT.\n\npackage semconv // import \"go.opentelemetry.io/otel/semconv/v1.24.0\"\n\nimport \"go.opentelemetry.io/otel/attribute\"\n\n// Operations that access some remote service.\nconst (\n\t// PeerServiceKey is the attribute Key conforming to the \"peer.service\"\n\t// semantic conventions. It represents the\n\t// [`service.name`](/docs/resource/README.md#service) of the remote\n\t// service. SHOULD be equal to the actual `service.name` resource attribute\n\t// of the remote service if any.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'AuthTokenCache'\n\tPeerServiceKey = attribute.Key(\"peer.service\")\n)\n\n// PeerService returns an attribute KeyValue conforming to the\n// \"peer.service\" semantic conventions. It represents the\n// [`service.name`](/docs/resource/README.md#service) of the remote service.\n// SHOULD be equal to the actual `service.name` resource attribute of the\n// remote service if any.\nfunc PeerService(val string) attribute.KeyValue {\n\treturn PeerServiceKey.String(val)\n}\n\n// These attributes may be used for any operation with an authenticated and/or\n// authorized enduser.\nconst (\n\t// EnduserIDKey is the attribute Key conforming to the \"enduser.id\"\n\t// semantic conventions. It represents the username or client_id extracted\n\t// from the access token or\n\t// [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header\n\t// in the inbound request from outside the system.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'username'\n\tEnduserIDKey = attribute.Key(\"enduser.id\")\n\n\t// EnduserRoleKey is the attribute Key conforming to the \"enduser.role\"\n\t// semantic conventions. It represents the actual/assumed role the client\n\t// is making the request under extracted from token or application security\n\t// context.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'admin'\n\tEnduserRoleKey = attribute.Key(\"enduser.role\")\n\n\t// EnduserScopeKey is the attribute Key conforming to the \"enduser.scope\"\n\t// semantic conventions. It represents the scopes or granted authorities\n\t// the client currently possesses extracted from token or application\n\t// security context. The value would come from the scope associated with an\n\t// [OAuth 2.0 Access\n\t// Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute\n\t// value in a [SAML 2.0\n\t// Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'read:message, write:files'\n\tEnduserScopeKey = attribute.Key(\"enduser.scope\")\n)\n\n// EnduserID returns an attribute KeyValue conforming to the \"enduser.id\"\n// semantic conventions. It represents the username or client_id extracted from\n// the access token or\n// [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in\n// the inbound request from outside the system.\nfunc EnduserID(val string) attribute.KeyValue {\n\treturn EnduserIDKey.String(val)\n}\n\n// EnduserRole returns an attribute KeyValue conforming to the\n// \"enduser.role\" semantic conventions. It represents the actual/assumed role\n// the client is making the request under extracted from token or application\n// security context.\nfunc EnduserRole(val string) attribute.KeyValue {\n\treturn EnduserRoleKey.String(val)\n}\n\n// EnduserScope returns an attribute KeyValue conforming to the\n// \"enduser.scope\" semantic conventions. It represents the scopes or granted\n// authorities the client currently possesses extracted from token or\n// application security context. The value would come from the scope associated\n// with an [OAuth 2.0 Access\n// Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute\n// value in a [SAML 2.0\n// Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).\nfunc EnduserScope(val string) attribute.KeyValue {\n\treturn EnduserScopeKey.String(val)\n}\n\n// These attributes allow to report this unit of code and therefore to provide\n// more context about the span.\nconst (\n\t// CodeColumnKey is the attribute Key conforming to the \"code.column\"\n\t// semantic conventions. It represents the column number in `code.filepath`\n\t// best representing the operation. It SHOULD point within the code unit\n\t// named in `code.function`.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 16\n\tCodeColumnKey = attribute.Key(\"code.column\")\n\n\t// CodeFilepathKey is the attribute Key conforming to the \"code.filepath\"\n\t// semantic conventions. It represents the source code file name that\n\t// identifies the code unit as uniquely as possible (preferably an absolute\n\t// file path).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '/usr/local/MyApplication/content_root/app/index.php'\n\tCodeFilepathKey = attribute.Key(\"code.filepath\")\n\n\t// CodeFunctionKey is the attribute Key conforming to the \"code.function\"\n\t// semantic conventions. It represents the method or function name, or\n\t// equivalent (usually rightmost part of the code unit's name).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'serveRequest'\n\tCodeFunctionKey = attribute.Key(\"code.function\")\n\n\t// CodeLineNumberKey is the attribute Key conforming to the \"code.lineno\"\n\t// semantic conventions. It represents the line number in `code.filepath`\n\t// best representing the operation. It SHOULD point within the code unit\n\t// named in `code.function`.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 42\n\tCodeLineNumberKey = attribute.Key(\"code.lineno\")\n\n\t// CodeNamespaceKey is the attribute Key conforming to the \"code.namespace\"\n\t// semantic conventions. It represents the \"namespace\" within which\n\t// `code.function` is defined. Usually the qualified class or module name,\n\t// such that `code.namespace` + some separator + `code.function` form a\n\t// unique identifier for the code unit.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'com.example.MyHTTPService'\n\tCodeNamespaceKey = attribute.Key(\"code.namespace\")\n\n\t// CodeStacktraceKey is the attribute Key conforming to the\n\t// \"code.stacktrace\" semantic conventions. It represents a stacktrace as a\n\t// string in the natural representation for the language runtime. The\n\t// representation is to be determined and documented by each language SIG.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'at\n\t// com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\\\n at '\n\t//  'com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\\\n at '\n\t//  'com.example.GenerateTrace.main(GenerateTrace.java:5)'\n\tCodeStacktraceKey = attribute.Key(\"code.stacktrace\")\n)\n\n// CodeColumn returns an attribute KeyValue conforming to the \"code.column\"\n// semantic conventions. It represents the column number in `code.filepath`\n// best representing the operation. It SHOULD point within the code unit named\n// in `code.function`.\nfunc CodeColumn(val int) attribute.KeyValue {\n\treturn CodeColumnKey.Int(val)\n}\n\n// CodeFilepath returns an attribute KeyValue conforming to the\n// \"code.filepath\" semantic conventions. It represents the source code file\n// name that identifies the code unit as uniquely as possible (preferably an\n// absolute file path).\nfunc CodeFilepath(val string) attribute.KeyValue {\n\treturn CodeFilepathKey.String(val)\n}\n\n// CodeFunction returns an attribute KeyValue conforming to the\n// \"code.function\" semantic conventions. It represents the method or function\n// name, or equivalent (usually rightmost part of the code unit's name).\nfunc CodeFunction(val string) attribute.KeyValue {\n\treturn CodeFunctionKey.String(val)\n}\n\n// CodeLineNumber returns an attribute KeyValue conforming to the \"code.lineno\"\n// semantic conventions. It represents the line number in `code.filepath` best\n// representing the operation. It SHOULD point within the code unit named in\n// `code.function`.\nfunc CodeLineNumber(val int) attribute.KeyValue {\n\treturn CodeLineNumberKey.Int(val)\n}\n\n// CodeNamespace returns an attribute KeyValue conforming to the\n// \"code.namespace\" semantic conventions. It represents the \"namespace\" within\n// which `code.function` is defined. Usually the qualified class or module\n// name, such that `code.namespace` + some separator + `code.function` form a\n// unique identifier for the code unit.\nfunc CodeNamespace(val string) attribute.KeyValue {\n\treturn CodeNamespaceKey.String(val)\n}\n\n// CodeStacktrace returns an attribute KeyValue conforming to the\n// \"code.stacktrace\" semantic conventions. It represents a stacktrace as a\n// string in the natural representation for the language runtime. The\n// representation is to be determined and documented by each language SIG.\nfunc CodeStacktrace(val string) attribute.KeyValue {\n\treturn CodeStacktraceKey.String(val)\n}\n\n// These attributes may be used for any operation to store information about a\n// thread that started a span.\nconst (\n\t// ThreadIDKey is the attribute Key conforming to the \"thread.id\" semantic\n\t// conventions. It represents the current \"managed\" thread ID (as opposed\n\t// to OS thread ID).\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 42\n\tThreadIDKey = attribute.Key(\"thread.id\")\n\n\t// ThreadNameKey is the attribute Key conforming to the \"thread.name\"\n\t// semantic conventions. It represents the current thread name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'main'\n\tThreadNameKey = attribute.Key(\"thread.name\")\n)\n\n// ThreadID returns an attribute KeyValue conforming to the \"thread.id\"\n// semantic conventions. It represents the current \"managed\" thread ID (as\n// opposed to OS thread ID).\nfunc ThreadID(val int) attribute.KeyValue {\n\treturn ThreadIDKey.Int(val)\n}\n\n// ThreadName returns an attribute KeyValue conforming to the \"thread.name\"\n// semantic conventions. It represents the current thread name.\nfunc ThreadName(val string) attribute.KeyValue {\n\treturn ThreadNameKey.String(val)\n}\n\n// Span attributes used by AWS Lambda (in addition to general `faas`\n// attributes).\nconst (\n\t// AWSLambdaInvokedARNKey is the attribute Key conforming to the\n\t// \"aws.lambda.invoked_arn\" semantic conventions. It represents the full\n\t// invoked ARN as provided on the `Context` passed to the function\n\t// (`Lambda-Runtime-Invoked-Function-ARN` header on the\n\t// `/runtime/invocation/next` applicable).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'arn:aws:lambda:us-east-1:123456:function:myfunction:myalias'\n\t// Note: This may be different from `cloud.resource_id` if an alias is\n\t// involved.\n\tAWSLambdaInvokedARNKey = attribute.Key(\"aws.lambda.invoked_arn\")\n)\n\n// AWSLambdaInvokedARN returns an attribute KeyValue conforming to the\n// \"aws.lambda.invoked_arn\" semantic conventions. It represents the full\n// invoked ARN as provided on the `Context` passed to the function\n// (`Lambda-Runtime-Invoked-Function-ARN` header on the\n// `/runtime/invocation/next` applicable).\nfunc AWSLambdaInvokedARN(val string) attribute.KeyValue {\n\treturn AWSLambdaInvokedARNKey.String(val)\n}\n\n// Attributes for CloudEvents. CloudEvents is a specification on how to define\n// event data in a standard way. These attributes can be attached to spans when\n// performing operations with CloudEvents, regardless of the protocol being\n// used.\nconst (\n\t// CloudeventsEventIDKey is the attribute Key conforming to the\n\t// \"cloudevents.event_id\" semantic conventions. It represents the\n\t// [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id)\n\t// uniquely identifies the event.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: '123e4567-e89b-12d3-a456-426614174000', '0001'\n\tCloudeventsEventIDKey = attribute.Key(\"cloudevents.event_id\")\n\n\t// CloudeventsEventSourceKey is the attribute Key conforming to the\n\t// \"cloudevents.event_source\" semantic conventions. It represents the\n\t// [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1)\n\t// identifies the context in which an event happened.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'https://github.com/cloudevents',\n\t// '/cloudevents/spec/pull/123', 'my-service'\n\tCloudeventsEventSourceKey = attribute.Key(\"cloudevents.event_source\")\n\n\t// CloudeventsEventSpecVersionKey is the attribute Key conforming to the\n\t// \"cloudevents.event_spec_version\" semantic conventions. It represents the\n\t// [version of the CloudEvents\n\t// specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion)\n\t// which the event uses.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '1.0'\n\tCloudeventsEventSpecVersionKey = attribute.Key(\"cloudevents.event_spec_version\")\n\n\t// CloudeventsEventSubjectKey is the attribute Key conforming to the\n\t// \"cloudevents.event_subject\" semantic conventions. It represents the\n\t// [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject)\n\t// of the event in the context of the event producer (identified by\n\t// source).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'mynewfile.jpg'\n\tCloudeventsEventSubjectKey = attribute.Key(\"cloudevents.event_subject\")\n\n\t// CloudeventsEventTypeKey is the attribute Key conforming to the\n\t// \"cloudevents.event_type\" semantic conventions. It represents the\n\t// [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type)\n\t// contains a value describing the type of event related to the originating\n\t// occurrence.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'com.github.pull_request.opened',\n\t// 'com.example.object.deleted.v2'\n\tCloudeventsEventTypeKey = attribute.Key(\"cloudevents.event_type\")\n)\n\n// CloudeventsEventID returns an attribute KeyValue conforming to the\n// \"cloudevents.event_id\" semantic conventions. It represents the\n// [event_id](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#id)\n// uniquely identifies the event.\nfunc CloudeventsEventID(val string) attribute.KeyValue {\n\treturn CloudeventsEventIDKey.String(val)\n}\n\n// CloudeventsEventSource returns an attribute KeyValue conforming to the\n// \"cloudevents.event_source\" semantic conventions. It represents the\n// [source](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#source-1)\n// identifies the context in which an event happened.\nfunc CloudeventsEventSource(val string) attribute.KeyValue {\n\treturn CloudeventsEventSourceKey.String(val)\n}\n\n// CloudeventsEventSpecVersion returns an attribute KeyValue conforming to\n// the \"cloudevents.event_spec_version\" semantic conventions. It represents the\n// [version of the CloudEvents\n// specification](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#specversion)\n// which the event uses.\nfunc CloudeventsEventSpecVersion(val string) attribute.KeyValue {\n\treturn CloudeventsEventSpecVersionKey.String(val)\n}\n\n// CloudeventsEventSubject returns an attribute KeyValue conforming to the\n// \"cloudevents.event_subject\" semantic conventions. It represents the\n// [subject](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#subject)\n// of the event in the context of the event producer (identified by source).\nfunc CloudeventsEventSubject(val string) attribute.KeyValue {\n\treturn CloudeventsEventSubjectKey.String(val)\n}\n\n// CloudeventsEventType returns an attribute KeyValue conforming to the\n// \"cloudevents.event_type\" semantic conventions. It represents the\n// [event_type](https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents/spec.md#type)\n// contains a value describing the type of event related to the originating\n// occurrence.\nfunc CloudeventsEventType(val string) attribute.KeyValue {\n\treturn CloudeventsEventTypeKey.String(val)\n}\n\n// Semantic conventions for the OpenTracing Shim\nconst (\n\t// OpentracingRefTypeKey is the attribute Key conforming to the\n\t// \"opentracing.ref_type\" semantic conventions. It represents the\n\t// parent-child Reference type\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Note: The causal relationship between a child Span and a parent Span.\n\tOpentracingRefTypeKey = attribute.Key(\"opentracing.ref_type\")\n)\n\nvar (\n\t// The parent Span depends on the child Span in some capacity\n\tOpentracingRefTypeChildOf = OpentracingRefTypeKey.String(\"child_of\")\n\t// The parent Span doesn't depend in any way on the result of the child Span\n\tOpentracingRefTypeFollowsFrom = OpentracingRefTypeKey.String(\"follows_from\")\n)\n\n// Span attributes used by non-OTLP exporters to represent OpenTelemetry Span's\n// concepts.\nconst (\n\t// OTelStatusCodeKey is the attribute Key conforming to the\n\t// \"otel.status_code\" semantic conventions. It represents the name of the\n\t// code, either \"OK\" or \"ERROR\". MUST NOT be set if the status code is\n\t// UNSET.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tOTelStatusCodeKey = attribute.Key(\"otel.status_code\")\n\n\t// OTelStatusDescriptionKey is the attribute Key conforming to the\n\t// \"otel.status_description\" semantic conventions. It represents the\n\t// description of the Status if it has a value, otherwise not set.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'resource not found'\n\tOTelStatusDescriptionKey = attribute.Key(\"otel.status_description\")\n)\n\nvar (\n\t// The operation has been validated by an Application developer or Operator to have completed successfully\n\tOTelStatusCodeOk = OTelStatusCodeKey.String(\"OK\")\n\t// The operation contains an error\n\tOTelStatusCodeError = OTelStatusCodeKey.String(\"ERROR\")\n)\n\n// OTelStatusDescription returns an attribute KeyValue conforming to the\n// \"otel.status_description\" semantic conventions. It represents the\n// description of the Status if it has a value, otherwise not set.\nfunc OTelStatusDescription(val string) attribute.KeyValue {\n\treturn OTelStatusDescriptionKey.String(val)\n}\n\n// This semantic convention describes an instance of a function that runs\n// without provisioning or managing of servers (also known as serverless\n// functions or Function as a Service (FaaS)) with spans.\nconst (\n\t// FaaSInvocationIDKey is the attribute Key conforming to the\n\t// \"faas.invocation_id\" semantic conventions. It represents the invocation\n\t// ID of the current function invocation.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'af9d5aa4-a685-4c5f-a22b-444f80b3cc28'\n\tFaaSInvocationIDKey = attribute.Key(\"faas.invocation_id\")\n)\n\n// FaaSInvocationID returns an attribute KeyValue conforming to the\n// \"faas.invocation_id\" semantic conventions. It represents the invocation ID\n// of the current function invocation.\nfunc FaaSInvocationID(val string) attribute.KeyValue {\n\treturn FaaSInvocationIDKey.String(val)\n}\n\n// Semantic Convention for FaaS triggered as a response to some data source\n// operation such as a database or filesystem read/write.\nconst (\n\t// FaaSDocumentCollectionKey is the attribute Key conforming to the\n\t// \"faas.document.collection\" semantic conventions. It represents the name\n\t// of the source on which the triggering operation was performed. For\n\t// example, in Cloud Storage or S3 corresponds to the bucket name, and in\n\t// Cosmos DB to the database name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\t// Examples: 'myBucketName', 'myDBName'\n\tFaaSDocumentCollectionKey = attribute.Key(\"faas.document.collection\")\n\n\t// FaaSDocumentNameKey is the attribute Key conforming to the\n\t// \"faas.document.name\" semantic conventions. It represents the document\n\t// name/table subjected to the operation. For example, in Cloud Storage or\n\t// S3 is the name of the file, and in Cosmos DB the table name.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'myFile.txt', 'myTableName'\n\tFaaSDocumentNameKey = attribute.Key(\"faas.document.name\")\n\n\t// FaaSDocumentOperationKey is the attribute Key conforming to the\n\t// \"faas.document.operation\" semantic conventions. It represents the\n\t// describes the type of the operation that was performed on the data.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Required\n\t// Stability: experimental\n\tFaaSDocumentOperationKey = attribute.Key(\"faas.document.operation\")\n\n\t// FaaSDocumentTimeKey is the attribute Key conforming to the\n\t// \"faas.document.time\" semantic conventions. It represents a string\n\t// containing the time when the data was accessed in the [ISO\n\t// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format\n\t// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '2020-01-23T13:47:06Z'\n\tFaaSDocumentTimeKey = attribute.Key(\"faas.document.time\")\n)\n\nvar (\n\t// When a new object is created\n\tFaaSDocumentOperationInsert = FaaSDocumentOperationKey.String(\"insert\")\n\t// When an object is modified\n\tFaaSDocumentOperationEdit = FaaSDocumentOperationKey.String(\"edit\")\n\t// When an object is deleted\n\tFaaSDocumentOperationDelete = FaaSDocumentOperationKey.String(\"delete\")\n)\n\n// FaaSDocumentCollection returns an attribute KeyValue conforming to the\n// \"faas.document.collection\" semantic conventions. It represents the name of\n// the source on which the triggering operation was performed. For example, in\n// Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the\n// database name.\nfunc FaaSDocumentCollection(val string) attribute.KeyValue {\n\treturn FaaSDocumentCollectionKey.String(val)\n}\n\n// FaaSDocumentName returns an attribute KeyValue conforming to the\n// \"faas.document.name\" semantic conventions. It represents the document\n// name/table subjected to the operation. For example, in Cloud Storage or S3\n// is the name of the file, and in Cosmos DB the table name.\nfunc FaaSDocumentName(val string) attribute.KeyValue {\n\treturn FaaSDocumentNameKey.String(val)\n}\n\n// FaaSDocumentTime returns an attribute KeyValue conforming to the\n// \"faas.document.time\" semantic conventions. It represents a string containing\n// the time when the data was accessed in the [ISO\n// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format\n// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\nfunc FaaSDocumentTime(val string) attribute.KeyValue {\n\treturn FaaSDocumentTimeKey.String(val)\n}\n\n// Semantic Convention for FaaS scheduled to be executed regularly.\nconst (\n\t// FaaSCronKey is the attribute Key conforming to the \"faas.cron\" semantic\n\t// conventions. It represents a string containing the schedule period as\n\t// [Cron\n\t// Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '0/5 * * * ? *'\n\tFaaSCronKey = attribute.Key(\"faas.cron\")\n\n\t// FaaSTimeKey is the attribute Key conforming to the \"faas.time\" semantic\n\t// conventions. It represents a string containing the function invocation\n\t// time in the [ISO\n\t// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format\n\t// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '2020-01-23T13:47:06Z'\n\tFaaSTimeKey = attribute.Key(\"faas.time\")\n)\n\n// FaaSCron returns an attribute KeyValue conforming to the \"faas.cron\"\n// semantic conventions. It represents a string containing the schedule period\n// as [Cron\n// Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).\nfunc FaaSCron(val string) attribute.KeyValue {\n\treturn FaaSCronKey.String(val)\n}\n\n// FaaSTime returns an attribute KeyValue conforming to the \"faas.time\"\n// semantic conventions. It represents a string containing the function\n// invocation time in the [ISO\n// 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format\n// expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\nfunc FaaSTime(val string) attribute.KeyValue {\n\treturn FaaSTimeKey.String(val)\n}\n\n// Contains additional attributes for incoming FaaS spans.\nconst (\n\t// FaaSColdstartKey is the attribute Key conforming to the \"faas.coldstart\"\n\t// semantic conventions. It represents a boolean that is true if the\n\t// serverless function is executed for the first time (aka cold-start).\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tFaaSColdstartKey = attribute.Key(\"faas.coldstart\")\n)\n\n// FaaSColdstart returns an attribute KeyValue conforming to the\n// \"faas.coldstart\" semantic conventions. It represents a boolean that is true\n// if the serverless function is executed for the first time (aka cold-start).\nfunc FaaSColdstart(val bool) attribute.KeyValue {\n\treturn FaaSColdstartKey.Bool(val)\n}\n\n// The `aws` conventions apply to operations using the AWS SDK. They map\n// request or response parameters in AWS SDK API calls to attributes on a Span.\n// The conventions have been collected over time based on feedback from AWS\n// users of tracing and will continue to evolve as new interesting conventions\n// are found.\n// Some descriptions are also provided for populating general OpenTelemetry\n// semantic conventions based on these APIs.\nconst (\n\t// AWSRequestIDKey is the attribute Key conforming to the \"aws.request_id\"\n\t// semantic conventions. It represents the AWS request ID as returned in\n\t// the response headers `x-amz-request-id` or `x-amz-requestid`.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '79b9da39-b7ae-508a-a6bc-864b2829c622', 'C9ER4AJX75574TDJ'\n\tAWSRequestIDKey = attribute.Key(\"aws.request_id\")\n)\n\n// AWSRequestID returns an attribute KeyValue conforming to the\n// \"aws.request_id\" semantic conventions. It represents the AWS request ID as\n// returned in the response headers `x-amz-request-id` or `x-amz-requestid`.\nfunc AWSRequestID(val string) attribute.KeyValue {\n\treturn AWSRequestIDKey.String(val)\n}\n\n// Attributes that exist for multiple DynamoDB request types.\nconst (\n\t// AWSDynamoDBAttributesToGetKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.attributes_to_get\" semantic conventions. It represents the\n\t// value of the `AttributesToGet` request parameter.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'lives', 'id'\n\tAWSDynamoDBAttributesToGetKey = attribute.Key(\"aws.dynamodb.attributes_to_get\")\n\n\t// AWSDynamoDBConsistentReadKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.consistent_read\" semantic conventions. It represents the\n\t// value of the `ConsistentRead` request parameter.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tAWSDynamoDBConsistentReadKey = attribute.Key(\"aws.dynamodb.consistent_read\")\n\n\t// AWSDynamoDBConsumedCapacityKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.consumed_capacity\" semantic conventions. It represents the\n\t// JSON-serialized value of each item in the `ConsumedCapacity` response\n\t// field.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '{ \"CapacityUnits\": number, \"GlobalSecondaryIndexes\": {\n\t// \"string\" : { \"CapacityUnits\": number, \"ReadCapacityUnits\": number,\n\t// \"WriteCapacityUnits\": number } }, \"LocalSecondaryIndexes\": { \"string\" :\n\t// { \"CapacityUnits\": number, \"ReadCapacityUnits\": number,\n\t// \"WriteCapacityUnits\": number } }, \"ReadCapacityUnits\": number, \"Table\":\n\t// { \"CapacityUnits\": number, \"ReadCapacityUnits\": number,\n\t// \"WriteCapacityUnits\": number }, \"TableName\": \"string\",\n\t// \"WriteCapacityUnits\": number }'\n\tAWSDynamoDBConsumedCapacityKey = attribute.Key(\"aws.dynamodb.consumed_capacity\")\n\n\t// AWSDynamoDBIndexNameKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.index_name\" semantic conventions. It represents the value\n\t// of the `IndexName` request parameter.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'name_to_group'\n\tAWSDynamoDBIndexNameKey = attribute.Key(\"aws.dynamodb.index_name\")\n\n\t// AWSDynamoDBItemCollectionMetricsKey is the attribute Key conforming to\n\t// the \"aws.dynamodb.item_collection_metrics\" semantic conventions. It\n\t// represents the JSON-serialized value of the `ItemCollectionMetrics`\n\t// response field.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '{ \"string\" : [ { \"ItemCollectionKey\": { \"string\" : { \"B\":\n\t// blob, \"BOOL\": boolean, \"BS\": [ blob ], \"L\": [ \"AttributeValue\" ], \"M\": {\n\t// \"string\" : \"AttributeValue\" }, \"N\": \"string\", \"NS\": [ \"string\" ],\n\t// \"NULL\": boolean, \"S\": \"string\", \"SS\": [ \"string\" ] } },\n\t// \"SizeEstimateRangeGB\": [ number ] } ] }'\n\tAWSDynamoDBItemCollectionMetricsKey = attribute.Key(\"aws.dynamodb.item_collection_metrics\")\n\n\t// AWSDynamoDBLimitKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.limit\" semantic conventions. It represents the value of\n\t// the `Limit` request parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 10\n\tAWSDynamoDBLimitKey = attribute.Key(\"aws.dynamodb.limit\")\n\n\t// AWSDynamoDBProjectionKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.projection\" semantic conventions. It represents the value\n\t// of the `ProjectionExpression` request parameter.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Title', 'Title, Price, Color', 'Title, Description,\n\t// RelatedItems, ProductReviews'\n\tAWSDynamoDBProjectionKey = attribute.Key(\"aws.dynamodb.projection\")\n\n\t// AWSDynamoDBProvisionedReadCapacityKey is the attribute Key conforming to\n\t// the \"aws.dynamodb.provisioned_read_capacity\" semantic conventions. It\n\t// represents the value of the `ProvisionedThroughput.ReadCapacityUnits`\n\t// request parameter.\n\t//\n\t// Type: double\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 1.0, 2.0\n\tAWSDynamoDBProvisionedReadCapacityKey = attribute.Key(\"aws.dynamodb.provisioned_read_capacity\")\n\n\t// AWSDynamoDBProvisionedWriteCapacityKey is the attribute Key conforming\n\t// to the \"aws.dynamodb.provisioned_write_capacity\" semantic conventions.\n\t// It represents the value of the\n\t// `ProvisionedThroughput.WriteCapacityUnits` request parameter.\n\t//\n\t// Type: double\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 1.0, 2.0\n\tAWSDynamoDBProvisionedWriteCapacityKey = attribute.Key(\"aws.dynamodb.provisioned_write_capacity\")\n\n\t// AWSDynamoDBSelectKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.select\" semantic conventions. It represents the value of\n\t// the `Select` request parameter.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'ALL_ATTRIBUTES', 'COUNT'\n\tAWSDynamoDBSelectKey = attribute.Key(\"aws.dynamodb.select\")\n\n\t// AWSDynamoDBTableNamesKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.table_names\" semantic conventions. It represents the keys\n\t// in the `RequestItems` object field.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Users', 'Cats'\n\tAWSDynamoDBTableNamesKey = attribute.Key(\"aws.dynamodb.table_names\")\n)\n\n// AWSDynamoDBAttributesToGet returns an attribute KeyValue conforming to\n// the \"aws.dynamodb.attributes_to_get\" semantic conventions. It represents the\n// value of the `AttributesToGet` request parameter.\nfunc AWSDynamoDBAttributesToGet(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBAttributesToGetKey.StringSlice(val)\n}\n\n// AWSDynamoDBConsistentRead returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.consistent_read\" semantic conventions. It represents the value\n// of the `ConsistentRead` request parameter.\nfunc AWSDynamoDBConsistentRead(val bool) attribute.KeyValue {\n\treturn AWSDynamoDBConsistentReadKey.Bool(val)\n}\n\n// AWSDynamoDBConsumedCapacity returns an attribute KeyValue conforming to\n// the \"aws.dynamodb.consumed_capacity\" semantic conventions. It represents the\n// JSON-serialized value of each item in the `ConsumedCapacity` response field.\nfunc AWSDynamoDBConsumedCapacity(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBConsumedCapacityKey.StringSlice(val)\n}\n\n// AWSDynamoDBIndexName returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.index_name\" semantic conventions. It represents the value of\n// the `IndexName` request parameter.\nfunc AWSDynamoDBIndexName(val string) attribute.KeyValue {\n\treturn AWSDynamoDBIndexNameKey.String(val)\n}\n\n// AWSDynamoDBItemCollectionMetrics returns an attribute KeyValue conforming\n// to the \"aws.dynamodb.item_collection_metrics\" semantic conventions. It\n// represents the JSON-serialized value of the `ItemCollectionMetrics` response\n// field.\nfunc AWSDynamoDBItemCollectionMetrics(val string) attribute.KeyValue {\n\treturn AWSDynamoDBItemCollectionMetricsKey.String(val)\n}\n\n// AWSDynamoDBLimit returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.limit\" semantic conventions. It represents the value of the\n// `Limit` request parameter.\nfunc AWSDynamoDBLimit(val int) attribute.KeyValue {\n\treturn AWSDynamoDBLimitKey.Int(val)\n}\n\n// AWSDynamoDBProjection returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.projection\" semantic conventions. It represents the value of\n// the `ProjectionExpression` request parameter.\nfunc AWSDynamoDBProjection(val string) attribute.KeyValue {\n\treturn AWSDynamoDBProjectionKey.String(val)\n}\n\n// AWSDynamoDBProvisionedReadCapacity returns an attribute KeyValue\n// conforming to the \"aws.dynamodb.provisioned_read_capacity\" semantic\n// conventions. It represents the value of the\n// `ProvisionedThroughput.ReadCapacityUnits` request parameter.\nfunc AWSDynamoDBProvisionedReadCapacity(val float64) attribute.KeyValue {\n\treturn AWSDynamoDBProvisionedReadCapacityKey.Float64(val)\n}\n\n// AWSDynamoDBProvisionedWriteCapacity returns an attribute KeyValue\n// conforming to the \"aws.dynamodb.provisioned_write_capacity\" semantic\n// conventions. It represents the value of the\n// `ProvisionedThroughput.WriteCapacityUnits` request parameter.\nfunc AWSDynamoDBProvisionedWriteCapacity(val float64) attribute.KeyValue {\n\treturn AWSDynamoDBProvisionedWriteCapacityKey.Float64(val)\n}\n\n// AWSDynamoDBSelect returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.select\" semantic conventions. It represents the value of the\n// `Select` request parameter.\nfunc AWSDynamoDBSelect(val string) attribute.KeyValue {\n\treturn AWSDynamoDBSelectKey.String(val)\n}\n\n// AWSDynamoDBTableNames returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.table_names\" semantic conventions. It represents the keys in\n// the `RequestItems` object field.\nfunc AWSDynamoDBTableNames(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBTableNamesKey.StringSlice(val)\n}\n\n// DynamoDB.CreateTable\nconst (\n\t// AWSDynamoDBGlobalSecondaryIndexesKey is the attribute Key conforming to\n\t// the \"aws.dynamodb.global_secondary_indexes\" semantic conventions. It\n\t// represents the JSON-serialized value of each item of the\n\t// `GlobalSecondaryIndexes` request field\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '{ \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\":\n\t// \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [\n\t// \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": {\n\t// \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }'\n\tAWSDynamoDBGlobalSecondaryIndexesKey = attribute.Key(\"aws.dynamodb.global_secondary_indexes\")\n\n\t// AWSDynamoDBLocalSecondaryIndexesKey is the attribute Key conforming to\n\t// the \"aws.dynamodb.local_secondary_indexes\" semantic conventions. It\n\t// represents the JSON-serialized value of each item of the\n\t// `LocalSecondaryIndexes` request field.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '{ \"IndexARN\": \"string\", \"IndexName\": \"string\",\n\t// \"IndexSizeBytes\": number, \"ItemCount\": number, \"KeySchema\": [ {\n\t// \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": {\n\t// \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" } }'\n\tAWSDynamoDBLocalSecondaryIndexesKey = attribute.Key(\"aws.dynamodb.local_secondary_indexes\")\n)\n\n// AWSDynamoDBGlobalSecondaryIndexes returns an attribute KeyValue\n// conforming to the \"aws.dynamodb.global_secondary_indexes\" semantic\n// conventions. It represents the JSON-serialized value of each item of the\n// `GlobalSecondaryIndexes` request field\nfunc AWSDynamoDBGlobalSecondaryIndexes(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBGlobalSecondaryIndexesKey.StringSlice(val)\n}\n\n// AWSDynamoDBLocalSecondaryIndexes returns an attribute KeyValue conforming\n// to the \"aws.dynamodb.local_secondary_indexes\" semantic conventions. It\n// represents the JSON-serialized value of each item of the\n// `LocalSecondaryIndexes` request field.\nfunc AWSDynamoDBLocalSecondaryIndexes(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBLocalSecondaryIndexesKey.StringSlice(val)\n}\n\n// DynamoDB.ListTables\nconst (\n\t// AWSDynamoDBExclusiveStartTableKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.exclusive_start_table\" semantic conventions. It represents\n\t// the value of the `ExclusiveStartTableName` request parameter.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'Users', 'CatsTable'\n\tAWSDynamoDBExclusiveStartTableKey = attribute.Key(\"aws.dynamodb.exclusive_start_table\")\n\n\t// AWSDynamoDBTableCountKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.table_count\" semantic conventions. It represents the the\n\t// number of items in the `TableNames` response parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 20\n\tAWSDynamoDBTableCountKey = attribute.Key(\"aws.dynamodb.table_count\")\n)\n\n// AWSDynamoDBExclusiveStartTable returns an attribute KeyValue conforming\n// to the \"aws.dynamodb.exclusive_start_table\" semantic conventions. It\n// represents the value of the `ExclusiveStartTableName` request parameter.\nfunc AWSDynamoDBExclusiveStartTable(val string) attribute.KeyValue {\n\treturn AWSDynamoDBExclusiveStartTableKey.String(val)\n}\n\n// AWSDynamoDBTableCount returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.table_count\" semantic conventions. It represents the the\n// number of items in the `TableNames` response parameter.\nfunc AWSDynamoDBTableCount(val int) attribute.KeyValue {\n\treturn AWSDynamoDBTableCountKey.Int(val)\n}\n\n// DynamoDB.Query\nconst (\n\t// AWSDynamoDBScanForwardKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.scan_forward\" semantic conventions. It represents the\n\t// value of the `ScanIndexForward` request parameter.\n\t//\n\t// Type: boolean\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\tAWSDynamoDBScanForwardKey = attribute.Key(\"aws.dynamodb.scan_forward\")\n)\n\n// AWSDynamoDBScanForward returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.scan_forward\" semantic conventions. It represents the value of\n// the `ScanIndexForward` request parameter.\nfunc AWSDynamoDBScanForward(val bool) attribute.KeyValue {\n\treturn AWSDynamoDBScanForwardKey.Bool(val)\n}\n\n// DynamoDB.Scan\nconst (\n\t// AWSDynamoDBCountKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.count\" semantic conventions. It represents the value of\n\t// the `Count` response parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 10\n\tAWSDynamoDBCountKey = attribute.Key(\"aws.dynamodb.count\")\n\n\t// AWSDynamoDBScannedCountKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.scanned_count\" semantic conventions. It represents the\n\t// value of the `ScannedCount` response parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 50\n\tAWSDynamoDBScannedCountKey = attribute.Key(\"aws.dynamodb.scanned_count\")\n\n\t// AWSDynamoDBSegmentKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.segment\" semantic conventions. It represents the value of\n\t// the `Segment` request parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 10\n\tAWSDynamoDBSegmentKey = attribute.Key(\"aws.dynamodb.segment\")\n\n\t// AWSDynamoDBTotalSegmentsKey is the attribute Key conforming to the\n\t// \"aws.dynamodb.total_segments\" semantic conventions. It represents the\n\t// value of the `TotalSegments` request parameter.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 100\n\tAWSDynamoDBTotalSegmentsKey = attribute.Key(\"aws.dynamodb.total_segments\")\n)\n\n// AWSDynamoDBCount returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.count\" semantic conventions. It represents the value of the\n// `Count` response parameter.\nfunc AWSDynamoDBCount(val int) attribute.KeyValue {\n\treturn AWSDynamoDBCountKey.Int(val)\n}\n\n// AWSDynamoDBScannedCount returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.scanned_count\" semantic conventions. It represents the value\n// of the `ScannedCount` response parameter.\nfunc AWSDynamoDBScannedCount(val int) attribute.KeyValue {\n\treturn AWSDynamoDBScannedCountKey.Int(val)\n}\n\n// AWSDynamoDBSegment returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.segment\" semantic conventions. It represents the value of the\n// `Segment` request parameter.\nfunc AWSDynamoDBSegment(val int) attribute.KeyValue {\n\treturn AWSDynamoDBSegmentKey.Int(val)\n}\n\n// AWSDynamoDBTotalSegments returns an attribute KeyValue conforming to the\n// \"aws.dynamodb.total_segments\" semantic conventions. It represents the value\n// of the `TotalSegments` request parameter.\nfunc AWSDynamoDBTotalSegments(val int) attribute.KeyValue {\n\treturn AWSDynamoDBTotalSegmentsKey.Int(val)\n}\n\n// DynamoDB.UpdateTable\nconst (\n\t// AWSDynamoDBAttributeDefinitionsKey is the attribute Key conforming to\n\t// the \"aws.dynamodb.attribute_definitions\" semantic conventions. It\n\t// represents the JSON-serialized value of each item in the\n\t// `AttributeDefinitions` request field.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '{ \"AttributeName\": \"string\", \"AttributeType\": \"string\" }'\n\tAWSDynamoDBAttributeDefinitionsKey = attribute.Key(\"aws.dynamodb.attribute_definitions\")\n\n\t// AWSDynamoDBGlobalSecondaryIndexUpdatesKey is the attribute Key\n\t// conforming to the \"aws.dynamodb.global_secondary_index_updates\" semantic\n\t// conventions. It represents the JSON-serialized value of each item in the\n\t// the `GlobalSecondaryIndexUpdates` request field.\n\t//\n\t// Type: string[]\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: '{ \"Create\": { \"IndexName\": \"string\", \"KeySchema\": [ {\n\t// \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": {\n\t// \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" },\n\t// \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number,\n\t// \"WriteCapacityUnits\": number } }'\n\tAWSDynamoDBGlobalSecondaryIndexUpdatesKey = attribute.Key(\"aws.dynamodb.global_secondary_index_updates\")\n)\n\n// AWSDynamoDBAttributeDefinitions returns an attribute KeyValue conforming\n// to the \"aws.dynamodb.attribute_definitions\" semantic conventions. It\n// represents the JSON-serialized value of each item in the\n// `AttributeDefinitions` request field.\nfunc AWSDynamoDBAttributeDefinitions(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBAttributeDefinitionsKey.StringSlice(val)\n}\n\n// AWSDynamoDBGlobalSecondaryIndexUpdates returns an attribute KeyValue\n// conforming to the \"aws.dynamodb.global_secondary_index_updates\" semantic\n// conventions. It represents the JSON-serialized value of each item in the the\n// `GlobalSecondaryIndexUpdates` request field.\nfunc AWSDynamoDBGlobalSecondaryIndexUpdates(val ...string) attribute.KeyValue {\n\treturn AWSDynamoDBGlobalSecondaryIndexUpdatesKey.StringSlice(val)\n}\n\n// Attributes that exist for S3 request types.\nconst (\n\t// AWSS3BucketKey is the attribute Key conforming to the \"aws.s3.bucket\"\n\t// semantic conventions. It represents the S3 bucket name the request\n\t// refers to. Corresponds to the `--bucket` parameter of the [S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)\n\t// operations.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'some-bucket-name'\n\t// Note: The `bucket` attribute is applicable to all S3 operations that\n\t// reference a bucket, i.e. that require the bucket name as a mandatory\n\t// parameter.\n\t// This applies to almost all S3 operations except `list-buckets`.\n\tAWSS3BucketKey = attribute.Key(\"aws.s3.bucket\")\n\n\t// AWSS3CopySourceKey is the attribute Key conforming to the\n\t// \"aws.s3.copy_source\" semantic conventions. It represents the source\n\t// object (in the form `bucket`/`key`) for the copy operation.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'someFile.yml'\n\t// Note: The `copy_source` attribute applies to S3 copy operations and\n\t// corresponds to the `--copy-source` parameter\n\t// of the [copy-object operation within the S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html).\n\t// This applies in particular to the following operations:\n\t//\n\t// -\n\t// [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)\n\t// -\n\t// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)\n\tAWSS3CopySourceKey = attribute.Key(\"aws.s3.copy_source\")\n\n\t// AWSS3DeleteKey is the attribute Key conforming to the \"aws.s3.delete\"\n\t// semantic conventions. It represents the delete request container that\n\t// specifies the objects to be deleted.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples:\n\t// 'Objects=[{Key=string,VersionID=string},{Key=string,VersionID=string}],Quiet=boolean'\n\t// Note: The `delete` attribute is only applicable to the\n\t// [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)\n\t// operation.\n\t// The `delete` attribute corresponds to the `--delete` parameter of the\n\t// [delete-objects operation within the S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-objects.html).\n\tAWSS3DeleteKey = attribute.Key(\"aws.s3.delete\")\n\n\t// AWSS3KeyKey is the attribute Key conforming to the \"aws.s3.key\" semantic\n\t// conventions. It represents the S3 object key the request refers to.\n\t// Corresponds to the `--key` parameter of the [S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)\n\t// operations.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'someFile.yml'\n\t// Note: The `key` attribute is applicable to all object-related S3\n\t// operations, i.e. that require the object key as a mandatory parameter.\n\t// This applies in particular to the following operations:\n\t//\n\t// -\n\t// [copy-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/copy-object.html)\n\t// -\n\t// [delete-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/delete-object.html)\n\t// -\n\t// [get-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html)\n\t// -\n\t// [head-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/head-object.html)\n\t// -\n\t// [put-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html)\n\t// -\n\t// [restore-object](https://docs.aws.amazon.com/cli/latest/reference/s3api/restore-object.html)\n\t// -\n\t// [select-object-content](https://docs.aws.amazon.com/cli/latest/reference/s3api/select-object-content.html)\n\t// -\n\t// [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)\n\t// -\n\t// [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)\n\t// -\n\t// [create-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/create-multipart-upload.html)\n\t// -\n\t// [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)\n\t// -\n\t// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)\n\t// -\n\t// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)\n\tAWSS3KeyKey = attribute.Key(\"aws.s3.key\")\n\n\t// AWSS3PartNumberKey is the attribute Key conforming to the\n\t// \"aws.s3.part_number\" semantic conventions. It represents the part number\n\t// of the part being uploaded in a multipart-upload operation. This is a\n\t// positive integer between 1 and 10,000.\n\t//\n\t// Type: int\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 3456\n\t// Note: The `part_number` attribute is only applicable to the\n\t// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)\n\t// and\n\t// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)\n\t// operations.\n\t// The `part_number` attribute corresponds to the `--part-number` parameter\n\t// of the\n\t// [upload-part operation within the S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html).\n\tAWSS3PartNumberKey = attribute.Key(\"aws.s3.part_number\")\n\n\t// AWSS3UploadIDKey is the attribute Key conforming to the\n\t// \"aws.s3.upload_id\" semantic conventions. It represents the upload ID\n\t// that identifies the multipart upload.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'dfRtDYWFbkRONycy.Yxwh66Yjlx.cph0gtNBtJ'\n\t// Note: The `upload_id` attribute applies to S3 multipart-upload\n\t// operations and corresponds to the `--upload-id` parameter\n\t// of the [S3\n\t// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)\n\t// multipart operations.\n\t// This applies in particular to the following operations:\n\t//\n\t// -\n\t// [abort-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/abort-multipart-upload.html)\n\t// -\n\t// [complete-multipart-upload](https://docs.aws.amazon.com/cli/latest/reference/s3api/complete-multipart-upload.html)\n\t// -\n\t// [list-parts](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-parts.html)\n\t// -\n\t// [upload-part](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part.html)\n\t// -\n\t// [upload-part-copy](https://docs.aws.amazon.com/cli/latest/reference/s3api/upload-part-copy.html)\n\tAWSS3UploadIDKey = attribute.Key(\"aws.s3.upload_id\")\n)\n\n// AWSS3Bucket returns an attribute KeyValue conforming to the\n// \"aws.s3.bucket\" semantic conventions. It represents the S3 bucket name the\n// request refers to. Corresponds to the `--bucket` parameter of the [S3\n// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)\n// operations.\nfunc AWSS3Bucket(val string) attribute.KeyValue {\n\treturn AWSS3BucketKey.String(val)\n}\n\n// AWSS3CopySource returns an attribute KeyValue conforming to the\n// \"aws.s3.copy_source\" semantic conventions. It represents the source object\n// (in the form `bucket`/`key`) for the copy operation.\nfunc AWSS3CopySource(val string) attribute.KeyValue {\n\treturn AWSS3CopySourceKey.String(val)\n}\n\n// AWSS3Delete returns an attribute KeyValue conforming to the\n// \"aws.s3.delete\" semantic conventions. It represents the delete request\n// container that specifies the objects to be deleted.\nfunc AWSS3Delete(val string) attribute.KeyValue {\n\treturn AWSS3DeleteKey.String(val)\n}\n\n// AWSS3Key returns an attribute KeyValue conforming to the \"aws.s3.key\"\n// semantic conventions. It represents the S3 object key the request refers to.\n// Corresponds to the `--key` parameter of the [S3\n// API](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)\n// operations.\nfunc AWSS3Key(val string) attribute.KeyValue {\n\treturn AWSS3KeyKey.String(val)\n}\n\n// AWSS3PartNumber returns an attribute KeyValue conforming to the\n// \"aws.s3.part_number\" semantic conventions. It represents the part number of\n// the part being uploaded in a multipart-upload operation. This is a positive\n// integer between 1 and 10,000.\nfunc AWSS3PartNumber(val int) attribute.KeyValue {\n\treturn AWSS3PartNumberKey.Int(val)\n}\n\n// AWSS3UploadID returns an attribute KeyValue conforming to the\n// \"aws.s3.upload_id\" semantic conventions. It represents the upload ID that\n// identifies the multipart upload.\nfunc AWSS3UploadID(val string) attribute.KeyValue {\n\treturn AWSS3UploadIDKey.String(val)\n}\n\n// Semantic conventions to apply when instrumenting the GraphQL implementation.\n// They map GraphQL operations to attributes on a Span.\nconst (\n\t// GraphqlDocumentKey is the attribute Key conforming to the\n\t// \"graphql.document\" semantic conventions. It represents the GraphQL\n\t// document being executed.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'query findBookByID { bookByID(id: ?) { name } }'\n\t// Note: The value may be sanitized to exclude sensitive information.\n\tGraphqlDocumentKey = attribute.Key(\"graphql.document\")\n\n\t// GraphqlOperationNameKey is the attribute Key conforming to the\n\t// \"graphql.operation.name\" semantic conventions. It represents the name of\n\t// the operation being executed.\n\t//\n\t// Type: string\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'findBookByID'\n\tGraphqlOperationNameKey = attribute.Key(\"graphql.operation.name\")\n\n\t// GraphqlOperationTypeKey is the attribute Key conforming to the\n\t// \"graphql.operation.type\" semantic conventions. It represents the type of\n\t// the operation being executed.\n\t//\n\t// Type: Enum\n\t// RequirementLevel: Optional\n\t// Stability: experimental\n\t// Examples: 'query', 'mutation', 'subscription'\n\tGraphqlOperationTypeKey = attribute.Key(\"graphql.operation.type\")\n)\n\nvar (\n\t// GraphQL query\n\tGraphqlOperationTypeQuery = GraphqlOperationTypeKey.String(\"query\")\n\t// GraphQL mutation\n\tGraphqlOperationTypeMutation = GraphqlOperationTypeKey.String(\"mutation\")\n\t// GraphQL subscription\n\tGraphqlOperationTypeSubscription = GraphqlOperationTypeKey.String(\"subscription\")\n)\n\n// GraphqlDocument returns an attribute KeyValue conforming to the\n// \"graphql.document\" semantic conventions. It represents the GraphQL document\n// being executed.\nfunc GraphqlDocument(val string) attribute.KeyValue {\n\treturn GraphqlDocumentKey.String(val)\n}\n\n// GraphqlOperationName returns an attribute KeyValue conforming to the\n// \"graphql.operation.name\" semantic conventions. It represents the name of the\n// operation being executed.\nfunc GraphqlOperationName(val string) attribute.KeyValue {\n\treturn GraphqlOperationNameKey.String(val)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace/README.md",
    "content": "# Trace API\n\n[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/trace)](https://pkg.go.dev/go.opentelemetry.io/otel/trace)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace/config.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage trace // import \"go.opentelemetry.io/otel/trace\"\n\nimport (\n\t\"time\"\n\n\t\"go.opentelemetry.io/otel/attribute\"\n)\n\n// TracerConfig is a group of options for a Tracer.\ntype TracerConfig struct {\n\tinstrumentationVersion string\n\t// Schema URL of the telemetry emitted by the Tracer.\n\tschemaURL string\n\tattrs     attribute.Set\n}\n\n// InstrumentationVersion returns the version of the library providing instrumentation.\nfunc (t *TracerConfig) InstrumentationVersion() string {\n\treturn t.instrumentationVersion\n}\n\n// InstrumentationAttributes returns the attributes associated with the library\n// providing instrumentation.\nfunc (t *TracerConfig) InstrumentationAttributes() attribute.Set {\n\treturn t.attrs\n}\n\n// SchemaURL returns the Schema URL of the telemetry emitted by the Tracer.\nfunc (t *TracerConfig) SchemaURL() string {\n\treturn t.schemaURL\n}\n\n// NewTracerConfig applies all the options to a returned TracerConfig.\nfunc NewTracerConfig(options ...TracerOption) TracerConfig {\n\tvar config TracerConfig\n\tfor _, option := range options {\n\t\tconfig = option.apply(config)\n\t}\n\treturn config\n}\n\n// TracerOption applies an option to a TracerConfig.\ntype TracerOption interface {\n\tapply(TracerConfig) TracerConfig\n}\n\ntype tracerOptionFunc func(TracerConfig) TracerConfig\n\nfunc (fn tracerOptionFunc) apply(cfg TracerConfig) TracerConfig {\n\treturn fn(cfg)\n}\n\n// SpanConfig is a group of options for a Span.\ntype SpanConfig struct {\n\tattributes []attribute.KeyValue\n\ttimestamp  time.Time\n\tlinks      []Link\n\tnewRoot    bool\n\tspanKind   SpanKind\n\tstackTrace bool\n}\n\n// Attributes describe the associated qualities of a Span.\nfunc (cfg *SpanConfig) Attributes() []attribute.KeyValue {\n\treturn cfg.attributes\n}\n\n// Timestamp is a time in a Span life-cycle.\nfunc (cfg *SpanConfig) Timestamp() time.Time {\n\treturn cfg.timestamp\n}\n\n// StackTrace checks whether stack trace capturing is enabled.\nfunc (cfg *SpanConfig) StackTrace() bool {\n\treturn cfg.stackTrace\n}\n\n// Links are the associations a Span has with other Spans.\nfunc (cfg *SpanConfig) Links() []Link {\n\treturn cfg.links\n}\n\n// NewRoot identifies a Span as the root Span for a new trace. This is\n// commonly used when an existing trace crosses trust boundaries and the\n// remote parent span context should be ignored for security.\nfunc (cfg *SpanConfig) NewRoot() bool {\n\treturn cfg.newRoot\n}\n\n// SpanKind is the role a Span has in a trace.\nfunc (cfg *SpanConfig) SpanKind() SpanKind {\n\treturn cfg.spanKind\n}\n\n// NewSpanStartConfig applies all the options to a returned SpanConfig.\n// No validation is performed on the returned SpanConfig (e.g. no uniqueness\n// checking or bounding of data), it is left to the SDK to perform this\n// action.\nfunc NewSpanStartConfig(options ...SpanStartOption) SpanConfig {\n\tvar c SpanConfig\n\tfor _, option := range options {\n\t\tc = option.applySpanStart(c)\n\t}\n\treturn c\n}\n\n// NewSpanEndConfig applies all the options to a returned SpanConfig.\n// No validation is performed on the returned SpanConfig (e.g. no uniqueness\n// checking or bounding of data), it is left to the SDK to perform this\n// action.\nfunc NewSpanEndConfig(options ...SpanEndOption) SpanConfig {\n\tvar c SpanConfig\n\tfor _, option := range options {\n\t\tc = option.applySpanEnd(c)\n\t}\n\treturn c\n}\n\n// SpanStartOption applies an option to a SpanConfig. These options are applicable\n// only when the span is created.\ntype SpanStartOption interface {\n\tapplySpanStart(SpanConfig) SpanConfig\n}\n\ntype spanOptionFunc func(SpanConfig) SpanConfig\n\nfunc (fn spanOptionFunc) applySpanStart(cfg SpanConfig) SpanConfig {\n\treturn fn(cfg)\n}\n\n// SpanEndOption applies an option to a SpanConfig. These options are\n// applicable only when the span is ended.\ntype SpanEndOption interface {\n\tapplySpanEnd(SpanConfig) SpanConfig\n}\n\n// EventConfig is a group of options for an Event.\ntype EventConfig struct {\n\tattributes []attribute.KeyValue\n\ttimestamp  time.Time\n\tstackTrace bool\n}\n\n// Attributes describe the associated qualities of an Event.\nfunc (cfg *EventConfig) Attributes() []attribute.KeyValue {\n\treturn cfg.attributes\n}\n\n// Timestamp is a time in an Event life-cycle.\nfunc (cfg *EventConfig) Timestamp() time.Time {\n\treturn cfg.timestamp\n}\n\n// StackTrace checks whether stack trace capturing is enabled.\nfunc (cfg *EventConfig) StackTrace() bool {\n\treturn cfg.stackTrace\n}\n\n// NewEventConfig applies all the EventOptions to a returned EventConfig. If no\n// timestamp option is passed, the returned EventConfig will have a Timestamp\n// set to the call time, otherwise no validation is performed on the returned\n// EventConfig.\nfunc NewEventConfig(options ...EventOption) EventConfig {\n\tvar c EventConfig\n\tfor _, option := range options {\n\t\tc = option.applyEvent(c)\n\t}\n\tif c.timestamp.IsZero() {\n\t\tc.timestamp = time.Now()\n\t}\n\treturn c\n}\n\n// EventOption applies span event options to an EventConfig.\ntype EventOption interface {\n\tapplyEvent(EventConfig) EventConfig\n}\n\n// SpanOption are options that can be used at both the beginning and end of a span.\ntype SpanOption interface {\n\tSpanStartOption\n\tSpanEndOption\n}\n\n// SpanStartEventOption are options that can be used at the start of a span, or with an event.\ntype SpanStartEventOption interface {\n\tSpanStartOption\n\tEventOption\n}\n\n// SpanEndEventOption are options that can be used at the end of a span, or with an event.\ntype SpanEndEventOption interface {\n\tSpanEndOption\n\tEventOption\n}\n\ntype attributeOption []attribute.KeyValue\n\nfunc (o attributeOption) applySpan(c SpanConfig) SpanConfig {\n\tc.attributes = append(c.attributes, []attribute.KeyValue(o)...)\n\treturn c\n}\nfunc (o attributeOption) applySpanStart(c SpanConfig) SpanConfig { return o.applySpan(c) }\nfunc (o attributeOption) applyEvent(c EventConfig) EventConfig {\n\tc.attributes = append(c.attributes, []attribute.KeyValue(o)...)\n\treturn c\n}\n\nvar _ SpanStartEventOption = attributeOption{}\n\n// WithAttributes adds the attributes related to a span life-cycle event.\n// These attributes are used to describe the work a Span represents when this\n// option is provided to a Span's start or end events. Otherwise, these\n// attributes provide additional information about the event being recorded\n// (e.g. error, state change, processing progress, system event).\n//\n// If multiple of these options are passed the attributes of each successive\n// option will extend the attributes instead of overwriting. There is no\n// guarantee of uniqueness in the resulting attributes.\nfunc WithAttributes(attributes ...attribute.KeyValue) SpanStartEventOption {\n\treturn attributeOption(attributes)\n}\n\n// SpanEventOption are options that can be used with an event or a span.\ntype SpanEventOption interface {\n\tSpanOption\n\tEventOption\n}\n\ntype timestampOption time.Time\n\nfunc (o timestampOption) applySpan(c SpanConfig) SpanConfig {\n\tc.timestamp = time.Time(o)\n\treturn c\n}\nfunc (o timestampOption) applySpanStart(c SpanConfig) SpanConfig { return o.applySpan(c) }\nfunc (o timestampOption) applySpanEnd(c SpanConfig) SpanConfig   { return o.applySpan(c) }\nfunc (o timestampOption) applyEvent(c EventConfig) EventConfig {\n\tc.timestamp = time.Time(o)\n\treturn c\n}\n\nvar _ SpanEventOption = timestampOption{}\n\n// WithTimestamp sets the time of a Span or Event life-cycle moment (e.g.\n// started, stopped, errored).\nfunc WithTimestamp(t time.Time) SpanEventOption {\n\treturn timestampOption(t)\n}\n\ntype stackTraceOption bool\n\nfunc (o stackTraceOption) applyEvent(c EventConfig) EventConfig {\n\tc.stackTrace = bool(o)\n\treturn c\n}\n\nfunc (o stackTraceOption) applySpan(c SpanConfig) SpanConfig {\n\tc.stackTrace = bool(o)\n\treturn c\n}\nfunc (o stackTraceOption) applySpanEnd(c SpanConfig) SpanConfig { return o.applySpan(c) }\n\n// WithStackTrace sets the flag to capture the error with stack trace (e.g. true, false).\nfunc WithStackTrace(b bool) SpanEndEventOption {\n\treturn stackTraceOption(b)\n}\n\n// WithLinks adds links to a Span. The links are added to the existing Span\n// links, i.e. this does not overwrite. Links with invalid span context are ignored.\nfunc WithLinks(links ...Link) SpanStartOption {\n\treturn spanOptionFunc(func(cfg SpanConfig) SpanConfig {\n\t\tcfg.links = append(cfg.links, links...)\n\t\treturn cfg\n\t})\n}\n\n// WithNewRoot specifies that the Span should be treated as a root Span. Any\n// existing parent span context will be ignored when defining the Span's trace\n// identifiers.\nfunc WithNewRoot() SpanStartOption {\n\treturn spanOptionFunc(func(cfg SpanConfig) SpanConfig {\n\t\tcfg.newRoot = true\n\t\treturn cfg\n\t})\n}\n\n// WithSpanKind sets the SpanKind of a Span.\nfunc WithSpanKind(kind SpanKind) SpanStartOption {\n\treturn spanOptionFunc(func(cfg SpanConfig) SpanConfig {\n\t\tcfg.spanKind = kind\n\t\treturn cfg\n\t})\n}\n\n// WithInstrumentationVersion sets the instrumentation version.\nfunc WithInstrumentationVersion(version string) TracerOption {\n\treturn tracerOptionFunc(func(cfg TracerConfig) TracerConfig {\n\t\tcfg.instrumentationVersion = version\n\t\treturn cfg\n\t})\n}\n\n// WithInstrumentationAttributes sets the instrumentation attributes.\n//\n// The passed attributes will be de-duplicated.\nfunc WithInstrumentationAttributes(attr ...attribute.KeyValue) TracerOption {\n\treturn tracerOptionFunc(func(config TracerConfig) TracerConfig {\n\t\tconfig.attrs = attribute.NewSet(attr...)\n\t\treturn config\n\t})\n}\n\n// WithSchemaURL sets the schema URL for the Tracer.\nfunc WithSchemaURL(schemaURL string) TracerOption {\n\treturn tracerOptionFunc(func(cfg TracerConfig) TracerConfig {\n\t\tcfg.schemaURL = schemaURL\n\t\treturn cfg\n\t})\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace/context.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage trace // import \"go.opentelemetry.io/otel/trace\"\n\nimport \"context\"\n\ntype traceContextKeyType int\n\nconst currentSpanKey traceContextKeyType = iota\n\n// ContextWithSpan returns a copy of parent with span set as the current Span.\nfunc ContextWithSpan(parent context.Context, span Span) context.Context {\n\treturn context.WithValue(parent, currentSpanKey, span)\n}\n\n// ContextWithSpanContext returns a copy of parent with sc as the current\n// Span. The Span implementation that wraps sc is non-recording and performs\n// no operations other than to return sc as the SpanContext from the\n// SpanContext method.\nfunc ContextWithSpanContext(parent context.Context, sc SpanContext) context.Context {\n\treturn ContextWithSpan(parent, nonRecordingSpan{sc: sc})\n}\n\n// ContextWithRemoteSpanContext returns a copy of parent with rsc set explicly\n// as a remote SpanContext and as the current Span. The Span implementation\n// that wraps rsc is non-recording and performs no operations other than to\n// return rsc as the SpanContext from the SpanContext method.\nfunc ContextWithRemoteSpanContext(parent context.Context, rsc SpanContext) context.Context {\n\treturn ContextWithSpanContext(parent, rsc.WithRemote(true))\n}\n\n// SpanFromContext returns the current Span from ctx.\n//\n// If no Span is currently set in ctx an implementation of a Span that\n// performs no operations is returned.\nfunc SpanFromContext(ctx context.Context) Span {\n\tif ctx == nil {\n\t\treturn noopSpanInstance\n\t}\n\tif span, ok := ctx.Value(currentSpanKey).(Span); ok {\n\t\treturn span\n\t}\n\treturn noopSpanInstance\n}\n\n// SpanContextFromContext returns the current Span's SpanContext.\nfunc SpanContextFromContext(ctx context.Context) SpanContext {\n\treturn SpanFromContext(ctx).SpanContext()\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace/doc.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n/*\nPackage trace provides an implementation of the tracing part of the\nOpenTelemetry API.\n\nTo participate in distributed traces a Span needs to be created for the\noperation being performed as part of a traced workflow. In its simplest form:\n\n\tvar tracer trace.Tracer\n\n\tfunc init() {\n\t\ttracer = otel.Tracer(\"instrumentation/package/name\")\n\t}\n\n\tfunc operation(ctx context.Context) {\n\t\tvar span trace.Span\n\t\tctx, span = tracer.Start(ctx, \"operation\")\n\t\tdefer span.End()\n\t\t// ...\n\t}\n\nA Tracer is unique to the instrumentation and is used to create Spans.\nInstrumentation should be designed to accept a TracerProvider from which it\ncan create its own unique Tracer. Alternatively, the registered global\nTracerProvider from the go.opentelemetry.io/otel package can be used as\na default.\n\n\tconst (\n\t\tname    = \"instrumentation/package/name\"\n\t\tversion = \"0.1.0\"\n\t)\n\n\ttype Instrumentation struct {\n\t\ttracer trace.Tracer\n\t}\n\n\tfunc NewInstrumentation(tp trace.TracerProvider) *Instrumentation {\n\t\tif tp == nil {\n\t\t\ttp = otel.TracerProvider()\n\t\t}\n\t\treturn &Instrumentation{\n\t\t\ttracer: tp.Tracer(name, trace.WithInstrumentationVersion(version)),\n\t\t}\n\t}\n\n\tfunc operation(ctx context.Context, inst *Instrumentation) {\n\t\tvar span trace.Span\n\t\tctx, span = inst.tracer.Start(ctx, \"operation\")\n\t\tdefer span.End()\n\t\t// ...\n\t}\n\n# API Implementations\n\nThis package does not conform to the standard Go versioning policy; all of its\ninterfaces may have methods added to them without a package major version bump.\nThis non-standard API evolution could surprise an uninformed implementation\nauthor. They could unknowingly build their implementation in a way that would\nresult in a runtime panic for their users that update to the new API.\n\nThe API is designed to help inform an instrumentation author about this\nnon-standard API evolution. It requires them to choose a default behavior for\nunimplemented interface methods. There are three behavior choices they can\nmake:\n\n  - Compilation failure\n  - Panic\n  - Default to another implementation\n\nAll interfaces in this API embed a corresponding interface from\n[go.opentelemetry.io/otel/trace/embedded]. If an author wants the default\nbehavior of their implementations to be a compilation failure, signaling to\ntheir users they need to update to the latest version of that implementation,\nthey need to embed the corresponding interface from\n[go.opentelemetry.io/otel/trace/embedded] in their implementation. For\nexample,\n\n\timport \"go.opentelemetry.io/otel/trace/embedded\"\n\n\ttype TracerProvider struct {\n\t\tembedded.TracerProvider\n\t\t// ...\n\t}\n\nIf an author wants the default behavior of their implementations to panic, they\ncan embed the API interface directly.\n\n\timport \"go.opentelemetry.io/otel/trace\"\n\n\ttype TracerProvider struct {\n\t\ttrace.TracerProvider\n\t\t// ...\n\t}\n\nThis option is not recommended. It will lead to publishing packages that\ncontain runtime panics when users update to newer versions of\n[go.opentelemetry.io/otel/trace], which may be done with a trasitive\ndependency.\n\nFinally, an author can embed another implementation in theirs. The embedded\nimplementation will be used for methods not defined by the author. For example,\nan author who wants to default to silently dropping the call can use\n[go.opentelemetry.io/otel/trace/noop]:\n\n\timport \"go.opentelemetry.io/otel/trace/noop\"\n\n\ttype TracerProvider struct {\n\t\tnoop.TracerProvider\n\t\t// ...\n\t}\n\nIt is strongly recommended that authors only embed\n[go.opentelemetry.io/otel/trace/noop] if they choose this default behavior.\nThat implementation is the only one OpenTelemetry authors can guarantee will\nfully implement all the API interfaces when a user updates their API.\n*/\npackage trace // import \"go.opentelemetry.io/otel/trace\"\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace/embedded/README.md",
    "content": "# Trace Embedded\n\n[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/trace/embedded)](https://pkg.go.dev/go.opentelemetry.io/otel/trace/embedded)\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace/embedded/embedded.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\n// Package embedded provides interfaces embedded within the [OpenTelemetry\n// trace API].\n//\n// Implementers of the [OpenTelemetry trace API] can embed the relevant type\n// from this package into their implementation directly. Doing so will result\n// in a compilation error for users when the [OpenTelemetry trace API] is\n// extended (which is something that can happen without a major version bump of\n// the API package).\n//\n// [OpenTelemetry trace API]: https://pkg.go.dev/go.opentelemetry.io/otel/trace\npackage embedded // import \"go.opentelemetry.io/otel/trace/embedded\"\n\n// TracerProvider is embedded in\n// [go.opentelemetry.io/otel/trace.TracerProvider].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/trace.TracerProvider] if you want users to\n// experience a compilation error, signaling they need to update to your latest\n// implementation, when the [go.opentelemetry.io/otel/trace.TracerProvider]\n// interface is extended (which is something that can happen without a major\n// version bump of the API package).\ntype TracerProvider interface{ tracerProvider() }\n\n// Tracer is embedded in [go.opentelemetry.io/otel/trace.Tracer].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/trace.Tracer] if you want users to experience a\n// compilation error, signaling they need to update to your latest\n// implementation, when the [go.opentelemetry.io/otel/trace.Tracer] interface\n// is extended (which is something that can happen without a major version bump\n// of the API package).\ntype Tracer interface{ tracer() }\n\n// Span is embedded in [go.opentelemetry.io/otel/trace.Span].\n//\n// Embed this interface in your implementation of the\n// [go.opentelemetry.io/otel/trace.Span] if you want users to experience a\n// compilation error, signaling they need to update to your latest\n// implementation, when the [go.opentelemetry.io/otel/trace.Span] interface is\n// extended (which is something that can happen without a major version bump of\n// the API package).\ntype Span interface{ span() }\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace/nonrecording.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage trace // import \"go.opentelemetry.io/otel/trace\"\n\n// nonRecordingSpan is a minimal implementation of a Span that wraps a\n// SpanContext. It performs no operations other than to return the wrapped\n// SpanContext.\ntype nonRecordingSpan struct {\n\tnoopSpan\n\n\tsc SpanContext\n}\n\n// SpanContext returns the wrapped SpanContext.\nfunc (s nonRecordingSpan) SpanContext() SpanContext { return s.sc }\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace/noop.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage trace // import \"go.opentelemetry.io/otel/trace\"\n\nimport (\n\t\"context\"\n\n\t\"go.opentelemetry.io/otel/attribute\"\n\t\"go.opentelemetry.io/otel/codes\"\n\t\"go.opentelemetry.io/otel/trace/embedded\"\n)\n\n// NewNoopTracerProvider returns an implementation of TracerProvider that\n// performs no operations. The Tracer and Spans created from the returned\n// TracerProvider also perform no operations.\n//\n// Deprecated: Use [go.opentelemetry.io/otel/trace/noop.NewTracerProvider]\n// instead.\nfunc NewNoopTracerProvider() TracerProvider {\n\treturn noopTracerProvider{}\n}\n\ntype noopTracerProvider struct{ embedded.TracerProvider }\n\nvar _ TracerProvider = noopTracerProvider{}\n\n// Tracer returns noop implementation of Tracer.\nfunc (p noopTracerProvider) Tracer(string, ...TracerOption) Tracer {\n\treturn noopTracer{}\n}\n\n// noopTracer is an implementation of Tracer that performs no operations.\ntype noopTracer struct{ embedded.Tracer }\n\nvar _ Tracer = noopTracer{}\n\n// Start carries forward a non-recording Span, if one is present in the context, otherwise it\n// creates a no-op Span.\nfunc (t noopTracer) Start(ctx context.Context, name string, _ ...SpanStartOption) (context.Context, Span) {\n\tspan := SpanFromContext(ctx)\n\tif _, ok := span.(nonRecordingSpan); !ok {\n\t\t// span is likely already a noopSpan, but let's be sure\n\t\tspan = noopSpanInstance\n\t}\n\treturn ContextWithSpan(ctx, span), span\n}\n\n// noopSpan is an implementation of Span that performs no operations.\ntype noopSpan struct{ embedded.Span }\n\nvar noopSpanInstance Span = noopSpan{}\n\n// SpanContext returns an empty span context.\nfunc (noopSpan) SpanContext() SpanContext { return SpanContext{} }\n\n// IsRecording always returns false.\nfunc (noopSpan) IsRecording() bool { return false }\n\n// SetStatus does nothing.\nfunc (noopSpan) SetStatus(codes.Code, string) {}\n\n// SetError does nothing.\nfunc (noopSpan) SetError(bool) {}\n\n// SetAttributes does nothing.\nfunc (noopSpan) SetAttributes(...attribute.KeyValue) {}\n\n// End does nothing.\nfunc (noopSpan) End(...SpanEndOption) {}\n\n// RecordError does nothing.\nfunc (noopSpan) RecordError(error, ...EventOption) {}\n\n// AddEvent does nothing.\nfunc (noopSpan) AddEvent(string, ...EventOption) {}\n\n// AddLink does nothing.\nfunc (noopSpan) AddLink(Link) {}\n\n// SetName does nothing.\nfunc (noopSpan) SetName(string) {}\n\n// TracerProvider returns a no-op TracerProvider.\nfunc (noopSpan) TracerProvider() TracerProvider { return noopTracerProvider{} }\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace/trace.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage trace // import \"go.opentelemetry.io/otel/trace\"\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/hex\"\n\t\"encoding/json\"\n\n\t\"go.opentelemetry.io/otel/attribute\"\n\t\"go.opentelemetry.io/otel/codes\"\n\t\"go.opentelemetry.io/otel/trace/embedded\"\n)\n\nconst (\n\t// FlagsSampled is a bitmask with the sampled bit set. A SpanContext\n\t// with the sampling bit set means the span is sampled.\n\tFlagsSampled = TraceFlags(0x01)\n\n\terrInvalidHexID errorConst = \"trace-id and span-id can only contain [0-9a-f] characters, all lowercase\"\n\n\terrInvalidTraceIDLength errorConst = \"hex encoded trace-id must have length equals to 32\"\n\terrNilTraceID           errorConst = \"trace-id can't be all zero\"\n\n\terrInvalidSpanIDLength errorConst = \"hex encoded span-id must have length equals to 16\"\n\terrNilSpanID           errorConst = \"span-id can't be all zero\"\n)\n\ntype errorConst string\n\nfunc (e errorConst) Error() string {\n\treturn string(e)\n}\n\n// TraceID is a unique identity of a trace.\n// nolint:revive // revive complains about stutter of `trace.TraceID`.\ntype TraceID [16]byte\n\nvar (\n\tnilTraceID TraceID\n\t_          json.Marshaler = nilTraceID\n)\n\n// IsValid checks whether the trace TraceID is valid. A valid trace ID does\n// not consist of zeros only.\nfunc (t TraceID) IsValid() bool {\n\treturn !bytes.Equal(t[:], nilTraceID[:])\n}\n\n// MarshalJSON implements a custom marshal function to encode TraceID\n// as a hex string.\nfunc (t TraceID) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(t.String())\n}\n\n// String returns the hex string representation form of a TraceID.\nfunc (t TraceID) String() string {\n\treturn hex.EncodeToString(t[:])\n}\n\n// SpanID is a unique identity of a span in a trace.\ntype SpanID [8]byte\n\nvar (\n\tnilSpanID SpanID\n\t_         json.Marshaler = nilSpanID\n)\n\n// IsValid checks whether the SpanID is valid. A valid SpanID does not consist\n// of zeros only.\nfunc (s SpanID) IsValid() bool {\n\treturn !bytes.Equal(s[:], nilSpanID[:])\n}\n\n// MarshalJSON implements a custom marshal function to encode SpanID\n// as a hex string.\nfunc (s SpanID) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(s.String())\n}\n\n// String returns the hex string representation form of a SpanID.\nfunc (s SpanID) String() string {\n\treturn hex.EncodeToString(s[:])\n}\n\n// TraceIDFromHex returns a TraceID from a hex string if it is compliant with\n// the W3C trace-context specification.  See more at\n// https://www.w3.org/TR/trace-context/#trace-id\n// nolint:revive // revive complains about stutter of `trace.TraceIDFromHex`.\nfunc TraceIDFromHex(h string) (TraceID, error) {\n\tt := TraceID{}\n\tif len(h) != 32 {\n\t\treturn t, errInvalidTraceIDLength\n\t}\n\n\tif err := decodeHex(h, t[:]); err != nil {\n\t\treturn t, err\n\t}\n\n\tif !t.IsValid() {\n\t\treturn t, errNilTraceID\n\t}\n\treturn t, nil\n}\n\n// SpanIDFromHex returns a SpanID from a hex string if it is compliant\n// with the w3c trace-context specification.\n// See more at https://www.w3.org/TR/trace-context/#parent-id\nfunc SpanIDFromHex(h string) (SpanID, error) {\n\ts := SpanID{}\n\tif len(h) != 16 {\n\t\treturn s, errInvalidSpanIDLength\n\t}\n\n\tif err := decodeHex(h, s[:]); err != nil {\n\t\treturn s, err\n\t}\n\n\tif !s.IsValid() {\n\t\treturn s, errNilSpanID\n\t}\n\treturn s, nil\n}\n\nfunc decodeHex(h string, b []byte) error {\n\tfor _, r := range h {\n\t\tswitch {\n\t\tcase 'a' <= r && r <= 'f':\n\t\t\tcontinue\n\t\tcase '0' <= r && r <= '9':\n\t\t\tcontinue\n\t\tdefault:\n\t\t\treturn errInvalidHexID\n\t\t}\n\t}\n\n\tdecoded, err := hex.DecodeString(h)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcopy(b, decoded)\n\treturn nil\n}\n\n// TraceFlags contains flags that can be set on a SpanContext.\ntype TraceFlags byte //nolint:revive // revive complains about stutter of `trace.TraceFlags`.\n\n// IsSampled returns if the sampling bit is set in the TraceFlags.\nfunc (tf TraceFlags) IsSampled() bool {\n\treturn tf&FlagsSampled == FlagsSampled\n}\n\n// WithSampled sets the sampling bit in a new copy of the TraceFlags.\nfunc (tf TraceFlags) WithSampled(sampled bool) TraceFlags { // nolint:revive  // sampled is not a control flag.\n\tif sampled {\n\t\treturn tf | FlagsSampled\n\t}\n\n\treturn tf &^ FlagsSampled\n}\n\n// MarshalJSON implements a custom marshal function to encode TraceFlags\n// as a hex string.\nfunc (tf TraceFlags) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(tf.String())\n}\n\n// String returns the hex string representation form of TraceFlags.\nfunc (tf TraceFlags) String() string {\n\treturn hex.EncodeToString([]byte{byte(tf)}[:])\n}\n\n// SpanContextConfig contains mutable fields usable for constructing\n// an immutable SpanContext.\ntype SpanContextConfig struct {\n\tTraceID    TraceID\n\tSpanID     SpanID\n\tTraceFlags TraceFlags\n\tTraceState TraceState\n\tRemote     bool\n}\n\n// NewSpanContext constructs a SpanContext using values from the provided\n// SpanContextConfig.\nfunc NewSpanContext(config SpanContextConfig) SpanContext {\n\treturn SpanContext{\n\t\ttraceID:    config.TraceID,\n\t\tspanID:     config.SpanID,\n\t\ttraceFlags: config.TraceFlags,\n\t\ttraceState: config.TraceState,\n\t\tremote:     config.Remote,\n\t}\n}\n\n// SpanContext contains identifying trace information about a Span.\ntype SpanContext struct {\n\ttraceID    TraceID\n\tspanID     SpanID\n\ttraceFlags TraceFlags\n\ttraceState TraceState\n\tremote     bool\n}\n\nvar _ json.Marshaler = SpanContext{}\n\n// IsValid returns if the SpanContext is valid. A valid span context has a\n// valid TraceID and SpanID.\nfunc (sc SpanContext) IsValid() bool {\n\treturn sc.HasTraceID() && sc.HasSpanID()\n}\n\n// IsRemote indicates whether the SpanContext represents a remotely-created Span.\nfunc (sc SpanContext) IsRemote() bool {\n\treturn sc.remote\n}\n\n// WithRemote returns a copy of sc with the Remote property set to remote.\nfunc (sc SpanContext) WithRemote(remote bool) SpanContext {\n\treturn SpanContext{\n\t\ttraceID:    sc.traceID,\n\t\tspanID:     sc.spanID,\n\t\ttraceFlags: sc.traceFlags,\n\t\ttraceState: sc.traceState,\n\t\tremote:     remote,\n\t}\n}\n\n// TraceID returns the TraceID from the SpanContext.\nfunc (sc SpanContext) TraceID() TraceID {\n\treturn sc.traceID\n}\n\n// HasTraceID checks if the SpanContext has a valid TraceID.\nfunc (sc SpanContext) HasTraceID() bool {\n\treturn sc.traceID.IsValid()\n}\n\n// WithTraceID returns a new SpanContext with the TraceID replaced.\nfunc (sc SpanContext) WithTraceID(traceID TraceID) SpanContext {\n\treturn SpanContext{\n\t\ttraceID:    traceID,\n\t\tspanID:     sc.spanID,\n\t\ttraceFlags: sc.traceFlags,\n\t\ttraceState: sc.traceState,\n\t\tremote:     sc.remote,\n\t}\n}\n\n// SpanID returns the SpanID from the SpanContext.\nfunc (sc SpanContext) SpanID() SpanID {\n\treturn sc.spanID\n}\n\n// HasSpanID checks if the SpanContext has a valid SpanID.\nfunc (sc SpanContext) HasSpanID() bool {\n\treturn sc.spanID.IsValid()\n}\n\n// WithSpanID returns a new SpanContext with the SpanID replaced.\nfunc (sc SpanContext) WithSpanID(spanID SpanID) SpanContext {\n\treturn SpanContext{\n\t\ttraceID:    sc.traceID,\n\t\tspanID:     spanID,\n\t\ttraceFlags: sc.traceFlags,\n\t\ttraceState: sc.traceState,\n\t\tremote:     sc.remote,\n\t}\n}\n\n// TraceFlags returns the flags from the SpanContext.\nfunc (sc SpanContext) TraceFlags() TraceFlags {\n\treturn sc.traceFlags\n}\n\n// IsSampled returns if the sampling bit is set in the SpanContext's TraceFlags.\nfunc (sc SpanContext) IsSampled() bool {\n\treturn sc.traceFlags.IsSampled()\n}\n\n// WithTraceFlags returns a new SpanContext with the TraceFlags replaced.\nfunc (sc SpanContext) WithTraceFlags(flags TraceFlags) SpanContext {\n\treturn SpanContext{\n\t\ttraceID:    sc.traceID,\n\t\tspanID:     sc.spanID,\n\t\ttraceFlags: flags,\n\t\ttraceState: sc.traceState,\n\t\tremote:     sc.remote,\n\t}\n}\n\n// TraceState returns the TraceState from the SpanContext.\nfunc (sc SpanContext) TraceState() TraceState {\n\treturn sc.traceState\n}\n\n// WithTraceState returns a new SpanContext with the TraceState replaced.\nfunc (sc SpanContext) WithTraceState(state TraceState) SpanContext {\n\treturn SpanContext{\n\t\ttraceID:    sc.traceID,\n\t\tspanID:     sc.spanID,\n\t\ttraceFlags: sc.traceFlags,\n\t\ttraceState: state,\n\t\tremote:     sc.remote,\n\t}\n}\n\n// Equal is a predicate that determines whether two SpanContext values are equal.\nfunc (sc SpanContext) Equal(other SpanContext) bool {\n\treturn sc.traceID == other.traceID &&\n\t\tsc.spanID == other.spanID &&\n\t\tsc.traceFlags == other.traceFlags &&\n\t\tsc.traceState.String() == other.traceState.String() &&\n\t\tsc.remote == other.remote\n}\n\n// MarshalJSON implements a custom marshal function to encode a SpanContext.\nfunc (sc SpanContext) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(SpanContextConfig{\n\t\tTraceID:    sc.traceID,\n\t\tSpanID:     sc.spanID,\n\t\tTraceFlags: sc.traceFlags,\n\t\tTraceState: sc.traceState,\n\t\tRemote:     sc.remote,\n\t})\n}\n\n// Span is the individual component of a trace. It represents a single named\n// and timed operation of a workflow that is traced. A Tracer is used to\n// create a Span and it is then up to the operation the Span represents to\n// properly end the Span when the operation itself ends.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Span interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Span\n\n\t// End completes the Span. The Span is considered complete and ready to be\n\t// delivered through the rest of the telemetry pipeline after this method\n\t// is called. Therefore, updates to the Span are not allowed after this\n\t// method has been called.\n\tEnd(options ...SpanEndOption)\n\n\t// AddEvent adds an event with the provided name and options.\n\tAddEvent(name string, options ...EventOption)\n\n\t// AddLink adds a link.\n\t// Adding links at span creation using WithLinks is preferred to calling AddLink\n\t// later, for contexts that are available during span creation, because head\n\t// sampling decisions can only consider information present during span creation.\n\tAddLink(link Link)\n\n\t// IsRecording returns the recording state of the Span. It will return\n\t// true if the Span is active and events can be recorded.\n\tIsRecording() bool\n\n\t// RecordError will record err as an exception span event for this span. An\n\t// additional call to SetStatus is required if the Status of the Span should\n\t// be set to Error, as this method does not change the Span status. If this\n\t// span is not being recorded or err is nil then this method does nothing.\n\tRecordError(err error, options ...EventOption)\n\n\t// SpanContext returns the SpanContext of the Span. The returned SpanContext\n\t// is usable even after the End method has been called for the Span.\n\tSpanContext() SpanContext\n\n\t// SetStatus sets the status of the Span in the form of a code and a\n\t// description, provided the status hasn't already been set to a higher\n\t// value before (OK > Error > Unset). The description is only included in a\n\t// status when the code is for an error.\n\tSetStatus(code codes.Code, description string)\n\n\t// SetName sets the Span name.\n\tSetName(name string)\n\n\t// SetAttributes sets kv as attributes of the Span. If a key from kv\n\t// already exists for an attribute of the Span it will be overwritten with\n\t// the value contained in kv.\n\tSetAttributes(kv ...attribute.KeyValue)\n\n\t// TracerProvider returns a TracerProvider that can be used to generate\n\t// additional Spans on the same telemetry pipeline as the current Span.\n\tTracerProvider() TracerProvider\n}\n\n// Link is the relationship between two Spans. The relationship can be within\n// the same Trace or across different Traces.\n//\n// For example, a Link is used in the following situations:\n//\n//  1. Batch Processing: A batch of operations may contain operations\n//     associated with one or more traces/spans. Since there can only be one\n//     parent SpanContext, a Link is used to keep reference to the\n//     SpanContext of all operations in the batch.\n//  2. Public Endpoint: A SpanContext for an in incoming client request on a\n//     public endpoint should be considered untrusted. In such a case, a new\n//     trace with its own identity and sampling decision needs to be created,\n//     but this new trace needs to be related to the original trace in some\n//     form. A Link is used to keep reference to the original SpanContext and\n//     track the relationship.\ntype Link struct {\n\t// SpanContext of the linked Span.\n\tSpanContext SpanContext\n\n\t// Attributes describe the aspects of the link.\n\tAttributes []attribute.KeyValue\n}\n\n// LinkFromContext returns a link encapsulating the SpanContext in the provided ctx.\nfunc LinkFromContext(ctx context.Context, attrs ...attribute.KeyValue) Link {\n\treturn Link{\n\t\tSpanContext: SpanContextFromContext(ctx),\n\t\tAttributes:  attrs,\n\t}\n}\n\n// SpanKind is the role a Span plays in a Trace.\ntype SpanKind int\n\n// As a convenience, these match the proto definition, see\n// https://github.com/open-telemetry/opentelemetry-proto/blob/30d237e1ff3ab7aa50e0922b5bebdd93505090af/opentelemetry/proto/trace/v1/trace.proto#L101-L129\n//\n// The unspecified value is not a valid `SpanKind`. Use `ValidateSpanKind()`\n// to coerce a span kind to a valid value.\nconst (\n\t// SpanKindUnspecified is an unspecified SpanKind and is not a valid\n\t// SpanKind. SpanKindUnspecified should be replaced with SpanKindInternal\n\t// if it is received.\n\tSpanKindUnspecified SpanKind = 0\n\t// SpanKindInternal is a SpanKind for a Span that represents an internal\n\t// operation within an application.\n\tSpanKindInternal SpanKind = 1\n\t// SpanKindServer is a SpanKind for a Span that represents the operation\n\t// of handling a request from a client.\n\tSpanKindServer SpanKind = 2\n\t// SpanKindClient is a SpanKind for a Span that represents the operation\n\t// of client making a request to a server.\n\tSpanKindClient SpanKind = 3\n\t// SpanKindProducer is a SpanKind for a Span that represents the operation\n\t// of a producer sending a message to a message broker. Unlike\n\t// SpanKindClient and SpanKindServer, there is often no direct\n\t// relationship between this kind of Span and a SpanKindConsumer kind. A\n\t// SpanKindProducer Span will end once the message is accepted by the\n\t// message broker which might not overlap with the processing of that\n\t// message.\n\tSpanKindProducer SpanKind = 4\n\t// SpanKindConsumer is a SpanKind for a Span that represents the operation\n\t// of a consumer receiving a message from a message broker. Like\n\t// SpanKindProducer Spans, there is often no direct relationship between\n\t// this Span and the Span that produced the message.\n\tSpanKindConsumer SpanKind = 5\n)\n\n// ValidateSpanKind returns a valid span kind value.  This will coerce\n// invalid values into the default value, SpanKindInternal.\nfunc ValidateSpanKind(spanKind SpanKind) SpanKind {\n\tswitch spanKind {\n\tcase SpanKindInternal,\n\t\tSpanKindServer,\n\t\tSpanKindClient,\n\t\tSpanKindProducer,\n\t\tSpanKindConsumer:\n\t\t// valid\n\t\treturn spanKind\n\tdefault:\n\t\treturn SpanKindInternal\n\t}\n}\n\n// String returns the specified name of the SpanKind in lower-case.\nfunc (sk SpanKind) String() string {\n\tswitch sk {\n\tcase SpanKindInternal:\n\t\treturn \"internal\"\n\tcase SpanKindServer:\n\t\treturn \"server\"\n\tcase SpanKindClient:\n\t\treturn \"client\"\n\tcase SpanKindProducer:\n\t\treturn \"producer\"\n\tcase SpanKindConsumer:\n\t\treturn \"consumer\"\n\tdefault:\n\t\treturn \"unspecified\"\n\t}\n}\n\n// Tracer is the creator of Spans.\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype Tracer interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.Tracer\n\n\t// Start creates a span and a context.Context containing the newly-created span.\n\t//\n\t// If the context.Context provided in `ctx` contains a Span then the newly-created\n\t// Span will be a child of that span, otherwise it will be a root span. This behavior\n\t// can be overridden by providing `WithNewRoot()` as a SpanOption, causing the\n\t// newly-created Span to be a root span even if `ctx` contains a Span.\n\t//\n\t// When creating a Span it is recommended to provide all known span attributes using\n\t// the `WithAttributes()` SpanOption as samplers will only have access to the\n\t// attributes provided when a Span is created.\n\t//\n\t// Any Span that is created MUST also be ended. This is the responsibility of the user.\n\t// Implementations of this API may leak memory or other resources if Spans are not ended.\n\tStart(ctx context.Context, spanName string, opts ...SpanStartOption) (context.Context, Span)\n}\n\n// TracerProvider provides Tracers that are used by instrumentation code to\n// trace computational workflows.\n//\n// A TracerProvider is the collection destination of all Spans from Tracers it\n// provides, it represents a unique telemetry collection pipeline. How that\n// pipeline is defined, meaning how those Spans are collected, processed, and\n// where they are exported, depends on its implementation. Instrumentation\n// authors do not need to define this implementation, rather just use the\n// provided Tracers to instrument code.\n//\n// Commonly, instrumentation code will accept a TracerProvider implementation\n// at runtime from its users or it can simply use the globally registered one\n// (see https://pkg.go.dev/go.opentelemetry.io/otel#GetTracerProvider).\n//\n// Warning: Methods may be added to this interface in minor releases. See\n// package documentation on API implementation for information on how to set\n// default behavior for unimplemented methods.\ntype TracerProvider interface {\n\t// Users of the interface can ignore this. This embedded type is only used\n\t// by implementations of this interface. See the \"API Implementations\"\n\t// section of the package documentation for more information.\n\tembedded.TracerProvider\n\n\t// Tracer returns a unique Tracer scoped to be used by instrumentation code\n\t// to trace computational workflows. The scope and identity of that\n\t// instrumentation code is uniquely defined by the name and options passed.\n\t//\n\t// The passed name needs to uniquely identify instrumentation code.\n\t// Therefore, it is recommended that name is the Go package name of the\n\t// library providing instrumentation (note: not the code being\n\t// instrumented). Instrumentation libraries can have multiple versions,\n\t// therefore, the WithInstrumentationVersion option should be used to\n\t// distinguish these different codebases. Additionally, instrumentation\n\t// libraries may sometimes use traces to communicate different domains of\n\t// workflow data (i.e. using spans to communicate workflow events only). If\n\t// this is the case, the WithScopeAttributes option should be used to\n\t// uniquely identify Tracers that handle the different domains of workflow\n\t// data.\n\t//\n\t// If the same name and options are passed multiple times, the same Tracer\n\t// will be returned (it is up to the implementation if this will be the\n\t// same underlying instance of that Tracer or not). It is not necessary to\n\t// call this multiple times with the same name and options to get an\n\t// up-to-date Tracer. All implementations will ensure any TracerProvider\n\t// configuration changes are propagated to all provided Tracers.\n\t//\n\t// If name is empty, then an implementation defined default name will be\n\t// used instead.\n\t//\n\t// This method is safe to call concurrently.\n\tTracer(name string, options ...TracerOption) Tracer\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace/tracestate.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage trace // import \"go.opentelemetry.io/otel/trace\"\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n)\n\nconst (\n\tmaxListMembers = 32\n\n\tlistDelimiters  = \",\"\n\tmemberDelimiter = \"=\"\n\n\terrInvalidKey    errorConst = \"invalid tracestate key\"\n\terrInvalidValue  errorConst = \"invalid tracestate value\"\n\terrInvalidMember errorConst = \"invalid tracestate list-member\"\n\terrMemberNumber  errorConst = \"too many list-members in tracestate\"\n\terrDuplicate     errorConst = \"duplicate list-member in tracestate\"\n)\n\ntype member struct {\n\tKey   string\n\tValue string\n}\n\n// according to (chr = %x20 / (nblk-char = %x21-2B / %x2D-3C / %x3E-7E) )\n// means (chr = %x20-2B / %x2D-3C / %x3E-7E) .\nfunc checkValueChar(v byte) bool {\n\treturn v >= '\\x20' && v <= '\\x7e' && v != '\\x2c' && v != '\\x3d'\n}\n\n// according to (nblk-chr = %x21-2B / %x2D-3C / %x3E-7E) .\nfunc checkValueLast(v byte) bool {\n\treturn v >= '\\x21' && v <= '\\x7e' && v != '\\x2c' && v != '\\x3d'\n}\n\n// based on the W3C Trace Context specification\n//\n//\tvalue    = (0*255(chr)) nblk-chr\n//\tnblk-chr = %x21-2B / %x2D-3C / %x3E-7E\n//\tchr      = %x20 / nblk-chr\n//\n// see https://www.w3.org/TR/trace-context-1/#value\nfunc checkValue(val string) bool {\n\tn := len(val)\n\tif n == 0 || n > 256 {\n\t\treturn false\n\t}\n\tfor i := 0; i < n-1; i++ {\n\t\tif !checkValueChar(val[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn checkValueLast(val[n-1])\n}\n\nfunc checkKeyRemain(key string) bool {\n\t// ( lcalpha / DIGIT / \"_\" / \"-\"/ \"*\" / \"/\" )\n\tfor _, v := range key {\n\t\tif isAlphaNum(byte(v)) {\n\t\t\tcontinue\n\t\t}\n\t\tswitch v {\n\t\tcase '_', '-', '*', '/':\n\t\t\tcontinue\n\t\t}\n\t\treturn false\n\t}\n\treturn true\n}\n\n// according to\n//\n//\tsimple-key = lcalpha (0*255( lcalpha / DIGIT / \"_\" / \"-\"/ \"*\" / \"/\" ))\n//\tsystem-id = lcalpha (0*13( lcalpha / DIGIT / \"_\" / \"-\"/ \"*\" / \"/\" ))\n//\n// param n is remain part length, should be 255 in simple-key or 13 in system-id.\nfunc checkKeyPart(key string, n int) bool {\n\tif len(key) == 0 {\n\t\treturn false\n\t}\n\tfirst := key[0] // key's first char\n\tret := len(key[1:]) <= n\n\tret = ret && first >= 'a' && first <= 'z'\n\treturn ret && checkKeyRemain(key[1:])\n}\n\nfunc isAlphaNum(c byte) bool {\n\tif c >= 'a' && c <= 'z' {\n\t\treturn true\n\t}\n\treturn c >= '0' && c <= '9'\n}\n\n// according to\n//\n//\ttenant-id = ( lcalpha / DIGIT ) 0*240( lcalpha / DIGIT / \"_\" / \"-\"/ \"*\" / \"/\" )\n//\n// param n is remain part length, should be 240 exactly.\nfunc checkKeyTenant(key string, n int) bool {\n\tif len(key) == 0 {\n\t\treturn false\n\t}\n\treturn isAlphaNum(key[0]) && len(key[1:]) <= n && checkKeyRemain(key[1:])\n}\n\n// based on the W3C Trace Context specification\n//\n//\tkey = simple-key / multi-tenant-key\n//\tsimple-key = lcalpha (0*255( lcalpha / DIGIT / \"_\" / \"-\"/ \"*\" / \"/\" ))\n//\tmulti-tenant-key = tenant-id \"@\" system-id\n//\ttenant-id = ( lcalpha / DIGIT ) (0*240( lcalpha / DIGIT / \"_\" / \"-\"/ \"*\" / \"/\" ))\n//\tsystem-id = lcalpha (0*13( lcalpha / DIGIT / \"_\" / \"-\"/ \"*\" / \"/\" ))\n//\tlcalpha    = %x61-7A ; a-z\n//\n// see https://www.w3.org/TR/trace-context-1/#tracestate-header.\nfunc checkKey(key string) bool {\n\ttenant, system, ok := strings.Cut(key, \"@\")\n\tif !ok {\n\t\treturn checkKeyPart(key, 255)\n\t}\n\treturn checkKeyTenant(tenant, 240) && checkKeyPart(system, 13)\n}\n\nfunc newMember(key, value string) (member, error) {\n\tif !checkKey(key) {\n\t\treturn member{}, errInvalidKey\n\t}\n\tif !checkValue(value) {\n\t\treturn member{}, errInvalidValue\n\t}\n\treturn member{Key: key, Value: value}, nil\n}\n\nfunc parseMember(m string) (member, error) {\n\tkey, val, ok := strings.Cut(m, memberDelimiter)\n\tif !ok {\n\t\treturn member{}, fmt.Errorf(\"%w: %s\", errInvalidMember, m)\n\t}\n\tkey = strings.TrimLeft(key, \" \\t\")\n\tval = strings.TrimRight(val, \" \\t\")\n\tresult, e := newMember(key, val)\n\tif e != nil {\n\t\treturn member{}, fmt.Errorf(\"%w: %s\", errInvalidMember, m)\n\t}\n\treturn result, nil\n}\n\n// String encodes member into a string compliant with the W3C Trace Context\n// specification.\nfunc (m member) String() string {\n\treturn m.Key + \"=\" + m.Value\n}\n\n// TraceState provides additional vendor-specific trace identification\n// information across different distributed tracing systems. It represents an\n// immutable list consisting of key/value pairs, each pair is referred to as a\n// list-member.\n//\n// TraceState conforms to the W3C Trace Context specification\n// (https://www.w3.org/TR/trace-context-1). All operations that create or copy\n// a TraceState do so by validating all input and will only produce TraceState\n// that conform to the specification. Specifically, this means that all\n// list-member's key/value pairs are valid, no duplicate list-members exist,\n// and the maximum number of list-members (32) is not exceeded.\ntype TraceState struct { //nolint:revive // revive complains about stutter of `trace.TraceState`\n\t// list is the members in order.\n\tlist []member\n}\n\nvar _ json.Marshaler = TraceState{}\n\n// ParseTraceState attempts to decode a TraceState from the passed\n// string. It returns an error if the input is invalid according to the W3C\n// Trace Context specification.\nfunc ParseTraceState(ts string) (TraceState, error) {\n\tif ts == \"\" {\n\t\treturn TraceState{}, nil\n\t}\n\n\twrapErr := func(err error) error {\n\t\treturn fmt.Errorf(\"failed to parse tracestate: %w\", err)\n\t}\n\n\tvar members []member\n\tfound := make(map[string]struct{})\n\tfor ts != \"\" {\n\t\tvar memberStr string\n\t\tmemberStr, ts, _ = strings.Cut(ts, listDelimiters)\n\t\tif len(memberStr) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tm, err := parseMember(memberStr)\n\t\tif err != nil {\n\t\t\treturn TraceState{}, wrapErr(err)\n\t\t}\n\n\t\tif _, ok := found[m.Key]; ok {\n\t\t\treturn TraceState{}, wrapErr(errDuplicate)\n\t\t}\n\t\tfound[m.Key] = struct{}{}\n\n\t\tmembers = append(members, m)\n\t\tif n := len(members); n > maxListMembers {\n\t\t\treturn TraceState{}, wrapErr(errMemberNumber)\n\t\t}\n\t}\n\n\treturn TraceState{list: members}, nil\n}\n\n// MarshalJSON marshals the TraceState into JSON.\nfunc (ts TraceState) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(ts.String())\n}\n\n// String encodes the TraceState into a string compliant with the W3C\n// Trace Context specification. The returned string will be invalid if the\n// TraceState contains any invalid members.\nfunc (ts TraceState) String() string {\n\tif len(ts.list) == 0 {\n\t\treturn \"\"\n\t}\n\tvar n int\n\tn += len(ts.list)     // member delimiters: '='\n\tn += len(ts.list) - 1 // list delimiters: ','\n\tfor _, mem := range ts.list {\n\t\tn += len(mem.Key)\n\t\tn += len(mem.Value)\n\t}\n\n\tvar sb strings.Builder\n\tsb.Grow(n)\n\t_, _ = sb.WriteString(ts.list[0].Key)\n\t_ = sb.WriteByte('=')\n\t_, _ = sb.WriteString(ts.list[0].Value)\n\tfor i := 1; i < len(ts.list); i++ {\n\t\t_ = sb.WriteByte(listDelimiters[0])\n\t\t_, _ = sb.WriteString(ts.list[i].Key)\n\t\t_ = sb.WriteByte('=')\n\t\t_, _ = sb.WriteString(ts.list[i].Value)\n\t}\n\treturn sb.String()\n}\n\n// Get returns the value paired with key from the corresponding TraceState\n// list-member if it exists, otherwise an empty string is returned.\nfunc (ts TraceState) Get(key string) string {\n\tfor _, member := range ts.list {\n\t\tif member.Key == key {\n\t\t\treturn member.Value\n\t\t}\n\t}\n\n\treturn \"\"\n}\n\n// Insert adds a new list-member defined by the key/value pair to the\n// TraceState. If a list-member already exists for the given key, that\n// list-member's value is updated. The new or updated list-member is always\n// moved to the beginning of the TraceState as specified by the W3C Trace\n// Context specification.\n//\n// If key or value are invalid according to the W3C Trace Context\n// specification an error is returned with the original TraceState.\n//\n// If adding a new list-member means the TraceState would have more members\n// then is allowed, the new list-member will be inserted and the right-most\n// list-member will be dropped in the returned TraceState.\nfunc (ts TraceState) Insert(key, value string) (TraceState, error) {\n\tm, err := newMember(key, value)\n\tif err != nil {\n\t\treturn ts, err\n\t}\n\tn := len(ts.list)\n\tfound := n\n\tfor i := range ts.list {\n\t\tif ts.list[i].Key == key {\n\t\t\tfound = i\n\t\t}\n\t}\n\tcTS := TraceState{}\n\tif found == n && n < maxListMembers {\n\t\tcTS.list = make([]member, n+1)\n\t} else {\n\t\tcTS.list = make([]member, n)\n\t}\n\tcTS.list[0] = m\n\t// When the number of members exceeds capacity, drop the \"right-most\".\n\tcopy(cTS.list[1:], ts.list[0:found])\n\tif found < n {\n\t\tcopy(cTS.list[1+found:], ts.list[found+1:])\n\t}\n\treturn cTS, nil\n}\n\n// Delete returns a copy of the TraceState with the list-member identified by\n// key removed.\nfunc (ts TraceState) Delete(key string) TraceState {\n\tmembers := make([]member, ts.Len())\n\tcopy(members, ts.list)\n\tfor i, member := range ts.list {\n\t\tif member.Key == key {\n\t\t\tmembers = append(members[:i], members[i+1:]...)\n\t\t\t// TraceState should contain no duplicate members.\n\t\t\tbreak\n\t\t}\n\t}\n\treturn TraceState{list: members}\n}\n\n// Len returns the number of list-members in the TraceState.\nfunc (ts TraceState) Len() int {\n\treturn len(ts.list)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/trace.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otel // import \"go.opentelemetry.io/otel\"\n\nimport (\n\t\"go.opentelemetry.io/otel/internal/global\"\n\t\"go.opentelemetry.io/otel/trace\"\n)\n\n// Tracer creates a named tracer that implements Tracer interface.\n// If the name is an empty string then provider uses default name.\n//\n// This is short for GetTracerProvider().Tracer(name, opts...)\nfunc Tracer(name string, opts ...trace.TracerOption) trace.Tracer {\n\treturn GetTracerProvider().Tracer(name, opts...)\n}\n\n// GetTracerProvider returns the registered global trace provider.\n// If none is registered then an instance of NoopTracerProvider is returned.\n//\n// Use the trace provider to create a named tracer. E.g.\n//\n//\ttracer := otel.GetTracerProvider().Tracer(\"example.com/foo\")\n//\n// or\n//\n//\ttracer := otel.Tracer(\"example.com/foo\")\nfunc GetTracerProvider() trace.TracerProvider {\n\treturn global.TracerProvider()\n}\n\n// SetTracerProvider registers `tp` as the global trace provider.\nfunc SetTracerProvider(tp trace.TracerProvider) {\n\tglobal.SetTracerProvider(tp)\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/verify_examples.sh",
    "content": "#!/bin/bash\n\n# Copyright The OpenTelemetry Authors\n# SPDX-License-Identifier: Apache-2.0\n\nset -euo pipefail\n\ncd $(dirname $0)\nTOOLS_DIR=$(pwd)/.tools\n\nif [ -z \"${GOPATH}\" ] ; then\n\tprintf \"GOPATH is not defined.\\n\"\n\texit -1\nfi\n\nif [ ! -d \"${GOPATH}\" ] ; then\n\tprintf \"GOPATH ${GOPATH} is invalid \\n\"\n\texit -1\nfi\n\n# Pre-requisites\nif ! git diff --quiet; then \\\n\tgit status\n\tprintf \"\\n\\nError: working tree is not clean\\n\"\n\texit -1\nfi\n\nif [ \"$(git tag --contains $(git log -1 --pretty=format:\"%H\"))\" = \"\" ] ; then\n\tprintf \"$(git log -1)\"\n\tprintf \"\\n\\nError: HEAD is not pointing to a tagged version\"\nfi\n\nmake ${TOOLS_DIR}/gojq\n\nDIR_TMP=\"${GOPATH}/src/oteltmp/\"\nrm -rf $DIR_TMP\nmkdir -p $DIR_TMP\n\nprintf \"Copy examples to ${DIR_TMP}\\n\"\ncp -a ./example ${DIR_TMP}\n\n# Update go.mod files\nprintf \"Update go.mod: rename module and remove replace\\n\"\n\nPACKAGE_DIRS=$(find . -mindepth 2 -type f -name 'go.mod' -exec dirname {} \\; | egrep 'example' | sed 's/^\\.\\///' | sort)\n\nfor dir in $PACKAGE_DIRS; do\n\tprintf \"  Update go.mod for $dir\\n\"\n\t(cd \"${DIR_TMP}/${dir}\" && \\\n\t # replaces is (\"mod1\" \"mod2\" …)\n\t replaces=($(go mod edit -json | ${TOOLS_DIR}/gojq '.Replace[].Old.Path')) && \\\n\t # strip double quotes\n\t replaces=(\"${replaces[@]%\\\"}\") && \\\n\t replaces=(\"${replaces[@]#\\\"}\") && \\\n\t # make an array (-dropreplace=mod1 -dropreplace=mod2 …)\n\t dropreplaces=(\"${replaces[@]/#/-dropreplace=}\") && \\\n\t go mod edit -module \"oteltmp/${dir}\" \"${dropreplaces[@]}\" && \\\n\t go mod tidy)\ndone\nprintf \"Update done:\\n\\n\"\n\n# Build directories that contain main package. These directories are different than\n# directories that contain go.mod files.\nprintf \"Build examples:\\n\"\nEXAMPLES=$(./get_main_pkgs.sh ./example)\nfor ex in $EXAMPLES; do\n\tprintf \"  Build $ex in ${DIR_TMP}/${ex}\\n\"\n\t(cd \"${DIR_TMP}/${ex}\" && \\\n\t go build .)\ndone\n\n# Cleanup\nprintf \"Remove copied files.\\n\"\nrm -rf $DIR_TMP\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/verify_readmes.sh",
    "content": "#!/bin/bash\n\n# Copyright The OpenTelemetry Authors\n# SPDX-License-Identifier: Apache-2.0\n\nset -euo pipefail\n\ndirs=$(find . -type d -not -path \"*/internal*\" -not -path \"*/test*\" -not -path \"*/example*\" -not -path \"*/.*\" | sort)\n\nmissingReadme=false\nfor dir in $dirs; do\n\tif [ ! -f \"$dir/README.md\" ]; then\n\t\techo \"couldn't find README.md for $dir\"\n\t\tmissingReadme=true\n\tfi\ndone\n\nif [ \"$missingReadme\" = true ] ; then\n\techo \"Error: some READMEs couldn't be found.\"\n\texit 1\nfi\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/version.go",
    "content": "// Copyright The OpenTelemetry Authors\n// SPDX-License-Identifier: Apache-2.0\n\npackage otel // import \"go.opentelemetry.io/otel\"\n\n// Version is the current release version of OpenTelemetry in use.\nfunc Version() string {\n\treturn \"1.28.0\"\n}\n"
  },
  {
    "path": "vendor/go.opentelemetry.io/otel/versions.yaml",
    "content": "# Copyright The OpenTelemetry Authors\n# SPDX-License-Identifier: Apache-2.0\n\nmodule-sets:\n  stable-v1:\n    version: v1.28.0\n    modules:\n      - go.opentelemetry.io/otel\n      - go.opentelemetry.io/otel/bridge/opencensus\n      - go.opentelemetry.io/otel/bridge/opencensus/test\n      - go.opentelemetry.io/otel/bridge/opentracing\n      - go.opentelemetry.io/otel/bridge/opentracing/test\n      - go.opentelemetry.io/otel/example/dice\n      - go.opentelemetry.io/otel/example/namedtracer\n      - go.opentelemetry.io/otel/example/opencensus\n      - go.opentelemetry.io/otel/example/otel-collector\n      - go.opentelemetry.io/otel/example/passthrough\n      - go.opentelemetry.io/otel/example/zipkin\n      - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc\n      - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp\n      - go.opentelemetry.io/otel/exporters/otlp/otlptrace\n      - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc\n      - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp\n      - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric\n      - go.opentelemetry.io/otel/exporters/stdout/stdouttrace\n      - go.opentelemetry.io/otel/exporters/zipkin\n      - go.opentelemetry.io/otel/metric\n      - go.opentelemetry.io/otel/sdk\n      - go.opentelemetry.io/otel/sdk/metric\n      - go.opentelemetry.io/otel/trace\n  experimental-metrics:\n    version: v0.50.0\n    modules:\n      - go.opentelemetry.io/otel/example/prometheus\n      - go.opentelemetry.io/otel/exporters/prometheus\n  experimental-logs:\n    version: v0.4.0\n    modules:\n      - go.opentelemetry.io/otel/log\n      - go.opentelemetry.io/otel/sdk/log\n      - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp\n      - go.opentelemetry.io/otel/exporters/stdout/stdoutlog\n  experimental-schema:\n    version: v0.0.8\n    modules:\n      - go.opentelemetry.io/otel/schema\nexcluded-modules:\n  - go.opentelemetry.io/otel/internal/tools\n  - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc\n"
  },
  {
    "path": "vendor/golang.org/x/exp/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/exp/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/exp/constraints/constraints.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package constraints defines a set of useful constraints to be used\n// with type parameters.\npackage constraints\n\n// Signed is a constraint that permits any signed integer type.\n// If future releases of Go add new predeclared signed integer types,\n// this constraint will be modified to include them.\ntype Signed interface {\n\t~int | ~int8 | ~int16 | ~int32 | ~int64\n}\n\n// Unsigned is a constraint that permits any unsigned integer type.\n// If future releases of Go add new predeclared unsigned integer types,\n// this constraint will be modified to include them.\ntype Unsigned interface {\n\t~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr\n}\n\n// Integer is a constraint that permits any integer type.\n// If future releases of Go add new predeclared integer types,\n// this constraint will be modified to include them.\ntype Integer interface {\n\tSigned | Unsigned\n}\n\n// Float is a constraint that permits any floating-point type.\n// If future releases of Go add new predeclared floating-point types,\n// this constraint will be modified to include them.\ntype Float interface {\n\t~float32 | ~float64\n}\n\n// Complex is a constraint that permits any complex numeric type.\n// If future releases of Go add new predeclared complex numeric types,\n// this constraint will be modified to include them.\ntype Complex interface {\n\t~complex64 | ~complex128\n}\n\n// Ordered is a constraint that permits any ordered type: any type\n// that supports the operators < <= >= >.\n// If future releases of Go add new ordered types,\n// this constraint will be modified to include them.\ntype Ordered interface {\n\tInteger | Float | ~string\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/sys/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\nTEXT ·use(SB),NOSPLIT,$0\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm_plan9_386.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\n//\n// System call support for 386, Plan 9\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-32\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-44\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·seek(SB)\n\nTEXT ·exit(SB),NOSPLIT,$4-4\n\tJMP\tsyscall·exit(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\n//\n// System call support for amd64, Plan 9\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-64\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·seek(SB)\n\nTEXT ·exit(SB),NOSPLIT,$8-8\n\tJMP\tsyscall·exit(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm_plan9_arm.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\n// System call support for plan9 on arm\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-32\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-44\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·exit(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/const_plan9.go",
    "content": "package plan9\n\n// Plan 9 Constants\n\n// Open modes\nconst (\n\tO_RDONLY  = 0\n\tO_WRONLY  = 1\n\tO_RDWR    = 2\n\tO_TRUNC   = 16\n\tO_CLOEXEC = 32\n\tO_EXCL    = 0x1000\n)\n\n// Rfork flags\nconst (\n\tRFNAMEG  = 1 << 0\n\tRFENVG   = 1 << 1\n\tRFFDG    = 1 << 2\n\tRFNOTEG  = 1 << 3\n\tRFPROC   = 1 << 4\n\tRFMEM    = 1 << 5\n\tRFNOWAIT = 1 << 6\n\tRFCNAMEG = 1 << 10\n\tRFCENVG  = 1 << 11\n\tRFCFDG   = 1 << 12\n\tRFREND   = 1 << 13\n\tRFNOMNT  = 1 << 14\n)\n\n// Qid.Type bits\nconst (\n\tQTDIR    = 0x80\n\tQTAPPEND = 0x40\n\tQTEXCL   = 0x20\n\tQTMOUNT  = 0x10\n\tQTAUTH   = 0x08\n\tQTTMP    = 0x04\n\tQTFILE   = 0x00\n)\n\n// Dir.Mode bits\nconst (\n\tDMDIR    = 0x80000000\n\tDMAPPEND = 0x40000000\n\tDMEXCL   = 0x20000000\n\tDMMOUNT  = 0x10000000\n\tDMAUTH   = 0x08000000\n\tDMTMP    = 0x04000000\n\tDMREAD   = 0x4\n\tDMWRITE  = 0x2\n\tDMEXEC   = 0x1\n)\n\nconst (\n\tSTATMAX    = 65535\n\tERRMAX     = 128\n\tSTATFIXLEN = 49\n)\n\n// Mount and bind flags\nconst (\n\tMREPL   = 0x0000\n\tMBEFORE = 0x0001\n\tMAFTER  = 0x0002\n\tMORDER  = 0x0003\n\tMCREATE = 0x0004\n\tMCACHE  = 0x0010\n\tMMASK   = 0x0017\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/dir_plan9.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Plan 9 directory marshalling. See intro(5).\n\npackage plan9\n\nimport \"errors\"\n\nvar (\n\tErrShortStat = errors.New(\"stat buffer too short\")\n\tErrBadStat   = errors.New(\"malformed stat buffer\")\n\tErrBadName   = errors.New(\"bad character in file name\")\n)\n\n// A Qid represents a 9P server's unique identification for a file.\ntype Qid struct {\n\tPath uint64 // the file server's unique identification for the file\n\tVers uint32 // version number for given Path\n\tType uint8  // the type of the file (plan9.QTDIR for example)\n}\n\n// A Dir contains the metadata for a file.\ntype Dir struct {\n\t// system-modified data\n\tType uint16 // server type\n\tDev  uint32 // server subtype\n\n\t// file data\n\tQid    Qid    // unique id from server\n\tMode   uint32 // permissions\n\tAtime  uint32 // last read time\n\tMtime  uint32 // last write time\n\tLength int64  // file length\n\tName   string // last element of path\n\tUid    string // owner name\n\tGid    string // group name\n\tMuid   string // last modifier name\n}\n\nvar nullDir = Dir{\n\tType: ^uint16(0),\n\tDev:  ^uint32(0),\n\tQid: Qid{\n\t\tPath: ^uint64(0),\n\t\tVers: ^uint32(0),\n\t\tType: ^uint8(0),\n\t},\n\tMode:   ^uint32(0),\n\tAtime:  ^uint32(0),\n\tMtime:  ^uint32(0),\n\tLength: ^int64(0),\n}\n\n// Null assigns special \"don't touch\" values to members of d to\n// avoid modifying them during plan9.Wstat.\nfunc (d *Dir) Null() { *d = nullDir }\n\n// Marshal encodes a 9P stat message corresponding to d into b\n//\n// If there isn't enough space in b for a stat message, ErrShortStat is returned.\nfunc (d *Dir) Marshal(b []byte) (n int, err error) {\n\tn = STATFIXLEN + len(d.Name) + len(d.Uid) + len(d.Gid) + len(d.Muid)\n\tif n > len(b) {\n\t\treturn n, ErrShortStat\n\t}\n\n\tfor _, c := range d.Name {\n\t\tif c == '/' {\n\t\t\treturn n, ErrBadName\n\t\t}\n\t}\n\n\tb = pbit16(b, uint16(n)-2)\n\tb = pbit16(b, d.Type)\n\tb = pbit32(b, d.Dev)\n\tb = pbit8(b, d.Qid.Type)\n\tb = pbit32(b, d.Qid.Vers)\n\tb = pbit64(b, d.Qid.Path)\n\tb = pbit32(b, d.Mode)\n\tb = pbit32(b, d.Atime)\n\tb = pbit32(b, d.Mtime)\n\tb = pbit64(b, uint64(d.Length))\n\tb = pstring(b, d.Name)\n\tb = pstring(b, d.Uid)\n\tb = pstring(b, d.Gid)\n\tb = pstring(b, d.Muid)\n\n\treturn n, nil\n}\n\n// UnmarshalDir decodes a single 9P stat message from b and returns the resulting Dir.\n//\n// If b is too small to hold a valid stat message, ErrShortStat is returned.\n//\n// If the stat message itself is invalid, ErrBadStat is returned.\nfunc UnmarshalDir(b []byte) (*Dir, error) {\n\tif len(b) < STATFIXLEN {\n\t\treturn nil, ErrShortStat\n\t}\n\tsize, buf := gbit16(b)\n\tif len(b) != int(size)+2 {\n\t\treturn nil, ErrBadStat\n\t}\n\tb = buf\n\n\tvar d Dir\n\td.Type, b = gbit16(b)\n\td.Dev, b = gbit32(b)\n\td.Qid.Type, b = gbit8(b)\n\td.Qid.Vers, b = gbit32(b)\n\td.Qid.Path, b = gbit64(b)\n\td.Mode, b = gbit32(b)\n\td.Atime, b = gbit32(b)\n\td.Mtime, b = gbit32(b)\n\n\tn, b := gbit64(b)\n\td.Length = int64(n)\n\n\tvar ok bool\n\tif d.Name, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\tif d.Uid, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\tif d.Gid, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\tif d.Muid, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\n\treturn &d, nil\n}\n\n// pbit8 copies the 8-bit number v to b and returns the remaining slice of b.\nfunc pbit8(b []byte, v uint8) []byte {\n\tb[0] = byte(v)\n\treturn b[1:]\n}\n\n// pbit16 copies the 16-bit number v to b in little-endian order and returns the remaining slice of b.\nfunc pbit16(b []byte, v uint16) []byte {\n\tb[0] = byte(v)\n\tb[1] = byte(v >> 8)\n\treturn b[2:]\n}\n\n// pbit32 copies the 32-bit number v to b in little-endian order and returns the remaining slice of b.\nfunc pbit32(b []byte, v uint32) []byte {\n\tb[0] = byte(v)\n\tb[1] = byte(v >> 8)\n\tb[2] = byte(v >> 16)\n\tb[3] = byte(v >> 24)\n\treturn b[4:]\n}\n\n// pbit64 copies the 64-bit number v to b in little-endian order and returns the remaining slice of b.\nfunc pbit64(b []byte, v uint64) []byte {\n\tb[0] = byte(v)\n\tb[1] = byte(v >> 8)\n\tb[2] = byte(v >> 16)\n\tb[3] = byte(v >> 24)\n\tb[4] = byte(v >> 32)\n\tb[5] = byte(v >> 40)\n\tb[6] = byte(v >> 48)\n\tb[7] = byte(v >> 56)\n\treturn b[8:]\n}\n\n// pstring copies the string s to b, prepending it with a 16-bit length in little-endian order, and\n// returning the remaining slice of b..\nfunc pstring(b []byte, s string) []byte {\n\tb = pbit16(b, uint16(len(s)))\n\tn := copy(b, s)\n\treturn b[n:]\n}\n\n// gbit8 reads an 8-bit number from b and returns it with the remaining slice of b.\nfunc gbit8(b []byte) (uint8, []byte) {\n\treturn uint8(b[0]), b[1:]\n}\n\n// gbit16 reads a 16-bit number in little-endian order from b and returns it with the remaining slice of b.\nfunc gbit16(b []byte) (uint16, []byte) {\n\treturn uint16(b[0]) | uint16(b[1])<<8, b[2:]\n}\n\n// gbit32 reads a 32-bit number in little-endian order from b and returns it with the remaining slice of b.\nfunc gbit32(b []byte) (uint32, []byte) {\n\treturn uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24, b[4:]\n}\n\n// gbit64 reads a 64-bit number in little-endian order from b and returns it with the remaining slice of b.\nfunc gbit64(b []byte) (uint64, []byte) {\n\tlo := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\thi := uint32(b[4]) | uint32(b[5])<<8 | uint32(b[6])<<16 | uint32(b[7])<<24\n\treturn uint64(lo) | uint64(hi)<<32, b[8:]\n}\n\n// gstring reads a string from b, prefixed with a 16-bit length in little-endian order.\n// It returns the string with the remaining slice of b and a boolean. If the length is\n// greater than the number of bytes in b, the boolean will be false.\nfunc gstring(b []byte) (string, []byte, bool) {\n\tn, b := gbit16(b)\n\tif int(n) > len(b) {\n\t\treturn \"\", b, false\n\t}\n\treturn string(b[:n]), b[n:], true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/env_plan9.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Plan 9 environment variables.\n\npackage plan9\n\nimport (\n\t\"syscall\"\n)\n\nfunc Getenv(key string) (value string, found bool) {\n\treturn syscall.Getenv(key)\n}\n\nfunc Setenv(key, value string) error {\n\treturn syscall.Setenv(key, value)\n}\n\nfunc Clearenv() {\n\tsyscall.Clearenv()\n}\n\nfunc Environ() []string {\n\treturn syscall.Environ()\n}\n\nfunc Unsetenv(key string) error {\n\treturn syscall.Unsetenv(key)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/errors_plan9.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage plan9\n\nimport \"syscall\"\n\n// Constants\nconst (\n\t// Invented values to support what package os expects.\n\tO_CREAT    = 0x02000\n\tO_APPEND   = 0x00400\n\tO_NOCTTY   = 0x00000\n\tO_NONBLOCK = 0x00000\n\tO_SYNC     = 0x00000\n\tO_ASYNC    = 0x00000\n\n\tS_IFMT   = 0x1f000\n\tS_IFIFO  = 0x1000\n\tS_IFCHR  = 0x2000\n\tS_IFDIR  = 0x4000\n\tS_IFBLK  = 0x6000\n\tS_IFREG  = 0x8000\n\tS_IFLNK  = 0xa000\n\tS_IFSOCK = 0xc000\n)\n\n// Errors\nvar (\n\tEINVAL       = syscall.NewError(\"bad arg in system call\")\n\tENOTDIR      = syscall.NewError(\"not a directory\")\n\tEISDIR       = syscall.NewError(\"file is a directory\")\n\tENOENT       = syscall.NewError(\"file does not exist\")\n\tEEXIST       = syscall.NewError(\"file already exists\")\n\tEMFILE       = syscall.NewError(\"no free file descriptors\")\n\tEIO          = syscall.NewError(\"i/o error\")\n\tENAMETOOLONG = syscall.NewError(\"file name too long\")\n\tEINTR        = syscall.NewError(\"interrupted\")\n\tEPERM        = syscall.NewError(\"permission denied\")\n\tEBUSY        = syscall.NewError(\"no free devices\")\n\tETIMEDOUT    = syscall.NewError(\"connection timed out\")\n\tEPLAN9       = syscall.NewError(\"not supported by plan 9\")\n\n\t// The following errors do not correspond to any\n\t// Plan 9 system messages. Invented to support\n\t// what package os and others expect.\n\tEACCES       = syscall.NewError(\"access permission denied\")\n\tEAFNOSUPPORT = syscall.NewError(\"address family not supported by protocol\")\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/mkall.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# The plan9 package provides access to the raw system call\n# interface of the underlying operating system.  Porting Go to\n# a new architecture/operating system combination requires\n# some manual effort, though there are tools that automate\n# much of the process.  The auto-generated files have names\n# beginning with z.\n#\n# This script runs or (given -n) prints suggested commands to generate z files\n# for the current system.  Running those commands is not automatic.\n# This script is documentation more than anything else.\n#\n# * asm_${GOOS}_${GOARCH}.s\n#\n# This hand-written assembly file implements system call dispatch.\n# There are three entry points:\n#\n# \tfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr);\n# \tfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr);\n# \tfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr);\n#\n# The first and second are the standard ones; they differ only in\n# how many arguments can be passed to the kernel.\n# The third is for low-level use by the ForkExec wrapper;\n# unlike the first two, it does not call into the scheduler to\n# let it know that a system call is running.\n#\n# * syscall_${GOOS}.go\n#\n# This hand-written Go file implements system calls that need\n# special handling and lists \"//sys\" comments giving prototypes\n# for ones that can be auto-generated.  Mksyscall reads those\n# comments to generate the stubs.\n#\n# * syscall_${GOOS}_${GOARCH}.go\n#\n# Same as syscall_${GOOS}.go except that it contains code specific\n# to ${GOOS} on one particular architecture.\n#\n# * types_${GOOS}.c\n#\n# This hand-written C file includes standard C headers and then\n# creates typedef or enum names beginning with a dollar sign\n# (use of $ in variable names is a gcc extension).  The hardest\n# part about preparing this file is figuring out which headers to\n# include and which symbols need to be #defined to get the\n# actual data structures that pass through to the kernel system calls.\n# Some C libraries present alternate versions for binary compatibility\n# and translate them on the way in and out of system calls, but\n# there is almost always a #define that can get the real ones.\n# See types_darwin.c and types_linux.c for examples.\n#\n# * zerror_${GOOS}_${GOARCH}.go\n#\n# This machine-generated file defines the system's error numbers,\n# error strings, and signal numbers.  The generator is \"mkerrors.sh\".\n# Usually no arguments are needed, but mkerrors.sh will pass its\n# arguments on to godefs.\n#\n# * zsyscall_${GOOS}_${GOARCH}.go\n#\n# Generated by mksyscall.pl; see syscall_${GOOS}.go above.\n#\n# * zsysnum_${GOOS}_${GOARCH}.go\n#\n# Generated by mksysnum_${GOOS}.\n#\n# * ztypes_${GOOS}_${GOARCH}.go\n#\n# Generated by godefs; see types_${GOOS}.c above.\n\nGOOSARCH=\"${GOOS}_${GOARCH}\"\n\n# defaults\nmksyscall=\"go run mksyscall.go\"\nmkerrors=\"./mkerrors.sh\"\nzerrors=\"zerrors_$GOOSARCH.go\"\nmksysctl=\"\"\nzsysctl=\"zsysctl_$GOOSARCH.go\"\nmksysnum=\nmktypes=\nrun=\"sh\"\n\ncase \"$1\" in\n-syscalls)\n\tfor i in zsyscall*go\n\tdo\n\t\tsed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i\n\t\trm _$i\n\tdone\n\texit 0\n\t;;\n-n)\n\trun=\"cat\"\n\tshift\nesac\n\ncase \"$#\" in\n0)\n\t;;\n*)\n\techo 'usage: mkall.sh [-n]' 1>&2\n\texit 2\nesac\n\ncase \"$GOOSARCH\" in\n_* | *_ | _)\n\techo 'undefined $GOOS_$GOARCH:' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\nplan9_386)\n\tmkerrors=\n\tmksyscall=\"go run mksyscall.go -l32 -plan9 -tags plan9,386\"\n\tmksysnum=\"./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h\"\n\tmktypes=\"XXX\"\n\t;;\nplan9_amd64)\n\tmkerrors=\n\tmksyscall=\"go run mksyscall.go -l32 -plan9 -tags plan9,amd64\"\n\tmksysnum=\"./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h\"\n\tmktypes=\"XXX\"\n\t;;\nplan9_arm)\n\tmkerrors=\n\tmksyscall=\"go run mksyscall.go -l32 -plan9 -tags plan9,arm\"\n\tmksysnum=\"./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h\"\n\tmktypes=\"XXX\"\n\t;;\n*)\n\techo 'unrecognized $GOOS_$GOARCH: ' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\nesac\n\n(\n\tif [ -n \"$mkerrors\" ]; then echo \"$mkerrors |gofmt >$zerrors\"; fi\n\tcase \"$GOOS\" in\n\tplan9)\n\t\tsyscall_goos=\"syscall_$GOOS.go\"\n\t\tif [ -n \"$mksyscall\" ]; then echo \"$mksyscall $syscall_goos |gofmt >zsyscall_$GOOSARCH.go\"; fi\n\t\t;;\n\tesac\n\tif [ -n \"$mksysctl\" ]; then echo \"$mksysctl |gofmt >$zsysctl\"; fi\n\tif [ -n \"$mksysnum\" ]; then echo \"$mksysnum |gofmt >zsysnum_$GOOSARCH.go\"; fi\n\tif [ -n \"$mktypes\" ]; then echo \"$mktypes types_$GOOS.go |gofmt >ztypes_$GOOSARCH.go\"; fi\n) | $run\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/mkerrors.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# Generate Go code listing errors and other #defined constant\n# values (ENAMETOOLONG etc.), by asking the preprocessor\n# about the definitions.\n\nunset LANG\nexport LC_ALL=C\nexport LC_CTYPE=C\n\nCC=${CC:-gcc}\n\nuname=$(uname)\n\nincludes='\n#include <sys/types.h>\n#include <sys/file.h>\n#include <fcntl.h>\n#include <dirent.h>\n#include <sys/socket.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <netinet/ip6.h>\n#include <netinet/tcp.h>\n#include <errno.h>\n#include <sys/signal.h>\n#include <signal.h>\n#include <sys/resource.h>\n'\n\nccflags=\"$@\"\n\n# Write go tool cgo -godefs input.\n(\n\techo package plan9\n\techo\n\techo '/*'\n\tindirect=\"includes_$(uname)\"\n\techo \"${!indirect} $includes\"\n\techo '*/'\n\techo 'import \"C\"'\n\techo\n\techo 'const ('\n\n\t# The gcc command line prints all the #defines\n\t# it encounters while processing the input\n\techo \"${!indirect} $includes\" | $CC -x c - -E -dM $ccflags |\n\tawk '\n\t\t$1 != \"#define\" || $2 ~ /\\(/ || $3 == \"\" {next}\n\n\t\t$2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next}  # 386 registers\n\t\t$2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next}\n\t\t$2 ~ /^(SCM_SRCRT)$/ {next}\n\t\t$2 ~ /^(MAP_FAILED)$/ {next}\n\n\t\t$2 !~ /^ETH_/ &&\n\t\t$2 !~ /^EPROC_/ &&\n\t\t$2 !~ /^EQUIV_/ &&\n\t\t$2 !~ /^EXPR_/ &&\n\t\t$2 ~ /^E[A-Z0-9_]+$/ ||\n\t\t$2 ~ /^B[0-9_]+$/ ||\n\t\t$2 ~ /^V[A-Z0-9]+$/ ||\n\t\t$2 ~ /^CS[A-Z0-9]/ ||\n\t\t$2 ~ /^I(SIG|CANON|CRNL|EXTEN|MAXBEL|STRIP|UTF8)$/ ||\n\t\t$2 ~ /^IGN/ ||\n\t\t$2 ~ /^IX(ON|ANY|OFF)$/ ||\n\t\t$2 ~ /^IN(LCR|PCK)$/ ||\n\t\t$2 ~ /(^FLU?SH)|(FLU?SH$)/ ||\n\t\t$2 ~ /^C(LOCAL|READ)$/ ||\n\t\t$2 == \"BRKINT\" ||\n\t\t$2 == \"HUPCL\" ||\n\t\t$2 == \"PENDIN\" ||\n\t\t$2 == \"TOSTOP\" ||\n\t\t$2 ~ /^PAR/ ||\n\t\t$2 ~ /^SIG[^_]/ ||\n\t\t$2 ~ /^O[CNPFP][A-Z]+[^_][A-Z]+$/ ||\n\t\t$2 ~ /^IN_/ ||\n\t\t$2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||\n\t\t$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ ||\n\t\t$2 == \"ICMPV6_FILTER\" ||\n\t\t$2 == \"SOMAXCONN\" ||\n\t\t$2 == \"NAME_MAX\" ||\n\t\t$2 == \"IFNAMSIZ\" ||\n\t\t$2 ~ /^CTL_(MAXNAME|NET|QUERY)$/ ||\n\t\t$2 ~ /^SYSCTL_VERS/ ||\n\t\t$2 ~ /^(MS|MNT)_/ ||\n\t\t$2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ ||\n\t\t$2 ~ /^(O|F|FD|NAME|S|PTRACE|PT)_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_CMD_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_MAGIC[12]$/ ||\n\t\t$2 !~ \"NLA_TYPE_MASK\" &&\n\t\t$2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P)_/ ||\n\t\t$2 ~ /^SIOC/ ||\n\t\t$2 ~ /^TIOC/ ||\n\t\t$2 !~ \"RTF_BITS\" &&\n\t\t$2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ ||\n\t\t$2 ~ /^BIOC/ ||\n\t\t$2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||\n\t\t$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|NOFILE|STACK)|RLIM_INFINITY/ ||\n\t\t$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||\n\t\t$2 ~ /^CLONE_[A-Z_]+/ ||\n\t\t$2 !~ /^(BPF_TIMEVAL)$/ &&\n\t\t$2 ~ /^(BPF|DLT)_/ ||\n\t\t$2 !~ \"WMESGLEN\" &&\n\t\t$2 ~ /^W[A-Z0-9]+$/ {printf(\"\\t%s = C.%s\\n\", $2, $2)}\n\t\t$2 ~ /^__WCOREFLAG$/ {next}\n\t\t$2 ~ /^__W[A-Z0-9]+$/ {printf(\"\\t%s = C.%s\\n\", substr($2,3), $2)}\n\n\t\t{next}\n\t' | sort\n\n\techo ')'\n) >_const.go\n\n# Pull out the error names for later.\nerrors=$(\n\techo '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' |\n\tsort\n)\n\n# Pull out the signal names for later.\nsignals=$(\n\techo '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' |\n\tgrep -v 'SIGSTKSIZE\\|SIGSTKSZ\\|SIGRT' |\n\tsort\n)\n\n# Again, writing regexps to a file.\necho '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tsort >_error.grep\necho '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tgrep -v 'SIGSTKSIZE\\|SIGSTKSZ\\|SIGRT' |\n\tsort >_signal.grep\n\necho '// mkerrors.sh' \"$@\"\necho '// Code generated by the command above; DO NOT EDIT.'\necho\ngo tool cgo -godefs -- \"$@\" _const.go >_error.out\ncat _error.out | grep -vf _error.grep | grep -vf _signal.grep\necho\necho '// Errors'\necho 'const ('\ncat _error.out | grep -f _error.grep | sed 's/=\\(.*\\)/= Errno(\\1)/'\necho ')'\n\necho\necho '// Signals'\necho 'const ('\ncat _error.out | grep -f _signal.grep | sed 's/=\\(.*\\)/= Signal(\\1)/'\necho ')'\n\n# Run C program to print error and syscall strings.\n(\n\techo -E \"\n#include <stdio.h>\n#include <stdlib.h>\n#include <errno.h>\n#include <ctype.h>\n#include <string.h>\n#include <signal.h>\n\n#define nelem(x) (sizeof(x)/sizeof((x)[0]))\n\nenum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below\n\nint errors[] = {\n\"\n\tfor i in $errors\n\tdo\n\t\techo -E '\t'$i,\n\tdone\n\n\techo -E \"\n};\n\nint signals[] = {\n\"\n\tfor i in $signals\n\tdo\n\t\techo -E '\t'$i,\n\tdone\n\n\t# Use -E because on some systems bash builtin interprets \\n itself.\n\techo -E '\n};\n\nstatic int\nintcmp(const void *a, const void *b)\n{\n\treturn *(int*)a - *(int*)b;\n}\n\nint\nmain(void)\n{\n\tint i, j, e;\n\tchar buf[1024], *p;\n\n\tprintf(\"\\n\\n// Error table\\n\");\n\tprintf(\"var errors = [...]string {\\n\");\n\tqsort(errors, nelem(errors), sizeof errors[0], intcmp);\n\tfor(i=0; i<nelem(errors); i++) {\n\t\te = errors[i];\n\t\tif(i > 0 && errors[i-1] == e)\n\t\t\tcontinue;\n\t\tstrcpy(buf, strerror(e));\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\tprintf(\"\\t%d: \\\"%s\\\",\\n\", e, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\t\n\tprintf(\"\\n\\n// Signal table\\n\");\n\tprintf(\"var signals = [...]string {\\n\");\n\tqsort(signals, nelem(signals), sizeof signals[0], intcmp);\n\tfor(i=0; i<nelem(signals); i++) {\n\t\te = signals[i];\n\t\tif(i > 0 && signals[i-1] == e)\n\t\t\tcontinue;\n\t\tstrcpy(buf, strsignal(e));\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\t// cut trailing : number.\n\t\tp = strrchr(buf, \":\"[0]);\n\t\tif(p)\n\t\t\t*p = '\\0';\n\t\tprintf(\"\\t%d: \\\"%s\\\",\\n\", e, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\n\treturn 0;\n}\n\n'\n) >_errors.c\n\n$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/mksysnum_plan9.sh",
    "content": "#!/bin/sh\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\nCOMMAND=\"mksysnum_plan9.sh $@\"\n\ncat <<EOF\n// $COMMAND\n// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT\n\npackage plan9\n\nconst(\nEOF\n\nSP='[ \t]' # space or tab\nsed \"s/^#define${SP}\\\\([A-Z0-9_][A-Z0-9_]*\\\\)${SP}${SP}*\\\\([0-9][0-9]*\\\\)/SYS_\\\\1=\\\\2/g\" \\\n\t< $1 | grep -v SYS__\n\ncat <<EOF\n)\nEOF\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.5\n\npackage plan9\n\nimport \"syscall\"\n\nfunc fixwd() {\n\tsyscall.Fixwd()\n}\n\nfunc Getwd() (wd string, err error) {\n\treturn syscall.Getwd()\n}\n\nfunc Chdir(path string) error {\n\treturn syscall.Chdir(path)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/pwd_plan9.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.5\n\npackage plan9\n\nfunc fixwd() {\n}\n\nfunc Getwd() (wd string, err error) {\n\tfd, err := open(\".\", O_RDONLY)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer Close(fd)\n\treturn Fd2path(fd)\n}\n\nfunc Chdir(path string) error {\n\treturn chdir(path)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/race.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9 && race\n\npackage plan9\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\nconst raceenabled = true\n\nfunc raceAcquire(addr unsafe.Pointer) {\n\truntime.RaceAcquire(addr)\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n\truntime.RaceReleaseMerge(addr)\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n\truntime.RaceReadRange(addr, len)\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n\truntime.RaceWriteRange(addr, len)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/race0.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9 && !race\n\npackage plan9\n\nimport (\n\t\"unsafe\"\n)\n\nconst raceenabled = false\n\nfunc raceAcquire(addr unsafe.Pointer) {\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/str.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9\n\npackage plan9\n\nfunc itoa(val int) string { // do it here rather than with fmt to avoid dependency\n\tif val < 0 {\n\t\treturn \"-\" + itoa(-val)\n\t}\n\tvar buf [32]byte // big enough for int64\n\ti := len(buf) - 1\n\tfor val >= 10 {\n\t\tbuf[i] = byte(val%10 + '0')\n\t\ti--\n\t\tval /= 10\n\t}\n\tbuf[i] = byte(val + '0')\n\treturn string(buf[i:])\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/syscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9\n\n// Package plan9 contains an interface to the low-level operating system\n// primitives. OS details vary depending on the underlying system, and\n// by default, godoc will display the OS-specific documentation for the current\n// system. If you want godoc to display documentation for another\n// system, set $GOOS and $GOARCH to the desired system. For example, if\n// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS\n// to freebsd and $GOARCH to arm.\n//\n// The primary use of this package is inside other packages that provide a more\n// portable interface to the system, such as \"os\", \"time\" and \"net\".  Use\n// those packages rather than this one if you can.\n//\n// For details of the functions and data types in this package consult\n// the manuals for the appropriate operating system.\n//\n// These calls return err == nil to indicate success; otherwise\n// err represents an operating system error describing the failure and\n// holds a value of type syscall.ErrorString.\npackage plan9 // import \"golang.org/x/sys/plan9\"\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"unsafe\"\n)\n\n// ByteSliceFromString returns a NUL-terminated slice of bytes\n// containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc ByteSliceFromString(s string) ([]byte, error) {\n\tif strings.IndexByte(s, 0) != -1 {\n\t\treturn nil, EINVAL\n\t}\n\ta := make([]byte, len(s)+1)\n\tcopy(a, s)\n\treturn a, nil\n}\n\n// BytePtrFromString returns a pointer to a NUL-terminated array of\n// bytes containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc BytePtrFromString(s string) (*byte, error) {\n\ta, err := ByteSliceFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any\n// bytes after the NUL removed.\nfunc ByteSliceToString(s []byte) string {\n\tif i := bytes.IndexByte(s, 0); i != -1 {\n\t\ts = s[:i]\n\t}\n\treturn string(s)\n}\n\n// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string.\n// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated\n// at a zero byte; if the zero byte is not present, the program may crash.\nfunc BytePtrToString(p *byte) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + 1)\n\t}\n\n\treturn string(unsafe.Slice(p, n))\n}\n\n// Single-word zero for use when we need a valid pointer to 0 bytes.\n// See mksyscall.pl.\nvar _zero uintptr\n\nfunc (ts *Timespec) Unix() (sec int64, nsec int64) {\n\treturn int64(ts.Sec), int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Unix() (sec int64, nsec int64) {\n\treturn int64(tv.Sec), int64(tv.Usec) * 1000\n}\n\nfunc (ts *Timespec) Nano() int64 {\n\treturn int64(ts.Sec)*1e9 + int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Nano() int64 {\n\treturn int64(tv.Sec)*1e9 + int64(tv.Usec)*1000\n}\n\n// use is a no-op, but the compiler cannot see that it is.\n// Calling use(p) ensures that p is kept live until that point.\n//\n//go:noescape\nfunc use(p unsafe.Pointer)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/syscall_plan9.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Plan 9 system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and\n// wrap it in our own nicer implementation.\n\npackage plan9\n\nimport (\n\t\"bytes\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// A Note is a string describing a process note.\n// It implements the os.Signal interface.\ntype Note string\n\nfunc (n Note) Signal() {}\n\nfunc (n Note) String() string {\n\treturn string(n)\n}\n\nvar (\n\tStdin  = 0\n\tStdout = 1\n\tStderr = 2\n)\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.ErrorString)\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.ErrorString)\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)\n\nfunc atoi(b []byte) (n uint) {\n\tn = 0\n\tfor i := 0; i < len(b); i++ {\n\t\tn = n*10 + uint(b[i]-'0')\n\t}\n\treturn\n}\n\nfunc cstring(s []byte) string {\n\ti := bytes.IndexByte(s, 0)\n\tif i == -1 {\n\t\ti = len(s)\n\t}\n\treturn string(s[:i])\n}\n\nfunc errstr() string {\n\tvar buf [ERRMAX]byte\n\n\tRawSyscall(SYS_ERRSTR, uintptr(unsafe.Pointer(&buf[0])), uintptr(len(buf)), 0)\n\n\tbuf[len(buf)-1] = 0\n\treturn cstring(buf[:])\n}\n\n// Implemented in assembly to import from runtime.\nfunc exit(code int)\n\nfunc Exit(code int) { exit(code) }\n\nfunc readnum(path string) (uint, error) {\n\tvar b [12]byte\n\n\tfd, e := Open(path, O_RDONLY)\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\tdefer Close(fd)\n\n\tn, e := Pread(fd, b[:], 0)\n\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\n\tm := 0\n\tfor ; m < n && b[m] == ' '; m++ {\n\t}\n\n\treturn atoi(b[m : n-1]), nil\n}\n\nfunc Getpid() (pid int) {\n\tn, _ := readnum(\"#c/pid\")\n\treturn int(n)\n}\n\nfunc Getppid() (ppid int) {\n\tn, _ := readnum(\"#c/ppid\")\n\treturn int(n)\n}\n\nfunc Read(fd int, p []byte) (n int, err error) {\n\treturn Pread(fd, p, -1)\n}\n\nfunc Write(fd int, p []byte) (n int, err error) {\n\treturn Pwrite(fd, p, -1)\n}\n\nvar ioSync int64\n\n//sys\tfd2path(fd int, buf []byte) (err error)\n\nfunc Fd2path(fd int) (path string, err error) {\n\tvar buf [512]byte\n\n\te := fd2path(fd, buf[:])\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\treturn cstring(buf[:]), nil\n}\n\n//sys\tpipe(p *[2]int32) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn syscall.ErrorString(\"bad arg in system call\")\n\t}\n\tvar pp [2]int32\n\terr = pipe(&pp)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn\n}\n\n// Underlying system call writes to newoffset via pointer.\n// Implemented in assembly to avoid allocation.\nfunc seek(placeholder uintptr, fd int, offset int64, whence int) (newoffset int64, err string)\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, e := seek(0, fd, offset, whence)\n\n\tif newoffset == -1 {\n\t\terr = syscall.ErrorString(e)\n\t}\n\treturn\n}\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tfd, err := Create(path, O_RDONLY, DMDIR|mode)\n\n\tif fd != -1 {\n\t\tClose(fd)\n\t}\n\n\treturn\n}\n\ntype Waitmsg struct {\n\tPid  int\n\tTime [3]uint32\n\tMsg  string\n}\n\nfunc (w Waitmsg) Exited() bool   { return true }\nfunc (w Waitmsg) Signaled() bool { return false }\n\nfunc (w Waitmsg) ExitStatus() int {\n\tif len(w.Msg) == 0 {\n\t\t// a normal exit returns no message\n\t\treturn 0\n\t}\n\treturn 1\n}\n\n//sys\tawait(s []byte) (n int, err error)\n\nfunc Await(w *Waitmsg) (err error) {\n\tvar buf [512]byte\n\tvar f [5][]byte\n\n\tn, err := await(buf[:])\n\n\tif err != nil || w == nil {\n\t\treturn\n\t}\n\n\tnf := 0\n\tp := 0\n\tfor i := 0; i < n && nf < len(f)-1; i++ {\n\t\tif buf[i] == ' ' {\n\t\t\tf[nf] = buf[p:i]\n\t\t\tp = i + 1\n\t\t\tnf++\n\t\t}\n\t}\n\tf[nf] = buf[p:]\n\tnf++\n\n\tif nf != len(f) {\n\t\treturn syscall.ErrorString(\"invalid wait message\")\n\t}\n\tw.Pid = int(atoi(f[0]))\n\tw.Time[0] = uint32(atoi(f[1]))\n\tw.Time[1] = uint32(atoi(f[2]))\n\tw.Time[2] = uint32(atoi(f[3]))\n\tw.Msg = cstring(f[4])\n\tif w.Msg == \"''\" {\n\t\t// await() returns '' for no error\n\t\tw.Msg = \"\"\n\t}\n\treturn\n}\n\nfunc Unmount(name, old string) (err error) {\n\tfixwd()\n\toldp, err := BytePtrFromString(old)\n\tif err != nil {\n\t\treturn err\n\t}\n\toldptr := uintptr(unsafe.Pointer(oldp))\n\n\tvar r0 uintptr\n\tvar e syscall.ErrorString\n\n\t// bind(2) man page: If name is zero, everything bound or mounted upon old is unbound or unmounted.\n\tif name == \"\" {\n\t\tr0, _, e = Syscall(SYS_UNMOUNT, _zero, oldptr, 0)\n\t} else {\n\t\tnamep, err := BytePtrFromString(name)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tr0, _, e = Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(namep)), oldptr, 0)\n\t}\n\n\tif int32(r0) == -1 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Fchdir(fd int) (err error) {\n\tpath, err := Fd2path(fd)\n\n\tif err != nil {\n\t\treturn\n\t}\n\n\treturn Chdir(path)\n}\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\nfunc NsecToTimeval(nsec int64) (tv Timeval) {\n\tnsec += 999 // round up to microsecond\n\ttv.Usec = int32(nsec % 1e9 / 1e3)\n\ttv.Sec = int32(nsec / 1e9)\n\treturn\n}\n\nfunc nsec() int64 {\n\tvar scratch int64\n\n\tr0, _, _ := Syscall(SYS_NSEC, uintptr(unsafe.Pointer(&scratch)), 0, 0)\n\t// TODO(aram): remove hack after I fix _nsec in the pc64 kernel.\n\tif r0 == 0 {\n\t\treturn scratch\n\t}\n\treturn int64(r0)\n}\n\nfunc Gettimeofday(tv *Timeval) error {\n\tnsec := nsec()\n\t*tv = NsecToTimeval(nsec)\n\treturn nil\n}\n\nfunc Getpagesize() int { return 0x1000 }\n\nfunc Getegid() (egid int) { return -1 }\nfunc Geteuid() (euid int) { return -1 }\nfunc Getgid() (gid int)   { return -1 }\nfunc Getuid() (uid int)   { return -1 }\n\nfunc Getgroups() (gids []int, err error) {\n\treturn make([]int, 0), nil\n}\n\n//sys\topen(path string, mode int) (fd int, err error)\n\nfunc Open(path string, mode int) (fd int, err error) {\n\tfixwd()\n\treturn open(path, mode)\n}\n\n//sys\tcreate(path string, mode int, perm uint32) (fd int, err error)\n\nfunc Create(path string, mode int, perm uint32) (fd int, err error) {\n\tfixwd()\n\treturn create(path, mode, perm)\n}\n\n//sys\tremove(path string) (err error)\n\nfunc Remove(path string) error {\n\tfixwd()\n\treturn remove(path)\n}\n\n//sys\tstat(path string, edir []byte) (n int, err error)\n\nfunc Stat(path string, edir []byte) (n int, err error) {\n\tfixwd()\n\treturn stat(path, edir)\n}\n\n//sys\tbind(name string, old string, flag int) (err error)\n\nfunc Bind(name string, old string, flag int) (err error) {\n\tfixwd()\n\treturn bind(name, old, flag)\n}\n\n//sys\tmount(fd int, afd int, old string, flag int, aname string) (err error)\n\nfunc Mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tfixwd()\n\treturn mount(fd, afd, old, flag, aname)\n}\n\n//sys\twstat(path string, edir []byte) (err error)\n\nfunc Wstat(path string, edir []byte) (err error) {\n\tfixwd()\n\treturn wstat(path, edir)\n}\n\n//sys\tchdir(path string) (err error)\n//sys\tDup(oldfd int, newfd int) (fd int, err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tClose(fd int) (err error)\n//sys\tFstat(fd int, edir []byte) (n int, err error)\n//sys\tFwstat(fd int, edir []byte) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go",
    "content": "// go run mksyscall.go -l32 -plan9 -tags plan9,386 syscall_plan9.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build plan9 && 386\n\npackage plan9\n\nimport \"unsafe\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fd2path(fd int, buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\tr0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc await(s []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(s) > 0 {\n\t\t_p0 = unsafe.Pointer(&s[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc create(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, edir []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(name string, old string, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(aname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wstat(path string, edir []byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int, newfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, edir []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fwstat(fd int, edir []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go",
    "content": "// go run mksyscall.go -l32 -plan9 -tags plan9,amd64 syscall_plan9.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build plan9 && amd64\n\npackage plan9\n\nimport \"unsafe\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fd2path(fd int, buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\tr0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc await(s []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(s) > 0 {\n\t\t_p0 = unsafe.Pointer(&s[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc create(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, edir []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(name string, old string, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(aname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wstat(path string, edir []byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int, newfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, edir []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fwstat(fd int, edir []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go",
    "content": "// go run mksyscall.go -l32 -plan9 -tags plan9,arm syscall_plan9.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build plan9 && arm\n\npackage plan9\n\nimport \"unsafe\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fd2path(fd int, buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\tr0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc await(s []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(s) > 0 {\n\t\t_p0 = unsafe.Pointer(&s[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc create(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, edir []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(name string, old string, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(aname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wstat(path string, edir []byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int, newfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, edir []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fwstat(fd int, edir []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsysnum_plan9.go",
    "content": "// mksysnum_plan9.sh /opt/plan9/sys/src/libc/9syscall/sys.h\n// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT\n\npackage plan9\n\nconst (\n\tSYS_SYSR1       = 0\n\tSYS_BIND        = 2\n\tSYS_CHDIR       = 3\n\tSYS_CLOSE       = 4\n\tSYS_DUP         = 5\n\tSYS_ALARM       = 6\n\tSYS_EXEC        = 7\n\tSYS_EXITS       = 8\n\tSYS_FAUTH       = 10\n\tSYS_SEGBRK      = 12\n\tSYS_OPEN        = 14\n\tSYS_OSEEK       = 16\n\tSYS_SLEEP       = 17\n\tSYS_RFORK       = 19\n\tSYS_PIPE        = 21\n\tSYS_CREATE      = 22\n\tSYS_FD2PATH     = 23\n\tSYS_BRK_        = 24\n\tSYS_REMOVE      = 25\n\tSYS_NOTIFY      = 28\n\tSYS_NOTED       = 29\n\tSYS_SEGATTACH   = 30\n\tSYS_SEGDETACH   = 31\n\tSYS_SEGFREE     = 32\n\tSYS_SEGFLUSH    = 33\n\tSYS_RENDEZVOUS  = 34\n\tSYS_UNMOUNT     = 35\n\tSYS_SEMACQUIRE  = 37\n\tSYS_SEMRELEASE  = 38\n\tSYS_SEEK        = 39\n\tSYS_FVERSION    = 40\n\tSYS_ERRSTR      = 41\n\tSYS_STAT        = 42\n\tSYS_FSTAT       = 43\n\tSYS_WSTAT       = 44\n\tSYS_FWSTAT      = 45\n\tSYS_MOUNT       = 46\n\tSYS_AWAIT       = 47\n\tSYS_PREAD       = 50\n\tSYS_PWRITE      = 51\n\tSYS_TSEMACQUIRE = 52\n\tSYS_NSEC        = 53\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/.gitignore",
    "content": "_obj/\nunix.test\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/README.md",
    "content": "# Building `sys/unix`\n\nThe sys/unix package provides access to the raw system call interface of the\nunderlying operating system. See: https://godoc.org/golang.org/x/sys/unix\n\nPorting Go to a new architecture/OS combination or adding syscalls, types, or\nconstants to an existing architecture/OS pair requires some manual effort;\nhowever, there are tools that automate much of the process.\n\n## Build Systems\n\nThere are currently two ways we generate the necessary files. We are currently\nmigrating the build system to use containers so the builds are reproducible.\nThis is being done on an OS-by-OS basis. Please update this documentation as\ncomponents of the build system change.\n\n### Old Build System (currently for `GOOS != \"linux\"`)\n\nThe old build system generates the Go files based on the C header files\npresent on your system. This means that files\nfor a given GOOS/GOARCH pair must be generated on a system with that OS and\narchitecture. This also means that the generated code can differ from system\nto system, based on differences in the header files.\n\nTo avoid this, if you are using the old build system, only generate the Go\nfiles on an installation with unmodified header files. It is also important to\nkeep track of which version of the OS the files were generated from (ex.\nDarwin 14 vs Darwin 15). This makes it easier to track the progress of changes\nand have each OS upgrade correspond to a single change.\n\nTo build the files for your current OS and architecture, make sure GOOS and\nGOARCH are set correctly and run `mkall.sh`. This will generate the files for\nyour specific system. Running `mkall.sh -n` shows the commands that will be run.\n\nRequirements: bash, go\n\n### New Build System (currently for `GOOS == \"linux\"`)\n\nThe new build system uses a Docker container to generate the go files directly\nfrom source checkouts of the kernel and various system libraries. This means\nthat on any platform that supports Docker, all the files using the new build\nsystem can be generated at once, and generated files will not change based on\nwhat the person running the scripts has installed on their computer.\n\nThe OS specific files for the new build system are located in the `${GOOS}`\ndirectory, and the build is coordinated by the `${GOOS}/mkall.go` program. When\nthe kernel or system library updates, modify the Dockerfile at\n`${GOOS}/Dockerfile` to checkout the new release of the source.\n\nTo build all the files under the new build system, you must be on an amd64/Linux\nsystem and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will\nthen generate all of the files for all of the GOOS/GOARCH pairs in the new build\nsystem. Running `mkall.sh -n` shows the commands that will be run.\n\nRequirements: bash, go, docker\n\n## Component files\n\nThis section describes the various files used in the code generation process.\nIt also contains instructions on how to modify these files to add a new\narchitecture/OS or to add additional syscalls, types, or constants. Note that\nif you are using the new build system, the scripts/programs cannot be called normally.\nThey must be called from within the docker container.\n\n### asm files\n\nThe hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system\ncall dispatch. There are three entry points:\n```\n  func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)\n  func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)\n  func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)\n```\nThe first and second are the standard ones; they differ only in how many\narguments can be passed to the kernel. The third is for low-level use by the\nForkExec wrapper. Unlike the first two, it does not call into the scheduler to\nlet it know that a system call is running.\n\nWhen porting Go to a new architecture/OS, this file must be implemented for\neach GOOS/GOARCH pair.\n\n### mksysnum\n\nMksysnum is a Go program located at `${GOOS}/mksysnum.go` (or `mksysnum_${GOOS}.go`\nfor the old system). This program takes in a list of header files containing the\nsyscall number declarations and parses them to produce the corresponding list of\nGo numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated\nconstants.\n\nAdding new syscall numbers is mostly done by running the build on a sufficiently\nnew installation of the target OS (or updating the source checkouts for the\nnew build system). However, depending on the OS, you may need to update the\nparsing in mksysnum.\n\n### mksyscall.go\n\nThe `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are\nhand-written Go files which implement system calls (for unix, the specific OS,\nor the specific OS/Architecture pair respectively) that need special handling\nand list `//sys` comments giving prototypes for ones that can be generated.\n\nThe mksyscall.go program takes the `//sys` and `//sysnb` comments and converts\nthem into syscalls. This requires the name of the prototype in the comment to\nmatch a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function\nprototype can be exported (capitalized) or not.\n\nAdding a new syscall often just requires adding a new `//sys` function prototype\nwith the desired arguments and a capitalized name so it is exported. However, if\nyou want the interface to the syscall to be different, often one will make an\nunexported `//sys` prototype, and then write a custom wrapper in\n`syscall_${GOOS}.go`.\n\n### types files\n\nFor each OS, there is a hand-written Go file at `${GOOS}/types.go` (or\n`types_${GOOS}.go` on the old system). This file includes standard C headers and\ncreates Go type aliases to the corresponding C types. The file is then fed\nthrough godef to get the Go compatible definitions. Finally, the generated code\nis fed though mkpost.go to format the code correctly and remove any hidden or\nprivate identifiers. This cleaned-up code is written to\n`ztypes_${GOOS}_${GOARCH}.go`.\n\nThe hardest part about preparing this file is figuring out which headers to\ninclude and which symbols need to be `#define`d to get the actual data\nstructures that pass through to the kernel system calls. Some C libraries\npreset alternate versions for binary compatibility and translate them on the\nway in and out of system calls, but there is almost always a `#define` that can\nget the real ones.\nSee `types_darwin.go` and `linux/types.go` for examples.\n\nTo add a new type, add in the necessary include statement at the top of the\nfile (if it is not already there) and add in a type alias line. Note that if\nyour type is significantly different on different architectures, you may need\nsome `#if/#elif` macros in your include statements.\n\n### mkerrors.sh\n\nThis script is used to generate the system's various constants. This doesn't\njust include the error numbers and error strings, but also the signal numbers\nand a wide variety of miscellaneous constants. The constants come from the list\nof include files in the `includes_${uname}` variable. A regex then picks out\nthe desired `#define` statements, and generates the corresponding Go constants.\nThe error numbers and strings are generated from `#include <errno.h>`, and the\nsignal numbers and strings are generated from `#include <signal.h>`. All of\nthese constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program,\n`_errors.c`, which prints out all the constants.\n\nTo add a constant, add the header that includes it to the appropriate variable.\nThen, edit the regex (if necessary) to match the desired constant. Avoid making\nthe regex too broad to avoid matching unintended constants.\n\n### internal/mkmerge\n\nThis program is used to extract duplicate const, func, and type declarations\nfrom the generated architecture-specific files listed below, and merge these\ninto a common file for each OS.\n\nThe merge is performed in the following steps:\n1. Construct the set of common code that is idential in all architecture-specific files.\n2. Write this common code to the merged file.\n3. Remove the common code from all architecture-specific files.\n\n\n## Generated files\n\n### `zerrors_${GOOS}_${GOARCH}.go`\n\nA file containing all of the system's generated error numbers, error strings,\nsignal numbers, and constants. Generated by `mkerrors.sh` (see above).\n\n### `zsyscall_${GOOS}_${GOARCH}.go`\n\nA file containing all the generated syscalls for a specific GOOS and GOARCH.\nGenerated by `mksyscall.go` (see above).\n\n### `zsysnum_${GOOS}_${GOARCH}.go`\n\nA list of numeric constants for all the syscall number of the specific GOOS\nand GOARCH. Generated by mksysnum (see above).\n\n### `ztypes_${GOOS}_${GOARCH}.go`\n\nA file containing Go types for passing into (or returning from) syscalls.\nGenerated by godefs and the types file (see above).\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/affinity_linux.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// CPU affinity functions\n\npackage unix\n\nimport (\n\t\"math/bits\"\n\t\"unsafe\"\n)\n\nconst cpuSetSize = _CPU_SETSIZE / _NCPUBITS\n\n// CPUSet represents a CPU affinity mask.\ntype CPUSet [cpuSetSize]cpuMask\n\nfunc schedAffinity(trap uintptr, pid int, set *CPUSet) error {\n\t_, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set)))\n\tif e != 0 {\n\t\treturn errnoErr(e)\n\t}\n\treturn nil\n}\n\n// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid.\n// If pid is 0 the calling thread is used.\nfunc SchedGetaffinity(pid int, set *CPUSet) error {\n\treturn schedAffinity(SYS_SCHED_GETAFFINITY, pid, set)\n}\n\n// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid.\n// If pid is 0 the calling thread is used.\nfunc SchedSetaffinity(pid int, set *CPUSet) error {\n\treturn schedAffinity(SYS_SCHED_SETAFFINITY, pid, set)\n}\n\n// Zero clears the set s, so that it contains no CPUs.\nfunc (s *CPUSet) Zero() {\n\tfor i := range s {\n\t\ts[i] = 0\n\t}\n}\n\nfunc cpuBitsIndex(cpu int) int {\n\treturn cpu / _NCPUBITS\n}\n\nfunc cpuBitsMask(cpu int) cpuMask {\n\treturn cpuMask(1 << (uint(cpu) % _NCPUBITS))\n}\n\n// Set adds cpu to the set s.\nfunc (s *CPUSet) Set(cpu int) {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\ts[i] |= cpuBitsMask(cpu)\n\t}\n}\n\n// Clear removes cpu from the set s.\nfunc (s *CPUSet) Clear(cpu int) {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\ts[i] &^= cpuBitsMask(cpu)\n\t}\n}\n\n// IsSet reports whether cpu is in the set s.\nfunc (s *CPUSet) IsSet(cpu int) bool {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\treturn s[i]&cpuBitsMask(cpu) != 0\n\t}\n\treturn false\n}\n\n// Count returns the number of CPUs in the set s.\nfunc (s *CPUSet) Count() int {\n\tc := 0\n\tfor _, b := range s {\n\t\tc += bits.OnesCount64(uint64(b))\n\t}\n\treturn c\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/aliases.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport \"syscall\"\n\ntype Signal = syscall.Signal\ntype Errno = syscall.Errno\ntype SysProcAttr = syscall.SysProcAttr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_aix_ppc64.s",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go\n//\n\nTEXT ·syscall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·syscall6(SB)\n\nTEXT ·rawSyscall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·rawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_386.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for 386 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_amd64.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for AMD64 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_arm.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for ARM BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tB\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_arm64.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for ARM64 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n//\n// System call support for ppc64, BSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for RISCV64 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_386.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for 386, Linux\n//\n\n// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80\n// instead of the glibc-specific \"CALL 0x10(GS)\".\n#define INVOKE_SYSCALL\tINT\t$0x80\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tCALL\truntime·entersyscall(SB)\n\tMOVL\ttrap+0(FP), AX  // syscall entry\n\tMOVL\ta1+4(FP), BX\n\tMOVL\ta2+8(FP), CX\n\tMOVL\ta3+12(FP), DX\n\tMOVL\t$0, SI\n\tMOVL\t$0, DI\n\tINVOKE_SYSCALL\n\tMOVL\tAX, r1+16(FP)\n\tMOVL\tDX, r2+20(FP)\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVL\ttrap+0(FP), AX  // syscall entry\n\tMOVL\ta1+4(FP), BX\n\tMOVL\ta2+8(FP), CX\n\tMOVL\ta3+12(FP), DX\n\tMOVL\t$0, SI\n\tMOVL\t$0, DI\n\tINVOKE_SYSCALL\n\tMOVL\tAX, r1+16(FP)\n\tMOVL\tDX, r2+20(FP)\n\tRET\n\nTEXT ·socketcall(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·socketcall(SB)\n\nTEXT ·rawsocketcall(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·rawsocketcall(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·seek(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for AMD64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tCALL\truntime·entersyscall(SB)\n\tMOVQ\ta1+8(FP), DI\n\tMOVQ\ta2+16(FP), SI\n\tMOVQ\ta3+24(FP), DX\n\tMOVQ\t$0, R10\n\tMOVQ\t$0, R8\n\tMOVQ\t$0, R9\n\tMOVQ\ttrap+0(FP), AX\t// syscall entry\n\tSYSCALL\n\tMOVQ\tAX, r1+32(FP)\n\tMOVQ\tDX, r2+40(FP)\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVQ\ta1+8(FP), DI\n\tMOVQ\ta2+16(FP), SI\n\tMOVQ\ta3+24(FP), DX\n\tMOVQ\t$0, R10\n\tMOVQ\t$0, R8\n\tMOVQ\t$0, R9\n\tMOVQ\ttrap+0(FP), AX\t// syscall entry\n\tSYSCALL\n\tMOVQ\tAX, r1+32(FP)\n\tMOVQ\tDX, r2+40(FP)\n\tRET\n\nTEXT ·gettimeofday(SB),NOSPLIT,$0-16\n\tJMP\tsyscall·gettimeofday(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_arm.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for arm, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tBL\truntime·entersyscall(SB)\n\tMOVW\ttrap+0(FP), R7\n\tMOVW\ta1+4(FP), R0\n\tMOVW\ta2+8(FP), R1\n\tMOVW\ta3+12(FP), R2\n\tMOVW\t$0, R3\n\tMOVW\t$0, R4\n\tMOVW\t$0, R5\n\tSWI\t$0\n\tMOVW\tR0, r1+16(FP)\n\tMOVW\t$0, R0\n\tMOVW\tR0, r2+20(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVW\ttrap+0(FP), R7\t// syscall entry\n\tMOVW\ta1+4(FP), R0\n\tMOVW\ta2+8(FP), R1\n\tMOVW\ta3+12(FP), R2\n\tSWI\t$0\n\tMOVW\tR0, r1+16(FP)\n\tMOVW\t$0, R0\n\tMOVW\tR0, r2+20(FP)\n\tRET\n\nTEXT ·seek(SB),NOSPLIT,$0-28\n\tB\tsyscall·seek(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_arm64.s",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && arm64 && gc\n\n#include \"textflag.h\"\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R0\n\tMOVD\ta2+16(FP), R1\n\tMOVD\ta3+24(FP), R2\n\tMOVD\t$0, R3\n\tMOVD\t$0, R4\n\tMOVD\t$0, R5\n\tMOVD\ttrap+0(FP), R8\t// syscall entry\n\tSVC\n\tMOVD\tR0, r1+32(FP)\t// r1\n\tMOVD\tR1, r2+40(FP)\t// r2\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R0\n\tMOVD\ta2+16(FP), R1\n\tMOVD\ta3+24(FP), R2\n\tMOVD\t$0, R3\n\tMOVD\t$0, R4\n\tMOVD\t$0, R5\n\tMOVD\ttrap+0(FP), R8\t// syscall entry\n\tSVC\n\tMOVD\tR0, r1+32(FP)\n\tMOVD\tR1, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_loong64.s",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && loong64 && gc\n\n#include \"textflag.h\"\n\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tJAL\truntime·entersyscall(SB)\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R11\t// syscall entry\n\tSYSCALL\n\tMOVV\tR4, r1+32(FP)\n\tMOVV\tR0, r2+40(FP)\t// r2 is not used. Always set to 0\n\tJAL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R11\t// syscall entry\n\tSYSCALL\n\tMOVV\tR4, r1+32(FP)\n\tMOVV\tR0, r2+40(FP)\t// r2 is not used. Always set to 0\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_mips64x.s",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips64 || mips64le) && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for mips64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tJAL\truntime·entersyscall(SB)\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVV\tR2, r1+32(FP)\n\tMOVV\tR3, r2+40(FP)\n\tJAL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVV\tR2, r1+32(FP)\n\tMOVV\tR3, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_mipsx.s",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips || mipsle) && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for mips, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tJMP syscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tJMP syscall·Syscall6(SB)\n\nTEXT ·Syscall9(SB),NOSPLIT,$0-52\n\tJMP syscall·Syscall9(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tJAL\truntime·entersyscall(SB)\n\tMOVW\ta1+4(FP), R4\n\tMOVW\ta2+8(FP), R5\n\tMOVW\ta3+12(FP), R6\n\tMOVW\tR0, R7\n\tMOVW\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVW\tR2, r1+16(FP)\t// r1\n\tMOVW\tR3, r2+20(FP)\t// r2\n\tJAL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP syscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP syscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVW\ta1+4(FP), R4\n\tMOVW\ta2+8(FP), R5\n\tMOVW\ta3+12(FP), R6\n\tMOVW\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVW\tR2, r1+16(FP)\n\tMOVW\tR3, r2+20(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (ppc64 || ppc64le) && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for ppc64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R3\n\tMOVD\ta2+16(FP), R4\n\tMOVD\ta3+24(FP), R5\n\tMOVD\tR0, R6\n\tMOVD\tR0, R7\n\tMOVD\tR0, R8\n\tMOVD\ttrap+0(FP), R9\t// syscall entry\n\tSYSCALL R9\n\tMOVD\tR3, r1+32(FP)\n\tMOVD\tR4, r2+40(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R3\n\tMOVD\ta2+16(FP), R4\n\tMOVD\ta3+24(FP), R5\n\tMOVD\tR0, R6\n\tMOVD\tR0, R7\n\tMOVD\tR0, R8\n\tMOVD\ttrap+0(FP), R9\t// syscall entry\n\tSYSCALL R9\n\tMOVD\tR3, r1+32(FP)\n\tMOVD\tR4, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_riscv64.s",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for linux/riscv64.\n//\n// Where available, just jump to package syscall's implementation of\n// these functions.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tCALL\truntime·entersyscall(SB)\n\tMOV\ta1+8(FP), A0\n\tMOV\ta2+16(FP), A1\n\tMOV\ta3+24(FP), A2\n\tMOV\ttrap+0(FP), A7\t// syscall entry\n\tECALL\n\tMOV\tA0, r1+32(FP)\t// r1\n\tMOV\tA1, r2+40(FP)\t// r2\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOV\ta1+8(FP), A0\n\tMOV\ta2+16(FP), A1\n\tMOV\ta3+24(FP), A2\n\tMOV\ttrap+0(FP), A7\t// syscall entry\n\tECALL\n\tMOV\tA0, r1+32(FP)\n\tMOV\tA1, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_s390x.s",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && s390x && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for s390x, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tBR\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tBR\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R2\n\tMOVD\ta2+16(FP), R3\n\tMOVD\ta3+24(FP), R4\n\tMOVD\t$0, R5\n\tMOVD\t$0, R6\n\tMOVD\t$0, R7\n\tMOVD\ttrap+0(FP), R1\t// syscall entry\n\tSYSCALL\n\tMOVD\tR2, r1+32(FP)\n\tMOVD\tR3, r2+40(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tBR\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tBR\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R2\n\tMOVD\ta2+16(FP), R3\n\tMOVD\ta3+24(FP), R4\n\tMOVD\t$0, R5\n\tMOVD\t$0, R6\n\tMOVD\t$0, R7\n\tMOVD\ttrap+0(FP), R1\t// syscall entry\n\tSYSCALL\n\tMOVD\tR2, r1+32(FP)\n\tMOVD\tR3, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System call support for mips64, OpenBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_solaris_amd64.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go\n//\n\nTEXT ·sysvicall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·sysvicall6(SB)\n\nTEXT ·rawSysvicall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·rawSysvicall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_zos_s390x.s",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x && gc\n\n#include \"textflag.h\"\n\n#define PSALAA            1208(R0)\n#define GTAB64(x)           80(x)\n#define LCA64(x)            88(x)\n#define SAVSTACK_ASYNC(x)  336(x) // in the LCA\n#define CAA(x)               8(x)\n#define CEECAATHDID(x)     976(x) // in the CAA\n#define EDCHPXV(x)        1016(x) // in the CAA\n#define GOCB(x)           1104(x) // in the CAA\n\n// SS_*, where x=SAVSTACK_ASYNC\n#define SS_LE(x)             0(x)\n#define SS_GO(x)             8(x)\n#define SS_ERRNO(x)         16(x)\n#define SS_ERRNOJR(x)       20(x)\n\n// Function Descriptor Offsets\n#define __errno  0x156*16\n#define __err2ad 0x16C*16\n\n// Call Instructions\n#define LE_CALL    BYTE $0x0D; BYTE $0x76 // BL R7, R6\n#define SVC_LOAD   BYTE $0x0A; BYTE $0x08 // SVC 08 LOAD\n#define SVC_DELETE BYTE $0x0A; BYTE $0x09 // SVC 09 DELETE\n\nDATA zosLibVec<>(SB)/8, $0\nGLOBL zosLibVec<>(SB), NOPTR, $8\n\nTEXT ·initZosLibVec(SB), NOSPLIT|NOFRAME, $0-0\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD CAA(R8), R8\n\tMOVD EDCHPXV(R8), R8\n\tMOVD R8, zosLibVec<>(SB)\n\tRET\n\nTEXT ·GetZosLibVec(SB), NOSPLIT|NOFRAME, $0-0\n\tMOVD zosLibVec<>(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·clearErrno(SB), NOSPLIT, $0-0\n\tBL   addrerrno<>(SB)\n\tMOVD $0, 0(R3)\n\tRET\n\n// Returns the address of errno in R3.\nTEXT addrerrno<>(SB), NOSPLIT|NOFRAME, $0-0\n\t// Get library control area (LCA).\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\n\t// Get __errno FuncDesc.\n\tMOVD CAA(R8), R9\n\tMOVD EDCHPXV(R9), R9\n\tADD  $(__errno), R9\n\tLMG  0(R9), R5, R6\n\n\t// Switch to saved LE stack.\n\tMOVD SAVSTACK_ASYNC(R8), R9\n\tMOVD 0(R9), R4\n\tMOVD $0, 0(R9)\n\n\t// Call __errno function.\n\tLE_CALL\n\tNOPH\n\n\t// Switch back to Go stack.\n\tXOR  R0, R0    // Restore R0 to $0.\n\tMOVD R4, 0(R9) // Save stack pointer.\n\tRET\n\n// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64)\nTEXT ·svcCall(SB), NOSPLIT, $0\n\tBL   runtime·save_g(SB)     // Save g and stack pointer\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD SAVSTACK_ASYNC(R8), R9\n\tMOVD R15, 0(R9)\n\n\tMOVD argv+8(FP), R1   // Move function arguments into registers\n\tMOVD dsa+16(FP), g\n\tMOVD fnptr+0(FP), R15\n\n\tBYTE $0x0D // Branch to function\n\tBYTE $0xEF\n\n\tBL   runtime·load_g(SB)     // Restore g and stack pointer\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD SAVSTACK_ASYNC(R8), R9\n\tMOVD 0(R9), R15\n\n\tRET\n\n// func svcLoad(name *byte) unsafe.Pointer\nTEXT ·svcLoad(SB), NOSPLIT, $0\n\tMOVD R15, R2         // Save go stack pointer\n\tMOVD name+0(FP), R0  // Move SVC args into registers\n\tMOVD $0x80000000, R1\n\tMOVD $0, R15\n\tSVC_LOAD\n\tMOVW R15, R3         // Save return code from SVC\n\tMOVD R2, R15         // Restore go stack pointer\n\tCMP  R3, $0          // Check SVC return code\n\tBNE  error\n\n\tMOVD $-2, R3       // Reset last bit of entry point to zero\n\tAND  R0, R3\n\tMOVD R3, ret+8(FP) // Return entry point returned by SVC\n\tCMP  R0, R3        // Check if last bit of entry point was set\n\tBNE  done\n\n\tMOVD R15, R2 // Save go stack pointer\n\tMOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08)\n\tSVC_DELETE\n\tMOVD R2, R15 // Restore go stack pointer\n\nerror:\n\tMOVD $0, ret+8(FP) // Return 0 on failure\n\ndone:\n\tXOR R0, R0 // Reset r0 to 0\n\tRET\n\n// func svcUnload(name *byte, fnptr unsafe.Pointer) int64\nTEXT ·svcUnload(SB), NOSPLIT, $0\n\tMOVD R15, R2          // Save go stack pointer\n\tMOVD name+0(FP), R0   // Move SVC args into registers\n\tMOVD fnptr+8(FP), R15\n\tSVC_DELETE\n\tXOR  R0, R0           // Reset r0 to 0\n\tMOVD R15, R1          // Save SVC return code\n\tMOVD R2, R15          // Restore go stack pointer\n\tMOVD R1, ret+16(FP)   // Return SVC return code\n\tRET\n\n// func gettid() uint64\nTEXT ·gettid(SB), NOSPLIT, $0\n\t// Get library control area (LCA).\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\n\t// Get CEECAATHDID\n\tMOVD CAA(R8), R9\n\tMOVD CEECAATHDID(R9), R9\n\tMOVD R9, ret+0(FP)\n\n\tRET\n\n//\n// Call LE function, if the return is -1\n// errno and errno2 is retrieved\n//\nTEXT ·CallLeFuncWithErr(SB), NOSPLIT, $0\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD CAA(R8), R9\n\tMOVD g, GOCB(R9)\n\n\t// Restore LE stack.\n\tMOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address\n\tMOVD 0(R9), R4              // R4-> restore previously saved stack frame pointer\n\n\tMOVD parms_base+8(FP), R7 // R7 -> argument array\n\tMOVD parms_len+16(FP), R8 // R8 number of arguments\n\n\t//  arg 1 ---> R1\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tMOVD 0(R7), R1\n\n\t//  arg 2 ---> R2\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R2\n\n\t//  arg 3 --> R3\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R3\n\n\tCMP  R8, $0\n\tBEQ  docall\n\tMOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument\n\nrepeat:\n\tADD  $8, R7\n\tMOVD 0(R7), R0      // advance arg pointer by 8 byte\n\tADD  $8, R6         // advance LE argument address by 8 byte\n\tMOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame\n\tSUB  $1, R8\n\tCMP  R8, $0\n\tBNE  repeat\n\ndocall:\n\tMOVD funcdesc+0(FP), R8 // R8-> function descriptor\n\tLMG  0(R8), R5, R6\n\tMOVD $0, 0(R9)          // R9 address of SAVSTACK_ASYNC\n\tLE_CALL                 // balr R7, R6 (return #1)\n\tNOPH\n\tMOVD R3, ret+32(FP)\n\tCMP  R3, $-1            // compare result to -1\n\tBNE  done\n\n\t// retrieve errno and errno2\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__errno), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __errno (return #3)\n\tNOPH\n\tMOVWZ 0(R3), R3\n\tMOVD  R3, err+48(FP)\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__err2ad), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __err2ad (return #2)\n\tNOPH\n\tMOVW  (R3), R2            // retrieve errno2\n\tMOVD  R2, errno2+40(FP)   // store in return area\n\ndone:\n\tMOVD R4, 0(R9)            // Save stack pointer.\n\tRET\n\n//\n// Call LE function, if the return is 0\n// errno and errno2 is retrieved\n//\nTEXT ·CallLeFuncWithPtrReturn(SB), NOSPLIT, $0\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD CAA(R8), R9\n\tMOVD g, GOCB(R9)\n\n\t// Restore LE stack.\n\tMOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address\n\tMOVD 0(R9), R4              // R4-> restore previously saved stack frame pointer\n\n\tMOVD parms_base+8(FP), R7 // R7 -> argument array\n\tMOVD parms_len+16(FP), R8 // R8 number of arguments\n\n\t//  arg 1 ---> R1\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tMOVD 0(R7), R1\n\n\t//  arg 2 ---> R2\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R2\n\n\t//  arg 3 --> R3\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R3\n\n\tCMP  R8, $0\n\tBEQ  docall\n\tMOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument\n\nrepeat:\n\tADD  $8, R7\n\tMOVD 0(R7), R0      // advance arg pointer by 8 byte\n\tADD  $8, R6         // advance LE argument address by 8 byte\n\tMOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame\n\tSUB  $1, R8\n\tCMP  R8, $0\n\tBNE  repeat\n\ndocall:\n\tMOVD funcdesc+0(FP), R8 // R8-> function descriptor\n\tLMG  0(R8), R5, R6\n\tMOVD $0, 0(R9)          // R9 address of SAVSTACK_ASYNC\n\tLE_CALL                 // balr R7, R6 (return #1)\n\tNOPH\n\tMOVD R3, ret+32(FP)\n\tCMP  R3, $0             // compare result to 0\n\tBNE  done\n\n\t// retrieve errno and errno2\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__errno), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __errno (return #3)\n\tNOPH\n\tMOVWZ 0(R3), R3\n\tMOVD  R3, err+48(FP)\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__err2ad), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __err2ad (return #2)\n\tNOPH\n\tMOVW  (R3), R2            // retrieve errno2\n\tMOVD  R2, errno2+40(FP)   // store in return area\n\tXOR   R2, R2\n\tMOVWZ R2, (R3)            // clear errno2\n\ndone:\n\tMOVD R4, 0(R9)            // Save stack pointer.\n\tRET\n\n//\n// function to test if a pointer can be safely dereferenced (content read)\n// return 0 for succces\n//\nTEXT ·ptrtest(SB), NOSPLIT, $0-16\n\tMOVD arg+0(FP), R10 // test pointer in R10\n\n\t// set up R2 to point to CEECAADMC\n\tBYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt  2,1208\n\tBYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22                         // llgtr 2,2\n\tBYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF                         // nilh  2,32767\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg    2,88(2)\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg    2,8(2)\n\tBYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68                         // la    2,872(2)\n\n\t// set up R5 to point to the \"shunt\" path which set 1 to R3 (failure)\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr   3,3\n\tBYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras  5,lbl1\n\tBYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi  3,1\n\n\t// if r3 is not zero (failed) then branch to finish\n\tBYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1     ltgr  3,3\n\tBYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc   b'0111',lbl2\n\n\t// stomic store shunt address in R5 into CEECAADMC\n\tBYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg   5,0(2)\n\n\t// now try reading from the test pointer in R10, if it fails it branches to the \"lghi\" instruction above\n\tBYTE $0xE3; BYTE $0x9A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg    9,0(10)\n\n\t// finish here, restore 0 into CEECAADMC\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99                         // lbl2     xgr   9,9\n\tBYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg   9,0(2)\n\tMOVD R3, ret+8(FP)                                                     // result in R3\n\tRET\n\n//\n// function to test if a untptr can be loaded from a pointer\n// return 1: the 8-byte content\n//        2: 0 for success, 1 for failure\n//\n// func safeload(ptr uintptr) ( value uintptr, error uintptr)\nTEXT ·safeload(SB), NOSPLIT, $0-24\n\tMOVD ptr+0(FP), R10                                                    // test pointer in R10\n\tMOVD $0x0, R6\n\tBYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt  2,1208\n\tBYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22                         // llgtr 2,2\n\tBYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF                         // nilh  2,32767\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg    2,88(2)\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg    2,8(2)\n\tBYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68                         // la    2,872(2)\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33                         // xgr   3,3\n\tBYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04                         // bras  5,lbl1\n\tBYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01                         // lghi  3,1\n\tBYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33                         // lbl1     ltgr  3,3\n\tBYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08                         // brc   b'0111',lbl2\n\tBYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2)\n\tBYTE $0xE3; BYTE $0x6A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg    6,0(10)\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99                         // lbl2     xgr   9,9\n\tBYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg   9,0(2)\n\tMOVD R6, value+8(FP)                                                   // result in R6\n\tMOVD R3, error+16(FP)                                                  // error in R3\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/bluetooth_linux.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Bluetooth sockets and messages\n\npackage unix\n\n// Bluetooth Protocols\nconst (\n\tBTPROTO_L2CAP  = 0\n\tBTPROTO_HCI    = 1\n\tBTPROTO_SCO    = 2\n\tBTPROTO_RFCOMM = 3\n\tBTPROTO_BNEP   = 4\n\tBTPROTO_CMTP   = 5\n\tBTPROTO_HIDP   = 6\n\tBTPROTO_AVDTP  = 7\n)\n\nconst (\n\tHCI_CHANNEL_RAW     = 0\n\tHCI_CHANNEL_USER    = 1\n\tHCI_CHANNEL_MONITOR = 2\n\tHCI_CHANNEL_CONTROL = 3\n\tHCI_CHANNEL_LOGGING = 4\n)\n\n// Socketoption Level\nconst (\n\tSOL_BLUETOOTH = 0x112\n\tSOL_HCI       = 0x0\n\tSOL_L2CAP     = 0x6\n\tSOL_RFCOMM    = 0x12\n\tSOL_SCO       = 0x11\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/bpxsvc_zos.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos\n\npackage unix\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"unsafe\"\n)\n\n//go:noescape\nfunc bpxcall(plist []unsafe.Pointer, bpx_offset int64)\n\n//go:noescape\nfunc A2e([]byte)\n\n//go:noescape\nfunc E2a([]byte)\n\nconst (\n\tBPX4STA = 192  // stat\n\tBPX4FST = 104  // fstat\n\tBPX4LST = 132  // lstat\n\tBPX4OPN = 156  // open\n\tBPX4CLO = 72   // close\n\tBPX4CHR = 500  // chattr\n\tBPX4FCR = 504  // fchattr\n\tBPX4LCR = 1180 // lchattr\n\tBPX4CTW = 492  // cond_timed_wait\n\tBPX4GTH = 1056 // __getthent\n\tBPX4PTQ = 412  // pthread_quiesc\n\tBPX4PTR = 320  // ptrace\n)\n\nconst (\n\t//options\n\t//byte1\n\tBPX_OPNFHIGH = 0x80\n\t//byte2\n\tBPX_OPNFEXEC = 0x80\n\t//byte3\n\tBPX_O_NOLARGEFILE = 0x08\n\tBPX_O_LARGEFILE   = 0x04\n\tBPX_O_ASYNCSIG    = 0x02\n\tBPX_O_SYNC        = 0x01\n\t//byte4\n\tBPX_O_CREXCL   = 0xc0\n\tBPX_O_CREAT    = 0x80\n\tBPX_O_EXCL     = 0x40\n\tBPX_O_NOCTTY   = 0x20\n\tBPX_O_TRUNC    = 0x10\n\tBPX_O_APPEND   = 0x08\n\tBPX_O_NONBLOCK = 0x04\n\tBPX_FNDELAY    = 0x04\n\tBPX_O_RDWR     = 0x03\n\tBPX_O_RDONLY   = 0x02\n\tBPX_O_WRONLY   = 0x01\n\tBPX_O_ACCMODE  = 0x03\n\tBPX_O_GETFL    = 0x0f\n\n\t//mode\n\t// byte1 (file type)\n\tBPX_FT_DIR      = 1\n\tBPX_FT_CHARSPEC = 2\n\tBPX_FT_REGFILE  = 3\n\tBPX_FT_FIFO     = 4\n\tBPX_FT_SYMLINK  = 5\n\tBPX_FT_SOCKET   = 6\n\t//byte3\n\tBPX_S_ISUID  = 0x08\n\tBPX_S_ISGID  = 0x04\n\tBPX_S_ISVTX  = 0x02\n\tBPX_S_IRWXU1 = 0x01\n\tBPX_S_IRUSR  = 0x01\n\t//byte4\n\tBPX_S_IRWXU2 = 0xc0\n\tBPX_S_IWUSR  = 0x80\n\tBPX_S_IXUSR  = 0x40\n\tBPX_S_IRWXG  = 0x38\n\tBPX_S_IRGRP  = 0x20\n\tBPX_S_IWGRP  = 0x10\n\tBPX_S_IXGRP  = 0x08\n\tBPX_S_IRWXOX = 0x07\n\tBPX_S_IROTH  = 0x04\n\tBPX_S_IWOTH  = 0x02\n\tBPX_S_IXOTH  = 0x01\n\n\tCW_INTRPT  = 1\n\tCW_CONDVAR = 32\n\tCW_TIMEOUT = 64\n\n\tPGTHA_NEXT        = 2\n\tPGTHA_CURRENT     = 1\n\tPGTHA_FIRST       = 0\n\tPGTHA_LAST        = 3\n\tPGTHA_PROCESS     = 0x80\n\tPGTHA_CONTTY      = 0x40\n\tPGTHA_PATH        = 0x20\n\tPGTHA_COMMAND     = 0x10\n\tPGTHA_FILEDATA    = 0x08\n\tPGTHA_THREAD      = 0x04\n\tPGTHA_PTAG        = 0x02\n\tPGTHA_COMMANDLONG = 0x01\n\tPGTHA_THREADFAST  = 0x80\n\tPGTHA_FILEPATH    = 0x40\n\tPGTHA_THDSIGMASK  = 0x20\n\t// thread quiece mode\n\tQUIESCE_TERM       int32 = 1\n\tQUIESCE_FORCE      int32 = 2\n\tQUIESCE_QUERY      int32 = 3\n\tQUIESCE_FREEZE     int32 = 4\n\tQUIESCE_UNFREEZE   int32 = 5\n\tFREEZE_THIS_THREAD int32 = 6\n\tFREEZE_EXIT        int32 = 8\n\tQUIESCE_SRB        int32 = 9\n)\n\ntype Pgtha struct {\n\tPid        uint32 // 0\n\tTid0       uint32 // 4\n\tTid1       uint32\n\tAccesspid  byte    // C\n\tAccesstid  byte    // D\n\tAccessasid uint16  // E\n\tLoginname  [8]byte // 10\n\tFlag1      byte    // 18\n\tFlag1b2    byte    // 19\n}\n\ntype Bpxystat_t struct { // DSECT BPXYSTAT\n\tSt_id           [4]uint8  // 0\n\tSt_length       uint16    // 0x4\n\tSt_version      uint16    // 0x6\n\tSt_mode         uint32    // 0x8\n\tSt_ino          uint32    // 0xc\n\tSt_dev          uint32    // 0x10\n\tSt_nlink        uint32    // 0x14\n\tSt_uid          uint32    // 0x18\n\tSt_gid          uint32    // 0x1c\n\tSt_size         uint64    // 0x20\n\tSt_atime        uint32    // 0x28\n\tSt_mtime        uint32    // 0x2c\n\tSt_ctime        uint32    // 0x30\n\tSt_rdev         uint32    // 0x34\n\tSt_auditoraudit uint32    // 0x38\n\tSt_useraudit    uint32    // 0x3c\n\tSt_blksize      uint32    // 0x40\n\tSt_createtime   uint32    // 0x44\n\tSt_auditid      [4]uint32 // 0x48\n\tSt_res01        uint32    // 0x58\n\tFt_ccsid        uint16    // 0x5c\n\tFt_flags        uint16    // 0x5e\n\tSt_res01a       [2]uint32 // 0x60\n\tSt_res02        uint32    // 0x68\n\tSt_blocks       uint32    // 0x6c\n\tSt_opaque       [3]uint8  // 0x70\n\tSt_visible      uint8     // 0x73\n\tSt_reftime      uint32    // 0x74\n\tSt_fid          uint64    // 0x78\n\tSt_filefmt      uint8     // 0x80\n\tSt_fspflag2     uint8     // 0x81\n\tSt_res03        [2]uint8  // 0x82\n\tSt_ctimemsec    uint32    // 0x84\n\tSt_seclabel     [8]uint8  // 0x88\n\tSt_res04        [4]uint8  // 0x90\n\t// end of version 1\n\t_               uint32    // 0x94\n\tSt_atime64      uint64    // 0x98\n\tSt_mtime64      uint64    // 0xa0\n\tSt_ctime64      uint64    // 0xa8\n\tSt_createtime64 uint64    // 0xb0\n\tSt_reftime64    uint64    // 0xb8\n\t_               uint64    // 0xc0\n\tSt_res05        [16]uint8 // 0xc8\n\t// end of version 2\n}\n\ntype BpxFilestatus struct {\n\tOflag1 byte\n\tOflag2 byte\n\tOflag3 byte\n\tOflag4 byte\n}\n\ntype BpxMode struct {\n\tFtype byte\n\tMode1 byte\n\tMode2 byte\n\tMode3 byte\n}\n\n// Thr attribute structure for extended attributes\ntype Bpxyatt_t struct { // DSECT BPXYATT\n\tAtt_id           [4]uint8\n\tAtt_version      uint16\n\tAtt_res01        [2]uint8\n\tAtt_setflags1    uint8\n\tAtt_setflags2    uint8\n\tAtt_setflags3    uint8\n\tAtt_setflags4    uint8\n\tAtt_mode         uint32\n\tAtt_uid          uint32\n\tAtt_gid          uint32\n\tAtt_opaquemask   [3]uint8\n\tAtt_visblmaskres uint8\n\tAtt_opaque       [3]uint8\n\tAtt_visibleres   uint8\n\tAtt_size_h       uint32\n\tAtt_size_l       uint32\n\tAtt_atime        uint32\n\tAtt_mtime        uint32\n\tAtt_auditoraudit uint32\n\tAtt_useraudit    uint32\n\tAtt_ctime        uint32\n\tAtt_reftime      uint32\n\t// end of version 1\n\tAtt_filefmt uint8\n\tAtt_res02   [3]uint8\n\tAtt_filetag uint32\n\tAtt_res03   [8]uint8\n\t// end of version 2\n\tAtt_atime64   uint64\n\tAtt_mtime64   uint64\n\tAtt_ctime64   uint64\n\tAtt_reftime64 uint64\n\tAtt_seclabel  [8]uint8\n\tAtt_ver3res02 [8]uint8\n\t// end of version 3\n}\n\nfunc BpxOpen(name string, options *BpxFilestatus, mode *BpxMode) (rv int32, rc int32, rn int32) {\n\tif len(name) < 1024 {\n\t\tvar namebuf [1024]byte\n\t\tsz := int32(copy(namebuf[:], name))\n\t\tA2e(namebuf[:sz])\n\t\tvar parms [7]unsafe.Pointer\n\t\tparms[0] = unsafe.Pointer(&sz)\n\t\tparms[1] = unsafe.Pointer(&namebuf[0])\n\t\tparms[2] = unsafe.Pointer(options)\n\t\tparms[3] = unsafe.Pointer(mode)\n\t\tparms[4] = unsafe.Pointer(&rv)\n\t\tparms[5] = unsafe.Pointer(&rc)\n\t\tparms[6] = unsafe.Pointer(&rn)\n\t\tbpxcall(parms[:], BPX4OPN)\n\t\treturn rv, rc, rn\n\t}\n\treturn -1, -1, -1\n}\n\nfunc BpxClose(fd int32) (rv int32, rc int32, rn int32) {\n\tvar parms [4]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&fd)\n\tparms[1] = unsafe.Pointer(&rv)\n\tparms[2] = unsafe.Pointer(&rc)\n\tparms[3] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4CLO)\n\treturn rv, rc, rn\n}\n\nfunc BpxFileFStat(fd int32, st *Bpxystat_t) (rv int32, rc int32, rn int32) {\n\tst.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3}\n\tst.St_version = 2\n\tstat_sz := uint32(unsafe.Sizeof(*st))\n\tvar parms [6]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&fd)\n\tparms[1] = unsafe.Pointer(&stat_sz)\n\tparms[2] = unsafe.Pointer(st)\n\tparms[3] = unsafe.Pointer(&rv)\n\tparms[4] = unsafe.Pointer(&rc)\n\tparms[5] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4FST)\n\treturn rv, rc, rn\n}\n\nfunc BpxFileStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) {\n\tif len(name) < 1024 {\n\t\tvar namebuf [1024]byte\n\t\tsz := int32(copy(namebuf[:], name))\n\t\tA2e(namebuf[:sz])\n\t\tst.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3}\n\t\tst.St_version = 2\n\t\tstat_sz := uint32(unsafe.Sizeof(*st))\n\t\tvar parms [7]unsafe.Pointer\n\t\tparms[0] = unsafe.Pointer(&sz)\n\t\tparms[1] = unsafe.Pointer(&namebuf[0])\n\t\tparms[2] = unsafe.Pointer(&stat_sz)\n\t\tparms[3] = unsafe.Pointer(st)\n\t\tparms[4] = unsafe.Pointer(&rv)\n\t\tparms[5] = unsafe.Pointer(&rc)\n\t\tparms[6] = unsafe.Pointer(&rn)\n\t\tbpxcall(parms[:], BPX4STA)\n\t\treturn rv, rc, rn\n\t}\n\treturn -1, -1, -1\n}\n\nfunc BpxFileLStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) {\n\tif len(name) < 1024 {\n\t\tvar namebuf [1024]byte\n\t\tsz := int32(copy(namebuf[:], name))\n\t\tA2e(namebuf[:sz])\n\t\tst.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3}\n\t\tst.St_version = 2\n\t\tstat_sz := uint32(unsafe.Sizeof(*st))\n\t\tvar parms [7]unsafe.Pointer\n\t\tparms[0] = unsafe.Pointer(&sz)\n\t\tparms[1] = unsafe.Pointer(&namebuf[0])\n\t\tparms[2] = unsafe.Pointer(&stat_sz)\n\t\tparms[3] = unsafe.Pointer(st)\n\t\tparms[4] = unsafe.Pointer(&rv)\n\t\tparms[5] = unsafe.Pointer(&rc)\n\t\tparms[6] = unsafe.Pointer(&rn)\n\t\tbpxcall(parms[:], BPX4LST)\n\t\treturn rv, rc, rn\n\t}\n\treturn -1, -1, -1\n}\n\nfunc BpxChattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) {\n\tif len(path) >= 1024 {\n\t\treturn -1, -1, -1\n\t}\n\tvar namebuf [1024]byte\n\tsz := int32(copy(namebuf[:], path))\n\tA2e(namebuf[:sz])\n\tattr_sz := uint32(unsafe.Sizeof(*attr))\n\tvar parms [7]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&sz)\n\tparms[1] = unsafe.Pointer(&namebuf[0])\n\tparms[2] = unsafe.Pointer(&attr_sz)\n\tparms[3] = unsafe.Pointer(attr)\n\tparms[4] = unsafe.Pointer(&rv)\n\tparms[5] = unsafe.Pointer(&rc)\n\tparms[6] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4CHR)\n\treturn rv, rc, rn\n}\n\nfunc BpxLchattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) {\n\tif len(path) >= 1024 {\n\t\treturn -1, -1, -1\n\t}\n\tvar namebuf [1024]byte\n\tsz := int32(copy(namebuf[:], path))\n\tA2e(namebuf[:sz])\n\tattr_sz := uint32(unsafe.Sizeof(*attr))\n\tvar parms [7]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&sz)\n\tparms[1] = unsafe.Pointer(&namebuf[0])\n\tparms[2] = unsafe.Pointer(&attr_sz)\n\tparms[3] = unsafe.Pointer(attr)\n\tparms[4] = unsafe.Pointer(&rv)\n\tparms[5] = unsafe.Pointer(&rc)\n\tparms[6] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4LCR)\n\treturn rv, rc, rn\n}\n\nfunc BpxFchattr(fd int32, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) {\n\tattr_sz := uint32(unsafe.Sizeof(*attr))\n\tvar parms [6]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&fd)\n\tparms[1] = unsafe.Pointer(&attr_sz)\n\tparms[2] = unsafe.Pointer(attr)\n\tparms[3] = unsafe.Pointer(&rv)\n\tparms[4] = unsafe.Pointer(&rc)\n\tparms[5] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4FCR)\n\treturn rv, rc, rn\n}\n\nfunc BpxCondTimedWait(sec uint32, nsec uint32, events uint32, secrem *uint32, nsecrem *uint32) (rv int32, rc int32, rn int32) {\n\tvar parms [8]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&sec)\n\tparms[1] = unsafe.Pointer(&nsec)\n\tparms[2] = unsafe.Pointer(&events)\n\tparms[3] = unsafe.Pointer(secrem)\n\tparms[4] = unsafe.Pointer(nsecrem)\n\tparms[5] = unsafe.Pointer(&rv)\n\tparms[6] = unsafe.Pointer(&rc)\n\tparms[7] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4CTW)\n\treturn rv, rc, rn\n}\nfunc BpxGetthent(in *Pgtha, outlen *uint32, out unsafe.Pointer) (rv int32, rc int32, rn int32) {\n\tvar parms [7]unsafe.Pointer\n\tinlen := uint32(26) // nothing else will work. Go says Pgtha is 28-byte because of alignment, but Pgtha is \"packed\" and must be 26-byte\n\tparms[0] = unsafe.Pointer(&inlen)\n\tparms[1] = unsafe.Pointer(&in)\n\tparms[2] = unsafe.Pointer(outlen)\n\tparms[3] = unsafe.Pointer(&out)\n\tparms[4] = unsafe.Pointer(&rv)\n\tparms[5] = unsafe.Pointer(&rc)\n\tparms[6] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4GTH)\n\treturn rv, rc, rn\n}\nfunc ZosJobname() (jobname string, err error) {\n\tvar pgtha Pgtha\n\tpgtha.Pid = uint32(Getpid())\n\tpgtha.Accesspid = PGTHA_CURRENT\n\tpgtha.Flag1 = PGTHA_PROCESS\n\tvar out [256]byte\n\tvar outlen uint32\n\toutlen = 256\n\trv, rc, rn := BpxGetthent(&pgtha, &outlen, unsafe.Pointer(&out[0]))\n\tif rv == 0 {\n\t\tgthc := []byte{0x87, 0xa3, 0x88, 0x83} // 'gthc' in ebcdic\n\t\tix := bytes.Index(out[:], gthc)\n\t\tif ix == -1 {\n\t\t\terr = fmt.Errorf(\"BPX4GTH: gthc return data not found\")\n\t\t\treturn\n\t\t}\n\t\tjn := out[ix+80 : ix+88] // we didn't declare Pgthc, but jobname is 8-byte at offset 80\n\t\tE2a(jn)\n\t\tjobname = string(bytes.TrimRight(jn, \" \"))\n\n\t} else {\n\t\terr = fmt.Errorf(\"BPX4GTH: rc=%d errno=%d reason=code=0x%x\", rv, rc, rn)\n\t}\n\treturn\n}\nfunc Bpx4ptq(code int32, data string) (rv int32, rc int32, rn int32) {\n\tvar userdata [8]byte\n\tvar parms [5]unsafe.Pointer\n\tcopy(userdata[:], data+\"        \")\n\tA2e(userdata[:])\n\tparms[0] = unsafe.Pointer(&code)\n\tparms[1] = unsafe.Pointer(&userdata[0])\n\tparms[2] = unsafe.Pointer(&rv)\n\tparms[3] = unsafe.Pointer(&rc)\n\tparms[4] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4PTQ)\n\treturn rv, rc, rn\n}\n\nconst (\n\tPT_TRACE_ME             = 0  // Debug this process\n\tPT_READ_I               = 1  // Read a full word\n\tPT_READ_D               = 2  // Read a full word\n\tPT_READ_U               = 3  // Read control info\n\tPT_WRITE_I              = 4  //Write a full word\n\tPT_WRITE_D              = 5  //Write a full word\n\tPT_CONTINUE             = 7  //Continue the process\n\tPT_KILL                 = 8  //Terminate the process\n\tPT_READ_GPR             = 11 // Read GPR, CR, PSW\n\tPT_READ_FPR             = 12 // Read FPR\n\tPT_READ_VR              = 13 // Read VR\n\tPT_WRITE_GPR            = 14 // Write GPR, CR, PSW\n\tPT_WRITE_FPR            = 15 // Write FPR\n\tPT_WRITE_VR             = 16 // Write VR\n\tPT_READ_BLOCK           = 17 // Read storage\n\tPT_WRITE_BLOCK          = 19 // Write storage\n\tPT_READ_GPRH            = 20 // Read GPRH\n\tPT_WRITE_GPRH           = 21 // Write GPRH\n\tPT_REGHSET              = 22 // Read all GPRHs\n\tPT_ATTACH               = 30 // Attach to a process\n\tPT_DETACH               = 31 // Detach from a process\n\tPT_REGSET               = 32 // Read all GPRs\n\tPT_REATTACH             = 33 // Reattach to a process\n\tPT_LDINFO               = 34 // Read loader info\n\tPT_MULTI                = 35 // Multi process mode\n\tPT_LD64INFO             = 36 // RMODE64 Info Area\n\tPT_BLOCKREQ             = 40 // Block request\n\tPT_THREAD_INFO          = 60 // Read thread info\n\tPT_THREAD_MODIFY        = 61\n\tPT_THREAD_READ_FOCUS    = 62\n\tPT_THREAD_WRITE_FOCUS   = 63\n\tPT_THREAD_HOLD          = 64\n\tPT_THREAD_SIGNAL        = 65\n\tPT_EXPLAIN              = 66\n\tPT_EVENTS               = 67\n\tPT_THREAD_INFO_EXTENDED = 68\n\tPT_REATTACH2            = 71\n\tPT_CAPTURE              = 72\n\tPT_UNCAPTURE            = 73\n\tPT_GET_THREAD_TCB       = 74\n\tPT_GET_ALET             = 75\n\tPT_SWAPIN               = 76\n\tPT_EXTENDED_EVENT       = 98\n\tPT_RECOVER              = 99  // Debug a program check\n\tPT_GPR0                 = 0   // General purpose register 0\n\tPT_GPR1                 = 1   // General purpose register 1\n\tPT_GPR2                 = 2   // General purpose register 2\n\tPT_GPR3                 = 3   // General purpose register 3\n\tPT_GPR4                 = 4   // General purpose register 4\n\tPT_GPR5                 = 5   // General purpose register 5\n\tPT_GPR6                 = 6   // General purpose register 6\n\tPT_GPR7                 = 7   // General purpose register 7\n\tPT_GPR8                 = 8   // General purpose register 8\n\tPT_GPR9                 = 9   // General purpose register 9\n\tPT_GPR10                = 10  // General purpose register 10\n\tPT_GPR11                = 11  // General purpose register 11\n\tPT_GPR12                = 12  // General purpose register 12\n\tPT_GPR13                = 13  // General purpose register 13\n\tPT_GPR14                = 14  // General purpose register 14\n\tPT_GPR15                = 15  // General purpose register 15\n\tPT_FPR0                 = 16  // Floating point register 0\n\tPT_FPR1                 = 17  // Floating point register 1\n\tPT_FPR2                 = 18  // Floating point register 2\n\tPT_FPR3                 = 19  // Floating point register 3\n\tPT_FPR4                 = 20  // Floating point register 4\n\tPT_FPR5                 = 21  // Floating point register 5\n\tPT_FPR6                 = 22  // Floating point register 6\n\tPT_FPR7                 = 23  // Floating point register 7\n\tPT_FPR8                 = 24  // Floating point register 8\n\tPT_FPR9                 = 25  // Floating point register 9\n\tPT_FPR10                = 26  // Floating point register 10\n\tPT_FPR11                = 27  // Floating point register 11\n\tPT_FPR12                = 28  // Floating point register 12\n\tPT_FPR13                = 29  // Floating point register 13\n\tPT_FPR14                = 30  // Floating point register 14\n\tPT_FPR15                = 31  // Floating point register 15\n\tPT_FPC                  = 32  // Floating point control register\n\tPT_PSW                  = 40  // PSW\n\tPT_PSW0                 = 40  // Left half of the PSW\n\tPT_PSW1                 = 41  // Right half of the PSW\n\tPT_CR0                  = 42  // Control register 0\n\tPT_CR1                  = 43  // Control register 1\n\tPT_CR2                  = 44  // Control register 2\n\tPT_CR3                  = 45  // Control register 3\n\tPT_CR4                  = 46  // Control register 4\n\tPT_CR5                  = 47  // Control register 5\n\tPT_CR6                  = 48  // Control register 6\n\tPT_CR7                  = 49  // Control register 7\n\tPT_CR8                  = 50  // Control register 8\n\tPT_CR9                  = 51  // Control register 9\n\tPT_CR10                 = 52  // Control register 10\n\tPT_CR11                 = 53  // Control register 11\n\tPT_CR12                 = 54  // Control register 12\n\tPT_CR13                 = 55  // Control register 13\n\tPT_CR14                 = 56  // Control register 14\n\tPT_CR15                 = 57  // Control register 15\n\tPT_GPRH0                = 58  // GP High register 0\n\tPT_GPRH1                = 59  // GP High register 1\n\tPT_GPRH2                = 60  // GP High register 2\n\tPT_GPRH3                = 61  // GP High register 3\n\tPT_GPRH4                = 62  // GP High register 4\n\tPT_GPRH5                = 63  // GP High register 5\n\tPT_GPRH6                = 64  // GP High register 6\n\tPT_GPRH7                = 65  // GP High register 7\n\tPT_GPRH8                = 66  // GP High register 8\n\tPT_GPRH9                = 67  // GP High register 9\n\tPT_GPRH10               = 68  // GP High register 10\n\tPT_GPRH11               = 69  // GP High register 11\n\tPT_GPRH12               = 70  // GP High register 12\n\tPT_GPRH13               = 71  // GP High register 13\n\tPT_GPRH14               = 72  // GP High register 14\n\tPT_GPRH15               = 73  // GP High register 15\n\tPT_VR0                  = 74  // Vector register 0\n\tPT_VR1                  = 75  // Vector register 1\n\tPT_VR2                  = 76  // Vector register 2\n\tPT_VR3                  = 77  // Vector register 3\n\tPT_VR4                  = 78  // Vector register 4\n\tPT_VR5                  = 79  // Vector register 5\n\tPT_VR6                  = 80  // Vector register 6\n\tPT_VR7                  = 81  // Vector register 7\n\tPT_VR8                  = 82  // Vector register 8\n\tPT_VR9                  = 83  // Vector register 9\n\tPT_VR10                 = 84  // Vector register 10\n\tPT_VR11                 = 85  // Vector register 11\n\tPT_VR12                 = 86  // Vector register 12\n\tPT_VR13                 = 87  // Vector register 13\n\tPT_VR14                 = 88  // Vector register 14\n\tPT_VR15                 = 89  // Vector register 15\n\tPT_VR16                 = 90  // Vector register 16\n\tPT_VR17                 = 91  // Vector register 17\n\tPT_VR18                 = 92  // Vector register 18\n\tPT_VR19                 = 93  // Vector register 19\n\tPT_VR20                 = 94  // Vector register 20\n\tPT_VR21                 = 95  // Vector register 21\n\tPT_VR22                 = 96  // Vector register 22\n\tPT_VR23                 = 97  // Vector register 23\n\tPT_VR24                 = 98  // Vector register 24\n\tPT_VR25                 = 99  // Vector register 25\n\tPT_VR26                 = 100 // Vector register 26\n\tPT_VR27                 = 101 // Vector register 27\n\tPT_VR28                 = 102 // Vector register 28\n\tPT_VR29                 = 103 // Vector register 29\n\tPT_VR30                 = 104 // Vector register 30\n\tPT_VR31                 = 105 // Vector register 31\n\tPT_PSWG                 = 106 // PSWG\n\tPT_PSWG0                = 106 // Bytes 0-3\n\tPT_PSWG1                = 107 // Bytes 4-7\n\tPT_PSWG2                = 108 // Bytes 8-11 (IA high word)\n\tPT_PSWG3                = 109 // Bytes 12-15 (IA low word)\n)\n\nfunc Bpx4ptr(request int32, pid int32, addr unsafe.Pointer, data unsafe.Pointer, buffer unsafe.Pointer) (rv int32, rc int32, rn int32) {\n\tvar parms [8]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&request)\n\tparms[1] = unsafe.Pointer(&pid)\n\tparms[2] = unsafe.Pointer(&addr)\n\tparms[3] = unsafe.Pointer(&data)\n\tparms[4] = unsafe.Pointer(&buffer)\n\tparms[5] = unsafe.Pointer(&rv)\n\tparms[6] = unsafe.Pointer(&rc)\n\tparms[7] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4PTR)\n\treturn rv, rc, rn\n}\n\nfunc copyU8(val uint8, dest []uint8) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n\nfunc copyU8Arr(src, dest []uint8) int {\n\tif len(dest) < len(src) {\n\t\treturn 0\n\t}\n\tfor i, v := range src {\n\t\tdest[i] = v\n\t}\n\treturn len(src)\n}\n\nfunc copyU16(val uint16, dest []uint16) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n\nfunc copyU32(val uint32, dest []uint32) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n\nfunc copyU32Arr(src, dest []uint32) int {\n\tif len(dest) < len(src) {\n\t\treturn 0\n\t}\n\tfor i, v := range src {\n\t\tdest[i] = v\n\t}\n\treturn len(src)\n}\n\nfunc copyU64(val uint64, dest []uint64) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/bpxsvc_zos.s",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"go_asm.h\"\n#include \"textflag.h\"\n\n// function to call USS assembly language services\n//\n// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bit64env.htm\n//\n//   arg1 unsafe.Pointer array that ressembles an OS PLIST\n//\n//   arg2 function offset as in\n//       doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bpx2cr_List_of_offsets.htm\n//\n// func bpxcall(plist []unsafe.Pointer, bpx_offset int64)\n\nTEXT ·bpxcall(SB), NOSPLIT|NOFRAME, $0\n\tMOVD  plist_base+0(FP), R1  // r1 points to plist\n\tMOVD  bpx_offset+24(FP), R2 // r2 offset to BPX vector table\n\tMOVD  R14, R7               // save r14\n\tMOVD  R15, R8               // save r15\n\tMOVWZ 16(R0), R9\n\tMOVWZ 544(R9), R9\n\tMOVWZ 24(R9), R9            // call vector in r9\n\tADD   R2, R9                // add offset to vector table\n\tMOVWZ (R9), R9              // r9 points to entry point\n\tBYTE  $0x0D                 // BL R14,R9 --> basr r14,r9\n\tBYTE  $0xE9                 // clobbers 0,1,14,15\n\tMOVD  R8, R15               // restore 15\n\tJMP   R7                    // return via saved return address\n\n//   func A2e(arr [] byte)\n//   code page conversion from  819 to 1047\nTEXT ·A2e(SB), NOSPLIT|NOFRAME, $0\n\tMOVD arg_base+0(FP), R2                        // pointer to arry of characters\n\tMOVD arg_len+8(FP), R3                         // count\n\tXOR  R0, R0\n\tXOR  R1, R1\n\tBYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2))\n\n\t// ASCII -> EBCDIC conversion table:\n\tBYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03\n\tBYTE $0x37; BYTE $0x2d; BYTE $0x2e; BYTE $0x2f\n\tBYTE $0x16; BYTE $0x05; BYTE $0x15; BYTE $0x0b\n\tBYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f\n\tBYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13\n\tBYTE $0x3c; BYTE $0x3d; BYTE $0x32; BYTE $0x26\n\tBYTE $0x18; BYTE $0x19; BYTE $0x3f; BYTE $0x27\n\tBYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f\n\tBYTE $0x40; BYTE $0x5a; BYTE $0x7f; BYTE $0x7b\n\tBYTE $0x5b; BYTE $0x6c; BYTE $0x50; BYTE $0x7d\n\tBYTE $0x4d; BYTE $0x5d; BYTE $0x5c; BYTE $0x4e\n\tBYTE $0x6b; BYTE $0x60; BYTE $0x4b; BYTE $0x61\n\tBYTE $0xf0; BYTE $0xf1; BYTE $0xf2; BYTE $0xf3\n\tBYTE $0xf4; BYTE $0xf5; BYTE $0xf6; BYTE $0xf7\n\tBYTE $0xf8; BYTE $0xf9; BYTE $0x7a; BYTE $0x5e\n\tBYTE $0x4c; BYTE $0x7e; BYTE $0x6e; BYTE $0x6f\n\tBYTE $0x7c; BYTE $0xc1; BYTE $0xc2; BYTE $0xc3\n\tBYTE $0xc4; BYTE $0xc5; BYTE $0xc6; BYTE $0xc7\n\tBYTE $0xc8; BYTE $0xc9; BYTE $0xd1; BYTE $0xd2\n\tBYTE $0xd3; BYTE $0xd4; BYTE $0xd5; BYTE $0xd6\n\tBYTE $0xd7; BYTE $0xd8; BYTE $0xd9; BYTE $0xe2\n\tBYTE $0xe3; BYTE $0xe4; BYTE $0xe5; BYTE $0xe6\n\tBYTE $0xe7; BYTE $0xe8; BYTE $0xe9; BYTE $0xad\n\tBYTE $0xe0; BYTE $0xbd; BYTE $0x5f; BYTE $0x6d\n\tBYTE $0x79; BYTE $0x81; BYTE $0x82; BYTE $0x83\n\tBYTE $0x84; BYTE $0x85; BYTE $0x86; BYTE $0x87\n\tBYTE $0x88; BYTE $0x89; BYTE $0x91; BYTE $0x92\n\tBYTE $0x93; BYTE $0x94; BYTE $0x95; BYTE $0x96\n\tBYTE $0x97; BYTE $0x98; BYTE $0x99; BYTE $0xa2\n\tBYTE $0xa3; BYTE $0xa4; BYTE $0xa5; BYTE $0xa6\n\tBYTE $0xa7; BYTE $0xa8; BYTE $0xa9; BYTE $0xc0\n\tBYTE $0x4f; BYTE $0xd0; BYTE $0xa1; BYTE $0x07\n\tBYTE $0x20; BYTE $0x21; BYTE $0x22; BYTE $0x23\n\tBYTE $0x24; BYTE $0x25; BYTE $0x06; BYTE $0x17\n\tBYTE $0x28; BYTE $0x29; BYTE $0x2a; BYTE $0x2b\n\tBYTE $0x2c; BYTE $0x09; BYTE $0x0a; BYTE $0x1b\n\tBYTE $0x30; BYTE $0x31; BYTE $0x1a; BYTE $0x33\n\tBYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x08\n\tBYTE $0x38; BYTE $0x39; BYTE $0x3a; BYTE $0x3b\n\tBYTE $0x04; BYTE $0x14; BYTE $0x3e; BYTE $0xff\n\tBYTE $0x41; BYTE $0xaa; BYTE $0x4a; BYTE $0xb1\n\tBYTE $0x9f; BYTE $0xb2; BYTE $0x6a; BYTE $0xb5\n\tBYTE $0xbb; BYTE $0xb4; BYTE $0x9a; BYTE $0x8a\n\tBYTE $0xb0; BYTE $0xca; BYTE $0xaf; BYTE $0xbc\n\tBYTE $0x90; BYTE $0x8f; BYTE $0xea; BYTE $0xfa\n\tBYTE $0xbe; BYTE $0xa0; BYTE $0xb6; BYTE $0xb3\n\tBYTE $0x9d; BYTE $0xda; BYTE $0x9b; BYTE $0x8b\n\tBYTE $0xb7; BYTE $0xb8; BYTE $0xb9; BYTE $0xab\n\tBYTE $0x64; BYTE $0x65; BYTE $0x62; BYTE $0x66\n\tBYTE $0x63; BYTE $0x67; BYTE $0x9e; BYTE $0x68\n\tBYTE $0x74; BYTE $0x71; BYTE $0x72; BYTE $0x73\n\tBYTE $0x78; BYTE $0x75; BYTE $0x76; BYTE $0x77\n\tBYTE $0xac; BYTE $0x69; BYTE $0xed; BYTE $0xee\n\tBYTE $0xeb; BYTE $0xef; BYTE $0xec; BYTE $0xbf\n\tBYTE $0x80; BYTE $0xfd; BYTE $0xfe; BYTE $0xfb\n\tBYTE $0xfc; BYTE $0xba; BYTE $0xae; BYTE $0x59\n\tBYTE $0x44; BYTE $0x45; BYTE $0x42; BYTE $0x46\n\tBYTE $0x43; BYTE $0x47; BYTE $0x9c; BYTE $0x48\n\tBYTE $0x54; BYTE $0x51; BYTE $0x52; BYTE $0x53\n\tBYTE $0x58; BYTE $0x55; BYTE $0x56; BYTE $0x57\n\tBYTE $0x8c; BYTE $0x49; BYTE $0xcd; BYTE $0xce\n\tBYTE $0xcb; BYTE $0xcf; BYTE $0xcc; BYTE $0xe1\n\tBYTE $0x70; BYTE $0xdd; BYTE $0xde; BYTE $0xdb\n\tBYTE $0xdc; BYTE $0x8d; BYTE $0x8e; BYTE $0xdf\n\nretry:\n\tWORD $0xB9931022 // TROO 2,2,b'0001'\n\tBVS  retry\n\tRET\n\n//   func e2a(arr [] byte)\n//   code page conversion from  1047 to 819\nTEXT ·E2a(SB), NOSPLIT|NOFRAME, $0\n\tMOVD arg_base+0(FP), R2                        // pointer to arry of characters\n\tMOVD arg_len+8(FP), R3                         // count\n\tXOR  R0, R0\n\tXOR  R1, R1\n\tBYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2))\n\n\t// EBCDIC -> ASCII conversion table:\n\tBYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03\n\tBYTE $0x9c; BYTE $0x09; BYTE $0x86; BYTE $0x7f\n\tBYTE $0x97; BYTE $0x8d; BYTE $0x8e; BYTE $0x0b\n\tBYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f\n\tBYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13\n\tBYTE $0x9d; BYTE $0x0a; BYTE $0x08; BYTE $0x87\n\tBYTE $0x18; BYTE $0x19; BYTE $0x92; BYTE $0x8f\n\tBYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f\n\tBYTE $0x80; BYTE $0x81; BYTE $0x82; BYTE $0x83\n\tBYTE $0x84; BYTE $0x85; BYTE $0x17; BYTE $0x1b\n\tBYTE $0x88; BYTE $0x89; BYTE $0x8a; BYTE $0x8b\n\tBYTE $0x8c; BYTE $0x05; BYTE $0x06; BYTE $0x07\n\tBYTE $0x90; BYTE $0x91; BYTE $0x16; BYTE $0x93\n\tBYTE $0x94; BYTE $0x95; BYTE $0x96; BYTE $0x04\n\tBYTE $0x98; BYTE $0x99; BYTE $0x9a; BYTE $0x9b\n\tBYTE $0x14; BYTE $0x15; BYTE $0x9e; BYTE $0x1a\n\tBYTE $0x20; BYTE $0xa0; BYTE $0xe2; BYTE $0xe4\n\tBYTE $0xe0; BYTE $0xe1; BYTE $0xe3; BYTE $0xe5\n\tBYTE $0xe7; BYTE $0xf1; BYTE $0xa2; BYTE $0x2e\n\tBYTE $0x3c; BYTE $0x28; BYTE $0x2b; BYTE $0x7c\n\tBYTE $0x26; BYTE $0xe9; BYTE $0xea; BYTE $0xeb\n\tBYTE $0xe8; BYTE $0xed; BYTE $0xee; BYTE $0xef\n\tBYTE $0xec; BYTE $0xdf; BYTE $0x21; BYTE $0x24\n\tBYTE $0x2a; BYTE $0x29; BYTE $0x3b; BYTE $0x5e\n\tBYTE $0x2d; BYTE $0x2f; BYTE $0xc2; BYTE $0xc4\n\tBYTE $0xc0; BYTE $0xc1; BYTE $0xc3; BYTE $0xc5\n\tBYTE $0xc7; BYTE $0xd1; BYTE $0xa6; BYTE $0x2c\n\tBYTE $0x25; BYTE $0x5f; BYTE $0x3e; BYTE $0x3f\n\tBYTE $0xf8; BYTE $0xc9; BYTE $0xca; BYTE $0xcb\n\tBYTE $0xc8; BYTE $0xcd; BYTE $0xce; BYTE $0xcf\n\tBYTE $0xcc; BYTE $0x60; BYTE $0x3a; BYTE $0x23\n\tBYTE $0x40; BYTE $0x27; BYTE $0x3d; BYTE $0x22\n\tBYTE $0xd8; BYTE $0x61; BYTE $0x62; BYTE $0x63\n\tBYTE $0x64; BYTE $0x65; BYTE $0x66; BYTE $0x67\n\tBYTE $0x68; BYTE $0x69; BYTE $0xab; BYTE $0xbb\n\tBYTE $0xf0; BYTE $0xfd; BYTE $0xfe; BYTE $0xb1\n\tBYTE $0xb0; BYTE $0x6a; BYTE $0x6b; BYTE $0x6c\n\tBYTE $0x6d; BYTE $0x6e; BYTE $0x6f; BYTE $0x70\n\tBYTE $0x71; BYTE $0x72; BYTE $0xaa; BYTE $0xba\n\tBYTE $0xe6; BYTE $0xb8; BYTE $0xc6; BYTE $0xa4\n\tBYTE $0xb5; BYTE $0x7e; BYTE $0x73; BYTE $0x74\n\tBYTE $0x75; BYTE $0x76; BYTE $0x77; BYTE $0x78\n\tBYTE $0x79; BYTE $0x7a; BYTE $0xa1; BYTE $0xbf\n\tBYTE $0xd0; BYTE $0x5b; BYTE $0xde; BYTE $0xae\n\tBYTE $0xac; BYTE $0xa3; BYTE $0xa5; BYTE $0xb7\n\tBYTE $0xa9; BYTE $0xa7; BYTE $0xb6; BYTE $0xbc\n\tBYTE $0xbd; BYTE $0xbe; BYTE $0xdd; BYTE $0xa8\n\tBYTE $0xaf; BYTE $0x5d; BYTE $0xb4; BYTE $0xd7\n\tBYTE $0x7b; BYTE $0x41; BYTE $0x42; BYTE $0x43\n\tBYTE $0x44; BYTE $0x45; BYTE $0x46; BYTE $0x47\n\tBYTE $0x48; BYTE $0x49; BYTE $0xad; BYTE $0xf4\n\tBYTE $0xf6; BYTE $0xf2; BYTE $0xf3; BYTE $0xf5\n\tBYTE $0x7d; BYTE $0x4a; BYTE $0x4b; BYTE $0x4c\n\tBYTE $0x4d; BYTE $0x4e; BYTE $0x4f; BYTE $0x50\n\tBYTE $0x51; BYTE $0x52; BYTE $0xb9; BYTE $0xfb\n\tBYTE $0xfc; BYTE $0xf9; BYTE $0xfa; BYTE $0xff\n\tBYTE $0x5c; BYTE $0xf7; BYTE $0x53; BYTE $0x54\n\tBYTE $0x55; BYTE $0x56; BYTE $0x57; BYTE $0x58\n\tBYTE $0x59; BYTE $0x5a; BYTE $0xb2; BYTE $0xd4\n\tBYTE $0xd6; BYTE $0xd2; BYTE $0xd3; BYTE $0xd5\n\tBYTE $0x30; BYTE $0x31; BYTE $0x32; BYTE $0x33\n\tBYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x37\n\tBYTE $0x38; BYTE $0x39; BYTE $0xb3; BYTE $0xdb\n\tBYTE $0xdc; BYTE $0xd9; BYTE $0xda; BYTE $0x9f\n\nretry:\n\tWORD $0xB9931022 // TROO 2,2,b'0001'\n\tBVS  retry\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/cap_freebsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build freebsd\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c\n\nconst (\n\t// This is the version of CapRights this package understands. See C implementation for parallels.\n\tcapRightsGoVersion = CAP_RIGHTS_VERSION_00\n\tcapArSizeMin       = CAP_RIGHTS_VERSION_00 + 2\n\tcapArSizeMax       = capRightsGoVersion + 2\n)\n\nvar (\n\tbit2idx = []int{\n\t\t-1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,\n\t\t4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n\t}\n)\n\nfunc capidxbit(right uint64) int {\n\treturn int((right >> 57) & 0x1f)\n}\n\nfunc rightToIndex(right uint64) (int, error) {\n\tidx := capidxbit(right)\n\tif idx < 0 || idx >= len(bit2idx) {\n\t\treturn -2, fmt.Errorf(\"index for right 0x%x out of range\", right)\n\t}\n\treturn bit2idx[idx], nil\n}\n\nfunc caprver(right uint64) int {\n\treturn int(right >> 62)\n}\n\nfunc capver(rights *CapRights) int {\n\treturn caprver(rights.Rights[0])\n}\n\nfunc caparsize(rights *CapRights) int {\n\treturn capver(rights) + 2\n}\n\n// CapRightsSet sets the permissions in setrights in rights.\nfunc CapRightsSet(rights *CapRights, setrights []uint64) error {\n\t// This is essentially a copy of cap_rights_vset()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range setrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch\")\n\t\t}\n\t\trights.Rights[i] |= right\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch (after assign)\")\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// CapRightsClear clears the permissions in clearrights from rights.\nfunc CapRightsClear(rights *CapRights, clearrights []uint64) error {\n\t// This is essentially a copy of cap_rights_vclear()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range clearrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch\")\n\t\t}\n\t\trights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF)\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch (after assign)\")\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// CapRightsIsSet checks whether all the permissions in setrights are present in rights.\nfunc CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) {\n\t// This is essentially a copy of cap_rights_is_vset()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn false, fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn false, errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range setrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn false, errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn false, errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn false, errors.New(\"index mismatch\")\n\t\t}\n\t\tif (rights.Rights[i] & right) != right {\n\t\t\treturn false, nil\n\t\t}\n\t}\n\n\treturn true, nil\n}\n\nfunc capright(idx uint64, bit uint64) uint64 {\n\treturn ((1 << (57 + idx)) | bit)\n}\n\n// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights.\n// See man cap_rights_init(3) and rights(4).\nfunc CapRightsInit(rights []uint64) (*CapRights, error) {\n\tvar r CapRights\n\tr.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0)\n\tr.Rights[1] = capright(1, 0)\n\n\terr := CapRightsSet(&r, rights)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &r, nil\n}\n\n// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights.\n// The capability rights on fd can never be increased by CapRightsLimit.\n// See man cap_rights_limit(2) and rights(4).\nfunc CapRightsLimit(fd uintptr, rights *CapRights) error {\n\treturn capRightsLimit(int(fd), rights)\n}\n\n// CapRightsGet returns a CapRights structure containing the operations permitted on fd.\n// See man cap_rights_get(3) and rights(4).\nfunc CapRightsGet(fd uintptr) (*CapRights, error) {\n\tr, err := CapRightsInit(nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = capRightsGet(capRightsGoVersion, int(fd), r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn r, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/constants.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nconst (\n\tR_OK = 0x4\n\tW_OK = 0x2\n\tX_OK = 0x1\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_aix_ppc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used by AIX.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 16) & 0xffff)\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff)\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn uint64(((major) << 16) | (minor))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_aix_ppc64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc64\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used AIX.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x3fffffff00000000) >> 32)\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32((dev & 0x00000000ffffffff) >> 0)\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tvar DEVNO64 uint64\n\tDEVNO64 = 0x8000000000000000\n\treturn ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_darwin.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in Darwin's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of a Darwin device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 24) & 0xff)\n}\n\n// Minor returns the minor component of a Darwin device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffffff)\n}\n\n// Mkdev returns a Darwin device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 24) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_dragonfly.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in Dragonfly's sys/types.h header.\n//\n// The information below is extracted and adapted from sys/types.h:\n//\n// Minor gives a cookie instead of an index since in order to avoid changing the\n// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for\n// devices that don't use them.\n\npackage unix\n\n// Major returns the major component of a DragonFlyBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 8) & 0xff)\n}\n\n// Minor returns the minor component of a DragonFlyBSD device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff00ff)\n}\n\n// Mkdev returns a DragonFlyBSD device number generated from the given major and\n// minor components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 8) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_freebsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in FreeBSD's sys/types.h header.\n//\n// The information below is extracted and adapted from sys/types.h:\n//\n// Minor gives a cookie instead of an index since in order to avoid changing the\n// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for\n// devices that don't use them.\n\npackage unix\n\n// Major returns the major component of a FreeBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 8) & 0xff)\n}\n\n// Minor returns the minor component of a FreeBSD device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff00ff)\n}\n\n// Mkdev returns a FreeBSD device number generated from the given major and\n// minor components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 8) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_linux.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used by the Linux kernel and glibc.\n//\n// The information below is extracted and adapted from bits/sysmacros.h in the\n// glibc sources:\n//\n// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's\n// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major\n// number and m is a hex digit of the minor number. This is backward compatible\n// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also\n// backward compatible with the Linux kernel, which for some architectures uses\n// 32-bit dev_t, encoded as mmmM MMmm.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\tmajor := uint32((dev & 0x00000000000fff00) >> 8)\n\tmajor |= uint32((dev & 0xfffff00000000000) >> 32)\n\treturn major\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x00000000000000ff) >> 0)\n\tminor |= uint32((dev & 0x00000ffffff00000) >> 12)\n\treturn minor\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) & 0x00000fff) << 8\n\tdev |= (uint64(major) & 0xfffff000) << 32\n\tdev |= (uint64(minor) & 0x000000ff) << 0\n\tdev |= (uint64(minor) & 0xffffff00) << 12\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_netbsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in NetBSD's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of a NetBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x000fff00) >> 8)\n}\n\n// Minor returns the minor component of a NetBSD device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x000000ff) >> 0)\n\tminor |= uint32((dev & 0xfff00000) >> 12)\n\treturn minor\n}\n\n// Mkdev returns a NetBSD device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) << 8) & 0x000fff00\n\tdev |= (uint64(minor) << 12) & 0xfff00000\n\tdev |= (uint64(minor) << 0) & 0x000000ff\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_openbsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in OpenBSD's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of an OpenBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x0000ff00) >> 8)\n}\n\n// Minor returns the minor component of an OpenBSD device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x000000ff) >> 0)\n\tminor |= uint32((dev & 0xffff0000) >> 8)\n\treturn minor\n}\n\n// Mkdev returns an OpenBSD device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) << 8) & 0x0000ff00\n\tdev |= (uint64(minor) << 8) & 0xffff0000\n\tdev |= (uint64(minor) << 0) & 0x000000ff\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_zos.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used by z/OS.\n//\n// The information below is extracted and adapted from <sys/stat.h> macros.\n\npackage unix\n\n// Major returns the major component of a z/OS device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 16) & 0x0000FFFF)\n}\n\n// Minor returns the minor component of a z/OS device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0x0000FFFF)\n}\n\n// Mkdev returns a z/OS device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 16) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dirent.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport \"unsafe\"\n\n// readInt returns the size-bytes unsigned integer in native byte order at offset off.\nfunc readInt(b []byte, off, size uintptr) (u uint64, ok bool) {\n\tif len(b) < int(off+size) {\n\t\treturn 0, false\n\t}\n\tif isBigEndian {\n\t\treturn readIntBE(b[off:], size), true\n\t}\n\treturn readIntLE(b[off:], size), true\n}\n\nfunc readIntBE(b []byte, size uintptr) uint64 {\n\tswitch size {\n\tcase 1:\n\t\treturn uint64(b[0])\n\tcase 2:\n\t\t_ = b[1] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[1]) | uint64(b[0])<<8\n\tcase 4:\n\t\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24\n\tcase 8:\n\t\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |\n\t\t\tuint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56\n\tdefault:\n\t\tpanic(\"syscall: readInt with unsupported size\")\n\t}\n}\n\nfunc readIntLE(b []byte, size uintptr) uint64 {\n\tswitch size {\n\tcase 1:\n\t\treturn uint64(b[0])\n\tcase 2:\n\t\t_ = b[1] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8\n\tcase 4:\n\t\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24\n\tcase 8:\n\t\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |\n\t\t\tuint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\tdefault:\n\t\tpanic(\"syscall: readInt with unsupported size\")\n\t}\n}\n\n// ParseDirent parses up to max directory entries in buf,\n// appending the names to names. It returns the number of\n// bytes consumed from buf, the number of entries added\n// to names, and the new names slice.\nfunc ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) {\n\toriglen := len(buf)\n\tcount = 0\n\tfor max != 0 && len(buf) > 0 {\n\t\treclen, ok := direntReclen(buf)\n\t\tif !ok || reclen > uint64(len(buf)) {\n\t\t\treturn origlen, count, names\n\t\t}\n\t\trec := buf[:reclen]\n\t\tbuf = buf[reclen:]\n\t\tino, ok := direntIno(rec)\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tif ino == 0 { // File absent in directory.\n\t\t\tcontinue\n\t\t}\n\t\tconst namoff = uint64(unsafe.Offsetof(Dirent{}.Name))\n\t\tnamlen, ok := direntNamlen(rec)\n\t\tif !ok || namoff+namlen > uint64(len(rec)) {\n\t\t\tbreak\n\t\t}\n\t\tname := rec[namoff : namoff+namlen]\n\t\tfor i, c := range name {\n\t\t\tif c == 0 {\n\t\t\t\tname = name[:i]\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Check for useless names before allocating a string.\n\t\tif string(name) == \".\" || string(name) == \"..\" {\n\t\t\tcontinue\n\t\t}\n\t\tmax--\n\t\tcount++\n\t\tnames = append(names, string(name))\n\t}\n\treturn origlen - len(buf), count, names\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/endian_big.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n//\n//go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64\n\npackage unix\n\nconst isBigEndian = true\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/endian_little.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n//\n//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh\n\npackage unix\n\nconst isBigEndian = false\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/env_unix.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// Unix environment variables.\n\npackage unix\n\nimport \"syscall\"\n\nfunc Getenv(key string) (value string, found bool) {\n\treturn syscall.Getenv(key)\n}\n\nfunc Setenv(key, value string) error {\n\treturn syscall.Setenv(key, value)\n}\n\nfunc Clearenv() {\n\tsyscall.Clearenv()\n}\n\nfunc Environ() []string {\n\treturn syscall.Environ()\n}\n\nfunc Unsetenv(key string) error {\n\treturn syscall.Unsetenv(key)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build dragonfly || freebsd || linux || netbsd\n\npackage unix\n\nimport \"unsafe\"\n\n// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux\n// systems by fcntl_linux_32bit.go to be SYS_FCNTL64.\nvar fcntl64Syscall uintptr = SYS_FCNTL\n\nfunc fcntl(fd int, cmd, arg int) (int, error) {\n\tvalptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tvar err error\n\tif errno != 0 {\n\t\terr = errno\n\t}\n\treturn int(valptr), err\n}\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\treturn fcntl(int(fd), cmd, arg)\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk)))\n\tif errno == 0 {\n\t\treturn nil\n\t}\n\treturn errno\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl_darwin.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport \"unsafe\"\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\treturn fcntl(int(fd), cmd, arg)\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))\n\treturn err\n}\n\n// FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command.\nfunc FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error {\n\t_, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore))))\n\treturn err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc)\n\npackage unix\n\nfunc init() {\n\t// On 32-bit Linux systems, the fcntl syscall that matches Go's\n\t// Flock_t type is SYS_FCNTL64, not SYS_FCNTL.\n\tfcntl64Syscall = SYS_FCNTL64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fdset.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\n// Set adds fd to the set fds.\nfunc (fds *FdSet) Set(fd int) {\n\tfds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS))\n}\n\n// Clear removes fd from the set fds.\nfunc (fds *FdSet) Clear(fd int) {\n\tfds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS))\n}\n\n// IsSet returns whether fd is in the set fds.\nfunc (fds *FdSet) IsSet(fd int) bool {\n\treturn fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0\n}\n\n// Zero clears the set fds.\nfunc (fds *FdSet) Zero() {\n\tfor i := range fds.Bits {\n\t\tfds.Bits[i] = 0\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gccgo && !aix && !hurd\n\npackage unix\n\nimport \"syscall\"\n\n// We can't use the gc-syntax .s files for gccgo. On the plus side\n// much of the functionality can be written directly in Go.\n\nfunc realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr)\n\nfunc realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr)\n\nfunc SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {\n\tsyscall.Entersyscall()\n\tr := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0\n}\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {\n\tr := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\treturn r, 0\n}\n\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tr, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)\n\treturn r, 0, syscall.Errno(errno)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo_c.c",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gccgo && !aix && !hurd\n\n#include <errno.h>\n#include <stdint.h>\n#include <unistd.h>\n\n#define _STRINGIFY2_(x) #x\n#define _STRINGIFY_(x) _STRINGIFY2_(x)\n#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__)\n\n// Call syscall from C code because the gccgo support for calling from\n// Go to C does not support varargs functions.\n\nstruct ret {\n\tuintptr_t r;\n\tuintptr_t err;\n};\n\nstruct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n  __asm__(GOSYM_PREFIX GOPKGPATH \".realSyscall\");\n\nstruct ret\ngccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n{\n\tstruct ret r;\n\n\terrno = 0;\n\tr.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n\tr.err = errno;\n\treturn r;\n}\n\nuintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n  __asm__(GOSYM_PREFIX GOPKGPATH \".realSyscallNoError\");\n\nuintptr_t\ngccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n{\n\treturn syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gccgo && linux && amd64\n\npackage unix\n\nimport \"syscall\"\n\n//extern gettimeofday\nfunc realGettimeofday(*Timeval, *byte) int32\n\nfunc gettimeofday(tv *Timeval) (err syscall.Errno) {\n\tr := realGettimeofday(tv, nil)\n\tif r < 0 {\n\t\treturn syscall.GetErrno()\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ifreq_linux.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// Helpers for dealing with ifreq since it contains a union and thus requires a\n// lot of unsafe.Pointer casts to use properly.\n\n// An Ifreq is a type-safe wrapper around the raw ifreq struct. An Ifreq\n// contains an interface name and a union of arbitrary data which can be\n// accessed using the Ifreq's methods. To create an Ifreq, use the NewIfreq\n// function.\n//\n// Use the Name method to access the stored interface name. The union data\n// fields can be get and set using the following methods:\n//   - Uint16/SetUint16: flags\n//   - Uint32/SetUint32: ifindex, metric, mtu\ntype Ifreq struct{ raw ifreq }\n\n// NewIfreq creates an Ifreq with the input network interface name after\n// validating the name does not exceed IFNAMSIZ-1 (trailing NULL required)\n// bytes.\nfunc NewIfreq(name string) (*Ifreq, error) {\n\t// Leave room for terminating NULL byte.\n\tif len(name) >= IFNAMSIZ {\n\t\treturn nil, EINVAL\n\t}\n\n\tvar ifr ifreq\n\tcopy(ifr.Ifrn[:], name)\n\n\treturn &Ifreq{raw: ifr}, nil\n}\n\n// TODO(mdlayher): get/set methods for hardware address sockaddr, char array, etc.\n\n// Name returns the interface name associated with the Ifreq.\nfunc (ifr *Ifreq) Name() string {\n\treturn ByteSliceToString(ifr.raw.Ifrn[:])\n}\n\n// According to netdevice(7), only AF_INET addresses are returned for numerous\n// sockaddr ioctls. For convenience, we expose these as Inet4Addr since the Port\n// field and other data is always empty.\n\n// Inet4Addr returns the Ifreq union data from an embedded sockaddr as a C\n// in_addr/Go []byte (4-byte IPv4 address) value. If the sockaddr family is not\n// AF_INET, an error is returned.\nfunc (ifr *Ifreq) Inet4Addr() ([]byte, error) {\n\traw := *(*RawSockaddrInet4)(unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0]))\n\tif raw.Family != AF_INET {\n\t\t// Cannot safely interpret raw.Addr bytes as an IPv4 address.\n\t\treturn nil, EINVAL\n\t}\n\n\treturn raw.Addr[:], nil\n}\n\n// SetInet4Addr sets a C in_addr/Go []byte (4-byte IPv4 address) value in an\n// embedded sockaddr within the Ifreq's union data. v must be 4 bytes in length\n// or an error will be returned.\nfunc (ifr *Ifreq) SetInet4Addr(v []byte) error {\n\tif len(v) != 4 {\n\t\treturn EINVAL\n\t}\n\n\tvar addr [4]byte\n\tcopy(addr[:], v)\n\n\tifr.clear()\n\t*(*RawSockaddrInet4)(\n\t\tunsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0]),\n\t) = RawSockaddrInet4{\n\t\t// Always set IP family as ioctls would require it anyway.\n\t\tFamily: AF_INET,\n\t\tAddr:   addr,\n\t}\n\n\treturn nil\n}\n\n// Uint16 returns the Ifreq union data as a C short/Go uint16 value.\nfunc (ifr *Ifreq) Uint16() uint16 {\n\treturn *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0]))\n}\n\n// SetUint16 sets a C short/Go uint16 value as the Ifreq's union data.\nfunc (ifr *Ifreq) SetUint16(v uint16) {\n\tifr.clear()\n\t*(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) = v\n}\n\n// Uint32 returns the Ifreq union data as a C int/Go uint32 value.\nfunc (ifr *Ifreq) Uint32() uint32 {\n\treturn *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0]))\n}\n\n// SetUint32 sets a C int/Go uint32 value as the Ifreq's union data.\nfunc (ifr *Ifreq) SetUint32(v uint32) {\n\tifr.clear()\n\t*(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) = v\n}\n\n// clear zeroes the ifreq's union field to prevent trailing garbage data from\n// being sent to the kernel if an ifreq is reused.\nfunc (ifr *Ifreq) clear() {\n\tfor i := range ifr.raw.Ifru {\n\t\tifr.raw.Ifru[i] = 0\n\t}\n}\n\n// TODO(mdlayher): export as IfreqData? For now we can provide helpers such as\n// IoctlGetEthtoolDrvinfo which use these APIs under the hood.\n\n// An ifreqData is an Ifreq which carries pointer data. To produce an ifreqData,\n// use the Ifreq.withData method.\ntype ifreqData struct {\n\tname [IFNAMSIZ]byte\n\t// A type separate from ifreq is required in order to comply with the\n\t// unsafe.Pointer rules since the \"pointer-ness\" of data would not be\n\t// preserved if it were cast into the byte array of a raw ifreq.\n\tdata unsafe.Pointer\n\t// Pad to the same size as ifreq.\n\t_ [len(ifreq{}.Ifru) - SizeofPtr]byte\n}\n\n// withData produces an ifreqData with the pointer p set for ioctls which require\n// arbitrary pointer data.\nfunc (ifr Ifreq) withData(p unsafe.Pointer) ifreqData {\n\treturn ifreqData{\n\t\tname: ifr.raw.Ifrn,\n\t\tdata: p,\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_linux.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport \"unsafe\"\n\n// IoctlRetInt performs an ioctl operation specified by req on a device\n// associated with opened file descriptor fd, and returns a non-negative\n// integer that is returned by the ioctl syscall.\nfunc IoctlRetInt(fd int, req uint) (int, error) {\n\tret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(ret), nil\n}\n\nfunc IoctlGetUint32(fd int, req uint) (uint32, error) {\n\tvar value uint32\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetRTCTime(fd int) (*RTCTime, error) {\n\tvar value RTCTime\n\terr := ioctlPtr(fd, RTC_RD_TIME, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlSetRTCTime(fd int, value *RTCTime) error {\n\treturn ioctlPtr(fd, RTC_SET_TIME, unsafe.Pointer(value))\n}\n\nfunc IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) {\n\tvar value RTCWkAlrm\n\terr := ioctlPtr(fd, RTC_WKALM_RD, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error {\n\treturn ioctlPtr(fd, RTC_WKALM_SET, unsafe.Pointer(value))\n}\n\n// IoctlGetEthtoolDrvinfo fetches ethtool driver information for the network\n// device specified by ifname.\nfunc IoctlGetEthtoolDrvinfo(fd int, ifname string) (*EthtoolDrvinfo, error) {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue := EthtoolDrvinfo{Cmd: ETHTOOL_GDRVINFO}\n\tifrd := ifr.withData(unsafe.Pointer(&value))\n\n\terr = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd)\n\treturn &value, err\n}\n\n// IoctlGetWatchdogInfo fetches information about a watchdog device from the\n// Linux watchdog API. For more information, see:\n// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html.\nfunc IoctlGetWatchdogInfo(fd int) (*WatchdogInfo, error) {\n\tvar value WatchdogInfo\n\terr := ioctlPtr(fd, WDIOC_GETSUPPORT, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlWatchdogKeepalive issues a keepalive ioctl to a watchdog device. For\n// more information, see:\n// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html.\nfunc IoctlWatchdogKeepalive(fd int) error {\n\t// arg is ignored and not a pointer, so ioctl is fine instead of ioctlPtr.\n\treturn ioctl(fd, WDIOC_KEEPALIVE, 0)\n}\n\n// IoctlFileCloneRange performs an FICLONERANGE ioctl operation to clone the\n// range of data conveyed in value to the file associated with the file\n// descriptor destFd. See the ioctl_ficlonerange(2) man page for details.\nfunc IoctlFileCloneRange(destFd int, value *FileCloneRange) error {\n\treturn ioctlPtr(destFd, FICLONERANGE, unsafe.Pointer(value))\n}\n\n// IoctlFileClone performs an FICLONE ioctl operation to clone the entire file\n// associated with the file description srcFd to the file associated with the\n// file descriptor destFd. See the ioctl_ficlone(2) man page for details.\nfunc IoctlFileClone(destFd, srcFd int) error {\n\treturn ioctl(destFd, FICLONE, uintptr(srcFd))\n}\n\ntype FileDedupeRange struct {\n\tSrc_offset uint64\n\tSrc_length uint64\n\tReserved1  uint16\n\tReserved2  uint32\n\tInfo       []FileDedupeRangeInfo\n}\n\ntype FileDedupeRangeInfo struct {\n\tDest_fd       int64\n\tDest_offset   uint64\n\tBytes_deduped uint64\n\tStatus        int32\n\tReserved      uint32\n}\n\n// IoctlFileDedupeRange performs an FIDEDUPERANGE ioctl operation to share the\n// range of data conveyed in value from the file associated with the file\n// descriptor srcFd to the value.Info destinations. See the\n// ioctl_fideduperange(2) man page for details.\nfunc IoctlFileDedupeRange(srcFd int, value *FileDedupeRange) error {\n\tbuf := make([]byte, SizeofRawFileDedupeRange+\n\t\tlen(value.Info)*SizeofRawFileDedupeRangeInfo)\n\trawrange := (*RawFileDedupeRange)(unsafe.Pointer(&buf[0]))\n\trawrange.Src_offset = value.Src_offset\n\trawrange.Src_length = value.Src_length\n\trawrange.Dest_count = uint16(len(value.Info))\n\trawrange.Reserved1 = value.Reserved1\n\trawrange.Reserved2 = value.Reserved2\n\n\tfor i := range value.Info {\n\t\trawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer(\n\t\t\tuintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) +\n\t\t\t\tuintptr(i*SizeofRawFileDedupeRangeInfo)))\n\t\trawinfo.Dest_fd = value.Info[i].Dest_fd\n\t\trawinfo.Dest_offset = value.Info[i].Dest_offset\n\t\trawinfo.Bytes_deduped = value.Info[i].Bytes_deduped\n\t\trawinfo.Status = value.Info[i].Status\n\t\trawinfo.Reserved = value.Info[i].Reserved\n\t}\n\n\terr := ioctlPtr(srcFd, FIDEDUPERANGE, unsafe.Pointer(&buf[0]))\n\n\t// Output\n\tfor i := range value.Info {\n\t\trawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer(\n\t\t\tuintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) +\n\t\t\t\tuintptr(i*SizeofRawFileDedupeRangeInfo)))\n\t\tvalue.Info[i].Dest_fd = rawinfo.Dest_fd\n\t\tvalue.Info[i].Dest_offset = rawinfo.Dest_offset\n\t\tvalue.Info[i].Bytes_deduped = rawinfo.Bytes_deduped\n\t\tvalue.Info[i].Status = rawinfo.Status\n\t\tvalue.Info[i].Reserved = rawinfo.Reserved\n\t}\n\n\treturn err\n}\n\nfunc IoctlHIDGetDesc(fd int, value *HIDRawReportDescriptor) error {\n\treturn ioctlPtr(fd, HIDIOCGRDESC, unsafe.Pointer(value))\n}\n\nfunc IoctlHIDGetRawInfo(fd int) (*HIDRawDevInfo, error) {\n\tvar value HIDRawDevInfo\n\terr := ioctlPtr(fd, HIDIOCGRAWINFO, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlHIDGetRawName(fd int) (string, error) {\n\tvar value [_HIDIOCGRAWNAME_LEN]byte\n\terr := ioctlPtr(fd, _HIDIOCGRAWNAME, unsafe.Pointer(&value[0]))\n\treturn ByteSliceToString(value[:]), err\n}\n\nfunc IoctlHIDGetRawPhys(fd int) (string, error) {\n\tvar value [_HIDIOCGRAWPHYS_LEN]byte\n\terr := ioctlPtr(fd, _HIDIOCGRAWPHYS, unsafe.Pointer(&value[0]))\n\treturn ByteSliceToString(value[:]), err\n}\n\nfunc IoctlHIDGetRawUniq(fd int) (string, error) {\n\tvar value [_HIDIOCGRAWUNIQ_LEN]byte\n\terr := ioctlPtr(fd, _HIDIOCGRAWUNIQ, unsafe.Pointer(&value[0]))\n\treturn ByteSliceToString(value[:]), err\n}\n\n// IoctlIfreq performs an ioctl using an Ifreq structure for input and/or\n// output. See the netdevice(7) man page for details.\nfunc IoctlIfreq(fd int, req uint, value *Ifreq) error {\n\t// It is possible we will add more fields to *Ifreq itself later to prevent\n\t// misuse, so pass the raw *ifreq directly.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&value.raw))\n}\n\n// TODO(mdlayher): export if and when IfreqData is exported.\n\n// ioctlIfreqData performs an ioctl using an ifreqData structure for input\n// and/or output. See the netdevice(7) man page for details.\nfunc ioctlIfreqData(fd int, req uint, value *ifreqData) error {\n\t// The memory layout of IfreqData (type-safe) and ifreq (not type-safe) are\n\t// identical so pass *IfreqData directly.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlKCMClone attaches a new file descriptor to a multiplexor by cloning an\n// existing KCM socket, returning a structure containing the file descriptor of\n// the new socket.\nfunc IoctlKCMClone(fd int) (*KCMClone, error) {\n\tvar info KCMClone\n\tif err := ioctlPtr(fd, SIOCKCMCLONE, unsafe.Pointer(&info)); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &info, nil\n}\n\n// IoctlKCMAttach attaches a TCP socket and associated BPF program file\n// descriptor to a multiplexor.\nfunc IoctlKCMAttach(fd int, info KCMAttach) error {\n\treturn ioctlPtr(fd, SIOCKCMATTACH, unsafe.Pointer(&info))\n}\n\n// IoctlKCMUnattach unattaches a TCP socket file descriptor from a multiplexor.\nfunc IoctlKCMUnattach(fd int, info KCMUnattach) error {\n\treturn ioctlPtr(fd, SIOCKCMUNATTACH, unsafe.Pointer(&info))\n}\n\n// IoctlLoopGetStatus64 gets the status of the loop device associated with the\n// file descriptor fd using the LOOP_GET_STATUS64 operation.\nfunc IoctlLoopGetStatus64(fd int) (*LoopInfo64, error) {\n\tvar value LoopInfo64\n\tif err := ioctlPtr(fd, LOOP_GET_STATUS64, unsafe.Pointer(&value)); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &value, nil\n}\n\n// IoctlLoopSetStatus64 sets the status of the loop device associated with the\n// file descriptor fd using the LOOP_SET_STATUS64 operation.\nfunc IoctlLoopSetStatus64(fd int, value *LoopInfo64) error {\n\treturn ioctlPtr(fd, LOOP_SET_STATUS64, unsafe.Pointer(value))\n}\n\n// IoctlLoopConfigure configures all loop device parameters in a single step\nfunc IoctlLoopConfigure(fd int, value *LoopConfig) error {\n\treturn ioctlPtr(fd, LOOP_CONFIGURE, unsafe.Pointer(value))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_signed.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || solaris\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req int, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetPointerInt performs an ioctl operation which sets an\n// integer value on fd, using the specified request number. The ioctl\n// argument is called with a pointer to the integer value, rather than\n// passing the integer value directly.\nfunc IoctlSetPointerInt(fd int, req int, value int) error {\n\tv := int32(value)\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&v))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req int, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value will usually be TCSETA or TIOCSETA.\nfunc IoctlSetTermios(fd int, req int, value *Termios) error {\n\t// TODO: if we get the chance, remove the req parameter.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req int) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req int) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlGetTermios(fd int, req int) (*Termios, error) {\n\tvar value Termios\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_unsigned.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req uint, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetPointerInt performs an ioctl operation which sets an\n// integer value on fd, using the specified request number. The ioctl\n// argument is called with a pointer to the integer value, rather than\n// passing the integer value directly.\nfunc IoctlSetPointerInt(fd int, req uint, value int) error {\n\tv := int32(value)\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&v))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req uint, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value will usually be TCSETA or TIOCSETA.\nfunc IoctlSetTermios(fd int, req uint, value *Termios) error {\n\t// TODO: if we get the chance, remove the req parameter.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req uint) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req uint) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlGetTermios(fd int, req uint) (*Termios, error) {\n\tvar value Termios\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_zos.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req int, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req int, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value is expected to be TCSETS, TCSETSW, or TCSETSF\nfunc IoctlSetTermios(fd int, req int, value *Termios) error {\n\tif (req != TCSETS) && (req != TCSETSW) && (req != TCSETSF) {\n\t\treturn ENOSYS\n\t}\n\terr := Tcsetattr(fd, int(req), value)\n\truntime.KeepAlive(value)\n\treturn err\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req int) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req int) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlGetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value is expected to be TCGETS\nfunc IoctlGetTermios(fd int, req int) (*Termios, error) {\n\tvar value Termios\n\tif req != TCGETS {\n\t\treturn &value, ENOSYS\n\t}\n\terr := Tcgetattr(fd, &value)\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mkall.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# This script runs or (given -n) prints suggested commands to generate files for\n# the Architecture/OS specified by the GOARCH and GOOS environment variables.\n# See README.md for more information about how the build system works.\n\nGOOSARCH=\"${GOOS}_${GOARCH}\"\n\n# defaults\nmksyscall=\"go run mksyscall.go\"\nmkerrors=\"./mkerrors.sh\"\nzerrors=\"zerrors_$GOOSARCH.go\"\nmksysctl=\"\"\nzsysctl=\"zsysctl_$GOOSARCH.go\"\nmksysnum=\nmktypes=\nmkasm=\nrun=\"sh\"\ncmd=\"\"\n\ncase \"$1\" in\n-syscalls)\n\tfor i in zsyscall*go\n\tdo\n\t\t# Run the command line that appears in the first line\n\t\t# of the generated file to regenerate it.\n\t\tsed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i\n\t\trm _$i\n\tdone\n\texit 0\n\t;;\n-n)\n\trun=\"cat\"\n\tcmd=\"echo\"\n\tshift\nesac\n\ncase \"$#\" in\n0)\n\t;;\n*)\n\techo 'usage: mkall.sh [-n]' 1>&2\n\texit 2\nesac\n\nif [[ \"$GOOS\" = \"linux\" ]]; then\n\t# Use the Docker-based build system\n\t# Files generated through docker (use $cmd so you can Ctl-C the build or run)\n\t$cmd docker build --tag generate:$GOOS $GOOS\n\t$cmd docker run --interactive --tty --volume $(cd -- \"$(dirname -- \"$0\")/..\" && pwd):/build generate:$GOOS\n\texit\nfi\n\nGOOSARCH_in=syscall_$GOOSARCH.go\ncase \"$GOOSARCH\" in\n_* | *_ | _)\n\techo 'undefined $GOOS_$GOARCH:' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\naix_ppc)\n\tmkerrors=\"$mkerrors -maix32\"\n\tmksyscall=\"go run mksyscall_aix_ppc.go -aix\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\naix_ppc64)\n\tmkerrors=\"$mkerrors -maix64\"\n\tmksyscall=\"go run mksyscall_aix_ppc64.go -aix\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\ndarwin_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\tmkasm=\"go run mkasm.go\"\n\t;;\ndarwin_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\tmkasm=\"go run mkasm.go\"\n\t;;\ndragonfly_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -dragonfly\"\n\tmksysnum=\"go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_386)\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_arm)\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -arm\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nfreebsd_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nfreebsd_riscv64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nnetbsd_386)\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32 -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nnetbsd_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nnetbsd_arm)\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -netbsd -arm\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nnetbsd_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_386)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32 -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_amd64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_arm)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -openbsd -arm -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_arm64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_mips64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_ppc64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_riscv64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nsolaris_amd64)\n\tmksyscall=\"go run mksyscall_solaris.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nillumos_amd64)\n        mksyscall=\"go run mksyscall_solaris.go\"\n\tmkerrors=\n\tmksysnum=\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\n*)\n\techo 'unrecognized $GOOS_$GOARCH: ' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\nesac\n\n(\n\tif [ -n \"$mkerrors\" ]; then echo \"$mkerrors |gofmt >$zerrors\"; fi\n\tcase \"$GOOS\" in\n\t*)\n\t\tsyscall_goos=\"syscall_$GOOS.go\"\n\t\tcase \"$GOOS\" in\n\t\tdarwin | dragonfly | freebsd | netbsd | openbsd)\n\t\t\tsyscall_goos=\"syscall_bsd.go $syscall_goos\"\n\t\t\t;;\n\t\tesac\n\t\tif [ -n \"$mksyscall\" ]; then\n\t\t\tif [ \"$GOOSARCH\" == \"aix_ppc64\" ]; then\n\t\t\t\t# aix/ppc64 script generates files instead of writing to stdin.\n\t\t\t\techo \"$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_\"$GOOSARCH\"_gccgo.go && gofmt -w zsyscall_\"$GOOSARCH\"_gc.go \" ;\n\t\t\telif [ \"$GOOS\" == \"illumos\" ]; then\n\t\t\t        # illumos code generation requires a --illumos switch\n\t\t\t        echo \"$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go\";\n\t\t\t        # illumos implies solaris, so solaris code generation is also required\n\t\t\t\techo \"$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go\";\n\t\t\telse\n\t\t\t\techo \"$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go\";\n\t\t\tfi\n\t\tfi\n\tesac\n\tif [ -n \"$mksysctl\" ]; then echo \"$mksysctl |gofmt >$zsysctl\"; fi\n\tif [ -n \"$mksysnum\" ]; then echo \"$mksysnum |gofmt >zsysnum_$GOOSARCH.go\"; fi\n\tif [ -n \"$mktypes\" ]; then echo \"$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go\"; fi\n\tif [ -n \"$mkasm\" ]; then echo \"$mkasm $GOOS $GOARCH\"; fi\n) | $run\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mkerrors.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# Generate Go code listing errors and other #defined constant\n# values (ENAMETOOLONG etc.), by asking the preprocessor\n# about the definitions.\n\nunset LANG\nexport LC_ALL=C\nexport LC_CTYPE=C\n\nif test -z \"$GOARCH\" -o -z \"$GOOS\"; then\n\techo 1>&2 \"GOARCH or GOOS not defined in environment\"\n\texit 1\nfi\n\n# Check that we are using the new build system if we should\nif [[ \"$GOOS\" = \"linux\" ]] && [[ \"$GOLANG_SYS_BUILD\" != \"docker\" ]]; then\n\techo 1>&2 \"In the Docker based build system, mkerrors should not be called directly.\"\n\techo 1>&2 \"See README.md\"\n\texit 1\nfi\n\nif [[ \"$GOOS\" = \"aix\" ]]; then\n\tCC=${CC:-gcc}\nelse\n\tCC=${CC:-cc}\nfi\n\nif [[ \"$GOOS\" = \"solaris\" ]]; then\n\t# Assumes GNU versions of utilities in PATH.\n\texport PATH=/usr/gnu/bin:$PATH\nfi\n\nuname=$(uname)\n\nincludes_AIX='\n#include <net/if.h>\n#include <net/netopt.h>\n#include <netinet/ip_mroute.h>\n#include <sys/protosw.h>\n#include <sys/stropts.h>\n#include <sys/mman.h>\n#include <sys/poll.h>\n#include <sys/select.h>\n#include <sys/termio.h>\n#include <termios.h>\n#include <fcntl.h>\n\n#define AF_LOCAL AF_UNIX\n'\n\nincludes_Darwin='\n#define _DARWIN_C_SOURCE\n#define KERNEL 1\n#define _DARWIN_USE_64_BIT_INODE\n#define __APPLE_USE_RFC_3542\n#include <stdint.h>\n#include <sys/stdio.h>\n#include <sys/attr.h>\n#include <sys/clonefile.h>\n#include <sys/kern_control.h>\n#include <sys/types.h>\n#include <sys/event.h>\n#include <sys/ptrace.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/stat.h>\n#include <sys/un.h>\n#include <sys/sockio.h>\n#include <sys/sys_domain.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/utsname.h>\n#include <sys/wait.h>\n#include <sys/xattr.h>\n#include <sys/vsock.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <termios.h>\n\n// for backwards compatibility because moved TIOCREMOTE to Kernel.framework after MacOSX12.0.sdk.\n#define TIOCREMOTE 0x80047469\n'\n\nincludes_DragonFly='\n#include <sys/types.h>\n#include <sys/event.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_clone.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <termios.h>\n#include <netinet/ip.h>\n#include <net/ip_mroute/ip_mroute.h>\n'\n\nincludes_FreeBSD='\n#include <sys/capsicum.h>\n#include <sys/param.h>\n#include <sys/types.h>\n#include <sys/disk.h>\n#include <sys/event.h>\n#include <sys/sched.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/un.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <sys/ptrace.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <termios.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <sys/extattr.h>\n\n#if __FreeBSD__ >= 10\n#define IFT_CARP\t0xf8\t// IFT_CARP is deprecated in FreeBSD 10\n#undef SIOCAIFADDR\n#define SIOCAIFADDR\t_IOW(105, 26, struct oifaliasreq)\t// ifaliasreq contains if_data\n#undef SIOCSIFPHYADDR\n#define SIOCSIFPHYADDR\t_IOW(105, 70, struct oifaliasreq)\t// ifaliasreq contains if_data\n#endif\n'\n\nincludes_Linux='\n#define _LARGEFILE_SOURCE\n#define _LARGEFILE64_SOURCE\n#ifndef __LP64__\n#define _FILE_OFFSET_BITS 64\n#endif\n#define _GNU_SOURCE\n\n// <sys/ioctl.h> is broken on powerpc64, as it fails to include definitions of\n// these structures. We just include them copied from <bits/termios.h>.\n#if defined(__powerpc__)\nstruct sgttyb {\n        char    sg_ispeed;\n        char    sg_ospeed;\n        char    sg_erase;\n        char    sg_kill;\n        short   sg_flags;\n};\n\nstruct tchars {\n        char    t_intrc;\n        char    t_quitc;\n        char    t_startc;\n        char    t_stopc;\n        char    t_eofc;\n        char    t_brkc;\n};\n\nstruct ltchars {\n        char    t_suspc;\n        char    t_dsuspc;\n        char    t_rprntc;\n        char    t_flushc;\n        char    t_werasc;\n        char    t_lnextc;\n};\n#endif\n\n#include <bits/sockaddr.h>\n#include <sys/epoll.h>\n#include <sys/eventfd.h>\n#include <sys/inotify.h>\n#include <sys/ioctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/prctl.h>\n#include <sys/stat.h>\n#include <sys/types.h>\n#include <sys/time.h>\n#include <sys/select.h>\n#include <sys/signalfd.h>\n#include <sys/socket.h>\n#include <sys/timerfd.h>\n#include <sys/uio.h>\n#include <sys/xattr.h>\n#include <netinet/udp.h>\n#include <linux/audit.h>\n#include <linux/bpf.h>\n#include <linux/can.h>\n#include <linux/can/error.h>\n#include <linux/can/netlink.h>\n#include <linux/can/raw.h>\n#include <linux/capability.h>\n#include <linux/cryptouser.h>\n#include <linux/devlink.h>\n#include <linux/dm-ioctl.h>\n#include <linux/errqueue.h>\n#include <linux/ethtool_netlink.h>\n#include <linux/falloc.h>\n#include <linux/fanotify.h>\n#include <linux/fib_rules.h>\n#include <linux/filter.h>\n#include <linux/fs.h>\n#include <linux/fscrypt.h>\n#include <linux/fsverity.h>\n#include <linux/genetlink.h>\n#include <linux/hdreg.h>\n#include <linux/hidraw.h>\n#include <linux/if.h>\n#include <linux/if_addr.h>\n#include <linux/if_alg.h>\n#include <linux/if_arp.h>\n#include <linux/if_ether.h>\n#include <linux/if_ppp.h>\n#include <linux/if_tun.h>\n#include <linux/if_packet.h>\n#include <linux/if_xdp.h>\n#include <linux/input.h>\n#include <linux/kcm.h>\n#include <linux/kexec.h>\n#include <linux/keyctl.h>\n#include <linux/landlock.h>\n#include <linux/loop.h>\n#include <linux/lwtunnel.h>\n#include <linux/magic.h>\n#include <linux/memfd.h>\n#include <linux/module.h>\n#include <linux/mount.h>\n#include <linux/netfilter/nfnetlink.h>\n#include <linux/netfilter/nf_tables.h>\n#include <linux/netlink.h>\n#include <linux/net_namespace.h>\n#include <linux/nfc.h>\n#include <linux/nsfs.h>\n#include <linux/perf_event.h>\n#include <linux/pps.h>\n#include <linux/ptrace.h>\n#include <linux/random.h>\n#include <linux/reboot.h>\n#include <linux/rtc.h>\n#include <linux/rtnetlink.h>\n#include <linux/sched.h>\n#include <linux/seccomp.h>\n#include <linux/serial.h>\n#include <linux/sock_diag.h>\n#include <linux/sockios.h>\n#include <linux/taskstats.h>\n#include <linux/tipc.h>\n#include <linux/vm_sockets.h>\n#include <linux/wait.h>\n#include <linux/watchdog.h>\n#include <linux/wireguard.h>\n\n#include <mtd/ubi-user.h>\n#include <mtd/mtd-user.h>\n#include <net/route.h>\n\n#if defined(__sparc__)\n// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the\n// definition in glibc. As only the error constants are needed here, include the\n// generic termibits.h (which is included by termbits.h on sparc).\n#include <asm-generic/termbits.h>\n#else\n#include <asm/termbits.h>\n#endif\n\n#ifndef PTRACE_GETREGS\n#define PTRACE_GETREGS\t0xc\n#endif\n\n#ifndef PTRACE_SETREGS\n#define PTRACE_SETREGS\t0xd\n#endif\n\n#ifdef SOL_BLUETOOTH\n// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h\n// but it is already in bluetooth_linux.go\n#undef SOL_BLUETOOTH\n#endif\n\n// Certain constants are missing from the fs/crypto UAPI\n#define FS_KEY_DESC_PREFIX              \"fscrypt:\"\n#define FS_KEY_DESC_PREFIX_SIZE         8\n#define FS_MAX_KEY_SIZE                 64\n\n// The code generator produces -0x1 for (~0), but an unsigned value is necessary\n// for the tipc_subscr timeout __u32 field.\n#undef TIPC_WAIT_FOREVER\n#define TIPC_WAIT_FOREVER 0xffffffff\n\n// Copied from linux/netfilter/nf_nat.h\n// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h\n// and netinet/in.h.\n#define NF_NAT_RANGE_MAP_IPS\t\t\t(1 << 0)\n#define NF_NAT_RANGE_PROTO_SPECIFIED\t\t(1 << 1)\n#define NF_NAT_RANGE_PROTO_RANDOM\t\t(1 << 2)\n#define NF_NAT_RANGE_PERSISTENT\t\t\t(1 << 3)\n#define NF_NAT_RANGE_PROTO_RANDOM_FULLY\t\t(1 << 4)\n#define NF_NAT_RANGE_PROTO_OFFSET\t\t(1 << 5)\n#define NF_NAT_RANGE_NETMAP\t\t\t(1 << 6)\n#define NF_NAT_RANGE_PROTO_RANDOM_ALL\t\t\\\n\t(NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY)\n#define NF_NAT_RANGE_MASK\t\t\t\t\t\\\n\t(NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED |\t\\\n\t NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT |\t\\\n\t NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \\\n\t NF_NAT_RANGE_NETMAP)\n\n// Copied from linux/hid.h.\n// Keep in sync with the size of the referenced fields.\n#define _HIDIOCGRAWNAME_LEN\t128 // sizeof_field(struct hid_device, name)\n#define _HIDIOCGRAWPHYS_LEN\t64  // sizeof_field(struct hid_device, phys)\n#define _HIDIOCGRAWUNIQ_LEN\t64  // sizeof_field(struct hid_device, uniq)\n\n#define _HIDIOCGRAWNAME\t\tHIDIOCGRAWNAME(_HIDIOCGRAWNAME_LEN)\n#define _HIDIOCGRAWPHYS\t\tHIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN)\n#define _HIDIOCGRAWUNIQ\t\tHIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN)\n\n'\n\nincludes_NetBSD='\n#include <sys/types.h>\n#include <sys/param.h>\n#include <sys/event.h>\n#include <sys/extattr.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/sched.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/sysctl.h>\n#include <sys/termios.h>\n#include <sys/ttycom.h>\n#include <sys/wait.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/in_systm.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <netinet/if_ether.h>\n\n// Needed since <sys/param.h> refers to it...\n#define schedppq 1\n'\n\nincludes_OpenBSD='\n#include <sys/types.h>\n#include <sys/param.h>\n#include <sys/event.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/select.h>\n#include <sys/sched.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/termios.h>\n#include <sys/ttycom.h>\n#include <sys/unistd.h>\n#include <sys/wait.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/if_var.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/in_systm.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <netinet/if_ether.h>\n#include <net/if_bridge.h>\n\n// We keep some constants not supported in OpenBSD 5.5 and beyond for\n// the promise of compatibility.\n#define EMUL_ENABLED\t\t0x1\n#define EMUL_NATIVE\t\t0x2\n#define IPV6_FAITH\t\t0x1d\n#define IPV6_OPTIONS\t\t0x1\n#define IPV6_RTHDR_STRICT\t0x1\n#define IPV6_SOCKOPT_RESERVED1\t0x3\n#define SIOCGIFGENERIC\t\t0xc020693a\n#define SIOCSIFGENERIC\t\t0x80206939\n#define WALTSIG\t\t\t0x4\n'\n\nincludes_SunOS='\n#include <limits.h>\n#include <sys/types.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/stream.h>\n#include <sys/mman.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <sys/mkdev.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_arp.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/icmp6.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <termios.h>\n'\n\n\nincludes='\n#include <sys/types.h>\n#include <sys/file.h>\n#include <fcntl.h>\n#include <dirent.h>\n#include <sys/socket.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <netinet/ip6.h>\n#include <netinet/tcp.h>\n#include <errno.h>\n#include <sys/signal.h>\n#include <signal.h>\n#include <sys/resource.h>\n#include <time.h>\n'\nccflags=\"$@\"\n\n# Write go tool cgo -godefs input.\n(\n\techo package unix\n\techo\n\techo '/*'\n\tindirect=\"includes_$(uname)\"\n\techo \"${!indirect} $includes\"\n\techo '*/'\n\techo 'import \"C\"'\n\techo 'import \"syscall\"'\n\techo\n\techo 'const ('\n\n\t# The gcc command line prints all the #defines\n\t# it encounters while processing the input\n\techo \"${!indirect} $includes\" | $CC -x c - -E -dM $ccflags |\n\tawk '\n\t\t$1 != \"#define\" || $2 ~ /\\(/ || $3 == \"\" {next}\n\n\t\t$2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next}  # 386 registers\n\t\t$2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next}\n\t\t$2 ~ /^(SCM_SRCRT)$/ {next}\n\t\t$2 ~ /^(MAP_FAILED)$/ {next}\n\t\t$2 ~ /^ELF_.*$/ {next}# <asm/elf.h> contains ELF_ARCH, etc.\n\n\t\t$2 ~ /^EXTATTR_NAMESPACE_NAMES/ ||\n\t\t$2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next}\n\n\t\t$2 !~ /^ECCAPBITS/ &&\n\t\t$2 !~ /^ETH_/ &&\n\t\t$2 !~ /^EPROC_/ &&\n\t\t$2 !~ /^EQUIV_/ &&\n\t\t$2 !~ /^EXPR_/ &&\n\t\t$2 !~ /^EVIOC/ &&\n\t\t$2 ~ /^E[A-Z0-9_]+$/ ||\n\t\t$2 ~ /^B[0-9_]+$/ ||\n\t\t$2 ~ /^(OLD|NEW)DEV$/ ||\n\t\t$2 == \"BOTHER\" ||\n\t\t$2 ~ /^CI?BAUD(EX)?$/ ||\n\t\t$2 == \"IBSHIFT\" ||\n\t\t$2 ~ /^V[A-Z0-9]+$/ ||\n\t\t$2 ~ /^CS[A-Z0-9]/ ||\n\t\t$2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ ||\n\t\t$2 ~ /^IGN/ ||\n\t\t$2 ~ /^IX(ON|ANY|OFF)$/ ||\n\t\t$2 ~ /^IN(LCR|PCK)$/ ||\n\t\t$2 !~ \"X86_CR3_PCID_NOFLUSH\" &&\n\t\t$2 ~ /(^FLU?SH)|(FLU?SH$)/ ||\n\t\t$2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ ||\n\t\t$2 == \"BRKINT\" ||\n\t\t$2 == \"HUPCL\" ||\n\t\t$2 == \"PENDIN\" ||\n\t\t$2 == \"TOSTOP\" ||\n\t\t$2 == \"XCASE\" ||\n\t\t$2 == \"ALTWERASE\" ||\n\t\t$2 == \"NOKERNINFO\" ||\n\t\t$2 == \"NFDBITS\" ||\n\t\t$2 ~ /^PAR/ ||\n\t\t$2 ~ /^SIG[^_]/ ||\n\t\t$2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ ||\n\t\t$2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ ||\n\t\t$2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ ||\n\t\t$2 ~ /^O?XTABS$/ ||\n\t\t$2 ~ /^TC[IO](ON|OFF)$/ ||\n\t\t$2 ~ /^IN_/ ||\n\t\t$2 ~ /^KCM/ ||\n\t\t$2 ~ /^LANDLOCK_/ ||\n\t\t$2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||\n\t\t$2 ~ /^LO_(KEY|NAME)_SIZE$/ ||\n\t\t$2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ ||\n\t\t$2 == \"LOOP_CONFIGURE\" ||\n\t\t$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MREMAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ ||\n\t\t$2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ ||\n\t\t$2 ~ /^NFC_.*_(MAX)?SIZE$/ ||\n\t\t$2 ~ /^RAW_PAYLOAD_/ ||\n\t\t$2 ~ /^[US]F_/ ||\n\t\t$2 ~ /^TP_STATUS_/ ||\n\t\t$2 ~ /^FALLOC_/ ||\n\t\t$2 ~ /^ICMPV?6?_(FILTER|SEC)/ ||\n\t\t$2 == \"SOMAXCONN\" ||\n\t\t$2 == \"NAME_MAX\" ||\n\t\t$2 == \"IFNAMSIZ\" ||\n\t\t$2 ~ /^CTL_(HW|KERN|MAXNAME|NET|QUERY)$/ ||\n\t\t$2 ~ /^KERN_(HOSTNAME|OS(RELEASE|TYPE)|VERSION)$/ ||\n\t\t$2 ~ /^HW_MACHINE$/ ||\n\t\t$2 ~ /^SYSCTL_VERS/ ||\n\t\t$2 !~ \"MNT_BITS\" &&\n\t\t$2 ~ /^(MS|MNT|MOUNT|UMOUNT)_/ ||\n\t\t$2 ~ /^NS_GET_/ ||\n\t\t$2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ ||\n\t\t$2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|PIOD|TFD)_/ ||\n\t\t$2 ~ /^KEXEC_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_CMD_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_MAGIC[12]$/ ||\n\t\t$2 ~ /^MODULE_INIT_/ ||\n\t\t$2 !~ \"NLA_TYPE_MASK\" &&\n\t\t$2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ &&\n\t\t$2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ ||\n\t\t$2 ~ /^SOCK_|SK_DIAG_|SKNLGRP_$/ ||\n\t\t$2 ~ /^FIORDCHK$/ ||\n\t\t$2 ~ /^SIOC/ ||\n\t\t$2 ~ /^TIOC/ ||\n\t\t$2 ~ /^TCGET/ ||\n\t\t$2 ~ /^TCSET/ ||\n\t\t$2 ~ /^TC(FLSH|SBRKP?|XONC)$/ ||\n\t\t$2 !~ \"RTF_BITS\" &&\n\t\t$2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ ||\n\t\t$2 ~ /^BIOC/ ||\n\t\t$2 ~ /^DIOC/ ||\n\t\t$2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||\n\t\t$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||\n\t\t$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||\n\t\t$2 ~ /^CLONE_[A-Z_]+/ ||\n\t\t$2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+|BPF_F_LINK)$/ &&\n\t\t$2 ~ /^(BPF|DLT)_/ ||\n\t\t$2 ~ /^AUDIT_/ ||\n\t\t$2 ~ /^(CLOCK|TIMER)_/ ||\n\t\t$2 ~ /^CAN_/ ||\n\t\t$2 ~ /^CAP_/ ||\n\t\t$2 ~ /^CP_/ ||\n\t\t$2 ~ /^CPUSTATES$/ ||\n\t\t$2 ~ /^CTLIOCGINFO$/ ||\n\t\t$2 ~ /^ALG_/ ||\n\t\t$2 ~ /^FI(CLONE|DEDUPERANGE)/ ||\n\t\t$2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ ||\n\t\t$2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|[GS]ETFLAGS)/ ||\n\t\t$2 ~ /^FS_VERITY_/ ||\n\t\t$2 ~ /^FSCRYPT_/ ||\n\t\t$2 ~ /^DM_/ ||\n\t\t$2 ~ /^GRND_/ ||\n\t\t$2 ~ /^RND/ ||\n\t\t$2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ ||\n\t\t$2 ~ /^KEYCTL_/ ||\n\t\t$2 ~ /^PERF_/ ||\n\t\t$2 ~ /^SECCOMP_/ ||\n\t\t$2 ~ /^SEEK_/ ||\n\t\t$2 ~ /^SCHED_/ ||\n\t\t$2 ~ /^SPLICE_/ ||\n\t\t$2 ~ /^SYNC_FILE_RANGE_/ ||\n\t\t$2 !~ /IOC_MAGIC/ &&\n\t\t$2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ ||\n\t\t$2 ~ /^(VM|VMADDR)_/ ||\n\t\t$2 ~ /^IOCTL_VM_SOCKETS_/ ||\n\t\t$2 ~ /^(TASKSTATS|TS)_/ ||\n\t\t$2 ~ /^CGROUPSTATS_/ ||\n\t\t$2 ~ /^GENL_/ ||\n\t\t$2 ~ /^STATX_/ ||\n\t\t$2 ~ /^RENAME/ ||\n\t\t$2 ~ /^UBI_IOC[A-Z]/ ||\n\t\t$2 ~ /^UTIME_/ ||\n\t\t$2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ ||\n\t\t$2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ ||\n\t\t$2 ~ /^FSOPT_/ ||\n\t\t$2 ~ /^WDIO[CFS]_/ ||\n\t\t$2 ~ /^NFN/ ||\n\t\t$2 !~ /^NFT_META_IIFTYPE/ &&\n\t\t$2 ~ /^NFT_/ ||\n\t\t$2 ~ /^NF_NAT_/ ||\n\t\t$2 ~ /^XDP_/ ||\n\t\t$2 ~ /^RWF_/ ||\n\t\t$2 ~ /^(HDIO|WIN|SMART)_/ ||\n\t\t$2 ~ /^CRYPTO_/ ||\n\t\t$2 ~ /^TIPC_/ ||\n\t\t$2 !~  \"DEVLINK_RELOAD_LIMITS_VALID_MASK\" &&\n\t\t$2 ~ /^DEVLINK_/ ||\n\t\t$2 ~ /^ETHTOOL_/ ||\n\t\t$2 ~ /^LWTUNNEL_IP/ ||\n\t\t$2 ~ /^ITIMER_/ ||\n\t\t$2 !~ \"WMESGLEN\" &&\n\t\t$2 ~ /^W[A-Z0-9]+$/ ||\n\t\t$2 ~ /^P_/ ||\n\t\t$2 ~/^PPPIOC/ ||\n\t\t$2 ~ /^FAN_|FANOTIFY_/ ||\n\t\t$2 == \"HID_MAX_DESCRIPTOR_SIZE\" ||\n\t\t$2 ~ /^_?HIDIOC/ ||\n\t\t$2 ~ /^BUS_(USB|HIL|BLUETOOTH|VIRTUAL)$/ ||\n\t\t$2 ~ /^MTD/ ||\n\t\t$2 ~ /^OTP/ ||\n\t\t$2 ~ /^MEM/ ||\n\t\t$2 ~ /^WG/ ||\n\t\t$2 ~ /^FIB_RULE_/ ||\n\t\t$2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE|IOMIN$|IOOPT$|ALIGNOFF$|DISCARD|ROTATIONAL$|ZEROOUT$|GETDISKSEQ$)/ {printf(\"\\t%s = C.%s\\n\", $2, $2)}\n\t\t$2 ~ /^__WCOREFLAG$/ {next}\n\t\t$2 ~ /^__W[A-Z0-9]+$/ {printf(\"\\t%s = C.%s\\n\", substr($2,3), $2)}\n\n\t\t{next}\n\t' | sort\n\n\techo ')'\n) >_const.go\n\n# Pull out the error names for later.\nerrors=$(\n\techo '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' |\n\tsort\n)\n\n# Pull out the signal names for later.\nsignals=$(\n\techo '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' |\n\tgrep -v 'SIGSTKSIZE\\|SIGSTKSZ\\|SIGRT\\|SIGMAX64' |\n\tsort\n)\n\n# Again, writing regexps to a file.\necho '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tsort >_error.grep\necho '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tgrep -v 'SIGSTKSIZE\\|SIGSTKSZ\\|SIGRT\\|SIGMAX64' |\n\tsort >_signal.grep\n\necho '// mkerrors.sh' \"$@\"\necho '// Code generated by the command above; see README.md. DO NOT EDIT.'\necho\necho \"//go:build ${GOARCH} && ${GOOS}\"\necho\ngo tool cgo -godefs -- \"$@\" _const.go >_error.out\ncat _error.out | grep -vf _error.grep | grep -vf _signal.grep\necho\necho '// Errors'\necho 'const ('\ncat _error.out | grep -f _error.grep | sed 's/=\\(.*\\)/= syscall.Errno(\\1)/'\necho ')'\n\necho\necho '// Signals'\necho 'const ('\ncat _error.out | grep -f _signal.grep | sed 's/=\\(.*\\)/= syscall.Signal(\\1)/'\necho ')'\n\n# Run C program to print error and syscall strings.\n(\n\techo -E \"\n#include <stdio.h>\n#include <stdlib.h>\n#include <errno.h>\n#include <ctype.h>\n#include <string.h>\n#include <signal.h>\n\n#define nelem(x) (sizeof(x)/sizeof((x)[0]))\n\nenum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below\n\nstruct tuple {\n\tint num;\n\tconst char *name;\n};\n\nstruct tuple errors[] = {\n\"\n\tfor i in $errors\n\tdo\n\t\techo -E '\t{'$i', \"'$i'\" },'\n\tdone\n\n\techo -E \"\n};\n\nstruct tuple signals[] = {\n\"\n\tfor i in $signals\n\tdo\n\t\techo -E '\t{'$i', \"'$i'\" },'\n\tdone\n\n\t# Use -E because on some systems bash builtin interprets \\n itself.\n\techo -E '\n};\n\nstatic int\ntuplecmp(const void *a, const void *b)\n{\n\treturn ((struct tuple *)a)->num - ((struct tuple *)b)->num;\n}\n\nint\nmain(void)\n{\n\tint i, e;\n\tchar buf[1024], *p;\n\n\tprintf(\"\\n\\n// Error table\\n\");\n\tprintf(\"var errorList = [...]struct {\\n\");\n\tprintf(\"\\tnum  syscall.Errno\\n\");\n\tprintf(\"\\tname string\\n\");\n\tprintf(\"\\tdesc string\\n\");\n\tprintf(\"} {\\n\");\n\tqsort(errors, nelem(errors), sizeof errors[0], tuplecmp);\n\tfor(i=0; i<nelem(errors); i++) {\n\t\te = errors[i].num;\n\t\tif(i > 0 && errors[i-1].num == e)\n\t\t\tcontinue;\n\t\tstrncpy(buf, strerror(e), sizeof(buf) - 1);\n\t\tbuf[sizeof(buf) - 1] = '\\0';\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\tprintf(\"\\t{ %d, \\\"%s\\\", \\\"%s\\\" },\\n\", e, errors[i].name, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\n\tprintf(\"\\n\\n// Signal table\\n\");\n\tprintf(\"var signalList = [...]struct {\\n\");\n\tprintf(\"\\tnum  syscall.Signal\\n\");\n\tprintf(\"\\tname string\\n\");\n\tprintf(\"\\tdesc string\\n\");\n\tprintf(\"} {\\n\");\n\tqsort(signals, nelem(signals), sizeof signals[0], tuplecmp);\n\tfor(i=0; i<nelem(signals); i++) {\n\t\te = signals[i].num;\n\t\tif(i > 0 && signals[i-1].num == e)\n\t\t\tcontinue;\n\t\tstrncpy(buf, strsignal(e), sizeof(buf) - 1);\n\t\tbuf[sizeof(buf) - 1] = '\\0';\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\t// cut trailing : number.\n\t\tp = strrchr(buf, \":\"[0]);\n\t\tif(p)\n\t\t\t*p = '\\0';\n\t\tprintf(\"\\t{ %d, \\\"%s\\\", \\\"%s\\\" },\\n\", e, signals[i].name, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\n\treturn 0;\n}\n\n'\n) >_errors.c\n\n$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mmap_nomremap.go",
    "content": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris || zos\n\npackage unix\n\nvar mapper = &mmapper{\n\tactive: make(map[*byte][]byte),\n\tmmap:   mmap,\n\tmunmap: munmap,\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mremap.go",
    "content": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux || netbsd\n\npackage unix\n\nimport \"unsafe\"\n\ntype mremapMmapper struct {\n\tmmapper\n\tmremap func(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error)\n}\n\nvar mapper = &mremapMmapper{\n\tmmapper: mmapper{\n\t\tactive: make(map[*byte][]byte),\n\t\tmmap:   mmap,\n\t\tmunmap: munmap,\n\t},\n\tmremap: mremap,\n}\n\nfunc (m *mremapMmapper) Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) {\n\tif newLength <= 0 || len(oldData) == 0 || len(oldData) != cap(oldData) || flags&mremapFixed != 0 {\n\t\treturn nil, EINVAL\n\t}\n\n\tpOld := &oldData[cap(oldData)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tbOld := m.active[pOld]\n\tif bOld == nil || &bOld[0] != &oldData[0] {\n\t\treturn nil, EINVAL\n\t}\n\tnewAddr, errno := m.mremap(uintptr(unsafe.Pointer(&bOld[0])), uintptr(len(bOld)), uintptr(newLength), flags, 0)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\tbNew := unsafe.Slice((*byte)(unsafe.Pointer(newAddr)), newLength)\n\tpNew := &bNew[cap(bNew)-1]\n\tif flags&mremapDontunmap == 0 {\n\t\tdelete(m.active, pOld)\n\t}\n\tm.active[pNew] = bNew\n\treturn bNew, nil\n}\n\nfunc Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) {\n\treturn mapper.Mremap(oldData, newLength, flags)\n}\n\nfunc MremapPtr(oldAddr unsafe.Pointer, oldSize uintptr, newAddr unsafe.Pointer, newSize uintptr, flags int) (ret unsafe.Pointer, err error) {\n\txaddr, err := mapper.mremap(uintptr(oldAddr), oldSize, newSize, flags, uintptr(newAddr))\n\treturn unsafe.Pointer(xaddr), err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/pagesize_unix.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// For Unix, get the pagesize from the runtime.\n\npackage unix\n\nimport \"syscall\"\n\nfunc Getpagesize() int {\n\treturn syscall.Getpagesize()\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/pledge_openbsd.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// Pledge implements the pledge syscall.\n//\n// This changes both the promises and execpromises; use PledgePromises or\n// PledgeExecpromises to only change the promises or execpromises\n// respectively.\n//\n// For more information see pledge(2).\nfunc Pledge(promises, execpromises string) error {\n\tif err := pledgeAvailable(); err != nil {\n\t\treturn err\n\t}\n\n\tpptr, err := BytePtrFromString(promises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\texptr, err := BytePtrFromString(execpromises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn pledge(pptr, exptr)\n}\n\n// PledgePromises implements the pledge syscall.\n//\n// This changes the promises and leaves the execpromises untouched.\n//\n// For more information see pledge(2).\nfunc PledgePromises(promises string) error {\n\tif err := pledgeAvailable(); err != nil {\n\t\treturn err\n\t}\n\n\tpptr, err := BytePtrFromString(promises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn pledge(pptr, nil)\n}\n\n// PledgeExecpromises implements the pledge syscall.\n//\n// This changes the execpromises and leaves the promises untouched.\n//\n// For more information see pledge(2).\nfunc PledgeExecpromises(execpromises string) error {\n\tif err := pledgeAvailable(); err != nil {\n\t\treturn err\n\t}\n\n\texptr, err := BytePtrFromString(execpromises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn pledge(nil, exptr)\n}\n\n// majmin returns major and minor version number for an OpenBSD system.\nfunc majmin() (major int, minor int, err error) {\n\tvar v Utsname\n\terr = Uname(&v)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tmajor, err = strconv.Atoi(string(v.Release[0]))\n\tif err != nil {\n\t\terr = errors.New(\"cannot parse major version number returned by uname\")\n\t\treturn\n\t}\n\n\tminor, err = strconv.Atoi(string(v.Release[2]))\n\tif err != nil {\n\t\terr = errors.New(\"cannot parse minor version number returned by uname\")\n\t\treturn\n\t}\n\n\treturn\n}\n\n// pledgeAvailable checks for availability of the pledge(2) syscall\n// based on the running OpenBSD version.\nfunc pledgeAvailable() error {\n\tmaj, min, err := majmin()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Require OpenBSD 6.4 as a minimum.\n\tif maj < 6 || (maj == 6 && min <= 3) {\n\t\treturn fmt.Errorf(\"cannot call Pledge on OpenBSD %d.%d\", maj, min)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ptrace_darwin.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin && !ios\n\npackage unix\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) error {\n\treturn ptrace1(request, pid, addr, data)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ptrace_ios.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build ios\n\npackage unix\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\treturn ENOTSUP\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/race.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin && race) || (linux && race) || (freebsd && race)\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\nconst raceenabled = true\n\nfunc raceAcquire(addr unsafe.Pointer) {\n\truntime.RaceAcquire(addr)\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n\truntime.RaceReleaseMerge(addr)\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n\truntime.RaceReadRange(addr, len)\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n\truntime.RaceWriteRange(addr, len)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/race0.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nconst raceenabled = false\n\nfunc raceAcquire(addr unsafe.Pointer) {\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/readdirent_getdents.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || dragonfly || freebsd || linux || netbsd || openbsd\n\npackage unix\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\treturn Getdents(fd, buf)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/readdirent_getdirentries.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || zos\n\npackage unix\n\nimport \"unsafe\"\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\t// Final argument is (basep *uintptr) and the syscall doesn't take nil.\n\t// 64 bits should be enough. (32 bits isn't even on 386). Since the\n\t// actual system call is getdirentries64, 64 is a good guess.\n\t// TODO(rsc): Can we use a single global basep for all calls?\n\tvar base = (*uintptr)(unsafe.Pointer(new(uint64)))\n\treturn Getdirentries(fd, buf, base)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\n// Round the length of a raw sockaddr up to align it properly.\nfunc cmsgAlignOf(salen int) int {\n\tsalign := SizeofPtr\n\tif SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) {\n\t\t// 64-bit Dragonfly before the September 2019 ABI changes still requires\n\t\t// 32-bit aligned access to network subsystem.\n\t\tsalign = 4\n\t}\n\treturn (salen + salign - 1) & ^(salign - 1)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_linux.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Socket control messages\n\npackage unix\n\nimport \"unsafe\"\n\n// UnixCredentials encodes credentials into a socket control message\n// for sending to another process. This can be used for\n// authentication.\nfunc UnixCredentials(ucred *Ucred) []byte {\n\tb := make([]byte, CmsgSpace(SizeofUcred))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_SOCKET\n\th.Type = SCM_CREDENTIALS\n\th.SetLen(CmsgLen(SizeofUcred))\n\t*(*Ucred)(h.data(0)) = *ucred\n\treturn b\n}\n\n// ParseUnixCredentials decodes a socket control message that contains\n// credentials in a Ucred structure. To receive such a message, the\n// SO_PASSCRED option must be enabled on the socket.\nfunc ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) {\n\tif m.Header.Level != SOL_SOCKET {\n\t\treturn nil, EINVAL\n\t}\n\tif m.Header.Type != SCM_CREDENTIALS {\n\t\treturn nil, EINVAL\n\t}\n\tucred := *(*Ucred)(unsafe.Pointer(&m.Data[0]))\n\treturn &ucred, nil\n}\n\n// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO.\nfunc PktInfo4(info *Inet4Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet4Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IP\n\th.Type = IP_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet4Pktinfo))\n\t*(*Inet4Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n\n// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO.\nfunc PktInfo6(info *Inet6Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet6Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IPV6\n\th.Type = IPV6_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet6Pktinfo))\n\t*(*Inet6Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n\n// ParseOrigDstAddr decodes a socket control message containing the original\n// destination address. To receive such a message the IP_RECVORIGDSTADDR or\n// IPV6_RECVORIGDSTADDR option must be enabled on the socket.\nfunc ParseOrigDstAddr(m *SocketControlMessage) (Sockaddr, error) {\n\tswitch {\n\tcase m.Header.Level == SOL_IP && m.Header.Type == IP_ORIGDSTADDR:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(&m.Data[0]))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase m.Header.Level == SOL_IPV6 && m.Header.Type == IPV6_ORIGDSTADDR:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(&m.Data[0]))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tdefault:\n\t\treturn nil, EINVAL\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_unix.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// Socket control messages\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// CmsgLen returns the value to store in the Len field of the Cmsghdr\n// structure, taking into account any necessary alignment.\nfunc CmsgLen(datalen int) int {\n\treturn cmsgAlignOf(SizeofCmsghdr) + datalen\n}\n\n// CmsgSpace returns the number of bytes an ancillary element with\n// payload of the passed data length occupies.\nfunc CmsgSpace(datalen int) int {\n\treturn cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen)\n}\n\nfunc (h *Cmsghdr) data(offset uintptr) unsafe.Pointer {\n\treturn unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset)\n}\n\n// SocketControlMessage represents a socket control message.\ntype SocketControlMessage struct {\n\tHeader Cmsghdr\n\tData   []byte\n}\n\n// ParseSocketControlMessage parses b as an array of socket control\n// messages.\nfunc ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) {\n\tvar msgs []SocketControlMessage\n\ti := 0\n\tfor i+CmsgLen(0) <= len(b) {\n\t\th, dbuf, err := socketControlMessageHeaderAndData(b[i:])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tm := SocketControlMessage{Header: *h, Data: dbuf}\n\t\tmsgs = append(msgs, m)\n\t\ti += cmsgAlignOf(int(h.Len))\n\t}\n\treturn msgs, nil\n}\n\n// ParseOneSocketControlMessage parses a single socket control message from b, returning the message header,\n// message data (a slice of b), and the remainder of b after that single message.\n// When there are no remaining messages, len(remainder) == 0.\nfunc ParseOneSocketControlMessage(b []byte) (hdr Cmsghdr, data []byte, remainder []byte, err error) {\n\th, dbuf, err := socketControlMessageHeaderAndData(b)\n\tif err != nil {\n\t\treturn Cmsghdr{}, nil, nil, err\n\t}\n\tif i := cmsgAlignOf(int(h.Len)); i < len(b) {\n\t\tremainder = b[i:]\n\t}\n\treturn *h, dbuf, remainder, nil\n}\n\nfunc socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) {\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\tif h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) {\n\t\treturn nil, nil, EINVAL\n\t}\n\treturn h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil\n}\n\n// UnixRights encodes a set of open file descriptors into a socket\n// control message for sending to another process.\nfunc UnixRights(fds ...int) []byte {\n\tdatalen := len(fds) * 4\n\tb := make([]byte, CmsgSpace(datalen))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_SOCKET\n\th.Type = SCM_RIGHTS\n\th.SetLen(CmsgLen(datalen))\n\tfor i, fd := range fds {\n\t\t*(*int32)(h.data(4 * uintptr(i))) = int32(fd)\n\t}\n\treturn b\n}\n\n// ParseUnixRights decodes a socket control message that contains an\n// integer array of open file descriptors from another process.\nfunc ParseUnixRights(m *SocketControlMessage) ([]int, error) {\n\tif m.Header.Level != SOL_SOCKET {\n\t\treturn nil, EINVAL\n\t}\n\tif m.Header.Type != SCM_RIGHTS {\n\t\treturn nil, EINVAL\n\t}\n\tfds := make([]int, len(m.Data)>>2)\n\tfor i, j := 0, 0; i < len(m.Data); i += 4 {\n\t\tfds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i])))\n\t\tj++\n\t}\n\treturn fds, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport (\n\t\"runtime\"\n)\n\n// Round the length of a raw sockaddr up to align it properly.\nfunc cmsgAlignOf(salen int) int {\n\tsalign := SizeofPtr\n\n\t// dragonfly needs to check ABI version at runtime, see cmsgAlignOf in\n\t// sockcmsg_dragonfly.go\n\tswitch runtime.GOOS {\n\tcase \"aix\":\n\t\t// There is no alignment on AIX.\n\t\tsalign = 1\n\tcase \"darwin\", \"ios\", \"illumos\", \"solaris\":\n\t\t// NOTE: It seems like 64-bit Darwin, Illumos and Solaris\n\t\t// kernels still require 32-bit aligned access to network\n\t\t// subsystem.\n\t\tif SizeofPtr == 8 {\n\t\t\tsalign = 4\n\t\t}\n\tcase \"netbsd\", \"openbsd\":\n\t\t// NetBSD and OpenBSD armv7 require 64-bit alignment.\n\t\tif runtime.GOARCH == \"arm\" {\n\t\t\tsalign = 8\n\t\t}\n\t\t// NetBSD aarch64 requires 128-bit alignment.\n\t\tif runtime.GOOS == \"netbsd\" && runtime.GOARCH == \"arm64\" {\n\t\t\tsalign = 16\n\t\t}\n\tcase \"zos\":\n\t\t// z/OS socket macros use [32-bit] sizeof(int) alignment,\n\t\t// not pointer width.\n\t\tsalign = SizeofInt\n\t}\n\n\treturn (salen + salign - 1) & ^(salign - 1)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_zos.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Socket control messages\n\npackage unix\n\nimport \"unsafe\"\n\n// UnixCredentials encodes credentials into a socket control message\n// for sending to another process. This can be used for\n// authentication.\nfunc UnixCredentials(ucred *Ucred) []byte {\n\tb := make([]byte, CmsgSpace(SizeofUcred))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_SOCKET\n\th.Type = SCM_CREDENTIALS\n\th.SetLen(CmsgLen(SizeofUcred))\n\t*(*Ucred)(h.data(0)) = *ucred\n\treturn b\n}\n\n// ParseUnixCredentials decodes a socket control message that contains\n// credentials in a Ucred structure. To receive such a message, the\n// SO_PASSCRED option must be enabled on the socket.\nfunc ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) {\n\tif m.Header.Level != SOL_SOCKET {\n\t\treturn nil, EINVAL\n\t}\n\tif m.Header.Type != SCM_CREDENTIALS {\n\t\treturn nil, EINVAL\n\t}\n\tucred := *(*Ucred)(unsafe.Pointer(&m.Data[0]))\n\treturn &ucred, nil\n}\n\n// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO.\nfunc PktInfo4(info *Inet4Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet4Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IP\n\th.Type = IP_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet4Pktinfo))\n\t*(*Inet4Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n\n// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO.\nfunc PktInfo6(info *Inet6Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet6Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IPV6\n\th.Type = IPV6_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet6Pktinfo))\n\t*(*Inet6Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x && gc\n\n#include \"textflag.h\"\n\n//  provide the address of function variable to be fixed up.\n\nTEXT ·getPipe2Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Pipe2(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_FlockAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Flock(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_GetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Getxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_NanosleepAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Nanosleep(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_SetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Setxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_Wait4Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Wait4(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_MountAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mount(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_UnmountAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Unmount(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_UtimesNanoAtAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·UtimesNanoAt(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_UtimesNanoAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·UtimesNano(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_MkfifoatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mkfifoat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_ChtagAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Chtag(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_ReadlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Readlinkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\t\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// Package unix contains an interface to the low-level operating system\n// primitives. OS details vary depending on the underlying system, and\n// by default, godoc will display OS-specific documentation for the current\n// system. If you want godoc to display OS documentation for another\n// system, set $GOOS and $GOARCH to the desired system. For example, if\n// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS\n// to freebsd and $GOARCH to arm.\n//\n// The primary use of this package is inside other packages that provide a more\n// portable interface to the system, such as \"os\", \"time\" and \"net\".  Use\n// those packages rather than this one if you can.\n//\n// For details of the functions and data types in this package consult\n// the manuals for the appropriate operating system.\n//\n// These calls return err == nil to indicate success; otherwise\n// err represents an operating system error describing the failure and\n// holds a value of type syscall.Errno.\npackage unix // import \"golang.org/x/sys/unix\"\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"unsafe\"\n)\n\n// ByteSliceFromString returns a NUL-terminated slice of bytes\n// containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc ByteSliceFromString(s string) ([]byte, error) {\n\tif strings.IndexByte(s, 0) != -1 {\n\t\treturn nil, EINVAL\n\t}\n\ta := make([]byte, len(s)+1)\n\tcopy(a, s)\n\treturn a, nil\n}\n\n// BytePtrFromString returns a pointer to a NUL-terminated array of\n// bytes containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc BytePtrFromString(s string) (*byte, error) {\n\ta, err := ByteSliceFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any\n// bytes after the NUL removed.\nfunc ByteSliceToString(s []byte) string {\n\tif i := bytes.IndexByte(s, 0); i != -1 {\n\t\ts = s[:i]\n\t}\n\treturn string(s)\n}\n\n// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string.\n// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated\n// at a zero byte; if the zero byte is not present, the program may crash.\nfunc BytePtrToString(p *byte) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + 1)\n\t}\n\n\treturn string(unsafe.Slice(p, n))\n}\n\n// Single-word zero for use when we need a valid pointer to 0 bytes.\nvar _zero uintptr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix\n\n// Aix system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and\n// wrap it in our own nicer implementation.\n\npackage unix\n\nimport \"unsafe\"\n\n/*\n * Wrapped\n */\n\nfunc Access(path string, mode uint32) (err error) {\n\treturn Faccessat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chmod(path string, mode uint32) (err error) {\n\treturn Fchmodat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, 0)\n}\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\treturn Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)\n}\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc Utimes(path string, tv []Timeval) error {\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n > len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif n == len(sa.raw.Path) && name[0] != '@' {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = uint8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n//sys\tgetcwd(buf []byte) (err error)\n\nconst ImplementsGetwd = true\n\nfunc Getwd() (ret string, err error) {\n\tfor len := uint64(4096); ; len *= 2 {\n\t\tb := make([]byte, len)\n\t\terr := getcwd(b)\n\t\tif err == nil {\n\t\t\ti := 0\n\t\t\tfor b[i] != 0 {\n\t\t\t\ti++\n\t\t\t}\n\t\t\treturn string(b[0:i]), nil\n\t\t}\n\t\tif err != ERANGE {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n}\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\terr = getcwd(buf)\n\tif err == nil {\n\t\ti := 0\n\t\tfor buf[i] != 0 {\n\t\t\ti++\n\t\t}\n\t\tn = i + 1\n\t}\n\treturn\n}\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 16 on BSD.\n\tif n < 0 || n > 1000 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n/*\n * Socket\n */\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif nfd == -1 {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif emptyIovecs(iov) {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); n == -1 {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\treturn\n}\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\n\t\t// Some versions of AIX have a bug in getsockname (see IV78655).\n\t\t// We can't rely on sa.Len being set correctly.\n\t\tn := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL.\n\t\tfor i := 0; i < n; i++ {\n\t\t\tif pp.Path[i] == 0 {\n\t\t\t\tn = i\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\terr = gettimeofday(tv, nil)\n\treturn\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sys\tgetdirent(fd int, buf []byte) (n int, err error)\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\treturn getdirent(fd, buf)\n}\n\n//sys\twait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\tvar r Pid_t\n\terr = ERESTART\n\t// AIX wait4 may return with ERESTART errno, while the processus is still\n\t// active.\n\tfor err == ERESTART {\n\t\tr, err = wait4(Pid_t(pid), &status, options, rusage)\n\t}\n\twpid = int(r)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n/*\n * Wait\n */\n\ntype WaitStatus uint32\n\nfunc (w WaitStatus) Stopped() bool { return w&0x40 != 0 }\nfunc (w WaitStatus) StopSignal() Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn Signal(w>>8) & 0xFF\n}\n\nfunc (w WaitStatus) Exited() bool { return w&0xFF == 0 }\nfunc (w WaitStatus) ExitStatus() int {\n\tif !w.Exited() {\n\t\treturn -1\n\t}\n\treturn int((w >> 8) & 0xFF)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 }\nfunc (w WaitStatus) Signal() Signal {\n\tif !w.Signaled() {\n\t\treturn -1\n\t}\n\treturn Signal(w>>16) & 0xFF\n}\n\nfunc (w WaitStatus) Continued() bool { return w&0x01000000 != 0 }\n\nfunc (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 }\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\tioctl(fd int, req int, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = ioctl\n\n// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX\n// There is no way to create a custom fcntl and to keep //sys fcntl easily,\n// Therefore, the programmer must call dup2 instead of fcntl in this case.\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\n//sys\tFcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\n//sys\tFcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n//sys\tfsyncRange(fd int, how int, start int64, length int64) (err error) = fsync_range\n\nfunc Fsync(fd int) error {\n\treturn fsyncRange(fd, O_SYNC, 0, 0)\n}\n\n/*\n * Direct access\n */\n\n//sys\tAcct(path string) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(oldfd int) (fd int, err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFdatasync(fd int) (err error)\n// readdir_r\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n\n//sys\tGetpgrp() (pid int)\n\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tKill(pid int, sig Signal) (err error)\n//sys\tKlogctl(typ int, buf []byte) (n int, err error) = syslog\n//sys\tMkdir(dirfd int, path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error) = open64\n//sys\tOpenat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSetdomainname(p []byte) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tv *Timeval) (err error)\n\n//sys\tSetuid(uid int) (err error)\n//sys\tSetgid(uid int) (err error)\n\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tStatx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)\n//sys\tSync()\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sysnb\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tfstat(fd int, stat *Stat_t) (err error)\n//sys\tfstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = fstatat\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tlstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = pread64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tPselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tstat(path string, statptr *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n\n// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used.\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg\n\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n\n//sysnb\tpipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n//sys\tgettimeofday(tv *Timeval, tzp *Timezone) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n\n//sys\tGetsystemcfg(label int) (n uint64)\n\n//sys\tumount(target string) (err error)\n\nfunc Unmount(target string, flags int) (err error) {\n\tif flags != 0 {\n\t\t// AIX doesn't have any flags for umount.\n\t\treturn ENOSYS\n\t}\n\treturn umount(target)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix_ppc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc\n\npackage unix\n\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = lseek64\n\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Fstat(fd int, stat *Stat_t) error {\n\treturn fstat(fd, stat)\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {\n\treturn fstatat(dirfd, path, stat, flags)\n}\n\nfunc Lstat(path string, stat *Stat_t) error {\n\treturn lstat(path, stat)\n}\n\nfunc Stat(path string, statptr *Stat_t) error {\n\treturn stat(path, statptr)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc64\n\npackage unix\n\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = lseek\n\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int64(sec), Usec: int32(usec)}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// In order to only have Timespec structure, type of Stat_t's fields\n// Atim, Mtim and Ctim is changed from StTimespec to Timespec during\n// ztypes generation.\n// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an\n// int32, so the fields' value must be modified.\nfunc fixStatTimFields(stat *Stat_t) {\n\tstat.Atim.Nsec >>= 32\n\tstat.Mtim.Nsec >>= 32\n\tstat.Ctim.Nsec >>= 32\n}\n\nfunc Fstat(fd int, stat *Stat_t) error {\n\terr := fstat(fd, stat)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {\n\terr := fstatat(dirfd, path, stat, flags)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Lstat(path string, stat *Stat_t) error {\n\terr := lstat(path, stat)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Stat(path string, statptr *Stat_t) error {\n\terr := stat(path, statptr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(statptr)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_bsd.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || dragonfly || freebsd || netbsd || openbsd\n\n// BSD system call wrappers shared by *BSD based systems\n// including OS X (Darwin) and FreeBSD.  Like the other\n// syscall_*.go files it is compiled as Go code but also\n// used as input to mksyscall which parses the //sys\n// lines and generates system call stubs.\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst ImplementsGetwd = true\n\nfunc Getwd() (string, error) {\n\tvar buf [PathMax]byte\n\t_, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[:n]), nil\n}\n\n/*\n * Wrapped\n */\n\n//sysnb\tgetgroups(ngid int, gid *_Gid_t) (n int, err error)\n//sysnb\tsetgroups(ngid int, gid *_Gid_t) (err error)\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 16 on BSD.\n\tif n < 0 || n > 1000 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits.\n\ntype WaitStatus uint32\n\nconst (\n\tmask  = 0x7F\n\tcore  = 0x80\n\tshift = 8\n\n\texited  = 0\n\tkilled  = 9\n\tstopped = 0x7F\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif w&mask != exited {\n\t\treturn -1\n\t}\n\treturn int(w >> shift)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tsig := syscall.Signal(w & mask)\n\tif sig == stopped || sig == 0 {\n\t\treturn -1\n\t}\n\treturn sig\n}\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }\n\nfunc (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL }\n\nfunc (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\twait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\twpid, err = wait4(pid, &status, options, rusage)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\tShutdown(s int, how int) (err error)\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet4\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet6\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) || n == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Index == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = sa.Len\n\tsa.raw.Family = AF_LINK\n\tsa.raw.Index = sa.Index\n\tsa.raw.Type = sa.Type\n\tsa.raw.Nlen = sa.Nlen\n\tsa.raw.Alen = sa.Alen\n\tsa.raw.Slen = sa.Slen\n\tsa.raw.Data = sa.Data\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_LINK:\n\t\tpp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrDatalink)\n\t\tsa.Len = pp.Len\n\t\tsa.Family = pp.Family\n\t\tsa.Index = pp.Index\n\t\tsa.Type = pp.Type\n\t\tsa.Nlen = pp.Nlen\n\t\tsa.Alen = pp.Alen\n\t\tsa.Slen = pp.Slen\n\t\tsa.Data = pp.Data\n\t\treturn sa, nil\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tif pp.Len < 2 || pp.Len > SizeofSockaddrUnix {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t\tsa := new(SockaddrUnix)\n\n\t\t// Some BSDs include the trailing NUL in the length, whereas\n\t\t// others do not. Work around this by subtracting the leading\n\t\t// family and len. The path is then scanned to see if a NUL\n\t\t// terminator still exists within the length.\n\t\tn := int(pp.Len) - 2 // subtract leading Family, Len\n\t\tfor i := 0; i < n; i++ {\n\t\t\tif pp.Path[i] == 0 {\n\t\t\t\t// found early NUL; assume Len included the NUL\n\t\t\t\t// or was overestimating.\n\t\t\t\tn = i\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn anyToSockaddrGOOS(fd, rsa)\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif err != nil {\n\t\treturn\n\t}\n\tif (runtime.GOOS == \"darwin\" || runtime.GOOS == \"ios\") && len == 0 {\n\t\t// Accepted socket has no address.\n\t\t// This is likely due to a bug in xnu kernels,\n\t\t// where instead of ECONNABORTED error socket\n\t\t// is accepted, but has no address.\n\t\tClose(nfd)\n\t\treturn 0, nil, ECONNABORTED\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\t// TODO(jsing): DragonFly has a \"bug\" (see issue 3349), which should be\n\t// reported upstream.\n\tif runtime.GOOS == \"dragonfly\" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 {\n\t\trsa.Addr.Family = AF_UNIX\n\t\trsa.Addr.Len = SizeofSockaddrUnix\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif emptyIovecs(iov) {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); err != nil {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\treturn\n}\n\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n//sys\tkevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error)\n\nfunc Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) {\n\tvar change, event unsafe.Pointer\n\tif len(changes) > 0 {\n\t\tchange = unsafe.Pointer(&changes[0])\n\t}\n\tif len(events) > 0 {\n\t\tevent = unsafe.Pointer(&events[0])\n\t}\n\treturn kevent(kq, change, len(changes), event, len(events), timeout)\n}\n\n// sysctlmib translates name to mib number and appends any additional args.\nfunc sysctlmib(name string, args ...int) ([]_C_int, error) {\n\t// Translate name to mib number.\n\tmib, err := nametomib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, a := range args {\n\t\tmib = append(mib, _C_int(a))\n\t}\n\n\treturn mib, nil\n}\n\nfunc Sysctl(name string) (string, error) {\n\treturn SysctlArgs(name)\n}\n\nfunc SysctlArgs(name string, args ...int) (string, error) {\n\tbuf, err := SysctlRaw(name, args...)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := len(buf)\n\n\t// Throw away terminating NUL.\n\tif n > 0 && buf[n-1] == '\\x00' {\n\t\tn--\n\t}\n\treturn string(buf[0:n]), nil\n}\n\nfunc SysctlUint32(name string) (uint32, error) {\n\treturn SysctlUint32Args(name)\n}\n\nfunc SysctlUint32Args(name string, args ...int) (uint32, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tn := uintptr(4)\n\tbuf := make([]byte, 4)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn 0, err\n\t}\n\tif n != 4 {\n\t\treturn 0, EIO\n\t}\n\treturn *(*uint32)(unsafe.Pointer(&buf[0])), nil\n}\n\nfunc SysctlUint64(name string, args ...int) (uint64, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tn := uintptr(8)\n\tbuf := make([]byte, 8)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn 0, err\n\t}\n\tif n != 8 {\n\t\treturn 0, EIO\n\t}\n\treturn *(*uint64)(unsafe.Pointer(&buf[0])), nil\n}\n\nfunc SysctlRaw(name string, args ...int) ([]byte, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Find size.\n\tn := uintptr(0)\n\tif err := sysctl(mib, nil, &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Read into buffer of that size.\n\tbuf := make([]byte, n)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// The actual call may return less than the original reported required\n\t// size so ensure we deal with that.\n\treturn buf[:n], nil\n}\n\nfunc SysctlClockinfo(name string) (*Clockinfo, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofClockinfo)\n\tvar ci Clockinfo\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofClockinfo {\n\t\treturn nil, EIO\n\t}\n\treturn &ci, nil\n}\n\nfunc SysctlTimeval(name string) (*Timeval, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar tv Timeval\n\tn := uintptr(unsafe.Sizeof(tv))\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&tv)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != unsafe.Sizeof(tv) {\n\t\treturn nil, EIO\n\t}\n\treturn &tv, nil\n}\n\n//sys\tutimes(path string, timeval *[2]Timeval) (err error)\n\nfunc Utimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif ts == nil {\n\t\terr := utimensat(AT_FDCWD, path, nil, 0)\n\t\tif err != ENOSYS {\n\t\t\treturn err\n\t\t}\n\t\treturn utimes(path, nil)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\terr := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\t// Not as efficient as it could be because Timespec and\n\t// Timeval have different types in the different OSes\n\ttv := [2]Timeval{\n\t\tNsecToTimeval(TimespecToNsec(ts[0])),\n\t\tNsecToTimeval(TimespecToNsec(ts[1])),\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\n//sys\tfutimes(fd int, timeval *[2]Timeval) (err error)\n\nfunc Futimes(fd int, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimes(fd, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n// TODO: wrap\n//\tAcct(name nil-string) (err error)\n//\tGethostuuid(uuid *byte, timeout *Timespec) (err error)\n//\tPtrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error)\n\n//sys\tMadvise(b []byte, behav int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Darwin system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"fmt\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//sys\tclosedir(dir uintptr) (err error)\n//sys\treaddir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno)\n\nfunc fdopendir(fd int) (dir uintptr, err error) {\n\tr0, _, e1 := syscall_syscallPtr(libc_fdopendir_trampoline_addr, uintptr(fd), 0, 0)\n\tdir = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fdopendir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fdopendir fdopendir \"/usr/lib/libSystem.B.dylib\"\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\t// Simulate Getdirentries using fdopendir/readdir_r/closedir.\n\t// We store the number of entries to skip in the seek\n\t// offset of fd. See issue #31368.\n\t// It's not the full required semantics, but should handle the case\n\t// of calling Getdirentries or ReadDirent repeatedly.\n\t// It won't handle assigning the results of lseek to *basep, or handle\n\t// the directory being edited underfoot.\n\tskip, err := Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\t// We need to duplicate the incoming file descriptor\n\t// because the caller expects to retain control of it, but\n\t// fdopendir expects to take control of its argument.\n\t// Just Dup'ing the file descriptor is not enough, as the\n\t// result shares underlying state. Use Openat to make a really\n\t// new file descriptor referring to the same directory.\n\tfd2, err := Openat(fd, \".\", O_RDONLY, 0)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\td, err := fdopendir(fd2)\n\tif err != nil {\n\t\tClose(fd2)\n\t\treturn 0, err\n\t}\n\tdefer closedir(d)\n\n\tvar cnt int64\n\tfor {\n\t\tvar entry Dirent\n\t\tvar entryp *Dirent\n\t\te := readdir_r(d, &entry, &entryp)\n\t\tif e != 0 {\n\t\t\treturn n, errnoErr(e)\n\t\t}\n\t\tif entryp == nil {\n\t\t\tbreak\n\t\t}\n\t\tif skip > 0 {\n\t\t\tskip--\n\t\t\tcnt++\n\t\t\tcontinue\n\t\t}\n\n\t\treclen := int(entry.Reclen)\n\t\tif reclen > len(buf) {\n\t\t\t// Not enough room. Return for now.\n\t\t\t// The counter will let us know where we should start up again.\n\t\t\t// Note: this strategy for suspending in the middle and\n\t\t\t// restarting is O(n^2) in the length of the directory. Oh well.\n\t\t\tbreak\n\t\t}\n\n\t\t// Copy entry into return buffer.\n\t\ts := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen)\n\t\tcopy(buf, s)\n\n\t\tbuf = buf[reclen:]\n\t\tn += reclen\n\t\tcnt++\n\t}\n\t// Set the seek offset of the input fd to record\n\t// how many files we've already returned.\n\t_, err = Seek(fd, cnt, 0 /* SEEK_SET */)\n\tif err != nil {\n\t\treturn n, err\n\t}\n\n\treturn n, nil\n}\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\traw    RawSockaddrDatalink\n}\n\n// SockaddrCtl implements the Sockaddr interface for AF_SYSTEM type sockets.\ntype SockaddrCtl struct {\n\tID   uint32\n\tUnit uint32\n\traw  RawSockaddrCtl\n}\n\nfunc (sa *SockaddrCtl) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Sc_len = SizeofSockaddrCtl\n\tsa.raw.Sc_family = AF_SYSTEM\n\tsa.raw.Ss_sysaddr = AF_SYS_CONTROL\n\tsa.raw.Sc_id = sa.ID\n\tsa.raw.Sc_unit = sa.Unit\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrCtl, nil\n}\n\n// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets.\n// SockaddrVM provides access to Darwin VM sockets: a mechanism that enables\n// bidirectional communication between a hypervisor and its guest virtual\n// machines.\ntype SockaddrVM struct {\n\t// CID and Port specify a context ID and port address for a VM socket.\n\t// Guests have a unique CID, and hosts may have a well-known CID of:\n\t//  - VMADDR_CID_HYPERVISOR: refers to the hypervisor process.\n\t//  - VMADDR_CID_LOCAL: refers to local communication (loopback).\n\t//  - VMADDR_CID_HOST: refers to other processes on the host.\n\tCID  uint32\n\tPort uint32\n\traw  RawSockaddrVM\n}\n\nfunc (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Len = SizeofSockaddrVM\n\tsa.raw.Family = AF_VSOCK\n\tsa.raw.Port = sa.Port\n\tsa.raw.Cid = sa.CID\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_SYSTEM:\n\t\tpp := (*RawSockaddrCtl)(unsafe.Pointer(rsa))\n\t\tif pp.Ss_sysaddr == AF_SYS_CONTROL {\n\t\t\tsa := new(SockaddrCtl)\n\t\t\tsa.ID = pp.Sc_id\n\t\t\tsa.Unit = pp.Sc_unit\n\t\t\treturn sa, nil\n\t\t}\n\tcase AF_VSOCK:\n\t\tpp := (*RawSockaddrVM)(unsafe.Pointer(rsa))\n\t\tsa := &SockaddrVM{\n\t\t\tCID:  pp.Cid,\n\t\t\tPort: pp.Port,\n\t\t}\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\n// Some external packages rely on SYS___SYSCTL being defined to implement their\n// own sysctl wrappers. Provide it here, even though direct syscalls are no\n// longer supported on darwin.\nconst SYS___SYSCTL = SYS_SYSCTL\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) }\nfunc PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) }\nfunc PtraceDenyAttach() (err error)    { return ptrace(PT_DENY_ATTACH, 0, 0, 0) }\n\n//sysnb\tpipe(p *[2]int32) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar x [2]int32\n\terr = pipe(&x)\n\tif err == nil {\n\t\tp[0] = int(x[0])\n\t\tp[1] = int(x[1])\n\t}\n\treturn\n}\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\treturn getfsstat(_p0, bufsize, flags)\n}\n\nfunc xattrPointer(dest []byte) *byte {\n\t// It's only when dest is set to NULL that the OS X implementations of\n\t// getxattr() and listxattr() return the current sizes of the named attributes.\n\t// An empty byte array is not sufficient. To maintain the same behaviour as the\n\t// linux implementation, we wrap around the system calls and pass in NULL when\n\t// dest is empty.\n\tvar destp *byte\n\tif len(dest) > 0 {\n\t\tdestp = &dest[0]\n\t}\n\treturn destp\n}\n\n//sys\tgetxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\treturn getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0)\n}\n\nfunc Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\treturn getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW)\n}\n\n//sys\tfgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\treturn fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0)\n}\n\n//sys\tsetxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error)\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\t// The parameters for the OS X implementation vary slightly compared to the\n\t// linux system call, specifically the position parameter:\n\t//\n\t//  linux:\n\t//      int setxattr(\n\t//          const char *path,\n\t//          const char *name,\n\t//          const void *value,\n\t//          size_t size,\n\t//          int flags\n\t//      );\n\t//\n\t//  darwin:\n\t//      int setxattr(\n\t//          const char *path,\n\t//          const char *name,\n\t//          void *value,\n\t//          size_t size,\n\t//          u_int32_t position,\n\t//          int options\n\t//      );\n\t//\n\t// position specifies the offset within the extended attribute. In the\n\t// current implementation, only the resource fork extended attribute makes\n\t// use of this argument. For all others, position is reserved. We simply\n\t// default to setting it to zero.\n\treturn setxattr(path, attr, xattrPointer(data), len(data), 0, flags)\n}\n\nfunc Lsetxattr(link string, attr string, data []byte, flags int) (err error) {\n\treturn setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW)\n}\n\n//sys\tfsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error)\n\nfunc Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {\n\treturn fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0)\n}\n\n//sys\tremovexattr(path string, attr string, options int) (err error)\n\nfunc Removexattr(path string, attr string) (err error) {\n\t// We wrap around and explicitly zero out the options provided to the OS X\n\t// implementation of removexattr, we do so for interoperability with the\n\t// linux variant.\n\treturn removexattr(path, attr, 0)\n}\n\nfunc Lremovexattr(link string, attr string) (err error) {\n\treturn removexattr(link, attr, XATTR_NOFOLLOW)\n}\n\n//sys\tfremovexattr(fd int, attr string, options int) (err error)\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\treturn fremovexattr(fd, attr, 0)\n}\n\n//sys\tlistxattr(path string, dest *byte, size int, options int) (sz int, err error)\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\treturn listxattr(path, xattrPointer(dest), len(dest), 0)\n}\n\nfunc Llistxattr(link string, dest []byte) (sz int, err error) {\n\treturn listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW)\n}\n\n//sys\tflistxattr(fd int, dest *byte, size int, options int) (sz int, err error)\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\treturn flistxattr(fd, xattrPointer(dest), len(dest), 0)\n}\n\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\n/*\n * Wrapped\n */\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n//sys\tkill(pid int, signum int, posix int) (err error)\n\nfunc Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) }\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\nfunc IoctlCtlInfo(fd int, ctlInfo *CtlInfo) error {\n\treturn ioctlPtr(fd, CTLIOCGINFO, unsafe.Pointer(ctlInfo))\n}\n\n// IfreqMTU is struct ifreq used to get or set a network device's MTU.\ntype IfreqMTU struct {\n\tName [IFNAMSIZ]byte\n\tMTU  int32\n}\n\n// IoctlGetIfreqMTU performs the SIOCGIFMTU ioctl operation on fd to get the MTU\n// of the network device specified by ifname.\nfunc IoctlGetIfreqMTU(fd int, ifname string) (*IfreqMTU, error) {\n\tvar ifreq IfreqMTU\n\tcopy(ifreq.Name[:], ifname)\n\terr := ioctlPtr(fd, SIOCGIFMTU, unsafe.Pointer(&ifreq))\n\treturn &ifreq, err\n}\n\n// IoctlSetIfreqMTU performs the SIOCSIFMTU ioctl operation on fd to set the MTU\n// of the network device specified by ifreq.Name.\nfunc IoctlSetIfreqMTU(fd int, ifreq *IfreqMTU) error {\n\treturn ioctlPtr(fd, SIOCSIFMTU, unsafe.Pointer(ifreq))\n}\n\n//sys\trenamexNp(from string, to string, flag uint32) (err error)\n\nfunc RenamexNp(from string, to string, flag uint32) (err error) {\n\treturn renamexNp(from, to, flag)\n}\n\n//sys\trenameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error)\n\nfunc RenameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) {\n\treturn renameatxNp(fromfd, from, tofd, to, flag)\n}\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tvar length = int64(count)\n\terr = sendfile(infd, outfd, *offset, &length, nil, 0)\n\twritten = int(length)\n\treturn\n}\n\nfunc GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {\n\tvar value IPMreqn\n\tvallen := _Socklen(SizeofIPMreqn)\n\terrno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, errno\n}\n\nfunc SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\n// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct.\n// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively.\nfunc GetsockoptXucred(fd, level, opt int) (*Xucred, error) {\n\tx := new(Xucred)\n\tvallen := _Socklen(SizeofXucred)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen)\n\treturn x, err\n}\n\nfunc GetsockoptTCPConnectionInfo(fd, level, opt int) (*TCPConnectionInfo, error) {\n\tvar value TCPConnectionInfo\n\tvallen := _Socklen(SizeofTCPConnectionInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc SysctlKinfoProc(name string, args ...int) (*KinfoProc, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar kinfo KinfoProc\n\tn := uintptr(SizeofKinfoProc)\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&kinfo)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofKinfoProc {\n\t\treturn nil, EIO\n\t}\n\treturn &kinfo, nil\n}\n\nfunc SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor {\n\t\t// Find size.\n\t\tn := uintptr(0)\n\t\tif err := sysctl(mib, nil, &n, nil, 0); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif n == 0 {\n\t\t\treturn nil, nil\n\t\t}\n\t\tif n%SizeofKinfoProc != 0 {\n\t\t\treturn nil, fmt.Errorf(\"sysctl() returned a size of %d, which is not a multiple of %d\", n, SizeofKinfoProc)\n\t\t}\n\n\t\t// Read into buffer of that size.\n\t\tbuf := make([]KinfoProc, n/SizeofKinfoProc)\n\t\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil {\n\t\t\tif err == ENOMEM {\n\t\t\t\t// Process table grew. Try again.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\tif n%SizeofKinfoProc != 0 {\n\t\t\treturn nil, fmt.Errorf(\"sysctl() returned a size of %d, which is not a multiple of %d\", n, SizeofKinfoProc)\n\t\t}\n\n\t\t// The actual call may return less than the original reported required\n\t\t// size so ensure we deal with that.\n\t\treturn buf[:n/SizeofKinfoProc], nil\n\t}\n}\n\n//sys\tpthread_chdir_np(path string) (err error)\n\nfunc PthreadChdir(path string) (err error) {\n\treturn pthread_chdir_np(path)\n}\n\n//sys\tpthread_fchdir_np(fd int) (err error)\n\nfunc PthreadFchdir(fd int) (err error) {\n\treturn pthread_fchdir_np(fd)\n}\n\n//sys\tsendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error)\n\n//sys\tshmat(id int, addr uintptr, flag int) (ret uintptr, err error)\n//sys\tshmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error)\n//sys\tshmdt(addr uintptr) (err error)\n//sys\tshmget(key int, size int, flag int) (id int, err error)\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tClonefile(src string, dst string, flags int) (err error)\n//sys\tClonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExchangedata(path1 string, path2 string, options int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetcwd(buf []byte) (n int, err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tp *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sysnb\tIssetugid() (tainted bool)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMount(fsType string, dir string, flags int, data unsafe.Pointer) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tSetattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error)\n//sys\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tSetprivexec(flag int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && darwin\n\npackage unix\n\nimport \"syscall\"\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64\n//sys\tgetfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tStatfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && darwin\n\npackage unix\n\nimport \"syscall\"\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic\n\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tgetfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin\n\npackage unix\n\nimport _ \"unsafe\"\n\n// Implemented in the runtime package (runtime/sys_darwin.go)\nfunc syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only\nfunc syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\n\n//go:linkname syscall_syscall syscall.syscall\n//go:linkname syscall_syscall6 syscall.syscall6\n//go:linkname syscall_syscall6X syscall.syscall6X\n//go:linkname syscall_syscall9 syscall.syscall9\n//go:linkname syscall_rawSyscall syscall.rawSyscall\n//go:linkname syscall_rawSyscall6 syscall.rawSyscall6\n//go:linkname syscall_syscallPtr syscall.syscallPtr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_dragonfly.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// DragonFly BSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"sync\"\n\t\"unsafe\"\n)\n\n// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h\nvar (\n\tosreldateOnce sync.Once\n\tosreldate     uint32\n)\n\n// First __DragonFly_version after September 2019 ABI changes\n// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html\nconst _dragonflyABIChangeVersion = 500705\n\nfunc supportsABI(ver uint32) bool {\n\tosreldateOnce.Do(func() { osreldate, _ = SysctlUint32(\"kern.osreldate\") })\n\treturn osreldate >= ver\n}\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\tRcf    uint16\n\tRoute  [16]uint16\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\tnamlen, ok := direntNamlen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn (16 + namlen + 1 + 7) &^ 7, true\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\n//sysnb\tpipe() (r int, w int, err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tr, w, err := pipe()\n\tif err == nil {\n\t\tp[0], p[1] = r, w\n\t}\n\treturn\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (r int, w int, err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\t// pipe2 on dragonfly takes an fds array as an argument, but still\n\t// returns the file descriptors.\n\tr, w, err := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0], p[1] = r, w\n\t}\n\treturn err\n}\n\n//sys\textpread(fd int, p []byte, flags int, offset int64) (n int, err error)\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\treturn extpread(fd, p, 0, offset)\n}\n\n//sys\textpwrite(fd int, p []byte, flags int, offset int64) (n int, err error)\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\treturn extpwrite(fd, p, 0, offset)\n}\n\nfunc Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\nfunc sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error {\n\terr := sysctl(mib, old, oldlen, nil, 0)\n\tif err != nil {\n\t\t// Utsname members on Dragonfly are only 32 bytes and\n\t\t// the syscall returns ENOMEM in case the actual value\n\t\t// is longer.\n\t\tif err == ENOMEM {\n\t\t\terr = nil\n\t\t}\n\t}\n\treturn err\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctlUname(mib, &uname.Release[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Release[unsafe.Sizeof(uname.Release)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctlUname(mib, &uname.Version[0], &n); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctlUname(mib, &uname.Machine[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetdents(fd int, buf []byte) (n int, err error)\n//sys\tGetdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(fd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\taccept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && dragonfly\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// FreeBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"sync\"\n\t\"unsafe\"\n)\n\n// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html.\nvar (\n\tosreldateOnce sync.Once\n\tosreldate     uint32\n)\n\nfunc supportsABI(ver uint32) bool {\n\tosreldateOnce.Do(func() { osreldate, _ = SysctlUint32(\"kern.osreldate\") })\n\treturn osreldate >= ver\n}\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc Pipe(p []int) (err error) {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\nfunc GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {\n\tvar value IPMreqn\n\tvallen := _Socklen(SizeofIPMreqn)\n\terrno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, errno\n}\n\nfunc SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\n// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct.\n// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively.\nfunc GetsockoptXucred(fd, level, opt int) (*Xucred, error) {\n\tx := new(Xucred)\n\tvallen := _Socklen(SizeofXucred)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen)\n\treturn x, err\n}\n\nfunc Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar (\n\t\t_p0     unsafe.Pointer\n\t\tbufsize uintptr\n\t)\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\t// Suppress ENOMEM errors to be compatible with the C library __xuname() implementation.\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Stat(path string, st *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, st, 0)\n}\n\nfunc Lstat(path string, st *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\treturn Getdirentries(fd, buf, nil)\n}\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tif basep == nil || unsafe.Sizeof(*basep) == 8 {\n\t\treturn getdirentries(fd, buf, (*uint64)(unsafe.Pointer(basep)))\n\t}\n\t// The syscall needs a 64-bit base. On 32-bit machines\n\t// we can't just use the basep passed in. See #32498.\n\tvar base uint64 = uint64(*basep)\n\tn, err = getdirentries(fd, buf, &base)\n\t*basep = uintptr(base)\n\tif base>>32 != 0 {\n\t\t// We can't stuff the base back into a uintptr, so any\n\t\t// future calls would be suspect. Generate an error.\n\t\t// EIO is allowed by getdirentries.\n\t\terr = EIO\n\t}\n\treturn\n}\n\nfunc Mknod(path string, mode uint32, dev uint64) (err error) {\n\treturn Mknodat(AT_FDCWD, path, mode, dev)\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n//sys\tptrace(request int, pid int, addr uintptr, data int) (err error)\n//sys\tptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) = SYS_PTRACE\n\nfunc PtraceAttach(pid int) (err error) {\n\treturn ptrace(PT_ATTACH, pid, 0, 0)\n}\n\nfunc PtraceCont(pid int, signal int) (err error) {\n\treturn ptrace(PT_CONTINUE, pid, 1, signal)\n}\n\nfunc PtraceDetach(pid int) (err error) {\n\treturn ptrace(PT_DETACH, pid, 1, 0)\n}\n\nfunc PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {\n\treturn ptracePtr(PT_GETFPREGS, pid, unsafe.Pointer(fpregsout), 0)\n}\n\nfunc PtraceGetRegs(pid int, regsout *Reg) (err error) {\n\treturn ptracePtr(PT_GETREGS, pid, unsafe.Pointer(regsout), 0)\n}\n\nfunc PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) {\n\tioDesc := PtraceIoDesc{\n\t\tOp:   int32(req),\n\t\tOffs: offs,\n\t}\n\tif countin > 0 {\n\t\t_ = out[:countin] // check bounds\n\t\tioDesc.Addr = &out[0]\n\t} else if out != nil {\n\t\tioDesc.Addr = (*byte)(unsafe.Pointer(&_zero))\n\t}\n\tioDesc.SetLen(countin)\n\n\terr = ptracePtr(PT_IO, pid, unsafe.Pointer(&ioDesc), 0)\n\treturn int(ioDesc.Len), err\n}\n\nfunc PtraceLwpEvents(pid int, enable int) (err error) {\n\treturn ptrace(PT_LWP_EVENTS, pid, 0, enable)\n}\n\nfunc PtraceLwpInfo(pid int, info *PtraceLwpInfoStruct) (err error) {\n\treturn ptracePtr(PT_LWPINFO, pid, unsafe.Pointer(info), int(unsafe.Sizeof(*info)))\n}\n\nfunc PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong)\n}\n\nfunc PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong)\n}\n\nfunc PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong)\n}\n\nfunc PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong)\n}\n\nfunc PtraceSetRegs(pid int, regs *Reg) (err error) {\n\treturn ptracePtr(PT_SETREGS, pid, unsafe.Pointer(regs), 0)\n}\n\nfunc PtraceSingleStep(pid int) (err error) {\n\treturn ptrace(PT_STEP, pid, 1, 0)\n}\n\nfunc Dup3(oldfd, newfd, flags int) error {\n\tif oldfd == newfd || flags&^O_CLOEXEC != 0 {\n\t\treturn EINVAL\n\t}\n\thow := F_DUP2FD\n\tif flags&O_CLOEXEC != 0 {\n\t\thow = F_DUP2FD_CLOEXEC\n\t}\n\t_, err := fcntl(oldfd, how, newfd)\n\treturn err\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tCapEnter() (err error)\n//sys\tcapRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET\n//sys\tcapRightsLimit(fd int, rightsp *CapRights) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExit(code int)\n//sys\tExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tgetdirentries(fd int, buf []byte, basep *uint64) (n int, err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknodat(fd int, path string, mode uint32, dev uint64) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(fdat int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\taccept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc PtraceGetFsBase(pid int, fsbase *int64) (err error) {\n\treturn ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint64(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc PtraceGetFsBase(pid int, fsbase *int64) (err error) {\n\treturn ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint64(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint64(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_hurd.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build hurd\n\npackage unix\n\n/*\n#include <stdint.h>\nint ioctl(int, unsigned long int, uintptr_t);\n*/\nimport \"C\"\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(uintptr(arg)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_hurd_386.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && hurd\n\npackage unix\n\nconst (\n\tTIOCGETA = 0x62251713\n)\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_illumos.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// illumos system calls not present on Solaris.\n\n//go:build amd64 && illumos\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nfunc bytes2iovec(bs [][]byte) []Iovec {\n\tiovecs := make([]Iovec, len(bs))\n\tfor i, b := range bs {\n\t\tiovecs[i].SetLen(len(b))\n\t\tif len(b) > 0 {\n\t\t\tiovecs[i].Base = &b[0]\n\t\t} else {\n\t\t\tiovecs[i].Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t}\n\treturn iovecs\n}\n\n//sys\treadv(fd int, iovs []Iovec) (n int, err error)\n\nfunc Readv(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = readv(fd, iovecs)\n\treturn n, err\n}\n\n//sys\tpreadv(fd int, iovs []Iovec, off int64) (n int, err error)\n\nfunc Preadv(fd int, iovs [][]byte, off int64) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = preadv(fd, iovecs, off)\n\treturn n, err\n}\n\n//sys\twritev(fd int, iovs []Iovec) (n int, err error)\n\nfunc Writev(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = writev(fd, iovecs)\n\treturn n, err\n}\n\n//sys\tpwritev(fd int, iovs []Iovec, off int64) (n int, err error)\n\nfunc Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = pwritev(fd, iovecs, off)\n\treturn n, err\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = libsocket.accept4\n\nfunc Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Linux system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and\n// wrap it in our own nicer implementation.\n\npackage unix\n\nimport (\n\t\"encoding/binary\"\n\t\"strconv\"\n\t\"syscall\"\n\t\"time\"\n\t\"unsafe\"\n)\n\n/*\n * Wrapped\n */\n\nfunc Access(path string, mode uint32) (err error) {\n\treturn Faccessat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chmod(path string, mode uint32) (err error) {\n\treturn Fchmodat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, 0)\n}\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\treturn Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)\n}\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tif size <= 0 {\n\t\treturn -1, EINVAL\n\t}\n\treturn EpollCreate1(0)\n}\n\n//sys\tFanotifyInit(flags uint, event_f_flags uint) (fd int, err error)\n//sys\tfanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error)\n\nfunc FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) {\n\tif pathname == \"\" {\n\t\treturn fanotifyMark(fd, flags, mask, dirFd, nil)\n\t}\n\tp, err := BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn fanotifyMark(fd, flags, mask, dirFd, p)\n}\n\n//sys\tfchmodat(dirfd int, path string, mode uint32) (err error)\n//sys\tfchmodat2(dirfd int, path string, mode uint32, flags int) (err error)\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) error {\n\t// Linux fchmodat doesn't support the flags parameter, but fchmodat2 does.\n\t// Try fchmodat2 if flags are specified.\n\tif flags != 0 {\n\t\terr := fchmodat2(dirfd, path, mode, flags)\n\t\tif err == ENOSYS {\n\t\t\t// fchmodat2 isn't available. If the flags are known to be valid,\n\t\t\t// return EOPNOTSUPP to indicate that fchmodat doesn't support them.\n\t\t\tif flags&^(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 {\n\t\t\t\treturn EINVAL\n\t\t\t} else if flags&(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 {\n\t\t\t\treturn EOPNOTSUPP\n\t\t\t}\n\t\t}\n\t\treturn err\n\t}\n\treturn fchmodat(dirfd, path, mode)\n}\n\nfunc InotifyInit() (fd int, err error) {\n\treturn InotifyInit1(0)\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n// ioctl itself should not be exposed directly, but additional get/set functions\n// for specific types are permissible. These are defined in ioctl.go and\n// ioctl_linux.go.\n//\n// The third argument to ioctl is often a pointer but sometimes an integer.\n// Callers should use ioctlPtr when the third argument is a pointer and ioctl\n// when the third argument is an integer.\n//\n// TODO: some existing code incorrectly uses ioctl when it should use ioctlPtr.\n\n//sys\tLinkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error)\n\nfunc Link(oldpath string, newpath string) (err error) {\n\treturn Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0)\n}\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\treturn Mkdirat(AT_FDCWD, path, mode)\n}\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\treturn Mknodat(AT_FDCWD, path, mode, dev)\n}\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\treturn openat(AT_FDCWD, path, mode|O_LARGEFILE, perm)\n}\n\n//sys\topenat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\treturn openat(dirfd, path, flags|O_LARGEFILE, mode)\n}\n\n//sys\topenat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error)\n\nfunc Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) {\n\treturn openat2(dirfd, path, how, SizeofOpenHow)\n}\n\nfunc Pipe(p []int) error {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\n//sys\tppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n\nfunc Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn ppoll(nil, 0, timeout, sigmask)\n\t}\n\treturn ppoll(&fds[0], len(fds), timeout, sigmask)\n}\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout >= 0 {\n\t\tts = new(Timespec)\n\t\t*ts = NsecToTimespec(int64(timeout) * 1e6)\n\t}\n\treturn Ppoll(fds, ts, nil)\n}\n\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\treturn Readlinkat(AT_FDCWD, path, buf)\n}\n\nfunc Rename(oldpath string, newpath string) (err error) {\n\treturn Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath)\n}\n\nfunc Rmdir(path string) error {\n\treturn Unlinkat(AT_FDCWD, path, AT_REMOVEDIR)\n}\n\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n\nfunc Symlink(oldpath string, newpath string) (err error) {\n\treturn Symlinkat(oldpath, AT_FDCWD, newpath)\n}\n\nfunc Unlink(path string) error {\n\treturn Unlinkat(AT_FDCWD, path, 0)\n}\n\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n\nfunc Utimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\terr := utimensat(AT_FDCWD, path, nil, 0)\n\t\tif err != ENOSYS {\n\t\t\treturn err\n\t\t}\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar ts [2]Timespec\n\tts[0] = NsecToTimespec(TimevalToNsec(tv[0]))\n\tts[1] = NsecToTimespec(TimevalToNsec(tv[1]))\n\terr := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\treturn UtimesNanoAt(AT_FDCWD, path, ts, 0)\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\nfunc Futimesat(dirfd int, path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimesat(dirfd, path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc Futimes(fd int, tv []Timeval) (err error) {\n\t// Believe it or not, this is the best we can do on Linux\n\t// (and is what glibc does).\n\treturn Utimes(\"/proc/self/fd/\"+strconv.Itoa(fd), tv)\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error)\n\nfunc Getwd() (wd string, err error) {\n\tvar buf [PathMax]byte\n\tn, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\t// Getcwd returns the number of bytes written to buf, including the NUL.\n\tif n < 1 || n > len(buf) || buf[n-1] != 0 {\n\t\treturn \"\", EINVAL\n\t}\n\t// In some cases, Linux can return a path that starts with the\n\t// \"(unreachable)\" prefix, which can potentially be a valid relative\n\t// path. To work around that, return ENOENT if path is not absolute.\n\tif buf[0] != '/' {\n\t\treturn \"\", ENOENT\n\t}\n\n\treturn string(buf[0 : n-1]), nil\n}\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 1<<16 on Linux.\n\tif n < 0 || n > 1<<20 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\ntype WaitStatus uint32\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits. At least that's the idea.\n// There are various irregularities. For example, the\n// \"continued\" status is 0xFFFF, distinguishing itself\n// from stopped via the core dump bit.\n\nconst (\n\tmask    = 0x7F\n\tcore    = 0x80\n\texited  = 0x00\n\tstopped = 0x7F\n\tshift   = 8\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited }\n\nfunc (w WaitStatus) Stopped() bool { return w&0xFF == stopped }\n\nfunc (w WaitStatus) Continued() bool { return w == 0xFFFF }\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif !w.Exited() {\n\t\treturn -1\n\t}\n\treturn int(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tif !w.Signaled() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w & mask)\n}\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int {\n\tif w.StopSignal() != SIGTRAP {\n\t\treturn -1\n\t}\n\treturn int(w>>shift) >> 8\n}\n\n//sys\twait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\twpid, err = wait4(pid, &status, options, rusage)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n//sys\tWaitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error)\n\nfunc Mkfifo(path string, mode uint32) error {\n\treturn Mknod(path, mode|S_IFIFO, 0)\n}\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) error {\n\treturn Mknodat(dirfd, path, mode|S_IFIFO, 0)\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\n// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets.\ntype SockaddrLinklayer struct {\n\tProtocol uint16\n\tIfindex  int\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]byte\n\traw      RawSockaddrLinklayer\n}\n\nfunc (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_PACKET\n\tsa.raw.Protocol = sa.Protocol\n\tsa.raw.Ifindex = int32(sa.Ifindex)\n\tsa.raw.Hatype = sa.Hatype\n\tsa.raw.Pkttype = sa.Pkttype\n\tsa.raw.Halen = sa.Halen\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil\n}\n\n// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets.\ntype SockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n\traw    RawSockaddrNetlink\n}\n\nfunc (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_NETLINK\n\tsa.raw.Pad = sa.Pad\n\tsa.raw.Pid = sa.Pid\n\tsa.raw.Groups = sa.Groups\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil\n}\n\n// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the HCI protocol.\ntype SockaddrHCI struct {\n\tDev     uint16\n\tChannel uint16\n\traw     RawSockaddrHCI\n}\n\nfunc (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tsa.raw.Dev = sa.Dev\n\tsa.raw.Channel = sa.Channel\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil\n}\n\n// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the L2CAP protocol.\ntype SockaddrL2 struct {\n\tPSM      uint16\n\tCID      uint16\n\tAddr     [6]uint8\n\tAddrType uint8\n\traw      RawSockaddrL2\n}\n\nfunc (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tpsm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm))\n\tpsm[0] = byte(sa.PSM)\n\tpsm[1] = byte(sa.PSM >> 8)\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i]\n\t}\n\tcid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid))\n\tcid[0] = byte(sa.CID)\n\tcid[1] = byte(sa.CID >> 8)\n\tsa.raw.Bdaddr_type = sa.AddrType\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil\n}\n\n// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the RFCOMM protocol.\n//\n// Server example:\n//\n//\tfd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)\n//\t_ = unix.Bind(fd, &unix.SockaddrRFCOMM{\n//\t\tChannel: 1,\n//\t\tAddr:    [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00\n//\t})\n//\t_ = Listen(fd, 1)\n//\tnfd, sa, _ := Accept(fd)\n//\tfmt.Printf(\"conn addr=%v fd=%d\", sa.(*unix.SockaddrRFCOMM).Addr, nfd)\n//\tRead(nfd, buf)\n//\n// Client example:\n//\n//\tfd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)\n//\t_ = Connect(fd, &SockaddrRFCOMM{\n//\t\tChannel: 1,\n//\t\tAddr:    [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11\n//\t})\n//\tWrite(fd, []byte(`hello`))\ntype SockaddrRFCOMM struct {\n\t// Addr represents a bluetooth address, byte ordering is little-endian.\n\tAddr [6]uint8\n\n\t// Channel is a designated bluetooth channel, only 1-30 are available for use.\n\t// Since Linux 2.6.7 and further zero value is the first available channel.\n\tChannel uint8\n\n\traw RawSockaddrRFCOMM\n}\n\nfunc (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tsa.raw.Channel = sa.Channel\n\tsa.raw.Bdaddr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil\n}\n\n// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets.\n// The RxID and TxID fields are used for transport protocol addressing in\n// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with\n// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning.\n//\n// The SockaddrCAN struct must be bound to the socket file descriptor\n// using Bind before the CAN socket can be used.\n//\n//\t// Read one raw CAN frame\n//\tfd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW)\n//\taddr := &SockaddrCAN{Ifindex: index}\n//\tBind(fd, addr)\n//\tframe := make([]byte, 16)\n//\tRead(fd, frame)\n//\n// The full SocketCAN documentation can be found in the linux kernel\n// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt\ntype SockaddrCAN struct {\n\tIfindex int\n\tRxID    uint32\n\tTxID    uint32\n\traw     RawSockaddrCAN\n}\n\nfunc (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_CAN\n\tsa.raw.Ifindex = int32(sa.Ifindex)\n\trx := (*[4]byte)(unsafe.Pointer(&sa.RxID))\n\tfor i := 0; i < 4; i++ {\n\t\tsa.raw.Addr[i] = rx[i]\n\t}\n\ttx := (*[4]byte)(unsafe.Pointer(&sa.TxID))\n\tfor i := 0; i < 4; i++ {\n\t\tsa.raw.Addr[i+4] = tx[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil\n}\n\n// SockaddrCANJ1939 implements the Sockaddr interface for AF_CAN using J1939\n// protocol (https://en.wikipedia.org/wiki/SAE_J1939). For more information\n// on the purposes of the fields, check the official linux kernel documentation\n// available here: https://www.kernel.org/doc/Documentation/networking/j1939.rst\ntype SockaddrCANJ1939 struct {\n\tIfindex int\n\tName    uint64\n\tPGN     uint32\n\tAddr    uint8\n\traw     RawSockaddrCAN\n}\n\nfunc (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_CAN\n\tsa.raw.Ifindex = int32(sa.Ifindex)\n\tn := (*[8]byte)(unsafe.Pointer(&sa.Name))\n\tfor i := 0; i < 8; i++ {\n\t\tsa.raw.Addr[i] = n[i]\n\t}\n\tp := (*[4]byte)(unsafe.Pointer(&sa.PGN))\n\tfor i := 0; i < 4; i++ {\n\t\tsa.raw.Addr[i+8] = p[i]\n\t}\n\tsa.raw.Addr[12] = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil\n}\n\n// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets.\n// SockaddrALG enables userspace access to the Linux kernel's cryptography\n// subsystem. The Type and Name fields specify which type of hash or cipher\n// should be used with a given socket.\n//\n// To create a file descriptor that provides access to a hash or cipher, both\n// Bind and Accept must be used. Once the setup process is complete, input\n// data can be written to the socket, processed by the kernel, and then read\n// back as hash output or ciphertext.\n//\n// Here is an example of using an AF_ALG socket with SHA1 hashing.\n// The initial socket setup process is as follows:\n//\n//\t// Open a socket to perform SHA1 hashing.\n//\tfd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0)\n//\taddr := &unix.SockaddrALG{Type: \"hash\", Name: \"sha1\"}\n//\tunix.Bind(fd, addr)\n//\t// Note: unix.Accept does not work at this time; must invoke accept()\n//\t// manually using unix.Syscall.\n//\thashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0)\n//\n// Once a file descriptor has been returned from Accept, it may be used to\n// perform SHA1 hashing. The descriptor is not safe for concurrent use, but\n// may be re-used repeatedly with subsequent Write and Read operations.\n//\n// When hashing a small byte slice or string, a single Write and Read may\n// be used:\n//\n//\t// Assume hashfd is already configured using the setup process.\n//\thash := os.NewFile(hashfd, \"sha1\")\n//\t// Hash an input string and read the results. Each Write discards\n//\t// previous hash state. Read always reads the current state.\n//\tb := make([]byte, 20)\n//\tfor i := 0; i < 2; i++ {\n//\t    io.WriteString(hash, \"Hello, world.\")\n//\t    hash.Read(b)\n//\t    fmt.Println(hex.EncodeToString(b))\n//\t}\n//\t// Output:\n//\t// 2ae01472317d1935a84797ec1983ae243fc6aa28\n//\t// 2ae01472317d1935a84797ec1983ae243fc6aa28\n//\n// For hashing larger byte slices, or byte streams such as those read from\n// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update\n// the hash digest instead of creating a new one for a given chunk and finalizing it.\n//\n//\t// Assume hashfd and addr are already configured using the setup process.\n//\thash := os.NewFile(hashfd, \"sha1\")\n//\t// Hash the contents of a file.\n//\tf, _ := os.Open(\"/tmp/linux-4.10-rc7.tar.xz\")\n//\tb := make([]byte, 4096)\n//\tfor {\n//\t    n, err := f.Read(b)\n//\t    if err == io.EOF {\n//\t        break\n//\t    }\n//\t    unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr)\n//\t}\n//\thash.Read(b)\n//\tfmt.Println(hex.EncodeToString(b))\n//\t// Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5\n//\n// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html.\ntype SockaddrALG struct {\n\tType    string\n\tName    string\n\tFeature uint32\n\tMask    uint32\n\traw     RawSockaddrALG\n}\n\nfunc (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\t// Leave room for NUL byte terminator.\n\tif len(sa.Type) > len(sa.raw.Type)-1 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif len(sa.Name) > len(sa.raw.Name)-1 {\n\t\treturn nil, 0, EINVAL\n\t}\n\n\tsa.raw.Family = AF_ALG\n\tsa.raw.Feat = sa.Feature\n\tsa.raw.Mask = sa.Mask\n\n\tcopy(sa.raw.Type[:], sa.Type)\n\tcopy(sa.raw.Name[:], sa.Name)\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil\n}\n\n// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets.\n// SockaddrVM provides access to Linux VM sockets: a mechanism that enables\n// bidirectional communication between a hypervisor and its guest virtual\n// machines.\ntype SockaddrVM struct {\n\t// CID and Port specify a context ID and port address for a VM socket.\n\t// Guests have a unique CID, and hosts may have a well-known CID of:\n\t//  - VMADDR_CID_HYPERVISOR: refers to the hypervisor process.\n\t//  - VMADDR_CID_LOCAL: refers to local communication (loopback).\n\t//  - VMADDR_CID_HOST: refers to other processes on the host.\n\tCID   uint32\n\tPort  uint32\n\tFlags uint8\n\traw   RawSockaddrVM\n}\n\nfunc (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_VSOCK\n\tsa.raw.Port = sa.Port\n\tsa.raw.Cid = sa.CID\n\tsa.raw.Flags = sa.Flags\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil\n}\n\ntype SockaddrXDP struct {\n\tFlags        uint16\n\tIfindex      uint32\n\tQueueID      uint32\n\tSharedUmemFD uint32\n\traw          RawSockaddrXDP\n}\n\nfunc (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_XDP\n\tsa.raw.Flags = sa.Flags\n\tsa.raw.Ifindex = sa.Ifindex\n\tsa.raw.Queue_id = sa.QueueID\n\tsa.raw.Shared_umem_fd = sa.SharedUmemFD\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil\n}\n\n// This constant mirrors the #define of PX_PROTO_OE in\n// linux/if_pppox.h. We're defining this by hand here instead of\n// autogenerating through mkerrors.sh because including\n// linux/if_pppox.h causes some declaration conflicts with other\n// includes (linux/if_pppox.h includes linux/in.h, which conflicts\n// with netinet/in.h). Given that we only need a single zero constant\n// out of that file, it's cleaner to just define it by hand here.\nconst px_proto_oe = 0\n\ntype SockaddrPPPoE struct {\n\tSID    uint16\n\tRemote []byte\n\tDev    string\n\traw    RawSockaddrPPPoX\n}\n\nfunc (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif len(sa.Remote) != 6 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif len(sa.Dev) > IFNAMSIZ-1 {\n\t\treturn nil, 0, EINVAL\n\t}\n\n\t*(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX\n\t// This next field is in host-endian byte order. We can't use the\n\t// same unsafe pointer cast as above, because this value is not\n\t// 32-bit aligned and some architectures don't allow unaligned\n\t// access.\n\t//\n\t// However, the value of px_proto_oe is 0, so we can use\n\t// encoding/binary helpers to write the bytes without worrying\n\t// about the ordering.\n\tbinary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe)\n\t// This field is deliberately big-endian, unlike the previous\n\t// one. The kernel expects SID to be in network byte order.\n\tbinary.BigEndian.PutUint16(sa.raw[6:8], sa.SID)\n\tcopy(sa.raw[8:14], sa.Remote)\n\tfor i := 14; i < 14+IFNAMSIZ; i++ {\n\t\tsa.raw[i] = 0\n\t}\n\tcopy(sa.raw[14:], sa.Dev)\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil\n}\n\n// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets.\n// For more information on TIPC, see: http://tipc.sourceforge.net/.\ntype SockaddrTIPC struct {\n\t// Scope is the publication scopes when binding service/service range.\n\t// Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE.\n\tScope int\n\n\t// Addr is the type of address used to manipulate a socket. Addr must be\n\t// one of:\n\t//  - *TIPCSocketAddr: \"id\" variant in the C addr union\n\t//  - *TIPCServiceRange: \"nameseq\" variant in the C addr union\n\t//  - *TIPCServiceName: \"name\" variant in the C addr union\n\t//\n\t// If nil, EINVAL will be returned when the structure is used.\n\tAddr TIPCAddr\n\n\traw RawSockaddrTIPC\n}\n\n// TIPCAddr is implemented by types that can be used as an address for\n// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange,\n// and *TIPCServiceName.\ntype TIPCAddr interface {\n\ttipcAddrtype() uint8\n\ttipcAddr() [12]byte\n}\n\nfunc (sa *TIPCSocketAddr) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR }\n\nfunc (sa *TIPCServiceRange) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE }\n\nfunc (sa *TIPCServiceName) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR }\n\nfunc (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Addr == nil {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_TIPC\n\tsa.raw.Scope = int8(sa.Scope)\n\tsa.raw.Addrtype = sa.Addr.tipcAddrtype()\n\tsa.raw.Addr = sa.Addr.tipcAddr()\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil\n}\n\n// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets.\ntype SockaddrL2TPIP struct {\n\tAddr   [4]byte\n\tConnId uint32\n\traw    RawSockaddrL2TPIP\n}\n\nfunc (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_INET\n\tsa.raw.Conn_id = sa.ConnId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil\n}\n\n// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets.\ntype SockaddrL2TPIP6 struct {\n\tAddr   [16]byte\n\tZoneId uint32\n\tConnId uint32\n\traw    RawSockaddrL2TPIP6\n}\n\nfunc (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_INET6\n\tsa.raw.Conn_id = sa.ConnId\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil\n}\n\n// SockaddrIUCV implements the Sockaddr interface for AF_IUCV sockets.\ntype SockaddrIUCV struct {\n\tUserID string\n\tName   string\n\traw    RawSockaddrIUCV\n}\n\nfunc (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_IUCV\n\t// These are EBCDIC encoded by the kernel, but we still need to pad them\n\t// with blanks. Initializing with blanks allows the caller to feed in either\n\t// a padded or an unpadded string.\n\tfor i := 0; i < 8; i++ {\n\t\tsa.raw.Nodeid[i] = ' '\n\t\tsa.raw.User_id[i] = ' '\n\t\tsa.raw.Name[i] = ' '\n\t}\n\tif len(sa.UserID) > 8 || len(sa.Name) > 8 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tfor i, b := range []byte(sa.UserID[:]) {\n\t\tsa.raw.User_id[i] = int8(b)\n\t}\n\tfor i, b := range []byte(sa.Name[:]) {\n\t\tsa.raw.Name[i] = int8(b)\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil\n}\n\ntype SockaddrNFC struct {\n\tDeviceIdx   uint32\n\tTargetIdx   uint32\n\tNFCProtocol uint32\n\traw         RawSockaddrNFC\n}\n\nfunc (sa *SockaddrNFC) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Sa_family = AF_NFC\n\tsa.raw.Dev_idx = sa.DeviceIdx\n\tsa.raw.Target_idx = sa.TargetIdx\n\tsa.raw.Nfc_protocol = sa.NFCProtocol\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrNFC, nil\n}\n\ntype SockaddrNFCLLCP struct {\n\tDeviceIdx      uint32\n\tTargetIdx      uint32\n\tNFCProtocol    uint32\n\tDestinationSAP uint8\n\tSourceSAP      uint8\n\tServiceName    string\n\traw            RawSockaddrNFCLLCP\n}\n\nfunc (sa *SockaddrNFCLLCP) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Sa_family = AF_NFC\n\tsa.raw.Dev_idx = sa.DeviceIdx\n\tsa.raw.Target_idx = sa.TargetIdx\n\tsa.raw.Nfc_protocol = sa.NFCProtocol\n\tsa.raw.Dsap = sa.DestinationSAP\n\tsa.raw.Ssap = sa.SourceSAP\n\tif len(sa.ServiceName) > len(sa.raw.Service_name) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tcopy(sa.raw.Service_name[:], sa.ServiceName)\n\tsa.raw.SetServiceNameLen(len(sa.ServiceName))\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrNFCLLCP, nil\n}\n\nvar socketProtocol = func(fd int) (int, error) {\n\treturn GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_NETLINK:\n\t\tpp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrNetlink)\n\t\tsa.Family = pp.Family\n\t\tsa.Pad = pp.Pad\n\t\tsa.Pid = pp.Pid\n\t\tsa.Groups = pp.Groups\n\t\treturn sa, nil\n\n\tcase AF_PACKET:\n\t\tpp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrLinklayer)\n\t\tsa.Protocol = pp.Protocol\n\t\tsa.Ifindex = int(pp.Ifindex)\n\t\tsa.Hatype = pp.Hatype\n\t\tsa.Pkttype = pp.Pkttype\n\t\tsa.Halen = pp.Halen\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\tif pp.Path[0] == 0 {\n\t\t\t// \"Abstract\" Unix domain socket.\n\t\t\t// Rewrite leading NUL as @ for textual display.\n\t\t\t// (This is the standard convention.)\n\t\t\t// Not friendly to overwrite in place,\n\t\t\t// but the callers below don't care.\n\t\t\tpp.Path[0] = '@'\n\t\t}\n\n\t\t// Assume path ends at NUL.\n\t\t// This is not technically the Linux semantics for\n\t\t// abstract Unix domain sockets--they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs--but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < len(pp.Path) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tswitch proto {\n\t\tcase IPPROTO_L2TP:\n\t\t\tpp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrL2TPIP)\n\t\t\tsa.ConnId = pp.Conn_id\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrInet4)\n\t\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\t}\n\n\tcase AF_INET6:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tswitch proto {\n\t\tcase IPPROTO_L2TP:\n\t\t\tpp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrL2TPIP6)\n\t\t\tsa.ConnId = pp.Conn_id\n\t\t\tsa.ZoneId = pp.Scope_id\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrInet6)\n\t\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\t\tsa.ZoneId = pp.Scope_id\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\t}\n\n\tcase AF_VSOCK:\n\t\tpp := (*RawSockaddrVM)(unsafe.Pointer(rsa))\n\t\tsa := &SockaddrVM{\n\t\t\tCID:   pp.Cid,\n\t\t\tPort:  pp.Port,\n\t\t\tFlags: pp.Flags,\n\t\t}\n\t\treturn sa, nil\n\tcase AF_BLUETOOTH:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\t// only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections\n\t\tswitch proto {\n\t\tcase BTPROTO_L2CAP:\n\t\t\tpp := (*RawSockaddrL2)(unsafe.Pointer(rsa))\n\t\t\tsa := &SockaddrL2{\n\t\t\t\tPSM:      pp.Psm,\n\t\t\t\tCID:      pp.Cid,\n\t\t\t\tAddr:     pp.Bdaddr,\n\t\t\t\tAddrType: pp.Bdaddr_type,\n\t\t\t}\n\t\t\treturn sa, nil\n\t\tcase BTPROTO_RFCOMM:\n\t\t\tpp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa))\n\t\t\tsa := &SockaddrRFCOMM{\n\t\t\t\tChannel: pp.Channel,\n\t\t\t\tAddr:    pp.Bdaddr,\n\t\t\t}\n\t\t\treturn sa, nil\n\t\t}\n\tcase AF_XDP:\n\t\tpp := (*RawSockaddrXDP)(unsafe.Pointer(rsa))\n\t\tsa := &SockaddrXDP{\n\t\t\tFlags:        pp.Flags,\n\t\t\tIfindex:      pp.Ifindex,\n\t\t\tQueueID:      pp.Queue_id,\n\t\t\tSharedUmemFD: pp.Shared_umem_fd,\n\t\t}\n\t\treturn sa, nil\n\tcase AF_PPPOX:\n\t\tpp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa))\n\t\tif binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t\tsa := &SockaddrPPPoE{\n\t\t\tSID:    binary.BigEndian.Uint16(pp[6:8]),\n\t\t\tRemote: pp[8:14],\n\t\t}\n\t\tfor i := 14; i < 14+IFNAMSIZ; i++ {\n\t\t\tif pp[i] == 0 {\n\t\t\t\tsa.Dev = string(pp[14:i])\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treturn sa, nil\n\tcase AF_TIPC:\n\t\tpp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa))\n\n\t\tsa := &SockaddrTIPC{\n\t\t\tScope: int(pp.Scope),\n\t\t}\n\n\t\t// Determine which union variant is present in pp.Addr by checking\n\t\t// pp.Addrtype.\n\t\tswitch pp.Addrtype {\n\t\tcase TIPC_SERVICE_RANGE:\n\t\t\tsa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr))\n\t\tcase TIPC_SERVICE_ADDR:\n\t\t\tsa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr))\n\t\tcase TIPC_SOCKET_ADDR:\n\t\t\tsa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr))\n\t\tdefault:\n\t\t\treturn nil, EINVAL\n\t\t}\n\n\t\treturn sa, nil\n\tcase AF_IUCV:\n\t\tpp := (*RawSockaddrIUCV)(unsafe.Pointer(rsa))\n\n\t\tvar user [8]byte\n\t\tvar name [8]byte\n\n\t\tfor i := 0; i < 8; i++ {\n\t\t\tuser[i] = byte(pp.User_id[i])\n\t\t\tname[i] = byte(pp.Name[i])\n\t\t}\n\n\t\tsa := &SockaddrIUCV{\n\t\t\tUserID: string(user[:]),\n\t\t\tName:   string(name[:]),\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_CAN:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpp := (*RawSockaddrCAN)(unsafe.Pointer(rsa))\n\n\t\tswitch proto {\n\t\tcase CAN_J1939:\n\t\t\tsa := &SockaddrCANJ1939{\n\t\t\t\tIfindex: int(pp.Ifindex),\n\t\t\t}\n\t\t\tname := (*[8]byte)(unsafe.Pointer(&sa.Name))\n\t\t\tfor i := 0; i < 8; i++ {\n\t\t\t\tname[i] = pp.Addr[i]\n\t\t\t}\n\t\t\tpgn := (*[4]byte)(unsafe.Pointer(&sa.PGN))\n\t\t\tfor i := 0; i < 4; i++ {\n\t\t\t\tpgn[i] = pp.Addr[i+8]\n\t\t\t}\n\t\t\taddr := (*[1]byte)(unsafe.Pointer(&sa.Addr))\n\t\t\taddr[0] = pp.Addr[12]\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\tsa := &SockaddrCAN{\n\t\t\t\tIfindex: int(pp.Ifindex),\n\t\t\t}\n\t\t\trx := (*[4]byte)(unsafe.Pointer(&sa.RxID))\n\t\t\tfor i := 0; i < 4; i++ {\n\t\t\t\trx[i] = pp.Addr[i]\n\t\t\t}\n\t\t\ttx := (*[4]byte)(unsafe.Pointer(&sa.TxID))\n\t\t\tfor i := 0; i < 4; i++ {\n\t\t\t\ttx[i] = pp.Addr[i+4]\n\t\t\t}\n\t\t\treturn sa, nil\n\t\t}\n\tcase AF_NFC:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch proto {\n\t\tcase NFC_SOCKPROTO_RAW:\n\t\t\tpp := (*RawSockaddrNFC)(unsafe.Pointer(rsa))\n\t\t\tsa := &SockaddrNFC{\n\t\t\t\tDeviceIdx:   pp.Dev_idx,\n\t\t\t\tTargetIdx:   pp.Target_idx,\n\t\t\t\tNFCProtocol: pp.Nfc_protocol,\n\t\t\t}\n\t\t\treturn sa, nil\n\t\tcase NFC_SOCKPROTO_LLCP:\n\t\t\tpp := (*RawSockaddrNFCLLCP)(unsafe.Pointer(rsa))\n\t\t\tif uint64(pp.Service_name_len) > uint64(len(pp.Service_name)) {\n\t\t\t\treturn nil, EINVAL\n\t\t\t}\n\t\t\tsa := &SockaddrNFCLLCP{\n\t\t\t\tDeviceIdx:      pp.Dev_idx,\n\t\t\t\tTargetIdx:      pp.Target_idx,\n\t\t\t\tNFCProtocol:    pp.Nfc_protocol,\n\t\t\t\tDestinationSAP: pp.Dsap,\n\t\t\t\tSourceSAP:      pp.Ssap,\n\t\t\t\tServiceName:    string(pp.Service_name[:pp.Service_name_len]),\n\t\t\t}\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\treturn nil, EINVAL\n\t\t}\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, 0)\n\tif err != nil {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\nfunc GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {\n\tvar value IPMreqn\n\tvallen := _Socklen(SizeofIPMreqn)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptUcred(fd, level, opt int) (*Ucred, error) {\n\tvar value Ucred\n\tvallen := _Socklen(SizeofUcred)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) {\n\tvar value TCPInfo\n\tvallen := _Socklen(SizeofTCPInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\tif err == ERANGE {\n\t\t\tbuf = make([]byte, vallen)\n\t\t\terr = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\nfunc GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) {\n\tvar value TpacketStats\n\tvallen := _Socklen(SizeofTpacketStats)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) {\n\tvar value TpacketStatsV3\n\tvallen := _Socklen(SizeofTpacketStatsV3)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\nfunc SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\n// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a\n// socket to filter incoming packets.  See 'man 7 socket' for usage information.\nfunc SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog))\n}\n\nfunc SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error {\n\tvar p unsafe.Pointer\n\tif len(filter) > 0 {\n\t\tp = unsafe.Pointer(&filter[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter))\n}\n\nfunc SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))\n}\n\nfunc SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))\n}\n\nfunc SetsockoptTCPRepairOpt(fd, level, opt int, o []TCPRepairOpt) (err error) {\n\tif len(o) == 0 {\n\t\treturn EINVAL\n\t}\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&o[0]), uintptr(SizeofTCPRepairOpt*len(o)))\n}\n\nfunc SetsockoptTCPMD5Sig(fd, level, opt int, s *TCPMD5Sig) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(s), unsafe.Sizeof(*s))\n}\n\n// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html)\n\n// KeyctlInt calls keyctl commands in which each argument is an int.\n// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK,\n// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT,\n// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT,\n// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT.\n//sys\tKeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlBuffer calls keyctl commands in which the third and fourth\n// arguments are a buffer and its length, respectively.\n// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE.\n//sys\tKeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlString calls keyctl commands which return a string.\n// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY.\nfunc KeyctlString(cmd int, id int) (string, error) {\n\t// We must loop as the string data may change in between the syscalls.\n\t// We could allocate a large buffer here to reduce the chance that the\n\t// syscall needs to be called twice; however, this is unnecessary as\n\t// the performance loss is negligible.\n\tvar buffer []byte\n\tfor {\n\t\t// Try to fill the buffer with data\n\t\tlength, err := KeyctlBuffer(cmd, id, buffer, 0)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\t// Check if the data was written\n\t\tif length <= len(buffer) {\n\t\t\t// Exclude the null terminator\n\t\t\treturn string(buffer[:length-1]), nil\n\t\t}\n\n\t\t// Make a bigger buffer if needed\n\t\tbuffer = make([]byte, length)\n\t}\n}\n\n// Keyctl commands with special signatures.\n\n// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html\nfunc KeyctlGetKeyringID(id int, create bool) (ringid int, err error) {\n\tcreateInt := 0\n\tif create {\n\t\tcreateInt = 1\n\t}\n\treturn KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0)\n}\n\n// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the\n// key handle permission mask as described in the \"keyctl setperm\" section of\n// http://man7.org/linux/man-pages/man1/keyctl.1.html.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html\nfunc KeyctlSetperm(id int, perm uint32) error {\n\t_, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0)\n\treturn err\n}\n\n//sys\tkeyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html\nfunc KeyctlJoinSessionKeyring(name string) (ringid int, err error) {\n\treturn keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name)\n}\n\n//sys\tkeyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlSearch implements the KEYCTL_SEARCH command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_search.3.html\nfunc KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) {\n\treturn keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid)\n}\n\n//sys\tkeyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL\n\n// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This\n// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice\n// of Iovec (each of which represents a buffer) instead of a single buffer.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html\nfunc KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error {\n\treturn keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid)\n}\n\n//sys\tkeyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command\n// computes a Diffie-Hellman shared secret based on the provide params. The\n// secret is written to the provided buffer and the returned size is the number\n// of bytes written (returning an error if there is insufficient space in the\n// buffer). If a nil buffer is passed in, this function returns the minimum\n// buffer length needed to store the appropriate data. Note that this differs\n// from KEYCTL_READ's behavior which always returns the requested payload size.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html\nfunc KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error) {\n\treturn keyctlDH(KEYCTL_DH_COMPUTE, params, buffer)\n}\n\n// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This\n// command limits the set of keys that can be linked to the keyring, regardless\n// of keyring permissions. The command requires the \"setattr\" permission.\n//\n// When called with an empty keyType the command locks the keyring, preventing\n// any further keys from being linked to the keyring.\n//\n// The \"asymmetric\" keyType defines restrictions requiring key payloads to be\n// DER encoded X.509 certificates signed by keys in another keyring. Restrictions\n// for \"asymmetric\" include \"builtin_trusted\", \"builtin_and_secondary_trusted\",\n// \"key_or_keyring:<key>\", and \"key_or_keyring:<key>:chain\".\n//\n// As of Linux 4.12, only the \"asymmetric\" keyType defines type-specific\n// restrictions.\n//\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html\n// http://man7.org/linux/man-pages/man2/keyctl.2.html\nfunc KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error {\n\tif keyType == \"\" {\n\t\treturn keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid)\n\t}\n\treturn keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction)\n}\n\n//sys\tkeyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL\n//sys\tkeyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\tif emptyIovecs(iov) {\n\t\t\tvar sockType int\n\t\t\tsockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// receive at least one normal byte\n\t\t\tif sockType != SOCK_DGRAM {\n\t\t\t\tvar iova [1]Iovec\n\t\t\t\tiova[0].Base = &dummy\n\t\t\t\tiova[0].SetLen(1)\n\t\t\t\tiov = iova[:]\n\t\t\t}\n\t\t}\n\t\tmsg.Control = &oob[0]\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); err != nil {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\treturn\n}\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(ptr)\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar sockType int\n\t\t\tsockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\t// send at least one normal byte\n\t\t\tif sockType != SOCK_DGRAM {\n\t\t\t\tvar iova [1]Iovec\n\t\t\t\tiova[0].Base = &dummy\n\t\t\t\tiova[0].SetLen(1)\n\t\t\t\tiov = iova[:]\n\t\t\t}\n\t\t}\n\t\tmsg.Control = &oob[0]\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n// BindToDevice binds the socket associated with fd to device.\nfunc BindToDevice(fd int, device string) (err error) {\n\treturn SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device)\n}\n\n//sys\tptrace(request int, pid int, addr uintptr, data uintptr) (err error)\n//sys\tptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) = SYS_PTRACE\n\nfunc ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) {\n\t// The peek requests are machine-size oriented, so we wrap it\n\t// to retrieve arbitrary-length data.\n\n\t// The ptrace syscall differs from glibc's ptrace.\n\t// Peeks returns the word in *data, not as the return value.\n\n\tvar buf [SizeofPtr]byte\n\n\t// Leading edge. PEEKTEXT/PEEKDATA don't require aligned\n\t// access (PEEKUSER warns that it might), but if we don't\n\t// align our reads, we might straddle an unmapped page\n\t// boundary and not get the bytes leading up to the page\n\t// boundary.\n\tn := 0\n\tif addr%SizeofPtr != 0 {\n\t\terr = ptracePtr(req, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn += copy(out, buf[addr%SizeofPtr:])\n\t\tout = out[n:]\n\t}\n\n\t// Remainder.\n\tfor len(out) > 0 {\n\t\t// We use an internal buffer to guarantee alignment.\n\t\t// It's not documented if this is necessary, but we're paranoid.\n\t\terr = ptracePtr(req, pid, addr+uintptr(n), unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tcopied := copy(out, buf[0:])\n\t\tn += copied\n\t\tout = out[copied:]\n\t}\n\n\treturn n, nil\n}\n\nfunc PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKTEXT, pid, addr, out)\n}\n\nfunc PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKDATA, pid, addr, out)\n}\n\nfunc PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKUSR, pid, addr, out)\n}\n\nfunc ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) {\n\t// As for ptracePeek, we need to align our accesses to deal\n\t// with the possibility of straddling an invalid page.\n\n\t// Leading edge.\n\tn := 0\n\tif addr%SizeofPtr != 0 {\n\t\tvar buf [SizeofPtr]byte\n\t\terr = ptracePtr(peekReq, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn += copy(buf[addr%SizeofPtr:], data)\n\t\tword := *((*uintptr)(unsafe.Pointer(&buf[0])))\n\t\terr = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tdata = data[n:]\n\t}\n\n\t// Interior.\n\tfor len(data) > SizeofPtr {\n\t\tword := *((*uintptr)(unsafe.Pointer(&data[0])))\n\t\terr = ptrace(pokeReq, pid, addr+uintptr(n), word)\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tn += SizeofPtr\n\t\tdata = data[SizeofPtr:]\n\t}\n\n\t// Trailing edge.\n\tif len(data) > 0 {\n\t\tvar buf [SizeofPtr]byte\n\t\terr = ptracePtr(peekReq, pid, addr+uintptr(n), unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tcopy(buf[0:], data)\n\t\tword := *((*uintptr)(unsafe.Pointer(&buf[0])))\n\t\terr = ptrace(pokeReq, pid, addr+uintptr(n), word)\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tn += len(data)\n\t}\n\n\treturn n, nil\n}\n\nfunc PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data)\n}\n\nfunc PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data)\n}\n\nfunc PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data)\n}\n\n// elfNT_PRSTATUS is a copy of the debug/elf.NT_PRSTATUS constant so\n// x/sys/unix doesn't need to depend on debug/elf and thus\n// compress/zlib, debug/dwarf, and other packages.\nconst elfNT_PRSTATUS = 1\n\nfunc PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {\n\tvar iov Iovec\n\tiov.Base = (*byte)(unsafe.Pointer(regsout))\n\tiov.SetLen(int(unsafe.Sizeof(*regsout)))\n\treturn ptracePtr(PTRACE_GETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov))\n}\n\nfunc PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {\n\tvar iov Iovec\n\tiov.Base = (*byte)(unsafe.Pointer(regs))\n\tiov.SetLen(int(unsafe.Sizeof(*regs)))\n\treturn ptracePtr(PTRACE_SETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov))\n}\n\nfunc PtraceSetOptions(pid int, options int) (err error) {\n\treturn ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options))\n}\n\nfunc PtraceGetEventMsg(pid int) (msg uint, err error) {\n\tvar data _C_long\n\terr = ptracePtr(PTRACE_GETEVENTMSG, pid, 0, unsafe.Pointer(&data))\n\tmsg = uint(data)\n\treturn\n}\n\nfunc PtraceCont(pid int, signal int) (err error) {\n\treturn ptrace(PTRACE_CONT, pid, 0, uintptr(signal))\n}\n\nfunc PtraceSyscall(pid int, signal int) (err error) {\n\treturn ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal))\n}\n\nfunc PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) }\n\nfunc PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) }\n\nfunc PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) }\n\nfunc PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, pid, 0, 0) }\n\nfunc PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) }\n\n//sys\treboot(magic1 uint, magic2 uint, cmd int, arg string) (err error)\n\nfunc Reboot(cmd int) (err error) {\n\treturn reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, \"\")\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sys\tmount(source string, target string, fstype string, flags uintptr, data *byte) (err error)\n\nfunc Mount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\t// Certain file systems get rather angry and EINVAL if you give\n\t// them an empty string of data, rather than NULL.\n\tif data == \"\" {\n\t\treturn mount(source, target, fstype, flags, nil)\n\t}\n\tdatap, err := BytePtrFromString(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn mount(source, target, fstype, flags, datap)\n}\n\n//sys\tmountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) = SYS_MOUNT_SETATTR\n\n// MountSetattr is a wrapper for mount_setattr(2).\n// https://man7.org/linux/man-pages/man2/mount_setattr.2.html\n//\n// Requires kernel >= 5.12.\nfunc MountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr) error {\n\treturn mountSetattr(dirfd, pathname, flags, attr, unsafe.Sizeof(*attr))\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// Sendto\n// Recvfrom\n// Socketpair\n\n/*\n * Direct access\n */\n//sys\tAcct(path string) (err error)\n//sys\tAddKey(keyType string, description string, payload []byte, ringid int) (id int, err error)\n//sys\tAdjtimex(buf *Timex) (state int, err error)\n//sysnb\tCapget(hdr *CapUserHeader, data *CapUserData) (err error)\n//sysnb\tCapset(hdr *CapUserHeader, data *CapUserData) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockAdjtime(clockid int32, buf *Timex) (state int, err error)\n//sys\tClockGetres(clockid int32, res *Timespec) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tCloseRange(first uint, last uint, flags uint) (err error)\n//sys\tCopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tDeleteModule(name string, flags int) (err error)\n//sys\tDup(oldfd int) (fd int, err error)\n\nfunc Dup2(oldfd, newfd int) error {\n\treturn Dup3(oldfd, newfd, 0)\n}\n\n//sys\tDup3(oldfd int, newfd int, flags int) (err error)\n//sysnb\tEpollCreate1(flag int) (fd int, err error)\n//sysnb\tEpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error)\n//sys\tEventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2\n//sys\tExit(code int) = SYS_EXIT_GROUP\n//sys\tFallocate(fd int, mode uint32, off int64, len int64) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFdatasync(fd int) (err error)\n//sys\tFgetxattr(fd int, attr string, dest []byte) (sz int, err error)\n//sys\tFinitModule(fd int, params string, flags int) (err error)\n//sys\tFlistxattr(fd int, dest []byte) (sz int, err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFremovexattr(fd int, attr string) (err error)\n//sys\tFsetxattr(fd int, attr string, dest []byte, flags int) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFsmount(fd int, flags int, mountAttrs int) (fsfd int, err error)\n//sys\tFsopen(fsName string, flags int) (fd int, err error)\n//sys\tFspick(dirfd int, pathName string, flags int) (fd int, err error)\n\n//sys\tfsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error)\n\nfunc fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) {\n\tvar keyp *byte\n\tif keyp, err = BytePtrFromString(key); err != nil {\n\t\treturn\n\t}\n\treturn fsconfig(fd, cmd, keyp, value, aux)\n}\n\n// FsconfigSetFlag is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_FLAG.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\nfunc FsconfigSetFlag(fd int, key string) (err error) {\n\treturn fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0)\n}\n\n// FsconfigSetString is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_STRING.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// value is the parameter value to set.\nfunc FsconfigSetString(fd int, key string, value string) (err error) {\n\tvar valuep *byte\n\tif valuep, err = BytePtrFromString(value); err != nil {\n\t\treturn\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0)\n}\n\n// FsconfigSetBinary is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_BINARY.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// value is the parameter value to set.\nfunc FsconfigSetBinary(fd int, key string, value []byte) (err error) {\n\tif len(value) == 0 {\n\t\treturn EINVAL\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value))\n}\n\n// FsconfigSetPath is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_PATH.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// path is a non-empty path for specified key.\n// atfd is a file descriptor at which to start lookup from or AT_FDCWD.\nfunc FsconfigSetPath(fd int, key string, path string, atfd int) (err error) {\n\tvar valuep *byte\n\tif valuep, err = BytePtrFromString(path); err != nil {\n\t\treturn\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd)\n}\n\n// FsconfigSetPathEmpty is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as\n// FconfigSetPath but with AT_PATH_EMPTY implied.\nfunc FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) {\n\tvar valuep *byte\n\tif valuep, err = BytePtrFromString(path); err != nil {\n\t\treturn\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd)\n}\n\n// FsconfigSetFd is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_FD.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// value is a file descriptor to be assigned to specified key.\nfunc FsconfigSetFd(fd int, key string, value int) (err error) {\n\treturn fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value)\n}\n\n// FsconfigCreate is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_CMD_CREATE.\n//\n// fd is the filesystem context to act upon.\nfunc FsconfigCreate(fd int) (err error) {\n\treturn fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0)\n}\n\n// FsconfigReconfigure is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_CMD_RECONFIGURE.\n//\n// fd is the filesystem context to act upon.\nfunc FsconfigReconfigure(fd int) (err error) {\n\treturn fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0)\n}\n\n//sys\tGetdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n\nfunc Getpgrp() (pid int) {\n\tpid, _ = Getpgid(0)\n\treturn\n}\n\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sys\tGetrandom(buf []byte, flags int) (n int, err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettid() (tid int)\n//sys\tGetxattr(path string, attr string, dest []byte) (sz int, err error)\n//sys\tInitModule(moduleImage []byte, params string) (err error)\n//sys\tInotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error)\n//sysnb\tInotifyInit1(flags int) (fd int, err error)\n//sysnb\tInotifyRmWatch(fd int, watchdesc uint32) (success int, err error)\n//sysnb\tKill(pid int, sig syscall.Signal) (err error)\n//sys\tKlogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG\n//sys\tLgetxattr(path string, attr string, dest []byte) (sz int, err error)\n//sys\tListxattr(path string, dest []byte) (sz int, err error)\n//sys\tLlistxattr(path string, dest []byte) (sz int, err error)\n//sys\tLremovexattr(path string, attr string) (err error)\n//sys\tLsetxattr(path string, attr string, data []byte, flags int) (err error)\n//sys\tMemfdCreate(name string, flags int) (fd int, err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tMoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpenTree(dfd int, fileName string, flags uint) (r int, err error)\n//sys\tPerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error)\n//sys\tPivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT\n//sys\tPrctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)\n//sys\tpselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tRemovexattr(path string, attr string) (err error)\n//sys\tRenameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)\n//sys\tRequestKey(keyType string, description string, callback string, destRingid int) (id int, err error)\n//sys\tSetdomainname(p []byte) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tv *Timeval) (err error)\n//sys\tSetns(fd int, nstype int) (err error)\n\n//go:linkname syscall_prlimit syscall.prlimit\nfunc syscall_prlimit(pid, resource int, newlimit, old *syscall.Rlimit) error\n\nfunc Prlimit(pid, resource int, newlimit, old *Rlimit) error {\n\t// Just call the syscall version, because as of Go 1.21\n\t// it will affect starting a new process.\n\treturn syscall_prlimit(pid, resource, (*syscall.Rlimit)(newlimit), (*syscall.Rlimit)(old))\n}\n\n// PrctlRetInt performs a prctl operation specified by option and further\n// optional arguments arg2 through arg5 depending on option. It returns a\n// non-negative integer that is returned by the prctl syscall.\nfunc PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) {\n\tret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(ret), nil\n}\n\nfunc Setuid(uid int) (err error) {\n\treturn syscall.Setuid(uid)\n}\n\nfunc Setgid(gid int) (err error) {\n\treturn syscall.Setgid(gid)\n}\n\nfunc Setreuid(ruid, euid int) (err error) {\n\treturn syscall.Setreuid(ruid, euid)\n}\n\nfunc Setregid(rgid, egid int) (err error) {\n\treturn syscall.Setregid(rgid, egid)\n}\n\nfunc Setresuid(ruid, euid, suid int) (err error) {\n\treturn syscall.Setresuid(ruid, euid, suid)\n}\n\nfunc Setresgid(rgid, egid, sgid int) (err error) {\n\treturn syscall.Setresgid(rgid, egid, sgid)\n}\n\n// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set.\n// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability.\n// If the call fails due to other reasons, current fsgid will be returned.\nfunc SetfsgidRetGid(gid int) (int, error) {\n\treturn setfsgid(gid)\n}\n\n// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set.\n// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability\n// If the call fails due to other reasons, current fsuid will be returned.\nfunc SetfsuidRetUid(uid int) (int, error) {\n\treturn setfsuid(uid)\n}\n\nfunc Setfsgid(gid int) error {\n\t_, err := setfsgid(gid)\n\treturn err\n}\n\nfunc Setfsuid(uid int) error {\n\t_, err := setfsuid(uid)\n\treturn err\n}\n\nfunc Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) {\n\treturn signalfd(fd, sigmask, _C__NSIG/8, flags)\n}\n\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tSetxattr(path string, attr string, data []byte, flags int) (err error)\n//sys\tsignalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) = SYS_SIGNALFD4\n//sys\tStatx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)\n//sys\tSync()\n//sys\tSyncfs(fd int) (err error)\n//sysnb\tSysinfo(info *Sysinfo_t) (err error)\n//sys\tTee(rfd int, wfd int, len int, flags int) (n int64, err error)\n//sysnb\tTimerfdCreate(clockid int, flags int) (fd int, err error)\n//sysnb\tTimerfdGettime(fd int, currValue *ItimerSpec) (err error)\n//sysnb\tTimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error)\n//sysnb\tTgkill(tgid int, tid int, sig syscall.Signal) (err error)\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sysnb\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys\tUnmount(target string, flags int) (err error) = SYS_UMOUNT2\n//sys\tUnshare(flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\texitThread(code int) (err error) = SYS_EXIT\n//sys\treadv(fd int, iovs []Iovec) (n int, err error) = SYS_READV\n//sys\twritev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV\n//sys\tpreadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV\n//sys\tpwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV\n//sys\tpreadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2\n//sys\tpwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2\n\n// minIovec is the size of the small initial allocation used by\n// Readv, Writev, etc.\n//\n// This small allocation gets stack allocated, which lets the\n// common use case of len(iovs) <= minIovs avoid more expensive\n// heap allocations.\nconst minIovec = 8\n\n// appendBytes converts bs to Iovecs and appends them to vecs.\nfunc appendBytes(vecs []Iovec, bs [][]byte) []Iovec {\n\tfor _, b := range bs {\n\t\tvar v Iovec\n\t\tv.SetLen(len(b))\n\t\tif len(b) > 0 {\n\t\t\tv.Base = &b[0]\n\t\t} else {\n\t\t\tv.Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t\tvecs = append(vecs, v)\n\t}\n\treturn vecs\n}\n\n// offs2lohi splits offs into its low and high order bits.\nfunc offs2lohi(offs int64) (lo, hi uintptr) {\n\tconst longBits = SizeofLong * 8\n\treturn uintptr(offs), uintptr(uint64(offs) >> (longBits - 1) >> 1) // two shifts to avoid false positive in vet\n}\n\nfunc Readv(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tn, err = readv(fd, iovecs)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\n}\n\nfunc Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tlo, hi := offs2lohi(offset)\n\tn, err = preadv(fd, iovecs, lo, hi)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\n}\n\nfunc Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tlo, hi := offs2lohi(offset)\n\tn, err = preadv2(fd, iovecs, lo, hi, flags)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\n}\n\nfunc readvRacedetect(iovecs []Iovec, n int, err error) {\n\tif !raceenabled {\n\t\treturn\n\t}\n\tfor i := 0; n > 0 && i < len(iovecs); i++ {\n\t\tm := int(iovecs[i].Len)\n\t\tif m > n {\n\t\t\tm = n\n\t\t}\n\t\tn -= m\n\t\tif m > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(iovecs[i].Base), m)\n\t\t}\n\t}\n\tif err == nil {\n\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t}\n}\n\nfunc Writev(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = writev(fd, iovecs)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\nfunc Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tlo, hi := offs2lohi(offset)\n\tn, err = pwritev(fd, iovecs, lo, hi)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\nfunc Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tlo, hi := offs2lohi(offset)\n\tn, err = pwritev2(fd, iovecs, lo, hi, flags)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\nfunc writevRacedetect(iovecs []Iovec, n int) {\n\tif !raceenabled {\n\t\treturn\n\t}\n\tfor i := 0; n > 0 && i < len(iovecs); i++ {\n\t\tm := int(iovecs[i].Len)\n\t\tif m > n {\n\t\t\tm = n\n\t\t}\n\t\tn -= m\n\t\tif m > 0 {\n\t\t\traceReadRange(unsafe.Pointer(iovecs[i].Base), m)\n\t\t}\n\t}\n}\n\n// mmap varies by architecture; see syscall_linux_*.go.\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tmremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error)\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n\nconst (\n\tmremapFixed     = MREMAP_FIXED\n\tmremapDontunmap = MREMAP_DONTUNMAP\n\tmremapMaymove   = MREMAP_MAYMOVE\n)\n\n// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd,\n// using the specified flags.\nfunc Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {\n\tvar p unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\tp = unsafe.Pointer(&iovs[0])\n\t}\n\n\tn, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0)\n\tif errno != 0 {\n\t\treturn 0, syscall.Errno(errno)\n\t}\n\n\treturn int(n), nil\n}\n\nfunc isGroupMember(gid int) bool {\n\tgroups, err := Getgroups()\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tfor _, g := range groups {\n\t\tif g == gid {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc isCapDacOverrideSet() bool {\n\thdr := CapUserHeader{Version: LINUX_CAPABILITY_VERSION_3}\n\tdata := [2]CapUserData{}\n\terr := Capget(&hdr, &data[0])\n\n\treturn err == nil && data[0].Effective&(1<<CAP_DAC_OVERRIDE) != 0\n}\n\n//sys\tfaccessat(dirfd int, path string, mode uint32) (err error)\n//sys\tFaccessat2(dirfd int, path string, mode uint32, flags int) (err error)\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tif flags == 0 {\n\t\treturn faccessat(dirfd, path, mode)\n\t}\n\n\tif err := Faccessat2(dirfd, path, mode, flags); err != ENOSYS && err != EPERM {\n\t\treturn err\n\t}\n\n\t// The Linux kernel faccessat system call does not take any flags.\n\t// The glibc faccessat implements the flags itself; see\n\t// https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/faccessat.c;hb=HEAD\n\t// Because people naturally expect syscall.Faccessat to act\n\t// like C faccessat, we do the same.\n\n\tif flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 {\n\t\treturn EINVAL\n\t}\n\n\tvar st Stat_t\n\tif err := Fstatat(dirfd, path, &st, flags&AT_SYMLINK_NOFOLLOW); err != nil {\n\t\treturn err\n\t}\n\n\tmode &= 7\n\tif mode == 0 {\n\t\treturn nil\n\t}\n\n\tvar uid int\n\tif flags&AT_EACCESS != 0 {\n\t\tuid = Geteuid()\n\t\tif uid != 0 && isCapDacOverrideSet() {\n\t\t\t// If CAP_DAC_OVERRIDE is set, file access check is\n\t\t\t// done by the kernel in the same way as for root\n\t\t\t// (see generic_permission() in the Linux sources).\n\t\t\tuid = 0\n\t\t}\n\t} else {\n\t\tuid = Getuid()\n\t}\n\n\tif uid == 0 {\n\t\tif mode&1 == 0 {\n\t\t\t// Root can read and write any file.\n\t\t\treturn nil\n\t\t}\n\t\tif st.Mode&0111 != 0 {\n\t\t\t// Root can execute any file that anybody can execute.\n\t\t\treturn nil\n\t\t}\n\t\treturn EACCES\n\t}\n\n\tvar fmode uint32\n\tif uint32(uid) == st.Uid {\n\t\tfmode = (st.Mode >> 6) & 7\n\t} else {\n\t\tvar gid int\n\t\tif flags&AT_EACCESS != 0 {\n\t\t\tgid = Getegid()\n\t\t} else {\n\t\t\tgid = Getgid()\n\t\t}\n\n\t\tif uint32(gid) == st.Gid || isGroupMember(int(st.Gid)) {\n\t\t\tfmode = (st.Mode >> 3) & 7\n\t\t} else {\n\t\t\tfmode = st.Mode & 7\n\t\t}\n\t}\n\n\tif fmode&mode == mode {\n\t\treturn nil\n\t}\n\n\treturn EACCES\n}\n\n//sys\tnameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT\n//sys\topenByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT\n\n// fileHandle is the argument to nameToHandleAt and openByHandleAt. We\n// originally tried to generate it via unix/linux/types.go with \"type\n// fileHandle C.struct_file_handle\" but that generated empty structs\n// for mips64 and mips64le. Instead, hard code it for now (it's the\n// same everywhere else) until the mips64 generator issue is fixed.\ntype fileHandle struct {\n\tBytes uint32\n\tType  int32\n}\n\n// FileHandle represents the C struct file_handle used by\n// name_to_handle_at (see NameToHandleAt) and open_by_handle_at (see\n// OpenByHandleAt).\ntype FileHandle struct {\n\t*fileHandle\n}\n\n// NewFileHandle constructs a FileHandle.\nfunc NewFileHandle(handleType int32, handle []byte) FileHandle {\n\tconst hdrSize = unsafe.Sizeof(fileHandle{})\n\tbuf := make([]byte, hdrSize+uintptr(len(handle)))\n\tcopy(buf[hdrSize:], handle)\n\tfh := (*fileHandle)(unsafe.Pointer(&buf[0]))\n\tfh.Type = handleType\n\tfh.Bytes = uint32(len(handle))\n\treturn FileHandle{fh}\n}\n\nfunc (fh *FileHandle) Size() int   { return int(fh.fileHandle.Bytes) }\nfunc (fh *FileHandle) Type() int32 { return fh.fileHandle.Type }\nfunc (fh *FileHandle) Bytes() []byte {\n\tn := fh.Size()\n\tif n == 0 {\n\t\treturn nil\n\t}\n\treturn unsafe.Slice((*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type))+4)), n)\n}\n\n// NameToHandleAt wraps the name_to_handle_at system call; it obtains\n// a handle for a path name.\nfunc NameToHandleAt(dirfd int, path string, flags int) (handle FileHandle, mountID int, err error) {\n\tvar mid _C_int\n\t// Try first with a small buffer, assuming the handle will\n\t// only be 32 bytes.\n\tsize := uint32(32 + unsafe.Sizeof(fileHandle{}))\n\tdidResize := false\n\tfor {\n\t\tbuf := make([]byte, size)\n\t\tfh := (*fileHandle)(unsafe.Pointer(&buf[0]))\n\t\tfh.Bytes = size - uint32(unsafe.Sizeof(fileHandle{}))\n\t\terr = nameToHandleAt(dirfd, path, fh, &mid, flags)\n\t\tif err == EOVERFLOW {\n\t\t\tif didResize {\n\t\t\t\t// We shouldn't need to resize more than once\n\t\t\t\treturn\n\t\t\t}\n\t\t\tdidResize = true\n\t\t\tsize = fh.Bytes + uint32(unsafe.Sizeof(fileHandle{}))\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\treturn FileHandle{fh}, int(mid), nil\n\t}\n}\n\n// OpenByHandleAt wraps the open_by_handle_at system call; it opens a\n// file via a handle as previously returned by NameToHandleAt.\nfunc OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err error) {\n\treturn openByHandleAt(mountFD, handle.fileHandle, flags)\n}\n\n// Klogset wraps the sys_syslog system call; it sets console_loglevel to\n// the value specified by arg and passes a dummy pointer to bufp.\nfunc Klogset(typ int, arg int) (err error) {\n\tvar p unsafe.Pointer\n\t_, _, errno := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(p), uintptr(arg))\n\tif errno != 0 {\n\t\treturn errnoErr(errno)\n\t}\n\treturn nil\n}\n\n// RemoteIovec is Iovec with the pointer replaced with an integer.\n// It is used for ProcessVMReadv and ProcessVMWritev, where the pointer\n// refers to a location in a different process' address space, which\n// would confuse the Go garbage collector.\ntype RemoteIovec struct {\n\tBase uintptr\n\tLen  int\n}\n\n//sys\tProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_READV\n//sys\tProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_WRITEV\n\n//sys\tPidfdOpen(pid int, flags int) (fd int, err error) = SYS_PIDFD_OPEN\n//sys\tPidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) = SYS_PIDFD_GETFD\n//sys\tPidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) = SYS_PIDFD_SEND_SIGNAL\n\n//sys\tshmat(id int, addr uintptr, flag int) (ret uintptr, err error)\n//sys\tshmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error)\n//sys\tshmdt(addr uintptr) (err error)\n//sys\tshmget(key int, size int, flag int) (id int, err error)\n\n//sys\tgetitimer(which int, currValue *Itimerval) (err error)\n//sys\tsetitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error)\n\n// MakeItimerval creates an Itimerval from interval and value durations.\nfunc MakeItimerval(interval, value time.Duration) Itimerval {\n\treturn Itimerval{\n\t\tInterval: NsecToTimeval(interval.Nanoseconds()),\n\t\tValue:    NsecToTimeval(value.Nanoseconds()),\n\t}\n}\n\n// A value which may be passed to the which parameter for Getitimer and\n// Setitimer.\ntype ItimerWhich int\n\n// Possible which values for Getitimer and Setitimer.\nconst (\n\tItimerReal    ItimerWhich = ITIMER_REAL\n\tItimerVirtual ItimerWhich = ITIMER_VIRTUAL\n\tItimerProf    ItimerWhich = ITIMER_PROF\n)\n\n// Getitimer wraps getitimer(2) to return the current value of the timer\n// specified by which.\nfunc Getitimer(which ItimerWhich) (Itimerval, error) {\n\tvar it Itimerval\n\tif err := getitimer(int(which), &it); err != nil {\n\t\treturn Itimerval{}, err\n\t}\n\n\treturn it, nil\n}\n\n// Setitimer wraps setitimer(2) to arm or disarm the timer specified by which.\n// It returns the previous value of the timer.\n//\n// If the Itimerval argument is the zero value, the timer will be disarmed.\nfunc Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) {\n\tvar prev Itimerval\n\tif err := setitimer(int(which), &it, &prev); err != nil {\n\t\treturn Itimerval{}, err\n\t}\n\n\treturn prev, nil\n}\n\n//sysnb\trtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) = SYS_RT_SIGPROCMASK\n\nfunc PthreadSigmask(how int, set, oldset *Sigset_t) error {\n\tif oldset != nil {\n\t\t// Explicitly clear in case Sigset_t is larger than _C__NSIG.\n\t\t*oldset = Sigset_t{}\n\t}\n\treturn rtSigprocmask(how, set, oldset, _C__NSIG/8)\n}\n\n//sysnb\tgetresuid(ruid *_C_int, euid *_C_int, suid *_C_int)\n//sysnb\tgetresgid(rgid *_C_int, egid *_C_int, sgid *_C_int)\n\nfunc Getresuid() (ruid, euid, suid int) {\n\tvar r, e, s _C_int\n\tgetresuid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\nfunc Getresgid() (rgid, egid, sgid int) {\n\tvar r, e, s _C_int\n\tgetresgid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\n// Pselect is a wrapper around the Linux pselect6 system call.\n// This version does not modify the timeout argument.\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\t// Per https://man7.org/linux/man-pages/man2/select.2.html#NOTES,\n\t// The Linux pselect6() system call modifies its timeout argument.\n\t// [Not modifying the argument] is the behavior required by POSIX.1-2001.\n\tvar mutableTimeout *Timespec\n\tif timeout != nil {\n\t\tmutableTimeout = new(Timespec)\n\t\t*mutableTimeout = *timeout\n\t}\n\n\t// The final argument of the pselect6() system call is not a\n\t// sigset_t * pointer, but is instead a structure\n\tvar kernelMask *sigset_argpack\n\tif sigmask != nil {\n\t\twordBits := 32 << (^uintptr(0) >> 63) // see math.intSize\n\n\t\t// A sigset stores one bit per signal,\n\t\t// offset by 1 (because signal 0 does not exist).\n\t\t// So the number of words needed is ⌈__C_NSIG - 1 / wordBits⌉.\n\t\tsigsetWords := (_C__NSIG - 1 + wordBits - 1) / (wordBits)\n\n\t\tsigsetBytes := uintptr(sigsetWords * (wordBits / 8))\n\t\tkernelMask = &sigset_argpack{\n\t\t\tss:    sigmask,\n\t\t\tssLen: sigsetBytes,\n\t\t}\n\t}\n\n\treturn pselect6(nfd, r, w, e, mutableTimeout, kernelMask)\n}\n\n//sys\tschedSetattr(pid int, attr *SchedAttr, flags uint) (err error)\n//sys\tschedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error)\n\n// SchedSetAttr is a wrapper for sched_setattr(2) syscall.\n// https://man7.org/linux/man-pages/man2/sched_setattr.2.html\nfunc SchedSetAttr(pid int, attr *SchedAttr, flags uint) error {\n\tif attr == nil {\n\t\treturn EINVAL\n\t}\n\tattr.Size = SizeofSchedAttr\n\treturn schedSetattr(pid, attr, flags)\n}\n\n// SchedGetAttr is a wrapper for sched_getattr(2) syscall.\n// https://man7.org/linux/man-pages/man2/sched_getattr.2.html\nfunc SchedGetAttr(pid int, flags uint) (*SchedAttr, error) {\n\tattr := &SchedAttr{}\n\tif err := schedGetattr(pid, attr, SizeofSchedAttr, flags); err != nil {\n\t\treturn nil, err\n\t}\n\treturn attr, nil\n}\n\n//sys\tCachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error)\n//sys\tMseal(b []byte, flags uint) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\n// 64-bit file system and 32-bit uid calls\n// (386 default is 32-bit file system and 16-bit uid).\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64\n//sys\tFchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n//sysnb\tGetegid() (egid int) = SYS_GETEGID32\n//sysnb\tGeteuid() (euid int) = SYS_GETEUID32\n//sysnb\tGetgid() (gid int) = SYS_GETGID32\n//sysnb\tGetuid() (uid int) = SYS_GETUID32\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tsetfsgid(gid int) (prev int, err error) = SYS_SETFSGID32\n//sys\tsetfsuid(uid int) (prev int, err error) = SYS_SETFSUID32\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n//sys\tPause() (err error)\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, errno := seek(fd, offset, whence)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\treturn newoffset, nil\n}\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n// On x86 Linux, all the socket calls go through an extra indirection,\n// I think because the 5-register system call interface can't handle\n// the 6-argument calls like sendto and recvfrom. Instead the\n// arguments to the underlying system call are the number below\n// and a pointer to an array of uintptr. We hide the pointer in the\n// socketcall assembly to avoid allocation on every system call.\n\nconst (\n\t// see linux/net.h\n\t_SOCKET      = 1\n\t_BIND        = 2\n\t_CONNECT     = 3\n\t_LISTEN      = 4\n\t_ACCEPT      = 5\n\t_GETSOCKNAME = 6\n\t_GETPEERNAME = 7\n\t_SOCKETPAIR  = 8\n\t_SEND        = 9\n\t_RECV        = 10\n\t_SENDTO      = 11\n\t_RECVFROM    = 12\n\t_SHUTDOWN    = 13\n\t_SETSOCKOPT  = 14\n\t_GETSOCKOPT  = 15\n\t_SENDMSG     = 16\n\t_RECVMSG     = 17\n\t_ACCEPT4     = 18\n\t_RECVMMSG    = 19\n\t_SENDMMSG    = 20\n)\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tfd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {\n\t_, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tfd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\tn, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\t_, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tn, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tn, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Listen(s int, n int) (err error) {\n\t_, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Shutdown(s, how int) (err error) {\n\t_, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_alarm.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64)\n\npackage unix\n\n// SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH\n// values.\n\n//sys\tAlarm(seconds uint) (remaining uint, err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && linux\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tMemfdSecret(flags int) (fd int, err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\t// Use fstatat, because Android's seccomp policy blocks stat.\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\terrno := gettimeofday(tv)\n\tif errno != 0 {\n\t\treturn errno\n\t}\n\treturn nil\n}\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terrno := gettimeofday(&tv)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Rip }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && linux && gc\n\npackage unix\n\nimport \"syscall\"\n\n//go:noescape\nfunc gettimeofday(tv *Timeval) (err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_arm.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, errno := seek(fd, offset, whence)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\treturn newoffset, nil\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tsocketpair(domain int, typ int, flags int, fd *[2]int32) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\n// 64-bit file system and 32-bit uid calls\n// (16-bit uid calls are not always supported in newer kernels)\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sysnb\tGetegid() (egid int) = SYS_GETEGID32\n//sysnb\tGeteuid() (euid int) = SYS_GETEUID32\n//sysnb\tGetgid() (gid int) = SYS_GETGID32\n//sysnb\tGetuid() (uid int) = SYS_GETUID32\n//sys\tLchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tPause() (err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsetfsgid(gid int) (prev int, err error) = SYS_SETFSGID32\n//sys\tsetfsuid(uid int) (prev int, err error) = SYS_SETFSUID32\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n\n//sys\tarmSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) error {\n\t// The sync_file_range and arm_sync_file_range syscalls differ only in the\n\t// order of their arguments.\n\treturn armSyncFileRange(fd, flags, off, n)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_arm64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && linux\n\npackage unix\n\nimport \"unsafe\"\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tgetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tListen(s int, n int) (err error)\n//sys\tMemfdSecret(flags int) (fd int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\treturn ENOSYS\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(dirfd, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\nfunc utimes(path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\n// Getrlimit prefers the prlimit64 system call. See issue 38604.\nfunc Getrlimit(resource int, rlim *Rlimit) error {\n\terr := Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\treturn getrlimit(resource, rlim)\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Pc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\nfunc Pause() error {\n\t_, err := ppoll(nil, 0, nil, nil)\n\treturn err\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gc\n\npackage unix\n\n// SyscallNoError may be used instead of Syscall for syscalls that don't fail.\nfunc SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)\n\n// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't\n// fail.\nfunc RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gc && 386\n\npackage unix\n\nimport \"syscall\"\n\n// Underlying system call writes to newoffset via pointer.\n// Implemented in assembly to avoid allocation.\nfunc seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)\n\nfunc socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)\nfunc rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && gc && linux\n\npackage unix\n\nimport \"syscall\"\n\n// Underlying system call writes to newoffset via pointer.\n// Implemented in assembly to avoid allocation.\nfunc seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gccgo && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc seek(fd int, offset int64, whence int) (int64, syscall.Errno) {\n\tvar newoffset int64\n\toffsetLow := uint32(offset & 0xffffffff)\n\toffsetHigh := uint32((offset >> 32) & 0xffffffff)\n\t_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)\n\treturn newoffset, err\n}\n\nfunc socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {\n\tfd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)\n\treturn int(fd), err\n}\n\nfunc rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {\n\tfd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)\n\treturn int(fd), err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gccgo && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc seek(fd int, offset int64, whence int) (int64, syscall.Errno) {\n\tvar newoffset int64\n\toffsetLow := uint32(offset & 0xffffffff)\n\toffsetHigh := uint32((offset >> 32) & 0xffffffff)\n\t_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)\n\treturn newoffset, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_loong64.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build loong64 && linux\n\npackage unix\n\nimport \"unsafe\"\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tListen(s int, n int) (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc timespecFromStatxTimestamp(x StatxTimestamp) Timespec {\n\treturn Timespec{\n\t\tSec:  x.Sec,\n\t\tNsec: int64(x.Nsec),\n\t}\n}\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) error {\n\tvar r Statx_t\n\t// Do it the glibc way, add AT_NO_AUTOMOUNT.\n\tif err := Statx(fd, path, AT_NO_AUTOMOUNT|flags, STATX_BASIC_STATS, &r); err != nil {\n\t\treturn err\n\t}\n\n\tstat.Dev = Mkdev(r.Dev_major, r.Dev_minor)\n\tstat.Ino = r.Ino\n\tstat.Mode = uint32(r.Mode)\n\tstat.Nlink = r.Nlink\n\tstat.Uid = r.Uid\n\tstat.Gid = r.Gid\n\tstat.Rdev = Mkdev(r.Rdev_major, r.Rdev_minor)\n\t// hope we don't get to process files so large to overflow these size\n\t// fields...\n\tstat.Size = int64(r.Size)\n\tstat.Blksize = int32(r.Blksize)\n\tstat.Blocks = int64(r.Blocks)\n\tstat.Atim = timespecFromStatxTimestamp(r.Atime)\n\tstat.Mtim = timespecFromStatxTimestamp(r.Mtime)\n\tstat.Ctim = timespecFromStatxTimestamp(r.Ctime)\n\n\treturn nil\n}\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\treturn Fstatat(fd, \"\", stat, AT_EMPTY_PATH)\n}\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\treturn ENOSYS\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\treturn\n}\n\nfunc futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(dirfd, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\nfunc utimes(path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Era }\n\nfunc (r *PtraceRegs) SetPC(era uint64) { r.Era = era }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\nfunc Pause() error {\n\t_, err := ppoll(nil, 0, nil, nil)\n\treturn err\n}\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\treturn Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips64 || mips64le)\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\ntype stat_t struct {\n\tDev        uint32\n\tPad0       [3]int32\n\tIno        uint64\n\tMode       uint32\n\tNlink      uint32\n\tUid        uint32\n\tGid        uint32\n\tRdev       uint32\n\tPad1       [3]uint32\n\tSize       int64\n\tAtime      uint32\n\tAtime_nsec uint32\n\tMtime      uint32\n\tMtime_nsec uint32\n\tCtime      uint32\n\tCtime_nsec uint32\n\tBlksize    uint32\n\tPad2       uint32\n\tBlocks     int64\n}\n\n//sys\tfstat(fd int, st *stat_t) (err error)\n//sys\tfstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tlstat(path string, st *stat_t) (err error)\n//sys\tstat(path string, st *stat_t) (err error)\n\nfunc Fstat(fd int, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = fstat(fd, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) {\n\tst := &stat_t{}\n\terr = fstatat(dirfd, path, st, flags)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Lstat(path string, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = lstat(path, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Stat(path string, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = stat(path, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc fillStat_t(s *Stat_t, st *stat_t) {\n\ts.Dev = st.Dev\n\ts.Ino = st.Ino\n\ts.Mode = st.Mode\n\ts.Nlink = st.Nlink\n\ts.Uid = st.Uid\n\ts.Gid = st.Gid\n\ts.Rdev = st.Rdev\n\ts.Size = st.Size\n\ts.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)}\n\ts.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)}\n\ts.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)}\n\ts.Blksize = st.Blksize\n\ts.Blocks = st.Blocks\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Epc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips || mipsle)\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n\n//sys\tPause() (err error)\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\t_, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0)\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Epc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_ppc.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && ppc\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc seek(fd int, offset int64, whence int) (int64, syscall.Errno) {\n\tvar newoffset int64\n\toffsetLow := uint32(offset & 0xffffffff)\n\toffsetHigh := uint32((offset >> 32) & 0xffffffff)\n\t_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)\n\treturn newoffset, err\n}\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, errno := seek(fd, offset, whence)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\treturn newoffset, nil\n}\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint32 { return r.Nip }\n\nfunc (r *PtraceRegs) SetPC(pc uint32) { r.Nip = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n\n//sys\tsyncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) error {\n\t// The sync_file_range and sync_file_range2 syscalls differ only in the\n\t// order of their arguments.\n\treturn syncFileRange2(fd, flags, off, n)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (ppc64 || ppc64le)\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT\n//sysnb\tGetuid() (uid int)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Nip }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\n//sys\tsyncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) error {\n\t// The sync_file_range and sync_file_range2 syscalls differ only in the\n\t// order of their arguments.\n\treturn syncFileRange2(fd, flags, off, n)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && linux\n\npackage unix\n\nimport \"unsafe\"\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tListen(s int, n int) (err error)\n//sys\tMemfdSecret(flags int) (fd int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\treturn ENOSYS\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(dirfd, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\nfunc utimes(path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Pc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\nfunc Pause() error {\n\t_, err := ppoll(nil, 0, nil, nil)\n\treturn err\n}\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\treturn Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n\n//sys\triscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error)\n\nfunc RISCVHWProbe(pairs []RISCVHWProbePairs, set *CPUSet, flags uint) (err error) {\n\tvar setSize uintptr\n\n\tif set != nil {\n\t\tsetSize = uintptr(unsafe.Sizeof(*set))\n\t}\n\treturn riscvHWProbe(pairs, setSize, set, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_s390x.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build s390x && linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Psw.Addr }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\n// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct.\n// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>.\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tmmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)}\n\tr0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// On s390x Linux, all the socket calls go through an extra indirection.\n// The arguments to the underlying system call (SYS_SOCKETCALL) are the\n// number below and a pointer to an array of uintptr.\nconst (\n\t// see linux/net.h\n\tnetSocket      = 1\n\tnetBind        = 2\n\tnetConnect     = 3\n\tnetListen      = 4\n\tnetAccept      = 5\n\tnetGetSockName = 6\n\tnetGetPeerName = 7\n\tnetSocketPair  = 8\n\tnetSend        = 9\n\tnetRecv        = 10\n\tnetSendTo      = 11\n\tnetRecvFrom    = 12\n\tnetShutdown    = 13\n\tnetSetSockOpt  = 14\n\tnetGetSockOpt  = 15\n\tnetSendMsg     = 16\n\tnetRecvMsg     = 17\n\tnetAccept4     = 18\n\tnetRecvMMsg    = 19\n\tnetSendMMsg    = 20\n)\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) {\n\targs := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)}\n\tfd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(fd), nil\n}\n\nfunc getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) error {\n\targs := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc socket(domain int, typ int, proto int) (int, error) {\n\targs := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)}\n\tfd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(fd), nil\n}\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error {\n\targs := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error {\n\targs := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\targs := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\targs := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (int, error) {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (int, error) {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc Listen(s int, n int) error {\n\targs := [2]uintptr{uintptr(s), uintptr(n)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc Shutdown(s, how int) error {\n\targs := [2]uintptr{uintptr(s), uintptr(how)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build sparc64 && linux\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Tpc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// NetBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) {\n\tvar olen uintptr\n\n\t// Get a list of all sysctl nodes below the given MIB by performing\n\t// a sysctl for the given MIB with CTL_QUERY appended.\n\tmib = append(mib, CTL_QUERY)\n\tqnode := Sysctlnode{Flags: SYSCTL_VERS_1}\n\tqp := (*byte)(unsafe.Pointer(&qnode))\n\tsz := unsafe.Sizeof(qnode)\n\tif err = sysctl(mib, nil, &olen, qp, sz); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Now that we know the size, get the actual nodes.\n\tnodes = make([]Sysctlnode, olen/sz)\n\tnp := (*byte)(unsafe.Pointer(&nodes[0]))\n\tif err = sysctl(mib, np, &olen, qp, sz); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn nodes, nil\n}\n\nfunc nametomib(name string) (mib []_C_int, err error) {\n\t// Split name into components.\n\tvar parts []string\n\tlast := 0\n\tfor i := 0; i < len(name); i++ {\n\t\tif name[i] == '.' {\n\t\t\tparts = append(parts, name[last:i])\n\t\t\tlast = i + 1\n\t\t}\n\t}\n\tparts = append(parts, name[last:])\n\n\t// Discover the nodes and construct the MIB OID.\n\tfor partno, part := range parts {\n\t\tnodes, err := sysctlNodes(mib)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfor _, node := range nodes {\n\t\t\tn := make([]byte, 0)\n\t\t\tfor i := range node.Name {\n\t\t\t\tif node.Name[i] != 0 {\n\t\t\t\t\tn = append(n, byte(node.Name[i]))\n\t\t\t\t}\n\t\t\t}\n\t\t\tif string(n) == part {\n\t\t\t\tmib = append(mib, _C_int(node.Num))\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif len(mib) != partno+1 {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t}\n\n\treturn mib, nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc SysctlUvmexp(name string) (*Uvmexp, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofUvmexp)\n\tvar u Uvmexp\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &u, nil\n}\n\nfunc Pipe(p []int) (err error) {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\n//sys\tGetdents(fd int, buf []byte) (n int, err error)\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tn, err = Getdents(fd, buf)\n\tif err != nil || basep == nil {\n\t\treturn\n\t}\n\n\tvar off int64\n\toff, err = Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\t*basep = ^uintptr(0)\n\t\treturn\n\t}\n\t*basep = uintptr(off)\n\tif unsafe.Sizeof(*basep) == 8 {\n\t\treturn\n\t}\n\tif off>>32 != 0 {\n\t\t// We can't stuff the offset back into a uintptr, so any\n\t\t// future calls would be suspect. Generate an error.\n\t\t// EIO is allowed by getdirentries.\n\t\terr = EIO\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\nfunc IoctlGetPtmget(fd int, req uint) (*Ptmget, error) {\n\tvar value Ptmget\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\nfunc Fstatvfs(fd int, buf *Statvfs_t) (err error) {\n\treturn Fstatvfs1(fd, buf, ST_WAIT)\n}\n\nfunc Statvfs(path string, buf *Statvfs_t) (err error) {\n\treturn Statvfs1(path, buf, ST_WAIT)\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tDup3(from int, to int, flags int) (err error)\n//sys\tExit(code int)\n//sys\tExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\nconst (\n\tmremapFixed     = MAP_FIXED\n\tmremapDontunmap = 0\n\tmremapMaymove   = 0\n)\n\n//sys\tmremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) = SYS_MREMAP\n\nfunc mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (uintptr, error) {\n\treturn mremapNetBSD(oldaddr, oldlength, newaddr, newlength, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// OpenBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"sort\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc nametomib(name string) (mib []_C_int, err error) {\n\ti := sort.Search(len(sysctlMib), func(i int) bool {\n\t\treturn sysctlMib[i].ctlname >= name\n\t})\n\tif i < len(sysctlMib) && sysctlMib[i].ctlname == name {\n\t\treturn sysctlMib[i].ctloid, nil\n\t}\n\treturn nil, EINVAL\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc SysctlUvmexp(name string) (*Uvmexp, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofUvmexp)\n\tvar u Uvmexp\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofUvmexp {\n\t\treturn nil, EIO\n\t}\n\treturn &u, nil\n}\n\nfunc Pipe(p []int) (err error) {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\n//sys\tGetdents(fd int, buf []byte) (n int, err error)\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tn, err = Getdents(fd, buf)\n\tif err != nil || basep == nil {\n\t\treturn\n\t}\n\n\tvar off int64\n\toff, err = Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\t*basep = ^uintptr(0)\n\t\treturn\n\t}\n\t*basep = uintptr(off)\n\tif unsafe.Sizeof(*basep) == 8 {\n\t\treturn\n\t}\n\tif off>>32 != 0 {\n\t\t// We can't stuff the offset back into a uintptr, so any\n\t\t// future calls would be suspect. Generate an error.\n\t\t// EIO was allowed by getdirentries.\n\t\terr = EIO\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar bufptr *Statfs_t\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\tbufptr = &buf[0]\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\treturn getfsstat(bufptr, bufsize, flags)\n}\n\n//sysnb\tgetresuid(ruid *_C_int, euid *_C_int, suid *_C_int)\n//sysnb\tgetresgid(rgid *_C_int, egid *_C_int, sgid *_C_int)\n\nfunc Getresuid() (ruid, euid, suid int) {\n\tvar r, e, s _C_int\n\tgetresuid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\nfunc Getresgid() (rgid, egid, sgid int) {\n\tvar r, e, s _C_int\n\tgetresgid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\n//sys\tfcntl(fd int, cmd int, arg int) (n int, err error)\n//sys\tfcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) = SYS_FCNTL\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\treturn fcntl(int(fd), cmd, arg)\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, err := fcntlPtr(int(fd), cmd, unsafe.Pointer(lk))\n\treturn err\n}\n\n//sys\tppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n\nfunc Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn ppoll(nil, 0, timeout, sigmask)\n\t}\n\treturn ppoll(&fds[0], len(fds), timeout, sigmask)\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tDup3(from int, to int, flags int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrtable() (rtable int, err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tMount(fsType string, dir string, flags int, data unsafe.Pointer) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrtable(rtable int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tgetfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n//sys\tpledge(promises *byte, execpromises *byte) (err error)\n//sys\tunveil(path *byte, flags *byte) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/386 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/arm the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build openbsd\n\npackage unix\n\nimport _ \"unsafe\"\n\n// Implemented in the runtime package (runtime/sys_openbsd3.go)\nfunc syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\n\n//go:linkname syscall_syscall syscall.syscall\n//go:linkname syscall_syscall6 syscall.syscall6\n//go:linkname syscall_syscall10 syscall.syscall10\n//go:linkname syscall_rawSyscall syscall.rawSyscall\n//go:linkname syscall_rawSyscall6 syscall.rawSyscall6\n\nfunc syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) {\n\treturn syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, 0)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of OpenBSD the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/ppc64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/riscv64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_solaris.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Solaris system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_solaris.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"runtime\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// Implemented in runtime/syscall_solaris.go.\ntype syscallFunc uintptr\n\nfunc rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tFamily uint16\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [244]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sysnb\tpipe(p *[2]_C_int) (n int, err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\tn, err := pipe(&pp)\n\tif n != 0 {\n\t\treturn err\n\t}\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn nil\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\n//sys\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error)\n\nfunc Getwd() (wd string, err error) {\n\tvar buf [PathMax]byte\n\t// Getcwd will return an error if it failed for any reason.\n\t_, err = Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[:n]), nil\n}\n\n/*\n * Wrapped\n */\n\n//sysnb\tgetgroups(ngid int, gid *_Gid_t) (n int, err error)\n//sysnb\tsetgroups(ngid int, gid *_Gid_t) (err error)\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\t// Check for error and sanity check group count. Newer versions of\n\t// Solaris allow up to 1024 (NGROUPS_MAX).\n\tif n < 0 || n > 1024 {\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, EINVAL\n\t} else if n == 0 {\n\t\treturn nil, nil\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif n == -1 {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\t// Final argument is (basep *uintptr) and the syscall doesn't take nil.\n\t// TODO(rsc): Can we use a single global basep for all calls?\n\treturn Getdents(fd, buf, new(uintptr))\n}\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits.\n\ntype WaitStatus uint32\n\nconst (\n\tmask  = 0x7F\n\tcore  = 0x80\n\tshift = 8\n\n\texited  = 0\n\tstopped = 0x7F\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif w&mask != exited {\n\t\treturn -1\n\t}\n\treturn int(w >> shift)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tsig := syscall.Signal(w & mask)\n\tif sig == stopped || sig == 0 {\n\t\treturn -1\n\t}\n\treturn sig\n}\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }\n\nfunc (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\twait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) {\n\tvar status _C_int\n\trpid, err := wait4(int32(pid), &status, options, rusage)\n\twpid := int(rpid)\n\tif wpid == -1 {\n\t\treturn wpid, err\n\t}\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn wpid, nil\n}\n\n//sys\tgethostname(buf []byte) (n int, err error)\n\nfunc Gethostname() (name string, err error) {\n\tvar buf [MaxHostNameLen]byte\n\tn, err := gethostname(buf[:])\n\tif n != 0 {\n\t\treturn \"\", err\n\t}\n\tn = clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EFAULT\n\t}\n\treturn string(buf[:n]), nil\n}\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc Utimes(path string, tv []Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(fd int, path string, times *[2]Timespec, flag int) (err error)\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif ts == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\tvalptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)\n\tvar err error\n\tif errno != 0 {\n\t\terr = errno\n\t}\n\treturn int(valptr), err\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0)\n\tif e1 != 0 {\n\t\treturn e1\n\t}\n\treturn nil\n}\n\n//sys\tfutimesat(fildes int, path *byte, times *[2]Timeval) (err error)\n\nfunc Futimesat(dirfd int, path string, tv []Timeval) error {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tv == nil {\n\t\treturn futimesat(dirfd, pathp, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n// Solaris doesn't have an futimes function because it allows NULL to be\n// specified as the path for futimesat. However, Go doesn't like\n// NULL-style string interfaces, so this simple wrapper is provided.\nfunc Futimes(fd int, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimesat(fd, nil, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\t// Assume path ends at NUL.\n\t\t// This is not technically the Solaris semantics for\n\t\t// abstract Unix domain sockets -- they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs -- but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < len(pp.Path) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif nfd == -1 {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif emptyIovecs(iov) {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Accrightslen = int32(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); n == -1 {\n\t\treturn\n\t}\n\toobn = int(msg.Accrightslen)\n\treturn\n}\n\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Accrightslen = int32(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n//sys\tacct(path *byte) (err error)\n\nfunc Acct(path string) (err error) {\n\tif len(path) == 0 {\n\t\t// Assume caller wants to disable accounting.\n\t\treturn acct(nil)\n\t}\n\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn acct(pathp)\n}\n\n//sys\t__makedev(version int, major uint, minor uint) (val uint64)\n\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn __makedev(NEWDEV, uint(major), uint(minor))\n}\n\n//sys\t__major(version int, dev uint64) (val uint)\n\nfunc Major(dev uint64) uint32 {\n\treturn uint32(__major(NEWDEV, dev))\n}\n\n//sys\t__minor(version int, dev uint64) (val uint)\n\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(__minor(NEWDEV, dev))\n}\n\n/*\n * Expose the ioctl function\n */\n\n//sys\tioctlRet(fd int, req int, arg uintptr) (ret int, err error) = libc.ioctl\n//sys\tioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) = libc.ioctl\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\t_, err = ioctlRet(fd, req, arg)\n\treturn err\n}\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\t_, err = ioctlPtrRet(fd, req, arg)\n\treturn err\n}\n\nfunc IoctlSetTermio(fd int, req int, value *Termio) error {\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\nfunc IoctlGetTermio(fd int, req int) (*Termio, error) {\n\tvar value Termio\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tCreat(path string, mode uint32) (fd int, err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFdatasync(fd int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatvfs(fd int, vfsstat *Statvfs_t) (err error)\n//sys\tGetdents(fd int, buf []byte, basep *uintptr) (n int, err error)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgid int, err error)\n//sys\tGeteuid() (euid int)\n//sys\tGetegid() (egid int)\n//sys\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (n int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tListen(s int, backlog int) (err error) = libsocket.__xnet_llisten\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tShutdown(s int, how int) (err error) = libsocket.shutdown\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatvfs(path string, vfsstat *Statvfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSync() (err error)\n//sys\tSysconf(which int) (n int64, err error)\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys\tUnmount(target string, flags int) (err error) = libc.umount\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto\n//sys\tsocket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom\n\n// Event Ports\n\ntype fileObjCookie struct {\n\tfobj   *fileObj\n\tcookie interface{}\n}\n\n// EventPort provides a safe abstraction on top of Solaris/illumos Event Ports.\ntype EventPort struct {\n\tport  int\n\tmu    sync.Mutex\n\tfds   map[uintptr]*fileObjCookie\n\tpaths map[string]*fileObjCookie\n\t// The user cookie presents an interesting challenge from a memory management perspective.\n\t// There are two paths by which we can discover that it is no longer in use:\n\t// 1. The user calls port_dissociate before any events fire\n\t// 2. An event fires and we return it to the user\n\t// The tricky situation is if the event has fired in the kernel but\n\t// the user hasn't requested/received it yet.\n\t// If the user wants to port_dissociate before the event has been processed,\n\t// we should handle things gracefully. To do so, we need to keep an extra\n\t// reference to the cookie around until the event is processed\n\t// thus the otherwise seemingly extraneous \"cookies\" map\n\t// The key of this map is a pointer to the corresponding fCookie\n\tcookies map[*fileObjCookie]struct{}\n}\n\n// PortEvent is an abstraction of the port_event C struct.\n// Compare Source against PORT_SOURCE_FILE or PORT_SOURCE_FD\n// to see if Path or Fd was the event source. The other will be\n// uninitialized.\ntype PortEvent struct {\n\tCookie interface{}\n\tEvents int32\n\tFd     uintptr\n\tPath   string\n\tSource uint16\n\tfobj   *fileObj\n}\n\n// NewEventPort creates a new EventPort including the\n// underlying call to port_create(3c).\nfunc NewEventPort() (*EventPort, error) {\n\tport, err := port_create()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\te := &EventPort{\n\t\tport:    port,\n\t\tfds:     make(map[uintptr]*fileObjCookie),\n\t\tpaths:   make(map[string]*fileObjCookie),\n\t\tcookies: make(map[*fileObjCookie]struct{}),\n\t}\n\treturn e, nil\n}\n\n//sys\tport_create() (n int, err error)\n//sys\tport_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error)\n//sys\tport_dissociate(port int, source int, object uintptr) (n int, err error)\n//sys\tport_get(port int, pe *portEvent, timeout *Timespec) (n int, err error)\n//sys\tport_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error)\n\n// Close closes the event port.\nfunc (e *EventPort) Close() error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\terr := Close(e.port)\n\tif err != nil {\n\t\treturn err\n\t}\n\te.fds = nil\n\te.paths = nil\n\te.cookies = nil\n\treturn nil\n}\n\n// PathIsWatched checks to see if path is associated with this EventPort.\nfunc (e *EventPort) PathIsWatched(path string) bool {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\t_, found := e.paths[path]\n\treturn found\n}\n\n// FdIsWatched checks to see if fd is associated with this EventPort.\nfunc (e *EventPort) FdIsWatched(fd uintptr) bool {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\t_, found := e.fds[fd]\n\treturn found\n}\n\n// AssociatePath wraps port_associate(3c) for a filesystem path including\n// creating the necessary file_obj from the provided stat information.\nfunc (e *EventPort) AssociatePath(path string, stat os.FileInfo, events int, cookie interface{}) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tif _, found := e.paths[path]; found {\n\t\treturn fmt.Errorf(\"%v is already associated with this Event Port\", path)\n\t}\n\tfCookie, err := createFileObjCookie(path, stat, cookie)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = port_associate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(fCookie.fobj)), events, (*byte)(unsafe.Pointer(fCookie)))\n\tif err != nil {\n\t\treturn err\n\t}\n\te.paths[path] = fCookie\n\te.cookies[fCookie] = struct{}{}\n\treturn nil\n}\n\n// DissociatePath wraps port_dissociate(3c) for a filesystem path.\nfunc (e *EventPort) DissociatePath(path string) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tf, ok := e.paths[path]\n\tif !ok {\n\t\treturn fmt.Errorf(\"%v is not associated with this Event Port\", path)\n\t}\n\t_, err := port_dissociate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(f.fobj)))\n\t// If the path is no longer associated with this event port (ENOENT)\n\t// we should delete it from our map. We can still return ENOENT to the caller.\n\t// But we need to save the cookie\n\tif err != nil && err != ENOENT {\n\t\treturn err\n\t}\n\tif err == nil {\n\t\t// dissociate was successful, safe to delete the cookie\n\t\tfCookie := e.paths[path]\n\t\tdelete(e.cookies, fCookie)\n\t}\n\tdelete(e.paths, path)\n\treturn err\n}\n\n// AssociateFd wraps calls to port_associate(3c) on file descriptors.\nfunc (e *EventPort) AssociateFd(fd uintptr, events int, cookie interface{}) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tif _, found := e.fds[fd]; found {\n\t\treturn fmt.Errorf(\"%v is already associated with this Event Port\", fd)\n\t}\n\tfCookie, err := createFileObjCookie(\"\", nil, cookie)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(fCookie)))\n\tif err != nil {\n\t\treturn err\n\t}\n\te.fds[fd] = fCookie\n\te.cookies[fCookie] = struct{}{}\n\treturn nil\n}\n\n// DissociateFd wraps calls to port_dissociate(3c) on file descriptors.\nfunc (e *EventPort) DissociateFd(fd uintptr) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\t_, ok := e.fds[fd]\n\tif !ok {\n\t\treturn fmt.Errorf(\"%v is not associated with this Event Port\", fd)\n\t}\n\t_, err := port_dissociate(e.port, PORT_SOURCE_FD, fd)\n\tif err != nil && err != ENOENT {\n\t\treturn err\n\t}\n\tif err == nil {\n\t\t// dissociate was successful, safe to delete the cookie\n\t\tfCookie := e.fds[fd]\n\t\tdelete(e.cookies, fCookie)\n\t}\n\tdelete(e.fds, fd)\n\treturn err\n}\n\nfunc createFileObjCookie(name string, stat os.FileInfo, cookie interface{}) (*fileObjCookie, error) {\n\tfCookie := new(fileObjCookie)\n\tfCookie.cookie = cookie\n\tif name != \"\" && stat != nil {\n\t\tfCookie.fobj = new(fileObj)\n\t\tbs, err := ByteSliceFromString(name)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfCookie.fobj.Name = (*int8)(unsafe.Pointer(&bs[0]))\n\t\ts := stat.Sys().(*syscall.Stat_t)\n\t\tfCookie.fobj.Atim.Sec = s.Atim.Sec\n\t\tfCookie.fobj.Atim.Nsec = s.Atim.Nsec\n\t\tfCookie.fobj.Mtim.Sec = s.Mtim.Sec\n\t\tfCookie.fobj.Mtim.Nsec = s.Mtim.Nsec\n\t\tfCookie.fobj.Ctim.Sec = s.Ctim.Sec\n\t\tfCookie.fobj.Ctim.Nsec = s.Ctim.Nsec\n\t}\n\treturn fCookie, nil\n}\n\n// GetOne wraps port_get(3c) and returns a single PortEvent.\nfunc (e *EventPort) GetOne(t *Timespec) (*PortEvent, error) {\n\tpe := new(portEvent)\n\t_, err := port_get(e.port, pe, t)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tp := new(PortEvent)\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\terr = e.peIntToExt(pe, p)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn p, nil\n}\n\n// peIntToExt converts a cgo portEvent struct into the friendlier PortEvent\n// NOTE: Always call this function while holding the e.mu mutex\nfunc (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) error {\n\tif e.cookies == nil {\n\t\treturn fmt.Errorf(\"this EventPort is already closed\")\n\t}\n\tpeExt.Events = peInt.Events\n\tpeExt.Source = peInt.Source\n\tfCookie := (*fileObjCookie)(unsafe.Pointer(peInt.User))\n\t_, found := e.cookies[fCookie]\n\n\tif !found {\n\t\tpanic(\"unexpected event port address; may be due to kernel bug; see https://go.dev/issue/54254\")\n\t}\n\tpeExt.Cookie = fCookie.cookie\n\tdelete(e.cookies, fCookie)\n\n\tswitch peInt.Source {\n\tcase PORT_SOURCE_FD:\n\t\tpeExt.Fd = uintptr(peInt.Object)\n\t\t// Only remove the fds entry if it exists and this cookie matches\n\t\tif fobj, ok := e.fds[peExt.Fd]; ok {\n\t\t\tif fobj == fCookie {\n\t\t\t\tdelete(e.fds, peExt.Fd)\n\t\t\t}\n\t\t}\n\tcase PORT_SOURCE_FILE:\n\t\tpeExt.fobj = fCookie.fobj\n\t\tpeExt.Path = BytePtrToString((*byte)(unsafe.Pointer(peExt.fobj.Name)))\n\t\t// Only remove the paths entry if it exists and this cookie matches\n\t\tif fobj, ok := e.paths[peExt.Path]; ok {\n\t\t\tif fobj == fCookie {\n\t\t\t\tdelete(e.paths, peExt.Path)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// Pending wraps port_getn(3c) and returns how many events are pending.\nfunc (e *EventPort) Pending() (int, error) {\n\tvar n uint32 = 0\n\t_, err := port_getn(e.port, nil, 0, &n, nil)\n\treturn int(n), err\n}\n\n// Get wraps port_getn(3c) and fills a slice of PortEvent.\n// It will block until either min events have been received\n// or the timeout has been exceeded. It will return how many\n// events were actually received along with any error information.\nfunc (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error) {\n\tif min == 0 {\n\t\treturn 0, fmt.Errorf(\"need to request at least one event or use Pending() instead\")\n\t}\n\tif len(s) < min {\n\t\treturn 0, fmt.Errorf(\"len(s) (%d) is less than min events requested (%d)\", len(s), min)\n\t}\n\tgot := uint32(min)\n\tmax := uint32(len(s))\n\tvar err error\n\tps := make([]portEvent, max)\n\t_, err = port_getn(e.port, &ps[0], max, &got, timeout)\n\t// got will be trustworthy with ETIME, but not any other error.\n\tif err != nil && err != ETIME {\n\t\treturn 0, err\n\t}\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tvalid := 0\n\tfor i := 0; i < int(got); i++ {\n\t\terr2 := e.peIntToExt(&ps[i], &s[i])\n\t\tif err2 != nil {\n\t\t\tif valid == 0 && err == nil {\n\t\t\t\t// If err2 is the only error and there are no valid events\n\t\t\t\t// to return, return it to the caller.\n\t\t\t\terr = err2\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tvalid = i + 1\n\t}\n\treturn valid, err\n}\n\n//sys\tputmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error)\n\nfunc Putmsg(fd int, cl []byte, data []byte, flags int) (err error) {\n\tvar clp, datap *strbuf\n\tif len(cl) > 0 {\n\t\tclp = &strbuf{\n\t\t\tLen: int32(len(cl)),\n\t\t\tBuf: (*int8)(unsafe.Pointer(&cl[0])),\n\t\t}\n\t}\n\tif len(data) > 0 {\n\t\tdatap = &strbuf{\n\t\t\tLen: int32(len(data)),\n\t\t\tBuf: (*int8)(unsafe.Pointer(&data[0])),\n\t\t}\n\t}\n\treturn putmsg(fd, clp, datap, flags)\n}\n\n//sys\tgetmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error)\n\nfunc Getmsg(fd int, cl []byte, data []byte) (retCl []byte, retData []byte, flags int, err error) {\n\tvar clp, datap *strbuf\n\tif len(cl) > 0 {\n\t\tclp = &strbuf{\n\t\t\tMaxlen: int32(len(cl)),\n\t\t\tBuf:    (*int8)(unsafe.Pointer(&cl[0])),\n\t\t}\n\t}\n\tif len(data) > 0 {\n\t\tdatap = &strbuf{\n\t\t\tMaxlen: int32(len(data)),\n\t\t\tBuf:    (*int8)(unsafe.Pointer(&data[0])),\n\t\t}\n\t}\n\n\tif err = getmsg(fd, clp, datap, &flags); err != nil {\n\t\treturn nil, nil, 0, err\n\t}\n\n\tif len(cl) > 0 {\n\t\tretCl = cl[:clp.Len]\n\t}\n\tif len(data) > 0 {\n\t\tretData = data[:datap.Len]\n\t}\n\treturn retCl, retData, flags, nil\n}\n\nfunc IoctlSetIntRetInt(fd int, req int, arg int) (int, error) {\n\treturn ioctlRet(fd, req, uintptr(arg))\n}\n\nfunc IoctlSetString(fd int, req int, val string) error {\n\tbs := make([]byte, len(val)+1)\n\tcopy(bs[:len(bs)-1], val)\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))\n\truntime.KeepAlive(&bs[0])\n\treturn err\n}\n\n// Lifreq Helpers\n\nfunc (l *Lifreq) SetName(name string) error {\n\tif len(name) >= len(l.Name) {\n\t\treturn fmt.Errorf(\"name cannot be more than %d characters\", len(l.Name)-1)\n\t}\n\tfor i := range name {\n\t\tl.Name[i] = int8(name[i])\n\t}\n\treturn nil\n}\n\nfunc (l *Lifreq) SetLifruInt(d int) {\n\t*(*int)(unsafe.Pointer(&l.Lifru[0])) = d\n}\n\nfunc (l *Lifreq) GetLifruInt() int {\n\treturn *(*int)(unsafe.Pointer(&l.Lifru[0]))\n}\n\nfunc (l *Lifreq) SetLifruUint(d uint) {\n\t*(*uint)(unsafe.Pointer(&l.Lifru[0])) = d\n}\n\nfunc (l *Lifreq) GetLifruUint() uint {\n\treturn *(*uint)(unsafe.Pointer(&l.Lifru[0]))\n}\n\nfunc IoctlLifreq(fd int, req int, l *Lifreq) error {\n\treturn ioctlPtr(fd, req, unsafe.Pointer(l))\n}\n\n// Strioctl Helpers\n\nfunc (s *Strioctl) SetInt(i int) {\n\ts.Len = int32(unsafe.Sizeof(i))\n\ts.Dp = (*int8)(unsafe.Pointer(&i))\n}\n\nfunc IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) {\n\treturn ioctlPtrRet(fd, req, unsafe.Pointer(s))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && solaris\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris\n\npackage unix\n\nimport (\n\t\"bytes\"\n\t\"sort\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar (\n\tStdin  = 0\n\tStdout = 1\n\tStderr = 2\n)\n\n// Do the interface allocations only once for common\n// Errno values.\nvar (\n\terrEAGAIN error = syscall.EAGAIN\n\terrEINVAL error = syscall.EINVAL\n\terrENOENT error = syscall.ENOENT\n)\n\nvar (\n\tsignalNameMapOnce sync.Once\n\tsignalNameMap     map[string]syscall.Signal\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e syscall.Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn nil\n\tcase EAGAIN:\n\t\treturn errEAGAIN\n\tcase EINVAL:\n\t\treturn errEINVAL\n\tcase ENOENT:\n\t\treturn errENOENT\n\t}\n\treturn e\n}\n\n// ErrnoName returns the error name for error number e.\nfunc ErrnoName(e syscall.Errno) string {\n\ti := sort.Search(len(errorList), func(i int) bool {\n\t\treturn errorList[i].num >= e\n\t})\n\tif i < len(errorList) && errorList[i].num == e {\n\t\treturn errorList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalName returns the signal name for signal number s.\nfunc SignalName(s syscall.Signal) string {\n\ti := sort.Search(len(signalList), func(i int) bool {\n\t\treturn signalList[i].num >= s\n\t})\n\tif i < len(signalList) && signalList[i].num == s {\n\t\treturn signalList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalNum returns the syscall.Signal for signal named s,\n// or 0 if a signal with such name is not found.\n// The signal name should start with \"SIG\".\nfunc SignalNum(s string) syscall.Signal {\n\tsignalNameMapOnce.Do(func() {\n\t\tsignalNameMap = make(map[string]syscall.Signal, len(signalList))\n\t\tfor _, signal := range signalList {\n\t\t\tsignalNameMap[signal.name] = signal.num\n\t\t}\n\t})\n\treturn signalNameMap[s]\n}\n\n// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.\nfunc clen(n []byte) int {\n\ti := bytes.IndexByte(n, 0)\n\tif i == -1 {\n\t\ti = len(n)\n\t}\n\treturn i\n}\n\n// Mmap manager, for use by operating system-specific implementations.\n\ntype mmapper struct {\n\tsync.Mutex\n\tactive map[*byte][]byte // active mappings; key is last byte in mapping\n\tmmap   func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error)\n\tmunmap func(addr uintptr, length uintptr) error\n}\n\nfunc (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\tif length <= 0 {\n\t\treturn nil, EINVAL\n\t}\n\n\t// Map the requested memory.\n\taddr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\n\t// Use unsafe to convert addr into a []byte.\n\tb := unsafe.Slice((*byte)(unsafe.Pointer(addr)), length)\n\n\t// Register mapping in m and return it.\n\tp := &b[cap(b)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tm.active[p] = b\n\treturn b, nil\n}\n\nfunc (m *mmapper) Munmap(data []byte) (err error) {\n\tif len(data) == 0 || len(data) != cap(data) {\n\t\treturn EINVAL\n\t}\n\n\t// Find the base of the mapping.\n\tp := &data[cap(data)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tb := m.active[p]\n\tif b == nil || &b[0] != &data[0] {\n\t\treturn EINVAL\n\t}\n\n\t// Unmap the memory and update m.\n\tif errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil {\n\t\treturn errno\n\t}\n\tdelete(m.active, p)\n\treturn nil\n}\n\nfunc Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\treturn mapper.Mmap(fd, offset, length, prot, flags)\n}\n\nfunc Munmap(b []byte) (err error) {\n\treturn mapper.Munmap(b)\n}\n\nfunc MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) {\n\txaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset)\n\treturn unsafe.Pointer(xaddr), err\n}\n\nfunc MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) {\n\treturn mapper.munmap(uintptr(addr), length)\n}\n\nfunc Read(fd int, p []byte) (n int, err error) {\n\tn, err = read(fd, p)\n\tif raceenabled {\n\t\tif n > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), n)\n\t\t}\n\t\tif err == nil {\n\t\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t\t}\n\t}\n\treturn\n}\n\nfunc Write(fd int, p []byte) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = write(fd, p)\n\tif raceenabled && n > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), n)\n\t}\n\treturn\n}\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tn, err = pread(fd, p, offset)\n\tif raceenabled {\n\t\tif n > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), n)\n\t\t}\n\t\tif err == nil {\n\t\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t\t}\n\t}\n\treturn\n}\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = pwrite(fd, p, offset)\n\tif raceenabled && n > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), n)\n\t}\n\treturn\n}\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\n// Sockaddr represents a socket address.\ntype Sockaddr interface {\n\tsockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs\n}\n\n// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets.\ntype SockaddrInet4 struct {\n\tPort int\n\tAddr [4]byte\n\traw  RawSockaddrInet4\n}\n\n// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets.\ntype SockaddrInet6 struct {\n\tPort   int\n\tZoneId uint32\n\tAddr   [16]byte\n\traw    RawSockaddrInet6\n}\n\n// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets.\ntype SockaddrUnix struct {\n\tName string\n\traw  RawSockaddrUnix\n}\n\nfunc Bind(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn bind(fd, ptr, n)\n}\n\nfunc Connect(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connect(fd, ptr, n)\n}\n\nfunc Getpeername(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getpeername(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\nfunc GetsockoptByte(fd, level, opt int) (value byte, err error) {\n\tvar n byte\n\tvallen := _Socklen(1)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc GetsockoptInt(fd, level, opt int) (value int, err error) {\n\tvar n int32\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn int(n), err\n}\n\nfunc GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\treturn value, err\n}\n\nfunc GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {\n\tvar value IPMreq\n\tvallen := _Socklen(SizeofIPMreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {\n\tvar value IPv6Mreq\n\tvallen := _Socklen(SizeofIPv6Mreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {\n\tvar value IPv6MTUInfo\n\tvallen := _Socklen(SizeofIPv6MTUInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {\n\tvar value ICMPv6Filter\n\tvallen := _Socklen(SizeofICMPv6Filter)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptLinger(fd, level, opt int) (*Linger, error) {\n\tvar linger Linger\n\tvallen := _Socklen(SizeofLinger)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen)\n\treturn &linger, err\n}\n\nfunc GetsockoptTimeval(fd, level, opt int) (*Timeval, error) {\n\tvar tv Timeval\n\tvallen := _Socklen(unsafe.Sizeof(tv))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen)\n\treturn &tv, err\n}\n\nfunc GetsockoptUint64(fd, level, opt int) (value uint64, err error) {\n\tvar n uint64\n\tvallen := _Socklen(8)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n// Recvmsg receives a message from a socket using the recvmsg system call. The\n// received non-control data will be written to p, and any \"out of band\"\n// control data will be written to oob. The flags are passed to recvmsg.\n//\n// The results are:\n//   - n is the number of non-control data bytes read into p\n//   - oobn is the number of control data bytes read into oob; this may be interpreted using [ParseSocketControlMessage]\n//   - recvflags is flags returned by recvmsg\n//   - from is the address of the sender\n//\n// If the underlying socket type is not SOCK_DGRAM, a received message\n// containing oob data and a single '\\0' of non-control data is treated as if\n// the message contained only control data, i.e. n will be zero on return.\nfunc Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tvar iov [1]Iovec\n\tif len(p) > 0 {\n\t\tiov[0].Base = &p[0]\n\t\tiov[0].SetLen(len(p))\n\t}\n\tvar rsa RawSockaddrAny\n\tn, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa)\n\t// source address is only specified if the socket is unconnected\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n// RecvmsgBuffers receives a message from a socket using the recvmsg system\n// call. This function is equivalent to Recvmsg, but non-control data read is\n// scattered into the buffers slices.\nfunc RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tiov := make([]Iovec, len(buffers))\n\tfor i := range buffers {\n\t\tif len(buffers[i]) > 0 {\n\t\t\tiov[i].Base = &buffers[i][0]\n\t\t\tiov[i].SetLen(len(buffers[i]))\n\t\t} else {\n\t\t\tiov[i].Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t}\n\tvar rsa RawSockaddrAny\n\tn, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa)\n\tif err == nil && rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n// Sendmsg sends a message on a socket to an address using the sendmsg system\n// call. This function is equivalent to SendmsgN, but does not return the\n// number of bytes actually sent.\nfunc Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {\n\t_, err = SendmsgN(fd, p, oob, to, flags)\n\treturn\n}\n\n// SendmsgN sends a message on a socket to an address using the sendmsg system\n// call. p contains the non-control data to send, and oob contains the \"out of\n// band\" control data. The flags are passed to sendmsg. The number of\n// non-control bytes actually written to the socket is returned.\n//\n// Some socket types do not support sending control data without accompanying\n// non-control data. If p is empty, and oob contains control data, and the\n// underlying socket type is not SOCK_DGRAM, p will be treated as containing a\n// single '\\0' and the return value will indicate zero bytes sent.\n//\n// The Go function Recvmsg, if called with an empty p and a non-empty oob,\n// will read and ignore this additional '\\0'.  If the message is received by\n// code that does not use Recvmsg, or that does not use Go at all, that code\n// will need to be written to expect and ignore the additional '\\0'.\n//\n// If you need to send non-empty oob with p actually empty, and if the\n// underlying socket type supports it, you can do so via a raw system call as\n// follows:\n//\n//\tmsg := &unix.Msghdr{\n//\t    Control: &oob[0],\n//\t}\n//\tmsg.SetControllen(len(oob))\n//\tn, _, errno := unix.Syscall(unix.SYS_SENDMSG, uintptr(fd), uintptr(unsafe.Pointer(msg)), flags)\nfunc SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tvar iov [1]Iovec\n\tif len(p) > 0 {\n\t\tiov[0].Base = &p[0]\n\t\tiov[0].SetLen(len(p))\n\t}\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn sendmsgN(fd, iov[:], oob, ptr, salen, flags)\n}\n\n// SendmsgBuffers sends a message on a socket to an address using the sendmsg\n// system call. This function is equivalent to SendmsgN, but the non-control\n// data is gathered from buffers.\nfunc SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tiov := make([]Iovec, len(buffers))\n\tfor i := range buffers {\n\t\tif len(buffers[i]) > 0 {\n\t\t\tiov[i].Base = &buffers[i][0]\n\t\t\tiov[i].SetLen(len(buffers[i]))\n\t\t} else {\n\t\t\tiov[i].Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t}\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn sendmsgN(fd, iov, oob, ptr, salen, flags)\n}\n\nfunc Send(s int, buf []byte, flags int) (err error) {\n\treturn sendto(s, buf, flags, nil, 0)\n}\n\nfunc Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) {\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn sendto(fd, p, flags, ptr, salen)\n}\n\nfunc SetsockoptByte(fd, level, opt int, value byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 1)\n}\n\nfunc SetsockoptInt(fd, level, opt int, value int) (err error) {\n\tvar n = int32(value)\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&n), 4)\n}\n\nfunc SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4)\n}\n\nfunc SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq)\n}\n\nfunc SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq)\n}\n\nfunc SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter)\n}\n\nfunc SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger)\n}\n\nfunc SetsockoptString(fd, level, opt int, s string) (err error) {\n\tvar p unsafe.Pointer\n\tif len(s) > 0 {\n\t\tp = unsafe.Pointer(&[]byte(s)[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(s)))\n}\n\nfunc SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))\n}\n\nfunc SetsockoptUint64(fd, level, opt int, value uint64) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)\n}\n\nfunc Socket(domain, typ, proto int) (fd int, err error) {\n\tif domain == AF_INET6 && SocketDisableIPv6 {\n\t\treturn -1, EAFNOSUPPORT\n\t}\n\tfd, err = socket(domain, typ, proto)\n\treturn\n}\n\nfunc Socketpair(domain, typ, proto int) (fd [2]int, err error) {\n\tvar fdx [2]int32\n\terr = socketpair(domain, typ, proto, &fdx)\n\tif err == nil {\n\t\tfd[0] = int(fdx[0])\n\t\tfd[1] = int(fdx[1])\n\t}\n\treturn\n}\n\nvar ioSync int64\n\nfunc CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) }\n\nfunc SetNonblock(fd int, nonblocking bool) (err error) {\n\tflag, err := fcntl(fd, F_GETFL, 0)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif (flag&O_NONBLOCK != 0) == nonblocking {\n\t\treturn nil\n\t}\n\tif nonblocking {\n\t\tflag |= O_NONBLOCK\n\t} else {\n\t\tflag &= ^O_NONBLOCK\n\t}\n\t_, err = fcntl(fd, F_SETFL, flag)\n\treturn err\n}\n\n// Exec calls execve(2), which replaces the calling executable in the process\n// tree. argv0 should be the full path to an executable (\"/bin/ls\") and the\n// executable name should also be the first argument in argv ([\"ls\", \"-l\"]).\n// envv are the environment variables that should be passed to the new\n// process ([\"USER=go\", \"PWD=/tmp\"]).\nfunc Exec(argv0 string, argv []string, envv []string) error {\n\treturn syscall.Exec(argv0, argv, envv)\n}\n\n// Lutimes sets the access and modification times tv on path. If path refers to\n// a symlink, it is not dereferenced and the timestamps are set on the symlink.\n// If tv is nil, the access and modification times are set to the current time.\n// Otherwise tv must contain exactly 2 elements, with access time as the first\n// element and modification time as the second element.\nfunc Lutimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW)\n}\n\n// emptyIovecs reports whether there are no bytes in the slice of Iovec.\nfunc emptyIovecs(iov []Iovec) bool {\n\tfor i := range iov {\n\t\tif iov[i].Len > 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Setrlimit sets a resource limit.\nfunc Setrlimit(resource int, rlim *Rlimit) error {\n\t// Just call the syscall version, because as of Go 1.21\n\t// it will affect starting a new process.\n\treturn syscall.Setrlimit(resource, (*syscall.Rlimit)(rlim))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix_gc.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc\n\npackage unix\n\nimport \"syscall\"\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (ppc64le || ppc64) && gc\n\npackage unix\n\nimport \"syscall\"\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.Syscall(trap, a1, a2, a3)\n}\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6)\n}\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.RawSyscall(trap, a1, a2, a3)\n}\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_zos_s390x.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Many of the following syscalls are not available on all versions of z/OS.\n// Some missing calls have legacy implementations/simulations but others\n// will be missing completely. To achieve consistent failing behaviour on\n// legacy systems, we first test the function pointer via a safeloading\n// mechanism to see if the function exists on a given system. Then execution\n// is branched to either continue the function call, or return an error.\n\npackage unix\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"os\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:noescape\nfunc initZosLibVec()\n\n//go:noescape\nfunc GetZosLibVec() uintptr\n\nfunc init() {\n\tinitZosLibVec()\n\tr0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte(\"__ZOS_XSYSTRACE\\x00\"))[0])))\n\tif r0 != 0 {\n\t\tn, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0)\n\t\tZosTraceLevel = int(n)\n\t\tr0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte(\"__ZOS_XSYSTRACEFD\\x00\"))[0])))\n\t\tif r0 != 0 {\n\t\t\tfd, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0)\n\t\t\tf := os.NewFile(fd, \"zostracefile\")\n\t\t\tif f != nil {\n\t\t\t\tZosTracefile = f\n\t\t\t}\n\t\t}\n\n\t}\n}\n\n//go:noescape\nfunc CallLeFuncWithErr(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno)\n\n//go:noescape\nfunc CallLeFuncWithPtrReturn(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno)\n\n// -------------------------------\n// pointer validity test\n// good pointer returns 0\n// bad pointer returns 1\n//\n//go:nosplit\nfunc ptrtest(uintptr) uint64\n\n// Load memory at ptr location with error handling if the location is invalid\n//\n//go:noescape\nfunc safeload(ptr uintptr) (value uintptr, error uintptr)\n\nconst (\n\tentrypointLocationOffset = 8 // From function descriptor\n\n\txplinkEyecatcher   = 0x00c300c500c500f1 // \".C.E.E.1\"\n\teyecatcherOffset   = 16                 // From function entrypoint (negative)\n\tppa1LocationOffset = 8                  // From function entrypoint (negative)\n\n\tnameLenOffset = 0x14 // From PPA1 start\n\tnameOffset    = 0x16 // From PPA1 start\n)\n\nfunc getPpaOffset(funcptr uintptr) int64 {\n\tentrypoint, err := safeload(funcptr + entrypointLocationOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\n\t// XPLink functions have \".C.E.E.1\" as the first 8 bytes (EBCDIC)\n\tval, err := safeload(entrypoint - eyecatcherOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\tif val != xplinkEyecatcher {\n\t\treturn -1\n\t}\n\n\tppaoff, err := safeload(entrypoint - ppa1LocationOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\n\tppaoff >>= 32\n\treturn int64(ppaoff)\n}\n\n//-------------------------------\n// function descriptor pointer validity test\n// good pointer returns 0\n// bad pointer returns 1\n\n// TODO: currently mksyscall_zos_s390x.go generate empty string for funcName\n// have correct funcName pass to the funcptrtest function\nfunc funcptrtest(funcptr uintptr, funcName string) uint64 {\n\tentrypoint, err := safeload(funcptr + entrypointLocationOffset)\n\tif err != 0 {\n\t\treturn 1\n\t}\n\n\tppaoff := getPpaOffset(funcptr)\n\tif ppaoff == -1 {\n\t\treturn 1\n\t}\n\n\t// PPA1 offset value is from the start of the entire function block, not the entrypoint\n\tppa1 := (entrypoint - eyecatcherOffset) + uintptr(ppaoff)\n\n\tnameLen, err := safeload(ppa1 + nameLenOffset)\n\tif err != 0 {\n\t\treturn 1\n\t}\n\n\tnameLen >>= 48\n\tif nameLen > 128 {\n\t\treturn 1\n\t}\n\n\t// no function name input to argument end here\n\tif funcName == \"\" {\n\t\treturn 0\n\t}\n\n\tvar funcname [128]byte\n\tfor i := 0; i < int(nameLen); i += 8 {\n\t\tv, err := safeload(ppa1 + nameOffset + uintptr(i))\n\t\tif err != 0 {\n\t\t\treturn 1\n\t\t}\n\t\tfuncname[i] = byte(v >> 56)\n\t\tfuncname[i+1] = byte(v >> 48)\n\t\tfuncname[i+2] = byte(v >> 40)\n\t\tfuncname[i+3] = byte(v >> 32)\n\t\tfuncname[i+4] = byte(v >> 24)\n\t\tfuncname[i+5] = byte(v >> 16)\n\t\tfuncname[i+6] = byte(v >> 8)\n\t\tfuncname[i+7] = byte(v)\n\t}\n\n\truntime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l\n\t\t[]uintptr{uintptr(unsafe.Pointer(&funcname[0])), nameLen})\n\n\tname := string(funcname[:nameLen])\n\tif name != funcName {\n\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n// For detection of capabilities on a system.\n// Is function descriptor f a valid function?\nfunc isValidLeFunc(f uintptr) error {\n\tret := funcptrtest(f, \"\")\n\tif ret != 0 {\n\t\treturn fmt.Errorf(\"Bad pointer, not an LE function \")\n\t}\n\treturn nil\n}\n\n// Retrieve function name from descriptor\nfunc getLeFuncName(f uintptr) (string, error) {\n\t// assume it has been checked, only check ppa1 validity here\n\tentry := ((*[2]uintptr)(unsafe.Pointer(f)))[1]\n\tpreamp := ((*[4]uint32)(unsafe.Pointer(entry - eyecatcherOffset)))\n\n\toffsetPpa1 := preamp[2]\n\tif offsetPpa1 > 0x0ffff {\n\t\treturn \"\", fmt.Errorf(\"PPA1 offset seems too big 0x%x\\n\", offsetPpa1)\n\t}\n\n\tppa1 := uintptr(unsafe.Pointer(preamp)) + uintptr(offsetPpa1)\n\tres := ptrtest(ppa1)\n\tif res != 0 {\n\t\treturn \"\", fmt.Errorf(\"PPA1 address not valid\")\n\t}\n\n\tsize := *(*uint16)(unsafe.Pointer(ppa1 + nameLenOffset))\n\tif size > 128 {\n\t\treturn \"\", fmt.Errorf(\"Function name seems too long, length=%d\\n\", size)\n\t}\n\n\tvar name [128]byte\n\tfuncname := (*[128]byte)(unsafe.Pointer(ppa1 + nameOffset))\n\tcopy(name[0:size], funcname[0:size])\n\n\truntime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l\n\t\t[]uintptr{uintptr(unsafe.Pointer(&name[0])), uintptr(size)})\n\n\treturn string(name[:size]), nil\n}\n\n// Check z/OS version\nfunc zosLeVersion() (version, release uint32) {\n\tp1 := (*(*uintptr)(unsafe.Pointer(uintptr(1208)))) >> 32\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 88)))\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 8)))\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 984)))\n\tvrm := *(*uint32)(unsafe.Pointer(p1 + 80))\n\tversion = (vrm & 0x00ff0000) >> 16\n\trelease = (vrm & 0x0000ff00) >> 8\n\treturn\n}\n\n// returns a zos C FILE * for stdio fd 0, 1, 2\nfunc ZosStdioFilep(fd int32) uintptr {\n\treturn uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(uint64(*(*uint32)(unsafe.Pointer(uintptr(1208)))) + 80))) + uint64((fd+2)<<3))))))))\n}\n\nfunc copyStat(stat *Stat_t, statLE *Stat_LE_t) {\n\tstat.Dev = uint64(statLE.Dev)\n\tstat.Ino = uint64(statLE.Ino)\n\tstat.Nlink = uint64(statLE.Nlink)\n\tstat.Mode = uint32(statLE.Mode)\n\tstat.Uid = uint32(statLE.Uid)\n\tstat.Gid = uint32(statLE.Gid)\n\tstat.Rdev = uint64(statLE.Rdev)\n\tstat.Size = statLE.Size\n\tstat.Atim.Sec = int64(statLE.Atim)\n\tstat.Atim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Mtim.Sec = int64(statLE.Mtim)\n\tstat.Mtim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Ctim.Sec = int64(statLE.Ctim)\n\tstat.Ctim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Blksize = int64(statLE.Blksize)\n\tstat.Blocks = statLE.Blocks\n}\n\nfunc svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64)\nfunc svcLoad(name *byte) unsafe.Pointer\nfunc svcUnload(name *byte, fnptr unsafe.Pointer) int64\n\nfunc (d *Dirent) NameString() string {\n\tif d == nil {\n\t\treturn \"\"\n\t}\n\ts := string(d.Name[:])\n\tidx := strings.IndexByte(s, 0)\n\tif idx == -1 {\n\t\treturn s\n\t} else {\n\t\treturn s[:idx]\n\t}\n}\n\nfunc DecodeData(dest []byte, sz int, val uint64) {\n\tfor i := 0; i < sz; i++ {\n\t\tdest[sz-1-i] = byte((val >> (uint64(i * 8))) & 0xff)\n\t}\n}\n\nfunc EncodeData(data []byte) uint64 {\n\tvar value uint64\n\tsz := len(data)\n\tfor i := 0; i < sz; i++ {\n\t\tvalue |= uint64(data[i]) << uint64(((sz - i - 1) * 8))\n\t}\n\treturn value\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet4\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet6\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) || n == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\t// TODO(neeilan): Implement use of first param (fd)\n\tswitch rsa.Addr.Family {\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\t// For z/OS, only replace NUL with @ when the\n\t\t// length is not zero.\n\t\tif pp.Len != 0 && pp.Path[0] == 0 {\n\t\t\t// \"Abstract\" Unix domain socket.\n\t\t\t// Rewrite leading NUL as @ for textual display.\n\t\t\t// (This is the standard convention.)\n\t\t\t// Not friendly to overwrite in place,\n\t\t\t// but the callers below don't care.\n\t\t\tpp.Path[0] = '@'\n\t\t}\n\n\t\t// Assume path ends at NUL.\n\t\t//\n\t\t// For z/OS, the length of the name is a field\n\t\t// in the structure. To be on the safe side, we\n\t\t// will still scan the name for a NUL but only\n\t\t// to the length provided in the structure.\n\t\t//\n\t\t// This is not technically the Linux semantics for\n\t\t// abstract Unix domain sockets--they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs--but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < int(pp.Len) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif err != nil {\n\t\treturn\n\t}\n\t// TODO(neeilan): Remove 0 in call\n\tsa, err = anyToSockaddr(0, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\t// TODO(neeilan): Remove 0 in call\n\tsa, err = anyToSockaddr(0, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Ctermid() (tty string, err error) {\n\tvar termdev [1025]byte\n\truntime.EnterSyscall()\n\tr0, err2, err1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___CTERMID_A<<4, uintptr(unsafe.Pointer(&termdev[0])))\n\truntime.ExitSyscall()\n\tif r0 == 0 {\n\t\treturn \"\", fmt.Errorf(\"%s (errno2=0x%x)\\n\", err1.Error(), err2)\n\t}\n\ts := string(termdev[:])\n\tidx := strings.Index(s, string(rune(0)))\n\tif idx == -1 {\n\t\ttty = s\n\t} else {\n\t\ttty = s[:idx]\n\t}\n\treturn\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = int32(length)\n}\n\n//sys   fcntl(fd int, cmd int, arg int) (val int, err error)\n//sys   Flistxattr(fd int, dest []byte) (sz int, err error) = SYS___FLISTXATTR_A\n//sys   Fremovexattr(fd int, attr string) (err error) = SYS___FREMOVEXATTR_A\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n\n//sys   Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) = SYS___FGETXATTR_A\n//sys   Fsetxattr(fd int, attr string, data []byte, flag int) (err error) = SYS___FSETXATTR_A\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = SYS___ACCEPT4_A\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___BIND_A\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___CONNECT_A\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETPEERNAME_A\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETSOCKNAME_A\n//sys   Removexattr(path string, attr string) (err error) = SYS___REMOVEXATTR_A\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = SYS___RECVFROM_A\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = SYS___SENDTO_A\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___RECVMSG_A\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___SENDMSG_A\n//sys   mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) = SYS_MMAP\n//sys   munmap(addr uintptr, length uintptr) (err error) = SYS_MUNMAP\n//sys   ioctl(fd int, req int, arg uintptr) (err error) = SYS_IOCTL\n//sys   ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = SYS_IOCTL\n//sys\tshmat(id int, addr uintptr, flag int) (ret uintptr, err error) = SYS_SHMAT\n//sys\tshmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) = SYS_SHMCTL64\n//sys\tshmdt(addr uintptr) (err error) = SYS_SHMDT\n//sys\tshmget(key int, size int, flag int) (id int, err error) = SYS_SHMGET\n\n//sys   Access(path string, mode uint32) (err error) = SYS___ACCESS_A\n//sys   Chdir(path string) (err error) = SYS___CHDIR_A\n//sys\tChown(path string, uid int, gid int) (err error) = SYS___CHOWN_A\n//sys\tChmod(path string, mode uint32) (err error) = SYS___CHMOD_A\n//sys   Creat(path string, mode uint32) (fd int, err error) = SYS___CREAT_A\n//sys\tDup(oldfd int) (fd int, err error)\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tDup3(oldfd int, newfd int, flags int) (err error) = SYS_DUP3\n//sys\tDirfd(dirp uintptr) (fd int, err error) = SYS_DIRFD\n//sys\tEpollCreate(size int) (fd int, err error) = SYS_EPOLL_CREATE\n//sys\tEpollCreate1(flags int) (fd int, err error) = SYS_EPOLL_CREATE1\n//sys\tEpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) = SYS_EPOLL_CTL\n//sys\tEpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_WAIT\n//sys\tErrno2() (er2 int) = SYS___ERRNO2\n//sys\tEventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FACCESSAT_A\n\nfunc Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) {\n\treturn Faccessat(dirfd, path, mode, flags)\n}\n\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FCHMODAT_A\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(fd int, path string, uid int, gid int, flags int) (err error) = SYS___FCHOWNAT_A\n//sys\tFcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL\n//sys\tFdatasync(fd int) (err error) = SYS_FDATASYNC\n//sys\tfstat(fd int, stat *Stat_LE_t) (err error)\n//sys\tfstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) = SYS___FSTATAT_A\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\tvar statLE Stat_LE_t\n\terr = fstat(fd, &statLE)\n\tcopyStat(stat, &statLE)\n\treturn\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar statLE Stat_LE_t\n\terr = fstatat(dirfd, path, &statLE, flags)\n\tcopyStat(stat, &statLE)\n\treturn\n}\n\nfunc impl_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)))\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_GetxattrAddr() *(func(path string, attr string, dest []byte) (sz int, err error))\n\nvar Getxattr = enter_Getxattr\n\nfunc enter_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tfuncref := get_GetxattrAddr()\n\tif validGetxattr() {\n\t\t*funcref = impl_Getxattr\n\t} else {\n\t\t*funcref = error_Getxattr\n\t}\n\treturn (*funcref)(path, attr, dest)\n}\n\nfunc error_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc validGetxattr() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___GETXATTR_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___GETXATTR_A<<4); err == nil {\n\t\t\treturn name == \"__getxattr_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n//sys   Lgetxattr(link string, attr string, dest []byte) (sz int, err error) = SYS___LGETXATTR_A\n//sys   Lsetxattr(path string, attr string, data []byte, flags int) (err error) = SYS___LSETXATTR_A\n\nfunc impl_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error))\n\nvar Setxattr = enter_Setxattr\n\nfunc enter_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tfuncref := get_SetxattrAddr()\n\tif validSetxattr() {\n\t\t*funcref = impl_Setxattr\n\t} else {\n\t\t*funcref = error_Setxattr\n\t}\n\treturn (*funcref)(path, attr, data, flags)\n}\n\nfunc error_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\treturn ENOSYS\n}\n\nfunc validSetxattr() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___SETXATTR_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___SETXATTR_A<<4); err == nil {\n\t\t\treturn name == \"__setxattr_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error) = SYS_FSTATFS\n//sys\tFstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS\n//sys\tFsync(fd int) (err error)\n//sys\tFutimes(fd int, tv []Timeval) (err error) = SYS_FUTIMES\n//sys\tFutimesat(dirfd int, path string, tv []Timeval) (err error) = SYS___FUTIMESAT_A\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetrandom(buf []byte, flags int) (n int, err error) = SYS_GETRANDOM\n//sys\tInotifyInit() (fd int, err error) = SYS_INOTIFY_INIT\n//sys\tInotifyInit1(flags int) (fd int, err error) = SYS_INOTIFY_INIT1\n//sys\tInotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) = SYS___INOTIFY_ADD_WATCH_A\n//sys\tInotifyRmWatch(fd int, watchdesc uint32) (success int, err error) = SYS_INOTIFY_RM_WATCH\n//sys   Listxattr(path string, dest []byte) (sz int, err error) = SYS___LISTXATTR_A\n//sys   Llistxattr(path string, dest []byte) (sz int, err error) = SYS___LLISTXATTR_A\n//sys   Lremovexattr(path string, attr string) (err error) = SYS___LREMOVEXATTR_A\n//sys\tLutimes(path string, tv []Timeval) (err error) = SYS___LUTIMES_A\n//sys   Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT\n//sys   Msync(b []byte, flags int) (err error) = SYS_MSYNC\n//sys   Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) = SYS___CONSOLE2\n\n// Pipe2 begin\n\n//go:nosplit\nfunc getPipe2Addr() *(func([]int, int) error)\n\nvar Pipe2 = pipe2Enter\n\nfunc pipe2Enter(p []int, flags int) (err error) {\n\tif funcptrtest(GetZosLibVec()+SYS_PIPE2<<4, \"\") == 0 {\n\t\t*getPipe2Addr() = pipe2Impl\n\t} else {\n\t\t*getPipe2Addr() = pipe2Error\n\t}\n\treturn (*getPipe2Addr())(p, flags)\n}\n\nfunc pipe2Impl(p []int, flags int) (err error) {\n\tvar pp [2]_C_int\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE2<<4, uintptr(unsafe.Pointer(&pp[0])), uintptr(flags))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t} else {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn\n}\nfunc pipe2Error(p []int, flags int) (err error) {\n\treturn fmt.Errorf(\"Pipe2 is not available on this system\")\n}\n\n// Pipe2 end\n\n//sys   Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL\n\nfunc Readdir(dir uintptr) (dirent *Dirent, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_A<<4, uintptr(dir))\n\truntime.ExitSyscall()\n\tdirent = (*Dirent)(unsafe.Pointer(r0))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//sys\tReaddir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) = SYS___READDIR_R_A\n//sys\tStatfs(path string, buf *Statfs_t) (err error) = SYS___STATFS_A\n//sys\tSyncfs(fd int) (err error) = SYS_SYNCFS\n//sys   Times(tms *Tms) (ticks uintptr, err error) = SYS_TIMES\n//sys   W_Getmntent(buff *byte, size int) (lastsys int, err error) = SYS_W_GETMNTENT\n//sys   W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A\n\n//sys   mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A\n//sys   unmount_LE(filesystem string, mtm int) (err error) = SYS___UMOUNT_A\n//sys   Chroot(path string) (err error) = SYS___CHROOT_A\n//sys   Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT\n//sysnb Uname(buf *Utsname) (err error) = SYS_____OSNAME_A\n//sys   Unshare(flags int) (err error) = SYS_UNSHARE\n\nfunc Ptsname(fd int) (name string, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___PTSNAME_A<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif r0 == 0 {\n\t\terr = errnoErr2(e1, e2)\n\t} else {\n\t\tname = u2s(unsafe.Pointer(r0))\n\t}\n\treturn\n}\n\nfunc u2s(cstr unsafe.Pointer) string {\n\tstr := (*[1024]uint8)(cstr)\n\ti := 0\n\tfor str[i] != 0 {\n\t\ti++\n\t}\n\treturn string(str[:i])\n}\n\nfunc Close(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tfor i := 0; e1 == EAGAIN && i < 10; i++ {\n\t\truntime.EnterSyscall()\n\t\tCallLeFuncWithErr(GetZosLibVec()+SYS_USLEEP<<4, uintptr(10))\n\t\truntime.ExitSyscall()\n\t\truntime.EnterSyscall()\n\t\tr0, e2, e1 = CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd))\n\t\truntime.ExitSyscall()\n\t}\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// Dummy function: there are no semantics for Madvise on z/OS\nfunc Madvise(b []byte, advice int) (err error) {\n\treturn\n}\n\nfunc Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\treturn mapper.Mmap(fd, offset, length, prot, flags)\n}\n\nfunc Munmap(b []byte) (err error) {\n\treturn mapper.Munmap(b)\n}\n\n//sys   Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error) = SYS_GETPGID\n\nfunc Getpgrp() (pid int) {\n\tpid, _ = Getpgid(0)\n\treturn\n}\n\n//sysnb\tGetppid() (pid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error) = SYS_GETRLIMIT\n\n//sysnb getrusage(who int, rusage *rusage_zos) (err error) = SYS_GETRUSAGE\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\tvar ruz rusage_zos\n\terr = getrusage(who, &ruz)\n\t//Only the first two fields of Rusage are set\n\trusage.Utime.Sec = ruz.Utime.Sec\n\trusage.Utime.Usec = int64(ruz.Utime.Usec)\n\trusage.Stime.Sec = ruz.Stime.Sec\n\trusage.Stime.Usec = int64(ruz.Stime.Usec)\n\treturn\n}\n\n//sys\tGetegid() (egid int) = SYS_GETEGID\n//sys\tGeteuid() (euid int) = SYS_GETEUID\n//sysnb Getsid(pid int) (sid int, err error) = SYS_GETSID\n//sysnb\tGetuid() (uid int)\n//sysnb\tKill(pid int, sig Signal) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error) = SYS___LCHOWN_A\n//sys\tLink(path string, link string) (err error) = SYS___LINK_A\n//sys\tLinkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) = SYS___LINKAT_A\n//sys\tListen(s int, n int) (err error)\n//sys\tlstat(path string, stat *Stat_LE_t) (err error) = SYS___LSTAT_A\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar statLE Stat_LE_t\n\terr = lstat(path, &statLE)\n\tcopyStat(stat, &statLE)\n\treturn\n}\n\n// for checking symlinks begins with $VERSION/ $SYSNAME/ $SYSSYMR/ $SYSSYMA/\nfunc isSpecialPath(path []byte) (v bool) {\n\tvar special = [4][8]byte{\n\t\t[8]byte{'V', 'E', 'R', 'S', 'I', 'O', 'N', '/'},\n\t\t[8]byte{'S', 'Y', 'S', 'N', 'A', 'M', 'E', '/'},\n\t\t[8]byte{'S', 'Y', 'S', 'S', 'Y', 'M', 'R', '/'},\n\t\t[8]byte{'S', 'Y', 'S', 'S', 'Y', 'M', 'A', '/'}}\n\n\tvar i, j int\n\tfor i = 0; i < len(special); i++ {\n\t\tfor j = 0; j < len(special[i]); j++ {\n\t\t\tif path[j] != special[i][j] {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif j == len(special[i]) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc realpath(srcpath string, abspath []byte) (pathlen int, errno int) {\n\tvar source [1024]byte\n\tcopy(source[:], srcpath)\n\tsource[len(srcpath)] = 0\n\tret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___REALPATH_A<<4, //__realpath_a()\n\t\t[]uintptr{uintptr(unsafe.Pointer(&source[0])),\n\t\t\tuintptr(unsafe.Pointer(&abspath[0]))})\n\tif ret != 0 {\n\t\tindex := bytes.IndexByte(abspath[:], byte(0))\n\t\tif index != -1 {\n\t\t\treturn index, 0\n\t\t}\n\t} else {\n\t\terrptr := (*int)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) //__errno()\n\t\treturn 0, *errptr\n\t}\n\treturn 0, 245 // EBADDATA   245\n}\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tn = int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___READLINK_A<<4,\n\t\t[]uintptr{uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))}))\n\truntime.KeepAlive(unsafe.Pointer(_p0))\n\tif n == -1 {\n\t\tvalue := *(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{})))\n\t\terr = errnoErr(Errno(value))\n\t} else {\n\t\tif buf[0] == '$' {\n\t\t\tif isSpecialPath(buf[1:9]) {\n\t\t\t\tcnt, err1 := realpath(path, buf)\n\t\t\t\tif err1 == 0 {\n\t\t\t\t\tn = cnt\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\nfunc impl_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t\treturn n, err\n\t} else {\n\t\tif buf[0] == '$' {\n\t\t\tif isSpecialPath(buf[1:9]) {\n\t\t\t\tcnt, err1 := realpath(path, buf)\n\t\t\t\tif err1 == 0 {\n\t\t\t\t\tn = cnt\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_ReadlinkatAddr() *(func(dirfd int, path string, buf []byte) (n int, err error))\n\nvar Readlinkat = enter_Readlinkat\n\nfunc enter_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tfuncref := get_ReadlinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___READLINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Readlinkat\n\t} else {\n\t\t*funcref = error_Readlinkat\n\t}\n\treturn (*funcref)(dirfd, path, buf)\n}\n\nfunc error_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n//sys\tMkdir(path string, mode uint32) (err error) = SYS___MKDIR_A\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error) = SYS___MKDIRAT_A\n//sys   Mkfifo(path string, mode uint32) (err error) = SYS___MKFIFO_A\n//sys\tMknod(path string, mode uint32, dev int) (err error) = SYS___MKNOD_A\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error) = SYS___MKNODAT_A\n//sys\tPivotRoot(newroot string, oldroot string) (err error) = SYS___PIVOT_ROOT_A\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPrctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) = SYS___PRCTL_A\n//sysnb\tPrlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT\n//sys\tRename(from string, to string) (err error) = SYS___RENAME_A\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) = SYS___RENAMEAT_A\n//sys\tRenameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) = SYS___RENAMEAT2_A\n//sys\tRmdir(path string) (err error) = SYS___RMDIR_A\n//sys   Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSetegid(egid int) (err error) = SYS_SETEGID\n//sys\tSeteuid(euid int) (err error) = SYS_SETEUID\n//sys\tSethostname(p []byte) (err error) = SYS___SETHOSTNAME_A\n//sys   Setns(fd int, nstype int) (err error) = SYS_SETNS\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error) = SYS_SETPGID\n//sysnb\tSetrlimit(resource int, lim *Rlimit) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error) = SYS_SETREGID\n//sysnb\tSetreuid(ruid int, euid int) (err error) = SYS_SETREUID\n//sysnb\tSetsid() (pid int, err error) = SYS_SETSID\n//sys\tSetuid(uid int) (err error) = SYS_SETUID\n//sys\tSetgid(uid int) (err error) = SYS_SETGID\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tstat(path string, statLE *Stat_LE_t) (err error) = SYS___STAT_A\n\nfunc Stat(path string, sta *Stat_t) (err error) {\n\tvar statLE Stat_LE_t\n\terr = stat(path, &statLE)\n\tcopyStat(sta, &statLE)\n\treturn\n}\n\n//sys\tSymlink(path string, link string) (err error) = SYS___SYMLINK_A\n//sys\tSymlinkat(oldPath string, dirfd int, newPath string) (err error) = SYS___SYMLINKAT_A\n//sys\tSync() = SYS_SYNC\n//sys\tTruncate(path string, length int64) (err error) = SYS___TRUNCATE_A\n//sys\tTcgetattr(fildes int, termptr *Termios) (err error) = SYS_TCGETATTR\n//sys\tTcsetattr(fildes int, when int, termptr *Termios) (err error) = SYS_TCSETATTR\n//sys\tUmask(mask int) (oldmask int)\n//sys\tUnlink(path string) (err error) = SYS___UNLINK_A\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error) = SYS___UNLINKAT_A\n//sys\tUtime(path string, utim *Utimbuf) (err error) = SYS___UTIME_A\n\n//sys\topen(path string, mode int, perm uint32) (fd int, err error) = SYS___OPEN_A\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tif mode&O_ACCMODE == 0 {\n\t\tmode |= O_RDONLY\n\t}\n\treturn open(path, mode, perm)\n}\n\n//sys\topenat(dirfd int, path string, flags int, mode uint32) (fd int, err error) = SYS___OPENAT_A\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tif flags&O_ACCMODE == 0 {\n\t\tflags |= O_RDONLY\n\t}\n\treturn openat(dirfd, path, flags, mode)\n}\n\n//sys\topenat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) = SYS___OPENAT2_A\n\nfunc Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) {\n\tif how.Flags&O_ACCMODE == 0 {\n\t\thow.Flags |= O_RDONLY\n\t}\n\treturn openat2(dirfd, path, how, SizeofOpenHow)\n}\n\nfunc ZosFdToPath(dirfd int) (path string, err error) {\n\tvar buffer [1024]byte\n\truntime.EnterSyscall()\n\tret, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_IOCTL<<4, uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0])))\n\truntime.ExitSyscall()\n\tif ret == 0 {\n\t\tzb := bytes.IndexByte(buffer[:], 0)\n\t\tif zb == -1 {\n\t\t\tzb = len(buffer)\n\t\t}\n\t\tCallLeFuncWithErr(GetZosLibVec()+SYS___E2A_L<<4, uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb))\n\t\treturn string(buffer[:zb]), nil\n\t}\n\treturn \"\", errnoErr2(e1, e2)\n}\n\n//sys\tremove(path string) (err error)\n\nfunc Remove(path string) error {\n\treturn remove(path)\n}\n\nconst ImplementsGetwd = true\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar p unsafe.Pointer\n\tif len(buf) > 0 {\n\t\tp = unsafe.Pointer(&buf[0])\n\t} else {\n\t\tp = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___GETCWD_A<<4, uintptr(p), uintptr(len(buf)))\n\truntime.ExitSyscall()\n\tn = clen(buf) + 1\n\tif r0 == 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Getwd() (wd string, err error) {\n\tvar buf [PathMax]byte\n\tn, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\t// Getcwd returns the number of bytes written to buf, including the NUL.\n\tif n < 1 || n > len(buf) || buf[n-1] != 0 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[0 : n-1]), nil\n}\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count.  Max is 1<<16 on Linux.\n\tif n < 0 || n > 1<<20 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\nfunc gettid() uint64\n\nfunc Gettid() (tid int) {\n\treturn int(gettid())\n}\n\ntype WaitStatus uint32\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits.  At least that's the idea.\n// There are various irregularities.  For example, the\n// \"continued\" status is 0xFFFF, distinguishing itself\n// from stopped via the core dump bit.\n\nconst (\n\tmask    = 0x7F\n\tcore    = 0x80\n\texited  = 0x00\n\tstopped = 0x7F\n\tshift   = 8\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited }\n\nfunc (w WaitStatus) Stopped() bool { return w&0xFF == stopped }\n\nfunc (w WaitStatus) Continued() bool { return w == 0xFFFF }\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif !w.Exited() {\n\t\treturn -1\n\t}\n\treturn int(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) Signal() Signal {\n\tif !w.Signaled() {\n\t\treturn -1\n\t}\n\treturn Signal(w & mask)\n}\n\nfunc (w WaitStatus) StopSignal() Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\twaitid(idType int, id int, info *Siginfo, options int) (err error)\n\nfunc Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) {\n\treturn waitid(idType, id, info, options)\n}\n\n//sys\twaitpid(pid int, wstatus *_C_int, options int) (wpid int, err error)\n\nfunc impl_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAIT4<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)))\n\truntime.ExitSyscall()\n\twpid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_Wait4Addr() *(func(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error))\n\nvar Wait4 = enter_Wait4\n\nfunc enter_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tfuncref := get_Wait4Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_WAIT4<<4, \"\") == 0 {\n\t\t*funcref = impl_Wait4\n\t} else {\n\t\t*funcref = legacyWait4\n\t}\n\treturn (*funcref)(pid, wstatus, options, rusage)\n}\n\nfunc legacyWait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\t// TODO(mundaym): z/OS doesn't have wait4. I don't think getrusage does what we want.\n\t// At the moment rusage will not be touched.\n\tvar status _C_int\n\twpid, err = waitpid(pid, &status, options)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n//sysnb\tgettimeofday(tv *timeval_zos) (err error)\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\tvar tvz timeval_zos\n\terr = gettimeofday(&tvz)\n\ttv.Sec = tvz.Sec\n\ttv.Usec = int64(tvz.Usec)\n\treturn\n}\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval { //fix\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\n//sysnb pipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sys\tutimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A\n\nfunc Utimes(path string, tv []Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) = SYS___UTIMENSAT_A\n\nfunc validUtimensat() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___UTIMENSAT_A<<4); err == nil {\n\t\t\treturn name == \"__utimensat_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n// Begin UtimesNano\n\n//go:nosplit\nfunc get_UtimesNanoAddr() *(func(path string, ts []Timespec) (err error))\n\nvar UtimesNano = enter_UtimesNano\n\nfunc enter_UtimesNano(path string, ts []Timespec) (err error) {\n\tfuncref := get_UtimesNanoAddr()\n\tif validUtimensat() {\n\t\t*funcref = utimesNanoImpl\n\t} else {\n\t\t*funcref = legacyUtimesNano\n\t}\n\treturn (*funcref)(path, ts)\n}\n\nfunc utimesNanoImpl(path string, ts []Timespec) (err error) {\n\tif ts == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc legacyUtimesNano(path string, ts []Timespec) (err error) {\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\t// Not as efficient as it could be because Timespec and\n\t// Timeval have different types in the different OSes\n\ttv := [2]Timeval{\n\t\tNsecToTimeval(TimespecToNsec(ts[0])),\n\t\tNsecToTimeval(TimespecToNsec(ts[1])),\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n// End UtimesNano\n\n// Begin UtimesNanoAt\n\n//go:nosplit\nfunc get_UtimesNanoAtAddr() *(func(dirfd int, path string, ts []Timespec, flags int) (err error))\n\nvar UtimesNanoAt = enter_UtimesNanoAt\n\nfunc enter_UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) {\n\tfuncref := get_UtimesNanoAtAddr()\n\tif validUtimensat() {\n\t\t*funcref = utimesNanoAtImpl\n\t} else {\n\t\t*funcref = legacyUtimesNanoAt\n\t}\n\treturn (*funcref)(dirfd, path, ts, flags)\n}\n\nfunc utimesNanoAtImpl(dirfd int, path string, ts []Timespec, flags int) (err error) {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\nfunc legacyUtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) {\n\tif path[0] != '/' {\n\t\tdirPath, err := ZosFdToPath(dirfd)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpath = dirPath + \"/\" + path\n\t}\n\tif flags == AT_SYMLINK_NOFOLLOW {\n\t\tif len(ts) != 2 {\n\t\t\treturn EINVAL\n\t\t}\n\n\t\tif ts[0].Nsec >= 5e8 {\n\t\t\tts[0].Sec++\n\t\t}\n\t\tts[0].Nsec = 0\n\t\tif ts[1].Nsec >= 5e8 {\n\t\t\tts[1].Sec++\n\t\t}\n\t\tts[1].Nsec = 0\n\n\t\t// Not as efficient as it could be because Timespec and\n\t\t// Timeval have different types in the different OSes\n\t\ttv := []Timeval{\n\t\t\tNsecToTimeval(TimespecToNsec(ts[0])),\n\t\t\tNsecToTimeval(TimespecToNsec(ts[1])),\n\t\t}\n\t\treturn Lutimes(path, tv)\n\t}\n\treturn UtimesNano(path, ts)\n}\n\n// End UtimesNanoAt\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\t// TODO(neeilan) : Remove this 0 ( added to get sys/unix compiling on z/OS )\n\treturn anyToSockaddr(0, &rsa)\n}\n\nconst (\n\t// identifier constants\n\tnwmHeaderIdentifier    = 0xd5e6d4c8\n\tnwmFilterIdentifier    = 0xd5e6d4c6\n\tnwmTCPConnIdentifier   = 0xd5e6d4c3\n\tnwmRecHeaderIdentifier = 0xd5e6d4d9\n\tnwmIPStatsIdentifier   = 0xd5e6d4c9d7e2e340\n\tnwmIPGStatsIdentifier  = 0xd5e6d4c9d7c7e2e3\n\tnwmTCPStatsIdentifier  = 0xd5e6d4e3c3d7e2e3\n\tnwmUDPStatsIdentifier  = 0xd5e6d4e4c4d7e2e3\n\tnwmICMPGStatsEntry     = 0xd5e6d4c9c3d4d7c7\n\tnwmICMPTStatsEntry     = 0xd5e6d4c9c3d4d7e3\n\n\t// nwmHeader constants\n\tnwmVersion1   = 1\n\tnwmVersion2   = 2\n\tnwmCurrentVer = 2\n\n\tnwmTCPConnType     = 1\n\tnwmGlobalStatsType = 14\n\n\t// nwmFilter constants\n\tnwmFilterLclAddrMask = 0x20000000 // Local address\n\tnwmFilterSrcAddrMask = 0x20000000 // Source address\n\tnwmFilterLclPortMask = 0x10000000 // Local port\n\tnwmFilterSrcPortMask = 0x10000000 // Source port\n\n\t// nwmConnEntry constants\n\tnwmTCPStateClosed   = 1\n\tnwmTCPStateListen   = 2\n\tnwmTCPStateSynSent  = 3\n\tnwmTCPStateSynRcvd  = 4\n\tnwmTCPStateEstab    = 5\n\tnwmTCPStateFinWait1 = 6\n\tnwmTCPStateFinWait2 = 7\n\tnwmTCPStateClosWait = 8\n\tnwmTCPStateLastAck  = 9\n\tnwmTCPStateClosing  = 10\n\tnwmTCPStateTimeWait = 11\n\tnwmTCPStateDeletTCB = 12\n\n\t// Existing constants on linux\n\tBPF_TCP_CLOSE        = 1\n\tBPF_TCP_LISTEN       = 2\n\tBPF_TCP_SYN_SENT     = 3\n\tBPF_TCP_SYN_RECV     = 4\n\tBPF_TCP_ESTABLISHED  = 5\n\tBPF_TCP_FIN_WAIT1    = 6\n\tBPF_TCP_FIN_WAIT2    = 7\n\tBPF_TCP_CLOSE_WAIT   = 8\n\tBPF_TCP_LAST_ACK     = 9\n\tBPF_TCP_CLOSING      = 10\n\tBPF_TCP_TIME_WAIT    = 11\n\tBPF_TCP_NEW_SYN_RECV = -1\n\tBPF_TCP_MAX_STATES   = -2\n)\n\ntype nwmTriplet struct {\n\toffset uint32\n\tlength uint32\n\tnumber uint32\n}\n\ntype nwmQuadruplet struct {\n\toffset uint32\n\tlength uint32\n\tnumber uint32\n\tmatch  uint32\n}\n\ntype nwmHeader struct {\n\tident       uint32\n\tlength      uint32\n\tversion     uint16\n\tnwmType     uint16\n\tbytesNeeded uint32\n\toptions     uint32\n\t_           [16]byte\n\tinputDesc   nwmTriplet\n\toutputDesc  nwmQuadruplet\n}\n\ntype nwmFilter struct {\n\tident         uint32\n\tflags         uint32\n\tresourceName  [8]byte\n\tresourceId    uint32\n\tlistenerId    uint32\n\tlocal         [28]byte // union of sockaddr4 and sockaddr6\n\tremote        [28]byte // union of sockaddr4 and sockaddr6\n\t_             uint16\n\t_             uint16\n\tasid          uint16\n\t_             [2]byte\n\ttnLuName      [8]byte\n\ttnMonGrp      uint32\n\ttnAppl        [8]byte\n\tapplData      [40]byte\n\tnInterface    [16]byte\n\tdVipa         [16]byte\n\tdVipaPfx      uint16\n\tdVipaPort     uint16\n\tdVipaFamily   byte\n\t_             [3]byte\n\tdestXCF       [16]byte\n\tdestXCFPfx    uint16\n\tdestXCFFamily byte\n\t_             [1]byte\n\ttargIP        [16]byte\n\ttargIPPfx     uint16\n\ttargIPFamily  byte\n\t_             [1]byte\n\t_             [20]byte\n}\n\ntype nwmRecHeader struct {\n\tident  uint32\n\tlength uint32\n\tnumber byte\n\t_      [3]byte\n}\n\ntype nwmTCPStatsEntry struct {\n\tident             uint64\n\tcurrEstab         uint32\n\tactiveOpened      uint32\n\tpassiveOpened     uint32\n\tconnClosed        uint32\n\testabResets       uint32\n\tattemptFails      uint32\n\tpassiveDrops      uint32\n\ttimeWaitReused    uint32\n\tinSegs            uint64\n\tpredictAck        uint32\n\tpredictData       uint32\n\tinDupAck          uint32\n\tinBadSum          uint32\n\tinBadLen          uint32\n\tinShort           uint32\n\tinDiscOldTime     uint32\n\tinAllBeforeWin    uint32\n\tinSomeBeforeWin   uint32\n\tinAllAfterWin     uint32\n\tinSomeAfterWin    uint32\n\tinOutOfOrder      uint32\n\tinAfterClose      uint32\n\tinWinProbes       uint32\n\tinWinUpdates      uint32\n\toutWinUpdates     uint32\n\toutSegs           uint64\n\toutDelayAcks      uint32\n\toutRsts           uint32\n\tretransSegs       uint32\n\tretransTimeouts   uint32\n\tretransDrops      uint32\n\tpmtuRetrans       uint32\n\tpmtuErrors        uint32\n\toutWinProbes      uint32\n\tprobeDrops        uint32\n\tkeepAliveProbes   uint32\n\tkeepAliveDrops    uint32\n\tfinwait2Drops     uint32\n\tacceptCount       uint64\n\tinBulkQSegs       uint64\n\tinDiscards        uint64\n\tconnFloods        uint32\n\tconnStalls        uint32\n\tcfgEphemDef       uint16\n\tephemInUse        uint16\n\tephemHiWater      uint16\n\tflags             byte\n\t_                 [1]byte\n\tephemExhaust      uint32\n\tsmcRCurrEstabLnks uint32\n\tsmcRLnkActTimeOut uint32\n\tsmcRActLnkOpened  uint32\n\tsmcRPasLnkOpened  uint32\n\tsmcRLnksClosed    uint32\n\tsmcRCurrEstab     uint32\n\tsmcRActiveOpened  uint32\n\tsmcRPassiveOpened uint32\n\tsmcRConnClosed    uint32\n\tsmcRInSegs        uint64\n\tsmcROutSegs       uint64\n\tsmcRInRsts        uint32\n\tsmcROutRsts       uint32\n\tsmcDCurrEstabLnks uint32\n\tsmcDActLnkOpened  uint32\n\tsmcDPasLnkOpened  uint32\n\tsmcDLnksClosed    uint32\n\tsmcDCurrEstab     uint32\n\tsmcDActiveOpened  uint32\n\tsmcDPassiveOpened uint32\n\tsmcDConnClosed    uint32\n\tsmcDInSegs        uint64\n\tsmcDOutSegs       uint64\n\tsmcDInRsts        uint32\n\tsmcDOutRsts       uint32\n}\n\ntype nwmConnEntry struct {\n\tident             uint32\n\tlocal             [28]byte // union of sockaddr4 and sockaddr6\n\tremote            [28]byte // union of sockaddr4 and sockaddr6\n\tstartTime         [8]byte  // uint64, changed to prevent padding from being inserted\n\tlastActivity      [8]byte  // uint64\n\tbytesIn           [8]byte  // uint64\n\tbytesOut          [8]byte  // uint64\n\tinSegs            [8]byte  // uint64\n\toutSegs           [8]byte  // uint64\n\tstate             uint16\n\tactiveOpen        byte\n\tflag01            byte\n\toutBuffered       uint32\n\tinBuffered        uint32\n\tmaxSndWnd         uint32\n\treXmtCount        uint32\n\tcongestionWnd     uint32\n\tssThresh          uint32\n\troundTripTime     uint32\n\troundTripVar      uint32\n\tsendMSS           uint32\n\tsndWnd            uint32\n\trcvBufSize        uint32\n\tsndBufSize        uint32\n\toutOfOrderCount   uint32\n\tlcl0WindowCount   uint32\n\trmt0WindowCount   uint32\n\tdupacks           uint32\n\tflag02            byte\n\tsockOpt6Cont      byte\n\tasid              uint16\n\tresourceName      [8]byte\n\tresourceId        uint32\n\tsubtask           uint32\n\tsockOpt           byte\n\tsockOpt6          byte\n\tclusterConnFlag   byte\n\tproto             byte\n\ttargetAppl        [8]byte\n\tluName            [8]byte\n\tclientUserId      [8]byte\n\tlogMode           [8]byte\n\ttimeStamp         uint32\n\ttimeStampAge      uint32\n\tserverResourceId  uint32\n\tintfName          [16]byte\n\tttlsStatPol       byte\n\tttlsStatConn      byte\n\tttlsSSLProt       uint16\n\tttlsNegCiph       [2]byte\n\tttlsSecType       byte\n\tttlsFIPS140Mode   byte\n\tttlsUserID        [8]byte\n\tapplData          [40]byte\n\tinOldestTime      [8]byte // uint64\n\toutOldestTime     [8]byte // uint64\n\ttcpTrustedPartner byte\n\t_                 [3]byte\n\tbulkDataIntfName  [16]byte\n\tttlsNegCiph4      [4]byte\n\tsmcReason         uint32\n\tlclSMCLinkId      uint32\n\trmtSMCLinkId      uint32\n\tsmcStatus         byte\n\tsmcFlags          byte\n\t_                 [2]byte\n\trcvWnd            uint32\n\tlclSMCBufSz       uint32\n\trmtSMCBufSz       uint32\n\tttlsSessID        [32]byte\n\tttlsSessIDLen     int16\n\t_                 [1]byte\n\tsmcDStatus        byte\n\tsmcDReason        uint32\n}\n\nvar svcNameTable [][]byte = [][]byte{\n\t[]byte(\"\\xc5\\xe9\\xc2\\xd5\\xd4\\xc9\\xc6\\xf4\"), // svc_EZBNMIF4\n}\n\nconst (\n\tsvc_EZBNMIF4 = 0\n)\n\nfunc GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) {\n\tjobname := []byte(\"\\x5c\\x40\\x40\\x40\\x40\\x40\\x40\\x40\") // \"*\"\n\tresponseBuffer := [4096]byte{0}\n\tvar bufferAlet, reasonCode uint32 = 0, 0\n\tvar bufferLen, returnValue, returnCode int32 = 4096, 0, 0\n\n\tdsa := [18]uint64{0}\n\tvar argv [7]unsafe.Pointer\n\targv[0] = unsafe.Pointer(&jobname[0])\n\targv[1] = unsafe.Pointer(&responseBuffer[0])\n\targv[2] = unsafe.Pointer(&bufferAlet)\n\targv[3] = unsafe.Pointer(&bufferLen)\n\targv[4] = unsafe.Pointer(&returnValue)\n\targv[5] = unsafe.Pointer(&returnCode)\n\targv[6] = unsafe.Pointer(&reasonCode)\n\n\trequest := (*struct {\n\t\theader nwmHeader\n\t\tfilter nwmFilter\n\t})(unsafe.Pointer(&responseBuffer[0]))\n\n\tEZBNMIF4 := svcLoad(&svcNameTable[svc_EZBNMIF4][0])\n\tif EZBNMIF4 == nil {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// GetGlobalStats EZBNMIF4 call\n\trequest.header.ident = nwmHeaderIdentifier\n\trequest.header.length = uint32(unsafe.Sizeof(request.header))\n\trequest.header.version = nwmCurrentVer\n\trequest.header.nwmType = nwmGlobalStatsType\n\trequest.header.options = 0x80000000\n\n\tsvcCall(EZBNMIF4, &argv[0], &dsa[0])\n\n\t// outputDesc field is filled by EZBNMIF4 on success\n\tif returnCode != 0 || request.header.outputDesc.offset == 0 {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Check that EZBNMIF4 returned a nwmRecHeader\n\trecHeader := (*nwmRecHeader)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset]))\n\tif recHeader.ident != nwmRecHeaderIdentifier {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Parse nwmTriplets to get offsets of returned entries\n\tvar sections []*uint64\n\tvar sectionDesc *nwmTriplet = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[0]))\n\tfor i := uint32(0); i < uint32(recHeader.number); i++ {\n\t\toffset := request.header.outputDesc.offset + uint32(unsafe.Sizeof(*recHeader)) + i*uint32(unsafe.Sizeof(*sectionDesc))\n\t\tsectionDesc = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[offset]))\n\t\tfor j := uint32(0); j < sectionDesc.number; j++ {\n\t\t\toffset = request.header.outputDesc.offset + sectionDesc.offset + j*sectionDesc.length\n\t\t\tsections = append(sections, (*uint64)(unsafe.Pointer(&responseBuffer[offset])))\n\t\t}\n\t}\n\n\t// Find nwmTCPStatsEntry in returned entries\n\tvar tcpStats *nwmTCPStatsEntry = nil\n\tfor _, ptr := range sections {\n\t\tswitch *ptr {\n\t\tcase nwmTCPStatsIdentifier:\n\t\t\tif tcpStats != nil {\n\t\t\t\treturn nil, errnoErr(EINVAL)\n\t\t\t}\n\t\t\ttcpStats = (*nwmTCPStatsEntry)(unsafe.Pointer(ptr))\n\t\tcase nwmIPStatsIdentifier:\n\t\tcase nwmIPGStatsIdentifier:\n\t\tcase nwmUDPStatsIdentifier:\n\t\tcase nwmICMPGStatsEntry:\n\t\tcase nwmICMPTStatsEntry:\n\t\tdefault:\n\t\t\treturn nil, errnoErr(EINVAL)\n\t\t}\n\t}\n\tif tcpStats == nil {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// GetConnectionDetail EZBNMIF4 call\n\tresponseBuffer = [4096]byte{0}\n\tdsa = [18]uint64{0}\n\tbufferAlet, reasonCode = 0, 0\n\tbufferLen, returnValue, returnCode = 4096, 0, 0\n\tnameptr := (*uint32)(unsafe.Pointer(uintptr(0x21c))) // Get jobname of current process\n\tnameptr = (*uint32)(unsafe.Pointer(uintptr(*nameptr + 12)))\n\targv[0] = unsafe.Pointer(uintptr(*nameptr))\n\n\trequest.header.ident = nwmHeaderIdentifier\n\trequest.header.length = uint32(unsafe.Sizeof(request.header))\n\trequest.header.version = nwmCurrentVer\n\trequest.header.nwmType = nwmTCPConnType\n\trequest.header.options = 0x80000000\n\n\trequest.filter.ident = nwmFilterIdentifier\n\n\tvar localSockaddr RawSockaddrAny\n\tsocklen := _Socklen(SizeofSockaddrAny)\n\terr := getsockname(fd, &localSockaddr, &socklen)\n\tif err != nil {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\tif localSockaddr.Addr.Family == AF_INET {\n\t\tlocalSockaddr := (*RawSockaddrInet4)(unsafe.Pointer(&localSockaddr.Addr))\n\t\tlocalSockFilter := (*RawSockaddrInet4)(unsafe.Pointer(&request.filter.local[0]))\n\t\tlocalSockFilter.Family = AF_INET\n\t\tvar i int\n\t\tfor i = 0; i < 4; i++ {\n\t\t\tif localSockaddr.Addr[i] != 0 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif i != 4 {\n\t\t\trequest.filter.flags |= nwmFilterLclAddrMask\n\t\t\tfor i = 0; i < 4; i++ {\n\t\t\t\tlocalSockFilter.Addr[i] = localSockaddr.Addr[i]\n\t\t\t}\n\t\t}\n\t\tif localSockaddr.Port != 0 {\n\t\t\trequest.filter.flags |= nwmFilterLclPortMask\n\t\t\tlocalSockFilter.Port = localSockaddr.Port\n\t\t}\n\t} else if localSockaddr.Addr.Family == AF_INET6 {\n\t\tlocalSockaddr := (*RawSockaddrInet6)(unsafe.Pointer(&localSockaddr.Addr))\n\t\tlocalSockFilter := (*RawSockaddrInet6)(unsafe.Pointer(&request.filter.local[0]))\n\t\tlocalSockFilter.Family = AF_INET6\n\t\tvar i int\n\t\tfor i = 0; i < 16; i++ {\n\t\t\tif localSockaddr.Addr[i] != 0 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif i != 16 {\n\t\t\trequest.filter.flags |= nwmFilterLclAddrMask\n\t\t\tfor i = 0; i < 16; i++ {\n\t\t\t\tlocalSockFilter.Addr[i] = localSockaddr.Addr[i]\n\t\t\t}\n\t\t}\n\t\tif localSockaddr.Port != 0 {\n\t\t\trequest.filter.flags |= nwmFilterLclPortMask\n\t\t\tlocalSockFilter.Port = localSockaddr.Port\n\t\t}\n\t}\n\n\tsvcCall(EZBNMIF4, &argv[0], &dsa[0])\n\n\t// outputDesc field is filled by EZBNMIF4 on success\n\tif returnCode != 0 || request.header.outputDesc.offset == 0 {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Check that EZBNMIF4 returned a nwmConnEntry\n\tconn := (*nwmConnEntry)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset]))\n\tif conn.ident != nwmTCPConnIdentifier {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Copy data from the returned data structures into tcpInfo\n\t// Stats from nwmConnEntry are specific to that connection.\n\t// Stats from nwmTCPStatsEntry are global (to the interface?)\n\t// Fields may not be an exact match. Some fields have no equivalent.\n\tvar tcpinfo TCPInfo\n\ttcpinfo.State = uint8(conn.state)\n\ttcpinfo.Ca_state = 0 // dummy\n\ttcpinfo.Retransmits = uint8(tcpStats.retransSegs)\n\ttcpinfo.Probes = uint8(tcpStats.outWinProbes)\n\ttcpinfo.Backoff = 0 // dummy\n\ttcpinfo.Options = 0 // dummy\n\ttcpinfo.Rto = tcpStats.retransTimeouts\n\ttcpinfo.Ato = tcpStats.outDelayAcks\n\ttcpinfo.Snd_mss = conn.sendMSS\n\ttcpinfo.Rcv_mss = conn.sendMSS // dummy\n\ttcpinfo.Unacked = 0            // dummy\n\ttcpinfo.Sacked = 0             // dummy\n\ttcpinfo.Lost = 0               // dummy\n\ttcpinfo.Retrans = conn.reXmtCount\n\ttcpinfo.Fackets = 0 // dummy\n\ttcpinfo.Last_data_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.lastActivity[0])))\n\ttcpinfo.Last_ack_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.outOldestTime[0])))\n\ttcpinfo.Last_data_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0])))\n\ttcpinfo.Last_ack_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0])))\n\ttcpinfo.Pmtu = conn.sendMSS // dummy, NWMIfRouteMtu is a candidate\n\ttcpinfo.Rcv_ssthresh = conn.ssThresh\n\ttcpinfo.Rtt = conn.roundTripTime\n\ttcpinfo.Rttvar = conn.roundTripVar\n\ttcpinfo.Snd_ssthresh = conn.ssThresh // dummy\n\ttcpinfo.Snd_cwnd = conn.congestionWnd\n\ttcpinfo.Advmss = conn.sendMSS        // dummy\n\ttcpinfo.Reordering = 0               // dummy\n\ttcpinfo.Rcv_rtt = conn.roundTripTime // dummy\n\ttcpinfo.Rcv_space = conn.sendMSS     // dummy\n\ttcpinfo.Total_retrans = conn.reXmtCount\n\n\tsvcUnload(&svcNameTable[svc_EZBNMIF4][0], EZBNMIF4)\n\n\treturn &tcpinfo, nil\n}\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\nfunc Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tvar msg Msghdr\n\tvar rsa RawSockaddrAny\n\tmsg.Name = (*byte)(unsafe.Pointer(&rsa))\n\tmsg.Namelen = SizeofSockaddrAny\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = (*byte)(unsafe.Pointer(&p[0]))\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif len(p) == 0 {\n\t\t\tiov.Base = &dummy\n\t\t\tiov.SetLen(1)\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = recvmsg(fd, &msg, flags); err != nil {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\t// source address is only specified if the socket is unconnected\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\t// TODO(neeilan): Remove 0 arg added to get this compiling on z/OS\n\t\tfrom, err = anyToSockaddr(0, &rsa)\n\t}\n\treturn\n}\n\nfunc Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {\n\t_, err = SendmsgN(fd, p, oob, to, flags)\n\treturn\n}\n\nfunc SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tvar err error\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = int32(salen)\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = (*byte)(unsafe.Pointer(&p[0]))\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tif len(p) == 0 {\n\t\t\tiov.Base = &dummy\n\t\t\tiov.SetLen(1)\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && len(p) == 0 {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\nfunc Opendir(name string) (uintptr, error) {\n\tp, err := BytePtrFromString(name)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\terr = nil\n\truntime.EnterSyscall()\n\tdir, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___OPENDIR_A<<4, uintptr(unsafe.Pointer(p)))\n\truntime.ExitSyscall()\n\truntime.KeepAlive(unsafe.Pointer(p))\n\tif dir == 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn dir, err\n}\n\n// clearsyscall.Errno resets the errno value to 0.\nfunc clearErrno()\n\nfunc Closedir(dir uintptr) error {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSEDIR<<4, dir)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\treturn errnoErr2(e1, e2)\n\t}\n\treturn nil\n}\n\nfunc Seekdir(dir uintptr, pos int) {\n\truntime.EnterSyscall()\n\tCallLeFuncWithErr(GetZosLibVec()+SYS_SEEKDIR<<4, dir, uintptr(pos))\n\truntime.ExitSyscall()\n}\n\nfunc Telldir(dir uintptr) (int, error) {\n\tp, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TELLDIR<<4, dir)\n\tpos := int(p)\n\tif int64(p) == -1 {\n\t\treturn pos, errnoErr2(e1, e2)\n\t}\n\treturn pos, nil\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t// struct flock is packed on z/OS. We can't emulate that in Go so\n\t// instead we pack it here.\n\tvar flock [24]byte\n\t*(*int16)(unsafe.Pointer(&flock[0])) = lk.Type\n\t*(*int16)(unsafe.Pointer(&flock[2])) = lk.Whence\n\t*(*int64)(unsafe.Pointer(&flock[4])) = lk.Start\n\t*(*int64)(unsafe.Pointer(&flock[12])) = lk.Len\n\t*(*int32)(unsafe.Pointer(&flock[20])) = lk.Pid\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock)))\n\truntime.ExitSyscall()\n\tlk.Type = *(*int16)(unsafe.Pointer(&flock[0]))\n\tlk.Whence = *(*int16)(unsafe.Pointer(&flock[2]))\n\tlk.Start = *(*int64)(unsafe.Pointer(&flock[4]))\n\tlk.Len = *(*int64)(unsafe.Pointer(&flock[12]))\n\tlk.Pid = *(*int32)(unsafe.Pointer(&flock[20]))\n\tif r0 == 0 {\n\t\treturn nil\n\t}\n\treturn errnoErr2(e1, e2)\n}\n\nfunc impl_Flock(fd int, how int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FLOCK<<4, uintptr(fd), uintptr(how))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FlockAddr() *(func(fd int, how int) (err error))\n\nvar Flock = enter_Flock\n\nfunc validFlock(fp uintptr) bool {\n\tif funcptrtest(GetZosLibVec()+SYS_FLOCK<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS_FLOCK<<4); err == nil {\n\t\t\treturn name == \"flock\"\n\t\t}\n\t}\n\treturn false\n}\n\nfunc enter_Flock(fd int, how int) (err error) {\n\tfuncref := get_FlockAddr()\n\tif validFlock(GetZosLibVec() + SYS_FLOCK<<4) {\n\t\t*funcref = impl_Flock\n\t} else {\n\t\t*funcref = legacyFlock\n\t}\n\treturn (*funcref)(fd, how)\n}\n\nfunc legacyFlock(fd int, how int) error {\n\n\tvar flock_type int16\n\tvar fcntl_cmd int\n\n\tswitch how {\n\tcase LOCK_SH | LOCK_NB:\n\t\tflock_type = F_RDLCK\n\t\tfcntl_cmd = F_SETLK\n\tcase LOCK_EX | LOCK_NB:\n\t\tflock_type = F_WRLCK\n\t\tfcntl_cmd = F_SETLK\n\tcase LOCK_EX:\n\t\tflock_type = F_WRLCK\n\t\tfcntl_cmd = F_SETLKW\n\tcase LOCK_UN:\n\t\tflock_type = F_UNLCK\n\t\tfcntl_cmd = F_SETLKW\n\tdefault:\n\t}\n\n\tflock := Flock_t{\n\t\tType:   int16(flock_type),\n\t\tWhence: int16(0),\n\t\tStart:  int64(0),\n\t\tLen:    int64(0),\n\t\tPid:    int32(Getppid()),\n\t}\n\n\terr := FcntlFlock(uintptr(fd), fcntl_cmd, &flock)\n\treturn err\n}\n\nfunc Mlock(b []byte) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Mlock2(b []byte, flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Mlockall(flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Munlock(b []byte) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Munlockall() (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc ClockGettime(clockid int32, ts *Timespec) error {\n\n\tvar ticks_per_sec uint32 = 100 //TODO(kenan): value is currently hardcoded; need sysconf() call otherwise\n\tvar nsec_per_sec int64 = 1000000000\n\n\tif ts == nil {\n\t\treturn EFAULT\n\t}\n\tif clockid == CLOCK_REALTIME || clockid == CLOCK_MONOTONIC {\n\t\tvar nanotime int64 = runtime.Nanotime1()\n\t\tts.Sec = nanotime / nsec_per_sec\n\t\tts.Nsec = nanotime % nsec_per_sec\n\t} else if clockid == CLOCK_PROCESS_CPUTIME_ID || clockid == CLOCK_THREAD_CPUTIME_ID {\n\t\tvar tm Tms\n\t\t_, err := Times(&tm)\n\t\tif err != nil {\n\t\t\treturn EFAULT\n\t\t}\n\t\tts.Sec = int64(tm.Utime / ticks_per_sec)\n\t\tts.Nsec = int64(tm.Utime) * nsec_per_sec / int64(ticks_per_sec)\n\t} else {\n\t\treturn EINVAL\n\t}\n\treturn nil\n}\n\n// Chtag\n\n//go:nosplit\nfunc get_ChtagAddr() *(func(path string, ccsid uint64, textbit uint64) error)\n\nvar Chtag = enter_Chtag\n\nfunc enter_Chtag(path string, ccsid uint64, textbit uint64) error {\n\tfuncref := get_ChtagAddr()\n\tif validSetxattr() {\n\t\t*funcref = impl_Chtag\n\t} else {\n\t\t*funcref = legacy_Chtag\n\t}\n\treturn (*funcref)(path, ccsid, textbit)\n}\n\nfunc legacy_Chtag(path string, ccsid uint64, textbit uint64) error {\n\ttag := ccsid<<16 | textbit<<15\n\tvar tag_buff [8]byte\n\tDecodeData(tag_buff[:], 8, tag)\n\treturn Setxattr(path, \"filetag\", tag_buff[:], XATTR_REPLACE)\n}\n\nfunc impl_Chtag(path string, ccsid uint64, textbit uint64) error {\n\ttag := ccsid<<16 | textbit<<15\n\tvar tag_buff [4]byte\n\tDecodeData(tag_buff[:], 4, tag)\n\treturn Setxattr(path, \"system.filetag\", tag_buff[:], XATTR_REPLACE)\n}\n\n// End of Chtag\n\n// Nanosleep\n\n//go:nosplit\nfunc get_NanosleepAddr() *(func(time *Timespec, leftover *Timespec) error)\n\nvar Nanosleep = enter_Nanosleep\n\nfunc enter_Nanosleep(time *Timespec, leftover *Timespec) error {\n\tfuncref := get_NanosleepAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_NANOSLEEP<<4, \"\") == 0 {\n\t\t*funcref = impl_Nanosleep\n\t} else {\n\t\t*funcref = legacyNanosleep\n\t}\n\treturn (*funcref)(time, leftover)\n}\n\nfunc impl_Nanosleep(time *Timespec, leftover *Timespec) error {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_NANOSLEEP<<4, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\treturn errnoErr2(e1, e2)\n\t}\n\treturn nil\n}\n\nfunc legacyNanosleep(time *Timespec, leftover *Timespec) error {\n\tt0 := runtime.Nanotime1()\n\tvar secrem uint32\n\tvar nsecrem uint32\n\ttotal := time.Sec*1000000000 + time.Nsec\n\telapsed := runtime.Nanotime1() - t0\n\tvar rv int32\n\tvar rc int32\n\tvar err error\n\t// repeatedly sleep for 1 second until less than 1 second left\n\tfor total-elapsed > 1000000000 {\n\t\trv, rc, _ = BpxCondTimedWait(uint32(1), uint32(0), uint32(CW_CONDVAR), &secrem, &nsecrem)\n\t\tif rv != 0 && rc != 112 { // 112 is EAGAIN\n\t\t\tif leftover != nil && rc == 120 { // 120 is EINTR\n\t\t\t\tleftover.Sec = int64(secrem)\n\t\t\t\tleftover.Nsec = int64(nsecrem)\n\t\t\t}\n\t\t\terr = Errno(rc)\n\t\t\treturn err\n\t\t}\n\t\telapsed = runtime.Nanotime1() - t0\n\t}\n\t// sleep the remainder\n\tif total > elapsed {\n\t\trv, rc, _ = BpxCondTimedWait(uint32(0), uint32(total-elapsed), uint32(CW_CONDVAR), &secrem, &nsecrem)\n\t}\n\tif leftover != nil && rc == 120 {\n\t\tleftover.Sec = int64(secrem)\n\t\tleftover.Nsec = int64(nsecrem)\n\t}\n\tif rv != 0 && rc != 112 {\n\t\terr = Errno(rc)\n\t}\n\treturn err\n}\n\n// End of Nanosleep\n\nvar (\n\tStdin  = 0\n\tStdout = 1\n\tStderr = 2\n)\n\n// Do the interface allocations only once for common\n// Errno values.\nvar (\n\terrEAGAIN error = syscall.EAGAIN\n\terrEINVAL error = syscall.EINVAL\n\terrENOENT error = syscall.ENOENT\n)\n\nvar ZosTraceLevel int\nvar ZosTracefile *os.File\n\nvar (\n\tsignalNameMapOnce sync.Once\n\tsignalNameMap     map[string]syscall.Signal\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn nil\n\tcase EAGAIN:\n\t\treturn errEAGAIN\n\tcase EINVAL:\n\t\treturn errEINVAL\n\tcase ENOENT:\n\t\treturn errENOENT\n\t}\n\treturn e\n}\n\nvar reg *regexp.Regexp\n\n// enhanced with zos specific errno2\nfunc errnoErr2(e Errno, e2 uintptr) error {\n\tswitch e {\n\tcase 0:\n\t\treturn nil\n\tcase EAGAIN:\n\t\treturn errEAGAIN\n\t\t/*\n\t\t\tAllow the retrieval of errno2 for EINVAL and ENOENT on zos\n\t\t\t\tcase EINVAL:\n\t\t\t\t\treturn errEINVAL\n\t\t\t\tcase ENOENT:\n\t\t\t\t\treturn errENOENT\n\t\t*/\n\t}\n\tif ZosTraceLevel > 0 {\n\t\tvar name string\n\t\tif reg == nil {\n\t\t\treg = regexp.MustCompile(\"(^unix\\\\.[^/]+$|.*\\\\/unix\\\\.[^/]+$)\")\n\t\t}\n\t\ti := 1\n\t\tpc, file, line, ok := runtime.Caller(i)\n\t\tif ok {\n\t\t\tname = runtime.FuncForPC(pc).Name()\n\t\t}\n\t\tfor ok && reg.MatchString(runtime.FuncForPC(pc).Name()) {\n\t\t\ti += 1\n\t\t\tpc, file, line, ok = runtime.Caller(i)\n\t\t}\n\t\tif ok {\n\t\t\tif ZosTracefile == nil {\n\t\t\t\tZosConsolePrintf(\"From %s:%d\\n\", file, line)\n\t\t\t\tZosConsolePrintf(\"%s: %s (errno2=0x%x)\\n\", name, e.Error(), e2)\n\t\t\t} else {\n\t\t\t\tfmt.Fprintf(ZosTracefile, \"From %s:%d\\n\", file, line)\n\t\t\t\tfmt.Fprintf(ZosTracefile, \"%s: %s (errno2=0x%x)\\n\", name, e.Error(), e2)\n\t\t\t}\n\t\t} else {\n\t\t\tif ZosTracefile == nil {\n\t\t\t\tZosConsolePrintf(\"%s (errno2=0x%x)\\n\", e.Error(), e2)\n\t\t\t} else {\n\t\t\t\tfmt.Fprintf(ZosTracefile, \"%s (errno2=0x%x)\\n\", e.Error(), e2)\n\t\t\t}\n\t\t}\n\t}\n\treturn e\n}\n\n// ErrnoName returns the error name for error number e.\nfunc ErrnoName(e Errno) string {\n\ti := sort.Search(len(errorList), func(i int) bool {\n\t\treturn errorList[i].num >= e\n\t})\n\tif i < len(errorList) && errorList[i].num == e {\n\t\treturn errorList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalName returns the signal name for signal number s.\nfunc SignalName(s syscall.Signal) string {\n\ti := sort.Search(len(signalList), func(i int) bool {\n\t\treturn signalList[i].num >= s\n\t})\n\tif i < len(signalList) && signalList[i].num == s {\n\t\treturn signalList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalNum returns the syscall.Signal for signal named s,\n// or 0 if a signal with such name is not found.\n// The signal name should start with \"SIG\".\nfunc SignalNum(s string) syscall.Signal {\n\tsignalNameMapOnce.Do(func() {\n\t\tsignalNameMap = make(map[string]syscall.Signal, len(signalList))\n\t\tfor _, signal := range signalList {\n\t\t\tsignalNameMap[signal.name] = signal.num\n\t\t}\n\t})\n\treturn signalNameMap[s]\n}\n\n// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.\nfunc clen(n []byte) int {\n\ti := bytes.IndexByte(n, 0)\n\tif i == -1 {\n\t\ti = len(n)\n\t}\n\treturn i\n}\n\n// Mmap manager, for use by operating system-specific implementations.\n\ntype mmapper struct {\n\tsync.Mutex\n\tactive map[*byte][]byte // active mappings; key is last byte in mapping\n\tmmap   func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error)\n\tmunmap func(addr uintptr, length uintptr) error\n}\n\nfunc (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\tif length <= 0 {\n\t\treturn nil, EINVAL\n\t}\n\n\t// Set __MAP_64 by default\n\tflags |= __MAP_64\n\n\t// Map the requested memory.\n\taddr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\n\t// Slice memory layout\n\tvar sl = struct {\n\t\taddr uintptr\n\t\tlen  int\n\t\tcap  int\n\t}{addr, length, length}\n\n\t// Use unsafe to turn sl into a []byte.\n\tb := *(*[]byte)(unsafe.Pointer(&sl))\n\n\t// Register mapping in m and return it.\n\tp := &b[cap(b)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tm.active[p] = b\n\treturn b, nil\n}\n\nfunc (m *mmapper) Munmap(data []byte) (err error) {\n\tif len(data) == 0 || len(data) != cap(data) {\n\t\treturn EINVAL\n\t}\n\n\t// Find the base of the mapping.\n\tp := &data[cap(data)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tb := m.active[p]\n\tif b == nil || &b[0] != &data[0] {\n\t\treturn EINVAL\n\t}\n\n\t// Unmap the memory and update m.\n\tif errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil {\n\t\treturn errno\n\t}\n\tdelete(m.active, p)\n\treturn nil\n}\n\nfunc Read(fd int, p []byte) (n int, err error) {\n\tn, err = read(fd, p)\n\tif raceenabled {\n\t\tif n > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), n)\n\t\t}\n\t\tif err == nil {\n\t\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t\t}\n\t}\n\treturn\n}\n\nfunc Write(fd int, p []byte) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = write(fd, p)\n\tif raceenabled && n > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), n)\n\t}\n\treturn\n}\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\n// Sockaddr represents a socket address.\ntype Sockaddr interface {\n\tsockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs\n}\n\n// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets.\ntype SockaddrInet4 struct {\n\tPort int\n\tAddr [4]byte\n\traw  RawSockaddrInet4\n}\n\n// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets.\ntype SockaddrInet6 struct {\n\tPort   int\n\tZoneId uint32\n\tAddr   [16]byte\n\traw    RawSockaddrInet6\n}\n\n// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets.\ntype SockaddrUnix struct {\n\tName string\n\traw  RawSockaddrUnix\n}\n\nfunc Bind(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn bind(fd, ptr, n)\n}\n\nfunc Connect(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connect(fd, ptr, n)\n}\n\nfunc Getpeername(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getpeername(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\nfunc GetsockoptByte(fd, level, opt int) (value byte, err error) {\n\tvar n byte\n\tvallen := _Socklen(1)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc GetsockoptInt(fd, level, opt int) (value int, err error) {\n\tvar n int32\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn int(n), err\n}\n\nfunc GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\treturn value, err\n}\n\nfunc GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {\n\tvar value IPMreq\n\tvallen := _Socklen(SizeofIPMreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {\n\tvar value IPv6Mreq\n\tvallen := _Socklen(SizeofIPv6Mreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {\n\tvar value IPv6MTUInfo\n\tvallen := _Socklen(SizeofIPv6MTUInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {\n\tvar value ICMPv6Filter\n\tvallen := _Socklen(SizeofICMPv6Filter)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptLinger(fd, level, opt int) (*Linger, error) {\n\tvar linger Linger\n\tvallen := _Socklen(SizeofLinger)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen)\n\treturn &linger, err\n}\n\nfunc GetsockoptTimeval(fd, level, opt int) (*Timeval, error) {\n\tvar tv Timeval\n\tvallen := _Socklen(unsafe.Sizeof(tv))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen)\n\treturn &tv, err\n}\n\nfunc GetsockoptUint64(fd, level, opt int) (value uint64, err error) {\n\tvar n uint64\n\tvallen := _Socklen(8)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\nfunc Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) {\n\tptr, n, err := to.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn sendto(fd, p, flags, ptr, n)\n}\n\nfunc SetsockoptByte(fd, level, opt int, value byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 1)\n}\n\nfunc SetsockoptInt(fd, level, opt int, value int) (err error) {\n\tvar n = int32(value)\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&n), 4)\n}\n\nfunc SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4)\n}\n\nfunc SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq)\n}\n\nfunc SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq)\n}\n\nfunc SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter)\n}\n\nfunc SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger)\n}\n\nfunc SetsockoptString(fd, level, opt int, s string) (err error) {\n\tvar p unsafe.Pointer\n\tif len(s) > 0 {\n\t\tp = unsafe.Pointer(&[]byte(s)[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(s)))\n}\n\nfunc SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))\n}\n\nfunc SetsockoptUint64(fd, level, opt int, value uint64) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)\n}\n\nfunc Socket(domain, typ, proto int) (fd int, err error) {\n\tif domain == AF_INET6 && SocketDisableIPv6 {\n\t\treturn -1, EAFNOSUPPORT\n\t}\n\tfd, err = socket(domain, typ, proto)\n\treturn\n}\n\nfunc Socketpair(domain, typ, proto int) (fd [2]int, err error) {\n\tvar fdx [2]int32\n\terr = socketpair(domain, typ, proto, &fdx)\n\tif err == nil {\n\t\tfd[0] = int(fdx[0])\n\t\tfd[1] = int(fdx[1])\n\t}\n\treturn\n}\n\nvar ioSync int64\n\nfunc CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) }\n\nfunc SetNonblock(fd int, nonblocking bool) (err error) {\n\tflag, err := fcntl(fd, F_GETFL, 0)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif nonblocking {\n\t\tflag |= O_NONBLOCK\n\t} else {\n\t\tflag &= ^O_NONBLOCK\n\t}\n\t_, err = fcntl(fd, F_SETFL, flag)\n\treturn err\n}\n\n// Exec calls execve(2), which replaces the calling executable in the process\n// tree. argv0 should be the full path to an executable (\"/bin/ls\") and the\n// executable name should also be the first argument in argv ([\"ls\", \"-l\"]).\n// envv are the environment variables that should be passed to the new\n// process ([\"USER=go\", \"PWD=/tmp\"]).\nfunc Exec(argv0 string, argv []string, envv []string) error {\n\treturn syscall.Exec(argv0, argv, envv)\n}\n\nfunc Getag(path string) (ccsid uint16, flag uint16, err error) {\n\tvar val [8]byte\n\tsz, err := Getxattr(path, \"ccsid\", val[:])\n\tif err != nil {\n\t\treturn\n\t}\n\tccsid = uint16(EncodeData(val[0:sz]))\n\tsz, err = Getxattr(path, \"flags\", val[:])\n\tif err != nil {\n\t\treturn\n\t}\n\tflag = uint16(EncodeData(val[0:sz]) >> 15)\n\treturn\n}\n\n// Mount begin\nfunc impl_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p3 *byte\n\t_p3, err = BytePtrFromString(data)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT1_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(_p3)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MountAddr() *(func(source string, target string, fstype string, flags uintptr, data string) (err error))\n\nvar Mount = enter_Mount\n\nfunc enter_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\tfuncref := get_MountAddr()\n\tif validMount() {\n\t\t*funcref = impl_Mount\n\t} else {\n\t\t*funcref = legacyMount\n\t}\n\treturn (*funcref)(source, target, fstype, flags, data)\n}\n\nfunc legacyMount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\tif needspace := 8 - len(fstype); needspace <= 0 {\n\t\tfstype = fstype[0:8]\n\t} else {\n\t\tfstype += \"        \"[0:needspace]\n\t}\n\treturn mount_LE(target, source, fstype, uint32(flags), int32(len(data)), data)\n}\n\nfunc validMount() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___MOUNT1_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___MOUNT1_A<<4); err == nil {\n\t\t\treturn name == \"__mount1_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n// Mount end\n\n// Unmount begin\nfunc impl_Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT2_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_UnmountAddr() *(func(target string, flags int) (err error))\n\nvar Unmount = enter_Unmount\n\nfunc enter_Unmount(target string, flags int) (err error) {\n\tfuncref := get_UnmountAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___UMOUNT2_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Unmount\n\t} else {\n\t\t*funcref = legacyUnmount\n\t}\n\treturn (*funcref)(target, flags)\n}\n\nfunc legacyUnmount(name string, mtm int) (err error) {\n\t// mountpoint is always a full path and starts with a '/'\n\t// check if input string is not a mountpoint but a filesystem name\n\tif name[0] != '/' {\n\t\treturn unmount_LE(name, mtm)\n\t}\n\t// treat name as mountpoint\n\tb2s := func(arr []byte) string {\n\t\tvar str string\n\t\tfor i := 0; i < len(arr); i++ {\n\t\t\tif arr[i] == 0 {\n\t\t\t\tstr = string(arr[:i])\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treturn str\n\t}\n\tvar buffer struct {\n\t\theader W_Mnth\n\t\tfsinfo [64]W_Mntent\n\t}\n\tfs_count, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer)))\n\tif err == nil {\n\t\terr = EINVAL\n\t\tfor i := 0; i < fs_count; i++ {\n\t\t\tif b2s(buffer.fsinfo[i].Mountpoint[:]) == name {\n\t\t\t\terr = unmount_LE(b2s(buffer.fsinfo[i].Fsname[:]), mtm)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t} else if fs_count == 0 {\n\t\terr = EINVAL\n\t}\n\treturn err\n}\n\n// Unmount end\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\nfunc direntLeToDirentUnix(dirent *direntLE, dir uintptr, path string) (Dirent, error) {\n\tvar d Dirent\n\n\td.Ino = uint64(dirent.Ino)\n\toffset, err := Telldir(dir)\n\tif err != nil {\n\t\treturn d, err\n\t}\n\n\td.Off = int64(offset)\n\ts := string(bytes.Split(dirent.Name[:], []byte{0})[0])\n\tcopy(d.Name[:], s)\n\n\td.Reclen = uint16(24 + len(d.NameString()))\n\tvar st Stat_t\n\tpath = path + \"/\" + s\n\terr = Lstat(path, &st)\n\tif err != nil {\n\t\treturn d, err\n\t}\n\n\td.Type = uint8(st.Mode >> 24)\n\treturn d, err\n}\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\t// Simulation of Getdirentries port from the Darwin implementation.\n\t// COMMENTS FROM DARWIN:\n\t// It's not the full required semantics, but should handle the case\n\t// of calling Getdirentries or ReadDirent repeatedly.\n\t// It won't handle assigning the results of lseek to *basep, or handle\n\t// the directory being edited underfoot.\n\n\tskip, err := Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\t// Get path from fd to avoid unavailable call (fdopendir)\n\tpath, err := ZosFdToPath(fd)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\td, err := Opendir(path)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tdefer Closedir(d)\n\n\tvar cnt int64\n\tfor {\n\t\tvar entryLE direntLE\n\t\tvar entrypLE *direntLE\n\t\te := Readdir_r(d, &entryLE, &entrypLE)\n\t\tif e != nil {\n\t\t\treturn n, e\n\t\t}\n\t\tif entrypLE == nil {\n\t\t\tbreak\n\t\t}\n\t\tif skip > 0 {\n\t\t\tskip--\n\t\t\tcnt++\n\t\t\tcontinue\n\t\t}\n\n\t\t// Dirent on zos has a different structure\n\t\tentry, e := direntLeToDirentUnix(&entryLE, d, path)\n\t\tif e != nil {\n\t\t\treturn n, e\n\t\t}\n\n\t\treclen := int(entry.Reclen)\n\t\tif reclen > len(buf) {\n\t\t\t// Not enough room. Return for now.\n\t\t\t// The counter will let us know where we should start up again.\n\t\t\t// Note: this strategy for suspending in the middle and\n\t\t\t// restarting is O(n^2) in the length of the directory. Oh well.\n\t\t\tbreak\n\t\t}\n\n\t\t// Copy entry into return buffer.\n\t\ts := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen)\n\t\tcopy(buf, s)\n\n\t\tbuf = buf[reclen:]\n\t\tn += reclen\n\t\tcnt++\n\t}\n\t// Set the seek offset of the input fd to record\n\t// how many files we've already returned.\n\t_, err = Seek(fd, cnt, 0 /* SEEK_SET */)\n\tif err != nil {\n\t\treturn n, err\n\t}\n\n\treturn n, nil\n}\n\nfunc Err2ad() (eadd *int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERR2AD<<4)\n\teadd = (*int)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc ZosConsolePrintf(format string, v ...interface{}) (int, error) {\n\ttype __cmsg struct {\n\t\t_            uint16\n\t\t_            [2]uint8\n\t\t__msg_length uint32\n\t\t__msg        uintptr\n\t\t_            [4]uint8\n\t}\n\tmsg := fmt.Sprintf(format, v...)\n\tstrptr := unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&msg)).Data)\n\tlen := (*reflect.StringHeader)(unsafe.Pointer(&msg)).Len\n\tcmsg := __cmsg{__msg_length: uint32(len), __msg: uintptr(strptr)}\n\tcmd := uint32(0)\n\truntime.EnterSyscall()\n\trc, err2, err1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____CONSOLE_A<<4, uintptr(unsafe.Pointer(&cmsg)), 0, uintptr(unsafe.Pointer(&cmd)))\n\truntime.ExitSyscall()\n\tif rc != 0 {\n\t\treturn 0, fmt.Errorf(\"%s (errno2=0x%x)\\n\", err1.Error(), err2)\n\t}\n\treturn 0, nil\n}\nfunc ZosStringToEbcdicBytes(str string, nullterm bool) (ebcdicBytes []byte) {\n\tif nullterm {\n\t\tebcdicBytes = []byte(str + \"\\x00\")\n\t} else {\n\t\tebcdicBytes = []byte(str)\n\t}\n\tA2e(ebcdicBytes)\n\treturn\n}\nfunc ZosEbcdicBytesToString(b []byte, trimRight bool) (str string) {\n\tres := make([]byte, len(b))\n\tcopy(res, b)\n\tE2a(res)\n\tif trimRight {\n\t\tstr = string(bytes.TrimRight(res, \" \\x00\"))\n\t} else {\n\t\tstr = string(res)\n\t}\n\treturn\n}\n\nfunc fdToPath(dirfd int) (path string, err error) {\n\tvar buffer [1024]byte\n\t// w_ctrl()\n\tret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4,\n\t\t[]uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))})\n\tif ret == 0 {\n\t\tzb := bytes.IndexByte(buffer[:], 0)\n\t\tif zb == -1 {\n\t\t\tzb = len(buffer)\n\t\t}\n\t\t// __e2a_l()\n\t\truntime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4,\n\t\t\t[]uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)})\n\t\treturn string(buffer[:zb]), nil\n\t}\n\t// __errno()\n\terrno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4,\n\t\t[]uintptr{}))))\n\t// __errno2()\n\terrno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4,\n\t\t[]uintptr{}))\n\t// strerror_r()\n\tret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4,\n\t\t[]uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024})\n\tif ret == 0 {\n\t\tzb := bytes.IndexByte(buffer[:], 0)\n\t\tif zb == -1 {\n\t\t\tzb = len(buffer)\n\t\t}\n\t\treturn \"\", fmt.Errorf(\"%s (errno2=0x%x)\", buffer[:zb], errno2)\n\t} else {\n\t\treturn \"\", fmt.Errorf(\"fdToPath errno %d (errno2=0x%x)\", errno, errno2)\n\t}\n}\n\nfunc impl_Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFOAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MkfifoatAddr() *(func(dirfd int, path string, mode uint32) (err error))\n\nvar Mkfifoat = enter_Mkfifoat\n\nfunc enter_Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tfuncref := get_MkfifoatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___MKFIFOAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Mkfifoat\n\t} else {\n\t\t*funcref = legacy_Mkfifoat\n\t}\n\treturn (*funcref)(dirfd, path, mode)\n}\n\nfunc legacy_Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tdirname, err := ZosFdToPath(dirfd)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn Mkfifo(dirname+\"/\"+path, mode)\n}\n\n//sys\tPosix_openpt(oflag int) (fd int, err error) = SYS_POSIX_OPENPT\n//sys\tGrantpt(fildes int) (rc int, err error) = SYS_GRANTPT\n//sys\tUnlockpt(fildes int) (rc int, err error) = SYS_UNLOCKPT\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sysvshm_linux.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux\n\npackage unix\n\nimport \"runtime\"\n\n// SysvShmCtl performs control operations on the shared memory segment\n// specified by id.\nfunc SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) {\n\tif runtime.GOARCH == \"arm\" ||\n\t\truntime.GOARCH == \"mips64\" || runtime.GOARCH == \"mips64le\" {\n\t\tcmd |= ipc_64\n\t}\n\n\treturn shmctl(id, cmd, desc)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sysvshm_unix.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin && !ios) || linux || zos\n\npackage unix\n\nimport \"unsafe\"\n\n// SysvShmAttach attaches the Sysv shared memory segment associated with the\n// shared memory identifier id.\nfunc SysvShmAttach(id int, addr uintptr, flag int) ([]byte, error) {\n\taddr, errno := shmat(id, addr, flag)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\n\t// Retrieve the size of the shared memory to enable slice creation\n\tvar info SysvShmDesc\n\n\t_, err := SysvShmCtl(id, IPC_STAT, &info)\n\tif err != nil {\n\t\t// release the shared memory if we can't find the size\n\n\t\t// ignoring error from shmdt as there's nothing sensible to return here\n\t\tshmdt(addr)\n\t\treturn nil, err\n\t}\n\n\t// Use unsafe to convert addr into a []byte.\n\tb := unsafe.Slice((*byte)(unsafe.Pointer(addr)), int(info.Segsz))\n\treturn b, nil\n}\n\n// SysvShmDetach unmaps the shared memory slice returned from SysvShmAttach.\n//\n// It is not safe to use the slice after calling this function.\nfunc SysvShmDetach(data []byte) error {\n\tif len(data) == 0 {\n\t\treturn EINVAL\n\t}\n\n\treturn shmdt(uintptr(unsafe.Pointer(&data[0])))\n}\n\n// SysvShmGet returns the Sysv shared memory identifier associated with key.\n// If the IPC_CREAT flag is specified a new segment is created.\nfunc SysvShmGet(key, size, flag int) (id int, err error) {\n\treturn shmget(key, size, flag)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sysvshm_unix_other.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin && !ios) || zos\n\npackage unix\n\n// SysvShmCtl performs control operations on the shared memory segment\n// specified by id.\nfunc SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) {\n\treturn shmctl(id, cmd, desc)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/timestruct.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport \"time\"\n\n// TimespecToNsec returns the time stored in ts as nanoseconds.\nfunc TimespecToNsec(ts Timespec) int64 { return ts.Nano() }\n\n// NsecToTimespec converts a number of nanoseconds into a Timespec.\nfunc NsecToTimespec(nsec int64) Timespec {\n\tsec := nsec / 1e9\n\tnsec = nsec % 1e9\n\tif nsec < 0 {\n\t\tnsec += 1e9\n\t\tsec--\n\t}\n\treturn setTimespec(sec, nsec)\n}\n\n// TimeToTimespec converts t into a Timespec.\n// On some 32-bit systems the range of valid Timespec values are smaller\n// than that of time.Time values.  So if t is out of the valid range of\n// Timespec, it returns a zero Timespec and ERANGE.\nfunc TimeToTimespec(t time.Time) (Timespec, error) {\n\tsec := t.Unix()\n\tnsec := int64(t.Nanosecond())\n\tts := setTimespec(sec, nsec)\n\n\t// Currently all targets have either int32 or int64 for Timespec.Sec.\n\t// If there were a new target with floating point type for it, we have\n\t// to consider the rounding error.\n\tif int64(ts.Sec) != sec {\n\t\treturn Timespec{}, ERANGE\n\t}\n\treturn ts, nil\n}\n\n// TimevalToNsec returns the time stored in tv as nanoseconds.\nfunc TimevalToNsec(tv Timeval) int64 { return tv.Nano() }\n\n// NsecToTimeval converts a number of nanoseconds into a Timeval.\nfunc NsecToTimeval(nsec int64) Timeval {\n\tnsec += 999 // round up to microsecond\n\tusec := nsec % 1e9 / 1e3\n\tsec := nsec / 1e9\n\tif usec < 0 {\n\t\tusec += 1e6\n\t\tsec--\n\t}\n\treturn setTimeval(sec, usec)\n}\n\n// Unix returns the time stored in ts as seconds plus nanoseconds.\nfunc (ts *Timespec) Unix() (sec int64, nsec int64) {\n\treturn int64(ts.Sec), int64(ts.Nsec)\n}\n\n// Unix returns the time stored in tv as seconds plus nanoseconds.\nfunc (tv *Timeval) Unix() (sec int64, nsec int64) {\n\treturn int64(tv.Sec), int64(tv.Usec) * 1000\n}\n\n// Nano returns the time stored in ts as nanoseconds.\nfunc (ts *Timespec) Nano() int64 {\n\treturn int64(ts.Sec)*1e9 + int64(ts.Nsec)\n}\n\n// Nano returns the time stored in tv as nanoseconds.\nfunc (tv *Timeval) Nano() int64 {\n\treturn int64(tv.Sec)*1e9 + int64(tv.Usec)*1000\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/unveil_openbsd.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport \"fmt\"\n\n// Unveil implements the unveil syscall.\n// For more information see unveil(2).\n// Note that the special case of blocking further\n// unveil calls is handled by UnveilBlock.\nfunc Unveil(path string, flags string) error {\n\tif err := supportsUnveil(); err != nil {\n\t\treturn err\n\t}\n\tpathPtr, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\tflagsPtr, err := BytePtrFromString(flags)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn unveil(pathPtr, flagsPtr)\n}\n\n// UnveilBlock blocks future unveil calls.\n// For more information see unveil(2).\nfunc UnveilBlock() error {\n\tif err := supportsUnveil(); err != nil {\n\t\treturn err\n\t}\n\treturn unveil(nil, nil)\n}\n\n// supportsUnveil checks for availability of the unveil(2) system call based\n// on the running OpenBSD version.\nfunc supportsUnveil() error {\n\tmaj, min, err := majmin()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// unveil is not available before 6.4\n\tif maj < 6 || (maj == 6 && min <= 3) {\n\t\treturn fmt.Errorf(\"cannot call Unveil on OpenBSD %d.%d\", maj, min)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/xattr_bsd.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build freebsd || netbsd\n\npackage unix\n\nimport (\n\t\"strings\"\n\t\"unsafe\"\n)\n\n// Derive extattr namespace and attribute name\n\nfunc xattrnamespace(fullattr string) (ns int, attr string, err error) {\n\ts := strings.IndexByte(fullattr, '.')\n\tif s == -1 {\n\t\treturn -1, \"\", ENOATTR\n\t}\n\n\tnamespace := fullattr[0:s]\n\tattr = fullattr[s+1:]\n\n\tswitch namespace {\n\tcase \"user\":\n\t\treturn EXTATTR_NAMESPACE_USER, attr, nil\n\tcase \"system\":\n\t\treturn EXTATTR_NAMESPACE_SYSTEM, attr, nil\n\tdefault:\n\t\treturn -1, \"\", ENOATTR\n\t}\n}\n\nfunc initxattrdest(dest []byte, idx int) (d unsafe.Pointer) {\n\tif len(dest) > idx {\n\t\treturn unsafe.Pointer(&dest[idx])\n\t}\n\tif dest != nil {\n\t\t// extattr_get_file and extattr_list_file treat NULL differently from\n\t\t// a non-NULL pointer of length zero. Preserve the property of nilness,\n\t\t// even if we can't use dest directly.\n\t\treturn unsafe.Pointer(&_zero)\n\t}\n\treturn nil\n}\n\n// FreeBSD and NetBSD implement their own syscalls to handle extended attributes\n\nfunc Getxattr(file string, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetFile(file, nsid, a, uintptr(d), destsize)\n}\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetFd(fd, nsid, a, uintptr(d), destsize)\n}\n\nfunc Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetLink(link, nsid, a, uintptr(d), destsize)\n}\n\n// flags are unused on FreeBSD\n\nfunc Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Setxattr(file string, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Lsetxattr(link string, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Removexattr(file string, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteFile(file, nsid, a)\n\treturn\n}\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteFd(fd, nsid, a)\n\treturn\n}\n\nfunc Lremovexattr(link string, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteLink(link, nsid, a)\n\treturn\n}\n\nfunc Listxattr(file string, dest []byte) (sz int, err error) {\n\tdestsiz := len(dest)\n\n\t// FreeBSD won't allow you to list xattrs from multiple namespaces\n\ts, pos := 0, 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := ListxattrNS(file, nsid, dest[pos:])\n\n\t\t/* Errors accessing system attrs are ignored so that\n\t\t * we can implement the Linux-like behavior of omitting errors that\n\t\t * we don't have read permissions on\n\t\t *\n\t\t * Linux will still error if we ask for user attributes on a file that\n\t\t * we don't have read permissions on, so don't ignore those errors\n\t\t */\n\t\tif e != nil {\n\t\t\tif e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tpos = s\n\t\tif pos > destsiz {\n\t\t\tpos = destsiz\n\t\t}\n\t}\n\n\treturn s, nil\n}\n\nfunc ListxattrNS(file string, nsid int, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\ts, e := ExtattrListFile(file, nsid, uintptr(d), destsiz)\n\tif e != nil {\n\t\treturn 0, err\n\t}\n\n\treturn s, nil\n}\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tdestsiz := len(dest)\n\n\ts, pos := 0, 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := FlistxattrNS(fd, nsid, dest[pos:])\n\n\t\tif e != nil {\n\t\t\tif e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tpos = s\n\t\tif pos > destsiz {\n\t\t\tpos = destsiz\n\t\t}\n\t}\n\n\treturn s, nil\n}\n\nfunc FlistxattrNS(fd int, nsid int, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\ts, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz)\n\tif e != nil {\n\t\treturn 0, err\n\t}\n\n\treturn s, nil\n}\n\nfunc Llistxattr(link string, dest []byte) (sz int, err error) {\n\tdestsiz := len(dest)\n\n\ts, pos := 0, 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := LlistxattrNS(link, nsid, dest[pos:])\n\n\t\tif e != nil {\n\t\t\tif e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tpos = s\n\t\tif pos > destsiz {\n\t\t\tpos = destsiz\n\t\t}\n\t}\n\n\treturn s, nil\n}\n\nfunc LlistxattrNS(link string, nsid int, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\ts, e := ExtattrListLink(link, nsid, uintptr(d), destsiz)\n\tif e != nil {\n\t\treturn 0, err\n\t}\n\n\treturn s, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go",
    "content": "// mkerrors.sh -maix32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && aix\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -maix32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                  = 0x10\n\tAF_BYPASS                     = 0x19\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x18\n\tAF_INTF                       = 0x14\n\tAF_ISO                        = 0x7\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x12\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x1e\n\tAF_NDD                        = 0x17\n\tAF_NETWARE                    = 0x16\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x7\n\tAF_PUP                        = 0x4\n\tAF_RIF                        = 0x15\n\tAF_ROUTE                      = 0x11\n\tAF_SNA                        = 0xb\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tALTWERASE                     = 0x400000\n\tARPHRD_802_3                  = 0x6\n\tARPHRD_802_5                  = 0x6\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FDDI                   = 0x1\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB38400                        = 0xf\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB9600                         = 0xd\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x1000\n\tBSDLY                         = 0x1000\n\tCAP_AACCT                     = 0x6\n\tCAP_ARM_APPLICATION           = 0x5\n\tCAP_BYPASS_RAC_VMM            = 0x3\n\tCAP_CLEAR                     = 0x0\n\tCAP_CREDENTIALS               = 0x7\n\tCAP_EFFECTIVE                 = 0x1\n\tCAP_EWLM_AGENT                = 0x4\n\tCAP_INHERITABLE               = 0x2\n\tCAP_MAXIMUM                   = 0x7\n\tCAP_NUMA_ATTACH               = 0x2\n\tCAP_PERMITTED                 = 0x3\n\tCAP_PROPAGATE                 = 0x1\n\tCAP_PROPOGATE                 = 0x1\n\tCAP_SET                       = 0x1\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_MONOTONIC               = 0xa\n\tCLOCK_PROCESS_CPUTIME_ID      = 0xb\n\tCLOCK_REALTIME                = 0x9\n\tCLOCK_THREAD_CPUTIME_ID       = 0xc\n\tCR0                           = 0x0\n\tCR1                           = 0x100\n\tCR2                           = 0x200\n\tCR3                           = 0x300\n\tCRDLY                         = 0x300\n\tCREAD                         = 0x80\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIOCGIFCONF                  = -0x3ff796dc\n\tCSIZE                         = 0x30\n\tCSMAP_DIR                     = \"/usr/lib/nls/csmap/\"\n\tCSTART                        = '\\021'\n\tCSTOP                         = '\\023'\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x20000\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x80000\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x40000\n\tECH_ICMPID                    = 0x2\n\tETHERNET_CSMACD               = 0x6\n\tEVENP                         = 0x80\n\tEXCONTINUE                    = 0x0\n\tEXDLOK                        = 0x3\n\tEXIO                          = 0x2\n\tEXPGIO                        = 0x0\n\tEXRESUME                      = 0x2\n\tEXRETURN                      = 0x1\n\tEXSIG                         = 0x4\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tEXTRAP                        = 0x1\n\tEYEC_RTENTRYA                 = 0x257274656e747241\n\tEYEC_RTENTRYF                 = 0x257274656e747246\n\tE_ACC                         = 0x0\n\tFD_CLOEXEC                    = 0x1\n\tFD_SETSIZE                    = 0xfffe\n\tFF0                           = 0x0\n\tFF1                           = 0x2000\n\tFFDLY                         = 0x2000\n\tFLUSHBAND                     = 0x40\n\tFLUSHLOW                      = 0x8\n\tFLUSHO                        = 0x100000\n\tFLUSHR                        = 0x1\n\tFLUSHRW                       = 0x3\n\tFLUSHW                        = 0x2\n\tF_CLOSEM                      = 0xa\n\tF_DUP2FD                      = 0xe\n\tF_DUPFD                       = 0x0\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0x5\n\tF_GETLK64                     = 0xb\n\tF_GETOWN                      = 0x8\n\tF_LOCK                        = 0x1\n\tF_OK                          = 0x0\n\tF_RDLCK                       = 0x1\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0x6\n\tF_SETLK64                     = 0xc\n\tF_SETLKW                      = 0x7\n\tF_SETLKW64                    = 0xd\n\tF_SETOWN                      = 0x9\n\tF_TEST                        = 0x3\n\tF_TLOCK                       = 0x2\n\tF_TSTLK                       = 0xf\n\tF_ULOCK                       = 0x0\n\tF_UNLCK                       = 0x3\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICMP6_FILTER                  = 0x26\n\tICMP6_SEC_SEND_DEL            = 0x46\n\tICMP6_SEC_SEND_GET            = 0x47\n\tICMP6_SEC_SEND_SET            = 0x44\n\tICMP6_SEC_SEND_SET_CGA_ADDR   = 0x45\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x200000\n\tIFA_FIRSTALIAS                = 0x2000\n\tIFA_ROUTE                     = 0x1\n\tIFF_64BIT                     = 0x4000000\n\tIFF_ALLCAST                   = 0x20000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_BPF                       = 0x8000000\n\tIFF_BRIDGE                    = 0x40000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x80c52\n\tIFF_CHECKSUM_OFFLOAD          = 0x10000000\n\tIFF_D1                        = 0x8000\n\tIFF_D2                        = 0x4000\n\tIFF_D3                        = 0x2000\n\tIFF_D4                        = 0x1000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEVHEALTH                 = 0x4000\n\tIFF_DO_HW_LOOPBACK            = 0x10000\n\tIFF_GROUP_ROUTING             = 0x2000000\n\tIFF_IFBUFMGT                  = 0x800000\n\tIFF_LINK0                     = 0x100000\n\tIFF_LINK1                     = 0x200000\n\tIFF_LINK2                     = 0x400000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x80000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOECHO                    = 0x800\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_OACTIVE                   = 0x400\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PROMISC                   = 0x100\n\tIFF_PSEG                      = 0x40000000\n\tIFF_RUNNING                   = 0x40\n\tIFF_SIMPLEX                   = 0x800\n\tIFF_SNAP                      = 0x8000\n\tIFF_TCP_DISABLE_CKSUM         = 0x20000000\n\tIFF_TCP_NOCKSUM               = 0x1000000\n\tIFF_UP                        = 0x1\n\tIFF_VIPA                      = 0x80000000\n\tIFNAMSIZ                      = 0x10\n\tIFO_FLUSH                     = 0x1\n\tIFT_1822                      = 0x2\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_CLUSTER                   = 0x3e\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FCS                       = 0x3a\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_GIFTUNNEL                 = 0x3c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HF                        = 0x3d\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SN                        = 0x38\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_SP                        = 0x39\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_TUNNEL                    = 0x3b\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_VIPA                      = 0x37\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x10000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_USE                        = 0x1\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_BIP                   = 0x53\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_GIF                   = 0x8c\n\tIPPROTO_GRE                   = 0x2f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPIP                  = 0x4\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_LOCAL                 = 0x3f\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_MH                    = 0x87\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_QOS                   = 0x2d\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_TP                    = 0x1d\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADDRFORM                 = 0x16\n\tIPV6_ADDR_PREFERENCES         = 0x4a\n\tIPV6_ADD_MEMBERSHIP           = 0xc\n\tIPV6_AIXRAWSOCKET             = 0x39\n\tIPV6_CHECKSUM                 = 0x27\n\tIPV6_DONTFRAG                 = 0x2d\n\tIPV6_DROP_MEMBERSHIP          = 0xd\n\tIPV6_DSTOPTS                  = 0x36\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffffff\n\tIPV6_FLOWINFO_PRIFLOW         = 0xfffffff\n\tIPV6_FLOWINFO_PRIORITY        = 0xf000000\n\tIPV6_FLOWINFO_SRFLAG          = 0x10000000\n\tIPV6_FLOWINFO_VERSION         = 0xf0000000\n\tIPV6_HOPLIMIT                 = 0x28\n\tIPV6_HOPOPTS                  = 0x34\n\tIPV6_JOIN_GROUP               = 0xc\n\tIPV6_LEAVE_GROUP              = 0xd\n\tIPV6_MIPDSTOPTS               = 0x36\n\tIPV6_MULTICAST_HOPS           = 0xa\n\tIPV6_MULTICAST_IF             = 0x9\n\tIPV6_MULTICAST_LOOP           = 0xb\n\tIPV6_NEXTHOP                  = 0x30\n\tIPV6_NOPROBE                  = 0x1c\n\tIPV6_PATHMTU                  = 0x2e\n\tIPV6_PKTINFO                  = 0x21\n\tIPV6_PKTOPTIONS               = 0x24\n\tIPV6_PRIORITY_10              = 0xa000000\n\tIPV6_PRIORITY_11              = 0xb000000\n\tIPV6_PRIORITY_12              = 0xc000000\n\tIPV6_PRIORITY_13              = 0xd000000\n\tIPV6_PRIORITY_14              = 0xe000000\n\tIPV6_PRIORITY_15              = 0xf000000\n\tIPV6_PRIORITY_8               = 0x8000000\n\tIPV6_PRIORITY_9               = 0x9000000\n\tIPV6_PRIORITY_BULK            = 0x4000000\n\tIPV6_PRIORITY_CONTROL         = 0x7000000\n\tIPV6_PRIORITY_FILLER          = 0x1000000\n\tIPV6_PRIORITY_INTERACTIVE     = 0x6000000\n\tIPV6_PRIORITY_RESERVED1       = 0x3000000\n\tIPV6_PRIORITY_RESERVED2       = 0x5000000\n\tIPV6_PRIORITY_UNATTENDED      = 0x2000000\n\tIPV6_PRIORITY_UNCHARACTERIZED = 0x0\n\tIPV6_RECVDSTOPTS              = 0x38\n\tIPV6_RECVHOPLIMIT             = 0x29\n\tIPV6_RECVHOPOPTS              = 0x35\n\tIPV6_RECVHOPS                 = 0x22\n\tIPV6_RECVIF                   = 0x1e\n\tIPV6_RECVPATHMTU              = 0x2f\n\tIPV6_RECVPKTINFO              = 0x23\n\tIPV6_RECVRTHDR                = 0x33\n\tIPV6_RECVSRCRT                = 0x1d\n\tIPV6_RECVTCLASS               = 0x2a\n\tIPV6_RTHDR                    = 0x32\n\tIPV6_RTHDRDSTOPTS             = 0x37\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_RTHDR_TYPE_2             = 0x2\n\tIPV6_SENDIF                   = 0x1f\n\tIPV6_SRFLAG_LOOSE             = 0x0\n\tIPV6_SRFLAG_STRICT            = 0x10000000\n\tIPV6_TCLASS                   = 0x2b\n\tIPV6_TOKEN_LENGTH             = 0x40\n\tIPV6_UNICAST_HOPS             = 0x4\n\tIPV6_USE_MIN_MTU              = 0x2c\n\tIPV6_V6ONLY                   = 0x25\n\tIPV6_VERSION                  = 0x60000000\n\tIP_ADDRFORM                   = 0x16\n\tIP_ADD_MEMBERSHIP             = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x3c\n\tIP_BLOCK_SOURCE               = 0x3a\n\tIP_BROADCAST_IF               = 0x10\n\tIP_CACHE_LINE_SIZE            = 0x80\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPMODE                   = 0x11\n\tIP_DONTFRAG                   = 0x19\n\tIP_DROP_MEMBERSHIP            = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x3d\n\tIP_FINDPMTU                   = 0x1a\n\tIP_HDRINCL                    = 0x2\n\tIP_INC_MEMBERSHIPS            = 0x14\n\tIP_INIT_MEMBERSHIP            = 0x14\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_HOPS             = 0xa\n\tIP_MULTICAST_IF               = 0x9\n\tIP_MULTICAST_LOOP             = 0xb\n\tIP_MULTICAST_TTL              = 0xa\n\tIP_OPT                        = 0x1b\n\tIP_OPTIONS                    = 0x1\n\tIP_PMTUAGE                    = 0x1b\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x14\n\tIP_RECVIFINFO                 = 0xf\n\tIP_RECVINTERFACE              = 0x20\n\tIP_RECVMACHDR                 = 0xe\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVTTL                    = 0x22\n\tIP_RETOPTS                    = 0x8\n\tIP_SOURCE_FILTER              = 0x48\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x3b\n\tIP_UNICAST_HOPS               = 0x4\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x800\n\tIXANY                         = 0x1000\n\tIXOFF                         = 0x400\n\tIXON                          = 0x200\n\tI_FLUSH                       = 0x20005305\n\tLNOFLSH                       = 0x8000\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_NORMAL                   = 0x0\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_SPACEAVAIL               = 0x5\n\tMADV_WILLNEED                 = 0x3\n\tMAP_ANON                      = 0x10\n\tMAP_ANONYMOUS                 = 0x10\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x100\n\tMAP_PRIVATE                   = 0x2\n\tMAP_SHARED                    = 0x1\n\tMAP_TYPE                      = 0xf0\n\tMAP_VARIABLE                  = 0x0\n\tMCAST_BLOCK_SOURCE            = 0x40\n\tMCAST_EXCLUDE                 = 0x2\n\tMCAST_INCLUDE                 = 0x1\n\tMCAST_JOIN_GROUP              = 0x3e\n\tMCAST_JOIN_SOURCE_GROUP       = 0x42\n\tMCAST_LEAVE_GROUP             = 0x3f\n\tMCAST_LEAVE_SOURCE_GROUP      = 0x43\n\tMCAST_SOURCE_FILTER           = 0x49\n\tMCAST_UNBLOCK_SOURCE          = 0x41\n\tMCL_CURRENT                   = 0x100\n\tMCL_FUTURE                    = 0x200\n\tMSG_ANY                       = 0x4\n\tMSG_ARGEXT                    = 0x400\n\tMSG_BAND                      = 0x2\n\tMSG_COMPAT                    = 0x8000\n\tMSG_CTRUNC                    = 0x20\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_EOR                       = 0x8\n\tMSG_HIPRI                     = 0x1\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_MPEG2                     = 0x80\n\tMSG_NONBLOCK                  = 0x4000\n\tMSG_NOSIGNAL                  = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x10\n\tMSG_WAITALL                   = 0x40\n\tMSG_WAITFORONE                = 0x200\n\tMS_ASYNC                      = 0x10\n\tMS_EINTR                      = 0x80\n\tMS_INVALIDATE                 = 0x40\n\tMS_PER_SEC                    = 0x3e8\n\tMS_SYNC                       = 0x20\n\tNFDBITS                       = 0x20\n\tNL0                           = 0x0\n\tNL1                           = 0x4000\n\tNL2                           = 0x8000\n\tNL3                           = 0xc000\n\tNLDLY                         = 0x4000\n\tNOFLSH                        = 0x80\n\tNOFLUSH                       = 0x80000000\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tONOEOT                        = 0x80000\n\tOPOST                         = 0x1\n\tOXTABS                        = 0x40000\n\tO_ACCMODE                     = 0x23\n\tO_APPEND                      = 0x8\n\tO_CIO                         = 0x80\n\tO_CIOR                        = 0x800000000\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DEFER                       = 0x2000\n\tO_DELAY                       = 0x4000\n\tO_DIRECT                      = 0x8000000\n\tO_DIRECTORY                   = 0x80000\n\tO_DSYNC                       = 0x400000\n\tO_EFSOFF                      = 0x400000000\n\tO_EFSON                       = 0x200000000\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x20\n\tO_LARGEFILE                   = 0x4000000\n\tO_NDELAY                      = 0x8000\n\tO_NOCACHE                     = 0x100000\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x1000000\n\tO_NONBLOCK                    = 0x4\n\tO_NONE                        = 0x3\n\tO_NSHARE                      = 0x10000\n\tO_RAW                         = 0x100000000\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSHARE                      = 0x1000\n\tO_RSYNC                       = 0x200000\n\tO_SEARCH                      = 0x20\n\tO_SNAPSHOT                    = 0x40\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_TTY_INIT                    = 0x0\n\tO_WRONLY                      = 0x1\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x20000000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tPR_64BIT                      = 0x20\n\tPR_ADDR                       = 0x2\n\tPR_ARGEXT                     = 0x400\n\tPR_ATOMIC                     = 0x1\n\tPR_CONNREQUIRED               = 0x4\n\tPR_FASTHZ                     = 0x5\n\tPR_INP                        = 0x40\n\tPR_INTRLEVEL                  = 0x8000\n\tPR_MLS                        = 0x100\n\tPR_MLS_1_LABEL                = 0x200\n\tPR_NOEOR                      = 0x4000\n\tPR_RIGHTS                     = 0x10\n\tPR_SLOWHZ                     = 0x2\n\tPR_WANTRCVD                   = 0x8\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x7\n\tRLIMIT_NPROC                  = 0x9\n\tRLIMIT_RSS                    = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = 0x7fffffff\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x8\n\tRTAX_NETMASK                  = 0x2\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DOWNSTREAM                = 0x100\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTC_IA64                      = 0x3\n\tRTC_POWER                     = 0x1\n\tRTC_POWER_PC                  = 0x2\n\tRTF_ACTIVE_DGD                = 0x1000000\n\tRTF_BCE                       = 0x80000\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_BROADCAST                 = 0x400000\n\tRTF_BUL                       = 0x2000\n\tRTF_CLONE                     = 0x10000\n\tRTF_CLONED                    = 0x20000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_FREE_IN_PROG              = 0x4000000\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_LLINFO                    = 0x400\n\tRTF_LOCAL                     = 0x200000\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTICAST                 = 0x800000\n\tRTF_PERMANENT6                = 0x8000000\n\tRTF_PINNED                    = 0x100000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_PROTO3                    = 0x40000\n\tRTF_REJECT                    = 0x8\n\tRTF_SMALLMTU                  = 0x40000\n\tRTF_STATIC                    = 0x800\n\tRTF_STOPSRCH                  = 0x2000000\n\tRTF_UNREACHABLE               = 0x10000000\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_EXPIRE                    = 0xf\n\tRTM_GET                       = 0x4\n\tRTM_GETNEXT                   = 0x11\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_RTLOST                    = 0x10\n\tRTM_RTTUNIT                   = 0xf4240\n\tRTM_SAMEADDR                  = 0x12\n\tRTM_SET                       = 0x13\n\tRTM_VERSION                   = 0x2\n\tRTM_VERSION_GR                = 0x4\n\tRTM_VERSION_GR_COMPAT         = 0x3\n\tRTM_VERSION_POLICY            = 0x5\n\tRTM_VERSION_POLICY_EXT        = 0x6\n\tRTM_VERSION_POLICY_PRFN       = 0x7\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tRUSAGE_THREAD                 = 0x1\n\tSCM_RIGHTS                    = 0x1\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIGMAX64                      = 0xff\n\tSIGQUEUE_MAX                  = 0x20\n\tSIOCADDIFVIPA                 = 0x20006942\n\tSIOCADDMTU                    = -0x7ffb9690\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDNETID                  = -0x7fd796a9\n\tSIOCADDRT                     = -0x7fcf8df6\n\tSIOCAIFADDR                   = -0x7fbf96e6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fb396e0\n\tSIOCDELIFVIPA                 = 0x20006943\n\tSIOCDELMTU                    = -0x7ffb968f\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELPMTU                   = -0x7fd78ff6\n\tSIOCDELRT                     = -0x7fcf8df5\n\tSIOCDIFADDR                   = -0x7fd796e7\n\tSIOCDNETOPT                   = -0x3ffe9680\n\tSIOCDX25XLATE                 = -0x7fd7969b\n\tSIOCFIFADDR                   = -0x7fdf966d\n\tSIOCGARP                      = -0x3fb396da\n\tSIOCGETMTUS                   = 0x2000696f\n\tSIOCGETSGCNT                  = -0x3feb8acc\n\tSIOCGETVIFCNT                 = -0x3feb8acd\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fd796df\n\tSIOCGIFADDRS                  = 0x2000698c\n\tSIOCGIFBAUDRATE               = -0x3fdf9669\n\tSIOCGIFBRDADDR                = -0x3fd796dd\n\tSIOCGIFCONF                   = -0x3ff796bb\n\tSIOCGIFCONFGLOB               = -0x3ff79670\n\tSIOCGIFDSTADDR                = -0x3fd796de\n\tSIOCGIFFLAGS                  = -0x3fd796ef\n\tSIOCGIFGIDLIST                = 0x20006968\n\tSIOCGIFHWADDR                 = -0x3fab966b\n\tSIOCGIFMETRIC                 = -0x3fd796e9\n\tSIOCGIFMTU                    = -0x3fd796aa\n\tSIOCGIFNETMASK                = -0x3fd796db\n\tSIOCGIFOPTIONS                = -0x3fd796d6\n\tSIOCGISNO                     = -0x3fd79695\n\tSIOCGLOADF                    = -0x3ffb967e\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGNETOPT                   = -0x3ffe96a5\n\tSIOCGNETOPT1                  = -0x3fdf967f\n\tSIOCGNMTUS                    = 0x2000696e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSIZIFCONF                = 0x4004696a\n\tSIOCGSRCFILTER                = -0x3fe796cb\n\tSIOCGTUNEPHASE                = -0x3ffb9676\n\tSIOCGX25XLATE                 = -0x3fd7969c\n\tSIOCIFATTACH                  = -0x7fdf9699\n\tSIOCIFDETACH                  = -0x7fdf969a\n\tSIOCIFGETPKEY                 = -0x7fdf969b\n\tSIOCIF_ATM_DARP               = -0x7fdf9683\n\tSIOCIF_ATM_DUMPARP            = -0x7fdf9685\n\tSIOCIF_ATM_GARP               = -0x7fdf9682\n\tSIOCIF_ATM_IDLE               = -0x7fdf9686\n\tSIOCIF_ATM_SARP               = -0x7fdf9681\n\tSIOCIF_ATM_SNMPARP            = -0x7fdf9687\n\tSIOCIF_ATM_SVC                = -0x7fdf9684\n\tSIOCIF_ATM_UBR                = -0x7fdf9688\n\tSIOCIF_DEVHEALTH              = -0x7ffb966c\n\tSIOCIF_IB_ARP_INCOMP          = -0x7fdf9677\n\tSIOCIF_IB_ARP_TIMER           = -0x7fdf9678\n\tSIOCIF_IB_CLEAR_PINFO         = -0x3fdf966f\n\tSIOCIF_IB_DEL_ARP             = -0x7fdf967f\n\tSIOCIF_IB_DEL_PINFO           = -0x3fdf9670\n\tSIOCIF_IB_DUMP_ARP            = -0x7fdf9680\n\tSIOCIF_IB_GET_ARP             = -0x7fdf967e\n\tSIOCIF_IB_GET_INFO            = -0x3f879675\n\tSIOCIF_IB_GET_STATS           = -0x3f879672\n\tSIOCIF_IB_NOTIFY_ADDR_REM     = -0x3f87966a\n\tSIOCIF_IB_RESET_STATS         = -0x3f879671\n\tSIOCIF_IB_RESIZE_CQ           = -0x7fdf9679\n\tSIOCIF_IB_SET_ARP             = -0x7fdf967d\n\tSIOCIF_IB_SET_PKEY            = -0x7fdf967c\n\tSIOCIF_IB_SET_PORT            = -0x7fdf967b\n\tSIOCIF_IB_SET_QKEY            = -0x7fdf9676\n\tSIOCIF_IB_SET_QSIZE           = -0x7fdf967a\n\tSIOCLISTIFVIPA                = 0x20006944\n\tSIOCSARP                      = -0x7fb396e2\n\tSIOCSHIWAT                    = 0x80047300\n\tSIOCSIFADDR                   = -0x7fd796f4\n\tSIOCSIFADDRORI                = -0x7fdb9673\n\tSIOCSIFBRDADDR                = -0x7fd796ed\n\tSIOCSIFDSTADDR                = -0x7fd796f2\n\tSIOCSIFFLAGS                  = -0x7fd796f0\n\tSIOCSIFGIDLIST                = 0x20006969\n\tSIOCSIFMETRIC                 = -0x7fd796e8\n\tSIOCSIFMTU                    = -0x7fd796a8\n\tSIOCSIFNETDUMP                = -0x7fd796e4\n\tSIOCSIFNETMASK                = -0x7fd796ea\n\tSIOCSIFOPTIONS                = -0x7fd796d7\n\tSIOCSIFSUBCHAN                = -0x7fd796e5\n\tSIOCSISNO                     = -0x7fd79694\n\tSIOCSLOADF                    = -0x3ffb967d\n\tSIOCSLOWAT                    = 0x80047302\n\tSIOCSNETOPT                   = -0x7ffe96a6\n\tSIOCSPGRP                     = 0x80047308\n\tSIOCSX25XLATE                 = -0x7fd7969d\n\tSOCK_CONN_DGRAM               = 0x6\n\tSOCK_DGRAM                    = 0x2\n\tSOCK_RAW                      = 0x3\n\tSOCK_RDM                      = 0x4\n\tSOCK_SEQPACKET                = 0x5\n\tSOCK_STREAM                   = 0x1\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x400\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_AUDIT                      = 0x8000\n\tSO_BROADCAST                  = 0x20\n\tSO_CKSUMRECV                  = 0x800\n\tSO_DEBUG                      = 0x1\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROR                      = 0x1007\n\tSO_KEEPALIVE                  = 0x8\n\tSO_KERNACCEPT                 = 0x2000\n\tSO_LINGER                     = 0x80\n\tSO_NOMULTIPATH                = 0x4000\n\tSO_NOREUSEADDR                = 0x1000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PEERID                     = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_REUSEADDR                  = 0x4\n\tSO_REUSEPORT                  = 0x200\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_TIMESTAMPNS                = 0x100a\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_USE_IFBUFS                 = 0x400\n\tS_BANDURG                     = 0x400\n\tS_EMODFMT                     = 0x3c000000\n\tS_ENFMT                       = 0x400\n\tS_ERROR                       = 0x100\n\tS_HANGUP                      = 0x200\n\tS_HIPRI                       = 0x2\n\tS_ICRYPTO                     = 0x80000\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFIFO                       = 0x1000\n\tS_IFJOURNAL                   = 0x10000\n\tS_IFLNK                       = 0xa000\n\tS_IFMPX                       = 0x2200\n\tS_IFMT                        = 0xf000\n\tS_IFPDIR                      = 0x4000000\n\tS_IFPSDIR                     = 0x8000000\n\tS_IFPSSDIR                    = 0xc000000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_IFSYSEA                     = 0x30000000\n\tS_INPUT                       = 0x1\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_ITCB                        = 0x1000000\n\tS_ITP                         = 0x800000\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXACL                       = 0x2000000\n\tS_IXATTR                      = 0x40000\n\tS_IXGRP                       = 0x8\n\tS_IXINTERFACE                 = 0x100000\n\tS_IXMOD                       = 0x40000000\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tS_MSG                         = 0x8\n\tS_OUTPUT                      = 0x4\n\tS_RDBAND                      = 0x20\n\tS_RDNORM                      = 0x10\n\tS_RESERVED1                   = 0x20000\n\tS_RESERVED2                   = 0x200000\n\tS_RESERVED3                   = 0x400000\n\tS_RESERVED4                   = 0x80000000\n\tS_RESFMT1                     = 0x10000000\n\tS_RESFMT10                    = 0x34000000\n\tS_RESFMT11                    = 0x38000000\n\tS_RESFMT12                    = 0x3c000000\n\tS_RESFMT2                     = 0x14000000\n\tS_RESFMT3                     = 0x18000000\n\tS_RESFMT4                     = 0x1c000000\n\tS_RESFMT5                     = 0x20000000\n\tS_RESFMT6                     = 0x24000000\n\tS_RESFMT7                     = 0x28000000\n\tS_RESFMT8                     = 0x2c000000\n\tS_WRBAND                      = 0x80\n\tS_WRNORM                      = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x400\n\tTAB2                          = 0x800\n\tTAB3                          = 0xc00\n\tTABDLY                        = 0xc00\n\tTCFLSH                        = 0x540c\n\tTCGETA                        = 0x5405\n\tTCGETS                        = 0x5401\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800\n\tTCP_ACLADD                    = 0x23\n\tTCP_ACLBIND                   = 0x26\n\tTCP_ACLCLEAR                  = 0x22\n\tTCP_ACLDEL                    = 0x24\n\tTCP_ACLDENY                   = 0x8\n\tTCP_ACLFLUSH                  = 0x21\n\tTCP_ACLGID                    = 0x1\n\tTCP_ACLLS                     = 0x25\n\tTCP_ACLSUBNET                 = 0x4\n\tTCP_ACLUID                    = 0x2\n\tTCP_CWND_DF                   = 0x16\n\tTCP_CWND_IF                   = 0x15\n\tTCP_DELAY_ACK_FIN             = 0x2\n\tTCP_DELAY_ACK_SYN             = 0x1\n\tTCP_FASTNAME                  = 0x101080a\n\tTCP_KEEPCNT                   = 0x13\n\tTCP_KEEPIDLE                  = 0x11\n\tTCP_KEEPINTVL                 = 0x12\n\tTCP_LSPRIV                    = 0x29\n\tTCP_LUID                      = 0x20\n\tTCP_MAXBURST                  = 0x8\n\tTCP_MAXDF                     = 0x64\n\tTCP_MAXIF                     = 0x64\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MAXWIN                    = 0xffff\n\tTCP_MAXWINDOWSCALE            = 0xe\n\tTCP_MAX_SACK                  = 0x4\n\tTCP_MSS                       = 0x5b4\n\tTCP_NODELAY                   = 0x1\n\tTCP_NODELAYACK                = 0x14\n\tTCP_NOREDUCE_CWND_EXIT_FRXMT  = 0x19\n\tTCP_NOREDUCE_CWND_IN_FRXMT    = 0x18\n\tTCP_NOTENTER_SSTART           = 0x17\n\tTCP_OPT                       = 0x19\n\tTCP_RFC1323                   = 0x4\n\tTCP_SETPRIV                   = 0x27\n\tTCP_STDURG                    = 0x10\n\tTCP_TIMESTAMP_OPTLEN          = 0xc\n\tTCP_UNSETPRIV                 = 0x28\n\tTCSAFLUSH                     = 0x2\n\tTCSBRK                        = 0x5409\n\tTCSETA                        = 0x5406\n\tTCSETAF                       = 0x5408\n\tTCSETAW                       = 0x5407\n\tTCSETS                        = 0x5402\n\tTCSETSF                       = 0x5404\n\tTCSETSW                       = 0x5403\n\tTCXONC                        = 0x540b\n\tTIMER_ABSTIME                 = 0x3e7\n\tTIMER_MAX                     = 0x20\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x2000747a\n\tTIOCCDTR                      = 0x20007478\n\tTIOCCONS                      = 0x80047462\n\tTIOCEXCL                      = 0x2000740d\n\tTIOCFLUSH                     = 0x80047410\n\tTIOCGETC                      = 0x40067412\n\tTIOCGETD                      = 0x40047400\n\tTIOCGETP                      = 0x40067408\n\tTIOCGLTC                      = 0x40067474\n\tTIOCGPGRP                     = 0x40047477\n\tTIOCGSID                      = 0x40047448\n\tTIOCGSIZE                     = 0x40087468\n\tTIOCGWINSZ                    = 0x40087468\n\tTIOCHPCL                      = 0x20007402\n\tTIOCLBIC                      = 0x8004747e\n\tTIOCLBIS                      = 0x8004747f\n\tTIOCLGET                      = 0x4004747c\n\tTIOCLSET                      = 0x8004747d\n\tTIOCMBIC                      = 0x8004746b\n\tTIOCMBIS                      = 0x8004746c\n\tTIOCMGET                      = 0x4004746a\n\tTIOCMIWAIT                    = 0x80047464\n\tTIOCMODG                      = 0x40047403\n\tTIOCMODS                      = 0x80047404\n\tTIOCMSET                      = 0x8004746d\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x20007471\n\tTIOCNXCL                      = 0x2000740e\n\tTIOCOUTQ                      = 0x40047473\n\tTIOCPKT                       = 0x80047470\n\tTIOCPKT_DATA                  = 0x0\n\tTIOCPKT_DOSTOP                = 0x20\n\tTIOCPKT_FLUSHREAD             = 0x1\n\tTIOCPKT_FLUSHWRITE            = 0x2\n\tTIOCPKT_NOSTOP                = 0x10\n\tTIOCPKT_START                 = 0x8\n\tTIOCPKT_STOP                  = 0x4\n\tTIOCREMOTE                    = 0x80047469\n\tTIOCSBRK                      = 0x2000747b\n\tTIOCSDTR                      = 0x20007479\n\tTIOCSETC                      = 0x80067411\n\tTIOCSETD                      = 0x80047401\n\tTIOCSETN                      = 0x8006740a\n\tTIOCSETP                      = 0x80067409\n\tTIOCSLTC                      = 0x80067475\n\tTIOCSPGRP                     = 0x80047476\n\tTIOCSSIZE                     = 0x80087467\n\tTIOCSTART                     = 0x2000746e\n\tTIOCSTI                       = 0x80017472\n\tTIOCSTOP                      = 0x2000746f\n\tTIOCSWINSZ                    = 0x80087467\n\tTIOCUCNTL                     = 0x80047466\n\tTOSTOP                        = 0x10000\n\tUTIME_NOW                     = -0x2\n\tUTIME_OMIT                    = -0x3\n\tVDISCRD                       = 0xc\n\tVDSUSP                        = 0xa\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xe\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xb\n\tVSTART                        = 0x7\n\tVSTOP                         = 0x8\n\tVSTRT                         = 0x7\n\tVSUSP                         = 0x9\n\tVT0                           = 0x0\n\tVT1                           = 0x8000\n\tVTDELAY                       = 0x2000\n\tVTDLY                         = 0x8000\n\tVTIME                         = 0x5\n\tVWERSE                        = 0xd\n\tWPARSTART                     = 0x1\n\tWPARSTOP                      = 0x2\n\tWPARTTYNAME                   = \"Global\"\n\tXCASE                         = 0x4\n\tXTABS                         = 0xc00\n\t_FDATAFLUSH                   = 0x2000000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x43)\n\tEADDRNOTAVAIL   = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x42)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x38)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x78)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x75)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECLONEME        = syscall.Errno(0x52)\n\tECONNABORTED    = syscall.Errno(0x48)\n\tECONNREFUSED    = syscall.Errno(0x4f)\n\tECONNRESET      = syscall.Errno(0x49)\n\tECORRUPT        = syscall.Errno(0x59)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDESTADDREQ     = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x3a)\n\tEDIST           = syscall.Errno(0x35)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x58)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFORMAT         = syscall.Errno(0x30)\n\tEHOSTDOWN       = syscall.Errno(0x50)\n\tEHOSTUNREACH    = syscall.Errno(0x51)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x74)\n\tEINPROGRESS     = syscall.Errno(0x37)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x4b)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x55)\n\tEMEDIA          = syscall.Errno(0x6e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x3b)\n\tEMULTIHOP       = syscall.Errno(0x7d)\n\tENAMETOOLONG    = syscall.Errno(0x56)\n\tENETDOWN        = syscall.Errno(0x45)\n\tENETRESET       = syscall.Errno(0x47)\n\tENETUNREACH     = syscall.Errno(0x46)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x70)\n\tENOBUFS         = syscall.Errno(0x4a)\n\tENOCONNECT      = syscall.Errno(0x32)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x7a)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x31)\n\tENOLINK         = syscall.Errno(0x7e)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENOPROTOOPT     = syscall.Errno(0x3d)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x76)\n\tENOSTR          = syscall.Errno(0x7b)\n\tENOSYS          = syscall.Errno(0x6d)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x4c)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x11)\n\tENOTREADY       = syscall.Errno(0x2e)\n\tENOTRECOVERABLE = syscall.Errno(0x5e)\n\tENOTRUST        = syscall.Errno(0x72)\n\tENOTSOCK        = syscall.Errno(0x39)\n\tENOTSUP         = syscall.Errno(0x7c)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x40)\n\tEOVERFLOW       = syscall.Errno(0x7f)\n\tEOWNERDEAD      = syscall.Errno(0x5f)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x41)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x53)\n\tEPROTO          = syscall.Errno(0x79)\n\tEPROTONOSUPPORT = syscall.Errno(0x3e)\n\tEPROTOTYPE      = syscall.Errno(0x3c)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x5d)\n\tERESTART        = syscall.Errno(0x52)\n\tEROFS           = syscall.Errno(0x1e)\n\tESAD            = syscall.Errno(0x71)\n\tESHUTDOWN       = syscall.Errno(0x4d)\n\tESOCKTNOSUPPORT = syscall.Errno(0x3f)\n\tESOFT           = syscall.Errno(0x6f)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x34)\n\tESYSERROR       = syscall.Errno(0x5a)\n\tETIME           = syscall.Errno(0x77)\n\tETIMEDOUT       = syscall.Errno(0x4e)\n\tETOOMANYREFS    = syscall.Errno(0x73)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x54)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEWRPROTECT      = syscall.Errno(0x2f)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGAIO      = syscall.Signal(0x17)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGALRM1    = syscall.Signal(0x26)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCAPI     = syscall.Signal(0x31)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCLD      = syscall.Signal(0x14)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGCPUFAIL  = syscall.Signal(0x3b)\n\tSIGDANGER   = syscall.Signal(0x21)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGGRANT    = syscall.Signal(0x3c)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOINT    = syscall.Signal(0x10)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKAP      = syscall.Signal(0x3c)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGLOST     = syscall.Signal(0x6)\n\tSIGMAX      = syscall.Signal(0x3f)\n\tSIGMAX32    = syscall.Signal(0x3f)\n\tSIGMIGRATE  = syscall.Signal(0x23)\n\tSIGMSG      = syscall.Signal(0x1b)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPOLL     = syscall.Signal(0x17)\n\tSIGPRE      = syscall.Signal(0x24)\n\tSIGPROF     = syscall.Signal(0x20)\n\tSIGPTY      = syscall.Signal(0x17)\n\tSIGPWR      = syscall.Signal(0x1d)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGRECONFIG = syscall.Signal(0x3a)\n\tSIGRETRACT  = syscall.Signal(0x3d)\n\tSIGSAK      = syscall.Signal(0x3f)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSOUND    = syscall.Signal(0x3e)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGSYSERROR = syscall.Signal(0x30)\n\tSIGTALRM    = syscall.Signal(0x26)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVIRT     = syscall.Signal(0x25)\n\tSIGVTALRM   = syscall.Signal(0x22)\n\tSIGWAITING  = syscall.Signal(0x27)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"ENOTEMPTY\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"not a typewriter\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock condition if locked\"},\n\t{46, \"ENOTREADY\", \"device not ready\"},\n\t{47, \"EWRPROTECT\", \"write-protected media\"},\n\t{48, \"EFORMAT\", \"unformatted or incompatible media\"},\n\t{49, \"ENOLCK\", \"no locks available\"},\n\t{50, \"ENOCONNECT\", \"cannot Establish Connection\"},\n\t{52, \"ESTALE\", \"missing file or filesystem\"},\n\t{53, \"EDIST\", \"requests blocked by Administrator\"},\n\t{55, \"EINPROGRESS\", \"operation now in progress\"},\n\t{56, \"EALREADY\", \"operation already in progress\"},\n\t{57, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{58, \"EDESTADDREQ\", \"destination address required\"},\n\t{59, \"EMSGSIZE\", \"message too long\"},\n\t{60, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{61, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{62, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{63, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{64, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{65, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{66, \"EAFNOSUPPORT\", \"addr family not supported by protocol\"},\n\t{67, \"EADDRINUSE\", \"address already in use\"},\n\t{68, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{69, \"ENETDOWN\", \"network is down\"},\n\t{70, \"ENETUNREACH\", \"network is unreachable\"},\n\t{71, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{72, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{73, \"ECONNRESET\", \"connection reset by peer\"},\n\t{74, \"ENOBUFS\", \"no buffer space available\"},\n\t{75, \"EISCONN\", \"socket is already connected\"},\n\t{76, \"ENOTCONN\", \"socket is not connected\"},\n\t{77, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{78, \"ETIMEDOUT\", \"connection timed out\"},\n\t{79, \"ECONNREFUSED\", \"connection refused\"},\n\t{80, \"EHOSTDOWN\", \"host is down\"},\n\t{81, \"EHOSTUNREACH\", \"no route to host\"},\n\t{82, \"ERESTART\", \"restart the system call\"},\n\t{83, \"EPROCLIM\", \"too many processes\"},\n\t{84, \"EUSERS\", \"too many users\"},\n\t{85, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{86, \"ENAMETOOLONG\", \"file name too long\"},\n\t{88, \"EDQUOT\", \"disk quota exceeded\"},\n\t{89, \"ECORRUPT\", \"invalid file system control data detected\"},\n\t{90, \"ESYSERROR\", \"for future use \"},\n\t{93, \"EREMOTE\", \"item is not local to host\"},\n\t{94, \"ENOTRECOVERABLE\", \"state not recoverable \"},\n\t{95, \"EOWNERDEAD\", \"previous owner died \"},\n\t{109, \"ENOSYS\", \"function not implemented\"},\n\t{110, \"EMEDIA\", \"media surface error\"},\n\t{111, \"ESOFT\", \"I/O completed, but needs relocation\"},\n\t{112, \"ENOATTR\", \"no attribute found\"},\n\t{113, \"ESAD\", \"security Authentication Denied\"},\n\t{114, \"ENOTRUST\", \"not a Trusted Program\"},\n\t{115, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{116, \"EILSEQ\", \"invalid wide character\"},\n\t{117, \"ECANCELED\", \"asynchronous I/O cancelled\"},\n\t{118, \"ENOSR\", \"out of STREAMS resources\"},\n\t{119, \"ETIME\", \"system call timed out\"},\n\t{120, \"EBADMSG\", \"next message has wrong type\"},\n\t{121, \"EPROTO\", \"error in protocol\"},\n\t{122, \"ENODATA\", \"no message on stream head read q\"},\n\t{123, \"ENOSTR\", \"fd not associated with a stream\"},\n\t{124, \"ENOTSUP\", \"unsupported attribute value\"},\n\t{125, \"EMULTIHOP\", \"multihop is not allowed\"},\n\t{126, \"ENOLINK\", \"the server link has been severed\"},\n\t{127, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"IOT/Abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible/complete\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{27, \"SIGMSG\", \"input device data\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGPWR\", \"power-failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPROF\", \"profiling timer expired\"},\n\t{33, \"SIGDANGER\", \"paging space low\"},\n\t{34, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{35, \"SIGMIGRATE\", \"signal 35\"},\n\t{36, \"SIGPRE\", \"signal 36\"},\n\t{37, \"SIGVIRT\", \"signal 37\"},\n\t{38, \"SIGTALRM\", \"signal 38\"},\n\t{39, \"SIGWAITING\", \"signal 39\"},\n\t{48, \"SIGSYSERROR\", \"signal 48\"},\n\t{49, \"SIGCAPI\", \"signal 49\"},\n\t{58, \"SIGRECONFIG\", \"signal 58\"},\n\t{59, \"SIGCPUFAIL\", \"CPU Failure Predicted\"},\n\t{60, \"SIGKAP\", \"monitor mode granted\"},\n\t{61, \"SIGRETRACT\", \"monitor mode retracted\"},\n\t{62, \"SIGSOUND\", \"sound completed\"},\n\t{63, \"SIGSAK\", \"secure attention\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go",
    "content": "// mkerrors.sh -maix64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && aix\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -maix64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                  = 0x10\n\tAF_BYPASS                     = 0x19\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x18\n\tAF_INTF                       = 0x14\n\tAF_ISO                        = 0x7\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x12\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x1e\n\tAF_NDD                        = 0x17\n\tAF_NETWARE                    = 0x16\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x7\n\tAF_PUP                        = 0x4\n\tAF_RIF                        = 0x15\n\tAF_ROUTE                      = 0x11\n\tAF_SNA                        = 0xb\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tALTWERASE                     = 0x400000\n\tARPHRD_802_3                  = 0x6\n\tARPHRD_802_5                  = 0x6\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FDDI                   = 0x1\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB38400                        = 0xf\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB9600                         = 0xd\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x1000\n\tBSDLY                         = 0x1000\n\tCAP_AACCT                     = 0x6\n\tCAP_ARM_APPLICATION           = 0x5\n\tCAP_BYPASS_RAC_VMM            = 0x3\n\tCAP_CLEAR                     = 0x0\n\tCAP_CREDENTIALS               = 0x7\n\tCAP_EFFECTIVE                 = 0x1\n\tCAP_EWLM_AGENT                = 0x4\n\tCAP_INHERITABLE               = 0x2\n\tCAP_MAXIMUM                   = 0x7\n\tCAP_NUMA_ATTACH               = 0x2\n\tCAP_PERMITTED                 = 0x3\n\tCAP_PROPAGATE                 = 0x1\n\tCAP_PROPOGATE                 = 0x1\n\tCAP_SET                       = 0x1\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_MONOTONIC               = 0xa\n\tCLOCK_PROCESS_CPUTIME_ID      = 0xb\n\tCLOCK_REALTIME                = 0x9\n\tCLOCK_THREAD_CPUTIME_ID       = 0xc\n\tCR0                           = 0x0\n\tCR1                           = 0x100\n\tCR2                           = 0x200\n\tCR3                           = 0x300\n\tCRDLY                         = 0x300\n\tCREAD                         = 0x80\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIOCGIFCONF                  = -0x3fef96dc\n\tCSIZE                         = 0x30\n\tCSMAP_DIR                     = \"/usr/lib/nls/csmap/\"\n\tCSTART                        = '\\021'\n\tCSTOP                         = '\\023'\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x20000\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x80000\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x40000\n\tECH_ICMPID                    = 0x2\n\tETHERNET_CSMACD               = 0x6\n\tEVENP                         = 0x80\n\tEXCONTINUE                    = 0x0\n\tEXDLOK                        = 0x3\n\tEXIO                          = 0x2\n\tEXPGIO                        = 0x0\n\tEXRESUME                      = 0x2\n\tEXRETURN                      = 0x1\n\tEXSIG                         = 0x4\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tEXTRAP                        = 0x1\n\tEYEC_RTENTRYA                 = 0x257274656e747241\n\tEYEC_RTENTRYF                 = 0x257274656e747246\n\tE_ACC                         = 0x0\n\tFD_CLOEXEC                    = 0x1\n\tFD_SETSIZE                    = 0xfffe\n\tFF0                           = 0x0\n\tFF1                           = 0x2000\n\tFFDLY                         = 0x2000\n\tFLUSHBAND                     = 0x40\n\tFLUSHLOW                      = 0x8\n\tFLUSHO                        = 0x100000\n\tFLUSHR                        = 0x1\n\tFLUSHRW                       = 0x3\n\tFLUSHW                        = 0x2\n\tF_CLOSEM                      = 0xa\n\tF_DUP2FD                      = 0xe\n\tF_DUPFD                       = 0x0\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0xb\n\tF_GETLK64                     = 0xb\n\tF_GETOWN                      = 0x8\n\tF_LOCK                        = 0x1\n\tF_OK                          = 0x0\n\tF_RDLCK                       = 0x1\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0xc\n\tF_SETLK64                     = 0xc\n\tF_SETLKW                      = 0xd\n\tF_SETLKW64                    = 0xd\n\tF_SETOWN                      = 0x9\n\tF_TEST                        = 0x3\n\tF_TLOCK                       = 0x2\n\tF_TSTLK                       = 0xf\n\tF_ULOCK                       = 0x0\n\tF_UNLCK                       = 0x3\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICMP6_FILTER                  = 0x26\n\tICMP6_SEC_SEND_DEL            = 0x46\n\tICMP6_SEC_SEND_GET            = 0x47\n\tICMP6_SEC_SEND_SET            = 0x44\n\tICMP6_SEC_SEND_SET_CGA_ADDR   = 0x45\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x200000\n\tIFA_FIRSTALIAS                = 0x2000\n\tIFA_ROUTE                     = 0x1\n\tIFF_64BIT                     = 0x4000000\n\tIFF_ALLCAST                   = 0x20000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_BPF                       = 0x8000000\n\tIFF_BRIDGE                    = 0x40000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x80c52\n\tIFF_CHECKSUM_OFFLOAD          = 0x10000000\n\tIFF_D1                        = 0x8000\n\tIFF_D2                        = 0x4000\n\tIFF_D3                        = 0x2000\n\tIFF_D4                        = 0x1000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEVHEALTH                 = 0x4000\n\tIFF_DO_HW_LOOPBACK            = 0x10000\n\tIFF_GROUP_ROUTING             = 0x2000000\n\tIFF_IFBUFMGT                  = 0x800000\n\tIFF_LINK0                     = 0x100000\n\tIFF_LINK1                     = 0x200000\n\tIFF_LINK2                     = 0x400000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x80000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOECHO                    = 0x800\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_OACTIVE                   = 0x400\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PROMISC                   = 0x100\n\tIFF_PSEG                      = 0x40000000\n\tIFF_RUNNING                   = 0x40\n\tIFF_SIMPLEX                   = 0x800\n\tIFF_SNAP                      = 0x8000\n\tIFF_TCP_DISABLE_CKSUM         = 0x20000000\n\tIFF_TCP_NOCKSUM               = 0x1000000\n\tIFF_UP                        = 0x1\n\tIFF_VIPA                      = 0x80000000\n\tIFNAMSIZ                      = 0x10\n\tIFO_FLUSH                     = 0x1\n\tIFT_1822                      = 0x2\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_CLUSTER                   = 0x3e\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FCS                       = 0x3a\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_GIFTUNNEL                 = 0x3c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HF                        = 0x3d\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SN                        = 0x38\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_SP                        = 0x39\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_TUNNEL                    = 0x3b\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_VIPA                      = 0x37\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x10000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_USE                        = 0x1\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_BIP                   = 0x53\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_GIF                   = 0x8c\n\tIPPROTO_GRE                   = 0x2f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPIP                  = 0x4\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_LOCAL                 = 0x3f\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_MH                    = 0x87\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_QOS                   = 0x2d\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_TP                    = 0x1d\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADDRFORM                 = 0x16\n\tIPV6_ADDR_PREFERENCES         = 0x4a\n\tIPV6_ADD_MEMBERSHIP           = 0xc\n\tIPV6_AIXRAWSOCKET             = 0x39\n\tIPV6_CHECKSUM                 = 0x27\n\tIPV6_DONTFRAG                 = 0x2d\n\tIPV6_DROP_MEMBERSHIP          = 0xd\n\tIPV6_DSTOPTS                  = 0x36\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffffff\n\tIPV6_FLOWINFO_PRIFLOW         = 0xfffffff\n\tIPV6_FLOWINFO_PRIORITY        = 0xf000000\n\tIPV6_FLOWINFO_SRFLAG          = 0x10000000\n\tIPV6_FLOWINFO_VERSION         = 0xf0000000\n\tIPV6_HOPLIMIT                 = 0x28\n\tIPV6_HOPOPTS                  = 0x34\n\tIPV6_JOIN_GROUP               = 0xc\n\tIPV6_LEAVE_GROUP              = 0xd\n\tIPV6_MIPDSTOPTS               = 0x36\n\tIPV6_MULTICAST_HOPS           = 0xa\n\tIPV6_MULTICAST_IF             = 0x9\n\tIPV6_MULTICAST_LOOP           = 0xb\n\tIPV6_NEXTHOP                  = 0x30\n\tIPV6_NOPROBE                  = 0x1c\n\tIPV6_PATHMTU                  = 0x2e\n\tIPV6_PKTINFO                  = 0x21\n\tIPV6_PKTOPTIONS               = 0x24\n\tIPV6_PRIORITY_10              = 0xa000000\n\tIPV6_PRIORITY_11              = 0xb000000\n\tIPV6_PRIORITY_12              = 0xc000000\n\tIPV6_PRIORITY_13              = 0xd000000\n\tIPV6_PRIORITY_14              = 0xe000000\n\tIPV6_PRIORITY_15              = 0xf000000\n\tIPV6_PRIORITY_8               = 0x8000000\n\tIPV6_PRIORITY_9               = 0x9000000\n\tIPV6_PRIORITY_BULK            = 0x4000000\n\tIPV6_PRIORITY_CONTROL         = 0x7000000\n\tIPV6_PRIORITY_FILLER          = 0x1000000\n\tIPV6_PRIORITY_INTERACTIVE     = 0x6000000\n\tIPV6_PRIORITY_RESERVED1       = 0x3000000\n\tIPV6_PRIORITY_RESERVED2       = 0x5000000\n\tIPV6_PRIORITY_UNATTENDED      = 0x2000000\n\tIPV6_PRIORITY_UNCHARACTERIZED = 0x0\n\tIPV6_RECVDSTOPTS              = 0x38\n\tIPV6_RECVHOPLIMIT             = 0x29\n\tIPV6_RECVHOPOPTS              = 0x35\n\tIPV6_RECVHOPS                 = 0x22\n\tIPV6_RECVIF                   = 0x1e\n\tIPV6_RECVPATHMTU              = 0x2f\n\tIPV6_RECVPKTINFO              = 0x23\n\tIPV6_RECVRTHDR                = 0x33\n\tIPV6_RECVSRCRT                = 0x1d\n\tIPV6_RECVTCLASS               = 0x2a\n\tIPV6_RTHDR                    = 0x32\n\tIPV6_RTHDRDSTOPTS             = 0x37\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_RTHDR_TYPE_2             = 0x2\n\tIPV6_SENDIF                   = 0x1f\n\tIPV6_SRFLAG_LOOSE             = 0x0\n\tIPV6_SRFLAG_STRICT            = 0x10000000\n\tIPV6_TCLASS                   = 0x2b\n\tIPV6_TOKEN_LENGTH             = 0x40\n\tIPV6_UNICAST_HOPS             = 0x4\n\tIPV6_USE_MIN_MTU              = 0x2c\n\tIPV6_V6ONLY                   = 0x25\n\tIPV6_VERSION                  = 0x60000000\n\tIP_ADDRFORM                   = 0x16\n\tIP_ADD_MEMBERSHIP             = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x3c\n\tIP_BLOCK_SOURCE               = 0x3a\n\tIP_BROADCAST_IF               = 0x10\n\tIP_CACHE_LINE_SIZE            = 0x80\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPMODE                   = 0x11\n\tIP_DONTFRAG                   = 0x19\n\tIP_DROP_MEMBERSHIP            = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x3d\n\tIP_FINDPMTU                   = 0x1a\n\tIP_HDRINCL                    = 0x2\n\tIP_INC_MEMBERSHIPS            = 0x14\n\tIP_INIT_MEMBERSHIP            = 0x14\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_HOPS             = 0xa\n\tIP_MULTICAST_IF               = 0x9\n\tIP_MULTICAST_LOOP             = 0xb\n\tIP_MULTICAST_TTL              = 0xa\n\tIP_OPT                        = 0x1b\n\tIP_OPTIONS                    = 0x1\n\tIP_PMTUAGE                    = 0x1b\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x14\n\tIP_RECVIFINFO                 = 0xf\n\tIP_RECVINTERFACE              = 0x20\n\tIP_RECVMACHDR                 = 0xe\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVTTL                    = 0x22\n\tIP_RETOPTS                    = 0x8\n\tIP_SOURCE_FILTER              = 0x48\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x3b\n\tIP_UNICAST_HOPS               = 0x4\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x800\n\tIXANY                         = 0x1000\n\tIXOFF                         = 0x400\n\tIXON                          = 0x200\n\tI_FLUSH                       = 0x20005305\n\tLNOFLSH                       = 0x8000\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_NORMAL                   = 0x0\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_SPACEAVAIL               = 0x5\n\tMADV_WILLNEED                 = 0x3\n\tMAP_ANON                      = 0x10\n\tMAP_ANONYMOUS                 = 0x10\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x100\n\tMAP_PRIVATE                   = 0x2\n\tMAP_SHARED                    = 0x1\n\tMAP_TYPE                      = 0xf0\n\tMAP_VARIABLE                  = 0x0\n\tMCAST_BLOCK_SOURCE            = 0x40\n\tMCAST_EXCLUDE                 = 0x2\n\tMCAST_INCLUDE                 = 0x1\n\tMCAST_JOIN_GROUP              = 0x3e\n\tMCAST_JOIN_SOURCE_GROUP       = 0x42\n\tMCAST_LEAVE_GROUP             = 0x3f\n\tMCAST_LEAVE_SOURCE_GROUP      = 0x43\n\tMCAST_SOURCE_FILTER           = 0x49\n\tMCAST_UNBLOCK_SOURCE          = 0x41\n\tMCL_CURRENT                   = 0x100\n\tMCL_FUTURE                    = 0x200\n\tMSG_ANY                       = 0x4\n\tMSG_ARGEXT                    = 0x400\n\tMSG_BAND                      = 0x2\n\tMSG_COMPAT                    = 0x8000\n\tMSG_CTRUNC                    = 0x20\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_EOR                       = 0x8\n\tMSG_HIPRI                     = 0x1\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_MPEG2                     = 0x80\n\tMSG_NONBLOCK                  = 0x4000\n\tMSG_NOSIGNAL                  = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x10\n\tMSG_WAITALL                   = 0x40\n\tMSG_WAITFORONE                = 0x200\n\tMS_ASYNC                      = 0x10\n\tMS_EINTR                      = 0x80\n\tMS_INVALIDATE                 = 0x40\n\tMS_PER_SEC                    = 0x3e8\n\tMS_SYNC                       = 0x20\n\tNFDBITS                       = 0x40\n\tNL0                           = 0x0\n\tNL1                           = 0x4000\n\tNL2                           = 0x8000\n\tNL3                           = 0xc000\n\tNLDLY                         = 0x4000\n\tNOFLSH                        = 0x80\n\tNOFLUSH                       = 0x80000000\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tONOEOT                        = 0x80000\n\tOPOST                         = 0x1\n\tOXTABS                        = 0x40000\n\tO_ACCMODE                     = 0x23\n\tO_APPEND                      = 0x8\n\tO_CIO                         = 0x80\n\tO_CIOR                        = 0x800000000\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DEFER                       = 0x2000\n\tO_DELAY                       = 0x4000\n\tO_DIRECT                      = 0x8000000\n\tO_DIRECTORY                   = 0x80000\n\tO_DSYNC                       = 0x400000\n\tO_EFSOFF                      = 0x400000000\n\tO_EFSON                       = 0x200000000\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x20\n\tO_LARGEFILE                   = 0x4000000\n\tO_NDELAY                      = 0x8000\n\tO_NOCACHE                     = 0x100000\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x1000000\n\tO_NONBLOCK                    = 0x4\n\tO_NONE                        = 0x3\n\tO_NSHARE                      = 0x10000\n\tO_RAW                         = 0x100000000\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSHARE                      = 0x1000\n\tO_RSYNC                       = 0x200000\n\tO_SEARCH                      = 0x20\n\tO_SNAPSHOT                    = 0x40\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_TTY_INIT                    = 0x0\n\tO_WRONLY                      = 0x1\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x20000000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tPR_64BIT                      = 0x20\n\tPR_ADDR                       = 0x2\n\tPR_ARGEXT                     = 0x400\n\tPR_ATOMIC                     = 0x1\n\tPR_CONNREQUIRED               = 0x4\n\tPR_FASTHZ                     = 0x5\n\tPR_INP                        = 0x40\n\tPR_INTRLEVEL                  = 0x8000\n\tPR_MLS                        = 0x100\n\tPR_MLS_1_LABEL                = 0x200\n\tPR_NOEOR                      = 0x4000\n\tPR_RIGHTS                     = 0x10\n\tPR_SLOWHZ                     = 0x2\n\tPR_WANTRCVD                   = 0x8\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x7\n\tRLIMIT_NPROC                  = 0x9\n\tRLIMIT_RSS                    = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = 0x7fffffffffffffff\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x8\n\tRTAX_NETMASK                  = 0x2\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DOWNSTREAM                = 0x100\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTC_IA64                      = 0x3\n\tRTC_POWER                     = 0x1\n\tRTC_POWER_PC                  = 0x2\n\tRTF_ACTIVE_DGD                = 0x1000000\n\tRTF_BCE                       = 0x80000\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_BROADCAST                 = 0x400000\n\tRTF_BUL                       = 0x2000\n\tRTF_CLONE                     = 0x10000\n\tRTF_CLONED                    = 0x20000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_FREE_IN_PROG              = 0x4000000\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_LLINFO                    = 0x400\n\tRTF_LOCAL                     = 0x200000\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTICAST                 = 0x800000\n\tRTF_PERMANENT6                = 0x8000000\n\tRTF_PINNED                    = 0x100000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_PROTO3                    = 0x40000\n\tRTF_REJECT                    = 0x8\n\tRTF_SMALLMTU                  = 0x40000\n\tRTF_STATIC                    = 0x800\n\tRTF_STOPSRCH                  = 0x2000000\n\tRTF_UNREACHABLE               = 0x10000000\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_EXPIRE                    = 0xf\n\tRTM_GET                       = 0x4\n\tRTM_GETNEXT                   = 0x11\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_RTLOST                    = 0x10\n\tRTM_RTTUNIT                   = 0xf4240\n\tRTM_SAMEADDR                  = 0x12\n\tRTM_SET                       = 0x13\n\tRTM_VERSION                   = 0x2\n\tRTM_VERSION_GR                = 0x4\n\tRTM_VERSION_GR_COMPAT         = 0x3\n\tRTM_VERSION_POLICY            = 0x5\n\tRTM_VERSION_POLICY_EXT        = 0x6\n\tRTM_VERSION_POLICY_PRFN       = 0x7\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tRUSAGE_THREAD                 = 0x1\n\tSCM_RIGHTS                    = 0x1\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIGMAX64                      = 0xff\n\tSIGQUEUE_MAX                  = 0x20\n\tSIOCADDIFVIPA                 = 0x20006942\n\tSIOCADDMTU                    = -0x7ffb9690\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDNETID                  = -0x7fd796a9\n\tSIOCADDRT                     = -0x7fc78df6\n\tSIOCAIFADDR                   = -0x7fbf96e6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fb396e0\n\tSIOCDELIFVIPA                 = 0x20006943\n\tSIOCDELMTU                    = -0x7ffb968f\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELPMTU                   = -0x7fd78ff6\n\tSIOCDELRT                     = -0x7fc78df5\n\tSIOCDIFADDR                   = -0x7fd796e7\n\tSIOCDNETOPT                   = -0x3ffe9680\n\tSIOCDX25XLATE                 = -0x7fd7969b\n\tSIOCFIFADDR                   = -0x7fdf966d\n\tSIOCGARP                      = -0x3fb396da\n\tSIOCGETMTUS                   = 0x2000696f\n\tSIOCGETSGCNT                  = -0x3feb8acc\n\tSIOCGETVIFCNT                 = -0x3feb8acd\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fd796df\n\tSIOCGIFADDRS                  = 0x2000698c\n\tSIOCGIFBAUDRATE               = -0x3fdf9669\n\tSIOCGIFBRDADDR                = -0x3fd796dd\n\tSIOCGIFCONF                   = -0x3fef96bb\n\tSIOCGIFCONFGLOB               = -0x3fef9670\n\tSIOCGIFDSTADDR                = -0x3fd796de\n\tSIOCGIFFLAGS                  = -0x3fd796ef\n\tSIOCGIFGIDLIST                = 0x20006968\n\tSIOCGIFHWADDR                 = -0x3fab966b\n\tSIOCGIFMETRIC                 = -0x3fd796e9\n\tSIOCGIFMTU                    = -0x3fd796aa\n\tSIOCGIFNETMASK                = -0x3fd796db\n\tSIOCGIFOPTIONS                = -0x3fd796d6\n\tSIOCGISNO                     = -0x3fd79695\n\tSIOCGLOADF                    = -0x3ffb967e\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGNETOPT                   = -0x3ffe96a5\n\tSIOCGNETOPT1                  = -0x3fdf967f\n\tSIOCGNMTUS                    = 0x2000696e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSIZIFCONF                = 0x4004696a\n\tSIOCGSRCFILTER                = -0x3fe796cb\n\tSIOCGTUNEPHASE                = -0x3ffb9676\n\tSIOCGX25XLATE                 = -0x3fd7969c\n\tSIOCIFATTACH                  = -0x7fdf9699\n\tSIOCIFDETACH                  = -0x7fdf969a\n\tSIOCIFGETPKEY                 = -0x7fdf969b\n\tSIOCIF_ATM_DARP               = -0x7fdf9683\n\tSIOCIF_ATM_DUMPARP            = -0x7fdf9685\n\tSIOCIF_ATM_GARP               = -0x7fdf9682\n\tSIOCIF_ATM_IDLE               = -0x7fdf9686\n\tSIOCIF_ATM_SARP               = -0x7fdf9681\n\tSIOCIF_ATM_SNMPARP            = -0x7fdf9687\n\tSIOCIF_ATM_SVC                = -0x7fdf9684\n\tSIOCIF_ATM_UBR                = -0x7fdf9688\n\tSIOCIF_DEVHEALTH              = -0x7ffb966c\n\tSIOCIF_IB_ARP_INCOMP          = -0x7fdf9677\n\tSIOCIF_IB_ARP_TIMER           = -0x7fdf9678\n\tSIOCIF_IB_CLEAR_PINFO         = -0x3fdf966f\n\tSIOCIF_IB_DEL_ARP             = -0x7fdf967f\n\tSIOCIF_IB_DEL_PINFO           = -0x3fdf9670\n\tSIOCIF_IB_DUMP_ARP            = -0x7fdf9680\n\tSIOCIF_IB_GET_ARP             = -0x7fdf967e\n\tSIOCIF_IB_GET_INFO            = -0x3f879675\n\tSIOCIF_IB_GET_STATS           = -0x3f879672\n\tSIOCIF_IB_NOTIFY_ADDR_REM     = -0x3f87966a\n\tSIOCIF_IB_RESET_STATS         = -0x3f879671\n\tSIOCIF_IB_RESIZE_CQ           = -0x7fdf9679\n\tSIOCIF_IB_SET_ARP             = -0x7fdf967d\n\tSIOCIF_IB_SET_PKEY            = -0x7fdf967c\n\tSIOCIF_IB_SET_PORT            = -0x7fdf967b\n\tSIOCIF_IB_SET_QKEY            = -0x7fdf9676\n\tSIOCIF_IB_SET_QSIZE           = -0x7fdf967a\n\tSIOCLISTIFVIPA                = 0x20006944\n\tSIOCSARP                      = -0x7fb396e2\n\tSIOCSHIWAT                    = 0xffffffff80047300\n\tSIOCSIFADDR                   = -0x7fd796f4\n\tSIOCSIFADDRORI                = -0x7fdb9673\n\tSIOCSIFBRDADDR                = -0x7fd796ed\n\tSIOCSIFDSTADDR                = -0x7fd796f2\n\tSIOCSIFFLAGS                  = -0x7fd796f0\n\tSIOCSIFGIDLIST                = 0x20006969\n\tSIOCSIFMETRIC                 = -0x7fd796e8\n\tSIOCSIFMTU                    = -0x7fd796a8\n\tSIOCSIFNETDUMP                = -0x7fd796e4\n\tSIOCSIFNETMASK                = -0x7fd796ea\n\tSIOCSIFOPTIONS                = -0x7fd796d7\n\tSIOCSIFSUBCHAN                = -0x7fd796e5\n\tSIOCSISNO                     = -0x7fd79694\n\tSIOCSLOADF                    = -0x3ffb967d\n\tSIOCSLOWAT                    = 0xffffffff80047302\n\tSIOCSNETOPT                   = -0x7ffe96a6\n\tSIOCSPGRP                     = 0xffffffff80047308\n\tSIOCSX25XLATE                 = -0x7fd7969d\n\tSOCK_CONN_DGRAM               = 0x6\n\tSOCK_DGRAM                    = 0x2\n\tSOCK_RAW                      = 0x3\n\tSOCK_RDM                      = 0x4\n\tSOCK_SEQPACKET                = 0x5\n\tSOCK_STREAM                   = 0x1\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x400\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_AUDIT                      = 0x8000\n\tSO_BROADCAST                  = 0x20\n\tSO_CKSUMRECV                  = 0x800\n\tSO_DEBUG                      = 0x1\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROR                      = 0x1007\n\tSO_KEEPALIVE                  = 0x8\n\tSO_KERNACCEPT                 = 0x2000\n\tSO_LINGER                     = 0x80\n\tSO_NOMULTIPATH                = 0x4000\n\tSO_NOREUSEADDR                = 0x1000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PEERID                     = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_REUSEADDR                  = 0x4\n\tSO_REUSEPORT                  = 0x200\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_TIMESTAMPNS                = 0x100a\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_USE_IFBUFS                 = 0x400\n\tS_BANDURG                     = 0x400\n\tS_EMODFMT                     = 0x3c000000\n\tS_ENFMT                       = 0x400\n\tS_ERROR                       = 0x100\n\tS_HANGUP                      = 0x200\n\tS_HIPRI                       = 0x2\n\tS_ICRYPTO                     = 0x80000\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFIFO                       = 0x1000\n\tS_IFJOURNAL                   = 0x10000\n\tS_IFLNK                       = 0xa000\n\tS_IFMPX                       = 0x2200\n\tS_IFMT                        = 0xf000\n\tS_IFPDIR                      = 0x4000000\n\tS_IFPSDIR                     = 0x8000000\n\tS_IFPSSDIR                    = 0xc000000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_IFSYSEA                     = 0x30000000\n\tS_INPUT                       = 0x1\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_ITCB                        = 0x1000000\n\tS_ITP                         = 0x800000\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXACL                       = 0x2000000\n\tS_IXATTR                      = 0x40000\n\tS_IXGRP                       = 0x8\n\tS_IXINTERFACE                 = 0x100000\n\tS_IXMOD                       = 0x40000000\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tS_MSG                         = 0x8\n\tS_OUTPUT                      = 0x4\n\tS_RDBAND                      = 0x20\n\tS_RDNORM                      = 0x10\n\tS_RESERVED1                   = 0x20000\n\tS_RESERVED2                   = 0x200000\n\tS_RESERVED3                   = 0x400000\n\tS_RESERVED4                   = 0x80000000\n\tS_RESFMT1                     = 0x10000000\n\tS_RESFMT10                    = 0x34000000\n\tS_RESFMT11                    = 0x38000000\n\tS_RESFMT12                    = 0x3c000000\n\tS_RESFMT2                     = 0x14000000\n\tS_RESFMT3                     = 0x18000000\n\tS_RESFMT4                     = 0x1c000000\n\tS_RESFMT5                     = 0x20000000\n\tS_RESFMT6                     = 0x24000000\n\tS_RESFMT7                     = 0x28000000\n\tS_RESFMT8                     = 0x2c000000\n\tS_WRBAND                      = 0x80\n\tS_WRNORM                      = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x400\n\tTAB2                          = 0x800\n\tTAB3                          = 0xc00\n\tTABDLY                        = 0xc00\n\tTCFLSH                        = 0x540c\n\tTCGETA                        = 0x5405\n\tTCGETS                        = 0x5401\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800\n\tTCP_ACLADD                    = 0x23\n\tTCP_ACLBIND                   = 0x26\n\tTCP_ACLCLEAR                  = 0x22\n\tTCP_ACLDEL                    = 0x24\n\tTCP_ACLDENY                   = 0x8\n\tTCP_ACLFLUSH                  = 0x21\n\tTCP_ACLGID                    = 0x1\n\tTCP_ACLLS                     = 0x25\n\tTCP_ACLSUBNET                 = 0x4\n\tTCP_ACLUID                    = 0x2\n\tTCP_CWND_DF                   = 0x16\n\tTCP_CWND_IF                   = 0x15\n\tTCP_DELAY_ACK_FIN             = 0x2\n\tTCP_DELAY_ACK_SYN             = 0x1\n\tTCP_FASTNAME                  = 0x101080a\n\tTCP_KEEPCNT                   = 0x13\n\tTCP_KEEPIDLE                  = 0x11\n\tTCP_KEEPINTVL                 = 0x12\n\tTCP_LSPRIV                    = 0x29\n\tTCP_LUID                      = 0x20\n\tTCP_MAXBURST                  = 0x8\n\tTCP_MAXDF                     = 0x64\n\tTCP_MAXIF                     = 0x64\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MAXWIN                    = 0xffff\n\tTCP_MAXWINDOWSCALE            = 0xe\n\tTCP_MAX_SACK                  = 0x4\n\tTCP_MSS                       = 0x5b4\n\tTCP_NODELAY                   = 0x1\n\tTCP_NODELAYACK                = 0x14\n\tTCP_NOREDUCE_CWND_EXIT_FRXMT  = 0x19\n\tTCP_NOREDUCE_CWND_IN_FRXMT    = 0x18\n\tTCP_NOTENTER_SSTART           = 0x17\n\tTCP_OPT                       = 0x19\n\tTCP_RFC1323                   = 0x4\n\tTCP_SETPRIV                   = 0x27\n\tTCP_STDURG                    = 0x10\n\tTCP_TIMESTAMP_OPTLEN          = 0xc\n\tTCP_UNSETPRIV                 = 0x28\n\tTCSAFLUSH                     = 0x2\n\tTCSBRK                        = 0x5409\n\tTCSETA                        = 0x5406\n\tTCSETAF                       = 0x5408\n\tTCSETAW                       = 0x5407\n\tTCSETS                        = 0x5402\n\tTCSETSF                       = 0x5404\n\tTCSETSW                       = 0x5403\n\tTCXONC                        = 0x540b\n\tTIMER_ABSTIME                 = 0x3e7\n\tTIMER_MAX                     = 0x20\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x2000747a\n\tTIOCCDTR                      = 0x20007478\n\tTIOCCONS                      = 0xffffffff80047462\n\tTIOCEXCL                      = 0x2000740d\n\tTIOCFLUSH                     = 0xffffffff80047410\n\tTIOCGETC                      = 0x40067412\n\tTIOCGETD                      = 0x40047400\n\tTIOCGETP                      = 0x40067408\n\tTIOCGLTC                      = 0x40067474\n\tTIOCGPGRP                     = 0x40047477\n\tTIOCGSID                      = 0x40047448\n\tTIOCGSIZE                     = 0x40087468\n\tTIOCGWINSZ                    = 0x40087468\n\tTIOCHPCL                      = 0x20007402\n\tTIOCLBIC                      = 0xffffffff8004747e\n\tTIOCLBIS                      = 0xffffffff8004747f\n\tTIOCLGET                      = 0x4004747c\n\tTIOCLSET                      = 0xffffffff8004747d\n\tTIOCMBIC                      = 0xffffffff8004746b\n\tTIOCMBIS                      = 0xffffffff8004746c\n\tTIOCMGET                      = 0x4004746a\n\tTIOCMIWAIT                    = 0xffffffff80047464\n\tTIOCMODG                      = 0x40047403\n\tTIOCMODS                      = 0xffffffff80047404\n\tTIOCMSET                      = 0xffffffff8004746d\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x20007471\n\tTIOCNXCL                      = 0x2000740e\n\tTIOCOUTQ                      = 0x40047473\n\tTIOCPKT                       = 0xffffffff80047470\n\tTIOCPKT_DATA                  = 0x0\n\tTIOCPKT_DOSTOP                = 0x20\n\tTIOCPKT_FLUSHREAD             = 0x1\n\tTIOCPKT_FLUSHWRITE            = 0x2\n\tTIOCPKT_NOSTOP                = 0x10\n\tTIOCPKT_START                 = 0x8\n\tTIOCPKT_STOP                  = 0x4\n\tTIOCREMOTE                    = 0xffffffff80047469\n\tTIOCSBRK                      = 0x2000747b\n\tTIOCSDTR                      = 0x20007479\n\tTIOCSETC                      = 0xffffffff80067411\n\tTIOCSETD                      = 0xffffffff80047401\n\tTIOCSETN                      = 0xffffffff8006740a\n\tTIOCSETP                      = 0xffffffff80067409\n\tTIOCSLTC                      = 0xffffffff80067475\n\tTIOCSPGRP                     = 0xffffffff80047476\n\tTIOCSSIZE                     = 0xffffffff80087467\n\tTIOCSTART                     = 0x2000746e\n\tTIOCSTI                       = 0xffffffff80017472\n\tTIOCSTOP                      = 0x2000746f\n\tTIOCSWINSZ                    = 0xffffffff80087467\n\tTIOCUCNTL                     = 0xffffffff80047466\n\tTOSTOP                        = 0x10000\n\tUTIME_NOW                     = -0x2\n\tUTIME_OMIT                    = -0x3\n\tVDISCRD                       = 0xc\n\tVDSUSP                        = 0xa\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xe\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xb\n\tVSTART                        = 0x7\n\tVSTOP                         = 0x8\n\tVSTRT                         = 0x7\n\tVSUSP                         = 0x9\n\tVT0                           = 0x0\n\tVT1                           = 0x8000\n\tVTDELAY                       = 0x2000\n\tVTDLY                         = 0x8000\n\tVTIME                         = 0x5\n\tVWERSE                        = 0xd\n\tWPARSTART                     = 0x1\n\tWPARSTOP                      = 0x2\n\tWPARTTYNAME                   = \"Global\"\n\tXCASE                         = 0x4\n\tXTABS                         = 0xc00\n\t_FDATAFLUSH                   = 0x2000000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x43)\n\tEADDRNOTAVAIL   = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x42)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x38)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x78)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x75)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECLONEME        = syscall.Errno(0x52)\n\tECONNABORTED    = syscall.Errno(0x48)\n\tECONNREFUSED    = syscall.Errno(0x4f)\n\tECONNRESET      = syscall.Errno(0x49)\n\tECORRUPT        = syscall.Errno(0x59)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDESTADDREQ     = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x3a)\n\tEDIST           = syscall.Errno(0x35)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x58)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFORMAT         = syscall.Errno(0x30)\n\tEHOSTDOWN       = syscall.Errno(0x50)\n\tEHOSTUNREACH    = syscall.Errno(0x51)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x74)\n\tEINPROGRESS     = syscall.Errno(0x37)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x4b)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x55)\n\tEMEDIA          = syscall.Errno(0x6e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x3b)\n\tEMULTIHOP       = syscall.Errno(0x7d)\n\tENAMETOOLONG    = syscall.Errno(0x56)\n\tENETDOWN        = syscall.Errno(0x45)\n\tENETRESET       = syscall.Errno(0x47)\n\tENETUNREACH     = syscall.Errno(0x46)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x70)\n\tENOBUFS         = syscall.Errno(0x4a)\n\tENOCONNECT      = syscall.Errno(0x32)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x7a)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x31)\n\tENOLINK         = syscall.Errno(0x7e)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENOPROTOOPT     = syscall.Errno(0x3d)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x76)\n\tENOSTR          = syscall.Errno(0x7b)\n\tENOSYS          = syscall.Errno(0x6d)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x4c)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x11)\n\tENOTREADY       = syscall.Errno(0x2e)\n\tENOTRECOVERABLE = syscall.Errno(0x5e)\n\tENOTRUST        = syscall.Errno(0x72)\n\tENOTSOCK        = syscall.Errno(0x39)\n\tENOTSUP         = syscall.Errno(0x7c)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x40)\n\tEOVERFLOW       = syscall.Errno(0x7f)\n\tEOWNERDEAD      = syscall.Errno(0x5f)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x41)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x53)\n\tEPROTO          = syscall.Errno(0x79)\n\tEPROTONOSUPPORT = syscall.Errno(0x3e)\n\tEPROTOTYPE      = syscall.Errno(0x3c)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x5d)\n\tERESTART        = syscall.Errno(0x52)\n\tEROFS           = syscall.Errno(0x1e)\n\tESAD            = syscall.Errno(0x71)\n\tESHUTDOWN       = syscall.Errno(0x4d)\n\tESOCKTNOSUPPORT = syscall.Errno(0x3f)\n\tESOFT           = syscall.Errno(0x6f)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x34)\n\tESYSERROR       = syscall.Errno(0x5a)\n\tETIME           = syscall.Errno(0x77)\n\tETIMEDOUT       = syscall.Errno(0x4e)\n\tETOOMANYREFS    = syscall.Errno(0x73)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x54)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEWRPROTECT      = syscall.Errno(0x2f)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGAIO      = syscall.Signal(0x17)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGALRM1    = syscall.Signal(0x26)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCAPI     = syscall.Signal(0x31)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCLD      = syscall.Signal(0x14)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGCPUFAIL  = syscall.Signal(0x3b)\n\tSIGDANGER   = syscall.Signal(0x21)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGGRANT    = syscall.Signal(0x3c)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOINT    = syscall.Signal(0x10)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKAP      = syscall.Signal(0x3c)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGLOST     = syscall.Signal(0x6)\n\tSIGMAX      = syscall.Signal(0xff)\n\tSIGMAX32    = syscall.Signal(0x3f)\n\tSIGMIGRATE  = syscall.Signal(0x23)\n\tSIGMSG      = syscall.Signal(0x1b)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPOLL     = syscall.Signal(0x17)\n\tSIGPRE      = syscall.Signal(0x24)\n\tSIGPROF     = syscall.Signal(0x20)\n\tSIGPTY      = syscall.Signal(0x17)\n\tSIGPWR      = syscall.Signal(0x1d)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGRECONFIG = syscall.Signal(0x3a)\n\tSIGRETRACT  = syscall.Signal(0x3d)\n\tSIGSAK      = syscall.Signal(0x3f)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSOUND    = syscall.Signal(0x3e)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGSYSERROR = syscall.Signal(0x30)\n\tSIGTALRM    = syscall.Signal(0x26)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVIRT     = syscall.Signal(0x25)\n\tSIGVTALRM   = syscall.Signal(0x22)\n\tSIGWAITING  = syscall.Signal(0x27)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"ENOTEMPTY\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"not a typewriter\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock condition if locked\"},\n\t{46, \"ENOTREADY\", \"device not ready\"},\n\t{47, \"EWRPROTECT\", \"write-protected media\"},\n\t{48, \"EFORMAT\", \"unformatted or incompatible media\"},\n\t{49, \"ENOLCK\", \"no locks available\"},\n\t{50, \"ENOCONNECT\", \"cannot Establish Connection\"},\n\t{52, \"ESTALE\", \"missing file or filesystem\"},\n\t{53, \"EDIST\", \"requests blocked by Administrator\"},\n\t{55, \"EINPROGRESS\", \"operation now in progress\"},\n\t{56, \"EALREADY\", \"operation already in progress\"},\n\t{57, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{58, \"EDESTADDREQ\", \"destination address required\"},\n\t{59, \"EMSGSIZE\", \"message too long\"},\n\t{60, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{61, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{62, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{63, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{64, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{65, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{66, \"EAFNOSUPPORT\", \"addr family not supported by protocol\"},\n\t{67, \"EADDRINUSE\", \"address already in use\"},\n\t{68, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{69, \"ENETDOWN\", \"network is down\"},\n\t{70, \"ENETUNREACH\", \"network is unreachable\"},\n\t{71, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{72, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{73, \"ECONNRESET\", \"connection reset by peer\"},\n\t{74, \"ENOBUFS\", \"no buffer space available\"},\n\t{75, \"EISCONN\", \"socket is already connected\"},\n\t{76, \"ENOTCONN\", \"socket is not connected\"},\n\t{77, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{78, \"ETIMEDOUT\", \"connection timed out\"},\n\t{79, \"ECONNREFUSED\", \"connection refused\"},\n\t{80, \"EHOSTDOWN\", \"host is down\"},\n\t{81, \"EHOSTUNREACH\", \"no route to host\"},\n\t{82, \"ERESTART\", \"restart the system call\"},\n\t{83, \"EPROCLIM\", \"too many processes\"},\n\t{84, \"EUSERS\", \"too many users\"},\n\t{85, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{86, \"ENAMETOOLONG\", \"file name too long\"},\n\t{88, \"EDQUOT\", \"disk quota exceeded\"},\n\t{89, \"ECORRUPT\", \"invalid file system control data detected\"},\n\t{90, \"ESYSERROR\", \"for future use \"},\n\t{93, \"EREMOTE\", \"item is not local to host\"},\n\t{94, \"ENOTRECOVERABLE\", \"state not recoverable \"},\n\t{95, \"EOWNERDEAD\", \"previous owner died \"},\n\t{109, \"ENOSYS\", \"function not implemented\"},\n\t{110, \"EMEDIA\", \"media surface error\"},\n\t{111, \"ESOFT\", \"I/O completed, but needs relocation\"},\n\t{112, \"ENOATTR\", \"no attribute found\"},\n\t{113, \"ESAD\", \"security Authentication Denied\"},\n\t{114, \"ENOTRUST\", \"not a Trusted Program\"},\n\t{115, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{116, \"EILSEQ\", \"invalid wide character\"},\n\t{117, \"ECANCELED\", \"asynchronous I/O cancelled\"},\n\t{118, \"ENOSR\", \"out of STREAMS resources\"},\n\t{119, \"ETIME\", \"system call timed out\"},\n\t{120, \"EBADMSG\", \"next message has wrong type\"},\n\t{121, \"EPROTO\", \"error in protocol\"},\n\t{122, \"ENODATA\", \"no message on stream head read q\"},\n\t{123, \"ENOSTR\", \"fd not associated with a stream\"},\n\t{124, \"ENOTSUP\", \"unsupported attribute value\"},\n\t{125, \"EMULTIHOP\", \"multihop is not allowed\"},\n\t{126, \"ENOLINK\", \"the server link has been severed\"},\n\t{127, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"IOT/Abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible/complete\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{27, \"SIGMSG\", \"input device data\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGPWR\", \"power-failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPROF\", \"profiling timer expired\"},\n\t{33, \"SIGDANGER\", \"paging space low\"},\n\t{34, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{35, \"SIGMIGRATE\", \"signal 35\"},\n\t{36, \"SIGPRE\", \"signal 36\"},\n\t{37, \"SIGVIRT\", \"signal 37\"},\n\t{38, \"SIGTALRM\", \"signal 38\"},\n\t{39, \"SIGWAITING\", \"signal 39\"},\n\t{48, \"SIGSYSERROR\", \"signal 48\"},\n\t{49, \"SIGCAPI\", \"signal 49\"},\n\t{58, \"SIGRECONFIG\", \"signal 58\"},\n\t{59, \"SIGCPUFAIL\", \"CPU Failure Predicted\"},\n\t{60, \"SIGGRANT\", \"monitor mode granted\"},\n\t{61, \"SIGRETRACT\", \"monitor mode retracted\"},\n\t{62, \"SIGSOUND\", \"sound completed\"},\n\t{63, \"SIGMAX32\", \"secure attention\"},\n\t{255, \"SIGMAX\", \"signal 255\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && darwin\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                            = 0x10\n\tAF_CCITT                                = 0xa\n\tAF_CHAOS                                = 0x5\n\tAF_CNT                                  = 0x15\n\tAF_COIP                                 = 0x14\n\tAF_DATAKIT                              = 0x9\n\tAF_DECnet                               = 0xc\n\tAF_DLI                                  = 0xd\n\tAF_E164                                 = 0x1c\n\tAF_ECMA                                 = 0x8\n\tAF_HYLINK                               = 0xf\n\tAF_IEEE80211                            = 0x25\n\tAF_IMPLINK                              = 0x3\n\tAF_INET                                 = 0x2\n\tAF_INET6                                = 0x1e\n\tAF_IPX                                  = 0x17\n\tAF_ISDN                                 = 0x1c\n\tAF_ISO                                  = 0x7\n\tAF_LAT                                  = 0xe\n\tAF_LINK                                 = 0x12\n\tAF_LOCAL                                = 0x1\n\tAF_MAX                                  = 0x29\n\tAF_NATM                                 = 0x1f\n\tAF_NDRV                                 = 0x1b\n\tAF_NETBIOS                              = 0x21\n\tAF_NS                                   = 0x6\n\tAF_OSI                                  = 0x7\n\tAF_PPP                                  = 0x22\n\tAF_PUP                                  = 0x4\n\tAF_RESERVED_36                          = 0x24\n\tAF_ROUTE                                = 0x11\n\tAF_SIP                                  = 0x18\n\tAF_SNA                                  = 0xb\n\tAF_SYSTEM                               = 0x20\n\tAF_SYS_CONTROL                          = 0x2\n\tAF_UNIX                                 = 0x1\n\tAF_UNSPEC                               = 0x0\n\tAF_UTUN                                 = 0x26\n\tAF_VSOCK                                = 0x28\n\tALTWERASE                               = 0x200\n\tATTR_BIT_MAP_COUNT                      = 0x5\n\tATTR_CMN_ACCESSMASK                     = 0x20000\n\tATTR_CMN_ACCTIME                        = 0x1000\n\tATTR_CMN_ADDEDTIME                      = 0x10000000\n\tATTR_CMN_BKUPTIME                       = 0x2000\n\tATTR_CMN_CHGTIME                        = 0x800\n\tATTR_CMN_CRTIME                         = 0x200\n\tATTR_CMN_DATA_PROTECT_FLAGS             = 0x40000000\n\tATTR_CMN_DEVID                          = 0x2\n\tATTR_CMN_DOCUMENT_ID                    = 0x100000\n\tATTR_CMN_ERROR                          = 0x20000000\n\tATTR_CMN_EXTENDED_SECURITY              = 0x400000\n\tATTR_CMN_FILEID                         = 0x2000000\n\tATTR_CMN_FLAGS                          = 0x40000\n\tATTR_CMN_FNDRINFO                       = 0x4000\n\tATTR_CMN_FSID                           = 0x4\n\tATTR_CMN_FULLPATH                       = 0x8000000\n\tATTR_CMN_GEN_COUNT                      = 0x80000\n\tATTR_CMN_GRPID                          = 0x10000\n\tATTR_CMN_GRPUUID                        = 0x1000000\n\tATTR_CMN_MODTIME                        = 0x400\n\tATTR_CMN_NAME                           = 0x1\n\tATTR_CMN_NAMEDATTRCOUNT                 = 0x80000\n\tATTR_CMN_NAMEDATTRLIST                  = 0x100000\n\tATTR_CMN_OBJID                          = 0x20\n\tATTR_CMN_OBJPERMANENTID                 = 0x40\n\tATTR_CMN_OBJTAG                         = 0x10\n\tATTR_CMN_OBJTYPE                        = 0x8\n\tATTR_CMN_OWNERID                        = 0x8000\n\tATTR_CMN_PARENTID                       = 0x4000000\n\tATTR_CMN_PAROBJID                       = 0x80\n\tATTR_CMN_RETURNED_ATTRS                 = 0x80000000\n\tATTR_CMN_SCRIPT                         = 0x100\n\tATTR_CMN_SETMASK                        = 0x51c7ff00\n\tATTR_CMN_USERACCESS                     = 0x200000\n\tATTR_CMN_UUID                           = 0x800000\n\tATTR_CMN_VALIDMASK                      = 0xffffffff\n\tATTR_CMN_VOLSETMASK                     = 0x6700\n\tATTR_FILE_ALLOCSIZE                     = 0x4\n\tATTR_FILE_CLUMPSIZE                     = 0x10\n\tATTR_FILE_DATAALLOCSIZE                 = 0x400\n\tATTR_FILE_DATAEXTENTS                   = 0x800\n\tATTR_FILE_DATALENGTH                    = 0x200\n\tATTR_FILE_DEVTYPE                       = 0x20\n\tATTR_FILE_FILETYPE                      = 0x40\n\tATTR_FILE_FORKCOUNT                     = 0x80\n\tATTR_FILE_FORKLIST                      = 0x100\n\tATTR_FILE_IOBLOCKSIZE                   = 0x8\n\tATTR_FILE_LINKCOUNT                     = 0x1\n\tATTR_FILE_RSRCALLOCSIZE                 = 0x2000\n\tATTR_FILE_RSRCEXTENTS                   = 0x4000\n\tATTR_FILE_RSRCLENGTH                    = 0x1000\n\tATTR_FILE_SETMASK                       = 0x20\n\tATTR_FILE_TOTALSIZE                     = 0x2\n\tATTR_FILE_VALIDMASK                     = 0x37ff\n\tATTR_VOL_ALLOCATIONCLUMP                = 0x40\n\tATTR_VOL_ATTRIBUTES                     = 0x40000000\n\tATTR_VOL_CAPABILITIES                   = 0x20000\n\tATTR_VOL_DIRCOUNT                       = 0x400\n\tATTR_VOL_ENCODINGSUSED                  = 0x10000\n\tATTR_VOL_FILECOUNT                      = 0x200\n\tATTR_VOL_FSTYPE                         = 0x1\n\tATTR_VOL_INFO                           = 0x80000000\n\tATTR_VOL_IOBLOCKSIZE                    = 0x80\n\tATTR_VOL_MAXOBJCOUNT                    = 0x800\n\tATTR_VOL_MINALLOCATION                  = 0x20\n\tATTR_VOL_MOUNTEDDEVICE                  = 0x8000\n\tATTR_VOL_MOUNTFLAGS                     = 0x4000\n\tATTR_VOL_MOUNTPOINT                     = 0x1000\n\tATTR_VOL_NAME                           = 0x2000\n\tATTR_VOL_OBJCOUNT                       = 0x100\n\tATTR_VOL_QUOTA_SIZE                     = 0x10000000\n\tATTR_VOL_RESERVED_SIZE                  = 0x20000000\n\tATTR_VOL_SETMASK                        = 0x80002000\n\tATTR_VOL_SIGNATURE                      = 0x2\n\tATTR_VOL_SIZE                           = 0x4\n\tATTR_VOL_SPACEAVAIL                     = 0x10\n\tATTR_VOL_SPACEFREE                      = 0x8\n\tATTR_VOL_SPACEUSED                      = 0x800000\n\tATTR_VOL_UUID                           = 0x40000\n\tATTR_VOL_VALIDMASK                      = 0xf087ffff\n\tB0                                      = 0x0\n\tB110                                    = 0x6e\n\tB115200                                 = 0x1c200\n\tB1200                                   = 0x4b0\n\tB134                                    = 0x86\n\tB14400                                  = 0x3840\n\tB150                                    = 0x96\n\tB1800                                   = 0x708\n\tB19200                                  = 0x4b00\n\tB200                                    = 0xc8\n\tB230400                                 = 0x38400\n\tB2400                                   = 0x960\n\tB28800                                  = 0x7080\n\tB300                                    = 0x12c\n\tB38400                                  = 0x9600\n\tB4800                                   = 0x12c0\n\tB50                                     = 0x32\n\tB57600                                  = 0xe100\n\tB600                                    = 0x258\n\tB7200                                   = 0x1c20\n\tB75                                     = 0x4b\n\tB76800                                  = 0x12c00\n\tB9600                                   = 0x2580\n\tBIOCFLUSH                               = 0x20004268\n\tBIOCGBLEN                               = 0x40044266\n\tBIOCGDLT                                = 0x4004426a\n\tBIOCGDLTLIST                            = 0xc00c4279\n\tBIOCGETIF                               = 0x4020426b\n\tBIOCGHDRCMPLT                           = 0x40044274\n\tBIOCGRSIG                               = 0x40044272\n\tBIOCGRTIMEOUT                           = 0x4010426e\n\tBIOCGSEESENT                            = 0x40044276\n\tBIOCGSTATS                              = 0x4008426f\n\tBIOCIMMEDIATE                           = 0x80044270\n\tBIOCPROMISC                             = 0x20004269\n\tBIOCSBLEN                               = 0xc0044266\n\tBIOCSDLT                                = 0x80044278\n\tBIOCSETF                                = 0x80104267\n\tBIOCSETFNR                              = 0x8010427e\n\tBIOCSETIF                               = 0x8020426c\n\tBIOCSHDRCMPLT                           = 0x80044275\n\tBIOCSRSIG                               = 0x80044273\n\tBIOCSRTIMEOUT                           = 0x8010426d\n\tBIOCSSEESENT                            = 0x80044277\n\tBIOCVERSION                             = 0x40044271\n\tBPF_A                                   = 0x10\n\tBPF_ABS                                 = 0x20\n\tBPF_ADD                                 = 0x0\n\tBPF_ALIGNMENT                           = 0x4\n\tBPF_ALU                                 = 0x4\n\tBPF_AND                                 = 0x50\n\tBPF_B                                   = 0x10\n\tBPF_DIV                                 = 0x30\n\tBPF_H                                   = 0x8\n\tBPF_IMM                                 = 0x0\n\tBPF_IND                                 = 0x40\n\tBPF_JA                                  = 0x0\n\tBPF_JEQ                                 = 0x10\n\tBPF_JGE                                 = 0x30\n\tBPF_JGT                                 = 0x20\n\tBPF_JMP                                 = 0x5\n\tBPF_JSET                                = 0x40\n\tBPF_K                                   = 0x0\n\tBPF_LD                                  = 0x0\n\tBPF_LDX                                 = 0x1\n\tBPF_LEN                                 = 0x80\n\tBPF_LSH                                 = 0x60\n\tBPF_MAJOR_VERSION                       = 0x1\n\tBPF_MAXBUFSIZE                          = 0x80000\n\tBPF_MAXINSNS                            = 0x200\n\tBPF_MEM                                 = 0x60\n\tBPF_MEMWORDS                            = 0x10\n\tBPF_MINBUFSIZE                          = 0x20\n\tBPF_MINOR_VERSION                       = 0x1\n\tBPF_MISC                                = 0x7\n\tBPF_MSH                                 = 0xa0\n\tBPF_MUL                                 = 0x20\n\tBPF_NEG                                 = 0x80\n\tBPF_OR                                  = 0x40\n\tBPF_RELEASE                             = 0x30bb6\n\tBPF_RET                                 = 0x6\n\tBPF_RSH                                 = 0x70\n\tBPF_ST                                  = 0x2\n\tBPF_STX                                 = 0x3\n\tBPF_SUB                                 = 0x10\n\tBPF_TAX                                 = 0x0\n\tBPF_TXA                                 = 0x80\n\tBPF_W                                   = 0x0\n\tBPF_X                                   = 0x8\n\tBRKINT                                  = 0x2\n\tBS0                                     = 0x0\n\tBS1                                     = 0x8000\n\tBSDLY                                   = 0x8000\n\tCFLUSH                                  = 0xf\n\tCLOCAL                                  = 0x8000\n\tCLOCK_MONOTONIC                         = 0x6\n\tCLOCK_MONOTONIC_RAW                     = 0x4\n\tCLOCK_MONOTONIC_RAW_APPROX              = 0x5\n\tCLOCK_PROCESS_CPUTIME_ID                = 0xc\n\tCLOCK_REALTIME                          = 0x0\n\tCLOCK_THREAD_CPUTIME_ID                 = 0x10\n\tCLOCK_UPTIME_RAW                        = 0x8\n\tCLOCK_UPTIME_RAW_APPROX                 = 0x9\n\tCLONE_NOFOLLOW                          = 0x1\n\tCLONE_NOOWNERCOPY                       = 0x2\n\tCR0                                     = 0x0\n\tCR1                                     = 0x1000\n\tCR2                                     = 0x2000\n\tCR3                                     = 0x3000\n\tCRDLY                                   = 0x3000\n\tCREAD                                   = 0x800\n\tCRTSCTS                                 = 0x30000\n\tCS5                                     = 0x0\n\tCS6                                     = 0x100\n\tCS7                                     = 0x200\n\tCS8                                     = 0x300\n\tCSIZE                                   = 0x300\n\tCSTART                                  = 0x11\n\tCSTATUS                                 = 0x14\n\tCSTOP                                   = 0x13\n\tCSTOPB                                  = 0x400\n\tCSUSP                                   = 0x1a\n\tCTLIOCGINFO                             = 0xc0644e03\n\tCTL_HW                                  = 0x6\n\tCTL_KERN                                = 0x1\n\tCTL_MAXNAME                             = 0xc\n\tCTL_NET                                 = 0x4\n\tDLT_A429                                = 0xb8\n\tDLT_A653_ICM                            = 0xb9\n\tDLT_AIRONET_HEADER                      = 0x78\n\tDLT_AOS                                 = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394              = 0x8a\n\tDLT_ARCNET                              = 0x7\n\tDLT_ARCNET_LINUX                        = 0x81\n\tDLT_ATM_CLIP                            = 0x13\n\tDLT_ATM_RFC1483                         = 0xb\n\tDLT_AURORA                              = 0x7e\n\tDLT_AX25                                = 0x3\n\tDLT_AX25_KISS                           = 0xca\n\tDLT_BACNET_MS_TP                        = 0xa5\n\tDLT_BLUETOOTH_HCI_H4                    = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR          = 0xc9\n\tDLT_CAN20B                              = 0xbe\n\tDLT_CAN_SOCKETCAN                       = 0xe3\n\tDLT_CHAOS                               = 0x5\n\tDLT_CHDLC                               = 0x68\n\tDLT_CISCO_IOS                           = 0x76\n\tDLT_C_HDLC                              = 0x68\n\tDLT_C_HDLC_WITH_DIR                     = 0xcd\n\tDLT_DBUS                                = 0xe7\n\tDLT_DECT                                = 0xdd\n\tDLT_DOCSIS                              = 0x8f\n\tDLT_DVB_CI                              = 0xeb\n\tDLT_ECONET                              = 0x73\n\tDLT_EN10MB                              = 0x1\n\tDLT_EN3MB                               = 0x2\n\tDLT_ENC                                 = 0x6d\n\tDLT_ERF                                 = 0xc5\n\tDLT_ERF_ETH                             = 0xaf\n\tDLT_ERF_POS                             = 0xb0\n\tDLT_FC_2                                = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS              = 0xe1\n\tDLT_FDDI                                = 0xa\n\tDLT_FLEXRAY                             = 0xd2\n\tDLT_FRELAY                              = 0x6b\n\tDLT_FRELAY_WITH_DIR                     = 0xce\n\tDLT_GCOM_SERIAL                         = 0xad\n\tDLT_GCOM_T1E1                           = 0xac\n\tDLT_GPF_F                               = 0xab\n\tDLT_GPF_T                               = 0xaa\n\tDLT_GPRS_LLC                            = 0xa9\n\tDLT_GSMTAP_ABIS                         = 0xda\n\tDLT_GSMTAP_UM                           = 0xd9\n\tDLT_HHDLC                               = 0x79\n\tDLT_IBM_SN                              = 0x92\n\tDLT_IBM_SP                              = 0x91\n\tDLT_IEEE802                             = 0x6\n\tDLT_IEEE802_11                          = 0x69\n\tDLT_IEEE802_11_RADIO                    = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS                = 0xa3\n\tDLT_IEEE802_15_4                        = 0xc3\n\tDLT_IEEE802_15_4_LINUX                  = 0xbf\n\tDLT_IEEE802_15_4_NOFCS                  = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY             = 0xd7\n\tDLT_IEEE802_16_MAC_CPS                  = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO            = 0xc1\n\tDLT_IPFILTER                            = 0x74\n\tDLT_IPMB                                = 0xc7\n\tDLT_IPMB_LINUX                          = 0xd1\n\tDLT_IPNET                               = 0xe2\n\tDLT_IPOIB                               = 0xf2\n\tDLT_IPV4                                = 0xe4\n\tDLT_IPV6                                = 0xe5\n\tDLT_IP_OVER_FC                          = 0x7a\n\tDLT_JUNIPER_ATM1                        = 0x89\n\tDLT_JUNIPER_ATM2                        = 0x87\n\tDLT_JUNIPER_ATM_CEMIC                   = 0xee\n\tDLT_JUNIPER_CHDLC                       = 0xb5\n\tDLT_JUNIPER_ES                          = 0x84\n\tDLT_JUNIPER_ETHER                       = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL                = 0xea\n\tDLT_JUNIPER_FRELAY                      = 0xb4\n\tDLT_JUNIPER_GGSN                        = 0x85\n\tDLT_JUNIPER_ISM                         = 0xc2\n\tDLT_JUNIPER_MFR                         = 0x86\n\tDLT_JUNIPER_MLFR                        = 0x83\n\tDLT_JUNIPER_MLPPP                       = 0x82\n\tDLT_JUNIPER_MONITOR                     = 0xa4\n\tDLT_JUNIPER_PIC_PEER                    = 0xae\n\tDLT_JUNIPER_PPP                         = 0xb3\n\tDLT_JUNIPER_PPPOE                       = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM                   = 0xa8\n\tDLT_JUNIPER_SERVICES                    = 0x88\n\tDLT_JUNIPER_SRX_E2E                     = 0xe9\n\tDLT_JUNIPER_ST                          = 0xc8\n\tDLT_JUNIPER_VP                          = 0xb7\n\tDLT_JUNIPER_VS                          = 0xe8\n\tDLT_LAPB_WITH_DIR                       = 0xcf\n\tDLT_LAPD                                = 0xcb\n\tDLT_LIN                                 = 0xd4\n\tDLT_LINUX_EVDEV                         = 0xd8\n\tDLT_LINUX_IRDA                          = 0x90\n\tDLT_LINUX_LAPD                          = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION             = 0xa6\n\tDLT_LINUX_SLL                           = 0x71\n\tDLT_LOOP                                = 0x6c\n\tDLT_LTALK                               = 0x72\n\tDLT_MATCHING_MAX                        = 0x10a\n\tDLT_MATCHING_MIN                        = 0x68\n\tDLT_MFR                                 = 0xb6\n\tDLT_MOST                                = 0xd3\n\tDLT_MPEG_2_TS                           = 0xf3\n\tDLT_MPLS                                = 0xdb\n\tDLT_MTP2                                = 0x8c\n\tDLT_MTP2_WITH_PHDR                      = 0x8b\n\tDLT_MTP3                                = 0x8d\n\tDLT_MUX27010                            = 0xec\n\tDLT_NETANALYZER                         = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT             = 0xf1\n\tDLT_NFC_LLCP                            = 0xf5\n\tDLT_NFLOG                               = 0xef\n\tDLT_NG40                                = 0xf4\n\tDLT_NULL                                = 0x0\n\tDLT_PCI_EXP                             = 0x7d\n\tDLT_PFLOG                               = 0x75\n\tDLT_PFSYNC                              = 0x12\n\tDLT_PPI                                 = 0xc0\n\tDLT_PPP                                 = 0x9\n\tDLT_PPP_BSDOS                           = 0x10\n\tDLT_PPP_ETHER                           = 0x33\n\tDLT_PPP_PPPD                            = 0xa6\n\tDLT_PPP_SERIAL                          = 0x32\n\tDLT_PPP_WITH_DIR                        = 0xcc\n\tDLT_PPP_WITH_DIRECTION                  = 0xa6\n\tDLT_PRISM_HEADER                        = 0x77\n\tDLT_PRONET                              = 0x4\n\tDLT_RAIF1                               = 0xc6\n\tDLT_RAW                                 = 0xc\n\tDLT_RIO                                 = 0x7c\n\tDLT_SCCP                                = 0x8e\n\tDLT_SITA                                = 0xc4\n\tDLT_SLIP                                = 0x8\n\tDLT_SLIP_BSDOS                          = 0xf\n\tDLT_STANAG_5066_D_PDU                   = 0xed\n\tDLT_SUNATM                              = 0x7b\n\tDLT_SYMANTEC_FIREWALL                   = 0x63\n\tDLT_TZSP                                = 0x80\n\tDLT_USB                                 = 0xba\n\tDLT_USB_DARWIN                          = 0x10a\n\tDLT_USB_LINUX                           = 0xbd\n\tDLT_USB_LINUX_MMAPPED                   = 0xdc\n\tDLT_USER0                               = 0x93\n\tDLT_USER1                               = 0x94\n\tDLT_USER10                              = 0x9d\n\tDLT_USER11                              = 0x9e\n\tDLT_USER12                              = 0x9f\n\tDLT_USER13                              = 0xa0\n\tDLT_USER14                              = 0xa1\n\tDLT_USER15                              = 0xa2\n\tDLT_USER2                               = 0x95\n\tDLT_USER3                               = 0x96\n\tDLT_USER4                               = 0x97\n\tDLT_USER5                               = 0x98\n\tDLT_USER6                               = 0x99\n\tDLT_USER7                               = 0x9a\n\tDLT_USER8                               = 0x9b\n\tDLT_USER9                               = 0x9c\n\tDLT_WIHART                              = 0xdf\n\tDLT_X2E_SERIAL                          = 0xd5\n\tDLT_X2E_XORAYA                          = 0xd6\n\tDT_BLK                                  = 0x6\n\tDT_CHR                                  = 0x2\n\tDT_DIR                                  = 0x4\n\tDT_FIFO                                 = 0x1\n\tDT_LNK                                  = 0xa\n\tDT_REG                                  = 0x8\n\tDT_SOCK                                 = 0xc\n\tDT_UNKNOWN                              = 0x0\n\tDT_WHT                                  = 0xe\n\tECHO                                    = 0x8\n\tECHOCTL                                 = 0x40\n\tECHOE                                   = 0x2\n\tECHOK                                   = 0x4\n\tECHOKE                                  = 0x1\n\tECHONL                                  = 0x10\n\tECHOPRT                                 = 0x20\n\tEVFILT_AIO                              = -0x3\n\tEVFILT_EXCEPT                           = -0xf\n\tEVFILT_FS                               = -0x9\n\tEVFILT_MACHPORT                         = -0x8\n\tEVFILT_PROC                             = -0x5\n\tEVFILT_READ                             = -0x1\n\tEVFILT_SIGNAL                           = -0x6\n\tEVFILT_SYSCOUNT                         = 0x11\n\tEVFILT_THREADMARKER                     = 0x11\n\tEVFILT_TIMER                            = -0x7\n\tEVFILT_USER                             = -0xa\n\tEVFILT_VM                               = -0xc\n\tEVFILT_VNODE                            = -0x4\n\tEVFILT_WRITE                            = -0x2\n\tEV_ADD                                  = 0x1\n\tEV_CLEAR                                = 0x20\n\tEV_DELETE                               = 0x2\n\tEV_DISABLE                              = 0x8\n\tEV_DISPATCH                             = 0x80\n\tEV_DISPATCH2                            = 0x180\n\tEV_ENABLE                               = 0x4\n\tEV_EOF                                  = 0x8000\n\tEV_ERROR                                = 0x4000\n\tEV_FLAG0                                = 0x1000\n\tEV_FLAG1                                = 0x2000\n\tEV_ONESHOT                              = 0x10\n\tEV_OOBAND                               = 0x2000\n\tEV_POLL                                 = 0x1000\n\tEV_RECEIPT                              = 0x40\n\tEV_SYSFLAGS                             = 0xf000\n\tEV_UDATA_SPECIFIC                       = 0x100\n\tEV_VANISHED                             = 0x200\n\tEXTA                                    = 0x4b00\n\tEXTB                                    = 0x9600\n\tEXTPROC                                 = 0x800\n\tFD_CLOEXEC                              = 0x1\n\tFD_SETSIZE                              = 0x400\n\tFF0                                     = 0x0\n\tFF1                                     = 0x4000\n\tFFDLY                                   = 0x4000\n\tFLUSHO                                  = 0x800000\n\tFSOPT_ATTR_CMN_EXTENDED                 = 0x20\n\tFSOPT_NOFOLLOW                          = 0x1\n\tFSOPT_NOINMEMUPDATE                     = 0x2\n\tFSOPT_PACK_INVAL_ATTRS                  = 0x8\n\tFSOPT_REPORT_FULLSIZE                   = 0x4\n\tFSOPT_RETURN_REALDEV                    = 0x200\n\tF_ADDFILESIGS                           = 0x3d\n\tF_ADDFILESIGS_FOR_DYLD_SIM              = 0x53\n\tF_ADDFILESIGS_INFO                      = 0x67\n\tF_ADDFILESIGS_RETURN                    = 0x61\n\tF_ADDFILESUPPL                          = 0x68\n\tF_ADDSIGS                               = 0x3b\n\tF_ALLOCATEALL                           = 0x4\n\tF_ALLOCATECONTIG                        = 0x2\n\tF_BARRIERFSYNC                          = 0x55\n\tF_CHECK_LV                              = 0x62\n\tF_CHKCLEAN                              = 0x29\n\tF_DUPFD                                 = 0x0\n\tF_DUPFD_CLOEXEC                         = 0x43\n\tF_FINDSIGS                              = 0x4e\n\tF_FLUSH_DATA                            = 0x28\n\tF_FREEZE_FS                             = 0x35\n\tF_FULLFSYNC                             = 0x33\n\tF_GETCODEDIR                            = 0x48\n\tF_GETFD                                 = 0x1\n\tF_GETFL                                 = 0x3\n\tF_GETLK                                 = 0x7\n\tF_GETLKPID                              = 0x42\n\tF_GETNOSIGPIPE                          = 0x4a\n\tF_GETOWN                                = 0x5\n\tF_GETPATH                               = 0x32\n\tF_GETPATH_MTMINFO                       = 0x47\n\tF_GETPATH_NOFIRMLINK                    = 0x66\n\tF_GETPROTECTIONCLASS                    = 0x3f\n\tF_GETPROTECTIONLEVEL                    = 0x4d\n\tF_GETSIGSINFO                           = 0x69\n\tF_GLOBAL_NOCACHE                        = 0x37\n\tF_LOG2PHYS                              = 0x31\n\tF_LOG2PHYS_EXT                          = 0x41\n\tF_NOCACHE                               = 0x30\n\tF_NODIRECT                              = 0x3e\n\tF_OK                                    = 0x0\n\tF_PATHPKG_CHECK                         = 0x34\n\tF_PEOFPOSMODE                           = 0x3\n\tF_PREALLOCATE                           = 0x2a\n\tF_PUNCHHOLE                             = 0x63\n\tF_RDADVISE                              = 0x2c\n\tF_RDAHEAD                               = 0x2d\n\tF_RDLCK                                 = 0x1\n\tF_SETBACKINGSTORE                       = 0x46\n\tF_SETFD                                 = 0x2\n\tF_SETFL                                 = 0x4\n\tF_SETLK                                 = 0x8\n\tF_SETLKW                                = 0x9\n\tF_SETLKWTIMEOUT                         = 0xa\n\tF_SETNOSIGPIPE                          = 0x49\n\tF_SETOWN                                = 0x6\n\tF_SETPROTECTIONCLASS                    = 0x40\n\tF_SETSIZE                               = 0x2b\n\tF_SINGLE_WRITER                         = 0x4c\n\tF_SPECULATIVE_READ                      = 0x65\n\tF_THAW_FS                               = 0x36\n\tF_TRANSCODEKEY                          = 0x4b\n\tF_TRIM_ACTIVE_FILE                      = 0x64\n\tF_UNLCK                                 = 0x2\n\tF_VOLPOSMODE                            = 0x4\n\tF_WRLCK                                 = 0x3\n\tHUPCL                                   = 0x4000\n\tHW_MACHINE                              = 0x1\n\tICANON                                  = 0x100\n\tICMP6_FILTER                            = 0x12\n\tICRNL                                   = 0x100\n\tIEXTEN                                  = 0x400\n\tIFF_ALLMULTI                            = 0x200\n\tIFF_ALTPHYS                             = 0x4000\n\tIFF_BROADCAST                           = 0x2\n\tIFF_DEBUG                               = 0x4\n\tIFF_LINK0                               = 0x1000\n\tIFF_LINK1                               = 0x2000\n\tIFF_LINK2                               = 0x4000\n\tIFF_LOOPBACK                            = 0x8\n\tIFF_MULTICAST                           = 0x8000\n\tIFF_NOARP                               = 0x80\n\tIFF_NOTRAILERS                          = 0x20\n\tIFF_OACTIVE                             = 0x400\n\tIFF_POINTOPOINT                         = 0x10\n\tIFF_PROMISC                             = 0x100\n\tIFF_RUNNING                             = 0x40\n\tIFF_SIMPLEX                             = 0x800\n\tIFF_UP                                  = 0x1\n\tIFNAMSIZ                                = 0x10\n\tIFT_1822                                = 0x2\n\tIFT_6LOWPAN                             = 0x40\n\tIFT_AAL5                                = 0x31\n\tIFT_ARCNET                              = 0x23\n\tIFT_ARCNETPLUS                          = 0x24\n\tIFT_ATM                                 = 0x25\n\tIFT_BRIDGE                              = 0xd1\n\tIFT_CARP                                = 0xf8\n\tIFT_CELLULAR                            = 0xff\n\tIFT_CEPT                                = 0x13\n\tIFT_DS3                                 = 0x1e\n\tIFT_ENC                                 = 0xf4\n\tIFT_EON                                 = 0x19\n\tIFT_ETHER                               = 0x6\n\tIFT_FAITH                               = 0x38\n\tIFT_FDDI                                = 0xf\n\tIFT_FRELAY                              = 0x20\n\tIFT_FRELAYDCE                           = 0x2c\n\tIFT_GIF                                 = 0x37\n\tIFT_HDH1822                             = 0x3\n\tIFT_HIPPI                               = 0x2f\n\tIFT_HSSI                                = 0x2e\n\tIFT_HY                                  = 0xe\n\tIFT_IEEE1394                            = 0x90\n\tIFT_IEEE8023ADLAG                       = 0x88\n\tIFT_ISDNBASIC                           = 0x14\n\tIFT_ISDNPRIMARY                         = 0x15\n\tIFT_ISO88022LLC                         = 0x29\n\tIFT_ISO88023                            = 0x7\n\tIFT_ISO88024                            = 0x8\n\tIFT_ISO88025                            = 0x9\n\tIFT_ISO88026                            = 0xa\n\tIFT_L2VLAN                              = 0x87\n\tIFT_LAPB                                = 0x10\n\tIFT_LOCALTALK                           = 0x2a\n\tIFT_LOOP                                = 0x18\n\tIFT_MIOX25                              = 0x26\n\tIFT_MODEM                               = 0x30\n\tIFT_NSIP                                = 0x1b\n\tIFT_OTHER                               = 0x1\n\tIFT_P10                                 = 0xc\n\tIFT_P80                                 = 0xd\n\tIFT_PARA                                = 0x22\n\tIFT_PDP                                 = 0xff\n\tIFT_PFLOG                               = 0xf5\n\tIFT_PFSYNC                              = 0xf6\n\tIFT_PKTAP                               = 0xfe\n\tIFT_PPP                                 = 0x17\n\tIFT_PROPMUX                             = 0x36\n\tIFT_PROPVIRTUAL                         = 0x35\n\tIFT_PTPSERIAL                           = 0x16\n\tIFT_RS232                               = 0x21\n\tIFT_SDLC                                = 0x11\n\tIFT_SIP                                 = 0x1f\n\tIFT_SLIP                                = 0x1c\n\tIFT_SMDSDXI                             = 0x2b\n\tIFT_SMDSICIP                            = 0x34\n\tIFT_SONET                               = 0x27\n\tIFT_SONETPATH                           = 0x32\n\tIFT_SONETVT                             = 0x33\n\tIFT_STARLAN                             = 0xb\n\tIFT_STF                                 = 0x39\n\tIFT_T1                                  = 0x12\n\tIFT_ULTRA                               = 0x1d\n\tIFT_V35                                 = 0x2d\n\tIFT_X25                                 = 0x5\n\tIFT_X25DDN                              = 0x4\n\tIFT_X25PLE                              = 0x28\n\tIFT_XETHER                              = 0x1a\n\tIGNBRK                                  = 0x1\n\tIGNCR                                   = 0x80\n\tIGNPAR                                  = 0x4\n\tIMAXBEL                                 = 0x2000\n\tINLCR                                   = 0x40\n\tINPCK                                   = 0x10\n\tIN_CLASSA_HOST                          = 0xffffff\n\tIN_CLASSA_MAX                           = 0x80\n\tIN_CLASSA_NET                           = 0xff000000\n\tIN_CLASSA_NSHIFT                        = 0x18\n\tIN_CLASSB_HOST                          = 0xffff\n\tIN_CLASSB_MAX                           = 0x10000\n\tIN_CLASSB_NET                           = 0xffff0000\n\tIN_CLASSB_NSHIFT                        = 0x10\n\tIN_CLASSC_HOST                          = 0xff\n\tIN_CLASSC_NET                           = 0xffffff00\n\tIN_CLASSC_NSHIFT                        = 0x8\n\tIN_CLASSD_HOST                          = 0xfffffff\n\tIN_CLASSD_NET                           = 0xf0000000\n\tIN_CLASSD_NSHIFT                        = 0x1c\n\tIN_LINKLOCALNETNUM                      = 0xa9fe0000\n\tIN_LOOPBACKNET                          = 0x7f\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID          = 0x400473d1\n\tIPPROTO_3PC                             = 0x22\n\tIPPROTO_ADFS                            = 0x44\n\tIPPROTO_AH                              = 0x33\n\tIPPROTO_AHIP                            = 0x3d\n\tIPPROTO_APES                            = 0x63\n\tIPPROTO_ARGUS                           = 0xd\n\tIPPROTO_AX25                            = 0x5d\n\tIPPROTO_BHA                             = 0x31\n\tIPPROTO_BLT                             = 0x1e\n\tIPPROTO_BRSATMON                        = 0x4c\n\tIPPROTO_CFTP                            = 0x3e\n\tIPPROTO_CHAOS                           = 0x10\n\tIPPROTO_CMTP                            = 0x26\n\tIPPROTO_CPHB                            = 0x49\n\tIPPROTO_CPNX                            = 0x48\n\tIPPROTO_DDP                             = 0x25\n\tIPPROTO_DGP                             = 0x56\n\tIPPROTO_DIVERT                          = 0xfe\n\tIPPROTO_DONE                            = 0x101\n\tIPPROTO_DSTOPTS                         = 0x3c\n\tIPPROTO_EGP                             = 0x8\n\tIPPROTO_EMCON                           = 0xe\n\tIPPROTO_ENCAP                           = 0x62\n\tIPPROTO_EON                             = 0x50\n\tIPPROTO_ESP                             = 0x32\n\tIPPROTO_ETHERIP                         = 0x61\n\tIPPROTO_FRAGMENT                        = 0x2c\n\tIPPROTO_GGP                             = 0x3\n\tIPPROTO_GMTP                            = 0x64\n\tIPPROTO_GRE                             = 0x2f\n\tIPPROTO_HELLO                           = 0x3f\n\tIPPROTO_HMP                             = 0x14\n\tIPPROTO_HOPOPTS                         = 0x0\n\tIPPROTO_ICMP                            = 0x1\n\tIPPROTO_ICMPV6                          = 0x3a\n\tIPPROTO_IDP                             = 0x16\n\tIPPROTO_IDPR                            = 0x23\n\tIPPROTO_IDRP                            = 0x2d\n\tIPPROTO_IGMP                            = 0x2\n\tIPPROTO_IGP                             = 0x55\n\tIPPROTO_IGRP                            = 0x58\n\tIPPROTO_IL                              = 0x28\n\tIPPROTO_INLSP                           = 0x34\n\tIPPROTO_INP                             = 0x20\n\tIPPROTO_IP                              = 0x0\n\tIPPROTO_IPCOMP                          = 0x6c\n\tIPPROTO_IPCV                            = 0x47\n\tIPPROTO_IPEIP                           = 0x5e\n\tIPPROTO_IPIP                            = 0x4\n\tIPPROTO_IPPC                            = 0x43\n\tIPPROTO_IPV4                            = 0x4\n\tIPPROTO_IPV6                            = 0x29\n\tIPPROTO_IRTP                            = 0x1c\n\tIPPROTO_KRYPTOLAN                       = 0x41\n\tIPPROTO_LARP                            = 0x5b\n\tIPPROTO_LEAF1                           = 0x19\n\tIPPROTO_LEAF2                           = 0x1a\n\tIPPROTO_MAX                             = 0x100\n\tIPPROTO_MAXID                           = 0x34\n\tIPPROTO_MEAS                            = 0x13\n\tIPPROTO_MHRP                            = 0x30\n\tIPPROTO_MICP                            = 0x5f\n\tIPPROTO_MTP                             = 0x5c\n\tIPPROTO_MUX                             = 0x12\n\tIPPROTO_ND                              = 0x4d\n\tIPPROTO_NHRP                            = 0x36\n\tIPPROTO_NONE                            = 0x3b\n\tIPPROTO_NSP                             = 0x1f\n\tIPPROTO_NVPII                           = 0xb\n\tIPPROTO_OSPFIGP                         = 0x59\n\tIPPROTO_PGM                             = 0x71\n\tIPPROTO_PIGP                            = 0x9\n\tIPPROTO_PIM                             = 0x67\n\tIPPROTO_PRM                             = 0x15\n\tIPPROTO_PUP                             = 0xc\n\tIPPROTO_PVP                             = 0x4b\n\tIPPROTO_RAW                             = 0xff\n\tIPPROTO_RCCMON                          = 0xa\n\tIPPROTO_RDP                             = 0x1b\n\tIPPROTO_ROUTING                         = 0x2b\n\tIPPROTO_RSVP                            = 0x2e\n\tIPPROTO_RVD                             = 0x42\n\tIPPROTO_SATEXPAK                        = 0x40\n\tIPPROTO_SATMON                          = 0x45\n\tIPPROTO_SCCSP                           = 0x60\n\tIPPROTO_SCTP                            = 0x84\n\tIPPROTO_SDRP                            = 0x2a\n\tIPPROTO_SEP                             = 0x21\n\tIPPROTO_SRPC                            = 0x5a\n\tIPPROTO_ST                              = 0x7\n\tIPPROTO_SVMTP                           = 0x52\n\tIPPROTO_SWIPE                           = 0x35\n\tIPPROTO_TCF                             = 0x57\n\tIPPROTO_TCP                             = 0x6\n\tIPPROTO_TP                              = 0x1d\n\tIPPROTO_TPXX                            = 0x27\n\tIPPROTO_TRUNK1                          = 0x17\n\tIPPROTO_TRUNK2                          = 0x18\n\tIPPROTO_TTP                             = 0x54\n\tIPPROTO_UDP                             = 0x11\n\tIPPROTO_VINES                           = 0x53\n\tIPPROTO_VISA                            = 0x46\n\tIPPROTO_VMTP                            = 0x51\n\tIPPROTO_WBEXPAK                         = 0x4f\n\tIPPROTO_WBMON                           = 0x4e\n\tIPPROTO_WSN                             = 0x4a\n\tIPPROTO_XNET                            = 0xf\n\tIPPROTO_XTP                             = 0x24\n\tIPV6_2292DSTOPTS                        = 0x17\n\tIPV6_2292HOPLIMIT                       = 0x14\n\tIPV6_2292HOPOPTS                        = 0x16\n\tIPV6_2292NEXTHOP                        = 0x15\n\tIPV6_2292PKTINFO                        = 0x13\n\tIPV6_2292PKTOPTIONS                     = 0x19\n\tIPV6_2292RTHDR                          = 0x18\n\tIPV6_3542DSTOPTS                        = 0x32\n\tIPV6_3542HOPLIMIT                       = 0x2f\n\tIPV6_3542HOPOPTS                        = 0x31\n\tIPV6_3542NEXTHOP                        = 0x30\n\tIPV6_3542PKTINFO                        = 0x2e\n\tIPV6_3542RTHDR                          = 0x33\n\tIPV6_ADDR_MC_FLAGS_PREFIX               = 0x20\n\tIPV6_ADDR_MC_FLAGS_TRANSIENT            = 0x10\n\tIPV6_ADDR_MC_FLAGS_UNICAST_BASED        = 0x30\n\tIPV6_AUTOFLOWLABEL                      = 0x3b\n\tIPV6_BINDV6ONLY                         = 0x1b\n\tIPV6_BOUND_IF                           = 0x7d\n\tIPV6_CHECKSUM                           = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS             = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP             = 0x1\n\tIPV6_DEFHLIM                            = 0x40\n\tIPV6_DONTFRAG                           = 0x3e\n\tIPV6_DSTOPTS                            = 0x32\n\tIPV6_FAITH                              = 0x1d\n\tIPV6_FLOWINFO_MASK                      = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK                     = 0xffff0f00\n\tIPV6_FLOW_ECN_MASK                      = 0x3000\n\tIPV6_FRAGTTL                            = 0x3c\n\tIPV6_FW_ADD                             = 0x1e\n\tIPV6_FW_DEL                             = 0x1f\n\tIPV6_FW_FLUSH                           = 0x20\n\tIPV6_FW_GET                             = 0x22\n\tIPV6_FW_ZERO                            = 0x21\n\tIPV6_HLIMDEC                            = 0x1\n\tIPV6_HOPLIMIT                           = 0x2f\n\tIPV6_HOPOPTS                            = 0x31\n\tIPV6_IPSEC_POLICY                       = 0x1c\n\tIPV6_JOIN_GROUP                         = 0xc\n\tIPV6_LEAVE_GROUP                        = 0xd\n\tIPV6_MAXHLIM                            = 0xff\n\tIPV6_MAXOPTHDR                          = 0x800\n\tIPV6_MAXPACKET                          = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER               = 0x200\n\tIPV6_MAX_MEMBERSHIPS                    = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER                = 0x80\n\tIPV6_MIN_MEMBERSHIPS                    = 0x1f\n\tIPV6_MMTU                               = 0x500\n\tIPV6_MSFILTER                           = 0x4a\n\tIPV6_MULTICAST_HOPS                     = 0xa\n\tIPV6_MULTICAST_IF                       = 0x9\n\tIPV6_MULTICAST_LOOP                     = 0xb\n\tIPV6_NEXTHOP                            = 0x30\n\tIPV6_PATHMTU                            = 0x2c\n\tIPV6_PKTINFO                            = 0x2e\n\tIPV6_PORTRANGE                          = 0xe\n\tIPV6_PORTRANGE_DEFAULT                  = 0x0\n\tIPV6_PORTRANGE_HIGH                     = 0x1\n\tIPV6_PORTRANGE_LOW                      = 0x2\n\tIPV6_PREFER_TEMPADDR                    = 0x3f\n\tIPV6_RECVDSTOPTS                        = 0x28\n\tIPV6_RECVHOPLIMIT                       = 0x25\n\tIPV6_RECVHOPOPTS                        = 0x27\n\tIPV6_RECVPATHMTU                        = 0x2b\n\tIPV6_RECVPKTINFO                        = 0x3d\n\tIPV6_RECVRTHDR                          = 0x26\n\tIPV6_RECVTCLASS                         = 0x23\n\tIPV6_RTHDR                              = 0x33\n\tIPV6_RTHDRDSTOPTS                       = 0x39\n\tIPV6_RTHDR_LOOSE                        = 0x0\n\tIPV6_RTHDR_STRICT                       = 0x1\n\tIPV6_RTHDR_TYPE_0                       = 0x0\n\tIPV6_SOCKOPT_RESERVED1                  = 0x3\n\tIPV6_TCLASS                             = 0x24\n\tIPV6_UNICAST_HOPS                       = 0x4\n\tIPV6_USE_MIN_MTU                        = 0x2a\n\tIPV6_V6ONLY                             = 0x1b\n\tIPV6_VERSION                            = 0x60\n\tIPV6_VERSION_MASK                       = 0xf0\n\tIP_ADD_MEMBERSHIP                       = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP                = 0x46\n\tIP_BLOCK_SOURCE                         = 0x48\n\tIP_BOUND_IF                             = 0x19\n\tIP_DEFAULT_MULTICAST_LOOP               = 0x1\n\tIP_DEFAULT_MULTICAST_TTL                = 0x1\n\tIP_DF                                   = 0x4000\n\tIP_DONTFRAG                             = 0x1c\n\tIP_DROP_MEMBERSHIP                      = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP               = 0x47\n\tIP_DUMMYNET_CONFIGURE                   = 0x3c\n\tIP_DUMMYNET_DEL                         = 0x3d\n\tIP_DUMMYNET_FLUSH                       = 0x3e\n\tIP_DUMMYNET_GET                         = 0x40\n\tIP_FAITH                                = 0x16\n\tIP_FW_ADD                               = 0x28\n\tIP_FW_DEL                               = 0x29\n\tIP_FW_FLUSH                             = 0x2a\n\tIP_FW_GET                               = 0x2c\n\tIP_FW_RESETLOG                          = 0x2d\n\tIP_FW_ZERO                              = 0x2b\n\tIP_HDRINCL                              = 0x2\n\tIP_IPSEC_POLICY                         = 0x15\n\tIP_MAXPACKET                            = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER                 = 0x200\n\tIP_MAX_MEMBERSHIPS                      = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER                 = 0x80\n\tIP_MAX_SOCK_SRC_FILTER                  = 0x80\n\tIP_MF                                   = 0x2000\n\tIP_MIN_MEMBERSHIPS                      = 0x1f\n\tIP_MSFILTER                             = 0x4a\n\tIP_MSS                                  = 0x240\n\tIP_MULTICAST_IF                         = 0x9\n\tIP_MULTICAST_IFINDEX                    = 0x42\n\tIP_MULTICAST_LOOP                       = 0xb\n\tIP_MULTICAST_TTL                        = 0xa\n\tIP_MULTICAST_VIF                        = 0xe\n\tIP_NAT__XXX                             = 0x37\n\tIP_OFFMASK                              = 0x1fff\n\tIP_OLD_FW_ADD                           = 0x32\n\tIP_OLD_FW_DEL                           = 0x33\n\tIP_OLD_FW_FLUSH                         = 0x34\n\tIP_OLD_FW_GET                           = 0x36\n\tIP_OLD_FW_RESETLOG                      = 0x38\n\tIP_OLD_FW_ZERO                          = 0x35\n\tIP_OPTIONS                              = 0x1\n\tIP_PKTINFO                              = 0x1a\n\tIP_PORTRANGE                            = 0x13\n\tIP_PORTRANGE_DEFAULT                    = 0x0\n\tIP_PORTRANGE_HIGH                       = 0x1\n\tIP_PORTRANGE_LOW                        = 0x2\n\tIP_RECVDSTADDR                          = 0x7\n\tIP_RECVIF                               = 0x14\n\tIP_RECVOPTS                             = 0x5\n\tIP_RECVPKTINFO                          = 0x1a\n\tIP_RECVRETOPTS                          = 0x6\n\tIP_RECVTOS                              = 0x1b\n\tIP_RECVTTL                              = 0x18\n\tIP_RETOPTS                              = 0x8\n\tIP_RF                                   = 0x8000\n\tIP_RSVP_OFF                             = 0x10\n\tIP_RSVP_ON                              = 0xf\n\tIP_RSVP_VIF_OFF                         = 0x12\n\tIP_RSVP_VIF_ON                          = 0x11\n\tIP_STRIPHDR                             = 0x17\n\tIP_TOS                                  = 0x3\n\tIP_TRAFFIC_MGT_BACKGROUND               = 0x41\n\tIP_TTL                                  = 0x4\n\tIP_UNBLOCK_SOURCE                       = 0x49\n\tISIG                                    = 0x80\n\tISTRIP                                  = 0x20\n\tIUTF8                                   = 0x4000\n\tIXANY                                   = 0x800\n\tIXOFF                                   = 0x400\n\tIXON                                    = 0x200\n\tKERN_HOSTNAME                           = 0xa\n\tKERN_OSRELEASE                          = 0x2\n\tKERN_OSTYPE                             = 0x1\n\tKERN_VERSION                            = 0x4\n\tLOCAL_PEERCRED                          = 0x1\n\tLOCAL_PEEREPID                          = 0x3\n\tLOCAL_PEEREUUID                         = 0x5\n\tLOCAL_PEERPID                           = 0x2\n\tLOCAL_PEERTOKEN                         = 0x6\n\tLOCAL_PEERUUID                          = 0x4\n\tLOCK_EX                                 = 0x2\n\tLOCK_NB                                 = 0x4\n\tLOCK_SH                                 = 0x1\n\tLOCK_UN                                 = 0x8\n\tMADV_CAN_REUSE                          = 0x9\n\tMADV_DONTNEED                           = 0x4\n\tMADV_FREE                               = 0x5\n\tMADV_FREE_REUSABLE                      = 0x7\n\tMADV_FREE_REUSE                         = 0x8\n\tMADV_NORMAL                             = 0x0\n\tMADV_PAGEOUT                            = 0xa\n\tMADV_RANDOM                             = 0x1\n\tMADV_SEQUENTIAL                         = 0x2\n\tMADV_WILLNEED                           = 0x3\n\tMADV_ZERO_WIRED_PAGES                   = 0x6\n\tMAP_32BIT                               = 0x8000\n\tMAP_ANON                                = 0x1000\n\tMAP_ANONYMOUS                           = 0x1000\n\tMAP_COPY                                = 0x2\n\tMAP_FILE                                = 0x0\n\tMAP_FIXED                               = 0x10\n\tMAP_HASSEMAPHORE                        = 0x200\n\tMAP_JIT                                 = 0x800\n\tMAP_NOCACHE                             = 0x400\n\tMAP_NOEXTEND                            = 0x100\n\tMAP_NORESERVE                           = 0x40\n\tMAP_PRIVATE                             = 0x2\n\tMAP_RENAME                              = 0x20\n\tMAP_RESERVED0080                        = 0x80\n\tMAP_RESILIENT_CODESIGN                  = 0x2000\n\tMAP_RESILIENT_MEDIA                     = 0x4000\n\tMAP_SHARED                              = 0x1\n\tMAP_TRANSLATED_ALLOW_EXECUTE            = 0x20000\n\tMAP_UNIX03                              = 0x40000\n\tMCAST_BLOCK_SOURCE                      = 0x54\n\tMCAST_EXCLUDE                           = 0x2\n\tMCAST_INCLUDE                           = 0x1\n\tMCAST_JOIN_GROUP                        = 0x50\n\tMCAST_JOIN_SOURCE_GROUP                 = 0x52\n\tMCAST_LEAVE_GROUP                       = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP                = 0x53\n\tMCAST_UNBLOCK_SOURCE                    = 0x55\n\tMCAST_UNDEFINED                         = 0x0\n\tMCL_CURRENT                             = 0x1\n\tMCL_FUTURE                              = 0x2\n\tMNT_ASYNC                               = 0x40\n\tMNT_AUTOMOUNTED                         = 0x400000\n\tMNT_CMDFLAGS                            = 0xf0000\n\tMNT_CPROTECT                            = 0x80\n\tMNT_DEFWRITE                            = 0x2000000\n\tMNT_DONTBROWSE                          = 0x100000\n\tMNT_DOVOLFS                             = 0x8000\n\tMNT_DWAIT                               = 0x4\n\tMNT_EXPORTED                            = 0x100\n\tMNT_EXT_ROOT_DATA_VOL                   = 0x1\n\tMNT_FORCE                               = 0x80000\n\tMNT_IGNORE_OWNERSHIP                    = 0x200000\n\tMNT_JOURNALED                           = 0x800000\n\tMNT_LOCAL                               = 0x1000\n\tMNT_MULTILABEL                          = 0x4000000\n\tMNT_NOATIME                             = 0x10000000\n\tMNT_NOBLOCK                             = 0x20000\n\tMNT_NODEV                               = 0x10\n\tMNT_NOEXEC                              = 0x4\n\tMNT_NOSUID                              = 0x8\n\tMNT_NOUSERXATTR                         = 0x1000000\n\tMNT_NOWAIT                              = 0x2\n\tMNT_QUARANTINE                          = 0x400\n\tMNT_QUOTA                               = 0x2000\n\tMNT_RDONLY                              = 0x1\n\tMNT_RELOAD                              = 0x40000\n\tMNT_REMOVABLE                           = 0x200\n\tMNT_ROOTFS                              = 0x4000\n\tMNT_SNAPSHOT                            = 0x40000000\n\tMNT_STRICTATIME                         = 0x80000000\n\tMNT_SYNCHRONOUS                         = 0x2\n\tMNT_UNION                               = 0x20\n\tMNT_UNKNOWNPERMISSIONS                  = 0x200000\n\tMNT_UPDATE                              = 0x10000\n\tMNT_VISFLAGMASK                         = 0xd7f0f7ff\n\tMNT_WAIT                                = 0x1\n\tMSG_CTRUNC                              = 0x20\n\tMSG_DONTROUTE                           = 0x4\n\tMSG_DONTWAIT                            = 0x80\n\tMSG_EOF                                 = 0x100\n\tMSG_EOR                                 = 0x8\n\tMSG_FLUSH                               = 0x400\n\tMSG_HAVEMORE                            = 0x2000\n\tMSG_HOLD                                = 0x800\n\tMSG_NEEDSA                              = 0x10000\n\tMSG_NOSIGNAL                            = 0x80000\n\tMSG_OOB                                 = 0x1\n\tMSG_PEEK                                = 0x2\n\tMSG_RCVMORE                             = 0x4000\n\tMSG_SEND                                = 0x1000\n\tMSG_TRUNC                               = 0x10\n\tMSG_WAITALL                             = 0x40\n\tMSG_WAITSTREAM                          = 0x200\n\tMS_ASYNC                                = 0x1\n\tMS_DEACTIVATE                           = 0x8\n\tMS_INVALIDATE                           = 0x2\n\tMS_KILLPAGES                            = 0x4\n\tMS_SYNC                                 = 0x10\n\tNAME_MAX                                = 0xff\n\tNET_RT_DUMP                             = 0x1\n\tNET_RT_DUMP2                            = 0x7\n\tNET_RT_FLAGS                            = 0x2\n\tNET_RT_FLAGS_PRIV                       = 0xa\n\tNET_RT_IFLIST                           = 0x3\n\tNET_RT_IFLIST2                          = 0x6\n\tNET_RT_MAXID                            = 0xb\n\tNET_RT_STAT                             = 0x4\n\tNET_RT_TRASH                            = 0x5\n\tNFDBITS                                 = 0x20\n\tNL0                                     = 0x0\n\tNL1                                     = 0x100\n\tNL2                                     = 0x200\n\tNL3                                     = 0x300\n\tNLDLY                                   = 0x300\n\tNOFLSH                                  = 0x80000000\n\tNOKERNINFO                              = 0x2000000\n\tNOTE_ABSOLUTE                           = 0x8\n\tNOTE_ATTRIB                             = 0x8\n\tNOTE_BACKGROUND                         = 0x40\n\tNOTE_CHILD                              = 0x4\n\tNOTE_CRITICAL                           = 0x20\n\tNOTE_DELETE                             = 0x1\n\tNOTE_EXEC                               = 0x20000000\n\tNOTE_EXIT                               = 0x80000000\n\tNOTE_EXITSTATUS                         = 0x4000000\n\tNOTE_EXIT_CSERROR                       = 0x40000\n\tNOTE_EXIT_DECRYPTFAIL                   = 0x10000\n\tNOTE_EXIT_DETAIL                        = 0x2000000\n\tNOTE_EXIT_DETAIL_MASK                   = 0x70000\n\tNOTE_EXIT_MEMORY                        = 0x20000\n\tNOTE_EXIT_REPARENTED                    = 0x80000\n\tNOTE_EXTEND                             = 0x4\n\tNOTE_FFAND                              = 0x40000000\n\tNOTE_FFCOPY                             = 0xc0000000\n\tNOTE_FFCTRLMASK                         = 0xc0000000\n\tNOTE_FFLAGSMASK                         = 0xffffff\n\tNOTE_FFNOP                              = 0x0\n\tNOTE_FFOR                               = 0x80000000\n\tNOTE_FORK                               = 0x40000000\n\tNOTE_FUNLOCK                            = 0x100\n\tNOTE_LEEWAY                             = 0x10\n\tNOTE_LINK                               = 0x10\n\tNOTE_LOWAT                              = 0x1\n\tNOTE_MACHTIME                           = 0x100\n\tNOTE_MACH_CONTINUOUS_TIME               = 0x80\n\tNOTE_NONE                               = 0x80\n\tNOTE_NSECONDS                           = 0x4\n\tNOTE_OOB                                = 0x2\n\tNOTE_PCTRLMASK                          = -0x100000\n\tNOTE_PDATAMASK                          = 0xfffff\n\tNOTE_REAP                               = 0x10000000\n\tNOTE_RENAME                             = 0x20\n\tNOTE_REVOKE                             = 0x40\n\tNOTE_SECONDS                            = 0x1\n\tNOTE_SIGNAL                             = 0x8000000\n\tNOTE_TRACK                              = 0x1\n\tNOTE_TRACKERR                           = 0x2\n\tNOTE_TRIGGER                            = 0x1000000\n\tNOTE_USECONDS                           = 0x2\n\tNOTE_VM_ERROR                           = 0x10000000\n\tNOTE_VM_PRESSURE                        = 0x80000000\n\tNOTE_VM_PRESSURE_SUDDEN_TERMINATE       = 0x20000000\n\tNOTE_VM_PRESSURE_TERMINATE              = 0x40000000\n\tNOTE_WRITE                              = 0x2\n\tOCRNL                                   = 0x10\n\tOFDEL                                   = 0x20000\n\tOFILL                                   = 0x80\n\tONLCR                                   = 0x2\n\tONLRET                                  = 0x40\n\tONOCR                                   = 0x20\n\tONOEOT                                  = 0x8\n\tOPOST                                   = 0x1\n\tOXTABS                                  = 0x4\n\tO_ACCMODE                               = 0x3\n\tO_ALERT                                 = 0x20000000\n\tO_APPEND                                = 0x8\n\tO_ASYNC                                 = 0x40\n\tO_CLOEXEC                               = 0x1000000\n\tO_CREAT                                 = 0x200\n\tO_DIRECTORY                             = 0x100000\n\tO_DP_GETRAWENCRYPTED                    = 0x1\n\tO_DP_GETRAWUNENCRYPTED                  = 0x2\n\tO_DSYNC                                 = 0x400000\n\tO_EVTONLY                               = 0x8000\n\tO_EXCL                                  = 0x800\n\tO_EXLOCK                                = 0x20\n\tO_FSYNC                                 = 0x80\n\tO_NDELAY                                = 0x4\n\tO_NOCTTY                                = 0x20000\n\tO_NOFOLLOW                              = 0x100\n\tO_NOFOLLOW_ANY                          = 0x20000000\n\tO_NONBLOCK                              = 0x4\n\tO_POPUP                                 = 0x80000000\n\tO_RDONLY                                = 0x0\n\tO_RDWR                                  = 0x2\n\tO_SHLOCK                                = 0x10\n\tO_SYMLINK                               = 0x200000\n\tO_SYNC                                  = 0x80\n\tO_TRUNC                                 = 0x400\n\tO_WRONLY                                = 0x1\n\tPARENB                                  = 0x1000\n\tPARMRK                                  = 0x8\n\tPARODD                                  = 0x2000\n\tPENDIN                                  = 0x20000000\n\tPRIO_PGRP                               = 0x1\n\tPRIO_PROCESS                            = 0x0\n\tPRIO_USER                               = 0x2\n\tPROT_EXEC                               = 0x4\n\tPROT_NONE                               = 0x0\n\tPROT_READ                               = 0x1\n\tPROT_WRITE                              = 0x2\n\tPT_ATTACH                               = 0xa\n\tPT_ATTACHEXC                            = 0xe\n\tPT_CONTINUE                             = 0x7\n\tPT_DENY_ATTACH                          = 0x1f\n\tPT_DETACH                               = 0xb\n\tPT_FIRSTMACH                            = 0x20\n\tPT_FORCEQUOTA                           = 0x1e\n\tPT_KILL                                 = 0x8\n\tPT_READ_D                               = 0x2\n\tPT_READ_I                               = 0x1\n\tPT_READ_U                               = 0x3\n\tPT_SIGEXC                               = 0xc\n\tPT_STEP                                 = 0x9\n\tPT_THUPDATE                             = 0xd\n\tPT_TRACE_ME                             = 0x0\n\tPT_WRITE_D                              = 0x5\n\tPT_WRITE_I                              = 0x4\n\tPT_WRITE_U                              = 0x6\n\tRENAME_EXCL                             = 0x4\n\tRENAME_NOFOLLOW_ANY                     = 0x10\n\tRENAME_RESERVED1                        = 0x8\n\tRENAME_SECLUDE                          = 0x1\n\tRENAME_SWAP                             = 0x2\n\tRLIMIT_AS                               = 0x5\n\tRLIMIT_CORE                             = 0x4\n\tRLIMIT_CPU                              = 0x0\n\tRLIMIT_CPU_USAGE_MONITOR                = 0x2\n\tRLIMIT_DATA                             = 0x2\n\tRLIMIT_FSIZE                            = 0x1\n\tRLIMIT_MEMLOCK                          = 0x6\n\tRLIMIT_NOFILE                           = 0x8\n\tRLIMIT_NPROC                            = 0x7\n\tRLIMIT_RSS                              = 0x5\n\tRLIMIT_STACK                            = 0x3\n\tRLIM_INFINITY                           = 0x7fffffffffffffff\n\tRTAX_AUTHOR                             = 0x6\n\tRTAX_BRD                                = 0x7\n\tRTAX_DST                                = 0x0\n\tRTAX_GATEWAY                            = 0x1\n\tRTAX_GENMASK                            = 0x3\n\tRTAX_IFA                                = 0x5\n\tRTAX_IFP                                = 0x4\n\tRTAX_MAX                                = 0x8\n\tRTAX_NETMASK                            = 0x2\n\tRTA_AUTHOR                              = 0x40\n\tRTA_BRD                                 = 0x80\n\tRTA_DST                                 = 0x1\n\tRTA_GATEWAY                             = 0x2\n\tRTA_GENMASK                             = 0x8\n\tRTA_IFA                                 = 0x20\n\tRTA_IFP                                 = 0x10\n\tRTA_NETMASK                             = 0x4\n\tRTF_BLACKHOLE                           = 0x1000\n\tRTF_BROADCAST                           = 0x400000\n\tRTF_CLONING                             = 0x100\n\tRTF_CONDEMNED                           = 0x2000000\n\tRTF_DEAD                                = 0x20000000\n\tRTF_DELCLONE                            = 0x80\n\tRTF_DONE                                = 0x40\n\tRTF_DYNAMIC                             = 0x10\n\tRTF_GATEWAY                             = 0x2\n\tRTF_GLOBAL                              = 0x40000000\n\tRTF_HOST                                = 0x4\n\tRTF_IFREF                               = 0x4000000\n\tRTF_IFSCOPE                             = 0x1000000\n\tRTF_LLDATA                              = 0x400\n\tRTF_LLINFO                              = 0x400\n\tRTF_LOCAL                               = 0x200000\n\tRTF_MODIFIED                            = 0x20\n\tRTF_MULTICAST                           = 0x800000\n\tRTF_NOIFREF                             = 0x2000\n\tRTF_PINNED                              = 0x100000\n\tRTF_PRCLONING                           = 0x10000\n\tRTF_PROTO1                              = 0x8000\n\tRTF_PROTO2                              = 0x4000\n\tRTF_PROTO3                              = 0x40000\n\tRTF_PROXY                               = 0x8000000\n\tRTF_REJECT                              = 0x8\n\tRTF_ROUTER                              = 0x10000000\n\tRTF_STATIC                              = 0x800\n\tRTF_UP                                  = 0x1\n\tRTF_WASCLONED                           = 0x20000\n\tRTF_XRESOLVE                            = 0x200\n\tRTM_ADD                                 = 0x1\n\tRTM_CHANGE                              = 0x3\n\tRTM_DELADDR                             = 0xd\n\tRTM_DELETE                              = 0x2\n\tRTM_DELMADDR                            = 0x10\n\tRTM_GET                                 = 0x4\n\tRTM_GET2                                = 0x14\n\tRTM_IFINFO                              = 0xe\n\tRTM_IFINFO2                             = 0x12\n\tRTM_LOCK                                = 0x8\n\tRTM_LOSING                              = 0x5\n\tRTM_MISS                                = 0x7\n\tRTM_NEWADDR                             = 0xc\n\tRTM_NEWMADDR                            = 0xf\n\tRTM_NEWMADDR2                           = 0x13\n\tRTM_OLDADD                              = 0x9\n\tRTM_OLDDEL                              = 0xa\n\tRTM_REDIRECT                            = 0x6\n\tRTM_RESOLVE                             = 0xb\n\tRTM_RTTUNIT                             = 0xf4240\n\tRTM_VERSION                             = 0x5\n\tRTV_EXPIRE                              = 0x4\n\tRTV_HOPCOUNT                            = 0x2\n\tRTV_MTU                                 = 0x1\n\tRTV_RPIPE                               = 0x8\n\tRTV_RTT                                 = 0x40\n\tRTV_RTTVAR                              = 0x80\n\tRTV_SPIPE                               = 0x10\n\tRTV_SSTHRESH                            = 0x20\n\tRUSAGE_CHILDREN                         = -0x1\n\tRUSAGE_SELF                             = 0x0\n\tSCM_CREDS                               = 0x3\n\tSCM_RIGHTS                              = 0x1\n\tSCM_TIMESTAMP                           = 0x2\n\tSCM_TIMESTAMP_MONOTONIC                 = 0x4\n\tSEEK_CUR                                = 0x1\n\tSEEK_DATA                               = 0x4\n\tSEEK_END                                = 0x2\n\tSEEK_HOLE                               = 0x3\n\tSEEK_SET                                = 0x0\n\tSF_APPEND                               = 0x40000\n\tSF_ARCHIVED                             = 0x10000\n\tSF_DATALESS                             = 0x40000000\n\tSF_FIRMLINK                             = 0x800000\n\tSF_IMMUTABLE                            = 0x20000\n\tSF_NOUNLINK                             = 0x100000\n\tSF_RESTRICTED                           = 0x80000\n\tSF_SETTABLE                             = 0x3fff0000\n\tSF_SUPPORTED                            = 0x9f0000\n\tSF_SYNTHETIC                            = 0xc0000000\n\tSHUT_RD                                 = 0x0\n\tSHUT_RDWR                               = 0x2\n\tSHUT_WR                                 = 0x1\n\tSIOCADDMULTI                            = 0x80206931\n\tSIOCAIFADDR                             = 0x8040691a\n\tSIOCARPIPLL                             = 0xc0206928\n\tSIOCATMARK                              = 0x40047307\n\tSIOCAUTOADDR                            = 0xc0206926\n\tSIOCAUTONETMASK                         = 0x80206927\n\tSIOCDELMULTI                            = 0x80206932\n\tSIOCDIFADDR                             = 0x80206919\n\tSIOCDIFPHYADDR                          = 0x80206941\n\tSIOCGDRVSPEC                            = 0xc028697b\n\tSIOCGETVLAN                             = 0xc020697f\n\tSIOCGHIWAT                              = 0x40047301\n\tSIOCGIF6LOWPAN                          = 0xc02069c5\n\tSIOCGIFADDR                             = 0xc0206921\n\tSIOCGIFALTMTU                           = 0xc0206948\n\tSIOCGIFASYNCMAP                         = 0xc020697c\n\tSIOCGIFBOND                             = 0xc0206947\n\tSIOCGIFBRDADDR                          = 0xc0206923\n\tSIOCGIFCAP                              = 0xc020695b\n\tSIOCGIFCONF                             = 0xc00c6924\n\tSIOCGIFDEVMTU                           = 0xc0206944\n\tSIOCGIFDSTADDR                          = 0xc0206922\n\tSIOCGIFFLAGS                            = 0xc0206911\n\tSIOCGIFFUNCTIONALTYPE                   = 0xc02069ad\n\tSIOCGIFGENERIC                          = 0xc020693a\n\tSIOCGIFKPI                              = 0xc0206987\n\tSIOCGIFMAC                              = 0xc0206982\n\tSIOCGIFMEDIA                            = 0xc02c6938\n\tSIOCGIFMETRIC                           = 0xc0206917\n\tSIOCGIFMTU                              = 0xc0206933\n\tSIOCGIFNETMASK                          = 0xc0206925\n\tSIOCGIFPDSTADDR                         = 0xc0206940\n\tSIOCGIFPHYS                             = 0xc0206935\n\tSIOCGIFPSRCADDR                         = 0xc020693f\n\tSIOCGIFSTATUS                           = 0xc331693d\n\tSIOCGIFVLAN                             = 0xc020697f\n\tSIOCGIFWAKEFLAGS                        = 0xc0206988\n\tSIOCGIFXMEDIA                           = 0xc02c6948\n\tSIOCGLOWAT                              = 0x40047303\n\tSIOCGPGRP                               = 0x40047309\n\tSIOCIFCREATE                            = 0xc0206978\n\tSIOCIFCREATE2                           = 0xc020697a\n\tSIOCIFDESTROY                           = 0x80206979\n\tSIOCIFGCLONERS                          = 0xc0106981\n\tSIOCRSLVMULTI                           = 0xc010693b\n\tSIOCSDRVSPEC                            = 0x8028697b\n\tSIOCSETVLAN                             = 0x8020697e\n\tSIOCSHIWAT                              = 0x80047300\n\tSIOCSIF6LOWPAN                          = 0x802069c4\n\tSIOCSIFADDR                             = 0x8020690c\n\tSIOCSIFALTMTU                           = 0x80206945\n\tSIOCSIFASYNCMAP                         = 0x8020697d\n\tSIOCSIFBOND                             = 0x80206946\n\tSIOCSIFBRDADDR                          = 0x80206913\n\tSIOCSIFCAP                              = 0x8020695a\n\tSIOCSIFDSTADDR                          = 0x8020690e\n\tSIOCSIFFLAGS                            = 0x80206910\n\tSIOCSIFGENERIC                          = 0x80206939\n\tSIOCSIFKPI                              = 0x80206986\n\tSIOCSIFLLADDR                           = 0x8020693c\n\tSIOCSIFMAC                              = 0x80206983\n\tSIOCSIFMEDIA                            = 0xc0206937\n\tSIOCSIFMETRIC                           = 0x80206918\n\tSIOCSIFMTU                              = 0x80206934\n\tSIOCSIFNETMASK                          = 0x80206916\n\tSIOCSIFPHYADDR                          = 0x8040693e\n\tSIOCSIFPHYS                             = 0x80206936\n\tSIOCSIFVLAN                             = 0x8020697e\n\tSIOCSLOWAT                              = 0x80047302\n\tSIOCSPGRP                               = 0x80047308\n\tSOCK_DGRAM                              = 0x2\n\tSOCK_MAXADDRLEN                         = 0xff\n\tSOCK_RAW                                = 0x3\n\tSOCK_RDM                                = 0x4\n\tSOCK_SEQPACKET                          = 0x5\n\tSOCK_STREAM                             = 0x1\n\tSOL_LOCAL                               = 0x0\n\tSOL_SOCKET                              = 0xffff\n\tSOMAXCONN                               = 0x80\n\tSO_ACCEPTCONN                           = 0x2\n\tSO_BROADCAST                            = 0x20\n\tSO_DEBUG                                = 0x1\n\tSO_DONTROUTE                            = 0x10\n\tSO_DONTTRUNC                            = 0x2000\n\tSO_ERROR                                = 0x1007\n\tSO_KEEPALIVE                            = 0x8\n\tSO_LABEL                                = 0x1010\n\tSO_LINGER                               = 0x80\n\tSO_LINGER_SEC                           = 0x1080\n\tSO_NETSVC_MARKING_LEVEL                 = 0x1119\n\tSO_NET_SERVICE_TYPE                     = 0x1116\n\tSO_NKE                                  = 0x1021\n\tSO_NOADDRERR                            = 0x1023\n\tSO_NOSIGPIPE                            = 0x1022\n\tSO_NOTIFYCONFLICT                       = 0x1026\n\tSO_NP_EXTENSIONS                        = 0x1083\n\tSO_NREAD                                = 0x1020\n\tSO_NUMRCVPKT                            = 0x1112\n\tSO_NWRITE                               = 0x1024\n\tSO_OOBINLINE                            = 0x100\n\tSO_PEERLABEL                            = 0x1011\n\tSO_RANDOMPORT                           = 0x1082\n\tSO_RCVBUF                               = 0x1002\n\tSO_RCVLOWAT                             = 0x1004\n\tSO_RCVTIMEO                             = 0x1006\n\tSO_REUSEADDR                            = 0x4\n\tSO_REUSEPORT                            = 0x200\n\tSO_REUSESHAREUID                        = 0x1025\n\tSO_SNDBUF                               = 0x1001\n\tSO_SNDLOWAT                             = 0x1003\n\tSO_SNDTIMEO                             = 0x1005\n\tSO_TIMESTAMP                            = 0x400\n\tSO_TIMESTAMP_MONOTONIC                  = 0x800\n\tSO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1\n\tSO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4\n\tSO_TRACKER_ATTRIBUTE_FLAGS_TRACKER      = 0x2\n\tSO_TRACKER_TRANSPARENCY_VERSION         = 0x3\n\tSO_TYPE                                 = 0x1008\n\tSO_UPCALLCLOSEWAIT                      = 0x1027\n\tSO_USELOOPBACK                          = 0x40\n\tSO_WANTMORE                             = 0x4000\n\tSO_WANTOOBFLAG                          = 0x8000\n\tS_IEXEC                                 = 0x40\n\tS_IFBLK                                 = 0x6000\n\tS_IFCHR                                 = 0x2000\n\tS_IFDIR                                 = 0x4000\n\tS_IFIFO                                 = 0x1000\n\tS_IFLNK                                 = 0xa000\n\tS_IFMT                                  = 0xf000\n\tS_IFREG                                 = 0x8000\n\tS_IFSOCK                                = 0xc000\n\tS_IFWHT                                 = 0xe000\n\tS_IREAD                                 = 0x100\n\tS_IRGRP                                 = 0x20\n\tS_IROTH                                 = 0x4\n\tS_IRUSR                                 = 0x100\n\tS_IRWXG                                 = 0x38\n\tS_IRWXO                                 = 0x7\n\tS_IRWXU                                 = 0x1c0\n\tS_ISGID                                 = 0x400\n\tS_ISTXT                                 = 0x200\n\tS_ISUID                                 = 0x800\n\tS_ISVTX                                 = 0x200\n\tS_IWGRP                                 = 0x10\n\tS_IWOTH                                 = 0x2\n\tS_IWRITE                                = 0x80\n\tS_IWUSR                                 = 0x80\n\tS_IXGRP                                 = 0x8\n\tS_IXOTH                                 = 0x1\n\tS_IXUSR                                 = 0x40\n\tTAB0                                    = 0x0\n\tTAB1                                    = 0x400\n\tTAB2                                    = 0x800\n\tTAB3                                    = 0x4\n\tTABDLY                                  = 0xc04\n\tTCIFLUSH                                = 0x1\n\tTCIOFF                                  = 0x3\n\tTCIOFLUSH                               = 0x3\n\tTCION                                   = 0x4\n\tTCOFLUSH                                = 0x2\n\tTCOOFF                                  = 0x1\n\tTCOON                                   = 0x2\n\tTCPOPT_CC                               = 0xb\n\tTCPOPT_CCECHO                           = 0xd\n\tTCPOPT_CCNEW                            = 0xc\n\tTCPOPT_EOL                              = 0x0\n\tTCPOPT_FASTOPEN                         = 0x22\n\tTCPOPT_MAXSEG                           = 0x2\n\tTCPOPT_NOP                              = 0x1\n\tTCPOPT_SACK                             = 0x5\n\tTCPOPT_SACK_HDR                         = 0x1010500\n\tTCPOPT_SACK_PERMITTED                   = 0x4\n\tTCPOPT_SACK_PERMIT_HDR                  = 0x1010402\n\tTCPOPT_SIGNATURE                        = 0x13\n\tTCPOPT_TIMESTAMP                        = 0x8\n\tTCPOPT_TSTAMP_HDR                       = 0x101080a\n\tTCPOPT_WINDOW                           = 0x3\n\tTCP_CONNECTIONTIMEOUT                   = 0x20\n\tTCP_CONNECTION_INFO                     = 0x106\n\tTCP_ENABLE_ECN                          = 0x104\n\tTCP_FASTOPEN                            = 0x105\n\tTCP_KEEPALIVE                           = 0x10\n\tTCP_KEEPCNT                             = 0x102\n\tTCP_KEEPINTVL                           = 0x101\n\tTCP_MAXHLEN                             = 0x3c\n\tTCP_MAXOLEN                             = 0x28\n\tTCP_MAXSEG                              = 0x2\n\tTCP_MAXWIN                              = 0xffff\n\tTCP_MAX_SACK                            = 0x4\n\tTCP_MAX_WINSHIFT                        = 0xe\n\tTCP_MINMSS                              = 0xd8\n\tTCP_MSS                                 = 0x200\n\tTCP_NODELAY                             = 0x1\n\tTCP_NOOPT                               = 0x8\n\tTCP_NOPUSH                              = 0x4\n\tTCP_NOTSENT_LOWAT                       = 0x201\n\tTCP_RXT_CONNDROPTIME                    = 0x80\n\tTCP_RXT_FINDROP                         = 0x100\n\tTCP_SENDMOREACKS                        = 0x103\n\tTCSAFLUSH                               = 0x2\n\tTIOCCBRK                                = 0x2000747a\n\tTIOCCDTR                                = 0x20007478\n\tTIOCCONS                                = 0x80047462\n\tTIOCDCDTIMESTAMP                        = 0x40107458\n\tTIOCDRAIN                               = 0x2000745e\n\tTIOCDSIMICROCODE                        = 0x20007455\n\tTIOCEXCL                                = 0x2000740d\n\tTIOCEXT                                 = 0x80047460\n\tTIOCFLUSH                               = 0x80047410\n\tTIOCGDRAINWAIT                          = 0x40047456\n\tTIOCGETA                                = 0x40487413\n\tTIOCGETD                                = 0x4004741a\n\tTIOCGPGRP                               = 0x40047477\n\tTIOCGWINSZ                              = 0x40087468\n\tTIOCIXOFF                               = 0x20007480\n\tTIOCIXON                                = 0x20007481\n\tTIOCMBIC                                = 0x8004746b\n\tTIOCMBIS                                = 0x8004746c\n\tTIOCMGDTRWAIT                           = 0x4004745a\n\tTIOCMGET                                = 0x4004746a\n\tTIOCMODG                                = 0x40047403\n\tTIOCMODS                                = 0x80047404\n\tTIOCMSDTRWAIT                           = 0x8004745b\n\tTIOCMSET                                = 0x8004746d\n\tTIOCM_CAR                               = 0x40\n\tTIOCM_CD                                = 0x40\n\tTIOCM_CTS                               = 0x20\n\tTIOCM_DSR                               = 0x100\n\tTIOCM_DTR                               = 0x2\n\tTIOCM_LE                                = 0x1\n\tTIOCM_RI                                = 0x80\n\tTIOCM_RNG                               = 0x80\n\tTIOCM_RTS                               = 0x4\n\tTIOCM_SR                                = 0x10\n\tTIOCM_ST                                = 0x8\n\tTIOCNOTTY                               = 0x20007471\n\tTIOCNXCL                                = 0x2000740e\n\tTIOCOUTQ                                = 0x40047473\n\tTIOCPKT                                 = 0x80047470\n\tTIOCPKT_DATA                            = 0x0\n\tTIOCPKT_DOSTOP                          = 0x20\n\tTIOCPKT_FLUSHREAD                       = 0x1\n\tTIOCPKT_FLUSHWRITE                      = 0x2\n\tTIOCPKT_IOCTL                           = 0x40\n\tTIOCPKT_NOSTOP                          = 0x10\n\tTIOCPKT_START                           = 0x8\n\tTIOCPKT_STOP                            = 0x4\n\tTIOCPTYGNAME                            = 0x40807453\n\tTIOCPTYGRANT                            = 0x20007454\n\tTIOCPTYUNLK                             = 0x20007452\n\tTIOCREMOTE                              = 0x80047469\n\tTIOCSBRK                                = 0x2000747b\n\tTIOCSCONS                               = 0x20007463\n\tTIOCSCTTY                               = 0x20007461\n\tTIOCSDRAINWAIT                          = 0x80047457\n\tTIOCSDTR                                = 0x20007479\n\tTIOCSETA                                = 0x80487414\n\tTIOCSETAF                               = 0x80487416\n\tTIOCSETAW                               = 0x80487415\n\tTIOCSETD                                = 0x8004741b\n\tTIOCSIG                                 = 0x2000745f\n\tTIOCSPGRP                               = 0x80047476\n\tTIOCSTART                               = 0x2000746e\n\tTIOCSTAT                                = 0x20007465\n\tTIOCSTI                                 = 0x80017472\n\tTIOCSTOP                                = 0x2000746f\n\tTIOCSWINSZ                              = 0x80087467\n\tTIOCTIMESTAMP                           = 0x40107459\n\tTIOCUCNTL                               = 0x80047466\n\tTOSTOP                                  = 0x400000\n\tUF_APPEND                               = 0x4\n\tUF_COMPRESSED                           = 0x20\n\tUF_DATAVAULT                            = 0x80\n\tUF_HIDDEN                               = 0x8000\n\tUF_IMMUTABLE                            = 0x2\n\tUF_NODUMP                               = 0x1\n\tUF_OPAQUE                               = 0x8\n\tUF_SETTABLE                             = 0xffff\n\tUF_TRACKED                              = 0x40\n\tVDISCARD                                = 0xf\n\tVDSUSP                                  = 0xb\n\tVEOF                                    = 0x0\n\tVEOL                                    = 0x1\n\tVEOL2                                   = 0x2\n\tVERASE                                  = 0x3\n\tVINTR                                   = 0x8\n\tVKILL                                   = 0x5\n\tVLNEXT                                  = 0xe\n\tVMADDR_CID_ANY                          = 0xffffffff\n\tVMADDR_CID_HOST                         = 0x2\n\tVMADDR_CID_HYPERVISOR                   = 0x0\n\tVMADDR_CID_RESERVED                     = 0x1\n\tVMADDR_PORT_ANY                         = 0xffffffff\n\tVMIN                                    = 0x10\n\tVM_LOADAVG                              = 0x2\n\tVM_MACHFACTOR                           = 0x4\n\tVM_MAXID                                = 0x6\n\tVM_METER                                = 0x1\n\tVM_SWAPUSAGE                            = 0x5\n\tVQUIT                                   = 0x9\n\tVREPRINT                                = 0x6\n\tVSTART                                  = 0xc\n\tVSTATUS                                 = 0x12\n\tVSTOP                                   = 0xd\n\tVSUSP                                   = 0xa\n\tVT0                                     = 0x0\n\tVT1                                     = 0x10000\n\tVTDLY                                   = 0x10000\n\tVTIME                                   = 0x11\n\tVWERASE                                 = 0x4\n\tWCONTINUED                              = 0x10\n\tWCOREFLAG                               = 0x80\n\tWEXITED                                 = 0x4\n\tWNOHANG                                 = 0x1\n\tWNOWAIT                                 = 0x20\n\tWORDSIZE                                = 0x40\n\tWSTOPPED                                = 0x8\n\tWUNTRACED                               = 0x2\n\tXATTR_CREATE                            = 0x2\n\tXATTR_NODEFAULT                         = 0x10\n\tXATTR_NOFOLLOW                          = 0x1\n\tXATTR_NOSECURITY                        = 0x8\n\tXATTR_REPLACE                           = 0x4\n\tXATTR_SHOWCOMPRESSION                   = 0x20\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADARCH        = syscall.Errno(0x56)\n\tEBADEXEC        = syscall.Errno(0x55)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMACHO       = syscall.Errno(0x58)\n\tEBADMSG         = syscall.Errno(0x5e)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x59)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDEVERR         = syscall.Errno(0x53)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x5a)\n\tEILSEQ          = syscall.Errno(0x5c)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x6a)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5f)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x60)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x61)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5b)\n\tENOPOLICY       = syscall.Errno(0x67)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x62)\n\tENOSTR          = syscall.Errno(0x63)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x68)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x66)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x69)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x64)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEPWROFF         = syscall.Errno(0x52)\n\tEQFULL          = syscall.Errno(0x6a)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHLIBVERS      = syscall.Errno(0x57)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x65)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EPWROFF\", \"device power is off\"},\n\t{83, \"EDEVERR\", \"device error\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EBADEXEC\", \"bad executable (or shared library)\"},\n\t{86, \"EBADARCH\", \"bad CPU type in executable\"},\n\t{87, \"ESHLIBVERS\", \"shared library version mismatch\"},\n\t{88, \"EBADMACHO\", \"malformed Mach-o file\"},\n\t{89, \"ECANCELED\", \"operation canceled\"},\n\t{90, \"EIDRM\", \"identifier removed\"},\n\t{91, \"ENOMSG\", \"no message of desired type\"},\n\t{92, \"EILSEQ\", \"illegal byte sequence\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EBADMSG\", \"bad message\"},\n\t{95, \"EMULTIHOP\", \"EMULTIHOP (Reserved)\"},\n\t{96, \"ENODATA\", \"no message available on STREAM\"},\n\t{97, \"ENOLINK\", \"ENOLINK (Reserved)\"},\n\t{98, \"ENOSR\", \"no STREAM resources\"},\n\t{99, \"ENOSTR\", \"not a STREAM\"},\n\t{100, \"EPROTO\", \"protocol error\"},\n\t{101, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{102, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{103, \"ENOPOLICY\", \"policy not found\"},\n\t{104, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{105, \"EOWNERDEAD\", \"previous owner died\"},\n\t{106, \"EQFULL\", \"interface output queue is full\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && darwin\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                            = 0x10\n\tAF_CCITT                                = 0xa\n\tAF_CHAOS                                = 0x5\n\tAF_CNT                                  = 0x15\n\tAF_COIP                                 = 0x14\n\tAF_DATAKIT                              = 0x9\n\tAF_DECnet                               = 0xc\n\tAF_DLI                                  = 0xd\n\tAF_E164                                 = 0x1c\n\tAF_ECMA                                 = 0x8\n\tAF_HYLINK                               = 0xf\n\tAF_IEEE80211                            = 0x25\n\tAF_IMPLINK                              = 0x3\n\tAF_INET                                 = 0x2\n\tAF_INET6                                = 0x1e\n\tAF_IPX                                  = 0x17\n\tAF_ISDN                                 = 0x1c\n\tAF_ISO                                  = 0x7\n\tAF_LAT                                  = 0xe\n\tAF_LINK                                 = 0x12\n\tAF_LOCAL                                = 0x1\n\tAF_MAX                                  = 0x29\n\tAF_NATM                                 = 0x1f\n\tAF_NDRV                                 = 0x1b\n\tAF_NETBIOS                              = 0x21\n\tAF_NS                                   = 0x6\n\tAF_OSI                                  = 0x7\n\tAF_PPP                                  = 0x22\n\tAF_PUP                                  = 0x4\n\tAF_RESERVED_36                          = 0x24\n\tAF_ROUTE                                = 0x11\n\tAF_SIP                                  = 0x18\n\tAF_SNA                                  = 0xb\n\tAF_SYSTEM                               = 0x20\n\tAF_SYS_CONTROL                          = 0x2\n\tAF_UNIX                                 = 0x1\n\tAF_UNSPEC                               = 0x0\n\tAF_UTUN                                 = 0x26\n\tAF_VSOCK                                = 0x28\n\tALTWERASE                               = 0x200\n\tATTR_BIT_MAP_COUNT                      = 0x5\n\tATTR_CMN_ACCESSMASK                     = 0x20000\n\tATTR_CMN_ACCTIME                        = 0x1000\n\tATTR_CMN_ADDEDTIME                      = 0x10000000\n\tATTR_CMN_BKUPTIME                       = 0x2000\n\tATTR_CMN_CHGTIME                        = 0x800\n\tATTR_CMN_CRTIME                         = 0x200\n\tATTR_CMN_DATA_PROTECT_FLAGS             = 0x40000000\n\tATTR_CMN_DEVID                          = 0x2\n\tATTR_CMN_DOCUMENT_ID                    = 0x100000\n\tATTR_CMN_ERROR                          = 0x20000000\n\tATTR_CMN_EXTENDED_SECURITY              = 0x400000\n\tATTR_CMN_FILEID                         = 0x2000000\n\tATTR_CMN_FLAGS                          = 0x40000\n\tATTR_CMN_FNDRINFO                       = 0x4000\n\tATTR_CMN_FSID                           = 0x4\n\tATTR_CMN_FULLPATH                       = 0x8000000\n\tATTR_CMN_GEN_COUNT                      = 0x80000\n\tATTR_CMN_GRPID                          = 0x10000\n\tATTR_CMN_GRPUUID                        = 0x1000000\n\tATTR_CMN_MODTIME                        = 0x400\n\tATTR_CMN_NAME                           = 0x1\n\tATTR_CMN_NAMEDATTRCOUNT                 = 0x80000\n\tATTR_CMN_NAMEDATTRLIST                  = 0x100000\n\tATTR_CMN_OBJID                          = 0x20\n\tATTR_CMN_OBJPERMANENTID                 = 0x40\n\tATTR_CMN_OBJTAG                         = 0x10\n\tATTR_CMN_OBJTYPE                        = 0x8\n\tATTR_CMN_OWNERID                        = 0x8000\n\tATTR_CMN_PARENTID                       = 0x4000000\n\tATTR_CMN_PAROBJID                       = 0x80\n\tATTR_CMN_RETURNED_ATTRS                 = 0x80000000\n\tATTR_CMN_SCRIPT                         = 0x100\n\tATTR_CMN_SETMASK                        = 0x51c7ff00\n\tATTR_CMN_USERACCESS                     = 0x200000\n\tATTR_CMN_UUID                           = 0x800000\n\tATTR_CMN_VALIDMASK                      = 0xffffffff\n\tATTR_CMN_VOLSETMASK                     = 0x6700\n\tATTR_FILE_ALLOCSIZE                     = 0x4\n\tATTR_FILE_CLUMPSIZE                     = 0x10\n\tATTR_FILE_DATAALLOCSIZE                 = 0x400\n\tATTR_FILE_DATAEXTENTS                   = 0x800\n\tATTR_FILE_DATALENGTH                    = 0x200\n\tATTR_FILE_DEVTYPE                       = 0x20\n\tATTR_FILE_FILETYPE                      = 0x40\n\tATTR_FILE_FORKCOUNT                     = 0x80\n\tATTR_FILE_FORKLIST                      = 0x100\n\tATTR_FILE_IOBLOCKSIZE                   = 0x8\n\tATTR_FILE_LINKCOUNT                     = 0x1\n\tATTR_FILE_RSRCALLOCSIZE                 = 0x2000\n\tATTR_FILE_RSRCEXTENTS                   = 0x4000\n\tATTR_FILE_RSRCLENGTH                    = 0x1000\n\tATTR_FILE_SETMASK                       = 0x20\n\tATTR_FILE_TOTALSIZE                     = 0x2\n\tATTR_FILE_VALIDMASK                     = 0x37ff\n\tATTR_VOL_ALLOCATIONCLUMP                = 0x40\n\tATTR_VOL_ATTRIBUTES                     = 0x40000000\n\tATTR_VOL_CAPABILITIES                   = 0x20000\n\tATTR_VOL_DIRCOUNT                       = 0x400\n\tATTR_VOL_ENCODINGSUSED                  = 0x10000\n\tATTR_VOL_FILECOUNT                      = 0x200\n\tATTR_VOL_FSTYPE                         = 0x1\n\tATTR_VOL_INFO                           = 0x80000000\n\tATTR_VOL_IOBLOCKSIZE                    = 0x80\n\tATTR_VOL_MAXOBJCOUNT                    = 0x800\n\tATTR_VOL_MINALLOCATION                  = 0x20\n\tATTR_VOL_MOUNTEDDEVICE                  = 0x8000\n\tATTR_VOL_MOUNTFLAGS                     = 0x4000\n\tATTR_VOL_MOUNTPOINT                     = 0x1000\n\tATTR_VOL_NAME                           = 0x2000\n\tATTR_VOL_OBJCOUNT                       = 0x100\n\tATTR_VOL_QUOTA_SIZE                     = 0x10000000\n\tATTR_VOL_RESERVED_SIZE                  = 0x20000000\n\tATTR_VOL_SETMASK                        = 0x80002000\n\tATTR_VOL_SIGNATURE                      = 0x2\n\tATTR_VOL_SIZE                           = 0x4\n\tATTR_VOL_SPACEAVAIL                     = 0x10\n\tATTR_VOL_SPACEFREE                      = 0x8\n\tATTR_VOL_SPACEUSED                      = 0x800000\n\tATTR_VOL_UUID                           = 0x40000\n\tATTR_VOL_VALIDMASK                      = 0xf087ffff\n\tB0                                      = 0x0\n\tB110                                    = 0x6e\n\tB115200                                 = 0x1c200\n\tB1200                                   = 0x4b0\n\tB134                                    = 0x86\n\tB14400                                  = 0x3840\n\tB150                                    = 0x96\n\tB1800                                   = 0x708\n\tB19200                                  = 0x4b00\n\tB200                                    = 0xc8\n\tB230400                                 = 0x38400\n\tB2400                                   = 0x960\n\tB28800                                  = 0x7080\n\tB300                                    = 0x12c\n\tB38400                                  = 0x9600\n\tB4800                                   = 0x12c0\n\tB50                                     = 0x32\n\tB57600                                  = 0xe100\n\tB600                                    = 0x258\n\tB7200                                   = 0x1c20\n\tB75                                     = 0x4b\n\tB76800                                  = 0x12c00\n\tB9600                                   = 0x2580\n\tBIOCFLUSH                               = 0x20004268\n\tBIOCGBLEN                               = 0x40044266\n\tBIOCGDLT                                = 0x4004426a\n\tBIOCGDLTLIST                            = 0xc00c4279\n\tBIOCGETIF                               = 0x4020426b\n\tBIOCGHDRCMPLT                           = 0x40044274\n\tBIOCGRSIG                               = 0x40044272\n\tBIOCGRTIMEOUT                           = 0x4010426e\n\tBIOCGSEESENT                            = 0x40044276\n\tBIOCGSTATS                              = 0x4008426f\n\tBIOCIMMEDIATE                           = 0x80044270\n\tBIOCPROMISC                             = 0x20004269\n\tBIOCSBLEN                               = 0xc0044266\n\tBIOCSDLT                                = 0x80044278\n\tBIOCSETF                                = 0x80104267\n\tBIOCSETFNR                              = 0x8010427e\n\tBIOCSETIF                               = 0x8020426c\n\tBIOCSHDRCMPLT                           = 0x80044275\n\tBIOCSRSIG                               = 0x80044273\n\tBIOCSRTIMEOUT                           = 0x8010426d\n\tBIOCSSEESENT                            = 0x80044277\n\tBIOCVERSION                             = 0x40044271\n\tBPF_A                                   = 0x10\n\tBPF_ABS                                 = 0x20\n\tBPF_ADD                                 = 0x0\n\tBPF_ALIGNMENT                           = 0x4\n\tBPF_ALU                                 = 0x4\n\tBPF_AND                                 = 0x50\n\tBPF_B                                   = 0x10\n\tBPF_DIV                                 = 0x30\n\tBPF_H                                   = 0x8\n\tBPF_IMM                                 = 0x0\n\tBPF_IND                                 = 0x40\n\tBPF_JA                                  = 0x0\n\tBPF_JEQ                                 = 0x10\n\tBPF_JGE                                 = 0x30\n\tBPF_JGT                                 = 0x20\n\tBPF_JMP                                 = 0x5\n\tBPF_JSET                                = 0x40\n\tBPF_K                                   = 0x0\n\tBPF_LD                                  = 0x0\n\tBPF_LDX                                 = 0x1\n\tBPF_LEN                                 = 0x80\n\tBPF_LSH                                 = 0x60\n\tBPF_MAJOR_VERSION                       = 0x1\n\tBPF_MAXBUFSIZE                          = 0x80000\n\tBPF_MAXINSNS                            = 0x200\n\tBPF_MEM                                 = 0x60\n\tBPF_MEMWORDS                            = 0x10\n\tBPF_MINBUFSIZE                          = 0x20\n\tBPF_MINOR_VERSION                       = 0x1\n\tBPF_MISC                                = 0x7\n\tBPF_MSH                                 = 0xa0\n\tBPF_MUL                                 = 0x20\n\tBPF_NEG                                 = 0x80\n\tBPF_OR                                  = 0x40\n\tBPF_RELEASE                             = 0x30bb6\n\tBPF_RET                                 = 0x6\n\tBPF_RSH                                 = 0x70\n\tBPF_ST                                  = 0x2\n\tBPF_STX                                 = 0x3\n\tBPF_SUB                                 = 0x10\n\tBPF_TAX                                 = 0x0\n\tBPF_TXA                                 = 0x80\n\tBPF_W                                   = 0x0\n\tBPF_X                                   = 0x8\n\tBRKINT                                  = 0x2\n\tBS0                                     = 0x0\n\tBS1                                     = 0x8000\n\tBSDLY                                   = 0x8000\n\tCFLUSH                                  = 0xf\n\tCLOCAL                                  = 0x8000\n\tCLOCK_MONOTONIC                         = 0x6\n\tCLOCK_MONOTONIC_RAW                     = 0x4\n\tCLOCK_MONOTONIC_RAW_APPROX              = 0x5\n\tCLOCK_PROCESS_CPUTIME_ID                = 0xc\n\tCLOCK_REALTIME                          = 0x0\n\tCLOCK_THREAD_CPUTIME_ID                 = 0x10\n\tCLOCK_UPTIME_RAW                        = 0x8\n\tCLOCK_UPTIME_RAW_APPROX                 = 0x9\n\tCLONE_NOFOLLOW                          = 0x1\n\tCLONE_NOOWNERCOPY                       = 0x2\n\tCR0                                     = 0x0\n\tCR1                                     = 0x1000\n\tCR2                                     = 0x2000\n\tCR3                                     = 0x3000\n\tCRDLY                                   = 0x3000\n\tCREAD                                   = 0x800\n\tCRTSCTS                                 = 0x30000\n\tCS5                                     = 0x0\n\tCS6                                     = 0x100\n\tCS7                                     = 0x200\n\tCS8                                     = 0x300\n\tCSIZE                                   = 0x300\n\tCSTART                                  = 0x11\n\tCSTATUS                                 = 0x14\n\tCSTOP                                   = 0x13\n\tCSTOPB                                  = 0x400\n\tCSUSP                                   = 0x1a\n\tCTLIOCGINFO                             = 0xc0644e03\n\tCTL_HW                                  = 0x6\n\tCTL_KERN                                = 0x1\n\tCTL_MAXNAME                             = 0xc\n\tCTL_NET                                 = 0x4\n\tDLT_A429                                = 0xb8\n\tDLT_A653_ICM                            = 0xb9\n\tDLT_AIRONET_HEADER                      = 0x78\n\tDLT_AOS                                 = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394              = 0x8a\n\tDLT_ARCNET                              = 0x7\n\tDLT_ARCNET_LINUX                        = 0x81\n\tDLT_ATM_CLIP                            = 0x13\n\tDLT_ATM_RFC1483                         = 0xb\n\tDLT_AURORA                              = 0x7e\n\tDLT_AX25                                = 0x3\n\tDLT_AX25_KISS                           = 0xca\n\tDLT_BACNET_MS_TP                        = 0xa5\n\tDLT_BLUETOOTH_HCI_H4                    = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR          = 0xc9\n\tDLT_CAN20B                              = 0xbe\n\tDLT_CAN_SOCKETCAN                       = 0xe3\n\tDLT_CHAOS                               = 0x5\n\tDLT_CHDLC                               = 0x68\n\tDLT_CISCO_IOS                           = 0x76\n\tDLT_C_HDLC                              = 0x68\n\tDLT_C_HDLC_WITH_DIR                     = 0xcd\n\tDLT_DBUS                                = 0xe7\n\tDLT_DECT                                = 0xdd\n\tDLT_DOCSIS                              = 0x8f\n\tDLT_DVB_CI                              = 0xeb\n\tDLT_ECONET                              = 0x73\n\tDLT_EN10MB                              = 0x1\n\tDLT_EN3MB                               = 0x2\n\tDLT_ENC                                 = 0x6d\n\tDLT_ERF                                 = 0xc5\n\tDLT_ERF_ETH                             = 0xaf\n\tDLT_ERF_POS                             = 0xb0\n\tDLT_FC_2                                = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS              = 0xe1\n\tDLT_FDDI                                = 0xa\n\tDLT_FLEXRAY                             = 0xd2\n\tDLT_FRELAY                              = 0x6b\n\tDLT_FRELAY_WITH_DIR                     = 0xce\n\tDLT_GCOM_SERIAL                         = 0xad\n\tDLT_GCOM_T1E1                           = 0xac\n\tDLT_GPF_F                               = 0xab\n\tDLT_GPF_T                               = 0xaa\n\tDLT_GPRS_LLC                            = 0xa9\n\tDLT_GSMTAP_ABIS                         = 0xda\n\tDLT_GSMTAP_UM                           = 0xd9\n\tDLT_HHDLC                               = 0x79\n\tDLT_IBM_SN                              = 0x92\n\tDLT_IBM_SP                              = 0x91\n\tDLT_IEEE802                             = 0x6\n\tDLT_IEEE802_11                          = 0x69\n\tDLT_IEEE802_11_RADIO                    = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS                = 0xa3\n\tDLT_IEEE802_15_4                        = 0xc3\n\tDLT_IEEE802_15_4_LINUX                  = 0xbf\n\tDLT_IEEE802_15_4_NOFCS                  = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY             = 0xd7\n\tDLT_IEEE802_16_MAC_CPS                  = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO            = 0xc1\n\tDLT_IPFILTER                            = 0x74\n\tDLT_IPMB                                = 0xc7\n\tDLT_IPMB_LINUX                          = 0xd1\n\tDLT_IPNET                               = 0xe2\n\tDLT_IPOIB                               = 0xf2\n\tDLT_IPV4                                = 0xe4\n\tDLT_IPV6                                = 0xe5\n\tDLT_IP_OVER_FC                          = 0x7a\n\tDLT_JUNIPER_ATM1                        = 0x89\n\tDLT_JUNIPER_ATM2                        = 0x87\n\tDLT_JUNIPER_ATM_CEMIC                   = 0xee\n\tDLT_JUNIPER_CHDLC                       = 0xb5\n\tDLT_JUNIPER_ES                          = 0x84\n\tDLT_JUNIPER_ETHER                       = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL                = 0xea\n\tDLT_JUNIPER_FRELAY                      = 0xb4\n\tDLT_JUNIPER_GGSN                        = 0x85\n\tDLT_JUNIPER_ISM                         = 0xc2\n\tDLT_JUNIPER_MFR                         = 0x86\n\tDLT_JUNIPER_MLFR                        = 0x83\n\tDLT_JUNIPER_MLPPP                       = 0x82\n\tDLT_JUNIPER_MONITOR                     = 0xa4\n\tDLT_JUNIPER_PIC_PEER                    = 0xae\n\tDLT_JUNIPER_PPP                         = 0xb3\n\tDLT_JUNIPER_PPPOE                       = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM                   = 0xa8\n\tDLT_JUNIPER_SERVICES                    = 0x88\n\tDLT_JUNIPER_SRX_E2E                     = 0xe9\n\tDLT_JUNIPER_ST                          = 0xc8\n\tDLT_JUNIPER_VP                          = 0xb7\n\tDLT_JUNIPER_VS                          = 0xe8\n\tDLT_LAPB_WITH_DIR                       = 0xcf\n\tDLT_LAPD                                = 0xcb\n\tDLT_LIN                                 = 0xd4\n\tDLT_LINUX_EVDEV                         = 0xd8\n\tDLT_LINUX_IRDA                          = 0x90\n\tDLT_LINUX_LAPD                          = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION             = 0xa6\n\tDLT_LINUX_SLL                           = 0x71\n\tDLT_LOOP                                = 0x6c\n\tDLT_LTALK                               = 0x72\n\tDLT_MATCHING_MAX                        = 0x10a\n\tDLT_MATCHING_MIN                        = 0x68\n\tDLT_MFR                                 = 0xb6\n\tDLT_MOST                                = 0xd3\n\tDLT_MPEG_2_TS                           = 0xf3\n\tDLT_MPLS                                = 0xdb\n\tDLT_MTP2                                = 0x8c\n\tDLT_MTP2_WITH_PHDR                      = 0x8b\n\tDLT_MTP3                                = 0x8d\n\tDLT_MUX27010                            = 0xec\n\tDLT_NETANALYZER                         = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT             = 0xf1\n\tDLT_NFC_LLCP                            = 0xf5\n\tDLT_NFLOG                               = 0xef\n\tDLT_NG40                                = 0xf4\n\tDLT_NULL                                = 0x0\n\tDLT_PCI_EXP                             = 0x7d\n\tDLT_PFLOG                               = 0x75\n\tDLT_PFSYNC                              = 0x12\n\tDLT_PPI                                 = 0xc0\n\tDLT_PPP                                 = 0x9\n\tDLT_PPP_BSDOS                           = 0x10\n\tDLT_PPP_ETHER                           = 0x33\n\tDLT_PPP_PPPD                            = 0xa6\n\tDLT_PPP_SERIAL                          = 0x32\n\tDLT_PPP_WITH_DIR                        = 0xcc\n\tDLT_PPP_WITH_DIRECTION                  = 0xa6\n\tDLT_PRISM_HEADER                        = 0x77\n\tDLT_PRONET                              = 0x4\n\tDLT_RAIF1                               = 0xc6\n\tDLT_RAW                                 = 0xc\n\tDLT_RIO                                 = 0x7c\n\tDLT_SCCP                                = 0x8e\n\tDLT_SITA                                = 0xc4\n\tDLT_SLIP                                = 0x8\n\tDLT_SLIP_BSDOS                          = 0xf\n\tDLT_STANAG_5066_D_PDU                   = 0xed\n\tDLT_SUNATM                              = 0x7b\n\tDLT_SYMANTEC_FIREWALL                   = 0x63\n\tDLT_TZSP                                = 0x80\n\tDLT_USB                                 = 0xba\n\tDLT_USB_DARWIN                          = 0x10a\n\tDLT_USB_LINUX                           = 0xbd\n\tDLT_USB_LINUX_MMAPPED                   = 0xdc\n\tDLT_USER0                               = 0x93\n\tDLT_USER1                               = 0x94\n\tDLT_USER10                              = 0x9d\n\tDLT_USER11                              = 0x9e\n\tDLT_USER12                              = 0x9f\n\tDLT_USER13                              = 0xa0\n\tDLT_USER14                              = 0xa1\n\tDLT_USER15                              = 0xa2\n\tDLT_USER2                               = 0x95\n\tDLT_USER3                               = 0x96\n\tDLT_USER4                               = 0x97\n\tDLT_USER5                               = 0x98\n\tDLT_USER6                               = 0x99\n\tDLT_USER7                               = 0x9a\n\tDLT_USER8                               = 0x9b\n\tDLT_USER9                               = 0x9c\n\tDLT_WIHART                              = 0xdf\n\tDLT_X2E_SERIAL                          = 0xd5\n\tDLT_X2E_XORAYA                          = 0xd6\n\tDT_BLK                                  = 0x6\n\tDT_CHR                                  = 0x2\n\tDT_DIR                                  = 0x4\n\tDT_FIFO                                 = 0x1\n\tDT_LNK                                  = 0xa\n\tDT_REG                                  = 0x8\n\tDT_SOCK                                 = 0xc\n\tDT_UNKNOWN                              = 0x0\n\tDT_WHT                                  = 0xe\n\tECHO                                    = 0x8\n\tECHOCTL                                 = 0x40\n\tECHOE                                   = 0x2\n\tECHOK                                   = 0x4\n\tECHOKE                                  = 0x1\n\tECHONL                                  = 0x10\n\tECHOPRT                                 = 0x20\n\tEVFILT_AIO                              = -0x3\n\tEVFILT_EXCEPT                           = -0xf\n\tEVFILT_FS                               = -0x9\n\tEVFILT_MACHPORT                         = -0x8\n\tEVFILT_PROC                             = -0x5\n\tEVFILT_READ                             = -0x1\n\tEVFILT_SIGNAL                           = -0x6\n\tEVFILT_SYSCOUNT                         = 0x11\n\tEVFILT_THREADMARKER                     = 0x11\n\tEVFILT_TIMER                            = -0x7\n\tEVFILT_USER                             = -0xa\n\tEVFILT_VM                               = -0xc\n\tEVFILT_VNODE                            = -0x4\n\tEVFILT_WRITE                            = -0x2\n\tEV_ADD                                  = 0x1\n\tEV_CLEAR                                = 0x20\n\tEV_DELETE                               = 0x2\n\tEV_DISABLE                              = 0x8\n\tEV_DISPATCH                             = 0x80\n\tEV_DISPATCH2                            = 0x180\n\tEV_ENABLE                               = 0x4\n\tEV_EOF                                  = 0x8000\n\tEV_ERROR                                = 0x4000\n\tEV_FLAG0                                = 0x1000\n\tEV_FLAG1                                = 0x2000\n\tEV_ONESHOT                              = 0x10\n\tEV_OOBAND                               = 0x2000\n\tEV_POLL                                 = 0x1000\n\tEV_RECEIPT                              = 0x40\n\tEV_SYSFLAGS                             = 0xf000\n\tEV_UDATA_SPECIFIC                       = 0x100\n\tEV_VANISHED                             = 0x200\n\tEXTA                                    = 0x4b00\n\tEXTB                                    = 0x9600\n\tEXTPROC                                 = 0x800\n\tFD_CLOEXEC                              = 0x1\n\tFD_SETSIZE                              = 0x400\n\tFF0                                     = 0x0\n\tFF1                                     = 0x4000\n\tFFDLY                                   = 0x4000\n\tFLUSHO                                  = 0x800000\n\tFSOPT_ATTR_CMN_EXTENDED                 = 0x20\n\tFSOPT_NOFOLLOW                          = 0x1\n\tFSOPT_NOINMEMUPDATE                     = 0x2\n\tFSOPT_PACK_INVAL_ATTRS                  = 0x8\n\tFSOPT_REPORT_FULLSIZE                   = 0x4\n\tFSOPT_RETURN_REALDEV                    = 0x200\n\tF_ADDFILESIGS                           = 0x3d\n\tF_ADDFILESIGS_FOR_DYLD_SIM              = 0x53\n\tF_ADDFILESIGS_INFO                      = 0x67\n\tF_ADDFILESIGS_RETURN                    = 0x61\n\tF_ADDFILESUPPL                          = 0x68\n\tF_ADDSIGS                               = 0x3b\n\tF_ALLOCATEALL                           = 0x4\n\tF_ALLOCATECONTIG                        = 0x2\n\tF_BARRIERFSYNC                          = 0x55\n\tF_CHECK_LV                              = 0x62\n\tF_CHKCLEAN                              = 0x29\n\tF_DUPFD                                 = 0x0\n\tF_DUPFD_CLOEXEC                         = 0x43\n\tF_FINDSIGS                              = 0x4e\n\tF_FLUSH_DATA                            = 0x28\n\tF_FREEZE_FS                             = 0x35\n\tF_FULLFSYNC                             = 0x33\n\tF_GETCODEDIR                            = 0x48\n\tF_GETFD                                 = 0x1\n\tF_GETFL                                 = 0x3\n\tF_GETLK                                 = 0x7\n\tF_GETLKPID                              = 0x42\n\tF_GETNOSIGPIPE                          = 0x4a\n\tF_GETOWN                                = 0x5\n\tF_GETPATH                               = 0x32\n\tF_GETPATH_MTMINFO                       = 0x47\n\tF_GETPATH_NOFIRMLINK                    = 0x66\n\tF_GETPROTECTIONCLASS                    = 0x3f\n\tF_GETPROTECTIONLEVEL                    = 0x4d\n\tF_GETSIGSINFO                           = 0x69\n\tF_GLOBAL_NOCACHE                        = 0x37\n\tF_LOG2PHYS                              = 0x31\n\tF_LOG2PHYS_EXT                          = 0x41\n\tF_NOCACHE                               = 0x30\n\tF_NODIRECT                              = 0x3e\n\tF_OK                                    = 0x0\n\tF_PATHPKG_CHECK                         = 0x34\n\tF_PEOFPOSMODE                           = 0x3\n\tF_PREALLOCATE                           = 0x2a\n\tF_PUNCHHOLE                             = 0x63\n\tF_RDADVISE                              = 0x2c\n\tF_RDAHEAD                               = 0x2d\n\tF_RDLCK                                 = 0x1\n\tF_SETBACKINGSTORE                       = 0x46\n\tF_SETFD                                 = 0x2\n\tF_SETFL                                 = 0x4\n\tF_SETLK                                 = 0x8\n\tF_SETLKW                                = 0x9\n\tF_SETLKWTIMEOUT                         = 0xa\n\tF_SETNOSIGPIPE                          = 0x49\n\tF_SETOWN                                = 0x6\n\tF_SETPROTECTIONCLASS                    = 0x40\n\tF_SETSIZE                               = 0x2b\n\tF_SINGLE_WRITER                         = 0x4c\n\tF_SPECULATIVE_READ                      = 0x65\n\tF_THAW_FS                               = 0x36\n\tF_TRANSCODEKEY                          = 0x4b\n\tF_TRIM_ACTIVE_FILE                      = 0x64\n\tF_UNLCK                                 = 0x2\n\tF_VOLPOSMODE                            = 0x4\n\tF_WRLCK                                 = 0x3\n\tHUPCL                                   = 0x4000\n\tHW_MACHINE                              = 0x1\n\tICANON                                  = 0x100\n\tICMP6_FILTER                            = 0x12\n\tICRNL                                   = 0x100\n\tIEXTEN                                  = 0x400\n\tIFF_ALLMULTI                            = 0x200\n\tIFF_ALTPHYS                             = 0x4000\n\tIFF_BROADCAST                           = 0x2\n\tIFF_DEBUG                               = 0x4\n\tIFF_LINK0                               = 0x1000\n\tIFF_LINK1                               = 0x2000\n\tIFF_LINK2                               = 0x4000\n\tIFF_LOOPBACK                            = 0x8\n\tIFF_MULTICAST                           = 0x8000\n\tIFF_NOARP                               = 0x80\n\tIFF_NOTRAILERS                          = 0x20\n\tIFF_OACTIVE                             = 0x400\n\tIFF_POINTOPOINT                         = 0x10\n\tIFF_PROMISC                             = 0x100\n\tIFF_RUNNING                             = 0x40\n\tIFF_SIMPLEX                             = 0x800\n\tIFF_UP                                  = 0x1\n\tIFNAMSIZ                                = 0x10\n\tIFT_1822                                = 0x2\n\tIFT_6LOWPAN                             = 0x40\n\tIFT_AAL5                                = 0x31\n\tIFT_ARCNET                              = 0x23\n\tIFT_ARCNETPLUS                          = 0x24\n\tIFT_ATM                                 = 0x25\n\tIFT_BRIDGE                              = 0xd1\n\tIFT_CARP                                = 0xf8\n\tIFT_CELLULAR                            = 0xff\n\tIFT_CEPT                                = 0x13\n\tIFT_DS3                                 = 0x1e\n\tIFT_ENC                                 = 0xf4\n\tIFT_EON                                 = 0x19\n\tIFT_ETHER                               = 0x6\n\tIFT_FAITH                               = 0x38\n\tIFT_FDDI                                = 0xf\n\tIFT_FRELAY                              = 0x20\n\tIFT_FRELAYDCE                           = 0x2c\n\tIFT_GIF                                 = 0x37\n\tIFT_HDH1822                             = 0x3\n\tIFT_HIPPI                               = 0x2f\n\tIFT_HSSI                                = 0x2e\n\tIFT_HY                                  = 0xe\n\tIFT_IEEE1394                            = 0x90\n\tIFT_IEEE8023ADLAG                       = 0x88\n\tIFT_ISDNBASIC                           = 0x14\n\tIFT_ISDNPRIMARY                         = 0x15\n\tIFT_ISO88022LLC                         = 0x29\n\tIFT_ISO88023                            = 0x7\n\tIFT_ISO88024                            = 0x8\n\tIFT_ISO88025                            = 0x9\n\tIFT_ISO88026                            = 0xa\n\tIFT_L2VLAN                              = 0x87\n\tIFT_LAPB                                = 0x10\n\tIFT_LOCALTALK                           = 0x2a\n\tIFT_LOOP                                = 0x18\n\tIFT_MIOX25                              = 0x26\n\tIFT_MODEM                               = 0x30\n\tIFT_NSIP                                = 0x1b\n\tIFT_OTHER                               = 0x1\n\tIFT_P10                                 = 0xc\n\tIFT_P80                                 = 0xd\n\tIFT_PARA                                = 0x22\n\tIFT_PDP                                 = 0xff\n\tIFT_PFLOG                               = 0xf5\n\tIFT_PFSYNC                              = 0xf6\n\tIFT_PKTAP                               = 0xfe\n\tIFT_PPP                                 = 0x17\n\tIFT_PROPMUX                             = 0x36\n\tIFT_PROPVIRTUAL                         = 0x35\n\tIFT_PTPSERIAL                           = 0x16\n\tIFT_RS232                               = 0x21\n\tIFT_SDLC                                = 0x11\n\tIFT_SIP                                 = 0x1f\n\tIFT_SLIP                                = 0x1c\n\tIFT_SMDSDXI                             = 0x2b\n\tIFT_SMDSICIP                            = 0x34\n\tIFT_SONET                               = 0x27\n\tIFT_SONETPATH                           = 0x32\n\tIFT_SONETVT                             = 0x33\n\tIFT_STARLAN                             = 0xb\n\tIFT_STF                                 = 0x39\n\tIFT_T1                                  = 0x12\n\tIFT_ULTRA                               = 0x1d\n\tIFT_V35                                 = 0x2d\n\tIFT_X25                                 = 0x5\n\tIFT_X25DDN                              = 0x4\n\tIFT_X25PLE                              = 0x28\n\tIFT_XETHER                              = 0x1a\n\tIGNBRK                                  = 0x1\n\tIGNCR                                   = 0x80\n\tIGNPAR                                  = 0x4\n\tIMAXBEL                                 = 0x2000\n\tINLCR                                   = 0x40\n\tINPCK                                   = 0x10\n\tIN_CLASSA_HOST                          = 0xffffff\n\tIN_CLASSA_MAX                           = 0x80\n\tIN_CLASSA_NET                           = 0xff000000\n\tIN_CLASSA_NSHIFT                        = 0x18\n\tIN_CLASSB_HOST                          = 0xffff\n\tIN_CLASSB_MAX                           = 0x10000\n\tIN_CLASSB_NET                           = 0xffff0000\n\tIN_CLASSB_NSHIFT                        = 0x10\n\tIN_CLASSC_HOST                          = 0xff\n\tIN_CLASSC_NET                           = 0xffffff00\n\tIN_CLASSC_NSHIFT                        = 0x8\n\tIN_CLASSD_HOST                          = 0xfffffff\n\tIN_CLASSD_NET                           = 0xf0000000\n\tIN_CLASSD_NSHIFT                        = 0x1c\n\tIN_LINKLOCALNETNUM                      = 0xa9fe0000\n\tIN_LOOPBACKNET                          = 0x7f\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID          = 0x400473d1\n\tIPPROTO_3PC                             = 0x22\n\tIPPROTO_ADFS                            = 0x44\n\tIPPROTO_AH                              = 0x33\n\tIPPROTO_AHIP                            = 0x3d\n\tIPPROTO_APES                            = 0x63\n\tIPPROTO_ARGUS                           = 0xd\n\tIPPROTO_AX25                            = 0x5d\n\tIPPROTO_BHA                             = 0x31\n\tIPPROTO_BLT                             = 0x1e\n\tIPPROTO_BRSATMON                        = 0x4c\n\tIPPROTO_CFTP                            = 0x3e\n\tIPPROTO_CHAOS                           = 0x10\n\tIPPROTO_CMTP                            = 0x26\n\tIPPROTO_CPHB                            = 0x49\n\tIPPROTO_CPNX                            = 0x48\n\tIPPROTO_DDP                             = 0x25\n\tIPPROTO_DGP                             = 0x56\n\tIPPROTO_DIVERT                          = 0xfe\n\tIPPROTO_DONE                            = 0x101\n\tIPPROTO_DSTOPTS                         = 0x3c\n\tIPPROTO_EGP                             = 0x8\n\tIPPROTO_EMCON                           = 0xe\n\tIPPROTO_ENCAP                           = 0x62\n\tIPPROTO_EON                             = 0x50\n\tIPPROTO_ESP                             = 0x32\n\tIPPROTO_ETHERIP                         = 0x61\n\tIPPROTO_FRAGMENT                        = 0x2c\n\tIPPROTO_GGP                             = 0x3\n\tIPPROTO_GMTP                            = 0x64\n\tIPPROTO_GRE                             = 0x2f\n\tIPPROTO_HELLO                           = 0x3f\n\tIPPROTO_HMP                             = 0x14\n\tIPPROTO_HOPOPTS                         = 0x0\n\tIPPROTO_ICMP                            = 0x1\n\tIPPROTO_ICMPV6                          = 0x3a\n\tIPPROTO_IDP                             = 0x16\n\tIPPROTO_IDPR                            = 0x23\n\tIPPROTO_IDRP                            = 0x2d\n\tIPPROTO_IGMP                            = 0x2\n\tIPPROTO_IGP                             = 0x55\n\tIPPROTO_IGRP                            = 0x58\n\tIPPROTO_IL                              = 0x28\n\tIPPROTO_INLSP                           = 0x34\n\tIPPROTO_INP                             = 0x20\n\tIPPROTO_IP                              = 0x0\n\tIPPROTO_IPCOMP                          = 0x6c\n\tIPPROTO_IPCV                            = 0x47\n\tIPPROTO_IPEIP                           = 0x5e\n\tIPPROTO_IPIP                            = 0x4\n\tIPPROTO_IPPC                            = 0x43\n\tIPPROTO_IPV4                            = 0x4\n\tIPPROTO_IPV6                            = 0x29\n\tIPPROTO_IRTP                            = 0x1c\n\tIPPROTO_KRYPTOLAN                       = 0x41\n\tIPPROTO_LARP                            = 0x5b\n\tIPPROTO_LEAF1                           = 0x19\n\tIPPROTO_LEAF2                           = 0x1a\n\tIPPROTO_MAX                             = 0x100\n\tIPPROTO_MAXID                           = 0x34\n\tIPPROTO_MEAS                            = 0x13\n\tIPPROTO_MHRP                            = 0x30\n\tIPPROTO_MICP                            = 0x5f\n\tIPPROTO_MTP                             = 0x5c\n\tIPPROTO_MUX                             = 0x12\n\tIPPROTO_ND                              = 0x4d\n\tIPPROTO_NHRP                            = 0x36\n\tIPPROTO_NONE                            = 0x3b\n\tIPPROTO_NSP                             = 0x1f\n\tIPPROTO_NVPII                           = 0xb\n\tIPPROTO_OSPFIGP                         = 0x59\n\tIPPROTO_PGM                             = 0x71\n\tIPPROTO_PIGP                            = 0x9\n\tIPPROTO_PIM                             = 0x67\n\tIPPROTO_PRM                             = 0x15\n\tIPPROTO_PUP                             = 0xc\n\tIPPROTO_PVP                             = 0x4b\n\tIPPROTO_RAW                             = 0xff\n\tIPPROTO_RCCMON                          = 0xa\n\tIPPROTO_RDP                             = 0x1b\n\tIPPROTO_ROUTING                         = 0x2b\n\tIPPROTO_RSVP                            = 0x2e\n\tIPPROTO_RVD                             = 0x42\n\tIPPROTO_SATEXPAK                        = 0x40\n\tIPPROTO_SATMON                          = 0x45\n\tIPPROTO_SCCSP                           = 0x60\n\tIPPROTO_SCTP                            = 0x84\n\tIPPROTO_SDRP                            = 0x2a\n\tIPPROTO_SEP                             = 0x21\n\tIPPROTO_SRPC                            = 0x5a\n\tIPPROTO_ST                              = 0x7\n\tIPPROTO_SVMTP                           = 0x52\n\tIPPROTO_SWIPE                           = 0x35\n\tIPPROTO_TCF                             = 0x57\n\tIPPROTO_TCP                             = 0x6\n\tIPPROTO_TP                              = 0x1d\n\tIPPROTO_TPXX                            = 0x27\n\tIPPROTO_TRUNK1                          = 0x17\n\tIPPROTO_TRUNK2                          = 0x18\n\tIPPROTO_TTP                             = 0x54\n\tIPPROTO_UDP                             = 0x11\n\tIPPROTO_VINES                           = 0x53\n\tIPPROTO_VISA                            = 0x46\n\tIPPROTO_VMTP                            = 0x51\n\tIPPROTO_WBEXPAK                         = 0x4f\n\tIPPROTO_WBMON                           = 0x4e\n\tIPPROTO_WSN                             = 0x4a\n\tIPPROTO_XNET                            = 0xf\n\tIPPROTO_XTP                             = 0x24\n\tIPV6_2292DSTOPTS                        = 0x17\n\tIPV6_2292HOPLIMIT                       = 0x14\n\tIPV6_2292HOPOPTS                        = 0x16\n\tIPV6_2292NEXTHOP                        = 0x15\n\tIPV6_2292PKTINFO                        = 0x13\n\tIPV6_2292PKTOPTIONS                     = 0x19\n\tIPV6_2292RTHDR                          = 0x18\n\tIPV6_3542DSTOPTS                        = 0x32\n\tIPV6_3542HOPLIMIT                       = 0x2f\n\tIPV6_3542HOPOPTS                        = 0x31\n\tIPV6_3542NEXTHOP                        = 0x30\n\tIPV6_3542PKTINFO                        = 0x2e\n\tIPV6_3542RTHDR                          = 0x33\n\tIPV6_ADDR_MC_FLAGS_PREFIX               = 0x20\n\tIPV6_ADDR_MC_FLAGS_TRANSIENT            = 0x10\n\tIPV6_ADDR_MC_FLAGS_UNICAST_BASED        = 0x30\n\tIPV6_AUTOFLOWLABEL                      = 0x3b\n\tIPV6_BINDV6ONLY                         = 0x1b\n\tIPV6_BOUND_IF                           = 0x7d\n\tIPV6_CHECKSUM                           = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS             = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP             = 0x1\n\tIPV6_DEFHLIM                            = 0x40\n\tIPV6_DONTFRAG                           = 0x3e\n\tIPV6_DSTOPTS                            = 0x32\n\tIPV6_FAITH                              = 0x1d\n\tIPV6_FLOWINFO_MASK                      = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK                     = 0xffff0f00\n\tIPV6_FLOW_ECN_MASK                      = 0x3000\n\tIPV6_FRAGTTL                            = 0x3c\n\tIPV6_FW_ADD                             = 0x1e\n\tIPV6_FW_DEL                             = 0x1f\n\tIPV6_FW_FLUSH                           = 0x20\n\tIPV6_FW_GET                             = 0x22\n\tIPV6_FW_ZERO                            = 0x21\n\tIPV6_HLIMDEC                            = 0x1\n\tIPV6_HOPLIMIT                           = 0x2f\n\tIPV6_HOPOPTS                            = 0x31\n\tIPV6_IPSEC_POLICY                       = 0x1c\n\tIPV6_JOIN_GROUP                         = 0xc\n\tIPV6_LEAVE_GROUP                        = 0xd\n\tIPV6_MAXHLIM                            = 0xff\n\tIPV6_MAXOPTHDR                          = 0x800\n\tIPV6_MAXPACKET                          = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER               = 0x200\n\tIPV6_MAX_MEMBERSHIPS                    = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER                = 0x80\n\tIPV6_MIN_MEMBERSHIPS                    = 0x1f\n\tIPV6_MMTU                               = 0x500\n\tIPV6_MSFILTER                           = 0x4a\n\tIPV6_MULTICAST_HOPS                     = 0xa\n\tIPV6_MULTICAST_IF                       = 0x9\n\tIPV6_MULTICAST_LOOP                     = 0xb\n\tIPV6_NEXTHOP                            = 0x30\n\tIPV6_PATHMTU                            = 0x2c\n\tIPV6_PKTINFO                            = 0x2e\n\tIPV6_PORTRANGE                          = 0xe\n\tIPV6_PORTRANGE_DEFAULT                  = 0x0\n\tIPV6_PORTRANGE_HIGH                     = 0x1\n\tIPV6_PORTRANGE_LOW                      = 0x2\n\tIPV6_PREFER_TEMPADDR                    = 0x3f\n\tIPV6_RECVDSTOPTS                        = 0x28\n\tIPV6_RECVHOPLIMIT                       = 0x25\n\tIPV6_RECVHOPOPTS                        = 0x27\n\tIPV6_RECVPATHMTU                        = 0x2b\n\tIPV6_RECVPKTINFO                        = 0x3d\n\tIPV6_RECVRTHDR                          = 0x26\n\tIPV6_RECVTCLASS                         = 0x23\n\tIPV6_RTHDR                              = 0x33\n\tIPV6_RTHDRDSTOPTS                       = 0x39\n\tIPV6_RTHDR_LOOSE                        = 0x0\n\tIPV6_RTHDR_STRICT                       = 0x1\n\tIPV6_RTHDR_TYPE_0                       = 0x0\n\tIPV6_SOCKOPT_RESERVED1                  = 0x3\n\tIPV6_TCLASS                             = 0x24\n\tIPV6_UNICAST_HOPS                       = 0x4\n\tIPV6_USE_MIN_MTU                        = 0x2a\n\tIPV6_V6ONLY                             = 0x1b\n\tIPV6_VERSION                            = 0x60\n\tIPV6_VERSION_MASK                       = 0xf0\n\tIP_ADD_MEMBERSHIP                       = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP                = 0x46\n\tIP_BLOCK_SOURCE                         = 0x48\n\tIP_BOUND_IF                             = 0x19\n\tIP_DEFAULT_MULTICAST_LOOP               = 0x1\n\tIP_DEFAULT_MULTICAST_TTL                = 0x1\n\tIP_DF                                   = 0x4000\n\tIP_DONTFRAG                             = 0x1c\n\tIP_DROP_MEMBERSHIP                      = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP               = 0x47\n\tIP_DUMMYNET_CONFIGURE                   = 0x3c\n\tIP_DUMMYNET_DEL                         = 0x3d\n\tIP_DUMMYNET_FLUSH                       = 0x3e\n\tIP_DUMMYNET_GET                         = 0x40\n\tIP_FAITH                                = 0x16\n\tIP_FW_ADD                               = 0x28\n\tIP_FW_DEL                               = 0x29\n\tIP_FW_FLUSH                             = 0x2a\n\tIP_FW_GET                               = 0x2c\n\tIP_FW_RESETLOG                          = 0x2d\n\tIP_FW_ZERO                              = 0x2b\n\tIP_HDRINCL                              = 0x2\n\tIP_IPSEC_POLICY                         = 0x15\n\tIP_MAXPACKET                            = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER                 = 0x200\n\tIP_MAX_MEMBERSHIPS                      = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER                 = 0x80\n\tIP_MAX_SOCK_SRC_FILTER                  = 0x80\n\tIP_MF                                   = 0x2000\n\tIP_MIN_MEMBERSHIPS                      = 0x1f\n\tIP_MSFILTER                             = 0x4a\n\tIP_MSS                                  = 0x240\n\tIP_MULTICAST_IF                         = 0x9\n\tIP_MULTICAST_IFINDEX                    = 0x42\n\tIP_MULTICAST_LOOP                       = 0xb\n\tIP_MULTICAST_TTL                        = 0xa\n\tIP_MULTICAST_VIF                        = 0xe\n\tIP_NAT__XXX                             = 0x37\n\tIP_OFFMASK                              = 0x1fff\n\tIP_OLD_FW_ADD                           = 0x32\n\tIP_OLD_FW_DEL                           = 0x33\n\tIP_OLD_FW_FLUSH                         = 0x34\n\tIP_OLD_FW_GET                           = 0x36\n\tIP_OLD_FW_RESETLOG                      = 0x38\n\tIP_OLD_FW_ZERO                          = 0x35\n\tIP_OPTIONS                              = 0x1\n\tIP_PKTINFO                              = 0x1a\n\tIP_PORTRANGE                            = 0x13\n\tIP_PORTRANGE_DEFAULT                    = 0x0\n\tIP_PORTRANGE_HIGH                       = 0x1\n\tIP_PORTRANGE_LOW                        = 0x2\n\tIP_RECVDSTADDR                          = 0x7\n\tIP_RECVIF                               = 0x14\n\tIP_RECVOPTS                             = 0x5\n\tIP_RECVPKTINFO                          = 0x1a\n\tIP_RECVRETOPTS                          = 0x6\n\tIP_RECVTOS                              = 0x1b\n\tIP_RECVTTL                              = 0x18\n\tIP_RETOPTS                              = 0x8\n\tIP_RF                                   = 0x8000\n\tIP_RSVP_OFF                             = 0x10\n\tIP_RSVP_ON                              = 0xf\n\tIP_RSVP_VIF_OFF                         = 0x12\n\tIP_RSVP_VIF_ON                          = 0x11\n\tIP_STRIPHDR                             = 0x17\n\tIP_TOS                                  = 0x3\n\tIP_TRAFFIC_MGT_BACKGROUND               = 0x41\n\tIP_TTL                                  = 0x4\n\tIP_UNBLOCK_SOURCE                       = 0x49\n\tISIG                                    = 0x80\n\tISTRIP                                  = 0x20\n\tIUTF8                                   = 0x4000\n\tIXANY                                   = 0x800\n\tIXOFF                                   = 0x400\n\tIXON                                    = 0x200\n\tKERN_HOSTNAME                           = 0xa\n\tKERN_OSRELEASE                          = 0x2\n\tKERN_OSTYPE                             = 0x1\n\tKERN_VERSION                            = 0x4\n\tLOCAL_PEERCRED                          = 0x1\n\tLOCAL_PEEREPID                          = 0x3\n\tLOCAL_PEEREUUID                         = 0x5\n\tLOCAL_PEERPID                           = 0x2\n\tLOCAL_PEERTOKEN                         = 0x6\n\tLOCAL_PEERUUID                          = 0x4\n\tLOCK_EX                                 = 0x2\n\tLOCK_NB                                 = 0x4\n\tLOCK_SH                                 = 0x1\n\tLOCK_UN                                 = 0x8\n\tMADV_CAN_REUSE                          = 0x9\n\tMADV_DONTNEED                           = 0x4\n\tMADV_FREE                               = 0x5\n\tMADV_FREE_REUSABLE                      = 0x7\n\tMADV_FREE_REUSE                         = 0x8\n\tMADV_NORMAL                             = 0x0\n\tMADV_PAGEOUT                            = 0xa\n\tMADV_RANDOM                             = 0x1\n\tMADV_SEQUENTIAL                         = 0x2\n\tMADV_WILLNEED                           = 0x3\n\tMADV_ZERO_WIRED_PAGES                   = 0x6\n\tMAP_32BIT                               = 0x8000\n\tMAP_ANON                                = 0x1000\n\tMAP_ANONYMOUS                           = 0x1000\n\tMAP_COPY                                = 0x2\n\tMAP_FILE                                = 0x0\n\tMAP_FIXED                               = 0x10\n\tMAP_HASSEMAPHORE                        = 0x200\n\tMAP_JIT                                 = 0x800\n\tMAP_NOCACHE                             = 0x400\n\tMAP_NOEXTEND                            = 0x100\n\tMAP_NORESERVE                           = 0x40\n\tMAP_PRIVATE                             = 0x2\n\tMAP_RENAME                              = 0x20\n\tMAP_RESERVED0080                        = 0x80\n\tMAP_RESILIENT_CODESIGN                  = 0x2000\n\tMAP_RESILIENT_MEDIA                     = 0x4000\n\tMAP_SHARED                              = 0x1\n\tMAP_TRANSLATED_ALLOW_EXECUTE            = 0x20000\n\tMAP_UNIX03                              = 0x40000\n\tMCAST_BLOCK_SOURCE                      = 0x54\n\tMCAST_EXCLUDE                           = 0x2\n\tMCAST_INCLUDE                           = 0x1\n\tMCAST_JOIN_GROUP                        = 0x50\n\tMCAST_JOIN_SOURCE_GROUP                 = 0x52\n\tMCAST_LEAVE_GROUP                       = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP                = 0x53\n\tMCAST_UNBLOCK_SOURCE                    = 0x55\n\tMCAST_UNDEFINED                         = 0x0\n\tMCL_CURRENT                             = 0x1\n\tMCL_FUTURE                              = 0x2\n\tMNT_ASYNC                               = 0x40\n\tMNT_AUTOMOUNTED                         = 0x400000\n\tMNT_CMDFLAGS                            = 0xf0000\n\tMNT_CPROTECT                            = 0x80\n\tMNT_DEFWRITE                            = 0x2000000\n\tMNT_DONTBROWSE                          = 0x100000\n\tMNT_DOVOLFS                             = 0x8000\n\tMNT_DWAIT                               = 0x4\n\tMNT_EXPORTED                            = 0x100\n\tMNT_EXT_ROOT_DATA_VOL                   = 0x1\n\tMNT_FORCE                               = 0x80000\n\tMNT_IGNORE_OWNERSHIP                    = 0x200000\n\tMNT_JOURNALED                           = 0x800000\n\tMNT_LOCAL                               = 0x1000\n\tMNT_MULTILABEL                          = 0x4000000\n\tMNT_NOATIME                             = 0x10000000\n\tMNT_NOBLOCK                             = 0x20000\n\tMNT_NODEV                               = 0x10\n\tMNT_NOEXEC                              = 0x4\n\tMNT_NOSUID                              = 0x8\n\tMNT_NOUSERXATTR                         = 0x1000000\n\tMNT_NOWAIT                              = 0x2\n\tMNT_QUARANTINE                          = 0x400\n\tMNT_QUOTA                               = 0x2000\n\tMNT_RDONLY                              = 0x1\n\tMNT_RELOAD                              = 0x40000\n\tMNT_REMOVABLE                           = 0x200\n\tMNT_ROOTFS                              = 0x4000\n\tMNT_SNAPSHOT                            = 0x40000000\n\tMNT_STRICTATIME                         = 0x80000000\n\tMNT_SYNCHRONOUS                         = 0x2\n\tMNT_UNION                               = 0x20\n\tMNT_UNKNOWNPERMISSIONS                  = 0x200000\n\tMNT_UPDATE                              = 0x10000\n\tMNT_VISFLAGMASK                         = 0xd7f0f7ff\n\tMNT_WAIT                                = 0x1\n\tMSG_CTRUNC                              = 0x20\n\tMSG_DONTROUTE                           = 0x4\n\tMSG_DONTWAIT                            = 0x80\n\tMSG_EOF                                 = 0x100\n\tMSG_EOR                                 = 0x8\n\tMSG_FLUSH                               = 0x400\n\tMSG_HAVEMORE                            = 0x2000\n\tMSG_HOLD                                = 0x800\n\tMSG_NEEDSA                              = 0x10000\n\tMSG_NOSIGNAL                            = 0x80000\n\tMSG_OOB                                 = 0x1\n\tMSG_PEEK                                = 0x2\n\tMSG_RCVMORE                             = 0x4000\n\tMSG_SEND                                = 0x1000\n\tMSG_TRUNC                               = 0x10\n\tMSG_WAITALL                             = 0x40\n\tMSG_WAITSTREAM                          = 0x200\n\tMS_ASYNC                                = 0x1\n\tMS_DEACTIVATE                           = 0x8\n\tMS_INVALIDATE                           = 0x2\n\tMS_KILLPAGES                            = 0x4\n\tMS_SYNC                                 = 0x10\n\tNAME_MAX                                = 0xff\n\tNET_RT_DUMP                             = 0x1\n\tNET_RT_DUMP2                            = 0x7\n\tNET_RT_FLAGS                            = 0x2\n\tNET_RT_FLAGS_PRIV                       = 0xa\n\tNET_RT_IFLIST                           = 0x3\n\tNET_RT_IFLIST2                          = 0x6\n\tNET_RT_MAXID                            = 0xb\n\tNET_RT_STAT                             = 0x4\n\tNET_RT_TRASH                            = 0x5\n\tNFDBITS                                 = 0x20\n\tNL0                                     = 0x0\n\tNL1                                     = 0x100\n\tNL2                                     = 0x200\n\tNL3                                     = 0x300\n\tNLDLY                                   = 0x300\n\tNOFLSH                                  = 0x80000000\n\tNOKERNINFO                              = 0x2000000\n\tNOTE_ABSOLUTE                           = 0x8\n\tNOTE_ATTRIB                             = 0x8\n\tNOTE_BACKGROUND                         = 0x40\n\tNOTE_CHILD                              = 0x4\n\tNOTE_CRITICAL                           = 0x20\n\tNOTE_DELETE                             = 0x1\n\tNOTE_EXEC                               = 0x20000000\n\tNOTE_EXIT                               = 0x80000000\n\tNOTE_EXITSTATUS                         = 0x4000000\n\tNOTE_EXIT_CSERROR                       = 0x40000\n\tNOTE_EXIT_DECRYPTFAIL                   = 0x10000\n\tNOTE_EXIT_DETAIL                        = 0x2000000\n\tNOTE_EXIT_DETAIL_MASK                   = 0x70000\n\tNOTE_EXIT_MEMORY                        = 0x20000\n\tNOTE_EXIT_REPARENTED                    = 0x80000\n\tNOTE_EXTEND                             = 0x4\n\tNOTE_FFAND                              = 0x40000000\n\tNOTE_FFCOPY                             = 0xc0000000\n\tNOTE_FFCTRLMASK                         = 0xc0000000\n\tNOTE_FFLAGSMASK                         = 0xffffff\n\tNOTE_FFNOP                              = 0x0\n\tNOTE_FFOR                               = 0x80000000\n\tNOTE_FORK                               = 0x40000000\n\tNOTE_FUNLOCK                            = 0x100\n\tNOTE_LEEWAY                             = 0x10\n\tNOTE_LINK                               = 0x10\n\tNOTE_LOWAT                              = 0x1\n\tNOTE_MACHTIME                           = 0x100\n\tNOTE_MACH_CONTINUOUS_TIME               = 0x80\n\tNOTE_NONE                               = 0x80\n\tNOTE_NSECONDS                           = 0x4\n\tNOTE_OOB                                = 0x2\n\tNOTE_PCTRLMASK                          = -0x100000\n\tNOTE_PDATAMASK                          = 0xfffff\n\tNOTE_REAP                               = 0x10000000\n\tNOTE_RENAME                             = 0x20\n\tNOTE_REVOKE                             = 0x40\n\tNOTE_SECONDS                            = 0x1\n\tNOTE_SIGNAL                             = 0x8000000\n\tNOTE_TRACK                              = 0x1\n\tNOTE_TRACKERR                           = 0x2\n\tNOTE_TRIGGER                            = 0x1000000\n\tNOTE_USECONDS                           = 0x2\n\tNOTE_VM_ERROR                           = 0x10000000\n\tNOTE_VM_PRESSURE                        = 0x80000000\n\tNOTE_VM_PRESSURE_SUDDEN_TERMINATE       = 0x20000000\n\tNOTE_VM_PRESSURE_TERMINATE              = 0x40000000\n\tNOTE_WRITE                              = 0x2\n\tOCRNL                                   = 0x10\n\tOFDEL                                   = 0x20000\n\tOFILL                                   = 0x80\n\tONLCR                                   = 0x2\n\tONLRET                                  = 0x40\n\tONOCR                                   = 0x20\n\tONOEOT                                  = 0x8\n\tOPOST                                   = 0x1\n\tOXTABS                                  = 0x4\n\tO_ACCMODE                               = 0x3\n\tO_ALERT                                 = 0x20000000\n\tO_APPEND                                = 0x8\n\tO_ASYNC                                 = 0x40\n\tO_CLOEXEC                               = 0x1000000\n\tO_CREAT                                 = 0x200\n\tO_DIRECTORY                             = 0x100000\n\tO_DP_GETRAWENCRYPTED                    = 0x1\n\tO_DP_GETRAWUNENCRYPTED                  = 0x2\n\tO_DSYNC                                 = 0x400000\n\tO_EVTONLY                               = 0x8000\n\tO_EXCL                                  = 0x800\n\tO_EXLOCK                                = 0x20\n\tO_FSYNC                                 = 0x80\n\tO_NDELAY                                = 0x4\n\tO_NOCTTY                                = 0x20000\n\tO_NOFOLLOW                              = 0x100\n\tO_NOFOLLOW_ANY                          = 0x20000000\n\tO_NONBLOCK                              = 0x4\n\tO_POPUP                                 = 0x80000000\n\tO_RDONLY                                = 0x0\n\tO_RDWR                                  = 0x2\n\tO_SHLOCK                                = 0x10\n\tO_SYMLINK                               = 0x200000\n\tO_SYNC                                  = 0x80\n\tO_TRUNC                                 = 0x400\n\tO_WRONLY                                = 0x1\n\tPARENB                                  = 0x1000\n\tPARMRK                                  = 0x8\n\tPARODD                                  = 0x2000\n\tPENDIN                                  = 0x20000000\n\tPRIO_PGRP                               = 0x1\n\tPRIO_PROCESS                            = 0x0\n\tPRIO_USER                               = 0x2\n\tPROT_EXEC                               = 0x4\n\tPROT_NONE                               = 0x0\n\tPROT_READ                               = 0x1\n\tPROT_WRITE                              = 0x2\n\tPT_ATTACH                               = 0xa\n\tPT_ATTACHEXC                            = 0xe\n\tPT_CONTINUE                             = 0x7\n\tPT_DENY_ATTACH                          = 0x1f\n\tPT_DETACH                               = 0xb\n\tPT_FIRSTMACH                            = 0x20\n\tPT_FORCEQUOTA                           = 0x1e\n\tPT_KILL                                 = 0x8\n\tPT_READ_D                               = 0x2\n\tPT_READ_I                               = 0x1\n\tPT_READ_U                               = 0x3\n\tPT_SIGEXC                               = 0xc\n\tPT_STEP                                 = 0x9\n\tPT_THUPDATE                             = 0xd\n\tPT_TRACE_ME                             = 0x0\n\tPT_WRITE_D                              = 0x5\n\tPT_WRITE_I                              = 0x4\n\tPT_WRITE_U                              = 0x6\n\tRENAME_EXCL                             = 0x4\n\tRENAME_NOFOLLOW_ANY                     = 0x10\n\tRENAME_RESERVED1                        = 0x8\n\tRENAME_SECLUDE                          = 0x1\n\tRENAME_SWAP                             = 0x2\n\tRLIMIT_AS                               = 0x5\n\tRLIMIT_CORE                             = 0x4\n\tRLIMIT_CPU                              = 0x0\n\tRLIMIT_CPU_USAGE_MONITOR                = 0x2\n\tRLIMIT_DATA                             = 0x2\n\tRLIMIT_FSIZE                            = 0x1\n\tRLIMIT_MEMLOCK                          = 0x6\n\tRLIMIT_NOFILE                           = 0x8\n\tRLIMIT_NPROC                            = 0x7\n\tRLIMIT_RSS                              = 0x5\n\tRLIMIT_STACK                            = 0x3\n\tRLIM_INFINITY                           = 0x7fffffffffffffff\n\tRTAX_AUTHOR                             = 0x6\n\tRTAX_BRD                                = 0x7\n\tRTAX_DST                                = 0x0\n\tRTAX_GATEWAY                            = 0x1\n\tRTAX_GENMASK                            = 0x3\n\tRTAX_IFA                                = 0x5\n\tRTAX_IFP                                = 0x4\n\tRTAX_MAX                                = 0x8\n\tRTAX_NETMASK                            = 0x2\n\tRTA_AUTHOR                              = 0x40\n\tRTA_BRD                                 = 0x80\n\tRTA_DST                                 = 0x1\n\tRTA_GATEWAY                             = 0x2\n\tRTA_GENMASK                             = 0x8\n\tRTA_IFA                                 = 0x20\n\tRTA_IFP                                 = 0x10\n\tRTA_NETMASK                             = 0x4\n\tRTF_BLACKHOLE                           = 0x1000\n\tRTF_BROADCAST                           = 0x400000\n\tRTF_CLONING                             = 0x100\n\tRTF_CONDEMNED                           = 0x2000000\n\tRTF_DEAD                                = 0x20000000\n\tRTF_DELCLONE                            = 0x80\n\tRTF_DONE                                = 0x40\n\tRTF_DYNAMIC                             = 0x10\n\tRTF_GATEWAY                             = 0x2\n\tRTF_GLOBAL                              = 0x40000000\n\tRTF_HOST                                = 0x4\n\tRTF_IFREF                               = 0x4000000\n\tRTF_IFSCOPE                             = 0x1000000\n\tRTF_LLDATA                              = 0x400\n\tRTF_LLINFO                              = 0x400\n\tRTF_LOCAL                               = 0x200000\n\tRTF_MODIFIED                            = 0x20\n\tRTF_MULTICAST                           = 0x800000\n\tRTF_NOIFREF                             = 0x2000\n\tRTF_PINNED                              = 0x100000\n\tRTF_PRCLONING                           = 0x10000\n\tRTF_PROTO1                              = 0x8000\n\tRTF_PROTO2                              = 0x4000\n\tRTF_PROTO3                              = 0x40000\n\tRTF_PROXY                               = 0x8000000\n\tRTF_REJECT                              = 0x8\n\tRTF_ROUTER                              = 0x10000000\n\tRTF_STATIC                              = 0x800\n\tRTF_UP                                  = 0x1\n\tRTF_WASCLONED                           = 0x20000\n\tRTF_XRESOLVE                            = 0x200\n\tRTM_ADD                                 = 0x1\n\tRTM_CHANGE                              = 0x3\n\tRTM_DELADDR                             = 0xd\n\tRTM_DELETE                              = 0x2\n\tRTM_DELMADDR                            = 0x10\n\tRTM_GET                                 = 0x4\n\tRTM_GET2                                = 0x14\n\tRTM_IFINFO                              = 0xe\n\tRTM_IFINFO2                             = 0x12\n\tRTM_LOCK                                = 0x8\n\tRTM_LOSING                              = 0x5\n\tRTM_MISS                                = 0x7\n\tRTM_NEWADDR                             = 0xc\n\tRTM_NEWMADDR                            = 0xf\n\tRTM_NEWMADDR2                           = 0x13\n\tRTM_OLDADD                              = 0x9\n\tRTM_OLDDEL                              = 0xa\n\tRTM_REDIRECT                            = 0x6\n\tRTM_RESOLVE                             = 0xb\n\tRTM_RTTUNIT                             = 0xf4240\n\tRTM_VERSION                             = 0x5\n\tRTV_EXPIRE                              = 0x4\n\tRTV_HOPCOUNT                            = 0x2\n\tRTV_MTU                                 = 0x1\n\tRTV_RPIPE                               = 0x8\n\tRTV_RTT                                 = 0x40\n\tRTV_RTTVAR                              = 0x80\n\tRTV_SPIPE                               = 0x10\n\tRTV_SSTHRESH                            = 0x20\n\tRUSAGE_CHILDREN                         = -0x1\n\tRUSAGE_SELF                             = 0x0\n\tSCM_CREDS                               = 0x3\n\tSCM_RIGHTS                              = 0x1\n\tSCM_TIMESTAMP                           = 0x2\n\tSCM_TIMESTAMP_MONOTONIC                 = 0x4\n\tSEEK_CUR                                = 0x1\n\tSEEK_DATA                               = 0x4\n\tSEEK_END                                = 0x2\n\tSEEK_HOLE                               = 0x3\n\tSEEK_SET                                = 0x0\n\tSF_APPEND                               = 0x40000\n\tSF_ARCHIVED                             = 0x10000\n\tSF_DATALESS                             = 0x40000000\n\tSF_FIRMLINK                             = 0x800000\n\tSF_IMMUTABLE                            = 0x20000\n\tSF_NOUNLINK                             = 0x100000\n\tSF_RESTRICTED                           = 0x80000\n\tSF_SETTABLE                             = 0x3fff0000\n\tSF_SUPPORTED                            = 0x9f0000\n\tSF_SYNTHETIC                            = 0xc0000000\n\tSHUT_RD                                 = 0x0\n\tSHUT_RDWR                               = 0x2\n\tSHUT_WR                                 = 0x1\n\tSIOCADDMULTI                            = 0x80206931\n\tSIOCAIFADDR                             = 0x8040691a\n\tSIOCARPIPLL                             = 0xc0206928\n\tSIOCATMARK                              = 0x40047307\n\tSIOCAUTOADDR                            = 0xc0206926\n\tSIOCAUTONETMASK                         = 0x80206927\n\tSIOCDELMULTI                            = 0x80206932\n\tSIOCDIFADDR                             = 0x80206919\n\tSIOCDIFPHYADDR                          = 0x80206941\n\tSIOCGDRVSPEC                            = 0xc028697b\n\tSIOCGETVLAN                             = 0xc020697f\n\tSIOCGHIWAT                              = 0x40047301\n\tSIOCGIF6LOWPAN                          = 0xc02069c5\n\tSIOCGIFADDR                             = 0xc0206921\n\tSIOCGIFALTMTU                           = 0xc0206948\n\tSIOCGIFASYNCMAP                         = 0xc020697c\n\tSIOCGIFBOND                             = 0xc0206947\n\tSIOCGIFBRDADDR                          = 0xc0206923\n\tSIOCGIFCAP                              = 0xc020695b\n\tSIOCGIFCONF                             = 0xc00c6924\n\tSIOCGIFDEVMTU                           = 0xc0206944\n\tSIOCGIFDSTADDR                          = 0xc0206922\n\tSIOCGIFFLAGS                            = 0xc0206911\n\tSIOCGIFFUNCTIONALTYPE                   = 0xc02069ad\n\tSIOCGIFGENERIC                          = 0xc020693a\n\tSIOCGIFKPI                              = 0xc0206987\n\tSIOCGIFMAC                              = 0xc0206982\n\tSIOCGIFMEDIA                            = 0xc02c6938\n\tSIOCGIFMETRIC                           = 0xc0206917\n\tSIOCGIFMTU                              = 0xc0206933\n\tSIOCGIFNETMASK                          = 0xc0206925\n\tSIOCGIFPDSTADDR                         = 0xc0206940\n\tSIOCGIFPHYS                             = 0xc0206935\n\tSIOCGIFPSRCADDR                         = 0xc020693f\n\tSIOCGIFSTATUS                           = 0xc331693d\n\tSIOCGIFVLAN                             = 0xc020697f\n\tSIOCGIFWAKEFLAGS                        = 0xc0206988\n\tSIOCGIFXMEDIA                           = 0xc02c6948\n\tSIOCGLOWAT                              = 0x40047303\n\tSIOCGPGRP                               = 0x40047309\n\tSIOCIFCREATE                            = 0xc0206978\n\tSIOCIFCREATE2                           = 0xc020697a\n\tSIOCIFDESTROY                           = 0x80206979\n\tSIOCIFGCLONERS                          = 0xc0106981\n\tSIOCRSLVMULTI                           = 0xc010693b\n\tSIOCSDRVSPEC                            = 0x8028697b\n\tSIOCSETVLAN                             = 0x8020697e\n\tSIOCSHIWAT                              = 0x80047300\n\tSIOCSIF6LOWPAN                          = 0x802069c4\n\tSIOCSIFADDR                             = 0x8020690c\n\tSIOCSIFALTMTU                           = 0x80206945\n\tSIOCSIFASYNCMAP                         = 0x8020697d\n\tSIOCSIFBOND                             = 0x80206946\n\tSIOCSIFBRDADDR                          = 0x80206913\n\tSIOCSIFCAP                              = 0x8020695a\n\tSIOCSIFDSTADDR                          = 0x8020690e\n\tSIOCSIFFLAGS                            = 0x80206910\n\tSIOCSIFGENERIC                          = 0x80206939\n\tSIOCSIFKPI                              = 0x80206986\n\tSIOCSIFLLADDR                           = 0x8020693c\n\tSIOCSIFMAC                              = 0x80206983\n\tSIOCSIFMEDIA                            = 0xc0206937\n\tSIOCSIFMETRIC                           = 0x80206918\n\tSIOCSIFMTU                              = 0x80206934\n\tSIOCSIFNETMASK                          = 0x80206916\n\tSIOCSIFPHYADDR                          = 0x8040693e\n\tSIOCSIFPHYS                             = 0x80206936\n\tSIOCSIFVLAN                             = 0x8020697e\n\tSIOCSLOWAT                              = 0x80047302\n\tSIOCSPGRP                               = 0x80047308\n\tSOCK_DGRAM                              = 0x2\n\tSOCK_MAXADDRLEN                         = 0xff\n\tSOCK_RAW                                = 0x3\n\tSOCK_RDM                                = 0x4\n\tSOCK_SEQPACKET                          = 0x5\n\tSOCK_STREAM                             = 0x1\n\tSOL_LOCAL                               = 0x0\n\tSOL_SOCKET                              = 0xffff\n\tSOMAXCONN                               = 0x80\n\tSO_ACCEPTCONN                           = 0x2\n\tSO_BROADCAST                            = 0x20\n\tSO_DEBUG                                = 0x1\n\tSO_DONTROUTE                            = 0x10\n\tSO_DONTTRUNC                            = 0x2000\n\tSO_ERROR                                = 0x1007\n\tSO_KEEPALIVE                            = 0x8\n\tSO_LABEL                                = 0x1010\n\tSO_LINGER                               = 0x80\n\tSO_LINGER_SEC                           = 0x1080\n\tSO_NETSVC_MARKING_LEVEL                 = 0x1119\n\tSO_NET_SERVICE_TYPE                     = 0x1116\n\tSO_NKE                                  = 0x1021\n\tSO_NOADDRERR                            = 0x1023\n\tSO_NOSIGPIPE                            = 0x1022\n\tSO_NOTIFYCONFLICT                       = 0x1026\n\tSO_NP_EXTENSIONS                        = 0x1083\n\tSO_NREAD                                = 0x1020\n\tSO_NUMRCVPKT                            = 0x1112\n\tSO_NWRITE                               = 0x1024\n\tSO_OOBINLINE                            = 0x100\n\tSO_PEERLABEL                            = 0x1011\n\tSO_RANDOMPORT                           = 0x1082\n\tSO_RCVBUF                               = 0x1002\n\tSO_RCVLOWAT                             = 0x1004\n\tSO_RCVTIMEO                             = 0x1006\n\tSO_REUSEADDR                            = 0x4\n\tSO_REUSEPORT                            = 0x200\n\tSO_REUSESHAREUID                        = 0x1025\n\tSO_SNDBUF                               = 0x1001\n\tSO_SNDLOWAT                             = 0x1003\n\tSO_SNDTIMEO                             = 0x1005\n\tSO_TIMESTAMP                            = 0x400\n\tSO_TIMESTAMP_MONOTONIC                  = 0x800\n\tSO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1\n\tSO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4\n\tSO_TRACKER_ATTRIBUTE_FLAGS_TRACKER      = 0x2\n\tSO_TRACKER_TRANSPARENCY_VERSION         = 0x3\n\tSO_TYPE                                 = 0x1008\n\tSO_UPCALLCLOSEWAIT                      = 0x1027\n\tSO_USELOOPBACK                          = 0x40\n\tSO_WANTMORE                             = 0x4000\n\tSO_WANTOOBFLAG                          = 0x8000\n\tS_IEXEC                                 = 0x40\n\tS_IFBLK                                 = 0x6000\n\tS_IFCHR                                 = 0x2000\n\tS_IFDIR                                 = 0x4000\n\tS_IFIFO                                 = 0x1000\n\tS_IFLNK                                 = 0xa000\n\tS_IFMT                                  = 0xf000\n\tS_IFREG                                 = 0x8000\n\tS_IFSOCK                                = 0xc000\n\tS_IFWHT                                 = 0xe000\n\tS_IREAD                                 = 0x100\n\tS_IRGRP                                 = 0x20\n\tS_IROTH                                 = 0x4\n\tS_IRUSR                                 = 0x100\n\tS_IRWXG                                 = 0x38\n\tS_IRWXO                                 = 0x7\n\tS_IRWXU                                 = 0x1c0\n\tS_ISGID                                 = 0x400\n\tS_ISTXT                                 = 0x200\n\tS_ISUID                                 = 0x800\n\tS_ISVTX                                 = 0x200\n\tS_IWGRP                                 = 0x10\n\tS_IWOTH                                 = 0x2\n\tS_IWRITE                                = 0x80\n\tS_IWUSR                                 = 0x80\n\tS_IXGRP                                 = 0x8\n\tS_IXOTH                                 = 0x1\n\tS_IXUSR                                 = 0x40\n\tTAB0                                    = 0x0\n\tTAB1                                    = 0x400\n\tTAB2                                    = 0x800\n\tTAB3                                    = 0x4\n\tTABDLY                                  = 0xc04\n\tTCIFLUSH                                = 0x1\n\tTCIOFF                                  = 0x3\n\tTCIOFLUSH                               = 0x3\n\tTCION                                   = 0x4\n\tTCOFLUSH                                = 0x2\n\tTCOOFF                                  = 0x1\n\tTCOON                                   = 0x2\n\tTCPOPT_CC                               = 0xb\n\tTCPOPT_CCECHO                           = 0xd\n\tTCPOPT_CCNEW                            = 0xc\n\tTCPOPT_EOL                              = 0x0\n\tTCPOPT_FASTOPEN                         = 0x22\n\tTCPOPT_MAXSEG                           = 0x2\n\tTCPOPT_NOP                              = 0x1\n\tTCPOPT_SACK                             = 0x5\n\tTCPOPT_SACK_HDR                         = 0x1010500\n\tTCPOPT_SACK_PERMITTED                   = 0x4\n\tTCPOPT_SACK_PERMIT_HDR                  = 0x1010402\n\tTCPOPT_SIGNATURE                        = 0x13\n\tTCPOPT_TIMESTAMP                        = 0x8\n\tTCPOPT_TSTAMP_HDR                       = 0x101080a\n\tTCPOPT_WINDOW                           = 0x3\n\tTCP_CONNECTIONTIMEOUT                   = 0x20\n\tTCP_CONNECTION_INFO                     = 0x106\n\tTCP_ENABLE_ECN                          = 0x104\n\tTCP_FASTOPEN                            = 0x105\n\tTCP_KEEPALIVE                           = 0x10\n\tTCP_KEEPCNT                             = 0x102\n\tTCP_KEEPINTVL                           = 0x101\n\tTCP_MAXHLEN                             = 0x3c\n\tTCP_MAXOLEN                             = 0x28\n\tTCP_MAXSEG                              = 0x2\n\tTCP_MAXWIN                              = 0xffff\n\tTCP_MAX_SACK                            = 0x4\n\tTCP_MAX_WINSHIFT                        = 0xe\n\tTCP_MINMSS                              = 0xd8\n\tTCP_MSS                                 = 0x200\n\tTCP_NODELAY                             = 0x1\n\tTCP_NOOPT                               = 0x8\n\tTCP_NOPUSH                              = 0x4\n\tTCP_NOTSENT_LOWAT                       = 0x201\n\tTCP_RXT_CONNDROPTIME                    = 0x80\n\tTCP_RXT_FINDROP                         = 0x100\n\tTCP_SENDMOREACKS                        = 0x103\n\tTCSAFLUSH                               = 0x2\n\tTIOCCBRK                                = 0x2000747a\n\tTIOCCDTR                                = 0x20007478\n\tTIOCCONS                                = 0x80047462\n\tTIOCDCDTIMESTAMP                        = 0x40107458\n\tTIOCDRAIN                               = 0x2000745e\n\tTIOCDSIMICROCODE                        = 0x20007455\n\tTIOCEXCL                                = 0x2000740d\n\tTIOCEXT                                 = 0x80047460\n\tTIOCFLUSH                               = 0x80047410\n\tTIOCGDRAINWAIT                          = 0x40047456\n\tTIOCGETA                                = 0x40487413\n\tTIOCGETD                                = 0x4004741a\n\tTIOCGPGRP                               = 0x40047477\n\tTIOCGWINSZ                              = 0x40087468\n\tTIOCIXOFF                               = 0x20007480\n\tTIOCIXON                                = 0x20007481\n\tTIOCMBIC                                = 0x8004746b\n\tTIOCMBIS                                = 0x8004746c\n\tTIOCMGDTRWAIT                           = 0x4004745a\n\tTIOCMGET                                = 0x4004746a\n\tTIOCMODG                                = 0x40047403\n\tTIOCMODS                                = 0x80047404\n\tTIOCMSDTRWAIT                           = 0x8004745b\n\tTIOCMSET                                = 0x8004746d\n\tTIOCM_CAR                               = 0x40\n\tTIOCM_CD                                = 0x40\n\tTIOCM_CTS                               = 0x20\n\tTIOCM_DSR                               = 0x100\n\tTIOCM_DTR                               = 0x2\n\tTIOCM_LE                                = 0x1\n\tTIOCM_RI                                = 0x80\n\tTIOCM_RNG                               = 0x80\n\tTIOCM_RTS                               = 0x4\n\tTIOCM_SR                                = 0x10\n\tTIOCM_ST                                = 0x8\n\tTIOCNOTTY                               = 0x20007471\n\tTIOCNXCL                                = 0x2000740e\n\tTIOCOUTQ                                = 0x40047473\n\tTIOCPKT                                 = 0x80047470\n\tTIOCPKT_DATA                            = 0x0\n\tTIOCPKT_DOSTOP                          = 0x20\n\tTIOCPKT_FLUSHREAD                       = 0x1\n\tTIOCPKT_FLUSHWRITE                      = 0x2\n\tTIOCPKT_IOCTL                           = 0x40\n\tTIOCPKT_NOSTOP                          = 0x10\n\tTIOCPKT_START                           = 0x8\n\tTIOCPKT_STOP                            = 0x4\n\tTIOCPTYGNAME                            = 0x40807453\n\tTIOCPTYGRANT                            = 0x20007454\n\tTIOCPTYUNLK                             = 0x20007452\n\tTIOCREMOTE                              = 0x80047469\n\tTIOCSBRK                                = 0x2000747b\n\tTIOCSCONS                               = 0x20007463\n\tTIOCSCTTY                               = 0x20007461\n\tTIOCSDRAINWAIT                          = 0x80047457\n\tTIOCSDTR                                = 0x20007479\n\tTIOCSETA                                = 0x80487414\n\tTIOCSETAF                               = 0x80487416\n\tTIOCSETAW                               = 0x80487415\n\tTIOCSETD                                = 0x8004741b\n\tTIOCSIG                                 = 0x2000745f\n\tTIOCSPGRP                               = 0x80047476\n\tTIOCSTART                               = 0x2000746e\n\tTIOCSTAT                                = 0x20007465\n\tTIOCSTI                                 = 0x80017472\n\tTIOCSTOP                                = 0x2000746f\n\tTIOCSWINSZ                              = 0x80087467\n\tTIOCTIMESTAMP                           = 0x40107459\n\tTIOCUCNTL                               = 0x80047466\n\tTOSTOP                                  = 0x400000\n\tUF_APPEND                               = 0x4\n\tUF_COMPRESSED                           = 0x20\n\tUF_DATAVAULT                            = 0x80\n\tUF_HIDDEN                               = 0x8000\n\tUF_IMMUTABLE                            = 0x2\n\tUF_NODUMP                               = 0x1\n\tUF_OPAQUE                               = 0x8\n\tUF_SETTABLE                             = 0xffff\n\tUF_TRACKED                              = 0x40\n\tVDISCARD                                = 0xf\n\tVDSUSP                                  = 0xb\n\tVEOF                                    = 0x0\n\tVEOL                                    = 0x1\n\tVEOL2                                   = 0x2\n\tVERASE                                  = 0x3\n\tVINTR                                   = 0x8\n\tVKILL                                   = 0x5\n\tVLNEXT                                  = 0xe\n\tVMADDR_CID_ANY                          = 0xffffffff\n\tVMADDR_CID_HOST                         = 0x2\n\tVMADDR_CID_HYPERVISOR                   = 0x0\n\tVMADDR_CID_RESERVED                     = 0x1\n\tVMADDR_PORT_ANY                         = 0xffffffff\n\tVMIN                                    = 0x10\n\tVM_LOADAVG                              = 0x2\n\tVM_MACHFACTOR                           = 0x4\n\tVM_MAXID                                = 0x6\n\tVM_METER                                = 0x1\n\tVM_SWAPUSAGE                            = 0x5\n\tVQUIT                                   = 0x9\n\tVREPRINT                                = 0x6\n\tVSTART                                  = 0xc\n\tVSTATUS                                 = 0x12\n\tVSTOP                                   = 0xd\n\tVSUSP                                   = 0xa\n\tVT0                                     = 0x0\n\tVT1                                     = 0x10000\n\tVTDLY                                   = 0x10000\n\tVTIME                                   = 0x11\n\tVWERASE                                 = 0x4\n\tWCONTINUED                              = 0x10\n\tWCOREFLAG                               = 0x80\n\tWEXITED                                 = 0x4\n\tWNOHANG                                 = 0x1\n\tWNOWAIT                                 = 0x20\n\tWORDSIZE                                = 0x40\n\tWSTOPPED                                = 0x8\n\tWUNTRACED                               = 0x2\n\tXATTR_CREATE                            = 0x2\n\tXATTR_NODEFAULT                         = 0x10\n\tXATTR_NOFOLLOW                          = 0x1\n\tXATTR_NOSECURITY                        = 0x8\n\tXATTR_REPLACE                           = 0x4\n\tXATTR_SHOWCOMPRESSION                   = 0x20\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADARCH        = syscall.Errno(0x56)\n\tEBADEXEC        = syscall.Errno(0x55)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMACHO       = syscall.Errno(0x58)\n\tEBADMSG         = syscall.Errno(0x5e)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x59)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDEVERR         = syscall.Errno(0x53)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x5a)\n\tEILSEQ          = syscall.Errno(0x5c)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x6a)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5f)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x60)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x61)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5b)\n\tENOPOLICY       = syscall.Errno(0x67)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x62)\n\tENOSTR          = syscall.Errno(0x63)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x68)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x66)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x69)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x64)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEPWROFF         = syscall.Errno(0x52)\n\tEQFULL          = syscall.Errno(0x6a)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHLIBVERS      = syscall.Errno(0x57)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x65)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EPWROFF\", \"device power is off\"},\n\t{83, \"EDEVERR\", \"device error\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EBADEXEC\", \"bad executable (or shared library)\"},\n\t{86, \"EBADARCH\", \"bad CPU type in executable\"},\n\t{87, \"ESHLIBVERS\", \"shared library version mismatch\"},\n\t{88, \"EBADMACHO\", \"malformed Mach-o file\"},\n\t{89, \"ECANCELED\", \"operation canceled\"},\n\t{90, \"EIDRM\", \"identifier removed\"},\n\t{91, \"ENOMSG\", \"no message of desired type\"},\n\t{92, \"EILSEQ\", \"illegal byte sequence\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EBADMSG\", \"bad message\"},\n\t{95, \"EMULTIHOP\", \"EMULTIHOP (Reserved)\"},\n\t{96, \"ENODATA\", \"no message available on STREAM\"},\n\t{97, \"ENOLINK\", \"ENOLINK (Reserved)\"},\n\t{98, \"ENOSR\", \"no STREAM resources\"},\n\t{99, \"ENOSTR\", \"not a STREAM\"},\n\t{100, \"EPROTO\", \"protocol error\"},\n\t{101, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{102, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{103, \"ENOPOLICY\", \"policy not found\"},\n\t{104, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{105, \"EOWNERDEAD\", \"previous owner died\"},\n\t{106, \"EQFULL\", \"interface output queue is full\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && dragonfly\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ATM                            = 0x1e\n\tAF_BLUETOOTH                      = 0x21\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x23\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x1c\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x22\n\tAF_NATM                           = 0x1d\n\tAF_NETBIOS                        = 0x6\n\tAF_NETGRAPH                       = 0x20\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x18\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104279\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044272\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSEESENT                      = 0x40044276\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x2000427a\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044278\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x8010427b\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044273\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCSSEESENT                      = 0x80044277\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DEFAULTBUFSIZE                = 0x1000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x80000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MAX_CLONES                    = 0x80\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MOD                           = 0x90\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBPF_XOR                           = 0xa0\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_MONOTONIC                   = 0x4\n\tCLOCK_MONOTONIC_FAST              = 0xc\n\tCLOCK_MONOTONIC_PRECISE           = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID          = 0xf\n\tCLOCK_PROF                        = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_REALTIME_FAST               = 0xa\n\tCLOCK_REALTIME_PRECISE            = 0x9\n\tCLOCK_SECOND                      = 0xd\n\tCLOCK_THREAD_CPUTIME_ID           = 0xe\n\tCLOCK_UPTIME                      = 0x5\n\tCLOCK_UPTIME_FAST                 = 0x8\n\tCLOCK_UPTIME_PRECISE              = 0x7\n\tCLOCK_VIRTUAL                     = 0x1\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x30000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB            = 0xff\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_BLUETOOTH_LE_LL               = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR     = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR       = 0xfe\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CHDLC                         = 0x68\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DBUS                          = 0xe7\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_DVB_CI                        = 0xeb\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_EPON                          = 0x103\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HHDLC                         = 0x79\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NOFCS            = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_INFINIBAND                    = 0xf7\n\tDLT_IPFILTER                      = 0x74\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPMI_HPM_2                    = 0x104\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPOIB                         = 0xf2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_ISO_14443                     = 0x108\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_ATM_CEMIC             = 0xee\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL          = 0xea\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_SRX_E2E               = 0xe9\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_JUNIPER_VS                    = 0xe8\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MATCHING_MAX                  = 0x109\n\tDLT_MATCHING_MIN                  = 0x68\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPEG_2_TS                     = 0xf3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_MUX27010                      = 0xec\n\tDLT_NETANALYZER                   = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT       = 0xf1\n\tDLT_NETLINK                       = 0xfd\n\tDLT_NFC_LLCP                      = 0xf5\n\tDLT_NFLOG                         = 0xef\n\tDLT_NG40                          = 0xf4\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PKTAP                         = 0x102\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PROFIBUS_DL                   = 0x101\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RDS                           = 0x109\n\tDLT_REDBACK_SMARTEDGE             = 0x20\n\tDLT_RIO                           = 0x7c\n\tDLT_RTAC_SERIAL                   = 0xfa\n\tDLT_SCCP                          = 0x8e\n\tDLT_SCTP                          = 0xf8\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_STANAG_5066_D_PDU             = 0xed\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USB_FREEBSD                   = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDLT_WATTSTOPPER_DLM               = 0x107\n\tDLT_WIHART                        = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU           = 0xfc\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDLT_ZWAVE_R1_R2                   = 0x105\n\tDLT_ZWAVE_R3                      = 0x106\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DBF                            = 0xf\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_EXCEPT                     = -0x8\n\tEVFILT_FS                         = -0xa\n\tEVFILT_MARKER                     = 0xf\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0xa\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_USER                       = -0x9\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_HUP                            = 0x800\n\tEV_NODATA                         = 0x1000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTEXIT_LWP                       = 0x10000\n\tEXTEXIT_PROC                      = 0x0\n\tEXTEXIT_SETINT                    = 0x1\n\tEXTEXIT_SIMPLE                    = 0x0\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUP2FD                          = 0xa\n\tF_DUP2FD_CLOEXEC                  = 0x12\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0x11\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_ALTPHYS                       = 0x4000\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x318e72\n\tIFF_DEBUG                         = 0x4\n\tIFF_IDIRECT                       = 0x200000\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MONITOR                       = 0x40000\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NPOLLING                      = 0x100000\n\tIFF_OACTIVE                       = 0x400\n\tIFF_OACTIVE_COMPAT                = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_POLLING                       = 0x10000\n\tIFF_POLLING_COMPAT                = 0x10000\n\tIFF_PPROMISC                      = 0x20000\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_SMART                         = 0x20\n\tIFF_STATICARP                     = 0x80000\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xf3\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_MASK                   = 0xfffffffe\n\tIPPROTO_3PC                       = 0x22\n\tIPPROTO_ADFS                      = 0x44\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_AHIP                      = 0x3d\n\tIPPROTO_APES                      = 0x63\n\tIPPROTO_ARGUS                     = 0xd\n\tIPPROTO_AX25                      = 0x5d\n\tIPPROTO_BHA                       = 0x31\n\tIPPROTO_BLT                       = 0x1e\n\tIPPROTO_BRSATMON                  = 0x4c\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_CFTP                      = 0x3e\n\tIPPROTO_CHAOS                     = 0x10\n\tIPPROTO_CMTP                      = 0x26\n\tIPPROTO_CPHB                      = 0x49\n\tIPPROTO_CPNX                      = 0x48\n\tIPPROTO_DDP                       = 0x25\n\tIPPROTO_DGP                       = 0x56\n\tIPPROTO_DIVERT                    = 0xfe\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_EMCON                     = 0xe\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GMTP                      = 0x64\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HELLO                     = 0x3f\n\tIPPROTO_HMP                       = 0x14\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IDPR                      = 0x23\n\tIPPROTO_IDRP                      = 0x2d\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IGP                       = 0x55\n\tIPPROTO_IGRP                      = 0x58\n\tIPPROTO_IL                        = 0x28\n\tIPPROTO_INLSP                     = 0x34\n\tIPPROTO_INP                       = 0x20\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPCV                      = 0x47\n\tIPPROTO_IPEIP                     = 0x5e\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPPC                      = 0x43\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IRTP                      = 0x1c\n\tIPPROTO_KRYPTOLAN                 = 0x41\n\tIPPROTO_LARP                      = 0x5b\n\tIPPROTO_LEAF1                     = 0x19\n\tIPPROTO_LEAF2                     = 0x1a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MEAS                      = 0x13\n\tIPPROTO_MHRP                      = 0x30\n\tIPPROTO_MICP                      = 0x5f\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MTP                       = 0x5c\n\tIPPROTO_MUX                       = 0x12\n\tIPPROTO_ND                        = 0x4d\n\tIPPROTO_NHRP                      = 0x36\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_NSP                       = 0x1f\n\tIPPROTO_NVPII                     = 0xb\n\tIPPROTO_OSPFIGP                   = 0x59\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PGM                       = 0x71\n\tIPPROTO_PIGP                      = 0x9\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PRM                       = 0x15\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_PVP                       = 0x4b\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_RCCMON                    = 0xa\n\tIPPROTO_RDP                       = 0x1b\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_RVD                       = 0x42\n\tIPPROTO_SATEXPAK                  = 0x40\n\tIPPROTO_SATMON                    = 0x45\n\tIPPROTO_SCCSP                     = 0x60\n\tIPPROTO_SDRP                      = 0x2a\n\tIPPROTO_SEP                       = 0x21\n\tIPPROTO_SKIP                      = 0x39\n\tIPPROTO_SRPC                      = 0x5a\n\tIPPROTO_ST                        = 0x7\n\tIPPROTO_SVMTP                     = 0x52\n\tIPPROTO_SWIPE                     = 0x35\n\tIPPROTO_TCF                       = 0x57\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TLSP                      = 0x38\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_TPXX                      = 0x27\n\tIPPROTO_TRUNK1                    = 0x17\n\tIPPROTO_TRUNK2                    = 0x18\n\tIPPROTO_TTP                       = 0x54\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UNKNOWN                   = 0x102\n\tIPPROTO_VINES                     = 0x53\n\tIPPROTO_VISA                      = 0x46\n\tIPPROTO_VMTP                      = 0x51\n\tIPPROTO_WBEXPAK                   = 0x4f\n\tIPPROTO_WBMON                     = 0x4e\n\tIPPROTO_WSN                       = 0x4a\n\tIPPROTO_XNET                      = 0xf\n\tIPPROTO_XTP                       = 0x24\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_BINDV6ONLY                   = 0x1b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_FW_ADD                       = 0x1e\n\tIPV6_FW_DEL                       = 0x1f\n\tIPV6_FW_FLUSH                     = 0x20\n\tIPV6_FW_GET                       = 0x22\n\tIPV6_FW_ZERO                      = 0x21\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHLIM                      = 0x28\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MSFILTER                     = 0x4a\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PKTOPTIONS                   = 0x34\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_PREFER_TEMPADDR              = 0x3f\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_DUMMYNET_CONFIGURE             = 0x3c\n\tIP_DUMMYNET_DEL                   = 0x3d\n\tIP_DUMMYNET_FLUSH                 = 0x3e\n\tIP_DUMMYNET_GET                   = 0x40\n\tIP_FW_ADD                         = 0x32\n\tIP_FW_DEL                         = 0x33\n\tIP_FW_FLUSH                       = 0x34\n\tIP_FW_GET                         = 0x36\n\tIP_FW_RESETLOG                    = 0x37\n\tIP_FW_TBL_ADD                     = 0x2a\n\tIP_FW_TBL_CREATE                  = 0x28\n\tIP_FW_TBL_DEL                     = 0x2b\n\tIP_FW_TBL_DESTROY                 = 0x29\n\tIP_FW_TBL_EXPIRE                  = 0x2f\n\tIP_FW_TBL_FLUSH                   = 0x2c\n\tIP_FW_TBL_GET                     = 0x2d\n\tIP_FW_TBL_ZERO                    = 0x2e\n\tIP_FW_X                           = 0x31\n\tIP_FW_ZERO                        = 0x35\n\tIP_HDRINCL                        = 0x2\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x42\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_MULTICAST_VIF                  = 0xe\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x41\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RSVP_OFF                       = 0x10\n\tIP_RSVP_ON                        = 0xf\n\tIP_RSVP_VIF_OFF                   = 0x12\n\tIP_RSVP_VIF_ON                    = 0x11\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_AUTOSYNC                     = 0x7\n\tMADV_CONTROL_END                  = 0xb\n\tMADV_CONTROL_START                = 0xa\n\tMADV_CORE                         = 0x9\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x5\n\tMADV_INVAL                        = 0xa\n\tMADV_NOCORE                       = 0x8\n\tMADV_NORMAL                       = 0x0\n\tMADV_NOSYNC                       = 0x6\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SETMAP                       = 0xb\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_NOCORE                        = 0x20000\n\tMAP_NOEXTEND                      = 0x100\n\tMAP_NORESERVE                     = 0x40\n\tMAP_NOSYNC                        = 0x800\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_SIZEALIGN                     = 0x40000\n\tMAP_STACK                         = 0x400\n\tMAP_TRYFIXED                      = 0x10000\n\tMAP_VPAGETABLE                    = 0x2000\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_AUTOMOUNTED                   = 0x20\n\tMNT_CMDFLAGS                      = 0xf0000\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x20000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_IGNORE                        = 0x800000\n\tMNT_LAZY                          = 0x4\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x10000000\n\tMNT_NOCLUSTERR                    = 0x40000000\n\tMNT_NOCLUSTERW                    = 0x80000000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOSYMFOLLOW                   = 0x400000\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x200000\n\tMNT_SUIDDIR                       = 0x100000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_TRIM                          = 0x1000000\n\tMNT_UPDATE                        = 0x10000\n\tMNT_USER                          = 0x8000\n\tMNT_VISFLAGMASK                   = 0xf1f0ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_CMSG_CLOEXEC                  = 0x1000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOF                           = 0x100\n\tMSG_EOR                           = 0x8\n\tMSG_FBLOCKING                     = 0x10000\n\tMSG_FMASK                         = 0xffff0000\n\tMSG_FNONBLOCKING                  = 0x20000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_SYNC                          = 0x800\n\tMSG_TRUNC                         = 0x10\n\tMSG_UNUSED09                      = 0x200\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x0\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_MAXID                      = 0x4\n\tNFDBITS                           = 0x40\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FFAND                        = 0x40000000\n\tNOTE_FFCOPY                       = 0xc0000000\n\tNOTE_FFCTRLMASK                   = 0xc0000000\n\tNOTE_FFLAGSMASK                   = 0xffffff\n\tNOTE_FFNOP                        = 0x0\n\tNOTE_FFOR                         = 0x80000000\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x2\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRIGGER                      = 0x1000000\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x20000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x10000\n\tO_DIRECTORY                       = 0x8000000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FAPPEND                         = 0x100000\n\tO_FASYNCWRITE                     = 0x800000\n\tO_FBLOCKING                       = 0x40000\n\tO_FMASK                           = 0xfc0000\n\tO_FNONBLOCKING                    = 0x80000\n\tO_FOFFSET                         = 0x200000\n\tO_FSYNC                           = 0x80\n\tO_FSYNCWRITE                      = 0x400000\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0xb\n\tRTAX_MPLS1                        = 0x8\n\tRTAX_MPLS2                        = 0x9\n\tRTAX_MPLS3                        = 0xa\n\tRTAX_NETMASK                      = 0x2\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_MPLS1                         = 0x100\n\tRTA_MPLS2                         = 0x200\n\tRTA_MPLS3                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPLSOPS                       = 0x1000000\n\tRTF_MULTICAST                     = 0x800000\n\tRTF_PINNED                        = 0x100000\n\tRTF_PRCLONING                     = 0x10000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x40000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_WASCLONED                     = 0x20000\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DELMADDR                      = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x12\n\tRTM_IFANNOUNCE                    = 0x11\n\tRTM_IFINFO                        = 0xe\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_NEWMADDR                      = 0xf\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x7\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_IWCAPSEGS                     = 0x400\n\tRTV_IWMAXSEGS                     = 0x200\n\tRTV_MSL                           = 0x100\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x3\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x2\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCALIFADDR                      = 0x8118691b\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDLIFADDR                      = 0x8118691d\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETSGCNT                      = 0xc0207210\n\tSIOCGETVIFCNT                     = 0xc028720f\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFALIAS                      = 0xc0406929\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCAP                        = 0xc020691f\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc0206926\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFINDEX                      = 0xc0206920\n\tSIOCGIFMEDIA                      = 0xc0306938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc0206933\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPDSTADDR                   = 0xc0206948\n\tSIOCGIFPHYS                       = 0xc0206935\n\tSIOCGIFPOLLCPU                    = 0xc020697e\n\tSIOCGIFPSRCADDR                   = 0xc0206947\n\tSIOCGIFSTATUS                     = 0xc331693b\n\tSIOCGIFTSOLEN                     = 0xc0206980\n\tSIOCGLIFADDR                      = 0xc118691c\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPRIVATE_0                    = 0xc0206950\n\tSIOCGPRIVATE_1                    = 0xc0206951\n\tSIOCIFCREATE                      = 0xc020697a\n\tSIOCIFCREATE2                     = 0xc020697c\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFCAP                        = 0x8020691e\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020693c\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x80206934\n\tSIOCSIFNAME                       = 0x80206928\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSIFPHYS                       = 0x80206936\n\tSIOCSIFPOLLCPU                    = 0x8020697d\n\tSIOCSIFTSOLEN                     = 0x8020697f\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_MAXADDRLEN                   = 0xff\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_CPUHINT                        = 0x1030\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_RERROR                         = 0x2000\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDSPACE                       = 0x100a\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_TIMESTAMP                      = 0x400\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDB                            = 0x9000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTAB0                              = 0x0\n\tTAB3                              = 0x4\n\tTABDLY                            = 0x4\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCP_FASTKEEP                      = 0x80\n\tTCP_KEEPCNT                       = 0x400\n\tTCP_KEEPIDLE                      = 0x100\n\tTCP_KEEPINIT                      = 0x20\n\tTCP_KEEPINTVL                     = 0x200\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXHLEN                       = 0x3c\n\tTCP_MAXOLEN                       = 0x28\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MINMSS                        = 0x100\n\tTCP_MIN_WINSHIFT                  = 0x5\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOOPT                         = 0x8\n\tTCP_NOPUSH                        = 0x4\n\tTCP_SIGNATURE_ENABLE              = 0x10\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGDRAINWAIT                    = 0x40047456\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCISPTMASTER                    = 0x20007455\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGDTRWAIT                     = 0x4004745a\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x40047403\n\tTIOCMODS                          = 0x80047404\n\tTIOCMSDTRWAIT                     = 0x8004745b\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDRAINWAIT                    = 0x80047457\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCTIMESTAMP                     = 0x40107459\n\tTIOCUCNTL                         = 0x80047466\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x1\n\tUTIME_OMIT                        = -0x2\n\tVCHECKPT                          = 0x13\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVERASE2                           = 0x7\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_BCACHE_SIZE_MAX                = 0x0\n\tVM_SWZONE_SIZE_MAX                = 0x4000000000\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWCONTINUED                        = 0x4\n\tWCOREFLAG                         = 0x80\n\tWEXITED                           = 0x10\n\tWLINUXCLONE                       = 0x80000000\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x8\n\tWSTOPPED                          = 0x2\n\tWTRAPPED                          = 0x20\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEASYNC          = syscall.Errno(0x63)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x63)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEDIUM       = syscall.Errno(0x5d)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCKPT     = syscall.Signal(0x21)\n\tSIGCKPTEXIT = syscall.Signal(0x22)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINFO     = syscall.Signal(0x1d)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPROF     = syscall.Signal(0x1b)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTHR      = syscall.Signal(0x20)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVTALRM   = syscall.Signal(0x1a)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOMEDIUM\", \"no medium found\"},\n\t{99, \"EASYNC\", \"unknown error: 99\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread Scheduler\"},\n\t{33, \"SIGCKPT\", \"checkPoint\"},\n\t{34, \"SIGCKPTEXIT\", \"checkPointExit\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0084279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4004427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4008426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x400c4280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80084267\n\tBIOCSETFNR                     = 0x80084282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8008427b\n\tBIOCSETZBUF                    = 0x800c4281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8008426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x4\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc144648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x804c6490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc06c648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x20\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETFSBASE                   = 0x47\n\tPT_GETGSBASE                   = 0x49\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GETXMMREGS                  = 0x40\n\tPT_GETXSTATE                   = 0x45\n\tPT_GETXSTATE_INFO              = 0x44\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETFSBASE                   = 0x48\n\tPT_SETGSBASE                   = 0x4a\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SETXMMREGS                  = 0x41\n\tPT_SETXSTATE                   = 0x46\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80246987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80246989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc01c697b\n\tSIOCGETSGCNT                   = 0xc0147210\n\tSIOCGETVIFCNT                  = 0xc014720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0086924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc024698a\n\tSIOCGIFGROUP                   = 0xc0246988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0286938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc028698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc00c6978\n\tSIOCSDRVSPEC                   = 0x801c697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40087459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVM_BCACHE_SIZE_MAX             = 0x70e0000\n\tVM_SWZONE_SIZE_MAX             = 0x2280000\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0104279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4008427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x40184280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80104267\n\tBIOCSETFNR                     = 0x80104282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8010427b\n\tBIOCSETZBUF                    = 0x80184281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x8\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffffffffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x80506490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc080648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_32BIT                      = 0x80000\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x40\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETFSBASE                   = 0x47\n\tPT_GETGSBASE                   = 0x49\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GETXSTATE                   = 0x45\n\tPT_GETXSTATE_INFO              = 0x44\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETFSBASE                   = 0x48\n\tPT_SETGSBASE                   = 0x4a\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SETXSTATE                   = 0x46\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80286987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80286989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc028697b\n\tSIOCGETSGCNT                   = 0xc0207210\n\tSIOCGETVIFCNT                  = 0xc028720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0106924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc028698a\n\tSIOCGIFGROUP                   = 0xc0286988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0306938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc030698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc0106978\n\tSIOCSDRVSPEC                   = 0x8028697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go",
    "content": "// mkerrors.sh\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0084279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4004427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x400c4280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80084267\n\tBIOCSETFNR                     = 0x80084282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8008427b\n\tBIOCSETZBUF                    = 0x800c4281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x4\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x804c6490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc078648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x20\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GETVFPREGS                  = 0x40\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SETVFPREGS                  = 0x41\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80246987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80246989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc01c697b\n\tSIOCGETSGCNT                   = 0xc0147210\n\tSIOCGETVIFCNT                  = 0xc014720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0086924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc024698a\n\tSIOCGIFGROUP                   = 0xc0246988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0286938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc028698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc00c6978\n\tSIOCSDRVSPEC                   = 0x801c697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0104279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4008427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x40184280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80104267\n\tBIOCSETFNR                     = 0x80104282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8010427b\n\tBIOCSETZBUF                    = 0x80184281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x8\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffffffffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x80506490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc080648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_32BIT                      = 0x80000\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x40\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80286987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80286989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc028697b\n\tSIOCGETSGCNT                   = 0xc0207210\n\tSIOCGETVIFCNT                  = 0xc028720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0106924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc028698a\n\tSIOCGIFGROUP                   = 0xc0286988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0306938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc030698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc0106978\n\tSIOCSDRVSPEC                   = 0x8028697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVM_BCACHE_SIZE_MAX             = 0x19000000\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_HYPERV                      = 0x2b\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2b\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB1000000                       = 0xf4240\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1500000                       = 0x16e360\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB2000000                       = 0x1e8480\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB2500000                       = 0x2625a0\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB3000000                       = 0x2dc6c0\n\tB3500000                       = 0x3567e0\n\tB38400                         = 0x9600\n\tB4000000                       = 0x3d0900\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB500000                        = 0x7a120\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0104279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4008427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x40184280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80104267\n\tBIOCSETFNR                     = 0x80104282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8010427b\n\tBIOCSETZBUF                    = 0x80184281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x8\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffffffffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_BOOTTIME                 = 0x5\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_COARSE         = 0xc\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_COARSE          = 0xa\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGKERNELDUMP                = 0xc0986492\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x80986491\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCSKERNELDUMP_FREEBSD12      = 0x80506490\n\tDIOCZONECMD                    = 0xc080648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEHE_DEAD_PRIORITY              = -0x1\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_NONE                        = -0xc8\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_ADD_SEALS                    = 0x13\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_GET_SEALS                    = 0x14\n\tF_ISUNIONSTACK                 = 0x15\n\tF_KINFO                        = 0x16\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SEAL_GROW                    = 0x4\n\tF_SEAL_SEAL                    = 0x1\n\tF_SEAL_SHRINK                  = 0x2\n\tF_SEAL_WRITE                   = 0x8\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f72\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_KNOWSEPOCH                 = 0x20\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_NETMASK_DEFAULT             = 0xffffff00\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_CREDS_PERSISTENT         = 0x3\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_32BIT                      = 0x80000\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMFD_ALLOW_SEALING              = 0x2\n\tMFD_CLOEXEC                    = 0x1\n\tMFD_HUGETLB                    = 0x4\n\tMFD_HUGE_16GB                  = -0x78000000\n\tMFD_HUGE_16MB                  = 0x60000000\n\tMFD_HUGE_1GB                   = 0x78000000\n\tMFD_HUGE_1MB                   = 0x50000000\n\tMFD_HUGE_256MB                 = 0x70000000\n\tMFD_HUGE_2GB                   = 0x7c000000\n\tMFD_HUGE_2MB                   = 0x54000000\n\tMFD_HUGE_32MB                  = 0x64000000\n\tMFD_HUGE_512KB                 = 0x4c000000\n\tMFD_HUGE_512MB                 = 0x74000000\n\tMFD_HUGE_64KB                  = 0x40000000\n\tMFD_HUGE_8MB                   = 0x5c000000\n\tMFD_HUGE_MASK                  = 0xfc000000\n\tMFD_HUGE_SHIFT                 = 0x1a\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0x300d0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EMPTYDIR                   = 0x2000000000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_EXTLS                      = 0x4000000000\n\tMNT_EXTLSCERT                  = 0x8000000000\n\tMNT_EXTLSCERTUSER              = 0x10000000000\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOCOVER                    = 0x1000000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNET_RT_NHGRP                   = 0x7\n\tNET_RT_NHOP                    = 0x6\n\tNFDBITS                        = 0x40\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_DSYNC                        = 0x1000000\n\tO_EMPTY_PATH                   = 0x2000000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_PATH                         = 0x400000\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_COREDUMP                    = 0x1d\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_DEFAULT_WEIGHT              = 0x1\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAX_WEIGHT                  = 0xffffff\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_CREDS2                     = 0x8\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80286987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80286989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc028697b\n\tSIOCGETSGCNT                   = 0xc0207210\n\tSIOCGETVIFCNT                  = 0xc028720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0106924\n\tSIOCGIFDATA                    = 0x8020692c\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc028698a\n\tSIOCGIFGROUP                   = 0xc0286988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0306938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc030698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc0106978\n\tSIOCSDRVSPEC                   = 0x8028697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_INIT_RATE         = 0x458\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_USE_RACK_RR            = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DEFER_OPTIONS              = 0x470\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FAST_RSM_HACK              = 0x471\n\tTCP_FIN_IS_RST                 = 0x49\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_HDWR_RATE_CAP              = 0x46a\n\tTCP_HDWR_UP_ONLY               = 0x46c\n\tTCP_IDLE_REDUCE                = 0x46\n\tTCP_INFO                       = 0x20\n\tTCP_IWND_NB                    = 0x2b\n\tTCP_IWND_NSEG                  = 0x2c\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOGID_CNT                  = 0x2e\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_LOG_LIMIT                  = 0x4a\n\tTCP_LOG_TAG                    = 0x2f\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXPEAKRATE                = 0x45\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXUNACKTIME               = 0x44\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_NO_PRR                     = 0x462\n\tTCP_PACING_RATE_CAP            = 0x46b\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_PERF_INFO                  = 0x4e\n\tTCP_PROC_ACCOUNTING            = 0x4c\n\tTCP_RACK_ABC_VAL               = 0x46d\n\tTCP_RACK_CHEAT_NOT_CONF_RATE   = 0x459\n\tTCP_RACK_DO_DETECTION          = 0x449\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_FORCE_MSEG            = 0x45d\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_GP_INCREASE_CA        = 0x45a\n\tTCP_RACK_GP_INCREASE_REC       = 0x45c\n\tTCP_RACK_GP_INCREASE_SS        = 0x45b\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MBUF_QUEUE            = 0x41a\n\tTCP_RACK_MEASURE_CNT           = 0x46f\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_NONRXT_CFG_RATE       = 0x463\n\tTCP_RACK_NO_PUSH_AT_MAX        = 0x466\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_RATE_CA          = 0x45e\n\tTCP_RACK_PACE_RATE_REC         = 0x460\n\tTCP_RACK_PACE_RATE_SS          = 0x45f\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PACE_TO_FILL          = 0x467\n\tTCP_RACK_PACING_BETA           = 0x472\n\tTCP_RACK_PACING_BETA_ECN       = 0x473\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROFILE               = 0x469\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_RR_CONF               = 0x459\n\tTCP_RACK_TIMER_SLOP            = 0x474\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_REC_ABC_VAL                = 0x46e\n\tTCP_REMOTE_UDP_ENCAPS_PORT     = 0x47\n\tTCP_REUSPORT_LB_NUMA           = 0x402\n\tTCP_REUSPORT_LB_NUMA_CURDOM    = -0x1\n\tTCP_REUSPORT_LB_NUMA_NODOM     = -0x2\n\tTCP_RXTLS_ENABLE               = 0x29\n\tTCP_RXTLS_MODE                 = 0x2a\n\tTCP_SHARED_CWND_ALLOWED        = 0x4b\n\tTCP_SHARED_CWND_ENABLE         = 0x464\n\tTCP_SHARED_CWND_TIME_LIMIT     = 0x468\n\tTCP_STATS                      = 0x21\n\tTCP_TIMELY_DYN_ADJ             = 0x465\n\tTCP_TLS_MODE_IFNET             = 0x2\n\tTCP_TLS_MODE_NONE              = 0x0\n\tTCP_TLS_MODE_SW                = 0x1\n\tTCP_TLS_MODE_TOE               = 0x3\n\tTCP_TXTLS_ENABLE               = 0x27\n\tTCP_TXTLS_MODE                 = 0x28\n\tTCP_USER_LOG                   = 0x30\n\tTCP_USE_CMP_ACKS               = 0x4d\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux.go",
    "content": "// Code generated by mkmerge; DO NOT EDIT.\n\n//go:build linux\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                                  = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                            = 0xadf5\n\tAFFS_SUPER_MAGIC                            = 0xadff\n\tAFS_FS_MAGIC                                = 0x6b414653\n\tAFS_SUPER_MAGIC                             = 0x5346414f\n\tAF_ALG                                      = 0x26\n\tAF_APPLETALK                                = 0x5\n\tAF_ASH                                      = 0x12\n\tAF_ATMPVC                                   = 0x8\n\tAF_ATMSVC                                   = 0x14\n\tAF_AX25                                     = 0x3\n\tAF_BLUETOOTH                                = 0x1f\n\tAF_BRIDGE                                   = 0x7\n\tAF_CAIF                                     = 0x25\n\tAF_CAN                                      = 0x1d\n\tAF_DECnet                                   = 0xc\n\tAF_ECONET                                   = 0x13\n\tAF_FILE                                     = 0x1\n\tAF_IB                                       = 0x1b\n\tAF_IEEE802154                               = 0x24\n\tAF_INET                                     = 0x2\n\tAF_INET6                                    = 0xa\n\tAF_IPX                                      = 0x4\n\tAF_IRDA                                     = 0x17\n\tAF_ISDN                                     = 0x22\n\tAF_IUCV                                     = 0x20\n\tAF_KCM                                      = 0x29\n\tAF_KEY                                      = 0xf\n\tAF_LLC                                      = 0x1a\n\tAF_LOCAL                                    = 0x1\n\tAF_MAX                                      = 0x2e\n\tAF_MCTP                                     = 0x2d\n\tAF_MPLS                                     = 0x1c\n\tAF_NETBEUI                                  = 0xd\n\tAF_NETLINK                                  = 0x10\n\tAF_NETROM                                   = 0x6\n\tAF_NFC                                      = 0x27\n\tAF_PACKET                                   = 0x11\n\tAF_PHONET                                   = 0x23\n\tAF_PPPOX                                    = 0x18\n\tAF_QIPCRTR                                  = 0x2a\n\tAF_RDS                                      = 0x15\n\tAF_ROSE                                     = 0xb\n\tAF_ROUTE                                    = 0x10\n\tAF_RXRPC                                    = 0x21\n\tAF_SECURITY                                 = 0xe\n\tAF_SMC                                      = 0x2b\n\tAF_SNA                                      = 0x16\n\tAF_TIPC                                     = 0x1e\n\tAF_UNIX                                     = 0x1\n\tAF_UNSPEC                                   = 0x0\n\tAF_VSOCK                                    = 0x28\n\tAF_WANPIPE                                  = 0x19\n\tAF_X25                                      = 0x9\n\tAF_XDP                                      = 0x2c\n\tALG_OP_DECRYPT                              = 0x0\n\tALG_OP_ENCRYPT                              = 0x1\n\tALG_SET_AEAD_ASSOCLEN                       = 0x4\n\tALG_SET_AEAD_AUTHSIZE                       = 0x5\n\tALG_SET_DRBG_ENTROPY                        = 0x6\n\tALG_SET_IV                                  = 0x2\n\tALG_SET_KEY                                 = 0x1\n\tALG_SET_KEY_BY_KEY_SERIAL                   = 0x7\n\tALG_SET_OP                                  = 0x3\n\tANON_INODE_FS_MAGIC                         = 0x9041934\n\tARPHRD_6LOWPAN                              = 0x339\n\tARPHRD_ADAPT                                = 0x108\n\tARPHRD_APPLETLK                             = 0x8\n\tARPHRD_ARCNET                               = 0x7\n\tARPHRD_ASH                                  = 0x30d\n\tARPHRD_ATM                                  = 0x13\n\tARPHRD_AX25                                 = 0x3\n\tARPHRD_BIF                                  = 0x307\n\tARPHRD_CAIF                                 = 0x336\n\tARPHRD_CAN                                  = 0x118\n\tARPHRD_CHAOS                                = 0x5\n\tARPHRD_CISCO                                = 0x201\n\tARPHRD_CSLIP                                = 0x101\n\tARPHRD_CSLIP6                               = 0x103\n\tARPHRD_DDCMP                                = 0x205\n\tARPHRD_DLCI                                 = 0xf\n\tARPHRD_ECONET                               = 0x30e\n\tARPHRD_EETHER                               = 0x2\n\tARPHRD_ETHER                                = 0x1\n\tARPHRD_EUI64                                = 0x1b\n\tARPHRD_FCAL                                 = 0x311\n\tARPHRD_FCFABRIC                             = 0x313\n\tARPHRD_FCPL                                 = 0x312\n\tARPHRD_FCPP                                 = 0x310\n\tARPHRD_FDDI                                 = 0x306\n\tARPHRD_FRAD                                 = 0x302\n\tARPHRD_HDLC                                 = 0x201\n\tARPHRD_HIPPI                                = 0x30c\n\tARPHRD_HWX25                                = 0x110\n\tARPHRD_IEEE1394                             = 0x18\n\tARPHRD_IEEE802                              = 0x6\n\tARPHRD_IEEE80211                            = 0x321\n\tARPHRD_IEEE80211_PRISM                      = 0x322\n\tARPHRD_IEEE80211_RADIOTAP                   = 0x323\n\tARPHRD_IEEE802154                           = 0x324\n\tARPHRD_IEEE802154_MONITOR                   = 0x325\n\tARPHRD_IEEE802_TR                           = 0x320\n\tARPHRD_INFINIBAND                           = 0x20\n\tARPHRD_IP6GRE                               = 0x337\n\tARPHRD_IPDDP                                = 0x309\n\tARPHRD_IPGRE                                = 0x30a\n\tARPHRD_IRDA                                 = 0x30f\n\tARPHRD_LAPB                                 = 0x204\n\tARPHRD_LOCALTLK                             = 0x305\n\tARPHRD_LOOPBACK                             = 0x304\n\tARPHRD_MCTP                                 = 0x122\n\tARPHRD_METRICOM                             = 0x17\n\tARPHRD_NETLINK                              = 0x338\n\tARPHRD_NETROM                               = 0x0\n\tARPHRD_NONE                                 = 0xfffe\n\tARPHRD_PHONET                               = 0x334\n\tARPHRD_PHONET_PIPE                          = 0x335\n\tARPHRD_PIMREG                               = 0x30b\n\tARPHRD_PPP                                  = 0x200\n\tARPHRD_PRONET                               = 0x4\n\tARPHRD_RAWHDLC                              = 0x206\n\tARPHRD_RAWIP                                = 0x207\n\tARPHRD_ROSE                                 = 0x10e\n\tARPHRD_RSRVD                                = 0x104\n\tARPHRD_SIT                                  = 0x308\n\tARPHRD_SKIP                                 = 0x303\n\tARPHRD_SLIP                                 = 0x100\n\tARPHRD_SLIP6                                = 0x102\n\tARPHRD_TUNNEL                               = 0x300\n\tARPHRD_TUNNEL6                              = 0x301\n\tARPHRD_VOID                                 = 0xffff\n\tARPHRD_VSOCKMON                             = 0x33a\n\tARPHRD_X25                                  = 0x10f\n\tAUDIT_ADD                                   = 0x3eb\n\tAUDIT_ADD_RULE                              = 0x3f3\n\tAUDIT_ALWAYS                                = 0x2\n\tAUDIT_ANOM_ABEND                            = 0x6a5\n\tAUDIT_ANOM_CREAT                            = 0x6a7\n\tAUDIT_ANOM_LINK                             = 0x6a6\n\tAUDIT_ANOM_PROMISCUOUS                      = 0x6a4\n\tAUDIT_ARCH                                  = 0xb\n\tAUDIT_ARCH_AARCH64                          = 0xc00000b7\n\tAUDIT_ARCH_ALPHA                            = 0xc0009026\n\tAUDIT_ARCH_ARCOMPACT                        = 0x4000005d\n\tAUDIT_ARCH_ARCOMPACTBE                      = 0x5d\n\tAUDIT_ARCH_ARCV2                            = 0x400000c3\n\tAUDIT_ARCH_ARCV2BE                          = 0xc3\n\tAUDIT_ARCH_ARM                              = 0x40000028\n\tAUDIT_ARCH_ARMEB                            = 0x28\n\tAUDIT_ARCH_C6X                              = 0x4000008c\n\tAUDIT_ARCH_C6XBE                            = 0x8c\n\tAUDIT_ARCH_CRIS                             = 0x4000004c\n\tAUDIT_ARCH_CSKY                             = 0x400000fc\n\tAUDIT_ARCH_FRV                              = 0x5441\n\tAUDIT_ARCH_H8300                            = 0x2e\n\tAUDIT_ARCH_HEXAGON                          = 0xa4\n\tAUDIT_ARCH_I386                             = 0x40000003\n\tAUDIT_ARCH_IA64                             = 0xc0000032\n\tAUDIT_ARCH_LOONGARCH32                      = 0x40000102\n\tAUDIT_ARCH_LOONGARCH64                      = 0xc0000102\n\tAUDIT_ARCH_M32R                             = 0x58\n\tAUDIT_ARCH_M68K                             = 0x4\n\tAUDIT_ARCH_MICROBLAZE                       = 0xbd\n\tAUDIT_ARCH_MIPS                             = 0x8\n\tAUDIT_ARCH_MIPS64                           = 0x80000008\n\tAUDIT_ARCH_MIPS64N32                        = 0xa0000008\n\tAUDIT_ARCH_MIPSEL                           = 0x40000008\n\tAUDIT_ARCH_MIPSEL64                         = 0xc0000008\n\tAUDIT_ARCH_MIPSEL64N32                      = 0xe0000008\n\tAUDIT_ARCH_NDS32                            = 0x400000a7\n\tAUDIT_ARCH_NDS32BE                          = 0xa7\n\tAUDIT_ARCH_NIOS2                            = 0x40000071\n\tAUDIT_ARCH_OPENRISC                         = 0x5c\n\tAUDIT_ARCH_PARISC                           = 0xf\n\tAUDIT_ARCH_PARISC64                         = 0x8000000f\n\tAUDIT_ARCH_PPC                              = 0x14\n\tAUDIT_ARCH_PPC64                            = 0x80000015\n\tAUDIT_ARCH_PPC64LE                          = 0xc0000015\n\tAUDIT_ARCH_RISCV32                          = 0x400000f3\n\tAUDIT_ARCH_RISCV64                          = 0xc00000f3\n\tAUDIT_ARCH_S390                             = 0x16\n\tAUDIT_ARCH_S390X                            = 0x80000016\n\tAUDIT_ARCH_SH                               = 0x2a\n\tAUDIT_ARCH_SH64                             = 0x8000002a\n\tAUDIT_ARCH_SHEL                             = 0x4000002a\n\tAUDIT_ARCH_SHEL64                           = 0xc000002a\n\tAUDIT_ARCH_SPARC                            = 0x2\n\tAUDIT_ARCH_SPARC64                          = 0x8000002b\n\tAUDIT_ARCH_TILEGX                           = 0xc00000bf\n\tAUDIT_ARCH_TILEGX32                         = 0x400000bf\n\tAUDIT_ARCH_TILEPRO                          = 0x400000bc\n\tAUDIT_ARCH_UNICORE                          = 0x4000006e\n\tAUDIT_ARCH_X86_64                           = 0xc000003e\n\tAUDIT_ARCH_XTENSA                           = 0x5e\n\tAUDIT_ARG0                                  = 0xc8\n\tAUDIT_ARG1                                  = 0xc9\n\tAUDIT_ARG2                                  = 0xca\n\tAUDIT_ARG3                                  = 0xcb\n\tAUDIT_AVC                                   = 0x578\n\tAUDIT_AVC_PATH                              = 0x57a\n\tAUDIT_BITMASK_SIZE                          = 0x40\n\tAUDIT_BIT_MASK                              = 0x8000000\n\tAUDIT_BIT_TEST                              = 0x48000000\n\tAUDIT_BPF                                   = 0x536\n\tAUDIT_BPRM_FCAPS                            = 0x529\n\tAUDIT_CAPSET                                = 0x52a\n\tAUDIT_CLASS_CHATTR                          = 0x2\n\tAUDIT_CLASS_CHATTR_32                       = 0x3\n\tAUDIT_CLASS_DIR_WRITE                       = 0x0\n\tAUDIT_CLASS_DIR_WRITE_32                    = 0x1\n\tAUDIT_CLASS_READ                            = 0x4\n\tAUDIT_CLASS_READ_32                         = 0x5\n\tAUDIT_CLASS_SIGNAL                          = 0x8\n\tAUDIT_CLASS_SIGNAL_32                       = 0x9\n\tAUDIT_CLASS_WRITE                           = 0x6\n\tAUDIT_CLASS_WRITE_32                        = 0x7\n\tAUDIT_COMPARE_AUID_TO_EUID                  = 0x10\n\tAUDIT_COMPARE_AUID_TO_FSUID                 = 0xe\n\tAUDIT_COMPARE_AUID_TO_OBJ_UID               = 0x5\n\tAUDIT_COMPARE_AUID_TO_SUID                  = 0xf\n\tAUDIT_COMPARE_EGID_TO_FSGID                 = 0x17\n\tAUDIT_COMPARE_EGID_TO_OBJ_GID               = 0x4\n\tAUDIT_COMPARE_EGID_TO_SGID                  = 0x18\n\tAUDIT_COMPARE_EUID_TO_FSUID                 = 0x12\n\tAUDIT_COMPARE_EUID_TO_OBJ_UID               = 0x3\n\tAUDIT_COMPARE_EUID_TO_SUID                  = 0x11\n\tAUDIT_COMPARE_FSGID_TO_OBJ_GID              = 0x9\n\tAUDIT_COMPARE_FSUID_TO_OBJ_UID              = 0x8\n\tAUDIT_COMPARE_GID_TO_EGID                   = 0x14\n\tAUDIT_COMPARE_GID_TO_FSGID                  = 0x15\n\tAUDIT_COMPARE_GID_TO_OBJ_GID                = 0x2\n\tAUDIT_COMPARE_GID_TO_SGID                   = 0x16\n\tAUDIT_COMPARE_SGID_TO_FSGID                 = 0x19\n\tAUDIT_COMPARE_SGID_TO_OBJ_GID               = 0x7\n\tAUDIT_COMPARE_SUID_TO_FSUID                 = 0x13\n\tAUDIT_COMPARE_SUID_TO_OBJ_UID               = 0x6\n\tAUDIT_COMPARE_UID_TO_AUID                   = 0xa\n\tAUDIT_COMPARE_UID_TO_EUID                   = 0xb\n\tAUDIT_COMPARE_UID_TO_FSUID                  = 0xc\n\tAUDIT_COMPARE_UID_TO_OBJ_UID                = 0x1\n\tAUDIT_COMPARE_UID_TO_SUID                   = 0xd\n\tAUDIT_CONFIG_CHANGE                         = 0x519\n\tAUDIT_CWD                                   = 0x51b\n\tAUDIT_DAEMON_ABORT                          = 0x4b2\n\tAUDIT_DAEMON_CONFIG                         = 0x4b3\n\tAUDIT_DAEMON_END                            = 0x4b1\n\tAUDIT_DAEMON_START                          = 0x4b0\n\tAUDIT_DEL                                   = 0x3ec\n\tAUDIT_DEL_RULE                              = 0x3f4\n\tAUDIT_DEVMAJOR                              = 0x64\n\tAUDIT_DEVMINOR                              = 0x65\n\tAUDIT_DIR                                   = 0x6b\n\tAUDIT_DM_CTRL                               = 0x53a\n\tAUDIT_DM_EVENT                              = 0x53b\n\tAUDIT_EGID                                  = 0x6\n\tAUDIT_EOE                                   = 0x528\n\tAUDIT_EQUAL                                 = 0x40000000\n\tAUDIT_EUID                                  = 0x2\n\tAUDIT_EVENT_LISTENER                        = 0x537\n\tAUDIT_EXE                                   = 0x70\n\tAUDIT_EXECVE                                = 0x51d\n\tAUDIT_EXIT                                  = 0x67\n\tAUDIT_FAIL_PANIC                            = 0x2\n\tAUDIT_FAIL_PRINTK                           = 0x1\n\tAUDIT_FAIL_SILENT                           = 0x0\n\tAUDIT_FANOTIFY                              = 0x533\n\tAUDIT_FD_PAIR                               = 0x525\n\tAUDIT_FEATURE_BITMAP_ALL                    = 0x7f\n\tAUDIT_FEATURE_BITMAP_BACKLOG_LIMIT          = 0x1\n\tAUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME      = 0x2\n\tAUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND         = 0x8\n\tAUDIT_FEATURE_BITMAP_EXECUTABLE_PATH        = 0x4\n\tAUDIT_FEATURE_BITMAP_FILTER_FS              = 0x40\n\tAUDIT_FEATURE_BITMAP_LOST_RESET             = 0x20\n\tAUDIT_FEATURE_BITMAP_SESSIONID_FILTER       = 0x10\n\tAUDIT_FEATURE_CHANGE                        = 0x530\n\tAUDIT_FEATURE_LOGINUID_IMMUTABLE            = 0x1\n\tAUDIT_FEATURE_ONLY_UNSET_LOGINUID           = 0x0\n\tAUDIT_FEATURE_VERSION                       = 0x1\n\tAUDIT_FIELD_COMPARE                         = 0x6f\n\tAUDIT_FILETYPE                              = 0x6c\n\tAUDIT_FILTERKEY                             = 0xd2\n\tAUDIT_FILTER_ENTRY                          = 0x2\n\tAUDIT_FILTER_EXCLUDE                        = 0x5\n\tAUDIT_FILTER_EXIT                           = 0x4\n\tAUDIT_FILTER_FS                             = 0x6\n\tAUDIT_FILTER_PREPEND                        = 0x10\n\tAUDIT_FILTER_TASK                           = 0x1\n\tAUDIT_FILTER_TYPE                           = 0x5\n\tAUDIT_FILTER_URING_EXIT                     = 0x7\n\tAUDIT_FILTER_USER                           = 0x0\n\tAUDIT_FILTER_WATCH                          = 0x3\n\tAUDIT_FIRST_KERN_ANOM_MSG                   = 0x6a4\n\tAUDIT_FIRST_USER_MSG                        = 0x44c\n\tAUDIT_FIRST_USER_MSG2                       = 0x834\n\tAUDIT_FSGID                                 = 0x8\n\tAUDIT_FSTYPE                                = 0x1a\n\tAUDIT_FSUID                                 = 0x4\n\tAUDIT_GET                                   = 0x3e8\n\tAUDIT_GET_FEATURE                           = 0x3fb\n\tAUDIT_GID                                   = 0x5\n\tAUDIT_GREATER_THAN                          = 0x20000000\n\tAUDIT_GREATER_THAN_OR_EQUAL                 = 0x60000000\n\tAUDIT_INODE                                 = 0x66\n\tAUDIT_INTEGRITY_DATA                        = 0x708\n\tAUDIT_INTEGRITY_EVM_XATTR                   = 0x70e\n\tAUDIT_INTEGRITY_HASH                        = 0x70b\n\tAUDIT_INTEGRITY_METADATA                    = 0x709\n\tAUDIT_INTEGRITY_PCR                         = 0x70c\n\tAUDIT_INTEGRITY_POLICY_RULE                 = 0x70f\n\tAUDIT_INTEGRITY_RULE                        = 0x70d\n\tAUDIT_INTEGRITY_STATUS                      = 0x70a\n\tAUDIT_IPC                                   = 0x517\n\tAUDIT_IPC_SET_PERM                          = 0x51f\n\tAUDIT_KERNEL                                = 0x7d0\n\tAUDIT_KERNEL_OTHER                          = 0x524\n\tAUDIT_KERN_MODULE                           = 0x532\n\tAUDIT_LAST_FEATURE                          = 0x1\n\tAUDIT_LAST_KERN_ANOM_MSG                    = 0x707\n\tAUDIT_LAST_USER_MSG                         = 0x4af\n\tAUDIT_LAST_USER_MSG2                        = 0xbb7\n\tAUDIT_LESS_THAN                             = 0x10000000\n\tAUDIT_LESS_THAN_OR_EQUAL                    = 0x50000000\n\tAUDIT_LIST                                  = 0x3ea\n\tAUDIT_LIST_RULES                            = 0x3f5\n\tAUDIT_LOGIN                                 = 0x3ee\n\tAUDIT_LOGINUID                              = 0x9\n\tAUDIT_LOGINUID_SET                          = 0x18\n\tAUDIT_MAC_CALIPSO_ADD                       = 0x58a\n\tAUDIT_MAC_CALIPSO_DEL                       = 0x58b\n\tAUDIT_MAC_CIPSOV4_ADD                       = 0x57f\n\tAUDIT_MAC_CIPSOV4_DEL                       = 0x580\n\tAUDIT_MAC_CONFIG_CHANGE                     = 0x57d\n\tAUDIT_MAC_IPSEC_ADDSA                       = 0x583\n\tAUDIT_MAC_IPSEC_ADDSPD                      = 0x585\n\tAUDIT_MAC_IPSEC_DELSA                       = 0x584\n\tAUDIT_MAC_IPSEC_DELSPD                      = 0x586\n\tAUDIT_MAC_IPSEC_EVENT                       = 0x587\n\tAUDIT_MAC_MAP_ADD                           = 0x581\n\tAUDIT_MAC_MAP_DEL                           = 0x582\n\tAUDIT_MAC_POLICY_LOAD                       = 0x57b\n\tAUDIT_MAC_STATUS                            = 0x57c\n\tAUDIT_MAC_UNLBL_ALLOW                       = 0x57e\n\tAUDIT_MAC_UNLBL_STCADD                      = 0x588\n\tAUDIT_MAC_UNLBL_STCDEL                      = 0x589\n\tAUDIT_MAKE_EQUIV                            = 0x3f7\n\tAUDIT_MAX_FIELDS                            = 0x40\n\tAUDIT_MAX_FIELD_COMPARE                     = 0x19\n\tAUDIT_MAX_KEY_LEN                           = 0x100\n\tAUDIT_MESSAGE_TEXT_MAX                      = 0x2170\n\tAUDIT_MMAP                                  = 0x52b\n\tAUDIT_MQ_GETSETATTR                         = 0x523\n\tAUDIT_MQ_NOTIFY                             = 0x522\n\tAUDIT_MQ_OPEN                               = 0x520\n\tAUDIT_MQ_SENDRECV                           = 0x521\n\tAUDIT_MSGTYPE                               = 0xc\n\tAUDIT_NEGATE                                = 0x80000000\n\tAUDIT_NETFILTER_CFG                         = 0x52d\n\tAUDIT_NETFILTER_PKT                         = 0x52c\n\tAUDIT_NEVER                                 = 0x0\n\tAUDIT_NLGRP_MAX                             = 0x1\n\tAUDIT_NOT_EQUAL                             = 0x30000000\n\tAUDIT_NR_FILTERS                            = 0x8\n\tAUDIT_OBJ_GID                               = 0x6e\n\tAUDIT_OBJ_LEV_HIGH                          = 0x17\n\tAUDIT_OBJ_LEV_LOW                           = 0x16\n\tAUDIT_OBJ_PID                               = 0x526\n\tAUDIT_OBJ_ROLE                              = 0x14\n\tAUDIT_OBJ_TYPE                              = 0x15\n\tAUDIT_OBJ_UID                               = 0x6d\n\tAUDIT_OBJ_USER                              = 0x13\n\tAUDIT_OPENAT2                               = 0x539\n\tAUDIT_OPERATORS                             = 0x78000000\n\tAUDIT_PATH                                  = 0x516\n\tAUDIT_PERM                                  = 0x6a\n\tAUDIT_PERM_ATTR                             = 0x8\n\tAUDIT_PERM_EXEC                             = 0x1\n\tAUDIT_PERM_READ                             = 0x4\n\tAUDIT_PERM_WRITE                            = 0x2\n\tAUDIT_PERS                                  = 0xa\n\tAUDIT_PID                                   = 0x0\n\tAUDIT_POSSIBLE                              = 0x1\n\tAUDIT_PPID                                  = 0x12\n\tAUDIT_PROCTITLE                             = 0x52f\n\tAUDIT_REPLACE                               = 0x531\n\tAUDIT_SADDR_FAM                             = 0x71\n\tAUDIT_SECCOMP                               = 0x52e\n\tAUDIT_SELINUX_ERR                           = 0x579\n\tAUDIT_SESSIONID                             = 0x19\n\tAUDIT_SET                                   = 0x3e9\n\tAUDIT_SET_FEATURE                           = 0x3fa\n\tAUDIT_SGID                                  = 0x7\n\tAUDIT_SID_UNSET                             = 0xffffffff\n\tAUDIT_SIGNAL_INFO                           = 0x3f2\n\tAUDIT_SOCKADDR                              = 0x51a\n\tAUDIT_SOCKETCALL                            = 0x518\n\tAUDIT_STATUS_BACKLOG_LIMIT                  = 0x10\n\tAUDIT_STATUS_BACKLOG_WAIT_TIME              = 0x20\n\tAUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL       = 0x80\n\tAUDIT_STATUS_ENABLED                        = 0x1\n\tAUDIT_STATUS_FAILURE                        = 0x2\n\tAUDIT_STATUS_LOST                           = 0x40\n\tAUDIT_STATUS_PID                            = 0x4\n\tAUDIT_STATUS_RATE_LIMIT                     = 0x8\n\tAUDIT_SUBJ_CLR                              = 0x11\n\tAUDIT_SUBJ_ROLE                             = 0xe\n\tAUDIT_SUBJ_SEN                              = 0x10\n\tAUDIT_SUBJ_TYPE                             = 0xf\n\tAUDIT_SUBJ_USER                             = 0xd\n\tAUDIT_SUCCESS                               = 0x68\n\tAUDIT_SUID                                  = 0x3\n\tAUDIT_SYSCALL                               = 0x514\n\tAUDIT_SYSCALL_CLASSES                       = 0x10\n\tAUDIT_TIME_ADJNTPVAL                        = 0x535\n\tAUDIT_TIME_INJOFFSET                        = 0x534\n\tAUDIT_TRIM                                  = 0x3f6\n\tAUDIT_TTY                                   = 0x527\n\tAUDIT_TTY_GET                               = 0x3f8\n\tAUDIT_TTY_SET                               = 0x3f9\n\tAUDIT_UID                                   = 0x1\n\tAUDIT_UID_UNSET                             = 0xffffffff\n\tAUDIT_UNUSED_BITS                           = 0x7fffc00\n\tAUDIT_URINGOP                               = 0x538\n\tAUDIT_USER                                  = 0x3ed\n\tAUDIT_USER_AVC                              = 0x453\n\tAUDIT_USER_TTY                              = 0x464\n\tAUDIT_VERSION_BACKLOG_LIMIT                 = 0x1\n\tAUDIT_VERSION_BACKLOG_WAIT_TIME             = 0x2\n\tAUDIT_VERSION_LATEST                        = 0x7f\n\tAUDIT_WATCH                                 = 0x69\n\tAUDIT_WATCH_INS                             = 0x3ef\n\tAUDIT_WATCH_LIST                            = 0x3f1\n\tAUDIT_WATCH_REM                             = 0x3f0\n\tAUTOFS_SUPER_MAGIC                          = 0x187\n\tB0                                          = 0x0\n\tB110                                        = 0x3\n\tB1200                                       = 0x9\n\tB134                                        = 0x4\n\tB150                                        = 0x5\n\tB1800                                       = 0xa\n\tB19200                                      = 0xe\n\tB200                                        = 0x6\n\tB2400                                       = 0xb\n\tB300                                        = 0x7\n\tB38400                                      = 0xf\n\tB4800                                       = 0xc\n\tB50                                         = 0x1\n\tB600                                        = 0x8\n\tB75                                         = 0x2\n\tB9600                                       = 0xd\n\tBCACHEFS_SUPER_MAGIC                        = 0xca451a4e\n\tBDEVFS_MAGIC                                = 0x62646576\n\tBINDERFS_SUPER_MAGIC                        = 0x6c6f6f70\n\tBINFMTFS_MAGIC                              = 0x42494e4d\n\tBPF_A                                       = 0x10\n\tBPF_ABS                                     = 0x20\n\tBPF_ADD                                     = 0x0\n\tBPF_ALU                                     = 0x4\n\tBPF_ALU64                                   = 0x7\n\tBPF_AND                                     = 0x50\n\tBPF_ARSH                                    = 0xc0\n\tBPF_ATOMIC                                  = 0xc0\n\tBPF_B                                       = 0x10\n\tBPF_BUILD_ID_SIZE                           = 0x14\n\tBPF_CALL                                    = 0x80\n\tBPF_CMPXCHG                                 = 0xf1\n\tBPF_DIV                                     = 0x30\n\tBPF_DW                                      = 0x18\n\tBPF_END                                     = 0xd0\n\tBPF_EXIT                                    = 0x90\n\tBPF_FETCH                                   = 0x1\n\tBPF_FROM_BE                                 = 0x8\n\tBPF_FROM_LE                                 = 0x0\n\tBPF_FS_MAGIC                                = 0xcafe4a11\n\tBPF_F_AFTER                                 = 0x10\n\tBPF_F_ALLOW_MULTI                           = 0x2\n\tBPF_F_ALLOW_OVERRIDE                        = 0x1\n\tBPF_F_ANY_ALIGNMENT                         = 0x2\n\tBPF_F_BEFORE                                = 0x8\n\tBPF_F_ID                                    = 0x20\n\tBPF_F_NETFILTER_IP_DEFRAG                   = 0x1\n\tBPF_F_QUERY_EFFECTIVE                       = 0x1\n\tBPF_F_REPLACE                               = 0x4\n\tBPF_F_SLEEPABLE                             = 0x10\n\tBPF_F_STRICT_ALIGNMENT                      = 0x1\n\tBPF_F_TEST_REG_INVARIANTS                   = 0x80\n\tBPF_F_TEST_RND_HI32                         = 0x4\n\tBPF_F_TEST_RUN_ON_CPU                       = 0x1\n\tBPF_F_TEST_STATE_FREQ                       = 0x8\n\tBPF_F_TEST_XDP_LIVE_FRAMES                  = 0x2\n\tBPF_F_XDP_DEV_BOUND_ONLY                    = 0x40\n\tBPF_F_XDP_HAS_FRAGS                         = 0x20\n\tBPF_H                                       = 0x8\n\tBPF_IMM                                     = 0x0\n\tBPF_IND                                     = 0x40\n\tBPF_JA                                      = 0x0\n\tBPF_JCOND                                   = 0xe0\n\tBPF_JEQ                                     = 0x10\n\tBPF_JGE                                     = 0x30\n\tBPF_JGT                                     = 0x20\n\tBPF_JLE                                     = 0xb0\n\tBPF_JLT                                     = 0xa0\n\tBPF_JMP                                     = 0x5\n\tBPF_JMP32                                   = 0x6\n\tBPF_JNE                                     = 0x50\n\tBPF_JSET                                    = 0x40\n\tBPF_JSGE                                    = 0x70\n\tBPF_JSGT                                    = 0x60\n\tBPF_JSLE                                    = 0xd0\n\tBPF_JSLT                                    = 0xc0\n\tBPF_K                                       = 0x0\n\tBPF_LD                                      = 0x0\n\tBPF_LDX                                     = 0x1\n\tBPF_LEN                                     = 0x80\n\tBPF_LL_OFF                                  = -0x200000\n\tBPF_LSH                                     = 0x60\n\tBPF_MAJOR_VERSION                           = 0x1\n\tBPF_MAXINSNS                                = 0x1000\n\tBPF_MEM                                     = 0x60\n\tBPF_MEMSX                                   = 0x80\n\tBPF_MEMWORDS                                = 0x10\n\tBPF_MINOR_VERSION                           = 0x1\n\tBPF_MISC                                    = 0x7\n\tBPF_MOD                                     = 0x90\n\tBPF_MOV                                     = 0xb0\n\tBPF_MSH                                     = 0xa0\n\tBPF_MUL                                     = 0x20\n\tBPF_NEG                                     = 0x80\n\tBPF_NET_OFF                                 = -0x100000\n\tBPF_OBJ_NAME_LEN                            = 0x10\n\tBPF_OR                                      = 0x40\n\tBPF_PSEUDO_BTF_ID                           = 0x3\n\tBPF_PSEUDO_CALL                             = 0x1\n\tBPF_PSEUDO_FUNC                             = 0x4\n\tBPF_PSEUDO_KFUNC_CALL                       = 0x2\n\tBPF_PSEUDO_MAP_FD                           = 0x1\n\tBPF_PSEUDO_MAP_IDX                          = 0x5\n\tBPF_PSEUDO_MAP_IDX_VALUE                    = 0x6\n\tBPF_PSEUDO_MAP_VALUE                        = 0x2\n\tBPF_RET                                     = 0x6\n\tBPF_RSH                                     = 0x70\n\tBPF_ST                                      = 0x2\n\tBPF_STX                                     = 0x3\n\tBPF_SUB                                     = 0x10\n\tBPF_TAG_SIZE                                = 0x8\n\tBPF_TAX                                     = 0x0\n\tBPF_TO_BE                                   = 0x8\n\tBPF_TO_LE                                   = 0x0\n\tBPF_TXA                                     = 0x80\n\tBPF_W                                       = 0x0\n\tBPF_X                                       = 0x8\n\tBPF_XADD                                    = 0xc0\n\tBPF_XCHG                                    = 0xe1\n\tBPF_XOR                                     = 0xa0\n\tBRKINT                                      = 0x2\n\tBS0                                         = 0x0\n\tBTRFS_SUPER_MAGIC                           = 0x9123683e\n\tBTRFS_TEST_MAGIC                            = 0x73727279\n\tBUS_BLUETOOTH                               = 0x5\n\tBUS_HIL                                     = 0x4\n\tBUS_USB                                     = 0x3\n\tBUS_VIRTUAL                                 = 0x6\n\tCAN_BCM                                     = 0x2\n\tCAN_BUS_OFF_THRESHOLD                       = 0x100\n\tCAN_CTRLMODE_3_SAMPLES                      = 0x4\n\tCAN_CTRLMODE_BERR_REPORTING                 = 0x10\n\tCAN_CTRLMODE_CC_LEN8_DLC                    = 0x100\n\tCAN_CTRLMODE_FD                             = 0x20\n\tCAN_CTRLMODE_FD_NON_ISO                     = 0x80\n\tCAN_CTRLMODE_LISTENONLY                     = 0x2\n\tCAN_CTRLMODE_LOOPBACK                       = 0x1\n\tCAN_CTRLMODE_ONE_SHOT                       = 0x8\n\tCAN_CTRLMODE_PRESUME_ACK                    = 0x40\n\tCAN_CTRLMODE_TDC_AUTO                       = 0x200\n\tCAN_CTRLMODE_TDC_MANUAL                     = 0x400\n\tCAN_EFF_FLAG                                = 0x80000000\n\tCAN_EFF_ID_BITS                             = 0x1d\n\tCAN_EFF_MASK                                = 0x1fffffff\n\tCAN_ERROR_PASSIVE_THRESHOLD                 = 0x80\n\tCAN_ERROR_WARNING_THRESHOLD                 = 0x60\n\tCAN_ERR_ACK                                 = 0x20\n\tCAN_ERR_BUSERROR                            = 0x80\n\tCAN_ERR_BUSOFF                              = 0x40\n\tCAN_ERR_CNT                                 = 0x200\n\tCAN_ERR_CRTL                                = 0x4\n\tCAN_ERR_CRTL_ACTIVE                         = 0x40\n\tCAN_ERR_CRTL_RX_OVERFLOW                    = 0x1\n\tCAN_ERR_CRTL_RX_PASSIVE                     = 0x10\n\tCAN_ERR_CRTL_RX_WARNING                     = 0x4\n\tCAN_ERR_CRTL_TX_OVERFLOW                    = 0x2\n\tCAN_ERR_CRTL_TX_PASSIVE                     = 0x20\n\tCAN_ERR_CRTL_TX_WARNING                     = 0x8\n\tCAN_ERR_CRTL_UNSPEC                         = 0x0\n\tCAN_ERR_DLC                                 = 0x8\n\tCAN_ERR_FLAG                                = 0x20000000\n\tCAN_ERR_LOSTARB                             = 0x2\n\tCAN_ERR_LOSTARB_UNSPEC                      = 0x0\n\tCAN_ERR_MASK                                = 0x1fffffff\n\tCAN_ERR_PROT                                = 0x8\n\tCAN_ERR_PROT_ACTIVE                         = 0x40\n\tCAN_ERR_PROT_BIT                            = 0x1\n\tCAN_ERR_PROT_BIT0                           = 0x8\n\tCAN_ERR_PROT_BIT1                           = 0x10\n\tCAN_ERR_PROT_FORM                           = 0x2\n\tCAN_ERR_PROT_LOC_ACK                        = 0x19\n\tCAN_ERR_PROT_LOC_ACK_DEL                    = 0x1b\n\tCAN_ERR_PROT_LOC_CRC_DEL                    = 0x18\n\tCAN_ERR_PROT_LOC_CRC_SEQ                    = 0x8\n\tCAN_ERR_PROT_LOC_DATA                       = 0xa\n\tCAN_ERR_PROT_LOC_DLC                        = 0xb\n\tCAN_ERR_PROT_LOC_EOF                        = 0x1a\n\tCAN_ERR_PROT_LOC_ID04_00                    = 0xe\n\tCAN_ERR_PROT_LOC_ID12_05                    = 0xf\n\tCAN_ERR_PROT_LOC_ID17_13                    = 0x7\n\tCAN_ERR_PROT_LOC_ID20_18                    = 0x6\n\tCAN_ERR_PROT_LOC_ID28_21                    = 0x2\n\tCAN_ERR_PROT_LOC_IDE                        = 0x5\n\tCAN_ERR_PROT_LOC_INTERM                     = 0x12\n\tCAN_ERR_PROT_LOC_RES0                       = 0x9\n\tCAN_ERR_PROT_LOC_RES1                       = 0xd\n\tCAN_ERR_PROT_LOC_RTR                        = 0xc\n\tCAN_ERR_PROT_LOC_SOF                        = 0x3\n\tCAN_ERR_PROT_LOC_SRTR                       = 0x4\n\tCAN_ERR_PROT_LOC_UNSPEC                     = 0x0\n\tCAN_ERR_PROT_OVERLOAD                       = 0x20\n\tCAN_ERR_PROT_STUFF                          = 0x4\n\tCAN_ERR_PROT_TX                             = 0x80\n\tCAN_ERR_PROT_UNSPEC                         = 0x0\n\tCAN_ERR_RESTARTED                           = 0x100\n\tCAN_ERR_TRX                                 = 0x10\n\tCAN_ERR_TRX_CANH_NO_WIRE                    = 0x4\n\tCAN_ERR_TRX_CANH_SHORT_TO_BAT               = 0x5\n\tCAN_ERR_TRX_CANH_SHORT_TO_GND               = 0x7\n\tCAN_ERR_TRX_CANH_SHORT_TO_VCC               = 0x6\n\tCAN_ERR_TRX_CANL_NO_WIRE                    = 0x40\n\tCAN_ERR_TRX_CANL_SHORT_TO_BAT               = 0x50\n\tCAN_ERR_TRX_CANL_SHORT_TO_CANH              = 0x80\n\tCAN_ERR_TRX_CANL_SHORT_TO_GND               = 0x70\n\tCAN_ERR_TRX_CANL_SHORT_TO_VCC               = 0x60\n\tCAN_ERR_TRX_UNSPEC                          = 0x0\n\tCAN_ERR_TX_TIMEOUT                          = 0x1\n\tCAN_INV_FILTER                              = 0x20000000\n\tCAN_ISOTP                                   = 0x6\n\tCAN_J1939                                   = 0x7\n\tCAN_MAX_DLC                                 = 0x8\n\tCAN_MAX_DLEN                                = 0x8\n\tCAN_MAX_RAW_DLC                             = 0xf\n\tCAN_MCNET                                   = 0x5\n\tCAN_MTU                                     = 0x10\n\tCAN_NPROTO                                  = 0x8\n\tCAN_RAW                                     = 0x1\n\tCAN_RAW_FILTER_MAX                          = 0x200\n\tCAN_RAW_XL_VCID_RX_FILTER                   = 0x4\n\tCAN_RAW_XL_VCID_TX_PASS                     = 0x2\n\tCAN_RAW_XL_VCID_TX_SET                      = 0x1\n\tCAN_RTR_FLAG                                = 0x40000000\n\tCAN_SFF_ID_BITS                             = 0xb\n\tCAN_SFF_MASK                                = 0x7ff\n\tCAN_TERMINATION_DISABLED                    = 0x0\n\tCAN_TP16                                    = 0x3\n\tCAN_TP20                                    = 0x4\n\tCAP_AUDIT_CONTROL                           = 0x1e\n\tCAP_AUDIT_READ                              = 0x25\n\tCAP_AUDIT_WRITE                             = 0x1d\n\tCAP_BLOCK_SUSPEND                           = 0x24\n\tCAP_BPF                                     = 0x27\n\tCAP_CHECKPOINT_RESTORE                      = 0x28\n\tCAP_CHOWN                                   = 0x0\n\tCAP_DAC_OVERRIDE                            = 0x1\n\tCAP_DAC_READ_SEARCH                         = 0x2\n\tCAP_FOWNER                                  = 0x3\n\tCAP_FSETID                                  = 0x4\n\tCAP_IPC_LOCK                                = 0xe\n\tCAP_IPC_OWNER                               = 0xf\n\tCAP_KILL                                    = 0x5\n\tCAP_LAST_CAP                                = 0x28\n\tCAP_LEASE                                   = 0x1c\n\tCAP_LINUX_IMMUTABLE                         = 0x9\n\tCAP_MAC_ADMIN                               = 0x21\n\tCAP_MAC_OVERRIDE                            = 0x20\n\tCAP_MKNOD                                   = 0x1b\n\tCAP_NET_ADMIN                               = 0xc\n\tCAP_NET_BIND_SERVICE                        = 0xa\n\tCAP_NET_BROADCAST                           = 0xb\n\tCAP_NET_RAW                                 = 0xd\n\tCAP_PERFMON                                 = 0x26\n\tCAP_SETFCAP                                 = 0x1f\n\tCAP_SETGID                                  = 0x6\n\tCAP_SETPCAP                                 = 0x8\n\tCAP_SETUID                                  = 0x7\n\tCAP_SYSLOG                                  = 0x22\n\tCAP_SYS_ADMIN                               = 0x15\n\tCAP_SYS_BOOT                                = 0x16\n\tCAP_SYS_CHROOT                              = 0x12\n\tCAP_SYS_MODULE                              = 0x10\n\tCAP_SYS_NICE                                = 0x17\n\tCAP_SYS_PACCT                               = 0x14\n\tCAP_SYS_PTRACE                              = 0x13\n\tCAP_SYS_RAWIO                               = 0x11\n\tCAP_SYS_RESOURCE                            = 0x18\n\tCAP_SYS_TIME                                = 0x19\n\tCAP_SYS_TTY_CONFIG                          = 0x1a\n\tCAP_WAKE_ALARM                              = 0x23\n\tCEPH_SUPER_MAGIC                            = 0xc36400\n\tCFLUSH                                      = 0xf\n\tCGROUP2_SUPER_MAGIC                         = 0x63677270\n\tCGROUP_SUPER_MAGIC                          = 0x27e0eb\n\tCIFS_SUPER_MAGIC                            = 0xff534d42\n\tCLOCK_BOOTTIME                              = 0x7\n\tCLOCK_BOOTTIME_ALARM                        = 0x9\n\tCLOCK_DEFAULT                               = 0x0\n\tCLOCK_EXT                                   = 0x1\n\tCLOCK_INT                                   = 0x2\n\tCLOCK_MONOTONIC                             = 0x1\n\tCLOCK_MONOTONIC_COARSE                      = 0x6\n\tCLOCK_MONOTONIC_RAW                         = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID                    = 0x2\n\tCLOCK_REALTIME                              = 0x0\n\tCLOCK_REALTIME_ALARM                        = 0x8\n\tCLOCK_REALTIME_COARSE                       = 0x5\n\tCLOCK_TAI                                   = 0xb\n\tCLOCK_THREAD_CPUTIME_ID                     = 0x3\n\tCLOCK_TXFROMRX                              = 0x4\n\tCLOCK_TXINT                                 = 0x3\n\tCLONE_ARGS_SIZE_VER0                        = 0x40\n\tCLONE_ARGS_SIZE_VER1                        = 0x50\n\tCLONE_ARGS_SIZE_VER2                        = 0x58\n\tCLONE_CHILD_CLEARTID                        = 0x200000\n\tCLONE_CHILD_SETTID                          = 0x1000000\n\tCLONE_CLEAR_SIGHAND                         = 0x100000000\n\tCLONE_DETACHED                              = 0x400000\n\tCLONE_FILES                                 = 0x400\n\tCLONE_FS                                    = 0x200\n\tCLONE_INTO_CGROUP                           = 0x200000000\n\tCLONE_IO                                    = 0x80000000\n\tCLONE_NEWCGROUP                             = 0x2000000\n\tCLONE_NEWIPC                                = 0x8000000\n\tCLONE_NEWNET                                = 0x40000000\n\tCLONE_NEWNS                                 = 0x20000\n\tCLONE_NEWPID                                = 0x20000000\n\tCLONE_NEWTIME                               = 0x80\n\tCLONE_NEWUSER                               = 0x10000000\n\tCLONE_NEWUTS                                = 0x4000000\n\tCLONE_PARENT                                = 0x8000\n\tCLONE_PARENT_SETTID                         = 0x100000\n\tCLONE_PIDFD                                 = 0x1000\n\tCLONE_PTRACE                                = 0x2000\n\tCLONE_SETTLS                                = 0x80000\n\tCLONE_SIGHAND                               = 0x800\n\tCLONE_SYSVSEM                               = 0x40000\n\tCLONE_THREAD                                = 0x10000\n\tCLONE_UNTRACED                              = 0x800000\n\tCLONE_VFORK                                 = 0x4000\n\tCLONE_VM                                    = 0x100\n\tCMSPAR                                      = 0x40000000\n\tCODA_SUPER_MAGIC                            = 0x73757245\n\tCR0                                         = 0x0\n\tCRAMFS_MAGIC                                = 0x28cd3d45\n\tCRTSCTS                                     = 0x80000000\n\tCRYPTO_MAX_NAME                             = 0x40\n\tCRYPTO_MSG_MAX                              = 0x15\n\tCRYPTO_NR_MSGTYPES                          = 0x6\n\tCRYPTO_REPORT_MAXSIZE                       = 0x160\n\tCS5                                         = 0x0\n\tCSIGNAL                                     = 0xff\n\tCSTART                                      = 0x11\n\tCSTATUS                                     = 0x0\n\tCSTOP                                       = 0x13\n\tCSUSP                                       = 0x1a\n\tDAXFS_MAGIC                                 = 0x64646178\n\tDEBUGFS_MAGIC                               = 0x64626720\n\tDEVLINK_CMD_ESWITCH_MODE_GET                = 0x1d\n\tDEVLINK_CMD_ESWITCH_MODE_SET                = 0x1e\n\tDEVLINK_FLASH_OVERWRITE_IDENTIFIERS         = 0x2\n\tDEVLINK_FLASH_OVERWRITE_SETTINGS            = 0x1\n\tDEVLINK_GENL_MCGRP_CONFIG_NAME              = \"config\"\n\tDEVLINK_GENL_NAME                           = \"devlink\"\n\tDEVLINK_GENL_VERSION                        = 0x1\n\tDEVLINK_PORT_FN_CAP_IPSEC_CRYPTO            = 0x4\n\tDEVLINK_PORT_FN_CAP_IPSEC_PACKET            = 0x8\n\tDEVLINK_PORT_FN_CAP_MIGRATABLE              = 0x2\n\tDEVLINK_PORT_FN_CAP_ROCE                    = 0x1\n\tDEVLINK_SB_THRESHOLD_TO_ALPHA_MAX           = 0x14\n\tDEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS  = 0x3\n\tDEVMEM_MAGIC                                = 0x454d444d\n\tDEVPTS_SUPER_MAGIC                          = 0x1cd1\n\tDMA_BUF_MAGIC                               = 0x444d4142\n\tDM_ACTIVE_PRESENT_FLAG                      = 0x20\n\tDM_BUFFER_FULL_FLAG                         = 0x100\n\tDM_CONTROL_NODE                             = \"control\"\n\tDM_DATA_OUT_FLAG                            = 0x10000\n\tDM_DEFERRED_REMOVE                          = 0x20000\n\tDM_DEV_ARM_POLL                             = 0xc138fd10\n\tDM_DEV_CREATE                               = 0xc138fd03\n\tDM_DEV_REMOVE                               = 0xc138fd04\n\tDM_DEV_RENAME                               = 0xc138fd05\n\tDM_DEV_SET_GEOMETRY                         = 0xc138fd0f\n\tDM_DEV_STATUS                               = 0xc138fd07\n\tDM_DEV_SUSPEND                              = 0xc138fd06\n\tDM_DEV_WAIT                                 = 0xc138fd08\n\tDM_DIR                                      = \"mapper\"\n\tDM_GET_TARGET_VERSION                       = 0xc138fd11\n\tDM_IMA_MEASUREMENT_FLAG                     = 0x80000\n\tDM_INACTIVE_PRESENT_FLAG                    = 0x40\n\tDM_INTERNAL_SUSPEND_FLAG                    = 0x40000\n\tDM_IOCTL                                    = 0xfd\n\tDM_LIST_DEVICES                             = 0xc138fd02\n\tDM_LIST_VERSIONS                            = 0xc138fd0d\n\tDM_MAX_TYPE_NAME                            = 0x10\n\tDM_NAME_LEN                                 = 0x80\n\tDM_NAME_LIST_FLAG_DOESNT_HAVE_UUID          = 0x2\n\tDM_NAME_LIST_FLAG_HAS_UUID                  = 0x1\n\tDM_NOFLUSH_FLAG                             = 0x800\n\tDM_PERSISTENT_DEV_FLAG                      = 0x8\n\tDM_QUERY_INACTIVE_TABLE_FLAG                = 0x1000\n\tDM_READONLY_FLAG                            = 0x1\n\tDM_REMOVE_ALL                               = 0xc138fd01\n\tDM_SECURE_DATA_FLAG                         = 0x8000\n\tDM_SKIP_BDGET_FLAG                          = 0x200\n\tDM_SKIP_LOCKFS_FLAG                         = 0x400\n\tDM_STATUS_TABLE_FLAG                        = 0x10\n\tDM_SUSPEND_FLAG                             = 0x2\n\tDM_TABLE_CLEAR                              = 0xc138fd0a\n\tDM_TABLE_DEPS                               = 0xc138fd0b\n\tDM_TABLE_LOAD                               = 0xc138fd09\n\tDM_TABLE_STATUS                             = 0xc138fd0c\n\tDM_TARGET_MSG                               = 0xc138fd0e\n\tDM_UEVENT_GENERATED_FLAG                    = 0x2000\n\tDM_UUID_FLAG                                = 0x4000\n\tDM_UUID_LEN                                 = 0x81\n\tDM_VERSION                                  = 0xc138fd00\n\tDM_VERSION_EXTRA                            = \"-ioctl (2023-03-01)\"\n\tDM_VERSION_MAJOR                            = 0x4\n\tDM_VERSION_MINOR                            = 0x30\n\tDM_VERSION_PATCHLEVEL                       = 0x0\n\tDT_BLK                                      = 0x6\n\tDT_CHR                                      = 0x2\n\tDT_DIR                                      = 0x4\n\tDT_FIFO                                     = 0x1\n\tDT_LNK                                      = 0xa\n\tDT_REG                                      = 0x8\n\tDT_SOCK                                     = 0xc\n\tDT_UNKNOWN                                  = 0x0\n\tDT_WHT                                      = 0xe\n\tECHO                                        = 0x8\n\tECRYPTFS_SUPER_MAGIC                        = 0xf15f\n\tEFD_SEMAPHORE                               = 0x1\n\tEFIVARFS_MAGIC                              = 0xde5e81e4\n\tEFS_SUPER_MAGIC                             = 0x414a53\n\tEM_386                                      = 0x3\n\tEM_486                                      = 0x6\n\tEM_68K                                      = 0x4\n\tEM_860                                      = 0x7\n\tEM_88K                                      = 0x5\n\tEM_AARCH64                                  = 0xb7\n\tEM_ALPHA                                    = 0x9026\n\tEM_ALTERA_NIOS2                             = 0x71\n\tEM_ARCOMPACT                                = 0x5d\n\tEM_ARCV2                                    = 0xc3\n\tEM_ARM                                      = 0x28\n\tEM_BLACKFIN                                 = 0x6a\n\tEM_BPF                                      = 0xf7\n\tEM_CRIS                                     = 0x4c\n\tEM_CSKY                                     = 0xfc\n\tEM_CYGNUS_M32R                              = 0x9041\n\tEM_CYGNUS_MN10300                           = 0xbeef\n\tEM_FRV                                      = 0x5441\n\tEM_H8_300                                   = 0x2e\n\tEM_HEXAGON                                  = 0xa4\n\tEM_IA_64                                    = 0x32\n\tEM_LOONGARCH                                = 0x102\n\tEM_M32                                      = 0x1\n\tEM_M32R                                     = 0x58\n\tEM_MICROBLAZE                               = 0xbd\n\tEM_MIPS                                     = 0x8\n\tEM_MIPS_RS3_LE                              = 0xa\n\tEM_MIPS_RS4_BE                              = 0xa\n\tEM_MN10300                                  = 0x59\n\tEM_NDS32                                    = 0xa7\n\tEM_NONE                                     = 0x0\n\tEM_OPENRISC                                 = 0x5c\n\tEM_PARISC                                   = 0xf\n\tEM_PPC                                      = 0x14\n\tEM_PPC64                                    = 0x15\n\tEM_RISCV                                    = 0xf3\n\tEM_S390                                     = 0x16\n\tEM_S390_OLD                                 = 0xa390\n\tEM_SH                                       = 0x2a\n\tEM_SPARC                                    = 0x2\n\tEM_SPARC32PLUS                              = 0x12\n\tEM_SPARCV9                                  = 0x2b\n\tEM_SPU                                      = 0x17\n\tEM_TILEGX                                   = 0xbf\n\tEM_TILEPRO                                  = 0xbc\n\tEM_TI_C6000                                 = 0x8c\n\tEM_UNICORE                                  = 0x6e\n\tEM_X86_64                                   = 0x3e\n\tEM_XTENSA                                   = 0x5e\n\tENCODING_DEFAULT                            = 0x0\n\tENCODING_FM_MARK                            = 0x3\n\tENCODING_FM_SPACE                           = 0x4\n\tENCODING_MANCHESTER                         = 0x5\n\tENCODING_NRZ                                = 0x1\n\tENCODING_NRZI                               = 0x2\n\tEPOLLERR                                    = 0x8\n\tEPOLLET                                     = 0x80000000\n\tEPOLLEXCLUSIVE                              = 0x10000000\n\tEPOLLHUP                                    = 0x10\n\tEPOLLIN                                     = 0x1\n\tEPOLLMSG                                    = 0x400\n\tEPOLLONESHOT                                = 0x40000000\n\tEPOLLOUT                                    = 0x4\n\tEPOLLPRI                                    = 0x2\n\tEPOLLRDBAND                                 = 0x80\n\tEPOLLRDHUP                                  = 0x2000\n\tEPOLLRDNORM                                 = 0x40\n\tEPOLLWAKEUP                                 = 0x20000000\n\tEPOLLWRBAND                                 = 0x200\n\tEPOLLWRNORM                                 = 0x100\n\tEPOLL_CTL_ADD                               = 0x1\n\tEPOLL_CTL_DEL                               = 0x2\n\tEPOLL_CTL_MOD                               = 0x3\n\tEPOLL_IOC_TYPE                              = 0x8a\n\tEROFS_SUPER_MAGIC_V1                        = 0xe0f5e1e2\n\tESP_V4_FLOW                                 = 0xa\n\tESP_V6_FLOW                                 = 0xc\n\tETHER_FLOW                                  = 0x12\n\tETHTOOL_BUSINFO_LEN                         = 0x20\n\tETHTOOL_EROMVERS_LEN                        = 0x20\n\tETHTOOL_FEC_AUTO                            = 0x2\n\tETHTOOL_FEC_BASER                           = 0x10\n\tETHTOOL_FEC_LLRS                            = 0x20\n\tETHTOOL_FEC_NONE                            = 0x1\n\tETHTOOL_FEC_OFF                             = 0x4\n\tETHTOOL_FEC_RS                              = 0x8\n\tETHTOOL_FLAG_ALL                            = 0x7\n\tETHTOOL_FLASHDEV                            = 0x33\n\tETHTOOL_FLASH_MAX_FILENAME                  = 0x80\n\tETHTOOL_FWVERS_LEN                          = 0x20\n\tETHTOOL_F_COMPAT                            = 0x4\n\tETHTOOL_F_UNSUPPORTED                       = 0x1\n\tETHTOOL_F_WISH                              = 0x2\n\tETHTOOL_GCHANNELS                           = 0x3c\n\tETHTOOL_GCOALESCE                           = 0xe\n\tETHTOOL_GDRVINFO                            = 0x3\n\tETHTOOL_GEEE                                = 0x44\n\tETHTOOL_GEEPROM                             = 0xb\n\tETHTOOL_GENL_NAME                           = \"ethtool\"\n\tETHTOOL_GENL_VERSION                        = 0x1\n\tETHTOOL_GET_DUMP_DATA                       = 0x40\n\tETHTOOL_GET_DUMP_FLAG                       = 0x3f\n\tETHTOOL_GET_TS_INFO                         = 0x41\n\tETHTOOL_GFEATURES                           = 0x3a\n\tETHTOOL_GFECPARAM                           = 0x50\n\tETHTOOL_GFLAGS                              = 0x25\n\tETHTOOL_GGRO                                = 0x2b\n\tETHTOOL_GGSO                                = 0x23\n\tETHTOOL_GLINK                               = 0xa\n\tETHTOOL_GLINKSETTINGS                       = 0x4c\n\tETHTOOL_GMODULEEEPROM                       = 0x43\n\tETHTOOL_GMODULEINFO                         = 0x42\n\tETHTOOL_GMSGLVL                             = 0x7\n\tETHTOOL_GPAUSEPARAM                         = 0x12\n\tETHTOOL_GPERMADDR                           = 0x20\n\tETHTOOL_GPFLAGS                             = 0x27\n\tETHTOOL_GPHYSTATS                           = 0x4a\n\tETHTOOL_GREGS                               = 0x4\n\tETHTOOL_GRINGPARAM                          = 0x10\n\tETHTOOL_GRSSH                               = 0x46\n\tETHTOOL_GRXCLSRLALL                         = 0x30\n\tETHTOOL_GRXCLSRLCNT                         = 0x2e\n\tETHTOOL_GRXCLSRULE                          = 0x2f\n\tETHTOOL_GRXCSUM                             = 0x14\n\tETHTOOL_GRXFH                               = 0x29\n\tETHTOOL_GRXFHINDIR                          = 0x38\n\tETHTOOL_GRXNTUPLE                           = 0x36\n\tETHTOOL_GRXRINGS                            = 0x2d\n\tETHTOOL_GSET                                = 0x1\n\tETHTOOL_GSG                                 = 0x18\n\tETHTOOL_GSSET_INFO                          = 0x37\n\tETHTOOL_GSTATS                              = 0x1d\n\tETHTOOL_GSTRINGS                            = 0x1b\n\tETHTOOL_GTSO                                = 0x1e\n\tETHTOOL_GTUNABLE                            = 0x48\n\tETHTOOL_GTXCSUM                             = 0x16\n\tETHTOOL_GUFO                                = 0x21\n\tETHTOOL_GWOL                                = 0x5\n\tETHTOOL_MCGRP_MONITOR_NAME                  = \"monitor\"\n\tETHTOOL_NWAY_RST                            = 0x9\n\tETHTOOL_PERQUEUE                            = 0x4b\n\tETHTOOL_PHYS_ID                             = 0x1c\n\tETHTOOL_PHY_EDPD_DFLT_TX_MSECS              = 0xffff\n\tETHTOOL_PHY_EDPD_DISABLE                    = 0x0\n\tETHTOOL_PHY_EDPD_NO_TX                      = 0xfffe\n\tETHTOOL_PHY_FAST_LINK_DOWN_OFF              = 0xff\n\tETHTOOL_PHY_FAST_LINK_DOWN_ON               = 0x0\n\tETHTOOL_PHY_GTUNABLE                        = 0x4e\n\tETHTOOL_PHY_STUNABLE                        = 0x4f\n\tETHTOOL_RESET                               = 0x34\n\tETHTOOL_RXNTUPLE_ACTION_CLEAR               = -0x2\n\tETHTOOL_RXNTUPLE_ACTION_DROP                = -0x1\n\tETHTOOL_RX_FLOW_SPEC_RING                   = 0xffffffff\n\tETHTOOL_RX_FLOW_SPEC_RING_VF                = 0xff00000000\n\tETHTOOL_RX_FLOW_SPEC_RING_VF_OFF            = 0x20\n\tETHTOOL_SCHANNELS                           = 0x3d\n\tETHTOOL_SCOALESCE                           = 0xf\n\tETHTOOL_SEEE                                = 0x45\n\tETHTOOL_SEEPROM                             = 0xc\n\tETHTOOL_SET_DUMP                            = 0x3e\n\tETHTOOL_SFEATURES                           = 0x3b\n\tETHTOOL_SFECPARAM                           = 0x51\n\tETHTOOL_SFLAGS                              = 0x26\n\tETHTOOL_SGRO                                = 0x2c\n\tETHTOOL_SGSO                                = 0x24\n\tETHTOOL_SLINKSETTINGS                       = 0x4d\n\tETHTOOL_SMSGLVL                             = 0x8\n\tETHTOOL_SPAUSEPARAM                         = 0x13\n\tETHTOOL_SPFLAGS                             = 0x28\n\tETHTOOL_SRINGPARAM                          = 0x11\n\tETHTOOL_SRSSH                               = 0x47\n\tETHTOOL_SRXCLSRLDEL                         = 0x31\n\tETHTOOL_SRXCLSRLINS                         = 0x32\n\tETHTOOL_SRXCSUM                             = 0x15\n\tETHTOOL_SRXFH                               = 0x2a\n\tETHTOOL_SRXFHINDIR                          = 0x39\n\tETHTOOL_SRXNTUPLE                           = 0x35\n\tETHTOOL_SSET                                = 0x2\n\tETHTOOL_SSG                                 = 0x19\n\tETHTOOL_STSO                                = 0x1f\n\tETHTOOL_STUNABLE                            = 0x49\n\tETHTOOL_STXCSUM                             = 0x17\n\tETHTOOL_SUFO                                = 0x22\n\tETHTOOL_SWOL                                = 0x6\n\tETHTOOL_TEST                                = 0x1a\n\tETH_P_1588                                  = 0x88f7\n\tETH_P_8021AD                                = 0x88a8\n\tETH_P_8021AH                                = 0x88e7\n\tETH_P_8021Q                                 = 0x8100\n\tETH_P_80221                                 = 0x8917\n\tETH_P_802_2                                 = 0x4\n\tETH_P_802_3                                 = 0x1\n\tETH_P_802_3_MIN                             = 0x600\n\tETH_P_802_EX1                               = 0x88b5\n\tETH_P_AARP                                  = 0x80f3\n\tETH_P_AF_IUCV                               = 0xfbfb\n\tETH_P_ALL                                   = 0x3\n\tETH_P_AOE                                   = 0x88a2\n\tETH_P_ARCNET                                = 0x1a\n\tETH_P_ARP                                   = 0x806\n\tETH_P_ATALK                                 = 0x809b\n\tETH_P_ATMFATE                               = 0x8884\n\tETH_P_ATMMPOA                               = 0x884c\n\tETH_P_AX25                                  = 0x2\n\tETH_P_BATMAN                                = 0x4305\n\tETH_P_BPQ                                   = 0x8ff\n\tETH_P_CAIF                                  = 0xf7\n\tETH_P_CAN                                   = 0xc\n\tETH_P_CANFD                                 = 0xd\n\tETH_P_CANXL                                 = 0xe\n\tETH_P_CFM                                   = 0x8902\n\tETH_P_CONTROL                               = 0x16\n\tETH_P_CUST                                  = 0x6006\n\tETH_P_DDCMP                                 = 0x6\n\tETH_P_DEC                                   = 0x6000\n\tETH_P_DIAG                                  = 0x6005\n\tETH_P_DNA_DL                                = 0x6001\n\tETH_P_DNA_RC                                = 0x6002\n\tETH_P_DNA_RT                                = 0x6003\n\tETH_P_DSA                                   = 0x1b\n\tETH_P_DSA_8021Q                             = 0xdadb\n\tETH_P_DSA_A5PSW                             = 0xe001\n\tETH_P_ECONET                                = 0x18\n\tETH_P_EDSA                                  = 0xdada\n\tETH_P_ERSPAN                                = 0x88be\n\tETH_P_ERSPAN2                               = 0x22eb\n\tETH_P_ETHERCAT                              = 0x88a4\n\tETH_P_FCOE                                  = 0x8906\n\tETH_P_FIP                                   = 0x8914\n\tETH_P_HDLC                                  = 0x19\n\tETH_P_HSR                                   = 0x892f\n\tETH_P_IBOE                                  = 0x8915\n\tETH_P_IEEE802154                            = 0xf6\n\tETH_P_IEEEPUP                               = 0xa00\n\tETH_P_IEEEPUPAT                             = 0xa01\n\tETH_P_IFE                                   = 0xed3e\n\tETH_P_IP                                    = 0x800\n\tETH_P_IPV6                                  = 0x86dd\n\tETH_P_IPX                                   = 0x8137\n\tETH_P_IRDA                                  = 0x17\n\tETH_P_LAT                                   = 0x6004\n\tETH_P_LINK_CTL                              = 0x886c\n\tETH_P_LLDP                                  = 0x88cc\n\tETH_P_LOCALTALK                             = 0x9\n\tETH_P_LOOP                                  = 0x60\n\tETH_P_LOOPBACK                              = 0x9000\n\tETH_P_MACSEC                                = 0x88e5\n\tETH_P_MAP                                   = 0xf9\n\tETH_P_MCTP                                  = 0xfa\n\tETH_P_MOBITEX                               = 0x15\n\tETH_P_MPLS_MC                               = 0x8848\n\tETH_P_MPLS_UC                               = 0x8847\n\tETH_P_MRP                                   = 0x88e3\n\tETH_P_MVRP                                  = 0x88f5\n\tETH_P_NCSI                                  = 0x88f8\n\tETH_P_NSH                                   = 0x894f\n\tETH_P_PAE                                   = 0x888e\n\tETH_P_PAUSE                                 = 0x8808\n\tETH_P_PHONET                                = 0xf5\n\tETH_P_PPPTALK                               = 0x10\n\tETH_P_PPP_DISC                              = 0x8863\n\tETH_P_PPP_MP                                = 0x8\n\tETH_P_PPP_SES                               = 0x8864\n\tETH_P_PREAUTH                               = 0x88c7\n\tETH_P_PROFINET                              = 0x8892\n\tETH_P_PRP                                   = 0x88fb\n\tETH_P_PUP                                   = 0x200\n\tETH_P_PUPAT                                 = 0x201\n\tETH_P_QINQ1                                 = 0x9100\n\tETH_P_QINQ2                                 = 0x9200\n\tETH_P_QINQ3                                 = 0x9300\n\tETH_P_RARP                                  = 0x8035\n\tETH_P_REALTEK                               = 0x8899\n\tETH_P_SCA                                   = 0x6007\n\tETH_P_SLOW                                  = 0x8809\n\tETH_P_SNAP                                  = 0x5\n\tETH_P_TDLS                                  = 0x890d\n\tETH_P_TEB                                   = 0x6558\n\tETH_P_TIPC                                  = 0x88ca\n\tETH_P_TRAILER                               = 0x1c\n\tETH_P_TR_802_2                              = 0x11\n\tETH_P_TSN                                   = 0x22f0\n\tETH_P_WAN_PPP                               = 0x7\n\tETH_P_WCCP                                  = 0x883e\n\tETH_P_X25                                   = 0x805\n\tETH_P_XDSA                                  = 0xf8\n\tEV_ABS                                      = 0x3\n\tEV_CNT                                      = 0x20\n\tEV_FF                                       = 0x15\n\tEV_FF_STATUS                                = 0x17\n\tEV_KEY                                      = 0x1\n\tEV_LED                                      = 0x11\n\tEV_MAX                                      = 0x1f\n\tEV_MSC                                      = 0x4\n\tEV_PWR                                      = 0x16\n\tEV_REL                                      = 0x2\n\tEV_REP                                      = 0x14\n\tEV_SND                                      = 0x12\n\tEV_SW                                       = 0x5\n\tEV_SYN                                      = 0x0\n\tEV_VERSION                                  = 0x10001\n\tEXABYTE_ENABLE_NEST                         = 0xf0\n\tEXFAT_SUPER_MAGIC                           = 0x2011bab0\n\tEXT2_SUPER_MAGIC                            = 0xef53\n\tEXT3_SUPER_MAGIC                            = 0xef53\n\tEXT4_SUPER_MAGIC                            = 0xef53\n\tEXTA                                        = 0xe\n\tEXTB                                        = 0xf\n\tF2FS_SUPER_MAGIC                            = 0xf2f52010\n\tFALLOC_FL_COLLAPSE_RANGE                    = 0x8\n\tFALLOC_FL_INSERT_RANGE                      = 0x20\n\tFALLOC_FL_KEEP_SIZE                         = 0x1\n\tFALLOC_FL_NO_HIDE_STALE                     = 0x4\n\tFALLOC_FL_PUNCH_HOLE                        = 0x2\n\tFALLOC_FL_UNSHARE_RANGE                     = 0x40\n\tFALLOC_FL_ZERO_RANGE                        = 0x10\n\tFANOTIFY_METADATA_VERSION                   = 0x3\n\tFAN_ACCESS                                  = 0x1\n\tFAN_ACCESS_PERM                             = 0x20000\n\tFAN_ALLOW                                   = 0x1\n\tFAN_ALL_CLASS_BITS                          = 0xc\n\tFAN_ALL_EVENTS                              = 0x3b\n\tFAN_ALL_INIT_FLAGS                          = 0x3f\n\tFAN_ALL_MARK_FLAGS                          = 0xff\n\tFAN_ALL_OUTGOING_EVENTS                     = 0x3403b\n\tFAN_ALL_PERM_EVENTS                         = 0x30000\n\tFAN_ATTRIB                                  = 0x4\n\tFAN_AUDIT                                   = 0x10\n\tFAN_CLASS_CONTENT                           = 0x4\n\tFAN_CLASS_NOTIF                             = 0x0\n\tFAN_CLASS_PRE_CONTENT                       = 0x8\n\tFAN_CLOEXEC                                 = 0x1\n\tFAN_CLOSE                                   = 0x18\n\tFAN_CLOSE_NOWRITE                           = 0x10\n\tFAN_CLOSE_WRITE                             = 0x8\n\tFAN_CREATE                                  = 0x100\n\tFAN_DELETE                                  = 0x200\n\tFAN_DELETE_SELF                             = 0x400\n\tFAN_DENY                                    = 0x2\n\tFAN_ENABLE_AUDIT                            = 0x40\n\tFAN_EPIDFD                                  = -0x2\n\tFAN_EVENT_INFO_TYPE_DFID                    = 0x3\n\tFAN_EVENT_INFO_TYPE_DFID_NAME               = 0x2\n\tFAN_EVENT_INFO_TYPE_ERROR                   = 0x5\n\tFAN_EVENT_INFO_TYPE_FID                     = 0x1\n\tFAN_EVENT_INFO_TYPE_NEW_DFID_NAME           = 0xc\n\tFAN_EVENT_INFO_TYPE_OLD_DFID_NAME           = 0xa\n\tFAN_EVENT_INFO_TYPE_PIDFD                   = 0x4\n\tFAN_EVENT_METADATA_LEN                      = 0x18\n\tFAN_EVENT_ON_CHILD                          = 0x8000000\n\tFAN_FS_ERROR                                = 0x8000\n\tFAN_INFO                                    = 0x20\n\tFAN_MARK_ADD                                = 0x1\n\tFAN_MARK_DONT_FOLLOW                        = 0x4\n\tFAN_MARK_EVICTABLE                          = 0x200\n\tFAN_MARK_FILESYSTEM                         = 0x100\n\tFAN_MARK_FLUSH                              = 0x80\n\tFAN_MARK_IGNORE                             = 0x400\n\tFAN_MARK_IGNORED_MASK                       = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY                = 0x40\n\tFAN_MARK_IGNORE_SURV                        = 0x440\n\tFAN_MARK_INODE                              = 0x0\n\tFAN_MARK_MOUNT                              = 0x10\n\tFAN_MARK_ONLYDIR                            = 0x8\n\tFAN_MARK_REMOVE                             = 0x2\n\tFAN_MODIFY                                  = 0x2\n\tFAN_MOVE                                    = 0xc0\n\tFAN_MOVED_FROM                              = 0x40\n\tFAN_MOVED_TO                                = 0x80\n\tFAN_MOVE_SELF                               = 0x800\n\tFAN_NOFD                                    = -0x1\n\tFAN_NONBLOCK                                = 0x2\n\tFAN_NOPIDFD                                 = -0x1\n\tFAN_ONDIR                                   = 0x40000000\n\tFAN_OPEN                                    = 0x20\n\tFAN_OPEN_EXEC                               = 0x1000\n\tFAN_OPEN_EXEC_PERM                          = 0x40000\n\tFAN_OPEN_PERM                               = 0x10000\n\tFAN_Q_OVERFLOW                              = 0x4000\n\tFAN_RENAME                                  = 0x10000000\n\tFAN_REPORT_DFID_NAME                        = 0xc00\n\tFAN_REPORT_DFID_NAME_TARGET                 = 0x1e00\n\tFAN_REPORT_DIR_FID                          = 0x400\n\tFAN_REPORT_FID                              = 0x200\n\tFAN_REPORT_NAME                             = 0x800\n\tFAN_REPORT_PIDFD                            = 0x80\n\tFAN_REPORT_TARGET_FID                       = 0x1000\n\tFAN_REPORT_TID                              = 0x100\n\tFAN_RESPONSE_INFO_AUDIT_RULE                = 0x1\n\tFAN_RESPONSE_INFO_NONE                      = 0x0\n\tFAN_UNLIMITED_MARKS                         = 0x20\n\tFAN_UNLIMITED_QUEUE                         = 0x10\n\tFD_CLOEXEC                                  = 0x1\n\tFD_SETSIZE                                  = 0x400\n\tFF0                                         = 0x0\n\tFIB_RULE_DEV_DETACHED                       = 0x8\n\tFIB_RULE_FIND_SADDR                         = 0x10000\n\tFIB_RULE_IIF_DETACHED                       = 0x8\n\tFIB_RULE_INVERT                             = 0x2\n\tFIB_RULE_OIF_DETACHED                       = 0x10\n\tFIB_RULE_PERMANENT                          = 0x1\n\tFIB_RULE_UNRESOLVED                         = 0x4\n\tFIDEDUPERANGE                               = 0xc0189436\n\tFSCRYPT_KEY_DESCRIPTOR_SIZE                 = 0x8\n\tFSCRYPT_KEY_DESC_PREFIX                     = \"fscrypt:\"\n\tFSCRYPT_KEY_DESC_PREFIX_SIZE                = 0x8\n\tFSCRYPT_KEY_IDENTIFIER_SIZE                 = 0x10\n\tFSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY  = 0x1\n\tFSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2\n\tFSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR            = 0x1\n\tFSCRYPT_KEY_SPEC_TYPE_IDENTIFIER            = 0x2\n\tFSCRYPT_KEY_STATUS_ABSENT                   = 0x1\n\tFSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF       = 0x1\n\tFSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED     = 0x3\n\tFSCRYPT_KEY_STATUS_PRESENT                  = 0x2\n\tFSCRYPT_MAX_KEY_SIZE                        = 0x40\n\tFSCRYPT_MODE_ADIANTUM                       = 0x9\n\tFSCRYPT_MODE_AES_128_CBC                    = 0x5\n\tFSCRYPT_MODE_AES_128_CTS                    = 0x6\n\tFSCRYPT_MODE_AES_256_CTS                    = 0x4\n\tFSCRYPT_MODE_AES_256_HCTR2                  = 0xa\n\tFSCRYPT_MODE_AES_256_XTS                    = 0x1\n\tFSCRYPT_MODE_SM4_CTS                        = 0x8\n\tFSCRYPT_MODE_SM4_XTS                        = 0x7\n\tFSCRYPT_POLICY_FLAGS_PAD_16                 = 0x2\n\tFSCRYPT_POLICY_FLAGS_PAD_32                 = 0x3\n\tFSCRYPT_POLICY_FLAGS_PAD_4                  = 0x0\n\tFSCRYPT_POLICY_FLAGS_PAD_8                  = 0x1\n\tFSCRYPT_POLICY_FLAGS_PAD_MASK               = 0x3\n\tFSCRYPT_POLICY_FLAG_DIRECT_KEY              = 0x4\n\tFSCRYPT_POLICY_FLAG_IV_INO_LBLK_32          = 0x10\n\tFSCRYPT_POLICY_FLAG_IV_INO_LBLK_64          = 0x8\n\tFSCRYPT_POLICY_V1                           = 0x0\n\tFSCRYPT_POLICY_V2                           = 0x2\n\tFS_ENCRYPTION_MODE_ADIANTUM                 = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC              = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS              = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC              = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS              = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM              = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS              = 0x1\n\tFS_ENCRYPTION_MODE_INVALID                  = 0x0\n\tFS_IOC_ADD_ENCRYPTION_KEY                   = 0xc0506617\n\tFS_IOC_GET_ENCRYPTION_KEY_STATUS            = 0xc080661a\n\tFS_IOC_GET_ENCRYPTION_POLICY_EX             = 0xc0096616\n\tFS_IOC_MEASURE_VERITY                       = 0xc0046686\n\tFS_IOC_READ_VERITY_METADATA                 = 0xc0286687\n\tFS_IOC_REMOVE_ENCRYPTION_KEY                = 0xc0406618\n\tFS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS      = 0xc0406619\n\tFS_KEY_DESCRIPTOR_SIZE                      = 0x8\n\tFS_KEY_DESC_PREFIX                          = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE                     = 0x8\n\tFS_MAX_KEY_SIZE                             = 0x40\n\tFS_POLICY_FLAGS_PAD_16                      = 0x2\n\tFS_POLICY_FLAGS_PAD_32                      = 0x3\n\tFS_POLICY_FLAGS_PAD_4                       = 0x0\n\tFS_POLICY_FLAGS_PAD_8                       = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK                    = 0x3\n\tFS_POLICY_FLAGS_VALID                       = 0x7\n\tFS_VERITY_FL                                = 0x100000\n\tFS_VERITY_HASH_ALG_SHA256                   = 0x1\n\tFS_VERITY_HASH_ALG_SHA512                   = 0x2\n\tFS_VERITY_METADATA_TYPE_DESCRIPTOR          = 0x2\n\tFS_VERITY_METADATA_TYPE_MERKLE_TREE         = 0x1\n\tFS_VERITY_METADATA_TYPE_SIGNATURE           = 0x3\n\tFUSE_SUPER_MAGIC                            = 0x65735546\n\tFUTEXFS_SUPER_MAGIC                         = 0xbad1dea\n\tF_ADD_SEALS                                 = 0x409\n\tF_DUPFD                                     = 0x0\n\tF_DUPFD_CLOEXEC                             = 0x406\n\tF_EXLCK                                     = 0x4\n\tF_GETFD                                     = 0x1\n\tF_GETFL                                     = 0x3\n\tF_GETLEASE                                  = 0x401\n\tF_GETOWN_EX                                 = 0x10\n\tF_GETPIPE_SZ                                = 0x408\n\tF_GETSIG                                    = 0xb\n\tF_GET_FILE_RW_HINT                          = 0x40d\n\tF_GET_RW_HINT                               = 0x40b\n\tF_GET_SEALS                                 = 0x40a\n\tF_LOCK                                      = 0x1\n\tF_NOTIFY                                    = 0x402\n\tF_OFD_GETLK                                 = 0x24\n\tF_OFD_SETLK                                 = 0x25\n\tF_OFD_SETLKW                                = 0x26\n\tF_OK                                        = 0x0\n\tF_SEAL_EXEC                                 = 0x20\n\tF_SEAL_FUTURE_WRITE                         = 0x10\n\tF_SEAL_GROW                                 = 0x4\n\tF_SEAL_SEAL                                 = 0x1\n\tF_SEAL_SHRINK                               = 0x2\n\tF_SEAL_WRITE                                = 0x8\n\tF_SETFD                                     = 0x2\n\tF_SETFL                                     = 0x4\n\tF_SETLEASE                                  = 0x400\n\tF_SETOWN_EX                                 = 0xf\n\tF_SETPIPE_SZ                                = 0x407\n\tF_SETSIG                                    = 0xa\n\tF_SET_FILE_RW_HINT                          = 0x40e\n\tF_SET_RW_HINT                               = 0x40c\n\tF_SHLCK                                     = 0x8\n\tF_TEST                                      = 0x3\n\tF_TLOCK                                     = 0x2\n\tF_ULOCK                                     = 0x0\n\tGENL_ADMIN_PERM                             = 0x1\n\tGENL_CMD_CAP_DO                             = 0x2\n\tGENL_CMD_CAP_DUMP                           = 0x4\n\tGENL_CMD_CAP_HASPOL                         = 0x8\n\tGENL_HDRLEN                                 = 0x4\n\tGENL_ID_CTRL                                = 0x10\n\tGENL_ID_PMCRAID                             = 0x12\n\tGENL_ID_VFS_DQUOT                           = 0x11\n\tGENL_MAX_ID                                 = 0x3ff\n\tGENL_MIN_ID                                 = 0x10\n\tGENL_NAMSIZ                                 = 0x10\n\tGENL_START_ALLOC                            = 0x13\n\tGENL_UNS_ADMIN_PERM                         = 0x10\n\tGRND_INSECURE                               = 0x4\n\tGRND_NONBLOCK                               = 0x1\n\tGRND_RANDOM                                 = 0x2\n\tHDIO_DRIVE_CMD                              = 0x31f\n\tHDIO_DRIVE_CMD_AEB                          = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE                     = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE                     = 0x8\n\tHDIO_DRIVE_RESET                            = 0x31c\n\tHDIO_DRIVE_TASK                             = 0x31e\n\tHDIO_DRIVE_TASKFILE                         = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE                    = 0x8\n\tHDIO_GETGEO                                 = 0x301\n\tHDIO_GET_32BIT                              = 0x309\n\tHDIO_GET_ACOUSTIC                           = 0x30f\n\tHDIO_GET_ADDRESS                            = 0x310\n\tHDIO_GET_BUSSTATE                           = 0x31a\n\tHDIO_GET_DMA                                = 0x30b\n\tHDIO_GET_IDENTITY                           = 0x30d\n\tHDIO_GET_KEEPSETTINGS                       = 0x308\n\tHDIO_GET_MULTCOUNT                          = 0x304\n\tHDIO_GET_NICE                               = 0x30c\n\tHDIO_GET_NOWERR                             = 0x30a\n\tHDIO_GET_QDMA                               = 0x305\n\tHDIO_GET_UNMASKINTR                         = 0x302\n\tHDIO_GET_WCACHE                             = 0x30e\n\tHDIO_OBSOLETE_IDENTITY                      = 0x307\n\tHDIO_SCAN_HWIF                              = 0x328\n\tHDIO_SET_32BIT                              = 0x324\n\tHDIO_SET_ACOUSTIC                           = 0x32c\n\tHDIO_SET_ADDRESS                            = 0x32f\n\tHDIO_SET_BUSSTATE                           = 0x32d\n\tHDIO_SET_DMA                                = 0x326\n\tHDIO_SET_KEEPSETTINGS                       = 0x323\n\tHDIO_SET_MULTCOUNT                          = 0x321\n\tHDIO_SET_NICE                               = 0x329\n\tHDIO_SET_NOWERR                             = 0x325\n\tHDIO_SET_PIO_MODE                           = 0x327\n\tHDIO_SET_QDMA                               = 0x32e\n\tHDIO_SET_UNMASKINTR                         = 0x322\n\tHDIO_SET_WCACHE                             = 0x32b\n\tHDIO_SET_XFER                               = 0x306\n\tHDIO_TRISTATE_HWIF                          = 0x31b\n\tHDIO_UNREGISTER_HWIF                        = 0x32a\n\tHID_MAX_DESCRIPTOR_SIZE                     = 0x1000\n\tHOSTFS_SUPER_MAGIC                          = 0xc0ffee\n\tHPFS_SUPER_MAGIC                            = 0xf995e849\n\tHUGETLBFS_MAGIC                             = 0x958458f6\n\tIBSHIFT                                     = 0x10\n\tICRNL                                       = 0x100\n\tIFA_F_DADFAILED                             = 0x8\n\tIFA_F_DEPRECATED                            = 0x20\n\tIFA_F_HOMEADDRESS                           = 0x10\n\tIFA_F_MANAGETEMPADDR                        = 0x100\n\tIFA_F_MCAUTOJOIN                            = 0x400\n\tIFA_F_NODAD                                 = 0x2\n\tIFA_F_NOPREFIXROUTE                         = 0x200\n\tIFA_F_OPTIMISTIC                            = 0x4\n\tIFA_F_PERMANENT                             = 0x80\n\tIFA_F_SECONDARY                             = 0x1\n\tIFA_F_STABLE_PRIVACY                        = 0x800\n\tIFA_F_TEMPORARY                             = 0x1\n\tIFA_F_TENTATIVE                             = 0x40\n\tIFA_MAX                                     = 0xb\n\tIFF_ALLMULTI                                = 0x200\n\tIFF_ATTACH_QUEUE                            = 0x200\n\tIFF_AUTOMEDIA                               = 0x4000\n\tIFF_BROADCAST                               = 0x2\n\tIFF_DEBUG                                   = 0x4\n\tIFF_DETACH_QUEUE                            = 0x400\n\tIFF_DORMANT                                 = 0x20000\n\tIFF_DYNAMIC                                 = 0x8000\n\tIFF_ECHO                                    = 0x40000\n\tIFF_LOOPBACK                                = 0x8\n\tIFF_LOWER_UP                                = 0x10000\n\tIFF_MASTER                                  = 0x400\n\tIFF_MULTICAST                               = 0x1000\n\tIFF_MULTI_QUEUE                             = 0x100\n\tIFF_NAPI                                    = 0x10\n\tIFF_NAPI_FRAGS                              = 0x20\n\tIFF_NOARP                                   = 0x80\n\tIFF_NOFILTER                                = 0x1000\n\tIFF_NOTRAILERS                              = 0x20\n\tIFF_NO_CARRIER                              = 0x40\n\tIFF_NO_PI                                   = 0x1000\n\tIFF_ONE_QUEUE                               = 0x2000\n\tIFF_PERSIST                                 = 0x800\n\tIFF_POINTOPOINT                             = 0x10\n\tIFF_PORTSEL                                 = 0x2000\n\tIFF_PROMISC                                 = 0x100\n\tIFF_RUNNING                                 = 0x40\n\tIFF_SLAVE                                   = 0x800\n\tIFF_TAP                                     = 0x2\n\tIFF_TUN                                     = 0x1\n\tIFF_TUN_EXCL                                = 0x8000\n\tIFF_UP                                      = 0x1\n\tIFF_VNET_HDR                                = 0x4000\n\tIFF_VOLATILE                                = 0x70c5a\n\tIFNAMSIZ                                    = 0x10\n\tIGNBRK                                      = 0x1\n\tIGNCR                                       = 0x80\n\tIGNPAR                                      = 0x4\n\tIMAXBEL                                     = 0x2000\n\tINLCR                                       = 0x40\n\tINPCK                                       = 0x10\n\tIN_ACCESS                                   = 0x1\n\tIN_ALL_EVENTS                               = 0xfff\n\tIN_ATTRIB                                   = 0x4\n\tIN_CLASSA_HOST                              = 0xffffff\n\tIN_CLASSA_MAX                               = 0x80\n\tIN_CLASSA_NET                               = 0xff000000\n\tIN_CLASSA_NSHIFT                            = 0x18\n\tIN_CLASSB_HOST                              = 0xffff\n\tIN_CLASSB_MAX                               = 0x10000\n\tIN_CLASSB_NET                               = 0xffff0000\n\tIN_CLASSB_NSHIFT                            = 0x10\n\tIN_CLASSC_HOST                              = 0xff\n\tIN_CLASSC_NET                               = 0xffffff00\n\tIN_CLASSC_NSHIFT                            = 0x8\n\tIN_CLOSE                                    = 0x18\n\tIN_CLOSE_NOWRITE                            = 0x10\n\tIN_CLOSE_WRITE                              = 0x8\n\tIN_CREATE                                   = 0x100\n\tIN_DELETE                                   = 0x200\n\tIN_DELETE_SELF                              = 0x400\n\tIN_DONT_FOLLOW                              = 0x2000000\n\tIN_EXCL_UNLINK                              = 0x4000000\n\tIN_IGNORED                                  = 0x8000\n\tIN_ISDIR                                    = 0x40000000\n\tIN_LOOPBACKNET                              = 0x7f\n\tIN_MASK_ADD                                 = 0x20000000\n\tIN_MASK_CREATE                              = 0x10000000\n\tIN_MODIFY                                   = 0x2\n\tIN_MOVE                                     = 0xc0\n\tIN_MOVED_FROM                               = 0x40\n\tIN_MOVED_TO                                 = 0x80\n\tIN_MOVE_SELF                                = 0x800\n\tIN_ONESHOT                                  = 0x80000000\n\tIN_ONLYDIR                                  = 0x1000000\n\tIN_OPEN                                     = 0x20\n\tIN_Q_OVERFLOW                               = 0x4000\n\tIN_UNMOUNT                                  = 0x2000\n\tIPPROTO_AH                                  = 0x33\n\tIPPROTO_BEETPH                              = 0x5e\n\tIPPROTO_COMP                                = 0x6c\n\tIPPROTO_DCCP                                = 0x21\n\tIPPROTO_DSTOPTS                             = 0x3c\n\tIPPROTO_EGP                                 = 0x8\n\tIPPROTO_ENCAP                               = 0x62\n\tIPPROTO_ESP                                 = 0x32\n\tIPPROTO_ETHERNET                            = 0x8f\n\tIPPROTO_FRAGMENT                            = 0x2c\n\tIPPROTO_GRE                                 = 0x2f\n\tIPPROTO_HOPOPTS                             = 0x0\n\tIPPROTO_ICMP                                = 0x1\n\tIPPROTO_ICMPV6                              = 0x3a\n\tIPPROTO_IDP                                 = 0x16\n\tIPPROTO_IGMP                                = 0x2\n\tIPPROTO_IP                                  = 0x0\n\tIPPROTO_IPIP                                = 0x4\n\tIPPROTO_IPV6                                = 0x29\n\tIPPROTO_L2TP                                = 0x73\n\tIPPROTO_MH                                  = 0x87\n\tIPPROTO_MPLS                                = 0x89\n\tIPPROTO_MPTCP                               = 0x106\n\tIPPROTO_MTP                                 = 0x5c\n\tIPPROTO_NONE                                = 0x3b\n\tIPPROTO_PIM                                 = 0x67\n\tIPPROTO_PUP                                 = 0xc\n\tIPPROTO_RAW                                 = 0xff\n\tIPPROTO_ROUTING                             = 0x2b\n\tIPPROTO_RSVP                                = 0x2e\n\tIPPROTO_SCTP                                = 0x84\n\tIPPROTO_TCP                                 = 0x6\n\tIPPROTO_TP                                  = 0x1d\n\tIPPROTO_UDP                                 = 0x11\n\tIPPROTO_UDPLITE                             = 0x88\n\tIPV6_2292DSTOPTS                            = 0x4\n\tIPV6_2292HOPLIMIT                           = 0x8\n\tIPV6_2292HOPOPTS                            = 0x3\n\tIPV6_2292PKTINFO                            = 0x2\n\tIPV6_2292PKTOPTIONS                         = 0x6\n\tIPV6_2292RTHDR                              = 0x5\n\tIPV6_ADDRFORM                               = 0x1\n\tIPV6_ADDR_PREFERENCES                       = 0x48\n\tIPV6_ADD_MEMBERSHIP                         = 0x14\n\tIPV6_AUTHHDR                                = 0xa\n\tIPV6_AUTOFLOWLABEL                          = 0x46\n\tIPV6_CHECKSUM                               = 0x7\n\tIPV6_DONTFRAG                               = 0x3e\n\tIPV6_DROP_MEMBERSHIP                        = 0x15\n\tIPV6_DSTOPTS                                = 0x3b\n\tIPV6_FLOW                                   = 0x11\n\tIPV6_FREEBIND                               = 0x4e\n\tIPV6_HDRINCL                                = 0x24\n\tIPV6_HOPLIMIT                               = 0x34\n\tIPV6_HOPOPTS                                = 0x36\n\tIPV6_IPSEC_POLICY                           = 0x22\n\tIPV6_JOIN_ANYCAST                           = 0x1b\n\tIPV6_JOIN_GROUP                             = 0x14\n\tIPV6_LEAVE_ANYCAST                          = 0x1c\n\tIPV6_LEAVE_GROUP                            = 0x15\n\tIPV6_MINHOPCOUNT                            = 0x49\n\tIPV6_MTU                                    = 0x18\n\tIPV6_MTU_DISCOVER                           = 0x17\n\tIPV6_MULTICAST_ALL                          = 0x1d\n\tIPV6_MULTICAST_HOPS                         = 0x12\n\tIPV6_MULTICAST_IF                           = 0x11\n\tIPV6_MULTICAST_LOOP                         = 0x13\n\tIPV6_NEXTHOP                                = 0x9\n\tIPV6_ORIGDSTADDR                            = 0x4a\n\tIPV6_PATHMTU                                = 0x3d\n\tIPV6_PKTINFO                                = 0x32\n\tIPV6_PMTUDISC_DO                            = 0x2\n\tIPV6_PMTUDISC_DONT                          = 0x0\n\tIPV6_PMTUDISC_INTERFACE                     = 0x4\n\tIPV6_PMTUDISC_OMIT                          = 0x5\n\tIPV6_PMTUDISC_PROBE                         = 0x3\n\tIPV6_PMTUDISC_WANT                          = 0x1\n\tIPV6_RECVDSTOPTS                            = 0x3a\n\tIPV6_RECVERR                                = 0x19\n\tIPV6_RECVERR_RFC4884                        = 0x1f\n\tIPV6_RECVFRAGSIZE                           = 0x4d\n\tIPV6_RECVHOPLIMIT                           = 0x33\n\tIPV6_RECVHOPOPTS                            = 0x35\n\tIPV6_RECVORIGDSTADDR                        = 0x4a\n\tIPV6_RECVPATHMTU                            = 0x3c\n\tIPV6_RECVPKTINFO                            = 0x31\n\tIPV6_RECVRTHDR                              = 0x38\n\tIPV6_RECVTCLASS                             = 0x42\n\tIPV6_ROUTER_ALERT                           = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE                   = 0x1e\n\tIPV6_RTHDR                                  = 0x39\n\tIPV6_RTHDRDSTOPTS                           = 0x37\n\tIPV6_RTHDR_LOOSE                            = 0x0\n\tIPV6_RTHDR_STRICT                           = 0x1\n\tIPV6_RTHDR_TYPE_0                           = 0x0\n\tIPV6_RXDSTOPTS                              = 0x3b\n\tIPV6_RXHOPOPTS                              = 0x36\n\tIPV6_TCLASS                                 = 0x43\n\tIPV6_TRANSPARENT                            = 0x4b\n\tIPV6_UNICAST_HOPS                           = 0x10\n\tIPV6_UNICAST_IF                             = 0x4c\n\tIPV6_USER_FLOW                              = 0xe\n\tIPV6_V6ONLY                                 = 0x1a\n\tIPV6_XFRM_POLICY                            = 0x23\n\tIP_ADD_MEMBERSHIP                           = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP                    = 0x27\n\tIP_BIND_ADDRESS_NO_PORT                     = 0x18\n\tIP_BLOCK_SOURCE                             = 0x26\n\tIP_CHECKSUM                                 = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP                   = 0x1\n\tIP_DEFAULT_MULTICAST_TTL                    = 0x1\n\tIP_DF                                       = 0x4000\n\tIP_DROP_MEMBERSHIP                          = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP                   = 0x28\n\tIP_FREEBIND                                 = 0xf\n\tIP_HDRINCL                                  = 0x3\n\tIP_IPSEC_POLICY                             = 0x10\n\tIP_LOCAL_PORT_RANGE                         = 0x33\n\tIP_MAXPACKET                                = 0xffff\n\tIP_MAX_MEMBERSHIPS                          = 0x14\n\tIP_MF                                       = 0x2000\n\tIP_MINTTL                                   = 0x15\n\tIP_MSFILTER                                 = 0x29\n\tIP_MSS                                      = 0x240\n\tIP_MTU                                      = 0xe\n\tIP_MTU_DISCOVER                             = 0xa\n\tIP_MULTICAST_ALL                            = 0x31\n\tIP_MULTICAST_IF                             = 0x20\n\tIP_MULTICAST_LOOP                           = 0x22\n\tIP_MULTICAST_TTL                            = 0x21\n\tIP_NODEFRAG                                 = 0x16\n\tIP_OFFMASK                                  = 0x1fff\n\tIP_OPTIONS                                  = 0x4\n\tIP_ORIGDSTADDR                              = 0x14\n\tIP_PASSSEC                                  = 0x12\n\tIP_PKTINFO                                  = 0x8\n\tIP_PKTOPTIONS                               = 0x9\n\tIP_PMTUDISC                                 = 0xa\n\tIP_PMTUDISC_DO                              = 0x2\n\tIP_PMTUDISC_DONT                            = 0x0\n\tIP_PMTUDISC_INTERFACE                       = 0x4\n\tIP_PMTUDISC_OMIT                            = 0x5\n\tIP_PMTUDISC_PROBE                           = 0x3\n\tIP_PMTUDISC_WANT                            = 0x1\n\tIP_PROTOCOL                                 = 0x34\n\tIP_RECVERR                                  = 0xb\n\tIP_RECVERR_RFC4884                          = 0x1a\n\tIP_RECVFRAGSIZE                             = 0x19\n\tIP_RECVOPTS                                 = 0x6\n\tIP_RECVORIGDSTADDR                          = 0x14\n\tIP_RECVRETOPTS                              = 0x7\n\tIP_RECVTOS                                  = 0xd\n\tIP_RECVTTL                                  = 0xc\n\tIP_RETOPTS                                  = 0x7\n\tIP_RF                                       = 0x8000\n\tIP_ROUTER_ALERT                             = 0x5\n\tIP_TOS                                      = 0x1\n\tIP_TRANSPARENT                              = 0x13\n\tIP_TTL                                      = 0x2\n\tIP_UNBLOCK_SOURCE                           = 0x25\n\tIP_UNICAST_IF                               = 0x32\n\tIP_USER_FLOW                                = 0xd\n\tIP_XFRM_POLICY                              = 0x11\n\tISOFS_SUPER_MAGIC                           = 0x9660\n\tISTRIP                                      = 0x20\n\tITIMER_PROF                                 = 0x2\n\tITIMER_REAL                                 = 0x0\n\tITIMER_VIRTUAL                              = 0x1\n\tIUTF8                                       = 0x4000\n\tIXANY                                       = 0x800\n\tJFFS2_SUPER_MAGIC                           = 0x72b6\n\tKCMPROTO_CONNECTED                          = 0x0\n\tKCM_RECV_DISABLE                            = 0x1\n\tKEXEC_ARCH_386                              = 0x30000\n\tKEXEC_ARCH_68K                              = 0x40000\n\tKEXEC_ARCH_AARCH64                          = 0xb70000\n\tKEXEC_ARCH_ARM                              = 0x280000\n\tKEXEC_ARCH_DEFAULT                          = 0x0\n\tKEXEC_ARCH_IA_64                            = 0x320000\n\tKEXEC_ARCH_LOONGARCH                        = 0x1020000\n\tKEXEC_ARCH_MASK                             = 0xffff0000\n\tKEXEC_ARCH_MIPS                             = 0x80000\n\tKEXEC_ARCH_MIPS_LE                          = 0xa0000\n\tKEXEC_ARCH_PARISC                           = 0xf0000\n\tKEXEC_ARCH_PPC                              = 0x140000\n\tKEXEC_ARCH_PPC64                            = 0x150000\n\tKEXEC_ARCH_RISCV                            = 0xf30000\n\tKEXEC_ARCH_S390                             = 0x160000\n\tKEXEC_ARCH_SH                               = 0x2a0000\n\tKEXEC_ARCH_X86_64                           = 0x3e0000\n\tKEXEC_CRASH_HOTPLUG_SUPPORT                 = 0x8\n\tKEXEC_FILE_DEBUG                            = 0x8\n\tKEXEC_FILE_NO_INITRAMFS                     = 0x4\n\tKEXEC_FILE_ON_CRASH                         = 0x2\n\tKEXEC_FILE_UNLOAD                           = 0x1\n\tKEXEC_ON_CRASH                              = 0x1\n\tKEXEC_PRESERVE_CONTEXT                      = 0x2\n\tKEXEC_SEGMENT_MAX                           = 0x10\n\tKEXEC_UPDATE_ELFCOREHDR                     = 0x4\n\tKEYCTL_ASSUME_AUTHORITY                     = 0x10\n\tKEYCTL_CAPABILITIES                         = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                        = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES                   = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN                 = 0x4\n\tKEYCTL_CAPS0_INVALIDATE                     = 0x20\n\tKEYCTL_CAPS0_MOVE                           = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS            = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY                     = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING               = 0x40\n\tKEYCTL_CAPS1_NOTIFICATIONS                  = 0x4\n\tKEYCTL_CAPS1_NS_KEYRING_NAME                = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG                     = 0x2\n\tKEYCTL_CHOWN                                = 0x4\n\tKEYCTL_CLEAR                                = 0x7\n\tKEYCTL_DESCRIBE                             = 0x6\n\tKEYCTL_DH_COMPUTE                           = 0x17\n\tKEYCTL_GET_KEYRING_ID                       = 0x0\n\tKEYCTL_GET_PERSISTENT                       = 0x16\n\tKEYCTL_GET_SECURITY                         = 0x11\n\tKEYCTL_INSTANTIATE                          = 0xc\n\tKEYCTL_INSTANTIATE_IOV                      = 0x14\n\tKEYCTL_INVALIDATE                           = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING                 = 0x1\n\tKEYCTL_LINK                                 = 0x8\n\tKEYCTL_MOVE                                 = 0x1e\n\tKEYCTL_MOVE_EXCL                            = 0x1\n\tKEYCTL_NEGATE                               = 0xd\n\tKEYCTL_PKEY_DECRYPT                         = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                         = 0x19\n\tKEYCTL_PKEY_QUERY                           = 0x18\n\tKEYCTL_PKEY_SIGN                            = 0x1b\n\tKEYCTL_PKEY_VERIFY                          = 0x1c\n\tKEYCTL_READ                                 = 0xb\n\tKEYCTL_REJECT                               = 0x13\n\tKEYCTL_RESTRICT_KEYRING                     = 0x1d\n\tKEYCTL_REVOKE                               = 0x3\n\tKEYCTL_SEARCH                               = 0xa\n\tKEYCTL_SESSION_TO_PARENT                    = 0x12\n\tKEYCTL_SETPERM                              = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING                   = 0xe\n\tKEYCTL_SET_TIMEOUT                          = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT                     = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT                     = 0x1\n\tKEYCTL_SUPPORTS_SIGN                        = 0x4\n\tKEYCTL_SUPPORTS_VERIFY                      = 0x8\n\tKEYCTL_UNLINK                               = 0x9\n\tKEYCTL_UPDATE                               = 0x2\n\tKEYCTL_WATCH_KEY                            = 0x20\n\tKEY_REQKEY_DEFL_DEFAULT                     = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING               = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE                   = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING             = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING           = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING             = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING              = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING                = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING        = 0x5\n\tKEY_SPEC_GROUP_KEYRING                      = -0x6\n\tKEY_SPEC_PROCESS_KEYRING                    = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY                    = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING                  = -0x8\n\tKEY_SPEC_SESSION_KEYRING                    = -0x3\n\tKEY_SPEC_THREAD_KEYRING                     = -0x1\n\tKEY_SPEC_USER_KEYRING                       = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING               = -0x5\n\tLANDLOCK_ACCESS_FS_EXECUTE                  = 0x1\n\tLANDLOCK_ACCESS_FS_IOCTL_DEV                = 0x8000\n\tLANDLOCK_ACCESS_FS_MAKE_BLOCK               = 0x800\n\tLANDLOCK_ACCESS_FS_MAKE_CHAR                = 0x40\n\tLANDLOCK_ACCESS_FS_MAKE_DIR                 = 0x80\n\tLANDLOCK_ACCESS_FS_MAKE_FIFO                = 0x400\n\tLANDLOCK_ACCESS_FS_MAKE_REG                 = 0x100\n\tLANDLOCK_ACCESS_FS_MAKE_SOCK                = 0x200\n\tLANDLOCK_ACCESS_FS_MAKE_SYM                 = 0x1000\n\tLANDLOCK_ACCESS_FS_READ_DIR                 = 0x8\n\tLANDLOCK_ACCESS_FS_READ_FILE                = 0x4\n\tLANDLOCK_ACCESS_FS_REFER                    = 0x2000\n\tLANDLOCK_ACCESS_FS_REMOVE_DIR               = 0x10\n\tLANDLOCK_ACCESS_FS_REMOVE_FILE              = 0x20\n\tLANDLOCK_ACCESS_FS_TRUNCATE                 = 0x4000\n\tLANDLOCK_ACCESS_FS_WRITE_FILE               = 0x2\n\tLANDLOCK_ACCESS_NET_BIND_TCP                = 0x1\n\tLANDLOCK_ACCESS_NET_CONNECT_TCP             = 0x2\n\tLANDLOCK_CREATE_RULESET_VERSION             = 0x1\n\tLINUX_REBOOT_CMD_CAD_OFF                    = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON                     = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                       = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC                      = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF                  = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART                    = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2                   = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND                 = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                         = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                         = 0x28121969\n\tLOCK_EX                                     = 0x2\n\tLOCK_NB                                     = 0x4\n\tLOCK_SH                                     = 0x1\n\tLOCK_UN                                     = 0x8\n\tLOOP_CLR_FD                                 = 0x4c01\n\tLOOP_CONFIGURE                              = 0x4c0a\n\tLOOP_CTL_ADD                                = 0x4c80\n\tLOOP_CTL_GET_FREE                           = 0x4c82\n\tLOOP_CTL_REMOVE                             = 0x4c81\n\tLOOP_GET_STATUS                             = 0x4c03\n\tLOOP_GET_STATUS64                           = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                         = 0x4c09\n\tLOOP_SET_CAPACITY                           = 0x4c07\n\tLOOP_SET_DIRECT_IO                          = 0x4c08\n\tLOOP_SET_FD                                 = 0x4c00\n\tLOOP_SET_STATUS                             = 0x4c02\n\tLOOP_SET_STATUS64                           = 0x4c04\n\tLOOP_SET_STATUS_CLEARABLE_FLAGS             = 0x4\n\tLOOP_SET_STATUS_SETTABLE_FLAGS              = 0xc\n\tLO_KEY_SIZE                                 = 0x20\n\tLO_NAME_SIZE                                = 0x40\n\tLWTUNNEL_IP6_MAX                            = 0x8\n\tLWTUNNEL_IP_MAX                             = 0x8\n\tLWTUNNEL_IP_OPTS_MAX                        = 0x3\n\tLWTUNNEL_IP_OPT_ERSPAN_MAX                  = 0x4\n\tLWTUNNEL_IP_OPT_GENEVE_MAX                  = 0x3\n\tLWTUNNEL_IP_OPT_VXLAN_MAX                   = 0x1\n\tMADV_COLD                                   = 0x14\n\tMADV_COLLAPSE                               = 0x19\n\tMADV_DODUMP                                 = 0x11\n\tMADV_DOFORK                                 = 0xb\n\tMADV_DONTDUMP                               = 0x10\n\tMADV_DONTFORK                               = 0xa\n\tMADV_DONTNEED                               = 0x4\n\tMADV_DONTNEED_LOCKED                        = 0x18\n\tMADV_FREE                                   = 0x8\n\tMADV_HUGEPAGE                               = 0xe\n\tMADV_HWPOISON                               = 0x64\n\tMADV_KEEPONFORK                             = 0x13\n\tMADV_MERGEABLE                              = 0xc\n\tMADV_NOHUGEPAGE                             = 0xf\n\tMADV_NORMAL                                 = 0x0\n\tMADV_PAGEOUT                                = 0x15\n\tMADV_POPULATE_READ                          = 0x16\n\tMADV_POPULATE_WRITE                         = 0x17\n\tMADV_RANDOM                                 = 0x1\n\tMADV_REMOVE                                 = 0x9\n\tMADV_SEQUENTIAL                             = 0x2\n\tMADV_UNMERGEABLE                            = 0xd\n\tMADV_WILLNEED                               = 0x3\n\tMADV_WIPEONFORK                             = 0x12\n\tMAP_FILE                                    = 0x0\n\tMAP_FIXED                                   = 0x10\n\tMAP_FIXED_NOREPLACE                         = 0x100000\n\tMAP_HUGE_16GB                               = 0x88000000\n\tMAP_HUGE_16KB                               = 0x38000000\n\tMAP_HUGE_16MB                               = 0x60000000\n\tMAP_HUGE_1GB                                = 0x78000000\n\tMAP_HUGE_1MB                                = 0x50000000\n\tMAP_HUGE_256MB                              = 0x70000000\n\tMAP_HUGE_2GB                                = 0x7c000000\n\tMAP_HUGE_2MB                                = 0x54000000\n\tMAP_HUGE_32MB                               = 0x64000000\n\tMAP_HUGE_512KB                              = 0x4c000000\n\tMAP_HUGE_512MB                              = 0x74000000\n\tMAP_HUGE_64KB                               = 0x40000000\n\tMAP_HUGE_8MB                                = 0x5c000000\n\tMAP_HUGE_MASK                               = 0x3f\n\tMAP_HUGE_SHIFT                              = 0x1a\n\tMAP_PRIVATE                                 = 0x2\n\tMAP_SHARED                                  = 0x1\n\tMAP_SHARED_VALIDATE                         = 0x3\n\tMAP_TYPE                                    = 0xf\n\tMCAST_BLOCK_SOURCE                          = 0x2b\n\tMCAST_EXCLUDE                               = 0x0\n\tMCAST_INCLUDE                               = 0x1\n\tMCAST_JOIN_GROUP                            = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP                     = 0x2e\n\tMCAST_LEAVE_GROUP                           = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP                    = 0x2f\n\tMCAST_MSFILTER                              = 0x30\n\tMCAST_UNBLOCK_SOURCE                        = 0x2c\n\tMEMGETREGIONINFO                            = 0xc0104d08\n\tMEMREADOOB64                                = 0xc0184d16\n\tMEMWRITE                                    = 0xc0304d18\n\tMEMWRITEOOB64                               = 0xc0184d15\n\tMFD_ALLOW_SEALING                           = 0x2\n\tMFD_CLOEXEC                                 = 0x1\n\tMFD_EXEC                                    = 0x10\n\tMFD_HUGETLB                                 = 0x4\n\tMFD_HUGE_16GB                               = 0x88000000\n\tMFD_HUGE_16MB                               = 0x60000000\n\tMFD_HUGE_1GB                                = 0x78000000\n\tMFD_HUGE_1MB                                = 0x50000000\n\tMFD_HUGE_256MB                              = 0x70000000\n\tMFD_HUGE_2GB                                = 0x7c000000\n\tMFD_HUGE_2MB                                = 0x54000000\n\tMFD_HUGE_32MB                               = 0x64000000\n\tMFD_HUGE_512KB                              = 0x4c000000\n\tMFD_HUGE_512MB                              = 0x74000000\n\tMFD_HUGE_64KB                               = 0x40000000\n\tMFD_HUGE_8MB                                = 0x5c000000\n\tMFD_HUGE_MASK                               = 0x3f\n\tMFD_HUGE_SHIFT                              = 0x1a\n\tMFD_NOEXEC_SEAL                             = 0x8\n\tMINIX2_SUPER_MAGIC                          = 0x2468\n\tMINIX2_SUPER_MAGIC2                         = 0x2478\n\tMINIX3_SUPER_MAGIC                          = 0x4d5a\n\tMINIX_SUPER_MAGIC                           = 0x137f\n\tMINIX_SUPER_MAGIC2                          = 0x138f\n\tMNT_DETACH                                  = 0x2\n\tMNT_EXPIRE                                  = 0x4\n\tMNT_FORCE                                   = 0x1\n\tMNT_ID_REQ_SIZE_VER0                        = 0x18\n\tMODULE_INIT_COMPRESSED_FILE                 = 0x4\n\tMODULE_INIT_IGNORE_MODVERSIONS              = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC                 = 0x2\n\tMOUNT_ATTR_IDMAP                            = 0x100000\n\tMOUNT_ATTR_NOATIME                          = 0x10\n\tMOUNT_ATTR_NODEV                            = 0x4\n\tMOUNT_ATTR_NODIRATIME                       = 0x80\n\tMOUNT_ATTR_NOEXEC                           = 0x8\n\tMOUNT_ATTR_NOSUID                           = 0x2\n\tMOUNT_ATTR_NOSYMFOLLOW                      = 0x200000\n\tMOUNT_ATTR_RDONLY                           = 0x1\n\tMOUNT_ATTR_RELATIME                         = 0x0\n\tMOUNT_ATTR_SIZE_VER0                        = 0x20\n\tMOUNT_ATTR_STRICTATIME                      = 0x20\n\tMOUNT_ATTR__ATIME                           = 0x70\n\tMREMAP_DONTUNMAP                            = 0x4\n\tMREMAP_FIXED                                = 0x2\n\tMREMAP_MAYMOVE                              = 0x1\n\tMSDOS_SUPER_MAGIC                           = 0x4d44\n\tMSG_BATCH                                   = 0x40000\n\tMSG_CMSG_CLOEXEC                            = 0x40000000\n\tMSG_CONFIRM                                 = 0x800\n\tMSG_CTRUNC                                  = 0x8\n\tMSG_DONTROUTE                               = 0x4\n\tMSG_DONTWAIT                                = 0x40\n\tMSG_EOR                                     = 0x80\n\tMSG_ERRQUEUE                                = 0x2000\n\tMSG_FASTOPEN                                = 0x20000000\n\tMSG_FIN                                     = 0x200\n\tMSG_MORE                                    = 0x8000\n\tMSG_NOSIGNAL                                = 0x4000\n\tMSG_OOB                                     = 0x1\n\tMSG_PEEK                                    = 0x2\n\tMSG_PROXY                                   = 0x10\n\tMSG_RST                                     = 0x1000\n\tMSG_SYN                                     = 0x400\n\tMSG_TRUNC                                   = 0x20\n\tMSG_TRYHARD                                 = 0x4\n\tMSG_WAITALL                                 = 0x100\n\tMSG_WAITFORONE                              = 0x10000\n\tMSG_ZEROCOPY                                = 0x4000000\n\tMS_ACTIVE                                   = 0x40000000\n\tMS_ASYNC                                    = 0x1\n\tMS_BIND                                     = 0x1000\n\tMS_BORN                                     = 0x20000000\n\tMS_DIRSYNC                                  = 0x80\n\tMS_INVALIDATE                               = 0x2\n\tMS_I_VERSION                                = 0x800000\n\tMS_KERNMOUNT                                = 0x400000\n\tMS_LAZYTIME                                 = 0x2000000\n\tMS_MANDLOCK                                 = 0x40\n\tMS_MGC_MSK                                  = 0xffff0000\n\tMS_MGC_VAL                                  = 0xc0ed0000\n\tMS_MOVE                                     = 0x2000\n\tMS_NOATIME                                  = 0x400\n\tMS_NODEV                                    = 0x4\n\tMS_NODIRATIME                               = 0x800\n\tMS_NOEXEC                                   = 0x8\n\tMS_NOREMOTELOCK                             = 0x8000000\n\tMS_NOSEC                                    = 0x10000000\n\tMS_NOSUID                                   = 0x2\n\tMS_NOSYMFOLLOW                              = 0x100\n\tMS_NOUSER                                   = -0x80000000\n\tMS_POSIXACL                                 = 0x10000\n\tMS_PRIVATE                                  = 0x40000\n\tMS_RDONLY                                   = 0x1\n\tMS_REC                                      = 0x4000\n\tMS_RELATIME                                 = 0x200000\n\tMS_REMOUNT                                  = 0x20\n\tMS_RMT_MASK                                 = 0x2800051\n\tMS_SHARED                                   = 0x100000\n\tMS_SILENT                                   = 0x8000\n\tMS_SLAVE                                    = 0x80000\n\tMS_STRICTATIME                              = 0x1000000\n\tMS_SUBMOUNT                                 = 0x4000000\n\tMS_SYNC                                     = 0x4\n\tMS_SYNCHRONOUS                              = 0x10\n\tMS_UNBINDABLE                               = 0x20000\n\tMS_VERBOSE                                  = 0x8000\n\tMTD_ABSENT                                  = 0x0\n\tMTD_BIT_WRITEABLE                           = 0x800\n\tMTD_CAP_NANDFLASH                           = 0x400\n\tMTD_CAP_NORFLASH                            = 0xc00\n\tMTD_CAP_NVRAM                               = 0x1c00\n\tMTD_CAP_RAM                                 = 0x1c00\n\tMTD_CAP_ROM                                 = 0x0\n\tMTD_DATAFLASH                               = 0x6\n\tMTD_INODE_FS_MAGIC                          = 0x11307854\n\tMTD_MAX_ECCPOS_ENTRIES                      = 0x40\n\tMTD_MAX_OOBFREE_ENTRIES                     = 0x8\n\tMTD_MLCNANDFLASH                            = 0x8\n\tMTD_NANDECC_AUTOPLACE                       = 0x2\n\tMTD_NANDECC_AUTOPL_USR                      = 0x4\n\tMTD_NANDECC_OFF                             = 0x0\n\tMTD_NANDECC_PLACE                           = 0x1\n\tMTD_NANDECC_PLACEONLY                       = 0x3\n\tMTD_NANDFLASH                               = 0x4\n\tMTD_NORFLASH                                = 0x3\n\tMTD_NO_ERASE                                = 0x1000\n\tMTD_OTP_FACTORY                             = 0x1\n\tMTD_OTP_OFF                                 = 0x0\n\tMTD_OTP_USER                                = 0x2\n\tMTD_POWERUP_LOCK                            = 0x2000\n\tMTD_RAM                                     = 0x1\n\tMTD_ROM                                     = 0x2\n\tMTD_SLC_ON_MLC_EMULATION                    = 0x4000\n\tMTD_UBIVOLUME                               = 0x7\n\tMTD_WRITEABLE                               = 0x400\n\tNAME_MAX                                    = 0xff\n\tNCP_SUPER_MAGIC                             = 0x564c\n\tNETLINK_ADD_MEMBERSHIP                      = 0x1\n\tNETLINK_AUDIT                               = 0x9\n\tNETLINK_BROADCAST_ERROR                     = 0x4\n\tNETLINK_CAP_ACK                             = 0xa\n\tNETLINK_CONNECTOR                           = 0xb\n\tNETLINK_CRYPTO                              = 0x15\n\tNETLINK_DNRTMSG                             = 0xe\n\tNETLINK_DROP_MEMBERSHIP                     = 0x2\n\tNETLINK_ECRYPTFS                            = 0x13\n\tNETLINK_EXT_ACK                             = 0xb\n\tNETLINK_FIB_LOOKUP                          = 0xa\n\tNETLINK_FIREWALL                            = 0x3\n\tNETLINK_GENERIC                             = 0x10\n\tNETLINK_GET_STRICT_CHK                      = 0xc\n\tNETLINK_INET_DIAG                           = 0x4\n\tNETLINK_IP6_FW                              = 0xd\n\tNETLINK_ISCSI                               = 0x8\n\tNETLINK_KOBJECT_UEVENT                      = 0xf\n\tNETLINK_LISTEN_ALL_NSID                     = 0x8\n\tNETLINK_LIST_MEMBERSHIPS                    = 0x9\n\tNETLINK_NETFILTER                           = 0xc\n\tNETLINK_NFLOG                               = 0x5\n\tNETLINK_NO_ENOBUFS                          = 0x5\n\tNETLINK_PKTINFO                             = 0x3\n\tNETLINK_RDMA                                = 0x14\n\tNETLINK_ROUTE                               = 0x0\n\tNETLINK_RX_RING                             = 0x6\n\tNETLINK_SCSITRANSPORT                       = 0x12\n\tNETLINK_SELINUX                             = 0x7\n\tNETLINK_SMC                                 = 0x16\n\tNETLINK_SOCK_DIAG                           = 0x4\n\tNETLINK_TX_RING                             = 0x7\n\tNETLINK_UNUSED                              = 0x1\n\tNETLINK_USERSOCK                            = 0x2\n\tNETLINK_XFRM                                = 0x6\n\tNETNSA_MAX                                  = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED                    = -0x1\n\tNFC_ATR_REQ_GB_MAXSIZE                      = 0x30\n\tNFC_ATR_REQ_MAXSIZE                         = 0x40\n\tNFC_ATR_RES_GB_MAXSIZE                      = 0x2f\n\tNFC_ATR_RES_MAXSIZE                         = 0x40\n\tNFC_COMM_ACTIVE                             = 0x0\n\tNFC_COMM_PASSIVE                            = 0x1\n\tNFC_DEVICE_NAME_MAXSIZE                     = 0x8\n\tNFC_DIRECTION_RX                            = 0x0\n\tNFC_DIRECTION_TX                            = 0x1\n\tNFC_FIRMWARE_NAME_MAXSIZE                   = 0x20\n\tNFC_GB_MAXSIZE                              = 0x30\n\tNFC_GENL_MCAST_EVENT_NAME                   = \"events\"\n\tNFC_GENL_NAME                               = \"nfc\"\n\tNFC_GENL_VERSION                            = 0x1\n\tNFC_HEADER_SIZE                             = 0x1\n\tNFC_ISO15693_UID_MAXSIZE                    = 0x8\n\tNFC_LLCP_MAX_SERVICE_NAME                   = 0x3f\n\tNFC_LLCP_MIUX                               = 0x1\n\tNFC_LLCP_REMOTE_LTO                         = 0x3\n\tNFC_LLCP_REMOTE_MIU                         = 0x2\n\tNFC_LLCP_REMOTE_RW                          = 0x4\n\tNFC_LLCP_RW                                 = 0x0\n\tNFC_NFCID1_MAXSIZE                          = 0xa\n\tNFC_NFCID2_MAXSIZE                          = 0x8\n\tNFC_NFCID3_MAXSIZE                          = 0xa\n\tNFC_PROTO_FELICA                            = 0x3\n\tNFC_PROTO_FELICA_MASK                       = 0x8\n\tNFC_PROTO_ISO14443                          = 0x4\n\tNFC_PROTO_ISO14443_B                        = 0x6\n\tNFC_PROTO_ISO14443_B_MASK                   = 0x40\n\tNFC_PROTO_ISO14443_MASK                     = 0x10\n\tNFC_PROTO_ISO15693                          = 0x7\n\tNFC_PROTO_ISO15693_MASK                     = 0x80\n\tNFC_PROTO_JEWEL                             = 0x1\n\tNFC_PROTO_JEWEL_MASK                        = 0x2\n\tNFC_PROTO_MAX                               = 0x8\n\tNFC_PROTO_MIFARE                            = 0x2\n\tNFC_PROTO_MIFARE_MASK                       = 0x4\n\tNFC_PROTO_NFC_DEP                           = 0x5\n\tNFC_PROTO_NFC_DEP_MASK                      = 0x20\n\tNFC_RAW_HEADER_SIZE                         = 0x2\n\tNFC_RF_INITIATOR                            = 0x0\n\tNFC_RF_NONE                                 = 0x2\n\tNFC_RF_TARGET                               = 0x1\n\tNFC_SENSB_RES_MAXSIZE                       = 0xc\n\tNFC_SENSF_RES_MAXSIZE                       = 0x12\n\tNFC_SE_DISABLED                             = 0x0\n\tNFC_SE_EMBEDDED                             = 0x2\n\tNFC_SE_ENABLED                              = 0x1\n\tNFC_SE_UICC                                 = 0x1\n\tNFC_SOCKPROTO_LLCP                          = 0x1\n\tNFC_SOCKPROTO_MAX                           = 0x2\n\tNFC_SOCKPROTO_RAW                           = 0x0\n\tNFNETLINK_V0                                = 0x0\n\tNFNLGRP_ACCT_QUOTA                          = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY                   = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY               = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW                   = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE                = 0x5\n\tNFNLGRP_CONNTRACK_NEW                       = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE                    = 0x2\n\tNFNLGRP_MAX                                 = 0x9\n\tNFNLGRP_NFTABLES                            = 0x7\n\tNFNLGRP_NFTRACE                             = 0x9\n\tNFNLGRP_NONE                                = 0x0\n\tNFNL_BATCH_MAX                              = 0x1\n\tNFNL_MSG_BATCH_BEGIN                        = 0x10\n\tNFNL_MSG_BATCH_END                          = 0x11\n\tNFNL_NFA_NEST                               = 0x8000\n\tNFNL_SUBSYS_ACCT                            = 0x7\n\tNFNL_SUBSYS_COUNT                           = 0xd\n\tNFNL_SUBSYS_CTHELPER                        = 0x9\n\tNFNL_SUBSYS_CTNETLINK                       = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP                   = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT               = 0x8\n\tNFNL_SUBSYS_HOOK                            = 0xc\n\tNFNL_SUBSYS_IPSET                           = 0x6\n\tNFNL_SUBSYS_NFTABLES                        = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT                      = 0xb\n\tNFNL_SUBSYS_NONE                            = 0x0\n\tNFNL_SUBSYS_OSF                             = 0x5\n\tNFNL_SUBSYS_QUEUE                           = 0x3\n\tNFNL_SUBSYS_ULOG                            = 0x4\n\tNFS_SUPER_MAGIC                             = 0x6969\n\tNFT_CHAIN_FLAGS                             = 0x7\n\tNFT_CHAIN_MAXNAMELEN                        = 0x100\n\tNFT_CT_MAX                                  = 0x17\n\tNFT_DATA_RESERVED_MASK                      = 0xffffff00\n\tNFT_DATA_VALUE_MAXLEN                       = 0x40\n\tNFT_EXTHDR_OP_MAX                           = 0x4\n\tNFT_FIB_RESULT_MAX                          = 0x3\n\tNFT_INNER_MASK                              = 0xf\n\tNFT_LOGLEVEL_MAX                            = 0x8\n\tNFT_NAME_MAXLEN                             = 0x100\n\tNFT_NG_MAX                                  = 0x1\n\tNFT_OBJECT_CONNLIMIT                        = 0x5\n\tNFT_OBJECT_COUNTER                          = 0x1\n\tNFT_OBJECT_CT_EXPECT                        = 0x9\n\tNFT_OBJECT_CT_HELPER                        = 0x3\n\tNFT_OBJECT_CT_TIMEOUT                       = 0x7\n\tNFT_OBJECT_LIMIT                            = 0x4\n\tNFT_OBJECT_MAX                              = 0xa\n\tNFT_OBJECT_QUOTA                            = 0x2\n\tNFT_OBJECT_SECMARK                          = 0x8\n\tNFT_OBJECT_SYNPROXY                         = 0xa\n\tNFT_OBJECT_TUNNEL                           = 0x6\n\tNFT_OBJECT_UNSPEC                           = 0x0\n\tNFT_OBJ_MAXNAMELEN                          = 0x100\n\tNFT_OSF_MAXGENRELEN                         = 0x10\n\tNFT_QUEUE_FLAG_BYPASS                       = 0x1\n\tNFT_QUEUE_FLAG_CPU_FANOUT                   = 0x2\n\tNFT_QUEUE_FLAG_MASK                         = 0x3\n\tNFT_REG32_COUNT                             = 0x10\n\tNFT_REG32_SIZE                              = 0x4\n\tNFT_REG_MAX                                 = 0x4\n\tNFT_REG_SIZE                                = 0x10\n\tNFT_REJECT_ICMPX_MAX                        = 0x3\n\tNFT_RT_MAX                                  = 0x4\n\tNFT_SECMARK_CTX_MAXLEN                      = 0x100\n\tNFT_SET_MAXNAMELEN                          = 0x100\n\tNFT_SOCKET_MAX                              = 0x3\n\tNFT_TABLE_F_MASK                            = 0x7\n\tNFT_TABLE_MAXNAMELEN                        = 0x100\n\tNFT_TRACETYPE_MAX                           = 0x3\n\tNFT_TUNNEL_F_MASK                           = 0x7\n\tNFT_TUNNEL_MAX                              = 0x1\n\tNFT_TUNNEL_MODE_MAX                         = 0x2\n\tNFT_USERDATA_MAXLEN                         = 0x100\n\tNFT_XFRM_KEY_MAX                            = 0x6\n\tNF_NAT_RANGE_MAP_IPS                        = 0x1\n\tNF_NAT_RANGE_MASK                           = 0x7f\n\tNF_NAT_RANGE_NETMAP                         = 0x40\n\tNF_NAT_RANGE_PERSISTENT                     = 0x8\n\tNF_NAT_RANGE_PROTO_OFFSET                   = 0x20\n\tNF_NAT_RANGE_PROTO_RANDOM                   = 0x4\n\tNF_NAT_RANGE_PROTO_RANDOM_ALL               = 0x14\n\tNF_NAT_RANGE_PROTO_RANDOM_FULLY             = 0x10\n\tNF_NAT_RANGE_PROTO_SPECIFIED                = 0x2\n\tNILFS_SUPER_MAGIC                           = 0x3434\n\tNL0                                         = 0x0\n\tNL1                                         = 0x100\n\tNLA_ALIGNTO                                 = 0x4\n\tNLA_F_NESTED                                = 0x8000\n\tNLA_F_NET_BYTEORDER                         = 0x4000\n\tNLA_HDRLEN                                  = 0x4\n\tNLMSG_ALIGNTO                               = 0x4\n\tNLMSG_DONE                                  = 0x3\n\tNLMSG_ERROR                                 = 0x2\n\tNLMSG_HDRLEN                                = 0x10\n\tNLMSG_MIN_TYPE                              = 0x10\n\tNLMSG_NOOP                                  = 0x1\n\tNLMSG_OVERRUN                               = 0x4\n\tNLM_F_ACK                                   = 0x4\n\tNLM_F_ACK_TLVS                              = 0x200\n\tNLM_F_APPEND                                = 0x800\n\tNLM_F_ATOMIC                                = 0x400\n\tNLM_F_BULK                                  = 0x200\n\tNLM_F_CAPPED                                = 0x100\n\tNLM_F_CREATE                                = 0x400\n\tNLM_F_DUMP                                  = 0x300\n\tNLM_F_DUMP_FILTERED                         = 0x20\n\tNLM_F_DUMP_INTR                             = 0x10\n\tNLM_F_ECHO                                  = 0x8\n\tNLM_F_EXCL                                  = 0x200\n\tNLM_F_MATCH                                 = 0x200\n\tNLM_F_MULTI                                 = 0x2\n\tNLM_F_NONREC                                = 0x100\n\tNLM_F_REPLACE                               = 0x100\n\tNLM_F_REQUEST                               = 0x1\n\tNLM_F_ROOT                                  = 0x100\n\tNSFS_MAGIC                                  = 0x6e736673\n\tOCFS2_SUPER_MAGIC                           = 0x7461636f\n\tOCRNL                                       = 0x8\n\tOFDEL                                       = 0x80\n\tOFILL                                       = 0x40\n\tONLRET                                      = 0x20\n\tONOCR                                       = 0x10\n\tOPENPROM_SUPER_MAGIC                        = 0x9fa1\n\tOPOST                                       = 0x1\n\tOVERLAYFS_SUPER_MAGIC                       = 0x794c7630\n\tO_ACCMODE                                   = 0x3\n\tO_RDONLY                                    = 0x0\n\tO_RDWR                                      = 0x2\n\tO_WRONLY                                    = 0x1\n\tPACKET_ADD_MEMBERSHIP                       = 0x1\n\tPACKET_AUXDATA                              = 0x8\n\tPACKET_BROADCAST                            = 0x1\n\tPACKET_COPY_THRESH                          = 0x7\n\tPACKET_DROP_MEMBERSHIP                      = 0x2\n\tPACKET_FANOUT                               = 0x12\n\tPACKET_FANOUT_CBPF                          = 0x6\n\tPACKET_FANOUT_CPU                           = 0x2\n\tPACKET_FANOUT_DATA                          = 0x16\n\tPACKET_FANOUT_EBPF                          = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG                   = 0x8000\n\tPACKET_FANOUT_FLAG_IGNORE_OUTGOING          = 0x4000\n\tPACKET_FANOUT_FLAG_ROLLOVER                 = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID                 = 0x2000\n\tPACKET_FANOUT_HASH                          = 0x0\n\tPACKET_FANOUT_LB                            = 0x1\n\tPACKET_FANOUT_QM                            = 0x5\n\tPACKET_FANOUT_RND                           = 0x4\n\tPACKET_FANOUT_ROLLOVER                      = 0x3\n\tPACKET_FASTROUTE                            = 0x6\n\tPACKET_HDRLEN                               = 0xb\n\tPACKET_HOST                                 = 0x0\n\tPACKET_IGNORE_OUTGOING                      = 0x17\n\tPACKET_KERNEL                               = 0x7\n\tPACKET_LOOPBACK                             = 0x5\n\tPACKET_LOSS                                 = 0xe\n\tPACKET_MR_ALLMULTI                          = 0x2\n\tPACKET_MR_MULTICAST                         = 0x0\n\tPACKET_MR_PROMISC                           = 0x1\n\tPACKET_MR_UNICAST                           = 0x3\n\tPACKET_MULTICAST                            = 0x2\n\tPACKET_ORIGDEV                              = 0x9\n\tPACKET_OTHERHOST                            = 0x3\n\tPACKET_OUTGOING                             = 0x4\n\tPACKET_QDISC_BYPASS                         = 0x14\n\tPACKET_RECV_OUTPUT                          = 0x3\n\tPACKET_RESERVE                              = 0xc\n\tPACKET_ROLLOVER_STATS                       = 0x15\n\tPACKET_RX_RING                              = 0x5\n\tPACKET_STATISTICS                           = 0x6\n\tPACKET_TIMESTAMP                            = 0x11\n\tPACKET_TX_HAS_OFF                           = 0x13\n\tPACKET_TX_RING                              = 0xd\n\tPACKET_TX_TIMESTAMP                         = 0x10\n\tPACKET_USER                                 = 0x6\n\tPACKET_VERSION                              = 0xa\n\tPACKET_VNET_HDR                             = 0xf\n\tPACKET_VNET_HDR_SZ                          = 0x18\n\tPARITY_CRC16_PR0                            = 0x2\n\tPARITY_CRC16_PR0_CCITT                      = 0x4\n\tPARITY_CRC16_PR1                            = 0x3\n\tPARITY_CRC16_PR1_CCITT                      = 0x5\n\tPARITY_CRC32_PR0_CCITT                      = 0x6\n\tPARITY_CRC32_PR1_CCITT                      = 0x7\n\tPARITY_DEFAULT                              = 0x0\n\tPARITY_NONE                                 = 0x1\n\tPARMRK                                      = 0x8\n\tPERF_ATTR_SIZE_VER0                         = 0x40\n\tPERF_ATTR_SIZE_VER1                         = 0x48\n\tPERF_ATTR_SIZE_VER2                         = 0x50\n\tPERF_ATTR_SIZE_VER3                         = 0x60\n\tPERF_ATTR_SIZE_VER4                         = 0x68\n\tPERF_ATTR_SIZE_VER5                         = 0x70\n\tPERF_ATTR_SIZE_VER6                         = 0x78\n\tPERF_ATTR_SIZE_VER7                         = 0x80\n\tPERF_ATTR_SIZE_VER8                         = 0x88\n\tPERF_AUX_FLAG_COLLISION                     = 0x8\n\tPERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT    = 0x0\n\tPERF_AUX_FLAG_CORESIGHT_FORMAT_RAW          = 0x100\n\tPERF_AUX_FLAG_OVERWRITE                     = 0x2\n\tPERF_AUX_FLAG_PARTIAL                       = 0x4\n\tPERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK          = 0xff00\n\tPERF_AUX_FLAG_TRUNCATED                     = 0x1\n\tPERF_BRANCH_ENTRY_INFO_BITS_MAX             = 0x21\n\tPERF_BR_ARM64_DEBUG_DATA                    = 0x7\n\tPERF_BR_ARM64_DEBUG_EXIT                    = 0x5\n\tPERF_BR_ARM64_DEBUG_HALT                    = 0x4\n\tPERF_BR_ARM64_DEBUG_INST                    = 0x6\n\tPERF_BR_ARM64_FIQ                           = 0x3\n\tPERF_FLAG_FD_CLOEXEC                        = 0x8\n\tPERF_FLAG_FD_NO_GROUP                       = 0x1\n\tPERF_FLAG_FD_OUTPUT                         = 0x2\n\tPERF_FLAG_PID_CGROUP                        = 0x4\n\tPERF_HW_EVENT_MASK                          = 0xffffffff\n\tPERF_MAX_CONTEXTS_PER_STACK                 = 0x8\n\tPERF_MAX_STACK_DEPTH                        = 0x7f\n\tPERF_MEM_BLK_ADDR                           = 0x4\n\tPERF_MEM_BLK_DATA                           = 0x2\n\tPERF_MEM_BLK_NA                             = 0x1\n\tPERF_MEM_BLK_SHIFT                          = 0x28\n\tPERF_MEM_HOPS_0                             = 0x1\n\tPERF_MEM_HOPS_1                             = 0x2\n\tPERF_MEM_HOPS_2                             = 0x3\n\tPERF_MEM_HOPS_3                             = 0x4\n\tPERF_MEM_HOPS_SHIFT                         = 0x2b\n\tPERF_MEM_LOCK_LOCKED                        = 0x2\n\tPERF_MEM_LOCK_NA                            = 0x1\n\tPERF_MEM_LOCK_SHIFT                         = 0x18\n\tPERF_MEM_LVLNUM_ANY_CACHE                   = 0xb\n\tPERF_MEM_LVLNUM_CXL                         = 0x9\n\tPERF_MEM_LVLNUM_IO                          = 0xa\n\tPERF_MEM_LVLNUM_L1                          = 0x1\n\tPERF_MEM_LVLNUM_L2                          = 0x2\n\tPERF_MEM_LVLNUM_L3                          = 0x3\n\tPERF_MEM_LVLNUM_L4                          = 0x4\n\tPERF_MEM_LVLNUM_LFB                         = 0xc\n\tPERF_MEM_LVLNUM_NA                          = 0xf\n\tPERF_MEM_LVLNUM_PMEM                        = 0xe\n\tPERF_MEM_LVLNUM_RAM                         = 0xd\n\tPERF_MEM_LVLNUM_SHIFT                       = 0x21\n\tPERF_MEM_LVLNUM_UNC                         = 0x8\n\tPERF_MEM_LVL_HIT                            = 0x2\n\tPERF_MEM_LVL_IO                             = 0x1000\n\tPERF_MEM_LVL_L1                             = 0x8\n\tPERF_MEM_LVL_L2                             = 0x20\n\tPERF_MEM_LVL_L3                             = 0x40\n\tPERF_MEM_LVL_LFB                            = 0x10\n\tPERF_MEM_LVL_LOC_RAM                        = 0x80\n\tPERF_MEM_LVL_MISS                           = 0x4\n\tPERF_MEM_LVL_NA                             = 0x1\n\tPERF_MEM_LVL_REM_CCE1                       = 0x400\n\tPERF_MEM_LVL_REM_CCE2                       = 0x800\n\tPERF_MEM_LVL_REM_RAM1                       = 0x100\n\tPERF_MEM_LVL_REM_RAM2                       = 0x200\n\tPERF_MEM_LVL_SHIFT                          = 0x5\n\tPERF_MEM_LVL_UNC                            = 0x2000\n\tPERF_MEM_OP_EXEC                            = 0x10\n\tPERF_MEM_OP_LOAD                            = 0x2\n\tPERF_MEM_OP_NA                              = 0x1\n\tPERF_MEM_OP_PFETCH                          = 0x8\n\tPERF_MEM_OP_SHIFT                           = 0x0\n\tPERF_MEM_OP_STORE                           = 0x4\n\tPERF_MEM_REMOTE_REMOTE                      = 0x1\n\tPERF_MEM_REMOTE_SHIFT                       = 0x25\n\tPERF_MEM_SNOOPX_FWD                         = 0x1\n\tPERF_MEM_SNOOPX_PEER                        = 0x2\n\tPERF_MEM_SNOOPX_SHIFT                       = 0x26\n\tPERF_MEM_SNOOP_HIT                          = 0x4\n\tPERF_MEM_SNOOP_HITM                         = 0x10\n\tPERF_MEM_SNOOP_MISS                         = 0x8\n\tPERF_MEM_SNOOP_NA                           = 0x1\n\tPERF_MEM_SNOOP_NONE                         = 0x2\n\tPERF_MEM_SNOOP_SHIFT                        = 0x13\n\tPERF_MEM_TLB_HIT                            = 0x2\n\tPERF_MEM_TLB_L1                             = 0x8\n\tPERF_MEM_TLB_L2                             = 0x10\n\tPERF_MEM_TLB_MISS                           = 0x4\n\tPERF_MEM_TLB_NA                             = 0x1\n\tPERF_MEM_TLB_OS                             = 0x40\n\tPERF_MEM_TLB_SHIFT                          = 0x1a\n\tPERF_MEM_TLB_WK                             = 0x20\n\tPERF_PMU_TYPE_SHIFT                         = 0x20\n\tPERF_RECORD_KSYMBOL_FLAGS_UNREGISTER        = 0x1\n\tPERF_RECORD_MISC_COMM_EXEC                  = 0x2000\n\tPERF_RECORD_MISC_CPUMODE_MASK               = 0x7\n\tPERF_RECORD_MISC_CPUMODE_UNKNOWN            = 0x0\n\tPERF_RECORD_MISC_EXACT_IP                   = 0x4000\n\tPERF_RECORD_MISC_EXT_RESERVED               = 0x8000\n\tPERF_RECORD_MISC_FORK_EXEC                  = 0x2000\n\tPERF_RECORD_MISC_GUEST_KERNEL               = 0x4\n\tPERF_RECORD_MISC_GUEST_USER                 = 0x5\n\tPERF_RECORD_MISC_HYPERVISOR                 = 0x3\n\tPERF_RECORD_MISC_KERNEL                     = 0x1\n\tPERF_RECORD_MISC_MMAP_BUILD_ID              = 0x4000\n\tPERF_RECORD_MISC_MMAP_DATA                  = 0x2000\n\tPERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT     = 0x1000\n\tPERF_RECORD_MISC_SWITCH_OUT                 = 0x2000\n\tPERF_RECORD_MISC_SWITCH_OUT_PREEMPT         = 0x4000\n\tPERF_RECORD_MISC_USER                       = 0x2\n\tPERF_SAMPLE_BRANCH_PLM_ALL                  = 0x7\n\tPERF_SAMPLE_WEIGHT_TYPE                     = 0x1004000\n\tPID_FS_MAGIC                                = 0x50494446\n\tPIPEFS_MAGIC                                = 0x50495045\n\tPPPIOCGNPMODE                               = 0xc008744c\n\tPPPIOCNEWUNIT                               = 0xc004743e\n\tPRIO_PGRP                                   = 0x1\n\tPRIO_PROCESS                                = 0x0\n\tPRIO_USER                                   = 0x2\n\tPROC_SUPER_MAGIC                            = 0x9fa0\n\tPROT_EXEC                                   = 0x4\n\tPROT_GROWSDOWN                              = 0x1000000\n\tPROT_GROWSUP                                = 0x2000000\n\tPROT_NONE                                   = 0x0\n\tPROT_READ                                   = 0x1\n\tPROT_WRITE                                  = 0x2\n\tPR_CAPBSET_DROP                             = 0x18\n\tPR_CAPBSET_READ                             = 0x17\n\tPR_CAP_AMBIENT                              = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL                    = 0x4\n\tPR_CAP_AMBIENT_IS_SET                       = 0x1\n\tPR_CAP_AMBIENT_LOWER                        = 0x3\n\tPR_CAP_AMBIENT_RAISE                        = 0x2\n\tPR_ENDIAN_BIG                               = 0x0\n\tPR_ENDIAN_LITTLE                            = 0x1\n\tPR_ENDIAN_PPC_LITTLE                        = 0x2\n\tPR_FPEMU_NOPRINT                            = 0x1\n\tPR_FPEMU_SIGFPE                             = 0x2\n\tPR_FP_EXC_ASYNC                             = 0x2\n\tPR_FP_EXC_DISABLED                          = 0x0\n\tPR_FP_EXC_DIV                               = 0x10000\n\tPR_FP_EXC_INV                               = 0x100000\n\tPR_FP_EXC_NONRECOV                          = 0x1\n\tPR_FP_EXC_OVF                               = 0x20000\n\tPR_FP_EXC_PRECISE                           = 0x3\n\tPR_FP_EXC_RES                               = 0x80000\n\tPR_FP_EXC_SW_ENABLE                         = 0x80\n\tPR_FP_EXC_UND                               = 0x40000\n\tPR_FP_MODE_FR                               = 0x1\n\tPR_FP_MODE_FRE                              = 0x2\n\tPR_GET_AUXV                                 = 0x41555856\n\tPR_GET_CHILD_SUBREAPER                      = 0x25\n\tPR_GET_DUMPABLE                             = 0x3\n\tPR_GET_ENDIAN                               = 0x13\n\tPR_GET_FPEMU                                = 0x9\n\tPR_GET_FPEXC                                = 0xb\n\tPR_GET_FP_MODE                              = 0x2e\n\tPR_GET_IO_FLUSHER                           = 0x3a\n\tPR_GET_KEEPCAPS                             = 0x7\n\tPR_GET_MDWE                                 = 0x42\n\tPR_GET_MEMORY_MERGE                         = 0x44\n\tPR_GET_NAME                                 = 0x10\n\tPR_GET_NO_NEW_PRIVS                         = 0x27\n\tPR_GET_PDEATHSIG                            = 0x2\n\tPR_GET_SECCOMP                              = 0x15\n\tPR_GET_SECUREBITS                           = 0x1b\n\tPR_GET_SPECULATION_CTRL                     = 0x34\n\tPR_GET_TAGGED_ADDR_CTRL                     = 0x38\n\tPR_GET_THP_DISABLE                          = 0x2a\n\tPR_GET_TID_ADDRESS                          = 0x28\n\tPR_GET_TIMERSLACK                           = 0x1e\n\tPR_GET_TIMING                               = 0xd\n\tPR_GET_TSC                                  = 0x19\n\tPR_GET_UNALIGN                              = 0x5\n\tPR_MCE_KILL                                 = 0x21\n\tPR_MCE_KILL_CLEAR                           = 0x0\n\tPR_MCE_KILL_DEFAULT                         = 0x2\n\tPR_MCE_KILL_EARLY                           = 0x1\n\tPR_MCE_KILL_GET                             = 0x22\n\tPR_MCE_KILL_LATE                            = 0x0\n\tPR_MCE_KILL_SET                             = 0x1\n\tPR_MDWE_NO_INHERIT                          = 0x2\n\tPR_MDWE_REFUSE_EXEC_GAIN                    = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT                   = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT                    = 0x2b\n\tPR_MTE_TAG_MASK                             = 0x7fff8\n\tPR_MTE_TAG_SHIFT                            = 0x3\n\tPR_MTE_TCF_ASYNC                            = 0x4\n\tPR_MTE_TCF_MASK                             = 0x6\n\tPR_MTE_TCF_NONE                             = 0x0\n\tPR_MTE_TCF_SHIFT                            = 0x1\n\tPR_MTE_TCF_SYNC                             = 0x2\n\tPR_PAC_APDAKEY                              = 0x4\n\tPR_PAC_APDBKEY                              = 0x8\n\tPR_PAC_APGAKEY                              = 0x10\n\tPR_PAC_APIAKEY                              = 0x1\n\tPR_PAC_APIBKEY                              = 0x2\n\tPR_PAC_GET_ENABLED_KEYS                     = 0x3d\n\tPR_PAC_RESET_KEYS                           = 0x36\n\tPR_PAC_SET_ENABLED_KEYS                     = 0x3c\n\tPR_PPC_DEXCR_CTRL_CLEAR                     = 0x4\n\tPR_PPC_DEXCR_CTRL_CLEAR_ONEXEC              = 0x10\n\tPR_PPC_DEXCR_CTRL_EDITABLE                  = 0x1\n\tPR_PPC_DEXCR_CTRL_MASK                      = 0x1f\n\tPR_PPC_DEXCR_CTRL_SET                       = 0x2\n\tPR_PPC_DEXCR_CTRL_SET_ONEXEC                = 0x8\n\tPR_PPC_DEXCR_IBRTPD                         = 0x1\n\tPR_PPC_DEXCR_NPHIE                          = 0x3\n\tPR_PPC_DEXCR_SBHE                           = 0x0\n\tPR_PPC_DEXCR_SRAPD                          = 0x2\n\tPR_PPC_GET_DEXCR                            = 0x48\n\tPR_PPC_SET_DEXCR                            = 0x49\n\tPR_RISCV_CTX_SW_FENCEI_OFF                  = 0x1\n\tPR_RISCV_CTX_SW_FENCEI_ON                   = 0x0\n\tPR_RISCV_SCOPE_PER_PROCESS                  = 0x0\n\tPR_RISCV_SCOPE_PER_THREAD                   = 0x1\n\tPR_RISCV_SET_ICACHE_FLUSH_CTX               = 0x47\n\tPR_RISCV_V_GET_CONTROL                      = 0x46\n\tPR_RISCV_V_SET_CONTROL                      = 0x45\n\tPR_RISCV_V_VSTATE_CTRL_CUR_MASK             = 0x3\n\tPR_RISCV_V_VSTATE_CTRL_DEFAULT              = 0x0\n\tPR_RISCV_V_VSTATE_CTRL_INHERIT              = 0x10\n\tPR_RISCV_V_VSTATE_CTRL_MASK                 = 0x1f\n\tPR_RISCV_V_VSTATE_CTRL_NEXT_MASK            = 0xc\n\tPR_RISCV_V_VSTATE_CTRL_OFF                  = 0x1\n\tPR_RISCV_V_VSTATE_CTRL_ON                   = 0x2\n\tPR_SCHED_CORE                               = 0x3e\n\tPR_SCHED_CORE_CREATE                        = 0x1\n\tPR_SCHED_CORE_GET                           = 0x0\n\tPR_SCHED_CORE_MAX                           = 0x4\n\tPR_SCHED_CORE_SCOPE_PROCESS_GROUP           = 0x2\n\tPR_SCHED_CORE_SCOPE_THREAD                  = 0x0\n\tPR_SCHED_CORE_SCOPE_THREAD_GROUP            = 0x1\n\tPR_SCHED_CORE_SHARE_FROM                    = 0x3\n\tPR_SCHED_CORE_SHARE_TO                      = 0x2\n\tPR_SET_CHILD_SUBREAPER                      = 0x24\n\tPR_SET_DUMPABLE                             = 0x4\n\tPR_SET_ENDIAN                               = 0x14\n\tPR_SET_FPEMU                                = 0xa\n\tPR_SET_FPEXC                                = 0xc\n\tPR_SET_FP_MODE                              = 0x2d\n\tPR_SET_IO_FLUSHER                           = 0x39\n\tPR_SET_KEEPCAPS                             = 0x8\n\tPR_SET_MDWE                                 = 0x41\n\tPR_SET_MEMORY_MERGE                         = 0x43\n\tPR_SET_MM                                   = 0x23\n\tPR_SET_MM_ARG_END                           = 0x9\n\tPR_SET_MM_ARG_START                         = 0x8\n\tPR_SET_MM_AUXV                              = 0xc\n\tPR_SET_MM_BRK                               = 0x7\n\tPR_SET_MM_END_CODE                          = 0x2\n\tPR_SET_MM_END_DATA                          = 0x4\n\tPR_SET_MM_ENV_END                           = 0xb\n\tPR_SET_MM_ENV_START                         = 0xa\n\tPR_SET_MM_EXE_FILE                          = 0xd\n\tPR_SET_MM_MAP                               = 0xe\n\tPR_SET_MM_MAP_SIZE                          = 0xf\n\tPR_SET_MM_START_BRK                         = 0x6\n\tPR_SET_MM_START_CODE                        = 0x1\n\tPR_SET_MM_START_DATA                        = 0x3\n\tPR_SET_MM_START_STACK                       = 0x5\n\tPR_SET_NAME                                 = 0xf\n\tPR_SET_NO_NEW_PRIVS                         = 0x26\n\tPR_SET_PDEATHSIG                            = 0x1\n\tPR_SET_PTRACER                              = 0x59616d61\n\tPR_SET_SECCOMP                              = 0x16\n\tPR_SET_SECUREBITS                           = 0x1c\n\tPR_SET_SPECULATION_CTRL                     = 0x35\n\tPR_SET_SYSCALL_USER_DISPATCH                = 0x3b\n\tPR_SET_TAGGED_ADDR_CTRL                     = 0x37\n\tPR_SET_THP_DISABLE                          = 0x29\n\tPR_SET_TIMERSLACK                           = 0x1d\n\tPR_SET_TIMING                               = 0xe\n\tPR_SET_TSC                                  = 0x1a\n\tPR_SET_UNALIGN                              = 0x6\n\tPR_SET_VMA                                  = 0x53564d41\n\tPR_SET_VMA_ANON_NAME                        = 0x0\n\tPR_SME_GET_VL                               = 0x40\n\tPR_SME_SET_VL                               = 0x3f\n\tPR_SME_SET_VL_ONEXEC                        = 0x40000\n\tPR_SME_VL_INHERIT                           = 0x20000\n\tPR_SME_VL_LEN_MASK                          = 0xffff\n\tPR_SPEC_DISABLE                             = 0x4\n\tPR_SPEC_DISABLE_NOEXEC                      = 0x10\n\tPR_SPEC_ENABLE                              = 0x2\n\tPR_SPEC_FORCE_DISABLE                       = 0x8\n\tPR_SPEC_INDIRECT_BRANCH                     = 0x1\n\tPR_SPEC_L1D_FLUSH                           = 0x2\n\tPR_SPEC_NOT_AFFECTED                        = 0x0\n\tPR_SPEC_PRCTL                               = 0x1\n\tPR_SPEC_STORE_BYPASS                        = 0x0\n\tPR_SVE_GET_VL                               = 0x33\n\tPR_SVE_SET_VL                               = 0x32\n\tPR_SVE_SET_VL_ONEXEC                        = 0x40000\n\tPR_SVE_VL_INHERIT                           = 0x20000\n\tPR_SVE_VL_LEN_MASK                          = 0xffff\n\tPR_SYS_DISPATCH_OFF                         = 0x0\n\tPR_SYS_DISPATCH_ON                          = 0x1\n\tPR_TAGGED_ADDR_ENABLE                       = 0x1\n\tPR_TASK_PERF_EVENTS_DISABLE                 = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE                  = 0x20\n\tPR_TIMING_STATISTICAL                       = 0x0\n\tPR_TIMING_TIMESTAMP                         = 0x1\n\tPR_TSC_ENABLE                               = 0x1\n\tPR_TSC_SIGSEGV                              = 0x2\n\tPR_UNALIGN_NOPRINT                          = 0x1\n\tPR_UNALIGN_SIGBUS                           = 0x2\n\tPSTOREFS_MAGIC                              = 0x6165676c\n\tPTRACE_ATTACH                               = 0x10\n\tPTRACE_CONT                                 = 0x7\n\tPTRACE_DETACH                               = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY               = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT                = 0x2\n\tPTRACE_EVENT_CLONE                          = 0x3\n\tPTRACE_EVENT_EXEC                           = 0x4\n\tPTRACE_EVENT_EXIT                           = 0x6\n\tPTRACE_EVENT_FORK                           = 0x1\n\tPTRACE_EVENT_SECCOMP                        = 0x7\n\tPTRACE_EVENT_STOP                           = 0x80\n\tPTRACE_EVENT_VFORK                          = 0x2\n\tPTRACE_EVENT_VFORK_DONE                     = 0x5\n\tPTRACE_GETEVENTMSG                          = 0x4201\n\tPTRACE_GETREGS                              = 0xc\n\tPTRACE_GETREGSET                            = 0x4204\n\tPTRACE_GETSIGINFO                           = 0x4202\n\tPTRACE_GETSIGMASK                           = 0x420a\n\tPTRACE_GET_RSEQ_CONFIGURATION               = 0x420f\n\tPTRACE_GET_SYSCALL_INFO                     = 0x420e\n\tPTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG     = 0x4211\n\tPTRACE_INTERRUPT                            = 0x4207\n\tPTRACE_KILL                                 = 0x8\n\tPTRACE_LISTEN                               = 0x4208\n\tPTRACE_O_EXITKILL                           = 0x100000\n\tPTRACE_O_MASK                               = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP                    = 0x200000\n\tPTRACE_O_TRACECLONE                         = 0x8\n\tPTRACE_O_TRACEEXEC                          = 0x10\n\tPTRACE_O_TRACEEXIT                          = 0x40\n\tPTRACE_O_TRACEFORK                          = 0x2\n\tPTRACE_O_TRACESECCOMP                       = 0x80\n\tPTRACE_O_TRACESYSGOOD                       = 0x1\n\tPTRACE_O_TRACEVFORK                         = 0x4\n\tPTRACE_O_TRACEVFORKDONE                     = 0x20\n\tPTRACE_PEEKDATA                             = 0x2\n\tPTRACE_PEEKSIGINFO                          = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED                   = 0x1\n\tPTRACE_PEEKTEXT                             = 0x1\n\tPTRACE_PEEKUSR                              = 0x3\n\tPTRACE_POKEDATA                             = 0x5\n\tPTRACE_POKETEXT                             = 0x4\n\tPTRACE_POKEUSR                              = 0x6\n\tPTRACE_SECCOMP_GET_FILTER                   = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA                 = 0x420d\n\tPTRACE_SEIZE                                = 0x4206\n\tPTRACE_SETOPTIONS                           = 0x4200\n\tPTRACE_SETREGS                              = 0xd\n\tPTRACE_SETREGSET                            = 0x4205\n\tPTRACE_SETSIGINFO                           = 0x4203\n\tPTRACE_SETSIGMASK                           = 0x420b\n\tPTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG     = 0x4210\n\tPTRACE_SINGLESTEP                           = 0x9\n\tPTRACE_SYSCALL                              = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY                   = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT                    = 0x2\n\tPTRACE_SYSCALL_INFO_NONE                    = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP                 = 0x3\n\tPTRACE_TRACEME                              = 0x0\n\tP_ALL                                       = 0x0\n\tP_PGID                                      = 0x2\n\tP_PID                                       = 0x1\n\tP_PIDFD                                     = 0x3\n\tQNX4_SUPER_MAGIC                            = 0x2f\n\tQNX6_SUPER_MAGIC                            = 0x68191122\n\tRAMFS_MAGIC                                 = 0x858458f6\n\tRAW_PAYLOAD_DIGITAL                         = 0x3\n\tRAW_PAYLOAD_HCI                             = 0x2\n\tRAW_PAYLOAD_LLCP                            = 0x0\n\tRAW_PAYLOAD_NCI                             = 0x1\n\tRAW_PAYLOAD_PROPRIETARY                     = 0x4\n\tRDTGROUP_SUPER_MAGIC                        = 0x7655821\n\tREISERFS_SUPER_MAGIC                        = 0x52654973\n\tRENAME_EXCHANGE                             = 0x2\n\tRENAME_NOREPLACE                            = 0x1\n\tRENAME_WHITEOUT                             = 0x4\n\tRLIMIT_CORE                                 = 0x4\n\tRLIMIT_CPU                                  = 0x0\n\tRLIMIT_DATA                                 = 0x2\n\tRLIMIT_FSIZE                                = 0x1\n\tRLIMIT_LOCKS                                = 0xa\n\tRLIMIT_MSGQUEUE                             = 0xc\n\tRLIMIT_NICE                                 = 0xd\n\tRLIMIT_RTPRIO                               = 0xe\n\tRLIMIT_RTTIME                               = 0xf\n\tRLIMIT_SIGPENDING                           = 0xb\n\tRLIMIT_STACK                                = 0x3\n\tRLIM_INFINITY                               = 0xffffffffffffffff\n\tRTAX_ADVMSS                                 = 0x8\n\tRTAX_CC_ALGO                                = 0x10\n\tRTAX_CWND                                   = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE                     = 0x11\n\tRTAX_FEATURES                               = 0xc\n\tRTAX_FEATURE_ALLFRAG                        = 0x8\n\tRTAX_FEATURE_ECN                            = 0x1\n\tRTAX_FEATURE_MASK                           = 0x1f\n\tRTAX_FEATURE_SACK                           = 0x2\n\tRTAX_FEATURE_TCP_USEC_TS                    = 0x10\n\tRTAX_FEATURE_TIMESTAMP                      = 0x4\n\tRTAX_HOPLIMIT                               = 0xa\n\tRTAX_INITCWND                               = 0xb\n\tRTAX_INITRWND                               = 0xe\n\tRTAX_LOCK                                   = 0x1\n\tRTAX_MAX                                    = 0x11\n\tRTAX_MTU                                    = 0x2\n\tRTAX_QUICKACK                               = 0xf\n\tRTAX_REORDERING                             = 0x9\n\tRTAX_RTO_MIN                                = 0xd\n\tRTAX_RTT                                    = 0x4\n\tRTAX_RTTVAR                                 = 0x5\n\tRTAX_SSTHRESH                               = 0x6\n\tRTAX_UNSPEC                                 = 0x0\n\tRTAX_WINDOW                                 = 0x3\n\tRTA_ALIGNTO                                 = 0x4\n\tRTA_MAX                                     = 0x1e\n\tRTCF_DIRECTSRC                              = 0x4000000\n\tRTCF_DOREDIRECT                             = 0x1000000\n\tRTCF_LOG                                    = 0x2000000\n\tRTCF_MASQ                                   = 0x400000\n\tRTCF_NAT                                    = 0x800000\n\tRTCF_VALVE                                  = 0x200000\n\tRTC_AF                                      = 0x20\n\tRTC_BSM_DIRECT                              = 0x1\n\tRTC_BSM_DISABLED                            = 0x0\n\tRTC_BSM_LEVEL                               = 0x2\n\tRTC_BSM_STANDBY                             = 0x3\n\tRTC_FEATURE_ALARM                           = 0x0\n\tRTC_FEATURE_ALARM_RES_2S                    = 0x3\n\tRTC_FEATURE_ALARM_RES_MINUTE                = 0x1\n\tRTC_FEATURE_ALARM_WAKEUP_ONLY               = 0x7\n\tRTC_FEATURE_BACKUP_SWITCH_MODE              = 0x6\n\tRTC_FEATURE_CNT                             = 0x8\n\tRTC_FEATURE_CORRECTION                      = 0x5\n\tRTC_FEATURE_NEED_WEEK_DAY                   = 0x2\n\tRTC_FEATURE_UPDATE_INTERRUPT                = 0x4\n\tRTC_IRQF                                    = 0x80\n\tRTC_MAX_FREQ                                = 0x2000\n\tRTC_PARAM_BACKUP_SWITCH_MODE                = 0x2\n\tRTC_PARAM_CORRECTION                        = 0x1\n\tRTC_PARAM_FEATURES                          = 0x0\n\tRTC_PF                                      = 0x40\n\tRTC_UF                                      = 0x10\n\tRTF_ADDRCLASSMASK                           = 0xf8000000\n\tRTF_ADDRCONF                                = 0x40000\n\tRTF_ALLONLINK                               = 0x20000\n\tRTF_BROADCAST                               = 0x10000000\n\tRTF_CACHE                                   = 0x1000000\n\tRTF_DEFAULT                                 = 0x10000\n\tRTF_DYNAMIC                                 = 0x10\n\tRTF_FLOW                                    = 0x2000000\n\tRTF_GATEWAY                                 = 0x2\n\tRTF_HOST                                    = 0x4\n\tRTF_INTERFACE                               = 0x40000000\n\tRTF_IRTT                                    = 0x100\n\tRTF_LINKRT                                  = 0x100000\n\tRTF_LOCAL                                   = 0x80000000\n\tRTF_MODIFIED                                = 0x20\n\tRTF_MSS                                     = 0x40\n\tRTF_MTU                                     = 0x40\n\tRTF_MULTICAST                               = 0x20000000\n\tRTF_NAT                                     = 0x8000000\n\tRTF_NOFORWARD                               = 0x1000\n\tRTF_NONEXTHOP                               = 0x200000\n\tRTF_NOPMTUDISC                              = 0x4000\n\tRTF_POLICY                                  = 0x4000000\n\tRTF_REINSTATE                               = 0x8\n\tRTF_REJECT                                  = 0x200\n\tRTF_STATIC                                  = 0x400\n\tRTF_THROW                                   = 0x2000\n\tRTF_UP                                      = 0x1\n\tRTF_WINDOW                                  = 0x80\n\tRTF_XRESOLVE                                = 0x800\n\tRTMGRP_DECnet_IFADDR                        = 0x1000\n\tRTMGRP_DECnet_ROUTE                         = 0x4000\n\tRTMGRP_IPV4_IFADDR                          = 0x10\n\tRTMGRP_IPV4_MROUTE                          = 0x20\n\tRTMGRP_IPV4_ROUTE                           = 0x40\n\tRTMGRP_IPV4_RULE                            = 0x80\n\tRTMGRP_IPV6_IFADDR                          = 0x100\n\tRTMGRP_IPV6_IFINFO                          = 0x800\n\tRTMGRP_IPV6_MROUTE                          = 0x200\n\tRTMGRP_IPV6_PREFIX                          = 0x20000\n\tRTMGRP_IPV6_ROUTE                           = 0x400\n\tRTMGRP_LINK                                 = 0x1\n\tRTMGRP_NEIGH                                = 0x4\n\tRTMGRP_NOTIFY                               = 0x2\n\tRTMGRP_TC                                   = 0x8\n\tRTM_BASE                                    = 0x10\n\tRTM_DELACTION                               = 0x31\n\tRTM_DELADDR                                 = 0x15\n\tRTM_DELADDRLABEL                            = 0x49\n\tRTM_DELCHAIN                                = 0x65\n\tRTM_DELLINK                                 = 0x11\n\tRTM_DELLINKPROP                             = 0x6d\n\tRTM_DELMDB                                  = 0x55\n\tRTM_DELNEIGH                                = 0x1d\n\tRTM_DELNETCONF                              = 0x51\n\tRTM_DELNEXTHOP                              = 0x69\n\tRTM_DELNEXTHOPBUCKET                        = 0x75\n\tRTM_DELNSID                                 = 0x59\n\tRTM_DELQDISC                                = 0x25\n\tRTM_DELROUTE                                = 0x19\n\tRTM_DELRULE                                 = 0x21\n\tRTM_DELTCLASS                               = 0x29\n\tRTM_DELTFILTER                              = 0x2d\n\tRTM_DELTUNNEL                               = 0x79\n\tRTM_DELVLAN                                 = 0x71\n\tRTM_F_CLONED                                = 0x200\n\tRTM_F_EQUALIZE                              = 0x400\n\tRTM_F_FIB_MATCH                             = 0x2000\n\tRTM_F_LOOKUP_TABLE                          = 0x1000\n\tRTM_F_NOTIFY                                = 0x100\n\tRTM_F_OFFLOAD                               = 0x4000\n\tRTM_F_OFFLOAD_FAILED                        = 0x20000000\n\tRTM_F_PREFIX                                = 0x800\n\tRTM_F_TRAP                                  = 0x8000\n\tRTM_GETACTION                               = 0x32\n\tRTM_GETADDR                                 = 0x16\n\tRTM_GETADDRLABEL                            = 0x4a\n\tRTM_GETANYCAST                              = 0x3e\n\tRTM_GETCHAIN                                = 0x66\n\tRTM_GETDCB                                  = 0x4e\n\tRTM_GETLINK                                 = 0x12\n\tRTM_GETLINKPROP                             = 0x6e\n\tRTM_GETMDB                                  = 0x56\n\tRTM_GETMULTICAST                            = 0x3a\n\tRTM_GETNEIGH                                = 0x1e\n\tRTM_GETNEIGHTBL                             = 0x42\n\tRTM_GETNETCONF                              = 0x52\n\tRTM_GETNEXTHOP                              = 0x6a\n\tRTM_GETNEXTHOPBUCKET                        = 0x76\n\tRTM_GETNSID                                 = 0x5a\n\tRTM_GETQDISC                                = 0x26\n\tRTM_GETROUTE                                = 0x1a\n\tRTM_GETRULE                                 = 0x22\n\tRTM_GETSTATS                                = 0x5e\n\tRTM_GETTCLASS                               = 0x2a\n\tRTM_GETTFILTER                              = 0x2e\n\tRTM_GETTUNNEL                               = 0x7a\n\tRTM_GETVLAN                                 = 0x72\n\tRTM_MAX                                     = 0x7b\n\tRTM_NEWACTION                               = 0x30\n\tRTM_NEWADDR                                 = 0x14\n\tRTM_NEWADDRLABEL                            = 0x48\n\tRTM_NEWCACHEREPORT                          = 0x60\n\tRTM_NEWCHAIN                                = 0x64\n\tRTM_NEWLINK                                 = 0x10\n\tRTM_NEWLINKPROP                             = 0x6c\n\tRTM_NEWMDB                                  = 0x54\n\tRTM_NEWNDUSEROPT                            = 0x44\n\tRTM_NEWNEIGH                                = 0x1c\n\tRTM_NEWNEIGHTBL                             = 0x40\n\tRTM_NEWNETCONF                              = 0x50\n\tRTM_NEWNEXTHOP                              = 0x68\n\tRTM_NEWNEXTHOPBUCKET                        = 0x74\n\tRTM_NEWNSID                                 = 0x58\n\tRTM_NEWNVLAN                                = 0x70\n\tRTM_NEWPREFIX                               = 0x34\n\tRTM_NEWQDISC                                = 0x24\n\tRTM_NEWROUTE                                = 0x18\n\tRTM_NEWRULE                                 = 0x20\n\tRTM_NEWSTATS                                = 0x5c\n\tRTM_NEWTCLASS                               = 0x28\n\tRTM_NEWTFILTER                              = 0x2c\n\tRTM_NEWTUNNEL                               = 0x78\n\tRTM_NR_FAMILIES                             = 0x1b\n\tRTM_NR_MSGTYPES                             = 0x6c\n\tRTM_SETDCB                                  = 0x4f\n\tRTM_SETLINK                                 = 0x13\n\tRTM_SETNEIGHTBL                             = 0x43\n\tRTM_SETSTATS                                = 0x5f\n\tRTNH_ALIGNTO                                = 0x4\n\tRTNH_COMPARE_MASK                           = 0x59\n\tRTNH_F_DEAD                                 = 0x1\n\tRTNH_F_LINKDOWN                             = 0x10\n\tRTNH_F_OFFLOAD                              = 0x8\n\tRTNH_F_ONLINK                               = 0x4\n\tRTNH_F_PERVASIVE                            = 0x2\n\tRTNH_F_TRAP                                 = 0x40\n\tRTNH_F_UNRESOLVED                           = 0x20\n\tRTN_MAX                                     = 0xb\n\tRTPROT_BABEL                                = 0x2a\n\tRTPROT_BGP                                  = 0xba\n\tRTPROT_BIRD                                 = 0xc\n\tRTPROT_BOOT                                 = 0x3\n\tRTPROT_DHCP                                 = 0x10\n\tRTPROT_DNROUTED                             = 0xd\n\tRTPROT_EIGRP                                = 0xc0\n\tRTPROT_GATED                                = 0x8\n\tRTPROT_ISIS                                 = 0xbb\n\tRTPROT_KEEPALIVED                           = 0x12\n\tRTPROT_KERNEL                               = 0x2\n\tRTPROT_MROUTED                              = 0x11\n\tRTPROT_MRT                                  = 0xa\n\tRTPROT_NTK                                  = 0xf\n\tRTPROT_OPENR                                = 0x63\n\tRTPROT_OSPF                                 = 0xbc\n\tRTPROT_RA                                   = 0x9\n\tRTPROT_REDIRECT                             = 0x1\n\tRTPROT_RIP                                  = 0xbd\n\tRTPROT_STATIC                               = 0x4\n\tRTPROT_UNSPEC                               = 0x0\n\tRTPROT_XORP                                 = 0xe\n\tRTPROT_ZEBRA                                = 0xb\n\tRT_CLASS_DEFAULT                            = 0xfd\n\tRT_CLASS_LOCAL                              = 0xff\n\tRT_CLASS_MAIN                               = 0xfe\n\tRT_CLASS_MAX                                = 0xff\n\tRT_CLASS_UNSPEC                             = 0x0\n\tRUSAGE_CHILDREN                             = -0x1\n\tRUSAGE_SELF                                 = 0x0\n\tRUSAGE_THREAD                               = 0x1\n\tRWF_APPEND                                  = 0x10\n\tRWF_DSYNC                                   = 0x2\n\tRWF_HIPRI                                   = 0x1\n\tRWF_NOAPPEND                                = 0x20\n\tRWF_NOWAIT                                  = 0x8\n\tRWF_SUPPORTED                               = 0x3f\n\tRWF_SYNC                                    = 0x4\n\tRWF_WRITE_LIFE_NOT_SET                      = 0x0\n\tSCHED_BATCH                                 = 0x3\n\tSCHED_DEADLINE                              = 0x6\n\tSCHED_FIFO                                  = 0x1\n\tSCHED_FLAG_ALL                              = 0x7f\n\tSCHED_FLAG_DL_OVERRUN                       = 0x4\n\tSCHED_FLAG_KEEP_ALL                         = 0x18\n\tSCHED_FLAG_KEEP_PARAMS                      = 0x10\n\tSCHED_FLAG_KEEP_POLICY                      = 0x8\n\tSCHED_FLAG_RECLAIM                          = 0x2\n\tSCHED_FLAG_RESET_ON_FORK                    = 0x1\n\tSCHED_FLAG_UTIL_CLAMP                       = 0x60\n\tSCHED_FLAG_UTIL_CLAMP_MAX                   = 0x40\n\tSCHED_FLAG_UTIL_CLAMP_MIN                   = 0x20\n\tSCHED_IDLE                                  = 0x5\n\tSCHED_NORMAL                                = 0x0\n\tSCHED_RESET_ON_FORK                         = 0x40000000\n\tSCHED_RR                                    = 0x2\n\tSCM_CREDENTIALS                             = 0x2\n\tSCM_PIDFD                                   = 0x4\n\tSCM_RIGHTS                                  = 0x1\n\tSCM_SECURITY                                = 0x3\n\tSCM_TIMESTAMP                               = 0x1d\n\tSC_LOG_FLUSH                                = 0x100000\n\tSECCOMP_ADDFD_FLAG_SEND                     = 0x2\n\tSECCOMP_ADDFD_FLAG_SETFD                    = 0x1\n\tSECCOMP_FILTER_FLAG_LOG                     = 0x2\n\tSECCOMP_FILTER_FLAG_NEW_LISTENER            = 0x8\n\tSECCOMP_FILTER_FLAG_SPEC_ALLOW              = 0x4\n\tSECCOMP_FILTER_FLAG_TSYNC                   = 0x1\n\tSECCOMP_FILTER_FLAG_TSYNC_ESRCH             = 0x10\n\tSECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV      = 0x20\n\tSECCOMP_GET_ACTION_AVAIL                    = 0x2\n\tSECCOMP_GET_NOTIF_SIZES                     = 0x3\n\tSECCOMP_IOCTL_NOTIF_RECV                    = 0xc0502100\n\tSECCOMP_IOCTL_NOTIF_SEND                    = 0xc0182101\n\tSECCOMP_IOC_MAGIC                           = '!'\n\tSECCOMP_MODE_DISABLED                       = 0x0\n\tSECCOMP_MODE_FILTER                         = 0x2\n\tSECCOMP_MODE_STRICT                         = 0x1\n\tSECCOMP_RET_ACTION                          = 0x7fff0000\n\tSECCOMP_RET_ACTION_FULL                     = 0xffff0000\n\tSECCOMP_RET_ALLOW                           = 0x7fff0000\n\tSECCOMP_RET_DATA                            = 0xffff\n\tSECCOMP_RET_ERRNO                           = 0x50000\n\tSECCOMP_RET_KILL                            = 0x0\n\tSECCOMP_RET_KILL_PROCESS                    = 0x80000000\n\tSECCOMP_RET_KILL_THREAD                     = 0x0\n\tSECCOMP_RET_LOG                             = 0x7ffc0000\n\tSECCOMP_RET_TRACE                           = 0x7ff00000\n\tSECCOMP_RET_TRAP                            = 0x30000\n\tSECCOMP_RET_USER_NOTIF                      = 0x7fc00000\n\tSECCOMP_SET_MODE_FILTER                     = 0x1\n\tSECCOMP_SET_MODE_STRICT                     = 0x0\n\tSECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP          = 0x1\n\tSECCOMP_USER_NOTIF_FLAG_CONTINUE            = 0x1\n\tSECRETMEM_MAGIC                             = 0x5345434d\n\tSECURITYFS_MAGIC                            = 0x73636673\n\tSEEK_CUR                                    = 0x1\n\tSEEK_DATA                                   = 0x3\n\tSEEK_END                                    = 0x2\n\tSEEK_HOLE                                   = 0x4\n\tSEEK_MAX                                    = 0x4\n\tSEEK_SET                                    = 0x0\n\tSELINUX_MAGIC                               = 0xf97cff8c\n\tSHUT_RD                                     = 0x0\n\tSHUT_RDWR                                   = 0x2\n\tSHUT_WR                                     = 0x1\n\tSIOCADDDLCI                                 = 0x8980\n\tSIOCADDMULTI                                = 0x8931\n\tSIOCADDRT                                   = 0x890b\n\tSIOCBONDCHANGEACTIVE                        = 0x8995\n\tSIOCBONDENSLAVE                             = 0x8990\n\tSIOCBONDINFOQUERY                           = 0x8994\n\tSIOCBONDRELEASE                             = 0x8991\n\tSIOCBONDSETHWADDR                           = 0x8992\n\tSIOCBONDSLAVEINFOQUERY                      = 0x8993\n\tSIOCBRADDBR                                 = 0x89a0\n\tSIOCBRADDIF                                 = 0x89a2\n\tSIOCBRDELBR                                 = 0x89a1\n\tSIOCBRDELIF                                 = 0x89a3\n\tSIOCDARP                                    = 0x8953\n\tSIOCDELDLCI                                 = 0x8981\n\tSIOCDELMULTI                                = 0x8932\n\tSIOCDELRT                                   = 0x890c\n\tSIOCDEVPRIVATE                              = 0x89f0\n\tSIOCDIFADDR                                 = 0x8936\n\tSIOCDRARP                                   = 0x8960\n\tSIOCETHTOOL                                 = 0x8946\n\tSIOCGARP                                    = 0x8954\n\tSIOCGETLINKNAME                             = 0x89e0\n\tSIOCGETNODEID                               = 0x89e1\n\tSIOCGHWTSTAMP                               = 0x89b1\n\tSIOCGIFADDR                                 = 0x8915\n\tSIOCGIFBR                                   = 0x8940\n\tSIOCGIFBRDADDR                              = 0x8919\n\tSIOCGIFCONF                                 = 0x8912\n\tSIOCGIFCOUNT                                = 0x8938\n\tSIOCGIFDSTADDR                              = 0x8917\n\tSIOCGIFENCAP                                = 0x8925\n\tSIOCGIFFLAGS                                = 0x8913\n\tSIOCGIFHWADDR                               = 0x8927\n\tSIOCGIFINDEX                                = 0x8933\n\tSIOCGIFMAP                                  = 0x8970\n\tSIOCGIFMEM                                  = 0x891f\n\tSIOCGIFMETRIC                               = 0x891d\n\tSIOCGIFMTU                                  = 0x8921\n\tSIOCGIFNAME                                 = 0x8910\n\tSIOCGIFNETMASK                              = 0x891b\n\tSIOCGIFPFLAGS                               = 0x8935\n\tSIOCGIFSLAVE                                = 0x8929\n\tSIOCGIFTXQLEN                               = 0x8942\n\tSIOCGIFVLAN                                 = 0x8982\n\tSIOCGMIIPHY                                 = 0x8947\n\tSIOCGMIIREG                                 = 0x8948\n\tSIOCGPPPCSTATS                              = 0x89f2\n\tSIOCGPPPSTATS                               = 0x89f0\n\tSIOCGPPPVER                                 = 0x89f1\n\tSIOCGRARP                                   = 0x8961\n\tSIOCGSKNS                                   = 0x894c\n\tSIOCGSTAMP                                  = 0x8906\n\tSIOCGSTAMPNS                                = 0x8907\n\tSIOCGSTAMPNS_OLD                            = 0x8907\n\tSIOCGSTAMP_OLD                              = 0x8906\n\tSIOCKCMATTACH                               = 0x89e0\n\tSIOCKCMCLONE                                = 0x89e2\n\tSIOCKCMUNATTACH                             = 0x89e1\n\tSIOCOUTQNSD                                 = 0x894b\n\tSIOCPROTOPRIVATE                            = 0x89e0\n\tSIOCRTMSG                                   = 0x890d\n\tSIOCSARP                                    = 0x8955\n\tSIOCSHWTSTAMP                               = 0x89b0\n\tSIOCSIFADDR                                 = 0x8916\n\tSIOCSIFBR                                   = 0x8941\n\tSIOCSIFBRDADDR                              = 0x891a\n\tSIOCSIFDSTADDR                              = 0x8918\n\tSIOCSIFENCAP                                = 0x8926\n\tSIOCSIFFLAGS                                = 0x8914\n\tSIOCSIFHWADDR                               = 0x8924\n\tSIOCSIFHWBROADCAST                          = 0x8937\n\tSIOCSIFLINK                                 = 0x8911\n\tSIOCSIFMAP                                  = 0x8971\n\tSIOCSIFMEM                                  = 0x8920\n\tSIOCSIFMETRIC                               = 0x891e\n\tSIOCSIFMTU                                  = 0x8922\n\tSIOCSIFNAME                                 = 0x8923\n\tSIOCSIFNETMASK                              = 0x891c\n\tSIOCSIFPFLAGS                               = 0x8934\n\tSIOCSIFSLAVE                                = 0x8930\n\tSIOCSIFTXQLEN                               = 0x8943\n\tSIOCSIFVLAN                                 = 0x8983\n\tSIOCSMIIREG                                 = 0x8949\n\tSIOCSRARP                                   = 0x8962\n\tSIOCWANDEV                                  = 0x894a\n\tSK_DIAG_BPF_STORAGE_MAX                     = 0x3\n\tSK_DIAG_BPF_STORAGE_REQ_MAX                 = 0x1\n\tSMACK_MAGIC                                 = 0x43415d53\n\tSMART_AUTOSAVE                              = 0xd2\n\tSMART_AUTO_OFFLINE                          = 0xdb\n\tSMART_DISABLE                               = 0xd9\n\tSMART_ENABLE                                = 0xd8\n\tSMART_HCYL_PASS                             = 0xc2\n\tSMART_IMMEDIATE_OFFLINE                     = 0xd4\n\tSMART_LCYL_PASS                             = 0x4f\n\tSMART_READ_LOG_SECTOR                       = 0xd5\n\tSMART_READ_THRESHOLDS                       = 0xd1\n\tSMART_READ_VALUES                           = 0xd0\n\tSMART_SAVE                                  = 0xd3\n\tSMART_STATUS                                = 0xda\n\tSMART_WRITE_LOG_SECTOR                      = 0xd6\n\tSMART_WRITE_THRESHOLDS                      = 0xd7\n\tSMB2_SUPER_MAGIC                            = 0xfe534d42\n\tSMB_SUPER_MAGIC                             = 0x517b\n\tSOCKFS_MAGIC                                = 0x534f434b\n\tSOCK_BUF_LOCK_MASK                          = 0x3\n\tSOCK_DCCP                                   = 0x6\n\tSOCK_DESTROY                                = 0x15\n\tSOCK_DIAG_BY_FAMILY                         = 0x14\n\tSOCK_IOC_TYPE                               = 0x89\n\tSOCK_PACKET                                 = 0xa\n\tSOCK_RAW                                    = 0x3\n\tSOCK_RCVBUF_LOCK                            = 0x2\n\tSOCK_RDM                                    = 0x4\n\tSOCK_SEQPACKET                              = 0x5\n\tSOCK_SNDBUF_LOCK                            = 0x1\n\tSOCK_TXREHASH_DEFAULT                       = 0xff\n\tSOCK_TXREHASH_DISABLED                      = 0x0\n\tSOCK_TXREHASH_ENABLED                       = 0x1\n\tSOL_AAL                                     = 0x109\n\tSOL_ALG                                     = 0x117\n\tSOL_ATM                                     = 0x108\n\tSOL_CAIF                                    = 0x116\n\tSOL_CAN_BASE                                = 0x64\n\tSOL_CAN_RAW                                 = 0x65\n\tSOL_DCCP                                    = 0x10d\n\tSOL_DECNET                                  = 0x105\n\tSOL_ICMPV6                                  = 0x3a\n\tSOL_IP                                      = 0x0\n\tSOL_IPV6                                    = 0x29\n\tSOL_IRDA                                    = 0x10a\n\tSOL_IUCV                                    = 0x115\n\tSOL_KCM                                     = 0x119\n\tSOL_LLC                                     = 0x10c\n\tSOL_MCTP                                    = 0x11d\n\tSOL_MPTCP                                   = 0x11c\n\tSOL_NETBEUI                                 = 0x10b\n\tSOL_NETLINK                                 = 0x10e\n\tSOL_NFC                                     = 0x118\n\tSOL_PACKET                                  = 0x107\n\tSOL_PNPIPE                                  = 0x113\n\tSOL_PPPOL2TP                                = 0x111\n\tSOL_RAW                                     = 0xff\n\tSOL_RDS                                     = 0x114\n\tSOL_RXRPC                                   = 0x110\n\tSOL_SMC                                     = 0x11e\n\tSOL_TCP                                     = 0x6\n\tSOL_TIPC                                    = 0x10f\n\tSOL_TLS                                     = 0x11a\n\tSOL_UDP                                     = 0x11\n\tSOL_VSOCK                                   = 0x11f\n\tSOL_X25                                     = 0x106\n\tSOL_XDP                                     = 0x11b\n\tSOMAXCONN                                   = 0x1000\n\tSO_ATTACH_FILTER                            = 0x1a\n\tSO_DEBUG                                    = 0x1\n\tSO_DETACH_BPF                               = 0x1b\n\tSO_DETACH_FILTER                            = 0x1b\n\tSO_EE_CODE_TXTIME_INVALID_PARAM             = 0x1\n\tSO_EE_CODE_TXTIME_MISSED                    = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED                  = 0x1\n\tSO_EE_ORIGIN_ICMP                           = 0x2\n\tSO_EE_ORIGIN_ICMP6                          = 0x3\n\tSO_EE_ORIGIN_LOCAL                          = 0x1\n\tSO_EE_ORIGIN_NONE                           = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING                   = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                       = 0x4\n\tSO_EE_ORIGIN_TXTIME                         = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                       = 0x5\n\tSO_EE_RFC4884_FLAG_INVALID                  = 0x1\n\tSO_GET_FILTER                               = 0x1a\n\tSO_NO_CHECK                                 = 0xb\n\tSO_PEERNAME                                 = 0x1c\n\tSO_PRIORITY                                 = 0xc\n\tSO_TIMESTAMP                                = 0x1d\n\tSO_TIMESTAMP_OLD                            = 0x1d\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE               = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE               = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE                   = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT               = 0x6\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT_NEW           = 0x8\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT_OLD           = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX                 = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID               = 0x3\n\tSO_VM_SOCKETS_TRUSTED                       = 0x5\n\tSPLICE_F_GIFT                               = 0x8\n\tSPLICE_F_MORE                               = 0x4\n\tSPLICE_F_MOVE                               = 0x1\n\tSPLICE_F_NONBLOCK                           = 0x2\n\tSQUASHFS_MAGIC                              = 0x73717368\n\tSTACK_END_MAGIC                             = 0x57ac6e9d\n\tSTATX_ALL                                   = 0xfff\n\tSTATX_ATIME                                 = 0x20\n\tSTATX_ATTR_APPEND                           = 0x20\n\tSTATX_ATTR_AUTOMOUNT                        = 0x1000\n\tSTATX_ATTR_COMPRESSED                       = 0x4\n\tSTATX_ATTR_DAX                              = 0x200000\n\tSTATX_ATTR_ENCRYPTED                        = 0x800\n\tSTATX_ATTR_IMMUTABLE                        = 0x10\n\tSTATX_ATTR_MOUNT_ROOT                       = 0x2000\n\tSTATX_ATTR_NODUMP                           = 0x40\n\tSTATX_ATTR_VERITY                           = 0x100000\n\tSTATX_BASIC_STATS                           = 0x7ff\n\tSTATX_BLOCKS                                = 0x400\n\tSTATX_BTIME                                 = 0x800\n\tSTATX_CTIME                                 = 0x80\n\tSTATX_DIOALIGN                              = 0x2000\n\tSTATX_GID                                   = 0x10\n\tSTATX_INO                                   = 0x100\n\tSTATX_MNT_ID                                = 0x1000\n\tSTATX_MNT_ID_UNIQUE                         = 0x4000\n\tSTATX_MODE                                  = 0x2\n\tSTATX_MTIME                                 = 0x40\n\tSTATX_NLINK                                 = 0x4\n\tSTATX_SIZE                                  = 0x200\n\tSTATX_SUBVOL                                = 0x8000\n\tSTATX_TYPE                                  = 0x1\n\tSTATX_UID                                   = 0x8\n\tSTATX__RESERVED                             = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER                  = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE                 = 0x1\n\tSYNC_FILE_RANGE_WRITE                       = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT              = 0x7\n\tSYSFS_MAGIC                                 = 0x62656572\n\tS_BLKSIZE                                   = 0x200\n\tS_IEXEC                                     = 0x40\n\tS_IFBLK                                     = 0x6000\n\tS_IFCHR                                     = 0x2000\n\tS_IFDIR                                     = 0x4000\n\tS_IFIFO                                     = 0x1000\n\tS_IFLNK                                     = 0xa000\n\tS_IFMT                                      = 0xf000\n\tS_IFREG                                     = 0x8000\n\tS_IFSOCK                                    = 0xc000\n\tS_IREAD                                     = 0x100\n\tS_IRGRP                                     = 0x20\n\tS_IROTH                                     = 0x4\n\tS_IRUSR                                     = 0x100\n\tS_IRWXG                                     = 0x38\n\tS_IRWXO                                     = 0x7\n\tS_IRWXU                                     = 0x1c0\n\tS_ISGID                                     = 0x400\n\tS_ISUID                                     = 0x800\n\tS_ISVTX                                     = 0x200\n\tS_IWGRP                                     = 0x10\n\tS_IWOTH                                     = 0x2\n\tS_IWRITE                                    = 0x80\n\tS_IWUSR                                     = 0x80\n\tS_IXGRP                                     = 0x8\n\tS_IXOTH                                     = 0x1\n\tS_IXUSR                                     = 0x40\n\tTAB0                                        = 0x0\n\tTASKSTATS_CMD_ATTR_MAX                      = 0x4\n\tTASKSTATS_CMD_MAX                           = 0x2\n\tTASKSTATS_GENL_NAME                         = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION                      = 0x1\n\tTASKSTATS_TYPE_MAX                          = 0x6\n\tTASKSTATS_VERSION                           = 0xe\n\tTCIFLUSH                                    = 0x0\n\tTCIOFF                                      = 0x2\n\tTCIOFLUSH                                   = 0x2\n\tTCION                                       = 0x3\n\tTCOFLUSH                                    = 0x1\n\tTCOOFF                                      = 0x0\n\tTCOON                                       = 0x1\n\tTCPOPT_EOL                                  = 0x0\n\tTCPOPT_MAXSEG                               = 0x2\n\tTCPOPT_NOP                                  = 0x1\n\tTCPOPT_SACK                                 = 0x5\n\tTCPOPT_SACK_PERMITTED                       = 0x4\n\tTCPOPT_TIMESTAMP                            = 0x8\n\tTCPOPT_TSTAMP_HDR                           = 0x101080a\n\tTCPOPT_WINDOW                               = 0x3\n\tTCP_CC_INFO                                 = 0x1a\n\tTCP_CM_INQ                                  = 0x24\n\tTCP_CONGESTION                              = 0xd\n\tTCP_COOKIE_IN_ALWAYS                        = 0x1\n\tTCP_COOKIE_MAX                              = 0x10\n\tTCP_COOKIE_MIN                              = 0x8\n\tTCP_COOKIE_OUT_NEVER                        = 0x2\n\tTCP_COOKIE_PAIR_SIZE                        = 0x20\n\tTCP_COOKIE_TRANSACTIONS                     = 0xf\n\tTCP_CORK                                    = 0x3\n\tTCP_DEFER_ACCEPT                            = 0x9\n\tTCP_FASTOPEN                                = 0x17\n\tTCP_FASTOPEN_CONNECT                        = 0x1e\n\tTCP_FASTOPEN_KEY                            = 0x21\n\tTCP_FASTOPEN_NO_COOKIE                      = 0x22\n\tTCP_INFO                                    = 0xb\n\tTCP_INQ                                     = 0x24\n\tTCP_KEEPCNT                                 = 0x6\n\tTCP_KEEPIDLE                                = 0x4\n\tTCP_KEEPINTVL                               = 0x5\n\tTCP_LINGER2                                 = 0x8\n\tTCP_MAXSEG                                  = 0x2\n\tTCP_MAXWIN                                  = 0xffff\n\tTCP_MAX_WINSHIFT                            = 0xe\n\tTCP_MD5SIG                                  = 0xe\n\tTCP_MD5SIG_EXT                              = 0x20\n\tTCP_MD5SIG_FLAG_IFINDEX                     = 0x2\n\tTCP_MD5SIG_FLAG_PREFIX                      = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                        = 0x50\n\tTCP_MSS                                     = 0x200\n\tTCP_MSS_DEFAULT                             = 0x218\n\tTCP_MSS_DESIRED                             = 0x4c4\n\tTCP_NODELAY                                 = 0x1\n\tTCP_NOTSENT_LOWAT                           = 0x19\n\tTCP_QUEUE_SEQ                               = 0x15\n\tTCP_QUICKACK                                = 0xc\n\tTCP_REPAIR                                  = 0x13\n\tTCP_REPAIR_OFF                              = 0x0\n\tTCP_REPAIR_OFF_NO_WP                        = -0x1\n\tTCP_REPAIR_ON                               = 0x1\n\tTCP_REPAIR_OPTIONS                          = 0x16\n\tTCP_REPAIR_QUEUE                            = 0x14\n\tTCP_REPAIR_WINDOW                           = 0x1d\n\tTCP_SAVED_SYN                               = 0x1c\n\tTCP_SAVE_SYN                                = 0x1b\n\tTCP_SYNCNT                                  = 0x7\n\tTCP_S_DATA_IN                               = 0x4\n\tTCP_S_DATA_OUT                              = 0x8\n\tTCP_THIN_DUPACK                             = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS                    = 0x10\n\tTCP_TIMESTAMP                               = 0x18\n\tTCP_TX_DELAY                                = 0x25\n\tTCP_ULP                                     = 0x1f\n\tTCP_USER_TIMEOUT                            = 0x12\n\tTCP_V4_FLOW                                 = 0x1\n\tTCP_V6_FLOW                                 = 0x5\n\tTCP_WINDOW_CLAMP                            = 0xa\n\tTCP_ZEROCOPY_RECEIVE                        = 0x23\n\tTFD_TIMER_ABSTIME                           = 0x1\n\tTFD_TIMER_CANCEL_ON_SET                     = 0x2\n\tTIMER_ABSTIME                               = 0x1\n\tTIOCM_DTR                                   = 0x2\n\tTIOCM_LE                                    = 0x1\n\tTIOCM_RTS                                   = 0x4\n\tTIOCPKT_DATA                                = 0x0\n\tTIOCPKT_DOSTOP                              = 0x20\n\tTIOCPKT_FLUSHREAD                           = 0x1\n\tTIOCPKT_FLUSHWRITE                          = 0x2\n\tTIOCPKT_IOCTL                               = 0x40\n\tTIOCPKT_NOSTOP                              = 0x10\n\tTIOCPKT_START                               = 0x8\n\tTIOCPKT_STOP                                = 0x4\n\tTIPC_ADDR_ID                                = 0x3\n\tTIPC_ADDR_MCAST                             = 0x1\n\tTIPC_ADDR_NAME                              = 0x2\n\tTIPC_ADDR_NAMESEQ                           = 0x1\n\tTIPC_AEAD_ALG_NAME                          = 0x20\n\tTIPC_AEAD_KEYLEN_MAX                        = 0x24\n\tTIPC_AEAD_KEYLEN_MIN                        = 0x14\n\tTIPC_AEAD_KEY_SIZE_MAX                      = 0x48\n\tTIPC_CFG_SRV                                = 0x0\n\tTIPC_CLUSTER_BITS                           = 0xc\n\tTIPC_CLUSTER_MASK                           = 0xfff000\n\tTIPC_CLUSTER_OFFSET                         = 0xc\n\tTIPC_CLUSTER_SIZE                           = 0xfff\n\tTIPC_CONN_SHUTDOWN                          = 0x5\n\tTIPC_CONN_TIMEOUT                           = 0x82\n\tTIPC_CRITICAL_IMPORTANCE                    = 0x3\n\tTIPC_DESTNAME                               = 0x3\n\tTIPC_DEST_DROPPABLE                         = 0x81\n\tTIPC_ERRINFO                                = 0x1\n\tTIPC_ERR_NO_NAME                            = 0x1\n\tTIPC_ERR_NO_NODE                            = 0x3\n\tTIPC_ERR_NO_PORT                            = 0x2\n\tTIPC_ERR_OVERLOAD                           = 0x4\n\tTIPC_GROUP_JOIN                             = 0x87\n\tTIPC_GROUP_LEAVE                            = 0x88\n\tTIPC_GROUP_LOOPBACK                         = 0x1\n\tTIPC_GROUP_MEMBER_EVTS                      = 0x2\n\tTIPC_HIGH_IMPORTANCE                        = 0x2\n\tTIPC_IMPORTANCE                             = 0x7f\n\tTIPC_LINK_STATE                             = 0x2\n\tTIPC_LOW_IMPORTANCE                         = 0x0\n\tTIPC_MAX_BEARER_NAME                        = 0x20\n\tTIPC_MAX_IF_NAME                            = 0x10\n\tTIPC_MAX_LINK_NAME                          = 0x44\n\tTIPC_MAX_MEDIA_NAME                         = 0x10\n\tTIPC_MAX_USER_MSG_SIZE                      = 0x101d0\n\tTIPC_MCAST_BROADCAST                        = 0x85\n\tTIPC_MCAST_REPLICAST                        = 0x86\n\tTIPC_MEDIUM_IMPORTANCE                      = 0x1\n\tTIPC_NODEID_LEN                             = 0x10\n\tTIPC_NODELAY                                = 0x8a\n\tTIPC_NODE_BITS                              = 0xc\n\tTIPC_NODE_MASK                              = 0xfff\n\tTIPC_NODE_OFFSET                            = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                       = 0x83\n\tTIPC_NODE_SIZE                              = 0xfff\n\tTIPC_NODE_STATE                             = 0x0\n\tTIPC_OK                                     = 0x0\n\tTIPC_PUBLISHED                              = 0x1\n\tTIPC_REKEYING_NOW                           = 0xffffffff\n\tTIPC_RESERVED_TYPES                         = 0x40\n\tTIPC_RETDATA                                = 0x2\n\tTIPC_SERVICE_ADDR                           = 0x2\n\tTIPC_SERVICE_RANGE                          = 0x1\n\tTIPC_SOCKET_ADDR                            = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                       = 0x84\n\tTIPC_SOCK_RECVQ_USED                        = 0x89\n\tTIPC_SRC_DROPPABLE                          = 0x80\n\tTIPC_SUBSCR_TIMEOUT                         = 0x3\n\tTIPC_SUB_CANCEL                             = 0x4\n\tTIPC_SUB_PORTS                              = 0x1\n\tTIPC_SUB_SERVICE                            = 0x2\n\tTIPC_TOP_SRV                                = 0x1\n\tTIPC_WAIT_FOREVER                           = 0xffffffff\n\tTIPC_WITHDRAWN                              = 0x2\n\tTIPC_ZONE_BITS                              = 0x8\n\tTIPC_ZONE_CLUSTER_MASK                      = 0xfffff000\n\tTIPC_ZONE_MASK                              = 0xff000000\n\tTIPC_ZONE_OFFSET                            = 0x18\n\tTIPC_ZONE_SCOPE                             = 0x1\n\tTIPC_ZONE_SIZE                              = 0xff\n\tTMPFS_MAGIC                                 = 0x1021994\n\tTPACKET_ALIGNMENT                           = 0x10\n\tTPACKET_HDRLEN                              = 0x34\n\tTP_STATUS_AVAILABLE                         = 0x0\n\tTP_STATUS_BLK_TMO                           = 0x20\n\tTP_STATUS_COPY                              = 0x2\n\tTP_STATUS_CSUMNOTREADY                      = 0x8\n\tTP_STATUS_CSUM_VALID                        = 0x80\n\tTP_STATUS_GSO_TCP                           = 0x100\n\tTP_STATUS_KERNEL                            = 0x0\n\tTP_STATUS_LOSING                            = 0x4\n\tTP_STATUS_SENDING                           = 0x2\n\tTP_STATUS_SEND_REQUEST                      = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE                   = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                       = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE                   = 0x40000000\n\tTP_STATUS_USER                              = 0x1\n\tTP_STATUS_VLAN_TPID_VALID                   = 0x40\n\tTP_STATUS_VLAN_VALID                        = 0x10\n\tTP_STATUS_WRONG_FORMAT                      = 0x4\n\tTRACEFS_MAGIC                               = 0x74726163\n\tTS_COMM_LEN                                 = 0x20\n\tUDF_SUPER_MAGIC                             = 0x15013346\n\tUDP_CORK                                    = 0x1\n\tUDP_ENCAP                                   = 0x64\n\tUDP_ENCAP_ESPINUDP                          = 0x2\n\tUDP_ENCAP_ESPINUDP_NON_IKE                  = 0x1\n\tUDP_ENCAP_GTP0                              = 0x4\n\tUDP_ENCAP_GTP1U                             = 0x5\n\tUDP_ENCAP_L2TPINUDP                         = 0x3\n\tUDP_GRO                                     = 0x68\n\tUDP_NO_CHECK6_RX                            = 0x66\n\tUDP_NO_CHECK6_TX                            = 0x65\n\tUDP_SEGMENT                                 = 0x67\n\tUDP_V4_FLOW                                 = 0x2\n\tUDP_V6_FLOW                                 = 0x6\n\tUMOUNT_NOFOLLOW                             = 0x8\n\tUSBDEVICE_SUPER_MAGIC                       = 0x9fa2\n\tUTIME_NOW                                   = 0x3fffffff\n\tUTIME_OMIT                                  = 0x3ffffffe\n\tV9FS_MAGIC                                  = 0x1021997\n\tVERASE                                      = 0x2\n\tVINTR                                       = 0x0\n\tVKILL                                       = 0x3\n\tVLNEXT                                      = 0xf\n\tVMADDR_CID_ANY                              = 0xffffffff\n\tVMADDR_CID_HOST                             = 0x2\n\tVMADDR_CID_HYPERVISOR                       = 0x0\n\tVMADDR_CID_LOCAL                            = 0x1\n\tVMADDR_FLAG_TO_HOST                         = 0x1\n\tVMADDR_PORT_ANY                             = 0xffffffff\n\tVM_SOCKETS_INVALID_VERSION                  = 0xffffffff\n\tVQUIT                                       = 0x1\n\tVT0                                         = 0x0\n\tWAKE_MAGIC                                  = 0x20\n\tWALL                                        = 0x40000000\n\tWCLONE                                      = 0x80000000\n\tWCONTINUED                                  = 0x8\n\tWDIOC_SETPRETIMEOUT                         = 0xc0045708\n\tWDIOC_SETTIMEOUT                            = 0xc0045706\n\tWDIOF_ALARMONLY                             = 0x400\n\tWDIOF_CARDRESET                             = 0x20\n\tWDIOF_EXTERN1                               = 0x4\n\tWDIOF_EXTERN2                               = 0x8\n\tWDIOF_FANFAULT                              = 0x2\n\tWDIOF_KEEPALIVEPING                         = 0x8000\n\tWDIOF_MAGICCLOSE                            = 0x100\n\tWDIOF_OVERHEAT                              = 0x1\n\tWDIOF_POWEROVER                             = 0x40\n\tWDIOF_POWERUNDER                            = 0x10\n\tWDIOF_PRETIMEOUT                            = 0x200\n\tWDIOF_SETTIMEOUT                            = 0x80\n\tWDIOF_UNKNOWN                               = -0x1\n\tWDIOS_DISABLECARD                           = 0x1\n\tWDIOS_ENABLECARD                            = 0x2\n\tWDIOS_TEMPPANIC                             = 0x4\n\tWDIOS_UNKNOWN                               = -0x1\n\tWEXITED                                     = 0x4\n\tWGALLOWEDIP_A_MAX                           = 0x3\n\tWGDEVICE_A_MAX                              = 0x8\n\tWGPEER_A_MAX                                = 0xa\n\tWG_CMD_MAX                                  = 0x1\n\tWG_GENL_NAME                                = \"wireguard\"\n\tWG_GENL_VERSION                             = 0x1\n\tWG_KEY_LEN                                  = 0x20\n\tWIN_ACKMEDIACHANGE                          = 0xdb\n\tWIN_CHECKPOWERMODE1                         = 0xe5\n\tWIN_CHECKPOWERMODE2                         = 0x98\n\tWIN_DEVICE_RESET                            = 0x8\n\tWIN_DIAGNOSE                                = 0x90\n\tWIN_DOORLOCK                                = 0xde\n\tWIN_DOORUNLOCK                              = 0xdf\n\tWIN_DOWNLOAD_MICROCODE                      = 0x92\n\tWIN_FLUSH_CACHE                             = 0xe7\n\tWIN_FLUSH_CACHE_EXT                         = 0xea\n\tWIN_FORMAT                                  = 0x50\n\tWIN_GETMEDIASTATUS                          = 0xda\n\tWIN_IDENTIFY                                = 0xec\n\tWIN_IDENTIFY_DMA                            = 0xee\n\tWIN_IDLEIMMEDIATE                           = 0xe1\n\tWIN_INIT                                    = 0x60\n\tWIN_MEDIAEJECT                              = 0xed\n\tWIN_MULTREAD                                = 0xc4\n\tWIN_MULTREAD_EXT                            = 0x29\n\tWIN_MULTWRITE                               = 0xc5\n\tWIN_MULTWRITE_EXT                           = 0x39\n\tWIN_NOP                                     = 0x0\n\tWIN_PACKETCMD                               = 0xa0\n\tWIN_PIDENTIFY                               = 0xa1\n\tWIN_POSTBOOT                                = 0xdc\n\tWIN_PREBOOT                                 = 0xdd\n\tWIN_QUEUED_SERVICE                          = 0xa2\n\tWIN_READ                                    = 0x20\n\tWIN_READDMA                                 = 0xc8\n\tWIN_READDMA_EXT                             = 0x25\n\tWIN_READDMA_ONCE                            = 0xc9\n\tWIN_READDMA_QUEUED                          = 0xc7\n\tWIN_READDMA_QUEUED_EXT                      = 0x26\n\tWIN_READ_BUFFER                             = 0xe4\n\tWIN_READ_EXT                                = 0x24\n\tWIN_READ_LONG                               = 0x22\n\tWIN_READ_LONG_ONCE                          = 0x23\n\tWIN_READ_NATIVE_MAX                         = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT                     = 0x27\n\tWIN_READ_ONCE                               = 0x21\n\tWIN_RECAL                                   = 0x10\n\tWIN_RESTORE                                 = 0x10\n\tWIN_SECURITY_DISABLE                        = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE                  = 0xf3\n\tWIN_SECURITY_ERASE_UNIT                     = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK                    = 0xf5\n\tWIN_SECURITY_SET_PASS                       = 0xf1\n\tWIN_SECURITY_UNLOCK                         = 0xf2\n\tWIN_SEEK                                    = 0x70\n\tWIN_SETFEATURES                             = 0xef\n\tWIN_SETIDLE1                                = 0xe3\n\tWIN_SETIDLE2                                = 0x97\n\tWIN_SETMULT                                 = 0xc6\n\tWIN_SET_MAX                                 = 0xf9\n\tWIN_SET_MAX_EXT                             = 0x37\n\tWIN_SLEEPNOW1                               = 0xe6\n\tWIN_SLEEPNOW2                               = 0x99\n\tWIN_SMART                                   = 0xb0\n\tWIN_SPECIFY                                 = 0x91\n\tWIN_SRST                                    = 0x8\n\tWIN_STANDBY                                 = 0xe2\n\tWIN_STANDBY2                                = 0x96\n\tWIN_STANDBYNOW1                             = 0xe0\n\tWIN_STANDBYNOW2                             = 0x94\n\tWIN_VERIFY                                  = 0x40\n\tWIN_VERIFY_EXT                              = 0x42\n\tWIN_VERIFY_ONCE                             = 0x41\n\tWIN_WRITE                                   = 0x30\n\tWIN_WRITEDMA                                = 0xca\n\tWIN_WRITEDMA_EXT                            = 0x35\n\tWIN_WRITEDMA_ONCE                           = 0xcb\n\tWIN_WRITEDMA_QUEUED                         = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT                     = 0x36\n\tWIN_WRITE_BUFFER                            = 0xe8\n\tWIN_WRITE_EXT                               = 0x34\n\tWIN_WRITE_LONG                              = 0x32\n\tWIN_WRITE_LONG_ONCE                         = 0x33\n\tWIN_WRITE_ONCE                              = 0x31\n\tWIN_WRITE_SAME                              = 0xe9\n\tWIN_WRITE_VERIFY                            = 0x3c\n\tWNOHANG                                     = 0x1\n\tWNOTHREAD                                   = 0x20000000\n\tWNOWAIT                                     = 0x1000000\n\tWSTOPPED                                    = 0x2\n\tWUNTRACED                                   = 0x2\n\tXATTR_CREATE                                = 0x1\n\tXATTR_REPLACE                               = 0x2\n\tXDP_COPY                                    = 0x2\n\tXDP_FLAGS_DRV_MODE                          = 0x4\n\tXDP_FLAGS_HW_MODE                           = 0x8\n\tXDP_FLAGS_MASK                              = 0x1f\n\tXDP_FLAGS_MODES                             = 0xe\n\tXDP_FLAGS_REPLACE                           = 0x10\n\tXDP_FLAGS_SKB_MODE                          = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST                 = 0x1\n\tXDP_MMAP_OFFSETS                            = 0x1\n\tXDP_OPTIONS                                 = 0x8\n\tXDP_OPTIONS_ZEROCOPY                        = 0x1\n\tXDP_PACKET_HEADROOM                         = 0x100\n\tXDP_PGOFF_RX_RING                           = 0x0\n\tXDP_PGOFF_TX_RING                           = 0x80000000\n\tXDP_PKT_CONTD                               = 0x1\n\tXDP_RING_NEED_WAKEUP                        = 0x1\n\tXDP_RX_RING                                 = 0x2\n\tXDP_SHARED_UMEM                             = 0x1\n\tXDP_STATISTICS                              = 0x7\n\tXDP_TXMD_FLAGS_CHECKSUM                     = 0x2\n\tXDP_TXMD_FLAGS_TIMESTAMP                    = 0x1\n\tXDP_TX_METADATA                             = 0x2\n\tXDP_TX_RING                                 = 0x3\n\tXDP_UMEM_COMPLETION_RING                    = 0x6\n\tXDP_UMEM_FILL_RING                          = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING              = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING                    = 0x100000000\n\tXDP_UMEM_REG                                = 0x4\n\tXDP_UMEM_TX_SW_CSUM                         = 0x2\n\tXDP_UMEM_UNALIGNED_CHUNK_FLAG               = 0x1\n\tXDP_USE_NEED_WAKEUP                         = 0x8\n\tXDP_USE_SG                                  = 0x10\n\tXDP_ZEROCOPY                                = 0x4\n\tXENFS_SUPER_MAGIC                           = 0xabba1974\n\tXFS_SUPER_MAGIC                             = 0x58465342\n\tZONEFS_MAGIC                                = 0x5a4f4653\n\t_HIDIOCGRAWNAME_LEN                         = 0x80\n\t_HIDIOCGRAWPHYS_LEN                         = 0x40\n\t_HIDIOCGRAWUNIQ_LEN                         = 0x40\n)\n\n// Errors\nconst (\n\tE2BIG       = syscall.Errno(0x7)\n\tEACCES      = syscall.Errno(0xd)\n\tEAGAIN      = syscall.Errno(0xb)\n\tEBADF       = syscall.Errno(0x9)\n\tEBUSY       = syscall.Errno(0x10)\n\tECHILD      = syscall.Errno(0xa)\n\tEDOM        = syscall.Errno(0x21)\n\tEEXIST      = syscall.Errno(0x11)\n\tEFAULT      = syscall.Errno(0xe)\n\tEFBIG       = syscall.Errno(0x1b)\n\tEINTR       = syscall.Errno(0x4)\n\tEINVAL      = syscall.Errno(0x16)\n\tEIO         = syscall.Errno(0x5)\n\tEISDIR      = syscall.Errno(0x15)\n\tEMFILE      = syscall.Errno(0x18)\n\tEMLINK      = syscall.Errno(0x1f)\n\tENFILE      = syscall.Errno(0x17)\n\tENODEV      = syscall.Errno(0x13)\n\tENOENT      = syscall.Errno(0x2)\n\tENOEXEC     = syscall.Errno(0x8)\n\tENOMEM      = syscall.Errno(0xc)\n\tENOSPC      = syscall.Errno(0x1c)\n\tENOTBLK     = syscall.Errno(0xf)\n\tENOTDIR     = syscall.Errno(0x14)\n\tENOTTY      = syscall.Errno(0x19)\n\tENXIO       = syscall.Errno(0x6)\n\tEPERM       = syscall.Errno(0x1)\n\tEPIPE       = syscall.Errno(0x20)\n\tERANGE      = syscall.Errno(0x22)\n\tEROFS       = syscall.Errno(0x1e)\n\tESPIPE      = syscall.Errno(0x1d)\n\tESRCH       = syscall.Errno(0x3)\n\tETXTBSY     = syscall.Errno(0x1a)\n\tEWOULDBLOCK = syscall.Errno(0xb)\n\tEXDEV       = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT = syscall.Signal(0x6)\n\tSIGALRM = syscall.Signal(0xe)\n\tSIGFPE  = syscall.Signal(0x8)\n\tSIGHUP  = syscall.Signal(0x1)\n\tSIGILL  = syscall.Signal(0x4)\n\tSIGINT  = syscall.Signal(0x2)\n\tSIGIOT  = syscall.Signal(0x6)\n\tSIGKILL = syscall.Signal(0x9)\n\tSIGPIPE = syscall.Signal(0xd)\n\tSIGQUIT = syscall.Signal(0x3)\n\tSIGSEGV = syscall.Signal(0xb)\n\tSIGTERM = syscall.Signal(0xf)\n\tSIGTRAP = syscall.Signal(0x5)\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_386.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/386/include -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/386/include -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80041270\n\tBLKBSZSET                        = 0x40041271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80041272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFP_XSTATE_MAGIC2                 = 0x46505845\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0xc\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0xd\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0xe\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_32BIT                        = 0x40\n\tMAP_ABOVE4G                      = 0x80\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc03c4d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x8000\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8008743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40087446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x400c744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40087447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETFPXREGS                = 0x12\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETFPXREGS                = 0x13\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x21\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8004700d\n\tRTC_EPOCH_SET                    = 0x4004700e\n\tRTC_IRQP_READ                    = 0x8004700b\n\tRTC_IRQP_SET                     = 0x4004700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x801c7011\n\tRTC_PLL_SET                      = 0x401c7012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x400854d5\n\tTUNDETACHFILTER                  = 0x400854d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x800854db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x20\n\tX86_FXSR_MAGIC                   = 0x0\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/amd64/include -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/amd64/include -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFP_XSTATE_MAGIC2                 = 0x46505845\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_32BIT                        = 0x40\n\tMAP_ABOVE4G                      = 0x80\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTRACE_ARCH_PRCTL                = 0x1e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETFPXREGS                = 0x12\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETFPXREGS                = 0x13\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x21\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_arm.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/arm/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/arm/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80041270\n\tBLKBSZSET                        = 0x40041271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80041272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0xc\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0xd\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0xe\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x10000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x20000\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8008743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40087446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x400c744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40087447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTRACE_GETCRUNCHREGS             = 0x19\n\tPTRACE_GETFDPIC                  = 0x1f\n\tPTRACE_GETFDPIC_EXEC             = 0x0\n\tPTRACE_GETFDPIC_INTERP           = 0x1\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETHBPREGS                = 0x1d\n\tPTRACE_GETVFPREGS                = 0x1b\n\tPTRACE_GETWMMXREGS               = 0x12\n\tPTRACE_GET_THREAD_AREA           = 0x16\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_SETCRUNCHREGS             = 0x1a\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETHBPREGS                = 0x1e\n\tPTRACE_SETVFPREGS                = 0x1c\n\tPTRACE_SETWMMXREGS               = 0x13\n\tPTRACE_SET_SYSCALL               = 0x17\n\tPT_DATA_ADDR                     = 0x10004\n\tPT_TEXT_ADDR                     = 0x10000\n\tPT_TEXT_END_ADDR                 = 0x10008\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8004700d\n\tRTC_EPOCH_SET                    = 0x4004700e\n\tRTC_IRQP_READ                    = 0x8004700b\n\tRTC_IRQP_SET                     = 0x4004700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x801c7011\n\tRTC_PLL_SET                      = 0x401c7012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x400854d5\n\tTUNDETACHFILTER                  = 0x400854d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x800854db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/arm64/include -fsigned-char\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tESR_MAGIC                        = 0x45535201\n\tEXTPROC                          = 0x10000\n\tEXTRA_MAGIC                      = 0x45585401\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFPMR_MAGIC                       = 0x46504d52\n\tFPSIMD_MAGIC                     = 0x46508001\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x10000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPROT_BTI                         = 0x10\n\tPROT_MTE                         = 0x20\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTRACE_PEEKMTETAGS               = 0x21\n\tPTRACE_POKEMTETAGS               = 0x22\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tSVE_MAGIC                        = 0x53564501\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTPIDR2_MAGIC                     = 0x54504902\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\tZA_MAGIC                         = 0x54366345\n\tZT_MAGIC                         = 0x5a544e01\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/loong64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build loong64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/loong64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFPU_CTX_MAGIC                    = 0x46505501\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tLASX_CTX_MAGIC                   = 0x41535801\n\tLBT_CTX_MAGIC                    = 0x42540001\n\tLSX_CTX_MAGIC                    = 0x53580001\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mips/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mips/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40041270\n\tBLKBSZSET                        = 0x80041271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40041272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x21\n\tF_GETLK64                        = 0x21\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x22\n\tF_SETLK64                        = 0x22\n\tF_SETLKW                         = 0x23\n\tF_SETLKW64                       = 0x23\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x2000\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4008743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80087446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x800c744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80087447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4004700d\n\tRTC_EPOCH_SET                    = 0x8004700e\n\tRTC_IRQP_READ                    = 0x4004700b\n\tRTC_IRQP_SET                     = 0x8004700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x401c7011\n\tRTC_PLL_SET                      = 0x801c7012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x800854d5\n\tTUNDETACHFILTER                  = 0x800854d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x400854db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mips64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0xe\n\tF_GETLK64                        = 0xe\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mips64le/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64le && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64le/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0xe\n\tF_GETLK64                        = 0xe\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mipsle/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mipsle && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mipsle/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40041270\n\tBLKBSZSET                        = 0x80041271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40041272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x21\n\tF_GETLK64                        = 0x21\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x22\n\tF_SETLK64                        = 0x22\n\tF_SETLKW                         = 0x23\n\tF_SETLKW64                       = 0x23\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x2000\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4008743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80087446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x800c744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80087447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4004700d\n\tRTC_EPOCH_SET                    = 0x8004700e\n\tRTC_IRQP_READ                    = 0x4004700b\n\tRTC_IRQP_SET                     = 0x8004700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x401c7011\n\tRTC_PLL_SET                      = 0x801c7012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x800854d5\n\tTUNDETACHFILTER                  = 0x800854d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x400854db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/ppc/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x17\n\tB115200                          = 0x11\n\tB1152000                         = 0x18\n\tB1500000                         = 0x19\n\tB2000000                         = 0x1a\n\tB230400                          = 0x12\n\tB2500000                         = 0x1b\n\tB3000000                         = 0x1c\n\tB3500000                         = 0x1d\n\tB4000000                         = 0x1e\n\tB460800                          = 0x13\n\tB500000                          = 0x14\n\tB57600                           = 0x10\n\tB576000                          = 0x15\n\tB921600                          = 0x16\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40041270\n\tBLKBSZSET                        = 0x80041271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40041272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1f\n\tBS1                              = 0x8000\n\tBSDLY                            = 0x8000\n\tCBAUD                            = 0xff\n\tCBAUDEX                          = 0x0\n\tCIBAUD                           = 0xff0000\n\tCLOCAL                           = 0x8000\n\tCR1                              = 0x1000\n\tCR2                              = 0x2000\n\tCR3                              = 0x3000\n\tCRDLY                            = 0x3000\n\tCREAD                            = 0x800\n\tCS6                              = 0x100\n\tCS7                              = 0x200\n\tCS8                              = 0x300\n\tCSIZE                            = 0x300\n\tCSTOPB                           = 0x400\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x40\n\tECHOE                            = 0x2\n\tECHOK                            = 0x4\n\tECHOKE                           = 0x1\n\tECHONL                           = 0x10\n\tECHOPRT                          = 0x20\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000000\n\tFF1                              = 0x4000\n\tFFDLY                            = 0x4000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x800000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0xc\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0xd\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0xe\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tISIG                             = 0x80\n\tIUCLC                            = 0x1000\n\tIXOFF                            = 0x400\n\tIXON                             = 0x200\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x80\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x20\n\tNL2                              = 0x200\n\tNL3                              = 0x300\n\tNLDLY                            = 0x300\n\tNOFLSH                           = 0x80000000\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x4\n\tONLCR                            = 0x2\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x20000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x10000\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x1000\n\tPARODD                           = 0x2000\n\tPENDIN                           = 0x20000000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4008743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80087446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x800c744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80087447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPROT_SAO                         = 0x10\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTRACE_GETEVRREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_GETVRREGS                 = 0x12\n\tPTRACE_GETVSRREGS                = 0x1b\n\tPTRACE_GET_DEBUGREG              = 0x19\n\tPTRACE_SETEVRREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SETVRREGS                 = 0x13\n\tPTRACE_SETVSRREGS                = 0x1c\n\tPTRACE_SET_DEBUGREG              = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x100\n\tPTRACE_SYSEMU                    = 0x1d\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x1e\n\tPT_CCR                           = 0x26\n\tPT_CTR                           = 0x23\n\tPT_DAR                           = 0x29\n\tPT_DSCR                          = 0x2c\n\tPT_DSISR                         = 0x2a\n\tPT_FPR0                          = 0x30\n\tPT_FPR31                         = 0x6e\n\tPT_FPSCR                         = 0x71\n\tPT_LNK                           = 0x24\n\tPT_MQ                            = 0x27\n\tPT_MSR                           = 0x21\n\tPT_NIP                           = 0x20\n\tPT_ORIG_R3                       = 0x22\n\tPT_R0                            = 0x0\n\tPT_R1                            = 0x1\n\tPT_R10                           = 0xa\n\tPT_R11                           = 0xb\n\tPT_R12                           = 0xc\n\tPT_R13                           = 0xd\n\tPT_R14                           = 0xe\n\tPT_R15                           = 0xf\n\tPT_R16                           = 0x10\n\tPT_R17                           = 0x11\n\tPT_R18                           = 0x12\n\tPT_R19                           = 0x13\n\tPT_R2                            = 0x2\n\tPT_R20                           = 0x14\n\tPT_R21                           = 0x15\n\tPT_R22                           = 0x16\n\tPT_R23                           = 0x17\n\tPT_R24                           = 0x18\n\tPT_R25                           = 0x19\n\tPT_R26                           = 0x1a\n\tPT_R27                           = 0x1b\n\tPT_R28                           = 0x1c\n\tPT_R29                           = 0x1d\n\tPT_R3                            = 0x3\n\tPT_R30                           = 0x1e\n\tPT_R31                           = 0x1f\n\tPT_R4                            = 0x4\n\tPT_R5                            = 0x5\n\tPT_R6                            = 0x6\n\tPT_R7                            = 0x7\n\tPT_R8                            = 0x8\n\tPT_R9                            = 0x9\n\tPT_REGS_COUNT                    = 0x2c\n\tPT_RESULT                        = 0x2b\n\tPT_TRAP                          = 0x28\n\tPT_XER                           = 0x25\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4004700d\n\tRTC_EPOCH_SET                    = 0x8004700e\n\tRTC_IRQP_READ                    = 0x4004700b\n\tRTC_IRQP_SET                     = 0x8004700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x401c7011\n\tRTC_PLL_SET                      = 0x801c7012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x14\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x15\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x10\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x12\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x12\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x11\n\tSO_SNDTIMEO                      = 0x13\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x13\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x400\n\tTAB2                             = 0x800\n\tTAB3                             = 0xc00\n\tTABDLY                           = 0xc00\n\tTCFLSH                           = 0x2000741f\n\tTCGETA                           = 0x40147417\n\tTCGETS                           = 0x402c7413\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x2000741d\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80147418\n\tTCSETAF                          = 0x8014741c\n\tTCSETAW                          = 0x80147419\n\tTCSETS                           = 0x802c7414\n\tTCSETSF                          = 0x802c7416\n\tTCSETSW                          = 0x802c7415\n\tTCXONC                           = 0x2000741e\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETC                         = 0x40067412\n\tTIOCGETD                         = 0x5424\n\tTIOCGETP                         = 0x40067408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGLTC                         = 0x40067474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_LOOP                       = 0x8000\n\tTIOCM_OUT1                       = 0x2000\n\tTIOCM_OUT2                       = 0x4000\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETC                         = 0x80067411\n\tTIOCSETD                         = 0x5423\n\tTIOCSETN                         = 0x8006740a\n\tTIOCSETP                         = 0x80067409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSLTC                         = 0x80067475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x5412\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x400000\n\tTUNATTACHFILTER                  = 0x800854d5\n\tTUNDETACHFILTER                  = 0x800854d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x400854db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0x10\n\tVEOF                             = 0x4\n\tVEOL                             = 0x6\n\tVEOL2                            = 0x8\n\tVMIN                             = 0x5\n\tVREPRINT                         = 0xb\n\tVSTART                           = 0xd\n\tVSTOP                            = 0xe\n\tVSUSP                            = 0xc\n\tVSWTC                            = 0x9\n\tVT1                              = 0x10000\n\tVTDLY                            = 0x10000\n\tVTIME                            = 0x7\n\tVWERASE                          = 0xa\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4000\n\tXTABS                            = 0xc00\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{58, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x17\n\tB115200                          = 0x11\n\tB1152000                         = 0x18\n\tB1500000                         = 0x19\n\tB2000000                         = 0x1a\n\tB230400                          = 0x12\n\tB2500000                         = 0x1b\n\tB3000000                         = 0x1c\n\tB3500000                         = 0x1d\n\tB4000000                         = 0x1e\n\tB460800                          = 0x13\n\tB500000                          = 0x14\n\tB57600                           = 0x10\n\tB576000                          = 0x15\n\tB921600                          = 0x16\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1f\n\tBS1                              = 0x8000\n\tBSDLY                            = 0x8000\n\tCBAUD                            = 0xff\n\tCBAUDEX                          = 0x0\n\tCIBAUD                           = 0xff0000\n\tCLOCAL                           = 0x8000\n\tCR1                              = 0x1000\n\tCR2                              = 0x2000\n\tCR3                              = 0x3000\n\tCRDLY                            = 0x3000\n\tCREAD                            = 0x800\n\tCS6                              = 0x100\n\tCS7                              = 0x200\n\tCS8                              = 0x300\n\tCSIZE                            = 0x300\n\tCSTOPB                           = 0x400\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x40\n\tECHOE                            = 0x2\n\tECHOK                            = 0x4\n\tECHOKE                           = 0x1\n\tECHONL                           = 0x10\n\tECHOPRT                          = 0x20\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000000\n\tFF1                              = 0x4000\n\tFFDLY                            = 0x4000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x800000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tISIG                             = 0x80\n\tIUCLC                            = 0x1000\n\tIXOFF                            = 0x400\n\tIXON                             = 0x200\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x80\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNL2                              = 0x200\n\tNL3                              = 0x300\n\tNLDLY                            = 0x300\n\tNOFLSH                           = 0x80000000\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x4\n\tONLCR                            = 0x2\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x20000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x1000\n\tPARODD                           = 0x2000\n\tPENDIN                           = 0x20000000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPROT_SAO                         = 0x10\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTRACE_GETEVRREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_GETVRREGS                 = 0x12\n\tPTRACE_GETVSRREGS                = 0x1b\n\tPTRACE_GET_DEBUGREG              = 0x19\n\tPTRACE_SETEVRREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SETVRREGS                 = 0x13\n\tPTRACE_SETVSRREGS                = 0x1c\n\tPTRACE_SET_DEBUGREG              = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x100\n\tPTRACE_SYSEMU                    = 0x1d\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x1e\n\tPT_CCR                           = 0x26\n\tPT_CTR                           = 0x23\n\tPT_DAR                           = 0x29\n\tPT_DSCR                          = 0x2c\n\tPT_DSISR                         = 0x2a\n\tPT_FPR0                          = 0x30\n\tPT_FPSCR                         = 0x50\n\tPT_LNK                           = 0x24\n\tPT_MSR                           = 0x21\n\tPT_NIP                           = 0x20\n\tPT_ORIG_R3                       = 0x22\n\tPT_R0                            = 0x0\n\tPT_R1                            = 0x1\n\tPT_R10                           = 0xa\n\tPT_R11                           = 0xb\n\tPT_R12                           = 0xc\n\tPT_R13                           = 0xd\n\tPT_R14                           = 0xe\n\tPT_R15                           = 0xf\n\tPT_R16                           = 0x10\n\tPT_R17                           = 0x11\n\tPT_R18                           = 0x12\n\tPT_R19                           = 0x13\n\tPT_R2                            = 0x2\n\tPT_R20                           = 0x14\n\tPT_R21                           = 0x15\n\tPT_R22                           = 0x16\n\tPT_R23                           = 0x17\n\tPT_R24                           = 0x18\n\tPT_R25                           = 0x19\n\tPT_R26                           = 0x1a\n\tPT_R27                           = 0x1b\n\tPT_R28                           = 0x1c\n\tPT_R29                           = 0x1d\n\tPT_R3                            = 0x3\n\tPT_R30                           = 0x1e\n\tPT_R31                           = 0x1f\n\tPT_R4                            = 0x4\n\tPT_R5                            = 0x5\n\tPT_R6                            = 0x6\n\tPT_R7                            = 0x7\n\tPT_R8                            = 0x8\n\tPT_R9                            = 0x9\n\tPT_REGS_COUNT                    = 0x2c\n\tPT_RESULT                        = 0x2b\n\tPT_SOFTE                         = 0x27\n\tPT_TRAP                          = 0x28\n\tPT_VR0                           = 0x52\n\tPT_VRSAVE                        = 0x94\n\tPT_VSCR                          = 0x93\n\tPT_VSR0                          = 0x96\n\tPT_VSR31                         = 0xd4\n\tPT_XER                           = 0x25\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x14\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x15\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x10\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x12\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x12\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x11\n\tSO_SNDTIMEO                      = 0x13\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x13\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x400\n\tTAB2                             = 0x800\n\tTAB3                             = 0xc00\n\tTABDLY                           = 0xc00\n\tTCFLSH                           = 0x2000741f\n\tTCGETA                           = 0x40147417\n\tTCGETS                           = 0x402c7413\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x2000741d\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80147418\n\tTCSETAF                          = 0x8014741c\n\tTCSETAW                          = 0x80147419\n\tTCSETS                           = 0x802c7414\n\tTCSETSF                          = 0x802c7416\n\tTCSETSW                          = 0x802c7415\n\tTCXONC                           = 0x2000741e\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETC                         = 0x40067412\n\tTIOCGETD                         = 0x5424\n\tTIOCGETP                         = 0x40067408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGLTC                         = 0x40067474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_LOOP                       = 0x8000\n\tTIOCM_OUT1                       = 0x2000\n\tTIOCM_OUT2                       = 0x4000\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETC                         = 0x80067411\n\tTIOCSETD                         = 0x5423\n\tTIOCSETN                         = 0x8006740a\n\tTIOCSETP                         = 0x80067409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSLTC                         = 0x80067475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x5412\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x400000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0x10\n\tVEOF                             = 0x4\n\tVEOL                             = 0x6\n\tVEOL2                            = 0x8\n\tVMIN                             = 0x5\n\tVREPRINT                         = 0xb\n\tVSTART                           = 0xd\n\tVSTOP                            = 0xe\n\tVSUSP                            = 0xc\n\tVSWTC                            = 0x9\n\tVT1                              = 0x10000\n\tVTDLY                            = 0x10000\n\tVTIME                            = 0x7\n\tVWERASE                          = 0xa\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4000\n\tXTABS                            = 0xc00\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{58, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64le/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64le && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64le/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x17\n\tB115200                          = 0x11\n\tB1152000                         = 0x18\n\tB1500000                         = 0x19\n\tB2000000                         = 0x1a\n\tB230400                          = 0x12\n\tB2500000                         = 0x1b\n\tB3000000                         = 0x1c\n\tB3500000                         = 0x1d\n\tB4000000                         = 0x1e\n\tB460800                          = 0x13\n\tB500000                          = 0x14\n\tB57600                           = 0x10\n\tB576000                          = 0x15\n\tB921600                          = 0x16\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1f\n\tBS1                              = 0x8000\n\tBSDLY                            = 0x8000\n\tCBAUD                            = 0xff\n\tCBAUDEX                          = 0x0\n\tCIBAUD                           = 0xff0000\n\tCLOCAL                           = 0x8000\n\tCR1                              = 0x1000\n\tCR2                              = 0x2000\n\tCR3                              = 0x3000\n\tCRDLY                            = 0x3000\n\tCREAD                            = 0x800\n\tCS6                              = 0x100\n\tCS7                              = 0x200\n\tCS8                              = 0x300\n\tCSIZE                            = 0x300\n\tCSTOPB                           = 0x400\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x40\n\tECHOE                            = 0x2\n\tECHOK                            = 0x4\n\tECHOKE                           = 0x1\n\tECHONL                           = 0x10\n\tECHOPRT                          = 0x20\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000000\n\tFF1                              = 0x4000\n\tFFDLY                            = 0x4000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x800000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tISIG                             = 0x80\n\tIUCLC                            = 0x1000\n\tIXOFF                            = 0x400\n\tIXON                             = 0x200\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x80\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNL2                              = 0x200\n\tNL3                              = 0x300\n\tNLDLY                            = 0x300\n\tNOFLSH                           = 0x80000000\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x4\n\tONLCR                            = 0x2\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x20000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x1000\n\tPARODD                           = 0x2000\n\tPENDIN                           = 0x20000000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPROT_SAO                         = 0x10\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTRACE_GETEVRREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_GETVRREGS                 = 0x12\n\tPTRACE_GETVSRREGS                = 0x1b\n\tPTRACE_GET_DEBUGREG              = 0x19\n\tPTRACE_SETEVRREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SETVRREGS                 = 0x13\n\tPTRACE_SETVSRREGS                = 0x1c\n\tPTRACE_SET_DEBUGREG              = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x100\n\tPTRACE_SYSEMU                    = 0x1d\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x1e\n\tPT_CCR                           = 0x26\n\tPT_CTR                           = 0x23\n\tPT_DAR                           = 0x29\n\tPT_DSCR                          = 0x2c\n\tPT_DSISR                         = 0x2a\n\tPT_FPR0                          = 0x30\n\tPT_FPSCR                         = 0x50\n\tPT_LNK                           = 0x24\n\tPT_MSR                           = 0x21\n\tPT_NIP                           = 0x20\n\tPT_ORIG_R3                       = 0x22\n\tPT_R0                            = 0x0\n\tPT_R1                            = 0x1\n\tPT_R10                           = 0xa\n\tPT_R11                           = 0xb\n\tPT_R12                           = 0xc\n\tPT_R13                           = 0xd\n\tPT_R14                           = 0xe\n\tPT_R15                           = 0xf\n\tPT_R16                           = 0x10\n\tPT_R17                           = 0x11\n\tPT_R18                           = 0x12\n\tPT_R19                           = 0x13\n\tPT_R2                            = 0x2\n\tPT_R20                           = 0x14\n\tPT_R21                           = 0x15\n\tPT_R22                           = 0x16\n\tPT_R23                           = 0x17\n\tPT_R24                           = 0x18\n\tPT_R25                           = 0x19\n\tPT_R26                           = 0x1a\n\tPT_R27                           = 0x1b\n\tPT_R28                           = 0x1c\n\tPT_R29                           = 0x1d\n\tPT_R3                            = 0x3\n\tPT_R30                           = 0x1e\n\tPT_R31                           = 0x1f\n\tPT_R4                            = 0x4\n\tPT_R5                            = 0x5\n\tPT_R6                            = 0x6\n\tPT_R7                            = 0x7\n\tPT_R8                            = 0x8\n\tPT_R9                            = 0x9\n\tPT_REGS_COUNT                    = 0x2c\n\tPT_RESULT                        = 0x2b\n\tPT_SOFTE                         = 0x27\n\tPT_TRAP                          = 0x28\n\tPT_VR0                           = 0x52\n\tPT_VRSAVE                        = 0x94\n\tPT_VSCR                          = 0x93\n\tPT_VSR0                          = 0x96\n\tPT_VSR31                         = 0xd4\n\tPT_XER                           = 0x25\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x14\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x15\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x10\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x12\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x12\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x11\n\tSO_SNDTIMEO                      = 0x13\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x13\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x400\n\tTAB2                             = 0x800\n\tTAB3                             = 0xc00\n\tTABDLY                           = 0xc00\n\tTCFLSH                           = 0x2000741f\n\tTCGETA                           = 0x40147417\n\tTCGETS                           = 0x402c7413\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x2000741d\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80147418\n\tTCSETAF                          = 0x8014741c\n\tTCSETAW                          = 0x80147419\n\tTCSETS                           = 0x802c7414\n\tTCSETSF                          = 0x802c7416\n\tTCSETSW                          = 0x802c7415\n\tTCXONC                           = 0x2000741e\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETC                         = 0x40067412\n\tTIOCGETD                         = 0x5424\n\tTIOCGETP                         = 0x40067408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGLTC                         = 0x40067474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_LOOP                       = 0x8000\n\tTIOCM_OUT1                       = 0x2000\n\tTIOCM_OUT2                       = 0x4000\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETC                         = 0x80067411\n\tTIOCSETD                         = 0x5423\n\tTIOCSETN                         = 0x8006740a\n\tTIOCSETP                         = 0x80067409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSLTC                         = 0x80067475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x5412\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x400000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0x10\n\tVEOF                             = 0x4\n\tVEOL                             = 0x6\n\tVEOL2                            = 0x8\n\tVMIN                             = 0x5\n\tVREPRINT                         = 0xb\n\tVSTART                           = 0xd\n\tVSTOP                            = 0xe\n\tVSUSP                            = 0xc\n\tVSWTC                            = 0x9\n\tVT1                              = 0x10000\n\tVTDLY                            = 0x10000\n\tVTIME                            = 0x7\n\tVWERASE                          = 0xa\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4000\n\tXTABS                            = 0xc00\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{58, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/riscv64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/riscv64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTRACE_GETFDPIC                  = 0x21\n\tPTRACE_GETFDPIC_EXEC             = 0x0\n\tPTRACE_GETFDPIC_INTERP           = 0x1\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/s390x/include -fsigned-char\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build s390x && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTRACE_DISABLE_TE                = 0x5010\n\tPTRACE_ENABLE_TE                 = 0x5009\n\tPTRACE_GET_LAST_BREAK            = 0x5006\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_AREA             = 0x5003\n\tPTRACE_PEEKTEXT_AREA             = 0x5002\n\tPTRACE_PEEKUSR_AREA              = 0x5000\n\tPTRACE_PEEK_SYSTEM_CALL          = 0x5007\n\tPTRACE_POKEDATA_AREA             = 0x5005\n\tPTRACE_POKETEXT_AREA             = 0x5004\n\tPTRACE_POKEUSR_AREA              = 0x5001\n\tPTRACE_POKE_SYSTEM_CALL          = 0x5008\n\tPTRACE_PROT                      = 0x15\n\tPTRACE_SINGLEBLOCK               = 0xc\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tPTRACE_TE_ABORT_RAND             = 0x5011\n\tPT_ACR0                          = 0x90\n\tPT_ACR1                          = 0x94\n\tPT_ACR10                         = 0xb8\n\tPT_ACR11                         = 0xbc\n\tPT_ACR12                         = 0xc0\n\tPT_ACR13                         = 0xc4\n\tPT_ACR14                         = 0xc8\n\tPT_ACR15                         = 0xcc\n\tPT_ACR2                          = 0x98\n\tPT_ACR3                          = 0x9c\n\tPT_ACR4                          = 0xa0\n\tPT_ACR5                          = 0xa4\n\tPT_ACR6                          = 0xa8\n\tPT_ACR7                          = 0xac\n\tPT_ACR8                          = 0xb0\n\tPT_ACR9                          = 0xb4\n\tPT_CR_10                         = 0x168\n\tPT_CR_11                         = 0x170\n\tPT_CR_9                          = 0x160\n\tPT_ENDREGS                       = 0x1af\n\tPT_FPC                           = 0xd8\n\tPT_FPR0                          = 0xe0\n\tPT_FPR1                          = 0xe8\n\tPT_FPR10                         = 0x130\n\tPT_FPR11                         = 0x138\n\tPT_FPR12                         = 0x140\n\tPT_FPR13                         = 0x148\n\tPT_FPR14                         = 0x150\n\tPT_FPR15                         = 0x158\n\tPT_FPR2                          = 0xf0\n\tPT_FPR3                          = 0xf8\n\tPT_FPR4                          = 0x100\n\tPT_FPR5                          = 0x108\n\tPT_FPR6                          = 0x110\n\tPT_FPR7                          = 0x118\n\tPT_FPR8                          = 0x120\n\tPT_FPR9                          = 0x128\n\tPT_GPR0                          = 0x10\n\tPT_GPR1                          = 0x18\n\tPT_GPR10                         = 0x60\n\tPT_GPR11                         = 0x68\n\tPT_GPR12                         = 0x70\n\tPT_GPR13                         = 0x78\n\tPT_GPR14                         = 0x80\n\tPT_GPR15                         = 0x88\n\tPT_GPR2                          = 0x20\n\tPT_GPR3                          = 0x28\n\tPT_GPR4                          = 0x30\n\tPT_GPR5                          = 0x38\n\tPT_GPR6                          = 0x40\n\tPT_GPR7                          = 0x48\n\tPT_GPR8                          = 0x50\n\tPT_GPR9                          = 0x58\n\tPT_IEEE_IP                       = 0x1a8\n\tPT_LASTOFF                       = 0x1a8\n\tPT_ORIGGPR2                      = 0xd0\n\tPT_PSWADDR                       = 0x8\n\tPT_PSWMASK                       = 0x0\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/sparc64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build sparc64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/sparc64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tASI_LEON_DFLUSH                  = 0x11\n\tASI_LEON_IFLUSH                  = 0x10\n\tASI_LEON_MMUFLUSH                = 0x18\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x400000\n\tEFD_NONBLOCK                     = 0x4000\n\tEMT_TAGOVF                       = 0x1\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x400000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x7\n\tF_GETLK64                        = 0x7\n\tF_GETOWN                         = 0x5\n\tF_RDLCK                          = 0x1\n\tF_SETLK                          = 0x8\n\tF_SETLK64                        = 0x8\n\tF_SETLKW                         = 0x9\n\tF_SETLKW64                       = 0x9\n\tF_SETOWN                         = 0x6\n\tF_UNLCK                          = 0x3\n\tF_WRLCK                          = 0x2\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x400000\n\tIN_NONBLOCK                      = 0x4000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x200\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x100\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_RENAME                       = 0x20\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x40\n\tO_CLOEXEC                        = 0x400000\n\tO_CREAT                          = 0x200\n\tO_DIRECT                         = 0x100000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x2000\n\tO_EXCL                           = 0x800\n\tO_FSYNC                          = 0x802000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x4004\n\tO_NOATIME                        = 0x200000\n\tO_NOCTTY                         = 0x8000\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x4000\n\tO_PATH                           = 0x1000000\n\tO_RSYNC                          = 0x802000\n\tO_SYNC                           = 0x802000\n\tO_TMPFILE                        = 0x2010000\n\tO_TRUNC                          = 0x400\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTRACE_GETFPAREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETFPREGS64               = 0x19\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_READDATA                  = 0x10\n\tPTRACE_READTEXT                  = 0x12\n\tPTRACE_SETFPAREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETFPREGS64               = 0x1a\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SPARC_DETACH              = 0xb\n\tPTRACE_WRITEDATA                 = 0x11\n\tPTRACE_WRITETEXT                 = 0x13\n\tPT_FP                            = 0x48\n\tPT_G0                            = 0x10\n\tPT_G1                            = 0x14\n\tPT_G2                            = 0x18\n\tPT_G3                            = 0x1c\n\tPT_G4                            = 0x20\n\tPT_G5                            = 0x24\n\tPT_G6                            = 0x28\n\tPT_G7                            = 0x2c\n\tPT_I0                            = 0x30\n\tPT_I1                            = 0x34\n\tPT_I2                            = 0x38\n\tPT_I3                            = 0x3c\n\tPT_I4                            = 0x40\n\tPT_I5                            = 0x44\n\tPT_I6                            = 0x48\n\tPT_I7                            = 0x4c\n\tPT_NPC                           = 0x8\n\tPT_PC                            = 0x4\n\tPT_PSR                           = 0x0\n\tPT_REGS_MAGIC                    = 0x57ac6c00\n\tPT_TNPC                          = 0x90\n\tPT_TPC                           = 0x88\n\tPT_TSTATE                        = 0x80\n\tPT_V9_FP                         = 0x70\n\tPT_V9_G0                         = 0x0\n\tPT_V9_G1                         = 0x8\n\tPT_V9_G2                         = 0x10\n\tPT_V9_G3                         = 0x18\n\tPT_V9_G4                         = 0x20\n\tPT_V9_G5                         = 0x28\n\tPT_V9_G6                         = 0x30\n\tPT_V9_G7                         = 0x38\n\tPT_V9_I0                         = 0x40\n\tPT_V9_I1                         = 0x48\n\tPT_V9_I2                         = 0x50\n\tPT_V9_I3                         = 0x58\n\tPT_V9_I4                         = 0x60\n\tPT_V9_I5                         = 0x68\n\tPT_V9_I6                         = 0x70\n\tPT_V9_I7                         = 0x78\n\tPT_V9_MAGIC                      = 0x9c\n\tPT_V9_TNPC                       = 0x90\n\tPT_V9_TPC                        = 0x88\n\tPT_V9_TSTATE                     = 0x80\n\tPT_V9_Y                          = 0x98\n\tPT_WIM                           = 0x10\n\tPT_Y                             = 0xc\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x6\n\tRLIMIT_NPROC                     = 0x7\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_TIMESTAMPING                 = 0x23\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x38\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3c\n\tSCM_TIMESTAMPNS                  = 0x21\n\tSCM_TXTIME                       = 0x3f\n\tSCM_WIFI_STATUS                  = 0x25\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x400000\n\tSFD_NONBLOCK                     = 0x4000\n\tSF_FP                            = 0x38\n\tSF_I0                            = 0x20\n\tSF_I1                            = 0x24\n\tSF_I2                            = 0x28\n\tSF_I3                            = 0x2c\n\tSF_I4                            = 0x30\n\tSF_I5                            = 0x34\n\tSF_L0                            = 0x0\n\tSF_L1                            = 0x4\n\tSF_L2                            = 0x8\n\tSF_L3                            = 0xc\n\tSF_L4                            = 0x10\n\tSF_L5                            = 0x14\n\tSF_L6                            = 0x18\n\tSF_L7                            = 0x1c\n\tSF_PC                            = 0x3c\n\tSF_RETP                          = 0x40\n\tSF_V9_FP                         = 0x70\n\tSF_V9_I0                         = 0x40\n\tSF_V9_I1                         = 0x48\n\tSF_V9_I2                         = 0x50\n\tSF_V9_I3                         = 0x58\n\tSF_V9_I4                         = 0x60\n\tSF_V9_I5                         = 0x68\n\tSF_V9_L0                         = 0x0\n\tSF_V9_L1                         = 0x8\n\tSF_V9_L2                         = 0x10\n\tSF_V9_L3                         = 0x18\n\tSF_V9_L4                         = 0x20\n\tSF_V9_L5                         = 0x28\n\tSF_V9_L6                         = 0x30\n\tSF_V9_L7                         = 0x38\n\tSF_V9_PC                         = 0x78\n\tSF_V9_RETP                       = 0x80\n\tSF_V9_XARG0                      = 0x88\n\tSF_V9_XARG1                      = 0x90\n\tSF_V9_XARG2                      = 0x98\n\tSF_V9_XARG3                      = 0xa0\n\tSF_V9_XARG4                      = 0xa8\n\tSF_V9_XARG5                      = 0xb0\n\tSF_V9_XXARG                      = 0xb8\n\tSF_XARG0                         = 0x44\n\tSF_XARG1                         = 0x48\n\tSF_XARG2                         = 0x4c\n\tSF_XARG3                         = 0x50\n\tSF_XARG4                         = 0x54\n\tSF_XARG5                         = 0x58\n\tSF_XXARG                         = 0x5c\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x400000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x4000\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x8000\n\tSO_ATTACH_BPF                    = 0x34\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x35\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x36\n\tSO_BINDTODEVICE                  = 0xd\n\tSO_BINDTOIFINDEX                 = 0x41\n\tSO_BPF_EXTENSIONS                = 0x32\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0x400\n\tSO_BUF_LOCK                      = 0x51\n\tSO_BUSY_POLL                     = 0x30\n\tSO_BUSY_POLL_BUDGET              = 0x49\n\tSO_CNX_ADVICE                    = 0x37\n\tSO_COOKIE                        = 0x3b\n\tSO_DETACH_REUSEPORT_BPF          = 0x47\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x33\n\tSO_INCOMING_NAPI_ID              = 0x3a\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x28\n\tSO_MARK                          = 0x22\n\tSO_MAX_PACING_RATE               = 0x31\n\tSO_MEMINFO                       = 0x39\n\tSO_NETNS_COOKIE                  = 0x50\n\tSO_NOFCS                         = 0x27\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x2\n\tSO_PASSPIDFD                     = 0x55\n\tSO_PASSSEC                       = 0x1f\n\tSO_PEEK_OFF                      = 0x26\n\tSO_PEERCRED                      = 0x40\n\tSO_PEERGROUPS                    = 0x3d\n\tSO_PEERPIDFD                     = 0x56\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x48\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x100b\n\tSO_RCVLOWAT                      = 0x800\n\tSO_RCVMARK                       = 0x54\n\tSO_RCVTIMEO                      = 0x2000\n\tSO_RCVTIMEO_NEW                  = 0x44\n\tSO_RCVTIMEO_OLD                  = 0x2000\n\tSO_RESERVE_MEM                   = 0x52\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x24\n\tSO_SECURITY_AUTHENTICATION       = 0x5001\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x5004\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002\n\tSO_SELECT_ERR_QUEUE              = 0x29\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x100a\n\tSO_SNDLOWAT                      = 0x1000\n\tSO_SNDTIMEO                      = 0x4000\n\tSO_SNDTIMEO_NEW                  = 0x45\n\tSO_SNDTIMEO_OLD                  = 0x4000\n\tSO_TIMESTAMPING                  = 0x23\n\tSO_TIMESTAMPING_NEW              = 0x43\n\tSO_TIMESTAMPING_OLD              = 0x23\n\tSO_TIMESTAMPNS                   = 0x21\n\tSO_TIMESTAMPNS_NEW               = 0x42\n\tSO_TIMESTAMPNS_OLD               = 0x21\n\tSO_TIMESTAMP_NEW                 = 0x46\n\tSO_TXREHASH                      = 0x53\n\tSO_TXTIME                        = 0x3f\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x25\n\tSO_ZEROCOPY                      = 0x3e\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x20005407\n\tTCGETA                           = 0x40125401\n\tTCGETS                           = 0x40245408\n\tTCGETS2                          = 0x402c540c\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x20005405\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80125402\n\tTCSETAF                          = 0x80125404\n\tTCSETAW                          = 0x80125403\n\tTCSETS                           = 0x80245409\n\tTCSETS2                          = 0x802c540d\n\tTCSETSF                          = 0x8024540b\n\tTCSETSF2                         = 0x802c540f\n\tTCSETSW                          = 0x8024540a\n\tTCSETSW2                         = 0x802c540e\n\tTCXONC                           = 0x20005406\n\tTFD_CLOEXEC                      = 0x400000\n\tTFD_NONBLOCK                     = 0x4000\n\tTIOCCBRK                         = 0x2000747a\n\tTIOCCONS                         = 0x20007424\n\tTIOCEXCL                         = 0x2000740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x40047400\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285443\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x40047483\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40047486\n\tTIOCGPTPEER                      = 0x20007489\n\tTIOCGRS485                       = 0x40205441\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x40047485\n\tTIOCGSOFTCAR                     = 0x40047464\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x8004746b\n\tTIOCMBIS                         = 0x8004746c\n\tTIOCMGET                         = 0x4004746a\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x8004746d\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x20007471\n\tTIOCNXCL                         = 0x2000740e\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x80047470\n\tTIOCSBRK                         = 0x2000747b\n\tTIOCSCTTY                        = 0x20007484\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSETD                         = 0x80047401\n\tTIOCSIG                          = 0x80047488\n\tTIOCSISO7816                     = 0xc0285444\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x80047482\n\tTIOCSPTLCK                       = 0x80047487\n\tTIOCSRS485                       = 0xc0205442\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x80047465\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x80017472\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x20005437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n\t__TIOCFLUSH                      = 0x80047410\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEADV            = syscall.Errno(0x53)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEALREADY        = syscall.Errno(0x25)\n\tEBADE           = syscall.Errno(0x66)\n\tEBADFD          = syscall.Errno(0x5d)\n\tEBADMSG         = syscall.Errno(0x4c)\n\tEBADR           = syscall.Errno(0x67)\n\tEBADRQC         = syscall.Errno(0x6a)\n\tEBADSLT         = syscall.Errno(0x6b)\n\tEBFONT          = syscall.Errno(0x6d)\n\tECANCELED       = syscall.Errno(0x7f)\n\tECHRNG          = syscall.Errno(0x5e)\n\tECOMM           = syscall.Errno(0x55)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0x4e)\n\tEDEADLOCK       = syscall.Errno(0x6c)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOTDOT         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEHWPOISON       = syscall.Errno(0x87)\n\tEIDRM           = syscall.Errno(0x4d)\n\tEILSEQ          = syscall.Errno(0x7a)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x81)\n\tEKEYREJECTED    = syscall.Errno(0x83)\n\tEKEYREVOKED     = syscall.Errno(0x82)\n\tEL2HLT          = syscall.Errno(0x65)\n\tEL2NSYNC        = syscall.Errno(0x5f)\n\tEL3HLT          = syscall.Errno(0x60)\n\tEL3RST          = syscall.Errno(0x61)\n\tELIBACC         = syscall.Errno(0x72)\n\tELIBBAD         = syscall.Errno(0x70)\n\tELIBEXEC        = syscall.Errno(0x6e)\n\tELIBMAX         = syscall.Errno(0x7b)\n\tELIBSCN         = syscall.Errno(0x7c)\n\tELNRNG          = syscall.Errno(0x62)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x7e)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x57)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENOANO          = syscall.Errno(0x69)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENOCSI          = syscall.Errno(0x64)\n\tENODATA         = syscall.Errno(0x6f)\n\tENOKEY          = syscall.Errno(0x80)\n\tENOLCK          = syscall.Errno(0x4f)\n\tENOLINK         = syscall.Errno(0x52)\n\tENOMEDIUM       = syscall.Errno(0x7d)\n\tENOMSG          = syscall.Errno(0x4b)\n\tENONET          = syscall.Errno(0x50)\n\tENOPKG          = syscall.Errno(0x71)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSR           = syscall.Errno(0x4a)\n\tENOSTR          = syscall.Errno(0x48)\n\tENOSYS          = syscall.Errno(0x5a)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x85)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTUNIQ        = syscall.Errno(0x73)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x5c)\n\tEOWNERDEAD      = syscall.Errno(0x84)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROTO          = syscall.Errno(0x56)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEREMCHG         = syscall.Errno(0x59)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x74)\n\tERFKILL         = syscall.Errno(0x86)\n\tERREMOTE        = syscall.Errno(0x51)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESRMNT          = syscall.Errno(0x54)\n\tESTALE          = syscall.Errno(0x46)\n\tESTRPIPE        = syscall.Errno(0x5b)\n\tETIME           = syscall.Errno(0x49)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x63)\n\tEUSERS          = syscall.Errno(0x44)\n\tEXFULL          = syscall.Errno(0x68)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCLD    = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGLOST   = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x17)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1d)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{57, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{58, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale file handle\"},\n\t{71, \"EREMOTE\", \"object is remote\"},\n\t{72, \"ENOSTR\", \"device not a stream\"},\n\t{73, \"ETIME\", \"timer expired\"},\n\t{74, \"ENOSR\", \"out of streams resources\"},\n\t{75, \"ENOMSG\", \"no message of desired type\"},\n\t{76, \"EBADMSG\", \"bad message\"},\n\t{77, \"EIDRM\", \"identifier removed\"},\n\t{78, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{79, \"ENOLCK\", \"no locks available\"},\n\t{80, \"ENONET\", \"machine is not on the network\"},\n\t{81, \"ERREMOTE\", \"unknown error 81\"},\n\t{82, \"ENOLINK\", \"link has been severed\"},\n\t{83, \"EADV\", \"advertise error\"},\n\t{84, \"ESRMNT\", \"srmount error\"},\n\t{85, \"ECOMM\", \"communication error on send\"},\n\t{86, \"EPROTO\", \"protocol error\"},\n\t{87, \"EMULTIHOP\", \"multihop attempted\"},\n\t{88, \"EDOTDOT\", \"RFS specific error\"},\n\t{89, \"EREMCHG\", \"remote address changed\"},\n\t{90, \"ENOSYS\", \"function not implemented\"},\n\t{91, \"ESTRPIPE\", \"streams pipe error\"},\n\t{92, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{93, \"EBADFD\", \"file descriptor in bad state\"},\n\t{94, \"ECHRNG\", \"channel number out of range\"},\n\t{95, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{96, \"EL3HLT\", \"level 3 halted\"},\n\t{97, \"EL3RST\", \"level 3 reset\"},\n\t{98, \"ELNRNG\", \"link number out of range\"},\n\t{99, \"EUNATCH\", \"protocol driver not attached\"},\n\t{100, \"ENOCSI\", \"no CSI structure available\"},\n\t{101, \"EL2HLT\", \"level 2 halted\"},\n\t{102, \"EBADE\", \"invalid exchange\"},\n\t{103, \"EBADR\", \"invalid request descriptor\"},\n\t{104, \"EXFULL\", \"exchange full\"},\n\t{105, \"ENOANO\", \"no anode\"},\n\t{106, \"EBADRQC\", \"invalid request code\"},\n\t{107, \"EBADSLT\", \"invalid slot\"},\n\t{108, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{109, \"EBFONT\", \"bad font file format\"},\n\t{110, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{111, \"ENODATA\", \"no data available\"},\n\t{112, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{113, \"ENOPKG\", \"package not installed\"},\n\t{114, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{115, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{116, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{123, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{124, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{125, \"ENOMEDIUM\", \"no medium found\"},\n\t{126, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{127, \"ECANCELED\", \"operation canceled\"},\n\t{128, \"ENOKEY\", \"required key not available\"},\n\t{129, \"EKEYEXPIRED\", \"key has expired\"},\n\t{130, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{131, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{132, \"EOWNERDEAD\", \"owner died\"},\n\t{133, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{134, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{135, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGLOST\", \"power failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0084277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x400c427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x800c427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80084272\n\tBIOCSUDPF                         = 0x80084273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tEN_SW_CTL_INF                     = 0x1000\n\tEN_SW_CTL_PREC                    = 0x300\n\tEN_SW_CTL_ROUND                   = 0xc00\n\tEN_SW_DATACHAIN                   = 0x80\n\tEN_SW_DENORM                      = 0x2\n\tEN_SW_INVOP                       = 0x1\n\tEN_SW_OVERFLOW                    = 0x8\n\tEN_SW_PRECLOSS                    = 0x20\n\tEN_SW_UNDERFLOW                   = 0x10\n\tEN_SW_ZERODIV                     = 0x4\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8030720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8030720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc01c697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0946920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0086926\n\tSIOCGIFDATA                       = 0xc0946985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0286936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc01c6987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCINITIFADDR                    = 0xc0446984\n\tSIOCSDRVSPEC                      = 0x801c697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8094691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x801c6988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0946986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x400c7458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80047445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80047444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x4010427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x8010427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80104272\n\tBIOCSUDPF                         = 0x80104273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8038720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8038720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0986920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0106926\n\tSIOCGIFDATA                       = 0xc0986985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0306936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc0286987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCINITIFADDR                    = 0xc0706984\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8098691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x80286988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0986986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80087445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80087444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go",
    "content": "// mkerrors.sh -marm\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -marm _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0084277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x400c427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x800c427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80084272\n\tBIOCSUDPF                         = 0x80084273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8030720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8030720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc01c697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0946920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0086926\n\tSIOCGIFDATA                       = 0xc0946985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0286936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc01c6987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCINITIFADDR                    = 0xc0446984\n\tSIOCSDRVSPEC                      = 0x801c697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8094691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x801c6988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0946986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x400c7458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x48087446\n\tTIOCPTSNAME                       = 0x48087448\n\tTIOCRCVFRAME                      = 0x80047445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80047444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x4010427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x8010427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80104272\n\tBIOCSUDPF                         = 0x80104273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8038720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8038720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0986920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0106926\n\tSIOCGIFDATA                       = 0xc0986985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0306936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc0286987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCINITIFADDR                    = 0xc0706984\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8098691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x80286988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0986986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80087445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80087444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc008427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x400c426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80084277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x800c426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc100445d\n\tDIOCADDRULE                       = 0xccc84404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xccc8441a\n\tDIOCCLRIFFLAG                     = 0xc024445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0d04412\n\tDIOCCLRSTATUS                     = 0xc0244416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1084460\n\tDIOCGETQUEUE                      = 0xc100445f\n\tDIOCGETQUEUES                     = 0xc100445e\n\tDIOCGETRULE                       = 0xccc84407\n\tDIOCGETRULES                      = 0xccc84406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0084454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0084419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0244457\n\tDIOCKILLSRCNODES                  = 0xc068445b\n\tDIOCKILLSTATES                    = 0xc0d04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc084444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0844450\n\tDIOCRADDADDRS                     = 0xc44c4443\n\tDIOCRADDTABLES                    = 0xc44c443d\n\tDIOCRCLRADDRS                     = 0xc44c4442\n\tDIOCRCLRASTATS                    = 0xc44c4448\n\tDIOCRCLRTABLES                    = 0xc44c443c\n\tDIOCRCLRTSTATS                    = 0xc44c4441\n\tDIOCRDELADDRS                     = 0xc44c4444\n\tDIOCRDELTABLES                    = 0xc44c443e\n\tDIOCRGETADDRS                     = 0xc44c4446\n\tDIOCRGETASTATS                    = 0xc44c4447\n\tDIOCRGETTABLES                    = 0xc44c443f\n\tDIOCRGETTSTATS                    = 0xc44c4440\n\tDIOCRINADEFINE                    = 0xc44c444d\n\tDIOCRSETADDRS                     = 0xc44c4445\n\tDIOCRSETTFLAGS                    = 0xc44c444a\n\tDIOCRTSTADDRS                     = 0xc44c4449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0244459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0244414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc00c4451\n\tDIOCXCOMMIT                       = 0xc00c4452\n\tDIOCXROLLBACK                     = 0xc00c4453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80246987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x805c693c\n\tSIOCBRDGADDL                      = 0x805c6949\n\tSIOCBRDGADDS                      = 0x805c6941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x805c693d\n\tSIOCBRDGDELS                      = 0x805c6942\n\tSIOCBRDGFLUSH                     = 0x805c6948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc05c693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc03c6958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc028694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc05c6942\n\tSIOCBRDGRTS                       = 0xc0186943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x805c6955\n\tSIOCBRDGSIFFLGS                   = 0x805c693f\n\tSIOCBRDGSIFPRIO                   = 0x805c6954\n\tSIOCBRDGSIFPROT                   = 0x805c694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80246989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0086924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc024698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc024698d\n\tSIOCGIFGMEMB                      = 0xc024698a\n\tSIOCGIFGROUP                      = 0xc0246988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0386938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8024698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x400c745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go",
    "content": "// mkerrors.sh\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc008427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80084277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc100445d\n\tDIOCADDRULE                       = 0xcce04404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcce0441a\n\tDIOCCLRIFFLAG                     = 0xc024445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0d04412\n\tDIOCCLRSTATUS                     = 0xc0244416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1084460\n\tDIOCGETQUEUE                      = 0xc100445f\n\tDIOCGETQUEUES                     = 0xc100445e\n\tDIOCGETRULE                       = 0xcce04407\n\tDIOCGETRULES                      = 0xcce04406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0084454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0084419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0244457\n\tDIOCKILLSRCNODES                  = 0xc068445b\n\tDIOCKILLSTATES                    = 0xc0d04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc44c4443\n\tDIOCRADDTABLES                    = 0xc44c443d\n\tDIOCRCLRADDRS                     = 0xc44c4442\n\tDIOCRCLRASTATS                    = 0xc44c4448\n\tDIOCRCLRTABLES                    = 0xc44c443c\n\tDIOCRCLRTSTATS                    = 0xc44c4441\n\tDIOCRDELADDRS                     = 0xc44c4444\n\tDIOCRDELTABLES                    = 0xc44c443e\n\tDIOCRGETADDRS                     = 0xc44c4446\n\tDIOCRGETASTATS                    = 0xc44c4447\n\tDIOCRGETTABLES                    = 0xc44c443f\n\tDIOCRGETTSTATS                    = 0xc44c4440\n\tDIOCRINADEFINE                    = 0xc44c444d\n\tDIOCRSETADDRS                     = 0xc44c4445\n\tDIOCRSETTFLAGS                    = 0xc44c444a\n\tDIOCRTSTADDRS                     = 0xc44c4449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0244459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0244414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc00c4451\n\tDIOCXCOMMIT                       = 0xc00c4452\n\tDIOCXROLLBACK                     = 0xc00c4453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80246987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc028694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0186943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80246989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0086924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc024698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc024698d\n\tSIOCGIFGMEMB                      = 0xc024698a\n\tSIOCGIFGROUP                      = 0xc0246988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0386938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8024698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xfffffff\n\tIPV6_FLOWLABEL_MASK               = 0xfffff\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{81920, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xfffffff\n\tIPV6_FLOWLABEL_MASK               = 0xfffff\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && solaris\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_802                        = 0x12\n\tAF_APPLETALK                  = 0x10\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_FILE                       = 0x1\n\tAF_GOSIP                      = 0x16\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x1a\n\tAF_INET_OFFLOAD               = 0x1e\n\tAF_IPX                        = 0x17\n\tAF_KEY                        = 0x1b\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x19\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x20\n\tAF_NBS                        = 0x7\n\tAF_NCA                        = 0x1c\n\tAF_NIT                        = 0x11\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x13\n\tAF_OSINET                     = 0x15\n\tAF_PACKET                     = 0x20\n\tAF_POLICY                     = 0x1d\n\tAF_PUP                        = 0x4\n\tAF_ROUTE                      = 0x18\n\tAF_SNA                        = 0xb\n\tAF_TRILL                      = 0x1f\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tAF_X25                        = 0x14\n\tARPHRD_ARCNET                 = 0x7\n\tARPHRD_ATM                    = 0x10\n\tARPHRD_AX25                   = 0x3\n\tARPHRD_CHAOS                  = 0x5\n\tARPHRD_EETHER                 = 0x2\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FC                     = 0x12\n\tARPHRD_FRAME                  = 0xf\n\tARPHRD_HDLC                   = 0x11\n\tARPHRD_IB                     = 0x20\n\tARPHRD_IEEE802                = 0x6\n\tARPHRD_IPATM                  = 0x13\n\tARPHRD_METRICOM               = 0x17\n\tARPHRD_TUNNEL                 = 0x1f\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB115200                       = 0x12\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB153600                       = 0x13\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB230400                       = 0x14\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB307200                       = 0x15\n\tB38400                        = 0xf\n\tB460800                       = 0x16\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB57600                        = 0x10\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB76800                        = 0x11\n\tB921600                       = 0x17\n\tB9600                         = 0xd\n\tBIOCFLUSH                     = 0x20004268\n\tBIOCGBLEN                     = 0x40044266\n\tBIOCGDLT                      = 0x4004426a\n\tBIOCGDLTLIST                  = -0x3fefbd89\n\tBIOCGDLTLIST32                = -0x3ff7bd89\n\tBIOCGETIF                     = 0x4020426b\n\tBIOCGETLIF                    = 0x4078426b\n\tBIOCGHDRCMPLT                 = 0x40044274\n\tBIOCGRTIMEOUT                 = 0x4010427b\n\tBIOCGRTIMEOUT32               = 0x4008427b\n\tBIOCGSEESENT                  = 0x40044278\n\tBIOCGSTATS                    = 0x4080426f\n\tBIOCGSTATSOLD                 = 0x4008426f\n\tBIOCIMMEDIATE                 = -0x7ffbbd90\n\tBIOCPROMISC                   = 0x20004269\n\tBIOCSBLEN                     = -0x3ffbbd9a\n\tBIOCSDLT                      = -0x7ffbbd8a\n\tBIOCSETF                      = -0x7fefbd99\n\tBIOCSETF32                    = -0x7ff7bd99\n\tBIOCSETIF                     = -0x7fdfbd94\n\tBIOCSETLIF                    = -0x7f87bd94\n\tBIOCSHDRCMPLT                 = -0x7ffbbd8b\n\tBIOCSRTIMEOUT                 = -0x7fefbd86\n\tBIOCSRTIMEOUT32               = -0x7ff7bd86\n\tBIOCSSEESENT                  = -0x7ffbbd87\n\tBIOCSTCPF                     = -0x7fefbd8e\n\tBIOCSUDPF                     = -0x7fefbd8d\n\tBIOCVERSION                   = 0x40044271\n\tBPF_A                         = 0x10\n\tBPF_ABS                       = 0x20\n\tBPF_ADD                       = 0x0\n\tBPF_ALIGNMENT                 = 0x4\n\tBPF_ALU                       = 0x4\n\tBPF_AND                       = 0x50\n\tBPF_B                         = 0x10\n\tBPF_DFLTBUFSIZE               = 0x100000\n\tBPF_DIV                       = 0x30\n\tBPF_H                         = 0x8\n\tBPF_IMM                       = 0x0\n\tBPF_IND                       = 0x40\n\tBPF_JA                        = 0x0\n\tBPF_JEQ                       = 0x10\n\tBPF_JGE                       = 0x30\n\tBPF_JGT                       = 0x20\n\tBPF_JMP                       = 0x5\n\tBPF_JSET                      = 0x40\n\tBPF_K                         = 0x0\n\tBPF_LD                        = 0x0\n\tBPF_LDX                       = 0x1\n\tBPF_LEN                       = 0x80\n\tBPF_LSH                       = 0x60\n\tBPF_MAJOR_VERSION             = 0x1\n\tBPF_MAXBUFSIZE                = 0x1000000\n\tBPF_MAXINSNS                  = 0x200\n\tBPF_MEM                       = 0x60\n\tBPF_MEMWORDS                  = 0x10\n\tBPF_MINBUFSIZE                = 0x20\n\tBPF_MINOR_VERSION             = 0x1\n\tBPF_MISC                      = 0x7\n\tBPF_MSH                       = 0xa0\n\tBPF_MUL                       = 0x20\n\tBPF_NEG                       = 0x80\n\tBPF_OR                        = 0x40\n\tBPF_RELEASE                   = 0x30bb6\n\tBPF_RET                       = 0x6\n\tBPF_RSH                       = 0x70\n\tBPF_ST                        = 0x2\n\tBPF_STX                       = 0x3\n\tBPF_SUB                       = 0x10\n\tBPF_TAX                       = 0x0\n\tBPF_TXA                       = 0x80\n\tBPF_W                         = 0x0\n\tBPF_X                         = 0x8\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x2000\n\tBSDLY                         = 0x2000\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_HIGHRES                 = 0x4\n\tCLOCK_LEVEL                   = 0xa\n\tCLOCK_MONOTONIC               = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID      = 0x5\n\tCLOCK_PROF                    = 0x2\n\tCLOCK_REALTIME                = 0x3\n\tCLOCK_THREAD_CPUTIME_ID       = 0x2\n\tCLOCK_VIRTUAL                 = 0x1\n\tCR0                           = 0x0\n\tCR1                           = 0x200\n\tCR2                           = 0x400\n\tCR3                           = 0x600\n\tCRDLY                         = 0x600\n\tCREAD                         = 0x80\n\tCRTSCTS                       = 0x80000000\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIZE                         = 0x30\n\tCSTART                        = 0x11\n\tCSTATUS                       = 0x14\n\tCSTOP                         = 0x13\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tCSWTCH                        = 0x1a\n\tDIOC                          = 0x6400\n\tDIOCGETB                      = 0x6402\n\tDIOCGETC                      = 0x6401\n\tDIOCGETP                      = 0x6408\n\tDIOCSETE                      = 0x6403\n\tDIOCSETP                      = 0x6409\n\tDLT_AIRONET_HEADER            = 0x78\n\tDLT_APPLE_IP_OVER_IEEE1394    = 0x8a\n\tDLT_ARCNET                    = 0x7\n\tDLT_ARCNET_LINUX              = 0x81\n\tDLT_ATM_CLIP                  = 0x13\n\tDLT_ATM_RFC1483               = 0xb\n\tDLT_AURORA                    = 0x7e\n\tDLT_AX25                      = 0x3\n\tDLT_BACNET_MS_TP              = 0xa5\n\tDLT_CHAOS                     = 0x5\n\tDLT_CISCO_IOS                 = 0x76\n\tDLT_C_HDLC                    = 0x68\n\tDLT_DOCSIS                    = 0x8f\n\tDLT_ECONET                    = 0x73\n\tDLT_EN10MB                    = 0x1\n\tDLT_EN3MB                     = 0x2\n\tDLT_ENC                       = 0x6d\n\tDLT_ERF_ETH                   = 0xaf\n\tDLT_ERF_POS                   = 0xb0\n\tDLT_FDDI                      = 0xa\n\tDLT_FRELAY                    = 0x6b\n\tDLT_GCOM_SERIAL               = 0xad\n\tDLT_GCOM_T1E1                 = 0xac\n\tDLT_GPF_F                     = 0xab\n\tDLT_GPF_T                     = 0xaa\n\tDLT_GPRS_LLC                  = 0xa9\n\tDLT_HDLC                      = 0x10\n\tDLT_HHDLC                     = 0x79\n\tDLT_HIPPI                     = 0xf\n\tDLT_IBM_SN                    = 0x92\n\tDLT_IBM_SP                    = 0x91\n\tDLT_IEEE802                   = 0x6\n\tDLT_IEEE802_11                = 0x69\n\tDLT_IEEE802_11_RADIO          = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS      = 0xa3\n\tDLT_IPNET                     = 0xe2\n\tDLT_IPOIB                     = 0xa2\n\tDLT_IP_OVER_FC                = 0x7a\n\tDLT_JUNIPER_ATM1              = 0x89\n\tDLT_JUNIPER_ATM2              = 0x87\n\tDLT_JUNIPER_CHDLC             = 0xb5\n\tDLT_JUNIPER_ES                = 0x84\n\tDLT_JUNIPER_ETHER             = 0xb2\n\tDLT_JUNIPER_FRELAY            = 0xb4\n\tDLT_JUNIPER_GGSN              = 0x85\n\tDLT_JUNIPER_MFR               = 0x86\n\tDLT_JUNIPER_MLFR              = 0x83\n\tDLT_JUNIPER_MLPPP             = 0x82\n\tDLT_JUNIPER_MONITOR           = 0xa4\n\tDLT_JUNIPER_PIC_PEER          = 0xae\n\tDLT_JUNIPER_PPP               = 0xb3\n\tDLT_JUNIPER_PPPOE             = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM         = 0xa8\n\tDLT_JUNIPER_SERVICES          = 0x88\n\tDLT_LINUX_IRDA                = 0x90\n\tDLT_LINUX_LAPD                = 0xb1\n\tDLT_LINUX_SLL                 = 0x71\n\tDLT_LOOP                      = 0x6c\n\tDLT_LTALK                     = 0x72\n\tDLT_MTP2                      = 0x8c\n\tDLT_MTP2_WITH_PHDR            = 0x8b\n\tDLT_MTP3                      = 0x8d\n\tDLT_NULL                      = 0x0\n\tDLT_PCI_EXP                   = 0x7d\n\tDLT_PFLOG                     = 0x75\n\tDLT_PFSYNC                    = 0x12\n\tDLT_PPP                       = 0x9\n\tDLT_PPP_BSDOS                 = 0xe\n\tDLT_PPP_PPPD                  = 0xa6\n\tDLT_PRISM_HEADER              = 0x77\n\tDLT_PRONET                    = 0x4\n\tDLT_RAW                       = 0xc\n\tDLT_RAWAF_MASK                = 0x2240000\n\tDLT_RIO                       = 0x7c\n\tDLT_SCCP                      = 0x8e\n\tDLT_SLIP                      = 0x8\n\tDLT_SLIP_BSDOS                = 0xd\n\tDLT_SUNATM                    = 0x7b\n\tDLT_SYMANTEC_FIREWALL         = 0x63\n\tDLT_TZSP                      = 0x80\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x200\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x800\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x400\n\tEMPTY_SET                     = 0x0\n\tEMT_CPCOVF                    = 0x1\n\tEQUALITY_CHECK                = 0x0\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tFD_CLOEXEC                    = 0x1\n\tFD_NFDBITS                    = 0x40\n\tFD_SETSIZE                    = 0x10000\n\tFF0                           = 0x0\n\tFF1                           = 0x8000\n\tFFDLY                         = 0x8000\n\tFIORDCHK                      = 0x6603\n\tFLUSHALL                      = 0x1\n\tFLUSHDATA                     = 0x0\n\tFLUSHO                        = 0x2000\n\tF_ALLOCSP                     = 0xa\n\tF_ALLOCSP64                   = 0xa\n\tF_BADFD                       = 0x2e\n\tF_BLKSIZE                     = 0x13\n\tF_BLOCKS                      = 0x12\n\tF_CHKFL                       = 0x8\n\tF_COMPAT                      = 0x8\n\tF_DUP2FD                      = 0x9\n\tF_DUP2FD_CLOEXEC              = 0x24\n\tF_DUPFD                       = 0x0\n\tF_DUPFD_CLOEXEC               = 0x25\n\tF_FLOCK                       = 0x35\n\tF_FLOCK64                     = 0x35\n\tF_FLOCKW                      = 0x36\n\tF_FLOCKW64                    = 0x36\n\tF_FREESP                      = 0xb\n\tF_FREESP64                    = 0xb\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0xe\n\tF_GETLK64                     = 0xe\n\tF_GETOWN                      = 0x17\n\tF_GETXFL                      = 0x2d\n\tF_HASREMOTELOCKS              = 0x1a\n\tF_ISSTREAM                    = 0xd\n\tF_MANDDNY                     = 0x10\n\tF_MDACC                       = 0x20\n\tF_NODNY                       = 0x0\n\tF_NPRIV                       = 0x10\n\tF_OFD_GETLK                   = 0x2f\n\tF_OFD_GETLK64                 = 0x2f\n\tF_OFD_SETLK                   = 0x30\n\tF_OFD_SETLK64                 = 0x30\n\tF_OFD_SETLKW                  = 0x31\n\tF_OFD_SETLKW64                = 0x31\n\tF_PRIV                        = 0xf\n\tF_QUOTACTL                    = 0x11\n\tF_RDACC                       = 0x1\n\tF_RDDNY                       = 0x1\n\tF_RDLCK                       = 0x1\n\tF_REVOKE                      = 0x19\n\tF_RMACC                       = 0x4\n\tF_RMDNY                       = 0x4\n\tF_RWACC                       = 0x3\n\tF_RWDNY                       = 0x3\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0x6\n\tF_SETLK64                     = 0x6\n\tF_SETLK64_NBMAND              = 0x2a\n\tF_SETLKW                      = 0x7\n\tF_SETLKW64                    = 0x7\n\tF_SETLK_NBMAND                = 0x2a\n\tF_SETOWN                      = 0x18\n\tF_SHARE                       = 0x28\n\tF_SHARE_NBMAND                = 0x2b\n\tF_UNLCK                       = 0x3\n\tF_UNLKSYS                     = 0x4\n\tF_UNSHARE                     = 0x29\n\tF_WRACC                       = 0x2\n\tF_WRDNY                       = 0x2\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICMP6_FILTER                  = 0x1\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x8000\n\tIFF_ADDRCONF                  = 0x80000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_ANYCAST                   = 0x400000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x7f203003b5a\n\tIFF_COS_ENABLED               = 0x200000000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEPRECATED                = 0x40000\n\tIFF_DHCPRUNNING               = 0x4000\n\tIFF_DUPLICATE                 = 0x4000000000\n\tIFF_FAILED                    = 0x10000000\n\tIFF_FIXEDMTU                  = 0x1000000000\n\tIFF_INACTIVE                  = 0x40000000\n\tIFF_INTELLIGENT               = 0x400\n\tIFF_IPMP                      = 0x8000000000\n\tIFF_IPMP_CANTCHANGE           = 0x10000000\n\tIFF_IPMP_INVALID              = 0x1ec200080\n\tIFF_IPV4                      = 0x1000000\n\tIFF_IPV6                      = 0x2000000\n\tIFF_L3PROTECT                 = 0x40000000000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x800\n\tIFF_MULTI_BCAST               = 0x1000\n\tIFF_NOACCEPT                  = 0x4000000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOFAILOVER                = 0x8000000\n\tIFF_NOLINKLOCAL               = 0x20000000000\n\tIFF_NOLOCAL                   = 0x20000\n\tIFF_NONUD                     = 0x200000\n\tIFF_NORTEXCH                  = 0x800000\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_NOXMIT                    = 0x10000\n\tIFF_OFFLINE                   = 0x80000000\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PREFERRED                 = 0x400000000\n\tIFF_PRIVATE                   = 0x8000\n\tIFF_PROMISC                   = 0x100\n\tIFF_ROUTER                    = 0x100000\n\tIFF_RUNNING                   = 0x40\n\tIFF_STANDBY                   = 0x20000000\n\tIFF_TEMPORARY                 = 0x800000000\n\tIFF_UNNUMBERED                = 0x2000\n\tIFF_UP                        = 0x1\n\tIFF_VIRTUAL                   = 0x2000000000\n\tIFF_VRRP                      = 0x10000000000\n\tIFF_XRESOLV                   = 0x100000000\n\tIFNAMSIZ                      = 0x10\n\tIFT_1822                      = 0x2\n\tIFT_6TO4                      = 0xca\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_IPV4                      = 0xc8\n\tIFT_IPV6                      = 0xc9\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x2000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_AUTOCONF_MASK              = 0xffff0000\n\tIN_AUTOCONF_NET               = 0xa9fe0000\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_CLASSE_NET                 = 0xffffffff\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_PRIVATE12_MASK             = 0xfff00000\n\tIN_PRIVATE12_NET              = 0xac100000\n\tIN_PRIVATE16_MASK             = 0xffff0000\n\tIN_PRIVATE16_NET              = 0xc0a80000\n\tIN_PRIVATE8_MASK              = 0xff000000\n\tIN_PRIVATE8_NET               = 0xa000000\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_ENCAP                 = 0x4\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_HELLO                 = 0x3f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_ND                    = 0x4d\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_OSPF                  = 0x59\n\tIPPROTO_PIM                   = 0x67\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADD_MEMBERSHIP           = 0x9\n\tIPV6_BOUND_IF                 = 0x41\n\tIPV6_CHECKSUM                 = 0x18\n\tIPV6_DONTFRAG                 = 0x21\n\tIPV6_DROP_MEMBERSHIP          = 0xa\n\tIPV6_DSTOPTS                  = 0xf\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffff0f00\n\tIPV6_FLOWINFO_TCLASS          = 0xf00f\n\tIPV6_HOPLIMIT                 = 0xc\n\tIPV6_HOPOPTS                  = 0xe\n\tIPV6_JOIN_GROUP               = 0x9\n\tIPV6_LEAVE_GROUP              = 0xa\n\tIPV6_MULTICAST_HOPS           = 0x7\n\tIPV6_MULTICAST_IF             = 0x6\n\tIPV6_MULTICAST_LOOP           = 0x8\n\tIPV6_NEXTHOP                  = 0xd\n\tIPV6_PAD1_OPT                 = 0x0\n\tIPV6_PATHMTU                  = 0x25\n\tIPV6_PKTINFO                  = 0xb\n\tIPV6_PREFER_SRC_CGA           = 0x20\n\tIPV6_PREFER_SRC_CGADEFAULT    = 0x10\n\tIPV6_PREFER_SRC_CGAMASK       = 0x30\n\tIPV6_PREFER_SRC_COA           = 0x2\n\tIPV6_PREFER_SRC_DEFAULT       = 0x15\n\tIPV6_PREFER_SRC_HOME          = 0x1\n\tIPV6_PREFER_SRC_MASK          = 0x3f\n\tIPV6_PREFER_SRC_MIPDEFAULT    = 0x1\n\tIPV6_PREFER_SRC_MIPMASK       = 0x3\n\tIPV6_PREFER_SRC_NONCGA        = 0x10\n\tIPV6_PREFER_SRC_PUBLIC        = 0x4\n\tIPV6_PREFER_SRC_TMP           = 0x8\n\tIPV6_PREFER_SRC_TMPDEFAULT    = 0x4\n\tIPV6_PREFER_SRC_TMPMASK       = 0xc\n\tIPV6_RECVDSTOPTS              = 0x28\n\tIPV6_RECVHOPLIMIT             = 0x13\n\tIPV6_RECVHOPOPTS              = 0x14\n\tIPV6_RECVPATHMTU              = 0x24\n\tIPV6_RECVPKTINFO              = 0x12\n\tIPV6_RECVRTHDR                = 0x16\n\tIPV6_RECVRTHDRDSTOPTS         = 0x17\n\tIPV6_RECVTCLASS               = 0x19\n\tIPV6_RTHDR                    = 0x10\n\tIPV6_RTHDRDSTOPTS             = 0x11\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_SEC_OPT                  = 0x22\n\tIPV6_SRC_PREFERENCES          = 0x23\n\tIPV6_TCLASS                   = 0x26\n\tIPV6_UNICAST_HOPS             = 0x5\n\tIPV6_UNSPEC_SRC               = 0x42\n\tIPV6_USE_MIN_MTU              = 0x20\n\tIPV6_V6ONLY                   = 0x27\n\tIP_ADD_MEMBERSHIP             = 0x13\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x17\n\tIP_BLOCK_SOURCE               = 0x15\n\tIP_BOUND_IF                   = 0x41\n\tIP_BROADCAST                  = 0x106\n\tIP_BROADCAST_TTL              = 0x43\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPINIT_IF                = 0x45\n\tIP_DONTFRAG                   = 0x1b\n\tIP_DONTROUTE                  = 0x105\n\tIP_DROP_MEMBERSHIP            = 0x14\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x18\n\tIP_HDRINCL                    = 0x2\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_IF               = 0x10\n\tIP_MULTICAST_LOOP             = 0x12\n\tIP_MULTICAST_TTL              = 0x11\n\tIP_NEXTHOP                    = 0x19\n\tIP_OPTIONS                    = 0x1\n\tIP_PKTINFO                    = 0x1a\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x9\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVPKTINFO                = 0x1a\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVSLLA                   = 0xa\n\tIP_RECVTOS                    = 0xc\n\tIP_RECVTTL                    = 0xb\n\tIP_RETOPTS                    = 0x8\n\tIP_REUSEADDR                  = 0x104\n\tIP_SEC_OPT                    = 0x22\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x16\n\tIP_UNSPEC_SRC                 = 0x42\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x200\n\tIXANY                         = 0x800\n\tIXOFF                         = 0x1000\n\tIXON                          = 0x400\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_ACCESS_DEFAULT           = 0x6\n\tMADV_ACCESS_LWP               = 0x7\n\tMADV_ACCESS_MANY              = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_FREE                     = 0x5\n\tMADV_NORMAL                   = 0x0\n\tMADV_PURGE                    = 0x9\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_WILLNEED                 = 0x3\n\tMAP_32BIT                     = 0x80\n\tMAP_ALIGN                     = 0x200\n\tMAP_ANON                      = 0x100\n\tMAP_ANONYMOUS                 = 0x100\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x10\n\tMAP_INITDATA                  = 0x800\n\tMAP_NORESERVE                 = 0x40\n\tMAP_PRIVATE                   = 0x2\n\tMAP_RENAME                    = 0x20\n\tMAP_SHARED                    = 0x1\n\tMAP_TEXT                      = 0x400\n\tMAP_TYPE                      = 0xf\n\tMCAST_BLOCK_SOURCE            = 0x2b\n\tMCAST_EXCLUDE                 = 0x2\n\tMCAST_INCLUDE                 = 0x1\n\tMCAST_JOIN_GROUP              = 0x29\n\tMCAST_JOIN_SOURCE_GROUP       = 0x2d\n\tMCAST_LEAVE_GROUP             = 0x2a\n\tMCAST_LEAVE_SOURCE_GROUP      = 0x2e\n\tMCAST_UNBLOCK_SOURCE          = 0x2c\n\tMCL_CURRENT                   = 0x1\n\tMCL_FUTURE                    = 0x2\n\tMSG_CTRUNC                    = 0x10\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_DONTWAIT                  = 0x80\n\tMSG_DUPCTRL                   = 0x800\n\tMSG_EOR                       = 0x8\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_NOSIGNAL                  = 0x200\n\tMSG_NOTIFICATION              = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x20\n\tMSG_WAITALL                   = 0x40\n\tMSG_XPG4_2                    = 0x8000\n\tMS_ASYNC                      = 0x1\n\tMS_INVALIDATE                 = 0x2\n\tMS_OLDSYNC                    = 0x0\n\tMS_SYNC                       = 0x4\n\tM_FLUSH                       = 0x86\n\tNAME_MAX                      = 0xff\n\tNEWDEV                        = 0x1\n\tNFDBITS                       = 0x40\n\tNL0                           = 0x0\n\tNL1                           = 0x100\n\tNLDLY                         = 0x100\n\tNOFLSH                        = 0x80\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tOLDDEV                        = 0x0\n\tONBITSMAJOR                   = 0x7\n\tONBITSMINOR                   = 0x8\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tOPENFAIL                      = -0x1\n\tOPOST                         = 0x1\n\tO_ACCMODE                     = 0x600003\n\tO_APPEND                      = 0x8\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DIRECT                      = 0x2000000\n\tO_DIRECTORY                   = 0x1000000\n\tO_DSYNC                       = 0x40\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x400000\n\tO_LARGEFILE                   = 0x2000\n\tO_NDELAY                      = 0x4\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x20000\n\tO_NOLINKS                     = 0x40000\n\tO_NONBLOCK                    = 0x80\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSYNC                       = 0x8000\n\tO_SEARCH                      = 0x200000\n\tO_SIOCGIFCONF                 = -0x3ff796ec\n\tO_SIOCGLIFCONF                = -0x3fef9688\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_WRONLY                      = 0x1\n\tO_XATTR                       = 0x4000\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x4000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = 0xfffffffffffffffd\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x9\n\tRTAX_NETMASK                  = 0x2\n\tRTAX_SRC                      = 0x8\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTA_NUMBITS                   = 0x9\n\tRTA_SRC                       = 0x100\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_INDIRECT                  = 0x40000\n\tRTF_KERNEL                    = 0x80000\n\tRTF_LLINFO                    = 0x400\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTIRT                   = 0x10000\n\tRTF_PRIVATE                   = 0x2000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_REJECT                    = 0x8\n\tRTF_SETSRC                    = 0x20000\n\tRTF_STATIC                    = 0x800\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTF_ZONE                      = 0x100000\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_CHGADDR                   = 0xf\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_FREEADDR                  = 0x10\n\tRTM_GET                       = 0x4\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_VERSION                   = 0x3\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRT_AWARE                      = 0x1\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tSCM_RIGHTS                    = 0x1010\n\tSCM_TIMESTAMP                 = 0x1013\n\tSCM_UCRED                     = 0x1012\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIG2STR_MAX                   = 0x20\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDRT                     = -0x7fcf8df6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fdb96e0\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELRT                     = -0x7fcf8df5\n\tSIOCDXARP                     = -0x7fff9658\n\tSIOCGARP                      = -0x3fdb96e1\n\tSIOCGDSTINFO                  = -0x3fff965c\n\tSIOCGENADDR                   = -0x3fdf96ab\n\tSIOCGENPSTATS                 = -0x3fdf96c7\n\tSIOCGETLSGCNT                 = -0x3fef8deb\n\tSIOCGETNAME                   = 0x40107334\n\tSIOCGETPEER                   = 0x40107335\n\tSIOCGETPROP                   = -0x3fff8f44\n\tSIOCGETSGCNT                  = -0x3feb8deb\n\tSIOCGETSYNC                   = -0x3fdf96d3\n\tSIOCGETVIFCNT                 = -0x3feb8dec\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fdf96f3\n\tSIOCGIFBRDADDR                = -0x3fdf96e9\n\tSIOCGIFCONF                   = -0x3ff796a4\n\tSIOCGIFDSTADDR                = -0x3fdf96f1\n\tSIOCGIFFLAGS                  = -0x3fdf96ef\n\tSIOCGIFHWADDR                 = -0x3fdf9647\n\tSIOCGIFINDEX                  = -0x3fdf96a6\n\tSIOCGIFMEM                    = -0x3fdf96ed\n\tSIOCGIFMETRIC                 = -0x3fdf96e5\n\tSIOCGIFMTU                    = -0x3fdf96ea\n\tSIOCGIFMUXID                  = -0x3fdf96a8\n\tSIOCGIFNETMASK                = -0x3fdf96e7\n\tSIOCGIFNUM                    = 0x40046957\n\tSIOCGIP6ADDRPOLICY            = -0x3fff965e\n\tSIOCGIPMSFILTER               = -0x3ffb964c\n\tSIOCGLIFADDR                  = -0x3f87968f\n\tSIOCGLIFBINDING               = -0x3f879666\n\tSIOCGLIFBRDADDR               = -0x3f879685\n\tSIOCGLIFCONF                  = -0x3fef965b\n\tSIOCGLIFDADSTATE              = -0x3f879642\n\tSIOCGLIFDSTADDR               = -0x3f87968d\n\tSIOCGLIFFLAGS                 = -0x3f87968b\n\tSIOCGLIFGROUPINFO             = -0x3f4b9663\n\tSIOCGLIFGROUPNAME             = -0x3f879664\n\tSIOCGLIFHWADDR                = -0x3f879640\n\tSIOCGLIFINDEX                 = -0x3f87967b\n\tSIOCGLIFLNKINFO               = -0x3f879674\n\tSIOCGLIFMETRIC                = -0x3f879681\n\tSIOCGLIFMTU                   = -0x3f879686\n\tSIOCGLIFMUXID                 = -0x3f87967d\n\tSIOCGLIFNETMASK               = -0x3f879683\n\tSIOCGLIFNUM                   = -0x3ff3967e\n\tSIOCGLIFSRCOF                 = -0x3fef964f\n\tSIOCGLIFSUBNET                = -0x3f879676\n\tSIOCGLIFTOKEN                 = -0x3f879678\n\tSIOCGLIFUSESRC                = -0x3f879651\n\tSIOCGLIFZONE                  = -0x3f879656\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGMSFILTER                 = -0x3ffb964e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSTAMP                    = -0x3fef9646\n\tSIOCGXARP                     = -0x3fff9659\n\tSIOCIFDETACH                  = -0x7fdf96c8\n\tSIOCILB                       = -0x3ffb9645\n\tSIOCLIFADDIF                  = -0x3f879691\n\tSIOCLIFDELND                  = -0x7f879673\n\tSIOCLIFGETND                  = -0x3f879672\n\tSIOCLIFREMOVEIF               = -0x7f879692\n\tSIOCLIFSETND                  = -0x7f879671\n\tSIOCLOWER                     = -0x7fdf96d7\n\tSIOCSARP                      = -0x7fdb96e2\n\tSIOCSCTPGOPT                  = -0x3fef9653\n\tSIOCSCTPPEELOFF               = -0x3ffb9652\n\tSIOCSCTPSOPT                  = -0x7fef9654\n\tSIOCSENABLESDP                = -0x3ffb9649\n\tSIOCSETPROP                   = -0x7ffb8f43\n\tSIOCSETSYNC                   = -0x7fdf96d4\n\tSIOCSHIWAT                    = -0x7ffb8d00\n\tSIOCSIFADDR                   = -0x7fdf96f4\n\tSIOCSIFBRDADDR                = -0x7fdf96e8\n\tSIOCSIFDSTADDR                = -0x7fdf96f2\n\tSIOCSIFFLAGS                  = -0x7fdf96f0\n\tSIOCSIFINDEX                  = -0x7fdf96a5\n\tSIOCSIFMEM                    = -0x7fdf96ee\n\tSIOCSIFMETRIC                 = -0x7fdf96e4\n\tSIOCSIFMTU                    = -0x7fdf96eb\n\tSIOCSIFMUXID                  = -0x7fdf96a7\n\tSIOCSIFNAME                   = -0x7fdf96b7\n\tSIOCSIFNETMASK                = -0x7fdf96e6\n\tSIOCSIP6ADDRPOLICY            = -0x7fff965d\n\tSIOCSIPMSFILTER               = -0x7ffb964b\n\tSIOCSLGETREQ                  = -0x3fdf96b9\n\tSIOCSLIFADDR                  = -0x7f879690\n\tSIOCSLIFBRDADDR               = -0x7f879684\n\tSIOCSLIFDSTADDR               = -0x7f87968e\n\tSIOCSLIFFLAGS                 = -0x7f87968c\n\tSIOCSLIFGROUPNAME             = -0x7f879665\n\tSIOCSLIFINDEX                 = -0x7f87967a\n\tSIOCSLIFLNKINFO               = -0x7f879675\n\tSIOCSLIFMETRIC                = -0x7f879680\n\tSIOCSLIFMTU                   = -0x7f879687\n\tSIOCSLIFMUXID                 = -0x7f87967c\n\tSIOCSLIFNAME                  = -0x3f87967f\n\tSIOCSLIFNETMASK               = -0x7f879682\n\tSIOCSLIFPREFIX                = -0x3f879641\n\tSIOCSLIFSUBNET                = -0x7f879677\n\tSIOCSLIFTOKEN                 = -0x7f879679\n\tSIOCSLIFUSESRC                = -0x7f879650\n\tSIOCSLIFZONE                  = -0x7f879655\n\tSIOCSLOWAT                    = -0x7ffb8cfe\n\tSIOCSLSTAT                    = -0x7fdf96b8\n\tSIOCSMSFILTER                 = -0x7ffb964d\n\tSIOCSPGRP                     = -0x7ffb8cf8\n\tSIOCSPROMISC                  = -0x7ffb96d0\n\tSIOCSQPTR                     = -0x3ffb9648\n\tSIOCSSDSTATS                  = -0x3fdf96d2\n\tSIOCSSESTATS                  = -0x3fdf96d1\n\tSIOCSXARP                     = -0x7fff965a\n\tSIOCTMYADDR                   = -0x3ff79670\n\tSIOCTMYSITE                   = -0x3ff7966e\n\tSIOCTONLINK                   = -0x3ff7966f\n\tSIOCUPPER                     = -0x7fdf96d8\n\tSIOCX25RCV                    = -0x3fdf96c4\n\tSIOCX25TBL                    = -0x3fdf96c3\n\tSIOCX25XMT                    = -0x3fdf96c5\n\tSIOCXPROTO                    = 0x20007337\n\tSOCK_CLOEXEC                  = 0x80000\n\tSOCK_DGRAM                    = 0x1\n\tSOCK_NDELAY                   = 0x200000\n\tSOCK_NONBLOCK                 = 0x100000\n\tSOCK_RAW                      = 0x4\n\tSOCK_RDM                      = 0x5\n\tSOCK_SEQPACKET                = 0x6\n\tSOCK_STREAM                   = 0x2\n\tSOCK_TYPE_MASK                = 0xffff\n\tSOL_FILTER                    = 0xfffc\n\tSOL_PACKET                    = 0xfffd\n\tSOL_ROUTE                     = 0xfffe\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x80\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_ALL                        = 0x3f\n\tSO_ALLZONES                   = 0x1014\n\tSO_ANON_MLP                   = 0x100a\n\tSO_ATTACH_FILTER              = 0x40000001\n\tSO_BAND                       = 0x4000\n\tSO_BROADCAST                  = 0x20\n\tSO_COPYOPT                    = 0x80000\n\tSO_DEBUG                      = 0x1\n\tSO_DELIM                      = 0x8000\n\tSO_DETACH_FILTER              = 0x40000002\n\tSO_DGRAM_ERRIND               = 0x200\n\tSO_DOMAIN                     = 0x100c\n\tSO_DONTLINGER                 = -0x81\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROPT                     = 0x40000\n\tSO_ERROR                      = 0x1007\n\tSO_EXCLBIND                   = 0x1015\n\tSO_HIWAT                      = 0x10\n\tSO_ISNTTY                     = 0x800\n\tSO_ISTTY                      = 0x400\n\tSO_KEEPALIVE                  = 0x8\n\tSO_LINGER                     = 0x80\n\tSO_LOWAT                      = 0x20\n\tSO_MAC_EXEMPT                 = 0x100b\n\tSO_MAC_IMPLICIT               = 0x1016\n\tSO_MAXBLK                     = 0x100000\n\tSO_MAXPSZ                     = 0x8\n\tSO_MINPSZ                     = 0x4\n\tSO_MREADOFF                   = 0x80\n\tSO_MREADON                    = 0x40\n\tSO_NDELOFF                    = 0x200\n\tSO_NDELON                     = 0x100\n\tSO_NODELIM                    = 0x10000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PROTOTYPE                  = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVPSH                     = 0x100d\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_READOPT                    = 0x1\n\tSO_RECVUCRED                  = 0x400\n\tSO_REUSEADDR                  = 0x4\n\tSO_SECATTR                    = 0x1011\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_STRHOLD                    = 0x20000\n\tSO_TAIL                       = 0x200000\n\tSO_TIMESTAMP                  = 0x1013\n\tSO_TONSTOP                    = 0x2000\n\tSO_TOSTOP                     = 0x1000\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_VRRP                       = 0x1017\n\tSO_WROFF                      = 0x2\n\tS_ENFMT                       = 0x400\n\tS_IAMB                        = 0x1ff\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFDOOR                      = 0xd000\n\tS_IFIFO                       = 0x1000\n\tS_IFLNK                       = 0xa000\n\tS_IFMT                        = 0xf000\n\tS_IFNAM                       = 0x5000\n\tS_IFPORT                      = 0xe000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_INSEM                       = 0x1\n\tS_INSHD                       = 0x2\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXGRP                       = 0x8\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x800\n\tTAB2                          = 0x1000\n\tTAB3                          = 0x1800\n\tTABDLY                        = 0x1800\n\tTCFLSH                        = 0x5407\n\tTCGETA                        = 0x5401\n\tTCGETS                        = 0x540d\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_ABORT_THRESHOLD           = 0x11\n\tTCP_ANONPRIVBIND              = 0x20\n\tTCP_CONGESTION                = 0x25\n\tTCP_CONN_ABORT_THRESHOLD      = 0x13\n\tTCP_CONN_NOTIFY_THRESHOLD     = 0x12\n\tTCP_CORK                      = 0x18\n\tTCP_EXCLBIND                  = 0x21\n\tTCP_INIT_CWND                 = 0x15\n\tTCP_KEEPALIVE                 = 0x8\n\tTCP_KEEPALIVE_ABORT_THRESHOLD = 0x17\n\tTCP_KEEPALIVE_THRESHOLD       = 0x16\n\tTCP_KEEPCNT                   = 0x23\n\tTCP_KEEPIDLE                  = 0x22\n\tTCP_KEEPINTVL                 = 0x24\n\tTCP_LINGER2                   = 0x1c\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MSS                       = 0x218\n\tTCP_NODELAY                   = 0x1\n\tTCP_NOTIFY_THRESHOLD          = 0x10\n\tTCP_RECVDSTADDR               = 0x14\n\tTCP_RTO_INITIAL               = 0x19\n\tTCP_RTO_MAX                   = 0x1b\n\tTCP_RTO_MIN                   = 0x1a\n\tTCSAFLUSH                     = 0x5410\n\tTCSBRK                        = 0x5405\n\tTCSETA                        = 0x5402\n\tTCSETAF                       = 0x5404\n\tTCSETAW                       = 0x5403\n\tTCSETS                        = 0x540e\n\tTCSETSF                       = 0x5410\n\tTCSETSW                       = 0x540f\n\tTCXONC                        = 0x5406\n\tTIMER_ABSTIME                 = 0x1\n\tTIMER_RELTIME                 = 0x0\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x747a\n\tTIOCCDTR                      = 0x7478\n\tTIOCCILOOP                    = 0x746c\n\tTIOCEXCL                      = 0x740d\n\tTIOCFLUSH                     = 0x7410\n\tTIOCGETC                      = 0x7412\n\tTIOCGETD                      = 0x7400\n\tTIOCGETP                      = 0x7408\n\tTIOCGLTC                      = 0x7474\n\tTIOCGPGRP                     = 0x7414\n\tTIOCGPPS                      = 0x547d\n\tTIOCGPPSEV                    = 0x547f\n\tTIOCGSID                      = 0x7416\n\tTIOCGSOFTCAR                  = 0x5469\n\tTIOCGWINSZ                    = 0x5468\n\tTIOCHPCL                      = 0x7402\n\tTIOCKBOF                      = 0x5409\n\tTIOCKBON                      = 0x5408\n\tTIOCLBIC                      = 0x747e\n\tTIOCLBIS                      = 0x747f\n\tTIOCLGET                      = 0x747c\n\tTIOCLSET                      = 0x747d\n\tTIOCMBIC                      = 0x741c\n\tTIOCMBIS                      = 0x741b\n\tTIOCMGET                      = 0x741d\n\tTIOCMSET                      = 0x741a\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x7471\n\tTIOCNXCL                      = 0x740e\n\tTIOCOUTQ                      = 0x7473\n\tTIOCREMOTE                    = 0x741e\n\tTIOCSBRK                      = 0x747b\n\tTIOCSCTTY                     = 0x7484\n\tTIOCSDTR                      = 0x7479\n\tTIOCSETC                      = 0x7411\n\tTIOCSETD                      = 0x7401\n\tTIOCSETN                      = 0x740a\n\tTIOCSETP                      = 0x7409\n\tTIOCSIGNAL                    = 0x741f\n\tTIOCSILOOP                    = 0x746d\n\tTIOCSLTC                      = 0x7475\n\tTIOCSPGRP                     = 0x7415\n\tTIOCSPPS                      = 0x547e\n\tTIOCSSOFTCAR                  = 0x546a\n\tTIOCSTART                     = 0x746e\n\tTIOCSTI                       = 0x7417\n\tTIOCSTOP                      = 0x746f\n\tTIOCSWINSZ                    = 0x5467\n\tTOSTOP                        = 0x100\n\tUTIME_NOW                     = -0x1\n\tUTIME_OMIT                    = -0x2\n\tVCEOF                         = 0x8\n\tVCEOL                         = 0x9\n\tVDISCARD                      = 0xd\n\tVDSUSP                        = 0xb\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVERASE2                       = 0x11\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xf\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xc\n\tVSTART                        = 0x8\n\tVSTATUS                       = 0x10\n\tVSTOP                         = 0x9\n\tVSUSP                         = 0xa\n\tVSWTCH                        = 0x7\n\tVT0                           = 0x0\n\tVT1                           = 0x4000\n\tVTDLY                         = 0x4000\n\tVTIME                         = 0x5\n\tVWERASE                       = 0xe\n\tWCONTFLG                      = 0xffff\n\tWCONTINUED                    = 0x8\n\tWCOREFLG                      = 0x80\n\tWEXITED                       = 0x1\n\tWNOHANG                       = 0x40\n\tWNOWAIT                       = 0x80\n\tWOPTMASK                      = 0xcf\n\tWRAP                          = 0x20000\n\tWSIGMASK                      = 0x7f\n\tWSTOPFLG                      = 0x7f\n\tWSTOPPED                      = 0x4\n\tWTRAPPED                      = 0x2\n\tWUNTRACED                     = 0x4\n\tXCASE                         = 0x4\n\tXTABS                         = 0x1800\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x39)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x2f)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x31)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOCKUNMAPPED   = syscall.Errno(0x48)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTACTIVE      = syscall.Errno(0x49)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTRECOVERABLE = syscall.Errno(0x3b)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x30)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0x3a)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMOTE         = syscall.Errno(0x42)\n\tERESTART        = syscall.Errno(0x5b)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGABRT    = syscall.Signal(0x6)\n\tSIGALRM    = syscall.Signal(0xe)\n\tSIGBUS     = syscall.Signal(0xa)\n\tSIGCANCEL  = syscall.Signal(0x24)\n\tSIGCHLD    = syscall.Signal(0x12)\n\tSIGCLD     = syscall.Signal(0x12)\n\tSIGCONT    = syscall.Signal(0x19)\n\tSIGEMT     = syscall.Signal(0x7)\n\tSIGFPE     = syscall.Signal(0x8)\n\tSIGFREEZE  = syscall.Signal(0x22)\n\tSIGHUP     = syscall.Signal(0x1)\n\tSIGILL     = syscall.Signal(0x4)\n\tSIGINFO    = syscall.Signal(0x29)\n\tSIGINT     = syscall.Signal(0x2)\n\tSIGIO      = syscall.Signal(0x16)\n\tSIGIOT     = syscall.Signal(0x6)\n\tSIGJVM1    = syscall.Signal(0x27)\n\tSIGJVM2    = syscall.Signal(0x28)\n\tSIGKILL    = syscall.Signal(0x9)\n\tSIGLOST    = syscall.Signal(0x25)\n\tSIGLWP     = syscall.Signal(0x21)\n\tSIGPIPE    = syscall.Signal(0xd)\n\tSIGPOLL    = syscall.Signal(0x16)\n\tSIGPROF    = syscall.Signal(0x1d)\n\tSIGPWR     = syscall.Signal(0x13)\n\tSIGQUIT    = syscall.Signal(0x3)\n\tSIGSEGV    = syscall.Signal(0xb)\n\tSIGSTOP    = syscall.Signal(0x17)\n\tSIGSYS     = syscall.Signal(0xc)\n\tSIGTERM    = syscall.Signal(0xf)\n\tSIGTHAW    = syscall.Signal(0x23)\n\tSIGTRAP    = syscall.Signal(0x5)\n\tSIGTSTP    = syscall.Signal(0x18)\n\tSIGTTIN    = syscall.Signal(0x1a)\n\tSIGTTOU    = syscall.Signal(0x1b)\n\tSIGURG     = syscall.Signal(0x15)\n\tSIGUSR1    = syscall.Signal(0x10)\n\tSIGUSR2    = syscall.Signal(0x11)\n\tSIGVTALRM  = syscall.Signal(0x1c)\n\tSIGWAITING = syscall.Signal(0x20)\n\tSIGWINCH   = syscall.Signal(0x14)\n\tSIGXCPU    = syscall.Signal(0x1e)\n\tSIGXFSZ    = syscall.Signal(0x1f)\n\tSIGXRES    = syscall.Signal(0x26)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock situation detected/avoided\"},\n\t{46, \"ENOLCK\", \"no record locks available\"},\n\t{47, \"ECANCELED\", \"operation canceled\"},\n\t{48, \"ENOTSUP\", \"operation not supported\"},\n\t{49, \"EDQUOT\", \"disc quota exceeded\"},\n\t{50, \"EBADE\", \"bad exchange descriptor\"},\n\t{51, \"EBADR\", \"bad request descriptor\"},\n\t{52, \"EXFULL\", \"message tables full\"},\n\t{53, \"ENOANO\", \"anode table overflow\"},\n\t{54, \"EBADRQC\", \"bad request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock\"},\n\t{57, \"EBFONT\", \"bad font file format\"},\n\t{58, \"EOWNERDEAD\", \"owner of the lock died\"},\n\t{59, \"ENOTRECOVERABLE\", \"lock is not recoverable\"},\n\t{60, \"ENOSTR\", \"not a stream device\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of stream resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"ELOCKUNMAPPED\", \"locked lock was unmapped \"},\n\t{73, \"ENOTACTIVE\", \"facility is not active\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"not a data message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in more shared libraries than system limit\"},\n\t{87, \"ELIBEXEC\", \"can not exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"illegal byte sequence\"},\n\t{89, \"ENOSYS\", \"operation not applicable\"},\n\t{90, \"ELOOP\", \"number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS\"},\n\t{91, \"ERESTART\", \"error 91\"},\n\t{92, \"ESTRPIPE\", \"error 92\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"option not supported by protocol\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"EOPNOTSUPP\", \"operation not supported on transport endpoint\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection because of reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after socket shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale NFS file handle\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal Instruction\"},\n\t{5, \"SIGTRAP\", \"trace/Breakpoint Trap\"},\n\t{6, \"SIGABRT\", \"abort\"},\n\t{7, \"SIGEMT\", \"emulation Trap\"},\n\t{8, \"SIGFPE\", \"arithmetic Exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus Error\"},\n\t{11, \"SIGSEGV\", \"segmentation Fault\"},\n\t{12, \"SIGSYS\", \"bad System Call\"},\n\t{13, \"SIGPIPE\", \"broken Pipe\"},\n\t{14, \"SIGALRM\", \"alarm Clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user Signal 1\"},\n\t{17, \"SIGUSR2\", \"user Signal 2\"},\n\t{18, \"SIGCHLD\", \"child Status Changed\"},\n\t{19, \"SIGPWR\", \"power-Fail/Restart\"},\n\t{20, \"SIGWINCH\", \"window Size Change\"},\n\t{21, \"SIGURG\", \"urgent Socket Condition\"},\n\t{22, \"SIGIO\", \"pollable Event\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped (user)\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual Timer Expired\"},\n\t{29, \"SIGPROF\", \"profiling Timer Expired\"},\n\t{30, \"SIGXCPU\", \"cpu Limit Exceeded\"},\n\t{31, \"SIGXFSZ\", \"file Size Limit Exceeded\"},\n\t{32, \"SIGWAITING\", \"no runnable lwp\"},\n\t{33, \"SIGLWP\", \"inter-lwp signal\"},\n\t{34, \"SIGFREEZE\", \"checkpoint Freeze\"},\n\t{35, \"SIGTHAW\", \"checkpoint Thaw\"},\n\t{36, \"SIGCANCEL\", \"thread Cancellation\"},\n\t{37, \"SIGLOST\", \"resource Lost\"},\n\t{38, \"SIGXRES\", \"resource Control Exceeded\"},\n\t{39, \"SIGJVM1\", \"reserved for JVM 1\"},\n\t{40, \"SIGJVM2\", \"reserved for JVM 2\"},\n\t{41, \"SIGINFO\", \"information Request\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Hand edited based on zerrors_linux_s390x.go\n// TODO: auto-generate.\n\npackage unix\n\nconst (\n\tBRKINT                   = 0x0001\n\tCLOCAL                   = 0x1\n\tCLOCK_MONOTONIC          = 0x1\n\tCLOCK_PROCESS_CPUTIME_ID = 0x2\n\tCLOCK_REALTIME           = 0x0\n\tCLOCK_THREAD_CPUTIME_ID  = 0x3\n\tCLONE_NEWIPC             = 0x08000000\n\tCLONE_NEWNET             = 0x40000000\n\tCLONE_NEWNS              = 0x00020000\n\tCLONE_NEWPID             = 0x20000000\n\tCLONE_NEWUTS             = 0x04000000\n\tCLONE_PARENT             = 0x00008000\n\tCS8                      = 0x0030\n\tCSIZE                    = 0x0030\n\tECHO                     = 0x00000008\n\tECHONL                   = 0x00000001\n\tEFD_SEMAPHORE            = 0x00002000\n\tEFD_CLOEXEC              = 0x00001000\n\tEFD_NONBLOCK             = 0x00000004\n\tEPOLL_CLOEXEC            = 0x00001000\n\tEPOLL_CTL_ADD            = 0\n\tEPOLL_CTL_MOD            = 1\n\tEPOLL_CTL_DEL            = 2\n\tEPOLLRDNORM              = 0x0001\n\tEPOLLRDBAND              = 0x0002\n\tEPOLLIN                  = 0x0003\n\tEPOLLOUT                 = 0x0004\n\tEPOLLWRBAND              = 0x0008\n\tEPOLLPRI                 = 0x0010\n\tEPOLLERR                 = 0x0020\n\tEPOLLHUP                 = 0x0040\n\tEPOLLEXCLUSIVE           = 0x20000000\n\tEPOLLONESHOT             = 0x40000000\n\tFD_CLOEXEC               = 0x01\n\tFD_CLOFORK               = 0x02\n\tFD_SETSIZE               = 0x800\n\tFNDELAY                  = 0x04\n\tF_CLOSFD                 = 9\n\tF_CONTROL_CVT            = 13\n\tF_DUPFD                  = 0\n\tF_DUPFD2                 = 8\n\tF_GETFD                  = 1\n\tF_GETFL                  = 259\n\tF_GETLK                  = 5\n\tF_GETOWN                 = 10\n\tF_OK                     = 0x0\n\tF_RDLCK                  = 1\n\tF_SETFD                  = 2\n\tF_SETFL                  = 4\n\tF_SETLK                  = 6\n\tF_SETLKW                 = 7\n\tF_SETOWN                 = 11\n\tF_SETTAG                 = 12\n\tF_UNLCK                  = 3\n\tF_WRLCK                  = 2\n\tFSTYPE_ZFS               = 0xe9 //\"Z\"\n\tFSTYPE_HFS               = 0xc8 //\"H\"\n\tFSTYPE_NFS               = 0xd5 //\"N\"\n\tFSTYPE_TFS               = 0xe3 //\"T\"\n\tFSTYPE_AUTOMOUNT         = 0xc1 //\"A\"\n\tGRND_NONBLOCK            = 1\n\tGRND_RANDOM              = 2\n\tHUPCL                    = 0x0100 // Hang up on last close\n\tIN_CLOEXEC               = 0x00001000\n\tIN_NONBLOCK              = 0x00000004\n\tIN_ACCESS                = 0x00000001\n\tIN_MODIFY                = 0x00000002\n\tIN_ATTRIB                = 0x00000004\n\tIN_CLOSE_WRITE           = 0x00000008\n\tIN_CLOSE_NOWRITE         = 0x00000010\n\tIN_OPEN                  = 0x00000020\n\tIN_MOVED_FROM            = 0x00000040\n\tIN_MOVED_TO              = 0x00000080\n\tIN_CREATE                = 0x00000100\n\tIN_DELETE                = 0x00000200\n\tIN_DELETE_SELF           = 0x00000400\n\tIN_MOVE_SELF             = 0x00000800\n\tIN_UNMOUNT               = 0x00002000\n\tIN_Q_OVERFLOW            = 0x00004000\n\tIN_IGNORED               = 0x00008000\n\tIN_CLOSE                 = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)\n\tIN_MOVE                  = (IN_MOVED_FROM | IN_MOVED_TO)\n\tIN_ALL_EVENTS            = (IN_ACCESS | IN_MODIFY | IN_ATTRIB |\n\t\tIN_CLOSE | IN_OPEN | IN_MOVE |\n\t\tIN_CREATE | IN_DELETE | IN_DELETE_SELF |\n\t\tIN_MOVE_SELF)\n\tIN_ONLYDIR                      = 0x01000000\n\tIN_DONT_FOLLOW                  = 0x02000000\n\tIN_EXCL_UNLINK                  = 0x04000000\n\tIN_MASK_CREATE                  = 0x10000000\n\tIN_MASK_ADD                     = 0x20000000\n\tIN_ISDIR                        = 0x40000000\n\tIN_ONESHOT                      = 0x80000000\n\tIP6F_MORE_FRAG                  = 0x0001\n\tIP6F_OFF_MASK                   = 0xfff8\n\tIP6F_RESERVED_MASK              = 0x0006\n\tIP6OPT_JUMBO                    = 0xc2\n\tIP6OPT_JUMBO_LEN                = 6\n\tIP6OPT_MUTABLE                  = 0x20\n\tIP6OPT_NSAP_ADDR                = 0xc3\n\tIP6OPT_PAD1                     = 0x00\n\tIP6OPT_PADN                     = 0x01\n\tIP6OPT_ROUTER_ALERT             = 0x05\n\tIP6OPT_TUNNEL_LIMIT             = 0x04\n\tIP6OPT_TYPE_DISCARD             = 0x40\n\tIP6OPT_TYPE_FORCEICMP           = 0x80\n\tIP6OPT_TYPE_ICMP                = 0xc0\n\tIP6OPT_TYPE_SKIP                = 0x00\n\tIP6_ALERT_AN                    = 0x0002\n\tIP6_ALERT_MLD                   = 0x0000\n\tIP6_ALERT_RSVP                  = 0x0001\n\tIPPORT_RESERVED                 = 1024\n\tIPPORT_USERRESERVED             = 5000\n\tIPPROTO_AH                      = 51\n\tSOL_AH                          = 51\n\tIPPROTO_DSTOPTS                 = 60\n\tSOL_DSTOPTS                     = 60\n\tIPPROTO_EGP                     = 8\n\tSOL_EGP                         = 8\n\tIPPROTO_ESP                     = 50\n\tSOL_ESP                         = 50\n\tIPPROTO_FRAGMENT                = 44\n\tSOL_FRAGMENT                    = 44\n\tIPPROTO_GGP                     = 2\n\tSOL_GGP                         = 2\n\tIPPROTO_HOPOPTS                 = 0\n\tSOL_HOPOPTS                     = 0\n\tIPPROTO_ICMP                    = 1\n\tSOL_ICMP                        = 1\n\tIPPROTO_ICMPV6                  = 58\n\tSOL_ICMPV6                      = 58\n\tIPPROTO_IDP                     = 22\n\tSOL_IDP                         = 22\n\tIPPROTO_IP                      = 0\n\tSOL_IP                          = 0\n\tIPPROTO_IPV6                    = 41\n\tSOL_IPV6                        = 41\n\tIPPROTO_MAX                     = 256\n\tSOL_MAX                         = 256\n\tIPPROTO_NONE                    = 59\n\tSOL_NONE                        = 59\n\tIPPROTO_PUP                     = 12\n\tSOL_PUP                         = 12\n\tIPPROTO_RAW                     = 255\n\tSOL_RAW                         = 255\n\tIPPROTO_ROUTING                 = 43\n\tSOL_ROUTING                     = 43\n\tIPPROTO_TCP                     = 6\n\tSOL_TCP                         = 6\n\tIPPROTO_UDP                     = 17\n\tSOL_UDP                         = 17\n\tIPV6_ADDR_PREFERENCES           = 32\n\tIPV6_CHECKSUM                   = 19\n\tIPV6_DONTFRAG                   = 29\n\tIPV6_DSTOPTS                    = 23\n\tIPV6_HOPLIMIT                   = 11\n\tIPV6_HOPOPTS                    = 22\n\tIPV6_JOIN_GROUP                 = 5\n\tIPV6_LEAVE_GROUP                = 6\n\tIPV6_MULTICAST_HOPS             = 9\n\tIPV6_MULTICAST_IF               = 7\n\tIPV6_MULTICAST_LOOP             = 4\n\tIPV6_NEXTHOP                    = 20\n\tIPV6_PATHMTU                    = 12\n\tIPV6_PKTINFO                    = 13\n\tIPV6_PREFER_SRC_CGA             = 0x10\n\tIPV6_PREFER_SRC_COA             = 0x02\n\tIPV6_PREFER_SRC_HOME            = 0x01\n\tIPV6_PREFER_SRC_NONCGA          = 0x20\n\tIPV6_PREFER_SRC_PUBLIC          = 0x08\n\tIPV6_PREFER_SRC_TMP             = 0x04\n\tIPV6_RECVDSTOPTS                = 28\n\tIPV6_RECVHOPLIMIT               = 14\n\tIPV6_RECVHOPOPTS                = 26\n\tIPV6_RECVPATHMTU                = 16\n\tIPV6_RECVPKTINFO                = 15\n\tIPV6_RECVRTHDR                  = 25\n\tIPV6_RECVTCLASS                 = 31\n\tIPV6_RTHDR                      = 21\n\tIPV6_RTHDRDSTOPTS               = 24\n\tIPV6_RTHDR_TYPE_0               = 0\n\tIPV6_TCLASS                     = 30\n\tIPV6_UNICAST_HOPS               = 3\n\tIPV6_USE_MIN_MTU                = 18\n\tIPV6_V6ONLY                     = 10\n\tIP_ADD_MEMBERSHIP               = 5\n\tIP_ADD_SOURCE_MEMBERSHIP        = 12\n\tIP_BLOCK_SOURCE                 = 10\n\tIP_DEFAULT_MULTICAST_LOOP       = 1\n\tIP_DEFAULT_MULTICAST_TTL        = 1\n\tIP_DROP_MEMBERSHIP              = 6\n\tIP_DROP_SOURCE_MEMBERSHIP       = 13\n\tIP_MAX_MEMBERSHIPS              = 20\n\tIP_MULTICAST_IF                 = 7\n\tIP_MULTICAST_LOOP               = 4\n\tIP_MULTICAST_TTL                = 3\n\tIP_OPTIONS                      = 1\n\tIP_PKTINFO                      = 101\n\tIP_RECVPKTINFO                  = 102\n\tIP_TOS                          = 2\n\tIP_TTL                          = 14\n\tIP_UNBLOCK_SOURCE               = 11\n\tICMP6_FILTER                    = 1\n\tMCAST_INCLUDE                   = 0\n\tMCAST_EXCLUDE                   = 1\n\tMCAST_JOIN_GROUP                = 40\n\tMCAST_LEAVE_GROUP               = 41\n\tMCAST_JOIN_SOURCE_GROUP         = 42\n\tMCAST_LEAVE_SOURCE_GROUP        = 43\n\tMCAST_BLOCK_SOURCE              = 44\n\tMCAST_UNBLOCK_SOURCE            = 46\n\tICANON                          = 0x0010\n\tICRNL                           = 0x0002\n\tIEXTEN                          = 0x0020\n\tIGNBRK                          = 0x0004\n\tIGNCR                           = 0x0008\n\tINLCR                           = 0x0020\n\tISIG                            = 0x0040\n\tISTRIP                          = 0x0080\n\tIXON                            = 0x0200\n\tIXOFF                           = 0x0100\n\tLOCK_SH                         = 0x1\n\tLOCK_EX                         = 0x2\n\tLOCK_NB                         = 0x4\n\tLOCK_UN                         = 0x8\n\tPOLLIN                          = 0x0003\n\tPOLLOUT                         = 0x0004\n\tPOLLPRI                         = 0x0010\n\tPOLLERR                         = 0x0020\n\tPOLLHUP                         = 0x0040\n\tPOLLNVAL                        = 0x0080\n\tPROT_READ                       = 0x1 // mmap - page can be read\n\tPROT_WRITE                      = 0x2 // page can be written\n\tPROT_NONE                       = 0x4 // can't be accessed\n\tPROT_EXEC                       = 0x8 // can be executed\n\tMAP_PRIVATE                     = 0x1 // changes are private\n\tMAP_SHARED                      = 0x2 // changes are shared\n\tMAP_FIXED                       = 0x4 // place exactly\n\t__MAP_MEGA                      = 0x8\n\t__MAP_64                        = 0x10\n\tMAP_ANON                        = 0x20\n\tMAP_ANONYMOUS                   = 0x20\n\tMS_SYNC                         = 0x1 // msync - synchronous writes\n\tMS_ASYNC                        = 0x2 // asynchronous writes\n\tMS_INVALIDATE                   = 0x4 // invalidate mappings\n\tMS_BIND                         = 0x00001000\n\tMS_MOVE                         = 0x00002000\n\tMS_NOSUID                       = 0x00000002\n\tMS_PRIVATE                      = 0x00040000\n\tMS_REC                          = 0x00004000\n\tMS_REMOUNT                      = 0x00008000\n\tMS_RDONLY                       = 0x00000001\n\tMS_UNBINDABLE                   = 0x00020000\n\tMNT_DETACH                      = 0x00000004\n\tZOSDSFS_SUPER_MAGIC             = 0x44534653 // zOS DSFS\n\tNFS_SUPER_MAGIC                 = 0x6969     // NFS\n\tNSFS_MAGIC                      = 0x6e736673 // PROCNS\n\tPROC_SUPER_MAGIC                = 0x9fa0     // proc FS\n\tZOSTFS_SUPER_MAGIC              = 0x544653   // zOS TFS\n\tZOSUFS_SUPER_MAGIC              = 0x554653   // zOS UFS\n\tZOSZFS_SUPER_MAGIC              = 0x5A4653   // zOS ZFS\n\tMTM_RDONLY                      = 0x80000000\n\tMTM_RDWR                        = 0x40000000\n\tMTM_UMOUNT                      = 0x10000000\n\tMTM_IMMED                       = 0x08000000\n\tMTM_FORCE                       = 0x04000000\n\tMTM_DRAIN                       = 0x02000000\n\tMTM_RESET                       = 0x01000000\n\tMTM_SAMEMODE                    = 0x00100000\n\tMTM_UNQSEFORCE                  = 0x00040000\n\tMTM_NOSUID                      = 0x00000400\n\tMTM_SYNCHONLY                   = 0x00000200\n\tMTM_REMOUNT                     = 0x00000100\n\tMTM_NOSECURITY                  = 0x00000080\n\tNFDBITS                         = 0x20\n\tONLRET                          = 0x0020 // NL performs CR function\n\tO_ACCMODE                       = 0x03\n\tO_APPEND                        = 0x08\n\tO_ASYNCSIG                      = 0x0200\n\tO_CREAT                         = 0x80\n\tO_DIRECT                        = 0x00002000\n\tO_NOFOLLOW                      = 0x00004000\n\tO_DIRECTORY                     = 0x00008000\n\tO_PATH                          = 0x00080000\n\tO_CLOEXEC                       = 0x00001000\n\tO_EXCL                          = 0x40\n\tO_GETFL                         = 0x0F\n\tO_LARGEFILE                     = 0x0400\n\tO_NDELAY                        = 0x4\n\tO_NONBLOCK                      = 0x04\n\tO_RDONLY                        = 0x02\n\tO_RDWR                          = 0x03\n\tO_SYNC                          = 0x0100\n\tO_TRUNC                         = 0x10\n\tO_WRONLY                        = 0x01\n\tO_NOCTTY                        = 0x20\n\tOPOST                           = 0x0001\n\tONLCR                           = 0x0004\n\tPARENB                          = 0x0200\n\tPARMRK                          = 0x0400\n\tQUERYCVT                        = 3\n\tRUSAGE_CHILDREN                 = -0x1\n\tRUSAGE_SELF                     = 0x0 // RUSAGE_THREAD unsupported on z/OS\n\tSEEK_CUR                        = 1\n\tSEEK_END                        = 2\n\tSEEK_SET                        = 0\n\tSETAUTOCVTALL                   = 5\n\tSETAUTOCVTON                    = 2\n\tSETCVTALL                       = 4\n\tSETCVTOFF                       = 0\n\tSETCVTON                        = 1\n\tAF_APPLETALK                    = 16\n\tAF_CCITT                        = 10\n\tAF_CHAOS                        = 5\n\tAF_DATAKIT                      = 9\n\tAF_DLI                          = 13\n\tAF_ECMA                         = 8\n\tAF_HYLINK                       = 15\n\tAF_IMPLINK                      = 3\n\tAF_INET                         = 2\n\tAF_INET6                        = 19\n\tAF_INTF                         = 20\n\tAF_IUCV                         = 17\n\tAF_LAT                          = 14\n\tAF_LINK                         = 18\n\tAF_LOCAL                        = AF_UNIX // AF_LOCAL is an alias for AF_UNIX\n\tAF_MAX                          = 30\n\tAF_NBS                          = 7\n\tAF_NDD                          = 23\n\tAF_NETWARE                      = 22\n\tAF_NS                           = 6\n\tAF_PUP                          = 4\n\tAF_RIF                          = 21\n\tAF_ROUTE                        = 20\n\tAF_SNA                          = 11\n\tAF_UNIX                         = 1\n\tAF_UNSPEC                       = 0\n\tIBMTCP_IMAGE                    = 1\n\tMSG_ACK_EXPECTED                = 0x10\n\tMSG_ACK_GEN                     = 0x40\n\tMSG_ACK_TIMEOUT                 = 0x20\n\tMSG_CONNTERM                    = 0x80\n\tMSG_CTRUNC                      = 0x20\n\tMSG_DONTROUTE                   = 0x4\n\tMSG_EOF                         = 0x8000\n\tMSG_EOR                         = 0x8\n\tMSG_MAXIOVLEN                   = 16\n\tMSG_NONBLOCK                    = 0x4000\n\tMSG_OOB                         = 0x1\n\tMSG_PEEK                        = 0x2\n\tMSG_TRUNC                       = 0x10\n\tMSG_WAITALL                     = 0x40\n\tPRIO_PROCESS                    = 1\n\tPRIO_PGRP                       = 2\n\tPRIO_USER                       = 3\n\tRLIMIT_CPU                      = 0\n\tRLIMIT_FSIZE                    = 1\n\tRLIMIT_DATA                     = 2\n\tRLIMIT_STACK                    = 3\n\tRLIMIT_CORE                     = 4\n\tRLIMIT_AS                       = 5\n\tRLIMIT_NOFILE                   = 6\n\tRLIMIT_MEMLIMIT                 = 7\n\tRLIMIT_MEMLOCK                  = 0x8\n\tRLIM_INFINITY                   = 2147483647\n\tSCHED_FIFO                      = 0x2\n\tSCM_CREDENTIALS                 = 0x2\n\tSCM_RIGHTS                      = 0x01\n\tSF_CLOSE                        = 0x00000002\n\tSF_REUSE                        = 0x00000001\n\tSHM_RND                         = 0x2\n\tSHM_RDONLY                      = 0x1\n\tSHMLBA                          = 0x1000\n\tIPC_STAT                        = 0x3\n\tIPC_SET                         = 0x2\n\tIPC_RMID                        = 0x1\n\tIPC_PRIVATE                     = 0x0\n\tIPC_CREAT                       = 0x1000000\n\t__IPC_MEGA                      = 0x4000000\n\t__IPC_SHAREAS                   = 0x20000000\n\t__IPC_BELOWBAR                  = 0x10000000\n\tIPC_EXCL                        = 0x2000000\n\t__IPC_GIGA                      = 0x8000000\n\tSHUT_RD                         = 0\n\tSHUT_RDWR                       = 2\n\tSHUT_WR                         = 1\n\tSOCK_CLOEXEC                    = 0x00001000\n\tSOCK_CONN_DGRAM                 = 6\n\tSOCK_DGRAM                      = 2\n\tSOCK_NONBLOCK                   = 0x800\n\tSOCK_RAW                        = 3\n\tSOCK_RDM                        = 4\n\tSOCK_SEQPACKET                  = 5\n\tSOCK_STREAM                     = 1\n\tSOL_SOCKET                      = 0xffff\n\tSOMAXCONN                       = 10\n\tSO_ACCEPTCONN                   = 0x0002\n\tSO_ACCEPTECONNABORTED           = 0x0006\n\tSO_ACKNOW                       = 0x7700\n\tSO_BROADCAST                    = 0x0020\n\tSO_BULKMODE                     = 0x8000\n\tSO_CKSUMRECV                    = 0x0800\n\tSO_CLOSE                        = 0x01\n\tSO_CLUSTERCONNTYPE              = 0x00004001\n\tSO_CLUSTERCONNTYPE_INTERNAL     = 8\n\tSO_CLUSTERCONNTYPE_NOCONN       = 0\n\tSO_CLUSTERCONNTYPE_NONE         = 1\n\tSO_CLUSTERCONNTYPE_SAME_CLUSTER = 2\n\tSO_CLUSTERCONNTYPE_SAME_IMAGE   = 4\n\tSO_DEBUG                        = 0x0001\n\tSO_DONTROUTE                    = 0x0010\n\tSO_ERROR                        = 0x1007\n\tSO_IGNOREINCOMINGPUSH           = 0x1\n\tSO_IGNORESOURCEVIPA             = 0x0002\n\tSO_KEEPALIVE                    = 0x0008\n\tSO_LINGER                       = 0x0080\n\tSO_NONBLOCKLOCAL                = 0x8001\n\tSO_NOREUSEADDR                  = 0x1000\n\tSO_OOBINLINE                    = 0x0100\n\tSO_OPTACK                       = 0x8004\n\tSO_OPTMSS                       = 0x8003\n\tSO_RCVBUF                       = 0x1002\n\tSO_RCVLOWAT                     = 0x1004\n\tSO_RCVTIMEO                     = 0x1006\n\tSO_REUSEADDR                    = 0x0004\n\tSO_REUSEPORT                    = 0x0200\n\tSO_SECINFO                      = 0x00004002\n\tSO_SET                          = 0x0200\n\tSO_SNDBUF                       = 0x1001\n\tSO_SNDLOWAT                     = 0x1003\n\tSO_SNDTIMEO                     = 0x1005\n\tSO_TYPE                         = 0x1008\n\tSO_UNSET                        = 0x0400\n\tSO_USELOOPBACK                  = 0x0040\n\tSO_USE_IFBUFS                   = 0x0400\n\tS_ISUID                         = 0x0800\n\tS_ISGID                         = 0x0400\n\tS_ISVTX                         = 0x0200\n\tS_IRUSR                         = 0x0100\n\tS_IWUSR                         = 0x0080\n\tS_IXUSR                         = 0x0040\n\tS_IRWXU                         = 0x01C0\n\tS_IRGRP                         = 0x0020\n\tS_IWGRP                         = 0x0010\n\tS_IXGRP                         = 0x0008\n\tS_IRWXG                         = 0x0038\n\tS_IROTH                         = 0x0004\n\tS_IWOTH                         = 0x0002\n\tS_IXOTH                         = 0x0001\n\tS_IRWXO                         = 0x0007\n\tS_IREAD                         = S_IRUSR\n\tS_IWRITE                        = S_IWUSR\n\tS_IEXEC                         = S_IXUSR\n\tS_IFDIR                         = 0x01000000\n\tS_IFCHR                         = 0x02000000\n\tS_IFREG                         = 0x03000000\n\tS_IFFIFO                        = 0x04000000\n\tS_IFIFO                         = 0x04000000\n\tS_IFLNK                         = 0x05000000\n\tS_IFBLK                         = 0x06000000\n\tS_IFSOCK                        = 0x07000000\n\tS_IFVMEXTL                      = 0xFE000000\n\tS_IFVMEXTL_EXEC                 = 0x00010000\n\tS_IFVMEXTL_DATA                 = 0x00020000\n\tS_IFVMEXTL_MEL                  = 0x00030000\n\tS_IFEXTL                        = 0x00000001\n\tS_IFPROGCTL                     = 0x00000002\n\tS_IFAPFCTL                      = 0x00000004\n\tS_IFNOSHARE                     = 0x00000008\n\tS_IFSHARELIB                    = 0x00000010\n\tS_IFMT                          = 0xFF000000\n\tS_IFMST                         = 0x00FF0000\n\tTCP_KEEPALIVE                   = 0x8\n\tTCP_NODELAY                     = 0x1\n\tTIOCGWINSZ                      = 0x4008a368\n\tTIOCSWINSZ                      = 0x8008a367\n\tTIOCSBRK                        = 0x2000a77b\n\tTIOCCBRK                        = 0x2000a77a\n\tTIOCSTI                         = 0x8001a772\n\tTIOCGPGRP                       = 0x4004a777 // _IOR(167, 119, int)\n\tTCSANOW                         = 0\n\tTCSETS                          = 0 // equivalent to TCSANOW for tcsetattr\n\tTCSADRAIN                       = 1\n\tTCSETSW                         = 1 // equivalent to TCSADRAIN for tcsetattr\n\tTCSAFLUSH                       = 2\n\tTCSETSF                         = 2 // equivalent to TCSAFLUSH for tcsetattr\n\tTCGETS                          = 3 // not defined in ioctl.h -- zos golang only\n\tTCIFLUSH                        = 0\n\tTCOFLUSH                        = 1\n\tTCIOFLUSH                       = 2\n\tTCOOFF                          = 0\n\tTCOON                           = 1\n\tTCIOFF                          = 2\n\tTCION                           = 3\n\tTIOCSPGRP                       = 0x8004a776\n\tTIOCNOTTY                       = 0x2000a771\n\tTIOCEXCL                        = 0x2000a70d\n\tTIOCNXCL                        = 0x2000a70e\n\tTIOCGETD                        = 0x4004a700\n\tTIOCSETD                        = 0x8004a701\n\tTIOCPKT                         = 0x8004a770\n\tTIOCSTOP                        = 0x2000a76f\n\tTIOCSTART                       = 0x2000a76e\n\tTIOCUCNTL                       = 0x8004a766\n\tTIOCREMOTE                      = 0x8004a769\n\tTIOCMGET                        = 0x4004a76a\n\tTIOCMSET                        = 0x8004a76d\n\tTIOCMBIC                        = 0x8004a76b\n\tTIOCMBIS                        = 0x8004a76c\n\tVINTR                           = 0\n\tVQUIT                           = 1\n\tVERASE                          = 2\n\tVKILL                           = 3\n\tVEOF                            = 4\n\tVEOL                            = 5\n\tVMIN                            = 6\n\tVSTART                          = 7\n\tVSTOP                           = 8\n\tVSUSP                           = 9\n\tVTIME                           = 10\n\tWCONTINUED                      = 0x4\n\tWEXITED                         = 0x8\n\tWNOHANG                         = 0x1\n\tWNOWAIT                         = 0x20\n\tWSTOPPED                        = 0x10\n\tWUNTRACED                       = 0x2\n\t_BPX_SWAP                       = 1\n\t_BPX_NONSWAP                    = 2\n\tMCL_CURRENT                     = 1  // for Linux compatibility -- no zos semantics\n\tMCL_FUTURE                      = 2  // for Linux compatibility -- no zos semantics\n\tMCL_ONFAULT                     = 3  // for Linux compatibility -- no zos semantics\n\tMADV_NORMAL                     = 0  // for Linux compatibility -- no zos semantics\n\tMADV_RANDOM                     = 1  // for Linux compatibility -- no zos semantics\n\tMADV_SEQUENTIAL                 = 2  // for Linux compatibility -- no zos semantics\n\tMADV_WILLNEED                   = 3  // for Linux compatibility -- no zos semantics\n\tMADV_REMOVE                     = 4  // for Linux compatibility -- no zos semantics\n\tMADV_DONTFORK                   = 5  // for Linux compatibility -- no zos semantics\n\tMADV_DOFORK                     = 6  // for Linux compatibility -- no zos semantics\n\tMADV_HWPOISON                   = 7  // for Linux compatibility -- no zos semantics\n\tMADV_MERGEABLE                  = 8  // for Linux compatibility -- no zos semantics\n\tMADV_UNMERGEABLE                = 9  // for Linux compatibility -- no zos semantics\n\tMADV_SOFT_OFFLINE               = 10 // for Linux compatibility -- no zos semantics\n\tMADV_HUGEPAGE                   = 11 // for Linux compatibility -- no zos semantics\n\tMADV_NOHUGEPAGE                 = 12 // for Linux compatibility -- no zos semantics\n\tMADV_DONTDUMP                   = 13 // for Linux compatibility -- no zos semantics\n\tMADV_DODUMP                     = 14 // for Linux compatibility -- no zos semantics\n\tMADV_FREE                       = 15 // for Linux compatibility -- no zos semantics\n\tMADV_WIPEONFORK                 = 16 // for Linux compatibility -- no zos semantics\n\tMADV_KEEPONFORK                 = 17 // for Linux compatibility -- no zos semantics\n\tAT_SYMLINK_FOLLOW               = 0x400\n\tAT_SYMLINK_NOFOLLOW             = 0x100\n\tXATTR_CREATE                    = 0x1\n\tXATTR_REPLACE                   = 0x2\n\tP_PID                           = 0\n\tP_PGID                          = 1\n\tP_ALL                           = 2\n\tPR_SET_NAME                     = 15\n\tPR_GET_NAME                     = 16\n\tPR_SET_NO_NEW_PRIVS             = 38\n\tPR_GET_NO_NEW_PRIVS             = 39\n\tPR_SET_DUMPABLE                 = 4\n\tPR_GET_DUMPABLE                 = 3\n\tPR_SET_PDEATHSIG                = 1\n\tPR_GET_PDEATHSIG                = 2\n\tPR_SET_CHILD_SUBREAPER          = 36\n\tPR_GET_CHILD_SUBREAPER          = 37\n\tAT_FDCWD                        = -100\n\tAT_EACCESS                      = 0x200\n\tAT_EMPTY_PATH                   = 0x1000\n\tAT_REMOVEDIR                    = 0x200\n\tRENAME_NOREPLACE                = 1 << 0\n)\n\nconst (\n\tEDOM               = Errno(1)\n\tERANGE             = Errno(2)\n\tEACCES             = Errno(111)\n\tEAGAIN             = Errno(112)\n\tEBADF              = Errno(113)\n\tEBUSY              = Errno(114)\n\tECHILD             = Errno(115)\n\tEDEADLK            = Errno(116)\n\tEEXIST             = Errno(117)\n\tEFAULT             = Errno(118)\n\tEFBIG              = Errno(119)\n\tEINTR              = Errno(120)\n\tEINVAL             = Errno(121)\n\tEIO                = Errno(122)\n\tEISDIR             = Errno(123)\n\tEMFILE             = Errno(124)\n\tEMLINK             = Errno(125)\n\tENAMETOOLONG       = Errno(126)\n\tENFILE             = Errno(127)\n\tENOATTR            = Errno(265)\n\tENODEV             = Errno(128)\n\tENOENT             = Errno(129)\n\tENOEXEC            = Errno(130)\n\tENOLCK             = Errno(131)\n\tENOMEM             = Errno(132)\n\tENOSPC             = Errno(133)\n\tENOSYS             = Errno(134)\n\tENOTDIR            = Errno(135)\n\tENOTEMPTY          = Errno(136)\n\tENOTTY             = Errno(137)\n\tENXIO              = Errno(138)\n\tEPERM              = Errno(139)\n\tEPIPE              = Errno(140)\n\tEROFS              = Errno(141)\n\tESPIPE             = Errno(142)\n\tESRCH              = Errno(143)\n\tEXDEV              = Errno(144)\n\tE2BIG              = Errno(145)\n\tELOOP              = Errno(146)\n\tEILSEQ             = Errno(147)\n\tENODATA            = Errno(148)\n\tEOVERFLOW          = Errno(149)\n\tEMVSNOTUP          = Errno(150)\n\tECMSSTORAGE        = Errno(151)\n\tEMVSDYNALC         = Errno(151)\n\tEMVSCVAF           = Errno(152)\n\tEMVSCATLG          = Errno(153)\n\tECMSINITIAL        = Errno(156)\n\tEMVSINITIAL        = Errno(156)\n\tECMSERR            = Errno(157)\n\tEMVSERR            = Errno(157)\n\tEMVSPARM           = Errno(158)\n\tECMSPFSFILE        = Errno(159)\n\tEMVSPFSFILE        = Errno(159)\n\tEMVSBADCHAR        = Errno(160)\n\tECMSPFSPERM        = Errno(162)\n\tEMVSPFSPERM        = Errno(162)\n\tEMVSSAFEXTRERR     = Errno(163)\n\tEMVSSAF2ERR        = Errno(164)\n\tEMVSTODNOTSET      = Errno(165)\n\tEMVSPATHOPTS       = Errno(166)\n\tEMVSNORTL          = Errno(167)\n\tEMVSEXPIRE         = Errno(168)\n\tEMVSPASSWORD       = Errno(169)\n\tEMVSWLMERROR       = Errno(170)\n\tEMVSCPLERROR       = Errno(171)\n\tEMVSARMERROR       = Errno(172)\n\tELENOFORK          = Errno(200)\n\tELEMSGERR          = Errno(201)\n\tEFPMASKINV         = Errno(202)\n\tEFPMODEINV         = Errno(203)\n\tEBUFLEN            = Errno(227)\n\tEEXTLINK           = Errno(228)\n\tENODD              = Errno(229)\n\tECMSESMERR         = Errno(230)\n\tECPERR             = Errno(231)\n\tELEMULTITHREAD     = Errno(232)\n\tELEFENCE           = Errno(244)\n\tEBADDATA           = Errno(245)\n\tEUNKNOWN           = Errno(246)\n\tENOTSUP            = Errno(247)\n\tEBADNAME           = Errno(248)\n\tENOTSAFE           = Errno(249)\n\tELEMULTITHREADFORK = Errno(257)\n\tECUNNOENV          = Errno(258)\n\tECUNNOCONV         = Errno(259)\n\tECUNNOTALIGNED     = Errno(260)\n\tECUNERR            = Errno(262)\n\tEIBMBADCALL        = Errno(1000)\n\tEIBMBADPARM        = Errno(1001)\n\tEIBMSOCKOUTOFRANGE = Errno(1002)\n\tEIBMSOCKINUSE      = Errno(1003)\n\tEIBMIUCVERR        = Errno(1004)\n\tEOFFLOADboxERROR   = Errno(1005)\n\tEOFFLOADboxRESTART = Errno(1006)\n\tEOFFLOADboxDOWN    = Errno(1007)\n\tEIBMCONFLICT       = Errno(1008)\n\tEIBMCANCELLED      = Errno(1009)\n\tEIBMBADTCPNAME     = Errno(1011)\n\tENOTBLK            = Errno(1100)\n\tETXTBSY            = Errno(1101)\n\tEWOULDBLOCK        = Errno(1102)\n\tEINPROGRESS        = Errno(1103)\n\tEALREADY           = Errno(1104)\n\tENOTSOCK           = Errno(1105)\n\tEDESTADDRREQ       = Errno(1106)\n\tEMSGSIZE           = Errno(1107)\n\tEPROTOTYPE         = Errno(1108)\n\tENOPROTOOPT        = Errno(1109)\n\tEPROTONOSUPPORT    = Errno(1110)\n\tESOCKTNOSUPPORT    = Errno(1111)\n\tEOPNOTSUPP         = Errno(1112)\n\tEPFNOSUPPORT       = Errno(1113)\n\tEAFNOSUPPORT       = Errno(1114)\n\tEADDRINUSE         = Errno(1115)\n\tEADDRNOTAVAIL      = Errno(1116)\n\tENETDOWN           = Errno(1117)\n\tENETUNREACH        = Errno(1118)\n\tENETRESET          = Errno(1119)\n\tECONNABORTED       = Errno(1120)\n\tECONNRESET         = Errno(1121)\n\tENOBUFS            = Errno(1122)\n\tEISCONN            = Errno(1123)\n\tENOTCONN           = Errno(1124)\n\tESHUTDOWN          = Errno(1125)\n\tETOOMANYREFS       = Errno(1126)\n\tETIMEDOUT          = Errno(1127)\n\tECONNREFUSED       = Errno(1128)\n\tEHOSTDOWN          = Errno(1129)\n\tEHOSTUNREACH       = Errno(1130)\n\tEPROCLIM           = Errno(1131)\n\tEUSERS             = Errno(1132)\n\tEDQUOT             = Errno(1133)\n\tESTALE             = Errno(1134)\n\tEREMOTE            = Errno(1135)\n\tENOSTR             = Errno(1136)\n\tETIME              = Errno(1137)\n\tENOSR              = Errno(1138)\n\tENOMSG             = Errno(1139)\n\tEBADMSG            = Errno(1140)\n\tEIDRM              = Errno(1141)\n\tENONET             = Errno(1142)\n\tERREMOTE           = Errno(1143)\n\tENOLINK            = Errno(1144)\n\tEADV               = Errno(1145)\n\tESRMNT             = Errno(1146)\n\tECOMM              = Errno(1147)\n\tEPROTO             = Errno(1148)\n\tEMULTIHOP          = Errno(1149)\n\tEDOTDOT            = Errno(1150)\n\tEREMCHG            = Errno(1151)\n\tECANCELED          = Errno(1152)\n\tEINTRNODATA        = Errno(1159)\n\tENOREUSE           = Errno(1160)\n\tENOMOVE            = Errno(1161)\n)\n\n// Signals\nconst (\n\tSIGHUP    = Signal(1)\n\tSIGINT    = Signal(2)\n\tSIGABRT   = Signal(3)\n\tSIGILL    = Signal(4)\n\tSIGPOLL   = Signal(5)\n\tSIGURG    = Signal(6)\n\tSIGSTOP   = Signal(7)\n\tSIGFPE    = Signal(8)\n\tSIGKILL   = Signal(9)\n\tSIGBUS    = Signal(10)\n\tSIGSEGV   = Signal(11)\n\tSIGSYS    = Signal(12)\n\tSIGPIPE   = Signal(13)\n\tSIGALRM   = Signal(14)\n\tSIGTERM   = Signal(15)\n\tSIGUSR1   = Signal(16)\n\tSIGUSR2   = Signal(17)\n\tSIGABND   = Signal(18)\n\tSIGCONT   = Signal(19)\n\tSIGCHLD   = Signal(20)\n\tSIGTTIN   = Signal(21)\n\tSIGTTOU   = Signal(22)\n\tSIGIO     = Signal(23)\n\tSIGQUIT   = Signal(24)\n\tSIGTSTP   = Signal(25)\n\tSIGTRAP   = Signal(26)\n\tSIGIOERR  = Signal(27)\n\tSIGWINCH  = Signal(28)\n\tSIGXCPU   = Signal(29)\n\tSIGXFSZ   = Signal(30)\n\tSIGVTALRM = Signal(31)\n\tSIGPROF   = Signal(32)\n\tSIGDANGER = Signal(33)\n\tSIGTHSTOP = Signal(34)\n\tSIGTHCONT = Signal(35)\n\tSIGTRACE  = Signal(37)\n\tSIGDCE    = Signal(38)\n\tSIGDUMP   = Signal(39)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EDC5001I\", \"A domain error occurred.\"},\n\t{2, \"EDC5002I\", \"A range error occurred.\"},\n\t{111, \"EDC5111I\", \"Permission denied.\"},\n\t{112, \"EDC5112I\", \"Resource temporarily unavailable.\"},\n\t{113, \"EDC5113I\", \"Bad file descriptor.\"},\n\t{114, \"EDC5114I\", \"Resource busy.\"},\n\t{115, \"EDC5115I\", \"No child processes.\"},\n\t{116, \"EDC5116I\", \"Resource deadlock avoided.\"},\n\t{117, \"EDC5117I\", \"File exists.\"},\n\t{118, \"EDC5118I\", \"Incorrect address.\"},\n\t{119, \"EDC5119I\", \"File too large.\"},\n\t{120, \"EDC5120I\", \"Interrupted function call.\"},\n\t{121, \"EDC5121I\", \"Invalid argument.\"},\n\t{122, \"EDC5122I\", \"Input/output error.\"},\n\t{123, \"EDC5123I\", \"Is a directory.\"},\n\t{124, \"EDC5124I\", \"Too many open files.\"},\n\t{125, \"EDC5125I\", \"Too many links.\"},\n\t{126, \"EDC5126I\", \"Filename too long.\"},\n\t{127, \"EDC5127I\", \"Too many open files in system.\"},\n\t{128, \"EDC5128I\", \"No such device.\"},\n\t{129, \"EDC5129I\", \"No such file or directory.\"},\n\t{130, \"EDC5130I\", \"Exec format error.\"},\n\t{131, \"EDC5131I\", \"No locks available.\"},\n\t{132, \"EDC5132I\", \"Not enough memory.\"},\n\t{133, \"EDC5133I\", \"No space left on device.\"},\n\t{134, \"EDC5134I\", \"Function not implemented.\"},\n\t{135, \"EDC5135I\", \"Not a directory.\"},\n\t{136, \"EDC5136I\", \"Directory not empty.\"},\n\t{137, \"EDC5137I\", \"Inappropriate I/O control operation.\"},\n\t{138, \"EDC5138I\", \"No such device or address.\"},\n\t{139, \"EDC5139I\", \"Operation not permitted.\"},\n\t{140, \"EDC5140I\", \"Broken pipe.\"},\n\t{141, \"EDC5141I\", \"Read-only file system.\"},\n\t{142, \"EDC5142I\", \"Invalid seek.\"},\n\t{143, \"EDC5143I\", \"No such process.\"},\n\t{144, \"EDC5144I\", \"Improper link.\"},\n\t{145, \"EDC5145I\", \"The parameter list is too long, or the message to receive was too large for the buffer.\"},\n\t{146, \"EDC5146I\", \"Too many levels of symbolic links.\"},\n\t{147, \"EDC5147I\", \"Illegal byte sequence.\"},\n\t{148, \"EDC5148I\", \"The named attribute or data not available.\"},\n\t{149, \"EDC5149I\", \"Value Overflow Error.\"},\n\t{150, \"EDC5150I\", \"UNIX System Services is not active.\"},\n\t{151, \"EDC5151I\", \"Dynamic allocation error.\"},\n\t{152, \"EDC5152I\", \"Common VTOC access facility (CVAF) error.\"},\n\t{153, \"EDC5153I\", \"Catalog obtain error.\"},\n\t{156, \"EDC5156I\", \"Process initialization error.\"},\n\t{157, \"EDC5157I\", \"An internal error has occurred.\"},\n\t{158, \"EDC5158I\", \"Bad parameters were passed to the service.\"},\n\t{159, \"EDC5159I\", \"The Physical File System encountered a permanent file error.\"},\n\t{160, \"EDC5160I\", \"Bad character in environment variable name.\"},\n\t{162, \"EDC5162I\", \"The Physical File System encountered a system error.\"},\n\t{163, \"EDC5163I\", \"SAF/RACF extract error.\"},\n\t{164, \"EDC5164I\", \"SAF/RACF error.\"},\n\t{165, \"EDC5165I\", \"System TOD clock not set.\"},\n\t{166, \"EDC5166I\", \"Access mode argument on function call conflicts with PATHOPTS parameter on JCL DD statement.\"},\n\t{167, \"EDC5167I\", \"Access to the UNIX System Services version of the C RTL is denied.\"},\n\t{168, \"EDC5168I\", \"Password has expired.\"},\n\t{169, \"EDC5169I\", \"Password is invalid.\"},\n\t{170, \"EDC5170I\", \"An error was encountered with WLM.\"},\n\t{171, \"EDC5171I\", \"An error was encountered with CPL.\"},\n\t{172, \"EDC5172I\", \"An error was encountered with Application Response Measurement (ARM) component.\"},\n\t{200, \"EDC5200I\", \"The application contains a Language Environment member language that cannot tolerate a fork().\"},\n\t{201, \"EDC5201I\", \"The Language Environment message file was not found in the hierarchical file system.\"},\n\t{202, \"EDC5202E\", \"DLL facilities are not supported under SPC environment.\"},\n\t{203, \"EDC5203E\", \"DLL facilities are not supported under POSIX environment.\"},\n\t{227, \"EDC5227I\", \"Buffer is not long enough to contain a path definition\"},\n\t{228, \"EDC5228I\", \"The file referred to is an external link\"},\n\t{229, \"EDC5229I\", \"No path definition for ddname in effect\"},\n\t{230, \"EDC5230I\", \"ESM error.\"},\n\t{231, \"EDC5231I\", \"CP or the external security manager had an error\"},\n\t{232, \"EDC5232I\", \"The function failed because it was invoked from a multithread environment.\"},\n\t{244, \"EDC5244I\", \"The program, module or DLL is not supported in this environment.\"},\n\t{245, \"EDC5245I\", \"Data is not valid.\"},\n\t{246, \"EDC5246I\", \"Unknown system state.\"},\n\t{247, \"EDC5247I\", \"Operation not supported.\"},\n\t{248, \"EDC5248I\", \"The object name specified is not correct.\"},\n\t{249, \"EDC5249I\", \"The function is not allowed.\"},\n\t{257, \"EDC5257I\", \"Function cannot be called in the child process of a fork() from a multithreaded process until exec() is called.\"},\n\t{258, \"EDC5258I\", \"A CUN_RS_NO_UNI_ENV error was issued by Unicode Services.\"},\n\t{259, \"EDC5259I\", \"A CUN_RS_NO_CONVERSION error was issued by Unicode Services.\"},\n\t{260, \"EDC5260I\", \"A CUN_RS_TABLE_NOT_ALIGNED error was issued by Unicode Services.\"},\n\t{262, \"EDC5262I\", \"An iconv() function encountered an unexpected error while using Unicode Services.\"},\n\t{265, \"EDC5265I\", \"The named attribute not available.\"},\n\t{1000, \"EDC8000I\", \"A bad socket-call constant was found in the IUCV header.\"},\n\t{1001, \"EDC8001I\", \"An error was found in the IUCV header.\"},\n\t{1002, \"EDC8002I\", \"A socket descriptor is out of range.\"},\n\t{1003, \"EDC8003I\", \"A socket descriptor is in use.\"},\n\t{1004, \"EDC8004I\", \"Request failed because of an IUCV error.\"},\n\t{1005, \"EDC8005I\", \"Offload box error.\"},\n\t{1006, \"EDC8006I\", \"Offload box restarted.\"},\n\t{1007, \"EDC8007I\", \"Offload box down.\"},\n\t{1008, \"EDC8008I\", \"Already a conflicting call outstanding on socket.\"},\n\t{1009, \"EDC8009I\", \"Request cancelled using a SOCKcallCANCEL request.\"},\n\t{1011, \"EDC8011I\", \"A name of a PFS was specified that either is not configured or is not a Sockets PFS.\"},\n\t{1100, \"EDC8100I\", \"Block device required.\"},\n\t{1101, \"EDC8101I\", \"Text file busy.\"},\n\t{1102, \"EDC8102I\", \"Operation would block.\"},\n\t{1103, \"EDC8103I\", \"Operation now in progress.\"},\n\t{1104, \"EDC8104I\", \"Connection already in progress.\"},\n\t{1105, \"EDC8105I\", \"Socket operation on non-socket.\"},\n\t{1106, \"EDC8106I\", \"Destination address required.\"},\n\t{1107, \"EDC8107I\", \"Message too long.\"},\n\t{1108, \"EDC8108I\", \"Protocol wrong type for socket.\"},\n\t{1109, \"EDC8109I\", \"Protocol not available.\"},\n\t{1110, \"EDC8110I\", \"Protocol not supported.\"},\n\t{1111, \"EDC8111I\", \"Socket type not supported.\"},\n\t{1112, \"EDC8112I\", \"Operation not supported on socket.\"},\n\t{1113, \"EDC8113I\", \"Protocol family not supported.\"},\n\t{1114, \"EDC8114I\", \"Address family not supported.\"},\n\t{1115, \"EDC8115I\", \"Address already in use.\"},\n\t{1116, \"EDC8116I\", \"Address not available.\"},\n\t{1117, \"EDC8117I\", \"Network is down.\"},\n\t{1118, \"EDC8118I\", \"Network is unreachable.\"},\n\t{1119, \"EDC8119I\", \"Network dropped connection on reset.\"},\n\t{1120, \"EDC8120I\", \"Connection ended abnormally.\"},\n\t{1121, \"EDC8121I\", \"Connection reset.\"},\n\t{1122, \"EDC8122I\", \"No buffer space available.\"},\n\t{1123, \"EDC8123I\", \"Socket already connected.\"},\n\t{1124, \"EDC8124I\", \"Socket not connected.\"},\n\t{1125, \"EDC8125I\", \"Can't send after socket shutdown.\"},\n\t{1126, \"EDC8126I\", \"Too many references; can't splice.\"},\n\t{1127, \"EDC8127I\", \"Connection timed out.\"},\n\t{1128, \"EDC8128I\", \"Connection refused.\"},\n\t{1129, \"EDC8129I\", \"Host is not available.\"},\n\t{1130, \"EDC8130I\", \"Host cannot be reached.\"},\n\t{1131, \"EDC8131I\", \"Too many processes.\"},\n\t{1132, \"EDC8132I\", \"Too many users.\"},\n\t{1133, \"EDC8133I\", \"Disk quota exceeded.\"},\n\t{1134, \"EDC8134I\", \"Stale file handle.\"},\n\t{1135, \"\", \"\"},\n\t{1136, \"EDC8136I\", \"File is not a STREAM.\"},\n\t{1137, \"EDC8137I\", \"STREAMS ioctl() timeout.\"},\n\t{1138, \"EDC8138I\", \"No STREAMS resources.\"},\n\t{1139, \"EDC8139I\", \"The message identified by set_id and msg_id is not in the message catalog.\"},\n\t{1140, \"EDC8140I\", \"Bad message.\"},\n\t{1141, \"EDC8141I\", \"Identifier removed.\"},\n\t{1142, \"\", \"\"},\n\t{1143, \"\", \"\"},\n\t{1144, \"EDC8144I\", \"The link has been severed.\"},\n\t{1145, \"\", \"\"},\n\t{1146, \"\", \"\"},\n\t{1147, \"\", \"\"},\n\t{1148, \"EDC8148I\", \"Protocol error.\"},\n\t{1149, \"EDC8149I\", \"Multihop not allowed.\"},\n\t{1150, \"\", \"\"},\n\t{1151, \"\", \"\"},\n\t{1152, \"EDC8152I\", \"The asynchronous I/O request has been canceled.\"},\n\t{1159, \"EDC8159I\", \"Function call was interrupted before any data was received.\"},\n\t{1160, \"EDC8160I\", \"Socket reuse is not supported.\"},\n\t{1161, \"EDC8161I\", \"The file system cannot currently be moved.\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGABT\", \"aborted\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGPOLL\", \"pollable event\"},\n\t{6, \"SIGURG\", \"urgent I/O condition\"},\n\t{7, \"SIGSTOP\", \"stop process\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad argument to routine\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGABND\", \"abend\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGQUIT\", \"quit\"},\n\t{25, \"SIGTSTP\", \"stopped\"},\n\t{26, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{27, \"SIGIOER\", \"I/O error\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{30, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{31, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{32, \"SIGPROF\", \"profiling timer expired\"},\n\t{33, \"SIGDANGER\", \"danger\"},\n\t{34, \"SIGTHSTOP\", \"stop thread\"},\n\t{35, \"SIGTHCONT\", \"continue thread\"},\n\t{37, \"SIGTRACE\", \"trace\"},\n\t{38, \"\", \"DCE\"},\n\t{39, \"SIGDUMP\", \"dump\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"arm\", \"arm64\"). DO NOT EDIT.\n\n//go:build linux && (arm || arm64)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsArm is the registers used by arm binaries.\ntype PtraceRegsArm struct {\n\tUregs [18]uint32\n}\n\n// PtraceGetRegsArm fetches the registers used by arm binaries.\nfunc PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsArm sets the registers used by arm binaries.\nfunc PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsArm64 is the registers used by arm64 binaries.\ntype PtraceRegsArm64 struct {\n\tRegs   [31]uint64\n\tSp     uint64\n\tPc     uint64\n\tPstate uint64\n}\n\n// PtraceGetRegsArm64 fetches the registers used by arm64 binaries.\nfunc PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsArm64 sets the registers used by arm64 binaries.\nfunc PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go",
    "content": "// Code generated by linux/mkall.go generatePtraceRegSet(\"arm64\"). DO NOT EDIT.\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries.\nfunc PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error {\n\tiovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))}\n\treturn ptracePtr(PTRACE_GETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec))\n}\n\n// PtraceSetRegSetArm64 sets the registers used by arm64 binaries.\nfunc PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error {\n\tiovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))}\n\treturn ptracePtr(PTRACE_SETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"mips\", \"mips64\"). DO NOT EDIT.\n\n//go:build linux && (mips || mips64)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsMips is the registers used by mips binaries.\ntype PtraceRegsMips struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips fetches the registers used by mips binaries.\nfunc PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMips sets the registers used by mips binaries.\nfunc PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsMips64 is the registers used by mips64 binaries.\ntype PtraceRegsMips64 struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips64 fetches the registers used by mips64 binaries.\nfunc PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMips64 sets the registers used by mips64 binaries.\nfunc PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"mipsle\", \"mips64le\"). DO NOT EDIT.\n\n//go:build linux && (mipsle || mips64le)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsMipsle is the registers used by mipsle binaries.\ntype PtraceRegsMipsle struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMipsle fetches the registers used by mipsle binaries.\nfunc PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMipsle sets the registers used by mipsle binaries.\nfunc PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsMips64le is the registers used by mips64le binaries.\ntype PtraceRegsMips64le struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips64le fetches the registers used by mips64le binaries.\nfunc PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMips64le sets the registers used by mips64le binaries.\nfunc PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_x86_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"386\", \"amd64\"). DO NOT EDIT.\n\n//go:build linux && (386 || amd64)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegs386 is the registers used by 386 binaries.\ntype PtraceRegs386 struct {\n\tEbx      int32\n\tEcx      int32\n\tEdx      int32\n\tEsi      int32\n\tEdi      int32\n\tEbp      int32\n\tEax      int32\n\tXds      int32\n\tXes      int32\n\tXfs      int32\n\tXgs      int32\n\tOrig_eax int32\n\tEip      int32\n\tXcs      int32\n\tEflags   int32\n\tEsp      int32\n\tXss      int32\n}\n\n// PtraceGetRegs386 fetches the registers used by 386 binaries.\nfunc PtraceGetRegs386(pid int, regsout *PtraceRegs386) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegs386 sets the registers used by 386 binaries.\nfunc PtraceSetRegs386(pid int, regs *PtraceRegs386) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsAmd64 is the registers used by amd64 binaries.\ntype PtraceRegsAmd64 struct {\n\tR15      uint64\n\tR14      uint64\n\tR13      uint64\n\tR12      uint64\n\tRbp      uint64\n\tRbx      uint64\n\tR11      uint64\n\tR10      uint64\n\tR9       uint64\n\tR8       uint64\n\tRax      uint64\n\tRcx      uint64\n\tRdx      uint64\n\tRsi      uint64\n\tRdi      uint64\n\tOrig_rax uint64\n\tRip      uint64\n\tCs       uint64\n\tEflags   uint64\n\tRsp      uint64\n\tSs       uint64\n\tFs_base  uint64\n\tGs_base  uint64\n\tDs       uint64\n\tEs       uint64\n\tFs       uint64\n\tGs       uint64\n}\n\n// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries.\nfunc PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsAmd64 sets the registers used by amd64 binaries.\nfunc PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s",
    "content": "// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build zos && s390x\n#include \"textflag.h\"\n\n//  provide the address of function variable to be fixed up.\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Flistxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fremovexattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fgetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fsetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_accept4Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·accept4(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_RemovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Removexattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_Dup3Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Dup3(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_DirfdAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Dirfd(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollCreateAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollCreate(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollCreate1Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollCreate1(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollCtlAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollCtl(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollPwaitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollPwait(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollWaitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollWait(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EventfdAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Eventfd(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FaccessatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Faccessat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FchmodatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fchmodat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FchownatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fchownat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FdatasyncAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fdatasync(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_fstatatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·fstatat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lgetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lsetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FstatfsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fstatfs(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FutimesAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Futimes(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FutimesatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Futimesat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_GetrandomAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Getrandom(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyInitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyInit(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyInit1Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyInit1(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyAddWatchAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyAddWatch(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyRmWatchAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyRmWatch(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_ListxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Listxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Llistxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lremovexattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LutimesAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lutimes(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_StatfsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Statfs(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SyncfsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Syncfs(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_UnshareAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Unshare(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Linkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_MkdiratAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mkdirat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_MknodatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mknodat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_PivotRootAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·PivotRoot(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_PrctlAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Prctl(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_PrlimitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Prlimit(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_RenameatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Renameat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_Renameat2Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Renameat2(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SethostnameAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Sethostname(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SetnsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Setns(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SymlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Symlinkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_UnlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Unlinkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_openatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·openat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_openat2Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·openat2(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_utimensatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·utimensat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go",
    "content": "// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc\n\npackage unix\n\n/*\n#include <stdint.h>\n#include <stddef.h>\nint utimes(uintptr_t, uintptr_t);\nint utimensat(int, uintptr_t, uintptr_t, int);\nint getcwd(uintptr_t, size_t);\nint accept(int, uintptr_t, uintptr_t);\nint getdirent(int, uintptr_t, size_t);\nint wait4(int, uintptr_t, int, uintptr_t);\nint ioctl(int, int, uintptr_t);\nint fcntl(uintptr_t, int, uintptr_t);\nint fsync_range(int, int, long long, long long);\nint acct(uintptr_t);\nint chdir(uintptr_t);\nint chroot(uintptr_t);\nint close(int);\nint dup(int);\nvoid exit(int);\nint faccessat(int, uintptr_t, unsigned int, int);\nint fchdir(int);\nint fchmod(int, unsigned int);\nint fchmodat(int, uintptr_t, unsigned int, int);\nint fchownat(int, uintptr_t, int, int, int);\nint fdatasync(int);\nint getpgid(int);\nint getpgrp();\nint getpid();\nint getppid();\nint getpriority(int, int);\nint getrusage(int, uintptr_t);\nint getsid(int);\nint kill(int, int);\nint syslog(int, uintptr_t, size_t);\nint mkdir(int, uintptr_t, unsigned int);\nint mkdirat(int, uintptr_t, unsigned int);\nint mkfifo(uintptr_t, unsigned int);\nint mknod(uintptr_t, unsigned int, int);\nint mknodat(int, uintptr_t, unsigned int, int);\nint nanosleep(uintptr_t, uintptr_t);\nint open64(uintptr_t, int, unsigned int);\nint openat(int, uintptr_t, int, unsigned int);\nint read(int, uintptr_t, size_t);\nint readlink(uintptr_t, uintptr_t, size_t);\nint renameat(int, uintptr_t, int, uintptr_t);\nint setdomainname(uintptr_t, size_t);\nint sethostname(uintptr_t, size_t);\nint setpgid(int, int);\nint setsid();\nint settimeofday(uintptr_t);\nint setuid(int);\nint setgid(int);\nint setpriority(int, int, int);\nint statx(int, uintptr_t, int, int, uintptr_t);\nint sync();\nuintptr_t times(uintptr_t);\nint umask(int);\nint uname(uintptr_t);\nint unlink(uintptr_t);\nint unlinkat(int, uintptr_t, int);\nint ustat(int, uintptr_t);\nint write(int, uintptr_t, size_t);\nint dup2(int, int);\nint posix_fadvise64(int, long long, long long, int);\nint fchown(int, int, int);\nint fstat(int, uintptr_t);\nint fstatat(int, uintptr_t, uintptr_t, int);\nint fstatfs(int, uintptr_t);\nint ftruncate(int, long long);\nint getegid();\nint geteuid();\nint getgid();\nint getuid();\nint lchown(uintptr_t, int, int);\nint listen(int, int);\nint lstat(uintptr_t, uintptr_t);\nint pause();\nint pread64(int, uintptr_t, size_t, long long);\nint pwrite64(int, uintptr_t, size_t, long long);\n#define c_select select\nint select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint setregid(int, int);\nint setreuid(int, int);\nint shutdown(int, int);\nlong long splice(int, uintptr_t, int, uintptr_t, int, int);\nint stat(uintptr_t, uintptr_t);\nint statfs(uintptr_t, uintptr_t);\nint truncate(uintptr_t, long long);\nint bind(int, uintptr_t, uintptr_t);\nint connect(int, uintptr_t, uintptr_t);\nint getgroups(int, uintptr_t);\nint setgroups(int, uintptr_t);\nint getsockopt(int, int, int, uintptr_t, uintptr_t);\nint setsockopt(int, int, int, uintptr_t, uintptr_t);\nint socket(int, int, int);\nint socketpair(int, int, int, uintptr_t);\nint getpeername(int, uintptr_t, uintptr_t);\nint getsockname(int, uintptr_t, uintptr_t);\nint recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint nrecvmsg(int, uintptr_t, int);\nint nsendmsg(int, uintptr_t, int);\nint munmap(uintptr_t, uintptr_t);\nint madvise(uintptr_t, size_t, int);\nint mprotect(uintptr_t, size_t, int);\nint mlock(uintptr_t, size_t);\nint mlockall(int);\nint msync(uintptr_t, size_t, int);\nint munlock(uintptr_t, size_t);\nint munlockall();\nint pipe(uintptr_t);\nint poll(uintptr_t, int, int);\nint gettimeofday(uintptr_t, uintptr_t);\nint time(uintptr_t);\nint utime(uintptr_t, uintptr_t);\nunsigned long long getsystemcfg(int);\nint umount(uintptr_t);\nint getrlimit64(int, uintptr_t);\nlong long lseek64(int, long long, int);\nuintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long);\n\n*/\nimport \"C\"\nimport (\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getcwd(buf []byte) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirent(fd int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {\n\tr0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))\n\twpid = Pid_t(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))\n\tr = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))\n\tval = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsyncRange(fd int, how int, start int64, length int64) (err error) {\n\tr0, er := C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.acct(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.chdir(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.chroot(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, er := C.close(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, er := C.dup(C.int(oldfd))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tC.exit(C.int(code))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\tr0, er := C.fchdir(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\tr0, er := C.fchmod(C.int(fd), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\tr0, er := C.fdatasync(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, er := C.getpgid(C.int(pid))\n\tpgid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pid int) {\n\tr0, _ := C.getpgrp()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := C.getpid()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := C.getppid()\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, er := C.getpriority(C.int(which), C.int(who))\n\tprio = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\tr0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, er := C.getsid(C.int(pid))\n\tsid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig Signal) (err error) {\n\tr0, er := C.kill(C.int(pid), C.int(sig))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(dirfd int, path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\tr0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tvar _p2 int\n\t_p2 = len(buf)\n\tr0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(oldpath)))\n\t_p1 := uintptr(unsafe.Pointer(C.CString(newpath)))\n\tr0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\tr0, er := C.setpgid(C.int(pid), C.int(pgid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, er := C.setsid()\n\tpid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\tr0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\tr0, er := C.setuid(C.int(uid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(uid int) (err error) {\n\tr0, er := C.setgid(C.int(uid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\tr0, er := C.setpriority(C.int(which), C.int(who), C.int(prio))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tC.sync()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms))))\n\tticks = uintptr(r0)\n\tif uintptr(r0) == ^uintptr(0) && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := C.umask(C.int(mask))\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\tr0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.unlink(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\tr0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\tr0, er := C.dup2(C.int(oldfd), C.int(newfd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\tr0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\tr0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *Stat_t) (err error) {\n\tr0, er := C.fstat(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\tr0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\tr0, er := C.ftruncate(C.int(fd), C.longlong(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := C.getegid()\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := C.geteuid()\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := C.getgid()\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := C.getuid()\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\tr0, er := C.listen(C.int(s), C.int(n))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *Stat_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.lstat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\tr0, er := C.pause()\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\tr0, er := C.setregid(C.int(rgid), C.int(egid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\tr0, er := C.setreuid(C.int(ruid), C.int(euid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\tr0, er := C.shutdown(C.int(fd), C.int(how))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags))\n\tn = int64(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, statptr *Stat_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(statptr))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\tr0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\tr0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))\n\tnn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\tr0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\tr0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\tr0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, er := C.socket(C.int(domain), C.int(typ), C.int(proto))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\tr0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\tr0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\tr0, er := C.mlockall(C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\tr0, er := C.munlockall()\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\tr0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(timeout))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tv *Timeval, tzp *Timezone) (err error) {\n\tr0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t))))\n\ttt = Time_t(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsystemcfg(label int) (n uint64) {\n\tr0, _ := C.getsystemcfg(C.int(label))\n\tn = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc umount(target string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(target)))\n\tr0, er := C.umount(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\tr0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence))\n\toff = int64(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))\n\txaddr = uintptr(r0)\n\tif uintptr(r0) == ^uintptr(0) && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc64\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getcwd(buf []byte) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, e1 := callaccept(s, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirent(fd int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {\n\tr0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage)))\n\twpid = Pid_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\t_, e1 := callioctl(fd, req, arg)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\t_, e1 := callioctl_ptr(fd, req, arg)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {\n\tr0, e1 := callfcntl(fd, cmd, uintptr(arg))\n\tr = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {\n\t_, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, e1 := callfcntl(uintptr(fd), cmd, uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsyncRange(fd int, how int, start int64, length int64) (err error) {\n\t_, e1 := callfsync_range(fd, how, start, length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callacct(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callchdir(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callchroot(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, e1 := callclose(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, e1 := calldup(oldfd)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tcallexit(code)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, e1 := callfchdir(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, e1 := callfchmod(fd, mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, e1 := callfdatasync(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, e1 := callgetpgid(pid)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pid int) {\n\tr0, _ := callgetpgrp()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := callgetpid()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := callgetppid()\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, e1 := callgetpriority(which, who)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, e1 := callgetrusage(who, uintptr(unsafe.Pointer(rusage)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, e1 := callgetsid(pid)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig Signal) (err error) {\n\t_, e1 := callkill(pid, int(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkfifo(uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, dev)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, e1 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, e1 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, perm)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, e1 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), len(p))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tr0, e1 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), newdirfd, uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, e1 := callsetpgid(pid, pgid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, e1 := callsetsid()\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, e1 := callsettimeofday(uintptr(unsafe.Pointer(tv)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, e1 := callsetuid(uid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(uid int) (err error) {\n\t_, e1 := callsetgid(uid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, e1 := callsetpriority(which, who, prio)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tcallsync()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, e1 := calltimes(uintptr(unsafe.Pointer(tms)))\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := callumask(mask)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, e1 := calluname(uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callunlink(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), len(p))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, e1 := calldup2(oldfd, newfd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, e1 := callposix_fadvise64(fd, offset, length, advice)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, e1 := callfchown(fd, uid, gid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *Stat_t) (err error) {\n\t_, e1 := callfstat(fd, uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, e1 := callftruncate(fd, length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := callgetegid()\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := callgeteuid()\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := callgetgid()\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := callgetuid()\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, e1 := calllisten(s, n)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, e1 := callpause()\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, e1 := callsetregid(rgid, egid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, e1 := callsetreuid(ruid, euid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, e1 := callshutdown(fd, how)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, statptr *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statptr)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calltruncate(uintptr(unsafe.Pointer(_p0)), length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e1 := callbind(s, uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e1 := callconnect(s, uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, e1 := callgetgroups(n, uintptr(unsafe.Pointer(list)))\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, e1 := callsetgroups(n, uintptr(unsafe.Pointer(list)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, e1 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, e1 := callsetsockopt(s, level, name, uintptr(val), vallen)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, e1 := callsocket(domain, typ, proto)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, e1 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e1 := callgetpeername(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e1 := callgetsockname(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), flags, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, e1 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), flags, uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, e1 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), flags)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, e1 := callmunmap(addr, length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), advice)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), prot)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, e1 := callmlockall(flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, e1 := callmunlockall()\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, e1 := callpipe(uintptr(unsafe.Pointer(p)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, e1 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, timeout)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tv *Timeval, tzp *Timezone) (err error) {\n\t_, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, e1 := calltime(uintptr(unsafe.Pointer(t)))\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsystemcfg(label int) (n uint64) {\n\tr0, _ := callgetsystemcfg(label)\n\tn = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc umount(target string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callumount(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, e1 := calllseek(fd, offset, whence)\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, e1 := callmmap64(addr, length, prot, flags, fd, offset)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc64 && gc\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_accept accept \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getdirent getdirent \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fsync_range fsync_range \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_acct acct \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_chdir chdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_chroot chroot \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_close close \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_dup dup \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_exit exit \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fdatasync fdatasync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpid getpid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getppid getppid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsid getsid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_kill kill \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_syslog syslog \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mknod mknod \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_open64 open64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_openat openat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_read read \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_readlink readlink \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_renameat renameat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setdomainname setdomainname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sethostname sethostname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setsid setsid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setuid setuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setgid setgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_statx statx \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sync sync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_times times \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_umask umask \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_uname uname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_unlink unlink \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ustat ustat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_write write \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchown fchown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstat fstat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getegid getegid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getgid getgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getuid getuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lchown lchown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_listen listen \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lstat lstat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pause pause \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pread64 pread64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pwrite64 pwrite64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_select select \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pselect pselect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setregid setregid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_splice splice \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_stat stat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_statfs statfs \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_truncate truncate \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_bind bind \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_connect connect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_socket socket \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sendto sendto \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nrecvmsg nrecvmsg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nsendmsg nsendmsg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munmap munmap \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_madvise madvise \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mlock mlock \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_msync msync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munlock munlock \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pipe pipe \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_poll poll \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_time time \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_utime utime \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_umount umount \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lseek lseek \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mmap64 mmap64 \"libc.a/shr_64.o\"\n\n//go:linkname libc_utimes libc_utimes\n//go:linkname libc_utimensat libc_utimensat\n//go:linkname libc_getcwd libc_getcwd\n//go:linkname libc_accept libc_accept\n//go:linkname libc_getdirent libc_getdirent\n//go:linkname libc_wait4 libc_wait4\n//go:linkname libc_ioctl libc_ioctl\n//go:linkname libc_fcntl libc_fcntl\n//go:linkname libc_fsync_range libc_fsync_range\n//go:linkname libc_acct libc_acct\n//go:linkname libc_chdir libc_chdir\n//go:linkname libc_chroot libc_chroot\n//go:linkname libc_close libc_close\n//go:linkname libc_dup libc_dup\n//go:linkname libc_exit libc_exit\n//go:linkname libc_faccessat libc_faccessat\n//go:linkname libc_fchdir libc_fchdir\n//go:linkname libc_fchmod libc_fchmod\n//go:linkname libc_fchmodat libc_fchmodat\n//go:linkname libc_fchownat libc_fchownat\n//go:linkname libc_fdatasync libc_fdatasync\n//go:linkname libc_getpgid libc_getpgid\n//go:linkname libc_getpgrp libc_getpgrp\n//go:linkname libc_getpid libc_getpid\n//go:linkname libc_getppid libc_getppid\n//go:linkname libc_getpriority libc_getpriority\n//go:linkname libc_getrusage libc_getrusage\n//go:linkname libc_getsid libc_getsid\n//go:linkname libc_kill libc_kill\n//go:linkname libc_syslog libc_syslog\n//go:linkname libc_mkdir libc_mkdir\n//go:linkname libc_mkdirat libc_mkdirat\n//go:linkname libc_mkfifo libc_mkfifo\n//go:linkname libc_mknod libc_mknod\n//go:linkname libc_mknodat libc_mknodat\n//go:linkname libc_nanosleep libc_nanosleep\n//go:linkname libc_open64 libc_open64\n//go:linkname libc_openat libc_openat\n//go:linkname libc_read libc_read\n//go:linkname libc_readlink libc_readlink\n//go:linkname libc_renameat libc_renameat\n//go:linkname libc_setdomainname libc_setdomainname\n//go:linkname libc_sethostname libc_sethostname\n//go:linkname libc_setpgid libc_setpgid\n//go:linkname libc_setsid libc_setsid\n//go:linkname libc_settimeofday libc_settimeofday\n//go:linkname libc_setuid libc_setuid\n//go:linkname libc_setgid libc_setgid\n//go:linkname libc_setpriority libc_setpriority\n//go:linkname libc_statx libc_statx\n//go:linkname libc_sync libc_sync\n//go:linkname libc_times libc_times\n//go:linkname libc_umask libc_umask\n//go:linkname libc_uname libc_uname\n//go:linkname libc_unlink libc_unlink\n//go:linkname libc_unlinkat libc_unlinkat\n//go:linkname libc_ustat libc_ustat\n//go:linkname libc_write libc_write\n//go:linkname libc_dup2 libc_dup2\n//go:linkname libc_posix_fadvise64 libc_posix_fadvise64\n//go:linkname libc_fchown libc_fchown\n//go:linkname libc_fstat libc_fstat\n//go:linkname libc_fstatat libc_fstatat\n//go:linkname libc_fstatfs libc_fstatfs\n//go:linkname libc_ftruncate libc_ftruncate\n//go:linkname libc_getegid libc_getegid\n//go:linkname libc_geteuid libc_geteuid\n//go:linkname libc_getgid libc_getgid\n//go:linkname libc_getuid libc_getuid\n//go:linkname libc_lchown libc_lchown\n//go:linkname libc_listen libc_listen\n//go:linkname libc_lstat libc_lstat\n//go:linkname libc_pause libc_pause\n//go:linkname libc_pread64 libc_pread64\n//go:linkname libc_pwrite64 libc_pwrite64\n//go:linkname libc_select libc_select\n//go:linkname libc_pselect libc_pselect\n//go:linkname libc_setregid libc_setregid\n//go:linkname libc_setreuid libc_setreuid\n//go:linkname libc_shutdown libc_shutdown\n//go:linkname libc_splice libc_splice\n//go:linkname libc_stat libc_stat\n//go:linkname libc_statfs libc_statfs\n//go:linkname libc_truncate libc_truncate\n//go:linkname libc_bind libc_bind\n//go:linkname libc_connect libc_connect\n//go:linkname libc_getgroups libc_getgroups\n//go:linkname libc_setgroups libc_setgroups\n//go:linkname libc_getsockopt libc_getsockopt\n//go:linkname libc_setsockopt libc_setsockopt\n//go:linkname libc_socket libc_socket\n//go:linkname libc_socketpair libc_socketpair\n//go:linkname libc_getpeername libc_getpeername\n//go:linkname libc_getsockname libc_getsockname\n//go:linkname libc_recvfrom libc_recvfrom\n//go:linkname libc_sendto libc_sendto\n//go:linkname libc_nrecvmsg libc_nrecvmsg\n//go:linkname libc_nsendmsg libc_nsendmsg\n//go:linkname libc_munmap libc_munmap\n//go:linkname libc_madvise libc_madvise\n//go:linkname libc_mprotect libc_mprotect\n//go:linkname libc_mlock libc_mlock\n//go:linkname libc_mlockall libc_mlockall\n//go:linkname libc_msync libc_msync\n//go:linkname libc_munlock libc_munlock\n//go:linkname libc_munlockall libc_munlockall\n//go:linkname libc_pipe libc_pipe\n//go:linkname libc_poll libc_poll\n//go:linkname libc_gettimeofday libc_gettimeofday\n//go:linkname libc_time libc_time\n//go:linkname libc_utime libc_utime\n//go:linkname libc_getsystemcfg libc_getsystemcfg\n//go:linkname libc_umount libc_umount\n//go:linkname libc_getrlimit libc_getrlimit\n//go:linkname libc_lseek libc_lseek\n//go:linkname libc_mmap64 libc_mmap64\n\ntype syscallFunc uintptr\n\nvar (\n\tlibc_utimes,\n\tlibc_utimensat,\n\tlibc_getcwd,\n\tlibc_accept,\n\tlibc_getdirent,\n\tlibc_wait4,\n\tlibc_ioctl,\n\tlibc_fcntl,\n\tlibc_fsync_range,\n\tlibc_acct,\n\tlibc_chdir,\n\tlibc_chroot,\n\tlibc_close,\n\tlibc_dup,\n\tlibc_exit,\n\tlibc_faccessat,\n\tlibc_fchdir,\n\tlibc_fchmod,\n\tlibc_fchmodat,\n\tlibc_fchownat,\n\tlibc_fdatasync,\n\tlibc_getpgid,\n\tlibc_getpgrp,\n\tlibc_getpid,\n\tlibc_getppid,\n\tlibc_getpriority,\n\tlibc_getrusage,\n\tlibc_getsid,\n\tlibc_kill,\n\tlibc_syslog,\n\tlibc_mkdir,\n\tlibc_mkdirat,\n\tlibc_mkfifo,\n\tlibc_mknod,\n\tlibc_mknodat,\n\tlibc_nanosleep,\n\tlibc_open64,\n\tlibc_openat,\n\tlibc_read,\n\tlibc_readlink,\n\tlibc_renameat,\n\tlibc_setdomainname,\n\tlibc_sethostname,\n\tlibc_setpgid,\n\tlibc_setsid,\n\tlibc_settimeofday,\n\tlibc_setuid,\n\tlibc_setgid,\n\tlibc_setpriority,\n\tlibc_statx,\n\tlibc_sync,\n\tlibc_times,\n\tlibc_umask,\n\tlibc_uname,\n\tlibc_unlink,\n\tlibc_unlinkat,\n\tlibc_ustat,\n\tlibc_write,\n\tlibc_dup2,\n\tlibc_posix_fadvise64,\n\tlibc_fchown,\n\tlibc_fstat,\n\tlibc_fstatat,\n\tlibc_fstatfs,\n\tlibc_ftruncate,\n\tlibc_getegid,\n\tlibc_geteuid,\n\tlibc_getgid,\n\tlibc_getuid,\n\tlibc_lchown,\n\tlibc_listen,\n\tlibc_lstat,\n\tlibc_pause,\n\tlibc_pread64,\n\tlibc_pwrite64,\n\tlibc_select,\n\tlibc_pselect,\n\tlibc_setregid,\n\tlibc_setreuid,\n\tlibc_shutdown,\n\tlibc_splice,\n\tlibc_stat,\n\tlibc_statfs,\n\tlibc_truncate,\n\tlibc_bind,\n\tlibc_connect,\n\tlibc_getgroups,\n\tlibc_setgroups,\n\tlibc_getsockopt,\n\tlibc_setsockopt,\n\tlibc_socket,\n\tlibc_socketpair,\n\tlibc_getpeername,\n\tlibc_getsockname,\n\tlibc_recvfrom,\n\tlibc_sendto,\n\tlibc_nrecvmsg,\n\tlibc_nsendmsg,\n\tlibc_munmap,\n\tlibc_madvise,\n\tlibc_mprotect,\n\tlibc_mlock,\n\tlibc_mlockall,\n\tlibc_msync,\n\tlibc_munlock,\n\tlibc_munlockall,\n\tlibc_pipe,\n\tlibc_poll,\n\tlibc_gettimeofday,\n\tlibc_time,\n\tlibc_utime,\n\tlibc_getsystemcfg,\n\tlibc_umount,\n\tlibc_getrlimit,\n\tlibc_lseek,\n\tlibc_mmap64 syscallFunc\n)\n\n// Implemented in runtime/syscall_aix.go.\nfunc rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync_range)), 4, uintptr(fd), uintptr(how), uintptr(start), uintptr(length), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callclose(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup(oldfd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callexit(code int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchdir(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfdatasync(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgid(pid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgrp() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetppid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsid(pid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callkill(pid int, sig int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetuid(uid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgid(uid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsync() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltimes(tms uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumask(mask int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calluname(buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetegid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgeteuid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetuid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllisten(s int, n int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpause() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, statptr, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlockall(flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlockall() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpipe(p uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltime(t uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc64 && gccgo\n\npackage unix\n\n/*\n#include <stdint.h>\nint utimes(uintptr_t, uintptr_t);\nint utimensat(int, uintptr_t, uintptr_t, int);\nint getcwd(uintptr_t, size_t);\nint accept(int, uintptr_t, uintptr_t);\nint getdirent(int, uintptr_t, size_t);\nint wait4(int, uintptr_t, int, uintptr_t);\nint ioctl(int, int, uintptr_t);\nint fcntl(uintptr_t, int, uintptr_t);\nint fsync_range(int, int, long long, long long);\nint acct(uintptr_t);\nint chdir(uintptr_t);\nint chroot(uintptr_t);\nint close(int);\nint dup(int);\nvoid exit(int);\nint faccessat(int, uintptr_t, unsigned int, int);\nint fchdir(int);\nint fchmod(int, unsigned int);\nint fchmodat(int, uintptr_t, unsigned int, int);\nint fchownat(int, uintptr_t, int, int, int);\nint fdatasync(int);\nint getpgid(int);\nint getpgrp();\nint getpid();\nint getppid();\nint getpriority(int, int);\nint getrusage(int, uintptr_t);\nint getsid(int);\nint kill(int, int);\nint syslog(int, uintptr_t, size_t);\nint mkdir(int, uintptr_t, unsigned int);\nint mkdirat(int, uintptr_t, unsigned int);\nint mkfifo(uintptr_t, unsigned int);\nint mknod(uintptr_t, unsigned int, int);\nint mknodat(int, uintptr_t, unsigned int, int);\nint nanosleep(uintptr_t, uintptr_t);\nint open64(uintptr_t, int, unsigned int);\nint openat(int, uintptr_t, int, unsigned int);\nint read(int, uintptr_t, size_t);\nint readlink(uintptr_t, uintptr_t, size_t);\nint renameat(int, uintptr_t, int, uintptr_t);\nint setdomainname(uintptr_t, size_t);\nint sethostname(uintptr_t, size_t);\nint setpgid(int, int);\nint setsid();\nint settimeofday(uintptr_t);\nint setuid(int);\nint setgid(int);\nint setpriority(int, int, int);\nint statx(int, uintptr_t, int, int, uintptr_t);\nint sync();\nuintptr_t times(uintptr_t);\nint umask(int);\nint uname(uintptr_t);\nint unlink(uintptr_t);\nint unlinkat(int, uintptr_t, int);\nint ustat(int, uintptr_t);\nint write(int, uintptr_t, size_t);\nint dup2(int, int);\nint posix_fadvise64(int, long long, long long, int);\nint fchown(int, int, int);\nint fstat(int, uintptr_t);\nint fstatat(int, uintptr_t, uintptr_t, int);\nint fstatfs(int, uintptr_t);\nint ftruncate(int, long long);\nint getegid();\nint geteuid();\nint getgid();\nint getuid();\nint lchown(uintptr_t, int, int);\nint listen(int, int);\nint lstat(uintptr_t, uintptr_t);\nint pause();\nint pread64(int, uintptr_t, size_t, long long);\nint pwrite64(int, uintptr_t, size_t, long long);\n#define c_select select\nint select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint setregid(int, int);\nint setreuid(int, int);\nint shutdown(int, int);\nlong long splice(int, uintptr_t, int, uintptr_t, int, int);\nint stat(uintptr_t, uintptr_t);\nint statfs(uintptr_t, uintptr_t);\nint truncate(uintptr_t, long long);\nint bind(int, uintptr_t, uintptr_t);\nint connect(int, uintptr_t, uintptr_t);\nint getgroups(int, uintptr_t);\nint setgroups(int, uintptr_t);\nint getsockopt(int, int, int, uintptr_t, uintptr_t);\nint setsockopt(int, int, int, uintptr_t, uintptr_t);\nint socket(int, int, int);\nint socketpair(int, int, int, uintptr_t);\nint getpeername(int, uintptr_t, uintptr_t);\nint getsockname(int, uintptr_t, uintptr_t);\nint recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint nrecvmsg(int, uintptr_t, int);\nint nsendmsg(int, uintptr_t, int);\nint munmap(uintptr_t, uintptr_t);\nint madvise(uintptr_t, size_t, int);\nint mprotect(uintptr_t, size_t, int);\nint mlock(uintptr_t, size_t);\nint mlockall(int);\nint msync(uintptr_t, size_t, int);\nint munlock(uintptr_t, size_t);\nint munlockall();\nint pipe(uintptr_t);\nint poll(uintptr_t, int, int);\nint gettimeofday(uintptr_t, uintptr_t);\nint time(uintptr_t);\nint utime(uintptr_t, uintptr_t);\nunsigned long long getsystemcfg(int);\nint umount(uintptr_t);\nint getrlimit(int, uintptr_t);\nlong long lseek(int, long long, int);\nuintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long);\n\n*/\nimport \"C\"\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg))))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.acct(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.chdir(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.chroot(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callclose(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.close(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup(oldfd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.dup(C.int(oldfd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callexit(code int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.exit(C.int(code)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchdir(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchdir(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchmod(C.int(fd), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfdatasync(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fdatasync(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgid(pid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpgid(C.int(pid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgrp() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpgrp())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetppid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getppid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpriority(C.int(which), C.int(who)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsid(pid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsid(C.int(pid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callkill(pid int, sig int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.kill(C.int(pid), C.int(sig)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setpgid(C.int(pid), C.int(pgid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setsid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.settimeofday(C.uintptr_t(tv)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetuid(uid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setuid(C.int(uid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgid(uid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setgid(C.int(uid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsync() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sync())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltimes(tms uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.times(C.uintptr_t(tms)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumask(mask int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.umask(C.int(mask)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calluname(buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.uname(C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.unlink(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetegid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getegid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgeteuid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.geteuid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getgid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetuid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getuid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllisten(s int, n int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.listen(C.int(s), C.int(n)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpause() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pause())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setregid(C.int(rgid), C.int(egid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setreuid(C.int(ruid), C.int(euid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.shutdown(C.int(fd), C.int(how)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(statptr)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlockall(flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mlockall(C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlockall() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munlockall())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpipe(p uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pipe(C.uintptr_t(p)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltime(t uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.time(C.uintptr_t(t)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsystemcfg(C.int(label)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.umount(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go",
    "content": "// go run mksyscall.go -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build darwin && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc closedir(dir uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_closedir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_closedir closedir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {\n\tr0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))\n\tres = Errno(r0)\n\treturn\n}\n\nvar libc_readdir_r_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readdir_r readdir_r \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe pipe \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getxattr getxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fgetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fgetxattr fgetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setxattr setxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsetxattr fsetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_removexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_removexattr removexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fremovexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fremovexattr fremovexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listxattr listxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flistxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flistxattr flistxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renamexNp(from string, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renamex_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renamex_np renamex_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameatx_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameatx_np renameatx_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_chdir_np(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_chdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_fchdir_np(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_fchdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendfile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendfile sendfile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmat shmat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\tresult = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmctl shmctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmdt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmdt shmdt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag))\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmget_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmget shmget \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefile(src string, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefile clonefile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefileat clonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_exchangedata_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exchangedata exchangedata \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fclonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fclonefileat fclonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\nvar libc_getdtablesize_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdtablesize getdtablesize \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(attrBuf) > 0 {\n\t\t_p1 = unsafe.Pointer(&attrBuf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setattrlist_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setattrlist setattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setprivexec_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setprivexec setprivexec \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_undelete_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_undelete undelete \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat64 fstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat64 fstatat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat64_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat64 lstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ptrace_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ptrace ptrace \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat64 stat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs64 statfs64 \"/usr/lib/libSystem.B.dylib\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s",
    "content": "// go run mkasm.go darwin amd64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fdopendir(SB)\nGLOBL\t·libc_fdopendir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB)\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_closedir(SB)\nGLOBL\t·libc_closedir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB)\n\nTEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readdir_r(SB)\nGLOBL\t·libc_readdir_r_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB)\n\nTEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe(SB)\nGLOBL\t·libc_pipe_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB)\n\nTEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getxattr(SB)\nGLOBL\t·libc_getxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB)\n\nTEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fgetxattr(SB)\nGLOBL\t·libc_fgetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB)\n\nTEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setxattr(SB)\nGLOBL\t·libc_setxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB)\n\nTEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsetxattr(SB)\nGLOBL\t·libc_fsetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB)\n\nTEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_removexattr(SB)\nGLOBL\t·libc_removexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB)\n\nTEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fremovexattr(SB)\nGLOBL\t·libc_fremovexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB)\n\nTEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listxattr(SB)\nGLOBL\t·libc_listxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB)\n\nTEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flistxattr(SB)\nGLOBL\t·libc_flistxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renamex_np(SB)\nGLOBL\t·libc_renamex_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB)\n\nTEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameatx_np(SB)\nGLOBL\t·libc_renameatx_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_chdir_np(SB)\nGLOBL\t·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB)\n\nTEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_fchdir_np(SB)\nGLOBL\t·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB)\n\nTEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendfile(SB)\nGLOBL\t·libc_sendfile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB)\n\nTEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmat(SB)\nGLOBL\t·libc_shmat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB)\n\nTEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmctl(SB)\nGLOBL\t·libc_shmctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB)\n\nTEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmdt(SB)\nGLOBL\t·libc_shmdt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB)\n\nTEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmget(SB)\nGLOBL\t·libc_shmget_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefile(SB)\nGLOBL\t·libc_clonefile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB)\n\nTEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefileat(SB)\nGLOBL\t·libc_clonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exchangedata(SB)\nGLOBL\t·libc_exchangedata_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fclonefileat(SB)\nGLOBL\t·libc_fclonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdtablesize(SB)\nGLOBL\t·libc_getdtablesize_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setattrlist(SB)\nGLOBL\t·libc_setattrlist_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setprivexec(SB)\nGLOBL\t·libc_setprivexec_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_undelete(SB)\nGLOBL\t·libc_undelete_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_fstat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat64(SB)\nGLOBL\t·libc_fstat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat64_trampoline_addr(SB)/8, $libc_fstat64_trampoline<>(SB)\n\nTEXT libc_fstatat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat64(SB)\nGLOBL\t·libc_fstatat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat64_trampoline_addr(SB)/8, $libc_fstatat64_trampoline<>(SB)\n\nTEXT libc_fstatfs64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs64(SB)\nGLOBL\t·libc_fstatfs64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs64_trampoline_addr(SB)/8, $libc_fstatfs64_trampoline<>(SB)\n\nTEXT libc_getfsstat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat64(SB)\nGLOBL\t·libc_getfsstat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat64_trampoline_addr(SB)/8, $libc_getfsstat64_trampoline<>(SB)\n\nTEXT libc_lstat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat64(SB)\nGLOBL\t·libc_lstat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat64_trampoline_addr(SB)/8, $libc_lstat64_trampoline<>(SB)\n\nTEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ptrace(SB)\nGLOBL\t·libc_ptrace_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB)\n\nTEXT libc_stat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat64(SB)\nGLOBL\t·libc_stat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat64_trampoline_addr(SB)/8, $libc_stat64_trampoline<>(SB)\n\nTEXT libc_statfs64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs64(SB)\nGLOBL\t·libc_statfs64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs64_trampoline_addr(SB)/8, $libc_statfs64_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go",
    "content": "// go run mksyscall.go -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build darwin && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc closedir(dir uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_closedir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_closedir closedir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {\n\tr0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))\n\tres = Errno(r0)\n\treturn\n}\n\nvar libc_readdir_r_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readdir_r readdir_r \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe pipe \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getxattr getxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fgetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fgetxattr fgetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setxattr setxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsetxattr fsetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_removexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_removexattr removexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fremovexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fremovexattr fremovexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listxattr listxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flistxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flistxattr flistxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renamexNp(from string, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renamex_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renamex_np renamex_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameatx_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameatx_np renameatx_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_chdir_np(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_chdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_fchdir_np(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_fchdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendfile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendfile sendfile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmat shmat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\tresult = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmctl shmctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmdt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmdt shmdt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag))\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmget_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmget shmget \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefile(src string, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefile clonefile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefileat clonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_exchangedata_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exchangedata exchangedata \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fclonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fclonefileat fclonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\nvar libc_getdtablesize_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdtablesize getdtablesize \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(attrBuf) > 0 {\n\t\t_p1 = unsafe.Pointer(&attrBuf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setattrlist_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setattrlist setattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setprivexec_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setprivexec setprivexec \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_undelete_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_undelete undelete \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ptrace_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ptrace ptrace \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"/usr/lib/libSystem.B.dylib\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s",
    "content": "// go run mkasm.go darwin arm64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fdopendir(SB)\nGLOBL\t·libc_fdopendir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB)\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_closedir(SB)\nGLOBL\t·libc_closedir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB)\n\nTEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readdir_r(SB)\nGLOBL\t·libc_readdir_r_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB)\n\nTEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe(SB)\nGLOBL\t·libc_pipe_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB)\n\nTEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getxattr(SB)\nGLOBL\t·libc_getxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB)\n\nTEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fgetxattr(SB)\nGLOBL\t·libc_fgetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB)\n\nTEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setxattr(SB)\nGLOBL\t·libc_setxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB)\n\nTEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsetxattr(SB)\nGLOBL\t·libc_fsetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB)\n\nTEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_removexattr(SB)\nGLOBL\t·libc_removexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB)\n\nTEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fremovexattr(SB)\nGLOBL\t·libc_fremovexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB)\n\nTEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listxattr(SB)\nGLOBL\t·libc_listxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB)\n\nTEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flistxattr(SB)\nGLOBL\t·libc_flistxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renamex_np(SB)\nGLOBL\t·libc_renamex_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB)\n\nTEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameatx_np(SB)\nGLOBL\t·libc_renameatx_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_chdir_np(SB)\nGLOBL\t·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB)\n\nTEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_fchdir_np(SB)\nGLOBL\t·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB)\n\nTEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendfile(SB)\nGLOBL\t·libc_sendfile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB)\n\nTEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmat(SB)\nGLOBL\t·libc_shmat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB)\n\nTEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmctl(SB)\nGLOBL\t·libc_shmctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB)\n\nTEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmdt(SB)\nGLOBL\t·libc_shmdt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB)\n\nTEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmget(SB)\nGLOBL\t·libc_shmget_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefile(SB)\nGLOBL\t·libc_clonefile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB)\n\nTEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefileat(SB)\nGLOBL\t·libc_clonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exchangedata(SB)\nGLOBL\t·libc_exchangedata_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fclonefileat(SB)\nGLOBL\t·libc_fclonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdtablesize(SB)\nGLOBL\t·libc_getdtablesize_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setattrlist(SB)\nGLOBL\t·libc_setattrlist_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setprivexec(SB)\nGLOBL\t·libc_setprivexec_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_undelete(SB)\nGLOBL\t·libc_undelete_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ptrace(SB)\nGLOBL\t·libc_ptrace_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go",
    "content": "// go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build dragonfly && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (r int, w int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc extpread(fd int, p []byte, flags int, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go",
    "content": "// go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go",
    "content": "// go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go",
    "content": "// go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, uintptr(dev), uintptr(dev>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go",
    "content": "// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go",
    "content": "// go run mksyscall.go -tags freebsd,riscv64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_riscv64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && riscv64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go",
    "content": "// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build illumos && amd64\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_readv readv \"libc.so\"\n//go:cgo_import_dynamic libc_preadv preadv \"libc.so\"\n//go:cgo_import_dynamic libc_writev writev \"libc.so\"\n//go:cgo_import_dynamic libc_pwritev pwritev \"libc.so\"\n//go:cgo_import_dynamic libc_accept4 accept4 \"libsocket.so\"\n\n//go:linkname procreadv libc_readv\n//go:linkname procpreadv libc_preadv\n//go:linkname procwritev libc_writev\n//go:linkname procpwritev libc_pwritev\n//go:linkname procaccept4 libc_accept4\n\nvar (\n\tprocreadv,\n\tprocpreadv,\n\tprocwritev,\n\tprocpwritev,\n\tprocaccept4 syscallFunc\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readv(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv(fd int, iovs []Iovec, off int64) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writev(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev(fd int, iovs []Iovec, off int64) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept4)), 4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux.go",
    "content": "// Code generated by mkmerge; DO NOT EDIT.\n\n//go:build linux\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) {\n\t_, _, e1 := Syscall6(SYS_WAITID, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT_SETATTR, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(unsafe.Pointer(attr)), uintptr(size), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockAdjtime(clockid int32, buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_CLOCK_ADJTIME, uintptr(clockid), uintptr(unsafe.Pointer(buf)), 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CloseRange(first uint, last uint, flags uint) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE_RANGE, uintptr(first), uintptr(last), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FSMOUNT, uintptr(fd), uintptr(flags), uintptr(mountAttrs))\n\tfsfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsopen(fsName string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsName)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_FSOPEN, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fspick(dirfd int, pathName string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathName)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_FSPICK, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fromPathName)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(toPathName)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOVE_MOUNT, uintptr(fromDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(toDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc OpenTree(dfd int, fileName string, flags uint) (r int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fileName)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN_TREE, uintptr(dfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tr = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc TimerfdCreate(clockid int, flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMERFD_CREATE, uintptr(clockid), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc TimerfdGettime(fd int, currValue *ItimerSpec) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TIMERFD_GETTIME, uintptr(fd), uintptr(unsafe.Pointer(currValue)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_TIMERFD_SETTIME, uintptr(fd), uintptr(flags), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readv(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writev(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldaddr), uintptr(oldlength), uintptr(newlength), uintptr(flags), uintptr(newaddr), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(localIov) > 0 {\n\t\t_p0 = unsafe.Pointer(&localIov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(remoteIov) > 0 {\n\t\t_p1 = unsafe.Pointer(&remoteIov[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PROCESS_VM_READV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(localIov) > 0 {\n\t\t_p0 = unsafe.Pointer(&localIov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(remoteIov) > 0 {\n\t\t_p1 = unsafe.Pointer(&remoteIov[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PROCESS_VM_WRITEV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PidfdOpen(pid int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_PIDFD_OPEN, uintptr(pid), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_PIDFD_GETFD, uintptr(pidfd), uintptr(targetfd), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PIDFD_SEND_SIGNAL, uintptr(pidfd), uintptr(sig), uintptr(unsafe.Pointer(info)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall(SYS_SHMAT, uintptr(id), uintptr(addr), uintptr(flag))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\tr0, _, e1 := Syscall(SYS_SHMCTL, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\tresult = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_SHMDT, uintptr(addr), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\tr0, _, e1 := Syscall(SYS_SHMGET, uintptr(key), uintptr(size), uintptr(flag))\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getitimer(which int, currValue *Itimerval) (err error) {\n\t_, _, e1 := Syscall(SYS_GETITIMER, uintptr(which), uintptr(unsafe.Pointer(currValue)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) {\n\t_, _, e1 := Syscall(SYS_SETITIMER, uintptr(which), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_RT_SIGPROCMASK, uintptr(how), uintptr(unsafe.Pointer(set)), uintptr(unsafe.Pointer(oldset)), uintptr(sigsetsize), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tRawSyscallNoError(SYS_GETRESUID, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tRawSyscallNoError(SYS_GETRESGID, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) {\n\t_, _, e1 := Syscall(SYS_SCHED_SETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) {\n\t_, _, e1 := Syscall6(SYS_SCHED_GETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(size), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) {\n\t_, _, e1 := Syscall6(SYS_CACHESTAT, uintptr(fd), uintptr(unsafe.Pointer(crange)), uintptr(unsafe.Pointer(cstat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mseal(b []byte, flags uint) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSEAL, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_386.go",
    "content": "// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go",
    "content": "// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdSecret(flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go",
    "content": "// go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc armSyncFileRange(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go",
    "content": "// go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdSecret(flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go",
    "content": "// go run mksyscall.go -tags linux,loong64 syscall_linux.go syscall_linux_loong64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && loong64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go",
    "content": "// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mips\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r0)<<32 | int64(r1))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go",
    "content": "// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mips64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, st *stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go",
    "content": "// go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mips64le\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, st *stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go",
    "content": "// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mipsle\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go",
    "content": "// go run mksyscall.go -b32 -tags linux,ppc syscall_linux.go syscall_linux_ppc.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && ppc\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r0)<<32 | int64(r1))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length>>32), uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length>>32), uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc syncFileRange2(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go",
    "content": "// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && ppc64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc syncFileRange2(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go",
    "content": "// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && ppc64le\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc syncFileRange2(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go",
    "content": "// go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && riscv64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdSecret(flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(pairs) > 0 {\n\t\t_p0 = unsafe.Pointer(&pairs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_RISCV_HWPROBE, uintptr(_p0), uintptr(len(pairs)), uintptr(cpuCount), uintptr(unsafe.Pointer(cpus)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go",
    "content": "// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && s390x\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go",
    "content": "// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && sparc64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go",
    "content": "// go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go",
    "content": "// go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go",
    "content": "// go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go",
    "content": "// go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go",
    "content": "// go run mksyscall.go -l32 -openbsd -libc -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s",
    "content": "// go run mkasm.go openbsd 386\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s",
    "content": "// go run mkasm.go openbsd amd64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go",
    "content": "// go run mksyscall.go -l32 -openbsd -arm -libc -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_ftruncate_trampoline_addr, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s",
    "content": "// go run mkasm.go openbsd arm\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s",
    "content": "// go run mkasm.go openbsd arm64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && mips64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s",
    "content": "// go run mkasm.go openbsd mips64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,ppc64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && ppc64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s",
    "content": "// go run mkasm.go openbsd ppc64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getgroups(SB)\n\tRET\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setgroups(SB)\n\tRET\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_wait4(SB)\n\tRET\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_accept(SB)\n\tRET\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_bind(SB)\n\tRET\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_connect(SB)\n\tRET\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_socket(SB)\n\tRET\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getsockopt(SB)\n\tRET\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setsockopt(SB)\n\tRET\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpeername(SB)\n\tRET\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getsockname(SB)\n\tRET\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_shutdown(SB)\n\tRET\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_socketpair(SB)\n\tRET\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_recvfrom(SB)\n\tRET\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sendto(SB)\n\tRET\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_recvmsg(SB)\n\tRET\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sendmsg(SB)\n\tRET\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_kevent(SB)\n\tRET\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_utimes(SB)\n\tRET\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_futimes(SB)\n\tRET\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_poll(SB)\n\tRET\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_madvise(SB)\n\tRET\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mlock(SB)\n\tRET\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mlockall(SB)\n\tRET\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mprotect(SB)\n\tRET\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_msync(SB)\n\tRET\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_munlock(SB)\n\tRET\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_munlockall(SB)\n\tRET\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pipe2(SB)\n\tRET\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getdents(SB)\n\tRET\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getcwd(SB)\n\tRET\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getresuid(SB)\n\tRET\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getresgid(SB)\n\tRET\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_ioctl(SB)\n\tRET\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sysctl(SB)\n\tRET\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fcntl(SB)\n\tRET\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_ppoll(SB)\n\tRET\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_access(SB)\n\tRET\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_adjtime(SB)\n\tRET\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chdir(SB)\n\tRET\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chflags(SB)\n\tRET\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chmod(SB)\n\tRET\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chown(SB)\n\tRET\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chroot(SB)\n\tRET\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_clock_gettime(SB)\n\tRET\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_close(SB)\n\tRET\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_dup(SB)\n\tRET\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_dup2(SB)\n\tRET\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_dup3(SB)\n\tRET\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_exit(SB)\n\tRET\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_faccessat(SB)\n\tRET\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchdir(SB)\n\tRET\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchflags(SB)\n\tRET\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchmod(SB)\n\tRET\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchmodat(SB)\n\tRET\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchown(SB)\n\tRET\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchownat(SB)\n\tRET\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_flock(SB)\n\tRET\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fpathconf(SB)\n\tRET\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fstat(SB)\n\tRET\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fstatat(SB)\n\tRET\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fstatfs(SB)\n\tRET\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fsync(SB)\n\tRET\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_ftruncate(SB)\n\tRET\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getegid(SB)\n\tRET\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_geteuid(SB)\n\tRET\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getgid(SB)\n\tRET\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpgid(SB)\n\tRET\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpgrp(SB)\n\tRET\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpid(SB)\n\tRET\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getppid(SB)\n\tRET\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpriority(SB)\n\tRET\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getrlimit(SB)\n\tRET\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getrtable(SB)\n\tRET\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getrusage(SB)\n\tRET\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getsid(SB)\n\tRET\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_gettimeofday(SB)\n\tRET\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getuid(SB)\n\tRET\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_issetugid(SB)\n\tRET\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_kill(SB)\n\tRET\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_kqueue(SB)\n\tRET\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_lchown(SB)\n\tRET\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_link(SB)\n\tRET\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_linkat(SB)\n\tRET\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_listen(SB)\n\tRET\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_lstat(SB)\n\tRET\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkdir(SB)\n\tRET\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkdirat(SB)\n\tRET\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkfifo(SB)\n\tRET\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkfifoat(SB)\n\tRET\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mknod(SB)\n\tRET\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mknodat(SB)\n\tRET\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mount(SB)\n\tRET\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_nanosleep(SB)\n\tRET\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_open(SB)\n\tRET\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_openat(SB)\n\tRET\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pathconf(SB)\n\tRET\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pread(SB)\n\tRET\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pwrite(SB)\n\tRET\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_read(SB)\n\tRET\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_readlink(SB)\n\tRET\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_readlinkat(SB)\n\tRET\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_rename(SB)\n\tRET\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_renameat(SB)\n\tRET\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_revoke(SB)\n\tRET\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_rmdir(SB)\n\tRET\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_lseek(SB)\n\tRET\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_select(SB)\n\tRET\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setegid(SB)\n\tRET\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_seteuid(SB)\n\tRET\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setgid(SB)\n\tRET\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setlogin(SB)\n\tRET\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setpgid(SB)\n\tRET\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setpriority(SB)\n\tRET\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setregid(SB)\n\tRET\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setreuid(SB)\n\tRET\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setresgid(SB)\n\tRET\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setresuid(SB)\n\tRET\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setrtable(SB)\n\tRET\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setsid(SB)\n\tRET\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_settimeofday(SB)\n\tRET\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setuid(SB)\n\tRET\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_stat(SB)\n\tRET\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_statfs(SB)\n\tRET\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_symlink(SB)\n\tRET\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_symlinkat(SB)\n\tRET\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sync(SB)\n\tRET\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_truncate(SB)\n\tRET\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_umask(SB)\n\tRET\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unlink(SB)\n\tRET\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unlinkat(SB)\n\tRET\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unmount(SB)\n\tRET\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_write(SB)\n\tRET\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mmap(SB)\n\tRET\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_munmap(SB)\n\tRET\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getfsstat(SB)\n\tRET\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_utimensat(SB)\n\tRET\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pledge(SB)\n\tRET\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unveil(SB)\n\tRET\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,riscv64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_riscv64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && riscv64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s",
    "content": "// go run mkasm.go openbsd riscv64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go",
    "content": "// go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build solaris && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_pipe pipe \"libc.so\"\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n//go:cgo_import_dynamic libc_getsockname getsockname \"libsocket.so\"\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n//go:cgo_import_dynamic libc_gethostname gethostname \"libc.so\"\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n//go:cgo_import_dynamic libc_futimesat futimesat \"libc.so\"\n//go:cgo_import_dynamic libc_accept accept \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg \"libsocket.so\"\n//go:cgo_import_dynamic libc_acct acct \"libc.so\"\n//go:cgo_import_dynamic libc___makedev __makedev \"libc.so\"\n//go:cgo_import_dynamic libc___major __major \"libc.so\"\n//go:cgo_import_dynamic libc___minor __minor \"libc.so\"\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n//go:cgo_import_dynamic libc_clockgettime clockgettime \"libc.so\"\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n//go:cgo_import_dynamic libc_creat creat \"libc.so\"\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n//go:cgo_import_dynamic libc_fdatasync fdatasync \"libc.so\"\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n//go:cgo_import_dynamic libc_fstatvfs fstatvfs \"libc.so\"\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten \"libsocket.so\"\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n//go:cgo_import_dynamic libc_pause pause \"libc.so\"\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n//go:cgo_import_dynamic libc_sethostname sethostname \"libc.so\"\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n//go:cgo_import_dynamic libc_shutdown shutdown \"libsocket.so\"\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n//go:cgo_import_dynamic libc_statvfs statvfs \"libc.so\"\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n//go:cgo_import_dynamic libc_sysconf sysconf \"libc.so\"\n//go:cgo_import_dynamic libc_times times \"libc.so\"\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n//go:cgo_import_dynamic libc_uname uname \"libc.so\"\n//go:cgo_import_dynamic libc_umount umount \"libc.so\"\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n//go:cgo_import_dynamic libc_ustat ustat \"libc.so\"\n//go:cgo_import_dynamic libc_utime utime \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_bind __xnet_bind \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_connect __xnet_connect \"libsocket.so\"\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n//go:cgo_import_dynamic libc_sendfile sendfile \"libsendfile.so\"\n//go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_socket __xnet_socket \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair \"libsocket.so\"\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt \"libsocket.so\"\n//go:cgo_import_dynamic libc_getpeername getpeername \"libsocket.so\"\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libsocket.so\"\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libsocket.so\"\n//go:cgo_import_dynamic libc_port_create port_create \"libc.so\"\n//go:cgo_import_dynamic libc_port_associate port_associate \"libc.so\"\n//go:cgo_import_dynamic libc_port_dissociate port_dissociate \"libc.so\"\n//go:cgo_import_dynamic libc_port_get port_get \"libc.so\"\n//go:cgo_import_dynamic libc_port_getn port_getn \"libc.so\"\n//go:cgo_import_dynamic libc_putmsg putmsg \"libc.so\"\n//go:cgo_import_dynamic libc_getmsg getmsg \"libc.so\"\n\n//go:linkname procpipe libc_pipe\n//go:linkname procpipe2 libc_pipe2\n//go:linkname procgetsockname libc_getsockname\n//go:linkname procGetcwd libc_getcwd\n//go:linkname procgetgroups libc_getgroups\n//go:linkname procsetgroups libc_setgroups\n//go:linkname procwait4 libc_wait4\n//go:linkname procgethostname libc_gethostname\n//go:linkname procutimes libc_utimes\n//go:linkname procutimensat libc_utimensat\n//go:linkname procfcntl libc_fcntl\n//go:linkname procfutimesat libc_futimesat\n//go:linkname procaccept libc_accept\n//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg\n//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg\n//go:linkname procacct libc_acct\n//go:linkname proc__makedev libc___makedev\n//go:linkname proc__major libc___major\n//go:linkname proc__minor libc___minor\n//go:linkname procioctl libc_ioctl\n//go:linkname procpoll libc_poll\n//go:linkname procAccess libc_access\n//go:linkname procAdjtime libc_adjtime\n//go:linkname procChdir libc_chdir\n//go:linkname procChmod libc_chmod\n//go:linkname procChown libc_chown\n//go:linkname procChroot libc_chroot\n//go:linkname procClockGettime libc_clockgettime\n//go:linkname procClose libc_close\n//go:linkname procCreat libc_creat\n//go:linkname procDup libc_dup\n//go:linkname procDup2 libc_dup2\n//go:linkname procExit libc_exit\n//go:linkname procFaccessat libc_faccessat\n//go:linkname procFchdir libc_fchdir\n//go:linkname procFchmod libc_fchmod\n//go:linkname procFchmodat libc_fchmodat\n//go:linkname procFchown libc_fchown\n//go:linkname procFchownat libc_fchownat\n//go:linkname procFdatasync libc_fdatasync\n//go:linkname procFlock libc_flock\n//go:linkname procFpathconf libc_fpathconf\n//go:linkname procFstat libc_fstat\n//go:linkname procFstatat libc_fstatat\n//go:linkname procFstatvfs libc_fstatvfs\n//go:linkname procGetdents libc_getdents\n//go:linkname procGetgid libc_getgid\n//go:linkname procGetpid libc_getpid\n//go:linkname procGetpgid libc_getpgid\n//go:linkname procGetpgrp libc_getpgrp\n//go:linkname procGeteuid libc_geteuid\n//go:linkname procGetegid libc_getegid\n//go:linkname procGetppid libc_getppid\n//go:linkname procGetpriority libc_getpriority\n//go:linkname procGetrlimit libc_getrlimit\n//go:linkname procGetrusage libc_getrusage\n//go:linkname procGetsid libc_getsid\n//go:linkname procGettimeofday libc_gettimeofday\n//go:linkname procGetuid libc_getuid\n//go:linkname procKill libc_kill\n//go:linkname procLchown libc_lchown\n//go:linkname procLink libc_link\n//go:linkname proc__xnet_llisten libc___xnet_llisten\n//go:linkname procLstat libc_lstat\n//go:linkname procMadvise libc_madvise\n//go:linkname procMkdir libc_mkdir\n//go:linkname procMkdirat libc_mkdirat\n//go:linkname procMkfifo libc_mkfifo\n//go:linkname procMkfifoat libc_mkfifoat\n//go:linkname procMknod libc_mknod\n//go:linkname procMknodat libc_mknodat\n//go:linkname procMlock libc_mlock\n//go:linkname procMlockall libc_mlockall\n//go:linkname procMprotect libc_mprotect\n//go:linkname procMsync libc_msync\n//go:linkname procMunlock libc_munlock\n//go:linkname procMunlockall libc_munlockall\n//go:linkname procNanosleep libc_nanosleep\n//go:linkname procOpen libc_open\n//go:linkname procOpenat libc_openat\n//go:linkname procPathconf libc_pathconf\n//go:linkname procPause libc_pause\n//go:linkname procpread libc_pread\n//go:linkname procpwrite libc_pwrite\n//go:linkname procread libc_read\n//go:linkname procReadlink libc_readlink\n//go:linkname procRename libc_rename\n//go:linkname procRenameat libc_renameat\n//go:linkname procRmdir libc_rmdir\n//go:linkname proclseek libc_lseek\n//go:linkname procSelect libc_select\n//go:linkname procSetegid libc_setegid\n//go:linkname procSeteuid libc_seteuid\n//go:linkname procSetgid libc_setgid\n//go:linkname procSethostname libc_sethostname\n//go:linkname procSetpgid libc_setpgid\n//go:linkname procSetpriority libc_setpriority\n//go:linkname procSetregid libc_setregid\n//go:linkname procSetreuid libc_setreuid\n//go:linkname procSetsid libc_setsid\n//go:linkname procSetuid libc_setuid\n//go:linkname procshutdown libc_shutdown\n//go:linkname procStat libc_stat\n//go:linkname procStatvfs libc_statvfs\n//go:linkname procSymlink libc_symlink\n//go:linkname procSync libc_sync\n//go:linkname procSysconf libc_sysconf\n//go:linkname procTimes libc_times\n//go:linkname procTruncate libc_truncate\n//go:linkname procFsync libc_fsync\n//go:linkname procFtruncate libc_ftruncate\n//go:linkname procUmask libc_umask\n//go:linkname procUname libc_uname\n//go:linkname procumount libc_umount\n//go:linkname procUnlink libc_unlink\n//go:linkname procUnlinkat libc_unlinkat\n//go:linkname procUstat libc_ustat\n//go:linkname procUtime libc_utime\n//go:linkname proc__xnet_bind libc___xnet_bind\n//go:linkname proc__xnet_connect libc___xnet_connect\n//go:linkname procmmap libc_mmap\n//go:linkname procmunmap libc_munmap\n//go:linkname procsendfile libc_sendfile\n//go:linkname proc__xnet_sendto libc___xnet_sendto\n//go:linkname proc__xnet_socket libc___xnet_socket\n//go:linkname proc__xnet_socketpair libc___xnet_socketpair\n//go:linkname procwrite libc_write\n//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt\n//go:linkname procgetpeername libc_getpeername\n//go:linkname procsetsockopt libc_setsockopt\n//go:linkname procrecvfrom libc_recvfrom\n//go:linkname procport_create libc_port_create\n//go:linkname procport_associate libc_port_associate\n//go:linkname procport_dissociate libc_port_dissociate\n//go:linkname procport_get libc_port_get\n//go:linkname procport_getn libc_port_getn\n//go:linkname procputmsg libc_putmsg\n//go:linkname procgetmsg libc_getmsg\n\nvar (\n\tprocpipe,\n\tprocpipe2,\n\tprocgetsockname,\n\tprocGetcwd,\n\tprocgetgroups,\n\tprocsetgroups,\n\tprocwait4,\n\tprocgethostname,\n\tprocutimes,\n\tprocutimensat,\n\tprocfcntl,\n\tprocfutimesat,\n\tprocaccept,\n\tproc__xnet_recvmsg,\n\tproc__xnet_sendmsg,\n\tprocacct,\n\tproc__makedev,\n\tproc__major,\n\tproc__minor,\n\tprocioctl,\n\tprocpoll,\n\tprocAccess,\n\tprocAdjtime,\n\tprocChdir,\n\tprocChmod,\n\tprocChown,\n\tprocChroot,\n\tprocClockGettime,\n\tprocClose,\n\tprocCreat,\n\tprocDup,\n\tprocDup2,\n\tprocExit,\n\tprocFaccessat,\n\tprocFchdir,\n\tprocFchmod,\n\tprocFchmodat,\n\tprocFchown,\n\tprocFchownat,\n\tprocFdatasync,\n\tprocFlock,\n\tprocFpathconf,\n\tprocFstat,\n\tprocFstatat,\n\tprocFstatvfs,\n\tprocGetdents,\n\tprocGetgid,\n\tprocGetpid,\n\tprocGetpgid,\n\tprocGetpgrp,\n\tprocGeteuid,\n\tprocGetegid,\n\tprocGetppid,\n\tprocGetpriority,\n\tprocGetrlimit,\n\tprocGetrusage,\n\tprocGetsid,\n\tprocGettimeofday,\n\tprocGetuid,\n\tprocKill,\n\tprocLchown,\n\tprocLink,\n\tproc__xnet_llisten,\n\tprocLstat,\n\tprocMadvise,\n\tprocMkdir,\n\tprocMkdirat,\n\tprocMkfifo,\n\tprocMkfifoat,\n\tprocMknod,\n\tprocMknodat,\n\tprocMlock,\n\tprocMlockall,\n\tprocMprotect,\n\tprocMsync,\n\tprocMunlock,\n\tprocMunlockall,\n\tprocNanosleep,\n\tprocOpen,\n\tprocOpenat,\n\tprocPathconf,\n\tprocPause,\n\tprocpread,\n\tprocpwrite,\n\tprocread,\n\tprocReadlink,\n\tprocRename,\n\tprocRenameat,\n\tprocRmdir,\n\tproclseek,\n\tprocSelect,\n\tprocSetegid,\n\tprocSeteuid,\n\tprocSetgid,\n\tprocSethostname,\n\tprocSetpgid,\n\tprocSetpriority,\n\tprocSetregid,\n\tprocSetreuid,\n\tprocSetsid,\n\tprocSetuid,\n\tprocshutdown,\n\tprocStat,\n\tprocStatvfs,\n\tprocSymlink,\n\tprocSync,\n\tprocSysconf,\n\tprocTimes,\n\tprocTruncate,\n\tprocFsync,\n\tprocFtruncate,\n\tprocUmask,\n\tprocUname,\n\tprocumount,\n\tprocUnlink,\n\tprocUnlinkat,\n\tprocUstat,\n\tprocUtime,\n\tproc__xnet_bind,\n\tproc__xnet_connect,\n\tprocmmap,\n\tprocmunmap,\n\tprocsendfile,\n\tproc__xnet_sendto,\n\tproc__xnet_socket,\n\tproc__xnet_socketpair,\n\tprocwrite,\n\tproc__xnet_getsockopt,\n\tprocgetpeername,\n\tprocsetsockopt,\n\tprocrecvfrom,\n\tprocport_create,\n\tprocport_associate,\n\tprocport_dissociate,\n\tprocport_get,\n\tprocport_getn,\n\tprocputmsg,\n\tprocgetmsg syscallFunc\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (n int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int32(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gethostname(buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(fildes int, path *byte, times *[2]Timeval) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc acct(path *byte) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __makedev(version int, major uint, minor uint) (val uint64) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0)\n\tval = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __major(version int, dev uint64) (val uint) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)\n\tval = uint(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __minor(version int, dev uint64) (val uint) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)\n\tval = uint(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlRet(fd int, req int, arg uintptr) (ret int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClockGettime)), 2, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetsid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs(path string, vfsstat *Statvfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysconf(which int) (n int64, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSysconf)), 1, uintptr(which), 0, 0, 0, 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_create() (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_associate)), 5, uintptr(port), uintptr(source), uintptr(object), uintptr(events), uintptr(unsafe.Pointer(user)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_dissociate(port int, source int, object uintptr) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_dissociate)), 3, uintptr(port), uintptr(source), uintptr(object), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_get)), 3, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(unsafe.Pointer(timeout)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_getn)), 5, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(max), uintptr(unsafe.Pointer(nget)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procputmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(unsafe.Pointer(flags)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go",
    "content": "// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build zos && s390x\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg))\n\truntime.ExitSyscall()\n\tval = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FLISTXATTR_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FlistxattrAddr() *(func(fd int, dest []byte) (sz int, err error))\n\nvar Flistxattr = enter_Flistxattr\n\nfunc enter_Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tfuncref := get_FlistxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FLISTXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Flistxattr\n\t} else {\n\t\t*funcref = error_Flistxattr\n\t}\n\treturn (*funcref)(fd, dest)\n}\n\nfunc error_Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FremovexattrAddr() *(func(fd int, attr string) (err error))\n\nvar Fremovexattr = enter_Fremovexattr\n\nfunc enter_Fremovexattr(fd int, attr string) (err error) {\n\tfuncref := get_FremovexattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fremovexattr\n\t} else {\n\t\t*funcref = error_Fremovexattr\n\t}\n\treturn (*funcref)(fd, attr)\n}\n\nfunc error_Fremovexattr(fd int, attr string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_READ<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FGETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FgetxattrAddr() *(func(fd int, attr string, dest []byte) (sz int, err error))\n\nvar Fgetxattr = enter_Fgetxattr\n\nfunc enter_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tfuncref := get_FgetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FGETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fgetxattr\n\t} else {\n\t\t*funcref = error_Fgetxattr\n\t}\n\treturn (*funcref)(fd, attr, dest)\n}\n\nfunc error_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p1 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(data)), uintptr(flag))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FsetxattrAddr() *(func(fd int, attr string, data []byte, flag int) (err error))\n\nvar Fsetxattr = enter_Fsetxattr\n\nfunc enter_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) {\n\tfuncref := get_FsetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FSETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fsetxattr\n\t} else {\n\t\t*funcref = error_Fsetxattr\n\t}\n\treturn (*funcref)(fd, attr, data, flag)\n}\n\nfunc error_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT4_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_accept4Addr() *(func(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error))\n\nvar accept4 = enter_accept4\n\nfunc enter_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tfuncref := get_accept4Addr()\n\tif funcptrtest(GetZosLibVec()+SYS___ACCEPT4_A<<4, \"\") == 0 {\n\t\t*funcref = impl_accept4\n\t} else {\n\t\t*funcref = error_accept4\n\t}\n\treturn (*funcref)(s, rsa, addrlen, flags)\n}\n\nfunc error_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___BIND_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONNECT_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list)))\n\tnn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKET<<4, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKETPAIR<<4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETPEERNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETSOCKNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_RemovexattrAddr() *(func(path string, attr string) (err error))\n\nvar Removexattr = enter_Removexattr\n\nfunc enter_Removexattr(path string, attr string) (err error) {\n\tfuncref := get_RemovexattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Removexattr\n\t} else {\n\t\t*funcref = error_Removexattr\n\t}\n\treturn (*funcref)(path, attr)\n}\n\nfunc error_Removexattr(path string, attr string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVFROM_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDTO_A<<4, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MMAP<<4, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\truntime.ExitSyscall()\n\tret = uintptr(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MUNMAP<<4, uintptr(addr), uintptr(length))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMAT<<4, uintptr(id), uintptr(addr), uintptr(flag))\n\truntime.ExitSyscall()\n\tret = uintptr(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMCTL64<<4, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\truntime.ExitSyscall()\n\tresult = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMDT<<4, uintptr(addr))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMGET<<4, uintptr(key), uintptr(size), uintptr(flag))\n\truntime.ExitSyscall()\n\tid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCESS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHDIR_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHMOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CREAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP<<4, uintptr(oldfd))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP2<<4, uintptr(oldfd), uintptr(newfd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Dup3(oldfd int, newfd int, flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP3<<4, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_Dup3Addr() *(func(oldfd int, newfd int, flags int) (err error))\n\nvar Dup3 = enter_Dup3\n\nfunc enter_Dup3(oldfd int, newfd int, flags int) (err error) {\n\tfuncref := get_Dup3Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_DUP3<<4, \"\") == 0 {\n\t\t*funcref = impl_Dup3\n\t} else {\n\t\t*funcref = error_Dup3\n\t}\n\treturn (*funcref)(oldfd, newfd, flags)\n}\n\nfunc error_Dup3(oldfd int, newfd int, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Dirfd(dirp uintptr) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DIRFD<<4, uintptr(dirp))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_DirfdAddr() *(func(dirp uintptr) (fd int, err error))\n\nvar Dirfd = enter_Dirfd\n\nfunc enter_Dirfd(dirp uintptr) (fd int, err error) {\n\tfuncref := get_DirfdAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_DIRFD<<4, \"\") == 0 {\n\t\t*funcref = impl_Dirfd\n\t} else {\n\t\t*funcref = error_Dirfd\n\t}\n\treturn (*funcref)(dirp)\n}\n\nfunc error_Dirfd(dirp uintptr) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollCreate(size int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE<<4, uintptr(size))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollCreateAddr() *(func(size int) (fd int, err error))\n\nvar EpollCreate = enter_EpollCreate\n\nfunc enter_EpollCreate(size int) (fd int, err error) {\n\tfuncref := get_EpollCreateAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollCreate\n\t} else {\n\t\t*funcref = error_EpollCreate\n\t}\n\treturn (*funcref)(size)\n}\n\nfunc error_EpollCreate(size int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollCreate1(flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollCreate1Addr() *(func(flags int) (fd int, err error))\n\nvar EpollCreate1 = enter_EpollCreate1\n\nfunc enter_EpollCreate1(flags int) (fd int, err error) {\n\tfuncref := get_EpollCreate1Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollCreate1\n\t} else {\n\t\t*funcref = error_EpollCreate1\n\t}\n\treturn (*funcref)(flags)\n}\n\nfunc error_EpollCreate1(flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CTL<<4, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollCtlAddr() *(func(epfd int, op int, fd int, event *EpollEvent) (err error))\n\nvar EpollCtl = enter_EpollCtl\n\nfunc enter_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\tfuncref := get_EpollCtlAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_CTL<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollCtl\n\t} else {\n\t\t*funcref = error_EpollCtl\n\t}\n\treturn (*funcref)(epfd, op, fd, event)\n}\n\nfunc error_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), uintptr(unsafe.Pointer(sigmask)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollPwaitAddr() *(func(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error))\n\nvar EpollPwait = enter_EpollPwait\n\nfunc enter_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) {\n\tfuncref := get_EpollPwaitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollPwait\n\t} else {\n\t\t*funcref = error_EpollPwait\n\t}\n\treturn (*funcref)(epfd, events, msec, sigmask)\n}\n\nfunc error_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_WAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollWaitAddr() *(func(epfd int, events []EpollEvent, msec int) (n int, err error))\n\nvar EpollWait = enter_EpollWait\n\nfunc enter_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tfuncref := get_EpollWaitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_WAIT<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollWait\n\t} else {\n\t\t*funcref = error_EpollWait\n\t}\n\treturn (*funcref)(epfd, events, msec)\n}\n\nfunc error_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Errno2() (er2 int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERRNO2<<4)\n\truntime.ExitSyscall()\n\ter2 = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Eventfd(initval uint, flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EVENTFD<<4, uintptr(initval), uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EventfdAddr() *(func(initval uint, flags int) (fd int, err error))\n\nvar Eventfd = enter_Eventfd\n\nfunc enter_Eventfd(initval uint, flags int) (fd int, err error) {\n\tfuncref := get_EventfdAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EVENTFD<<4, \"\") == 0 {\n\t\t*funcref = impl_Eventfd\n\t} else {\n\t\t*funcref = error_Eventfd\n\t}\n\treturn (*funcref)(initval, flags)\n}\n\nfunc error_Eventfd(initval uint, flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\truntime.EnterSyscall()\n\tCallLeFuncWithErr(GetZosLibVec()+SYS_EXIT<<4, uintptr(code))\n\truntime.ExitSyscall()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FACCESSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FaccessatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error))\n\nvar Faccessat = enter_Faccessat\n\nfunc enter_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tfuncref := get_FaccessatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FACCESSAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Faccessat\n\t} else {\n\t\t*funcref = error_Faccessat\n\t}\n\treturn (*funcref)(dirfd, path, mode, flags)\n}\n\nfunc error_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHDIR<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHMOD<<4, uintptr(fd), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHMODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FchmodatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error))\n\nvar Fchmodat = enter_Fchmodat\n\nfunc enter_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tfuncref := get_FchmodatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FCHMODAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fchmodat\n\t} else {\n\t\t*funcref = error_Fchmodat\n\t}\n\treturn (*funcref)(dirfd, path, mode, flags)\n}\n\nfunc error_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHOWN<<4, uintptr(fd), uintptr(uid), uintptr(gid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHOWNAT_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FchownatAddr() *(func(fd int, path string, uid int, gid int, flags int) (err error))\n\nvar Fchownat = enter_Fchownat\n\nfunc enter_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) {\n\tfuncref := get_FchownatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FCHOWNAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fchownat\n\t} else {\n\t\t*funcref = error_Fchownat\n\t}\n\treturn (*funcref)(fd, path, uid, gid, flags)\n}\n\nfunc error_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg))\n\truntime.ExitSyscall()\n\tretval = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fdatasync(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FDATASYNC<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FdatasyncAddr() *(func(fd int) (err error))\n\nvar Fdatasync = enter_Fdatasync\n\nfunc enter_Fdatasync(fd int) (err error) {\n\tfuncref := get_FdatasyncAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_FDATASYNC<<4, \"\") == 0 {\n\t\t*funcref = impl_Fdatasync\n\t} else {\n\t\t*funcref = error_Fdatasync\n\t}\n\treturn (*funcref)(fd)\n}\n\nfunc error_Fdatasync(fd int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *Stat_LE_t) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTAT<<4, uintptr(fd), uintptr(unsafe.Pointer(stat)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSTATAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_fstatatAddr() *(func(dirfd int, path string, stat *Stat_LE_t, flags int) (err error))\n\nvar fstatat = enter_fstatat\n\nfunc enter_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) {\n\tfuncref := get_fstatatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FSTATAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_fstatat\n\t} else {\n\t\t*funcref = error_fstatat\n\t}\n\treturn (*funcref)(dirfd, path, stat, flags)\n}\n\nfunc error_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LGETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LgetxattrAddr() *(func(link string, attr string, dest []byte) (sz int, err error))\n\nvar Lgetxattr = enter_Lgetxattr\n\nfunc enter_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\tfuncref := get_LgetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LGETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lgetxattr\n\t} else {\n\t\t*funcref = error_Lgetxattr\n\t}\n\treturn (*funcref)(link, attr, dest)\n}\n\nfunc error_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LsetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error))\n\nvar Lsetxattr = enter_Lsetxattr\n\nfunc enter_Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tfuncref := get_LsetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LSETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lsetxattr\n\t} else {\n\t\t*funcref = error_Lsetxattr\n\t}\n\treturn (*funcref)(path, attr, data, flags)\n}\n\nfunc error_Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fstatfs(fd int, buf *Statfs_t) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATFS<<4, uintptr(fd), uintptr(unsafe.Pointer(buf)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FstatfsAddr() *(func(fd int, buf *Statfs_t) (err error))\n\nvar Fstatfs = enter_Fstatfs\n\nfunc enter_Fstatfs(fd int, buf *Statfs_t) (err error) {\n\tfuncref := get_FstatfsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_FSTATFS<<4, \"\") == 0 {\n\t\t*funcref = impl_Fstatfs\n\t} else {\n\t\t*funcref = error_Fstatfs\n\t}\n\treturn (*funcref)(fd, buf)\n}\n\nfunc error_Fstatfs(fd int, buf *Statfs_t) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs(fd int, stat *Statvfs_t) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATVFS<<4, uintptr(fd), uintptr(unsafe.Pointer(stat)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSYNC<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Futimes(fd int, tv []Timeval) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(tv) > 0 {\n\t\t_p0 = unsafe.Pointer(&tv[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FUTIMES<<4, uintptr(fd), uintptr(_p0), uintptr(len(tv)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FutimesAddr() *(func(fd int, tv []Timeval) (err error))\n\nvar Futimes = enter_Futimes\n\nfunc enter_Futimes(fd int, tv []Timeval) (err error) {\n\tfuncref := get_FutimesAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_FUTIMES<<4, \"\") == 0 {\n\t\t*funcref = impl_Futimes\n\t} else {\n\t\t*funcref = error_Futimes\n\t}\n\treturn (*funcref)(fd, tv)\n}\n\nfunc error_Futimes(fd int, tv []Timeval) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Futimesat(dirfd int, path string, tv []Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(tv) > 0 {\n\t\t_p1 = unsafe.Pointer(&tv[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FUTIMESAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FutimesatAddr() *(func(dirfd int, path string, tv []Timeval) (err error))\n\nvar Futimesat = enter_Futimesat\n\nfunc enter_Futimesat(dirfd int, path string, tv []Timeval) (err error) {\n\tfuncref := get_FutimesatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FUTIMESAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Futimesat\n\t} else {\n\t\t*funcref = error_Futimesat\n\t}\n\treturn (*funcref)(dirfd, path, tv)\n}\n\nfunc error_Futimesat(dirfd int, path string, tv []Timeval) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FTRUNCATE<<4, uintptr(fd), uintptr(length))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRANDOM<<4, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_GetrandomAddr() *(func(buf []byte, flags int) (n int, err error))\n\nvar Getrandom = enter_Getrandom\n\nfunc enter_Getrandom(buf []byte, flags int) (n int, err error) {\n\tfuncref := get_GetrandomAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_GETRANDOM<<4, \"\") == 0 {\n\t\t*funcref = impl_Getrandom\n\t} else {\n\t\t*funcref = error_Getrandom\n\t}\n\treturn (*funcref)(buf, flags)\n}\n\nfunc error_Getrandom(buf []byte, flags int) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyInit() (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_INOTIFY_INIT<<4)\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyInitAddr() *(func() (fd int, err error))\n\nvar InotifyInit = enter_InotifyInit\n\nfunc enter_InotifyInit() (fd int, err error) {\n\tfuncref := get_InotifyInitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyInit\n\t} else {\n\t\t*funcref = error_InotifyInit\n\t}\n\treturn (*funcref)()\n}\n\nfunc error_InotifyInit() (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyInit1(flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyInit1Addr() *(func(flags int) (fd int, err error))\n\nvar InotifyInit1 = enter_InotifyInit1\n\nfunc enter_InotifyInit1(flags int) (fd int, err error) {\n\tfuncref := get_InotifyInit1Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyInit1\n\t} else {\n\t\t*funcref = error_InotifyInit1\n\t}\n\treturn (*funcref)(flags)\n}\n\nfunc error_InotifyInit1(flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\truntime.ExitSyscall()\n\twatchdesc = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyAddWatchAddr() *(func(fd int, pathname string, mask uint32) (watchdesc int, err error))\n\nvar InotifyAddWatch = enter_InotifyAddWatch\n\nfunc enter_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tfuncref := get_InotifyAddWatchAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyAddWatch\n\t} else {\n\t\t*funcref = error_InotifyAddWatch\n\t}\n\treturn (*funcref)(fd, pathname, mask)\n}\n\nfunc error_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\twatchdesc = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, uintptr(fd), uintptr(watchdesc))\n\truntime.ExitSyscall()\n\tsuccess = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyRmWatchAddr() *(func(fd int, watchdesc uint32) (success int, err error))\n\nvar InotifyRmWatch = enter_InotifyRmWatch\n\nfunc enter_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tfuncref := get_InotifyRmWatchAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyRmWatch\n\t} else {\n\t\t*funcref = error_InotifyRmWatch\n\t}\n\treturn (*funcref)(fd, watchdesc)\n}\n\nfunc error_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tsuccess = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_ListxattrAddr() *(func(path string, dest []byte) (sz int, err error))\n\nvar Listxattr = enter_Listxattr\n\nfunc enter_Listxattr(path string, dest []byte) (sz int, err error) {\n\tfuncref := get_ListxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LISTXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Listxattr\n\t} else {\n\t\t*funcref = error_Listxattr\n\t}\n\treturn (*funcref)(path, dest)\n}\n\nfunc error_Listxattr(path string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LLISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LlistxattrAddr() *(func(path string, dest []byte) (sz int, err error))\n\nvar Llistxattr = enter_Llistxattr\n\nfunc enter_Llistxattr(path string, dest []byte) (sz int, err error) {\n\tfuncref := get_LlistxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LLISTXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Llistxattr\n\t} else {\n\t\t*funcref = error_Llistxattr\n\t}\n\treturn (*funcref)(path, dest)\n}\n\nfunc error_Llistxattr(path string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LremovexattrAddr() *(func(path string, attr string) (err error))\n\nvar Lremovexattr = enter_Lremovexattr\n\nfunc enter_Lremovexattr(path string, attr string) (err error) {\n\tfuncref := get_LremovexattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lremovexattr\n\t} else {\n\t\t*funcref = error_Lremovexattr\n\t}\n\treturn (*funcref)(path, attr)\n}\n\nfunc error_Lremovexattr(path string, attr string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lutimes(path string, tv []Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(tv) > 0 {\n\t\t_p1 = unsafe.Pointer(&tv[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LUTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LutimesAddr() *(func(path string, tv []Timeval) (err error))\n\nvar Lutimes = enter_Lutimes\n\nfunc enter_Lutimes(path string, tv []Timeval) (err error) {\n\tfuncref := get_LutimesAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LUTIMES_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lutimes\n\t} else {\n\t\t*funcref = error_Lutimes\n\t}\n\treturn (*funcref)(path, tv)\n}\n\nfunc error_Lutimes(path string, tv []Timeval) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MPROTECT<<4, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MSYNC<<4, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONSOLE2<<4, uintptr(unsafe.Pointer(cmsg)), uintptr(unsafe.Pointer(modstr)), uintptr(unsafe.Pointer(concmd)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(fds) > 0 {\n\t\t_p0 = unsafe.Pointer(&fds[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POLL<<4, uintptr(_p0), uintptr(len(fds)), uintptr(timeout))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_R_A<<4, uintptr(dirp), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STATFS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_StatfsAddr() *(func(path string, buf *Statfs_t) (err error))\n\nvar Statfs = enter_Statfs\n\nfunc enter_Statfs(path string, buf *Statfs_t) (err error) {\n\tfuncref := get_StatfsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___STATFS_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Statfs\n\t} else {\n\t\t*funcref = error_Statfs\n\t}\n\treturn (*funcref)(path, buf)\n}\n\nfunc error_Statfs(path string, buf *Statfs_t) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Syncfs(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SYNCFS<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SyncfsAddr() *(func(fd int) (err error))\n\nvar Syncfs = enter_Syncfs\n\nfunc enter_Syncfs(fd int) (err error) {\n\tfuncref := get_SyncfsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_SYNCFS<<4, \"\") == 0 {\n\t\t*funcref = impl_Syncfs\n\t} else {\n\t\t*funcref = error_Syncfs\n\t}\n\treturn (*funcref)(fd)\n}\n\nfunc error_Syncfs(fd int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TIMES<<4, uintptr(unsafe.Pointer(tms)))\n\truntime.ExitSyscall()\n\tticks = uintptr(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc W_Getmntent(buff *byte, size int) (lastsys int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_GETMNTENT<<4, uintptr(unsafe.Pointer(buff)), uintptr(size))\n\truntime.ExitSyscall()\n\tlastsys = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc W_Getmntent_A(buff *byte, size int) (lastsys int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___W_GETMNTENT_A<<4, uintptr(unsafe.Pointer(buff)), uintptr(size))\n\truntime.ExitSyscall()\n\tlastsys = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(filesystem)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p3 *byte\n\t_p3, err = BytePtrFromString(parm)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unmount_LE(filesystem string, mtm int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(filesystem)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mtm))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHROOT_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SELECT<<4, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)))\n\truntime.ExitSyscall()\n\tret = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____OSNAME_A<<4, uintptr(unsafe.Pointer(buf)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Unshare(flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNSHARE<<4, uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_UnshareAddr() *(func(flags int) (err error))\n\nvar Unshare = enter_Unshare\n\nfunc enter_Unshare(flags int) (err error) {\n\tfuncref := get_UnshareAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_UNSHARE<<4, \"\") == 0 {\n\t\t*funcref = impl_Unshare\n\t} else {\n\t\t*funcref = error_Unshare\n\t}\n\treturn (*funcref)(flags)\n}\n\nfunc error_Unshare(flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gethostname(buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(buf)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETGID<<4)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPID<<4)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPGID<<4, uintptr(pid))\n\tpgid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (pid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPPID<<4)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPRIORITY<<4, uintptr(which), uintptr(who))\n\truntime.ExitSyscall()\n\tprio = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(rlim)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrusage(who int, rusage *rusage_zos) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRUSAGE<<4, uintptr(who), uintptr(unsafe.Pointer(rusage)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEGID<<4)\n\truntime.ExitSyscall()\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEUID<<4)\n\truntime.ExitSyscall()\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSID<<4, uintptr(pid))\n\tsid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETUID<<4)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig Signal) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_KILL<<4, uintptr(pid), uintptr(sig))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LCHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldPath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newPath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINKAT_A<<4, uintptr(oldDirFd), uintptr(unsafe.Pointer(_p0)), uintptr(newDirFd), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LinkatAddr() *(func(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error))\n\nvar Linkat = enter_Linkat\n\nfunc enter_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) {\n\tfuncref := get_LinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Linkat\n\t} else {\n\t\t*funcref = error_Linkat\n\t}\n\treturn (*funcref)(oldDirFd, oldPath, newDirFd, newPath, flags)\n}\n\nfunc error_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LISTEN<<4, uintptr(s), uintptr(n))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *Stat_LE_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSTAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIRAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MkdiratAddr() *(func(dirfd int, path string, mode uint32) (err error))\n\nvar Mkdirat = enter_Mkdirat\n\nfunc enter_Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tfuncref := get_MkdiratAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___MKDIRAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Mkdirat\n\t} else {\n\t\t*funcref = error_Mkdirat\n\t}\n\treturn (*funcref)(dirfd, path, mode)\n}\n\nfunc error_Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFO_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MknodatAddr() *(func(dirfd int, path string, mode uint32, dev int) (err error))\n\nvar Mknodat = enter_Mknodat\n\nfunc enter_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tfuncref := get_MknodatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___MKNODAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Mknodat\n\t} else {\n\t\t*funcref = error_Mknodat\n\t}\n\treturn (*funcref)(dirfd, path, mode, dev)\n}\n\nfunc error_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_PivotRoot(newroot string, oldroot string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(oldroot)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_PivotRootAddr() *(func(newroot string, oldroot string) (err error))\n\nvar PivotRoot = enter_PivotRoot\n\nfunc enter_PivotRoot(newroot string, oldroot string) (err error) {\n\tfuncref := get_PivotRootAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_PivotRoot\n\t} else {\n\t\t*funcref = error_PivotRoot\n\t}\n\treturn (*funcref)(newroot, oldroot)\n}\n\nfunc error_PivotRoot(newroot string, oldroot string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PREAD<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PWRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PRCTL_A<<4, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_PrctlAddr() *(func(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error))\n\nvar Prctl = enter_Prctl\n\nfunc enter_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\tfuncref := get_PrctlAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___PRCTL_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Prctl\n\t} else {\n\t\t*funcref = error_Prctl\n\t}\n\treturn (*funcref)(option, arg2, arg3, arg4, arg5)\n}\n\nfunc error_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PRLIMIT<<4, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_PrlimitAddr() *(func(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error))\n\nvar Prlimit = enter_Prlimit\n\nfunc enter_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\tfuncref := get_PrlimitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_PRLIMIT<<4, \"\") == 0 {\n\t\t*funcref = impl_Prlimit\n\t} else {\n\t\t*funcref = error_Prlimit\n\t}\n\treturn (*funcref)(pid, resource, newlimit, old)\n}\n\nfunc error_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_RenameatAddr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string) (err error))\n\nvar Renameat = enter_Renameat\n\nfunc enter_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tfuncref := get_RenameatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___RENAMEAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Renameat\n\t} else {\n\t\t*funcref = error_Renameat\n\t}\n\treturn (*funcref)(olddirfd, oldpath, newdirfd, newpath)\n}\n\nfunc error_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT2_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_Renameat2Addr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error))\n\nvar Renameat2 = enter_Renameat2\n\nfunc enter_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tfuncref := get_Renameat2Addr()\n\tif funcptrtest(GetZosLibVec()+SYS___RENAMEAT2_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Renameat2\n\t} else {\n\t\t*funcref = error_Renameat2\n\t}\n\treturn (*funcref)(olddirfd, oldpath, newdirfd, newpath, flags)\n}\n\nfunc error_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RMDIR_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LSEEK<<4, uintptr(fd), uintptr(offset), uintptr(whence))\n\truntime.ExitSyscall()\n\toff = int64(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEGID<<4, uintptr(egid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEUID<<4, uintptr(euid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(p)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SethostnameAddr() *(func(p []byte) (err error))\n\nvar Sethostname = enter_Sethostname\n\nfunc enter_Sethostname(p []byte) (err error) {\n\tfuncref := get_SethostnameAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Sethostname\n\t} else {\n\t\t*funcref = error_Sethostname\n\t}\n\treturn (*funcref)(p)\n}\n\nfunc error_Sethostname(p []byte) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Setns(fd int, nstype int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETNS<<4, uintptr(fd), uintptr(nstype))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SetnsAddr() *(func(fd int, nstype int) (err error))\n\nvar Setns = enter_Setns\n\nfunc enter_Setns(fd int, nstype int) (err error) {\n\tfuncref := get_SetnsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_SETNS<<4, \"\") == 0 {\n\t\t*funcref = impl_Setns\n\t} else {\n\t\t*funcref = error_Setns\n\t}\n\treturn (*funcref)(fd, nstype)\n}\n\nfunc error_Setns(fd int, nstype int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPRIORITY<<4, uintptr(which), uintptr(who), uintptr(prio))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPGID<<4, uintptr(pid), uintptr(pgid))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, lim *Rlimit) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(lim)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREGID<<4, uintptr(rgid), uintptr(egid))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREUID<<4, uintptr(ruid), uintptr(euid))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_SETSID<<4)\n\tpid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETUID<<4, uintptr(uid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(uid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGID<<4, uintptr(uid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHUTDOWN<<4, uintptr(fd), uintptr(how))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, statLE *Stat_LE_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Symlinkat(oldPath string, dirfd int, newPath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldPath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newPath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINKAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(dirfd), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SymlinkatAddr() *(func(oldPath string, dirfd int, newPath string) (err error))\n\nvar Symlinkat = enter_Symlinkat\n\nfunc enter_Symlinkat(oldPath string, dirfd int, newPath string) (err error) {\n\tfuncref := get_SymlinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___SYMLINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Symlinkat\n\t} else {\n\t\t*funcref = error_Symlinkat\n\t}\n\treturn (*funcref)(oldPath, dirfd, newPath)\n}\n\nfunc error_Symlinkat(oldPath string, dirfd int, newPath string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\truntime.EnterSyscall()\n\tCallLeFuncWithErr(GetZosLibVec() + SYS_SYNC<<4)\n\truntime.ExitSyscall()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___TRUNCATE_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(length))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tcgetattr(fildes int, termptr *Termios) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCGETATTR<<4, uintptr(fildes), uintptr(unsafe.Pointer(termptr)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tcsetattr(fildes int, when int, termptr *Termios) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCSETATTR<<4, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec()+SYS_UMASK<<4, uintptr(mask))\n\truntime.ExitSyscall()\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINK_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_UnlinkatAddr() *(func(dirfd int, path string, flags int) (err error))\n\nvar Unlinkat = enter_Unlinkat\n\nfunc enter_Unlinkat(dirfd int, path string, flags int) (err error) {\n\tfuncref := get_UnlinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___UNLINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Unlinkat\n\t} else {\n\t\t*funcref = error_Unlinkat\n\t}\n\treturn (*funcref)(dirfd, path, flags)\n}\n\nfunc error_Unlinkat(dirfd int, path string, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, utim *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPEN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_openatAddr() *(func(dirfd int, path string, flags int, mode uint32) (fd int, err error))\n\nvar openat = enter_openat\n\nfunc enter_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tfuncref := get_openatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___OPENAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_openat\n\t} else {\n\t\t*funcref = error_openat\n\t}\n\treturn (*funcref)(dirfd, path, flags, mode)\n}\n\nfunc error_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT2_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_openat2Addr() *(func(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error))\n\nvar openat2 = enter_openat2\n\nfunc enter_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tfuncref := get_openat2Addr()\n\tif funcptrtest(GetZosLibVec()+SYS___OPENAT2_A<<4, \"\") == 0 {\n\t\t*funcref = impl_openat2\n\t} else {\n\t\t*funcref = error_openat2\n\t}\n\treturn (*funcref)(dirfd, path, open_how, size)\n}\n\nfunc error_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_REMOVE<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc waitid(idType int, id int, info *Siginfo, options int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITID<<4, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITPID<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options))\n\truntime.ExitSyscall()\n\twpid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tv *timeval_zos) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETTIMEOFDAY<<4, uintptr(unsafe.Pointer(tv)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE<<4, uintptr(unsafe.Pointer(p)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMENSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(ts)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_utimensatAddr() *(func(dirfd int, path string, ts *[2]Timespec, flags int) (err error))\n\nvar utimensat = enter_utimensat\n\nfunc enter_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) {\n\tfuncref := get_utimensatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_utimensat\n\t} else {\n\t\t*funcref = error_utimensat\n\t}\n\treturn (*funcref)(dirfd, path, ts, flags)\n}\n\nfunc error_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Posix_openpt(oflag int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POSIX_OPENPT<<4, uintptr(oflag))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Grantpt(fildes int) (rc int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GRANTPT<<4, uintptr(fildes))\n\truntime.ExitSyscall()\n\trc = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlockpt(fildes int) (rc int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNLOCKPT<<4, uintptr(fildes))\n\truntime.ExitSyscall()\n\trc = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build 386 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build arm && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nselcoll\", []_C_int{1, 43}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go",
    "content": "// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && darwin\n\npackage unix\n\n// Deprecated: Use libSystem wrappers instead of direct syscalls.\nconst (\n\tSYS_SYSCALL                        = 0\n\tSYS_EXIT                           = 1\n\tSYS_FORK                           = 2\n\tSYS_READ                           = 3\n\tSYS_WRITE                          = 4\n\tSYS_OPEN                           = 5\n\tSYS_CLOSE                          = 6\n\tSYS_WAIT4                          = 7\n\tSYS_LINK                           = 9\n\tSYS_UNLINK                         = 10\n\tSYS_CHDIR                          = 12\n\tSYS_FCHDIR                         = 13\n\tSYS_MKNOD                          = 14\n\tSYS_CHMOD                          = 15\n\tSYS_CHOWN                          = 16\n\tSYS_GETFSSTAT                      = 18\n\tSYS_GETPID                         = 20\n\tSYS_SETUID                         = 23\n\tSYS_GETUID                         = 24\n\tSYS_GETEUID                        = 25\n\tSYS_PTRACE                         = 26\n\tSYS_RECVMSG                        = 27\n\tSYS_SENDMSG                        = 28\n\tSYS_RECVFROM                       = 29\n\tSYS_ACCEPT                         = 30\n\tSYS_GETPEERNAME                    = 31\n\tSYS_GETSOCKNAME                    = 32\n\tSYS_ACCESS                         = 33\n\tSYS_CHFLAGS                        = 34\n\tSYS_FCHFLAGS                       = 35\n\tSYS_SYNC                           = 36\n\tSYS_KILL                           = 37\n\tSYS_GETPPID                        = 39\n\tSYS_DUP                            = 41\n\tSYS_PIPE                           = 42\n\tSYS_GETEGID                        = 43\n\tSYS_SIGACTION                      = 46\n\tSYS_GETGID                         = 47\n\tSYS_SIGPROCMASK                    = 48\n\tSYS_GETLOGIN                       = 49\n\tSYS_SETLOGIN                       = 50\n\tSYS_ACCT                           = 51\n\tSYS_SIGPENDING                     = 52\n\tSYS_SIGALTSTACK                    = 53\n\tSYS_IOCTL                          = 54\n\tSYS_REBOOT                         = 55\n\tSYS_REVOKE                         = 56\n\tSYS_SYMLINK                        = 57\n\tSYS_READLINK                       = 58\n\tSYS_EXECVE                         = 59\n\tSYS_UMASK                          = 60\n\tSYS_CHROOT                         = 61\n\tSYS_MSYNC                          = 65\n\tSYS_VFORK                          = 66\n\tSYS_MUNMAP                         = 73\n\tSYS_MPROTECT                       = 74\n\tSYS_MADVISE                        = 75\n\tSYS_MINCORE                        = 78\n\tSYS_GETGROUPS                      = 79\n\tSYS_SETGROUPS                      = 80\n\tSYS_GETPGRP                        = 81\n\tSYS_SETPGID                        = 82\n\tSYS_SETITIMER                      = 83\n\tSYS_SWAPON                         = 85\n\tSYS_GETITIMER                      = 86\n\tSYS_GETDTABLESIZE                  = 89\n\tSYS_DUP2                           = 90\n\tSYS_FCNTL                          = 92\n\tSYS_SELECT                         = 93\n\tSYS_FSYNC                          = 95\n\tSYS_SETPRIORITY                    = 96\n\tSYS_SOCKET                         = 97\n\tSYS_CONNECT                        = 98\n\tSYS_GETPRIORITY                    = 100\n\tSYS_BIND                           = 104\n\tSYS_SETSOCKOPT                     = 105\n\tSYS_LISTEN                         = 106\n\tSYS_SIGSUSPEND                     = 111\n\tSYS_GETTIMEOFDAY                   = 116\n\tSYS_GETRUSAGE                      = 117\n\tSYS_GETSOCKOPT                     = 118\n\tSYS_READV                          = 120\n\tSYS_WRITEV                         = 121\n\tSYS_SETTIMEOFDAY                   = 122\n\tSYS_FCHOWN                         = 123\n\tSYS_FCHMOD                         = 124\n\tSYS_SETREUID                       = 126\n\tSYS_SETREGID                       = 127\n\tSYS_RENAME                         = 128\n\tSYS_FLOCK                          = 131\n\tSYS_MKFIFO                         = 132\n\tSYS_SENDTO                         = 133\n\tSYS_SHUTDOWN                       = 134\n\tSYS_SOCKETPAIR                     = 135\n\tSYS_MKDIR                          = 136\n\tSYS_RMDIR                          = 137\n\tSYS_UTIMES                         = 138\n\tSYS_FUTIMES                        = 139\n\tSYS_ADJTIME                        = 140\n\tSYS_GETHOSTUUID                    = 142\n\tSYS_SETSID                         = 147\n\tSYS_GETPGID                        = 151\n\tSYS_SETPRIVEXEC                    = 152\n\tSYS_PREAD                          = 153\n\tSYS_PWRITE                         = 154\n\tSYS_NFSSVC                         = 155\n\tSYS_STATFS                         = 157\n\tSYS_FSTATFS                        = 158\n\tSYS_UNMOUNT                        = 159\n\tSYS_GETFH                          = 161\n\tSYS_QUOTACTL                       = 165\n\tSYS_MOUNT                          = 167\n\tSYS_CSOPS                          = 169\n\tSYS_CSOPS_AUDITTOKEN               = 170\n\tSYS_WAITID                         = 173\n\tSYS_KDEBUG_TYPEFILTER              = 177\n\tSYS_KDEBUG_TRACE_STRING            = 178\n\tSYS_KDEBUG_TRACE64                 = 179\n\tSYS_KDEBUG_TRACE                   = 180\n\tSYS_SETGID                         = 181\n\tSYS_SETEGID                        = 182\n\tSYS_SETEUID                        = 183\n\tSYS_SIGRETURN                      = 184\n\tSYS_THREAD_SELFCOUNTS              = 186\n\tSYS_FDATASYNC                      = 187\n\tSYS_STAT                           = 188\n\tSYS_FSTAT                          = 189\n\tSYS_LSTAT                          = 190\n\tSYS_PATHCONF                       = 191\n\tSYS_FPATHCONF                      = 192\n\tSYS_GETRLIMIT                      = 194\n\tSYS_SETRLIMIT                      = 195\n\tSYS_GETDIRENTRIES                  = 196\n\tSYS_MMAP                           = 197\n\tSYS_LSEEK                          = 199\n\tSYS_TRUNCATE                       = 200\n\tSYS_FTRUNCATE                      = 201\n\tSYS_SYSCTL                         = 202\n\tSYS_MLOCK                          = 203\n\tSYS_MUNLOCK                        = 204\n\tSYS_UNDELETE                       = 205\n\tSYS_OPEN_DPROTECTED_NP             = 216\n\tSYS_GETATTRLIST                    = 220\n\tSYS_SETATTRLIST                    = 221\n\tSYS_GETDIRENTRIESATTR              = 222\n\tSYS_EXCHANGEDATA                   = 223\n\tSYS_SEARCHFS                       = 225\n\tSYS_DELETE                         = 226\n\tSYS_COPYFILE                       = 227\n\tSYS_FGETATTRLIST                   = 228\n\tSYS_FSETATTRLIST                   = 229\n\tSYS_POLL                           = 230\n\tSYS_WATCHEVENT                     = 231\n\tSYS_WAITEVENT                      = 232\n\tSYS_MODWATCH                       = 233\n\tSYS_GETXATTR                       = 234\n\tSYS_FGETXATTR                      = 235\n\tSYS_SETXATTR                       = 236\n\tSYS_FSETXATTR                      = 237\n\tSYS_REMOVEXATTR                    = 238\n\tSYS_FREMOVEXATTR                   = 239\n\tSYS_LISTXATTR                      = 240\n\tSYS_FLISTXATTR                     = 241\n\tSYS_FSCTL                          = 242\n\tSYS_INITGROUPS                     = 243\n\tSYS_POSIX_SPAWN                    = 244\n\tSYS_FFSCTL                         = 245\n\tSYS_NFSCLNT                        = 247\n\tSYS_FHOPEN                         = 248\n\tSYS_MINHERIT                       = 250\n\tSYS_SEMSYS                         = 251\n\tSYS_MSGSYS                         = 252\n\tSYS_SHMSYS                         = 253\n\tSYS_SEMCTL                         = 254\n\tSYS_SEMGET                         = 255\n\tSYS_SEMOP                          = 256\n\tSYS_MSGCTL                         = 258\n\tSYS_MSGGET                         = 259\n\tSYS_MSGSND                         = 260\n\tSYS_MSGRCV                         = 261\n\tSYS_SHMAT                          = 262\n\tSYS_SHMCTL                         = 263\n\tSYS_SHMDT                          = 264\n\tSYS_SHMGET                         = 265\n\tSYS_SHM_OPEN                       = 266\n\tSYS_SHM_UNLINK                     = 267\n\tSYS_SEM_OPEN                       = 268\n\tSYS_SEM_CLOSE                      = 269\n\tSYS_SEM_UNLINK                     = 270\n\tSYS_SEM_WAIT                       = 271\n\tSYS_SEM_TRYWAIT                    = 272\n\tSYS_SEM_POST                       = 273\n\tSYS_SYSCTLBYNAME                   = 274\n\tSYS_OPEN_EXTENDED                  = 277\n\tSYS_UMASK_EXTENDED                 = 278\n\tSYS_STAT_EXTENDED                  = 279\n\tSYS_LSTAT_EXTENDED                 = 280\n\tSYS_FSTAT_EXTENDED                 = 281\n\tSYS_CHMOD_EXTENDED                 = 282\n\tSYS_FCHMOD_EXTENDED                = 283\n\tSYS_ACCESS_EXTENDED                = 284\n\tSYS_SETTID                         = 285\n\tSYS_GETTID                         = 286\n\tSYS_SETSGROUPS                     = 287\n\tSYS_GETSGROUPS                     = 288\n\tSYS_SETWGROUPS                     = 289\n\tSYS_GETWGROUPS                     = 290\n\tSYS_MKFIFO_EXTENDED                = 291\n\tSYS_MKDIR_EXTENDED                 = 292\n\tSYS_IDENTITYSVC                    = 293\n\tSYS_SHARED_REGION_CHECK_NP         = 294\n\tSYS_VM_PRESSURE_MONITOR            = 296\n\tSYS_PSYNCH_RW_LONGRDLOCK           = 297\n\tSYS_PSYNCH_RW_YIELDWRLOCK          = 298\n\tSYS_PSYNCH_RW_DOWNGRADE            = 299\n\tSYS_PSYNCH_RW_UPGRADE              = 300\n\tSYS_PSYNCH_MUTEXWAIT               = 301\n\tSYS_PSYNCH_MUTEXDROP               = 302\n\tSYS_PSYNCH_CVBROAD                 = 303\n\tSYS_PSYNCH_CVSIGNAL                = 304\n\tSYS_PSYNCH_CVWAIT                  = 305\n\tSYS_PSYNCH_RW_RDLOCK               = 306\n\tSYS_PSYNCH_RW_WRLOCK               = 307\n\tSYS_PSYNCH_RW_UNLOCK               = 308\n\tSYS_PSYNCH_RW_UNLOCK2              = 309\n\tSYS_GETSID                         = 310\n\tSYS_SETTID_WITH_PID                = 311\n\tSYS_PSYNCH_CVCLRPREPOST            = 312\n\tSYS_AIO_FSYNC                      = 313\n\tSYS_AIO_RETURN                     = 314\n\tSYS_AIO_SUSPEND                    = 315\n\tSYS_AIO_CANCEL                     = 316\n\tSYS_AIO_ERROR                      = 317\n\tSYS_AIO_READ                       = 318\n\tSYS_AIO_WRITE                      = 319\n\tSYS_LIO_LISTIO                     = 320\n\tSYS_IOPOLICYSYS                    = 322\n\tSYS_PROCESS_POLICY                 = 323\n\tSYS_MLOCKALL                       = 324\n\tSYS_MUNLOCKALL                     = 325\n\tSYS_ISSETUGID                      = 327\n\tSYS___PTHREAD_KILL                 = 328\n\tSYS___PTHREAD_SIGMASK              = 329\n\tSYS___SIGWAIT                      = 330\n\tSYS___DISABLE_THREADSIGNAL         = 331\n\tSYS___PTHREAD_MARKCANCEL           = 332\n\tSYS___PTHREAD_CANCELED             = 333\n\tSYS___SEMWAIT_SIGNAL               = 334\n\tSYS_PROC_INFO                      = 336\n\tSYS_SENDFILE                       = 337\n\tSYS_STAT64                         = 338\n\tSYS_FSTAT64                        = 339\n\tSYS_LSTAT64                        = 340\n\tSYS_STAT64_EXTENDED                = 341\n\tSYS_LSTAT64_EXTENDED               = 342\n\tSYS_FSTAT64_EXTENDED               = 343\n\tSYS_GETDIRENTRIES64                = 344\n\tSYS_STATFS64                       = 345\n\tSYS_FSTATFS64                      = 346\n\tSYS_GETFSSTAT64                    = 347\n\tSYS___PTHREAD_CHDIR                = 348\n\tSYS___PTHREAD_FCHDIR               = 349\n\tSYS_AUDIT                          = 350\n\tSYS_AUDITON                        = 351\n\tSYS_GETAUID                        = 353\n\tSYS_SETAUID                        = 354\n\tSYS_GETAUDIT_ADDR                  = 357\n\tSYS_SETAUDIT_ADDR                  = 358\n\tSYS_AUDITCTL                       = 359\n\tSYS_BSDTHREAD_CREATE               = 360\n\tSYS_BSDTHREAD_TERMINATE            = 361\n\tSYS_KQUEUE                         = 362\n\tSYS_KEVENT                         = 363\n\tSYS_LCHOWN                         = 364\n\tSYS_BSDTHREAD_REGISTER             = 366\n\tSYS_WORKQ_OPEN                     = 367\n\tSYS_WORKQ_KERNRETURN               = 368\n\tSYS_KEVENT64                       = 369\n\tSYS___OLD_SEMWAIT_SIGNAL           = 370\n\tSYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371\n\tSYS_THREAD_SELFID                  = 372\n\tSYS_LEDGER                         = 373\n\tSYS_KEVENT_QOS                     = 374\n\tSYS_KEVENT_ID                      = 375\n\tSYS___MAC_EXECVE                   = 380\n\tSYS___MAC_SYSCALL                  = 381\n\tSYS___MAC_GET_FILE                 = 382\n\tSYS___MAC_SET_FILE                 = 383\n\tSYS___MAC_GET_LINK                 = 384\n\tSYS___MAC_SET_LINK                 = 385\n\tSYS___MAC_GET_PROC                 = 386\n\tSYS___MAC_SET_PROC                 = 387\n\tSYS___MAC_GET_FD                   = 388\n\tSYS___MAC_SET_FD                   = 389\n\tSYS___MAC_GET_PID                  = 390\n\tSYS_PSELECT                        = 394\n\tSYS_PSELECT_NOCANCEL               = 395\n\tSYS_READ_NOCANCEL                  = 396\n\tSYS_WRITE_NOCANCEL                 = 397\n\tSYS_OPEN_NOCANCEL                  = 398\n\tSYS_CLOSE_NOCANCEL                 = 399\n\tSYS_WAIT4_NOCANCEL                 = 400\n\tSYS_RECVMSG_NOCANCEL               = 401\n\tSYS_SENDMSG_NOCANCEL               = 402\n\tSYS_RECVFROM_NOCANCEL              = 403\n\tSYS_ACCEPT_NOCANCEL                = 404\n\tSYS_MSYNC_NOCANCEL                 = 405\n\tSYS_FCNTL_NOCANCEL                 = 406\n\tSYS_SELECT_NOCANCEL                = 407\n\tSYS_FSYNC_NOCANCEL                 = 408\n\tSYS_CONNECT_NOCANCEL               = 409\n\tSYS_SIGSUSPEND_NOCANCEL            = 410\n\tSYS_READV_NOCANCEL                 = 411\n\tSYS_WRITEV_NOCANCEL                = 412\n\tSYS_SENDTO_NOCANCEL                = 413\n\tSYS_PREAD_NOCANCEL                 = 414\n\tSYS_PWRITE_NOCANCEL                = 415\n\tSYS_WAITID_NOCANCEL                = 416\n\tSYS_POLL_NOCANCEL                  = 417\n\tSYS_MSGSND_NOCANCEL                = 418\n\tSYS_MSGRCV_NOCANCEL                = 419\n\tSYS_SEM_WAIT_NOCANCEL              = 420\n\tSYS_AIO_SUSPEND_NOCANCEL           = 421\n\tSYS___SIGWAIT_NOCANCEL             = 422\n\tSYS___SEMWAIT_SIGNAL_NOCANCEL      = 423\n\tSYS___MAC_MOUNT                    = 424\n\tSYS___MAC_GET_MOUNT                = 425\n\tSYS___MAC_GETFSSTAT                = 426\n\tSYS_FSGETPATH                      = 427\n\tSYS_AUDIT_SESSION_SELF             = 428\n\tSYS_AUDIT_SESSION_JOIN             = 429\n\tSYS_FILEPORT_MAKEPORT              = 430\n\tSYS_FILEPORT_MAKEFD                = 431\n\tSYS_AUDIT_SESSION_PORT             = 432\n\tSYS_PID_SUSPEND                    = 433\n\tSYS_PID_RESUME                     = 434\n\tSYS_PID_HIBERNATE                  = 435\n\tSYS_PID_SHUTDOWN_SOCKETS           = 436\n\tSYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438\n\tSYS_KAS_INFO                       = 439\n\tSYS_MEMORYSTATUS_CONTROL           = 440\n\tSYS_GUARDED_OPEN_NP                = 441\n\tSYS_GUARDED_CLOSE_NP               = 442\n\tSYS_GUARDED_KQUEUE_NP              = 443\n\tSYS_CHANGE_FDGUARD_NP              = 444\n\tSYS_USRCTL                         = 445\n\tSYS_PROC_RLIMIT_CONTROL            = 446\n\tSYS_CONNECTX                       = 447\n\tSYS_DISCONNECTX                    = 448\n\tSYS_PEELOFF                        = 449\n\tSYS_SOCKET_DELEGATE                = 450\n\tSYS_TELEMETRY                      = 451\n\tSYS_PROC_UUID_POLICY               = 452\n\tSYS_MEMORYSTATUS_GET_LEVEL         = 453\n\tSYS_SYSTEM_OVERRIDE                = 454\n\tSYS_VFS_PURGE                      = 455\n\tSYS_SFI_CTL                        = 456\n\tSYS_SFI_PIDCTL                     = 457\n\tSYS_COALITION                      = 458\n\tSYS_COALITION_INFO                 = 459\n\tSYS_NECP_MATCH_POLICY              = 460\n\tSYS_GETATTRLISTBULK                = 461\n\tSYS_CLONEFILEAT                    = 462\n\tSYS_OPENAT                         = 463\n\tSYS_OPENAT_NOCANCEL                = 464\n\tSYS_RENAMEAT                       = 465\n\tSYS_FACCESSAT                      = 466\n\tSYS_FCHMODAT                       = 467\n\tSYS_FCHOWNAT                       = 468\n\tSYS_FSTATAT                        = 469\n\tSYS_FSTATAT64                      = 470\n\tSYS_LINKAT                         = 471\n\tSYS_UNLINKAT                       = 472\n\tSYS_READLINKAT                     = 473\n\tSYS_SYMLINKAT                      = 474\n\tSYS_MKDIRAT                        = 475\n\tSYS_GETATTRLISTAT                  = 476\n\tSYS_PROC_TRACE_LOG                 = 477\n\tSYS_BSDTHREAD_CTL                  = 478\n\tSYS_OPENBYID_NP                    = 479\n\tSYS_RECVMSG_X                      = 480\n\tSYS_SENDMSG_X                      = 481\n\tSYS_THREAD_SELFUSAGE               = 482\n\tSYS_CSRCTL                         = 483\n\tSYS_GUARDED_OPEN_DPROTECTED_NP     = 484\n\tSYS_GUARDED_WRITE_NP               = 485\n\tSYS_GUARDED_PWRITE_NP              = 486\n\tSYS_GUARDED_WRITEV_NP              = 487\n\tSYS_RENAMEATX_NP                   = 488\n\tSYS_MREMAP_ENCRYPTED               = 489\n\tSYS_NETAGENT_TRIGGER               = 490\n\tSYS_STACK_SNAPSHOT_WITH_CONFIG     = 491\n\tSYS_MICROSTACKSHOT                 = 492\n\tSYS_GRAB_PGO_DATA                  = 493\n\tSYS_PERSONA                        = 494\n\tSYS_WORK_INTERVAL_CTL              = 499\n\tSYS_GETENTROPY                     = 500\n\tSYS_NECP_OPEN                      = 501\n\tSYS_NECP_CLIENT_ACTION             = 502\n\tSYS___NEXUS_OPEN                   = 503\n\tSYS___NEXUS_REGISTER               = 504\n\tSYS___NEXUS_DEREGISTER             = 505\n\tSYS___NEXUS_CREATE                 = 506\n\tSYS___NEXUS_DESTROY                = 507\n\tSYS___NEXUS_GET_OPT                = 508\n\tSYS___NEXUS_SET_OPT                = 509\n\tSYS___CHANNEL_OPEN                 = 510\n\tSYS___CHANNEL_GET_INFO             = 511\n\tSYS___CHANNEL_SYNC                 = 512\n\tSYS___CHANNEL_GET_OPT              = 513\n\tSYS___CHANNEL_SET_OPT              = 514\n\tSYS_ULOCK_WAIT                     = 515\n\tSYS_ULOCK_WAKE                     = 516\n\tSYS_FCLONEFILEAT                   = 517\n\tSYS_FS_SNAPSHOT                    = 518\n\tSYS_TERMINATE_WITH_PAYLOAD         = 520\n\tSYS_ABORT_WITH_PAYLOAD             = 521\n\tSYS_NECP_SESSION_OPEN              = 522\n\tSYS_NECP_SESSION_ACTION            = 523\n\tSYS_SETATTRLISTAT                  = 524\n\tSYS_NET_QOS_GUIDELINE              = 525\n\tSYS_FMOUNT                         = 526\n\tSYS_NTP_ADJTIME                    = 527\n\tSYS_NTP_GETTIME                    = 528\n\tSYS_OS_FAULT_WITH_PAYLOAD          = 529\n\tSYS_KQUEUE_WORKLOOP_CTL            = 530\n\tSYS___MACH_BRIDGE_REMOTE_TIME      = 531\n\tSYS_MAXSYSCALL                     = 532\n\tSYS_INVALID                        = 63\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go",
    "content": "// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && darwin\n\npackage unix\n\n// Deprecated: Use libSystem wrappers instead of direct syscalls.\nconst (\n\tSYS_SYSCALL                        = 0\n\tSYS_EXIT                           = 1\n\tSYS_FORK                           = 2\n\tSYS_READ                           = 3\n\tSYS_WRITE                          = 4\n\tSYS_OPEN                           = 5\n\tSYS_CLOSE                          = 6\n\tSYS_WAIT4                          = 7\n\tSYS_LINK                           = 9\n\tSYS_UNLINK                         = 10\n\tSYS_CHDIR                          = 12\n\tSYS_FCHDIR                         = 13\n\tSYS_MKNOD                          = 14\n\tSYS_CHMOD                          = 15\n\tSYS_CHOWN                          = 16\n\tSYS_GETFSSTAT                      = 18\n\tSYS_GETPID                         = 20\n\tSYS_SETUID                         = 23\n\tSYS_GETUID                         = 24\n\tSYS_GETEUID                        = 25\n\tSYS_PTRACE                         = 26\n\tSYS_RECVMSG                        = 27\n\tSYS_SENDMSG                        = 28\n\tSYS_RECVFROM                       = 29\n\tSYS_ACCEPT                         = 30\n\tSYS_GETPEERNAME                    = 31\n\tSYS_GETSOCKNAME                    = 32\n\tSYS_ACCESS                         = 33\n\tSYS_CHFLAGS                        = 34\n\tSYS_FCHFLAGS                       = 35\n\tSYS_SYNC                           = 36\n\tSYS_KILL                           = 37\n\tSYS_GETPPID                        = 39\n\tSYS_DUP                            = 41\n\tSYS_PIPE                           = 42\n\tSYS_GETEGID                        = 43\n\tSYS_SIGACTION                      = 46\n\tSYS_GETGID                         = 47\n\tSYS_SIGPROCMASK                    = 48\n\tSYS_GETLOGIN                       = 49\n\tSYS_SETLOGIN                       = 50\n\tSYS_ACCT                           = 51\n\tSYS_SIGPENDING                     = 52\n\tSYS_SIGALTSTACK                    = 53\n\tSYS_IOCTL                          = 54\n\tSYS_REBOOT                         = 55\n\tSYS_REVOKE                         = 56\n\tSYS_SYMLINK                        = 57\n\tSYS_READLINK                       = 58\n\tSYS_EXECVE                         = 59\n\tSYS_UMASK                          = 60\n\tSYS_CHROOT                         = 61\n\tSYS_MSYNC                          = 65\n\tSYS_VFORK                          = 66\n\tSYS_MUNMAP                         = 73\n\tSYS_MPROTECT                       = 74\n\tSYS_MADVISE                        = 75\n\tSYS_MINCORE                        = 78\n\tSYS_GETGROUPS                      = 79\n\tSYS_SETGROUPS                      = 80\n\tSYS_GETPGRP                        = 81\n\tSYS_SETPGID                        = 82\n\tSYS_SETITIMER                      = 83\n\tSYS_SWAPON                         = 85\n\tSYS_GETITIMER                      = 86\n\tSYS_GETDTABLESIZE                  = 89\n\tSYS_DUP2                           = 90\n\tSYS_FCNTL                          = 92\n\tSYS_SELECT                         = 93\n\tSYS_FSYNC                          = 95\n\tSYS_SETPRIORITY                    = 96\n\tSYS_SOCKET                         = 97\n\tSYS_CONNECT                        = 98\n\tSYS_GETPRIORITY                    = 100\n\tSYS_BIND                           = 104\n\tSYS_SETSOCKOPT                     = 105\n\tSYS_LISTEN                         = 106\n\tSYS_SIGSUSPEND                     = 111\n\tSYS_GETTIMEOFDAY                   = 116\n\tSYS_GETRUSAGE                      = 117\n\tSYS_GETSOCKOPT                     = 118\n\tSYS_READV                          = 120\n\tSYS_WRITEV                         = 121\n\tSYS_SETTIMEOFDAY                   = 122\n\tSYS_FCHOWN                         = 123\n\tSYS_FCHMOD                         = 124\n\tSYS_SETREUID                       = 126\n\tSYS_SETREGID                       = 127\n\tSYS_RENAME                         = 128\n\tSYS_FLOCK                          = 131\n\tSYS_MKFIFO                         = 132\n\tSYS_SENDTO                         = 133\n\tSYS_SHUTDOWN                       = 134\n\tSYS_SOCKETPAIR                     = 135\n\tSYS_MKDIR                          = 136\n\tSYS_RMDIR                          = 137\n\tSYS_UTIMES                         = 138\n\tSYS_FUTIMES                        = 139\n\tSYS_ADJTIME                        = 140\n\tSYS_GETHOSTUUID                    = 142\n\tSYS_SETSID                         = 147\n\tSYS_GETPGID                        = 151\n\tSYS_SETPRIVEXEC                    = 152\n\tSYS_PREAD                          = 153\n\tSYS_PWRITE                         = 154\n\tSYS_NFSSVC                         = 155\n\tSYS_STATFS                         = 157\n\tSYS_FSTATFS                        = 158\n\tSYS_UNMOUNT                        = 159\n\tSYS_GETFH                          = 161\n\tSYS_QUOTACTL                       = 165\n\tSYS_MOUNT                          = 167\n\tSYS_CSOPS                          = 169\n\tSYS_CSOPS_AUDITTOKEN               = 170\n\tSYS_WAITID                         = 173\n\tSYS_KDEBUG_TYPEFILTER              = 177\n\tSYS_KDEBUG_TRACE_STRING            = 178\n\tSYS_KDEBUG_TRACE64                 = 179\n\tSYS_KDEBUG_TRACE                   = 180\n\tSYS_SETGID                         = 181\n\tSYS_SETEGID                        = 182\n\tSYS_SETEUID                        = 183\n\tSYS_SIGRETURN                      = 184\n\tSYS_THREAD_SELFCOUNTS              = 186\n\tSYS_FDATASYNC                      = 187\n\tSYS_STAT                           = 188\n\tSYS_FSTAT                          = 189\n\tSYS_LSTAT                          = 190\n\tSYS_PATHCONF                       = 191\n\tSYS_FPATHCONF                      = 192\n\tSYS_GETRLIMIT                      = 194\n\tSYS_SETRLIMIT                      = 195\n\tSYS_GETDIRENTRIES                  = 196\n\tSYS_MMAP                           = 197\n\tSYS_LSEEK                          = 199\n\tSYS_TRUNCATE                       = 200\n\tSYS_FTRUNCATE                      = 201\n\tSYS_SYSCTL                         = 202\n\tSYS_MLOCK                          = 203\n\tSYS_MUNLOCK                        = 204\n\tSYS_UNDELETE                       = 205\n\tSYS_OPEN_DPROTECTED_NP             = 216\n\tSYS_GETATTRLIST                    = 220\n\tSYS_SETATTRLIST                    = 221\n\tSYS_GETDIRENTRIESATTR              = 222\n\tSYS_EXCHANGEDATA                   = 223\n\tSYS_SEARCHFS                       = 225\n\tSYS_DELETE                         = 226\n\tSYS_COPYFILE                       = 227\n\tSYS_FGETATTRLIST                   = 228\n\tSYS_FSETATTRLIST                   = 229\n\tSYS_POLL                           = 230\n\tSYS_WATCHEVENT                     = 231\n\tSYS_WAITEVENT                      = 232\n\tSYS_MODWATCH                       = 233\n\tSYS_GETXATTR                       = 234\n\tSYS_FGETXATTR                      = 235\n\tSYS_SETXATTR                       = 236\n\tSYS_FSETXATTR                      = 237\n\tSYS_REMOVEXATTR                    = 238\n\tSYS_FREMOVEXATTR                   = 239\n\tSYS_LISTXATTR                      = 240\n\tSYS_FLISTXATTR                     = 241\n\tSYS_FSCTL                          = 242\n\tSYS_INITGROUPS                     = 243\n\tSYS_POSIX_SPAWN                    = 244\n\tSYS_FFSCTL                         = 245\n\tSYS_NFSCLNT                        = 247\n\tSYS_FHOPEN                         = 248\n\tSYS_MINHERIT                       = 250\n\tSYS_SEMSYS                         = 251\n\tSYS_MSGSYS                         = 252\n\tSYS_SHMSYS                         = 253\n\tSYS_SEMCTL                         = 254\n\tSYS_SEMGET                         = 255\n\tSYS_SEMOP                          = 256\n\tSYS_MSGCTL                         = 258\n\tSYS_MSGGET                         = 259\n\tSYS_MSGSND                         = 260\n\tSYS_MSGRCV                         = 261\n\tSYS_SHMAT                          = 262\n\tSYS_SHMCTL                         = 263\n\tSYS_SHMDT                          = 264\n\tSYS_SHMGET                         = 265\n\tSYS_SHM_OPEN                       = 266\n\tSYS_SHM_UNLINK                     = 267\n\tSYS_SEM_OPEN                       = 268\n\tSYS_SEM_CLOSE                      = 269\n\tSYS_SEM_UNLINK                     = 270\n\tSYS_SEM_WAIT                       = 271\n\tSYS_SEM_TRYWAIT                    = 272\n\tSYS_SEM_POST                       = 273\n\tSYS_SYSCTLBYNAME                   = 274\n\tSYS_OPEN_EXTENDED                  = 277\n\tSYS_UMASK_EXTENDED                 = 278\n\tSYS_STAT_EXTENDED                  = 279\n\tSYS_LSTAT_EXTENDED                 = 280\n\tSYS_FSTAT_EXTENDED                 = 281\n\tSYS_CHMOD_EXTENDED                 = 282\n\tSYS_FCHMOD_EXTENDED                = 283\n\tSYS_ACCESS_EXTENDED                = 284\n\tSYS_SETTID                         = 285\n\tSYS_GETTID                         = 286\n\tSYS_SETSGROUPS                     = 287\n\tSYS_GETSGROUPS                     = 288\n\tSYS_SETWGROUPS                     = 289\n\tSYS_GETWGROUPS                     = 290\n\tSYS_MKFIFO_EXTENDED                = 291\n\tSYS_MKDIR_EXTENDED                 = 292\n\tSYS_IDENTITYSVC                    = 293\n\tSYS_SHARED_REGION_CHECK_NP         = 294\n\tSYS_VM_PRESSURE_MONITOR            = 296\n\tSYS_PSYNCH_RW_LONGRDLOCK           = 297\n\tSYS_PSYNCH_RW_YIELDWRLOCK          = 298\n\tSYS_PSYNCH_RW_DOWNGRADE            = 299\n\tSYS_PSYNCH_RW_UPGRADE              = 300\n\tSYS_PSYNCH_MUTEXWAIT               = 301\n\tSYS_PSYNCH_MUTEXDROP               = 302\n\tSYS_PSYNCH_CVBROAD                 = 303\n\tSYS_PSYNCH_CVSIGNAL                = 304\n\tSYS_PSYNCH_CVWAIT                  = 305\n\tSYS_PSYNCH_RW_RDLOCK               = 306\n\tSYS_PSYNCH_RW_WRLOCK               = 307\n\tSYS_PSYNCH_RW_UNLOCK               = 308\n\tSYS_PSYNCH_RW_UNLOCK2              = 309\n\tSYS_GETSID                         = 310\n\tSYS_SETTID_WITH_PID                = 311\n\tSYS_PSYNCH_CVCLRPREPOST            = 312\n\tSYS_AIO_FSYNC                      = 313\n\tSYS_AIO_RETURN                     = 314\n\tSYS_AIO_SUSPEND                    = 315\n\tSYS_AIO_CANCEL                     = 316\n\tSYS_AIO_ERROR                      = 317\n\tSYS_AIO_READ                       = 318\n\tSYS_AIO_WRITE                      = 319\n\tSYS_LIO_LISTIO                     = 320\n\tSYS_IOPOLICYSYS                    = 322\n\tSYS_PROCESS_POLICY                 = 323\n\tSYS_MLOCKALL                       = 324\n\tSYS_MUNLOCKALL                     = 325\n\tSYS_ISSETUGID                      = 327\n\tSYS___PTHREAD_KILL                 = 328\n\tSYS___PTHREAD_SIGMASK              = 329\n\tSYS___SIGWAIT                      = 330\n\tSYS___DISABLE_THREADSIGNAL         = 331\n\tSYS___PTHREAD_MARKCANCEL           = 332\n\tSYS___PTHREAD_CANCELED             = 333\n\tSYS___SEMWAIT_SIGNAL               = 334\n\tSYS_PROC_INFO                      = 336\n\tSYS_SENDFILE                       = 337\n\tSYS_STAT64                         = 338\n\tSYS_FSTAT64                        = 339\n\tSYS_LSTAT64                        = 340\n\tSYS_STAT64_EXTENDED                = 341\n\tSYS_LSTAT64_EXTENDED               = 342\n\tSYS_FSTAT64_EXTENDED               = 343\n\tSYS_GETDIRENTRIES64                = 344\n\tSYS_STATFS64                       = 345\n\tSYS_FSTATFS64                      = 346\n\tSYS_GETFSSTAT64                    = 347\n\tSYS___PTHREAD_CHDIR                = 348\n\tSYS___PTHREAD_FCHDIR               = 349\n\tSYS_AUDIT                          = 350\n\tSYS_AUDITON                        = 351\n\tSYS_GETAUID                        = 353\n\tSYS_SETAUID                        = 354\n\tSYS_GETAUDIT_ADDR                  = 357\n\tSYS_SETAUDIT_ADDR                  = 358\n\tSYS_AUDITCTL                       = 359\n\tSYS_BSDTHREAD_CREATE               = 360\n\tSYS_BSDTHREAD_TERMINATE            = 361\n\tSYS_KQUEUE                         = 362\n\tSYS_KEVENT                         = 363\n\tSYS_LCHOWN                         = 364\n\tSYS_BSDTHREAD_REGISTER             = 366\n\tSYS_WORKQ_OPEN                     = 367\n\tSYS_WORKQ_KERNRETURN               = 368\n\tSYS_KEVENT64                       = 369\n\tSYS___OLD_SEMWAIT_SIGNAL           = 370\n\tSYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371\n\tSYS_THREAD_SELFID                  = 372\n\tSYS_LEDGER                         = 373\n\tSYS_KEVENT_QOS                     = 374\n\tSYS_KEVENT_ID                      = 375\n\tSYS___MAC_EXECVE                   = 380\n\tSYS___MAC_SYSCALL                  = 381\n\tSYS___MAC_GET_FILE                 = 382\n\tSYS___MAC_SET_FILE                 = 383\n\tSYS___MAC_GET_LINK                 = 384\n\tSYS___MAC_SET_LINK                 = 385\n\tSYS___MAC_GET_PROC                 = 386\n\tSYS___MAC_SET_PROC                 = 387\n\tSYS___MAC_GET_FD                   = 388\n\tSYS___MAC_SET_FD                   = 389\n\tSYS___MAC_GET_PID                  = 390\n\tSYS_PSELECT                        = 394\n\tSYS_PSELECT_NOCANCEL               = 395\n\tSYS_READ_NOCANCEL                  = 396\n\tSYS_WRITE_NOCANCEL                 = 397\n\tSYS_OPEN_NOCANCEL                  = 398\n\tSYS_CLOSE_NOCANCEL                 = 399\n\tSYS_WAIT4_NOCANCEL                 = 400\n\tSYS_RECVMSG_NOCANCEL               = 401\n\tSYS_SENDMSG_NOCANCEL               = 402\n\tSYS_RECVFROM_NOCANCEL              = 403\n\tSYS_ACCEPT_NOCANCEL                = 404\n\tSYS_MSYNC_NOCANCEL                 = 405\n\tSYS_FCNTL_NOCANCEL                 = 406\n\tSYS_SELECT_NOCANCEL                = 407\n\tSYS_FSYNC_NOCANCEL                 = 408\n\tSYS_CONNECT_NOCANCEL               = 409\n\tSYS_SIGSUSPEND_NOCANCEL            = 410\n\tSYS_READV_NOCANCEL                 = 411\n\tSYS_WRITEV_NOCANCEL                = 412\n\tSYS_SENDTO_NOCANCEL                = 413\n\tSYS_PREAD_NOCANCEL                 = 414\n\tSYS_PWRITE_NOCANCEL                = 415\n\tSYS_WAITID_NOCANCEL                = 416\n\tSYS_POLL_NOCANCEL                  = 417\n\tSYS_MSGSND_NOCANCEL                = 418\n\tSYS_MSGRCV_NOCANCEL                = 419\n\tSYS_SEM_WAIT_NOCANCEL              = 420\n\tSYS_AIO_SUSPEND_NOCANCEL           = 421\n\tSYS___SIGWAIT_NOCANCEL             = 422\n\tSYS___SEMWAIT_SIGNAL_NOCANCEL      = 423\n\tSYS___MAC_MOUNT                    = 424\n\tSYS___MAC_GET_MOUNT                = 425\n\tSYS___MAC_GETFSSTAT                = 426\n\tSYS_FSGETPATH                      = 427\n\tSYS_AUDIT_SESSION_SELF             = 428\n\tSYS_AUDIT_SESSION_JOIN             = 429\n\tSYS_FILEPORT_MAKEPORT              = 430\n\tSYS_FILEPORT_MAKEFD                = 431\n\tSYS_AUDIT_SESSION_PORT             = 432\n\tSYS_PID_SUSPEND                    = 433\n\tSYS_PID_RESUME                     = 434\n\tSYS_PID_HIBERNATE                  = 435\n\tSYS_PID_SHUTDOWN_SOCKETS           = 436\n\tSYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438\n\tSYS_KAS_INFO                       = 439\n\tSYS_MEMORYSTATUS_CONTROL           = 440\n\tSYS_GUARDED_OPEN_NP                = 441\n\tSYS_GUARDED_CLOSE_NP               = 442\n\tSYS_GUARDED_KQUEUE_NP              = 443\n\tSYS_CHANGE_FDGUARD_NP              = 444\n\tSYS_USRCTL                         = 445\n\tSYS_PROC_RLIMIT_CONTROL            = 446\n\tSYS_CONNECTX                       = 447\n\tSYS_DISCONNECTX                    = 448\n\tSYS_PEELOFF                        = 449\n\tSYS_SOCKET_DELEGATE                = 450\n\tSYS_TELEMETRY                      = 451\n\tSYS_PROC_UUID_POLICY               = 452\n\tSYS_MEMORYSTATUS_GET_LEVEL         = 453\n\tSYS_SYSTEM_OVERRIDE                = 454\n\tSYS_VFS_PURGE                      = 455\n\tSYS_SFI_CTL                        = 456\n\tSYS_SFI_PIDCTL                     = 457\n\tSYS_COALITION                      = 458\n\tSYS_COALITION_INFO                 = 459\n\tSYS_NECP_MATCH_POLICY              = 460\n\tSYS_GETATTRLISTBULK                = 461\n\tSYS_CLONEFILEAT                    = 462\n\tSYS_OPENAT                         = 463\n\tSYS_OPENAT_NOCANCEL                = 464\n\tSYS_RENAMEAT                       = 465\n\tSYS_FACCESSAT                      = 466\n\tSYS_FCHMODAT                       = 467\n\tSYS_FCHOWNAT                       = 468\n\tSYS_FSTATAT                        = 469\n\tSYS_FSTATAT64                      = 470\n\tSYS_LINKAT                         = 471\n\tSYS_UNLINKAT                       = 472\n\tSYS_READLINKAT                     = 473\n\tSYS_SYMLINKAT                      = 474\n\tSYS_MKDIRAT                        = 475\n\tSYS_GETATTRLISTAT                  = 476\n\tSYS_PROC_TRACE_LOG                 = 477\n\tSYS_BSDTHREAD_CTL                  = 478\n\tSYS_OPENBYID_NP                    = 479\n\tSYS_RECVMSG_X                      = 480\n\tSYS_SENDMSG_X                      = 481\n\tSYS_THREAD_SELFUSAGE               = 482\n\tSYS_CSRCTL                         = 483\n\tSYS_GUARDED_OPEN_DPROTECTED_NP     = 484\n\tSYS_GUARDED_WRITE_NP               = 485\n\tSYS_GUARDED_PWRITE_NP              = 486\n\tSYS_GUARDED_WRITEV_NP              = 487\n\tSYS_RENAMEATX_NP                   = 488\n\tSYS_MREMAP_ENCRYPTED               = 489\n\tSYS_NETAGENT_TRIGGER               = 490\n\tSYS_STACK_SNAPSHOT_WITH_CONFIG     = 491\n\tSYS_MICROSTACKSHOT                 = 492\n\tSYS_GRAB_PGO_DATA                  = 493\n\tSYS_PERSONA                        = 494\n\tSYS_WORK_INTERVAL_CTL              = 499\n\tSYS_GETENTROPY                     = 500\n\tSYS_NECP_OPEN                      = 501\n\tSYS_NECP_CLIENT_ACTION             = 502\n\tSYS___NEXUS_OPEN                   = 503\n\tSYS___NEXUS_REGISTER               = 504\n\tSYS___NEXUS_DEREGISTER             = 505\n\tSYS___NEXUS_CREATE                 = 506\n\tSYS___NEXUS_DESTROY                = 507\n\tSYS___NEXUS_GET_OPT                = 508\n\tSYS___NEXUS_SET_OPT                = 509\n\tSYS___CHANNEL_OPEN                 = 510\n\tSYS___CHANNEL_GET_INFO             = 511\n\tSYS___CHANNEL_SYNC                 = 512\n\tSYS___CHANNEL_GET_OPT              = 513\n\tSYS___CHANNEL_SET_OPT              = 514\n\tSYS_ULOCK_WAIT                     = 515\n\tSYS_ULOCK_WAKE                     = 516\n\tSYS_FCLONEFILEAT                   = 517\n\tSYS_FS_SNAPSHOT                    = 518\n\tSYS_TERMINATE_WITH_PAYLOAD         = 520\n\tSYS_ABORT_WITH_PAYLOAD             = 521\n\tSYS_NECP_SESSION_OPEN              = 522\n\tSYS_NECP_SESSION_ACTION            = 523\n\tSYS_SETATTRLISTAT                  = 524\n\tSYS_NET_QOS_GUIDELINE              = 525\n\tSYS_FMOUNT                         = 526\n\tSYS_NTP_ADJTIME                    = 527\n\tSYS_NTP_GETTIME                    = 528\n\tSYS_OS_FAULT_WITH_PAYLOAD          = 529\n\tSYS_MAXSYSCALL                     = 530\n\tSYS_INVALID                        = 63\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go",
    "content": "// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && dragonfly\n\npackage unix\n\nconst (\n\tSYS_EXIT  = 1 // { void exit(int rval); }\n\tSYS_FORK  = 2 // { int fork(void); }\n\tSYS_READ  = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN  = 5 // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE = 6 // { int close(int fd); }\n\tSYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int\n\t// SYS_NOSYS = 8;  // { int nosys(void); } __nosys nosys_args int\n\tSYS_LINK                   = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                 = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                  = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                 = 13  // { int fchdir(int fd); }\n\tSYS_MKNOD                  = 14  // { int mknod(char *path, int mode, int dev); }\n\tSYS_CHMOD                  = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                  = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_OBREAK                 = 17  // { int obreak(char *nsize); } break obreak_args int\n\tSYS_GETFSSTAT              = 18  // { int getfsstat(struct statfs *buf, long bufsize, int flags); }\n\tSYS_GETPID                 = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                  = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                 = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                 = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                 = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                = 28  // { int sendmsg(int s, caddr_t msg, int flags); }\n\tSYS_RECVFROM               = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); }\n\tSYS_ACCEPT                 = 30  // { int accept(int s, caddr_t name, int *anamelen); }\n\tSYS_GETPEERNAME            = 31  // { int getpeername(int fdes, caddr_t asa, int *alen); }\n\tSYS_GETSOCKNAME            = 32  // { int getsockname(int fdes, caddr_t asa, int *alen); }\n\tSYS_ACCESS                 = 33  // { int access(char *path, int flags); }\n\tSYS_CHFLAGS                = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS               = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                   = 36  // { int sync(void); }\n\tSYS_KILL                   = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                = 39  // { pid_t getppid(void); }\n\tSYS_DUP                    = 41  // { int dup(int fd); }\n\tSYS_PIPE                   = 42  // { int pipe(void); }\n\tSYS_GETEGID                = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                 = 44  // { int profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE                 = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                 = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN               = 49  // { int getlogin(char *namebuf, size_t namelen); }\n\tSYS_SETLOGIN               = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                   = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK            = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                  = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                 = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                 = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK               = 58  // { int readlink(char *path, char *buf, int count); }\n\tSYS_EXECVE                 = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                  = 60  // { int umask(int newmask); } umask umask_args int\n\tSYS_CHROOT                 = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                  = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                  = 66  // { pid_t vfork(void); }\n\tSYS_SBRK                   = 69  // { caddr_t sbrk(size_t incr); }\n\tSYS_SSTK                   = 70  // { int sstk(size_t incr); }\n\tSYS_MUNMAP                 = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT               = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS              = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS              = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER              = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                 = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER              = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE          = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                   = 90  // { int dup2(int from, int to); }\n\tSYS_FCNTL                  = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                 = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                  = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY            = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                 = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY            = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                   = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT             = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                 = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY           = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE              = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT             = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                  = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                 = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY           = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                 = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                 = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID               = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID               = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                 = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                  = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                 = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                 = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN               = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR             = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                  = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                  = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                 = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                 = 147 // { int setsid(void); }\n\tSYS_QUOTACTL               = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_STATFS                 = 157 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                = 158 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFH                  = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                 = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_EXTPREAD               = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_EXTPWRITE              = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_NTP_ADJTIME            = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                 = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF               = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF              = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT              = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT              = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS_MMAP                   = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); }\n\tSYS_LSEEK                  = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE               = 200 // { int truncate(char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE              = 201 // { int ftruncate(int fd, int pad, off_t length); }\n\tSYS___SYSCTL               = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                  = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE               = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                   = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS___SEMCTL               = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SEMGET                 = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                  = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); }\n\tSYS_MSGCTL                 = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_MSGGET                 = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                 = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                 = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                  = 228 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMCTL                 = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_SHMDT                  = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                 = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME          = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME          = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES           = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP              = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_MINHERIT               = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                  = 251 // { int rfork(int flags); }\n\tSYS_OPENBSD_POLL           = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID              = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                 = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_LCHMOD                 = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_EXTPREADV              = 289 // { ssize_t extpreadv(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); }\n\tSYS_EXTPWRITEV             = 290 // { ssize_t extpwritev(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); }\n\tSYS_FHSTATFS               = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_FHOPEN                 = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT               = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD              = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }\n\tSYS_KLDFIRSTMOD            = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                 = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID              = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID              = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN             = 314 // { int aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND            = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL             = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR              = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_AIO_READ               = 318 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE              = 319 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO             = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_YIELD                  = 321 // { int yield(void); }\n\tSYS_MLOCKALL               = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL             = 325 // { int munlockall(void); }\n\tSYS___GETCWD               = 326 // { int __getcwd(u_char *buf, u_int buflen); }\n\tSYS_SCHED_SETPARAM         = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM         = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER     = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER     = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD            = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL  = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                 = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                 = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                   = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK            = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND             = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGACTION              = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGPENDING             = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGRETURN              = 344 // { int sigreturn(ucontext_t *sigcntxp); }\n\tSYS_SIGTIMEDWAIT           = 345 // { int sigtimedwait(const sigset_t *set,siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO            = 346 // { int sigwaitinfo(const sigset_t *set,siginfo_t *info); }\n\tSYS___ACL_GET_FILE         = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE         = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD           = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD           = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE      = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD        = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE    = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD      = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL             = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE       = 356 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE       = 357 // { int extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE    = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE       = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID              = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID              = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                 = 362 // { int kqueue(void); }\n\tSYS_KEVENT                 = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_KENV                   = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS               = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE               = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_VARSYM_SET             = 450 // { int varsym_set(int level, const char *name, const char *data); }\n\tSYS_VARSYM_GET             = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); }\n\tSYS_VARSYM_LIST            = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); }\n\tSYS_EXEC_SYS_REGISTER      = 465 // { int exec_sys_register(void *entry); }\n\tSYS_EXEC_SYS_UNREGISTER    = 466 // { int exec_sys_unregister(int id); }\n\tSYS_SYS_CHECKPOINT         = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); }\n\tSYS_MOUNTCTL               = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); }\n\tSYS_UMTX_SLEEP             = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); }\n\tSYS_UMTX_WAKEUP            = 470 // { int umtx_wakeup(volatile const int *ptr, int count); }\n\tSYS_JAIL_ATTACH            = 471 // { int jail_attach(int jid); }\n\tSYS_SET_TLS_AREA           = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); }\n\tSYS_GET_TLS_AREA           = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); }\n\tSYS_CLOSEFROM              = 474 // { int closefrom(int fd); }\n\tSYS_STAT                   = 475 // { int stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                  = 476 // { int fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                  = 477 // { int lstat(const char *path, struct stat *ub); }\n\tSYS_FHSTAT                 = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES          = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }\n\tSYS_GETDENTS               = 480 // { int getdents(int fd, char *buf, size_t count); }\n\tSYS_USCHED_SET             = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); }\n\tSYS_EXTACCEPT              = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); }\n\tSYS_EXTCONNECT             = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); }\n\tSYS_MCONTROL               = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); }\n\tSYS_VMSPACE_CREATE         = 486 // { int vmspace_create(void *id, int type, void *data); }\n\tSYS_VMSPACE_DESTROY        = 487 // { int vmspace_destroy(void *id); }\n\tSYS_VMSPACE_CTL            = 488 // { int vmspace_ctl(void *id, int cmd, \t\tstruct trapframe *tframe,\tstruct vextframe *vframe); }\n\tSYS_VMSPACE_MMAP           = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); }\n\tSYS_VMSPACE_MUNMAP         = 490 // { int vmspace_munmap(void *id, void *addr,\tsize_t len); }\n\tSYS_VMSPACE_MCONTROL       = 491 // { int vmspace_mcontrol(void *id, void *addr, \tsize_t len, int behav, off_t value); }\n\tSYS_VMSPACE_PREAD          = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_VMSPACE_PWRITE         = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_EXTEXIT                = 494 // { void extexit(int how, int status, void *addr); }\n\tSYS_LWP_CREATE             = 495 // { int lwp_create(struct lwp_params *params); }\n\tSYS_LWP_GETTID             = 496 // { lwpid_t lwp_gettid(void); }\n\tSYS_LWP_KILL               = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); }\n\tSYS_LWP_RTPRIO             = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); }\n\tSYS_PSELECT                = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts,    const sigset_t *sigmask); }\n\tSYS_STATVFS                = 500 // { int statvfs(const char *path, struct statvfs *buf); }\n\tSYS_FSTATVFS               = 501 // { int fstatvfs(int fd, struct statvfs *buf); }\n\tSYS_FHSTATVFS              = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); }\n\tSYS_GETVFSSTAT             = 503 // { int getvfsstat(struct statfs *buf,          struct statvfs *vbuf, long vbufsize, int flags); }\n\tSYS_OPENAT                 = 504 // { int openat(int fd, char *path, int flags, int mode); }\n\tSYS_FSTATAT                = 505 // { int fstatat(int fd, char *path, \tstruct stat *sb, int flags); }\n\tSYS_FCHMODAT               = 506 // { int fchmodat(int fd, char *path, int mode, int flags); }\n\tSYS_FCHOWNAT               = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); }\n\tSYS_UNLINKAT               = 508 // { int unlinkat(int fd, char *path, int flags); }\n\tSYS_FACCESSAT              = 509 // { int faccessat(int fd, char *path, int amode, int flags); }\n\tSYS_MQ_OPEN                = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); }\n\tSYS_MQ_CLOSE               = 511 // { int mq_close(mqd_t mqdes); }\n\tSYS_MQ_UNLINK              = 512 // { int mq_unlink(const char *name); }\n\tSYS_MQ_GETATTR             = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); }\n\tSYS_MQ_SETATTR             = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); }\n\tSYS_MQ_NOTIFY              = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); }\n\tSYS_MQ_SEND                = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); }\n\tSYS_MQ_RECEIVE             = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); }\n\tSYS_MQ_TIMEDSEND           = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_MQ_TIMEDRECEIVE        = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_IOPRIO_SET             = 520 // { int ioprio_set(int which, int who, int prio); }\n\tSYS_IOPRIO_GET             = 521 // { int ioprio_get(int which, int who); }\n\tSYS_CHROOT_KERNEL          = 522 // { int chroot_kernel(char *path); }\n\tSYS_RENAMEAT               = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_MKDIRAT                = 524 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT               = 525 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_MKNODAT                = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_READLINKAT             = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT              = 528 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_SWAPOFF                = 529 // { int swapoff(char *name); }\n\tSYS_VQUOTACTL              = 530 // { int vquotactl(const char *path, struct plistref *pref); }\n\tSYS_LINKAT                 = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); }\n\tSYS_EACCESS                = 532 // { int eaccess(char *path, int flags); }\n\tSYS_LPATHCONF              = 533 // { int lpathconf(char *path, int name); }\n\tSYS_VMM_GUEST_CTL          = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); }\n\tSYS_VMM_GUEST_SYNC_ADDR    = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); }\n\tSYS_PROCCTL                = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); }\n\tSYS_CHFLAGSAT              = 537 // { int chflagsat(int fd, const char *path, u_long flags, int atflags);}\n\tSYS_PIPE2                  = 538 // { int pipe2(int *fildes, int flags); }\n\tSYS_UTIMENSAT              = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); }\n\tSYS_FUTIMENS               = 540 // { int futimens(int fd, const struct timespec *ts); }\n\tSYS_ACCEPT4                = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); }\n\tSYS_LWP_SETNAME            = 542 // { int lwp_setname(lwpid_t tid, const char *name); }\n\tSYS_PPOLL                  = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); }\n\tSYS_LWP_SETAFFINITY        = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); }\n\tSYS_LWP_GETAFFINITY        = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); }\n\tSYS_LWP_CREATE2            = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); }\n\tSYS_GETCPUCLOCKID          = 547 // { int getcpuclockid(pid_t pid, lwpid_t lwp_id, clockid_t *clock_id); }\n\tSYS_WAIT6                  = 548 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_LWP_GETNAME            = 549 // { int lwp_getname(lwpid_t tid, char *name, size_t len); }\n\tSYS_GETRANDOM              = 550 // { ssize_t getrandom(void *buf, size_t len, unsigned flags); }\n\tSYS___REALPATH             = 551 // { ssize_t __realpath(const char *path, char *buf, size_t len); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_386.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/386/include -m32 /tmp/386/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL              = 0\n\tSYS_EXIT                         = 1\n\tSYS_FORK                         = 2\n\tSYS_READ                         = 3\n\tSYS_WRITE                        = 4\n\tSYS_OPEN                         = 5\n\tSYS_CLOSE                        = 6\n\tSYS_WAITPID                      = 7\n\tSYS_CREAT                        = 8\n\tSYS_LINK                         = 9\n\tSYS_UNLINK                       = 10\n\tSYS_EXECVE                       = 11\n\tSYS_CHDIR                        = 12\n\tSYS_TIME                         = 13\n\tSYS_MKNOD                        = 14\n\tSYS_CHMOD                        = 15\n\tSYS_LCHOWN                       = 16\n\tSYS_BREAK                        = 17\n\tSYS_OLDSTAT                      = 18\n\tSYS_LSEEK                        = 19\n\tSYS_GETPID                       = 20\n\tSYS_MOUNT                        = 21\n\tSYS_UMOUNT                       = 22\n\tSYS_SETUID                       = 23\n\tSYS_GETUID                       = 24\n\tSYS_STIME                        = 25\n\tSYS_PTRACE                       = 26\n\tSYS_ALARM                        = 27\n\tSYS_OLDFSTAT                     = 28\n\tSYS_PAUSE                        = 29\n\tSYS_UTIME                        = 30\n\tSYS_STTY                         = 31\n\tSYS_GTTY                         = 32\n\tSYS_ACCESS                       = 33\n\tSYS_NICE                         = 34\n\tSYS_FTIME                        = 35\n\tSYS_SYNC                         = 36\n\tSYS_KILL                         = 37\n\tSYS_RENAME                       = 38\n\tSYS_MKDIR                        = 39\n\tSYS_RMDIR                        = 40\n\tSYS_DUP                          = 41\n\tSYS_PIPE                         = 42\n\tSYS_TIMES                        = 43\n\tSYS_PROF                         = 44\n\tSYS_BRK                          = 45\n\tSYS_SETGID                       = 46\n\tSYS_GETGID                       = 47\n\tSYS_SIGNAL                       = 48\n\tSYS_GETEUID                      = 49\n\tSYS_GETEGID                      = 50\n\tSYS_ACCT                         = 51\n\tSYS_UMOUNT2                      = 52\n\tSYS_LOCK                         = 53\n\tSYS_IOCTL                        = 54\n\tSYS_FCNTL                        = 55\n\tSYS_MPX                          = 56\n\tSYS_SETPGID                      = 57\n\tSYS_ULIMIT                       = 58\n\tSYS_OLDOLDUNAME                  = 59\n\tSYS_UMASK                        = 60\n\tSYS_CHROOT                       = 61\n\tSYS_USTAT                        = 62\n\tSYS_DUP2                         = 63\n\tSYS_GETPPID                      = 64\n\tSYS_GETPGRP                      = 65\n\tSYS_SETSID                       = 66\n\tSYS_SIGACTION                    = 67\n\tSYS_SGETMASK                     = 68\n\tSYS_SSETMASK                     = 69\n\tSYS_SETREUID                     = 70\n\tSYS_SETREGID                     = 71\n\tSYS_SIGSUSPEND                   = 72\n\tSYS_SIGPENDING                   = 73\n\tSYS_SETHOSTNAME                  = 74\n\tSYS_SETRLIMIT                    = 75\n\tSYS_GETRLIMIT                    = 76\n\tSYS_GETRUSAGE                    = 77\n\tSYS_GETTIMEOFDAY                 = 78\n\tSYS_SETTIMEOFDAY                 = 79\n\tSYS_GETGROUPS                    = 80\n\tSYS_SETGROUPS                    = 81\n\tSYS_SELECT                       = 82\n\tSYS_SYMLINK                      = 83\n\tSYS_OLDLSTAT                     = 84\n\tSYS_READLINK                     = 85\n\tSYS_USELIB                       = 86\n\tSYS_SWAPON                       = 87\n\tSYS_REBOOT                       = 88\n\tSYS_READDIR                      = 89\n\tSYS_MMAP                         = 90\n\tSYS_MUNMAP                       = 91\n\tSYS_TRUNCATE                     = 92\n\tSYS_FTRUNCATE                    = 93\n\tSYS_FCHMOD                       = 94\n\tSYS_FCHOWN                       = 95\n\tSYS_GETPRIORITY                  = 96\n\tSYS_SETPRIORITY                  = 97\n\tSYS_PROFIL                       = 98\n\tSYS_STATFS                       = 99\n\tSYS_FSTATFS                      = 100\n\tSYS_IOPERM                       = 101\n\tSYS_SOCKETCALL                   = 102\n\tSYS_SYSLOG                       = 103\n\tSYS_SETITIMER                    = 104\n\tSYS_GETITIMER                    = 105\n\tSYS_STAT                         = 106\n\tSYS_LSTAT                        = 107\n\tSYS_FSTAT                        = 108\n\tSYS_OLDUNAME                     = 109\n\tSYS_IOPL                         = 110\n\tSYS_VHANGUP                      = 111\n\tSYS_IDLE                         = 112\n\tSYS_VM86OLD                      = 113\n\tSYS_WAIT4                        = 114\n\tSYS_SWAPOFF                      = 115\n\tSYS_SYSINFO                      = 116\n\tSYS_IPC                          = 117\n\tSYS_FSYNC                        = 118\n\tSYS_SIGRETURN                    = 119\n\tSYS_CLONE                        = 120\n\tSYS_SETDOMAINNAME                = 121\n\tSYS_UNAME                        = 122\n\tSYS_MODIFY_LDT                   = 123\n\tSYS_ADJTIMEX                     = 124\n\tSYS_MPROTECT                     = 125\n\tSYS_SIGPROCMASK                  = 126\n\tSYS_CREATE_MODULE                = 127\n\tSYS_INIT_MODULE                  = 128\n\tSYS_DELETE_MODULE                = 129\n\tSYS_GET_KERNEL_SYMS              = 130\n\tSYS_QUOTACTL                     = 131\n\tSYS_GETPGID                      = 132\n\tSYS_FCHDIR                       = 133\n\tSYS_BDFLUSH                      = 134\n\tSYS_SYSFS                        = 135\n\tSYS_PERSONALITY                  = 136\n\tSYS_AFS_SYSCALL                  = 137\n\tSYS_SETFSUID                     = 138\n\tSYS_SETFSGID                     = 139\n\tSYS__LLSEEK                      = 140\n\tSYS_GETDENTS                     = 141\n\tSYS__NEWSELECT                   = 142\n\tSYS_FLOCK                        = 143\n\tSYS_MSYNC                        = 144\n\tSYS_READV                        = 145\n\tSYS_WRITEV                       = 146\n\tSYS_GETSID                       = 147\n\tSYS_FDATASYNC                    = 148\n\tSYS__SYSCTL                      = 149\n\tSYS_MLOCK                        = 150\n\tSYS_MUNLOCK                      = 151\n\tSYS_MLOCKALL                     = 152\n\tSYS_MUNLOCKALL                   = 153\n\tSYS_SCHED_SETPARAM               = 154\n\tSYS_SCHED_GETPARAM               = 155\n\tSYS_SCHED_SETSCHEDULER           = 156\n\tSYS_SCHED_GETSCHEDULER           = 157\n\tSYS_SCHED_YIELD                  = 158\n\tSYS_SCHED_GET_PRIORITY_MAX       = 159\n\tSYS_SCHED_GET_PRIORITY_MIN       = 160\n\tSYS_SCHED_RR_GET_INTERVAL        = 161\n\tSYS_NANOSLEEP                    = 162\n\tSYS_MREMAP                       = 163\n\tSYS_SETRESUID                    = 164\n\tSYS_GETRESUID                    = 165\n\tSYS_VM86                         = 166\n\tSYS_QUERY_MODULE                 = 167\n\tSYS_POLL                         = 168\n\tSYS_NFSSERVCTL                   = 169\n\tSYS_SETRESGID                    = 170\n\tSYS_GETRESGID                    = 171\n\tSYS_PRCTL                        = 172\n\tSYS_RT_SIGRETURN                 = 173\n\tSYS_RT_SIGACTION                 = 174\n\tSYS_RT_SIGPROCMASK               = 175\n\tSYS_RT_SIGPENDING                = 176\n\tSYS_RT_SIGTIMEDWAIT              = 177\n\tSYS_RT_SIGQUEUEINFO              = 178\n\tSYS_RT_SIGSUSPEND                = 179\n\tSYS_PREAD64                      = 180\n\tSYS_PWRITE64                     = 181\n\tSYS_CHOWN                        = 182\n\tSYS_GETCWD                       = 183\n\tSYS_CAPGET                       = 184\n\tSYS_CAPSET                       = 185\n\tSYS_SIGALTSTACK                  = 186\n\tSYS_SENDFILE                     = 187\n\tSYS_GETPMSG                      = 188\n\tSYS_PUTPMSG                      = 189\n\tSYS_VFORK                        = 190\n\tSYS_UGETRLIMIT                   = 191\n\tSYS_MMAP2                        = 192\n\tSYS_TRUNCATE64                   = 193\n\tSYS_FTRUNCATE64                  = 194\n\tSYS_STAT64                       = 195\n\tSYS_LSTAT64                      = 196\n\tSYS_FSTAT64                      = 197\n\tSYS_LCHOWN32                     = 198\n\tSYS_GETUID32                     = 199\n\tSYS_GETGID32                     = 200\n\tSYS_GETEUID32                    = 201\n\tSYS_GETEGID32                    = 202\n\tSYS_SETREUID32                   = 203\n\tSYS_SETREGID32                   = 204\n\tSYS_GETGROUPS32                  = 205\n\tSYS_SETGROUPS32                  = 206\n\tSYS_FCHOWN32                     = 207\n\tSYS_SETRESUID32                  = 208\n\tSYS_GETRESUID32                  = 209\n\tSYS_SETRESGID32                  = 210\n\tSYS_GETRESGID32                  = 211\n\tSYS_CHOWN32                      = 212\n\tSYS_SETUID32                     = 213\n\tSYS_SETGID32                     = 214\n\tSYS_SETFSUID32                   = 215\n\tSYS_SETFSGID32                   = 216\n\tSYS_PIVOT_ROOT                   = 217\n\tSYS_MINCORE                      = 218\n\tSYS_MADVISE                      = 219\n\tSYS_GETDENTS64                   = 220\n\tSYS_FCNTL64                      = 221\n\tSYS_GETTID                       = 224\n\tSYS_READAHEAD                    = 225\n\tSYS_SETXATTR                     = 226\n\tSYS_LSETXATTR                    = 227\n\tSYS_FSETXATTR                    = 228\n\tSYS_GETXATTR                     = 229\n\tSYS_LGETXATTR                    = 230\n\tSYS_FGETXATTR                    = 231\n\tSYS_LISTXATTR                    = 232\n\tSYS_LLISTXATTR                   = 233\n\tSYS_FLISTXATTR                   = 234\n\tSYS_REMOVEXATTR                  = 235\n\tSYS_LREMOVEXATTR                 = 236\n\tSYS_FREMOVEXATTR                 = 237\n\tSYS_TKILL                        = 238\n\tSYS_SENDFILE64                   = 239\n\tSYS_FUTEX                        = 240\n\tSYS_SCHED_SETAFFINITY            = 241\n\tSYS_SCHED_GETAFFINITY            = 242\n\tSYS_SET_THREAD_AREA              = 243\n\tSYS_GET_THREAD_AREA              = 244\n\tSYS_IO_SETUP                     = 245\n\tSYS_IO_DESTROY                   = 246\n\tSYS_IO_GETEVENTS                 = 247\n\tSYS_IO_SUBMIT                    = 248\n\tSYS_IO_CANCEL                    = 249\n\tSYS_FADVISE64                    = 250\n\tSYS_EXIT_GROUP                   = 252\n\tSYS_LOOKUP_DCOOKIE               = 253\n\tSYS_EPOLL_CREATE                 = 254\n\tSYS_EPOLL_CTL                    = 255\n\tSYS_EPOLL_WAIT                   = 256\n\tSYS_REMAP_FILE_PAGES             = 257\n\tSYS_SET_TID_ADDRESS              = 258\n\tSYS_TIMER_CREATE                 = 259\n\tSYS_TIMER_SETTIME                = 260\n\tSYS_TIMER_GETTIME                = 261\n\tSYS_TIMER_GETOVERRUN             = 262\n\tSYS_TIMER_DELETE                 = 263\n\tSYS_CLOCK_SETTIME                = 264\n\tSYS_CLOCK_GETTIME                = 265\n\tSYS_CLOCK_GETRES                 = 266\n\tSYS_CLOCK_NANOSLEEP              = 267\n\tSYS_STATFS64                     = 268\n\tSYS_FSTATFS64                    = 269\n\tSYS_TGKILL                       = 270\n\tSYS_UTIMES                       = 271\n\tSYS_FADVISE64_64                 = 272\n\tSYS_VSERVER                      = 273\n\tSYS_MBIND                        = 274\n\tSYS_GET_MEMPOLICY                = 275\n\tSYS_SET_MEMPOLICY                = 276\n\tSYS_MQ_OPEN                      = 277\n\tSYS_MQ_UNLINK                    = 278\n\tSYS_MQ_TIMEDSEND                 = 279\n\tSYS_MQ_TIMEDRECEIVE              = 280\n\tSYS_MQ_NOTIFY                    = 281\n\tSYS_MQ_GETSETATTR                = 282\n\tSYS_KEXEC_LOAD                   = 283\n\tSYS_WAITID                       = 284\n\tSYS_ADD_KEY                      = 286\n\tSYS_REQUEST_KEY                  = 287\n\tSYS_KEYCTL                       = 288\n\tSYS_IOPRIO_SET                   = 289\n\tSYS_IOPRIO_GET                   = 290\n\tSYS_INOTIFY_INIT                 = 291\n\tSYS_INOTIFY_ADD_WATCH            = 292\n\tSYS_INOTIFY_RM_WATCH             = 293\n\tSYS_MIGRATE_PAGES                = 294\n\tSYS_OPENAT                       = 295\n\tSYS_MKDIRAT                      = 296\n\tSYS_MKNODAT                      = 297\n\tSYS_FCHOWNAT                     = 298\n\tSYS_FUTIMESAT                    = 299\n\tSYS_FSTATAT64                    = 300\n\tSYS_UNLINKAT                     = 301\n\tSYS_RENAMEAT                     = 302\n\tSYS_LINKAT                       = 303\n\tSYS_SYMLINKAT                    = 304\n\tSYS_READLINKAT                   = 305\n\tSYS_FCHMODAT                     = 306\n\tSYS_FACCESSAT                    = 307\n\tSYS_PSELECT6                     = 308\n\tSYS_PPOLL                        = 309\n\tSYS_UNSHARE                      = 310\n\tSYS_SET_ROBUST_LIST              = 311\n\tSYS_GET_ROBUST_LIST              = 312\n\tSYS_SPLICE                       = 313\n\tSYS_SYNC_FILE_RANGE              = 314\n\tSYS_TEE                          = 315\n\tSYS_VMSPLICE                     = 316\n\tSYS_MOVE_PAGES                   = 317\n\tSYS_GETCPU                       = 318\n\tSYS_EPOLL_PWAIT                  = 319\n\tSYS_UTIMENSAT                    = 320\n\tSYS_SIGNALFD                     = 321\n\tSYS_TIMERFD_CREATE               = 322\n\tSYS_EVENTFD                      = 323\n\tSYS_FALLOCATE                    = 324\n\tSYS_TIMERFD_SETTIME              = 325\n\tSYS_TIMERFD_GETTIME              = 326\n\tSYS_SIGNALFD4                    = 327\n\tSYS_EVENTFD2                     = 328\n\tSYS_EPOLL_CREATE1                = 329\n\tSYS_DUP3                         = 330\n\tSYS_PIPE2                        = 331\n\tSYS_INOTIFY_INIT1                = 332\n\tSYS_PREADV                       = 333\n\tSYS_PWRITEV                      = 334\n\tSYS_RT_TGSIGQUEUEINFO            = 335\n\tSYS_PERF_EVENT_OPEN              = 336\n\tSYS_RECVMMSG                     = 337\n\tSYS_FANOTIFY_INIT                = 338\n\tSYS_FANOTIFY_MARK                = 339\n\tSYS_PRLIMIT64                    = 340\n\tSYS_NAME_TO_HANDLE_AT            = 341\n\tSYS_OPEN_BY_HANDLE_AT            = 342\n\tSYS_CLOCK_ADJTIME                = 343\n\tSYS_SYNCFS                       = 344\n\tSYS_SENDMMSG                     = 345\n\tSYS_SETNS                        = 346\n\tSYS_PROCESS_VM_READV             = 347\n\tSYS_PROCESS_VM_WRITEV            = 348\n\tSYS_KCMP                         = 349\n\tSYS_FINIT_MODULE                 = 350\n\tSYS_SCHED_SETATTR                = 351\n\tSYS_SCHED_GETATTR                = 352\n\tSYS_RENAMEAT2                    = 353\n\tSYS_SECCOMP                      = 354\n\tSYS_GETRANDOM                    = 355\n\tSYS_MEMFD_CREATE                 = 356\n\tSYS_BPF                          = 357\n\tSYS_EXECVEAT                     = 358\n\tSYS_SOCKET                       = 359\n\tSYS_SOCKETPAIR                   = 360\n\tSYS_BIND                         = 361\n\tSYS_CONNECT                      = 362\n\tSYS_LISTEN                       = 363\n\tSYS_ACCEPT4                      = 364\n\tSYS_GETSOCKOPT                   = 365\n\tSYS_SETSOCKOPT                   = 366\n\tSYS_GETSOCKNAME                  = 367\n\tSYS_GETPEERNAME                  = 368\n\tSYS_SENDTO                       = 369\n\tSYS_SENDMSG                      = 370\n\tSYS_RECVFROM                     = 371\n\tSYS_RECVMSG                      = 372\n\tSYS_SHUTDOWN                     = 373\n\tSYS_USERFAULTFD                  = 374\n\tSYS_MEMBARRIER                   = 375\n\tSYS_MLOCK2                       = 376\n\tSYS_COPY_FILE_RANGE              = 377\n\tSYS_PREADV2                      = 378\n\tSYS_PWRITEV2                     = 379\n\tSYS_PKEY_MPROTECT                = 380\n\tSYS_PKEY_ALLOC                   = 381\n\tSYS_PKEY_FREE                    = 382\n\tSYS_STATX                        = 383\n\tSYS_ARCH_PRCTL                   = 384\n\tSYS_IO_PGETEVENTS                = 385\n\tSYS_RSEQ                         = 386\n\tSYS_SEMGET                       = 393\n\tSYS_SEMCTL                       = 394\n\tSYS_SHMGET                       = 395\n\tSYS_SHMCTL                       = 396\n\tSYS_SHMAT                        = 397\n\tSYS_SHMDT                        = 398\n\tSYS_MSGGET                       = 399\n\tSYS_MSGSND                       = 400\n\tSYS_MSGRCV                       = 401\n\tSYS_MSGCTL                       = 402\n\tSYS_CLOCK_GETTIME64              = 403\n\tSYS_CLOCK_SETTIME64              = 404\n\tSYS_CLOCK_ADJTIME64              = 405\n\tSYS_CLOCK_GETRES_TIME64          = 406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 407\n\tSYS_TIMER_GETTIME64              = 408\n\tSYS_TIMER_SETTIME64              = 409\n\tSYS_TIMERFD_GETTIME64            = 410\n\tSYS_TIMERFD_SETTIME64            = 411\n\tSYS_UTIMENSAT_TIME64             = 412\n\tSYS_PSELECT6_TIME64              = 413\n\tSYS_PPOLL_TIME64                 = 414\n\tSYS_IO_PGETEVENTS_TIME64         = 416\n\tSYS_RECVMMSG_TIME64              = 417\n\tSYS_MQ_TIMEDSEND_TIME64          = 418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 419\n\tSYS_SEMTIMEDOP_TIME64            = 420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 421\n\tSYS_FUTEX_TIME64                 = 422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 423\n\tSYS_PIDFD_SEND_SIGNAL            = 424\n\tSYS_IO_URING_SETUP               = 425\n\tSYS_IO_URING_ENTER               = 426\n\tSYS_IO_URING_REGISTER            = 427\n\tSYS_OPEN_TREE                    = 428\n\tSYS_MOVE_MOUNT                   = 429\n\tSYS_FSOPEN                       = 430\n\tSYS_FSCONFIG                     = 431\n\tSYS_FSMOUNT                      = 432\n\tSYS_FSPICK                       = 433\n\tSYS_PIDFD_OPEN                   = 434\n\tSYS_CLONE3                       = 435\n\tSYS_CLOSE_RANGE                  = 436\n\tSYS_OPENAT2                      = 437\n\tSYS_PIDFD_GETFD                  = 438\n\tSYS_FACCESSAT2                   = 439\n\tSYS_PROCESS_MADVISE              = 440\n\tSYS_EPOLL_PWAIT2                 = 441\n\tSYS_MOUNT_SETATTR                = 442\n\tSYS_QUOTACTL_FD                  = 443\n\tSYS_LANDLOCK_CREATE_RULESET      = 444\n\tSYS_LANDLOCK_ADD_RULE            = 445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 446\n\tSYS_MEMFD_SECRET                 = 447\n\tSYS_PROCESS_MRELEASE             = 448\n\tSYS_FUTEX_WAITV                  = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 450\n\tSYS_CACHESTAT                    = 451\n\tSYS_FCHMODAT2                    = 452\n\tSYS_MAP_SHADOW_STACK             = 453\n\tSYS_FUTEX_WAKE                   = 454\n\tSYS_FUTEX_WAIT                   = 455\n\tSYS_FUTEX_REQUEUE                = 456\n\tSYS_STATMOUNT                    = 457\n\tSYS_LISTMOUNT                    = 458\n\tSYS_LSM_GET_SELF_ATTR            = 459\n\tSYS_LSM_SET_SELF_ATTR            = 460\n\tSYS_LSM_LIST_MODULES             = 461\n\tSYS_MSEAL                        = 462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/amd64/include -m64 /tmp/amd64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && linux\n\npackage unix\n\nconst (\n\tSYS_READ                    = 0\n\tSYS_WRITE                   = 1\n\tSYS_OPEN                    = 2\n\tSYS_CLOSE                   = 3\n\tSYS_STAT                    = 4\n\tSYS_FSTAT                   = 5\n\tSYS_LSTAT                   = 6\n\tSYS_POLL                    = 7\n\tSYS_LSEEK                   = 8\n\tSYS_MMAP                    = 9\n\tSYS_MPROTECT                = 10\n\tSYS_MUNMAP                  = 11\n\tSYS_BRK                     = 12\n\tSYS_RT_SIGACTION            = 13\n\tSYS_RT_SIGPROCMASK          = 14\n\tSYS_RT_SIGRETURN            = 15\n\tSYS_IOCTL                   = 16\n\tSYS_PREAD64                 = 17\n\tSYS_PWRITE64                = 18\n\tSYS_READV                   = 19\n\tSYS_WRITEV                  = 20\n\tSYS_ACCESS                  = 21\n\tSYS_PIPE                    = 22\n\tSYS_SELECT                  = 23\n\tSYS_SCHED_YIELD             = 24\n\tSYS_MREMAP                  = 25\n\tSYS_MSYNC                   = 26\n\tSYS_MINCORE                 = 27\n\tSYS_MADVISE                 = 28\n\tSYS_SHMGET                  = 29\n\tSYS_SHMAT                   = 30\n\tSYS_SHMCTL                  = 31\n\tSYS_DUP                     = 32\n\tSYS_DUP2                    = 33\n\tSYS_PAUSE                   = 34\n\tSYS_NANOSLEEP               = 35\n\tSYS_GETITIMER               = 36\n\tSYS_ALARM                   = 37\n\tSYS_SETITIMER               = 38\n\tSYS_GETPID                  = 39\n\tSYS_SENDFILE                = 40\n\tSYS_SOCKET                  = 41\n\tSYS_CONNECT                 = 42\n\tSYS_ACCEPT                  = 43\n\tSYS_SENDTO                  = 44\n\tSYS_RECVFROM                = 45\n\tSYS_SENDMSG                 = 46\n\tSYS_RECVMSG                 = 47\n\tSYS_SHUTDOWN                = 48\n\tSYS_BIND                    = 49\n\tSYS_LISTEN                  = 50\n\tSYS_GETSOCKNAME             = 51\n\tSYS_GETPEERNAME             = 52\n\tSYS_SOCKETPAIR              = 53\n\tSYS_SETSOCKOPT              = 54\n\tSYS_GETSOCKOPT              = 55\n\tSYS_CLONE                   = 56\n\tSYS_FORK                    = 57\n\tSYS_VFORK                   = 58\n\tSYS_EXECVE                  = 59\n\tSYS_EXIT                    = 60\n\tSYS_WAIT4                   = 61\n\tSYS_KILL                    = 62\n\tSYS_UNAME                   = 63\n\tSYS_SEMGET                  = 64\n\tSYS_SEMOP                   = 65\n\tSYS_SEMCTL                  = 66\n\tSYS_SHMDT                   = 67\n\tSYS_MSGGET                  = 68\n\tSYS_MSGSND                  = 69\n\tSYS_MSGRCV                  = 70\n\tSYS_MSGCTL                  = 71\n\tSYS_FCNTL                   = 72\n\tSYS_FLOCK                   = 73\n\tSYS_FSYNC                   = 74\n\tSYS_FDATASYNC               = 75\n\tSYS_TRUNCATE                = 76\n\tSYS_FTRUNCATE               = 77\n\tSYS_GETDENTS                = 78\n\tSYS_GETCWD                  = 79\n\tSYS_CHDIR                   = 80\n\tSYS_FCHDIR                  = 81\n\tSYS_RENAME                  = 82\n\tSYS_MKDIR                   = 83\n\tSYS_RMDIR                   = 84\n\tSYS_CREAT                   = 85\n\tSYS_LINK                    = 86\n\tSYS_UNLINK                  = 87\n\tSYS_SYMLINK                 = 88\n\tSYS_READLINK                = 89\n\tSYS_CHMOD                   = 90\n\tSYS_FCHMOD                  = 91\n\tSYS_CHOWN                   = 92\n\tSYS_FCHOWN                  = 93\n\tSYS_LCHOWN                  = 94\n\tSYS_UMASK                   = 95\n\tSYS_GETTIMEOFDAY            = 96\n\tSYS_GETRLIMIT               = 97\n\tSYS_GETRUSAGE               = 98\n\tSYS_SYSINFO                 = 99\n\tSYS_TIMES                   = 100\n\tSYS_PTRACE                  = 101\n\tSYS_GETUID                  = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_GETGID                  = 104\n\tSYS_SETUID                  = 105\n\tSYS_SETGID                  = 106\n\tSYS_GETEUID                 = 107\n\tSYS_GETEGID                 = 108\n\tSYS_SETPGID                 = 109\n\tSYS_GETPPID                 = 110\n\tSYS_GETPGRP                 = 111\n\tSYS_SETSID                  = 112\n\tSYS_SETREUID                = 113\n\tSYS_SETREGID                = 114\n\tSYS_GETGROUPS               = 115\n\tSYS_SETGROUPS               = 116\n\tSYS_SETRESUID               = 117\n\tSYS_GETRESUID               = 118\n\tSYS_SETRESGID               = 119\n\tSYS_GETRESGID               = 120\n\tSYS_GETPGID                 = 121\n\tSYS_SETFSUID                = 122\n\tSYS_SETFSGID                = 123\n\tSYS_GETSID                  = 124\n\tSYS_CAPGET                  = 125\n\tSYS_CAPSET                  = 126\n\tSYS_RT_SIGPENDING           = 127\n\tSYS_RT_SIGTIMEDWAIT         = 128\n\tSYS_RT_SIGQUEUEINFO         = 129\n\tSYS_RT_SIGSUSPEND           = 130\n\tSYS_SIGALTSTACK             = 131\n\tSYS_UTIME                   = 132\n\tSYS_MKNOD                   = 133\n\tSYS_USELIB                  = 134\n\tSYS_PERSONALITY             = 135\n\tSYS_USTAT                   = 136\n\tSYS_STATFS                  = 137\n\tSYS_FSTATFS                 = 138\n\tSYS_SYSFS                   = 139\n\tSYS_GETPRIORITY             = 140\n\tSYS_SETPRIORITY             = 141\n\tSYS_SCHED_SETPARAM          = 142\n\tSYS_SCHED_GETPARAM          = 143\n\tSYS_SCHED_SETSCHEDULER      = 144\n\tSYS_SCHED_GETSCHEDULER      = 145\n\tSYS_SCHED_GET_PRIORITY_MAX  = 146\n\tSYS_SCHED_GET_PRIORITY_MIN  = 147\n\tSYS_SCHED_RR_GET_INTERVAL   = 148\n\tSYS_MLOCK                   = 149\n\tSYS_MUNLOCK                 = 150\n\tSYS_MLOCKALL                = 151\n\tSYS_MUNLOCKALL              = 152\n\tSYS_VHANGUP                 = 153\n\tSYS_MODIFY_LDT              = 154\n\tSYS_PIVOT_ROOT              = 155\n\tSYS__SYSCTL                 = 156\n\tSYS_PRCTL                   = 157\n\tSYS_ARCH_PRCTL              = 158\n\tSYS_ADJTIMEX                = 159\n\tSYS_SETRLIMIT               = 160\n\tSYS_CHROOT                  = 161\n\tSYS_SYNC                    = 162\n\tSYS_ACCT                    = 163\n\tSYS_SETTIMEOFDAY            = 164\n\tSYS_MOUNT                   = 165\n\tSYS_UMOUNT2                 = 166\n\tSYS_SWAPON                  = 167\n\tSYS_SWAPOFF                 = 168\n\tSYS_REBOOT                  = 169\n\tSYS_SETHOSTNAME             = 170\n\tSYS_SETDOMAINNAME           = 171\n\tSYS_IOPL                    = 172\n\tSYS_IOPERM                  = 173\n\tSYS_CREATE_MODULE           = 174\n\tSYS_INIT_MODULE             = 175\n\tSYS_DELETE_MODULE           = 176\n\tSYS_GET_KERNEL_SYMS         = 177\n\tSYS_QUERY_MODULE            = 178\n\tSYS_QUOTACTL                = 179\n\tSYS_NFSSERVCTL              = 180\n\tSYS_GETPMSG                 = 181\n\tSYS_PUTPMSG                 = 182\n\tSYS_AFS_SYSCALL             = 183\n\tSYS_TUXCALL                 = 184\n\tSYS_SECURITY                = 185\n\tSYS_GETTID                  = 186\n\tSYS_READAHEAD               = 187\n\tSYS_SETXATTR                = 188\n\tSYS_LSETXATTR               = 189\n\tSYS_FSETXATTR               = 190\n\tSYS_GETXATTR                = 191\n\tSYS_LGETXATTR               = 192\n\tSYS_FGETXATTR               = 193\n\tSYS_LISTXATTR               = 194\n\tSYS_LLISTXATTR              = 195\n\tSYS_FLISTXATTR              = 196\n\tSYS_REMOVEXATTR             = 197\n\tSYS_LREMOVEXATTR            = 198\n\tSYS_FREMOVEXATTR            = 199\n\tSYS_TKILL                   = 200\n\tSYS_TIME                    = 201\n\tSYS_FUTEX                   = 202\n\tSYS_SCHED_SETAFFINITY       = 203\n\tSYS_SCHED_GETAFFINITY       = 204\n\tSYS_SET_THREAD_AREA         = 205\n\tSYS_IO_SETUP                = 206\n\tSYS_IO_DESTROY              = 207\n\tSYS_IO_GETEVENTS            = 208\n\tSYS_IO_SUBMIT               = 209\n\tSYS_IO_CANCEL               = 210\n\tSYS_GET_THREAD_AREA         = 211\n\tSYS_LOOKUP_DCOOKIE          = 212\n\tSYS_EPOLL_CREATE            = 213\n\tSYS_EPOLL_CTL_OLD           = 214\n\tSYS_EPOLL_WAIT_OLD          = 215\n\tSYS_REMAP_FILE_PAGES        = 216\n\tSYS_GETDENTS64              = 217\n\tSYS_SET_TID_ADDRESS         = 218\n\tSYS_RESTART_SYSCALL         = 219\n\tSYS_SEMTIMEDOP              = 220\n\tSYS_FADVISE64               = 221\n\tSYS_TIMER_CREATE            = 222\n\tSYS_TIMER_SETTIME           = 223\n\tSYS_TIMER_GETTIME           = 224\n\tSYS_TIMER_GETOVERRUN        = 225\n\tSYS_TIMER_DELETE            = 226\n\tSYS_CLOCK_SETTIME           = 227\n\tSYS_CLOCK_GETTIME           = 228\n\tSYS_CLOCK_GETRES            = 229\n\tSYS_CLOCK_NANOSLEEP         = 230\n\tSYS_EXIT_GROUP              = 231\n\tSYS_EPOLL_WAIT              = 232\n\tSYS_EPOLL_CTL               = 233\n\tSYS_TGKILL                  = 234\n\tSYS_UTIMES                  = 235\n\tSYS_VSERVER                 = 236\n\tSYS_MBIND                   = 237\n\tSYS_SET_MEMPOLICY           = 238\n\tSYS_GET_MEMPOLICY           = 239\n\tSYS_MQ_OPEN                 = 240\n\tSYS_MQ_UNLINK               = 241\n\tSYS_MQ_TIMEDSEND            = 242\n\tSYS_MQ_TIMEDRECEIVE         = 243\n\tSYS_MQ_NOTIFY               = 244\n\tSYS_MQ_GETSETATTR           = 245\n\tSYS_KEXEC_LOAD              = 246\n\tSYS_WAITID                  = 247\n\tSYS_ADD_KEY                 = 248\n\tSYS_REQUEST_KEY             = 249\n\tSYS_KEYCTL                  = 250\n\tSYS_IOPRIO_SET              = 251\n\tSYS_IOPRIO_GET              = 252\n\tSYS_INOTIFY_INIT            = 253\n\tSYS_INOTIFY_ADD_WATCH       = 254\n\tSYS_INOTIFY_RM_WATCH        = 255\n\tSYS_MIGRATE_PAGES           = 256\n\tSYS_OPENAT                  = 257\n\tSYS_MKDIRAT                 = 258\n\tSYS_MKNODAT                 = 259\n\tSYS_FCHOWNAT                = 260\n\tSYS_FUTIMESAT               = 261\n\tSYS_NEWFSTATAT              = 262\n\tSYS_UNLINKAT                = 263\n\tSYS_RENAMEAT                = 264\n\tSYS_LINKAT                  = 265\n\tSYS_SYMLINKAT               = 266\n\tSYS_READLINKAT              = 267\n\tSYS_FCHMODAT                = 268\n\tSYS_FACCESSAT               = 269\n\tSYS_PSELECT6                = 270\n\tSYS_PPOLL                   = 271\n\tSYS_UNSHARE                 = 272\n\tSYS_SET_ROBUST_LIST         = 273\n\tSYS_GET_ROBUST_LIST         = 274\n\tSYS_SPLICE                  = 275\n\tSYS_TEE                     = 276\n\tSYS_SYNC_FILE_RANGE         = 277\n\tSYS_VMSPLICE                = 278\n\tSYS_MOVE_PAGES              = 279\n\tSYS_UTIMENSAT               = 280\n\tSYS_EPOLL_PWAIT             = 281\n\tSYS_SIGNALFD                = 282\n\tSYS_TIMERFD_CREATE          = 283\n\tSYS_EVENTFD                 = 284\n\tSYS_FALLOCATE               = 285\n\tSYS_TIMERFD_SETTIME         = 286\n\tSYS_TIMERFD_GETTIME         = 287\n\tSYS_ACCEPT4                 = 288\n\tSYS_SIGNALFD4               = 289\n\tSYS_EVENTFD2                = 290\n\tSYS_EPOLL_CREATE1           = 291\n\tSYS_DUP3                    = 292\n\tSYS_PIPE2                   = 293\n\tSYS_INOTIFY_INIT1           = 294\n\tSYS_PREADV                  = 295\n\tSYS_PWRITEV                 = 296\n\tSYS_RT_TGSIGQUEUEINFO       = 297\n\tSYS_PERF_EVENT_OPEN         = 298\n\tSYS_RECVMMSG                = 299\n\tSYS_FANOTIFY_INIT           = 300\n\tSYS_FANOTIFY_MARK           = 301\n\tSYS_PRLIMIT64               = 302\n\tSYS_NAME_TO_HANDLE_AT       = 303\n\tSYS_OPEN_BY_HANDLE_AT       = 304\n\tSYS_CLOCK_ADJTIME           = 305\n\tSYS_SYNCFS                  = 306\n\tSYS_SENDMMSG                = 307\n\tSYS_SETNS                   = 308\n\tSYS_GETCPU                  = 309\n\tSYS_PROCESS_VM_READV        = 310\n\tSYS_PROCESS_VM_WRITEV       = 311\n\tSYS_KCMP                    = 312\n\tSYS_FINIT_MODULE            = 313\n\tSYS_SCHED_SETATTR           = 314\n\tSYS_SCHED_GETATTR           = 315\n\tSYS_RENAMEAT2               = 316\n\tSYS_SECCOMP                 = 317\n\tSYS_GETRANDOM               = 318\n\tSYS_MEMFD_CREATE            = 319\n\tSYS_KEXEC_FILE_LOAD         = 320\n\tSYS_BPF                     = 321\n\tSYS_EXECVEAT                = 322\n\tSYS_USERFAULTFD             = 323\n\tSYS_MEMBARRIER              = 324\n\tSYS_MLOCK2                  = 325\n\tSYS_COPY_FILE_RANGE         = 326\n\tSYS_PREADV2                 = 327\n\tSYS_PWRITEV2                = 328\n\tSYS_PKEY_MPROTECT           = 329\n\tSYS_PKEY_ALLOC              = 330\n\tSYS_PKEY_FREE               = 331\n\tSYS_STATX                   = 332\n\tSYS_IO_PGETEVENTS           = 333\n\tSYS_RSEQ                    = 334\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm/include /tmp/arm/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && linux\n\npackage unix\n\nconst (\n\tSYS_SYSCALL_MASK                 = 0\n\tSYS_RESTART_SYSCALL              = 0\n\tSYS_EXIT                         = 1\n\tSYS_FORK                         = 2\n\tSYS_READ                         = 3\n\tSYS_WRITE                        = 4\n\tSYS_OPEN                         = 5\n\tSYS_CLOSE                        = 6\n\tSYS_CREAT                        = 8\n\tSYS_LINK                         = 9\n\tSYS_UNLINK                       = 10\n\tSYS_EXECVE                       = 11\n\tSYS_CHDIR                        = 12\n\tSYS_MKNOD                        = 14\n\tSYS_CHMOD                        = 15\n\tSYS_LCHOWN                       = 16\n\tSYS_LSEEK                        = 19\n\tSYS_GETPID                       = 20\n\tSYS_MOUNT                        = 21\n\tSYS_SETUID                       = 23\n\tSYS_GETUID                       = 24\n\tSYS_PTRACE                       = 26\n\tSYS_PAUSE                        = 29\n\tSYS_ACCESS                       = 33\n\tSYS_NICE                         = 34\n\tSYS_SYNC                         = 36\n\tSYS_KILL                         = 37\n\tSYS_RENAME                       = 38\n\tSYS_MKDIR                        = 39\n\tSYS_RMDIR                        = 40\n\tSYS_DUP                          = 41\n\tSYS_PIPE                         = 42\n\tSYS_TIMES                        = 43\n\tSYS_BRK                          = 45\n\tSYS_SETGID                       = 46\n\tSYS_GETGID                       = 47\n\tSYS_GETEUID                      = 49\n\tSYS_GETEGID                      = 50\n\tSYS_ACCT                         = 51\n\tSYS_UMOUNT2                      = 52\n\tSYS_IOCTL                        = 54\n\tSYS_FCNTL                        = 55\n\tSYS_SETPGID                      = 57\n\tSYS_UMASK                        = 60\n\tSYS_CHROOT                       = 61\n\tSYS_USTAT                        = 62\n\tSYS_DUP2                         = 63\n\tSYS_GETPPID                      = 64\n\tSYS_GETPGRP                      = 65\n\tSYS_SETSID                       = 66\n\tSYS_SIGACTION                    = 67\n\tSYS_SETREUID                     = 70\n\tSYS_SETREGID                     = 71\n\tSYS_SIGSUSPEND                   = 72\n\tSYS_SIGPENDING                   = 73\n\tSYS_SETHOSTNAME                  = 74\n\tSYS_SETRLIMIT                    = 75\n\tSYS_GETRUSAGE                    = 77\n\tSYS_GETTIMEOFDAY                 = 78\n\tSYS_SETTIMEOFDAY                 = 79\n\tSYS_GETGROUPS                    = 80\n\tSYS_SETGROUPS                    = 81\n\tSYS_SYMLINK                      = 83\n\tSYS_READLINK                     = 85\n\tSYS_USELIB                       = 86\n\tSYS_SWAPON                       = 87\n\tSYS_REBOOT                       = 88\n\tSYS_MUNMAP                       = 91\n\tSYS_TRUNCATE                     = 92\n\tSYS_FTRUNCATE                    = 93\n\tSYS_FCHMOD                       = 94\n\tSYS_FCHOWN                       = 95\n\tSYS_GETPRIORITY                  = 96\n\tSYS_SETPRIORITY                  = 97\n\tSYS_STATFS                       = 99\n\tSYS_FSTATFS                      = 100\n\tSYS_SYSLOG                       = 103\n\tSYS_SETITIMER                    = 104\n\tSYS_GETITIMER                    = 105\n\tSYS_STAT                         = 106\n\tSYS_LSTAT                        = 107\n\tSYS_FSTAT                        = 108\n\tSYS_VHANGUP                      = 111\n\tSYS_WAIT4                        = 114\n\tSYS_SWAPOFF                      = 115\n\tSYS_SYSINFO                      = 116\n\tSYS_FSYNC                        = 118\n\tSYS_SIGRETURN                    = 119\n\tSYS_CLONE                        = 120\n\tSYS_SETDOMAINNAME                = 121\n\tSYS_UNAME                        = 122\n\tSYS_ADJTIMEX                     = 124\n\tSYS_MPROTECT                     = 125\n\tSYS_SIGPROCMASK                  = 126\n\tSYS_INIT_MODULE                  = 128\n\tSYS_DELETE_MODULE                = 129\n\tSYS_QUOTACTL                     = 131\n\tSYS_GETPGID                      = 132\n\tSYS_FCHDIR                       = 133\n\tSYS_BDFLUSH                      = 134\n\tSYS_SYSFS                        = 135\n\tSYS_PERSONALITY                  = 136\n\tSYS_SETFSUID                     = 138\n\tSYS_SETFSGID                     = 139\n\tSYS__LLSEEK                      = 140\n\tSYS_GETDENTS                     = 141\n\tSYS__NEWSELECT                   = 142\n\tSYS_FLOCK                        = 143\n\tSYS_MSYNC                        = 144\n\tSYS_READV                        = 145\n\tSYS_WRITEV                       = 146\n\tSYS_GETSID                       = 147\n\tSYS_FDATASYNC                    = 148\n\tSYS__SYSCTL                      = 149\n\tSYS_MLOCK                        = 150\n\tSYS_MUNLOCK                      = 151\n\tSYS_MLOCKALL                     = 152\n\tSYS_MUNLOCKALL                   = 153\n\tSYS_SCHED_SETPARAM               = 154\n\tSYS_SCHED_GETPARAM               = 155\n\tSYS_SCHED_SETSCHEDULER           = 156\n\tSYS_SCHED_GETSCHEDULER           = 157\n\tSYS_SCHED_YIELD                  = 158\n\tSYS_SCHED_GET_PRIORITY_MAX       = 159\n\tSYS_SCHED_GET_PRIORITY_MIN       = 160\n\tSYS_SCHED_RR_GET_INTERVAL        = 161\n\tSYS_NANOSLEEP                    = 162\n\tSYS_MREMAP                       = 163\n\tSYS_SETRESUID                    = 164\n\tSYS_GETRESUID                    = 165\n\tSYS_POLL                         = 168\n\tSYS_NFSSERVCTL                   = 169\n\tSYS_SETRESGID                    = 170\n\tSYS_GETRESGID                    = 171\n\tSYS_PRCTL                        = 172\n\tSYS_RT_SIGRETURN                 = 173\n\tSYS_RT_SIGACTION                 = 174\n\tSYS_RT_SIGPROCMASK               = 175\n\tSYS_RT_SIGPENDING                = 176\n\tSYS_RT_SIGTIMEDWAIT              = 177\n\tSYS_RT_SIGQUEUEINFO              = 178\n\tSYS_RT_SIGSUSPEND                = 179\n\tSYS_PREAD64                      = 180\n\tSYS_PWRITE64                     = 181\n\tSYS_CHOWN                        = 182\n\tSYS_GETCWD                       = 183\n\tSYS_CAPGET                       = 184\n\tSYS_CAPSET                       = 185\n\tSYS_SIGALTSTACK                  = 186\n\tSYS_SENDFILE                     = 187\n\tSYS_VFORK                        = 190\n\tSYS_UGETRLIMIT                   = 191\n\tSYS_MMAP2                        = 192\n\tSYS_TRUNCATE64                   = 193\n\tSYS_FTRUNCATE64                  = 194\n\tSYS_STAT64                       = 195\n\tSYS_LSTAT64                      = 196\n\tSYS_FSTAT64                      = 197\n\tSYS_LCHOWN32                     = 198\n\tSYS_GETUID32                     = 199\n\tSYS_GETGID32                     = 200\n\tSYS_GETEUID32                    = 201\n\tSYS_GETEGID32                    = 202\n\tSYS_SETREUID32                   = 203\n\tSYS_SETREGID32                   = 204\n\tSYS_GETGROUPS32                  = 205\n\tSYS_SETGROUPS32                  = 206\n\tSYS_FCHOWN32                     = 207\n\tSYS_SETRESUID32                  = 208\n\tSYS_GETRESUID32                  = 209\n\tSYS_SETRESGID32                  = 210\n\tSYS_GETRESGID32                  = 211\n\tSYS_CHOWN32                      = 212\n\tSYS_SETUID32                     = 213\n\tSYS_SETGID32                     = 214\n\tSYS_SETFSUID32                   = 215\n\tSYS_SETFSGID32                   = 216\n\tSYS_GETDENTS64                   = 217\n\tSYS_PIVOT_ROOT                   = 218\n\tSYS_MINCORE                      = 219\n\tSYS_MADVISE                      = 220\n\tSYS_FCNTL64                      = 221\n\tSYS_GETTID                       = 224\n\tSYS_READAHEAD                    = 225\n\tSYS_SETXATTR                     = 226\n\tSYS_LSETXATTR                    = 227\n\tSYS_FSETXATTR                    = 228\n\tSYS_GETXATTR                     = 229\n\tSYS_LGETXATTR                    = 230\n\tSYS_FGETXATTR                    = 231\n\tSYS_LISTXATTR                    = 232\n\tSYS_LLISTXATTR                   = 233\n\tSYS_FLISTXATTR                   = 234\n\tSYS_REMOVEXATTR                  = 235\n\tSYS_LREMOVEXATTR                 = 236\n\tSYS_FREMOVEXATTR                 = 237\n\tSYS_TKILL                        = 238\n\tSYS_SENDFILE64                   = 239\n\tSYS_FUTEX                        = 240\n\tSYS_SCHED_SETAFFINITY            = 241\n\tSYS_SCHED_GETAFFINITY            = 242\n\tSYS_IO_SETUP                     = 243\n\tSYS_IO_DESTROY                   = 244\n\tSYS_IO_GETEVENTS                 = 245\n\tSYS_IO_SUBMIT                    = 246\n\tSYS_IO_CANCEL                    = 247\n\tSYS_EXIT_GROUP                   = 248\n\tSYS_LOOKUP_DCOOKIE               = 249\n\tSYS_EPOLL_CREATE                 = 250\n\tSYS_EPOLL_CTL                    = 251\n\tSYS_EPOLL_WAIT                   = 252\n\tSYS_REMAP_FILE_PAGES             = 253\n\tSYS_SET_TID_ADDRESS              = 256\n\tSYS_TIMER_CREATE                 = 257\n\tSYS_TIMER_SETTIME                = 258\n\tSYS_TIMER_GETTIME                = 259\n\tSYS_TIMER_GETOVERRUN             = 260\n\tSYS_TIMER_DELETE                 = 261\n\tSYS_CLOCK_SETTIME                = 262\n\tSYS_CLOCK_GETTIME                = 263\n\tSYS_CLOCK_GETRES                 = 264\n\tSYS_CLOCK_NANOSLEEP              = 265\n\tSYS_STATFS64                     = 266\n\tSYS_FSTATFS64                    = 267\n\tSYS_TGKILL                       = 268\n\tSYS_UTIMES                       = 269\n\tSYS_ARM_FADVISE64_64             = 270\n\tSYS_PCICONFIG_IOBASE             = 271\n\tSYS_PCICONFIG_READ               = 272\n\tSYS_PCICONFIG_WRITE              = 273\n\tSYS_MQ_OPEN                      = 274\n\tSYS_MQ_UNLINK                    = 275\n\tSYS_MQ_TIMEDSEND                 = 276\n\tSYS_MQ_TIMEDRECEIVE              = 277\n\tSYS_MQ_NOTIFY                    = 278\n\tSYS_MQ_GETSETATTR                = 279\n\tSYS_WAITID                       = 280\n\tSYS_SOCKET                       = 281\n\tSYS_BIND                         = 282\n\tSYS_CONNECT                      = 283\n\tSYS_LISTEN                       = 284\n\tSYS_ACCEPT                       = 285\n\tSYS_GETSOCKNAME                  = 286\n\tSYS_GETPEERNAME                  = 287\n\tSYS_SOCKETPAIR                   = 288\n\tSYS_SEND                         = 289\n\tSYS_SENDTO                       = 290\n\tSYS_RECV                         = 291\n\tSYS_RECVFROM                     = 292\n\tSYS_SHUTDOWN                     = 293\n\tSYS_SETSOCKOPT                   = 294\n\tSYS_GETSOCKOPT                   = 295\n\tSYS_SENDMSG                      = 296\n\tSYS_RECVMSG                      = 297\n\tSYS_SEMOP                        = 298\n\tSYS_SEMGET                       = 299\n\tSYS_SEMCTL                       = 300\n\tSYS_MSGSND                       = 301\n\tSYS_MSGRCV                       = 302\n\tSYS_MSGGET                       = 303\n\tSYS_MSGCTL                       = 304\n\tSYS_SHMAT                        = 305\n\tSYS_SHMDT                        = 306\n\tSYS_SHMGET                       = 307\n\tSYS_SHMCTL                       = 308\n\tSYS_ADD_KEY                      = 309\n\tSYS_REQUEST_KEY                  = 310\n\tSYS_KEYCTL                       = 311\n\tSYS_SEMTIMEDOP                   = 312\n\tSYS_VSERVER                      = 313\n\tSYS_IOPRIO_SET                   = 314\n\tSYS_IOPRIO_GET                   = 315\n\tSYS_INOTIFY_INIT                 = 316\n\tSYS_INOTIFY_ADD_WATCH            = 317\n\tSYS_INOTIFY_RM_WATCH             = 318\n\tSYS_MBIND                        = 319\n\tSYS_GET_MEMPOLICY                = 320\n\tSYS_SET_MEMPOLICY                = 321\n\tSYS_OPENAT                       = 322\n\tSYS_MKDIRAT                      = 323\n\tSYS_MKNODAT                      = 324\n\tSYS_FCHOWNAT                     = 325\n\tSYS_FUTIMESAT                    = 326\n\tSYS_FSTATAT64                    = 327\n\tSYS_UNLINKAT                     = 328\n\tSYS_RENAMEAT                     = 329\n\tSYS_LINKAT                       = 330\n\tSYS_SYMLINKAT                    = 331\n\tSYS_READLINKAT                   = 332\n\tSYS_FCHMODAT                     = 333\n\tSYS_FACCESSAT                    = 334\n\tSYS_PSELECT6                     = 335\n\tSYS_PPOLL                        = 336\n\tSYS_UNSHARE                      = 337\n\tSYS_SET_ROBUST_LIST              = 338\n\tSYS_GET_ROBUST_LIST              = 339\n\tSYS_SPLICE                       = 340\n\tSYS_ARM_SYNC_FILE_RANGE          = 341\n\tSYS_TEE                          = 342\n\tSYS_VMSPLICE                     = 343\n\tSYS_MOVE_PAGES                   = 344\n\tSYS_GETCPU                       = 345\n\tSYS_EPOLL_PWAIT                  = 346\n\tSYS_KEXEC_LOAD                   = 347\n\tSYS_UTIMENSAT                    = 348\n\tSYS_SIGNALFD                     = 349\n\tSYS_TIMERFD_CREATE               = 350\n\tSYS_EVENTFD                      = 351\n\tSYS_FALLOCATE                    = 352\n\tSYS_TIMERFD_SETTIME              = 353\n\tSYS_TIMERFD_GETTIME              = 354\n\tSYS_SIGNALFD4                    = 355\n\tSYS_EVENTFD2                     = 356\n\tSYS_EPOLL_CREATE1                = 357\n\tSYS_DUP3                         = 358\n\tSYS_PIPE2                        = 359\n\tSYS_INOTIFY_INIT1                = 360\n\tSYS_PREADV                       = 361\n\tSYS_PWRITEV                      = 362\n\tSYS_RT_TGSIGQUEUEINFO            = 363\n\tSYS_PERF_EVENT_OPEN              = 364\n\tSYS_RECVMMSG                     = 365\n\tSYS_ACCEPT4                      = 366\n\tSYS_FANOTIFY_INIT                = 367\n\tSYS_FANOTIFY_MARK                = 368\n\tSYS_PRLIMIT64                    = 369\n\tSYS_NAME_TO_HANDLE_AT            = 370\n\tSYS_OPEN_BY_HANDLE_AT            = 371\n\tSYS_CLOCK_ADJTIME                = 372\n\tSYS_SYNCFS                       = 373\n\tSYS_SENDMMSG                     = 374\n\tSYS_SETNS                        = 375\n\tSYS_PROCESS_VM_READV             = 376\n\tSYS_PROCESS_VM_WRITEV            = 377\n\tSYS_KCMP                         = 378\n\tSYS_FINIT_MODULE                 = 379\n\tSYS_SCHED_SETATTR                = 380\n\tSYS_SCHED_GETATTR                = 381\n\tSYS_RENAMEAT2                    = 382\n\tSYS_SECCOMP                      = 383\n\tSYS_GETRANDOM                    = 384\n\tSYS_MEMFD_CREATE                 = 385\n\tSYS_BPF                          = 386\n\tSYS_EXECVEAT                     = 387\n\tSYS_USERFAULTFD                  = 388\n\tSYS_MEMBARRIER                   = 389\n\tSYS_MLOCK2                       = 390\n\tSYS_COPY_FILE_RANGE              = 391\n\tSYS_PREADV2                      = 392\n\tSYS_PWRITEV2                     = 393\n\tSYS_PKEY_MPROTECT                = 394\n\tSYS_PKEY_ALLOC                   = 395\n\tSYS_PKEY_FREE                    = 396\n\tSYS_STATX                        = 397\n\tSYS_RSEQ                         = 398\n\tSYS_IO_PGETEVENTS                = 399\n\tSYS_MIGRATE_PAGES                = 400\n\tSYS_KEXEC_FILE_LOAD              = 401\n\tSYS_CLOCK_GETTIME64              = 403\n\tSYS_CLOCK_SETTIME64              = 404\n\tSYS_CLOCK_ADJTIME64              = 405\n\tSYS_CLOCK_GETRES_TIME64          = 406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 407\n\tSYS_TIMER_GETTIME64              = 408\n\tSYS_TIMER_SETTIME64              = 409\n\tSYS_TIMERFD_GETTIME64            = 410\n\tSYS_TIMERFD_SETTIME64            = 411\n\tSYS_UTIMENSAT_TIME64             = 412\n\tSYS_PSELECT6_TIME64              = 413\n\tSYS_PPOLL_TIME64                 = 414\n\tSYS_IO_PGETEVENTS_TIME64         = 416\n\tSYS_RECVMMSG_TIME64              = 417\n\tSYS_MQ_TIMEDSEND_TIME64          = 418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 419\n\tSYS_SEMTIMEDOP_TIME64            = 420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 421\n\tSYS_FUTEX_TIME64                 = 422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 423\n\tSYS_PIDFD_SEND_SIGNAL            = 424\n\tSYS_IO_URING_SETUP               = 425\n\tSYS_IO_URING_ENTER               = 426\n\tSYS_IO_URING_REGISTER            = 427\n\tSYS_OPEN_TREE                    = 428\n\tSYS_MOVE_MOUNT                   = 429\n\tSYS_FSOPEN                       = 430\n\tSYS_FSCONFIG                     = 431\n\tSYS_FSMOUNT                      = 432\n\tSYS_FSPICK                       = 433\n\tSYS_PIDFD_OPEN                   = 434\n\tSYS_CLONE3                       = 435\n\tSYS_CLOSE_RANGE                  = 436\n\tSYS_OPENAT2                      = 437\n\tSYS_PIDFD_GETFD                  = 438\n\tSYS_FACCESSAT2                   = 439\n\tSYS_PROCESS_MADVISE              = 440\n\tSYS_EPOLL_PWAIT2                 = 441\n\tSYS_MOUNT_SETATTR                = 442\n\tSYS_QUOTACTL_FD                  = 443\n\tSYS_LANDLOCK_CREATE_RULESET      = 444\n\tSYS_LANDLOCK_ADD_RULE            = 445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 446\n\tSYS_PROCESS_MRELEASE             = 448\n\tSYS_FUTEX_WAITV                  = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 450\n\tSYS_CACHESTAT                    = 451\n\tSYS_FCHMODAT2                    = 452\n\tSYS_MAP_SHADOW_STACK             = 453\n\tSYS_FUTEX_WAKE                   = 454\n\tSYS_FUTEX_WAIT                   = 455\n\tSYS_FUTEX_REQUEUE                = 456\n\tSYS_STATMOUNT                    = 457\n\tSYS_LISTMOUNT                    = 458\n\tSYS_LSM_GET_SELF_ATTR            = 459\n\tSYS_LSM_SET_SELF_ATTR            = 460\n\tSYS_LSM_LIST_MODULES             = 461\n\tSYS_MSEAL                        = 462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm64/include -fsigned-char /tmp/arm64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && linux\n\npackage unix\n\nconst (\n\tSYS_IO_SETUP                = 0\n\tSYS_IO_DESTROY              = 1\n\tSYS_IO_SUBMIT               = 2\n\tSYS_IO_CANCEL               = 3\n\tSYS_IO_GETEVENTS            = 4\n\tSYS_SETXATTR                = 5\n\tSYS_LSETXATTR               = 6\n\tSYS_FSETXATTR               = 7\n\tSYS_GETXATTR                = 8\n\tSYS_LGETXATTR               = 9\n\tSYS_FGETXATTR               = 10\n\tSYS_LISTXATTR               = 11\n\tSYS_LLISTXATTR              = 12\n\tSYS_FLISTXATTR              = 13\n\tSYS_REMOVEXATTR             = 14\n\tSYS_LREMOVEXATTR            = 15\n\tSYS_FREMOVEXATTR            = 16\n\tSYS_GETCWD                  = 17\n\tSYS_LOOKUP_DCOOKIE          = 18\n\tSYS_EVENTFD2                = 19\n\tSYS_EPOLL_CREATE1           = 20\n\tSYS_EPOLL_CTL               = 21\n\tSYS_EPOLL_PWAIT             = 22\n\tSYS_DUP                     = 23\n\tSYS_DUP3                    = 24\n\tSYS_FCNTL                   = 25\n\tSYS_INOTIFY_INIT1           = 26\n\tSYS_INOTIFY_ADD_WATCH       = 27\n\tSYS_INOTIFY_RM_WATCH        = 28\n\tSYS_IOCTL                   = 29\n\tSYS_IOPRIO_SET              = 30\n\tSYS_IOPRIO_GET              = 31\n\tSYS_FLOCK                   = 32\n\tSYS_MKNODAT                 = 33\n\tSYS_MKDIRAT                 = 34\n\tSYS_UNLINKAT                = 35\n\tSYS_SYMLINKAT               = 36\n\tSYS_LINKAT                  = 37\n\tSYS_RENAMEAT                = 38\n\tSYS_UMOUNT2                 = 39\n\tSYS_MOUNT                   = 40\n\tSYS_PIVOT_ROOT              = 41\n\tSYS_NFSSERVCTL              = 42\n\tSYS_STATFS                  = 43\n\tSYS_FSTATFS                 = 44\n\tSYS_TRUNCATE                = 45\n\tSYS_FTRUNCATE               = 46\n\tSYS_FALLOCATE               = 47\n\tSYS_FACCESSAT               = 48\n\tSYS_CHDIR                   = 49\n\tSYS_FCHDIR                  = 50\n\tSYS_CHROOT                  = 51\n\tSYS_FCHMOD                  = 52\n\tSYS_FCHMODAT                = 53\n\tSYS_FCHOWNAT                = 54\n\tSYS_FCHOWN                  = 55\n\tSYS_OPENAT                  = 56\n\tSYS_CLOSE                   = 57\n\tSYS_VHANGUP                 = 58\n\tSYS_PIPE2                   = 59\n\tSYS_QUOTACTL                = 60\n\tSYS_GETDENTS64              = 61\n\tSYS_LSEEK                   = 62\n\tSYS_READ                    = 63\n\tSYS_WRITE                   = 64\n\tSYS_READV                   = 65\n\tSYS_WRITEV                  = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_PREADV                  = 69\n\tSYS_PWRITEV                 = 70\n\tSYS_SENDFILE                = 71\n\tSYS_PSELECT6                = 72\n\tSYS_PPOLL                   = 73\n\tSYS_SIGNALFD4               = 74\n\tSYS_VMSPLICE                = 75\n\tSYS_SPLICE                  = 76\n\tSYS_TEE                     = 77\n\tSYS_READLINKAT              = 78\n\tSYS_FSTATAT                 = 79\n\tSYS_FSTAT                   = 80\n\tSYS_SYNC                    = 81\n\tSYS_FSYNC                   = 82\n\tSYS_FDATASYNC               = 83\n\tSYS_SYNC_FILE_RANGE         = 84\n\tSYS_TIMERFD_CREATE          = 85\n\tSYS_TIMERFD_SETTIME         = 86\n\tSYS_TIMERFD_GETTIME         = 87\n\tSYS_UTIMENSAT               = 88\n\tSYS_ACCT                    = 89\n\tSYS_CAPGET                  = 90\n\tSYS_CAPSET                  = 91\n\tSYS_PERSONALITY             = 92\n\tSYS_EXIT                    = 93\n\tSYS_EXIT_GROUP              = 94\n\tSYS_WAITID                  = 95\n\tSYS_SET_TID_ADDRESS         = 96\n\tSYS_UNSHARE                 = 97\n\tSYS_FUTEX                   = 98\n\tSYS_SET_ROBUST_LIST         = 99\n\tSYS_GET_ROBUST_LIST         = 100\n\tSYS_NANOSLEEP               = 101\n\tSYS_GETITIMER               = 102\n\tSYS_SETITIMER               = 103\n\tSYS_KEXEC_LOAD              = 104\n\tSYS_INIT_MODULE             = 105\n\tSYS_DELETE_MODULE           = 106\n\tSYS_TIMER_CREATE            = 107\n\tSYS_TIMER_GETTIME           = 108\n\tSYS_TIMER_GETOVERRUN        = 109\n\tSYS_TIMER_SETTIME           = 110\n\tSYS_TIMER_DELETE            = 111\n\tSYS_CLOCK_SETTIME           = 112\n\tSYS_CLOCK_GETTIME           = 113\n\tSYS_CLOCK_GETRES            = 114\n\tSYS_CLOCK_NANOSLEEP         = 115\n\tSYS_SYSLOG                  = 116\n\tSYS_PTRACE                  = 117\n\tSYS_SCHED_SETPARAM          = 118\n\tSYS_SCHED_SETSCHEDULER      = 119\n\tSYS_SCHED_GETSCHEDULER      = 120\n\tSYS_SCHED_GETPARAM          = 121\n\tSYS_SCHED_SETAFFINITY       = 122\n\tSYS_SCHED_GETAFFINITY       = 123\n\tSYS_SCHED_YIELD             = 124\n\tSYS_SCHED_GET_PRIORITY_MAX  = 125\n\tSYS_SCHED_GET_PRIORITY_MIN  = 126\n\tSYS_SCHED_RR_GET_INTERVAL   = 127\n\tSYS_RESTART_SYSCALL         = 128\n\tSYS_KILL                    = 129\n\tSYS_TKILL                   = 130\n\tSYS_TGKILL                  = 131\n\tSYS_SIGALTSTACK             = 132\n\tSYS_RT_SIGSUSPEND           = 133\n\tSYS_RT_SIGACTION            = 134\n\tSYS_RT_SIGPROCMASK          = 135\n\tSYS_RT_SIGPENDING           = 136\n\tSYS_RT_SIGTIMEDWAIT         = 137\n\tSYS_RT_SIGQUEUEINFO         = 138\n\tSYS_RT_SIGRETURN            = 139\n\tSYS_SETPRIORITY             = 140\n\tSYS_GETPRIORITY             = 141\n\tSYS_REBOOT                  = 142\n\tSYS_SETREGID                = 143\n\tSYS_SETGID                  = 144\n\tSYS_SETREUID                = 145\n\tSYS_SETUID                  = 146\n\tSYS_SETRESUID               = 147\n\tSYS_GETRESUID               = 148\n\tSYS_SETRESGID               = 149\n\tSYS_GETRESGID               = 150\n\tSYS_SETFSUID                = 151\n\tSYS_SETFSGID                = 152\n\tSYS_TIMES                   = 153\n\tSYS_SETPGID                 = 154\n\tSYS_GETPGID                 = 155\n\tSYS_GETSID                  = 156\n\tSYS_SETSID                  = 157\n\tSYS_GETGROUPS               = 158\n\tSYS_SETGROUPS               = 159\n\tSYS_UNAME                   = 160\n\tSYS_SETHOSTNAME             = 161\n\tSYS_SETDOMAINNAME           = 162\n\tSYS_GETRLIMIT               = 163\n\tSYS_SETRLIMIT               = 164\n\tSYS_GETRUSAGE               = 165\n\tSYS_UMASK                   = 166\n\tSYS_PRCTL                   = 167\n\tSYS_GETCPU                  = 168\n\tSYS_GETTIMEOFDAY            = 169\n\tSYS_SETTIMEOFDAY            = 170\n\tSYS_ADJTIMEX                = 171\n\tSYS_GETPID                  = 172\n\tSYS_GETPPID                 = 173\n\tSYS_GETUID                  = 174\n\tSYS_GETEUID                 = 175\n\tSYS_GETGID                  = 176\n\tSYS_GETEGID                 = 177\n\tSYS_GETTID                  = 178\n\tSYS_SYSINFO                 = 179\n\tSYS_MQ_OPEN                 = 180\n\tSYS_MQ_UNLINK               = 181\n\tSYS_MQ_TIMEDSEND            = 182\n\tSYS_MQ_TIMEDRECEIVE         = 183\n\tSYS_MQ_NOTIFY               = 184\n\tSYS_MQ_GETSETATTR           = 185\n\tSYS_MSGGET                  = 186\n\tSYS_MSGCTL                  = 187\n\tSYS_MSGRCV                  = 188\n\tSYS_MSGSND                  = 189\n\tSYS_SEMGET                  = 190\n\tSYS_SEMCTL                  = 191\n\tSYS_SEMTIMEDOP              = 192\n\tSYS_SEMOP                   = 193\n\tSYS_SHMGET                  = 194\n\tSYS_SHMCTL                  = 195\n\tSYS_SHMAT                   = 196\n\tSYS_SHMDT                   = 197\n\tSYS_SOCKET                  = 198\n\tSYS_SOCKETPAIR              = 199\n\tSYS_BIND                    = 200\n\tSYS_LISTEN                  = 201\n\tSYS_ACCEPT                  = 202\n\tSYS_CONNECT                 = 203\n\tSYS_GETSOCKNAME             = 204\n\tSYS_GETPEERNAME             = 205\n\tSYS_SENDTO                  = 206\n\tSYS_RECVFROM                = 207\n\tSYS_SETSOCKOPT              = 208\n\tSYS_GETSOCKOPT              = 209\n\tSYS_SHUTDOWN                = 210\n\tSYS_SENDMSG                 = 211\n\tSYS_RECVMSG                 = 212\n\tSYS_READAHEAD               = 213\n\tSYS_BRK                     = 214\n\tSYS_MUNMAP                  = 215\n\tSYS_MREMAP                  = 216\n\tSYS_ADD_KEY                 = 217\n\tSYS_REQUEST_KEY             = 218\n\tSYS_KEYCTL                  = 219\n\tSYS_CLONE                   = 220\n\tSYS_EXECVE                  = 221\n\tSYS_MMAP                    = 222\n\tSYS_FADVISE64               = 223\n\tSYS_SWAPON                  = 224\n\tSYS_SWAPOFF                 = 225\n\tSYS_MPROTECT                = 226\n\tSYS_MSYNC                   = 227\n\tSYS_MLOCK                   = 228\n\tSYS_MUNLOCK                 = 229\n\tSYS_MLOCKALL                = 230\n\tSYS_MUNLOCKALL              = 231\n\tSYS_MINCORE                 = 232\n\tSYS_MADVISE                 = 233\n\tSYS_REMAP_FILE_PAGES        = 234\n\tSYS_MBIND                   = 235\n\tSYS_GET_MEMPOLICY           = 236\n\tSYS_SET_MEMPOLICY           = 237\n\tSYS_MIGRATE_PAGES           = 238\n\tSYS_MOVE_PAGES              = 239\n\tSYS_RT_TGSIGQUEUEINFO       = 240\n\tSYS_PERF_EVENT_OPEN         = 241\n\tSYS_ACCEPT4                 = 242\n\tSYS_RECVMMSG                = 243\n\tSYS_ARCH_SPECIFIC_SYSCALL   = 244\n\tSYS_WAIT4                   = 260\n\tSYS_PRLIMIT64               = 261\n\tSYS_FANOTIFY_INIT           = 262\n\tSYS_FANOTIFY_MARK           = 263\n\tSYS_NAME_TO_HANDLE_AT       = 264\n\tSYS_OPEN_BY_HANDLE_AT       = 265\n\tSYS_CLOCK_ADJTIME           = 266\n\tSYS_SYNCFS                  = 267\n\tSYS_SETNS                   = 268\n\tSYS_SENDMMSG                = 269\n\tSYS_PROCESS_VM_READV        = 270\n\tSYS_PROCESS_VM_WRITEV       = 271\n\tSYS_KCMP                    = 272\n\tSYS_FINIT_MODULE            = 273\n\tSYS_SCHED_SETATTR           = 274\n\tSYS_SCHED_GETATTR           = 275\n\tSYS_RENAMEAT2               = 276\n\tSYS_SECCOMP                 = 277\n\tSYS_GETRANDOM               = 278\n\tSYS_MEMFD_CREATE            = 279\n\tSYS_BPF                     = 280\n\tSYS_EXECVEAT                = 281\n\tSYS_USERFAULTFD             = 282\n\tSYS_MEMBARRIER              = 283\n\tSYS_MLOCK2                  = 284\n\tSYS_COPY_FILE_RANGE         = 285\n\tSYS_PREADV2                 = 286\n\tSYS_PWRITEV2                = 287\n\tSYS_PKEY_MPROTECT           = 288\n\tSYS_PKEY_ALLOC              = 289\n\tSYS_PKEY_FREE               = 290\n\tSYS_STATX                   = 291\n\tSYS_IO_PGETEVENTS           = 292\n\tSYS_RSEQ                    = 293\n\tSYS_KEXEC_FILE_LOAD         = 294\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/loong64/include /tmp/loong64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build loong64 && linux\n\npackage unix\n\nconst (\n\tSYS_IO_SETUP                = 0\n\tSYS_IO_DESTROY              = 1\n\tSYS_IO_SUBMIT               = 2\n\tSYS_IO_CANCEL               = 3\n\tSYS_IO_GETEVENTS            = 4\n\tSYS_SETXATTR                = 5\n\tSYS_LSETXATTR               = 6\n\tSYS_FSETXATTR               = 7\n\tSYS_GETXATTR                = 8\n\tSYS_LGETXATTR               = 9\n\tSYS_FGETXATTR               = 10\n\tSYS_LISTXATTR               = 11\n\tSYS_LLISTXATTR              = 12\n\tSYS_FLISTXATTR              = 13\n\tSYS_REMOVEXATTR             = 14\n\tSYS_LREMOVEXATTR            = 15\n\tSYS_FREMOVEXATTR            = 16\n\tSYS_GETCWD                  = 17\n\tSYS_LOOKUP_DCOOKIE          = 18\n\tSYS_EVENTFD2                = 19\n\tSYS_EPOLL_CREATE1           = 20\n\tSYS_EPOLL_CTL               = 21\n\tSYS_EPOLL_PWAIT             = 22\n\tSYS_DUP                     = 23\n\tSYS_DUP3                    = 24\n\tSYS_FCNTL                   = 25\n\tSYS_INOTIFY_INIT1           = 26\n\tSYS_INOTIFY_ADD_WATCH       = 27\n\tSYS_INOTIFY_RM_WATCH        = 28\n\tSYS_IOCTL                   = 29\n\tSYS_IOPRIO_SET              = 30\n\tSYS_IOPRIO_GET              = 31\n\tSYS_FLOCK                   = 32\n\tSYS_MKNODAT                 = 33\n\tSYS_MKDIRAT                 = 34\n\tSYS_UNLINKAT                = 35\n\tSYS_SYMLINKAT               = 36\n\tSYS_LINKAT                  = 37\n\tSYS_UMOUNT2                 = 39\n\tSYS_MOUNT                   = 40\n\tSYS_PIVOT_ROOT              = 41\n\tSYS_NFSSERVCTL              = 42\n\tSYS_STATFS                  = 43\n\tSYS_FSTATFS                 = 44\n\tSYS_TRUNCATE                = 45\n\tSYS_FTRUNCATE               = 46\n\tSYS_FALLOCATE               = 47\n\tSYS_FACCESSAT               = 48\n\tSYS_CHDIR                   = 49\n\tSYS_FCHDIR                  = 50\n\tSYS_CHROOT                  = 51\n\tSYS_FCHMOD                  = 52\n\tSYS_FCHMODAT                = 53\n\tSYS_FCHOWNAT                = 54\n\tSYS_FCHOWN                  = 55\n\tSYS_OPENAT                  = 56\n\tSYS_CLOSE                   = 57\n\tSYS_VHANGUP                 = 58\n\tSYS_PIPE2                   = 59\n\tSYS_QUOTACTL                = 60\n\tSYS_GETDENTS64              = 61\n\tSYS_LSEEK                   = 62\n\tSYS_READ                    = 63\n\tSYS_WRITE                   = 64\n\tSYS_READV                   = 65\n\tSYS_WRITEV                  = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_PREADV                  = 69\n\tSYS_PWRITEV                 = 70\n\tSYS_SENDFILE                = 71\n\tSYS_PSELECT6                = 72\n\tSYS_PPOLL                   = 73\n\tSYS_SIGNALFD4               = 74\n\tSYS_VMSPLICE                = 75\n\tSYS_SPLICE                  = 76\n\tSYS_TEE                     = 77\n\tSYS_READLINKAT              = 78\n\tSYS_SYNC                    = 81\n\tSYS_FSYNC                   = 82\n\tSYS_FDATASYNC               = 83\n\tSYS_SYNC_FILE_RANGE         = 84\n\tSYS_TIMERFD_CREATE          = 85\n\tSYS_TIMERFD_SETTIME         = 86\n\tSYS_TIMERFD_GETTIME         = 87\n\tSYS_UTIMENSAT               = 88\n\tSYS_ACCT                    = 89\n\tSYS_CAPGET                  = 90\n\tSYS_CAPSET                  = 91\n\tSYS_PERSONALITY             = 92\n\tSYS_EXIT                    = 93\n\tSYS_EXIT_GROUP              = 94\n\tSYS_WAITID                  = 95\n\tSYS_SET_TID_ADDRESS         = 96\n\tSYS_UNSHARE                 = 97\n\tSYS_FUTEX                   = 98\n\tSYS_SET_ROBUST_LIST         = 99\n\tSYS_GET_ROBUST_LIST         = 100\n\tSYS_NANOSLEEP               = 101\n\tSYS_GETITIMER               = 102\n\tSYS_SETITIMER               = 103\n\tSYS_KEXEC_LOAD              = 104\n\tSYS_INIT_MODULE             = 105\n\tSYS_DELETE_MODULE           = 106\n\tSYS_TIMER_CREATE            = 107\n\tSYS_TIMER_GETTIME           = 108\n\tSYS_TIMER_GETOVERRUN        = 109\n\tSYS_TIMER_SETTIME           = 110\n\tSYS_TIMER_DELETE            = 111\n\tSYS_CLOCK_SETTIME           = 112\n\tSYS_CLOCK_GETTIME           = 113\n\tSYS_CLOCK_GETRES            = 114\n\tSYS_CLOCK_NANOSLEEP         = 115\n\tSYS_SYSLOG                  = 116\n\tSYS_PTRACE                  = 117\n\tSYS_SCHED_SETPARAM          = 118\n\tSYS_SCHED_SETSCHEDULER      = 119\n\tSYS_SCHED_GETSCHEDULER      = 120\n\tSYS_SCHED_GETPARAM          = 121\n\tSYS_SCHED_SETAFFINITY       = 122\n\tSYS_SCHED_GETAFFINITY       = 123\n\tSYS_SCHED_YIELD             = 124\n\tSYS_SCHED_GET_PRIORITY_MAX  = 125\n\tSYS_SCHED_GET_PRIORITY_MIN  = 126\n\tSYS_SCHED_RR_GET_INTERVAL   = 127\n\tSYS_RESTART_SYSCALL         = 128\n\tSYS_KILL                    = 129\n\tSYS_TKILL                   = 130\n\tSYS_TGKILL                  = 131\n\tSYS_SIGALTSTACK             = 132\n\tSYS_RT_SIGSUSPEND           = 133\n\tSYS_RT_SIGACTION            = 134\n\tSYS_RT_SIGPROCMASK          = 135\n\tSYS_RT_SIGPENDING           = 136\n\tSYS_RT_SIGTIMEDWAIT         = 137\n\tSYS_RT_SIGQUEUEINFO         = 138\n\tSYS_RT_SIGRETURN            = 139\n\tSYS_SETPRIORITY             = 140\n\tSYS_GETPRIORITY             = 141\n\tSYS_REBOOT                  = 142\n\tSYS_SETREGID                = 143\n\tSYS_SETGID                  = 144\n\tSYS_SETREUID                = 145\n\tSYS_SETUID                  = 146\n\tSYS_SETRESUID               = 147\n\tSYS_GETRESUID               = 148\n\tSYS_SETRESGID               = 149\n\tSYS_GETRESGID               = 150\n\tSYS_SETFSUID                = 151\n\tSYS_SETFSGID                = 152\n\tSYS_TIMES                   = 153\n\tSYS_SETPGID                 = 154\n\tSYS_GETPGID                 = 155\n\tSYS_GETSID                  = 156\n\tSYS_SETSID                  = 157\n\tSYS_GETGROUPS               = 158\n\tSYS_SETGROUPS               = 159\n\tSYS_UNAME                   = 160\n\tSYS_SETHOSTNAME             = 161\n\tSYS_SETDOMAINNAME           = 162\n\tSYS_GETRUSAGE               = 165\n\tSYS_UMASK                   = 166\n\tSYS_PRCTL                   = 167\n\tSYS_GETCPU                  = 168\n\tSYS_GETTIMEOFDAY            = 169\n\tSYS_SETTIMEOFDAY            = 170\n\tSYS_ADJTIMEX                = 171\n\tSYS_GETPID                  = 172\n\tSYS_GETPPID                 = 173\n\tSYS_GETUID                  = 174\n\tSYS_GETEUID                 = 175\n\tSYS_GETGID                  = 176\n\tSYS_GETEGID                 = 177\n\tSYS_GETTID                  = 178\n\tSYS_SYSINFO                 = 179\n\tSYS_MQ_OPEN                 = 180\n\tSYS_MQ_UNLINK               = 181\n\tSYS_MQ_TIMEDSEND            = 182\n\tSYS_MQ_TIMEDRECEIVE         = 183\n\tSYS_MQ_NOTIFY               = 184\n\tSYS_MQ_GETSETATTR           = 185\n\tSYS_MSGGET                  = 186\n\tSYS_MSGCTL                  = 187\n\tSYS_MSGRCV                  = 188\n\tSYS_MSGSND                  = 189\n\tSYS_SEMGET                  = 190\n\tSYS_SEMCTL                  = 191\n\tSYS_SEMTIMEDOP              = 192\n\tSYS_SEMOP                   = 193\n\tSYS_SHMGET                  = 194\n\tSYS_SHMCTL                  = 195\n\tSYS_SHMAT                   = 196\n\tSYS_SHMDT                   = 197\n\tSYS_SOCKET                  = 198\n\tSYS_SOCKETPAIR              = 199\n\tSYS_BIND                    = 200\n\tSYS_LISTEN                  = 201\n\tSYS_ACCEPT                  = 202\n\tSYS_CONNECT                 = 203\n\tSYS_GETSOCKNAME             = 204\n\tSYS_GETPEERNAME             = 205\n\tSYS_SENDTO                  = 206\n\tSYS_RECVFROM                = 207\n\tSYS_SETSOCKOPT              = 208\n\tSYS_GETSOCKOPT              = 209\n\tSYS_SHUTDOWN                = 210\n\tSYS_SENDMSG                 = 211\n\tSYS_RECVMSG                 = 212\n\tSYS_READAHEAD               = 213\n\tSYS_BRK                     = 214\n\tSYS_MUNMAP                  = 215\n\tSYS_MREMAP                  = 216\n\tSYS_ADD_KEY                 = 217\n\tSYS_REQUEST_KEY             = 218\n\tSYS_KEYCTL                  = 219\n\tSYS_CLONE                   = 220\n\tSYS_EXECVE                  = 221\n\tSYS_MMAP                    = 222\n\tSYS_FADVISE64               = 223\n\tSYS_SWAPON                  = 224\n\tSYS_SWAPOFF                 = 225\n\tSYS_MPROTECT                = 226\n\tSYS_MSYNC                   = 227\n\tSYS_MLOCK                   = 228\n\tSYS_MUNLOCK                 = 229\n\tSYS_MLOCKALL                = 230\n\tSYS_MUNLOCKALL              = 231\n\tSYS_MINCORE                 = 232\n\tSYS_MADVISE                 = 233\n\tSYS_REMAP_FILE_PAGES        = 234\n\tSYS_MBIND                   = 235\n\tSYS_GET_MEMPOLICY           = 236\n\tSYS_SET_MEMPOLICY           = 237\n\tSYS_MIGRATE_PAGES           = 238\n\tSYS_MOVE_PAGES              = 239\n\tSYS_RT_TGSIGQUEUEINFO       = 240\n\tSYS_PERF_EVENT_OPEN         = 241\n\tSYS_ACCEPT4                 = 242\n\tSYS_RECVMMSG                = 243\n\tSYS_ARCH_SPECIFIC_SYSCALL   = 244\n\tSYS_WAIT4                   = 260\n\tSYS_PRLIMIT64               = 261\n\tSYS_FANOTIFY_INIT           = 262\n\tSYS_FANOTIFY_MARK           = 263\n\tSYS_NAME_TO_HANDLE_AT       = 264\n\tSYS_OPEN_BY_HANDLE_AT       = 265\n\tSYS_CLOCK_ADJTIME           = 266\n\tSYS_SYNCFS                  = 267\n\tSYS_SETNS                   = 268\n\tSYS_SENDMMSG                = 269\n\tSYS_PROCESS_VM_READV        = 270\n\tSYS_PROCESS_VM_WRITEV       = 271\n\tSYS_KCMP                    = 272\n\tSYS_FINIT_MODULE            = 273\n\tSYS_SCHED_SETATTR           = 274\n\tSYS_SCHED_GETATTR           = 275\n\tSYS_RENAMEAT2               = 276\n\tSYS_SECCOMP                 = 277\n\tSYS_GETRANDOM               = 278\n\tSYS_MEMFD_CREATE            = 279\n\tSYS_BPF                     = 280\n\tSYS_EXECVEAT                = 281\n\tSYS_USERFAULTFD             = 282\n\tSYS_MEMBARRIER              = 283\n\tSYS_MLOCK2                  = 284\n\tSYS_COPY_FILE_RANGE         = 285\n\tSYS_PREADV2                 = 286\n\tSYS_PWRITEV2                = 287\n\tSYS_PKEY_MPROTECT           = 288\n\tSYS_PKEY_ALLOC              = 289\n\tSYS_PKEY_FREE               = 290\n\tSYS_STATX                   = 291\n\tSYS_IO_PGETEVENTS           = 292\n\tSYS_RSEQ                    = 293\n\tSYS_KEXEC_FILE_LOAD         = 294\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips/include /tmp/mips/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips && linux\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                      = 4000\n\tSYS_EXIT                         = 4001\n\tSYS_FORK                         = 4002\n\tSYS_READ                         = 4003\n\tSYS_WRITE                        = 4004\n\tSYS_OPEN                         = 4005\n\tSYS_CLOSE                        = 4006\n\tSYS_WAITPID                      = 4007\n\tSYS_CREAT                        = 4008\n\tSYS_LINK                         = 4009\n\tSYS_UNLINK                       = 4010\n\tSYS_EXECVE                       = 4011\n\tSYS_CHDIR                        = 4012\n\tSYS_TIME                         = 4013\n\tSYS_MKNOD                        = 4014\n\tSYS_CHMOD                        = 4015\n\tSYS_LCHOWN                       = 4016\n\tSYS_BREAK                        = 4017\n\tSYS_UNUSED18                     = 4018\n\tSYS_LSEEK                        = 4019\n\tSYS_GETPID                       = 4020\n\tSYS_MOUNT                        = 4021\n\tSYS_UMOUNT                       = 4022\n\tSYS_SETUID                       = 4023\n\tSYS_GETUID                       = 4024\n\tSYS_STIME                        = 4025\n\tSYS_PTRACE                       = 4026\n\tSYS_ALARM                        = 4027\n\tSYS_UNUSED28                     = 4028\n\tSYS_PAUSE                        = 4029\n\tSYS_UTIME                        = 4030\n\tSYS_STTY                         = 4031\n\tSYS_GTTY                         = 4032\n\tSYS_ACCESS                       = 4033\n\tSYS_NICE                         = 4034\n\tSYS_FTIME                        = 4035\n\tSYS_SYNC                         = 4036\n\tSYS_KILL                         = 4037\n\tSYS_RENAME                       = 4038\n\tSYS_MKDIR                        = 4039\n\tSYS_RMDIR                        = 4040\n\tSYS_DUP                          = 4041\n\tSYS_PIPE                         = 4042\n\tSYS_TIMES                        = 4043\n\tSYS_PROF                         = 4044\n\tSYS_BRK                          = 4045\n\tSYS_SETGID                       = 4046\n\tSYS_GETGID                       = 4047\n\tSYS_SIGNAL                       = 4048\n\tSYS_GETEUID                      = 4049\n\tSYS_GETEGID                      = 4050\n\tSYS_ACCT                         = 4051\n\tSYS_UMOUNT2                      = 4052\n\tSYS_LOCK                         = 4053\n\tSYS_IOCTL                        = 4054\n\tSYS_FCNTL                        = 4055\n\tSYS_MPX                          = 4056\n\tSYS_SETPGID                      = 4057\n\tSYS_ULIMIT                       = 4058\n\tSYS_UNUSED59                     = 4059\n\tSYS_UMASK                        = 4060\n\tSYS_CHROOT                       = 4061\n\tSYS_USTAT                        = 4062\n\tSYS_DUP2                         = 4063\n\tSYS_GETPPID                      = 4064\n\tSYS_GETPGRP                      = 4065\n\tSYS_SETSID                       = 4066\n\tSYS_SIGACTION                    = 4067\n\tSYS_SGETMASK                     = 4068\n\tSYS_SSETMASK                     = 4069\n\tSYS_SETREUID                     = 4070\n\tSYS_SETREGID                     = 4071\n\tSYS_SIGSUSPEND                   = 4072\n\tSYS_SIGPENDING                   = 4073\n\tSYS_SETHOSTNAME                  = 4074\n\tSYS_SETRLIMIT                    = 4075\n\tSYS_GETRLIMIT                    = 4076\n\tSYS_GETRUSAGE                    = 4077\n\tSYS_GETTIMEOFDAY                 = 4078\n\tSYS_SETTIMEOFDAY                 = 4079\n\tSYS_GETGROUPS                    = 4080\n\tSYS_SETGROUPS                    = 4081\n\tSYS_RESERVED82                   = 4082\n\tSYS_SYMLINK                      = 4083\n\tSYS_UNUSED84                     = 4084\n\tSYS_READLINK                     = 4085\n\tSYS_USELIB                       = 4086\n\tSYS_SWAPON                       = 4087\n\tSYS_REBOOT                       = 4088\n\tSYS_READDIR                      = 4089\n\tSYS_MMAP                         = 4090\n\tSYS_MUNMAP                       = 4091\n\tSYS_TRUNCATE                     = 4092\n\tSYS_FTRUNCATE                    = 4093\n\tSYS_FCHMOD                       = 4094\n\tSYS_FCHOWN                       = 4095\n\tSYS_GETPRIORITY                  = 4096\n\tSYS_SETPRIORITY                  = 4097\n\tSYS_PROFIL                       = 4098\n\tSYS_STATFS                       = 4099\n\tSYS_FSTATFS                      = 4100\n\tSYS_IOPERM                       = 4101\n\tSYS_SOCKETCALL                   = 4102\n\tSYS_SYSLOG                       = 4103\n\tSYS_SETITIMER                    = 4104\n\tSYS_GETITIMER                    = 4105\n\tSYS_STAT                         = 4106\n\tSYS_LSTAT                        = 4107\n\tSYS_FSTAT                        = 4108\n\tSYS_UNUSED109                    = 4109\n\tSYS_IOPL                         = 4110\n\tSYS_VHANGUP                      = 4111\n\tSYS_IDLE                         = 4112\n\tSYS_VM86                         = 4113\n\tSYS_WAIT4                        = 4114\n\tSYS_SWAPOFF                      = 4115\n\tSYS_SYSINFO                      = 4116\n\tSYS_IPC                          = 4117\n\tSYS_FSYNC                        = 4118\n\tSYS_SIGRETURN                    = 4119\n\tSYS_CLONE                        = 4120\n\tSYS_SETDOMAINNAME                = 4121\n\tSYS_UNAME                        = 4122\n\tSYS_MODIFY_LDT                   = 4123\n\tSYS_ADJTIMEX                     = 4124\n\tSYS_MPROTECT                     = 4125\n\tSYS_SIGPROCMASK                  = 4126\n\tSYS_CREATE_MODULE                = 4127\n\tSYS_INIT_MODULE                  = 4128\n\tSYS_DELETE_MODULE                = 4129\n\tSYS_GET_KERNEL_SYMS              = 4130\n\tSYS_QUOTACTL                     = 4131\n\tSYS_GETPGID                      = 4132\n\tSYS_FCHDIR                       = 4133\n\tSYS_BDFLUSH                      = 4134\n\tSYS_SYSFS                        = 4135\n\tSYS_PERSONALITY                  = 4136\n\tSYS_AFS_SYSCALL                  = 4137\n\tSYS_SETFSUID                     = 4138\n\tSYS_SETFSGID                     = 4139\n\tSYS__LLSEEK                      = 4140\n\tSYS_GETDENTS                     = 4141\n\tSYS__NEWSELECT                   = 4142\n\tSYS_FLOCK                        = 4143\n\tSYS_MSYNC                        = 4144\n\tSYS_READV                        = 4145\n\tSYS_WRITEV                       = 4146\n\tSYS_CACHEFLUSH                   = 4147\n\tSYS_CACHECTL                     = 4148\n\tSYS_SYSMIPS                      = 4149\n\tSYS_UNUSED150                    = 4150\n\tSYS_GETSID                       = 4151\n\tSYS_FDATASYNC                    = 4152\n\tSYS__SYSCTL                      = 4153\n\tSYS_MLOCK                        = 4154\n\tSYS_MUNLOCK                      = 4155\n\tSYS_MLOCKALL                     = 4156\n\tSYS_MUNLOCKALL                   = 4157\n\tSYS_SCHED_SETPARAM               = 4158\n\tSYS_SCHED_GETPARAM               = 4159\n\tSYS_SCHED_SETSCHEDULER           = 4160\n\tSYS_SCHED_GETSCHEDULER           = 4161\n\tSYS_SCHED_YIELD                  = 4162\n\tSYS_SCHED_GET_PRIORITY_MAX       = 4163\n\tSYS_SCHED_GET_PRIORITY_MIN       = 4164\n\tSYS_SCHED_RR_GET_INTERVAL        = 4165\n\tSYS_NANOSLEEP                    = 4166\n\tSYS_MREMAP                       = 4167\n\tSYS_ACCEPT                       = 4168\n\tSYS_BIND                         = 4169\n\tSYS_CONNECT                      = 4170\n\tSYS_GETPEERNAME                  = 4171\n\tSYS_GETSOCKNAME                  = 4172\n\tSYS_GETSOCKOPT                   = 4173\n\tSYS_LISTEN                       = 4174\n\tSYS_RECV                         = 4175\n\tSYS_RECVFROM                     = 4176\n\tSYS_RECVMSG                      = 4177\n\tSYS_SEND                         = 4178\n\tSYS_SENDMSG                      = 4179\n\tSYS_SENDTO                       = 4180\n\tSYS_SETSOCKOPT                   = 4181\n\tSYS_SHUTDOWN                     = 4182\n\tSYS_SOCKET                       = 4183\n\tSYS_SOCKETPAIR                   = 4184\n\tSYS_SETRESUID                    = 4185\n\tSYS_GETRESUID                    = 4186\n\tSYS_QUERY_MODULE                 = 4187\n\tSYS_POLL                         = 4188\n\tSYS_NFSSERVCTL                   = 4189\n\tSYS_SETRESGID                    = 4190\n\tSYS_GETRESGID                    = 4191\n\tSYS_PRCTL                        = 4192\n\tSYS_RT_SIGRETURN                 = 4193\n\tSYS_RT_SIGACTION                 = 4194\n\tSYS_RT_SIGPROCMASK               = 4195\n\tSYS_RT_SIGPENDING                = 4196\n\tSYS_RT_SIGTIMEDWAIT              = 4197\n\tSYS_RT_SIGQUEUEINFO              = 4198\n\tSYS_RT_SIGSUSPEND                = 4199\n\tSYS_PREAD64                      = 4200\n\tSYS_PWRITE64                     = 4201\n\tSYS_CHOWN                        = 4202\n\tSYS_GETCWD                       = 4203\n\tSYS_CAPGET                       = 4204\n\tSYS_CAPSET                       = 4205\n\tSYS_SIGALTSTACK                  = 4206\n\tSYS_SENDFILE                     = 4207\n\tSYS_GETPMSG                      = 4208\n\tSYS_PUTPMSG                      = 4209\n\tSYS_MMAP2                        = 4210\n\tSYS_TRUNCATE64                   = 4211\n\tSYS_FTRUNCATE64                  = 4212\n\tSYS_STAT64                       = 4213\n\tSYS_LSTAT64                      = 4214\n\tSYS_FSTAT64                      = 4215\n\tSYS_PIVOT_ROOT                   = 4216\n\tSYS_MINCORE                      = 4217\n\tSYS_MADVISE                      = 4218\n\tSYS_GETDENTS64                   = 4219\n\tSYS_FCNTL64                      = 4220\n\tSYS_RESERVED221                  = 4221\n\tSYS_GETTID                       = 4222\n\tSYS_READAHEAD                    = 4223\n\tSYS_SETXATTR                     = 4224\n\tSYS_LSETXATTR                    = 4225\n\tSYS_FSETXATTR                    = 4226\n\tSYS_GETXATTR                     = 4227\n\tSYS_LGETXATTR                    = 4228\n\tSYS_FGETXATTR                    = 4229\n\tSYS_LISTXATTR                    = 4230\n\tSYS_LLISTXATTR                   = 4231\n\tSYS_FLISTXATTR                   = 4232\n\tSYS_REMOVEXATTR                  = 4233\n\tSYS_LREMOVEXATTR                 = 4234\n\tSYS_FREMOVEXATTR                 = 4235\n\tSYS_TKILL                        = 4236\n\tSYS_SENDFILE64                   = 4237\n\tSYS_FUTEX                        = 4238\n\tSYS_SCHED_SETAFFINITY            = 4239\n\tSYS_SCHED_GETAFFINITY            = 4240\n\tSYS_IO_SETUP                     = 4241\n\tSYS_IO_DESTROY                   = 4242\n\tSYS_IO_GETEVENTS                 = 4243\n\tSYS_IO_SUBMIT                    = 4244\n\tSYS_IO_CANCEL                    = 4245\n\tSYS_EXIT_GROUP                   = 4246\n\tSYS_LOOKUP_DCOOKIE               = 4247\n\tSYS_EPOLL_CREATE                 = 4248\n\tSYS_EPOLL_CTL                    = 4249\n\tSYS_EPOLL_WAIT                   = 4250\n\tSYS_REMAP_FILE_PAGES             = 4251\n\tSYS_SET_TID_ADDRESS              = 4252\n\tSYS_RESTART_SYSCALL              = 4253\n\tSYS_FADVISE64                    = 4254\n\tSYS_STATFS64                     = 4255\n\tSYS_FSTATFS64                    = 4256\n\tSYS_TIMER_CREATE                 = 4257\n\tSYS_TIMER_SETTIME                = 4258\n\tSYS_TIMER_GETTIME                = 4259\n\tSYS_TIMER_GETOVERRUN             = 4260\n\tSYS_TIMER_DELETE                 = 4261\n\tSYS_CLOCK_SETTIME                = 4262\n\tSYS_CLOCK_GETTIME                = 4263\n\tSYS_CLOCK_GETRES                 = 4264\n\tSYS_CLOCK_NANOSLEEP              = 4265\n\tSYS_TGKILL                       = 4266\n\tSYS_UTIMES                       = 4267\n\tSYS_MBIND                        = 4268\n\tSYS_GET_MEMPOLICY                = 4269\n\tSYS_SET_MEMPOLICY                = 4270\n\tSYS_MQ_OPEN                      = 4271\n\tSYS_MQ_UNLINK                    = 4272\n\tSYS_MQ_TIMEDSEND                 = 4273\n\tSYS_MQ_TIMEDRECEIVE              = 4274\n\tSYS_MQ_NOTIFY                    = 4275\n\tSYS_MQ_GETSETATTR                = 4276\n\tSYS_VSERVER                      = 4277\n\tSYS_WAITID                       = 4278\n\tSYS_ADD_KEY                      = 4280\n\tSYS_REQUEST_KEY                  = 4281\n\tSYS_KEYCTL                       = 4282\n\tSYS_SET_THREAD_AREA              = 4283\n\tSYS_INOTIFY_INIT                 = 4284\n\tSYS_INOTIFY_ADD_WATCH            = 4285\n\tSYS_INOTIFY_RM_WATCH             = 4286\n\tSYS_MIGRATE_PAGES                = 4287\n\tSYS_OPENAT                       = 4288\n\tSYS_MKDIRAT                      = 4289\n\tSYS_MKNODAT                      = 4290\n\tSYS_FCHOWNAT                     = 4291\n\tSYS_FUTIMESAT                    = 4292\n\tSYS_FSTATAT64                    = 4293\n\tSYS_UNLINKAT                     = 4294\n\tSYS_RENAMEAT                     = 4295\n\tSYS_LINKAT                       = 4296\n\tSYS_SYMLINKAT                    = 4297\n\tSYS_READLINKAT                   = 4298\n\tSYS_FCHMODAT                     = 4299\n\tSYS_FACCESSAT                    = 4300\n\tSYS_PSELECT6                     = 4301\n\tSYS_PPOLL                        = 4302\n\tSYS_UNSHARE                      = 4303\n\tSYS_SPLICE                       = 4304\n\tSYS_SYNC_FILE_RANGE              = 4305\n\tSYS_TEE                          = 4306\n\tSYS_VMSPLICE                     = 4307\n\tSYS_MOVE_PAGES                   = 4308\n\tSYS_SET_ROBUST_LIST              = 4309\n\tSYS_GET_ROBUST_LIST              = 4310\n\tSYS_KEXEC_LOAD                   = 4311\n\tSYS_GETCPU                       = 4312\n\tSYS_EPOLL_PWAIT                  = 4313\n\tSYS_IOPRIO_SET                   = 4314\n\tSYS_IOPRIO_GET                   = 4315\n\tSYS_UTIMENSAT                    = 4316\n\tSYS_SIGNALFD                     = 4317\n\tSYS_TIMERFD                      = 4318\n\tSYS_EVENTFD                      = 4319\n\tSYS_FALLOCATE                    = 4320\n\tSYS_TIMERFD_CREATE               = 4321\n\tSYS_TIMERFD_GETTIME              = 4322\n\tSYS_TIMERFD_SETTIME              = 4323\n\tSYS_SIGNALFD4                    = 4324\n\tSYS_EVENTFD2                     = 4325\n\tSYS_EPOLL_CREATE1                = 4326\n\tSYS_DUP3                         = 4327\n\tSYS_PIPE2                        = 4328\n\tSYS_INOTIFY_INIT1                = 4329\n\tSYS_PREADV                       = 4330\n\tSYS_PWRITEV                      = 4331\n\tSYS_RT_TGSIGQUEUEINFO            = 4332\n\tSYS_PERF_EVENT_OPEN              = 4333\n\tSYS_ACCEPT4                      = 4334\n\tSYS_RECVMMSG                     = 4335\n\tSYS_FANOTIFY_INIT                = 4336\n\tSYS_FANOTIFY_MARK                = 4337\n\tSYS_PRLIMIT64                    = 4338\n\tSYS_NAME_TO_HANDLE_AT            = 4339\n\tSYS_OPEN_BY_HANDLE_AT            = 4340\n\tSYS_CLOCK_ADJTIME                = 4341\n\tSYS_SYNCFS                       = 4342\n\tSYS_SENDMMSG                     = 4343\n\tSYS_SETNS                        = 4344\n\tSYS_PROCESS_VM_READV             = 4345\n\tSYS_PROCESS_VM_WRITEV            = 4346\n\tSYS_KCMP                         = 4347\n\tSYS_FINIT_MODULE                 = 4348\n\tSYS_SCHED_SETATTR                = 4349\n\tSYS_SCHED_GETATTR                = 4350\n\tSYS_RENAMEAT2                    = 4351\n\tSYS_SECCOMP                      = 4352\n\tSYS_GETRANDOM                    = 4353\n\tSYS_MEMFD_CREATE                 = 4354\n\tSYS_BPF                          = 4355\n\tSYS_EXECVEAT                     = 4356\n\tSYS_USERFAULTFD                  = 4357\n\tSYS_MEMBARRIER                   = 4358\n\tSYS_MLOCK2                       = 4359\n\tSYS_COPY_FILE_RANGE              = 4360\n\tSYS_PREADV2                      = 4361\n\tSYS_PWRITEV2                     = 4362\n\tSYS_PKEY_MPROTECT                = 4363\n\tSYS_PKEY_ALLOC                   = 4364\n\tSYS_PKEY_FREE                    = 4365\n\tSYS_STATX                        = 4366\n\tSYS_RSEQ                         = 4367\n\tSYS_IO_PGETEVENTS                = 4368\n\tSYS_SEMGET                       = 4393\n\tSYS_SEMCTL                       = 4394\n\tSYS_SHMGET                       = 4395\n\tSYS_SHMCTL                       = 4396\n\tSYS_SHMAT                        = 4397\n\tSYS_SHMDT                        = 4398\n\tSYS_MSGGET                       = 4399\n\tSYS_MSGSND                       = 4400\n\tSYS_MSGRCV                       = 4401\n\tSYS_MSGCTL                       = 4402\n\tSYS_CLOCK_GETTIME64              = 4403\n\tSYS_CLOCK_SETTIME64              = 4404\n\tSYS_CLOCK_ADJTIME64              = 4405\n\tSYS_CLOCK_GETRES_TIME64          = 4406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 4407\n\tSYS_TIMER_GETTIME64              = 4408\n\tSYS_TIMER_SETTIME64              = 4409\n\tSYS_TIMERFD_GETTIME64            = 4410\n\tSYS_TIMERFD_SETTIME64            = 4411\n\tSYS_UTIMENSAT_TIME64             = 4412\n\tSYS_PSELECT6_TIME64              = 4413\n\tSYS_PPOLL_TIME64                 = 4414\n\tSYS_IO_PGETEVENTS_TIME64         = 4416\n\tSYS_RECVMMSG_TIME64              = 4417\n\tSYS_MQ_TIMEDSEND_TIME64          = 4418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 4419\n\tSYS_SEMTIMEDOP_TIME64            = 4420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 4421\n\tSYS_FUTEX_TIME64                 = 4422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423\n\tSYS_PIDFD_SEND_SIGNAL            = 4424\n\tSYS_IO_URING_SETUP               = 4425\n\tSYS_IO_URING_ENTER               = 4426\n\tSYS_IO_URING_REGISTER            = 4427\n\tSYS_OPEN_TREE                    = 4428\n\tSYS_MOVE_MOUNT                   = 4429\n\tSYS_FSOPEN                       = 4430\n\tSYS_FSCONFIG                     = 4431\n\tSYS_FSMOUNT                      = 4432\n\tSYS_FSPICK                       = 4433\n\tSYS_PIDFD_OPEN                   = 4434\n\tSYS_CLONE3                       = 4435\n\tSYS_CLOSE_RANGE                  = 4436\n\tSYS_OPENAT2                      = 4437\n\tSYS_PIDFD_GETFD                  = 4438\n\tSYS_FACCESSAT2                   = 4439\n\tSYS_PROCESS_MADVISE              = 4440\n\tSYS_EPOLL_PWAIT2                 = 4441\n\tSYS_MOUNT_SETATTR                = 4442\n\tSYS_QUOTACTL_FD                  = 4443\n\tSYS_LANDLOCK_CREATE_RULESET      = 4444\n\tSYS_LANDLOCK_ADD_RULE            = 4445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 4446\n\tSYS_PROCESS_MRELEASE             = 4448\n\tSYS_FUTEX_WAITV                  = 4449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 4450\n\tSYS_CACHESTAT                    = 4451\n\tSYS_FCHMODAT2                    = 4452\n\tSYS_MAP_SHADOW_STACK             = 4453\n\tSYS_FUTEX_WAKE                   = 4454\n\tSYS_FUTEX_WAIT                   = 4455\n\tSYS_FUTEX_REQUEUE                = 4456\n\tSYS_STATMOUNT                    = 4457\n\tSYS_LISTMOUNT                    = 4458\n\tSYS_LSM_GET_SELF_ATTR            = 4459\n\tSYS_LSM_SET_SELF_ATTR            = 4460\n\tSYS_LSM_LIST_MODULES             = 4461\n\tSYS_MSEAL                        = 4462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64/include /tmp/mips64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && linux\n\npackage unix\n\nconst (\n\tSYS_READ                    = 5000\n\tSYS_WRITE                   = 5001\n\tSYS_OPEN                    = 5002\n\tSYS_CLOSE                   = 5003\n\tSYS_STAT                    = 5004\n\tSYS_FSTAT                   = 5005\n\tSYS_LSTAT                   = 5006\n\tSYS_POLL                    = 5007\n\tSYS_LSEEK                   = 5008\n\tSYS_MMAP                    = 5009\n\tSYS_MPROTECT                = 5010\n\tSYS_MUNMAP                  = 5011\n\tSYS_BRK                     = 5012\n\tSYS_RT_SIGACTION            = 5013\n\tSYS_RT_SIGPROCMASK          = 5014\n\tSYS_IOCTL                   = 5015\n\tSYS_PREAD64                 = 5016\n\tSYS_PWRITE64                = 5017\n\tSYS_READV                   = 5018\n\tSYS_WRITEV                  = 5019\n\tSYS_ACCESS                  = 5020\n\tSYS_PIPE                    = 5021\n\tSYS__NEWSELECT              = 5022\n\tSYS_SCHED_YIELD             = 5023\n\tSYS_MREMAP                  = 5024\n\tSYS_MSYNC                   = 5025\n\tSYS_MINCORE                 = 5026\n\tSYS_MADVISE                 = 5027\n\tSYS_SHMGET                  = 5028\n\tSYS_SHMAT                   = 5029\n\tSYS_SHMCTL                  = 5030\n\tSYS_DUP                     = 5031\n\tSYS_DUP2                    = 5032\n\tSYS_PAUSE                   = 5033\n\tSYS_NANOSLEEP               = 5034\n\tSYS_GETITIMER               = 5035\n\tSYS_SETITIMER               = 5036\n\tSYS_ALARM                   = 5037\n\tSYS_GETPID                  = 5038\n\tSYS_SENDFILE                = 5039\n\tSYS_SOCKET                  = 5040\n\tSYS_CONNECT                 = 5041\n\tSYS_ACCEPT                  = 5042\n\tSYS_SENDTO                  = 5043\n\tSYS_RECVFROM                = 5044\n\tSYS_SENDMSG                 = 5045\n\tSYS_RECVMSG                 = 5046\n\tSYS_SHUTDOWN                = 5047\n\tSYS_BIND                    = 5048\n\tSYS_LISTEN                  = 5049\n\tSYS_GETSOCKNAME             = 5050\n\tSYS_GETPEERNAME             = 5051\n\tSYS_SOCKETPAIR              = 5052\n\tSYS_SETSOCKOPT              = 5053\n\tSYS_GETSOCKOPT              = 5054\n\tSYS_CLONE                   = 5055\n\tSYS_FORK                    = 5056\n\tSYS_EXECVE                  = 5057\n\tSYS_EXIT                    = 5058\n\tSYS_WAIT4                   = 5059\n\tSYS_KILL                    = 5060\n\tSYS_UNAME                   = 5061\n\tSYS_SEMGET                  = 5062\n\tSYS_SEMOP                   = 5063\n\tSYS_SEMCTL                  = 5064\n\tSYS_SHMDT                   = 5065\n\tSYS_MSGGET                  = 5066\n\tSYS_MSGSND                  = 5067\n\tSYS_MSGRCV                  = 5068\n\tSYS_MSGCTL                  = 5069\n\tSYS_FCNTL                   = 5070\n\tSYS_FLOCK                   = 5071\n\tSYS_FSYNC                   = 5072\n\tSYS_FDATASYNC               = 5073\n\tSYS_TRUNCATE                = 5074\n\tSYS_FTRUNCATE               = 5075\n\tSYS_GETDENTS                = 5076\n\tSYS_GETCWD                  = 5077\n\tSYS_CHDIR                   = 5078\n\tSYS_FCHDIR                  = 5079\n\tSYS_RENAME                  = 5080\n\tSYS_MKDIR                   = 5081\n\tSYS_RMDIR                   = 5082\n\tSYS_CREAT                   = 5083\n\tSYS_LINK                    = 5084\n\tSYS_UNLINK                  = 5085\n\tSYS_SYMLINK                 = 5086\n\tSYS_READLINK                = 5087\n\tSYS_CHMOD                   = 5088\n\tSYS_FCHMOD                  = 5089\n\tSYS_CHOWN                   = 5090\n\tSYS_FCHOWN                  = 5091\n\tSYS_LCHOWN                  = 5092\n\tSYS_UMASK                   = 5093\n\tSYS_GETTIMEOFDAY            = 5094\n\tSYS_GETRLIMIT               = 5095\n\tSYS_GETRUSAGE               = 5096\n\tSYS_SYSINFO                 = 5097\n\tSYS_TIMES                   = 5098\n\tSYS_PTRACE                  = 5099\n\tSYS_GETUID                  = 5100\n\tSYS_SYSLOG                  = 5101\n\tSYS_GETGID                  = 5102\n\tSYS_SETUID                  = 5103\n\tSYS_SETGID                  = 5104\n\tSYS_GETEUID                 = 5105\n\tSYS_GETEGID                 = 5106\n\tSYS_SETPGID                 = 5107\n\tSYS_GETPPID                 = 5108\n\tSYS_GETPGRP                 = 5109\n\tSYS_SETSID                  = 5110\n\tSYS_SETREUID                = 5111\n\tSYS_SETREGID                = 5112\n\tSYS_GETGROUPS               = 5113\n\tSYS_SETGROUPS               = 5114\n\tSYS_SETRESUID               = 5115\n\tSYS_GETRESUID               = 5116\n\tSYS_SETRESGID               = 5117\n\tSYS_GETRESGID               = 5118\n\tSYS_GETPGID                 = 5119\n\tSYS_SETFSUID                = 5120\n\tSYS_SETFSGID                = 5121\n\tSYS_GETSID                  = 5122\n\tSYS_CAPGET                  = 5123\n\tSYS_CAPSET                  = 5124\n\tSYS_RT_SIGPENDING           = 5125\n\tSYS_RT_SIGTIMEDWAIT         = 5126\n\tSYS_RT_SIGQUEUEINFO         = 5127\n\tSYS_RT_SIGSUSPEND           = 5128\n\tSYS_SIGALTSTACK             = 5129\n\tSYS_UTIME                   = 5130\n\tSYS_MKNOD                   = 5131\n\tSYS_PERSONALITY             = 5132\n\tSYS_USTAT                   = 5133\n\tSYS_STATFS                  = 5134\n\tSYS_FSTATFS                 = 5135\n\tSYS_SYSFS                   = 5136\n\tSYS_GETPRIORITY             = 5137\n\tSYS_SETPRIORITY             = 5138\n\tSYS_SCHED_SETPARAM          = 5139\n\tSYS_SCHED_GETPARAM          = 5140\n\tSYS_SCHED_SETSCHEDULER      = 5141\n\tSYS_SCHED_GETSCHEDULER      = 5142\n\tSYS_SCHED_GET_PRIORITY_MAX  = 5143\n\tSYS_SCHED_GET_PRIORITY_MIN  = 5144\n\tSYS_SCHED_RR_GET_INTERVAL   = 5145\n\tSYS_MLOCK                   = 5146\n\tSYS_MUNLOCK                 = 5147\n\tSYS_MLOCKALL                = 5148\n\tSYS_MUNLOCKALL              = 5149\n\tSYS_VHANGUP                 = 5150\n\tSYS_PIVOT_ROOT              = 5151\n\tSYS__SYSCTL                 = 5152\n\tSYS_PRCTL                   = 5153\n\tSYS_ADJTIMEX                = 5154\n\tSYS_SETRLIMIT               = 5155\n\tSYS_CHROOT                  = 5156\n\tSYS_SYNC                    = 5157\n\tSYS_ACCT                    = 5158\n\tSYS_SETTIMEOFDAY            = 5159\n\tSYS_MOUNT                   = 5160\n\tSYS_UMOUNT2                 = 5161\n\tSYS_SWAPON                  = 5162\n\tSYS_SWAPOFF                 = 5163\n\tSYS_REBOOT                  = 5164\n\tSYS_SETHOSTNAME             = 5165\n\tSYS_SETDOMAINNAME           = 5166\n\tSYS_CREATE_MODULE           = 5167\n\tSYS_INIT_MODULE             = 5168\n\tSYS_DELETE_MODULE           = 5169\n\tSYS_GET_KERNEL_SYMS         = 5170\n\tSYS_QUERY_MODULE            = 5171\n\tSYS_QUOTACTL                = 5172\n\tSYS_NFSSERVCTL              = 5173\n\tSYS_GETPMSG                 = 5174\n\tSYS_PUTPMSG                 = 5175\n\tSYS_AFS_SYSCALL             = 5176\n\tSYS_RESERVED177             = 5177\n\tSYS_GETTID                  = 5178\n\tSYS_READAHEAD               = 5179\n\tSYS_SETXATTR                = 5180\n\tSYS_LSETXATTR               = 5181\n\tSYS_FSETXATTR               = 5182\n\tSYS_GETXATTR                = 5183\n\tSYS_LGETXATTR               = 5184\n\tSYS_FGETXATTR               = 5185\n\tSYS_LISTXATTR               = 5186\n\tSYS_LLISTXATTR              = 5187\n\tSYS_FLISTXATTR              = 5188\n\tSYS_REMOVEXATTR             = 5189\n\tSYS_LREMOVEXATTR            = 5190\n\tSYS_FREMOVEXATTR            = 5191\n\tSYS_TKILL                   = 5192\n\tSYS_RESERVED193             = 5193\n\tSYS_FUTEX                   = 5194\n\tSYS_SCHED_SETAFFINITY       = 5195\n\tSYS_SCHED_GETAFFINITY       = 5196\n\tSYS_CACHEFLUSH              = 5197\n\tSYS_CACHECTL                = 5198\n\tSYS_SYSMIPS                 = 5199\n\tSYS_IO_SETUP                = 5200\n\tSYS_IO_DESTROY              = 5201\n\tSYS_IO_GETEVENTS            = 5202\n\tSYS_IO_SUBMIT               = 5203\n\tSYS_IO_CANCEL               = 5204\n\tSYS_EXIT_GROUP              = 5205\n\tSYS_LOOKUP_DCOOKIE          = 5206\n\tSYS_EPOLL_CREATE            = 5207\n\tSYS_EPOLL_CTL               = 5208\n\tSYS_EPOLL_WAIT              = 5209\n\tSYS_REMAP_FILE_PAGES        = 5210\n\tSYS_RT_SIGRETURN            = 5211\n\tSYS_SET_TID_ADDRESS         = 5212\n\tSYS_RESTART_SYSCALL         = 5213\n\tSYS_SEMTIMEDOP              = 5214\n\tSYS_FADVISE64               = 5215\n\tSYS_TIMER_CREATE            = 5216\n\tSYS_TIMER_SETTIME           = 5217\n\tSYS_TIMER_GETTIME           = 5218\n\tSYS_TIMER_GETOVERRUN        = 5219\n\tSYS_TIMER_DELETE            = 5220\n\tSYS_CLOCK_SETTIME           = 5221\n\tSYS_CLOCK_GETTIME           = 5222\n\tSYS_CLOCK_GETRES            = 5223\n\tSYS_CLOCK_NANOSLEEP         = 5224\n\tSYS_TGKILL                  = 5225\n\tSYS_UTIMES                  = 5226\n\tSYS_MBIND                   = 5227\n\tSYS_GET_MEMPOLICY           = 5228\n\tSYS_SET_MEMPOLICY           = 5229\n\tSYS_MQ_OPEN                 = 5230\n\tSYS_MQ_UNLINK               = 5231\n\tSYS_MQ_TIMEDSEND            = 5232\n\tSYS_MQ_TIMEDRECEIVE         = 5233\n\tSYS_MQ_NOTIFY               = 5234\n\tSYS_MQ_GETSETATTR           = 5235\n\tSYS_VSERVER                 = 5236\n\tSYS_WAITID                  = 5237\n\tSYS_ADD_KEY                 = 5239\n\tSYS_REQUEST_KEY             = 5240\n\tSYS_KEYCTL                  = 5241\n\tSYS_SET_THREAD_AREA         = 5242\n\tSYS_INOTIFY_INIT            = 5243\n\tSYS_INOTIFY_ADD_WATCH       = 5244\n\tSYS_INOTIFY_RM_WATCH        = 5245\n\tSYS_MIGRATE_PAGES           = 5246\n\tSYS_OPENAT                  = 5247\n\tSYS_MKDIRAT                 = 5248\n\tSYS_MKNODAT                 = 5249\n\tSYS_FCHOWNAT                = 5250\n\tSYS_FUTIMESAT               = 5251\n\tSYS_NEWFSTATAT              = 5252\n\tSYS_UNLINKAT                = 5253\n\tSYS_RENAMEAT                = 5254\n\tSYS_LINKAT                  = 5255\n\tSYS_SYMLINKAT               = 5256\n\tSYS_READLINKAT              = 5257\n\tSYS_FCHMODAT                = 5258\n\tSYS_FACCESSAT               = 5259\n\tSYS_PSELECT6                = 5260\n\tSYS_PPOLL                   = 5261\n\tSYS_UNSHARE                 = 5262\n\tSYS_SPLICE                  = 5263\n\tSYS_SYNC_FILE_RANGE         = 5264\n\tSYS_TEE                     = 5265\n\tSYS_VMSPLICE                = 5266\n\tSYS_MOVE_PAGES              = 5267\n\tSYS_SET_ROBUST_LIST         = 5268\n\tSYS_GET_ROBUST_LIST         = 5269\n\tSYS_KEXEC_LOAD              = 5270\n\tSYS_GETCPU                  = 5271\n\tSYS_EPOLL_PWAIT             = 5272\n\tSYS_IOPRIO_SET              = 5273\n\tSYS_IOPRIO_GET              = 5274\n\tSYS_UTIMENSAT               = 5275\n\tSYS_SIGNALFD                = 5276\n\tSYS_TIMERFD                 = 5277\n\tSYS_EVENTFD                 = 5278\n\tSYS_FALLOCATE               = 5279\n\tSYS_TIMERFD_CREATE          = 5280\n\tSYS_TIMERFD_GETTIME         = 5281\n\tSYS_TIMERFD_SETTIME         = 5282\n\tSYS_SIGNALFD4               = 5283\n\tSYS_EVENTFD2                = 5284\n\tSYS_EPOLL_CREATE1           = 5285\n\tSYS_DUP3                    = 5286\n\tSYS_PIPE2                   = 5287\n\tSYS_INOTIFY_INIT1           = 5288\n\tSYS_PREADV                  = 5289\n\tSYS_PWRITEV                 = 5290\n\tSYS_RT_TGSIGQUEUEINFO       = 5291\n\tSYS_PERF_EVENT_OPEN         = 5292\n\tSYS_ACCEPT4                 = 5293\n\tSYS_RECVMMSG                = 5294\n\tSYS_FANOTIFY_INIT           = 5295\n\tSYS_FANOTIFY_MARK           = 5296\n\tSYS_PRLIMIT64               = 5297\n\tSYS_NAME_TO_HANDLE_AT       = 5298\n\tSYS_OPEN_BY_HANDLE_AT       = 5299\n\tSYS_CLOCK_ADJTIME           = 5300\n\tSYS_SYNCFS                  = 5301\n\tSYS_SENDMMSG                = 5302\n\tSYS_SETNS                   = 5303\n\tSYS_PROCESS_VM_READV        = 5304\n\tSYS_PROCESS_VM_WRITEV       = 5305\n\tSYS_KCMP                    = 5306\n\tSYS_FINIT_MODULE            = 5307\n\tSYS_GETDENTS64              = 5308\n\tSYS_SCHED_SETATTR           = 5309\n\tSYS_SCHED_GETATTR           = 5310\n\tSYS_RENAMEAT2               = 5311\n\tSYS_SECCOMP                 = 5312\n\tSYS_GETRANDOM               = 5313\n\tSYS_MEMFD_CREATE            = 5314\n\tSYS_BPF                     = 5315\n\tSYS_EXECVEAT                = 5316\n\tSYS_USERFAULTFD             = 5317\n\tSYS_MEMBARRIER              = 5318\n\tSYS_MLOCK2                  = 5319\n\tSYS_COPY_FILE_RANGE         = 5320\n\tSYS_PREADV2                 = 5321\n\tSYS_PWRITEV2                = 5322\n\tSYS_PKEY_MPROTECT           = 5323\n\tSYS_PKEY_ALLOC              = 5324\n\tSYS_PKEY_FREE               = 5325\n\tSYS_STATX                   = 5326\n\tSYS_RSEQ                    = 5327\n\tSYS_IO_PGETEVENTS           = 5328\n\tSYS_PIDFD_SEND_SIGNAL       = 5424\n\tSYS_IO_URING_SETUP          = 5425\n\tSYS_IO_URING_ENTER          = 5426\n\tSYS_IO_URING_REGISTER       = 5427\n\tSYS_OPEN_TREE               = 5428\n\tSYS_MOVE_MOUNT              = 5429\n\tSYS_FSOPEN                  = 5430\n\tSYS_FSCONFIG                = 5431\n\tSYS_FSMOUNT                 = 5432\n\tSYS_FSPICK                  = 5433\n\tSYS_PIDFD_OPEN              = 5434\n\tSYS_CLONE3                  = 5435\n\tSYS_CLOSE_RANGE             = 5436\n\tSYS_OPENAT2                 = 5437\n\tSYS_PIDFD_GETFD             = 5438\n\tSYS_FACCESSAT2              = 5439\n\tSYS_PROCESS_MADVISE         = 5440\n\tSYS_EPOLL_PWAIT2            = 5441\n\tSYS_MOUNT_SETATTR           = 5442\n\tSYS_QUOTACTL_FD             = 5443\n\tSYS_LANDLOCK_CREATE_RULESET = 5444\n\tSYS_LANDLOCK_ADD_RULE       = 5445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 5446\n\tSYS_PROCESS_MRELEASE        = 5448\n\tSYS_FUTEX_WAITV             = 5449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 5450\n\tSYS_CACHESTAT               = 5451\n\tSYS_FCHMODAT2               = 5452\n\tSYS_MAP_SHADOW_STACK        = 5453\n\tSYS_FUTEX_WAKE              = 5454\n\tSYS_FUTEX_WAIT              = 5455\n\tSYS_FUTEX_REQUEUE           = 5456\n\tSYS_STATMOUNT               = 5457\n\tSYS_LISTMOUNT               = 5458\n\tSYS_LSM_GET_SELF_ATTR       = 5459\n\tSYS_LSM_SET_SELF_ATTR       = 5460\n\tSYS_LSM_LIST_MODULES        = 5461\n\tSYS_MSEAL                   = 5462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64le/include /tmp/mips64le/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64le && linux\n\npackage unix\n\nconst (\n\tSYS_READ                    = 5000\n\tSYS_WRITE                   = 5001\n\tSYS_OPEN                    = 5002\n\tSYS_CLOSE                   = 5003\n\tSYS_STAT                    = 5004\n\tSYS_FSTAT                   = 5005\n\tSYS_LSTAT                   = 5006\n\tSYS_POLL                    = 5007\n\tSYS_LSEEK                   = 5008\n\tSYS_MMAP                    = 5009\n\tSYS_MPROTECT                = 5010\n\tSYS_MUNMAP                  = 5011\n\tSYS_BRK                     = 5012\n\tSYS_RT_SIGACTION            = 5013\n\tSYS_RT_SIGPROCMASK          = 5014\n\tSYS_IOCTL                   = 5015\n\tSYS_PREAD64                 = 5016\n\tSYS_PWRITE64                = 5017\n\tSYS_READV                   = 5018\n\tSYS_WRITEV                  = 5019\n\tSYS_ACCESS                  = 5020\n\tSYS_PIPE                    = 5021\n\tSYS__NEWSELECT              = 5022\n\tSYS_SCHED_YIELD             = 5023\n\tSYS_MREMAP                  = 5024\n\tSYS_MSYNC                   = 5025\n\tSYS_MINCORE                 = 5026\n\tSYS_MADVISE                 = 5027\n\tSYS_SHMGET                  = 5028\n\tSYS_SHMAT                   = 5029\n\tSYS_SHMCTL                  = 5030\n\tSYS_DUP                     = 5031\n\tSYS_DUP2                    = 5032\n\tSYS_PAUSE                   = 5033\n\tSYS_NANOSLEEP               = 5034\n\tSYS_GETITIMER               = 5035\n\tSYS_SETITIMER               = 5036\n\tSYS_ALARM                   = 5037\n\tSYS_GETPID                  = 5038\n\tSYS_SENDFILE                = 5039\n\tSYS_SOCKET                  = 5040\n\tSYS_CONNECT                 = 5041\n\tSYS_ACCEPT                  = 5042\n\tSYS_SENDTO                  = 5043\n\tSYS_RECVFROM                = 5044\n\tSYS_SENDMSG                 = 5045\n\tSYS_RECVMSG                 = 5046\n\tSYS_SHUTDOWN                = 5047\n\tSYS_BIND                    = 5048\n\tSYS_LISTEN                  = 5049\n\tSYS_GETSOCKNAME             = 5050\n\tSYS_GETPEERNAME             = 5051\n\tSYS_SOCKETPAIR              = 5052\n\tSYS_SETSOCKOPT              = 5053\n\tSYS_GETSOCKOPT              = 5054\n\tSYS_CLONE                   = 5055\n\tSYS_FORK                    = 5056\n\tSYS_EXECVE                  = 5057\n\tSYS_EXIT                    = 5058\n\tSYS_WAIT4                   = 5059\n\tSYS_KILL                    = 5060\n\tSYS_UNAME                   = 5061\n\tSYS_SEMGET                  = 5062\n\tSYS_SEMOP                   = 5063\n\tSYS_SEMCTL                  = 5064\n\tSYS_SHMDT                   = 5065\n\tSYS_MSGGET                  = 5066\n\tSYS_MSGSND                  = 5067\n\tSYS_MSGRCV                  = 5068\n\tSYS_MSGCTL                  = 5069\n\tSYS_FCNTL                   = 5070\n\tSYS_FLOCK                   = 5071\n\tSYS_FSYNC                   = 5072\n\tSYS_FDATASYNC               = 5073\n\tSYS_TRUNCATE                = 5074\n\tSYS_FTRUNCATE               = 5075\n\tSYS_GETDENTS                = 5076\n\tSYS_GETCWD                  = 5077\n\tSYS_CHDIR                   = 5078\n\tSYS_FCHDIR                  = 5079\n\tSYS_RENAME                  = 5080\n\tSYS_MKDIR                   = 5081\n\tSYS_RMDIR                   = 5082\n\tSYS_CREAT                   = 5083\n\tSYS_LINK                    = 5084\n\tSYS_UNLINK                  = 5085\n\tSYS_SYMLINK                 = 5086\n\tSYS_READLINK                = 5087\n\tSYS_CHMOD                   = 5088\n\tSYS_FCHMOD                  = 5089\n\tSYS_CHOWN                   = 5090\n\tSYS_FCHOWN                  = 5091\n\tSYS_LCHOWN                  = 5092\n\tSYS_UMASK                   = 5093\n\tSYS_GETTIMEOFDAY            = 5094\n\tSYS_GETRLIMIT               = 5095\n\tSYS_GETRUSAGE               = 5096\n\tSYS_SYSINFO                 = 5097\n\tSYS_TIMES                   = 5098\n\tSYS_PTRACE                  = 5099\n\tSYS_GETUID                  = 5100\n\tSYS_SYSLOG                  = 5101\n\tSYS_GETGID                  = 5102\n\tSYS_SETUID                  = 5103\n\tSYS_SETGID                  = 5104\n\tSYS_GETEUID                 = 5105\n\tSYS_GETEGID                 = 5106\n\tSYS_SETPGID                 = 5107\n\tSYS_GETPPID                 = 5108\n\tSYS_GETPGRP                 = 5109\n\tSYS_SETSID                  = 5110\n\tSYS_SETREUID                = 5111\n\tSYS_SETREGID                = 5112\n\tSYS_GETGROUPS               = 5113\n\tSYS_SETGROUPS               = 5114\n\tSYS_SETRESUID               = 5115\n\tSYS_GETRESUID               = 5116\n\tSYS_SETRESGID               = 5117\n\tSYS_GETRESGID               = 5118\n\tSYS_GETPGID                 = 5119\n\tSYS_SETFSUID                = 5120\n\tSYS_SETFSGID                = 5121\n\tSYS_GETSID                  = 5122\n\tSYS_CAPGET                  = 5123\n\tSYS_CAPSET                  = 5124\n\tSYS_RT_SIGPENDING           = 5125\n\tSYS_RT_SIGTIMEDWAIT         = 5126\n\tSYS_RT_SIGQUEUEINFO         = 5127\n\tSYS_RT_SIGSUSPEND           = 5128\n\tSYS_SIGALTSTACK             = 5129\n\tSYS_UTIME                   = 5130\n\tSYS_MKNOD                   = 5131\n\tSYS_PERSONALITY             = 5132\n\tSYS_USTAT                   = 5133\n\tSYS_STATFS                  = 5134\n\tSYS_FSTATFS                 = 5135\n\tSYS_SYSFS                   = 5136\n\tSYS_GETPRIORITY             = 5137\n\tSYS_SETPRIORITY             = 5138\n\tSYS_SCHED_SETPARAM          = 5139\n\tSYS_SCHED_GETPARAM          = 5140\n\tSYS_SCHED_SETSCHEDULER      = 5141\n\tSYS_SCHED_GETSCHEDULER      = 5142\n\tSYS_SCHED_GET_PRIORITY_MAX  = 5143\n\tSYS_SCHED_GET_PRIORITY_MIN  = 5144\n\tSYS_SCHED_RR_GET_INTERVAL   = 5145\n\tSYS_MLOCK                   = 5146\n\tSYS_MUNLOCK                 = 5147\n\tSYS_MLOCKALL                = 5148\n\tSYS_MUNLOCKALL              = 5149\n\tSYS_VHANGUP                 = 5150\n\tSYS_PIVOT_ROOT              = 5151\n\tSYS__SYSCTL                 = 5152\n\tSYS_PRCTL                   = 5153\n\tSYS_ADJTIMEX                = 5154\n\tSYS_SETRLIMIT               = 5155\n\tSYS_CHROOT                  = 5156\n\tSYS_SYNC                    = 5157\n\tSYS_ACCT                    = 5158\n\tSYS_SETTIMEOFDAY            = 5159\n\tSYS_MOUNT                   = 5160\n\tSYS_UMOUNT2                 = 5161\n\tSYS_SWAPON                  = 5162\n\tSYS_SWAPOFF                 = 5163\n\tSYS_REBOOT                  = 5164\n\tSYS_SETHOSTNAME             = 5165\n\tSYS_SETDOMAINNAME           = 5166\n\tSYS_CREATE_MODULE           = 5167\n\tSYS_INIT_MODULE             = 5168\n\tSYS_DELETE_MODULE           = 5169\n\tSYS_GET_KERNEL_SYMS         = 5170\n\tSYS_QUERY_MODULE            = 5171\n\tSYS_QUOTACTL                = 5172\n\tSYS_NFSSERVCTL              = 5173\n\tSYS_GETPMSG                 = 5174\n\tSYS_PUTPMSG                 = 5175\n\tSYS_AFS_SYSCALL             = 5176\n\tSYS_RESERVED177             = 5177\n\tSYS_GETTID                  = 5178\n\tSYS_READAHEAD               = 5179\n\tSYS_SETXATTR                = 5180\n\tSYS_LSETXATTR               = 5181\n\tSYS_FSETXATTR               = 5182\n\tSYS_GETXATTR                = 5183\n\tSYS_LGETXATTR               = 5184\n\tSYS_FGETXATTR               = 5185\n\tSYS_LISTXATTR               = 5186\n\tSYS_LLISTXATTR              = 5187\n\tSYS_FLISTXATTR              = 5188\n\tSYS_REMOVEXATTR             = 5189\n\tSYS_LREMOVEXATTR            = 5190\n\tSYS_FREMOVEXATTR            = 5191\n\tSYS_TKILL                   = 5192\n\tSYS_RESERVED193             = 5193\n\tSYS_FUTEX                   = 5194\n\tSYS_SCHED_SETAFFINITY       = 5195\n\tSYS_SCHED_GETAFFINITY       = 5196\n\tSYS_CACHEFLUSH              = 5197\n\tSYS_CACHECTL                = 5198\n\tSYS_SYSMIPS                 = 5199\n\tSYS_IO_SETUP                = 5200\n\tSYS_IO_DESTROY              = 5201\n\tSYS_IO_GETEVENTS            = 5202\n\tSYS_IO_SUBMIT               = 5203\n\tSYS_IO_CANCEL               = 5204\n\tSYS_EXIT_GROUP              = 5205\n\tSYS_LOOKUP_DCOOKIE          = 5206\n\tSYS_EPOLL_CREATE            = 5207\n\tSYS_EPOLL_CTL               = 5208\n\tSYS_EPOLL_WAIT              = 5209\n\tSYS_REMAP_FILE_PAGES        = 5210\n\tSYS_RT_SIGRETURN            = 5211\n\tSYS_SET_TID_ADDRESS         = 5212\n\tSYS_RESTART_SYSCALL         = 5213\n\tSYS_SEMTIMEDOP              = 5214\n\tSYS_FADVISE64               = 5215\n\tSYS_TIMER_CREATE            = 5216\n\tSYS_TIMER_SETTIME           = 5217\n\tSYS_TIMER_GETTIME           = 5218\n\tSYS_TIMER_GETOVERRUN        = 5219\n\tSYS_TIMER_DELETE            = 5220\n\tSYS_CLOCK_SETTIME           = 5221\n\tSYS_CLOCK_GETTIME           = 5222\n\tSYS_CLOCK_GETRES            = 5223\n\tSYS_CLOCK_NANOSLEEP         = 5224\n\tSYS_TGKILL                  = 5225\n\tSYS_UTIMES                  = 5226\n\tSYS_MBIND                   = 5227\n\tSYS_GET_MEMPOLICY           = 5228\n\tSYS_SET_MEMPOLICY           = 5229\n\tSYS_MQ_OPEN                 = 5230\n\tSYS_MQ_UNLINK               = 5231\n\tSYS_MQ_TIMEDSEND            = 5232\n\tSYS_MQ_TIMEDRECEIVE         = 5233\n\tSYS_MQ_NOTIFY               = 5234\n\tSYS_MQ_GETSETATTR           = 5235\n\tSYS_VSERVER                 = 5236\n\tSYS_WAITID                  = 5237\n\tSYS_ADD_KEY                 = 5239\n\tSYS_REQUEST_KEY             = 5240\n\tSYS_KEYCTL                  = 5241\n\tSYS_SET_THREAD_AREA         = 5242\n\tSYS_INOTIFY_INIT            = 5243\n\tSYS_INOTIFY_ADD_WATCH       = 5244\n\tSYS_INOTIFY_RM_WATCH        = 5245\n\tSYS_MIGRATE_PAGES           = 5246\n\tSYS_OPENAT                  = 5247\n\tSYS_MKDIRAT                 = 5248\n\tSYS_MKNODAT                 = 5249\n\tSYS_FCHOWNAT                = 5250\n\tSYS_FUTIMESAT               = 5251\n\tSYS_NEWFSTATAT              = 5252\n\tSYS_UNLINKAT                = 5253\n\tSYS_RENAMEAT                = 5254\n\tSYS_LINKAT                  = 5255\n\tSYS_SYMLINKAT               = 5256\n\tSYS_READLINKAT              = 5257\n\tSYS_FCHMODAT                = 5258\n\tSYS_FACCESSAT               = 5259\n\tSYS_PSELECT6                = 5260\n\tSYS_PPOLL                   = 5261\n\tSYS_UNSHARE                 = 5262\n\tSYS_SPLICE                  = 5263\n\tSYS_SYNC_FILE_RANGE         = 5264\n\tSYS_TEE                     = 5265\n\tSYS_VMSPLICE                = 5266\n\tSYS_MOVE_PAGES              = 5267\n\tSYS_SET_ROBUST_LIST         = 5268\n\tSYS_GET_ROBUST_LIST         = 5269\n\tSYS_KEXEC_LOAD              = 5270\n\tSYS_GETCPU                  = 5271\n\tSYS_EPOLL_PWAIT             = 5272\n\tSYS_IOPRIO_SET              = 5273\n\tSYS_IOPRIO_GET              = 5274\n\tSYS_UTIMENSAT               = 5275\n\tSYS_SIGNALFD                = 5276\n\tSYS_TIMERFD                 = 5277\n\tSYS_EVENTFD                 = 5278\n\tSYS_FALLOCATE               = 5279\n\tSYS_TIMERFD_CREATE          = 5280\n\tSYS_TIMERFD_GETTIME         = 5281\n\tSYS_TIMERFD_SETTIME         = 5282\n\tSYS_SIGNALFD4               = 5283\n\tSYS_EVENTFD2                = 5284\n\tSYS_EPOLL_CREATE1           = 5285\n\tSYS_DUP3                    = 5286\n\tSYS_PIPE2                   = 5287\n\tSYS_INOTIFY_INIT1           = 5288\n\tSYS_PREADV                  = 5289\n\tSYS_PWRITEV                 = 5290\n\tSYS_RT_TGSIGQUEUEINFO       = 5291\n\tSYS_PERF_EVENT_OPEN         = 5292\n\tSYS_ACCEPT4                 = 5293\n\tSYS_RECVMMSG                = 5294\n\tSYS_FANOTIFY_INIT           = 5295\n\tSYS_FANOTIFY_MARK           = 5296\n\tSYS_PRLIMIT64               = 5297\n\tSYS_NAME_TO_HANDLE_AT       = 5298\n\tSYS_OPEN_BY_HANDLE_AT       = 5299\n\tSYS_CLOCK_ADJTIME           = 5300\n\tSYS_SYNCFS                  = 5301\n\tSYS_SENDMMSG                = 5302\n\tSYS_SETNS                   = 5303\n\tSYS_PROCESS_VM_READV        = 5304\n\tSYS_PROCESS_VM_WRITEV       = 5305\n\tSYS_KCMP                    = 5306\n\tSYS_FINIT_MODULE            = 5307\n\tSYS_GETDENTS64              = 5308\n\tSYS_SCHED_SETATTR           = 5309\n\tSYS_SCHED_GETATTR           = 5310\n\tSYS_RENAMEAT2               = 5311\n\tSYS_SECCOMP                 = 5312\n\tSYS_GETRANDOM               = 5313\n\tSYS_MEMFD_CREATE            = 5314\n\tSYS_BPF                     = 5315\n\tSYS_EXECVEAT                = 5316\n\tSYS_USERFAULTFD             = 5317\n\tSYS_MEMBARRIER              = 5318\n\tSYS_MLOCK2                  = 5319\n\tSYS_COPY_FILE_RANGE         = 5320\n\tSYS_PREADV2                 = 5321\n\tSYS_PWRITEV2                = 5322\n\tSYS_PKEY_MPROTECT           = 5323\n\tSYS_PKEY_ALLOC              = 5324\n\tSYS_PKEY_FREE               = 5325\n\tSYS_STATX                   = 5326\n\tSYS_RSEQ                    = 5327\n\tSYS_IO_PGETEVENTS           = 5328\n\tSYS_PIDFD_SEND_SIGNAL       = 5424\n\tSYS_IO_URING_SETUP          = 5425\n\tSYS_IO_URING_ENTER          = 5426\n\tSYS_IO_URING_REGISTER       = 5427\n\tSYS_OPEN_TREE               = 5428\n\tSYS_MOVE_MOUNT              = 5429\n\tSYS_FSOPEN                  = 5430\n\tSYS_FSCONFIG                = 5431\n\tSYS_FSMOUNT                 = 5432\n\tSYS_FSPICK                  = 5433\n\tSYS_PIDFD_OPEN              = 5434\n\tSYS_CLONE3                  = 5435\n\tSYS_CLOSE_RANGE             = 5436\n\tSYS_OPENAT2                 = 5437\n\tSYS_PIDFD_GETFD             = 5438\n\tSYS_FACCESSAT2              = 5439\n\tSYS_PROCESS_MADVISE         = 5440\n\tSYS_EPOLL_PWAIT2            = 5441\n\tSYS_MOUNT_SETATTR           = 5442\n\tSYS_QUOTACTL_FD             = 5443\n\tSYS_LANDLOCK_CREATE_RULESET = 5444\n\tSYS_LANDLOCK_ADD_RULE       = 5445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 5446\n\tSYS_PROCESS_MRELEASE        = 5448\n\tSYS_FUTEX_WAITV             = 5449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 5450\n\tSYS_CACHESTAT               = 5451\n\tSYS_FCHMODAT2               = 5452\n\tSYS_MAP_SHADOW_STACK        = 5453\n\tSYS_FUTEX_WAKE              = 5454\n\tSYS_FUTEX_WAIT              = 5455\n\tSYS_FUTEX_REQUEUE           = 5456\n\tSYS_STATMOUNT               = 5457\n\tSYS_LISTMOUNT               = 5458\n\tSYS_LSM_GET_SELF_ATTR       = 5459\n\tSYS_LSM_SET_SELF_ATTR       = 5460\n\tSYS_LSM_LIST_MODULES        = 5461\n\tSYS_MSEAL                   = 5462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mipsle/include /tmp/mipsle/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mipsle && linux\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                      = 4000\n\tSYS_EXIT                         = 4001\n\tSYS_FORK                         = 4002\n\tSYS_READ                         = 4003\n\tSYS_WRITE                        = 4004\n\tSYS_OPEN                         = 4005\n\tSYS_CLOSE                        = 4006\n\tSYS_WAITPID                      = 4007\n\tSYS_CREAT                        = 4008\n\tSYS_LINK                         = 4009\n\tSYS_UNLINK                       = 4010\n\tSYS_EXECVE                       = 4011\n\tSYS_CHDIR                        = 4012\n\tSYS_TIME                         = 4013\n\tSYS_MKNOD                        = 4014\n\tSYS_CHMOD                        = 4015\n\tSYS_LCHOWN                       = 4016\n\tSYS_BREAK                        = 4017\n\tSYS_UNUSED18                     = 4018\n\tSYS_LSEEK                        = 4019\n\tSYS_GETPID                       = 4020\n\tSYS_MOUNT                        = 4021\n\tSYS_UMOUNT                       = 4022\n\tSYS_SETUID                       = 4023\n\tSYS_GETUID                       = 4024\n\tSYS_STIME                        = 4025\n\tSYS_PTRACE                       = 4026\n\tSYS_ALARM                        = 4027\n\tSYS_UNUSED28                     = 4028\n\tSYS_PAUSE                        = 4029\n\tSYS_UTIME                        = 4030\n\tSYS_STTY                         = 4031\n\tSYS_GTTY                         = 4032\n\tSYS_ACCESS                       = 4033\n\tSYS_NICE                         = 4034\n\tSYS_FTIME                        = 4035\n\tSYS_SYNC                         = 4036\n\tSYS_KILL                         = 4037\n\tSYS_RENAME                       = 4038\n\tSYS_MKDIR                        = 4039\n\tSYS_RMDIR                        = 4040\n\tSYS_DUP                          = 4041\n\tSYS_PIPE                         = 4042\n\tSYS_TIMES                        = 4043\n\tSYS_PROF                         = 4044\n\tSYS_BRK                          = 4045\n\tSYS_SETGID                       = 4046\n\tSYS_GETGID                       = 4047\n\tSYS_SIGNAL                       = 4048\n\tSYS_GETEUID                      = 4049\n\tSYS_GETEGID                      = 4050\n\tSYS_ACCT                         = 4051\n\tSYS_UMOUNT2                      = 4052\n\tSYS_LOCK                         = 4053\n\tSYS_IOCTL                        = 4054\n\tSYS_FCNTL                        = 4055\n\tSYS_MPX                          = 4056\n\tSYS_SETPGID                      = 4057\n\tSYS_ULIMIT                       = 4058\n\tSYS_UNUSED59                     = 4059\n\tSYS_UMASK                        = 4060\n\tSYS_CHROOT                       = 4061\n\tSYS_USTAT                        = 4062\n\tSYS_DUP2                         = 4063\n\tSYS_GETPPID                      = 4064\n\tSYS_GETPGRP                      = 4065\n\tSYS_SETSID                       = 4066\n\tSYS_SIGACTION                    = 4067\n\tSYS_SGETMASK                     = 4068\n\tSYS_SSETMASK                     = 4069\n\tSYS_SETREUID                     = 4070\n\tSYS_SETREGID                     = 4071\n\tSYS_SIGSUSPEND                   = 4072\n\tSYS_SIGPENDING                   = 4073\n\tSYS_SETHOSTNAME                  = 4074\n\tSYS_SETRLIMIT                    = 4075\n\tSYS_GETRLIMIT                    = 4076\n\tSYS_GETRUSAGE                    = 4077\n\tSYS_GETTIMEOFDAY                 = 4078\n\tSYS_SETTIMEOFDAY                 = 4079\n\tSYS_GETGROUPS                    = 4080\n\tSYS_SETGROUPS                    = 4081\n\tSYS_RESERVED82                   = 4082\n\tSYS_SYMLINK                      = 4083\n\tSYS_UNUSED84                     = 4084\n\tSYS_READLINK                     = 4085\n\tSYS_USELIB                       = 4086\n\tSYS_SWAPON                       = 4087\n\tSYS_REBOOT                       = 4088\n\tSYS_READDIR                      = 4089\n\tSYS_MMAP                         = 4090\n\tSYS_MUNMAP                       = 4091\n\tSYS_TRUNCATE                     = 4092\n\tSYS_FTRUNCATE                    = 4093\n\tSYS_FCHMOD                       = 4094\n\tSYS_FCHOWN                       = 4095\n\tSYS_GETPRIORITY                  = 4096\n\tSYS_SETPRIORITY                  = 4097\n\tSYS_PROFIL                       = 4098\n\tSYS_STATFS                       = 4099\n\tSYS_FSTATFS                      = 4100\n\tSYS_IOPERM                       = 4101\n\tSYS_SOCKETCALL                   = 4102\n\tSYS_SYSLOG                       = 4103\n\tSYS_SETITIMER                    = 4104\n\tSYS_GETITIMER                    = 4105\n\tSYS_STAT                         = 4106\n\tSYS_LSTAT                        = 4107\n\tSYS_FSTAT                        = 4108\n\tSYS_UNUSED109                    = 4109\n\tSYS_IOPL                         = 4110\n\tSYS_VHANGUP                      = 4111\n\tSYS_IDLE                         = 4112\n\tSYS_VM86                         = 4113\n\tSYS_WAIT4                        = 4114\n\tSYS_SWAPOFF                      = 4115\n\tSYS_SYSINFO                      = 4116\n\tSYS_IPC                          = 4117\n\tSYS_FSYNC                        = 4118\n\tSYS_SIGRETURN                    = 4119\n\tSYS_CLONE                        = 4120\n\tSYS_SETDOMAINNAME                = 4121\n\tSYS_UNAME                        = 4122\n\tSYS_MODIFY_LDT                   = 4123\n\tSYS_ADJTIMEX                     = 4124\n\tSYS_MPROTECT                     = 4125\n\tSYS_SIGPROCMASK                  = 4126\n\tSYS_CREATE_MODULE                = 4127\n\tSYS_INIT_MODULE                  = 4128\n\tSYS_DELETE_MODULE                = 4129\n\tSYS_GET_KERNEL_SYMS              = 4130\n\tSYS_QUOTACTL                     = 4131\n\tSYS_GETPGID                      = 4132\n\tSYS_FCHDIR                       = 4133\n\tSYS_BDFLUSH                      = 4134\n\tSYS_SYSFS                        = 4135\n\tSYS_PERSONALITY                  = 4136\n\tSYS_AFS_SYSCALL                  = 4137\n\tSYS_SETFSUID                     = 4138\n\tSYS_SETFSGID                     = 4139\n\tSYS__LLSEEK                      = 4140\n\tSYS_GETDENTS                     = 4141\n\tSYS__NEWSELECT                   = 4142\n\tSYS_FLOCK                        = 4143\n\tSYS_MSYNC                        = 4144\n\tSYS_READV                        = 4145\n\tSYS_WRITEV                       = 4146\n\tSYS_CACHEFLUSH                   = 4147\n\tSYS_CACHECTL                     = 4148\n\tSYS_SYSMIPS                      = 4149\n\tSYS_UNUSED150                    = 4150\n\tSYS_GETSID                       = 4151\n\tSYS_FDATASYNC                    = 4152\n\tSYS__SYSCTL                      = 4153\n\tSYS_MLOCK                        = 4154\n\tSYS_MUNLOCK                      = 4155\n\tSYS_MLOCKALL                     = 4156\n\tSYS_MUNLOCKALL                   = 4157\n\tSYS_SCHED_SETPARAM               = 4158\n\tSYS_SCHED_GETPARAM               = 4159\n\tSYS_SCHED_SETSCHEDULER           = 4160\n\tSYS_SCHED_GETSCHEDULER           = 4161\n\tSYS_SCHED_YIELD                  = 4162\n\tSYS_SCHED_GET_PRIORITY_MAX       = 4163\n\tSYS_SCHED_GET_PRIORITY_MIN       = 4164\n\tSYS_SCHED_RR_GET_INTERVAL        = 4165\n\tSYS_NANOSLEEP                    = 4166\n\tSYS_MREMAP                       = 4167\n\tSYS_ACCEPT                       = 4168\n\tSYS_BIND                         = 4169\n\tSYS_CONNECT                      = 4170\n\tSYS_GETPEERNAME                  = 4171\n\tSYS_GETSOCKNAME                  = 4172\n\tSYS_GETSOCKOPT                   = 4173\n\tSYS_LISTEN                       = 4174\n\tSYS_RECV                         = 4175\n\tSYS_RECVFROM                     = 4176\n\tSYS_RECVMSG                      = 4177\n\tSYS_SEND                         = 4178\n\tSYS_SENDMSG                      = 4179\n\tSYS_SENDTO                       = 4180\n\tSYS_SETSOCKOPT                   = 4181\n\tSYS_SHUTDOWN                     = 4182\n\tSYS_SOCKET                       = 4183\n\tSYS_SOCKETPAIR                   = 4184\n\tSYS_SETRESUID                    = 4185\n\tSYS_GETRESUID                    = 4186\n\tSYS_QUERY_MODULE                 = 4187\n\tSYS_POLL                         = 4188\n\tSYS_NFSSERVCTL                   = 4189\n\tSYS_SETRESGID                    = 4190\n\tSYS_GETRESGID                    = 4191\n\tSYS_PRCTL                        = 4192\n\tSYS_RT_SIGRETURN                 = 4193\n\tSYS_RT_SIGACTION                 = 4194\n\tSYS_RT_SIGPROCMASK               = 4195\n\tSYS_RT_SIGPENDING                = 4196\n\tSYS_RT_SIGTIMEDWAIT              = 4197\n\tSYS_RT_SIGQUEUEINFO              = 4198\n\tSYS_RT_SIGSUSPEND                = 4199\n\tSYS_PREAD64                      = 4200\n\tSYS_PWRITE64                     = 4201\n\tSYS_CHOWN                        = 4202\n\tSYS_GETCWD                       = 4203\n\tSYS_CAPGET                       = 4204\n\tSYS_CAPSET                       = 4205\n\tSYS_SIGALTSTACK                  = 4206\n\tSYS_SENDFILE                     = 4207\n\tSYS_GETPMSG                      = 4208\n\tSYS_PUTPMSG                      = 4209\n\tSYS_MMAP2                        = 4210\n\tSYS_TRUNCATE64                   = 4211\n\tSYS_FTRUNCATE64                  = 4212\n\tSYS_STAT64                       = 4213\n\tSYS_LSTAT64                      = 4214\n\tSYS_FSTAT64                      = 4215\n\tSYS_PIVOT_ROOT                   = 4216\n\tSYS_MINCORE                      = 4217\n\tSYS_MADVISE                      = 4218\n\tSYS_GETDENTS64                   = 4219\n\tSYS_FCNTL64                      = 4220\n\tSYS_RESERVED221                  = 4221\n\tSYS_GETTID                       = 4222\n\tSYS_READAHEAD                    = 4223\n\tSYS_SETXATTR                     = 4224\n\tSYS_LSETXATTR                    = 4225\n\tSYS_FSETXATTR                    = 4226\n\tSYS_GETXATTR                     = 4227\n\tSYS_LGETXATTR                    = 4228\n\tSYS_FGETXATTR                    = 4229\n\tSYS_LISTXATTR                    = 4230\n\tSYS_LLISTXATTR                   = 4231\n\tSYS_FLISTXATTR                   = 4232\n\tSYS_REMOVEXATTR                  = 4233\n\tSYS_LREMOVEXATTR                 = 4234\n\tSYS_FREMOVEXATTR                 = 4235\n\tSYS_TKILL                        = 4236\n\tSYS_SENDFILE64                   = 4237\n\tSYS_FUTEX                        = 4238\n\tSYS_SCHED_SETAFFINITY            = 4239\n\tSYS_SCHED_GETAFFINITY            = 4240\n\tSYS_IO_SETUP                     = 4241\n\tSYS_IO_DESTROY                   = 4242\n\tSYS_IO_GETEVENTS                 = 4243\n\tSYS_IO_SUBMIT                    = 4244\n\tSYS_IO_CANCEL                    = 4245\n\tSYS_EXIT_GROUP                   = 4246\n\tSYS_LOOKUP_DCOOKIE               = 4247\n\tSYS_EPOLL_CREATE                 = 4248\n\tSYS_EPOLL_CTL                    = 4249\n\tSYS_EPOLL_WAIT                   = 4250\n\tSYS_REMAP_FILE_PAGES             = 4251\n\tSYS_SET_TID_ADDRESS              = 4252\n\tSYS_RESTART_SYSCALL              = 4253\n\tSYS_FADVISE64                    = 4254\n\tSYS_STATFS64                     = 4255\n\tSYS_FSTATFS64                    = 4256\n\tSYS_TIMER_CREATE                 = 4257\n\tSYS_TIMER_SETTIME                = 4258\n\tSYS_TIMER_GETTIME                = 4259\n\tSYS_TIMER_GETOVERRUN             = 4260\n\tSYS_TIMER_DELETE                 = 4261\n\tSYS_CLOCK_SETTIME                = 4262\n\tSYS_CLOCK_GETTIME                = 4263\n\tSYS_CLOCK_GETRES                 = 4264\n\tSYS_CLOCK_NANOSLEEP              = 4265\n\tSYS_TGKILL                       = 4266\n\tSYS_UTIMES                       = 4267\n\tSYS_MBIND                        = 4268\n\tSYS_GET_MEMPOLICY                = 4269\n\tSYS_SET_MEMPOLICY                = 4270\n\tSYS_MQ_OPEN                      = 4271\n\tSYS_MQ_UNLINK                    = 4272\n\tSYS_MQ_TIMEDSEND                 = 4273\n\tSYS_MQ_TIMEDRECEIVE              = 4274\n\tSYS_MQ_NOTIFY                    = 4275\n\tSYS_MQ_GETSETATTR                = 4276\n\tSYS_VSERVER                      = 4277\n\tSYS_WAITID                       = 4278\n\tSYS_ADD_KEY                      = 4280\n\tSYS_REQUEST_KEY                  = 4281\n\tSYS_KEYCTL                       = 4282\n\tSYS_SET_THREAD_AREA              = 4283\n\tSYS_INOTIFY_INIT                 = 4284\n\tSYS_INOTIFY_ADD_WATCH            = 4285\n\tSYS_INOTIFY_RM_WATCH             = 4286\n\tSYS_MIGRATE_PAGES                = 4287\n\tSYS_OPENAT                       = 4288\n\tSYS_MKDIRAT                      = 4289\n\tSYS_MKNODAT                      = 4290\n\tSYS_FCHOWNAT                     = 4291\n\tSYS_FUTIMESAT                    = 4292\n\tSYS_FSTATAT64                    = 4293\n\tSYS_UNLINKAT                     = 4294\n\tSYS_RENAMEAT                     = 4295\n\tSYS_LINKAT                       = 4296\n\tSYS_SYMLINKAT                    = 4297\n\tSYS_READLINKAT                   = 4298\n\tSYS_FCHMODAT                     = 4299\n\tSYS_FACCESSAT                    = 4300\n\tSYS_PSELECT6                     = 4301\n\tSYS_PPOLL                        = 4302\n\tSYS_UNSHARE                      = 4303\n\tSYS_SPLICE                       = 4304\n\tSYS_SYNC_FILE_RANGE              = 4305\n\tSYS_TEE                          = 4306\n\tSYS_VMSPLICE                     = 4307\n\tSYS_MOVE_PAGES                   = 4308\n\tSYS_SET_ROBUST_LIST              = 4309\n\tSYS_GET_ROBUST_LIST              = 4310\n\tSYS_KEXEC_LOAD                   = 4311\n\tSYS_GETCPU                       = 4312\n\tSYS_EPOLL_PWAIT                  = 4313\n\tSYS_IOPRIO_SET                   = 4314\n\tSYS_IOPRIO_GET                   = 4315\n\tSYS_UTIMENSAT                    = 4316\n\tSYS_SIGNALFD                     = 4317\n\tSYS_TIMERFD                      = 4318\n\tSYS_EVENTFD                      = 4319\n\tSYS_FALLOCATE                    = 4320\n\tSYS_TIMERFD_CREATE               = 4321\n\tSYS_TIMERFD_GETTIME              = 4322\n\tSYS_TIMERFD_SETTIME              = 4323\n\tSYS_SIGNALFD4                    = 4324\n\tSYS_EVENTFD2                     = 4325\n\tSYS_EPOLL_CREATE1                = 4326\n\tSYS_DUP3                         = 4327\n\tSYS_PIPE2                        = 4328\n\tSYS_INOTIFY_INIT1                = 4329\n\tSYS_PREADV                       = 4330\n\tSYS_PWRITEV                      = 4331\n\tSYS_RT_TGSIGQUEUEINFO            = 4332\n\tSYS_PERF_EVENT_OPEN              = 4333\n\tSYS_ACCEPT4                      = 4334\n\tSYS_RECVMMSG                     = 4335\n\tSYS_FANOTIFY_INIT                = 4336\n\tSYS_FANOTIFY_MARK                = 4337\n\tSYS_PRLIMIT64                    = 4338\n\tSYS_NAME_TO_HANDLE_AT            = 4339\n\tSYS_OPEN_BY_HANDLE_AT            = 4340\n\tSYS_CLOCK_ADJTIME                = 4341\n\tSYS_SYNCFS                       = 4342\n\tSYS_SENDMMSG                     = 4343\n\tSYS_SETNS                        = 4344\n\tSYS_PROCESS_VM_READV             = 4345\n\tSYS_PROCESS_VM_WRITEV            = 4346\n\tSYS_KCMP                         = 4347\n\tSYS_FINIT_MODULE                 = 4348\n\tSYS_SCHED_SETATTR                = 4349\n\tSYS_SCHED_GETATTR                = 4350\n\tSYS_RENAMEAT2                    = 4351\n\tSYS_SECCOMP                      = 4352\n\tSYS_GETRANDOM                    = 4353\n\tSYS_MEMFD_CREATE                 = 4354\n\tSYS_BPF                          = 4355\n\tSYS_EXECVEAT                     = 4356\n\tSYS_USERFAULTFD                  = 4357\n\tSYS_MEMBARRIER                   = 4358\n\tSYS_MLOCK2                       = 4359\n\tSYS_COPY_FILE_RANGE              = 4360\n\tSYS_PREADV2                      = 4361\n\tSYS_PWRITEV2                     = 4362\n\tSYS_PKEY_MPROTECT                = 4363\n\tSYS_PKEY_ALLOC                   = 4364\n\tSYS_PKEY_FREE                    = 4365\n\tSYS_STATX                        = 4366\n\tSYS_RSEQ                         = 4367\n\tSYS_IO_PGETEVENTS                = 4368\n\tSYS_SEMGET                       = 4393\n\tSYS_SEMCTL                       = 4394\n\tSYS_SHMGET                       = 4395\n\tSYS_SHMCTL                       = 4396\n\tSYS_SHMAT                        = 4397\n\tSYS_SHMDT                        = 4398\n\tSYS_MSGGET                       = 4399\n\tSYS_MSGSND                       = 4400\n\tSYS_MSGRCV                       = 4401\n\tSYS_MSGCTL                       = 4402\n\tSYS_CLOCK_GETTIME64              = 4403\n\tSYS_CLOCK_SETTIME64              = 4404\n\tSYS_CLOCK_ADJTIME64              = 4405\n\tSYS_CLOCK_GETRES_TIME64          = 4406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 4407\n\tSYS_TIMER_GETTIME64              = 4408\n\tSYS_TIMER_SETTIME64              = 4409\n\tSYS_TIMERFD_GETTIME64            = 4410\n\tSYS_TIMERFD_SETTIME64            = 4411\n\tSYS_UTIMENSAT_TIME64             = 4412\n\tSYS_PSELECT6_TIME64              = 4413\n\tSYS_PPOLL_TIME64                 = 4414\n\tSYS_IO_PGETEVENTS_TIME64         = 4416\n\tSYS_RECVMMSG_TIME64              = 4417\n\tSYS_MQ_TIMEDSEND_TIME64          = 4418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 4419\n\tSYS_SEMTIMEDOP_TIME64            = 4420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 4421\n\tSYS_FUTEX_TIME64                 = 4422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423\n\tSYS_PIDFD_SEND_SIGNAL            = 4424\n\tSYS_IO_URING_SETUP               = 4425\n\tSYS_IO_URING_ENTER               = 4426\n\tSYS_IO_URING_REGISTER            = 4427\n\tSYS_OPEN_TREE                    = 4428\n\tSYS_MOVE_MOUNT                   = 4429\n\tSYS_FSOPEN                       = 4430\n\tSYS_FSCONFIG                     = 4431\n\tSYS_FSMOUNT                      = 4432\n\tSYS_FSPICK                       = 4433\n\tSYS_PIDFD_OPEN                   = 4434\n\tSYS_CLONE3                       = 4435\n\tSYS_CLOSE_RANGE                  = 4436\n\tSYS_OPENAT2                      = 4437\n\tSYS_PIDFD_GETFD                  = 4438\n\tSYS_FACCESSAT2                   = 4439\n\tSYS_PROCESS_MADVISE              = 4440\n\tSYS_EPOLL_PWAIT2                 = 4441\n\tSYS_MOUNT_SETATTR                = 4442\n\tSYS_QUOTACTL_FD                  = 4443\n\tSYS_LANDLOCK_CREATE_RULESET      = 4444\n\tSYS_LANDLOCK_ADD_RULE            = 4445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 4446\n\tSYS_PROCESS_MRELEASE             = 4448\n\tSYS_FUTEX_WAITV                  = 4449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 4450\n\tSYS_CACHESTAT                    = 4451\n\tSYS_FCHMODAT2                    = 4452\n\tSYS_MAP_SHADOW_STACK             = 4453\n\tSYS_FUTEX_WAKE                   = 4454\n\tSYS_FUTEX_WAIT                   = 4455\n\tSYS_FUTEX_REQUEUE                = 4456\n\tSYS_STATMOUNT                    = 4457\n\tSYS_LISTMOUNT                    = 4458\n\tSYS_LSM_GET_SELF_ATTR            = 4459\n\tSYS_LSM_SET_SELF_ATTR            = 4460\n\tSYS_LSM_LIST_MODULES             = 4461\n\tSYS_MSEAL                        = 4462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc/include /tmp/ppc/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL              = 0\n\tSYS_EXIT                         = 1\n\tSYS_FORK                         = 2\n\tSYS_READ                         = 3\n\tSYS_WRITE                        = 4\n\tSYS_OPEN                         = 5\n\tSYS_CLOSE                        = 6\n\tSYS_WAITPID                      = 7\n\tSYS_CREAT                        = 8\n\tSYS_LINK                         = 9\n\tSYS_UNLINK                       = 10\n\tSYS_EXECVE                       = 11\n\tSYS_CHDIR                        = 12\n\tSYS_TIME                         = 13\n\tSYS_MKNOD                        = 14\n\tSYS_CHMOD                        = 15\n\tSYS_LCHOWN                       = 16\n\tSYS_BREAK                        = 17\n\tSYS_OLDSTAT                      = 18\n\tSYS_LSEEK                        = 19\n\tSYS_GETPID                       = 20\n\tSYS_MOUNT                        = 21\n\tSYS_UMOUNT                       = 22\n\tSYS_SETUID                       = 23\n\tSYS_GETUID                       = 24\n\tSYS_STIME                        = 25\n\tSYS_PTRACE                       = 26\n\tSYS_ALARM                        = 27\n\tSYS_OLDFSTAT                     = 28\n\tSYS_PAUSE                        = 29\n\tSYS_UTIME                        = 30\n\tSYS_STTY                         = 31\n\tSYS_GTTY                         = 32\n\tSYS_ACCESS                       = 33\n\tSYS_NICE                         = 34\n\tSYS_FTIME                        = 35\n\tSYS_SYNC                         = 36\n\tSYS_KILL                         = 37\n\tSYS_RENAME                       = 38\n\tSYS_MKDIR                        = 39\n\tSYS_RMDIR                        = 40\n\tSYS_DUP                          = 41\n\tSYS_PIPE                         = 42\n\tSYS_TIMES                        = 43\n\tSYS_PROF                         = 44\n\tSYS_BRK                          = 45\n\tSYS_SETGID                       = 46\n\tSYS_GETGID                       = 47\n\tSYS_SIGNAL                       = 48\n\tSYS_GETEUID                      = 49\n\tSYS_GETEGID                      = 50\n\tSYS_ACCT                         = 51\n\tSYS_UMOUNT2                      = 52\n\tSYS_LOCK                         = 53\n\tSYS_IOCTL                        = 54\n\tSYS_FCNTL                        = 55\n\tSYS_MPX                          = 56\n\tSYS_SETPGID                      = 57\n\tSYS_ULIMIT                       = 58\n\tSYS_OLDOLDUNAME                  = 59\n\tSYS_UMASK                        = 60\n\tSYS_CHROOT                       = 61\n\tSYS_USTAT                        = 62\n\tSYS_DUP2                         = 63\n\tSYS_GETPPID                      = 64\n\tSYS_GETPGRP                      = 65\n\tSYS_SETSID                       = 66\n\tSYS_SIGACTION                    = 67\n\tSYS_SGETMASK                     = 68\n\tSYS_SSETMASK                     = 69\n\tSYS_SETREUID                     = 70\n\tSYS_SETREGID                     = 71\n\tSYS_SIGSUSPEND                   = 72\n\tSYS_SIGPENDING                   = 73\n\tSYS_SETHOSTNAME                  = 74\n\tSYS_SETRLIMIT                    = 75\n\tSYS_GETRLIMIT                    = 76\n\tSYS_GETRUSAGE                    = 77\n\tSYS_GETTIMEOFDAY                 = 78\n\tSYS_SETTIMEOFDAY                 = 79\n\tSYS_GETGROUPS                    = 80\n\tSYS_SETGROUPS                    = 81\n\tSYS_SELECT                       = 82\n\tSYS_SYMLINK                      = 83\n\tSYS_OLDLSTAT                     = 84\n\tSYS_READLINK                     = 85\n\tSYS_USELIB                       = 86\n\tSYS_SWAPON                       = 87\n\tSYS_REBOOT                       = 88\n\tSYS_READDIR                      = 89\n\tSYS_MMAP                         = 90\n\tSYS_MUNMAP                       = 91\n\tSYS_TRUNCATE                     = 92\n\tSYS_FTRUNCATE                    = 93\n\tSYS_FCHMOD                       = 94\n\tSYS_FCHOWN                       = 95\n\tSYS_GETPRIORITY                  = 96\n\tSYS_SETPRIORITY                  = 97\n\tSYS_PROFIL                       = 98\n\tSYS_STATFS                       = 99\n\tSYS_FSTATFS                      = 100\n\tSYS_IOPERM                       = 101\n\tSYS_SOCKETCALL                   = 102\n\tSYS_SYSLOG                       = 103\n\tSYS_SETITIMER                    = 104\n\tSYS_GETITIMER                    = 105\n\tSYS_STAT                         = 106\n\tSYS_LSTAT                        = 107\n\tSYS_FSTAT                        = 108\n\tSYS_OLDUNAME                     = 109\n\tSYS_IOPL                         = 110\n\tSYS_VHANGUP                      = 111\n\tSYS_IDLE                         = 112\n\tSYS_VM86                         = 113\n\tSYS_WAIT4                        = 114\n\tSYS_SWAPOFF                      = 115\n\tSYS_SYSINFO                      = 116\n\tSYS_IPC                          = 117\n\tSYS_FSYNC                        = 118\n\tSYS_SIGRETURN                    = 119\n\tSYS_CLONE                        = 120\n\tSYS_SETDOMAINNAME                = 121\n\tSYS_UNAME                        = 122\n\tSYS_MODIFY_LDT                   = 123\n\tSYS_ADJTIMEX                     = 124\n\tSYS_MPROTECT                     = 125\n\tSYS_SIGPROCMASK                  = 126\n\tSYS_CREATE_MODULE                = 127\n\tSYS_INIT_MODULE                  = 128\n\tSYS_DELETE_MODULE                = 129\n\tSYS_GET_KERNEL_SYMS              = 130\n\tSYS_QUOTACTL                     = 131\n\tSYS_GETPGID                      = 132\n\tSYS_FCHDIR                       = 133\n\tSYS_BDFLUSH                      = 134\n\tSYS_SYSFS                        = 135\n\tSYS_PERSONALITY                  = 136\n\tSYS_AFS_SYSCALL                  = 137\n\tSYS_SETFSUID                     = 138\n\tSYS_SETFSGID                     = 139\n\tSYS__LLSEEK                      = 140\n\tSYS_GETDENTS                     = 141\n\tSYS__NEWSELECT                   = 142\n\tSYS_FLOCK                        = 143\n\tSYS_MSYNC                        = 144\n\tSYS_READV                        = 145\n\tSYS_WRITEV                       = 146\n\tSYS_GETSID                       = 147\n\tSYS_FDATASYNC                    = 148\n\tSYS__SYSCTL                      = 149\n\tSYS_MLOCK                        = 150\n\tSYS_MUNLOCK                      = 151\n\tSYS_MLOCKALL                     = 152\n\tSYS_MUNLOCKALL                   = 153\n\tSYS_SCHED_SETPARAM               = 154\n\tSYS_SCHED_GETPARAM               = 155\n\tSYS_SCHED_SETSCHEDULER           = 156\n\tSYS_SCHED_GETSCHEDULER           = 157\n\tSYS_SCHED_YIELD                  = 158\n\tSYS_SCHED_GET_PRIORITY_MAX       = 159\n\tSYS_SCHED_GET_PRIORITY_MIN       = 160\n\tSYS_SCHED_RR_GET_INTERVAL        = 161\n\tSYS_NANOSLEEP                    = 162\n\tSYS_MREMAP                       = 163\n\tSYS_SETRESUID                    = 164\n\tSYS_GETRESUID                    = 165\n\tSYS_QUERY_MODULE                 = 166\n\tSYS_POLL                         = 167\n\tSYS_NFSSERVCTL                   = 168\n\tSYS_SETRESGID                    = 169\n\tSYS_GETRESGID                    = 170\n\tSYS_PRCTL                        = 171\n\tSYS_RT_SIGRETURN                 = 172\n\tSYS_RT_SIGACTION                 = 173\n\tSYS_RT_SIGPROCMASK               = 174\n\tSYS_RT_SIGPENDING                = 175\n\tSYS_RT_SIGTIMEDWAIT              = 176\n\tSYS_RT_SIGQUEUEINFO              = 177\n\tSYS_RT_SIGSUSPEND                = 178\n\tSYS_PREAD64                      = 179\n\tSYS_PWRITE64                     = 180\n\tSYS_CHOWN                        = 181\n\tSYS_GETCWD                       = 182\n\tSYS_CAPGET                       = 183\n\tSYS_CAPSET                       = 184\n\tSYS_SIGALTSTACK                  = 185\n\tSYS_SENDFILE                     = 186\n\tSYS_GETPMSG                      = 187\n\tSYS_PUTPMSG                      = 188\n\tSYS_VFORK                        = 189\n\tSYS_UGETRLIMIT                   = 190\n\tSYS_READAHEAD                    = 191\n\tSYS_MMAP2                        = 192\n\tSYS_TRUNCATE64                   = 193\n\tSYS_FTRUNCATE64                  = 194\n\tSYS_STAT64                       = 195\n\tSYS_LSTAT64                      = 196\n\tSYS_FSTAT64                      = 197\n\tSYS_PCICONFIG_READ               = 198\n\tSYS_PCICONFIG_WRITE              = 199\n\tSYS_PCICONFIG_IOBASE             = 200\n\tSYS_MULTIPLEXER                  = 201\n\tSYS_GETDENTS64                   = 202\n\tSYS_PIVOT_ROOT                   = 203\n\tSYS_FCNTL64                      = 204\n\tSYS_MADVISE                      = 205\n\tSYS_MINCORE                      = 206\n\tSYS_GETTID                       = 207\n\tSYS_TKILL                        = 208\n\tSYS_SETXATTR                     = 209\n\tSYS_LSETXATTR                    = 210\n\tSYS_FSETXATTR                    = 211\n\tSYS_GETXATTR                     = 212\n\tSYS_LGETXATTR                    = 213\n\tSYS_FGETXATTR                    = 214\n\tSYS_LISTXATTR                    = 215\n\tSYS_LLISTXATTR                   = 216\n\tSYS_FLISTXATTR                   = 217\n\tSYS_REMOVEXATTR                  = 218\n\tSYS_LREMOVEXATTR                 = 219\n\tSYS_FREMOVEXATTR                 = 220\n\tSYS_FUTEX                        = 221\n\tSYS_SCHED_SETAFFINITY            = 222\n\tSYS_SCHED_GETAFFINITY            = 223\n\tSYS_TUXCALL                      = 225\n\tSYS_SENDFILE64                   = 226\n\tSYS_IO_SETUP                     = 227\n\tSYS_IO_DESTROY                   = 228\n\tSYS_IO_GETEVENTS                 = 229\n\tSYS_IO_SUBMIT                    = 230\n\tSYS_IO_CANCEL                    = 231\n\tSYS_SET_TID_ADDRESS              = 232\n\tSYS_FADVISE64                    = 233\n\tSYS_EXIT_GROUP                   = 234\n\tSYS_LOOKUP_DCOOKIE               = 235\n\tSYS_EPOLL_CREATE                 = 236\n\tSYS_EPOLL_CTL                    = 237\n\tSYS_EPOLL_WAIT                   = 238\n\tSYS_REMAP_FILE_PAGES             = 239\n\tSYS_TIMER_CREATE                 = 240\n\tSYS_TIMER_SETTIME                = 241\n\tSYS_TIMER_GETTIME                = 242\n\tSYS_TIMER_GETOVERRUN             = 243\n\tSYS_TIMER_DELETE                 = 244\n\tSYS_CLOCK_SETTIME                = 245\n\tSYS_CLOCK_GETTIME                = 246\n\tSYS_CLOCK_GETRES                 = 247\n\tSYS_CLOCK_NANOSLEEP              = 248\n\tSYS_SWAPCONTEXT                  = 249\n\tSYS_TGKILL                       = 250\n\tSYS_UTIMES                       = 251\n\tSYS_STATFS64                     = 252\n\tSYS_FSTATFS64                    = 253\n\tSYS_FADVISE64_64                 = 254\n\tSYS_RTAS                         = 255\n\tSYS_SYS_DEBUG_SETCONTEXT         = 256\n\tSYS_MIGRATE_PAGES                = 258\n\tSYS_MBIND                        = 259\n\tSYS_GET_MEMPOLICY                = 260\n\tSYS_SET_MEMPOLICY                = 261\n\tSYS_MQ_OPEN                      = 262\n\tSYS_MQ_UNLINK                    = 263\n\tSYS_MQ_TIMEDSEND                 = 264\n\tSYS_MQ_TIMEDRECEIVE              = 265\n\tSYS_MQ_NOTIFY                    = 266\n\tSYS_MQ_GETSETATTR                = 267\n\tSYS_KEXEC_LOAD                   = 268\n\tSYS_ADD_KEY                      = 269\n\tSYS_REQUEST_KEY                  = 270\n\tSYS_KEYCTL                       = 271\n\tSYS_WAITID                       = 272\n\tSYS_IOPRIO_SET                   = 273\n\tSYS_IOPRIO_GET                   = 274\n\tSYS_INOTIFY_INIT                 = 275\n\tSYS_INOTIFY_ADD_WATCH            = 276\n\tSYS_INOTIFY_RM_WATCH             = 277\n\tSYS_SPU_RUN                      = 278\n\tSYS_SPU_CREATE                   = 279\n\tSYS_PSELECT6                     = 280\n\tSYS_PPOLL                        = 281\n\tSYS_UNSHARE                      = 282\n\tSYS_SPLICE                       = 283\n\tSYS_TEE                          = 284\n\tSYS_VMSPLICE                     = 285\n\tSYS_OPENAT                       = 286\n\tSYS_MKDIRAT                      = 287\n\tSYS_MKNODAT                      = 288\n\tSYS_FCHOWNAT                     = 289\n\tSYS_FUTIMESAT                    = 290\n\tSYS_FSTATAT64                    = 291\n\tSYS_UNLINKAT                     = 292\n\tSYS_RENAMEAT                     = 293\n\tSYS_LINKAT                       = 294\n\tSYS_SYMLINKAT                    = 295\n\tSYS_READLINKAT                   = 296\n\tSYS_FCHMODAT                     = 297\n\tSYS_FACCESSAT                    = 298\n\tSYS_GET_ROBUST_LIST              = 299\n\tSYS_SET_ROBUST_LIST              = 300\n\tSYS_MOVE_PAGES                   = 301\n\tSYS_GETCPU                       = 302\n\tSYS_EPOLL_PWAIT                  = 303\n\tSYS_UTIMENSAT                    = 304\n\tSYS_SIGNALFD                     = 305\n\tSYS_TIMERFD_CREATE               = 306\n\tSYS_EVENTFD                      = 307\n\tSYS_SYNC_FILE_RANGE2             = 308\n\tSYS_FALLOCATE                    = 309\n\tSYS_SUBPAGE_PROT                 = 310\n\tSYS_TIMERFD_SETTIME              = 311\n\tSYS_TIMERFD_GETTIME              = 312\n\tSYS_SIGNALFD4                    = 313\n\tSYS_EVENTFD2                     = 314\n\tSYS_EPOLL_CREATE1                = 315\n\tSYS_DUP3                         = 316\n\tSYS_PIPE2                        = 317\n\tSYS_INOTIFY_INIT1                = 318\n\tSYS_PERF_EVENT_OPEN              = 319\n\tSYS_PREADV                       = 320\n\tSYS_PWRITEV                      = 321\n\tSYS_RT_TGSIGQUEUEINFO            = 322\n\tSYS_FANOTIFY_INIT                = 323\n\tSYS_FANOTIFY_MARK                = 324\n\tSYS_PRLIMIT64                    = 325\n\tSYS_SOCKET                       = 326\n\tSYS_BIND                         = 327\n\tSYS_CONNECT                      = 328\n\tSYS_LISTEN                       = 329\n\tSYS_ACCEPT                       = 330\n\tSYS_GETSOCKNAME                  = 331\n\tSYS_GETPEERNAME                  = 332\n\tSYS_SOCKETPAIR                   = 333\n\tSYS_SEND                         = 334\n\tSYS_SENDTO                       = 335\n\tSYS_RECV                         = 336\n\tSYS_RECVFROM                     = 337\n\tSYS_SHUTDOWN                     = 338\n\tSYS_SETSOCKOPT                   = 339\n\tSYS_GETSOCKOPT                   = 340\n\tSYS_SENDMSG                      = 341\n\tSYS_RECVMSG                      = 342\n\tSYS_RECVMMSG                     = 343\n\tSYS_ACCEPT4                      = 344\n\tSYS_NAME_TO_HANDLE_AT            = 345\n\tSYS_OPEN_BY_HANDLE_AT            = 346\n\tSYS_CLOCK_ADJTIME                = 347\n\tSYS_SYNCFS                       = 348\n\tSYS_SENDMMSG                     = 349\n\tSYS_SETNS                        = 350\n\tSYS_PROCESS_VM_READV             = 351\n\tSYS_PROCESS_VM_WRITEV            = 352\n\tSYS_FINIT_MODULE                 = 353\n\tSYS_KCMP                         = 354\n\tSYS_SCHED_SETATTR                = 355\n\tSYS_SCHED_GETATTR                = 356\n\tSYS_RENAMEAT2                    = 357\n\tSYS_SECCOMP                      = 358\n\tSYS_GETRANDOM                    = 359\n\tSYS_MEMFD_CREATE                 = 360\n\tSYS_BPF                          = 361\n\tSYS_EXECVEAT                     = 362\n\tSYS_SWITCH_ENDIAN                = 363\n\tSYS_USERFAULTFD                  = 364\n\tSYS_MEMBARRIER                   = 365\n\tSYS_MLOCK2                       = 378\n\tSYS_COPY_FILE_RANGE              = 379\n\tSYS_PREADV2                      = 380\n\tSYS_PWRITEV2                     = 381\n\tSYS_KEXEC_FILE_LOAD              = 382\n\tSYS_STATX                        = 383\n\tSYS_PKEY_ALLOC                   = 384\n\tSYS_PKEY_FREE                    = 385\n\tSYS_PKEY_MPROTECT                = 386\n\tSYS_RSEQ                         = 387\n\tSYS_IO_PGETEVENTS                = 388\n\tSYS_SEMGET                       = 393\n\tSYS_SEMCTL                       = 394\n\tSYS_SHMGET                       = 395\n\tSYS_SHMCTL                       = 396\n\tSYS_SHMAT                        = 397\n\tSYS_SHMDT                        = 398\n\tSYS_MSGGET                       = 399\n\tSYS_MSGSND                       = 400\n\tSYS_MSGRCV                       = 401\n\tSYS_MSGCTL                       = 402\n\tSYS_CLOCK_GETTIME64              = 403\n\tSYS_CLOCK_SETTIME64              = 404\n\tSYS_CLOCK_ADJTIME64              = 405\n\tSYS_CLOCK_GETRES_TIME64          = 406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 407\n\tSYS_TIMER_GETTIME64              = 408\n\tSYS_TIMER_SETTIME64              = 409\n\tSYS_TIMERFD_GETTIME64            = 410\n\tSYS_TIMERFD_SETTIME64            = 411\n\tSYS_UTIMENSAT_TIME64             = 412\n\tSYS_PSELECT6_TIME64              = 413\n\tSYS_PPOLL_TIME64                 = 414\n\tSYS_IO_PGETEVENTS_TIME64         = 416\n\tSYS_RECVMMSG_TIME64              = 417\n\tSYS_MQ_TIMEDSEND_TIME64          = 418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 419\n\tSYS_SEMTIMEDOP_TIME64            = 420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 421\n\tSYS_FUTEX_TIME64                 = 422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 423\n\tSYS_PIDFD_SEND_SIGNAL            = 424\n\tSYS_IO_URING_SETUP               = 425\n\tSYS_IO_URING_ENTER               = 426\n\tSYS_IO_URING_REGISTER            = 427\n\tSYS_OPEN_TREE                    = 428\n\tSYS_MOVE_MOUNT                   = 429\n\tSYS_FSOPEN                       = 430\n\tSYS_FSCONFIG                     = 431\n\tSYS_FSMOUNT                      = 432\n\tSYS_FSPICK                       = 433\n\tSYS_PIDFD_OPEN                   = 434\n\tSYS_CLONE3                       = 435\n\tSYS_CLOSE_RANGE                  = 436\n\tSYS_OPENAT2                      = 437\n\tSYS_PIDFD_GETFD                  = 438\n\tSYS_FACCESSAT2                   = 439\n\tSYS_PROCESS_MADVISE              = 440\n\tSYS_EPOLL_PWAIT2                 = 441\n\tSYS_MOUNT_SETATTR                = 442\n\tSYS_QUOTACTL_FD                  = 443\n\tSYS_LANDLOCK_CREATE_RULESET      = 444\n\tSYS_LANDLOCK_ADD_RULE            = 445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 446\n\tSYS_PROCESS_MRELEASE             = 448\n\tSYS_FUTEX_WAITV                  = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 450\n\tSYS_CACHESTAT                    = 451\n\tSYS_FCHMODAT2                    = 452\n\tSYS_MAP_SHADOW_STACK             = 453\n\tSYS_FUTEX_WAKE                   = 454\n\tSYS_FUTEX_WAIT                   = 455\n\tSYS_FUTEX_REQUEUE                = 456\n\tSYS_STATMOUNT                    = 457\n\tSYS_LISTMOUNT                    = 458\n\tSYS_LSM_GET_SELF_ATTR            = 459\n\tSYS_LSM_SET_SELF_ATTR            = 460\n\tSYS_LSM_LIST_MODULES             = 461\n\tSYS_MSEAL                        = 462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64/include /tmp/ppc64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL         = 0\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_WAITPID                 = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECVE                  = 11\n\tSYS_CHDIR                   = 12\n\tSYS_TIME                    = 13\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LCHOWN                  = 16\n\tSYS_BREAK                   = 17\n\tSYS_OLDSTAT                 = 18\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_MOUNT                   = 21\n\tSYS_UMOUNT                  = 22\n\tSYS_SETUID                  = 23\n\tSYS_GETUID                  = 24\n\tSYS_STIME                   = 25\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_OLDFSTAT                = 28\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_STTY                    = 31\n\tSYS_GTTY                    = 32\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_FTIME                   = 35\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_RENAME                  = 38\n\tSYS_MKDIR                   = 39\n\tSYS_RMDIR                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_PROF                    = 44\n\tSYS_BRK                     = 45\n\tSYS_SETGID                  = 46\n\tSYS_GETGID                  = 47\n\tSYS_SIGNAL                  = 48\n\tSYS_GETEUID                 = 49\n\tSYS_GETEGID                 = 50\n\tSYS_ACCT                    = 51\n\tSYS_UMOUNT2                 = 52\n\tSYS_LOCK                    = 53\n\tSYS_IOCTL                   = 54\n\tSYS_FCNTL                   = 55\n\tSYS_MPX                     = 56\n\tSYS_SETPGID                 = 57\n\tSYS_ULIMIT                  = 58\n\tSYS_OLDOLDUNAME             = 59\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_USTAT                   = 62\n\tSYS_DUP2                    = 63\n\tSYS_GETPPID                 = 64\n\tSYS_GETPGRP                 = 65\n\tSYS_SETSID                  = 66\n\tSYS_SIGACTION               = 67\n\tSYS_SGETMASK                = 68\n\tSYS_SSETMASK                = 69\n\tSYS_SETREUID                = 70\n\tSYS_SETREGID                = 71\n\tSYS_SIGSUSPEND              = 72\n\tSYS_SIGPENDING              = 73\n\tSYS_SETHOSTNAME             = 74\n\tSYS_SETRLIMIT               = 75\n\tSYS_GETRLIMIT               = 76\n\tSYS_GETRUSAGE               = 77\n\tSYS_GETTIMEOFDAY            = 78\n\tSYS_SETTIMEOFDAY            = 79\n\tSYS_GETGROUPS               = 80\n\tSYS_SETGROUPS               = 81\n\tSYS_SELECT                  = 82\n\tSYS_SYMLINK                 = 83\n\tSYS_OLDLSTAT                = 84\n\tSYS_READLINK                = 85\n\tSYS_USELIB                  = 86\n\tSYS_SWAPON                  = 87\n\tSYS_REBOOT                  = 88\n\tSYS_READDIR                 = 89\n\tSYS_MMAP                    = 90\n\tSYS_MUNMAP                  = 91\n\tSYS_TRUNCATE                = 92\n\tSYS_FTRUNCATE               = 93\n\tSYS_FCHMOD                  = 94\n\tSYS_FCHOWN                  = 95\n\tSYS_GETPRIORITY             = 96\n\tSYS_SETPRIORITY             = 97\n\tSYS_PROFIL                  = 98\n\tSYS_STATFS                  = 99\n\tSYS_FSTATFS                 = 100\n\tSYS_IOPERM                  = 101\n\tSYS_SOCKETCALL              = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_SETITIMER               = 104\n\tSYS_GETITIMER               = 105\n\tSYS_STAT                    = 106\n\tSYS_LSTAT                   = 107\n\tSYS_FSTAT                   = 108\n\tSYS_OLDUNAME                = 109\n\tSYS_IOPL                    = 110\n\tSYS_VHANGUP                 = 111\n\tSYS_IDLE                    = 112\n\tSYS_VM86                    = 113\n\tSYS_WAIT4                   = 114\n\tSYS_SWAPOFF                 = 115\n\tSYS_SYSINFO                 = 116\n\tSYS_IPC                     = 117\n\tSYS_FSYNC                   = 118\n\tSYS_SIGRETURN               = 119\n\tSYS_CLONE                   = 120\n\tSYS_SETDOMAINNAME           = 121\n\tSYS_UNAME                   = 122\n\tSYS_MODIFY_LDT              = 123\n\tSYS_ADJTIMEX                = 124\n\tSYS_MPROTECT                = 125\n\tSYS_SIGPROCMASK             = 126\n\tSYS_CREATE_MODULE           = 127\n\tSYS_INIT_MODULE             = 128\n\tSYS_DELETE_MODULE           = 129\n\tSYS_GET_KERNEL_SYMS         = 130\n\tSYS_QUOTACTL                = 131\n\tSYS_GETPGID                 = 132\n\tSYS_FCHDIR                  = 133\n\tSYS_BDFLUSH                 = 134\n\tSYS_SYSFS                   = 135\n\tSYS_PERSONALITY             = 136\n\tSYS_AFS_SYSCALL             = 137\n\tSYS_SETFSUID                = 138\n\tSYS_SETFSGID                = 139\n\tSYS__LLSEEK                 = 140\n\tSYS_GETDENTS                = 141\n\tSYS__NEWSELECT              = 142\n\tSYS_FLOCK                   = 143\n\tSYS_MSYNC                   = 144\n\tSYS_READV                   = 145\n\tSYS_WRITEV                  = 146\n\tSYS_GETSID                  = 147\n\tSYS_FDATASYNC               = 148\n\tSYS__SYSCTL                 = 149\n\tSYS_MLOCK                   = 150\n\tSYS_MUNLOCK                 = 151\n\tSYS_MLOCKALL                = 152\n\tSYS_MUNLOCKALL              = 153\n\tSYS_SCHED_SETPARAM          = 154\n\tSYS_SCHED_GETPARAM          = 155\n\tSYS_SCHED_SETSCHEDULER      = 156\n\tSYS_SCHED_GETSCHEDULER      = 157\n\tSYS_SCHED_YIELD             = 158\n\tSYS_SCHED_GET_PRIORITY_MAX  = 159\n\tSYS_SCHED_GET_PRIORITY_MIN  = 160\n\tSYS_SCHED_RR_GET_INTERVAL   = 161\n\tSYS_NANOSLEEP               = 162\n\tSYS_MREMAP                  = 163\n\tSYS_SETRESUID               = 164\n\tSYS_GETRESUID               = 165\n\tSYS_QUERY_MODULE            = 166\n\tSYS_POLL                    = 167\n\tSYS_NFSSERVCTL              = 168\n\tSYS_SETRESGID               = 169\n\tSYS_GETRESGID               = 170\n\tSYS_PRCTL                   = 171\n\tSYS_RT_SIGRETURN            = 172\n\tSYS_RT_SIGACTION            = 173\n\tSYS_RT_SIGPROCMASK          = 174\n\tSYS_RT_SIGPENDING           = 175\n\tSYS_RT_SIGTIMEDWAIT         = 176\n\tSYS_RT_SIGQUEUEINFO         = 177\n\tSYS_RT_SIGSUSPEND           = 178\n\tSYS_PREAD64                 = 179\n\tSYS_PWRITE64                = 180\n\tSYS_CHOWN                   = 181\n\tSYS_GETCWD                  = 182\n\tSYS_CAPGET                  = 183\n\tSYS_CAPSET                  = 184\n\tSYS_SIGALTSTACK             = 185\n\tSYS_SENDFILE                = 186\n\tSYS_GETPMSG                 = 187\n\tSYS_PUTPMSG                 = 188\n\tSYS_VFORK                   = 189\n\tSYS_UGETRLIMIT              = 190\n\tSYS_READAHEAD               = 191\n\tSYS_PCICONFIG_READ          = 198\n\tSYS_PCICONFIG_WRITE         = 199\n\tSYS_PCICONFIG_IOBASE        = 200\n\tSYS_MULTIPLEXER             = 201\n\tSYS_GETDENTS64              = 202\n\tSYS_PIVOT_ROOT              = 203\n\tSYS_MADVISE                 = 205\n\tSYS_MINCORE                 = 206\n\tSYS_GETTID                  = 207\n\tSYS_TKILL                   = 208\n\tSYS_SETXATTR                = 209\n\tSYS_LSETXATTR               = 210\n\tSYS_FSETXATTR               = 211\n\tSYS_GETXATTR                = 212\n\tSYS_LGETXATTR               = 213\n\tSYS_FGETXATTR               = 214\n\tSYS_LISTXATTR               = 215\n\tSYS_LLISTXATTR              = 216\n\tSYS_FLISTXATTR              = 217\n\tSYS_REMOVEXATTR             = 218\n\tSYS_LREMOVEXATTR            = 219\n\tSYS_FREMOVEXATTR            = 220\n\tSYS_FUTEX                   = 221\n\tSYS_SCHED_SETAFFINITY       = 222\n\tSYS_SCHED_GETAFFINITY       = 223\n\tSYS_TUXCALL                 = 225\n\tSYS_IO_SETUP                = 227\n\tSYS_IO_DESTROY              = 228\n\tSYS_IO_GETEVENTS            = 229\n\tSYS_IO_SUBMIT               = 230\n\tSYS_IO_CANCEL               = 231\n\tSYS_SET_TID_ADDRESS         = 232\n\tSYS_FADVISE64               = 233\n\tSYS_EXIT_GROUP              = 234\n\tSYS_LOOKUP_DCOOKIE          = 235\n\tSYS_EPOLL_CREATE            = 236\n\tSYS_EPOLL_CTL               = 237\n\tSYS_EPOLL_WAIT              = 238\n\tSYS_REMAP_FILE_PAGES        = 239\n\tSYS_TIMER_CREATE            = 240\n\tSYS_TIMER_SETTIME           = 241\n\tSYS_TIMER_GETTIME           = 242\n\tSYS_TIMER_GETOVERRUN        = 243\n\tSYS_TIMER_DELETE            = 244\n\tSYS_CLOCK_SETTIME           = 245\n\tSYS_CLOCK_GETTIME           = 246\n\tSYS_CLOCK_GETRES            = 247\n\tSYS_CLOCK_NANOSLEEP         = 248\n\tSYS_SWAPCONTEXT             = 249\n\tSYS_TGKILL                  = 250\n\tSYS_UTIMES                  = 251\n\tSYS_STATFS64                = 252\n\tSYS_FSTATFS64               = 253\n\tSYS_RTAS                    = 255\n\tSYS_SYS_DEBUG_SETCONTEXT    = 256\n\tSYS_MIGRATE_PAGES           = 258\n\tSYS_MBIND                   = 259\n\tSYS_GET_MEMPOLICY           = 260\n\tSYS_SET_MEMPOLICY           = 261\n\tSYS_MQ_OPEN                 = 262\n\tSYS_MQ_UNLINK               = 263\n\tSYS_MQ_TIMEDSEND            = 264\n\tSYS_MQ_TIMEDRECEIVE         = 265\n\tSYS_MQ_NOTIFY               = 266\n\tSYS_MQ_GETSETATTR           = 267\n\tSYS_KEXEC_LOAD              = 268\n\tSYS_ADD_KEY                 = 269\n\tSYS_REQUEST_KEY             = 270\n\tSYS_KEYCTL                  = 271\n\tSYS_WAITID                  = 272\n\tSYS_IOPRIO_SET              = 273\n\tSYS_IOPRIO_GET              = 274\n\tSYS_INOTIFY_INIT            = 275\n\tSYS_INOTIFY_ADD_WATCH       = 276\n\tSYS_INOTIFY_RM_WATCH        = 277\n\tSYS_SPU_RUN                 = 278\n\tSYS_SPU_CREATE              = 279\n\tSYS_PSELECT6                = 280\n\tSYS_PPOLL                   = 281\n\tSYS_UNSHARE                 = 282\n\tSYS_SPLICE                  = 283\n\tSYS_TEE                     = 284\n\tSYS_VMSPLICE                = 285\n\tSYS_OPENAT                  = 286\n\tSYS_MKDIRAT                 = 287\n\tSYS_MKNODAT                 = 288\n\tSYS_FCHOWNAT                = 289\n\tSYS_FUTIMESAT               = 290\n\tSYS_NEWFSTATAT              = 291\n\tSYS_UNLINKAT                = 292\n\tSYS_RENAMEAT                = 293\n\tSYS_LINKAT                  = 294\n\tSYS_SYMLINKAT               = 295\n\tSYS_READLINKAT              = 296\n\tSYS_FCHMODAT                = 297\n\tSYS_FACCESSAT               = 298\n\tSYS_GET_ROBUST_LIST         = 299\n\tSYS_SET_ROBUST_LIST         = 300\n\tSYS_MOVE_PAGES              = 301\n\tSYS_GETCPU                  = 302\n\tSYS_EPOLL_PWAIT             = 303\n\tSYS_UTIMENSAT               = 304\n\tSYS_SIGNALFD                = 305\n\tSYS_TIMERFD_CREATE          = 306\n\tSYS_EVENTFD                 = 307\n\tSYS_SYNC_FILE_RANGE2        = 308\n\tSYS_FALLOCATE               = 309\n\tSYS_SUBPAGE_PROT            = 310\n\tSYS_TIMERFD_SETTIME         = 311\n\tSYS_TIMERFD_GETTIME         = 312\n\tSYS_SIGNALFD4               = 313\n\tSYS_EVENTFD2                = 314\n\tSYS_EPOLL_CREATE1           = 315\n\tSYS_DUP3                    = 316\n\tSYS_PIPE2                   = 317\n\tSYS_INOTIFY_INIT1           = 318\n\tSYS_PERF_EVENT_OPEN         = 319\n\tSYS_PREADV                  = 320\n\tSYS_PWRITEV                 = 321\n\tSYS_RT_TGSIGQUEUEINFO       = 322\n\tSYS_FANOTIFY_INIT           = 323\n\tSYS_FANOTIFY_MARK           = 324\n\tSYS_PRLIMIT64               = 325\n\tSYS_SOCKET                  = 326\n\tSYS_BIND                    = 327\n\tSYS_CONNECT                 = 328\n\tSYS_LISTEN                  = 329\n\tSYS_ACCEPT                  = 330\n\tSYS_GETSOCKNAME             = 331\n\tSYS_GETPEERNAME             = 332\n\tSYS_SOCKETPAIR              = 333\n\tSYS_SEND                    = 334\n\tSYS_SENDTO                  = 335\n\tSYS_RECV                    = 336\n\tSYS_RECVFROM                = 337\n\tSYS_SHUTDOWN                = 338\n\tSYS_SETSOCKOPT              = 339\n\tSYS_GETSOCKOPT              = 340\n\tSYS_SENDMSG                 = 341\n\tSYS_RECVMSG                 = 342\n\tSYS_RECVMMSG                = 343\n\tSYS_ACCEPT4                 = 344\n\tSYS_NAME_TO_HANDLE_AT       = 345\n\tSYS_OPEN_BY_HANDLE_AT       = 346\n\tSYS_CLOCK_ADJTIME           = 347\n\tSYS_SYNCFS                  = 348\n\tSYS_SENDMMSG                = 349\n\tSYS_SETNS                   = 350\n\tSYS_PROCESS_VM_READV        = 351\n\tSYS_PROCESS_VM_WRITEV       = 352\n\tSYS_FINIT_MODULE            = 353\n\tSYS_KCMP                    = 354\n\tSYS_SCHED_SETATTR           = 355\n\tSYS_SCHED_GETATTR           = 356\n\tSYS_RENAMEAT2               = 357\n\tSYS_SECCOMP                 = 358\n\tSYS_GETRANDOM               = 359\n\tSYS_MEMFD_CREATE            = 360\n\tSYS_BPF                     = 361\n\tSYS_EXECVEAT                = 362\n\tSYS_SWITCH_ENDIAN           = 363\n\tSYS_USERFAULTFD             = 364\n\tSYS_MEMBARRIER              = 365\n\tSYS_MLOCK2                  = 378\n\tSYS_COPY_FILE_RANGE         = 379\n\tSYS_PREADV2                 = 380\n\tSYS_PWRITEV2                = 381\n\tSYS_KEXEC_FILE_LOAD         = 382\n\tSYS_STATX                   = 383\n\tSYS_PKEY_ALLOC              = 384\n\tSYS_PKEY_FREE               = 385\n\tSYS_PKEY_MPROTECT           = 386\n\tSYS_RSEQ                    = 387\n\tSYS_IO_PGETEVENTS           = 388\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64le/include /tmp/ppc64le/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64le && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL         = 0\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_WAITPID                 = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECVE                  = 11\n\tSYS_CHDIR                   = 12\n\tSYS_TIME                    = 13\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LCHOWN                  = 16\n\tSYS_BREAK                   = 17\n\tSYS_OLDSTAT                 = 18\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_MOUNT                   = 21\n\tSYS_UMOUNT                  = 22\n\tSYS_SETUID                  = 23\n\tSYS_GETUID                  = 24\n\tSYS_STIME                   = 25\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_OLDFSTAT                = 28\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_STTY                    = 31\n\tSYS_GTTY                    = 32\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_FTIME                   = 35\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_RENAME                  = 38\n\tSYS_MKDIR                   = 39\n\tSYS_RMDIR                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_PROF                    = 44\n\tSYS_BRK                     = 45\n\tSYS_SETGID                  = 46\n\tSYS_GETGID                  = 47\n\tSYS_SIGNAL                  = 48\n\tSYS_GETEUID                 = 49\n\tSYS_GETEGID                 = 50\n\tSYS_ACCT                    = 51\n\tSYS_UMOUNT2                 = 52\n\tSYS_LOCK                    = 53\n\tSYS_IOCTL                   = 54\n\tSYS_FCNTL                   = 55\n\tSYS_MPX                     = 56\n\tSYS_SETPGID                 = 57\n\tSYS_ULIMIT                  = 58\n\tSYS_OLDOLDUNAME             = 59\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_USTAT                   = 62\n\tSYS_DUP2                    = 63\n\tSYS_GETPPID                 = 64\n\tSYS_GETPGRP                 = 65\n\tSYS_SETSID                  = 66\n\tSYS_SIGACTION               = 67\n\tSYS_SGETMASK                = 68\n\tSYS_SSETMASK                = 69\n\tSYS_SETREUID                = 70\n\tSYS_SETREGID                = 71\n\tSYS_SIGSUSPEND              = 72\n\tSYS_SIGPENDING              = 73\n\tSYS_SETHOSTNAME             = 74\n\tSYS_SETRLIMIT               = 75\n\tSYS_GETRLIMIT               = 76\n\tSYS_GETRUSAGE               = 77\n\tSYS_GETTIMEOFDAY            = 78\n\tSYS_SETTIMEOFDAY            = 79\n\tSYS_GETGROUPS               = 80\n\tSYS_SETGROUPS               = 81\n\tSYS_SELECT                  = 82\n\tSYS_SYMLINK                 = 83\n\tSYS_OLDLSTAT                = 84\n\tSYS_READLINK                = 85\n\tSYS_USELIB                  = 86\n\tSYS_SWAPON                  = 87\n\tSYS_REBOOT                  = 88\n\tSYS_READDIR                 = 89\n\tSYS_MMAP                    = 90\n\tSYS_MUNMAP                  = 91\n\tSYS_TRUNCATE                = 92\n\tSYS_FTRUNCATE               = 93\n\tSYS_FCHMOD                  = 94\n\tSYS_FCHOWN                  = 95\n\tSYS_GETPRIORITY             = 96\n\tSYS_SETPRIORITY             = 97\n\tSYS_PROFIL                  = 98\n\tSYS_STATFS                  = 99\n\tSYS_FSTATFS                 = 100\n\tSYS_IOPERM                  = 101\n\tSYS_SOCKETCALL              = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_SETITIMER               = 104\n\tSYS_GETITIMER               = 105\n\tSYS_STAT                    = 106\n\tSYS_LSTAT                   = 107\n\tSYS_FSTAT                   = 108\n\tSYS_OLDUNAME                = 109\n\tSYS_IOPL                    = 110\n\tSYS_VHANGUP                 = 111\n\tSYS_IDLE                    = 112\n\tSYS_VM86                    = 113\n\tSYS_WAIT4                   = 114\n\tSYS_SWAPOFF                 = 115\n\tSYS_SYSINFO                 = 116\n\tSYS_IPC                     = 117\n\tSYS_FSYNC                   = 118\n\tSYS_SIGRETURN               = 119\n\tSYS_CLONE                   = 120\n\tSYS_SETDOMAINNAME           = 121\n\tSYS_UNAME                   = 122\n\tSYS_MODIFY_LDT              = 123\n\tSYS_ADJTIMEX                = 124\n\tSYS_MPROTECT                = 125\n\tSYS_SIGPROCMASK             = 126\n\tSYS_CREATE_MODULE           = 127\n\tSYS_INIT_MODULE             = 128\n\tSYS_DELETE_MODULE           = 129\n\tSYS_GET_KERNEL_SYMS         = 130\n\tSYS_QUOTACTL                = 131\n\tSYS_GETPGID                 = 132\n\tSYS_FCHDIR                  = 133\n\tSYS_BDFLUSH                 = 134\n\tSYS_SYSFS                   = 135\n\tSYS_PERSONALITY             = 136\n\tSYS_AFS_SYSCALL             = 137\n\tSYS_SETFSUID                = 138\n\tSYS_SETFSGID                = 139\n\tSYS__LLSEEK                 = 140\n\tSYS_GETDENTS                = 141\n\tSYS__NEWSELECT              = 142\n\tSYS_FLOCK                   = 143\n\tSYS_MSYNC                   = 144\n\tSYS_READV                   = 145\n\tSYS_WRITEV                  = 146\n\tSYS_GETSID                  = 147\n\tSYS_FDATASYNC               = 148\n\tSYS__SYSCTL                 = 149\n\tSYS_MLOCK                   = 150\n\tSYS_MUNLOCK                 = 151\n\tSYS_MLOCKALL                = 152\n\tSYS_MUNLOCKALL              = 153\n\tSYS_SCHED_SETPARAM          = 154\n\tSYS_SCHED_GETPARAM          = 155\n\tSYS_SCHED_SETSCHEDULER      = 156\n\tSYS_SCHED_GETSCHEDULER      = 157\n\tSYS_SCHED_YIELD             = 158\n\tSYS_SCHED_GET_PRIORITY_MAX  = 159\n\tSYS_SCHED_GET_PRIORITY_MIN  = 160\n\tSYS_SCHED_RR_GET_INTERVAL   = 161\n\tSYS_NANOSLEEP               = 162\n\tSYS_MREMAP                  = 163\n\tSYS_SETRESUID               = 164\n\tSYS_GETRESUID               = 165\n\tSYS_QUERY_MODULE            = 166\n\tSYS_POLL                    = 167\n\tSYS_NFSSERVCTL              = 168\n\tSYS_SETRESGID               = 169\n\tSYS_GETRESGID               = 170\n\tSYS_PRCTL                   = 171\n\tSYS_RT_SIGRETURN            = 172\n\tSYS_RT_SIGACTION            = 173\n\tSYS_RT_SIGPROCMASK          = 174\n\tSYS_RT_SIGPENDING           = 175\n\tSYS_RT_SIGTIMEDWAIT         = 176\n\tSYS_RT_SIGQUEUEINFO         = 177\n\tSYS_RT_SIGSUSPEND           = 178\n\tSYS_PREAD64                 = 179\n\tSYS_PWRITE64                = 180\n\tSYS_CHOWN                   = 181\n\tSYS_GETCWD                  = 182\n\tSYS_CAPGET                  = 183\n\tSYS_CAPSET                  = 184\n\tSYS_SIGALTSTACK             = 185\n\tSYS_SENDFILE                = 186\n\tSYS_GETPMSG                 = 187\n\tSYS_PUTPMSG                 = 188\n\tSYS_VFORK                   = 189\n\tSYS_UGETRLIMIT              = 190\n\tSYS_READAHEAD               = 191\n\tSYS_PCICONFIG_READ          = 198\n\tSYS_PCICONFIG_WRITE         = 199\n\tSYS_PCICONFIG_IOBASE        = 200\n\tSYS_MULTIPLEXER             = 201\n\tSYS_GETDENTS64              = 202\n\tSYS_PIVOT_ROOT              = 203\n\tSYS_MADVISE                 = 205\n\tSYS_MINCORE                 = 206\n\tSYS_GETTID                  = 207\n\tSYS_TKILL                   = 208\n\tSYS_SETXATTR                = 209\n\tSYS_LSETXATTR               = 210\n\tSYS_FSETXATTR               = 211\n\tSYS_GETXATTR                = 212\n\tSYS_LGETXATTR               = 213\n\tSYS_FGETXATTR               = 214\n\tSYS_LISTXATTR               = 215\n\tSYS_LLISTXATTR              = 216\n\tSYS_FLISTXATTR              = 217\n\tSYS_REMOVEXATTR             = 218\n\tSYS_LREMOVEXATTR            = 219\n\tSYS_FREMOVEXATTR            = 220\n\tSYS_FUTEX                   = 221\n\tSYS_SCHED_SETAFFINITY       = 222\n\tSYS_SCHED_GETAFFINITY       = 223\n\tSYS_TUXCALL                 = 225\n\tSYS_IO_SETUP                = 227\n\tSYS_IO_DESTROY              = 228\n\tSYS_IO_GETEVENTS            = 229\n\tSYS_IO_SUBMIT               = 230\n\tSYS_IO_CANCEL               = 231\n\tSYS_SET_TID_ADDRESS         = 232\n\tSYS_FADVISE64               = 233\n\tSYS_EXIT_GROUP              = 234\n\tSYS_LOOKUP_DCOOKIE          = 235\n\tSYS_EPOLL_CREATE            = 236\n\tSYS_EPOLL_CTL               = 237\n\tSYS_EPOLL_WAIT              = 238\n\tSYS_REMAP_FILE_PAGES        = 239\n\tSYS_TIMER_CREATE            = 240\n\tSYS_TIMER_SETTIME           = 241\n\tSYS_TIMER_GETTIME           = 242\n\tSYS_TIMER_GETOVERRUN        = 243\n\tSYS_TIMER_DELETE            = 244\n\tSYS_CLOCK_SETTIME           = 245\n\tSYS_CLOCK_GETTIME           = 246\n\tSYS_CLOCK_GETRES            = 247\n\tSYS_CLOCK_NANOSLEEP         = 248\n\tSYS_SWAPCONTEXT             = 249\n\tSYS_TGKILL                  = 250\n\tSYS_UTIMES                  = 251\n\tSYS_STATFS64                = 252\n\tSYS_FSTATFS64               = 253\n\tSYS_RTAS                    = 255\n\tSYS_SYS_DEBUG_SETCONTEXT    = 256\n\tSYS_MIGRATE_PAGES           = 258\n\tSYS_MBIND                   = 259\n\tSYS_GET_MEMPOLICY           = 260\n\tSYS_SET_MEMPOLICY           = 261\n\tSYS_MQ_OPEN                 = 262\n\tSYS_MQ_UNLINK               = 263\n\tSYS_MQ_TIMEDSEND            = 264\n\tSYS_MQ_TIMEDRECEIVE         = 265\n\tSYS_MQ_NOTIFY               = 266\n\tSYS_MQ_GETSETATTR           = 267\n\tSYS_KEXEC_LOAD              = 268\n\tSYS_ADD_KEY                 = 269\n\tSYS_REQUEST_KEY             = 270\n\tSYS_KEYCTL                  = 271\n\tSYS_WAITID                  = 272\n\tSYS_IOPRIO_SET              = 273\n\tSYS_IOPRIO_GET              = 274\n\tSYS_INOTIFY_INIT            = 275\n\tSYS_INOTIFY_ADD_WATCH       = 276\n\tSYS_INOTIFY_RM_WATCH        = 277\n\tSYS_SPU_RUN                 = 278\n\tSYS_SPU_CREATE              = 279\n\tSYS_PSELECT6                = 280\n\tSYS_PPOLL                   = 281\n\tSYS_UNSHARE                 = 282\n\tSYS_SPLICE                  = 283\n\tSYS_TEE                     = 284\n\tSYS_VMSPLICE                = 285\n\tSYS_OPENAT                  = 286\n\tSYS_MKDIRAT                 = 287\n\tSYS_MKNODAT                 = 288\n\tSYS_FCHOWNAT                = 289\n\tSYS_FUTIMESAT               = 290\n\tSYS_NEWFSTATAT              = 291\n\tSYS_UNLINKAT                = 292\n\tSYS_RENAMEAT                = 293\n\tSYS_LINKAT                  = 294\n\tSYS_SYMLINKAT               = 295\n\tSYS_READLINKAT              = 296\n\tSYS_FCHMODAT                = 297\n\tSYS_FACCESSAT               = 298\n\tSYS_GET_ROBUST_LIST         = 299\n\tSYS_SET_ROBUST_LIST         = 300\n\tSYS_MOVE_PAGES              = 301\n\tSYS_GETCPU                  = 302\n\tSYS_EPOLL_PWAIT             = 303\n\tSYS_UTIMENSAT               = 304\n\tSYS_SIGNALFD                = 305\n\tSYS_TIMERFD_CREATE          = 306\n\tSYS_EVENTFD                 = 307\n\tSYS_SYNC_FILE_RANGE2        = 308\n\tSYS_FALLOCATE               = 309\n\tSYS_SUBPAGE_PROT            = 310\n\tSYS_TIMERFD_SETTIME         = 311\n\tSYS_TIMERFD_GETTIME         = 312\n\tSYS_SIGNALFD4               = 313\n\tSYS_EVENTFD2                = 314\n\tSYS_EPOLL_CREATE1           = 315\n\tSYS_DUP3                    = 316\n\tSYS_PIPE2                   = 317\n\tSYS_INOTIFY_INIT1           = 318\n\tSYS_PERF_EVENT_OPEN         = 319\n\tSYS_PREADV                  = 320\n\tSYS_PWRITEV                 = 321\n\tSYS_RT_TGSIGQUEUEINFO       = 322\n\tSYS_FANOTIFY_INIT           = 323\n\tSYS_FANOTIFY_MARK           = 324\n\tSYS_PRLIMIT64               = 325\n\tSYS_SOCKET                  = 326\n\tSYS_BIND                    = 327\n\tSYS_CONNECT                 = 328\n\tSYS_LISTEN                  = 329\n\tSYS_ACCEPT                  = 330\n\tSYS_GETSOCKNAME             = 331\n\tSYS_GETPEERNAME             = 332\n\tSYS_SOCKETPAIR              = 333\n\tSYS_SEND                    = 334\n\tSYS_SENDTO                  = 335\n\tSYS_RECV                    = 336\n\tSYS_RECVFROM                = 337\n\tSYS_SHUTDOWN                = 338\n\tSYS_SETSOCKOPT              = 339\n\tSYS_GETSOCKOPT              = 340\n\tSYS_SENDMSG                 = 341\n\tSYS_RECVMSG                 = 342\n\tSYS_RECVMMSG                = 343\n\tSYS_ACCEPT4                 = 344\n\tSYS_NAME_TO_HANDLE_AT       = 345\n\tSYS_OPEN_BY_HANDLE_AT       = 346\n\tSYS_CLOCK_ADJTIME           = 347\n\tSYS_SYNCFS                  = 348\n\tSYS_SENDMMSG                = 349\n\tSYS_SETNS                   = 350\n\tSYS_PROCESS_VM_READV        = 351\n\tSYS_PROCESS_VM_WRITEV       = 352\n\tSYS_FINIT_MODULE            = 353\n\tSYS_KCMP                    = 354\n\tSYS_SCHED_SETATTR           = 355\n\tSYS_SCHED_GETATTR           = 356\n\tSYS_RENAMEAT2               = 357\n\tSYS_SECCOMP                 = 358\n\tSYS_GETRANDOM               = 359\n\tSYS_MEMFD_CREATE            = 360\n\tSYS_BPF                     = 361\n\tSYS_EXECVEAT                = 362\n\tSYS_SWITCH_ENDIAN           = 363\n\tSYS_USERFAULTFD             = 364\n\tSYS_MEMBARRIER              = 365\n\tSYS_MLOCK2                  = 378\n\tSYS_COPY_FILE_RANGE         = 379\n\tSYS_PREADV2                 = 380\n\tSYS_PWRITEV2                = 381\n\tSYS_KEXEC_FILE_LOAD         = 382\n\tSYS_STATX                   = 383\n\tSYS_PKEY_ALLOC              = 384\n\tSYS_PKEY_FREE               = 385\n\tSYS_PKEY_MPROTECT           = 386\n\tSYS_RSEQ                    = 387\n\tSYS_IO_PGETEVENTS           = 388\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/riscv64/include /tmp/riscv64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && linux\n\npackage unix\n\nconst (\n\tSYS_IO_SETUP                = 0\n\tSYS_IO_DESTROY              = 1\n\tSYS_IO_SUBMIT               = 2\n\tSYS_IO_CANCEL               = 3\n\tSYS_IO_GETEVENTS            = 4\n\tSYS_SETXATTR                = 5\n\tSYS_LSETXATTR               = 6\n\tSYS_FSETXATTR               = 7\n\tSYS_GETXATTR                = 8\n\tSYS_LGETXATTR               = 9\n\tSYS_FGETXATTR               = 10\n\tSYS_LISTXATTR               = 11\n\tSYS_LLISTXATTR              = 12\n\tSYS_FLISTXATTR              = 13\n\tSYS_REMOVEXATTR             = 14\n\tSYS_LREMOVEXATTR            = 15\n\tSYS_FREMOVEXATTR            = 16\n\tSYS_GETCWD                  = 17\n\tSYS_LOOKUP_DCOOKIE          = 18\n\tSYS_EVENTFD2                = 19\n\tSYS_EPOLL_CREATE1           = 20\n\tSYS_EPOLL_CTL               = 21\n\tSYS_EPOLL_PWAIT             = 22\n\tSYS_DUP                     = 23\n\tSYS_DUP3                    = 24\n\tSYS_FCNTL                   = 25\n\tSYS_INOTIFY_INIT1           = 26\n\tSYS_INOTIFY_ADD_WATCH       = 27\n\tSYS_INOTIFY_RM_WATCH        = 28\n\tSYS_IOCTL                   = 29\n\tSYS_IOPRIO_SET              = 30\n\tSYS_IOPRIO_GET              = 31\n\tSYS_FLOCK                   = 32\n\tSYS_MKNODAT                 = 33\n\tSYS_MKDIRAT                 = 34\n\tSYS_UNLINKAT                = 35\n\tSYS_SYMLINKAT               = 36\n\tSYS_LINKAT                  = 37\n\tSYS_UMOUNT2                 = 39\n\tSYS_MOUNT                   = 40\n\tSYS_PIVOT_ROOT              = 41\n\tSYS_NFSSERVCTL              = 42\n\tSYS_STATFS                  = 43\n\tSYS_FSTATFS                 = 44\n\tSYS_TRUNCATE                = 45\n\tSYS_FTRUNCATE               = 46\n\tSYS_FALLOCATE               = 47\n\tSYS_FACCESSAT               = 48\n\tSYS_CHDIR                   = 49\n\tSYS_FCHDIR                  = 50\n\tSYS_CHROOT                  = 51\n\tSYS_FCHMOD                  = 52\n\tSYS_FCHMODAT                = 53\n\tSYS_FCHOWNAT                = 54\n\tSYS_FCHOWN                  = 55\n\tSYS_OPENAT                  = 56\n\tSYS_CLOSE                   = 57\n\tSYS_VHANGUP                 = 58\n\tSYS_PIPE2                   = 59\n\tSYS_QUOTACTL                = 60\n\tSYS_GETDENTS64              = 61\n\tSYS_LSEEK                   = 62\n\tSYS_READ                    = 63\n\tSYS_WRITE                   = 64\n\tSYS_READV                   = 65\n\tSYS_WRITEV                  = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_PREADV                  = 69\n\tSYS_PWRITEV                 = 70\n\tSYS_SENDFILE                = 71\n\tSYS_PSELECT6                = 72\n\tSYS_PPOLL                   = 73\n\tSYS_SIGNALFD4               = 74\n\tSYS_VMSPLICE                = 75\n\tSYS_SPLICE                  = 76\n\tSYS_TEE                     = 77\n\tSYS_READLINKAT              = 78\n\tSYS_FSTATAT                 = 79\n\tSYS_FSTAT                   = 80\n\tSYS_SYNC                    = 81\n\tSYS_FSYNC                   = 82\n\tSYS_FDATASYNC               = 83\n\tSYS_SYNC_FILE_RANGE         = 84\n\tSYS_TIMERFD_CREATE          = 85\n\tSYS_TIMERFD_SETTIME         = 86\n\tSYS_TIMERFD_GETTIME         = 87\n\tSYS_UTIMENSAT               = 88\n\tSYS_ACCT                    = 89\n\tSYS_CAPGET                  = 90\n\tSYS_CAPSET                  = 91\n\tSYS_PERSONALITY             = 92\n\tSYS_EXIT                    = 93\n\tSYS_EXIT_GROUP              = 94\n\tSYS_WAITID                  = 95\n\tSYS_SET_TID_ADDRESS         = 96\n\tSYS_UNSHARE                 = 97\n\tSYS_FUTEX                   = 98\n\tSYS_SET_ROBUST_LIST         = 99\n\tSYS_GET_ROBUST_LIST         = 100\n\tSYS_NANOSLEEP               = 101\n\tSYS_GETITIMER               = 102\n\tSYS_SETITIMER               = 103\n\tSYS_KEXEC_LOAD              = 104\n\tSYS_INIT_MODULE             = 105\n\tSYS_DELETE_MODULE           = 106\n\tSYS_TIMER_CREATE            = 107\n\tSYS_TIMER_GETTIME           = 108\n\tSYS_TIMER_GETOVERRUN        = 109\n\tSYS_TIMER_SETTIME           = 110\n\tSYS_TIMER_DELETE            = 111\n\tSYS_CLOCK_SETTIME           = 112\n\tSYS_CLOCK_GETTIME           = 113\n\tSYS_CLOCK_GETRES            = 114\n\tSYS_CLOCK_NANOSLEEP         = 115\n\tSYS_SYSLOG                  = 116\n\tSYS_PTRACE                  = 117\n\tSYS_SCHED_SETPARAM          = 118\n\tSYS_SCHED_SETSCHEDULER      = 119\n\tSYS_SCHED_GETSCHEDULER      = 120\n\tSYS_SCHED_GETPARAM          = 121\n\tSYS_SCHED_SETAFFINITY       = 122\n\tSYS_SCHED_GETAFFINITY       = 123\n\tSYS_SCHED_YIELD             = 124\n\tSYS_SCHED_GET_PRIORITY_MAX  = 125\n\tSYS_SCHED_GET_PRIORITY_MIN  = 126\n\tSYS_SCHED_RR_GET_INTERVAL   = 127\n\tSYS_RESTART_SYSCALL         = 128\n\tSYS_KILL                    = 129\n\tSYS_TKILL                   = 130\n\tSYS_TGKILL                  = 131\n\tSYS_SIGALTSTACK             = 132\n\tSYS_RT_SIGSUSPEND           = 133\n\tSYS_RT_SIGACTION            = 134\n\tSYS_RT_SIGPROCMASK          = 135\n\tSYS_RT_SIGPENDING           = 136\n\tSYS_RT_SIGTIMEDWAIT         = 137\n\tSYS_RT_SIGQUEUEINFO         = 138\n\tSYS_RT_SIGRETURN            = 139\n\tSYS_SETPRIORITY             = 140\n\tSYS_GETPRIORITY             = 141\n\tSYS_REBOOT                  = 142\n\tSYS_SETREGID                = 143\n\tSYS_SETGID                  = 144\n\tSYS_SETREUID                = 145\n\tSYS_SETUID                  = 146\n\tSYS_SETRESUID               = 147\n\tSYS_GETRESUID               = 148\n\tSYS_SETRESGID               = 149\n\tSYS_GETRESGID               = 150\n\tSYS_SETFSUID                = 151\n\tSYS_SETFSGID                = 152\n\tSYS_TIMES                   = 153\n\tSYS_SETPGID                 = 154\n\tSYS_GETPGID                 = 155\n\tSYS_GETSID                  = 156\n\tSYS_SETSID                  = 157\n\tSYS_GETGROUPS               = 158\n\tSYS_SETGROUPS               = 159\n\tSYS_UNAME                   = 160\n\tSYS_SETHOSTNAME             = 161\n\tSYS_SETDOMAINNAME           = 162\n\tSYS_GETRLIMIT               = 163\n\tSYS_SETRLIMIT               = 164\n\tSYS_GETRUSAGE               = 165\n\tSYS_UMASK                   = 166\n\tSYS_PRCTL                   = 167\n\tSYS_GETCPU                  = 168\n\tSYS_GETTIMEOFDAY            = 169\n\tSYS_SETTIMEOFDAY            = 170\n\tSYS_ADJTIMEX                = 171\n\tSYS_GETPID                  = 172\n\tSYS_GETPPID                 = 173\n\tSYS_GETUID                  = 174\n\tSYS_GETEUID                 = 175\n\tSYS_GETGID                  = 176\n\tSYS_GETEGID                 = 177\n\tSYS_GETTID                  = 178\n\tSYS_SYSINFO                 = 179\n\tSYS_MQ_OPEN                 = 180\n\tSYS_MQ_UNLINK               = 181\n\tSYS_MQ_TIMEDSEND            = 182\n\tSYS_MQ_TIMEDRECEIVE         = 183\n\tSYS_MQ_NOTIFY               = 184\n\tSYS_MQ_GETSETATTR           = 185\n\tSYS_MSGGET                  = 186\n\tSYS_MSGCTL                  = 187\n\tSYS_MSGRCV                  = 188\n\tSYS_MSGSND                  = 189\n\tSYS_SEMGET                  = 190\n\tSYS_SEMCTL                  = 191\n\tSYS_SEMTIMEDOP              = 192\n\tSYS_SEMOP                   = 193\n\tSYS_SHMGET                  = 194\n\tSYS_SHMCTL                  = 195\n\tSYS_SHMAT                   = 196\n\tSYS_SHMDT                   = 197\n\tSYS_SOCKET                  = 198\n\tSYS_SOCKETPAIR              = 199\n\tSYS_BIND                    = 200\n\tSYS_LISTEN                  = 201\n\tSYS_ACCEPT                  = 202\n\tSYS_CONNECT                 = 203\n\tSYS_GETSOCKNAME             = 204\n\tSYS_GETPEERNAME             = 205\n\tSYS_SENDTO                  = 206\n\tSYS_RECVFROM                = 207\n\tSYS_SETSOCKOPT              = 208\n\tSYS_GETSOCKOPT              = 209\n\tSYS_SHUTDOWN                = 210\n\tSYS_SENDMSG                 = 211\n\tSYS_RECVMSG                 = 212\n\tSYS_READAHEAD               = 213\n\tSYS_BRK                     = 214\n\tSYS_MUNMAP                  = 215\n\tSYS_MREMAP                  = 216\n\tSYS_ADD_KEY                 = 217\n\tSYS_REQUEST_KEY             = 218\n\tSYS_KEYCTL                  = 219\n\tSYS_CLONE                   = 220\n\tSYS_EXECVE                  = 221\n\tSYS_MMAP                    = 222\n\tSYS_FADVISE64               = 223\n\tSYS_SWAPON                  = 224\n\tSYS_SWAPOFF                 = 225\n\tSYS_MPROTECT                = 226\n\tSYS_MSYNC                   = 227\n\tSYS_MLOCK                   = 228\n\tSYS_MUNLOCK                 = 229\n\tSYS_MLOCKALL                = 230\n\tSYS_MUNLOCKALL              = 231\n\tSYS_MINCORE                 = 232\n\tSYS_MADVISE                 = 233\n\tSYS_REMAP_FILE_PAGES        = 234\n\tSYS_MBIND                   = 235\n\tSYS_GET_MEMPOLICY           = 236\n\tSYS_SET_MEMPOLICY           = 237\n\tSYS_MIGRATE_PAGES           = 238\n\tSYS_MOVE_PAGES              = 239\n\tSYS_RT_TGSIGQUEUEINFO       = 240\n\tSYS_PERF_EVENT_OPEN         = 241\n\tSYS_ACCEPT4                 = 242\n\tSYS_RECVMMSG                = 243\n\tSYS_ARCH_SPECIFIC_SYSCALL   = 244\n\tSYS_RISCV_HWPROBE           = 258\n\tSYS_RISCV_FLUSH_ICACHE      = 259\n\tSYS_WAIT4                   = 260\n\tSYS_PRLIMIT64               = 261\n\tSYS_FANOTIFY_INIT           = 262\n\tSYS_FANOTIFY_MARK           = 263\n\tSYS_NAME_TO_HANDLE_AT       = 264\n\tSYS_OPEN_BY_HANDLE_AT       = 265\n\tSYS_CLOCK_ADJTIME           = 266\n\tSYS_SYNCFS                  = 267\n\tSYS_SETNS                   = 268\n\tSYS_SENDMMSG                = 269\n\tSYS_PROCESS_VM_READV        = 270\n\tSYS_PROCESS_VM_WRITEV       = 271\n\tSYS_KCMP                    = 272\n\tSYS_FINIT_MODULE            = 273\n\tSYS_SCHED_SETATTR           = 274\n\tSYS_SCHED_GETATTR           = 275\n\tSYS_RENAMEAT2               = 276\n\tSYS_SECCOMP                 = 277\n\tSYS_GETRANDOM               = 278\n\tSYS_MEMFD_CREATE            = 279\n\tSYS_BPF                     = 280\n\tSYS_EXECVEAT                = 281\n\tSYS_USERFAULTFD             = 282\n\tSYS_MEMBARRIER              = 283\n\tSYS_MLOCK2                  = 284\n\tSYS_COPY_FILE_RANGE         = 285\n\tSYS_PREADV2                 = 286\n\tSYS_PWRITEV2                = 287\n\tSYS_PKEY_MPROTECT           = 288\n\tSYS_PKEY_ALLOC              = 289\n\tSYS_PKEY_FREE               = 290\n\tSYS_STATX                   = 291\n\tSYS_IO_PGETEVENTS           = 292\n\tSYS_RSEQ                    = 293\n\tSYS_KEXEC_FILE_LOAD         = 294\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/s390x/include -fsigned-char /tmp/s390x/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build s390x && linux\n\npackage unix\n\nconst (\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_RESTART_SYSCALL         = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECVE                  = 11\n\tSYS_CHDIR                   = 12\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_MOUNT                   = 21\n\tSYS_UMOUNT                  = 22\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_RENAME                  = 38\n\tSYS_MKDIR                   = 39\n\tSYS_RMDIR                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_BRK                     = 45\n\tSYS_SIGNAL                  = 48\n\tSYS_ACCT                    = 51\n\tSYS_UMOUNT2                 = 52\n\tSYS_IOCTL                   = 54\n\tSYS_FCNTL                   = 55\n\tSYS_SETPGID                 = 57\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_USTAT                   = 62\n\tSYS_DUP2                    = 63\n\tSYS_GETPPID                 = 64\n\tSYS_GETPGRP                 = 65\n\tSYS_SETSID                  = 66\n\tSYS_SIGACTION               = 67\n\tSYS_SIGSUSPEND              = 72\n\tSYS_SIGPENDING              = 73\n\tSYS_SETHOSTNAME             = 74\n\tSYS_SETRLIMIT               = 75\n\tSYS_GETRUSAGE               = 77\n\tSYS_GETTIMEOFDAY            = 78\n\tSYS_SETTIMEOFDAY            = 79\n\tSYS_SYMLINK                 = 83\n\tSYS_READLINK                = 85\n\tSYS_USELIB                  = 86\n\tSYS_SWAPON                  = 87\n\tSYS_REBOOT                  = 88\n\tSYS_READDIR                 = 89\n\tSYS_MMAP                    = 90\n\tSYS_MUNMAP                  = 91\n\tSYS_TRUNCATE                = 92\n\tSYS_FTRUNCATE               = 93\n\tSYS_FCHMOD                  = 94\n\tSYS_GETPRIORITY             = 96\n\tSYS_SETPRIORITY             = 97\n\tSYS_STATFS                  = 99\n\tSYS_FSTATFS                 = 100\n\tSYS_SOCKETCALL              = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_SETITIMER               = 104\n\tSYS_GETITIMER               = 105\n\tSYS_STAT                    = 106\n\tSYS_LSTAT                   = 107\n\tSYS_FSTAT                   = 108\n\tSYS_LOOKUP_DCOOKIE          = 110\n\tSYS_VHANGUP                 = 111\n\tSYS_IDLE                    = 112\n\tSYS_WAIT4                   = 114\n\tSYS_SWAPOFF                 = 115\n\tSYS_SYSINFO                 = 116\n\tSYS_IPC                     = 117\n\tSYS_FSYNC                   = 118\n\tSYS_SIGRETURN               = 119\n\tSYS_CLONE                   = 120\n\tSYS_SETDOMAINNAME           = 121\n\tSYS_UNAME                   = 122\n\tSYS_ADJTIMEX                = 124\n\tSYS_MPROTECT                = 125\n\tSYS_SIGPROCMASK             = 126\n\tSYS_CREATE_MODULE           = 127\n\tSYS_INIT_MODULE             = 128\n\tSYS_DELETE_MODULE           = 129\n\tSYS_GET_KERNEL_SYMS         = 130\n\tSYS_QUOTACTL                = 131\n\tSYS_GETPGID                 = 132\n\tSYS_FCHDIR                  = 133\n\tSYS_BDFLUSH                 = 134\n\tSYS_SYSFS                   = 135\n\tSYS_PERSONALITY             = 136\n\tSYS_AFS_SYSCALL             = 137\n\tSYS_GETDENTS                = 141\n\tSYS_SELECT                  = 142\n\tSYS_FLOCK                   = 143\n\tSYS_MSYNC                   = 144\n\tSYS_READV                   = 145\n\tSYS_WRITEV                  = 146\n\tSYS_GETSID                  = 147\n\tSYS_FDATASYNC               = 148\n\tSYS__SYSCTL                 = 149\n\tSYS_MLOCK                   = 150\n\tSYS_MUNLOCK                 = 151\n\tSYS_MLOCKALL                = 152\n\tSYS_MUNLOCKALL              = 153\n\tSYS_SCHED_SETPARAM          = 154\n\tSYS_SCHED_GETPARAM          = 155\n\tSYS_SCHED_SETSCHEDULER      = 156\n\tSYS_SCHED_GETSCHEDULER      = 157\n\tSYS_SCHED_YIELD             = 158\n\tSYS_SCHED_GET_PRIORITY_MAX  = 159\n\tSYS_SCHED_GET_PRIORITY_MIN  = 160\n\tSYS_SCHED_RR_GET_INTERVAL   = 161\n\tSYS_NANOSLEEP               = 162\n\tSYS_MREMAP                  = 163\n\tSYS_QUERY_MODULE            = 167\n\tSYS_POLL                    = 168\n\tSYS_NFSSERVCTL              = 169\n\tSYS_PRCTL                   = 172\n\tSYS_RT_SIGRETURN            = 173\n\tSYS_RT_SIGACTION            = 174\n\tSYS_RT_SIGPROCMASK          = 175\n\tSYS_RT_SIGPENDING           = 176\n\tSYS_RT_SIGTIMEDWAIT         = 177\n\tSYS_RT_SIGQUEUEINFO         = 178\n\tSYS_RT_SIGSUSPEND           = 179\n\tSYS_PREAD64                 = 180\n\tSYS_PWRITE64                = 181\n\tSYS_GETCWD                  = 183\n\tSYS_CAPGET                  = 184\n\tSYS_CAPSET                  = 185\n\tSYS_SIGALTSTACK             = 186\n\tSYS_SENDFILE                = 187\n\tSYS_GETPMSG                 = 188\n\tSYS_PUTPMSG                 = 189\n\tSYS_VFORK                   = 190\n\tSYS_GETRLIMIT               = 191\n\tSYS_LCHOWN                  = 198\n\tSYS_GETUID                  = 199\n\tSYS_GETGID                  = 200\n\tSYS_GETEUID                 = 201\n\tSYS_GETEGID                 = 202\n\tSYS_SETREUID                = 203\n\tSYS_SETREGID                = 204\n\tSYS_GETGROUPS               = 205\n\tSYS_SETGROUPS               = 206\n\tSYS_FCHOWN                  = 207\n\tSYS_SETRESUID               = 208\n\tSYS_GETRESUID               = 209\n\tSYS_SETRESGID               = 210\n\tSYS_GETRESGID               = 211\n\tSYS_CHOWN                   = 212\n\tSYS_SETUID                  = 213\n\tSYS_SETGID                  = 214\n\tSYS_SETFSUID                = 215\n\tSYS_SETFSGID                = 216\n\tSYS_PIVOT_ROOT              = 217\n\tSYS_MINCORE                 = 218\n\tSYS_MADVISE                 = 219\n\tSYS_GETDENTS64              = 220\n\tSYS_READAHEAD               = 222\n\tSYS_SETXATTR                = 224\n\tSYS_LSETXATTR               = 225\n\tSYS_FSETXATTR               = 226\n\tSYS_GETXATTR                = 227\n\tSYS_LGETXATTR               = 228\n\tSYS_FGETXATTR               = 229\n\tSYS_LISTXATTR               = 230\n\tSYS_LLISTXATTR              = 231\n\tSYS_FLISTXATTR              = 232\n\tSYS_REMOVEXATTR             = 233\n\tSYS_LREMOVEXATTR            = 234\n\tSYS_FREMOVEXATTR            = 235\n\tSYS_GETTID                  = 236\n\tSYS_TKILL                   = 237\n\tSYS_FUTEX                   = 238\n\tSYS_SCHED_SETAFFINITY       = 239\n\tSYS_SCHED_GETAFFINITY       = 240\n\tSYS_TGKILL                  = 241\n\tSYS_IO_SETUP                = 243\n\tSYS_IO_DESTROY              = 244\n\tSYS_IO_GETEVENTS            = 245\n\tSYS_IO_SUBMIT               = 246\n\tSYS_IO_CANCEL               = 247\n\tSYS_EXIT_GROUP              = 248\n\tSYS_EPOLL_CREATE            = 249\n\tSYS_EPOLL_CTL               = 250\n\tSYS_EPOLL_WAIT              = 251\n\tSYS_SET_TID_ADDRESS         = 252\n\tSYS_FADVISE64               = 253\n\tSYS_TIMER_CREATE            = 254\n\tSYS_TIMER_SETTIME           = 255\n\tSYS_TIMER_GETTIME           = 256\n\tSYS_TIMER_GETOVERRUN        = 257\n\tSYS_TIMER_DELETE            = 258\n\tSYS_CLOCK_SETTIME           = 259\n\tSYS_CLOCK_GETTIME           = 260\n\tSYS_CLOCK_GETRES            = 261\n\tSYS_CLOCK_NANOSLEEP         = 262\n\tSYS_STATFS64                = 265\n\tSYS_FSTATFS64               = 266\n\tSYS_REMAP_FILE_PAGES        = 267\n\tSYS_MBIND                   = 268\n\tSYS_GET_MEMPOLICY           = 269\n\tSYS_SET_MEMPOLICY           = 270\n\tSYS_MQ_OPEN                 = 271\n\tSYS_MQ_UNLINK               = 272\n\tSYS_MQ_TIMEDSEND            = 273\n\tSYS_MQ_TIMEDRECEIVE         = 274\n\tSYS_MQ_NOTIFY               = 275\n\tSYS_MQ_GETSETATTR           = 276\n\tSYS_KEXEC_LOAD              = 277\n\tSYS_ADD_KEY                 = 278\n\tSYS_REQUEST_KEY             = 279\n\tSYS_KEYCTL                  = 280\n\tSYS_WAITID                  = 281\n\tSYS_IOPRIO_SET              = 282\n\tSYS_IOPRIO_GET              = 283\n\tSYS_INOTIFY_INIT            = 284\n\tSYS_INOTIFY_ADD_WATCH       = 285\n\tSYS_INOTIFY_RM_WATCH        = 286\n\tSYS_MIGRATE_PAGES           = 287\n\tSYS_OPENAT                  = 288\n\tSYS_MKDIRAT                 = 289\n\tSYS_MKNODAT                 = 290\n\tSYS_FCHOWNAT                = 291\n\tSYS_FUTIMESAT               = 292\n\tSYS_NEWFSTATAT              = 293\n\tSYS_UNLINKAT                = 294\n\tSYS_RENAMEAT                = 295\n\tSYS_LINKAT                  = 296\n\tSYS_SYMLINKAT               = 297\n\tSYS_READLINKAT              = 298\n\tSYS_FCHMODAT                = 299\n\tSYS_FACCESSAT               = 300\n\tSYS_PSELECT6                = 301\n\tSYS_PPOLL                   = 302\n\tSYS_UNSHARE                 = 303\n\tSYS_SET_ROBUST_LIST         = 304\n\tSYS_GET_ROBUST_LIST         = 305\n\tSYS_SPLICE                  = 306\n\tSYS_SYNC_FILE_RANGE         = 307\n\tSYS_TEE                     = 308\n\tSYS_VMSPLICE                = 309\n\tSYS_MOVE_PAGES              = 310\n\tSYS_GETCPU                  = 311\n\tSYS_EPOLL_PWAIT             = 312\n\tSYS_UTIMES                  = 313\n\tSYS_FALLOCATE               = 314\n\tSYS_UTIMENSAT               = 315\n\tSYS_SIGNALFD                = 316\n\tSYS_TIMERFD                 = 317\n\tSYS_EVENTFD                 = 318\n\tSYS_TIMERFD_CREATE          = 319\n\tSYS_TIMERFD_SETTIME         = 320\n\tSYS_TIMERFD_GETTIME         = 321\n\tSYS_SIGNALFD4               = 322\n\tSYS_EVENTFD2                = 323\n\tSYS_INOTIFY_INIT1           = 324\n\tSYS_PIPE2                   = 325\n\tSYS_DUP3                    = 326\n\tSYS_EPOLL_CREATE1           = 327\n\tSYS_PREADV                  = 328\n\tSYS_PWRITEV                 = 329\n\tSYS_RT_TGSIGQUEUEINFO       = 330\n\tSYS_PERF_EVENT_OPEN         = 331\n\tSYS_FANOTIFY_INIT           = 332\n\tSYS_FANOTIFY_MARK           = 333\n\tSYS_PRLIMIT64               = 334\n\tSYS_NAME_TO_HANDLE_AT       = 335\n\tSYS_OPEN_BY_HANDLE_AT       = 336\n\tSYS_CLOCK_ADJTIME           = 337\n\tSYS_SYNCFS                  = 338\n\tSYS_SETNS                   = 339\n\tSYS_PROCESS_VM_READV        = 340\n\tSYS_PROCESS_VM_WRITEV       = 341\n\tSYS_S390_RUNTIME_INSTR      = 342\n\tSYS_KCMP                    = 343\n\tSYS_FINIT_MODULE            = 344\n\tSYS_SCHED_SETATTR           = 345\n\tSYS_SCHED_GETATTR           = 346\n\tSYS_RENAMEAT2               = 347\n\tSYS_SECCOMP                 = 348\n\tSYS_GETRANDOM               = 349\n\tSYS_MEMFD_CREATE            = 350\n\tSYS_BPF                     = 351\n\tSYS_S390_PCI_MMIO_WRITE     = 352\n\tSYS_S390_PCI_MMIO_READ      = 353\n\tSYS_EXECVEAT                = 354\n\tSYS_USERFAULTFD             = 355\n\tSYS_MEMBARRIER              = 356\n\tSYS_RECVMMSG                = 357\n\tSYS_SENDMMSG                = 358\n\tSYS_SOCKET                  = 359\n\tSYS_SOCKETPAIR              = 360\n\tSYS_BIND                    = 361\n\tSYS_CONNECT                 = 362\n\tSYS_LISTEN                  = 363\n\tSYS_ACCEPT4                 = 364\n\tSYS_GETSOCKOPT              = 365\n\tSYS_SETSOCKOPT              = 366\n\tSYS_GETSOCKNAME             = 367\n\tSYS_GETPEERNAME             = 368\n\tSYS_SENDTO                  = 369\n\tSYS_SENDMSG                 = 370\n\tSYS_RECVFROM                = 371\n\tSYS_RECVMSG                 = 372\n\tSYS_SHUTDOWN                = 373\n\tSYS_MLOCK2                  = 374\n\tSYS_COPY_FILE_RANGE         = 375\n\tSYS_PREADV2                 = 376\n\tSYS_PWRITEV2                = 377\n\tSYS_S390_GUARDED_STORAGE    = 378\n\tSYS_STATX                   = 379\n\tSYS_S390_STHYI              = 380\n\tSYS_KEXEC_FILE_LOAD         = 381\n\tSYS_IO_PGETEVENTS           = 382\n\tSYS_RSEQ                    = 383\n\tSYS_PKEY_MPROTECT           = 384\n\tSYS_PKEY_ALLOC              = 385\n\tSYS_PKEY_FREE               = 386\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/sparc64/include /tmp/sparc64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build sparc64 && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL         = 0\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_WAIT4                   = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECV                   = 11\n\tSYS_CHDIR                   = 12\n\tSYS_CHOWN                   = 13\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LCHOWN                  = 16\n\tSYS_BRK                     = 17\n\tSYS_PERFCTR                 = 18\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_CAPGET                  = 21\n\tSYS_CAPSET                  = 22\n\tSYS_SETUID                  = 23\n\tSYS_GETUID                  = 24\n\tSYS_VMSPLICE                = 25\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_SIGALTSTACK             = 28\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_STAT                    = 38\n\tSYS_SENDFILE                = 39\n\tSYS_LSTAT                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_UMOUNT2                 = 45\n\tSYS_SETGID                  = 46\n\tSYS_GETGID                  = 47\n\tSYS_SIGNAL                  = 48\n\tSYS_GETEUID                 = 49\n\tSYS_GETEGID                 = 50\n\tSYS_ACCT                    = 51\n\tSYS_MEMORY_ORDERING         = 52\n\tSYS_IOCTL                   = 54\n\tSYS_REBOOT                  = 55\n\tSYS_SYMLINK                 = 57\n\tSYS_READLINK                = 58\n\tSYS_EXECVE                  = 59\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_FSTAT                   = 62\n\tSYS_FSTAT64                 = 63\n\tSYS_GETPAGESIZE             = 64\n\tSYS_MSYNC                   = 65\n\tSYS_VFORK                   = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_MMAP                    = 71\n\tSYS_MUNMAP                  = 73\n\tSYS_MPROTECT                = 74\n\tSYS_MADVISE                 = 75\n\tSYS_VHANGUP                 = 76\n\tSYS_MINCORE                 = 78\n\tSYS_GETGROUPS               = 79\n\tSYS_SETGROUPS               = 80\n\tSYS_GETPGRP                 = 81\n\tSYS_SETITIMER               = 83\n\tSYS_SWAPON                  = 85\n\tSYS_GETITIMER               = 86\n\tSYS_SETHOSTNAME             = 88\n\tSYS_DUP2                    = 90\n\tSYS_FCNTL                   = 92\n\tSYS_SELECT                  = 93\n\tSYS_FSYNC                   = 95\n\tSYS_SETPRIORITY             = 96\n\tSYS_SOCKET                  = 97\n\tSYS_CONNECT                 = 98\n\tSYS_ACCEPT                  = 99\n\tSYS_GETPRIORITY             = 100\n\tSYS_RT_SIGRETURN            = 101\n\tSYS_RT_SIGACTION            = 102\n\tSYS_RT_SIGPROCMASK          = 103\n\tSYS_RT_SIGPENDING           = 104\n\tSYS_RT_SIGTIMEDWAIT         = 105\n\tSYS_RT_SIGQUEUEINFO         = 106\n\tSYS_RT_SIGSUSPEND           = 107\n\tSYS_SETRESUID               = 108\n\tSYS_GETRESUID               = 109\n\tSYS_SETRESGID               = 110\n\tSYS_GETRESGID               = 111\n\tSYS_RECVMSG                 = 113\n\tSYS_SENDMSG                 = 114\n\tSYS_GETTIMEOFDAY            = 116\n\tSYS_GETRUSAGE               = 117\n\tSYS_GETSOCKOPT              = 118\n\tSYS_GETCWD                  = 119\n\tSYS_READV                   = 120\n\tSYS_WRITEV                  = 121\n\tSYS_SETTIMEOFDAY            = 122\n\tSYS_FCHOWN                  = 123\n\tSYS_FCHMOD                  = 124\n\tSYS_RECVFROM                = 125\n\tSYS_SETREUID                = 126\n\tSYS_SETREGID                = 127\n\tSYS_RENAME                  = 128\n\tSYS_TRUNCATE                = 129\n\tSYS_FTRUNCATE               = 130\n\tSYS_FLOCK                   = 131\n\tSYS_LSTAT64                 = 132\n\tSYS_SENDTO                  = 133\n\tSYS_SHUTDOWN                = 134\n\tSYS_SOCKETPAIR              = 135\n\tSYS_MKDIR                   = 136\n\tSYS_RMDIR                   = 137\n\tSYS_UTIMES                  = 138\n\tSYS_STAT64                  = 139\n\tSYS_SENDFILE64              = 140\n\tSYS_GETPEERNAME             = 141\n\tSYS_FUTEX                   = 142\n\tSYS_GETTID                  = 143\n\tSYS_GETRLIMIT               = 144\n\tSYS_SETRLIMIT               = 145\n\tSYS_PIVOT_ROOT              = 146\n\tSYS_PRCTL                   = 147\n\tSYS_PCICONFIG_READ          = 148\n\tSYS_PCICONFIG_WRITE         = 149\n\tSYS_GETSOCKNAME             = 150\n\tSYS_INOTIFY_INIT            = 151\n\tSYS_INOTIFY_ADD_WATCH       = 152\n\tSYS_POLL                    = 153\n\tSYS_GETDENTS64              = 154\n\tSYS_INOTIFY_RM_WATCH        = 156\n\tSYS_STATFS                  = 157\n\tSYS_FSTATFS                 = 158\n\tSYS_UMOUNT                  = 159\n\tSYS_SCHED_SET_AFFINITY      = 160\n\tSYS_SCHED_GET_AFFINITY      = 161\n\tSYS_GETDOMAINNAME           = 162\n\tSYS_SETDOMAINNAME           = 163\n\tSYS_UTRAP_INSTALL           = 164\n\tSYS_QUOTACTL                = 165\n\tSYS_SET_TID_ADDRESS         = 166\n\tSYS_MOUNT                   = 167\n\tSYS_USTAT                   = 168\n\tSYS_SETXATTR                = 169\n\tSYS_LSETXATTR               = 170\n\tSYS_FSETXATTR               = 171\n\tSYS_GETXATTR                = 172\n\tSYS_LGETXATTR               = 173\n\tSYS_GETDENTS                = 174\n\tSYS_SETSID                  = 175\n\tSYS_FCHDIR                  = 176\n\tSYS_FGETXATTR               = 177\n\tSYS_LISTXATTR               = 178\n\tSYS_LLISTXATTR              = 179\n\tSYS_FLISTXATTR              = 180\n\tSYS_REMOVEXATTR             = 181\n\tSYS_LREMOVEXATTR            = 182\n\tSYS_SIGPENDING              = 183\n\tSYS_QUERY_MODULE            = 184\n\tSYS_SETPGID                 = 185\n\tSYS_FREMOVEXATTR            = 186\n\tSYS_TKILL                   = 187\n\tSYS_EXIT_GROUP              = 188\n\tSYS_UNAME                   = 189\n\tSYS_INIT_MODULE             = 190\n\tSYS_PERSONALITY             = 191\n\tSYS_REMAP_FILE_PAGES        = 192\n\tSYS_EPOLL_CREATE            = 193\n\tSYS_EPOLL_CTL               = 194\n\tSYS_EPOLL_WAIT              = 195\n\tSYS_IOPRIO_SET              = 196\n\tSYS_GETPPID                 = 197\n\tSYS_SIGACTION               = 198\n\tSYS_SGETMASK                = 199\n\tSYS_SSETMASK                = 200\n\tSYS_SIGSUSPEND              = 201\n\tSYS_OLDLSTAT                = 202\n\tSYS_USELIB                  = 203\n\tSYS_READDIR                 = 204\n\tSYS_READAHEAD               = 205\n\tSYS_SOCKETCALL              = 206\n\tSYS_SYSLOG                  = 207\n\tSYS_LOOKUP_DCOOKIE          = 208\n\tSYS_FADVISE64               = 209\n\tSYS_FADVISE64_64            = 210\n\tSYS_TGKILL                  = 211\n\tSYS_WAITPID                 = 212\n\tSYS_SWAPOFF                 = 213\n\tSYS_SYSINFO                 = 214\n\tSYS_IPC                     = 215\n\tSYS_SIGRETURN               = 216\n\tSYS_CLONE                   = 217\n\tSYS_IOPRIO_GET              = 218\n\tSYS_ADJTIMEX                = 219\n\tSYS_SIGPROCMASK             = 220\n\tSYS_CREATE_MODULE           = 221\n\tSYS_DELETE_MODULE           = 222\n\tSYS_GET_KERNEL_SYMS         = 223\n\tSYS_GETPGID                 = 224\n\tSYS_BDFLUSH                 = 225\n\tSYS_SYSFS                   = 226\n\tSYS_AFS_SYSCALL             = 227\n\tSYS_SETFSUID                = 228\n\tSYS_SETFSGID                = 229\n\tSYS__NEWSELECT              = 230\n\tSYS_SPLICE                  = 232\n\tSYS_STIME                   = 233\n\tSYS_STATFS64                = 234\n\tSYS_FSTATFS64               = 235\n\tSYS__LLSEEK                 = 236\n\tSYS_MLOCK                   = 237\n\tSYS_MUNLOCK                 = 238\n\tSYS_MLOCKALL                = 239\n\tSYS_MUNLOCKALL              = 240\n\tSYS_SCHED_SETPARAM          = 241\n\tSYS_SCHED_GETPARAM          = 242\n\tSYS_SCHED_SETSCHEDULER      = 243\n\tSYS_SCHED_GETSCHEDULER      = 244\n\tSYS_SCHED_YIELD             = 245\n\tSYS_SCHED_GET_PRIORITY_MAX  = 246\n\tSYS_SCHED_GET_PRIORITY_MIN  = 247\n\tSYS_SCHED_RR_GET_INTERVAL   = 248\n\tSYS_NANOSLEEP               = 249\n\tSYS_MREMAP                  = 250\n\tSYS__SYSCTL                 = 251\n\tSYS_GETSID                  = 252\n\tSYS_FDATASYNC               = 253\n\tSYS_NFSSERVCTL              = 254\n\tSYS_SYNC_FILE_RANGE         = 255\n\tSYS_CLOCK_SETTIME           = 256\n\tSYS_CLOCK_GETTIME           = 257\n\tSYS_CLOCK_GETRES            = 258\n\tSYS_CLOCK_NANOSLEEP         = 259\n\tSYS_SCHED_GETAFFINITY       = 260\n\tSYS_SCHED_SETAFFINITY       = 261\n\tSYS_TIMER_SETTIME           = 262\n\tSYS_TIMER_GETTIME           = 263\n\tSYS_TIMER_GETOVERRUN        = 264\n\tSYS_TIMER_DELETE            = 265\n\tSYS_TIMER_CREATE            = 266\n\tSYS_VSERVER                 = 267\n\tSYS_IO_SETUP                = 268\n\tSYS_IO_DESTROY              = 269\n\tSYS_IO_SUBMIT               = 270\n\tSYS_IO_CANCEL               = 271\n\tSYS_IO_GETEVENTS            = 272\n\tSYS_MQ_OPEN                 = 273\n\tSYS_MQ_UNLINK               = 274\n\tSYS_MQ_TIMEDSEND            = 275\n\tSYS_MQ_TIMEDRECEIVE         = 276\n\tSYS_MQ_NOTIFY               = 277\n\tSYS_MQ_GETSETATTR           = 278\n\tSYS_WAITID                  = 279\n\tSYS_TEE                     = 280\n\tSYS_ADD_KEY                 = 281\n\tSYS_REQUEST_KEY             = 282\n\tSYS_KEYCTL                  = 283\n\tSYS_OPENAT                  = 284\n\tSYS_MKDIRAT                 = 285\n\tSYS_MKNODAT                 = 286\n\tSYS_FCHOWNAT                = 287\n\tSYS_FUTIMESAT               = 288\n\tSYS_FSTATAT64               = 289\n\tSYS_UNLINKAT                = 290\n\tSYS_RENAMEAT                = 291\n\tSYS_LINKAT                  = 292\n\tSYS_SYMLINKAT               = 293\n\tSYS_READLINKAT              = 294\n\tSYS_FCHMODAT                = 295\n\tSYS_FACCESSAT               = 296\n\tSYS_PSELECT6                = 297\n\tSYS_PPOLL                   = 298\n\tSYS_UNSHARE                 = 299\n\tSYS_SET_ROBUST_LIST         = 300\n\tSYS_GET_ROBUST_LIST         = 301\n\tSYS_MIGRATE_PAGES           = 302\n\tSYS_MBIND                   = 303\n\tSYS_GET_MEMPOLICY           = 304\n\tSYS_SET_MEMPOLICY           = 305\n\tSYS_KEXEC_LOAD              = 306\n\tSYS_MOVE_PAGES              = 307\n\tSYS_GETCPU                  = 308\n\tSYS_EPOLL_PWAIT             = 309\n\tSYS_UTIMENSAT               = 310\n\tSYS_SIGNALFD                = 311\n\tSYS_TIMERFD_CREATE          = 312\n\tSYS_EVENTFD                 = 313\n\tSYS_FALLOCATE               = 314\n\tSYS_TIMERFD_SETTIME         = 315\n\tSYS_TIMERFD_GETTIME         = 316\n\tSYS_SIGNALFD4               = 317\n\tSYS_EVENTFD2                = 318\n\tSYS_EPOLL_CREATE1           = 319\n\tSYS_DUP3                    = 320\n\tSYS_PIPE2                   = 321\n\tSYS_INOTIFY_INIT1           = 322\n\tSYS_ACCEPT4                 = 323\n\tSYS_PREADV                  = 324\n\tSYS_PWRITEV                 = 325\n\tSYS_RT_TGSIGQUEUEINFO       = 326\n\tSYS_PERF_EVENT_OPEN         = 327\n\tSYS_RECVMMSG                = 328\n\tSYS_FANOTIFY_INIT           = 329\n\tSYS_FANOTIFY_MARK           = 330\n\tSYS_PRLIMIT64               = 331\n\tSYS_NAME_TO_HANDLE_AT       = 332\n\tSYS_OPEN_BY_HANDLE_AT       = 333\n\tSYS_CLOCK_ADJTIME           = 334\n\tSYS_SYNCFS                  = 335\n\tSYS_SENDMMSG                = 336\n\tSYS_SETNS                   = 337\n\tSYS_PROCESS_VM_READV        = 338\n\tSYS_PROCESS_VM_WRITEV       = 339\n\tSYS_KERN_FEATURES           = 340\n\tSYS_KCMP                    = 341\n\tSYS_FINIT_MODULE            = 342\n\tSYS_SCHED_SETATTR           = 343\n\tSYS_SCHED_GETATTR           = 344\n\tSYS_RENAMEAT2               = 345\n\tSYS_SECCOMP                 = 346\n\tSYS_GETRANDOM               = 347\n\tSYS_MEMFD_CREATE            = 348\n\tSYS_BPF                     = 349\n\tSYS_EXECVEAT                = 350\n\tSYS_MEMBARRIER              = 351\n\tSYS_USERFAULTFD             = 352\n\tSYS_BIND                    = 353\n\tSYS_LISTEN                  = 354\n\tSYS_SETSOCKOPT              = 355\n\tSYS_MLOCK2                  = 356\n\tSYS_COPY_FILE_RANGE         = 357\n\tSYS_PREADV2                 = 358\n\tSYS_PWRITEV2                = 359\n\tSYS_STATX                   = 360\n\tSYS_IO_PGETEVENTS           = 361\n\tSYS_PKEY_MPROTECT           = 362\n\tSYS_PKEY_ALLOC              = 363\n\tSYS_PKEY_FREE               = 364\n\tSYS_RSEQ                    = 365\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build arm64 && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_MSYSCALL       = 37  // { int sys_msyscall(void *addr, size_t len); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS___REALPATH     = 115 // { int sys___realpath(const char *pathname, char *resolved); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS___TMPFD        = 164 // { int sys___tmpfd(int flags); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go",
    "content": "// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build zos && s390x\n\npackage unix\n\nconst (\n\tSYS_LOG                             = 0x17  // 23\n\tSYS_COSH                            = 0x18  // 24\n\tSYS_TANH                            = 0x19  // 25\n\tSYS_EXP                             = 0x1A  // 26\n\tSYS_MODF                            = 0x1B  // 27\n\tSYS_LOG10                           = 0x1C  // 28\n\tSYS_FREXP                           = 0x1D  // 29\n\tSYS_LDEXP                           = 0x1E  // 30\n\tSYS_CEIL                            = 0x1F  // 31\n\tSYS_POW                             = 0x20  // 32\n\tSYS_SQRT                            = 0x21  // 33\n\tSYS_FLOOR                           = 0x22  // 34\n\tSYS_J1                              = 0x23  // 35\n\tSYS_FABS                            = 0x24  // 36\n\tSYS_FMOD                            = 0x25  // 37\n\tSYS_J0                              = 0x26  // 38\n\tSYS_YN                              = 0x27  // 39\n\tSYS_JN                              = 0x28  // 40\n\tSYS_Y0                              = 0x29  // 41\n\tSYS_Y1                              = 0x2A  // 42\n\tSYS_HYPOT                           = 0x2B  // 43\n\tSYS_ERF                             = 0x2C  // 44\n\tSYS_ERFC                            = 0x2D  // 45\n\tSYS_GAMMA                           = 0x2E  // 46\n\tSYS_ISALPHA                         = 0x30  // 48\n\tSYS_ISALNUM                         = 0x31  // 49\n\tSYS_ISLOWER                         = 0x32  // 50\n\tSYS_ISCNTRL                         = 0x33  // 51\n\tSYS_ISDIGIT                         = 0x34  // 52\n\tSYS_ISGRAPH                         = 0x35  // 53\n\tSYS_ISUPPER                         = 0x36  // 54\n\tSYS_ISPRINT                         = 0x37  // 55\n\tSYS_ISPUNCT                         = 0x38  // 56\n\tSYS_ISSPACE                         = 0x39  // 57\n\tSYS_SETLOCAL                        = 0x3A  // 58\n\tSYS_SETLOCALE                       = 0x3A  // 58\n\tSYS_ISXDIGIT                        = 0x3B  // 59\n\tSYS_TOLOWER                         = 0x3C  // 60\n\tSYS_TOUPPER                         = 0x3D  // 61\n\tSYS_ASIN                            = 0x3E  // 62\n\tSYS_SIN                             = 0x3F  // 63\n\tSYS_COS                             = 0x40  // 64\n\tSYS_TAN                             = 0x41  // 65\n\tSYS_SINH                            = 0x42  // 66\n\tSYS_ACOS                            = 0x43  // 67\n\tSYS_ATAN                            = 0x44  // 68\n\tSYS_ATAN2                           = 0x45  // 69\n\tSYS_FTELL                           = 0x46  // 70\n\tSYS_FGETPOS                         = 0x47  // 71\n\tSYS_FSEEK                           = 0x48  // 72\n\tSYS_FSETPOS                         = 0x49  // 73\n\tSYS_FERROR                          = 0x4A  // 74\n\tSYS_REWIND                          = 0x4B  // 75\n\tSYS_CLEARERR                        = 0x4C  // 76\n\tSYS_FEOF                            = 0x4D  // 77\n\tSYS_ATOL                            = 0x4E  // 78\n\tSYS_PERROR                          = 0x4F  // 79\n\tSYS_ATOF                            = 0x50  // 80\n\tSYS_ATOI                            = 0x51  // 81\n\tSYS_RAND                            = 0x52  // 82\n\tSYS_STRTOD                          = 0x53  // 83\n\tSYS_STRTOL                          = 0x54  // 84\n\tSYS_STRTOUL                         = 0x55  // 85\n\tSYS_MALLOC                          = 0x56  // 86\n\tSYS_SRAND                           = 0x57  // 87\n\tSYS_CALLOC                          = 0x58  // 88\n\tSYS_FREE                            = 0x59  // 89\n\tSYS_EXIT                            = 0x5A  // 90\n\tSYS_REALLOC                         = 0x5B  // 91\n\tSYS_ABORT                           = 0x5C  // 92\n\tSYS___ABORT                         = 0x5C  // 92\n\tSYS_ATEXIT                          = 0x5D  // 93\n\tSYS_RAISE                           = 0x5E  // 94\n\tSYS_SETJMP                          = 0x5F  // 95\n\tSYS_LONGJMP                         = 0x60  // 96\n\tSYS_SIGNAL                          = 0x61  // 97\n\tSYS_TMPNAM                          = 0x62  // 98\n\tSYS_REMOVE                          = 0x63  // 99\n\tSYS_RENAME                          = 0x64  // 100\n\tSYS_TMPFILE                         = 0x65  // 101\n\tSYS_FREOPEN                         = 0x66  // 102\n\tSYS_FCLOSE                          = 0x67  // 103\n\tSYS_FFLUSH                          = 0x68  // 104\n\tSYS_FOPEN                           = 0x69  // 105\n\tSYS_FSCANF                          = 0x6A  // 106\n\tSYS_SETBUF                          = 0x6B  // 107\n\tSYS_SETVBUF                         = 0x6C  // 108\n\tSYS_FPRINTF                         = 0x6D  // 109\n\tSYS_SSCANF                          = 0x6E  // 110\n\tSYS_PRINTF                          = 0x6F  // 111\n\tSYS_SCANF                           = 0x70  // 112\n\tSYS_SPRINTF                         = 0x71  // 113\n\tSYS_FGETC                           = 0x72  // 114\n\tSYS_VFPRINTF                        = 0x73  // 115\n\tSYS_VPRINTF                         = 0x74  // 116\n\tSYS_VSPRINTF                        = 0x75  // 117\n\tSYS_GETC                            = 0x76  // 118\n\tSYS_FGETS                           = 0x77  // 119\n\tSYS_FPUTC                           = 0x78  // 120\n\tSYS_FPUTS                           = 0x79  // 121\n\tSYS_PUTCHAR                         = 0x7A  // 122\n\tSYS_GETCHAR                         = 0x7B  // 123\n\tSYS_GETS                            = 0x7C  // 124\n\tSYS_PUTC                            = 0x7D  // 125\n\tSYS_FWRITE                          = 0x7E  // 126\n\tSYS_PUTS                            = 0x7F  // 127\n\tSYS_UNGETC                          = 0x80  // 128\n\tSYS_FREAD                           = 0x81  // 129\n\tSYS_WCSTOMBS                        = 0x82  // 130\n\tSYS_MBTOWC                          = 0x83  // 131\n\tSYS_WCTOMB                          = 0x84  // 132\n\tSYS_MBSTOWCS                        = 0x85  // 133\n\tSYS_WCSCPY                          = 0x86  // 134\n\tSYS_WCSCAT                          = 0x87  // 135\n\tSYS_WCSCHR                          = 0x88  // 136\n\tSYS_WCSCMP                          = 0x89  // 137\n\tSYS_WCSNCMP                         = 0x8A  // 138\n\tSYS_WCSCSPN                         = 0x8B  // 139\n\tSYS_WCSLEN                          = 0x8C  // 140\n\tSYS_WCSNCAT                         = 0x8D  // 141\n\tSYS_WCSSPN                          = 0x8E  // 142\n\tSYS_WCSNCPY                         = 0x8F  // 143\n\tSYS_ABS                             = 0x90  // 144\n\tSYS_DIV                             = 0x91  // 145\n\tSYS_LABS                            = 0x92  // 146\n\tSYS_STRNCPY                         = 0x93  // 147\n\tSYS_MEMCPY                          = 0x94  // 148\n\tSYS_MEMMOVE                         = 0x95  // 149\n\tSYS_STRCPY                          = 0x96  // 150\n\tSYS_STRCMP                          = 0x97  // 151\n\tSYS_STRCAT                          = 0x98  // 152\n\tSYS_STRNCAT                         = 0x99  // 153\n\tSYS_MEMCMP                          = 0x9A  // 154\n\tSYS_MEMCHR                          = 0x9B  // 155\n\tSYS_STRCOLL                         = 0x9C  // 156\n\tSYS_STRNCMP                         = 0x9D  // 157\n\tSYS_STRXFRM                         = 0x9E  // 158\n\tSYS_STRRCHR                         = 0x9F  // 159\n\tSYS_STRCHR                          = 0xA0  // 160\n\tSYS_STRCSPN                         = 0xA1  // 161\n\tSYS_STRPBRK                         = 0xA2  // 162\n\tSYS_MEMSET                          = 0xA3  // 163\n\tSYS_STRSPN                          = 0xA4  // 164\n\tSYS_STRSTR                          = 0xA5  // 165\n\tSYS_STRTOK                          = 0xA6  // 166\n\tSYS_DIFFTIME                        = 0xA7  // 167\n\tSYS_STRERROR                        = 0xA8  // 168\n\tSYS_STRLEN                          = 0xA9  // 169\n\tSYS_CLOCK                           = 0xAA  // 170\n\tSYS_CTIME                           = 0xAB  // 171\n\tSYS_MKTIME                          = 0xAC  // 172\n\tSYS_TIME                            = 0xAD  // 173\n\tSYS_ASCTIME                         = 0xAE  // 174\n\tSYS_MBLEN                           = 0xAF  // 175\n\tSYS_GMTIME                          = 0xB0  // 176\n\tSYS_LOCALTIM                        = 0xB1  // 177\n\tSYS_LOCALTIME                       = 0xB1  // 177\n\tSYS_STRFTIME                        = 0xB2  // 178\n\tSYS___GETCB                         = 0xB4  // 180\n\tSYS_FUPDATE                         = 0xB5  // 181\n\tSYS___FUPDT                         = 0xB5  // 181\n\tSYS_CLRMEMF                         = 0xBD  // 189\n\tSYS___CLRMF                         = 0xBD  // 189\n\tSYS_FETCHEP                         = 0xBF  // 191\n\tSYS___FTCHEP                        = 0xBF  // 191\n\tSYS_FLDATA                          = 0xC1  // 193\n\tSYS___FLDATA                        = 0xC1  // 193\n\tSYS_DYNFREE                         = 0xC2  // 194\n\tSYS___DYNFRE                        = 0xC2  // 194\n\tSYS_DYNALLOC                        = 0xC3  // 195\n\tSYS___DYNALL                        = 0xC3  // 195\n\tSYS___CDUMP                         = 0xC4  // 196\n\tSYS_CSNAP                           = 0xC5  // 197\n\tSYS___CSNAP                         = 0xC5  // 197\n\tSYS_CTRACE                          = 0xC6  // 198\n\tSYS___CTRACE                        = 0xC6  // 198\n\tSYS___CTEST                         = 0xC7  // 199\n\tSYS_SETENV                          = 0xC8  // 200\n\tSYS___SETENV                        = 0xC8  // 200\n\tSYS_CLEARENV                        = 0xC9  // 201\n\tSYS___CLRENV                        = 0xC9  // 201\n\tSYS___REGCOMP_STD                   = 0xEA  // 234\n\tSYS_NL_LANGINFO                     = 0xFC  // 252\n\tSYS_GETSYNTX                        = 0xFD  // 253\n\tSYS_ISBLANK                         = 0xFE  // 254\n\tSYS___ISBLNK                        = 0xFE  // 254\n\tSYS_ISWALNUM                        = 0xFF  // 255\n\tSYS_ISWALPHA                        = 0x100 // 256\n\tSYS_ISWBLANK                        = 0x101 // 257\n\tSYS___ISWBLK                        = 0x101 // 257\n\tSYS_ISWCNTRL                        = 0x102 // 258\n\tSYS_ISWDIGIT                        = 0x103 // 259\n\tSYS_ISWGRAPH                        = 0x104 // 260\n\tSYS_ISWLOWER                        = 0x105 // 261\n\tSYS_ISWPRINT                        = 0x106 // 262\n\tSYS_ISWPUNCT                        = 0x107 // 263\n\tSYS_ISWSPACE                        = 0x108 // 264\n\tSYS_ISWUPPER                        = 0x109 // 265\n\tSYS_ISWXDIGI                        = 0x10A // 266\n\tSYS_ISWXDIGIT                       = 0x10A // 266\n\tSYS_WCTYPE                          = 0x10B // 267\n\tSYS_ISWCTYPE                        = 0x10C // 268\n\tSYS_TOWLOWER                        = 0x10D // 269\n\tSYS_TOWUPPER                        = 0x10E // 270\n\tSYS_MBSINIT                         = 0x10F // 271\n\tSYS_WCTOB                           = 0x110 // 272\n\tSYS_MBRLEN                          = 0x111 // 273\n\tSYS_MBRTOWC                         = 0x112 // 274\n\tSYS_MBSRTOWC                        = 0x113 // 275\n\tSYS_MBSRTOWCS                       = 0x113 // 275\n\tSYS_WCRTOMB                         = 0x114 // 276\n\tSYS_WCSRTOMB                        = 0x115 // 277\n\tSYS_WCSRTOMBS                       = 0x115 // 277\n\tSYS___CSID                          = 0x116 // 278\n\tSYS___WCSID                         = 0x117 // 279\n\tSYS_STRPTIME                        = 0x118 // 280\n\tSYS___STRPTM                        = 0x118 // 280\n\tSYS_STRFMON                         = 0x119 // 281\n\tSYS___RPMTCH                        = 0x11A // 282\n\tSYS_WCSSTR                          = 0x11B // 283\n\tSYS_WCSTOK                          = 0x12C // 300\n\tSYS_WCSTOL                          = 0x12D // 301\n\tSYS_WCSTOD                          = 0x12E // 302\n\tSYS_WCSTOUL                         = 0x12F // 303\n\tSYS_WCSCOLL                         = 0x130 // 304\n\tSYS_WCSXFRM                         = 0x131 // 305\n\tSYS_WCSWIDTH                        = 0x132 // 306\n\tSYS_WCWIDTH                         = 0x133 // 307\n\tSYS_WCSFTIME                        = 0x134 // 308\n\tSYS_SWPRINTF                        = 0x135 // 309\n\tSYS_VSWPRINT                        = 0x136 // 310\n\tSYS_VSWPRINTF                       = 0x136 // 310\n\tSYS_SWSCANF                         = 0x137 // 311\n\tSYS_REGCOMP                         = 0x138 // 312\n\tSYS_REGEXEC                         = 0x139 // 313\n\tSYS_REGFREE                         = 0x13A // 314\n\tSYS_REGERROR                        = 0x13B // 315\n\tSYS_FGETWC                          = 0x13C // 316\n\tSYS_FGETWS                          = 0x13D // 317\n\tSYS_FPUTWC                          = 0x13E // 318\n\tSYS_FPUTWS                          = 0x13F // 319\n\tSYS_GETWC                           = 0x140 // 320\n\tSYS_GETWCHAR                        = 0x141 // 321\n\tSYS_PUTWC                           = 0x142 // 322\n\tSYS_PUTWCHAR                        = 0x143 // 323\n\tSYS_UNGETWC                         = 0x144 // 324\n\tSYS_ICONV_OPEN                      = 0x145 // 325\n\tSYS_ICONV                           = 0x146 // 326\n\tSYS_ICONV_CLOSE                     = 0x147 // 327\n\tSYS_ISMCCOLLEL                      = 0x14C // 332\n\tSYS_STRTOCOLL                       = 0x14D // 333\n\tSYS_COLLTOSTR                       = 0x14E // 334\n\tSYS_COLLEQUIV                       = 0x14F // 335\n\tSYS_COLLRANGE                       = 0x150 // 336\n\tSYS_CCLASS                          = 0x151 // 337\n\tSYS_COLLORDER                       = 0x152 // 338\n\tSYS___DEMANGLE                      = 0x154 // 340\n\tSYS_FDOPEN                          = 0x155 // 341\n\tSYS___ERRNO                         = 0x156 // 342\n\tSYS___ERRNO2                        = 0x157 // 343\n\tSYS___TERROR                        = 0x158 // 344\n\tSYS_MAXCOLL                         = 0x169 // 361\n\tSYS_GETMCCOLL                       = 0x16A // 362\n\tSYS_GETWMCCOLL                      = 0x16B // 363\n\tSYS___ERR2AD                        = 0x16C // 364\n\tSYS_DLLQUERYFN                      = 0x16D // 365\n\tSYS_DLLQUERYVAR                     = 0x16E // 366\n\tSYS_DLLFREE                         = 0x16F // 367\n\tSYS_DLLLOAD                         = 0x170 // 368\n\tSYS__EXIT                           = 0x174 // 372\n\tSYS_ACCESS                          = 0x175 // 373\n\tSYS_ALARM                           = 0x176 // 374\n\tSYS_CFGETISPEED                     = 0x177 // 375\n\tSYS_CFGETOSPEED                     = 0x178 // 376\n\tSYS_CFSETISPEED                     = 0x179 // 377\n\tSYS_CFSETOSPEED                     = 0x17A // 378\n\tSYS_CHDIR                           = 0x17B // 379\n\tSYS_CHMOD                           = 0x17C // 380\n\tSYS_CHOWN                           = 0x17D // 381\n\tSYS_CLOSE                           = 0x17E // 382\n\tSYS_CLOSEDIR                        = 0x17F // 383\n\tSYS_CREAT                           = 0x180 // 384\n\tSYS_CTERMID                         = 0x181 // 385\n\tSYS_DUP                             = 0x182 // 386\n\tSYS_DUP2                            = 0x183 // 387\n\tSYS_EXECL                           = 0x184 // 388\n\tSYS_EXECLE                          = 0x185 // 389\n\tSYS_EXECLP                          = 0x186 // 390\n\tSYS_EXECV                           = 0x187 // 391\n\tSYS_EXECVE                          = 0x188 // 392\n\tSYS_EXECVP                          = 0x189 // 393\n\tSYS_FCHMOD                          = 0x18A // 394\n\tSYS_FCHOWN                          = 0x18B // 395\n\tSYS_FCNTL                           = 0x18C // 396\n\tSYS_FILENO                          = 0x18D // 397\n\tSYS_FORK                            = 0x18E // 398\n\tSYS_FPATHCONF                       = 0x18F // 399\n\tSYS_FSTAT                           = 0x190 // 400\n\tSYS_FSYNC                           = 0x191 // 401\n\tSYS_FTRUNCATE                       = 0x192 // 402\n\tSYS_GETCWD                          = 0x193 // 403\n\tSYS_GETEGID                         = 0x194 // 404\n\tSYS_GETEUID                         = 0x195 // 405\n\tSYS_GETGID                          = 0x196 // 406\n\tSYS_GETGRGID                        = 0x197 // 407\n\tSYS_GETGRNAM                        = 0x198 // 408\n\tSYS_GETGROUPS                       = 0x199 // 409\n\tSYS_GETLOGIN                        = 0x19A // 410\n\tSYS_W_GETMNTENT                     = 0x19B // 411\n\tSYS_GETPGRP                         = 0x19C // 412\n\tSYS_GETPID                          = 0x19D // 413\n\tSYS_GETPPID                         = 0x19E // 414\n\tSYS_GETPWNAM                        = 0x19F // 415\n\tSYS_GETPWUID                        = 0x1A0 // 416\n\tSYS_GETUID                          = 0x1A1 // 417\n\tSYS_W_IOCTL                         = 0x1A2 // 418\n\tSYS_ISATTY                          = 0x1A3 // 419\n\tSYS_KILL                            = 0x1A4 // 420\n\tSYS_LINK                            = 0x1A5 // 421\n\tSYS_LSEEK                           = 0x1A6 // 422\n\tSYS_LSTAT                           = 0x1A7 // 423\n\tSYS_MKDIR                           = 0x1A8 // 424\n\tSYS_MKFIFO                          = 0x1A9 // 425\n\tSYS_MKNOD                           = 0x1AA // 426\n\tSYS_MOUNT                           = 0x1AB // 427\n\tSYS_OPEN                            = 0x1AC // 428\n\tSYS_OPENDIR                         = 0x1AD // 429\n\tSYS_PATHCONF                        = 0x1AE // 430\n\tSYS_PAUSE                           = 0x1AF // 431\n\tSYS_PIPE                            = 0x1B0 // 432\n\tSYS_W_GETPSENT                      = 0x1B1 // 433\n\tSYS_READ                            = 0x1B2 // 434\n\tSYS_READDIR                         = 0x1B3 // 435\n\tSYS_READLINK                        = 0x1B4 // 436\n\tSYS_REWINDDIR                       = 0x1B5 // 437\n\tSYS_RMDIR                           = 0x1B6 // 438\n\tSYS_SETEGID                         = 0x1B7 // 439\n\tSYS_SETEUID                         = 0x1B8 // 440\n\tSYS_SETGID                          = 0x1B9 // 441\n\tSYS_SETPGID                         = 0x1BA // 442\n\tSYS_SETSID                          = 0x1BB // 443\n\tSYS_SETUID                          = 0x1BC // 444\n\tSYS_SIGACTION                       = 0x1BD // 445\n\tSYS_SIGADDSET                       = 0x1BE // 446\n\tSYS_SIGDELSET                       = 0x1BF // 447\n\tSYS_SIGEMPTYSET                     = 0x1C0 // 448\n\tSYS_SIGFILLSET                      = 0x1C1 // 449\n\tSYS_SIGISMEMBER                     = 0x1C2 // 450\n\tSYS_SIGLONGJMP                      = 0x1C3 // 451\n\tSYS_SIGPENDING                      = 0x1C4 // 452\n\tSYS_SIGPROCMASK                     = 0x1C5 // 453\n\tSYS_SIGSETJMP                       = 0x1C6 // 454\n\tSYS_SIGSUSPEND                      = 0x1C7 // 455\n\tSYS_SLEEP                           = 0x1C8 // 456\n\tSYS_STAT                            = 0x1C9 // 457\n\tSYS_W_STATFS                        = 0x1CA // 458\n\tSYS_SYMLINK                         = 0x1CB // 459\n\tSYS_SYSCONF                         = 0x1CC // 460\n\tSYS_TCDRAIN                         = 0x1CD // 461\n\tSYS_TCFLOW                          = 0x1CE // 462\n\tSYS_TCFLUSH                         = 0x1CF // 463\n\tSYS_TCGETATTR                       = 0x1D0 // 464\n\tSYS_TCGETPGRP                       = 0x1D1 // 465\n\tSYS_TCSENDBREAK                     = 0x1D2 // 466\n\tSYS_TCSETATTR                       = 0x1D3 // 467\n\tSYS_TCSETPGRP                       = 0x1D4 // 468\n\tSYS_TIMES                           = 0x1D5 // 469\n\tSYS_TTYNAME                         = 0x1D6 // 470\n\tSYS_TZSET                           = 0x1D7 // 471\n\tSYS_UMASK                           = 0x1D8 // 472\n\tSYS_UMOUNT                          = 0x1D9 // 473\n\tSYS_UNAME                           = 0x1DA // 474\n\tSYS_UNLINK                          = 0x1DB // 475\n\tSYS_UTIME                           = 0x1DC // 476\n\tSYS_WAIT                            = 0x1DD // 477\n\tSYS_WAITPID                         = 0x1DE // 478\n\tSYS_WRITE                           = 0x1DF // 479\n\tSYS_CHAUDIT                         = 0x1E0 // 480\n\tSYS_FCHAUDIT                        = 0x1E1 // 481\n\tSYS_GETGROUPSBYNAME                 = 0x1E2 // 482\n\tSYS_SIGWAIT                         = 0x1E3 // 483\n\tSYS_PTHREAD_EXIT                    = 0x1E4 // 484\n\tSYS_PTHREAD_KILL                    = 0x1E5 // 485\n\tSYS_PTHREAD_ATTR_INIT               = 0x1E6 // 486\n\tSYS_PTHREAD_ATTR_DESTROY            = 0x1E7 // 487\n\tSYS_PTHREAD_ATTR_SETSTACKSIZE       = 0x1E8 // 488\n\tSYS_PTHREAD_ATTR_GETSTACKSIZE       = 0x1E9 // 489\n\tSYS_PTHREAD_ATTR_SETDETACHSTATE     = 0x1EA // 490\n\tSYS_PTHREAD_ATTR_GETDETACHSTATE     = 0x1EB // 491\n\tSYS_PTHREAD_ATTR_SETWEIGHT_NP       = 0x1EC // 492\n\tSYS_PTHREAD_ATTR_GETWEIGHT_NP       = 0x1ED // 493\n\tSYS_PTHREAD_CANCEL                  = 0x1EE // 494\n\tSYS_PTHREAD_CLEANUP_PUSH            = 0x1EF // 495\n\tSYS_PTHREAD_CLEANUP_POP             = 0x1F0 // 496\n\tSYS_PTHREAD_CONDATTR_INIT           = 0x1F1 // 497\n\tSYS_PTHREAD_CONDATTR_DESTROY        = 0x1F2 // 498\n\tSYS_PTHREAD_COND_INIT               = 0x1F3 // 499\n\tSYS_PTHREAD_COND_DESTROY            = 0x1F4 // 500\n\tSYS_PTHREAD_COND_SIGNAL             = 0x1F5 // 501\n\tSYS_PTHREAD_COND_BROADCAST          = 0x1F6 // 502\n\tSYS_PTHREAD_COND_WAIT               = 0x1F7 // 503\n\tSYS_PTHREAD_COND_TIMEDWAIT          = 0x1F8 // 504\n\tSYS_PTHREAD_CREATE                  = 0x1F9 // 505\n\tSYS_PTHREAD_DETACH                  = 0x1FA // 506\n\tSYS_PTHREAD_EQUAL                   = 0x1FB // 507\n\tSYS_PTHREAD_GETSPECIFIC             = 0x1FC // 508\n\tSYS_PTHREAD_JOIN                    = 0x1FD // 509\n\tSYS_PTHREAD_KEY_CREATE              = 0x1FE // 510\n\tSYS_PTHREAD_MUTEXATTR_INIT          = 0x1FF // 511\n\tSYS_PTHREAD_MUTEXATTR_DESTROY       = 0x200 // 512\n\tSYS_PTHREAD_MUTEXATTR_SETKIND_NP    = 0x201 // 513\n\tSYS_PTHREAD_MUTEXATTR_GETKIND_NP    = 0x202 // 514\n\tSYS_PTHREAD_MUTEX_INIT              = 0x203 // 515\n\tSYS_PTHREAD_MUTEX_DESTROY           = 0x204 // 516\n\tSYS_PTHREAD_MUTEX_LOCK              = 0x205 // 517\n\tSYS_PTHREAD_MUTEX_TRYLOCK           = 0x206 // 518\n\tSYS_PTHREAD_MUTEX_UNLOCK            = 0x207 // 519\n\tSYS_PTHREAD_ONCE                    = 0x209 // 521\n\tSYS_PTHREAD_SELF                    = 0x20A // 522\n\tSYS_PTHREAD_SETINTR                 = 0x20B // 523\n\tSYS_PTHREAD_SETINTRTYPE             = 0x20C // 524\n\tSYS_PTHREAD_SETSPECIFIC             = 0x20D // 525\n\tSYS_PTHREAD_TESTINTR                = 0x20E // 526\n\tSYS_PTHREAD_YIELD                   = 0x20F // 527\n\tSYS_TW_OPEN                         = 0x210 // 528\n\tSYS_TW_FCNTL                        = 0x211 // 529\n\tSYS_PTHREAD_JOIN_D4_NP              = 0x212 // 530\n\tSYS_PTHREAD_CONDATTR_SETKIND_NP     = 0x213 // 531\n\tSYS_PTHREAD_CONDATTR_GETKIND_NP     = 0x214 // 532\n\tSYS_EXTLINK_NP                      = 0x215 // 533\n\tSYS___PASSWD                        = 0x216 // 534\n\tSYS_SETGROUPS                       = 0x217 // 535\n\tSYS_INITGROUPS                      = 0x218 // 536\n\tSYS_WCSPBRK                         = 0x23F // 575\n\tSYS_WCSRCHR                         = 0x240 // 576\n\tSYS_SVC99                           = 0x241 // 577\n\tSYS___SVC99                         = 0x241 // 577\n\tSYS_WCSWCS                          = 0x242 // 578\n\tSYS_LOCALECO                        = 0x243 // 579\n\tSYS_LOCALECONV                      = 0x243 // 579\n\tSYS___LIBREL                        = 0x244 // 580\n\tSYS_RELEASE                         = 0x245 // 581\n\tSYS___RLSE                          = 0x245 // 581\n\tSYS_FLOCATE                         = 0x246 // 582\n\tSYS___FLOCT                         = 0x246 // 582\n\tSYS_FDELREC                         = 0x247 // 583\n\tSYS___FDLREC                        = 0x247 // 583\n\tSYS_FETCH                           = 0x248 // 584\n\tSYS___FETCH                         = 0x248 // 584\n\tSYS_QSORT                           = 0x249 // 585\n\tSYS_GETENV                          = 0x24A // 586\n\tSYS_SYSTEM                          = 0x24B // 587\n\tSYS_BSEARCH                         = 0x24C // 588\n\tSYS_LDIV                            = 0x24D // 589\n\tSYS___THROW                         = 0x25E // 606\n\tSYS___RETHROW                       = 0x25F // 607\n\tSYS___CLEANUPCATCH                  = 0x260 // 608\n\tSYS___CATCHMATCH                    = 0x261 // 609\n\tSYS___CLEAN2UPCATCH                 = 0x262 // 610\n\tSYS_PUTENV                          = 0x26A // 618\n\tSYS___GETENV                        = 0x26F // 623\n\tSYS_GETPRIORITY                     = 0x270 // 624\n\tSYS_NICE                            = 0x271 // 625\n\tSYS_SETPRIORITY                     = 0x272 // 626\n\tSYS_GETITIMER                       = 0x273 // 627\n\tSYS_SETITIMER                       = 0x274 // 628\n\tSYS_MSGCTL                          = 0x275 // 629\n\tSYS_MSGGET                          = 0x276 // 630\n\tSYS_MSGRCV                          = 0x277 // 631\n\tSYS_MSGSND                          = 0x278 // 632\n\tSYS_MSGXRCV                         = 0x279 // 633\n\tSYS___MSGXR                         = 0x279 // 633\n\tSYS_SEMCTL                          = 0x27A // 634\n\tSYS_SEMGET                          = 0x27B // 635\n\tSYS_SEMOP                           = 0x27C // 636\n\tSYS_SHMAT                           = 0x27D // 637\n\tSYS_SHMCTL                          = 0x27E // 638\n\tSYS_SHMDT                           = 0x27F // 639\n\tSYS_SHMGET                          = 0x280 // 640\n\tSYS___GETIPC                        = 0x281 // 641\n\tSYS_SETGRENT                        = 0x282 // 642\n\tSYS_GETGRENT                        = 0x283 // 643\n\tSYS_ENDGRENT                        = 0x284 // 644\n\tSYS_SETPWENT                        = 0x285 // 645\n\tSYS_GETPWENT                        = 0x286 // 646\n\tSYS_ENDPWENT                        = 0x287 // 647\n\tSYS_BSD_SIGNAL                      = 0x288 // 648\n\tSYS_KILLPG                          = 0x289 // 649\n\tSYS_SIGALTSTACK                     = 0x28A // 650\n\tSYS_SIGHOLD                         = 0x28B // 651\n\tSYS_SIGIGNORE                       = 0x28C // 652\n\tSYS_SIGINTERRUPT                    = 0x28D // 653\n\tSYS_SIGPAUSE                        = 0x28E // 654\n\tSYS_SIGRELSE                        = 0x28F // 655\n\tSYS_SIGSET                          = 0x290 // 656\n\tSYS_SIGSTACK                        = 0x291 // 657\n\tSYS_GETRLIMIT                       = 0x292 // 658\n\tSYS_SETRLIMIT                       = 0x293 // 659\n\tSYS_GETRUSAGE                       = 0x294 // 660\n\tSYS_MMAP                            = 0x295 // 661\n\tSYS_MPROTECT                        = 0x296 // 662\n\tSYS_MSYNC                           = 0x297 // 663\n\tSYS_MUNMAP                          = 0x298 // 664\n\tSYS_CONFSTR                         = 0x299 // 665\n\tSYS_GETOPT                          = 0x29A // 666\n\tSYS_LCHOWN                          = 0x29B // 667\n\tSYS_TRUNCATE                        = 0x29C // 668\n\tSYS_GETSUBOPT                       = 0x29D // 669\n\tSYS_SETPGRP                         = 0x29E // 670\n\tSYS___GDERR                         = 0x29F // 671\n\tSYS___TZONE                         = 0x2A0 // 672\n\tSYS___DLGHT                         = 0x2A1 // 673\n\tSYS___OPARGF                        = 0x2A2 // 674\n\tSYS___OPOPTF                        = 0x2A3 // 675\n\tSYS___OPINDF                        = 0x2A4 // 676\n\tSYS___OPERRF                        = 0x2A5 // 677\n\tSYS_GETDATE                         = 0x2A6 // 678\n\tSYS_WAIT3                           = 0x2A7 // 679\n\tSYS_WAITID                          = 0x2A8 // 680\n\tSYS___CATTRM                        = 0x2A9 // 681\n\tSYS___GDTRM                         = 0x2AA // 682\n\tSYS___RNDTRM                        = 0x2AB // 683\n\tSYS_CRYPT                           = 0x2AC // 684\n\tSYS_ENCRYPT                         = 0x2AD // 685\n\tSYS_SETKEY                          = 0x2AE // 686\n\tSYS___CNVBLK                        = 0x2AF // 687\n\tSYS___CRYTRM                        = 0x2B0 // 688\n\tSYS___ECRTRM                        = 0x2B1 // 689\n\tSYS_DRAND48                         = 0x2B2 // 690\n\tSYS_ERAND48                         = 0x2B3 // 691\n\tSYS_FSTATVFS                        = 0x2B4 // 692\n\tSYS_STATVFS                         = 0x2B5 // 693\n\tSYS_CATCLOSE                        = 0x2B6 // 694\n\tSYS_CATGETS                         = 0x2B7 // 695\n\tSYS_CATOPEN                         = 0x2B8 // 696\n\tSYS_BCMP                            = 0x2B9 // 697\n\tSYS_BCOPY                           = 0x2BA // 698\n\tSYS_BZERO                           = 0x2BB // 699\n\tSYS_FFS                             = 0x2BC // 700\n\tSYS_INDEX                           = 0x2BD // 701\n\tSYS_RINDEX                          = 0x2BE // 702\n\tSYS_STRCASECMP                      = 0x2BF // 703\n\tSYS_STRDUP                          = 0x2C0 // 704\n\tSYS_STRNCASECMP                     = 0x2C1 // 705\n\tSYS_INITSTATE                       = 0x2C2 // 706\n\tSYS_SETSTATE                        = 0x2C3 // 707\n\tSYS_RANDOM                          = 0x2C4 // 708\n\tSYS_SRANDOM                         = 0x2C5 // 709\n\tSYS_HCREATE                         = 0x2C6 // 710\n\tSYS_HDESTROY                        = 0x2C7 // 711\n\tSYS_HSEARCH                         = 0x2C8 // 712\n\tSYS_LFIND                           = 0x2C9 // 713\n\tSYS_LSEARCH                         = 0x2CA // 714\n\tSYS_TDELETE                         = 0x2CB // 715\n\tSYS_TFIND                           = 0x2CC // 716\n\tSYS_TSEARCH                         = 0x2CD // 717\n\tSYS_TWALK                           = 0x2CE // 718\n\tSYS_INSQUE                          = 0x2CF // 719\n\tSYS_REMQUE                          = 0x2D0 // 720\n\tSYS_POPEN                           = 0x2D1 // 721\n\tSYS_PCLOSE                          = 0x2D2 // 722\n\tSYS_SWAB                            = 0x2D3 // 723\n\tSYS_MEMCCPY                         = 0x2D4 // 724\n\tSYS_GETPAGESIZE                     = 0x2D8 // 728\n\tSYS_FCHDIR                          = 0x2D9 // 729\n\tSYS___OCLCK                         = 0x2DA // 730\n\tSYS___ATOE                          = 0x2DB // 731\n\tSYS___ATOE_L                        = 0x2DC // 732\n\tSYS___ETOA                          = 0x2DD // 733\n\tSYS___ETOA_L                        = 0x2DE // 734\n\tSYS_SETUTXENT                       = 0x2DF // 735\n\tSYS_GETUTXENT                       = 0x2E0 // 736\n\tSYS_ENDUTXENT                       = 0x2E1 // 737\n\tSYS_GETUTXID                        = 0x2E2 // 738\n\tSYS_GETUTXLINE                      = 0x2E3 // 739\n\tSYS_PUTUTXLINE                      = 0x2E4 // 740\n\tSYS_FMTMSG                          = 0x2E5 // 741\n\tSYS_JRAND48                         = 0x2E6 // 742\n\tSYS_LRAND48                         = 0x2E7 // 743\n\tSYS_MRAND48                         = 0x2E8 // 744\n\tSYS_NRAND48                         = 0x2E9 // 745\n\tSYS_LCONG48                         = 0x2EA // 746\n\tSYS_SRAND48                         = 0x2EB // 747\n\tSYS_SEED48                          = 0x2EC // 748\n\tSYS_ISASCII                         = 0x2ED // 749\n\tSYS_TOASCII                         = 0x2EE // 750\n\tSYS_A64L                            = 0x2EF // 751\n\tSYS_L64A                            = 0x2F0 // 752\n\tSYS_UALARM                          = 0x2F1 // 753\n\tSYS_USLEEP                          = 0x2F2 // 754\n\tSYS___UTXTRM                        = 0x2F3 // 755\n\tSYS___SRCTRM                        = 0x2F4 // 756\n\tSYS_FTIME                           = 0x2F5 // 757\n\tSYS_GETTIMEOFDAY                    = 0x2F6 // 758\n\tSYS_DBM_CLEARERR                    = 0x2F7 // 759\n\tSYS_DBM_CLOSE                       = 0x2F8 // 760\n\tSYS_DBM_DELETE                      = 0x2F9 // 761\n\tSYS_DBM_ERROR                       = 0x2FA // 762\n\tSYS_DBM_FETCH                       = 0x2FB // 763\n\tSYS_DBM_FIRSTKEY                    = 0x2FC // 764\n\tSYS_DBM_NEXTKEY                     = 0x2FD // 765\n\tSYS_DBM_OPEN                        = 0x2FE // 766\n\tSYS_DBM_STORE                       = 0x2FF // 767\n\tSYS___NDMTRM                        = 0x300 // 768\n\tSYS_FTOK                            = 0x301 // 769\n\tSYS_BASENAME                        = 0x302 // 770\n\tSYS_DIRNAME                         = 0x303 // 771\n\tSYS_GETDTABLESIZE                   = 0x304 // 772\n\tSYS_MKSTEMP                         = 0x305 // 773\n\tSYS_MKTEMP                          = 0x306 // 774\n\tSYS_NFTW                            = 0x307 // 775\n\tSYS_GETWD                           = 0x308 // 776\n\tSYS_LOCKF                           = 0x309 // 777\n\tSYS__LONGJMP                        = 0x30D // 781\n\tSYS__SETJMP                         = 0x30E // 782\n\tSYS_VFORK                           = 0x30F // 783\n\tSYS_WORDEXP                         = 0x310 // 784\n\tSYS_WORDFREE                        = 0x311 // 785\n\tSYS_GETPGID                         = 0x312 // 786\n\tSYS_GETSID                          = 0x313 // 787\n\tSYS___UTMPXNAME                     = 0x314 // 788\n\tSYS_CUSERID                         = 0x315 // 789\n\tSYS_GETPASS                         = 0x316 // 790\n\tSYS_FNMATCH                         = 0x317 // 791\n\tSYS_FTW                             = 0x318 // 792\n\tSYS_GETW                            = 0x319 // 793\n\tSYS_GLOB                            = 0x31A // 794\n\tSYS_GLOBFREE                        = 0x31B // 795\n\tSYS_PUTW                            = 0x31C // 796\n\tSYS_SEEKDIR                         = 0x31D // 797\n\tSYS_TELLDIR                         = 0x31E // 798\n\tSYS_TEMPNAM                         = 0x31F // 799\n\tSYS_ACOSH                           = 0x320 // 800\n\tSYS_ASINH                           = 0x321 // 801\n\tSYS_ATANH                           = 0x322 // 802\n\tSYS_CBRT                            = 0x323 // 803\n\tSYS_EXPM1                           = 0x324 // 804\n\tSYS_ILOGB                           = 0x325 // 805\n\tSYS_LOGB                            = 0x326 // 806\n\tSYS_LOG1P                           = 0x327 // 807\n\tSYS_NEXTAFTER                       = 0x328 // 808\n\tSYS_RINT                            = 0x329 // 809\n\tSYS_REMAINDER                       = 0x32A // 810\n\tSYS_SCALB                           = 0x32B // 811\n\tSYS_LGAMMA                          = 0x32C // 812\n\tSYS_TTYSLOT                         = 0x32D // 813\n\tSYS_GETTIMEOFDAY_R                  = 0x32E // 814\n\tSYS_SYNC                            = 0x32F // 815\n\tSYS_SPAWN                           = 0x330 // 816\n\tSYS_SPAWNP                          = 0x331 // 817\n\tSYS_GETLOGIN_UU                     = 0x332 // 818\n\tSYS_ECVT                            = 0x333 // 819\n\tSYS_FCVT                            = 0x334 // 820\n\tSYS_GCVT                            = 0x335 // 821\n\tSYS_ACCEPT                          = 0x336 // 822\n\tSYS_BIND                            = 0x337 // 823\n\tSYS_CONNECT                         = 0x338 // 824\n\tSYS_ENDHOSTENT                      = 0x339 // 825\n\tSYS_ENDPROTOENT                     = 0x33A // 826\n\tSYS_ENDSERVENT                      = 0x33B // 827\n\tSYS_GETHOSTBYADDR_R                 = 0x33C // 828\n\tSYS_GETHOSTBYADDR                   = 0x33D // 829\n\tSYS_GETHOSTBYNAME_R                 = 0x33E // 830\n\tSYS_GETHOSTBYNAME                   = 0x33F // 831\n\tSYS_GETHOSTENT                      = 0x340 // 832\n\tSYS_GETHOSTID                       = 0x341 // 833\n\tSYS_GETHOSTNAME                     = 0x342 // 834\n\tSYS_GETNETBYADDR                    = 0x343 // 835\n\tSYS_GETNETBYNAME                    = 0x344 // 836\n\tSYS_GETNETENT                       = 0x345 // 837\n\tSYS_GETPEERNAME                     = 0x346 // 838\n\tSYS_GETPROTOBYNAME                  = 0x347 // 839\n\tSYS_GETPROTOBYNUMBER                = 0x348 // 840\n\tSYS_GETPROTOENT                     = 0x349 // 841\n\tSYS_GETSERVBYNAME                   = 0x34A // 842\n\tSYS_GETSERVBYPORT                   = 0x34B // 843\n\tSYS_GETSERVENT                      = 0x34C // 844\n\tSYS_GETSOCKNAME                     = 0x34D // 845\n\tSYS_GETSOCKOPT                      = 0x34E // 846\n\tSYS_INET_ADDR                       = 0x34F // 847\n\tSYS_INET_LNAOF                      = 0x350 // 848\n\tSYS_INET_MAKEADDR                   = 0x351 // 849\n\tSYS_INET_NETOF                      = 0x352 // 850\n\tSYS_INET_NETWORK                    = 0x353 // 851\n\tSYS_INET_NTOA                       = 0x354 // 852\n\tSYS_IOCTL                           = 0x355 // 853\n\tSYS_LISTEN                          = 0x356 // 854\n\tSYS_READV                           = 0x357 // 855\n\tSYS_RECV                            = 0x358 // 856\n\tSYS_RECVFROM                        = 0x359 // 857\n\tSYS_SELECT                          = 0x35B // 859\n\tSYS_SELECTEX                        = 0x35C // 860\n\tSYS_SEND                            = 0x35D // 861\n\tSYS_SENDTO                          = 0x35F // 863\n\tSYS_SETHOSTENT                      = 0x360 // 864\n\tSYS_SETNETENT                       = 0x361 // 865\n\tSYS_SETPEER                         = 0x362 // 866\n\tSYS_SETPROTOENT                     = 0x363 // 867\n\tSYS_SETSERVENT                      = 0x364 // 868\n\tSYS_SETSOCKOPT                      = 0x365 // 869\n\tSYS_SHUTDOWN                        = 0x366 // 870\n\tSYS_SOCKET                          = 0x367 // 871\n\tSYS_SOCKETPAIR                      = 0x368 // 872\n\tSYS_WRITEV                          = 0x369 // 873\n\tSYS_CHROOT                          = 0x36A // 874\n\tSYS_W_STATVFS                       = 0x36B // 875\n\tSYS_ULIMIT                          = 0x36C // 876\n\tSYS_ISNAN                           = 0x36D // 877\n\tSYS_UTIMES                          = 0x36E // 878\n\tSYS___H_ERRNO                       = 0x36F // 879\n\tSYS_ENDNETENT                       = 0x370 // 880\n\tSYS_CLOSELOG                        = 0x371 // 881\n\tSYS_OPENLOG                         = 0x372 // 882\n\tSYS_SETLOGMASK                      = 0x373 // 883\n\tSYS_SYSLOG                          = 0x374 // 884\n\tSYS_PTSNAME                         = 0x375 // 885\n\tSYS_SETREUID                        = 0x376 // 886\n\tSYS_SETREGID                        = 0x377 // 887\n\tSYS_REALPATH                        = 0x378 // 888\n\tSYS___SIGNGAM                       = 0x379 // 889\n\tSYS_GRANTPT                         = 0x37A // 890\n\tSYS_UNLOCKPT                        = 0x37B // 891\n\tSYS_TCGETSID                        = 0x37C // 892\n\tSYS___TCGETCP                       = 0x37D // 893\n\tSYS___TCSETCP                       = 0x37E // 894\n\tSYS___TCSETTABLES                   = 0x37F // 895\n\tSYS_POLL                            = 0x380 // 896\n\tSYS_REXEC                           = 0x381 // 897\n\tSYS___ISASCII2                      = 0x382 // 898\n\tSYS___TOASCII2                      = 0x383 // 899\n\tSYS_CHPRIORITY                      = 0x384 // 900\n\tSYS_PTHREAD_ATTR_SETSYNCTYPE_NP     = 0x385 // 901\n\tSYS_PTHREAD_ATTR_GETSYNCTYPE_NP     = 0x386 // 902\n\tSYS_PTHREAD_SET_LIMIT_NP            = 0x387 // 903\n\tSYS___STNETENT                      = 0x388 // 904\n\tSYS___STPROTOENT                    = 0x389 // 905\n\tSYS___STSERVENT                     = 0x38A // 906\n\tSYS___STHOSTENT                     = 0x38B // 907\n\tSYS_NLIST                           = 0x38C // 908\n\tSYS___IPDBCS                        = 0x38D // 909\n\tSYS___IPDSPX                        = 0x38E // 910\n\tSYS___IPMSGC                        = 0x38F // 911\n\tSYS___SELECT1                       = 0x390 // 912\n\tSYS_PTHREAD_SECURITY_NP             = 0x391 // 913\n\tSYS___CHECK_RESOURCE_AUTH_NP        = 0x392 // 914\n\tSYS___CONVERT_ID_NP                 = 0x393 // 915\n\tSYS___OPENVMREL                     = 0x394 // 916\n\tSYS_WMEMCHR                         = 0x395 // 917\n\tSYS_WMEMCMP                         = 0x396 // 918\n\tSYS_WMEMCPY                         = 0x397 // 919\n\tSYS_WMEMMOVE                        = 0x398 // 920\n\tSYS_WMEMSET                         = 0x399 // 921\n\tSYS___FPUTWC                        = 0x400 // 1024\n\tSYS___PUTWC                         = 0x401 // 1025\n\tSYS___PWCHAR                        = 0x402 // 1026\n\tSYS___WCSFTM                        = 0x403 // 1027\n\tSYS___WCSTOK                        = 0x404 // 1028\n\tSYS___WCWDTH                        = 0x405 // 1029\n\tSYS_T_ACCEPT                        = 0x409 // 1033\n\tSYS_T_ALLOC                         = 0x40A // 1034\n\tSYS_T_BIND                          = 0x40B // 1035\n\tSYS_T_CLOSE                         = 0x40C // 1036\n\tSYS_T_CONNECT                       = 0x40D // 1037\n\tSYS_T_ERROR                         = 0x40E // 1038\n\tSYS_T_FREE                          = 0x40F // 1039\n\tSYS_T_GETINFO                       = 0x410 // 1040\n\tSYS_T_GETPROTADDR                   = 0x411 // 1041\n\tSYS_T_GETSTATE                      = 0x412 // 1042\n\tSYS_T_LISTEN                        = 0x413 // 1043\n\tSYS_T_LOOK                          = 0x414 // 1044\n\tSYS_T_OPEN                          = 0x415 // 1045\n\tSYS_T_OPTMGMT                       = 0x416 // 1046\n\tSYS_T_RCV                           = 0x417 // 1047\n\tSYS_T_RCVCONNECT                    = 0x418 // 1048\n\tSYS_T_RCVDIS                        = 0x419 // 1049\n\tSYS_T_RCVREL                        = 0x41A // 1050\n\tSYS_T_RCVUDATA                      = 0x41B // 1051\n\tSYS_T_RCVUDERR                      = 0x41C // 1052\n\tSYS_T_SND                           = 0x41D // 1053\n\tSYS_T_SNDDIS                        = 0x41E // 1054\n\tSYS_T_SNDREL                        = 0x41F // 1055\n\tSYS_T_SNDUDATA                      = 0x420 // 1056\n\tSYS_T_STRERROR                      = 0x421 // 1057\n\tSYS_T_SYNC                          = 0x422 // 1058\n\tSYS_T_UNBIND                        = 0x423 // 1059\n\tSYS___T_ERRNO                       = 0x424 // 1060\n\tSYS___RECVMSG2                      = 0x425 // 1061\n\tSYS___SENDMSG2                      = 0x426 // 1062\n\tSYS_FATTACH                         = 0x427 // 1063\n\tSYS_FDETACH                         = 0x428 // 1064\n\tSYS_GETMSG                          = 0x429 // 1065\n\tSYS_GETPMSG                         = 0x42A // 1066\n\tSYS_ISASTREAM                       = 0x42B // 1067\n\tSYS_PUTMSG                          = 0x42C // 1068\n\tSYS_PUTPMSG                         = 0x42D // 1069\n\tSYS___ISPOSIXON                     = 0x42E // 1070\n\tSYS___OPENMVSREL                    = 0x42F // 1071\n\tSYS_GETCONTEXT                      = 0x430 // 1072\n\tSYS_SETCONTEXT                      = 0x431 // 1073\n\tSYS_MAKECONTEXT                     = 0x432 // 1074\n\tSYS_SWAPCONTEXT                     = 0x433 // 1075\n\tSYS_PTHREAD_GETSPECIFIC_D8_NP       = 0x434 // 1076\n\tSYS_GETCLIENTID                     = 0x470 // 1136\n\tSYS___GETCLIENTID                   = 0x471 // 1137\n\tSYS_GETSTABLESIZE                   = 0x472 // 1138\n\tSYS_GETIBMOPT                       = 0x473 // 1139\n\tSYS_GETIBMSOCKOPT                   = 0x474 // 1140\n\tSYS_GIVESOCKET                      = 0x475 // 1141\n\tSYS_IBMSFLUSH                       = 0x476 // 1142\n\tSYS_MAXDESC                         = 0x477 // 1143\n\tSYS_SETIBMOPT                       = 0x478 // 1144\n\tSYS_SETIBMSOCKOPT                   = 0x479 // 1145\n\tSYS_SOCK_DEBUG                      = 0x47A // 1146\n\tSYS_SOCK_DO_TESTSTOR                = 0x47D // 1149\n\tSYS_TAKESOCKET                      = 0x47E // 1150\n\tSYS___SERVER_INIT                   = 0x47F // 1151\n\tSYS___SERVER_PWU                    = 0x480 // 1152\n\tSYS_PTHREAD_TAG_NP                  = 0x481 // 1153\n\tSYS___CONSOLE                       = 0x482 // 1154\n\tSYS___WSINIT                        = 0x483 // 1155\n\tSYS___IPTCPN                        = 0x489 // 1161\n\tSYS___SMF_RECORD                    = 0x48A // 1162\n\tSYS___IPHOST                        = 0x48B // 1163\n\tSYS___IPNODE                        = 0x48C // 1164\n\tSYS___SERVER_CLASSIFY_CREATE        = 0x48D // 1165\n\tSYS___SERVER_CLASSIFY_DESTROY       = 0x48E // 1166\n\tSYS___SERVER_CLASSIFY_RESET         = 0x48F // 1167\n\tSYS___SERVER_CLASSIFY               = 0x490 // 1168\n\tSYS___HEAPRPT                       = 0x496 // 1174\n\tSYS___FNWSA                         = 0x49B // 1179\n\tSYS___SPAWN2                        = 0x49D // 1181\n\tSYS___SPAWNP2                       = 0x49E // 1182\n\tSYS___GDRR                          = 0x4A1 // 1185\n\tSYS___HRRNO                         = 0x4A2 // 1186\n\tSYS___OPRG                          = 0x4A3 // 1187\n\tSYS___OPRR                          = 0x4A4 // 1188\n\tSYS___OPND                          = 0x4A5 // 1189\n\tSYS___OPPT                          = 0x4A6 // 1190\n\tSYS___SIGGM                         = 0x4A7 // 1191\n\tSYS___DGHT                          = 0x4A8 // 1192\n\tSYS___TZNE                          = 0x4A9 // 1193\n\tSYS___TZZN                          = 0x4AA // 1194\n\tSYS___TRRNO                         = 0x4AF // 1199\n\tSYS___ENVN                          = 0x4B0 // 1200\n\tSYS___MLOCKALL                      = 0x4B1 // 1201\n\tSYS_CREATEWO                        = 0x4B2 // 1202\n\tSYS_CREATEWORKUNIT                  = 0x4B2 // 1202\n\tSYS_CONTINUE                        = 0x4B3 // 1203\n\tSYS_CONTINUEWORKUNIT                = 0x4B3 // 1203\n\tSYS_CONNECTW                        = 0x4B4 // 1204\n\tSYS_CONNECTWORKMGR                  = 0x4B4 // 1204\n\tSYS_CONNECTS                        = 0x4B5 // 1205\n\tSYS_CONNECTSERVER                   = 0x4B5 // 1205\n\tSYS_DISCONNE                        = 0x4B6 // 1206\n\tSYS_DISCONNECTSERVER                = 0x4B6 // 1206\n\tSYS_JOINWORK                        = 0x4B7 // 1207\n\tSYS_JOINWORKUNIT                    = 0x4B7 // 1207\n\tSYS_LEAVEWOR                        = 0x4B8 // 1208\n\tSYS_LEAVEWORKUNIT                   = 0x4B8 // 1208\n\tSYS_DELETEWO                        = 0x4B9 // 1209\n\tSYS_DELETEWORKUNIT                  = 0x4B9 // 1209\n\tSYS_QUERYMET                        = 0x4BA // 1210\n\tSYS_QUERYMETRICS                    = 0x4BA // 1210\n\tSYS_QUERYSCH                        = 0x4BB // 1211\n\tSYS_QUERYSCHENV                     = 0x4BB // 1211\n\tSYS_CHECKSCH                        = 0x4BC // 1212\n\tSYS_CHECKSCHENV                     = 0x4BC // 1212\n\tSYS___PID_AFFINITY                  = 0x4BD // 1213\n\tSYS___ASINH_B                       = 0x4BE // 1214\n\tSYS___ATAN_B                        = 0x4BF // 1215\n\tSYS___CBRT_B                        = 0x4C0 // 1216\n\tSYS___CEIL_B                        = 0x4C1 // 1217\n\tSYS_COPYSIGN                        = 0x4C2 // 1218\n\tSYS___COS_B                         = 0x4C3 // 1219\n\tSYS___ERF_B                         = 0x4C4 // 1220\n\tSYS___ERFC_B                        = 0x4C5 // 1221\n\tSYS___EXPM1_B                       = 0x4C6 // 1222\n\tSYS___FABS_B                        = 0x4C7 // 1223\n\tSYS_FINITE                          = 0x4C8 // 1224\n\tSYS___FLOOR_B                       = 0x4C9 // 1225\n\tSYS___FREXP_B                       = 0x4CA // 1226\n\tSYS___ILOGB_B                       = 0x4CB // 1227\n\tSYS___ISNAN_B                       = 0x4CC // 1228\n\tSYS___LDEXP_B                       = 0x4CD // 1229\n\tSYS___LOG1P_B                       = 0x4CE // 1230\n\tSYS___LOGB_B                        = 0x4CF // 1231\n\tSYS_MATHERR                         = 0x4D0 // 1232\n\tSYS___MODF_B                        = 0x4D1 // 1233\n\tSYS___NEXTAFTER_B                   = 0x4D2 // 1234\n\tSYS___RINT_B                        = 0x4D3 // 1235\n\tSYS_SCALBN                          = 0x4D4 // 1236\n\tSYS_SIGNIFIC                        = 0x4D5 // 1237\n\tSYS_SIGNIFICAND                     = 0x4D5 // 1237\n\tSYS___SIN_B                         = 0x4D6 // 1238\n\tSYS___TAN_B                         = 0x4D7 // 1239\n\tSYS___TANH_B                        = 0x4D8 // 1240\n\tSYS___ACOS_B                        = 0x4D9 // 1241\n\tSYS___ACOSH_B                       = 0x4DA // 1242\n\tSYS___ASIN_B                        = 0x4DB // 1243\n\tSYS___ATAN2_B                       = 0x4DC // 1244\n\tSYS___ATANH_B                       = 0x4DD // 1245\n\tSYS___COSH_B                        = 0x4DE // 1246\n\tSYS___EXP_B                         = 0x4DF // 1247\n\tSYS___FMOD_B                        = 0x4E0 // 1248\n\tSYS___GAMMA_B                       = 0x4E1 // 1249\n\tSYS_GAMMA_R                         = 0x4E2 // 1250\n\tSYS___HYPOT_B                       = 0x4E3 // 1251\n\tSYS___J0_B                          = 0x4E4 // 1252\n\tSYS___Y0_B                          = 0x4E5 // 1253\n\tSYS___J1_B                          = 0x4E6 // 1254\n\tSYS___Y1_B                          = 0x4E7 // 1255\n\tSYS___JN_B                          = 0x4E8 // 1256\n\tSYS___YN_B                          = 0x4E9 // 1257\n\tSYS___LGAMMA_B                      = 0x4EA // 1258\n\tSYS_LGAMMA_R                        = 0x4EB // 1259\n\tSYS___LOG_B                         = 0x4EC // 1260\n\tSYS___LOG10_B                       = 0x4ED // 1261\n\tSYS___POW_B                         = 0x4EE // 1262\n\tSYS___REMAINDER_B                   = 0x4EF // 1263\n\tSYS___SCALB_B                       = 0x4F0 // 1264\n\tSYS___SINH_B                        = 0x4F1 // 1265\n\tSYS___SQRT_B                        = 0x4F2 // 1266\n\tSYS___OPENDIR2                      = 0x4F3 // 1267\n\tSYS___READDIR2                      = 0x4F4 // 1268\n\tSYS___LOGIN                         = 0x4F5 // 1269\n\tSYS___OPEN_STAT                     = 0x4F6 // 1270\n\tSYS_ACCEPT_AND_RECV                 = 0x4F7 // 1271\n\tSYS___FP_SETMODE                    = 0x4F8 // 1272\n\tSYS___SIGACTIONSET                  = 0x4FB // 1275\n\tSYS___UCREATE                       = 0x4FC // 1276\n\tSYS___UMALLOC                       = 0x4FD // 1277\n\tSYS___UFREE                         = 0x4FE // 1278\n\tSYS___UHEAPREPORT                   = 0x4FF // 1279\n\tSYS___ISBFP                         = 0x500 // 1280\n\tSYS___FP_CAST                       = 0x501 // 1281\n\tSYS___CERTIFICATE                   = 0x502 // 1282\n\tSYS_SEND_FILE                       = 0x503 // 1283\n\tSYS_AIO_CANCEL                      = 0x504 // 1284\n\tSYS_AIO_ERROR                       = 0x505 // 1285\n\tSYS_AIO_READ                        = 0x506 // 1286\n\tSYS_AIO_RETURN                      = 0x507 // 1287\n\tSYS_AIO_SUSPEND                     = 0x508 // 1288\n\tSYS_AIO_WRITE                       = 0x509 // 1289\n\tSYS_PTHREAD_MUTEXATTR_GETPSHARED    = 0x50A // 1290\n\tSYS_PTHREAD_MUTEXATTR_SETPSHARED    = 0x50B // 1291\n\tSYS_PTHREAD_RWLOCK_DESTROY          = 0x50C // 1292\n\tSYS_PTHREAD_RWLOCK_INIT             = 0x50D // 1293\n\tSYS_PTHREAD_RWLOCK_RDLOCK           = 0x50E // 1294\n\tSYS_PTHREAD_RWLOCK_TRYRDLOCK        = 0x50F // 1295\n\tSYS_PTHREAD_RWLOCK_TRYWRLOCK        = 0x510 // 1296\n\tSYS_PTHREAD_RWLOCK_UNLOCK           = 0x511 // 1297\n\tSYS_PTHREAD_RWLOCK_WRLOCK           = 0x512 // 1298\n\tSYS_PTHREAD_RWLOCKATTR_GETPSHARED   = 0x513 // 1299\n\tSYS_PTHREAD_RWLOCKATTR_SETPSHARED   = 0x514 // 1300\n\tSYS_PTHREAD_RWLOCKATTR_INIT         = 0x515 // 1301\n\tSYS_PTHREAD_RWLOCKATTR_DESTROY      = 0x516 // 1302\n\tSYS___CTTBL                         = 0x517 // 1303\n\tSYS_PTHREAD_MUTEXATTR_SETTYPE       = 0x518 // 1304\n\tSYS_PTHREAD_MUTEXATTR_GETTYPE       = 0x519 // 1305\n\tSYS___FP_CLR_FLAG                   = 0x51A // 1306\n\tSYS___FP_READ_FLAG                  = 0x51B // 1307\n\tSYS___FP_RAISE_XCP                  = 0x51C // 1308\n\tSYS___FP_CLASS                      = 0x51D // 1309\n\tSYS___FP_FINITE                     = 0x51E // 1310\n\tSYS___FP_ISNAN                      = 0x51F // 1311\n\tSYS___FP_UNORDERED                  = 0x520 // 1312\n\tSYS___FP_READ_RND                   = 0x521 // 1313\n\tSYS___FP_READ_RND_B                 = 0x522 // 1314\n\tSYS___FP_SWAP_RND                   = 0x523 // 1315\n\tSYS___FP_SWAP_RND_B                 = 0x524 // 1316\n\tSYS___FP_LEVEL                      = 0x525 // 1317\n\tSYS___FP_BTOH                       = 0x526 // 1318\n\tSYS___FP_HTOB                       = 0x527 // 1319\n\tSYS___FPC_RD                        = 0x528 // 1320\n\tSYS___FPC_WR                        = 0x529 // 1321\n\tSYS___FPC_RW                        = 0x52A // 1322\n\tSYS___FPC_SM                        = 0x52B // 1323\n\tSYS___FPC_RS                        = 0x52C // 1324\n\tSYS_SIGTIMEDWAIT                    = 0x52D // 1325\n\tSYS_SIGWAITINFO                     = 0x52E // 1326\n\tSYS___CHKBFP                        = 0x52F // 1327\n\tSYS___W_PIOCTL                      = 0x59E // 1438\n\tSYS___OSENV                         = 0x59F // 1439\n\tSYS_EXPORTWO                        = 0x5A1 // 1441\n\tSYS_EXPORTWORKUNIT                  = 0x5A1 // 1441\n\tSYS_UNDOEXPO                        = 0x5A2 // 1442\n\tSYS_UNDOEXPORTWORKUNIT              = 0x5A2 // 1442\n\tSYS_IMPORTWO                        = 0x5A3 // 1443\n\tSYS_IMPORTWORKUNIT                  = 0x5A3 // 1443\n\tSYS_UNDOIMPO                        = 0x5A4 // 1444\n\tSYS_UNDOIMPORTWORKUNIT              = 0x5A4 // 1444\n\tSYS_EXTRACTW                        = 0x5A5 // 1445\n\tSYS_EXTRACTWORKUNIT                 = 0x5A5 // 1445\n\tSYS___CPL                           = 0x5A6 // 1446\n\tSYS___MAP_INIT                      = 0x5A7 // 1447\n\tSYS___MAP_SERVICE                   = 0x5A8 // 1448\n\tSYS_SIGQUEUE                        = 0x5A9 // 1449\n\tSYS___MOUNT                         = 0x5AA // 1450\n\tSYS___GETUSERID                     = 0x5AB // 1451\n\tSYS___IPDOMAINNAME                  = 0x5AC // 1452\n\tSYS_QUERYENC                        = 0x5AD // 1453\n\tSYS_QUERYWORKUNITCLASSIFICATION     = 0x5AD // 1453\n\tSYS_CONNECTE                        = 0x5AE // 1454\n\tSYS_CONNECTEXPORTIMPORT             = 0x5AE // 1454\n\tSYS___FP_SWAPMODE                   = 0x5AF // 1455\n\tSYS_STRTOLL                         = 0x5B0 // 1456\n\tSYS_STRTOULL                        = 0x5B1 // 1457\n\tSYS___DSA_PREV                      = 0x5B2 // 1458\n\tSYS___EP_FIND                       = 0x5B3 // 1459\n\tSYS___SERVER_THREADS_QUERY          = 0x5B4 // 1460\n\tSYS___MSGRCV_TIMED                  = 0x5B7 // 1463\n\tSYS___SEMOP_TIMED                   = 0x5B8 // 1464\n\tSYS___GET_CPUID                     = 0x5B9 // 1465\n\tSYS___GET_SYSTEM_SETTINGS           = 0x5BA // 1466\n\tSYS_FTELLO                          = 0x5C8 // 1480\n\tSYS_FSEEKO                          = 0x5C9 // 1481\n\tSYS_LLDIV                           = 0x5CB // 1483\n\tSYS_WCSTOLL                         = 0x5CC // 1484\n\tSYS_WCSTOULL                        = 0x5CD // 1485\n\tSYS_LLABS                           = 0x5CE // 1486\n\tSYS___CONSOLE2                      = 0x5D2 // 1490\n\tSYS_INET_NTOP                       = 0x5D3 // 1491\n\tSYS_INET_PTON                       = 0x5D4 // 1492\n\tSYS___RES                           = 0x5D6 // 1494\n\tSYS_RES_MKQUERY                     = 0x5D7 // 1495\n\tSYS_RES_INIT                        = 0x5D8 // 1496\n\tSYS_RES_QUERY                       = 0x5D9 // 1497\n\tSYS_RES_SEARCH                      = 0x5DA // 1498\n\tSYS_RES_SEND                        = 0x5DB // 1499\n\tSYS_RES_QUERYDOMAIN                 = 0x5DC // 1500\n\tSYS_DN_EXPAND                       = 0x5DD // 1501\n\tSYS_DN_SKIPNAME                     = 0x5DE // 1502\n\tSYS_DN_COMP                         = 0x5DF // 1503\n\tSYS_ASCTIME_R                       = 0x5E0 // 1504\n\tSYS_CTIME_R                         = 0x5E1 // 1505\n\tSYS_GMTIME_R                        = 0x5E2 // 1506\n\tSYS_LOCALTIME_R                     = 0x5E3 // 1507\n\tSYS_RAND_R                          = 0x5E4 // 1508\n\tSYS_STRTOK_R                        = 0x5E5 // 1509\n\tSYS_READDIR_R                       = 0x5E6 // 1510\n\tSYS_GETGRGID_R                      = 0x5E7 // 1511\n\tSYS_GETGRNAM_R                      = 0x5E8 // 1512\n\tSYS_GETLOGIN_R                      = 0x5E9 // 1513\n\tSYS_GETPWNAM_R                      = 0x5EA // 1514\n\tSYS_GETPWUID_R                      = 0x5EB // 1515\n\tSYS_TTYNAME_R                       = 0x5EC // 1516\n\tSYS_PTHREAD_ATFORK                  = 0x5ED // 1517\n\tSYS_PTHREAD_ATTR_GETGUARDSIZE       = 0x5EE // 1518\n\tSYS_PTHREAD_ATTR_GETSTACKADDR       = 0x5EF // 1519\n\tSYS_PTHREAD_ATTR_SETGUARDSIZE       = 0x5F0 // 1520\n\tSYS_PTHREAD_ATTR_SETSTACKADDR       = 0x5F1 // 1521\n\tSYS_PTHREAD_CONDATTR_GETPSHARED     = 0x5F2 // 1522\n\tSYS_PTHREAD_CONDATTR_SETPSHARED     = 0x5F3 // 1523\n\tSYS_PTHREAD_GETCONCURRENCY          = 0x5F4 // 1524\n\tSYS_PTHREAD_KEY_DELETE              = 0x5F5 // 1525\n\tSYS_PTHREAD_SETCONCURRENCY          = 0x5F6 // 1526\n\tSYS_PTHREAD_SIGMASK                 = 0x5F7 // 1527\n\tSYS___DISCARDDATA                   = 0x5F8 // 1528\n\tSYS_PTHREAD_ATTR_GETSCHEDPARAM      = 0x5F9 // 1529\n\tSYS_PTHREAD_ATTR_SETSCHEDPARAM      = 0x5FA // 1530\n\tSYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB // 1531\n\tSYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC // 1532\n\tSYS_PTHREAD_DETACH_U98              = 0x5FD // 1533\n\tSYS_PTHREAD_GETSPECIFIC_U98         = 0x5FE // 1534\n\tSYS_PTHREAD_SETCANCELSTATE          = 0x5FF // 1535\n\tSYS_PTHREAD_SETCANCELTYPE           = 0x600 // 1536\n\tSYS_PTHREAD_TESTCANCEL              = 0x601 // 1537\n\tSYS___ATANF_B                       = 0x602 // 1538\n\tSYS___ATANL_B                       = 0x603 // 1539\n\tSYS___CEILF_B                       = 0x604 // 1540\n\tSYS___CEILL_B                       = 0x605 // 1541\n\tSYS___COSF_B                        = 0x606 // 1542\n\tSYS___COSL_B                        = 0x607 // 1543\n\tSYS___FABSF_B                       = 0x608 // 1544\n\tSYS___FABSL_B                       = 0x609 // 1545\n\tSYS___FLOORF_B                      = 0x60A // 1546\n\tSYS___FLOORL_B                      = 0x60B // 1547\n\tSYS___FREXPF_B                      = 0x60C // 1548\n\tSYS___FREXPL_B                      = 0x60D // 1549\n\tSYS___LDEXPF_B                      = 0x60E // 1550\n\tSYS___LDEXPL_B                      = 0x60F // 1551\n\tSYS___SINF_B                        = 0x610 // 1552\n\tSYS___SINL_B                        = 0x611 // 1553\n\tSYS___TANF_B                        = 0x612 // 1554\n\tSYS___TANL_B                        = 0x613 // 1555\n\tSYS___TANHF_B                       = 0x614 // 1556\n\tSYS___TANHL_B                       = 0x615 // 1557\n\tSYS___ACOSF_B                       = 0x616 // 1558\n\tSYS___ACOSL_B                       = 0x617 // 1559\n\tSYS___ASINF_B                       = 0x618 // 1560\n\tSYS___ASINL_B                       = 0x619 // 1561\n\tSYS___ATAN2F_B                      = 0x61A // 1562\n\tSYS___ATAN2L_B                      = 0x61B // 1563\n\tSYS___COSHF_B                       = 0x61C // 1564\n\tSYS___COSHL_B                       = 0x61D // 1565\n\tSYS___EXPF_B                        = 0x61E // 1566\n\tSYS___EXPL_B                        = 0x61F // 1567\n\tSYS___LOGF_B                        = 0x620 // 1568\n\tSYS___LOGL_B                        = 0x621 // 1569\n\tSYS___LOG10F_B                      = 0x622 // 1570\n\tSYS___LOG10L_B                      = 0x623 // 1571\n\tSYS___POWF_B                        = 0x624 // 1572\n\tSYS___POWL_B                        = 0x625 // 1573\n\tSYS___SINHF_B                       = 0x626 // 1574\n\tSYS___SINHL_B                       = 0x627 // 1575\n\tSYS___SQRTF_B                       = 0x628 // 1576\n\tSYS___SQRTL_B                       = 0x629 // 1577\n\tSYS___ABSF_B                        = 0x62A // 1578\n\tSYS___ABS_B                         = 0x62B // 1579\n\tSYS___ABSL_B                        = 0x62C // 1580\n\tSYS___FMODF_B                       = 0x62D // 1581\n\tSYS___FMODL_B                       = 0x62E // 1582\n\tSYS___MODFF_B                       = 0x62F // 1583\n\tSYS___MODFL_B                       = 0x630 // 1584\n\tSYS_ABSF                            = 0x631 // 1585\n\tSYS_ABSL                            = 0x632 // 1586\n\tSYS_ACOSF                           = 0x633 // 1587\n\tSYS_ACOSL                           = 0x634 // 1588\n\tSYS_ASINF                           = 0x635 // 1589\n\tSYS_ASINL                           = 0x636 // 1590\n\tSYS_ATAN2F                          = 0x637 // 1591\n\tSYS_ATAN2L                          = 0x638 // 1592\n\tSYS_ATANF                           = 0x639 // 1593\n\tSYS_ATANL                           = 0x63A // 1594\n\tSYS_CEILF                           = 0x63B // 1595\n\tSYS_CEILL                           = 0x63C // 1596\n\tSYS_COSF                            = 0x63D // 1597\n\tSYS_COSL                            = 0x63E // 1598\n\tSYS_COSHF                           = 0x63F // 1599\n\tSYS_COSHL                           = 0x640 // 1600\n\tSYS_EXPF                            = 0x641 // 1601\n\tSYS_EXPL                            = 0x642 // 1602\n\tSYS_TANHF                           = 0x643 // 1603\n\tSYS_TANHL                           = 0x644 // 1604\n\tSYS_LOG10F                          = 0x645 // 1605\n\tSYS_LOG10L                          = 0x646 // 1606\n\tSYS_LOGF                            = 0x647 // 1607\n\tSYS_LOGL                            = 0x648 // 1608\n\tSYS_POWF                            = 0x649 // 1609\n\tSYS_POWL                            = 0x64A // 1610\n\tSYS_SINF                            = 0x64B // 1611\n\tSYS_SINL                            = 0x64C // 1612\n\tSYS_SQRTF                           = 0x64D // 1613\n\tSYS_SQRTL                           = 0x64E // 1614\n\tSYS_SINHF                           = 0x64F // 1615\n\tSYS_SINHL                           = 0x650 // 1616\n\tSYS_TANF                            = 0x651 // 1617\n\tSYS_TANL                            = 0x652 // 1618\n\tSYS_FABSF                           = 0x653 // 1619\n\tSYS_FABSL                           = 0x654 // 1620\n\tSYS_FLOORF                          = 0x655 // 1621\n\tSYS_FLOORL                          = 0x656 // 1622\n\tSYS_FMODF                           = 0x657 // 1623\n\tSYS_FMODL                           = 0x658 // 1624\n\tSYS_FREXPF                          = 0x659 // 1625\n\tSYS_FREXPL                          = 0x65A // 1626\n\tSYS_LDEXPF                          = 0x65B // 1627\n\tSYS_LDEXPL                          = 0x65C // 1628\n\tSYS_MODFF                           = 0x65D // 1629\n\tSYS_MODFL                           = 0x65E // 1630\n\tSYS_BTOWC                           = 0x65F // 1631\n\tSYS___CHATTR                        = 0x660 // 1632\n\tSYS___FCHATTR                       = 0x661 // 1633\n\tSYS___TOCCSID                       = 0x662 // 1634\n\tSYS___CSNAMETYPE                    = 0x663 // 1635\n\tSYS___TOCSNAME                      = 0x664 // 1636\n\tSYS___CCSIDTYPE                     = 0x665 // 1637\n\tSYS___AE_CORRESTBL_QUERY            = 0x666 // 1638\n\tSYS___AE_AUTOCONVERT_STATE          = 0x667 // 1639\n\tSYS_DN_FIND                         = 0x668 // 1640\n\tSYS___GETHOSTBYADDR_A               = 0x669 // 1641\n\tSYS___GETHOSTBYNAME_A               = 0x66A // 1642\n\tSYS___RES_INIT_A                    = 0x66B // 1643\n\tSYS___GETHOSTBYADDR_R_A             = 0x66C // 1644\n\tSYS___GETHOSTBYNAME_R_A             = 0x66D // 1645\n\tSYS___CHARMAP_INIT_A                = 0x66E // 1646\n\tSYS___MBLEN_A                       = 0x66F // 1647\n\tSYS___MBLEN_SB_A                    = 0x670 // 1648\n\tSYS___MBLEN_STD_A                   = 0x671 // 1649\n\tSYS___MBLEN_UTF                     = 0x672 // 1650\n\tSYS___MBSTOWCS_A                    = 0x673 // 1651\n\tSYS___MBSTOWCS_STD_A                = 0x674 // 1652\n\tSYS___MBTOWC_A                      = 0x675 // 1653\n\tSYS___MBTOWC_ISO1                   = 0x676 // 1654\n\tSYS___MBTOWC_SBCS                   = 0x677 // 1655\n\tSYS___MBTOWC_MBCS                   = 0x678 // 1656\n\tSYS___MBTOWC_UTF                    = 0x679 // 1657\n\tSYS___WCSTOMBS_A                    = 0x67A // 1658\n\tSYS___WCSTOMBS_STD_A                = 0x67B // 1659\n\tSYS___WCSWIDTH_A                    = 0x67C // 1660\n\tSYS___GETGRGID_R_A                  = 0x67D // 1661\n\tSYS___WCSWIDTH_STD_A                = 0x67E // 1662\n\tSYS___WCSWIDTH_ASIA                 = 0x67F // 1663\n\tSYS___CSID_A                        = 0x680 // 1664\n\tSYS___CSID_STD_A                    = 0x681 // 1665\n\tSYS___WCSID_A                       = 0x682 // 1666\n\tSYS___WCSID_STD_A                   = 0x683 // 1667\n\tSYS___WCTOMB_A                      = 0x684 // 1668\n\tSYS___WCTOMB_ISO1                   = 0x685 // 1669\n\tSYS___WCTOMB_STD_A                  = 0x686 // 1670\n\tSYS___WCTOMB_UTF                    = 0x687 // 1671\n\tSYS___WCWIDTH_A                     = 0x688 // 1672\n\tSYS___GETGRNAM_R_A                  = 0x689 // 1673\n\tSYS___WCWIDTH_STD_A                 = 0x68A // 1674\n\tSYS___WCWIDTH_ASIA                  = 0x68B // 1675\n\tSYS___GETPWNAM_R_A                  = 0x68C // 1676\n\tSYS___GETPWUID_R_A                  = 0x68D // 1677\n\tSYS___GETLOGIN_R_A                  = 0x68E // 1678\n\tSYS___TTYNAME_R_A                   = 0x68F // 1679\n\tSYS___READDIR_R_A                   = 0x690 // 1680\n\tSYS___E2A_S                         = 0x691 // 1681\n\tSYS___FNMATCH_A                     = 0x692 // 1682\n\tSYS___FNMATCH_C_A                   = 0x693 // 1683\n\tSYS___EXECL_A                       = 0x694 // 1684\n\tSYS___FNMATCH_STD_A                 = 0x695 // 1685\n\tSYS___REGCOMP_A                     = 0x696 // 1686\n\tSYS___REGCOMP_STD_A                 = 0x697 // 1687\n\tSYS___REGERROR_A                    = 0x698 // 1688\n\tSYS___REGERROR_STD_A                = 0x699 // 1689\n\tSYS___REGEXEC_A                     = 0x69A // 1690\n\tSYS___REGEXEC_STD_A                 = 0x69B // 1691\n\tSYS___REGFREE_A                     = 0x69C // 1692\n\tSYS___REGFREE_STD_A                 = 0x69D // 1693\n\tSYS___STRCOLL_A                     = 0x69E // 1694\n\tSYS___STRCOLL_C_A                   = 0x69F // 1695\n\tSYS___EXECLE_A                      = 0x6A0 // 1696\n\tSYS___STRCOLL_STD_A                 = 0x6A1 // 1697\n\tSYS___STRXFRM_A                     = 0x6A2 // 1698\n\tSYS___STRXFRM_C_A                   = 0x6A3 // 1699\n\tSYS___EXECLP_A                      = 0x6A4 // 1700\n\tSYS___STRXFRM_STD_A                 = 0x6A5 // 1701\n\tSYS___WCSCOLL_A                     = 0x6A6 // 1702\n\tSYS___WCSCOLL_C_A                   = 0x6A7 // 1703\n\tSYS___WCSCOLL_STD_A                 = 0x6A8 // 1704\n\tSYS___WCSXFRM_A                     = 0x6A9 // 1705\n\tSYS___WCSXFRM_C_A                   = 0x6AA // 1706\n\tSYS___WCSXFRM_STD_A                 = 0x6AB // 1707\n\tSYS___COLLATE_INIT_A                = 0x6AC // 1708\n\tSYS___WCTYPE_A                      = 0x6AD // 1709\n\tSYS___GET_WCTYPE_STD_A              = 0x6AE // 1710\n\tSYS___CTYPE_INIT_A                  = 0x6AF // 1711\n\tSYS___ISWCTYPE_A                    = 0x6B0 // 1712\n\tSYS___EXECV_A                       = 0x6B1 // 1713\n\tSYS___IS_WCTYPE_STD_A               = 0x6B2 // 1714\n\tSYS___TOWLOWER_A                    = 0x6B3 // 1715\n\tSYS___TOWLOWER_STD_A                = 0x6B4 // 1716\n\tSYS___TOWUPPER_A                    = 0x6B5 // 1717\n\tSYS___TOWUPPER_STD_A                = 0x6B6 // 1718\n\tSYS___LOCALE_INIT_A                 = 0x6B7 // 1719\n\tSYS___LOCALECONV_A                  = 0x6B8 // 1720\n\tSYS___LOCALECONV_STD_A              = 0x6B9 // 1721\n\tSYS___NL_LANGINFO_A                 = 0x6BA // 1722\n\tSYS___NL_LNAGINFO_STD_A             = 0x6BB // 1723\n\tSYS___MONETARY_INIT_A               = 0x6BC // 1724\n\tSYS___STRFMON_A                     = 0x6BD // 1725\n\tSYS___STRFMON_STD_A                 = 0x6BE // 1726\n\tSYS___GETADDRINFO_A                 = 0x6BF // 1727\n\tSYS___CATGETS_A                     = 0x6C0 // 1728\n\tSYS___EXECVE_A                      = 0x6C1 // 1729\n\tSYS___EXECVP_A                      = 0x6C2 // 1730\n\tSYS___SPAWN_A                       = 0x6C3 // 1731\n\tSYS___GETNAMEINFO_A                 = 0x6C4 // 1732\n\tSYS___SPAWNP_A                      = 0x6C5 // 1733\n\tSYS___NUMERIC_INIT_A                = 0x6C6 // 1734\n\tSYS___RESP_INIT_A                   = 0x6C7 // 1735\n\tSYS___RPMATCH_A                     = 0x6C8 // 1736\n\tSYS___RPMATCH_C_A                   = 0x6C9 // 1737\n\tSYS___RPMATCH_STD_A                 = 0x6CA // 1738\n\tSYS___TIME_INIT_A                   = 0x6CB // 1739\n\tSYS___STRFTIME_A                    = 0x6CC // 1740\n\tSYS___STRFTIME_STD_A                = 0x6CD // 1741\n\tSYS___STRPTIME_A                    = 0x6CE // 1742\n\tSYS___STRPTIME_STD_A                = 0x6CF // 1743\n\tSYS___WCSFTIME_A                    = 0x6D0 // 1744\n\tSYS___WCSFTIME_STD_A                = 0x6D1 // 1745\n\tSYS_____SPAWN2_A                    = 0x6D2 // 1746\n\tSYS_____SPAWNP2_A                   = 0x6D3 // 1747\n\tSYS___SYNTAX_INIT_A                 = 0x6D4 // 1748\n\tSYS___TOD_INIT_A                    = 0x6D5 // 1749\n\tSYS___NL_CSINFO_A                   = 0x6D6 // 1750\n\tSYS___NL_MONINFO_A                  = 0x6D7 // 1751\n\tSYS___NL_NUMINFO_A                  = 0x6D8 // 1752\n\tSYS___NL_RESPINFO_A                 = 0x6D9 // 1753\n\tSYS___NL_TIMINFO_A                  = 0x6DA // 1754\n\tSYS___IF_NAMETOINDEX_A              = 0x6DB // 1755\n\tSYS___IF_INDEXTONAME_A              = 0x6DC // 1756\n\tSYS___PRINTF_A                      = 0x6DD // 1757\n\tSYS___ICONV_OPEN_A                  = 0x6DE // 1758\n\tSYS___DLLLOAD_A                     = 0x6DF // 1759\n\tSYS___DLLQUERYFN_A                  = 0x6E0 // 1760\n\tSYS___DLLQUERYVAR_A                 = 0x6E1 // 1761\n\tSYS_____CHATTR_A                    = 0x6E2 // 1762\n\tSYS___E2A_L                         = 0x6E3 // 1763\n\tSYS_____TOCCSID_A                   = 0x6E4 // 1764\n\tSYS_____TOCSNAME_A                  = 0x6E5 // 1765\n\tSYS_____CCSIDTYPE_A                 = 0x6E6 // 1766\n\tSYS_____CSNAMETYPE_A                = 0x6E7 // 1767\n\tSYS___CHMOD_A                       = 0x6E8 // 1768\n\tSYS___MKDIR_A                       = 0x6E9 // 1769\n\tSYS___STAT_A                        = 0x6EA // 1770\n\tSYS___STAT_O_A                      = 0x6EB // 1771\n\tSYS___MKFIFO_A                      = 0x6EC // 1772\n\tSYS_____OPEN_STAT_A                 = 0x6ED // 1773\n\tSYS___LSTAT_A                       = 0x6EE // 1774\n\tSYS___LSTAT_O_A                     = 0x6EF // 1775\n\tSYS___MKNOD_A                       = 0x6F0 // 1776\n\tSYS___MOUNT_A                       = 0x6F1 // 1777\n\tSYS___UMOUNT_A                      = 0x6F2 // 1778\n\tSYS___CHAUDIT_A                     = 0x6F4 // 1780\n\tSYS___W_GETMNTENT_A                 = 0x6F5 // 1781\n\tSYS___CREAT_A                       = 0x6F6 // 1782\n\tSYS___OPEN_A                        = 0x6F7 // 1783\n\tSYS___SETLOCALE_A                   = 0x6F9 // 1785\n\tSYS___FPRINTF_A                     = 0x6FA // 1786\n\tSYS___SPRINTF_A                     = 0x6FB // 1787\n\tSYS___VFPRINTF_A                    = 0x6FC // 1788\n\tSYS___VPRINTF_A                     = 0x6FD // 1789\n\tSYS___VSPRINTF_A                    = 0x6FE // 1790\n\tSYS___VSWPRINTF_A                   = 0x6FF // 1791\n\tSYS___SWPRINTF_A                    = 0x700 // 1792\n\tSYS___FSCANF_A                      = 0x701 // 1793\n\tSYS___SCANF_A                       = 0x702 // 1794\n\tSYS___SSCANF_A                      = 0x703 // 1795\n\tSYS___SWSCANF_A                     = 0x704 // 1796\n\tSYS___ATOF_A                        = 0x705 // 1797\n\tSYS___ATOI_A                        = 0x706 // 1798\n\tSYS___ATOL_A                        = 0x707 // 1799\n\tSYS___STRTOD_A                      = 0x708 // 1800\n\tSYS___STRTOL_A                      = 0x709 // 1801\n\tSYS___STRTOUL_A                     = 0x70A // 1802\n\tSYS_____AE_CORRESTBL_QUERY_A        = 0x70B // 1803\n\tSYS___A64L_A                        = 0x70C // 1804\n\tSYS___ECVT_A                        = 0x70D // 1805\n\tSYS___FCVT_A                        = 0x70E // 1806\n\tSYS___GCVT_A                        = 0x70F // 1807\n\tSYS___L64A_A                        = 0x710 // 1808\n\tSYS___STRERROR_A                    = 0x711 // 1809\n\tSYS___PERROR_A                      = 0x712 // 1810\n\tSYS___FETCH_A                       = 0x713 // 1811\n\tSYS___GETENV_A                      = 0x714 // 1812\n\tSYS___MKSTEMP_A                     = 0x717 // 1815\n\tSYS___PTSNAME_A                     = 0x718 // 1816\n\tSYS___PUTENV_A                      = 0x719 // 1817\n\tSYS___REALPATH_A                    = 0x71A // 1818\n\tSYS___SETENV_A                      = 0x71B // 1819\n\tSYS___SYSTEM_A                      = 0x71C // 1820\n\tSYS___GETOPT_A                      = 0x71D // 1821\n\tSYS___CATOPEN_A                     = 0x71E // 1822\n\tSYS___ACCESS_A                      = 0x71F // 1823\n\tSYS___CHDIR_A                       = 0x720 // 1824\n\tSYS___CHOWN_A                       = 0x721 // 1825\n\tSYS___CHROOT_A                      = 0x722 // 1826\n\tSYS___GETCWD_A                      = 0x723 // 1827\n\tSYS___GETWD_A                       = 0x724 // 1828\n\tSYS___LCHOWN_A                      = 0x725 // 1829\n\tSYS___LINK_A                        = 0x726 // 1830\n\tSYS___PATHCONF_A                    = 0x727 // 1831\n\tSYS___IF_NAMEINDEX_A                = 0x728 // 1832\n\tSYS___READLINK_A                    = 0x729 // 1833\n\tSYS___RMDIR_A                       = 0x72A // 1834\n\tSYS___STATVFS_A                     = 0x72B // 1835\n\tSYS___SYMLINK_A                     = 0x72C // 1836\n\tSYS___TRUNCATE_A                    = 0x72D // 1837\n\tSYS___UNLINK_A                      = 0x72E // 1838\n\tSYS___GAI_STRERROR_A                = 0x72F // 1839\n\tSYS___EXTLINK_NP_A                  = 0x730 // 1840\n\tSYS___ISALNUM_A                     = 0x731 // 1841\n\tSYS___ISALPHA_A                     = 0x732 // 1842\n\tSYS___A2E_S                         = 0x733 // 1843\n\tSYS___ISCNTRL_A                     = 0x734 // 1844\n\tSYS___ISDIGIT_A                     = 0x735 // 1845\n\tSYS___ISGRAPH_A                     = 0x736 // 1846\n\tSYS___ISLOWER_A                     = 0x737 // 1847\n\tSYS___ISPRINT_A                     = 0x738 // 1848\n\tSYS___ISPUNCT_A                     = 0x739 // 1849\n\tSYS___ISSPACE_A                     = 0x73A // 1850\n\tSYS___ISUPPER_A                     = 0x73B // 1851\n\tSYS___ISXDIGIT_A                    = 0x73C // 1852\n\tSYS___TOLOWER_A                     = 0x73D // 1853\n\tSYS___TOUPPER_A                     = 0x73E // 1854\n\tSYS___ISWALNUM_A                    = 0x73F // 1855\n\tSYS___ISWALPHA_A                    = 0x740 // 1856\n\tSYS___A2E_L                         = 0x741 // 1857\n\tSYS___ISWCNTRL_A                    = 0x742 // 1858\n\tSYS___ISWDIGIT_A                    = 0x743 // 1859\n\tSYS___ISWGRAPH_A                    = 0x744 // 1860\n\tSYS___ISWLOWER_A                    = 0x745 // 1861\n\tSYS___ISWPRINT_A                    = 0x746 // 1862\n\tSYS___ISWPUNCT_A                    = 0x747 // 1863\n\tSYS___ISWSPACE_A                    = 0x748 // 1864\n\tSYS___ISWUPPER_A                    = 0x749 // 1865\n\tSYS___ISWXDIGIT_A                   = 0x74A // 1866\n\tSYS___CONFSTR_A                     = 0x74B // 1867\n\tSYS___FTOK_A                        = 0x74C // 1868\n\tSYS___MKTEMP_A                      = 0x74D // 1869\n\tSYS___FDOPEN_A                      = 0x74E // 1870\n\tSYS___FLDATA_A                      = 0x74F // 1871\n\tSYS___REMOVE_A                      = 0x750 // 1872\n\tSYS___RENAME_A                      = 0x751 // 1873\n\tSYS___TMPNAM_A                      = 0x752 // 1874\n\tSYS___FOPEN_A                       = 0x753 // 1875\n\tSYS___FREOPEN_A                     = 0x754 // 1876\n\tSYS___CUSERID_A                     = 0x755 // 1877\n\tSYS___POPEN_A                       = 0x756 // 1878\n\tSYS___TEMPNAM_A                     = 0x757 // 1879\n\tSYS___FTW_A                         = 0x758 // 1880\n\tSYS___GETGRENT_A                    = 0x759 // 1881\n\tSYS___GETGRGID_A                    = 0x75A // 1882\n\tSYS___GETGRNAM_A                    = 0x75B // 1883\n\tSYS___GETGROUPSBYNAME_A             = 0x75C // 1884\n\tSYS___GETHOSTENT_A                  = 0x75D // 1885\n\tSYS___GETHOSTNAME_A                 = 0x75E // 1886\n\tSYS___GETLOGIN_A                    = 0x75F // 1887\n\tSYS___INET_NTOP_A                   = 0x760 // 1888\n\tSYS___GETPASS_A                     = 0x761 // 1889\n\tSYS___GETPWENT_A                    = 0x762 // 1890\n\tSYS___GETPWNAM_A                    = 0x763 // 1891\n\tSYS___GETPWUID_A                    = 0x764 // 1892\n\tSYS_____CHECK_RESOURCE_AUTH_NP_A    = 0x765 // 1893\n\tSYS___CHECKSCHENV_A                 = 0x766 // 1894\n\tSYS___CONNECTSERVER_A               = 0x767 // 1895\n\tSYS___CONNECTWORKMGR_A              = 0x768 // 1896\n\tSYS_____CONSOLE_A                   = 0x769 // 1897\n\tSYS___CREATEWORKUNIT_A              = 0x76A // 1898\n\tSYS___CTERMID_A                     = 0x76B // 1899\n\tSYS___FMTMSG_A                      = 0x76C // 1900\n\tSYS___INITGROUPS_A                  = 0x76D // 1901\n\tSYS_____LOGIN_A                     = 0x76E // 1902\n\tSYS___MSGRCV_A                      = 0x76F // 1903\n\tSYS___MSGSND_A                      = 0x770 // 1904\n\tSYS___MSGXRCV_A                     = 0x771 // 1905\n\tSYS___NFTW_A                        = 0x772 // 1906\n\tSYS_____PASSWD_A                    = 0x773 // 1907\n\tSYS___PTHREAD_SECURITY_NP_A         = 0x774 // 1908\n\tSYS___QUERYMETRICS_A                = 0x775 // 1909\n\tSYS___QUERYSCHENV                   = 0x776 // 1910\n\tSYS___READV_A                       = 0x777 // 1911\n\tSYS_____SERVER_CLASSIFY_A           = 0x778 // 1912\n\tSYS_____SERVER_INIT_A               = 0x779 // 1913\n\tSYS_____SERVER_PWU_A                = 0x77A // 1914\n\tSYS___STRCASECMP_A                  = 0x77B // 1915\n\tSYS___STRNCASECMP_A                 = 0x77C // 1916\n\tSYS___TTYNAME_A                     = 0x77D // 1917\n\tSYS___UNAME_A                       = 0x77E // 1918\n\tSYS___UTIMES_A                      = 0x77F // 1919\n\tSYS___W_GETPSENT_A                  = 0x780 // 1920\n\tSYS___WRITEV_A                      = 0x781 // 1921\n\tSYS___W_STATFS_A                    = 0x782 // 1922\n\tSYS___W_STATVFS_A                   = 0x783 // 1923\n\tSYS___FPUTC_A                       = 0x784 // 1924\n\tSYS___PUTCHAR_A                     = 0x785 // 1925\n\tSYS___PUTS_A                        = 0x786 // 1926\n\tSYS___FGETS_A                       = 0x787 // 1927\n\tSYS___GETS_A                        = 0x788 // 1928\n\tSYS___FPUTS_A                       = 0x789 // 1929\n\tSYS___FREAD_A                       = 0x78A // 1930\n\tSYS___FWRITE_A                      = 0x78B // 1931\n\tSYS___OPEN_O_A                      = 0x78C // 1932\n\tSYS___ISASCII                       = 0x78D // 1933\n\tSYS___CREAT_O_A                     = 0x78E // 1934\n\tSYS___ENVNA                         = 0x78F // 1935\n\tSYS___PUTC_A                        = 0x790 // 1936\n\tSYS___AE_THREAD_SETMODE             = 0x791 // 1937\n\tSYS___AE_THREAD_SWAPMODE            = 0x792 // 1938\n\tSYS___GETNETBYADDR_A                = 0x793 // 1939\n\tSYS___GETNETBYNAME_A                = 0x794 // 1940\n\tSYS___GETNETENT_A                   = 0x795 // 1941\n\tSYS___GETPROTOBYNAME_A              = 0x796 // 1942\n\tSYS___GETPROTOBYNUMBER_A            = 0x797 // 1943\n\tSYS___GETPROTOENT_A                 = 0x798 // 1944\n\tSYS___GETSERVBYNAME_A               = 0x799 // 1945\n\tSYS___GETSERVBYPORT_A               = 0x79A // 1946\n\tSYS___GETSERVENT_A                  = 0x79B // 1947\n\tSYS___ASCTIME_A                     = 0x79C // 1948\n\tSYS___CTIME_A                       = 0x79D // 1949\n\tSYS___GETDATE_A                     = 0x79E // 1950\n\tSYS___TZSET_A                       = 0x79F // 1951\n\tSYS___UTIME_A                       = 0x7A0 // 1952\n\tSYS___ASCTIME_R_A                   = 0x7A1 // 1953\n\tSYS___CTIME_R_A                     = 0x7A2 // 1954\n\tSYS___STRTOLL_A                     = 0x7A3 // 1955\n\tSYS___STRTOULL_A                    = 0x7A4 // 1956\n\tSYS___FPUTWC_A                      = 0x7A5 // 1957\n\tSYS___PUTWC_A                       = 0x7A6 // 1958\n\tSYS___PUTWCHAR_A                    = 0x7A7 // 1959\n\tSYS___FPUTWS_A                      = 0x7A8 // 1960\n\tSYS___UNGETWC_A                     = 0x7A9 // 1961\n\tSYS___FGETWC_A                      = 0x7AA // 1962\n\tSYS___GETWC_A                       = 0x7AB // 1963\n\tSYS___GETWCHAR_A                    = 0x7AC // 1964\n\tSYS___FGETWS_A                      = 0x7AD // 1965\n\tSYS___GETTIMEOFDAY_A                = 0x7AE // 1966\n\tSYS___GMTIME_A                      = 0x7AF // 1967\n\tSYS___GMTIME_R_A                    = 0x7B0 // 1968\n\tSYS___LOCALTIME_A                   = 0x7B1 // 1969\n\tSYS___LOCALTIME_R_A                 = 0x7B2 // 1970\n\tSYS___MKTIME_A                      = 0x7B3 // 1971\n\tSYS___TZZNA                         = 0x7B4 // 1972\n\tSYS_UNATEXIT                        = 0x7B5 // 1973\n\tSYS___CEE3DMP_A                     = 0x7B6 // 1974\n\tSYS___CDUMP_A                       = 0x7B7 // 1975\n\tSYS___CSNAP_A                       = 0x7B8 // 1976\n\tSYS___CTEST_A                       = 0x7B9 // 1977\n\tSYS___CTRACE_A                      = 0x7BA // 1978\n\tSYS___VSWPRNTF2_A                   = 0x7BB // 1979\n\tSYS___INET_PTON_A                   = 0x7BC // 1980\n\tSYS___SYSLOG_A                      = 0x7BD // 1981\n\tSYS___CRYPT_A                       = 0x7BE // 1982\n\tSYS_____OPENDIR2_A                  = 0x7BF // 1983\n\tSYS_____READDIR2_A                  = 0x7C0 // 1984\n\tSYS___OPENDIR_A                     = 0x7C2 // 1986\n\tSYS___READDIR_A                     = 0x7C3 // 1987\n\tSYS_PREAD                           = 0x7C7 // 1991\n\tSYS_PWRITE                          = 0x7C8 // 1992\n\tSYS_M_CREATE_LAYOUT                 = 0x7C9 // 1993\n\tSYS_M_DESTROY_LAYOUT                = 0x7CA // 1994\n\tSYS_M_GETVALUES_LAYOUT              = 0x7CB // 1995\n\tSYS_M_SETVALUES_LAYOUT              = 0x7CC // 1996\n\tSYS_M_TRANSFORM_LAYOUT              = 0x7CD // 1997\n\tSYS_M_WTRANSFORM_LAYOUT             = 0x7CE // 1998\n\tSYS_FWPRINTF                        = 0x7D1 // 2001\n\tSYS_WPRINTF                         = 0x7D2 // 2002\n\tSYS_VFWPRINT                        = 0x7D3 // 2003\n\tSYS_VFWPRINTF                       = 0x7D3 // 2003\n\tSYS_VWPRINTF                        = 0x7D4 // 2004\n\tSYS_FWSCANF                         = 0x7D5 // 2005\n\tSYS_WSCANF                          = 0x7D6 // 2006\n\tSYS_WCTRANS                         = 0x7D7 // 2007\n\tSYS_TOWCTRAN                        = 0x7D8 // 2008\n\tSYS_TOWCTRANS                       = 0x7D8 // 2008\n\tSYS___WCSTOD_A                      = 0x7D9 // 2009\n\tSYS___WCSTOL_A                      = 0x7DA // 2010\n\tSYS___WCSTOUL_A                     = 0x7DB // 2011\n\tSYS___BASENAME_A                    = 0x7DC // 2012\n\tSYS___DIRNAME_A                     = 0x7DD // 2013\n\tSYS___GLOB_A                        = 0x7DE // 2014\n\tSYS_FWIDE                           = 0x7DF // 2015\n\tSYS___OSNAME                        = 0x7E0 // 2016\n\tSYS_____OSNAME_A                    = 0x7E1 // 2017\n\tSYS___BTOWC_A                       = 0x7E4 // 2020\n\tSYS___WCTOB_A                       = 0x7E5 // 2021\n\tSYS___DBM_OPEN_A                    = 0x7E6 // 2022\n\tSYS___VFPRINTF2_A                   = 0x7E7 // 2023\n\tSYS___VPRINTF2_A                    = 0x7E8 // 2024\n\tSYS___VSPRINTF2_A                   = 0x7E9 // 2025\n\tSYS___CEIL_H                        = 0x7EA // 2026\n\tSYS___FLOOR_H                       = 0x7EB // 2027\n\tSYS___MODF_H                        = 0x7EC // 2028\n\tSYS___FABS_H                        = 0x7ED // 2029\n\tSYS___J0_H                          = 0x7EE // 2030\n\tSYS___J1_H                          = 0x7EF // 2031\n\tSYS___JN_H                          = 0x7F0 // 2032\n\tSYS___Y0_H                          = 0x7F1 // 2033\n\tSYS___Y1_H                          = 0x7F2 // 2034\n\tSYS___YN_H                          = 0x7F3 // 2035\n\tSYS___CEILF_H                       = 0x7F4 // 2036\n\tSYS___CEILL_H                       = 0x7F5 // 2037\n\tSYS___FLOORF_H                      = 0x7F6 // 2038\n\tSYS___FLOORL_H                      = 0x7F7 // 2039\n\tSYS___MODFF_H                       = 0x7F8 // 2040\n\tSYS___MODFL_H                       = 0x7F9 // 2041\n\tSYS___FABSF_H                       = 0x7FA // 2042\n\tSYS___FABSL_H                       = 0x7FB // 2043\n\tSYS___MALLOC24                      = 0x7FC // 2044\n\tSYS___MALLOC31                      = 0x7FD // 2045\n\tSYS_ACL_INIT                        = 0x7FE // 2046\n\tSYS_ACL_FREE                        = 0x7FF // 2047\n\tSYS_ACL_FIRST_ENTRY                 = 0x800 // 2048\n\tSYS_ACL_GET_ENTRY                   = 0x801 // 2049\n\tSYS_ACL_VALID                       = 0x802 // 2050\n\tSYS_ACL_CREATE_ENTRY                = 0x803 // 2051\n\tSYS_ACL_DELETE_ENTRY                = 0x804 // 2052\n\tSYS_ACL_UPDATE_ENTRY                = 0x805 // 2053\n\tSYS_ACL_DELETE_FD                   = 0x806 // 2054\n\tSYS_ACL_DELETE_FILE                 = 0x807 // 2055\n\tSYS_ACL_GET_FD                      = 0x808 // 2056\n\tSYS_ACL_GET_FILE                    = 0x809 // 2057\n\tSYS_ACL_SET_FD                      = 0x80A // 2058\n\tSYS_ACL_SET_FILE                    = 0x80B // 2059\n\tSYS_ACL_FROM_TEXT                   = 0x80C // 2060\n\tSYS_ACL_TO_TEXT                     = 0x80D // 2061\n\tSYS_ACL_SORT                        = 0x80E // 2062\n\tSYS___SHUTDOWN_REGISTRATION         = 0x80F // 2063\n\tSYS___ERFL_B                        = 0x810 // 2064\n\tSYS___ERFCL_B                       = 0x811 // 2065\n\tSYS___LGAMMAL_B                     = 0x812 // 2066\n\tSYS___SETHOOKEVENTS                 = 0x813 // 2067\n\tSYS_IF_NAMETOINDEX                  = 0x814 // 2068\n\tSYS_IF_INDEXTONAME                  = 0x815 // 2069\n\tSYS_IF_NAMEINDEX                    = 0x816 // 2070\n\tSYS_IF_FREENAMEINDEX                = 0x817 // 2071\n\tSYS_GETADDRINFO                     = 0x818 // 2072\n\tSYS_GETNAMEINFO                     = 0x819 // 2073\n\tSYS_FREEADDRINFO                    = 0x81A // 2074\n\tSYS_GAI_STRERROR                    = 0x81B // 2075\n\tSYS_REXEC_AF                        = 0x81C // 2076\n\tSYS___POE                           = 0x81D // 2077\n\tSYS___DYNALLOC_A                    = 0x81F // 2079\n\tSYS___DYNFREE_A                     = 0x820 // 2080\n\tSYS___RES_QUERY_A                   = 0x821 // 2081\n\tSYS___RES_SEARCH_A                  = 0x822 // 2082\n\tSYS___RES_QUERYDOMAIN_A             = 0x823 // 2083\n\tSYS___RES_MKQUERY_A                 = 0x824 // 2084\n\tSYS___RES_SEND_A                    = 0x825 // 2085\n\tSYS___DN_EXPAND_A                   = 0x826 // 2086\n\tSYS___DN_SKIPNAME_A                 = 0x827 // 2087\n\tSYS___DN_COMP_A                     = 0x828 // 2088\n\tSYS___DN_FIND_A                     = 0x829 // 2089\n\tSYS___NLIST_A                       = 0x82A // 2090\n\tSYS_____TCGETCP_A                   = 0x82B // 2091\n\tSYS_____TCSETCP_A                   = 0x82C // 2092\n\tSYS_____W_PIOCTL_A                  = 0x82E // 2094\n\tSYS___INET_ADDR_A                   = 0x82F // 2095\n\tSYS___INET_NTOA_A                   = 0x830 // 2096\n\tSYS___INET_NETWORK_A                = 0x831 // 2097\n\tSYS___ACCEPT_A                      = 0x832 // 2098\n\tSYS___ACCEPT_AND_RECV_A             = 0x833 // 2099\n\tSYS___BIND_A                        = 0x834 // 2100\n\tSYS___CONNECT_A                     = 0x835 // 2101\n\tSYS___GETPEERNAME_A                 = 0x836 // 2102\n\tSYS___GETSOCKNAME_A                 = 0x837 // 2103\n\tSYS___RECVFROM_A                    = 0x838 // 2104\n\tSYS___SENDTO_A                      = 0x839 // 2105\n\tSYS___SENDMSG_A                     = 0x83A // 2106\n\tSYS___RECVMSG_A                     = 0x83B // 2107\n\tSYS_____LCHATTR_A                   = 0x83C // 2108\n\tSYS___CABEND                        = 0x83D // 2109\n\tSYS___LE_CIB_GET                    = 0x83E // 2110\n\tSYS___SET_LAA_FOR_JIT               = 0x83F // 2111\n\tSYS___LCHATTR                       = 0x840 // 2112\n\tSYS___WRITEDOWN                     = 0x841 // 2113\n\tSYS_PTHREAD_MUTEX_INIT2             = 0x842 // 2114\n\tSYS___ACOSHF_B                      = 0x843 // 2115\n\tSYS___ACOSHL_B                      = 0x844 // 2116\n\tSYS___ASINHF_B                      = 0x845 // 2117\n\tSYS___ASINHL_B                      = 0x846 // 2118\n\tSYS___ATANHF_B                      = 0x847 // 2119\n\tSYS___ATANHL_B                      = 0x848 // 2120\n\tSYS___CBRTF_B                       = 0x849 // 2121\n\tSYS___CBRTL_B                       = 0x84A // 2122\n\tSYS___COPYSIGNF_B                   = 0x84B // 2123\n\tSYS___COPYSIGNL_B                   = 0x84C // 2124\n\tSYS___COTANF_B                      = 0x84D // 2125\n\tSYS___COTAN_B                       = 0x84E // 2126\n\tSYS___COTANL_B                      = 0x84F // 2127\n\tSYS___EXP2F_B                       = 0x850 // 2128\n\tSYS___EXP2L_B                       = 0x851 // 2129\n\tSYS___EXPM1F_B                      = 0x852 // 2130\n\tSYS___EXPM1L_B                      = 0x853 // 2131\n\tSYS___FDIMF_B                       = 0x854 // 2132\n\tSYS___FDIM_B                        = 0x855 // 2133\n\tSYS___FDIML_B                       = 0x856 // 2134\n\tSYS___HYPOTF_B                      = 0x857 // 2135\n\tSYS___HYPOTL_B                      = 0x858 // 2136\n\tSYS___LOG1PF_B                      = 0x859 // 2137\n\tSYS___LOG1PL_B                      = 0x85A // 2138\n\tSYS___LOG2F_B                       = 0x85B // 2139\n\tSYS___LOG2_B                        = 0x85C // 2140\n\tSYS___LOG2L_B                       = 0x85D // 2141\n\tSYS___REMAINDERF_B                  = 0x85E // 2142\n\tSYS___REMAINDERL_B                  = 0x85F // 2143\n\tSYS___REMQUOF_B                     = 0x860 // 2144\n\tSYS___REMQUO_B                      = 0x861 // 2145\n\tSYS___REMQUOL_B                     = 0x862 // 2146\n\tSYS___TGAMMAF_B                     = 0x863 // 2147\n\tSYS___TGAMMA_B                      = 0x864 // 2148\n\tSYS___TGAMMAL_B                     = 0x865 // 2149\n\tSYS___TRUNCF_B                      = 0x866 // 2150\n\tSYS___TRUNC_B                       = 0x867 // 2151\n\tSYS___TRUNCL_B                      = 0x868 // 2152\n\tSYS___LGAMMAF_B                     = 0x869 // 2153\n\tSYS___LROUNDF_B                     = 0x86A // 2154\n\tSYS___LROUND_B                      = 0x86B // 2155\n\tSYS___ERFF_B                        = 0x86C // 2156\n\tSYS___ERFCF_B                       = 0x86D // 2157\n\tSYS_ACOSHF                          = 0x86E // 2158\n\tSYS_ACOSHL                          = 0x86F // 2159\n\tSYS_ASINHF                          = 0x870 // 2160\n\tSYS_ASINHL                          = 0x871 // 2161\n\tSYS_ATANHF                          = 0x872 // 2162\n\tSYS_ATANHL                          = 0x873 // 2163\n\tSYS_CBRTF                           = 0x874 // 2164\n\tSYS_CBRTL                           = 0x875 // 2165\n\tSYS_COPYSIGNF                       = 0x876 // 2166\n\tSYS_CPYSIGNF                        = 0x876 // 2166\n\tSYS_COPYSIGNL                       = 0x877 // 2167\n\tSYS_CPYSIGNL                        = 0x877 // 2167\n\tSYS_COTANF                          = 0x878 // 2168\n\tSYS___COTANF                        = 0x878 // 2168\n\tSYS_COTAN                           = 0x879 // 2169\n\tSYS___COTAN                         = 0x879 // 2169\n\tSYS_COTANL                          = 0x87A // 2170\n\tSYS___COTANL                        = 0x87A // 2170\n\tSYS_EXP2F                           = 0x87B // 2171\n\tSYS_EXP2L                           = 0x87C // 2172\n\tSYS_EXPM1F                          = 0x87D // 2173\n\tSYS_EXPM1L                          = 0x87E // 2174\n\tSYS_FDIMF                           = 0x87F // 2175\n\tSYS_FDIM                            = 0x881 // 2177\n\tSYS_FDIML                           = 0x882 // 2178\n\tSYS_HYPOTF                          = 0x883 // 2179\n\tSYS_HYPOTL                          = 0x884 // 2180\n\tSYS_LOG1PF                          = 0x885 // 2181\n\tSYS_LOG1PL                          = 0x886 // 2182\n\tSYS_LOG2F                           = 0x887 // 2183\n\tSYS_LOG2                            = 0x888 // 2184\n\tSYS_LOG2L                           = 0x889 // 2185\n\tSYS_REMAINDERF                      = 0x88A // 2186\n\tSYS_REMAINDF                        = 0x88A // 2186\n\tSYS_REMAINDERL                      = 0x88B // 2187\n\tSYS_REMAINDL                        = 0x88B // 2187\n\tSYS_REMQUOF                         = 0x88C // 2188\n\tSYS_REMQUO                          = 0x88D // 2189\n\tSYS_REMQUOL                         = 0x88E // 2190\n\tSYS_TGAMMAF                         = 0x88F // 2191\n\tSYS_TGAMMA                          = 0x890 // 2192\n\tSYS_TGAMMAL                         = 0x891 // 2193\n\tSYS_TRUNCF                          = 0x892 // 2194\n\tSYS_TRUNC                           = 0x893 // 2195\n\tSYS_TRUNCL                          = 0x894 // 2196\n\tSYS_LGAMMAF                         = 0x895 // 2197\n\tSYS_LGAMMAL                         = 0x896 // 2198\n\tSYS_LROUNDF                         = 0x897 // 2199\n\tSYS_LROUND                          = 0x898 // 2200\n\tSYS_ERFF                            = 0x899 // 2201\n\tSYS_ERFL                            = 0x89A // 2202\n\tSYS_ERFCF                           = 0x89B // 2203\n\tSYS_ERFCL                           = 0x89C // 2204\n\tSYS___EXP2_B                        = 0x89D // 2205\n\tSYS_EXP2                            = 0x89E // 2206\n\tSYS___FAR_JUMP                      = 0x89F // 2207\n\tSYS___TCGETATTR_A                   = 0x8A1 // 2209\n\tSYS___TCSETATTR_A                   = 0x8A2 // 2210\n\tSYS___SUPERKILL                     = 0x8A4 // 2212\n\tSYS___LE_CONDITION_TOKEN_BUILD      = 0x8A5 // 2213\n\tSYS___LE_MSG_ADD_INSERT             = 0x8A6 // 2214\n\tSYS___LE_MSG_GET                    = 0x8A7 // 2215\n\tSYS___LE_MSG_GET_AND_WRITE          = 0x8A8 // 2216\n\tSYS___LE_MSG_WRITE                  = 0x8A9 // 2217\n\tSYS___ITOA                          = 0x8AA // 2218\n\tSYS___UTOA                          = 0x8AB // 2219\n\tSYS___LTOA                          = 0x8AC // 2220\n\tSYS___ULTOA                         = 0x8AD // 2221\n\tSYS___LLTOA                         = 0x8AE // 2222\n\tSYS___ULLTOA                        = 0x8AF // 2223\n\tSYS___ITOA_A                        = 0x8B0 // 2224\n\tSYS___UTOA_A                        = 0x8B1 // 2225\n\tSYS___LTOA_A                        = 0x8B2 // 2226\n\tSYS___ULTOA_A                       = 0x8B3 // 2227\n\tSYS___LLTOA_A                       = 0x8B4 // 2228\n\tSYS___ULLTOA_A                      = 0x8B5 // 2229\n\tSYS_____GETENV_A                    = 0x8C3 // 2243\n\tSYS___REXEC_A                       = 0x8C4 // 2244\n\tSYS___REXEC_AF_A                    = 0x8C5 // 2245\n\tSYS___GETUTXENT_A                   = 0x8C6 // 2246\n\tSYS___GETUTXID_A                    = 0x8C7 // 2247\n\tSYS___GETUTXLINE_A                  = 0x8C8 // 2248\n\tSYS___PUTUTXLINE_A                  = 0x8C9 // 2249\n\tSYS_____UTMPXNAME_A                 = 0x8CA // 2250\n\tSYS___PUTC_UNLOCKED_A               = 0x8CB // 2251\n\tSYS___PUTCHAR_UNLOCKED_A            = 0x8CC // 2252\n\tSYS___SNPRINTF_A                    = 0x8CD // 2253\n\tSYS___VSNPRINTF_A                   = 0x8CE // 2254\n\tSYS___DLOPEN_A                      = 0x8D0 // 2256\n\tSYS___DLSYM_A                       = 0x8D1 // 2257\n\tSYS___DLERROR_A                     = 0x8D2 // 2258\n\tSYS_FLOCKFILE                       = 0x8D3 // 2259\n\tSYS_FTRYLOCKFILE                    = 0x8D4 // 2260\n\tSYS_FUNLOCKFILE                     = 0x8D5 // 2261\n\tSYS_GETC_UNLOCKED                   = 0x8D6 // 2262\n\tSYS_GETCHAR_UNLOCKED                = 0x8D7 // 2263\n\tSYS_PUTC_UNLOCKED                   = 0x8D8 // 2264\n\tSYS_PUTCHAR_UNLOCKED                = 0x8D9 // 2265\n\tSYS_SNPRINTF                        = 0x8DA // 2266\n\tSYS_VSNPRINTF                       = 0x8DB // 2267\n\tSYS_DLOPEN                          = 0x8DD // 2269\n\tSYS_DLSYM                           = 0x8DE // 2270\n\tSYS_DLCLOSE                         = 0x8DF // 2271\n\tSYS_DLERROR                         = 0x8E0 // 2272\n\tSYS___SET_EXCEPTION_HANDLER         = 0x8E2 // 2274\n\tSYS___RESET_EXCEPTION_HANDLER       = 0x8E3 // 2275\n\tSYS___VHM_EVENT                     = 0x8E4 // 2276\n\tSYS___ABS_H                         = 0x8E6 // 2278\n\tSYS___ABSF_H                        = 0x8E7 // 2279\n\tSYS___ABSL_H                        = 0x8E8 // 2280\n\tSYS___ACOS_H                        = 0x8E9 // 2281\n\tSYS___ACOSF_H                       = 0x8EA // 2282\n\tSYS___ACOSL_H                       = 0x8EB // 2283\n\tSYS___ACOSH_H                       = 0x8EC // 2284\n\tSYS___ASIN_H                        = 0x8ED // 2285\n\tSYS___ASINF_H                       = 0x8EE // 2286\n\tSYS___ASINL_H                       = 0x8EF // 2287\n\tSYS___ASINH_H                       = 0x8F0 // 2288\n\tSYS___ATAN_H                        = 0x8F1 // 2289\n\tSYS___ATANF_H                       = 0x8F2 // 2290\n\tSYS___ATANL_H                       = 0x8F3 // 2291\n\tSYS___ATANH_H                       = 0x8F4 // 2292\n\tSYS___ATANHF_H                      = 0x8F5 // 2293\n\tSYS___ATANHL_H                      = 0x8F6 // 2294\n\tSYS___ATAN2_H                       = 0x8F7 // 2295\n\tSYS___ATAN2F_H                      = 0x8F8 // 2296\n\tSYS___ATAN2L_H                      = 0x8F9 // 2297\n\tSYS___CBRT_H                        = 0x8FA // 2298\n\tSYS___COPYSIGNF_H                   = 0x8FB // 2299\n\tSYS___COPYSIGNL_H                   = 0x8FC // 2300\n\tSYS___COS_H                         = 0x8FD // 2301\n\tSYS___COSF_H                        = 0x8FE // 2302\n\tSYS___COSL_H                        = 0x8FF // 2303\n\tSYS___COSHF_H                       = 0x900 // 2304\n\tSYS___COSHL_H                       = 0x901 // 2305\n\tSYS___COTAN_H                       = 0x902 // 2306\n\tSYS___COTANF_H                      = 0x903 // 2307\n\tSYS___COTANL_H                      = 0x904 // 2308\n\tSYS___ERF_H                         = 0x905 // 2309\n\tSYS___ERFF_H                        = 0x906 // 2310\n\tSYS___ERFL_H                        = 0x907 // 2311\n\tSYS___ERFC_H                        = 0x908 // 2312\n\tSYS___ERFCF_H                       = 0x909 // 2313\n\tSYS___ERFCL_H                       = 0x90A // 2314\n\tSYS___EXP_H                         = 0x90B // 2315\n\tSYS___EXPF_H                        = 0x90C // 2316\n\tSYS___EXPL_H                        = 0x90D // 2317\n\tSYS___EXPM1_H                       = 0x90E // 2318\n\tSYS___FDIM_H                        = 0x90F // 2319\n\tSYS___FDIMF_H                       = 0x910 // 2320\n\tSYS___FDIML_H                       = 0x911 // 2321\n\tSYS___FMOD_H                        = 0x912 // 2322\n\tSYS___FMODF_H                       = 0x913 // 2323\n\tSYS___FMODL_H                       = 0x914 // 2324\n\tSYS___GAMMA_H                       = 0x915 // 2325\n\tSYS___HYPOT_H                       = 0x916 // 2326\n\tSYS___ILOGB_H                       = 0x917 // 2327\n\tSYS___LGAMMA_H                      = 0x918 // 2328\n\tSYS___LGAMMAF_H                     = 0x919 // 2329\n\tSYS___LOG_H                         = 0x91A // 2330\n\tSYS___LOGF_H                        = 0x91B // 2331\n\tSYS___LOGL_H                        = 0x91C // 2332\n\tSYS___LOGB_H                        = 0x91D // 2333\n\tSYS___LOG2_H                        = 0x91E // 2334\n\tSYS___LOG2F_H                       = 0x91F // 2335\n\tSYS___LOG2L_H                       = 0x920 // 2336\n\tSYS___LOG1P_H                       = 0x921 // 2337\n\tSYS___LOG10_H                       = 0x922 // 2338\n\tSYS___LOG10F_H                      = 0x923 // 2339\n\tSYS___LOG10L_H                      = 0x924 // 2340\n\tSYS___LROUND_H                      = 0x925 // 2341\n\tSYS___LROUNDF_H                     = 0x926 // 2342\n\tSYS___NEXTAFTER_H                   = 0x927 // 2343\n\tSYS___POW_H                         = 0x928 // 2344\n\tSYS___POWF_H                        = 0x929 // 2345\n\tSYS___POWL_H                        = 0x92A // 2346\n\tSYS___REMAINDER_H                   = 0x92B // 2347\n\tSYS___RINT_H                        = 0x92C // 2348\n\tSYS___SCALB_H                       = 0x92D // 2349\n\tSYS___SIN_H                         = 0x92E // 2350\n\tSYS___SINF_H                        = 0x92F // 2351\n\tSYS___SINL_H                        = 0x930 // 2352\n\tSYS___SINH_H                        = 0x931 // 2353\n\tSYS___SINHF_H                       = 0x932 // 2354\n\tSYS___SINHL_H                       = 0x933 // 2355\n\tSYS___SQRT_H                        = 0x934 // 2356\n\tSYS___SQRTF_H                       = 0x935 // 2357\n\tSYS___SQRTL_H                       = 0x936 // 2358\n\tSYS___TAN_H                         = 0x937 // 2359\n\tSYS___TANF_H                        = 0x938 // 2360\n\tSYS___TANL_H                        = 0x939 // 2361\n\tSYS___TANH_H                        = 0x93A // 2362\n\tSYS___TANHF_H                       = 0x93B // 2363\n\tSYS___TANHL_H                       = 0x93C // 2364\n\tSYS___TGAMMA_H                      = 0x93D // 2365\n\tSYS___TGAMMAF_H                     = 0x93E // 2366\n\tSYS___TRUNC_H                       = 0x93F // 2367\n\tSYS___TRUNCF_H                      = 0x940 // 2368\n\tSYS___TRUNCL_H                      = 0x941 // 2369\n\tSYS___COSH_H                        = 0x942 // 2370\n\tSYS___LE_DEBUG_SET_RESUME_MCH       = 0x943 // 2371\n\tSYS_VFSCANF                         = 0x944 // 2372\n\tSYS_VSCANF                          = 0x946 // 2374\n\tSYS_VSSCANF                         = 0x948 // 2376\n\tSYS_VFWSCANF                        = 0x94A // 2378\n\tSYS_VWSCANF                         = 0x94C // 2380\n\tSYS_VSWSCANF                        = 0x94E // 2382\n\tSYS_IMAXABS                         = 0x950 // 2384\n\tSYS_IMAXDIV                         = 0x951 // 2385\n\tSYS_STRTOIMAX                       = 0x952 // 2386\n\tSYS_STRTOUMAX                       = 0x953 // 2387\n\tSYS_WCSTOIMAX                       = 0x954 // 2388\n\tSYS_WCSTOUMAX                       = 0x955 // 2389\n\tSYS_ATOLL                           = 0x956 // 2390\n\tSYS_STRTOF                          = 0x957 // 2391\n\tSYS_STRTOLD                         = 0x958 // 2392\n\tSYS_WCSTOF                          = 0x959 // 2393\n\tSYS_WCSTOLD                         = 0x95A // 2394\n\tSYS_INET6_RTH_SPACE                 = 0x95B // 2395\n\tSYS_INET6_RTH_INIT                  = 0x95C // 2396\n\tSYS_INET6_RTH_ADD                   = 0x95D // 2397\n\tSYS_INET6_RTH_REVERSE               = 0x95E // 2398\n\tSYS_INET6_RTH_SEGMENTS              = 0x95F // 2399\n\tSYS_INET6_RTH_GETADDR               = 0x960 // 2400\n\tSYS_INET6_OPT_INIT                  = 0x961 // 2401\n\tSYS_INET6_OPT_APPEND                = 0x962 // 2402\n\tSYS_INET6_OPT_FINISH                = 0x963 // 2403\n\tSYS_INET6_OPT_SET_VAL               = 0x964 // 2404\n\tSYS_INET6_OPT_NEXT                  = 0x965 // 2405\n\tSYS_INET6_OPT_FIND                  = 0x966 // 2406\n\tSYS_INET6_OPT_GET_VAL               = 0x967 // 2407\n\tSYS___POW_I                         = 0x987 // 2439\n\tSYS___POW_I_B                       = 0x988 // 2440\n\tSYS___POW_I_H                       = 0x989 // 2441\n\tSYS___POW_II                        = 0x98A // 2442\n\tSYS___POW_II_B                      = 0x98B // 2443\n\tSYS___POW_II_H                      = 0x98C // 2444\n\tSYS_CABS                            = 0x98E // 2446\n\tSYS___CABS_B                        = 0x98F // 2447\n\tSYS___CABS_H                        = 0x990 // 2448\n\tSYS_CABSF                           = 0x991 // 2449\n\tSYS___CABSF_B                       = 0x992 // 2450\n\tSYS___CABSF_H                       = 0x993 // 2451\n\tSYS_CABSL                           = 0x994 // 2452\n\tSYS___CABSL_B                       = 0x995 // 2453\n\tSYS___CABSL_H                       = 0x996 // 2454\n\tSYS_CACOS                           = 0x997 // 2455\n\tSYS___CACOS_B                       = 0x998 // 2456\n\tSYS___CACOS_H                       = 0x999 // 2457\n\tSYS_CACOSF                          = 0x99A // 2458\n\tSYS___CACOSF_B                      = 0x99B // 2459\n\tSYS___CACOSF_H                      = 0x99C // 2460\n\tSYS_CACOSL                          = 0x99D // 2461\n\tSYS___CACOSL_B                      = 0x99E // 2462\n\tSYS___CACOSL_H                      = 0x99F // 2463\n\tSYS_CACOSH                          = 0x9A0 // 2464\n\tSYS___CACOSH_B                      = 0x9A1 // 2465\n\tSYS___CACOSH_H                      = 0x9A2 // 2466\n\tSYS_CACOSHF                         = 0x9A3 // 2467\n\tSYS___CACOSHF_B                     = 0x9A4 // 2468\n\tSYS___CACOSHF_H                     = 0x9A5 // 2469\n\tSYS_CACOSHL                         = 0x9A6 // 2470\n\tSYS___CACOSHL_B                     = 0x9A7 // 2471\n\tSYS___CACOSHL_H                     = 0x9A8 // 2472\n\tSYS_CARG                            = 0x9A9 // 2473\n\tSYS___CARG_B                        = 0x9AA // 2474\n\tSYS___CARG_H                        = 0x9AB // 2475\n\tSYS_CARGF                           = 0x9AC // 2476\n\tSYS___CARGF_B                       = 0x9AD // 2477\n\tSYS___CARGF_H                       = 0x9AE // 2478\n\tSYS_CARGL                           = 0x9AF // 2479\n\tSYS___CARGL_B                       = 0x9B0 // 2480\n\tSYS___CARGL_H                       = 0x9B1 // 2481\n\tSYS_CASIN                           = 0x9B2 // 2482\n\tSYS___CASIN_B                       = 0x9B3 // 2483\n\tSYS___CASIN_H                       = 0x9B4 // 2484\n\tSYS_CASINF                          = 0x9B5 // 2485\n\tSYS___CASINF_B                      = 0x9B6 // 2486\n\tSYS___CASINF_H                      = 0x9B7 // 2487\n\tSYS_CASINL                          = 0x9B8 // 2488\n\tSYS___CASINL_B                      = 0x9B9 // 2489\n\tSYS___CASINL_H                      = 0x9BA // 2490\n\tSYS_CASINH                          = 0x9BB // 2491\n\tSYS___CASINH_B                      = 0x9BC // 2492\n\tSYS___CASINH_H                      = 0x9BD // 2493\n\tSYS_CASINHF                         = 0x9BE // 2494\n\tSYS___CASINHF_B                     = 0x9BF // 2495\n\tSYS___CASINHF_H                     = 0x9C0 // 2496\n\tSYS_CASINHL                         = 0x9C1 // 2497\n\tSYS___CASINHL_B                     = 0x9C2 // 2498\n\tSYS___CASINHL_H                     = 0x9C3 // 2499\n\tSYS_CATAN                           = 0x9C4 // 2500\n\tSYS___CATAN_B                       = 0x9C5 // 2501\n\tSYS___CATAN_H                       = 0x9C6 // 2502\n\tSYS_CATANF                          = 0x9C7 // 2503\n\tSYS___CATANF_B                      = 0x9C8 // 2504\n\tSYS___CATANF_H                      = 0x9C9 // 2505\n\tSYS_CATANL                          = 0x9CA // 2506\n\tSYS___CATANL_B                      = 0x9CB // 2507\n\tSYS___CATANL_H                      = 0x9CC // 2508\n\tSYS_CATANH                          = 0x9CD // 2509\n\tSYS___CATANH_B                      = 0x9CE // 2510\n\tSYS___CATANH_H                      = 0x9CF // 2511\n\tSYS_CATANHF                         = 0x9D0 // 2512\n\tSYS___CATANHF_B                     = 0x9D1 // 2513\n\tSYS___CATANHF_H                     = 0x9D2 // 2514\n\tSYS_CATANHL                         = 0x9D3 // 2515\n\tSYS___CATANHL_B                     = 0x9D4 // 2516\n\tSYS___CATANHL_H                     = 0x9D5 // 2517\n\tSYS_CCOS                            = 0x9D6 // 2518\n\tSYS___CCOS_B                        = 0x9D7 // 2519\n\tSYS___CCOS_H                        = 0x9D8 // 2520\n\tSYS_CCOSF                           = 0x9D9 // 2521\n\tSYS___CCOSF_B                       = 0x9DA // 2522\n\tSYS___CCOSF_H                       = 0x9DB // 2523\n\tSYS_CCOSL                           = 0x9DC // 2524\n\tSYS___CCOSL_B                       = 0x9DD // 2525\n\tSYS___CCOSL_H                       = 0x9DE // 2526\n\tSYS_CCOSH                           = 0x9DF // 2527\n\tSYS___CCOSH_B                       = 0x9E0 // 2528\n\tSYS___CCOSH_H                       = 0x9E1 // 2529\n\tSYS_CCOSHF                          = 0x9E2 // 2530\n\tSYS___CCOSHF_B                      = 0x9E3 // 2531\n\tSYS___CCOSHF_H                      = 0x9E4 // 2532\n\tSYS_CCOSHL                          = 0x9E5 // 2533\n\tSYS___CCOSHL_B                      = 0x9E6 // 2534\n\tSYS___CCOSHL_H                      = 0x9E7 // 2535\n\tSYS_CEXP                            = 0x9E8 // 2536\n\tSYS___CEXP_B                        = 0x9E9 // 2537\n\tSYS___CEXP_H                        = 0x9EA // 2538\n\tSYS_CEXPF                           = 0x9EB // 2539\n\tSYS___CEXPF_B                       = 0x9EC // 2540\n\tSYS___CEXPF_H                       = 0x9ED // 2541\n\tSYS_CEXPL                           = 0x9EE // 2542\n\tSYS___CEXPL_B                       = 0x9EF // 2543\n\tSYS___CEXPL_H                       = 0x9F0 // 2544\n\tSYS_CIMAG                           = 0x9F1 // 2545\n\tSYS___CIMAG_B                       = 0x9F2 // 2546\n\tSYS___CIMAG_H                       = 0x9F3 // 2547\n\tSYS_CIMAGF                          = 0x9F4 // 2548\n\tSYS___CIMAGF_B                      = 0x9F5 // 2549\n\tSYS___CIMAGF_H                      = 0x9F6 // 2550\n\tSYS_CIMAGL                          = 0x9F7 // 2551\n\tSYS___CIMAGL_B                      = 0x9F8 // 2552\n\tSYS___CIMAGL_H                      = 0x9F9 // 2553\n\tSYS___CLOG                          = 0x9FA // 2554\n\tSYS___CLOG_B                        = 0x9FB // 2555\n\tSYS___CLOG_H                        = 0x9FC // 2556\n\tSYS_CLOGF                           = 0x9FD // 2557\n\tSYS___CLOGF_B                       = 0x9FE // 2558\n\tSYS___CLOGF_H                       = 0x9FF // 2559\n\tSYS_CLOGL                           = 0xA00 // 2560\n\tSYS___CLOGL_B                       = 0xA01 // 2561\n\tSYS___CLOGL_H                       = 0xA02 // 2562\n\tSYS_CONJ                            = 0xA03 // 2563\n\tSYS___CONJ_B                        = 0xA04 // 2564\n\tSYS___CONJ_H                        = 0xA05 // 2565\n\tSYS_CONJF                           = 0xA06 // 2566\n\tSYS___CONJF_B                       = 0xA07 // 2567\n\tSYS___CONJF_H                       = 0xA08 // 2568\n\tSYS_CONJL                           = 0xA09 // 2569\n\tSYS___CONJL_B                       = 0xA0A // 2570\n\tSYS___CONJL_H                       = 0xA0B // 2571\n\tSYS_CPOW                            = 0xA0C // 2572\n\tSYS___CPOW_B                        = 0xA0D // 2573\n\tSYS___CPOW_H                        = 0xA0E // 2574\n\tSYS_CPOWF                           = 0xA0F // 2575\n\tSYS___CPOWF_B                       = 0xA10 // 2576\n\tSYS___CPOWF_H                       = 0xA11 // 2577\n\tSYS_CPOWL                           = 0xA12 // 2578\n\tSYS___CPOWL_B                       = 0xA13 // 2579\n\tSYS___CPOWL_H                       = 0xA14 // 2580\n\tSYS_CPROJ                           = 0xA15 // 2581\n\tSYS___CPROJ_B                       = 0xA16 // 2582\n\tSYS___CPROJ_H                       = 0xA17 // 2583\n\tSYS_CPROJF                          = 0xA18 // 2584\n\tSYS___CPROJF_B                      = 0xA19 // 2585\n\tSYS___CPROJF_H                      = 0xA1A // 2586\n\tSYS_CPROJL                          = 0xA1B // 2587\n\tSYS___CPROJL_B                      = 0xA1C // 2588\n\tSYS___CPROJL_H                      = 0xA1D // 2589\n\tSYS_CREAL                           = 0xA1E // 2590\n\tSYS___CREAL_B                       = 0xA1F // 2591\n\tSYS___CREAL_H                       = 0xA20 // 2592\n\tSYS_CREALF                          = 0xA21 // 2593\n\tSYS___CREALF_B                      = 0xA22 // 2594\n\tSYS___CREALF_H                      = 0xA23 // 2595\n\tSYS_CREALL                          = 0xA24 // 2596\n\tSYS___CREALL_B                      = 0xA25 // 2597\n\tSYS___CREALL_H                      = 0xA26 // 2598\n\tSYS_CSIN                            = 0xA27 // 2599\n\tSYS___CSIN_B                        = 0xA28 // 2600\n\tSYS___CSIN_H                        = 0xA29 // 2601\n\tSYS_CSINF                           = 0xA2A // 2602\n\tSYS___CSINF_B                       = 0xA2B // 2603\n\tSYS___CSINF_H                       = 0xA2C // 2604\n\tSYS_CSINL                           = 0xA2D // 2605\n\tSYS___CSINL_B                       = 0xA2E // 2606\n\tSYS___CSINL_H                       = 0xA2F // 2607\n\tSYS_CSINH                           = 0xA30 // 2608\n\tSYS___CSINH_B                       = 0xA31 // 2609\n\tSYS___CSINH_H                       = 0xA32 // 2610\n\tSYS_CSINHF                          = 0xA33 // 2611\n\tSYS___CSINHF_B                      = 0xA34 // 2612\n\tSYS___CSINHF_H                      = 0xA35 // 2613\n\tSYS_CSINHL                          = 0xA36 // 2614\n\tSYS___CSINHL_B                      = 0xA37 // 2615\n\tSYS___CSINHL_H                      = 0xA38 // 2616\n\tSYS_CSQRT                           = 0xA39 // 2617\n\tSYS___CSQRT_B                       = 0xA3A // 2618\n\tSYS___CSQRT_H                       = 0xA3B // 2619\n\tSYS_CSQRTF                          = 0xA3C // 2620\n\tSYS___CSQRTF_B                      = 0xA3D // 2621\n\tSYS___CSQRTF_H                      = 0xA3E // 2622\n\tSYS_CSQRTL                          = 0xA3F // 2623\n\tSYS___CSQRTL_B                      = 0xA40 // 2624\n\tSYS___CSQRTL_H                      = 0xA41 // 2625\n\tSYS_CTAN                            = 0xA42 // 2626\n\tSYS___CTAN_B                        = 0xA43 // 2627\n\tSYS___CTAN_H                        = 0xA44 // 2628\n\tSYS_CTANF                           = 0xA45 // 2629\n\tSYS___CTANF_B                       = 0xA46 // 2630\n\tSYS___CTANF_H                       = 0xA47 // 2631\n\tSYS_CTANL                           = 0xA48 // 2632\n\tSYS___CTANL_B                       = 0xA49 // 2633\n\tSYS___CTANL_H                       = 0xA4A // 2634\n\tSYS_CTANH                           = 0xA4B // 2635\n\tSYS___CTANH_B                       = 0xA4C // 2636\n\tSYS___CTANH_H                       = 0xA4D // 2637\n\tSYS_CTANHF                          = 0xA4E // 2638\n\tSYS___CTANHF_B                      = 0xA4F // 2639\n\tSYS___CTANHF_H                      = 0xA50 // 2640\n\tSYS_CTANHL                          = 0xA51 // 2641\n\tSYS___CTANHL_B                      = 0xA52 // 2642\n\tSYS___CTANHL_H                      = 0xA53 // 2643\n\tSYS___ACOSHF_H                      = 0xA54 // 2644\n\tSYS___ACOSHL_H                      = 0xA55 // 2645\n\tSYS___ASINHF_H                      = 0xA56 // 2646\n\tSYS___ASINHL_H                      = 0xA57 // 2647\n\tSYS___CBRTF_H                       = 0xA58 // 2648\n\tSYS___CBRTL_H                       = 0xA59 // 2649\n\tSYS___COPYSIGN_B                    = 0xA5A // 2650\n\tSYS___EXPM1F_H                      = 0xA5B // 2651\n\tSYS___EXPM1L_H                      = 0xA5C // 2652\n\tSYS___EXP2_H                        = 0xA5D // 2653\n\tSYS___EXP2F_H                       = 0xA5E // 2654\n\tSYS___EXP2L_H                       = 0xA5F // 2655\n\tSYS___LOG1PF_H                      = 0xA60 // 2656\n\tSYS___LOG1PL_H                      = 0xA61 // 2657\n\tSYS___LGAMMAL_H                     = 0xA62 // 2658\n\tSYS_FMA                             = 0xA63 // 2659\n\tSYS___FMA_B                         = 0xA64 // 2660\n\tSYS___FMA_H                         = 0xA65 // 2661\n\tSYS_FMAF                            = 0xA66 // 2662\n\tSYS___FMAF_B                        = 0xA67 // 2663\n\tSYS___FMAF_H                        = 0xA68 // 2664\n\tSYS_FMAL                            = 0xA69 // 2665\n\tSYS___FMAL_B                        = 0xA6A // 2666\n\tSYS___FMAL_H                        = 0xA6B // 2667\n\tSYS_FMAX                            = 0xA6C // 2668\n\tSYS___FMAX_B                        = 0xA6D // 2669\n\tSYS___FMAX_H                        = 0xA6E // 2670\n\tSYS_FMAXF                           = 0xA6F // 2671\n\tSYS___FMAXF_B                       = 0xA70 // 2672\n\tSYS___FMAXF_H                       = 0xA71 // 2673\n\tSYS_FMAXL                           = 0xA72 // 2674\n\tSYS___FMAXL_B                       = 0xA73 // 2675\n\tSYS___FMAXL_H                       = 0xA74 // 2676\n\tSYS_FMIN                            = 0xA75 // 2677\n\tSYS___FMIN_B                        = 0xA76 // 2678\n\tSYS___FMIN_H                        = 0xA77 // 2679\n\tSYS_FMINF                           = 0xA78 // 2680\n\tSYS___FMINF_B                       = 0xA79 // 2681\n\tSYS___FMINF_H                       = 0xA7A // 2682\n\tSYS_FMINL                           = 0xA7B // 2683\n\tSYS___FMINL_B                       = 0xA7C // 2684\n\tSYS___FMINL_H                       = 0xA7D // 2685\n\tSYS_ILOGBF                          = 0xA7E // 2686\n\tSYS___ILOGBF_B                      = 0xA7F // 2687\n\tSYS___ILOGBF_H                      = 0xA80 // 2688\n\tSYS_ILOGBL                          = 0xA81 // 2689\n\tSYS___ILOGBL_B                      = 0xA82 // 2690\n\tSYS___ILOGBL_H                      = 0xA83 // 2691\n\tSYS_LLRINT                          = 0xA84 // 2692\n\tSYS___LLRINT_B                      = 0xA85 // 2693\n\tSYS___LLRINT_H                      = 0xA86 // 2694\n\tSYS_LLRINTF                         = 0xA87 // 2695\n\tSYS___LLRINTF_B                     = 0xA88 // 2696\n\tSYS___LLRINTF_H                     = 0xA89 // 2697\n\tSYS_LLRINTL                         = 0xA8A // 2698\n\tSYS___LLRINTL_B                     = 0xA8B // 2699\n\tSYS___LLRINTL_H                     = 0xA8C // 2700\n\tSYS_LLROUND                         = 0xA8D // 2701\n\tSYS___LLROUND_B                     = 0xA8E // 2702\n\tSYS___LLROUND_H                     = 0xA8F // 2703\n\tSYS_LLROUNDF                        = 0xA90 // 2704\n\tSYS___LLROUNDF_B                    = 0xA91 // 2705\n\tSYS___LLROUNDF_H                    = 0xA92 // 2706\n\tSYS_LLROUNDL                        = 0xA93 // 2707\n\tSYS___LLROUNDL_B                    = 0xA94 // 2708\n\tSYS___LLROUNDL_H                    = 0xA95 // 2709\n\tSYS_LOGBF                           = 0xA96 // 2710\n\tSYS___LOGBF_B                       = 0xA97 // 2711\n\tSYS___LOGBF_H                       = 0xA98 // 2712\n\tSYS_LOGBL                           = 0xA99 // 2713\n\tSYS___LOGBL_B                       = 0xA9A // 2714\n\tSYS___LOGBL_H                       = 0xA9B // 2715\n\tSYS_LRINT                           = 0xA9C // 2716\n\tSYS___LRINT_B                       = 0xA9D // 2717\n\tSYS___LRINT_H                       = 0xA9E // 2718\n\tSYS_LRINTF                          = 0xA9F // 2719\n\tSYS___LRINTF_B                      = 0xAA0 // 2720\n\tSYS___LRINTF_H                      = 0xAA1 // 2721\n\tSYS_LRINTL                          = 0xAA2 // 2722\n\tSYS___LRINTL_B                      = 0xAA3 // 2723\n\tSYS___LRINTL_H                      = 0xAA4 // 2724\n\tSYS_LROUNDL                         = 0xAA5 // 2725\n\tSYS___LROUNDL_B                     = 0xAA6 // 2726\n\tSYS___LROUNDL_H                     = 0xAA7 // 2727\n\tSYS_NAN                             = 0xAA8 // 2728\n\tSYS___NAN_B                         = 0xAA9 // 2729\n\tSYS_NANF                            = 0xAAA // 2730\n\tSYS___NANF_B                        = 0xAAB // 2731\n\tSYS_NANL                            = 0xAAC // 2732\n\tSYS___NANL_B                        = 0xAAD // 2733\n\tSYS_NEARBYINT                       = 0xAAE // 2734\n\tSYS___NEARBYINT_B                   = 0xAAF // 2735\n\tSYS___NEARBYINT_H                   = 0xAB0 // 2736\n\tSYS_NEARBYINTF                      = 0xAB1 // 2737\n\tSYS___NEARBYINTF_B                  = 0xAB2 // 2738\n\tSYS___NEARBYINTF_H                  = 0xAB3 // 2739\n\tSYS_NEARBYINTL                      = 0xAB4 // 2740\n\tSYS___NEARBYINTL_B                  = 0xAB5 // 2741\n\tSYS___NEARBYINTL_H                  = 0xAB6 // 2742\n\tSYS_NEXTAFTERF                      = 0xAB7 // 2743\n\tSYS___NEXTAFTERF_B                  = 0xAB8 // 2744\n\tSYS___NEXTAFTERF_H                  = 0xAB9 // 2745\n\tSYS_NEXTAFTERL                      = 0xABA // 2746\n\tSYS___NEXTAFTERL_B                  = 0xABB // 2747\n\tSYS___NEXTAFTERL_H                  = 0xABC // 2748\n\tSYS_NEXTTOWARD                      = 0xABD // 2749\n\tSYS___NEXTTOWARD_B                  = 0xABE // 2750\n\tSYS___NEXTTOWARD_H                  = 0xABF // 2751\n\tSYS_NEXTTOWARDF                     = 0xAC0 // 2752\n\tSYS___NEXTTOWARDF_B                 = 0xAC1 // 2753\n\tSYS___NEXTTOWARDF_H                 = 0xAC2 // 2754\n\tSYS_NEXTTOWARDL                     = 0xAC3 // 2755\n\tSYS___NEXTTOWARDL_B                 = 0xAC4 // 2756\n\tSYS___NEXTTOWARDL_H                 = 0xAC5 // 2757\n\tSYS___REMAINDERF_H                  = 0xAC6 // 2758\n\tSYS___REMAINDERL_H                  = 0xAC7 // 2759\n\tSYS___REMQUO_H                      = 0xAC8 // 2760\n\tSYS___REMQUOF_H                     = 0xAC9 // 2761\n\tSYS___REMQUOL_H                     = 0xACA // 2762\n\tSYS_RINTF                           = 0xACB // 2763\n\tSYS___RINTF_B                       = 0xACC // 2764\n\tSYS_RINTL                           = 0xACD // 2765\n\tSYS___RINTL_B                       = 0xACE // 2766\n\tSYS_ROUND                           = 0xACF // 2767\n\tSYS___ROUND_B                       = 0xAD0 // 2768\n\tSYS___ROUND_H                       = 0xAD1 // 2769\n\tSYS_ROUNDF                          = 0xAD2 // 2770\n\tSYS___ROUNDF_B                      = 0xAD3 // 2771\n\tSYS___ROUNDF_H                      = 0xAD4 // 2772\n\tSYS_ROUNDL                          = 0xAD5 // 2773\n\tSYS___ROUNDL_B                      = 0xAD6 // 2774\n\tSYS___ROUNDL_H                      = 0xAD7 // 2775\n\tSYS_SCALBLN                         = 0xAD8 // 2776\n\tSYS___SCALBLN_B                     = 0xAD9 // 2777\n\tSYS___SCALBLN_H                     = 0xADA // 2778\n\tSYS_SCALBLNF                        = 0xADB // 2779\n\tSYS___SCALBLNF_B                    = 0xADC // 2780\n\tSYS___SCALBLNF_H                    = 0xADD // 2781\n\tSYS_SCALBLNL                        = 0xADE // 2782\n\tSYS___SCALBLNL_B                    = 0xADF // 2783\n\tSYS___SCALBLNL_H                    = 0xAE0 // 2784\n\tSYS___SCALBN_B                      = 0xAE1 // 2785\n\tSYS___SCALBN_H                      = 0xAE2 // 2786\n\tSYS_SCALBNF                         = 0xAE3 // 2787\n\tSYS___SCALBNF_B                     = 0xAE4 // 2788\n\tSYS___SCALBNF_H                     = 0xAE5 // 2789\n\tSYS_SCALBNL                         = 0xAE6 // 2790\n\tSYS___SCALBNL_B                     = 0xAE7 // 2791\n\tSYS___SCALBNL_H                     = 0xAE8 // 2792\n\tSYS___TGAMMAL_H                     = 0xAE9 // 2793\n\tSYS_FECLEAREXCEPT                   = 0xAEA // 2794\n\tSYS_FEGETENV                        = 0xAEB // 2795\n\tSYS_FEGETEXCEPTFLAG                 = 0xAEC // 2796\n\tSYS_FEGETROUND                      = 0xAED // 2797\n\tSYS_FEHOLDEXCEPT                    = 0xAEE // 2798\n\tSYS_FERAISEEXCEPT                   = 0xAEF // 2799\n\tSYS_FESETENV                        = 0xAF0 // 2800\n\tSYS_FESETEXCEPTFLAG                 = 0xAF1 // 2801\n\tSYS_FESETROUND                      = 0xAF2 // 2802\n\tSYS_FETESTEXCEPT                    = 0xAF3 // 2803\n\tSYS_FEUPDATEENV                     = 0xAF4 // 2804\n\tSYS___COPYSIGN_H                    = 0xAF5 // 2805\n\tSYS___HYPOTF_H                      = 0xAF6 // 2806\n\tSYS___HYPOTL_H                      = 0xAF7 // 2807\n\tSYS___CLASS                         = 0xAFA // 2810\n\tSYS___CLASS_B                       = 0xAFB // 2811\n\tSYS___CLASS_H                       = 0xAFC // 2812\n\tSYS___ISBLANK_A                     = 0xB2E // 2862\n\tSYS___ISWBLANK_A                    = 0xB2F // 2863\n\tSYS___LROUND_FIXUP                  = 0xB30 // 2864\n\tSYS___LROUNDF_FIXUP                 = 0xB31 // 2865\n\tSYS_SCHED_YIELD                     = 0xB32 // 2866\n\tSYS_STRERROR_R                      = 0xB33 // 2867\n\tSYS_UNSETENV                        = 0xB34 // 2868\n\tSYS___LGAMMA_H_C99                  = 0xB38 // 2872\n\tSYS___LGAMMA_B_C99                  = 0xB39 // 2873\n\tSYS___LGAMMA_R_C99                  = 0xB3A // 2874\n\tSYS___FTELL2                        = 0xB3B // 2875\n\tSYS___FSEEK2                        = 0xB3C // 2876\n\tSYS___STATIC_REINIT                 = 0xB3D // 2877\n\tSYS_PTHREAD_ATTR_GETSTACK           = 0xB3E // 2878\n\tSYS_PTHREAD_ATTR_SETSTACK           = 0xB3F // 2879\n\tSYS___TGAMMA_H_C99                  = 0xB78 // 2936\n\tSYS___TGAMMAF_H_C99                 = 0xB79 // 2937\n\tSYS___LE_TRACEBACK                  = 0xB7A // 2938\n\tSYS___MUST_STAY_CLEAN               = 0xB7C // 2940\n\tSYS___O_ENV                         = 0xB7D // 2941\n\tSYS_ACOSD32                         = 0xB7E // 2942\n\tSYS_ACOSD64                         = 0xB7F // 2943\n\tSYS_ACOSD128                        = 0xB80 // 2944\n\tSYS_ACOSHD32                        = 0xB81 // 2945\n\tSYS_ACOSHD64                        = 0xB82 // 2946\n\tSYS_ACOSHD128                       = 0xB83 // 2947\n\tSYS_ASIND32                         = 0xB84 // 2948\n\tSYS_ASIND64                         = 0xB85 // 2949\n\tSYS_ASIND128                        = 0xB86 // 2950\n\tSYS_ASINHD32                        = 0xB87 // 2951\n\tSYS_ASINHD64                        = 0xB88 // 2952\n\tSYS_ASINHD128                       = 0xB89 // 2953\n\tSYS_ATAND32                         = 0xB8A // 2954\n\tSYS_ATAND64                         = 0xB8B // 2955\n\tSYS_ATAND128                        = 0xB8C // 2956\n\tSYS_ATAN2D32                        = 0xB8D // 2957\n\tSYS_ATAN2D64                        = 0xB8E // 2958\n\tSYS_ATAN2D128                       = 0xB8F // 2959\n\tSYS_ATANHD32                        = 0xB90 // 2960\n\tSYS_ATANHD64                        = 0xB91 // 2961\n\tSYS_ATANHD128                       = 0xB92 // 2962\n\tSYS_CBRTD32                         = 0xB93 // 2963\n\tSYS_CBRTD64                         = 0xB94 // 2964\n\tSYS_CBRTD128                        = 0xB95 // 2965\n\tSYS_CEILD32                         = 0xB96 // 2966\n\tSYS_CEILD64                         = 0xB97 // 2967\n\tSYS_CEILD128                        = 0xB98 // 2968\n\tSYS___CLASS2                        = 0xB99 // 2969\n\tSYS___CLASS2_B                      = 0xB9A // 2970\n\tSYS___CLASS2_H                      = 0xB9B // 2971\n\tSYS_COPYSIGND32                     = 0xB9C // 2972\n\tSYS_COPYSIGND64                     = 0xB9D // 2973\n\tSYS_COPYSIGND128                    = 0xB9E // 2974\n\tSYS_COSD32                          = 0xB9F // 2975\n\tSYS_COSD64                          = 0xBA0 // 2976\n\tSYS_COSD128                         = 0xBA1 // 2977\n\tSYS_COSHD32                         = 0xBA2 // 2978\n\tSYS_COSHD64                         = 0xBA3 // 2979\n\tSYS_COSHD128                        = 0xBA4 // 2980\n\tSYS_ERFD32                          = 0xBA5 // 2981\n\tSYS_ERFD64                          = 0xBA6 // 2982\n\tSYS_ERFD128                         = 0xBA7 // 2983\n\tSYS_ERFCD32                         = 0xBA8 // 2984\n\tSYS_ERFCD64                         = 0xBA9 // 2985\n\tSYS_ERFCD128                        = 0xBAA // 2986\n\tSYS_EXPD32                          = 0xBAB // 2987\n\tSYS_EXPD64                          = 0xBAC // 2988\n\tSYS_EXPD128                         = 0xBAD // 2989\n\tSYS_EXP2D32                         = 0xBAE // 2990\n\tSYS_EXP2D64                         = 0xBAF // 2991\n\tSYS_EXP2D128                        = 0xBB0 // 2992\n\tSYS_EXPM1D32                        = 0xBB1 // 2993\n\tSYS_EXPM1D64                        = 0xBB2 // 2994\n\tSYS_EXPM1D128                       = 0xBB3 // 2995\n\tSYS_FABSD32                         = 0xBB4 // 2996\n\tSYS_FABSD64                         = 0xBB5 // 2997\n\tSYS_FABSD128                        = 0xBB6 // 2998\n\tSYS_FDIMD32                         = 0xBB7 // 2999\n\tSYS_FDIMD64                         = 0xBB8 // 3000\n\tSYS_FDIMD128                        = 0xBB9 // 3001\n\tSYS_FE_DEC_GETROUND                 = 0xBBA // 3002\n\tSYS_FE_DEC_SETROUND                 = 0xBBB // 3003\n\tSYS_FLOORD32                        = 0xBBC // 3004\n\tSYS_FLOORD64                        = 0xBBD // 3005\n\tSYS_FLOORD128                       = 0xBBE // 3006\n\tSYS_FMAD32                          = 0xBBF // 3007\n\tSYS_FMAD64                          = 0xBC0 // 3008\n\tSYS_FMAD128                         = 0xBC1 // 3009\n\tSYS_FMAXD32                         = 0xBC2 // 3010\n\tSYS_FMAXD64                         = 0xBC3 // 3011\n\tSYS_FMAXD128                        = 0xBC4 // 3012\n\tSYS_FMIND32                         = 0xBC5 // 3013\n\tSYS_FMIND64                         = 0xBC6 // 3014\n\tSYS_FMIND128                        = 0xBC7 // 3015\n\tSYS_FMODD32                         = 0xBC8 // 3016\n\tSYS_FMODD64                         = 0xBC9 // 3017\n\tSYS_FMODD128                        = 0xBCA // 3018\n\tSYS___FP_CAST_D                     = 0xBCB // 3019\n\tSYS_FREXPD32                        = 0xBCC // 3020\n\tSYS_FREXPD64                        = 0xBCD // 3021\n\tSYS_FREXPD128                       = 0xBCE // 3022\n\tSYS_HYPOTD32                        = 0xBCF // 3023\n\tSYS_HYPOTD64                        = 0xBD0 // 3024\n\tSYS_HYPOTD128                       = 0xBD1 // 3025\n\tSYS_ILOGBD32                        = 0xBD2 // 3026\n\tSYS_ILOGBD64                        = 0xBD3 // 3027\n\tSYS_ILOGBD128                       = 0xBD4 // 3028\n\tSYS_LDEXPD32                        = 0xBD5 // 3029\n\tSYS_LDEXPD64                        = 0xBD6 // 3030\n\tSYS_LDEXPD128                       = 0xBD7 // 3031\n\tSYS_LGAMMAD32                       = 0xBD8 // 3032\n\tSYS_LGAMMAD64                       = 0xBD9 // 3033\n\tSYS_LGAMMAD128                      = 0xBDA // 3034\n\tSYS_LLRINTD32                       = 0xBDB // 3035\n\tSYS_LLRINTD64                       = 0xBDC // 3036\n\tSYS_LLRINTD128                      = 0xBDD // 3037\n\tSYS_LLROUNDD32                      = 0xBDE // 3038\n\tSYS_LLROUNDD64                      = 0xBDF // 3039\n\tSYS_LLROUNDD128                     = 0xBE0 // 3040\n\tSYS_LOGD32                          = 0xBE1 // 3041\n\tSYS_LOGD64                          = 0xBE2 // 3042\n\tSYS_LOGD128                         = 0xBE3 // 3043\n\tSYS_LOG10D32                        = 0xBE4 // 3044\n\tSYS_LOG10D64                        = 0xBE5 // 3045\n\tSYS_LOG10D128                       = 0xBE6 // 3046\n\tSYS_LOG1PD32                        = 0xBE7 // 3047\n\tSYS_LOG1PD64                        = 0xBE8 // 3048\n\tSYS_LOG1PD128                       = 0xBE9 // 3049\n\tSYS_LOG2D32                         = 0xBEA // 3050\n\tSYS_LOG2D64                         = 0xBEB // 3051\n\tSYS_LOG2D128                        = 0xBEC // 3052\n\tSYS_LOGBD32                         = 0xBED // 3053\n\tSYS_LOGBD64                         = 0xBEE // 3054\n\tSYS_LOGBD128                        = 0xBEF // 3055\n\tSYS_LRINTD32                        = 0xBF0 // 3056\n\tSYS_LRINTD64                        = 0xBF1 // 3057\n\tSYS_LRINTD128                       = 0xBF2 // 3058\n\tSYS_LROUNDD32                       = 0xBF3 // 3059\n\tSYS_LROUNDD64                       = 0xBF4 // 3060\n\tSYS_LROUNDD128                      = 0xBF5 // 3061\n\tSYS_MODFD32                         = 0xBF6 // 3062\n\tSYS_MODFD64                         = 0xBF7 // 3063\n\tSYS_MODFD128                        = 0xBF8 // 3064\n\tSYS_NAND32                          = 0xBF9 // 3065\n\tSYS_NAND64                          = 0xBFA // 3066\n\tSYS_NAND128                         = 0xBFB // 3067\n\tSYS_NEARBYINTD32                    = 0xBFC // 3068\n\tSYS_NEARBYINTD64                    = 0xBFD // 3069\n\tSYS_NEARBYINTD128                   = 0xBFE // 3070\n\tSYS_NEXTAFTERD32                    = 0xBFF // 3071\n\tSYS_NEXTAFTERD64                    = 0xC00 // 3072\n\tSYS_NEXTAFTERD128                   = 0xC01 // 3073\n\tSYS_NEXTTOWARDD32                   = 0xC02 // 3074\n\tSYS_NEXTTOWARDD64                   = 0xC03 // 3075\n\tSYS_NEXTTOWARDD128                  = 0xC04 // 3076\n\tSYS_POWD32                          = 0xC05 // 3077\n\tSYS_POWD64                          = 0xC06 // 3078\n\tSYS_POWD128                         = 0xC07 // 3079\n\tSYS_QUANTIZED32                     = 0xC08 // 3080\n\tSYS_QUANTIZED64                     = 0xC09 // 3081\n\tSYS_QUANTIZED128                    = 0xC0A // 3082\n\tSYS_REMAINDERD32                    = 0xC0B // 3083\n\tSYS_REMAINDERD64                    = 0xC0C // 3084\n\tSYS_REMAINDERD128                   = 0xC0D // 3085\n\tSYS___REMQUOD32                     = 0xC0E // 3086\n\tSYS___REMQUOD64                     = 0xC0F // 3087\n\tSYS___REMQUOD128                    = 0xC10 // 3088\n\tSYS_RINTD32                         = 0xC11 // 3089\n\tSYS_RINTD64                         = 0xC12 // 3090\n\tSYS_RINTD128                        = 0xC13 // 3091\n\tSYS_ROUNDD32                        = 0xC14 // 3092\n\tSYS_ROUNDD64                        = 0xC15 // 3093\n\tSYS_ROUNDD128                       = 0xC16 // 3094\n\tSYS_SAMEQUANTUMD32                  = 0xC17 // 3095\n\tSYS_SAMEQUANTUMD64                  = 0xC18 // 3096\n\tSYS_SAMEQUANTUMD128                 = 0xC19 // 3097\n\tSYS_SCALBLND32                      = 0xC1A // 3098\n\tSYS_SCALBLND64                      = 0xC1B // 3099\n\tSYS_SCALBLND128                     = 0xC1C // 3100\n\tSYS_SCALBND32                       = 0xC1D // 3101\n\tSYS_SCALBND64                       = 0xC1E // 3102\n\tSYS_SCALBND128                      = 0xC1F // 3103\n\tSYS_SIND32                          = 0xC20 // 3104\n\tSYS_SIND64                          = 0xC21 // 3105\n\tSYS_SIND128                         = 0xC22 // 3106\n\tSYS_SINHD32                         = 0xC23 // 3107\n\tSYS_SINHD64                         = 0xC24 // 3108\n\tSYS_SINHD128                        = 0xC25 // 3109\n\tSYS_SQRTD32                         = 0xC26 // 3110\n\tSYS_SQRTD64                         = 0xC27 // 3111\n\tSYS_SQRTD128                        = 0xC28 // 3112\n\tSYS_STRTOD32                        = 0xC29 // 3113\n\tSYS_STRTOD64                        = 0xC2A // 3114\n\tSYS_STRTOD128                       = 0xC2B // 3115\n\tSYS_TAND32                          = 0xC2C // 3116\n\tSYS_TAND64                          = 0xC2D // 3117\n\tSYS_TAND128                         = 0xC2E // 3118\n\tSYS_TANHD32                         = 0xC2F // 3119\n\tSYS_TANHD64                         = 0xC30 // 3120\n\tSYS_TANHD128                        = 0xC31 // 3121\n\tSYS_TGAMMAD32                       = 0xC32 // 3122\n\tSYS_TGAMMAD64                       = 0xC33 // 3123\n\tSYS_TGAMMAD128                      = 0xC34 // 3124\n\tSYS_TRUNCD32                        = 0xC3E // 3134\n\tSYS_TRUNCD64                        = 0xC3F // 3135\n\tSYS_TRUNCD128                       = 0xC40 // 3136\n\tSYS_WCSTOD32                        = 0xC41 // 3137\n\tSYS_WCSTOD64                        = 0xC42 // 3138\n\tSYS_WCSTOD128                       = 0xC43 // 3139\n\tSYS___CODEPAGE_INFO                 = 0xC64 // 3172\n\tSYS_POSIX_OPENPT                    = 0xC66 // 3174\n\tSYS_PSELECT                         = 0xC67 // 3175\n\tSYS_SOCKATMARK                      = 0xC68 // 3176\n\tSYS_AIO_FSYNC                       = 0xC69 // 3177\n\tSYS_LIO_LISTIO                      = 0xC6A // 3178\n\tSYS___ATANPID32                     = 0xC6B // 3179\n\tSYS___ATANPID64                     = 0xC6C // 3180\n\tSYS___ATANPID128                    = 0xC6D // 3181\n\tSYS___COSPID32                      = 0xC6E // 3182\n\tSYS___COSPID64                      = 0xC6F // 3183\n\tSYS___COSPID128                     = 0xC70 // 3184\n\tSYS___SINPID32                      = 0xC71 // 3185\n\tSYS___SINPID64                      = 0xC72 // 3186\n\tSYS___SINPID128                     = 0xC73 // 3187\n\tSYS_SETIPV4SOURCEFILTER             = 0xC76 // 3190\n\tSYS_GETIPV4SOURCEFILTER             = 0xC77 // 3191\n\tSYS_SETSOURCEFILTER                 = 0xC78 // 3192\n\tSYS_GETSOURCEFILTER                 = 0xC79 // 3193\n\tSYS_FWRITE_UNLOCKED                 = 0xC7A // 3194\n\tSYS_FREAD_UNLOCKED                  = 0xC7B // 3195\n\tSYS_FGETS_UNLOCKED                  = 0xC7C // 3196\n\tSYS_GETS_UNLOCKED                   = 0xC7D // 3197\n\tSYS_FPUTS_UNLOCKED                  = 0xC7E // 3198\n\tSYS_PUTS_UNLOCKED                   = 0xC7F // 3199\n\tSYS_FGETC_UNLOCKED                  = 0xC80 // 3200\n\tSYS_FPUTC_UNLOCKED                  = 0xC81 // 3201\n\tSYS_DLADDR                          = 0xC82 // 3202\n\tSYS_SHM_OPEN                        = 0xC8C // 3212\n\tSYS_SHM_UNLINK                      = 0xC8D // 3213\n\tSYS___CLASS2F                       = 0xC91 // 3217\n\tSYS___CLASS2L                       = 0xC92 // 3218\n\tSYS___CLASS2F_B                     = 0xC93 // 3219\n\tSYS___CLASS2F_H                     = 0xC94 // 3220\n\tSYS___CLASS2L_B                     = 0xC95 // 3221\n\tSYS___CLASS2L_H                     = 0xC96 // 3222\n\tSYS___CLASS2D32                     = 0xC97 // 3223\n\tSYS___CLASS2D64                     = 0xC98 // 3224\n\tSYS___CLASS2D128                    = 0xC99 // 3225\n\tSYS___TOCSNAME2                     = 0xC9A // 3226\n\tSYS___D1TOP                         = 0xC9B // 3227\n\tSYS___D2TOP                         = 0xC9C // 3228\n\tSYS___D4TOP                         = 0xC9D // 3229\n\tSYS___PTOD1                         = 0xC9E // 3230\n\tSYS___PTOD2                         = 0xC9F // 3231\n\tSYS___PTOD4                         = 0xCA0 // 3232\n\tSYS_CLEARERR_UNLOCKED               = 0xCA1 // 3233\n\tSYS_FDELREC_UNLOCKED                = 0xCA2 // 3234\n\tSYS_FEOF_UNLOCKED                   = 0xCA3 // 3235\n\tSYS_FERROR_UNLOCKED                 = 0xCA4 // 3236\n\tSYS_FFLUSH_UNLOCKED                 = 0xCA5 // 3237\n\tSYS_FGETPOS_UNLOCKED                = 0xCA6 // 3238\n\tSYS_FGETWC_UNLOCKED                 = 0xCA7 // 3239\n\tSYS_FGETWS_UNLOCKED                 = 0xCA8 // 3240\n\tSYS_FILENO_UNLOCKED                 = 0xCA9 // 3241\n\tSYS_FLDATA_UNLOCKED                 = 0xCAA // 3242\n\tSYS_FLOCATE_UNLOCKED                = 0xCAB // 3243\n\tSYS_FPRINTF_UNLOCKED                = 0xCAC // 3244\n\tSYS_FPUTWC_UNLOCKED                 = 0xCAD // 3245\n\tSYS_FPUTWS_UNLOCKED                 = 0xCAE // 3246\n\tSYS_FSCANF_UNLOCKED                 = 0xCAF // 3247\n\tSYS_FSEEK_UNLOCKED                  = 0xCB0 // 3248\n\tSYS_FSEEKO_UNLOCKED                 = 0xCB1 // 3249\n\tSYS_FSETPOS_UNLOCKED                = 0xCB3 // 3251\n\tSYS_FTELL_UNLOCKED                  = 0xCB4 // 3252\n\tSYS_FTELLO_UNLOCKED                 = 0xCB5 // 3253\n\tSYS_FUPDATE_UNLOCKED                = 0xCB7 // 3255\n\tSYS_FWIDE_UNLOCKED                  = 0xCB8 // 3256\n\tSYS_FWPRINTF_UNLOCKED               = 0xCB9 // 3257\n\tSYS_FWSCANF_UNLOCKED                = 0xCBA // 3258\n\tSYS_GETWC_UNLOCKED                  = 0xCBB // 3259\n\tSYS_GETWCHAR_UNLOCKED               = 0xCBC // 3260\n\tSYS_PERROR_UNLOCKED                 = 0xCBD // 3261\n\tSYS_PRINTF_UNLOCKED                 = 0xCBE // 3262\n\tSYS_PUTWC_UNLOCKED                  = 0xCBF // 3263\n\tSYS_PUTWCHAR_UNLOCKED               = 0xCC0 // 3264\n\tSYS_REWIND_UNLOCKED                 = 0xCC1 // 3265\n\tSYS_SCANF_UNLOCKED                  = 0xCC2 // 3266\n\tSYS_UNGETC_UNLOCKED                 = 0xCC3 // 3267\n\tSYS_UNGETWC_UNLOCKED                = 0xCC4 // 3268\n\tSYS_VFPRINTF_UNLOCKED               = 0xCC5 // 3269\n\tSYS_VFSCANF_UNLOCKED                = 0xCC7 // 3271\n\tSYS_VFWPRINTF_UNLOCKED              = 0xCC9 // 3273\n\tSYS_VFWSCANF_UNLOCKED               = 0xCCB // 3275\n\tSYS_VPRINTF_UNLOCKED                = 0xCCD // 3277\n\tSYS_VSCANF_UNLOCKED                 = 0xCCF // 3279\n\tSYS_VWPRINTF_UNLOCKED               = 0xCD1 // 3281\n\tSYS_VWSCANF_UNLOCKED                = 0xCD3 // 3283\n\tSYS_WPRINTF_UNLOCKED                = 0xCD5 // 3285\n\tSYS_WSCANF_UNLOCKED                 = 0xCD6 // 3286\n\tSYS_ASCTIME64                       = 0xCD7 // 3287\n\tSYS_ASCTIME64_R                     = 0xCD8 // 3288\n\tSYS_CTIME64                         = 0xCD9 // 3289\n\tSYS_CTIME64_R                       = 0xCDA // 3290\n\tSYS_DIFFTIME64                      = 0xCDB // 3291\n\tSYS_GMTIME64                        = 0xCDC // 3292\n\tSYS_GMTIME64_R                      = 0xCDD // 3293\n\tSYS_LOCALTIME64                     = 0xCDE // 3294\n\tSYS_LOCALTIME64_R                   = 0xCDF // 3295\n\tSYS_MKTIME64                        = 0xCE0 // 3296\n\tSYS_TIME64                          = 0xCE1 // 3297\n\tSYS___LOGIN_APPLID                  = 0xCE2 // 3298\n\tSYS___PASSWD_APPLID                 = 0xCE3 // 3299\n\tSYS_PTHREAD_SECURITY_APPLID_NP      = 0xCE4 // 3300\n\tSYS___GETTHENT                      = 0xCE5 // 3301\n\tSYS_FREEIFADDRS                     = 0xCE6 // 3302\n\tSYS_GETIFADDRS                      = 0xCE7 // 3303\n\tSYS_POSIX_FALLOCATE                 = 0xCE8 // 3304\n\tSYS_POSIX_MEMALIGN                  = 0xCE9 // 3305\n\tSYS_SIZEOF_ALLOC                    = 0xCEA // 3306\n\tSYS_RESIZE_ALLOC                    = 0xCEB // 3307\n\tSYS_FREAD_NOUPDATE                  = 0xCEC // 3308\n\tSYS_FREAD_NOUPDATE_UNLOCKED         = 0xCED // 3309\n\tSYS_FGETPOS64                       = 0xCEE // 3310\n\tSYS_FSEEK64                         = 0xCEF // 3311\n\tSYS_FSEEKO64                        = 0xCF0 // 3312\n\tSYS_FSETPOS64                       = 0xCF1 // 3313\n\tSYS_FTELL64                         = 0xCF2 // 3314\n\tSYS_FTELLO64                        = 0xCF3 // 3315\n\tSYS_FGETPOS64_UNLOCKED              = 0xCF4 // 3316\n\tSYS_FSEEK64_UNLOCKED                = 0xCF5 // 3317\n\tSYS_FSEEKO64_UNLOCKED               = 0xCF6 // 3318\n\tSYS_FSETPOS64_UNLOCKED              = 0xCF7 // 3319\n\tSYS_FTELL64_UNLOCKED                = 0xCF8 // 3320\n\tSYS_FTELLO64_UNLOCKED               = 0xCF9 // 3321\n\tSYS_FOPEN_UNLOCKED                  = 0xCFA // 3322\n\tSYS_FREOPEN_UNLOCKED                = 0xCFB // 3323\n\tSYS_FDOPEN_UNLOCKED                 = 0xCFC // 3324\n\tSYS_TMPFILE_UNLOCKED                = 0xCFD // 3325\n\tSYS___MOSERVICES                    = 0xD3D // 3389\n\tSYS___GETTOD                        = 0xD3E // 3390\n\tSYS_C16RTOMB                        = 0xD40 // 3392\n\tSYS_C32RTOMB                        = 0xD41 // 3393\n\tSYS_MBRTOC16                        = 0xD42 // 3394\n\tSYS_MBRTOC32                        = 0xD43 // 3395\n\tSYS_QUANTEXPD32                     = 0xD44 // 3396\n\tSYS_QUANTEXPD64                     = 0xD45 // 3397\n\tSYS_QUANTEXPD128                    = 0xD46 // 3398\n\tSYS___LOCALE_CTL                    = 0xD47 // 3399\n\tSYS___SMF_RECORD2                   = 0xD48 // 3400\n\tSYS_FOPEN64                         = 0xD49 // 3401\n\tSYS_FOPEN64_UNLOCKED                = 0xD4A // 3402\n\tSYS_FREOPEN64                       = 0xD4B // 3403\n\tSYS_FREOPEN64_UNLOCKED              = 0xD4C // 3404\n\tSYS_TMPFILE64                       = 0xD4D // 3405\n\tSYS_TMPFILE64_UNLOCKED              = 0xD4E // 3406\n\tSYS_GETDATE64                       = 0xD4F // 3407\n\tSYS_GETTIMEOFDAY64                  = 0xD50 // 3408\n\tSYS_BIND2ADDRSEL                    = 0xD59 // 3417\n\tSYS_INET6_IS_SRCADDR                = 0xD5A // 3418\n\tSYS___GETGRGID1                     = 0xD5B // 3419\n\tSYS___GETGRNAM1                     = 0xD5C // 3420\n\tSYS___FBUFSIZE                      = 0xD60 // 3424\n\tSYS___FPENDING                      = 0xD61 // 3425\n\tSYS___FLBF                          = 0xD62 // 3426\n\tSYS___FREADABLE                     = 0xD63 // 3427\n\tSYS___FWRITABLE                     = 0xD64 // 3428\n\tSYS___FREADING                      = 0xD65 // 3429\n\tSYS___FWRITING                      = 0xD66 // 3430\n\tSYS___FSETLOCKING                   = 0xD67 // 3431\n\tSYS__FLUSHLBF                       = 0xD68 // 3432\n\tSYS___FPURGE                        = 0xD69 // 3433\n\tSYS___FREADAHEAD                    = 0xD6A // 3434\n\tSYS___FSETERR                       = 0xD6B // 3435\n\tSYS___FPENDING_UNLOCKED             = 0xD6C // 3436\n\tSYS___FREADING_UNLOCKED             = 0xD6D // 3437\n\tSYS___FWRITING_UNLOCKED             = 0xD6E // 3438\n\tSYS__FLUSHLBF_UNLOCKED              = 0xD6F // 3439\n\tSYS___FPURGE_UNLOCKED               = 0xD70 // 3440\n\tSYS___FREADAHEAD_UNLOCKED           = 0xD71 // 3441\n\tSYS___LE_CEEGTJS                    = 0xD72 // 3442\n\tSYS___LE_RECORD_DUMP                = 0xD73 // 3443\n\tSYS_FSTAT64                         = 0xD74 // 3444\n\tSYS_LSTAT64                         = 0xD75 // 3445\n\tSYS_STAT64                          = 0xD76 // 3446\n\tSYS___READDIR2_64                   = 0xD77 // 3447\n\tSYS___OPEN_STAT64                   = 0xD78 // 3448\n\tSYS_FTW64                           = 0xD79 // 3449\n\tSYS_NFTW64                          = 0xD7A // 3450\n\tSYS_UTIME64                         = 0xD7B // 3451\n\tSYS_UTIMES64                        = 0xD7C // 3452\n\tSYS___GETIPC64                      = 0xD7D // 3453\n\tSYS_MSGCTL64                        = 0xD7E // 3454\n\tSYS_SEMCTL64                        = 0xD7F // 3455\n\tSYS_SHMCTL64                        = 0xD80 // 3456\n\tSYS_MSGXRCV64                       = 0xD81 // 3457\n\tSYS___MGXR64                        = 0xD81 // 3457\n\tSYS_W_GETPSENT64                    = 0xD82 // 3458\n\tSYS_PTHREAD_COND_TIMEDWAIT64        = 0xD83 // 3459\n\tSYS_FTIME64                         = 0xD85 // 3461\n\tSYS_GETUTXENT64                     = 0xD86 // 3462\n\tSYS_GETUTXID64                      = 0xD87 // 3463\n\tSYS_GETUTXLINE64                    = 0xD88 // 3464\n\tSYS_PUTUTXLINE64                    = 0xD89 // 3465\n\tSYS_NEWLOCALE                       = 0xD8A // 3466\n\tSYS_FREELOCALE                      = 0xD8B // 3467\n\tSYS_USELOCALE                       = 0xD8C // 3468\n\tSYS_DUPLOCALE                       = 0xD8D // 3469\n\tSYS___CHATTR64                      = 0xD9C // 3484\n\tSYS___LCHATTR64                     = 0xD9D // 3485\n\tSYS___FCHATTR64                     = 0xD9E // 3486\n\tSYS_____CHATTR64_A                  = 0xD9F // 3487\n\tSYS_____LCHATTR64_A                 = 0xDA0 // 3488\n\tSYS___LE_CEEUSGD                    = 0xDA1 // 3489\n\tSYS___LE_IFAM_CON                   = 0xDA2 // 3490\n\tSYS___LE_IFAM_DSC                   = 0xDA3 // 3491\n\tSYS___LE_IFAM_GET                   = 0xDA4 // 3492\n\tSYS___LE_IFAM_QRY                   = 0xDA5 // 3493\n\tSYS_ALIGNED_ALLOC                   = 0xDA6 // 3494\n\tSYS_ACCEPT4                         = 0xDA7 // 3495\n\tSYS___ACCEPT4_A                     = 0xDA8 // 3496\n\tSYS_COPYFILERANGE                   = 0xDA9 // 3497\n\tSYS_GETLINE                         = 0xDAA // 3498\n\tSYS___GETLINE_A                     = 0xDAB // 3499\n\tSYS_DIRFD                           = 0xDAC // 3500\n\tSYS_CLOCK_GETTIME                   = 0xDAD // 3501\n\tSYS_DUP3                            = 0xDAE // 3502\n\tSYS_EPOLL_CREATE                    = 0xDAF // 3503\n\tSYS_EPOLL_CREATE1                   = 0xDB0 // 3504\n\tSYS_EPOLL_CTL                       = 0xDB1 // 3505\n\tSYS_EPOLL_WAIT                      = 0xDB2 // 3506\n\tSYS_EPOLL_PWAIT                     = 0xDB3 // 3507\n\tSYS_EVENTFD                         = 0xDB4 // 3508\n\tSYS_STATFS                          = 0xDB5 // 3509\n\tSYS___STATFS_A                      = 0xDB6 // 3510\n\tSYS_FSTATFS                         = 0xDB7 // 3511\n\tSYS_INOTIFY_INIT                    = 0xDB8 // 3512\n\tSYS_INOTIFY_INIT1                   = 0xDB9 // 3513\n\tSYS_INOTIFY_ADD_WATCH               = 0xDBA // 3514\n\tSYS___INOTIFY_ADD_WATCH_A           = 0xDBB // 3515\n\tSYS_INOTIFY_RM_WATCH                = 0xDBC // 3516\n\tSYS_PIPE2                           = 0xDBD // 3517\n\tSYS_PIVOT_ROOT                      = 0xDBE // 3518\n\tSYS___PIVOT_ROOT_A                  = 0xDBF // 3519\n\tSYS_PRCTL                           = 0xDC0 // 3520\n\tSYS_PRLIMIT                         = 0xDC1 // 3521\n\tSYS_SETHOSTNAME                     = 0xDC2 // 3522\n\tSYS___SETHOSTNAME_A                 = 0xDC3 // 3523\n\tSYS_SETRESUID                       = 0xDC4 // 3524\n\tSYS_SETRESGID                       = 0xDC5 // 3525\n\tSYS_PTHREAD_CONDATTR_GETCLOCK       = 0xDC6 // 3526\n\tSYS_FLOCK                           = 0xDC7 // 3527\n\tSYS_FGETXATTR                       = 0xDC8 // 3528\n\tSYS___FGETXATTR_A                   = 0xDC9 // 3529\n\tSYS_FLISTXATTR                      = 0xDCA // 3530\n\tSYS___FLISTXATTR_A                  = 0xDCB // 3531\n\tSYS_FREMOVEXATTR                    = 0xDCC // 3532\n\tSYS___FREMOVEXATTR_A                = 0xDCD // 3533\n\tSYS_FSETXATTR                       = 0xDCE // 3534\n\tSYS___FSETXATTR_A                   = 0xDCF // 3535\n\tSYS_GETXATTR                        = 0xDD0 // 3536\n\tSYS___GETXATTR_A                    = 0xDD1 // 3537\n\tSYS_LGETXATTR                       = 0xDD2 // 3538\n\tSYS___LGETXATTR_A                   = 0xDD3 // 3539\n\tSYS_LISTXATTR                       = 0xDD4 // 3540\n\tSYS___LISTXATTR_A                   = 0xDD5 // 3541\n\tSYS_LLISTXATTR                      = 0xDD6 // 3542\n\tSYS___LLISTXATTR_A                  = 0xDD7 // 3543\n\tSYS_LREMOVEXATTR                    = 0xDD8 // 3544\n\tSYS___LREMOVEXATTR_A                = 0xDD9 // 3545\n\tSYS_LSETXATTR                       = 0xDDA // 3546\n\tSYS___LSETXATTR_A                   = 0xDDB // 3547\n\tSYS_REMOVEXATTR                     = 0xDDC // 3548\n\tSYS___REMOVEXATTR_A                 = 0xDDD // 3549\n\tSYS_SETXATTR                        = 0xDDE // 3550\n\tSYS___SETXATTR_A                    = 0xDDF // 3551\n\tSYS_FDATASYNC                       = 0xDE0 // 3552\n\tSYS_SYNCFS                          = 0xDE1 // 3553\n\tSYS_FUTIMES                         = 0xDE2 // 3554\n\tSYS_FUTIMESAT                       = 0xDE3 // 3555\n\tSYS___FUTIMESAT_A                   = 0xDE4 // 3556\n\tSYS_LUTIMES                         = 0xDE5 // 3557\n\tSYS___LUTIMES_A                     = 0xDE6 // 3558\n\tSYS_INET_ATON                       = 0xDE7 // 3559\n\tSYS_GETRANDOM                       = 0xDE8 // 3560\n\tSYS_GETTID                          = 0xDE9 // 3561\n\tSYS_MEMFD_CREATE                    = 0xDEA // 3562\n\tSYS___MEMFD_CREATE_A                = 0xDEB // 3563\n\tSYS_FACCESSAT                       = 0xDEC // 3564\n\tSYS___FACCESSAT_A                   = 0xDED // 3565\n\tSYS_FCHMODAT                        = 0xDEE // 3566\n\tSYS___FCHMODAT_A                    = 0xDEF // 3567\n\tSYS_FCHOWNAT                        = 0xDF0 // 3568\n\tSYS___FCHOWNAT_A                    = 0xDF1 // 3569\n\tSYS_FSTATAT                         = 0xDF2 // 3570\n\tSYS___FSTATAT_A                     = 0xDF3 // 3571\n\tSYS_LINKAT                          = 0xDF4 // 3572\n\tSYS___LINKAT_A                      = 0xDF5 // 3573\n\tSYS_MKDIRAT                         = 0xDF6 // 3574\n\tSYS___MKDIRAT_A                     = 0xDF7 // 3575\n\tSYS_MKFIFOAT                        = 0xDF8 // 3576\n\tSYS___MKFIFOAT_A                    = 0xDF9 // 3577\n\tSYS_MKNODAT                         = 0xDFA // 3578\n\tSYS___MKNODAT_A                     = 0xDFB // 3579\n\tSYS_OPENAT                          = 0xDFC // 3580\n\tSYS___OPENAT_A                      = 0xDFD // 3581\n\tSYS_READLINKAT                      = 0xDFE // 3582\n\tSYS___READLINKAT_A                  = 0xDFF // 3583\n\tSYS_RENAMEAT                        = 0xE00 // 3584\n\tSYS___RENAMEAT_A                    = 0xE01 // 3585\n\tSYS_RENAMEAT2                       = 0xE02 // 3586\n\tSYS___RENAMEAT2_A                   = 0xE03 // 3587\n\tSYS_SYMLINKAT                       = 0xE04 // 3588\n\tSYS___SYMLINKAT_A                   = 0xE05 // 3589\n\tSYS_UNLINKAT                        = 0xE06 // 3590\n\tSYS___UNLINKAT_A                    = 0xE07 // 3591\n\tSYS_SYSINFO                         = 0xE08 // 3592\n\tSYS_WAIT4                           = 0xE0A // 3594\n\tSYS_CLONE                           = 0xE0B // 3595\n\tSYS_UNSHARE                         = 0xE0C // 3596\n\tSYS_SETNS                           = 0xE0D // 3597\n\tSYS_CAPGET                          = 0xE0E // 3598\n\tSYS_CAPSET                          = 0xE0F // 3599\n\tSYS_STRCHRNUL                       = 0xE10 // 3600\n\tSYS_PTHREAD_CONDATTR_SETCLOCK       = 0xE12 // 3602\n\tSYS_OPEN_BY_HANDLE_AT               = 0xE13 // 3603\n\tSYS___OPEN_BY_HANDLE_AT_A           = 0xE14 // 3604\n\tSYS___INET_ATON_A                   = 0xE15 // 3605\n\tSYS_MOUNT1                          = 0xE16 // 3606\n\tSYS___MOUNT1_A                      = 0xE17 // 3607\n\tSYS_UMOUNT1                         = 0xE18 // 3608\n\tSYS___UMOUNT1_A                     = 0xE19 // 3609\n\tSYS_UMOUNT2                         = 0xE1A // 3610\n\tSYS___UMOUNT2_A                     = 0xE1B // 3611\n\tSYS___PRCTL_A                       = 0xE1C // 3612\n\tSYS_LOCALTIME_R2                    = 0xE1D // 3613\n\tSYS___LOCALTIME_R2_A                = 0xE1E // 3614\n\tSYS_OPENAT2                         = 0xE1F // 3615\n\tSYS___OPENAT2_A                     = 0xE20 // 3616\n\tSYS___LE_CEEMICT                    = 0xE21 // 3617\n\tSYS_GETENTROPY                      = 0xE22 // 3618\n\tSYS_NANOSLEEP                       = 0xE23 // 3619\n\tSYS_UTIMENSAT                       = 0xE24 // 3620\n\tSYS___UTIMENSAT_A                   = 0xE25 // 3621\n\tSYS_ASPRINTF                        = 0xE26 // 3622\n\tSYS___ASPRINTF_A                    = 0xE27 // 3623\n\tSYS_VASPRINTF                       = 0xE28 // 3624\n\tSYS___VASPRINTF_A                   = 0xE29 // 3625\n\tSYS_DPRINTF                         = 0xE2A // 3626\n\tSYS___DPRINTF_A                     = 0xE2B // 3627\n\tSYS_GETOPT_LONG                     = 0xE2C // 3628\n\tSYS___GETOPT_LONG_A                 = 0xE2D // 3629\n\tSYS_PSIGNAL                         = 0xE2E // 3630\n\tSYS___PSIGNAL_A                     = 0xE2F // 3631\n\tSYS_PSIGNAL_UNLOCKED                = 0xE30 // 3632\n\tSYS___PSIGNAL_UNLOCKED_A            = 0xE31 // 3633\n\tSYS_FSTATAT_O                       = 0xE32 // 3634\n\tSYS___FSTATAT_O_A                   = 0xE33 // 3635\n\tSYS_FSTATAT64                       = 0xE34 // 3636\n\tSYS___FSTATAT64_A                   = 0xE35 // 3637\n\tSYS___CHATTRAT                      = 0xE36 // 3638\n\tSYS_____CHATTRAT_A                  = 0xE37 // 3639\n\tSYS___CHATTRAT64                    = 0xE38 // 3640\n\tSYS_____CHATTRAT64_A                = 0xE39 // 3641\n\tSYS_MADVISE                         = 0xE3A // 3642\n\tSYS___AUTHENTICATE                  = 0xE3B // 3643\n\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go",
    "content": "// cgo -godefs types_aix.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && aix\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x3ff\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype off64 int64\ntype off int32\ntype Mode_t uint32\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct{}\n\ntype Time_t int32\n\ntype Tms struct{}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Timezone struct {\n\tMinuteswest int32\n\tDsttime     int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype Pid_t int32\n\ntype _Gid_t uint32\n\ntype dev_t uint32\n\ntype Stat_t struct {\n\tDev      uint32\n\tIno      uint32\n\tMode     uint32\n\tNlink    int16\n\tFlag     uint16\n\tUid      uint32\n\tGid      uint32\n\tRdev     uint32\n\tSize     int32\n\tAtim     Timespec\n\tMtim     Timespec\n\tCtim     Timespec\n\tBlksize  int32\n\tBlocks   int32\n\tVfstype  int32\n\tVfs      uint32\n\tType     uint32\n\tGen      uint32\n\tReserved [9]uint32\n}\n\ntype StatxTimestamp struct{}\n\ntype Statx_t struct{}\n\ntype Dirent struct {\n\tOffset uint32\n\tIno    uint32\n\tReclen uint16\n\tNamlen uint16\n\tName   [256]uint8\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [1023]uint8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [120]uint8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [1012]uint8\n}\n\ntype _Socklen uint32\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x404\n\tSizeofSockaddrUnix     = 0x401\n\tSizeofSockaddrDatalink = 0x80\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tSizeofIfMsghdr = 0x10\n)\n\ntype IfMsgHdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tAddrlen uint8\n\t_       [1]byte\n}\n\ntype FdSet struct {\n\tBits [2048]int32\n}\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n\ntype Ustat_t struct{}\n\ntype Sigset_t struct {\n\tLosigs uint32\n\tHisigs uint32\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x1\n)\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [16]uint8\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  uint8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  uint16\n\tRevents uint16\n}\n\nconst (\n\tPOLLERR    = 0x4000\n\tPOLLHUP    = 0x2000\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x8000\n\tPOLLOUT    = 0x2\n\tPOLLPRI    = 0x4\n\tPOLLRDBAND = 0x20\n\tPOLLRDNORM = 0x10\n\tPOLLWRBAND = 0x40\n\tPOLLWRNORM = 0x2\n)\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tSysid  uint32\n\tPid    int32\n\tVfs    int32\n\tStart  int64\n\tLen    int64\n}\n\ntype Fsid_t struct {\n\tVal [2]uint32\n}\ntype Fsid64_t struct {\n\tVal [2]uint64\n}\n\ntype Statfs_t struct {\n\tVersion   int32\n\tType      int32\n\tBsize     uint32\n\tBlocks    uint32\n\tBfree     uint32\n\tBavail    uint32\n\tFiles     uint32\n\tFfree     uint32\n\tFsid      Fsid_t\n\tVfstype   int32\n\tFsize     uint32\n\tVfsnumber int32\n\tVfsoff    int32\n\tVfslen    int32\n\tVfsvers   int32\n\tFname     [32]uint8\n\tFpack     [32]uint8\n\tName_max  int32\n}\n\nconst RNDGETENTCNT = 0x80045200\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go",
    "content": "// cgo -godefs types_aix.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && aix\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x3ff\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype off64 int64\ntype off int64\ntype Mode_t uint32\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct{}\n\ntype Time_t int64\n\ntype Tms struct{}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Timezone struct {\n\tMinuteswest int32\n\tDsttime     int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype Pid_t int32\n\ntype _Gid_t uint32\n\ntype dev_t uint64\n\ntype Stat_t struct {\n\tDev      uint64\n\tIno      uint64\n\tMode     uint32\n\tNlink    int16\n\tFlag     uint16\n\tUid      uint32\n\tGid      uint32\n\tRdev     uint64\n\tSsize    int32\n\tAtim     Timespec\n\tMtim     Timespec\n\tCtim     Timespec\n\tBlksize  int64\n\tBlocks   int64\n\tVfstype  int32\n\tVfs      uint32\n\tType     uint32\n\tGen      uint32\n\tReserved [9]uint32\n\tPadto_ll uint32\n\tSize     int64\n}\n\ntype StatxTimestamp struct{}\n\ntype Statx_t struct{}\n\ntype Dirent struct {\n\tOffset uint64\n\tIno    uint64\n\tReclen uint16\n\tNamlen uint16\n\tName   [256]uint8\n\t_      [4]byte\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [1023]uint8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [120]uint8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [1012]uint8\n}\n\ntype _Socklen uint32\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x404\n\tSizeofSockaddrUnix     = 0x401\n\tSizeofSockaddrDatalink = 0x80\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tSizeofIfMsghdr = 0x10\n)\n\ntype IfMsgHdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tAddrlen uint8\n\t_       [1]byte\n}\n\ntype FdSet struct {\n\tBits [1024]int64\n}\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n\ntype Ustat_t struct{}\n\ntype Sigset_t struct {\n\tSet [4]uint64\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x1\n)\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [16]uint8\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  uint8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  uint16\n\tRevents uint16\n}\n\nconst (\n\tPOLLERR    = 0x4000\n\tPOLLHUP    = 0x2000\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x8000\n\tPOLLOUT    = 0x2\n\tPOLLPRI    = 0x4\n\tPOLLRDBAND = 0x20\n\tPOLLRDNORM = 0x10\n\tPOLLWRBAND = 0x40\n\tPOLLWRNORM = 0x2\n)\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tSysid  uint32\n\tPid    int32\n\tVfs    int32\n\tStart  int64\n\tLen    int64\n}\n\ntype Fsid_t struct {\n\tVal [2]uint32\n}\ntype Fsid64_t struct {\n\tVal [2]uint64\n}\n\ntype Statfs_t struct {\n\tVersion   int32\n\tType      int32\n\tBsize     uint64\n\tBlocks    uint64\n\tBfree     uint64\n\tBavail    uint64\n\tFiles     uint64\n\tFfree     uint64\n\tFsid      Fsid64_t\n\tVfstype   int32\n\tFsize     uint64\n\tVfsnumber int32\n\tVfsoff    int32\n\tVfslen    int32\n\tVfsvers   int32\n\tFname     [32]uint8\n\tFpack     [32]uint8\n\tName_max  int32\n\t_         [4]byte\n}\n\nconst RNDGETENTCNT = 0x80045200\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go",
    "content": "// cgo -godefs types_darwin.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && darwin\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     int32\n\tMode    uint16\n\tNlink   uint16\n\tIno     uint64\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tQspare  [2]int64\n}\n\ntype Statfs_t struct {\n\tBsize       uint32\n\tIosize      int32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        uint32\n\tFlags       uint32\n\tFssubtype   uint32\n\tFstypename  [16]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\tFlags_ext   uint32\n\tReserved    [7]uint32\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Fstore_t struct {\n\tFlags      uint32\n\tPosmode    int32\n\tOffset     int64\n\tLength     int64\n\tBytesalloc int64\n}\n\ntype Radvisory_t struct {\n\tOffset int64\n\tCount  int32\n\t_      [4]byte\n}\n\ntype Fbootstraptransfer_t struct {\n\tOffset int64\n\tLength uint64\n\tBuffer *byte\n}\n\ntype Log2phys_t struct {\n\tFlags uint32\n\t_     [16]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Dirent struct {\n\tIno     uint64\n\tSeekoff uint64\n\tReclen  uint16\n\tNamlen  uint16\n\tType    uint8\n\tName    [1024]int8\n\t_       [3]byte\n}\n\ntype Attrlist struct {\n\tBitmapcount uint16\n\tReserved    uint16\n\tCommonattr  uint32\n\tVolattr     uint32\n\tDirattr     uint32\n\tFileattr    uint32\n\tForkattr    uint32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype RawSockaddrCtl struct {\n\tSc_len      uint8\n\tSc_family   uint8\n\tSs_sysaddr  uint16\n\tSc_id       uint32\n\tSc_unit     uint32\n\tSc_reserved [5]uint32\n}\n\ntype RawSockaddrVM struct {\n\tLen       uint8\n\tFamily    uint8\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n}\n\ntype XVSockPCB struct {\n\tXv_len           uint32\n\tXv_vsockpp       uint64\n\tXvp_local_cid    uint32\n\tXvp_local_port   uint32\n\tXvp_remote_cid   uint32\n\tXvp_remote_port  uint32\n\tXvp_rxcnt        uint32\n\tXvp_txcnt        uint32\n\tXvp_peer_rxhiwat uint32\n\tXvp_peer_rxcnt   uint32\n\tXvp_last_pid     int32\n\tXvp_gencnt       uint64\n\tXv_socket        XSocket\n\t_                [4]byte\n}\n\ntype XSocket struct {\n\tXso_len      uint32\n\tXso_so       uint32\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\tSo_pcb       uint32\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSocket64 struct {\n\tXso_len      uint32\n\t_            [8]byte\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\t_            [8]byte\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSockbuf struct {\n\tCc    uint32\n\tHiwat uint32\n\tMbcnt uint32\n\tMbmax uint32\n\tLowat int32\n\tFlags int16\n\tTimeo int16\n}\n\ntype XVSockPgen struct {\n\tLen   uint32\n\tCount uint64\n\tGen   uint64\n\tSogen uint64\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype TCPConnectionInfo struct {\n\tState               uint8\n\tSnd_wscale          uint8\n\tRcv_wscale          uint8\n\t_                   uint8\n\tOptions             uint32\n\tFlags               uint32\n\tRto                 uint32\n\tMaxseg              uint32\n\tSnd_ssthresh        uint32\n\tSnd_cwnd            uint32\n\tSnd_wnd             uint32\n\tSnd_sbbytes         uint32\n\tRcv_wnd             uint32\n\tRttcur              uint32\n\tSrtt                uint32\n\tRttvar              uint32\n\tTxpackets           uint64\n\tTxbytes             uint64\n\tTxretransmitbytes   uint64\n\tRxpackets           uint64\n\tRxbytes             uint64\n\tRxoutoforderbytes   uint64\n\tTxretransmitpackets uint64\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x6c\n\tSizeofSockaddrUnix      = 0x6a\n\tSizeofSockaddrDatalink  = 0x14\n\tSizeofSockaddrCtl       = 0x20\n\tSizeofSockaddrVM        = 0xc\n\tSizeofXvsockpcb         = 0xa8\n\tSizeofXSocket           = 0x64\n\tSizeofXSockbuf          = 0x18\n\tSizeofXVSockPgen        = 0x20\n\tSizeofXucred            = 0x4c\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofMsghdr            = 0x30\n\tSizeofCmsghdr           = 0xc\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofTCPConnectionInfo = 0x70\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\nconst (\n\tSizeofIfMsghdr    = 0x70\n\tSizeofIfData      = 0x60\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMetrics   = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n\tUnused2    uint32\n\tHwassist   uint32\n\tReserved1  uint32\n\tReserved2  uint32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfmaMsghdr2 struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tAddrs    int32\n\tFlags    int32\n\tIndex    uint16\n\tRefcount int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   int32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tState    uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval32\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag  uint64\n\tOflag  uint64\n\tCflag  uint64\n\tLflag  uint64\n\tCc     [20]uint8\n\tIspeed uint64\n\tOspeed uint64\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x80\n\tAT_SYMLINK_FOLLOW   = 0x40\n\tAT_SYMLINK_NOFOLLOW = 0x20\n\tAT_EACCESS          = 0x10\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n\ntype CtlInfo struct {\n\tId   uint32\n\tName [96]byte\n}\n\nconst SizeofKinfoProc = 0x288\n\ntype Eproc struct {\n\tPaddr   uintptr\n\tSess    uintptr\n\tPcred   Pcred\n\tUcred   Ucred\n\tVm      Vmspace\n\tPpid    int32\n\tPgid    int32\n\tJobc    int16\n\tTdev    int32\n\tTpgid   int32\n\tTsess   uintptr\n\tWmesg   [8]byte\n\tXsize   int32\n\tXrssize int16\n\tXccount int16\n\tXswrss  int16\n\tFlag    int32\n\tLogin   [12]byte\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype ExternProc struct {\n\tP_starttime Timeval\n\tP_vmspace   *Vmspace\n\tP_sigacts   uintptr\n\tP_flag      int32\n\tP_stat      int8\n\tP_pid       int32\n\tP_oppid     int32\n\tP_dupfd     int32\n\tUser_stack  *int8\n\tExit_thread *byte\n\tP_debugger  int32\n\tSigwait     int32\n\tP_estcpu    uint32\n\tP_cpticks   int32\n\tP_pctcpu    uint32\n\tP_wchan     *byte\n\tP_wmesg     *int8\n\tP_swtime    uint32\n\tP_slptime   uint32\n\tP_realtimer Itimerval\n\tP_rtime     Timeval\n\tP_uticks    uint64\n\tP_sticks    uint64\n\tP_iticks    uint64\n\tP_traceflag int32\n\tP_tracep    uintptr\n\tP_siglist   int32\n\tP_textvp    uintptr\n\tP_holdcnt   int32\n\tP_sigmask   uint32\n\tP_sigignore uint32\n\tP_sigcatch  uint32\n\tP_priority  uint8\n\tP_usrpri    uint8\n\tP_nice      int8\n\tP_comm      [17]byte\n\tP_pgrp      uintptr\n\tP_addr      uintptr\n\tP_xstat     uint16\n\tP_acflag    uint16\n\tP_ru        *Rusage\n}\n\ntype Itimerval struct {\n\tInterval Timeval\n\tValue    Timeval\n}\n\ntype KinfoProc struct {\n\tProc  ExternProc\n\tEproc Eproc\n}\n\ntype Vmspace struct {\n\tDummy  int32\n\tDummy2 *int8\n\tDummy3 [5]int32\n\tDummy4 [3]*int8\n}\n\ntype Pcred struct {\n\tPc_lock  [72]int8\n\tPc_ucred uintptr\n\tP_ruid   uint32\n\tP_svuid  uint32\n\tP_rgid   uint32\n\tP_svgid  uint32\n\tP_refcnt int32\n\t_        [4]byte\n}\n\ntype Ucred struct {\n\tRef     int32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype SysvIpcPerm struct {\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    uint16\n\t_    int32\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tLpid   int32\n\tCpid   int32\n\tNattch uint16\n\t_      [34]byte\n}\n\nconst (\n\tIPC_CREAT   = 0x200\n\tIPC_EXCL    = 0x400\n\tIPC_NOWAIT  = 0x800\n\tIPC_PRIVATE = 0x0\n)\n\nconst (\n\tIPC_RMID = 0x0\n\tIPC_SET  = 0x1\n\tIPC_STAT = 0x2\n)\n\nconst (\n\tSHM_RDONLY = 0x1000\n\tSHM_RND    = 0x2000\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go",
    "content": "// cgo -godefs types_darwin.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && darwin\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     int32\n\tMode    uint16\n\tNlink   uint16\n\tIno     uint64\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tQspare  [2]int64\n}\n\ntype Statfs_t struct {\n\tBsize       uint32\n\tIosize      int32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        uint32\n\tFlags       uint32\n\tFssubtype   uint32\n\tFstypename  [16]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\tFlags_ext   uint32\n\tReserved    [7]uint32\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Fstore_t struct {\n\tFlags      uint32\n\tPosmode    int32\n\tOffset     int64\n\tLength     int64\n\tBytesalloc int64\n}\n\ntype Radvisory_t struct {\n\tOffset int64\n\tCount  int32\n\t_      [4]byte\n}\n\ntype Fbootstraptransfer_t struct {\n\tOffset int64\n\tLength uint64\n\tBuffer *byte\n}\n\ntype Log2phys_t struct {\n\tFlags uint32\n\t_     [16]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Dirent struct {\n\tIno     uint64\n\tSeekoff uint64\n\tReclen  uint16\n\tNamlen  uint16\n\tType    uint8\n\tName    [1024]int8\n\t_       [3]byte\n}\n\ntype Attrlist struct {\n\tBitmapcount uint16\n\tReserved    uint16\n\tCommonattr  uint32\n\tVolattr     uint32\n\tDirattr     uint32\n\tFileattr    uint32\n\tForkattr    uint32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype RawSockaddrCtl struct {\n\tSc_len      uint8\n\tSc_family   uint8\n\tSs_sysaddr  uint16\n\tSc_id       uint32\n\tSc_unit     uint32\n\tSc_reserved [5]uint32\n}\n\ntype RawSockaddrVM struct {\n\tLen       uint8\n\tFamily    uint8\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n}\n\ntype XVSockPCB struct {\n\tXv_len           uint32\n\tXv_vsockpp       uint64\n\tXvp_local_cid    uint32\n\tXvp_local_port   uint32\n\tXvp_remote_cid   uint32\n\tXvp_remote_port  uint32\n\tXvp_rxcnt        uint32\n\tXvp_txcnt        uint32\n\tXvp_peer_rxhiwat uint32\n\tXvp_peer_rxcnt   uint32\n\tXvp_last_pid     int32\n\tXvp_gencnt       uint64\n\tXv_socket        XSocket\n\t_                [4]byte\n}\n\ntype XSocket struct {\n\tXso_len      uint32\n\tXso_so       uint32\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\tSo_pcb       uint32\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSocket64 struct {\n\tXso_len      uint32\n\t_            [8]byte\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\t_            [8]byte\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSockbuf struct {\n\tCc    uint32\n\tHiwat uint32\n\tMbcnt uint32\n\tMbmax uint32\n\tLowat int32\n\tFlags int16\n\tTimeo int16\n}\n\ntype XVSockPgen struct {\n\tLen   uint32\n\tCount uint64\n\tGen   uint64\n\tSogen uint64\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype TCPConnectionInfo struct {\n\tState               uint8\n\tSnd_wscale          uint8\n\tRcv_wscale          uint8\n\t_                   uint8\n\tOptions             uint32\n\tFlags               uint32\n\tRto                 uint32\n\tMaxseg              uint32\n\tSnd_ssthresh        uint32\n\tSnd_cwnd            uint32\n\tSnd_wnd             uint32\n\tSnd_sbbytes         uint32\n\tRcv_wnd             uint32\n\tRttcur              uint32\n\tSrtt                uint32\n\tRttvar              uint32\n\tTxpackets           uint64\n\tTxbytes             uint64\n\tTxretransmitbytes   uint64\n\tRxpackets           uint64\n\tRxbytes             uint64\n\tRxoutoforderbytes   uint64\n\tTxretransmitpackets uint64\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x6c\n\tSizeofSockaddrUnix      = 0x6a\n\tSizeofSockaddrDatalink  = 0x14\n\tSizeofSockaddrCtl       = 0x20\n\tSizeofSockaddrVM        = 0xc\n\tSizeofXvsockpcb         = 0xa8\n\tSizeofXSocket           = 0x64\n\tSizeofXSockbuf          = 0x18\n\tSizeofXVSockPgen        = 0x20\n\tSizeofXucred            = 0x4c\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofMsghdr            = 0x30\n\tSizeofCmsghdr           = 0xc\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofTCPConnectionInfo = 0x70\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\nconst (\n\tSizeofIfMsghdr    = 0x70\n\tSizeofIfData      = 0x60\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMetrics   = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n\tUnused2    uint32\n\tHwassist   uint32\n\tReserved1  uint32\n\tReserved2  uint32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfmaMsghdr2 struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tAddrs    int32\n\tFlags    int32\n\tIndex    uint16\n\tRefcount int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   int32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tState    uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval32\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag  uint64\n\tOflag  uint64\n\tCflag  uint64\n\tLflag  uint64\n\tCc     [20]uint8\n\tIspeed uint64\n\tOspeed uint64\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x80\n\tAT_SYMLINK_FOLLOW   = 0x40\n\tAT_SYMLINK_NOFOLLOW = 0x20\n\tAT_EACCESS          = 0x10\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n\ntype CtlInfo struct {\n\tId   uint32\n\tName [96]byte\n}\n\nconst SizeofKinfoProc = 0x288\n\ntype Eproc struct {\n\tPaddr   uintptr\n\tSess    uintptr\n\tPcred   Pcred\n\tUcred   Ucred\n\tVm      Vmspace\n\tPpid    int32\n\tPgid    int32\n\tJobc    int16\n\tTdev    int32\n\tTpgid   int32\n\tTsess   uintptr\n\tWmesg   [8]byte\n\tXsize   int32\n\tXrssize int16\n\tXccount int16\n\tXswrss  int16\n\tFlag    int32\n\tLogin   [12]byte\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype ExternProc struct {\n\tP_starttime Timeval\n\tP_vmspace   *Vmspace\n\tP_sigacts   uintptr\n\tP_flag      int32\n\tP_stat      int8\n\tP_pid       int32\n\tP_oppid     int32\n\tP_dupfd     int32\n\tUser_stack  *int8\n\tExit_thread *byte\n\tP_debugger  int32\n\tSigwait     int32\n\tP_estcpu    uint32\n\tP_cpticks   int32\n\tP_pctcpu    uint32\n\tP_wchan     *byte\n\tP_wmesg     *int8\n\tP_swtime    uint32\n\tP_slptime   uint32\n\tP_realtimer Itimerval\n\tP_rtime     Timeval\n\tP_uticks    uint64\n\tP_sticks    uint64\n\tP_iticks    uint64\n\tP_traceflag int32\n\tP_tracep    uintptr\n\tP_siglist   int32\n\tP_textvp    uintptr\n\tP_holdcnt   int32\n\tP_sigmask   uint32\n\tP_sigignore uint32\n\tP_sigcatch  uint32\n\tP_priority  uint8\n\tP_usrpri    uint8\n\tP_nice      int8\n\tP_comm      [17]byte\n\tP_pgrp      uintptr\n\tP_addr      uintptr\n\tP_xstat     uint16\n\tP_acflag    uint16\n\tP_ru        *Rusage\n}\n\ntype Itimerval struct {\n\tInterval Timeval\n\tValue    Timeval\n}\n\ntype KinfoProc struct {\n\tProc  ExternProc\n\tEproc Eproc\n}\n\ntype Vmspace struct {\n\tDummy  int32\n\tDummy2 *int8\n\tDummy3 [5]int32\n\tDummy4 [3]*int8\n}\n\ntype Pcred struct {\n\tPc_lock  [72]int8\n\tPc_ucred uintptr\n\tP_ruid   uint32\n\tP_svuid  uint32\n\tP_rgid   uint32\n\tP_svgid  uint32\n\tP_refcnt int32\n\t_        [4]byte\n}\n\ntype Ucred struct {\n\tRef     int32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype SysvIpcPerm struct {\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    uint16\n\t_    int32\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tLpid   int32\n\tCpid   int32\n\tNattch uint16\n\t_      [34]byte\n}\n\nconst (\n\tIPC_CREAT   = 0x200\n\tIPC_EXCL    = 0x400\n\tIPC_NOWAIT  = 0x800\n\tIPC_PRIVATE = 0x0\n)\n\nconst (\n\tIPC_RMID = 0x0\n\tIPC_SET  = 0x1\n\tIPC_STAT = 0x2\n)\n\nconst (\n\tSHM_RDONLY = 0x1000\n\tSHM_RND    = 0x2000\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go",
    "content": "// cgo -godefs types_dragonfly.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && dragonfly\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tIno     uint64\n\tNlink   uint32\n\tDev     uint32\n\tMode    uint16\n\t_1      uint16\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\t_       uint32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tBlksize int64\n\tQspare2 int64\n}\n\ntype Statfs_t struct {\n\tSpare2      int64\n\tBsize       int64\n\tIosize      int64\n\tBlocks      int64\n\tBfree       int64\n\tBavail      int64\n\tFiles       int64\n\tFfree       int64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        int32\n\tFlags       int32\n\tSyncwrites  int64\n\tAsyncwrites int64\n\tFstypename  [16]byte\n\tMntonname   [80]byte\n\tSyncreads   int64\n\tAsyncreads  int64\n\tSpares1     int16\n\tMntfromname [80]byte\n\tSpares2     int16\n\tSpare       [2]int64\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno  uint64\n\tNamlen  uint16\n\tType    uint8\n\tUnused1 uint8\n\tUnused2 uint32\n\tName    [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\tRcf    uint16\n\tRoute  [16]uint16\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xb0\n\tSizeofIfData           = 0xa0\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tMtu        uint64\n\tMetric     uint64\n\tLink_state uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\tOqdrops    uint64\n\tLastchange Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tFlags     int32\n\tAddrs     int32\n\tAddrflags int32\n\tMetric    int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks     uint64\n\tMtu       uint64\n\tPksent    uint64\n\tExpire    uint64\n\tSendpipe  uint64\n\tSsthresh  uint64\n\tRtt       uint64\n\tRttvar    uint64\n\tRecvpipe  uint64\n\tHopcount  uint64\n\tMssopt    uint16\n\tPad       uint16\n\tMsl       uint64\n\tIwmaxsegs uint64\n\tIwcapsegs uint64\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = 0xfffafdcd\n\tAT_SYMLINK_NOFOLLOW = 0x1\n\tAT_REMOVEDIR        = 0x2\n\tAT_EACCESS          = 0x4\n\tAT_SYMLINK_FOLLOW   = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go",
    "content": "// cgo -godefs types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Time_t int32\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\t_       int32\n\tAtim    Timespec\n\t_       int32\n\tMtim    Timespec\n\t_       int32\n\tCtim    Timespec\n\t_       int32\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x50\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [4]byte\n\t_      [32]byte\n}\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [4]byte\n\t_      [32]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tFs     uint32\n\tEs     uint32\n\tDs     uint32\n\tEdi    uint32\n\tEsi    uint32\n\tEbp    uint32\n\tIsp    uint32\n\tEbx    uint32\n\tEdx    uint32\n\tEcx    uint32\n\tEax    uint32\n\tTrapno uint32\n\tErr    uint32\n\tEip    uint32\n\tCs     uint32\n\tEflags uint32\n\tEsp    uint32\n\tSs     uint32\n\tGs     uint32\n}\n\ntype FpReg struct {\n\tEnv   [7]uint32\n\tAcc   [8][10]uint8\n\tEx_sw uint32\n\tPad   [64]uint8\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint32\n}\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0x60\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x50\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x5c\n\tSizeofRtMetrics        = 0x38\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint32\n\tMetric      uint32\n\tBaudrate    uint32\n\tIpackets    uint32\n\tIerrors     uint32\n\tOpackets    uint32\n\tOerrors     uint32\n\tCollisions  uint32\n\tIbytes      uint32\n\tObytes      uint32\n\tImcasts     uint32\n\tOmcasts     uint32\n\tIqdrops     uint32\n\tNoproto     uint32\n\tHwassist    uint32\n\tEpoch       int32\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tWeight   uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0xc\n\tSizeofBpfProgram    = 0x8\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x14\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go",
    "content": "// cgo -godefs types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x58\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tR15    int64\n\tR14    int64\n\tR13    int64\n\tR12    int64\n\tR11    int64\n\tR10    int64\n\tR9     int64\n\tR8     int64\n\tRdi    int64\n\tRsi    int64\n\tRbp    int64\n\tRbx    int64\n\tRdx    int64\n\tRcx    int64\n\tRax    int64\n\tTrapno uint32\n\tFs     uint16\n\tGs     uint16\n\tErr    uint32\n\tEs     uint16\n\tDs     uint16\n\tRip    int64\n\tCs     int64\n\tRflags int64\n\tRsp    int64\n\tSs     int64\n}\n\ntype FpReg struct {\n\tEnv   [4]uint64\n\tAcc   [8][16]uint8\n\tXacc  [16][16]uint8\n\tSpare [12]uint64\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint64\n}\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0xa8\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x98\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint64\n\tMetric      uint64\n\tBaudrate    uint64\n\tIpackets    uint64\n\tIerrors     uint64\n\tOpackets    uint64\n\tOerrors     uint64\n\tCollisions  uint64\n\tIbytes      uint64\n\tObytes      uint64\n\tImcasts     uint64\n\tOmcasts     uint64\n\tIqdrops     uint64\n\tNoproto     uint64\n\tHwassist    uint64\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tExpire   uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tPksent   uint64\n\tWeight   uint64\n\tFiller   [3]uint64\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0x18\n\tSizeofBpfProgram    = 0x10\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go",
    "content": "// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n\t_    [4]byte\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x50\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [4]byte\n\t_      [32]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [4]byte\n\t_      [32]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tR    [13]uint32\n\tSp   uint32\n\tLr   uint32\n\tPc   uint32\n\tCpsr uint32\n}\n\ntype FpReg struct {\n\tFpsr uint32\n\tFpr  [8]FpExtendedPrecision\n}\n\ntype FpExtendedPrecision struct {\n\tExponent    uint32\n\tMantissa_hi uint32\n\tMantissa_lo uint32\n}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint32\n}\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\t_      [4]byte\n\tData   int64\n\tUdata  *byte\n\t_      [4]byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0x70\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x60\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x5c\n\tSizeofRtMetrics        = 0x38\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint32\n\tMetric      uint32\n\tBaudrate    uint32\n\tIpackets    uint32\n\tIerrors     uint32\n\tOpackets    uint32\n\tOerrors     uint32\n\tCollisions  uint32\n\tIbytes      uint32\n\tObytes      uint32\n\tImcasts     uint32\n\tOmcasts     uint32\n\tIqdrops     uint32\n\tNoproto     uint32\n\tHwassist    uint32\n\t_           [4]byte\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tWeight   uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0xc\n\tSizeofBpfProgram    = 0x8\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go",
    "content": "// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x58\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tX    [30]uint64\n\tLr   uint64\n\tSp   uint64\n\tElr  uint64\n\tSpsr uint32\n\t_    [4]byte\n}\n\ntype FpReg struct {\n\tQ  [32][16]uint8\n\tSr uint32\n\tCr uint32\n\t_  [8]byte\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint64\n}\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0xa8\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x98\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint64\n\tMetric      uint64\n\tBaudrate    uint64\n\tIpackets    uint64\n\tIerrors     uint64\n\tOpackets    uint64\n\tOerrors     uint64\n\tCollisions  uint64\n\tIbytes      uint64\n\tObytes      uint64\n\tImcasts     uint64\n\tOmcasts     uint64\n\tIqdrops     uint64\n\tNoproto     uint64\n\tHwassist    uint64\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tExpire   uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tPksent   uint64\n\tWeight   uint64\n\tFiller   [3]uint64\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0x18\n\tSizeofBpfProgram    = 0x10\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go",
    "content": "// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x58\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tRa      uint64\n\tSp      uint64\n\tGp      uint64\n\tTp      uint64\n\tT       [7]uint64\n\tS       [12]uint64\n\tA       [8]uint64\n\tSepc    uint64\n\tSstatus uint64\n}\n\ntype FpReg struct {\n\tX    [32][2]uint64\n\tFcsr uint64\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint64\n}\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0xa8\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x98\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint64\n\tMetric      uint64\n\tBaudrate    uint64\n\tIpackets    uint64\n\tIerrors     uint64\n\tOpackets    uint64\n\tOerrors     uint64\n\tCollisions  uint64\n\tIbytes      uint64\n\tObytes      uint64\n\tImcasts     uint64\n\tOmcasts     uint64\n\tIqdrops     uint64\n\tNoproto     uint64\n\tHwassist    uint64\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tExpire   uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tPksent   uint64\n\tWeight   uint64\n\tNhidx    uint64\n\tFiller   [2]uint64\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0x18\n\tSizeofBpfProgram    = 0x10\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux.go",
    "content": "// Code generated by mkmerge; DO NOT EDIT.\n\n//go:build linux\n\npackage unix\n\nconst (\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short int16\n\t_C_int   int32\n\n\t_C_long_long int64\n)\n\ntype ItimerSpec struct {\n\tInterval Timespec\n\tValue    Timespec\n}\n\ntype Itimerval struct {\n\tInterval Timeval\n\tValue    Timeval\n}\n\nconst (\n\tADJ_OFFSET            = 0x1\n\tADJ_FREQUENCY         = 0x2\n\tADJ_MAXERROR          = 0x4\n\tADJ_ESTERROR          = 0x8\n\tADJ_STATUS            = 0x10\n\tADJ_TIMECONST         = 0x20\n\tADJ_TAI               = 0x80\n\tADJ_SETOFFSET         = 0x100\n\tADJ_MICRO             = 0x1000\n\tADJ_NANO              = 0x2000\n\tADJ_TICK              = 0x4000\n\tADJ_OFFSET_SINGLESHOT = 0x8001\n\tADJ_OFFSET_SS_READ    = 0xa001\n)\n\nconst (\n\tSTA_PLL       = 0x1\n\tSTA_PPSFREQ   = 0x2\n\tSTA_PPSTIME   = 0x4\n\tSTA_FLL       = 0x8\n\tSTA_INS       = 0x10\n\tSTA_DEL       = 0x20\n\tSTA_UNSYNC    = 0x40\n\tSTA_FREQHOLD  = 0x80\n\tSTA_PPSSIGNAL = 0x100\n\tSTA_PPSJITTER = 0x200\n\tSTA_PPSWANDER = 0x400\n\tSTA_PPSERROR  = 0x800\n\tSTA_CLOCKERR  = 0x1000\n\tSTA_NANO      = 0x2000\n\tSTA_MODE      = 0x4000\n\tSTA_CLK       = 0x8000\n)\n\nconst (\n\tTIME_OK    = 0x0\n\tTIME_INS   = 0x1\n\tTIME_DEL   = 0x2\n\tTIME_OOP   = 0x3\n\tTIME_WAIT  = 0x4\n\tTIME_ERROR = 0x5\n\tTIME_BAD   = 0x5\n)\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask             uint32\n\tBlksize          uint32\n\tAttributes       uint64\n\tNlink            uint32\n\tUid              uint32\n\tGid              uint32\n\tMode             uint16\n\t_                [1]uint16\n\tIno              uint64\n\tSize             uint64\n\tBlocks           uint64\n\tAttributes_mask  uint64\n\tAtime            StatxTimestamp\n\tBtime            StatxTimestamp\n\tCtime            StatxTimestamp\n\tMtime            StatxTimestamp\n\tRdev_major       uint32\n\tRdev_minor       uint32\n\tDev_major        uint32\n\tDev_minor        uint32\n\tMnt_id           uint64\n\tDio_mem_align    uint32\n\tDio_offset_align uint32\n\tSubvol           uint64\n\t_                [11]uint64\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype FileCloneRange struct {\n\tSrc_fd      int64\n\tSrc_offset  uint64\n\tSrc_length  uint64\n\tDest_offset uint64\n}\n\ntype RawFileDedupeRange struct {\n\tSrc_offset uint64\n\tSrc_length uint64\n\tDest_count uint16\n\tReserved1  uint16\n\tReserved2  uint32\n}\n\ntype RawFileDedupeRangeInfo struct {\n\tDest_fd       int64\n\tDest_offset   uint64\n\tBytes_deduped uint64\n\tStatus        int32\n\tReserved      uint32\n}\n\nconst (\n\tSizeofRawFileDedupeRange     = 0x18\n\tSizeofRawFileDedupeRangeInfo = 0x20\n\tFILE_DEDUPE_RANGE_SAME       = 0x0\n\tFILE_DEDUPE_RANGE_DIFFERS    = 0x1\n)\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype FscryptPolicyV1 struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptPolicyV2 struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tLog2_data_unit_size       uint8\n\t_                         [3]uint8\n\tMaster_key_identifier     [16]uint8\n}\n\ntype FscryptGetPolicyExArg struct {\n\tSize   uint64\n\tPolicy [24]byte\n}\n\ntype FscryptKeySpecifier struct {\n\tType uint32\n\t_    uint32\n\tU    [32]byte\n}\n\ntype FscryptAddKeyArg struct {\n\tKey_spec FscryptKeySpecifier\n\tRaw_size uint32\n\tKey_id   uint32\n\t_        [8]uint32\n}\n\ntype FscryptRemoveKeyArg struct {\n\tKey_spec             FscryptKeySpecifier\n\tRemoval_status_flags uint32\n\t_                    [5]uint32\n}\n\ntype FscryptGetKeyStatusArg struct {\n\tKey_spec     FscryptKeySpecifier\n\t_            [6]uint32\n\tStatus       uint32\n\tStatus_flags uint32\n\tUser_count   uint32\n\t_            [13]uint32\n}\n\ntype DmIoctl struct {\n\tVersion      [3]uint32\n\tData_size    uint32\n\tData_start   uint32\n\tTarget_count uint32\n\tOpen_count   int32\n\tFlags        uint32\n\tEvent_nr     uint32\n\t_            uint32\n\tDev          uint64\n\tName         [128]byte\n\tUuid         [129]byte\n\tData         [7]byte\n}\n\ntype DmTargetSpec struct {\n\tSector_start uint64\n\tLength       uint64\n\tStatus       int32\n\tNext         uint32\n\tTarget_type  [16]byte\n}\n\ntype DmTargetDeps struct {\n\tCount uint32\n\t_     uint32\n}\n\ntype DmTargetVersions struct {\n\tNext    uint32\n\tVersion [3]uint32\n}\n\ntype DmTargetMsg struct {\n\tSector uint64\n}\n\nconst (\n\tSizeofDmIoctl      = 0x138\n\tSizeofDmTargetSpec = 0x28\n)\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [16]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tFlags     uint8\n\tZero      [3]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddrL2TPIP struct {\n\tFamily  uint16\n\tUnused  uint16\n\tAddr    [4]byte /* in_addr */\n\tConn_id uint32\n\t_       [4]uint8\n}\n\ntype RawSockaddrL2TPIP6 struct {\n\tFamily   uint16\n\tUnused   uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n\tConn_id  uint32\n}\n\ntype RawSockaddrIUCV struct {\n\tFamily  uint16\n\tPort    uint16\n\tAddr    uint32\n\tNodeid  [8]int8\n\tUser_id [8]int8\n\tName    [8]int8\n}\n\ntype RawSockaddrNFC struct {\n\tSa_family    uint16\n\tDev_idx      uint32\n\tTarget_idx   uint32\n\tNfc_protocol uint32\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState                uint8\n\tCa_state             uint8\n\tRetransmits          uint8\n\tProbes               uint8\n\tBackoff              uint8\n\tOptions              uint8\n\tRto                  uint32\n\tAto                  uint32\n\tSnd_mss              uint32\n\tRcv_mss              uint32\n\tUnacked              uint32\n\tSacked               uint32\n\tLost                 uint32\n\tRetrans              uint32\n\tFackets              uint32\n\tLast_data_sent       uint32\n\tLast_ack_sent        uint32\n\tLast_data_recv       uint32\n\tLast_ack_recv        uint32\n\tPmtu                 uint32\n\tRcv_ssthresh         uint32\n\tRtt                  uint32\n\tRttvar               uint32\n\tSnd_ssthresh         uint32\n\tSnd_cwnd             uint32\n\tAdvmss               uint32\n\tReordering           uint32\n\tRcv_rtt              uint32\n\tRcv_space            uint32\n\tTotal_retrans        uint32\n\tPacing_rate          uint64\n\tMax_pacing_rate      uint64\n\tBytes_acked          uint64\n\tBytes_received       uint64\n\tSegs_out             uint32\n\tSegs_in              uint32\n\tNotsent_bytes        uint32\n\tMin_rtt              uint32\n\tData_segs_in         uint32\n\tData_segs_out        uint32\n\tDelivery_rate        uint64\n\tBusy_time            uint64\n\tRwnd_limited         uint64\n\tSndbuf_limited       uint64\n\tDelivered            uint32\n\tDelivered_ce         uint32\n\tBytes_sent           uint64\n\tBytes_retrans        uint64\n\tDsack_dups           uint32\n\tReord_seen           uint32\n\tRcv_ooopack          uint32\n\tSnd_wnd              uint32\n\tRcv_wnd              uint32\n\tRehash               uint32\n\tTotal_rto            uint16\n\tTotal_rto_recoveries uint16\n\tTotal_rto_time       uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\ntype TCPRepairOpt struct {\n\tCode uint32\n\tVal  uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x18\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofSockaddrL2TPIP    = 0x10\n\tSizeofSockaddrL2TPIP6   = 0x20\n\tSizeofSockaddrIUCV      = 0x20\n\tSizeofSockaddrNFC       = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0xf8\n\tSizeofCanFilter         = 0x8\n\tSizeofTCPRepairOpt      = 0x8\n)\n\nconst (\n\tNDA_UNSPEC         = 0x0\n\tNDA_DST            = 0x1\n\tNDA_LLADDR         = 0x2\n\tNDA_CACHEINFO      = 0x3\n\tNDA_PROBES         = 0x4\n\tNDA_VLAN           = 0x5\n\tNDA_PORT           = 0x6\n\tNDA_VNI            = 0x7\n\tNDA_IFINDEX        = 0x8\n\tNDA_MASTER         = 0x9\n\tNDA_LINK_NETNSID   = 0xa\n\tNDA_SRC_VNI        = 0xb\n\tNTF_USE            = 0x1\n\tNTF_SELF           = 0x2\n\tNTF_MASTER         = 0x4\n\tNTF_PROXY          = 0x8\n\tNTF_EXT_LEARNED    = 0x10\n\tNTF_OFFLOADED      = 0x20\n\tNTF_ROUTER         = 0x80\n\tNUD_INCOMPLETE     = 0x1\n\tNUD_REACHABLE      = 0x2\n\tNUD_STALE          = 0x4\n\tNUD_DELAY          = 0x8\n\tNUD_PROBE          = 0x10\n\tNUD_FAILED         = 0x20\n\tNUD_NOARP          = 0x40\n\tNUD_PERMANENT      = 0x80\n\tNUD_NONE           = 0x0\n\tIFA_UNSPEC         = 0x0\n\tIFA_ADDRESS        = 0x1\n\tIFA_LOCAL          = 0x2\n\tIFA_LABEL          = 0x3\n\tIFA_BROADCAST      = 0x4\n\tIFA_ANYCAST        = 0x5\n\tIFA_CACHEINFO      = 0x6\n\tIFA_MULTICAST      = 0x7\n\tIFA_FLAGS          = 0x8\n\tIFA_RT_PRIORITY    = 0x9\n\tIFA_TARGET_NETNSID = 0xa\n\tRT_SCOPE_UNIVERSE  = 0x0\n\tRT_SCOPE_SITE      = 0xc8\n\tRT_SCOPE_LINK      = 0xfd\n\tRT_SCOPE_HOST      = 0xfe\n\tRT_SCOPE_NOWHERE   = 0xff\n\tRT_TABLE_UNSPEC    = 0x0\n\tRT_TABLE_COMPAT    = 0xfc\n\tRT_TABLE_DEFAULT   = 0xfd\n\tRT_TABLE_MAIN      = 0xfe\n\tRT_TABLE_LOCAL     = 0xff\n\tRT_TABLE_MAX       = 0xffffffff\n\tRTA_UNSPEC         = 0x0\n\tRTA_DST            = 0x1\n\tRTA_SRC            = 0x2\n\tRTA_IIF            = 0x3\n\tRTA_OIF            = 0x4\n\tRTA_GATEWAY        = 0x5\n\tRTA_PRIORITY       = 0x6\n\tRTA_PREFSRC        = 0x7\n\tRTA_METRICS        = 0x8\n\tRTA_MULTIPATH      = 0x9\n\tRTA_FLOW           = 0xb\n\tRTA_CACHEINFO      = 0xc\n\tRTA_TABLE          = 0xf\n\tRTA_MARK           = 0x10\n\tRTA_MFC_STATS      = 0x11\n\tRTA_VIA            = 0x12\n\tRTA_NEWDST         = 0x13\n\tRTA_PREF           = 0x14\n\tRTA_ENCAP_TYPE     = 0x15\n\tRTA_ENCAP          = 0x16\n\tRTA_EXPIRES        = 0x17\n\tRTA_PAD            = 0x18\n\tRTA_UID            = 0x19\n\tRTA_TTL_PROPAGATE  = 0x1a\n\tRTA_IP_PROTO       = 0x1b\n\tRTA_SPORT          = 0x1c\n\tRTA_DPORT          = 0x1d\n\tRTN_UNSPEC         = 0x0\n\tRTN_UNICAST        = 0x1\n\tRTN_LOCAL          = 0x2\n\tRTN_BROADCAST      = 0x3\n\tRTN_ANYCAST        = 0x4\n\tRTN_MULTICAST      = 0x5\n\tRTN_BLACKHOLE      = 0x6\n\tRTN_UNREACHABLE    = 0x7\n\tRTN_PROHIBIT       = 0x8\n\tRTN_THROW          = 0x9\n\tRTN_NAT            = 0xa\n\tRTN_XRESOLVE       = 0xb\n\tSizeofNlMsghdr     = 0x10\n\tSizeofNlMsgerr     = 0x14\n\tSizeofRtGenmsg     = 0x1\n\tSizeofNlAttr       = 0x4\n\tSizeofRtAttr       = 0x4\n\tSizeofIfInfomsg    = 0x10\n\tSizeofIfAddrmsg    = 0x8\n\tSizeofIfaCacheinfo = 0x10\n\tSizeofRtMsg        = 0xc\n\tSizeofRtNexthop    = 0x8\n\tSizeofNdUseroptmsg = 0x10\n\tSizeofNdMsg        = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tICMP_FILTER = 0x1\n\n\tICMPV6_FILTER             = 0x1\n\tICMPV6_FILTER_BLOCK       = 0x1\n\tICMPV6_FILTER_BLOCKOTHERS = 0x3\n\tICMPV6_FILTER_PASS        = 0x2\n\tICMPV6_FILTER_PASSONLY    = 0x4\n)\n\nconst (\n\tSizeofSockFilter = 0x8\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\nconst SI_LOAD_SHIFT = 0x10\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_RECURSIVE = 0x8000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n\n\tOPEN_TREE_CLONE = 0x1\n\n\tMOVE_MOUNT_F_SYMLINKS   = 0x1\n\tMOVE_MOUNT_F_AUTOMOUNTS = 0x2\n\tMOVE_MOUNT_F_EMPTY_PATH = 0x4\n\tMOVE_MOUNT_T_SYMLINKS   = 0x10\n\tMOVE_MOUNT_T_AUTOMOUNTS = 0x20\n\tMOVE_MOUNT_T_EMPTY_PATH = 0x40\n\tMOVE_MOUNT_SET_GROUP    = 0x100\n\n\tFSOPEN_CLOEXEC = 0x1\n\n\tFSPICK_CLOEXEC          = 0x1\n\tFSPICK_SYMLINK_NOFOLLOW = 0x2\n\tFSPICK_NO_AUTOMOUNT     = 0x4\n\tFSPICK_EMPTY_PATH       = 0x8\n\n\tFSMOUNT_CLOEXEC = 0x1\n\n\tFSCONFIG_SET_FLAG        = 0x0\n\tFSCONFIG_SET_STRING      = 0x1\n\tFSCONFIG_SET_BINARY      = 0x2\n\tFSCONFIG_SET_PATH        = 0x3\n\tFSCONFIG_SET_PATH_EMPTY  = 0x4\n\tFSCONFIG_SET_FD          = 0x5\n\tFSCONFIG_CMD_CREATE      = 0x6\n\tFSCONFIG_CMD_RECONFIGURE = 0x7\n)\n\ntype OpenHow struct {\n\tFlags   uint64\n\tMode    uint64\n\tResolve uint64\n}\n\nconst SizeofOpenHow = 0x18\n\nconst (\n\tRESOLVE_BENEATH       = 0x8\n\tRESOLVE_IN_ROOT       = 0x10\n\tRESOLVE_NO_MAGICLINKS = 0x2\n\tRESOLVE_NO_SYMLINKS   = 0x4\n\tRESOLVE_NO_XDEV       = 0x1\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN   = 0x1\n\tPOLLPRI  = 0x2\n\tPOLLOUT  = 0x4\n\tPOLLERR  = 0x8\n\tPOLLHUP  = 0x10\n\tPOLLNVAL = 0x20\n)\n\ntype sigset_argpack struct {\n\tss    *Sigset_t\n\tssLen uintptr\n}\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_CMD_GETPOLICY         = 0xa\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_POLICY           = 0x8\n\tCTRL_ATTR_OP_POLICY        = 0x9\n\tCTRL_ATTR_OP               = 0xa\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n\tCTRL_ATTR_POLICY_UNSPEC    = 0x0\n\tCTRL_ATTR_POLICY_DO        = 0x1\n\tCTRL_ATTR_POLICY_DUMP      = 0x2\n\tCTRL_ATTR_POLICY_DUMP_MAX  = 0x2\n)\n\nconst (\n\t_CPU_SETSIZE = 0x400\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n\tAux_sample_size    uint32\n\t_                  uint32\n\tSig_data           uint64\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              uint32\n\tTime_cycles    uint64\n\tTime_mask      uint64\n\t_              [928]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n\tPerfBitWriteBackward                 = CBitFieldMaskBit27\n)\n\nconst (\n\tPERF_TYPE_HARDWARE                    = 0x0\n\tPERF_TYPE_SOFTWARE                    = 0x1\n\tPERF_TYPE_TRACEPOINT                  = 0x2\n\tPERF_TYPE_HW_CACHE                    = 0x3\n\tPERF_TYPE_RAW                         = 0x4\n\tPERF_TYPE_BREAKPOINT                  = 0x5\n\tPERF_TYPE_MAX                         = 0x6\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\tPERF_COUNT_HW_MAX                     = 0xa\n\tPERF_COUNT_HW_CACHE_L1D               = 0x0\n\tPERF_COUNT_HW_CACHE_L1I               = 0x1\n\tPERF_COUNT_HW_CACHE_LL                = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB              = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB              = 0x4\n\tPERF_COUNT_HW_CACHE_BPU               = 0x5\n\tPERF_COUNT_HW_CACHE_NODE              = 0x6\n\tPERF_COUNT_HW_CACHE_MAX               = 0x7\n\tPERF_COUNT_HW_CACHE_OP_READ           = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE          = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH       = 0x2\n\tPERF_COUNT_HW_CACHE_OP_MAX            = 0x3\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS     = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS       = 0x1\n\tPERF_COUNT_HW_CACHE_RESULT_MAX        = 0x2\n\tPERF_COUNT_SW_CPU_CLOCK               = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK              = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS             = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES        = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS          = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN         = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ         = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS        = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS        = 0x8\n\tPERF_COUNT_SW_DUMMY                   = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT              = 0xa\n\tPERF_COUNT_SW_MAX                     = 0xc\n\tPERF_SAMPLE_IP                        = 0x1\n\tPERF_SAMPLE_TID                       = 0x2\n\tPERF_SAMPLE_TIME                      = 0x4\n\tPERF_SAMPLE_ADDR                      = 0x8\n\tPERF_SAMPLE_READ                      = 0x10\n\tPERF_SAMPLE_CALLCHAIN                 = 0x20\n\tPERF_SAMPLE_ID                        = 0x40\n\tPERF_SAMPLE_CPU                       = 0x80\n\tPERF_SAMPLE_PERIOD                    = 0x100\n\tPERF_SAMPLE_STREAM_ID                 = 0x200\n\tPERF_SAMPLE_RAW                       = 0x400\n\tPERF_SAMPLE_BRANCH_STACK              = 0x800\n\tPERF_SAMPLE_REGS_USER                 = 0x1000\n\tPERF_SAMPLE_STACK_USER                = 0x2000\n\tPERF_SAMPLE_WEIGHT                    = 0x4000\n\tPERF_SAMPLE_DATA_SRC                  = 0x8000\n\tPERF_SAMPLE_IDENTIFIER                = 0x10000\n\tPERF_SAMPLE_TRANSACTION               = 0x20000\n\tPERF_SAMPLE_REGS_INTR                 = 0x40000\n\tPERF_SAMPLE_PHYS_ADDR                 = 0x80000\n\tPERF_SAMPLE_AUX                       = 0x100000\n\tPERF_SAMPLE_CGROUP                    = 0x200000\n\tPERF_SAMPLE_DATA_PAGE_SIZE            = 0x400000\n\tPERF_SAMPLE_CODE_PAGE_SIZE            = 0x800000\n\tPERF_SAMPLE_WEIGHT_STRUCT             = 0x1000000\n\tPERF_SAMPLE_MAX                       = 0x2000000\n\tPERF_SAMPLE_BRANCH_USER_SHIFT         = 0x0\n\tPERF_SAMPLE_BRANCH_KERNEL_SHIFT       = 0x1\n\tPERF_SAMPLE_BRANCH_HV_SHIFT           = 0x2\n\tPERF_SAMPLE_BRANCH_ANY_SHIFT          = 0x3\n\tPERF_SAMPLE_BRANCH_ANY_CALL_SHIFT     = 0x4\n\tPERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT   = 0x5\n\tPERF_SAMPLE_BRANCH_IND_CALL_SHIFT     = 0x6\n\tPERF_SAMPLE_BRANCH_ABORT_TX_SHIFT     = 0x7\n\tPERF_SAMPLE_BRANCH_IN_TX_SHIFT        = 0x8\n\tPERF_SAMPLE_BRANCH_NO_TX_SHIFT        = 0x9\n\tPERF_SAMPLE_BRANCH_COND_SHIFT         = 0xa\n\tPERF_SAMPLE_BRANCH_CALL_STACK_SHIFT   = 0xb\n\tPERF_SAMPLE_BRANCH_IND_JUMP_SHIFT     = 0xc\n\tPERF_SAMPLE_BRANCH_CALL_SHIFT         = 0xd\n\tPERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT     = 0xe\n\tPERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT    = 0xf\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT    = 0x10\n\tPERF_SAMPLE_BRANCH_HW_INDEX_SHIFT     = 0x11\n\tPERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT    = 0x12\n\tPERF_SAMPLE_BRANCH_COUNTERS           = 0x80000\n\tPERF_SAMPLE_BRANCH_MAX_SHIFT          = 0x14\n\tPERF_SAMPLE_BRANCH_USER               = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL             = 0x2\n\tPERF_SAMPLE_BRANCH_HV                 = 0x4\n\tPERF_SAMPLE_BRANCH_ANY                = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL           = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN         = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL           = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX           = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX              = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX              = 0x200\n\tPERF_SAMPLE_BRANCH_COND               = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK         = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP           = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL               = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS           = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES          = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE          = 0x10000\n\tPERF_SAMPLE_BRANCH_HW_INDEX           = 0x20000\n\tPERF_SAMPLE_BRANCH_PRIV_SAVE          = 0x40000\n\tPERF_SAMPLE_BRANCH_MAX                = 0x100000\n\tPERF_BR_UNKNOWN                       = 0x0\n\tPERF_BR_COND                          = 0x1\n\tPERF_BR_UNCOND                        = 0x2\n\tPERF_BR_IND                           = 0x3\n\tPERF_BR_CALL                          = 0x4\n\tPERF_BR_IND_CALL                      = 0x5\n\tPERF_BR_RET                           = 0x6\n\tPERF_BR_SYSCALL                       = 0x7\n\tPERF_BR_SYSRET                        = 0x8\n\tPERF_BR_COND_CALL                     = 0x9\n\tPERF_BR_COND_RET                      = 0xa\n\tPERF_BR_ERET                          = 0xb\n\tPERF_BR_IRQ                           = 0xc\n\tPERF_BR_SERROR                        = 0xd\n\tPERF_BR_NO_TX                         = 0xe\n\tPERF_BR_EXTEND_ABI                    = 0xf\n\tPERF_BR_MAX                           = 0x10\n\tPERF_SAMPLE_REGS_ABI_NONE             = 0x0\n\tPERF_SAMPLE_REGS_ABI_32               = 0x1\n\tPERF_SAMPLE_REGS_ABI_64               = 0x2\n\tPERF_TXN_ELISION                      = 0x1\n\tPERF_TXN_TRANSACTION                  = 0x2\n\tPERF_TXN_SYNC                         = 0x4\n\tPERF_TXN_ASYNC                        = 0x8\n\tPERF_TXN_RETRY                        = 0x10\n\tPERF_TXN_CONFLICT                     = 0x20\n\tPERF_TXN_CAPACITY_WRITE               = 0x40\n\tPERF_TXN_CAPACITY_READ                = 0x80\n\tPERF_TXN_MAX                          = 0x100\n\tPERF_TXN_ABORT_MASK                   = -0x100000000\n\tPERF_TXN_ABORT_SHIFT                  = 0x20\n\tPERF_FORMAT_TOTAL_TIME_ENABLED        = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING        = 0x2\n\tPERF_FORMAT_ID                        = 0x4\n\tPERF_FORMAT_GROUP                     = 0x8\n\tPERF_FORMAT_LOST                      = 0x10\n\tPERF_FORMAT_MAX                       = 0x20\n\tPERF_IOC_FLAG_GROUP                   = 0x1\n\tPERF_RECORD_MMAP                      = 0x1\n\tPERF_RECORD_LOST                      = 0x2\n\tPERF_RECORD_COMM                      = 0x3\n\tPERF_RECORD_EXIT                      = 0x4\n\tPERF_RECORD_THROTTLE                  = 0x5\n\tPERF_RECORD_UNTHROTTLE                = 0x6\n\tPERF_RECORD_FORK                      = 0x7\n\tPERF_RECORD_READ                      = 0x8\n\tPERF_RECORD_SAMPLE                    = 0x9\n\tPERF_RECORD_MMAP2                     = 0xa\n\tPERF_RECORD_AUX                       = 0xb\n\tPERF_RECORD_ITRACE_START              = 0xc\n\tPERF_RECORD_LOST_SAMPLES              = 0xd\n\tPERF_RECORD_SWITCH                    = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE           = 0xf\n\tPERF_RECORD_NAMESPACES                = 0x10\n\tPERF_RECORD_KSYMBOL                   = 0x11\n\tPERF_RECORD_BPF_EVENT                 = 0x12\n\tPERF_RECORD_CGROUP                    = 0x13\n\tPERF_RECORD_TEXT_POKE                 = 0x14\n\tPERF_RECORD_AUX_OUTPUT_HW_ID          = 0x15\n\tPERF_RECORD_MAX                       = 0x16\n\tPERF_RECORD_KSYMBOL_TYPE_UNKNOWN      = 0x0\n\tPERF_RECORD_KSYMBOL_TYPE_BPF          = 0x1\n\tPERF_RECORD_KSYMBOL_TYPE_OOL          = 0x2\n\tPERF_RECORD_KSYMBOL_TYPE_MAX          = 0x3\n\tPERF_BPF_EVENT_UNKNOWN                = 0x0\n\tPERF_BPF_EVENT_PROG_LOAD              = 0x1\n\tPERF_BPF_EVENT_PROG_UNLOAD            = 0x2\n\tPERF_BPF_EVENT_MAX                    = 0x3\n\tPERF_CONTEXT_HV                       = -0x20\n\tPERF_CONTEXT_KERNEL                   = -0x80\n\tPERF_CONTEXT_USER                     = -0x200\n\tPERF_CONTEXT_GUEST                    = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL             = -0x880\n\tPERF_CONTEXT_GUEST_USER               = -0xa00\n\tPERF_CONTEXT_MAX                      = -0xfff\n)\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\tIfindex   int32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tIFLA_UNSPEC                                = 0x0\n\tIFLA_ADDRESS                               = 0x1\n\tIFLA_BROADCAST                             = 0x2\n\tIFLA_IFNAME                                = 0x3\n\tIFLA_MTU                                   = 0x4\n\tIFLA_LINK                                  = 0x5\n\tIFLA_QDISC                                 = 0x6\n\tIFLA_STATS                                 = 0x7\n\tIFLA_COST                                  = 0x8\n\tIFLA_PRIORITY                              = 0x9\n\tIFLA_MASTER                                = 0xa\n\tIFLA_WIRELESS                              = 0xb\n\tIFLA_PROTINFO                              = 0xc\n\tIFLA_TXQLEN                                = 0xd\n\tIFLA_MAP                                   = 0xe\n\tIFLA_WEIGHT                                = 0xf\n\tIFLA_OPERSTATE                             = 0x10\n\tIFLA_LINKMODE                              = 0x11\n\tIFLA_LINKINFO                              = 0x12\n\tIFLA_NET_NS_PID                            = 0x13\n\tIFLA_IFALIAS                               = 0x14\n\tIFLA_NUM_VF                                = 0x15\n\tIFLA_VFINFO_LIST                           = 0x16\n\tIFLA_STATS64                               = 0x17\n\tIFLA_VF_PORTS                              = 0x18\n\tIFLA_PORT_SELF                             = 0x19\n\tIFLA_AF_SPEC                               = 0x1a\n\tIFLA_GROUP                                 = 0x1b\n\tIFLA_NET_NS_FD                             = 0x1c\n\tIFLA_EXT_MASK                              = 0x1d\n\tIFLA_PROMISCUITY                           = 0x1e\n\tIFLA_NUM_TX_QUEUES                         = 0x1f\n\tIFLA_NUM_RX_QUEUES                         = 0x20\n\tIFLA_CARRIER                               = 0x21\n\tIFLA_PHYS_PORT_ID                          = 0x22\n\tIFLA_CARRIER_CHANGES                       = 0x23\n\tIFLA_PHYS_SWITCH_ID                        = 0x24\n\tIFLA_LINK_NETNSID                          = 0x25\n\tIFLA_PHYS_PORT_NAME                        = 0x26\n\tIFLA_PROTO_DOWN                            = 0x27\n\tIFLA_GSO_MAX_SEGS                          = 0x28\n\tIFLA_GSO_MAX_SIZE                          = 0x29\n\tIFLA_PAD                                   = 0x2a\n\tIFLA_XDP                                   = 0x2b\n\tIFLA_EVENT                                 = 0x2c\n\tIFLA_NEW_NETNSID                           = 0x2d\n\tIFLA_IF_NETNSID                            = 0x2e\n\tIFLA_TARGET_NETNSID                        = 0x2e\n\tIFLA_CARRIER_UP_COUNT                      = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT                    = 0x30\n\tIFLA_NEW_IFINDEX                           = 0x31\n\tIFLA_MIN_MTU                               = 0x32\n\tIFLA_MAX_MTU                               = 0x33\n\tIFLA_PROP_LIST                             = 0x34\n\tIFLA_ALT_IFNAME                            = 0x35\n\tIFLA_PERM_ADDRESS                          = 0x36\n\tIFLA_PROTO_DOWN_REASON                     = 0x37\n\tIFLA_PARENT_DEV_NAME                       = 0x38\n\tIFLA_PARENT_DEV_BUS_NAME                   = 0x39\n\tIFLA_GRO_MAX_SIZE                          = 0x3a\n\tIFLA_TSO_MAX_SIZE                          = 0x3b\n\tIFLA_TSO_MAX_SEGS                          = 0x3c\n\tIFLA_ALLMULTI                              = 0x3d\n\tIFLA_DEVLINK_PORT                          = 0x3e\n\tIFLA_GSO_IPV4_MAX_SIZE                     = 0x3f\n\tIFLA_GRO_IPV4_MAX_SIZE                     = 0x40\n\tIFLA_DPLL_PIN                              = 0x41\n\tIFLA_PROTO_DOWN_REASON_UNSPEC              = 0x0\n\tIFLA_PROTO_DOWN_REASON_MASK                = 0x1\n\tIFLA_PROTO_DOWN_REASON_VALUE               = 0x2\n\tIFLA_PROTO_DOWN_REASON_MAX                 = 0x2\n\tIFLA_INET_UNSPEC                           = 0x0\n\tIFLA_INET_CONF                             = 0x1\n\tIFLA_INET6_UNSPEC                          = 0x0\n\tIFLA_INET6_FLAGS                           = 0x1\n\tIFLA_INET6_CONF                            = 0x2\n\tIFLA_INET6_STATS                           = 0x3\n\tIFLA_INET6_MCAST                           = 0x4\n\tIFLA_INET6_CACHEINFO                       = 0x5\n\tIFLA_INET6_ICMP6STATS                      = 0x6\n\tIFLA_INET6_TOKEN                           = 0x7\n\tIFLA_INET6_ADDR_GEN_MODE                   = 0x8\n\tIFLA_INET6_RA_MTU                          = 0x9\n\tIFLA_BR_UNSPEC                             = 0x0\n\tIFLA_BR_FORWARD_DELAY                      = 0x1\n\tIFLA_BR_HELLO_TIME                         = 0x2\n\tIFLA_BR_MAX_AGE                            = 0x3\n\tIFLA_BR_AGEING_TIME                        = 0x4\n\tIFLA_BR_STP_STATE                          = 0x5\n\tIFLA_BR_PRIORITY                           = 0x6\n\tIFLA_BR_VLAN_FILTERING                     = 0x7\n\tIFLA_BR_VLAN_PROTOCOL                      = 0x8\n\tIFLA_BR_GROUP_FWD_MASK                     = 0x9\n\tIFLA_BR_ROOT_ID                            = 0xa\n\tIFLA_BR_BRIDGE_ID                          = 0xb\n\tIFLA_BR_ROOT_PORT                          = 0xc\n\tIFLA_BR_ROOT_PATH_COST                     = 0xd\n\tIFLA_BR_TOPOLOGY_CHANGE                    = 0xe\n\tIFLA_BR_TOPOLOGY_CHANGE_DETECTED           = 0xf\n\tIFLA_BR_HELLO_TIMER                        = 0x10\n\tIFLA_BR_TCN_TIMER                          = 0x11\n\tIFLA_BR_TOPOLOGY_CHANGE_TIMER              = 0x12\n\tIFLA_BR_GC_TIMER                           = 0x13\n\tIFLA_BR_GROUP_ADDR                         = 0x14\n\tIFLA_BR_FDB_FLUSH                          = 0x15\n\tIFLA_BR_MCAST_ROUTER                       = 0x16\n\tIFLA_BR_MCAST_SNOOPING                     = 0x17\n\tIFLA_BR_MCAST_QUERY_USE_IFADDR             = 0x18\n\tIFLA_BR_MCAST_QUERIER                      = 0x19\n\tIFLA_BR_MCAST_HASH_ELASTICITY              = 0x1a\n\tIFLA_BR_MCAST_HASH_MAX                     = 0x1b\n\tIFLA_BR_MCAST_LAST_MEMBER_CNT              = 0x1c\n\tIFLA_BR_MCAST_STARTUP_QUERY_CNT            = 0x1d\n\tIFLA_BR_MCAST_LAST_MEMBER_INTVL            = 0x1e\n\tIFLA_BR_MCAST_MEMBERSHIP_INTVL             = 0x1f\n\tIFLA_BR_MCAST_QUERIER_INTVL                = 0x20\n\tIFLA_BR_MCAST_QUERY_INTVL                  = 0x21\n\tIFLA_BR_MCAST_QUERY_RESPONSE_INTVL         = 0x22\n\tIFLA_BR_MCAST_STARTUP_QUERY_INTVL          = 0x23\n\tIFLA_BR_NF_CALL_IPTABLES                   = 0x24\n\tIFLA_BR_NF_CALL_IP6TABLES                  = 0x25\n\tIFLA_BR_NF_CALL_ARPTABLES                  = 0x26\n\tIFLA_BR_VLAN_DEFAULT_PVID                  = 0x27\n\tIFLA_BR_PAD                                = 0x28\n\tIFLA_BR_VLAN_STATS_ENABLED                 = 0x29\n\tIFLA_BR_MCAST_STATS_ENABLED                = 0x2a\n\tIFLA_BR_MCAST_IGMP_VERSION                 = 0x2b\n\tIFLA_BR_MCAST_MLD_VERSION                  = 0x2c\n\tIFLA_BR_VLAN_STATS_PER_PORT                = 0x2d\n\tIFLA_BR_MULTI_BOOLOPT                      = 0x2e\n\tIFLA_BR_MCAST_QUERIER_STATE                = 0x2f\n\tIFLA_BR_FDB_N_LEARNED                      = 0x30\n\tIFLA_BR_FDB_MAX_LEARNED                    = 0x31\n\tIFLA_BRPORT_UNSPEC                         = 0x0\n\tIFLA_BRPORT_STATE                          = 0x1\n\tIFLA_BRPORT_PRIORITY                       = 0x2\n\tIFLA_BRPORT_COST                           = 0x3\n\tIFLA_BRPORT_MODE                           = 0x4\n\tIFLA_BRPORT_GUARD                          = 0x5\n\tIFLA_BRPORT_PROTECT                        = 0x6\n\tIFLA_BRPORT_FAST_LEAVE                     = 0x7\n\tIFLA_BRPORT_LEARNING                       = 0x8\n\tIFLA_BRPORT_UNICAST_FLOOD                  = 0x9\n\tIFLA_BRPORT_PROXYARP                       = 0xa\n\tIFLA_BRPORT_LEARNING_SYNC                  = 0xb\n\tIFLA_BRPORT_PROXYARP_WIFI                  = 0xc\n\tIFLA_BRPORT_ROOT_ID                        = 0xd\n\tIFLA_BRPORT_BRIDGE_ID                      = 0xe\n\tIFLA_BRPORT_DESIGNATED_PORT                = 0xf\n\tIFLA_BRPORT_DESIGNATED_COST                = 0x10\n\tIFLA_BRPORT_ID                             = 0x11\n\tIFLA_BRPORT_NO                             = 0x12\n\tIFLA_BRPORT_TOPOLOGY_CHANGE_ACK            = 0x13\n\tIFLA_BRPORT_CONFIG_PENDING                 = 0x14\n\tIFLA_BRPORT_MESSAGE_AGE_TIMER              = 0x15\n\tIFLA_BRPORT_FORWARD_DELAY_TIMER            = 0x16\n\tIFLA_BRPORT_HOLD_TIMER                     = 0x17\n\tIFLA_BRPORT_FLUSH                          = 0x18\n\tIFLA_BRPORT_MULTICAST_ROUTER               = 0x19\n\tIFLA_BRPORT_PAD                            = 0x1a\n\tIFLA_BRPORT_MCAST_FLOOD                    = 0x1b\n\tIFLA_BRPORT_MCAST_TO_UCAST                 = 0x1c\n\tIFLA_BRPORT_VLAN_TUNNEL                    = 0x1d\n\tIFLA_BRPORT_BCAST_FLOOD                    = 0x1e\n\tIFLA_BRPORT_GROUP_FWD_MASK                 = 0x1f\n\tIFLA_BRPORT_NEIGH_SUPPRESS                 = 0x20\n\tIFLA_BRPORT_ISOLATED                       = 0x21\n\tIFLA_BRPORT_BACKUP_PORT                    = 0x22\n\tIFLA_BRPORT_MRP_RING_OPEN                  = 0x23\n\tIFLA_BRPORT_MRP_IN_OPEN                    = 0x24\n\tIFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT          = 0x25\n\tIFLA_BRPORT_MCAST_EHT_HOSTS_CNT            = 0x26\n\tIFLA_BRPORT_LOCKED                         = 0x27\n\tIFLA_BRPORT_MAB                            = 0x28\n\tIFLA_BRPORT_MCAST_N_GROUPS                 = 0x29\n\tIFLA_BRPORT_MCAST_MAX_GROUPS               = 0x2a\n\tIFLA_BRPORT_NEIGH_VLAN_SUPPRESS            = 0x2b\n\tIFLA_BRPORT_BACKUP_NHID                    = 0x2c\n\tIFLA_INFO_UNSPEC                           = 0x0\n\tIFLA_INFO_KIND                             = 0x1\n\tIFLA_INFO_DATA                             = 0x2\n\tIFLA_INFO_XSTATS                           = 0x3\n\tIFLA_INFO_SLAVE_KIND                       = 0x4\n\tIFLA_INFO_SLAVE_DATA                       = 0x5\n\tIFLA_VLAN_UNSPEC                           = 0x0\n\tIFLA_VLAN_ID                               = 0x1\n\tIFLA_VLAN_FLAGS                            = 0x2\n\tIFLA_VLAN_EGRESS_QOS                       = 0x3\n\tIFLA_VLAN_INGRESS_QOS                      = 0x4\n\tIFLA_VLAN_PROTOCOL                         = 0x5\n\tIFLA_VLAN_QOS_UNSPEC                       = 0x0\n\tIFLA_VLAN_QOS_MAPPING                      = 0x1\n\tIFLA_MACVLAN_UNSPEC                        = 0x0\n\tIFLA_MACVLAN_MODE                          = 0x1\n\tIFLA_MACVLAN_FLAGS                         = 0x2\n\tIFLA_MACVLAN_MACADDR_MODE                  = 0x3\n\tIFLA_MACVLAN_MACADDR                       = 0x4\n\tIFLA_MACVLAN_MACADDR_DATA                  = 0x5\n\tIFLA_MACVLAN_MACADDR_COUNT                 = 0x6\n\tIFLA_MACVLAN_BC_QUEUE_LEN                  = 0x7\n\tIFLA_MACVLAN_BC_QUEUE_LEN_USED             = 0x8\n\tIFLA_MACVLAN_BC_CUTOFF                     = 0x9\n\tIFLA_VRF_UNSPEC                            = 0x0\n\tIFLA_VRF_TABLE                             = 0x1\n\tIFLA_VRF_PORT_UNSPEC                       = 0x0\n\tIFLA_VRF_PORT_TABLE                        = 0x1\n\tIFLA_MACSEC_UNSPEC                         = 0x0\n\tIFLA_MACSEC_SCI                            = 0x1\n\tIFLA_MACSEC_PORT                           = 0x2\n\tIFLA_MACSEC_ICV_LEN                        = 0x3\n\tIFLA_MACSEC_CIPHER_SUITE                   = 0x4\n\tIFLA_MACSEC_WINDOW                         = 0x5\n\tIFLA_MACSEC_ENCODING_SA                    = 0x6\n\tIFLA_MACSEC_ENCRYPT                        = 0x7\n\tIFLA_MACSEC_PROTECT                        = 0x8\n\tIFLA_MACSEC_INC_SCI                        = 0x9\n\tIFLA_MACSEC_ES                             = 0xa\n\tIFLA_MACSEC_SCB                            = 0xb\n\tIFLA_MACSEC_REPLAY_PROTECT                 = 0xc\n\tIFLA_MACSEC_VALIDATION                     = 0xd\n\tIFLA_MACSEC_PAD                            = 0xe\n\tIFLA_MACSEC_OFFLOAD                        = 0xf\n\tIFLA_XFRM_UNSPEC                           = 0x0\n\tIFLA_XFRM_LINK                             = 0x1\n\tIFLA_XFRM_IF_ID                            = 0x2\n\tIFLA_XFRM_COLLECT_METADATA                 = 0x3\n\tIFLA_IPVLAN_UNSPEC                         = 0x0\n\tIFLA_IPVLAN_MODE                           = 0x1\n\tIFLA_IPVLAN_FLAGS                          = 0x2\n\tNETKIT_NEXT                                = -0x1\n\tNETKIT_PASS                                = 0x0\n\tNETKIT_DROP                                = 0x2\n\tNETKIT_REDIRECT                            = 0x7\n\tNETKIT_L2                                  = 0x0\n\tNETKIT_L3                                  = 0x1\n\tIFLA_NETKIT_UNSPEC                         = 0x0\n\tIFLA_NETKIT_PEER_INFO                      = 0x1\n\tIFLA_NETKIT_PRIMARY                        = 0x2\n\tIFLA_NETKIT_POLICY                         = 0x3\n\tIFLA_NETKIT_PEER_POLICY                    = 0x4\n\tIFLA_NETKIT_MODE                           = 0x5\n\tIFLA_VXLAN_UNSPEC                          = 0x0\n\tIFLA_VXLAN_ID                              = 0x1\n\tIFLA_VXLAN_GROUP                           = 0x2\n\tIFLA_VXLAN_LINK                            = 0x3\n\tIFLA_VXLAN_LOCAL                           = 0x4\n\tIFLA_VXLAN_TTL                             = 0x5\n\tIFLA_VXLAN_TOS                             = 0x6\n\tIFLA_VXLAN_LEARNING                        = 0x7\n\tIFLA_VXLAN_AGEING                          = 0x8\n\tIFLA_VXLAN_LIMIT                           = 0x9\n\tIFLA_VXLAN_PORT_RANGE                      = 0xa\n\tIFLA_VXLAN_PROXY                           = 0xb\n\tIFLA_VXLAN_RSC                             = 0xc\n\tIFLA_VXLAN_L2MISS                          = 0xd\n\tIFLA_VXLAN_L3MISS                          = 0xe\n\tIFLA_VXLAN_PORT                            = 0xf\n\tIFLA_VXLAN_GROUP6                          = 0x10\n\tIFLA_VXLAN_LOCAL6                          = 0x11\n\tIFLA_VXLAN_UDP_CSUM                        = 0x12\n\tIFLA_VXLAN_UDP_ZERO_CSUM6_TX               = 0x13\n\tIFLA_VXLAN_UDP_ZERO_CSUM6_RX               = 0x14\n\tIFLA_VXLAN_REMCSUM_TX                      = 0x15\n\tIFLA_VXLAN_REMCSUM_RX                      = 0x16\n\tIFLA_VXLAN_GBP                             = 0x17\n\tIFLA_VXLAN_REMCSUM_NOPARTIAL               = 0x18\n\tIFLA_VXLAN_COLLECT_METADATA                = 0x19\n\tIFLA_VXLAN_LABEL                           = 0x1a\n\tIFLA_VXLAN_GPE                             = 0x1b\n\tIFLA_VXLAN_TTL_INHERIT                     = 0x1c\n\tIFLA_VXLAN_DF                              = 0x1d\n\tIFLA_VXLAN_VNIFILTER                       = 0x1e\n\tIFLA_VXLAN_LOCALBYPASS                     = 0x1f\n\tIFLA_GENEVE_UNSPEC                         = 0x0\n\tIFLA_GENEVE_ID                             = 0x1\n\tIFLA_GENEVE_REMOTE                         = 0x2\n\tIFLA_GENEVE_TTL                            = 0x3\n\tIFLA_GENEVE_TOS                            = 0x4\n\tIFLA_GENEVE_PORT                           = 0x5\n\tIFLA_GENEVE_COLLECT_METADATA               = 0x6\n\tIFLA_GENEVE_REMOTE6                        = 0x7\n\tIFLA_GENEVE_UDP_CSUM                       = 0x8\n\tIFLA_GENEVE_UDP_ZERO_CSUM6_TX              = 0x9\n\tIFLA_GENEVE_UDP_ZERO_CSUM6_RX              = 0xa\n\tIFLA_GENEVE_LABEL                          = 0xb\n\tIFLA_GENEVE_TTL_INHERIT                    = 0xc\n\tIFLA_GENEVE_DF                             = 0xd\n\tIFLA_GENEVE_INNER_PROTO_INHERIT            = 0xe\n\tIFLA_BAREUDP_UNSPEC                        = 0x0\n\tIFLA_BAREUDP_PORT                          = 0x1\n\tIFLA_BAREUDP_ETHERTYPE                     = 0x2\n\tIFLA_BAREUDP_SRCPORT_MIN                   = 0x3\n\tIFLA_BAREUDP_MULTIPROTO_MODE               = 0x4\n\tIFLA_PPP_UNSPEC                            = 0x0\n\tIFLA_PPP_DEV_FD                            = 0x1\n\tIFLA_GTP_UNSPEC                            = 0x0\n\tIFLA_GTP_FD0                               = 0x1\n\tIFLA_GTP_FD1                               = 0x2\n\tIFLA_GTP_PDP_HASHSIZE                      = 0x3\n\tIFLA_GTP_ROLE                              = 0x4\n\tIFLA_GTP_CREATE_SOCKETS                    = 0x5\n\tIFLA_GTP_RESTART_COUNT                     = 0x6\n\tIFLA_BOND_UNSPEC                           = 0x0\n\tIFLA_BOND_MODE                             = 0x1\n\tIFLA_BOND_ACTIVE_SLAVE                     = 0x2\n\tIFLA_BOND_MIIMON                           = 0x3\n\tIFLA_BOND_UPDELAY                          = 0x4\n\tIFLA_BOND_DOWNDELAY                        = 0x5\n\tIFLA_BOND_USE_CARRIER                      = 0x6\n\tIFLA_BOND_ARP_INTERVAL                     = 0x7\n\tIFLA_BOND_ARP_IP_TARGET                    = 0x8\n\tIFLA_BOND_ARP_VALIDATE                     = 0x9\n\tIFLA_BOND_ARP_ALL_TARGETS                  = 0xa\n\tIFLA_BOND_PRIMARY                          = 0xb\n\tIFLA_BOND_PRIMARY_RESELECT                 = 0xc\n\tIFLA_BOND_FAIL_OVER_MAC                    = 0xd\n\tIFLA_BOND_XMIT_HASH_POLICY                 = 0xe\n\tIFLA_BOND_RESEND_IGMP                      = 0xf\n\tIFLA_BOND_NUM_PEER_NOTIF                   = 0x10\n\tIFLA_BOND_ALL_SLAVES_ACTIVE                = 0x11\n\tIFLA_BOND_MIN_LINKS                        = 0x12\n\tIFLA_BOND_LP_INTERVAL                      = 0x13\n\tIFLA_BOND_PACKETS_PER_SLAVE                = 0x14\n\tIFLA_BOND_AD_LACP_RATE                     = 0x15\n\tIFLA_BOND_AD_SELECT                        = 0x16\n\tIFLA_BOND_AD_INFO                          = 0x17\n\tIFLA_BOND_AD_ACTOR_SYS_PRIO                = 0x18\n\tIFLA_BOND_AD_USER_PORT_KEY                 = 0x19\n\tIFLA_BOND_AD_ACTOR_SYSTEM                  = 0x1a\n\tIFLA_BOND_TLB_DYNAMIC_LB                   = 0x1b\n\tIFLA_BOND_PEER_NOTIF_DELAY                 = 0x1c\n\tIFLA_BOND_AD_LACP_ACTIVE                   = 0x1d\n\tIFLA_BOND_MISSED_MAX                       = 0x1e\n\tIFLA_BOND_NS_IP6_TARGET                    = 0x1f\n\tIFLA_BOND_AD_INFO_UNSPEC                   = 0x0\n\tIFLA_BOND_AD_INFO_AGGREGATOR               = 0x1\n\tIFLA_BOND_AD_INFO_NUM_PORTS                = 0x2\n\tIFLA_BOND_AD_INFO_ACTOR_KEY                = 0x3\n\tIFLA_BOND_AD_INFO_PARTNER_KEY              = 0x4\n\tIFLA_BOND_AD_INFO_PARTNER_MAC              = 0x5\n\tIFLA_BOND_SLAVE_UNSPEC                     = 0x0\n\tIFLA_BOND_SLAVE_STATE                      = 0x1\n\tIFLA_BOND_SLAVE_MII_STATUS                 = 0x2\n\tIFLA_BOND_SLAVE_LINK_FAILURE_COUNT         = 0x3\n\tIFLA_BOND_SLAVE_PERM_HWADDR                = 0x4\n\tIFLA_BOND_SLAVE_QUEUE_ID                   = 0x5\n\tIFLA_BOND_SLAVE_AD_AGGREGATOR_ID           = 0x6\n\tIFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE   = 0x7\n\tIFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8\n\tIFLA_BOND_SLAVE_PRIO                       = 0x9\n\tIFLA_VF_INFO_UNSPEC                        = 0x0\n\tIFLA_VF_INFO                               = 0x1\n\tIFLA_VF_UNSPEC                             = 0x0\n\tIFLA_VF_MAC                                = 0x1\n\tIFLA_VF_VLAN                               = 0x2\n\tIFLA_VF_TX_RATE                            = 0x3\n\tIFLA_VF_SPOOFCHK                           = 0x4\n\tIFLA_VF_LINK_STATE                         = 0x5\n\tIFLA_VF_RATE                               = 0x6\n\tIFLA_VF_RSS_QUERY_EN                       = 0x7\n\tIFLA_VF_STATS                              = 0x8\n\tIFLA_VF_TRUST                              = 0x9\n\tIFLA_VF_IB_NODE_GUID                       = 0xa\n\tIFLA_VF_IB_PORT_GUID                       = 0xb\n\tIFLA_VF_VLAN_LIST                          = 0xc\n\tIFLA_VF_BROADCAST                          = 0xd\n\tIFLA_VF_VLAN_INFO_UNSPEC                   = 0x0\n\tIFLA_VF_VLAN_INFO                          = 0x1\n\tIFLA_VF_LINK_STATE_AUTO                    = 0x0\n\tIFLA_VF_LINK_STATE_ENABLE                  = 0x1\n\tIFLA_VF_LINK_STATE_DISABLE                 = 0x2\n\tIFLA_VF_STATS_RX_PACKETS                   = 0x0\n\tIFLA_VF_STATS_TX_PACKETS                   = 0x1\n\tIFLA_VF_STATS_RX_BYTES                     = 0x2\n\tIFLA_VF_STATS_TX_BYTES                     = 0x3\n\tIFLA_VF_STATS_BROADCAST                    = 0x4\n\tIFLA_VF_STATS_MULTICAST                    = 0x5\n\tIFLA_VF_STATS_PAD                          = 0x6\n\tIFLA_VF_STATS_RX_DROPPED                   = 0x7\n\tIFLA_VF_STATS_TX_DROPPED                   = 0x8\n\tIFLA_VF_PORT_UNSPEC                        = 0x0\n\tIFLA_VF_PORT                               = 0x1\n\tIFLA_PORT_UNSPEC                           = 0x0\n\tIFLA_PORT_VF                               = 0x1\n\tIFLA_PORT_PROFILE                          = 0x2\n\tIFLA_PORT_VSI_TYPE                         = 0x3\n\tIFLA_PORT_INSTANCE_UUID                    = 0x4\n\tIFLA_PORT_HOST_UUID                        = 0x5\n\tIFLA_PORT_REQUEST                          = 0x6\n\tIFLA_PORT_RESPONSE                         = 0x7\n\tIFLA_IPOIB_UNSPEC                          = 0x0\n\tIFLA_IPOIB_PKEY                            = 0x1\n\tIFLA_IPOIB_MODE                            = 0x2\n\tIFLA_IPOIB_UMCAST                          = 0x3\n\tIFLA_HSR_UNSPEC                            = 0x0\n\tIFLA_HSR_SLAVE1                            = 0x1\n\tIFLA_HSR_SLAVE2                            = 0x2\n\tIFLA_HSR_MULTICAST_SPEC                    = 0x3\n\tIFLA_HSR_SUPERVISION_ADDR                  = 0x4\n\tIFLA_HSR_SEQ_NR                            = 0x5\n\tIFLA_HSR_VERSION                           = 0x6\n\tIFLA_HSR_PROTOCOL                          = 0x7\n\tIFLA_STATS_UNSPEC                          = 0x0\n\tIFLA_STATS_LINK_64                         = 0x1\n\tIFLA_STATS_LINK_XSTATS                     = 0x2\n\tIFLA_STATS_LINK_XSTATS_SLAVE               = 0x3\n\tIFLA_STATS_LINK_OFFLOAD_XSTATS             = 0x4\n\tIFLA_STATS_AF_SPEC                         = 0x5\n\tIFLA_STATS_GETSET_UNSPEC                   = 0x0\n\tIFLA_STATS_GET_FILTERS                     = 0x1\n\tIFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS     = 0x2\n\tIFLA_OFFLOAD_XSTATS_UNSPEC                 = 0x0\n\tIFLA_OFFLOAD_XSTATS_CPU_HIT                = 0x1\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO              = 0x2\n\tIFLA_OFFLOAD_XSTATS_L3_STATS               = 0x3\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC       = 0x0\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST      = 0x1\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO_USED         = 0x2\n\tIFLA_XDP_UNSPEC                            = 0x0\n\tIFLA_XDP_FD                                = 0x1\n\tIFLA_XDP_ATTACHED                          = 0x2\n\tIFLA_XDP_FLAGS                             = 0x3\n\tIFLA_XDP_PROG_ID                           = 0x4\n\tIFLA_XDP_DRV_PROG_ID                       = 0x5\n\tIFLA_XDP_SKB_PROG_ID                       = 0x6\n\tIFLA_XDP_HW_PROG_ID                        = 0x7\n\tIFLA_XDP_EXPECTED_FD                       = 0x8\n\tIFLA_EVENT_NONE                            = 0x0\n\tIFLA_EVENT_REBOOT                          = 0x1\n\tIFLA_EVENT_FEATURES                        = 0x2\n\tIFLA_EVENT_BONDING_FAILOVER                = 0x3\n\tIFLA_EVENT_NOTIFY_PEERS                    = 0x4\n\tIFLA_EVENT_IGMP_RESEND                     = 0x5\n\tIFLA_EVENT_BONDING_OPTIONS                 = 0x6\n\tIFLA_TUN_UNSPEC                            = 0x0\n\tIFLA_TUN_OWNER                             = 0x1\n\tIFLA_TUN_GROUP                             = 0x2\n\tIFLA_TUN_TYPE                              = 0x3\n\tIFLA_TUN_PI                                = 0x4\n\tIFLA_TUN_VNET_HDR                          = 0x5\n\tIFLA_TUN_PERSIST                           = 0x6\n\tIFLA_TUN_MULTI_QUEUE                       = 0x7\n\tIFLA_TUN_NUM_QUEUES                        = 0x8\n\tIFLA_TUN_NUM_DISABLED_QUEUES               = 0x9\n\tIFLA_RMNET_UNSPEC                          = 0x0\n\tIFLA_RMNET_MUX_ID                          = 0x1\n\tIFLA_RMNET_FLAGS                           = 0x2\n\tIFLA_MCTP_UNSPEC                           = 0x0\n\tIFLA_MCTP_NET                              = 0x1\n\tIFLA_DSA_UNSPEC                            = 0x0\n\tIFLA_DSA_CONDUIT                           = 0x1\n\tIFLA_DSA_MASTER                            = 0x1\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_EGRESS   = 0x1\n\tNF_NETDEV_NUMHOOKS = 0x2\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\nconst SO_ORIGINAL_DST = 0x50\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_NEWFLOWTABLE              = 0x16\n\tNFT_MSG_GETFLOWTABLE              = 0x17\n\tNFT_MSG_DELFLOWTABLE              = 0x18\n\tNFT_MSG_GETRULE_RESET             = 0x19\n\tNFT_MSG_MAX                       = 0x22\n\tNFTA_LIST_UNSPEC                  = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\nconst (\n\tNFTA_TARGET_UNSPEC = 0x0\n\tNFTA_TARGET_NAME   = 0x1\n\tNFTA_TARGET_REV    = 0x2\n\tNFTA_TARGET_INFO   = 0x3\n\tNFTA_MATCH_UNSPEC  = 0x0\n\tNFTA_MATCH_NAME    = 0x1\n\tNFTA_MATCH_REV     = 0x2\n\tNFTA_MATCH_INFO    = 0x3\n\tNFTA_COMPAT_UNSPEC = 0x0\n\tNFTA_COMPAT_NAME   = 0x1\n\tNFTA_COMPAT_REV    = 0x2\n\tNFTA_COMPAT_TYPE   = 0x3\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\nconst (\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE         = 0x0\n\tNETNSA_NSID         = 0x1\n\tNETNSA_PID          = 0x2\n\tNETNSA_FD           = 0x3\n\tNETNSA_TARGET_NSID  = 0x4\n\tNETNSA_CURRENT_NSID = 0x5\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n\tFlags    uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr            uint64\n\tLen             uint64\n\tChunk_size      uint32\n\tHeadroom        uint32\n\tFlags           uint32\n\tTx_metadata_len uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped               uint64\n\tRx_invalid_descs         uint64\n\tTx_invalid_descs         uint64\n\tRx_ring_full             uint64\n\tRx_fill_ring_empty_descs uint64\n\tTx_ring_empty_descs      uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\tSOF_TIMESTAMPING_BIND_PHC     = 0x8000\n\tSOF_TIMESTAMPING_OPT_ID_TCP   = 0x10000\n\n\tSOF_TIMESTAMPING_LAST = 0x10000\n\tSOF_TIMESTAMPING_MASK = 0x1ffff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\nconst (\n\tBPF_REG_0                                  = 0x0\n\tBPF_REG_1                                  = 0x1\n\tBPF_REG_2                                  = 0x2\n\tBPF_REG_3                                  = 0x3\n\tBPF_REG_4                                  = 0x4\n\tBPF_REG_5                                  = 0x5\n\tBPF_REG_6                                  = 0x6\n\tBPF_REG_7                                  = 0x7\n\tBPF_REG_8                                  = 0x8\n\tBPF_REG_9                                  = 0x9\n\tBPF_REG_10                                 = 0xa\n\tBPF_CGROUP_ITER_ORDER_UNSPEC               = 0x0\n\tBPF_CGROUP_ITER_SELF_ONLY                  = 0x1\n\tBPF_CGROUP_ITER_DESCENDANTS_PRE            = 0x2\n\tBPF_CGROUP_ITER_DESCENDANTS_POST           = 0x3\n\tBPF_CGROUP_ITER_ANCESTORS_UP               = 0x4\n\tBPF_MAP_CREATE                             = 0x0\n\tBPF_MAP_LOOKUP_ELEM                        = 0x1\n\tBPF_MAP_UPDATE_ELEM                        = 0x2\n\tBPF_MAP_DELETE_ELEM                        = 0x3\n\tBPF_MAP_GET_NEXT_KEY                       = 0x4\n\tBPF_PROG_LOAD                              = 0x5\n\tBPF_OBJ_PIN                                = 0x6\n\tBPF_OBJ_GET                                = 0x7\n\tBPF_PROG_ATTACH                            = 0x8\n\tBPF_PROG_DETACH                            = 0x9\n\tBPF_PROG_TEST_RUN                          = 0xa\n\tBPF_PROG_RUN                               = 0xa\n\tBPF_PROG_GET_NEXT_ID                       = 0xb\n\tBPF_MAP_GET_NEXT_ID                        = 0xc\n\tBPF_PROG_GET_FD_BY_ID                      = 0xd\n\tBPF_MAP_GET_FD_BY_ID                       = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD                     = 0xf\n\tBPF_PROG_QUERY                             = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN                    = 0x11\n\tBPF_BTF_LOAD                               = 0x12\n\tBPF_BTF_GET_FD_BY_ID                       = 0x13\n\tBPF_TASK_FD_QUERY                          = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM             = 0x15\n\tBPF_MAP_FREEZE                             = 0x16\n\tBPF_BTF_GET_NEXT_ID                        = 0x17\n\tBPF_MAP_LOOKUP_BATCH                       = 0x18\n\tBPF_MAP_LOOKUP_AND_DELETE_BATCH            = 0x19\n\tBPF_MAP_UPDATE_BATCH                       = 0x1a\n\tBPF_MAP_DELETE_BATCH                       = 0x1b\n\tBPF_LINK_CREATE                            = 0x1c\n\tBPF_LINK_UPDATE                            = 0x1d\n\tBPF_LINK_GET_FD_BY_ID                      = 0x1e\n\tBPF_LINK_GET_NEXT_ID                       = 0x1f\n\tBPF_ENABLE_STATS                           = 0x20\n\tBPF_ITER_CREATE                            = 0x21\n\tBPF_LINK_DETACH                            = 0x22\n\tBPF_PROG_BIND_MAP                          = 0x23\n\tBPF_MAP_TYPE_UNSPEC                        = 0x0\n\tBPF_MAP_TYPE_HASH                          = 0x1\n\tBPF_MAP_TYPE_ARRAY                         = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY                    = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY              = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH                   = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY                  = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE                   = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY                  = 0x8\n\tBPF_MAP_TYPE_LRU_HASH                      = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH               = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE                      = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS                 = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS                  = 0xd\n\tBPF_MAP_TYPE_DEVMAP                        = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                       = 0xf\n\tBPF_MAP_TYPE_CPUMAP                        = 0x10\n\tBPF_MAP_TYPE_XSKMAP                        = 0x11\n\tBPF_MAP_TYPE_SOCKHASH                      = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED     = 0x13\n\tBPF_MAP_TYPE_CGROUP_STORAGE                = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY           = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE         = 0x15\n\tBPF_MAP_TYPE_QUEUE                         = 0x16\n\tBPF_MAP_TYPE_STACK                         = 0x17\n\tBPF_MAP_TYPE_SK_STORAGE                    = 0x18\n\tBPF_MAP_TYPE_DEVMAP_HASH                   = 0x19\n\tBPF_MAP_TYPE_STRUCT_OPS                    = 0x1a\n\tBPF_MAP_TYPE_RINGBUF                       = 0x1b\n\tBPF_MAP_TYPE_INODE_STORAGE                 = 0x1c\n\tBPF_MAP_TYPE_TASK_STORAGE                  = 0x1d\n\tBPF_MAP_TYPE_BLOOM_FILTER                  = 0x1e\n\tBPF_MAP_TYPE_USER_RINGBUF                  = 0x1f\n\tBPF_MAP_TYPE_CGRP_STORAGE                  = 0x20\n\tBPF_PROG_TYPE_UNSPEC                       = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER                = 0x1\n\tBPF_PROG_TYPE_KPROBE                       = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS                    = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT                    = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT                   = 0x5\n\tBPF_PROG_TYPE_XDP                          = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT                   = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB                   = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK                  = 0x9\n\tBPF_PROG_TYPE_LWT_IN                       = 0xa\n\tBPF_PROG_TYPE_LWT_OUT                      = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT                     = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS                     = 0xd\n\tBPF_PROG_TYPE_SK_SKB                       = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE                = 0xf\n\tBPF_PROG_TYPE_SK_MSG                       = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT               = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR             = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL                = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2                   = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT                 = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR               = 0x16\n\tBPF_PROG_TYPE_CGROUP_SYSCTL                = 0x17\n\tBPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE      = 0x18\n\tBPF_PROG_TYPE_CGROUP_SOCKOPT               = 0x19\n\tBPF_PROG_TYPE_TRACING                      = 0x1a\n\tBPF_PROG_TYPE_STRUCT_OPS                   = 0x1b\n\tBPF_PROG_TYPE_EXT                          = 0x1c\n\tBPF_PROG_TYPE_LSM                          = 0x1d\n\tBPF_PROG_TYPE_SK_LOOKUP                    = 0x1e\n\tBPF_PROG_TYPE_SYSCALL                      = 0x1f\n\tBPF_PROG_TYPE_NETFILTER                    = 0x20\n\tBPF_CGROUP_INET_INGRESS                    = 0x0\n\tBPF_CGROUP_INET_EGRESS                     = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE                = 0x2\n\tBPF_CGROUP_SOCK_OPS                        = 0x3\n\tBPF_SK_SKB_STREAM_PARSER                   = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT                  = 0x5\n\tBPF_CGROUP_DEVICE                          = 0x6\n\tBPF_SK_MSG_VERDICT                         = 0x7\n\tBPF_CGROUP_INET4_BIND                      = 0x8\n\tBPF_CGROUP_INET6_BIND                      = 0x9\n\tBPF_CGROUP_INET4_CONNECT                   = 0xa\n\tBPF_CGROUP_INET6_CONNECT                   = 0xb\n\tBPF_CGROUP_INET4_POST_BIND                 = 0xc\n\tBPF_CGROUP_INET6_POST_BIND                 = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG                    = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG                    = 0xf\n\tBPF_LIRC_MODE2                             = 0x10\n\tBPF_FLOW_DISSECTOR                         = 0x11\n\tBPF_CGROUP_SYSCTL                          = 0x12\n\tBPF_CGROUP_UDP4_RECVMSG                    = 0x13\n\tBPF_CGROUP_UDP6_RECVMSG                    = 0x14\n\tBPF_CGROUP_GETSOCKOPT                      = 0x15\n\tBPF_CGROUP_SETSOCKOPT                      = 0x16\n\tBPF_TRACE_RAW_TP                           = 0x17\n\tBPF_TRACE_FENTRY                           = 0x18\n\tBPF_TRACE_FEXIT                            = 0x19\n\tBPF_MODIFY_RETURN                          = 0x1a\n\tBPF_LSM_MAC                                = 0x1b\n\tBPF_TRACE_ITER                             = 0x1c\n\tBPF_CGROUP_INET4_GETPEERNAME               = 0x1d\n\tBPF_CGROUP_INET6_GETPEERNAME               = 0x1e\n\tBPF_CGROUP_INET4_GETSOCKNAME               = 0x1f\n\tBPF_CGROUP_INET6_GETSOCKNAME               = 0x20\n\tBPF_XDP_DEVMAP                             = 0x21\n\tBPF_CGROUP_INET_SOCK_RELEASE               = 0x22\n\tBPF_XDP_CPUMAP                             = 0x23\n\tBPF_SK_LOOKUP                              = 0x24\n\tBPF_XDP                                    = 0x25\n\tBPF_SK_SKB_VERDICT                         = 0x26\n\tBPF_SK_REUSEPORT_SELECT                    = 0x27\n\tBPF_SK_REUSEPORT_SELECT_OR_MIGRATE         = 0x28\n\tBPF_PERF_EVENT                             = 0x29\n\tBPF_TRACE_KPROBE_MULTI                     = 0x2a\n\tBPF_LSM_CGROUP                             = 0x2b\n\tBPF_STRUCT_OPS                             = 0x2c\n\tBPF_NETFILTER                              = 0x2d\n\tBPF_TCX_INGRESS                            = 0x2e\n\tBPF_TCX_EGRESS                             = 0x2f\n\tBPF_TRACE_UPROBE_MULTI                     = 0x30\n\tBPF_LINK_TYPE_UNSPEC                       = 0x0\n\tBPF_LINK_TYPE_RAW_TRACEPOINT               = 0x1\n\tBPF_LINK_TYPE_TRACING                      = 0x2\n\tBPF_LINK_TYPE_CGROUP                       = 0x3\n\tBPF_LINK_TYPE_ITER                         = 0x4\n\tBPF_LINK_TYPE_NETNS                        = 0x5\n\tBPF_LINK_TYPE_XDP                          = 0x6\n\tBPF_LINK_TYPE_PERF_EVENT                   = 0x7\n\tBPF_LINK_TYPE_KPROBE_MULTI                 = 0x8\n\tBPF_LINK_TYPE_STRUCT_OPS                   = 0x9\n\tBPF_LINK_TYPE_NETFILTER                    = 0xa\n\tBPF_LINK_TYPE_TCX                          = 0xb\n\tBPF_LINK_TYPE_UPROBE_MULTI                 = 0xc\n\tBPF_PERF_EVENT_UNSPEC                      = 0x0\n\tBPF_PERF_EVENT_UPROBE                      = 0x1\n\tBPF_PERF_EVENT_URETPROBE                   = 0x2\n\tBPF_PERF_EVENT_KPROBE                      = 0x3\n\tBPF_PERF_EVENT_KRETPROBE                   = 0x4\n\tBPF_PERF_EVENT_TRACEPOINT                  = 0x5\n\tBPF_PERF_EVENT_EVENT                       = 0x6\n\tBPF_F_KPROBE_MULTI_RETURN                  = 0x1\n\tBPF_F_UPROBE_MULTI_RETURN                  = 0x1\n\tBPF_ANY                                    = 0x0\n\tBPF_NOEXIST                                = 0x1\n\tBPF_EXIST                                  = 0x2\n\tBPF_F_LOCK                                 = 0x4\n\tBPF_F_NO_PREALLOC                          = 0x1\n\tBPF_F_NO_COMMON_LRU                        = 0x2\n\tBPF_F_NUMA_NODE                            = 0x4\n\tBPF_F_RDONLY                               = 0x8\n\tBPF_F_WRONLY                               = 0x10\n\tBPF_F_STACK_BUILD_ID                       = 0x20\n\tBPF_F_ZERO_SEED                            = 0x40\n\tBPF_F_RDONLY_PROG                          = 0x80\n\tBPF_F_WRONLY_PROG                          = 0x100\n\tBPF_F_CLONE                                = 0x200\n\tBPF_F_MMAPABLE                             = 0x400\n\tBPF_F_PRESERVE_ELEMS                       = 0x800\n\tBPF_F_INNER_MAP                            = 0x1000\n\tBPF_F_LINK                                 = 0x2000\n\tBPF_F_PATH_FD                              = 0x4000\n\tBPF_STATS_RUN_TIME                         = 0x0\n\tBPF_STACK_BUILD_ID_EMPTY                   = 0x0\n\tBPF_STACK_BUILD_ID_VALID                   = 0x1\n\tBPF_STACK_BUILD_ID_IP                      = 0x2\n\tBPF_F_RECOMPUTE_CSUM                       = 0x1\n\tBPF_F_INVALIDATE_HASH                      = 0x2\n\tBPF_F_HDR_FIELD_MASK                       = 0xf\n\tBPF_F_PSEUDO_HDR                           = 0x10\n\tBPF_F_MARK_MANGLED_0                       = 0x20\n\tBPF_F_MARK_ENFORCE                         = 0x40\n\tBPF_F_INGRESS                              = 0x1\n\tBPF_F_TUNINFO_IPV6                         = 0x1\n\tBPF_F_SKIP_FIELD_MASK                      = 0xff\n\tBPF_F_USER_STACK                           = 0x100\n\tBPF_F_FAST_STACK_CMP                       = 0x200\n\tBPF_F_REUSE_STACKID                        = 0x400\n\tBPF_F_USER_BUILD_ID                        = 0x800\n\tBPF_F_ZERO_CSUM_TX                         = 0x2\n\tBPF_F_DONT_FRAGMENT                        = 0x4\n\tBPF_F_SEQ_NUMBER                           = 0x8\n\tBPF_F_NO_TUNNEL_KEY                        = 0x10\n\tBPF_F_TUNINFO_FLAGS                        = 0x10\n\tBPF_F_INDEX_MASK                           = 0xffffffff\n\tBPF_F_CURRENT_CPU                          = 0xffffffff\n\tBPF_F_CTXLEN_MASK                          = 0xfffff00000000\n\tBPF_F_CURRENT_NETNS                        = -0x1\n\tBPF_CSUM_LEVEL_QUERY                       = 0x0\n\tBPF_CSUM_LEVEL_INC                         = 0x1\n\tBPF_CSUM_LEVEL_DEC                         = 0x2\n\tBPF_CSUM_LEVEL_RESET                       = 0x3\n\tBPF_F_ADJ_ROOM_FIXED_GSO                   = 0x1\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4               = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6               = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE                = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP                = 0x10\n\tBPF_F_ADJ_ROOM_NO_CSUM_RESET               = 0x20\n\tBPF_F_ADJ_ROOM_ENCAP_L2_ETH                = 0x40\n\tBPF_F_ADJ_ROOM_DECAP_L3_IPV4               = 0x80\n\tBPF_F_ADJ_ROOM_DECAP_L3_IPV6               = 0x100\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK                 = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT                = 0x38\n\tBPF_F_SYSCTL_BASE_NAME                     = 0x1\n\tBPF_LOCAL_STORAGE_GET_F_CREATE             = 0x1\n\tBPF_SK_STORAGE_GET_F_CREATE                = 0x1\n\tBPF_F_GET_BRANCH_RECORDS_SIZE              = 0x1\n\tBPF_RB_NO_WAKEUP                           = 0x1\n\tBPF_RB_FORCE_WAKEUP                        = 0x2\n\tBPF_RB_AVAIL_DATA                          = 0x0\n\tBPF_RB_RING_SIZE                           = 0x1\n\tBPF_RB_CONS_POS                            = 0x2\n\tBPF_RB_PROD_POS                            = 0x3\n\tBPF_RINGBUF_BUSY_BIT                       = 0x80000000\n\tBPF_RINGBUF_DISCARD_BIT                    = 0x40000000\n\tBPF_RINGBUF_HDR_SZ                         = 0x8\n\tBPF_SK_LOOKUP_F_REPLACE                    = 0x1\n\tBPF_SK_LOOKUP_F_NO_REUSEPORT               = 0x2\n\tBPF_ADJ_ROOM_NET                           = 0x0\n\tBPF_ADJ_ROOM_MAC                           = 0x1\n\tBPF_HDR_START_MAC                          = 0x0\n\tBPF_HDR_START_NET                          = 0x1\n\tBPF_LWT_ENCAP_SEG6                         = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE                  = 0x1\n\tBPF_LWT_ENCAP_IP                           = 0x2\n\tBPF_F_BPRM_SECUREEXEC                      = 0x1\n\tBPF_F_BROADCAST                            = 0x8\n\tBPF_F_EXCLUDE_INGRESS                      = 0x10\n\tBPF_SKB_TSTAMP_UNSPEC                      = 0x0\n\tBPF_SKB_TSTAMP_DELIVERY_MONO               = 0x1\n\tBPF_OK                                     = 0x0\n\tBPF_DROP                                   = 0x2\n\tBPF_REDIRECT                               = 0x7\n\tBPF_LWT_REROUTE                            = 0x80\n\tBPF_FLOW_DISSECTOR_CONTINUE                = 0x81\n\tBPF_SOCK_OPS_RTO_CB_FLAG                   = 0x1\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG               = 0x2\n\tBPF_SOCK_OPS_STATE_CB_FLAG                 = 0x4\n\tBPF_SOCK_OPS_RTT_CB_FLAG                   = 0x8\n\tBPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG     = 0x10\n\tBPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 0x20\n\tBPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG         = 0x40\n\tBPF_SOCK_OPS_ALL_CB_FLAGS                  = 0x7f\n\tBPF_SOCK_OPS_VOID                          = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT                  = 0x1\n\tBPF_SOCK_OPS_RWND_INIT                     = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB                = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB         = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB        = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN                     = 0x6\n\tBPF_SOCK_OPS_BASE_RTT                      = 0x7\n\tBPF_SOCK_OPS_RTO_CB                        = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB                    = 0x9\n\tBPF_SOCK_OPS_STATE_CB                      = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB                 = 0xb\n\tBPF_SOCK_OPS_RTT_CB                        = 0xc\n\tBPF_SOCK_OPS_PARSE_HDR_OPT_CB              = 0xd\n\tBPF_SOCK_OPS_HDR_OPT_LEN_CB                = 0xe\n\tBPF_SOCK_OPS_WRITE_HDR_OPT_CB              = 0xf\n\tBPF_TCP_ESTABLISHED                        = 0x1\n\tBPF_TCP_SYN_SENT                           = 0x2\n\tBPF_TCP_SYN_RECV                           = 0x3\n\tBPF_TCP_FIN_WAIT1                          = 0x4\n\tBPF_TCP_FIN_WAIT2                          = 0x5\n\tBPF_TCP_TIME_WAIT                          = 0x6\n\tBPF_TCP_CLOSE                              = 0x7\n\tBPF_TCP_CLOSE_WAIT                         = 0x8\n\tBPF_TCP_LAST_ACK                           = 0x9\n\tBPF_TCP_LISTEN                             = 0xa\n\tBPF_TCP_CLOSING                            = 0xb\n\tBPF_TCP_NEW_SYN_RECV                       = 0xc\n\tBPF_TCP_MAX_STATES                         = 0xe\n\tTCP_BPF_IW                                 = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                      = 0x3ea\n\tTCP_BPF_DELACK_MAX                         = 0x3eb\n\tTCP_BPF_RTO_MIN                            = 0x3ec\n\tTCP_BPF_SYN                                = 0x3ed\n\tTCP_BPF_SYN_IP                             = 0x3ee\n\tTCP_BPF_SYN_MAC                            = 0x3ef\n\tBPF_LOAD_HDR_OPT_TCP_SYN                   = 0x1\n\tBPF_WRITE_HDR_TCP_CURRENT_MSS              = 0x1\n\tBPF_WRITE_HDR_TCP_SYNACK_COOKIE            = 0x2\n\tBPF_DEVCG_ACC_MKNOD                        = 0x1\n\tBPF_DEVCG_ACC_READ                         = 0x2\n\tBPF_DEVCG_ACC_WRITE                        = 0x4\n\tBPF_DEVCG_DEV_BLOCK                        = 0x1\n\tBPF_DEVCG_DEV_CHAR                         = 0x2\n\tBPF_FIB_LOOKUP_DIRECT                      = 0x1\n\tBPF_FIB_LOOKUP_OUTPUT                      = 0x2\n\tBPF_FIB_LOOKUP_SKIP_NEIGH                  = 0x4\n\tBPF_FIB_LOOKUP_TBID                        = 0x8\n\tBPF_FIB_LKUP_RET_SUCCESS                   = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE                 = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE               = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT                  = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED                 = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED              = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT                = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH                  = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED               = 0x8\n\tBPF_MTU_CHK_SEGS                           = 0x1\n\tBPF_MTU_CHK_RET_SUCCESS                    = 0x0\n\tBPF_MTU_CHK_RET_FRAG_NEEDED                = 0x1\n\tBPF_MTU_CHK_RET_SEGS_TOOBIG                = 0x2\n\tBPF_FD_TYPE_RAW_TRACEPOINT                 = 0x0\n\tBPF_FD_TYPE_TRACEPOINT                     = 0x1\n\tBPF_FD_TYPE_KPROBE                         = 0x2\n\tBPF_FD_TYPE_KRETPROBE                      = 0x3\n\tBPF_FD_TYPE_UPROBE                         = 0x4\n\tBPF_FD_TYPE_URETPROBE                      = 0x5\n\tBPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG        = 0x1\n\tBPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL    = 0x2\n\tBPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP         = 0x4\n\tBPF_CORE_FIELD_BYTE_OFFSET                 = 0x0\n\tBPF_CORE_FIELD_BYTE_SIZE                   = 0x1\n\tBPF_CORE_FIELD_EXISTS                      = 0x2\n\tBPF_CORE_FIELD_SIGNED                      = 0x3\n\tBPF_CORE_FIELD_LSHIFT_U64                  = 0x4\n\tBPF_CORE_FIELD_RSHIFT_U64                  = 0x5\n\tBPF_CORE_TYPE_ID_LOCAL                     = 0x6\n\tBPF_CORE_TYPE_ID_TARGET                    = 0x7\n\tBPF_CORE_TYPE_EXISTS                       = 0x8\n\tBPF_CORE_TYPE_SIZE                         = 0x9\n\tBPF_CORE_ENUMVAL_EXISTS                    = 0xa\n\tBPF_CORE_ENUMVAL_VALUE                     = 0xb\n\tBPF_CORE_TYPE_MATCHES                      = 0xc\n\tBPF_F_TIMER_ABS                            = 0x1\n)\n\nconst (\n\tRTNLGRP_NONE          = 0x0\n\tRTNLGRP_LINK          = 0x1\n\tRTNLGRP_NOTIFY        = 0x2\n\tRTNLGRP_NEIGH         = 0x3\n\tRTNLGRP_TC            = 0x4\n\tRTNLGRP_IPV4_IFADDR   = 0x5\n\tRTNLGRP_IPV4_MROUTE   = 0x6\n\tRTNLGRP_IPV4_ROUTE    = 0x7\n\tRTNLGRP_IPV4_RULE     = 0x8\n\tRTNLGRP_IPV6_IFADDR   = 0x9\n\tRTNLGRP_IPV6_MROUTE   = 0xa\n\tRTNLGRP_IPV6_ROUTE    = 0xb\n\tRTNLGRP_IPV6_IFINFO   = 0xc\n\tRTNLGRP_DECnet_IFADDR = 0xd\n\tRTNLGRP_NOP2          = 0xe\n\tRTNLGRP_DECnet_ROUTE  = 0xf\n\tRTNLGRP_DECnet_RULE   = 0x10\n\tRTNLGRP_NOP4          = 0x11\n\tRTNLGRP_IPV6_PREFIX   = 0x12\n\tRTNLGRP_IPV6_RULE     = 0x13\n\tRTNLGRP_ND_USEROPT    = 0x14\n\tRTNLGRP_PHONET_IFADDR = 0x15\n\tRTNLGRP_PHONET_ROUTE  = 0x16\n\tRTNLGRP_DCB           = 0x17\n\tRTNLGRP_IPV4_NETCONF  = 0x18\n\tRTNLGRP_IPV6_NETCONF  = 0x19\n\tRTNLGRP_MDB           = 0x1a\n\tRTNLGRP_MPLS_ROUTE    = 0x1b\n\tRTNLGRP_NSID          = 0x1c\n\tRTNLGRP_MPLS_NETCONF  = 0x1d\n\tRTNLGRP_IPV4_MROUTE_R = 0x1e\n\tRTNLGRP_IPV6_MROUTE_R = 0x1f\n\tRTNLGRP_NEXTHOP       = 0x20\n\tRTNLGRP_BRVLAN        = 0x21\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\ntype LoopConfig struct {\n\tFd   uint32\n\tSize uint32\n\tInfo LoopInfo64\n\t_    [8]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n\nconst (\n\tSYSLOG_ACTION_CLOSE         = 0\n\tSYSLOG_ACTION_OPEN          = 1\n\tSYSLOG_ACTION_READ          = 2\n\tSYSLOG_ACTION_READ_ALL      = 3\n\tSYSLOG_ACTION_READ_CLEAR    = 4\n\tSYSLOG_ACTION_CLEAR         = 5\n\tSYSLOG_ACTION_CONSOLE_OFF   = 6\n\tSYSLOG_ACTION_CONSOLE_ON    = 7\n\tSYSLOG_ACTION_CONSOLE_LEVEL = 8\n\tSYSLOG_ACTION_SIZE_UNREAD   = 9\n\tSYSLOG_ACTION_SIZE_BUFFER   = 10\n)\n\nconst (\n\tDEVLINK_CMD_UNSPEC                                 = 0x0\n\tDEVLINK_CMD_GET                                    = 0x1\n\tDEVLINK_CMD_SET                                    = 0x2\n\tDEVLINK_CMD_NEW                                    = 0x3\n\tDEVLINK_CMD_DEL                                    = 0x4\n\tDEVLINK_CMD_PORT_GET                               = 0x5\n\tDEVLINK_CMD_PORT_SET                               = 0x6\n\tDEVLINK_CMD_PORT_NEW                               = 0x7\n\tDEVLINK_CMD_PORT_DEL                               = 0x8\n\tDEVLINK_CMD_PORT_SPLIT                             = 0x9\n\tDEVLINK_CMD_PORT_UNSPLIT                           = 0xa\n\tDEVLINK_CMD_SB_GET                                 = 0xb\n\tDEVLINK_CMD_SB_SET                                 = 0xc\n\tDEVLINK_CMD_SB_NEW                                 = 0xd\n\tDEVLINK_CMD_SB_DEL                                 = 0xe\n\tDEVLINK_CMD_SB_POOL_GET                            = 0xf\n\tDEVLINK_CMD_SB_POOL_SET                            = 0x10\n\tDEVLINK_CMD_SB_POOL_NEW                            = 0x11\n\tDEVLINK_CMD_SB_POOL_DEL                            = 0x12\n\tDEVLINK_CMD_SB_PORT_POOL_GET                       = 0x13\n\tDEVLINK_CMD_SB_PORT_POOL_SET                       = 0x14\n\tDEVLINK_CMD_SB_PORT_POOL_NEW                       = 0x15\n\tDEVLINK_CMD_SB_PORT_POOL_DEL                       = 0x16\n\tDEVLINK_CMD_SB_TC_POOL_BIND_GET                    = 0x17\n\tDEVLINK_CMD_SB_TC_POOL_BIND_SET                    = 0x18\n\tDEVLINK_CMD_SB_TC_POOL_BIND_NEW                    = 0x19\n\tDEVLINK_CMD_SB_TC_POOL_BIND_DEL                    = 0x1a\n\tDEVLINK_CMD_SB_OCC_SNAPSHOT                        = 0x1b\n\tDEVLINK_CMD_SB_OCC_MAX_CLEAR                       = 0x1c\n\tDEVLINK_CMD_ESWITCH_GET                            = 0x1d\n\tDEVLINK_CMD_ESWITCH_SET                            = 0x1e\n\tDEVLINK_CMD_DPIPE_TABLE_GET                        = 0x1f\n\tDEVLINK_CMD_DPIPE_ENTRIES_GET                      = 0x20\n\tDEVLINK_CMD_DPIPE_HEADERS_GET                      = 0x21\n\tDEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET               = 0x22\n\tDEVLINK_CMD_RESOURCE_SET                           = 0x23\n\tDEVLINK_CMD_RESOURCE_DUMP                          = 0x24\n\tDEVLINK_CMD_RELOAD                                 = 0x25\n\tDEVLINK_CMD_PARAM_GET                              = 0x26\n\tDEVLINK_CMD_PARAM_SET                              = 0x27\n\tDEVLINK_CMD_PARAM_NEW                              = 0x28\n\tDEVLINK_CMD_PARAM_DEL                              = 0x29\n\tDEVLINK_CMD_REGION_GET                             = 0x2a\n\tDEVLINK_CMD_REGION_SET                             = 0x2b\n\tDEVLINK_CMD_REGION_NEW                             = 0x2c\n\tDEVLINK_CMD_REGION_DEL                             = 0x2d\n\tDEVLINK_CMD_REGION_READ                            = 0x2e\n\tDEVLINK_CMD_PORT_PARAM_GET                         = 0x2f\n\tDEVLINK_CMD_PORT_PARAM_SET                         = 0x30\n\tDEVLINK_CMD_PORT_PARAM_NEW                         = 0x31\n\tDEVLINK_CMD_PORT_PARAM_DEL                         = 0x32\n\tDEVLINK_CMD_INFO_GET                               = 0x33\n\tDEVLINK_CMD_HEALTH_REPORTER_GET                    = 0x34\n\tDEVLINK_CMD_HEALTH_REPORTER_SET                    = 0x35\n\tDEVLINK_CMD_HEALTH_REPORTER_RECOVER                = 0x36\n\tDEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE               = 0x37\n\tDEVLINK_CMD_HEALTH_REPORTER_DUMP_GET               = 0x38\n\tDEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR             = 0x39\n\tDEVLINK_CMD_FLASH_UPDATE                           = 0x3a\n\tDEVLINK_CMD_FLASH_UPDATE_END                       = 0x3b\n\tDEVLINK_CMD_FLASH_UPDATE_STATUS                    = 0x3c\n\tDEVLINK_CMD_TRAP_GET                               = 0x3d\n\tDEVLINK_CMD_TRAP_SET                               = 0x3e\n\tDEVLINK_CMD_TRAP_NEW                               = 0x3f\n\tDEVLINK_CMD_TRAP_DEL                               = 0x40\n\tDEVLINK_CMD_TRAP_GROUP_GET                         = 0x41\n\tDEVLINK_CMD_TRAP_GROUP_SET                         = 0x42\n\tDEVLINK_CMD_TRAP_GROUP_NEW                         = 0x43\n\tDEVLINK_CMD_TRAP_GROUP_DEL                         = 0x44\n\tDEVLINK_CMD_TRAP_POLICER_GET                       = 0x45\n\tDEVLINK_CMD_TRAP_POLICER_SET                       = 0x46\n\tDEVLINK_CMD_TRAP_POLICER_NEW                       = 0x47\n\tDEVLINK_CMD_TRAP_POLICER_DEL                       = 0x48\n\tDEVLINK_CMD_HEALTH_REPORTER_TEST                   = 0x49\n\tDEVLINK_CMD_RATE_GET                               = 0x4a\n\tDEVLINK_CMD_RATE_SET                               = 0x4b\n\tDEVLINK_CMD_RATE_NEW                               = 0x4c\n\tDEVLINK_CMD_RATE_DEL                               = 0x4d\n\tDEVLINK_CMD_LINECARD_GET                           = 0x4e\n\tDEVLINK_CMD_LINECARD_SET                           = 0x4f\n\tDEVLINK_CMD_LINECARD_NEW                           = 0x50\n\tDEVLINK_CMD_LINECARD_DEL                           = 0x51\n\tDEVLINK_CMD_SELFTESTS_GET                          = 0x52\n\tDEVLINK_CMD_MAX                                    = 0x54\n\tDEVLINK_PORT_TYPE_NOTSET                           = 0x0\n\tDEVLINK_PORT_TYPE_AUTO                             = 0x1\n\tDEVLINK_PORT_TYPE_ETH                              = 0x2\n\tDEVLINK_PORT_TYPE_IB                               = 0x3\n\tDEVLINK_SB_POOL_TYPE_INGRESS                       = 0x0\n\tDEVLINK_SB_POOL_TYPE_EGRESS                        = 0x1\n\tDEVLINK_SB_THRESHOLD_TYPE_STATIC                   = 0x0\n\tDEVLINK_SB_THRESHOLD_TYPE_DYNAMIC                  = 0x1\n\tDEVLINK_ESWITCH_MODE_LEGACY                        = 0x0\n\tDEVLINK_ESWITCH_MODE_SWITCHDEV                     = 0x1\n\tDEVLINK_ESWITCH_INLINE_MODE_NONE                   = 0x0\n\tDEVLINK_ESWITCH_INLINE_MODE_LINK                   = 0x1\n\tDEVLINK_ESWITCH_INLINE_MODE_NETWORK                = 0x2\n\tDEVLINK_ESWITCH_INLINE_MODE_TRANSPORT              = 0x3\n\tDEVLINK_ESWITCH_ENCAP_MODE_NONE                    = 0x0\n\tDEVLINK_ESWITCH_ENCAP_MODE_BASIC                   = 0x1\n\tDEVLINK_PORT_FLAVOUR_PHYSICAL                      = 0x0\n\tDEVLINK_PORT_FLAVOUR_CPU                           = 0x1\n\tDEVLINK_PORT_FLAVOUR_DSA                           = 0x2\n\tDEVLINK_PORT_FLAVOUR_PCI_PF                        = 0x3\n\tDEVLINK_PORT_FLAVOUR_PCI_VF                        = 0x4\n\tDEVLINK_PORT_FLAVOUR_VIRTUAL                       = 0x5\n\tDEVLINK_PORT_FLAVOUR_UNUSED                        = 0x6\n\tDEVLINK_PARAM_CMODE_RUNTIME                        = 0x0\n\tDEVLINK_PARAM_CMODE_DRIVERINIT                     = 0x1\n\tDEVLINK_PARAM_CMODE_PERMANENT                      = 0x2\n\tDEVLINK_PARAM_CMODE_MAX                            = 0x2\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DRIVER          = 0x0\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH           = 0x1\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DISK            = 0x2\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_UNKNOWN         = 0x3\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_UNKNOWN = 0x0\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_ALWAYS  = 0x1\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_NEVER   = 0x2\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_DISK    = 0x3\n\tDEVLINK_ATTR_STATS_RX_PACKETS                      = 0x0\n\tDEVLINK_ATTR_STATS_RX_BYTES                        = 0x1\n\tDEVLINK_ATTR_STATS_RX_DROPPED                      = 0x2\n\tDEVLINK_ATTR_STATS_MAX                             = 0x2\n\tDEVLINK_FLASH_OVERWRITE_SETTINGS_BIT               = 0x0\n\tDEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT            = 0x1\n\tDEVLINK_FLASH_OVERWRITE_MAX_BIT                    = 0x1\n\tDEVLINK_TRAP_ACTION_DROP                           = 0x0\n\tDEVLINK_TRAP_ACTION_TRAP                           = 0x1\n\tDEVLINK_TRAP_ACTION_MIRROR                         = 0x2\n\tDEVLINK_TRAP_TYPE_DROP                             = 0x0\n\tDEVLINK_TRAP_TYPE_EXCEPTION                        = 0x1\n\tDEVLINK_TRAP_TYPE_CONTROL                          = 0x2\n\tDEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT            = 0x0\n\tDEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE          = 0x1\n\tDEVLINK_RELOAD_ACTION_UNSPEC                       = 0x0\n\tDEVLINK_RELOAD_ACTION_DRIVER_REINIT                = 0x1\n\tDEVLINK_RELOAD_ACTION_FW_ACTIVATE                  = 0x2\n\tDEVLINK_RELOAD_ACTION_MAX                          = 0x2\n\tDEVLINK_RELOAD_LIMIT_UNSPEC                        = 0x0\n\tDEVLINK_RELOAD_LIMIT_NO_RESET                      = 0x1\n\tDEVLINK_RELOAD_LIMIT_MAX                           = 0x1\n\tDEVLINK_ATTR_UNSPEC                                = 0x0\n\tDEVLINK_ATTR_BUS_NAME                              = 0x1\n\tDEVLINK_ATTR_DEV_NAME                              = 0x2\n\tDEVLINK_ATTR_PORT_INDEX                            = 0x3\n\tDEVLINK_ATTR_PORT_TYPE                             = 0x4\n\tDEVLINK_ATTR_PORT_DESIRED_TYPE                     = 0x5\n\tDEVLINK_ATTR_PORT_NETDEV_IFINDEX                   = 0x6\n\tDEVLINK_ATTR_PORT_NETDEV_NAME                      = 0x7\n\tDEVLINK_ATTR_PORT_IBDEV_NAME                       = 0x8\n\tDEVLINK_ATTR_PORT_SPLIT_COUNT                      = 0x9\n\tDEVLINK_ATTR_PORT_SPLIT_GROUP                      = 0xa\n\tDEVLINK_ATTR_SB_INDEX                              = 0xb\n\tDEVLINK_ATTR_SB_SIZE                               = 0xc\n\tDEVLINK_ATTR_SB_INGRESS_POOL_COUNT                 = 0xd\n\tDEVLINK_ATTR_SB_EGRESS_POOL_COUNT                  = 0xe\n\tDEVLINK_ATTR_SB_INGRESS_TC_COUNT                   = 0xf\n\tDEVLINK_ATTR_SB_EGRESS_TC_COUNT                    = 0x10\n\tDEVLINK_ATTR_SB_POOL_INDEX                         = 0x11\n\tDEVLINK_ATTR_SB_POOL_TYPE                          = 0x12\n\tDEVLINK_ATTR_SB_POOL_SIZE                          = 0x13\n\tDEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE                = 0x14\n\tDEVLINK_ATTR_SB_THRESHOLD                          = 0x15\n\tDEVLINK_ATTR_SB_TC_INDEX                           = 0x16\n\tDEVLINK_ATTR_SB_OCC_CUR                            = 0x17\n\tDEVLINK_ATTR_SB_OCC_MAX                            = 0x18\n\tDEVLINK_ATTR_ESWITCH_MODE                          = 0x19\n\tDEVLINK_ATTR_ESWITCH_INLINE_MODE                   = 0x1a\n\tDEVLINK_ATTR_DPIPE_TABLES                          = 0x1b\n\tDEVLINK_ATTR_DPIPE_TABLE                           = 0x1c\n\tDEVLINK_ATTR_DPIPE_TABLE_NAME                      = 0x1d\n\tDEVLINK_ATTR_DPIPE_TABLE_SIZE                      = 0x1e\n\tDEVLINK_ATTR_DPIPE_TABLE_MATCHES                   = 0x1f\n\tDEVLINK_ATTR_DPIPE_TABLE_ACTIONS                   = 0x20\n\tDEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED          = 0x21\n\tDEVLINK_ATTR_DPIPE_ENTRIES                         = 0x22\n\tDEVLINK_ATTR_DPIPE_ENTRY                           = 0x23\n\tDEVLINK_ATTR_DPIPE_ENTRY_INDEX                     = 0x24\n\tDEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES              = 0x25\n\tDEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES             = 0x26\n\tDEVLINK_ATTR_DPIPE_ENTRY_COUNTER                   = 0x27\n\tDEVLINK_ATTR_DPIPE_MATCH                           = 0x28\n\tDEVLINK_ATTR_DPIPE_MATCH_VALUE                     = 0x29\n\tDEVLINK_ATTR_DPIPE_MATCH_TYPE                      = 0x2a\n\tDEVLINK_ATTR_DPIPE_ACTION                          = 0x2b\n\tDEVLINK_ATTR_DPIPE_ACTION_VALUE                    = 0x2c\n\tDEVLINK_ATTR_DPIPE_ACTION_TYPE                     = 0x2d\n\tDEVLINK_ATTR_DPIPE_VALUE                           = 0x2e\n\tDEVLINK_ATTR_DPIPE_VALUE_MASK                      = 0x2f\n\tDEVLINK_ATTR_DPIPE_VALUE_MAPPING                   = 0x30\n\tDEVLINK_ATTR_DPIPE_HEADERS                         = 0x31\n\tDEVLINK_ATTR_DPIPE_HEADER                          = 0x32\n\tDEVLINK_ATTR_DPIPE_HEADER_NAME                     = 0x33\n\tDEVLINK_ATTR_DPIPE_HEADER_ID                       = 0x34\n\tDEVLINK_ATTR_DPIPE_HEADER_FIELDS                   = 0x35\n\tDEVLINK_ATTR_DPIPE_HEADER_GLOBAL                   = 0x36\n\tDEVLINK_ATTR_DPIPE_HEADER_INDEX                    = 0x37\n\tDEVLINK_ATTR_DPIPE_FIELD                           = 0x38\n\tDEVLINK_ATTR_DPIPE_FIELD_NAME                      = 0x39\n\tDEVLINK_ATTR_DPIPE_FIELD_ID                        = 0x3a\n\tDEVLINK_ATTR_DPIPE_FIELD_BITWIDTH                  = 0x3b\n\tDEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE              = 0x3c\n\tDEVLINK_ATTR_PAD                                   = 0x3d\n\tDEVLINK_ATTR_ESWITCH_ENCAP_MODE                    = 0x3e\n\tDEVLINK_ATTR_RESOURCE_LIST                         = 0x3f\n\tDEVLINK_ATTR_RESOURCE                              = 0x40\n\tDEVLINK_ATTR_RESOURCE_NAME                         = 0x41\n\tDEVLINK_ATTR_RESOURCE_ID                           = 0x42\n\tDEVLINK_ATTR_RESOURCE_SIZE                         = 0x43\n\tDEVLINK_ATTR_RESOURCE_SIZE_NEW                     = 0x44\n\tDEVLINK_ATTR_RESOURCE_SIZE_VALID                   = 0x45\n\tDEVLINK_ATTR_RESOURCE_SIZE_MIN                     = 0x46\n\tDEVLINK_ATTR_RESOURCE_SIZE_MAX                     = 0x47\n\tDEVLINK_ATTR_RESOURCE_SIZE_GRAN                    = 0x48\n\tDEVLINK_ATTR_RESOURCE_UNIT                         = 0x49\n\tDEVLINK_ATTR_RESOURCE_OCC                          = 0x4a\n\tDEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID               = 0x4b\n\tDEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS            = 0x4c\n\tDEVLINK_ATTR_PORT_FLAVOUR                          = 0x4d\n\tDEVLINK_ATTR_PORT_NUMBER                           = 0x4e\n\tDEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER             = 0x4f\n\tDEVLINK_ATTR_PARAM                                 = 0x50\n\tDEVLINK_ATTR_PARAM_NAME                            = 0x51\n\tDEVLINK_ATTR_PARAM_GENERIC                         = 0x52\n\tDEVLINK_ATTR_PARAM_TYPE                            = 0x53\n\tDEVLINK_ATTR_PARAM_VALUES_LIST                     = 0x54\n\tDEVLINK_ATTR_PARAM_VALUE                           = 0x55\n\tDEVLINK_ATTR_PARAM_VALUE_DATA                      = 0x56\n\tDEVLINK_ATTR_PARAM_VALUE_CMODE                     = 0x57\n\tDEVLINK_ATTR_REGION_NAME                           = 0x58\n\tDEVLINK_ATTR_REGION_SIZE                           = 0x59\n\tDEVLINK_ATTR_REGION_SNAPSHOTS                      = 0x5a\n\tDEVLINK_ATTR_REGION_SNAPSHOT                       = 0x5b\n\tDEVLINK_ATTR_REGION_SNAPSHOT_ID                    = 0x5c\n\tDEVLINK_ATTR_REGION_CHUNKS                         = 0x5d\n\tDEVLINK_ATTR_REGION_CHUNK                          = 0x5e\n\tDEVLINK_ATTR_REGION_CHUNK_DATA                     = 0x5f\n\tDEVLINK_ATTR_REGION_CHUNK_ADDR                     = 0x60\n\tDEVLINK_ATTR_REGION_CHUNK_LEN                      = 0x61\n\tDEVLINK_ATTR_INFO_DRIVER_NAME                      = 0x62\n\tDEVLINK_ATTR_INFO_SERIAL_NUMBER                    = 0x63\n\tDEVLINK_ATTR_INFO_VERSION_FIXED                    = 0x64\n\tDEVLINK_ATTR_INFO_VERSION_RUNNING                  = 0x65\n\tDEVLINK_ATTR_INFO_VERSION_STORED                   = 0x66\n\tDEVLINK_ATTR_INFO_VERSION_NAME                     = 0x67\n\tDEVLINK_ATTR_INFO_VERSION_VALUE                    = 0x68\n\tDEVLINK_ATTR_SB_POOL_CELL_SIZE                     = 0x69\n\tDEVLINK_ATTR_FMSG                                  = 0x6a\n\tDEVLINK_ATTR_FMSG_OBJ_NEST_START                   = 0x6b\n\tDEVLINK_ATTR_FMSG_PAIR_NEST_START                  = 0x6c\n\tDEVLINK_ATTR_FMSG_ARR_NEST_START                   = 0x6d\n\tDEVLINK_ATTR_FMSG_NEST_END                         = 0x6e\n\tDEVLINK_ATTR_FMSG_OBJ_NAME                         = 0x6f\n\tDEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE                   = 0x70\n\tDEVLINK_ATTR_FMSG_OBJ_VALUE_DATA                   = 0x71\n\tDEVLINK_ATTR_HEALTH_REPORTER                       = 0x72\n\tDEVLINK_ATTR_HEALTH_REPORTER_NAME                  = 0x73\n\tDEVLINK_ATTR_HEALTH_REPORTER_STATE                 = 0x74\n\tDEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT             = 0x75\n\tDEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT         = 0x76\n\tDEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS               = 0x77\n\tDEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD       = 0x78\n\tDEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER          = 0x79\n\tDEVLINK_ATTR_FLASH_UPDATE_FILE_NAME                = 0x7a\n\tDEVLINK_ATTR_FLASH_UPDATE_COMPONENT                = 0x7b\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG               = 0x7c\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE              = 0x7d\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL             = 0x7e\n\tDEVLINK_ATTR_PORT_PCI_PF_NUMBER                    = 0x7f\n\tDEVLINK_ATTR_PORT_PCI_VF_NUMBER                    = 0x80\n\tDEVLINK_ATTR_STATS                                 = 0x81\n\tDEVLINK_ATTR_TRAP_NAME                             = 0x82\n\tDEVLINK_ATTR_TRAP_ACTION                           = 0x83\n\tDEVLINK_ATTR_TRAP_TYPE                             = 0x84\n\tDEVLINK_ATTR_TRAP_GENERIC                          = 0x85\n\tDEVLINK_ATTR_TRAP_METADATA                         = 0x86\n\tDEVLINK_ATTR_TRAP_GROUP_NAME                       = 0x87\n\tDEVLINK_ATTR_RELOAD_FAILED                         = 0x88\n\tDEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS            = 0x89\n\tDEVLINK_ATTR_NETNS_FD                              = 0x8a\n\tDEVLINK_ATTR_NETNS_PID                             = 0x8b\n\tDEVLINK_ATTR_NETNS_ID                              = 0x8c\n\tDEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP             = 0x8d\n\tDEVLINK_ATTR_TRAP_POLICER_ID                       = 0x8e\n\tDEVLINK_ATTR_TRAP_POLICER_RATE                     = 0x8f\n\tDEVLINK_ATTR_TRAP_POLICER_BURST                    = 0x90\n\tDEVLINK_ATTR_PORT_FUNCTION                         = 0x91\n\tDEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER              = 0x92\n\tDEVLINK_ATTR_PORT_LANES                            = 0x93\n\tDEVLINK_ATTR_PORT_SPLITTABLE                       = 0x94\n\tDEVLINK_ATTR_PORT_EXTERNAL                         = 0x95\n\tDEVLINK_ATTR_PORT_CONTROLLER_NUMBER                = 0x96\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT           = 0x97\n\tDEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK           = 0x98\n\tDEVLINK_ATTR_RELOAD_ACTION                         = 0x99\n\tDEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED              = 0x9a\n\tDEVLINK_ATTR_RELOAD_LIMITS                         = 0x9b\n\tDEVLINK_ATTR_DEV_STATS                             = 0x9c\n\tDEVLINK_ATTR_RELOAD_STATS                          = 0x9d\n\tDEVLINK_ATTR_RELOAD_STATS_ENTRY                    = 0x9e\n\tDEVLINK_ATTR_RELOAD_STATS_LIMIT                    = 0x9f\n\tDEVLINK_ATTR_RELOAD_STATS_VALUE                    = 0xa0\n\tDEVLINK_ATTR_REMOTE_RELOAD_STATS                   = 0xa1\n\tDEVLINK_ATTR_RELOAD_ACTION_INFO                    = 0xa2\n\tDEVLINK_ATTR_RELOAD_ACTION_STATS                   = 0xa3\n\tDEVLINK_ATTR_PORT_PCI_SF_NUMBER                    = 0xa4\n\tDEVLINK_ATTR_RATE_TYPE                             = 0xa5\n\tDEVLINK_ATTR_RATE_TX_SHARE                         = 0xa6\n\tDEVLINK_ATTR_RATE_TX_MAX                           = 0xa7\n\tDEVLINK_ATTR_RATE_NODE_NAME                        = 0xa8\n\tDEVLINK_ATTR_RATE_PARENT_NODE_NAME                 = 0xa9\n\tDEVLINK_ATTR_REGION_MAX_SNAPSHOTS                  = 0xaa\n\tDEVLINK_ATTR_LINECARD_INDEX                        = 0xab\n\tDEVLINK_ATTR_LINECARD_STATE                        = 0xac\n\tDEVLINK_ATTR_LINECARD_TYPE                         = 0xad\n\tDEVLINK_ATTR_LINECARD_SUPPORTED_TYPES              = 0xae\n\tDEVLINK_ATTR_NESTED_DEVLINK                        = 0xaf\n\tDEVLINK_ATTR_SELFTESTS                             = 0xb0\n\tDEVLINK_ATTR_MAX                                   = 0xb3\n\tDEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE              = 0x0\n\tDEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX           = 0x1\n\tDEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT               = 0x0\n\tDEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY             = 0x0\n\tDEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC               = 0x0\n\tDEVLINK_DPIPE_FIELD_IPV4_DST_IP                    = 0x0\n\tDEVLINK_DPIPE_FIELD_IPV6_DST_IP                    = 0x0\n\tDEVLINK_DPIPE_HEADER_ETHERNET                      = 0x0\n\tDEVLINK_DPIPE_HEADER_IPV4                          = 0x1\n\tDEVLINK_DPIPE_HEADER_IPV6                          = 0x2\n\tDEVLINK_RESOURCE_UNIT_ENTRY                        = 0x0\n\tDEVLINK_PORT_FUNCTION_ATTR_UNSPEC                  = 0x0\n\tDEVLINK_PORT_FUNCTION_ATTR_HW_ADDR                 = 0x1\n\tDEVLINK_PORT_FN_ATTR_STATE                         = 0x2\n\tDEVLINK_PORT_FN_ATTR_OPSTATE                       = 0x3\n\tDEVLINK_PORT_FN_ATTR_CAPS                          = 0x4\n\tDEVLINK_PORT_FUNCTION_ATTR_MAX                     = 0x6\n)\n\ntype FsverityDigest struct {\n\tAlgorithm uint16\n\tSize      uint16\n}\n\ntype FsverityEnableArg struct {\n\tVersion        uint32\n\tHash_algorithm uint32\n\tBlock_size     uint32\n\tSalt_size      uint32\n\tSalt_ptr       uint64\n\tSig_size       uint32\n\t_              uint32\n\tSig_ptr        uint64\n\t_              [11]uint64\n}\n\ntype Nhmsg struct {\n\tFamily   uint8\n\tScope    uint8\n\tProtocol uint8\n\tResvd    uint8\n\tFlags    uint32\n}\n\ntype NexthopGrp struct {\n\tId     uint32\n\tWeight uint8\n\tResvd1 uint8\n\tResvd2 uint16\n}\n\nconst (\n\tNHA_UNSPEC     = 0x0\n\tNHA_ID         = 0x1\n\tNHA_GROUP      = 0x2\n\tNHA_GROUP_TYPE = 0x3\n\tNHA_BLACKHOLE  = 0x4\n\tNHA_OIF        = 0x5\n\tNHA_GATEWAY    = 0x6\n\tNHA_ENCAP_TYPE = 0x7\n\tNHA_ENCAP      = 0x8\n\tNHA_GROUPS     = 0x9\n\tNHA_MASTER     = 0xa\n)\n\nconst (\n\tCAN_RAW_FILTER        = 0x1\n\tCAN_RAW_ERR_FILTER    = 0x2\n\tCAN_RAW_LOOPBACK      = 0x3\n\tCAN_RAW_RECV_OWN_MSGS = 0x4\n\tCAN_RAW_FD_FRAMES     = 0x5\n\tCAN_RAW_JOIN_FILTERS  = 0x6\n)\n\ntype WatchdogInfo struct {\n\tOptions  uint32\n\tVersion  uint32\n\tIdentity [32]uint8\n}\n\ntype PPSFData struct {\n\tInfo    PPSKInfo\n\tTimeout PPSKTime\n}\n\ntype PPSKParams struct {\n\tApi_version   int32\n\tMode          int32\n\tAssert_off_tu PPSKTime\n\tClear_off_tu  PPSKTime\n}\n\ntype PPSKTime struct {\n\tSec   int64\n\tNsec  int32\n\tFlags uint32\n}\n\nconst (\n\tLWTUNNEL_ENCAP_NONE       = 0x0\n\tLWTUNNEL_ENCAP_MPLS       = 0x1\n\tLWTUNNEL_ENCAP_IP         = 0x2\n\tLWTUNNEL_ENCAP_ILA        = 0x3\n\tLWTUNNEL_ENCAP_IP6        = 0x4\n\tLWTUNNEL_ENCAP_SEG6       = 0x5\n\tLWTUNNEL_ENCAP_BPF        = 0x6\n\tLWTUNNEL_ENCAP_SEG6_LOCAL = 0x7\n\tLWTUNNEL_ENCAP_RPL        = 0x8\n\tLWTUNNEL_ENCAP_IOAM6      = 0x9\n\tLWTUNNEL_ENCAP_XFRM       = 0xa\n\tLWTUNNEL_ENCAP_MAX        = 0xa\n\n\tMPLS_IPTUNNEL_UNSPEC = 0x0\n\tMPLS_IPTUNNEL_DST    = 0x1\n\tMPLS_IPTUNNEL_TTL    = 0x2\n\tMPLS_IPTUNNEL_MAX    = 0x2\n)\n\nconst (\n\tETHTOOL_ID_UNSPEC                                                       = 0x0\n\tETHTOOL_RX_COPYBREAK                                                    = 0x1\n\tETHTOOL_TX_COPYBREAK                                                    = 0x2\n\tETHTOOL_PFC_PREVENTION_TOUT                                             = 0x3\n\tETHTOOL_TUNABLE_UNSPEC                                                  = 0x0\n\tETHTOOL_TUNABLE_U8                                                      = 0x1\n\tETHTOOL_TUNABLE_U16                                                     = 0x2\n\tETHTOOL_TUNABLE_U32                                                     = 0x3\n\tETHTOOL_TUNABLE_U64                                                     = 0x4\n\tETHTOOL_TUNABLE_STRING                                                  = 0x5\n\tETHTOOL_TUNABLE_S8                                                      = 0x6\n\tETHTOOL_TUNABLE_S16                                                     = 0x7\n\tETHTOOL_TUNABLE_S32                                                     = 0x8\n\tETHTOOL_TUNABLE_S64                                                     = 0x9\n\tETHTOOL_PHY_ID_UNSPEC                                                   = 0x0\n\tETHTOOL_PHY_DOWNSHIFT                                                   = 0x1\n\tETHTOOL_PHY_FAST_LINK_DOWN                                              = 0x2\n\tETHTOOL_PHY_EDPD                                                        = 0x3\n\tETHTOOL_LINK_EXT_STATE_AUTONEG                                          = 0x0\n\tETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE                            = 0x1\n\tETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH                            = 0x2\n\tETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY                             = 0x3\n\tETHTOOL_LINK_EXT_STATE_NO_CABLE                                         = 0x4\n\tETHTOOL_LINK_EXT_STATE_CABLE_ISSUE                                      = 0x5\n\tETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE                                     = 0x6\n\tETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE                              = 0x7\n\tETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED                            = 0x8\n\tETHTOOL_LINK_EXT_STATE_OVERHEAT                                         = 0x9\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED                        = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED                           = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED                  = 0x3\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE             = 0x4\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE               = 0x5\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD                                     = 0x6\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED                 = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT                    = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 0x3\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT                               = 0x4\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK            = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK               = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS              = 0x3\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED                      = 0x4\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED                      = 0x5\n\tETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS           = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE                          = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE                          = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE                         = 0x2\n\tETHTOOL_FLASH_ALL_REGIONS                                               = 0x0\n\tETHTOOL_F_UNSUPPORTED__BIT                                              = 0x0\n\tETHTOOL_F_WISH__BIT                                                     = 0x1\n\tETHTOOL_F_COMPAT__BIT                                                   = 0x2\n\tETHTOOL_FEC_NONE_BIT                                                    = 0x0\n\tETHTOOL_FEC_AUTO_BIT                                                    = 0x1\n\tETHTOOL_FEC_OFF_BIT                                                     = 0x2\n\tETHTOOL_FEC_RS_BIT                                                      = 0x3\n\tETHTOOL_FEC_BASER_BIT                                                   = 0x4\n\tETHTOOL_FEC_LLRS_BIT                                                    = 0x5\n\tETHTOOL_LINK_MODE_10baseT_Half_BIT                                      = 0x0\n\tETHTOOL_LINK_MODE_10baseT_Full_BIT                                      = 0x1\n\tETHTOOL_LINK_MODE_100baseT_Half_BIT                                     = 0x2\n\tETHTOOL_LINK_MODE_100baseT_Full_BIT                                     = 0x3\n\tETHTOOL_LINK_MODE_1000baseT_Half_BIT                                    = 0x4\n\tETHTOOL_LINK_MODE_1000baseT_Full_BIT                                    = 0x5\n\tETHTOOL_LINK_MODE_Autoneg_BIT                                           = 0x6\n\tETHTOOL_LINK_MODE_TP_BIT                                                = 0x7\n\tETHTOOL_LINK_MODE_AUI_BIT                                               = 0x8\n\tETHTOOL_LINK_MODE_MII_BIT                                               = 0x9\n\tETHTOOL_LINK_MODE_FIBRE_BIT                                             = 0xa\n\tETHTOOL_LINK_MODE_BNC_BIT                                               = 0xb\n\tETHTOOL_LINK_MODE_10000baseT_Full_BIT                                   = 0xc\n\tETHTOOL_LINK_MODE_Pause_BIT                                             = 0xd\n\tETHTOOL_LINK_MODE_Asym_Pause_BIT                                        = 0xe\n\tETHTOOL_LINK_MODE_2500baseX_Full_BIT                                    = 0xf\n\tETHTOOL_LINK_MODE_Backplane_BIT                                         = 0x10\n\tETHTOOL_LINK_MODE_1000baseKX_Full_BIT                                   = 0x11\n\tETHTOOL_LINK_MODE_10000baseKX4_Full_BIT                                 = 0x12\n\tETHTOOL_LINK_MODE_10000baseKR_Full_BIT                                  = 0x13\n\tETHTOOL_LINK_MODE_10000baseR_FEC_BIT                                    = 0x14\n\tETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT                                = 0x15\n\tETHTOOL_LINK_MODE_20000baseKR2_Full_BIT                                 = 0x16\n\tETHTOOL_LINK_MODE_40000baseKR4_Full_BIT                                 = 0x17\n\tETHTOOL_LINK_MODE_40000baseCR4_Full_BIT                                 = 0x18\n\tETHTOOL_LINK_MODE_40000baseSR4_Full_BIT                                 = 0x19\n\tETHTOOL_LINK_MODE_40000baseLR4_Full_BIT                                 = 0x1a\n\tETHTOOL_LINK_MODE_56000baseKR4_Full_BIT                                 = 0x1b\n\tETHTOOL_LINK_MODE_56000baseCR4_Full_BIT                                 = 0x1c\n\tETHTOOL_LINK_MODE_56000baseSR4_Full_BIT                                 = 0x1d\n\tETHTOOL_LINK_MODE_56000baseLR4_Full_BIT                                 = 0x1e\n\tETHTOOL_LINK_MODE_25000baseCR_Full_BIT                                  = 0x1f\n\tETHTOOL_LINK_MODE_25000baseKR_Full_BIT                                  = 0x20\n\tETHTOOL_LINK_MODE_25000baseSR_Full_BIT                                  = 0x21\n\tETHTOOL_LINK_MODE_50000baseCR2_Full_BIT                                 = 0x22\n\tETHTOOL_LINK_MODE_50000baseKR2_Full_BIT                                 = 0x23\n\tETHTOOL_LINK_MODE_100000baseKR4_Full_BIT                                = 0x24\n\tETHTOOL_LINK_MODE_100000baseSR4_Full_BIT                                = 0x25\n\tETHTOOL_LINK_MODE_100000baseCR4_Full_BIT                                = 0x26\n\tETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT                            = 0x27\n\tETHTOOL_LINK_MODE_50000baseSR2_Full_BIT                                 = 0x28\n\tETHTOOL_LINK_MODE_1000baseX_Full_BIT                                    = 0x29\n\tETHTOOL_LINK_MODE_10000baseCR_Full_BIT                                  = 0x2a\n\tETHTOOL_LINK_MODE_10000baseSR_Full_BIT                                  = 0x2b\n\tETHTOOL_LINK_MODE_10000baseLR_Full_BIT                                  = 0x2c\n\tETHTOOL_LINK_MODE_10000baseLRM_Full_BIT                                 = 0x2d\n\tETHTOOL_LINK_MODE_10000baseER_Full_BIT                                  = 0x2e\n\tETHTOOL_LINK_MODE_2500baseT_Full_BIT                                    = 0x2f\n\tETHTOOL_LINK_MODE_5000baseT_Full_BIT                                    = 0x30\n\tETHTOOL_LINK_MODE_FEC_NONE_BIT                                          = 0x31\n\tETHTOOL_LINK_MODE_FEC_RS_BIT                                            = 0x32\n\tETHTOOL_LINK_MODE_FEC_BASER_BIT                                         = 0x33\n\tETHTOOL_LINK_MODE_50000baseKR_Full_BIT                                  = 0x34\n\tETHTOOL_LINK_MODE_50000baseSR_Full_BIT                                  = 0x35\n\tETHTOOL_LINK_MODE_50000baseCR_Full_BIT                                  = 0x36\n\tETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT                            = 0x37\n\tETHTOOL_LINK_MODE_50000baseDR_Full_BIT                                  = 0x38\n\tETHTOOL_LINK_MODE_100000baseKR2_Full_BIT                                = 0x39\n\tETHTOOL_LINK_MODE_100000baseSR2_Full_BIT                                = 0x3a\n\tETHTOOL_LINK_MODE_100000baseCR2_Full_BIT                                = 0x3b\n\tETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT                        = 0x3c\n\tETHTOOL_LINK_MODE_100000baseDR2_Full_BIT                                = 0x3d\n\tETHTOOL_LINK_MODE_200000baseKR4_Full_BIT                                = 0x3e\n\tETHTOOL_LINK_MODE_200000baseSR4_Full_BIT                                = 0x3f\n\tETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT                        = 0x40\n\tETHTOOL_LINK_MODE_200000baseDR4_Full_BIT                                = 0x41\n\tETHTOOL_LINK_MODE_200000baseCR4_Full_BIT                                = 0x42\n\tETHTOOL_LINK_MODE_100baseT1_Full_BIT                                    = 0x43\n\tETHTOOL_LINK_MODE_1000baseT1_Full_BIT                                   = 0x44\n\tETHTOOL_LINK_MODE_400000baseKR8_Full_BIT                                = 0x45\n\tETHTOOL_LINK_MODE_400000baseSR8_Full_BIT                                = 0x46\n\tETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT                        = 0x47\n\tETHTOOL_LINK_MODE_400000baseDR8_Full_BIT                                = 0x48\n\tETHTOOL_LINK_MODE_400000baseCR8_Full_BIT                                = 0x49\n\tETHTOOL_LINK_MODE_FEC_LLRS_BIT                                          = 0x4a\n\tETHTOOL_LINK_MODE_100000baseKR_Full_BIT                                 = 0x4b\n\tETHTOOL_LINK_MODE_100000baseSR_Full_BIT                                 = 0x4c\n\tETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT                           = 0x4d\n\tETHTOOL_LINK_MODE_100000baseCR_Full_BIT                                 = 0x4e\n\tETHTOOL_LINK_MODE_100000baseDR_Full_BIT                                 = 0x4f\n\tETHTOOL_LINK_MODE_200000baseKR2_Full_BIT                                = 0x50\n\tETHTOOL_LINK_MODE_200000baseSR2_Full_BIT                                = 0x51\n\tETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT                        = 0x52\n\tETHTOOL_LINK_MODE_200000baseDR2_Full_BIT                                = 0x53\n\tETHTOOL_LINK_MODE_200000baseCR2_Full_BIT                                = 0x54\n\tETHTOOL_LINK_MODE_400000baseKR4_Full_BIT                                = 0x55\n\tETHTOOL_LINK_MODE_400000baseSR4_Full_BIT                                = 0x56\n\tETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT                        = 0x57\n\tETHTOOL_LINK_MODE_400000baseDR4_Full_BIT                                = 0x58\n\tETHTOOL_LINK_MODE_400000baseCR4_Full_BIT                                = 0x59\n\tETHTOOL_LINK_MODE_100baseFX_Half_BIT                                    = 0x5a\n\tETHTOOL_LINK_MODE_100baseFX_Full_BIT                                    = 0x5b\n\n\tETHTOOL_MSG_USER_NONE                     = 0x0\n\tETHTOOL_MSG_STRSET_GET                    = 0x1\n\tETHTOOL_MSG_LINKINFO_GET                  = 0x2\n\tETHTOOL_MSG_LINKINFO_SET                  = 0x3\n\tETHTOOL_MSG_LINKMODES_GET                 = 0x4\n\tETHTOOL_MSG_LINKMODES_SET                 = 0x5\n\tETHTOOL_MSG_LINKSTATE_GET                 = 0x6\n\tETHTOOL_MSG_DEBUG_GET                     = 0x7\n\tETHTOOL_MSG_DEBUG_SET                     = 0x8\n\tETHTOOL_MSG_WOL_GET                       = 0x9\n\tETHTOOL_MSG_WOL_SET                       = 0xa\n\tETHTOOL_MSG_FEATURES_GET                  = 0xb\n\tETHTOOL_MSG_FEATURES_SET                  = 0xc\n\tETHTOOL_MSG_PRIVFLAGS_GET                 = 0xd\n\tETHTOOL_MSG_PRIVFLAGS_SET                 = 0xe\n\tETHTOOL_MSG_RINGS_GET                     = 0xf\n\tETHTOOL_MSG_RINGS_SET                     = 0x10\n\tETHTOOL_MSG_CHANNELS_GET                  = 0x11\n\tETHTOOL_MSG_CHANNELS_SET                  = 0x12\n\tETHTOOL_MSG_COALESCE_GET                  = 0x13\n\tETHTOOL_MSG_COALESCE_SET                  = 0x14\n\tETHTOOL_MSG_PAUSE_GET                     = 0x15\n\tETHTOOL_MSG_PAUSE_SET                     = 0x16\n\tETHTOOL_MSG_EEE_GET                       = 0x17\n\tETHTOOL_MSG_EEE_SET                       = 0x18\n\tETHTOOL_MSG_TSINFO_GET                    = 0x19\n\tETHTOOL_MSG_CABLE_TEST_ACT                = 0x1a\n\tETHTOOL_MSG_CABLE_TEST_TDR_ACT            = 0x1b\n\tETHTOOL_MSG_TUNNEL_INFO_GET               = 0x1c\n\tETHTOOL_MSG_FEC_GET                       = 0x1d\n\tETHTOOL_MSG_FEC_SET                       = 0x1e\n\tETHTOOL_MSG_MODULE_EEPROM_GET             = 0x1f\n\tETHTOOL_MSG_STATS_GET                     = 0x20\n\tETHTOOL_MSG_PHC_VCLOCKS_GET               = 0x21\n\tETHTOOL_MSG_MODULE_GET                    = 0x22\n\tETHTOOL_MSG_MODULE_SET                    = 0x23\n\tETHTOOL_MSG_PSE_GET                       = 0x24\n\tETHTOOL_MSG_PSE_SET                       = 0x25\n\tETHTOOL_MSG_RSS_GET                       = 0x26\n\tETHTOOL_MSG_USER_MAX                      = 0x2b\n\tETHTOOL_MSG_KERNEL_NONE                   = 0x0\n\tETHTOOL_MSG_STRSET_GET_REPLY              = 0x1\n\tETHTOOL_MSG_LINKINFO_GET_REPLY            = 0x2\n\tETHTOOL_MSG_LINKINFO_NTF                  = 0x3\n\tETHTOOL_MSG_LINKMODES_GET_REPLY           = 0x4\n\tETHTOOL_MSG_LINKMODES_NTF                 = 0x5\n\tETHTOOL_MSG_LINKSTATE_GET_REPLY           = 0x6\n\tETHTOOL_MSG_DEBUG_GET_REPLY               = 0x7\n\tETHTOOL_MSG_DEBUG_NTF                     = 0x8\n\tETHTOOL_MSG_WOL_GET_REPLY                 = 0x9\n\tETHTOOL_MSG_WOL_NTF                       = 0xa\n\tETHTOOL_MSG_FEATURES_GET_REPLY            = 0xb\n\tETHTOOL_MSG_FEATURES_SET_REPLY            = 0xc\n\tETHTOOL_MSG_FEATURES_NTF                  = 0xd\n\tETHTOOL_MSG_PRIVFLAGS_GET_REPLY           = 0xe\n\tETHTOOL_MSG_PRIVFLAGS_NTF                 = 0xf\n\tETHTOOL_MSG_RINGS_GET_REPLY               = 0x10\n\tETHTOOL_MSG_RINGS_NTF                     = 0x11\n\tETHTOOL_MSG_CHANNELS_GET_REPLY            = 0x12\n\tETHTOOL_MSG_CHANNELS_NTF                  = 0x13\n\tETHTOOL_MSG_COALESCE_GET_REPLY            = 0x14\n\tETHTOOL_MSG_COALESCE_NTF                  = 0x15\n\tETHTOOL_MSG_PAUSE_GET_REPLY               = 0x16\n\tETHTOOL_MSG_PAUSE_NTF                     = 0x17\n\tETHTOOL_MSG_EEE_GET_REPLY                 = 0x18\n\tETHTOOL_MSG_EEE_NTF                       = 0x19\n\tETHTOOL_MSG_TSINFO_GET_REPLY              = 0x1a\n\tETHTOOL_MSG_CABLE_TEST_NTF                = 0x1b\n\tETHTOOL_MSG_CABLE_TEST_TDR_NTF            = 0x1c\n\tETHTOOL_MSG_TUNNEL_INFO_GET_REPLY         = 0x1d\n\tETHTOOL_MSG_FEC_GET_REPLY                 = 0x1e\n\tETHTOOL_MSG_FEC_NTF                       = 0x1f\n\tETHTOOL_MSG_MODULE_EEPROM_GET_REPLY       = 0x20\n\tETHTOOL_MSG_STATS_GET_REPLY               = 0x21\n\tETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY         = 0x22\n\tETHTOOL_MSG_MODULE_GET_REPLY              = 0x23\n\tETHTOOL_MSG_MODULE_NTF                    = 0x24\n\tETHTOOL_MSG_PSE_GET_REPLY                 = 0x25\n\tETHTOOL_MSG_RSS_GET_REPLY                 = 0x26\n\tETHTOOL_MSG_KERNEL_MAX                    = 0x2b\n\tETHTOOL_FLAG_COMPACT_BITSETS              = 0x1\n\tETHTOOL_FLAG_OMIT_REPLY                   = 0x2\n\tETHTOOL_FLAG_STATS                        = 0x4\n\tETHTOOL_A_HEADER_UNSPEC                   = 0x0\n\tETHTOOL_A_HEADER_DEV_INDEX                = 0x1\n\tETHTOOL_A_HEADER_DEV_NAME                 = 0x2\n\tETHTOOL_A_HEADER_FLAGS                    = 0x3\n\tETHTOOL_A_HEADER_MAX                      = 0x3\n\tETHTOOL_A_BITSET_BIT_UNSPEC               = 0x0\n\tETHTOOL_A_BITSET_BIT_INDEX                = 0x1\n\tETHTOOL_A_BITSET_BIT_NAME                 = 0x2\n\tETHTOOL_A_BITSET_BIT_VALUE                = 0x3\n\tETHTOOL_A_BITSET_BIT_MAX                  = 0x3\n\tETHTOOL_A_BITSET_BITS_UNSPEC              = 0x0\n\tETHTOOL_A_BITSET_BITS_BIT                 = 0x1\n\tETHTOOL_A_BITSET_BITS_MAX                 = 0x1\n\tETHTOOL_A_BITSET_UNSPEC                   = 0x0\n\tETHTOOL_A_BITSET_NOMASK                   = 0x1\n\tETHTOOL_A_BITSET_SIZE                     = 0x2\n\tETHTOOL_A_BITSET_BITS                     = 0x3\n\tETHTOOL_A_BITSET_VALUE                    = 0x4\n\tETHTOOL_A_BITSET_MASK                     = 0x5\n\tETHTOOL_A_BITSET_MAX                      = 0x5\n\tETHTOOL_A_STRING_UNSPEC                   = 0x0\n\tETHTOOL_A_STRING_INDEX                    = 0x1\n\tETHTOOL_A_STRING_VALUE                    = 0x2\n\tETHTOOL_A_STRING_MAX                      = 0x2\n\tETHTOOL_A_STRINGS_UNSPEC                  = 0x0\n\tETHTOOL_A_STRINGS_STRING                  = 0x1\n\tETHTOOL_A_STRINGS_MAX                     = 0x1\n\tETHTOOL_A_STRINGSET_UNSPEC                = 0x0\n\tETHTOOL_A_STRINGSET_ID                    = 0x1\n\tETHTOOL_A_STRINGSET_COUNT                 = 0x2\n\tETHTOOL_A_STRINGSET_STRINGS               = 0x3\n\tETHTOOL_A_STRINGSET_MAX                   = 0x3\n\tETHTOOL_A_STRINGSETS_UNSPEC               = 0x0\n\tETHTOOL_A_STRINGSETS_STRINGSET            = 0x1\n\tETHTOOL_A_STRINGSETS_MAX                  = 0x1\n\tETHTOOL_A_STRSET_UNSPEC                   = 0x0\n\tETHTOOL_A_STRSET_HEADER                   = 0x1\n\tETHTOOL_A_STRSET_STRINGSETS               = 0x2\n\tETHTOOL_A_STRSET_COUNTS_ONLY              = 0x3\n\tETHTOOL_A_STRSET_MAX                      = 0x3\n\tETHTOOL_A_LINKINFO_UNSPEC                 = 0x0\n\tETHTOOL_A_LINKINFO_HEADER                 = 0x1\n\tETHTOOL_A_LINKINFO_PORT                   = 0x2\n\tETHTOOL_A_LINKINFO_PHYADDR                = 0x3\n\tETHTOOL_A_LINKINFO_TP_MDIX                = 0x4\n\tETHTOOL_A_LINKINFO_TP_MDIX_CTRL           = 0x5\n\tETHTOOL_A_LINKINFO_TRANSCEIVER            = 0x6\n\tETHTOOL_A_LINKINFO_MAX                    = 0x6\n\tETHTOOL_A_LINKMODES_UNSPEC                = 0x0\n\tETHTOOL_A_LINKMODES_HEADER                = 0x1\n\tETHTOOL_A_LINKMODES_AUTONEG               = 0x2\n\tETHTOOL_A_LINKMODES_OURS                  = 0x3\n\tETHTOOL_A_LINKMODES_PEER                  = 0x4\n\tETHTOOL_A_LINKMODES_SPEED                 = 0x5\n\tETHTOOL_A_LINKMODES_DUPLEX                = 0x6\n\tETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG      = 0x7\n\tETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE    = 0x8\n\tETHTOOL_A_LINKMODES_LANES                 = 0x9\n\tETHTOOL_A_LINKMODES_RATE_MATCHING         = 0xa\n\tETHTOOL_A_LINKMODES_MAX                   = 0xa\n\tETHTOOL_A_LINKSTATE_UNSPEC                = 0x0\n\tETHTOOL_A_LINKSTATE_HEADER                = 0x1\n\tETHTOOL_A_LINKSTATE_LINK                  = 0x2\n\tETHTOOL_A_LINKSTATE_SQI                   = 0x3\n\tETHTOOL_A_LINKSTATE_SQI_MAX               = 0x4\n\tETHTOOL_A_LINKSTATE_EXT_STATE             = 0x5\n\tETHTOOL_A_LINKSTATE_EXT_SUBSTATE          = 0x6\n\tETHTOOL_A_LINKSTATE_EXT_DOWN_CNT          = 0x7\n\tETHTOOL_A_LINKSTATE_MAX                   = 0x7\n\tETHTOOL_A_DEBUG_UNSPEC                    = 0x0\n\tETHTOOL_A_DEBUG_HEADER                    = 0x1\n\tETHTOOL_A_DEBUG_MSGMASK                   = 0x2\n\tETHTOOL_A_DEBUG_MAX                       = 0x2\n\tETHTOOL_A_WOL_UNSPEC                      = 0x0\n\tETHTOOL_A_WOL_HEADER                      = 0x1\n\tETHTOOL_A_WOL_MODES                       = 0x2\n\tETHTOOL_A_WOL_SOPASS                      = 0x3\n\tETHTOOL_A_WOL_MAX                         = 0x3\n\tETHTOOL_A_FEATURES_UNSPEC                 = 0x0\n\tETHTOOL_A_FEATURES_HEADER                 = 0x1\n\tETHTOOL_A_FEATURES_HW                     = 0x2\n\tETHTOOL_A_FEATURES_WANTED                 = 0x3\n\tETHTOOL_A_FEATURES_ACTIVE                 = 0x4\n\tETHTOOL_A_FEATURES_NOCHANGE               = 0x5\n\tETHTOOL_A_FEATURES_MAX                    = 0x5\n\tETHTOOL_A_PRIVFLAGS_UNSPEC                = 0x0\n\tETHTOOL_A_PRIVFLAGS_HEADER                = 0x1\n\tETHTOOL_A_PRIVFLAGS_FLAGS                 = 0x2\n\tETHTOOL_A_PRIVFLAGS_MAX                   = 0x2\n\tETHTOOL_A_RINGS_UNSPEC                    = 0x0\n\tETHTOOL_A_RINGS_HEADER                    = 0x1\n\tETHTOOL_A_RINGS_RX_MAX                    = 0x2\n\tETHTOOL_A_RINGS_RX_MINI_MAX               = 0x3\n\tETHTOOL_A_RINGS_RX_JUMBO_MAX              = 0x4\n\tETHTOOL_A_RINGS_TX_MAX                    = 0x5\n\tETHTOOL_A_RINGS_RX                        = 0x6\n\tETHTOOL_A_RINGS_RX_MINI                   = 0x7\n\tETHTOOL_A_RINGS_RX_JUMBO                  = 0x8\n\tETHTOOL_A_RINGS_TX                        = 0x9\n\tETHTOOL_A_RINGS_RX_BUF_LEN                = 0xa\n\tETHTOOL_A_RINGS_TCP_DATA_SPLIT            = 0xb\n\tETHTOOL_A_RINGS_CQE_SIZE                  = 0xc\n\tETHTOOL_A_RINGS_TX_PUSH                   = 0xd\n\tETHTOOL_A_RINGS_MAX                       = 0x10\n\tETHTOOL_A_CHANNELS_UNSPEC                 = 0x0\n\tETHTOOL_A_CHANNELS_HEADER                 = 0x1\n\tETHTOOL_A_CHANNELS_RX_MAX                 = 0x2\n\tETHTOOL_A_CHANNELS_TX_MAX                 = 0x3\n\tETHTOOL_A_CHANNELS_OTHER_MAX              = 0x4\n\tETHTOOL_A_CHANNELS_COMBINED_MAX           = 0x5\n\tETHTOOL_A_CHANNELS_RX_COUNT               = 0x6\n\tETHTOOL_A_CHANNELS_TX_COUNT               = 0x7\n\tETHTOOL_A_CHANNELS_OTHER_COUNT            = 0x8\n\tETHTOOL_A_CHANNELS_COMBINED_COUNT         = 0x9\n\tETHTOOL_A_CHANNELS_MAX                    = 0x9\n\tETHTOOL_A_COALESCE_UNSPEC                 = 0x0\n\tETHTOOL_A_COALESCE_HEADER                 = 0x1\n\tETHTOOL_A_COALESCE_RX_USECS               = 0x2\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES          = 0x3\n\tETHTOOL_A_COALESCE_RX_USECS_IRQ           = 0x4\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ      = 0x5\n\tETHTOOL_A_COALESCE_TX_USECS               = 0x6\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES          = 0x7\n\tETHTOOL_A_COALESCE_TX_USECS_IRQ           = 0x8\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ      = 0x9\n\tETHTOOL_A_COALESCE_STATS_BLOCK_USECS      = 0xa\n\tETHTOOL_A_COALESCE_USE_ADAPTIVE_RX        = 0xb\n\tETHTOOL_A_COALESCE_USE_ADAPTIVE_TX        = 0xc\n\tETHTOOL_A_COALESCE_PKT_RATE_LOW           = 0xd\n\tETHTOOL_A_COALESCE_RX_USECS_LOW           = 0xe\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW      = 0xf\n\tETHTOOL_A_COALESCE_TX_USECS_LOW           = 0x10\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW      = 0x11\n\tETHTOOL_A_COALESCE_PKT_RATE_HIGH          = 0x12\n\tETHTOOL_A_COALESCE_RX_USECS_HIGH          = 0x13\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH     = 0x14\n\tETHTOOL_A_COALESCE_TX_USECS_HIGH          = 0x15\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH     = 0x16\n\tETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL   = 0x17\n\tETHTOOL_A_COALESCE_USE_CQE_MODE_TX        = 0x18\n\tETHTOOL_A_COALESCE_USE_CQE_MODE_RX        = 0x19\n\tETHTOOL_A_COALESCE_MAX                    = 0x1c\n\tETHTOOL_A_PAUSE_UNSPEC                    = 0x0\n\tETHTOOL_A_PAUSE_HEADER                    = 0x1\n\tETHTOOL_A_PAUSE_AUTONEG                   = 0x2\n\tETHTOOL_A_PAUSE_RX                        = 0x3\n\tETHTOOL_A_PAUSE_TX                        = 0x4\n\tETHTOOL_A_PAUSE_STATS                     = 0x5\n\tETHTOOL_A_PAUSE_MAX                       = 0x6\n\tETHTOOL_A_PAUSE_STAT_UNSPEC               = 0x0\n\tETHTOOL_A_PAUSE_STAT_PAD                  = 0x1\n\tETHTOOL_A_PAUSE_STAT_TX_FRAMES            = 0x2\n\tETHTOOL_A_PAUSE_STAT_RX_FRAMES            = 0x3\n\tETHTOOL_A_PAUSE_STAT_MAX                  = 0x3\n\tETHTOOL_A_EEE_UNSPEC                      = 0x0\n\tETHTOOL_A_EEE_HEADER                      = 0x1\n\tETHTOOL_A_EEE_MODES_OURS                  = 0x2\n\tETHTOOL_A_EEE_MODES_PEER                  = 0x3\n\tETHTOOL_A_EEE_ACTIVE                      = 0x4\n\tETHTOOL_A_EEE_ENABLED                     = 0x5\n\tETHTOOL_A_EEE_TX_LPI_ENABLED              = 0x6\n\tETHTOOL_A_EEE_TX_LPI_TIMER                = 0x7\n\tETHTOOL_A_EEE_MAX                         = 0x7\n\tETHTOOL_A_TSINFO_UNSPEC                   = 0x0\n\tETHTOOL_A_TSINFO_HEADER                   = 0x1\n\tETHTOOL_A_TSINFO_TIMESTAMPING             = 0x2\n\tETHTOOL_A_TSINFO_TX_TYPES                 = 0x3\n\tETHTOOL_A_TSINFO_RX_FILTERS               = 0x4\n\tETHTOOL_A_TSINFO_PHC_INDEX                = 0x5\n\tETHTOOL_A_TSINFO_MAX                      = 0x6\n\tETHTOOL_A_CABLE_TEST_UNSPEC               = 0x0\n\tETHTOOL_A_CABLE_TEST_HEADER               = 0x1\n\tETHTOOL_A_CABLE_TEST_MAX                  = 0x1\n\tETHTOOL_A_CABLE_RESULT_CODE_UNSPEC        = 0x0\n\tETHTOOL_A_CABLE_RESULT_CODE_OK            = 0x1\n\tETHTOOL_A_CABLE_RESULT_CODE_OPEN          = 0x2\n\tETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT    = 0x3\n\tETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT   = 0x4\n\tETHTOOL_A_CABLE_PAIR_A                    = 0x0\n\tETHTOOL_A_CABLE_PAIR_B                    = 0x1\n\tETHTOOL_A_CABLE_PAIR_C                    = 0x2\n\tETHTOOL_A_CABLE_PAIR_D                    = 0x3\n\tETHTOOL_A_CABLE_RESULT_UNSPEC             = 0x0\n\tETHTOOL_A_CABLE_RESULT_PAIR               = 0x1\n\tETHTOOL_A_CABLE_RESULT_CODE               = 0x2\n\tETHTOOL_A_CABLE_RESULT_MAX                = 0x2\n\tETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC       = 0x0\n\tETHTOOL_A_CABLE_FAULT_LENGTH_PAIR         = 0x1\n\tETHTOOL_A_CABLE_FAULT_LENGTH_CM           = 0x2\n\tETHTOOL_A_CABLE_FAULT_LENGTH_MAX          = 0x2\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC    = 0x0\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED   = 0x1\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 0x2\n\tETHTOOL_A_CABLE_NEST_UNSPEC               = 0x0\n\tETHTOOL_A_CABLE_NEST_RESULT               = 0x1\n\tETHTOOL_A_CABLE_NEST_FAULT_LENGTH         = 0x2\n\tETHTOOL_A_CABLE_NEST_MAX                  = 0x2\n\tETHTOOL_A_CABLE_TEST_NTF_UNSPEC           = 0x0\n\tETHTOOL_A_CABLE_TEST_NTF_HEADER           = 0x1\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS           = 0x2\n\tETHTOOL_A_CABLE_TEST_NTF_NEST             = 0x3\n\tETHTOOL_A_CABLE_TEST_NTF_MAX              = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC       = 0x0\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST        = 0x1\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_LAST         = 0x2\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_STEP         = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR         = 0x4\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_MAX          = 0x4\n\tETHTOOL_A_CABLE_TEST_TDR_UNSPEC           = 0x0\n\tETHTOOL_A_CABLE_TEST_TDR_HEADER           = 0x1\n\tETHTOOL_A_CABLE_TEST_TDR_CFG              = 0x2\n\tETHTOOL_A_CABLE_TEST_TDR_MAX              = 0x2\n\tETHTOOL_A_CABLE_AMPLITUDE_UNSPEC          = 0x0\n\tETHTOOL_A_CABLE_AMPLITUDE_PAIR            = 0x1\n\tETHTOOL_A_CABLE_AMPLITUDE_mV              = 0x2\n\tETHTOOL_A_CABLE_AMPLITUDE_MAX             = 0x2\n\tETHTOOL_A_CABLE_PULSE_UNSPEC              = 0x0\n\tETHTOOL_A_CABLE_PULSE_mV                  = 0x1\n\tETHTOOL_A_CABLE_PULSE_MAX                 = 0x1\n\tETHTOOL_A_CABLE_STEP_UNSPEC               = 0x0\n\tETHTOOL_A_CABLE_STEP_FIRST_DISTANCE       = 0x1\n\tETHTOOL_A_CABLE_STEP_LAST_DISTANCE        = 0x2\n\tETHTOOL_A_CABLE_STEP_STEP_DISTANCE        = 0x3\n\tETHTOOL_A_CABLE_STEP_MAX                  = 0x3\n\tETHTOOL_A_CABLE_TDR_NEST_UNSPEC           = 0x0\n\tETHTOOL_A_CABLE_TDR_NEST_STEP             = 0x1\n\tETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE        = 0x2\n\tETHTOOL_A_CABLE_TDR_NEST_PULSE            = 0x3\n\tETHTOOL_A_CABLE_TDR_NEST_MAX              = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC       = 0x0\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER       = 0x1\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS       = 0x2\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_NEST         = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_MAX          = 0x3\n\tETHTOOL_UDP_TUNNEL_TYPE_VXLAN             = 0x0\n\tETHTOOL_UDP_TUNNEL_TYPE_GENEVE            = 0x1\n\tETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE         = 0x2\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC         = 0x0\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_PORT           = 0x1\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE           = 0x2\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_MAX            = 0x2\n\tETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC         = 0x0\n\tETHTOOL_A_TUNNEL_UDP_TABLE_SIZE           = 0x1\n\tETHTOOL_A_TUNNEL_UDP_TABLE_TYPES          = 0x2\n\tETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY          = 0x3\n\tETHTOOL_A_TUNNEL_UDP_TABLE_MAX            = 0x3\n\tETHTOOL_A_TUNNEL_UDP_UNSPEC               = 0x0\n\tETHTOOL_A_TUNNEL_UDP_TABLE                = 0x1\n\tETHTOOL_A_TUNNEL_UDP_MAX                  = 0x1\n\tETHTOOL_A_TUNNEL_INFO_UNSPEC              = 0x0\n\tETHTOOL_A_TUNNEL_INFO_HEADER              = 0x1\n\tETHTOOL_A_TUNNEL_INFO_UDP_PORTS           = 0x2\n\tETHTOOL_A_TUNNEL_INFO_MAX                 = 0x2\n)\n\nconst SPEED_UNKNOWN = -0x1\n\ntype EthtoolDrvinfo struct {\n\tCmd          uint32\n\tDriver       [32]byte\n\tVersion      [32]byte\n\tFw_version   [32]byte\n\tBus_info     [32]byte\n\tErom_version [32]byte\n\tReserved2    [12]byte\n\tN_priv_flags uint32\n\tN_stats      uint32\n\tTestinfo_len uint32\n\tEedump_len   uint32\n\tRegdump_len  uint32\n}\n\ntype (\n\tHIDRawReportDescriptor struct {\n\t\tSize  uint32\n\t\tValue [4096]uint8\n\t}\n\tHIDRawDevInfo struct {\n\t\tBustype uint32\n\t\tVendor  int16\n\t\tProduct int16\n\t}\n)\n\nconst (\n\tCLOSE_RANGE_UNSHARE = 0x2\n\tCLOSE_RANGE_CLOEXEC = 0x4\n)\n\nconst (\n\tNLMSGERR_ATTR_MSG    = 0x1\n\tNLMSGERR_ATTR_OFFS   = 0x2\n\tNLMSGERR_ATTR_COOKIE = 0x3\n)\n\ntype (\n\tEraseInfo struct {\n\t\tStart  uint32\n\t\tLength uint32\n\t}\n\tEraseInfo64 struct {\n\t\tStart  uint64\n\t\tLength uint64\n\t}\n\tMtdOobBuf struct {\n\t\tStart  uint32\n\t\tLength uint32\n\t\tPtr    *uint8\n\t}\n\tMtdOobBuf64 struct {\n\t\tStart  uint64\n\t\tPad    uint32\n\t\tLength uint32\n\t\tPtr    uint64\n\t}\n\tMtdWriteReq struct {\n\t\tStart  uint64\n\t\tLen    uint64\n\t\tOoblen uint64\n\t\tData   uint64\n\t\tOob    uint64\n\t\tMode   uint8\n\t\t_      [7]uint8\n\t}\n\tMtdInfo struct {\n\t\tType      uint8\n\t\tFlags     uint32\n\t\tSize      uint32\n\t\tErasesize uint32\n\t\tWritesize uint32\n\t\tOobsize   uint32\n\t\t_         uint64\n\t}\n\tRegionInfo struct {\n\t\tOffset      uint32\n\t\tErasesize   uint32\n\t\tNumblocks   uint32\n\t\tRegionindex uint32\n\t}\n\tOtpInfo struct {\n\t\tStart  uint32\n\t\tLength uint32\n\t\tLocked uint32\n\t}\n\tNandOobinfo struct {\n\t\tUseecc   uint32\n\t\tEccbytes uint32\n\t\tOobfree  [8][2]uint32\n\t\tEccpos   [32]uint32\n\t}\n\tNandOobfree struct {\n\t\tOffset uint32\n\t\tLength uint32\n\t}\n\tNandEcclayout struct {\n\t\tEccbytes uint32\n\t\tEccpos   [64]uint32\n\t\tOobavail uint32\n\t\tOobfree  [8]NandOobfree\n\t}\n\tMtdEccStats struct {\n\t\tCorrected uint32\n\t\tFailed    uint32\n\t\tBadblocks uint32\n\t\tBbtblocks uint32\n\t}\n)\n\nconst (\n\tMTD_OPS_PLACE_OOB = 0x0\n\tMTD_OPS_AUTO_OOB  = 0x1\n\tMTD_OPS_RAW       = 0x2\n)\n\nconst (\n\tMTD_FILE_MODE_NORMAL      = 0x0\n\tMTD_FILE_MODE_OTP_FACTORY = 0x1\n\tMTD_FILE_MODE_OTP_USER    = 0x2\n\tMTD_FILE_MODE_RAW         = 0x3\n)\n\nconst (\n\tNFC_CMD_UNSPEC                    = 0x0\n\tNFC_CMD_GET_DEVICE                = 0x1\n\tNFC_CMD_DEV_UP                    = 0x2\n\tNFC_CMD_DEV_DOWN                  = 0x3\n\tNFC_CMD_DEP_LINK_UP               = 0x4\n\tNFC_CMD_DEP_LINK_DOWN             = 0x5\n\tNFC_CMD_START_POLL                = 0x6\n\tNFC_CMD_STOP_POLL                 = 0x7\n\tNFC_CMD_GET_TARGET                = 0x8\n\tNFC_EVENT_TARGETS_FOUND           = 0x9\n\tNFC_EVENT_DEVICE_ADDED            = 0xa\n\tNFC_EVENT_DEVICE_REMOVED          = 0xb\n\tNFC_EVENT_TARGET_LOST             = 0xc\n\tNFC_EVENT_TM_ACTIVATED            = 0xd\n\tNFC_EVENT_TM_DEACTIVATED          = 0xe\n\tNFC_CMD_LLC_GET_PARAMS            = 0xf\n\tNFC_CMD_LLC_SET_PARAMS            = 0x10\n\tNFC_CMD_ENABLE_SE                 = 0x11\n\tNFC_CMD_DISABLE_SE                = 0x12\n\tNFC_CMD_LLC_SDREQ                 = 0x13\n\tNFC_EVENT_LLC_SDRES               = 0x14\n\tNFC_CMD_FW_DOWNLOAD               = 0x15\n\tNFC_EVENT_SE_ADDED                = 0x16\n\tNFC_EVENT_SE_REMOVED              = 0x17\n\tNFC_EVENT_SE_CONNECTIVITY         = 0x18\n\tNFC_EVENT_SE_TRANSACTION          = 0x19\n\tNFC_CMD_GET_SE                    = 0x1a\n\tNFC_CMD_SE_IO                     = 0x1b\n\tNFC_CMD_ACTIVATE_TARGET           = 0x1c\n\tNFC_CMD_VENDOR                    = 0x1d\n\tNFC_CMD_DEACTIVATE_TARGET         = 0x1e\n\tNFC_ATTR_UNSPEC                   = 0x0\n\tNFC_ATTR_DEVICE_INDEX             = 0x1\n\tNFC_ATTR_DEVICE_NAME              = 0x2\n\tNFC_ATTR_PROTOCOLS                = 0x3\n\tNFC_ATTR_TARGET_INDEX             = 0x4\n\tNFC_ATTR_TARGET_SENS_RES          = 0x5\n\tNFC_ATTR_TARGET_SEL_RES           = 0x6\n\tNFC_ATTR_TARGET_NFCID1            = 0x7\n\tNFC_ATTR_TARGET_SENSB_RES         = 0x8\n\tNFC_ATTR_TARGET_SENSF_RES         = 0x9\n\tNFC_ATTR_COMM_MODE                = 0xa\n\tNFC_ATTR_RF_MODE                  = 0xb\n\tNFC_ATTR_DEVICE_POWERED           = 0xc\n\tNFC_ATTR_IM_PROTOCOLS             = 0xd\n\tNFC_ATTR_TM_PROTOCOLS             = 0xe\n\tNFC_ATTR_LLC_PARAM_LTO            = 0xf\n\tNFC_ATTR_LLC_PARAM_RW             = 0x10\n\tNFC_ATTR_LLC_PARAM_MIUX           = 0x11\n\tNFC_ATTR_SE                       = 0x12\n\tNFC_ATTR_LLC_SDP                  = 0x13\n\tNFC_ATTR_FIRMWARE_NAME            = 0x14\n\tNFC_ATTR_SE_INDEX                 = 0x15\n\tNFC_ATTR_SE_TYPE                  = 0x16\n\tNFC_ATTR_SE_AID                   = 0x17\n\tNFC_ATTR_FIRMWARE_DOWNLOAD_STATUS = 0x18\n\tNFC_ATTR_SE_APDU                  = 0x19\n\tNFC_ATTR_TARGET_ISO15693_DSFID    = 0x1a\n\tNFC_ATTR_TARGET_ISO15693_UID      = 0x1b\n\tNFC_ATTR_SE_PARAMS                = 0x1c\n\tNFC_ATTR_VENDOR_ID                = 0x1d\n\tNFC_ATTR_VENDOR_SUBCMD            = 0x1e\n\tNFC_ATTR_VENDOR_DATA              = 0x1f\n\tNFC_SDP_ATTR_UNSPEC               = 0x0\n\tNFC_SDP_ATTR_URI                  = 0x1\n\tNFC_SDP_ATTR_SAP                  = 0x2\n)\n\ntype LandlockRulesetAttr struct {\n\tAccess_fs  uint64\n\tAccess_net uint64\n}\n\ntype LandlockPathBeneathAttr struct {\n\tAllowed_access uint64\n\tParent_fd      int32\n}\n\nconst (\n\tLANDLOCK_RULE_PATH_BENEATH = 0x1\n)\n\nconst (\n\tIPC_CREAT   = 0x200\n\tIPC_EXCL    = 0x400\n\tIPC_NOWAIT  = 0x800\n\tIPC_PRIVATE = 0x0\n\n\tipc_64 = 0x100\n)\n\nconst (\n\tIPC_RMID = 0x0\n\tIPC_SET  = 0x1\n\tIPC_STAT = 0x2\n)\n\nconst (\n\tSHM_RDONLY = 0x1000\n\tSHM_RND    = 0x2000\n)\n\ntype MountAttr struct {\n\tAttr_set    uint64\n\tAttr_clr    uint64\n\tPropagation uint64\n\tUserns_fd   uint64\n}\n\nconst (\n\tWG_CMD_GET_DEVICE                      = 0x0\n\tWG_CMD_SET_DEVICE                      = 0x1\n\tWGDEVICE_F_REPLACE_PEERS               = 0x1\n\tWGDEVICE_A_UNSPEC                      = 0x0\n\tWGDEVICE_A_IFINDEX                     = 0x1\n\tWGDEVICE_A_IFNAME                      = 0x2\n\tWGDEVICE_A_PRIVATE_KEY                 = 0x3\n\tWGDEVICE_A_PUBLIC_KEY                  = 0x4\n\tWGDEVICE_A_FLAGS                       = 0x5\n\tWGDEVICE_A_LISTEN_PORT                 = 0x6\n\tWGDEVICE_A_FWMARK                      = 0x7\n\tWGDEVICE_A_PEERS                       = 0x8\n\tWGPEER_F_REMOVE_ME                     = 0x1\n\tWGPEER_F_REPLACE_ALLOWEDIPS            = 0x2\n\tWGPEER_F_UPDATE_ONLY                   = 0x4\n\tWGPEER_A_UNSPEC                        = 0x0\n\tWGPEER_A_PUBLIC_KEY                    = 0x1\n\tWGPEER_A_PRESHARED_KEY                 = 0x2\n\tWGPEER_A_FLAGS                         = 0x3\n\tWGPEER_A_ENDPOINT                      = 0x4\n\tWGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL = 0x5\n\tWGPEER_A_LAST_HANDSHAKE_TIME           = 0x6\n\tWGPEER_A_RX_BYTES                      = 0x7\n\tWGPEER_A_TX_BYTES                      = 0x8\n\tWGPEER_A_ALLOWEDIPS                    = 0x9\n\tWGPEER_A_PROTOCOL_VERSION              = 0xa\n\tWGALLOWEDIP_A_UNSPEC                   = 0x0\n\tWGALLOWEDIP_A_FAMILY                   = 0x1\n\tWGALLOWEDIP_A_IPADDR                   = 0x2\n\tWGALLOWEDIP_A_CIDR_MASK                = 0x3\n)\n\nconst (\n\tNL_ATTR_TYPE_INVALID      = 0x0\n\tNL_ATTR_TYPE_FLAG         = 0x1\n\tNL_ATTR_TYPE_U8           = 0x2\n\tNL_ATTR_TYPE_U16          = 0x3\n\tNL_ATTR_TYPE_U32          = 0x4\n\tNL_ATTR_TYPE_U64          = 0x5\n\tNL_ATTR_TYPE_S8           = 0x6\n\tNL_ATTR_TYPE_S16          = 0x7\n\tNL_ATTR_TYPE_S32          = 0x8\n\tNL_ATTR_TYPE_S64          = 0x9\n\tNL_ATTR_TYPE_BINARY       = 0xa\n\tNL_ATTR_TYPE_STRING       = 0xb\n\tNL_ATTR_TYPE_NUL_STRING   = 0xc\n\tNL_ATTR_TYPE_NESTED       = 0xd\n\tNL_ATTR_TYPE_NESTED_ARRAY = 0xe\n\tNL_ATTR_TYPE_BITFIELD32   = 0xf\n\n\tNL_POLICY_TYPE_ATTR_UNSPEC          = 0x0\n\tNL_POLICY_TYPE_ATTR_TYPE            = 0x1\n\tNL_POLICY_TYPE_ATTR_MIN_VALUE_S     = 0x2\n\tNL_POLICY_TYPE_ATTR_MAX_VALUE_S     = 0x3\n\tNL_POLICY_TYPE_ATTR_MIN_VALUE_U     = 0x4\n\tNL_POLICY_TYPE_ATTR_MAX_VALUE_U     = 0x5\n\tNL_POLICY_TYPE_ATTR_MIN_LENGTH      = 0x6\n\tNL_POLICY_TYPE_ATTR_MAX_LENGTH      = 0x7\n\tNL_POLICY_TYPE_ATTR_POLICY_IDX      = 0x8\n\tNL_POLICY_TYPE_ATTR_POLICY_MAXTYPE  = 0x9\n\tNL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 0xa\n\tNL_POLICY_TYPE_ATTR_PAD             = 0xb\n\tNL_POLICY_TYPE_ATTR_MASK            = 0xc\n\tNL_POLICY_TYPE_ATTR_MAX             = 0xc\n)\n\ntype CANBitTiming struct {\n\tBitrate      uint32\n\tSample_point uint32\n\tTq           uint32\n\tProp_seg     uint32\n\tPhase_seg1   uint32\n\tPhase_seg2   uint32\n\tSjw          uint32\n\tBrp          uint32\n}\n\ntype CANBitTimingConst struct {\n\tName      [16]uint8\n\tTseg1_min uint32\n\tTseg1_max uint32\n\tTseg2_min uint32\n\tTseg2_max uint32\n\tSjw_max   uint32\n\tBrp_min   uint32\n\tBrp_max   uint32\n\tBrp_inc   uint32\n}\n\ntype CANClock struct {\n\tFreq uint32\n}\n\ntype CANBusErrorCounters struct {\n\tTxerr uint16\n\tRxerr uint16\n}\n\ntype CANCtrlMode struct {\n\tMask  uint32\n\tFlags uint32\n}\n\ntype CANDeviceStats struct {\n\tBus_error        uint32\n\tError_warning    uint32\n\tError_passive    uint32\n\tBus_off          uint32\n\tArbitration_lost uint32\n\tRestarts         uint32\n}\n\nconst (\n\tCAN_STATE_ERROR_ACTIVE  = 0x0\n\tCAN_STATE_ERROR_WARNING = 0x1\n\tCAN_STATE_ERROR_PASSIVE = 0x2\n\tCAN_STATE_BUS_OFF       = 0x3\n\tCAN_STATE_STOPPED       = 0x4\n\tCAN_STATE_SLEEPING      = 0x5\n\tCAN_STATE_MAX           = 0x6\n)\n\nconst (\n\tIFLA_CAN_UNSPEC               = 0x0\n\tIFLA_CAN_BITTIMING            = 0x1\n\tIFLA_CAN_BITTIMING_CONST      = 0x2\n\tIFLA_CAN_CLOCK                = 0x3\n\tIFLA_CAN_STATE                = 0x4\n\tIFLA_CAN_CTRLMODE             = 0x5\n\tIFLA_CAN_RESTART_MS           = 0x6\n\tIFLA_CAN_RESTART              = 0x7\n\tIFLA_CAN_BERR_COUNTER         = 0x8\n\tIFLA_CAN_DATA_BITTIMING       = 0x9\n\tIFLA_CAN_DATA_BITTIMING_CONST = 0xa\n\tIFLA_CAN_TERMINATION          = 0xb\n\tIFLA_CAN_TERMINATION_CONST    = 0xc\n\tIFLA_CAN_BITRATE_CONST        = 0xd\n\tIFLA_CAN_DATA_BITRATE_CONST   = 0xe\n\tIFLA_CAN_BITRATE_MAX          = 0xf\n)\n\ntype KCMAttach struct {\n\tFd     int32\n\tBpf_fd int32\n}\n\ntype KCMUnattach struct {\n\tFd int32\n}\n\ntype KCMClone struct {\n\tFd int32\n}\n\nconst (\n\tNL80211_AC_BE                                           = 0x2\n\tNL80211_AC_BK                                           = 0x3\n\tNL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED                 = 0x0\n\tNL80211_ACL_POLICY_DENY_UNLESS_LISTED                   = 0x1\n\tNL80211_AC_VI                                           = 0x1\n\tNL80211_AC_VO                                           = 0x0\n\tNL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT               = 0x1\n\tNL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT            = 0x2\n\tNL80211_AP_SME_SA_QUERY_OFFLOAD                         = 0x1\n\tNL80211_ATTR_4ADDR                                      = 0x53\n\tNL80211_ATTR_ACK                                        = 0x5c\n\tNL80211_ATTR_ACK_SIGNAL                                 = 0x107\n\tNL80211_ATTR_ACL_POLICY                                 = 0xa5\n\tNL80211_ATTR_ADMITTED_TIME                              = 0xd4\n\tNL80211_ATTR_AIRTIME_WEIGHT                             = 0x112\n\tNL80211_ATTR_AKM_SUITES                                 = 0x4c\n\tNL80211_ATTR_AP_ISOLATE                                 = 0x60\n\tNL80211_ATTR_AP_SETTINGS_FLAGS                          = 0x135\n\tNL80211_ATTR_AUTH_DATA                                  = 0x9c\n\tNL80211_ATTR_AUTH_TYPE                                  = 0x35\n\tNL80211_ATTR_BANDS                                      = 0xef\n\tNL80211_ATTR_BEACON_HEAD                                = 0xe\n\tNL80211_ATTR_BEACON_INTERVAL                            = 0xc\n\tNL80211_ATTR_BEACON_TAIL                                = 0xf\n\tNL80211_ATTR_BG_SCAN_PERIOD                             = 0x98\n\tNL80211_ATTR_BSS_BASIC_RATES                            = 0x24\n\tNL80211_ATTR_BSS                                        = 0x2f\n\tNL80211_ATTR_BSS_CTS_PROT                               = 0x1c\n\tNL80211_ATTR_BSS_HT_OPMODE                              = 0x6d\n\tNL80211_ATTR_BSSID                                      = 0xf5\n\tNL80211_ATTR_BSS_SELECT                                 = 0xe3\n\tNL80211_ATTR_BSS_SHORT_PREAMBLE                         = 0x1d\n\tNL80211_ATTR_BSS_SHORT_SLOT_TIME                        = 0x1e\n\tNL80211_ATTR_CENTER_FREQ1                               = 0xa0\n\tNL80211_ATTR_CENTER_FREQ1_OFFSET                        = 0x123\n\tNL80211_ATTR_CENTER_FREQ2                               = 0xa1\n\tNL80211_ATTR_CHANNEL_WIDTH                              = 0x9f\n\tNL80211_ATTR_CH_SWITCH_BLOCK_TX                         = 0xb8\n\tNL80211_ATTR_CH_SWITCH_COUNT                            = 0xb7\n\tNL80211_ATTR_CIPHER_SUITE_GROUP                         = 0x4a\n\tNL80211_ATTR_CIPHER_SUITES                              = 0x39\n\tNL80211_ATTR_CIPHER_SUITES_PAIRWISE                     = 0x49\n\tNL80211_ATTR_CNTDWN_OFFS_BEACON                         = 0xba\n\tNL80211_ATTR_CNTDWN_OFFS_PRESP                          = 0xbb\n\tNL80211_ATTR_COALESCE_RULE                              = 0xb6\n\tNL80211_ATTR_COALESCE_RULE_CONDITION                    = 0x2\n\tNL80211_ATTR_COALESCE_RULE_DELAY                        = 0x1\n\tNL80211_ATTR_COALESCE_RULE_MAX                          = 0x3\n\tNL80211_ATTR_COALESCE_RULE_PKT_PATTERN                  = 0x3\n\tNL80211_ATTR_COLOR_CHANGE_COLOR                         = 0x130\n\tNL80211_ATTR_COLOR_CHANGE_COUNT                         = 0x12f\n\tNL80211_ATTR_COLOR_CHANGE_ELEMS                         = 0x131\n\tNL80211_ATTR_CONN_FAILED_REASON                         = 0x9b\n\tNL80211_ATTR_CONTROL_PORT                               = 0x44\n\tNL80211_ATTR_CONTROL_PORT_ETHERTYPE                     = 0x66\n\tNL80211_ATTR_CONTROL_PORT_NO_ENCRYPT                    = 0x67\n\tNL80211_ATTR_CONTROL_PORT_NO_PREAUTH                    = 0x11e\n\tNL80211_ATTR_CONTROL_PORT_OVER_NL80211                  = 0x108\n\tNL80211_ATTR_COOKIE                                     = 0x58\n\tNL80211_ATTR_CQM_BEACON_LOSS_EVENT                      = 0x8\n\tNL80211_ATTR_CQM                                        = 0x5e\n\tNL80211_ATTR_CQM_MAX                                    = 0x9\n\tNL80211_ATTR_CQM_PKT_LOSS_EVENT                         = 0x4\n\tNL80211_ATTR_CQM_RSSI_HYST                              = 0x2\n\tNL80211_ATTR_CQM_RSSI_LEVEL                             = 0x9\n\tNL80211_ATTR_CQM_RSSI_THOLD                             = 0x1\n\tNL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT                   = 0x3\n\tNL80211_ATTR_CQM_TXE_INTVL                              = 0x7\n\tNL80211_ATTR_CQM_TXE_PKTS                               = 0x6\n\tNL80211_ATTR_CQM_TXE_RATE                               = 0x5\n\tNL80211_ATTR_CRIT_PROT_ID                               = 0xb3\n\tNL80211_ATTR_CSA_C_OFF_BEACON                           = 0xba\n\tNL80211_ATTR_CSA_C_OFF_PRESP                            = 0xbb\n\tNL80211_ATTR_CSA_C_OFFSETS_TX                           = 0xcd\n\tNL80211_ATTR_CSA_IES                                    = 0xb9\n\tNL80211_ATTR_DEVICE_AP_SME                              = 0x8d\n\tNL80211_ATTR_DFS_CAC_TIME                               = 0x7\n\tNL80211_ATTR_DFS_REGION                                 = 0x92\n\tNL80211_ATTR_DISABLE_EHT                                = 0x137\n\tNL80211_ATTR_DISABLE_HE                                 = 0x12d\n\tNL80211_ATTR_DISABLE_HT                                 = 0x93\n\tNL80211_ATTR_DISABLE_VHT                                = 0xaf\n\tNL80211_ATTR_DISCONNECTED_BY_AP                         = 0x47\n\tNL80211_ATTR_DONT_WAIT_FOR_ACK                          = 0x8e\n\tNL80211_ATTR_DTIM_PERIOD                                = 0xd\n\tNL80211_ATTR_DURATION                                   = 0x57\n\tNL80211_ATTR_EHT_CAPABILITY                             = 0x136\n\tNL80211_ATTR_EML_CAPABILITY                             = 0x13d\n\tNL80211_ATTR_EXT_CAPA                                   = 0xa9\n\tNL80211_ATTR_EXT_CAPA_MASK                              = 0xaa\n\tNL80211_ATTR_EXTERNAL_AUTH_ACTION                       = 0x104\n\tNL80211_ATTR_EXTERNAL_AUTH_SUPPORT                      = 0x105\n\tNL80211_ATTR_EXT_FEATURES                               = 0xd9\n\tNL80211_ATTR_FEATURE_FLAGS                              = 0x8f\n\tNL80211_ATTR_FILS_CACHE_ID                              = 0xfd\n\tNL80211_ATTR_FILS_DISCOVERY                             = 0x126\n\tNL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM                      = 0xfb\n\tNL80211_ATTR_FILS_ERP_REALM                             = 0xfa\n\tNL80211_ATTR_FILS_ERP_RRK                               = 0xfc\n\tNL80211_ATTR_FILS_ERP_USERNAME                          = 0xf9\n\tNL80211_ATTR_FILS_KEK                                   = 0xf2\n\tNL80211_ATTR_FILS_NONCES                                = 0xf3\n\tNL80211_ATTR_FRAME                                      = 0x33\n\tNL80211_ATTR_FRAME_MATCH                                = 0x5b\n\tNL80211_ATTR_FRAME_TYPE                                 = 0x65\n\tNL80211_ATTR_FREQ_AFTER                                 = 0x3b\n\tNL80211_ATTR_FREQ_BEFORE                                = 0x3a\n\tNL80211_ATTR_FREQ_FIXED                                 = 0x3c\n\tNL80211_ATTR_FREQ_RANGE_END                             = 0x3\n\tNL80211_ATTR_FREQ_RANGE_MAX_BW                          = 0x4\n\tNL80211_ATTR_FREQ_RANGE_START                           = 0x2\n\tNL80211_ATTR_FTM_RESPONDER                              = 0x10e\n\tNL80211_ATTR_FTM_RESPONDER_STATS                        = 0x10f\n\tNL80211_ATTR_GENERATION                                 = 0x2e\n\tNL80211_ATTR_HANDLE_DFS                                 = 0xbf\n\tNL80211_ATTR_HE_6GHZ_CAPABILITY                         = 0x125\n\tNL80211_ATTR_HE_BSS_COLOR                               = 0x11b\n\tNL80211_ATTR_HE_CAPABILITY                              = 0x10d\n\tNL80211_ATTR_HE_OBSS_PD                                 = 0x117\n\tNL80211_ATTR_HIDDEN_SSID                                = 0x7e\n\tNL80211_ATTR_HT_CAPABILITY                              = 0x1f\n\tNL80211_ATTR_HT_CAPABILITY_MASK                         = 0x94\n\tNL80211_ATTR_IE_ASSOC_RESP                              = 0x80\n\tNL80211_ATTR_IE                                         = 0x2a\n\tNL80211_ATTR_IE_PROBE_RESP                              = 0x7f\n\tNL80211_ATTR_IE_RIC                                     = 0xb2\n\tNL80211_ATTR_IFACE_SOCKET_OWNER                         = 0xcc\n\tNL80211_ATTR_IFINDEX                                    = 0x3\n\tNL80211_ATTR_IFNAME                                     = 0x4\n\tNL80211_ATTR_IFTYPE_AKM_SUITES                          = 0x11c\n\tNL80211_ATTR_IFTYPE                                     = 0x5\n\tNL80211_ATTR_IFTYPE_EXT_CAPA                            = 0xe6\n\tNL80211_ATTR_INACTIVITY_TIMEOUT                         = 0x96\n\tNL80211_ATTR_INTERFACE_COMBINATIONS                     = 0x78\n\tNL80211_ATTR_KEY_CIPHER                                 = 0x9\n\tNL80211_ATTR_KEY                                        = 0x50\n\tNL80211_ATTR_KEY_DATA                                   = 0x7\n\tNL80211_ATTR_KEY_DEFAULT                                = 0xb\n\tNL80211_ATTR_KEY_DEFAULT_MGMT                           = 0x28\n\tNL80211_ATTR_KEY_DEFAULT_TYPES                          = 0x6e\n\tNL80211_ATTR_KEY_IDX                                    = 0x8\n\tNL80211_ATTR_KEYS                                       = 0x51\n\tNL80211_ATTR_KEY_SEQ                                    = 0xa\n\tNL80211_ATTR_KEY_TYPE                                   = 0x37\n\tNL80211_ATTR_LOCAL_MESH_POWER_MODE                      = 0xa4\n\tNL80211_ATTR_LOCAL_STATE_CHANGE                         = 0x5f\n\tNL80211_ATTR_MAC_ACL_MAX                                = 0xa7\n\tNL80211_ATTR_MAC_ADDRS                                  = 0xa6\n\tNL80211_ATTR_MAC                                        = 0x6\n\tNL80211_ATTR_MAC_HINT                                   = 0xc8\n\tNL80211_ATTR_MAC_MASK                                   = 0xd7\n\tNL80211_ATTR_MAX_AP_ASSOC_STA                           = 0xca\n\tNL80211_ATTR_MAX                                        = 0x14a\n\tNL80211_ATTR_MAX_CRIT_PROT_DURATION                     = 0xb4\n\tNL80211_ATTR_MAX_CSA_COUNTERS                           = 0xce\n\tNL80211_ATTR_MAX_MATCH_SETS                             = 0x85\n\tNL80211_ATTR_MAX_NUM_AKM_SUITES                         = 0x13c\n\tNL80211_ATTR_MAX_NUM_PMKIDS                             = 0x56\n\tNL80211_ATTR_MAX_NUM_SCAN_SSIDS                         = 0x2b\n\tNL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS                   = 0xde\n\tNL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS                   = 0x7b\n\tNL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION             = 0x6f\n\tNL80211_ATTR_MAX_SCAN_IE_LEN                            = 0x38\n\tNL80211_ATTR_MAX_SCAN_PLAN_INTERVAL                     = 0xdf\n\tNL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS                   = 0xe0\n\tNL80211_ATTR_MAX_SCHED_SCAN_IE_LEN                      = 0x7c\n\tNL80211_ATTR_MBSSID_CONFIG                              = 0x132\n\tNL80211_ATTR_MBSSID_ELEMS                               = 0x133\n\tNL80211_ATTR_MCAST_RATE                                 = 0x6b\n\tNL80211_ATTR_MDID                                       = 0xb1\n\tNL80211_ATTR_MEASUREMENT_DURATION                       = 0xeb\n\tNL80211_ATTR_MEASUREMENT_DURATION_MANDATORY             = 0xec\n\tNL80211_ATTR_MESH_CONFIG                                = 0x23\n\tNL80211_ATTR_MESH_ID                                    = 0x18\n\tNL80211_ATTR_MESH_PEER_AID                              = 0xed\n\tNL80211_ATTR_MESH_SETUP                                 = 0x70\n\tNL80211_ATTR_MGMT_SUBTYPE                               = 0x29\n\tNL80211_ATTR_MLD_ADDR                                   = 0x13a\n\tNL80211_ATTR_MLD_CAPA_AND_OPS                           = 0x13e\n\tNL80211_ATTR_MLO_LINK_ID                                = 0x139\n\tNL80211_ATTR_MLO_LINKS                                  = 0x138\n\tNL80211_ATTR_MLO_SUPPORT                                = 0x13b\n\tNL80211_ATTR_MNTR_FLAGS                                 = 0x17\n\tNL80211_ATTR_MPATH_INFO                                 = 0x1b\n\tNL80211_ATTR_MPATH_NEXT_HOP                             = 0x1a\n\tNL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED               = 0xf4\n\tNL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR                    = 0xe8\n\tNL80211_ATTR_MU_MIMO_GROUP_DATA                         = 0xe7\n\tNL80211_ATTR_NAN_FUNC                                   = 0xf0\n\tNL80211_ATTR_NAN_MASTER_PREF                            = 0xee\n\tNL80211_ATTR_NAN_MATCH                                  = 0xf1\n\tNL80211_ATTR_NETNS_FD                                   = 0xdb\n\tNL80211_ATTR_NOACK_MAP                                  = 0x95\n\tNL80211_ATTR_NSS                                        = 0x106\n\tNL80211_ATTR_OBSS_COLOR_BITMAP                          = 0x12e\n\tNL80211_ATTR_OFFCHANNEL_TX_OK                           = 0x6c\n\tNL80211_ATTR_OPER_CLASS                                 = 0xd6\n\tNL80211_ATTR_OPMODE_NOTIF                               = 0xc2\n\tNL80211_ATTR_P2P_CTWINDOW                               = 0xa2\n\tNL80211_ATTR_P2P_OPPPS                                  = 0xa3\n\tNL80211_ATTR_PAD                                        = 0xe5\n\tNL80211_ATTR_PBSS                                       = 0xe2\n\tNL80211_ATTR_PEER_AID                                   = 0xb5\n\tNL80211_ATTR_PEER_MEASUREMENTS                          = 0x111\n\tNL80211_ATTR_PID                                        = 0x52\n\tNL80211_ATTR_PMK                                        = 0xfe\n\tNL80211_ATTR_PMKID                                      = 0x55\n\tNL80211_ATTR_PMK_LIFETIME                               = 0x11f\n\tNL80211_ATTR_PMKR0_NAME                                 = 0x102\n\tNL80211_ATTR_PMK_REAUTH_THRESHOLD                       = 0x120\n\tNL80211_ATTR_PMKSA_CANDIDATE                            = 0x86\n\tNL80211_ATTR_PORT_AUTHORIZED                            = 0x103\n\tNL80211_ATTR_POWER_RULE_MAX_ANT_GAIN                    = 0x5\n\tNL80211_ATTR_POWER_RULE_MAX_EIRP                        = 0x6\n\tNL80211_ATTR_PREV_BSSID                                 = 0x4f\n\tNL80211_ATTR_PRIVACY                                    = 0x46\n\tNL80211_ATTR_PROBE_RESP                                 = 0x91\n\tNL80211_ATTR_PROBE_RESP_OFFLOAD                         = 0x90\n\tNL80211_ATTR_PROTOCOL_FEATURES                          = 0xad\n\tNL80211_ATTR_PS_STATE                                   = 0x5d\n\tNL80211_ATTR_QOS_MAP                                    = 0xc7\n\tNL80211_ATTR_RADAR_BACKGROUND                           = 0x134\n\tNL80211_ATTR_RADAR_EVENT                                = 0xa8\n\tNL80211_ATTR_REASON_CODE                                = 0x36\n\tNL80211_ATTR_RECEIVE_MULTICAST                          = 0x121\n\tNL80211_ATTR_RECONNECT_REQUESTED                        = 0x12b\n\tNL80211_ATTR_REG_ALPHA2                                 = 0x21\n\tNL80211_ATTR_REG_INDOOR                                 = 0xdd\n\tNL80211_ATTR_REG_INITIATOR                              = 0x30\n\tNL80211_ATTR_REG_RULE_FLAGS                             = 0x1\n\tNL80211_ATTR_REG_RULES                                  = 0x22\n\tNL80211_ATTR_REG_TYPE                                   = 0x31\n\tNL80211_ATTR_REKEY_DATA                                 = 0x7a\n\tNL80211_ATTR_REQ_IE                                     = 0x4d\n\tNL80211_ATTR_RESP_IE                                    = 0x4e\n\tNL80211_ATTR_ROAM_SUPPORT                               = 0x83\n\tNL80211_ATTR_RX_FRAME_TYPES                             = 0x64\n\tNL80211_ATTR_RX_HW_TIMESTAMP                            = 0x140\n\tNL80211_ATTR_RXMGMT_FLAGS                               = 0xbc\n\tNL80211_ATTR_RX_SIGNAL_DBM                              = 0x97\n\tNL80211_ATTR_S1G_CAPABILITY                             = 0x128\n\tNL80211_ATTR_S1G_CAPABILITY_MASK                        = 0x129\n\tNL80211_ATTR_SAE_DATA                                   = 0x9c\n\tNL80211_ATTR_SAE_PASSWORD                               = 0x115\n\tNL80211_ATTR_SAE_PWE                                    = 0x12a\n\tNL80211_ATTR_SAR_SPEC                                   = 0x12c\n\tNL80211_ATTR_SCAN_FLAGS                                 = 0x9e\n\tNL80211_ATTR_SCAN_FREQ_KHZ                              = 0x124\n\tNL80211_ATTR_SCAN_FREQUENCIES                           = 0x2c\n\tNL80211_ATTR_SCAN_GENERATION                            = 0x2e\n\tNL80211_ATTR_SCAN_SSIDS                                 = 0x2d\n\tNL80211_ATTR_SCAN_START_TIME_TSF_BSSID                  = 0xea\n\tNL80211_ATTR_SCAN_START_TIME_TSF                        = 0xe9\n\tNL80211_ATTR_SCAN_SUPP_RATES                            = 0x7d\n\tNL80211_ATTR_SCHED_SCAN_DELAY                           = 0xdc\n\tNL80211_ATTR_SCHED_SCAN_INTERVAL                        = 0x77\n\tNL80211_ATTR_SCHED_SCAN_MATCH                           = 0x84\n\tNL80211_ATTR_SCHED_SCAN_MATCH_SSID                      = 0x1\n\tNL80211_ATTR_SCHED_SCAN_MAX_REQS                        = 0x100\n\tNL80211_ATTR_SCHED_SCAN_MULTI                           = 0xff\n\tNL80211_ATTR_SCHED_SCAN_PLANS                           = 0xe1\n\tNL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI                   = 0xf6\n\tNL80211_ATTR_SCHED_SCAN_RSSI_ADJUST                     = 0xf7\n\tNL80211_ATTR_SMPS_MODE                                  = 0xd5\n\tNL80211_ATTR_SOCKET_OWNER                               = 0xcc\n\tNL80211_ATTR_SOFTWARE_IFTYPES                           = 0x79\n\tNL80211_ATTR_SPLIT_WIPHY_DUMP                           = 0xae\n\tNL80211_ATTR_SSID                                       = 0x34\n\tNL80211_ATTR_STA_AID                                    = 0x10\n\tNL80211_ATTR_STA_CAPABILITY                             = 0xab\n\tNL80211_ATTR_STA_EXT_CAPABILITY                         = 0xac\n\tNL80211_ATTR_STA_FLAGS2                                 = 0x43\n\tNL80211_ATTR_STA_FLAGS                                  = 0x11\n\tNL80211_ATTR_STA_INFO                                   = 0x15\n\tNL80211_ATTR_STA_LISTEN_INTERVAL                        = 0x12\n\tNL80211_ATTR_STA_PLINK_ACTION                           = 0x19\n\tNL80211_ATTR_STA_PLINK_STATE                            = 0x74\n\tNL80211_ATTR_STA_SUPPORTED_CHANNELS                     = 0xbd\n\tNL80211_ATTR_STA_SUPPORTED_OPER_CLASSES                 = 0xbe\n\tNL80211_ATTR_STA_SUPPORTED_RATES                        = 0x13\n\tNL80211_ATTR_STA_SUPPORT_P2P_PS                         = 0xe4\n\tNL80211_ATTR_STATUS_CODE                                = 0x48\n\tNL80211_ATTR_STA_TX_POWER                               = 0x114\n\tNL80211_ATTR_STA_TX_POWER_SETTING                       = 0x113\n\tNL80211_ATTR_STA_VLAN                                   = 0x14\n\tNL80211_ATTR_STA_WME                                    = 0x81\n\tNL80211_ATTR_SUPPORT_10_MHZ                             = 0xc1\n\tNL80211_ATTR_SUPPORT_5_MHZ                              = 0xc0\n\tNL80211_ATTR_SUPPORT_AP_UAPSD                           = 0x82\n\tNL80211_ATTR_SUPPORTED_COMMANDS                         = 0x32\n\tNL80211_ATTR_SUPPORTED_IFTYPES                          = 0x20\n\tNL80211_ATTR_SUPPORT_IBSS_RSN                           = 0x68\n\tNL80211_ATTR_SUPPORT_MESH_AUTH                          = 0x73\n\tNL80211_ATTR_SURVEY_INFO                                = 0x54\n\tNL80211_ATTR_SURVEY_RADIO_STATS                         = 0xda\n\tNL80211_ATTR_TD_BITMAP                                  = 0x141\n\tNL80211_ATTR_TDLS_ACTION                                = 0x88\n\tNL80211_ATTR_TDLS_DIALOG_TOKEN                          = 0x89\n\tNL80211_ATTR_TDLS_EXTERNAL_SETUP                        = 0x8c\n\tNL80211_ATTR_TDLS_INITIATOR                             = 0xcf\n\tNL80211_ATTR_TDLS_OPERATION                             = 0x8a\n\tNL80211_ATTR_TDLS_PEER_CAPABILITY                       = 0xcb\n\tNL80211_ATTR_TDLS_SUPPORT                               = 0x8b\n\tNL80211_ATTR_TESTDATA                                   = 0x45\n\tNL80211_ATTR_TID_CONFIG                                 = 0x11d\n\tNL80211_ATTR_TIMED_OUT                                  = 0x41\n\tNL80211_ATTR_TIMEOUT                                    = 0x110\n\tNL80211_ATTR_TIMEOUT_REASON                             = 0xf8\n\tNL80211_ATTR_TSID                                       = 0xd2\n\tNL80211_ATTR_TWT_RESPONDER                              = 0x116\n\tNL80211_ATTR_TX_FRAME_TYPES                             = 0x63\n\tNL80211_ATTR_TX_HW_TIMESTAMP                            = 0x13f\n\tNL80211_ATTR_TX_NO_CCK_RATE                             = 0x87\n\tNL80211_ATTR_TXQ_LIMIT                                  = 0x10a\n\tNL80211_ATTR_TXQ_MEMORY_LIMIT                           = 0x10b\n\tNL80211_ATTR_TXQ_QUANTUM                                = 0x10c\n\tNL80211_ATTR_TXQ_STATS                                  = 0x109\n\tNL80211_ATTR_TX_RATES                                   = 0x5a\n\tNL80211_ATTR_UNSOL_BCAST_PROBE_RESP                     = 0x127\n\tNL80211_ATTR_UNSPEC                                     = 0x0\n\tNL80211_ATTR_USE_MFP                                    = 0x42\n\tNL80211_ATTR_USER_PRIO                                  = 0xd3\n\tNL80211_ATTR_USER_REG_HINT_TYPE                         = 0x9a\n\tNL80211_ATTR_USE_RRM                                    = 0xd0\n\tNL80211_ATTR_VENDOR_DATA                                = 0xc5\n\tNL80211_ATTR_VENDOR_EVENTS                              = 0xc6\n\tNL80211_ATTR_VENDOR_ID                                  = 0xc3\n\tNL80211_ATTR_VENDOR_SUBCMD                              = 0xc4\n\tNL80211_ATTR_VHT_CAPABILITY                             = 0x9d\n\tNL80211_ATTR_VHT_CAPABILITY_MASK                        = 0xb0\n\tNL80211_ATTR_VLAN_ID                                    = 0x11a\n\tNL80211_ATTR_WANT_1X_4WAY_HS                            = 0x101\n\tNL80211_ATTR_WDEV                                       = 0x99\n\tNL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX                     = 0x72\n\tNL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX                     = 0x71\n\tNL80211_ATTR_WIPHY_ANTENNA_RX                           = 0x6a\n\tNL80211_ATTR_WIPHY_ANTENNA_TX                           = 0x69\n\tNL80211_ATTR_WIPHY_BANDS                                = 0x16\n\tNL80211_ATTR_WIPHY_CHANNEL_TYPE                         = 0x27\n\tNL80211_ATTR_WIPHY                                      = 0x1\n\tNL80211_ATTR_WIPHY_COVERAGE_CLASS                       = 0x59\n\tNL80211_ATTR_WIPHY_DYN_ACK                              = 0xd1\n\tNL80211_ATTR_WIPHY_EDMG_BW_CONFIG                       = 0x119\n\tNL80211_ATTR_WIPHY_EDMG_CHANNELS                        = 0x118\n\tNL80211_ATTR_WIPHY_FRAG_THRESHOLD                       = 0x3f\n\tNL80211_ATTR_WIPHY_FREQ                                 = 0x26\n\tNL80211_ATTR_WIPHY_FREQ_HINT                            = 0xc9\n\tNL80211_ATTR_WIPHY_FREQ_OFFSET                          = 0x122\n\tNL80211_ATTR_WIPHY_NAME                                 = 0x2\n\tNL80211_ATTR_WIPHY_RETRY_LONG                           = 0x3e\n\tNL80211_ATTR_WIPHY_RETRY_SHORT                          = 0x3d\n\tNL80211_ATTR_WIPHY_RTS_THRESHOLD                        = 0x40\n\tNL80211_ATTR_WIPHY_SELF_MANAGED_REG                     = 0xd8\n\tNL80211_ATTR_WIPHY_TX_POWER_LEVEL                       = 0x62\n\tNL80211_ATTR_WIPHY_TX_POWER_SETTING                     = 0x61\n\tNL80211_ATTR_WIPHY_TXQ_PARAMS                           = 0x25\n\tNL80211_ATTR_WOWLAN_TRIGGERS                            = 0x75\n\tNL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED                  = 0x76\n\tNL80211_ATTR_WPA_VERSIONS                               = 0x4b\n\tNL80211_AUTHTYPE_AUTOMATIC                              = 0x8\n\tNL80211_AUTHTYPE_FILS_PK                                = 0x7\n\tNL80211_AUTHTYPE_FILS_SK                                = 0x5\n\tNL80211_AUTHTYPE_FILS_SK_PFS                            = 0x6\n\tNL80211_AUTHTYPE_FT                                     = 0x2\n\tNL80211_AUTHTYPE_MAX                                    = 0x7\n\tNL80211_AUTHTYPE_NETWORK_EAP                            = 0x3\n\tNL80211_AUTHTYPE_OPEN_SYSTEM                            = 0x0\n\tNL80211_AUTHTYPE_SAE                                    = 0x4\n\tNL80211_AUTHTYPE_SHARED_KEY                             = 0x1\n\tNL80211_BAND_2GHZ                                       = 0x0\n\tNL80211_BAND_5GHZ                                       = 0x1\n\tNL80211_BAND_60GHZ                                      = 0x2\n\tNL80211_BAND_6GHZ                                       = 0x3\n\tNL80211_BAND_ATTR_EDMG_BW_CONFIG                        = 0xb\n\tNL80211_BAND_ATTR_EDMG_CHANNELS                         = 0xa\n\tNL80211_BAND_ATTR_FREQS                                 = 0x1\n\tNL80211_BAND_ATTR_HT_AMPDU_DENSITY                      = 0x6\n\tNL80211_BAND_ATTR_HT_AMPDU_FACTOR                       = 0x5\n\tNL80211_BAND_ATTR_HT_CAPA                               = 0x4\n\tNL80211_BAND_ATTR_HT_MCS_SET                            = 0x3\n\tNL80211_BAND_ATTR_IFTYPE_DATA                           = 0x9\n\tNL80211_BAND_ATTR_MAX                                   = 0xd\n\tNL80211_BAND_ATTR_RATES                                 = 0x2\n\tNL80211_BAND_ATTR_VHT_CAPA                              = 0x8\n\tNL80211_BAND_ATTR_VHT_MCS_SET                           = 0x7\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC                    = 0x8\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET                = 0xa\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY                    = 0x9\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE                    = 0xb\n\tNL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA                   = 0x6\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC                     = 0x2\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET                 = 0x4\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY                     = 0x3\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE                     = 0x5\n\tNL80211_BAND_IFTYPE_ATTR_IFTYPES                        = 0x1\n\tNL80211_BAND_IFTYPE_ATTR_MAX                            = 0xb\n\tNL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS                   = 0x7\n\tNL80211_BAND_LC                                         = 0x5\n\tNL80211_BAND_S1GHZ                                      = 0x4\n\tNL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE                 = 0x2\n\tNL80211_BITRATE_ATTR_MAX                                = 0x2\n\tNL80211_BITRATE_ATTR_RATE                               = 0x1\n\tNL80211_BSS_BEACON_IES                                  = 0xb\n\tNL80211_BSS_BEACON_INTERVAL                             = 0x4\n\tNL80211_BSS_BEACON_TSF                                  = 0xd\n\tNL80211_BSS_BSSID                                       = 0x1\n\tNL80211_BSS_CAPABILITY                                  = 0x5\n\tNL80211_BSS_CHAIN_SIGNAL                                = 0x13\n\tNL80211_BSS_CHAN_WIDTH_10                               = 0x1\n\tNL80211_BSS_CHAN_WIDTH_1                                = 0x3\n\tNL80211_BSS_CHAN_WIDTH_20                               = 0x0\n\tNL80211_BSS_CHAN_WIDTH_2                                = 0x4\n\tNL80211_BSS_CHAN_WIDTH_5                                = 0x2\n\tNL80211_BSS_CHAN_WIDTH                                  = 0xc\n\tNL80211_BSS_FREQUENCY                                   = 0x2\n\tNL80211_BSS_FREQUENCY_OFFSET                            = 0x14\n\tNL80211_BSS_INFORMATION_ELEMENTS                        = 0x6\n\tNL80211_BSS_LAST_SEEN_BOOTTIME                          = 0xf\n\tNL80211_BSS_MAX                                         = 0x18\n\tNL80211_BSS_MLD_ADDR                                    = 0x16\n\tNL80211_BSS_MLO_LINK_ID                                 = 0x15\n\tNL80211_BSS_PAD                                         = 0x10\n\tNL80211_BSS_PARENT_BSSID                                = 0x12\n\tNL80211_BSS_PARENT_TSF                                  = 0x11\n\tNL80211_BSS_PRESP_DATA                                  = 0xe\n\tNL80211_BSS_SEEN_MS_AGO                                 = 0xa\n\tNL80211_BSS_SELECT_ATTR_BAND_PREF                       = 0x2\n\tNL80211_BSS_SELECT_ATTR_MAX                             = 0x3\n\tNL80211_BSS_SELECT_ATTR_RSSI_ADJUST                     = 0x3\n\tNL80211_BSS_SELECT_ATTR_RSSI                            = 0x1\n\tNL80211_BSS_SIGNAL_MBM                                  = 0x7\n\tNL80211_BSS_SIGNAL_UNSPEC                               = 0x8\n\tNL80211_BSS_STATUS_ASSOCIATED                           = 0x1\n\tNL80211_BSS_STATUS_AUTHENTICATED                        = 0x0\n\tNL80211_BSS_STATUS                                      = 0x9\n\tNL80211_BSS_STATUS_IBSS_JOINED                          = 0x2\n\tNL80211_BSS_TSF                                         = 0x3\n\tNL80211_CHAN_HT20                                       = 0x1\n\tNL80211_CHAN_HT40MINUS                                  = 0x2\n\tNL80211_CHAN_HT40PLUS                                   = 0x3\n\tNL80211_CHAN_NO_HT                                      = 0x0\n\tNL80211_CHAN_WIDTH_10                                   = 0x7\n\tNL80211_CHAN_WIDTH_160                                  = 0x5\n\tNL80211_CHAN_WIDTH_16                                   = 0xc\n\tNL80211_CHAN_WIDTH_1                                    = 0x8\n\tNL80211_CHAN_WIDTH_20                                   = 0x1\n\tNL80211_CHAN_WIDTH_20_NOHT                              = 0x0\n\tNL80211_CHAN_WIDTH_2                                    = 0x9\n\tNL80211_CHAN_WIDTH_320                                  = 0xd\n\tNL80211_CHAN_WIDTH_40                                   = 0x2\n\tNL80211_CHAN_WIDTH_4                                    = 0xa\n\tNL80211_CHAN_WIDTH_5                                    = 0x6\n\tNL80211_CHAN_WIDTH_80                                   = 0x3\n\tNL80211_CHAN_WIDTH_80P80                                = 0x4\n\tNL80211_CHAN_WIDTH_8                                    = 0xb\n\tNL80211_CMD_ABORT_SCAN                                  = 0x72\n\tNL80211_CMD_ACTION                                      = 0x3b\n\tNL80211_CMD_ACTION_TX_STATUS                            = 0x3c\n\tNL80211_CMD_ADD_LINK                                    = 0x94\n\tNL80211_CMD_ADD_LINK_STA                                = 0x96\n\tNL80211_CMD_ADD_NAN_FUNCTION                            = 0x75\n\tNL80211_CMD_ADD_TX_TS                                   = 0x69\n\tNL80211_CMD_ASSOC_COMEBACK                              = 0x93\n\tNL80211_CMD_ASSOCIATE                                   = 0x26\n\tNL80211_CMD_AUTHENTICATE                                = 0x25\n\tNL80211_CMD_CANCEL_REMAIN_ON_CHANNEL                    = 0x38\n\tNL80211_CMD_CHANGE_NAN_CONFIG                           = 0x77\n\tNL80211_CMD_CHANNEL_SWITCH                              = 0x66\n\tNL80211_CMD_CH_SWITCH_NOTIFY                            = 0x58\n\tNL80211_CMD_CH_SWITCH_STARTED_NOTIFY                    = 0x6e\n\tNL80211_CMD_COLOR_CHANGE_ABORTED                        = 0x90\n\tNL80211_CMD_COLOR_CHANGE_COMPLETED                      = 0x91\n\tNL80211_CMD_COLOR_CHANGE_REQUEST                        = 0x8e\n\tNL80211_CMD_COLOR_CHANGE_STARTED                        = 0x8f\n\tNL80211_CMD_CONNECT                                     = 0x2e\n\tNL80211_CMD_CONN_FAILED                                 = 0x5b\n\tNL80211_CMD_CONTROL_PORT_FRAME                          = 0x81\n\tNL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS                = 0x8b\n\tNL80211_CMD_CRIT_PROTOCOL_START                         = 0x62\n\tNL80211_CMD_CRIT_PROTOCOL_STOP                          = 0x63\n\tNL80211_CMD_DEAUTHENTICATE                              = 0x27\n\tNL80211_CMD_DEL_BEACON                                  = 0x10\n\tNL80211_CMD_DEL_INTERFACE                               = 0x8\n\tNL80211_CMD_DEL_KEY                                     = 0xc\n\tNL80211_CMD_DEL_MPATH                                   = 0x18\n\tNL80211_CMD_DEL_NAN_FUNCTION                            = 0x76\n\tNL80211_CMD_DEL_PMK                                     = 0x7c\n\tNL80211_CMD_DEL_PMKSA                                   = 0x35\n\tNL80211_CMD_DEL_STATION                                 = 0x14\n\tNL80211_CMD_DEL_TX_TS                                   = 0x6a\n\tNL80211_CMD_DEL_WIPHY                                   = 0x4\n\tNL80211_CMD_DISASSOCIATE                                = 0x28\n\tNL80211_CMD_DISCONNECT                                  = 0x30\n\tNL80211_CMD_EXTERNAL_AUTH                               = 0x7f\n\tNL80211_CMD_FLUSH_PMKSA                                 = 0x36\n\tNL80211_CMD_FRAME                                       = 0x3b\n\tNL80211_CMD_FRAME_TX_STATUS                             = 0x3c\n\tNL80211_CMD_FRAME_WAIT_CANCEL                           = 0x43\n\tNL80211_CMD_FT_EVENT                                    = 0x61\n\tNL80211_CMD_GET_BEACON                                  = 0xd\n\tNL80211_CMD_GET_COALESCE                                = 0x64\n\tNL80211_CMD_GET_FTM_RESPONDER_STATS                     = 0x82\n\tNL80211_CMD_GET_INTERFACE                               = 0x5\n\tNL80211_CMD_GET_KEY                                     = 0x9\n\tNL80211_CMD_GET_MESH_CONFIG                             = 0x1c\n\tNL80211_CMD_GET_MESH_PARAMS                             = 0x1c\n\tNL80211_CMD_GET_MPATH                                   = 0x15\n\tNL80211_CMD_GET_MPP                                     = 0x6b\n\tNL80211_CMD_GET_POWER_SAVE                              = 0x3e\n\tNL80211_CMD_GET_PROTOCOL_FEATURES                       = 0x5f\n\tNL80211_CMD_GET_REG                                     = 0x1f\n\tNL80211_CMD_GET_SCAN                                    = 0x20\n\tNL80211_CMD_GET_STATION                                 = 0x11\n\tNL80211_CMD_GET_SURVEY                                  = 0x32\n\tNL80211_CMD_GET_WIPHY                                   = 0x1\n\tNL80211_CMD_GET_WOWLAN                                  = 0x49\n\tNL80211_CMD_JOIN_IBSS                                   = 0x2b\n\tNL80211_CMD_JOIN_MESH                                   = 0x44\n\tNL80211_CMD_JOIN_OCB                                    = 0x6c\n\tNL80211_CMD_LEAVE_IBSS                                  = 0x2c\n\tNL80211_CMD_LEAVE_MESH                                  = 0x45\n\tNL80211_CMD_LEAVE_OCB                                   = 0x6d\n\tNL80211_CMD_MAX                                         = 0x9b\n\tNL80211_CMD_MICHAEL_MIC_FAILURE                         = 0x29\n\tNL80211_CMD_MODIFY_LINK_STA                             = 0x97\n\tNL80211_CMD_NAN_MATCH                                   = 0x78\n\tNL80211_CMD_NEW_BEACON                                  = 0xf\n\tNL80211_CMD_NEW_INTERFACE                               = 0x7\n\tNL80211_CMD_NEW_KEY                                     = 0xb\n\tNL80211_CMD_NEW_MPATH                                   = 0x17\n\tNL80211_CMD_NEW_PEER_CANDIDATE                          = 0x48\n\tNL80211_CMD_NEW_SCAN_RESULTS                            = 0x22\n\tNL80211_CMD_NEW_STATION                                 = 0x13\n\tNL80211_CMD_NEW_SURVEY_RESULTS                          = 0x33\n\tNL80211_CMD_NEW_WIPHY                                   = 0x3\n\tNL80211_CMD_NOTIFY_CQM                                  = 0x40\n\tNL80211_CMD_NOTIFY_RADAR                                = 0x86\n\tNL80211_CMD_OBSS_COLOR_COLLISION                        = 0x8d\n\tNL80211_CMD_PEER_MEASUREMENT_COMPLETE                   = 0x85\n\tNL80211_CMD_PEER_MEASUREMENT_RESULT                     = 0x84\n\tNL80211_CMD_PEER_MEASUREMENT_START                      = 0x83\n\tNL80211_CMD_PMKSA_CANDIDATE                             = 0x50\n\tNL80211_CMD_PORT_AUTHORIZED                             = 0x7d\n\tNL80211_CMD_PROBE_CLIENT                                = 0x54\n\tNL80211_CMD_PROBE_MESH_LINK                             = 0x88\n\tNL80211_CMD_RADAR_DETECT                                = 0x5e\n\tNL80211_CMD_REG_BEACON_HINT                             = 0x2a\n\tNL80211_CMD_REG_CHANGE                                  = 0x24\n\tNL80211_CMD_REGISTER_ACTION                             = 0x3a\n\tNL80211_CMD_REGISTER_BEACONS                            = 0x55\n\tNL80211_CMD_REGISTER_FRAME                              = 0x3a\n\tNL80211_CMD_RELOAD_REGDB                                = 0x7e\n\tNL80211_CMD_REMAIN_ON_CHANNEL                           = 0x37\n\tNL80211_CMD_REMOVE_LINK                                 = 0x95\n\tNL80211_CMD_REMOVE_LINK_STA                             = 0x98\n\tNL80211_CMD_REQ_SET_REG                                 = 0x1b\n\tNL80211_CMD_ROAM                                        = 0x2f\n\tNL80211_CMD_SCAN_ABORTED                                = 0x23\n\tNL80211_CMD_SCHED_SCAN_RESULTS                          = 0x4d\n\tNL80211_CMD_SCHED_SCAN_STOPPED                          = 0x4e\n\tNL80211_CMD_SET_BEACON                                  = 0xe\n\tNL80211_CMD_SET_BSS                                     = 0x19\n\tNL80211_CMD_SET_CHANNEL                                 = 0x41\n\tNL80211_CMD_SET_COALESCE                                = 0x65\n\tNL80211_CMD_SET_CQM                                     = 0x3f\n\tNL80211_CMD_SET_FILS_AAD                                = 0x92\n\tNL80211_CMD_SET_INTERFACE                               = 0x6\n\tNL80211_CMD_SET_KEY                                     = 0xa\n\tNL80211_CMD_SET_MAC_ACL                                 = 0x5d\n\tNL80211_CMD_SET_MCAST_RATE                              = 0x5c\n\tNL80211_CMD_SET_MESH_CONFIG                             = 0x1d\n\tNL80211_CMD_SET_MESH_PARAMS                             = 0x1d\n\tNL80211_CMD_SET_MGMT_EXTRA_IE                           = 0x1e\n\tNL80211_CMD_SET_MPATH                                   = 0x16\n\tNL80211_CMD_SET_MULTICAST_TO_UNICAST                    = 0x79\n\tNL80211_CMD_SET_NOACK_MAP                               = 0x57\n\tNL80211_CMD_SET_PMK                                     = 0x7b\n\tNL80211_CMD_SET_PMKSA                                   = 0x34\n\tNL80211_CMD_SET_POWER_SAVE                              = 0x3d\n\tNL80211_CMD_SET_QOS_MAP                                 = 0x68\n\tNL80211_CMD_SET_REG                                     = 0x1a\n\tNL80211_CMD_SET_REKEY_OFFLOAD                           = 0x4f\n\tNL80211_CMD_SET_SAR_SPECS                               = 0x8c\n\tNL80211_CMD_SET_STATION                                 = 0x12\n\tNL80211_CMD_SET_TID_CONFIG                              = 0x89\n\tNL80211_CMD_SET_TX_BITRATE_MASK                         = 0x39\n\tNL80211_CMD_SET_WDS_PEER                                = 0x42\n\tNL80211_CMD_SET_WIPHY                                   = 0x2\n\tNL80211_CMD_SET_WIPHY_NETNS                             = 0x31\n\tNL80211_CMD_SET_WOWLAN                                  = 0x4a\n\tNL80211_CMD_STA_OPMODE_CHANGED                          = 0x80\n\tNL80211_CMD_START_AP                                    = 0xf\n\tNL80211_CMD_START_NAN                                   = 0x73\n\tNL80211_CMD_START_P2P_DEVICE                            = 0x59\n\tNL80211_CMD_START_SCHED_SCAN                            = 0x4b\n\tNL80211_CMD_STOP_AP                                     = 0x10\n\tNL80211_CMD_STOP_NAN                                    = 0x74\n\tNL80211_CMD_STOP_P2P_DEVICE                             = 0x5a\n\tNL80211_CMD_STOP_SCHED_SCAN                             = 0x4c\n\tNL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH                  = 0x70\n\tNL80211_CMD_TDLS_CHANNEL_SWITCH                         = 0x6f\n\tNL80211_CMD_TDLS_MGMT                                   = 0x52\n\tNL80211_CMD_TDLS_OPER                                   = 0x51\n\tNL80211_CMD_TESTMODE                                    = 0x2d\n\tNL80211_CMD_TRIGGER_SCAN                                = 0x21\n\tNL80211_CMD_UNEXPECTED_4ADDR_FRAME                      = 0x56\n\tNL80211_CMD_UNEXPECTED_FRAME                            = 0x53\n\tNL80211_CMD_UNPROT_BEACON                               = 0x8a\n\tNL80211_CMD_UNPROT_DEAUTHENTICATE                       = 0x46\n\tNL80211_CMD_UNPROT_DISASSOCIATE                         = 0x47\n\tNL80211_CMD_UNSPEC                                      = 0x0\n\tNL80211_CMD_UPDATE_CONNECT_PARAMS                       = 0x7a\n\tNL80211_CMD_UPDATE_FT_IES                               = 0x60\n\tNL80211_CMD_UPDATE_OWE_INFO                             = 0x87\n\tNL80211_CMD_VENDOR                                      = 0x67\n\tNL80211_CMD_WIPHY_REG_CHANGE                            = 0x71\n\tNL80211_COALESCE_CONDITION_MATCH                        = 0x0\n\tNL80211_COALESCE_CONDITION_NO_MATCH                     = 0x1\n\tNL80211_CONN_FAIL_BLOCKED_CLIENT                        = 0x1\n\tNL80211_CONN_FAIL_MAX_CLIENTS                           = 0x0\n\tNL80211_CQM_RSSI_BEACON_LOSS_EVENT                      = 0x2\n\tNL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH                   = 0x1\n\tNL80211_CQM_RSSI_THRESHOLD_EVENT_LOW                    = 0x0\n\tNL80211_CQM_TXE_MAX_INTVL                               = 0x708\n\tNL80211_CRIT_PROTO_APIPA                                = 0x3\n\tNL80211_CRIT_PROTO_DHCP                                 = 0x1\n\tNL80211_CRIT_PROTO_EAPOL                                = 0x2\n\tNL80211_CRIT_PROTO_MAX_DURATION                         = 0x1388\n\tNL80211_CRIT_PROTO_UNSPEC                               = 0x0\n\tNL80211_DFS_AVAILABLE                                   = 0x2\n\tNL80211_DFS_ETSI                                        = 0x2\n\tNL80211_DFS_FCC                                         = 0x1\n\tNL80211_DFS_JP                                          = 0x3\n\tNL80211_DFS_UNAVAILABLE                                 = 0x1\n\tNL80211_DFS_UNSET                                       = 0x0\n\tNL80211_DFS_USABLE                                      = 0x0\n\tNL80211_EDMG_BW_CONFIG_MAX                              = 0xf\n\tNL80211_EDMG_BW_CONFIG_MIN                              = 0x4\n\tNL80211_EDMG_CHANNELS_MAX                               = 0x3c\n\tNL80211_EDMG_CHANNELS_MIN                               = 0x1\n\tNL80211_EHT_MAX_CAPABILITY_LEN                          = 0x33\n\tNL80211_EHT_MIN_CAPABILITY_LEN                          = 0xd\n\tNL80211_EXTERNAL_AUTH_ABORT                             = 0x1\n\tNL80211_EXTERNAL_AUTH_START                             = 0x0\n\tNL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK               = 0x32\n\tNL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X               = 0x10\n\tNL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK              = 0xf\n\tNL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP             = 0x12\n\tNL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT                  = 0x1b\n\tNL80211_EXT_FEATURE_AIRTIME_FAIRNESS                    = 0x21\n\tNL80211_EXT_FEATURE_AP_PMKSA_CACHING                    = 0x22\n\tNL80211_EXT_FEATURE_AQL                                 = 0x28\n\tNL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT            = 0x2e\n\tNL80211_EXT_FEATURE_BEACON_PROTECTION                   = 0x29\n\tNL80211_EXT_FEATURE_BEACON_RATE_HE                      = 0x36\n\tNL80211_EXT_FEATURE_BEACON_RATE_HT                      = 0x7\n\tNL80211_EXT_FEATURE_BEACON_RATE_LEGACY                  = 0x6\n\tNL80211_EXT_FEATURE_BEACON_RATE_VHT                     = 0x8\n\tNL80211_EXT_FEATURE_BSS_COLOR                           = 0x3a\n\tNL80211_EXT_FEATURE_BSS_PARENT_TSF                      = 0x4\n\tNL80211_EXT_FEATURE_CAN_REPLACE_PTK0                    = 0x1f\n\tNL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH             = 0x2a\n\tNL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211           = 0x1a\n\tNL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 0x30\n\tNL80211_EXT_FEATURE_CQM_RSSI_LIST                       = 0xd\n\tNL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT             = 0x1b\n\tNL80211_EXT_FEATURE_DEL_IBSS_STA                        = 0x2c\n\tNL80211_EXT_FEATURE_DFS_OFFLOAD                         = 0x19\n\tNL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER                = 0x20\n\tNL80211_EXT_FEATURE_EXT_KEY_ID                          = 0x24\n\tNL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD                 = 0x3b\n\tNL80211_EXT_FEATURE_FILS_DISCOVERY                      = 0x34\n\tNL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME               = 0x11\n\tNL80211_EXT_FEATURE_FILS_SK_OFFLOAD                     = 0xe\n\tNL80211_EXT_FEATURE_FILS_STA                            = 0x9\n\tNL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN                  = 0x18\n\tNL80211_EXT_FEATURE_LOW_POWER_SCAN                      = 0x17\n\tNL80211_EXT_FEATURE_LOW_SPAN_SCAN                       = 0x16\n\tNL80211_EXT_FEATURE_MFP_OPTIONAL                        = 0x15\n\tNL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA                   = 0xa\n\tNL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED         = 0xb\n\tNL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS             = 0x2d\n\tNL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER                 = 0x2\n\tNL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION  = 0x14\n\tNL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE          = 0x13\n\tNL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION        = 0x31\n\tNL80211_EXT_FEATURE_POWERED_ADDR_CHANGE                 = 0x3d\n\tNL80211_EXT_FEATURE_PROTECTED_TWT                       = 0x2b\n\tNL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE         = 0x39\n\tNL80211_EXT_FEATURE_RADAR_BACKGROUND                    = 0x3c\n\tNL80211_EXT_FEATURE_RRM                                 = 0x1\n\tNL80211_EXT_FEATURE_SAE_OFFLOAD_AP                      = 0x33\n\tNL80211_EXT_FEATURE_SAE_OFFLOAD                         = 0x26\n\tNL80211_EXT_FEATURE_SCAN_FREQ_KHZ                       = 0x2f\n\tNL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT               = 0x1e\n\tNL80211_EXT_FEATURE_SCAN_RANDOM_SN                      = 0x1d\n\tNL80211_EXT_FEATURE_SCAN_START_TIME                     = 0x3\n\tNL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 0x23\n\tNL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI            = 0xc\n\tNL80211_EXT_FEATURE_SECURE_LTF                          = 0x37\n\tNL80211_EXT_FEATURE_SECURE_RTT                          = 0x38\n\tNL80211_EXT_FEATURE_SET_SCAN_DWELL                      = 0x5\n\tNL80211_EXT_FEATURE_STA_TX_PWR                          = 0x25\n\tNL80211_EXT_FEATURE_TXQS                                = 0x1c\n\tNL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP              = 0x35\n\tNL80211_EXT_FEATURE_VHT_IBSS                            = 0x0\n\tNL80211_EXT_FEATURE_VLAN_OFFLOAD                        = 0x27\n\tNL80211_FEATURE_ACKTO_ESTIMATION                        = 0x800000\n\tNL80211_FEATURE_ACTIVE_MONITOR                          = 0x20000\n\tNL80211_FEATURE_ADVERTISE_CHAN_LIMITS                   = 0x4000\n\tNL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE               = 0x40000\n\tNL80211_FEATURE_AP_SCAN                                 = 0x100\n\tNL80211_FEATURE_CELL_BASE_REG_HINTS                     = 0x8\n\tNL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES               = 0x80000\n\tNL80211_FEATURE_DYNAMIC_SMPS                            = 0x2000000\n\tNL80211_FEATURE_FULL_AP_CLIENT_STATE                    = 0x8000\n\tNL80211_FEATURE_HT_IBSS                                 = 0x2\n\tNL80211_FEATURE_INACTIVITY_TIMER                        = 0x4\n\tNL80211_FEATURE_LOW_PRIORITY_SCAN                       = 0x40\n\tNL80211_FEATURE_MAC_ON_CREATE                           = 0x8000000\n\tNL80211_FEATURE_ND_RANDOM_MAC_ADDR                      = 0x80000000\n\tNL80211_FEATURE_NEED_OBSS_SCAN                          = 0x400\n\tNL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL                = 0x10\n\tNL80211_FEATURE_P2P_GO_CTWIN                            = 0x800\n\tNL80211_FEATURE_P2P_GO_OPPPS                            = 0x1000\n\tNL80211_FEATURE_QUIET                                   = 0x200000\n\tNL80211_FEATURE_SAE                                     = 0x20\n\tNL80211_FEATURE_SCAN_FLUSH                              = 0x80\n\tNL80211_FEATURE_SCAN_RANDOM_MAC_ADDR                    = 0x20000000\n\tNL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR              = 0x40000000\n\tNL80211_FEATURE_SK_TX_STATUS                            = 0x1\n\tNL80211_FEATURE_STATIC_SMPS                             = 0x1000000\n\tNL80211_FEATURE_SUPPORTS_WMM_ADMISSION                  = 0x4000000\n\tNL80211_FEATURE_TDLS_CHANNEL_SWITCH                     = 0x10000000\n\tNL80211_FEATURE_TX_POWER_INSERTION                      = 0x400000\n\tNL80211_FEATURE_USERSPACE_MPM                           = 0x10000\n\tNL80211_FEATURE_VIF_TXPOWER                             = 0x200\n\tNL80211_FEATURE_WFA_TPC_IE_IN_PROBES                    = 0x100000\n\tNL80211_FILS_DISCOVERY_ATTR_INT_MAX                     = 0x2\n\tNL80211_FILS_DISCOVERY_ATTR_INT_MIN                     = 0x1\n\tNL80211_FILS_DISCOVERY_ATTR_MAX                         = 0x3\n\tNL80211_FILS_DISCOVERY_ATTR_TMPL                        = 0x3\n\tNL80211_FILS_DISCOVERY_TMPL_MIN_LEN                     = 0x2a\n\tNL80211_FREQUENCY_ATTR_16MHZ                            = 0x19\n\tNL80211_FREQUENCY_ATTR_1MHZ                             = 0x15\n\tNL80211_FREQUENCY_ATTR_2MHZ                             = 0x16\n\tNL80211_FREQUENCY_ATTR_4MHZ                             = 0x17\n\tNL80211_FREQUENCY_ATTR_8MHZ                             = 0x18\n\tNL80211_FREQUENCY_ATTR_DFS_CAC_TIME                     = 0xd\n\tNL80211_FREQUENCY_ATTR_DFS_STATE                        = 0x7\n\tNL80211_FREQUENCY_ATTR_DFS_TIME                         = 0x8\n\tNL80211_FREQUENCY_ATTR_DISABLED                         = 0x2\n\tNL80211_FREQUENCY_ATTR_FREQ                             = 0x1\n\tNL80211_FREQUENCY_ATTR_GO_CONCURRENT                    = 0xf\n\tNL80211_FREQUENCY_ATTR_INDOOR_ONLY                      = 0xe\n\tNL80211_FREQUENCY_ATTR_IR_CONCURRENT                    = 0xf\n\tNL80211_FREQUENCY_ATTR_MAX                              = 0x20\n\tNL80211_FREQUENCY_ATTR_MAX_TX_POWER                     = 0x6\n\tNL80211_FREQUENCY_ATTR_NO_10MHZ                         = 0x11\n\tNL80211_FREQUENCY_ATTR_NO_160MHZ                        = 0xc\n\tNL80211_FREQUENCY_ATTR_NO_20MHZ                         = 0x10\n\tNL80211_FREQUENCY_ATTR_NO_320MHZ                        = 0x1a\n\tNL80211_FREQUENCY_ATTR_NO_80MHZ                         = 0xb\n\tNL80211_FREQUENCY_ATTR_NO_EHT                           = 0x1b\n\tNL80211_FREQUENCY_ATTR_NO_HE                            = 0x13\n\tNL80211_FREQUENCY_ATTR_NO_HT40_MINUS                    = 0x9\n\tNL80211_FREQUENCY_ATTR_NO_HT40_PLUS                     = 0xa\n\tNL80211_FREQUENCY_ATTR_NO_IBSS                          = 0x3\n\tNL80211_FREQUENCY_ATTR_NO_IR                            = 0x3\n\tNL80211_FREQUENCY_ATTR_OFFSET                           = 0x14\n\tNL80211_FREQUENCY_ATTR_PASSIVE_SCAN                     = 0x3\n\tNL80211_FREQUENCY_ATTR_RADAR                            = 0x5\n\tNL80211_FREQUENCY_ATTR_WMM                              = 0x12\n\tNL80211_FTM_RESP_ATTR_CIVICLOC                          = 0x3\n\tNL80211_FTM_RESP_ATTR_ENABLED                           = 0x1\n\tNL80211_FTM_RESP_ATTR_LCI                               = 0x2\n\tNL80211_FTM_RESP_ATTR_MAX                               = 0x3\n\tNL80211_FTM_STATS_ASAP_NUM                              = 0x4\n\tNL80211_FTM_STATS_FAILED_NUM                            = 0x3\n\tNL80211_FTM_STATS_MAX                                   = 0xa\n\tNL80211_FTM_STATS_NON_ASAP_NUM                          = 0x5\n\tNL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM            = 0x9\n\tNL80211_FTM_STATS_PAD                                   = 0xa\n\tNL80211_FTM_STATS_PARTIAL_NUM                           = 0x2\n\tNL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM               = 0x8\n\tNL80211_FTM_STATS_SUCCESS_NUM                           = 0x1\n\tNL80211_FTM_STATS_TOTAL_DURATION_MSEC                   = 0x6\n\tNL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM                  = 0x7\n\tNL80211_GENL_NAME                                       = \"nl80211\"\n\tNL80211_HE_BSS_COLOR_ATTR_COLOR                         = 0x1\n\tNL80211_HE_BSS_COLOR_ATTR_DISABLED                      = 0x2\n\tNL80211_HE_BSS_COLOR_ATTR_MAX                           = 0x3\n\tNL80211_HE_BSS_COLOR_ATTR_PARTIAL                       = 0x3\n\tNL80211_HE_MAX_CAPABILITY_LEN                           = 0x36\n\tNL80211_HE_MIN_CAPABILITY_LEN                           = 0x10\n\tNL80211_HE_NSS_MAX                                      = 0x8\n\tNL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP                = 0x4\n\tNL80211_HE_OBSS_PD_ATTR_MAX                             = 0x6\n\tNL80211_HE_OBSS_PD_ATTR_MAX_OFFSET                      = 0x2\n\tNL80211_HE_OBSS_PD_ATTR_MIN_OFFSET                      = 0x1\n\tNL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET              = 0x3\n\tNL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP            = 0x5\n\tNL80211_HE_OBSS_PD_ATTR_SR_CTRL                         = 0x6\n\tNL80211_HIDDEN_SSID_NOT_IN_USE                          = 0x0\n\tNL80211_HIDDEN_SSID_ZERO_CONTENTS                       = 0x2\n\tNL80211_HIDDEN_SSID_ZERO_LEN                            = 0x1\n\tNL80211_HT_CAPABILITY_LEN                               = 0x1a\n\tNL80211_IFACE_COMB_BI_MIN_GCD                           = 0x7\n\tNL80211_IFACE_COMB_LIMITS                               = 0x1\n\tNL80211_IFACE_COMB_MAXNUM                               = 0x2\n\tNL80211_IFACE_COMB_NUM_CHANNELS                         = 0x4\n\tNL80211_IFACE_COMB_RADAR_DETECT_REGIONS                 = 0x6\n\tNL80211_IFACE_COMB_RADAR_DETECT_WIDTHS                  = 0x5\n\tNL80211_IFACE_COMB_STA_AP_BI_MATCH                      = 0x3\n\tNL80211_IFACE_COMB_UNSPEC                               = 0x0\n\tNL80211_IFACE_LIMIT_MAX                                 = 0x1\n\tNL80211_IFACE_LIMIT_TYPES                               = 0x2\n\tNL80211_IFACE_LIMIT_UNSPEC                              = 0x0\n\tNL80211_IFTYPE_ADHOC                                    = 0x1\n\tNL80211_IFTYPE_AKM_ATTR_IFTYPES                         = 0x1\n\tNL80211_IFTYPE_AKM_ATTR_MAX                             = 0x2\n\tNL80211_IFTYPE_AKM_ATTR_SUITES                          = 0x2\n\tNL80211_IFTYPE_AP                                       = 0x3\n\tNL80211_IFTYPE_AP_VLAN                                  = 0x4\n\tNL80211_IFTYPE_MAX                                      = 0xc\n\tNL80211_IFTYPE_MESH_POINT                               = 0x7\n\tNL80211_IFTYPE_MONITOR                                  = 0x6\n\tNL80211_IFTYPE_NAN                                      = 0xc\n\tNL80211_IFTYPE_OCB                                      = 0xb\n\tNL80211_IFTYPE_P2P_CLIENT                               = 0x8\n\tNL80211_IFTYPE_P2P_DEVICE                               = 0xa\n\tNL80211_IFTYPE_P2P_GO                                   = 0x9\n\tNL80211_IFTYPE_STATION                                  = 0x2\n\tNL80211_IFTYPE_UNSPECIFIED                              = 0x0\n\tNL80211_IFTYPE_WDS                                      = 0x5\n\tNL80211_KCK_EXT_LEN                                     = 0x18\n\tNL80211_KCK_LEN                                         = 0x10\n\tNL80211_KEK_EXT_LEN                                     = 0x20\n\tNL80211_KEK_LEN                                         = 0x10\n\tNL80211_KEY_CIPHER                                      = 0x3\n\tNL80211_KEY_DATA                                        = 0x1\n\tNL80211_KEY_DEFAULT_BEACON                              = 0xa\n\tNL80211_KEY_DEFAULT                                     = 0x5\n\tNL80211_KEY_DEFAULT_MGMT                                = 0x6\n\tNL80211_KEY_DEFAULT_TYPE_MULTICAST                      = 0x2\n\tNL80211_KEY_DEFAULT_TYPES                               = 0x8\n\tNL80211_KEY_DEFAULT_TYPE_UNICAST                        = 0x1\n\tNL80211_KEY_IDX                                         = 0x2\n\tNL80211_KEY_MAX                                         = 0xa\n\tNL80211_KEY_MODE                                        = 0x9\n\tNL80211_KEY_NO_TX                                       = 0x1\n\tNL80211_KEY_RX_TX                                       = 0x0\n\tNL80211_KEY_SEQ                                         = 0x4\n\tNL80211_KEY_SET_TX                                      = 0x2\n\tNL80211_KEY_TYPE                                        = 0x7\n\tNL80211_KEYTYPE_GROUP                                   = 0x0\n\tNL80211_KEYTYPE_PAIRWISE                                = 0x1\n\tNL80211_KEYTYPE_PEERKEY                                 = 0x2\n\tNL80211_MAX_NR_AKM_SUITES                               = 0x2\n\tNL80211_MAX_NR_CIPHER_SUITES                            = 0x5\n\tNL80211_MAX_SUPP_HT_RATES                               = 0x4d\n\tNL80211_MAX_SUPP_RATES                                  = 0x20\n\tNL80211_MAX_SUPP_REG_RULES                              = 0x80\n\tNL80211_MBSSID_CONFIG_ATTR_EMA                          = 0x5\n\tNL80211_MBSSID_CONFIG_ATTR_INDEX                        = 0x3\n\tNL80211_MBSSID_CONFIG_ATTR_MAX                          = 0x5\n\tNL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY  = 0x2\n\tNL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES               = 0x1\n\tNL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX                   = 0x4\n\tNL80211_MESHCONF_ATTR_MAX                               = 0x1f\n\tNL80211_MESHCONF_AUTO_OPEN_PLINKS                       = 0x7\n\tNL80211_MESHCONF_AWAKE_WINDOW                           = 0x1b\n\tNL80211_MESHCONF_CONFIRM_TIMEOUT                        = 0x2\n\tNL80211_MESHCONF_CONNECTED_TO_AS                        = 0x1f\n\tNL80211_MESHCONF_CONNECTED_TO_GATE                      = 0x1d\n\tNL80211_MESHCONF_ELEMENT_TTL                            = 0xf\n\tNL80211_MESHCONF_FORWARDING                             = 0x13\n\tNL80211_MESHCONF_GATE_ANNOUNCEMENTS                     = 0x11\n\tNL80211_MESHCONF_HOLDING_TIMEOUT                        = 0x3\n\tNL80211_MESHCONF_HT_OPMODE                              = 0x16\n\tNL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT               = 0xb\n\tNL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL             = 0x19\n\tNL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES                  = 0x8\n\tNL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME                = 0xd\n\tNL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT              = 0x17\n\tNL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL                 = 0x12\n\tNL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL                 = 0xc\n\tNL80211_MESHCONF_HWMP_RANN_INTERVAL                     = 0x10\n\tNL80211_MESHCONF_HWMP_ROOT_INTERVAL                     = 0x18\n\tNL80211_MESHCONF_HWMP_ROOTMODE                          = 0xe\n\tNL80211_MESHCONF_MAX_PEER_LINKS                         = 0x4\n\tNL80211_MESHCONF_MAX_RETRIES                            = 0x5\n\tNL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT                  = 0xa\n\tNL80211_MESHCONF_NOLEARN                                = 0x1e\n\tNL80211_MESHCONF_PATH_REFRESH_TIME                      = 0x9\n\tNL80211_MESHCONF_PLINK_TIMEOUT                          = 0x1c\n\tNL80211_MESHCONF_POWER_MODE                             = 0x1a\n\tNL80211_MESHCONF_RETRY_TIMEOUT                          = 0x1\n\tNL80211_MESHCONF_RSSI_THRESHOLD                         = 0x14\n\tNL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR               = 0x15\n\tNL80211_MESHCONF_TTL                                    = 0x6\n\tNL80211_MESH_POWER_ACTIVE                               = 0x1\n\tNL80211_MESH_POWER_DEEP_SLEEP                           = 0x3\n\tNL80211_MESH_POWER_LIGHT_SLEEP                          = 0x2\n\tNL80211_MESH_POWER_MAX                                  = 0x3\n\tNL80211_MESH_POWER_UNKNOWN                              = 0x0\n\tNL80211_MESH_SETUP_ATTR_MAX                             = 0x8\n\tNL80211_MESH_SETUP_AUTH_PROTOCOL                        = 0x8\n\tNL80211_MESH_SETUP_ENABLE_VENDOR_METRIC                 = 0x2\n\tNL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL               = 0x1\n\tNL80211_MESH_SETUP_ENABLE_VENDOR_SYNC                   = 0x6\n\tNL80211_MESH_SETUP_IE                                   = 0x3\n\tNL80211_MESH_SETUP_USERSPACE_AMPE                       = 0x5\n\tNL80211_MESH_SETUP_USERSPACE_AUTH                       = 0x4\n\tNL80211_MESH_SETUP_USERSPACE_MPM                        = 0x7\n\tNL80211_MESH_SETUP_VENDOR_PATH_SEL_IE                   = 0x3\n\tNL80211_MFP_NO                                          = 0x0\n\tNL80211_MFP_OPTIONAL                                    = 0x2\n\tNL80211_MFP_REQUIRED                                    = 0x1\n\tNL80211_MIN_REMAIN_ON_CHANNEL_TIME                      = 0xa\n\tNL80211_MNTR_FLAG_ACTIVE                                = 0x6\n\tNL80211_MNTR_FLAG_CONTROL                               = 0x3\n\tNL80211_MNTR_FLAG_COOK_FRAMES                           = 0x5\n\tNL80211_MNTR_FLAG_FCSFAIL                               = 0x1\n\tNL80211_MNTR_FLAG_MAX                                   = 0x6\n\tNL80211_MNTR_FLAG_OTHER_BSS                             = 0x4\n\tNL80211_MNTR_FLAG_PLCPFAIL                              = 0x2\n\tNL80211_MPATH_FLAG_ACTIVE                               = 0x1\n\tNL80211_MPATH_FLAG_FIXED                                = 0x8\n\tNL80211_MPATH_FLAG_RESOLVED                             = 0x10\n\tNL80211_MPATH_FLAG_RESOLVING                            = 0x2\n\tNL80211_MPATH_FLAG_SN_VALID                             = 0x4\n\tNL80211_MPATH_INFO_DISCOVERY_RETRIES                    = 0x7\n\tNL80211_MPATH_INFO_DISCOVERY_TIMEOUT                    = 0x6\n\tNL80211_MPATH_INFO_EXPTIME                              = 0x4\n\tNL80211_MPATH_INFO_FLAGS                                = 0x5\n\tNL80211_MPATH_INFO_FRAME_QLEN                           = 0x1\n\tNL80211_MPATH_INFO_HOP_COUNT                            = 0x8\n\tNL80211_MPATH_INFO_MAX                                  = 0x9\n\tNL80211_MPATH_INFO_METRIC                               = 0x3\n\tNL80211_MPATH_INFO_PATH_CHANGE                          = 0x9\n\tNL80211_MPATH_INFO_SN                                   = 0x2\n\tNL80211_MULTICAST_GROUP_CONFIG                          = \"config\"\n\tNL80211_MULTICAST_GROUP_MLME                            = \"mlme\"\n\tNL80211_MULTICAST_GROUP_NAN                             = \"nan\"\n\tNL80211_MULTICAST_GROUP_REG                             = \"regulatory\"\n\tNL80211_MULTICAST_GROUP_SCAN                            = \"scan\"\n\tNL80211_MULTICAST_GROUP_TESTMODE                        = \"testmode\"\n\tNL80211_MULTICAST_GROUP_VENDOR                          = \"vendor\"\n\tNL80211_NAN_FUNC_ATTR_MAX                               = 0x10\n\tNL80211_NAN_FUNC_CLOSE_RANGE                            = 0x9\n\tNL80211_NAN_FUNC_FOLLOW_UP                              = 0x2\n\tNL80211_NAN_FUNC_FOLLOW_UP_DEST                         = 0x8\n\tNL80211_NAN_FUNC_FOLLOW_UP_ID                           = 0x6\n\tNL80211_NAN_FUNC_FOLLOW_UP_REQ_ID                       = 0x7\n\tNL80211_NAN_FUNC_INSTANCE_ID                            = 0xf\n\tNL80211_NAN_FUNC_MAX_TYPE                               = 0x2\n\tNL80211_NAN_FUNC_PUBLISH_BCAST                          = 0x4\n\tNL80211_NAN_FUNC_PUBLISH                                = 0x0\n\tNL80211_NAN_FUNC_PUBLISH_TYPE                           = 0x3\n\tNL80211_NAN_FUNC_RX_MATCH_FILTER                        = 0xd\n\tNL80211_NAN_FUNC_SERVICE_ID                             = 0x2\n\tNL80211_NAN_FUNC_SERVICE_ID_LEN                         = 0x6\n\tNL80211_NAN_FUNC_SERVICE_INFO                           = 0xb\n\tNL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN              = 0xff\n\tNL80211_NAN_FUNC_SRF                                    = 0xc\n\tNL80211_NAN_FUNC_SRF_MAX_LEN                            = 0xff\n\tNL80211_NAN_FUNC_SUBSCRIBE_ACTIVE                       = 0x5\n\tNL80211_NAN_FUNC_SUBSCRIBE                              = 0x1\n\tNL80211_NAN_FUNC_TERM_REASON                            = 0x10\n\tNL80211_NAN_FUNC_TERM_REASON_ERROR                      = 0x2\n\tNL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED                = 0x1\n\tNL80211_NAN_FUNC_TERM_REASON_USER_REQUEST               = 0x0\n\tNL80211_NAN_FUNC_TTL                                    = 0xa\n\tNL80211_NAN_FUNC_TX_MATCH_FILTER                        = 0xe\n\tNL80211_NAN_FUNC_TYPE                                   = 0x1\n\tNL80211_NAN_MATCH_ATTR_MAX                              = 0x2\n\tNL80211_NAN_MATCH_FUNC_LOCAL                            = 0x1\n\tNL80211_NAN_MATCH_FUNC_PEER                             = 0x2\n\tNL80211_NAN_SOLICITED_PUBLISH                           = 0x1\n\tNL80211_NAN_SRF_ATTR_MAX                                = 0x4\n\tNL80211_NAN_SRF_BF                                      = 0x2\n\tNL80211_NAN_SRF_BF_IDX                                  = 0x3\n\tNL80211_NAN_SRF_INCLUDE                                 = 0x1\n\tNL80211_NAN_SRF_MAC_ADDRS                               = 0x4\n\tNL80211_NAN_UNSOLICITED_PUBLISH                         = 0x2\n\tNL80211_NUM_ACS                                         = 0x4\n\tNL80211_P2P_PS_SUPPORTED                                = 0x1\n\tNL80211_P2P_PS_UNSUPPORTED                              = 0x0\n\tNL80211_PKTPAT_MASK                                     = 0x1\n\tNL80211_PKTPAT_OFFSET                                   = 0x3\n\tNL80211_PKTPAT_PATTERN                                  = 0x2\n\tNL80211_PLINK_ACTION_BLOCK                              = 0x2\n\tNL80211_PLINK_ACTION_NO_ACTION                          = 0x0\n\tNL80211_PLINK_ACTION_OPEN                               = 0x1\n\tNL80211_PLINK_BLOCKED                                   = 0x6\n\tNL80211_PLINK_CNF_RCVD                                  = 0x3\n\tNL80211_PLINK_ESTAB                                     = 0x4\n\tNL80211_PLINK_HOLDING                                   = 0x5\n\tNL80211_PLINK_LISTEN                                    = 0x0\n\tNL80211_PLINK_OPN_RCVD                                  = 0x2\n\tNL80211_PLINK_OPN_SNT                                   = 0x1\n\tNL80211_PMKSA_CANDIDATE_BSSID                           = 0x2\n\tNL80211_PMKSA_CANDIDATE_INDEX                           = 0x1\n\tNL80211_PMKSA_CANDIDATE_PREAUTH                         = 0x3\n\tNL80211_PMSR_ATTR_MAX                                   = 0x5\n\tNL80211_PMSR_ATTR_MAX_PEERS                             = 0x1\n\tNL80211_PMSR_ATTR_PEERS                                 = 0x5\n\tNL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR                    = 0x3\n\tNL80211_PMSR_ATTR_REPORT_AP_TSF                         = 0x2\n\tNL80211_PMSR_ATTR_TYPE_CAPA                             = 0x4\n\tNL80211_PMSR_FTM_CAPA_ATTR_ASAP                         = 0x1\n\tNL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS                   = 0x6\n\tNL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT          = 0x7\n\tNL80211_PMSR_FTM_CAPA_ATTR_MAX                          = 0xa\n\tNL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST           = 0x8\n\tNL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP                     = 0x2\n\tNL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED            = 0xa\n\tNL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES                    = 0x5\n\tNL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC                 = 0x4\n\tNL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI                      = 0x3\n\tNL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED                = 0x9\n\tNL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS             = 0x7\n\tNL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP              = 0x5\n\tNL80211_PMSR_FTM_FAILURE_NO_RESPONSE                    = 0x1\n\tNL80211_PMSR_FTM_FAILURE_PEER_BUSY                      = 0x6\n\tNL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE               = 0x4\n\tNL80211_PMSR_FTM_FAILURE_REJECTED                       = 0x2\n\tNL80211_PMSR_FTM_FAILURE_UNSPECIFIED                    = 0x0\n\tNL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL                  = 0x3\n\tNL80211_PMSR_FTM_REQ_ATTR_ASAP                          = 0x1\n\tNL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR                     = 0xd\n\tNL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION                = 0x5\n\tNL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD                  = 0x4\n\tNL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST                = 0x6\n\tNL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK                  = 0xc\n\tNL80211_PMSR_FTM_REQ_ATTR_MAX                           = 0xd\n\tNL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED             = 0xb\n\tNL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP                = 0x3\n\tNL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES              = 0x7\n\tNL80211_PMSR_FTM_REQ_ATTR_PREAMBLE                      = 0x2\n\tNL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC              = 0x9\n\tNL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI                   = 0x8\n\tNL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED                 = 0xa\n\tNL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION               = 0x7\n\tNL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX                  = 0x2\n\tNL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME              = 0x5\n\tNL80211_PMSR_FTM_RESP_ATTR_CIVICLOC                     = 0x14\n\tNL80211_PMSR_FTM_RESP_ATTR_DIST_AVG                     = 0x10\n\tNL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD                  = 0x12\n\tNL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE                = 0x11\n\tNL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON                  = 0x1\n\tNL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST               = 0x8\n\tNL80211_PMSR_FTM_RESP_ATTR_LCI                          = 0x13\n\tNL80211_PMSR_FTM_RESP_ATTR_MAX                          = 0x15\n\tNL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP               = 0x6\n\tNL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS            = 0x3\n\tNL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES           = 0x4\n\tNL80211_PMSR_FTM_RESP_ATTR_PAD                          = 0x15\n\tNL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG                     = 0x9\n\tNL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD                  = 0xa\n\tNL80211_PMSR_FTM_RESP_ATTR_RTT_AVG                      = 0xd\n\tNL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD                   = 0xf\n\tNL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE                 = 0xe\n\tNL80211_PMSR_FTM_RESP_ATTR_RX_RATE                      = 0xc\n\tNL80211_PMSR_FTM_RESP_ATTR_TX_RATE                      = 0xb\n\tNL80211_PMSR_PEER_ATTR_ADDR                             = 0x1\n\tNL80211_PMSR_PEER_ATTR_CHAN                             = 0x2\n\tNL80211_PMSR_PEER_ATTR_MAX                              = 0x4\n\tNL80211_PMSR_PEER_ATTR_REQ                              = 0x3\n\tNL80211_PMSR_PEER_ATTR_RESP                             = 0x4\n\tNL80211_PMSR_REQ_ATTR_DATA                              = 0x1\n\tNL80211_PMSR_REQ_ATTR_GET_AP_TSF                        = 0x2\n\tNL80211_PMSR_REQ_ATTR_MAX                               = 0x2\n\tNL80211_PMSR_RESP_ATTR_AP_TSF                           = 0x4\n\tNL80211_PMSR_RESP_ATTR_DATA                             = 0x1\n\tNL80211_PMSR_RESP_ATTR_FINAL                            = 0x5\n\tNL80211_PMSR_RESP_ATTR_HOST_TIME                        = 0x3\n\tNL80211_PMSR_RESP_ATTR_MAX                              = 0x6\n\tNL80211_PMSR_RESP_ATTR_PAD                              = 0x6\n\tNL80211_PMSR_RESP_ATTR_STATUS                           = 0x2\n\tNL80211_PMSR_STATUS_FAILURE                             = 0x3\n\tNL80211_PMSR_STATUS_REFUSED                             = 0x1\n\tNL80211_PMSR_STATUS_SUCCESS                             = 0x0\n\tNL80211_PMSR_STATUS_TIMEOUT                             = 0x2\n\tNL80211_PMSR_TYPE_FTM                                   = 0x1\n\tNL80211_PMSR_TYPE_INVALID                               = 0x0\n\tNL80211_PMSR_TYPE_MAX                                   = 0x1\n\tNL80211_PREAMBLE_DMG                                    = 0x3\n\tNL80211_PREAMBLE_HE                                     = 0x4\n\tNL80211_PREAMBLE_HT                                     = 0x1\n\tNL80211_PREAMBLE_LEGACY                                 = 0x0\n\tNL80211_PREAMBLE_VHT                                    = 0x2\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U               = 0x8\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P                  = 0x4\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2                 = 0x2\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS                  = 0x1\n\tNL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP               = 0x1\n\tNL80211_PS_DISABLED                                     = 0x0\n\tNL80211_PS_ENABLED                                      = 0x1\n\tNL80211_RADAR_CAC_ABORTED                               = 0x2\n\tNL80211_RADAR_CAC_FINISHED                              = 0x1\n\tNL80211_RADAR_CAC_STARTED                               = 0x5\n\tNL80211_RADAR_DETECTED                                  = 0x0\n\tNL80211_RADAR_NOP_FINISHED                              = 0x3\n\tNL80211_RADAR_PRE_CAC_EXPIRED                           = 0x4\n\tNL80211_RATE_INFO_10_MHZ_WIDTH                          = 0xb\n\tNL80211_RATE_INFO_160_MHZ_WIDTH                         = 0xa\n\tNL80211_RATE_INFO_320_MHZ_WIDTH                         = 0x12\n\tNL80211_RATE_INFO_40_MHZ_WIDTH                          = 0x3\n\tNL80211_RATE_INFO_5_MHZ_WIDTH                           = 0xc\n\tNL80211_RATE_INFO_80_MHZ_WIDTH                          = 0x8\n\tNL80211_RATE_INFO_80P80_MHZ_WIDTH                       = 0x9\n\tNL80211_RATE_INFO_BITRATE32                             = 0x5\n\tNL80211_RATE_INFO_BITRATE                               = 0x1\n\tNL80211_RATE_INFO_EHT_GI_0_8                            = 0x0\n\tNL80211_RATE_INFO_EHT_GI_1_6                            = 0x1\n\tNL80211_RATE_INFO_EHT_GI_3_2                            = 0x2\n\tNL80211_RATE_INFO_EHT_GI                                = 0x15\n\tNL80211_RATE_INFO_EHT_MCS                               = 0x13\n\tNL80211_RATE_INFO_EHT_NSS                               = 0x14\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_106                      = 0x3\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_106P26                   = 0x4\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_242                      = 0x5\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_26                       = 0x0\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_2x996                    = 0xb\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484                = 0xc\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_3x996                    = 0xd\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484                = 0xe\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_484                      = 0x6\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_484P242                  = 0x7\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_4x996                    = 0xf\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_52                       = 0x1\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_52P26                    = 0x2\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_996                      = 0x8\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_996P484                  = 0x9\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242              = 0xa\n\tNL80211_RATE_INFO_EHT_RU_ALLOC                          = 0x16\n\tNL80211_RATE_INFO_HE_1XLTF                              = 0x0\n\tNL80211_RATE_INFO_HE_2XLTF                              = 0x1\n\tNL80211_RATE_INFO_HE_4XLTF                              = 0x2\n\tNL80211_RATE_INFO_HE_DCM                                = 0x10\n\tNL80211_RATE_INFO_HE_GI_0_8                             = 0x0\n\tNL80211_RATE_INFO_HE_GI_1_6                             = 0x1\n\tNL80211_RATE_INFO_HE_GI_3_2                             = 0x2\n\tNL80211_RATE_INFO_HE_GI                                 = 0xf\n\tNL80211_RATE_INFO_HE_MCS                                = 0xd\n\tNL80211_RATE_INFO_HE_NSS                                = 0xe\n\tNL80211_RATE_INFO_HE_RU_ALLOC_106                       = 0x2\n\tNL80211_RATE_INFO_HE_RU_ALLOC_242                       = 0x3\n\tNL80211_RATE_INFO_HE_RU_ALLOC_26                        = 0x0\n\tNL80211_RATE_INFO_HE_RU_ALLOC_2x996                     = 0x6\n\tNL80211_RATE_INFO_HE_RU_ALLOC_484                       = 0x4\n\tNL80211_RATE_INFO_HE_RU_ALLOC_52                        = 0x1\n\tNL80211_RATE_INFO_HE_RU_ALLOC_996                       = 0x5\n\tNL80211_RATE_INFO_HE_RU_ALLOC                           = 0x11\n\tNL80211_RATE_INFO_MAX                                   = 0x1d\n\tNL80211_RATE_INFO_MCS                                   = 0x2\n\tNL80211_RATE_INFO_SHORT_GI                              = 0x4\n\tNL80211_RATE_INFO_VHT_MCS                               = 0x6\n\tNL80211_RATE_INFO_VHT_NSS                               = 0x7\n\tNL80211_REGDOM_SET_BY_CORE                              = 0x0\n\tNL80211_REGDOM_SET_BY_COUNTRY_IE                        = 0x3\n\tNL80211_REGDOM_SET_BY_DRIVER                            = 0x2\n\tNL80211_REGDOM_SET_BY_USER                              = 0x1\n\tNL80211_REGDOM_TYPE_COUNTRY                             = 0x0\n\tNL80211_REGDOM_TYPE_CUSTOM_WORLD                        = 0x2\n\tNL80211_REGDOM_TYPE_INTERSECTION                        = 0x3\n\tNL80211_REGDOM_TYPE_WORLD                               = 0x1\n\tNL80211_REG_RULE_ATTR_MAX                               = 0x8\n\tNL80211_REKEY_DATA_AKM                                  = 0x4\n\tNL80211_REKEY_DATA_KCK                                  = 0x2\n\tNL80211_REKEY_DATA_KEK                                  = 0x1\n\tNL80211_REKEY_DATA_REPLAY_CTR                           = 0x3\n\tNL80211_REPLAY_CTR_LEN                                  = 0x8\n\tNL80211_RRF_AUTO_BW                                     = 0x800\n\tNL80211_RRF_DFS                                         = 0x10\n\tNL80211_RRF_GO_CONCURRENT                               = 0x1000\n\tNL80211_RRF_IR_CONCURRENT                               = 0x1000\n\tNL80211_RRF_NO_160MHZ                                   = 0x10000\n\tNL80211_RRF_NO_320MHZ                                   = 0x40000\n\tNL80211_RRF_NO_80MHZ                                    = 0x8000\n\tNL80211_RRF_NO_CCK                                      = 0x2\n\tNL80211_RRF_NO_HE                                       = 0x20000\n\tNL80211_RRF_NO_HT40                                     = 0x6000\n\tNL80211_RRF_NO_HT40MINUS                                = 0x2000\n\tNL80211_RRF_NO_HT40PLUS                                 = 0x4000\n\tNL80211_RRF_NO_IBSS                                     = 0x80\n\tNL80211_RRF_NO_INDOOR                                   = 0x4\n\tNL80211_RRF_NO_IR_ALL                                   = 0x180\n\tNL80211_RRF_NO_IR                                       = 0x80\n\tNL80211_RRF_NO_OFDM                                     = 0x1\n\tNL80211_RRF_NO_OUTDOOR                                  = 0x8\n\tNL80211_RRF_PASSIVE_SCAN                                = 0x80\n\tNL80211_RRF_PTMP_ONLY                                   = 0x40\n\tNL80211_RRF_PTP_ONLY                                    = 0x20\n\tNL80211_RXMGMT_FLAG_ANSWERED                            = 0x1\n\tNL80211_RXMGMT_FLAG_EXTERNAL_AUTH                       = 0x2\n\tNL80211_SAE_PWE_BOTH                                    = 0x3\n\tNL80211_SAE_PWE_HASH_TO_ELEMENT                         = 0x2\n\tNL80211_SAE_PWE_HUNT_AND_PECK                           = 0x1\n\tNL80211_SAE_PWE_UNSPECIFIED                             = 0x0\n\tNL80211_SAR_ATTR_MAX                                    = 0x2\n\tNL80211_SAR_ATTR_SPECS                                  = 0x2\n\tNL80211_SAR_ATTR_SPECS_END_FREQ                         = 0x4\n\tNL80211_SAR_ATTR_SPECS_MAX                              = 0x4\n\tNL80211_SAR_ATTR_SPECS_POWER                            = 0x1\n\tNL80211_SAR_ATTR_SPECS_RANGE_INDEX                      = 0x2\n\tNL80211_SAR_ATTR_SPECS_START_FREQ                       = 0x3\n\tNL80211_SAR_ATTR_TYPE                                   = 0x1\n\tNL80211_SAR_TYPE_POWER                                  = 0x0\n\tNL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP               = 0x20\n\tNL80211_SCAN_FLAG_AP                                    = 0x4\n\tNL80211_SCAN_FLAG_COLOCATED_6GHZ                        = 0x4000\n\tNL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME                 = 0x10\n\tNL80211_SCAN_FLAG_FLUSH                                 = 0x2\n\tNL80211_SCAN_FLAG_FREQ_KHZ                              = 0x2000\n\tNL80211_SCAN_FLAG_HIGH_ACCURACY                         = 0x400\n\tNL80211_SCAN_FLAG_LOW_POWER                             = 0x200\n\tNL80211_SCAN_FLAG_LOW_PRIORITY                          = 0x1\n\tNL80211_SCAN_FLAG_LOW_SPAN                              = 0x100\n\tNL80211_SCAN_FLAG_MIN_PREQ_CONTENT                      = 0x1000\n\tNL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION    = 0x80\n\tNL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE            = 0x40\n\tNL80211_SCAN_FLAG_RANDOM_ADDR                           = 0x8\n\tNL80211_SCAN_FLAG_RANDOM_SN                             = 0x800\n\tNL80211_SCAN_RSSI_THOLD_OFF                             = -0x12c\n\tNL80211_SCHED_SCAN_MATCH_ATTR_BSSID                     = 0x5\n\tNL80211_SCHED_SCAN_MATCH_ATTR_MAX                       = 0x6\n\tNL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI             = 0x3\n\tNL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST               = 0x4\n\tNL80211_SCHED_SCAN_MATCH_ATTR_RSSI                      = 0x2\n\tNL80211_SCHED_SCAN_MATCH_ATTR_SSID                      = 0x1\n\tNL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI                  = 0x6\n\tNL80211_SCHED_SCAN_PLAN_INTERVAL                        = 0x1\n\tNL80211_SCHED_SCAN_PLAN_ITERATIONS                      = 0x2\n\tNL80211_SCHED_SCAN_PLAN_MAX                             = 0x2\n\tNL80211_SMPS_DYNAMIC                                    = 0x2\n\tNL80211_SMPS_MAX                                        = 0x2\n\tNL80211_SMPS_OFF                                        = 0x0\n\tNL80211_SMPS_STATIC                                     = 0x1\n\tNL80211_STA_BSS_PARAM_BEACON_INTERVAL                   = 0x5\n\tNL80211_STA_BSS_PARAM_CTS_PROT                          = 0x1\n\tNL80211_STA_BSS_PARAM_DTIM_PERIOD                       = 0x4\n\tNL80211_STA_BSS_PARAM_MAX                               = 0x5\n\tNL80211_STA_BSS_PARAM_SHORT_PREAMBLE                    = 0x2\n\tNL80211_STA_BSS_PARAM_SHORT_SLOT_TIME                   = 0x3\n\tNL80211_STA_FLAG_ASSOCIATED                             = 0x7\n\tNL80211_STA_FLAG_AUTHENTICATED                          = 0x5\n\tNL80211_STA_FLAG_AUTHORIZED                             = 0x1\n\tNL80211_STA_FLAG_MAX                                    = 0x8\n\tNL80211_STA_FLAG_MAX_OLD_API                            = 0x6\n\tNL80211_STA_FLAG_MFP                                    = 0x4\n\tNL80211_STA_FLAG_SHORT_PREAMBLE                         = 0x2\n\tNL80211_STA_FLAG_TDLS_PEER                              = 0x6\n\tNL80211_STA_FLAG_WME                                    = 0x3\n\tNL80211_STA_INFO_ACK_SIGNAL_AVG                         = 0x23\n\tNL80211_STA_INFO_ACK_SIGNAL                             = 0x22\n\tNL80211_STA_INFO_AIRTIME_LINK_METRIC                    = 0x29\n\tNL80211_STA_INFO_AIRTIME_WEIGHT                         = 0x28\n\tNL80211_STA_INFO_ASSOC_AT_BOOTTIME                      = 0x2a\n\tNL80211_STA_INFO_BEACON_LOSS                            = 0x12\n\tNL80211_STA_INFO_BEACON_RX                              = 0x1d\n\tNL80211_STA_INFO_BEACON_SIGNAL_AVG                      = 0x1e\n\tNL80211_STA_INFO_BSS_PARAM                              = 0xf\n\tNL80211_STA_INFO_CHAIN_SIGNAL_AVG                       = 0x1a\n\tNL80211_STA_INFO_CHAIN_SIGNAL                           = 0x19\n\tNL80211_STA_INFO_CONNECTED_TIME                         = 0x10\n\tNL80211_STA_INFO_CONNECTED_TO_AS                        = 0x2b\n\tNL80211_STA_INFO_CONNECTED_TO_GATE                      = 0x26\n\tNL80211_STA_INFO_DATA_ACK_SIGNAL_AVG                    = 0x23\n\tNL80211_STA_INFO_EXPECTED_THROUGHPUT                    = 0x1b\n\tNL80211_STA_INFO_FCS_ERROR_COUNT                        = 0x25\n\tNL80211_STA_INFO_INACTIVE_TIME                          = 0x1\n\tNL80211_STA_INFO_LLID                                   = 0x4\n\tNL80211_STA_INFO_LOCAL_PM                               = 0x14\n\tNL80211_STA_INFO_MAX                                    = 0x2b\n\tNL80211_STA_INFO_NONPEER_PM                             = 0x16\n\tNL80211_STA_INFO_PAD                                    = 0x21\n\tNL80211_STA_INFO_PEER_PM                                = 0x15\n\tNL80211_STA_INFO_PLID                                   = 0x5\n\tNL80211_STA_INFO_PLINK_STATE                            = 0x6\n\tNL80211_STA_INFO_RX_BITRATE                             = 0xe\n\tNL80211_STA_INFO_RX_BYTES64                             = 0x17\n\tNL80211_STA_INFO_RX_BYTES                               = 0x2\n\tNL80211_STA_INFO_RX_DROP_MISC                           = 0x1c\n\tNL80211_STA_INFO_RX_DURATION                            = 0x20\n\tNL80211_STA_INFO_RX_MPDUS                               = 0x24\n\tNL80211_STA_INFO_RX_PACKETS                             = 0x9\n\tNL80211_STA_INFO_SIGNAL_AVG                             = 0xd\n\tNL80211_STA_INFO_SIGNAL                                 = 0x7\n\tNL80211_STA_INFO_STA_FLAGS                              = 0x11\n\tNL80211_STA_INFO_TID_STATS                              = 0x1f\n\tNL80211_STA_INFO_T_OFFSET                               = 0x13\n\tNL80211_STA_INFO_TX_BITRATE                             = 0x8\n\tNL80211_STA_INFO_TX_BYTES64                             = 0x18\n\tNL80211_STA_INFO_TX_BYTES                               = 0x3\n\tNL80211_STA_INFO_TX_DURATION                            = 0x27\n\tNL80211_STA_INFO_TX_FAILED                              = 0xc\n\tNL80211_STA_INFO_TX_PACKETS                             = 0xa\n\tNL80211_STA_INFO_TX_RETRIES                             = 0xb\n\tNL80211_STA_WME_MAX                                     = 0x2\n\tNL80211_STA_WME_MAX_SP                                  = 0x2\n\tNL80211_STA_WME_UAPSD_QUEUES                            = 0x1\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_BUSY                   = 0x5\n\tNL80211_SURVEY_INFO_CHANNEL_TIME                        = 0x4\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY               = 0x6\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_RX                     = 0x7\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_TX                     = 0x8\n\tNL80211_SURVEY_INFO_FREQUENCY                           = 0x1\n\tNL80211_SURVEY_INFO_FREQUENCY_OFFSET                    = 0xc\n\tNL80211_SURVEY_INFO_IN_USE                              = 0x3\n\tNL80211_SURVEY_INFO_MAX                                 = 0xc\n\tNL80211_SURVEY_INFO_NOISE                               = 0x2\n\tNL80211_SURVEY_INFO_PAD                                 = 0xa\n\tNL80211_SURVEY_INFO_TIME_BSS_RX                         = 0xb\n\tNL80211_SURVEY_INFO_TIME_BUSY                           = 0x5\n\tNL80211_SURVEY_INFO_TIME                                = 0x4\n\tNL80211_SURVEY_INFO_TIME_EXT_BUSY                       = 0x6\n\tNL80211_SURVEY_INFO_TIME_RX                             = 0x7\n\tNL80211_SURVEY_INFO_TIME_SCAN                           = 0x9\n\tNL80211_SURVEY_INFO_TIME_TX                             = 0x8\n\tNL80211_TDLS_DISABLE_LINK                               = 0x4\n\tNL80211_TDLS_DISCOVERY_REQ                              = 0x0\n\tNL80211_TDLS_ENABLE_LINK                                = 0x3\n\tNL80211_TDLS_PEER_HE                                    = 0x8\n\tNL80211_TDLS_PEER_HT                                    = 0x1\n\tNL80211_TDLS_PEER_VHT                                   = 0x2\n\tNL80211_TDLS_PEER_WMM                                   = 0x4\n\tNL80211_TDLS_SETUP                                      = 0x1\n\tNL80211_TDLS_TEARDOWN                                   = 0x2\n\tNL80211_TID_CONFIG_ATTR_AMPDU_CTRL                      = 0x9\n\tNL80211_TID_CONFIG_ATTR_AMSDU_CTRL                      = 0xb\n\tNL80211_TID_CONFIG_ATTR_MAX                             = 0xd\n\tNL80211_TID_CONFIG_ATTR_NOACK                           = 0x6\n\tNL80211_TID_CONFIG_ATTR_OVERRIDE                        = 0x4\n\tNL80211_TID_CONFIG_ATTR_PAD                             = 0x1\n\tNL80211_TID_CONFIG_ATTR_PEER_SUPP                       = 0x3\n\tNL80211_TID_CONFIG_ATTR_RETRY_LONG                      = 0x8\n\tNL80211_TID_CONFIG_ATTR_RETRY_SHORT                     = 0x7\n\tNL80211_TID_CONFIG_ATTR_RTSCTS_CTRL                     = 0xa\n\tNL80211_TID_CONFIG_ATTR_TIDS                            = 0x5\n\tNL80211_TID_CONFIG_ATTR_TX_RATE                         = 0xd\n\tNL80211_TID_CONFIG_ATTR_TX_RATE_TYPE                    = 0xc\n\tNL80211_TID_CONFIG_ATTR_VIF_SUPP                        = 0x2\n\tNL80211_TID_CONFIG_DISABLE                              = 0x1\n\tNL80211_TID_CONFIG_ENABLE                               = 0x0\n\tNL80211_TID_STATS_MAX                                   = 0x6\n\tNL80211_TID_STATS_PAD                                   = 0x5\n\tNL80211_TID_STATS_RX_MSDU                               = 0x1\n\tNL80211_TID_STATS_TX_MSDU                               = 0x2\n\tNL80211_TID_STATS_TX_MSDU_FAILED                        = 0x4\n\tNL80211_TID_STATS_TX_MSDU_RETRIES                       = 0x3\n\tNL80211_TID_STATS_TXQ_STATS                             = 0x6\n\tNL80211_TIMEOUT_ASSOC                                   = 0x3\n\tNL80211_TIMEOUT_AUTH                                    = 0x2\n\tNL80211_TIMEOUT_SCAN                                    = 0x1\n\tNL80211_TIMEOUT_UNSPECIFIED                             = 0x0\n\tNL80211_TKIP_DATA_OFFSET_ENCR_KEY                       = 0x0\n\tNL80211_TKIP_DATA_OFFSET_RX_MIC_KEY                     = 0x18\n\tNL80211_TKIP_DATA_OFFSET_TX_MIC_KEY                     = 0x10\n\tNL80211_TX_POWER_AUTOMATIC                              = 0x0\n\tNL80211_TX_POWER_FIXED                                  = 0x2\n\tNL80211_TX_POWER_LIMITED                                = 0x1\n\tNL80211_TXQ_ATTR_AC                                     = 0x1\n\tNL80211_TXQ_ATTR_AIFS                                   = 0x5\n\tNL80211_TXQ_ATTR_CWMAX                                  = 0x4\n\tNL80211_TXQ_ATTR_CWMIN                                  = 0x3\n\tNL80211_TXQ_ATTR_MAX                                    = 0x5\n\tNL80211_TXQ_ATTR_QUEUE                                  = 0x1\n\tNL80211_TXQ_ATTR_TXOP                                   = 0x2\n\tNL80211_TXQ_Q_BE                                        = 0x2\n\tNL80211_TXQ_Q_BK                                        = 0x3\n\tNL80211_TXQ_Q_VI                                        = 0x1\n\tNL80211_TXQ_Q_VO                                        = 0x0\n\tNL80211_TXQ_STATS_BACKLOG_BYTES                         = 0x1\n\tNL80211_TXQ_STATS_BACKLOG_PACKETS                       = 0x2\n\tNL80211_TXQ_STATS_COLLISIONS                            = 0x8\n\tNL80211_TXQ_STATS_DROPS                                 = 0x4\n\tNL80211_TXQ_STATS_ECN_MARKS                             = 0x5\n\tNL80211_TXQ_STATS_FLOWS                                 = 0x3\n\tNL80211_TXQ_STATS_MAX                                   = 0xb\n\tNL80211_TXQ_STATS_MAX_FLOWS                             = 0xb\n\tNL80211_TXQ_STATS_OVERLIMIT                             = 0x6\n\tNL80211_TXQ_STATS_OVERMEMORY                            = 0x7\n\tNL80211_TXQ_STATS_TX_BYTES                              = 0x9\n\tNL80211_TXQ_STATS_TX_PACKETS                            = 0xa\n\tNL80211_TX_RATE_AUTOMATIC                               = 0x0\n\tNL80211_TXRATE_DEFAULT_GI                               = 0x0\n\tNL80211_TX_RATE_FIXED                                   = 0x2\n\tNL80211_TXRATE_FORCE_LGI                                = 0x2\n\tNL80211_TXRATE_FORCE_SGI                                = 0x1\n\tNL80211_TXRATE_GI                                       = 0x4\n\tNL80211_TXRATE_HE                                       = 0x5\n\tNL80211_TXRATE_HE_GI                                    = 0x6\n\tNL80211_TXRATE_HE_LTF                                   = 0x7\n\tNL80211_TXRATE_HT                                       = 0x2\n\tNL80211_TXRATE_LEGACY                                   = 0x1\n\tNL80211_TX_RATE_LIMITED                                 = 0x1\n\tNL80211_TXRATE_MAX                                      = 0x7\n\tNL80211_TXRATE_MCS                                      = 0x2\n\tNL80211_TXRATE_VHT                                      = 0x3\n\tNL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT                 = 0x1\n\tNL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX                 = 0x2\n\tNL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL                = 0x2\n\tNL80211_USER_REG_HINT_CELL_BASE                         = 0x1\n\tNL80211_USER_REG_HINT_INDOOR                            = 0x2\n\tNL80211_USER_REG_HINT_USER                              = 0x0\n\tNL80211_VENDOR_ID_IS_LINUX                              = 0x80000000\n\tNL80211_VHT_CAPABILITY_LEN                              = 0xc\n\tNL80211_VHT_NSS_MAX                                     = 0x8\n\tNL80211_WIPHY_NAME_MAXLEN                               = 0x40\n\tNL80211_WMMR_AIFSN                                      = 0x3\n\tNL80211_WMMR_CW_MAX                                     = 0x2\n\tNL80211_WMMR_CW_MIN                                     = 0x1\n\tNL80211_WMMR_MAX                                        = 0x4\n\tNL80211_WMMR_TXOP                                       = 0x4\n\tNL80211_WOWLAN_PKTPAT_MASK                              = 0x1\n\tNL80211_WOWLAN_PKTPAT_OFFSET                            = 0x3\n\tNL80211_WOWLAN_PKTPAT_PATTERN                           = 0x2\n\tNL80211_WOWLAN_TCP_DATA_INTERVAL                        = 0x9\n\tNL80211_WOWLAN_TCP_DATA_PAYLOAD                         = 0x6\n\tNL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ                     = 0x7\n\tNL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN                   = 0x8\n\tNL80211_WOWLAN_TCP_DST_IPV4                             = 0x2\n\tNL80211_WOWLAN_TCP_DST_MAC                              = 0x3\n\tNL80211_WOWLAN_TCP_DST_PORT                             = 0x5\n\tNL80211_WOWLAN_TCP_SRC_IPV4                             = 0x1\n\tNL80211_WOWLAN_TCP_SRC_PORT                             = 0x4\n\tNL80211_WOWLAN_TCP_WAKE_MASK                            = 0xb\n\tNL80211_WOWLAN_TCP_WAKE_PAYLOAD                         = 0xa\n\tNL80211_WOWLAN_TRIG_4WAY_HANDSHAKE                      = 0x8\n\tNL80211_WOWLAN_TRIG_ANY                                 = 0x1\n\tNL80211_WOWLAN_TRIG_DISCONNECT                          = 0x2\n\tNL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST                   = 0x7\n\tNL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE                   = 0x6\n\tNL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED                 = 0x5\n\tNL80211_WOWLAN_TRIG_MAGIC_PKT                           = 0x3\n\tNL80211_WOWLAN_TRIG_NET_DETECT                          = 0x12\n\tNL80211_WOWLAN_TRIG_NET_DETECT_RESULTS                  = 0x13\n\tNL80211_WOWLAN_TRIG_PKT_PATTERN                         = 0x4\n\tNL80211_WOWLAN_TRIG_RFKILL_RELEASE                      = 0x9\n\tNL80211_WOWLAN_TRIG_TCP_CONNECTION                      = 0xe\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_80211                    = 0xa\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN                = 0xb\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_8023                     = 0xc\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN                 = 0xd\n\tNL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST                 = 0x10\n\tNL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH                    = 0xf\n\tNL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS             = 0x11\n\tNL80211_WPA_VERSION_1                                   = 0x1\n\tNL80211_WPA_VERSION_2                                   = 0x2\n\tNL80211_WPA_VERSION_3                                   = 0x4\n)\n\nconst (\n\tFRA_UNSPEC             = 0x0\n\tFRA_DST                = 0x1\n\tFRA_SRC                = 0x2\n\tFRA_IIFNAME            = 0x3\n\tFRA_GOTO               = 0x4\n\tFRA_UNUSED2            = 0x5\n\tFRA_PRIORITY           = 0x6\n\tFRA_UNUSED3            = 0x7\n\tFRA_UNUSED4            = 0x8\n\tFRA_UNUSED5            = 0x9\n\tFRA_FWMARK             = 0xa\n\tFRA_FLOW               = 0xb\n\tFRA_TUN_ID             = 0xc\n\tFRA_SUPPRESS_IFGROUP   = 0xd\n\tFRA_SUPPRESS_PREFIXLEN = 0xe\n\tFRA_TABLE              = 0xf\n\tFRA_FWMASK             = 0x10\n\tFRA_OIFNAME            = 0x11\n\tFRA_PAD                = 0x12\n\tFRA_L3MDEV             = 0x13\n\tFRA_UID_RANGE          = 0x14\n\tFRA_PROTOCOL           = 0x15\n\tFRA_IP_PROTO           = 0x16\n\tFRA_SPORT_RANGE        = 0x17\n\tFRA_DPORT_RANGE        = 0x18\n\tFR_ACT_UNSPEC          = 0x0\n\tFR_ACT_TO_TBL          = 0x1\n\tFR_ACT_GOTO            = 0x2\n\tFR_ACT_NOP             = 0x3\n\tFR_ACT_RES3            = 0x4\n\tFR_ACT_RES4            = 0x5\n\tFR_ACT_BLACKHOLE       = 0x6\n\tFR_ACT_UNREACHABLE     = 0x7\n\tFR_ACT_PROHIBIT        = 0x8\n)\n\nconst (\n\tAUDIT_NLGRP_NONE    = 0x0\n\tAUDIT_NLGRP_READLOG = 0x1\n)\n\nconst (\n\tTUN_F_CSUM    = 0x1\n\tTUN_F_TSO4    = 0x2\n\tTUN_F_TSO6    = 0x4\n\tTUN_F_TSO_ECN = 0x8\n\tTUN_F_UFO     = 0x10\n\tTUN_F_USO4    = 0x20\n\tTUN_F_USO6    = 0x40\n)\n\nconst (\n\tVIRTIO_NET_HDR_F_NEEDS_CSUM = 0x1\n\tVIRTIO_NET_HDR_F_DATA_VALID = 0x2\n\tVIRTIO_NET_HDR_F_RSC_INFO   = 0x4\n)\n\nconst (\n\tVIRTIO_NET_HDR_GSO_NONE   = 0x0\n\tVIRTIO_NET_HDR_GSO_TCPV4  = 0x1\n\tVIRTIO_NET_HDR_GSO_UDP    = 0x3\n\tVIRTIO_NET_HDR_GSO_TCPV6  = 0x4\n\tVIRTIO_NET_HDR_GSO_UDP_L4 = 0x5\n\tVIRTIO_NET_HDR_GSO_ECN    = 0x80\n)\n\ntype SchedAttr struct {\n\tSize     uint32\n\tPolicy   uint32\n\tFlags    uint64\n\tNice     int32\n\tPriority uint32\n\tRuntime  uint64\n\tDeadline uint64\n\tPeriod   uint64\n\tUtil_min uint32\n\tUtil_max uint32\n}\n\nconst SizeofSchedAttr = 0x38\n\ntype Cachestat_t struct {\n\tCache            uint64\n\tDirty            uint64\n\tWriteback        uint64\n\tEvicted          uint64\n\tRecently_evicted uint64\n}\ntype CachestatRange struct {\n\tOff uint64\n\tLen uint64\n}\n\nconst (\n\tSK_MEMINFO_RMEM_ALLOC          = 0x0\n\tSK_MEMINFO_RCVBUF              = 0x1\n\tSK_MEMINFO_WMEM_ALLOC          = 0x2\n\tSK_MEMINFO_SNDBUF              = 0x3\n\tSK_MEMINFO_FWD_ALLOC           = 0x4\n\tSK_MEMINFO_WMEM_QUEUED         = 0x5\n\tSK_MEMINFO_OPTMEM              = 0x6\n\tSK_MEMINFO_BACKLOG             = 0x7\n\tSK_MEMINFO_DROPS               = 0x8\n\tSK_MEMINFO_VARS                = 0x9\n\tSKNLGRP_NONE                   = 0x0\n\tSKNLGRP_INET_TCP_DESTROY       = 0x1\n\tSKNLGRP_INET_UDP_DESTROY       = 0x2\n\tSKNLGRP_INET6_TCP_DESTROY      = 0x3\n\tSKNLGRP_INET6_UDP_DESTROY      = 0x4\n\tSK_DIAG_BPF_STORAGE_REQ_NONE   = 0x0\n\tSK_DIAG_BPF_STORAGE_REQ_MAP_FD = 0x1\n\tSK_DIAG_BPF_STORAGE_REP_NONE   = 0x0\n\tSK_DIAG_BPF_STORAGE            = 0x1\n\tSK_DIAG_BPF_STORAGE_NONE       = 0x0\n\tSK_DIAG_BPF_STORAGE_PAD        = 0x1\n\tSK_DIAG_BPF_STORAGE_MAP_ID     = 0x2\n\tSK_DIAG_BPF_STORAGE_MAP_VALUE  = 0x3\n)\n\ntype SockDiagReq struct {\n\tFamily   uint8\n\tProtocol uint8\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_386.go",
    "content": "// cgo -godefs -objdir=/tmp/386/cgo -- -Wall -Werror -static -I/tmp/386/include -m32 linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\t_       uint32\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\tSize    int64\n\tBlksize int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tIno     uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [1]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tEbx      int32\n\tEcx      int32\n\tEdx      int32\n\tEsi      int32\n\tEdi      int32\n\tEbp      int32\n\tEax      int32\n\tXds      int32\n\tXes      int32\n\tXfs      int32\n\tXgs      int32\n\tOrig_eax int32\n\tEip      int32\n\tXcs      int32\n\tEflags   int32\n\tEsp      int32\n\tXss      int32\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFrsize  int32\n\tFlags   int32\n\tSpare   [4]int32\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint32\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800470a1\n\tPPS_SETPARAMS = 0x400470a2\n\tPPS_GETCAP    = 0x800470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    [2]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tAtime_high uint32\n\tDtime      uint32\n\tDtime_high uint32\n\tCtime      uint32\n\tCtime_high uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\t_          uint32\n\t_          uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go",
    "content": "// cgo -godefs -objdir=/tmp/amd64/cgo -- -Wall -Werror -static -I/tmp/amd64/include -m64 linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [3]int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tR15      uint64\n\tR14      uint64\n\tR13      uint64\n\tR12      uint64\n\tRbp      uint64\n\tRbx      uint64\n\tR11      uint64\n\tR10      uint64\n\tR9       uint64\n\tR8       uint64\n\tRax      uint64\n\tRcx      uint64\n\tRdx      uint64\n\tRsi      uint64\n\tRdi      uint64\n\tOrig_rax uint64\n\tRip      uint64\n\tCs       uint64\n\tEflags   uint64\n\tRsp      uint64\n\tSs       uint64\n\tFs_base  uint64\n\tGs_base  uint64\n\tDs       uint64\n\tEs       uint64\n\tFs       uint64\n\tGs       uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_arm.go",
    "content": "// cgo -godefs -objdir=/tmp/arm/cgo -- -Wall -Werror -static -I/tmp/arm/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\t_       uint32\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\t_       [4]byte\n\tSize    int64\n\tBlksize int32\n\t_       [4]byte\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tIno     uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tUregs [18]uint32\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]uint8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]uint8\n\tFpack  [6]uint8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFrsize  int32\n\tFlags   int32\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint32\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]uint8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800470a1\n\tPPS_SETPARAMS = 0x400470a2\n\tPPS_GETCAP    = 0x800470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    [2]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tAtime_high uint32\n\tDtime      uint32\n\tDtime_high uint32\n\tCtime      uint32\n\tCtime_high uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\t_          uint32\n\t_          uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go",
    "content": "// cgo -godefs -objdir=/tmp/arm64/cgo -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint64\n\tSize    int64\n\tBlksize int32\n\t_       int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [2]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs   [31]uint64\n\tSp     uint64\n\tPc     uint64\n\tPstate uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go",
    "content": "// cgo -godefs -objdir=/tmp/loong64/cgo -- -Wall -Werror -static -I/tmp/loong64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build loong64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint64\n\tSize    int64\n\tBlksize int32\n\t_       int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [2]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tOrig_a0  uint64\n\tEra      uint64\n\tBadv     uint64\n\tReserved [10]uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips.go",
    "content": "// cgo -godefs -objdir=/tmp/mips/cgo -- -Wall -Werror -static -I/tmp/mips/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]int32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]int32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tPad4    int32\n\tBlocks  int64\n\tPad5    [14]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tFrsize  int32\n\t_       [4]byte\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFlags   int32\n\tSpare   [5]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint32\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400470a1\n\tPPS_SETPARAMS = 0x800470a2\n\tPPS_GETCAP    = 0x400470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tDtime      uint32\n\tCtime      uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\tAtime_high uint16\n\tDtime_high uint16\n\tCtime_high uint16\n\t_          uint16\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go",
    "content": "// cgo -godefs -objdir=/tmp/mips64/cgo -- -Wall -Werror -static -I/tmp/mips64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]uint32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]uint32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize uint32\n\tPad4    uint32\n\tBlocks  int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tFrsize  int64\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFlags   int64\n\tSpare   [5]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go",
    "content": "// cgo -godefs -objdir=/tmp/mips64le/cgo -- -Wall -Werror -static -I/tmp/mips64le/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64le && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]uint32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]uint32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize uint32\n\tPad4    uint32\n\tBlocks  int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tFrsize  int64\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFlags   int64\n\tSpare   [5]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go",
    "content": "// cgo -godefs -objdir=/tmp/mipsle/cgo -- -Wall -Werror -static -I/tmp/mipsle/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mipsle && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]int32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]int32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tPad4    int32\n\tBlocks  int64\n\tPad5    [14]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tFrsize  int32\n\t_       [4]byte\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFlags   int32\n\tSpare   [5]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint32\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400470a1\n\tPPS_SETPARAMS = 0x800470a2\n\tPPS_GETCAP    = 0x400470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tDtime      uint32\n\tCtime      uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\tAtime_high uint16\n\tDtime_high uint16\n\tCtime_high uint16\n\t_          uint16\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go",
    "content": "// cgo -godefs -objdir=/tmp/ppc/cgo -- -Wall -Werror -static -I/tmp/ppc/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\t_       [4]byte\n\tSize    int64\n\tBlksize int32\n\t_       [4]byte\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint32\n\t_       uint32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tGpr       [32]uint32\n\tNip       uint32\n\tMsr       uint32\n\tOrig_gpr3 uint32\n\tCtr       uint32\n\tLink      uint32\n\tXer       uint32\n\tCcr       uint32\n\tMq        uint32\n\tTrap      uint32\n\tDar       uint32\n\tDsisr     uint32\n\tResult    uint32\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]uint8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]uint8\n\tFpack  [6]uint8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [19]uint8\n\tLine   uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFrsize  int32\n\tFlags   int32\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint32\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]uint8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400470a1\n\tPPS_SETPARAMS = 0x800470a2\n\tPPS_GETCAP    = 0x400470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\tSeq  uint32\n\t_    uint32\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tAtime_high uint32\n\tAtime      uint32\n\tDtime_high uint32\n\tDtime      uint32\n\tCtime_high uint32\n\tCtime      uint32\n\t_          uint32\n\tSegsz      uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\t_          uint32\n\t_          uint32\n\t_          [4]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go",
    "content": "// cgo -godefs -objdir=/tmp/ppc64/cgo -- -Wall -Werror -static -I/tmp/ppc64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n\t_       uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tGpr       [32]uint64\n\tNip       uint64\n\tMsr       uint64\n\tOrig_gpr3 uint64\n\tCtr       uint64\n\tLink      uint64\n\tXer       uint64\n\tCcr       uint64\n\tSofte     uint64\n\tTrap      uint64\n\tDar       uint64\n\tDsisr     uint64\n\tResult    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [19]uint8\n\tLine   uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\tSeq  uint32\n\t_    uint32\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tSegsz  uint64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go",
    "content": "// cgo -godefs -objdir=/tmp/ppc64le/cgo -- -Wall -Werror -static -I/tmp/ppc64le/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64le && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n\t_       uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tGpr       [32]uint64\n\tNip       uint64\n\tMsr       uint64\n\tOrig_gpr3 uint64\n\tCtr       uint64\n\tLink      uint64\n\tXer       uint64\n\tCcr       uint64\n\tSofte     uint64\n\tTrap      uint64\n\tDar       uint64\n\tDsisr     uint64\n\tResult    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [19]uint8\n\tLine   uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\tSeq  uint32\n\t_    uint32\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tSegsz  uint64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go",
    "content": "// cgo -godefs -objdir=/tmp/riscv64/cgo -- -Wall -Werror -static -I/tmp/riscv64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint64\n\tSize    int64\n\tBlksize int32\n\t_       int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [2]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tPc  uint64\n\tRa  uint64\n\tSp  uint64\n\tGp  uint64\n\tTp  uint64\n\tT0  uint64\n\tT1  uint64\n\tT2  uint64\n\tS0  uint64\n\tS1  uint64\n\tA0  uint64\n\tA1  uint64\n\tA2  uint64\n\tA3  uint64\n\tA4  uint64\n\tA5  uint64\n\tA6  uint64\n\tA7  uint64\n\tS2  uint64\n\tS3  uint64\n\tS4  uint64\n\tS5  uint64\n\tS6  uint64\n\tS7  uint64\n\tS8  uint64\n\tS9  uint64\n\tS10 uint64\n\tS11 uint64\n\tT3  uint64\n\tT4  uint64\n\tT5  uint64\n\tT6  uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n\ntype RISCVHWProbePairs struct {\n\tKey   int64\n\tValue uint64\n}\n\nconst (\n\tRISCV_HWPROBE_KEY_MVENDORID          = 0x0\n\tRISCV_HWPROBE_KEY_MARCHID            = 0x1\n\tRISCV_HWPROBE_KEY_MIMPID             = 0x2\n\tRISCV_HWPROBE_KEY_BASE_BEHAVIOR      = 0x3\n\tRISCV_HWPROBE_BASE_BEHAVIOR_IMA      = 0x1\n\tRISCV_HWPROBE_KEY_IMA_EXT_0          = 0x4\n\tRISCV_HWPROBE_IMA_FD                 = 0x1\n\tRISCV_HWPROBE_IMA_C                  = 0x2\n\tRISCV_HWPROBE_IMA_V                  = 0x4\n\tRISCV_HWPROBE_EXT_ZBA                = 0x8\n\tRISCV_HWPROBE_EXT_ZBB                = 0x10\n\tRISCV_HWPROBE_EXT_ZBS                = 0x20\n\tRISCV_HWPROBE_KEY_CPUPERF_0          = 0x5\n\tRISCV_HWPROBE_MISALIGNED_UNKNOWN     = 0x0\n\tRISCV_HWPROBE_MISALIGNED_EMULATED    = 0x1\n\tRISCV_HWPROBE_MISALIGNED_SLOW        = 0x2\n\tRISCV_HWPROBE_MISALIGNED_FAST        = 0x3\n\tRISCV_HWPROBE_MISALIGNED_UNSUPPORTED = 0x4\n\tRISCV_HWPROBE_MISALIGNED_MASK        = 0x7\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go",
    "content": "// cgo -godefs -objdir=/tmp/s390x/cgo -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build s390x && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int64\n\tBlocks  int64\n\t_       [3]int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x6\n\tFADV_NOREUSE  = 0x7\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tPsw                      PtracePsw\n\tGprs                     [16]uint64\n\tAcrs                     [16]uint32\n\tOrig_gpr2                uint64\n\tFp_regs                  PtraceFpregs\n\tPer_info                 PtracePer\n\tIeee_instruction_pointer uint64\n}\n\ntype PtracePsw struct {\n\tMask uint64\n\tAddr uint64\n}\n\ntype PtraceFpregs struct {\n\tFpc  uint32\n\tFprs [16]float64\n}\n\ntype PtracePer struct {\n\tControl_regs  [3]uint64\n\t_             [8]byte\n\tStarting_addr uint64\n\tEnding_addr   uint64\n\tPerc_atmid    uint16\n\tAddress       uint64\n\tAccess_id     uint8\n\t_             [7]byte\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    uint32\n\tBsize   uint32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen uint32\n\tFrsize  uint32\n\tFlags   uint32\n\tSpare   [4]uint32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint64\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    uint16\n\tSeq  uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go",
    "content": "// cgo -godefs -objdir=/tmp/sparc64/cgo -- -Wall -Werror -static -I/tmp/sparc64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build sparc64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      int16\n\t_      [2]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs   [16]uint64\n\tTstate uint64\n\tTpc    uint64\n\tTnpc   uint64\n\tY      uint32\n\tMagic  uint32\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x400000\n)\n\nconst (\n\tPOLLRDHUP = 0x800\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x4\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x4000\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    uint16\n\tSeq  uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tSegsz  uint64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint32\n\tBsize       uint32\n\tFrsize      uint32\n\tIosize      uint32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint32\n\tNamemax     uint32\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter uint32\n\tFlags  uint32\n\tFflags uint32\n\tData   int64\n\tUdata  int32\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x84\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n\tPad_cgo_1 [4]byte\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint64\n\tBsize       uint64\n\tFrsize      uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint64\n\tNamemax     uint64\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\t_           [4]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tPad_cgo_0  [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\tPad_cgo_1  [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint64\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tPad_cgo_0 [4]byte\n\tData      int64\n\tUdata     int64\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen       uint32\n\tPad_cgo_0 [4]byte\n\tInsns     *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec       int64\n\tNsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint32\n\tBsize       uint32\n\tFrsize      uint32\n\tIosize      uint32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint32\n\tNamemax     uint32\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint32\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tData      int64\n\tUdata     int32\n\tPad_cgo_0 [4]byte\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint64\n\tBsize       uint64\n\tFrsize      uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint64\n\tNamemax     uint64\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\t_           [4]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tPad_cgo_0  [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\tPad_cgo_1  [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint64\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tPad_cgo_0 [4]byte\n\tData      int64\n\tUdata     int64\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen       uint32\n\tPad_cgo_0 [4]byte\n\tInsns     *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go",
    "content": "// cgo -godefs types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa0\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go",
    "content": "// cgo -godefs types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n\t_    [4]byte\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       [4]byte\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\t_             [4]byte\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\t_      [4]byte\n\tData   int64\n\tUdata  *byte\n\t_      [4]byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\t_            [4]byte\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct{}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct{}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go",
    "content": "// cgo -godefs types_solaris.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && solaris\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x400\n\tMaxHostNameLen = 0x100\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tBlocks  int64\n\tFstype  [16]int8\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tSysid  int32\n\tPid    int32\n\tPad    [4]int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tName   [1]int8\n\t_      [5]byte\n}\n\ntype _Fsblkcnt_t uint64\n\ntype Statvfs_t struct {\n\tBsize    uint64\n\tFrsize   uint64\n\tBlocks   uint64\n\tBfree    uint64\n\tBavail   uint64\n\tFiles    uint64\n\tFfree    uint64\n\tFavail   uint64\n\tFsid     uint64\n\tBasetype [16]int8\n\tFlag     uint64\n\tNamemax  uint64\n\tFstr     [32]int8\n}\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n\t_        uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tFamily uint16\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [244]int8\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [236]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName         *byte\n\tNamelen      uint32\n\tIov          *Iovec\n\tIovlen       int32\n\tAccrights    *int8\n\tAccrightslen int32\n\t_            [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x20\n\tSizeofSockaddrAny      = 0xfc\n\tSizeofSockaddrUnix     = 0x6e\n\tSizeofSockaddrDatalink = 0xfc\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet4Pktinfo     = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x24\n\tSizeofICMPv6Filter     = 0x20\n)\n\ntype FdSet struct {\n\tBits [1024]int64\n}\n\ntype Utsname struct {\n\tSysname  [257]byte\n\tNodename [257]byte\n\tRelease  [257]byte\n\tVersion  [257]byte\n\tMachine  [257]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int64\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\nconst (\n\tAT_FDCWD            = 0xffd19553\n\tAT_SYMLINK_NOFOLLOW = 0x1000\n\tAT_SYMLINK_FOLLOW   = 0x2000\n\tAT_REMOVEDIR        = 0x1\n\tAT_EACCESS          = 0x4\n)\n\nconst (\n\tSizeofIfMsghdr  = 0x54\n\tSizeofIfData    = 0x44\n\tSizeofIfaMsghdr = 0x14\n\tSizeofRtMsghdr  = 0x4c\n\tSizeofRtMetrics = 0x28\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tLastchange Timeval32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tMetric  int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint64\n\tDrop uint64\n\tCapt uint64\n\t_    [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [19]uint8\n\t_     [1]byte\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  int8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype fileObj struct {\n\tAtim Timespec\n\tMtim Timespec\n\tCtim Timespec\n\tPad  [3]uint64\n\tName *int8\n}\n\ntype portEvent struct {\n\tEvents int32\n\tSource uint16\n\tPad    uint16\n\tObject uint64\n\tUser   *byte\n}\n\nconst (\n\tPORT_SOURCE_AIO    = 0x1\n\tPORT_SOURCE_TIMER  = 0x2\n\tPORT_SOURCE_USER   = 0x3\n\tPORT_SOURCE_FD     = 0x4\n\tPORT_SOURCE_ALERT  = 0x5\n\tPORT_SOURCE_MQ     = 0x6\n\tPORT_SOURCE_FILE   = 0x7\n\tPORT_ALERT_SET     = 0x1\n\tPORT_ALERT_UPDATE  = 0x2\n\tPORT_ALERT_INVALID = 0x3\n\tFILE_ACCESS        = 0x1\n\tFILE_MODIFIED      = 0x2\n\tFILE_ATTRIB        = 0x4\n\tFILE_TRUNC         = 0x100000\n\tFILE_NOFOLLOW      = 0x10000000\n\tFILE_DELETE        = 0x10\n\tFILE_RENAME_TO     = 0x20\n\tFILE_RENAME_FROM   = 0x40\n\tUNMOUNTED          = 0x20000000\n\tMOUNTEDOVER        = 0x40000000\n\tFILE_EXCEPTION     = 0x60000070\n)\n\nconst (\n\tTUNNEWPPA = 0x540001\n\tTUNSETPPA = 0x540002\n\n\tI_STR     = 0x5308\n\tI_POP     = 0x5303\n\tI_PUSH    = 0x5302\n\tI_LINK    = 0x530c\n\tI_UNLINK  = 0x530d\n\tI_PLINK   = 0x5316\n\tI_PUNLINK = 0x5317\n\n\tIF_UNITSEL = -0x7ffb8cca\n)\n\ntype strbuf struct {\n\tMaxlen int32\n\tLen    int32\n\tBuf    *int8\n}\n\ntype Strioctl struct {\n\tCmd    int32\n\tTimout int32\n\tLen    int32\n\tDp     *int8\n}\n\ntype Lifreq struct {\n\tName   [32]int8\n\tLifru1 [4]byte\n\tType   uint32\n\tLifru  [336]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Hand edited based on ztypes_linux_s390x.go\n// TODO: auto-generate.\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\nconst (\n\tSizeofSockaddrAny   = 128\n\tSizeofCmsghdr       = 12\n\tSizeofIPMreq        = 8\n\tSizeofIPv6Mreq      = 20\n\tSizeofICMPv6Filter  = 32\n\tSizeofIPv6MTUInfo   = 32\n\tSizeofInet4Pktinfo  = 8\n\tSizeofInet6Pktinfo  = 20\n\tSizeofLinger        = 8\n\tSizeofSockaddrInet4 = 16\n\tSizeofSockaddrInet6 = 28\n\tSizeofTCPInfo       = 0x68\n\tSizeofUcred         = 12\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype timeval_zos struct { //correct (with padding and all)\n\tSec  int64\n\t_    [4]byte // pad\n\tUsec int32\n}\n\ntype Tms struct { //clock_t is 4-byte unsigned int in zos\n\tUtime  uint32\n\tStime  uint32\n\tCutime uint32\n\tCstime uint32\n}\n\ntype Time_t int64\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Utsname struct {\n\tSysname  [16]byte\n\tNodename [32]byte\n\tRelease  [8]byte\n\tVersion  [8]byte\n\tMachine  [16]byte\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [108]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\t_    [112]uint8 // pad\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tIov        *Iovec\n\tControl    *byte\n\tFlags      int32\n\tNamelen    int32\n\tIovlen     int32\n\tControllen int32\n}\n\ntype Cmsghdr struct {\n\tLen   int32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tAddr    [4]byte /* in_addr */\n\tIfindex uint32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype _Gid_t uint32\n\ntype rusage_zos struct {\n\tUtime timeval_zos\n\tStime timeval_zos\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\n// { int, short, short } in poll.h\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\ntype Stat_t struct { //Linux Definition\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int64\n\tBlocks  int64\n\t_       [3]int64\n}\n\ntype Stat_LE_t struct {\n\t_            [4]byte // eye catcher\n\tLength       uint16\n\tVersion      uint16\n\tMode         int32\n\tIno          uint32\n\tDev          uint32\n\tNlink        int32\n\tUid          int32\n\tGid          int32\n\tSize         int64\n\tAtim31       [4]byte\n\tMtim31       [4]byte\n\tCtim31       [4]byte\n\tRdev         uint32\n\tAuditoraudit uint32\n\tUseraudit    uint32\n\tBlksize      int32\n\tCreatim31    [4]byte\n\tAuditID      [16]byte\n\t_            [4]byte // rsrvd1\n\tFile_tag     struct {\n\t\tCcsid   uint16\n\t\tTxtflag uint16 // aggregating Txflag:1 deferred:1 rsvflags:14\n\t}\n\tCharsetID [8]byte\n\tBlocks    int64\n\tGenvalue  uint32\n\tReftim31  [4]byte\n\tFid       [8]byte\n\tFilefmt   byte\n\tFspflag2  byte\n\t_         [2]byte // rsrvd2\n\tCtimemsec int32\n\tSeclabel  [8]byte\n\t_         [4]byte // rsrvd3\n\t_         [4]byte // rsrvd4\n\tAtim      Time_t\n\tMtim      Time_t\n\tCtim      Time_t\n\tCreatim   Time_t\n\tReftim    Time_t\n\t_         [24]byte // rsrvd5\n}\n\ntype Statvfs_t struct {\n\tID          [4]byte\n\tLen         int32\n\tBsize       uint64\n\tBlocks      uint64\n\tUsedspace   uint64\n\tBavail      uint64\n\tFlag        uint64\n\tMaxfilesize int64\n\t_           [16]byte\n\tFrsize      uint64\n\tBfree       uint64\n\tFiles       uint32\n\tFfree       uint32\n\tFavail      uint32\n\tNamemax31   uint32\n\tInvarsec    uint32\n\t_           [4]byte\n\tFsid        uint64\n\tNamemax     uint64\n}\n\ntype Statfs_t struct {\n\tType    uint64\n\tBsize   uint64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint32\n\tFfree   uint32\n\tFsid    uint64\n\tNamelen uint64\n\tFrsize  uint64\n\tFlags   uint64\n\t_       [4]uint64\n}\n\ntype direntLE struct {\n\tReclen uint16\n\tNamlen uint16\n\tIno    uint32\n\tExtra  uintptr\n\tName   [256]byte\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype FdSet struct {\n\tBits [64]int32\n}\n\n// This struct is packed on z/OS so it can't be used directly.\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n}\n\ntype Termios struct {\n\tCflag uint32\n\tIflag uint32\n\tLflag uint32\n\tOflag uint32\n\tCc    [11]uint8\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype W_Mnth struct {\n\tHid   [4]byte\n\tSize  int32\n\tCur1  int32 //32bit pointer\n\tCur2  int32 //^\n\tDevno uint32\n\t_     [4]byte\n}\n\ntype W_Mntent struct {\n\tFstype       uint32\n\tMode         uint32\n\tDev          uint32\n\tParentdev    uint32\n\tRootino      uint32\n\tStatus       byte\n\tDdname       [9]byte\n\tFstname      [9]byte\n\tFsname       [45]byte\n\tPathlen      uint32\n\tMountpoint   [1024]byte\n\tJobname      [8]byte\n\tPID          int32\n\tParmoffset   int32\n\tParmlen      int16\n\tOwner        [8]byte\n\tQuiesceowner [8]byte\n\t_            [38]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n\tName   string\n}\n\nconst (\n\tSizeofInotifyEvent = 0x10\n)\n\ntype ConsMsg2 struct {\n\tCm2Format       uint16\n\tCm2R1           uint16\n\tCm2Msglength    uint32\n\tCm2Msg          *byte\n\tCm2R2           [4]byte\n\tCm2R3           [4]byte\n\tCm2Routcde      *uint32\n\tCm2Descr        *uint32\n\tCm2Msgflag      uint32\n\tCm2Token        uint32\n\tCm2Msgid        *uint32\n\tCm2R4           [4]byte\n\tCm2DomToken     uint32\n\tCm2DomMsgid     *uint32\n\tCm2ModCartptr   *byte\n\tCm2ModConsidptr *byte\n\tCm2MsgCart      [8]byte\n\tCm2MsgConsid    [4]byte\n\tCm2R5           [12]byte\n}\n\nconst (\n\tCC_modify        = 1\n\tCC_stop          = 2\n\tCONSOLE_FORMAT_2 = 2\n\tCONSOLE_FORMAT_3 = 3\n\tCONSOLE_HRDCPY   = 0x80000000\n)\n\ntype OpenHow struct {\n\tFlags   uint64\n\tMode    uint64\n\tResolve uint64\n}\n\nconst SizeofOpenHow = 0x18\n\nconst (\n\tRESOLVE_CACHED        = 0x20\n\tRESOLVE_BENEATH       = 0x8\n\tRESOLVE_IN_ROOT       = 0x10\n\tRESOLVE_NO_MAGICLINKS = 0x2\n\tRESOLVE_NO_SYMLINKS   = 0x4\n\tRESOLVE_NO_XDEV       = 0x1\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\tPid   int32\n\tUid   uint32\n\t_     [44]byte\n}\n\ntype SysvIpcPerm struct {\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode int32\n}\n\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\t_      [4]byte\n\tLpid   int32\n\tCpid   int32\n\tNattch uint32\n\t_      [4]byte\n\t_      [4]byte\n\t_      [4]byte\n\t_      int32\n\t_      uint8\n\t_      uint8\n\t_      uint16\n\t_      *byte\n\tSegsz  uint64\n\tAtime  Time_t\n\tDtime  Time_t\n\tCtime  Time_t\n}\n\ntype SysvShmDesc64 struct {\n\tPerm   SysvIpcPerm\n\t_      [4]byte\n\tLpid   int32\n\tCpid   int32\n\tNattch uint32\n\t_      [4]byte\n\t_      [4]byte\n\t_      [4]byte\n\t_      int32\n\t_      byte\n\t_      uint8\n\t_      uint16\n\t_      *byte\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/aliases.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nimport \"syscall\"\n\ntype Errno = syscall.Errno\ntype SysProcAttr = syscall.SysProcAttr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/dll_windows.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// We need to use LoadLibrary and GetProcAddress from the Go runtime, because\n// the these symbols are loaded by the system linker and are required to\n// dynamically load additional symbols. Note that in the Go runtime, these\n// return syscall.Handle and syscall.Errno, but these are the same, in fact,\n// as windows.Handle and windows.Errno, and we intend to keep these the same.\n\n//go:linkname syscall_loadlibrary syscall.loadlibrary\nfunc syscall_loadlibrary(filename *uint16) (handle Handle, err Errno)\n\n//go:linkname syscall_getprocaddress syscall.getprocaddress\nfunc syscall_getprocaddress(handle Handle, procname *uint8) (proc uintptr, err Errno)\n\n// DLLError describes reasons for DLL load failures.\ntype DLLError struct {\n\tErr     error\n\tObjName string\n\tMsg     string\n}\n\nfunc (e *DLLError) Error() string { return e.Msg }\n\nfunc (e *DLLError) Unwrap() error { return e.Err }\n\n// A DLL implements access to a single DLL.\ntype DLL struct {\n\tName   string\n\tHandle Handle\n}\n\n// LoadDLL loads DLL file into memory.\n//\n// Warning: using LoadDLL without an absolute path name is subject to\n// DLL preloading attacks. To safely load a system DLL, use LazyDLL\n// with System set to true, or use LoadLibraryEx directly.\nfunc LoadDLL(name string) (dll *DLL, err error) {\n\tnamep, err := UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\th, e := syscall_loadlibrary(namep)\n\tif e != 0 {\n\t\treturn nil, &DLLError{\n\t\t\tErr:     e,\n\t\t\tObjName: name,\n\t\t\tMsg:     \"Failed to load \" + name + \": \" + e.Error(),\n\t\t}\n\t}\n\td := &DLL{\n\t\tName:   name,\n\t\tHandle: h,\n\t}\n\treturn d, nil\n}\n\n// MustLoadDLL is like LoadDLL but panics if load operation failes.\nfunc MustLoadDLL(name string) *DLL {\n\td, e := LoadDLL(name)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn d\n}\n\n// FindProc searches DLL d for procedure named name and returns *Proc\n// if found. It returns an error if search fails.\nfunc (d *DLL) FindProc(name string) (proc *Proc, err error) {\n\tnamep, err := BytePtrFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ta, e := syscall_getprocaddress(d.Handle, namep)\n\tif e != 0 {\n\t\treturn nil, &DLLError{\n\t\t\tErr:     e,\n\t\t\tObjName: name,\n\t\t\tMsg:     \"Failed to find \" + name + \" procedure in \" + d.Name + \": \" + e.Error(),\n\t\t}\n\t}\n\tp := &Proc{\n\t\tDll:  d,\n\t\tName: name,\n\t\taddr: a,\n\t}\n\treturn p, nil\n}\n\n// MustFindProc is like FindProc but panics if search fails.\nfunc (d *DLL) MustFindProc(name string) *Proc {\n\tp, e := d.FindProc(name)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn p\n}\n\n// FindProcByOrdinal searches DLL d for procedure by ordinal and returns *Proc\n// if found. It returns an error if search fails.\nfunc (d *DLL) FindProcByOrdinal(ordinal uintptr) (proc *Proc, err error) {\n\ta, e := GetProcAddressByOrdinal(d.Handle, ordinal)\n\tname := \"#\" + itoa(int(ordinal))\n\tif e != nil {\n\t\treturn nil, &DLLError{\n\t\t\tErr:     e,\n\t\t\tObjName: name,\n\t\t\tMsg:     \"Failed to find \" + name + \" procedure in \" + d.Name + \": \" + e.Error(),\n\t\t}\n\t}\n\tp := &Proc{\n\t\tDll:  d,\n\t\tName: name,\n\t\taddr: a,\n\t}\n\treturn p, nil\n}\n\n// MustFindProcByOrdinal is like FindProcByOrdinal but panics if search fails.\nfunc (d *DLL) MustFindProcByOrdinal(ordinal uintptr) *Proc {\n\tp, e := d.FindProcByOrdinal(ordinal)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn p\n}\n\n// Release unloads DLL d from memory.\nfunc (d *DLL) Release() (err error) {\n\treturn FreeLibrary(d.Handle)\n}\n\n// A Proc implements access to a procedure inside a DLL.\ntype Proc struct {\n\tDll  *DLL\n\tName string\n\taddr uintptr\n}\n\n// Addr returns the address of the procedure represented by p.\n// The return value can be passed to Syscall to run the procedure.\nfunc (p *Proc) Addr() uintptr {\n\treturn p.addr\n}\n\n//go:uintptrescapes\n\n// Call executes procedure p with arguments a. It will panic, if more than 15 arguments\n// are supplied.\n//\n// The returned error is always non-nil, constructed from the result of GetLastError.\n// Callers must inspect the primary return value to decide whether an error occurred\n// (according to the semantics of the specific function being called) before consulting\n// the error. The error will be guaranteed to contain windows.Errno.\nfunc (p *Proc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) {\n\tswitch len(a) {\n\tcase 0:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), 0, 0, 0)\n\tcase 1:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], 0, 0)\n\tcase 2:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], 0)\n\tcase 3:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], a[2])\n\tcase 4:\n\t\treturn syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], 0, 0)\n\tcase 5:\n\t\treturn syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], 0)\n\tcase 6:\n\t\treturn syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5])\n\tcase 7:\n\t\treturn syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], 0, 0)\n\tcase 8:\n\t\treturn syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0)\n\tcase 9:\n\t\treturn syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8])\n\tcase 10:\n\t\treturn syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], 0, 0)\n\tcase 11:\n\t\treturn syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], 0)\n\tcase 12:\n\t\treturn syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11])\n\tcase 13:\n\t\treturn syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], 0, 0)\n\tcase 14:\n\t\treturn syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], 0)\n\tcase 15:\n\t\treturn syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14])\n\tdefault:\n\t\tpanic(\"Call \" + p.Name + \" with too many arguments \" + itoa(len(a)) + \".\")\n\t}\n}\n\n// A LazyDLL implements access to a single DLL.\n// It will delay the load of the DLL until the first\n// call to its Handle method or to one of its\n// LazyProc's Addr method.\ntype LazyDLL struct {\n\tName string\n\n\t// System determines whether the DLL must be loaded from the\n\t// Windows System directory, bypassing the normal DLL search\n\t// path.\n\tSystem bool\n\n\tmu  sync.Mutex\n\tdll *DLL // non nil once DLL is loaded\n}\n\n// Load loads DLL file d.Name into memory. It returns an error if fails.\n// Load will not try to load DLL, if it is already loaded into memory.\nfunc (d *LazyDLL) Load() error {\n\t// Non-racy version of:\n\t// if d.dll != nil {\n\tif atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll))) != nil {\n\t\treturn nil\n\t}\n\td.mu.Lock()\n\tdefer d.mu.Unlock()\n\tif d.dll != nil {\n\t\treturn nil\n\t}\n\n\t// kernel32.dll is special, since it's where LoadLibraryEx comes from.\n\t// The kernel already special-cases its name, so it's always\n\t// loaded from system32.\n\tvar dll *DLL\n\tvar err error\n\tif d.Name == \"kernel32.dll\" {\n\t\tdll, err = LoadDLL(d.Name)\n\t} else {\n\t\tdll, err = loadLibraryEx(d.Name, d.System)\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Non-racy version of:\n\t// d.dll = dll\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll)), unsafe.Pointer(dll))\n\treturn nil\n}\n\n// mustLoad is like Load but panics if search fails.\nfunc (d *LazyDLL) mustLoad() {\n\te := d.Load()\n\tif e != nil {\n\t\tpanic(e)\n\t}\n}\n\n// Handle returns d's module handle.\nfunc (d *LazyDLL) Handle() uintptr {\n\td.mustLoad()\n\treturn uintptr(d.dll.Handle)\n}\n\n// NewProc returns a LazyProc for accessing the named procedure in the DLL d.\nfunc (d *LazyDLL) NewProc(name string) *LazyProc {\n\treturn &LazyProc{l: d, Name: name}\n}\n\n// NewLazyDLL creates new LazyDLL associated with DLL file.\nfunc NewLazyDLL(name string) *LazyDLL {\n\treturn &LazyDLL{Name: name}\n}\n\n// NewLazySystemDLL is like NewLazyDLL, but will only\n// search Windows System directory for the DLL if name is\n// a base name (like \"advapi32.dll\").\nfunc NewLazySystemDLL(name string) *LazyDLL {\n\treturn &LazyDLL{Name: name, System: true}\n}\n\n// A LazyProc implements access to a procedure inside a LazyDLL.\n// It delays the lookup until the Addr method is called.\ntype LazyProc struct {\n\tName string\n\n\tmu   sync.Mutex\n\tl    *LazyDLL\n\tproc *Proc\n}\n\n// Find searches DLL for procedure named p.Name. It returns\n// an error if search fails. Find will not search procedure,\n// if it is already found and loaded into memory.\nfunc (p *LazyProc) Find() error {\n\t// Non-racy version of:\n\t// if p.proc == nil {\n\tif atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc))) == nil {\n\t\tp.mu.Lock()\n\t\tdefer p.mu.Unlock()\n\t\tif p.proc == nil {\n\t\t\te := p.l.Load()\n\t\t\tif e != nil {\n\t\t\t\treturn e\n\t\t\t}\n\t\t\tproc, e := p.l.dll.FindProc(p.Name)\n\t\t\tif e != nil {\n\t\t\t\treturn e\n\t\t\t}\n\t\t\t// Non-racy version of:\n\t\t\t// p.proc = proc\n\t\t\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc)), unsafe.Pointer(proc))\n\t\t}\n\t}\n\treturn nil\n}\n\n// mustFind is like Find but panics if search fails.\nfunc (p *LazyProc) mustFind() {\n\te := p.Find()\n\tif e != nil {\n\t\tpanic(e)\n\t}\n}\n\n// Addr returns the address of the procedure represented by p.\n// The return value can be passed to Syscall to run the procedure.\n// It will panic if the procedure cannot be found.\nfunc (p *LazyProc) Addr() uintptr {\n\tp.mustFind()\n\treturn p.proc.Addr()\n}\n\n//go:uintptrescapes\n\n// Call executes procedure p with arguments a. It will panic, if more than 15 arguments\n// are supplied. It will also panic if the procedure cannot be found.\n//\n// The returned error is always non-nil, constructed from the result of GetLastError.\n// Callers must inspect the primary return value to decide whether an error occurred\n// (according to the semantics of the specific function being called) before consulting\n// the error. The error will be guaranteed to contain windows.Errno.\nfunc (p *LazyProc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) {\n\tp.mustFind()\n\treturn p.proc.Call(a...)\n}\n\nvar canDoSearchSystem32Once struct {\n\tsync.Once\n\tv bool\n}\n\nfunc initCanDoSearchSystem32() {\n\t// https://msdn.microsoft.com/en-us/library/ms684179(v=vs.85).aspx says:\n\t// \"Windows 7, Windows Server 2008 R2, Windows Vista, and Windows\n\t// Server 2008: The LOAD_LIBRARY_SEARCH_* flags are available on\n\t// systems that have KB2533623 installed. To determine whether the\n\t// flags are available, use GetProcAddress to get the address of the\n\t// AddDllDirectory, RemoveDllDirectory, or SetDefaultDllDirectories\n\t// function. If GetProcAddress succeeds, the LOAD_LIBRARY_SEARCH_*\n\t// flags can be used with LoadLibraryEx.\"\n\tcanDoSearchSystem32Once.v = (modkernel32.NewProc(\"AddDllDirectory\").Find() == nil)\n}\n\nfunc canDoSearchSystem32() bool {\n\tcanDoSearchSystem32Once.Do(initCanDoSearchSystem32)\n\treturn canDoSearchSystem32Once.v\n}\n\nfunc isBaseName(name string) bool {\n\tfor _, c := range name {\n\t\tif c == ':' || c == '/' || c == '\\\\' {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// loadLibraryEx wraps the Windows LoadLibraryEx function.\n//\n// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx\n//\n// If name is not an absolute path, LoadLibraryEx searches for the DLL\n// in a variety of automatic locations unless constrained by flags.\n// See: https://msdn.microsoft.com/en-us/library/ff919712%28VS.85%29.aspx\nfunc loadLibraryEx(name string, system bool) (*DLL, error) {\n\tloadDLL := name\n\tvar flags uintptr\n\tif system {\n\t\tif canDoSearchSystem32() {\n\t\t\tflags = LOAD_LIBRARY_SEARCH_SYSTEM32\n\t\t} else if isBaseName(name) {\n\t\t\t// WindowsXP or unpatched Windows machine\n\t\t\t// trying to load \"foo.dll\" out of the system\n\t\t\t// folder, but LoadLibraryEx doesn't support\n\t\t\t// that yet on their system, so emulate it.\n\t\t\tsystemdir, err := GetSystemDirectory()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tloadDLL = systemdir + \"\\\\\" + name\n\t\t}\n\t}\n\th, err := LoadLibraryEx(loadDLL, 0, flags)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &DLL{Name: name, Handle: h}, nil\n}\n\ntype errString string\n\nfunc (s errString) Error() string { return string(s) }\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/env_windows.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Windows environment variables.\n\npackage windows\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc Getenv(key string) (value string, found bool) {\n\treturn syscall.Getenv(key)\n}\n\nfunc Setenv(key, value string) error {\n\treturn syscall.Setenv(key, value)\n}\n\nfunc Clearenv() {\n\tsyscall.Clearenv()\n}\n\nfunc Environ() []string {\n\treturn syscall.Environ()\n}\n\n// Returns a default environment associated with the token, rather than the current\n// process. If inheritExisting is true, then this environment also inherits the\n// environment of the current process.\nfunc (token Token) Environ(inheritExisting bool) (env []string, err error) {\n\tvar block *uint16\n\terr = CreateEnvironmentBlock(&block, token, inheritExisting)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer DestroyEnvironmentBlock(block)\n\tsize := unsafe.Sizeof(*block)\n\tfor *block != 0 {\n\t\t// find NUL terminator\n\t\tend := unsafe.Pointer(block)\n\t\tfor *(*uint16)(end) != 0 {\n\t\t\tend = unsafe.Add(end, size)\n\t\t}\n\n\t\tentry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size)\n\t\tenv = append(env, UTF16ToString(entry))\n\t\tblock = (*uint16)(unsafe.Add(end, size))\n\t}\n\treturn env, nil\n}\n\nfunc Unsetenv(key string) error {\n\treturn syscall.Unsetenv(key)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/eventlog.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nconst (\n\tEVENTLOG_SUCCESS          = 0\n\tEVENTLOG_ERROR_TYPE       = 1\n\tEVENTLOG_WARNING_TYPE     = 2\n\tEVENTLOG_INFORMATION_TYPE = 4\n\tEVENTLOG_AUDIT_SUCCESS    = 8\n\tEVENTLOG_AUDIT_FAILURE    = 16\n)\n\n//sys\tRegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW\n//sys\tDeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource\n//sys\tReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/exec_windows.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Fork, exec, wait, etc.\n\npackage windows\n\nimport (\n\terrorspkg \"errors\"\n\t\"unsafe\"\n)\n\n// EscapeArg rewrites command line argument s as prescribed\n// in http://msdn.microsoft.com/en-us/library/ms880421.\n// This function returns \"\" (2 double quotes) if s is empty.\n// Alternatively, these transformations are done:\n//   - every back slash (\\) is doubled, but only if immediately\n//     followed by double quote (\");\n//   - every double quote (\") is escaped by back slash (\\);\n//   - finally, s is wrapped with double quotes (arg -> \"arg\"),\n//     but only if there is space or tab inside s.\nfunc EscapeArg(s string) string {\n\tif len(s) == 0 {\n\t\treturn `\"\"`\n\t}\n\tn := len(s)\n\thasSpace := false\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch s[i] {\n\t\tcase '\"', '\\\\':\n\t\t\tn++\n\t\tcase ' ', '\\t':\n\t\t\thasSpace = true\n\t\t}\n\t}\n\tif hasSpace {\n\t\tn += 2 // Reserve space for quotes.\n\t}\n\tif n == len(s) {\n\t\treturn s\n\t}\n\n\tqs := make([]byte, n)\n\tj := 0\n\tif hasSpace {\n\t\tqs[j] = '\"'\n\t\tj++\n\t}\n\tslashes := 0\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch s[i] {\n\t\tdefault:\n\t\t\tslashes = 0\n\t\t\tqs[j] = s[i]\n\t\tcase '\\\\':\n\t\t\tslashes++\n\t\t\tqs[j] = s[i]\n\t\tcase '\"':\n\t\t\tfor ; slashes > 0; slashes-- {\n\t\t\t\tqs[j] = '\\\\'\n\t\t\t\tj++\n\t\t\t}\n\t\t\tqs[j] = '\\\\'\n\t\t\tj++\n\t\t\tqs[j] = s[i]\n\t\t}\n\t\tj++\n\t}\n\tif hasSpace {\n\t\tfor ; slashes > 0; slashes-- {\n\t\t\tqs[j] = '\\\\'\n\t\t\tj++\n\t\t}\n\t\tqs[j] = '\"'\n\t\tj++\n\t}\n\treturn string(qs[:j])\n}\n\n// ComposeCommandLine escapes and joins the given arguments suitable for use as a Windows command line,\n// in CreateProcess's CommandLine argument, CreateService/ChangeServiceConfig's BinaryPathName argument,\n// or any program that uses CommandLineToArgv.\nfunc ComposeCommandLine(args []string) string {\n\tif len(args) == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Per https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw:\n\t// “This function accepts command lines that contain a program name; the\n\t// program name can be enclosed in quotation marks or not.”\n\t//\n\t// Unfortunately, it provides no means of escaping interior quotation marks\n\t// within that program name, and we have no way to report them here.\n\tprog := args[0]\n\tmustQuote := len(prog) == 0\n\tfor i := 0; i < len(prog); i++ {\n\t\tc := prog[i]\n\t\tif c <= ' ' || (c == '\"' && i == 0) {\n\t\t\t// Force quotes for not only the ASCII space and tab as described in the\n\t\t\t// MSDN article, but also ASCII control characters.\n\t\t\t// The documentation for CommandLineToArgvW doesn't say what happens when\n\t\t\t// the first argument is not a valid program name, but it empirically\n\t\t\t// seems to drop unquoted control characters.\n\t\t\tmustQuote = true\n\t\t\tbreak\n\t\t}\n\t}\n\tvar commandLine []byte\n\tif mustQuote {\n\t\tcommandLine = make([]byte, 0, len(prog)+2)\n\t\tcommandLine = append(commandLine, '\"')\n\t\tfor i := 0; i < len(prog); i++ {\n\t\t\tc := prog[i]\n\t\t\tif c == '\"' {\n\t\t\t\t// This quote would interfere with our surrounding quotes.\n\t\t\t\t// We have no way to report an error, so just strip out\n\t\t\t\t// the offending character instead.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tcommandLine = append(commandLine, c)\n\t\t}\n\t\tcommandLine = append(commandLine, '\"')\n\t} else {\n\t\tif len(args) == 1 {\n\t\t\t// args[0] is a valid command line representing itself.\n\t\t\t// No need to allocate a new slice or string for it.\n\t\t\treturn prog\n\t\t}\n\t\tcommandLine = []byte(prog)\n\t}\n\n\tfor _, arg := range args[1:] {\n\t\tcommandLine = append(commandLine, ' ')\n\t\t// TODO(bcmills): since we're already appending to a slice, it would be nice\n\t\t// to avoid the intermediate allocations of EscapeArg.\n\t\t// Perhaps we can factor out an appendEscapedArg function.\n\t\tcommandLine = append(commandLine, EscapeArg(arg)...)\n\t}\n\treturn string(commandLine)\n}\n\n// DecomposeCommandLine breaks apart its argument command line into unescaped parts using CommandLineToArgv,\n// as gathered from GetCommandLine, QUERY_SERVICE_CONFIG's BinaryPathName argument, or elsewhere that\n// command lines are passed around.\n// DecomposeCommandLine returns an error if commandLine contains NUL.\nfunc DecomposeCommandLine(commandLine string) ([]string, error) {\n\tif len(commandLine) == 0 {\n\t\treturn []string{}, nil\n\t}\n\tutf16CommandLine, err := UTF16FromString(commandLine)\n\tif err != nil {\n\t\treturn nil, errorspkg.New(\"string with NUL passed to DecomposeCommandLine\")\n\t}\n\tvar argc int32\n\targv, err := commandLineToArgv(&utf16CommandLine[0], &argc)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(argv)))\n\n\tvar args []string\n\tfor _, p := range unsafe.Slice(argv, argc) {\n\t\targs = append(args, UTF16PtrToString(p))\n\t}\n\treturn args, nil\n}\n\n// CommandLineToArgv parses a Unicode command line string and sets\n// argc to the number of parsed arguments.\n//\n// The returned memory should be freed using a single call to LocalFree.\n//\n// Note that although the return type of CommandLineToArgv indicates 8192\n// entries of up to 8192 characters each, the actual count of parsed arguments\n// may exceed 8192, and the documentation for CommandLineToArgvW does not mention\n// any bound on the lengths of the individual argument strings.\n// (See https://go.dev/issue/63236.)\nfunc CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) {\n\targp, err := commandLineToArgv(cmd, argc)\n\targv = (*[8192]*[8192]uint16)(unsafe.Pointer(argp))\n\treturn argv, err\n}\n\nfunc CloseOnExec(fd Handle) {\n\tSetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0)\n}\n\n// FullPath retrieves the full path of the specified file.\nfunc FullPath(name string) (path string, err error) {\n\tp, err := UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := uint32(100)\n\tfor {\n\t\tbuf := make([]uint16, n)\n\t\tn, err = GetFullPathName(p, uint32(len(buf)), &buf[0], nil)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tif n <= uint32(len(buf)) {\n\t\t\treturn UTF16ToString(buf[:n]), nil\n\t\t}\n\t}\n}\n\n// NewProcThreadAttributeList allocates a new ProcThreadAttributeListContainer, with the requested maximum number of attributes.\nfunc NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeListContainer, error) {\n\tvar size uintptr\n\terr := initializeProcThreadAttributeList(nil, maxAttrCount, 0, &size)\n\tif err != ERROR_INSUFFICIENT_BUFFER {\n\t\tif err == nil {\n\t\t\treturn nil, errorspkg.New(\"unable to query buffer size from InitializeProcThreadAttributeList\")\n\t\t}\n\t\treturn nil, err\n\t}\n\talloc, err := LocalAlloc(LMEM_FIXED, uint32(size))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// size is guaranteed to be ≥1 by InitializeProcThreadAttributeList.\n\tal := &ProcThreadAttributeListContainer{data: (*ProcThreadAttributeList)(unsafe.Pointer(alloc))}\n\terr = initializeProcThreadAttributeList(al.data, maxAttrCount, 0, &size)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn al, err\n}\n\n// Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute.\nfunc (al *ProcThreadAttributeListContainer) Update(attribute uintptr, value unsafe.Pointer, size uintptr) error {\n\tal.pointers = append(al.pointers, value)\n\treturn updateProcThreadAttribute(al.data, 0, attribute, value, size, nil, nil)\n}\n\n// Delete frees ProcThreadAttributeList's resources.\nfunc (al *ProcThreadAttributeListContainer) Delete() {\n\tdeleteProcThreadAttributeList(al.data)\n\tLocalFree(Handle(unsafe.Pointer(al.data)))\n\tal.data = nil\n\tal.pointers = nil\n}\n\n// List returns the actual ProcThreadAttributeList to be passed to StartupInfoEx.\nfunc (al *ProcThreadAttributeListContainer) List() *ProcThreadAttributeList {\n\treturn al.data\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/memory_windows.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nconst (\n\tMEM_COMMIT      = 0x00001000\n\tMEM_RESERVE     = 0x00002000\n\tMEM_DECOMMIT    = 0x00004000\n\tMEM_RELEASE     = 0x00008000\n\tMEM_RESET       = 0x00080000\n\tMEM_TOP_DOWN    = 0x00100000\n\tMEM_WRITE_WATCH = 0x00200000\n\tMEM_PHYSICAL    = 0x00400000\n\tMEM_RESET_UNDO  = 0x01000000\n\tMEM_LARGE_PAGES = 0x20000000\n\n\tPAGE_NOACCESS          = 0x00000001\n\tPAGE_READONLY          = 0x00000002\n\tPAGE_READWRITE         = 0x00000004\n\tPAGE_WRITECOPY         = 0x00000008\n\tPAGE_EXECUTE           = 0x00000010\n\tPAGE_EXECUTE_READ      = 0x00000020\n\tPAGE_EXECUTE_READWRITE = 0x00000040\n\tPAGE_EXECUTE_WRITECOPY = 0x00000080\n\tPAGE_GUARD             = 0x00000100\n\tPAGE_NOCACHE           = 0x00000200\n\tPAGE_WRITECOMBINE      = 0x00000400\n\tPAGE_TARGETS_INVALID   = 0x40000000\n\tPAGE_TARGETS_NO_UPDATE = 0x40000000\n\n\tQUOTA_LIMITS_HARDWS_MIN_DISABLE = 0x00000002\n\tQUOTA_LIMITS_HARDWS_MIN_ENABLE  = 0x00000001\n\tQUOTA_LIMITS_HARDWS_MAX_DISABLE = 0x00000008\n\tQUOTA_LIMITS_HARDWS_MAX_ENABLE  = 0x00000004\n)\n\ntype MemoryBasicInformation struct {\n\tBaseAddress       uintptr\n\tAllocationBase    uintptr\n\tAllocationProtect uint32\n\tPartitionId       uint16\n\tRegionSize        uintptr\n\tState             uint32\n\tProtect           uint32\n\tType              uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/mkerrors.bash",
    "content": "#!/bin/bash\n\n# Copyright 2019 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\nset -e\nshopt -s nullglob\n\nwinerror=\"$(printf '%s\\n' \"/mnt/c/Program Files (x86)/Windows Kits/\"/*/Include/*/shared/winerror.h | sort -Vr | head -n 1)\"\n[[ -n $winerror ]] || { echo \"Unable to find winerror.h\" >&2; exit 1; }\nntstatus=\"$(printf '%s\\n' \"/mnt/c/Program Files (x86)/Windows Kits/\"/*/Include/*/shared/ntstatus.h | sort -Vr | head -n 1)\"\n[[ -n $ntstatus ]] || { echo \"Unable to find ntstatus.h\" >&2; exit 1; }\n\ndeclare -A errors\n\n{\n\techo \"// Code generated by 'mkerrors.bash'; DO NOT EDIT.\"\n\techo\n\techo \"package windows\"\n\techo \"import \\\"syscall\\\"\"\n\techo \"const (\"\n\n\twhile read -r line; do\n\t\tunset vtype\n\t\tif [[ $line =~ ^#define\\ +([A-Z0-9_]+k?)\\ +([A-Z0-9_]+\\()?([A-Z][A-Z0-9_]+k?)\\)? ]]; then\n\t\t\tkey=\"${BASH_REMATCH[1]}\"\n\t\t\tvalue=\"${BASH_REMATCH[3]}\"\n\t\telif [[ $line =~ ^#define\\ +([A-Z0-9_]+k?)\\ +([A-Z0-9_]+\\()?((0x)?[0-9A-Fa-f]+)L?\\)? ]]; then\n\t\t\tkey=\"${BASH_REMATCH[1]}\"\n\t\t\tvalue=\"${BASH_REMATCH[3]}\"\n\t\t\tvtype=\"${BASH_REMATCH[2]}\"\n\t\telif [[ $line =~ ^#define\\ +([A-Z0-9_]+k?)\\ +\\(\\(([A-Z]+)\\)((0x)?[0-9A-Fa-f]+)L?\\) ]]; then\n\t\t\tkey=\"${BASH_REMATCH[1]}\"\n\t\t\tvalue=\"${BASH_REMATCH[3]}\"\n\t\t\tvtype=\"${BASH_REMATCH[2]}\"\n\t\telse\n\t\t\tcontinue\n\t\tfi\n\t\t[[ -n $key && -n $value ]] || continue\n\t\t[[ -z ${errors[\"$key\"]} ]] || continue\n\t\terrors[\"$key\"]=\"$value\"\n\t\tif [[ -v vtype ]]; then\n\t\t\tif [[ $key == FACILITY_* || $key == NO_ERROR ]]; then\n\t\t\t\tvtype=\"\"\n\t\t\telif [[ $vtype == *HANDLE* || $vtype == *HRESULT* ]]; then\n\t\t\t\tvtype=\"Handle\"\n\t\t\telse\n\t\t\t\tvtype=\"syscall.Errno\"\n\t\t\tfi\n\t\t\tlast_vtype=\"$vtype\"\n\t\telse\n\t\t\tvtype=\"\"\n\t\t\tif [[ $last_vtype == Handle && $value == NO_ERROR ]]; then\n\t\t\t\tvalue=\"S_OK\"\n\t\t\telif [[ $last_vtype == syscall.Errno && $value == NO_ERROR ]]; then\n\t\t\t\tvalue=\"ERROR_SUCCESS\"\n\t\t\tfi\n\t\tfi\n\n\t\techo \"$key $vtype = $value\"\n\tdone < \"$winerror\"\n\n\twhile read -r line; do\n\t\t[[ $line =~ ^#define\\ (STATUS_[^\\s]+)\\ +\\(\\(NTSTATUS\\)((0x)?[0-9a-fA-F]+)L?\\) ]] || continue\n\t\techo \"${BASH_REMATCH[1]} NTStatus = ${BASH_REMATCH[2]}\"\n\tdone < \"$ntstatus\"\n\n\techo \")\"\n} | gofmt > \"zerrors_windows.go\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/mkknownfolderids.bash",
    "content": "#!/bin/bash\n\n# Copyright 2019 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\nset -e\nshopt -s nullglob\n\nknownfolders=\"$(printf '%s\\n' \"/mnt/c/Program Files (x86)/Windows Kits/\"/*/Include/*/um/KnownFolders.h | sort -Vr | head -n 1)\"\n[[ -n $knownfolders ]] || { echo \"Unable to find KnownFolders.h\" >&2; exit 1; }\n\n{\n\techo \"// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT.\"\n\techo\n\techo \"package windows\"\n\techo \"type KNOWNFOLDERID GUID\"\n\techo \"var (\"\n\twhile read -r line; do\n\t\t[[ $line =~ DEFINE_KNOWN_FOLDER\\((FOLDERID_[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+)\\) ]] || continue\n\t\tprintf \"%s = &KNOWNFOLDERID{0x%08x, 0x%04x, 0x%04x, [8]byte{0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x}}\\n\" \\\n\t\t\t\"${BASH_REMATCH[1]}\" $(( \"${BASH_REMATCH[2]}\" )) $(( \"${BASH_REMATCH[3]}\" )) $(( \"${BASH_REMATCH[4]}\" )) \\\n\t\t\t$(( \"${BASH_REMATCH[5]}\" )) $(( \"${BASH_REMATCH[6]}\" )) $(( \"${BASH_REMATCH[7]}\" )) $(( \"${BASH_REMATCH[8]}\" )) \\\n\t\t\t$(( \"${BASH_REMATCH[9]}\" )) $(( \"${BASH_REMATCH[10]}\" )) $(( \"${BASH_REMATCH[11]}\" )) $(( \"${BASH_REMATCH[12]}\" ))\n\tdone < \"$knownfolders\"\n\techo \")\"\n} | gofmt > \"zknownfolderids_windows.go\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/mksyscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build generate\n\npackage windows\n\n//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go setupapi_windows.go\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/race.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows && race\n\npackage windows\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\nconst raceenabled = true\n\nfunc raceAcquire(addr unsafe.Pointer) {\n\truntime.RaceAcquire(addr)\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n\truntime.RaceReleaseMerge(addr)\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n\truntime.RaceReadRange(addr, len)\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n\truntime.RaceWriteRange(addr, len)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/race0.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows && !race\n\npackage windows\n\nimport (\n\t\"unsafe\"\n)\n\nconst raceenabled = false\n\nfunc raceAcquire(addr unsafe.Pointer) {\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/security_windows.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst (\n\tNameUnknown          = 0\n\tNameFullyQualifiedDN = 1\n\tNameSamCompatible    = 2\n\tNameDisplay          = 3\n\tNameUniqueId         = 6\n\tNameCanonical        = 7\n\tNameUserPrincipal    = 8\n\tNameCanonicalEx      = 9\n\tNameServicePrincipal = 10\n\tNameDnsDomain        = 12\n)\n\n// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL.\n// http://blogs.msdn.com/b/drnick/archive/2007/12/19/windows-and-upn-format-credentials.aspx\n//sys\tTranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.TranslateNameW\n//sys\tGetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.GetUserNameExW\n\n// TranslateAccountName converts a directory service\n// object name from one format to another.\nfunc TranslateAccountName(username string, from, to uint32, initSize int) (string, error) {\n\tu, e := UTF16PtrFromString(username)\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\tn := uint32(50)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\te = TranslateName(u, from, to, &b[0], &n)\n\t\tif e == nil {\n\t\t\treturn UTF16ToString(b[:n]), nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn \"\", e\n\t\t}\n\t}\n}\n\nconst (\n\t// do not reorder\n\tNetSetupUnknownStatus = iota\n\tNetSetupUnjoined\n\tNetSetupWorkgroupName\n\tNetSetupDomainName\n)\n\ntype UserInfo10 struct {\n\tName       *uint16\n\tComment    *uint16\n\tUsrComment *uint16\n\tFullName   *uint16\n}\n\n//sys\tNetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo\n//sys\tNetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation\n//sys\tNetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree\n//sys   NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) = netapi32.NetUserEnum\n\nconst (\n\t// do not reorder\n\tSidTypeUser = 1 + iota\n\tSidTypeGroup\n\tSidTypeDomain\n\tSidTypeAlias\n\tSidTypeWellKnownGroup\n\tSidTypeDeletedAccount\n\tSidTypeInvalid\n\tSidTypeUnknown\n\tSidTypeComputer\n\tSidTypeLabel\n)\n\ntype SidIdentifierAuthority struct {\n\tValue [6]byte\n}\n\nvar (\n\tSECURITY_NULL_SID_AUTHORITY        = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 0}}\n\tSECURITY_WORLD_SID_AUTHORITY       = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 1}}\n\tSECURITY_LOCAL_SID_AUTHORITY       = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 2}}\n\tSECURITY_CREATOR_SID_AUTHORITY     = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 3}}\n\tSECURITY_NON_UNIQUE_AUTHORITY      = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 4}}\n\tSECURITY_NT_AUTHORITY              = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 5}}\n\tSECURITY_MANDATORY_LABEL_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 16}}\n)\n\nconst (\n\tSECURITY_NULL_RID                   = 0\n\tSECURITY_WORLD_RID                  = 0\n\tSECURITY_LOCAL_RID                  = 0\n\tSECURITY_CREATOR_OWNER_RID          = 0\n\tSECURITY_CREATOR_GROUP_RID          = 1\n\tSECURITY_DIALUP_RID                 = 1\n\tSECURITY_NETWORK_RID                = 2\n\tSECURITY_BATCH_RID                  = 3\n\tSECURITY_INTERACTIVE_RID            = 4\n\tSECURITY_LOGON_IDS_RID              = 5\n\tSECURITY_SERVICE_RID                = 6\n\tSECURITY_LOCAL_SYSTEM_RID           = 18\n\tSECURITY_BUILTIN_DOMAIN_RID         = 32\n\tSECURITY_PRINCIPAL_SELF_RID         = 10\n\tSECURITY_CREATOR_OWNER_SERVER_RID   = 0x2\n\tSECURITY_CREATOR_GROUP_SERVER_RID   = 0x3\n\tSECURITY_LOGON_IDS_RID_COUNT        = 0x3\n\tSECURITY_ANONYMOUS_LOGON_RID        = 0x7\n\tSECURITY_PROXY_RID                  = 0x8\n\tSECURITY_ENTERPRISE_CONTROLLERS_RID = 0x9\n\tSECURITY_SERVER_LOGON_RID           = SECURITY_ENTERPRISE_CONTROLLERS_RID\n\tSECURITY_AUTHENTICATED_USER_RID     = 0xb\n\tSECURITY_RESTRICTED_CODE_RID        = 0xc\n\tSECURITY_NT_NON_UNIQUE_RID          = 0x15\n)\n\n// Predefined domain-relative RIDs for local groups.\n// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx\nconst (\n\tDOMAIN_ALIAS_RID_ADMINS                         = 0x220\n\tDOMAIN_ALIAS_RID_USERS                          = 0x221\n\tDOMAIN_ALIAS_RID_GUESTS                         = 0x222\n\tDOMAIN_ALIAS_RID_POWER_USERS                    = 0x223\n\tDOMAIN_ALIAS_RID_ACCOUNT_OPS                    = 0x224\n\tDOMAIN_ALIAS_RID_SYSTEM_OPS                     = 0x225\n\tDOMAIN_ALIAS_RID_PRINT_OPS                      = 0x226\n\tDOMAIN_ALIAS_RID_BACKUP_OPS                     = 0x227\n\tDOMAIN_ALIAS_RID_REPLICATOR                     = 0x228\n\tDOMAIN_ALIAS_RID_RAS_SERVERS                    = 0x229\n\tDOMAIN_ALIAS_RID_PREW2KCOMPACCESS               = 0x22a\n\tDOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS           = 0x22b\n\tDOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS      = 0x22c\n\tDOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d\n\tDOMAIN_ALIAS_RID_MONITORING_USERS               = 0x22e\n\tDOMAIN_ALIAS_RID_LOGGING_USERS                  = 0x22f\n\tDOMAIN_ALIAS_RID_AUTHORIZATIONACCESS            = 0x230\n\tDOMAIN_ALIAS_RID_TS_LICENSE_SERVERS             = 0x231\n\tDOMAIN_ALIAS_RID_DCOM_USERS                     = 0x232\n\tDOMAIN_ALIAS_RID_IUSERS                         = 0x238\n\tDOMAIN_ALIAS_RID_CRYPTO_OPERATORS               = 0x239\n\tDOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP     = 0x23b\n\tDOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 0x23c\n\tDOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP        = 0x23d\n\tDOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP      = 0x23e\n)\n\n//sys\tLookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountSidW\n//sys\tLookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountNameW\n//sys\tConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) = advapi32.ConvertSidToStringSidW\n//sys\tConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) = advapi32.ConvertStringSidToSidW\n//sys\tGetLengthSid(sid *SID) (len uint32) = advapi32.GetLengthSid\n//sys\tCopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) = advapi32.CopySid\n//sys\tAllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) = advapi32.AllocateAndInitializeSid\n//sys\tcreateWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) = advapi32.CreateWellKnownSid\n//sys\tisWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) = advapi32.IsWellKnownSid\n//sys\tFreeSid(sid *SID) (err error) [failretval!=0] = advapi32.FreeSid\n//sys\tEqualSid(sid1 *SID, sid2 *SID) (isEqual bool) = advapi32.EqualSid\n//sys\tgetSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) = advapi32.GetSidIdentifierAuthority\n//sys\tgetSidSubAuthorityCount(sid *SID) (count *uint8) = advapi32.GetSidSubAuthorityCount\n//sys\tgetSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) = advapi32.GetSidSubAuthority\n//sys\tisValidSid(sid *SID) (isValid bool) = advapi32.IsValidSid\n\n// The security identifier (SID) structure is a variable-length\n// structure used to uniquely identify users or groups.\ntype SID struct{}\n\n// StringToSid converts a string-format security identifier\n// SID into a valid, functional SID.\nfunc StringToSid(s string) (*SID, error) {\n\tvar sid *SID\n\tp, e := UTF16PtrFromString(s)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\te = ConvertStringSidToSid(p, &sid)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\tdefer LocalFree((Handle)(unsafe.Pointer(sid)))\n\treturn sid.Copy()\n}\n\n// LookupSID retrieves a security identifier SID for the account\n// and the name of the domain on which the account was found.\n// System specify target computer to search.\nfunc LookupSID(system, account string) (sid *SID, domain string, accType uint32, err error) {\n\tif len(account) == 0 {\n\t\treturn nil, \"\", 0, syscall.EINVAL\n\t}\n\tacc, e := UTF16PtrFromString(account)\n\tif e != nil {\n\t\treturn nil, \"\", 0, e\n\t}\n\tvar sys *uint16\n\tif len(system) > 0 {\n\t\tsys, e = UTF16PtrFromString(system)\n\t\tif e != nil {\n\t\t\treturn nil, \"\", 0, e\n\t\t}\n\t}\n\tn := uint32(50)\n\tdn := uint32(50)\n\tfor {\n\t\tb := make([]byte, n)\n\t\tdb := make([]uint16, dn)\n\t\tsid = (*SID)(unsafe.Pointer(&b[0]))\n\t\te = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType)\n\t\tif e == nil {\n\t\t\treturn sid, UTF16ToString(db), accType, nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn nil, \"\", 0, e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn nil, \"\", 0, e\n\t\t}\n\t}\n}\n\n// String converts SID to a string format suitable for display, storage, or transmission.\nfunc (sid *SID) String() string {\n\tvar s *uint16\n\te := ConvertSidToStringSid(sid, &s)\n\tif e != nil {\n\t\treturn \"\"\n\t}\n\tdefer LocalFree((Handle)(unsafe.Pointer(s)))\n\treturn UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:])\n}\n\n// Len returns the length, in bytes, of a valid security identifier SID.\nfunc (sid *SID) Len() int {\n\treturn int(GetLengthSid(sid))\n}\n\n// Copy creates a duplicate of security identifier SID.\nfunc (sid *SID) Copy() (*SID, error) {\n\tb := make([]byte, sid.Len())\n\tsid2 := (*SID)(unsafe.Pointer(&b[0]))\n\te := CopySid(uint32(len(b)), sid2, sid)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn sid2, nil\n}\n\n// IdentifierAuthority returns the identifier authority of the SID.\nfunc (sid *SID) IdentifierAuthority() SidIdentifierAuthority {\n\treturn *getSidIdentifierAuthority(sid)\n}\n\n// SubAuthorityCount returns the number of sub-authorities in the SID.\nfunc (sid *SID) SubAuthorityCount() uint8 {\n\treturn *getSidSubAuthorityCount(sid)\n}\n\n// SubAuthority returns the sub-authority of the SID as specified by\n// the index, which must be less than sid.SubAuthorityCount().\nfunc (sid *SID) SubAuthority(idx uint32) uint32 {\n\tif idx >= uint32(sid.SubAuthorityCount()) {\n\t\tpanic(\"sub-authority index out of range\")\n\t}\n\treturn *getSidSubAuthority(sid, idx)\n}\n\n// IsValid returns whether the SID has a valid revision and length.\nfunc (sid *SID) IsValid() bool {\n\treturn isValidSid(sid)\n}\n\n// Equals compares two SIDs for equality.\nfunc (sid *SID) Equals(sid2 *SID) bool {\n\treturn EqualSid(sid, sid2)\n}\n\n// IsWellKnown determines whether the SID matches the well-known sidType.\nfunc (sid *SID) IsWellKnown(sidType WELL_KNOWN_SID_TYPE) bool {\n\treturn isWellKnownSid(sid, sidType)\n}\n\n// LookupAccount retrieves the name of the account for this SID\n// and the name of the first domain on which this SID is found.\n// System specify target computer to search for.\nfunc (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) {\n\tvar sys *uint16\n\tif len(system) > 0 {\n\t\tsys, err = UTF16PtrFromString(system)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", 0, err\n\t\t}\n\t}\n\tn := uint32(50)\n\tdn := uint32(50)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tdb := make([]uint16, dn)\n\t\te := LookupAccountSid(sys, sid, &b[0], &n, &db[0], &dn, &accType)\n\t\tif e == nil {\n\t\t\treturn UTF16ToString(b), UTF16ToString(db), accType, nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn \"\", \"\", 0, e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn \"\", \"\", 0, e\n\t\t}\n\t}\n}\n\n// Various types of pre-specified SIDs that can be synthesized and compared at runtime.\ntype WELL_KNOWN_SID_TYPE uint32\n\nconst (\n\tWinNullSid                                    = 0\n\tWinWorldSid                                   = 1\n\tWinLocalSid                                   = 2\n\tWinCreatorOwnerSid                            = 3\n\tWinCreatorGroupSid                            = 4\n\tWinCreatorOwnerServerSid                      = 5\n\tWinCreatorGroupServerSid                      = 6\n\tWinNtAuthoritySid                             = 7\n\tWinDialupSid                                  = 8\n\tWinNetworkSid                                 = 9\n\tWinBatchSid                                   = 10\n\tWinInteractiveSid                             = 11\n\tWinServiceSid                                 = 12\n\tWinAnonymousSid                               = 13\n\tWinProxySid                                   = 14\n\tWinEnterpriseControllersSid                   = 15\n\tWinSelfSid                                    = 16\n\tWinAuthenticatedUserSid                       = 17\n\tWinRestrictedCodeSid                          = 18\n\tWinTerminalServerSid                          = 19\n\tWinRemoteLogonIdSid                           = 20\n\tWinLogonIdsSid                                = 21\n\tWinLocalSystemSid                             = 22\n\tWinLocalServiceSid                            = 23\n\tWinNetworkServiceSid                          = 24\n\tWinBuiltinDomainSid                           = 25\n\tWinBuiltinAdministratorsSid                   = 26\n\tWinBuiltinUsersSid                            = 27\n\tWinBuiltinGuestsSid                           = 28\n\tWinBuiltinPowerUsersSid                       = 29\n\tWinBuiltinAccountOperatorsSid                 = 30\n\tWinBuiltinSystemOperatorsSid                  = 31\n\tWinBuiltinPrintOperatorsSid                   = 32\n\tWinBuiltinBackupOperatorsSid                  = 33\n\tWinBuiltinReplicatorSid                       = 34\n\tWinBuiltinPreWindows2000CompatibleAccessSid   = 35\n\tWinBuiltinRemoteDesktopUsersSid               = 36\n\tWinBuiltinNetworkConfigurationOperatorsSid    = 37\n\tWinAccountAdministratorSid                    = 38\n\tWinAccountGuestSid                            = 39\n\tWinAccountKrbtgtSid                           = 40\n\tWinAccountDomainAdminsSid                     = 41\n\tWinAccountDomainUsersSid                      = 42\n\tWinAccountDomainGuestsSid                     = 43\n\tWinAccountComputersSid                        = 44\n\tWinAccountControllersSid                      = 45\n\tWinAccountCertAdminsSid                       = 46\n\tWinAccountSchemaAdminsSid                     = 47\n\tWinAccountEnterpriseAdminsSid                 = 48\n\tWinAccountPolicyAdminsSid                     = 49\n\tWinAccountRasAndIasServersSid                 = 50\n\tWinNTLMAuthenticationSid                      = 51\n\tWinDigestAuthenticationSid                    = 52\n\tWinSChannelAuthenticationSid                  = 53\n\tWinThisOrganizationSid                        = 54\n\tWinOtherOrganizationSid                       = 55\n\tWinBuiltinIncomingForestTrustBuildersSid      = 56\n\tWinBuiltinPerfMonitoringUsersSid              = 57\n\tWinBuiltinPerfLoggingUsersSid                 = 58\n\tWinBuiltinAuthorizationAccessSid              = 59\n\tWinBuiltinTerminalServerLicenseServersSid     = 60\n\tWinBuiltinDCOMUsersSid                        = 61\n\tWinBuiltinIUsersSid                           = 62\n\tWinIUserSid                                   = 63\n\tWinBuiltinCryptoOperatorsSid                  = 64\n\tWinUntrustedLabelSid                          = 65\n\tWinLowLabelSid                                = 66\n\tWinMediumLabelSid                             = 67\n\tWinHighLabelSid                               = 68\n\tWinSystemLabelSid                             = 69\n\tWinWriteRestrictedCodeSid                     = 70\n\tWinCreatorOwnerRightsSid                      = 71\n\tWinCacheablePrincipalsGroupSid                = 72\n\tWinNonCacheablePrincipalsGroupSid             = 73\n\tWinEnterpriseReadonlyControllersSid           = 74\n\tWinAccountReadonlyControllersSid              = 75\n\tWinBuiltinEventLogReadersGroup                = 76\n\tWinNewEnterpriseReadonlyControllersSid        = 77\n\tWinBuiltinCertSvcDComAccessGroup              = 78\n\tWinMediumPlusLabelSid                         = 79\n\tWinLocalLogonSid                              = 80\n\tWinConsoleLogonSid                            = 81\n\tWinThisOrganizationCertificateSid             = 82\n\tWinApplicationPackageAuthoritySid             = 83\n\tWinBuiltinAnyPackageSid                       = 84\n\tWinCapabilityInternetClientSid                = 85\n\tWinCapabilityInternetClientServerSid          = 86\n\tWinCapabilityPrivateNetworkClientServerSid    = 87\n\tWinCapabilityPicturesLibrarySid               = 88\n\tWinCapabilityVideosLibrarySid                 = 89\n\tWinCapabilityMusicLibrarySid                  = 90\n\tWinCapabilityDocumentsLibrarySid              = 91\n\tWinCapabilitySharedUserCertificatesSid        = 92\n\tWinCapabilityEnterpriseAuthenticationSid      = 93\n\tWinCapabilityRemovableStorageSid              = 94\n\tWinBuiltinRDSRemoteAccessServersSid           = 95\n\tWinBuiltinRDSEndpointServersSid               = 96\n\tWinBuiltinRDSManagementServersSid             = 97\n\tWinUserModeDriversSid                         = 98\n\tWinBuiltinHyperVAdminsSid                     = 99\n\tWinAccountCloneableControllersSid             = 100\n\tWinBuiltinAccessControlAssistanceOperatorsSid = 101\n\tWinBuiltinRemoteManagementUsersSid            = 102\n\tWinAuthenticationAuthorityAssertedSid         = 103\n\tWinAuthenticationServiceAssertedSid           = 104\n\tWinLocalAccountSid                            = 105\n\tWinLocalAccountAndAdministratorSid            = 106\n\tWinAccountProtectedUsersSid                   = 107\n\tWinCapabilityAppointmentsSid                  = 108\n\tWinCapabilityContactsSid                      = 109\n\tWinAccountDefaultSystemManagedSid             = 110\n\tWinBuiltinDefaultSystemManagedGroupSid        = 111\n\tWinBuiltinStorageReplicaAdminsSid             = 112\n\tWinAccountKeyAdminsSid                        = 113\n\tWinAccountEnterpriseKeyAdminsSid              = 114\n\tWinAuthenticationKeyTrustSid                  = 115\n\tWinAuthenticationKeyPropertyMFASid            = 116\n\tWinAuthenticationKeyPropertyAttestationSid    = 117\n\tWinAuthenticationFreshKeyAuthSid              = 118\n\tWinBuiltinDeviceOwnersSid                     = 119\n)\n\n// Creates a SID for a well-known predefined alias, generally using the constants of the form\n// Win*Sid, for the local machine.\nfunc CreateWellKnownSid(sidType WELL_KNOWN_SID_TYPE) (*SID, error) {\n\treturn CreateWellKnownDomainSid(sidType, nil)\n}\n\n// Creates a SID for a well-known predefined alias, generally using the constants of the form\n// Win*Sid, for the domain specified by the domainSid parameter.\nfunc CreateWellKnownDomainSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID) (*SID, error) {\n\tn := uint32(50)\n\tfor {\n\t\tb := make([]byte, n)\n\t\tsid := (*SID)(unsafe.Pointer(&b[0]))\n\t\terr := createWellKnownSid(sidType, domainSid, sid, &n)\n\t\tif err == nil {\n\t\t\treturn sid, nil\n\t\t}\n\t\tif err != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn nil, err\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn nil, err\n\t\t}\n\t}\n}\n\nconst (\n\t// do not reorder\n\tTOKEN_ASSIGN_PRIMARY = 1 << iota\n\tTOKEN_DUPLICATE\n\tTOKEN_IMPERSONATE\n\tTOKEN_QUERY\n\tTOKEN_QUERY_SOURCE\n\tTOKEN_ADJUST_PRIVILEGES\n\tTOKEN_ADJUST_GROUPS\n\tTOKEN_ADJUST_DEFAULT\n\tTOKEN_ADJUST_SESSIONID\n\n\tTOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED |\n\t\tTOKEN_ASSIGN_PRIMARY |\n\t\tTOKEN_DUPLICATE |\n\t\tTOKEN_IMPERSONATE |\n\t\tTOKEN_QUERY |\n\t\tTOKEN_QUERY_SOURCE |\n\t\tTOKEN_ADJUST_PRIVILEGES |\n\t\tTOKEN_ADJUST_GROUPS |\n\t\tTOKEN_ADJUST_DEFAULT |\n\t\tTOKEN_ADJUST_SESSIONID\n\tTOKEN_READ  = STANDARD_RIGHTS_READ | TOKEN_QUERY\n\tTOKEN_WRITE = STANDARD_RIGHTS_WRITE |\n\t\tTOKEN_ADJUST_PRIVILEGES |\n\t\tTOKEN_ADJUST_GROUPS |\n\t\tTOKEN_ADJUST_DEFAULT\n\tTOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE\n)\n\nconst (\n\t// do not reorder\n\tTokenUser = 1 + iota\n\tTokenGroups\n\tTokenPrivileges\n\tTokenOwner\n\tTokenPrimaryGroup\n\tTokenDefaultDacl\n\tTokenSource\n\tTokenType\n\tTokenImpersonationLevel\n\tTokenStatistics\n\tTokenRestrictedSids\n\tTokenSessionId\n\tTokenGroupsAndPrivileges\n\tTokenSessionReference\n\tTokenSandBoxInert\n\tTokenAuditPolicy\n\tTokenOrigin\n\tTokenElevationType\n\tTokenLinkedToken\n\tTokenElevation\n\tTokenHasRestrictions\n\tTokenAccessInformation\n\tTokenVirtualizationAllowed\n\tTokenVirtualizationEnabled\n\tTokenIntegrityLevel\n\tTokenUIAccess\n\tTokenMandatoryPolicy\n\tTokenLogonSid\n\tMaxTokenInfoClass\n)\n\n// Group attributes inside of Tokengroups.Groups[i].Attributes\nconst (\n\tSE_GROUP_MANDATORY          = 0x00000001\n\tSE_GROUP_ENABLED_BY_DEFAULT = 0x00000002\n\tSE_GROUP_ENABLED            = 0x00000004\n\tSE_GROUP_OWNER              = 0x00000008\n\tSE_GROUP_USE_FOR_DENY_ONLY  = 0x00000010\n\tSE_GROUP_INTEGRITY          = 0x00000020\n\tSE_GROUP_INTEGRITY_ENABLED  = 0x00000040\n\tSE_GROUP_LOGON_ID           = 0xC0000000\n\tSE_GROUP_RESOURCE           = 0x20000000\n\tSE_GROUP_VALID_ATTRIBUTES   = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED | SE_GROUP_OWNER | SE_GROUP_USE_FOR_DENY_ONLY | SE_GROUP_LOGON_ID | SE_GROUP_RESOURCE | SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED\n)\n\n// Privilege attributes\nconst (\n\tSE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001\n\tSE_PRIVILEGE_ENABLED            = 0x00000002\n\tSE_PRIVILEGE_REMOVED            = 0x00000004\n\tSE_PRIVILEGE_USED_FOR_ACCESS    = 0x80000000\n\tSE_PRIVILEGE_VALID_ATTRIBUTES   = SE_PRIVILEGE_ENABLED_BY_DEFAULT | SE_PRIVILEGE_ENABLED | SE_PRIVILEGE_REMOVED | SE_PRIVILEGE_USED_FOR_ACCESS\n)\n\n// Token types\nconst (\n\tTokenPrimary       = 1\n\tTokenImpersonation = 2\n)\n\n// Impersonation levels\nconst (\n\tSecurityAnonymous      = 0\n\tSecurityIdentification = 1\n\tSecurityImpersonation  = 2\n\tSecurityDelegation     = 3\n)\n\ntype LUID struct {\n\tLowPart  uint32\n\tHighPart int32\n}\n\ntype LUIDAndAttributes struct {\n\tLuid       LUID\n\tAttributes uint32\n}\n\ntype SIDAndAttributes struct {\n\tSid        *SID\n\tAttributes uint32\n}\n\ntype Tokenuser struct {\n\tUser SIDAndAttributes\n}\n\ntype Tokenprimarygroup struct {\n\tPrimaryGroup *SID\n}\n\ntype Tokengroups struct {\n\tGroupCount uint32\n\tGroups     [1]SIDAndAttributes // Use AllGroups() for iterating.\n}\n\n// AllGroups returns a slice that can be used to iterate over the groups in g.\nfunc (g *Tokengroups) AllGroups() []SIDAndAttributes {\n\treturn (*[(1 << 28) - 1]SIDAndAttributes)(unsafe.Pointer(&g.Groups[0]))[:g.GroupCount:g.GroupCount]\n}\n\ntype Tokenprivileges struct {\n\tPrivilegeCount uint32\n\tPrivileges     [1]LUIDAndAttributes // Use AllPrivileges() for iterating.\n}\n\n// AllPrivileges returns a slice that can be used to iterate over the privileges in p.\nfunc (p *Tokenprivileges) AllPrivileges() []LUIDAndAttributes {\n\treturn (*[(1 << 27) - 1]LUIDAndAttributes)(unsafe.Pointer(&p.Privileges[0]))[:p.PrivilegeCount:p.PrivilegeCount]\n}\n\ntype Tokenmandatorylabel struct {\n\tLabel SIDAndAttributes\n}\n\nfunc (tml *Tokenmandatorylabel) Size() uint32 {\n\treturn uint32(unsafe.Sizeof(Tokenmandatorylabel{})) + GetLengthSid(tml.Label.Sid)\n}\n\n// Authorization Functions\n//sys\tcheckTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership\n//sys\tisTokenRestricted(tokenHandle Token) (ret bool, err error) [!failretval] = advapi32.IsTokenRestricted\n//sys\tOpenProcessToken(process Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken\n//sys\tOpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) = advapi32.OpenThreadToken\n//sys\tImpersonateSelf(impersonationlevel uint32) (err error) = advapi32.ImpersonateSelf\n//sys\tRevertToSelf() (err error) = advapi32.RevertToSelf\n//sys\tSetThreadToken(thread *Handle, token Token) (err error) = advapi32.SetThreadToken\n//sys\tLookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) = advapi32.LookupPrivilegeValueW\n//sys\tAdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) = advapi32.AdjustTokenPrivileges\n//sys\tAdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) = advapi32.AdjustTokenGroups\n//sys\tGetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation\n//sys\tSetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) = advapi32.SetTokenInformation\n//sys\tDuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) = advapi32.DuplicateTokenEx\n//sys\tGetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW\n//sys\tgetSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemDirectoryW\n//sys\tgetWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetWindowsDirectoryW\n//sys\tgetSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemWindowsDirectoryW\n\n// An access token contains the security information for a logon session.\n// The system creates an access token when a user logs on, and every\n// process executed on behalf of the user has a copy of the token.\n// The token identifies the user, the user's groups, and the user's\n// privileges. The system uses the token to control access to securable\n// objects and to control the ability of the user to perform various\n// system-related operations on the local computer.\ntype Token Handle\n\n// OpenCurrentProcessToken opens an access token associated with current\n// process with TOKEN_QUERY access. It is a real token that needs to be closed.\n//\n// Deprecated: Explicitly call OpenProcessToken(CurrentProcess(), ...)\n// with the desired access instead, or use GetCurrentProcessToken for a\n// TOKEN_QUERY token.\nfunc OpenCurrentProcessToken() (Token, error) {\n\tvar token Token\n\terr := OpenProcessToken(CurrentProcess(), TOKEN_QUERY, &token)\n\treturn token, err\n}\n\n// GetCurrentProcessToken returns the access token associated with\n// the current process. It is a pseudo token that does not need\n// to be closed.\nfunc GetCurrentProcessToken() Token {\n\treturn Token(^uintptr(4 - 1))\n}\n\n// GetCurrentThreadToken return the access token associated with\n// the current thread. It is a pseudo token that does not need\n// to be closed.\nfunc GetCurrentThreadToken() Token {\n\treturn Token(^uintptr(5 - 1))\n}\n\n// GetCurrentThreadEffectiveToken returns the effective access token\n// associated with the current thread. It is a pseudo token that does\n// not need to be closed.\nfunc GetCurrentThreadEffectiveToken() Token {\n\treturn Token(^uintptr(6 - 1))\n}\n\n// Close releases access to access token.\nfunc (t Token) Close() error {\n\treturn CloseHandle(Handle(t))\n}\n\n// getInfo retrieves a specified type of information about an access token.\nfunc (t Token) getInfo(class uint32, initSize int) (unsafe.Pointer, error) {\n\tn := uint32(initSize)\n\tfor {\n\t\tb := make([]byte, n)\n\t\te := GetTokenInformation(t, class, &b[0], uint32(len(b)), &n)\n\t\tif e == nil {\n\t\t\treturn unsafe.Pointer(&b[0]), nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn nil, e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn nil, e\n\t\t}\n\t}\n}\n\n// GetTokenUser retrieves access token t user account information.\nfunc (t Token) GetTokenUser() (*Tokenuser, error) {\n\ti, e := t.getInfo(TokenUser, 50)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn (*Tokenuser)(i), nil\n}\n\n// GetTokenGroups retrieves group accounts associated with access token t.\nfunc (t Token) GetTokenGroups() (*Tokengroups, error) {\n\ti, e := t.getInfo(TokenGroups, 50)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn (*Tokengroups)(i), nil\n}\n\n// GetTokenPrimaryGroup retrieves access token t primary group information.\n// A pointer to a SID structure representing a group that will become\n// the primary group of any objects created by a process using this access token.\nfunc (t Token) GetTokenPrimaryGroup() (*Tokenprimarygroup, error) {\n\ti, e := t.getInfo(TokenPrimaryGroup, 50)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn (*Tokenprimarygroup)(i), nil\n}\n\n// GetUserProfileDirectory retrieves path to the\n// root directory of the access token t user's profile.\nfunc (t Token) GetUserProfileDirectory() (string, error) {\n\tn := uint32(100)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\te := GetUserProfileDirectory(t, &b[0], &n)\n\t\tif e == nil {\n\t\t\treturn UTF16ToString(b), nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn \"\", e\n\t\t}\n\t}\n}\n\n// IsElevated returns whether the current token is elevated from a UAC perspective.\nfunc (token Token) IsElevated() bool {\n\tvar isElevated uint32\n\tvar outLen uint32\n\terr := GetTokenInformation(token, TokenElevation, (*byte)(unsafe.Pointer(&isElevated)), uint32(unsafe.Sizeof(isElevated)), &outLen)\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn outLen == uint32(unsafe.Sizeof(isElevated)) && isElevated != 0\n}\n\n// GetLinkedToken returns the linked token, which may be an elevated UAC token.\nfunc (token Token) GetLinkedToken() (Token, error) {\n\tvar linkedToken Token\n\tvar outLen uint32\n\terr := GetTokenInformation(token, TokenLinkedToken, (*byte)(unsafe.Pointer(&linkedToken)), uint32(unsafe.Sizeof(linkedToken)), &outLen)\n\tif err != nil {\n\t\treturn Token(0), err\n\t}\n\treturn linkedToken, nil\n}\n\n// GetSystemDirectory retrieves the path to current location of the system\n// directory, which is typically, though not always, `C:\\Windows\\System32`.\nfunc GetSystemDirectory() (string, error) {\n\tn := uint32(MAX_PATH)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tl, e := getSystemDirectory(&b[0], n)\n\t\tif e != nil {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif l <= n {\n\t\t\treturn UTF16ToString(b[:l]), nil\n\t\t}\n\t\tn = l\n\t}\n}\n\n// GetWindowsDirectory retrieves the path to current location of the Windows\n// directory, which is typically, though not always, `C:\\Windows`. This may\n// be a private user directory in the case that the application is running\n// under a terminal server.\nfunc GetWindowsDirectory() (string, error) {\n\tn := uint32(MAX_PATH)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tl, e := getWindowsDirectory(&b[0], n)\n\t\tif e != nil {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif l <= n {\n\t\t\treturn UTF16ToString(b[:l]), nil\n\t\t}\n\t\tn = l\n\t}\n}\n\n// GetSystemWindowsDirectory retrieves the path to current location of the\n// Windows directory, which is typically, though not always, `C:\\Windows`.\nfunc GetSystemWindowsDirectory() (string, error) {\n\tn := uint32(MAX_PATH)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tl, e := getSystemWindowsDirectory(&b[0], n)\n\t\tif e != nil {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif l <= n {\n\t\t\treturn UTF16ToString(b[:l]), nil\n\t\t}\n\t\tn = l\n\t}\n}\n\n// IsMember reports whether the access token t is a member of the provided SID.\nfunc (t Token) IsMember(sid *SID) (bool, error) {\n\tvar b int32\n\tif e := checkTokenMembership(t, sid, &b); e != nil {\n\t\treturn false, e\n\t}\n\treturn b != 0, nil\n}\n\n// IsRestricted reports whether the access token t is a restricted token.\nfunc (t Token) IsRestricted() (isRestricted bool, err error) {\n\tisRestricted, err = isTokenRestricted(t)\n\tif !isRestricted && err == syscall.EINVAL {\n\t\t// If err is EINVAL, this returned ERROR_SUCCESS indicating a non-restricted token.\n\t\terr = nil\n\t}\n\treturn\n}\n\nconst (\n\tWTS_CONSOLE_CONNECT        = 0x1\n\tWTS_CONSOLE_DISCONNECT     = 0x2\n\tWTS_REMOTE_CONNECT         = 0x3\n\tWTS_REMOTE_DISCONNECT      = 0x4\n\tWTS_SESSION_LOGON          = 0x5\n\tWTS_SESSION_LOGOFF         = 0x6\n\tWTS_SESSION_LOCK           = 0x7\n\tWTS_SESSION_UNLOCK         = 0x8\n\tWTS_SESSION_REMOTE_CONTROL = 0x9\n\tWTS_SESSION_CREATE         = 0xa\n\tWTS_SESSION_TERMINATE      = 0xb\n)\n\nconst (\n\tWTSActive       = 0\n\tWTSConnected    = 1\n\tWTSConnectQuery = 2\n\tWTSShadow       = 3\n\tWTSDisconnected = 4\n\tWTSIdle         = 5\n\tWTSListen       = 6\n\tWTSReset        = 7\n\tWTSDown         = 8\n\tWTSInit         = 9\n)\n\ntype WTSSESSION_NOTIFICATION struct {\n\tSize      uint32\n\tSessionID uint32\n}\n\ntype WTS_SESSION_INFO struct {\n\tSessionID         uint32\n\tWindowStationName *uint16\n\tState             uint32\n}\n\n//sys WTSQueryUserToken(session uint32, token *Token) (err error) = wtsapi32.WTSQueryUserToken\n//sys WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW\n//sys WTSFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory\n//sys WTSGetActiveConsoleSessionId() (sessionID uint32)\n\ntype ACL struct {\n\taclRevision byte\n\tsbz1        byte\n\taclSize     uint16\n\tAceCount    uint16\n\tsbz2        uint16\n}\n\ntype SECURITY_DESCRIPTOR struct {\n\trevision byte\n\tsbz1     byte\n\tcontrol  SECURITY_DESCRIPTOR_CONTROL\n\towner    *SID\n\tgroup    *SID\n\tsacl     *ACL\n\tdacl     *ACL\n}\n\ntype SECURITY_QUALITY_OF_SERVICE struct {\n\tLength              uint32\n\tImpersonationLevel  uint32\n\tContextTrackingMode byte\n\tEffectiveOnly       byte\n}\n\n// Constants for the ContextTrackingMode field of SECURITY_QUALITY_OF_SERVICE.\nconst (\n\tSECURITY_STATIC_TRACKING  = 0\n\tSECURITY_DYNAMIC_TRACKING = 1\n)\n\ntype SecurityAttributes struct {\n\tLength             uint32\n\tSecurityDescriptor *SECURITY_DESCRIPTOR\n\tInheritHandle      uint32\n}\n\ntype SE_OBJECT_TYPE uint32\n\n// Constants for type SE_OBJECT_TYPE\nconst (\n\tSE_UNKNOWN_OBJECT_TYPE     = 0\n\tSE_FILE_OBJECT             = 1\n\tSE_SERVICE                 = 2\n\tSE_PRINTER                 = 3\n\tSE_REGISTRY_KEY            = 4\n\tSE_LMSHARE                 = 5\n\tSE_KERNEL_OBJECT           = 6\n\tSE_WINDOW_OBJECT           = 7\n\tSE_DS_OBJECT               = 8\n\tSE_DS_OBJECT_ALL           = 9\n\tSE_PROVIDER_DEFINED_OBJECT = 10\n\tSE_WMIGUID_OBJECT          = 11\n\tSE_REGISTRY_WOW64_32KEY    = 12\n\tSE_REGISTRY_WOW64_64KEY    = 13\n)\n\ntype SECURITY_INFORMATION uint32\n\n// Constants for type SECURITY_INFORMATION\nconst (\n\tOWNER_SECURITY_INFORMATION            = 0x00000001\n\tGROUP_SECURITY_INFORMATION            = 0x00000002\n\tDACL_SECURITY_INFORMATION             = 0x00000004\n\tSACL_SECURITY_INFORMATION             = 0x00000008\n\tLABEL_SECURITY_INFORMATION            = 0x00000010\n\tATTRIBUTE_SECURITY_INFORMATION        = 0x00000020\n\tSCOPE_SECURITY_INFORMATION            = 0x00000040\n\tBACKUP_SECURITY_INFORMATION           = 0x00010000\n\tPROTECTED_DACL_SECURITY_INFORMATION   = 0x80000000\n\tPROTECTED_SACL_SECURITY_INFORMATION   = 0x40000000\n\tUNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000\n\tUNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000\n)\n\ntype SECURITY_DESCRIPTOR_CONTROL uint16\n\n// Constants for type SECURITY_DESCRIPTOR_CONTROL\nconst (\n\tSE_OWNER_DEFAULTED       = 0x0001\n\tSE_GROUP_DEFAULTED       = 0x0002\n\tSE_DACL_PRESENT          = 0x0004\n\tSE_DACL_DEFAULTED        = 0x0008\n\tSE_SACL_PRESENT          = 0x0010\n\tSE_SACL_DEFAULTED        = 0x0020\n\tSE_DACL_AUTO_INHERIT_REQ = 0x0100\n\tSE_SACL_AUTO_INHERIT_REQ = 0x0200\n\tSE_DACL_AUTO_INHERITED   = 0x0400\n\tSE_SACL_AUTO_INHERITED   = 0x0800\n\tSE_DACL_PROTECTED        = 0x1000\n\tSE_SACL_PROTECTED        = 0x2000\n\tSE_RM_CONTROL_VALID      = 0x4000\n\tSE_SELF_RELATIVE         = 0x8000\n)\n\ntype ACCESS_MASK uint32\n\n// Constants for type ACCESS_MASK\nconst (\n\tDELETE                   = 0x00010000\n\tREAD_CONTROL             = 0x00020000\n\tWRITE_DAC                = 0x00040000\n\tWRITE_OWNER              = 0x00080000\n\tSYNCHRONIZE              = 0x00100000\n\tSTANDARD_RIGHTS_REQUIRED = 0x000F0000\n\tSTANDARD_RIGHTS_READ     = READ_CONTROL\n\tSTANDARD_RIGHTS_WRITE    = READ_CONTROL\n\tSTANDARD_RIGHTS_EXECUTE  = READ_CONTROL\n\tSTANDARD_RIGHTS_ALL      = 0x001F0000\n\tSPECIFIC_RIGHTS_ALL      = 0x0000FFFF\n\tACCESS_SYSTEM_SECURITY   = 0x01000000\n\tMAXIMUM_ALLOWED          = 0x02000000\n\tGENERIC_READ             = 0x80000000\n\tGENERIC_WRITE            = 0x40000000\n\tGENERIC_EXECUTE          = 0x20000000\n\tGENERIC_ALL              = 0x10000000\n)\n\ntype ACCESS_MODE uint32\n\n// Constants for type ACCESS_MODE\nconst (\n\tNOT_USED_ACCESS   = 0\n\tGRANT_ACCESS      = 1\n\tSET_ACCESS        = 2\n\tDENY_ACCESS       = 3\n\tREVOKE_ACCESS     = 4\n\tSET_AUDIT_SUCCESS = 5\n\tSET_AUDIT_FAILURE = 6\n)\n\n// Constants for AceFlags and Inheritance fields\nconst (\n\tNO_INHERITANCE                     = 0x0\n\tSUB_OBJECTS_ONLY_INHERIT           = 0x1\n\tSUB_CONTAINERS_ONLY_INHERIT        = 0x2\n\tSUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3\n\tINHERIT_NO_PROPAGATE               = 0x4\n\tINHERIT_ONLY                       = 0x8\n\tINHERITED_ACCESS_ENTRY             = 0x10\n\tINHERITED_PARENT                   = 0x10000000\n\tINHERITED_GRANDPARENT              = 0x20000000\n\tOBJECT_INHERIT_ACE                 = 0x1\n\tCONTAINER_INHERIT_ACE              = 0x2\n\tNO_PROPAGATE_INHERIT_ACE           = 0x4\n\tINHERIT_ONLY_ACE                   = 0x8\n\tINHERITED_ACE                      = 0x10\n\tVALID_INHERIT_FLAGS                = 0x1F\n)\n\ntype MULTIPLE_TRUSTEE_OPERATION uint32\n\n// Constants for MULTIPLE_TRUSTEE_OPERATION\nconst (\n\tNO_MULTIPLE_TRUSTEE    = 0\n\tTRUSTEE_IS_IMPERSONATE = 1\n)\n\ntype TRUSTEE_FORM uint32\n\n// Constants for TRUSTEE_FORM\nconst (\n\tTRUSTEE_IS_SID              = 0\n\tTRUSTEE_IS_NAME             = 1\n\tTRUSTEE_BAD_FORM            = 2\n\tTRUSTEE_IS_OBJECTS_AND_SID  = 3\n\tTRUSTEE_IS_OBJECTS_AND_NAME = 4\n)\n\ntype TRUSTEE_TYPE uint32\n\n// Constants for TRUSTEE_TYPE\nconst (\n\tTRUSTEE_IS_UNKNOWN          = 0\n\tTRUSTEE_IS_USER             = 1\n\tTRUSTEE_IS_GROUP            = 2\n\tTRUSTEE_IS_DOMAIN           = 3\n\tTRUSTEE_IS_ALIAS            = 4\n\tTRUSTEE_IS_WELL_KNOWN_GROUP = 5\n\tTRUSTEE_IS_DELETED          = 6\n\tTRUSTEE_IS_INVALID          = 7\n\tTRUSTEE_IS_COMPUTER         = 8\n)\n\n// Constants for ObjectsPresent field\nconst (\n\tACE_OBJECT_TYPE_PRESENT           = 0x1\n\tACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2\n)\n\ntype EXPLICIT_ACCESS struct {\n\tAccessPermissions ACCESS_MASK\n\tAccessMode        ACCESS_MODE\n\tInheritance       uint32\n\tTrustee           TRUSTEE\n}\n\n// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header\ntype ACE_HEADER struct {\n\tAceType  uint8\n\tAceFlags uint8\n\tAceSize  uint16\n}\n\n// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-access_allowed_ace\ntype ACCESS_ALLOWED_ACE struct {\n\tHeader   ACE_HEADER\n\tMask     ACCESS_MASK\n\tSidStart uint32\n}\n\nconst (\n\t// Constants for AceType\n\t// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header\n\tACCESS_ALLOWED_ACE_TYPE = 0\n\tACCESS_DENIED_ACE_TYPE  = 1\n)\n\n// This type is the union inside of TRUSTEE and must be created using one of the TrusteeValueFrom* functions.\ntype TrusteeValue uintptr\n\nfunc TrusteeValueFromString(str string) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(StringToUTF16Ptr(str)))\n}\nfunc TrusteeValueFromSID(sid *SID) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(sid))\n}\nfunc TrusteeValueFromObjectsAndSid(objectsAndSid *OBJECTS_AND_SID) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(objectsAndSid))\n}\nfunc TrusteeValueFromObjectsAndName(objectsAndName *OBJECTS_AND_NAME) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(objectsAndName))\n}\n\ntype TRUSTEE struct {\n\tMultipleTrustee          *TRUSTEE\n\tMultipleTrusteeOperation MULTIPLE_TRUSTEE_OPERATION\n\tTrusteeForm              TRUSTEE_FORM\n\tTrusteeType              TRUSTEE_TYPE\n\tTrusteeValue             TrusteeValue\n}\n\ntype OBJECTS_AND_SID struct {\n\tObjectsPresent          uint32\n\tObjectTypeGuid          GUID\n\tInheritedObjectTypeGuid GUID\n\tSid                     *SID\n}\n\ntype OBJECTS_AND_NAME struct {\n\tObjectsPresent          uint32\n\tObjectType              SE_OBJECT_TYPE\n\tObjectTypeName          *uint16\n\tInheritedObjectTypeName *uint16\n\tName                    *uint16\n}\n\n//sys\tgetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetSecurityInfo\n//sys\tSetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetSecurityInfo\n//sys\tgetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetNamedSecurityInfoW\n//sys\tSetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetNamedSecurityInfoW\n//sys\tSetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) = advapi32.SetKernelObjectSecurity\n\n//sys\tbuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) = advapi32.BuildSecurityDescriptorW\n//sys\tinitializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) = advapi32.InitializeSecurityDescriptor\n\n//sys\tgetSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) = advapi32.GetSecurityDescriptorControl\n//sys\tgetSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorDacl\n//sys\tgetSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorSacl\n//sys\tgetSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorOwner\n//sys\tgetSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorGroup\n//sys\tgetSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) = advapi32.GetSecurityDescriptorLength\n//sys\tgetSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) [failretval!=0] = advapi32.GetSecurityDescriptorRMControl\n//sys\tisValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) = advapi32.IsValidSecurityDescriptor\n\n//sys\tsetSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) = advapi32.SetSecurityDescriptorControl\n//sys\tsetSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorDacl\n//sys\tsetSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorSacl\n//sys\tsetSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) = advapi32.SetSecurityDescriptorOwner\n//sys\tsetSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) = advapi32.SetSecurityDescriptorGroup\n//sys\tsetSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) = advapi32.SetSecurityDescriptorRMControl\n\n//sys\tconvertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW\n//sys\tconvertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW\n\n//sys\tmakeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) = advapi32.MakeAbsoluteSD\n//sys\tmakeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) = advapi32.MakeSelfRelativeSD\n\n//sys\tsetEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) = advapi32.SetEntriesInAclW\n//sys\tGetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) = advapi32.GetAce\n\n// Control returns the security descriptor control bits.\nfunc (sd *SECURITY_DESCRIPTOR) Control() (control SECURITY_DESCRIPTOR_CONTROL, revision uint32, err error) {\n\terr = getSecurityDescriptorControl(sd, &control, &revision)\n\treturn\n}\n\n// SetControl sets the security descriptor control bits.\nfunc (sd *SECURITY_DESCRIPTOR) SetControl(controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) error {\n\treturn setSecurityDescriptorControl(sd, controlBitsOfInterest, controlBitsToSet)\n}\n\n// RMControl returns the security descriptor resource manager control bits.\nfunc (sd *SECURITY_DESCRIPTOR) RMControl() (control uint8, err error) {\n\terr = getSecurityDescriptorRMControl(sd, &control)\n\treturn\n}\n\n// SetRMControl sets the security descriptor resource manager control bits.\nfunc (sd *SECURITY_DESCRIPTOR) SetRMControl(rmControl uint8) {\n\tsetSecurityDescriptorRMControl(sd, &rmControl)\n}\n\n// DACL returns the security descriptor DACL and whether it was defaulted. The dacl return value may be nil\n// if a DACL exists but is an \"empty DACL\", meaning fully permissive. If the DACL does not exist, err returns\n// ERROR_OBJECT_NOT_FOUND.\nfunc (sd *SECURITY_DESCRIPTOR) DACL() (dacl *ACL, defaulted bool, err error) {\n\tvar present bool\n\terr = getSecurityDescriptorDacl(sd, &present, &dacl, &defaulted)\n\tif !present {\n\t\terr = ERROR_OBJECT_NOT_FOUND\n\t}\n\treturn\n}\n\n// SetDACL sets the absolute security descriptor DACL.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetDACL(dacl *ACL, present, defaulted bool) error {\n\treturn setSecurityDescriptorDacl(absoluteSD, present, dacl, defaulted)\n}\n\n// SACL returns the security descriptor SACL and whether it was defaulted. The sacl return value may be nil\n// if a SACL exists but is an \"empty SACL\", meaning fully permissive. If the SACL does not exist, err returns\n// ERROR_OBJECT_NOT_FOUND.\nfunc (sd *SECURITY_DESCRIPTOR) SACL() (sacl *ACL, defaulted bool, err error) {\n\tvar present bool\n\terr = getSecurityDescriptorSacl(sd, &present, &sacl, &defaulted)\n\tif !present {\n\t\terr = ERROR_OBJECT_NOT_FOUND\n\t}\n\treturn\n}\n\n// SetSACL sets the absolute security descriptor SACL.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetSACL(sacl *ACL, present, defaulted bool) error {\n\treturn setSecurityDescriptorSacl(absoluteSD, present, sacl, defaulted)\n}\n\n// Owner returns the security descriptor owner and whether it was defaulted.\nfunc (sd *SECURITY_DESCRIPTOR) Owner() (owner *SID, defaulted bool, err error) {\n\terr = getSecurityDescriptorOwner(sd, &owner, &defaulted)\n\treturn\n}\n\n// SetOwner sets the absolute security descriptor owner.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetOwner(owner *SID, defaulted bool) error {\n\treturn setSecurityDescriptorOwner(absoluteSD, owner, defaulted)\n}\n\n// Group returns the security descriptor group and whether it was defaulted.\nfunc (sd *SECURITY_DESCRIPTOR) Group() (group *SID, defaulted bool, err error) {\n\terr = getSecurityDescriptorGroup(sd, &group, &defaulted)\n\treturn\n}\n\n// SetGroup sets the absolute security descriptor owner.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetGroup(group *SID, defaulted bool) error {\n\treturn setSecurityDescriptorGroup(absoluteSD, group, defaulted)\n}\n\n// Length returns the length of the security descriptor.\nfunc (sd *SECURITY_DESCRIPTOR) Length() uint32 {\n\treturn getSecurityDescriptorLength(sd)\n}\n\n// IsValid returns whether the security descriptor is valid.\nfunc (sd *SECURITY_DESCRIPTOR) IsValid() bool {\n\treturn isValidSecurityDescriptor(sd)\n}\n\n// String returns the SDDL form of the security descriptor, with a function signature that can be\n// used with %v formatting directives.\nfunc (sd *SECURITY_DESCRIPTOR) String() string {\n\tvar sddl *uint16\n\terr := convertSecurityDescriptorToStringSecurityDescriptor(sd, 1, 0xff, &sddl, nil)\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(sddl)))\n\treturn UTF16PtrToString(sddl)\n}\n\n// ToAbsolute converts a self-relative security descriptor into an absolute one.\nfunc (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DESCRIPTOR, err error) {\n\tcontrol, _, err := selfRelativeSD.Control()\n\tif err != nil {\n\t\treturn\n\t}\n\tif control&SE_SELF_RELATIVE == 0 {\n\t\terr = ERROR_INVALID_PARAMETER\n\t\treturn\n\t}\n\tvar absoluteSDSize, daclSize, saclSize, ownerSize, groupSize uint32\n\terr = makeAbsoluteSD(selfRelativeSD, nil, &absoluteSDSize,\n\t\tnil, &daclSize, nil, &saclSize, nil, &ownerSize, nil, &groupSize)\n\tswitch err {\n\tcase ERROR_INSUFFICIENT_BUFFER:\n\tcase nil:\n\t\t// makeAbsoluteSD is expected to fail, but it succeeds.\n\t\treturn nil, ERROR_INTERNAL_ERROR\n\tdefault:\n\t\treturn nil, err\n\t}\n\tif absoluteSDSize > 0 {\n\t\tabsoluteSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, absoluteSDSize)[0]))\n\t}\n\tvar (\n\t\tdacl  *ACL\n\t\tsacl  *ACL\n\t\towner *SID\n\t\tgroup *SID\n\t)\n\tif daclSize > 0 {\n\t\tdacl = (*ACL)(unsafe.Pointer(&make([]byte, daclSize)[0]))\n\t}\n\tif saclSize > 0 {\n\t\tsacl = (*ACL)(unsafe.Pointer(&make([]byte, saclSize)[0]))\n\t}\n\tif ownerSize > 0 {\n\t\towner = (*SID)(unsafe.Pointer(&make([]byte, ownerSize)[0]))\n\t}\n\tif groupSize > 0 {\n\t\tgroup = (*SID)(unsafe.Pointer(&make([]byte, groupSize)[0]))\n\t}\n\terr = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize,\n\t\tdacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize)\n\treturn\n}\n\n// ToSelfRelative converts an absolute security descriptor into a self-relative one.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) ToSelfRelative() (selfRelativeSD *SECURITY_DESCRIPTOR, err error) {\n\tcontrol, _, err := absoluteSD.Control()\n\tif err != nil {\n\t\treturn\n\t}\n\tif control&SE_SELF_RELATIVE != 0 {\n\t\terr = ERROR_INVALID_PARAMETER\n\t\treturn\n\t}\n\tvar selfRelativeSDSize uint32\n\terr = makeSelfRelativeSD(absoluteSD, nil, &selfRelativeSDSize)\n\tswitch err {\n\tcase ERROR_INSUFFICIENT_BUFFER:\n\tcase nil:\n\t\t// makeSelfRelativeSD is expected to fail, but it succeeds.\n\t\treturn nil, ERROR_INTERNAL_ERROR\n\tdefault:\n\t\treturn nil, err\n\t}\n\tif selfRelativeSDSize > 0 {\n\t\tselfRelativeSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, selfRelativeSDSize)[0]))\n\t}\n\terr = makeSelfRelativeSD(absoluteSD, selfRelativeSD, &selfRelativeSDSize)\n\treturn\n}\n\nfunc (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() *SECURITY_DESCRIPTOR {\n\tsdLen := int(selfRelativeSD.Length())\n\tconst min = int(unsafe.Sizeof(SECURITY_DESCRIPTOR{}))\n\tif sdLen < min {\n\t\tsdLen = min\n\t}\n\n\tsrc := unsafe.Slice((*byte)(unsafe.Pointer(selfRelativeSD)), sdLen)\n\t// SECURITY_DESCRIPTOR has pointers in it, which means checkptr expects for it to\n\t// be aligned properly. When we're copying a Windows-allocated struct to a\n\t// Go-allocated one, make sure that the Go allocation is aligned to the\n\t// pointer size.\n\tconst psize = int(unsafe.Sizeof(uintptr(0)))\n\talloc := make([]uintptr, (sdLen+psize-1)/psize)\n\tdst := unsafe.Slice((*byte)(unsafe.Pointer(&alloc[0])), sdLen)\n\tcopy(dst, src)\n\treturn (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&dst[0]))\n}\n\n// SecurityDescriptorFromString converts an SDDL string describing a security descriptor into a\n// self-relative security descriptor object allocated on the Go heap.\nfunc SecurityDescriptorFromString(sddl string) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\terr = convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &winHeapSD, nil)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// GetSecurityInfo queries the security information for a given handle and returns the self-relative security\n// descriptor result on the Go heap.\nfunc GetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\terr = getSecurityInfo(handle, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// GetNamedSecurityInfo queries the security information for a given named object and returns the self-relative security\n// descriptor result on the Go heap.\nfunc GetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\terr = getNamedSecurityInfo(objectName, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// BuildSecurityDescriptor makes a new security descriptor using the input trustees, explicit access lists, and\n// prior security descriptor to be merged, any of which can be nil, returning the self-relative security descriptor\n// result on the Go heap.\nfunc BuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, accessEntries []EXPLICIT_ACCESS, auditEntries []EXPLICIT_ACCESS, mergedSecurityDescriptor *SECURITY_DESCRIPTOR) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\tvar winHeapSDSize uint32\n\tvar firstAccessEntry *EXPLICIT_ACCESS\n\tif len(accessEntries) > 0 {\n\t\tfirstAccessEntry = &accessEntries[0]\n\t}\n\tvar firstAuditEntry *EXPLICIT_ACCESS\n\tif len(auditEntries) > 0 {\n\t\tfirstAuditEntry = &auditEntries[0]\n\t}\n\terr = buildSecurityDescriptor(owner, group, uint32(len(accessEntries)), firstAccessEntry, uint32(len(auditEntries)), firstAuditEntry, mergedSecurityDescriptor, &winHeapSDSize, &winHeapSD)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// NewSecurityDescriptor creates and initializes a new absolute security descriptor.\nfunc NewSecurityDescriptor() (absoluteSD *SECURITY_DESCRIPTOR, err error) {\n\tabsoluteSD = &SECURITY_DESCRIPTOR{}\n\terr = initializeSecurityDescriptor(absoluteSD, 1)\n\treturn\n}\n\n// ACLFromEntries returns a new ACL on the Go heap containing a list of explicit entries as well as those of another ACL.\n// Both explicitEntries and mergedACL are optional and can be nil.\nfunc ACLFromEntries(explicitEntries []EXPLICIT_ACCESS, mergedACL *ACL) (acl *ACL, err error) {\n\tvar firstExplicitEntry *EXPLICIT_ACCESS\n\tif len(explicitEntries) > 0 {\n\t\tfirstExplicitEntry = &explicitEntries[0]\n\t}\n\tvar winHeapACL *ACL\n\terr = setEntriesInAcl(uint32(len(explicitEntries)), firstExplicitEntry, mergedACL, &winHeapACL)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapACL)))\n\taclBytes := make([]byte, winHeapACL.aclSize)\n\tcopy(aclBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(winHeapACL))[:len(aclBytes):len(aclBytes)])\n\treturn (*ACL)(unsafe.Pointer(&aclBytes[0])), nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/service.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nconst (\n\tSC_MANAGER_CONNECT            = 1\n\tSC_MANAGER_CREATE_SERVICE     = 2\n\tSC_MANAGER_ENUMERATE_SERVICE  = 4\n\tSC_MANAGER_LOCK               = 8\n\tSC_MANAGER_QUERY_LOCK_STATUS  = 16\n\tSC_MANAGER_MODIFY_BOOT_CONFIG = 32\n\tSC_MANAGER_ALL_ACCESS         = 0xf003f\n)\n\nconst (\n\tSERVICE_KERNEL_DRIVER       = 1\n\tSERVICE_FILE_SYSTEM_DRIVER  = 2\n\tSERVICE_ADAPTER             = 4\n\tSERVICE_RECOGNIZER_DRIVER   = 8\n\tSERVICE_WIN32_OWN_PROCESS   = 16\n\tSERVICE_WIN32_SHARE_PROCESS = 32\n\tSERVICE_WIN32               = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS\n\tSERVICE_INTERACTIVE_PROCESS = 256\n\tSERVICE_DRIVER              = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER\n\tSERVICE_TYPE_ALL            = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS\n\n\tSERVICE_BOOT_START   = 0\n\tSERVICE_SYSTEM_START = 1\n\tSERVICE_AUTO_START   = 2\n\tSERVICE_DEMAND_START = 3\n\tSERVICE_DISABLED     = 4\n\n\tSERVICE_ERROR_IGNORE   = 0\n\tSERVICE_ERROR_NORMAL   = 1\n\tSERVICE_ERROR_SEVERE   = 2\n\tSERVICE_ERROR_CRITICAL = 3\n\n\tSC_STATUS_PROCESS_INFO = 0\n\n\tSC_ACTION_NONE        = 0\n\tSC_ACTION_RESTART     = 1\n\tSC_ACTION_REBOOT      = 2\n\tSC_ACTION_RUN_COMMAND = 3\n\n\tSERVICE_STOPPED          = 1\n\tSERVICE_START_PENDING    = 2\n\tSERVICE_STOP_PENDING     = 3\n\tSERVICE_RUNNING          = 4\n\tSERVICE_CONTINUE_PENDING = 5\n\tSERVICE_PAUSE_PENDING    = 6\n\tSERVICE_PAUSED           = 7\n\tSERVICE_NO_CHANGE        = 0xffffffff\n\n\tSERVICE_ACCEPT_STOP                  = 1\n\tSERVICE_ACCEPT_PAUSE_CONTINUE        = 2\n\tSERVICE_ACCEPT_SHUTDOWN              = 4\n\tSERVICE_ACCEPT_PARAMCHANGE           = 8\n\tSERVICE_ACCEPT_NETBINDCHANGE         = 16\n\tSERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32\n\tSERVICE_ACCEPT_POWEREVENT            = 64\n\tSERVICE_ACCEPT_SESSIONCHANGE         = 128\n\tSERVICE_ACCEPT_PRESHUTDOWN           = 256\n\n\tSERVICE_CONTROL_STOP                  = 1\n\tSERVICE_CONTROL_PAUSE                 = 2\n\tSERVICE_CONTROL_CONTINUE              = 3\n\tSERVICE_CONTROL_INTERROGATE           = 4\n\tSERVICE_CONTROL_SHUTDOWN              = 5\n\tSERVICE_CONTROL_PARAMCHANGE           = 6\n\tSERVICE_CONTROL_NETBINDADD            = 7\n\tSERVICE_CONTROL_NETBINDREMOVE         = 8\n\tSERVICE_CONTROL_NETBINDENABLE         = 9\n\tSERVICE_CONTROL_NETBINDDISABLE        = 10\n\tSERVICE_CONTROL_DEVICEEVENT           = 11\n\tSERVICE_CONTROL_HARDWAREPROFILECHANGE = 12\n\tSERVICE_CONTROL_POWEREVENT            = 13\n\tSERVICE_CONTROL_SESSIONCHANGE         = 14\n\tSERVICE_CONTROL_PRESHUTDOWN           = 15\n\n\tSERVICE_ACTIVE    = 1\n\tSERVICE_INACTIVE  = 2\n\tSERVICE_STATE_ALL = 3\n\n\tSERVICE_QUERY_CONFIG         = 1\n\tSERVICE_CHANGE_CONFIG        = 2\n\tSERVICE_QUERY_STATUS         = 4\n\tSERVICE_ENUMERATE_DEPENDENTS = 8\n\tSERVICE_START                = 16\n\tSERVICE_STOP                 = 32\n\tSERVICE_PAUSE_CONTINUE       = 64\n\tSERVICE_INTERROGATE          = 128\n\tSERVICE_USER_DEFINED_CONTROL = 256\n\tSERVICE_ALL_ACCESS           = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL\n\n\tSERVICE_RUNS_IN_SYSTEM_PROCESS = 1\n\n\tSERVICE_CONFIG_DESCRIPTION              = 1\n\tSERVICE_CONFIG_FAILURE_ACTIONS          = 2\n\tSERVICE_CONFIG_DELAYED_AUTO_START_INFO  = 3\n\tSERVICE_CONFIG_FAILURE_ACTIONS_FLAG     = 4\n\tSERVICE_CONFIG_SERVICE_SID_INFO         = 5\n\tSERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6\n\tSERVICE_CONFIG_PRESHUTDOWN_INFO         = 7\n\tSERVICE_CONFIG_TRIGGER_INFO             = 8\n\tSERVICE_CONFIG_PREFERRED_NODE           = 9\n\tSERVICE_CONFIG_LAUNCH_PROTECTED         = 12\n\n\tSERVICE_SID_TYPE_NONE         = 0\n\tSERVICE_SID_TYPE_UNRESTRICTED = 1\n\tSERVICE_SID_TYPE_RESTRICTED   = 2 | SERVICE_SID_TYPE_UNRESTRICTED\n\n\tSC_ENUM_PROCESS_INFO = 0\n\n\tSERVICE_NOTIFY_STATUS_CHANGE    = 2\n\tSERVICE_NOTIFY_STOPPED          = 0x00000001\n\tSERVICE_NOTIFY_START_PENDING    = 0x00000002\n\tSERVICE_NOTIFY_STOP_PENDING     = 0x00000004\n\tSERVICE_NOTIFY_RUNNING          = 0x00000008\n\tSERVICE_NOTIFY_CONTINUE_PENDING = 0x00000010\n\tSERVICE_NOTIFY_PAUSE_PENDING    = 0x00000020\n\tSERVICE_NOTIFY_PAUSED           = 0x00000040\n\tSERVICE_NOTIFY_CREATED          = 0x00000080\n\tSERVICE_NOTIFY_DELETED          = 0x00000100\n\tSERVICE_NOTIFY_DELETE_PENDING   = 0x00000200\n\n\tSC_EVENT_DATABASE_CHANGE = 0\n\tSC_EVENT_PROPERTY_CHANGE = 1\n\tSC_EVENT_STATUS_CHANGE   = 2\n\n\tSERVICE_START_REASON_DEMAND             = 0x00000001\n\tSERVICE_START_REASON_AUTO               = 0x00000002\n\tSERVICE_START_REASON_TRIGGER            = 0x00000004\n\tSERVICE_START_REASON_RESTART_ON_FAILURE = 0x00000008\n\tSERVICE_START_REASON_DELAYEDAUTO        = 0x00000010\n\n\tSERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = 1\n)\n\ntype ENUM_SERVICE_STATUS struct {\n\tServiceName   *uint16\n\tDisplayName   *uint16\n\tServiceStatus SERVICE_STATUS\n}\n\ntype SERVICE_STATUS struct {\n\tServiceType             uint32\n\tCurrentState            uint32\n\tControlsAccepted        uint32\n\tWin32ExitCode           uint32\n\tServiceSpecificExitCode uint32\n\tCheckPoint              uint32\n\tWaitHint                uint32\n}\n\ntype SERVICE_TABLE_ENTRY struct {\n\tServiceName *uint16\n\tServiceProc uintptr\n}\n\ntype QUERY_SERVICE_CONFIG struct {\n\tServiceType      uint32\n\tStartType        uint32\n\tErrorControl     uint32\n\tBinaryPathName   *uint16\n\tLoadOrderGroup   *uint16\n\tTagId            uint32\n\tDependencies     *uint16\n\tServiceStartName *uint16\n\tDisplayName      *uint16\n}\n\ntype SERVICE_DESCRIPTION struct {\n\tDescription *uint16\n}\n\ntype SERVICE_DELAYED_AUTO_START_INFO struct {\n\tIsDelayedAutoStartUp uint32\n}\n\ntype SERVICE_STATUS_PROCESS struct {\n\tServiceType             uint32\n\tCurrentState            uint32\n\tControlsAccepted        uint32\n\tWin32ExitCode           uint32\n\tServiceSpecificExitCode uint32\n\tCheckPoint              uint32\n\tWaitHint                uint32\n\tProcessId               uint32\n\tServiceFlags            uint32\n}\n\ntype ENUM_SERVICE_STATUS_PROCESS struct {\n\tServiceName          *uint16\n\tDisplayName          *uint16\n\tServiceStatusProcess SERVICE_STATUS_PROCESS\n}\n\ntype SERVICE_NOTIFY struct {\n\tVersion               uint32\n\tNotifyCallback        uintptr\n\tContext               uintptr\n\tNotificationStatus    uint32\n\tServiceStatus         SERVICE_STATUS_PROCESS\n\tNotificationTriggered uint32\n\tServiceNames          *uint16\n}\n\ntype SERVICE_FAILURE_ACTIONS struct {\n\tResetPeriod  uint32\n\tRebootMsg    *uint16\n\tCommand      *uint16\n\tActionsCount uint32\n\tActions      *SC_ACTION\n}\n\ntype SERVICE_FAILURE_ACTIONS_FLAG struct {\n\tFailureActionsOnNonCrashFailures int32\n}\n\ntype SC_ACTION struct {\n\tType  uint32\n\tDelay uint32\n}\n\ntype QUERY_SERVICE_LOCK_STATUS struct {\n\tIsLocked     uint32\n\tLockOwner    *uint16\n\tLockDuration uint32\n}\n\n//sys\tOpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW\n//sys\tCloseServiceHandle(handle Handle) (err error) = advapi32.CloseServiceHandle\n//sys\tCreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) [failretval==0] = advapi32.CreateServiceW\n//sys\tOpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenServiceW\n//sys\tDeleteService(service Handle) (err error) = advapi32.DeleteService\n//sys\tStartService(service Handle, numArgs uint32, argVectors **uint16) (err error) = advapi32.StartServiceW\n//sys\tQueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) = advapi32.QueryServiceStatus\n//sys\tQueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceLockStatusW\n//sys\tControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) = advapi32.ControlService\n//sys\tStartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) = advapi32.StartServiceCtrlDispatcherW\n//sys\tSetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) = advapi32.SetServiceStatus\n//sys\tChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) = advapi32.ChangeServiceConfigW\n//sys\tQueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfigW\n//sys\tChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) = advapi32.ChangeServiceConfig2W\n//sys\tQueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfig2W\n//sys\tEnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) = advapi32.EnumServicesStatusExW\n//sys\tQueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceStatusEx\n//sys\tNotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) = advapi32.NotifyServiceStatusChangeW\n//sys\tSubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) = sechost.SubscribeServiceChangeNotifications?\n//sys\tUnsubscribeServiceChangeNotifications(subscription uintptr) = sechost.UnsubscribeServiceChangeNotifications?\n//sys\tRegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) = advapi32.RegisterServiceCtrlHandlerExW\n//sys\tQueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) = advapi32.QueryServiceDynamicInformation?\n//sys\tEnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) = advapi32.EnumDependentServicesW\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/setupapi_windows.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"strings\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// This file contains functions that wrap SetupAPI.dll and CfgMgr32.dll,\n// core system functions for managing hardware devices, drivers, and the PnP tree.\n// Information about these APIs can be found at:\n//     https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi\n//     https://docs.microsoft.com/en-us/windows/win32/devinst/cfgmgr32-\n\nconst (\n\tERROR_EXPECTED_SECTION_NAME                  Errno = 0x20000000 | 0xC0000000 | 0\n\tERROR_BAD_SECTION_NAME_LINE                  Errno = 0x20000000 | 0xC0000000 | 1\n\tERROR_SECTION_NAME_TOO_LONG                  Errno = 0x20000000 | 0xC0000000 | 2\n\tERROR_GENERAL_SYNTAX                         Errno = 0x20000000 | 0xC0000000 | 3\n\tERROR_WRONG_INF_STYLE                        Errno = 0x20000000 | 0xC0000000 | 0x100\n\tERROR_SECTION_NOT_FOUND                      Errno = 0x20000000 | 0xC0000000 | 0x101\n\tERROR_LINE_NOT_FOUND                         Errno = 0x20000000 | 0xC0000000 | 0x102\n\tERROR_NO_BACKUP                              Errno = 0x20000000 | 0xC0000000 | 0x103\n\tERROR_NO_ASSOCIATED_CLASS                    Errno = 0x20000000 | 0xC0000000 | 0x200\n\tERROR_CLASS_MISMATCH                         Errno = 0x20000000 | 0xC0000000 | 0x201\n\tERROR_DUPLICATE_FOUND                        Errno = 0x20000000 | 0xC0000000 | 0x202\n\tERROR_NO_DRIVER_SELECTED                     Errno = 0x20000000 | 0xC0000000 | 0x203\n\tERROR_KEY_DOES_NOT_EXIST                     Errno = 0x20000000 | 0xC0000000 | 0x204\n\tERROR_INVALID_DEVINST_NAME                   Errno = 0x20000000 | 0xC0000000 | 0x205\n\tERROR_INVALID_CLASS                          Errno = 0x20000000 | 0xC0000000 | 0x206\n\tERROR_DEVINST_ALREADY_EXISTS                 Errno = 0x20000000 | 0xC0000000 | 0x207\n\tERROR_DEVINFO_NOT_REGISTERED                 Errno = 0x20000000 | 0xC0000000 | 0x208\n\tERROR_INVALID_REG_PROPERTY                   Errno = 0x20000000 | 0xC0000000 | 0x209\n\tERROR_NO_INF                                 Errno = 0x20000000 | 0xC0000000 | 0x20A\n\tERROR_NO_SUCH_DEVINST                        Errno = 0x20000000 | 0xC0000000 | 0x20B\n\tERROR_CANT_LOAD_CLASS_ICON                   Errno = 0x20000000 | 0xC0000000 | 0x20C\n\tERROR_INVALID_CLASS_INSTALLER                Errno = 0x20000000 | 0xC0000000 | 0x20D\n\tERROR_DI_DO_DEFAULT                          Errno = 0x20000000 | 0xC0000000 | 0x20E\n\tERROR_DI_NOFILECOPY                          Errno = 0x20000000 | 0xC0000000 | 0x20F\n\tERROR_INVALID_HWPROFILE                      Errno = 0x20000000 | 0xC0000000 | 0x210\n\tERROR_NO_DEVICE_SELECTED                     Errno = 0x20000000 | 0xC0000000 | 0x211\n\tERROR_DEVINFO_LIST_LOCKED                    Errno = 0x20000000 | 0xC0000000 | 0x212\n\tERROR_DEVINFO_DATA_LOCKED                    Errno = 0x20000000 | 0xC0000000 | 0x213\n\tERROR_DI_BAD_PATH                            Errno = 0x20000000 | 0xC0000000 | 0x214\n\tERROR_NO_CLASSINSTALL_PARAMS                 Errno = 0x20000000 | 0xC0000000 | 0x215\n\tERROR_FILEQUEUE_LOCKED                       Errno = 0x20000000 | 0xC0000000 | 0x216\n\tERROR_BAD_SERVICE_INSTALLSECT                Errno = 0x20000000 | 0xC0000000 | 0x217\n\tERROR_NO_CLASS_DRIVER_LIST                   Errno = 0x20000000 | 0xC0000000 | 0x218\n\tERROR_NO_ASSOCIATED_SERVICE                  Errno = 0x20000000 | 0xC0000000 | 0x219\n\tERROR_NO_DEFAULT_DEVICE_INTERFACE            Errno = 0x20000000 | 0xC0000000 | 0x21A\n\tERROR_DEVICE_INTERFACE_ACTIVE                Errno = 0x20000000 | 0xC0000000 | 0x21B\n\tERROR_DEVICE_INTERFACE_REMOVED               Errno = 0x20000000 | 0xC0000000 | 0x21C\n\tERROR_BAD_INTERFACE_INSTALLSECT              Errno = 0x20000000 | 0xC0000000 | 0x21D\n\tERROR_NO_SUCH_INTERFACE_CLASS                Errno = 0x20000000 | 0xC0000000 | 0x21E\n\tERROR_INVALID_REFERENCE_STRING               Errno = 0x20000000 | 0xC0000000 | 0x21F\n\tERROR_INVALID_MACHINENAME                    Errno = 0x20000000 | 0xC0000000 | 0x220\n\tERROR_REMOTE_COMM_FAILURE                    Errno = 0x20000000 | 0xC0000000 | 0x221\n\tERROR_MACHINE_UNAVAILABLE                    Errno = 0x20000000 | 0xC0000000 | 0x222\n\tERROR_NO_CONFIGMGR_SERVICES                  Errno = 0x20000000 | 0xC0000000 | 0x223\n\tERROR_INVALID_PROPPAGE_PROVIDER              Errno = 0x20000000 | 0xC0000000 | 0x224\n\tERROR_NO_SUCH_DEVICE_INTERFACE               Errno = 0x20000000 | 0xC0000000 | 0x225\n\tERROR_DI_POSTPROCESSING_REQUIRED             Errno = 0x20000000 | 0xC0000000 | 0x226\n\tERROR_INVALID_COINSTALLER                    Errno = 0x20000000 | 0xC0000000 | 0x227\n\tERROR_NO_COMPAT_DRIVERS                      Errno = 0x20000000 | 0xC0000000 | 0x228\n\tERROR_NO_DEVICE_ICON                         Errno = 0x20000000 | 0xC0000000 | 0x229\n\tERROR_INVALID_INF_LOGCONFIG                  Errno = 0x20000000 | 0xC0000000 | 0x22A\n\tERROR_DI_DONT_INSTALL                        Errno = 0x20000000 | 0xC0000000 | 0x22B\n\tERROR_INVALID_FILTER_DRIVER                  Errno = 0x20000000 | 0xC0000000 | 0x22C\n\tERROR_NON_WINDOWS_NT_DRIVER                  Errno = 0x20000000 | 0xC0000000 | 0x22D\n\tERROR_NON_WINDOWS_DRIVER                     Errno = 0x20000000 | 0xC0000000 | 0x22E\n\tERROR_NO_CATALOG_FOR_OEM_INF                 Errno = 0x20000000 | 0xC0000000 | 0x22F\n\tERROR_DEVINSTALL_QUEUE_NONNATIVE             Errno = 0x20000000 | 0xC0000000 | 0x230\n\tERROR_NOT_DISABLEABLE                        Errno = 0x20000000 | 0xC0000000 | 0x231\n\tERROR_CANT_REMOVE_DEVINST                    Errno = 0x20000000 | 0xC0000000 | 0x232\n\tERROR_INVALID_TARGET                         Errno = 0x20000000 | 0xC0000000 | 0x233\n\tERROR_DRIVER_NONNATIVE                       Errno = 0x20000000 | 0xC0000000 | 0x234\n\tERROR_IN_WOW64                               Errno = 0x20000000 | 0xC0000000 | 0x235\n\tERROR_SET_SYSTEM_RESTORE_POINT               Errno = 0x20000000 | 0xC0000000 | 0x236\n\tERROR_SCE_DISABLED                           Errno = 0x20000000 | 0xC0000000 | 0x238\n\tERROR_UNKNOWN_EXCEPTION                      Errno = 0x20000000 | 0xC0000000 | 0x239\n\tERROR_PNP_REGISTRY_ERROR                     Errno = 0x20000000 | 0xC0000000 | 0x23A\n\tERROR_REMOTE_REQUEST_UNSUPPORTED             Errno = 0x20000000 | 0xC0000000 | 0x23B\n\tERROR_NOT_AN_INSTALLED_OEM_INF               Errno = 0x20000000 | 0xC0000000 | 0x23C\n\tERROR_INF_IN_USE_BY_DEVICES                  Errno = 0x20000000 | 0xC0000000 | 0x23D\n\tERROR_DI_FUNCTION_OBSOLETE                   Errno = 0x20000000 | 0xC0000000 | 0x23E\n\tERROR_NO_AUTHENTICODE_CATALOG                Errno = 0x20000000 | 0xC0000000 | 0x23F\n\tERROR_AUTHENTICODE_DISALLOWED                Errno = 0x20000000 | 0xC0000000 | 0x240\n\tERROR_AUTHENTICODE_TRUSTED_PUBLISHER         Errno = 0x20000000 | 0xC0000000 | 0x241\n\tERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED     Errno = 0x20000000 | 0xC0000000 | 0x242\n\tERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED     Errno = 0x20000000 | 0xC0000000 | 0x243\n\tERROR_SIGNATURE_OSATTRIBUTE_MISMATCH         Errno = 0x20000000 | 0xC0000000 | 0x244\n\tERROR_ONLY_VALIDATE_VIA_AUTHENTICODE         Errno = 0x20000000 | 0xC0000000 | 0x245\n\tERROR_DEVICE_INSTALLER_NOT_READY             Errno = 0x20000000 | 0xC0000000 | 0x246\n\tERROR_DRIVER_STORE_ADD_FAILED                Errno = 0x20000000 | 0xC0000000 | 0x247\n\tERROR_DEVICE_INSTALL_BLOCKED                 Errno = 0x20000000 | 0xC0000000 | 0x248\n\tERROR_DRIVER_INSTALL_BLOCKED                 Errno = 0x20000000 | 0xC0000000 | 0x249\n\tERROR_WRONG_INF_TYPE                         Errno = 0x20000000 | 0xC0000000 | 0x24A\n\tERROR_FILE_HASH_NOT_IN_CATALOG               Errno = 0x20000000 | 0xC0000000 | 0x24B\n\tERROR_DRIVER_STORE_DELETE_FAILED             Errno = 0x20000000 | 0xC0000000 | 0x24C\n\tERROR_UNRECOVERABLE_STACK_OVERFLOW           Errno = 0x20000000 | 0xC0000000 | 0x300\n\tEXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW Errno = ERROR_UNRECOVERABLE_STACK_OVERFLOW\n\tERROR_NO_DEFAULT_INTERFACE_DEVICE            Errno = ERROR_NO_DEFAULT_DEVICE_INTERFACE\n\tERROR_INTERFACE_DEVICE_ACTIVE                Errno = ERROR_DEVICE_INTERFACE_ACTIVE\n\tERROR_INTERFACE_DEVICE_REMOVED               Errno = ERROR_DEVICE_INTERFACE_REMOVED\n\tERROR_NO_SUCH_INTERFACE_DEVICE               Errno = ERROR_NO_SUCH_DEVICE_INTERFACE\n)\n\nconst (\n\tMAX_DEVICE_ID_LEN   = 200\n\tMAX_DEVNODE_ID_LEN  = MAX_DEVICE_ID_LEN\n\tMAX_GUID_STRING_LEN = 39 // 38 chars + terminator null\n\tMAX_CLASS_NAME_LEN  = 32\n\tMAX_PROFILE_LEN     = 80\n\tMAX_CONFIG_VALUE    = 9999\n\tMAX_INSTANCE_VALUE  = 9999\n\tCONFIGMG_VERSION    = 0x0400\n)\n\n// Maximum string length constants\nconst (\n\tLINE_LEN                    = 256  // Windows 9x-compatible maximum for displayable strings coming from a device INF.\n\tMAX_INF_STRING_LENGTH       = 4096 // Actual maximum size of an INF string (including string substitutions).\n\tMAX_INF_SECTION_NAME_LENGTH = 255  // For Windows 9x compatibility, INF section names should be constrained to 32 characters.\n\tMAX_TITLE_LEN               = 60\n\tMAX_INSTRUCTION_LEN         = 256\n\tMAX_LABEL_LEN               = 30\n\tMAX_SERVICE_NAME_LEN        = 256\n\tMAX_SUBTITLE_LEN            = 256\n)\n\nconst (\n\t// SP_MAX_MACHINENAME_LENGTH defines maximum length of a machine name in the format expected by ConfigMgr32 CM_Connect_Machine (i.e., \"\\\\\\\\MachineName\\0\").\n\tSP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3\n)\n\n// HSPFILEQ is type for setup file queue\ntype HSPFILEQ uintptr\n\n// DevInfo holds reference to device information set\ntype DevInfo Handle\n\n// DEVINST is a handle usually recognized by cfgmgr32 APIs\ntype DEVINST uint32\n\n// DevInfoData is a device information structure (references a device instance that is a member of a device information set)\ntype DevInfoData struct {\n\tsize      uint32\n\tClassGUID GUID\n\tDevInst   DEVINST\n\t_         uintptr\n}\n\n// DevInfoListDetailData is a structure for detailed information on a device information set (used for SetupDiGetDeviceInfoListDetail which supersedes the functionality of SetupDiGetDeviceInfoListClass).\ntype DevInfoListDetailData struct {\n\tsize                uint32 // Use unsafeSizeOf method\n\tClassGUID           GUID\n\tRemoteMachineHandle Handle\n\tremoteMachineName   [SP_MAX_MACHINENAME_LENGTH]uint16\n}\n\nfunc (*DevInfoListDetailData) unsafeSizeOf() uint32 {\n\tif unsafe.Sizeof(uintptr(0)) == 4 {\n\t\t// Windows declares this with pshpack1.h\n\t\treturn uint32(unsafe.Offsetof(DevInfoListDetailData{}.remoteMachineName) + unsafe.Sizeof(DevInfoListDetailData{}.remoteMachineName))\n\t}\n\treturn uint32(unsafe.Sizeof(DevInfoListDetailData{}))\n}\n\nfunc (data *DevInfoListDetailData) RemoteMachineName() string {\n\treturn UTF16ToString(data.remoteMachineName[:])\n}\n\nfunc (data *DevInfoListDetailData) SetRemoteMachineName(remoteMachineName string) error {\n\tstr, err := UTF16FromString(remoteMachineName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.remoteMachineName[:], str)\n\treturn nil\n}\n\n// DI_FUNCTION is function type for device installer\ntype DI_FUNCTION uint32\n\nconst (\n\tDIF_SELECTDEVICE                   DI_FUNCTION = 0x00000001\n\tDIF_INSTALLDEVICE                  DI_FUNCTION = 0x00000002\n\tDIF_ASSIGNRESOURCES                DI_FUNCTION = 0x00000003\n\tDIF_PROPERTIES                     DI_FUNCTION = 0x00000004\n\tDIF_REMOVE                         DI_FUNCTION = 0x00000005\n\tDIF_FIRSTTIMESETUP                 DI_FUNCTION = 0x00000006\n\tDIF_FOUNDDEVICE                    DI_FUNCTION = 0x00000007\n\tDIF_SELECTCLASSDRIVERS             DI_FUNCTION = 0x00000008\n\tDIF_VALIDATECLASSDRIVERS           DI_FUNCTION = 0x00000009\n\tDIF_INSTALLCLASSDRIVERS            DI_FUNCTION = 0x0000000A\n\tDIF_CALCDISKSPACE                  DI_FUNCTION = 0x0000000B\n\tDIF_DESTROYPRIVATEDATA             DI_FUNCTION = 0x0000000C\n\tDIF_VALIDATEDRIVER                 DI_FUNCTION = 0x0000000D\n\tDIF_DETECT                         DI_FUNCTION = 0x0000000F\n\tDIF_INSTALLWIZARD                  DI_FUNCTION = 0x00000010\n\tDIF_DESTROYWIZARDDATA              DI_FUNCTION = 0x00000011\n\tDIF_PROPERTYCHANGE                 DI_FUNCTION = 0x00000012\n\tDIF_ENABLECLASS                    DI_FUNCTION = 0x00000013\n\tDIF_DETECTVERIFY                   DI_FUNCTION = 0x00000014\n\tDIF_INSTALLDEVICEFILES             DI_FUNCTION = 0x00000015\n\tDIF_UNREMOVE                       DI_FUNCTION = 0x00000016\n\tDIF_SELECTBESTCOMPATDRV            DI_FUNCTION = 0x00000017\n\tDIF_ALLOW_INSTALL                  DI_FUNCTION = 0x00000018\n\tDIF_REGISTERDEVICE                 DI_FUNCTION = 0x00000019\n\tDIF_NEWDEVICEWIZARD_PRESELECT      DI_FUNCTION = 0x0000001A\n\tDIF_NEWDEVICEWIZARD_SELECT         DI_FUNCTION = 0x0000001B\n\tDIF_NEWDEVICEWIZARD_PREANALYZE     DI_FUNCTION = 0x0000001C\n\tDIF_NEWDEVICEWIZARD_POSTANALYZE    DI_FUNCTION = 0x0000001D\n\tDIF_NEWDEVICEWIZARD_FINISHINSTALL  DI_FUNCTION = 0x0000001E\n\tDIF_INSTALLINTERFACES              DI_FUNCTION = 0x00000020\n\tDIF_DETECTCANCEL                   DI_FUNCTION = 0x00000021\n\tDIF_REGISTER_COINSTALLERS          DI_FUNCTION = 0x00000022\n\tDIF_ADDPROPERTYPAGE_ADVANCED       DI_FUNCTION = 0x00000023\n\tDIF_ADDPROPERTYPAGE_BASIC          DI_FUNCTION = 0x00000024\n\tDIF_TROUBLESHOOTER                 DI_FUNCTION = 0x00000026\n\tDIF_POWERMESSAGEWAKE               DI_FUNCTION = 0x00000027\n\tDIF_ADDREMOTEPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000028\n\tDIF_UPDATEDRIVER_UI                DI_FUNCTION = 0x00000029\n\tDIF_FINISHINSTALL_ACTION           DI_FUNCTION = 0x0000002A\n)\n\n// DevInstallParams is device installation parameters structure (associated with a particular device information element, or globally with a device information set)\ntype DevInstallParams struct {\n\tsize                     uint32\n\tFlags                    DI_FLAGS\n\tFlagsEx                  DI_FLAGSEX\n\thwndParent               uintptr\n\tInstallMsgHandler        uintptr\n\tInstallMsgHandlerContext uintptr\n\tFileQueue                HSPFILEQ\n\t_                        uintptr\n\t_                        uint32\n\tdriverPath               [MAX_PATH]uint16\n}\n\nfunc (params *DevInstallParams) DriverPath() string {\n\treturn UTF16ToString(params.driverPath[:])\n}\n\nfunc (params *DevInstallParams) SetDriverPath(driverPath string) error {\n\tstr, err := UTF16FromString(driverPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(params.driverPath[:], str)\n\treturn nil\n}\n\n// DI_FLAGS is SP_DEVINSTALL_PARAMS.Flags values\ntype DI_FLAGS uint32\n\nconst (\n\t// Flags for choosing a device\n\tDI_SHOWOEM       DI_FLAGS = 0x00000001 // support Other... button\n\tDI_SHOWCOMPAT    DI_FLAGS = 0x00000002 // show compatibility list\n\tDI_SHOWCLASS     DI_FLAGS = 0x00000004 // show class list\n\tDI_SHOWALL       DI_FLAGS = 0x00000007 // both class & compat list shown\n\tDI_NOVCP         DI_FLAGS = 0x00000008 // don't create a new copy queue--use caller-supplied FileQueue\n\tDI_DIDCOMPAT     DI_FLAGS = 0x00000010 // Searched for compatible devices\n\tDI_DIDCLASS      DI_FLAGS = 0x00000020 // Searched for class devices\n\tDI_AUTOASSIGNRES DI_FLAGS = 0x00000040 // No UI for resources if possible\n\n\t// Flags returned by DiInstallDevice to indicate need to reboot/restart\n\tDI_NEEDRESTART DI_FLAGS = 0x00000080 // Reboot required to take effect\n\tDI_NEEDREBOOT  DI_FLAGS = 0x00000100 // \"\"\n\n\t// Flags for device installation\n\tDI_NOBROWSE DI_FLAGS = 0x00000200 // no Browse... in InsertDisk\n\n\t// Flags set by DiBuildDriverInfoList\n\tDI_MULTMFGS DI_FLAGS = 0x00000400 // Set if multiple manufacturers in class driver list\n\n\t// Flag indicates that device is disabled\n\tDI_DISABLED DI_FLAGS = 0x00000800 // Set if device disabled\n\n\t// Flags for Device/Class Properties\n\tDI_GENERALPAGE_ADDED  DI_FLAGS = 0x00001000\n\tDI_RESOURCEPAGE_ADDED DI_FLAGS = 0x00002000\n\n\t// Flag to indicate the setting properties for this Device (or class) caused a change so the Dev Mgr UI probably needs to be updated.\n\tDI_PROPERTIES_CHANGE DI_FLAGS = 0x00004000\n\n\t// Flag to indicate that the sorting from the INF file should be used.\n\tDI_INF_IS_SORTED DI_FLAGS = 0x00008000\n\n\t// Flag to indicate that only the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched.\n\tDI_ENUMSINGLEINF DI_FLAGS = 0x00010000\n\n\t// Flag that prevents ConfigMgr from removing/re-enumerating devices during device\n\t// registration, installation, and deletion.\n\tDI_DONOTCALLCONFIGMG DI_FLAGS = 0x00020000\n\n\t// The following flag can be used to install a device disabled\n\tDI_INSTALLDISABLED DI_FLAGS = 0x00040000\n\n\t// Flag that causes SetupDiBuildDriverInfoList to build a device's compatible driver\n\t// list from its existing class driver list, instead of the normal INF search.\n\tDI_COMPAT_FROM_CLASS DI_FLAGS = 0x00080000\n\n\t// This flag is set if the Class Install params should be used.\n\tDI_CLASSINSTALLPARAMS DI_FLAGS = 0x00100000\n\n\t// This flag is set if the caller of DiCallClassInstaller does NOT want the internal default action performed if the Class installer returns ERROR_DI_DO_DEFAULT.\n\tDI_NODI_DEFAULTACTION DI_FLAGS = 0x00200000\n\n\t// Flags for device installation\n\tDI_QUIETINSTALL        DI_FLAGS = 0x00800000 // don't confuse the user with questions or excess info\n\tDI_NOFILECOPY          DI_FLAGS = 0x01000000 // No file Copy necessary\n\tDI_FORCECOPY           DI_FLAGS = 0x02000000 // Force files to be copied from install path\n\tDI_DRIVERPAGE_ADDED    DI_FLAGS = 0x04000000 // Prop provider added Driver page.\n\tDI_USECI_SELECTSTRINGS DI_FLAGS = 0x08000000 // Use Class Installer Provided strings in the Select Device Dlg\n\tDI_OVERRIDE_INFFLAGS   DI_FLAGS = 0x10000000 // Override INF flags\n\tDI_PROPS_NOCHANGEUSAGE DI_FLAGS = 0x20000000 // No Enable/Disable in General Props\n\n\tDI_NOSELECTICONS DI_FLAGS = 0x40000000 // No small icons in select device dialogs\n\n\tDI_NOWRITE_IDS DI_FLAGS = 0x80000000 // Don't write HW & Compat IDs on install\n)\n\n// DI_FLAGSEX is SP_DEVINSTALL_PARAMS.FlagsEx values\ntype DI_FLAGSEX uint32\n\nconst (\n\tDI_FLAGSEX_CI_FAILED                DI_FLAGSEX = 0x00000004 // Failed to Load/Call class installer\n\tDI_FLAGSEX_FINISHINSTALL_ACTION     DI_FLAGSEX = 0x00000008 // Class/co-installer wants to get a DIF_FINISH_INSTALL action in client context.\n\tDI_FLAGSEX_DIDINFOLIST              DI_FLAGSEX = 0x00000010 // Did the Class Info List\n\tDI_FLAGSEX_DIDCOMPATINFO            DI_FLAGSEX = 0x00000020 // Did the Compat Info List\n\tDI_FLAGSEX_FILTERCLASSES            DI_FLAGSEX = 0x00000040\n\tDI_FLAGSEX_SETFAILEDINSTALL         DI_FLAGSEX = 0x00000080\n\tDI_FLAGSEX_DEVICECHANGE             DI_FLAGSEX = 0x00000100\n\tDI_FLAGSEX_ALWAYSWRITEIDS           DI_FLAGSEX = 0x00000200\n\tDI_FLAGSEX_PROPCHANGE_PENDING       DI_FLAGSEX = 0x00000400 // One or more device property sheets have had changes made to them, and need to have a DIF_PROPERTYCHANGE occur.\n\tDI_FLAGSEX_ALLOWEXCLUDEDDRVS        DI_FLAGSEX = 0x00000800\n\tDI_FLAGSEX_NOUIONQUERYREMOVE        DI_FLAGSEX = 0x00001000\n\tDI_FLAGSEX_USECLASSFORCOMPAT        DI_FLAGSEX = 0x00002000 // Use the device's class when building compat drv list. (Ignored if DI_COMPAT_FROM_CLASS flag is specified.)\n\tDI_FLAGSEX_NO_DRVREG_MODIFY         DI_FLAGSEX = 0x00008000 // Don't run AddReg and DelReg for device's software (driver) key.\n\tDI_FLAGSEX_IN_SYSTEM_SETUP          DI_FLAGSEX = 0x00010000 // Installation is occurring during initial system setup.\n\tDI_FLAGSEX_INET_DRIVER              DI_FLAGSEX = 0x00020000 // Driver came from Windows Update\n\tDI_FLAGSEX_APPENDDRIVERLIST         DI_FLAGSEX = 0x00040000 // Cause SetupDiBuildDriverInfoList to append a new driver list to an existing list.\n\tDI_FLAGSEX_PREINSTALLBACKUP         DI_FLAGSEX = 0x00080000 // not used\n\tDI_FLAGSEX_BACKUPONREPLACE          DI_FLAGSEX = 0x00100000 // not used\n\tDI_FLAGSEX_DRIVERLIST_FROM_URL      DI_FLAGSEX = 0x00200000 // build driver list from INF(s) retrieved from URL specified in SP_DEVINSTALL_PARAMS.DriverPath (empty string means Windows Update website)\n\tDI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS DI_FLAGSEX = 0x00800000 // Don't include old Internet drivers when building a driver list. Ignored on Windows Vista and later.\n\tDI_FLAGSEX_POWERPAGE_ADDED          DI_FLAGSEX = 0x01000000 // class installer added their own power page\n\tDI_FLAGSEX_FILTERSIMILARDRIVERS     DI_FLAGSEX = 0x02000000 // only include similar drivers in class list\n\tDI_FLAGSEX_INSTALLEDDRIVER          DI_FLAGSEX = 0x04000000 // only add the installed driver to the class or compat driver list.  Used in calls to SetupDiBuildDriverInfoList\n\tDI_FLAGSEX_NO_CLASSLIST_NODE_MERGE  DI_FLAGSEX = 0x08000000 // Don't remove identical driver nodes from the class list\n\tDI_FLAGSEX_ALTPLATFORM_DRVSEARCH    DI_FLAGSEX = 0x10000000 // Build driver list based on alternate platform information specified in associated file queue\n\tDI_FLAGSEX_RESTART_DEVICE_ONLY      DI_FLAGSEX = 0x20000000 // only restart the device drivers are being installed on as opposed to restarting all devices using those drivers.\n\tDI_FLAGSEX_RECURSIVESEARCH          DI_FLAGSEX = 0x40000000 // Tell SetupDiBuildDriverInfoList to do a recursive search\n\tDI_FLAGSEX_SEARCH_PUBLISHED_INFS    DI_FLAGSEX = 0x80000000 // Tell SetupDiBuildDriverInfoList to do a \"published INF\" search\n)\n\n// ClassInstallHeader is the first member of any class install parameters structure. It contains the device installation request code that defines the format of the rest of the install parameters structure.\ntype ClassInstallHeader struct {\n\tsize            uint32\n\tInstallFunction DI_FUNCTION\n}\n\nfunc MakeClassInstallHeader(installFunction DI_FUNCTION) *ClassInstallHeader {\n\thdr := &ClassInstallHeader{InstallFunction: installFunction}\n\thdr.size = uint32(unsafe.Sizeof(*hdr))\n\treturn hdr\n}\n\n// DICS_STATE specifies values indicating a change in a device's state\ntype DICS_STATE uint32\n\nconst (\n\tDICS_ENABLE     DICS_STATE = 0x00000001 // The device is being enabled.\n\tDICS_DISABLE    DICS_STATE = 0x00000002 // The device is being disabled.\n\tDICS_PROPCHANGE DICS_STATE = 0x00000003 // The properties of the device have changed.\n\tDICS_START      DICS_STATE = 0x00000004 // The device is being started (if the request is for the currently active hardware profile).\n\tDICS_STOP       DICS_STATE = 0x00000005 // The device is being stopped. The driver stack will be unloaded and the CSCONFIGFLAG_DO_NOT_START flag will be set for the device.\n)\n\n// DICS_FLAG specifies the scope of a device property change\ntype DICS_FLAG uint32\n\nconst (\n\tDICS_FLAG_GLOBAL         DICS_FLAG = 0x00000001 // make change in all hardware profiles\n\tDICS_FLAG_CONFIGSPECIFIC DICS_FLAG = 0x00000002 // make change in specified profile only\n\tDICS_FLAG_CONFIGGENERAL  DICS_FLAG = 0x00000004 // 1 or more hardware profile-specific changes to follow (obsolete)\n)\n\n// PropChangeParams is a structure corresponding to a DIF_PROPERTYCHANGE install function.\ntype PropChangeParams struct {\n\tClassInstallHeader ClassInstallHeader\n\tStateChange        DICS_STATE\n\tScope              DICS_FLAG\n\tHwProfile          uint32\n}\n\n// DI_REMOVEDEVICE specifies the scope of the device removal\ntype DI_REMOVEDEVICE uint32\n\nconst (\n\tDI_REMOVEDEVICE_GLOBAL         DI_REMOVEDEVICE = 0x00000001 // Make this change in all hardware profiles. Remove information about the device from the registry.\n\tDI_REMOVEDEVICE_CONFIGSPECIFIC DI_REMOVEDEVICE = 0x00000002 // Make this change to only the hardware profile specified by HwProfile. this flag only applies to root-enumerated devices. When Windows removes the device from the last hardware profile in which it was configured, Windows performs a global removal.\n)\n\n// RemoveDeviceParams is a structure corresponding to a DIF_REMOVE install function.\ntype RemoveDeviceParams struct {\n\tClassInstallHeader ClassInstallHeader\n\tScope              DI_REMOVEDEVICE\n\tHwProfile          uint32\n}\n\n// DrvInfoData is driver information structure (member of a driver info list that may be associated with a particular device instance, or (globally) with a device information set)\ntype DrvInfoData struct {\n\tsize          uint32\n\tDriverType    uint32\n\t_             uintptr\n\tdescription   [LINE_LEN]uint16\n\tmfgName       [LINE_LEN]uint16\n\tproviderName  [LINE_LEN]uint16\n\tDriverDate    Filetime\n\tDriverVersion uint64\n}\n\nfunc (data *DrvInfoData) Description() string {\n\treturn UTF16ToString(data.description[:])\n}\n\nfunc (data *DrvInfoData) SetDescription(description string) error {\n\tstr, err := UTF16FromString(description)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.description[:], str)\n\treturn nil\n}\n\nfunc (data *DrvInfoData) MfgName() string {\n\treturn UTF16ToString(data.mfgName[:])\n}\n\nfunc (data *DrvInfoData) SetMfgName(mfgName string) error {\n\tstr, err := UTF16FromString(mfgName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.mfgName[:], str)\n\treturn nil\n}\n\nfunc (data *DrvInfoData) ProviderName() string {\n\treturn UTF16ToString(data.providerName[:])\n}\n\nfunc (data *DrvInfoData) SetProviderName(providerName string) error {\n\tstr, err := UTF16FromString(providerName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.providerName[:], str)\n\treturn nil\n}\n\n// IsNewer method returns true if DrvInfoData date and version is newer than supplied parameters.\nfunc (data *DrvInfoData) IsNewer(driverDate Filetime, driverVersion uint64) bool {\n\tif data.DriverDate.HighDateTime > driverDate.HighDateTime {\n\t\treturn true\n\t}\n\tif data.DriverDate.HighDateTime < driverDate.HighDateTime {\n\t\treturn false\n\t}\n\n\tif data.DriverDate.LowDateTime > driverDate.LowDateTime {\n\t\treturn true\n\t}\n\tif data.DriverDate.LowDateTime < driverDate.LowDateTime {\n\t\treturn false\n\t}\n\n\tif data.DriverVersion > driverVersion {\n\t\treturn true\n\t}\n\tif data.DriverVersion < driverVersion {\n\t\treturn false\n\t}\n\n\treturn false\n}\n\n// DrvInfoDetailData is driver information details structure (provides detailed information about a particular driver information structure)\ntype DrvInfoDetailData struct {\n\tsize            uint32 // Use unsafeSizeOf method\n\tInfDate         Filetime\n\tcompatIDsOffset uint32\n\tcompatIDsLength uint32\n\t_               uintptr\n\tsectionName     [LINE_LEN]uint16\n\tinfFileName     [MAX_PATH]uint16\n\tdrvDescription  [LINE_LEN]uint16\n\thardwareID      [1]uint16\n}\n\nfunc (*DrvInfoDetailData) unsafeSizeOf() uint32 {\n\tif unsafe.Sizeof(uintptr(0)) == 4 {\n\t\t// Windows declares this with pshpack1.h\n\t\treturn uint32(unsafe.Offsetof(DrvInfoDetailData{}.hardwareID) + unsafe.Sizeof(DrvInfoDetailData{}.hardwareID))\n\t}\n\treturn uint32(unsafe.Sizeof(DrvInfoDetailData{}))\n}\n\nfunc (data *DrvInfoDetailData) SectionName() string {\n\treturn UTF16ToString(data.sectionName[:])\n}\n\nfunc (data *DrvInfoDetailData) InfFileName() string {\n\treturn UTF16ToString(data.infFileName[:])\n}\n\nfunc (data *DrvInfoDetailData) DrvDescription() string {\n\treturn UTF16ToString(data.drvDescription[:])\n}\n\nfunc (data *DrvInfoDetailData) HardwareID() string {\n\tif data.compatIDsOffset > 1 {\n\t\tbufW := data.getBuf()\n\t\treturn UTF16ToString(bufW[:wcslen(bufW)])\n\t}\n\n\treturn \"\"\n}\n\nfunc (data *DrvInfoDetailData) CompatIDs() []string {\n\ta := make([]string, 0)\n\n\tif data.compatIDsLength > 0 {\n\t\tbufW := data.getBuf()\n\t\tbufW = bufW[data.compatIDsOffset : data.compatIDsOffset+data.compatIDsLength]\n\t\tfor i := 0; i < len(bufW); {\n\t\t\tj := i + wcslen(bufW[i:])\n\t\t\tif i < j {\n\t\t\t\ta = append(a, UTF16ToString(bufW[i:j]))\n\t\t\t}\n\t\t\ti = j + 1\n\t\t}\n\t}\n\n\treturn a\n}\n\nfunc (data *DrvInfoDetailData) getBuf() []uint16 {\n\tlen := (data.size - uint32(unsafe.Offsetof(data.hardwareID))) / 2\n\tsl := struct {\n\t\taddr *uint16\n\t\tlen  int\n\t\tcap  int\n\t}{&data.hardwareID[0], int(len), int(len)}\n\treturn *(*[]uint16)(unsafe.Pointer(&sl))\n}\n\n// IsCompatible method tests if given hardware ID matches the driver or is listed on the compatible ID list.\nfunc (data *DrvInfoDetailData) IsCompatible(hwid string) bool {\n\thwidLC := strings.ToLower(hwid)\n\tif strings.ToLower(data.HardwareID()) == hwidLC {\n\t\treturn true\n\t}\n\ta := data.CompatIDs()\n\tfor i := range a {\n\t\tif strings.ToLower(a[i]) == hwidLC {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// DICD flags control SetupDiCreateDeviceInfo\ntype DICD uint32\n\nconst (\n\tDICD_GENERATE_ID       DICD = 0x00000001\n\tDICD_INHERIT_CLASSDRVS DICD = 0x00000002\n)\n\n// SUOI flags control SetupUninstallOEMInf\ntype SUOI uint32\n\nconst (\n\tSUOI_FORCEDELETE SUOI = 0x0001\n)\n\n// SPDIT flags to distinguish between class drivers and\n// device drivers. (Passed in 'DriverType' parameter of\n// driver information list APIs)\ntype SPDIT uint32\n\nconst (\n\tSPDIT_NODRIVER     SPDIT = 0x00000000\n\tSPDIT_CLASSDRIVER  SPDIT = 0x00000001\n\tSPDIT_COMPATDRIVER SPDIT = 0x00000002\n)\n\n// DIGCF flags control what is included in the device information set built by SetupDiGetClassDevs\ntype DIGCF uint32\n\nconst (\n\tDIGCF_DEFAULT         DIGCF = 0x00000001 // only valid with DIGCF_DEVICEINTERFACE\n\tDIGCF_PRESENT         DIGCF = 0x00000002\n\tDIGCF_ALLCLASSES      DIGCF = 0x00000004\n\tDIGCF_PROFILE         DIGCF = 0x00000008\n\tDIGCF_DEVICEINTERFACE DIGCF = 0x00000010\n)\n\n// DIREG specifies values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and SetupDiDeleteDevRegKey.\ntype DIREG uint32\n\nconst (\n\tDIREG_DEV  DIREG = 0x00000001 // Open/Create/Delete device key\n\tDIREG_DRV  DIREG = 0x00000002 // Open/Create/Delete driver key\n\tDIREG_BOTH DIREG = 0x00000004 // Delete both driver and Device key\n)\n\n// SPDRP specifies device registry property codes\n// (Codes marked as read-only (R) may only be used for\n// SetupDiGetDeviceRegistryProperty)\n//\n// These values should cover the same set of registry properties\n// as defined by the CM_DRP codes in cfgmgr32.h.\n//\n// Note that SPDRP codes are zero based while CM_DRP codes are one based!\ntype SPDRP uint32\n\nconst (\n\tSPDRP_DEVICEDESC                  SPDRP = 0x00000000 // DeviceDesc (R/W)\n\tSPDRP_HARDWAREID                  SPDRP = 0x00000001 // HardwareID (R/W)\n\tSPDRP_COMPATIBLEIDS               SPDRP = 0x00000002 // CompatibleIDs (R/W)\n\tSPDRP_SERVICE                     SPDRP = 0x00000004 // Service (R/W)\n\tSPDRP_CLASS                       SPDRP = 0x00000007 // Class (R--tied to ClassGUID)\n\tSPDRP_CLASSGUID                   SPDRP = 0x00000008 // ClassGUID (R/W)\n\tSPDRP_DRIVER                      SPDRP = 0x00000009 // Driver (R/W)\n\tSPDRP_CONFIGFLAGS                 SPDRP = 0x0000000A // ConfigFlags (R/W)\n\tSPDRP_MFG                         SPDRP = 0x0000000B // Mfg (R/W)\n\tSPDRP_FRIENDLYNAME                SPDRP = 0x0000000C // FriendlyName (R/W)\n\tSPDRP_LOCATION_INFORMATION        SPDRP = 0x0000000D // LocationInformation (R/W)\n\tSPDRP_PHYSICAL_DEVICE_OBJECT_NAME SPDRP = 0x0000000E // PhysicalDeviceObjectName (R)\n\tSPDRP_CAPABILITIES                SPDRP = 0x0000000F // Capabilities (R)\n\tSPDRP_UI_NUMBER                   SPDRP = 0x00000010 // UiNumber (R)\n\tSPDRP_UPPERFILTERS                SPDRP = 0x00000011 // UpperFilters (R/W)\n\tSPDRP_LOWERFILTERS                SPDRP = 0x00000012 // LowerFilters (R/W)\n\tSPDRP_BUSTYPEGUID                 SPDRP = 0x00000013 // BusTypeGUID (R)\n\tSPDRP_LEGACYBUSTYPE               SPDRP = 0x00000014 // LegacyBusType (R)\n\tSPDRP_BUSNUMBER                   SPDRP = 0x00000015 // BusNumber (R)\n\tSPDRP_ENUMERATOR_NAME             SPDRP = 0x00000016 // Enumerator Name (R)\n\tSPDRP_SECURITY                    SPDRP = 0x00000017 // Security (R/W, binary form)\n\tSPDRP_SECURITY_SDS                SPDRP = 0x00000018 // Security (W, SDS form)\n\tSPDRP_DEVTYPE                     SPDRP = 0x00000019 // Device Type (R/W)\n\tSPDRP_EXCLUSIVE                   SPDRP = 0x0000001A // Device is exclusive-access (R/W)\n\tSPDRP_CHARACTERISTICS             SPDRP = 0x0000001B // Device Characteristics (R/W)\n\tSPDRP_ADDRESS                     SPDRP = 0x0000001C // Device Address (R)\n\tSPDRP_UI_NUMBER_DESC_FORMAT       SPDRP = 0x0000001D // UiNumberDescFormat (R/W)\n\tSPDRP_DEVICE_POWER_DATA           SPDRP = 0x0000001E // Device Power Data (R)\n\tSPDRP_REMOVAL_POLICY              SPDRP = 0x0000001F // Removal Policy (R)\n\tSPDRP_REMOVAL_POLICY_HW_DEFAULT   SPDRP = 0x00000020 // Hardware Removal Policy (R)\n\tSPDRP_REMOVAL_POLICY_OVERRIDE     SPDRP = 0x00000021 // Removal Policy Override (RW)\n\tSPDRP_INSTALL_STATE               SPDRP = 0x00000022 // Device Install State (R)\n\tSPDRP_LOCATION_PATHS              SPDRP = 0x00000023 // Device Location Paths (R)\n\tSPDRP_BASE_CONTAINERID            SPDRP = 0x00000024 // Base ContainerID (R)\n\n\tSPDRP_MAXIMUM_PROPERTY SPDRP = 0x00000025 // Upper bound on ordinals\n)\n\n// DEVPROPTYPE represents the property-data-type identifier that specifies the\n// data type of a device property value in the unified device property model.\ntype DEVPROPTYPE uint32\n\nconst (\n\tDEVPROP_TYPEMOD_ARRAY DEVPROPTYPE = 0x00001000\n\tDEVPROP_TYPEMOD_LIST  DEVPROPTYPE = 0x00002000\n\n\tDEVPROP_TYPE_EMPTY                      DEVPROPTYPE = 0x00000000\n\tDEVPROP_TYPE_NULL                       DEVPROPTYPE = 0x00000001\n\tDEVPROP_TYPE_SBYTE                      DEVPROPTYPE = 0x00000002\n\tDEVPROP_TYPE_BYTE                       DEVPROPTYPE = 0x00000003\n\tDEVPROP_TYPE_INT16                      DEVPROPTYPE = 0x00000004\n\tDEVPROP_TYPE_UINT16                     DEVPROPTYPE = 0x00000005\n\tDEVPROP_TYPE_INT32                      DEVPROPTYPE = 0x00000006\n\tDEVPROP_TYPE_UINT32                     DEVPROPTYPE = 0x00000007\n\tDEVPROP_TYPE_INT64                      DEVPROPTYPE = 0x00000008\n\tDEVPROP_TYPE_UINT64                     DEVPROPTYPE = 0x00000009\n\tDEVPROP_TYPE_FLOAT                      DEVPROPTYPE = 0x0000000A\n\tDEVPROP_TYPE_DOUBLE                     DEVPROPTYPE = 0x0000000B\n\tDEVPROP_TYPE_DECIMAL                    DEVPROPTYPE = 0x0000000C\n\tDEVPROP_TYPE_GUID                       DEVPROPTYPE = 0x0000000D\n\tDEVPROP_TYPE_CURRENCY                   DEVPROPTYPE = 0x0000000E\n\tDEVPROP_TYPE_DATE                       DEVPROPTYPE = 0x0000000F\n\tDEVPROP_TYPE_FILETIME                   DEVPROPTYPE = 0x00000010\n\tDEVPROP_TYPE_BOOLEAN                    DEVPROPTYPE = 0x00000011\n\tDEVPROP_TYPE_STRING                     DEVPROPTYPE = 0x00000012\n\tDEVPROP_TYPE_STRING_LIST                DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST\n\tDEVPROP_TYPE_SECURITY_DESCRIPTOR        DEVPROPTYPE = 0x00000013\n\tDEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING DEVPROPTYPE = 0x00000014\n\tDEVPROP_TYPE_DEVPROPKEY                 DEVPROPTYPE = 0x00000015\n\tDEVPROP_TYPE_DEVPROPTYPE                DEVPROPTYPE = 0x00000016\n\tDEVPROP_TYPE_BINARY                     DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY\n\tDEVPROP_TYPE_ERROR                      DEVPROPTYPE = 0x00000017\n\tDEVPROP_TYPE_NTSTATUS                   DEVPROPTYPE = 0x00000018\n\tDEVPROP_TYPE_STRING_INDIRECT            DEVPROPTYPE = 0x00000019\n\n\tMAX_DEVPROP_TYPE    DEVPROPTYPE = 0x00000019\n\tMAX_DEVPROP_TYPEMOD DEVPROPTYPE = 0x00002000\n\n\tDEVPROP_MASK_TYPE    DEVPROPTYPE = 0x00000FFF\n\tDEVPROP_MASK_TYPEMOD DEVPROPTYPE = 0x0000F000\n)\n\n// DEVPROPGUID specifies a property category.\ntype DEVPROPGUID GUID\n\n// DEVPROPID uniquely identifies the property within the property category.\ntype DEVPROPID uint32\n\nconst DEVPROPID_FIRST_USABLE DEVPROPID = 2\n\n// DEVPROPKEY represents a device property key for a device property in the\n// unified device property model.\ntype DEVPROPKEY struct {\n\tFmtID DEVPROPGUID\n\tPID   DEVPROPID\n}\n\n// CONFIGRET is a return value or error code from cfgmgr32 APIs\ntype CONFIGRET uint32\n\nfunc (ret CONFIGRET) Error() string {\n\tif win32Error, ok := ret.Unwrap().(Errno); ok {\n\t\treturn fmt.Sprintf(\"%s (CfgMgr error: 0x%08x)\", win32Error.Error(), uint32(ret))\n\t}\n\treturn fmt.Sprintf(\"CfgMgr error: 0x%08x\", uint32(ret))\n}\n\nfunc (ret CONFIGRET) Win32Error(defaultError Errno) Errno {\n\treturn cm_MapCrToWin32Err(ret, defaultError)\n}\n\nfunc (ret CONFIGRET) Unwrap() error {\n\tconst noMatch = Errno(^uintptr(0))\n\twin32Error := ret.Win32Error(noMatch)\n\tif win32Error == noMatch {\n\t\treturn nil\n\t}\n\treturn win32Error\n}\n\nconst (\n\tCR_SUCCESS                  CONFIGRET = 0x00000000\n\tCR_DEFAULT                  CONFIGRET = 0x00000001\n\tCR_OUT_OF_MEMORY            CONFIGRET = 0x00000002\n\tCR_INVALID_POINTER          CONFIGRET = 0x00000003\n\tCR_INVALID_FLAG             CONFIGRET = 0x00000004\n\tCR_INVALID_DEVNODE          CONFIGRET = 0x00000005\n\tCR_INVALID_DEVINST                    = CR_INVALID_DEVNODE\n\tCR_INVALID_RES_DES          CONFIGRET = 0x00000006\n\tCR_INVALID_LOG_CONF         CONFIGRET = 0x00000007\n\tCR_INVALID_ARBITRATOR       CONFIGRET = 0x00000008\n\tCR_INVALID_NODELIST         CONFIGRET = 0x00000009\n\tCR_DEVNODE_HAS_REQS         CONFIGRET = 0x0000000A\n\tCR_DEVINST_HAS_REQS                   = CR_DEVNODE_HAS_REQS\n\tCR_INVALID_RESOURCEID       CONFIGRET = 0x0000000B\n\tCR_DLVXD_NOT_FOUND          CONFIGRET = 0x0000000C\n\tCR_NO_SUCH_DEVNODE          CONFIGRET = 0x0000000D\n\tCR_NO_SUCH_DEVINST                    = CR_NO_SUCH_DEVNODE\n\tCR_NO_MORE_LOG_CONF         CONFIGRET = 0x0000000E\n\tCR_NO_MORE_RES_DES          CONFIGRET = 0x0000000F\n\tCR_ALREADY_SUCH_DEVNODE     CONFIGRET = 0x00000010\n\tCR_ALREADY_SUCH_DEVINST               = CR_ALREADY_SUCH_DEVNODE\n\tCR_INVALID_RANGE_LIST       CONFIGRET = 0x00000011\n\tCR_INVALID_RANGE            CONFIGRET = 0x00000012\n\tCR_FAILURE                  CONFIGRET = 0x00000013\n\tCR_NO_SUCH_LOGICAL_DEV      CONFIGRET = 0x00000014\n\tCR_CREATE_BLOCKED           CONFIGRET = 0x00000015\n\tCR_NOT_SYSTEM_VM            CONFIGRET = 0x00000016\n\tCR_REMOVE_VETOED            CONFIGRET = 0x00000017\n\tCR_APM_VETOED               CONFIGRET = 0x00000018\n\tCR_INVALID_LOAD_TYPE        CONFIGRET = 0x00000019\n\tCR_BUFFER_SMALL             CONFIGRET = 0x0000001A\n\tCR_NO_ARBITRATOR            CONFIGRET = 0x0000001B\n\tCR_NO_REGISTRY_HANDLE       CONFIGRET = 0x0000001C\n\tCR_REGISTRY_ERROR           CONFIGRET = 0x0000001D\n\tCR_INVALID_DEVICE_ID        CONFIGRET = 0x0000001E\n\tCR_INVALID_DATA             CONFIGRET = 0x0000001F\n\tCR_INVALID_API              CONFIGRET = 0x00000020\n\tCR_DEVLOADER_NOT_READY      CONFIGRET = 0x00000021\n\tCR_NEED_RESTART             CONFIGRET = 0x00000022\n\tCR_NO_MORE_HW_PROFILES      CONFIGRET = 0x00000023\n\tCR_DEVICE_NOT_THERE         CONFIGRET = 0x00000024\n\tCR_NO_SUCH_VALUE            CONFIGRET = 0x00000025\n\tCR_WRONG_TYPE               CONFIGRET = 0x00000026\n\tCR_INVALID_PRIORITY         CONFIGRET = 0x00000027\n\tCR_NOT_DISABLEABLE          CONFIGRET = 0x00000028\n\tCR_FREE_RESOURCES           CONFIGRET = 0x00000029\n\tCR_QUERY_VETOED             CONFIGRET = 0x0000002A\n\tCR_CANT_SHARE_IRQ           CONFIGRET = 0x0000002B\n\tCR_NO_DEPENDENT             CONFIGRET = 0x0000002C\n\tCR_SAME_RESOURCES           CONFIGRET = 0x0000002D\n\tCR_NO_SUCH_REGISTRY_KEY     CONFIGRET = 0x0000002E\n\tCR_INVALID_MACHINENAME      CONFIGRET = 0x0000002F\n\tCR_REMOTE_COMM_FAILURE      CONFIGRET = 0x00000030\n\tCR_MACHINE_UNAVAILABLE      CONFIGRET = 0x00000031\n\tCR_NO_CM_SERVICES           CONFIGRET = 0x00000032\n\tCR_ACCESS_DENIED            CONFIGRET = 0x00000033\n\tCR_CALL_NOT_IMPLEMENTED     CONFIGRET = 0x00000034\n\tCR_INVALID_PROPERTY         CONFIGRET = 0x00000035\n\tCR_DEVICE_INTERFACE_ACTIVE  CONFIGRET = 0x00000036\n\tCR_NO_SUCH_DEVICE_INTERFACE CONFIGRET = 0x00000037\n\tCR_INVALID_REFERENCE_STRING CONFIGRET = 0x00000038\n\tCR_INVALID_CONFLICT_LIST    CONFIGRET = 0x00000039\n\tCR_INVALID_INDEX            CONFIGRET = 0x0000003A\n\tCR_INVALID_STRUCTURE_SIZE   CONFIGRET = 0x0000003B\n\tNUM_CR_RESULTS              CONFIGRET = 0x0000003C\n)\n\nconst (\n\tCM_GET_DEVICE_INTERFACE_LIST_PRESENT     = 0 // only currently 'live' device interfaces\n\tCM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES = 1 // all registered device interfaces, live or not\n)\n\nconst (\n\tDN_ROOT_ENUMERATED       = 0x00000001        // Was enumerated by ROOT\n\tDN_DRIVER_LOADED         = 0x00000002        // Has Register_Device_Driver\n\tDN_ENUM_LOADED           = 0x00000004        // Has Register_Enumerator\n\tDN_STARTED               = 0x00000008        // Is currently configured\n\tDN_MANUAL                = 0x00000010        // Manually installed\n\tDN_NEED_TO_ENUM          = 0x00000020        // May need reenumeration\n\tDN_NOT_FIRST_TIME        = 0x00000040        // Has received a config\n\tDN_HARDWARE_ENUM         = 0x00000080        // Enum generates hardware ID\n\tDN_LIAR                  = 0x00000100        // Lied about can reconfig once\n\tDN_HAS_MARK              = 0x00000200        // Not CM_Create_DevInst lately\n\tDN_HAS_PROBLEM           = 0x00000400        // Need device installer\n\tDN_FILTERED              = 0x00000800        // Is filtered\n\tDN_MOVED                 = 0x00001000        // Has been moved\n\tDN_DISABLEABLE           = 0x00002000        // Can be disabled\n\tDN_REMOVABLE             = 0x00004000        // Can be removed\n\tDN_PRIVATE_PROBLEM       = 0x00008000        // Has a private problem\n\tDN_MF_PARENT             = 0x00010000        // Multi function parent\n\tDN_MF_CHILD              = 0x00020000        // Multi function child\n\tDN_WILL_BE_REMOVED       = 0x00040000        // DevInst is being removed\n\tDN_NOT_FIRST_TIMEE       = 0x00080000        // Has received a config enumerate\n\tDN_STOP_FREE_RES         = 0x00100000        // When child is stopped, free resources\n\tDN_REBAL_CANDIDATE       = 0x00200000        // Don't skip during rebalance\n\tDN_BAD_PARTIAL           = 0x00400000        // This devnode's log_confs do not have same resources\n\tDN_NT_ENUMERATOR         = 0x00800000        // This devnode's is an NT enumerator\n\tDN_NT_DRIVER             = 0x01000000        // This devnode's is an NT driver\n\tDN_NEEDS_LOCKING         = 0x02000000        // Devnode need lock resume processing\n\tDN_ARM_WAKEUP            = 0x04000000        // Devnode can be the wakeup device\n\tDN_APM_ENUMERATOR        = 0x08000000        // APM aware enumerator\n\tDN_APM_DRIVER            = 0x10000000        // APM aware driver\n\tDN_SILENT_INSTALL        = 0x20000000        // Silent install\n\tDN_NO_SHOW_IN_DM         = 0x40000000        // No show in device manager\n\tDN_BOOT_LOG_PROB         = 0x80000000        // Had a problem during preassignment of boot log conf\n\tDN_NEED_RESTART          = DN_LIAR           // System needs to be restarted for this Devnode to work properly\n\tDN_DRIVER_BLOCKED        = DN_NOT_FIRST_TIME // One or more drivers are blocked from loading for this Devnode\n\tDN_LEGACY_DRIVER         = DN_MOVED          // This device is using a legacy driver\n\tDN_CHILD_WITH_INVALID_ID = DN_HAS_MARK       // One or more children have invalid IDs\n\tDN_DEVICE_DISCONNECTED   = DN_NEEDS_LOCKING  // The function driver for a device reported that the device is not connected.  Typically this means a wireless device is out of range.\n\tDN_QUERY_REMOVE_PENDING  = DN_MF_PARENT      // Device is part of a set of related devices collectively pending query-removal\n\tDN_QUERY_REMOVE_ACTIVE   = DN_MF_CHILD       // Device is actively engaged in a query-remove IRP\n\tDN_CHANGEABLE_FLAGS      = DN_NOT_FIRST_TIME | DN_HARDWARE_ENUM | DN_HAS_MARK | DN_DISABLEABLE | DN_REMOVABLE | DN_MF_CHILD | DN_MF_PARENT | DN_NOT_FIRST_TIMEE | DN_STOP_FREE_RES | DN_REBAL_CANDIDATE | DN_NT_ENUMERATOR | DN_NT_DRIVER | DN_SILENT_INSTALL | DN_NO_SHOW_IN_DM\n)\n\n//sys\tsetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiCreateDeviceInfoListExW\n\n// SetupDiCreateDeviceInfoListEx function creates an empty device information set on a remote or a local computer and optionally associates the set with a device setup class.\nfunc SetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName string) (deviceInfoSet DevInfo, err error) {\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn setupDiCreateDeviceInfoListEx(classGUID, hwndParent, machineNameUTF16, 0)\n}\n\n//sys\tsetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) = setupapi.SetupDiGetDeviceInfoListDetailW\n\n// SetupDiGetDeviceInfoListDetail function retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name.\nfunc SetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo) (deviceInfoSetDetailData *DevInfoListDetailData, err error) {\n\tdata := &DevInfoListDetailData{}\n\tdata.size = data.unsafeSizeOf()\n\n\treturn data, setupDiGetDeviceInfoListDetail(deviceInfoSet, data)\n}\n\n// DeviceInfoListDetail method retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name.\nfunc (deviceInfoSet DevInfo) DeviceInfoListDetail() (*DevInfoListDetailData, error) {\n\treturn SetupDiGetDeviceInfoListDetail(deviceInfoSet)\n}\n\n//sys\tsetupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCreateDeviceInfoW\n\n// SetupDiCreateDeviceInfo function creates a new device information element and adds it as a new member to the specified device information set.\nfunc SetupDiCreateDeviceInfo(deviceInfoSet DevInfo, deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (deviceInfoData *DevInfoData, err error) {\n\tdeviceNameUTF16, err := UTF16PtrFromString(deviceName)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tvar deviceDescriptionUTF16 *uint16\n\tif deviceDescription != \"\" {\n\t\tdeviceDescriptionUTF16, err = UTF16PtrFromString(deviceDescription)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\tdata := &DevInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiCreateDeviceInfo(deviceInfoSet, deviceNameUTF16, classGUID, deviceDescriptionUTF16, hwndParent, creationFlags, data)\n}\n\n// CreateDeviceInfo method creates a new device information element and adds it as a new member to the specified device information set.\nfunc (deviceInfoSet DevInfo) CreateDeviceInfo(deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (*DevInfoData, error) {\n\treturn SetupDiCreateDeviceInfo(deviceInfoSet, deviceName, classGUID, deviceDescription, hwndParent, creationFlags)\n}\n\n//sys\tsetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiEnumDeviceInfo\n\n// SetupDiEnumDeviceInfo function returns a DevInfoData structure that specifies a device information element in a device information set.\nfunc SetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex int) (*DevInfoData, error) {\n\tdata := &DevInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiEnumDeviceInfo(deviceInfoSet, uint32(memberIndex), data)\n}\n\n// EnumDeviceInfo method returns a DevInfoData structure that specifies a device information element in a device information set.\nfunc (deviceInfoSet DevInfo) EnumDeviceInfo(memberIndex int) (*DevInfoData, error) {\n\treturn SetupDiEnumDeviceInfo(deviceInfoSet, memberIndex)\n}\n\n// SetupDiDestroyDeviceInfoList function deletes a device information set and frees all associated memory.\n//sys\tSetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiDestroyDeviceInfoList\n\n// Close method deletes a device information set and frees all associated memory.\nfunc (deviceInfoSet DevInfo) Close() error {\n\treturn SetupDiDestroyDeviceInfoList(deviceInfoSet)\n}\n\n//sys\tSetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiBuildDriverInfoList\n\n// BuildDriverInfoList method builds a list of drivers that is associated with a specific device or with the global class driver list for a device information set.\nfunc (deviceInfoSet DevInfo) BuildDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error {\n\treturn SetupDiBuildDriverInfoList(deviceInfoSet, deviceInfoData, driverType)\n}\n\n//sys\tSetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiCancelDriverInfoSearch\n\n// CancelDriverInfoSearch method cancels a driver list search that is currently in progress in a different thread.\nfunc (deviceInfoSet DevInfo) CancelDriverInfoSearch() error {\n\treturn SetupDiCancelDriverInfoSearch(deviceInfoSet)\n}\n\n//sys\tsetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiEnumDriverInfoW\n\n// SetupDiEnumDriverInfo function enumerates the members of a driver list.\nfunc SetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) {\n\tdata := &DrvInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, uint32(memberIndex), data)\n}\n\n// EnumDriverInfo method enumerates the members of a driver list.\nfunc (deviceInfoSet DevInfo) EnumDriverInfo(deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) {\n\treturn SetupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, memberIndex)\n}\n\n//sys\tsetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiGetSelectedDriverW\n\n// SetupDiGetSelectedDriver function retrieves the selected driver for a device information set or a particular device information element.\nfunc SetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DrvInfoData, error) {\n\tdata := &DrvInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiGetSelectedDriver(deviceInfoSet, deviceInfoData, data)\n}\n\n// SelectedDriver method retrieves the selected driver for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) SelectedDriver(deviceInfoData *DevInfoData) (*DrvInfoData, error) {\n\treturn SetupDiGetSelectedDriver(deviceInfoSet, deviceInfoData)\n}\n\n//sys\tSetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiSetSelectedDriverW\n\n// SetSelectedDriver method sets, or resets, the selected driver for a device information element or the selected class driver for a device information set.\nfunc (deviceInfoSet DevInfo) SetSelectedDriver(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) error {\n\treturn SetupDiSetSelectedDriver(deviceInfoSet, deviceInfoData, driverInfoData)\n}\n\n//sys\tsetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDriverInfoDetailW\n\n// SetupDiGetDriverInfoDetail function retrieves driver information detail for a device information set or a particular device information element in the device information set.\nfunc SetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) {\n\treqSize := uint32(2048)\n\tfor {\n\t\tbuf := make([]byte, reqSize)\n\t\tdata := (*DrvInfoDetailData)(unsafe.Pointer(&buf[0]))\n\t\tdata.size = data.unsafeSizeOf()\n\t\terr := setupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData, data, uint32(len(buf)), &reqSize)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdata.size = reqSize\n\t\treturn data, nil\n\t}\n}\n\n// DriverInfoDetail method retrieves driver information detail for a device information set or a particular device information element in the device information set.\nfunc (deviceInfoSet DevInfo) DriverInfoDetail(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) {\n\treturn SetupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData)\n}\n\n//sys\tSetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiDestroyDriverInfoList\n\n// DestroyDriverInfoList method deletes a driver list.\nfunc (deviceInfoSet DevInfo) DestroyDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error {\n\treturn SetupDiDestroyDriverInfoList(deviceInfoSet, deviceInfoData, driverType)\n}\n\n//sys\tsetupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiGetClassDevsExW\n\n// SetupDiGetClassDevsEx function returns a handle to a device information set that contains requested device information elements for a local or a remote computer.\nfunc SetupDiGetClassDevsEx(classGUID *GUID, enumerator string, hwndParent uintptr, flags DIGCF, deviceInfoSet DevInfo, machineName string) (handle DevInfo, err error) {\n\tvar enumeratorUTF16 *uint16\n\tif enumerator != \"\" {\n\t\tenumeratorUTF16, err = UTF16PtrFromString(enumerator)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn setupDiGetClassDevsEx(classGUID, enumeratorUTF16, hwndParent, flags, deviceInfoSet, machineNameUTF16, 0)\n}\n\n// SetupDiCallClassInstaller function calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code).\n//sys\tSetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCallClassInstaller\n\n// CallClassInstaller member calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code).\nfunc (deviceInfoSet DevInfo) CallClassInstaller(installFunction DI_FUNCTION, deviceInfoData *DevInfoData) error {\n\treturn SetupDiCallClassInstaller(installFunction, deviceInfoSet, deviceInfoData)\n}\n\n// SetupDiOpenDevRegKey function opens a registry key for device-specific configuration information.\n//sys\tSetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) [failretval==InvalidHandle] = setupapi.SetupDiOpenDevRegKey\n\n// OpenDevRegKey method opens a registry key for device-specific configuration information.\nfunc (deviceInfoSet DevInfo) OpenDevRegKey(DeviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (Handle, error) {\n\treturn SetupDiOpenDevRegKey(deviceInfoSet, DeviceInfoData, Scope, HwProfile, KeyType, samDesired)\n}\n\n//sys\tsetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) = setupapi.SetupDiGetDevicePropertyW\n\n// SetupDiGetDeviceProperty function retrieves a specified device instance property.\nfunc SetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY) (value interface{}, err error) {\n\treqSize := uint32(256)\n\tfor {\n\t\tvar dataType DEVPROPTYPE\n\t\tbuf := make([]byte, reqSize)\n\t\terr = setupDiGetDeviceProperty(deviceInfoSet, deviceInfoData, propertyKey, &dataType, &buf[0], uint32(len(buf)), &reqSize, 0)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tswitch dataType {\n\t\tcase DEVPROP_TYPE_STRING:\n\t\t\tret := UTF16ToString(bufToUTF16(buf))\n\t\t\truntime.KeepAlive(buf)\n\t\t\treturn ret, nil\n\t\t}\n\t\treturn nil, errors.New(\"unimplemented property type\")\n\t}\n}\n\n//sys\tsetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceRegistryPropertyW\n\n// SetupDiGetDeviceRegistryProperty function retrieves a specified Plug and Play device property.\nfunc SetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP) (value interface{}, err error) {\n\treqSize := uint32(256)\n\tfor {\n\t\tvar dataType uint32\n\t\tbuf := make([]byte, reqSize)\n\t\terr = setupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &dataType, &buf[0], uint32(len(buf)), &reqSize)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\treturn getRegistryValue(buf[:reqSize], dataType)\n\t}\n}\n\nfunc getRegistryValue(buf []byte, dataType uint32) (interface{}, error) {\n\tswitch dataType {\n\tcase REG_SZ:\n\t\tret := UTF16ToString(bufToUTF16(buf))\n\t\truntime.KeepAlive(buf)\n\t\treturn ret, nil\n\tcase REG_EXPAND_SZ:\n\t\tvalue := UTF16ToString(bufToUTF16(buf))\n\t\tif value == \"\" {\n\t\t\treturn \"\", nil\n\t\t}\n\t\tp, err := syscall.UTF16PtrFromString(value)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tret := make([]uint16, 100)\n\t\tfor {\n\t\t\tn, err := ExpandEnvironmentStrings(p, &ret[0], uint32(len(ret)))\n\t\t\tif err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t\tif n <= uint32(len(ret)) {\n\t\t\t\treturn UTF16ToString(ret[:n]), nil\n\t\t\t}\n\t\t\tret = make([]uint16, n)\n\t\t}\n\tcase REG_BINARY:\n\t\treturn buf, nil\n\tcase REG_DWORD_LITTLE_ENDIAN:\n\t\treturn binary.LittleEndian.Uint32(buf), nil\n\tcase REG_DWORD_BIG_ENDIAN:\n\t\treturn binary.BigEndian.Uint32(buf), nil\n\tcase REG_MULTI_SZ:\n\t\tbufW := bufToUTF16(buf)\n\t\ta := []string{}\n\t\tfor i := 0; i < len(bufW); {\n\t\t\tj := i + wcslen(bufW[i:])\n\t\t\tif i < j {\n\t\t\t\ta = append(a, UTF16ToString(bufW[i:j]))\n\t\t\t}\n\t\t\ti = j + 1\n\t\t}\n\t\truntime.KeepAlive(buf)\n\t\treturn a, nil\n\tcase REG_QWORD_LITTLE_ENDIAN:\n\t\treturn binary.LittleEndian.Uint64(buf), nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"Unsupported registry value type: %v\", dataType)\n\t}\n}\n\n// bufToUTF16 function reinterprets []byte buffer as []uint16\nfunc bufToUTF16(buf []byte) []uint16 {\n\tsl := struct {\n\t\taddr *uint16\n\t\tlen  int\n\t\tcap  int\n\t}{(*uint16)(unsafe.Pointer(&buf[0])), len(buf) / 2, cap(buf) / 2}\n\treturn *(*[]uint16)(unsafe.Pointer(&sl))\n}\n\n// utf16ToBuf function reinterprets []uint16 as []byte\nfunc utf16ToBuf(buf []uint16) []byte {\n\tsl := struct {\n\t\taddr *byte\n\t\tlen  int\n\t\tcap  int\n\t}{(*byte)(unsafe.Pointer(&buf[0])), len(buf) * 2, cap(buf) * 2}\n\treturn *(*[]byte)(unsafe.Pointer(&sl))\n}\n\nfunc wcslen(str []uint16) int {\n\tfor i := 0; i < len(str); i++ {\n\t\tif str[i] == 0 {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn len(str)\n}\n\n// DeviceRegistryProperty method retrieves a specified Plug and Play device property.\nfunc (deviceInfoSet DevInfo) DeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP) (interface{}, error) {\n\treturn SetupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property)\n}\n\n//sys\tsetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) = setupapi.SetupDiSetDeviceRegistryPropertyW\n\n// SetupDiSetDeviceRegistryProperty function sets a Plug and Play device property for a device.\nfunc SetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error {\n\treturn setupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &propertyBuffers[0], uint32(len(propertyBuffers)))\n}\n\n// SetDeviceRegistryProperty function sets a Plug and Play device property for a device.\nfunc (deviceInfoSet DevInfo) SetDeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error {\n\treturn SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, propertyBuffers)\n}\n\n// SetDeviceRegistryPropertyString method sets a Plug and Play device property string for a device.\nfunc (deviceInfoSet DevInfo) SetDeviceRegistryPropertyString(deviceInfoData *DevInfoData, property SPDRP, str string) error {\n\tstr16, err := UTF16FromString(str)\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, utf16ToBuf(append(str16, 0)))\n\truntime.KeepAlive(str16)\n\treturn err\n}\n\n//sys\tsetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiGetDeviceInstallParamsW\n\n// SetupDiGetDeviceInstallParams function retrieves device installation parameters for a device information set or a particular device information element.\nfunc SetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DevInstallParams, error) {\n\tparams := &DevInstallParams{}\n\tparams.size = uint32(unsafe.Sizeof(*params))\n\n\treturn params, setupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData, params)\n}\n\n// DeviceInstallParams method retrieves device installation parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) DeviceInstallParams(deviceInfoData *DevInfoData) (*DevInstallParams, error) {\n\treturn SetupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData)\n}\n\n//sys\tsetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceInstanceIdW\n\n// SetupDiGetDeviceInstanceId function retrieves the instance ID of the device.\nfunc SetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (string, error) {\n\treqSize := uint32(1024)\n\tfor {\n\t\tbuf := make([]uint16, reqSize)\n\t\terr := setupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData, &buf[0], uint32(len(buf)), &reqSize)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn UTF16ToString(buf), nil\n\t}\n}\n\n// DeviceInstanceID method retrieves the instance ID of the device.\nfunc (deviceInfoSet DevInfo) DeviceInstanceID(deviceInfoData *DevInfoData) (string, error) {\n\treturn SetupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData)\n}\n\n// SetupDiGetClassInstallParams function retrieves class installation parameters for a device information set or a particular device information element.\n//sys\tSetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetClassInstallParamsW\n\n// ClassInstallParams method retrieves class installation parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) ClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) error {\n\treturn SetupDiGetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize, requiredSize)\n}\n\n//sys\tSetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiSetDeviceInstallParamsW\n\n// SetDeviceInstallParams member sets device installation parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) SetDeviceInstallParams(deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) error {\n\treturn SetupDiSetDeviceInstallParams(deviceInfoSet, deviceInfoData, deviceInstallParams)\n}\n\n// SetupDiSetClassInstallParams function sets or clears class install parameters for a device information set or a particular device information element.\n//sys\tSetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) = setupapi.SetupDiSetClassInstallParamsW\n\n// SetClassInstallParams method sets or clears class install parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) SetClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) error {\n\treturn SetupDiSetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize)\n}\n\n//sys\tsetupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassNameFromGuidExW\n\n// SetupDiClassNameFromGuidEx function retrieves the class name associated with a class GUID. The class can be installed on a local or remote computer.\nfunc SetupDiClassNameFromGuidEx(classGUID *GUID, machineName string) (className string, err error) {\n\tvar classNameUTF16 [MAX_CLASS_NAME_LEN]uint16\n\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\terr = setupDiClassNameFromGuidEx(classGUID, &classNameUTF16[0], MAX_CLASS_NAME_LEN, nil, machineNameUTF16, 0)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tclassName = UTF16ToString(classNameUTF16[:])\n\treturn\n}\n\n//sys\tsetupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassGuidsFromNameExW\n\n// SetupDiClassGuidsFromNameEx function retrieves the GUIDs associated with the specified class name. This resulting list contains the classes currently installed on a local or remote computer.\nfunc SetupDiClassGuidsFromNameEx(className string, machineName string) ([]GUID, error) {\n\tclassNameUTF16, err := UTF16PtrFromString(className)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treqSize := uint32(4)\n\tfor {\n\t\tbuf := make([]GUID, reqSize)\n\t\terr = setupDiClassGuidsFromNameEx(classNameUTF16, &buf[0], uint32(len(buf)), &reqSize, machineNameUTF16, 0)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn buf[:reqSize], nil\n\t}\n}\n\n//sys\tsetupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiGetSelectedDevice\n\n// SetupDiGetSelectedDevice function retrieves the selected device information element in a device information set.\nfunc SetupDiGetSelectedDevice(deviceInfoSet DevInfo) (*DevInfoData, error) {\n\tdata := &DevInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiGetSelectedDevice(deviceInfoSet, data)\n}\n\n// SelectedDevice method retrieves the selected device information element in a device information set.\nfunc (deviceInfoSet DevInfo) SelectedDevice() (*DevInfoData, error) {\n\treturn SetupDiGetSelectedDevice(deviceInfoSet)\n}\n\n// SetupDiSetSelectedDevice function sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard.\n//sys\tSetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiSetSelectedDevice\n\n// SetSelectedDevice method sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard.\nfunc (deviceInfoSet DevInfo) SetSelectedDevice(deviceInfoData *DevInfoData) error {\n\treturn SetupDiSetSelectedDevice(deviceInfoSet, deviceInfoData)\n}\n\n//sys\tsetupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) = setupapi.SetupUninstallOEMInfW\n\n// SetupUninstallOEMInf uninstalls the specified driver.\nfunc SetupUninstallOEMInf(infFileName string, flags SUOI) error {\n\tinfFileName16, err := UTF16PtrFromString(infFileName)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn setupUninstallOEMInf(infFileName16, flags, 0)\n}\n\n//sys cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) = CfgMgr32.CM_MapCrToWin32Err\n\n//sys cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_List_SizeW\n//sys cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_ListW\n\nfunc CM_Get_Device_Interface_List(deviceID string, interfaceClass *GUID, flags uint32) ([]string, error) {\n\tdeviceID16, err := UTF16PtrFromString(deviceID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar buf []uint16\n\tvar buflen uint32\n\tfor {\n\t\tif ret := cm_Get_Device_Interface_List_Size(&buflen, interfaceClass, deviceID16, flags); ret != CR_SUCCESS {\n\t\t\treturn nil, ret\n\t\t}\n\t\tbuf = make([]uint16, buflen)\n\t\tif ret := cm_Get_Device_Interface_List(interfaceClass, deviceID16, &buf[0], buflen, flags); ret == CR_SUCCESS {\n\t\t\tbreak\n\t\t} else if ret != CR_BUFFER_SMALL {\n\t\t\treturn nil, ret\n\t\t}\n\t}\n\tvar interfaces []string\n\tfor i := 0; i < len(buf); {\n\t\tj := i + wcslen(buf[i:])\n\t\tif i < j {\n\t\t\tinterfaces = append(interfaces, UTF16ToString(buf[i:j]))\n\t\t}\n\t\ti = j + 1\n\t}\n\tif interfaces == nil {\n\t\treturn nil, ERROR_NO_SUCH_DEVICE_INTERFACE\n\t}\n\treturn interfaces, nil\n}\n\n//sys cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_DevNode_Status\n\nfunc CM_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) error {\n\tret := cm_Get_DevNode_Status(status, problemNumber, devInst, flags)\n\tif ret == CR_SUCCESS {\n\t\treturn nil\n\t}\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/str.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nfunc itoa(val int) string { // do it here rather than with fmt to avoid dependency\n\tif val < 0 {\n\t\treturn \"-\" + itoa(-val)\n\t}\n\tvar buf [32]byte // big enough for int64\n\ti := len(buf) - 1\n\tfor val >= 10 {\n\t\tbuf[i] = byte(val%10 + '0')\n\t\ti--\n\t\tval /= 10\n\t}\n\tbuf[i] = byte(val + '0')\n\treturn string(buf[i:])\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/syscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\n// Package windows contains an interface to the low-level operating system\n// primitives. OS details vary depending on the underlying system, and\n// by default, godoc will display the OS-specific documentation for the current\n// system. If you want godoc to display syscall documentation for another\n// system, set $GOOS and $GOARCH to the desired system. For example, if\n// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS\n// to freebsd and $GOARCH to arm.\n//\n// The primary use of this package is inside other packages that provide a more\n// portable interface to the system, such as \"os\", \"time\" and \"net\".  Use\n// those packages rather than this one if you can.\n//\n// For details of the functions and data types in this package consult\n// the manuals for the appropriate operating system.\n//\n// These calls return err == nil to indicate success; otherwise\n// err represents an operating system error describing the failure and\n// holds a value of type syscall.Errno.\npackage windows // import \"golang.org/x/sys/windows\"\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// ByteSliceFromString returns a NUL-terminated slice of bytes\n// containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, syscall.EINVAL).\nfunc ByteSliceFromString(s string) ([]byte, error) {\n\tif strings.IndexByte(s, 0) != -1 {\n\t\treturn nil, syscall.EINVAL\n\t}\n\ta := make([]byte, len(s)+1)\n\tcopy(a, s)\n\treturn a, nil\n}\n\n// BytePtrFromString returns a pointer to a NUL-terminated array of\n// bytes containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, syscall.EINVAL).\nfunc BytePtrFromString(s string) (*byte, error) {\n\ta, err := ByteSliceFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any\n// bytes after the NUL removed.\nfunc ByteSliceToString(s []byte) string {\n\tif i := bytes.IndexByte(s, 0); i != -1 {\n\t\ts = s[:i]\n\t}\n\treturn string(s)\n}\n\n// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string.\n// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated\n// at a zero byte; if the zero byte is not present, the program may crash.\nfunc BytePtrToString(p *byte) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + 1)\n\t}\n\n\treturn string(unsafe.Slice(p, n))\n}\n\n// Single-word zero for use when we need a valid pointer to 0 bytes.\n// See mksyscall.pl.\nvar _zero uintptr\n\nfunc (ts *Timespec) Unix() (sec int64, nsec int64) {\n\treturn int64(ts.Sec), int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Unix() (sec int64, nsec int64) {\n\treturn int64(tv.Sec), int64(tv.Usec) * 1000\n}\n\nfunc (ts *Timespec) Nano() int64 {\n\treturn int64(ts.Sec)*1e9 + int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Nano() int64 {\n\treturn int64(tv.Sec)*1e9 + int64(tv.Usec)*1000\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/syscall_windows.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Windows system calls.\n\npackage windows\n\nimport (\n\terrorspkg \"errors\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"sync\"\n\t\"syscall\"\n\t\"time\"\n\t\"unicode/utf16\"\n\t\"unsafe\"\n)\n\ntype (\n\tHandle uintptr\n\tHWND   uintptr\n)\n\nconst (\n\tInvalidHandle = ^Handle(0)\n\tInvalidHWND   = ^HWND(0)\n\n\t// Flags for DefineDosDevice.\n\tDDD_EXACT_MATCH_ON_REMOVE = 0x00000004\n\tDDD_NO_BROADCAST_SYSTEM   = 0x00000008\n\tDDD_RAW_TARGET_PATH       = 0x00000001\n\tDDD_REMOVE_DEFINITION     = 0x00000002\n\n\t// Return values for GetDriveType.\n\tDRIVE_UNKNOWN     = 0\n\tDRIVE_NO_ROOT_DIR = 1\n\tDRIVE_REMOVABLE   = 2\n\tDRIVE_FIXED       = 3\n\tDRIVE_REMOTE      = 4\n\tDRIVE_CDROM       = 5\n\tDRIVE_RAMDISK     = 6\n\n\t// File system flags from GetVolumeInformation and GetVolumeInformationByHandle.\n\tFILE_CASE_SENSITIVE_SEARCH        = 0x00000001\n\tFILE_CASE_PRESERVED_NAMES         = 0x00000002\n\tFILE_FILE_COMPRESSION             = 0x00000010\n\tFILE_DAX_VOLUME                   = 0x20000000\n\tFILE_NAMED_STREAMS                = 0x00040000\n\tFILE_PERSISTENT_ACLS              = 0x00000008\n\tFILE_READ_ONLY_VOLUME             = 0x00080000\n\tFILE_SEQUENTIAL_WRITE_ONCE        = 0x00100000\n\tFILE_SUPPORTS_ENCRYPTION          = 0x00020000\n\tFILE_SUPPORTS_EXTENDED_ATTRIBUTES = 0x00800000\n\tFILE_SUPPORTS_HARD_LINKS          = 0x00400000\n\tFILE_SUPPORTS_OBJECT_IDS          = 0x00010000\n\tFILE_SUPPORTS_OPEN_BY_FILE_ID     = 0x01000000\n\tFILE_SUPPORTS_REPARSE_POINTS      = 0x00000080\n\tFILE_SUPPORTS_SPARSE_FILES        = 0x00000040\n\tFILE_SUPPORTS_TRANSACTIONS        = 0x00200000\n\tFILE_SUPPORTS_USN_JOURNAL         = 0x02000000\n\tFILE_UNICODE_ON_DISK              = 0x00000004\n\tFILE_VOLUME_IS_COMPRESSED         = 0x00008000\n\tFILE_VOLUME_QUOTAS                = 0x00000020\n\n\t// Flags for LockFileEx.\n\tLOCKFILE_FAIL_IMMEDIATELY = 0x00000001\n\tLOCKFILE_EXCLUSIVE_LOCK   = 0x00000002\n\n\t// Return value of SleepEx and other APC functions\n\tWAIT_IO_COMPLETION = 0x000000C0\n)\n\n// StringToUTF16 is deprecated. Use UTF16FromString instead.\n// If s contains a NUL byte this function panics instead of\n// returning an error.\nfunc StringToUTF16(s string) []uint16 {\n\ta, err := UTF16FromString(s)\n\tif err != nil {\n\t\tpanic(\"windows: string with NUL passed to StringToUTF16\")\n\t}\n\treturn a\n}\n\n// UTF16FromString returns the UTF-16 encoding of the UTF-8 string\n// s, with a terminating NUL added. If s contains a NUL byte at any\n// location, it returns (nil, syscall.EINVAL).\nfunc UTF16FromString(s string) ([]uint16, error) {\n\treturn syscall.UTF16FromString(s)\n}\n\n// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s,\n// with a terminating NUL and any bytes after the NUL removed.\nfunc UTF16ToString(s []uint16) string {\n\treturn syscall.UTF16ToString(s)\n}\n\n// StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead.\n// If s contains a NUL byte this function panics instead of\n// returning an error.\nfunc StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] }\n\n// UTF16PtrFromString returns pointer to the UTF-16 encoding of\n// the UTF-8 string s, with a terminating NUL added. If s\n// contains a NUL byte at any location, it returns (nil, syscall.EINVAL).\nfunc UTF16PtrFromString(s string) (*uint16, error) {\n\ta, err := UTF16FromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string.\n// If the pointer is nil, it returns the empty string. It assumes that the UTF-16 sequence is terminated\n// at a zero word; if the zero word is not present, the program may crash.\nfunc UTF16PtrToString(p *uint16) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p))\n\t}\n\treturn UTF16ToString(unsafe.Slice(p, n))\n}\n\nfunc Getpagesize() int { return 4096 }\n\n// NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention.\n// This is useful when interoperating with Windows code requiring callbacks.\n// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr.\nfunc NewCallback(fn interface{}) uintptr {\n\treturn syscall.NewCallback(fn)\n}\n\n// NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention.\n// This is useful when interoperating with Windows code requiring callbacks.\n// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr.\nfunc NewCallbackCDecl(fn interface{}) uintptr {\n\treturn syscall.NewCallbackCDecl(fn)\n}\n\n// windows api calls\n\n//sys\tGetLastError() (lasterr error)\n//sys\tLoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW\n//sys\tLoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW\n//sys\tFreeLibrary(handle Handle) (err error)\n//sys\tGetProcAddress(module Handle, procname string) (proc uintptr, err error)\n//sys\tGetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW\n//sys\tGetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW\n//sys\tSetDefaultDllDirectories(directoryFlags uint32) (err error)\n//sys\tAddDllDirectory(path *uint16) (cookie uintptr, err error) = kernel32.AddDllDirectory\n//sys\tRemoveDllDirectory(cookie uintptr) (err error) = kernel32.RemoveDllDirectory\n//sys\tSetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW\n//sys\tGetVersion() (ver uint32, err error)\n//sys\tFormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW\n//sys\tExitProcess(exitcode uint32)\n//sys\tIsWow64Process(handle Handle, isWow64 *bool) (err error) = IsWow64Process\n//sys\tIsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) = IsWow64Process2?\n//sys\tCreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW\n//sys\tCreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error)  [failretval==InvalidHandle] = CreateNamedPipeW\n//sys\tConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error)\n//sys\tDisconnectNamedPipe(pipe Handle) (err error)\n//sys\tGetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error)\n//sys\tGetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW\n//sys\tSetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState\n//sys\treadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = ReadFile\n//sys\twriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = WriteFile\n//sys\tGetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error)\n//sys\tSetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff]\n//sys\tCloseHandle(handle Handle) (err error)\n//sys\tGetStdHandle(stdhandle uint32) (handle Handle, err error) [failretval==InvalidHandle]\n//sys\tSetStdHandle(stdhandle uint32, handle Handle) (err error)\n//sys\tfindFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW\n//sys\tfindNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW\n//sys\tFindClose(handle Handle) (err error)\n//sys\tGetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error)\n//sys\tGetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error)\n//sys\tSetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error)\n//sys\tGetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW\n//sys\tSetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW\n//sys\tCreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW\n//sys\tRemoveDirectory(path *uint16) (err error) = RemoveDirectoryW\n//sys\tDeleteFile(path *uint16) (err error) = DeleteFileW\n//sys\tMoveFile(from *uint16, to *uint16) (err error) = MoveFileW\n//sys\tMoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW\n//sys\tLockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error)\n//sys\tUnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error)\n//sys\tGetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW\n//sys\tGetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW\n//sys\tSetEndOfFile(handle Handle) (err error)\n//sys\tSetFileValidData(handle Handle, validDataLength int64) (err error)\n//sys\tGetSystemTimeAsFileTime(time *Filetime)\n//sys\tGetSystemTimePreciseAsFileTime(time *Filetime)\n//sys\tGetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff]\n//sys\tCreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error)\n//sys\tGetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error)\n//sys\tPostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error)\n//sys\tCancelIo(s Handle) (err error)\n//sys\tCancelIoEx(s Handle, o *Overlapped) (err error)\n//sys\tCreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW\n//sys\tCreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = advapi32.CreateProcessAsUserW\n//sys   initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) = InitializeProcThreadAttributeList\n//sys   deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) = DeleteProcThreadAttributeList\n//sys   updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) = UpdateProcThreadAttribute\n//sys\tOpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error)\n//sys\tShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW\n//sys\tGetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) = user32.GetWindowThreadProcessId\n//sys\tLoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) [failretval==0] = user32.LoadKeyboardLayoutW\n//sys\tUnloadKeyboardLayout(hkl Handle) (err error) = user32.UnloadKeyboardLayout\n//sys\tGetKeyboardLayout(tid uint32) (hkl Handle) = user32.GetKeyboardLayout\n//sys\tToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) = user32.ToUnicodeEx\n//sys\tGetShellWindow() (shellWindow HWND) = user32.GetShellWindow\n//sys\tMessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW\n//sys\tExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx\n//sys\tshGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath\n//sys\tTerminateProcess(handle Handle, exitcode uint32) (err error)\n//sys\tGetExitCodeProcess(handle Handle, exitcode *uint32) (err error)\n//sys\tgetStartupInfo(startupInfo *StartupInfo) = GetStartupInfoW\n//sys\tGetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error)\n//sys\tDuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error)\n//sys\tWaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff]\n//sys\twaitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] = WaitForMultipleObjects\n//sys\tGetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW\n//sys\tCreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error)\n//sys\tGetFileType(filehandle Handle) (n uint32, err error)\n//sys\tCryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW\n//sys\tCryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext\n//sys\tCryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom\n//sys\tGetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW\n//sys\tFreeEnvironmentStrings(envs *uint16) (err error) = kernel32.FreeEnvironmentStringsW\n//sys\tGetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) = kernel32.GetEnvironmentVariableW\n//sys\tSetEnvironmentVariable(name *uint16, value *uint16) (err error) = kernel32.SetEnvironmentVariableW\n//sys\tExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW\n//sys\tCreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) = userenv.CreateEnvironmentBlock\n//sys\tDestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock\n//sys\tgetTickCount64() (ms uint64) = kernel32.GetTickCount64\n//sys   GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error)\n//sys\tSetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error)\n//sys\tGetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW\n//sys\tSetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW\n//sys\tGetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW\n//sys\tGetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW\n//sys\tcommandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW\n//sys\tLocalFree(hmem Handle) (handle Handle, err error) [failretval!=0]\n//sys\tLocalAlloc(flags uint32, length uint32) (ptr uintptr, err error)\n//sys\tSetHandleInformation(handle Handle, mask uint32, flags uint32) (err error)\n//sys\tFlushFileBuffers(handle Handle) (err error)\n//sys\tGetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW\n//sys\tGetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW\n//sys\tGetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW\n//sys\tGetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) = kernel32.GetFinalPathNameByHandleW\n//sys\tCreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateFileMappingW\n//sys\tMapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error)\n//sys\tUnmapViewOfFile(addr uintptr) (err error)\n//sys\tFlushViewOfFile(addr uintptr, length uintptr) (err error)\n//sys\tVirtualLock(addr uintptr, length uintptr) (err error)\n//sys\tVirtualUnlock(addr uintptr, length uintptr) (err error)\n//sys\tVirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) = kernel32.VirtualAlloc\n//sys\tVirtualFree(address uintptr, size uintptr, freetype uint32) (err error) = kernel32.VirtualFree\n//sys\tVirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect\n//sys\tVirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) = kernel32.VirtualProtectEx\n//sys\tVirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQuery\n//sys\tVirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQueryEx\n//sys\tReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) = kernel32.ReadProcessMemory\n//sys\tWriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) = kernel32.WriteProcessMemory\n//sys\tTransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile\n//sys\tReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW\n//sys\tFindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.FindFirstChangeNotificationW\n//sys\tFindNextChangeNotification(handle Handle) (err error)\n//sys\tFindCloseChangeNotification(handle Handle) (err error)\n//sys\tCertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW\n//sys\tCertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) = crypt32.CertOpenStore\n//sys\tCertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore\n//sys\tCertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore\n//sys\tCertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore\n//sys\tCertDeleteCertificateFromStore(certContext *CertContext) (err error) = crypt32.CertDeleteCertificateFromStore\n//sys\tCertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) = crypt32.CertDuplicateCertificateContext\n//sys\tPFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) = crypt32.PFXImportCertStore\n//sys\tCertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain\n//sys\tCertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain\n//sys\tCertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext\n//sys\tCertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext\n//sys\tCertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy\n//sys\tCertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) = crypt32.CertGetNameStringW\n//sys\tCertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) = crypt32.CertFindExtension\n//sys   CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) [failretval==nil] = crypt32.CertFindCertificateInStore\n//sys   CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) [failretval==nil] = crypt32.CertFindChainInStore\n//sys   CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) = crypt32.CryptAcquireCertificatePrivateKey\n//sys\tCryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) = crypt32.CryptQueryObject\n//sys\tCryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) = crypt32.CryptDecodeObject\n//sys\tCryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptProtectData\n//sys\tCryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptUnprotectData\n//sys\tWinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) = wintrust.WinVerifyTrustEx\n//sys\tRegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW\n//sys\tRegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey\n//sys\tRegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW\n//sys\tRegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW\n//sys\tRegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW\n//sys\tRegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) = advapi32.RegNotifyChangeKeyValue\n//sys\tGetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId\n//sys\tProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) = kernel32.ProcessIdToSessionId\n//sys\tClosePseudoConsole(console Handle) = kernel32.ClosePseudoConsole\n//sys\tcreatePseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) = kernel32.CreatePseudoConsole\n//sys\tGetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode\n//sys\tSetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode\n//sys\tGetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo\n//sys\tsetConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition\n//sys\tWriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW\n//sys\tReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW\n//sys\tresizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole\n//sys\tCreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot\n//sys\tModule32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW\n//sys\tModule32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32NextW\n//sys\tProcess32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW\n//sys\tProcess32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW\n//sys\tThread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error)\n//sys\tThread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error)\n//sys\tDeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error)\n// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL.\n//sys\tCreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW\n//sys\tCreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW\n//sys\tGetCurrentThreadId() (id uint32)\n//sys\tCreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventW\n//sys\tCreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventExW\n//sys\tOpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenEventW\n//sys\tSetEvent(event Handle) (err error) = kernel32.SetEvent\n//sys\tResetEvent(event Handle) (err error) = kernel32.ResetEvent\n//sys\tPulseEvent(event Handle) (err error) = kernel32.PulseEvent\n//sys\tCreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexW\n//sys\tCreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexExW\n//sys\tOpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenMutexW\n//sys\tReleaseMutex(mutex Handle) (err error) = kernel32.ReleaseMutex\n//sys\tSleepEx(milliseconds uint32, alertable bool) (ret uint32) = kernel32.SleepEx\n//sys\tCreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) = kernel32.CreateJobObjectW\n//sys\tAssignProcessToJobObject(job Handle, process Handle) (err error) = kernel32.AssignProcessToJobObject\n//sys\tTerminateJobObject(job Handle, exitCode uint32) (err error) = kernel32.TerminateJobObject\n//sys\tSetErrorMode(mode uint32) (ret uint32) = kernel32.SetErrorMode\n//sys\tResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread\n//sys\tSetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass\n//sys\tGetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass\n//sys\tQueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) = kernel32.QueryInformationJobObject\n//sys\tSetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error)\n//sys\tGenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error)\n//sys\tGetProcessId(process Handle) (id uint32, err error)\n//sys\tQueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) = kernel32.QueryFullProcessImageNameW\n//sys\tOpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error)\n//sys\tSetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost\n//sys\tGetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32)\n//sys\tSetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error)\n//sys\tClearCommBreak(handle Handle) (err error)\n//sys\tClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error)\n//sys\tEscapeCommFunction(handle Handle, dwFunc uint32) (err error)\n//sys\tGetCommState(handle Handle, lpDCB *DCB) (err error)\n//sys\tGetCommModemStatus(handle Handle, lpModemStat *uint32) (err error)\n//sys\tGetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error)\n//sys\tPurgeComm(handle Handle, dwFlags uint32) (err error)\n//sys\tSetCommBreak(handle Handle) (err error)\n//sys\tSetCommMask(handle Handle, dwEvtMask uint32) (err error)\n//sys\tSetCommState(handle Handle, lpDCB *DCB) (err error)\n//sys\tSetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error)\n//sys\tSetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error)\n//sys\tWaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error)\n//sys\tGetActiveProcessorCount(groupNumber uint16) (ret uint32)\n//sys\tGetMaximumProcessorCount(groupNumber uint16) (ret uint32)\n//sys\tEnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows\n//sys\tEnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows\n//sys\tGetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW\n//sys\tGetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow\n//sys\tGetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow\n//sys\tIsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow\n//sys\tIsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode\n//sys\tIsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible\n//sys\tGetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo\n//sys\tGetLargePageMinimum() (size uintptr)\n\n// Volume Management Functions\n//sys\tDefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW\n//sys\tDeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) = DeleteVolumeMountPointW\n//sys\tFindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeW\n//sys\tFindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeMountPointW\n//sys\tFindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) = FindNextVolumeW\n//sys\tFindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW\n//sys\tFindVolumeClose(findVolume Handle) (err error)\n//sys\tFindVolumeMountPointClose(findVolumeMountPoint Handle) (err error)\n//sys\tGetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) = GetDiskFreeSpaceExW\n//sys\tGetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW\n//sys\tGetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0]\n//sys\tGetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW\n//sys\tGetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationW\n//sys\tGetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationByHandleW\n//sys\tGetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) = GetVolumeNameForVolumeMountPointW\n//sys\tGetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) = GetVolumePathNameW\n//sys\tGetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) = GetVolumePathNamesForVolumeNameW\n//sys\tQueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW\n//sys\tSetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW\n//sys\tSetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW\n//sys\tInitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW\n//sys\tSetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters\n//sys\tGetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters\n//sys\tclsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString\n//sys\tstringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2\n//sys\tcoCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid\n//sys\tCoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree\n//sys\tCoInitializeEx(reserved uintptr, coInit uint32) (ret error) = ole32.CoInitializeEx\n//sys\tCoUninitialize() = ole32.CoUninitialize\n//sys\tCoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) = ole32.CoGetObject\n//sys\tgetProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetProcessPreferredUILanguages\n//sys\tgetThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetThreadPreferredUILanguages\n//sys\tgetUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetUserPreferredUILanguages\n//sys\tgetSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetSystemPreferredUILanguages\n//sys\tfindResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) = kernel32.FindResourceW\n//sys\tSizeofResource(module Handle, resInfo Handle) (size uint32, err error) = kernel32.SizeofResource\n//sys\tLoadResource(module Handle, resInfo Handle) (resData Handle, err error) = kernel32.LoadResource\n//sys\tLockResource(resData Handle) (addr uintptr, err error) = kernel32.LockResource\n\n// Version APIs\n//sys\tGetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) = version.GetFileVersionInfoSizeW\n//sys\tGetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) = version.GetFileVersionInfoW\n//sys\tVerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) = version.VerQueryValueW\n\n// Process Status API (PSAPI)\n//sys\tenumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses\n//sys\tEnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) = psapi.EnumProcessModules\n//sys\tEnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) = psapi.EnumProcessModulesEx\n//sys\tGetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation\n//sys\tGetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW\n//sys\tGetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW\n//sys   QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx\n\n// NT Native APIs\n//sys\trtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb\n//sys\trtlGetVersion(info *OsVersionInfoEx) (ntstatus error) = ntdll.RtlGetVersion\n//sys\trtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers\n//sys\tRtlGetCurrentPeb() (peb *PEB) = ntdll.RtlGetCurrentPeb\n//sys\tRtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) = ntdll.RtlInitUnicodeString\n//sys\tRtlInitString(destinationString *NTString, sourceString *byte) = ntdll.RtlInitString\n//sys\tNtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) = ntdll.NtCreateFile\n//sys\tNtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) = ntdll.NtCreateNamedPipeFile\n//sys\tNtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtSetInformationFile\n//sys\tRtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToNtPathName_U_WithStatus\n//sys\tRtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus\n//sys\tRtlDefaultNpAcl(acl **ACL) (ntstatus error) = ntdll.RtlDefaultNpAcl\n//sys\tNtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQueryInformationProcess\n//sys\tNtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) = ntdll.NtSetInformationProcess\n//sys\tNtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQuerySystemInformation\n//sys\tNtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) = ntdll.NtSetSystemInformation\n//sys\tRtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable\n//sys\tRtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable\n\n// Desktop Window Manager API (Dwmapi)\n//sys\tDwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute\n//sys\tDwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute\n\n// Windows Multimedia API\n//sys TimeBeginPeriod (period uint32) (err error) [failretval != 0] = winmm.timeBeginPeriod\n//sys TimeEndPeriod (period uint32) (err error) [failretval != 0] = winmm.timeEndPeriod\n\n// syscall interface implementation for other packages\n\n// GetCurrentProcess returns the handle for the current process.\n// It is a pseudo handle that does not need to be closed.\n// The returned error is always nil.\n//\n// Deprecated: use CurrentProcess for the same Handle without the nil\n// error.\nfunc GetCurrentProcess() (Handle, error) {\n\treturn CurrentProcess(), nil\n}\n\n// CurrentProcess returns the handle for the current process.\n// It is a pseudo handle that does not need to be closed.\nfunc CurrentProcess() Handle { return Handle(^uintptr(1 - 1)) }\n\n// GetCurrentThread returns the handle for the current thread.\n// It is a pseudo handle that does not need to be closed.\n// The returned error is always nil.\n//\n// Deprecated: use CurrentThread for the same Handle without the nil\n// error.\nfunc GetCurrentThread() (Handle, error) {\n\treturn CurrentThread(), nil\n}\n\n// CurrentThread returns the handle for the current thread.\n// It is a pseudo handle that does not need to be closed.\nfunc CurrentThread() Handle { return Handle(^uintptr(2 - 1)) }\n\n// GetProcAddressByOrdinal retrieves the address of the exported\n// function from module by ordinal.\nfunc GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0)\n\tproc = uintptr(r0)\n\tif proc == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Exit(code int) { ExitProcess(uint32(code)) }\n\nfunc makeInheritSa() *SecurityAttributes {\n\tvar sa SecurityAttributes\n\tsa.Length = uint32(unsafe.Sizeof(sa))\n\tsa.InheritHandle = 1\n\treturn &sa\n}\n\nfunc Open(path string, mode int, perm uint32) (fd Handle, err error) {\n\tif len(path) == 0 {\n\t\treturn InvalidHandle, ERROR_FILE_NOT_FOUND\n\t}\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn InvalidHandle, err\n\t}\n\tvar access uint32\n\tswitch mode & (O_RDONLY | O_WRONLY | O_RDWR) {\n\tcase O_RDONLY:\n\t\taccess = GENERIC_READ\n\tcase O_WRONLY:\n\t\taccess = GENERIC_WRITE\n\tcase O_RDWR:\n\t\taccess = GENERIC_READ | GENERIC_WRITE\n\t}\n\tif mode&O_CREAT != 0 {\n\t\taccess |= GENERIC_WRITE\n\t}\n\tif mode&O_APPEND != 0 {\n\t\taccess &^= GENERIC_WRITE\n\t\taccess |= FILE_APPEND_DATA\n\t}\n\tsharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE)\n\tvar sa *SecurityAttributes\n\tif mode&O_CLOEXEC == 0 {\n\t\tsa = makeInheritSa()\n\t}\n\tvar createmode uint32\n\tswitch {\n\tcase mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL):\n\t\tcreatemode = CREATE_NEW\n\tcase mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC):\n\t\tcreatemode = CREATE_ALWAYS\n\tcase mode&O_CREAT == O_CREAT:\n\t\tcreatemode = OPEN_ALWAYS\n\tcase mode&O_TRUNC == O_TRUNC:\n\t\tcreatemode = TRUNCATE_EXISTING\n\tdefault:\n\t\tcreatemode = OPEN_EXISTING\n\t}\n\tvar attrs uint32 = FILE_ATTRIBUTE_NORMAL\n\tif perm&S_IWRITE == 0 {\n\t\tattrs = FILE_ATTRIBUTE_READONLY\n\t}\n\th, e := CreateFile(pathp, access, sharemode, sa, createmode, attrs, 0)\n\treturn h, e\n}\n\nfunc Read(fd Handle, p []byte) (n int, err error) {\n\tvar done uint32\n\te := ReadFile(fd, p, &done, nil)\n\tif e != nil {\n\t\tif e == ERROR_BROKEN_PIPE {\n\t\t\t// NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin\n\t\t\treturn 0, nil\n\t\t}\n\t\treturn 0, e\n\t}\n\treturn int(done), nil\n}\n\nfunc Write(fd Handle, p []byte) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tvar done uint32\n\te := WriteFile(fd, p, &done, nil)\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\treturn int(done), nil\n}\n\nfunc ReadFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error {\n\terr := readFile(fd, p, done, overlapped)\n\tif raceenabled {\n\t\tif *done > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), int(*done))\n\t\t}\n\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t}\n\treturn err\n}\n\nfunc WriteFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\terr := writeFile(fd, p, done, overlapped)\n\tif raceenabled && *done > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), int(*done))\n\t}\n\treturn err\n}\n\nvar ioSync int64\n\nfunc Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) {\n\tvar w uint32\n\tswitch whence {\n\tcase 0:\n\t\tw = FILE_BEGIN\n\tcase 1:\n\t\tw = FILE_CURRENT\n\tcase 2:\n\t\tw = FILE_END\n\t}\n\thi := int32(offset >> 32)\n\tlo := int32(offset)\n\t// use GetFileType to check pipe, pipe can't do seek\n\tft, _ := GetFileType(fd)\n\tif ft == FILE_TYPE_PIPE {\n\t\treturn 0, syscall.EPIPE\n\t}\n\trlo, e := SetFilePointer(fd, lo, &hi, w)\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\treturn int64(hi)<<32 + int64(rlo), nil\n}\n\nfunc Close(fd Handle) (err error) {\n\treturn CloseHandle(fd)\n}\n\nvar (\n\tStdin  = getStdHandle(STD_INPUT_HANDLE)\n\tStdout = getStdHandle(STD_OUTPUT_HANDLE)\n\tStderr = getStdHandle(STD_ERROR_HANDLE)\n)\n\nfunc getStdHandle(stdhandle uint32) (fd Handle) {\n\tr, _ := GetStdHandle(stdhandle)\n\treturn r\n}\n\nconst ImplementsGetwd = true\n\nfunc Getwd() (wd string, err error) {\n\tb := make([]uint16, 300)\n\tn, e := GetCurrentDirectory(uint32(len(b)), &b[0])\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\treturn string(utf16.Decode(b[0:n])), nil\n}\n\nfunc Chdir(path string) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn SetCurrentDirectory(pathp)\n}\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn CreateDirectory(pathp, nil)\n}\n\nfunc Rmdir(path string) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn RemoveDirectory(pathp)\n}\n\nfunc Unlink(path string) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn DeleteFile(pathp)\n}\n\nfunc Rename(oldpath, newpath string) (err error) {\n\tfrom, err := UTF16PtrFromString(oldpath)\n\tif err != nil {\n\t\treturn err\n\t}\n\tto, err := UTF16PtrFromString(newpath)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING)\n}\n\nfunc ComputerName() (name string, err error) {\n\tvar n uint32 = MAX_COMPUTERNAME_LENGTH + 1\n\tb := make([]uint16, n)\n\te := GetComputerName(&b[0], &n)\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\treturn string(utf16.Decode(b[0:n])), nil\n}\n\nfunc DurationSinceBoot() time.Duration {\n\treturn time.Duration(getTickCount64()) * time.Millisecond\n}\n\nfunc Ftruncate(fd Handle, length int64) (err error) {\n\tcuroffset, e := Seek(fd, 0, 1)\n\tif e != nil {\n\t\treturn e\n\t}\n\tdefer Seek(fd, curoffset, 0)\n\t_, e = Seek(fd, length, 0)\n\tif e != nil {\n\t\treturn e\n\t}\n\te = SetEndOfFile(fd)\n\tif e != nil {\n\t\treturn e\n\t}\n\treturn nil\n}\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\tvar ft Filetime\n\tGetSystemTimeAsFileTime(&ft)\n\t*tv = NsecToTimeval(ft.Nanoseconds())\n\treturn nil\n}\n\nfunc Pipe(p []Handle) (err error) {\n\tif len(p) != 2 {\n\t\treturn syscall.EINVAL\n\t}\n\tvar r, w Handle\n\te := CreatePipe(&r, &w, makeInheritSa(), 0)\n\tif e != nil {\n\t\treturn e\n\t}\n\tp[0] = r\n\tp[1] = w\n\treturn nil\n}\n\nfunc Utimes(path string, tv []Timeval) (err error) {\n\tif len(tv) != 2 {\n\t\treturn syscall.EINVAL\n\t}\n\tpathp, e := UTF16PtrFromString(path)\n\tif e != nil {\n\t\treturn e\n\t}\n\th, e := CreateFile(pathp,\n\t\tFILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil,\n\t\tOPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0)\n\tif e != nil {\n\t\treturn e\n\t}\n\tdefer CloseHandle(h)\n\ta := NsecToFiletime(tv[0].Nanoseconds())\n\tw := NsecToFiletime(tv[1].Nanoseconds())\n\treturn SetFileTime(h, nil, &a, &w)\n}\n\nfunc UtimesNano(path string, ts []Timespec) (err error) {\n\tif len(ts) != 2 {\n\t\treturn syscall.EINVAL\n\t}\n\tpathp, e := UTF16PtrFromString(path)\n\tif e != nil {\n\t\treturn e\n\t}\n\th, e := CreateFile(pathp,\n\t\tFILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil,\n\t\tOPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0)\n\tif e != nil {\n\t\treturn e\n\t}\n\tdefer CloseHandle(h)\n\ta := NsecToFiletime(TimespecToNsec(ts[0]))\n\tw := NsecToFiletime(TimespecToNsec(ts[1]))\n\treturn SetFileTime(h, nil, &a, &w)\n}\n\nfunc Fsync(fd Handle) (err error) {\n\treturn FlushFileBuffers(fd)\n}\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tp, e := UTF16PtrFromString(path)\n\tif e != nil {\n\t\treturn e\n\t}\n\tattrs, e := GetFileAttributes(p)\n\tif e != nil {\n\t\treturn e\n\t}\n\tif mode&S_IWRITE != 0 {\n\t\tattrs &^= FILE_ATTRIBUTE_READONLY\n\t} else {\n\t\tattrs |= FILE_ATTRIBUTE_READONLY\n\t}\n\treturn SetFileAttributes(p, attrs)\n}\n\nfunc LoadGetSystemTimePreciseAsFileTime() error {\n\treturn procGetSystemTimePreciseAsFileTime.Find()\n}\n\nfunc LoadCancelIoEx() error {\n\treturn procCancelIoEx.Find()\n}\n\nfunc LoadSetFileCompletionNotificationModes() error {\n\treturn procSetFileCompletionNotificationModes.Find()\n}\n\nfunc WaitForMultipleObjects(handles []Handle, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {\n\t// Every other win32 array API takes arguments as \"pointer, count\", except for this function. So we\n\t// can't declare it as a usual [] type, because mksyscall will use the opposite order. We therefore\n\t// trivially stub this ourselves.\n\n\tvar handlePtr *Handle\n\tif len(handles) > 0 {\n\t\thandlePtr = &handles[0]\n\t}\n\treturn waitForMultipleObjects(uint32(len(handles)), uintptr(unsafe.Pointer(handlePtr)), waitAll, waitMilliseconds)\n}\n\n// net api calls\n\nconst socket_error = uintptr(^uint32(0))\n\n//sys\tWSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup\n//sys\tWSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup\n//sys\tWSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl\n//sys\tWSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceBeginW\n//sys\tWSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceNextW\n//sys\tWSALookupServiceEnd(handle Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceEnd\n//sys\tsocket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket\n//sys\tsendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) [failretval==socket_error] = ws2_32.sendto\n//sys\trecvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) [failretval==-1] = ws2_32.recvfrom\n//sys\tSetsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt\n//sys\tGetsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt\n//sys\tbind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind\n//sys\tconnect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect\n//sys\tgetsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname\n//sys\tgetpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername\n//sys\tlisten(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen\n//sys\tshutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown\n//sys\tClosesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket\n//sys\tAcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx\n//sys\tGetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs\n//sys\tWSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv\n//sys\tWSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend\n//sys\tWSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32,  from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom\n//sys\tWSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32,  overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo\n//sys\tWSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW\n//sys\tGetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname\n//sys\tGetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname\n//sys\tNtohs(netshort uint16) (u uint16) = ws2_32.ntohs\n//sys\tGetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname\n//sys\tDnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W\n//sys\tDnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree\n//sys\tDnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W\n//sys\tGetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW\n//sys\tFreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW\n//sys\tGetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry\n//sys\tGetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo\n//sys\tSetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes\n//sys\tWSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW\n//sys\tWSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult\n//sys\tGetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses\n//sys\tGetACP() (acp uint32) = kernel32.GetACP\n//sys\tMultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar\n//sys\tgetBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [100]int8\n}\n\ntype Sockaddr interface {\n\tsockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs\n}\n\ntype SockaddrInet4 struct {\n\tPort int\n\tAddr [4]byte\n\traw  RawSockaddrInet4\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil\n}\n\ntype SockaddrInet6 struct {\n\tPort   int\n\tZoneId uint32\n\tAddr   [16]byte\n\traw    RawSockaddrInet6\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [UNIX_PATH_MAX]int8\n}\n\ntype SockaddrUnix struct {\n\tName string\n\traw  RawSockaddrUnix\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n > len(sa.raw.Path) {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tif n == len(sa.raw.Path) && name[0] != '@' {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := int32(2)\n\tif n > 0 {\n\t\tsl += int32(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\ntype RawSockaddrBth struct {\n\tAddressFamily  [2]byte\n\tBtAddr         [8]byte\n\tServiceClassId [16]byte\n\tPort           [4]byte\n}\n\ntype SockaddrBth struct {\n\tBtAddr         uint64\n\tServiceClassId GUID\n\tPort           uint32\n\n\traw RawSockaddrBth\n}\n\nfunc (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) {\n\tfamily := AF_BTH\n\tsa.raw = RawSockaddrBth{\n\t\tAddressFamily:  *(*[2]byte)(unsafe.Pointer(&family)),\n\t\tBtAddr:         *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)),\n\t\tPort:           *(*[4]byte)(unsafe.Pointer(&sa.Port)),\n\t\tServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)),\n\t}\n\treturn unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil\n}\n\nfunc (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\tif pp.Path[0] == 0 {\n\t\t\t// \"Abstract\" Unix domain socket.\n\t\t\t// Rewrite leading NUL as @ for textual display.\n\t\t\t// (This is the standard convention.)\n\t\t\t// Not friendly to overwrite in place,\n\t\t\t// but the callers below don't care.\n\t\t\tpp.Path[0] = '@'\n\t\t}\n\n\t\t// Assume path ends at NUL.\n\t\t// This is not technically the Linux semantics for\n\t\t// abstract Unix domain sockets--they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs--but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < len(pp.Path) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn nil, syscall.EAFNOSUPPORT\n}\n\nfunc Socket(domain, typ, proto int) (fd Handle, err error) {\n\tif domain == AF_INET6 && SocketDisableIPv6 {\n\t\treturn InvalidHandle, syscall.EAFNOSUPPORT\n\t}\n\treturn socket(int32(domain), int32(typ), int32(proto))\n}\n\nfunc SetsockoptInt(fd Handle, level, opt int, value int) (err error) {\n\tv := int32(value)\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v)))\n}\n\nfunc Bind(fd Handle, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn bind(fd, ptr, n)\n}\n\nfunc Connect(fd Handle, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connect(fd, ptr, n)\n}\n\nfunc GetBestInterfaceEx(sa Sockaddr, pdwBestIfIndex *uint32) (err error) {\n\tptr, _, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn getBestInterfaceEx(ptr, pdwBestIfIndex)\n}\n\nfunc Getsockname(fd Handle) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tl := int32(unsafe.Sizeof(rsa))\n\tif err = getsockname(fd, &rsa, &l); err != nil {\n\t\treturn\n\t}\n\treturn rsa.Sockaddr()\n}\n\nfunc Getpeername(fd Handle) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tl := int32(unsafe.Sizeof(rsa))\n\tif err = getpeername(fd, &rsa, &l); err != nil {\n\t\treturn\n\t}\n\treturn rsa.Sockaddr()\n}\n\nfunc Listen(s Handle, n int) (err error) {\n\treturn listen(s, int32(n))\n}\n\nfunc Shutdown(fd Handle, how int) (err error) {\n\treturn shutdown(fd, int32(how))\n}\n\nfunc WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) {\n\tvar rsa unsafe.Pointer\n\tvar l int32\n\tif to != nil {\n\t\trsa, l, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine)\n}\n\nfunc LoadGetAddrInfo() error {\n\treturn procGetAddrInfoW.Find()\n}\n\nvar connectExFunc struct {\n\tonce sync.Once\n\taddr uintptr\n\terr  error\n}\n\nfunc LoadConnectEx() error {\n\tconnectExFunc.once.Do(func() {\n\t\tvar s Handle\n\t\ts, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)\n\t\tif connectExFunc.err != nil {\n\t\t\treturn\n\t\t}\n\t\tdefer CloseHandle(s)\n\t\tvar n uint32\n\t\tconnectExFunc.err = WSAIoctl(s,\n\t\t\tSIO_GET_EXTENSION_FUNCTION_POINTER,\n\t\t\t(*byte)(unsafe.Pointer(&WSAID_CONNECTEX)),\n\t\t\tuint32(unsafe.Sizeof(WSAID_CONNECTEX)),\n\t\t\t(*byte)(unsafe.Pointer(&connectExFunc.addr)),\n\t\t\tuint32(unsafe.Sizeof(connectExFunc.addr)),\n\t\t\t&n, nil, 0)\n\t})\n\treturn connectExFunc.err\n}\n\nfunc connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0)\n\tif r1 == 0 {\n\t\tif e1 != 0 {\n\t\t\terr = error(e1)\n\t\t} else {\n\t\t\terr = syscall.EINVAL\n\t\t}\n\t}\n\treturn\n}\n\nfunc ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error {\n\terr := LoadConnectEx()\n\tif err != nil {\n\t\treturn errorspkg.New(\"failed to find ConnectEx: \" + err.Error())\n\t}\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped)\n}\n\nvar sendRecvMsgFunc struct {\n\tonce     sync.Once\n\tsendAddr uintptr\n\trecvAddr uintptr\n\terr      error\n}\n\nfunc loadWSASendRecvMsg() error {\n\tsendRecvMsgFunc.once.Do(func() {\n\t\tvar s Handle\n\t\ts, sendRecvMsgFunc.err = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)\n\t\tif sendRecvMsgFunc.err != nil {\n\t\t\treturn\n\t\t}\n\t\tdefer CloseHandle(s)\n\t\tvar n uint32\n\t\tsendRecvMsgFunc.err = WSAIoctl(s,\n\t\t\tSIO_GET_EXTENSION_FUNCTION_POINTER,\n\t\t\t(*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)),\n\t\t\tuint32(unsafe.Sizeof(WSAID_WSARECVMSG)),\n\t\t\t(*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)),\n\t\t\tuint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)),\n\t\t\t&n, nil, 0)\n\t\tif sendRecvMsgFunc.err != nil {\n\t\t\treturn\n\t\t}\n\t\tsendRecvMsgFunc.err = WSAIoctl(s,\n\t\t\tSIO_GET_EXTENSION_FUNCTION_POINTER,\n\t\t\t(*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)),\n\t\t\tuint32(unsafe.Sizeof(WSAID_WSASENDMSG)),\n\t\t\t(*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)),\n\t\t\tuint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)),\n\t\t\t&n, nil, 0)\n\t})\n\treturn sendRecvMsgFunc.err\n}\n\nfunc WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *Overlapped, croutine *byte) error {\n\terr := loadWSASendRecvMsg()\n\tif err != nil {\n\t\treturn err\n\t}\n\tr1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn err\n}\n\nfunc WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overlapped, croutine *byte) error {\n\terr := loadWSASendRecvMsg()\n\tif err != nil {\n\t\treturn err\n\t}\n\tr1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn err\n}\n\n// Invented structures to support what package os expects.\ntype Rusage struct {\n\tCreationTime Filetime\n\tExitTime     Filetime\n\tKernelTime   Filetime\n\tUserTime     Filetime\n}\n\ntype WaitStatus struct {\n\tExitCode uint32\n}\n\nfunc (w WaitStatus) Exited() bool { return true }\n\nfunc (w WaitStatus) ExitStatus() int { return int(w.ExitCode) }\n\nfunc (w WaitStatus) Signal() Signal { return -1 }\n\nfunc (w WaitStatus) CoreDump() bool { return false }\n\nfunc (w WaitStatus) Stopped() bool { return false }\n\nfunc (w WaitStatus) Continued() bool { return false }\n\nfunc (w WaitStatus) StopSignal() Signal { return -1 }\n\nfunc (w WaitStatus) Signaled() bool { return false }\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n// Timespec is an invented structure on Windows, but here for\n// consistency with the corresponding package for other operating systems.\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\nfunc TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }\n\nfunc NsecToTimespec(nsec int64) (ts Timespec) {\n\tts.Sec = nsec / 1e9\n\tts.Nsec = nsec % 1e9\n\treturn\n}\n\n// TODO(brainman): fix all needed for net\n\nfunc Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS }\n\nfunc Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tl := int32(unsafe.Sizeof(rsa))\n\tn32, err := recvfrom(fd, p, int32(flags), &rsa, &l)\n\tn = int(n32)\n\tif err != nil {\n\t\treturn\n\t}\n\tfrom, err = rsa.Sockaddr()\n\treturn\n}\n\nfunc Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) {\n\tptr, l, err := to.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn sendto(fd, p, int32(flags), ptr, l)\n}\n\nfunc SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS }\n\n// The Linger struct is wrong but we only noticed after Go 1.\n// sysLinger is the real system call structure.\n\n// BUG(brainman): The definition of Linger is not appropriate for direct use\n// with Setsockopt and Getsockopt.\n// Use SetsockoptLinger instead.\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype sysLinger struct {\n\tOnoff  uint16\n\tLinger uint16\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\nfunc GetsockoptInt(fd Handle, level, opt int) (int, error) {\n\tv := int32(0)\n\tl := int32(unsafe.Sizeof(v))\n\terr := Getsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), &l)\n\treturn int(v), err\n}\n\nfunc SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) {\n\tsys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)}\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys)))\n}\n\nfunc SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) {\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4)\n}\n\nfunc SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) {\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq)))\n}\n\nfunc SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) {\n\treturn syscall.EWINDOWS\n}\n\nfunc EnumProcesses(processIds []uint32, bytesReturned *uint32) error {\n\t// EnumProcesses syscall expects the size parameter to be in bytes, but the code generated with mksyscall uses\n\t// the length of the processIds slice instead. Hence, this wrapper function is added to fix the discrepancy.\n\tvar p *uint32\n\tif len(processIds) > 0 {\n\t\tp = &processIds[0]\n\t}\n\tsize := uint32(len(processIds) * 4)\n\treturn enumProcesses(p, size, bytesReturned)\n}\n\nfunc Getpid() (pid int) { return int(GetCurrentProcessId()) }\n\nfunc FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) {\n\t// NOTE(rsc): The Win32finddata struct is wrong for the system call:\n\t// the two paths are each one uint16 short. Use the correct struct,\n\t// a win32finddata1, and then copy the results out.\n\t// There is no loss of expressivity here, because the final\n\t// uint16, if it is used, is supposed to be a NUL, and Go doesn't need that.\n\t// For Go 1.1, we might avoid the allocation of win32finddata1 here\n\t// by adding a final Bug [2]uint16 field to the struct and then\n\t// adjusting the fields in the result directly.\n\tvar data1 win32finddata1\n\thandle, err = findFirstFile1(name, &data1)\n\tif err == nil {\n\t\tcopyFindData(data, &data1)\n\t}\n\treturn\n}\n\nfunc FindNextFile(handle Handle, data *Win32finddata) (err error) {\n\tvar data1 win32finddata1\n\terr = findNextFile1(handle, &data1)\n\tif err == nil {\n\t\tcopyFindData(data, &data1)\n\t}\n\treturn\n}\n\nfunc getProcessEntry(pid int) (*ProcessEntry32, error) {\n\tsnapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer CloseHandle(snapshot)\n\tvar procEntry ProcessEntry32\n\tprocEntry.Size = uint32(unsafe.Sizeof(procEntry))\n\tif err = Process32First(snapshot, &procEntry); err != nil {\n\t\treturn nil, err\n\t}\n\tfor {\n\t\tif procEntry.ProcessID == uint32(pid) {\n\t\t\treturn &procEntry, nil\n\t\t}\n\t\terr = Process32Next(snapshot, &procEntry)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n}\n\nfunc Getppid() (ppid int) {\n\tpe, err := getProcessEntry(Getpid())\n\tif err != nil {\n\t\treturn -1\n\t}\n\treturn int(pe.ParentProcessID)\n}\n\n// TODO(brainman): fix all needed for os\nfunc Fchdir(fd Handle) (err error)             { return syscall.EWINDOWS }\nfunc Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS }\nfunc Symlink(path, link string) (err error)    { return syscall.EWINDOWS }\n\nfunc Fchmod(fd Handle, mode uint32) (err error)        { return syscall.EWINDOWS }\nfunc Chown(path string, uid int, gid int) (err error)  { return syscall.EWINDOWS }\nfunc Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS }\nfunc Fchown(fd Handle, uid int, gid int) (err error)   { return syscall.EWINDOWS }\n\nfunc Getuid() (uid int)                  { return -1 }\nfunc Geteuid() (euid int)                { return -1 }\nfunc Getgid() (gid int)                  { return -1 }\nfunc Getegid() (egid int)                { return -1 }\nfunc Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS }\n\ntype Signal int\n\nfunc (s Signal) Signal() {}\n\nfunc (s Signal) String() string {\n\tif 0 <= s && int(s) < len(signals) {\n\t\tstr := signals[s]\n\t\tif str != \"\" {\n\t\t\treturn str\n\t\t}\n\t}\n\treturn \"signal \" + itoa(int(s))\n}\n\nfunc LoadCreateSymbolicLink() error {\n\treturn procCreateSymbolicLinkW.Find()\n}\n\n// Readlink returns the destination of the named symbolic link.\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tfd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING,\n\t\tFILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\tdefer CloseHandle(fd)\n\n\trdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE)\n\tvar bytesReturned uint32\n\terr = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\trdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0]))\n\tvar s string\n\tswitch rdb.ReparseTag {\n\tcase IO_REPARSE_TAG_SYMLINK:\n\t\tdata := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer))\n\t\tp := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0]))\n\t\ts = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2])\n\tcase IO_REPARSE_TAG_MOUNT_POINT:\n\t\tdata := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer))\n\t\tp := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0]))\n\t\ts = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2])\n\tdefault:\n\t\t// the path is not a symlink or junction but another type of reparse\n\t\t// point\n\t\treturn -1, syscall.ENOENT\n\t}\n\tn = copy(buf, []byte(s))\n\n\treturn n, nil\n}\n\n// GUIDFromString parses a string in the form of\n// \"{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\" into a GUID.\nfunc GUIDFromString(str string) (GUID, error) {\n\tguid := GUID{}\n\tstr16, err := syscall.UTF16PtrFromString(str)\n\tif err != nil {\n\t\treturn guid, err\n\t}\n\terr = clsidFromString(str16, &guid)\n\tif err != nil {\n\t\treturn guid, err\n\t}\n\treturn guid, nil\n}\n\n// GenerateGUID creates a new random GUID.\nfunc GenerateGUID() (GUID, error) {\n\tguid := GUID{}\n\terr := coCreateGuid(&guid)\n\tif err != nil {\n\t\treturn guid, err\n\t}\n\treturn guid, nil\n}\n\n// String returns the canonical string form of the GUID,\n// in the form of \"{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\".\nfunc (guid GUID) String() string {\n\tvar str [100]uint16\n\tchars := stringFromGUID2(&guid, &str[0], int32(len(str)))\n\tif chars <= 1 {\n\t\treturn \"\"\n\t}\n\treturn string(utf16.Decode(str[:chars-1]))\n}\n\n// KnownFolderPath returns a well-known folder path for the current user, specified by one of\n// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag.\nfunc KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) {\n\treturn Token(0).KnownFolderPath(folderID, flags)\n}\n\n// KnownFolderPath returns a well-known folder path for the user token, specified by one of\n// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag.\nfunc (t Token) KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) {\n\tvar p *uint16\n\terr := shGetKnownFolderPath(folderID, flags, t, &p)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer CoTaskMemFree(unsafe.Pointer(p))\n\treturn UTF16PtrToString(p), nil\n}\n\n// RtlGetVersion returns the version of the underlying operating system, ignoring\n// manifest semantics but is affected by the application compatibility layer.\nfunc RtlGetVersion() *OsVersionInfoEx {\n\tinfo := &OsVersionInfoEx{}\n\tinfo.osVersionInfoSize = uint32(unsafe.Sizeof(*info))\n\t// According to documentation, this function always succeeds.\n\t// The function doesn't even check the validity of the\n\t// osVersionInfoSize member. Disassembling ntdll.dll indicates\n\t// that the documentation is indeed correct about that.\n\t_ = rtlGetVersion(info)\n\treturn info\n}\n\n// RtlGetNtVersionNumbers returns the version of the underlying operating system,\n// ignoring manifest semantics and the application compatibility layer.\nfunc RtlGetNtVersionNumbers() (majorVersion, minorVersion, buildNumber uint32) {\n\trtlGetNtVersionNumbers(&majorVersion, &minorVersion, &buildNumber)\n\tbuildNumber &= 0xffff\n\treturn\n}\n\n// GetProcessPreferredUILanguages retrieves the process preferred UI languages.\nfunc GetProcessPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getProcessPreferredUILanguages)\n}\n\n// GetThreadPreferredUILanguages retrieves the thread preferred UI languages for the current thread.\nfunc GetThreadPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getThreadPreferredUILanguages)\n}\n\n// GetUserPreferredUILanguages retrieves information about the user preferred UI languages.\nfunc GetUserPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getUserPreferredUILanguages)\n}\n\n// GetSystemPreferredUILanguages retrieves the system preferred UI languages.\nfunc GetSystemPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getSystemPreferredUILanguages)\n}\n\nfunc getUILanguages(flags uint32, f func(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) error) ([]string, error) {\n\tsize := uint32(128)\n\tfor {\n\t\tvar numLanguages uint32\n\t\tbuf := make([]uint16, size)\n\t\terr := f(flags, &numLanguages, &buf[0], &size)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tbuf = buf[:size]\n\t\tif numLanguages == 0 || len(buf) == 0 { // GetProcessPreferredUILanguages may return numLanguages==0 with \"\\0\\0\"\n\t\t\treturn []string{}, nil\n\t\t}\n\t\tif buf[len(buf)-1] == 0 {\n\t\t\tbuf = buf[:len(buf)-1] // remove terminating null\n\t\t}\n\t\tlanguages := make([]string, 0, numLanguages)\n\t\tfrom := 0\n\t\tfor i, c := range buf {\n\t\t\tif c == 0 {\n\t\t\t\tlanguages = append(languages, string(utf16.Decode(buf[from:i])))\n\t\t\t\tfrom = i + 1\n\t\t\t}\n\t\t}\n\t\treturn languages, nil\n\t}\n}\n\nfunc SetConsoleCursorPosition(console Handle, position Coord) error {\n\treturn setConsoleCursorPosition(console, *((*uint32)(unsafe.Pointer(&position))))\n}\n\nfunc GetStartupInfo(startupInfo *StartupInfo) error {\n\tgetStartupInfo(startupInfo)\n\treturn nil\n}\n\nfunc (s NTStatus) Errno() syscall.Errno {\n\treturn rtlNtStatusToDosErrorNoTeb(s)\n}\n\nfunc langID(pri, sub uint16) uint32 { return uint32(sub)<<10 | uint32(pri) }\n\nfunc (s NTStatus) Error() string {\n\tb := make([]uint16, 300)\n\tn, err := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY, modntdll.Handle(), uint32(s), langID(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil)\n\tif err != nil {\n\t\treturn fmt.Sprintf(\"NTSTATUS 0x%08x\", uint32(s))\n\t}\n\t// trim terminating \\r and \\n\n\tfor ; n > 0 && (b[n-1] == '\\n' || b[n-1] == '\\r'); n-- {\n\t}\n\treturn string(utf16.Decode(b[:n]))\n}\n\n// NewNTUnicodeString returns a new NTUnicodeString structure for use with native\n// NT APIs that work over the NTUnicodeString type. Note that most Windows APIs\n// do not use NTUnicodeString, and instead UTF16PtrFromString should be used for\n// the more common *uint16 string type.\nfunc NewNTUnicodeString(s string) (*NTUnicodeString, error) {\n\tvar u NTUnicodeString\n\ts16, err := UTF16PtrFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tRtlInitUnicodeString(&u, s16)\n\treturn &u, nil\n}\n\n// Slice returns a uint16 slice that aliases the data in the NTUnicodeString.\nfunc (s *NTUnicodeString) Slice() []uint16 {\n\tslice := unsafe.Slice(s.Buffer, s.MaximumLength)\n\treturn slice[:s.Length]\n}\n\nfunc (s *NTUnicodeString) String() string {\n\treturn UTF16ToString(s.Slice())\n}\n\n// NewNTString returns a new NTString structure for use with native\n// NT APIs that work over the NTString type. Note that most Windows APIs\n// do not use NTString, and instead UTF16PtrFromString should be used for\n// the more common *uint16 string type.\nfunc NewNTString(s string) (*NTString, error) {\n\tvar nts NTString\n\ts8, err := BytePtrFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tRtlInitString(&nts, s8)\n\treturn &nts, nil\n}\n\n// Slice returns a byte slice that aliases the data in the NTString.\nfunc (s *NTString) Slice() []byte {\n\tslice := unsafe.Slice(s.Buffer, s.MaximumLength)\n\treturn slice[:s.Length]\n}\n\nfunc (s *NTString) String() string {\n\treturn ByteSliceToString(s.Slice())\n}\n\n// FindResource resolves a resource of the given name and resource type.\nfunc FindResource(module Handle, name, resType ResourceIDOrString) (Handle, error) {\n\tvar namePtr, resTypePtr uintptr\n\tvar name16, resType16 *uint16\n\tvar err error\n\tresolvePtr := func(i interface{}, keep **uint16) (uintptr, error) {\n\t\tswitch v := i.(type) {\n\t\tcase string:\n\t\t\t*keep, err = UTF16PtrFromString(v)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\treturn uintptr(unsafe.Pointer(*keep)), nil\n\t\tcase ResourceID:\n\t\t\treturn uintptr(v), nil\n\t\t}\n\t\treturn 0, errorspkg.New(\"parameter must be a ResourceID or a string\")\n\t}\n\tnamePtr, err = resolvePtr(name, &name16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tresTypePtr, err = resolvePtr(resType, &resType16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tresInfo, err := findResource(module, namePtr, resTypePtr)\n\truntime.KeepAlive(name16)\n\truntime.KeepAlive(resType16)\n\treturn resInfo, err\n}\n\nfunc LoadResourceData(module, resInfo Handle) (data []byte, err error) {\n\tsize, err := SizeofResource(module, resInfo)\n\tif err != nil {\n\t\treturn\n\t}\n\tresData, err := LoadResource(module, resInfo)\n\tif err != nil {\n\t\treturn\n\t}\n\tptr, err := LockResource(resData)\n\tif err != nil {\n\t\treturn\n\t}\n\tdata = unsafe.Slice((*byte)(unsafe.Pointer(ptr)), size)\n\treturn\n}\n\n// PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page.\ntype PSAPI_WORKING_SET_EX_BLOCK uint64\n\n// Valid returns the validity of this page.\n// If this bit is 1, the subsequent members are valid; otherwise they should be ignored.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool {\n\treturn (b & 1) == 1\n}\n\n// ShareCount is the number of processes that share this page. The maximum value of this member is 7.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 {\n\treturn b.intField(1, 3)\n}\n\n// Win32Protection is the memory protection attributes of the page. For a list of values, see\n// https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 {\n\treturn b.intField(4, 11)\n}\n\n// Shared returns the shared status of this page.\n// If this bit is 1, the page can be shared.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool {\n\treturn (b & (1 << 15)) == 1\n}\n\n// Node is the NUMA node. The maximum value of this member is 63.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 {\n\treturn b.intField(16, 6)\n}\n\n// Locked returns the locked status of this page.\n// If this bit is 1, the virtual page is locked in physical memory.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool {\n\treturn (b & (1 << 22)) == 1\n}\n\n// LargePage returns the large page status of this page.\n// If this bit is 1, the page is a large page.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool {\n\treturn (b & (1 << 23)) == 1\n}\n\n// Bad returns the bad status of this page.\n// If this bit is 1, the page is has been reported as bad.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool {\n\treturn (b & (1 << 31)) == 1\n}\n\n// intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 {\n\tvar mask PSAPI_WORKING_SET_EX_BLOCK\n\tfor pos := start; pos < start+length; pos++ {\n\t\tmask |= (1 << pos)\n\t}\n\n\tmasked := b & mask\n\treturn uint64(masked >> start)\n}\n\n// PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process.\ntype PSAPI_WORKING_SET_EX_INFORMATION struct {\n\t// The virtual address.\n\tVirtualAddress Pointer\n\t// A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress.\n\tVirtualAttributes PSAPI_WORKING_SET_EX_BLOCK\n}\n\n// CreatePseudoConsole creates a windows pseudo console.\nfunc CreatePseudoConsole(size Coord, in Handle, out Handle, flags uint32, pconsole *Handle) error {\n\t// We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only\n\t// accept arguments that can be casted to uintptr, and Coord can't.\n\treturn createPseudoConsole(*((*uint32)(unsafe.Pointer(&size))), in, out, flags, pconsole)\n}\n\n// ResizePseudoConsole resizes the internal buffers of the pseudo console to the width and height specified in `size`.\nfunc ResizePseudoConsole(pconsole Handle, size Coord) error {\n\t// We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only\n\t// accept arguments that can be casted to uintptr, and Coord can't.\n\treturn resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size))))\n}\n\n// DCB constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb.\nconst (\n\tCBR_110    = 110\n\tCBR_300    = 300\n\tCBR_600    = 600\n\tCBR_1200   = 1200\n\tCBR_2400   = 2400\n\tCBR_4800   = 4800\n\tCBR_9600   = 9600\n\tCBR_14400  = 14400\n\tCBR_19200  = 19200\n\tCBR_38400  = 38400\n\tCBR_57600  = 57600\n\tCBR_115200 = 115200\n\tCBR_128000 = 128000\n\tCBR_256000 = 256000\n\n\tDTR_CONTROL_DISABLE   = 0x00000000\n\tDTR_CONTROL_ENABLE    = 0x00000010\n\tDTR_CONTROL_HANDSHAKE = 0x00000020\n\n\tRTS_CONTROL_DISABLE   = 0x00000000\n\tRTS_CONTROL_ENABLE    = 0x00001000\n\tRTS_CONTROL_HANDSHAKE = 0x00002000\n\tRTS_CONTROL_TOGGLE    = 0x00003000\n\n\tNOPARITY    = 0\n\tODDPARITY   = 1\n\tEVENPARITY  = 2\n\tMARKPARITY  = 3\n\tSPACEPARITY = 4\n\n\tONESTOPBIT   = 0\n\tONE5STOPBITS = 1\n\tTWOSTOPBITS  = 2\n)\n\n// EscapeCommFunction constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction.\nconst (\n\tSETXOFF  = 1\n\tSETXON   = 2\n\tSETRTS   = 3\n\tCLRRTS   = 4\n\tSETDTR   = 5\n\tCLRDTR   = 6\n\tSETBREAK = 8\n\tCLRBREAK = 9\n)\n\n// PurgeComm constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purgecomm.\nconst (\n\tPURGE_TXABORT = 0x0001\n\tPURGE_RXABORT = 0x0002\n\tPURGE_TXCLEAR = 0x0004\n\tPURGE_RXCLEAR = 0x0008\n)\n\n// SetCommMask constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setcommmask.\nconst (\n\tEV_RXCHAR  = 0x0001\n\tEV_RXFLAG  = 0x0002\n\tEV_TXEMPTY = 0x0004\n\tEV_CTS     = 0x0008\n\tEV_DSR     = 0x0010\n\tEV_RLSD    = 0x0020\n\tEV_BREAK   = 0x0040\n\tEV_ERR     = 0x0080\n\tEV_RING    = 0x0100\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"net\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// NTStatus corresponds with NTSTATUS, error values returned by ntdll.dll and\n// other native functions.\ntype NTStatus uint32\n\nconst (\n\t// Invented values to support what package os expects.\n\tO_RDONLY   = 0x00000\n\tO_WRONLY   = 0x00001\n\tO_RDWR     = 0x00002\n\tO_CREAT    = 0x00040\n\tO_EXCL     = 0x00080\n\tO_NOCTTY   = 0x00100\n\tO_TRUNC    = 0x00200\n\tO_NONBLOCK = 0x00800\n\tO_APPEND   = 0x00400\n\tO_SYNC     = 0x01000\n\tO_ASYNC    = 0x02000\n\tO_CLOEXEC  = 0x80000\n)\n\nconst (\n\t// More invented values for signals\n\tSIGHUP  = Signal(0x1)\n\tSIGINT  = Signal(0x2)\n\tSIGQUIT = Signal(0x3)\n\tSIGILL  = Signal(0x4)\n\tSIGTRAP = Signal(0x5)\n\tSIGABRT = Signal(0x6)\n\tSIGBUS  = Signal(0x7)\n\tSIGFPE  = Signal(0x8)\n\tSIGKILL = Signal(0x9)\n\tSIGSEGV = Signal(0xb)\n\tSIGPIPE = Signal(0xd)\n\tSIGALRM = Signal(0xe)\n\tSIGTERM = Signal(0xf)\n)\n\nvar signals = [...]string{\n\t1:  \"hangup\",\n\t2:  \"interrupt\",\n\t3:  \"quit\",\n\t4:  \"illegal instruction\",\n\t5:  \"trace/breakpoint trap\",\n\t6:  \"aborted\",\n\t7:  \"bus error\",\n\t8:  \"floating point exception\",\n\t9:  \"killed\",\n\t10: \"user defined signal 1\",\n\t11: \"segmentation fault\",\n\t12: \"user defined signal 2\",\n\t13: \"broken pipe\",\n\t14: \"alarm clock\",\n\t15: \"terminated\",\n}\n\nconst (\n\tFILE_READ_DATA        = 0x00000001\n\tFILE_READ_ATTRIBUTES  = 0x00000080\n\tFILE_READ_EA          = 0x00000008\n\tFILE_WRITE_DATA       = 0x00000002\n\tFILE_WRITE_ATTRIBUTES = 0x00000100\n\tFILE_WRITE_EA         = 0x00000010\n\tFILE_APPEND_DATA      = 0x00000004\n\tFILE_EXECUTE          = 0x00000020\n\n\tFILE_GENERIC_READ    = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE\n\tFILE_GENERIC_WRITE   = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE\n\tFILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE\n\n\tFILE_LIST_DIRECTORY = 0x00000001\n\tFILE_TRAVERSE       = 0x00000020\n\n\tFILE_SHARE_READ   = 0x00000001\n\tFILE_SHARE_WRITE  = 0x00000002\n\tFILE_SHARE_DELETE = 0x00000004\n\n\tFILE_ATTRIBUTE_READONLY              = 0x00000001\n\tFILE_ATTRIBUTE_HIDDEN                = 0x00000002\n\tFILE_ATTRIBUTE_SYSTEM                = 0x00000004\n\tFILE_ATTRIBUTE_DIRECTORY             = 0x00000010\n\tFILE_ATTRIBUTE_ARCHIVE               = 0x00000020\n\tFILE_ATTRIBUTE_DEVICE                = 0x00000040\n\tFILE_ATTRIBUTE_NORMAL                = 0x00000080\n\tFILE_ATTRIBUTE_TEMPORARY             = 0x00000100\n\tFILE_ATTRIBUTE_SPARSE_FILE           = 0x00000200\n\tFILE_ATTRIBUTE_REPARSE_POINT         = 0x00000400\n\tFILE_ATTRIBUTE_COMPRESSED            = 0x00000800\n\tFILE_ATTRIBUTE_OFFLINE               = 0x00001000\n\tFILE_ATTRIBUTE_NOT_CONTENT_INDEXED   = 0x00002000\n\tFILE_ATTRIBUTE_ENCRYPTED             = 0x00004000\n\tFILE_ATTRIBUTE_INTEGRITY_STREAM      = 0x00008000\n\tFILE_ATTRIBUTE_VIRTUAL               = 0x00010000\n\tFILE_ATTRIBUTE_NO_SCRUB_DATA         = 0x00020000\n\tFILE_ATTRIBUTE_RECALL_ON_OPEN        = 0x00040000\n\tFILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x00400000\n\n\tINVALID_FILE_ATTRIBUTES = 0xffffffff\n\n\tCREATE_NEW        = 1\n\tCREATE_ALWAYS     = 2\n\tOPEN_EXISTING     = 3\n\tOPEN_ALWAYS       = 4\n\tTRUNCATE_EXISTING = 5\n\n\tFILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000\n\tFILE_FLAG_FIRST_PIPE_INSTANCE   = 0x00080000\n\tFILE_FLAG_OPEN_NO_RECALL        = 0x00100000\n\tFILE_FLAG_OPEN_REPARSE_POINT    = 0x00200000\n\tFILE_FLAG_SESSION_AWARE         = 0x00800000\n\tFILE_FLAG_POSIX_SEMANTICS       = 0x01000000\n\tFILE_FLAG_BACKUP_SEMANTICS      = 0x02000000\n\tFILE_FLAG_DELETE_ON_CLOSE       = 0x04000000\n\tFILE_FLAG_SEQUENTIAL_SCAN       = 0x08000000\n\tFILE_FLAG_RANDOM_ACCESS         = 0x10000000\n\tFILE_FLAG_NO_BUFFERING          = 0x20000000\n\tFILE_FLAG_OVERLAPPED            = 0x40000000\n\tFILE_FLAG_WRITE_THROUGH         = 0x80000000\n\n\tHANDLE_FLAG_INHERIT    = 0x00000001\n\tSTARTF_USESTDHANDLES   = 0x00000100\n\tSTARTF_USESHOWWINDOW   = 0x00000001\n\tDUPLICATE_CLOSE_SOURCE = 0x00000001\n\tDUPLICATE_SAME_ACCESS  = 0x00000002\n\n\tSTD_INPUT_HANDLE  = -10 & (1<<32 - 1)\n\tSTD_OUTPUT_HANDLE = -11 & (1<<32 - 1)\n\tSTD_ERROR_HANDLE  = -12 & (1<<32 - 1)\n\n\tFILE_BEGIN   = 0\n\tFILE_CURRENT = 1\n\tFILE_END     = 2\n\n\tLANG_ENGLISH       = 0x09\n\tSUBLANG_ENGLISH_US = 0x01\n\n\tFORMAT_MESSAGE_ALLOCATE_BUFFER = 256\n\tFORMAT_MESSAGE_IGNORE_INSERTS  = 512\n\tFORMAT_MESSAGE_FROM_STRING     = 1024\n\tFORMAT_MESSAGE_FROM_HMODULE    = 2048\n\tFORMAT_MESSAGE_FROM_SYSTEM     = 4096\n\tFORMAT_MESSAGE_ARGUMENT_ARRAY  = 8192\n\tFORMAT_MESSAGE_MAX_WIDTH_MASK  = 255\n\n\tMAX_PATH      = 260\n\tMAX_LONG_PATH = 32768\n\n\tMAX_MODULE_NAME32 = 255\n\n\tMAX_COMPUTERNAME_LENGTH = 15\n\n\tMAX_DHCPV6_DUID_LENGTH = 130\n\n\tMAX_DNS_SUFFIX_STRING_LENGTH = 256\n\n\tTIME_ZONE_ID_UNKNOWN  = 0\n\tTIME_ZONE_ID_STANDARD = 1\n\n\tTIME_ZONE_ID_DAYLIGHT = 2\n\tIGNORE                = 0\n\tINFINITE              = 0xffffffff\n\n\tWAIT_ABANDONED = 0x00000080\n\tWAIT_OBJECT_0  = 0x00000000\n\tWAIT_FAILED    = 0xFFFFFFFF\n\n\t// Access rights for process.\n\tPROCESS_CREATE_PROCESS            = 0x0080\n\tPROCESS_CREATE_THREAD             = 0x0002\n\tPROCESS_DUP_HANDLE                = 0x0040\n\tPROCESS_QUERY_INFORMATION         = 0x0400\n\tPROCESS_QUERY_LIMITED_INFORMATION = 0x1000\n\tPROCESS_SET_INFORMATION           = 0x0200\n\tPROCESS_SET_QUOTA                 = 0x0100\n\tPROCESS_SUSPEND_RESUME            = 0x0800\n\tPROCESS_TERMINATE                 = 0x0001\n\tPROCESS_VM_OPERATION              = 0x0008\n\tPROCESS_VM_READ                   = 0x0010\n\tPROCESS_VM_WRITE                  = 0x0020\n\n\t// Access rights for thread.\n\tTHREAD_DIRECT_IMPERSONATION      = 0x0200\n\tTHREAD_GET_CONTEXT               = 0x0008\n\tTHREAD_IMPERSONATE               = 0x0100\n\tTHREAD_QUERY_INFORMATION         = 0x0040\n\tTHREAD_QUERY_LIMITED_INFORMATION = 0x0800\n\tTHREAD_SET_CONTEXT               = 0x0010\n\tTHREAD_SET_INFORMATION           = 0x0020\n\tTHREAD_SET_LIMITED_INFORMATION   = 0x0400\n\tTHREAD_SET_THREAD_TOKEN          = 0x0080\n\tTHREAD_SUSPEND_RESUME            = 0x0002\n\tTHREAD_TERMINATE                 = 0x0001\n\n\tFILE_MAP_COPY    = 0x01\n\tFILE_MAP_WRITE   = 0x02\n\tFILE_MAP_READ    = 0x04\n\tFILE_MAP_EXECUTE = 0x20\n\n\tCTRL_C_EVENT        = 0\n\tCTRL_BREAK_EVENT    = 1\n\tCTRL_CLOSE_EVENT    = 2\n\tCTRL_LOGOFF_EVENT   = 5\n\tCTRL_SHUTDOWN_EVENT = 6\n\n\t// Windows reserves errors >= 1<<29 for application use.\n\tAPPLICATION_ERROR = 1 << 29\n)\n\nconst (\n\t// Process creation flags.\n\tCREATE_BREAKAWAY_FROM_JOB        = 0x01000000\n\tCREATE_DEFAULT_ERROR_MODE        = 0x04000000\n\tCREATE_NEW_CONSOLE               = 0x00000010\n\tCREATE_NEW_PROCESS_GROUP         = 0x00000200\n\tCREATE_NO_WINDOW                 = 0x08000000\n\tCREATE_PROTECTED_PROCESS         = 0x00040000\n\tCREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000\n\tCREATE_SEPARATE_WOW_VDM          = 0x00000800\n\tCREATE_SHARED_WOW_VDM            = 0x00001000\n\tCREATE_SUSPENDED                 = 0x00000004\n\tCREATE_UNICODE_ENVIRONMENT       = 0x00000400\n\tDEBUG_ONLY_THIS_PROCESS          = 0x00000002\n\tDEBUG_PROCESS                    = 0x00000001\n\tDETACHED_PROCESS                 = 0x00000008\n\tEXTENDED_STARTUPINFO_PRESENT     = 0x00080000\n\tINHERIT_PARENT_AFFINITY          = 0x00010000\n)\n\nconst (\n\t// attributes for ProcThreadAttributeList\n\tPROC_THREAD_ATTRIBUTE_PARENT_PROCESS    = 0x00020000\n\tPROC_THREAD_ATTRIBUTE_HANDLE_LIST       = 0x00020002\n\tPROC_THREAD_ATTRIBUTE_GROUP_AFFINITY    = 0x00030003\n\tPROC_THREAD_ATTRIBUTE_PREFERRED_NODE    = 0x00020004\n\tPROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR   = 0x00030005\n\tPROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 0x00020007\n\tPROC_THREAD_ATTRIBUTE_UMS_THREAD        = 0x00030006\n\tPROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL  = 0x0002000b\n\tPROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE     = 0x00020016\n)\n\nconst (\n\t// flags for CreateToolhelp32Snapshot\n\tTH32CS_SNAPHEAPLIST = 0x01\n\tTH32CS_SNAPPROCESS  = 0x02\n\tTH32CS_SNAPTHREAD   = 0x04\n\tTH32CS_SNAPMODULE   = 0x08\n\tTH32CS_SNAPMODULE32 = 0x10\n\tTH32CS_SNAPALL      = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD\n\tTH32CS_INHERIT      = 0x80000000\n)\n\nconst (\n\t// flags for EnumProcessModulesEx\n\tLIST_MODULES_32BIT   = 0x01\n\tLIST_MODULES_64BIT   = 0x02\n\tLIST_MODULES_ALL     = 0x03\n\tLIST_MODULES_DEFAULT = 0x00\n)\n\nconst (\n\t// filters for ReadDirectoryChangesW and FindFirstChangeNotificationW\n\tFILE_NOTIFY_CHANGE_FILE_NAME   = 0x001\n\tFILE_NOTIFY_CHANGE_DIR_NAME    = 0x002\n\tFILE_NOTIFY_CHANGE_ATTRIBUTES  = 0x004\n\tFILE_NOTIFY_CHANGE_SIZE        = 0x008\n\tFILE_NOTIFY_CHANGE_LAST_WRITE  = 0x010\n\tFILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020\n\tFILE_NOTIFY_CHANGE_CREATION    = 0x040\n\tFILE_NOTIFY_CHANGE_SECURITY    = 0x100\n)\n\nconst (\n\t// do not reorder\n\tFILE_ACTION_ADDED = iota + 1\n\tFILE_ACTION_REMOVED\n\tFILE_ACTION_MODIFIED\n\tFILE_ACTION_RENAMED_OLD_NAME\n\tFILE_ACTION_RENAMED_NEW_NAME\n)\n\nconst (\n\t// wincrypt.h\n\t/* certenrolld_begin -- PROV_RSA_*/\n\tPROV_RSA_FULL      = 1\n\tPROV_RSA_SIG       = 2\n\tPROV_DSS           = 3\n\tPROV_FORTEZZA      = 4\n\tPROV_MS_EXCHANGE   = 5\n\tPROV_SSL           = 6\n\tPROV_RSA_SCHANNEL  = 12\n\tPROV_DSS_DH        = 13\n\tPROV_EC_ECDSA_SIG  = 14\n\tPROV_EC_ECNRA_SIG  = 15\n\tPROV_EC_ECDSA_FULL = 16\n\tPROV_EC_ECNRA_FULL = 17\n\tPROV_DH_SCHANNEL   = 18\n\tPROV_SPYRUS_LYNKS  = 20\n\tPROV_RNG           = 21\n\tPROV_INTEL_SEC     = 22\n\tPROV_REPLACE_OWF   = 23\n\tPROV_RSA_AES       = 24\n\n\t/* dwFlags definitions for CryptAcquireContext */\n\tCRYPT_VERIFYCONTEXT              = 0xF0000000\n\tCRYPT_NEWKEYSET                  = 0x00000008\n\tCRYPT_DELETEKEYSET               = 0x00000010\n\tCRYPT_MACHINE_KEYSET             = 0x00000020\n\tCRYPT_SILENT                     = 0x00000040\n\tCRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080\n\n\t/* Flags for PFXImportCertStore */\n\tCRYPT_EXPORTABLE                   = 0x00000001\n\tCRYPT_USER_PROTECTED               = 0x00000002\n\tCRYPT_USER_KEYSET                  = 0x00001000\n\tPKCS12_PREFER_CNG_KSP              = 0x00000100\n\tPKCS12_ALWAYS_CNG_KSP              = 0x00000200\n\tPKCS12_ALLOW_OVERWRITE_KEY         = 0x00004000\n\tPKCS12_NO_PERSIST_KEY              = 0x00008000\n\tPKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010\n\n\t/* Flags for CryptAcquireCertificatePrivateKey */\n\tCRYPT_ACQUIRE_CACHE_FLAG             = 0x00000001\n\tCRYPT_ACQUIRE_USE_PROV_INFO_FLAG     = 0x00000002\n\tCRYPT_ACQUIRE_COMPARE_KEY_FLAG       = 0x00000004\n\tCRYPT_ACQUIRE_NO_HEALING             = 0x00000008\n\tCRYPT_ACQUIRE_SILENT_FLAG            = 0x00000040\n\tCRYPT_ACQUIRE_WINDOW_HANDLE_FLAG     = 0x00000080\n\tCRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK  = 0x00070000\n\tCRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG  = 0x00010000\n\tCRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = 0x00020000\n\tCRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG   = 0x00040000\n\n\t/* pdwKeySpec for CryptAcquireCertificatePrivateKey */\n\tAT_KEYEXCHANGE       = 1\n\tAT_SIGNATURE         = 2\n\tCERT_NCRYPT_KEY_SPEC = 0xFFFFFFFF\n\n\t/* Default usage match type is AND with value zero */\n\tUSAGE_MATCH_TYPE_AND = 0\n\tUSAGE_MATCH_TYPE_OR  = 1\n\n\t/* msgAndCertEncodingType values for CertOpenStore function */\n\tX509_ASN_ENCODING   = 0x00000001\n\tPKCS_7_ASN_ENCODING = 0x00010000\n\n\t/* storeProvider values for CertOpenStore function */\n\tCERT_STORE_PROV_MSG               = 1\n\tCERT_STORE_PROV_MEMORY            = 2\n\tCERT_STORE_PROV_FILE              = 3\n\tCERT_STORE_PROV_REG               = 4\n\tCERT_STORE_PROV_PKCS7             = 5\n\tCERT_STORE_PROV_SERIALIZED        = 6\n\tCERT_STORE_PROV_FILENAME_A        = 7\n\tCERT_STORE_PROV_FILENAME_W        = 8\n\tCERT_STORE_PROV_FILENAME          = CERT_STORE_PROV_FILENAME_W\n\tCERT_STORE_PROV_SYSTEM_A          = 9\n\tCERT_STORE_PROV_SYSTEM_W          = 10\n\tCERT_STORE_PROV_SYSTEM            = CERT_STORE_PROV_SYSTEM_W\n\tCERT_STORE_PROV_COLLECTION        = 11\n\tCERT_STORE_PROV_SYSTEM_REGISTRY_A = 12\n\tCERT_STORE_PROV_SYSTEM_REGISTRY_W = 13\n\tCERT_STORE_PROV_SYSTEM_REGISTRY   = CERT_STORE_PROV_SYSTEM_REGISTRY_W\n\tCERT_STORE_PROV_PHYSICAL_W        = 14\n\tCERT_STORE_PROV_PHYSICAL          = CERT_STORE_PROV_PHYSICAL_W\n\tCERT_STORE_PROV_SMART_CARD_W      = 15\n\tCERT_STORE_PROV_SMART_CARD        = CERT_STORE_PROV_SMART_CARD_W\n\tCERT_STORE_PROV_LDAP_W            = 16\n\tCERT_STORE_PROV_LDAP              = CERT_STORE_PROV_LDAP_W\n\tCERT_STORE_PROV_PKCS12            = 17\n\n\t/* store characteristics (low WORD of flag) for CertOpenStore function */\n\tCERT_STORE_NO_CRYPT_RELEASE_FLAG            = 0x00000001\n\tCERT_STORE_SET_LOCALIZED_NAME_FLAG          = 0x00000002\n\tCERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004\n\tCERT_STORE_DELETE_FLAG                      = 0x00000010\n\tCERT_STORE_UNSAFE_PHYSICAL_FLAG             = 0x00000020\n\tCERT_STORE_SHARE_STORE_FLAG                 = 0x00000040\n\tCERT_STORE_SHARE_CONTEXT_FLAG               = 0x00000080\n\tCERT_STORE_MANIFOLD_FLAG                    = 0x00000100\n\tCERT_STORE_ENUM_ARCHIVED_FLAG               = 0x00000200\n\tCERT_STORE_UPDATE_KEYID_FLAG                = 0x00000400\n\tCERT_STORE_BACKUP_RESTORE_FLAG              = 0x00000800\n\tCERT_STORE_MAXIMUM_ALLOWED_FLAG             = 0x00001000\n\tCERT_STORE_CREATE_NEW_FLAG                  = 0x00002000\n\tCERT_STORE_OPEN_EXISTING_FLAG               = 0x00004000\n\tCERT_STORE_READONLY_FLAG                    = 0x00008000\n\n\t/* store locations (high WORD of flag) for CertOpenStore function */\n\tCERT_SYSTEM_STORE_CURRENT_USER               = 0x00010000\n\tCERT_SYSTEM_STORE_LOCAL_MACHINE              = 0x00020000\n\tCERT_SYSTEM_STORE_CURRENT_SERVICE            = 0x00040000\n\tCERT_SYSTEM_STORE_SERVICES                   = 0x00050000\n\tCERT_SYSTEM_STORE_USERS                      = 0x00060000\n\tCERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY  = 0x00070000\n\tCERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 0x00080000\n\tCERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE   = 0x00090000\n\tCERT_SYSTEM_STORE_UNPROTECTED_FLAG           = 0x40000000\n\tCERT_SYSTEM_STORE_RELOCATE_FLAG              = 0x80000000\n\n\t/* Miscellaneous high-WORD flags for CertOpenStore function */\n\tCERT_REGISTRY_STORE_REMOTE_FLAG      = 0x00010000\n\tCERT_REGISTRY_STORE_SERIALIZED_FLAG  = 0x00020000\n\tCERT_REGISTRY_STORE_ROAMING_FLAG     = 0x00040000\n\tCERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x00080000\n\tCERT_REGISTRY_STORE_LM_GPT_FLAG      = 0x01000000\n\tCERT_REGISTRY_STORE_CLIENT_GPT_FLAG  = 0x80000000\n\tCERT_FILE_STORE_COMMIT_ENABLE_FLAG   = 0x00010000\n\tCERT_LDAP_STORE_SIGN_FLAG            = 0x00010000\n\tCERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG  = 0x00020000\n\tCERT_LDAP_STORE_OPENED_FLAG          = 0x00040000\n\tCERT_LDAP_STORE_UNBIND_FLAG          = 0x00080000\n\n\t/* addDisposition values for CertAddCertificateContextToStore function */\n\tCERT_STORE_ADD_NEW                                 = 1\n\tCERT_STORE_ADD_USE_EXISTING                        = 2\n\tCERT_STORE_ADD_REPLACE_EXISTING                    = 3\n\tCERT_STORE_ADD_ALWAYS                              = 4\n\tCERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5\n\tCERT_STORE_ADD_NEWER                               = 6\n\tCERT_STORE_ADD_NEWER_INHERIT_PROPERTIES            = 7\n\n\t/* ErrorStatus values for CertTrustStatus struct */\n\tCERT_TRUST_NO_ERROR                          = 0x00000000\n\tCERT_TRUST_IS_NOT_TIME_VALID                 = 0x00000001\n\tCERT_TRUST_IS_REVOKED                        = 0x00000004\n\tCERT_TRUST_IS_NOT_SIGNATURE_VALID            = 0x00000008\n\tCERT_TRUST_IS_NOT_VALID_FOR_USAGE            = 0x00000010\n\tCERT_TRUST_IS_UNTRUSTED_ROOT                 = 0x00000020\n\tCERT_TRUST_REVOCATION_STATUS_UNKNOWN         = 0x00000040\n\tCERT_TRUST_IS_CYCLIC                         = 0x00000080\n\tCERT_TRUST_INVALID_EXTENSION                 = 0x00000100\n\tCERT_TRUST_INVALID_POLICY_CONSTRAINTS        = 0x00000200\n\tCERT_TRUST_INVALID_BASIC_CONSTRAINTS         = 0x00000400\n\tCERT_TRUST_INVALID_NAME_CONSTRAINTS          = 0x00000800\n\tCERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000\n\tCERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT   = 0x00002000\n\tCERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000\n\tCERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT      = 0x00008000\n\tCERT_TRUST_IS_PARTIAL_CHAIN                  = 0x00010000\n\tCERT_TRUST_CTL_IS_NOT_TIME_VALID             = 0x00020000\n\tCERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID        = 0x00040000\n\tCERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE        = 0x00080000\n\tCERT_TRUST_HAS_WEAK_SIGNATURE                = 0x00100000\n\tCERT_TRUST_IS_OFFLINE_REVOCATION             = 0x01000000\n\tCERT_TRUST_NO_ISSUANCE_CHAIN_POLICY          = 0x02000000\n\tCERT_TRUST_IS_EXPLICIT_DISTRUST              = 0x04000000\n\tCERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT    = 0x08000000\n\n\t/* InfoStatus values for CertTrustStatus struct */\n\tCERT_TRUST_HAS_EXACT_MATCH_ISSUER        = 0x00000001\n\tCERT_TRUST_HAS_KEY_MATCH_ISSUER          = 0x00000002\n\tCERT_TRUST_HAS_NAME_MATCH_ISSUER         = 0x00000004\n\tCERT_TRUST_IS_SELF_SIGNED                = 0x00000008\n\tCERT_TRUST_HAS_PREFERRED_ISSUER          = 0x00000100\n\tCERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY     = 0x00000400\n\tCERT_TRUST_HAS_VALID_NAME_CONSTRAINTS    = 0x00000400\n\tCERT_TRUST_IS_PEER_TRUSTED               = 0x00000800\n\tCERT_TRUST_HAS_CRL_VALIDITY_EXTENDED     = 0x00001000\n\tCERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 0x00002000\n\tCERT_TRUST_IS_CA_TRUSTED                 = 0x00004000\n\tCERT_TRUST_IS_COMPLEX_CHAIN              = 0x00010000\n\n\t/* Certificate Information Flags */\n\tCERT_INFO_VERSION_FLAG                 = 1\n\tCERT_INFO_SERIAL_NUMBER_FLAG           = 2\n\tCERT_INFO_SIGNATURE_ALGORITHM_FLAG     = 3\n\tCERT_INFO_ISSUER_FLAG                  = 4\n\tCERT_INFO_NOT_BEFORE_FLAG              = 5\n\tCERT_INFO_NOT_AFTER_FLAG               = 6\n\tCERT_INFO_SUBJECT_FLAG                 = 7\n\tCERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8\n\tCERT_INFO_ISSUER_UNIQUE_ID_FLAG        = 9\n\tCERT_INFO_SUBJECT_UNIQUE_ID_FLAG       = 10\n\tCERT_INFO_EXTENSION_FLAG               = 11\n\n\t/* dwFindType for CertFindCertificateInStore  */\n\tCERT_COMPARE_MASK                     = 0xFFFF\n\tCERT_COMPARE_SHIFT                    = 16\n\tCERT_COMPARE_ANY                      = 0\n\tCERT_COMPARE_SHA1_HASH                = 1\n\tCERT_COMPARE_NAME                     = 2\n\tCERT_COMPARE_ATTR                     = 3\n\tCERT_COMPARE_MD5_HASH                 = 4\n\tCERT_COMPARE_PROPERTY                 = 5\n\tCERT_COMPARE_PUBLIC_KEY               = 6\n\tCERT_COMPARE_HASH                     = CERT_COMPARE_SHA1_HASH\n\tCERT_COMPARE_NAME_STR_A               = 7\n\tCERT_COMPARE_NAME_STR_W               = 8\n\tCERT_COMPARE_KEY_SPEC                 = 9\n\tCERT_COMPARE_ENHKEY_USAGE             = 10\n\tCERT_COMPARE_CTL_USAGE                = CERT_COMPARE_ENHKEY_USAGE\n\tCERT_COMPARE_SUBJECT_CERT             = 11\n\tCERT_COMPARE_ISSUER_OF                = 12\n\tCERT_COMPARE_EXISTING                 = 13\n\tCERT_COMPARE_SIGNATURE_HASH           = 14\n\tCERT_COMPARE_KEY_IDENTIFIER           = 15\n\tCERT_COMPARE_CERT_ID                  = 16\n\tCERT_COMPARE_CROSS_CERT_DIST_POINTS   = 17\n\tCERT_COMPARE_PUBKEY_MD5_HASH          = 18\n\tCERT_COMPARE_SUBJECT_INFO_ACCESS      = 19\n\tCERT_COMPARE_HASH_STR                 = 20\n\tCERT_COMPARE_HAS_PRIVATE_KEY          = 21\n\tCERT_FIND_ANY                         = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SHA1_HASH                   = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_MD5_HASH                    = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SIGNATURE_HASH              = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_KEY_IDENTIFIER              = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT)\n\tCERT_FIND_HASH                        = CERT_FIND_SHA1_HASH\n\tCERT_FIND_PROPERTY                    = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_PUBLIC_KEY                  = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SUBJECT_NAME                = (CERT_COMPARE_NAME<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_SUBJECT_ATTR                = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_ISSUER_NAME                 = (CERT_COMPARE_NAME<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_ISSUER_ATTR                 = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_SUBJECT_STR_A               = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_SUBJECT_STR_W               = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_SUBJECT_STR                 = CERT_FIND_SUBJECT_STR_W\n\tCERT_FIND_ISSUER_STR_A                = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_ISSUER_STR_W                = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_ISSUER_STR                  = CERT_FIND_ISSUER_STR_W\n\tCERT_FIND_KEY_SPEC                    = (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT)\n\tCERT_FIND_ENHKEY_USAGE                = (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT)\n\tCERT_FIND_CTL_USAGE                   = CERT_FIND_ENHKEY_USAGE\n\tCERT_FIND_SUBJECT_CERT                = (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT)\n\tCERT_FIND_ISSUER_OF                   = (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT)\n\tCERT_FIND_EXISTING                    = (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT)\n\tCERT_FIND_CERT_ID                     = (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT)\n\tCERT_FIND_CROSS_CERT_DIST_POINTS      = (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT)\n\tCERT_FIND_PUBKEY_MD5_HASH             = (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SUBJECT_INFO_ACCESS         = (CERT_COMPARE_SUBJECT_INFO_ACCESS << CERT_COMPARE_SHIFT)\n\tCERT_FIND_HASH_STR                    = (CERT_COMPARE_HASH_STR << CERT_COMPARE_SHIFT)\n\tCERT_FIND_HAS_PRIVATE_KEY             = (CERT_COMPARE_HAS_PRIVATE_KEY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG  = 0x1\n\tCERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG  = 0x2\n\tCERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG = 0x4\n\tCERT_FIND_NO_ENHKEY_USAGE_FLAG        = 0x8\n\tCERT_FIND_OR_ENHKEY_USAGE_FLAG        = 0x10\n\tCERT_FIND_VALID_ENHKEY_USAGE_FLAG     = 0x20\n\tCERT_FIND_OPTIONAL_CTL_USAGE_FLAG     = CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG\n\tCERT_FIND_EXT_ONLY_CTL_USAGE_FLAG     = CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG\n\tCERT_FIND_PROP_ONLY_CTL_USAGE_FLAG    = CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG\n\tCERT_FIND_NO_CTL_USAGE_FLAG           = CERT_FIND_NO_ENHKEY_USAGE_FLAG\n\tCERT_FIND_OR_CTL_USAGE_FLAG           = CERT_FIND_OR_ENHKEY_USAGE_FLAG\n\tCERT_FIND_VALID_CTL_USAGE_FLAG        = CERT_FIND_VALID_ENHKEY_USAGE_FLAG\n\n\t/* policyOID values for CertVerifyCertificateChainPolicy function */\n\tCERT_CHAIN_POLICY_BASE              = 1\n\tCERT_CHAIN_POLICY_AUTHENTICODE      = 2\n\tCERT_CHAIN_POLICY_AUTHENTICODE_TS   = 3\n\tCERT_CHAIN_POLICY_SSL               = 4\n\tCERT_CHAIN_POLICY_BASIC_CONSTRAINTS = 5\n\tCERT_CHAIN_POLICY_NT_AUTH           = 6\n\tCERT_CHAIN_POLICY_MICROSOFT_ROOT    = 7\n\tCERT_CHAIN_POLICY_EV                = 8\n\tCERT_CHAIN_POLICY_SSL_F12           = 9\n\n\t/* flag for dwFindType CertFindChainInStore  */\n\tCERT_CHAIN_FIND_BY_ISSUER = 1\n\n\t/* dwFindFlags for CertFindChainInStore when dwFindType == CERT_CHAIN_FIND_BY_ISSUER */\n\tCERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG    = 0x0001\n\tCERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG  = 0x0002\n\tCERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 0x0004\n\tCERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG  = 0x0008\n\tCERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG         = 0x4000\n\tCERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG     = 0x8000\n\n\t/* Certificate Store close flags */\n\tCERT_CLOSE_STORE_FORCE_FLAG = 0x00000001\n\tCERT_CLOSE_STORE_CHECK_FLAG = 0x00000002\n\n\t/* CryptQueryObject object type */\n\tCERT_QUERY_OBJECT_FILE = 1\n\tCERT_QUERY_OBJECT_BLOB = 2\n\n\t/* CryptQueryObject content type flags */\n\tCERT_QUERY_CONTENT_CERT                    = 1\n\tCERT_QUERY_CONTENT_CTL                     = 2\n\tCERT_QUERY_CONTENT_CRL                     = 3\n\tCERT_QUERY_CONTENT_SERIALIZED_STORE        = 4\n\tCERT_QUERY_CONTENT_SERIALIZED_CERT         = 5\n\tCERT_QUERY_CONTENT_SERIALIZED_CTL          = 6\n\tCERT_QUERY_CONTENT_SERIALIZED_CRL          = 7\n\tCERT_QUERY_CONTENT_PKCS7_SIGNED            = 8\n\tCERT_QUERY_CONTENT_PKCS7_UNSIGNED          = 9\n\tCERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED      = 10\n\tCERT_QUERY_CONTENT_PKCS10                  = 11\n\tCERT_QUERY_CONTENT_PFX                     = 12\n\tCERT_QUERY_CONTENT_CERT_PAIR               = 13\n\tCERT_QUERY_CONTENT_PFX_AND_LOAD            = 14\n\tCERT_QUERY_CONTENT_FLAG_CERT               = (1 << CERT_QUERY_CONTENT_CERT)\n\tCERT_QUERY_CONTENT_FLAG_CTL                = (1 << CERT_QUERY_CONTENT_CTL)\n\tCERT_QUERY_CONTENT_FLAG_CRL                = (1 << CERT_QUERY_CONTENT_CRL)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE   = (1 << CERT_QUERY_CONTENT_SERIALIZED_STORE)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT    = (1 << CERT_QUERY_CONTENT_SERIALIZED_CERT)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL     = (1 << CERT_QUERY_CONTENT_SERIALIZED_CTL)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL     = (1 << CERT_QUERY_CONTENT_SERIALIZED_CRL)\n\tCERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED       = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED)\n\tCERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED     = (1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED)\n\tCERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED)\n\tCERT_QUERY_CONTENT_FLAG_PKCS10             = (1 << CERT_QUERY_CONTENT_PKCS10)\n\tCERT_QUERY_CONTENT_FLAG_PFX                = (1 << CERT_QUERY_CONTENT_PFX)\n\tCERT_QUERY_CONTENT_FLAG_CERT_PAIR          = (1 << CERT_QUERY_CONTENT_CERT_PAIR)\n\tCERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD       = (1 << CERT_QUERY_CONTENT_PFX_AND_LOAD)\n\tCERT_QUERY_CONTENT_FLAG_ALL                = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_CTL | CERT_QUERY_CONTENT_FLAG_CRL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | CERT_QUERY_CONTENT_FLAG_PKCS10 | CERT_QUERY_CONTENT_FLAG_PFX | CERT_QUERY_CONTENT_FLAG_CERT_PAIR)\n\tCERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT    = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED)\n\n\t/* CryptQueryObject format type flags */\n\tCERT_QUERY_FORMAT_BINARY                     = 1\n\tCERT_QUERY_FORMAT_BASE64_ENCODED             = 2\n\tCERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED      = 3\n\tCERT_QUERY_FORMAT_FLAG_BINARY                = (1 << CERT_QUERY_FORMAT_BINARY)\n\tCERT_QUERY_FORMAT_FLAG_BASE64_ENCODED        = (1 << CERT_QUERY_FORMAT_BASE64_ENCODED)\n\tCERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = (1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED)\n\tCERT_QUERY_FORMAT_FLAG_ALL                   = (CERT_QUERY_FORMAT_FLAG_BINARY | CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED)\n\n\t/* CertGetNameString name types */\n\tCERT_NAME_EMAIL_TYPE            = 1\n\tCERT_NAME_RDN_TYPE              = 2\n\tCERT_NAME_ATTR_TYPE             = 3\n\tCERT_NAME_SIMPLE_DISPLAY_TYPE   = 4\n\tCERT_NAME_FRIENDLY_DISPLAY_TYPE = 5\n\tCERT_NAME_DNS_TYPE              = 6\n\tCERT_NAME_URL_TYPE              = 7\n\tCERT_NAME_UPN_TYPE              = 8\n\n\t/* CertGetNameString flags */\n\tCERT_NAME_ISSUER_FLAG              = 0x1\n\tCERT_NAME_DISABLE_IE4_UTF8_FLAG    = 0x10000\n\tCERT_NAME_SEARCH_ALL_NAMES_FLAG    = 0x2\n\tCERT_NAME_STR_ENABLE_PUNYCODE_FLAG = 0x00200000\n\n\t/* AuthType values for SSLExtraCertChainPolicyPara struct */\n\tAUTHTYPE_CLIENT = 1\n\tAUTHTYPE_SERVER = 2\n\n\t/* Checks values for SSLExtraCertChainPolicyPara struct */\n\tSECURITY_FLAG_IGNORE_REVOCATION        = 0x00000080\n\tSECURITY_FLAG_IGNORE_UNKNOWN_CA        = 0x00000100\n\tSECURITY_FLAG_IGNORE_WRONG_USAGE       = 0x00000200\n\tSECURITY_FLAG_IGNORE_CERT_CN_INVALID   = 0x00001000\n\tSECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000\n\n\t/* Flags for Crypt[Un]ProtectData */\n\tCRYPTPROTECT_UI_FORBIDDEN      = 0x1\n\tCRYPTPROTECT_LOCAL_MACHINE     = 0x4\n\tCRYPTPROTECT_CRED_SYNC         = 0x8\n\tCRYPTPROTECT_AUDIT             = 0x10\n\tCRYPTPROTECT_NO_RECOVERY       = 0x20\n\tCRYPTPROTECT_VERIFY_PROTECTION = 0x40\n\tCRYPTPROTECT_CRED_REGENERATE   = 0x80\n\n\t/* Flags for CryptProtectPromptStruct */\n\tCRYPTPROTECT_PROMPT_ON_UNPROTECT   = 1\n\tCRYPTPROTECT_PROMPT_ON_PROTECT     = 2\n\tCRYPTPROTECT_PROMPT_RESERVED       = 4\n\tCRYPTPROTECT_PROMPT_STRONG         = 8\n\tCRYPTPROTECT_PROMPT_REQUIRE_STRONG = 16\n)\n\nconst (\n\t// flags for SetErrorMode\n\tSEM_FAILCRITICALERRORS     = 0x0001\n\tSEM_NOALIGNMENTFAULTEXCEPT = 0x0004\n\tSEM_NOGPFAULTERRORBOX      = 0x0002\n\tSEM_NOOPENFILEERRORBOX     = 0x8000\n)\n\nconst (\n\t// Priority class.\n\tABOVE_NORMAL_PRIORITY_CLASS   = 0x00008000\n\tBELOW_NORMAL_PRIORITY_CLASS   = 0x00004000\n\tHIGH_PRIORITY_CLASS           = 0x00000080\n\tIDLE_PRIORITY_CLASS           = 0x00000040\n\tNORMAL_PRIORITY_CLASS         = 0x00000020\n\tPROCESS_MODE_BACKGROUND_BEGIN = 0x00100000\n\tPROCESS_MODE_BACKGROUND_END   = 0x00200000\n\tREALTIME_PRIORITY_CLASS       = 0x00000100\n)\n\n/* wintrust.h constants for WinVerifyTrustEx */\nconst (\n\tWTD_UI_ALL    = 1\n\tWTD_UI_NONE   = 2\n\tWTD_UI_NOBAD  = 3\n\tWTD_UI_NOGOOD = 4\n\n\tWTD_REVOKE_NONE       = 0\n\tWTD_REVOKE_WHOLECHAIN = 1\n\n\tWTD_CHOICE_FILE    = 1\n\tWTD_CHOICE_CATALOG = 2\n\tWTD_CHOICE_BLOB    = 3\n\tWTD_CHOICE_SIGNER  = 4\n\tWTD_CHOICE_CERT    = 5\n\n\tWTD_STATEACTION_IGNORE           = 0x00000000\n\tWTD_STATEACTION_VERIFY           = 0x00000001\n\tWTD_STATEACTION_CLOSE            = 0x00000002\n\tWTD_STATEACTION_AUTO_CACHE       = 0x00000003\n\tWTD_STATEACTION_AUTO_CACHE_FLUSH = 0x00000004\n\n\tWTD_USE_IE4_TRUST_FLAG                  = 0x1\n\tWTD_NO_IE4_CHAIN_FLAG                   = 0x2\n\tWTD_NO_POLICY_USAGE_FLAG                = 0x4\n\tWTD_REVOCATION_CHECK_NONE               = 0x10\n\tWTD_REVOCATION_CHECK_END_CERT           = 0x20\n\tWTD_REVOCATION_CHECK_CHAIN              = 0x40\n\tWTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x80\n\tWTD_SAFER_FLAG                          = 0x100\n\tWTD_HASH_ONLY_FLAG                      = 0x200\n\tWTD_USE_DEFAULT_OSVER_CHECK             = 0x400\n\tWTD_LIFETIME_SIGNING_FLAG               = 0x800\n\tWTD_CACHE_ONLY_URL_RETRIEVAL            = 0x1000\n\tWTD_DISABLE_MD2_MD4                     = 0x2000\n\tWTD_MOTW                                = 0x4000\n\n\tWTD_UICONTEXT_EXECUTE = 0\n\tWTD_UICONTEXT_INSTALL = 1\n)\n\nvar (\n\tOID_PKIX_KP_SERVER_AUTH = []byte(\"1.3.6.1.5.5.7.3.1\\x00\")\n\tOID_SERVER_GATED_CRYPTO = []byte(\"1.3.6.1.4.1.311.10.3.3\\x00\")\n\tOID_SGC_NETSCAPE        = []byte(\"2.16.840.1.113730.4.1\\x00\")\n\n\tWINTRUST_ACTION_GENERIC_VERIFY_V2 = GUID{\n\t\tData1: 0xaac56b,\n\t\tData2: 0xcd44,\n\t\tData3: 0x11d0,\n\t\tData4: [8]byte{0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee},\n\t}\n)\n\n// Pointer represents a pointer to an arbitrary Windows type.\n//\n// Pointer-typed fields may point to one of many different types. It's\n// up to the caller to provide a pointer to the appropriate type, cast\n// to Pointer. The caller must obey the unsafe.Pointer rules while\n// doing so.\ntype Pointer *struct{}\n\n// Invented values to support what package os expects.\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\nfunc (tv *Timeval) Nanoseconds() int64 {\n\treturn (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3\n}\n\nfunc NsecToTimeval(nsec int64) (tv Timeval) {\n\ttv.Sec = int32(nsec / 1e9)\n\ttv.Usec = int32(nsec % 1e9 / 1e3)\n\treturn\n}\n\ntype Overlapped struct {\n\tInternal     uintptr\n\tInternalHigh uintptr\n\tOffset       uint32\n\tOffsetHigh   uint32\n\tHEvent       Handle\n}\n\ntype FileNotifyInformation struct {\n\tNextEntryOffset uint32\n\tAction          uint32\n\tFileNameLength  uint32\n\tFileName        uint16\n}\n\ntype Filetime struct {\n\tLowDateTime  uint32\n\tHighDateTime uint32\n}\n\n// Nanoseconds returns Filetime ft in nanoseconds\n// since Epoch (00:00:00 UTC, January 1, 1970).\nfunc (ft *Filetime) Nanoseconds() int64 {\n\t// 100-nanosecond intervals since January 1, 1601\n\tnsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime)\n\t// change starting time to the Epoch (00:00:00 UTC, January 1, 1970)\n\tnsec -= 116444736000000000\n\t// convert into nanoseconds\n\tnsec *= 100\n\treturn nsec\n}\n\nfunc NsecToFiletime(nsec int64) (ft Filetime) {\n\t// convert into 100-nanosecond\n\tnsec /= 100\n\t// change starting time to January 1, 1601\n\tnsec += 116444736000000000\n\t// split into high / low\n\tft.LowDateTime = uint32(nsec & 0xffffffff)\n\tft.HighDateTime = uint32(nsec >> 32 & 0xffffffff)\n\treturn ft\n}\n\ntype Win32finddata struct {\n\tFileAttributes    uint32\n\tCreationTime      Filetime\n\tLastAccessTime    Filetime\n\tLastWriteTime     Filetime\n\tFileSizeHigh      uint32\n\tFileSizeLow       uint32\n\tReserved0         uint32\n\tReserved1         uint32\n\tFileName          [MAX_PATH - 1]uint16\n\tAlternateFileName [13]uint16\n}\n\n// This is the actual system call structure.\n// Win32finddata is what we committed to in Go 1.\ntype win32finddata1 struct {\n\tFileAttributes    uint32\n\tCreationTime      Filetime\n\tLastAccessTime    Filetime\n\tLastWriteTime     Filetime\n\tFileSizeHigh      uint32\n\tFileSizeLow       uint32\n\tReserved0         uint32\n\tReserved1         uint32\n\tFileName          [MAX_PATH]uint16\n\tAlternateFileName [14]uint16\n\n\t// The Microsoft documentation for this struct¹ describes three additional\n\t// fields: dwFileType, dwCreatorType, and wFinderFlags. However, those fields\n\t// are empirically only present in the macOS port of the Win32 API,² and thus\n\t// not needed for binaries built for Windows.\n\t//\n\t// ¹ https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataw describe\n\t// ² https://golang.org/issue/42637#issuecomment-760715755.\n}\n\nfunc copyFindData(dst *Win32finddata, src *win32finddata1) {\n\tdst.FileAttributes = src.FileAttributes\n\tdst.CreationTime = src.CreationTime\n\tdst.LastAccessTime = src.LastAccessTime\n\tdst.LastWriteTime = src.LastWriteTime\n\tdst.FileSizeHigh = src.FileSizeHigh\n\tdst.FileSizeLow = src.FileSizeLow\n\tdst.Reserved0 = src.Reserved0\n\tdst.Reserved1 = src.Reserved1\n\n\t// The src is 1 element bigger than dst, but it must be NUL.\n\tcopy(dst.FileName[:], src.FileName[:])\n\tcopy(dst.AlternateFileName[:], src.AlternateFileName[:])\n}\n\ntype ByHandleFileInformation struct {\n\tFileAttributes     uint32\n\tCreationTime       Filetime\n\tLastAccessTime     Filetime\n\tLastWriteTime      Filetime\n\tVolumeSerialNumber uint32\n\tFileSizeHigh       uint32\n\tFileSizeLow        uint32\n\tNumberOfLinks      uint32\n\tFileIndexHigh      uint32\n\tFileIndexLow       uint32\n}\n\nconst (\n\tGetFileExInfoStandard = 0\n\tGetFileExMaxInfoLevel = 1\n)\n\ntype Win32FileAttributeData struct {\n\tFileAttributes uint32\n\tCreationTime   Filetime\n\tLastAccessTime Filetime\n\tLastWriteTime  Filetime\n\tFileSizeHigh   uint32\n\tFileSizeLow    uint32\n}\n\n// ShowWindow constants\nconst (\n\t// winuser.h\n\tSW_HIDE            = 0\n\tSW_NORMAL          = 1\n\tSW_SHOWNORMAL      = 1\n\tSW_SHOWMINIMIZED   = 2\n\tSW_SHOWMAXIMIZED   = 3\n\tSW_MAXIMIZE        = 3\n\tSW_SHOWNOACTIVATE  = 4\n\tSW_SHOW            = 5\n\tSW_MINIMIZE        = 6\n\tSW_SHOWMINNOACTIVE = 7\n\tSW_SHOWNA          = 8\n\tSW_RESTORE         = 9\n\tSW_SHOWDEFAULT     = 10\n\tSW_FORCEMINIMIZE   = 11\n)\n\ntype StartupInfo struct {\n\tCb            uint32\n\t_             *uint16\n\tDesktop       *uint16\n\tTitle         *uint16\n\tX             uint32\n\tY             uint32\n\tXSize         uint32\n\tYSize         uint32\n\tXCountChars   uint32\n\tYCountChars   uint32\n\tFillAttribute uint32\n\tFlags         uint32\n\tShowWindow    uint16\n\t_             uint16\n\t_             *byte\n\tStdInput      Handle\n\tStdOutput     Handle\n\tStdErr        Handle\n}\n\ntype StartupInfoEx struct {\n\tStartupInfo\n\tProcThreadAttributeList *ProcThreadAttributeList\n}\n\n// ProcThreadAttributeList is a placeholder type to represent a PROC_THREAD_ATTRIBUTE_LIST.\n//\n// To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, update\n// it with ProcThreadAttributeListContainer.Update, free its memory using\n// ProcThreadAttributeListContainer.Delete, and access the list itself using\n// ProcThreadAttributeListContainer.List.\ntype ProcThreadAttributeList struct{}\n\ntype ProcThreadAttributeListContainer struct {\n\tdata     *ProcThreadAttributeList\n\tpointers []unsafe.Pointer\n}\n\ntype ProcessInformation struct {\n\tProcess   Handle\n\tThread    Handle\n\tProcessId uint32\n\tThreadId  uint32\n}\n\ntype ProcessEntry32 struct {\n\tSize            uint32\n\tUsage           uint32\n\tProcessID       uint32\n\tDefaultHeapID   uintptr\n\tModuleID        uint32\n\tThreads         uint32\n\tParentProcessID uint32\n\tPriClassBase    int32\n\tFlags           uint32\n\tExeFile         [MAX_PATH]uint16\n}\n\ntype ThreadEntry32 struct {\n\tSize           uint32\n\tUsage          uint32\n\tThreadID       uint32\n\tOwnerProcessID uint32\n\tBasePri        int32\n\tDeltaPri       int32\n\tFlags          uint32\n}\n\ntype ModuleEntry32 struct {\n\tSize         uint32\n\tModuleID     uint32\n\tProcessID    uint32\n\tGlblcntUsage uint32\n\tProccntUsage uint32\n\tModBaseAddr  uintptr\n\tModBaseSize  uint32\n\tModuleHandle Handle\n\tModule       [MAX_MODULE_NAME32 + 1]uint16\n\tExePath      [MAX_PATH]uint16\n}\n\nconst SizeofModuleEntry32 = unsafe.Sizeof(ModuleEntry32{})\n\ntype Systemtime struct {\n\tYear         uint16\n\tMonth        uint16\n\tDayOfWeek    uint16\n\tDay          uint16\n\tHour         uint16\n\tMinute       uint16\n\tSecond       uint16\n\tMilliseconds uint16\n}\n\ntype Timezoneinformation struct {\n\tBias         int32\n\tStandardName [32]uint16\n\tStandardDate Systemtime\n\tStandardBias int32\n\tDaylightName [32]uint16\n\tDaylightDate Systemtime\n\tDaylightBias int32\n}\n\n// Socket related.\n\nconst (\n\tAF_UNSPEC  = 0\n\tAF_UNIX    = 1\n\tAF_INET    = 2\n\tAF_NETBIOS = 17\n\tAF_INET6   = 23\n\tAF_IRDA    = 26\n\tAF_BTH     = 32\n\n\tSOCK_STREAM    = 1\n\tSOCK_DGRAM     = 2\n\tSOCK_RAW       = 3\n\tSOCK_RDM       = 4\n\tSOCK_SEQPACKET = 5\n\n\tIPPROTO_IP      = 0\n\tIPPROTO_ICMP    = 1\n\tIPPROTO_IGMP    = 2\n\tBTHPROTO_RFCOMM = 3\n\tIPPROTO_TCP     = 6\n\tIPPROTO_UDP     = 17\n\tIPPROTO_IPV6    = 41\n\tIPPROTO_ICMPV6  = 58\n\tIPPROTO_RM      = 113\n\n\tSOL_SOCKET                = 0xffff\n\tSO_REUSEADDR              = 4\n\tSO_KEEPALIVE              = 8\n\tSO_DONTROUTE              = 16\n\tSO_BROADCAST              = 32\n\tSO_LINGER                 = 128\n\tSO_RCVBUF                 = 0x1002\n\tSO_RCVTIMEO               = 0x1006\n\tSO_SNDBUF                 = 0x1001\n\tSO_UPDATE_ACCEPT_CONTEXT  = 0x700b\n\tSO_UPDATE_CONNECT_CONTEXT = 0x7010\n\n\tIOC_OUT                            = 0x40000000\n\tIOC_IN                             = 0x80000000\n\tIOC_VENDOR                         = 0x18000000\n\tIOC_INOUT                          = IOC_IN | IOC_OUT\n\tIOC_WS2                            = 0x08000000\n\tSIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6\n\tSIO_KEEPALIVE_VALS                 = IOC_IN | IOC_VENDOR | 4\n\tSIO_UDP_CONNRESET                  = IOC_IN | IOC_VENDOR | 12\n\n\t// cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460\n\n\tIP_HDRINCL         = 0x2\n\tIP_TOS             = 0x3\n\tIP_TTL             = 0x4\n\tIP_MULTICAST_IF    = 0x9\n\tIP_MULTICAST_TTL   = 0xa\n\tIP_MULTICAST_LOOP  = 0xb\n\tIP_ADD_MEMBERSHIP  = 0xc\n\tIP_DROP_MEMBERSHIP = 0xd\n\tIP_PKTINFO         = 0x13\n\n\tIPV6_V6ONLY         = 0x1b\n\tIPV6_UNICAST_HOPS   = 0x4\n\tIPV6_MULTICAST_IF   = 0x9\n\tIPV6_MULTICAST_HOPS = 0xa\n\tIPV6_MULTICAST_LOOP = 0xb\n\tIPV6_JOIN_GROUP     = 0xc\n\tIPV6_LEAVE_GROUP    = 0xd\n\tIPV6_PKTINFO        = 0x13\n\n\tMSG_OOB       = 0x1\n\tMSG_PEEK      = 0x2\n\tMSG_DONTROUTE = 0x4\n\tMSG_WAITALL   = 0x8\n\n\tMSG_TRUNC  = 0x0100\n\tMSG_CTRUNC = 0x0200\n\tMSG_BCAST  = 0x0400\n\tMSG_MCAST  = 0x0800\n\n\tSOMAXCONN = 0x7fffffff\n\n\tTCP_NODELAY                    = 1\n\tTCP_EXPEDITED_1122             = 2\n\tTCP_KEEPALIVE                  = 3\n\tTCP_MAXSEG                     = 4\n\tTCP_MAXRT                      = 5\n\tTCP_STDURG                     = 6\n\tTCP_NOURG                      = 7\n\tTCP_ATMARK                     = 8\n\tTCP_NOSYNRETRIES               = 9\n\tTCP_TIMESTAMPS                 = 10\n\tTCP_OFFLOAD_PREFERENCE         = 11\n\tTCP_CONGESTION_ALGORITHM       = 12\n\tTCP_DELAY_FIN_ACK              = 13\n\tTCP_MAXRTMS                    = 14\n\tTCP_FASTOPEN                   = 15\n\tTCP_KEEPCNT                    = 16\n\tTCP_KEEPIDLE                   = TCP_KEEPALIVE\n\tTCP_KEEPINTVL                  = 17\n\tTCP_FAIL_CONNECT_ON_ICMP_ERROR = 18\n\tTCP_ICMP_ERROR_INFO            = 19\n\n\tUDP_NOCHECKSUM              = 1\n\tUDP_SEND_MSG_SIZE           = 2\n\tUDP_RECV_MAX_COALESCED_SIZE = 3\n\tUDP_CHECKSUM_COVERAGE       = 20\n\n\tUDP_COALESCED_INFO = 3\n\n\tSHUT_RD   = 0\n\tSHUT_WR   = 1\n\tSHUT_RDWR = 2\n\n\tWSADESCRIPTION_LEN = 256\n\tWSASYS_STATUS_LEN  = 128\n)\n\ntype WSABuf struct {\n\tLen uint32\n\tBuf *byte\n}\n\ntype WSAMsg struct {\n\tName        *syscall.RawSockaddrAny\n\tNamelen     int32\n\tBuffers     *WSABuf\n\tBufferCount uint32\n\tControl     WSABuf\n\tFlags       uint32\n}\n\n// Flags for WSASocket\nconst (\n\tWSA_FLAG_OVERLAPPED             = 0x01\n\tWSA_FLAG_MULTIPOINT_C_ROOT      = 0x02\n\tWSA_FLAG_MULTIPOINT_C_LEAF      = 0x04\n\tWSA_FLAG_MULTIPOINT_D_ROOT      = 0x08\n\tWSA_FLAG_MULTIPOINT_D_LEAF      = 0x10\n\tWSA_FLAG_ACCESS_SYSTEM_SECURITY = 0x40\n\tWSA_FLAG_NO_HANDLE_INHERIT      = 0x80\n\tWSA_FLAG_REGISTERED_IO          = 0x100\n)\n\n// Invented values to support what package os expects.\nconst (\n\tS_IFMT   = 0x1f000\n\tS_IFIFO  = 0x1000\n\tS_IFCHR  = 0x2000\n\tS_IFDIR  = 0x4000\n\tS_IFBLK  = 0x6000\n\tS_IFREG  = 0x8000\n\tS_IFLNK  = 0xa000\n\tS_IFSOCK = 0xc000\n\tS_ISUID  = 0x800\n\tS_ISGID  = 0x400\n\tS_ISVTX  = 0x200\n\tS_IRUSR  = 0x100\n\tS_IWRITE = 0x80\n\tS_IWUSR  = 0x80\n\tS_IXUSR  = 0x40\n)\n\nconst (\n\tFILE_TYPE_CHAR    = 0x0002\n\tFILE_TYPE_DISK    = 0x0001\n\tFILE_TYPE_PIPE    = 0x0003\n\tFILE_TYPE_REMOTE  = 0x8000\n\tFILE_TYPE_UNKNOWN = 0x0000\n)\n\ntype Hostent struct {\n\tName     *byte\n\tAliases  **byte\n\tAddrType uint16\n\tLength   uint16\n\tAddrList **byte\n}\n\ntype Protoent struct {\n\tName    *byte\n\tAliases **byte\n\tProto   uint16\n}\n\nconst (\n\tDNS_TYPE_A       = 0x0001\n\tDNS_TYPE_NS      = 0x0002\n\tDNS_TYPE_MD      = 0x0003\n\tDNS_TYPE_MF      = 0x0004\n\tDNS_TYPE_CNAME   = 0x0005\n\tDNS_TYPE_SOA     = 0x0006\n\tDNS_TYPE_MB      = 0x0007\n\tDNS_TYPE_MG      = 0x0008\n\tDNS_TYPE_MR      = 0x0009\n\tDNS_TYPE_NULL    = 0x000a\n\tDNS_TYPE_WKS     = 0x000b\n\tDNS_TYPE_PTR     = 0x000c\n\tDNS_TYPE_HINFO   = 0x000d\n\tDNS_TYPE_MINFO   = 0x000e\n\tDNS_TYPE_MX      = 0x000f\n\tDNS_TYPE_TEXT    = 0x0010\n\tDNS_TYPE_RP      = 0x0011\n\tDNS_TYPE_AFSDB   = 0x0012\n\tDNS_TYPE_X25     = 0x0013\n\tDNS_TYPE_ISDN    = 0x0014\n\tDNS_TYPE_RT      = 0x0015\n\tDNS_TYPE_NSAP    = 0x0016\n\tDNS_TYPE_NSAPPTR = 0x0017\n\tDNS_TYPE_SIG     = 0x0018\n\tDNS_TYPE_KEY     = 0x0019\n\tDNS_TYPE_PX      = 0x001a\n\tDNS_TYPE_GPOS    = 0x001b\n\tDNS_TYPE_AAAA    = 0x001c\n\tDNS_TYPE_LOC     = 0x001d\n\tDNS_TYPE_NXT     = 0x001e\n\tDNS_TYPE_EID     = 0x001f\n\tDNS_TYPE_NIMLOC  = 0x0020\n\tDNS_TYPE_SRV     = 0x0021\n\tDNS_TYPE_ATMA    = 0x0022\n\tDNS_TYPE_NAPTR   = 0x0023\n\tDNS_TYPE_KX      = 0x0024\n\tDNS_TYPE_CERT    = 0x0025\n\tDNS_TYPE_A6      = 0x0026\n\tDNS_TYPE_DNAME   = 0x0027\n\tDNS_TYPE_SINK    = 0x0028\n\tDNS_TYPE_OPT     = 0x0029\n\tDNS_TYPE_DS      = 0x002B\n\tDNS_TYPE_RRSIG   = 0x002E\n\tDNS_TYPE_NSEC    = 0x002F\n\tDNS_TYPE_DNSKEY  = 0x0030\n\tDNS_TYPE_DHCID   = 0x0031\n\tDNS_TYPE_UINFO   = 0x0064\n\tDNS_TYPE_UID     = 0x0065\n\tDNS_TYPE_GID     = 0x0066\n\tDNS_TYPE_UNSPEC  = 0x0067\n\tDNS_TYPE_ADDRS   = 0x00f8\n\tDNS_TYPE_TKEY    = 0x00f9\n\tDNS_TYPE_TSIG    = 0x00fa\n\tDNS_TYPE_IXFR    = 0x00fb\n\tDNS_TYPE_AXFR    = 0x00fc\n\tDNS_TYPE_MAILB   = 0x00fd\n\tDNS_TYPE_MAILA   = 0x00fe\n\tDNS_TYPE_ALL     = 0x00ff\n\tDNS_TYPE_ANY     = 0x00ff\n\tDNS_TYPE_WINS    = 0xff01\n\tDNS_TYPE_WINSR   = 0xff02\n\tDNS_TYPE_NBSTAT  = 0xff01\n)\n\nconst (\n\t// flags inside DNSRecord.Dw\n\tDnsSectionQuestion   = 0x0000\n\tDnsSectionAnswer     = 0x0001\n\tDnsSectionAuthority  = 0x0002\n\tDnsSectionAdditional = 0x0003\n)\n\nconst (\n\t// flags of WSALookupService\n\tLUP_DEEP                = 0x0001\n\tLUP_CONTAINERS          = 0x0002\n\tLUP_NOCONTAINERS        = 0x0004\n\tLUP_NEAREST             = 0x0008\n\tLUP_RETURN_NAME         = 0x0010\n\tLUP_RETURN_TYPE         = 0x0020\n\tLUP_RETURN_VERSION      = 0x0040\n\tLUP_RETURN_COMMENT      = 0x0080\n\tLUP_RETURN_ADDR         = 0x0100\n\tLUP_RETURN_BLOB         = 0x0200\n\tLUP_RETURN_ALIASES      = 0x0400\n\tLUP_RETURN_QUERY_STRING = 0x0800\n\tLUP_RETURN_ALL          = 0x0FF0\n\tLUP_RES_SERVICE         = 0x8000\n\n\tLUP_FLUSHCACHE    = 0x1000\n\tLUP_FLUSHPREVIOUS = 0x2000\n\n\tLUP_NON_AUTHORITATIVE      = 0x4000\n\tLUP_SECURE                 = 0x8000\n\tLUP_RETURN_PREFERRED_NAMES = 0x10000\n\tLUP_DNS_ONLY               = 0x20000\n\n\tLUP_ADDRCONFIG           = 0x100000\n\tLUP_DUAL_ADDR            = 0x200000\n\tLUP_FILESERVER           = 0x400000\n\tLUP_DISABLE_IDN_ENCODING = 0x00800000\n\tLUP_API_ANSI             = 0x01000000\n\n\tLUP_RESOLUTION_HANDLE = 0x80000000\n)\n\nconst (\n\t// values of WSAQUERYSET's namespace\n\tNS_ALL       = 0\n\tNS_DNS       = 12\n\tNS_NLA       = 15\n\tNS_BTH       = 16\n\tNS_EMAIL     = 37\n\tNS_PNRPNAME  = 38\n\tNS_PNRPCLOUD = 39\n)\n\ntype DNSSRVData struct {\n\tTarget   *uint16\n\tPriority uint16\n\tWeight   uint16\n\tPort     uint16\n\tPad      uint16\n}\n\ntype DNSPTRData struct {\n\tHost *uint16\n}\n\ntype DNSMXData struct {\n\tNameExchange *uint16\n\tPreference   uint16\n\tPad          uint16\n}\n\ntype DNSTXTData struct {\n\tStringCount uint16\n\tStringArray [1]*uint16\n}\n\ntype DNSRecord struct {\n\tNext     *DNSRecord\n\tName     *uint16\n\tType     uint16\n\tLength   uint16\n\tDw       uint32\n\tTtl      uint32\n\tReserved uint32\n\tData     [40]byte\n}\n\nconst (\n\tTF_DISCONNECT         = 1\n\tTF_REUSE_SOCKET       = 2\n\tTF_WRITE_BEHIND       = 4\n\tTF_USE_DEFAULT_WORKER = 0\n\tTF_USE_SYSTEM_THREAD  = 16\n\tTF_USE_KERNEL_APC     = 32\n)\n\ntype TransmitFileBuffers struct {\n\tHead       uintptr\n\tHeadLength uint32\n\tTail       uintptr\n\tTailLength uint32\n}\n\nconst (\n\tIFF_UP           = 1\n\tIFF_BROADCAST    = 2\n\tIFF_LOOPBACK     = 4\n\tIFF_POINTTOPOINT = 8\n\tIFF_MULTICAST    = 16\n)\n\nconst SIO_GET_INTERFACE_LIST = 0x4004747F\n\n// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old.\n// will be fixed to change variable type as suitable.\n\ntype SockaddrGen [24]byte\n\ntype InterfaceInfo struct {\n\tFlags            uint32\n\tAddress          SockaddrGen\n\tBroadcastAddress SockaddrGen\n\tNetmask          SockaddrGen\n}\n\ntype IpAddressString struct {\n\tString [16]byte\n}\n\ntype IpMaskString IpAddressString\n\ntype IpAddrString struct {\n\tNext      *IpAddrString\n\tIpAddress IpAddressString\n\tIpMask    IpMaskString\n\tContext   uint32\n}\n\nconst MAX_ADAPTER_NAME_LENGTH = 256\nconst MAX_ADAPTER_DESCRIPTION_LENGTH = 128\nconst MAX_ADAPTER_ADDRESS_LENGTH = 8\n\ntype IpAdapterInfo struct {\n\tNext                *IpAdapterInfo\n\tComboIndex          uint32\n\tAdapterName         [MAX_ADAPTER_NAME_LENGTH + 4]byte\n\tDescription         [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte\n\tAddressLength       uint32\n\tAddress             [MAX_ADAPTER_ADDRESS_LENGTH]byte\n\tIndex               uint32\n\tType                uint32\n\tDhcpEnabled         uint32\n\tCurrentIpAddress    *IpAddrString\n\tIpAddressList       IpAddrString\n\tGatewayList         IpAddrString\n\tDhcpServer          IpAddrString\n\tHaveWins            bool\n\tPrimaryWinsServer   IpAddrString\n\tSecondaryWinsServer IpAddrString\n\tLeaseObtained       int64\n\tLeaseExpires        int64\n}\n\nconst MAXLEN_PHYSADDR = 8\nconst MAX_INTERFACE_NAME_LEN = 256\nconst MAXLEN_IFDESCR = 256\n\ntype MibIfRow struct {\n\tName            [MAX_INTERFACE_NAME_LEN]uint16\n\tIndex           uint32\n\tType            uint32\n\tMtu             uint32\n\tSpeed           uint32\n\tPhysAddrLen     uint32\n\tPhysAddr        [MAXLEN_PHYSADDR]byte\n\tAdminStatus     uint32\n\tOperStatus      uint32\n\tLastChange      uint32\n\tInOctets        uint32\n\tInUcastPkts     uint32\n\tInNUcastPkts    uint32\n\tInDiscards      uint32\n\tInErrors        uint32\n\tInUnknownProtos uint32\n\tOutOctets       uint32\n\tOutUcastPkts    uint32\n\tOutNUcastPkts   uint32\n\tOutDiscards     uint32\n\tOutErrors       uint32\n\tOutQLen         uint32\n\tDescrLen        uint32\n\tDescr           [MAXLEN_IFDESCR]byte\n}\n\ntype CertInfo struct {\n\tVersion              uint32\n\tSerialNumber         CryptIntegerBlob\n\tSignatureAlgorithm   CryptAlgorithmIdentifier\n\tIssuer               CertNameBlob\n\tNotBefore            Filetime\n\tNotAfter             Filetime\n\tSubject              CertNameBlob\n\tSubjectPublicKeyInfo CertPublicKeyInfo\n\tIssuerUniqueId       CryptBitBlob\n\tSubjectUniqueId      CryptBitBlob\n\tCountExtensions      uint32\n\tExtensions           *CertExtension\n}\n\ntype CertExtension struct {\n\tObjId    *byte\n\tCritical int32\n\tValue    CryptObjidBlob\n}\n\ntype CryptAlgorithmIdentifier struct {\n\tObjId      *byte\n\tParameters CryptObjidBlob\n}\n\ntype CertPublicKeyInfo struct {\n\tAlgorithm CryptAlgorithmIdentifier\n\tPublicKey CryptBitBlob\n}\n\ntype DataBlob struct {\n\tSize uint32\n\tData *byte\n}\ntype CryptIntegerBlob DataBlob\ntype CryptUintBlob DataBlob\ntype CryptObjidBlob DataBlob\ntype CertNameBlob DataBlob\ntype CertRdnValueBlob DataBlob\ntype CertBlob DataBlob\ntype CrlBlob DataBlob\ntype CryptDataBlob DataBlob\ntype CryptHashBlob DataBlob\ntype CryptDigestBlob DataBlob\ntype CryptDerBlob DataBlob\ntype CryptAttrBlob DataBlob\n\ntype CryptBitBlob struct {\n\tSize       uint32\n\tData       *byte\n\tUnusedBits uint32\n}\n\ntype CertContext struct {\n\tEncodingType uint32\n\tEncodedCert  *byte\n\tLength       uint32\n\tCertInfo     *CertInfo\n\tStore        Handle\n}\n\ntype CertChainContext struct {\n\tSize                       uint32\n\tTrustStatus                CertTrustStatus\n\tChainCount                 uint32\n\tChains                     **CertSimpleChain\n\tLowerQualityChainCount     uint32\n\tLowerQualityChains         **CertChainContext\n\tHasRevocationFreshnessTime uint32\n\tRevocationFreshnessTime    uint32\n}\n\ntype CertTrustListInfo struct {\n\t// Not implemented\n}\n\ntype CertSimpleChain struct {\n\tSize                       uint32\n\tTrustStatus                CertTrustStatus\n\tNumElements                uint32\n\tElements                   **CertChainElement\n\tTrustListInfo              *CertTrustListInfo\n\tHasRevocationFreshnessTime uint32\n\tRevocationFreshnessTime    uint32\n}\n\ntype CertChainElement struct {\n\tSize              uint32\n\tCertContext       *CertContext\n\tTrustStatus       CertTrustStatus\n\tRevocationInfo    *CertRevocationInfo\n\tIssuanceUsage     *CertEnhKeyUsage\n\tApplicationUsage  *CertEnhKeyUsage\n\tExtendedErrorInfo *uint16\n}\n\ntype CertRevocationCrlInfo struct {\n\t// Not implemented\n}\n\ntype CertRevocationInfo struct {\n\tSize             uint32\n\tRevocationResult uint32\n\tRevocationOid    *byte\n\tOidSpecificInfo  Pointer\n\tHasFreshnessTime uint32\n\tFreshnessTime    uint32\n\tCrlInfo          *CertRevocationCrlInfo\n}\n\ntype CertTrustStatus struct {\n\tErrorStatus uint32\n\tInfoStatus  uint32\n}\n\ntype CertUsageMatch struct {\n\tType  uint32\n\tUsage CertEnhKeyUsage\n}\n\ntype CertEnhKeyUsage struct {\n\tLength           uint32\n\tUsageIdentifiers **byte\n}\n\ntype CertChainPara struct {\n\tSize                         uint32\n\tRequestedUsage               CertUsageMatch\n\tRequstedIssuancePolicy       CertUsageMatch\n\tURLRetrievalTimeout          uint32\n\tCheckRevocationFreshnessTime uint32\n\tRevocationFreshnessTime      uint32\n\tCacheResync                  *Filetime\n}\n\ntype CertChainPolicyPara struct {\n\tSize            uint32\n\tFlags           uint32\n\tExtraPolicyPara Pointer\n}\n\ntype SSLExtraCertChainPolicyPara struct {\n\tSize       uint32\n\tAuthType   uint32\n\tChecks     uint32\n\tServerName *uint16\n}\n\ntype CertChainPolicyStatus struct {\n\tSize              uint32\n\tError             uint32\n\tChainIndex        uint32\n\tElementIndex      uint32\n\tExtraPolicyStatus Pointer\n}\n\ntype CertPolicyInfo struct {\n\tIdentifier      *byte\n\tCountQualifiers uint32\n\tQualifiers      *CertPolicyQualifierInfo\n}\n\ntype CertPoliciesInfo struct {\n\tCount       uint32\n\tPolicyInfos *CertPolicyInfo\n}\n\ntype CertPolicyQualifierInfo struct {\n\t// Not implemented\n}\n\ntype CertStrongSignPara struct {\n\tSize                      uint32\n\tInfoChoice                uint32\n\tInfoOrSerializedInfoOrOID unsafe.Pointer\n}\n\ntype CryptProtectPromptStruct struct {\n\tSize        uint32\n\tPromptFlags uint32\n\tApp         HWND\n\tPrompt      *uint16\n}\n\ntype CertChainFindByIssuerPara struct {\n\tSize                   uint32\n\tUsageIdentifier        *byte\n\tKeySpec                uint32\n\tAcquirePrivateKeyFlags uint32\n\tIssuerCount            uint32\n\tIssuer                 Pointer\n\tFindCallback           Pointer\n\tFindArg                Pointer\n\tIssuerChainIndex       *uint32\n\tIssuerElementIndex     *uint32\n}\n\ntype WinTrustData struct {\n\tSize                            uint32\n\tPolicyCallbackData              uintptr\n\tSIPClientData                   uintptr\n\tUIChoice                        uint32\n\tRevocationChecks                uint32\n\tUnionChoice                     uint32\n\tFileOrCatalogOrBlobOrSgnrOrCert unsafe.Pointer\n\tStateAction                     uint32\n\tStateData                       Handle\n\tURLReference                    *uint16\n\tProvFlags                       uint32\n\tUIContext                       uint32\n\tSignatureSettings               *WinTrustSignatureSettings\n}\n\ntype WinTrustFileInfo struct {\n\tSize         uint32\n\tFilePath     *uint16\n\tFile         Handle\n\tKnownSubject *GUID\n}\n\ntype WinTrustSignatureSettings struct {\n\tSize             uint32\n\tIndex            uint32\n\tFlags            uint32\n\tSecondarySigs    uint32\n\tVerifiedSigIndex uint32\n\tCryptoPolicy     *CertStrongSignPara\n}\n\nconst (\n\t// do not reorder\n\tHKEY_CLASSES_ROOT = 0x80000000 + iota\n\tHKEY_CURRENT_USER\n\tHKEY_LOCAL_MACHINE\n\tHKEY_USERS\n\tHKEY_PERFORMANCE_DATA\n\tHKEY_CURRENT_CONFIG\n\tHKEY_DYN_DATA\n\n\tKEY_QUERY_VALUE        = 1\n\tKEY_SET_VALUE          = 2\n\tKEY_CREATE_SUB_KEY     = 4\n\tKEY_ENUMERATE_SUB_KEYS = 8\n\tKEY_NOTIFY             = 16\n\tKEY_CREATE_LINK        = 32\n\tKEY_WRITE              = 0x20006\n\tKEY_EXECUTE            = 0x20019\n\tKEY_READ               = 0x20019\n\tKEY_WOW64_64KEY        = 0x0100\n\tKEY_WOW64_32KEY        = 0x0200\n\tKEY_ALL_ACCESS         = 0xf003f\n)\n\nconst (\n\t// do not reorder\n\tREG_NONE = iota\n\tREG_SZ\n\tREG_EXPAND_SZ\n\tREG_BINARY\n\tREG_DWORD_LITTLE_ENDIAN\n\tREG_DWORD_BIG_ENDIAN\n\tREG_LINK\n\tREG_MULTI_SZ\n\tREG_RESOURCE_LIST\n\tREG_FULL_RESOURCE_DESCRIPTOR\n\tREG_RESOURCE_REQUIREMENTS_LIST\n\tREG_QWORD_LITTLE_ENDIAN\n\tREG_DWORD = REG_DWORD_LITTLE_ENDIAN\n\tREG_QWORD = REG_QWORD_LITTLE_ENDIAN\n)\n\nconst (\n\tEVENT_MODIFY_STATE = 0x0002\n\tEVENT_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3\n\n\tMUTANT_QUERY_STATE = 0x0001\n\tMUTANT_ALL_ACCESS  = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE\n\n\tSEMAPHORE_MODIFY_STATE = 0x0002\n\tSEMAPHORE_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3\n\n\tTIMER_QUERY_STATE  = 0x0001\n\tTIMER_MODIFY_STATE = 0x0002\n\tTIMER_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE | TIMER_MODIFY_STATE\n\n\tMUTEX_MODIFY_STATE = MUTANT_QUERY_STATE\n\tMUTEX_ALL_ACCESS   = MUTANT_ALL_ACCESS\n\n\tCREATE_EVENT_MANUAL_RESET  = 0x1\n\tCREATE_EVENT_INITIAL_SET   = 0x2\n\tCREATE_MUTEX_INITIAL_OWNER = 0x1\n)\n\ntype AddrinfoW struct {\n\tFlags     int32\n\tFamily    int32\n\tSocktype  int32\n\tProtocol  int32\n\tAddrlen   uintptr\n\tCanonname *uint16\n\tAddr      uintptr\n\tNext      *AddrinfoW\n}\n\nconst (\n\tAI_PASSIVE     = 1\n\tAI_CANONNAME   = 2\n\tAI_NUMERICHOST = 4\n)\n\ntype GUID struct {\n\tData1 uint32\n\tData2 uint16\n\tData3 uint16\n\tData4 [8]byte\n}\n\nvar WSAID_CONNECTEX = GUID{\n\t0x25a207b9,\n\t0xddf3,\n\t0x4660,\n\t[8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e},\n}\n\nvar WSAID_WSASENDMSG = GUID{\n\t0xa441e712,\n\t0x754f,\n\t0x43ca,\n\t[8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d},\n}\n\nvar WSAID_WSARECVMSG = GUID{\n\t0xf689d7c8,\n\t0x6f1f,\n\t0x436b,\n\t[8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22},\n}\n\nconst (\n\tFILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1\n\tFILE_SKIP_SET_EVENT_ON_HANDLE        = 2\n)\n\nconst (\n\tWSAPROTOCOL_LEN    = 255\n\tMAX_PROTOCOL_CHAIN = 7\n\tBASE_PROTOCOL      = 1\n\tLAYERED_PROTOCOL   = 0\n\n\tXP1_CONNECTIONLESS           = 0x00000001\n\tXP1_GUARANTEED_DELIVERY      = 0x00000002\n\tXP1_GUARANTEED_ORDER         = 0x00000004\n\tXP1_MESSAGE_ORIENTED         = 0x00000008\n\tXP1_PSEUDO_STREAM            = 0x00000010\n\tXP1_GRACEFUL_CLOSE           = 0x00000020\n\tXP1_EXPEDITED_DATA           = 0x00000040\n\tXP1_CONNECT_DATA             = 0x00000080\n\tXP1_DISCONNECT_DATA          = 0x00000100\n\tXP1_SUPPORT_BROADCAST        = 0x00000200\n\tXP1_SUPPORT_MULTIPOINT       = 0x00000400\n\tXP1_MULTIPOINT_CONTROL_PLANE = 0x00000800\n\tXP1_MULTIPOINT_DATA_PLANE    = 0x00001000\n\tXP1_QOS_SUPPORTED            = 0x00002000\n\tXP1_UNI_SEND                 = 0x00008000\n\tXP1_UNI_RECV                 = 0x00010000\n\tXP1_IFS_HANDLES              = 0x00020000\n\tXP1_PARTIAL_MESSAGE          = 0x00040000\n\tXP1_SAN_SUPPORT_SDP          = 0x00080000\n\n\tPFL_MULTIPLE_PROTO_ENTRIES  = 0x00000001\n\tPFL_RECOMMENDED_PROTO_ENTRY = 0x00000002\n\tPFL_HIDDEN                  = 0x00000004\n\tPFL_MATCHES_PROTOCOL_ZERO   = 0x00000008\n\tPFL_NETWORKDIRECT_PROVIDER  = 0x00000010\n)\n\ntype WSAProtocolInfo struct {\n\tServiceFlags1     uint32\n\tServiceFlags2     uint32\n\tServiceFlags3     uint32\n\tServiceFlags4     uint32\n\tProviderFlags     uint32\n\tProviderId        GUID\n\tCatalogEntryId    uint32\n\tProtocolChain     WSAProtocolChain\n\tVersion           int32\n\tAddressFamily     int32\n\tMaxSockAddr       int32\n\tMinSockAddr       int32\n\tSocketType        int32\n\tProtocol          int32\n\tProtocolMaxOffset int32\n\tNetworkByteOrder  int32\n\tSecurityScheme    int32\n\tMessageSize       uint32\n\tProviderReserved  uint32\n\tProtocolName      [WSAPROTOCOL_LEN + 1]uint16\n}\n\ntype WSAProtocolChain struct {\n\tChainLen     int32\n\tChainEntries [MAX_PROTOCOL_CHAIN]uint32\n}\n\ntype TCPKeepalive struct {\n\tOnOff    uint32\n\tTime     uint32\n\tInterval uint32\n}\n\ntype symbolicLinkReparseBuffer struct {\n\tSubstituteNameOffset uint16\n\tSubstituteNameLength uint16\n\tPrintNameOffset      uint16\n\tPrintNameLength      uint16\n\tFlags                uint32\n\tPathBuffer           [1]uint16\n}\n\ntype mountPointReparseBuffer struct {\n\tSubstituteNameOffset uint16\n\tSubstituteNameLength uint16\n\tPrintNameOffset      uint16\n\tPrintNameLength      uint16\n\tPathBuffer           [1]uint16\n}\n\ntype reparseDataBuffer struct {\n\tReparseTag        uint32\n\tReparseDataLength uint16\n\tReserved          uint16\n\n\t// GenericReparseBuffer\n\treparseBuffer byte\n}\n\nconst (\n\tFSCTL_CREATE_OR_GET_OBJECT_ID             = 0x0900C0\n\tFSCTL_DELETE_OBJECT_ID                    = 0x0900A0\n\tFSCTL_DELETE_REPARSE_POINT                = 0x0900AC\n\tFSCTL_DUPLICATE_EXTENTS_TO_FILE           = 0x098344\n\tFSCTL_DUPLICATE_EXTENTS_TO_FILE_EX        = 0x0983E8\n\tFSCTL_FILESYSTEM_GET_STATISTICS           = 0x090060\n\tFSCTL_FILE_LEVEL_TRIM                     = 0x098208\n\tFSCTL_FIND_FILES_BY_SID                   = 0x09008F\n\tFSCTL_GET_COMPRESSION                     = 0x09003C\n\tFSCTL_GET_INTEGRITY_INFORMATION           = 0x09027C\n\tFSCTL_GET_NTFS_VOLUME_DATA                = 0x090064\n\tFSCTL_GET_REFS_VOLUME_DATA                = 0x0902D8\n\tFSCTL_GET_OBJECT_ID                       = 0x09009C\n\tFSCTL_GET_REPARSE_POINT                   = 0x0900A8\n\tFSCTL_GET_RETRIEVAL_POINTER_COUNT         = 0x09042B\n\tFSCTL_GET_RETRIEVAL_POINTERS              = 0x090073\n\tFSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT = 0x0903D3\n\tFSCTL_IS_PATHNAME_VALID                   = 0x09002C\n\tFSCTL_LMR_SET_LINK_TRACKING_INFORMATION   = 0x1400EC\n\tFSCTL_MARK_HANDLE                         = 0x0900FC\n\tFSCTL_OFFLOAD_READ                        = 0x094264\n\tFSCTL_OFFLOAD_WRITE                       = 0x098268\n\tFSCTL_PIPE_PEEK                           = 0x11400C\n\tFSCTL_PIPE_TRANSCEIVE                     = 0x11C017\n\tFSCTL_PIPE_WAIT                           = 0x110018\n\tFSCTL_QUERY_ALLOCATED_RANGES              = 0x0940CF\n\tFSCTL_QUERY_FAT_BPB                       = 0x090058\n\tFSCTL_QUERY_FILE_REGIONS                  = 0x090284\n\tFSCTL_QUERY_ON_DISK_VOLUME_INFO           = 0x09013C\n\tFSCTL_QUERY_SPARING_INFO                  = 0x090138\n\tFSCTL_READ_FILE_USN_DATA                  = 0x0900EB\n\tFSCTL_RECALL_FILE                         = 0x090117\n\tFSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT     = 0x090440\n\tFSCTL_SET_COMPRESSION                     = 0x09C040\n\tFSCTL_SET_DEFECT_MANAGEMENT               = 0x098134\n\tFSCTL_SET_ENCRYPTION                      = 0x0900D7\n\tFSCTL_SET_INTEGRITY_INFORMATION           = 0x09C280\n\tFSCTL_SET_INTEGRITY_INFORMATION_EX        = 0x090380\n\tFSCTL_SET_OBJECT_ID                       = 0x090098\n\tFSCTL_SET_OBJECT_ID_EXTENDED              = 0x0900BC\n\tFSCTL_SET_REPARSE_POINT                   = 0x0900A4\n\tFSCTL_SET_SPARSE                          = 0x0900C4\n\tFSCTL_SET_ZERO_DATA                       = 0x0980C8\n\tFSCTL_SET_ZERO_ON_DEALLOCATION            = 0x090194\n\tFSCTL_SIS_COPYFILE                        = 0x090100\n\tFSCTL_WRITE_USN_CLOSE_RECORD              = 0x0900EF\n\n\tMAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024\n\tIO_REPARSE_TAG_MOUNT_POINT       = 0xA0000003\n\tIO_REPARSE_TAG_SYMLINK           = 0xA000000C\n\tSYMBOLIC_LINK_FLAG_DIRECTORY     = 0x1\n)\n\nconst (\n\tComputerNameNetBIOS                   = 0\n\tComputerNameDnsHostname               = 1\n\tComputerNameDnsDomain                 = 2\n\tComputerNameDnsFullyQualified         = 3\n\tComputerNamePhysicalNetBIOS           = 4\n\tComputerNamePhysicalDnsHostname       = 5\n\tComputerNamePhysicalDnsDomain         = 6\n\tComputerNamePhysicalDnsFullyQualified = 7\n\tComputerNameMax                       = 8\n)\n\n// For MessageBox()\nconst (\n\tMB_OK                   = 0x00000000\n\tMB_OKCANCEL             = 0x00000001\n\tMB_ABORTRETRYIGNORE     = 0x00000002\n\tMB_YESNOCANCEL          = 0x00000003\n\tMB_YESNO                = 0x00000004\n\tMB_RETRYCANCEL          = 0x00000005\n\tMB_CANCELTRYCONTINUE    = 0x00000006\n\tMB_ICONHAND             = 0x00000010\n\tMB_ICONQUESTION         = 0x00000020\n\tMB_ICONEXCLAMATION      = 0x00000030\n\tMB_ICONASTERISK         = 0x00000040\n\tMB_USERICON             = 0x00000080\n\tMB_ICONWARNING          = MB_ICONEXCLAMATION\n\tMB_ICONERROR            = MB_ICONHAND\n\tMB_ICONINFORMATION      = MB_ICONASTERISK\n\tMB_ICONSTOP             = MB_ICONHAND\n\tMB_DEFBUTTON1           = 0x00000000\n\tMB_DEFBUTTON2           = 0x00000100\n\tMB_DEFBUTTON3           = 0x00000200\n\tMB_DEFBUTTON4           = 0x00000300\n\tMB_APPLMODAL            = 0x00000000\n\tMB_SYSTEMMODAL          = 0x00001000\n\tMB_TASKMODAL            = 0x00002000\n\tMB_HELP                 = 0x00004000\n\tMB_NOFOCUS              = 0x00008000\n\tMB_SETFOREGROUND        = 0x00010000\n\tMB_DEFAULT_DESKTOP_ONLY = 0x00020000\n\tMB_TOPMOST              = 0x00040000\n\tMB_RIGHT                = 0x00080000\n\tMB_RTLREADING           = 0x00100000\n\tMB_SERVICE_NOTIFICATION = 0x00200000\n)\n\nconst (\n\tMOVEFILE_REPLACE_EXISTING      = 0x1\n\tMOVEFILE_COPY_ALLOWED          = 0x2\n\tMOVEFILE_DELAY_UNTIL_REBOOT    = 0x4\n\tMOVEFILE_WRITE_THROUGH         = 0x8\n\tMOVEFILE_CREATE_HARDLINK       = 0x10\n\tMOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20\n)\n\n// Flags for GetAdaptersAddresses, see\n// https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getadaptersaddresses.\nconst (\n\tGAA_FLAG_SKIP_UNICAST                = 0x1\n\tGAA_FLAG_SKIP_ANYCAST                = 0x2\n\tGAA_FLAG_SKIP_MULTICAST              = 0x4\n\tGAA_FLAG_SKIP_DNS_SERVER             = 0x8\n\tGAA_FLAG_INCLUDE_PREFIX              = 0x10\n\tGAA_FLAG_SKIP_FRIENDLY_NAME          = 0x20\n\tGAA_FLAG_INCLUDE_WINS_INFO           = 0x40\n\tGAA_FLAG_INCLUDE_GATEWAYS            = 0x80\n\tGAA_FLAG_INCLUDE_ALL_INTERFACES      = 0x100\n\tGAA_FLAG_INCLUDE_ALL_COMPARTMENTS    = 0x200\n\tGAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER = 0x400\n)\n\nconst (\n\tIF_TYPE_OTHER              = 1\n\tIF_TYPE_ETHERNET_CSMACD    = 6\n\tIF_TYPE_ISO88025_TOKENRING = 9\n\tIF_TYPE_PPP                = 23\n\tIF_TYPE_SOFTWARE_LOOPBACK  = 24\n\tIF_TYPE_ATM                = 37\n\tIF_TYPE_IEEE80211          = 71\n\tIF_TYPE_TUNNEL             = 131\n\tIF_TYPE_IEEE1394           = 144\n)\n\n// Enum NL_PREFIX_ORIGIN for [IpAdapterUnicastAddress], see\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_prefix_origin\nconst (\n\tIpPrefixOriginOther               = 0\n\tIpPrefixOriginManual              = 1\n\tIpPrefixOriginWellKnown           = 2\n\tIpPrefixOriginDhcp                = 3\n\tIpPrefixOriginRouterAdvertisement = 4\n\tIpPrefixOriginUnchanged           = 1 << 4\n)\n\n// Enum NL_SUFFIX_ORIGIN for [IpAdapterUnicastAddress], see\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_suffix_origin\nconst (\n\tNlsoOther                      = 0\n\tNlsoManual                     = 1\n\tNlsoWellKnown                  = 2\n\tNlsoDhcp                       = 3\n\tNlsoLinkLayerAddress           = 4\n\tNlsoRandom                     = 5\n\tIpSuffixOriginOther            = 0\n\tIpSuffixOriginManual           = 1\n\tIpSuffixOriginWellKnown        = 2\n\tIpSuffixOriginDhcp             = 3\n\tIpSuffixOriginLinkLayerAddress = 4\n\tIpSuffixOriginRandom           = 5\n\tIpSuffixOriginUnchanged        = 1 << 4\n)\n\n// Enum NL_DAD_STATE for [IpAdapterUnicastAddress], see\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_dad_state\nconst (\n\tNldsInvalid          = 0\n\tNldsTentative        = 1\n\tNldsDuplicate        = 2\n\tNldsDeprecated       = 3\n\tNldsPreferred        = 4\n\tIpDadStateInvalid    = 0\n\tIpDadStateTentative  = 1\n\tIpDadStateDuplicate  = 2\n\tIpDadStateDeprecated = 3\n\tIpDadStatePreferred  = 4\n)\n\ntype SocketAddress struct {\n\tSockaddr       *syscall.RawSockaddrAny\n\tSockaddrLength int32\n}\n\n// IP returns an IPv4 or IPv6 address, or nil if the underlying SocketAddress is neither.\nfunc (addr *SocketAddress) IP() net.IP {\n\tif uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet4{}) && addr.Sockaddr.Addr.Family == AF_INET {\n\t\treturn (*RawSockaddrInet4)(unsafe.Pointer(addr.Sockaddr)).Addr[:]\n\t} else if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet6{}) && addr.Sockaddr.Addr.Family == AF_INET6 {\n\t\treturn (*RawSockaddrInet6)(unsafe.Pointer(addr.Sockaddr)).Addr[:]\n\t}\n\treturn nil\n}\n\ntype IpAdapterUnicastAddress struct {\n\tLength             uint32\n\tFlags              uint32\n\tNext               *IpAdapterUnicastAddress\n\tAddress            SocketAddress\n\tPrefixOrigin       int32\n\tSuffixOrigin       int32\n\tDadState           int32\n\tValidLifetime      uint32\n\tPreferredLifetime  uint32\n\tLeaseLifetime      uint32\n\tOnLinkPrefixLength uint8\n}\n\ntype IpAdapterAnycastAddress struct {\n\tLength  uint32\n\tFlags   uint32\n\tNext    *IpAdapterAnycastAddress\n\tAddress SocketAddress\n}\n\ntype IpAdapterMulticastAddress struct {\n\tLength  uint32\n\tFlags   uint32\n\tNext    *IpAdapterMulticastAddress\n\tAddress SocketAddress\n}\n\ntype IpAdapterDnsServerAdapter struct {\n\tLength   uint32\n\tReserved uint32\n\tNext     *IpAdapterDnsServerAdapter\n\tAddress  SocketAddress\n}\n\ntype IpAdapterPrefix struct {\n\tLength       uint32\n\tFlags        uint32\n\tNext         *IpAdapterPrefix\n\tAddress      SocketAddress\n\tPrefixLength uint32\n}\n\ntype IpAdapterAddresses struct {\n\tLength                 uint32\n\tIfIndex                uint32\n\tNext                   *IpAdapterAddresses\n\tAdapterName            *byte\n\tFirstUnicastAddress    *IpAdapterUnicastAddress\n\tFirstAnycastAddress    *IpAdapterAnycastAddress\n\tFirstMulticastAddress  *IpAdapterMulticastAddress\n\tFirstDnsServerAddress  *IpAdapterDnsServerAdapter\n\tDnsSuffix              *uint16\n\tDescription            *uint16\n\tFriendlyName           *uint16\n\tPhysicalAddress        [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte\n\tPhysicalAddressLength  uint32\n\tFlags                  uint32\n\tMtu                    uint32\n\tIfType                 uint32\n\tOperStatus             uint32\n\tIpv6IfIndex            uint32\n\tZoneIndices            [16]uint32\n\tFirstPrefix            *IpAdapterPrefix\n\tTransmitLinkSpeed      uint64\n\tReceiveLinkSpeed       uint64\n\tFirstWinsServerAddress *IpAdapterWinsServerAddress\n\tFirstGatewayAddress    *IpAdapterGatewayAddress\n\tIpv4Metric             uint32\n\tIpv6Metric             uint32\n\tLuid                   uint64\n\tDhcpv4Server           SocketAddress\n\tCompartmentId          uint32\n\tNetworkGuid            GUID\n\tConnectionType         uint32\n\tTunnelType             uint32\n\tDhcpv6Server           SocketAddress\n\tDhcpv6ClientDuid       [MAX_DHCPV6_DUID_LENGTH]byte\n\tDhcpv6ClientDuidLength uint32\n\tDhcpv6Iaid             uint32\n\tFirstDnsSuffix         *IpAdapterDNSSuffix\n}\n\ntype IpAdapterWinsServerAddress struct {\n\tLength   uint32\n\tReserved uint32\n\tNext     *IpAdapterWinsServerAddress\n\tAddress  SocketAddress\n}\n\ntype IpAdapterGatewayAddress struct {\n\tLength   uint32\n\tReserved uint32\n\tNext     *IpAdapterGatewayAddress\n\tAddress  SocketAddress\n}\n\ntype IpAdapterDNSSuffix struct {\n\tNext   *IpAdapterDNSSuffix\n\tString [MAX_DNS_SUFFIX_STRING_LENGTH]uint16\n}\n\nconst (\n\tIfOperStatusUp             = 1\n\tIfOperStatusDown           = 2\n\tIfOperStatusTesting        = 3\n\tIfOperStatusUnknown        = 4\n\tIfOperStatusDormant        = 5\n\tIfOperStatusNotPresent     = 6\n\tIfOperStatusLowerLayerDown = 7\n)\n\n// Console related constants used for the mode parameter to SetConsoleMode. See\n// https://docs.microsoft.com/en-us/windows/console/setconsolemode for details.\n\nconst (\n\tENABLE_PROCESSED_INPUT        = 0x1\n\tENABLE_LINE_INPUT             = 0x2\n\tENABLE_ECHO_INPUT             = 0x4\n\tENABLE_WINDOW_INPUT           = 0x8\n\tENABLE_MOUSE_INPUT            = 0x10\n\tENABLE_INSERT_MODE            = 0x20\n\tENABLE_QUICK_EDIT_MODE        = 0x40\n\tENABLE_EXTENDED_FLAGS         = 0x80\n\tENABLE_AUTO_POSITION          = 0x100\n\tENABLE_VIRTUAL_TERMINAL_INPUT = 0x200\n\n\tENABLE_PROCESSED_OUTPUT            = 0x1\n\tENABLE_WRAP_AT_EOL_OUTPUT          = 0x2\n\tENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4\n\tDISABLE_NEWLINE_AUTO_RETURN        = 0x8\n\tENABLE_LVB_GRID_WORLDWIDE          = 0x10\n)\n\n// Pseudo console related constants used for the flags parameter to\n// CreatePseudoConsole. See: https://learn.microsoft.com/en-us/windows/console/createpseudoconsole\nconst (\n\tPSEUDOCONSOLE_INHERIT_CURSOR = 0x1\n)\n\ntype Coord struct {\n\tX int16\n\tY int16\n}\n\ntype SmallRect struct {\n\tLeft   int16\n\tTop    int16\n\tRight  int16\n\tBottom int16\n}\n\n// Used with GetConsoleScreenBuffer to retrieve information about a console\n// screen buffer. See\n// https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str\n// for details.\n\ntype ConsoleScreenBufferInfo struct {\n\tSize              Coord\n\tCursorPosition    Coord\n\tAttributes        uint16\n\tWindow            SmallRect\n\tMaximumWindowSize Coord\n}\n\nconst UNIX_PATH_MAX = 108 // defined in afunix.h\n\nconst (\n\t// flags for JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags\n\tJOB_OBJECT_LIMIT_ACTIVE_PROCESS             = 0x00000008\n\tJOB_OBJECT_LIMIT_AFFINITY                   = 0x00000010\n\tJOB_OBJECT_LIMIT_BREAKAWAY_OK               = 0x00000800\n\tJOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400\n\tJOB_OBJECT_LIMIT_JOB_MEMORY                 = 0x00000200\n\tJOB_OBJECT_LIMIT_JOB_TIME                   = 0x00000004\n\tJOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE          = 0x00002000\n\tJOB_OBJECT_LIMIT_PRESERVE_JOB_TIME          = 0x00000040\n\tJOB_OBJECT_LIMIT_PRIORITY_CLASS             = 0x00000020\n\tJOB_OBJECT_LIMIT_PROCESS_MEMORY             = 0x00000100\n\tJOB_OBJECT_LIMIT_PROCESS_TIME               = 0x00000002\n\tJOB_OBJECT_LIMIT_SCHEDULING_CLASS           = 0x00000080\n\tJOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK        = 0x00001000\n\tJOB_OBJECT_LIMIT_SUBSET_AFFINITY            = 0x00004000\n\tJOB_OBJECT_LIMIT_WORKINGSET                 = 0x00000001\n)\n\ntype IO_COUNTERS struct {\n\tReadOperationCount  uint64\n\tWriteOperationCount uint64\n\tOtherOperationCount uint64\n\tReadTransferCount   uint64\n\tWriteTransferCount  uint64\n\tOtherTransferCount  uint64\n}\n\ntype JOBOBJECT_EXTENDED_LIMIT_INFORMATION struct {\n\tBasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION\n\tIoInfo                IO_COUNTERS\n\tProcessMemoryLimit    uintptr\n\tJobMemoryLimit        uintptr\n\tPeakProcessMemoryUsed uintptr\n\tPeakJobMemoryUsed     uintptr\n}\n\nconst (\n\t// UIRestrictionsClass\n\tJOB_OBJECT_UILIMIT_DESKTOP          = 0x00000040\n\tJOB_OBJECT_UILIMIT_DISPLAYSETTINGS  = 0x00000010\n\tJOB_OBJECT_UILIMIT_EXITWINDOWS      = 0x00000080\n\tJOB_OBJECT_UILIMIT_GLOBALATOMS      = 0x00000020\n\tJOB_OBJECT_UILIMIT_HANDLES          = 0x00000001\n\tJOB_OBJECT_UILIMIT_READCLIPBOARD    = 0x00000002\n\tJOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008\n\tJOB_OBJECT_UILIMIT_WRITECLIPBOARD   = 0x00000004\n)\n\ntype JOBOBJECT_BASIC_UI_RESTRICTIONS struct {\n\tUIRestrictionsClass uint32\n}\n\nconst (\n\t// JobObjectInformationClass for QueryInformationJobObject and SetInformationJobObject\n\tJobObjectAssociateCompletionPortInformation = 7\n\tJobObjectBasicAccountingInformation         = 1\n\tJobObjectBasicAndIoAccountingInformation    = 8\n\tJobObjectBasicLimitInformation              = 2\n\tJobObjectBasicProcessIdList                 = 3\n\tJobObjectBasicUIRestrictions                = 4\n\tJobObjectCpuRateControlInformation          = 15\n\tJobObjectEndOfJobTimeInformation            = 6\n\tJobObjectExtendedLimitInformation           = 9\n\tJobObjectGroupInformation                   = 11\n\tJobObjectGroupInformationEx                 = 14\n\tJobObjectLimitViolationInformation          = 13\n\tJobObjectLimitViolationInformation2         = 34\n\tJobObjectNetRateControlInformation          = 32\n\tJobObjectNotificationLimitInformation       = 12\n\tJobObjectNotificationLimitInformation2      = 33\n\tJobObjectSecurityLimitInformation           = 5\n)\n\nconst (\n\tKF_FLAG_DEFAULT                          = 0x00000000\n\tKF_FLAG_FORCE_APP_DATA_REDIRECTION       = 0x00080000\n\tKF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000\n\tKF_FLAG_FORCE_PACKAGE_REDIRECTION        = 0x00020000\n\tKF_FLAG_NO_PACKAGE_REDIRECTION           = 0x00010000\n\tKF_FLAG_FORCE_APPCONTAINER_REDIRECTION   = 0x00020000\n\tKF_FLAG_NO_APPCONTAINER_REDIRECTION      = 0x00010000\n\tKF_FLAG_CREATE                           = 0x00008000\n\tKF_FLAG_DONT_VERIFY                      = 0x00004000\n\tKF_FLAG_DONT_UNEXPAND                    = 0x00002000\n\tKF_FLAG_NO_ALIAS                         = 0x00001000\n\tKF_FLAG_INIT                             = 0x00000800\n\tKF_FLAG_DEFAULT_PATH                     = 0x00000400\n\tKF_FLAG_NOT_PARENT_RELATIVE              = 0x00000200\n\tKF_FLAG_SIMPLE_IDLIST                    = 0x00000100\n\tKF_FLAG_ALIAS_ONLY                       = 0x80000000\n)\n\ntype OsVersionInfoEx struct {\n\tosVersionInfoSize uint32\n\tMajorVersion      uint32\n\tMinorVersion      uint32\n\tBuildNumber       uint32\n\tPlatformId        uint32\n\tCsdVersion        [128]uint16\n\tServicePackMajor  uint16\n\tServicePackMinor  uint16\n\tSuiteMask         uint16\n\tProductType       byte\n\t_                 byte\n}\n\nconst (\n\tEWX_LOGOFF          = 0x00000000\n\tEWX_SHUTDOWN        = 0x00000001\n\tEWX_REBOOT          = 0x00000002\n\tEWX_FORCE           = 0x00000004\n\tEWX_POWEROFF        = 0x00000008\n\tEWX_FORCEIFHUNG     = 0x00000010\n\tEWX_QUICKRESOLVE    = 0x00000020\n\tEWX_RESTARTAPPS     = 0x00000040\n\tEWX_HYBRID_SHUTDOWN = 0x00400000\n\tEWX_BOOTOPTIONS     = 0x01000000\n\n\tSHTDN_REASON_FLAG_COMMENT_REQUIRED          = 0x01000000\n\tSHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000\n\tSHTDN_REASON_FLAG_CLEAN_UI                  = 0x04000000\n\tSHTDN_REASON_FLAG_DIRTY_UI                  = 0x08000000\n\tSHTDN_REASON_FLAG_USER_DEFINED              = 0x40000000\n\tSHTDN_REASON_FLAG_PLANNED                   = 0x80000000\n\tSHTDN_REASON_MAJOR_OTHER                    = 0x00000000\n\tSHTDN_REASON_MAJOR_NONE                     = 0x00000000\n\tSHTDN_REASON_MAJOR_HARDWARE                 = 0x00010000\n\tSHTDN_REASON_MAJOR_OPERATINGSYSTEM          = 0x00020000\n\tSHTDN_REASON_MAJOR_SOFTWARE                 = 0x00030000\n\tSHTDN_REASON_MAJOR_APPLICATION              = 0x00040000\n\tSHTDN_REASON_MAJOR_SYSTEM                   = 0x00050000\n\tSHTDN_REASON_MAJOR_POWER                    = 0x00060000\n\tSHTDN_REASON_MAJOR_LEGACY_API               = 0x00070000\n\tSHTDN_REASON_MINOR_OTHER                    = 0x00000000\n\tSHTDN_REASON_MINOR_NONE                     = 0x000000ff\n\tSHTDN_REASON_MINOR_MAINTENANCE              = 0x00000001\n\tSHTDN_REASON_MINOR_INSTALLATION             = 0x00000002\n\tSHTDN_REASON_MINOR_UPGRADE                  = 0x00000003\n\tSHTDN_REASON_MINOR_RECONFIG                 = 0x00000004\n\tSHTDN_REASON_MINOR_HUNG                     = 0x00000005\n\tSHTDN_REASON_MINOR_UNSTABLE                 = 0x00000006\n\tSHTDN_REASON_MINOR_DISK                     = 0x00000007\n\tSHTDN_REASON_MINOR_PROCESSOR                = 0x00000008\n\tSHTDN_REASON_MINOR_NETWORKCARD              = 0x00000009\n\tSHTDN_REASON_MINOR_POWER_SUPPLY             = 0x0000000a\n\tSHTDN_REASON_MINOR_CORDUNPLUGGED            = 0x0000000b\n\tSHTDN_REASON_MINOR_ENVIRONMENT              = 0x0000000c\n\tSHTDN_REASON_MINOR_HARDWARE_DRIVER          = 0x0000000d\n\tSHTDN_REASON_MINOR_OTHERDRIVER              = 0x0000000e\n\tSHTDN_REASON_MINOR_BLUESCREEN               = 0x0000000F\n\tSHTDN_REASON_MINOR_SERVICEPACK              = 0x00000010\n\tSHTDN_REASON_MINOR_HOTFIX                   = 0x00000011\n\tSHTDN_REASON_MINOR_SECURITYFIX              = 0x00000012\n\tSHTDN_REASON_MINOR_SECURITY                 = 0x00000013\n\tSHTDN_REASON_MINOR_NETWORK_CONNECTIVITY     = 0x00000014\n\tSHTDN_REASON_MINOR_WMI                      = 0x00000015\n\tSHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL    = 0x00000016\n\tSHTDN_REASON_MINOR_HOTFIX_UNINSTALL         = 0x00000017\n\tSHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL    = 0x00000018\n\tSHTDN_REASON_MINOR_MMC                      = 0x00000019\n\tSHTDN_REASON_MINOR_SYSTEMRESTORE            = 0x0000001a\n\tSHTDN_REASON_MINOR_TERMSRV                  = 0x00000020\n\tSHTDN_REASON_MINOR_DC_PROMOTION             = 0x00000021\n\tSHTDN_REASON_MINOR_DC_DEMOTION              = 0x00000022\n\tSHTDN_REASON_UNKNOWN                        = SHTDN_REASON_MINOR_NONE\n\tSHTDN_REASON_LEGACY_API                     = SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED\n\tSHTDN_REASON_VALID_BIT_MASK                 = 0xc0ffffff\n\n\tSHUTDOWN_NORETRY = 0x1\n)\n\n// Flags used for GetModuleHandleEx\nconst (\n\tGET_MODULE_HANDLE_EX_FLAG_PIN                = 1\n\tGET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2\n\tGET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS       = 4\n)\n\n// MUI function flag values\nconst (\n\tMUI_LANGUAGE_ID                    = 0x4\n\tMUI_LANGUAGE_NAME                  = 0x8\n\tMUI_MERGE_SYSTEM_FALLBACK          = 0x10\n\tMUI_MERGE_USER_FALLBACK            = 0x20\n\tMUI_UI_FALLBACK                    = MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK\n\tMUI_THREAD_LANGUAGES               = 0x40\n\tMUI_CONSOLE_FILTER                 = 0x100\n\tMUI_COMPLEX_SCRIPT_FILTER          = 0x200\n\tMUI_RESET_FILTERS                  = 0x001\n\tMUI_USER_PREFERRED_UI_LANGUAGES    = 0x10\n\tMUI_USE_INSTALLED_LANGUAGES        = 0x20\n\tMUI_USE_SEARCH_ALL_LANGUAGES       = 0x40\n\tMUI_LANG_NEUTRAL_PE_FILE           = 0x100\n\tMUI_NON_LANG_NEUTRAL_FILE          = 0x200\n\tMUI_MACHINE_LANGUAGE_SETTINGS      = 0x400\n\tMUI_FILETYPE_NOT_LANGUAGE_NEUTRAL  = 0x001\n\tMUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 0x002\n\tMUI_FILETYPE_LANGUAGE_NEUTRAL_MUI  = 0x004\n\tMUI_QUERY_TYPE                     = 0x001\n\tMUI_QUERY_CHECKSUM                 = 0x002\n\tMUI_QUERY_LANGUAGE_NAME            = 0x004\n\tMUI_QUERY_RESOURCE_TYPES           = 0x008\n\tMUI_FILEINFO_VERSION               = 0x001\n\n\tMUI_FULL_LANGUAGE      = 0x01\n\tMUI_PARTIAL_LANGUAGE   = 0x02\n\tMUI_LIP_LANGUAGE       = 0x04\n\tMUI_LANGUAGE_INSTALLED = 0x20\n\tMUI_LANGUAGE_LICENSED  = 0x40\n)\n\n// FILE_INFO_BY_HANDLE_CLASS constants for SetFileInformationByHandle/GetFileInformationByHandleEx\nconst (\n\tFileBasicInfo                  = 0\n\tFileStandardInfo               = 1\n\tFileNameInfo                   = 2\n\tFileRenameInfo                 = 3\n\tFileDispositionInfo            = 4\n\tFileAllocationInfo             = 5\n\tFileEndOfFileInfo              = 6\n\tFileStreamInfo                 = 7\n\tFileCompressionInfo            = 8\n\tFileAttributeTagInfo           = 9\n\tFileIdBothDirectoryInfo        = 10\n\tFileIdBothDirectoryRestartInfo = 11\n\tFileIoPriorityHintInfo         = 12\n\tFileRemoteProtocolInfo         = 13\n\tFileFullDirectoryInfo          = 14\n\tFileFullDirectoryRestartInfo   = 15\n\tFileStorageInfo                = 16\n\tFileAlignmentInfo              = 17\n\tFileIdInfo                     = 18\n\tFileIdExtdDirectoryInfo        = 19\n\tFileIdExtdDirectoryRestartInfo = 20\n\tFileDispositionInfoEx          = 21\n\tFileRenameInfoEx               = 22\n\tFileCaseSensitiveInfo          = 23\n\tFileNormalizedNameInfo         = 24\n)\n\n// LoadLibrary flags for determining from where to search for a DLL\nconst (\n\tDONT_RESOLVE_DLL_REFERENCES               = 0x1\n\tLOAD_LIBRARY_AS_DATAFILE                  = 0x2\n\tLOAD_WITH_ALTERED_SEARCH_PATH             = 0x8\n\tLOAD_IGNORE_CODE_AUTHZ_LEVEL              = 0x10\n\tLOAD_LIBRARY_AS_IMAGE_RESOURCE            = 0x20\n\tLOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE        = 0x40\n\tLOAD_LIBRARY_REQUIRE_SIGNED_TARGET        = 0x80\n\tLOAD_LIBRARY_SEARCH_DLL_LOAD_DIR          = 0x100\n\tLOAD_LIBRARY_SEARCH_APPLICATION_DIR       = 0x200\n\tLOAD_LIBRARY_SEARCH_USER_DIRS             = 0x400\n\tLOAD_LIBRARY_SEARCH_SYSTEM32              = 0x800\n\tLOAD_LIBRARY_SEARCH_DEFAULT_DIRS          = 0x1000\n\tLOAD_LIBRARY_SAFE_CURRENT_DIRS            = 0x00002000\n\tLOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER = 0x00004000\n\tLOAD_LIBRARY_OS_INTEGRITY_CONTINUITY      = 0x00008000\n)\n\n// RegNotifyChangeKeyValue notifyFilter flags.\nconst (\n\t// REG_NOTIFY_CHANGE_NAME notifies the caller if a subkey is added or deleted.\n\tREG_NOTIFY_CHANGE_NAME = 0x00000001\n\n\t// REG_NOTIFY_CHANGE_ATTRIBUTES notifies the caller of changes to the attributes of the key, such as the security descriptor information.\n\tREG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002\n\n\t// REG_NOTIFY_CHANGE_LAST_SET notifies the caller of changes to a value of the key. This can include adding or deleting a value, or changing an existing value.\n\tREG_NOTIFY_CHANGE_LAST_SET = 0x00000004\n\n\t// REG_NOTIFY_CHANGE_SECURITY notifies the caller of changes to the security descriptor of the key.\n\tREG_NOTIFY_CHANGE_SECURITY = 0x00000008\n\n\t// REG_NOTIFY_THREAD_AGNOSTIC indicates that the lifetime of the registration must not be tied to the lifetime of the thread issuing the RegNotifyChangeKeyValue call. Note: This flag value is only supported in Windows 8 and later.\n\tREG_NOTIFY_THREAD_AGNOSTIC = 0x10000000\n)\n\ntype CommTimeouts struct {\n\tReadIntervalTimeout         uint32\n\tReadTotalTimeoutMultiplier  uint32\n\tReadTotalTimeoutConstant    uint32\n\tWriteTotalTimeoutMultiplier uint32\n\tWriteTotalTimeoutConstant   uint32\n}\n\n// NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING.\ntype NTUnicodeString struct {\n\tLength        uint16\n\tMaximumLength uint16\n\tBuffer        *uint16\n}\n\n// NTString is an ANSI string for NT native APIs, corresponding to STRING.\ntype NTString struct {\n\tLength        uint16\n\tMaximumLength uint16\n\tBuffer        *byte\n}\n\ntype LIST_ENTRY struct {\n\tFlink *LIST_ENTRY\n\tBlink *LIST_ENTRY\n}\n\ntype RUNTIME_FUNCTION struct {\n\tBeginAddress uint32\n\tEndAddress   uint32\n\tUnwindData   uint32\n}\n\ntype LDR_DATA_TABLE_ENTRY struct {\n\treserved1          [2]uintptr\n\tInMemoryOrderLinks LIST_ENTRY\n\treserved2          [2]uintptr\n\tDllBase            uintptr\n\treserved3          [2]uintptr\n\tFullDllName        NTUnicodeString\n\treserved4          [8]byte\n\treserved5          [3]uintptr\n\treserved6          uintptr\n\tTimeDateStamp      uint32\n}\n\ntype PEB_LDR_DATA struct {\n\treserved1               [8]byte\n\treserved2               [3]uintptr\n\tInMemoryOrderModuleList LIST_ENTRY\n}\n\ntype CURDIR struct {\n\tDosPath NTUnicodeString\n\tHandle  Handle\n}\n\ntype RTL_DRIVE_LETTER_CURDIR struct {\n\tFlags     uint16\n\tLength    uint16\n\tTimeStamp uint32\n\tDosPath   NTString\n}\n\ntype RTL_USER_PROCESS_PARAMETERS struct {\n\tMaximumLength, Length uint32\n\n\tFlags, DebugFlags uint32\n\n\tConsoleHandle                                Handle\n\tConsoleFlags                                 uint32\n\tStandardInput, StandardOutput, StandardError Handle\n\n\tCurrentDirectory CURDIR\n\tDllPath          NTUnicodeString\n\tImagePathName    NTUnicodeString\n\tCommandLine      NTUnicodeString\n\tEnvironment      unsafe.Pointer\n\n\tStartingX, StartingY, CountX, CountY, CountCharsX, CountCharsY, FillAttribute uint32\n\n\tWindowFlags, ShowWindowFlags                     uint32\n\tWindowTitle, DesktopInfo, ShellInfo, RuntimeData NTUnicodeString\n\tCurrentDirectories                               [32]RTL_DRIVE_LETTER_CURDIR\n\n\tEnvironmentSize, EnvironmentVersion uintptr\n\n\tPackageDependencyData unsafe.Pointer\n\tProcessGroupId        uint32\n\tLoaderThreads         uint32\n\n\tRedirectionDllName               NTUnicodeString\n\tHeapPartitionName                NTUnicodeString\n\tDefaultThreadpoolCpuSetMasks     uintptr\n\tDefaultThreadpoolCpuSetMaskCount uint32\n}\n\ntype PEB struct {\n\treserved1              [2]byte\n\tBeingDebugged          byte\n\tBitField               byte\n\treserved3              uintptr\n\tImageBaseAddress       uintptr\n\tLdr                    *PEB_LDR_DATA\n\tProcessParameters      *RTL_USER_PROCESS_PARAMETERS\n\treserved4              [3]uintptr\n\tAtlThunkSListPtr       uintptr\n\treserved5              uintptr\n\treserved6              uint32\n\treserved7              uintptr\n\treserved8              uint32\n\tAtlThunkSListPtr32     uint32\n\treserved9              [45]uintptr\n\treserved10             [96]byte\n\tPostProcessInitRoutine uintptr\n\treserved11             [128]byte\n\treserved12             [1]uintptr\n\tSessionId              uint32\n}\n\ntype OBJECT_ATTRIBUTES struct {\n\tLength             uint32\n\tRootDirectory      Handle\n\tObjectName         *NTUnicodeString\n\tAttributes         uint32\n\tSecurityDescriptor *SECURITY_DESCRIPTOR\n\tSecurityQoS        *SECURITY_QUALITY_OF_SERVICE\n}\n\n// Values for the Attributes member of OBJECT_ATTRIBUTES.\nconst (\n\tOBJ_INHERIT                       = 0x00000002\n\tOBJ_PERMANENT                     = 0x00000010\n\tOBJ_EXCLUSIVE                     = 0x00000020\n\tOBJ_CASE_INSENSITIVE              = 0x00000040\n\tOBJ_OPENIF                        = 0x00000080\n\tOBJ_OPENLINK                      = 0x00000100\n\tOBJ_KERNEL_HANDLE                 = 0x00000200\n\tOBJ_FORCE_ACCESS_CHECK            = 0x00000400\n\tOBJ_IGNORE_IMPERSONATED_DEVICEMAP = 0x00000800\n\tOBJ_DONT_REPARSE                  = 0x00001000\n\tOBJ_VALID_ATTRIBUTES              = 0x00001FF2\n)\n\ntype IO_STATUS_BLOCK struct {\n\tStatus      NTStatus\n\tInformation uintptr\n}\n\ntype RTLP_CURDIR_REF struct {\n\tRefCount int32\n\tHandle   Handle\n}\n\ntype RTL_RELATIVE_NAME struct {\n\tRelativeName        NTUnicodeString\n\tContainingDirectory Handle\n\tCurDirRef           *RTLP_CURDIR_REF\n}\n\nconst (\n\t// CreateDisposition flags for NtCreateFile and NtCreateNamedPipeFile.\n\tFILE_SUPERSEDE           = 0x00000000\n\tFILE_OPEN                = 0x00000001\n\tFILE_CREATE              = 0x00000002\n\tFILE_OPEN_IF             = 0x00000003\n\tFILE_OVERWRITE           = 0x00000004\n\tFILE_OVERWRITE_IF        = 0x00000005\n\tFILE_MAXIMUM_DISPOSITION = 0x00000005\n\n\t// CreateOptions flags for NtCreateFile and NtCreateNamedPipeFile.\n\tFILE_DIRECTORY_FILE            = 0x00000001\n\tFILE_WRITE_THROUGH             = 0x00000002\n\tFILE_SEQUENTIAL_ONLY           = 0x00000004\n\tFILE_NO_INTERMEDIATE_BUFFERING = 0x00000008\n\tFILE_SYNCHRONOUS_IO_ALERT      = 0x00000010\n\tFILE_SYNCHRONOUS_IO_NONALERT   = 0x00000020\n\tFILE_NON_DIRECTORY_FILE        = 0x00000040\n\tFILE_CREATE_TREE_CONNECTION    = 0x00000080\n\tFILE_COMPLETE_IF_OPLOCKED      = 0x00000100\n\tFILE_NO_EA_KNOWLEDGE           = 0x00000200\n\tFILE_OPEN_REMOTE_INSTANCE      = 0x00000400\n\tFILE_RANDOM_ACCESS             = 0x00000800\n\tFILE_DELETE_ON_CLOSE           = 0x00001000\n\tFILE_OPEN_BY_FILE_ID           = 0x00002000\n\tFILE_OPEN_FOR_BACKUP_INTENT    = 0x00004000\n\tFILE_NO_COMPRESSION            = 0x00008000\n\tFILE_OPEN_REQUIRING_OPLOCK     = 0x00010000\n\tFILE_DISALLOW_EXCLUSIVE        = 0x00020000\n\tFILE_RESERVE_OPFILTER          = 0x00100000\n\tFILE_OPEN_REPARSE_POINT        = 0x00200000\n\tFILE_OPEN_NO_RECALL            = 0x00400000\n\tFILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000\n\n\t// Parameter constants for NtCreateNamedPipeFile.\n\n\tFILE_PIPE_BYTE_STREAM_TYPE = 0x00000000\n\tFILE_PIPE_MESSAGE_TYPE     = 0x00000001\n\n\tFILE_PIPE_ACCEPT_REMOTE_CLIENTS = 0x00000000\n\tFILE_PIPE_REJECT_REMOTE_CLIENTS = 0x00000002\n\n\tFILE_PIPE_TYPE_VALID_MASK = 0x00000003\n\n\tFILE_PIPE_BYTE_STREAM_MODE = 0x00000000\n\tFILE_PIPE_MESSAGE_MODE     = 0x00000001\n\n\tFILE_PIPE_QUEUE_OPERATION    = 0x00000000\n\tFILE_PIPE_COMPLETE_OPERATION = 0x00000001\n\n\tFILE_PIPE_INBOUND     = 0x00000000\n\tFILE_PIPE_OUTBOUND    = 0x00000001\n\tFILE_PIPE_FULL_DUPLEX = 0x00000002\n\n\tFILE_PIPE_DISCONNECTED_STATE = 0x00000001\n\tFILE_PIPE_LISTENING_STATE    = 0x00000002\n\tFILE_PIPE_CONNECTED_STATE    = 0x00000003\n\tFILE_PIPE_CLOSING_STATE      = 0x00000004\n\n\tFILE_PIPE_CLIENT_END = 0x00000000\n\tFILE_PIPE_SERVER_END = 0x00000001\n)\n\nconst (\n\t// FileInformationClass for NtSetInformationFile\n\tFileBasicInformation                         = 4\n\tFileRenameInformation                        = 10\n\tFileDispositionInformation                   = 13\n\tFilePositionInformation                      = 14\n\tFileEndOfFileInformation                     = 20\n\tFileValidDataLengthInformation               = 39\n\tFileShortNameInformation                     = 40\n\tFileIoPriorityHintInformation                = 43\n\tFileReplaceCompletionInformation             = 61\n\tFileDispositionInformationEx                 = 64\n\tFileCaseSensitiveInformation                 = 71\n\tFileLinkInformation                          = 72\n\tFileCaseSensitiveInformationForceAccessCheck = 75\n\tFileKnownFolderInformation                   = 76\n\n\t// Flags for FILE_RENAME_INFORMATION\n\tFILE_RENAME_REPLACE_IF_EXISTS                    = 0x00000001\n\tFILE_RENAME_POSIX_SEMANTICS                      = 0x00000002\n\tFILE_RENAME_SUPPRESS_PIN_STATE_INHERITANCE       = 0x00000004\n\tFILE_RENAME_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008\n\tFILE_RENAME_NO_INCREASE_AVAILABLE_SPACE          = 0x00000010\n\tFILE_RENAME_NO_DECREASE_AVAILABLE_SPACE          = 0x00000020\n\tFILE_RENAME_PRESERVE_AVAILABLE_SPACE             = 0x00000030\n\tFILE_RENAME_IGNORE_READONLY_ATTRIBUTE            = 0x00000040\n\tFILE_RENAME_FORCE_RESIZE_TARGET_SR               = 0x00000080\n\tFILE_RENAME_FORCE_RESIZE_SOURCE_SR               = 0x00000100\n\tFILE_RENAME_FORCE_RESIZE_SR                      = 0x00000180\n\n\t// Flags for FILE_DISPOSITION_INFORMATION_EX\n\tFILE_DISPOSITION_DO_NOT_DELETE             = 0x00000000\n\tFILE_DISPOSITION_DELETE                    = 0x00000001\n\tFILE_DISPOSITION_POSIX_SEMANTICS           = 0x00000002\n\tFILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK = 0x00000004\n\tFILE_DISPOSITION_ON_CLOSE                  = 0x00000008\n\tFILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE = 0x00000010\n\n\t// Flags for FILE_CASE_SENSITIVE_INFORMATION\n\tFILE_CS_FLAG_CASE_SENSITIVE_DIR = 0x00000001\n\n\t// Flags for FILE_LINK_INFORMATION\n\tFILE_LINK_REPLACE_IF_EXISTS                    = 0x00000001\n\tFILE_LINK_POSIX_SEMANTICS                      = 0x00000002\n\tFILE_LINK_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008\n\tFILE_LINK_NO_INCREASE_AVAILABLE_SPACE          = 0x00000010\n\tFILE_LINK_NO_DECREASE_AVAILABLE_SPACE          = 0x00000020\n\tFILE_LINK_PRESERVE_AVAILABLE_SPACE             = 0x00000030\n\tFILE_LINK_IGNORE_READONLY_ATTRIBUTE            = 0x00000040\n\tFILE_LINK_FORCE_RESIZE_TARGET_SR               = 0x00000080\n\tFILE_LINK_FORCE_RESIZE_SOURCE_SR               = 0x00000100\n\tFILE_LINK_FORCE_RESIZE_SR                      = 0x00000180\n)\n\n// ProcessInformationClasses for NtQueryInformationProcess and NtSetInformationProcess.\nconst (\n\tProcessBasicInformation = iota\n\tProcessQuotaLimits\n\tProcessIoCounters\n\tProcessVmCounters\n\tProcessTimes\n\tProcessBasePriority\n\tProcessRaisePriority\n\tProcessDebugPort\n\tProcessExceptionPort\n\tProcessAccessToken\n\tProcessLdtInformation\n\tProcessLdtSize\n\tProcessDefaultHardErrorMode\n\tProcessIoPortHandlers\n\tProcessPooledUsageAndLimits\n\tProcessWorkingSetWatch\n\tProcessUserModeIOPL\n\tProcessEnableAlignmentFaultFixup\n\tProcessPriorityClass\n\tProcessWx86Information\n\tProcessHandleCount\n\tProcessAffinityMask\n\tProcessPriorityBoost\n\tProcessDeviceMap\n\tProcessSessionInformation\n\tProcessForegroundInformation\n\tProcessWow64Information\n\tProcessImageFileName\n\tProcessLUIDDeviceMapsEnabled\n\tProcessBreakOnTermination\n\tProcessDebugObjectHandle\n\tProcessDebugFlags\n\tProcessHandleTracing\n\tProcessIoPriority\n\tProcessExecuteFlags\n\tProcessTlsInformation\n\tProcessCookie\n\tProcessImageInformation\n\tProcessCycleTime\n\tProcessPagePriority\n\tProcessInstrumentationCallback\n\tProcessThreadStackAllocation\n\tProcessWorkingSetWatchEx\n\tProcessImageFileNameWin32\n\tProcessImageFileMapping\n\tProcessAffinityUpdateMode\n\tProcessMemoryAllocationMode\n\tProcessGroupInformation\n\tProcessTokenVirtualizationEnabled\n\tProcessConsoleHostProcess\n\tProcessWindowInformation\n\tProcessHandleInformation\n\tProcessMitigationPolicy\n\tProcessDynamicFunctionTableInformation\n\tProcessHandleCheckingMode\n\tProcessKeepAliveCount\n\tProcessRevokeFileHandles\n\tProcessWorkingSetControl\n\tProcessHandleTable\n\tProcessCheckStackExtentsMode\n\tProcessCommandLineInformation\n\tProcessProtectionInformation\n\tProcessMemoryExhaustion\n\tProcessFaultInformation\n\tProcessTelemetryIdInformation\n\tProcessCommitReleaseInformation\n\tProcessDefaultCpuSetsInformation\n\tProcessAllowedCpuSetsInformation\n\tProcessSubsystemProcess\n\tProcessJobMemoryInformation\n\tProcessInPrivate\n\tProcessRaiseUMExceptionOnInvalidHandleClose\n\tProcessIumChallengeResponse\n\tProcessChildProcessInformation\n\tProcessHighGraphicsPriorityInformation\n\tProcessSubsystemInformation\n\tProcessEnergyValues\n\tProcessActivityThrottleState\n\tProcessActivityThrottlePolicy\n\tProcessWin32kSyscallFilterInformation\n\tProcessDisableSystemAllowedCpuSets\n\tProcessWakeInformation\n\tProcessEnergyTrackingState\n\tProcessManageWritesToExecutableMemory\n\tProcessCaptureTrustletLiveDump\n\tProcessTelemetryCoverage\n\tProcessEnclaveInformation\n\tProcessEnableReadWriteVmLogging\n\tProcessUptimeInformation\n\tProcessImageSection\n\tProcessDebugAuthInformation\n\tProcessSystemResourceManagement\n\tProcessSequenceNumber\n\tProcessLoaderDetour\n\tProcessSecurityDomainInformation\n\tProcessCombineSecurityDomainsInformation\n\tProcessEnableLogging\n\tProcessLeapSecondInformation\n\tProcessFiberShadowStackAllocation\n\tProcessFreeFiberShadowStackAllocation\n\tProcessAltSystemCallInformation\n\tProcessDynamicEHContinuationTargets\n\tProcessDynamicEnforcedCetCompatibleRanges\n)\n\ntype PROCESS_BASIC_INFORMATION struct {\n\tExitStatus                   NTStatus\n\tPebBaseAddress               *PEB\n\tAffinityMask                 uintptr\n\tBasePriority                 int32\n\tUniqueProcessId              uintptr\n\tInheritedFromUniqueProcessId uintptr\n}\n\ntype SYSTEM_PROCESS_INFORMATION struct {\n\tNextEntryOffset              uint32\n\tNumberOfThreads              uint32\n\tWorkingSetPrivateSize        int64\n\tHardFaultCount               uint32\n\tNumberOfThreadsHighWatermark uint32\n\tCycleTime                    uint64\n\tCreateTime                   int64\n\tUserTime                     int64\n\tKernelTime                   int64\n\tImageName                    NTUnicodeString\n\tBasePriority                 int32\n\tUniqueProcessID              uintptr\n\tInheritedFromUniqueProcessID uintptr\n\tHandleCount                  uint32\n\tSessionID                    uint32\n\tUniqueProcessKey             *uint32\n\tPeakVirtualSize              uintptr\n\tVirtualSize                  uintptr\n\tPageFaultCount               uint32\n\tPeakWorkingSetSize           uintptr\n\tWorkingSetSize               uintptr\n\tQuotaPeakPagedPoolUsage      uintptr\n\tQuotaPagedPoolUsage          uintptr\n\tQuotaPeakNonPagedPoolUsage   uintptr\n\tQuotaNonPagedPoolUsage       uintptr\n\tPagefileUsage                uintptr\n\tPeakPagefileUsage            uintptr\n\tPrivatePageCount             uintptr\n\tReadOperationCount           int64\n\tWriteOperationCount          int64\n\tOtherOperationCount          int64\n\tReadTransferCount            int64\n\tWriteTransferCount           int64\n\tOtherTransferCount           int64\n}\n\n// SystemInformationClasses for NtQuerySystemInformation and NtSetSystemInformation\nconst (\n\tSystemBasicInformation = iota\n\tSystemProcessorInformation\n\tSystemPerformanceInformation\n\tSystemTimeOfDayInformation\n\tSystemPathInformation\n\tSystemProcessInformation\n\tSystemCallCountInformation\n\tSystemDeviceInformation\n\tSystemProcessorPerformanceInformation\n\tSystemFlagsInformation\n\tSystemCallTimeInformation\n\tSystemModuleInformation\n\tSystemLocksInformation\n\tSystemStackTraceInformation\n\tSystemPagedPoolInformation\n\tSystemNonPagedPoolInformation\n\tSystemHandleInformation\n\tSystemObjectInformation\n\tSystemPageFileInformation\n\tSystemVdmInstemulInformation\n\tSystemVdmBopInformation\n\tSystemFileCacheInformation\n\tSystemPoolTagInformation\n\tSystemInterruptInformation\n\tSystemDpcBehaviorInformation\n\tSystemFullMemoryInformation\n\tSystemLoadGdiDriverInformation\n\tSystemUnloadGdiDriverInformation\n\tSystemTimeAdjustmentInformation\n\tSystemSummaryMemoryInformation\n\tSystemMirrorMemoryInformation\n\tSystemPerformanceTraceInformation\n\tsystemObsolete0\n\tSystemExceptionInformation\n\tSystemCrashDumpStateInformation\n\tSystemKernelDebuggerInformation\n\tSystemContextSwitchInformation\n\tSystemRegistryQuotaInformation\n\tSystemExtendServiceTableInformation\n\tSystemPrioritySeperation\n\tSystemVerifierAddDriverInformation\n\tSystemVerifierRemoveDriverInformation\n\tSystemProcessorIdleInformation\n\tSystemLegacyDriverInformation\n\tSystemCurrentTimeZoneInformation\n\tSystemLookasideInformation\n\tSystemTimeSlipNotification\n\tSystemSessionCreate\n\tSystemSessionDetach\n\tSystemSessionInformation\n\tSystemRangeStartInformation\n\tSystemVerifierInformation\n\tSystemVerifierThunkExtend\n\tSystemSessionProcessInformation\n\tSystemLoadGdiDriverInSystemSpace\n\tSystemNumaProcessorMap\n\tSystemPrefetcherInformation\n\tSystemExtendedProcessInformation\n\tSystemRecommendedSharedDataAlignment\n\tSystemComPlusPackage\n\tSystemNumaAvailableMemory\n\tSystemProcessorPowerInformation\n\tSystemEmulationBasicInformation\n\tSystemEmulationProcessorInformation\n\tSystemExtendedHandleInformation\n\tSystemLostDelayedWriteInformation\n\tSystemBigPoolInformation\n\tSystemSessionPoolTagInformation\n\tSystemSessionMappedViewInformation\n\tSystemHotpatchInformation\n\tSystemObjectSecurityMode\n\tSystemWatchdogTimerHandler\n\tSystemWatchdogTimerInformation\n\tSystemLogicalProcessorInformation\n\tSystemWow64SharedInformationObsolete\n\tSystemRegisterFirmwareTableInformationHandler\n\tSystemFirmwareTableInformation\n\tSystemModuleInformationEx\n\tSystemVerifierTriageInformation\n\tSystemSuperfetchInformation\n\tSystemMemoryListInformation\n\tSystemFileCacheInformationEx\n\tSystemThreadPriorityClientIdInformation\n\tSystemProcessorIdleCycleTimeInformation\n\tSystemVerifierCancellationInformation\n\tSystemProcessorPowerInformationEx\n\tSystemRefTraceInformation\n\tSystemSpecialPoolInformation\n\tSystemProcessIdInformation\n\tSystemErrorPortInformation\n\tSystemBootEnvironmentInformation\n\tSystemHypervisorInformation\n\tSystemVerifierInformationEx\n\tSystemTimeZoneInformation\n\tSystemImageFileExecutionOptionsInformation\n\tSystemCoverageInformation\n\tSystemPrefetchPatchInformation\n\tSystemVerifierFaultsInformation\n\tSystemSystemPartitionInformation\n\tSystemSystemDiskInformation\n\tSystemProcessorPerformanceDistribution\n\tSystemNumaProximityNodeInformation\n\tSystemDynamicTimeZoneInformation\n\tSystemCodeIntegrityInformation\n\tSystemProcessorMicrocodeUpdateInformation\n\tSystemProcessorBrandString\n\tSystemVirtualAddressInformation\n\tSystemLogicalProcessorAndGroupInformation\n\tSystemProcessorCycleTimeInformation\n\tSystemStoreInformation\n\tSystemRegistryAppendString\n\tSystemAitSamplingValue\n\tSystemVhdBootInformation\n\tSystemCpuQuotaInformation\n\tSystemNativeBasicInformation\n\tsystemSpare1\n\tSystemLowPriorityIoInformation\n\tSystemTpmBootEntropyInformation\n\tSystemVerifierCountersInformation\n\tSystemPagedPoolInformationEx\n\tSystemSystemPtesInformationEx\n\tSystemNodeDistanceInformation\n\tSystemAcpiAuditInformation\n\tSystemBasicPerformanceInformation\n\tSystemQueryPerformanceCounterInformation\n\tSystemSessionBigPoolInformation\n\tSystemBootGraphicsInformation\n\tSystemScrubPhysicalMemoryInformation\n\tSystemBadPageInformation\n\tSystemProcessorProfileControlArea\n\tSystemCombinePhysicalMemoryInformation\n\tSystemEntropyInterruptTimingCallback\n\tSystemConsoleInformation\n\tSystemPlatformBinaryInformation\n\tSystemThrottleNotificationInformation\n\tSystemHypervisorProcessorCountInformation\n\tSystemDeviceDataInformation\n\tSystemDeviceDataEnumerationInformation\n\tSystemMemoryTopologyInformation\n\tSystemMemoryChannelInformation\n\tSystemBootLogoInformation\n\tSystemProcessorPerformanceInformationEx\n\tsystemSpare0\n\tSystemSecureBootPolicyInformation\n\tSystemPageFileInformationEx\n\tSystemSecureBootInformation\n\tSystemEntropyInterruptTimingRawInformation\n\tSystemPortableWorkspaceEfiLauncherInformation\n\tSystemFullProcessInformation\n\tSystemKernelDebuggerInformationEx\n\tSystemBootMetadataInformation\n\tSystemSoftRebootInformation\n\tSystemElamCertificateInformation\n\tSystemOfflineDumpConfigInformation\n\tSystemProcessorFeaturesInformation\n\tSystemRegistryReconciliationInformation\n\tSystemEdidInformation\n\tSystemManufacturingInformation\n\tSystemEnergyEstimationConfigInformation\n\tSystemHypervisorDetailInformation\n\tSystemProcessorCycleStatsInformation\n\tSystemVmGenerationCountInformation\n\tSystemTrustedPlatformModuleInformation\n\tSystemKernelDebuggerFlags\n\tSystemCodeIntegrityPolicyInformation\n\tSystemIsolatedUserModeInformation\n\tSystemHardwareSecurityTestInterfaceResultsInformation\n\tSystemSingleModuleInformation\n\tSystemAllowedCpuSetsInformation\n\tSystemDmaProtectionInformation\n\tSystemInterruptCpuSetsInformation\n\tSystemSecureBootPolicyFullInformation\n\tSystemCodeIntegrityPolicyFullInformation\n\tSystemAffinitizedInterruptProcessorInformation\n\tSystemRootSiloInformation\n)\n\ntype RTL_PROCESS_MODULE_INFORMATION struct {\n\tSection          Handle\n\tMappedBase       uintptr\n\tImageBase        uintptr\n\tImageSize        uint32\n\tFlags            uint32\n\tLoadOrderIndex   uint16\n\tInitOrderIndex   uint16\n\tLoadCount        uint16\n\tOffsetToFileName uint16\n\tFullPathName     [256]byte\n}\n\ntype RTL_PROCESS_MODULES struct {\n\tNumberOfModules uint32\n\tModules         [1]RTL_PROCESS_MODULE_INFORMATION\n}\n\n// Constants for LocalAlloc flags.\nconst (\n\tLMEM_FIXED          = 0x0\n\tLMEM_MOVEABLE       = 0x2\n\tLMEM_NOCOMPACT      = 0x10\n\tLMEM_NODISCARD      = 0x20\n\tLMEM_ZEROINIT       = 0x40\n\tLMEM_MODIFY         = 0x80\n\tLMEM_DISCARDABLE    = 0xf00\n\tLMEM_VALID_FLAGS    = 0xf72\n\tLMEM_INVALID_HANDLE = 0x8000\n\tLHND                = LMEM_MOVEABLE | LMEM_ZEROINIT\n\tLPTR                = LMEM_FIXED | LMEM_ZEROINIT\n\tNONZEROLHND         = LMEM_MOVEABLE\n\tNONZEROLPTR         = LMEM_FIXED\n)\n\n// Constants for the CreateNamedPipe-family of functions.\nconst (\n\tPIPE_ACCESS_INBOUND  = 0x1\n\tPIPE_ACCESS_OUTBOUND = 0x2\n\tPIPE_ACCESS_DUPLEX   = 0x3\n\n\tPIPE_CLIENT_END = 0x0\n\tPIPE_SERVER_END = 0x1\n\n\tPIPE_WAIT                  = 0x0\n\tPIPE_NOWAIT                = 0x1\n\tPIPE_READMODE_BYTE         = 0x0\n\tPIPE_READMODE_MESSAGE      = 0x2\n\tPIPE_TYPE_BYTE             = 0x0\n\tPIPE_TYPE_MESSAGE          = 0x4\n\tPIPE_ACCEPT_REMOTE_CLIENTS = 0x0\n\tPIPE_REJECT_REMOTE_CLIENTS = 0x8\n\n\tPIPE_UNLIMITED_INSTANCES = 255\n)\n\n// Constants for security attributes when opening named pipes.\nconst (\n\tSECURITY_ANONYMOUS      = SecurityAnonymous << 16\n\tSECURITY_IDENTIFICATION = SecurityIdentification << 16\n\tSECURITY_IMPERSONATION  = SecurityImpersonation << 16\n\tSECURITY_DELEGATION     = SecurityDelegation << 16\n\n\tSECURITY_CONTEXT_TRACKING = 0x40000\n\tSECURITY_EFFECTIVE_ONLY   = 0x80000\n\n\tSECURITY_SQOS_PRESENT     = 0x100000\n\tSECURITY_VALID_SQOS_FLAGS = 0x1f0000\n)\n\n// ResourceID represents a 16-bit resource identifier, traditionally created with the MAKEINTRESOURCE macro.\ntype ResourceID uint16\n\n// ResourceIDOrString must be either a ResourceID, to specify a resource or resource type by ID,\n// or a string, to specify a resource or resource type by name.\ntype ResourceIDOrString interface{}\n\n// Predefined resource names and types.\nvar (\n\t// Predefined names.\n\tCREATEPROCESS_MANIFEST_RESOURCE_ID                 ResourceID = 1\n\tISOLATIONAWARE_MANIFEST_RESOURCE_ID                ResourceID = 2\n\tISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID ResourceID = 3\n\tISOLATIONPOLICY_MANIFEST_RESOURCE_ID               ResourceID = 4\n\tISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID       ResourceID = 5\n\tMINIMUM_RESERVED_MANIFEST_RESOURCE_ID              ResourceID = 1  // inclusive\n\tMAXIMUM_RESERVED_MANIFEST_RESOURCE_ID              ResourceID = 16 // inclusive\n\n\t// Predefined types.\n\tRT_CURSOR       ResourceID = 1\n\tRT_BITMAP       ResourceID = 2\n\tRT_ICON         ResourceID = 3\n\tRT_MENU         ResourceID = 4\n\tRT_DIALOG       ResourceID = 5\n\tRT_STRING       ResourceID = 6\n\tRT_FONTDIR      ResourceID = 7\n\tRT_FONT         ResourceID = 8\n\tRT_ACCELERATOR  ResourceID = 9\n\tRT_RCDATA       ResourceID = 10\n\tRT_MESSAGETABLE ResourceID = 11\n\tRT_GROUP_CURSOR ResourceID = 12\n\tRT_GROUP_ICON   ResourceID = 14\n\tRT_VERSION      ResourceID = 16\n\tRT_DLGINCLUDE   ResourceID = 17\n\tRT_PLUGPLAY     ResourceID = 19\n\tRT_VXD          ResourceID = 20\n\tRT_ANICURSOR    ResourceID = 21\n\tRT_ANIICON      ResourceID = 22\n\tRT_HTML         ResourceID = 23\n\tRT_MANIFEST     ResourceID = 24\n)\n\ntype VS_FIXEDFILEINFO struct {\n\tSignature        uint32\n\tStrucVersion     uint32\n\tFileVersionMS    uint32\n\tFileVersionLS    uint32\n\tProductVersionMS uint32\n\tProductVersionLS uint32\n\tFileFlagsMask    uint32\n\tFileFlags        uint32\n\tFileOS           uint32\n\tFileType         uint32\n\tFileSubtype      uint32\n\tFileDateMS       uint32\n\tFileDateLS       uint32\n}\n\ntype COAUTHIDENTITY struct {\n\tUser           *uint16\n\tUserLength     uint32\n\tDomain         *uint16\n\tDomainLength   uint32\n\tPassword       *uint16\n\tPasswordLength uint32\n\tFlags          uint32\n}\n\ntype COAUTHINFO struct {\n\tAuthnSvc           uint32\n\tAuthzSvc           uint32\n\tServerPrincName    *uint16\n\tAuthnLevel         uint32\n\tImpersonationLevel uint32\n\tAuthIdentityData   *COAUTHIDENTITY\n\tCapabilities       uint32\n}\n\ntype COSERVERINFO struct {\n\tReserved1 uint32\n\tAame      *uint16\n\tAuthInfo  *COAUTHINFO\n\tReserved2 uint32\n}\n\ntype BIND_OPTS3 struct {\n\tCbStruct          uint32\n\tFlags             uint32\n\tMode              uint32\n\tTickCountDeadline uint32\n\tTrackFlags        uint32\n\tClassContext      uint32\n\tLocale            uint32\n\tServerInfo        *COSERVERINFO\n\tHwnd              HWND\n}\n\nconst (\n\tCLSCTX_INPROC_SERVER          = 0x1\n\tCLSCTX_INPROC_HANDLER         = 0x2\n\tCLSCTX_LOCAL_SERVER           = 0x4\n\tCLSCTX_INPROC_SERVER16        = 0x8\n\tCLSCTX_REMOTE_SERVER          = 0x10\n\tCLSCTX_INPROC_HANDLER16       = 0x20\n\tCLSCTX_RESERVED1              = 0x40\n\tCLSCTX_RESERVED2              = 0x80\n\tCLSCTX_RESERVED3              = 0x100\n\tCLSCTX_RESERVED4              = 0x200\n\tCLSCTX_NO_CODE_DOWNLOAD       = 0x400\n\tCLSCTX_RESERVED5              = 0x800\n\tCLSCTX_NO_CUSTOM_MARSHAL      = 0x1000\n\tCLSCTX_ENABLE_CODE_DOWNLOAD   = 0x2000\n\tCLSCTX_NO_FAILURE_LOG         = 0x4000\n\tCLSCTX_DISABLE_AAA            = 0x8000\n\tCLSCTX_ENABLE_AAA             = 0x10000\n\tCLSCTX_FROM_DEFAULT_CONTEXT   = 0x20000\n\tCLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000\n\tCLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000\n\tCLSCTX_ENABLE_CLOAKING        = 0x100000\n\tCLSCTX_APPCONTAINER           = 0x400000\n\tCLSCTX_ACTIVATE_AAA_AS_IU     = 0x800000\n\tCLSCTX_PS_DLL                 = 0x80000000\n\n\tCOINIT_MULTITHREADED     = 0x0\n\tCOINIT_APARTMENTTHREADED = 0x2\n\tCOINIT_DISABLE_OLE1DDE   = 0x4\n\tCOINIT_SPEED_OVER_MEMORY = 0x8\n)\n\n// Flag for QueryFullProcessImageName.\nconst PROCESS_NAME_NATIVE = 1\n\ntype ModuleInfo struct {\n\tBaseOfDll   uintptr\n\tSizeOfImage uint32\n\tEntryPoint  uintptr\n}\n\nconst ALL_PROCESSOR_GROUPS = 0xFFFF\n\ntype Rect struct {\n\tLeft   int32\n\tTop    int32\n\tRight  int32\n\tBottom int32\n}\n\ntype GUIThreadInfo struct {\n\tSize        uint32\n\tFlags       uint32\n\tActive      HWND\n\tFocus       HWND\n\tCapture     HWND\n\tMenuOwner   HWND\n\tMoveSize    HWND\n\tCaretHandle HWND\n\tCaretRect   Rect\n}\n\nconst (\n\tDWMWA_NCRENDERING_ENABLED            = 1\n\tDWMWA_NCRENDERING_POLICY             = 2\n\tDWMWA_TRANSITIONS_FORCEDISABLED      = 3\n\tDWMWA_ALLOW_NCPAINT                  = 4\n\tDWMWA_CAPTION_BUTTON_BOUNDS          = 5\n\tDWMWA_NONCLIENT_RTL_LAYOUT           = 6\n\tDWMWA_FORCE_ICONIC_REPRESENTATION    = 7\n\tDWMWA_FLIP3D_POLICY                  = 8\n\tDWMWA_EXTENDED_FRAME_BOUNDS          = 9\n\tDWMWA_HAS_ICONIC_BITMAP              = 10\n\tDWMWA_DISALLOW_PEEK                  = 11\n\tDWMWA_EXCLUDED_FROM_PEEK             = 12\n\tDWMWA_CLOAK                          = 13\n\tDWMWA_CLOAKED                        = 14\n\tDWMWA_FREEZE_REPRESENTATION          = 15\n\tDWMWA_PASSIVE_UPDATE_MODE            = 16\n\tDWMWA_USE_HOSTBACKDROPBRUSH          = 17\n\tDWMWA_USE_IMMERSIVE_DARK_MODE        = 20\n\tDWMWA_WINDOW_CORNER_PREFERENCE       = 33\n\tDWMWA_BORDER_COLOR                   = 34\n\tDWMWA_CAPTION_COLOR                  = 35\n\tDWMWA_TEXT_COLOR                     = 36\n\tDWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37\n)\n\ntype WSAQUERYSET struct {\n\tSize                uint32\n\tServiceInstanceName *uint16\n\tServiceClassId      *GUID\n\tVersion             *WSAVersion\n\tComment             *uint16\n\tNameSpace           uint32\n\tNSProviderId        *GUID\n\tContext             *uint16\n\tNumberOfProtocols   uint32\n\tAfpProtocols        *AFProtocols\n\tQueryString         *uint16\n\tNumberOfCsAddrs     uint32\n\tSaBuffer            *CSAddrInfo\n\tOutputFlags         uint32\n\tBlob                *BLOB\n}\n\ntype WSAVersion struct {\n\tVersion                 uint32\n\tEnumerationOfComparison int32\n}\n\ntype AFProtocols struct {\n\tAddressFamily int32\n\tProtocol      int32\n}\n\ntype CSAddrInfo struct {\n\tLocalAddr  SocketAddress\n\tRemoteAddr SocketAddress\n\tSocketType int32\n\tProtocol   int32\n}\n\ntype BLOB struct {\n\tSize     uint32\n\tBlobData *byte\n}\n\ntype ComStat struct {\n\tFlags    uint32\n\tCBInQue  uint32\n\tCBOutQue uint32\n}\n\ntype DCB struct {\n\tDCBlength  uint32\n\tBaudRate   uint32\n\tFlags      uint32\n\twReserved  uint16\n\tXonLim     uint16\n\tXoffLim    uint16\n\tByteSize   uint8\n\tParity     uint8\n\tStopBits   uint8\n\tXonChar    byte\n\tXoffChar   byte\n\tErrorChar  byte\n\tEofChar    byte\n\tEvtChar    byte\n\twReserved1 uint16\n}\n\n// Keyboard Layout Flags.\n// See https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadkeyboardlayoutw\nconst (\n\tKLF_ACTIVATE      = 0x00000001\n\tKLF_SUBSTITUTE_OK = 0x00000002\n\tKLF_REORDER       = 0x00000008\n\tKLF_REPLACELANG   = 0x00000010\n\tKLF_NOTELLSHELL   = 0x00000080\n\tKLF_SETFORPROCESS = 0x00000100\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_386.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tPort    uint16\n\tProto   *byte\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n\t_                       uint32 // pad to 8 byte boundary\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_amd64.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tProto   *byte\n\tPort    uint16\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_arm.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tPort    uint16\n\tProto   *byte\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n\t_                       uint32 // pad to 8 byte boundary\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_arm64.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tProto   *byte\n\tPort    uint16\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/zerrors_windows.go",
    "content": "// Code generated by 'mkerrors.bash'; DO NOT EDIT.\n\npackage windows\n\nimport \"syscall\"\n\nconst (\n\tFACILITY_NULL                                                                           = 0\n\tFACILITY_RPC                                                                            = 1\n\tFACILITY_DISPATCH                                                                       = 2\n\tFACILITY_STORAGE                                                                        = 3\n\tFACILITY_ITF                                                                            = 4\n\tFACILITY_WIN32                                                                          = 7\n\tFACILITY_WINDOWS                                                                        = 8\n\tFACILITY_SSPI                                                                           = 9\n\tFACILITY_SECURITY                                                                       = 9\n\tFACILITY_CONTROL                                                                        = 10\n\tFACILITY_CERT                                                                           = 11\n\tFACILITY_INTERNET                                                                       = 12\n\tFACILITY_MEDIASERVER                                                                    = 13\n\tFACILITY_MSMQ                                                                           = 14\n\tFACILITY_SETUPAPI                                                                       = 15\n\tFACILITY_SCARD                                                                          = 16\n\tFACILITY_COMPLUS                                                                        = 17\n\tFACILITY_AAF                                                                            = 18\n\tFACILITY_URT                                                                            = 19\n\tFACILITY_ACS                                                                            = 20\n\tFACILITY_DPLAY                                                                          = 21\n\tFACILITY_UMI                                                                            = 22\n\tFACILITY_SXS                                                                            = 23\n\tFACILITY_WINDOWS_CE                                                                     = 24\n\tFACILITY_HTTP                                                                           = 25\n\tFACILITY_USERMODE_COMMONLOG                                                             = 26\n\tFACILITY_WER                                                                            = 27\n\tFACILITY_USERMODE_FILTER_MANAGER                                                        = 31\n\tFACILITY_BACKGROUNDCOPY                                                                 = 32\n\tFACILITY_CONFIGURATION                                                                  = 33\n\tFACILITY_WIA                                                                            = 33\n\tFACILITY_STATE_MANAGEMENT                                                               = 34\n\tFACILITY_METADIRECTORY                                                                  = 35\n\tFACILITY_WINDOWSUPDATE                                                                  = 36\n\tFACILITY_DIRECTORYSERVICE                                                               = 37\n\tFACILITY_GRAPHICS                                                                       = 38\n\tFACILITY_SHELL                                                                          = 39\n\tFACILITY_NAP                                                                            = 39\n\tFACILITY_TPM_SERVICES                                                                   = 40\n\tFACILITY_TPM_SOFTWARE                                                                   = 41\n\tFACILITY_UI                                                                             = 42\n\tFACILITY_XAML                                                                           = 43\n\tFACILITY_ACTION_QUEUE                                                                   = 44\n\tFACILITY_PLA                                                                            = 48\n\tFACILITY_WINDOWS_SETUP                                                                  = 48\n\tFACILITY_FVE                                                                            = 49\n\tFACILITY_FWP                                                                            = 50\n\tFACILITY_WINRM                                                                          = 51\n\tFACILITY_NDIS                                                                           = 52\n\tFACILITY_USERMODE_HYPERVISOR                                                            = 53\n\tFACILITY_CMI                                                                            = 54\n\tFACILITY_USERMODE_VIRTUALIZATION                                                        = 55\n\tFACILITY_USERMODE_VOLMGR                                                                = 56\n\tFACILITY_BCD                                                                            = 57\n\tFACILITY_USERMODE_VHD                                                                   = 58\n\tFACILITY_USERMODE_HNS                                                                   = 59\n\tFACILITY_SDIAG                                                                          = 60\n\tFACILITY_WEBSERVICES                                                                    = 61\n\tFACILITY_WINPE                                                                          = 61\n\tFACILITY_WPN                                                                            = 62\n\tFACILITY_WINDOWS_STORE                                                                  = 63\n\tFACILITY_INPUT                                                                          = 64\n\tFACILITY_EAP                                                                            = 66\n\tFACILITY_WINDOWS_DEFENDER                                                               = 80\n\tFACILITY_OPC                                                                            = 81\n\tFACILITY_XPS                                                                            = 82\n\tFACILITY_MBN                                                                            = 84\n\tFACILITY_POWERSHELL                                                                     = 84\n\tFACILITY_RAS                                                                            = 83\n\tFACILITY_P2P_INT                                                                        = 98\n\tFACILITY_P2P                                                                            = 99\n\tFACILITY_DAF                                                                            = 100\n\tFACILITY_BLUETOOTH_ATT                                                                  = 101\n\tFACILITY_AUDIO                                                                          = 102\n\tFACILITY_STATEREPOSITORY                                                                = 103\n\tFACILITY_VISUALCPP                                                                      = 109\n\tFACILITY_SCRIPT                                                                         = 112\n\tFACILITY_PARSE                                                                          = 113\n\tFACILITY_BLB                                                                            = 120\n\tFACILITY_BLB_CLI                                                                        = 121\n\tFACILITY_WSBAPP                                                                         = 122\n\tFACILITY_BLBUI                                                                          = 128\n\tFACILITY_USN                                                                            = 129\n\tFACILITY_USERMODE_VOLSNAP                                                               = 130\n\tFACILITY_TIERING                                                                        = 131\n\tFACILITY_WSB_ONLINE                                                                     = 133\n\tFACILITY_ONLINE_ID                                                                      = 134\n\tFACILITY_DEVICE_UPDATE_AGENT                                                            = 135\n\tFACILITY_DRVSERVICING                                                                   = 136\n\tFACILITY_DLS                                                                            = 153\n\tFACILITY_DELIVERY_OPTIMIZATION                                                          = 208\n\tFACILITY_USERMODE_SPACES                                                                = 231\n\tFACILITY_USER_MODE_SECURITY_CORE                                                        = 232\n\tFACILITY_USERMODE_LICENSING                                                             = 234\n\tFACILITY_SOS                                                                            = 160\n\tFACILITY_DEBUGGERS                                                                      = 176\n\tFACILITY_SPP                                                                            = 256\n\tFACILITY_RESTORE                                                                        = 256\n\tFACILITY_DMSERVER                                                                       = 256\n\tFACILITY_DEPLOYMENT_SERVICES_SERVER                                                     = 257\n\tFACILITY_DEPLOYMENT_SERVICES_IMAGING                                                    = 258\n\tFACILITY_DEPLOYMENT_SERVICES_MANAGEMENT                                                 = 259\n\tFACILITY_DEPLOYMENT_SERVICES_UTIL                                                       = 260\n\tFACILITY_DEPLOYMENT_SERVICES_BINLSVC                                                    = 261\n\tFACILITY_DEPLOYMENT_SERVICES_PXE                                                        = 263\n\tFACILITY_DEPLOYMENT_SERVICES_TFTP                                                       = 264\n\tFACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT                                       = 272\n\tFACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING                                        = 278\n\tFACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER                                           = 289\n\tFACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT                                           = 290\n\tFACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER                                           = 293\n\tFACILITY_LINGUISTIC_SERVICES                                                            = 305\n\tFACILITY_AUDIOSTREAMING                                                                 = 1094\n\tFACILITY_ACCELERATOR                                                                    = 1536\n\tFACILITY_WMAAECMA                                                                       = 1996\n\tFACILITY_DIRECTMUSIC                                                                    = 2168\n\tFACILITY_DIRECT3D10                                                                     = 2169\n\tFACILITY_DXGI                                                                           = 2170\n\tFACILITY_DXGI_DDI                                                                       = 2171\n\tFACILITY_DIRECT3D11                                                                     = 2172\n\tFACILITY_DIRECT3D11_DEBUG                                                               = 2173\n\tFACILITY_DIRECT3D12                                                                     = 2174\n\tFACILITY_DIRECT3D12_DEBUG                                                               = 2175\n\tFACILITY_LEAP                                                                           = 2184\n\tFACILITY_AUDCLNT                                                                        = 2185\n\tFACILITY_WINCODEC_DWRITE_DWM                                                            = 2200\n\tFACILITY_WINML                                                                          = 2192\n\tFACILITY_DIRECT2D                                                                       = 2201\n\tFACILITY_DEFRAG                                                                         = 2304\n\tFACILITY_USERMODE_SDBUS                                                                 = 2305\n\tFACILITY_JSCRIPT                                                                        = 2306\n\tFACILITY_PIDGENX                                                                        = 2561\n\tFACILITY_EAS                                                                            = 85\n\tFACILITY_WEB                                                                            = 885\n\tFACILITY_WEB_SOCKET                                                                     = 886\n\tFACILITY_MOBILE                                                                         = 1793\n\tFACILITY_SQLITE                                                                         = 1967\n\tFACILITY_UTC                                                                            = 1989\n\tFACILITY_WEP                                                                            = 2049\n\tFACILITY_SYNCENGINE                                                                     = 2050\n\tFACILITY_XBOX                                                                           = 2339\n\tFACILITY_GAME                                                                           = 2340\n\tFACILITY_PIX                                                                            = 2748\n\tERROR_SUCCESS                                                             syscall.Errno = 0\n\tNO_ERROR                                                                                = 0\n\tSEC_E_OK                                                                  Handle        = 0x00000000\n\tERROR_INVALID_FUNCTION                                                    syscall.Errno = 1\n\tERROR_FILE_NOT_FOUND                                                      syscall.Errno = 2\n\tERROR_PATH_NOT_FOUND                                                      syscall.Errno = 3\n\tERROR_TOO_MANY_OPEN_FILES                                                 syscall.Errno = 4\n\tERROR_ACCESS_DENIED                                                       syscall.Errno = 5\n\tERROR_INVALID_HANDLE                                                      syscall.Errno = 6\n\tERROR_ARENA_TRASHED                                                       syscall.Errno = 7\n\tERROR_NOT_ENOUGH_MEMORY                                                   syscall.Errno = 8\n\tERROR_INVALID_BLOCK                                                       syscall.Errno = 9\n\tERROR_BAD_ENVIRONMENT                                                     syscall.Errno = 10\n\tERROR_BAD_FORMAT                                                          syscall.Errno = 11\n\tERROR_INVALID_ACCESS                                                      syscall.Errno = 12\n\tERROR_INVALID_DATA                                                        syscall.Errno = 13\n\tERROR_OUTOFMEMORY                                                         syscall.Errno = 14\n\tERROR_INVALID_DRIVE                                                       syscall.Errno = 15\n\tERROR_CURRENT_DIRECTORY                                                   syscall.Errno = 16\n\tERROR_NOT_SAME_DEVICE                                                     syscall.Errno = 17\n\tERROR_NO_MORE_FILES                                                       syscall.Errno = 18\n\tERROR_WRITE_PROTECT                                                       syscall.Errno = 19\n\tERROR_BAD_UNIT                                                            syscall.Errno = 20\n\tERROR_NOT_READY                                                           syscall.Errno = 21\n\tERROR_BAD_COMMAND                                                         syscall.Errno = 22\n\tERROR_CRC                                                                 syscall.Errno = 23\n\tERROR_BAD_LENGTH                                                          syscall.Errno = 24\n\tERROR_SEEK                                                                syscall.Errno = 25\n\tERROR_NOT_DOS_DISK                                                        syscall.Errno = 26\n\tERROR_SECTOR_NOT_FOUND                                                    syscall.Errno = 27\n\tERROR_OUT_OF_PAPER                                                        syscall.Errno = 28\n\tERROR_WRITE_FAULT                                                         syscall.Errno = 29\n\tERROR_READ_FAULT                                                          syscall.Errno = 30\n\tERROR_GEN_FAILURE                                                         syscall.Errno = 31\n\tERROR_SHARING_VIOLATION                                                   syscall.Errno = 32\n\tERROR_LOCK_VIOLATION                                                      syscall.Errno = 33\n\tERROR_WRONG_DISK                                                          syscall.Errno = 34\n\tERROR_SHARING_BUFFER_EXCEEDED                                             syscall.Errno = 36\n\tERROR_HANDLE_EOF                                                          syscall.Errno = 38\n\tERROR_HANDLE_DISK_FULL                                                    syscall.Errno = 39\n\tERROR_NOT_SUPPORTED                                                       syscall.Errno = 50\n\tERROR_REM_NOT_LIST                                                        syscall.Errno = 51\n\tERROR_DUP_NAME                                                            syscall.Errno = 52\n\tERROR_BAD_NETPATH                                                         syscall.Errno = 53\n\tERROR_NETWORK_BUSY                                                        syscall.Errno = 54\n\tERROR_DEV_NOT_EXIST                                                       syscall.Errno = 55\n\tERROR_TOO_MANY_CMDS                                                       syscall.Errno = 56\n\tERROR_ADAP_HDW_ERR                                                        syscall.Errno = 57\n\tERROR_BAD_NET_RESP                                                        syscall.Errno = 58\n\tERROR_UNEXP_NET_ERR                                                       syscall.Errno = 59\n\tERROR_BAD_REM_ADAP                                                        syscall.Errno = 60\n\tERROR_PRINTQ_FULL                                                         syscall.Errno = 61\n\tERROR_NO_SPOOL_SPACE                                                      syscall.Errno = 62\n\tERROR_PRINT_CANCELLED                                                     syscall.Errno = 63\n\tERROR_NETNAME_DELETED                                                     syscall.Errno = 64\n\tERROR_NETWORK_ACCESS_DENIED                                               syscall.Errno = 65\n\tERROR_BAD_DEV_TYPE                                                        syscall.Errno = 66\n\tERROR_BAD_NET_NAME                                                        syscall.Errno = 67\n\tERROR_TOO_MANY_NAMES                                                      syscall.Errno = 68\n\tERROR_TOO_MANY_SESS                                                       syscall.Errno = 69\n\tERROR_SHARING_PAUSED                                                      syscall.Errno = 70\n\tERROR_REQ_NOT_ACCEP                                                       syscall.Errno = 71\n\tERROR_REDIR_PAUSED                                                        syscall.Errno = 72\n\tERROR_FILE_EXISTS                                                         syscall.Errno = 80\n\tERROR_CANNOT_MAKE                                                         syscall.Errno = 82\n\tERROR_FAIL_I24                                                            syscall.Errno = 83\n\tERROR_OUT_OF_STRUCTURES                                                   syscall.Errno = 84\n\tERROR_ALREADY_ASSIGNED                                                    syscall.Errno = 85\n\tERROR_INVALID_PASSWORD                                                    syscall.Errno = 86\n\tERROR_INVALID_PARAMETER                                                   syscall.Errno = 87\n\tERROR_NET_WRITE_FAULT                                                     syscall.Errno = 88\n\tERROR_NO_PROC_SLOTS                                                       syscall.Errno = 89\n\tERROR_TOO_MANY_SEMAPHORES                                                 syscall.Errno = 100\n\tERROR_EXCL_SEM_ALREADY_OWNED                                              syscall.Errno = 101\n\tERROR_SEM_IS_SET                                                          syscall.Errno = 102\n\tERROR_TOO_MANY_SEM_REQUESTS                                               syscall.Errno = 103\n\tERROR_INVALID_AT_INTERRUPT_TIME                                           syscall.Errno = 104\n\tERROR_SEM_OWNER_DIED                                                      syscall.Errno = 105\n\tERROR_SEM_USER_LIMIT                                                      syscall.Errno = 106\n\tERROR_DISK_CHANGE                                                         syscall.Errno = 107\n\tERROR_DRIVE_LOCKED                                                        syscall.Errno = 108\n\tERROR_BROKEN_PIPE                                                         syscall.Errno = 109\n\tERROR_OPEN_FAILED                                                         syscall.Errno = 110\n\tERROR_BUFFER_OVERFLOW                                                     syscall.Errno = 111\n\tERROR_DISK_FULL                                                           syscall.Errno = 112\n\tERROR_NO_MORE_SEARCH_HANDLES                                              syscall.Errno = 113\n\tERROR_INVALID_TARGET_HANDLE                                               syscall.Errno = 114\n\tERROR_INVALID_CATEGORY                                                    syscall.Errno = 117\n\tERROR_INVALID_VERIFY_SWITCH                                               syscall.Errno = 118\n\tERROR_BAD_DRIVER_LEVEL                                                    syscall.Errno = 119\n\tERROR_CALL_NOT_IMPLEMENTED                                                syscall.Errno = 120\n\tERROR_SEM_TIMEOUT                                                         syscall.Errno = 121\n\tERROR_INSUFFICIENT_BUFFER                                                 syscall.Errno = 122\n\tERROR_INVALID_NAME                                                        syscall.Errno = 123\n\tERROR_INVALID_LEVEL                                                       syscall.Errno = 124\n\tERROR_NO_VOLUME_LABEL                                                     syscall.Errno = 125\n\tERROR_MOD_NOT_FOUND                                                       syscall.Errno = 126\n\tERROR_PROC_NOT_FOUND                                                      syscall.Errno = 127\n\tERROR_WAIT_NO_CHILDREN                                                    syscall.Errno = 128\n\tERROR_CHILD_NOT_COMPLETE                                                  syscall.Errno = 129\n\tERROR_DIRECT_ACCESS_HANDLE                                                syscall.Errno = 130\n\tERROR_NEGATIVE_SEEK                                                       syscall.Errno = 131\n\tERROR_SEEK_ON_DEVICE                                                      syscall.Errno = 132\n\tERROR_IS_JOIN_TARGET                                                      syscall.Errno = 133\n\tERROR_IS_JOINED                                                           syscall.Errno = 134\n\tERROR_IS_SUBSTED                                                          syscall.Errno = 135\n\tERROR_NOT_JOINED                                                          syscall.Errno = 136\n\tERROR_NOT_SUBSTED                                                         syscall.Errno = 137\n\tERROR_JOIN_TO_JOIN                                                        syscall.Errno = 138\n\tERROR_SUBST_TO_SUBST                                                      syscall.Errno = 139\n\tERROR_JOIN_TO_SUBST                                                       syscall.Errno = 140\n\tERROR_SUBST_TO_JOIN                                                       syscall.Errno = 141\n\tERROR_BUSY_DRIVE                                                          syscall.Errno = 142\n\tERROR_SAME_DRIVE                                                          syscall.Errno = 143\n\tERROR_DIR_NOT_ROOT                                                        syscall.Errno = 144\n\tERROR_DIR_NOT_EMPTY                                                       syscall.Errno = 145\n\tERROR_IS_SUBST_PATH                                                       syscall.Errno = 146\n\tERROR_IS_JOIN_PATH                                                        syscall.Errno = 147\n\tERROR_PATH_BUSY                                                           syscall.Errno = 148\n\tERROR_IS_SUBST_TARGET                                                     syscall.Errno = 149\n\tERROR_SYSTEM_TRACE                                                        syscall.Errno = 150\n\tERROR_INVALID_EVENT_COUNT                                                 syscall.Errno = 151\n\tERROR_TOO_MANY_MUXWAITERS                                                 syscall.Errno = 152\n\tERROR_INVALID_LIST_FORMAT                                                 syscall.Errno = 153\n\tERROR_LABEL_TOO_LONG                                                      syscall.Errno = 154\n\tERROR_TOO_MANY_TCBS                                                       syscall.Errno = 155\n\tERROR_SIGNAL_REFUSED                                                      syscall.Errno = 156\n\tERROR_DISCARDED                                                           syscall.Errno = 157\n\tERROR_NOT_LOCKED                                                          syscall.Errno = 158\n\tERROR_BAD_THREADID_ADDR                                                   syscall.Errno = 159\n\tERROR_BAD_ARGUMENTS                                                       syscall.Errno = 160\n\tERROR_BAD_PATHNAME                                                        syscall.Errno = 161\n\tERROR_SIGNAL_PENDING                                                      syscall.Errno = 162\n\tERROR_MAX_THRDS_REACHED                                                   syscall.Errno = 164\n\tERROR_LOCK_FAILED                                                         syscall.Errno = 167\n\tERROR_BUSY                                                                syscall.Errno = 170\n\tERROR_DEVICE_SUPPORT_IN_PROGRESS                                          syscall.Errno = 171\n\tERROR_CANCEL_VIOLATION                                                    syscall.Errno = 173\n\tERROR_ATOMIC_LOCKS_NOT_SUPPORTED                                          syscall.Errno = 174\n\tERROR_INVALID_SEGMENT_NUMBER                                              syscall.Errno = 180\n\tERROR_INVALID_ORDINAL                                                     syscall.Errno = 182\n\tERROR_ALREADY_EXISTS                                                      syscall.Errno = 183\n\tERROR_INVALID_FLAG_NUMBER                                                 syscall.Errno = 186\n\tERROR_SEM_NOT_FOUND                                                       syscall.Errno = 187\n\tERROR_INVALID_STARTING_CODESEG                                            syscall.Errno = 188\n\tERROR_INVALID_STACKSEG                                                    syscall.Errno = 189\n\tERROR_INVALID_MODULETYPE                                                  syscall.Errno = 190\n\tERROR_INVALID_EXE_SIGNATURE                                               syscall.Errno = 191\n\tERROR_EXE_MARKED_INVALID                                                  syscall.Errno = 192\n\tERROR_BAD_EXE_FORMAT                                                      syscall.Errno = 193\n\tERROR_ITERATED_DATA_EXCEEDS_64k                                           syscall.Errno = 194\n\tERROR_INVALID_MINALLOCSIZE                                                syscall.Errno = 195\n\tERROR_DYNLINK_FROM_INVALID_RING                                           syscall.Errno = 196\n\tERROR_IOPL_NOT_ENABLED                                                    syscall.Errno = 197\n\tERROR_INVALID_SEGDPL                                                      syscall.Errno = 198\n\tERROR_AUTODATASEG_EXCEEDS_64k                                             syscall.Errno = 199\n\tERROR_RING2SEG_MUST_BE_MOVABLE                                            syscall.Errno = 200\n\tERROR_RELOC_CHAIN_XEEDS_SEGLIM                                            syscall.Errno = 201\n\tERROR_INFLOOP_IN_RELOC_CHAIN                                              syscall.Errno = 202\n\tERROR_ENVVAR_NOT_FOUND                                                    syscall.Errno = 203\n\tERROR_NO_SIGNAL_SENT                                                      syscall.Errno = 205\n\tERROR_FILENAME_EXCED_RANGE                                                syscall.Errno = 206\n\tERROR_RING2_STACK_IN_USE                                                  syscall.Errno = 207\n\tERROR_META_EXPANSION_TOO_LONG                                             syscall.Errno = 208\n\tERROR_INVALID_SIGNAL_NUMBER                                               syscall.Errno = 209\n\tERROR_THREAD_1_INACTIVE                                                   syscall.Errno = 210\n\tERROR_LOCKED                                                              syscall.Errno = 212\n\tERROR_TOO_MANY_MODULES                                                    syscall.Errno = 214\n\tERROR_NESTING_NOT_ALLOWED                                                 syscall.Errno = 215\n\tERROR_EXE_MACHINE_TYPE_MISMATCH                                           syscall.Errno = 216\n\tERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY                                     syscall.Errno = 217\n\tERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY                              syscall.Errno = 218\n\tERROR_FILE_CHECKED_OUT                                                    syscall.Errno = 220\n\tERROR_CHECKOUT_REQUIRED                                                   syscall.Errno = 221\n\tERROR_BAD_FILE_TYPE                                                       syscall.Errno = 222\n\tERROR_FILE_TOO_LARGE                                                      syscall.Errno = 223\n\tERROR_FORMS_AUTH_REQUIRED                                                 syscall.Errno = 224\n\tERROR_VIRUS_INFECTED                                                      syscall.Errno = 225\n\tERROR_VIRUS_DELETED                                                       syscall.Errno = 226\n\tERROR_PIPE_LOCAL                                                          syscall.Errno = 229\n\tERROR_BAD_PIPE                                                            syscall.Errno = 230\n\tERROR_PIPE_BUSY                                                           syscall.Errno = 231\n\tERROR_NO_DATA                                                             syscall.Errno = 232\n\tERROR_PIPE_NOT_CONNECTED                                                  syscall.Errno = 233\n\tERROR_MORE_DATA                                                           syscall.Errno = 234\n\tERROR_NO_WORK_DONE                                                        syscall.Errno = 235\n\tERROR_VC_DISCONNECTED                                                     syscall.Errno = 240\n\tERROR_INVALID_EA_NAME                                                     syscall.Errno = 254\n\tERROR_EA_LIST_INCONSISTENT                                                syscall.Errno = 255\n\tWAIT_TIMEOUT                                                              syscall.Errno = 258\n\tERROR_NO_MORE_ITEMS                                                       syscall.Errno = 259\n\tERROR_CANNOT_COPY                                                         syscall.Errno = 266\n\tERROR_DIRECTORY                                                           syscall.Errno = 267\n\tERROR_EAS_DIDNT_FIT                                                       syscall.Errno = 275\n\tERROR_EA_FILE_CORRUPT                                                     syscall.Errno = 276\n\tERROR_EA_TABLE_FULL                                                       syscall.Errno = 277\n\tERROR_INVALID_EA_HANDLE                                                   syscall.Errno = 278\n\tERROR_EAS_NOT_SUPPORTED                                                   syscall.Errno = 282\n\tERROR_NOT_OWNER                                                           syscall.Errno = 288\n\tERROR_TOO_MANY_POSTS                                                      syscall.Errno = 298\n\tERROR_PARTIAL_COPY                                                        syscall.Errno = 299\n\tERROR_OPLOCK_NOT_GRANTED                                                  syscall.Errno = 300\n\tERROR_INVALID_OPLOCK_PROTOCOL                                             syscall.Errno = 301\n\tERROR_DISK_TOO_FRAGMENTED                                                 syscall.Errno = 302\n\tERROR_DELETE_PENDING                                                      syscall.Errno = 303\n\tERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING                syscall.Errno = 304\n\tERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME                                   syscall.Errno = 305\n\tERROR_SECURITY_STREAM_IS_INCONSISTENT                                     syscall.Errno = 306\n\tERROR_INVALID_LOCK_RANGE                                                  syscall.Errno = 307\n\tERROR_IMAGE_SUBSYSTEM_NOT_PRESENT                                         syscall.Errno = 308\n\tERROR_NOTIFICATION_GUID_ALREADY_DEFINED                                   syscall.Errno = 309\n\tERROR_INVALID_EXCEPTION_HANDLER                                           syscall.Errno = 310\n\tERROR_DUPLICATE_PRIVILEGES                                                syscall.Errno = 311\n\tERROR_NO_RANGES_PROCESSED                                                 syscall.Errno = 312\n\tERROR_NOT_ALLOWED_ON_SYSTEM_FILE                                          syscall.Errno = 313\n\tERROR_DISK_RESOURCES_EXHAUSTED                                            syscall.Errno = 314\n\tERROR_INVALID_TOKEN                                                       syscall.Errno = 315\n\tERROR_DEVICE_FEATURE_NOT_SUPPORTED                                        syscall.Errno = 316\n\tERROR_MR_MID_NOT_FOUND                                                    syscall.Errno = 317\n\tERROR_SCOPE_NOT_FOUND                                                     syscall.Errno = 318\n\tERROR_UNDEFINED_SCOPE                                                     syscall.Errno = 319\n\tERROR_INVALID_CAP                                                         syscall.Errno = 320\n\tERROR_DEVICE_UNREACHABLE                                                  syscall.Errno = 321\n\tERROR_DEVICE_NO_RESOURCES                                                 syscall.Errno = 322\n\tERROR_DATA_CHECKSUM_ERROR                                                 syscall.Errno = 323\n\tERROR_INTERMIXED_KERNEL_EA_OPERATION                                      syscall.Errno = 324\n\tERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED                                       syscall.Errno = 326\n\tERROR_OFFSET_ALIGNMENT_VIOLATION                                          syscall.Errno = 327\n\tERROR_INVALID_FIELD_IN_PARAMETER_LIST                                     syscall.Errno = 328\n\tERROR_OPERATION_IN_PROGRESS                                               syscall.Errno = 329\n\tERROR_BAD_DEVICE_PATH                                                     syscall.Errno = 330\n\tERROR_TOO_MANY_DESCRIPTORS                                                syscall.Errno = 331\n\tERROR_SCRUB_DATA_DISABLED                                                 syscall.Errno = 332\n\tERROR_NOT_REDUNDANT_STORAGE                                               syscall.Errno = 333\n\tERROR_RESIDENT_FILE_NOT_SUPPORTED                                         syscall.Errno = 334\n\tERROR_COMPRESSED_FILE_NOT_SUPPORTED                                       syscall.Errno = 335\n\tERROR_DIRECTORY_NOT_SUPPORTED                                             syscall.Errno = 336\n\tERROR_NOT_READ_FROM_COPY                                                  syscall.Errno = 337\n\tERROR_FT_WRITE_FAILURE                                                    syscall.Errno = 338\n\tERROR_FT_DI_SCAN_REQUIRED                                                 syscall.Errno = 339\n\tERROR_INVALID_KERNEL_INFO_VERSION                                         syscall.Errno = 340\n\tERROR_INVALID_PEP_INFO_VERSION                                            syscall.Errno = 341\n\tERROR_OBJECT_NOT_EXTERNALLY_BACKED                                        syscall.Errno = 342\n\tERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN                                   syscall.Errno = 343\n\tERROR_COMPRESSION_NOT_BENEFICIAL                                          syscall.Errno = 344\n\tERROR_STORAGE_TOPOLOGY_ID_MISMATCH                                        syscall.Errno = 345\n\tERROR_BLOCKED_BY_PARENTAL_CONTROLS                                        syscall.Errno = 346\n\tERROR_BLOCK_TOO_MANY_REFERENCES                                           syscall.Errno = 347\n\tERROR_MARKED_TO_DISALLOW_WRITES                                           syscall.Errno = 348\n\tERROR_ENCLAVE_FAILURE                                                     syscall.Errno = 349\n\tERROR_FAIL_NOACTION_REBOOT                                                syscall.Errno = 350\n\tERROR_FAIL_SHUTDOWN                                                       syscall.Errno = 351\n\tERROR_FAIL_RESTART                                                        syscall.Errno = 352\n\tERROR_MAX_SESSIONS_REACHED                                                syscall.Errno = 353\n\tERROR_NETWORK_ACCESS_DENIED_EDP                                           syscall.Errno = 354\n\tERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL                                   syscall.Errno = 355\n\tERROR_EDP_POLICY_DENIES_OPERATION                                         syscall.Errno = 356\n\tERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED                                    syscall.Errno = 357\n\tERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT                               syscall.Errno = 358\n\tERROR_DEVICE_IN_MAINTENANCE                                               syscall.Errno = 359\n\tERROR_NOT_SUPPORTED_ON_DAX                                                syscall.Errno = 360\n\tERROR_DAX_MAPPING_EXISTS                                                  syscall.Errno = 361\n\tERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING                                     syscall.Errno = 362\n\tERROR_CLOUD_FILE_METADATA_CORRUPT                                         syscall.Errno = 363\n\tERROR_CLOUD_FILE_METADATA_TOO_LARGE                                       syscall.Errno = 364\n\tERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE                                  syscall.Errno = 365\n\tERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH                          syscall.Errno = 366\n\tERROR_CHILD_PROCESS_BLOCKED                                               syscall.Errno = 367\n\tERROR_STORAGE_LOST_DATA_PERSISTENCE                                       syscall.Errno = 368\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE                              syscall.Errno = 369\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT                         syscall.Errno = 370\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY                                     syscall.Errno = 371\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN                         syscall.Errno = 372\n\tERROR_GDI_HANDLE_LEAK                                                     syscall.Errno = 373\n\tERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS                                  syscall.Errno = 374\n\tERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED                           syscall.Errno = 375\n\tERROR_NOT_A_CLOUD_FILE                                                    syscall.Errno = 376\n\tERROR_CLOUD_FILE_NOT_IN_SYNC                                              syscall.Errno = 377\n\tERROR_CLOUD_FILE_ALREADY_CONNECTED                                        syscall.Errno = 378\n\tERROR_CLOUD_FILE_NOT_SUPPORTED                                            syscall.Errno = 379\n\tERROR_CLOUD_FILE_INVALID_REQUEST                                          syscall.Errno = 380\n\tERROR_CLOUD_FILE_READ_ONLY_VOLUME                                         syscall.Errno = 381\n\tERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY                                  syscall.Errno = 382\n\tERROR_CLOUD_FILE_VALIDATION_FAILED                                        syscall.Errno = 383\n\tERROR_SMB1_NOT_AVAILABLE                                                  syscall.Errno = 384\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION                        syscall.Errno = 385\n\tERROR_CLOUD_FILE_AUTHENTICATION_FAILED                                    syscall.Errno = 386\n\tERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES                                   syscall.Errno = 387\n\tERROR_CLOUD_FILE_NETWORK_UNAVAILABLE                                      syscall.Errno = 388\n\tERROR_CLOUD_FILE_UNSUCCESSFUL                                             syscall.Errno = 389\n\tERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT                                      syscall.Errno = 390\n\tERROR_CLOUD_FILE_IN_USE                                                   syscall.Errno = 391\n\tERROR_CLOUD_FILE_PINNED                                                   syscall.Errno = 392\n\tERROR_CLOUD_FILE_REQUEST_ABORTED                                          syscall.Errno = 393\n\tERROR_CLOUD_FILE_PROPERTY_CORRUPT                                         syscall.Errno = 394\n\tERROR_CLOUD_FILE_ACCESS_DENIED                                            syscall.Errno = 395\n\tERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS                                   syscall.Errno = 396\n\tERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT                                   syscall.Errno = 397\n\tERROR_CLOUD_FILE_REQUEST_CANCELED                                         syscall.Errno = 398\n\tERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED                                       syscall.Errno = 399\n\tERROR_THREAD_MODE_ALREADY_BACKGROUND                                      syscall.Errno = 400\n\tERROR_THREAD_MODE_NOT_BACKGROUND                                          syscall.Errno = 401\n\tERROR_PROCESS_MODE_ALREADY_BACKGROUND                                     syscall.Errno = 402\n\tERROR_PROCESS_MODE_NOT_BACKGROUND                                         syscall.Errno = 403\n\tERROR_CLOUD_FILE_PROVIDER_TERMINATED                                      syscall.Errno = 404\n\tERROR_NOT_A_CLOUD_SYNC_ROOT                                               syscall.Errno = 405\n\tERROR_FILE_PROTECTED_UNDER_DPL                                            syscall.Errno = 406\n\tERROR_VOLUME_NOT_CLUSTER_ALIGNED                                          syscall.Errno = 407\n\tERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND                              syscall.Errno = 408\n\tERROR_APPX_FILE_NOT_ENCRYPTED                                             syscall.Errno = 409\n\tERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED                                  syscall.Errno = 410\n\tERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET                        syscall.Errno = 411\n\tERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE                         syscall.Errno = 412\n\tERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER                         syscall.Errno = 413\n\tERROR_LINUX_SUBSYSTEM_NOT_PRESENT                                         syscall.Errno = 414\n\tERROR_FT_READ_FAILURE                                                     syscall.Errno = 415\n\tERROR_STORAGE_RESERVE_ID_INVALID                                          syscall.Errno = 416\n\tERROR_STORAGE_RESERVE_DOES_NOT_EXIST                                      syscall.Errno = 417\n\tERROR_STORAGE_RESERVE_ALREADY_EXISTS                                      syscall.Errno = 418\n\tERROR_STORAGE_RESERVE_NOT_EMPTY                                           syscall.Errno = 419\n\tERROR_NOT_A_DAX_VOLUME                                                    syscall.Errno = 420\n\tERROR_NOT_DAX_MAPPABLE                                                    syscall.Errno = 421\n\tERROR_TIME_SENSITIVE_THREAD                                               syscall.Errno = 422\n\tERROR_DPL_NOT_SUPPORTED_FOR_USER                                          syscall.Errno = 423\n\tERROR_CASE_DIFFERING_NAMES_IN_DIR                                         syscall.Errno = 424\n\tERROR_FILE_NOT_SUPPORTED                                                  syscall.Errno = 425\n\tERROR_CLOUD_FILE_REQUEST_TIMEOUT                                          syscall.Errno = 426\n\tERROR_NO_TASK_QUEUE                                                       syscall.Errno = 427\n\tERROR_SRC_SRV_DLL_LOAD_FAILED                                             syscall.Errno = 428\n\tERROR_NOT_SUPPORTED_WITH_BTT                                              syscall.Errno = 429\n\tERROR_ENCRYPTION_DISABLED                                                 syscall.Errno = 430\n\tERROR_ENCRYPTING_METADATA_DISALLOWED                                      syscall.Errno = 431\n\tERROR_CANT_CLEAR_ENCRYPTION_FLAG                                          syscall.Errno = 432\n\tERROR_NO_SUCH_DEVICE                                                      syscall.Errno = 433\n\tERROR_CAPAUTHZ_NOT_DEVUNLOCKED                                            syscall.Errno = 450\n\tERROR_CAPAUTHZ_CHANGE_TYPE                                                syscall.Errno = 451\n\tERROR_CAPAUTHZ_NOT_PROVISIONED                                            syscall.Errno = 452\n\tERROR_CAPAUTHZ_NOT_AUTHORIZED                                             syscall.Errno = 453\n\tERROR_CAPAUTHZ_NO_POLICY                                                  syscall.Errno = 454\n\tERROR_CAPAUTHZ_DB_CORRUPTED                                               syscall.Errno = 455\n\tERROR_CAPAUTHZ_SCCD_INVALID_CATALOG                                       syscall.Errno = 456\n\tERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY                                        syscall.Errno = 457\n\tERROR_CAPAUTHZ_SCCD_PARSE_ERROR                                           syscall.Errno = 458\n\tERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED                                     syscall.Errno = 459\n\tERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH                                   syscall.Errno = 460\n\tERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT                                     syscall.Errno = 480\n\tERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT                             syscall.Errno = 481\n\tERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT                           syscall.Errno = 482\n\tERROR_DEVICE_HARDWARE_ERROR                                               syscall.Errno = 483\n\tERROR_INVALID_ADDRESS                                                     syscall.Errno = 487\n\tERROR_VRF_CFG_ENABLED                                                     syscall.Errno = 1183\n\tERROR_PARTITION_TERMINATING                                               syscall.Errno = 1184\n\tERROR_USER_PROFILE_LOAD                                                   syscall.Errno = 500\n\tERROR_ARITHMETIC_OVERFLOW                                                 syscall.Errno = 534\n\tERROR_PIPE_CONNECTED                                                      syscall.Errno = 535\n\tERROR_PIPE_LISTENING                                                      syscall.Errno = 536\n\tERROR_VERIFIER_STOP                                                       syscall.Errno = 537\n\tERROR_ABIOS_ERROR                                                         syscall.Errno = 538\n\tERROR_WX86_WARNING                                                        syscall.Errno = 539\n\tERROR_WX86_ERROR                                                          syscall.Errno = 540\n\tERROR_TIMER_NOT_CANCELED                                                  syscall.Errno = 541\n\tERROR_UNWIND                                                              syscall.Errno = 542\n\tERROR_BAD_STACK                                                           syscall.Errno = 543\n\tERROR_INVALID_UNWIND_TARGET                                               syscall.Errno = 544\n\tERROR_INVALID_PORT_ATTRIBUTES                                             syscall.Errno = 545\n\tERROR_PORT_MESSAGE_TOO_LONG                                               syscall.Errno = 546\n\tERROR_INVALID_QUOTA_LOWER                                                 syscall.Errno = 547\n\tERROR_DEVICE_ALREADY_ATTACHED                                             syscall.Errno = 548\n\tERROR_INSTRUCTION_MISALIGNMENT                                            syscall.Errno = 549\n\tERROR_PROFILING_NOT_STARTED                                               syscall.Errno = 550\n\tERROR_PROFILING_NOT_STOPPED                                               syscall.Errno = 551\n\tERROR_COULD_NOT_INTERPRET                                                 syscall.Errno = 552\n\tERROR_PROFILING_AT_LIMIT                                                  syscall.Errno = 553\n\tERROR_CANT_WAIT                                                           syscall.Errno = 554\n\tERROR_CANT_TERMINATE_SELF                                                 syscall.Errno = 555\n\tERROR_UNEXPECTED_MM_CREATE_ERR                                            syscall.Errno = 556\n\tERROR_UNEXPECTED_MM_MAP_ERROR                                             syscall.Errno = 557\n\tERROR_UNEXPECTED_MM_EXTEND_ERR                                            syscall.Errno = 558\n\tERROR_BAD_FUNCTION_TABLE                                                  syscall.Errno = 559\n\tERROR_NO_GUID_TRANSLATION                                                 syscall.Errno = 560\n\tERROR_INVALID_LDT_SIZE                                                    syscall.Errno = 561\n\tERROR_INVALID_LDT_OFFSET                                                  syscall.Errno = 563\n\tERROR_INVALID_LDT_DESCRIPTOR                                              syscall.Errno = 564\n\tERROR_TOO_MANY_THREADS                                                    syscall.Errno = 565\n\tERROR_THREAD_NOT_IN_PROCESS                                               syscall.Errno = 566\n\tERROR_PAGEFILE_QUOTA_EXCEEDED                                             syscall.Errno = 567\n\tERROR_LOGON_SERVER_CONFLICT                                               syscall.Errno = 568\n\tERROR_SYNCHRONIZATION_REQUIRED                                            syscall.Errno = 569\n\tERROR_NET_OPEN_FAILED                                                     syscall.Errno = 570\n\tERROR_IO_PRIVILEGE_FAILED                                                 syscall.Errno = 571\n\tERROR_CONTROL_C_EXIT                                                      syscall.Errno = 572\n\tERROR_MISSING_SYSTEMFILE                                                  syscall.Errno = 573\n\tERROR_UNHANDLED_EXCEPTION                                                 syscall.Errno = 574\n\tERROR_APP_INIT_FAILURE                                                    syscall.Errno = 575\n\tERROR_PAGEFILE_CREATE_FAILED                                              syscall.Errno = 576\n\tERROR_INVALID_IMAGE_HASH                                                  syscall.Errno = 577\n\tERROR_NO_PAGEFILE                                                         syscall.Errno = 578\n\tERROR_ILLEGAL_FLOAT_CONTEXT                                               syscall.Errno = 579\n\tERROR_NO_EVENT_PAIR                                                       syscall.Errno = 580\n\tERROR_DOMAIN_CTRLR_CONFIG_ERROR                                           syscall.Errno = 581\n\tERROR_ILLEGAL_CHARACTER                                                   syscall.Errno = 582\n\tERROR_UNDEFINED_CHARACTER                                                 syscall.Errno = 583\n\tERROR_FLOPPY_VOLUME                                                       syscall.Errno = 584\n\tERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT                                    syscall.Errno = 585\n\tERROR_BACKUP_CONTROLLER                                                   syscall.Errno = 586\n\tERROR_MUTANT_LIMIT_EXCEEDED                                               syscall.Errno = 587\n\tERROR_FS_DRIVER_REQUIRED                                                  syscall.Errno = 588\n\tERROR_CANNOT_LOAD_REGISTRY_FILE                                           syscall.Errno = 589\n\tERROR_DEBUG_ATTACH_FAILED                                                 syscall.Errno = 590\n\tERROR_SYSTEM_PROCESS_TERMINATED                                           syscall.Errno = 591\n\tERROR_DATA_NOT_ACCEPTED                                                   syscall.Errno = 592\n\tERROR_VDM_HARD_ERROR                                                      syscall.Errno = 593\n\tERROR_DRIVER_CANCEL_TIMEOUT                                               syscall.Errno = 594\n\tERROR_REPLY_MESSAGE_MISMATCH                                              syscall.Errno = 595\n\tERROR_LOST_WRITEBEHIND_DATA                                               syscall.Errno = 596\n\tERROR_CLIENT_SERVER_PARAMETERS_INVALID                                    syscall.Errno = 597\n\tERROR_NOT_TINY_STREAM                                                     syscall.Errno = 598\n\tERROR_STACK_OVERFLOW_READ                                                 syscall.Errno = 599\n\tERROR_CONVERT_TO_LARGE                                                    syscall.Errno = 600\n\tERROR_FOUND_OUT_OF_SCOPE                                                  syscall.Errno = 601\n\tERROR_ALLOCATE_BUCKET                                                     syscall.Errno = 602\n\tERROR_MARSHALL_OVERFLOW                                                   syscall.Errno = 603\n\tERROR_INVALID_VARIANT                                                     syscall.Errno = 604\n\tERROR_BAD_COMPRESSION_BUFFER                                              syscall.Errno = 605\n\tERROR_AUDIT_FAILED                                                        syscall.Errno = 606\n\tERROR_TIMER_RESOLUTION_NOT_SET                                            syscall.Errno = 607\n\tERROR_INSUFFICIENT_LOGON_INFO                                             syscall.Errno = 608\n\tERROR_BAD_DLL_ENTRYPOINT                                                  syscall.Errno = 609\n\tERROR_BAD_SERVICE_ENTRYPOINT                                              syscall.Errno = 610\n\tERROR_IP_ADDRESS_CONFLICT1                                                syscall.Errno = 611\n\tERROR_IP_ADDRESS_CONFLICT2                                                syscall.Errno = 612\n\tERROR_REGISTRY_QUOTA_LIMIT                                                syscall.Errno = 613\n\tERROR_NO_CALLBACK_ACTIVE                                                  syscall.Errno = 614\n\tERROR_PWD_TOO_SHORT                                                       syscall.Errno = 615\n\tERROR_PWD_TOO_RECENT                                                      syscall.Errno = 616\n\tERROR_PWD_HISTORY_CONFLICT                                                syscall.Errno = 617\n\tERROR_UNSUPPORTED_COMPRESSION                                             syscall.Errno = 618\n\tERROR_INVALID_HW_PROFILE                                                  syscall.Errno = 619\n\tERROR_INVALID_PLUGPLAY_DEVICE_PATH                                        syscall.Errno = 620\n\tERROR_QUOTA_LIST_INCONSISTENT                                             syscall.Errno = 621\n\tERROR_EVALUATION_EXPIRATION                                               syscall.Errno = 622\n\tERROR_ILLEGAL_DLL_RELOCATION                                              syscall.Errno = 623\n\tERROR_DLL_INIT_FAILED_LOGOFF                                              syscall.Errno = 624\n\tERROR_VALIDATE_CONTINUE                                                   syscall.Errno = 625\n\tERROR_NO_MORE_MATCHES                                                     syscall.Errno = 626\n\tERROR_RANGE_LIST_CONFLICT                                                 syscall.Errno = 627\n\tERROR_SERVER_SID_MISMATCH                                                 syscall.Errno = 628\n\tERROR_CANT_ENABLE_DENY_ONLY                                               syscall.Errno = 629\n\tERROR_FLOAT_MULTIPLE_FAULTS                                               syscall.Errno = 630\n\tERROR_FLOAT_MULTIPLE_TRAPS                                                syscall.Errno = 631\n\tERROR_NOINTERFACE                                                         syscall.Errno = 632\n\tERROR_DRIVER_FAILED_SLEEP                                                 syscall.Errno = 633\n\tERROR_CORRUPT_SYSTEM_FILE                                                 syscall.Errno = 634\n\tERROR_COMMITMENT_MINIMUM                                                  syscall.Errno = 635\n\tERROR_PNP_RESTART_ENUMERATION                                             syscall.Errno = 636\n\tERROR_SYSTEM_IMAGE_BAD_SIGNATURE                                          syscall.Errno = 637\n\tERROR_PNP_REBOOT_REQUIRED                                                 syscall.Errno = 638\n\tERROR_INSUFFICIENT_POWER                                                  syscall.Errno = 639\n\tERROR_MULTIPLE_FAULT_VIOLATION                                            syscall.Errno = 640\n\tERROR_SYSTEM_SHUTDOWN                                                     syscall.Errno = 641\n\tERROR_PORT_NOT_SET                                                        syscall.Errno = 642\n\tERROR_DS_VERSION_CHECK_FAILURE                                            syscall.Errno = 643\n\tERROR_RANGE_NOT_FOUND                                                     syscall.Errno = 644\n\tERROR_NOT_SAFE_MODE_DRIVER                                                syscall.Errno = 646\n\tERROR_FAILED_DRIVER_ENTRY                                                 syscall.Errno = 647\n\tERROR_DEVICE_ENUMERATION_ERROR                                            syscall.Errno = 648\n\tERROR_MOUNT_POINT_NOT_RESOLVED                                            syscall.Errno = 649\n\tERROR_INVALID_DEVICE_OBJECT_PARAMETER                                     syscall.Errno = 650\n\tERROR_MCA_OCCURED                                                         syscall.Errno = 651\n\tERROR_DRIVER_DATABASE_ERROR                                               syscall.Errno = 652\n\tERROR_SYSTEM_HIVE_TOO_LARGE                                               syscall.Errno = 653\n\tERROR_DRIVER_FAILED_PRIOR_UNLOAD                                          syscall.Errno = 654\n\tERROR_VOLSNAP_PREPARE_HIBERNATE                                           syscall.Errno = 655\n\tERROR_HIBERNATION_FAILURE                                                 syscall.Errno = 656\n\tERROR_PWD_TOO_LONG                                                        syscall.Errno = 657\n\tERROR_FILE_SYSTEM_LIMITATION                                              syscall.Errno = 665\n\tERROR_ASSERTION_FAILURE                                                   syscall.Errno = 668\n\tERROR_ACPI_ERROR                                                          syscall.Errno = 669\n\tERROR_WOW_ASSERTION                                                       syscall.Errno = 670\n\tERROR_PNP_BAD_MPS_TABLE                                                   syscall.Errno = 671\n\tERROR_PNP_TRANSLATION_FAILED                                              syscall.Errno = 672\n\tERROR_PNP_IRQ_TRANSLATION_FAILED                                          syscall.Errno = 673\n\tERROR_PNP_INVALID_ID                                                      syscall.Errno = 674\n\tERROR_WAKE_SYSTEM_DEBUGGER                                                syscall.Errno = 675\n\tERROR_HANDLES_CLOSED                                                      syscall.Errno = 676\n\tERROR_EXTRANEOUS_INFORMATION                                              syscall.Errno = 677\n\tERROR_RXACT_COMMIT_NECESSARY                                              syscall.Errno = 678\n\tERROR_MEDIA_CHECK                                                         syscall.Errno = 679\n\tERROR_GUID_SUBSTITUTION_MADE                                              syscall.Errno = 680\n\tERROR_STOPPED_ON_SYMLINK                                                  syscall.Errno = 681\n\tERROR_LONGJUMP                                                            syscall.Errno = 682\n\tERROR_PLUGPLAY_QUERY_VETOED                                               syscall.Errno = 683\n\tERROR_UNWIND_CONSOLIDATE                                                  syscall.Errno = 684\n\tERROR_REGISTRY_HIVE_RECOVERED                                             syscall.Errno = 685\n\tERROR_DLL_MIGHT_BE_INSECURE                                               syscall.Errno = 686\n\tERROR_DLL_MIGHT_BE_INCOMPATIBLE                                           syscall.Errno = 687\n\tERROR_DBG_EXCEPTION_NOT_HANDLED                                           syscall.Errno = 688\n\tERROR_DBG_REPLY_LATER                                                     syscall.Errno = 689\n\tERROR_DBG_UNABLE_TO_PROVIDE_HANDLE                                        syscall.Errno = 690\n\tERROR_DBG_TERMINATE_THREAD                                                syscall.Errno = 691\n\tERROR_DBG_TERMINATE_PROCESS                                               syscall.Errno = 692\n\tERROR_DBG_CONTROL_C                                                       syscall.Errno = 693\n\tERROR_DBG_PRINTEXCEPTION_C                                                syscall.Errno = 694\n\tERROR_DBG_RIPEXCEPTION                                                    syscall.Errno = 695\n\tERROR_DBG_CONTROL_BREAK                                                   syscall.Errno = 696\n\tERROR_DBG_COMMAND_EXCEPTION                                               syscall.Errno = 697\n\tERROR_OBJECT_NAME_EXISTS                                                  syscall.Errno = 698\n\tERROR_THREAD_WAS_SUSPENDED                                                syscall.Errno = 699\n\tERROR_IMAGE_NOT_AT_BASE                                                   syscall.Errno = 700\n\tERROR_RXACT_STATE_CREATED                                                 syscall.Errno = 701\n\tERROR_SEGMENT_NOTIFICATION                                                syscall.Errno = 702\n\tERROR_BAD_CURRENT_DIRECTORY                                               syscall.Errno = 703\n\tERROR_FT_READ_RECOVERY_FROM_BACKUP                                        syscall.Errno = 704\n\tERROR_FT_WRITE_RECOVERY                                                   syscall.Errno = 705\n\tERROR_IMAGE_MACHINE_TYPE_MISMATCH                                         syscall.Errno = 706\n\tERROR_RECEIVE_PARTIAL                                                     syscall.Errno = 707\n\tERROR_RECEIVE_EXPEDITED                                                   syscall.Errno = 708\n\tERROR_RECEIVE_PARTIAL_EXPEDITED                                           syscall.Errno = 709\n\tERROR_EVENT_DONE                                                          syscall.Errno = 710\n\tERROR_EVENT_PENDING                                                       syscall.Errno = 711\n\tERROR_CHECKING_FILE_SYSTEM                                                syscall.Errno = 712\n\tERROR_FATAL_APP_EXIT                                                      syscall.Errno = 713\n\tERROR_PREDEFINED_HANDLE                                                   syscall.Errno = 714\n\tERROR_WAS_UNLOCKED                                                        syscall.Errno = 715\n\tERROR_SERVICE_NOTIFICATION                                                syscall.Errno = 716\n\tERROR_WAS_LOCKED                                                          syscall.Errno = 717\n\tERROR_LOG_HARD_ERROR                                                      syscall.Errno = 718\n\tERROR_ALREADY_WIN32                                                       syscall.Errno = 719\n\tERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE                                     syscall.Errno = 720\n\tERROR_NO_YIELD_PERFORMED                                                  syscall.Errno = 721\n\tERROR_TIMER_RESUME_IGNORED                                                syscall.Errno = 722\n\tERROR_ARBITRATION_UNHANDLED                                               syscall.Errno = 723\n\tERROR_CARDBUS_NOT_SUPPORTED                                               syscall.Errno = 724\n\tERROR_MP_PROCESSOR_MISMATCH                                               syscall.Errno = 725\n\tERROR_HIBERNATED                                                          syscall.Errno = 726\n\tERROR_RESUME_HIBERNATION                                                  syscall.Errno = 727\n\tERROR_FIRMWARE_UPDATED                                                    syscall.Errno = 728\n\tERROR_DRIVERS_LEAKING_LOCKED_PAGES                                        syscall.Errno = 729\n\tERROR_WAKE_SYSTEM                                                         syscall.Errno = 730\n\tERROR_WAIT_1                                                              syscall.Errno = 731\n\tERROR_WAIT_2                                                              syscall.Errno = 732\n\tERROR_WAIT_3                                                              syscall.Errno = 733\n\tERROR_WAIT_63                                                             syscall.Errno = 734\n\tERROR_ABANDONED_WAIT_0                                                    syscall.Errno = 735\n\tERROR_ABANDONED_WAIT_63                                                   syscall.Errno = 736\n\tERROR_USER_APC                                                            syscall.Errno = 737\n\tERROR_KERNEL_APC                                                          syscall.Errno = 738\n\tERROR_ALERTED                                                             syscall.Errno = 739\n\tERROR_ELEVATION_REQUIRED                                                  syscall.Errno = 740\n\tERROR_REPARSE                                                             syscall.Errno = 741\n\tERROR_OPLOCK_BREAK_IN_PROGRESS                                            syscall.Errno = 742\n\tERROR_VOLUME_MOUNTED                                                      syscall.Errno = 743\n\tERROR_RXACT_COMMITTED                                                     syscall.Errno = 744\n\tERROR_NOTIFY_CLEANUP                                                      syscall.Errno = 745\n\tERROR_PRIMARY_TRANSPORT_CONNECT_FAILED                                    syscall.Errno = 746\n\tERROR_PAGE_FAULT_TRANSITION                                               syscall.Errno = 747\n\tERROR_PAGE_FAULT_DEMAND_ZERO                                              syscall.Errno = 748\n\tERROR_PAGE_FAULT_COPY_ON_WRITE                                            syscall.Errno = 749\n\tERROR_PAGE_FAULT_GUARD_PAGE                                               syscall.Errno = 750\n\tERROR_PAGE_FAULT_PAGING_FILE                                              syscall.Errno = 751\n\tERROR_CACHE_PAGE_LOCKED                                                   syscall.Errno = 752\n\tERROR_CRASH_DUMP                                                          syscall.Errno = 753\n\tERROR_BUFFER_ALL_ZEROS                                                    syscall.Errno = 754\n\tERROR_REPARSE_OBJECT                                                      syscall.Errno = 755\n\tERROR_RESOURCE_REQUIREMENTS_CHANGED                                       syscall.Errno = 756\n\tERROR_TRANSLATION_COMPLETE                                                syscall.Errno = 757\n\tERROR_NOTHING_TO_TERMINATE                                                syscall.Errno = 758\n\tERROR_PROCESS_NOT_IN_JOB                                                  syscall.Errno = 759\n\tERROR_PROCESS_IN_JOB                                                      syscall.Errno = 760\n\tERROR_VOLSNAP_HIBERNATE_READY                                             syscall.Errno = 761\n\tERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY                                  syscall.Errno = 762\n\tERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED                                  syscall.Errno = 763\n\tERROR_INTERRUPT_STILL_CONNECTED                                           syscall.Errno = 764\n\tERROR_WAIT_FOR_OPLOCK                                                     syscall.Errno = 765\n\tERROR_DBG_EXCEPTION_HANDLED                                               syscall.Errno = 766\n\tERROR_DBG_CONTINUE                                                        syscall.Errno = 767\n\tERROR_CALLBACK_POP_STACK                                                  syscall.Errno = 768\n\tERROR_COMPRESSION_DISABLED                                                syscall.Errno = 769\n\tERROR_CANTFETCHBACKWARDS                                                  syscall.Errno = 770\n\tERROR_CANTSCROLLBACKWARDS                                                 syscall.Errno = 771\n\tERROR_ROWSNOTRELEASED                                                     syscall.Errno = 772\n\tERROR_BAD_ACCESSOR_FLAGS                                                  syscall.Errno = 773\n\tERROR_ERRORS_ENCOUNTERED                                                  syscall.Errno = 774\n\tERROR_NOT_CAPABLE                                                         syscall.Errno = 775\n\tERROR_REQUEST_OUT_OF_SEQUENCE                                             syscall.Errno = 776\n\tERROR_VERSION_PARSE_ERROR                                                 syscall.Errno = 777\n\tERROR_BADSTARTPOSITION                                                    syscall.Errno = 778\n\tERROR_MEMORY_HARDWARE                                                     syscall.Errno = 779\n\tERROR_DISK_REPAIR_DISABLED                                                syscall.Errno = 780\n\tERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE             syscall.Errno = 781\n\tERROR_SYSTEM_POWERSTATE_TRANSITION                                        syscall.Errno = 782\n\tERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION                                syscall.Errno = 783\n\tERROR_MCA_EXCEPTION                                                       syscall.Errno = 784\n\tERROR_ACCESS_AUDIT_BY_POLICY                                              syscall.Errno = 785\n\tERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY                               syscall.Errno = 786\n\tERROR_ABANDON_HIBERFILE                                                   syscall.Errno = 787\n\tERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED                          syscall.Errno = 788\n\tERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR                          syscall.Errno = 789\n\tERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR                              syscall.Errno = 790\n\tERROR_BAD_MCFG_TABLE                                                      syscall.Errno = 791\n\tERROR_DISK_REPAIR_REDIRECTED                                              syscall.Errno = 792\n\tERROR_DISK_REPAIR_UNSUCCESSFUL                                            syscall.Errno = 793\n\tERROR_CORRUPT_LOG_OVERFULL                                                syscall.Errno = 794\n\tERROR_CORRUPT_LOG_CORRUPTED                                               syscall.Errno = 795\n\tERROR_CORRUPT_LOG_UNAVAILABLE                                             syscall.Errno = 796\n\tERROR_CORRUPT_LOG_DELETED_FULL                                            syscall.Errno = 797\n\tERROR_CORRUPT_LOG_CLEARED                                                 syscall.Errno = 798\n\tERROR_ORPHAN_NAME_EXHAUSTED                                               syscall.Errno = 799\n\tERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE                                       syscall.Errno = 800\n\tERROR_CANNOT_GRANT_REQUESTED_OPLOCK                                       syscall.Errno = 801\n\tERROR_CANNOT_BREAK_OPLOCK                                                 syscall.Errno = 802\n\tERROR_OPLOCK_HANDLE_CLOSED                                                syscall.Errno = 803\n\tERROR_NO_ACE_CONDITION                                                    syscall.Errno = 804\n\tERROR_INVALID_ACE_CONDITION                                               syscall.Errno = 805\n\tERROR_FILE_HANDLE_REVOKED                                                 syscall.Errno = 806\n\tERROR_IMAGE_AT_DIFFERENT_BASE                                             syscall.Errno = 807\n\tERROR_ENCRYPTED_IO_NOT_POSSIBLE                                           syscall.Errno = 808\n\tERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS                              syscall.Errno = 809\n\tERROR_QUOTA_ACTIVITY                                                      syscall.Errno = 810\n\tERROR_HANDLE_REVOKED                                                      syscall.Errno = 811\n\tERROR_CALLBACK_INVOKE_INLINE                                              syscall.Errno = 812\n\tERROR_CPU_SET_INVALID                                                     syscall.Errno = 813\n\tERROR_ENCLAVE_NOT_TERMINATED                                              syscall.Errno = 814\n\tERROR_ENCLAVE_VIOLATION                                                   syscall.Errno = 815\n\tERROR_EA_ACCESS_DENIED                                                    syscall.Errno = 994\n\tERROR_OPERATION_ABORTED                                                   syscall.Errno = 995\n\tERROR_IO_INCOMPLETE                                                       syscall.Errno = 996\n\tERROR_IO_PENDING                                                          syscall.Errno = 997\n\tERROR_NOACCESS                                                            syscall.Errno = 998\n\tERROR_SWAPERROR                                                           syscall.Errno = 999\n\tERROR_STACK_OVERFLOW                                                      syscall.Errno = 1001\n\tERROR_INVALID_MESSAGE                                                     syscall.Errno = 1002\n\tERROR_CAN_NOT_COMPLETE                                                    syscall.Errno = 1003\n\tERROR_INVALID_FLAGS                                                       syscall.Errno = 1004\n\tERROR_UNRECOGNIZED_VOLUME                                                 syscall.Errno = 1005\n\tERROR_FILE_INVALID                                                        syscall.Errno = 1006\n\tERROR_FULLSCREEN_MODE                                                     syscall.Errno = 1007\n\tERROR_NO_TOKEN                                                            syscall.Errno = 1008\n\tERROR_BADDB                                                               syscall.Errno = 1009\n\tERROR_BADKEY                                                              syscall.Errno = 1010\n\tERROR_CANTOPEN                                                            syscall.Errno = 1011\n\tERROR_CANTREAD                                                            syscall.Errno = 1012\n\tERROR_CANTWRITE                                                           syscall.Errno = 1013\n\tERROR_REGISTRY_RECOVERED                                                  syscall.Errno = 1014\n\tERROR_REGISTRY_CORRUPT                                                    syscall.Errno = 1015\n\tERROR_REGISTRY_IO_FAILED                                                  syscall.Errno = 1016\n\tERROR_NOT_REGISTRY_FILE                                                   syscall.Errno = 1017\n\tERROR_KEY_DELETED                                                         syscall.Errno = 1018\n\tERROR_NO_LOG_SPACE                                                        syscall.Errno = 1019\n\tERROR_KEY_HAS_CHILDREN                                                    syscall.Errno = 1020\n\tERROR_CHILD_MUST_BE_VOLATILE                                              syscall.Errno = 1021\n\tERROR_NOTIFY_ENUM_DIR                                                     syscall.Errno = 1022\n\tERROR_DEPENDENT_SERVICES_RUNNING                                          syscall.Errno = 1051\n\tERROR_INVALID_SERVICE_CONTROL                                             syscall.Errno = 1052\n\tERROR_SERVICE_REQUEST_TIMEOUT                                             syscall.Errno = 1053\n\tERROR_SERVICE_NO_THREAD                                                   syscall.Errno = 1054\n\tERROR_SERVICE_DATABASE_LOCKED                                             syscall.Errno = 1055\n\tERROR_SERVICE_ALREADY_RUNNING                                             syscall.Errno = 1056\n\tERROR_INVALID_SERVICE_ACCOUNT                                             syscall.Errno = 1057\n\tERROR_SERVICE_DISABLED                                                    syscall.Errno = 1058\n\tERROR_CIRCULAR_DEPENDENCY                                                 syscall.Errno = 1059\n\tERROR_SERVICE_DOES_NOT_EXIST                                              syscall.Errno = 1060\n\tERROR_SERVICE_CANNOT_ACCEPT_CTRL                                          syscall.Errno = 1061\n\tERROR_SERVICE_NOT_ACTIVE                                                  syscall.Errno = 1062\n\tERROR_FAILED_SERVICE_CONTROLLER_CONNECT                                   syscall.Errno = 1063\n\tERROR_EXCEPTION_IN_SERVICE                                                syscall.Errno = 1064\n\tERROR_DATABASE_DOES_NOT_EXIST                                             syscall.Errno = 1065\n\tERROR_SERVICE_SPECIFIC_ERROR                                              syscall.Errno = 1066\n\tERROR_PROCESS_ABORTED                                                     syscall.Errno = 1067\n\tERROR_SERVICE_DEPENDENCY_FAIL                                             syscall.Errno = 1068\n\tERROR_SERVICE_LOGON_FAILED                                                syscall.Errno = 1069\n\tERROR_SERVICE_START_HANG                                                  syscall.Errno = 1070\n\tERROR_INVALID_SERVICE_LOCK                                                syscall.Errno = 1071\n\tERROR_SERVICE_MARKED_FOR_DELETE                                           syscall.Errno = 1072\n\tERROR_SERVICE_EXISTS                                                      syscall.Errno = 1073\n\tERROR_ALREADY_RUNNING_LKG                                                 syscall.Errno = 1074\n\tERROR_SERVICE_DEPENDENCY_DELETED                                          syscall.Errno = 1075\n\tERROR_BOOT_ALREADY_ACCEPTED                                               syscall.Errno = 1076\n\tERROR_SERVICE_NEVER_STARTED                                               syscall.Errno = 1077\n\tERROR_DUPLICATE_SERVICE_NAME                                              syscall.Errno = 1078\n\tERROR_DIFFERENT_SERVICE_ACCOUNT                                           syscall.Errno = 1079\n\tERROR_CANNOT_DETECT_DRIVER_FAILURE                                        syscall.Errno = 1080\n\tERROR_CANNOT_DETECT_PROCESS_ABORT                                         syscall.Errno = 1081\n\tERROR_NO_RECOVERY_PROGRAM                                                 syscall.Errno = 1082\n\tERROR_SERVICE_NOT_IN_EXE                                                  syscall.Errno = 1083\n\tERROR_NOT_SAFEBOOT_SERVICE                                                syscall.Errno = 1084\n\tERROR_END_OF_MEDIA                                                        syscall.Errno = 1100\n\tERROR_FILEMARK_DETECTED                                                   syscall.Errno = 1101\n\tERROR_BEGINNING_OF_MEDIA                                                  syscall.Errno = 1102\n\tERROR_SETMARK_DETECTED                                                    syscall.Errno = 1103\n\tERROR_NO_DATA_DETECTED                                                    syscall.Errno = 1104\n\tERROR_PARTITION_FAILURE                                                   syscall.Errno = 1105\n\tERROR_INVALID_BLOCK_LENGTH                                                syscall.Errno = 1106\n\tERROR_DEVICE_NOT_PARTITIONED                                              syscall.Errno = 1107\n\tERROR_UNABLE_TO_LOCK_MEDIA                                                syscall.Errno = 1108\n\tERROR_UNABLE_TO_UNLOAD_MEDIA                                              syscall.Errno = 1109\n\tERROR_MEDIA_CHANGED                                                       syscall.Errno = 1110\n\tERROR_BUS_RESET                                                           syscall.Errno = 1111\n\tERROR_NO_MEDIA_IN_DRIVE                                                   syscall.Errno = 1112\n\tERROR_NO_UNICODE_TRANSLATION                                              syscall.Errno = 1113\n\tERROR_DLL_INIT_FAILED                                                     syscall.Errno = 1114\n\tERROR_SHUTDOWN_IN_PROGRESS                                                syscall.Errno = 1115\n\tERROR_NO_SHUTDOWN_IN_PROGRESS                                             syscall.Errno = 1116\n\tERROR_IO_DEVICE                                                           syscall.Errno = 1117\n\tERROR_SERIAL_NO_DEVICE                                                    syscall.Errno = 1118\n\tERROR_IRQ_BUSY                                                            syscall.Errno = 1119\n\tERROR_MORE_WRITES                                                         syscall.Errno = 1120\n\tERROR_COUNTER_TIMEOUT                                                     syscall.Errno = 1121\n\tERROR_FLOPPY_ID_MARK_NOT_FOUND                                            syscall.Errno = 1122\n\tERROR_FLOPPY_WRONG_CYLINDER                                               syscall.Errno = 1123\n\tERROR_FLOPPY_UNKNOWN_ERROR                                                syscall.Errno = 1124\n\tERROR_FLOPPY_BAD_REGISTERS                                                syscall.Errno = 1125\n\tERROR_DISK_RECALIBRATE_FAILED                                             syscall.Errno = 1126\n\tERROR_DISK_OPERATION_FAILED                                               syscall.Errno = 1127\n\tERROR_DISK_RESET_FAILED                                                   syscall.Errno = 1128\n\tERROR_EOM_OVERFLOW                                                        syscall.Errno = 1129\n\tERROR_NOT_ENOUGH_SERVER_MEMORY                                            syscall.Errno = 1130\n\tERROR_POSSIBLE_DEADLOCK                                                   syscall.Errno = 1131\n\tERROR_MAPPED_ALIGNMENT                                                    syscall.Errno = 1132\n\tERROR_SET_POWER_STATE_VETOED                                              syscall.Errno = 1140\n\tERROR_SET_POWER_STATE_FAILED                                              syscall.Errno = 1141\n\tERROR_TOO_MANY_LINKS                                                      syscall.Errno = 1142\n\tERROR_OLD_WIN_VERSION                                                     syscall.Errno = 1150\n\tERROR_APP_WRONG_OS                                                        syscall.Errno = 1151\n\tERROR_SINGLE_INSTANCE_APP                                                 syscall.Errno = 1152\n\tERROR_RMODE_APP                                                           syscall.Errno = 1153\n\tERROR_INVALID_DLL                                                         syscall.Errno = 1154\n\tERROR_NO_ASSOCIATION                                                      syscall.Errno = 1155\n\tERROR_DDE_FAIL                                                            syscall.Errno = 1156\n\tERROR_DLL_NOT_FOUND                                                       syscall.Errno = 1157\n\tERROR_NO_MORE_USER_HANDLES                                                syscall.Errno = 1158\n\tERROR_MESSAGE_SYNC_ONLY                                                   syscall.Errno = 1159\n\tERROR_SOURCE_ELEMENT_EMPTY                                                syscall.Errno = 1160\n\tERROR_DESTINATION_ELEMENT_FULL                                            syscall.Errno = 1161\n\tERROR_ILLEGAL_ELEMENT_ADDRESS                                             syscall.Errno = 1162\n\tERROR_MAGAZINE_NOT_PRESENT                                                syscall.Errno = 1163\n\tERROR_DEVICE_REINITIALIZATION_NEEDED                                      syscall.Errno = 1164\n\tERROR_DEVICE_REQUIRES_CLEANING                                            syscall.Errno = 1165\n\tERROR_DEVICE_DOOR_OPEN                                                    syscall.Errno = 1166\n\tERROR_DEVICE_NOT_CONNECTED                                                syscall.Errno = 1167\n\tERROR_NOT_FOUND                                                           syscall.Errno = 1168\n\tERROR_NO_MATCH                                                            syscall.Errno = 1169\n\tERROR_SET_NOT_FOUND                                                       syscall.Errno = 1170\n\tERROR_POINT_NOT_FOUND                                                     syscall.Errno = 1171\n\tERROR_NO_TRACKING_SERVICE                                                 syscall.Errno = 1172\n\tERROR_NO_VOLUME_ID                                                        syscall.Errno = 1173\n\tERROR_UNABLE_TO_REMOVE_REPLACED                                           syscall.Errno = 1175\n\tERROR_UNABLE_TO_MOVE_REPLACEMENT                                          syscall.Errno = 1176\n\tERROR_UNABLE_TO_MOVE_REPLACEMENT_2                                        syscall.Errno = 1177\n\tERROR_JOURNAL_DELETE_IN_PROGRESS                                          syscall.Errno = 1178\n\tERROR_JOURNAL_NOT_ACTIVE                                                  syscall.Errno = 1179\n\tERROR_POTENTIAL_FILE_FOUND                                                syscall.Errno = 1180\n\tERROR_JOURNAL_ENTRY_DELETED                                               syscall.Errno = 1181\n\tERROR_SHUTDOWN_IS_SCHEDULED                                               syscall.Errno = 1190\n\tERROR_SHUTDOWN_USERS_LOGGED_ON                                            syscall.Errno = 1191\n\tERROR_BAD_DEVICE                                                          syscall.Errno = 1200\n\tERROR_CONNECTION_UNAVAIL                                                  syscall.Errno = 1201\n\tERROR_DEVICE_ALREADY_REMEMBERED                                           syscall.Errno = 1202\n\tERROR_NO_NET_OR_BAD_PATH                                                  syscall.Errno = 1203\n\tERROR_BAD_PROVIDER                                                        syscall.Errno = 1204\n\tERROR_CANNOT_OPEN_PROFILE                                                 syscall.Errno = 1205\n\tERROR_BAD_PROFILE                                                         syscall.Errno = 1206\n\tERROR_NOT_CONTAINER                                                       syscall.Errno = 1207\n\tERROR_EXTENDED_ERROR                                                      syscall.Errno = 1208\n\tERROR_INVALID_GROUPNAME                                                   syscall.Errno = 1209\n\tERROR_INVALID_COMPUTERNAME                                                syscall.Errno = 1210\n\tERROR_INVALID_EVENTNAME                                                   syscall.Errno = 1211\n\tERROR_INVALID_DOMAINNAME                                                  syscall.Errno = 1212\n\tERROR_INVALID_SERVICENAME                                                 syscall.Errno = 1213\n\tERROR_INVALID_NETNAME                                                     syscall.Errno = 1214\n\tERROR_INVALID_SHARENAME                                                   syscall.Errno = 1215\n\tERROR_INVALID_PASSWORDNAME                                                syscall.Errno = 1216\n\tERROR_INVALID_MESSAGENAME                                                 syscall.Errno = 1217\n\tERROR_INVALID_MESSAGEDEST                                                 syscall.Errno = 1218\n\tERROR_SESSION_CREDENTIAL_CONFLICT                                         syscall.Errno = 1219\n\tERROR_REMOTE_SESSION_LIMIT_EXCEEDED                                       syscall.Errno = 1220\n\tERROR_DUP_DOMAINNAME                                                      syscall.Errno = 1221\n\tERROR_NO_NETWORK                                                          syscall.Errno = 1222\n\tERROR_CANCELLED                                                           syscall.Errno = 1223\n\tERROR_USER_MAPPED_FILE                                                    syscall.Errno = 1224\n\tERROR_CONNECTION_REFUSED                                                  syscall.Errno = 1225\n\tERROR_GRACEFUL_DISCONNECT                                                 syscall.Errno = 1226\n\tERROR_ADDRESS_ALREADY_ASSOCIATED                                          syscall.Errno = 1227\n\tERROR_ADDRESS_NOT_ASSOCIATED                                              syscall.Errno = 1228\n\tERROR_CONNECTION_INVALID                                                  syscall.Errno = 1229\n\tERROR_CONNECTION_ACTIVE                                                   syscall.Errno = 1230\n\tERROR_NETWORK_UNREACHABLE                                                 syscall.Errno = 1231\n\tERROR_HOST_UNREACHABLE                                                    syscall.Errno = 1232\n\tERROR_PROTOCOL_UNREACHABLE                                                syscall.Errno = 1233\n\tERROR_PORT_UNREACHABLE                                                    syscall.Errno = 1234\n\tERROR_REQUEST_ABORTED                                                     syscall.Errno = 1235\n\tERROR_CONNECTION_ABORTED                                                  syscall.Errno = 1236\n\tERROR_RETRY                                                               syscall.Errno = 1237\n\tERROR_CONNECTION_COUNT_LIMIT                                              syscall.Errno = 1238\n\tERROR_LOGIN_TIME_RESTRICTION                                              syscall.Errno = 1239\n\tERROR_LOGIN_WKSTA_RESTRICTION                                             syscall.Errno = 1240\n\tERROR_INCORRECT_ADDRESS                                                   syscall.Errno = 1241\n\tERROR_ALREADY_REGISTERED                                                  syscall.Errno = 1242\n\tERROR_SERVICE_NOT_FOUND                                                   syscall.Errno = 1243\n\tERROR_NOT_AUTHENTICATED                                                   syscall.Errno = 1244\n\tERROR_NOT_LOGGED_ON                                                       syscall.Errno = 1245\n\tERROR_CONTINUE                                                            syscall.Errno = 1246\n\tERROR_ALREADY_INITIALIZED                                                 syscall.Errno = 1247\n\tERROR_NO_MORE_DEVICES                                                     syscall.Errno = 1248\n\tERROR_NO_SUCH_SITE                                                        syscall.Errno = 1249\n\tERROR_DOMAIN_CONTROLLER_EXISTS                                            syscall.Errno = 1250\n\tERROR_ONLY_IF_CONNECTED                                                   syscall.Errno = 1251\n\tERROR_OVERRIDE_NOCHANGES                                                  syscall.Errno = 1252\n\tERROR_BAD_USER_PROFILE                                                    syscall.Errno = 1253\n\tERROR_NOT_SUPPORTED_ON_SBS                                                syscall.Errno = 1254\n\tERROR_SERVER_SHUTDOWN_IN_PROGRESS                                         syscall.Errno = 1255\n\tERROR_HOST_DOWN                                                           syscall.Errno = 1256\n\tERROR_NON_ACCOUNT_SID                                                     syscall.Errno = 1257\n\tERROR_NON_DOMAIN_SID                                                      syscall.Errno = 1258\n\tERROR_APPHELP_BLOCK                                                       syscall.Errno = 1259\n\tERROR_ACCESS_DISABLED_BY_POLICY                                           syscall.Errno = 1260\n\tERROR_REG_NAT_CONSUMPTION                                                 syscall.Errno = 1261\n\tERROR_CSCSHARE_OFFLINE                                                    syscall.Errno = 1262\n\tERROR_PKINIT_FAILURE                                                      syscall.Errno = 1263\n\tERROR_SMARTCARD_SUBSYSTEM_FAILURE                                         syscall.Errno = 1264\n\tERROR_DOWNGRADE_DETECTED                                                  syscall.Errno = 1265\n\tERROR_MACHINE_LOCKED                                                      syscall.Errno = 1271\n\tERROR_SMB_GUEST_LOGON_BLOCKED                                             syscall.Errno = 1272\n\tERROR_CALLBACK_SUPPLIED_INVALID_DATA                                      syscall.Errno = 1273\n\tERROR_SYNC_FOREGROUND_REFRESH_REQUIRED                                    syscall.Errno = 1274\n\tERROR_DRIVER_BLOCKED                                                      syscall.Errno = 1275\n\tERROR_INVALID_IMPORT_OF_NON_DLL                                           syscall.Errno = 1276\n\tERROR_ACCESS_DISABLED_WEBBLADE                                            syscall.Errno = 1277\n\tERROR_ACCESS_DISABLED_WEBBLADE_TAMPER                                     syscall.Errno = 1278\n\tERROR_RECOVERY_FAILURE                                                    syscall.Errno = 1279\n\tERROR_ALREADY_FIBER                                                       syscall.Errno = 1280\n\tERROR_ALREADY_THREAD                                                      syscall.Errno = 1281\n\tERROR_STACK_BUFFER_OVERRUN                                                syscall.Errno = 1282\n\tERROR_PARAMETER_QUOTA_EXCEEDED                                            syscall.Errno = 1283\n\tERROR_DEBUGGER_INACTIVE                                                   syscall.Errno = 1284\n\tERROR_DELAY_LOAD_FAILED                                                   syscall.Errno = 1285\n\tERROR_VDM_DISALLOWED                                                      syscall.Errno = 1286\n\tERROR_UNIDENTIFIED_ERROR                                                  syscall.Errno = 1287\n\tERROR_INVALID_CRUNTIME_PARAMETER                                          syscall.Errno = 1288\n\tERROR_BEYOND_VDL                                                          syscall.Errno = 1289\n\tERROR_INCOMPATIBLE_SERVICE_SID_TYPE                                       syscall.Errno = 1290\n\tERROR_DRIVER_PROCESS_TERMINATED                                           syscall.Errno = 1291\n\tERROR_IMPLEMENTATION_LIMIT                                                syscall.Errno = 1292\n\tERROR_PROCESS_IS_PROTECTED                                                syscall.Errno = 1293\n\tERROR_SERVICE_NOTIFY_CLIENT_LAGGING                                       syscall.Errno = 1294\n\tERROR_DISK_QUOTA_EXCEEDED                                                 syscall.Errno = 1295\n\tERROR_CONTENT_BLOCKED                                                     syscall.Errno = 1296\n\tERROR_INCOMPATIBLE_SERVICE_PRIVILEGE                                      syscall.Errno = 1297\n\tERROR_APP_HANG                                                            syscall.Errno = 1298\n\tERROR_INVALID_LABEL                                                       syscall.Errno = 1299\n\tERROR_NOT_ALL_ASSIGNED                                                    syscall.Errno = 1300\n\tERROR_SOME_NOT_MAPPED                                                     syscall.Errno = 1301\n\tERROR_NO_QUOTAS_FOR_ACCOUNT                                               syscall.Errno = 1302\n\tERROR_LOCAL_USER_SESSION_KEY                                              syscall.Errno = 1303\n\tERROR_NULL_LM_PASSWORD                                                    syscall.Errno = 1304\n\tERROR_UNKNOWN_REVISION                                                    syscall.Errno = 1305\n\tERROR_REVISION_MISMATCH                                                   syscall.Errno = 1306\n\tERROR_INVALID_OWNER                                                       syscall.Errno = 1307\n\tERROR_INVALID_PRIMARY_GROUP                                               syscall.Errno = 1308\n\tERROR_NO_IMPERSONATION_TOKEN                                              syscall.Errno = 1309\n\tERROR_CANT_DISABLE_MANDATORY                                              syscall.Errno = 1310\n\tERROR_NO_LOGON_SERVERS                                                    syscall.Errno = 1311\n\tERROR_NO_SUCH_LOGON_SESSION                                               syscall.Errno = 1312\n\tERROR_NO_SUCH_PRIVILEGE                                                   syscall.Errno = 1313\n\tERROR_PRIVILEGE_NOT_HELD                                                  syscall.Errno = 1314\n\tERROR_INVALID_ACCOUNT_NAME                                                syscall.Errno = 1315\n\tERROR_USER_EXISTS                                                         syscall.Errno = 1316\n\tERROR_NO_SUCH_USER                                                        syscall.Errno = 1317\n\tERROR_GROUP_EXISTS                                                        syscall.Errno = 1318\n\tERROR_NO_SUCH_GROUP                                                       syscall.Errno = 1319\n\tERROR_MEMBER_IN_GROUP                                                     syscall.Errno = 1320\n\tERROR_MEMBER_NOT_IN_GROUP                                                 syscall.Errno = 1321\n\tERROR_LAST_ADMIN                                                          syscall.Errno = 1322\n\tERROR_WRONG_PASSWORD                                                      syscall.Errno = 1323\n\tERROR_ILL_FORMED_PASSWORD                                                 syscall.Errno = 1324\n\tERROR_PASSWORD_RESTRICTION                                                syscall.Errno = 1325\n\tERROR_LOGON_FAILURE                                                       syscall.Errno = 1326\n\tERROR_ACCOUNT_RESTRICTION                                                 syscall.Errno = 1327\n\tERROR_INVALID_LOGON_HOURS                                                 syscall.Errno = 1328\n\tERROR_INVALID_WORKSTATION                                                 syscall.Errno = 1329\n\tERROR_PASSWORD_EXPIRED                                                    syscall.Errno = 1330\n\tERROR_ACCOUNT_DISABLED                                                    syscall.Errno = 1331\n\tERROR_NONE_MAPPED                                                         syscall.Errno = 1332\n\tERROR_TOO_MANY_LUIDS_REQUESTED                                            syscall.Errno = 1333\n\tERROR_LUIDS_EXHAUSTED                                                     syscall.Errno = 1334\n\tERROR_INVALID_SUB_AUTHORITY                                               syscall.Errno = 1335\n\tERROR_INVALID_ACL                                                         syscall.Errno = 1336\n\tERROR_INVALID_SID                                                         syscall.Errno = 1337\n\tERROR_INVALID_SECURITY_DESCR                                              syscall.Errno = 1338\n\tERROR_BAD_INHERITANCE_ACL                                                 syscall.Errno = 1340\n\tERROR_SERVER_DISABLED                                                     syscall.Errno = 1341\n\tERROR_SERVER_NOT_DISABLED                                                 syscall.Errno = 1342\n\tERROR_INVALID_ID_AUTHORITY                                                syscall.Errno = 1343\n\tERROR_ALLOTTED_SPACE_EXCEEDED                                             syscall.Errno = 1344\n\tERROR_INVALID_GROUP_ATTRIBUTES                                            syscall.Errno = 1345\n\tERROR_BAD_IMPERSONATION_LEVEL                                             syscall.Errno = 1346\n\tERROR_CANT_OPEN_ANONYMOUS                                                 syscall.Errno = 1347\n\tERROR_BAD_VALIDATION_CLASS                                                syscall.Errno = 1348\n\tERROR_BAD_TOKEN_TYPE                                                      syscall.Errno = 1349\n\tERROR_NO_SECURITY_ON_OBJECT                                               syscall.Errno = 1350\n\tERROR_CANT_ACCESS_DOMAIN_INFO                                             syscall.Errno = 1351\n\tERROR_INVALID_SERVER_STATE                                                syscall.Errno = 1352\n\tERROR_INVALID_DOMAIN_STATE                                                syscall.Errno = 1353\n\tERROR_INVALID_DOMAIN_ROLE                                                 syscall.Errno = 1354\n\tERROR_NO_SUCH_DOMAIN                                                      syscall.Errno = 1355\n\tERROR_DOMAIN_EXISTS                                                       syscall.Errno = 1356\n\tERROR_DOMAIN_LIMIT_EXCEEDED                                               syscall.Errno = 1357\n\tERROR_INTERNAL_DB_CORRUPTION                                              syscall.Errno = 1358\n\tERROR_INTERNAL_ERROR                                                      syscall.Errno = 1359\n\tERROR_GENERIC_NOT_MAPPED                                                  syscall.Errno = 1360\n\tERROR_BAD_DESCRIPTOR_FORMAT                                               syscall.Errno = 1361\n\tERROR_NOT_LOGON_PROCESS                                                   syscall.Errno = 1362\n\tERROR_LOGON_SESSION_EXISTS                                                syscall.Errno = 1363\n\tERROR_NO_SUCH_PACKAGE                                                     syscall.Errno = 1364\n\tERROR_BAD_LOGON_SESSION_STATE                                             syscall.Errno = 1365\n\tERROR_LOGON_SESSION_COLLISION                                             syscall.Errno = 1366\n\tERROR_INVALID_LOGON_TYPE                                                  syscall.Errno = 1367\n\tERROR_CANNOT_IMPERSONATE                                                  syscall.Errno = 1368\n\tERROR_RXACT_INVALID_STATE                                                 syscall.Errno = 1369\n\tERROR_RXACT_COMMIT_FAILURE                                                syscall.Errno = 1370\n\tERROR_SPECIAL_ACCOUNT                                                     syscall.Errno = 1371\n\tERROR_SPECIAL_GROUP                                                       syscall.Errno = 1372\n\tERROR_SPECIAL_USER                                                        syscall.Errno = 1373\n\tERROR_MEMBERS_PRIMARY_GROUP                                               syscall.Errno = 1374\n\tERROR_TOKEN_ALREADY_IN_USE                                                syscall.Errno = 1375\n\tERROR_NO_SUCH_ALIAS                                                       syscall.Errno = 1376\n\tERROR_MEMBER_NOT_IN_ALIAS                                                 syscall.Errno = 1377\n\tERROR_MEMBER_IN_ALIAS                                                     syscall.Errno = 1378\n\tERROR_ALIAS_EXISTS                                                        syscall.Errno = 1379\n\tERROR_LOGON_NOT_GRANTED                                                   syscall.Errno = 1380\n\tERROR_TOO_MANY_SECRETS                                                    syscall.Errno = 1381\n\tERROR_SECRET_TOO_LONG                                                     syscall.Errno = 1382\n\tERROR_INTERNAL_DB_ERROR                                                   syscall.Errno = 1383\n\tERROR_TOO_MANY_CONTEXT_IDS                                                syscall.Errno = 1384\n\tERROR_LOGON_TYPE_NOT_GRANTED                                              syscall.Errno = 1385\n\tERROR_NT_CROSS_ENCRYPTION_REQUIRED                                        syscall.Errno = 1386\n\tERROR_NO_SUCH_MEMBER                                                      syscall.Errno = 1387\n\tERROR_INVALID_MEMBER                                                      syscall.Errno = 1388\n\tERROR_TOO_MANY_SIDS                                                       syscall.Errno = 1389\n\tERROR_LM_CROSS_ENCRYPTION_REQUIRED                                        syscall.Errno = 1390\n\tERROR_NO_INHERITANCE                                                      syscall.Errno = 1391\n\tERROR_FILE_CORRUPT                                                        syscall.Errno = 1392\n\tERROR_DISK_CORRUPT                                                        syscall.Errno = 1393\n\tERROR_NO_USER_SESSION_KEY                                                 syscall.Errno = 1394\n\tERROR_LICENSE_QUOTA_EXCEEDED                                              syscall.Errno = 1395\n\tERROR_WRONG_TARGET_NAME                                                   syscall.Errno = 1396\n\tERROR_MUTUAL_AUTH_FAILED                                                  syscall.Errno = 1397\n\tERROR_TIME_SKEW                                                           syscall.Errno = 1398\n\tERROR_CURRENT_DOMAIN_NOT_ALLOWED                                          syscall.Errno = 1399\n\tERROR_INVALID_WINDOW_HANDLE                                               syscall.Errno = 1400\n\tERROR_INVALID_MENU_HANDLE                                                 syscall.Errno = 1401\n\tERROR_INVALID_CURSOR_HANDLE                                               syscall.Errno = 1402\n\tERROR_INVALID_ACCEL_HANDLE                                                syscall.Errno = 1403\n\tERROR_INVALID_HOOK_HANDLE                                                 syscall.Errno = 1404\n\tERROR_INVALID_DWP_HANDLE                                                  syscall.Errno = 1405\n\tERROR_TLW_WITH_WSCHILD                                                    syscall.Errno = 1406\n\tERROR_CANNOT_FIND_WND_CLASS                                               syscall.Errno = 1407\n\tERROR_WINDOW_OF_OTHER_THREAD                                              syscall.Errno = 1408\n\tERROR_HOTKEY_ALREADY_REGISTERED                                           syscall.Errno = 1409\n\tERROR_CLASS_ALREADY_EXISTS                                                syscall.Errno = 1410\n\tERROR_CLASS_DOES_NOT_EXIST                                                syscall.Errno = 1411\n\tERROR_CLASS_HAS_WINDOWS                                                   syscall.Errno = 1412\n\tERROR_INVALID_INDEX                                                       syscall.Errno = 1413\n\tERROR_INVALID_ICON_HANDLE                                                 syscall.Errno = 1414\n\tERROR_PRIVATE_DIALOG_INDEX                                                syscall.Errno = 1415\n\tERROR_LISTBOX_ID_NOT_FOUND                                                syscall.Errno = 1416\n\tERROR_NO_WILDCARD_CHARACTERS                                              syscall.Errno = 1417\n\tERROR_CLIPBOARD_NOT_OPEN                                                  syscall.Errno = 1418\n\tERROR_HOTKEY_NOT_REGISTERED                                               syscall.Errno = 1419\n\tERROR_WINDOW_NOT_DIALOG                                                   syscall.Errno = 1420\n\tERROR_CONTROL_ID_NOT_FOUND                                                syscall.Errno = 1421\n\tERROR_INVALID_COMBOBOX_MESSAGE                                            syscall.Errno = 1422\n\tERROR_WINDOW_NOT_COMBOBOX                                                 syscall.Errno = 1423\n\tERROR_INVALID_EDIT_HEIGHT                                                 syscall.Errno = 1424\n\tERROR_DC_NOT_FOUND                                                        syscall.Errno = 1425\n\tERROR_INVALID_HOOK_FILTER                                                 syscall.Errno = 1426\n\tERROR_INVALID_FILTER_PROC                                                 syscall.Errno = 1427\n\tERROR_HOOK_NEEDS_HMOD                                                     syscall.Errno = 1428\n\tERROR_GLOBAL_ONLY_HOOK                                                    syscall.Errno = 1429\n\tERROR_JOURNAL_HOOK_SET                                                    syscall.Errno = 1430\n\tERROR_HOOK_NOT_INSTALLED                                                  syscall.Errno = 1431\n\tERROR_INVALID_LB_MESSAGE                                                  syscall.Errno = 1432\n\tERROR_SETCOUNT_ON_BAD_LB                                                  syscall.Errno = 1433\n\tERROR_LB_WITHOUT_TABSTOPS                                                 syscall.Errno = 1434\n\tERROR_DESTROY_OBJECT_OF_OTHER_THREAD                                      syscall.Errno = 1435\n\tERROR_CHILD_WINDOW_MENU                                                   syscall.Errno = 1436\n\tERROR_NO_SYSTEM_MENU                                                      syscall.Errno = 1437\n\tERROR_INVALID_MSGBOX_STYLE                                                syscall.Errno = 1438\n\tERROR_INVALID_SPI_VALUE                                                   syscall.Errno = 1439\n\tERROR_SCREEN_ALREADY_LOCKED                                               syscall.Errno = 1440\n\tERROR_HWNDS_HAVE_DIFF_PARENT                                              syscall.Errno = 1441\n\tERROR_NOT_CHILD_WINDOW                                                    syscall.Errno = 1442\n\tERROR_INVALID_GW_COMMAND                                                  syscall.Errno = 1443\n\tERROR_INVALID_THREAD_ID                                                   syscall.Errno = 1444\n\tERROR_NON_MDICHILD_WINDOW                                                 syscall.Errno = 1445\n\tERROR_POPUP_ALREADY_ACTIVE                                                syscall.Errno = 1446\n\tERROR_NO_SCROLLBARS                                                       syscall.Errno = 1447\n\tERROR_INVALID_SCROLLBAR_RANGE                                             syscall.Errno = 1448\n\tERROR_INVALID_SHOWWIN_COMMAND                                             syscall.Errno = 1449\n\tERROR_NO_SYSTEM_RESOURCES                                                 syscall.Errno = 1450\n\tERROR_NONPAGED_SYSTEM_RESOURCES                                           syscall.Errno = 1451\n\tERROR_PAGED_SYSTEM_RESOURCES                                              syscall.Errno = 1452\n\tERROR_WORKING_SET_QUOTA                                                   syscall.Errno = 1453\n\tERROR_PAGEFILE_QUOTA                                                      syscall.Errno = 1454\n\tERROR_COMMITMENT_LIMIT                                                    syscall.Errno = 1455\n\tERROR_MENU_ITEM_NOT_FOUND                                                 syscall.Errno = 1456\n\tERROR_INVALID_KEYBOARD_HANDLE                                             syscall.Errno = 1457\n\tERROR_HOOK_TYPE_NOT_ALLOWED                                               syscall.Errno = 1458\n\tERROR_REQUIRES_INTERACTIVE_WINDOWSTATION                                  syscall.Errno = 1459\n\tERROR_TIMEOUT                                                             syscall.Errno = 1460\n\tERROR_INVALID_MONITOR_HANDLE                                              syscall.Errno = 1461\n\tERROR_INCORRECT_SIZE                                                      syscall.Errno = 1462\n\tERROR_SYMLINK_CLASS_DISABLED                                              syscall.Errno = 1463\n\tERROR_SYMLINK_NOT_SUPPORTED                                               syscall.Errno = 1464\n\tERROR_XML_PARSE_ERROR                                                     syscall.Errno = 1465\n\tERROR_XMLDSIG_ERROR                                                       syscall.Errno = 1466\n\tERROR_RESTART_APPLICATION                                                 syscall.Errno = 1467\n\tERROR_WRONG_COMPARTMENT                                                   syscall.Errno = 1468\n\tERROR_AUTHIP_FAILURE                                                      syscall.Errno = 1469\n\tERROR_NO_NVRAM_RESOURCES                                                  syscall.Errno = 1470\n\tERROR_NOT_GUI_PROCESS                                                     syscall.Errno = 1471\n\tERROR_EVENTLOG_FILE_CORRUPT                                               syscall.Errno = 1500\n\tERROR_EVENTLOG_CANT_START                                                 syscall.Errno = 1501\n\tERROR_LOG_FILE_FULL                                                       syscall.Errno = 1502\n\tERROR_EVENTLOG_FILE_CHANGED                                               syscall.Errno = 1503\n\tERROR_CONTAINER_ASSIGNED                                                  syscall.Errno = 1504\n\tERROR_JOB_NO_CONTAINER                                                    syscall.Errno = 1505\n\tERROR_INVALID_TASK_NAME                                                   syscall.Errno = 1550\n\tERROR_INVALID_TASK_INDEX                                                  syscall.Errno = 1551\n\tERROR_THREAD_ALREADY_IN_TASK                                              syscall.Errno = 1552\n\tERROR_INSTALL_SERVICE_FAILURE                                             syscall.Errno = 1601\n\tERROR_INSTALL_USEREXIT                                                    syscall.Errno = 1602\n\tERROR_INSTALL_FAILURE                                                     syscall.Errno = 1603\n\tERROR_INSTALL_SUSPEND                                                     syscall.Errno = 1604\n\tERROR_UNKNOWN_PRODUCT                                                     syscall.Errno = 1605\n\tERROR_UNKNOWN_FEATURE                                                     syscall.Errno = 1606\n\tERROR_UNKNOWN_COMPONENT                                                   syscall.Errno = 1607\n\tERROR_UNKNOWN_PROPERTY                                                    syscall.Errno = 1608\n\tERROR_INVALID_HANDLE_STATE                                                syscall.Errno = 1609\n\tERROR_BAD_CONFIGURATION                                                   syscall.Errno = 1610\n\tERROR_INDEX_ABSENT                                                        syscall.Errno = 1611\n\tERROR_INSTALL_SOURCE_ABSENT                                               syscall.Errno = 1612\n\tERROR_INSTALL_PACKAGE_VERSION                                             syscall.Errno = 1613\n\tERROR_PRODUCT_UNINSTALLED                                                 syscall.Errno = 1614\n\tERROR_BAD_QUERY_SYNTAX                                                    syscall.Errno = 1615\n\tERROR_INVALID_FIELD                                                       syscall.Errno = 1616\n\tERROR_DEVICE_REMOVED                                                      syscall.Errno = 1617\n\tERROR_INSTALL_ALREADY_RUNNING                                             syscall.Errno = 1618\n\tERROR_INSTALL_PACKAGE_OPEN_FAILED                                         syscall.Errno = 1619\n\tERROR_INSTALL_PACKAGE_INVALID                                             syscall.Errno = 1620\n\tERROR_INSTALL_UI_FAILURE                                                  syscall.Errno = 1621\n\tERROR_INSTALL_LOG_FAILURE                                                 syscall.Errno = 1622\n\tERROR_INSTALL_LANGUAGE_UNSUPPORTED                                        syscall.Errno = 1623\n\tERROR_INSTALL_TRANSFORM_FAILURE                                           syscall.Errno = 1624\n\tERROR_INSTALL_PACKAGE_REJECTED                                            syscall.Errno = 1625\n\tERROR_FUNCTION_NOT_CALLED                                                 syscall.Errno = 1626\n\tERROR_FUNCTION_FAILED                                                     syscall.Errno = 1627\n\tERROR_INVALID_TABLE                                                       syscall.Errno = 1628\n\tERROR_DATATYPE_MISMATCH                                                   syscall.Errno = 1629\n\tERROR_UNSUPPORTED_TYPE                                                    syscall.Errno = 1630\n\tERROR_CREATE_FAILED                                                       syscall.Errno = 1631\n\tERROR_INSTALL_TEMP_UNWRITABLE                                             syscall.Errno = 1632\n\tERROR_INSTALL_PLATFORM_UNSUPPORTED                                        syscall.Errno = 1633\n\tERROR_INSTALL_NOTUSED                                                     syscall.Errno = 1634\n\tERROR_PATCH_PACKAGE_OPEN_FAILED                                           syscall.Errno = 1635\n\tERROR_PATCH_PACKAGE_INVALID                                               syscall.Errno = 1636\n\tERROR_PATCH_PACKAGE_UNSUPPORTED                                           syscall.Errno = 1637\n\tERROR_PRODUCT_VERSION                                                     syscall.Errno = 1638\n\tERROR_INVALID_COMMAND_LINE                                                syscall.Errno = 1639\n\tERROR_INSTALL_REMOTE_DISALLOWED                                           syscall.Errno = 1640\n\tERROR_SUCCESS_REBOOT_INITIATED                                            syscall.Errno = 1641\n\tERROR_PATCH_TARGET_NOT_FOUND                                              syscall.Errno = 1642\n\tERROR_PATCH_PACKAGE_REJECTED                                              syscall.Errno = 1643\n\tERROR_INSTALL_TRANSFORM_REJECTED                                          syscall.Errno = 1644\n\tERROR_INSTALL_REMOTE_PROHIBITED                                           syscall.Errno = 1645\n\tERROR_PATCH_REMOVAL_UNSUPPORTED                                           syscall.Errno = 1646\n\tERROR_UNKNOWN_PATCH                                                       syscall.Errno = 1647\n\tERROR_PATCH_NO_SEQUENCE                                                   syscall.Errno = 1648\n\tERROR_PATCH_REMOVAL_DISALLOWED                                            syscall.Errno = 1649\n\tERROR_INVALID_PATCH_XML                                                   syscall.Errno = 1650\n\tERROR_PATCH_MANAGED_ADVERTISED_PRODUCT                                    syscall.Errno = 1651\n\tERROR_INSTALL_SERVICE_SAFEBOOT                                            syscall.Errno = 1652\n\tERROR_FAIL_FAST_EXCEPTION                                                 syscall.Errno = 1653\n\tERROR_INSTALL_REJECTED                                                    syscall.Errno = 1654\n\tERROR_DYNAMIC_CODE_BLOCKED                                                syscall.Errno = 1655\n\tERROR_NOT_SAME_OBJECT                                                     syscall.Errno = 1656\n\tERROR_STRICT_CFG_VIOLATION                                                syscall.Errno = 1657\n\tERROR_SET_CONTEXT_DENIED                                                  syscall.Errno = 1660\n\tERROR_CROSS_PARTITION_VIOLATION                                           syscall.Errno = 1661\n\tRPC_S_INVALID_STRING_BINDING                                              syscall.Errno = 1700\n\tRPC_S_WRONG_KIND_OF_BINDING                                               syscall.Errno = 1701\n\tRPC_S_INVALID_BINDING                                                     syscall.Errno = 1702\n\tRPC_S_PROTSEQ_NOT_SUPPORTED                                               syscall.Errno = 1703\n\tRPC_S_INVALID_RPC_PROTSEQ                                                 syscall.Errno = 1704\n\tRPC_S_INVALID_STRING_UUID                                                 syscall.Errno = 1705\n\tRPC_S_INVALID_ENDPOINT_FORMAT                                             syscall.Errno = 1706\n\tRPC_S_INVALID_NET_ADDR                                                    syscall.Errno = 1707\n\tRPC_S_NO_ENDPOINT_FOUND                                                   syscall.Errno = 1708\n\tRPC_S_INVALID_TIMEOUT                                                     syscall.Errno = 1709\n\tRPC_S_OBJECT_NOT_FOUND                                                    syscall.Errno = 1710\n\tRPC_S_ALREADY_REGISTERED                                                  syscall.Errno = 1711\n\tRPC_S_TYPE_ALREADY_REGISTERED                                             syscall.Errno = 1712\n\tRPC_S_ALREADY_LISTENING                                                   syscall.Errno = 1713\n\tRPC_S_NO_PROTSEQS_REGISTERED                                              syscall.Errno = 1714\n\tRPC_S_NOT_LISTENING                                                       syscall.Errno = 1715\n\tRPC_S_UNKNOWN_MGR_TYPE                                                    syscall.Errno = 1716\n\tRPC_S_UNKNOWN_IF                                                          syscall.Errno = 1717\n\tRPC_S_NO_BINDINGS                                                         syscall.Errno = 1718\n\tRPC_S_NO_PROTSEQS                                                         syscall.Errno = 1719\n\tRPC_S_CANT_CREATE_ENDPOINT                                                syscall.Errno = 1720\n\tRPC_S_OUT_OF_RESOURCES                                                    syscall.Errno = 1721\n\tRPC_S_SERVER_UNAVAILABLE                                                  syscall.Errno = 1722\n\tRPC_S_SERVER_TOO_BUSY                                                     syscall.Errno = 1723\n\tRPC_S_INVALID_NETWORK_OPTIONS                                             syscall.Errno = 1724\n\tRPC_S_NO_CALL_ACTIVE                                                      syscall.Errno = 1725\n\tRPC_S_CALL_FAILED                                                         syscall.Errno = 1726\n\tRPC_S_CALL_FAILED_DNE                                                     syscall.Errno = 1727\n\tRPC_S_PROTOCOL_ERROR                                                      syscall.Errno = 1728\n\tRPC_S_PROXY_ACCESS_DENIED                                                 syscall.Errno = 1729\n\tRPC_S_UNSUPPORTED_TRANS_SYN                                               syscall.Errno = 1730\n\tRPC_S_UNSUPPORTED_TYPE                                                    syscall.Errno = 1732\n\tRPC_S_INVALID_TAG                                                         syscall.Errno = 1733\n\tRPC_S_INVALID_BOUND                                                       syscall.Errno = 1734\n\tRPC_S_NO_ENTRY_NAME                                                       syscall.Errno = 1735\n\tRPC_S_INVALID_NAME_SYNTAX                                                 syscall.Errno = 1736\n\tRPC_S_UNSUPPORTED_NAME_SYNTAX                                             syscall.Errno = 1737\n\tRPC_S_UUID_NO_ADDRESS                                                     syscall.Errno = 1739\n\tRPC_S_DUPLICATE_ENDPOINT                                                  syscall.Errno = 1740\n\tRPC_S_UNKNOWN_AUTHN_TYPE                                                  syscall.Errno = 1741\n\tRPC_S_MAX_CALLS_TOO_SMALL                                                 syscall.Errno = 1742\n\tRPC_S_STRING_TOO_LONG                                                     syscall.Errno = 1743\n\tRPC_S_PROTSEQ_NOT_FOUND                                                   syscall.Errno = 1744\n\tRPC_S_PROCNUM_OUT_OF_RANGE                                                syscall.Errno = 1745\n\tRPC_S_BINDING_HAS_NO_AUTH                                                 syscall.Errno = 1746\n\tRPC_S_UNKNOWN_AUTHN_SERVICE                                               syscall.Errno = 1747\n\tRPC_S_UNKNOWN_AUTHN_LEVEL                                                 syscall.Errno = 1748\n\tRPC_S_INVALID_AUTH_IDENTITY                                               syscall.Errno = 1749\n\tRPC_S_UNKNOWN_AUTHZ_SERVICE                                               syscall.Errno = 1750\n\tEPT_S_INVALID_ENTRY                                                       syscall.Errno = 1751\n\tEPT_S_CANT_PERFORM_OP                                                     syscall.Errno = 1752\n\tEPT_S_NOT_REGISTERED                                                      syscall.Errno = 1753\n\tRPC_S_NOTHING_TO_EXPORT                                                   syscall.Errno = 1754\n\tRPC_S_INCOMPLETE_NAME                                                     syscall.Errno = 1755\n\tRPC_S_INVALID_VERS_OPTION                                                 syscall.Errno = 1756\n\tRPC_S_NO_MORE_MEMBERS                                                     syscall.Errno = 1757\n\tRPC_S_NOT_ALL_OBJS_UNEXPORTED                                             syscall.Errno = 1758\n\tRPC_S_INTERFACE_NOT_FOUND                                                 syscall.Errno = 1759\n\tRPC_S_ENTRY_ALREADY_EXISTS                                                syscall.Errno = 1760\n\tRPC_S_ENTRY_NOT_FOUND                                                     syscall.Errno = 1761\n\tRPC_S_NAME_SERVICE_UNAVAILABLE                                            syscall.Errno = 1762\n\tRPC_S_INVALID_NAF_ID                                                      syscall.Errno = 1763\n\tRPC_S_CANNOT_SUPPORT                                                      syscall.Errno = 1764\n\tRPC_S_NO_CONTEXT_AVAILABLE                                                syscall.Errno = 1765\n\tRPC_S_INTERNAL_ERROR                                                      syscall.Errno = 1766\n\tRPC_S_ZERO_DIVIDE                                                         syscall.Errno = 1767\n\tRPC_S_ADDRESS_ERROR                                                       syscall.Errno = 1768\n\tRPC_S_FP_DIV_ZERO                                                         syscall.Errno = 1769\n\tRPC_S_FP_UNDERFLOW                                                        syscall.Errno = 1770\n\tRPC_S_FP_OVERFLOW                                                         syscall.Errno = 1771\n\tRPC_X_NO_MORE_ENTRIES                                                     syscall.Errno = 1772\n\tRPC_X_SS_CHAR_TRANS_OPEN_FAIL                                             syscall.Errno = 1773\n\tRPC_X_SS_CHAR_TRANS_SHORT_FILE                                            syscall.Errno = 1774\n\tRPC_X_SS_IN_NULL_CONTEXT                                                  syscall.Errno = 1775\n\tRPC_X_SS_CONTEXT_DAMAGED                                                  syscall.Errno = 1777\n\tRPC_X_SS_HANDLES_MISMATCH                                                 syscall.Errno = 1778\n\tRPC_X_SS_CANNOT_GET_CALL_HANDLE                                           syscall.Errno = 1779\n\tRPC_X_NULL_REF_POINTER                                                    syscall.Errno = 1780\n\tRPC_X_ENUM_VALUE_OUT_OF_RANGE                                             syscall.Errno = 1781\n\tRPC_X_BYTE_COUNT_TOO_SMALL                                                syscall.Errno = 1782\n\tRPC_X_BAD_STUB_DATA                                                       syscall.Errno = 1783\n\tERROR_INVALID_USER_BUFFER                                                 syscall.Errno = 1784\n\tERROR_UNRECOGNIZED_MEDIA                                                  syscall.Errno = 1785\n\tERROR_NO_TRUST_LSA_SECRET                                                 syscall.Errno = 1786\n\tERROR_NO_TRUST_SAM_ACCOUNT                                                syscall.Errno = 1787\n\tERROR_TRUSTED_DOMAIN_FAILURE                                              syscall.Errno = 1788\n\tERROR_TRUSTED_RELATIONSHIP_FAILURE                                        syscall.Errno = 1789\n\tERROR_TRUST_FAILURE                                                       syscall.Errno = 1790\n\tRPC_S_CALL_IN_PROGRESS                                                    syscall.Errno = 1791\n\tERROR_NETLOGON_NOT_STARTED                                                syscall.Errno = 1792\n\tERROR_ACCOUNT_EXPIRED                                                     syscall.Errno = 1793\n\tERROR_REDIRECTOR_HAS_OPEN_HANDLES                                         syscall.Errno = 1794\n\tERROR_PRINTER_DRIVER_ALREADY_INSTALLED                                    syscall.Errno = 1795\n\tERROR_UNKNOWN_PORT                                                        syscall.Errno = 1796\n\tERROR_UNKNOWN_PRINTER_DRIVER                                              syscall.Errno = 1797\n\tERROR_UNKNOWN_PRINTPROCESSOR                                              syscall.Errno = 1798\n\tERROR_INVALID_SEPARATOR_FILE                                              syscall.Errno = 1799\n\tERROR_INVALID_PRIORITY                                                    syscall.Errno = 1800\n\tERROR_INVALID_PRINTER_NAME                                                syscall.Errno = 1801\n\tERROR_PRINTER_ALREADY_EXISTS                                              syscall.Errno = 1802\n\tERROR_INVALID_PRINTER_COMMAND                                             syscall.Errno = 1803\n\tERROR_INVALID_DATATYPE                                                    syscall.Errno = 1804\n\tERROR_INVALID_ENVIRONMENT                                                 syscall.Errno = 1805\n\tRPC_S_NO_MORE_BINDINGS                                                    syscall.Errno = 1806\n\tERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT                                   syscall.Errno = 1807\n\tERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT                                   syscall.Errno = 1808\n\tERROR_NOLOGON_SERVER_TRUST_ACCOUNT                                        syscall.Errno = 1809\n\tERROR_DOMAIN_TRUST_INCONSISTENT                                           syscall.Errno = 1810\n\tERROR_SERVER_HAS_OPEN_HANDLES                                             syscall.Errno = 1811\n\tERROR_RESOURCE_DATA_NOT_FOUND                                             syscall.Errno = 1812\n\tERROR_RESOURCE_TYPE_NOT_FOUND                                             syscall.Errno = 1813\n\tERROR_RESOURCE_NAME_NOT_FOUND                                             syscall.Errno = 1814\n\tERROR_RESOURCE_LANG_NOT_FOUND                                             syscall.Errno = 1815\n\tERROR_NOT_ENOUGH_QUOTA                                                    syscall.Errno = 1816\n\tRPC_S_NO_INTERFACES                                                       syscall.Errno = 1817\n\tRPC_S_CALL_CANCELLED                                                      syscall.Errno = 1818\n\tRPC_S_BINDING_INCOMPLETE                                                  syscall.Errno = 1819\n\tRPC_S_COMM_FAILURE                                                        syscall.Errno = 1820\n\tRPC_S_UNSUPPORTED_AUTHN_LEVEL                                             syscall.Errno = 1821\n\tRPC_S_NO_PRINC_NAME                                                       syscall.Errno = 1822\n\tRPC_S_NOT_RPC_ERROR                                                       syscall.Errno = 1823\n\tRPC_S_UUID_LOCAL_ONLY                                                     syscall.Errno = 1824\n\tRPC_S_SEC_PKG_ERROR                                                       syscall.Errno = 1825\n\tRPC_S_NOT_CANCELLED                                                       syscall.Errno = 1826\n\tRPC_X_INVALID_ES_ACTION                                                   syscall.Errno = 1827\n\tRPC_X_WRONG_ES_VERSION                                                    syscall.Errno = 1828\n\tRPC_X_WRONG_STUB_VERSION                                                  syscall.Errno = 1829\n\tRPC_X_INVALID_PIPE_OBJECT                                                 syscall.Errno = 1830\n\tRPC_X_WRONG_PIPE_ORDER                                                    syscall.Errno = 1831\n\tRPC_X_WRONG_PIPE_VERSION                                                  syscall.Errno = 1832\n\tRPC_S_COOKIE_AUTH_FAILED                                                  syscall.Errno = 1833\n\tRPC_S_DO_NOT_DISTURB                                                      syscall.Errno = 1834\n\tRPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED                                        syscall.Errno = 1835\n\tRPC_S_SYSTEM_HANDLE_TYPE_MISMATCH                                         syscall.Errno = 1836\n\tRPC_S_GROUP_MEMBER_NOT_FOUND                                              syscall.Errno = 1898\n\tEPT_S_CANT_CREATE                                                         syscall.Errno = 1899\n\tRPC_S_INVALID_OBJECT                                                      syscall.Errno = 1900\n\tERROR_INVALID_TIME                                                        syscall.Errno = 1901\n\tERROR_INVALID_FORM_NAME                                                   syscall.Errno = 1902\n\tERROR_INVALID_FORM_SIZE                                                   syscall.Errno = 1903\n\tERROR_ALREADY_WAITING                                                     syscall.Errno = 1904\n\tERROR_PRINTER_DELETED                                                     syscall.Errno = 1905\n\tERROR_INVALID_PRINTER_STATE                                               syscall.Errno = 1906\n\tERROR_PASSWORD_MUST_CHANGE                                                syscall.Errno = 1907\n\tERROR_DOMAIN_CONTROLLER_NOT_FOUND                                         syscall.Errno = 1908\n\tERROR_ACCOUNT_LOCKED_OUT                                                  syscall.Errno = 1909\n\tOR_INVALID_OXID                                                           syscall.Errno = 1910\n\tOR_INVALID_OID                                                            syscall.Errno = 1911\n\tOR_INVALID_SET                                                            syscall.Errno = 1912\n\tRPC_S_SEND_INCOMPLETE                                                     syscall.Errno = 1913\n\tRPC_S_INVALID_ASYNC_HANDLE                                                syscall.Errno = 1914\n\tRPC_S_INVALID_ASYNC_CALL                                                  syscall.Errno = 1915\n\tRPC_X_PIPE_CLOSED                                                         syscall.Errno = 1916\n\tRPC_X_PIPE_DISCIPLINE_ERROR                                               syscall.Errno = 1917\n\tRPC_X_PIPE_EMPTY                                                          syscall.Errno = 1918\n\tERROR_NO_SITENAME                                                         syscall.Errno = 1919\n\tERROR_CANT_ACCESS_FILE                                                    syscall.Errno = 1920\n\tERROR_CANT_RESOLVE_FILENAME                                               syscall.Errno = 1921\n\tRPC_S_ENTRY_TYPE_MISMATCH                                                 syscall.Errno = 1922\n\tRPC_S_NOT_ALL_OBJS_EXPORTED                                               syscall.Errno = 1923\n\tRPC_S_INTERFACE_NOT_EXPORTED                                              syscall.Errno = 1924\n\tRPC_S_PROFILE_NOT_ADDED                                                   syscall.Errno = 1925\n\tRPC_S_PRF_ELT_NOT_ADDED                                                   syscall.Errno = 1926\n\tRPC_S_PRF_ELT_NOT_REMOVED                                                 syscall.Errno = 1927\n\tRPC_S_GRP_ELT_NOT_ADDED                                                   syscall.Errno = 1928\n\tRPC_S_GRP_ELT_NOT_REMOVED                                                 syscall.Errno = 1929\n\tERROR_KM_DRIVER_BLOCKED                                                   syscall.Errno = 1930\n\tERROR_CONTEXT_EXPIRED                                                     syscall.Errno = 1931\n\tERROR_PER_USER_TRUST_QUOTA_EXCEEDED                                       syscall.Errno = 1932\n\tERROR_ALL_USER_TRUST_QUOTA_EXCEEDED                                       syscall.Errno = 1933\n\tERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED                                    syscall.Errno = 1934\n\tERROR_AUTHENTICATION_FIREWALL_FAILED                                      syscall.Errno = 1935\n\tERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED                                    syscall.Errno = 1936\n\tERROR_NTLM_BLOCKED                                                        syscall.Errno = 1937\n\tERROR_PASSWORD_CHANGE_REQUIRED                                            syscall.Errno = 1938\n\tERROR_LOST_MODE_LOGON_RESTRICTION                                         syscall.Errno = 1939\n\tERROR_INVALID_PIXEL_FORMAT                                                syscall.Errno = 2000\n\tERROR_BAD_DRIVER                                                          syscall.Errno = 2001\n\tERROR_INVALID_WINDOW_STYLE                                                syscall.Errno = 2002\n\tERROR_METAFILE_NOT_SUPPORTED                                              syscall.Errno = 2003\n\tERROR_TRANSFORM_NOT_SUPPORTED                                             syscall.Errno = 2004\n\tERROR_CLIPPING_NOT_SUPPORTED                                              syscall.Errno = 2005\n\tERROR_INVALID_CMM                                                         syscall.Errno = 2010\n\tERROR_INVALID_PROFILE                                                     syscall.Errno = 2011\n\tERROR_TAG_NOT_FOUND                                                       syscall.Errno = 2012\n\tERROR_TAG_NOT_PRESENT                                                     syscall.Errno = 2013\n\tERROR_DUPLICATE_TAG                                                       syscall.Errno = 2014\n\tERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE                                  syscall.Errno = 2015\n\tERROR_PROFILE_NOT_FOUND                                                   syscall.Errno = 2016\n\tERROR_INVALID_COLORSPACE                                                  syscall.Errno = 2017\n\tERROR_ICM_NOT_ENABLED                                                     syscall.Errno = 2018\n\tERROR_DELETING_ICM_XFORM                                                  syscall.Errno = 2019\n\tERROR_INVALID_TRANSFORM                                                   syscall.Errno = 2020\n\tERROR_COLORSPACE_MISMATCH                                                 syscall.Errno = 2021\n\tERROR_INVALID_COLORINDEX                                                  syscall.Errno = 2022\n\tERROR_PROFILE_DOES_NOT_MATCH_DEVICE                                       syscall.Errno = 2023\n\tERROR_CONNECTED_OTHER_PASSWORD                                            syscall.Errno = 2108\n\tERROR_CONNECTED_OTHER_PASSWORD_DEFAULT                                    syscall.Errno = 2109\n\tERROR_BAD_USERNAME                                                        syscall.Errno = 2202\n\tERROR_NOT_CONNECTED                                                       syscall.Errno = 2250\n\tERROR_OPEN_FILES                                                          syscall.Errno = 2401\n\tERROR_ACTIVE_CONNECTIONS                                                  syscall.Errno = 2402\n\tERROR_DEVICE_IN_USE                                                       syscall.Errno = 2404\n\tERROR_UNKNOWN_PRINT_MONITOR                                               syscall.Errno = 3000\n\tERROR_PRINTER_DRIVER_IN_USE                                               syscall.Errno = 3001\n\tERROR_SPOOL_FILE_NOT_FOUND                                                syscall.Errno = 3002\n\tERROR_SPL_NO_STARTDOC                                                     syscall.Errno = 3003\n\tERROR_SPL_NO_ADDJOB                                                       syscall.Errno = 3004\n\tERROR_PRINT_PROCESSOR_ALREADY_INSTALLED                                   syscall.Errno = 3005\n\tERROR_PRINT_MONITOR_ALREADY_INSTALLED                                     syscall.Errno = 3006\n\tERROR_INVALID_PRINT_MONITOR                                               syscall.Errno = 3007\n\tERROR_PRINT_MONITOR_IN_USE                                                syscall.Errno = 3008\n\tERROR_PRINTER_HAS_JOBS_QUEUED                                             syscall.Errno = 3009\n\tERROR_SUCCESS_REBOOT_REQUIRED                                             syscall.Errno = 3010\n\tERROR_SUCCESS_RESTART_REQUIRED                                            syscall.Errno = 3011\n\tERROR_PRINTER_NOT_FOUND                                                   syscall.Errno = 3012\n\tERROR_PRINTER_DRIVER_WARNED                                               syscall.Errno = 3013\n\tERROR_PRINTER_DRIVER_BLOCKED                                              syscall.Errno = 3014\n\tERROR_PRINTER_DRIVER_PACKAGE_IN_USE                                       syscall.Errno = 3015\n\tERROR_CORE_DRIVER_PACKAGE_NOT_FOUND                                       syscall.Errno = 3016\n\tERROR_FAIL_REBOOT_REQUIRED                                                syscall.Errno = 3017\n\tERROR_FAIL_REBOOT_INITIATED                                               syscall.Errno = 3018\n\tERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED                                      syscall.Errno = 3019\n\tERROR_PRINT_JOB_RESTART_REQUIRED                                          syscall.Errno = 3020\n\tERROR_INVALID_PRINTER_DRIVER_MANIFEST                                     syscall.Errno = 3021\n\tERROR_PRINTER_NOT_SHAREABLE                                               syscall.Errno = 3022\n\tERROR_REQUEST_PAUSED                                                      syscall.Errno = 3050\n\tERROR_APPEXEC_CONDITION_NOT_SATISFIED                                     syscall.Errno = 3060\n\tERROR_APPEXEC_HANDLE_INVALIDATED                                          syscall.Errno = 3061\n\tERROR_APPEXEC_INVALID_HOST_GENERATION                                     syscall.Errno = 3062\n\tERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION                             syscall.Errno = 3063\n\tERROR_APPEXEC_INVALID_HOST_STATE                                          syscall.Errno = 3064\n\tERROR_APPEXEC_NO_DONOR                                                    syscall.Errno = 3065\n\tERROR_APPEXEC_HOST_ID_MISMATCH                                            syscall.Errno = 3066\n\tERROR_APPEXEC_UNKNOWN_USER                                                syscall.Errno = 3067\n\tERROR_IO_REISSUE_AS_CACHED                                                syscall.Errno = 3950\n\tERROR_WINS_INTERNAL                                                       syscall.Errno = 4000\n\tERROR_CAN_NOT_DEL_LOCAL_WINS                                              syscall.Errno = 4001\n\tERROR_STATIC_INIT                                                         syscall.Errno = 4002\n\tERROR_INC_BACKUP                                                          syscall.Errno = 4003\n\tERROR_FULL_BACKUP                                                         syscall.Errno = 4004\n\tERROR_REC_NON_EXISTENT                                                    syscall.Errno = 4005\n\tERROR_RPL_NOT_ALLOWED                                                     syscall.Errno = 4006\n\tPEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED                            syscall.Errno = 4050\n\tPEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO                                   syscall.Errno = 4051\n\tPEERDIST_ERROR_MISSING_DATA                                               syscall.Errno = 4052\n\tPEERDIST_ERROR_NO_MORE                                                    syscall.Errno = 4053\n\tPEERDIST_ERROR_NOT_INITIALIZED                                            syscall.Errno = 4054\n\tPEERDIST_ERROR_ALREADY_INITIALIZED                                        syscall.Errno = 4055\n\tPEERDIST_ERROR_SHUTDOWN_IN_PROGRESS                                       syscall.Errno = 4056\n\tPEERDIST_ERROR_INVALIDATED                                                syscall.Errno = 4057\n\tPEERDIST_ERROR_ALREADY_EXISTS                                             syscall.Errno = 4058\n\tPEERDIST_ERROR_OPERATION_NOTFOUND                                         syscall.Errno = 4059\n\tPEERDIST_ERROR_ALREADY_COMPLETED                                          syscall.Errno = 4060\n\tPEERDIST_ERROR_OUT_OF_BOUNDS                                              syscall.Errno = 4061\n\tPEERDIST_ERROR_VERSION_UNSUPPORTED                                        syscall.Errno = 4062\n\tPEERDIST_ERROR_INVALID_CONFIGURATION                                      syscall.Errno = 4063\n\tPEERDIST_ERROR_NOT_LICENSED                                               syscall.Errno = 4064\n\tPEERDIST_ERROR_SERVICE_UNAVAILABLE                                        syscall.Errno = 4065\n\tPEERDIST_ERROR_TRUST_FAILURE                                              syscall.Errno = 4066\n\tERROR_DHCP_ADDRESS_CONFLICT                                               syscall.Errno = 4100\n\tERROR_WMI_GUID_NOT_FOUND                                                  syscall.Errno = 4200\n\tERROR_WMI_INSTANCE_NOT_FOUND                                              syscall.Errno = 4201\n\tERROR_WMI_ITEMID_NOT_FOUND                                                syscall.Errno = 4202\n\tERROR_WMI_TRY_AGAIN                                                       syscall.Errno = 4203\n\tERROR_WMI_DP_NOT_FOUND                                                    syscall.Errno = 4204\n\tERROR_WMI_UNRESOLVED_INSTANCE_REF                                         syscall.Errno = 4205\n\tERROR_WMI_ALREADY_ENABLED                                                 syscall.Errno = 4206\n\tERROR_WMI_GUID_DISCONNECTED                                               syscall.Errno = 4207\n\tERROR_WMI_SERVER_UNAVAILABLE                                              syscall.Errno = 4208\n\tERROR_WMI_DP_FAILED                                                       syscall.Errno = 4209\n\tERROR_WMI_INVALID_MOF                                                     syscall.Errno = 4210\n\tERROR_WMI_INVALID_REGINFO                                                 syscall.Errno = 4211\n\tERROR_WMI_ALREADY_DISABLED                                                syscall.Errno = 4212\n\tERROR_WMI_READ_ONLY                                                       syscall.Errno = 4213\n\tERROR_WMI_SET_FAILURE                                                     syscall.Errno = 4214\n\tERROR_NOT_APPCONTAINER                                                    syscall.Errno = 4250\n\tERROR_APPCONTAINER_REQUIRED                                               syscall.Errno = 4251\n\tERROR_NOT_SUPPORTED_IN_APPCONTAINER                                       syscall.Errno = 4252\n\tERROR_INVALID_PACKAGE_SID_LENGTH                                          syscall.Errno = 4253\n\tERROR_INVALID_MEDIA                                                       syscall.Errno = 4300\n\tERROR_INVALID_LIBRARY                                                     syscall.Errno = 4301\n\tERROR_INVALID_MEDIA_POOL                                                  syscall.Errno = 4302\n\tERROR_DRIVE_MEDIA_MISMATCH                                                syscall.Errno = 4303\n\tERROR_MEDIA_OFFLINE                                                       syscall.Errno = 4304\n\tERROR_LIBRARY_OFFLINE                                                     syscall.Errno = 4305\n\tERROR_EMPTY                                                               syscall.Errno = 4306\n\tERROR_NOT_EMPTY                                                           syscall.Errno = 4307\n\tERROR_MEDIA_UNAVAILABLE                                                   syscall.Errno = 4308\n\tERROR_RESOURCE_DISABLED                                                   syscall.Errno = 4309\n\tERROR_INVALID_CLEANER                                                     syscall.Errno = 4310\n\tERROR_UNABLE_TO_CLEAN                                                     syscall.Errno = 4311\n\tERROR_OBJECT_NOT_FOUND                                                    syscall.Errno = 4312\n\tERROR_DATABASE_FAILURE                                                    syscall.Errno = 4313\n\tERROR_DATABASE_FULL                                                       syscall.Errno = 4314\n\tERROR_MEDIA_INCOMPATIBLE                                                  syscall.Errno = 4315\n\tERROR_RESOURCE_NOT_PRESENT                                                syscall.Errno = 4316\n\tERROR_INVALID_OPERATION                                                   syscall.Errno = 4317\n\tERROR_MEDIA_NOT_AVAILABLE                                                 syscall.Errno = 4318\n\tERROR_DEVICE_NOT_AVAILABLE                                                syscall.Errno = 4319\n\tERROR_REQUEST_REFUSED                                                     syscall.Errno = 4320\n\tERROR_INVALID_DRIVE_OBJECT                                                syscall.Errno = 4321\n\tERROR_LIBRARY_FULL                                                        syscall.Errno = 4322\n\tERROR_MEDIUM_NOT_ACCESSIBLE                                               syscall.Errno = 4323\n\tERROR_UNABLE_TO_LOAD_MEDIUM                                               syscall.Errno = 4324\n\tERROR_UNABLE_TO_INVENTORY_DRIVE                                           syscall.Errno = 4325\n\tERROR_UNABLE_TO_INVENTORY_SLOT                                            syscall.Errno = 4326\n\tERROR_UNABLE_TO_INVENTORY_TRANSPORT                                       syscall.Errno = 4327\n\tERROR_TRANSPORT_FULL                                                      syscall.Errno = 4328\n\tERROR_CONTROLLING_IEPORT                                                  syscall.Errno = 4329\n\tERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA                                       syscall.Errno = 4330\n\tERROR_CLEANER_SLOT_SET                                                    syscall.Errno = 4331\n\tERROR_CLEANER_SLOT_NOT_SET                                                syscall.Errno = 4332\n\tERROR_CLEANER_CARTRIDGE_SPENT                                             syscall.Errno = 4333\n\tERROR_UNEXPECTED_OMID                                                     syscall.Errno = 4334\n\tERROR_CANT_DELETE_LAST_ITEM                                               syscall.Errno = 4335\n\tERROR_MESSAGE_EXCEEDS_MAX_SIZE                                            syscall.Errno = 4336\n\tERROR_VOLUME_CONTAINS_SYS_FILES                                           syscall.Errno = 4337\n\tERROR_INDIGENOUS_TYPE                                                     syscall.Errno = 4338\n\tERROR_NO_SUPPORTING_DRIVES                                                syscall.Errno = 4339\n\tERROR_CLEANER_CARTRIDGE_INSTALLED                                         syscall.Errno = 4340\n\tERROR_IEPORT_FULL                                                         syscall.Errno = 4341\n\tERROR_FILE_OFFLINE                                                        syscall.Errno = 4350\n\tERROR_REMOTE_STORAGE_NOT_ACTIVE                                           syscall.Errno = 4351\n\tERROR_REMOTE_STORAGE_MEDIA_ERROR                                          syscall.Errno = 4352\n\tERROR_NOT_A_REPARSE_POINT                                                 syscall.Errno = 4390\n\tERROR_REPARSE_ATTRIBUTE_CONFLICT                                          syscall.Errno = 4391\n\tERROR_INVALID_REPARSE_DATA                                                syscall.Errno = 4392\n\tERROR_REPARSE_TAG_INVALID                                                 syscall.Errno = 4393\n\tERROR_REPARSE_TAG_MISMATCH                                                syscall.Errno = 4394\n\tERROR_REPARSE_POINT_ENCOUNTERED                                           syscall.Errno = 4395\n\tERROR_APP_DATA_NOT_FOUND                                                  syscall.Errno = 4400\n\tERROR_APP_DATA_EXPIRED                                                    syscall.Errno = 4401\n\tERROR_APP_DATA_CORRUPT                                                    syscall.Errno = 4402\n\tERROR_APP_DATA_LIMIT_EXCEEDED                                             syscall.Errno = 4403\n\tERROR_APP_DATA_REBOOT_REQUIRED                                            syscall.Errno = 4404\n\tERROR_SECUREBOOT_ROLLBACK_DETECTED                                        syscall.Errno = 4420\n\tERROR_SECUREBOOT_POLICY_VIOLATION                                         syscall.Errno = 4421\n\tERROR_SECUREBOOT_INVALID_POLICY                                           syscall.Errno = 4422\n\tERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND                               syscall.Errno = 4423\n\tERROR_SECUREBOOT_POLICY_NOT_SIGNED                                        syscall.Errno = 4424\n\tERROR_SECUREBOOT_NOT_ENABLED                                              syscall.Errno = 4425\n\tERROR_SECUREBOOT_FILE_REPLACED                                            syscall.Errno = 4426\n\tERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED                                    syscall.Errno = 4427\n\tERROR_SECUREBOOT_POLICY_UNKNOWN                                           syscall.Errno = 4428\n\tERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION                       syscall.Errno = 4429\n\tERROR_SECUREBOOT_PLATFORM_ID_MISMATCH                                     syscall.Errno = 4430\n\tERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED                                 syscall.Errno = 4431\n\tERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH                                  syscall.Errno = 4432\n\tERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING                             syscall.Errno = 4433\n\tERROR_SECUREBOOT_NOT_BASE_POLICY                                          syscall.Errno = 4434\n\tERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY                                  syscall.Errno = 4435\n\tERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED                                      syscall.Errno = 4440\n\tERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED                                     syscall.Errno = 4441\n\tERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED                                     syscall.Errno = 4442\n\tERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED                                    syscall.Errno = 4443\n\tERROR_ALREADY_HAS_STREAM_ID                                               syscall.Errno = 4444\n\tERROR_SMR_GARBAGE_COLLECTION_REQUIRED                                     syscall.Errno = 4445\n\tERROR_WOF_WIM_HEADER_CORRUPT                                              syscall.Errno = 4446\n\tERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT                                      syscall.Errno = 4447\n\tERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT                                     syscall.Errno = 4448\n\tERROR_VOLUME_NOT_SIS_ENABLED                                              syscall.Errno = 4500\n\tERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED                                  syscall.Errno = 4550\n\tERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION                                   syscall.Errno = 4551\n\tERROR_SYSTEM_INTEGRITY_INVALID_POLICY                                     syscall.Errno = 4552\n\tERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED                                  syscall.Errno = 4553\n\tERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES                                  syscall.Errno = 4554\n\tERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED                 syscall.Errno = 4555\n\tERROR_VSM_NOT_INITIALIZED                                                 syscall.Errno = 4560\n\tERROR_VSM_DMA_PROTECTION_NOT_IN_USE                                       syscall.Errno = 4561\n\tERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED                                    syscall.Errno = 4570\n\tERROR_PLATFORM_MANIFEST_INVALID                                           syscall.Errno = 4571\n\tERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED                               syscall.Errno = 4572\n\tERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED                            syscall.Errno = 4573\n\tERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND                               syscall.Errno = 4574\n\tERROR_PLATFORM_MANIFEST_NOT_ACTIVE                                        syscall.Errno = 4575\n\tERROR_PLATFORM_MANIFEST_NOT_SIGNED                                        syscall.Errno = 4576\n\tERROR_DEPENDENT_RESOURCE_EXISTS                                           syscall.Errno = 5001\n\tERROR_DEPENDENCY_NOT_FOUND                                                syscall.Errno = 5002\n\tERROR_DEPENDENCY_ALREADY_EXISTS                                           syscall.Errno = 5003\n\tERROR_RESOURCE_NOT_ONLINE                                                 syscall.Errno = 5004\n\tERROR_HOST_NODE_NOT_AVAILABLE                                             syscall.Errno = 5005\n\tERROR_RESOURCE_NOT_AVAILABLE                                              syscall.Errno = 5006\n\tERROR_RESOURCE_NOT_FOUND                                                  syscall.Errno = 5007\n\tERROR_SHUTDOWN_CLUSTER                                                    syscall.Errno = 5008\n\tERROR_CANT_EVICT_ACTIVE_NODE                                              syscall.Errno = 5009\n\tERROR_OBJECT_ALREADY_EXISTS                                               syscall.Errno = 5010\n\tERROR_OBJECT_IN_LIST                                                      syscall.Errno = 5011\n\tERROR_GROUP_NOT_AVAILABLE                                                 syscall.Errno = 5012\n\tERROR_GROUP_NOT_FOUND                                                     syscall.Errno = 5013\n\tERROR_GROUP_NOT_ONLINE                                                    syscall.Errno = 5014\n\tERROR_HOST_NODE_NOT_RESOURCE_OWNER                                        syscall.Errno = 5015\n\tERROR_HOST_NODE_NOT_GROUP_OWNER                                           syscall.Errno = 5016\n\tERROR_RESMON_CREATE_FAILED                                                syscall.Errno = 5017\n\tERROR_RESMON_ONLINE_FAILED                                                syscall.Errno = 5018\n\tERROR_RESOURCE_ONLINE                                                     syscall.Errno = 5019\n\tERROR_QUORUM_RESOURCE                                                     syscall.Errno = 5020\n\tERROR_NOT_QUORUM_CAPABLE                                                  syscall.Errno = 5021\n\tERROR_CLUSTER_SHUTTING_DOWN                                               syscall.Errno = 5022\n\tERROR_INVALID_STATE                                                       syscall.Errno = 5023\n\tERROR_RESOURCE_PROPERTIES_STORED                                          syscall.Errno = 5024\n\tERROR_NOT_QUORUM_CLASS                                                    syscall.Errno = 5025\n\tERROR_CORE_RESOURCE                                                       syscall.Errno = 5026\n\tERROR_QUORUM_RESOURCE_ONLINE_FAILED                                       syscall.Errno = 5027\n\tERROR_QUORUMLOG_OPEN_FAILED                                               syscall.Errno = 5028\n\tERROR_CLUSTERLOG_CORRUPT                                                  syscall.Errno = 5029\n\tERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE                                   syscall.Errno = 5030\n\tERROR_CLUSTERLOG_EXCEEDS_MAXSIZE                                          syscall.Errno = 5031\n\tERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND                                       syscall.Errno = 5032\n\tERROR_CLUSTERLOG_NOT_ENOUGH_SPACE                                         syscall.Errno = 5033\n\tERROR_QUORUM_OWNER_ALIVE                                                  syscall.Errno = 5034\n\tERROR_NETWORK_NOT_AVAILABLE                                               syscall.Errno = 5035\n\tERROR_NODE_NOT_AVAILABLE                                                  syscall.Errno = 5036\n\tERROR_ALL_NODES_NOT_AVAILABLE                                             syscall.Errno = 5037\n\tERROR_RESOURCE_FAILED                                                     syscall.Errno = 5038\n\tERROR_CLUSTER_INVALID_NODE                                                syscall.Errno = 5039\n\tERROR_CLUSTER_NODE_EXISTS                                                 syscall.Errno = 5040\n\tERROR_CLUSTER_JOIN_IN_PROGRESS                                            syscall.Errno = 5041\n\tERROR_CLUSTER_NODE_NOT_FOUND                                              syscall.Errno = 5042\n\tERROR_CLUSTER_LOCAL_NODE_NOT_FOUND                                        syscall.Errno = 5043\n\tERROR_CLUSTER_NETWORK_EXISTS                                              syscall.Errno = 5044\n\tERROR_CLUSTER_NETWORK_NOT_FOUND                                           syscall.Errno = 5045\n\tERROR_CLUSTER_NETINTERFACE_EXISTS                                         syscall.Errno = 5046\n\tERROR_CLUSTER_NETINTERFACE_NOT_FOUND                                      syscall.Errno = 5047\n\tERROR_CLUSTER_INVALID_REQUEST                                             syscall.Errno = 5048\n\tERROR_CLUSTER_INVALID_NETWORK_PROVIDER                                    syscall.Errno = 5049\n\tERROR_CLUSTER_NODE_DOWN                                                   syscall.Errno = 5050\n\tERROR_CLUSTER_NODE_UNREACHABLE                                            syscall.Errno = 5051\n\tERROR_CLUSTER_NODE_NOT_MEMBER                                             syscall.Errno = 5052\n\tERROR_CLUSTER_JOIN_NOT_IN_PROGRESS                                        syscall.Errno = 5053\n\tERROR_CLUSTER_INVALID_NETWORK                                             syscall.Errno = 5054\n\tERROR_CLUSTER_NODE_UP                                                     syscall.Errno = 5056\n\tERROR_CLUSTER_IPADDR_IN_USE                                               syscall.Errno = 5057\n\tERROR_CLUSTER_NODE_NOT_PAUSED                                             syscall.Errno = 5058\n\tERROR_CLUSTER_NO_SECURITY_CONTEXT                                         syscall.Errno = 5059\n\tERROR_CLUSTER_NETWORK_NOT_INTERNAL                                        syscall.Errno = 5060\n\tERROR_CLUSTER_NODE_ALREADY_UP                                             syscall.Errno = 5061\n\tERROR_CLUSTER_NODE_ALREADY_DOWN                                           syscall.Errno = 5062\n\tERROR_CLUSTER_NETWORK_ALREADY_ONLINE                                      syscall.Errno = 5063\n\tERROR_CLUSTER_NETWORK_ALREADY_OFFLINE                                     syscall.Errno = 5064\n\tERROR_CLUSTER_NODE_ALREADY_MEMBER                                         syscall.Errno = 5065\n\tERROR_CLUSTER_LAST_INTERNAL_NETWORK                                       syscall.Errno = 5066\n\tERROR_CLUSTER_NETWORK_HAS_DEPENDENTS                                      syscall.Errno = 5067\n\tERROR_INVALID_OPERATION_ON_QUORUM                                         syscall.Errno = 5068\n\tERROR_DEPENDENCY_NOT_ALLOWED                                              syscall.Errno = 5069\n\tERROR_CLUSTER_NODE_PAUSED                                                 syscall.Errno = 5070\n\tERROR_NODE_CANT_HOST_RESOURCE                                             syscall.Errno = 5071\n\tERROR_CLUSTER_NODE_NOT_READY                                              syscall.Errno = 5072\n\tERROR_CLUSTER_NODE_SHUTTING_DOWN                                          syscall.Errno = 5073\n\tERROR_CLUSTER_JOIN_ABORTED                                                syscall.Errno = 5074\n\tERROR_CLUSTER_INCOMPATIBLE_VERSIONS                                       syscall.Errno = 5075\n\tERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED                                syscall.Errno = 5076\n\tERROR_CLUSTER_SYSTEM_CONFIG_CHANGED                                       syscall.Errno = 5077\n\tERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND                                     syscall.Errno = 5078\n\tERROR_CLUSTER_RESTYPE_NOT_SUPPORTED                                       syscall.Errno = 5079\n\tERROR_CLUSTER_RESNAME_NOT_FOUND                                           syscall.Errno = 5080\n\tERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED                                  syscall.Errno = 5081\n\tERROR_CLUSTER_OWNER_NOT_IN_PREFLIST                                       syscall.Errno = 5082\n\tERROR_CLUSTER_DATABASE_SEQMISMATCH                                        syscall.Errno = 5083\n\tERROR_RESMON_INVALID_STATE                                                syscall.Errno = 5084\n\tERROR_CLUSTER_GUM_NOT_LOCKER                                              syscall.Errno = 5085\n\tERROR_QUORUM_DISK_NOT_FOUND                                               syscall.Errno = 5086\n\tERROR_DATABASE_BACKUP_CORRUPT                                             syscall.Errno = 5087\n\tERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT                                   syscall.Errno = 5088\n\tERROR_RESOURCE_PROPERTY_UNCHANGEABLE                                      syscall.Errno = 5089\n\tERROR_NO_ADMIN_ACCESS_POINT                                               syscall.Errno = 5090\n\tERROR_CLUSTER_MEMBERSHIP_INVALID_STATE                                    syscall.Errno = 5890\n\tERROR_CLUSTER_QUORUMLOG_NOT_FOUND                                         syscall.Errno = 5891\n\tERROR_CLUSTER_MEMBERSHIP_HALT                                             syscall.Errno = 5892\n\tERROR_CLUSTER_INSTANCE_ID_MISMATCH                                        syscall.Errno = 5893\n\tERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP                                    syscall.Errno = 5894\n\tERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH                                 syscall.Errno = 5895\n\tERROR_CLUSTER_EVICT_WITHOUT_CLEANUP                                       syscall.Errno = 5896\n\tERROR_CLUSTER_PARAMETER_MISMATCH                                          syscall.Errno = 5897\n\tERROR_NODE_CANNOT_BE_CLUSTERED                                            syscall.Errno = 5898\n\tERROR_CLUSTER_WRONG_OS_VERSION                                            syscall.Errno = 5899\n\tERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME                                syscall.Errno = 5900\n\tERROR_CLUSCFG_ALREADY_COMMITTED                                           syscall.Errno = 5901\n\tERROR_CLUSCFG_ROLLBACK_FAILED                                             syscall.Errno = 5902\n\tERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT                           syscall.Errno = 5903\n\tERROR_CLUSTER_OLD_VERSION                                                 syscall.Errno = 5904\n\tERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME                               syscall.Errno = 5905\n\tERROR_CLUSTER_NO_NET_ADAPTERS                                             syscall.Errno = 5906\n\tERROR_CLUSTER_POISONED                                                    syscall.Errno = 5907\n\tERROR_CLUSTER_GROUP_MOVING                                                syscall.Errno = 5908\n\tERROR_CLUSTER_RESOURCE_TYPE_BUSY                                          syscall.Errno = 5909\n\tERROR_RESOURCE_CALL_TIMED_OUT                                             syscall.Errno = 5910\n\tERROR_INVALID_CLUSTER_IPV6_ADDRESS                                        syscall.Errno = 5911\n\tERROR_CLUSTER_INTERNAL_INVALID_FUNCTION                                   syscall.Errno = 5912\n\tERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS                                     syscall.Errno = 5913\n\tERROR_CLUSTER_PARTIAL_SEND                                                syscall.Errno = 5914\n\tERROR_CLUSTER_REGISTRY_INVALID_FUNCTION                                   syscall.Errno = 5915\n\tERROR_CLUSTER_INVALID_STRING_TERMINATION                                  syscall.Errno = 5916\n\tERROR_CLUSTER_INVALID_STRING_FORMAT                                       syscall.Errno = 5917\n\tERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS                            syscall.Errno = 5918\n\tERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS                        syscall.Errno = 5919\n\tERROR_CLUSTER_NULL_DATA                                                   syscall.Errno = 5920\n\tERROR_CLUSTER_PARTIAL_READ                                                syscall.Errno = 5921\n\tERROR_CLUSTER_PARTIAL_WRITE                                               syscall.Errno = 5922\n\tERROR_CLUSTER_CANT_DESERIALIZE_DATA                                       syscall.Errno = 5923\n\tERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT                                syscall.Errno = 5924\n\tERROR_CLUSTER_NO_QUORUM                                                   syscall.Errno = 5925\n\tERROR_CLUSTER_INVALID_IPV6_NETWORK                                        syscall.Errno = 5926\n\tERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK                                 syscall.Errno = 5927\n\tERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP                                    syscall.Errno = 5928\n\tERROR_DEPENDENCY_TREE_TOO_COMPLEX                                         syscall.Errno = 5929\n\tERROR_EXCEPTION_IN_RESOURCE_CALL                                          syscall.Errno = 5930\n\tERROR_CLUSTER_RHS_FAILED_INITIALIZATION                                   syscall.Errno = 5931\n\tERROR_CLUSTER_NOT_INSTALLED                                               syscall.Errno = 5932\n\tERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE                   syscall.Errno = 5933\n\tERROR_CLUSTER_MAX_NODES_IN_CLUSTER                                        syscall.Errno = 5934\n\tERROR_CLUSTER_TOO_MANY_NODES                                              syscall.Errno = 5935\n\tERROR_CLUSTER_OBJECT_ALREADY_USED                                         syscall.Errno = 5936\n\tERROR_NONCORE_GROUPS_FOUND                                                syscall.Errno = 5937\n\tERROR_FILE_SHARE_RESOURCE_CONFLICT                                        syscall.Errno = 5938\n\tERROR_CLUSTER_EVICT_INVALID_REQUEST                                       syscall.Errno = 5939\n\tERROR_CLUSTER_SINGLETON_RESOURCE                                          syscall.Errno = 5940\n\tERROR_CLUSTER_GROUP_SINGLETON_RESOURCE                                    syscall.Errno = 5941\n\tERROR_CLUSTER_RESOURCE_PROVIDER_FAILED                                    syscall.Errno = 5942\n\tERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR                                syscall.Errno = 5943\n\tERROR_CLUSTER_GROUP_BUSY                                                  syscall.Errno = 5944\n\tERROR_CLUSTER_NOT_SHARED_VOLUME                                           syscall.Errno = 5945\n\tERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR                                 syscall.Errno = 5946\n\tERROR_CLUSTER_SHARED_VOLUMES_IN_USE                                       syscall.Errno = 5947\n\tERROR_CLUSTER_USE_SHARED_VOLUMES_API                                      syscall.Errno = 5948\n\tERROR_CLUSTER_BACKUP_IN_PROGRESS                                          syscall.Errno = 5949\n\tERROR_NON_CSV_PATH                                                        syscall.Errno = 5950\n\tERROR_CSV_VOLUME_NOT_LOCAL                                                syscall.Errno = 5951\n\tERROR_CLUSTER_WATCHDOG_TERMINATING                                        syscall.Errno = 5952\n\tERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES                     syscall.Errno = 5953\n\tERROR_CLUSTER_INVALID_NODE_WEIGHT                                         syscall.Errno = 5954\n\tERROR_CLUSTER_RESOURCE_VETOED_CALL                                        syscall.Errno = 5955\n\tERROR_RESMON_SYSTEM_RESOURCES_LACKING                                     syscall.Errno = 5956\n\tERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION    syscall.Errno = 5957\n\tERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE         syscall.Errno = 5958\n\tERROR_CLUSTER_GROUP_QUEUED                                                syscall.Errno = 5959\n\tERROR_CLUSTER_RESOURCE_LOCKED_STATUS                                      syscall.Errno = 5960\n\tERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED                          syscall.Errno = 5961\n\tERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS                                      syscall.Errno = 5962\n\tERROR_CLUSTER_DISK_NOT_CONNECTED                                          syscall.Errno = 5963\n\tERROR_DISK_NOT_CSV_CAPABLE                                                syscall.Errno = 5964\n\tERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE                                   syscall.Errno = 5965\n\tERROR_CLUSTER_SHARED_VOLUME_REDIRECTED                                    syscall.Errno = 5966\n\tERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED                                syscall.Errno = 5967\n\tERROR_CLUSTER_CANNOT_RETURN_PROPERTIES                                    syscall.Errno = 5968\n\tERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES  syscall.Errno = 5969\n\tERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE                             syscall.Errno = 5970\n\tERROR_CLUSTER_AFFINITY_CONFLICT                                           syscall.Errno = 5971\n\tERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE                         syscall.Errno = 5972\n\tERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS                               syscall.Errno = 5973\n\tERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED                            syscall.Errno = 5974\n\tERROR_CLUSTER_UPGRADE_RESTART_REQUIRED                                    syscall.Errno = 5975\n\tERROR_CLUSTER_UPGRADE_IN_PROGRESS                                         syscall.Errno = 5976\n\tERROR_CLUSTER_UPGRADE_INCOMPLETE                                          syscall.Errno = 5977\n\tERROR_CLUSTER_NODE_IN_GRACE_PERIOD                                        syscall.Errno = 5978\n\tERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT                                        syscall.Errno = 5979\n\tERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER                                      syscall.Errno = 5980\n\tERROR_CLUSTER_RESOURCE_NOT_MONITORED                                      syscall.Errno = 5981\n\tERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED                       syscall.Errno = 5982\n\tERROR_CLUSTER_RESOURCE_IS_REPLICATED                                      syscall.Errno = 5983\n\tERROR_CLUSTER_NODE_ISOLATED                                               syscall.Errno = 5984\n\tERROR_CLUSTER_NODE_QUARANTINED                                            syscall.Errno = 5985\n\tERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED                            syscall.Errno = 5986\n\tERROR_CLUSTER_SPACE_DEGRADED                                              syscall.Errno = 5987\n\tERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED                              syscall.Errno = 5988\n\tERROR_CLUSTER_CSV_INVALID_HANDLE                                          syscall.Errno = 5989\n\tERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR                           syscall.Errno = 5990\n\tERROR_GROUPSET_NOT_AVAILABLE                                              syscall.Errno = 5991\n\tERROR_GROUPSET_NOT_FOUND                                                  syscall.Errno = 5992\n\tERROR_GROUPSET_CANT_PROVIDE                                               syscall.Errno = 5993\n\tERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND                               syscall.Errno = 5994\n\tERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY                              syscall.Errno = 5995\n\tERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION                          syscall.Errno = 5996\n\tERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS                          syscall.Errno = 5997\n\tERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME                      syscall.Errno = 5998\n\tERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE                           syscall.Errno = 5999\n\tERROR_ENCRYPTION_FAILED                                                   syscall.Errno = 6000\n\tERROR_DECRYPTION_FAILED                                                   syscall.Errno = 6001\n\tERROR_FILE_ENCRYPTED                                                      syscall.Errno = 6002\n\tERROR_NO_RECOVERY_POLICY                                                  syscall.Errno = 6003\n\tERROR_NO_EFS                                                              syscall.Errno = 6004\n\tERROR_WRONG_EFS                                                           syscall.Errno = 6005\n\tERROR_NO_USER_KEYS                                                        syscall.Errno = 6006\n\tERROR_FILE_NOT_ENCRYPTED                                                  syscall.Errno = 6007\n\tERROR_NOT_EXPORT_FORMAT                                                   syscall.Errno = 6008\n\tERROR_FILE_READ_ONLY                                                      syscall.Errno = 6009\n\tERROR_DIR_EFS_DISALLOWED                                                  syscall.Errno = 6010\n\tERROR_EFS_SERVER_NOT_TRUSTED                                              syscall.Errno = 6011\n\tERROR_BAD_RECOVERY_POLICY                                                 syscall.Errno = 6012\n\tERROR_EFS_ALG_BLOB_TOO_BIG                                                syscall.Errno = 6013\n\tERROR_VOLUME_NOT_SUPPORT_EFS                                              syscall.Errno = 6014\n\tERROR_EFS_DISABLED                                                        syscall.Errno = 6015\n\tERROR_EFS_VERSION_NOT_SUPPORT                                             syscall.Errno = 6016\n\tERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE                               syscall.Errno = 6017\n\tERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER                                    syscall.Errno = 6018\n\tERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE                               syscall.Errno = 6019\n\tERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE                                    syscall.Errno = 6020\n\tERROR_CS_ENCRYPTION_FILE_NOT_CSE                                          syscall.Errno = 6021\n\tERROR_ENCRYPTION_POLICY_DENIES_OPERATION                                  syscall.Errno = 6022\n\tERROR_WIP_ENCRYPTION_FAILED                                               syscall.Errno = 6023\n\tERROR_NO_BROWSER_SERVERS_FOUND                                            syscall.Errno = 6118\n\tSCHED_E_SERVICE_NOT_LOCALSYSTEM                                           syscall.Errno = 6200\n\tERROR_LOG_SECTOR_INVALID                                                  syscall.Errno = 6600\n\tERROR_LOG_SECTOR_PARITY_INVALID                                           syscall.Errno = 6601\n\tERROR_LOG_SECTOR_REMAPPED                                                 syscall.Errno = 6602\n\tERROR_LOG_BLOCK_INCOMPLETE                                                syscall.Errno = 6603\n\tERROR_LOG_INVALID_RANGE                                                   syscall.Errno = 6604\n\tERROR_LOG_BLOCKS_EXHAUSTED                                                syscall.Errno = 6605\n\tERROR_LOG_READ_CONTEXT_INVALID                                            syscall.Errno = 6606\n\tERROR_LOG_RESTART_INVALID                                                 syscall.Errno = 6607\n\tERROR_LOG_BLOCK_VERSION                                                   syscall.Errno = 6608\n\tERROR_LOG_BLOCK_INVALID                                                   syscall.Errno = 6609\n\tERROR_LOG_READ_MODE_INVALID                                               syscall.Errno = 6610\n\tERROR_LOG_NO_RESTART                                                      syscall.Errno = 6611\n\tERROR_LOG_METADATA_CORRUPT                                                syscall.Errno = 6612\n\tERROR_LOG_METADATA_INVALID                                                syscall.Errno = 6613\n\tERROR_LOG_METADATA_INCONSISTENT                                           syscall.Errno = 6614\n\tERROR_LOG_RESERVATION_INVALID                                             syscall.Errno = 6615\n\tERROR_LOG_CANT_DELETE                                                     syscall.Errno = 6616\n\tERROR_LOG_CONTAINER_LIMIT_EXCEEDED                                        syscall.Errno = 6617\n\tERROR_LOG_START_OF_LOG                                                    syscall.Errno = 6618\n\tERROR_LOG_POLICY_ALREADY_INSTALLED                                        syscall.Errno = 6619\n\tERROR_LOG_POLICY_NOT_INSTALLED                                            syscall.Errno = 6620\n\tERROR_LOG_POLICY_INVALID                                                  syscall.Errno = 6621\n\tERROR_LOG_POLICY_CONFLICT                                                 syscall.Errno = 6622\n\tERROR_LOG_PINNED_ARCHIVE_TAIL                                             syscall.Errno = 6623\n\tERROR_LOG_RECORD_NONEXISTENT                                              syscall.Errno = 6624\n\tERROR_LOG_RECORDS_RESERVED_INVALID                                        syscall.Errno = 6625\n\tERROR_LOG_SPACE_RESERVED_INVALID                                          syscall.Errno = 6626\n\tERROR_LOG_TAIL_INVALID                                                    syscall.Errno = 6627\n\tERROR_LOG_FULL                                                            syscall.Errno = 6628\n\tERROR_COULD_NOT_RESIZE_LOG                                                syscall.Errno = 6629\n\tERROR_LOG_MULTIPLEXED                                                     syscall.Errno = 6630\n\tERROR_LOG_DEDICATED                                                       syscall.Errno = 6631\n\tERROR_LOG_ARCHIVE_NOT_IN_PROGRESS                                         syscall.Errno = 6632\n\tERROR_LOG_ARCHIVE_IN_PROGRESS                                             syscall.Errno = 6633\n\tERROR_LOG_EPHEMERAL                                                       syscall.Errno = 6634\n\tERROR_LOG_NOT_ENOUGH_CONTAINERS                                           syscall.Errno = 6635\n\tERROR_LOG_CLIENT_ALREADY_REGISTERED                                       syscall.Errno = 6636\n\tERROR_LOG_CLIENT_NOT_REGISTERED                                           syscall.Errno = 6637\n\tERROR_LOG_FULL_HANDLER_IN_PROGRESS                                        syscall.Errno = 6638\n\tERROR_LOG_CONTAINER_READ_FAILED                                           syscall.Errno = 6639\n\tERROR_LOG_CONTAINER_WRITE_FAILED                                          syscall.Errno = 6640\n\tERROR_LOG_CONTAINER_OPEN_FAILED                                           syscall.Errno = 6641\n\tERROR_LOG_CONTAINER_STATE_INVALID                                         syscall.Errno = 6642\n\tERROR_LOG_STATE_INVALID                                                   syscall.Errno = 6643\n\tERROR_LOG_PINNED                                                          syscall.Errno = 6644\n\tERROR_LOG_METADATA_FLUSH_FAILED                                           syscall.Errno = 6645\n\tERROR_LOG_INCONSISTENT_SECURITY                                           syscall.Errno = 6646\n\tERROR_LOG_APPENDED_FLUSH_FAILED                                           syscall.Errno = 6647\n\tERROR_LOG_PINNED_RESERVATION                                              syscall.Errno = 6648\n\tERROR_INVALID_TRANSACTION                                                 syscall.Errno = 6700\n\tERROR_TRANSACTION_NOT_ACTIVE                                              syscall.Errno = 6701\n\tERROR_TRANSACTION_REQUEST_NOT_VALID                                       syscall.Errno = 6702\n\tERROR_TRANSACTION_NOT_REQUESTED                                           syscall.Errno = 6703\n\tERROR_TRANSACTION_ALREADY_ABORTED                                         syscall.Errno = 6704\n\tERROR_TRANSACTION_ALREADY_COMMITTED                                       syscall.Errno = 6705\n\tERROR_TM_INITIALIZATION_FAILED                                            syscall.Errno = 6706\n\tERROR_RESOURCEMANAGER_READ_ONLY                                           syscall.Errno = 6707\n\tERROR_TRANSACTION_NOT_JOINED                                              syscall.Errno = 6708\n\tERROR_TRANSACTION_SUPERIOR_EXISTS                                         syscall.Errno = 6709\n\tERROR_CRM_PROTOCOL_ALREADY_EXISTS                                         syscall.Errno = 6710\n\tERROR_TRANSACTION_PROPAGATION_FAILED                                      syscall.Errno = 6711\n\tERROR_CRM_PROTOCOL_NOT_FOUND                                              syscall.Errno = 6712\n\tERROR_TRANSACTION_INVALID_MARSHALL_BUFFER                                 syscall.Errno = 6713\n\tERROR_CURRENT_TRANSACTION_NOT_VALID                                       syscall.Errno = 6714\n\tERROR_TRANSACTION_NOT_FOUND                                               syscall.Errno = 6715\n\tERROR_RESOURCEMANAGER_NOT_FOUND                                           syscall.Errno = 6716\n\tERROR_ENLISTMENT_NOT_FOUND                                                syscall.Errno = 6717\n\tERROR_TRANSACTIONMANAGER_NOT_FOUND                                        syscall.Errno = 6718\n\tERROR_TRANSACTIONMANAGER_NOT_ONLINE                                       syscall.Errno = 6719\n\tERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION                          syscall.Errno = 6720\n\tERROR_TRANSACTION_NOT_ROOT                                                syscall.Errno = 6721\n\tERROR_TRANSACTION_OBJECT_EXPIRED                                          syscall.Errno = 6722\n\tERROR_TRANSACTION_RESPONSE_NOT_ENLISTED                                   syscall.Errno = 6723\n\tERROR_TRANSACTION_RECORD_TOO_LONG                                         syscall.Errno = 6724\n\tERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED                                  syscall.Errno = 6725\n\tERROR_TRANSACTION_INTEGRITY_VIOLATED                                      syscall.Errno = 6726\n\tERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH                                syscall.Errno = 6727\n\tERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT                                    syscall.Errno = 6728\n\tERROR_TRANSACTION_MUST_WRITETHROUGH                                       syscall.Errno = 6729\n\tERROR_TRANSACTION_NO_SUPERIOR                                             syscall.Errno = 6730\n\tERROR_HEURISTIC_DAMAGE_POSSIBLE                                           syscall.Errno = 6731\n\tERROR_TRANSACTIONAL_CONFLICT                                              syscall.Errno = 6800\n\tERROR_RM_NOT_ACTIVE                                                       syscall.Errno = 6801\n\tERROR_RM_METADATA_CORRUPT                                                 syscall.Errno = 6802\n\tERROR_DIRECTORY_NOT_RM                                                    syscall.Errno = 6803\n\tERROR_TRANSACTIONS_UNSUPPORTED_REMOTE                                     syscall.Errno = 6805\n\tERROR_LOG_RESIZE_INVALID_SIZE                                             syscall.Errno = 6806\n\tERROR_OBJECT_NO_LONGER_EXISTS                                             syscall.Errno = 6807\n\tERROR_STREAM_MINIVERSION_NOT_FOUND                                        syscall.Errno = 6808\n\tERROR_STREAM_MINIVERSION_NOT_VALID                                        syscall.Errno = 6809\n\tERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION                 syscall.Errno = 6810\n\tERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT                            syscall.Errno = 6811\n\tERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS                                syscall.Errno = 6812\n\tERROR_REMOTE_FILE_VERSION_MISMATCH                                        syscall.Errno = 6814\n\tERROR_HANDLE_NO_LONGER_VALID                                              syscall.Errno = 6815\n\tERROR_NO_TXF_METADATA                                                     syscall.Errno = 6816\n\tERROR_LOG_CORRUPTION_DETECTED                                             syscall.Errno = 6817\n\tERROR_CANT_RECOVER_WITH_HANDLE_OPEN                                       syscall.Errno = 6818\n\tERROR_RM_DISCONNECTED                                                     syscall.Errno = 6819\n\tERROR_ENLISTMENT_NOT_SUPERIOR                                             syscall.Errno = 6820\n\tERROR_RECOVERY_NOT_NEEDED                                                 syscall.Errno = 6821\n\tERROR_RM_ALREADY_STARTED                                                  syscall.Errno = 6822\n\tERROR_FILE_IDENTITY_NOT_PERSISTENT                                        syscall.Errno = 6823\n\tERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY                                 syscall.Errno = 6824\n\tERROR_CANT_CROSS_RM_BOUNDARY                                              syscall.Errno = 6825\n\tERROR_TXF_DIR_NOT_EMPTY                                                   syscall.Errno = 6826\n\tERROR_INDOUBT_TRANSACTIONS_EXIST                                          syscall.Errno = 6827\n\tERROR_TM_VOLATILE                                                         syscall.Errno = 6828\n\tERROR_ROLLBACK_TIMER_EXPIRED                                              syscall.Errno = 6829\n\tERROR_TXF_ATTRIBUTE_CORRUPT                                               syscall.Errno = 6830\n\tERROR_EFS_NOT_ALLOWED_IN_TRANSACTION                                      syscall.Errno = 6831\n\tERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED                                      syscall.Errno = 6832\n\tERROR_LOG_GROWTH_FAILED                                                   syscall.Errno = 6833\n\tERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE                               syscall.Errno = 6834\n\tERROR_TXF_METADATA_ALREADY_PRESENT                                        syscall.Errno = 6835\n\tERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET                                 syscall.Errno = 6836\n\tERROR_TRANSACTION_REQUIRED_PROMOTION                                      syscall.Errno = 6837\n\tERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION                                  syscall.Errno = 6838\n\tERROR_TRANSACTIONS_NOT_FROZEN                                             syscall.Errno = 6839\n\tERROR_TRANSACTION_FREEZE_IN_PROGRESS                                      syscall.Errno = 6840\n\tERROR_NOT_SNAPSHOT_VOLUME                                                 syscall.Errno = 6841\n\tERROR_NO_SAVEPOINT_WITH_OPEN_FILES                                        syscall.Errno = 6842\n\tERROR_DATA_LOST_REPAIR                                                    syscall.Errno = 6843\n\tERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION                                   syscall.Errno = 6844\n\tERROR_TM_IDENTITY_MISMATCH                                                syscall.Errno = 6845\n\tERROR_FLOATED_SECTION                                                     syscall.Errno = 6846\n\tERROR_CANNOT_ACCEPT_TRANSACTED_WORK                                       syscall.Errno = 6847\n\tERROR_CANNOT_ABORT_TRANSACTIONS                                           syscall.Errno = 6848\n\tERROR_BAD_CLUSTERS                                                        syscall.Errno = 6849\n\tERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION                              syscall.Errno = 6850\n\tERROR_VOLUME_DIRTY                                                        syscall.Errno = 6851\n\tERROR_NO_LINK_TRACKING_IN_TRANSACTION                                     syscall.Errno = 6852\n\tERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION                              syscall.Errno = 6853\n\tERROR_EXPIRED_HANDLE                                                      syscall.Errno = 6854\n\tERROR_TRANSACTION_NOT_ENLISTED                                            syscall.Errno = 6855\n\tERROR_CTX_WINSTATION_NAME_INVALID                                         syscall.Errno = 7001\n\tERROR_CTX_INVALID_PD                                                      syscall.Errno = 7002\n\tERROR_CTX_PD_NOT_FOUND                                                    syscall.Errno = 7003\n\tERROR_CTX_WD_NOT_FOUND                                                    syscall.Errno = 7004\n\tERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY                                      syscall.Errno = 7005\n\tERROR_CTX_SERVICE_NAME_COLLISION                                          syscall.Errno = 7006\n\tERROR_CTX_CLOSE_PENDING                                                   syscall.Errno = 7007\n\tERROR_CTX_NO_OUTBUF                                                       syscall.Errno = 7008\n\tERROR_CTX_MODEM_INF_NOT_FOUND                                             syscall.Errno = 7009\n\tERROR_CTX_INVALID_MODEMNAME                                               syscall.Errno = 7010\n\tERROR_CTX_MODEM_RESPONSE_ERROR                                            syscall.Errno = 7011\n\tERROR_CTX_MODEM_RESPONSE_TIMEOUT                                          syscall.Errno = 7012\n\tERROR_CTX_MODEM_RESPONSE_NO_CARRIER                                       syscall.Errno = 7013\n\tERROR_CTX_MODEM_RESPONSE_NO_DIALTONE                                      syscall.Errno = 7014\n\tERROR_CTX_MODEM_RESPONSE_BUSY                                             syscall.Errno = 7015\n\tERROR_CTX_MODEM_RESPONSE_VOICE                                            syscall.Errno = 7016\n\tERROR_CTX_TD_ERROR                                                        syscall.Errno = 7017\n\tERROR_CTX_WINSTATION_NOT_FOUND                                            syscall.Errno = 7022\n\tERROR_CTX_WINSTATION_ALREADY_EXISTS                                       syscall.Errno = 7023\n\tERROR_CTX_WINSTATION_BUSY                                                 syscall.Errno = 7024\n\tERROR_CTX_BAD_VIDEO_MODE                                                  syscall.Errno = 7025\n\tERROR_CTX_GRAPHICS_INVALID                                                syscall.Errno = 7035\n\tERROR_CTX_LOGON_DISABLED                                                  syscall.Errno = 7037\n\tERROR_CTX_NOT_CONSOLE                                                     syscall.Errno = 7038\n\tERROR_CTX_CLIENT_QUERY_TIMEOUT                                            syscall.Errno = 7040\n\tERROR_CTX_CONSOLE_DISCONNECT                                              syscall.Errno = 7041\n\tERROR_CTX_CONSOLE_CONNECT                                                 syscall.Errno = 7042\n\tERROR_CTX_SHADOW_DENIED                                                   syscall.Errno = 7044\n\tERROR_CTX_WINSTATION_ACCESS_DENIED                                        syscall.Errno = 7045\n\tERROR_CTX_INVALID_WD                                                      syscall.Errno = 7049\n\tERROR_CTX_SHADOW_INVALID                                                  syscall.Errno = 7050\n\tERROR_CTX_SHADOW_DISABLED                                                 syscall.Errno = 7051\n\tERROR_CTX_CLIENT_LICENSE_IN_USE                                           syscall.Errno = 7052\n\tERROR_CTX_CLIENT_LICENSE_NOT_SET                                          syscall.Errno = 7053\n\tERROR_CTX_LICENSE_NOT_AVAILABLE                                           syscall.Errno = 7054\n\tERROR_CTX_LICENSE_CLIENT_INVALID                                          syscall.Errno = 7055\n\tERROR_CTX_LICENSE_EXPIRED                                                 syscall.Errno = 7056\n\tERROR_CTX_SHADOW_NOT_RUNNING                                              syscall.Errno = 7057\n\tERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE                                     syscall.Errno = 7058\n\tERROR_ACTIVATION_COUNT_EXCEEDED                                           syscall.Errno = 7059\n\tERROR_CTX_WINSTATIONS_DISABLED                                            syscall.Errno = 7060\n\tERROR_CTX_ENCRYPTION_LEVEL_REQUIRED                                       syscall.Errno = 7061\n\tERROR_CTX_SESSION_IN_USE                                                  syscall.Errno = 7062\n\tERROR_CTX_NO_FORCE_LOGOFF                                                 syscall.Errno = 7063\n\tERROR_CTX_ACCOUNT_RESTRICTION                                             syscall.Errno = 7064\n\tERROR_RDP_PROTOCOL_ERROR                                                  syscall.Errno = 7065\n\tERROR_CTX_CDM_CONNECT                                                     syscall.Errno = 7066\n\tERROR_CTX_CDM_DISCONNECT                                                  syscall.Errno = 7067\n\tERROR_CTX_SECURITY_LAYER_ERROR                                            syscall.Errno = 7068\n\tERROR_TS_INCOMPATIBLE_SESSIONS                                            syscall.Errno = 7069\n\tERROR_TS_VIDEO_SUBSYSTEM_ERROR                                            syscall.Errno = 7070\n\tFRS_ERR_INVALID_API_SEQUENCE                                              syscall.Errno = 8001\n\tFRS_ERR_STARTING_SERVICE                                                  syscall.Errno = 8002\n\tFRS_ERR_STOPPING_SERVICE                                                  syscall.Errno = 8003\n\tFRS_ERR_INTERNAL_API                                                      syscall.Errno = 8004\n\tFRS_ERR_INTERNAL                                                          syscall.Errno = 8005\n\tFRS_ERR_SERVICE_COMM                                                      syscall.Errno = 8006\n\tFRS_ERR_INSUFFICIENT_PRIV                                                 syscall.Errno = 8007\n\tFRS_ERR_AUTHENTICATION                                                    syscall.Errno = 8008\n\tFRS_ERR_PARENT_INSUFFICIENT_PRIV                                          syscall.Errno = 8009\n\tFRS_ERR_PARENT_AUTHENTICATION                                             syscall.Errno = 8010\n\tFRS_ERR_CHILD_TO_PARENT_COMM                                              syscall.Errno = 8011\n\tFRS_ERR_PARENT_TO_CHILD_COMM                                              syscall.Errno = 8012\n\tFRS_ERR_SYSVOL_POPULATE                                                   syscall.Errno = 8013\n\tFRS_ERR_SYSVOL_POPULATE_TIMEOUT                                           syscall.Errno = 8014\n\tFRS_ERR_SYSVOL_IS_BUSY                                                    syscall.Errno = 8015\n\tFRS_ERR_SYSVOL_DEMOTE                                                     syscall.Errno = 8016\n\tFRS_ERR_INVALID_SERVICE_PARAMETER                                         syscall.Errno = 8017\n\tDS_S_SUCCESS                                                                            = ERROR_SUCCESS\n\tERROR_DS_NOT_INSTALLED                                                    syscall.Errno = 8200\n\tERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY                                     syscall.Errno = 8201\n\tERROR_DS_NO_ATTRIBUTE_OR_VALUE                                            syscall.Errno = 8202\n\tERROR_DS_INVALID_ATTRIBUTE_SYNTAX                                         syscall.Errno = 8203\n\tERROR_DS_ATTRIBUTE_TYPE_UNDEFINED                                         syscall.Errno = 8204\n\tERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS                                        syscall.Errno = 8205\n\tERROR_DS_BUSY                                                             syscall.Errno = 8206\n\tERROR_DS_UNAVAILABLE                                                      syscall.Errno = 8207\n\tERROR_DS_NO_RIDS_ALLOCATED                                                syscall.Errno = 8208\n\tERROR_DS_NO_MORE_RIDS                                                     syscall.Errno = 8209\n\tERROR_DS_INCORRECT_ROLE_OWNER                                             syscall.Errno = 8210\n\tERROR_DS_RIDMGR_INIT_ERROR                                                syscall.Errno = 8211\n\tERROR_DS_OBJ_CLASS_VIOLATION                                              syscall.Errno = 8212\n\tERROR_DS_CANT_ON_NON_LEAF                                                 syscall.Errno = 8213\n\tERROR_DS_CANT_ON_RDN                                                      syscall.Errno = 8214\n\tERROR_DS_CANT_MOD_OBJ_CLASS                                               syscall.Errno = 8215\n\tERROR_DS_CROSS_DOM_MOVE_ERROR                                             syscall.Errno = 8216\n\tERROR_DS_GC_NOT_AVAILABLE                                                 syscall.Errno = 8217\n\tERROR_SHARED_POLICY                                                       syscall.Errno = 8218\n\tERROR_POLICY_OBJECT_NOT_FOUND                                             syscall.Errno = 8219\n\tERROR_POLICY_ONLY_IN_DS                                                   syscall.Errno = 8220\n\tERROR_PROMOTION_ACTIVE                                                    syscall.Errno = 8221\n\tERROR_NO_PROMOTION_ACTIVE                                                 syscall.Errno = 8222\n\tERROR_DS_OPERATIONS_ERROR                                                 syscall.Errno = 8224\n\tERROR_DS_PROTOCOL_ERROR                                                   syscall.Errno = 8225\n\tERROR_DS_TIMELIMIT_EXCEEDED                                               syscall.Errno = 8226\n\tERROR_DS_SIZELIMIT_EXCEEDED                                               syscall.Errno = 8227\n\tERROR_DS_ADMIN_LIMIT_EXCEEDED                                             syscall.Errno = 8228\n\tERROR_DS_COMPARE_FALSE                                                    syscall.Errno = 8229\n\tERROR_DS_COMPARE_TRUE                                                     syscall.Errno = 8230\n\tERROR_DS_AUTH_METHOD_NOT_SUPPORTED                                        syscall.Errno = 8231\n\tERROR_DS_STRONG_AUTH_REQUIRED                                             syscall.Errno = 8232\n\tERROR_DS_INAPPROPRIATE_AUTH                                               syscall.Errno = 8233\n\tERROR_DS_AUTH_UNKNOWN                                                     syscall.Errno = 8234\n\tERROR_DS_REFERRAL                                                         syscall.Errno = 8235\n\tERROR_DS_UNAVAILABLE_CRIT_EXTENSION                                       syscall.Errno = 8236\n\tERROR_DS_CONFIDENTIALITY_REQUIRED                                         syscall.Errno = 8237\n\tERROR_DS_INAPPROPRIATE_MATCHING                                           syscall.Errno = 8238\n\tERROR_DS_CONSTRAINT_VIOLATION                                             syscall.Errno = 8239\n\tERROR_DS_NO_SUCH_OBJECT                                                   syscall.Errno = 8240\n\tERROR_DS_ALIAS_PROBLEM                                                    syscall.Errno = 8241\n\tERROR_DS_INVALID_DN_SYNTAX                                                syscall.Errno = 8242\n\tERROR_DS_IS_LEAF                                                          syscall.Errno = 8243\n\tERROR_DS_ALIAS_DEREF_PROBLEM                                              syscall.Errno = 8244\n\tERROR_DS_UNWILLING_TO_PERFORM                                             syscall.Errno = 8245\n\tERROR_DS_LOOP_DETECT                                                      syscall.Errno = 8246\n\tERROR_DS_NAMING_VIOLATION                                                 syscall.Errno = 8247\n\tERROR_DS_OBJECT_RESULTS_TOO_LARGE                                         syscall.Errno = 8248\n\tERROR_DS_AFFECTS_MULTIPLE_DSAS                                            syscall.Errno = 8249\n\tERROR_DS_SERVER_DOWN                                                      syscall.Errno = 8250\n\tERROR_DS_LOCAL_ERROR                                                      syscall.Errno = 8251\n\tERROR_DS_ENCODING_ERROR                                                   syscall.Errno = 8252\n\tERROR_DS_DECODING_ERROR                                                   syscall.Errno = 8253\n\tERROR_DS_FILTER_UNKNOWN                                                   syscall.Errno = 8254\n\tERROR_DS_PARAM_ERROR                                                      syscall.Errno = 8255\n\tERROR_DS_NOT_SUPPORTED                                                    syscall.Errno = 8256\n\tERROR_DS_NO_RESULTS_RETURNED                                              syscall.Errno = 8257\n\tERROR_DS_CONTROL_NOT_FOUND                                                syscall.Errno = 8258\n\tERROR_DS_CLIENT_LOOP                                                      syscall.Errno = 8259\n\tERROR_DS_REFERRAL_LIMIT_EXCEEDED                                          syscall.Errno = 8260\n\tERROR_DS_SORT_CONTROL_MISSING                                             syscall.Errno = 8261\n\tERROR_DS_OFFSET_RANGE_ERROR                                               syscall.Errno = 8262\n\tERROR_DS_RIDMGR_DISABLED                                                  syscall.Errno = 8263\n\tERROR_DS_ROOT_MUST_BE_NC                                                  syscall.Errno = 8301\n\tERROR_DS_ADD_REPLICA_INHIBITED                                            syscall.Errno = 8302\n\tERROR_DS_ATT_NOT_DEF_IN_SCHEMA                                            syscall.Errno = 8303\n\tERROR_DS_MAX_OBJ_SIZE_EXCEEDED                                            syscall.Errno = 8304\n\tERROR_DS_OBJ_STRING_NAME_EXISTS                                           syscall.Errno = 8305\n\tERROR_DS_NO_RDN_DEFINED_IN_SCHEMA                                         syscall.Errno = 8306\n\tERROR_DS_RDN_DOESNT_MATCH_SCHEMA                                          syscall.Errno = 8307\n\tERROR_DS_NO_REQUESTED_ATTS_FOUND                                          syscall.Errno = 8308\n\tERROR_DS_USER_BUFFER_TO_SMALL                                             syscall.Errno = 8309\n\tERROR_DS_ATT_IS_NOT_ON_OBJ                                                syscall.Errno = 8310\n\tERROR_DS_ILLEGAL_MOD_OPERATION                                            syscall.Errno = 8311\n\tERROR_DS_OBJ_TOO_LARGE                                                    syscall.Errno = 8312\n\tERROR_DS_BAD_INSTANCE_TYPE                                                syscall.Errno = 8313\n\tERROR_DS_MASTERDSA_REQUIRED                                               syscall.Errno = 8314\n\tERROR_DS_OBJECT_CLASS_REQUIRED                                            syscall.Errno = 8315\n\tERROR_DS_MISSING_REQUIRED_ATT                                             syscall.Errno = 8316\n\tERROR_DS_ATT_NOT_DEF_FOR_CLASS                                            syscall.Errno = 8317\n\tERROR_DS_ATT_ALREADY_EXISTS                                               syscall.Errno = 8318\n\tERROR_DS_CANT_ADD_ATT_VALUES                                              syscall.Errno = 8320\n\tERROR_DS_SINGLE_VALUE_CONSTRAINT                                          syscall.Errno = 8321\n\tERROR_DS_RANGE_CONSTRAINT                                                 syscall.Errno = 8322\n\tERROR_DS_ATT_VAL_ALREADY_EXISTS                                           syscall.Errno = 8323\n\tERROR_DS_CANT_REM_MISSING_ATT                                             syscall.Errno = 8324\n\tERROR_DS_CANT_REM_MISSING_ATT_VAL                                         syscall.Errno = 8325\n\tERROR_DS_ROOT_CANT_BE_SUBREF                                              syscall.Errno = 8326\n\tERROR_DS_NO_CHAINING                                                      syscall.Errno = 8327\n\tERROR_DS_NO_CHAINED_EVAL                                                  syscall.Errno = 8328\n\tERROR_DS_NO_PARENT_OBJECT                                                 syscall.Errno = 8329\n\tERROR_DS_PARENT_IS_AN_ALIAS                                               syscall.Errno = 8330\n\tERROR_DS_CANT_MIX_MASTER_AND_REPS                                         syscall.Errno = 8331\n\tERROR_DS_CHILDREN_EXIST                                                   syscall.Errno = 8332\n\tERROR_DS_OBJ_NOT_FOUND                                                    syscall.Errno = 8333\n\tERROR_DS_ALIASED_OBJ_MISSING                                              syscall.Errno = 8334\n\tERROR_DS_BAD_NAME_SYNTAX                                                  syscall.Errno = 8335\n\tERROR_DS_ALIAS_POINTS_TO_ALIAS                                            syscall.Errno = 8336\n\tERROR_DS_CANT_DEREF_ALIAS                                                 syscall.Errno = 8337\n\tERROR_DS_OUT_OF_SCOPE                                                     syscall.Errno = 8338\n\tERROR_DS_OBJECT_BEING_REMOVED                                             syscall.Errno = 8339\n\tERROR_DS_CANT_DELETE_DSA_OBJ                                              syscall.Errno = 8340\n\tERROR_DS_GENERIC_ERROR                                                    syscall.Errno = 8341\n\tERROR_DS_DSA_MUST_BE_INT_MASTER                                           syscall.Errno = 8342\n\tERROR_DS_CLASS_NOT_DSA                                                    syscall.Errno = 8343\n\tERROR_DS_INSUFF_ACCESS_RIGHTS                                             syscall.Errno = 8344\n\tERROR_DS_ILLEGAL_SUPERIOR                                                 syscall.Errno = 8345\n\tERROR_DS_ATTRIBUTE_OWNED_BY_SAM                                           syscall.Errno = 8346\n\tERROR_DS_NAME_TOO_MANY_PARTS                                              syscall.Errno = 8347\n\tERROR_DS_NAME_TOO_LONG                                                    syscall.Errno = 8348\n\tERROR_DS_NAME_VALUE_TOO_LONG                                              syscall.Errno = 8349\n\tERROR_DS_NAME_UNPARSEABLE                                                 syscall.Errno = 8350\n\tERROR_DS_NAME_TYPE_UNKNOWN                                                syscall.Errno = 8351\n\tERROR_DS_NOT_AN_OBJECT                                                    syscall.Errno = 8352\n\tERROR_DS_SEC_DESC_TOO_SHORT                                               syscall.Errno = 8353\n\tERROR_DS_SEC_DESC_INVALID                                                 syscall.Errno = 8354\n\tERROR_DS_NO_DELETED_NAME                                                  syscall.Errno = 8355\n\tERROR_DS_SUBREF_MUST_HAVE_PARENT                                          syscall.Errno = 8356\n\tERROR_DS_NCNAME_MUST_BE_NC                                                syscall.Errno = 8357\n\tERROR_DS_CANT_ADD_SYSTEM_ONLY                                             syscall.Errno = 8358\n\tERROR_DS_CLASS_MUST_BE_CONCRETE                                           syscall.Errno = 8359\n\tERROR_DS_INVALID_DMD                                                      syscall.Errno = 8360\n\tERROR_DS_OBJ_GUID_EXISTS                                                  syscall.Errno = 8361\n\tERROR_DS_NOT_ON_BACKLINK                                                  syscall.Errno = 8362\n\tERROR_DS_NO_CROSSREF_FOR_NC                                               syscall.Errno = 8363\n\tERROR_DS_SHUTTING_DOWN                                                    syscall.Errno = 8364\n\tERROR_DS_UNKNOWN_OPERATION                                                syscall.Errno = 8365\n\tERROR_DS_INVALID_ROLE_OWNER                                               syscall.Errno = 8366\n\tERROR_DS_COULDNT_CONTACT_FSMO                                             syscall.Errno = 8367\n\tERROR_DS_CROSS_NC_DN_RENAME                                               syscall.Errno = 8368\n\tERROR_DS_CANT_MOD_SYSTEM_ONLY                                             syscall.Errno = 8369\n\tERROR_DS_REPLICATOR_ONLY                                                  syscall.Errno = 8370\n\tERROR_DS_OBJ_CLASS_NOT_DEFINED                                            syscall.Errno = 8371\n\tERROR_DS_OBJ_CLASS_NOT_SUBCLASS                                           syscall.Errno = 8372\n\tERROR_DS_NAME_REFERENCE_INVALID                                           syscall.Errno = 8373\n\tERROR_DS_CROSS_REF_EXISTS                                                 syscall.Errno = 8374\n\tERROR_DS_CANT_DEL_MASTER_CROSSREF                                         syscall.Errno = 8375\n\tERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD                                       syscall.Errno = 8376\n\tERROR_DS_NOTIFY_FILTER_TOO_COMPLEX                                        syscall.Errno = 8377\n\tERROR_DS_DUP_RDN                                                          syscall.Errno = 8378\n\tERROR_DS_DUP_OID                                                          syscall.Errno = 8379\n\tERROR_DS_DUP_MAPI_ID                                                      syscall.Errno = 8380\n\tERROR_DS_DUP_SCHEMA_ID_GUID                                               syscall.Errno = 8381\n\tERROR_DS_DUP_LDAP_DISPLAY_NAME                                            syscall.Errno = 8382\n\tERROR_DS_SEMANTIC_ATT_TEST                                                syscall.Errno = 8383\n\tERROR_DS_SYNTAX_MISMATCH                                                  syscall.Errno = 8384\n\tERROR_DS_EXISTS_IN_MUST_HAVE                                              syscall.Errno = 8385\n\tERROR_DS_EXISTS_IN_MAY_HAVE                                               syscall.Errno = 8386\n\tERROR_DS_NONEXISTENT_MAY_HAVE                                             syscall.Errno = 8387\n\tERROR_DS_NONEXISTENT_MUST_HAVE                                            syscall.Errno = 8388\n\tERROR_DS_AUX_CLS_TEST_FAIL                                                syscall.Errno = 8389\n\tERROR_DS_NONEXISTENT_POSS_SUP                                             syscall.Errno = 8390\n\tERROR_DS_SUB_CLS_TEST_FAIL                                                syscall.Errno = 8391\n\tERROR_DS_BAD_RDN_ATT_ID_SYNTAX                                            syscall.Errno = 8392\n\tERROR_DS_EXISTS_IN_AUX_CLS                                                syscall.Errno = 8393\n\tERROR_DS_EXISTS_IN_SUB_CLS                                                syscall.Errno = 8394\n\tERROR_DS_EXISTS_IN_POSS_SUP                                               syscall.Errno = 8395\n\tERROR_DS_RECALCSCHEMA_FAILED                                              syscall.Errno = 8396\n\tERROR_DS_TREE_DELETE_NOT_FINISHED                                         syscall.Errno = 8397\n\tERROR_DS_CANT_DELETE                                                      syscall.Errno = 8398\n\tERROR_DS_ATT_SCHEMA_REQ_ID                                                syscall.Errno = 8399\n\tERROR_DS_BAD_ATT_SCHEMA_SYNTAX                                            syscall.Errno = 8400\n\tERROR_DS_CANT_CACHE_ATT                                                   syscall.Errno = 8401\n\tERROR_DS_CANT_CACHE_CLASS                                                 syscall.Errno = 8402\n\tERROR_DS_CANT_REMOVE_ATT_CACHE                                            syscall.Errno = 8403\n\tERROR_DS_CANT_REMOVE_CLASS_CACHE                                          syscall.Errno = 8404\n\tERROR_DS_CANT_RETRIEVE_DN                                                 syscall.Errno = 8405\n\tERROR_DS_MISSING_SUPREF                                                   syscall.Errno = 8406\n\tERROR_DS_CANT_RETRIEVE_INSTANCE                                           syscall.Errno = 8407\n\tERROR_DS_CODE_INCONSISTENCY                                               syscall.Errno = 8408\n\tERROR_DS_DATABASE_ERROR                                                   syscall.Errno = 8409\n\tERROR_DS_GOVERNSID_MISSING                                                syscall.Errno = 8410\n\tERROR_DS_MISSING_EXPECTED_ATT                                             syscall.Errno = 8411\n\tERROR_DS_NCNAME_MISSING_CR_REF                                            syscall.Errno = 8412\n\tERROR_DS_SECURITY_CHECKING_ERROR                                          syscall.Errno = 8413\n\tERROR_DS_SCHEMA_NOT_LOADED                                                syscall.Errno = 8414\n\tERROR_DS_SCHEMA_ALLOC_FAILED                                              syscall.Errno = 8415\n\tERROR_DS_ATT_SCHEMA_REQ_SYNTAX                                            syscall.Errno = 8416\n\tERROR_DS_GCVERIFY_ERROR                                                   syscall.Errno = 8417\n\tERROR_DS_DRA_SCHEMA_MISMATCH                                              syscall.Errno = 8418\n\tERROR_DS_CANT_FIND_DSA_OBJ                                                syscall.Errno = 8419\n\tERROR_DS_CANT_FIND_EXPECTED_NC                                            syscall.Errno = 8420\n\tERROR_DS_CANT_FIND_NC_IN_CACHE                                            syscall.Errno = 8421\n\tERROR_DS_CANT_RETRIEVE_CHILD                                              syscall.Errno = 8422\n\tERROR_DS_SECURITY_ILLEGAL_MODIFY                                          syscall.Errno = 8423\n\tERROR_DS_CANT_REPLACE_HIDDEN_REC                                          syscall.Errno = 8424\n\tERROR_DS_BAD_HIERARCHY_FILE                                               syscall.Errno = 8425\n\tERROR_DS_BUILD_HIERARCHY_TABLE_FAILED                                     syscall.Errno = 8426\n\tERROR_DS_CONFIG_PARAM_MISSING                                             syscall.Errno = 8427\n\tERROR_DS_COUNTING_AB_INDICES_FAILED                                       syscall.Errno = 8428\n\tERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED                                    syscall.Errno = 8429\n\tERROR_DS_INTERNAL_FAILURE                                                 syscall.Errno = 8430\n\tERROR_DS_UNKNOWN_ERROR                                                    syscall.Errno = 8431\n\tERROR_DS_ROOT_REQUIRES_CLASS_TOP                                          syscall.Errno = 8432\n\tERROR_DS_REFUSING_FSMO_ROLES                                              syscall.Errno = 8433\n\tERROR_DS_MISSING_FSMO_SETTINGS                                            syscall.Errno = 8434\n\tERROR_DS_UNABLE_TO_SURRENDER_ROLES                                        syscall.Errno = 8435\n\tERROR_DS_DRA_GENERIC                                                      syscall.Errno = 8436\n\tERROR_DS_DRA_INVALID_PARAMETER                                            syscall.Errno = 8437\n\tERROR_DS_DRA_BUSY                                                         syscall.Errno = 8438\n\tERROR_DS_DRA_BAD_DN                                                       syscall.Errno = 8439\n\tERROR_DS_DRA_BAD_NC                                                       syscall.Errno = 8440\n\tERROR_DS_DRA_DN_EXISTS                                                    syscall.Errno = 8441\n\tERROR_DS_DRA_INTERNAL_ERROR                                               syscall.Errno = 8442\n\tERROR_DS_DRA_INCONSISTENT_DIT                                             syscall.Errno = 8443\n\tERROR_DS_DRA_CONNECTION_FAILED                                            syscall.Errno = 8444\n\tERROR_DS_DRA_BAD_INSTANCE_TYPE                                            syscall.Errno = 8445\n\tERROR_DS_DRA_OUT_OF_MEM                                                   syscall.Errno = 8446\n\tERROR_DS_DRA_MAIL_PROBLEM                                                 syscall.Errno = 8447\n\tERROR_DS_DRA_REF_ALREADY_EXISTS                                           syscall.Errno = 8448\n\tERROR_DS_DRA_REF_NOT_FOUND                                                syscall.Errno = 8449\n\tERROR_DS_DRA_OBJ_IS_REP_SOURCE                                            syscall.Errno = 8450\n\tERROR_DS_DRA_DB_ERROR                                                     syscall.Errno = 8451\n\tERROR_DS_DRA_NO_REPLICA                                                   syscall.Errno = 8452\n\tERROR_DS_DRA_ACCESS_DENIED                                                syscall.Errno = 8453\n\tERROR_DS_DRA_NOT_SUPPORTED                                                syscall.Errno = 8454\n\tERROR_DS_DRA_RPC_CANCELLED                                                syscall.Errno = 8455\n\tERROR_DS_DRA_SOURCE_DISABLED                                              syscall.Errno = 8456\n\tERROR_DS_DRA_SINK_DISABLED                                                syscall.Errno = 8457\n\tERROR_DS_DRA_NAME_COLLISION                                               syscall.Errno = 8458\n\tERROR_DS_DRA_SOURCE_REINSTALLED                                           syscall.Errno = 8459\n\tERROR_DS_DRA_MISSING_PARENT                                               syscall.Errno = 8460\n\tERROR_DS_DRA_PREEMPTED                                                    syscall.Errno = 8461\n\tERROR_DS_DRA_ABANDON_SYNC                                                 syscall.Errno = 8462\n\tERROR_DS_DRA_SHUTDOWN                                                     syscall.Errno = 8463\n\tERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET                                     syscall.Errno = 8464\n\tERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA                                    syscall.Errno = 8465\n\tERROR_DS_DRA_EXTN_CONNECTION_FAILED                                       syscall.Errno = 8466\n\tERROR_DS_INSTALL_SCHEMA_MISMATCH                                          syscall.Errno = 8467\n\tERROR_DS_DUP_LINK_ID                                                      syscall.Errno = 8468\n\tERROR_DS_NAME_ERROR_RESOLVING                                             syscall.Errno = 8469\n\tERROR_DS_NAME_ERROR_NOT_FOUND                                             syscall.Errno = 8470\n\tERROR_DS_NAME_ERROR_NOT_UNIQUE                                            syscall.Errno = 8471\n\tERROR_DS_NAME_ERROR_NO_MAPPING                                            syscall.Errno = 8472\n\tERROR_DS_NAME_ERROR_DOMAIN_ONLY                                           syscall.Errno = 8473\n\tERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING                                syscall.Errno = 8474\n\tERROR_DS_CONSTRUCTED_ATT_MOD                                              syscall.Errno = 8475\n\tERROR_DS_WRONG_OM_OBJ_CLASS                                               syscall.Errno = 8476\n\tERROR_DS_DRA_REPL_PENDING                                                 syscall.Errno = 8477\n\tERROR_DS_DS_REQUIRED                                                      syscall.Errno = 8478\n\tERROR_DS_INVALID_LDAP_DISPLAY_NAME                                        syscall.Errno = 8479\n\tERROR_DS_NON_BASE_SEARCH                                                  syscall.Errno = 8480\n\tERROR_DS_CANT_RETRIEVE_ATTS                                               syscall.Errno = 8481\n\tERROR_DS_BACKLINK_WITHOUT_LINK                                            syscall.Errno = 8482\n\tERROR_DS_EPOCH_MISMATCH                                                   syscall.Errno = 8483\n\tERROR_DS_SRC_NAME_MISMATCH                                                syscall.Errno = 8484\n\tERROR_DS_SRC_AND_DST_NC_IDENTICAL                                         syscall.Errno = 8485\n\tERROR_DS_DST_NC_MISMATCH                                                  syscall.Errno = 8486\n\tERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC                                       syscall.Errno = 8487\n\tERROR_DS_SRC_GUID_MISMATCH                                                syscall.Errno = 8488\n\tERROR_DS_CANT_MOVE_DELETED_OBJECT                                         syscall.Errno = 8489\n\tERROR_DS_PDC_OPERATION_IN_PROGRESS                                        syscall.Errno = 8490\n\tERROR_DS_CROSS_DOMAIN_CLEANUP_REQD                                        syscall.Errno = 8491\n\tERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION                                      syscall.Errno = 8492\n\tERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS                                  syscall.Errno = 8493\n\tERROR_DS_NC_MUST_HAVE_NC_PARENT                                           syscall.Errno = 8494\n\tERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE                                        syscall.Errno = 8495\n\tERROR_DS_DST_DOMAIN_NOT_NATIVE                                            syscall.Errno = 8496\n\tERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER                                 syscall.Errno = 8497\n\tERROR_DS_CANT_MOVE_ACCOUNT_GROUP                                          syscall.Errno = 8498\n\tERROR_DS_CANT_MOVE_RESOURCE_GROUP                                         syscall.Errno = 8499\n\tERROR_DS_INVALID_SEARCH_FLAG                                              syscall.Errno = 8500\n\tERROR_DS_NO_TREE_DELETE_ABOVE_NC                                          syscall.Errno = 8501\n\tERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE                                     syscall.Errno = 8502\n\tERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE                         syscall.Errno = 8503\n\tERROR_DS_SAM_INIT_FAILURE                                                 syscall.Errno = 8504\n\tERROR_DS_SENSITIVE_GROUP_VIOLATION                                        syscall.Errno = 8505\n\tERROR_DS_CANT_MOD_PRIMARYGROUPID                                          syscall.Errno = 8506\n\tERROR_DS_ILLEGAL_BASE_SCHEMA_MOD                                          syscall.Errno = 8507\n\tERROR_DS_NONSAFE_SCHEMA_CHANGE                                            syscall.Errno = 8508\n\tERROR_DS_SCHEMA_UPDATE_DISALLOWED                                         syscall.Errno = 8509\n\tERROR_DS_CANT_CREATE_UNDER_SCHEMA                                         syscall.Errno = 8510\n\tERROR_DS_INSTALL_NO_SRC_SCH_VERSION                                       syscall.Errno = 8511\n\tERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE                                syscall.Errno = 8512\n\tERROR_DS_INVALID_GROUP_TYPE                                               syscall.Errno = 8513\n\tERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN                               syscall.Errno = 8514\n\tERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN                                syscall.Errno = 8515\n\tERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER                                    syscall.Errno = 8516\n\tERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER                                syscall.Errno = 8517\n\tERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER                                 syscall.Errno = 8518\n\tERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER                              syscall.Errno = 8519\n\tERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER                         syscall.Errno = 8520\n\tERROR_DS_HAVE_PRIMARY_MEMBERS                                             syscall.Errno = 8521\n\tERROR_DS_STRING_SD_CONVERSION_FAILED                                      syscall.Errno = 8522\n\tERROR_DS_NAMING_MASTER_GC                                                 syscall.Errno = 8523\n\tERROR_DS_DNS_LOOKUP_FAILURE                                               syscall.Errno = 8524\n\tERROR_DS_COULDNT_UPDATE_SPNS                                              syscall.Errno = 8525\n\tERROR_DS_CANT_RETRIEVE_SD                                                 syscall.Errno = 8526\n\tERROR_DS_KEY_NOT_UNIQUE                                                   syscall.Errno = 8527\n\tERROR_DS_WRONG_LINKED_ATT_SYNTAX                                          syscall.Errno = 8528\n\tERROR_DS_SAM_NEED_BOOTKEY_PASSWORD                                        syscall.Errno = 8529\n\tERROR_DS_SAM_NEED_BOOTKEY_FLOPPY                                          syscall.Errno = 8530\n\tERROR_DS_CANT_START                                                       syscall.Errno = 8531\n\tERROR_DS_INIT_FAILURE                                                     syscall.Errno = 8532\n\tERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION                                     syscall.Errno = 8533\n\tERROR_DS_SOURCE_DOMAIN_IN_FOREST                                          syscall.Errno = 8534\n\tERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST                                 syscall.Errno = 8535\n\tERROR_DS_DESTINATION_AUDITING_NOT_ENABLED                                 syscall.Errno = 8536\n\tERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN                                      syscall.Errno = 8537\n\tERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER                                        syscall.Errno = 8538\n\tERROR_DS_SRC_SID_EXISTS_IN_FOREST                                         syscall.Errno = 8539\n\tERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH                                syscall.Errno = 8540\n\tERROR_SAM_INIT_FAILURE                                                    syscall.Errno = 8541\n\tERROR_DS_DRA_SCHEMA_INFO_SHIP                                             syscall.Errno = 8542\n\tERROR_DS_DRA_SCHEMA_CONFLICT                                              syscall.Errno = 8543\n\tERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT                                      syscall.Errno = 8544\n\tERROR_DS_DRA_OBJ_NC_MISMATCH                                              syscall.Errno = 8545\n\tERROR_DS_NC_STILL_HAS_DSAS                                                syscall.Errno = 8546\n\tERROR_DS_GC_REQUIRED                                                      syscall.Errno = 8547\n\tERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY                                       syscall.Errno = 8548\n\tERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS                                       syscall.Errno = 8549\n\tERROR_DS_CANT_ADD_TO_GC                                                   syscall.Errno = 8550\n\tERROR_DS_NO_CHECKPOINT_WITH_PDC                                           syscall.Errno = 8551\n\tERROR_DS_SOURCE_AUDITING_NOT_ENABLED                                      syscall.Errno = 8552\n\tERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC                                      syscall.Errno = 8553\n\tERROR_DS_INVALID_NAME_FOR_SPN                                             syscall.Errno = 8554\n\tERROR_DS_FILTER_USES_CONTRUCTED_ATTRS                                     syscall.Errno = 8555\n\tERROR_DS_UNICODEPWD_NOT_IN_QUOTES                                         syscall.Errno = 8556\n\tERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED                                   syscall.Errno = 8557\n\tERROR_DS_MUST_BE_RUN_ON_DST_DC                                            syscall.Errno = 8558\n\tERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER                                    syscall.Errno = 8559\n\tERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ                                    syscall.Errno = 8560\n\tERROR_DS_INIT_FAILURE_CONSOLE                                             syscall.Errno = 8561\n\tERROR_DS_SAM_INIT_FAILURE_CONSOLE                                         syscall.Errno = 8562\n\tERROR_DS_FOREST_VERSION_TOO_HIGH                                          syscall.Errno = 8563\n\tERROR_DS_DOMAIN_VERSION_TOO_HIGH                                          syscall.Errno = 8564\n\tERROR_DS_FOREST_VERSION_TOO_LOW                                           syscall.Errno = 8565\n\tERROR_DS_DOMAIN_VERSION_TOO_LOW                                           syscall.Errno = 8566\n\tERROR_DS_INCOMPATIBLE_VERSION                                             syscall.Errno = 8567\n\tERROR_DS_LOW_DSA_VERSION                                                  syscall.Errno = 8568\n\tERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN                               syscall.Errno = 8569\n\tERROR_DS_NOT_SUPPORTED_SORT_ORDER                                         syscall.Errno = 8570\n\tERROR_DS_NAME_NOT_UNIQUE                                                  syscall.Errno = 8571\n\tERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4                                   syscall.Errno = 8572\n\tERROR_DS_OUT_OF_VERSION_STORE                                             syscall.Errno = 8573\n\tERROR_DS_INCOMPATIBLE_CONTROLS_USED                                       syscall.Errno = 8574\n\tERROR_DS_NO_REF_DOMAIN                                                    syscall.Errno = 8575\n\tERROR_DS_RESERVED_LINK_ID                                                 syscall.Errno = 8576\n\tERROR_DS_LINK_ID_NOT_AVAILABLE                                            syscall.Errno = 8577\n\tERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER                                    syscall.Errno = 8578\n\tERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE                             syscall.Errno = 8579\n\tERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC                                      syscall.Errno = 8580\n\tERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG                                      syscall.Errno = 8581\n\tERROR_DS_MODIFYDN_WRONG_GRANDPARENT                                       syscall.Errno = 8582\n\tERROR_DS_NAME_ERROR_TRUST_REFERRAL                                        syscall.Errno = 8583\n\tERROR_NOT_SUPPORTED_ON_STANDARD_SERVER                                    syscall.Errno = 8584\n\tERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD                                    syscall.Errno = 8585\n\tERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2                                     syscall.Errno = 8586\n\tERROR_DS_THREAD_LIMIT_EXCEEDED                                            syscall.Errno = 8587\n\tERROR_DS_NOT_CLOSEST                                                      syscall.Errno = 8588\n\tERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF                               syscall.Errno = 8589\n\tERROR_DS_SINGLE_USER_MODE_FAILED                                          syscall.Errno = 8590\n\tERROR_DS_NTDSCRIPT_SYNTAX_ERROR                                           syscall.Errno = 8591\n\tERROR_DS_NTDSCRIPT_PROCESS_ERROR                                          syscall.Errno = 8592\n\tERROR_DS_DIFFERENT_REPL_EPOCHS                                            syscall.Errno = 8593\n\tERROR_DS_DRS_EXTENSIONS_CHANGED                                           syscall.Errno = 8594\n\tERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR                    syscall.Errno = 8595\n\tERROR_DS_NO_MSDS_INTID                                                    syscall.Errno = 8596\n\tERROR_DS_DUP_MSDS_INTID                                                   syscall.Errno = 8597\n\tERROR_DS_EXISTS_IN_RDNATTID                                               syscall.Errno = 8598\n\tERROR_DS_AUTHORIZATION_FAILED                                             syscall.Errno = 8599\n\tERROR_DS_INVALID_SCRIPT                                                   syscall.Errno = 8600\n\tERROR_DS_REMOTE_CROSSREF_OP_FAILED                                        syscall.Errno = 8601\n\tERROR_DS_CROSS_REF_BUSY                                                   syscall.Errno = 8602\n\tERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN                               syscall.Errno = 8603\n\tERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC                                    syscall.Errno = 8604\n\tERROR_DS_DUPLICATE_ID_FOUND                                               syscall.Errno = 8605\n\tERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT                               syscall.Errno = 8606\n\tERROR_DS_GROUP_CONVERSION_ERROR                                           syscall.Errno = 8607\n\tERROR_DS_CANT_MOVE_APP_BASIC_GROUP                                        syscall.Errno = 8608\n\tERROR_DS_CANT_MOVE_APP_QUERY_GROUP                                        syscall.Errno = 8609\n\tERROR_DS_ROLE_NOT_VERIFIED                                                syscall.Errno = 8610\n\tERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL                                  syscall.Errno = 8611\n\tERROR_DS_DOMAIN_RENAME_IN_PROGRESS                                        syscall.Errno = 8612\n\tERROR_DS_EXISTING_AD_CHILD_NC                                             syscall.Errno = 8613\n\tERROR_DS_REPL_LIFETIME_EXCEEDED                                           syscall.Errno = 8614\n\tERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER                                   syscall.Errno = 8615\n\tERROR_DS_LDAP_SEND_QUEUE_FULL                                             syscall.Errno = 8616\n\tERROR_DS_DRA_OUT_SCHEDULE_WINDOW                                          syscall.Errno = 8617\n\tERROR_DS_POLICY_NOT_KNOWN                                                 syscall.Errno = 8618\n\tERROR_NO_SITE_SETTINGS_OBJECT                                             syscall.Errno = 8619\n\tERROR_NO_SECRETS                                                          syscall.Errno = 8620\n\tERROR_NO_WRITABLE_DC_FOUND                                                syscall.Errno = 8621\n\tERROR_DS_NO_SERVER_OBJECT                                                 syscall.Errno = 8622\n\tERROR_DS_NO_NTDSA_OBJECT                                                  syscall.Errno = 8623\n\tERROR_DS_NON_ASQ_SEARCH                                                   syscall.Errno = 8624\n\tERROR_DS_AUDIT_FAILURE                                                    syscall.Errno = 8625\n\tERROR_DS_INVALID_SEARCH_FLAG_SUBTREE                                      syscall.Errno = 8626\n\tERROR_DS_INVALID_SEARCH_FLAG_TUPLE                                        syscall.Errno = 8627\n\tERROR_DS_HIERARCHY_TABLE_TOO_DEEP                                         syscall.Errno = 8628\n\tERROR_DS_DRA_CORRUPT_UTD_VECTOR                                           syscall.Errno = 8629\n\tERROR_DS_DRA_SECRETS_DENIED                                               syscall.Errno = 8630\n\tERROR_DS_RESERVED_MAPI_ID                                                 syscall.Errno = 8631\n\tERROR_DS_MAPI_ID_NOT_AVAILABLE                                            syscall.Errno = 8632\n\tERROR_DS_DRA_MISSING_KRBTGT_SECRET                                        syscall.Errno = 8633\n\tERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST                                     syscall.Errno = 8634\n\tERROR_DS_FLAT_NAME_EXISTS_IN_FOREST                                       syscall.Errno = 8635\n\tERROR_INVALID_USER_PRINCIPAL_NAME                                         syscall.Errno = 8636\n\tERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS                               syscall.Errno = 8637\n\tERROR_DS_OID_NOT_FOUND                                                    syscall.Errno = 8638\n\tERROR_DS_DRA_RECYCLED_TARGET                                              syscall.Errno = 8639\n\tERROR_DS_DISALLOWED_NC_REDIRECT                                           syscall.Errno = 8640\n\tERROR_DS_HIGH_ADLDS_FFL                                                   syscall.Errno = 8641\n\tERROR_DS_HIGH_DSA_VERSION                                                 syscall.Errno = 8642\n\tERROR_DS_LOW_ADLDS_FFL                                                    syscall.Errno = 8643\n\tERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION                                syscall.Errno = 8644\n\tERROR_DS_UNDELETE_SAM_VALIDATION_FAILED                                   syscall.Errno = 8645\n\tERROR_INCORRECT_ACCOUNT_TYPE                                              syscall.Errno = 8646\n\tERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST                                   syscall.Errno = 8647\n\tERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST                                   syscall.Errno = 8648\n\tERROR_DS_MISSING_FOREST_TRUST                                             syscall.Errno = 8649\n\tERROR_DS_VALUE_KEY_NOT_UNIQUE                                             syscall.Errno = 8650\n\tDNS_ERROR_RESPONSE_CODES_BASE                                             syscall.Errno = 9000\n\tDNS_ERROR_RCODE_NO_ERROR                                                                = ERROR_SUCCESS\n\tDNS_ERROR_MASK                                                            syscall.Errno = 0x00002328\n\tDNS_ERROR_RCODE_FORMAT_ERROR                                              syscall.Errno = 9001\n\tDNS_ERROR_RCODE_SERVER_FAILURE                                            syscall.Errno = 9002\n\tDNS_ERROR_RCODE_NAME_ERROR                                                syscall.Errno = 9003\n\tDNS_ERROR_RCODE_NOT_IMPLEMENTED                                           syscall.Errno = 9004\n\tDNS_ERROR_RCODE_REFUSED                                                   syscall.Errno = 9005\n\tDNS_ERROR_RCODE_YXDOMAIN                                                  syscall.Errno = 9006\n\tDNS_ERROR_RCODE_YXRRSET                                                   syscall.Errno = 9007\n\tDNS_ERROR_RCODE_NXRRSET                                                   syscall.Errno = 9008\n\tDNS_ERROR_RCODE_NOTAUTH                                                   syscall.Errno = 9009\n\tDNS_ERROR_RCODE_NOTZONE                                                   syscall.Errno = 9010\n\tDNS_ERROR_RCODE_BADSIG                                                    syscall.Errno = 9016\n\tDNS_ERROR_RCODE_BADKEY                                                    syscall.Errno = 9017\n\tDNS_ERROR_RCODE_BADTIME                                                   syscall.Errno = 9018\n\tDNS_ERROR_RCODE_LAST                                                                    = DNS_ERROR_RCODE_BADTIME\n\tDNS_ERROR_DNSSEC_BASE                                                     syscall.Errno = 9100\n\tDNS_ERROR_KEYMASTER_REQUIRED                                              syscall.Errno = 9101\n\tDNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE                                      syscall.Errno = 9102\n\tDNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1                                syscall.Errno = 9103\n\tDNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS                              syscall.Errno = 9104\n\tDNS_ERROR_UNSUPPORTED_ALGORITHM                                           syscall.Errno = 9105\n\tDNS_ERROR_INVALID_KEY_SIZE                                                syscall.Errno = 9106\n\tDNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE                                      syscall.Errno = 9107\n\tDNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION                                 syscall.Errno = 9108\n\tDNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR                                syscall.Errno = 9109\n\tDNS_ERROR_UNEXPECTED_CNG_ERROR                                            syscall.Errno = 9110\n\tDNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION                               syscall.Errno = 9111\n\tDNS_ERROR_KSP_NOT_ACCESSIBLE                                              syscall.Errno = 9112\n\tDNS_ERROR_TOO_MANY_SKDS                                                   syscall.Errno = 9113\n\tDNS_ERROR_INVALID_ROLLOVER_PERIOD                                         syscall.Errno = 9114\n\tDNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET                                 syscall.Errno = 9115\n\tDNS_ERROR_ROLLOVER_IN_PROGRESS                                            syscall.Errno = 9116\n\tDNS_ERROR_STANDBY_KEY_NOT_PRESENT                                         syscall.Errno = 9117\n\tDNS_ERROR_NOT_ALLOWED_ON_ZSK                                              syscall.Errno = 9118\n\tDNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD                                       syscall.Errno = 9119\n\tDNS_ERROR_ROLLOVER_ALREADY_QUEUED                                         syscall.Errno = 9120\n\tDNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE                                    syscall.Errno = 9121\n\tDNS_ERROR_BAD_KEYMASTER                                                   syscall.Errno = 9122\n\tDNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD                               syscall.Errno = 9123\n\tDNS_ERROR_INVALID_NSEC3_ITERATION_COUNT                                   syscall.Errno = 9124\n\tDNS_ERROR_DNSSEC_IS_DISABLED                                              syscall.Errno = 9125\n\tDNS_ERROR_INVALID_XML                                                     syscall.Errno = 9126\n\tDNS_ERROR_NO_VALID_TRUST_ANCHORS                                          syscall.Errno = 9127\n\tDNS_ERROR_ROLLOVER_NOT_POKEABLE                                           syscall.Errno = 9128\n\tDNS_ERROR_NSEC3_NAME_COLLISION                                            syscall.Errno = 9129\n\tDNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1                           syscall.Errno = 9130\n\tDNS_ERROR_PACKET_FMT_BASE                                                 syscall.Errno = 9500\n\tDNS_INFO_NO_RECORDS                                                       syscall.Errno = 9501\n\tDNS_ERROR_BAD_PACKET                                                      syscall.Errno = 9502\n\tDNS_ERROR_NO_PACKET                                                       syscall.Errno = 9503\n\tDNS_ERROR_RCODE                                                           syscall.Errno = 9504\n\tDNS_ERROR_UNSECURE_PACKET                                                 syscall.Errno = 9505\n\tDNS_STATUS_PACKET_UNSECURE                                                              = DNS_ERROR_UNSECURE_PACKET\n\tDNS_REQUEST_PENDING                                                       syscall.Errno = 9506\n\tDNS_ERROR_NO_MEMORY                                                                     = ERROR_OUTOFMEMORY\n\tDNS_ERROR_INVALID_NAME                                                                  = ERROR_INVALID_NAME\n\tDNS_ERROR_INVALID_DATA                                                                  = ERROR_INVALID_DATA\n\tDNS_ERROR_GENERAL_API_BASE                                                syscall.Errno = 9550\n\tDNS_ERROR_INVALID_TYPE                                                    syscall.Errno = 9551\n\tDNS_ERROR_INVALID_IP_ADDRESS                                              syscall.Errno = 9552\n\tDNS_ERROR_INVALID_PROPERTY                                                syscall.Errno = 9553\n\tDNS_ERROR_TRY_AGAIN_LATER                                                 syscall.Errno = 9554\n\tDNS_ERROR_NOT_UNIQUE                                                      syscall.Errno = 9555\n\tDNS_ERROR_NON_RFC_NAME                                                    syscall.Errno = 9556\n\tDNS_STATUS_FQDN                                                           syscall.Errno = 9557\n\tDNS_STATUS_DOTTED_NAME                                                    syscall.Errno = 9558\n\tDNS_STATUS_SINGLE_PART_NAME                                               syscall.Errno = 9559\n\tDNS_ERROR_INVALID_NAME_CHAR                                               syscall.Errno = 9560\n\tDNS_ERROR_NUMERIC_NAME                                                    syscall.Errno = 9561\n\tDNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER                                      syscall.Errno = 9562\n\tDNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION                                    syscall.Errno = 9563\n\tDNS_ERROR_CANNOT_FIND_ROOT_HINTS                                          syscall.Errno = 9564\n\tDNS_ERROR_INCONSISTENT_ROOT_HINTS                                         syscall.Errno = 9565\n\tDNS_ERROR_DWORD_VALUE_TOO_SMALL                                           syscall.Errno = 9566\n\tDNS_ERROR_DWORD_VALUE_TOO_LARGE                                           syscall.Errno = 9567\n\tDNS_ERROR_BACKGROUND_LOADING                                              syscall.Errno = 9568\n\tDNS_ERROR_NOT_ALLOWED_ON_RODC                                             syscall.Errno = 9569\n\tDNS_ERROR_NOT_ALLOWED_UNDER_DNAME                                         syscall.Errno = 9570\n\tDNS_ERROR_DELEGATION_REQUIRED                                             syscall.Errno = 9571\n\tDNS_ERROR_INVALID_POLICY_TABLE                                            syscall.Errno = 9572\n\tDNS_ERROR_ADDRESS_REQUIRED                                                syscall.Errno = 9573\n\tDNS_ERROR_ZONE_BASE                                                       syscall.Errno = 9600\n\tDNS_ERROR_ZONE_DOES_NOT_EXIST                                             syscall.Errno = 9601\n\tDNS_ERROR_NO_ZONE_INFO                                                    syscall.Errno = 9602\n\tDNS_ERROR_INVALID_ZONE_OPERATION                                          syscall.Errno = 9603\n\tDNS_ERROR_ZONE_CONFIGURATION_ERROR                                        syscall.Errno = 9604\n\tDNS_ERROR_ZONE_HAS_NO_SOA_RECORD                                          syscall.Errno = 9605\n\tDNS_ERROR_ZONE_HAS_NO_NS_RECORDS                                          syscall.Errno = 9606\n\tDNS_ERROR_ZONE_LOCKED                                                     syscall.Errno = 9607\n\tDNS_ERROR_ZONE_CREATION_FAILED                                            syscall.Errno = 9608\n\tDNS_ERROR_ZONE_ALREADY_EXISTS                                             syscall.Errno = 9609\n\tDNS_ERROR_AUTOZONE_ALREADY_EXISTS                                         syscall.Errno = 9610\n\tDNS_ERROR_INVALID_ZONE_TYPE                                               syscall.Errno = 9611\n\tDNS_ERROR_SECONDARY_REQUIRES_MASTER_IP                                    syscall.Errno = 9612\n\tDNS_ERROR_ZONE_NOT_SECONDARY                                              syscall.Errno = 9613\n\tDNS_ERROR_NEED_SECONDARY_ADDRESSES                                        syscall.Errno = 9614\n\tDNS_ERROR_WINS_INIT_FAILED                                                syscall.Errno = 9615\n\tDNS_ERROR_NEED_WINS_SERVERS                                               syscall.Errno = 9616\n\tDNS_ERROR_NBSTAT_INIT_FAILED                                              syscall.Errno = 9617\n\tDNS_ERROR_SOA_DELETE_INVALID                                              syscall.Errno = 9618\n\tDNS_ERROR_FORWARDER_ALREADY_EXISTS                                        syscall.Errno = 9619\n\tDNS_ERROR_ZONE_REQUIRES_MASTER_IP                                         syscall.Errno = 9620\n\tDNS_ERROR_ZONE_IS_SHUTDOWN                                                syscall.Errno = 9621\n\tDNS_ERROR_ZONE_LOCKED_FOR_SIGNING                                         syscall.Errno = 9622\n\tDNS_ERROR_DATAFILE_BASE                                                   syscall.Errno = 9650\n\tDNS_ERROR_PRIMARY_REQUIRES_DATAFILE                                       syscall.Errno = 9651\n\tDNS_ERROR_INVALID_DATAFILE_NAME                                           syscall.Errno = 9652\n\tDNS_ERROR_DATAFILE_OPEN_FAILURE                                           syscall.Errno = 9653\n\tDNS_ERROR_FILE_WRITEBACK_FAILED                                           syscall.Errno = 9654\n\tDNS_ERROR_DATAFILE_PARSING                                                syscall.Errno = 9655\n\tDNS_ERROR_DATABASE_BASE                                                   syscall.Errno = 9700\n\tDNS_ERROR_RECORD_DOES_NOT_EXIST                                           syscall.Errno = 9701\n\tDNS_ERROR_RECORD_FORMAT                                                   syscall.Errno = 9702\n\tDNS_ERROR_NODE_CREATION_FAILED                                            syscall.Errno = 9703\n\tDNS_ERROR_UNKNOWN_RECORD_TYPE                                             syscall.Errno = 9704\n\tDNS_ERROR_RECORD_TIMED_OUT                                                syscall.Errno = 9705\n\tDNS_ERROR_NAME_NOT_IN_ZONE                                                syscall.Errno = 9706\n\tDNS_ERROR_CNAME_LOOP                                                      syscall.Errno = 9707\n\tDNS_ERROR_NODE_IS_CNAME                                                   syscall.Errno = 9708\n\tDNS_ERROR_CNAME_COLLISION                                                 syscall.Errno = 9709\n\tDNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT                                        syscall.Errno = 9710\n\tDNS_ERROR_RECORD_ALREADY_EXISTS                                           syscall.Errno = 9711\n\tDNS_ERROR_SECONDARY_DATA                                                  syscall.Errno = 9712\n\tDNS_ERROR_NO_CREATE_CACHE_DATA                                            syscall.Errno = 9713\n\tDNS_ERROR_NAME_DOES_NOT_EXIST                                             syscall.Errno = 9714\n\tDNS_WARNING_PTR_CREATE_FAILED                                             syscall.Errno = 9715\n\tDNS_WARNING_DOMAIN_UNDELETED                                              syscall.Errno = 9716\n\tDNS_ERROR_DS_UNAVAILABLE                                                  syscall.Errno = 9717\n\tDNS_ERROR_DS_ZONE_ALREADY_EXISTS                                          syscall.Errno = 9718\n\tDNS_ERROR_NO_BOOTFILE_IF_DS_ZONE                                          syscall.Errno = 9719\n\tDNS_ERROR_NODE_IS_DNAME                                                   syscall.Errno = 9720\n\tDNS_ERROR_DNAME_COLLISION                                                 syscall.Errno = 9721\n\tDNS_ERROR_ALIAS_LOOP                                                      syscall.Errno = 9722\n\tDNS_ERROR_OPERATION_BASE                                                  syscall.Errno = 9750\n\tDNS_INFO_AXFR_COMPLETE                                                    syscall.Errno = 9751\n\tDNS_ERROR_AXFR                                                            syscall.Errno = 9752\n\tDNS_INFO_ADDED_LOCAL_WINS                                                 syscall.Errno = 9753\n\tDNS_ERROR_SECURE_BASE                                                     syscall.Errno = 9800\n\tDNS_STATUS_CONTINUE_NEEDED                                                syscall.Errno = 9801\n\tDNS_ERROR_SETUP_BASE                                                      syscall.Errno = 9850\n\tDNS_ERROR_NO_TCPIP                                                        syscall.Errno = 9851\n\tDNS_ERROR_NO_DNS_SERVERS                                                  syscall.Errno = 9852\n\tDNS_ERROR_DP_BASE                                                         syscall.Errno = 9900\n\tDNS_ERROR_DP_DOES_NOT_EXIST                                               syscall.Errno = 9901\n\tDNS_ERROR_DP_ALREADY_EXISTS                                               syscall.Errno = 9902\n\tDNS_ERROR_DP_NOT_ENLISTED                                                 syscall.Errno = 9903\n\tDNS_ERROR_DP_ALREADY_ENLISTED                                             syscall.Errno = 9904\n\tDNS_ERROR_DP_NOT_AVAILABLE                                                syscall.Errno = 9905\n\tDNS_ERROR_DP_FSMO_ERROR                                                   syscall.Errno = 9906\n\tDNS_ERROR_RRL_NOT_ENABLED                                                 syscall.Errno = 9911\n\tDNS_ERROR_RRL_INVALID_WINDOW_SIZE                                         syscall.Errno = 9912\n\tDNS_ERROR_RRL_INVALID_IPV4_PREFIX                                         syscall.Errno = 9913\n\tDNS_ERROR_RRL_INVALID_IPV6_PREFIX                                         syscall.Errno = 9914\n\tDNS_ERROR_RRL_INVALID_TC_RATE                                             syscall.Errno = 9915\n\tDNS_ERROR_RRL_INVALID_LEAK_RATE                                           syscall.Errno = 9916\n\tDNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE                                  syscall.Errno = 9917\n\tDNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS                          syscall.Errno = 9921\n\tDNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST                          syscall.Errno = 9922\n\tDNS_ERROR_VIRTUALIZATION_TREE_LOCKED                                      syscall.Errno = 9923\n\tDNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME                            syscall.Errno = 9924\n\tDNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE                                 syscall.Errno = 9925\n\tDNS_ERROR_ZONESCOPE_ALREADY_EXISTS                                        syscall.Errno = 9951\n\tDNS_ERROR_ZONESCOPE_DOES_NOT_EXIST                                        syscall.Errno = 9952\n\tDNS_ERROR_DEFAULT_ZONESCOPE                                               syscall.Errno = 9953\n\tDNS_ERROR_INVALID_ZONESCOPE_NAME                                          syscall.Errno = 9954\n\tDNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES                                     syscall.Errno = 9955\n\tDNS_ERROR_LOAD_ZONESCOPE_FAILED                                           syscall.Errno = 9956\n\tDNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED                                 syscall.Errno = 9957\n\tDNS_ERROR_INVALID_SCOPE_NAME                                              syscall.Errno = 9958\n\tDNS_ERROR_SCOPE_DOES_NOT_EXIST                                            syscall.Errno = 9959\n\tDNS_ERROR_DEFAULT_SCOPE                                                   syscall.Errno = 9960\n\tDNS_ERROR_INVALID_SCOPE_OPERATION                                         syscall.Errno = 9961\n\tDNS_ERROR_SCOPE_LOCKED                                                    syscall.Errno = 9962\n\tDNS_ERROR_SCOPE_ALREADY_EXISTS                                            syscall.Errno = 9963\n\tDNS_ERROR_POLICY_ALREADY_EXISTS                                           syscall.Errno = 9971\n\tDNS_ERROR_POLICY_DOES_NOT_EXIST                                           syscall.Errno = 9972\n\tDNS_ERROR_POLICY_INVALID_CRITERIA                                         syscall.Errno = 9973\n\tDNS_ERROR_POLICY_INVALID_SETTINGS                                         syscall.Errno = 9974\n\tDNS_ERROR_CLIENT_SUBNET_IS_ACCESSED                                       syscall.Errno = 9975\n\tDNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST                                    syscall.Errno = 9976\n\tDNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS                                    syscall.Errno = 9977\n\tDNS_ERROR_SUBNET_DOES_NOT_EXIST                                           syscall.Errno = 9978\n\tDNS_ERROR_SUBNET_ALREADY_EXISTS                                           syscall.Errno = 9979\n\tDNS_ERROR_POLICY_LOCKED                                                   syscall.Errno = 9980\n\tDNS_ERROR_POLICY_INVALID_WEIGHT                                           syscall.Errno = 9981\n\tDNS_ERROR_POLICY_INVALID_NAME                                             syscall.Errno = 9982\n\tDNS_ERROR_POLICY_MISSING_CRITERIA                                         syscall.Errno = 9983\n\tDNS_ERROR_INVALID_CLIENT_SUBNET_NAME                                      syscall.Errno = 9984\n\tDNS_ERROR_POLICY_PROCESSING_ORDER_INVALID                                 syscall.Errno = 9985\n\tDNS_ERROR_POLICY_SCOPE_MISSING                                            syscall.Errno = 9986\n\tDNS_ERROR_POLICY_SCOPE_NOT_ALLOWED                                        syscall.Errno = 9987\n\tDNS_ERROR_SERVERSCOPE_IS_REFERENCED                                       syscall.Errno = 9988\n\tDNS_ERROR_ZONESCOPE_IS_REFERENCED                                         syscall.Errno = 9989\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET                           syscall.Errno = 9990\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL                      syscall.Errno = 9991\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL                        syscall.Errno = 9992\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE                               syscall.Errno = 9993\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_FQDN                                    syscall.Errno = 9994\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE                              syscall.Errno = 9995\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY                             syscall.Errno = 9996\n\tWSABASEERR                                                                syscall.Errno = 10000\n\tWSAEINTR                                                                  syscall.Errno = 10004\n\tWSAEBADF                                                                  syscall.Errno = 10009\n\tWSAEACCES                                                                 syscall.Errno = 10013\n\tWSAEFAULT                                                                 syscall.Errno = 10014\n\tWSAEINVAL                                                                 syscall.Errno = 10022\n\tWSAEMFILE                                                                 syscall.Errno = 10024\n\tWSAEWOULDBLOCK                                                            syscall.Errno = 10035\n\tWSAEINPROGRESS                                                            syscall.Errno = 10036\n\tWSAEALREADY                                                               syscall.Errno = 10037\n\tWSAENOTSOCK                                                               syscall.Errno = 10038\n\tWSAEDESTADDRREQ                                                           syscall.Errno = 10039\n\tWSAEMSGSIZE                                                               syscall.Errno = 10040\n\tWSAEPROTOTYPE                                                             syscall.Errno = 10041\n\tWSAENOPROTOOPT                                                            syscall.Errno = 10042\n\tWSAEPROTONOSUPPORT                                                        syscall.Errno = 10043\n\tWSAESOCKTNOSUPPORT                                                        syscall.Errno = 10044\n\tWSAEOPNOTSUPP                                                             syscall.Errno = 10045\n\tWSAEPFNOSUPPORT                                                           syscall.Errno = 10046\n\tWSAEAFNOSUPPORT                                                           syscall.Errno = 10047\n\tWSAEADDRINUSE                                                             syscall.Errno = 10048\n\tWSAEADDRNOTAVAIL                                                          syscall.Errno = 10049\n\tWSAENETDOWN                                                               syscall.Errno = 10050\n\tWSAENETUNREACH                                                            syscall.Errno = 10051\n\tWSAENETRESET                                                              syscall.Errno = 10052\n\tWSAECONNABORTED                                                           syscall.Errno = 10053\n\tWSAECONNRESET                                                             syscall.Errno = 10054\n\tWSAENOBUFS                                                                syscall.Errno = 10055\n\tWSAEISCONN                                                                syscall.Errno = 10056\n\tWSAENOTCONN                                                               syscall.Errno = 10057\n\tWSAESHUTDOWN                                                              syscall.Errno = 10058\n\tWSAETOOMANYREFS                                                           syscall.Errno = 10059\n\tWSAETIMEDOUT                                                              syscall.Errno = 10060\n\tWSAECONNREFUSED                                                           syscall.Errno = 10061\n\tWSAELOOP                                                                  syscall.Errno = 10062\n\tWSAENAMETOOLONG                                                           syscall.Errno = 10063\n\tWSAEHOSTDOWN                                                              syscall.Errno = 10064\n\tWSAEHOSTUNREACH                                                           syscall.Errno = 10065\n\tWSAENOTEMPTY                                                              syscall.Errno = 10066\n\tWSAEPROCLIM                                                               syscall.Errno = 10067\n\tWSAEUSERS                                                                 syscall.Errno = 10068\n\tWSAEDQUOT                                                                 syscall.Errno = 10069\n\tWSAESTALE                                                                 syscall.Errno = 10070\n\tWSAEREMOTE                                                                syscall.Errno = 10071\n\tWSASYSNOTREADY                                                            syscall.Errno = 10091\n\tWSAVERNOTSUPPORTED                                                        syscall.Errno = 10092\n\tWSANOTINITIALISED                                                         syscall.Errno = 10093\n\tWSAEDISCON                                                                syscall.Errno = 10101\n\tWSAENOMORE                                                                syscall.Errno = 10102\n\tWSAECANCELLED                                                             syscall.Errno = 10103\n\tWSAEINVALIDPROCTABLE                                                      syscall.Errno = 10104\n\tWSAEINVALIDPROVIDER                                                       syscall.Errno = 10105\n\tWSAEPROVIDERFAILEDINIT                                                    syscall.Errno = 10106\n\tWSASYSCALLFAILURE                                                         syscall.Errno = 10107\n\tWSASERVICE_NOT_FOUND                                                      syscall.Errno = 10108\n\tWSATYPE_NOT_FOUND                                                         syscall.Errno = 10109\n\tWSA_E_NO_MORE                                                             syscall.Errno = 10110\n\tWSA_E_CANCELLED                                                           syscall.Errno = 10111\n\tWSAEREFUSED                                                               syscall.Errno = 10112\n\tWSAHOST_NOT_FOUND                                                         syscall.Errno = 11001\n\tWSATRY_AGAIN                                                              syscall.Errno = 11002\n\tWSANO_RECOVERY                                                            syscall.Errno = 11003\n\tWSANO_DATA                                                                syscall.Errno = 11004\n\tWSA_QOS_RECEIVERS                                                         syscall.Errno = 11005\n\tWSA_QOS_SENDERS                                                           syscall.Errno = 11006\n\tWSA_QOS_NO_SENDERS                                                        syscall.Errno = 11007\n\tWSA_QOS_NO_RECEIVERS                                                      syscall.Errno = 11008\n\tWSA_QOS_REQUEST_CONFIRMED                                                 syscall.Errno = 11009\n\tWSA_QOS_ADMISSION_FAILURE                                                 syscall.Errno = 11010\n\tWSA_QOS_POLICY_FAILURE                                                    syscall.Errno = 11011\n\tWSA_QOS_BAD_STYLE                                                         syscall.Errno = 11012\n\tWSA_QOS_BAD_OBJECT                                                        syscall.Errno = 11013\n\tWSA_QOS_TRAFFIC_CTRL_ERROR                                                syscall.Errno = 11014\n\tWSA_QOS_GENERIC_ERROR                                                     syscall.Errno = 11015\n\tWSA_QOS_ESERVICETYPE                                                      syscall.Errno = 11016\n\tWSA_QOS_EFLOWSPEC                                                         syscall.Errno = 11017\n\tWSA_QOS_EPROVSPECBUF                                                      syscall.Errno = 11018\n\tWSA_QOS_EFILTERSTYLE                                                      syscall.Errno = 11019\n\tWSA_QOS_EFILTERTYPE                                                       syscall.Errno = 11020\n\tWSA_QOS_EFILTERCOUNT                                                      syscall.Errno = 11021\n\tWSA_QOS_EOBJLENGTH                                                        syscall.Errno = 11022\n\tWSA_QOS_EFLOWCOUNT                                                        syscall.Errno = 11023\n\tWSA_QOS_EUNKOWNPSOBJ                                                      syscall.Errno = 11024\n\tWSA_QOS_EPOLICYOBJ                                                        syscall.Errno = 11025\n\tWSA_QOS_EFLOWDESC                                                         syscall.Errno = 11026\n\tWSA_QOS_EPSFLOWSPEC                                                       syscall.Errno = 11027\n\tWSA_QOS_EPSFILTERSPEC                                                     syscall.Errno = 11028\n\tWSA_QOS_ESDMODEOBJ                                                        syscall.Errno = 11029\n\tWSA_QOS_ESHAPERATEOBJ                                                     syscall.Errno = 11030\n\tWSA_QOS_RESERVED_PETYPE                                                   syscall.Errno = 11031\n\tWSA_SECURE_HOST_NOT_FOUND                                                 syscall.Errno = 11032\n\tWSA_IPSEC_NAME_POLICY_ERROR                                               syscall.Errno = 11033\n\tERROR_IPSEC_QM_POLICY_EXISTS                                              syscall.Errno = 13000\n\tERROR_IPSEC_QM_POLICY_NOT_FOUND                                           syscall.Errno = 13001\n\tERROR_IPSEC_QM_POLICY_IN_USE                                              syscall.Errno = 13002\n\tERROR_IPSEC_MM_POLICY_EXISTS                                              syscall.Errno = 13003\n\tERROR_IPSEC_MM_POLICY_NOT_FOUND                                           syscall.Errno = 13004\n\tERROR_IPSEC_MM_POLICY_IN_USE                                              syscall.Errno = 13005\n\tERROR_IPSEC_MM_FILTER_EXISTS                                              syscall.Errno = 13006\n\tERROR_IPSEC_MM_FILTER_NOT_FOUND                                           syscall.Errno = 13007\n\tERROR_IPSEC_TRANSPORT_FILTER_EXISTS                                       syscall.Errno = 13008\n\tERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND                                    syscall.Errno = 13009\n\tERROR_IPSEC_MM_AUTH_EXISTS                                                syscall.Errno = 13010\n\tERROR_IPSEC_MM_AUTH_NOT_FOUND                                             syscall.Errno = 13011\n\tERROR_IPSEC_MM_AUTH_IN_USE                                                syscall.Errno = 13012\n\tERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND                                   syscall.Errno = 13013\n\tERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND                                     syscall.Errno = 13014\n\tERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND                                   syscall.Errno = 13015\n\tERROR_IPSEC_TUNNEL_FILTER_EXISTS                                          syscall.Errno = 13016\n\tERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND                                       syscall.Errno = 13017\n\tERROR_IPSEC_MM_FILTER_PENDING_DELETION                                    syscall.Errno = 13018\n\tERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION                             syscall.Errno = 13019\n\tERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION                                syscall.Errno = 13020\n\tERROR_IPSEC_MM_POLICY_PENDING_DELETION                                    syscall.Errno = 13021\n\tERROR_IPSEC_MM_AUTH_PENDING_DELETION                                      syscall.Errno = 13022\n\tERROR_IPSEC_QM_POLICY_PENDING_DELETION                                    syscall.Errno = 13023\n\tWARNING_IPSEC_MM_POLICY_PRUNED                                            syscall.Errno = 13024\n\tWARNING_IPSEC_QM_POLICY_PRUNED                                            syscall.Errno = 13025\n\tERROR_IPSEC_IKE_NEG_STATUS_BEGIN                                          syscall.Errno = 13800\n\tERROR_IPSEC_IKE_AUTH_FAIL                                                 syscall.Errno = 13801\n\tERROR_IPSEC_IKE_ATTRIB_FAIL                                               syscall.Errno = 13802\n\tERROR_IPSEC_IKE_NEGOTIATION_PENDING                                       syscall.Errno = 13803\n\tERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR                                  syscall.Errno = 13804\n\tERROR_IPSEC_IKE_TIMED_OUT                                                 syscall.Errno = 13805\n\tERROR_IPSEC_IKE_NO_CERT                                                   syscall.Errno = 13806\n\tERROR_IPSEC_IKE_SA_DELETED                                                syscall.Errno = 13807\n\tERROR_IPSEC_IKE_SA_REAPED                                                 syscall.Errno = 13808\n\tERROR_IPSEC_IKE_MM_ACQUIRE_DROP                                           syscall.Errno = 13809\n\tERROR_IPSEC_IKE_QM_ACQUIRE_DROP                                           syscall.Errno = 13810\n\tERROR_IPSEC_IKE_QUEUE_DROP_MM                                             syscall.Errno = 13811\n\tERROR_IPSEC_IKE_QUEUE_DROP_NO_MM                                          syscall.Errno = 13812\n\tERROR_IPSEC_IKE_DROP_NO_RESPONSE                                          syscall.Errno = 13813\n\tERROR_IPSEC_IKE_MM_DELAY_DROP                                             syscall.Errno = 13814\n\tERROR_IPSEC_IKE_QM_DELAY_DROP                                             syscall.Errno = 13815\n\tERROR_IPSEC_IKE_ERROR                                                     syscall.Errno = 13816\n\tERROR_IPSEC_IKE_CRL_FAILED                                                syscall.Errno = 13817\n\tERROR_IPSEC_IKE_INVALID_KEY_USAGE                                         syscall.Errno = 13818\n\tERROR_IPSEC_IKE_INVALID_CERT_TYPE                                         syscall.Errno = 13819\n\tERROR_IPSEC_IKE_NO_PRIVATE_KEY                                            syscall.Errno = 13820\n\tERROR_IPSEC_IKE_SIMULTANEOUS_REKEY                                        syscall.Errno = 13821\n\tERROR_IPSEC_IKE_DH_FAIL                                                   syscall.Errno = 13822\n\tERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED                           syscall.Errno = 13823\n\tERROR_IPSEC_IKE_INVALID_HEADER                                            syscall.Errno = 13824\n\tERROR_IPSEC_IKE_NO_POLICY                                                 syscall.Errno = 13825\n\tERROR_IPSEC_IKE_INVALID_SIGNATURE                                         syscall.Errno = 13826\n\tERROR_IPSEC_IKE_KERBEROS_ERROR                                            syscall.Errno = 13827\n\tERROR_IPSEC_IKE_NO_PUBLIC_KEY                                             syscall.Errno = 13828\n\tERROR_IPSEC_IKE_PROCESS_ERR                                               syscall.Errno = 13829\n\tERROR_IPSEC_IKE_PROCESS_ERR_SA                                            syscall.Errno = 13830\n\tERROR_IPSEC_IKE_PROCESS_ERR_PROP                                          syscall.Errno = 13831\n\tERROR_IPSEC_IKE_PROCESS_ERR_TRANS                                         syscall.Errno = 13832\n\tERROR_IPSEC_IKE_PROCESS_ERR_KE                                            syscall.Errno = 13833\n\tERROR_IPSEC_IKE_PROCESS_ERR_ID                                            syscall.Errno = 13834\n\tERROR_IPSEC_IKE_PROCESS_ERR_CERT                                          syscall.Errno = 13835\n\tERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ                                      syscall.Errno = 13836\n\tERROR_IPSEC_IKE_PROCESS_ERR_HASH                                          syscall.Errno = 13837\n\tERROR_IPSEC_IKE_PROCESS_ERR_SIG                                           syscall.Errno = 13838\n\tERROR_IPSEC_IKE_PROCESS_ERR_NONCE                                         syscall.Errno = 13839\n\tERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY                                        syscall.Errno = 13840\n\tERROR_IPSEC_IKE_PROCESS_ERR_DELETE                                        syscall.Errno = 13841\n\tERROR_IPSEC_IKE_PROCESS_ERR_VENDOR                                        syscall.Errno = 13842\n\tERROR_IPSEC_IKE_INVALID_PAYLOAD                                           syscall.Errno = 13843\n\tERROR_IPSEC_IKE_LOAD_SOFT_SA                                              syscall.Errno = 13844\n\tERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN                                         syscall.Errno = 13845\n\tERROR_IPSEC_IKE_INVALID_COOKIE                                            syscall.Errno = 13846\n\tERROR_IPSEC_IKE_NO_PEER_CERT                                              syscall.Errno = 13847\n\tERROR_IPSEC_IKE_PEER_CRL_FAILED                                           syscall.Errno = 13848\n\tERROR_IPSEC_IKE_POLICY_CHANGE                                             syscall.Errno = 13849\n\tERROR_IPSEC_IKE_NO_MM_POLICY                                              syscall.Errno = 13850\n\tERROR_IPSEC_IKE_NOTCBPRIV                                                 syscall.Errno = 13851\n\tERROR_IPSEC_IKE_SECLOADFAIL                                               syscall.Errno = 13852\n\tERROR_IPSEC_IKE_FAILSSPINIT                                               syscall.Errno = 13853\n\tERROR_IPSEC_IKE_FAILQUERYSSP                                              syscall.Errno = 13854\n\tERROR_IPSEC_IKE_SRVACQFAIL                                                syscall.Errno = 13855\n\tERROR_IPSEC_IKE_SRVQUERYCRED                                              syscall.Errno = 13856\n\tERROR_IPSEC_IKE_GETSPIFAIL                                                syscall.Errno = 13857\n\tERROR_IPSEC_IKE_INVALID_FILTER                                            syscall.Errno = 13858\n\tERROR_IPSEC_IKE_OUT_OF_MEMORY                                             syscall.Errno = 13859\n\tERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED                                     syscall.Errno = 13860\n\tERROR_IPSEC_IKE_INVALID_POLICY                                            syscall.Errno = 13861\n\tERROR_IPSEC_IKE_UNKNOWN_DOI                                               syscall.Errno = 13862\n\tERROR_IPSEC_IKE_INVALID_SITUATION                                         syscall.Errno = 13863\n\tERROR_IPSEC_IKE_DH_FAILURE                                                syscall.Errno = 13864\n\tERROR_IPSEC_IKE_INVALID_GROUP                                             syscall.Errno = 13865\n\tERROR_IPSEC_IKE_ENCRYPT                                                   syscall.Errno = 13866\n\tERROR_IPSEC_IKE_DECRYPT                                                   syscall.Errno = 13867\n\tERROR_IPSEC_IKE_POLICY_MATCH                                              syscall.Errno = 13868\n\tERROR_IPSEC_IKE_UNSUPPORTED_ID                                            syscall.Errno = 13869\n\tERROR_IPSEC_IKE_INVALID_HASH                                              syscall.Errno = 13870\n\tERROR_IPSEC_IKE_INVALID_HASH_ALG                                          syscall.Errno = 13871\n\tERROR_IPSEC_IKE_INVALID_HASH_SIZE                                         syscall.Errno = 13872\n\tERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG                                       syscall.Errno = 13873\n\tERROR_IPSEC_IKE_INVALID_AUTH_ALG                                          syscall.Errno = 13874\n\tERROR_IPSEC_IKE_INVALID_SIG                                               syscall.Errno = 13875\n\tERROR_IPSEC_IKE_LOAD_FAILED                                               syscall.Errno = 13876\n\tERROR_IPSEC_IKE_RPC_DELETE                                                syscall.Errno = 13877\n\tERROR_IPSEC_IKE_BENIGN_REINIT                                             syscall.Errno = 13878\n\tERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY                         syscall.Errno = 13879\n\tERROR_IPSEC_IKE_INVALID_MAJOR_VERSION                                     syscall.Errno = 13880\n\tERROR_IPSEC_IKE_INVALID_CERT_KEYLEN                                       syscall.Errno = 13881\n\tERROR_IPSEC_IKE_MM_LIMIT                                                  syscall.Errno = 13882\n\tERROR_IPSEC_IKE_NEGOTIATION_DISABLED                                      syscall.Errno = 13883\n\tERROR_IPSEC_IKE_QM_LIMIT                                                  syscall.Errno = 13884\n\tERROR_IPSEC_IKE_MM_EXPIRED                                                syscall.Errno = 13885\n\tERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID                                   syscall.Errno = 13886\n\tERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH                                syscall.Errno = 13887\n\tERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID                                     syscall.Errno = 13888\n\tERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD                                      syscall.Errno = 13889\n\tERROR_IPSEC_IKE_DOS_COOKIE_SENT                                           syscall.Errno = 13890\n\tERROR_IPSEC_IKE_SHUTTING_DOWN                                             syscall.Errno = 13891\n\tERROR_IPSEC_IKE_CGA_AUTH_FAILED                                           syscall.Errno = 13892\n\tERROR_IPSEC_IKE_PROCESS_ERR_NATOA                                         syscall.Errno = 13893\n\tERROR_IPSEC_IKE_INVALID_MM_FOR_QM                                         syscall.Errno = 13894\n\tERROR_IPSEC_IKE_QM_EXPIRED                                                syscall.Errno = 13895\n\tERROR_IPSEC_IKE_TOO_MANY_FILTERS                                          syscall.Errno = 13896\n\tERROR_IPSEC_IKE_NEG_STATUS_END                                            syscall.Errno = 13897\n\tERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL                                     syscall.Errno = 13898\n\tERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE                               syscall.Errno = 13899\n\tERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING                                syscall.Errno = 13900\n\tERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING                  syscall.Errno = 13901\n\tERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS                                      syscall.Errno = 13902\n\tERROR_IPSEC_IKE_RATELIMIT_DROP                                            syscall.Errno = 13903\n\tERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE                                syscall.Errno = 13904\n\tERROR_IPSEC_IKE_AUTHORIZATION_FAILURE                                     syscall.Errno = 13905\n\tERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE                         syscall.Errno = 13906\n\tERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY                 syscall.Errno = 13907\n\tERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE             syscall.Errno = 13908\n\tERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END                                   syscall.Errno = 13909\n\tERROR_IPSEC_BAD_SPI                                                       syscall.Errno = 13910\n\tERROR_IPSEC_SA_LIFETIME_EXPIRED                                           syscall.Errno = 13911\n\tERROR_IPSEC_WRONG_SA                                                      syscall.Errno = 13912\n\tERROR_IPSEC_REPLAY_CHECK_FAILED                                           syscall.Errno = 13913\n\tERROR_IPSEC_INVALID_PACKET                                                syscall.Errno = 13914\n\tERROR_IPSEC_INTEGRITY_CHECK_FAILED                                        syscall.Errno = 13915\n\tERROR_IPSEC_CLEAR_TEXT_DROP                                               syscall.Errno = 13916\n\tERROR_IPSEC_AUTH_FIREWALL_DROP                                            syscall.Errno = 13917\n\tERROR_IPSEC_THROTTLE_DROP                                                 syscall.Errno = 13918\n\tERROR_IPSEC_DOSP_BLOCK                                                    syscall.Errno = 13925\n\tERROR_IPSEC_DOSP_RECEIVED_MULTICAST                                       syscall.Errno = 13926\n\tERROR_IPSEC_DOSP_INVALID_PACKET                                           syscall.Errno = 13927\n\tERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED                                      syscall.Errno = 13928\n\tERROR_IPSEC_DOSP_MAX_ENTRIES                                              syscall.Errno = 13929\n\tERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED                                       syscall.Errno = 13930\n\tERROR_IPSEC_DOSP_NOT_INSTALLED                                            syscall.Errno = 13931\n\tERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES                              syscall.Errno = 13932\n\tERROR_SXS_SECTION_NOT_FOUND                                               syscall.Errno = 14000\n\tERROR_SXS_CANT_GEN_ACTCTX                                                 syscall.Errno = 14001\n\tERROR_SXS_INVALID_ACTCTXDATA_FORMAT                                       syscall.Errno = 14002\n\tERROR_SXS_ASSEMBLY_NOT_FOUND                                              syscall.Errno = 14003\n\tERROR_SXS_MANIFEST_FORMAT_ERROR                                           syscall.Errno = 14004\n\tERROR_SXS_MANIFEST_PARSE_ERROR                                            syscall.Errno = 14005\n\tERROR_SXS_ACTIVATION_CONTEXT_DISABLED                                     syscall.Errno = 14006\n\tERROR_SXS_KEY_NOT_FOUND                                                   syscall.Errno = 14007\n\tERROR_SXS_VERSION_CONFLICT                                                syscall.Errno = 14008\n\tERROR_SXS_WRONG_SECTION_TYPE                                              syscall.Errno = 14009\n\tERROR_SXS_THREAD_QUERIES_DISABLED                                         syscall.Errno = 14010\n\tERROR_SXS_PROCESS_DEFAULT_ALREADY_SET                                     syscall.Errno = 14011\n\tERROR_SXS_UNKNOWN_ENCODING_GROUP                                          syscall.Errno = 14012\n\tERROR_SXS_UNKNOWN_ENCODING                                                syscall.Errno = 14013\n\tERROR_SXS_INVALID_XML_NAMESPACE_URI                                       syscall.Errno = 14014\n\tERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED                          syscall.Errno = 14015\n\tERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED                          syscall.Errno = 14016\n\tERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE                             syscall.Errno = 14017\n\tERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE                     syscall.Errno = 14018\n\tERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE                     syscall.Errno = 14019\n\tERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT                  syscall.Errno = 14020\n\tERROR_SXS_DUPLICATE_DLL_NAME                                              syscall.Errno = 14021\n\tERROR_SXS_DUPLICATE_WINDOWCLASS_NAME                                      syscall.Errno = 14022\n\tERROR_SXS_DUPLICATE_CLSID                                                 syscall.Errno = 14023\n\tERROR_SXS_DUPLICATE_IID                                                   syscall.Errno = 14024\n\tERROR_SXS_DUPLICATE_TLBID                                                 syscall.Errno = 14025\n\tERROR_SXS_DUPLICATE_PROGID                                                syscall.Errno = 14026\n\tERROR_SXS_DUPLICATE_ASSEMBLY_NAME                                         syscall.Errno = 14027\n\tERROR_SXS_FILE_HASH_MISMATCH                                              syscall.Errno = 14028\n\tERROR_SXS_POLICY_PARSE_ERROR                                              syscall.Errno = 14029\n\tERROR_SXS_XML_E_MISSINGQUOTE                                              syscall.Errno = 14030\n\tERROR_SXS_XML_E_COMMENTSYNTAX                                             syscall.Errno = 14031\n\tERROR_SXS_XML_E_BADSTARTNAMECHAR                                          syscall.Errno = 14032\n\tERROR_SXS_XML_E_BADNAMECHAR                                               syscall.Errno = 14033\n\tERROR_SXS_XML_E_BADCHARINSTRING                                           syscall.Errno = 14034\n\tERROR_SXS_XML_E_XMLDECLSYNTAX                                             syscall.Errno = 14035\n\tERROR_SXS_XML_E_BADCHARDATA                                               syscall.Errno = 14036\n\tERROR_SXS_XML_E_MISSINGWHITESPACE                                         syscall.Errno = 14037\n\tERROR_SXS_XML_E_EXPECTINGTAGEND                                           syscall.Errno = 14038\n\tERROR_SXS_XML_E_MISSINGSEMICOLON                                          syscall.Errno = 14039\n\tERROR_SXS_XML_E_UNBALANCEDPAREN                                           syscall.Errno = 14040\n\tERROR_SXS_XML_E_INTERNALERROR                                             syscall.Errno = 14041\n\tERROR_SXS_XML_E_UNEXPECTED_WHITESPACE                                     syscall.Errno = 14042\n\tERROR_SXS_XML_E_INCOMPLETE_ENCODING                                       syscall.Errno = 14043\n\tERROR_SXS_XML_E_MISSING_PAREN                                             syscall.Errno = 14044\n\tERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE                                       syscall.Errno = 14045\n\tERROR_SXS_XML_E_MULTIPLE_COLONS                                           syscall.Errno = 14046\n\tERROR_SXS_XML_E_INVALID_DECIMAL                                           syscall.Errno = 14047\n\tERROR_SXS_XML_E_INVALID_HEXIDECIMAL                                       syscall.Errno = 14048\n\tERROR_SXS_XML_E_INVALID_UNICODE                                           syscall.Errno = 14049\n\tERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK                                  syscall.Errno = 14050\n\tERROR_SXS_XML_E_UNEXPECTEDENDTAG                                          syscall.Errno = 14051\n\tERROR_SXS_XML_E_UNCLOSEDTAG                                               syscall.Errno = 14052\n\tERROR_SXS_XML_E_DUPLICATEATTRIBUTE                                        syscall.Errno = 14053\n\tERROR_SXS_XML_E_MULTIPLEROOTS                                             syscall.Errno = 14054\n\tERROR_SXS_XML_E_INVALIDATROOTLEVEL                                        syscall.Errno = 14055\n\tERROR_SXS_XML_E_BADXMLDECL                                                syscall.Errno = 14056\n\tERROR_SXS_XML_E_MISSINGROOT                                               syscall.Errno = 14057\n\tERROR_SXS_XML_E_UNEXPECTEDEOF                                             syscall.Errno = 14058\n\tERROR_SXS_XML_E_BADPEREFINSUBSET                                          syscall.Errno = 14059\n\tERROR_SXS_XML_E_UNCLOSEDSTARTTAG                                          syscall.Errno = 14060\n\tERROR_SXS_XML_E_UNCLOSEDENDTAG                                            syscall.Errno = 14061\n\tERROR_SXS_XML_E_UNCLOSEDSTRING                                            syscall.Errno = 14062\n\tERROR_SXS_XML_E_UNCLOSEDCOMMENT                                           syscall.Errno = 14063\n\tERROR_SXS_XML_E_UNCLOSEDDECL                                              syscall.Errno = 14064\n\tERROR_SXS_XML_E_UNCLOSEDCDATA                                             syscall.Errno = 14065\n\tERROR_SXS_XML_E_RESERVEDNAMESPACE                                         syscall.Errno = 14066\n\tERROR_SXS_XML_E_INVALIDENCODING                                           syscall.Errno = 14067\n\tERROR_SXS_XML_E_INVALIDSWITCH                                             syscall.Errno = 14068\n\tERROR_SXS_XML_E_BADXMLCASE                                                syscall.Errno = 14069\n\tERROR_SXS_XML_E_INVALID_STANDALONE                                        syscall.Errno = 14070\n\tERROR_SXS_XML_E_UNEXPECTED_STANDALONE                                     syscall.Errno = 14071\n\tERROR_SXS_XML_E_INVALID_VERSION                                           syscall.Errno = 14072\n\tERROR_SXS_XML_E_MISSINGEQUALS                                             syscall.Errno = 14073\n\tERROR_SXS_PROTECTION_RECOVERY_FAILED                                      syscall.Errno = 14074\n\tERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT                                 syscall.Errno = 14075\n\tERROR_SXS_PROTECTION_CATALOG_NOT_VALID                                    syscall.Errno = 14076\n\tERROR_SXS_UNTRANSLATABLE_HRESULT                                          syscall.Errno = 14077\n\tERROR_SXS_PROTECTION_CATALOG_FILE_MISSING                                 syscall.Errno = 14078\n\tERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE                             syscall.Errno = 14079\n\tERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME                        syscall.Errno = 14080\n\tERROR_SXS_ASSEMBLY_MISSING                                                syscall.Errno = 14081\n\tERROR_SXS_CORRUPT_ACTIVATION_STACK                                        syscall.Errno = 14082\n\tERROR_SXS_CORRUPTION                                                      syscall.Errno = 14083\n\tERROR_SXS_EARLY_DEACTIVATION                                              syscall.Errno = 14084\n\tERROR_SXS_INVALID_DEACTIVATION                                            syscall.Errno = 14085\n\tERROR_SXS_MULTIPLE_DEACTIVATION                                           syscall.Errno = 14086\n\tERROR_SXS_PROCESS_TERMINATION_REQUESTED                                   syscall.Errno = 14087\n\tERROR_SXS_RELEASE_ACTIVATION_CONTEXT                                      syscall.Errno = 14088\n\tERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY                         syscall.Errno = 14089\n\tERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE                                syscall.Errno = 14090\n\tERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME                                 syscall.Errno = 14091\n\tERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE                                    syscall.Errno = 14092\n\tERROR_SXS_IDENTITY_PARSE_ERROR                                            syscall.Errno = 14093\n\tERROR_MALFORMED_SUBSTITUTION_STRING                                       syscall.Errno = 14094\n\tERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN                                      syscall.Errno = 14095\n\tERROR_UNMAPPED_SUBSTITUTION_STRING                                        syscall.Errno = 14096\n\tERROR_SXS_ASSEMBLY_NOT_LOCKED                                             syscall.Errno = 14097\n\tERROR_SXS_COMPONENT_STORE_CORRUPT                                         syscall.Errno = 14098\n\tERROR_ADVANCED_INSTALLER_FAILED                                           syscall.Errno = 14099\n\tERROR_XML_ENCODING_MISMATCH                                               syscall.Errno = 14100\n\tERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT                   syscall.Errno = 14101\n\tERROR_SXS_IDENTITIES_DIFFERENT                                            syscall.Errno = 14102\n\tERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT                                    syscall.Errno = 14103\n\tERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY                                       syscall.Errno = 14104\n\tERROR_SXS_MANIFEST_TOO_BIG                                                syscall.Errno = 14105\n\tERROR_SXS_SETTING_NOT_REGISTERED                                          syscall.Errno = 14106\n\tERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE                                  syscall.Errno = 14107\n\tERROR_SMI_PRIMITIVE_INSTALLER_FAILED                                      syscall.Errno = 14108\n\tERROR_GENERIC_COMMAND_FAILED                                              syscall.Errno = 14109\n\tERROR_SXS_FILE_HASH_MISSING                                               syscall.Errno = 14110\n\tERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS                                     syscall.Errno = 14111\n\tERROR_EVT_INVALID_CHANNEL_PATH                                            syscall.Errno = 15000\n\tERROR_EVT_INVALID_QUERY                                                   syscall.Errno = 15001\n\tERROR_EVT_PUBLISHER_METADATA_NOT_FOUND                                    syscall.Errno = 15002\n\tERROR_EVT_EVENT_TEMPLATE_NOT_FOUND                                        syscall.Errno = 15003\n\tERROR_EVT_INVALID_PUBLISHER_NAME                                          syscall.Errno = 15004\n\tERROR_EVT_INVALID_EVENT_DATA                                              syscall.Errno = 15005\n\tERROR_EVT_CHANNEL_NOT_FOUND                                               syscall.Errno = 15007\n\tERROR_EVT_MALFORMED_XML_TEXT                                              syscall.Errno = 15008\n\tERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL                                  syscall.Errno = 15009\n\tERROR_EVT_CONFIGURATION_ERROR                                             syscall.Errno = 15010\n\tERROR_EVT_QUERY_RESULT_STALE                                              syscall.Errno = 15011\n\tERROR_EVT_QUERY_RESULT_INVALID_POSITION                                   syscall.Errno = 15012\n\tERROR_EVT_NON_VALIDATING_MSXML                                            syscall.Errno = 15013\n\tERROR_EVT_FILTER_ALREADYSCOPED                                            syscall.Errno = 15014\n\tERROR_EVT_FILTER_NOTELTSET                                                syscall.Errno = 15015\n\tERROR_EVT_FILTER_INVARG                                                   syscall.Errno = 15016\n\tERROR_EVT_FILTER_INVTEST                                                  syscall.Errno = 15017\n\tERROR_EVT_FILTER_INVTYPE                                                  syscall.Errno = 15018\n\tERROR_EVT_FILTER_PARSEERR                                                 syscall.Errno = 15019\n\tERROR_EVT_FILTER_UNSUPPORTEDOP                                            syscall.Errno = 15020\n\tERROR_EVT_FILTER_UNEXPECTEDTOKEN                                          syscall.Errno = 15021\n\tERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL                   syscall.Errno = 15022\n\tERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE                                  syscall.Errno = 15023\n\tERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE                                syscall.Errno = 15024\n\tERROR_EVT_CHANNEL_CANNOT_ACTIVATE                                         syscall.Errno = 15025\n\tERROR_EVT_FILTER_TOO_COMPLEX                                              syscall.Errno = 15026\n\tERROR_EVT_MESSAGE_NOT_FOUND                                               syscall.Errno = 15027\n\tERROR_EVT_MESSAGE_ID_NOT_FOUND                                            syscall.Errno = 15028\n\tERROR_EVT_UNRESOLVED_VALUE_INSERT                                         syscall.Errno = 15029\n\tERROR_EVT_UNRESOLVED_PARAMETER_INSERT                                     syscall.Errno = 15030\n\tERROR_EVT_MAX_INSERTS_REACHED                                             syscall.Errno = 15031\n\tERROR_EVT_EVENT_DEFINITION_NOT_FOUND                                      syscall.Errno = 15032\n\tERROR_EVT_MESSAGE_LOCALE_NOT_FOUND                                        syscall.Errno = 15033\n\tERROR_EVT_VERSION_TOO_OLD                                                 syscall.Errno = 15034\n\tERROR_EVT_VERSION_TOO_NEW                                                 syscall.Errno = 15035\n\tERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY                                    syscall.Errno = 15036\n\tERROR_EVT_PUBLISHER_DISABLED                                              syscall.Errno = 15037\n\tERROR_EVT_FILTER_OUT_OF_RANGE                                             syscall.Errno = 15038\n\tERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE                                     syscall.Errno = 15080\n\tERROR_EC_LOG_DISABLED                                                     syscall.Errno = 15081\n\tERROR_EC_CIRCULAR_FORWARDING                                              syscall.Errno = 15082\n\tERROR_EC_CREDSTORE_FULL                                                   syscall.Errno = 15083\n\tERROR_EC_CRED_NOT_FOUND                                                   syscall.Errno = 15084\n\tERROR_EC_NO_ACTIVE_CHANNEL                                                syscall.Errno = 15085\n\tERROR_MUI_FILE_NOT_FOUND                                                  syscall.Errno = 15100\n\tERROR_MUI_INVALID_FILE                                                    syscall.Errno = 15101\n\tERROR_MUI_INVALID_RC_CONFIG                                               syscall.Errno = 15102\n\tERROR_MUI_INVALID_LOCALE_NAME                                             syscall.Errno = 15103\n\tERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME                                   syscall.Errno = 15104\n\tERROR_MUI_FILE_NOT_LOADED                                                 syscall.Errno = 15105\n\tERROR_RESOURCE_ENUM_USER_STOP                                             syscall.Errno = 15106\n\tERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED                               syscall.Errno = 15107\n\tERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME                                syscall.Errno = 15108\n\tERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE                          syscall.Errno = 15110\n\tERROR_MRM_INVALID_PRICONFIG                                               syscall.Errno = 15111\n\tERROR_MRM_INVALID_FILE_TYPE                                               syscall.Errno = 15112\n\tERROR_MRM_UNKNOWN_QUALIFIER                                               syscall.Errno = 15113\n\tERROR_MRM_INVALID_QUALIFIER_VALUE                                         syscall.Errno = 15114\n\tERROR_MRM_NO_CANDIDATE                                                    syscall.Errno = 15115\n\tERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE                                   syscall.Errno = 15116\n\tERROR_MRM_RESOURCE_TYPE_MISMATCH                                          syscall.Errno = 15117\n\tERROR_MRM_DUPLICATE_MAP_NAME                                              syscall.Errno = 15118\n\tERROR_MRM_DUPLICATE_ENTRY                                                 syscall.Errno = 15119\n\tERROR_MRM_INVALID_RESOURCE_IDENTIFIER                                     syscall.Errno = 15120\n\tERROR_MRM_FILEPATH_TOO_LONG                                               syscall.Errno = 15121\n\tERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE                                      syscall.Errno = 15122\n\tERROR_MRM_INVALID_PRI_FILE                                                syscall.Errno = 15126\n\tERROR_MRM_NAMED_RESOURCE_NOT_FOUND                                        syscall.Errno = 15127\n\tERROR_MRM_MAP_NOT_FOUND                                                   syscall.Errno = 15135\n\tERROR_MRM_UNSUPPORTED_PROFILE_TYPE                                        syscall.Errno = 15136\n\tERROR_MRM_INVALID_QUALIFIER_OPERATOR                                      syscall.Errno = 15137\n\tERROR_MRM_INDETERMINATE_QUALIFIER_VALUE                                   syscall.Errno = 15138\n\tERROR_MRM_AUTOMERGE_ENABLED                                               syscall.Errno = 15139\n\tERROR_MRM_TOO_MANY_RESOURCES                                              syscall.Errno = 15140\n\tERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE                                 syscall.Errno = 15141\n\tERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE                  syscall.Errno = 15142\n\tERROR_MRM_NO_CURRENT_VIEW_ON_THREAD                                       syscall.Errno = 15143\n\tERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST                            syscall.Errno = 15144\n\tERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT                         syscall.Errno = 15145\n\tERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE                              syscall.Errno = 15146\n\tERROR_MRM_GENERATION_COUNT_MISMATCH                                       syscall.Errno = 15147\n\tERROR_PRI_MERGE_VERSION_MISMATCH                                          syscall.Errno = 15148\n\tERROR_PRI_MERGE_MISSING_SCHEMA                                            syscall.Errno = 15149\n\tERROR_PRI_MERGE_LOAD_FILE_FAILED                                          syscall.Errno = 15150\n\tERROR_PRI_MERGE_ADD_FILE_FAILED                                           syscall.Errno = 15151\n\tERROR_PRI_MERGE_WRITE_FILE_FAILED                                         syscall.Errno = 15152\n\tERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED                     syscall.Errno = 15153\n\tERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED                        syscall.Errno = 15154\n\tERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED                               syscall.Errno = 15155\n\tERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED                                     syscall.Errno = 15156\n\tERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED                                 syscall.Errno = 15157\n\tERROR_PRI_MERGE_INVALID_FILE_NAME                                         syscall.Errno = 15158\n\tERROR_MRM_PACKAGE_NOT_FOUND                                               syscall.Errno = 15159\n\tERROR_MRM_MISSING_DEFAULT_LANGUAGE                                        syscall.Errno = 15160\n\tERROR_MCA_INVALID_CAPABILITIES_STRING                                     syscall.Errno = 15200\n\tERROR_MCA_INVALID_VCP_VERSION                                             syscall.Errno = 15201\n\tERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION                             syscall.Errno = 15202\n\tERROR_MCA_MCCS_VERSION_MISMATCH                                           syscall.Errno = 15203\n\tERROR_MCA_UNSUPPORTED_MCCS_VERSION                                        syscall.Errno = 15204\n\tERROR_MCA_INTERNAL_ERROR                                                  syscall.Errno = 15205\n\tERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED                                syscall.Errno = 15206\n\tERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE                                   syscall.Errno = 15207\n\tERROR_AMBIGUOUS_SYSTEM_DEVICE                                             syscall.Errno = 15250\n\tERROR_SYSTEM_DEVICE_NOT_FOUND                                             syscall.Errno = 15299\n\tERROR_HASH_NOT_SUPPORTED                                                  syscall.Errno = 15300\n\tERROR_HASH_NOT_PRESENT                                                    syscall.Errno = 15301\n\tERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED                                syscall.Errno = 15321\n\tERROR_GPIO_CLIENT_INFORMATION_INVALID                                     syscall.Errno = 15322\n\tERROR_GPIO_VERSION_NOT_SUPPORTED                                          syscall.Errno = 15323\n\tERROR_GPIO_INVALID_REGISTRATION_PACKET                                    syscall.Errno = 15324\n\tERROR_GPIO_OPERATION_DENIED                                               syscall.Errno = 15325\n\tERROR_GPIO_INCOMPATIBLE_CONNECT_MODE                                      syscall.Errno = 15326\n\tERROR_GPIO_INTERRUPT_ALREADY_UNMASKED                                     syscall.Errno = 15327\n\tERROR_CANNOT_SWITCH_RUNLEVEL                                              syscall.Errno = 15400\n\tERROR_INVALID_RUNLEVEL_SETTING                                            syscall.Errno = 15401\n\tERROR_RUNLEVEL_SWITCH_TIMEOUT                                             syscall.Errno = 15402\n\tERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT                                       syscall.Errno = 15403\n\tERROR_RUNLEVEL_SWITCH_IN_PROGRESS                                         syscall.Errno = 15404\n\tERROR_SERVICES_FAILED_AUTOSTART                                           syscall.Errno = 15405\n\tERROR_COM_TASK_STOP_PENDING                                               syscall.Errno = 15501\n\tERROR_INSTALL_OPEN_PACKAGE_FAILED                                         syscall.Errno = 15600\n\tERROR_INSTALL_PACKAGE_NOT_FOUND                                           syscall.Errno = 15601\n\tERROR_INSTALL_INVALID_PACKAGE                                             syscall.Errno = 15602\n\tERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED                                   syscall.Errno = 15603\n\tERROR_INSTALL_OUT_OF_DISK_SPACE                                           syscall.Errno = 15604\n\tERROR_INSTALL_NETWORK_FAILURE                                             syscall.Errno = 15605\n\tERROR_INSTALL_REGISTRATION_FAILURE                                        syscall.Errno = 15606\n\tERROR_INSTALL_DEREGISTRATION_FAILURE                                      syscall.Errno = 15607\n\tERROR_INSTALL_CANCEL                                                      syscall.Errno = 15608\n\tERROR_INSTALL_FAILED                                                      syscall.Errno = 15609\n\tERROR_REMOVE_FAILED                                                       syscall.Errno = 15610\n\tERROR_PACKAGE_ALREADY_EXISTS                                              syscall.Errno = 15611\n\tERROR_NEEDS_REMEDIATION                                                   syscall.Errno = 15612\n\tERROR_INSTALL_PREREQUISITE_FAILED                                         syscall.Errno = 15613\n\tERROR_PACKAGE_REPOSITORY_CORRUPTED                                        syscall.Errno = 15614\n\tERROR_INSTALL_POLICY_FAILURE                                              syscall.Errno = 15615\n\tERROR_PACKAGE_UPDATING                                                    syscall.Errno = 15616\n\tERROR_DEPLOYMENT_BLOCKED_BY_POLICY                                        syscall.Errno = 15617\n\tERROR_PACKAGES_IN_USE                                                     syscall.Errno = 15618\n\tERROR_RECOVERY_FILE_CORRUPT                                               syscall.Errno = 15619\n\tERROR_INVALID_STAGED_SIGNATURE                                            syscall.Errno = 15620\n\tERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED                      syscall.Errno = 15621\n\tERROR_INSTALL_PACKAGE_DOWNGRADE                                           syscall.Errno = 15622\n\tERROR_SYSTEM_NEEDS_REMEDIATION                                            syscall.Errno = 15623\n\tERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN                                     syscall.Errno = 15624\n\tERROR_RESILIENCY_FILE_CORRUPT                                             syscall.Errno = 15625\n\tERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING                                syscall.Errno = 15626\n\tERROR_PACKAGE_MOVE_FAILED                                                 syscall.Errno = 15627\n\tERROR_INSTALL_VOLUME_NOT_EMPTY                                            syscall.Errno = 15628\n\tERROR_INSTALL_VOLUME_OFFLINE                                              syscall.Errno = 15629\n\tERROR_INSTALL_VOLUME_CORRUPT                                              syscall.Errno = 15630\n\tERROR_NEEDS_REGISTRATION                                                  syscall.Errno = 15631\n\tERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE                                syscall.Errno = 15632\n\tERROR_DEV_SIDELOAD_LIMIT_EXCEEDED                                         syscall.Errno = 15633\n\tERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE                      syscall.Errno = 15634\n\tERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM                                 syscall.Errno = 15635\n\tERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING                                   syscall.Errno = 15636\n\tERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE                   syscall.Errno = 15637\n\tERROR_PACKAGE_STAGING_ONHOLD                                              syscall.Errno = 15638\n\tERROR_INSTALL_INVALID_RELATED_SET_UPDATE                                  syscall.Errno = 15639\n\tERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY syscall.Errno = 15640\n\tERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF                                  syscall.Errno = 15641\n\tERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED        syscall.Errno = 15642\n\tERROR_PACKAGES_REPUTATION_CHECK_FAILED                                    syscall.Errno = 15643\n\tERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT                                  syscall.Errno = 15644\n\tERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED                                     syscall.Errno = 15645\n\tERROR_APPINSTALLER_ACTIVATION_BLOCKED                                     syscall.Errno = 15646\n\tERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED                        syscall.Errno = 15647\n\tERROR_APPX_RAW_DATA_WRITE_FAILED                                          syscall.Errno = 15648\n\tERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE                         syscall.Errno = 15649\n\tERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE                         syscall.Errno = 15650\n\tERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY                                syscall.Errno = 15651\n\tERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY             syscall.Errno = 15652\n\tERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER                         syscall.Errno = 15653\n\tERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED                     syscall.Errno = 15654\n\tERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE                              syscall.Errno = 15655\n\tERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES                          syscall.Errno = 15656\n\tAPPMODEL_ERROR_NO_PACKAGE                                                 syscall.Errno = 15700\n\tAPPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT                                    syscall.Errno = 15701\n\tAPPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT                                   syscall.Errno = 15702\n\tAPPMODEL_ERROR_NO_APPLICATION                                             syscall.Errno = 15703\n\tAPPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED                               syscall.Errno = 15704\n\tAPPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID                                   syscall.Errno = 15705\n\tAPPMODEL_ERROR_PACKAGE_NOT_AVAILABLE                                      syscall.Errno = 15706\n\tAPPMODEL_ERROR_NO_MUTABLE_DIRECTORY                                       syscall.Errno = 15707\n\tERROR_STATE_LOAD_STORE_FAILED                                             syscall.Errno = 15800\n\tERROR_STATE_GET_VERSION_FAILED                                            syscall.Errno = 15801\n\tERROR_STATE_SET_VERSION_FAILED                                            syscall.Errno = 15802\n\tERROR_STATE_STRUCTURED_RESET_FAILED                                       syscall.Errno = 15803\n\tERROR_STATE_OPEN_CONTAINER_FAILED                                         syscall.Errno = 15804\n\tERROR_STATE_CREATE_CONTAINER_FAILED                                       syscall.Errno = 15805\n\tERROR_STATE_DELETE_CONTAINER_FAILED                                       syscall.Errno = 15806\n\tERROR_STATE_READ_SETTING_FAILED                                           syscall.Errno = 15807\n\tERROR_STATE_WRITE_SETTING_FAILED                                          syscall.Errno = 15808\n\tERROR_STATE_DELETE_SETTING_FAILED                                         syscall.Errno = 15809\n\tERROR_STATE_QUERY_SETTING_FAILED                                          syscall.Errno = 15810\n\tERROR_STATE_READ_COMPOSITE_SETTING_FAILED                                 syscall.Errno = 15811\n\tERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED                                syscall.Errno = 15812\n\tERROR_STATE_ENUMERATE_CONTAINER_FAILED                                    syscall.Errno = 15813\n\tERROR_STATE_ENUMERATE_SETTINGS_FAILED                                     syscall.Errno = 15814\n\tERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED                   syscall.Errno = 15815\n\tERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED                             syscall.Errno = 15816\n\tERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED                              syscall.Errno = 15817\n\tERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED                            syscall.Errno = 15818\n\tERROR_API_UNAVAILABLE                                                     syscall.Errno = 15841\n\tSTORE_ERROR_UNLICENSED                                                    syscall.Errno = 15861\n\tSTORE_ERROR_UNLICENSED_USER                                               syscall.Errno = 15862\n\tSTORE_ERROR_PENDING_COM_TRANSACTION                                       syscall.Errno = 15863\n\tSTORE_ERROR_LICENSE_REVOKED                                               syscall.Errno = 15864\n\tSEVERITY_SUCCESS                                                          syscall.Errno = 0\n\tSEVERITY_ERROR                                                            syscall.Errno = 1\n\tFACILITY_NT_BIT                                                                         = 0x10000000\n\tE_NOT_SET                                                                               = ERROR_NOT_FOUND\n\tE_NOT_VALID_STATE                                                                       = ERROR_INVALID_STATE\n\tE_NOT_SUFFICIENT_BUFFER                                                                 = ERROR_INSUFFICIENT_BUFFER\n\tE_TIME_SENSITIVE_THREAD                                                                 = ERROR_TIME_SENSITIVE_THREAD\n\tE_NO_TASK_QUEUE                                                                         = ERROR_NO_TASK_QUEUE\n\tNOERROR                                                                   syscall.Errno = 0\n\tE_UNEXPECTED                                                              Handle        = 0x8000FFFF\n\tE_NOTIMPL                                                                 Handle        = 0x80004001\n\tE_OUTOFMEMORY                                                             Handle        = 0x8007000E\n\tE_INVALIDARG                                                              Handle        = 0x80070057\n\tE_NOINTERFACE                                                             Handle        = 0x80004002\n\tE_POINTER                                                                 Handle        = 0x80004003\n\tE_HANDLE                                                                  Handle        = 0x80070006\n\tE_ABORT                                                                   Handle        = 0x80004004\n\tE_FAIL                                                                    Handle        = 0x80004005\n\tE_ACCESSDENIED                                                            Handle        = 0x80070005\n\tE_PENDING                                                                 Handle        = 0x8000000A\n\tE_BOUNDS                                                                  Handle        = 0x8000000B\n\tE_CHANGED_STATE                                                           Handle        = 0x8000000C\n\tE_ILLEGAL_STATE_CHANGE                                                    Handle        = 0x8000000D\n\tE_ILLEGAL_METHOD_CALL                                                     Handle        = 0x8000000E\n\tRO_E_METADATA_NAME_NOT_FOUND                                              Handle        = 0x8000000F\n\tRO_E_METADATA_NAME_IS_NAMESPACE                                           Handle        = 0x80000010\n\tRO_E_METADATA_INVALID_TYPE_FORMAT                                         Handle        = 0x80000011\n\tRO_E_INVALID_METADATA_FILE                                                Handle        = 0x80000012\n\tRO_E_CLOSED                                                               Handle        = 0x80000013\n\tRO_E_EXCLUSIVE_WRITE                                                      Handle        = 0x80000014\n\tRO_E_CHANGE_NOTIFICATION_IN_PROGRESS                                      Handle        = 0x80000015\n\tRO_E_ERROR_STRING_NOT_FOUND                                               Handle        = 0x80000016\n\tE_STRING_NOT_NULL_TERMINATED                                              Handle        = 0x80000017\n\tE_ILLEGAL_DELEGATE_ASSIGNMENT                                             Handle        = 0x80000018\n\tE_ASYNC_OPERATION_NOT_STARTED                                             Handle        = 0x80000019\n\tE_APPLICATION_EXITING                                                     Handle        = 0x8000001A\n\tE_APPLICATION_VIEW_EXITING                                                Handle        = 0x8000001B\n\tRO_E_MUST_BE_AGILE                                                        Handle        = 0x8000001C\n\tRO_E_UNSUPPORTED_FROM_MTA                                                 Handle        = 0x8000001D\n\tRO_E_COMMITTED                                                            Handle        = 0x8000001E\n\tRO_E_BLOCKED_CROSS_ASTA_CALL                                              Handle        = 0x8000001F\n\tRO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER                                    Handle        = 0x80000020\n\tRO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER                         Handle        = 0x80000021\n\tCO_E_INIT_TLS                                                             Handle        = 0x80004006\n\tCO_E_INIT_SHARED_ALLOCATOR                                                Handle        = 0x80004007\n\tCO_E_INIT_MEMORY_ALLOCATOR                                                Handle        = 0x80004008\n\tCO_E_INIT_CLASS_CACHE                                                     Handle        = 0x80004009\n\tCO_E_INIT_RPC_CHANNEL                                                     Handle        = 0x8000400A\n\tCO_E_INIT_TLS_SET_CHANNEL_CONTROL                                         Handle        = 0x8000400B\n\tCO_E_INIT_TLS_CHANNEL_CONTROL                                             Handle        = 0x8000400C\n\tCO_E_INIT_UNACCEPTED_USER_ALLOCATOR                                       Handle        = 0x8000400D\n\tCO_E_INIT_SCM_MUTEX_EXISTS                                                Handle        = 0x8000400E\n\tCO_E_INIT_SCM_FILE_MAPPING_EXISTS                                         Handle        = 0x8000400F\n\tCO_E_INIT_SCM_MAP_VIEW_OF_FILE                                            Handle        = 0x80004010\n\tCO_E_INIT_SCM_EXEC_FAILURE                                                Handle        = 0x80004011\n\tCO_E_INIT_ONLY_SINGLE_THREADED                                            Handle        = 0x80004012\n\tCO_E_CANT_REMOTE                                                          Handle        = 0x80004013\n\tCO_E_BAD_SERVER_NAME                                                      Handle        = 0x80004014\n\tCO_E_WRONG_SERVER_IDENTITY                                                Handle        = 0x80004015\n\tCO_E_OLE1DDE_DISABLED                                                     Handle        = 0x80004016\n\tCO_E_RUNAS_SYNTAX                                                         Handle        = 0x80004017\n\tCO_E_CREATEPROCESS_FAILURE                                                Handle        = 0x80004018\n\tCO_E_RUNAS_CREATEPROCESS_FAILURE                                          Handle        = 0x80004019\n\tCO_E_RUNAS_LOGON_FAILURE                                                  Handle        = 0x8000401A\n\tCO_E_LAUNCH_PERMSSION_DENIED                                              Handle        = 0x8000401B\n\tCO_E_START_SERVICE_FAILURE                                                Handle        = 0x8000401C\n\tCO_E_REMOTE_COMMUNICATION_FAILURE                                         Handle        = 0x8000401D\n\tCO_E_SERVER_START_TIMEOUT                                                 Handle        = 0x8000401E\n\tCO_E_CLSREG_INCONSISTENT                                                  Handle        = 0x8000401F\n\tCO_E_IIDREG_INCONSISTENT                                                  Handle        = 0x80004020\n\tCO_E_NOT_SUPPORTED                                                        Handle        = 0x80004021\n\tCO_E_RELOAD_DLL                                                           Handle        = 0x80004022\n\tCO_E_MSI_ERROR                                                            Handle        = 0x80004023\n\tCO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT                             Handle        = 0x80004024\n\tCO_E_SERVER_PAUSED                                                        Handle        = 0x80004025\n\tCO_E_SERVER_NOT_PAUSED                                                    Handle        = 0x80004026\n\tCO_E_CLASS_DISABLED                                                       Handle        = 0x80004027\n\tCO_E_CLRNOTAVAILABLE                                                      Handle        = 0x80004028\n\tCO_E_ASYNC_WORK_REJECTED                                                  Handle        = 0x80004029\n\tCO_E_SERVER_INIT_TIMEOUT                                                  Handle        = 0x8000402A\n\tCO_E_NO_SECCTX_IN_ACTIVATE                                                Handle        = 0x8000402B\n\tCO_E_TRACKER_CONFIG                                                       Handle        = 0x80004030\n\tCO_E_THREADPOOL_CONFIG                                                    Handle        = 0x80004031\n\tCO_E_SXS_CONFIG                                                           Handle        = 0x80004032\n\tCO_E_MALFORMED_SPN                                                        Handle        = 0x80004033\n\tCO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN                         Handle        = 0x80004034\n\tCO_E_PREMATURE_STUB_RUNDOWN                                               Handle        = 0x80004035\n\tS_OK                                                                      Handle        = 0\n\tS_FALSE                                                                   Handle        = 1\n\tOLE_E_FIRST                                                               Handle        = 0x80040000\n\tOLE_E_LAST                                                                Handle        = 0x800400FF\n\tOLE_S_FIRST                                                               Handle        = 0x00040000\n\tOLE_S_LAST                                                                Handle        = 0x000400FF\n\tOLE_E_OLEVERB                                                             Handle        = 0x80040000\n\tOLE_E_ADVF                                                                Handle        = 0x80040001\n\tOLE_E_ENUM_NOMORE                                                         Handle        = 0x80040002\n\tOLE_E_ADVISENOTSUPPORTED                                                  Handle        = 0x80040003\n\tOLE_E_NOCONNECTION                                                        Handle        = 0x80040004\n\tOLE_E_NOTRUNNING                                                          Handle        = 0x80040005\n\tOLE_E_NOCACHE                                                             Handle        = 0x80040006\n\tOLE_E_BLANK                                                               Handle        = 0x80040007\n\tOLE_E_CLASSDIFF                                                           Handle        = 0x80040008\n\tOLE_E_CANT_GETMONIKER                                                     Handle        = 0x80040009\n\tOLE_E_CANT_BINDTOSOURCE                                                   Handle        = 0x8004000A\n\tOLE_E_STATIC                                                              Handle        = 0x8004000B\n\tOLE_E_PROMPTSAVECANCELLED                                                 Handle        = 0x8004000C\n\tOLE_E_INVALIDRECT                                                         Handle        = 0x8004000D\n\tOLE_E_WRONGCOMPOBJ                                                        Handle        = 0x8004000E\n\tOLE_E_INVALIDHWND                                                         Handle        = 0x8004000F\n\tOLE_E_NOT_INPLACEACTIVE                                                   Handle        = 0x80040010\n\tOLE_E_CANTCONVERT                                                         Handle        = 0x80040011\n\tOLE_E_NOSTORAGE                                                           Handle        = 0x80040012\n\tDV_E_FORMATETC                                                            Handle        = 0x80040064\n\tDV_E_DVTARGETDEVICE                                                       Handle        = 0x80040065\n\tDV_E_STGMEDIUM                                                            Handle        = 0x80040066\n\tDV_E_STATDATA                                                             Handle        = 0x80040067\n\tDV_E_LINDEX                                                               Handle        = 0x80040068\n\tDV_E_TYMED                                                                Handle        = 0x80040069\n\tDV_E_CLIPFORMAT                                                           Handle        = 0x8004006A\n\tDV_E_DVASPECT                                                             Handle        = 0x8004006B\n\tDV_E_DVTARGETDEVICE_SIZE                                                  Handle        = 0x8004006C\n\tDV_E_NOIVIEWOBJECT                                                        Handle        = 0x8004006D\n\tDRAGDROP_E_FIRST                                                          syscall.Errno = 0x80040100\n\tDRAGDROP_E_LAST                                                           syscall.Errno = 0x8004010F\n\tDRAGDROP_S_FIRST                                                          syscall.Errno = 0x00040100\n\tDRAGDROP_S_LAST                                                           syscall.Errno = 0x0004010F\n\tDRAGDROP_E_NOTREGISTERED                                                  Handle        = 0x80040100\n\tDRAGDROP_E_ALREADYREGISTERED                                              Handle        = 0x80040101\n\tDRAGDROP_E_INVALIDHWND                                                    Handle        = 0x80040102\n\tDRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED                                      Handle        = 0x80040103\n\tCLASSFACTORY_E_FIRST                                                      syscall.Errno = 0x80040110\n\tCLASSFACTORY_E_LAST                                                       syscall.Errno = 0x8004011F\n\tCLASSFACTORY_S_FIRST                                                      syscall.Errno = 0x00040110\n\tCLASSFACTORY_S_LAST                                                       syscall.Errno = 0x0004011F\n\tCLASS_E_NOAGGREGATION                                                     Handle        = 0x80040110\n\tCLASS_E_CLASSNOTAVAILABLE                                                 Handle        = 0x80040111\n\tCLASS_E_NOTLICENSED                                                       Handle        = 0x80040112\n\tMARSHAL_E_FIRST                                                           syscall.Errno = 0x80040120\n\tMARSHAL_E_LAST                                                            syscall.Errno = 0x8004012F\n\tMARSHAL_S_FIRST                                                           syscall.Errno = 0x00040120\n\tMARSHAL_S_LAST                                                            syscall.Errno = 0x0004012F\n\tDATA_E_FIRST                                                              syscall.Errno = 0x80040130\n\tDATA_E_LAST                                                               syscall.Errno = 0x8004013F\n\tDATA_S_FIRST                                                              syscall.Errno = 0x00040130\n\tDATA_S_LAST                                                               syscall.Errno = 0x0004013F\n\tVIEW_E_FIRST                                                              syscall.Errno = 0x80040140\n\tVIEW_E_LAST                                                               syscall.Errno = 0x8004014F\n\tVIEW_S_FIRST                                                              syscall.Errno = 0x00040140\n\tVIEW_S_LAST                                                               syscall.Errno = 0x0004014F\n\tVIEW_E_DRAW                                                               Handle        = 0x80040140\n\tREGDB_E_FIRST                                                             syscall.Errno = 0x80040150\n\tREGDB_E_LAST                                                              syscall.Errno = 0x8004015F\n\tREGDB_S_FIRST                                                             syscall.Errno = 0x00040150\n\tREGDB_S_LAST                                                              syscall.Errno = 0x0004015F\n\tREGDB_E_READREGDB                                                         Handle        = 0x80040150\n\tREGDB_E_WRITEREGDB                                                        Handle        = 0x80040151\n\tREGDB_E_KEYMISSING                                                        Handle        = 0x80040152\n\tREGDB_E_INVALIDVALUE                                                      Handle        = 0x80040153\n\tREGDB_E_CLASSNOTREG                                                       Handle        = 0x80040154\n\tREGDB_E_IIDNOTREG                                                         Handle        = 0x80040155\n\tREGDB_E_BADTHREADINGMODEL                                                 Handle        = 0x80040156\n\tREGDB_E_PACKAGEPOLICYVIOLATION                                            Handle        = 0x80040157\n\tCAT_E_FIRST                                                               syscall.Errno = 0x80040160\n\tCAT_E_LAST                                                                syscall.Errno = 0x80040161\n\tCAT_E_CATIDNOEXIST                                                        Handle        = 0x80040160\n\tCAT_E_NODESCRIPTION                                                       Handle        = 0x80040161\n\tCS_E_FIRST                                                                syscall.Errno = 0x80040164\n\tCS_E_LAST                                                                 syscall.Errno = 0x8004016F\n\tCS_E_PACKAGE_NOTFOUND                                                     Handle        = 0x80040164\n\tCS_E_NOT_DELETABLE                                                        Handle        = 0x80040165\n\tCS_E_CLASS_NOTFOUND                                                       Handle        = 0x80040166\n\tCS_E_INVALID_VERSION                                                      Handle        = 0x80040167\n\tCS_E_NO_CLASSSTORE                                                        Handle        = 0x80040168\n\tCS_E_OBJECT_NOTFOUND                                                      Handle        = 0x80040169\n\tCS_E_OBJECT_ALREADY_EXISTS                                                Handle        = 0x8004016A\n\tCS_E_INVALID_PATH                                                         Handle        = 0x8004016B\n\tCS_E_NETWORK_ERROR                                                        Handle        = 0x8004016C\n\tCS_E_ADMIN_LIMIT_EXCEEDED                                                 Handle        = 0x8004016D\n\tCS_E_SCHEMA_MISMATCH                                                      Handle        = 0x8004016E\n\tCS_E_INTERNAL_ERROR                                                       Handle        = 0x8004016F\n\tCACHE_E_FIRST                                                             syscall.Errno = 0x80040170\n\tCACHE_E_LAST                                                              syscall.Errno = 0x8004017F\n\tCACHE_S_FIRST                                                             syscall.Errno = 0x00040170\n\tCACHE_S_LAST                                                              syscall.Errno = 0x0004017F\n\tCACHE_E_NOCACHE_UPDATED                                                   Handle        = 0x80040170\n\tOLEOBJ_E_FIRST                                                            syscall.Errno = 0x80040180\n\tOLEOBJ_E_LAST                                                             syscall.Errno = 0x8004018F\n\tOLEOBJ_S_FIRST                                                            syscall.Errno = 0x00040180\n\tOLEOBJ_S_LAST                                                             syscall.Errno = 0x0004018F\n\tOLEOBJ_E_NOVERBS                                                          Handle        = 0x80040180\n\tOLEOBJ_E_INVALIDVERB                                                      Handle        = 0x80040181\n\tCLIENTSITE_E_FIRST                                                        syscall.Errno = 0x80040190\n\tCLIENTSITE_E_LAST                                                         syscall.Errno = 0x8004019F\n\tCLIENTSITE_S_FIRST                                                        syscall.Errno = 0x00040190\n\tCLIENTSITE_S_LAST                                                         syscall.Errno = 0x0004019F\n\tINPLACE_E_NOTUNDOABLE                                                     Handle        = 0x800401A0\n\tINPLACE_E_NOTOOLSPACE                                                     Handle        = 0x800401A1\n\tINPLACE_E_FIRST                                                           syscall.Errno = 0x800401A0\n\tINPLACE_E_LAST                                                            syscall.Errno = 0x800401AF\n\tINPLACE_S_FIRST                                                           syscall.Errno = 0x000401A0\n\tINPLACE_S_LAST                                                            syscall.Errno = 0x000401AF\n\tENUM_E_FIRST                                                              syscall.Errno = 0x800401B0\n\tENUM_E_LAST                                                               syscall.Errno = 0x800401BF\n\tENUM_S_FIRST                                                              syscall.Errno = 0x000401B0\n\tENUM_S_LAST                                                               syscall.Errno = 0x000401BF\n\tCONVERT10_E_FIRST                                                         syscall.Errno = 0x800401C0\n\tCONVERT10_E_LAST                                                          syscall.Errno = 0x800401CF\n\tCONVERT10_S_FIRST                                                         syscall.Errno = 0x000401C0\n\tCONVERT10_S_LAST                                                          syscall.Errno = 0x000401CF\n\tCONVERT10_E_OLESTREAM_GET                                                 Handle        = 0x800401C0\n\tCONVERT10_E_OLESTREAM_PUT                                                 Handle        = 0x800401C1\n\tCONVERT10_E_OLESTREAM_FMT                                                 Handle        = 0x800401C2\n\tCONVERT10_E_OLESTREAM_BITMAP_TO_DIB                                       Handle        = 0x800401C3\n\tCONVERT10_E_STG_FMT                                                       Handle        = 0x800401C4\n\tCONVERT10_E_STG_NO_STD_STREAM                                             Handle        = 0x800401C5\n\tCONVERT10_E_STG_DIB_TO_BITMAP                                             Handle        = 0x800401C6\n\tCLIPBRD_E_FIRST                                                           syscall.Errno = 0x800401D0\n\tCLIPBRD_E_LAST                                                            syscall.Errno = 0x800401DF\n\tCLIPBRD_S_FIRST                                                           syscall.Errno = 0x000401D0\n\tCLIPBRD_S_LAST                                                            syscall.Errno = 0x000401DF\n\tCLIPBRD_E_CANT_OPEN                                                       Handle        = 0x800401D0\n\tCLIPBRD_E_CANT_EMPTY                                                      Handle        = 0x800401D1\n\tCLIPBRD_E_CANT_SET                                                        Handle        = 0x800401D2\n\tCLIPBRD_E_BAD_DATA                                                        Handle        = 0x800401D3\n\tCLIPBRD_E_CANT_CLOSE                                                      Handle        = 0x800401D4\n\tMK_E_FIRST                                                                syscall.Errno = 0x800401E0\n\tMK_E_LAST                                                                 syscall.Errno = 0x800401EF\n\tMK_S_FIRST                                                                syscall.Errno = 0x000401E0\n\tMK_S_LAST                                                                 syscall.Errno = 0x000401EF\n\tMK_E_CONNECTMANUALLY                                                      Handle        = 0x800401E0\n\tMK_E_EXCEEDEDDEADLINE                                                     Handle        = 0x800401E1\n\tMK_E_NEEDGENERIC                                                          Handle        = 0x800401E2\n\tMK_E_UNAVAILABLE                                                          Handle        = 0x800401E3\n\tMK_E_SYNTAX                                                               Handle        = 0x800401E4\n\tMK_E_NOOBJECT                                                             Handle        = 0x800401E5\n\tMK_E_INVALIDEXTENSION                                                     Handle        = 0x800401E6\n\tMK_E_INTERMEDIATEINTERFACENOTSUPPORTED                                    Handle        = 0x800401E7\n\tMK_E_NOTBINDABLE                                                          Handle        = 0x800401E8\n\tMK_E_NOTBOUND                                                             Handle        = 0x800401E9\n\tMK_E_CANTOPENFILE                                                         Handle        = 0x800401EA\n\tMK_E_MUSTBOTHERUSER                                                       Handle        = 0x800401EB\n\tMK_E_NOINVERSE                                                            Handle        = 0x800401EC\n\tMK_E_NOSTORAGE                                                            Handle        = 0x800401ED\n\tMK_E_NOPREFIX                                                             Handle        = 0x800401EE\n\tMK_E_ENUMERATION_FAILED                                                   Handle        = 0x800401EF\n\tCO_E_FIRST                                                                syscall.Errno = 0x800401F0\n\tCO_E_LAST                                                                 syscall.Errno = 0x800401FF\n\tCO_S_FIRST                                                                syscall.Errno = 0x000401F0\n\tCO_S_LAST                                                                 syscall.Errno = 0x000401FF\n\tCO_E_NOTINITIALIZED                                                       Handle        = 0x800401F0\n\tCO_E_ALREADYINITIALIZED                                                   Handle        = 0x800401F1\n\tCO_E_CANTDETERMINECLASS                                                   Handle        = 0x800401F2\n\tCO_E_CLASSSTRING                                                          Handle        = 0x800401F3\n\tCO_E_IIDSTRING                                                            Handle        = 0x800401F4\n\tCO_E_APPNOTFOUND                                                          Handle        = 0x800401F5\n\tCO_E_APPSINGLEUSE                                                         Handle        = 0x800401F6\n\tCO_E_ERRORINAPP                                                           Handle        = 0x800401F7\n\tCO_E_DLLNOTFOUND                                                          Handle        = 0x800401F8\n\tCO_E_ERRORINDLL                                                           Handle        = 0x800401F9\n\tCO_E_WRONGOSFORAPP                                                        Handle        = 0x800401FA\n\tCO_E_OBJNOTREG                                                            Handle        = 0x800401FB\n\tCO_E_OBJISREG                                                             Handle        = 0x800401FC\n\tCO_E_OBJNOTCONNECTED                                                      Handle        = 0x800401FD\n\tCO_E_APPDIDNTREG                                                          Handle        = 0x800401FE\n\tCO_E_RELEASED                                                             Handle        = 0x800401FF\n\tEVENT_E_FIRST                                                             syscall.Errno = 0x80040200\n\tEVENT_E_LAST                                                              syscall.Errno = 0x8004021F\n\tEVENT_S_FIRST                                                             syscall.Errno = 0x00040200\n\tEVENT_S_LAST                                                              syscall.Errno = 0x0004021F\n\tEVENT_S_SOME_SUBSCRIBERS_FAILED                                           Handle        = 0x00040200\n\tEVENT_E_ALL_SUBSCRIBERS_FAILED                                            Handle        = 0x80040201\n\tEVENT_S_NOSUBSCRIBERS                                                     Handle        = 0x00040202\n\tEVENT_E_QUERYSYNTAX                                                       Handle        = 0x80040203\n\tEVENT_E_QUERYFIELD                                                        Handle        = 0x80040204\n\tEVENT_E_INTERNALEXCEPTION                                                 Handle        = 0x80040205\n\tEVENT_E_INTERNALERROR                                                     Handle        = 0x80040206\n\tEVENT_E_INVALID_PER_USER_SID                                              Handle        = 0x80040207\n\tEVENT_E_USER_EXCEPTION                                                    Handle        = 0x80040208\n\tEVENT_E_TOO_MANY_METHODS                                                  Handle        = 0x80040209\n\tEVENT_E_MISSING_EVENTCLASS                                                Handle        = 0x8004020A\n\tEVENT_E_NOT_ALL_REMOVED                                                   Handle        = 0x8004020B\n\tEVENT_E_COMPLUS_NOT_INSTALLED                                             Handle        = 0x8004020C\n\tEVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT                         Handle        = 0x8004020D\n\tEVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT                           Handle        = 0x8004020E\n\tEVENT_E_INVALID_EVENT_CLASS_PARTITION                                     Handle        = 0x8004020F\n\tEVENT_E_PER_USER_SID_NOT_LOGGED_ON                                        Handle        = 0x80040210\n\tTPC_E_INVALID_PROPERTY                                                    Handle        = 0x80040241\n\tTPC_E_NO_DEFAULT_TABLET                                                   Handle        = 0x80040212\n\tTPC_E_UNKNOWN_PROPERTY                                                    Handle        = 0x8004021B\n\tTPC_E_INVALID_INPUT_RECT                                                  Handle        = 0x80040219\n\tTPC_E_INVALID_STROKE                                                      Handle        = 0x80040222\n\tTPC_E_INITIALIZE_FAIL                                                     Handle        = 0x80040223\n\tTPC_E_NOT_RELEVANT                                                        Handle        = 0x80040232\n\tTPC_E_INVALID_PACKET_DESCRIPTION                                          Handle        = 0x80040233\n\tTPC_E_RECOGNIZER_NOT_REGISTERED                                           Handle        = 0x80040235\n\tTPC_E_INVALID_RIGHTS                                                      Handle        = 0x80040236\n\tTPC_E_OUT_OF_ORDER_CALL                                                   Handle        = 0x80040237\n\tTPC_E_QUEUE_FULL                                                          Handle        = 0x80040238\n\tTPC_E_INVALID_CONFIGURATION                                               Handle        = 0x80040239\n\tTPC_E_INVALID_DATA_FROM_RECOGNIZER                                        Handle        = 0x8004023A\n\tTPC_S_TRUNCATED                                                           Handle        = 0x00040252\n\tTPC_S_INTERRUPTED                                                         Handle        = 0x00040253\n\tTPC_S_NO_DATA_TO_PROCESS                                                  Handle        = 0x00040254\n\tXACT_E_FIRST                                                              syscall.Errno = 0x8004D000\n\tXACT_E_LAST                                                               syscall.Errno = 0x8004D02B\n\tXACT_S_FIRST                                                              syscall.Errno = 0x0004D000\n\tXACT_S_LAST                                                               syscall.Errno = 0x0004D010\n\tXACT_E_ALREADYOTHERSINGLEPHASE                                            Handle        = 0x8004D000\n\tXACT_E_CANTRETAIN                                                         Handle        = 0x8004D001\n\tXACT_E_COMMITFAILED                                                       Handle        = 0x8004D002\n\tXACT_E_COMMITPREVENTED                                                    Handle        = 0x8004D003\n\tXACT_E_HEURISTICABORT                                                     Handle        = 0x8004D004\n\tXACT_E_HEURISTICCOMMIT                                                    Handle        = 0x8004D005\n\tXACT_E_HEURISTICDAMAGE                                                    Handle        = 0x8004D006\n\tXACT_E_HEURISTICDANGER                                                    Handle        = 0x8004D007\n\tXACT_E_ISOLATIONLEVEL                                                     Handle        = 0x8004D008\n\tXACT_E_NOASYNC                                                            Handle        = 0x8004D009\n\tXACT_E_NOENLIST                                                           Handle        = 0x8004D00A\n\tXACT_E_NOISORETAIN                                                        Handle        = 0x8004D00B\n\tXACT_E_NORESOURCE                                                         Handle        = 0x8004D00C\n\tXACT_E_NOTCURRENT                                                         Handle        = 0x8004D00D\n\tXACT_E_NOTRANSACTION                                                      Handle        = 0x8004D00E\n\tXACT_E_NOTSUPPORTED                                                       Handle        = 0x8004D00F\n\tXACT_E_UNKNOWNRMGRID                                                      Handle        = 0x8004D010\n\tXACT_E_WRONGSTATE                                                         Handle        = 0x8004D011\n\tXACT_E_WRONGUOW                                                           Handle        = 0x8004D012\n\tXACT_E_XTIONEXISTS                                                        Handle        = 0x8004D013\n\tXACT_E_NOIMPORTOBJECT                                                     Handle        = 0x8004D014\n\tXACT_E_INVALIDCOOKIE                                                      Handle        = 0x8004D015\n\tXACT_E_INDOUBT                                                            Handle        = 0x8004D016\n\tXACT_E_NOTIMEOUT                                                          Handle        = 0x8004D017\n\tXACT_E_ALREADYINPROGRESS                                                  Handle        = 0x8004D018\n\tXACT_E_ABORTED                                                            Handle        = 0x8004D019\n\tXACT_E_LOGFULL                                                            Handle        = 0x8004D01A\n\tXACT_E_TMNOTAVAILABLE                                                     Handle        = 0x8004D01B\n\tXACT_E_CONNECTION_DOWN                                                    Handle        = 0x8004D01C\n\tXACT_E_CONNECTION_DENIED                                                  Handle        = 0x8004D01D\n\tXACT_E_REENLISTTIMEOUT                                                    Handle        = 0x8004D01E\n\tXACT_E_TIP_CONNECT_FAILED                                                 Handle        = 0x8004D01F\n\tXACT_E_TIP_PROTOCOL_ERROR                                                 Handle        = 0x8004D020\n\tXACT_E_TIP_PULL_FAILED                                                    Handle        = 0x8004D021\n\tXACT_E_DEST_TMNOTAVAILABLE                                                Handle        = 0x8004D022\n\tXACT_E_TIP_DISABLED                                                       Handle        = 0x8004D023\n\tXACT_E_NETWORK_TX_DISABLED                                                Handle        = 0x8004D024\n\tXACT_E_PARTNER_NETWORK_TX_DISABLED                                        Handle        = 0x8004D025\n\tXACT_E_XA_TX_DISABLED                                                     Handle        = 0x8004D026\n\tXACT_E_UNABLE_TO_READ_DTC_CONFIG                                          Handle        = 0x8004D027\n\tXACT_E_UNABLE_TO_LOAD_DTC_PROXY                                           Handle        = 0x8004D028\n\tXACT_E_ABORTING                                                           Handle        = 0x8004D029\n\tXACT_E_PUSH_COMM_FAILURE                                                  Handle        = 0x8004D02A\n\tXACT_E_PULL_COMM_FAILURE                                                  Handle        = 0x8004D02B\n\tXACT_E_LU_TX_DISABLED                                                     Handle        = 0x8004D02C\n\tXACT_E_CLERKNOTFOUND                                                      Handle        = 0x8004D080\n\tXACT_E_CLERKEXISTS                                                        Handle        = 0x8004D081\n\tXACT_E_RECOVERYINPROGRESS                                                 Handle        = 0x8004D082\n\tXACT_E_TRANSACTIONCLOSED                                                  Handle        = 0x8004D083\n\tXACT_E_INVALIDLSN                                                         Handle        = 0x8004D084\n\tXACT_E_REPLAYREQUEST                                                      Handle        = 0x8004D085\n\tXACT_S_ASYNC                                                              Handle        = 0x0004D000\n\tXACT_S_DEFECT                                                             Handle        = 0x0004D001\n\tXACT_S_READONLY                                                           Handle        = 0x0004D002\n\tXACT_S_SOMENORETAIN                                                       Handle        = 0x0004D003\n\tXACT_S_OKINFORM                                                           Handle        = 0x0004D004\n\tXACT_S_MADECHANGESCONTENT                                                 Handle        = 0x0004D005\n\tXACT_S_MADECHANGESINFORM                                                  Handle        = 0x0004D006\n\tXACT_S_ALLNORETAIN                                                        Handle        = 0x0004D007\n\tXACT_S_ABORTING                                                           Handle        = 0x0004D008\n\tXACT_S_SINGLEPHASE                                                        Handle        = 0x0004D009\n\tXACT_S_LOCALLY_OK                                                         Handle        = 0x0004D00A\n\tXACT_S_LASTRESOURCEMANAGER                                                Handle        = 0x0004D010\n\tCONTEXT_E_FIRST                                                           syscall.Errno = 0x8004E000\n\tCONTEXT_E_LAST                                                            syscall.Errno = 0x8004E02F\n\tCONTEXT_S_FIRST                                                           syscall.Errno = 0x0004E000\n\tCONTEXT_S_LAST                                                            syscall.Errno = 0x0004E02F\n\tCONTEXT_E_ABORTED                                                         Handle        = 0x8004E002\n\tCONTEXT_E_ABORTING                                                        Handle        = 0x8004E003\n\tCONTEXT_E_NOCONTEXT                                                       Handle        = 0x8004E004\n\tCONTEXT_E_WOULD_DEADLOCK                                                  Handle        = 0x8004E005\n\tCONTEXT_E_SYNCH_TIMEOUT                                                   Handle        = 0x8004E006\n\tCONTEXT_E_OLDREF                                                          Handle        = 0x8004E007\n\tCONTEXT_E_ROLENOTFOUND                                                    Handle        = 0x8004E00C\n\tCONTEXT_E_TMNOTAVAILABLE                                                  Handle        = 0x8004E00F\n\tCO_E_ACTIVATIONFAILED                                                     Handle        = 0x8004E021\n\tCO_E_ACTIVATIONFAILED_EVENTLOGGED                                         Handle        = 0x8004E022\n\tCO_E_ACTIVATIONFAILED_CATALOGERROR                                        Handle        = 0x8004E023\n\tCO_E_ACTIVATIONFAILED_TIMEOUT                                             Handle        = 0x8004E024\n\tCO_E_INITIALIZATIONFAILED                                                 Handle        = 0x8004E025\n\tCONTEXT_E_NOJIT                                                           Handle        = 0x8004E026\n\tCONTEXT_E_NOTRANSACTION                                                   Handle        = 0x8004E027\n\tCO_E_THREADINGMODEL_CHANGED                                               Handle        = 0x8004E028\n\tCO_E_NOIISINTRINSICS                                                      Handle        = 0x8004E029\n\tCO_E_NOCOOKIES                                                            Handle        = 0x8004E02A\n\tCO_E_DBERROR                                                              Handle        = 0x8004E02B\n\tCO_E_NOTPOOLED                                                            Handle        = 0x8004E02C\n\tCO_E_NOTCONSTRUCTED                                                       Handle        = 0x8004E02D\n\tCO_E_NOSYNCHRONIZATION                                                    Handle        = 0x8004E02E\n\tCO_E_ISOLEVELMISMATCH                                                     Handle        = 0x8004E02F\n\tCO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED                                     Handle        = 0x8004E030\n\tCO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED                                    Handle        = 0x8004E031\n\tOLE_S_USEREG                                                              Handle        = 0x00040000\n\tOLE_S_STATIC                                                              Handle        = 0x00040001\n\tOLE_S_MAC_CLIPFORMAT                                                      Handle        = 0x00040002\n\tDRAGDROP_S_DROP                                                           Handle        = 0x00040100\n\tDRAGDROP_S_CANCEL                                                         Handle        = 0x00040101\n\tDRAGDROP_S_USEDEFAULTCURSORS                                              Handle        = 0x00040102\n\tDATA_S_SAMEFORMATETC                                                      Handle        = 0x00040130\n\tVIEW_S_ALREADY_FROZEN                                                     Handle        = 0x00040140\n\tCACHE_S_FORMATETC_NOTSUPPORTED                                            Handle        = 0x00040170\n\tCACHE_S_SAMECACHE                                                         Handle        = 0x00040171\n\tCACHE_S_SOMECACHES_NOTUPDATED                                             Handle        = 0x00040172\n\tOLEOBJ_S_INVALIDVERB                                                      Handle        = 0x00040180\n\tOLEOBJ_S_CANNOT_DOVERB_NOW                                                Handle        = 0x00040181\n\tOLEOBJ_S_INVALIDHWND                                                      Handle        = 0x00040182\n\tINPLACE_S_TRUNCATED                                                       Handle        = 0x000401A0\n\tCONVERT10_S_NO_PRESENTATION                                               Handle        = 0x000401C0\n\tMK_S_REDUCED_TO_SELF                                                      Handle        = 0x000401E2\n\tMK_S_ME                                                                   Handle        = 0x000401E4\n\tMK_S_HIM                                                                  Handle        = 0x000401E5\n\tMK_S_US                                                                   Handle        = 0x000401E6\n\tMK_S_MONIKERALREADYREGISTERED                                             Handle        = 0x000401E7\n\tSCHED_S_TASK_READY                                                        Handle        = 0x00041300\n\tSCHED_S_TASK_RUNNING                                                      Handle        = 0x00041301\n\tSCHED_S_TASK_DISABLED                                                     Handle        = 0x00041302\n\tSCHED_S_TASK_HAS_NOT_RUN                                                  Handle        = 0x00041303\n\tSCHED_S_TASK_NO_MORE_RUNS                                                 Handle        = 0x00041304\n\tSCHED_S_TASK_NOT_SCHEDULED                                                Handle        = 0x00041305\n\tSCHED_S_TASK_TERMINATED                                                   Handle        = 0x00041306\n\tSCHED_S_TASK_NO_VALID_TRIGGERS                                            Handle        = 0x00041307\n\tSCHED_S_EVENT_TRIGGER                                                     Handle        = 0x00041308\n\tSCHED_E_TRIGGER_NOT_FOUND                                                 Handle        = 0x80041309\n\tSCHED_E_TASK_NOT_READY                                                    Handle        = 0x8004130A\n\tSCHED_E_TASK_NOT_RUNNING                                                  Handle        = 0x8004130B\n\tSCHED_E_SERVICE_NOT_INSTALLED                                             Handle        = 0x8004130C\n\tSCHED_E_CANNOT_OPEN_TASK                                                  Handle        = 0x8004130D\n\tSCHED_E_INVALID_TASK                                                      Handle        = 0x8004130E\n\tSCHED_E_ACCOUNT_INFORMATION_NOT_SET                                       Handle        = 0x8004130F\n\tSCHED_E_ACCOUNT_NAME_NOT_FOUND                                            Handle        = 0x80041310\n\tSCHED_E_ACCOUNT_DBASE_CORRUPT                                             Handle        = 0x80041311\n\tSCHED_E_NO_SECURITY_SERVICES                                              Handle        = 0x80041312\n\tSCHED_E_UNKNOWN_OBJECT_VERSION                                            Handle        = 0x80041313\n\tSCHED_E_UNSUPPORTED_ACCOUNT_OPTION                                        Handle        = 0x80041314\n\tSCHED_E_SERVICE_NOT_RUNNING                                               Handle        = 0x80041315\n\tSCHED_E_UNEXPECTEDNODE                                                    Handle        = 0x80041316\n\tSCHED_E_NAMESPACE                                                         Handle        = 0x80041317\n\tSCHED_E_INVALIDVALUE                                                      Handle        = 0x80041318\n\tSCHED_E_MISSINGNODE                                                       Handle        = 0x80041319\n\tSCHED_E_MALFORMEDXML                                                      Handle        = 0x8004131A\n\tSCHED_S_SOME_TRIGGERS_FAILED                                              Handle        = 0x0004131B\n\tSCHED_S_BATCH_LOGON_PROBLEM                                               Handle        = 0x0004131C\n\tSCHED_E_TOO_MANY_NODES                                                    Handle        = 0x8004131D\n\tSCHED_E_PAST_END_BOUNDARY                                                 Handle        = 0x8004131E\n\tSCHED_E_ALREADY_RUNNING                                                   Handle        = 0x8004131F\n\tSCHED_E_USER_NOT_LOGGED_ON                                                Handle        = 0x80041320\n\tSCHED_E_INVALID_TASK_HASH                                                 Handle        = 0x80041321\n\tSCHED_E_SERVICE_NOT_AVAILABLE                                             Handle        = 0x80041322\n\tSCHED_E_SERVICE_TOO_BUSY                                                  Handle        = 0x80041323\n\tSCHED_E_TASK_ATTEMPTED                                                    Handle        = 0x80041324\n\tSCHED_S_TASK_QUEUED                                                       Handle        = 0x00041325\n\tSCHED_E_TASK_DISABLED                                                     Handle        = 0x80041326\n\tSCHED_E_TASK_NOT_V1_COMPAT                                                Handle        = 0x80041327\n\tSCHED_E_START_ON_DEMAND                                                   Handle        = 0x80041328\n\tSCHED_E_TASK_NOT_UBPM_COMPAT                                              Handle        = 0x80041329\n\tSCHED_E_DEPRECATED_FEATURE_USED                                           Handle        = 0x80041330\n\tCO_E_CLASS_CREATE_FAILED                                                  Handle        = 0x80080001\n\tCO_E_SCM_ERROR                                                            Handle        = 0x80080002\n\tCO_E_SCM_RPC_FAILURE                                                      Handle        = 0x80080003\n\tCO_E_BAD_PATH                                                             Handle        = 0x80080004\n\tCO_E_SERVER_EXEC_FAILURE                                                  Handle        = 0x80080005\n\tCO_E_OBJSRV_RPC_FAILURE                                                   Handle        = 0x80080006\n\tMK_E_NO_NORMALIZED                                                        Handle        = 0x80080007\n\tCO_E_SERVER_STOPPING                                                      Handle        = 0x80080008\n\tMEM_E_INVALID_ROOT                                                        Handle        = 0x80080009\n\tMEM_E_INVALID_LINK                                                        Handle        = 0x80080010\n\tMEM_E_INVALID_SIZE                                                        Handle        = 0x80080011\n\tCO_S_NOTALLINTERFACES                                                     Handle        = 0x00080012\n\tCO_S_MACHINENAMENOTFOUND                                                  Handle        = 0x00080013\n\tCO_E_MISSING_DISPLAYNAME                                                  Handle        = 0x80080015\n\tCO_E_RUNAS_VALUE_MUST_BE_AAA                                              Handle        = 0x80080016\n\tCO_E_ELEVATION_DISABLED                                                   Handle        = 0x80080017\n\tAPPX_E_PACKAGING_INTERNAL                                                 Handle        = 0x80080200\n\tAPPX_E_INTERLEAVING_NOT_ALLOWED                                           Handle        = 0x80080201\n\tAPPX_E_RELATIONSHIPS_NOT_ALLOWED                                          Handle        = 0x80080202\n\tAPPX_E_MISSING_REQUIRED_FILE                                              Handle        = 0x80080203\n\tAPPX_E_INVALID_MANIFEST                                                   Handle        = 0x80080204\n\tAPPX_E_INVALID_BLOCKMAP                                                   Handle        = 0x80080205\n\tAPPX_E_CORRUPT_CONTENT                                                    Handle        = 0x80080206\n\tAPPX_E_BLOCK_HASH_INVALID                                                 Handle        = 0x80080207\n\tAPPX_E_REQUESTED_RANGE_TOO_LARGE                                          Handle        = 0x80080208\n\tAPPX_E_INVALID_SIP_CLIENT_DATA                                            Handle        = 0x80080209\n\tAPPX_E_INVALID_KEY_INFO                                                   Handle        = 0x8008020A\n\tAPPX_E_INVALID_CONTENTGROUPMAP                                            Handle        = 0x8008020B\n\tAPPX_E_INVALID_APPINSTALLER                                               Handle        = 0x8008020C\n\tAPPX_E_DELTA_BASELINE_VERSION_MISMATCH                                    Handle        = 0x8008020D\n\tAPPX_E_DELTA_PACKAGE_MISSING_FILE                                         Handle        = 0x8008020E\n\tAPPX_E_INVALID_DELTA_PACKAGE                                              Handle        = 0x8008020F\n\tAPPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED                                 Handle        = 0x80080210\n\tAPPX_E_INVALID_PACKAGING_LAYOUT                                           Handle        = 0x80080211\n\tAPPX_E_INVALID_PACKAGESIGNCONFIG                                          Handle        = 0x80080212\n\tAPPX_E_RESOURCESPRI_NOT_ALLOWED                                           Handle        = 0x80080213\n\tAPPX_E_FILE_COMPRESSION_MISMATCH                                          Handle        = 0x80080214\n\tAPPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION                                  Handle        = 0x80080215\n\tAPPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST                             Handle        = 0x80080216\n\tBT_E_SPURIOUS_ACTIVATION                                                  Handle        = 0x80080300\n\tDISP_E_UNKNOWNINTERFACE                                                   Handle        = 0x80020001\n\tDISP_E_MEMBERNOTFOUND                                                     Handle        = 0x80020003\n\tDISP_E_PARAMNOTFOUND                                                      Handle        = 0x80020004\n\tDISP_E_TYPEMISMATCH                                                       Handle        = 0x80020005\n\tDISP_E_UNKNOWNNAME                                                        Handle        = 0x80020006\n\tDISP_E_NONAMEDARGS                                                        Handle        = 0x80020007\n\tDISP_E_BADVARTYPE                                                         Handle        = 0x80020008\n\tDISP_E_EXCEPTION                                                          Handle        = 0x80020009\n\tDISP_E_OVERFLOW                                                           Handle        = 0x8002000A\n\tDISP_E_BADINDEX                                                           Handle        = 0x8002000B\n\tDISP_E_UNKNOWNLCID                                                        Handle        = 0x8002000C\n\tDISP_E_ARRAYISLOCKED                                                      Handle        = 0x8002000D\n\tDISP_E_BADPARAMCOUNT                                                      Handle        = 0x8002000E\n\tDISP_E_PARAMNOTOPTIONAL                                                   Handle        = 0x8002000F\n\tDISP_E_BADCALLEE                                                          Handle        = 0x80020010\n\tDISP_E_NOTACOLLECTION                                                     Handle        = 0x80020011\n\tDISP_E_DIVBYZERO                                                          Handle        = 0x80020012\n\tDISP_E_BUFFERTOOSMALL                                                     Handle        = 0x80020013\n\tTYPE_E_BUFFERTOOSMALL                                                     Handle        = 0x80028016\n\tTYPE_E_FIELDNOTFOUND                                                      Handle        = 0x80028017\n\tTYPE_E_INVDATAREAD                                                        Handle        = 0x80028018\n\tTYPE_E_UNSUPFORMAT                                                        Handle        = 0x80028019\n\tTYPE_E_REGISTRYACCESS                                                     Handle        = 0x8002801C\n\tTYPE_E_LIBNOTREGISTERED                                                   Handle        = 0x8002801D\n\tTYPE_E_UNDEFINEDTYPE                                                      Handle        = 0x80028027\n\tTYPE_E_QUALIFIEDNAMEDISALLOWED                                            Handle        = 0x80028028\n\tTYPE_E_INVALIDSTATE                                                       Handle        = 0x80028029\n\tTYPE_E_WRONGTYPEKIND                                                      Handle        = 0x8002802A\n\tTYPE_E_ELEMENTNOTFOUND                                                    Handle        = 0x8002802B\n\tTYPE_E_AMBIGUOUSNAME                                                      Handle        = 0x8002802C\n\tTYPE_E_NAMECONFLICT                                                       Handle        = 0x8002802D\n\tTYPE_E_UNKNOWNLCID                                                        Handle        = 0x8002802E\n\tTYPE_E_DLLFUNCTIONNOTFOUND                                                Handle        = 0x8002802F\n\tTYPE_E_BADMODULEKIND                                                      Handle        = 0x800288BD\n\tTYPE_E_SIZETOOBIG                                                         Handle        = 0x800288C5\n\tTYPE_E_DUPLICATEID                                                        Handle        = 0x800288C6\n\tTYPE_E_INVALIDID                                                          Handle        = 0x800288CF\n\tTYPE_E_TYPEMISMATCH                                                       Handle        = 0x80028CA0\n\tTYPE_E_OUTOFBOUNDS                                                        Handle        = 0x80028CA1\n\tTYPE_E_IOERROR                                                            Handle        = 0x80028CA2\n\tTYPE_E_CANTCREATETMPFILE                                                  Handle        = 0x80028CA3\n\tTYPE_E_CANTLOADLIBRARY                                                    Handle        = 0x80029C4A\n\tTYPE_E_INCONSISTENTPROPFUNCS                                              Handle        = 0x80029C83\n\tTYPE_E_CIRCULARTYPE                                                       Handle        = 0x80029C84\n\tSTG_E_INVALIDFUNCTION                                                     Handle        = 0x80030001\n\tSTG_E_FILENOTFOUND                                                        Handle        = 0x80030002\n\tSTG_E_PATHNOTFOUND                                                        Handle        = 0x80030003\n\tSTG_E_TOOMANYOPENFILES                                                    Handle        = 0x80030004\n\tSTG_E_ACCESSDENIED                                                        Handle        = 0x80030005\n\tSTG_E_INVALIDHANDLE                                                       Handle        = 0x80030006\n\tSTG_E_INSUFFICIENTMEMORY                                                  Handle        = 0x80030008\n\tSTG_E_INVALIDPOINTER                                                      Handle        = 0x80030009\n\tSTG_E_NOMOREFILES                                                         Handle        = 0x80030012\n\tSTG_E_DISKISWRITEPROTECTED                                                Handle        = 0x80030013\n\tSTG_E_SEEKERROR                                                           Handle        = 0x80030019\n\tSTG_E_WRITEFAULT                                                          Handle        = 0x8003001D\n\tSTG_E_READFAULT                                                           Handle        = 0x8003001E\n\tSTG_E_SHAREVIOLATION                                                      Handle        = 0x80030020\n\tSTG_E_LOCKVIOLATION                                                       Handle        = 0x80030021\n\tSTG_E_FILEALREADYEXISTS                                                   Handle        = 0x80030050\n\tSTG_E_INVALIDPARAMETER                                                    Handle        = 0x80030057\n\tSTG_E_MEDIUMFULL                                                          Handle        = 0x80030070\n\tSTG_E_PROPSETMISMATCHED                                                   Handle        = 0x800300F0\n\tSTG_E_ABNORMALAPIEXIT                                                     Handle        = 0x800300FA\n\tSTG_E_INVALIDHEADER                                                       Handle        = 0x800300FB\n\tSTG_E_INVALIDNAME                                                         Handle        = 0x800300FC\n\tSTG_E_UNKNOWN                                                             Handle        = 0x800300FD\n\tSTG_E_UNIMPLEMENTEDFUNCTION                                               Handle        = 0x800300FE\n\tSTG_E_INVALIDFLAG                                                         Handle        = 0x800300FF\n\tSTG_E_INUSE                                                               Handle        = 0x80030100\n\tSTG_E_NOTCURRENT                                                          Handle        = 0x80030101\n\tSTG_E_REVERTED                                                            Handle        = 0x80030102\n\tSTG_E_CANTSAVE                                                            Handle        = 0x80030103\n\tSTG_E_OLDFORMAT                                                           Handle        = 0x80030104\n\tSTG_E_OLDDLL                                                              Handle        = 0x80030105\n\tSTG_E_SHAREREQUIRED                                                       Handle        = 0x80030106\n\tSTG_E_NOTFILEBASEDSTORAGE                                                 Handle        = 0x80030107\n\tSTG_E_EXTANTMARSHALLINGS                                                  Handle        = 0x80030108\n\tSTG_E_DOCFILECORRUPT                                                      Handle        = 0x80030109\n\tSTG_E_BADBASEADDRESS                                                      Handle        = 0x80030110\n\tSTG_E_DOCFILETOOLARGE                                                     Handle        = 0x80030111\n\tSTG_E_NOTSIMPLEFORMAT                                                     Handle        = 0x80030112\n\tSTG_E_INCOMPLETE                                                          Handle        = 0x80030201\n\tSTG_E_TERMINATED                                                          Handle        = 0x80030202\n\tSTG_S_CONVERTED                                                           Handle        = 0x00030200\n\tSTG_S_BLOCK                                                               Handle        = 0x00030201\n\tSTG_S_RETRYNOW                                                            Handle        = 0x00030202\n\tSTG_S_MONITORING                                                          Handle        = 0x00030203\n\tSTG_S_MULTIPLEOPENS                                                       Handle        = 0x00030204\n\tSTG_S_CONSOLIDATIONFAILED                                                 Handle        = 0x00030205\n\tSTG_S_CANNOTCONSOLIDATE                                                   Handle        = 0x00030206\n\tSTG_S_POWER_CYCLE_REQUIRED                                                Handle        = 0x00030207\n\tSTG_E_FIRMWARE_SLOT_INVALID                                               Handle        = 0x80030208\n\tSTG_E_FIRMWARE_IMAGE_INVALID                                              Handle        = 0x80030209\n\tSTG_E_DEVICE_UNRESPONSIVE                                                 Handle        = 0x8003020A\n\tSTG_E_STATUS_COPY_PROTECTION_FAILURE                                      Handle        = 0x80030305\n\tSTG_E_CSS_AUTHENTICATION_FAILURE                                          Handle        = 0x80030306\n\tSTG_E_CSS_KEY_NOT_PRESENT                                                 Handle        = 0x80030307\n\tSTG_E_CSS_KEY_NOT_ESTABLISHED                                             Handle        = 0x80030308\n\tSTG_E_CSS_SCRAMBLED_SECTOR                                                Handle        = 0x80030309\n\tSTG_E_CSS_REGION_MISMATCH                                                 Handle        = 0x8003030A\n\tSTG_E_RESETS_EXHAUSTED                                                    Handle        = 0x8003030B\n\tRPC_E_CALL_REJECTED                                                       Handle        = 0x80010001\n\tRPC_E_CALL_CANCELED                                                       Handle        = 0x80010002\n\tRPC_E_CANTPOST_INSENDCALL                                                 Handle        = 0x80010003\n\tRPC_E_CANTCALLOUT_INASYNCCALL                                             Handle        = 0x80010004\n\tRPC_E_CANTCALLOUT_INEXTERNALCALL                                          Handle        = 0x80010005\n\tRPC_E_CONNECTION_TERMINATED                                               Handle        = 0x80010006\n\tRPC_E_SERVER_DIED                                                         Handle        = 0x80010007\n\tRPC_E_CLIENT_DIED                                                         Handle        = 0x80010008\n\tRPC_E_INVALID_DATAPACKET                                                  Handle        = 0x80010009\n\tRPC_E_CANTTRANSMIT_CALL                                                   Handle        = 0x8001000A\n\tRPC_E_CLIENT_CANTMARSHAL_DATA                                             Handle        = 0x8001000B\n\tRPC_E_CLIENT_CANTUNMARSHAL_DATA                                           Handle        = 0x8001000C\n\tRPC_E_SERVER_CANTMARSHAL_DATA                                             Handle        = 0x8001000D\n\tRPC_E_SERVER_CANTUNMARSHAL_DATA                                           Handle        = 0x8001000E\n\tRPC_E_INVALID_DATA                                                        Handle        = 0x8001000F\n\tRPC_E_INVALID_PARAMETER                                                   Handle        = 0x80010010\n\tRPC_E_CANTCALLOUT_AGAIN                                                   Handle        = 0x80010011\n\tRPC_E_SERVER_DIED_DNE                                                     Handle        = 0x80010012\n\tRPC_E_SYS_CALL_FAILED                                                     Handle        = 0x80010100\n\tRPC_E_OUT_OF_RESOURCES                                                    Handle        = 0x80010101\n\tRPC_E_ATTEMPTED_MULTITHREAD                                               Handle        = 0x80010102\n\tRPC_E_NOT_REGISTERED                                                      Handle        = 0x80010103\n\tRPC_E_FAULT                                                               Handle        = 0x80010104\n\tRPC_E_SERVERFAULT                                                         Handle        = 0x80010105\n\tRPC_E_CHANGED_MODE                                                        Handle        = 0x80010106\n\tRPC_E_INVALIDMETHOD                                                       Handle        = 0x80010107\n\tRPC_E_DISCONNECTED                                                        Handle        = 0x80010108\n\tRPC_E_RETRY                                                               Handle        = 0x80010109\n\tRPC_E_SERVERCALL_RETRYLATER                                               Handle        = 0x8001010A\n\tRPC_E_SERVERCALL_REJECTED                                                 Handle        = 0x8001010B\n\tRPC_E_INVALID_CALLDATA                                                    Handle        = 0x8001010C\n\tRPC_E_CANTCALLOUT_ININPUTSYNCCALL                                         Handle        = 0x8001010D\n\tRPC_E_WRONG_THREAD                                                        Handle        = 0x8001010E\n\tRPC_E_THREAD_NOT_INIT                                                     Handle        = 0x8001010F\n\tRPC_E_VERSION_MISMATCH                                                    Handle        = 0x80010110\n\tRPC_E_INVALID_HEADER                                                      Handle        = 0x80010111\n\tRPC_E_INVALID_EXTENSION                                                   Handle        = 0x80010112\n\tRPC_E_INVALID_IPID                                                        Handle        = 0x80010113\n\tRPC_E_INVALID_OBJECT                                                      Handle        = 0x80010114\n\tRPC_S_CALLPENDING                                                         Handle        = 0x80010115\n\tRPC_S_WAITONTIMER                                                         Handle        = 0x80010116\n\tRPC_E_CALL_COMPLETE                                                       Handle        = 0x80010117\n\tRPC_E_UNSECURE_CALL                                                       Handle        = 0x80010118\n\tRPC_E_TOO_LATE                                                            Handle        = 0x80010119\n\tRPC_E_NO_GOOD_SECURITY_PACKAGES                                           Handle        = 0x8001011A\n\tRPC_E_ACCESS_DENIED                                                       Handle        = 0x8001011B\n\tRPC_E_REMOTE_DISABLED                                                     Handle        = 0x8001011C\n\tRPC_E_INVALID_OBJREF                                                      Handle        = 0x8001011D\n\tRPC_E_NO_CONTEXT                                                          Handle        = 0x8001011E\n\tRPC_E_TIMEOUT                                                             Handle        = 0x8001011F\n\tRPC_E_NO_SYNC                                                             Handle        = 0x80010120\n\tRPC_E_FULLSIC_REQUIRED                                                    Handle        = 0x80010121\n\tRPC_E_INVALID_STD_NAME                                                    Handle        = 0x80010122\n\tCO_E_FAILEDTOIMPERSONATE                                                  Handle        = 0x80010123\n\tCO_E_FAILEDTOGETSECCTX                                                    Handle        = 0x80010124\n\tCO_E_FAILEDTOOPENTHREADTOKEN                                              Handle        = 0x80010125\n\tCO_E_FAILEDTOGETTOKENINFO                                                 Handle        = 0x80010126\n\tCO_E_TRUSTEEDOESNTMATCHCLIENT                                             Handle        = 0x80010127\n\tCO_E_FAILEDTOQUERYCLIENTBLANKET                                           Handle        = 0x80010128\n\tCO_E_FAILEDTOSETDACL                                                      Handle        = 0x80010129\n\tCO_E_ACCESSCHECKFAILED                                                    Handle        = 0x8001012A\n\tCO_E_NETACCESSAPIFAILED                                                   Handle        = 0x8001012B\n\tCO_E_WRONGTRUSTEENAMESYNTAX                                               Handle        = 0x8001012C\n\tCO_E_INVALIDSID                                                           Handle        = 0x8001012D\n\tCO_E_CONVERSIONFAILED                                                     Handle        = 0x8001012E\n\tCO_E_NOMATCHINGSIDFOUND                                                   Handle        = 0x8001012F\n\tCO_E_LOOKUPACCSIDFAILED                                                   Handle        = 0x80010130\n\tCO_E_NOMATCHINGNAMEFOUND                                                  Handle        = 0x80010131\n\tCO_E_LOOKUPACCNAMEFAILED                                                  Handle        = 0x80010132\n\tCO_E_SETSERLHNDLFAILED                                                    Handle        = 0x80010133\n\tCO_E_FAILEDTOGETWINDIR                                                    Handle        = 0x80010134\n\tCO_E_PATHTOOLONG                                                          Handle        = 0x80010135\n\tCO_E_FAILEDTOGENUUID                                                      Handle        = 0x80010136\n\tCO_E_FAILEDTOCREATEFILE                                                   Handle        = 0x80010137\n\tCO_E_FAILEDTOCLOSEHANDLE                                                  Handle        = 0x80010138\n\tCO_E_EXCEEDSYSACLLIMIT                                                    Handle        = 0x80010139\n\tCO_E_ACESINWRONGORDER                                                     Handle        = 0x8001013A\n\tCO_E_INCOMPATIBLESTREAMVERSION                                            Handle        = 0x8001013B\n\tCO_E_FAILEDTOOPENPROCESSTOKEN                                             Handle        = 0x8001013C\n\tCO_E_DECODEFAILED                                                         Handle        = 0x8001013D\n\tCO_E_ACNOTINITIALIZED                                                     Handle        = 0x8001013F\n\tCO_E_CANCEL_DISABLED                                                      Handle        = 0x80010140\n\tRPC_E_UNEXPECTED                                                          Handle        = 0x8001FFFF\n\tERROR_AUDITING_DISABLED                                                   Handle        = 0xC0090001\n\tERROR_ALL_SIDS_FILTERED                                                   Handle        = 0xC0090002\n\tERROR_BIZRULES_NOT_ENABLED                                                Handle        = 0xC0090003\n\tNTE_BAD_UID                                                               Handle        = 0x80090001\n\tNTE_BAD_HASH                                                              Handle        = 0x80090002\n\tNTE_BAD_KEY                                                               Handle        = 0x80090003\n\tNTE_BAD_LEN                                                               Handle        = 0x80090004\n\tNTE_BAD_DATA                                                              Handle        = 0x80090005\n\tNTE_BAD_SIGNATURE                                                         Handle        = 0x80090006\n\tNTE_BAD_VER                                                               Handle        = 0x80090007\n\tNTE_BAD_ALGID                                                             Handle        = 0x80090008\n\tNTE_BAD_FLAGS                                                             Handle        = 0x80090009\n\tNTE_BAD_TYPE                                                              Handle        = 0x8009000A\n\tNTE_BAD_KEY_STATE                                                         Handle        = 0x8009000B\n\tNTE_BAD_HASH_STATE                                                        Handle        = 0x8009000C\n\tNTE_NO_KEY                                                                Handle        = 0x8009000D\n\tNTE_NO_MEMORY                                                             Handle        = 0x8009000E\n\tNTE_EXISTS                                                                Handle        = 0x8009000F\n\tNTE_PERM                                                                  Handle        = 0x80090010\n\tNTE_NOT_FOUND                                                             Handle        = 0x80090011\n\tNTE_DOUBLE_ENCRYPT                                                        Handle        = 0x80090012\n\tNTE_BAD_PROVIDER                                                          Handle        = 0x80090013\n\tNTE_BAD_PROV_TYPE                                                         Handle        = 0x80090014\n\tNTE_BAD_PUBLIC_KEY                                                        Handle        = 0x80090015\n\tNTE_BAD_KEYSET                                                            Handle        = 0x80090016\n\tNTE_PROV_TYPE_NOT_DEF                                                     Handle        = 0x80090017\n\tNTE_PROV_TYPE_ENTRY_BAD                                                   Handle        = 0x80090018\n\tNTE_KEYSET_NOT_DEF                                                        Handle        = 0x80090019\n\tNTE_KEYSET_ENTRY_BAD                                                      Handle        = 0x8009001A\n\tNTE_PROV_TYPE_NO_MATCH                                                    Handle        = 0x8009001B\n\tNTE_SIGNATURE_FILE_BAD                                                    Handle        = 0x8009001C\n\tNTE_PROVIDER_DLL_FAIL                                                     Handle        = 0x8009001D\n\tNTE_PROV_DLL_NOT_FOUND                                                    Handle        = 0x8009001E\n\tNTE_BAD_KEYSET_PARAM                                                      Handle        = 0x8009001F\n\tNTE_FAIL                                                                  Handle        = 0x80090020\n\tNTE_SYS_ERR                                                               Handle        = 0x80090021\n\tNTE_SILENT_CONTEXT                                                        Handle        = 0x80090022\n\tNTE_TOKEN_KEYSET_STORAGE_FULL                                             Handle        = 0x80090023\n\tNTE_TEMPORARY_PROFILE                                                     Handle        = 0x80090024\n\tNTE_FIXEDPARAMETER                                                        Handle        = 0x80090025\n\tNTE_INVALID_HANDLE                                                        Handle        = 0x80090026\n\tNTE_INVALID_PARAMETER                                                     Handle        = 0x80090027\n\tNTE_BUFFER_TOO_SMALL                                                      Handle        = 0x80090028\n\tNTE_NOT_SUPPORTED                                                         Handle        = 0x80090029\n\tNTE_NO_MORE_ITEMS                                                         Handle        = 0x8009002A\n\tNTE_BUFFERS_OVERLAP                                                       Handle        = 0x8009002B\n\tNTE_DECRYPTION_FAILURE                                                    Handle        = 0x8009002C\n\tNTE_INTERNAL_ERROR                                                        Handle        = 0x8009002D\n\tNTE_UI_REQUIRED                                                           Handle        = 0x8009002E\n\tNTE_HMAC_NOT_SUPPORTED                                                    Handle        = 0x8009002F\n\tNTE_DEVICE_NOT_READY                                                      Handle        = 0x80090030\n\tNTE_AUTHENTICATION_IGNORED                                                Handle        = 0x80090031\n\tNTE_VALIDATION_FAILED                                                     Handle        = 0x80090032\n\tNTE_INCORRECT_PASSWORD                                                    Handle        = 0x80090033\n\tNTE_ENCRYPTION_FAILURE                                                    Handle        = 0x80090034\n\tNTE_DEVICE_NOT_FOUND                                                      Handle        = 0x80090035\n\tNTE_USER_CANCELLED                                                        Handle        = 0x80090036\n\tNTE_PASSWORD_CHANGE_REQUIRED                                              Handle        = 0x80090037\n\tNTE_NOT_ACTIVE_CONSOLE                                                    Handle        = 0x80090038\n\tSEC_E_INSUFFICIENT_MEMORY                                                 Handle        = 0x80090300\n\tSEC_E_INVALID_HANDLE                                                      Handle        = 0x80090301\n\tSEC_E_UNSUPPORTED_FUNCTION                                                Handle        = 0x80090302\n\tSEC_E_TARGET_UNKNOWN                                                      Handle        = 0x80090303\n\tSEC_E_INTERNAL_ERROR                                                      Handle        = 0x80090304\n\tSEC_E_SECPKG_NOT_FOUND                                                    Handle        = 0x80090305\n\tSEC_E_NOT_OWNER                                                           Handle        = 0x80090306\n\tSEC_E_CANNOT_INSTALL                                                      Handle        = 0x80090307\n\tSEC_E_INVALID_TOKEN                                                       Handle        = 0x80090308\n\tSEC_E_CANNOT_PACK                                                         Handle        = 0x80090309\n\tSEC_E_QOP_NOT_SUPPORTED                                                   Handle        = 0x8009030A\n\tSEC_E_NO_IMPERSONATION                                                    Handle        = 0x8009030B\n\tSEC_E_LOGON_DENIED                                                        Handle        = 0x8009030C\n\tSEC_E_UNKNOWN_CREDENTIALS                                                 Handle        = 0x8009030D\n\tSEC_E_NO_CREDENTIALS                                                      Handle        = 0x8009030E\n\tSEC_E_MESSAGE_ALTERED                                                     Handle        = 0x8009030F\n\tSEC_E_OUT_OF_SEQUENCE                                                     Handle        = 0x80090310\n\tSEC_E_NO_AUTHENTICATING_AUTHORITY                                         Handle        = 0x80090311\n\tSEC_I_CONTINUE_NEEDED                                                     Handle        = 0x00090312\n\tSEC_I_COMPLETE_NEEDED                                                     Handle        = 0x00090313\n\tSEC_I_COMPLETE_AND_CONTINUE                                               Handle        = 0x00090314\n\tSEC_I_LOCAL_LOGON                                                         Handle        = 0x00090315\n\tSEC_I_GENERIC_EXTENSION_RECEIVED                                          Handle        = 0x00090316\n\tSEC_E_BAD_PKGID                                                           Handle        = 0x80090316\n\tSEC_E_CONTEXT_EXPIRED                                                     Handle        = 0x80090317\n\tSEC_I_CONTEXT_EXPIRED                                                     Handle        = 0x00090317\n\tSEC_E_INCOMPLETE_MESSAGE                                                  Handle        = 0x80090318\n\tSEC_E_INCOMPLETE_CREDENTIALS                                              Handle        = 0x80090320\n\tSEC_E_BUFFER_TOO_SMALL                                                    Handle        = 0x80090321\n\tSEC_I_INCOMPLETE_CREDENTIALS                                              Handle        = 0x00090320\n\tSEC_I_RENEGOTIATE                                                         Handle        = 0x00090321\n\tSEC_E_WRONG_PRINCIPAL                                                     Handle        = 0x80090322\n\tSEC_I_NO_LSA_CONTEXT                                                      Handle        = 0x00090323\n\tSEC_E_TIME_SKEW                                                           Handle        = 0x80090324\n\tSEC_E_UNTRUSTED_ROOT                                                      Handle        = 0x80090325\n\tSEC_E_ILLEGAL_MESSAGE                                                     Handle        = 0x80090326\n\tSEC_E_CERT_UNKNOWN                                                        Handle        = 0x80090327\n\tSEC_E_CERT_EXPIRED                                                        Handle        = 0x80090328\n\tSEC_E_ENCRYPT_FAILURE                                                     Handle        = 0x80090329\n\tSEC_E_DECRYPT_FAILURE                                                     Handle        = 0x80090330\n\tSEC_E_ALGORITHM_MISMATCH                                                  Handle        = 0x80090331\n\tSEC_E_SECURITY_QOS_FAILED                                                 Handle        = 0x80090332\n\tSEC_E_UNFINISHED_CONTEXT_DELETED                                          Handle        = 0x80090333\n\tSEC_E_NO_TGT_REPLY                                                        Handle        = 0x80090334\n\tSEC_E_NO_IP_ADDRESSES                                                     Handle        = 0x80090335\n\tSEC_E_WRONG_CREDENTIAL_HANDLE                                             Handle        = 0x80090336\n\tSEC_E_CRYPTO_SYSTEM_INVALID                                               Handle        = 0x80090337\n\tSEC_E_MAX_REFERRALS_EXCEEDED                                              Handle        = 0x80090338\n\tSEC_E_MUST_BE_KDC                                                         Handle        = 0x80090339\n\tSEC_E_STRONG_CRYPTO_NOT_SUPPORTED                                         Handle        = 0x8009033A\n\tSEC_E_TOO_MANY_PRINCIPALS                                                 Handle        = 0x8009033B\n\tSEC_E_NO_PA_DATA                                                          Handle        = 0x8009033C\n\tSEC_E_PKINIT_NAME_MISMATCH                                                Handle        = 0x8009033D\n\tSEC_E_SMARTCARD_LOGON_REQUIRED                                            Handle        = 0x8009033E\n\tSEC_E_SHUTDOWN_IN_PROGRESS                                                Handle        = 0x8009033F\n\tSEC_E_KDC_INVALID_REQUEST                                                 Handle        = 0x80090340\n\tSEC_E_KDC_UNABLE_TO_REFER                                                 Handle        = 0x80090341\n\tSEC_E_KDC_UNKNOWN_ETYPE                                                   Handle        = 0x80090342\n\tSEC_E_UNSUPPORTED_PREAUTH                                                 Handle        = 0x80090343\n\tSEC_E_DELEGATION_REQUIRED                                                 Handle        = 0x80090345\n\tSEC_E_BAD_BINDINGS                                                        Handle        = 0x80090346\n\tSEC_E_MULTIPLE_ACCOUNTS                                                   Handle        = 0x80090347\n\tSEC_E_NO_KERB_KEY                                                         Handle        = 0x80090348\n\tSEC_E_CERT_WRONG_USAGE                                                    Handle        = 0x80090349\n\tSEC_E_DOWNGRADE_DETECTED                                                  Handle        = 0x80090350\n\tSEC_E_SMARTCARD_CERT_REVOKED                                              Handle        = 0x80090351\n\tSEC_E_ISSUING_CA_UNTRUSTED                                                Handle        = 0x80090352\n\tSEC_E_REVOCATION_OFFLINE_C                                                Handle        = 0x80090353\n\tSEC_E_PKINIT_CLIENT_FAILURE                                               Handle        = 0x80090354\n\tSEC_E_SMARTCARD_CERT_EXPIRED                                              Handle        = 0x80090355\n\tSEC_E_NO_S4U_PROT_SUPPORT                                                 Handle        = 0x80090356\n\tSEC_E_CROSSREALM_DELEGATION_FAILURE                                       Handle        = 0x80090357\n\tSEC_E_REVOCATION_OFFLINE_KDC                                              Handle        = 0x80090358\n\tSEC_E_ISSUING_CA_UNTRUSTED_KDC                                            Handle        = 0x80090359\n\tSEC_E_KDC_CERT_EXPIRED                                                    Handle        = 0x8009035A\n\tSEC_E_KDC_CERT_REVOKED                                                    Handle        = 0x8009035B\n\tSEC_I_SIGNATURE_NEEDED                                                    Handle        = 0x0009035C\n\tSEC_E_INVALID_PARAMETER                                                   Handle        = 0x8009035D\n\tSEC_E_DELEGATION_POLICY                                                   Handle        = 0x8009035E\n\tSEC_E_POLICY_NLTM_ONLY                                                    Handle        = 0x8009035F\n\tSEC_I_NO_RENEGOTIATION                                                    Handle        = 0x00090360\n\tSEC_E_NO_CONTEXT                                                          Handle        = 0x80090361\n\tSEC_E_PKU2U_CERT_FAILURE                                                  Handle        = 0x80090362\n\tSEC_E_MUTUAL_AUTH_FAILED                                                  Handle        = 0x80090363\n\tSEC_I_MESSAGE_FRAGMENT                                                    Handle        = 0x00090364\n\tSEC_E_ONLY_HTTPS_ALLOWED                                                  Handle        = 0x80090365\n\tSEC_I_CONTINUE_NEEDED_MESSAGE_OK                                          Handle        = 0x00090366\n\tSEC_E_APPLICATION_PROTOCOL_MISMATCH                                       Handle        = 0x80090367\n\tSEC_I_ASYNC_CALL_PENDING                                                  Handle        = 0x00090368\n\tSEC_E_INVALID_UPN_NAME                                                    Handle        = 0x80090369\n\tSEC_E_EXT_BUFFER_TOO_SMALL                                                Handle        = 0x8009036A\n\tSEC_E_INSUFFICIENT_BUFFERS                                                Handle        = 0x8009036B\n\tSEC_E_NO_SPM                                                                            = SEC_E_INTERNAL_ERROR\n\tSEC_E_NOT_SUPPORTED                                                                     = SEC_E_UNSUPPORTED_FUNCTION\n\tCRYPT_E_MSG_ERROR                                                         Handle        = 0x80091001\n\tCRYPT_E_UNKNOWN_ALGO                                                      Handle        = 0x80091002\n\tCRYPT_E_OID_FORMAT                                                        Handle        = 0x80091003\n\tCRYPT_E_INVALID_MSG_TYPE                                                  Handle        = 0x80091004\n\tCRYPT_E_UNEXPECTED_ENCODING                                               Handle        = 0x80091005\n\tCRYPT_E_AUTH_ATTR_MISSING                                                 Handle        = 0x80091006\n\tCRYPT_E_HASH_VALUE                                                        Handle        = 0x80091007\n\tCRYPT_E_INVALID_INDEX                                                     Handle        = 0x80091008\n\tCRYPT_E_ALREADY_DECRYPTED                                                 Handle        = 0x80091009\n\tCRYPT_E_NOT_DECRYPTED                                                     Handle        = 0x8009100A\n\tCRYPT_E_RECIPIENT_NOT_FOUND                                               Handle        = 0x8009100B\n\tCRYPT_E_CONTROL_TYPE                                                      Handle        = 0x8009100C\n\tCRYPT_E_ISSUER_SERIALNUMBER                                               Handle        = 0x8009100D\n\tCRYPT_E_SIGNER_NOT_FOUND                                                  Handle        = 0x8009100E\n\tCRYPT_E_ATTRIBUTES_MISSING                                                Handle        = 0x8009100F\n\tCRYPT_E_STREAM_MSG_NOT_READY                                              Handle        = 0x80091010\n\tCRYPT_E_STREAM_INSUFFICIENT_DATA                                          Handle        = 0x80091011\n\tCRYPT_I_NEW_PROTECTION_REQUIRED                                           Handle        = 0x00091012\n\tCRYPT_E_BAD_LEN                                                           Handle        = 0x80092001\n\tCRYPT_E_BAD_ENCODE                                                        Handle        = 0x80092002\n\tCRYPT_E_FILE_ERROR                                                        Handle        = 0x80092003\n\tCRYPT_E_NOT_FOUND                                                         Handle        = 0x80092004\n\tCRYPT_E_EXISTS                                                            Handle        = 0x80092005\n\tCRYPT_E_NO_PROVIDER                                                       Handle        = 0x80092006\n\tCRYPT_E_SELF_SIGNED                                                       Handle        = 0x80092007\n\tCRYPT_E_DELETED_PREV                                                      Handle        = 0x80092008\n\tCRYPT_E_NO_MATCH                                                          Handle        = 0x80092009\n\tCRYPT_E_UNEXPECTED_MSG_TYPE                                               Handle        = 0x8009200A\n\tCRYPT_E_NO_KEY_PROPERTY                                                   Handle        = 0x8009200B\n\tCRYPT_E_NO_DECRYPT_CERT                                                   Handle        = 0x8009200C\n\tCRYPT_E_BAD_MSG                                                           Handle        = 0x8009200D\n\tCRYPT_E_NO_SIGNER                                                         Handle        = 0x8009200E\n\tCRYPT_E_PENDING_CLOSE                                                     Handle        = 0x8009200F\n\tCRYPT_E_REVOKED                                                           Handle        = 0x80092010\n\tCRYPT_E_NO_REVOCATION_DLL                                                 Handle        = 0x80092011\n\tCRYPT_E_NO_REVOCATION_CHECK                                               Handle        = 0x80092012\n\tCRYPT_E_REVOCATION_OFFLINE                                                Handle        = 0x80092013\n\tCRYPT_E_NOT_IN_REVOCATION_DATABASE                                        Handle        = 0x80092014\n\tCRYPT_E_INVALID_NUMERIC_STRING                                            Handle        = 0x80092020\n\tCRYPT_E_INVALID_PRINTABLE_STRING                                          Handle        = 0x80092021\n\tCRYPT_E_INVALID_IA5_STRING                                                Handle        = 0x80092022\n\tCRYPT_E_INVALID_X500_STRING                                               Handle        = 0x80092023\n\tCRYPT_E_NOT_CHAR_STRING                                                   Handle        = 0x80092024\n\tCRYPT_E_FILERESIZED                                                       Handle        = 0x80092025\n\tCRYPT_E_SECURITY_SETTINGS                                                 Handle        = 0x80092026\n\tCRYPT_E_NO_VERIFY_USAGE_DLL                                               Handle        = 0x80092027\n\tCRYPT_E_NO_VERIFY_USAGE_CHECK                                             Handle        = 0x80092028\n\tCRYPT_E_VERIFY_USAGE_OFFLINE                                              Handle        = 0x80092029\n\tCRYPT_E_NOT_IN_CTL                                                        Handle        = 0x8009202A\n\tCRYPT_E_NO_TRUSTED_SIGNER                                                 Handle        = 0x8009202B\n\tCRYPT_E_MISSING_PUBKEY_PARA                                               Handle        = 0x8009202C\n\tCRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND                                   Handle        = 0x8009202D\n\tCRYPT_E_OSS_ERROR                                                         Handle        = 0x80093000\n\tOSS_MORE_BUF                                                              Handle        = 0x80093001\n\tOSS_NEGATIVE_UINTEGER                                                     Handle        = 0x80093002\n\tOSS_PDU_RANGE                                                             Handle        = 0x80093003\n\tOSS_MORE_INPUT                                                            Handle        = 0x80093004\n\tOSS_DATA_ERROR                                                            Handle        = 0x80093005\n\tOSS_BAD_ARG                                                               Handle        = 0x80093006\n\tOSS_BAD_VERSION                                                           Handle        = 0x80093007\n\tOSS_OUT_MEMORY                                                            Handle        = 0x80093008\n\tOSS_PDU_MISMATCH                                                          Handle        = 0x80093009\n\tOSS_LIMITED                                                               Handle        = 0x8009300A\n\tOSS_BAD_PTR                                                               Handle        = 0x8009300B\n\tOSS_BAD_TIME                                                              Handle        = 0x8009300C\n\tOSS_INDEFINITE_NOT_SUPPORTED                                              Handle        = 0x8009300D\n\tOSS_MEM_ERROR                                                             Handle        = 0x8009300E\n\tOSS_BAD_TABLE                                                             Handle        = 0x8009300F\n\tOSS_TOO_LONG                                                              Handle        = 0x80093010\n\tOSS_CONSTRAINT_VIOLATED                                                   Handle        = 0x80093011\n\tOSS_FATAL_ERROR                                                           Handle        = 0x80093012\n\tOSS_ACCESS_SERIALIZATION_ERROR                                            Handle        = 0x80093013\n\tOSS_NULL_TBL                                                              Handle        = 0x80093014\n\tOSS_NULL_FCN                                                              Handle        = 0x80093015\n\tOSS_BAD_ENCRULES                                                          Handle        = 0x80093016\n\tOSS_UNAVAIL_ENCRULES                                                      Handle        = 0x80093017\n\tOSS_CANT_OPEN_TRACE_WINDOW                                                Handle        = 0x80093018\n\tOSS_UNIMPLEMENTED                                                         Handle        = 0x80093019\n\tOSS_OID_DLL_NOT_LINKED                                                    Handle        = 0x8009301A\n\tOSS_CANT_OPEN_TRACE_FILE                                                  Handle        = 0x8009301B\n\tOSS_TRACE_FILE_ALREADY_OPEN                                               Handle        = 0x8009301C\n\tOSS_TABLE_MISMATCH                                                        Handle        = 0x8009301D\n\tOSS_TYPE_NOT_SUPPORTED                                                    Handle        = 0x8009301E\n\tOSS_REAL_DLL_NOT_LINKED                                                   Handle        = 0x8009301F\n\tOSS_REAL_CODE_NOT_LINKED                                                  Handle        = 0x80093020\n\tOSS_OUT_OF_RANGE                                                          Handle        = 0x80093021\n\tOSS_COPIER_DLL_NOT_LINKED                                                 Handle        = 0x80093022\n\tOSS_CONSTRAINT_DLL_NOT_LINKED                                             Handle        = 0x80093023\n\tOSS_COMPARATOR_DLL_NOT_LINKED                                             Handle        = 0x80093024\n\tOSS_COMPARATOR_CODE_NOT_LINKED                                            Handle        = 0x80093025\n\tOSS_MEM_MGR_DLL_NOT_LINKED                                                Handle        = 0x80093026\n\tOSS_PDV_DLL_NOT_LINKED                                                    Handle        = 0x80093027\n\tOSS_PDV_CODE_NOT_LINKED                                                   Handle        = 0x80093028\n\tOSS_API_DLL_NOT_LINKED                                                    Handle        = 0x80093029\n\tOSS_BERDER_DLL_NOT_LINKED                                                 Handle        = 0x8009302A\n\tOSS_PER_DLL_NOT_LINKED                                                    Handle        = 0x8009302B\n\tOSS_OPEN_TYPE_ERROR                                                       Handle        = 0x8009302C\n\tOSS_MUTEX_NOT_CREATED                                                     Handle        = 0x8009302D\n\tOSS_CANT_CLOSE_TRACE_FILE                                                 Handle        = 0x8009302E\n\tCRYPT_E_ASN1_ERROR                                                        Handle        = 0x80093100\n\tCRYPT_E_ASN1_INTERNAL                                                     Handle        = 0x80093101\n\tCRYPT_E_ASN1_EOD                                                          Handle        = 0x80093102\n\tCRYPT_E_ASN1_CORRUPT                                                      Handle        = 0x80093103\n\tCRYPT_E_ASN1_LARGE                                                        Handle        = 0x80093104\n\tCRYPT_E_ASN1_CONSTRAINT                                                   Handle        = 0x80093105\n\tCRYPT_E_ASN1_MEMORY                                                       Handle        = 0x80093106\n\tCRYPT_E_ASN1_OVERFLOW                                                     Handle        = 0x80093107\n\tCRYPT_E_ASN1_BADPDU                                                       Handle        = 0x80093108\n\tCRYPT_E_ASN1_BADARGS                                                      Handle        = 0x80093109\n\tCRYPT_E_ASN1_BADREAL                                                      Handle        = 0x8009310A\n\tCRYPT_E_ASN1_BADTAG                                                       Handle        = 0x8009310B\n\tCRYPT_E_ASN1_CHOICE                                                       Handle        = 0x8009310C\n\tCRYPT_E_ASN1_RULE                                                         Handle        = 0x8009310D\n\tCRYPT_E_ASN1_UTF8                                                         Handle        = 0x8009310E\n\tCRYPT_E_ASN1_PDU_TYPE                                                     Handle        = 0x80093133\n\tCRYPT_E_ASN1_NYI                                                          Handle        = 0x80093134\n\tCRYPT_E_ASN1_EXTENDED                                                     Handle        = 0x80093201\n\tCRYPT_E_ASN1_NOEOD                                                        Handle        = 0x80093202\n\tCERTSRV_E_BAD_REQUESTSUBJECT                                              Handle        = 0x80094001\n\tCERTSRV_E_NO_REQUEST                                                      Handle        = 0x80094002\n\tCERTSRV_E_BAD_REQUESTSTATUS                                               Handle        = 0x80094003\n\tCERTSRV_E_PROPERTY_EMPTY                                                  Handle        = 0x80094004\n\tCERTSRV_E_INVALID_CA_CERTIFICATE                                          Handle        = 0x80094005\n\tCERTSRV_E_SERVER_SUSPENDED                                                Handle        = 0x80094006\n\tCERTSRV_E_ENCODING_LENGTH                                                 Handle        = 0x80094007\n\tCERTSRV_E_ROLECONFLICT                                                    Handle        = 0x80094008\n\tCERTSRV_E_RESTRICTEDOFFICER                                               Handle        = 0x80094009\n\tCERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED                                     Handle        = 0x8009400A\n\tCERTSRV_E_NO_VALID_KRA                                                    Handle        = 0x8009400B\n\tCERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL                                        Handle        = 0x8009400C\n\tCERTSRV_E_NO_CAADMIN_DEFINED                                              Handle        = 0x8009400D\n\tCERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE                                      Handle        = 0x8009400E\n\tCERTSRV_E_NO_DB_SESSIONS                                                  Handle        = 0x8009400F\n\tCERTSRV_E_ALIGNMENT_FAULT                                                 Handle        = 0x80094010\n\tCERTSRV_E_ENROLL_DENIED                                                   Handle        = 0x80094011\n\tCERTSRV_E_TEMPLATE_DENIED                                                 Handle        = 0x80094012\n\tCERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE                                     Handle        = 0x80094013\n\tCERTSRV_E_ADMIN_DENIED_REQUEST                                            Handle        = 0x80094014\n\tCERTSRV_E_NO_POLICY_SERVER                                                Handle        = 0x80094015\n\tCERTSRV_E_WEAK_SIGNATURE_OR_KEY                                           Handle        = 0x80094016\n\tCERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED                                   Handle        = 0x80094017\n\tCERTSRV_E_ENCRYPTION_CERT_REQUIRED                                        Handle        = 0x80094018\n\tCERTSRV_E_UNSUPPORTED_CERT_TYPE                                           Handle        = 0x80094800\n\tCERTSRV_E_NO_CERT_TYPE                                                    Handle        = 0x80094801\n\tCERTSRV_E_TEMPLATE_CONFLICT                                               Handle        = 0x80094802\n\tCERTSRV_E_SUBJECT_ALT_NAME_REQUIRED                                       Handle        = 0x80094803\n\tCERTSRV_E_ARCHIVED_KEY_REQUIRED                                           Handle        = 0x80094804\n\tCERTSRV_E_SMIME_REQUIRED                                                  Handle        = 0x80094805\n\tCERTSRV_E_BAD_RENEWAL_SUBJECT                                             Handle        = 0x80094806\n\tCERTSRV_E_BAD_TEMPLATE_VERSION                                            Handle        = 0x80094807\n\tCERTSRV_E_TEMPLATE_POLICY_REQUIRED                                        Handle        = 0x80094808\n\tCERTSRV_E_SIGNATURE_POLICY_REQUIRED                                       Handle        = 0x80094809\n\tCERTSRV_E_SIGNATURE_COUNT                                                 Handle        = 0x8009480A\n\tCERTSRV_E_SIGNATURE_REJECTED                                              Handle        = 0x8009480B\n\tCERTSRV_E_ISSUANCE_POLICY_REQUIRED                                        Handle        = 0x8009480C\n\tCERTSRV_E_SUBJECT_UPN_REQUIRED                                            Handle        = 0x8009480D\n\tCERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED                                 Handle        = 0x8009480E\n\tCERTSRV_E_SUBJECT_DNS_REQUIRED                                            Handle        = 0x8009480F\n\tCERTSRV_E_ARCHIVED_KEY_UNEXPECTED                                         Handle        = 0x80094810\n\tCERTSRV_E_KEY_LENGTH                                                      Handle        = 0x80094811\n\tCERTSRV_E_SUBJECT_EMAIL_REQUIRED                                          Handle        = 0x80094812\n\tCERTSRV_E_UNKNOWN_CERT_TYPE                                               Handle        = 0x80094813\n\tCERTSRV_E_CERT_TYPE_OVERLAP                                               Handle        = 0x80094814\n\tCERTSRV_E_TOO_MANY_SIGNATURES                                             Handle        = 0x80094815\n\tCERTSRV_E_RENEWAL_BAD_PUBLIC_KEY                                          Handle        = 0x80094816\n\tCERTSRV_E_INVALID_EK                                                      Handle        = 0x80094817\n\tCERTSRV_E_INVALID_IDBINDING                                               Handle        = 0x80094818\n\tCERTSRV_E_INVALID_ATTESTATION                                             Handle        = 0x80094819\n\tCERTSRV_E_KEY_ATTESTATION                                                 Handle        = 0x8009481A\n\tCERTSRV_E_CORRUPT_KEY_ATTESTATION                                         Handle        = 0x8009481B\n\tCERTSRV_E_EXPIRED_CHALLENGE                                               Handle        = 0x8009481C\n\tCERTSRV_E_INVALID_RESPONSE                                                Handle        = 0x8009481D\n\tCERTSRV_E_INVALID_REQUESTID                                               Handle        = 0x8009481E\n\tCERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH                                 Handle        = 0x8009481F\n\tCERTSRV_E_PENDING_CLIENT_RESPONSE                                         Handle        = 0x80094820\n\tXENROLL_E_KEY_NOT_EXPORTABLE                                              Handle        = 0x80095000\n\tXENROLL_E_CANNOT_ADD_ROOT_CERT                                            Handle        = 0x80095001\n\tXENROLL_E_RESPONSE_KA_HASH_NOT_FOUND                                      Handle        = 0x80095002\n\tXENROLL_E_RESPONSE_UNEXPECTED_KA_HASH                                     Handle        = 0x80095003\n\tXENROLL_E_RESPONSE_KA_HASH_MISMATCH                                       Handle        = 0x80095004\n\tXENROLL_E_KEYSPEC_SMIME_MISMATCH                                          Handle        = 0x80095005\n\tTRUST_E_SYSTEM_ERROR                                                      Handle        = 0x80096001\n\tTRUST_E_NO_SIGNER_CERT                                                    Handle        = 0x80096002\n\tTRUST_E_COUNTER_SIGNER                                                    Handle        = 0x80096003\n\tTRUST_E_CERT_SIGNATURE                                                    Handle        = 0x80096004\n\tTRUST_E_TIME_STAMP                                                        Handle        = 0x80096005\n\tTRUST_E_BAD_DIGEST                                                        Handle        = 0x80096010\n\tTRUST_E_MALFORMED_SIGNATURE                                               Handle        = 0x80096011\n\tTRUST_E_BASIC_CONSTRAINTS                                                 Handle        = 0x80096019\n\tTRUST_E_FINANCIAL_CRITERIA                                                Handle        = 0x8009601E\n\tMSSIPOTF_E_OUTOFMEMRANGE                                                  Handle        = 0x80097001\n\tMSSIPOTF_E_CANTGETOBJECT                                                  Handle        = 0x80097002\n\tMSSIPOTF_E_NOHEADTABLE                                                    Handle        = 0x80097003\n\tMSSIPOTF_E_BAD_MAGICNUMBER                                                Handle        = 0x80097004\n\tMSSIPOTF_E_BAD_OFFSET_TABLE                                               Handle        = 0x80097005\n\tMSSIPOTF_E_TABLE_TAGORDER                                                 Handle        = 0x80097006\n\tMSSIPOTF_E_TABLE_LONGWORD                                                 Handle        = 0x80097007\n\tMSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT                                      Handle        = 0x80097008\n\tMSSIPOTF_E_TABLES_OVERLAP                                                 Handle        = 0x80097009\n\tMSSIPOTF_E_TABLE_PADBYTES                                                 Handle        = 0x8009700A\n\tMSSIPOTF_E_FILETOOSMALL                                                   Handle        = 0x8009700B\n\tMSSIPOTF_E_TABLE_CHECKSUM                                                 Handle        = 0x8009700C\n\tMSSIPOTF_E_FILE_CHECKSUM                                                  Handle        = 0x8009700D\n\tMSSIPOTF_E_FAILED_POLICY                                                  Handle        = 0x80097010\n\tMSSIPOTF_E_FAILED_HINTS_CHECK                                             Handle        = 0x80097011\n\tMSSIPOTF_E_NOT_OPENTYPE                                                   Handle        = 0x80097012\n\tMSSIPOTF_E_FILE                                                           Handle        = 0x80097013\n\tMSSIPOTF_E_CRYPT                                                          Handle        = 0x80097014\n\tMSSIPOTF_E_BADVERSION                                                     Handle        = 0x80097015\n\tMSSIPOTF_E_DSIG_STRUCTURE                                                 Handle        = 0x80097016\n\tMSSIPOTF_E_PCONST_CHECK                                                   Handle        = 0x80097017\n\tMSSIPOTF_E_STRUCTURE                                                      Handle        = 0x80097018\n\tERROR_CRED_REQUIRES_CONFIRMATION                                          Handle        = 0x80097019\n\tNTE_OP_OK                                                                 syscall.Errno = 0\n\tTRUST_E_PROVIDER_UNKNOWN                                                  Handle        = 0x800B0001\n\tTRUST_E_ACTION_UNKNOWN                                                    Handle        = 0x800B0002\n\tTRUST_E_SUBJECT_FORM_UNKNOWN                                              Handle        = 0x800B0003\n\tTRUST_E_SUBJECT_NOT_TRUSTED                                               Handle        = 0x800B0004\n\tDIGSIG_E_ENCODE                                                           Handle        = 0x800B0005\n\tDIGSIG_E_DECODE                                                           Handle        = 0x800B0006\n\tDIGSIG_E_EXTENSIBILITY                                                    Handle        = 0x800B0007\n\tDIGSIG_E_CRYPTO                                                           Handle        = 0x800B0008\n\tPERSIST_E_SIZEDEFINITE                                                    Handle        = 0x800B0009\n\tPERSIST_E_SIZEINDEFINITE                                                  Handle        = 0x800B000A\n\tPERSIST_E_NOTSELFSIZING                                                   Handle        = 0x800B000B\n\tTRUST_E_NOSIGNATURE                                                       Handle        = 0x800B0100\n\tCERT_E_EXPIRED                                                            Handle        = 0x800B0101\n\tCERT_E_VALIDITYPERIODNESTING                                              Handle        = 0x800B0102\n\tCERT_E_ROLE                                                               Handle        = 0x800B0103\n\tCERT_E_PATHLENCONST                                                       Handle        = 0x800B0104\n\tCERT_E_CRITICAL                                                           Handle        = 0x800B0105\n\tCERT_E_PURPOSE                                                            Handle        = 0x800B0106\n\tCERT_E_ISSUERCHAINING                                                     Handle        = 0x800B0107\n\tCERT_E_MALFORMED                                                          Handle        = 0x800B0108\n\tCERT_E_UNTRUSTEDROOT                                                      Handle        = 0x800B0109\n\tCERT_E_CHAINING                                                           Handle        = 0x800B010A\n\tTRUST_E_FAIL                                                              Handle        = 0x800B010B\n\tCERT_E_REVOKED                                                            Handle        = 0x800B010C\n\tCERT_E_UNTRUSTEDTESTROOT                                                  Handle        = 0x800B010D\n\tCERT_E_REVOCATION_FAILURE                                                 Handle        = 0x800B010E\n\tCERT_E_CN_NO_MATCH                                                        Handle        = 0x800B010F\n\tCERT_E_WRONG_USAGE                                                        Handle        = 0x800B0110\n\tTRUST_E_EXPLICIT_DISTRUST                                                 Handle        = 0x800B0111\n\tCERT_E_UNTRUSTEDCA                                                        Handle        = 0x800B0112\n\tCERT_E_INVALID_POLICY                                                     Handle        = 0x800B0113\n\tCERT_E_INVALID_NAME                                                       Handle        = 0x800B0114\n\tSPAPI_E_EXPECTED_SECTION_NAME                                             Handle        = 0x800F0000\n\tSPAPI_E_BAD_SECTION_NAME_LINE                                             Handle        = 0x800F0001\n\tSPAPI_E_SECTION_NAME_TOO_LONG                                             Handle        = 0x800F0002\n\tSPAPI_E_GENERAL_SYNTAX                                                    Handle        = 0x800F0003\n\tSPAPI_E_WRONG_INF_STYLE                                                   Handle        = 0x800F0100\n\tSPAPI_E_SECTION_NOT_FOUND                                                 Handle        = 0x800F0101\n\tSPAPI_E_LINE_NOT_FOUND                                                    Handle        = 0x800F0102\n\tSPAPI_E_NO_BACKUP                                                         Handle        = 0x800F0103\n\tSPAPI_E_NO_ASSOCIATED_CLASS                                               Handle        = 0x800F0200\n\tSPAPI_E_CLASS_MISMATCH                                                    Handle        = 0x800F0201\n\tSPAPI_E_DUPLICATE_FOUND                                                   Handle        = 0x800F0202\n\tSPAPI_E_NO_DRIVER_SELECTED                                                Handle        = 0x800F0203\n\tSPAPI_E_KEY_DOES_NOT_EXIST                                                Handle        = 0x800F0204\n\tSPAPI_E_INVALID_DEVINST_NAME                                              Handle        = 0x800F0205\n\tSPAPI_E_INVALID_CLASS                                                     Handle        = 0x800F0206\n\tSPAPI_E_DEVINST_ALREADY_EXISTS                                            Handle        = 0x800F0207\n\tSPAPI_E_DEVINFO_NOT_REGISTERED                                            Handle        = 0x800F0208\n\tSPAPI_E_INVALID_REG_PROPERTY                                              Handle        = 0x800F0209\n\tSPAPI_E_NO_INF                                                            Handle        = 0x800F020A\n\tSPAPI_E_NO_SUCH_DEVINST                                                   Handle        = 0x800F020B\n\tSPAPI_E_CANT_LOAD_CLASS_ICON                                              Handle        = 0x800F020C\n\tSPAPI_E_INVALID_CLASS_INSTALLER                                           Handle        = 0x800F020D\n\tSPAPI_E_DI_DO_DEFAULT                                                     Handle        = 0x800F020E\n\tSPAPI_E_DI_NOFILECOPY                                                     Handle        = 0x800F020F\n\tSPAPI_E_INVALID_HWPROFILE                                                 Handle        = 0x800F0210\n\tSPAPI_E_NO_DEVICE_SELECTED                                                Handle        = 0x800F0211\n\tSPAPI_E_DEVINFO_LIST_LOCKED                                               Handle        = 0x800F0212\n\tSPAPI_E_DEVINFO_DATA_LOCKED                                               Handle        = 0x800F0213\n\tSPAPI_E_DI_BAD_PATH                                                       Handle        = 0x800F0214\n\tSPAPI_E_NO_CLASSINSTALL_PARAMS                                            Handle        = 0x800F0215\n\tSPAPI_E_FILEQUEUE_LOCKED                                                  Handle        = 0x800F0216\n\tSPAPI_E_BAD_SERVICE_INSTALLSECT                                           Handle        = 0x800F0217\n\tSPAPI_E_NO_CLASS_DRIVER_LIST                                              Handle        = 0x800F0218\n\tSPAPI_E_NO_ASSOCIATED_SERVICE                                             Handle        = 0x800F0219\n\tSPAPI_E_NO_DEFAULT_DEVICE_INTERFACE                                       Handle        = 0x800F021A\n\tSPAPI_E_DEVICE_INTERFACE_ACTIVE                                           Handle        = 0x800F021B\n\tSPAPI_E_DEVICE_INTERFACE_REMOVED                                          Handle        = 0x800F021C\n\tSPAPI_E_BAD_INTERFACE_INSTALLSECT                                         Handle        = 0x800F021D\n\tSPAPI_E_NO_SUCH_INTERFACE_CLASS                                           Handle        = 0x800F021E\n\tSPAPI_E_INVALID_REFERENCE_STRING                                          Handle        = 0x800F021F\n\tSPAPI_E_INVALID_MACHINENAME                                               Handle        = 0x800F0220\n\tSPAPI_E_REMOTE_COMM_FAILURE                                               Handle        = 0x800F0221\n\tSPAPI_E_MACHINE_UNAVAILABLE                                               Handle        = 0x800F0222\n\tSPAPI_E_NO_CONFIGMGR_SERVICES                                             Handle        = 0x800F0223\n\tSPAPI_E_INVALID_PROPPAGE_PROVIDER                                         Handle        = 0x800F0224\n\tSPAPI_E_NO_SUCH_DEVICE_INTERFACE                                          Handle        = 0x800F0225\n\tSPAPI_E_DI_POSTPROCESSING_REQUIRED                                        Handle        = 0x800F0226\n\tSPAPI_E_INVALID_COINSTALLER                                               Handle        = 0x800F0227\n\tSPAPI_E_NO_COMPAT_DRIVERS                                                 Handle        = 0x800F0228\n\tSPAPI_E_NO_DEVICE_ICON                                                    Handle        = 0x800F0229\n\tSPAPI_E_INVALID_INF_LOGCONFIG                                             Handle        = 0x800F022A\n\tSPAPI_E_DI_DONT_INSTALL                                                   Handle        = 0x800F022B\n\tSPAPI_E_INVALID_FILTER_DRIVER                                             Handle        = 0x800F022C\n\tSPAPI_E_NON_WINDOWS_NT_DRIVER                                             Handle        = 0x800F022D\n\tSPAPI_E_NON_WINDOWS_DRIVER                                                Handle        = 0x800F022E\n\tSPAPI_E_NO_CATALOG_FOR_OEM_INF                                            Handle        = 0x800F022F\n\tSPAPI_E_DEVINSTALL_QUEUE_NONNATIVE                                        Handle        = 0x800F0230\n\tSPAPI_E_NOT_DISABLEABLE                                                   Handle        = 0x800F0231\n\tSPAPI_E_CANT_REMOVE_DEVINST                                               Handle        = 0x800F0232\n\tSPAPI_E_INVALID_TARGET                                                    Handle        = 0x800F0233\n\tSPAPI_E_DRIVER_NONNATIVE                                                  Handle        = 0x800F0234\n\tSPAPI_E_IN_WOW64                                                          Handle        = 0x800F0235\n\tSPAPI_E_SET_SYSTEM_RESTORE_POINT                                          Handle        = 0x800F0236\n\tSPAPI_E_INCORRECTLY_COPIED_INF                                            Handle        = 0x800F0237\n\tSPAPI_E_SCE_DISABLED                                                      Handle        = 0x800F0238\n\tSPAPI_E_UNKNOWN_EXCEPTION                                                 Handle        = 0x800F0239\n\tSPAPI_E_PNP_REGISTRY_ERROR                                                Handle        = 0x800F023A\n\tSPAPI_E_REMOTE_REQUEST_UNSUPPORTED                                        Handle        = 0x800F023B\n\tSPAPI_E_NOT_AN_INSTALLED_OEM_INF                                          Handle        = 0x800F023C\n\tSPAPI_E_INF_IN_USE_BY_DEVICES                                             Handle        = 0x800F023D\n\tSPAPI_E_DI_FUNCTION_OBSOLETE                                              Handle        = 0x800F023E\n\tSPAPI_E_NO_AUTHENTICODE_CATALOG                                           Handle        = 0x800F023F\n\tSPAPI_E_AUTHENTICODE_DISALLOWED                                           Handle        = 0x800F0240\n\tSPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER                                    Handle        = 0x800F0241\n\tSPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED                                Handle        = 0x800F0242\n\tSPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED                                Handle        = 0x800F0243\n\tSPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH                                    Handle        = 0x800F0244\n\tSPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE                                    Handle        = 0x800F0245\n\tSPAPI_E_DEVICE_INSTALLER_NOT_READY                                        Handle        = 0x800F0246\n\tSPAPI_E_DRIVER_STORE_ADD_FAILED                                           Handle        = 0x800F0247\n\tSPAPI_E_DEVICE_INSTALL_BLOCKED                                            Handle        = 0x800F0248\n\tSPAPI_E_DRIVER_INSTALL_BLOCKED                                            Handle        = 0x800F0249\n\tSPAPI_E_WRONG_INF_TYPE                                                    Handle        = 0x800F024A\n\tSPAPI_E_FILE_HASH_NOT_IN_CATALOG                                          Handle        = 0x800F024B\n\tSPAPI_E_DRIVER_STORE_DELETE_FAILED                                        Handle        = 0x800F024C\n\tSPAPI_E_UNRECOVERABLE_STACK_OVERFLOW                                      Handle        = 0x800F0300\n\tSPAPI_E_ERROR_NOT_INSTALLED                                               Handle        = 0x800F1000\n\tSCARD_S_SUCCESS                                                                         = S_OK\n\tSCARD_F_INTERNAL_ERROR                                                    Handle        = 0x80100001\n\tSCARD_E_CANCELLED                                                         Handle        = 0x80100002\n\tSCARD_E_INVALID_HANDLE                                                    Handle        = 0x80100003\n\tSCARD_E_INVALID_PARAMETER                                                 Handle        = 0x80100004\n\tSCARD_E_INVALID_TARGET                                                    Handle        = 0x80100005\n\tSCARD_E_NO_MEMORY                                                         Handle        = 0x80100006\n\tSCARD_F_WAITED_TOO_LONG                                                   Handle        = 0x80100007\n\tSCARD_E_INSUFFICIENT_BUFFER                                               Handle        = 0x80100008\n\tSCARD_E_UNKNOWN_READER                                                    Handle        = 0x80100009\n\tSCARD_E_TIMEOUT                                                           Handle        = 0x8010000A\n\tSCARD_E_SHARING_VIOLATION                                                 Handle        = 0x8010000B\n\tSCARD_E_NO_SMARTCARD                                                      Handle        = 0x8010000C\n\tSCARD_E_UNKNOWN_CARD                                                      Handle        = 0x8010000D\n\tSCARD_E_CANT_DISPOSE                                                      Handle        = 0x8010000E\n\tSCARD_E_PROTO_MISMATCH                                                    Handle        = 0x8010000F\n\tSCARD_E_NOT_READY                                                         Handle        = 0x80100010\n\tSCARD_E_INVALID_VALUE                                                     Handle        = 0x80100011\n\tSCARD_E_SYSTEM_CANCELLED                                                  Handle        = 0x80100012\n\tSCARD_F_COMM_ERROR                                                        Handle        = 0x80100013\n\tSCARD_F_UNKNOWN_ERROR                                                     Handle        = 0x80100014\n\tSCARD_E_INVALID_ATR                                                       Handle        = 0x80100015\n\tSCARD_E_NOT_TRANSACTED                                                    Handle        = 0x80100016\n\tSCARD_E_READER_UNAVAILABLE                                                Handle        = 0x80100017\n\tSCARD_P_SHUTDOWN                                                          Handle        = 0x80100018\n\tSCARD_E_PCI_TOO_SMALL                                                     Handle        = 0x80100019\n\tSCARD_E_READER_UNSUPPORTED                                                Handle        = 0x8010001A\n\tSCARD_E_DUPLICATE_READER                                                  Handle        = 0x8010001B\n\tSCARD_E_CARD_UNSUPPORTED                                                  Handle        = 0x8010001C\n\tSCARD_E_NO_SERVICE                                                        Handle        = 0x8010001D\n\tSCARD_E_SERVICE_STOPPED                                                   Handle        = 0x8010001E\n\tSCARD_E_UNEXPECTED                                                        Handle        = 0x8010001F\n\tSCARD_E_ICC_INSTALLATION                                                  Handle        = 0x80100020\n\tSCARD_E_ICC_CREATEORDER                                                   Handle        = 0x80100021\n\tSCARD_E_UNSUPPORTED_FEATURE                                               Handle        = 0x80100022\n\tSCARD_E_DIR_NOT_FOUND                                                     Handle        = 0x80100023\n\tSCARD_E_FILE_NOT_FOUND                                                    Handle        = 0x80100024\n\tSCARD_E_NO_DIR                                                            Handle        = 0x80100025\n\tSCARD_E_NO_FILE                                                           Handle        = 0x80100026\n\tSCARD_E_NO_ACCESS                                                         Handle        = 0x80100027\n\tSCARD_E_WRITE_TOO_MANY                                                    Handle        = 0x80100028\n\tSCARD_E_BAD_SEEK                                                          Handle        = 0x80100029\n\tSCARD_E_INVALID_CHV                                                       Handle        = 0x8010002A\n\tSCARD_E_UNKNOWN_RES_MNG                                                   Handle        = 0x8010002B\n\tSCARD_E_NO_SUCH_CERTIFICATE                                               Handle        = 0x8010002C\n\tSCARD_E_CERTIFICATE_UNAVAILABLE                                           Handle        = 0x8010002D\n\tSCARD_E_NO_READERS_AVAILABLE                                              Handle        = 0x8010002E\n\tSCARD_E_COMM_DATA_LOST                                                    Handle        = 0x8010002F\n\tSCARD_E_NO_KEY_CONTAINER                                                  Handle        = 0x80100030\n\tSCARD_E_SERVER_TOO_BUSY                                                   Handle        = 0x80100031\n\tSCARD_E_PIN_CACHE_EXPIRED                                                 Handle        = 0x80100032\n\tSCARD_E_NO_PIN_CACHE                                                      Handle        = 0x80100033\n\tSCARD_E_READ_ONLY_CARD                                                    Handle        = 0x80100034\n\tSCARD_W_UNSUPPORTED_CARD                                                  Handle        = 0x80100065\n\tSCARD_W_UNRESPONSIVE_CARD                                                 Handle        = 0x80100066\n\tSCARD_W_UNPOWERED_CARD                                                    Handle        = 0x80100067\n\tSCARD_W_RESET_CARD                                                        Handle        = 0x80100068\n\tSCARD_W_REMOVED_CARD                                                      Handle        = 0x80100069\n\tSCARD_W_SECURITY_VIOLATION                                                Handle        = 0x8010006A\n\tSCARD_W_WRONG_CHV                                                         Handle        = 0x8010006B\n\tSCARD_W_CHV_BLOCKED                                                       Handle        = 0x8010006C\n\tSCARD_W_EOF                                                               Handle        = 0x8010006D\n\tSCARD_W_CANCELLED_BY_USER                                                 Handle        = 0x8010006E\n\tSCARD_W_CARD_NOT_AUTHENTICATED                                            Handle        = 0x8010006F\n\tSCARD_W_CACHE_ITEM_NOT_FOUND                                              Handle        = 0x80100070\n\tSCARD_W_CACHE_ITEM_STALE                                                  Handle        = 0x80100071\n\tSCARD_W_CACHE_ITEM_TOO_BIG                                                Handle        = 0x80100072\n\tCOMADMIN_E_OBJECTERRORS                                                   Handle        = 0x80110401\n\tCOMADMIN_E_OBJECTINVALID                                                  Handle        = 0x80110402\n\tCOMADMIN_E_KEYMISSING                                                     Handle        = 0x80110403\n\tCOMADMIN_E_ALREADYINSTALLED                                               Handle        = 0x80110404\n\tCOMADMIN_E_APP_FILE_WRITEFAIL                                             Handle        = 0x80110407\n\tCOMADMIN_E_APP_FILE_READFAIL                                              Handle        = 0x80110408\n\tCOMADMIN_E_APP_FILE_VERSION                                               Handle        = 0x80110409\n\tCOMADMIN_E_BADPATH                                                        Handle        = 0x8011040A\n\tCOMADMIN_E_APPLICATIONEXISTS                                              Handle        = 0x8011040B\n\tCOMADMIN_E_ROLEEXISTS                                                     Handle        = 0x8011040C\n\tCOMADMIN_E_CANTCOPYFILE                                                   Handle        = 0x8011040D\n\tCOMADMIN_E_NOUSER                                                         Handle        = 0x8011040F\n\tCOMADMIN_E_INVALIDUSERIDS                                                 Handle        = 0x80110410\n\tCOMADMIN_E_NOREGISTRYCLSID                                                Handle        = 0x80110411\n\tCOMADMIN_E_BADREGISTRYPROGID                                              Handle        = 0x80110412\n\tCOMADMIN_E_AUTHENTICATIONLEVEL                                            Handle        = 0x80110413\n\tCOMADMIN_E_USERPASSWDNOTVALID                                             Handle        = 0x80110414\n\tCOMADMIN_E_CLSIDORIIDMISMATCH                                             Handle        = 0x80110418\n\tCOMADMIN_E_REMOTEINTERFACE                                                Handle        = 0x80110419\n\tCOMADMIN_E_DLLREGISTERSERVER                                              Handle        = 0x8011041A\n\tCOMADMIN_E_NOSERVERSHARE                                                  Handle        = 0x8011041B\n\tCOMADMIN_E_DLLLOADFAILED                                                  Handle        = 0x8011041D\n\tCOMADMIN_E_BADREGISTRYLIBID                                               Handle        = 0x8011041E\n\tCOMADMIN_E_APPDIRNOTFOUND                                                 Handle        = 0x8011041F\n\tCOMADMIN_E_REGISTRARFAILED                                                Handle        = 0x80110423\n\tCOMADMIN_E_COMPFILE_DOESNOTEXIST                                          Handle        = 0x80110424\n\tCOMADMIN_E_COMPFILE_LOADDLLFAIL                                           Handle        = 0x80110425\n\tCOMADMIN_E_COMPFILE_GETCLASSOBJ                                           Handle        = 0x80110426\n\tCOMADMIN_E_COMPFILE_CLASSNOTAVAIL                                         Handle        = 0x80110427\n\tCOMADMIN_E_COMPFILE_BADTLB                                                Handle        = 0x80110428\n\tCOMADMIN_E_COMPFILE_NOTINSTALLABLE                                        Handle        = 0x80110429\n\tCOMADMIN_E_NOTCHANGEABLE                                                  Handle        = 0x8011042A\n\tCOMADMIN_E_NOTDELETEABLE                                                  Handle        = 0x8011042B\n\tCOMADMIN_E_SESSION                                                        Handle        = 0x8011042C\n\tCOMADMIN_E_COMP_MOVE_LOCKED                                               Handle        = 0x8011042D\n\tCOMADMIN_E_COMP_MOVE_BAD_DEST                                             Handle        = 0x8011042E\n\tCOMADMIN_E_REGISTERTLB                                                    Handle        = 0x80110430\n\tCOMADMIN_E_SYSTEMAPP                                                      Handle        = 0x80110433\n\tCOMADMIN_E_COMPFILE_NOREGISTRAR                                           Handle        = 0x80110434\n\tCOMADMIN_E_COREQCOMPINSTALLED                                             Handle        = 0x80110435\n\tCOMADMIN_E_SERVICENOTINSTALLED                                            Handle        = 0x80110436\n\tCOMADMIN_E_PROPERTYSAVEFAILED                                             Handle        = 0x80110437\n\tCOMADMIN_E_OBJECTEXISTS                                                   Handle        = 0x80110438\n\tCOMADMIN_E_COMPONENTEXISTS                                                Handle        = 0x80110439\n\tCOMADMIN_E_REGFILE_CORRUPT                                                Handle        = 0x8011043B\n\tCOMADMIN_E_PROPERTY_OVERFLOW                                              Handle        = 0x8011043C\n\tCOMADMIN_E_NOTINREGISTRY                                                  Handle        = 0x8011043E\n\tCOMADMIN_E_OBJECTNOTPOOLABLE                                              Handle        = 0x8011043F\n\tCOMADMIN_E_APPLID_MATCHES_CLSID                                           Handle        = 0x80110446\n\tCOMADMIN_E_ROLE_DOES_NOT_EXIST                                            Handle        = 0x80110447\n\tCOMADMIN_E_START_APP_NEEDS_COMPONENTS                                     Handle        = 0x80110448\n\tCOMADMIN_E_REQUIRES_DIFFERENT_PLATFORM                                    Handle        = 0x80110449\n\tCOMADMIN_E_CAN_NOT_EXPORT_APP_PROXY                                       Handle        = 0x8011044A\n\tCOMADMIN_E_CAN_NOT_START_APP                                              Handle        = 0x8011044B\n\tCOMADMIN_E_CAN_NOT_EXPORT_SYS_APP                                         Handle        = 0x8011044C\n\tCOMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT                                    Handle        = 0x8011044D\n\tCOMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER                                  Handle        = 0x8011044E\n\tCOMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE                                     Handle        = 0x8011044F\n\tCOMADMIN_E_BASE_PARTITION_ONLY                                            Handle        = 0x80110450\n\tCOMADMIN_E_START_APP_DISABLED                                             Handle        = 0x80110451\n\tCOMADMIN_E_CAT_DUPLICATE_PARTITION_NAME                                   Handle        = 0x80110457\n\tCOMADMIN_E_CAT_INVALID_PARTITION_NAME                                     Handle        = 0x80110458\n\tCOMADMIN_E_CAT_PARTITION_IN_USE                                           Handle        = 0x80110459\n\tCOMADMIN_E_FILE_PARTITION_DUPLICATE_FILES                                 Handle        = 0x8011045A\n\tCOMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED                            Handle        = 0x8011045B\n\tCOMADMIN_E_AMBIGUOUS_APPLICATION_NAME                                     Handle        = 0x8011045C\n\tCOMADMIN_E_AMBIGUOUS_PARTITION_NAME                                       Handle        = 0x8011045D\n\tCOMADMIN_E_REGDB_NOTINITIALIZED                                           Handle        = 0x80110472\n\tCOMADMIN_E_REGDB_NOTOPEN                                                  Handle        = 0x80110473\n\tCOMADMIN_E_REGDB_SYSTEMERR                                                Handle        = 0x80110474\n\tCOMADMIN_E_REGDB_ALREADYRUNNING                                           Handle        = 0x80110475\n\tCOMADMIN_E_MIG_VERSIONNOTSUPPORTED                                        Handle        = 0x80110480\n\tCOMADMIN_E_MIG_SCHEMANOTFOUND                                             Handle        = 0x80110481\n\tCOMADMIN_E_CAT_BITNESSMISMATCH                                            Handle        = 0x80110482\n\tCOMADMIN_E_CAT_UNACCEPTABLEBITNESS                                        Handle        = 0x80110483\n\tCOMADMIN_E_CAT_WRONGAPPBITNESS                                            Handle        = 0x80110484\n\tCOMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED                                 Handle        = 0x80110485\n\tCOMADMIN_E_CAT_SERVERFAULT                                                Handle        = 0x80110486\n\tCOMQC_E_APPLICATION_NOT_QUEUED                                            Handle        = 0x80110600\n\tCOMQC_E_NO_QUEUEABLE_INTERFACES                                           Handle        = 0x80110601\n\tCOMQC_E_QUEUING_SERVICE_NOT_AVAILABLE                                     Handle        = 0x80110602\n\tCOMQC_E_NO_IPERSISTSTREAM                                                 Handle        = 0x80110603\n\tCOMQC_E_BAD_MESSAGE                                                       Handle        = 0x80110604\n\tCOMQC_E_UNAUTHENTICATED                                                   Handle        = 0x80110605\n\tCOMQC_E_UNTRUSTED_ENQUEUER                                                Handle        = 0x80110606\n\tMSDTC_E_DUPLICATE_RESOURCE                                                Handle        = 0x80110701\n\tCOMADMIN_E_OBJECT_PARENT_MISSING                                          Handle        = 0x80110808\n\tCOMADMIN_E_OBJECT_DOES_NOT_EXIST                                          Handle        = 0x80110809\n\tCOMADMIN_E_APP_NOT_RUNNING                                                Handle        = 0x8011080A\n\tCOMADMIN_E_INVALID_PARTITION                                              Handle        = 0x8011080B\n\tCOMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE                              Handle        = 0x8011080D\n\tCOMADMIN_E_USER_IN_SET                                                    Handle        = 0x8011080E\n\tCOMADMIN_E_CANTRECYCLELIBRARYAPPS                                         Handle        = 0x8011080F\n\tCOMADMIN_E_CANTRECYCLESERVICEAPPS                                         Handle        = 0x80110811\n\tCOMADMIN_E_PROCESSALREADYRECYCLED                                         Handle        = 0x80110812\n\tCOMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED                                  Handle        = 0x80110813\n\tCOMADMIN_E_CANTMAKEINPROCSERVICE                                          Handle        = 0x80110814\n\tCOMADMIN_E_PROGIDINUSEBYCLSID                                             Handle        = 0x80110815\n\tCOMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET                                   Handle        = 0x80110816\n\tCOMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED                                  Handle        = 0x80110817\n\tCOMADMIN_E_PARTITION_ACCESSDENIED                                         Handle        = 0x80110818\n\tCOMADMIN_E_PARTITION_MSI_ONLY                                             Handle        = 0x80110819\n\tCOMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT                          Handle        = 0x8011081A\n\tCOMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS                  Handle        = 0x8011081B\n\tCOMADMIN_E_COMP_MOVE_SOURCE                                               Handle        = 0x8011081C\n\tCOMADMIN_E_COMP_MOVE_DEST                                                 Handle        = 0x8011081D\n\tCOMADMIN_E_COMP_MOVE_PRIVATE                                              Handle        = 0x8011081E\n\tCOMADMIN_E_BASEPARTITION_REQUIRED_IN_SET                                  Handle        = 0x8011081F\n\tCOMADMIN_E_CANNOT_ALIAS_EVENTCLASS                                        Handle        = 0x80110820\n\tCOMADMIN_E_PRIVATE_ACCESSDENIED                                           Handle        = 0x80110821\n\tCOMADMIN_E_SAFERINVALID                                                   Handle        = 0x80110822\n\tCOMADMIN_E_REGISTRY_ACCESSDENIED                                          Handle        = 0x80110823\n\tCOMADMIN_E_PARTITIONS_DISABLED                                            Handle        = 0x80110824\n\tWER_S_REPORT_DEBUG                                                        Handle        = 0x001B0000\n\tWER_S_REPORT_UPLOADED                                                     Handle        = 0x001B0001\n\tWER_S_REPORT_QUEUED                                                       Handle        = 0x001B0002\n\tWER_S_DISABLED                                                            Handle        = 0x001B0003\n\tWER_S_SUSPENDED_UPLOAD                                                    Handle        = 0x001B0004\n\tWER_S_DISABLED_QUEUE                                                      Handle        = 0x001B0005\n\tWER_S_DISABLED_ARCHIVE                                                    Handle        = 0x001B0006\n\tWER_S_REPORT_ASYNC                                                        Handle        = 0x001B0007\n\tWER_S_IGNORE_ASSERT_INSTANCE                                              Handle        = 0x001B0008\n\tWER_S_IGNORE_ALL_ASSERTS                                                  Handle        = 0x001B0009\n\tWER_S_ASSERT_CONTINUE                                                     Handle        = 0x001B000A\n\tWER_S_THROTTLED                                                           Handle        = 0x001B000B\n\tWER_S_REPORT_UPLOADED_CAB                                                 Handle        = 0x001B000C\n\tWER_E_CRASH_FAILURE                                                       Handle        = 0x801B8000\n\tWER_E_CANCELED                                                            Handle        = 0x801B8001\n\tWER_E_NETWORK_FAILURE                                                     Handle        = 0x801B8002\n\tWER_E_NOT_INITIALIZED                                                     Handle        = 0x801B8003\n\tWER_E_ALREADY_REPORTING                                                   Handle        = 0x801B8004\n\tWER_E_DUMP_THROTTLED                                                      Handle        = 0x801B8005\n\tWER_E_INSUFFICIENT_CONSENT                                                Handle        = 0x801B8006\n\tWER_E_TOO_HEAVY                                                           Handle        = 0x801B8007\n\tERROR_FLT_IO_COMPLETE                                                     Handle        = 0x001F0001\n\tERROR_FLT_NO_HANDLER_DEFINED                                              Handle        = 0x801F0001\n\tERROR_FLT_CONTEXT_ALREADY_DEFINED                                         Handle        = 0x801F0002\n\tERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST                                    Handle        = 0x801F0003\n\tERROR_FLT_DISALLOW_FAST_IO                                                Handle        = 0x801F0004\n\tERROR_FLT_INVALID_NAME_REQUEST                                            Handle        = 0x801F0005\n\tERROR_FLT_NOT_SAFE_TO_POST_OPERATION                                      Handle        = 0x801F0006\n\tERROR_FLT_NOT_INITIALIZED                                                 Handle        = 0x801F0007\n\tERROR_FLT_FILTER_NOT_READY                                                Handle        = 0x801F0008\n\tERROR_FLT_POST_OPERATION_CLEANUP                                          Handle        = 0x801F0009\n\tERROR_FLT_INTERNAL_ERROR                                                  Handle        = 0x801F000A\n\tERROR_FLT_DELETING_OBJECT                                                 Handle        = 0x801F000B\n\tERROR_FLT_MUST_BE_NONPAGED_POOL                                           Handle        = 0x801F000C\n\tERROR_FLT_DUPLICATE_ENTRY                                                 Handle        = 0x801F000D\n\tERROR_FLT_CBDQ_DISABLED                                                   Handle        = 0x801F000E\n\tERROR_FLT_DO_NOT_ATTACH                                                   Handle        = 0x801F000F\n\tERROR_FLT_DO_NOT_DETACH                                                   Handle        = 0x801F0010\n\tERROR_FLT_INSTANCE_ALTITUDE_COLLISION                                     Handle        = 0x801F0011\n\tERROR_FLT_INSTANCE_NAME_COLLISION                                         Handle        = 0x801F0012\n\tERROR_FLT_FILTER_NOT_FOUND                                                Handle        = 0x801F0013\n\tERROR_FLT_VOLUME_NOT_FOUND                                                Handle        = 0x801F0014\n\tERROR_FLT_INSTANCE_NOT_FOUND                                              Handle        = 0x801F0015\n\tERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND                                    Handle        = 0x801F0016\n\tERROR_FLT_INVALID_CONTEXT_REGISTRATION                                    Handle        = 0x801F0017\n\tERROR_FLT_NAME_CACHE_MISS                                                 Handle        = 0x801F0018\n\tERROR_FLT_NO_DEVICE_OBJECT                                                Handle        = 0x801F0019\n\tERROR_FLT_VOLUME_ALREADY_MOUNTED                                          Handle        = 0x801F001A\n\tERROR_FLT_ALREADY_ENLISTED                                                Handle        = 0x801F001B\n\tERROR_FLT_CONTEXT_ALREADY_LINKED                                          Handle        = 0x801F001C\n\tERROR_FLT_NO_WAITER_FOR_REPLY                                             Handle        = 0x801F0020\n\tERROR_FLT_REGISTRATION_BUSY                                               Handle        = 0x801F0023\n\tERROR_HUNG_DISPLAY_DRIVER_THREAD                                          Handle        = 0x80260001\n\tDWM_E_COMPOSITIONDISABLED                                                 Handle        = 0x80263001\n\tDWM_E_REMOTING_NOT_SUPPORTED                                              Handle        = 0x80263002\n\tDWM_E_NO_REDIRECTION_SURFACE_AVAILABLE                                    Handle        = 0x80263003\n\tDWM_E_NOT_QUEUING_PRESENTS                                                Handle        = 0x80263004\n\tDWM_E_ADAPTER_NOT_FOUND                                                   Handle        = 0x80263005\n\tDWM_S_GDI_REDIRECTION_SURFACE                                             Handle        = 0x00263005\n\tDWM_E_TEXTURE_TOO_LARGE                                                   Handle        = 0x80263007\n\tDWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI                                 Handle        = 0x00263008\n\tERROR_MONITOR_NO_DESCRIPTOR                                               Handle        = 0x00261001\n\tERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT                                   Handle        = 0x00261002\n\tERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM                                 Handle        = 0xC0261003\n\tERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK                               Handle        = 0xC0261004\n\tERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED                           Handle        = 0xC0261005\n\tERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK                          Handle        = 0xC0261006\n\tERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK                          Handle        = 0xC0261007\n\tERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA                                     Handle        = 0xC0261008\n\tERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK                               Handle        = 0xC0261009\n\tERROR_MONITOR_INVALID_MANUFACTURE_DATE                                    Handle        = 0xC026100A\n\tERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER                                   Handle        = 0xC0262000\n\tERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER                                    Handle        = 0xC0262001\n\tERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER                                    Handle        = 0xC0262002\n\tERROR_GRAPHICS_ADAPTER_WAS_RESET                                          Handle        = 0xC0262003\n\tERROR_GRAPHICS_INVALID_DRIVER_MODEL                                       Handle        = 0xC0262004\n\tERROR_GRAPHICS_PRESENT_MODE_CHANGED                                       Handle        = 0xC0262005\n\tERROR_GRAPHICS_PRESENT_OCCLUDED                                           Handle        = 0xC0262006\n\tERROR_GRAPHICS_PRESENT_DENIED                                             Handle        = 0xC0262007\n\tERROR_GRAPHICS_CANNOTCOLORCONVERT                                         Handle        = 0xC0262008\n\tERROR_GRAPHICS_DRIVER_MISMATCH                                            Handle        = 0xC0262009\n\tERROR_GRAPHICS_PARTIAL_DATA_POPULATED                                     Handle        = 0x4026200A\n\tERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED                               Handle        = 0xC026200B\n\tERROR_GRAPHICS_PRESENT_UNOCCLUDED                                         Handle        = 0xC026200C\n\tERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE                                     Handle        = 0xC026200D\n\tERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED                                Handle        = 0xC026200E\n\tERROR_GRAPHICS_PRESENT_INVALID_WINDOW                                     Handle        = 0xC026200F\n\tERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND                                   Handle        = 0xC0262010\n\tERROR_GRAPHICS_VAIL_STATE_CHANGED                                         Handle        = 0xC0262011\n\tERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN                         Handle        = 0xC0262012\n\tERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED                            Handle        = 0xC0262013\n\tERROR_GRAPHICS_NO_VIDEO_MEMORY                                            Handle        = 0xC0262100\n\tERROR_GRAPHICS_CANT_LOCK_MEMORY                                           Handle        = 0xC0262101\n\tERROR_GRAPHICS_ALLOCATION_BUSY                                            Handle        = 0xC0262102\n\tERROR_GRAPHICS_TOO_MANY_REFERENCES                                        Handle        = 0xC0262103\n\tERROR_GRAPHICS_TRY_AGAIN_LATER                                            Handle        = 0xC0262104\n\tERROR_GRAPHICS_TRY_AGAIN_NOW                                              Handle        = 0xC0262105\n\tERROR_GRAPHICS_ALLOCATION_INVALID                                         Handle        = 0xC0262106\n\tERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE                           Handle        = 0xC0262107\n\tERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED                           Handle        = 0xC0262108\n\tERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION                               Handle        = 0xC0262109\n\tERROR_GRAPHICS_INVALID_ALLOCATION_USAGE                                   Handle        = 0xC0262110\n\tERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION                              Handle        = 0xC0262111\n\tERROR_GRAPHICS_ALLOCATION_CLOSED                                          Handle        = 0xC0262112\n\tERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE                                Handle        = 0xC0262113\n\tERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE                                  Handle        = 0xC0262114\n\tERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE                                    Handle        = 0xC0262115\n\tERROR_GRAPHICS_ALLOCATION_CONTENT_LOST                                    Handle        = 0xC0262116\n\tERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE                                    Handle        = 0xC0262200\n\tERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION                                Handle        = 0x40262201\n\tERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY                                     Handle        = 0xC0262300\n\tERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED                               Handle        = 0xC0262301\n\tERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED                     Handle        = 0xC0262302\n\tERROR_GRAPHICS_INVALID_VIDPN                                              Handle        = 0xC0262303\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE                               Handle        = 0xC0262304\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET                               Handle        = 0xC0262305\n\tERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED                               Handle        = 0xC0262306\n\tERROR_GRAPHICS_MODE_NOT_PINNED                                            Handle        = 0x00262307\n\tERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET                                Handle        = 0xC0262308\n\tERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET                                Handle        = 0xC0262309\n\tERROR_GRAPHICS_INVALID_FREQUENCY                                          Handle        = 0xC026230A\n\tERROR_GRAPHICS_INVALID_ACTIVE_REGION                                      Handle        = 0xC026230B\n\tERROR_GRAPHICS_INVALID_TOTAL_REGION                                       Handle        = 0xC026230C\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE                          Handle        = 0xC0262310\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE                          Handle        = 0xC0262311\n\tERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET                             Handle        = 0xC0262312\n\tERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY                                   Handle        = 0xC0262313\n\tERROR_GRAPHICS_MODE_ALREADY_IN_MODESET                                    Handle        = 0xC0262314\n\tERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET                              Handle        = 0xC0262315\n\tERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET                              Handle        = 0xC0262316\n\tERROR_GRAPHICS_SOURCE_ALREADY_IN_SET                                      Handle        = 0xC0262317\n\tERROR_GRAPHICS_TARGET_ALREADY_IN_SET                                      Handle        = 0xC0262318\n\tERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH                                 Handle        = 0xC0262319\n\tERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY                              Handle        = 0xC026231A\n\tERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET                          Handle        = 0xC026231B\n\tERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE                             Handle        = 0xC026231C\n\tERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET                                  Handle        = 0xC026231D\n\tERROR_GRAPHICS_NO_PREFERRED_MODE                                          Handle        = 0x0026231E\n\tERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET                              Handle        = 0xC026231F\n\tERROR_GRAPHICS_STALE_MODESET                                              Handle        = 0xC0262320\n\tERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET                              Handle        = 0xC0262321\n\tERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE                                Handle        = 0xC0262322\n\tERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN                            Handle        = 0xC0262323\n\tERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE                                     Handle        = 0xC0262324\n\tERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION            Handle        = 0xC0262325\n\tERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES                    Handle        = 0xC0262326\n\tERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY                                       Handle        = 0xC0262327\n\tERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE                      Handle        = 0xC0262328\n\tERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET                      Handle        = 0xC0262329\n\tERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET                               Handle        = 0xC026232A\n\tERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR                                  Handle        = 0xC026232B\n\tERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET                               Handle        = 0xC026232C\n\tERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET                           Handle        = 0xC026232D\n\tERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE                        Handle        = 0xC026232E\n\tERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE                           Handle        = 0xC026232F\n\tERROR_GRAPHICS_RESOURCES_NOT_RELATED                                      Handle        = 0xC0262330\n\tERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE                                   Handle        = 0xC0262331\n\tERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE                                   Handle        = 0xC0262332\n\tERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET                                  Handle        = 0xC0262333\n\tERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER               Handle        = 0xC0262334\n\tERROR_GRAPHICS_NO_VIDPNMGR                                                Handle        = 0xC0262335\n\tERROR_GRAPHICS_NO_ACTIVE_VIDPN                                            Handle        = 0xC0262336\n\tERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY                                       Handle        = 0xC0262337\n\tERROR_GRAPHICS_MONITOR_NOT_CONNECTED                                      Handle        = 0xC0262338\n\tERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY                                     Handle        = 0xC0262339\n\tERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE                                Handle        = 0xC026233A\n\tERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE                                 Handle        = 0xC026233B\n\tERROR_GRAPHICS_INVALID_STRIDE                                             Handle        = 0xC026233C\n\tERROR_GRAPHICS_INVALID_PIXELFORMAT                                        Handle        = 0xC026233D\n\tERROR_GRAPHICS_INVALID_COLORBASIS                                         Handle        = 0xC026233E\n\tERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE                               Handle        = 0xC026233F\n\tERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY                                     Handle        = 0xC0262340\n\tERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT                         Handle        = 0xC0262341\n\tERROR_GRAPHICS_VIDPN_SOURCE_IN_USE                                        Handle        = 0xC0262342\n\tERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN                                   Handle        = 0xC0262343\n\tERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL                            Handle        = 0xC0262344\n\tERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION               Handle        = 0xC0262345\n\tERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED         Handle        = 0xC0262346\n\tERROR_GRAPHICS_INVALID_GAMMA_RAMP                                         Handle        = 0xC0262347\n\tERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED                                   Handle        = 0xC0262348\n\tERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED                                Handle        = 0xC0262349\n\tERROR_GRAPHICS_MODE_NOT_IN_MODESET                                        Handle        = 0xC026234A\n\tERROR_GRAPHICS_DATASET_IS_EMPTY                                           Handle        = 0x0026234B\n\tERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET                                Handle        = 0x0026234C\n\tERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON               Handle        = 0xC026234D\n\tERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE                                  Handle        = 0xC026234E\n\tERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE                                Handle        = 0xC026234F\n\tERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS                          Handle        = 0xC0262350\n\tERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED            Handle        = 0x00262351\n\tERROR_GRAPHICS_INVALID_SCANLINE_ORDERING                                  Handle        = 0xC0262352\n\tERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED                               Handle        = 0xC0262353\n\tERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS                           Handle        = 0xC0262354\n\tERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT                                Handle        = 0xC0262355\n\tERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM                             Handle        = 0xC0262356\n\tERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN                          Handle        = 0xC0262357\n\tERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT                  Handle        = 0xC0262358\n\tERROR_GRAPHICS_MAX_NUM_PATHS_REACHED                                      Handle        = 0xC0262359\n\tERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION                         Handle        = 0xC026235A\n\tERROR_GRAPHICS_INVALID_CLIENT_TYPE                                        Handle        = 0xC026235B\n\tERROR_GRAPHICS_CLIENTVIDPN_NOT_SET                                        Handle        = 0xC026235C\n\tERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED                          Handle        = 0xC0262400\n\tERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED                             Handle        = 0xC0262401\n\tERROR_GRAPHICS_UNKNOWN_CHILD_STATUS                                       Handle        = 0x4026242F\n\tERROR_GRAPHICS_NOT_A_LINKED_ADAPTER                                       Handle        = 0xC0262430\n\tERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED                                    Handle        = 0xC0262431\n\tERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED                                  Handle        = 0xC0262432\n\tERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY                                    Handle        = 0xC0262433\n\tERROR_GRAPHICS_CHAINLINKS_NOT_STARTED                                     Handle        = 0xC0262434\n\tERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON                                  Handle        = 0xC0262435\n\tERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE                             Handle        = 0xC0262436\n\tERROR_GRAPHICS_LEADLINK_START_DEFERRED                                    Handle        = 0x40262437\n\tERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER                                     Handle        = 0xC0262438\n\tERROR_GRAPHICS_POLLING_TOO_FREQUENTLY                                     Handle        = 0x40262439\n\tERROR_GRAPHICS_START_DEFERRED                                             Handle        = 0x4026243A\n\tERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED                                Handle        = 0xC026243B\n\tERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS                                    Handle        = 0x4026243C\n\tERROR_GRAPHICS_OPM_NOT_SUPPORTED                                          Handle        = 0xC0262500\n\tERROR_GRAPHICS_COPP_NOT_SUPPORTED                                         Handle        = 0xC0262501\n\tERROR_GRAPHICS_UAB_NOT_SUPPORTED                                          Handle        = 0xC0262502\n\tERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS                           Handle        = 0xC0262503\n\tERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST                                 Handle        = 0xC0262505\n\tERROR_GRAPHICS_OPM_INTERNAL_ERROR                                         Handle        = 0xC026250B\n\tERROR_GRAPHICS_OPM_INVALID_HANDLE                                         Handle        = 0xC026250C\n\tERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH                             Handle        = 0xC026250E\n\tERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED                                  Handle        = 0xC026250F\n\tERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED                                   Handle        = 0xC0262510\n\tERROR_GRAPHICS_PVP_HFS_FAILED                                             Handle        = 0xC0262511\n\tERROR_GRAPHICS_OPM_INVALID_SRM                                            Handle        = 0xC0262512\n\tERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP                           Handle        = 0xC0262513\n\tERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP                            Handle        = 0xC0262514\n\tERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA                          Handle        = 0xC0262515\n\tERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET                                     Handle        = 0xC0262516\n\tERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH                                    Handle        = 0xC0262517\n\tERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE                       Handle        = 0xC0262518\n\tERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS                          Handle        = 0xC026251A\n\tERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS                        Handle        = 0xC026251B\n\tERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS              Handle        = 0xC026251C\n\tERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST                            Handle        = 0xC026251D\n\tERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR                                  Handle        = 0xC026251E\n\tERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS               Handle        = 0xC026251F\n\tERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED                                Handle        = 0xC0262520\n\tERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST                          Handle        = 0xC0262521\n\tERROR_GRAPHICS_I2C_NOT_SUPPORTED                                          Handle        = 0xC0262580\n\tERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST                                  Handle        = 0xC0262581\n\tERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA                                Handle        = 0xC0262582\n\tERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA                                   Handle        = 0xC0262583\n\tERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED                                    Handle        = 0xC0262584\n\tERROR_GRAPHICS_DDCCI_INVALID_DATA                                         Handle        = 0xC0262585\n\tERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE          Handle        = 0xC0262586\n\tERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING                            Handle        = 0xC0262587\n\tERROR_GRAPHICS_MCA_INTERNAL_ERROR                                         Handle        = 0xC0262588\n\tERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND                              Handle        = 0xC0262589\n\tERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH                               Handle        = 0xC026258A\n\tERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM                             Handle        = 0xC026258B\n\tERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE                            Handle        = 0xC026258C\n\tERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS                                   Handle        = 0xC026258D\n\tERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE     Handle        = 0xC02625D8\n\tERROR_GRAPHICS_MCA_INVALID_VCP_VERSION                                    Handle        = 0xC02625D9\n\tERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION                    Handle        = 0xC02625DA\n\tERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH                                  Handle        = 0xC02625DB\n\tERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION                               Handle        = 0xC02625DC\n\tERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED                       Handle        = 0xC02625DE\n\tERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE                          Handle        = 0xC02625DF\n\tERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED                             Handle        = 0xC02625E0\n\tERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME                      Handle        = 0xC02625E1\n\tERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP                     Handle        = 0xC02625E2\n\tERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED                            Handle        = 0xC02625E3\n\tERROR_GRAPHICS_INVALID_POINTER                                            Handle        = 0xC02625E4\n\tERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE                   Handle        = 0xC02625E5\n\tERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL                                  Handle        = 0xC02625E6\n\tERROR_GRAPHICS_INTERNAL_ERROR                                             Handle        = 0xC02625E7\n\tERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS                            Handle        = 0xC02605E8\n\tNAP_E_INVALID_PACKET                                                      Handle        = 0x80270001\n\tNAP_E_MISSING_SOH                                                         Handle        = 0x80270002\n\tNAP_E_CONFLICTING_ID                                                      Handle        = 0x80270003\n\tNAP_E_NO_CACHED_SOH                                                       Handle        = 0x80270004\n\tNAP_E_STILL_BOUND                                                         Handle        = 0x80270005\n\tNAP_E_NOT_REGISTERED                                                      Handle        = 0x80270006\n\tNAP_E_NOT_INITIALIZED                                                     Handle        = 0x80270007\n\tNAP_E_MISMATCHED_ID                                                       Handle        = 0x80270008\n\tNAP_E_NOT_PENDING                                                         Handle        = 0x80270009\n\tNAP_E_ID_NOT_FOUND                                                        Handle        = 0x8027000A\n\tNAP_E_MAXSIZE_TOO_SMALL                                                   Handle        = 0x8027000B\n\tNAP_E_SERVICE_NOT_RUNNING                                                 Handle        = 0x8027000C\n\tNAP_S_CERT_ALREADY_PRESENT                                                Handle        = 0x0027000D\n\tNAP_E_ENTITY_DISABLED                                                     Handle        = 0x8027000E\n\tNAP_E_NETSH_GROUPPOLICY_ERROR                                             Handle        = 0x8027000F\n\tNAP_E_TOO_MANY_CALLS                                                      Handle        = 0x80270010\n\tNAP_E_SHV_CONFIG_EXISTED                                                  Handle        = 0x80270011\n\tNAP_E_SHV_CONFIG_NOT_FOUND                                                Handle        = 0x80270012\n\tNAP_E_SHV_TIMEOUT                                                         Handle        = 0x80270013\n\tTPM_E_ERROR_MASK                                                          Handle        = 0x80280000\n\tTPM_E_AUTHFAIL                                                            Handle        = 0x80280001\n\tTPM_E_BADINDEX                                                            Handle        = 0x80280002\n\tTPM_E_BAD_PARAMETER                                                       Handle        = 0x80280003\n\tTPM_E_AUDITFAILURE                                                        Handle        = 0x80280004\n\tTPM_E_CLEAR_DISABLED                                                      Handle        = 0x80280005\n\tTPM_E_DEACTIVATED                                                         Handle        = 0x80280006\n\tTPM_E_DISABLED                                                            Handle        = 0x80280007\n\tTPM_E_DISABLED_CMD                                                        Handle        = 0x80280008\n\tTPM_E_FAIL                                                                Handle        = 0x80280009\n\tTPM_E_BAD_ORDINAL                                                         Handle        = 0x8028000A\n\tTPM_E_INSTALL_DISABLED                                                    Handle        = 0x8028000B\n\tTPM_E_INVALID_KEYHANDLE                                                   Handle        = 0x8028000C\n\tTPM_E_KEYNOTFOUND                                                         Handle        = 0x8028000D\n\tTPM_E_INAPPROPRIATE_ENC                                                   Handle        = 0x8028000E\n\tTPM_E_MIGRATEFAIL                                                         Handle        = 0x8028000F\n\tTPM_E_INVALID_PCR_INFO                                                    Handle        = 0x80280010\n\tTPM_E_NOSPACE                                                             Handle        = 0x80280011\n\tTPM_E_NOSRK                                                               Handle        = 0x80280012\n\tTPM_E_NOTSEALED_BLOB                                                      Handle        = 0x80280013\n\tTPM_E_OWNER_SET                                                           Handle        = 0x80280014\n\tTPM_E_RESOURCES                                                           Handle        = 0x80280015\n\tTPM_E_SHORTRANDOM                                                         Handle        = 0x80280016\n\tTPM_E_SIZE                                                                Handle        = 0x80280017\n\tTPM_E_WRONGPCRVAL                                                         Handle        = 0x80280018\n\tTPM_E_BAD_PARAM_SIZE                                                      Handle        = 0x80280019\n\tTPM_E_SHA_THREAD                                                          Handle        = 0x8028001A\n\tTPM_E_SHA_ERROR                                                           Handle        = 0x8028001B\n\tTPM_E_FAILEDSELFTEST                                                      Handle        = 0x8028001C\n\tTPM_E_AUTH2FAIL                                                           Handle        = 0x8028001D\n\tTPM_E_BADTAG                                                              Handle        = 0x8028001E\n\tTPM_E_IOERROR                                                             Handle        = 0x8028001F\n\tTPM_E_ENCRYPT_ERROR                                                       Handle        = 0x80280020\n\tTPM_E_DECRYPT_ERROR                                                       Handle        = 0x80280021\n\tTPM_E_INVALID_AUTHHANDLE                                                  Handle        = 0x80280022\n\tTPM_E_NO_ENDORSEMENT                                                      Handle        = 0x80280023\n\tTPM_E_INVALID_KEYUSAGE                                                    Handle        = 0x80280024\n\tTPM_E_WRONG_ENTITYTYPE                                                    Handle        = 0x80280025\n\tTPM_E_INVALID_POSTINIT                                                    Handle        = 0x80280026\n\tTPM_E_INAPPROPRIATE_SIG                                                   Handle        = 0x80280027\n\tTPM_E_BAD_KEY_PROPERTY                                                    Handle        = 0x80280028\n\tTPM_E_BAD_MIGRATION                                                       Handle        = 0x80280029\n\tTPM_E_BAD_SCHEME                                                          Handle        = 0x8028002A\n\tTPM_E_BAD_DATASIZE                                                        Handle        = 0x8028002B\n\tTPM_E_BAD_MODE                                                            Handle        = 0x8028002C\n\tTPM_E_BAD_PRESENCE                                                        Handle        = 0x8028002D\n\tTPM_E_BAD_VERSION                                                         Handle        = 0x8028002E\n\tTPM_E_NO_WRAP_TRANSPORT                                                   Handle        = 0x8028002F\n\tTPM_E_AUDITFAIL_UNSUCCESSFUL                                              Handle        = 0x80280030\n\tTPM_E_AUDITFAIL_SUCCESSFUL                                                Handle        = 0x80280031\n\tTPM_E_NOTRESETABLE                                                        Handle        = 0x80280032\n\tTPM_E_NOTLOCAL                                                            Handle        = 0x80280033\n\tTPM_E_BAD_TYPE                                                            Handle        = 0x80280034\n\tTPM_E_INVALID_RESOURCE                                                    Handle        = 0x80280035\n\tTPM_E_NOTFIPS                                                             Handle        = 0x80280036\n\tTPM_E_INVALID_FAMILY                                                      Handle        = 0x80280037\n\tTPM_E_NO_NV_PERMISSION                                                    Handle        = 0x80280038\n\tTPM_E_REQUIRES_SIGN                                                       Handle        = 0x80280039\n\tTPM_E_KEY_NOTSUPPORTED                                                    Handle        = 0x8028003A\n\tTPM_E_AUTH_CONFLICT                                                       Handle        = 0x8028003B\n\tTPM_E_AREA_LOCKED                                                         Handle        = 0x8028003C\n\tTPM_E_BAD_LOCALITY                                                        Handle        = 0x8028003D\n\tTPM_E_READ_ONLY                                                           Handle        = 0x8028003E\n\tTPM_E_PER_NOWRITE                                                         Handle        = 0x8028003F\n\tTPM_E_FAMILYCOUNT                                                         Handle        = 0x80280040\n\tTPM_E_WRITE_LOCKED                                                        Handle        = 0x80280041\n\tTPM_E_BAD_ATTRIBUTES                                                      Handle        = 0x80280042\n\tTPM_E_INVALID_STRUCTURE                                                   Handle        = 0x80280043\n\tTPM_E_KEY_OWNER_CONTROL                                                   Handle        = 0x80280044\n\tTPM_E_BAD_COUNTER                                                         Handle        = 0x80280045\n\tTPM_E_NOT_FULLWRITE                                                       Handle        = 0x80280046\n\tTPM_E_CONTEXT_GAP                                                         Handle        = 0x80280047\n\tTPM_E_MAXNVWRITES                                                         Handle        = 0x80280048\n\tTPM_E_NOOPERATOR                                                          Handle        = 0x80280049\n\tTPM_E_RESOURCEMISSING                                                     Handle        = 0x8028004A\n\tTPM_E_DELEGATE_LOCK                                                       Handle        = 0x8028004B\n\tTPM_E_DELEGATE_FAMILY                                                     Handle        = 0x8028004C\n\tTPM_E_DELEGATE_ADMIN                                                      Handle        = 0x8028004D\n\tTPM_E_TRANSPORT_NOTEXCLUSIVE                                              Handle        = 0x8028004E\n\tTPM_E_OWNER_CONTROL                                                       Handle        = 0x8028004F\n\tTPM_E_DAA_RESOURCES                                                       Handle        = 0x80280050\n\tTPM_E_DAA_INPUT_DATA0                                                     Handle        = 0x80280051\n\tTPM_E_DAA_INPUT_DATA1                                                     Handle        = 0x80280052\n\tTPM_E_DAA_ISSUER_SETTINGS                                                 Handle        = 0x80280053\n\tTPM_E_DAA_TPM_SETTINGS                                                    Handle        = 0x80280054\n\tTPM_E_DAA_STAGE                                                           Handle        = 0x80280055\n\tTPM_E_DAA_ISSUER_VALIDITY                                                 Handle        = 0x80280056\n\tTPM_E_DAA_WRONG_W                                                         Handle        = 0x80280057\n\tTPM_E_BAD_HANDLE                                                          Handle        = 0x80280058\n\tTPM_E_BAD_DELEGATE                                                        Handle        = 0x80280059\n\tTPM_E_BADCONTEXT                                                          Handle        = 0x8028005A\n\tTPM_E_TOOMANYCONTEXTS                                                     Handle        = 0x8028005B\n\tTPM_E_MA_TICKET_SIGNATURE                                                 Handle        = 0x8028005C\n\tTPM_E_MA_DESTINATION                                                      Handle        = 0x8028005D\n\tTPM_E_MA_SOURCE                                                           Handle        = 0x8028005E\n\tTPM_E_MA_AUTHORITY                                                        Handle        = 0x8028005F\n\tTPM_E_PERMANENTEK                                                         Handle        = 0x80280061\n\tTPM_E_BAD_SIGNATURE                                                       Handle        = 0x80280062\n\tTPM_E_NOCONTEXTSPACE                                                      Handle        = 0x80280063\n\tTPM_20_E_ASYMMETRIC                                                       Handle        = 0x80280081\n\tTPM_20_E_ATTRIBUTES                                                       Handle        = 0x80280082\n\tTPM_20_E_HASH                                                             Handle        = 0x80280083\n\tTPM_20_E_VALUE                                                            Handle        = 0x80280084\n\tTPM_20_E_HIERARCHY                                                        Handle        = 0x80280085\n\tTPM_20_E_KEY_SIZE                                                         Handle        = 0x80280087\n\tTPM_20_E_MGF                                                              Handle        = 0x80280088\n\tTPM_20_E_MODE                                                             Handle        = 0x80280089\n\tTPM_20_E_TYPE                                                             Handle        = 0x8028008A\n\tTPM_20_E_HANDLE                                                           Handle        = 0x8028008B\n\tTPM_20_E_KDF                                                              Handle        = 0x8028008C\n\tTPM_20_E_RANGE                                                            Handle        = 0x8028008D\n\tTPM_20_E_AUTH_FAIL                                                        Handle        = 0x8028008E\n\tTPM_20_E_NONCE                                                            Handle        = 0x8028008F\n\tTPM_20_E_PP                                                               Handle        = 0x80280090\n\tTPM_20_E_SCHEME                                                           Handle        = 0x80280092\n\tTPM_20_E_SIZE                                                             Handle        = 0x80280095\n\tTPM_20_E_SYMMETRIC                                                        Handle        = 0x80280096\n\tTPM_20_E_TAG                                                              Handle        = 0x80280097\n\tTPM_20_E_SELECTOR                                                         Handle        = 0x80280098\n\tTPM_20_E_INSUFFICIENT                                                     Handle        = 0x8028009A\n\tTPM_20_E_SIGNATURE                                                        Handle        = 0x8028009B\n\tTPM_20_E_KEY                                                              Handle        = 0x8028009C\n\tTPM_20_E_POLICY_FAIL                                                      Handle        = 0x8028009D\n\tTPM_20_E_INTEGRITY                                                        Handle        = 0x8028009F\n\tTPM_20_E_TICKET                                                           Handle        = 0x802800A0\n\tTPM_20_E_RESERVED_BITS                                                    Handle        = 0x802800A1\n\tTPM_20_E_BAD_AUTH                                                         Handle        = 0x802800A2\n\tTPM_20_E_EXPIRED                                                          Handle        = 0x802800A3\n\tTPM_20_E_POLICY_CC                                                        Handle        = 0x802800A4\n\tTPM_20_E_BINDING                                                          Handle        = 0x802800A5\n\tTPM_20_E_CURVE                                                            Handle        = 0x802800A6\n\tTPM_20_E_ECC_POINT                                                        Handle        = 0x802800A7\n\tTPM_20_E_INITIALIZE                                                       Handle        = 0x80280100\n\tTPM_20_E_FAILURE                                                          Handle        = 0x80280101\n\tTPM_20_E_SEQUENCE                                                         Handle        = 0x80280103\n\tTPM_20_E_PRIVATE                                                          Handle        = 0x8028010B\n\tTPM_20_E_HMAC                                                             Handle        = 0x80280119\n\tTPM_20_E_DISABLED                                                         Handle        = 0x80280120\n\tTPM_20_E_EXCLUSIVE                                                        Handle        = 0x80280121\n\tTPM_20_E_ECC_CURVE                                                        Handle        = 0x80280123\n\tTPM_20_E_AUTH_TYPE                                                        Handle        = 0x80280124\n\tTPM_20_E_AUTH_MISSING                                                     Handle        = 0x80280125\n\tTPM_20_E_POLICY                                                           Handle        = 0x80280126\n\tTPM_20_E_PCR                                                              Handle        = 0x80280127\n\tTPM_20_E_PCR_CHANGED                                                      Handle        = 0x80280128\n\tTPM_20_E_UPGRADE                                                          Handle        = 0x8028012D\n\tTPM_20_E_TOO_MANY_CONTEXTS                                                Handle        = 0x8028012E\n\tTPM_20_E_AUTH_UNAVAILABLE                                                 Handle        = 0x8028012F\n\tTPM_20_E_REBOOT                                                           Handle        = 0x80280130\n\tTPM_20_E_UNBALANCED                                                       Handle        = 0x80280131\n\tTPM_20_E_COMMAND_SIZE                                                     Handle        = 0x80280142\n\tTPM_20_E_COMMAND_CODE                                                     Handle        = 0x80280143\n\tTPM_20_E_AUTHSIZE                                                         Handle        = 0x80280144\n\tTPM_20_E_AUTH_CONTEXT                                                     Handle        = 0x80280145\n\tTPM_20_E_NV_RANGE                                                         Handle        = 0x80280146\n\tTPM_20_E_NV_SIZE                                                          Handle        = 0x80280147\n\tTPM_20_E_NV_LOCKED                                                        Handle        = 0x80280148\n\tTPM_20_E_NV_AUTHORIZATION                                                 Handle        = 0x80280149\n\tTPM_20_E_NV_UNINITIALIZED                                                 Handle        = 0x8028014A\n\tTPM_20_E_NV_SPACE                                                         Handle        = 0x8028014B\n\tTPM_20_E_NV_DEFINED                                                       Handle        = 0x8028014C\n\tTPM_20_E_BAD_CONTEXT                                                      Handle        = 0x80280150\n\tTPM_20_E_CPHASH                                                           Handle        = 0x80280151\n\tTPM_20_E_PARENT                                                           Handle        = 0x80280152\n\tTPM_20_E_NEEDS_TEST                                                       Handle        = 0x80280153\n\tTPM_20_E_NO_RESULT                                                        Handle        = 0x80280154\n\tTPM_20_E_SENSITIVE                                                        Handle        = 0x80280155\n\tTPM_E_COMMAND_BLOCKED                                                     Handle        = 0x80280400\n\tTPM_E_INVALID_HANDLE                                                      Handle        = 0x80280401\n\tTPM_E_DUPLICATE_VHANDLE                                                   Handle        = 0x80280402\n\tTPM_E_EMBEDDED_COMMAND_BLOCKED                                            Handle        = 0x80280403\n\tTPM_E_EMBEDDED_COMMAND_UNSUPPORTED                                        Handle        = 0x80280404\n\tTPM_E_RETRY                                                               Handle        = 0x80280800\n\tTPM_E_NEEDS_SELFTEST                                                      Handle        = 0x80280801\n\tTPM_E_DOING_SELFTEST                                                      Handle        = 0x80280802\n\tTPM_E_DEFEND_LOCK_RUNNING                                                 Handle        = 0x80280803\n\tTPM_20_E_CONTEXT_GAP                                                      Handle        = 0x80280901\n\tTPM_20_E_OBJECT_MEMORY                                                    Handle        = 0x80280902\n\tTPM_20_E_SESSION_MEMORY                                                   Handle        = 0x80280903\n\tTPM_20_E_MEMORY                                                           Handle        = 0x80280904\n\tTPM_20_E_SESSION_HANDLES                                                  Handle        = 0x80280905\n\tTPM_20_E_OBJECT_HANDLES                                                   Handle        = 0x80280906\n\tTPM_20_E_LOCALITY                                                         Handle        = 0x80280907\n\tTPM_20_E_YIELDED                                                          Handle        = 0x80280908\n\tTPM_20_E_CANCELED                                                         Handle        = 0x80280909\n\tTPM_20_E_TESTING                                                          Handle        = 0x8028090A\n\tTPM_20_E_NV_RATE                                                          Handle        = 0x80280920\n\tTPM_20_E_LOCKOUT                                                          Handle        = 0x80280921\n\tTPM_20_E_RETRY                                                            Handle        = 0x80280922\n\tTPM_20_E_NV_UNAVAILABLE                                                   Handle        = 0x80280923\n\tTBS_E_INTERNAL_ERROR                                                      Handle        = 0x80284001\n\tTBS_E_BAD_PARAMETER                                                       Handle        = 0x80284002\n\tTBS_E_INVALID_OUTPUT_POINTER                                              Handle        = 0x80284003\n\tTBS_E_INVALID_CONTEXT                                                     Handle        = 0x80284004\n\tTBS_E_INSUFFICIENT_BUFFER                                                 Handle        = 0x80284005\n\tTBS_E_IOERROR                                                             Handle        = 0x80284006\n\tTBS_E_INVALID_CONTEXT_PARAM                                               Handle        = 0x80284007\n\tTBS_E_SERVICE_NOT_RUNNING                                                 Handle        = 0x80284008\n\tTBS_E_TOO_MANY_TBS_CONTEXTS                                               Handle        = 0x80284009\n\tTBS_E_TOO_MANY_RESOURCES                                                  Handle        = 0x8028400A\n\tTBS_E_SERVICE_START_PENDING                                               Handle        = 0x8028400B\n\tTBS_E_PPI_NOT_SUPPORTED                                                   Handle        = 0x8028400C\n\tTBS_E_COMMAND_CANCELED                                                    Handle        = 0x8028400D\n\tTBS_E_BUFFER_TOO_LARGE                                                    Handle        = 0x8028400E\n\tTBS_E_TPM_NOT_FOUND                                                       Handle        = 0x8028400F\n\tTBS_E_SERVICE_DISABLED                                                    Handle        = 0x80284010\n\tTBS_E_NO_EVENT_LOG                                                        Handle        = 0x80284011\n\tTBS_E_ACCESS_DENIED                                                       Handle        = 0x80284012\n\tTBS_E_PROVISIONING_NOT_ALLOWED                                            Handle        = 0x80284013\n\tTBS_E_PPI_FUNCTION_UNSUPPORTED                                            Handle        = 0x80284014\n\tTBS_E_OWNERAUTH_NOT_FOUND                                                 Handle        = 0x80284015\n\tTBS_E_PROVISIONING_INCOMPLETE                                             Handle        = 0x80284016\n\tTPMAPI_E_INVALID_STATE                                                    Handle        = 0x80290100\n\tTPMAPI_E_NOT_ENOUGH_DATA                                                  Handle        = 0x80290101\n\tTPMAPI_E_TOO_MUCH_DATA                                                    Handle        = 0x80290102\n\tTPMAPI_E_INVALID_OUTPUT_POINTER                                           Handle        = 0x80290103\n\tTPMAPI_E_INVALID_PARAMETER                                                Handle        = 0x80290104\n\tTPMAPI_E_OUT_OF_MEMORY                                                    Handle        = 0x80290105\n\tTPMAPI_E_BUFFER_TOO_SMALL                                                 Handle        = 0x80290106\n\tTPMAPI_E_INTERNAL_ERROR                                                   Handle        = 0x80290107\n\tTPMAPI_E_ACCESS_DENIED                                                    Handle        = 0x80290108\n\tTPMAPI_E_AUTHORIZATION_FAILED                                             Handle        = 0x80290109\n\tTPMAPI_E_INVALID_CONTEXT_HANDLE                                           Handle        = 0x8029010A\n\tTPMAPI_E_TBS_COMMUNICATION_ERROR                                          Handle        = 0x8029010B\n\tTPMAPI_E_TPM_COMMAND_ERROR                                                Handle        = 0x8029010C\n\tTPMAPI_E_MESSAGE_TOO_LARGE                                                Handle        = 0x8029010D\n\tTPMAPI_E_INVALID_ENCODING                                                 Handle        = 0x8029010E\n\tTPMAPI_E_INVALID_KEY_SIZE                                                 Handle        = 0x8029010F\n\tTPMAPI_E_ENCRYPTION_FAILED                                                Handle        = 0x80290110\n\tTPMAPI_E_INVALID_KEY_PARAMS                                               Handle        = 0x80290111\n\tTPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB                             Handle        = 0x80290112\n\tTPMAPI_E_INVALID_PCR_INDEX                                                Handle        = 0x80290113\n\tTPMAPI_E_INVALID_DELEGATE_BLOB                                            Handle        = 0x80290114\n\tTPMAPI_E_INVALID_CONTEXT_PARAMS                                           Handle        = 0x80290115\n\tTPMAPI_E_INVALID_KEY_BLOB                                                 Handle        = 0x80290116\n\tTPMAPI_E_INVALID_PCR_DATA                                                 Handle        = 0x80290117\n\tTPMAPI_E_INVALID_OWNER_AUTH                                               Handle        = 0x80290118\n\tTPMAPI_E_FIPS_RNG_CHECK_FAILED                                            Handle        = 0x80290119\n\tTPMAPI_E_EMPTY_TCG_LOG                                                    Handle        = 0x8029011A\n\tTPMAPI_E_INVALID_TCG_LOG_ENTRY                                            Handle        = 0x8029011B\n\tTPMAPI_E_TCG_SEPARATOR_ABSENT                                             Handle        = 0x8029011C\n\tTPMAPI_E_TCG_INVALID_DIGEST_ENTRY                                         Handle        = 0x8029011D\n\tTPMAPI_E_POLICY_DENIES_OPERATION                                          Handle        = 0x8029011E\n\tTPMAPI_E_NV_BITS_NOT_DEFINED                                              Handle        = 0x8029011F\n\tTPMAPI_E_NV_BITS_NOT_READY                                                Handle        = 0x80290120\n\tTPMAPI_E_SEALING_KEY_NOT_AVAILABLE                                        Handle        = 0x80290121\n\tTPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND                                     Handle        = 0x80290122\n\tTPMAPI_E_SVN_COUNTER_NOT_AVAILABLE                                        Handle        = 0x80290123\n\tTPMAPI_E_OWNER_AUTH_NOT_NULL                                              Handle        = 0x80290124\n\tTPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL                                        Handle        = 0x80290125\n\tTPMAPI_E_AUTHORIZATION_REVOKED                                            Handle        = 0x80290126\n\tTPMAPI_E_MALFORMED_AUTHORIZATION_KEY                                      Handle        = 0x80290127\n\tTPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED                                    Handle        = 0x80290128\n\tTPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE                                  Handle        = 0x80290129\n\tTPMAPI_E_MALFORMED_AUTHORIZATION_POLICY                                   Handle        = 0x8029012A\n\tTPMAPI_E_MALFORMED_AUTHORIZATION_OTHER                                    Handle        = 0x8029012B\n\tTPMAPI_E_SEALING_KEY_CHANGED                                              Handle        = 0x8029012C\n\tTBSIMP_E_BUFFER_TOO_SMALL                                                 Handle        = 0x80290200\n\tTBSIMP_E_CLEANUP_FAILED                                                   Handle        = 0x80290201\n\tTBSIMP_E_INVALID_CONTEXT_HANDLE                                           Handle        = 0x80290202\n\tTBSIMP_E_INVALID_CONTEXT_PARAM                                            Handle        = 0x80290203\n\tTBSIMP_E_TPM_ERROR                                                        Handle        = 0x80290204\n\tTBSIMP_E_HASH_BAD_KEY                                                     Handle        = 0x80290205\n\tTBSIMP_E_DUPLICATE_VHANDLE                                                Handle        = 0x80290206\n\tTBSIMP_E_INVALID_OUTPUT_POINTER                                           Handle        = 0x80290207\n\tTBSIMP_E_INVALID_PARAMETER                                                Handle        = 0x80290208\n\tTBSIMP_E_RPC_INIT_FAILED                                                  Handle        = 0x80290209\n\tTBSIMP_E_SCHEDULER_NOT_RUNNING                                            Handle        = 0x8029020A\n\tTBSIMP_E_COMMAND_CANCELED                                                 Handle        = 0x8029020B\n\tTBSIMP_E_OUT_OF_MEMORY                                                    Handle        = 0x8029020C\n\tTBSIMP_E_LIST_NO_MORE_ITEMS                                               Handle        = 0x8029020D\n\tTBSIMP_E_LIST_NOT_FOUND                                                   Handle        = 0x8029020E\n\tTBSIMP_E_NOT_ENOUGH_SPACE                                                 Handle        = 0x8029020F\n\tTBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS                                          Handle        = 0x80290210\n\tTBSIMP_E_COMMAND_FAILED                                                   Handle        = 0x80290211\n\tTBSIMP_E_UNKNOWN_ORDINAL                                                  Handle        = 0x80290212\n\tTBSIMP_E_RESOURCE_EXPIRED                                                 Handle        = 0x80290213\n\tTBSIMP_E_INVALID_RESOURCE                                                 Handle        = 0x80290214\n\tTBSIMP_E_NOTHING_TO_UNLOAD                                                Handle        = 0x80290215\n\tTBSIMP_E_HASH_TABLE_FULL                                                  Handle        = 0x80290216\n\tTBSIMP_E_TOO_MANY_TBS_CONTEXTS                                            Handle        = 0x80290217\n\tTBSIMP_E_TOO_MANY_RESOURCES                                               Handle        = 0x80290218\n\tTBSIMP_E_PPI_NOT_SUPPORTED                                                Handle        = 0x80290219\n\tTBSIMP_E_TPM_INCOMPATIBLE                                                 Handle        = 0x8029021A\n\tTBSIMP_E_NO_EVENT_LOG                                                     Handle        = 0x8029021B\n\tTPM_E_PPI_ACPI_FAILURE                                                    Handle        = 0x80290300\n\tTPM_E_PPI_USER_ABORT                                                      Handle        = 0x80290301\n\tTPM_E_PPI_BIOS_FAILURE                                                    Handle        = 0x80290302\n\tTPM_E_PPI_NOT_SUPPORTED                                                   Handle        = 0x80290303\n\tTPM_E_PPI_BLOCKED_IN_BIOS                                                 Handle        = 0x80290304\n\tTPM_E_PCP_ERROR_MASK                                                      Handle        = 0x80290400\n\tTPM_E_PCP_DEVICE_NOT_READY                                                Handle        = 0x80290401\n\tTPM_E_PCP_INVALID_HANDLE                                                  Handle        = 0x80290402\n\tTPM_E_PCP_INVALID_PARAMETER                                               Handle        = 0x80290403\n\tTPM_E_PCP_FLAG_NOT_SUPPORTED                                              Handle        = 0x80290404\n\tTPM_E_PCP_NOT_SUPPORTED                                                   Handle        = 0x80290405\n\tTPM_E_PCP_BUFFER_TOO_SMALL                                                Handle        = 0x80290406\n\tTPM_E_PCP_INTERNAL_ERROR                                                  Handle        = 0x80290407\n\tTPM_E_PCP_AUTHENTICATION_FAILED                                           Handle        = 0x80290408\n\tTPM_E_PCP_AUTHENTICATION_IGNORED                                          Handle        = 0x80290409\n\tTPM_E_PCP_POLICY_NOT_FOUND                                                Handle        = 0x8029040A\n\tTPM_E_PCP_PROFILE_NOT_FOUND                                               Handle        = 0x8029040B\n\tTPM_E_PCP_VALIDATION_FAILED                                               Handle        = 0x8029040C\n\tTPM_E_PCP_WRONG_PARENT                                                    Handle        = 0x8029040E\n\tTPM_E_KEY_NOT_LOADED                                                      Handle        = 0x8029040F\n\tTPM_E_NO_KEY_CERTIFICATION                                                Handle        = 0x80290410\n\tTPM_E_KEY_NOT_FINALIZED                                                   Handle        = 0x80290411\n\tTPM_E_ATTESTATION_CHALLENGE_NOT_SET                                       Handle        = 0x80290412\n\tTPM_E_NOT_PCR_BOUND                                                       Handle        = 0x80290413\n\tTPM_E_KEY_ALREADY_FINALIZED                                               Handle        = 0x80290414\n\tTPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED                                      Handle        = 0x80290415\n\tTPM_E_KEY_USAGE_POLICY_INVALID                                            Handle        = 0x80290416\n\tTPM_E_SOFT_KEY_ERROR                                                      Handle        = 0x80290417\n\tTPM_E_KEY_NOT_AUTHENTICATED                                               Handle        = 0x80290418\n\tTPM_E_PCP_KEY_NOT_AIK                                                     Handle        = 0x80290419\n\tTPM_E_KEY_NOT_SIGNING_KEY                                                 Handle        = 0x8029041A\n\tTPM_E_LOCKED_OUT                                                          Handle        = 0x8029041B\n\tTPM_E_CLAIM_TYPE_NOT_SUPPORTED                                            Handle        = 0x8029041C\n\tTPM_E_VERSION_NOT_SUPPORTED                                               Handle        = 0x8029041D\n\tTPM_E_BUFFER_LENGTH_MISMATCH                                              Handle        = 0x8029041E\n\tTPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED                                    Handle        = 0x8029041F\n\tTPM_E_PCP_TICKET_MISSING                                                  Handle        = 0x80290420\n\tTPM_E_PCP_RAW_POLICY_NOT_SUPPORTED                                        Handle        = 0x80290421\n\tTPM_E_PCP_KEY_HANDLE_INVALIDATED                                          Handle        = 0x80290422\n\tTPM_E_PCP_UNSUPPORTED_PSS_SALT                                            Handle        = 0x40290423\n\tTPM_E_ZERO_EXHAUST_ENABLED                                                Handle        = 0x80290500\n\tPLA_E_DCS_NOT_FOUND                                                       Handle        = 0x80300002\n\tPLA_E_DCS_IN_USE                                                          Handle        = 0x803000AA\n\tPLA_E_TOO_MANY_FOLDERS                                                    Handle        = 0x80300045\n\tPLA_E_NO_MIN_DISK                                                         Handle        = 0x80300070\n\tPLA_E_DCS_ALREADY_EXISTS                                                  Handle        = 0x803000B7\n\tPLA_S_PROPERTY_IGNORED                                                    Handle        = 0x00300100\n\tPLA_E_PROPERTY_CONFLICT                                                   Handle        = 0x80300101\n\tPLA_E_DCS_SINGLETON_REQUIRED                                              Handle        = 0x80300102\n\tPLA_E_CREDENTIALS_REQUIRED                                                Handle        = 0x80300103\n\tPLA_E_DCS_NOT_RUNNING                                                     Handle        = 0x80300104\n\tPLA_E_CONFLICT_INCL_EXCL_API                                              Handle        = 0x80300105\n\tPLA_E_NETWORK_EXE_NOT_VALID                                               Handle        = 0x80300106\n\tPLA_E_EXE_ALREADY_CONFIGURED                                              Handle        = 0x80300107\n\tPLA_E_EXE_PATH_NOT_VALID                                                  Handle        = 0x80300108\n\tPLA_E_DC_ALREADY_EXISTS                                                   Handle        = 0x80300109\n\tPLA_E_DCS_START_WAIT_TIMEOUT                                              Handle        = 0x8030010A\n\tPLA_E_DC_START_WAIT_TIMEOUT                                               Handle        = 0x8030010B\n\tPLA_E_REPORT_WAIT_TIMEOUT                                                 Handle        = 0x8030010C\n\tPLA_E_NO_DUPLICATES                                                       Handle        = 0x8030010D\n\tPLA_E_EXE_FULL_PATH_REQUIRED                                              Handle        = 0x8030010E\n\tPLA_E_INVALID_SESSION_NAME                                                Handle        = 0x8030010F\n\tPLA_E_PLA_CHANNEL_NOT_ENABLED                                             Handle        = 0x80300110\n\tPLA_E_TASKSCHED_CHANNEL_NOT_ENABLED                                       Handle        = 0x80300111\n\tPLA_E_RULES_MANAGER_FAILED                                                Handle        = 0x80300112\n\tPLA_E_CABAPI_FAILURE                                                      Handle        = 0x80300113\n\tFVE_E_LOCKED_VOLUME                                                       Handle        = 0x80310000\n\tFVE_E_NOT_ENCRYPTED                                                       Handle        = 0x80310001\n\tFVE_E_NO_TPM_BIOS                                                         Handle        = 0x80310002\n\tFVE_E_NO_MBR_METRIC                                                       Handle        = 0x80310003\n\tFVE_E_NO_BOOTSECTOR_METRIC                                                Handle        = 0x80310004\n\tFVE_E_NO_BOOTMGR_METRIC                                                   Handle        = 0x80310005\n\tFVE_E_WRONG_BOOTMGR                                                       Handle        = 0x80310006\n\tFVE_E_SECURE_KEY_REQUIRED                                                 Handle        = 0x80310007\n\tFVE_E_NOT_ACTIVATED                                                       Handle        = 0x80310008\n\tFVE_E_ACTION_NOT_ALLOWED                                                  Handle        = 0x80310009\n\tFVE_E_AD_SCHEMA_NOT_INSTALLED                                             Handle        = 0x8031000A\n\tFVE_E_AD_INVALID_DATATYPE                                                 Handle        = 0x8031000B\n\tFVE_E_AD_INVALID_DATASIZE                                                 Handle        = 0x8031000C\n\tFVE_E_AD_NO_VALUES                                                        Handle        = 0x8031000D\n\tFVE_E_AD_ATTR_NOT_SET                                                     Handle        = 0x8031000E\n\tFVE_E_AD_GUID_NOT_FOUND                                                   Handle        = 0x8031000F\n\tFVE_E_BAD_INFORMATION                                                     Handle        = 0x80310010\n\tFVE_E_TOO_SMALL                                                           Handle        = 0x80310011\n\tFVE_E_SYSTEM_VOLUME                                                       Handle        = 0x80310012\n\tFVE_E_FAILED_WRONG_FS                                                     Handle        = 0x80310013\n\tFVE_E_BAD_PARTITION_SIZE                                                  Handle        = 0x80310014\n\tFVE_E_NOT_SUPPORTED                                                       Handle        = 0x80310015\n\tFVE_E_BAD_DATA                                                            Handle        = 0x80310016\n\tFVE_E_VOLUME_NOT_BOUND                                                    Handle        = 0x80310017\n\tFVE_E_TPM_NOT_OWNED                                                       Handle        = 0x80310018\n\tFVE_E_NOT_DATA_VOLUME                                                     Handle        = 0x80310019\n\tFVE_E_AD_INSUFFICIENT_BUFFER                                              Handle        = 0x8031001A\n\tFVE_E_CONV_READ                                                           Handle        = 0x8031001B\n\tFVE_E_CONV_WRITE                                                          Handle        = 0x8031001C\n\tFVE_E_KEY_REQUIRED                                                        Handle        = 0x8031001D\n\tFVE_E_CLUSTERING_NOT_SUPPORTED                                            Handle        = 0x8031001E\n\tFVE_E_VOLUME_BOUND_ALREADY                                                Handle        = 0x8031001F\n\tFVE_E_OS_NOT_PROTECTED                                                    Handle        = 0x80310020\n\tFVE_E_PROTECTION_DISABLED                                                 Handle        = 0x80310021\n\tFVE_E_RECOVERY_KEY_REQUIRED                                               Handle        = 0x80310022\n\tFVE_E_FOREIGN_VOLUME                                                      Handle        = 0x80310023\n\tFVE_E_OVERLAPPED_UPDATE                                                   Handle        = 0x80310024\n\tFVE_E_TPM_SRK_AUTH_NOT_ZERO                                               Handle        = 0x80310025\n\tFVE_E_FAILED_SECTOR_SIZE                                                  Handle        = 0x80310026\n\tFVE_E_FAILED_AUTHENTICATION                                               Handle        = 0x80310027\n\tFVE_E_NOT_OS_VOLUME                                                       Handle        = 0x80310028\n\tFVE_E_AUTOUNLOCK_ENABLED                                                  Handle        = 0x80310029\n\tFVE_E_WRONG_BOOTSECTOR                                                    Handle        = 0x8031002A\n\tFVE_E_WRONG_SYSTEM_FS                                                     Handle        = 0x8031002B\n\tFVE_E_POLICY_PASSWORD_REQUIRED                                            Handle        = 0x8031002C\n\tFVE_E_CANNOT_SET_FVEK_ENCRYPTED                                           Handle        = 0x8031002D\n\tFVE_E_CANNOT_ENCRYPT_NO_KEY                                               Handle        = 0x8031002E\n\tFVE_E_BOOTABLE_CDDVD                                                      Handle        = 0x80310030\n\tFVE_E_PROTECTOR_EXISTS                                                    Handle        = 0x80310031\n\tFVE_E_RELATIVE_PATH                                                       Handle        = 0x80310032\n\tFVE_E_PROTECTOR_NOT_FOUND                                                 Handle        = 0x80310033\n\tFVE_E_INVALID_KEY_FORMAT                                                  Handle        = 0x80310034\n\tFVE_E_INVALID_PASSWORD_FORMAT                                             Handle        = 0x80310035\n\tFVE_E_FIPS_RNG_CHECK_FAILED                                               Handle        = 0x80310036\n\tFVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD                                     Handle        = 0x80310037\n\tFVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT                                   Handle        = 0x80310038\n\tFVE_E_NOT_DECRYPTED                                                       Handle        = 0x80310039\n\tFVE_E_INVALID_PROTECTOR_TYPE                                              Handle        = 0x8031003A\n\tFVE_E_NO_PROTECTORS_TO_TEST                                               Handle        = 0x8031003B\n\tFVE_E_KEYFILE_NOT_FOUND                                                   Handle        = 0x8031003C\n\tFVE_E_KEYFILE_INVALID                                                     Handle        = 0x8031003D\n\tFVE_E_KEYFILE_NO_VMK                                                      Handle        = 0x8031003E\n\tFVE_E_TPM_DISABLED                                                        Handle        = 0x8031003F\n\tFVE_E_NOT_ALLOWED_IN_SAFE_MODE                                            Handle        = 0x80310040\n\tFVE_E_TPM_INVALID_PCR                                                     Handle        = 0x80310041\n\tFVE_E_TPM_NO_VMK                                                          Handle        = 0x80310042\n\tFVE_E_PIN_INVALID                                                         Handle        = 0x80310043\n\tFVE_E_AUTH_INVALID_APPLICATION                                            Handle        = 0x80310044\n\tFVE_E_AUTH_INVALID_CONFIG                                                 Handle        = 0x80310045\n\tFVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED                                 Handle        = 0x80310046\n\tFVE_E_FS_NOT_EXTENDED                                                     Handle        = 0x80310047\n\tFVE_E_FIRMWARE_TYPE_NOT_SUPPORTED                                         Handle        = 0x80310048\n\tFVE_E_NO_LICENSE                                                          Handle        = 0x80310049\n\tFVE_E_NOT_ON_STACK                                                        Handle        = 0x8031004A\n\tFVE_E_FS_MOUNTED                                                          Handle        = 0x8031004B\n\tFVE_E_TOKEN_NOT_IMPERSONATED                                              Handle        = 0x8031004C\n\tFVE_E_DRY_RUN_FAILED                                                      Handle        = 0x8031004D\n\tFVE_E_REBOOT_REQUIRED                                                     Handle        = 0x8031004E\n\tFVE_E_DEBUGGER_ENABLED                                                    Handle        = 0x8031004F\n\tFVE_E_RAW_ACCESS                                                          Handle        = 0x80310050\n\tFVE_E_RAW_BLOCKED                                                         Handle        = 0x80310051\n\tFVE_E_BCD_APPLICATIONS_PATH_INCORRECT                                     Handle        = 0x80310052\n\tFVE_E_NOT_ALLOWED_IN_VERSION                                              Handle        = 0x80310053\n\tFVE_E_NO_AUTOUNLOCK_MASTER_KEY                                            Handle        = 0x80310054\n\tFVE_E_MOR_FAILED                                                          Handle        = 0x80310055\n\tFVE_E_HIDDEN_VOLUME                                                       Handle        = 0x80310056\n\tFVE_E_TRANSIENT_STATE                                                     Handle        = 0x80310057\n\tFVE_E_PUBKEY_NOT_ALLOWED                                                  Handle        = 0x80310058\n\tFVE_E_VOLUME_HANDLE_OPEN                                                  Handle        = 0x80310059\n\tFVE_E_NO_FEATURE_LICENSE                                                  Handle        = 0x8031005A\n\tFVE_E_INVALID_STARTUP_OPTIONS                                             Handle        = 0x8031005B\n\tFVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED                                Handle        = 0x8031005C\n\tFVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED                                   Handle        = 0x8031005D\n\tFVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED                                     Handle        = 0x8031005E\n\tFVE_E_POLICY_RECOVERY_KEY_REQUIRED                                        Handle        = 0x8031005F\n\tFVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED                                      Handle        = 0x80310060\n\tFVE_E_POLICY_STARTUP_PIN_REQUIRED                                         Handle        = 0x80310061\n\tFVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED                                      Handle        = 0x80310062\n\tFVE_E_POLICY_STARTUP_KEY_REQUIRED                                         Handle        = 0x80310063\n\tFVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED                                  Handle        = 0x80310064\n\tFVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED                                     Handle        = 0x80310065\n\tFVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED                                      Handle        = 0x80310066\n\tFVE_E_POLICY_STARTUP_TPM_REQUIRED                                         Handle        = 0x80310067\n\tFVE_E_POLICY_INVALID_PIN_LENGTH                                           Handle        = 0x80310068\n\tFVE_E_KEY_PROTECTOR_NOT_SUPPORTED                                         Handle        = 0x80310069\n\tFVE_E_POLICY_PASSPHRASE_NOT_ALLOWED                                       Handle        = 0x8031006A\n\tFVE_E_POLICY_PASSPHRASE_REQUIRED                                          Handle        = 0x8031006B\n\tFVE_E_FIPS_PREVENTS_PASSPHRASE                                            Handle        = 0x8031006C\n\tFVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED                                    Handle        = 0x8031006D\n\tFVE_E_INVALID_BITLOCKER_OID                                               Handle        = 0x8031006E\n\tFVE_E_VOLUME_TOO_SMALL                                                    Handle        = 0x8031006F\n\tFVE_E_DV_NOT_SUPPORTED_ON_FS                                              Handle        = 0x80310070\n\tFVE_E_DV_NOT_ALLOWED_BY_GP                                                Handle        = 0x80310071\n\tFVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED                                 Handle        = 0x80310072\n\tFVE_E_POLICY_USER_CERTIFICATE_REQUIRED                                    Handle        = 0x80310073\n\tFVE_E_POLICY_USER_CERT_MUST_BE_HW                                         Handle        = 0x80310074\n\tFVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED                    Handle        = 0x80310075\n\tFVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED                    Handle        = 0x80310076\n\tFVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED                               Handle        = 0x80310077\n\tFVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED                                  Handle        = 0x80310078\n\tFVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED                                 Handle        = 0x80310079\n\tFVE_E_POLICY_INVALID_PASSPHRASE_LENGTH                                    Handle        = 0x80310080\n\tFVE_E_POLICY_PASSPHRASE_TOO_SIMPLE                                        Handle        = 0x80310081\n\tFVE_E_RECOVERY_PARTITION                                                  Handle        = 0x80310082\n\tFVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON                                   Handle        = 0x80310083\n\tFVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON                                   Handle        = 0x80310084\n\tFVE_E_NON_BITLOCKER_OID                                                   Handle        = 0x80310085\n\tFVE_E_POLICY_PROHIBITS_SELFSIGNED                                         Handle        = 0x80310086\n\tFVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED                         Handle        = 0x80310087\n\tFVE_E_CONV_RECOVERY_FAILED                                                Handle        = 0x80310088\n\tFVE_E_VIRTUALIZED_SPACE_TOO_BIG                                           Handle        = 0x80310089\n\tFVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON                                   Handle        = 0x80310090\n\tFVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON                                   Handle        = 0x80310091\n\tFVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON                                   Handle        = 0x80310092\n\tFVE_E_NON_BITLOCKER_KU                                                    Handle        = 0x80310093\n\tFVE_E_PRIVATEKEY_AUTH_FAILED                                              Handle        = 0x80310094\n\tFVE_E_REMOVAL_OF_DRA_FAILED                                               Handle        = 0x80310095\n\tFVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME                             Handle        = 0x80310096\n\tFVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME                                 Handle        = 0x80310097\n\tFVE_E_FIPS_HASH_KDF_NOT_ALLOWED                                           Handle        = 0x80310098\n\tFVE_E_ENH_PIN_INVALID                                                     Handle        = 0x80310099\n\tFVE_E_INVALID_PIN_CHARS                                                   Handle        = 0x8031009A\n\tFVE_E_INVALID_DATUM_TYPE                                                  Handle        = 0x8031009B\n\tFVE_E_EFI_ONLY                                                            Handle        = 0x8031009C\n\tFVE_E_MULTIPLE_NKP_CERTS                                                  Handle        = 0x8031009D\n\tFVE_E_REMOVAL_OF_NKP_FAILED                                               Handle        = 0x8031009E\n\tFVE_E_INVALID_NKP_CERT                                                    Handle        = 0x8031009F\n\tFVE_E_NO_EXISTING_PIN                                                     Handle        = 0x803100A0\n\tFVE_E_PROTECTOR_CHANGE_PIN_MISMATCH                                       Handle        = 0x803100A1\n\tFVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED                         Handle        = 0x803100A2\n\tFVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED                    Handle        = 0x803100A3\n\tFVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII                                    Handle        = 0x803100A4\n\tFVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE                           Handle        = 0x803100A5\n\tFVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE                                      Handle        = 0x803100A6\n\tFVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE                                  Handle        = 0x803100A7\n\tFVE_E_NO_EXISTING_PASSPHRASE                                              Handle        = 0x803100A8\n\tFVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH                                Handle        = 0x803100A9\n\tFVE_E_PASSPHRASE_TOO_LONG                                                 Handle        = 0x803100AA\n\tFVE_E_NO_PASSPHRASE_WITH_TPM                                              Handle        = 0x803100AB\n\tFVE_E_NO_TPM_WITH_PASSPHRASE                                              Handle        = 0x803100AC\n\tFVE_E_NOT_ALLOWED_ON_CSV_STACK                                            Handle        = 0x803100AD\n\tFVE_E_NOT_ALLOWED_ON_CLUSTER                                              Handle        = 0x803100AE\n\tFVE_E_EDRIVE_NO_FAILOVER_TO_SW                                            Handle        = 0x803100AF\n\tFVE_E_EDRIVE_BAND_IN_USE                                                  Handle        = 0x803100B0\n\tFVE_E_EDRIVE_DISALLOWED_BY_GP                                             Handle        = 0x803100B1\n\tFVE_E_EDRIVE_INCOMPATIBLE_VOLUME                                          Handle        = 0x803100B2\n\tFVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING                             Handle        = 0x803100B3\n\tFVE_E_EDRIVE_DV_NOT_SUPPORTED                                             Handle        = 0x803100B4\n\tFVE_E_NO_PREBOOT_KEYBOARD_DETECTED                                        Handle        = 0x803100B5\n\tFVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED                               Handle        = 0x803100B6\n\tFVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE                         Handle        = 0x803100B7\n\tFVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE                   Handle        = 0x803100B8\n\tFVE_E_WIPE_CANCEL_NOT_APPLICABLE                                          Handle        = 0x803100B9\n\tFVE_E_SECUREBOOT_DISABLED                                                 Handle        = 0x803100BA\n\tFVE_E_SECUREBOOT_CONFIGURATION_INVALID                                    Handle        = 0x803100BB\n\tFVE_E_EDRIVE_DRY_RUN_FAILED                                               Handle        = 0x803100BC\n\tFVE_E_SHADOW_COPY_PRESENT                                                 Handle        = 0x803100BD\n\tFVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS                                Handle        = 0x803100BE\n\tFVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE                                        Handle        = 0x803100BF\n\tFVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED             Handle        = 0x803100C0\n\tFVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED                  Handle        = 0x803100C1\n\tFVE_E_LIVEID_ACCOUNT_SUSPENDED                                            Handle        = 0x803100C2\n\tFVE_E_LIVEID_ACCOUNT_BLOCKED                                              Handle        = 0x803100C3\n\tFVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES                                      Handle        = 0x803100C4\n\tFVE_E_DE_FIXED_DATA_NOT_SUPPORTED                                         Handle        = 0x803100C5\n\tFVE_E_DE_HARDWARE_NOT_COMPLIANT                                           Handle        = 0x803100C6\n\tFVE_E_DE_WINRE_NOT_CONFIGURED                                             Handle        = 0x803100C7\n\tFVE_E_DE_PROTECTION_SUSPENDED                                             Handle        = 0x803100C8\n\tFVE_E_DE_OS_VOLUME_NOT_PROTECTED                                          Handle        = 0x803100C9\n\tFVE_E_DE_DEVICE_LOCKEDOUT                                                 Handle        = 0x803100CA\n\tFVE_E_DE_PROTECTION_NOT_YET_ENABLED                                       Handle        = 0x803100CB\n\tFVE_E_INVALID_PIN_CHARS_DETAILED                                          Handle        = 0x803100CC\n\tFVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE                                  Handle        = 0x803100CD\n\tFVE_E_DEVICELOCKOUT_COUNTER_MISMATCH                                      Handle        = 0x803100CE\n\tFVE_E_BUFFER_TOO_LARGE                                                    Handle        = 0x803100CF\n\tFVE_E_NO_SUCH_CAPABILITY_ON_TARGET                                        Handle        = 0x803100D0\n\tFVE_E_DE_PREVENTED_FOR_OS                                                 Handle        = 0x803100D1\n\tFVE_E_DE_VOLUME_OPTED_OUT                                                 Handle        = 0x803100D2\n\tFVE_E_DE_VOLUME_NOT_SUPPORTED                                             Handle        = 0x803100D3\n\tFVE_E_EOW_NOT_SUPPORTED_IN_VERSION                                        Handle        = 0x803100D4\n\tFVE_E_ADBACKUP_NOT_ENABLED                                                Handle        = 0x803100D5\n\tFVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT                                  Handle        = 0x803100D6\n\tFVE_E_NOT_DE_VOLUME                                                       Handle        = 0x803100D7\n\tFVE_E_PROTECTION_CANNOT_BE_DISABLED                                       Handle        = 0x803100D8\n\tFVE_E_OSV_KSR_NOT_ALLOWED                                                 Handle        = 0x803100D9\n\tFVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE                          Handle        = 0x803100DA\n\tFVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE                       Handle        = 0x803100DB\n\tFVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE                   Handle        = 0x803100DC\n\tFVE_E_KEY_ROTATION_NOT_SUPPORTED                                          Handle        = 0x803100DD\n\tFVE_E_EXECUTE_REQUEST_SENT_TOO_SOON                                       Handle        = 0x803100DE\n\tFVE_E_KEY_ROTATION_NOT_ENABLED                                            Handle        = 0x803100DF\n\tFVE_E_DEVICE_NOT_JOINED                                                   Handle        = 0x803100E0\n\tFWP_E_CALLOUT_NOT_FOUND                                                   Handle        = 0x80320001\n\tFWP_E_CONDITION_NOT_FOUND                                                 Handle        = 0x80320002\n\tFWP_E_FILTER_NOT_FOUND                                                    Handle        = 0x80320003\n\tFWP_E_LAYER_NOT_FOUND                                                     Handle        = 0x80320004\n\tFWP_E_PROVIDER_NOT_FOUND                                                  Handle        = 0x80320005\n\tFWP_E_PROVIDER_CONTEXT_NOT_FOUND                                          Handle        = 0x80320006\n\tFWP_E_SUBLAYER_NOT_FOUND                                                  Handle        = 0x80320007\n\tFWP_E_NOT_FOUND                                                           Handle        = 0x80320008\n\tFWP_E_ALREADY_EXISTS                                                      Handle        = 0x80320009\n\tFWP_E_IN_USE                                                              Handle        = 0x8032000A\n\tFWP_E_DYNAMIC_SESSION_IN_PROGRESS                                         Handle        = 0x8032000B\n\tFWP_E_WRONG_SESSION                                                       Handle        = 0x8032000C\n\tFWP_E_NO_TXN_IN_PROGRESS                                                  Handle        = 0x8032000D\n\tFWP_E_TXN_IN_PROGRESS                                                     Handle        = 0x8032000E\n\tFWP_E_TXN_ABORTED                                                         Handle        = 0x8032000F\n\tFWP_E_SESSION_ABORTED                                                     Handle        = 0x80320010\n\tFWP_E_INCOMPATIBLE_TXN                                                    Handle        = 0x80320011\n\tFWP_E_TIMEOUT                                                             Handle        = 0x80320012\n\tFWP_E_NET_EVENTS_DISABLED                                                 Handle        = 0x80320013\n\tFWP_E_INCOMPATIBLE_LAYER                                                  Handle        = 0x80320014\n\tFWP_E_KM_CLIENTS_ONLY                                                     Handle        = 0x80320015\n\tFWP_E_LIFETIME_MISMATCH                                                   Handle        = 0x80320016\n\tFWP_E_BUILTIN_OBJECT                                                      Handle        = 0x80320017\n\tFWP_E_TOO_MANY_CALLOUTS                                                   Handle        = 0x80320018\n\tFWP_E_NOTIFICATION_DROPPED                                                Handle        = 0x80320019\n\tFWP_E_TRAFFIC_MISMATCH                                                    Handle        = 0x8032001A\n\tFWP_E_INCOMPATIBLE_SA_STATE                                               Handle        = 0x8032001B\n\tFWP_E_NULL_POINTER                                                        Handle        = 0x8032001C\n\tFWP_E_INVALID_ENUMERATOR                                                  Handle        = 0x8032001D\n\tFWP_E_INVALID_FLAGS                                                       Handle        = 0x8032001E\n\tFWP_E_INVALID_NET_MASK                                                    Handle        = 0x8032001F\n\tFWP_E_INVALID_RANGE                                                       Handle        = 0x80320020\n\tFWP_E_INVALID_INTERVAL                                                    Handle        = 0x80320021\n\tFWP_E_ZERO_LENGTH_ARRAY                                                   Handle        = 0x80320022\n\tFWP_E_NULL_DISPLAY_NAME                                                   Handle        = 0x80320023\n\tFWP_E_INVALID_ACTION_TYPE                                                 Handle        = 0x80320024\n\tFWP_E_INVALID_WEIGHT                                                      Handle        = 0x80320025\n\tFWP_E_MATCH_TYPE_MISMATCH                                                 Handle        = 0x80320026\n\tFWP_E_TYPE_MISMATCH                                                       Handle        = 0x80320027\n\tFWP_E_OUT_OF_BOUNDS                                                       Handle        = 0x80320028\n\tFWP_E_RESERVED                                                            Handle        = 0x80320029\n\tFWP_E_DUPLICATE_CONDITION                                                 Handle        = 0x8032002A\n\tFWP_E_DUPLICATE_KEYMOD                                                    Handle        = 0x8032002B\n\tFWP_E_ACTION_INCOMPATIBLE_WITH_LAYER                                      Handle        = 0x8032002C\n\tFWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER                                   Handle        = 0x8032002D\n\tFWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER                                     Handle        = 0x8032002E\n\tFWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT                                   Handle        = 0x8032002F\n\tFWP_E_INCOMPATIBLE_AUTH_METHOD                                            Handle        = 0x80320030\n\tFWP_E_INCOMPATIBLE_DH_GROUP                                               Handle        = 0x80320031\n\tFWP_E_EM_NOT_SUPPORTED                                                    Handle        = 0x80320032\n\tFWP_E_NEVER_MATCH                                                         Handle        = 0x80320033\n\tFWP_E_PROVIDER_CONTEXT_MISMATCH                                           Handle        = 0x80320034\n\tFWP_E_INVALID_PARAMETER                                                   Handle        = 0x80320035\n\tFWP_E_TOO_MANY_SUBLAYERS                                                  Handle        = 0x80320036\n\tFWP_E_CALLOUT_NOTIFICATION_FAILED                                         Handle        = 0x80320037\n\tFWP_E_INVALID_AUTH_TRANSFORM                                              Handle        = 0x80320038\n\tFWP_E_INVALID_CIPHER_TRANSFORM                                            Handle        = 0x80320039\n\tFWP_E_INCOMPATIBLE_CIPHER_TRANSFORM                                       Handle        = 0x8032003A\n\tFWP_E_INVALID_TRANSFORM_COMBINATION                                       Handle        = 0x8032003B\n\tFWP_E_DUPLICATE_AUTH_METHOD                                               Handle        = 0x8032003C\n\tFWP_E_INVALID_TUNNEL_ENDPOINT                                             Handle        = 0x8032003D\n\tFWP_E_L2_DRIVER_NOT_READY                                                 Handle        = 0x8032003E\n\tFWP_E_KEY_DICTATOR_ALREADY_REGISTERED                                     Handle        = 0x8032003F\n\tFWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL                               Handle        = 0x80320040\n\tFWP_E_CONNECTIONS_DISABLED                                                Handle        = 0x80320041\n\tFWP_E_INVALID_DNS_NAME                                                    Handle        = 0x80320042\n\tFWP_E_STILL_ON                                                            Handle        = 0x80320043\n\tFWP_E_IKEEXT_NOT_RUNNING                                                  Handle        = 0x80320044\n\tFWP_E_DROP_NOICMP                                                         Handle        = 0x80320104\n\tWS_S_ASYNC                                                                Handle        = 0x003D0000\n\tWS_S_END                                                                  Handle        = 0x003D0001\n\tWS_E_INVALID_FORMAT                                                       Handle        = 0x803D0000\n\tWS_E_OBJECT_FAULTED                                                       Handle        = 0x803D0001\n\tWS_E_NUMERIC_OVERFLOW                                                     Handle        = 0x803D0002\n\tWS_E_INVALID_OPERATION                                                    Handle        = 0x803D0003\n\tWS_E_OPERATION_ABORTED                                                    Handle        = 0x803D0004\n\tWS_E_ENDPOINT_ACCESS_DENIED                                               Handle        = 0x803D0005\n\tWS_E_OPERATION_TIMED_OUT                                                  Handle        = 0x803D0006\n\tWS_E_OPERATION_ABANDONED                                                  Handle        = 0x803D0007\n\tWS_E_QUOTA_EXCEEDED                                                       Handle        = 0x803D0008\n\tWS_E_NO_TRANSLATION_AVAILABLE                                             Handle        = 0x803D0009\n\tWS_E_SECURITY_VERIFICATION_FAILURE                                        Handle        = 0x803D000A\n\tWS_E_ADDRESS_IN_USE                                                       Handle        = 0x803D000B\n\tWS_E_ADDRESS_NOT_AVAILABLE                                                Handle        = 0x803D000C\n\tWS_E_ENDPOINT_NOT_FOUND                                                   Handle        = 0x803D000D\n\tWS_E_ENDPOINT_NOT_AVAILABLE                                               Handle        = 0x803D000E\n\tWS_E_ENDPOINT_FAILURE                                                     Handle        = 0x803D000F\n\tWS_E_ENDPOINT_UNREACHABLE                                                 Handle        = 0x803D0010\n\tWS_E_ENDPOINT_ACTION_NOT_SUPPORTED                                        Handle        = 0x803D0011\n\tWS_E_ENDPOINT_TOO_BUSY                                                    Handle        = 0x803D0012\n\tWS_E_ENDPOINT_FAULT_RECEIVED                                              Handle        = 0x803D0013\n\tWS_E_ENDPOINT_DISCONNECTED                                                Handle        = 0x803D0014\n\tWS_E_PROXY_FAILURE                                                        Handle        = 0x803D0015\n\tWS_E_PROXY_ACCESS_DENIED                                                  Handle        = 0x803D0016\n\tWS_E_NOT_SUPPORTED                                                        Handle        = 0x803D0017\n\tWS_E_PROXY_REQUIRES_BASIC_AUTH                                            Handle        = 0x803D0018\n\tWS_E_PROXY_REQUIRES_DIGEST_AUTH                                           Handle        = 0x803D0019\n\tWS_E_PROXY_REQUIRES_NTLM_AUTH                                             Handle        = 0x803D001A\n\tWS_E_PROXY_REQUIRES_NEGOTIATE_AUTH                                        Handle        = 0x803D001B\n\tWS_E_SERVER_REQUIRES_BASIC_AUTH                                           Handle        = 0x803D001C\n\tWS_E_SERVER_REQUIRES_DIGEST_AUTH                                          Handle        = 0x803D001D\n\tWS_E_SERVER_REQUIRES_NTLM_AUTH                                            Handle        = 0x803D001E\n\tWS_E_SERVER_REQUIRES_NEGOTIATE_AUTH                                       Handle        = 0x803D001F\n\tWS_E_INVALID_ENDPOINT_URL                                                 Handle        = 0x803D0020\n\tWS_E_OTHER                                                                Handle        = 0x803D0021\n\tWS_E_SECURITY_TOKEN_EXPIRED                                               Handle        = 0x803D0022\n\tWS_E_SECURITY_SYSTEM_FAILURE                                              Handle        = 0x803D0023\n\tERROR_NDIS_INTERFACE_CLOSING                                              syscall.Errno = 0x80340002\n\tERROR_NDIS_BAD_VERSION                                                    syscall.Errno = 0x80340004\n\tERROR_NDIS_BAD_CHARACTERISTICS                                            syscall.Errno = 0x80340005\n\tERROR_NDIS_ADAPTER_NOT_FOUND                                              syscall.Errno = 0x80340006\n\tERROR_NDIS_OPEN_FAILED                                                    syscall.Errno = 0x80340007\n\tERROR_NDIS_DEVICE_FAILED                                                  syscall.Errno = 0x80340008\n\tERROR_NDIS_MULTICAST_FULL                                                 syscall.Errno = 0x80340009\n\tERROR_NDIS_MULTICAST_EXISTS                                               syscall.Errno = 0x8034000A\n\tERROR_NDIS_MULTICAST_NOT_FOUND                                            syscall.Errno = 0x8034000B\n\tERROR_NDIS_REQUEST_ABORTED                                                syscall.Errno = 0x8034000C\n\tERROR_NDIS_RESET_IN_PROGRESS                                              syscall.Errno = 0x8034000D\n\tERROR_NDIS_NOT_SUPPORTED                                                  syscall.Errno = 0x803400BB\n\tERROR_NDIS_INVALID_PACKET                                                 syscall.Errno = 0x8034000F\n\tERROR_NDIS_ADAPTER_NOT_READY                                              syscall.Errno = 0x80340011\n\tERROR_NDIS_INVALID_LENGTH                                                 syscall.Errno = 0x80340014\n\tERROR_NDIS_INVALID_DATA                                                   syscall.Errno = 0x80340015\n\tERROR_NDIS_BUFFER_TOO_SHORT                                               syscall.Errno = 0x80340016\n\tERROR_NDIS_INVALID_OID                                                    syscall.Errno = 0x80340017\n\tERROR_NDIS_ADAPTER_REMOVED                                                syscall.Errno = 0x80340018\n\tERROR_NDIS_UNSUPPORTED_MEDIA                                              syscall.Errno = 0x80340019\n\tERROR_NDIS_GROUP_ADDRESS_IN_USE                                           syscall.Errno = 0x8034001A\n\tERROR_NDIS_FILE_NOT_FOUND                                                 syscall.Errno = 0x8034001B\n\tERROR_NDIS_ERROR_READING_FILE                                             syscall.Errno = 0x8034001C\n\tERROR_NDIS_ALREADY_MAPPED                                                 syscall.Errno = 0x8034001D\n\tERROR_NDIS_RESOURCE_CONFLICT                                              syscall.Errno = 0x8034001E\n\tERROR_NDIS_MEDIA_DISCONNECTED                                             syscall.Errno = 0x8034001F\n\tERROR_NDIS_INVALID_ADDRESS                                                syscall.Errno = 0x80340022\n\tERROR_NDIS_INVALID_DEVICE_REQUEST                                         syscall.Errno = 0x80340010\n\tERROR_NDIS_PAUSED                                                         syscall.Errno = 0x8034002A\n\tERROR_NDIS_INTERFACE_NOT_FOUND                                            syscall.Errno = 0x8034002B\n\tERROR_NDIS_UNSUPPORTED_REVISION                                           syscall.Errno = 0x8034002C\n\tERROR_NDIS_INVALID_PORT                                                   syscall.Errno = 0x8034002D\n\tERROR_NDIS_INVALID_PORT_STATE                                             syscall.Errno = 0x8034002E\n\tERROR_NDIS_LOW_POWER_STATE                                                syscall.Errno = 0x8034002F\n\tERROR_NDIS_REINIT_REQUIRED                                                syscall.Errno = 0x80340030\n\tERROR_NDIS_NO_QUEUES                                                      syscall.Errno = 0x80340031\n\tERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED                                      syscall.Errno = 0x80342000\n\tERROR_NDIS_DOT11_MEDIA_IN_USE                                             syscall.Errno = 0x80342001\n\tERROR_NDIS_DOT11_POWER_STATE_INVALID                                      syscall.Errno = 0x80342002\n\tERROR_NDIS_PM_WOL_PATTERN_LIST_FULL                                       syscall.Errno = 0x80342003\n\tERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL                                  syscall.Errno = 0x80342004\n\tERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE                       syscall.Errno = 0x80342005\n\tERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE                          syscall.Errno = 0x80342006\n\tERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED                                   syscall.Errno = 0x80342007\n\tERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED                                      syscall.Errno = 0x80342008\n\tERROR_NDIS_INDICATION_REQUIRED                                            syscall.Errno = 0x00340001\n\tERROR_NDIS_OFFLOAD_POLICY                                                 syscall.Errno = 0xC034100F\n\tERROR_NDIS_OFFLOAD_CONNECTION_REJECTED                                    syscall.Errno = 0xC0341012\n\tERROR_NDIS_OFFLOAD_PATH_REJECTED                                          syscall.Errno = 0xC0341013\n\tERROR_HV_INVALID_HYPERCALL_CODE                                           syscall.Errno = 0xC0350002\n\tERROR_HV_INVALID_HYPERCALL_INPUT                                          syscall.Errno = 0xC0350003\n\tERROR_HV_INVALID_ALIGNMENT                                                syscall.Errno = 0xC0350004\n\tERROR_HV_INVALID_PARAMETER                                                syscall.Errno = 0xC0350005\n\tERROR_HV_ACCESS_DENIED                                                    syscall.Errno = 0xC0350006\n\tERROR_HV_INVALID_PARTITION_STATE                                          syscall.Errno = 0xC0350007\n\tERROR_HV_OPERATION_DENIED                                                 syscall.Errno = 0xC0350008\n\tERROR_HV_UNKNOWN_PROPERTY                                                 syscall.Errno = 0xC0350009\n\tERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE                                      syscall.Errno = 0xC035000A\n\tERROR_HV_INSUFFICIENT_MEMORY                                              syscall.Errno = 0xC035000B\n\tERROR_HV_PARTITION_TOO_DEEP                                               syscall.Errno = 0xC035000C\n\tERROR_HV_INVALID_PARTITION_ID                                             syscall.Errno = 0xC035000D\n\tERROR_HV_INVALID_VP_INDEX                                                 syscall.Errno = 0xC035000E\n\tERROR_HV_INVALID_PORT_ID                                                  syscall.Errno = 0xC0350011\n\tERROR_HV_INVALID_CONNECTION_ID                                            syscall.Errno = 0xC0350012\n\tERROR_HV_INSUFFICIENT_BUFFERS                                             syscall.Errno = 0xC0350013\n\tERROR_HV_NOT_ACKNOWLEDGED                                                 syscall.Errno = 0xC0350014\n\tERROR_HV_INVALID_VP_STATE                                                 syscall.Errno = 0xC0350015\n\tERROR_HV_ACKNOWLEDGED                                                     syscall.Errno = 0xC0350016\n\tERROR_HV_INVALID_SAVE_RESTORE_STATE                                       syscall.Errno = 0xC0350017\n\tERROR_HV_INVALID_SYNIC_STATE                                              syscall.Errno = 0xC0350018\n\tERROR_HV_OBJECT_IN_USE                                                    syscall.Errno = 0xC0350019\n\tERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO                                    syscall.Errno = 0xC035001A\n\tERROR_HV_NO_DATA                                                          syscall.Errno = 0xC035001B\n\tERROR_HV_INACTIVE                                                         syscall.Errno = 0xC035001C\n\tERROR_HV_NO_RESOURCES                                                     syscall.Errno = 0xC035001D\n\tERROR_HV_FEATURE_UNAVAILABLE                                              syscall.Errno = 0xC035001E\n\tERROR_HV_INSUFFICIENT_BUFFER                                              syscall.Errno = 0xC0350033\n\tERROR_HV_INSUFFICIENT_DEVICE_DOMAINS                                      syscall.Errno = 0xC0350038\n\tERROR_HV_CPUID_FEATURE_VALIDATION                                         syscall.Errno = 0xC035003C\n\tERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION                                   syscall.Errno = 0xC035003D\n\tERROR_HV_PROCESSOR_STARTUP_TIMEOUT                                        syscall.Errno = 0xC035003E\n\tERROR_HV_SMX_ENABLED                                                      syscall.Errno = 0xC035003F\n\tERROR_HV_INVALID_LP_INDEX                                                 syscall.Errno = 0xC0350041\n\tERROR_HV_INVALID_REGISTER_VALUE                                           syscall.Errno = 0xC0350050\n\tERROR_HV_INVALID_VTL_STATE                                                syscall.Errno = 0xC0350051\n\tERROR_HV_NX_NOT_DETECTED                                                  syscall.Errno = 0xC0350055\n\tERROR_HV_INVALID_DEVICE_ID                                                syscall.Errno = 0xC0350057\n\tERROR_HV_INVALID_DEVICE_STATE                                             syscall.Errno = 0xC0350058\n\tERROR_HV_PENDING_PAGE_REQUESTS                                            syscall.Errno = 0x00350059\n\tERROR_HV_PAGE_REQUEST_INVALID                                             syscall.Errno = 0xC0350060\n\tERROR_HV_INVALID_CPU_GROUP_ID                                             syscall.Errno = 0xC035006F\n\tERROR_HV_INVALID_CPU_GROUP_STATE                                          syscall.Errno = 0xC0350070\n\tERROR_HV_OPERATION_FAILED                                                 syscall.Errno = 0xC0350071\n\tERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE                              syscall.Errno = 0xC0350072\n\tERROR_HV_INSUFFICIENT_ROOT_MEMORY                                         syscall.Errno = 0xC0350073\n\tERROR_HV_NOT_PRESENT                                                      syscall.Errno = 0xC0351000\n\tERROR_VID_DUPLICATE_HANDLER                                               syscall.Errno = 0xC0370001\n\tERROR_VID_TOO_MANY_HANDLERS                                               syscall.Errno = 0xC0370002\n\tERROR_VID_QUEUE_FULL                                                      syscall.Errno = 0xC0370003\n\tERROR_VID_HANDLER_NOT_PRESENT                                             syscall.Errno = 0xC0370004\n\tERROR_VID_INVALID_OBJECT_NAME                                             syscall.Errno = 0xC0370005\n\tERROR_VID_PARTITION_NAME_TOO_LONG                                         syscall.Errno = 0xC0370006\n\tERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG                                     syscall.Errno = 0xC0370007\n\tERROR_VID_PARTITION_ALREADY_EXISTS                                        syscall.Errno = 0xC0370008\n\tERROR_VID_PARTITION_DOES_NOT_EXIST                                        syscall.Errno = 0xC0370009\n\tERROR_VID_PARTITION_NAME_NOT_FOUND                                        syscall.Errno = 0xC037000A\n\tERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS                                    syscall.Errno = 0xC037000B\n\tERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT                                    syscall.Errno = 0xC037000C\n\tERROR_VID_MB_STILL_REFERENCED                                             syscall.Errno = 0xC037000D\n\tERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED                                    syscall.Errno = 0xC037000E\n\tERROR_VID_INVALID_NUMA_SETTINGS                                           syscall.Errno = 0xC037000F\n\tERROR_VID_INVALID_NUMA_NODE_INDEX                                         syscall.Errno = 0xC0370010\n\tERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED                           syscall.Errno = 0xC0370011\n\tERROR_VID_INVALID_MEMORY_BLOCK_HANDLE                                     syscall.Errno = 0xC0370012\n\tERROR_VID_PAGE_RANGE_OVERFLOW                                             syscall.Errno = 0xC0370013\n\tERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE                                    syscall.Errno = 0xC0370014\n\tERROR_VID_INVALID_GPA_RANGE_HANDLE                                        syscall.Errno = 0xC0370015\n\tERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE                              syscall.Errno = 0xC0370016\n\tERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED                                syscall.Errno = 0xC0370017\n\tERROR_VID_INVALID_PPM_HANDLE                                              syscall.Errno = 0xC0370018\n\tERROR_VID_MBPS_ARE_LOCKED                                                 syscall.Errno = 0xC0370019\n\tERROR_VID_MESSAGE_QUEUE_CLOSED                                            syscall.Errno = 0xC037001A\n\tERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED                                syscall.Errno = 0xC037001B\n\tERROR_VID_STOP_PENDING                                                    syscall.Errno = 0xC037001C\n\tERROR_VID_INVALID_PROCESSOR_STATE                                         syscall.Errno = 0xC037001D\n\tERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT                                 syscall.Errno = 0xC037001E\n\tERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED                                syscall.Errno = 0xC037001F\n\tERROR_VID_MB_PROPERTY_ALREADY_SET_RESET                                   syscall.Errno = 0xC0370020\n\tERROR_VID_MMIO_RANGE_DESTROYED                                            syscall.Errno = 0xC0370021\n\tERROR_VID_INVALID_CHILD_GPA_PAGE_SET                                      syscall.Errno = 0xC0370022\n\tERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED                                  syscall.Errno = 0xC0370023\n\tERROR_VID_RESERVE_PAGE_SET_TOO_SMALL                                      syscall.Errno = 0xC0370024\n\tERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE                          syscall.Errno = 0xC0370025\n\tERROR_VID_MBP_COUNT_EXCEEDED_LIMIT                                        syscall.Errno = 0xC0370026\n\tERROR_VID_SAVED_STATE_CORRUPT                                             syscall.Errno = 0xC0370027\n\tERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM                                   syscall.Errno = 0xC0370028\n\tERROR_VID_SAVED_STATE_INCOMPATIBLE                                        syscall.Errno = 0xC0370029\n\tERROR_VID_VTL_ACCESS_DENIED                                               syscall.Errno = 0xC037002A\n\tERROR_VMCOMPUTE_TERMINATED_DURING_START                                   syscall.Errno = 0xC0370100\n\tERROR_VMCOMPUTE_IMAGE_MISMATCH                                            syscall.Errno = 0xC0370101\n\tERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED                                      syscall.Errno = 0xC0370102\n\tERROR_VMCOMPUTE_OPERATION_PENDING                                         syscall.Errno = 0xC0370103\n\tERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS                                    syscall.Errno = 0xC0370104\n\tERROR_VMCOMPUTE_INVALID_STATE                                             syscall.Errno = 0xC0370105\n\tERROR_VMCOMPUTE_UNEXPECTED_EXIT                                           syscall.Errno = 0xC0370106\n\tERROR_VMCOMPUTE_TERMINATED                                                syscall.Errno = 0xC0370107\n\tERROR_VMCOMPUTE_CONNECT_FAILED                                            syscall.Errno = 0xC0370108\n\tERROR_VMCOMPUTE_TIMEOUT                                                   syscall.Errno = 0xC0370109\n\tERROR_VMCOMPUTE_CONNECTION_CLOSED                                         syscall.Errno = 0xC037010A\n\tERROR_VMCOMPUTE_UNKNOWN_MESSAGE                                           syscall.Errno = 0xC037010B\n\tERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION                              syscall.Errno = 0xC037010C\n\tERROR_VMCOMPUTE_INVALID_JSON                                              syscall.Errno = 0xC037010D\n\tERROR_VMCOMPUTE_SYSTEM_NOT_FOUND                                          syscall.Errno = 0xC037010E\n\tERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS                                     syscall.Errno = 0xC037010F\n\tERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED                                    syscall.Errno = 0xC0370110\n\tERROR_VMCOMPUTE_PROTOCOL_ERROR                                            syscall.Errno = 0xC0370111\n\tERROR_VMCOMPUTE_INVALID_LAYER                                             syscall.Errno = 0xC0370112\n\tERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED                                  syscall.Errno = 0xC0370113\n\tHCS_E_TERMINATED_DURING_START                                             Handle        = 0x80370100\n\tHCS_E_IMAGE_MISMATCH                                                      Handle        = 0x80370101\n\tHCS_E_HYPERV_NOT_INSTALLED                                                Handle        = 0x80370102\n\tHCS_E_INVALID_STATE                                                       Handle        = 0x80370105\n\tHCS_E_UNEXPECTED_EXIT                                                     Handle        = 0x80370106\n\tHCS_E_TERMINATED                                                          Handle        = 0x80370107\n\tHCS_E_CONNECT_FAILED                                                      Handle        = 0x80370108\n\tHCS_E_CONNECTION_TIMEOUT                                                  Handle        = 0x80370109\n\tHCS_E_CONNECTION_CLOSED                                                   Handle        = 0x8037010A\n\tHCS_E_UNKNOWN_MESSAGE                                                     Handle        = 0x8037010B\n\tHCS_E_UNSUPPORTED_PROTOCOL_VERSION                                        Handle        = 0x8037010C\n\tHCS_E_INVALID_JSON                                                        Handle        = 0x8037010D\n\tHCS_E_SYSTEM_NOT_FOUND                                                    Handle        = 0x8037010E\n\tHCS_E_SYSTEM_ALREADY_EXISTS                                               Handle        = 0x8037010F\n\tHCS_E_SYSTEM_ALREADY_STOPPED                                              Handle        = 0x80370110\n\tHCS_E_PROTOCOL_ERROR                                                      Handle        = 0x80370111\n\tHCS_E_INVALID_LAYER                                                       Handle        = 0x80370112\n\tHCS_E_WINDOWS_INSIDER_REQUIRED                                            Handle        = 0x80370113\n\tHCS_E_SERVICE_NOT_AVAILABLE                                               Handle        = 0x80370114\n\tHCS_E_OPERATION_NOT_STARTED                                               Handle        = 0x80370115\n\tHCS_E_OPERATION_ALREADY_STARTED                                           Handle        = 0x80370116\n\tHCS_E_OPERATION_PENDING                                                   Handle        = 0x80370117\n\tHCS_E_OPERATION_TIMEOUT                                                   Handle        = 0x80370118\n\tHCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET                               Handle        = 0x80370119\n\tHCS_E_OPERATION_RESULT_ALLOCATION_FAILED                                  Handle        = 0x8037011A\n\tHCS_E_ACCESS_DENIED                                                       Handle        = 0x8037011B\n\tHCS_E_GUEST_CRITICAL_ERROR                                                Handle        = 0x8037011C\n\tERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND                                  syscall.Errno = 0xC0370200\n\tERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED                               syscall.Errno = 0x80370001\n\tWHV_E_UNKNOWN_CAPABILITY                                                  Handle        = 0x80370300\n\tWHV_E_INSUFFICIENT_BUFFER                                                 Handle        = 0x80370301\n\tWHV_E_UNKNOWN_PROPERTY                                                    Handle        = 0x80370302\n\tWHV_E_UNSUPPORTED_HYPERVISOR_CONFIG                                       Handle        = 0x80370303\n\tWHV_E_INVALID_PARTITION_CONFIG                                            Handle        = 0x80370304\n\tWHV_E_GPA_RANGE_NOT_FOUND                                                 Handle        = 0x80370305\n\tWHV_E_VP_ALREADY_EXISTS                                                   Handle        = 0x80370306\n\tWHV_E_VP_DOES_NOT_EXIST                                                   Handle        = 0x80370307\n\tWHV_E_INVALID_VP_STATE                                                    Handle        = 0x80370308\n\tWHV_E_INVALID_VP_REGISTER_NAME                                            Handle        = 0x80370309\n\tERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND                                     syscall.Errno = 0xC0370400\n\tERROR_VSMB_SAVED_STATE_CORRUPT                                            syscall.Errno = 0xC0370401\n\tERROR_VOLMGR_INCOMPLETE_REGENERATION                                      syscall.Errno = 0x80380001\n\tERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION                                    syscall.Errno = 0x80380002\n\tERROR_VOLMGR_DATABASE_FULL                                                syscall.Errno = 0xC0380001\n\tERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED                                 syscall.Errno = 0xC0380002\n\tERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC                               syscall.Errno = 0xC0380003\n\tERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED                                    syscall.Errno = 0xC0380004\n\tERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME                              syscall.Errno = 0xC0380005\n\tERROR_VOLMGR_DISK_DUPLICATE                                               syscall.Errno = 0xC0380006\n\tERROR_VOLMGR_DISK_DYNAMIC                                                 syscall.Errno = 0xC0380007\n\tERROR_VOLMGR_DISK_ID_INVALID                                              syscall.Errno = 0xC0380008\n\tERROR_VOLMGR_DISK_INVALID                                                 syscall.Errno = 0xC0380009\n\tERROR_VOLMGR_DISK_LAST_VOTER                                              syscall.Errno = 0xC038000A\n\tERROR_VOLMGR_DISK_LAYOUT_INVALID                                          syscall.Errno = 0xC038000B\n\tERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS               syscall.Errno = 0xC038000C\n\tERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED                             syscall.Errno = 0xC038000D\n\tERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL                             syscall.Errno = 0xC038000E\n\tERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS               syscall.Errno = 0xC038000F\n\tERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS                              syscall.Errno = 0xC0380010\n\tERROR_VOLMGR_DISK_MISSING                                                 syscall.Errno = 0xC0380011\n\tERROR_VOLMGR_DISK_NOT_EMPTY                                               syscall.Errno = 0xC0380012\n\tERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE                                        syscall.Errno = 0xC0380013\n\tERROR_VOLMGR_DISK_REVECTORING_FAILED                                      syscall.Errno = 0xC0380014\n\tERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID                                     syscall.Errno = 0xC0380015\n\tERROR_VOLMGR_DISK_SET_NOT_CONTAINED                                       syscall.Errno = 0xC0380016\n\tERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS                                syscall.Errno = 0xC0380017\n\tERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES                                 syscall.Errno = 0xC0380018\n\tERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED                                   syscall.Errno = 0xC0380019\n\tERROR_VOLMGR_EXTENT_ALREADY_USED                                          syscall.Errno = 0xC038001A\n\tERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS                                        syscall.Errno = 0xC038001B\n\tERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION                                  syscall.Errno = 0xC038001C\n\tERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED                                    syscall.Errno = 0xC038001D\n\tERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION                                syscall.Errno = 0xC038001E\n\tERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH                           syscall.Errno = 0xC038001F\n\tERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED                                 syscall.Errno = 0xC0380020\n\tERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID                                    syscall.Errno = 0xC0380021\n\tERROR_VOLMGR_MAXIMUM_REGISTERED_USERS                                     syscall.Errno = 0xC0380022\n\tERROR_VOLMGR_MEMBER_IN_SYNC                                               syscall.Errno = 0xC0380023\n\tERROR_VOLMGR_MEMBER_INDEX_DUPLICATE                                       syscall.Errno = 0xC0380024\n\tERROR_VOLMGR_MEMBER_INDEX_INVALID                                         syscall.Errno = 0xC0380025\n\tERROR_VOLMGR_MEMBER_MISSING                                               syscall.Errno = 0xC0380026\n\tERROR_VOLMGR_MEMBER_NOT_DETACHED                                          syscall.Errno = 0xC0380027\n\tERROR_VOLMGR_MEMBER_REGENERATING                                          syscall.Errno = 0xC0380028\n\tERROR_VOLMGR_ALL_DISKS_FAILED                                             syscall.Errno = 0xC0380029\n\tERROR_VOLMGR_NO_REGISTERED_USERS                                          syscall.Errno = 0xC038002A\n\tERROR_VOLMGR_NO_SUCH_USER                                                 syscall.Errno = 0xC038002B\n\tERROR_VOLMGR_NOTIFICATION_RESET                                           syscall.Errno = 0xC038002C\n\tERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID                                    syscall.Errno = 0xC038002D\n\tERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID                                     syscall.Errno = 0xC038002E\n\tERROR_VOLMGR_PACK_DUPLICATE                                               syscall.Errno = 0xC038002F\n\tERROR_VOLMGR_PACK_ID_INVALID                                              syscall.Errno = 0xC0380030\n\tERROR_VOLMGR_PACK_INVALID                                                 syscall.Errno = 0xC0380031\n\tERROR_VOLMGR_PACK_NAME_INVALID                                            syscall.Errno = 0xC0380032\n\tERROR_VOLMGR_PACK_OFFLINE                                                 syscall.Errno = 0xC0380033\n\tERROR_VOLMGR_PACK_HAS_QUORUM                                              syscall.Errno = 0xC0380034\n\tERROR_VOLMGR_PACK_WITHOUT_QUORUM                                          syscall.Errno = 0xC0380035\n\tERROR_VOLMGR_PARTITION_STYLE_INVALID                                      syscall.Errno = 0xC0380036\n\tERROR_VOLMGR_PARTITION_UPDATE_FAILED                                      syscall.Errno = 0xC0380037\n\tERROR_VOLMGR_PLEX_IN_SYNC                                                 syscall.Errno = 0xC0380038\n\tERROR_VOLMGR_PLEX_INDEX_DUPLICATE                                         syscall.Errno = 0xC0380039\n\tERROR_VOLMGR_PLEX_INDEX_INVALID                                           syscall.Errno = 0xC038003A\n\tERROR_VOLMGR_PLEX_LAST_ACTIVE                                             syscall.Errno = 0xC038003B\n\tERROR_VOLMGR_PLEX_MISSING                                                 syscall.Errno = 0xC038003C\n\tERROR_VOLMGR_PLEX_REGENERATING                                            syscall.Errno = 0xC038003D\n\tERROR_VOLMGR_PLEX_TYPE_INVALID                                            syscall.Errno = 0xC038003E\n\tERROR_VOLMGR_PLEX_NOT_RAID5                                               syscall.Errno = 0xC038003F\n\tERROR_VOLMGR_PLEX_NOT_SIMPLE                                              syscall.Errno = 0xC0380040\n\tERROR_VOLMGR_STRUCTURE_SIZE_INVALID                                       syscall.Errno = 0xC0380041\n\tERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS                               syscall.Errno = 0xC0380042\n\tERROR_VOLMGR_TRANSACTION_IN_PROGRESS                                      syscall.Errno = 0xC0380043\n\tERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE                                syscall.Errno = 0xC0380044\n\tERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK                                 syscall.Errno = 0xC0380045\n\tERROR_VOLMGR_VOLUME_ID_INVALID                                            syscall.Errno = 0xC0380046\n\tERROR_VOLMGR_VOLUME_LENGTH_INVALID                                        syscall.Errno = 0xC0380047\n\tERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE                       syscall.Errno = 0xC0380048\n\tERROR_VOLMGR_VOLUME_NOT_MIRRORED                                          syscall.Errno = 0xC0380049\n\tERROR_VOLMGR_VOLUME_NOT_RETAINED                                          syscall.Errno = 0xC038004A\n\tERROR_VOLMGR_VOLUME_OFFLINE                                               syscall.Errno = 0xC038004B\n\tERROR_VOLMGR_VOLUME_RETAINED                                              syscall.Errno = 0xC038004C\n\tERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID                                    syscall.Errno = 0xC038004D\n\tERROR_VOLMGR_DIFFERENT_SECTOR_SIZE                                        syscall.Errno = 0xC038004E\n\tERROR_VOLMGR_BAD_BOOT_DISK                                                syscall.Errno = 0xC038004F\n\tERROR_VOLMGR_PACK_CONFIG_OFFLINE                                          syscall.Errno = 0xC0380050\n\tERROR_VOLMGR_PACK_CONFIG_ONLINE                                           syscall.Errno = 0xC0380051\n\tERROR_VOLMGR_NOT_PRIMARY_PACK                                             syscall.Errno = 0xC0380052\n\tERROR_VOLMGR_PACK_LOG_UPDATE_FAILED                                       syscall.Errno = 0xC0380053\n\tERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID                              syscall.Errno = 0xC0380054\n\tERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID                            syscall.Errno = 0xC0380055\n\tERROR_VOLMGR_VOLUME_MIRRORED                                              syscall.Errno = 0xC0380056\n\tERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED                                      syscall.Errno = 0xC0380057\n\tERROR_VOLMGR_NO_VALID_LOG_COPIES                                          syscall.Errno = 0xC0380058\n\tERROR_VOLMGR_PRIMARY_PACK_PRESENT                                         syscall.Errno = 0xC0380059\n\tERROR_VOLMGR_NUMBER_OF_DISKS_INVALID                                      syscall.Errno = 0xC038005A\n\tERROR_VOLMGR_MIRROR_NOT_SUPPORTED                                         syscall.Errno = 0xC038005B\n\tERROR_VOLMGR_RAID5_NOT_SUPPORTED                                          syscall.Errno = 0xC038005C\n\tERROR_BCD_NOT_ALL_ENTRIES_IMPORTED                                        syscall.Errno = 0x80390001\n\tERROR_BCD_TOO_MANY_ELEMENTS                                               syscall.Errno = 0xC0390002\n\tERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED                                    syscall.Errno = 0x80390003\n\tERROR_VHD_DRIVE_FOOTER_MISSING                                            syscall.Errno = 0xC03A0001\n\tERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH                                  syscall.Errno = 0xC03A0002\n\tERROR_VHD_DRIVE_FOOTER_CORRUPT                                            syscall.Errno = 0xC03A0003\n\tERROR_VHD_FORMAT_UNKNOWN                                                  syscall.Errno = 0xC03A0004\n\tERROR_VHD_FORMAT_UNSUPPORTED_VERSION                                      syscall.Errno = 0xC03A0005\n\tERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH                                 syscall.Errno = 0xC03A0006\n\tERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION                               syscall.Errno = 0xC03A0007\n\tERROR_VHD_SPARSE_HEADER_CORRUPT                                           syscall.Errno = 0xC03A0008\n\tERROR_VHD_BLOCK_ALLOCATION_FAILURE                                        syscall.Errno = 0xC03A0009\n\tERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT                                  syscall.Errno = 0xC03A000A\n\tERROR_VHD_INVALID_BLOCK_SIZE                                              syscall.Errno = 0xC03A000B\n\tERROR_VHD_BITMAP_MISMATCH                                                 syscall.Errno = 0xC03A000C\n\tERROR_VHD_PARENT_VHD_NOT_FOUND                                            syscall.Errno = 0xC03A000D\n\tERROR_VHD_CHILD_PARENT_ID_MISMATCH                                        syscall.Errno = 0xC03A000E\n\tERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH                                 syscall.Errno = 0xC03A000F\n\tERROR_VHD_METADATA_READ_FAILURE                                           syscall.Errno = 0xC03A0010\n\tERROR_VHD_METADATA_WRITE_FAILURE                                          syscall.Errno = 0xC03A0011\n\tERROR_VHD_INVALID_SIZE                                                    syscall.Errno = 0xC03A0012\n\tERROR_VHD_INVALID_FILE_SIZE                                               syscall.Errno = 0xC03A0013\n\tERROR_VIRTDISK_PROVIDER_NOT_FOUND                                         syscall.Errno = 0xC03A0014\n\tERROR_VIRTDISK_NOT_VIRTUAL_DISK                                           syscall.Errno = 0xC03A0015\n\tERROR_VHD_PARENT_VHD_ACCESS_DENIED                                        syscall.Errno = 0xC03A0016\n\tERROR_VHD_CHILD_PARENT_SIZE_MISMATCH                                      syscall.Errno = 0xC03A0017\n\tERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED                               syscall.Errno = 0xC03A0018\n\tERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT                              syscall.Errno = 0xC03A0019\n\tERROR_VIRTUAL_DISK_LIMITATION                                             syscall.Errno = 0xC03A001A\n\tERROR_VHD_INVALID_TYPE                                                    syscall.Errno = 0xC03A001B\n\tERROR_VHD_INVALID_STATE                                                   syscall.Errno = 0xC03A001C\n\tERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE                               syscall.Errno = 0xC03A001D\n\tERROR_VIRTDISK_DISK_ALREADY_OWNED                                         syscall.Errno = 0xC03A001E\n\tERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE                                   syscall.Errno = 0xC03A001F\n\tERROR_CTLOG_TRACKING_NOT_INITIALIZED                                      syscall.Errno = 0xC03A0020\n\tERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE                                 syscall.Errno = 0xC03A0021\n\tERROR_CTLOG_VHD_CHANGED_OFFLINE                                           syscall.Errno = 0xC03A0022\n\tERROR_CTLOG_INVALID_TRACKING_STATE                                        syscall.Errno = 0xC03A0023\n\tERROR_CTLOG_INCONSISTENT_TRACKING_FILE                                    syscall.Errno = 0xC03A0024\n\tERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA                                      syscall.Errno = 0xC03A0025\n\tERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE                          syscall.Errno = 0xC03A0026\n\tERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE                        syscall.Errno = 0xC03A0027\n\tERROR_VHD_METADATA_FULL                                                   syscall.Errno = 0xC03A0028\n\tERROR_VHD_INVALID_CHANGE_TRACKING_ID                                      syscall.Errno = 0xC03A0029\n\tERROR_VHD_CHANGE_TRACKING_DISABLED                                        syscall.Errno = 0xC03A002A\n\tERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION                             syscall.Errno = 0xC03A0030\n\tERROR_QUERY_STORAGE_ERROR                                                 syscall.Errno = 0x803A0001\n\tHCN_E_NETWORK_NOT_FOUND                                                   Handle        = 0x803B0001\n\tHCN_E_ENDPOINT_NOT_FOUND                                                  Handle        = 0x803B0002\n\tHCN_E_LAYER_NOT_FOUND                                                     Handle        = 0x803B0003\n\tHCN_E_SWITCH_NOT_FOUND                                                    Handle        = 0x803B0004\n\tHCN_E_SUBNET_NOT_FOUND                                                    Handle        = 0x803B0005\n\tHCN_E_ADAPTER_NOT_FOUND                                                   Handle        = 0x803B0006\n\tHCN_E_PORT_NOT_FOUND                                                      Handle        = 0x803B0007\n\tHCN_E_POLICY_NOT_FOUND                                                    Handle        = 0x803B0008\n\tHCN_E_VFP_PORTSETTING_NOT_FOUND                                           Handle        = 0x803B0009\n\tHCN_E_INVALID_NETWORK                                                     Handle        = 0x803B000A\n\tHCN_E_INVALID_NETWORK_TYPE                                                Handle        = 0x803B000B\n\tHCN_E_INVALID_ENDPOINT                                                    Handle        = 0x803B000C\n\tHCN_E_INVALID_POLICY                                                      Handle        = 0x803B000D\n\tHCN_E_INVALID_POLICY_TYPE                                                 Handle        = 0x803B000E\n\tHCN_E_INVALID_REMOTE_ENDPOINT_OPERATION                                   Handle        = 0x803B000F\n\tHCN_E_NETWORK_ALREADY_EXISTS                                              Handle        = 0x803B0010\n\tHCN_E_LAYER_ALREADY_EXISTS                                                Handle        = 0x803B0011\n\tHCN_E_POLICY_ALREADY_EXISTS                                               Handle        = 0x803B0012\n\tHCN_E_PORT_ALREADY_EXISTS                                                 Handle        = 0x803B0013\n\tHCN_E_ENDPOINT_ALREADY_ATTACHED                                           Handle        = 0x803B0014\n\tHCN_E_REQUEST_UNSUPPORTED                                                 Handle        = 0x803B0015\n\tHCN_E_MAPPING_NOT_SUPPORTED                                               Handle        = 0x803B0016\n\tHCN_E_DEGRADED_OPERATION                                                  Handle        = 0x803B0017\n\tHCN_E_SHARED_SWITCH_MODIFICATION                                          Handle        = 0x803B0018\n\tHCN_E_GUID_CONVERSION_FAILURE                                             Handle        = 0x803B0019\n\tHCN_E_REGKEY_FAILURE                                                      Handle        = 0x803B001A\n\tHCN_E_INVALID_JSON                                                        Handle        = 0x803B001B\n\tHCN_E_INVALID_JSON_REFERENCE                                              Handle        = 0x803B001C\n\tHCN_E_ENDPOINT_SHARING_DISABLED                                           Handle        = 0x803B001D\n\tHCN_E_INVALID_IP                                                          Handle        = 0x803B001E\n\tHCN_E_SWITCH_EXTENSION_NOT_FOUND                                          Handle        = 0x803B001F\n\tHCN_E_MANAGER_STOPPED                                                     Handle        = 0x803B0020\n\tGCN_E_MODULE_NOT_FOUND                                                    Handle        = 0x803B0021\n\tGCN_E_NO_REQUEST_HANDLERS                                                 Handle        = 0x803B0022\n\tGCN_E_REQUEST_UNSUPPORTED                                                 Handle        = 0x803B0023\n\tGCN_E_RUNTIMEKEYS_FAILED                                                  Handle        = 0x803B0024\n\tGCN_E_NETADAPTER_TIMEOUT                                                  Handle        = 0x803B0025\n\tGCN_E_NETADAPTER_NOT_FOUND                                                Handle        = 0x803B0026\n\tGCN_E_NETCOMPARTMENT_NOT_FOUND                                            Handle        = 0x803B0027\n\tGCN_E_NETINTERFACE_NOT_FOUND                                              Handle        = 0x803B0028\n\tGCN_E_DEFAULTNAMESPACE_EXISTS                                             Handle        = 0x803B0029\n\tHCN_E_ICS_DISABLED                                                        Handle        = 0x803B002A\n\tHCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS                                   Handle        = 0x803B002B\n\tHCN_E_ENTITY_HAS_REFERENCES                                               Handle        = 0x803B002C\n\tHCN_E_INVALID_INTERNAL_PORT                                               Handle        = 0x803B002D\n\tHCN_E_NAMESPACE_ATTACH_FAILED                                             Handle        = 0x803B002E\n\tHCN_E_ADDR_INVALID_OR_RESERVED                                            Handle        = 0x803B002F\n\tSDIAG_E_CANCELLED                                                         syscall.Errno = 0x803C0100\n\tSDIAG_E_SCRIPT                                                            syscall.Errno = 0x803C0101\n\tSDIAG_E_POWERSHELL                                                        syscall.Errno = 0x803C0102\n\tSDIAG_E_MANAGEDHOST                                                       syscall.Errno = 0x803C0103\n\tSDIAG_E_NOVERIFIER                                                        syscall.Errno = 0x803C0104\n\tSDIAG_S_CANNOTRUN                                                         syscall.Errno = 0x003C0105\n\tSDIAG_E_DISABLED                                                          syscall.Errno = 0x803C0106\n\tSDIAG_E_TRUST                                                             syscall.Errno = 0x803C0107\n\tSDIAG_E_CANNOTRUN                                                         syscall.Errno = 0x803C0108\n\tSDIAG_E_VERSION                                                           syscall.Errno = 0x803C0109\n\tSDIAG_E_RESOURCE                                                          syscall.Errno = 0x803C010A\n\tSDIAG_E_ROOTCAUSE                                                         syscall.Errno = 0x803C010B\n\tWPN_E_CHANNEL_CLOSED                                                      Handle        = 0x803E0100\n\tWPN_E_CHANNEL_REQUEST_NOT_COMPLETE                                        Handle        = 0x803E0101\n\tWPN_E_INVALID_APP                                                         Handle        = 0x803E0102\n\tWPN_E_OUTSTANDING_CHANNEL_REQUEST                                         Handle        = 0x803E0103\n\tWPN_E_DUPLICATE_CHANNEL                                                   Handle        = 0x803E0104\n\tWPN_E_PLATFORM_UNAVAILABLE                                                Handle        = 0x803E0105\n\tWPN_E_NOTIFICATION_POSTED                                                 Handle        = 0x803E0106\n\tWPN_E_NOTIFICATION_HIDDEN                                                 Handle        = 0x803E0107\n\tWPN_E_NOTIFICATION_NOT_POSTED                                             Handle        = 0x803E0108\n\tWPN_E_CLOUD_DISABLED                                                      Handle        = 0x803E0109\n\tWPN_E_CLOUD_INCAPABLE                                                     Handle        = 0x803E0110\n\tWPN_E_CLOUD_AUTH_UNAVAILABLE                                              Handle        = 0x803E011A\n\tWPN_E_CLOUD_SERVICE_UNAVAILABLE                                           Handle        = 0x803E011B\n\tWPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION                             Handle        = 0x803E011C\n\tWPN_E_NOTIFICATION_DISABLED                                               Handle        = 0x803E0111\n\tWPN_E_NOTIFICATION_INCAPABLE                                              Handle        = 0x803E0112\n\tWPN_E_INTERNET_INCAPABLE                                                  Handle        = 0x803E0113\n\tWPN_E_NOTIFICATION_TYPE_DISABLED                                          Handle        = 0x803E0114\n\tWPN_E_NOTIFICATION_SIZE                                                   Handle        = 0x803E0115\n\tWPN_E_TAG_SIZE                                                            Handle        = 0x803E0116\n\tWPN_E_ACCESS_DENIED                                                       Handle        = 0x803E0117\n\tWPN_E_DUPLICATE_REGISTRATION                                              Handle        = 0x803E0118\n\tWPN_E_PUSH_NOTIFICATION_INCAPABLE                                         Handle        = 0x803E0119\n\tWPN_E_DEV_ID_SIZE                                                         Handle        = 0x803E0120\n\tWPN_E_TAG_ALPHANUMERIC                                                    Handle        = 0x803E012A\n\tWPN_E_INVALID_HTTP_STATUS_CODE                                            Handle        = 0x803E012B\n\tWPN_E_OUT_OF_SESSION                                                      Handle        = 0x803E0200\n\tWPN_E_POWER_SAVE                                                          Handle        = 0x803E0201\n\tWPN_E_IMAGE_NOT_FOUND_IN_CACHE                                            Handle        = 0x803E0202\n\tWPN_E_ALL_URL_NOT_COMPLETED                                               Handle        = 0x803E0203\n\tWPN_E_INVALID_CLOUD_IMAGE                                                 Handle        = 0x803E0204\n\tWPN_E_NOTIFICATION_ID_MATCHED                                             Handle        = 0x803E0205\n\tWPN_E_CALLBACK_ALREADY_REGISTERED                                         Handle        = 0x803E0206\n\tWPN_E_TOAST_NOTIFICATION_DROPPED                                          Handle        = 0x803E0207\n\tWPN_E_STORAGE_LOCKED                                                      Handle        = 0x803E0208\n\tWPN_E_GROUP_SIZE                                                          Handle        = 0x803E0209\n\tWPN_E_GROUP_ALPHANUMERIC                                                  Handle        = 0x803E020A\n\tWPN_E_CLOUD_DISABLED_FOR_APP                                              Handle        = 0x803E020B\n\tE_MBN_CONTEXT_NOT_ACTIVATED                                               Handle        = 0x80548201\n\tE_MBN_BAD_SIM                                                             Handle        = 0x80548202\n\tE_MBN_DATA_CLASS_NOT_AVAILABLE                                            Handle        = 0x80548203\n\tE_MBN_INVALID_ACCESS_STRING                                               Handle        = 0x80548204\n\tE_MBN_MAX_ACTIVATED_CONTEXTS                                              Handle        = 0x80548205\n\tE_MBN_PACKET_SVC_DETACHED                                                 Handle        = 0x80548206\n\tE_MBN_PROVIDER_NOT_VISIBLE                                                Handle        = 0x80548207\n\tE_MBN_RADIO_POWER_OFF                                                     Handle        = 0x80548208\n\tE_MBN_SERVICE_NOT_ACTIVATED                                               Handle        = 0x80548209\n\tE_MBN_SIM_NOT_INSERTED                                                    Handle        = 0x8054820A\n\tE_MBN_VOICE_CALL_IN_PROGRESS                                              Handle        = 0x8054820B\n\tE_MBN_INVALID_CACHE                                                       Handle        = 0x8054820C\n\tE_MBN_NOT_REGISTERED                                                      Handle        = 0x8054820D\n\tE_MBN_PROVIDERS_NOT_FOUND                                                 Handle        = 0x8054820E\n\tE_MBN_PIN_NOT_SUPPORTED                                                   Handle        = 0x8054820F\n\tE_MBN_PIN_REQUIRED                                                        Handle        = 0x80548210\n\tE_MBN_PIN_DISABLED                                                        Handle        = 0x80548211\n\tE_MBN_FAILURE                                                             Handle        = 0x80548212\n\tE_MBN_INVALID_PROFILE                                                     Handle        = 0x80548218\n\tE_MBN_DEFAULT_PROFILE_EXIST                                               Handle        = 0x80548219\n\tE_MBN_SMS_ENCODING_NOT_SUPPORTED                                          Handle        = 0x80548220\n\tE_MBN_SMS_FILTER_NOT_SUPPORTED                                            Handle        = 0x80548221\n\tE_MBN_SMS_INVALID_MEMORY_INDEX                                            Handle        = 0x80548222\n\tE_MBN_SMS_LANG_NOT_SUPPORTED                                              Handle        = 0x80548223\n\tE_MBN_SMS_MEMORY_FAILURE                                                  Handle        = 0x80548224\n\tE_MBN_SMS_NETWORK_TIMEOUT                                                 Handle        = 0x80548225\n\tE_MBN_SMS_UNKNOWN_SMSC_ADDRESS                                            Handle        = 0x80548226\n\tE_MBN_SMS_FORMAT_NOT_SUPPORTED                                            Handle        = 0x80548227\n\tE_MBN_SMS_OPERATION_NOT_ALLOWED                                           Handle        = 0x80548228\n\tE_MBN_SMS_MEMORY_FULL                                                     Handle        = 0x80548229\n\tPEER_E_IPV6_NOT_INSTALLED                                                 Handle        = 0x80630001\n\tPEER_E_NOT_INITIALIZED                                                    Handle        = 0x80630002\n\tPEER_E_CANNOT_START_SERVICE                                               Handle        = 0x80630003\n\tPEER_E_NOT_LICENSED                                                       Handle        = 0x80630004\n\tPEER_E_INVALID_GRAPH                                                      Handle        = 0x80630010\n\tPEER_E_DBNAME_CHANGED                                                     Handle        = 0x80630011\n\tPEER_E_DUPLICATE_GRAPH                                                    Handle        = 0x80630012\n\tPEER_E_GRAPH_NOT_READY                                                    Handle        = 0x80630013\n\tPEER_E_GRAPH_SHUTTING_DOWN                                                Handle        = 0x80630014\n\tPEER_E_GRAPH_IN_USE                                                       Handle        = 0x80630015\n\tPEER_E_INVALID_DATABASE                                                   Handle        = 0x80630016\n\tPEER_E_TOO_MANY_ATTRIBUTES                                                Handle        = 0x80630017\n\tPEER_E_CONNECTION_NOT_FOUND                                               Handle        = 0x80630103\n\tPEER_E_CONNECT_SELF                                                       Handle        = 0x80630106\n\tPEER_E_ALREADY_LISTENING                                                  Handle        = 0x80630107\n\tPEER_E_NODE_NOT_FOUND                                                     Handle        = 0x80630108\n\tPEER_E_CONNECTION_FAILED                                                  Handle        = 0x80630109\n\tPEER_E_CONNECTION_NOT_AUTHENTICATED                                       Handle        = 0x8063010A\n\tPEER_E_CONNECTION_REFUSED                                                 Handle        = 0x8063010B\n\tPEER_E_CLASSIFIER_TOO_LONG                                                Handle        = 0x80630201\n\tPEER_E_TOO_MANY_IDENTITIES                                                Handle        = 0x80630202\n\tPEER_E_NO_KEY_ACCESS                                                      Handle        = 0x80630203\n\tPEER_E_GROUPS_EXIST                                                       Handle        = 0x80630204\n\tPEER_E_RECORD_NOT_FOUND                                                   Handle        = 0x80630301\n\tPEER_E_DATABASE_ACCESSDENIED                                              Handle        = 0x80630302\n\tPEER_E_DBINITIALIZATION_FAILED                                            Handle        = 0x80630303\n\tPEER_E_MAX_RECORD_SIZE_EXCEEDED                                           Handle        = 0x80630304\n\tPEER_E_DATABASE_ALREADY_PRESENT                                           Handle        = 0x80630305\n\tPEER_E_DATABASE_NOT_PRESENT                                               Handle        = 0x80630306\n\tPEER_E_IDENTITY_NOT_FOUND                                                 Handle        = 0x80630401\n\tPEER_E_EVENT_HANDLE_NOT_FOUND                                             Handle        = 0x80630501\n\tPEER_E_INVALID_SEARCH                                                     Handle        = 0x80630601\n\tPEER_E_INVALID_ATTRIBUTES                                                 Handle        = 0x80630602\n\tPEER_E_INVITATION_NOT_TRUSTED                                             Handle        = 0x80630701\n\tPEER_E_CHAIN_TOO_LONG                                                     Handle        = 0x80630703\n\tPEER_E_INVALID_TIME_PERIOD                                                Handle        = 0x80630705\n\tPEER_E_CIRCULAR_CHAIN_DETECTED                                            Handle        = 0x80630706\n\tPEER_E_CERT_STORE_CORRUPTED                                               Handle        = 0x80630801\n\tPEER_E_NO_CLOUD                                                           Handle        = 0x80631001\n\tPEER_E_CLOUD_NAME_AMBIGUOUS                                               Handle        = 0x80631005\n\tPEER_E_INVALID_RECORD                                                     Handle        = 0x80632010\n\tPEER_E_NOT_AUTHORIZED                                                     Handle        = 0x80632020\n\tPEER_E_PASSWORD_DOES_NOT_MEET_POLICY                                      Handle        = 0x80632021\n\tPEER_E_DEFERRED_VALIDATION                                                Handle        = 0x80632030\n\tPEER_E_INVALID_GROUP_PROPERTIES                                           Handle        = 0x80632040\n\tPEER_E_INVALID_PEER_NAME                                                  Handle        = 0x80632050\n\tPEER_E_INVALID_CLASSIFIER                                                 Handle        = 0x80632060\n\tPEER_E_INVALID_FRIENDLY_NAME                                              Handle        = 0x80632070\n\tPEER_E_INVALID_ROLE_PROPERTY                                              Handle        = 0x80632071\n\tPEER_E_INVALID_CLASSIFIER_PROPERTY                                        Handle        = 0x80632072\n\tPEER_E_INVALID_RECORD_EXPIRATION                                          Handle        = 0x80632080\n\tPEER_E_INVALID_CREDENTIAL_INFO                                            Handle        = 0x80632081\n\tPEER_E_INVALID_CREDENTIAL                                                 Handle        = 0x80632082\n\tPEER_E_INVALID_RECORD_SIZE                                                Handle        = 0x80632083\n\tPEER_E_UNSUPPORTED_VERSION                                                Handle        = 0x80632090\n\tPEER_E_GROUP_NOT_READY                                                    Handle        = 0x80632091\n\tPEER_E_GROUP_IN_USE                                                       Handle        = 0x80632092\n\tPEER_E_INVALID_GROUP                                                      Handle        = 0x80632093\n\tPEER_E_NO_MEMBERS_FOUND                                                   Handle        = 0x80632094\n\tPEER_E_NO_MEMBER_CONNECTIONS                                              Handle        = 0x80632095\n\tPEER_E_UNABLE_TO_LISTEN                                                   Handle        = 0x80632096\n\tPEER_E_IDENTITY_DELETED                                                   Handle        = 0x806320A0\n\tPEER_E_SERVICE_NOT_AVAILABLE                                              Handle        = 0x806320A1\n\tPEER_E_CONTACT_NOT_FOUND                                                  Handle        = 0x80636001\n\tPEER_S_GRAPH_DATA_CREATED                                                 Handle        = 0x00630001\n\tPEER_S_NO_EVENT_DATA                                                      Handle        = 0x00630002\n\tPEER_S_ALREADY_CONNECTED                                                  Handle        = 0x00632000\n\tPEER_S_SUBSCRIPTION_EXISTS                                                Handle        = 0x00636000\n\tPEER_S_NO_CONNECTIVITY                                                    Handle        = 0x00630005\n\tPEER_S_ALREADY_A_MEMBER                                                   Handle        = 0x00630006\n\tPEER_E_CANNOT_CONVERT_PEER_NAME                                           Handle        = 0x80634001\n\tPEER_E_INVALID_PEER_HOST_NAME                                             Handle        = 0x80634002\n\tPEER_E_NO_MORE                                                            Handle        = 0x80634003\n\tPEER_E_PNRP_DUPLICATE_PEER_NAME                                           Handle        = 0x80634005\n\tPEER_E_INVITE_CANCELLED                                                   Handle        = 0x80637000\n\tPEER_E_INVITE_RESPONSE_NOT_AVAILABLE                                      Handle        = 0x80637001\n\tPEER_E_NOT_SIGNED_IN                                                      Handle        = 0x80637003\n\tPEER_E_PRIVACY_DECLINED                                                   Handle        = 0x80637004\n\tPEER_E_TIMEOUT                                                            Handle        = 0x80637005\n\tPEER_E_INVALID_ADDRESS                                                    Handle        = 0x80637007\n\tPEER_E_FW_EXCEPTION_DISABLED                                              Handle        = 0x80637008\n\tPEER_E_FW_BLOCKED_BY_POLICY                                               Handle        = 0x80637009\n\tPEER_E_FW_BLOCKED_BY_SHIELDS_UP                                           Handle        = 0x8063700A\n\tPEER_E_FW_DECLINED                                                        Handle        = 0x8063700B\n\tUI_E_CREATE_FAILED                                                        Handle        = 0x802A0001\n\tUI_E_SHUTDOWN_CALLED                                                      Handle        = 0x802A0002\n\tUI_E_ILLEGAL_REENTRANCY                                                   Handle        = 0x802A0003\n\tUI_E_OBJECT_SEALED                                                        Handle        = 0x802A0004\n\tUI_E_VALUE_NOT_SET                                                        Handle        = 0x802A0005\n\tUI_E_VALUE_NOT_DETERMINED                                                 Handle        = 0x802A0006\n\tUI_E_INVALID_OUTPUT                                                       Handle        = 0x802A0007\n\tUI_E_BOOLEAN_EXPECTED                                                     Handle        = 0x802A0008\n\tUI_E_DIFFERENT_OWNER                                                      Handle        = 0x802A0009\n\tUI_E_AMBIGUOUS_MATCH                                                      Handle        = 0x802A000A\n\tUI_E_FP_OVERFLOW                                                          Handle        = 0x802A000B\n\tUI_E_WRONG_THREAD                                                         Handle        = 0x802A000C\n\tUI_E_STORYBOARD_ACTIVE                                                    Handle        = 0x802A0101\n\tUI_E_STORYBOARD_NOT_PLAYING                                               Handle        = 0x802A0102\n\tUI_E_START_KEYFRAME_AFTER_END                                             Handle        = 0x802A0103\n\tUI_E_END_KEYFRAME_NOT_DETERMINED                                          Handle        = 0x802A0104\n\tUI_E_LOOPS_OVERLAP                                                        Handle        = 0x802A0105\n\tUI_E_TRANSITION_ALREADY_USED                                              Handle        = 0x802A0106\n\tUI_E_TRANSITION_NOT_IN_STORYBOARD                                         Handle        = 0x802A0107\n\tUI_E_TRANSITION_ECLIPSED                                                  Handle        = 0x802A0108\n\tUI_E_TIME_BEFORE_LAST_UPDATE                                              Handle        = 0x802A0109\n\tUI_E_TIMER_CLIENT_ALREADY_CONNECTED                                       Handle        = 0x802A010A\n\tUI_E_INVALID_DIMENSION                                                    Handle        = 0x802A010B\n\tUI_E_PRIMITIVE_OUT_OF_BOUNDS                                              Handle        = 0x802A010C\n\tUI_E_WINDOW_CLOSED                                                        Handle        = 0x802A0201\n\tE_BLUETOOTH_ATT_INVALID_HANDLE                                            Handle        = 0x80650001\n\tE_BLUETOOTH_ATT_READ_NOT_PERMITTED                                        Handle        = 0x80650002\n\tE_BLUETOOTH_ATT_WRITE_NOT_PERMITTED                                       Handle        = 0x80650003\n\tE_BLUETOOTH_ATT_INVALID_PDU                                               Handle        = 0x80650004\n\tE_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION                               Handle        = 0x80650005\n\tE_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED                                     Handle        = 0x80650006\n\tE_BLUETOOTH_ATT_INVALID_OFFSET                                            Handle        = 0x80650007\n\tE_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION                                Handle        = 0x80650008\n\tE_BLUETOOTH_ATT_PREPARE_QUEUE_FULL                                        Handle        = 0x80650009\n\tE_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND                                       Handle        = 0x8065000A\n\tE_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG                                        Handle        = 0x8065000B\n\tE_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE                          Handle        = 0x8065000C\n\tE_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH                            Handle        = 0x8065000D\n\tE_BLUETOOTH_ATT_UNLIKELY                                                  Handle        = 0x8065000E\n\tE_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION                                   Handle        = 0x8065000F\n\tE_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE                                    Handle        = 0x80650010\n\tE_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES                                    Handle        = 0x80650011\n\tE_BLUETOOTH_ATT_UNKNOWN_ERROR                                             Handle        = 0x80651000\n\tE_AUDIO_ENGINE_NODE_NOT_FOUND                                             Handle        = 0x80660001\n\tE_HDAUDIO_EMPTY_CONNECTION_LIST                                           Handle        = 0x80660002\n\tE_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED                                   Handle        = 0x80660003\n\tE_HDAUDIO_NO_LOGICAL_DEVICES_CREATED                                      Handle        = 0x80660004\n\tE_HDAUDIO_NULL_LINKED_LIST_ENTRY                                          Handle        = 0x80660005\n\tSTATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE                             Handle        = 0x80670001\n\tSTATEREPOSITORY_E_STATEMENT_INPROGRESS                                    Handle        = 0x80670002\n\tSTATEREPOSITORY_E_CONFIGURATION_INVALID                                   Handle        = 0x80670003\n\tSTATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION                                  Handle        = 0x80670004\n\tSTATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED                                Handle        = 0x80670005\n\tSTATEREPOSITORY_E_BLOCKED                                                 Handle        = 0x80670006\n\tSTATEREPOSITORY_E_BUSY_RETRY                                              Handle        = 0x80670007\n\tSTATEREPOSITORY_E_BUSY_RECOVERY_RETRY                                     Handle        = 0x80670008\n\tSTATEREPOSITORY_E_LOCKED_RETRY                                            Handle        = 0x80670009\n\tSTATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY                                Handle        = 0x8067000A\n\tSTATEREPOSITORY_E_TRANSACTION_REQUIRED                                    Handle        = 0x8067000B\n\tSTATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED                                   Handle        = 0x8067000C\n\tSTATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED                          Handle        = 0x8067000D\n\tSTATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED                                 Handle        = 0x8067000E\n\tSTATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED                     Handle        = 0x8067000F\n\tSTATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS                                Handle        = 0x80670010\n\tSTATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED                         Handle        = 0x80670011\n\tSTATEREPOSITORY_ERROR_CACHE_CORRUPTED                                     Handle        = 0x80670012\n\tSTATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED                             Handle        = 0x00670013\n\tSTATEREPOSITORY_TRANSACTION_IN_PROGRESS                                   Handle        = 0x00670014\n\tERROR_SPACES_POOL_WAS_DELETED                                             Handle        = 0x00E70001\n\tERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID                                    Handle        = 0x80E70001\n\tERROR_SPACES_INTERNAL_ERROR                                               Handle        = 0x80E70002\n\tERROR_SPACES_RESILIENCY_TYPE_INVALID                                      Handle        = 0x80E70003\n\tERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID                                    Handle        = 0x80E70004\n\tERROR_SPACES_DRIVE_REDUNDANCY_INVALID                                     Handle        = 0x80E70006\n\tERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID                                Handle        = 0x80E70007\n\tERROR_SPACES_PARITY_LAYOUT_INVALID                                        Handle        = 0x80E70008\n\tERROR_SPACES_INTERLEAVE_LENGTH_INVALID                                    Handle        = 0x80E70009\n\tERROR_SPACES_NUMBER_OF_COLUMNS_INVALID                                    Handle        = 0x80E7000A\n\tERROR_SPACES_NOT_ENOUGH_DRIVES                                            Handle        = 0x80E7000B\n\tERROR_SPACES_EXTENDED_ERROR                                               Handle        = 0x80E7000C\n\tERROR_SPACES_PROVISIONING_TYPE_INVALID                                    Handle        = 0x80E7000D\n\tERROR_SPACES_ALLOCATION_SIZE_INVALID                                      Handle        = 0x80E7000E\n\tERROR_SPACES_ENCLOSURE_AWARE_INVALID                                      Handle        = 0x80E7000F\n\tERROR_SPACES_WRITE_CACHE_SIZE_INVALID                                     Handle        = 0x80E70010\n\tERROR_SPACES_NUMBER_OF_GROUPS_INVALID                                     Handle        = 0x80E70011\n\tERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID                              Handle        = 0x80E70012\n\tERROR_SPACES_ENTRY_INCOMPLETE                                             Handle        = 0x80E70013\n\tERROR_SPACES_ENTRY_INVALID                                                Handle        = 0x80E70014\n\tERROR_VOLSNAP_BOOTFILE_NOT_VALID                                          Handle        = 0x80820001\n\tERROR_VOLSNAP_ACTIVATION_TIMEOUT                                          Handle        = 0x80820002\n\tERROR_TIERING_NOT_SUPPORTED_ON_VOLUME                                     Handle        = 0x80830001\n\tERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS                                 Handle        = 0x80830002\n\tERROR_TIERING_STORAGE_TIER_NOT_FOUND                                      Handle        = 0x80830003\n\tERROR_TIERING_INVALID_FILE_ID                                             Handle        = 0x80830004\n\tERROR_TIERING_WRONG_CLUSTER_NODE                                          Handle        = 0x80830005\n\tERROR_TIERING_ALREADY_PROCESSING                                          Handle        = 0x80830006\n\tERROR_TIERING_CANNOT_PIN_OBJECT                                           Handle        = 0x80830007\n\tERROR_TIERING_FILE_IS_NOT_PINNED                                          Handle        = 0x80830008\n\tERROR_NOT_A_TIERED_VOLUME                                                 Handle        = 0x80830009\n\tERROR_ATTRIBUTE_NOT_PRESENT                                               Handle        = 0x8083000A\n\tERROR_SECCORE_INVALID_COMMAND                                             Handle        = 0xC0E80000\n\tERROR_NO_APPLICABLE_APP_LICENSES_FOUND                                    Handle        = 0xC0EA0001\n\tERROR_CLIP_LICENSE_NOT_FOUND                                              Handle        = 0xC0EA0002\n\tERROR_CLIP_DEVICE_LICENSE_MISSING                                         Handle        = 0xC0EA0003\n\tERROR_CLIP_LICENSE_INVALID_SIGNATURE                                      Handle        = 0xC0EA0004\n\tERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID                           Handle        = 0xC0EA0005\n\tERROR_CLIP_LICENSE_EXPIRED                                                Handle        = 0xC0EA0006\n\tERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE                               Handle        = 0xC0EA0007\n\tERROR_CLIP_LICENSE_NOT_SIGNED                                             Handle        = 0xC0EA0008\n\tERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE                           Handle        = 0xC0EA0009\n\tERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH                                     Handle        = 0xC0EA000A\n\tDXGI_STATUS_OCCLUDED                                                      Handle        = 0x087A0001\n\tDXGI_STATUS_CLIPPED                                                       Handle        = 0x087A0002\n\tDXGI_STATUS_NO_REDIRECTION                                                Handle        = 0x087A0004\n\tDXGI_STATUS_NO_DESKTOP_ACCESS                                             Handle        = 0x087A0005\n\tDXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE                                  Handle        = 0x087A0006\n\tDXGI_STATUS_MODE_CHANGED                                                  Handle        = 0x087A0007\n\tDXGI_STATUS_MODE_CHANGE_IN_PROGRESS                                       Handle        = 0x087A0008\n\tDXGI_ERROR_INVALID_CALL                                                   Handle        = 0x887A0001\n\tDXGI_ERROR_NOT_FOUND                                                      Handle        = 0x887A0002\n\tDXGI_ERROR_MORE_DATA                                                      Handle        = 0x887A0003\n\tDXGI_ERROR_UNSUPPORTED                                                    Handle        = 0x887A0004\n\tDXGI_ERROR_DEVICE_REMOVED                                                 Handle        = 0x887A0005\n\tDXGI_ERROR_DEVICE_HUNG                                                    Handle        = 0x887A0006\n\tDXGI_ERROR_DEVICE_RESET                                                   Handle        = 0x887A0007\n\tDXGI_ERROR_WAS_STILL_DRAWING                                              Handle        = 0x887A000A\n\tDXGI_ERROR_FRAME_STATISTICS_DISJOINT                                      Handle        = 0x887A000B\n\tDXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE                                   Handle        = 0x887A000C\n\tDXGI_ERROR_DRIVER_INTERNAL_ERROR                                          Handle        = 0x887A0020\n\tDXGI_ERROR_NONEXCLUSIVE                                                   Handle        = 0x887A0021\n\tDXGI_ERROR_NOT_CURRENTLY_AVAILABLE                                        Handle        = 0x887A0022\n\tDXGI_ERROR_REMOTE_CLIENT_DISCONNECTED                                     Handle        = 0x887A0023\n\tDXGI_ERROR_REMOTE_OUTOFMEMORY                                             Handle        = 0x887A0024\n\tDXGI_ERROR_ACCESS_LOST                                                    Handle        = 0x887A0026\n\tDXGI_ERROR_WAIT_TIMEOUT                                                   Handle        = 0x887A0027\n\tDXGI_ERROR_SESSION_DISCONNECTED                                           Handle        = 0x887A0028\n\tDXGI_ERROR_RESTRICT_TO_OUTPUT_STALE                                       Handle        = 0x887A0029\n\tDXGI_ERROR_CANNOT_PROTECT_CONTENT                                         Handle        = 0x887A002A\n\tDXGI_ERROR_ACCESS_DENIED                                                  Handle        = 0x887A002B\n\tDXGI_ERROR_NAME_ALREADY_EXISTS                                            Handle        = 0x887A002C\n\tDXGI_ERROR_SDK_COMPONENT_MISSING                                          Handle        = 0x887A002D\n\tDXGI_ERROR_NOT_CURRENT                                                    Handle        = 0x887A002E\n\tDXGI_ERROR_HW_PROTECTION_OUTOFMEMORY                                      Handle        = 0x887A0030\n\tDXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION                                  Handle        = 0x887A0031\n\tDXGI_ERROR_NON_COMPOSITED_UI                                              Handle        = 0x887A0032\n\tDXGI_STATUS_UNOCCLUDED                                                    Handle        = 0x087A0009\n\tDXGI_STATUS_DDA_WAS_STILL_DRAWING                                         Handle        = 0x087A000A\n\tDXGI_ERROR_MODE_CHANGE_IN_PROGRESS                                        Handle        = 0x887A0025\n\tDXGI_STATUS_PRESENT_REQUIRED                                              Handle        = 0x087A002F\n\tDXGI_ERROR_CACHE_CORRUPT                                                  Handle        = 0x887A0033\n\tDXGI_ERROR_CACHE_FULL                                                     Handle        = 0x887A0034\n\tDXGI_ERROR_CACHE_HASH_COLLISION                                           Handle        = 0x887A0035\n\tDXGI_ERROR_ALREADY_EXISTS                                                 Handle        = 0x887A0036\n\tDXGI_DDI_ERR_WASSTILLDRAWING                                              Handle        = 0x887B0001\n\tDXGI_DDI_ERR_UNSUPPORTED                                                  Handle        = 0x887B0002\n\tDXGI_DDI_ERR_NONEXCLUSIVE                                                 Handle        = 0x887B0003\n\tD3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS                                 Handle        = 0x88790001\n\tD3D10_ERROR_FILE_NOT_FOUND                                                Handle        = 0x88790002\n\tD3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS                                 Handle        = 0x887C0001\n\tD3D11_ERROR_FILE_NOT_FOUND                                                Handle        = 0x887C0002\n\tD3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS                                  Handle        = 0x887C0003\n\tD3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD                  Handle        = 0x887C0004\n\tD3D12_ERROR_ADAPTER_NOT_FOUND                                             Handle        = 0x887E0001\n\tD3D12_ERROR_DRIVER_VERSION_MISMATCH                                       Handle        = 0x887E0002\n\tD2DERR_WRONG_STATE                                                        Handle        = 0x88990001\n\tD2DERR_NOT_INITIALIZED                                                    Handle        = 0x88990002\n\tD2DERR_UNSUPPORTED_OPERATION                                              Handle        = 0x88990003\n\tD2DERR_SCANNER_FAILED                                                     Handle        = 0x88990004\n\tD2DERR_SCREEN_ACCESS_DENIED                                               Handle        = 0x88990005\n\tD2DERR_DISPLAY_STATE_INVALID                                              Handle        = 0x88990006\n\tD2DERR_ZERO_VECTOR                                                        Handle        = 0x88990007\n\tD2DERR_INTERNAL_ERROR                                                     Handle        = 0x88990008\n\tD2DERR_DISPLAY_FORMAT_NOT_SUPPORTED                                       Handle        = 0x88990009\n\tD2DERR_INVALID_CALL                                                       Handle        = 0x8899000A\n\tD2DERR_NO_HARDWARE_DEVICE                                                 Handle        = 0x8899000B\n\tD2DERR_RECREATE_TARGET                                                    Handle        = 0x8899000C\n\tD2DERR_TOO_MANY_SHADER_ELEMENTS                                           Handle        = 0x8899000D\n\tD2DERR_SHADER_COMPILE_FAILED                                              Handle        = 0x8899000E\n\tD2DERR_MAX_TEXTURE_SIZE_EXCEEDED                                          Handle        = 0x8899000F\n\tD2DERR_UNSUPPORTED_VERSION                                                Handle        = 0x88990010\n\tD2DERR_BAD_NUMBER                                                         Handle        = 0x88990011\n\tD2DERR_WRONG_FACTORY                                                      Handle        = 0x88990012\n\tD2DERR_LAYER_ALREADY_IN_USE                                               Handle        = 0x88990013\n\tD2DERR_POP_CALL_DID_NOT_MATCH_PUSH                                        Handle        = 0x88990014\n\tD2DERR_WRONG_RESOURCE_DOMAIN                                              Handle        = 0x88990015\n\tD2DERR_PUSH_POP_UNBALANCED                                                Handle        = 0x88990016\n\tD2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT                                Handle        = 0x88990017\n\tD2DERR_INCOMPATIBLE_BRUSH_TYPES                                           Handle        = 0x88990018\n\tD2DERR_WIN32_ERROR                                                        Handle        = 0x88990019\n\tD2DERR_TARGET_NOT_GDI_COMPATIBLE                                          Handle        = 0x8899001A\n\tD2DERR_TEXT_EFFECT_IS_WRONG_TYPE                                          Handle        = 0x8899001B\n\tD2DERR_TEXT_RENDERER_NOT_RELEASED                                         Handle        = 0x8899001C\n\tD2DERR_EXCEEDS_MAX_BITMAP_SIZE                                            Handle        = 0x8899001D\n\tD2DERR_INVALID_GRAPH_CONFIGURATION                                        Handle        = 0x8899001E\n\tD2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION                               Handle        = 0x8899001F\n\tD2DERR_CYCLIC_GRAPH                                                       Handle        = 0x88990020\n\tD2DERR_BITMAP_CANNOT_DRAW                                                 Handle        = 0x88990021\n\tD2DERR_OUTSTANDING_BITMAP_REFERENCES                                      Handle        = 0x88990022\n\tD2DERR_ORIGINAL_TARGET_NOT_BOUND                                          Handle        = 0x88990023\n\tD2DERR_INVALID_TARGET                                                     Handle        = 0x88990024\n\tD2DERR_BITMAP_BOUND_AS_TARGET                                             Handle        = 0x88990025\n\tD2DERR_INSUFFICIENT_DEVICE_CAPABILITIES                                   Handle        = 0x88990026\n\tD2DERR_INTERMEDIATE_TOO_LARGE                                             Handle        = 0x88990027\n\tD2DERR_EFFECT_IS_NOT_REGISTERED                                           Handle        = 0x88990028\n\tD2DERR_INVALID_PROPERTY                                                   Handle        = 0x88990029\n\tD2DERR_NO_SUBPROPERTIES                                                   Handle        = 0x8899002A\n\tD2DERR_PRINT_JOB_CLOSED                                                   Handle        = 0x8899002B\n\tD2DERR_PRINT_FORMAT_NOT_SUPPORTED                                         Handle        = 0x8899002C\n\tD2DERR_TOO_MANY_TRANSFORM_INPUTS                                          Handle        = 0x8899002D\n\tD2DERR_INVALID_GLYPH_IMAGE                                                Handle        = 0x8899002E\n\tDWRITE_E_FILEFORMAT                                                       Handle        = 0x88985000\n\tDWRITE_E_UNEXPECTED                                                       Handle        = 0x88985001\n\tDWRITE_E_NOFONT                                                           Handle        = 0x88985002\n\tDWRITE_E_FILENOTFOUND                                                     Handle        = 0x88985003\n\tDWRITE_E_FILEACCESS                                                       Handle        = 0x88985004\n\tDWRITE_E_FONTCOLLECTIONOBSOLETE                                           Handle        = 0x88985005\n\tDWRITE_E_ALREADYREGISTERED                                                Handle        = 0x88985006\n\tDWRITE_E_CACHEFORMAT                                                      Handle        = 0x88985007\n\tDWRITE_E_CACHEVERSION                                                     Handle        = 0x88985008\n\tDWRITE_E_UNSUPPORTEDOPERATION                                             Handle        = 0x88985009\n\tDWRITE_E_TEXTRENDERERINCOMPATIBLE                                         Handle        = 0x8898500A\n\tDWRITE_E_FLOWDIRECTIONCONFLICTS                                           Handle        = 0x8898500B\n\tDWRITE_E_NOCOLOR                                                          Handle        = 0x8898500C\n\tDWRITE_E_REMOTEFONT                                                       Handle        = 0x8898500D\n\tDWRITE_E_DOWNLOADCANCELLED                                                Handle        = 0x8898500E\n\tDWRITE_E_DOWNLOADFAILED                                                   Handle        = 0x8898500F\n\tDWRITE_E_TOOMANYDOWNLOADS                                                 Handle        = 0x88985010\n\tWINCODEC_ERR_WRONGSTATE                                                   Handle        = 0x88982F04\n\tWINCODEC_ERR_VALUEOUTOFRANGE                                              Handle        = 0x88982F05\n\tWINCODEC_ERR_UNKNOWNIMAGEFORMAT                                           Handle        = 0x88982F07\n\tWINCODEC_ERR_UNSUPPORTEDVERSION                                           Handle        = 0x88982F0B\n\tWINCODEC_ERR_NOTINITIALIZED                                               Handle        = 0x88982F0C\n\tWINCODEC_ERR_ALREADYLOCKED                                                Handle        = 0x88982F0D\n\tWINCODEC_ERR_PROPERTYNOTFOUND                                             Handle        = 0x88982F40\n\tWINCODEC_ERR_PROPERTYNOTSUPPORTED                                         Handle        = 0x88982F41\n\tWINCODEC_ERR_PROPERTYSIZE                                                 Handle        = 0x88982F42\n\tWINCODEC_ERR_CODECPRESENT                                                 Handle        = 0x88982F43\n\tWINCODEC_ERR_CODECNOTHUMBNAIL                                             Handle        = 0x88982F44\n\tWINCODEC_ERR_PALETTEUNAVAILABLE                                           Handle        = 0x88982F45\n\tWINCODEC_ERR_CODECTOOMANYSCANLINES                                        Handle        = 0x88982F46\n\tWINCODEC_ERR_INTERNALERROR                                                Handle        = 0x88982F48\n\tWINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS                             Handle        = 0x88982F49\n\tWINCODEC_ERR_COMPONENTNOTFOUND                                            Handle        = 0x88982F50\n\tWINCODEC_ERR_IMAGESIZEOUTOFRANGE                                          Handle        = 0x88982F51\n\tWINCODEC_ERR_TOOMUCHMETADATA                                              Handle        = 0x88982F52\n\tWINCODEC_ERR_BADIMAGE                                                     Handle        = 0x88982F60\n\tWINCODEC_ERR_BADHEADER                                                    Handle        = 0x88982F61\n\tWINCODEC_ERR_FRAMEMISSING                                                 Handle        = 0x88982F62\n\tWINCODEC_ERR_BADMETADATAHEADER                                            Handle        = 0x88982F63\n\tWINCODEC_ERR_BADSTREAMDATA                                                Handle        = 0x88982F70\n\tWINCODEC_ERR_STREAMWRITE                                                  Handle        = 0x88982F71\n\tWINCODEC_ERR_STREAMREAD                                                   Handle        = 0x88982F72\n\tWINCODEC_ERR_STREAMNOTAVAILABLE                                           Handle        = 0x88982F73\n\tWINCODEC_ERR_UNSUPPORTEDPIXELFORMAT                                       Handle        = 0x88982F80\n\tWINCODEC_ERR_UNSUPPORTEDOPERATION                                         Handle        = 0x88982F81\n\tWINCODEC_ERR_INVALIDREGISTRATION                                          Handle        = 0x88982F8A\n\tWINCODEC_ERR_COMPONENTINITIALIZEFAILURE                                   Handle        = 0x88982F8B\n\tWINCODEC_ERR_INSUFFICIENTBUFFER                                           Handle        = 0x88982F8C\n\tWINCODEC_ERR_DUPLICATEMETADATAPRESENT                                     Handle        = 0x88982F8D\n\tWINCODEC_ERR_PROPERTYUNEXPECTEDTYPE                                       Handle        = 0x88982F8E\n\tWINCODEC_ERR_UNEXPECTEDSIZE                                               Handle        = 0x88982F8F\n\tWINCODEC_ERR_INVALIDQUERYREQUEST                                          Handle        = 0x88982F90\n\tWINCODEC_ERR_UNEXPECTEDMETADATATYPE                                       Handle        = 0x88982F91\n\tWINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT                               Handle        = 0x88982F92\n\tWINCODEC_ERR_INVALIDQUERYCHARACTER                                        Handle        = 0x88982F93\n\tWINCODEC_ERR_WIN32ERROR                                                   Handle        = 0x88982F94\n\tWINCODEC_ERR_INVALIDPROGRESSIVELEVEL                                      Handle        = 0x88982F95\n\tWINCODEC_ERR_INVALIDJPEGSCANINDEX                                         Handle        = 0x88982F96\n\tMILERR_OBJECTBUSY                                                         Handle        = 0x88980001\n\tMILERR_INSUFFICIENTBUFFER                                                 Handle        = 0x88980002\n\tMILERR_WIN32ERROR                                                         Handle        = 0x88980003\n\tMILERR_SCANNER_FAILED                                                     Handle        = 0x88980004\n\tMILERR_SCREENACCESSDENIED                                                 Handle        = 0x88980005\n\tMILERR_DISPLAYSTATEINVALID                                                Handle        = 0x88980006\n\tMILERR_NONINVERTIBLEMATRIX                                                Handle        = 0x88980007\n\tMILERR_ZEROVECTOR                                                         Handle        = 0x88980008\n\tMILERR_TERMINATED                                                         Handle        = 0x88980009\n\tMILERR_BADNUMBER                                                          Handle        = 0x8898000A\n\tMILERR_INTERNALERROR                                                      Handle        = 0x88980080\n\tMILERR_DISPLAYFORMATNOTSUPPORTED                                          Handle        = 0x88980084\n\tMILERR_INVALIDCALL                                                        Handle        = 0x88980085\n\tMILERR_ALREADYLOCKED                                                      Handle        = 0x88980086\n\tMILERR_NOTLOCKED                                                          Handle        = 0x88980087\n\tMILERR_DEVICECANNOTRENDERTEXT                                             Handle        = 0x88980088\n\tMILERR_GLYPHBITMAPMISSED                                                  Handle        = 0x88980089\n\tMILERR_MALFORMEDGLYPHCACHE                                                Handle        = 0x8898008A\n\tMILERR_GENERIC_IGNORE                                                     Handle        = 0x8898008B\n\tMILERR_MALFORMED_GUIDELINE_DATA                                           Handle        = 0x8898008C\n\tMILERR_NO_HARDWARE_DEVICE                                                 Handle        = 0x8898008D\n\tMILERR_NEED_RECREATE_AND_PRESENT                                          Handle        = 0x8898008E\n\tMILERR_ALREADY_INITIALIZED                                                Handle        = 0x8898008F\n\tMILERR_MISMATCHED_SIZE                                                    Handle        = 0x88980090\n\tMILERR_NO_REDIRECTION_SURFACE_AVAILABLE                                   Handle        = 0x88980091\n\tMILERR_REMOTING_NOT_SUPPORTED                                             Handle        = 0x88980092\n\tMILERR_QUEUED_PRESENT_NOT_SUPPORTED                                       Handle        = 0x88980093\n\tMILERR_NOT_QUEUING_PRESENTS                                               Handle        = 0x88980094\n\tMILERR_NO_REDIRECTION_SURFACE_RETRY_LATER                                 Handle        = 0x88980095\n\tMILERR_TOOMANYSHADERELEMNTS                                               Handle        = 0x88980096\n\tMILERR_MROW_READLOCK_FAILED                                               Handle        = 0x88980097\n\tMILERR_MROW_UPDATE_FAILED                                                 Handle        = 0x88980098\n\tMILERR_SHADER_COMPILE_FAILED                                              Handle        = 0x88980099\n\tMILERR_MAX_TEXTURE_SIZE_EXCEEDED                                          Handle        = 0x8898009A\n\tMILERR_QPC_TIME_WENT_BACKWARD                                             Handle        = 0x8898009B\n\tMILERR_DXGI_ENUMERATION_OUT_OF_SYNC                                       Handle        = 0x8898009D\n\tMILERR_ADAPTER_NOT_FOUND                                                  Handle        = 0x8898009E\n\tMILERR_COLORSPACE_NOT_SUPPORTED                                           Handle        = 0x8898009F\n\tMILERR_PREFILTER_NOT_SUPPORTED                                            Handle        = 0x889800A0\n\tMILERR_DISPLAYID_ACCESS_DENIED                                            Handle        = 0x889800A1\n\tUCEERR_INVALIDPACKETHEADER                                                Handle        = 0x88980400\n\tUCEERR_UNKNOWNPACKET                                                      Handle        = 0x88980401\n\tUCEERR_ILLEGALPACKET                                                      Handle        = 0x88980402\n\tUCEERR_MALFORMEDPACKET                                                    Handle        = 0x88980403\n\tUCEERR_ILLEGALHANDLE                                                      Handle        = 0x88980404\n\tUCEERR_HANDLELOOKUPFAILED                                                 Handle        = 0x88980405\n\tUCEERR_RENDERTHREADFAILURE                                                Handle        = 0x88980406\n\tUCEERR_CTXSTACKFRSTTARGETNULL                                             Handle        = 0x88980407\n\tUCEERR_CONNECTIONIDLOOKUPFAILED                                           Handle        = 0x88980408\n\tUCEERR_BLOCKSFULL                                                         Handle        = 0x88980409\n\tUCEERR_MEMORYFAILURE                                                      Handle        = 0x8898040A\n\tUCEERR_PACKETRECORDOUTOFRANGE                                             Handle        = 0x8898040B\n\tUCEERR_ILLEGALRECORDTYPE                                                  Handle        = 0x8898040C\n\tUCEERR_OUTOFHANDLES                                                       Handle        = 0x8898040D\n\tUCEERR_UNCHANGABLE_UPDATE_ATTEMPTED                                       Handle        = 0x8898040E\n\tUCEERR_NO_MULTIPLE_WORKER_THREADS                                         Handle        = 0x8898040F\n\tUCEERR_REMOTINGNOTSUPPORTED                                               Handle        = 0x88980410\n\tUCEERR_MISSINGENDCOMMAND                                                  Handle        = 0x88980411\n\tUCEERR_MISSINGBEGINCOMMAND                                                Handle        = 0x88980412\n\tUCEERR_CHANNELSYNCTIMEDOUT                                                Handle        = 0x88980413\n\tUCEERR_CHANNELSYNCABANDONED                                               Handle        = 0x88980414\n\tUCEERR_UNSUPPORTEDTRANSPORTVERSION                                        Handle        = 0x88980415\n\tUCEERR_TRANSPORTUNAVAILABLE                                               Handle        = 0x88980416\n\tUCEERR_FEEDBACK_UNSUPPORTED                                               Handle        = 0x88980417\n\tUCEERR_COMMANDTRANSPORTDENIED                                             Handle        = 0x88980418\n\tUCEERR_GRAPHICSSTREAMUNAVAILABLE                                          Handle        = 0x88980419\n\tUCEERR_GRAPHICSSTREAMALREADYOPEN                                          Handle        = 0x88980420\n\tUCEERR_TRANSPORTDISCONNECTED                                              Handle        = 0x88980421\n\tUCEERR_TRANSPORTOVERLOADED                                                Handle        = 0x88980422\n\tUCEERR_PARTITION_ZOMBIED                                                  Handle        = 0x88980423\n\tMILAVERR_NOCLOCK                                                          Handle        = 0x88980500\n\tMILAVERR_NOMEDIATYPE                                                      Handle        = 0x88980501\n\tMILAVERR_NOVIDEOMIXER                                                     Handle        = 0x88980502\n\tMILAVERR_NOVIDEOPRESENTER                                                 Handle        = 0x88980503\n\tMILAVERR_NOREADYFRAMES                                                    Handle        = 0x88980504\n\tMILAVERR_MODULENOTLOADED                                                  Handle        = 0x88980505\n\tMILAVERR_WMPFACTORYNOTREGISTERED                                          Handle        = 0x88980506\n\tMILAVERR_INVALIDWMPVERSION                                                Handle        = 0x88980507\n\tMILAVERR_INSUFFICIENTVIDEORESOURCES                                       Handle        = 0x88980508\n\tMILAVERR_VIDEOACCELERATIONNOTAVAILABLE                                    Handle        = 0x88980509\n\tMILAVERR_REQUESTEDTEXTURETOOBIG                                           Handle        = 0x8898050A\n\tMILAVERR_SEEKFAILED                                                       Handle        = 0x8898050B\n\tMILAVERR_UNEXPECTEDWMPFAILURE                                             Handle        = 0x8898050C\n\tMILAVERR_MEDIAPLAYERCLOSED                                                Handle        = 0x8898050D\n\tMILAVERR_UNKNOWNHARDWAREERROR                                             Handle        = 0x8898050E\n\tMILEFFECTSERR_UNKNOWNPROPERTY                                             Handle        = 0x8898060E\n\tMILEFFECTSERR_EFFECTNOTPARTOFGROUP                                        Handle        = 0x8898060F\n\tMILEFFECTSERR_NOINPUTSOURCEATTACHED                                       Handle        = 0x88980610\n\tMILEFFECTSERR_CONNECTORNOTCONNECTED                                       Handle        = 0x88980611\n\tMILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT                            Handle        = 0x88980612\n\tMILEFFECTSERR_RESERVED                                                    Handle        = 0x88980613\n\tMILEFFECTSERR_CYCLEDETECTED                                               Handle        = 0x88980614\n\tMILEFFECTSERR_EFFECTINMORETHANONEGRAPH                                    Handle        = 0x88980615\n\tMILEFFECTSERR_EFFECTALREADYINAGRAPH                                       Handle        = 0x88980616\n\tMILEFFECTSERR_EFFECTHASNOCHILDREN                                         Handle        = 0x88980617\n\tMILEFFECTSERR_ALREADYATTACHEDTOLISTENER                                   Handle        = 0x88980618\n\tMILEFFECTSERR_NOTAFFINETRANSFORM                                          Handle        = 0x88980619\n\tMILEFFECTSERR_EMPTYBOUNDS                                                 Handle        = 0x8898061A\n\tMILEFFECTSERR_OUTPUTSIZETOOLARGE                                          Handle        = 0x8898061B\n\tDWMERR_STATE_TRANSITION_FAILED                                            Handle        = 0x88980700\n\tDWMERR_THEME_FAILED                                                       Handle        = 0x88980701\n\tDWMERR_CATASTROPHIC_FAILURE                                               Handle        = 0x88980702\n\tDCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED                                Handle        = 0x88980800\n\tDCOMPOSITION_ERROR_SURFACE_BEING_RENDERED                                 Handle        = 0x88980801\n\tDCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED                             Handle        = 0x88980802\n\tONL_E_INVALID_AUTHENTICATION_TARGET                                       Handle        = 0x80860001\n\tONL_E_ACCESS_DENIED_BY_TOU                                                Handle        = 0x80860002\n\tONL_E_INVALID_APPLICATION                                                 Handle        = 0x80860003\n\tONL_E_PASSWORD_UPDATE_REQUIRED                                            Handle        = 0x80860004\n\tONL_E_ACCOUNT_UPDATE_REQUIRED                                             Handle        = 0x80860005\n\tONL_E_FORCESIGNIN                                                         Handle        = 0x80860006\n\tONL_E_ACCOUNT_LOCKED                                                      Handle        = 0x80860007\n\tONL_E_PARENTAL_CONSENT_REQUIRED                                           Handle        = 0x80860008\n\tONL_E_EMAIL_VERIFICATION_REQUIRED                                         Handle        = 0x80860009\n\tONL_E_ACCOUNT_SUSPENDED_COMPROIMISE                                       Handle        = 0x8086000A\n\tONL_E_ACCOUNT_SUSPENDED_ABUSE                                             Handle        = 0x8086000B\n\tONL_E_ACTION_REQUIRED                                                     Handle        = 0x8086000C\n\tONL_CONNECTION_COUNT_LIMIT                                                Handle        = 0x8086000D\n\tONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT                                   Handle        = 0x8086000E\n\tONL_E_USER_AUTHENTICATION_REQUIRED                                        Handle        = 0x8086000F\n\tONL_E_REQUEST_THROTTLED                                                   Handle        = 0x80860010\n\tFA_E_MAX_PERSISTED_ITEMS_REACHED                                          Handle        = 0x80270220\n\tFA_E_HOMEGROUP_NOT_AVAILABLE                                              Handle        = 0x80270222\n\tE_MONITOR_RESOLUTION_TOO_LOW                                              Handle        = 0x80270250\n\tE_ELEVATED_ACTIVATION_NOT_SUPPORTED                                       Handle        = 0x80270251\n\tE_UAC_DISABLED                                                            Handle        = 0x80270252\n\tE_FULL_ADMIN_NOT_SUPPORTED                                                Handle        = 0x80270253\n\tE_APPLICATION_NOT_REGISTERED                                              Handle        = 0x80270254\n\tE_MULTIPLE_EXTENSIONS_FOR_APPLICATION                                     Handle        = 0x80270255\n\tE_MULTIPLE_PACKAGES_FOR_FAMILY                                            Handle        = 0x80270256\n\tE_APPLICATION_MANAGER_NOT_RUNNING                                         Handle        = 0x80270257\n\tS_STORE_LAUNCHED_FOR_REMEDIATION                                          Handle        = 0x00270258\n\tS_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG                          Handle        = 0x00270259\n\tE_APPLICATION_ACTIVATION_TIMED_OUT                                        Handle        = 0x8027025A\n\tE_APPLICATION_ACTIVATION_EXEC_FAILURE                                     Handle        = 0x8027025B\n\tE_APPLICATION_TEMPORARY_LICENSE_ERROR                                     Handle        = 0x8027025C\n\tE_APPLICATION_TRIAL_LICENSE_EXPIRED                                       Handle        = 0x8027025D\n\tE_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED                          Handle        = 0x80270260\n\tE_SKYDRIVE_ROOT_TARGET_OVERLAP                                            Handle        = 0x80270261\n\tE_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX                                       Handle        = 0x80270262\n\tE_SKYDRIVE_FILE_NOT_UPLOADED                                              Handle        = 0x80270263\n\tE_SKYDRIVE_UPDATE_AVAILABILITY_FAIL                                       Handle        = 0x80270264\n\tE_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED                          Handle        = 0x80270265\n\tE_SYNCENGINE_FILE_SIZE_OVER_LIMIT                                         Handle        = 0x8802B001\n\tE_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA                            Handle        = 0x8802B002\n\tE_SYNCENGINE_UNSUPPORTED_FILE_NAME                                        Handle        = 0x8802B003\n\tE_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED                             Handle        = 0x8802B004\n\tE_SYNCENGINE_FILE_SYNC_PARTNER_ERROR                                      Handle        = 0x8802B005\n\tE_SYNCENGINE_SYNC_PAUSED_BY_SERVICE                                       Handle        = 0x8802B006\n\tE_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN                                      Handle        = 0x8802C002\n\tE_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED                                Handle        = 0x8802C003\n\tE_SYNCENGINE_UNKNOWN_SERVICE_ERROR                                        Handle        = 0x8802C004\n\tE_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE                             Handle        = 0x8802C005\n\tE_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE                                   Handle        = 0x8802C006\n\tE_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR                          Handle        = 0x8802C007\n\tE_SYNCENGINE_FOLDER_INACCESSIBLE                                          Handle        = 0x8802D001\n\tE_SYNCENGINE_UNSUPPORTED_FOLDER_NAME                                      Handle        = 0x8802D002\n\tE_SYNCENGINE_UNSUPPORTED_MARKET                                           Handle        = 0x8802D003\n\tE_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED                                   Handle        = 0x8802D004\n\tE_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED                            Handle        = 0x8802D005\n\tE_SYNCENGINE_CLIENT_UPDATE_NEEDED                                         Handle        = 0x8802D006\n\tE_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED                                Handle        = 0x8802D007\n\tE_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED                          Handle        = 0x8802D008\n\tE_SYNCENGINE_UNSUPPORTED_REPARSE_POINT                                    Handle        = 0x8802D009\n\tE_SYNCENGINE_STORAGE_SERVICE_BLOCKED                                      Handle        = 0x8802D00A\n\tE_SYNCENGINE_FOLDER_IN_REDIRECTION                                        Handle        = 0x8802D00B\n\tEAS_E_POLICY_NOT_MANAGED_BY_OS                                            Handle        = 0x80550001\n\tEAS_E_POLICY_COMPLIANT_WITH_ACTIONS                                       Handle        = 0x80550002\n\tEAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE                                    Handle        = 0x80550003\n\tEAS_E_CURRENT_USER_HAS_BLANK_PASSWORD                                     Handle        = 0x80550004\n\tEAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE                   Handle        = 0x80550005\n\tEAS_E_USER_CANNOT_CHANGE_PASSWORD                                         Handle        = 0x80550006\n\tEAS_E_ADMINS_HAVE_BLANK_PASSWORD                                          Handle        = 0x80550007\n\tEAS_E_ADMINS_CANNOT_CHANGE_PASSWORD                                       Handle        = 0x80550008\n\tEAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD                       Handle        = 0x80550009\n\tEAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS                Handle        = 0x8055000A\n\tEAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD                            Handle        = 0x8055000B\n\tEAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER          Handle        = 0x8055000C\n\tEAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD                      Handle        = 0x8055000D\n\tWEB_E_UNSUPPORTED_FORMAT                                                  Handle        = 0x83750001\n\tWEB_E_INVALID_XML                                                         Handle        = 0x83750002\n\tWEB_E_MISSING_REQUIRED_ELEMENT                                            Handle        = 0x83750003\n\tWEB_E_MISSING_REQUIRED_ATTRIBUTE                                          Handle        = 0x83750004\n\tWEB_E_UNEXPECTED_CONTENT                                                  Handle        = 0x83750005\n\tWEB_E_RESOURCE_TOO_LARGE                                                  Handle        = 0x83750006\n\tWEB_E_INVALID_JSON_STRING                                                 Handle        = 0x83750007\n\tWEB_E_INVALID_JSON_NUMBER                                                 Handle        = 0x83750008\n\tWEB_E_JSON_VALUE_NOT_FOUND                                                Handle        = 0x83750009\n\tHTTP_E_STATUS_UNEXPECTED                                                  Handle        = 0x80190001\n\tHTTP_E_STATUS_UNEXPECTED_REDIRECTION                                      Handle        = 0x80190003\n\tHTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR                                     Handle        = 0x80190004\n\tHTTP_E_STATUS_UNEXPECTED_SERVER_ERROR                                     Handle        = 0x80190005\n\tHTTP_E_STATUS_AMBIGUOUS                                                   Handle        = 0x8019012C\n\tHTTP_E_STATUS_MOVED                                                       Handle        = 0x8019012D\n\tHTTP_E_STATUS_REDIRECT                                                    Handle        = 0x8019012E\n\tHTTP_E_STATUS_REDIRECT_METHOD                                             Handle        = 0x8019012F\n\tHTTP_E_STATUS_NOT_MODIFIED                                                Handle        = 0x80190130\n\tHTTP_E_STATUS_USE_PROXY                                                   Handle        = 0x80190131\n\tHTTP_E_STATUS_REDIRECT_KEEP_VERB                                          Handle        = 0x80190133\n\tHTTP_E_STATUS_BAD_REQUEST                                                 Handle        = 0x80190190\n\tHTTP_E_STATUS_DENIED                                                      Handle        = 0x80190191\n\tHTTP_E_STATUS_PAYMENT_REQ                                                 Handle        = 0x80190192\n\tHTTP_E_STATUS_FORBIDDEN                                                   Handle        = 0x80190193\n\tHTTP_E_STATUS_NOT_FOUND                                                   Handle        = 0x80190194\n\tHTTP_E_STATUS_BAD_METHOD                                                  Handle        = 0x80190195\n\tHTTP_E_STATUS_NONE_ACCEPTABLE                                             Handle        = 0x80190196\n\tHTTP_E_STATUS_PROXY_AUTH_REQ                                              Handle        = 0x80190197\n\tHTTP_E_STATUS_REQUEST_TIMEOUT                                             Handle        = 0x80190198\n\tHTTP_E_STATUS_CONFLICT                                                    Handle        = 0x80190199\n\tHTTP_E_STATUS_GONE                                                        Handle        = 0x8019019A\n\tHTTP_E_STATUS_LENGTH_REQUIRED                                             Handle        = 0x8019019B\n\tHTTP_E_STATUS_PRECOND_FAILED                                              Handle        = 0x8019019C\n\tHTTP_E_STATUS_REQUEST_TOO_LARGE                                           Handle        = 0x8019019D\n\tHTTP_E_STATUS_URI_TOO_LONG                                                Handle        = 0x8019019E\n\tHTTP_E_STATUS_UNSUPPORTED_MEDIA                                           Handle        = 0x8019019F\n\tHTTP_E_STATUS_RANGE_NOT_SATISFIABLE                                       Handle        = 0x801901A0\n\tHTTP_E_STATUS_EXPECTATION_FAILED                                          Handle        = 0x801901A1\n\tHTTP_E_STATUS_SERVER_ERROR                                                Handle        = 0x801901F4\n\tHTTP_E_STATUS_NOT_SUPPORTED                                               Handle        = 0x801901F5\n\tHTTP_E_STATUS_BAD_GATEWAY                                                 Handle        = 0x801901F6\n\tHTTP_E_STATUS_SERVICE_UNAVAIL                                             Handle        = 0x801901F7\n\tHTTP_E_STATUS_GATEWAY_TIMEOUT                                             Handle        = 0x801901F8\n\tHTTP_E_STATUS_VERSION_NOT_SUP                                             Handle        = 0x801901F9\n\tE_INVALID_PROTOCOL_OPERATION                                              Handle        = 0x83760001\n\tE_INVALID_PROTOCOL_FORMAT                                                 Handle        = 0x83760002\n\tE_PROTOCOL_EXTENSIONS_NOT_SUPPORTED                                       Handle        = 0x83760003\n\tE_SUBPROTOCOL_NOT_SUPPORTED                                               Handle        = 0x83760004\n\tE_PROTOCOL_VERSION_NOT_SUPPORTED                                          Handle        = 0x83760005\n\tINPUT_E_OUT_OF_ORDER                                                      Handle        = 0x80400000\n\tINPUT_E_REENTRANCY                                                        Handle        = 0x80400001\n\tINPUT_E_MULTIMODAL                                                        Handle        = 0x80400002\n\tINPUT_E_PACKET                                                            Handle        = 0x80400003\n\tINPUT_E_FRAME                                                             Handle        = 0x80400004\n\tINPUT_E_HISTORY                                                           Handle        = 0x80400005\n\tINPUT_E_DEVICE_INFO                                                       Handle        = 0x80400006\n\tINPUT_E_TRANSFORM                                                         Handle        = 0x80400007\n\tINPUT_E_DEVICE_PROPERTY                                                   Handle        = 0x80400008\n\tINET_E_INVALID_URL                                                        Handle        = 0x800C0002\n\tINET_E_NO_SESSION                                                         Handle        = 0x800C0003\n\tINET_E_CANNOT_CONNECT                                                     Handle        = 0x800C0004\n\tINET_E_RESOURCE_NOT_FOUND                                                 Handle        = 0x800C0005\n\tINET_E_OBJECT_NOT_FOUND                                                   Handle        = 0x800C0006\n\tINET_E_DATA_NOT_AVAILABLE                                                 Handle        = 0x800C0007\n\tINET_E_DOWNLOAD_FAILURE                                                   Handle        = 0x800C0008\n\tINET_E_AUTHENTICATION_REQUIRED                                            Handle        = 0x800C0009\n\tINET_E_NO_VALID_MEDIA                                                     Handle        = 0x800C000A\n\tINET_E_CONNECTION_TIMEOUT                                                 Handle        = 0x800C000B\n\tINET_E_INVALID_REQUEST                                                    Handle        = 0x800C000C\n\tINET_E_UNKNOWN_PROTOCOL                                                   Handle        = 0x800C000D\n\tINET_E_SECURITY_PROBLEM                                                   Handle        = 0x800C000E\n\tINET_E_CANNOT_LOAD_DATA                                                   Handle        = 0x800C000F\n\tINET_E_CANNOT_INSTANTIATE_OBJECT                                          Handle        = 0x800C0010\n\tINET_E_INVALID_CERTIFICATE                                                Handle        = 0x800C0019\n\tINET_E_REDIRECT_FAILED                                                    Handle        = 0x800C0014\n\tINET_E_REDIRECT_TO_DIR                                                    Handle        = 0x800C0015\n\tERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN                                 Handle        = 0x80B00001\n\tERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN                                 Handle        = 0x80B00002\n\tERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN                                 Handle        = 0x80B00003\n\tERROR_DBG_START_SERVER_FAILURE_LOCKDOWN                                   Handle        = 0x80B00004\n\tERROR_IO_PREEMPTED                                                        Handle        = 0x89010001\n\tJSCRIPT_E_CANTEXECUTE                                                     Handle        = 0x89020001\n\tWEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES                                      Handle        = 0x88010001\n\tWEP_E_FIXED_DATA_NOT_SUPPORTED                                            Handle        = 0x88010002\n\tWEP_E_HARDWARE_NOT_COMPLIANT                                              Handle        = 0x88010003\n\tWEP_E_LOCK_NOT_CONFIGURED                                                 Handle        = 0x88010004\n\tWEP_E_PROTECTION_SUSPENDED                                                Handle        = 0x88010005\n\tWEP_E_NO_LICENSE                                                          Handle        = 0x88010006\n\tWEP_E_OS_NOT_PROTECTED                                                    Handle        = 0x88010007\n\tWEP_E_UNEXPECTED_FAIL                                                     Handle        = 0x88010008\n\tWEP_E_BUFFER_TOO_LARGE                                                    Handle        = 0x88010009\n\tERROR_SVHDX_ERROR_STORED                                                  Handle        = 0xC05C0000\n\tERROR_SVHDX_ERROR_NOT_AVAILABLE                                           Handle        = 0xC05CFF00\n\tERROR_SVHDX_UNIT_ATTENTION_AVAILABLE                                      Handle        = 0xC05CFF01\n\tERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED                          Handle        = 0xC05CFF02\n\tERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED                         Handle        = 0xC05CFF03\n\tERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED                          Handle        = 0xC05CFF04\n\tERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED                        Handle        = 0xC05CFF05\n\tERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED                   Handle        = 0xC05CFF06\n\tERROR_SVHDX_RESERVATION_CONFLICT                                          Handle        = 0xC05CFF07\n\tERROR_SVHDX_WRONG_FILE_TYPE                                               Handle        = 0xC05CFF08\n\tERROR_SVHDX_VERSION_MISMATCH                                              Handle        = 0xC05CFF09\n\tERROR_VHD_SHARED                                                          Handle        = 0xC05CFF0A\n\tERROR_SVHDX_NO_INITIATOR                                                  Handle        = 0xC05CFF0B\n\tERROR_VHDSET_BACKING_STORAGE_NOT_FOUND                                    Handle        = 0xC05CFF0C\n\tERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP                               Handle        = 0xC05D0000\n\tERROR_SMB_BAD_CLUSTER_DIALECT                                             Handle        = 0xC05D0001\n\tWININET_E_OUT_OF_HANDLES                                                  Handle        = 0x80072EE1\n\tWININET_E_TIMEOUT                                                         Handle        = 0x80072EE2\n\tWININET_E_EXTENDED_ERROR                                                  Handle        = 0x80072EE3\n\tWININET_E_INTERNAL_ERROR                                                  Handle        = 0x80072EE4\n\tWININET_E_INVALID_URL                                                     Handle        = 0x80072EE5\n\tWININET_E_UNRECOGNIZED_SCHEME                                             Handle        = 0x80072EE6\n\tWININET_E_NAME_NOT_RESOLVED                                               Handle        = 0x80072EE7\n\tWININET_E_PROTOCOL_NOT_FOUND                                              Handle        = 0x80072EE8\n\tWININET_E_INVALID_OPTION                                                  Handle        = 0x80072EE9\n\tWININET_E_BAD_OPTION_LENGTH                                               Handle        = 0x80072EEA\n\tWININET_E_OPTION_NOT_SETTABLE                                             Handle        = 0x80072EEB\n\tWININET_E_SHUTDOWN                                                        Handle        = 0x80072EEC\n\tWININET_E_INCORRECT_USER_NAME                                             Handle        = 0x80072EED\n\tWININET_E_INCORRECT_PASSWORD                                              Handle        = 0x80072EEE\n\tWININET_E_LOGIN_FAILURE                                                   Handle        = 0x80072EEF\n\tWININET_E_INVALID_OPERATION                                               Handle        = 0x80072EF0\n\tWININET_E_OPERATION_CANCELLED                                             Handle        = 0x80072EF1\n\tWININET_E_INCORRECT_HANDLE_TYPE                                           Handle        = 0x80072EF2\n\tWININET_E_INCORRECT_HANDLE_STATE                                          Handle        = 0x80072EF3\n\tWININET_E_NOT_PROXY_REQUEST                                               Handle        = 0x80072EF4\n\tWININET_E_REGISTRY_VALUE_NOT_FOUND                                        Handle        = 0x80072EF5\n\tWININET_E_BAD_REGISTRY_PARAMETER                                          Handle        = 0x80072EF6\n\tWININET_E_NO_DIRECT_ACCESS                                                Handle        = 0x80072EF7\n\tWININET_E_NO_CONTEXT                                                      Handle        = 0x80072EF8\n\tWININET_E_NO_CALLBACK                                                     Handle        = 0x80072EF9\n\tWININET_E_REQUEST_PENDING                                                 Handle        = 0x80072EFA\n\tWININET_E_INCORRECT_FORMAT                                                Handle        = 0x80072EFB\n\tWININET_E_ITEM_NOT_FOUND                                                  Handle        = 0x80072EFC\n\tWININET_E_CANNOT_CONNECT                                                  Handle        = 0x80072EFD\n\tWININET_E_CONNECTION_ABORTED                                              Handle        = 0x80072EFE\n\tWININET_E_CONNECTION_RESET                                                Handle        = 0x80072EFF\n\tWININET_E_FORCE_RETRY                                                     Handle        = 0x80072F00\n\tWININET_E_INVALID_PROXY_REQUEST                                           Handle        = 0x80072F01\n\tWININET_E_NEED_UI                                                         Handle        = 0x80072F02\n\tWININET_E_HANDLE_EXISTS                                                   Handle        = 0x80072F04\n\tWININET_E_SEC_CERT_DATE_INVALID                                           Handle        = 0x80072F05\n\tWININET_E_SEC_CERT_CN_INVALID                                             Handle        = 0x80072F06\n\tWININET_E_HTTP_TO_HTTPS_ON_REDIR                                          Handle        = 0x80072F07\n\tWININET_E_HTTPS_TO_HTTP_ON_REDIR                                          Handle        = 0x80072F08\n\tWININET_E_MIXED_SECURITY                                                  Handle        = 0x80072F09\n\tWININET_E_CHG_POST_IS_NON_SECURE                                          Handle        = 0x80072F0A\n\tWININET_E_POST_IS_NON_SECURE                                              Handle        = 0x80072F0B\n\tWININET_E_CLIENT_AUTH_CERT_NEEDED                                         Handle        = 0x80072F0C\n\tWININET_E_INVALID_CA                                                      Handle        = 0x80072F0D\n\tWININET_E_CLIENT_AUTH_NOT_SETUP                                           Handle        = 0x80072F0E\n\tWININET_E_ASYNC_THREAD_FAILED                                             Handle        = 0x80072F0F\n\tWININET_E_REDIRECT_SCHEME_CHANGE                                          Handle        = 0x80072F10\n\tWININET_E_DIALOG_PENDING                                                  Handle        = 0x80072F11\n\tWININET_E_RETRY_DIALOG                                                    Handle        = 0x80072F12\n\tWININET_E_NO_NEW_CONTAINERS                                               Handle        = 0x80072F13\n\tWININET_E_HTTPS_HTTP_SUBMIT_REDIR                                         Handle        = 0x80072F14\n\tWININET_E_SEC_CERT_ERRORS                                                 Handle        = 0x80072F17\n\tWININET_E_SEC_CERT_REV_FAILED                                             Handle        = 0x80072F19\n\tWININET_E_HEADER_NOT_FOUND                                                Handle        = 0x80072F76\n\tWININET_E_DOWNLEVEL_SERVER                                                Handle        = 0x80072F77\n\tWININET_E_INVALID_SERVER_RESPONSE                                         Handle        = 0x80072F78\n\tWININET_E_INVALID_HEADER                                                  Handle        = 0x80072F79\n\tWININET_E_INVALID_QUERY_REQUEST                                           Handle        = 0x80072F7A\n\tWININET_E_HEADER_ALREADY_EXISTS                                           Handle        = 0x80072F7B\n\tWININET_E_REDIRECT_FAILED                                                 Handle        = 0x80072F7C\n\tWININET_E_SECURITY_CHANNEL_ERROR                                          Handle        = 0x80072F7D\n\tWININET_E_UNABLE_TO_CACHE_FILE                                            Handle        = 0x80072F7E\n\tWININET_E_TCPIP_NOT_INSTALLED                                             Handle        = 0x80072F7F\n\tWININET_E_DISCONNECTED                                                    Handle        = 0x80072F83\n\tWININET_E_SERVER_UNREACHABLE                                              Handle        = 0x80072F84\n\tWININET_E_PROXY_SERVER_UNREACHABLE                                        Handle        = 0x80072F85\n\tWININET_E_BAD_AUTO_PROXY_SCRIPT                                           Handle        = 0x80072F86\n\tWININET_E_UNABLE_TO_DOWNLOAD_SCRIPT                                       Handle        = 0x80072F87\n\tWININET_E_SEC_INVALID_CERT                                                Handle        = 0x80072F89\n\tWININET_E_SEC_CERT_REVOKED                                                Handle        = 0x80072F8A\n\tWININET_E_FAILED_DUETOSECURITYCHECK                                       Handle        = 0x80072F8B\n\tWININET_E_NOT_INITIALIZED                                                 Handle        = 0x80072F8C\n\tWININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY                               Handle        = 0x80072F8E\n\tWININET_E_DECODING_FAILED                                                 Handle        = 0x80072F8F\n\tWININET_E_NOT_REDIRECTED                                                  Handle        = 0x80072F80\n\tWININET_E_COOKIE_NEEDS_CONFIRMATION                                       Handle        = 0x80072F81\n\tWININET_E_COOKIE_DECLINED                                                 Handle        = 0x80072F82\n\tWININET_E_REDIRECT_NEEDS_CONFIRMATION                                     Handle        = 0x80072F88\n\tSQLITE_E_ERROR                                                            Handle        = 0x87AF0001\n\tSQLITE_E_INTERNAL                                                         Handle        = 0x87AF0002\n\tSQLITE_E_PERM                                                             Handle        = 0x87AF0003\n\tSQLITE_E_ABORT                                                            Handle        = 0x87AF0004\n\tSQLITE_E_BUSY                                                             Handle        = 0x87AF0005\n\tSQLITE_E_LOCKED                                                           Handle        = 0x87AF0006\n\tSQLITE_E_NOMEM                                                            Handle        = 0x87AF0007\n\tSQLITE_E_READONLY                                                         Handle        = 0x87AF0008\n\tSQLITE_E_INTERRUPT                                                        Handle        = 0x87AF0009\n\tSQLITE_E_IOERR                                                            Handle        = 0x87AF000A\n\tSQLITE_E_CORRUPT                                                          Handle        = 0x87AF000B\n\tSQLITE_E_NOTFOUND                                                         Handle        = 0x87AF000C\n\tSQLITE_E_FULL                                                             Handle        = 0x87AF000D\n\tSQLITE_E_CANTOPEN                                                         Handle        = 0x87AF000E\n\tSQLITE_E_PROTOCOL                                                         Handle        = 0x87AF000F\n\tSQLITE_E_EMPTY                                                            Handle        = 0x87AF0010\n\tSQLITE_E_SCHEMA                                                           Handle        = 0x87AF0011\n\tSQLITE_E_TOOBIG                                                           Handle        = 0x87AF0012\n\tSQLITE_E_CONSTRAINT                                                       Handle        = 0x87AF0013\n\tSQLITE_E_MISMATCH                                                         Handle        = 0x87AF0014\n\tSQLITE_E_MISUSE                                                           Handle        = 0x87AF0015\n\tSQLITE_E_NOLFS                                                            Handle        = 0x87AF0016\n\tSQLITE_E_AUTH                                                             Handle        = 0x87AF0017\n\tSQLITE_E_FORMAT                                                           Handle        = 0x87AF0018\n\tSQLITE_E_RANGE                                                            Handle        = 0x87AF0019\n\tSQLITE_E_NOTADB                                                           Handle        = 0x87AF001A\n\tSQLITE_E_NOTICE                                                           Handle        = 0x87AF001B\n\tSQLITE_E_WARNING                                                          Handle        = 0x87AF001C\n\tSQLITE_E_ROW                                                              Handle        = 0x87AF0064\n\tSQLITE_E_DONE                                                             Handle        = 0x87AF0065\n\tSQLITE_E_IOERR_READ                                                       Handle        = 0x87AF010A\n\tSQLITE_E_IOERR_SHORT_READ                                                 Handle        = 0x87AF020A\n\tSQLITE_E_IOERR_WRITE                                                      Handle        = 0x87AF030A\n\tSQLITE_E_IOERR_FSYNC                                                      Handle        = 0x87AF040A\n\tSQLITE_E_IOERR_DIR_FSYNC                                                  Handle        = 0x87AF050A\n\tSQLITE_E_IOERR_TRUNCATE                                                   Handle        = 0x87AF060A\n\tSQLITE_E_IOERR_FSTAT                                                      Handle        = 0x87AF070A\n\tSQLITE_E_IOERR_UNLOCK                                                     Handle        = 0x87AF080A\n\tSQLITE_E_IOERR_RDLOCK                                                     Handle        = 0x87AF090A\n\tSQLITE_E_IOERR_DELETE                                                     Handle        = 0x87AF0A0A\n\tSQLITE_E_IOERR_BLOCKED                                                    Handle        = 0x87AF0B0A\n\tSQLITE_E_IOERR_NOMEM                                                      Handle        = 0x87AF0C0A\n\tSQLITE_E_IOERR_ACCESS                                                     Handle        = 0x87AF0D0A\n\tSQLITE_E_IOERR_CHECKRESERVEDLOCK                                          Handle        = 0x87AF0E0A\n\tSQLITE_E_IOERR_LOCK                                                       Handle        = 0x87AF0F0A\n\tSQLITE_E_IOERR_CLOSE                                                      Handle        = 0x87AF100A\n\tSQLITE_E_IOERR_DIR_CLOSE                                                  Handle        = 0x87AF110A\n\tSQLITE_E_IOERR_SHMOPEN                                                    Handle        = 0x87AF120A\n\tSQLITE_E_IOERR_SHMSIZE                                                    Handle        = 0x87AF130A\n\tSQLITE_E_IOERR_SHMLOCK                                                    Handle        = 0x87AF140A\n\tSQLITE_E_IOERR_SHMMAP                                                     Handle        = 0x87AF150A\n\tSQLITE_E_IOERR_SEEK                                                       Handle        = 0x87AF160A\n\tSQLITE_E_IOERR_DELETE_NOENT                                               Handle        = 0x87AF170A\n\tSQLITE_E_IOERR_MMAP                                                       Handle        = 0x87AF180A\n\tSQLITE_E_IOERR_GETTEMPPATH                                                Handle        = 0x87AF190A\n\tSQLITE_E_IOERR_CONVPATH                                                   Handle        = 0x87AF1A0A\n\tSQLITE_E_IOERR_VNODE                                                      Handle        = 0x87AF1A02\n\tSQLITE_E_IOERR_AUTH                                                       Handle        = 0x87AF1A03\n\tSQLITE_E_LOCKED_SHAREDCACHE                                               Handle        = 0x87AF0106\n\tSQLITE_E_BUSY_RECOVERY                                                    Handle        = 0x87AF0105\n\tSQLITE_E_BUSY_SNAPSHOT                                                    Handle        = 0x87AF0205\n\tSQLITE_E_CANTOPEN_NOTEMPDIR                                               Handle        = 0x87AF010E\n\tSQLITE_E_CANTOPEN_ISDIR                                                   Handle        = 0x87AF020E\n\tSQLITE_E_CANTOPEN_FULLPATH                                                Handle        = 0x87AF030E\n\tSQLITE_E_CANTOPEN_CONVPATH                                                Handle        = 0x87AF040E\n\tSQLITE_E_CORRUPT_VTAB                                                     Handle        = 0x87AF010B\n\tSQLITE_E_READONLY_RECOVERY                                                Handle        = 0x87AF0108\n\tSQLITE_E_READONLY_CANTLOCK                                                Handle        = 0x87AF0208\n\tSQLITE_E_READONLY_ROLLBACK                                                Handle        = 0x87AF0308\n\tSQLITE_E_READONLY_DBMOVED                                                 Handle        = 0x87AF0408\n\tSQLITE_E_ABORT_ROLLBACK                                                   Handle        = 0x87AF0204\n\tSQLITE_E_CONSTRAINT_CHECK                                                 Handle        = 0x87AF0113\n\tSQLITE_E_CONSTRAINT_COMMITHOOK                                            Handle        = 0x87AF0213\n\tSQLITE_E_CONSTRAINT_FOREIGNKEY                                            Handle        = 0x87AF0313\n\tSQLITE_E_CONSTRAINT_FUNCTION                                              Handle        = 0x87AF0413\n\tSQLITE_E_CONSTRAINT_NOTNULL                                               Handle        = 0x87AF0513\n\tSQLITE_E_CONSTRAINT_PRIMARYKEY                                            Handle        = 0x87AF0613\n\tSQLITE_E_CONSTRAINT_TRIGGER                                               Handle        = 0x87AF0713\n\tSQLITE_E_CONSTRAINT_UNIQUE                                                Handle        = 0x87AF0813\n\tSQLITE_E_CONSTRAINT_VTAB                                                  Handle        = 0x87AF0913\n\tSQLITE_E_CONSTRAINT_ROWID                                                 Handle        = 0x87AF0A13\n\tSQLITE_E_NOTICE_RECOVER_WAL                                               Handle        = 0x87AF011B\n\tSQLITE_E_NOTICE_RECOVER_ROLLBACK                                          Handle        = 0x87AF021B\n\tSQLITE_E_WARNING_AUTOINDEX                                                Handle        = 0x87AF011C\n\tUTC_E_TOGGLE_TRACE_STARTED                                                Handle        = 0x87C51001\n\tUTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT                                    Handle        = 0x87C51002\n\tUTC_E_AOT_NOT_RUNNING                                                     Handle        = 0x87C51003\n\tUTC_E_SCRIPT_TYPE_INVALID                                                 Handle        = 0x87C51004\n\tUTC_E_SCENARIODEF_NOT_FOUND                                               Handle        = 0x87C51005\n\tUTC_E_TRACEPROFILE_NOT_FOUND                                              Handle        = 0x87C51006\n\tUTC_E_FORWARDER_ALREADY_ENABLED                                           Handle        = 0x87C51007\n\tUTC_E_FORWARDER_ALREADY_DISABLED                                          Handle        = 0x87C51008\n\tUTC_E_EVENTLOG_ENTRY_MALFORMED                                            Handle        = 0x87C51009\n\tUTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH                                    Handle        = 0x87C5100A\n\tUTC_E_SCRIPT_TERMINATED                                                   Handle        = 0x87C5100B\n\tUTC_E_INVALID_CUSTOM_FILTER                                               Handle        = 0x87C5100C\n\tUTC_E_TRACE_NOT_RUNNING                                                   Handle        = 0x87C5100D\n\tUTC_E_REESCALATED_TOO_QUICKLY                                             Handle        = 0x87C5100E\n\tUTC_E_ESCALATION_ALREADY_RUNNING                                          Handle        = 0x87C5100F\n\tUTC_E_PERFTRACK_ALREADY_TRACING                                           Handle        = 0x87C51010\n\tUTC_E_REACHED_MAX_ESCALATIONS                                             Handle        = 0x87C51011\n\tUTC_E_FORWARDER_PRODUCER_MISMATCH                                         Handle        = 0x87C51012\n\tUTC_E_INTENTIONAL_SCRIPT_FAILURE                                          Handle        = 0x87C51013\n\tUTC_E_SQM_INIT_FAILED                                                     Handle        = 0x87C51014\n\tUTC_E_NO_WER_LOGGER_SUPPORTED                                             Handle        = 0x87C51015\n\tUTC_E_TRACERS_DONT_EXIST                                                  Handle        = 0x87C51016\n\tUTC_E_WINRT_INIT_FAILED                                                   Handle        = 0x87C51017\n\tUTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH                                  Handle        = 0x87C51018\n\tUTC_E_INVALID_FILTER                                                      Handle        = 0x87C51019\n\tUTC_E_EXE_TERMINATED                                                      Handle        = 0x87C5101A\n\tUTC_E_ESCALATION_NOT_AUTHORIZED                                           Handle        = 0x87C5101B\n\tUTC_E_SETUP_NOT_AUTHORIZED                                                Handle        = 0x87C5101C\n\tUTC_E_CHILD_PROCESS_FAILED                                                Handle        = 0x87C5101D\n\tUTC_E_COMMAND_LINE_NOT_AUTHORIZED                                         Handle        = 0x87C5101E\n\tUTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML                                     Handle        = 0x87C5101F\n\tUTC_E_ESCALATION_TIMED_OUT                                                Handle        = 0x87C51020\n\tUTC_E_SETUP_TIMED_OUT                                                     Handle        = 0x87C51021\n\tUTC_E_TRIGGER_MISMATCH                                                    Handle        = 0x87C51022\n\tUTC_E_TRIGGER_NOT_FOUND                                                   Handle        = 0x87C51023\n\tUTC_E_SIF_NOT_SUPPORTED                                                   Handle        = 0x87C51024\n\tUTC_E_DELAY_TERMINATED                                                    Handle        = 0x87C51025\n\tUTC_E_DEVICE_TICKET_ERROR                                                 Handle        = 0x87C51026\n\tUTC_E_TRACE_BUFFER_LIMIT_EXCEEDED                                         Handle        = 0x87C51027\n\tUTC_E_API_RESULT_UNAVAILABLE                                              Handle        = 0x87C51028\n\tUTC_E_RPC_TIMEOUT                                                         Handle        = 0x87C51029\n\tUTC_E_RPC_WAIT_FAILED                                                     Handle        = 0x87C5102A\n\tUTC_E_API_BUSY                                                            Handle        = 0x87C5102B\n\tUTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET                              Handle        = 0x87C5102C\n\tUTC_E_EXCLUSIVITY_NOT_AVAILABLE                                           Handle        = 0x87C5102D\n\tUTC_E_GETFILE_FILE_PATH_NOT_APPROVED                                      Handle        = 0x87C5102E\n\tUTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS                                 Handle        = 0x87C5102F\n\tUTC_E_TIME_TRIGGER_ON_START_INVALID                                       Handle        = 0x87C51030\n\tUTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION                        Handle        = 0x87C51031\n\tUTC_E_TIME_TRIGGER_INVALID_TIME_RANGE                                     Handle        = 0x87C51032\n\tUTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE                               Handle        = 0x87C51033\n\tUTC_E_BINARY_MISSING                                                      Handle        = 0x87C51034\n\tUTC_E_NETWORK_CAPTURE_NOT_ALLOWED                                         Handle        = 0x87C51035\n\tUTC_E_FAILED_TO_RESOLVE_CONTAINER_ID                                      Handle        = 0x87C51036\n\tUTC_E_UNABLE_TO_RESOLVE_SESSION                                           Handle        = 0x87C51037\n\tUTC_E_THROTTLED                                                           Handle        = 0x87C51038\n\tUTC_E_UNAPPROVED_SCRIPT                                                   Handle        = 0x87C51039\n\tUTC_E_SCRIPT_MISSING                                                      Handle        = 0x87C5103A\n\tUTC_E_SCENARIO_THROTTLED                                                  Handle        = 0x87C5103B\n\tUTC_E_API_NOT_SUPPORTED                                                   Handle        = 0x87C5103C\n\tUTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED                                  Handle        = 0x87C5103D\n\tUTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED                                   Handle        = 0x87C5103E\n\tUTC_E_CERT_REV_FAILED                                                     Handle        = 0x87C5103F\n\tUTC_E_FAILED_TO_START_NDISCAP                                             Handle        = 0x87C51040\n\tUTC_E_KERNELDUMP_LIMIT_REACHED                                            Handle        = 0x87C51041\n\tUTC_E_MISSING_AGGREGATE_EVENT_TAG                                         Handle        = 0x87C51042\n\tUTC_E_INVALID_AGGREGATION_STRUCT                                          Handle        = 0x87C51043\n\tUTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION                                 Handle        = 0x87C51044\n\tUTC_E_FILTER_MISSING_ATTRIBUTE                                            Handle        = 0x87C51045\n\tUTC_E_FILTER_INVALID_TYPE                                                 Handle        = 0x87C51046\n\tUTC_E_FILTER_VARIABLE_NOT_FOUND                                           Handle        = 0x87C51047\n\tUTC_E_FILTER_FUNCTION_RESTRICTED                                          Handle        = 0x87C51048\n\tUTC_E_FILTER_VERSION_MISMATCH                                             Handle        = 0x87C51049\n\tUTC_E_FILTER_INVALID_FUNCTION                                             Handle        = 0x87C51050\n\tUTC_E_FILTER_INVALID_FUNCTION_PARAMS                                      Handle        = 0x87C51051\n\tUTC_E_FILTER_INVALID_COMMAND                                              Handle        = 0x87C51052\n\tUTC_E_FILTER_ILLEGAL_EVAL                                                 Handle        = 0x87C51053\n\tUTC_E_TTTRACER_RETURNED_ERROR                                             Handle        = 0x87C51054\n\tUTC_E_AGENT_DIAGNOSTICS_TOO_LARGE                                         Handle        = 0x87C51055\n\tUTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS                                 Handle        = 0x87C51056\n\tUTC_E_SCENARIO_HAS_NO_ACTIONS                                             Handle        = 0x87C51057\n\tUTC_E_TTTRACER_STORAGE_FULL                                               Handle        = 0x87C51058\n\tUTC_E_INSUFFICIENT_SPACE_TO_START_TRACE                                   Handle        = 0x87C51059\n\tUTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN                                    Handle        = 0x87C5105A\n\tUTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED                                 Handle        = 0x87C5105B\n\tUTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED                                   Handle        = 0x87C5105C\n\tWINML_ERR_INVALID_DEVICE                                                  Handle        = 0x88900001\n\tWINML_ERR_INVALID_BINDING                                                 Handle        = 0x88900002\n\tWINML_ERR_VALUE_NOTFOUND                                                  Handle        = 0x88900003\n\tWINML_ERR_SIZE_MISMATCH                                                   Handle        = 0x88900004\n\tSTATUS_WAIT_0                                                             NTStatus      = 0x00000000\n\tSTATUS_SUCCESS                                                            NTStatus      = 0x00000000\n\tSTATUS_WAIT_1                                                             NTStatus      = 0x00000001\n\tSTATUS_WAIT_2                                                             NTStatus      = 0x00000002\n\tSTATUS_WAIT_3                                                             NTStatus      = 0x00000003\n\tSTATUS_WAIT_63                                                            NTStatus      = 0x0000003F\n\tSTATUS_ABANDONED                                                          NTStatus      = 0x00000080\n\tSTATUS_ABANDONED_WAIT_0                                                   NTStatus      = 0x00000080\n\tSTATUS_ABANDONED_WAIT_63                                                  NTStatus      = 0x000000BF\n\tSTATUS_USER_APC                                                           NTStatus      = 0x000000C0\n\tSTATUS_ALREADY_COMPLETE                                                   NTStatus      = 0x000000FF\n\tSTATUS_KERNEL_APC                                                         NTStatus      = 0x00000100\n\tSTATUS_ALERTED                                                            NTStatus      = 0x00000101\n\tSTATUS_TIMEOUT                                                            NTStatus      = 0x00000102\n\tSTATUS_PENDING                                                            NTStatus      = 0x00000103\n\tSTATUS_REPARSE                                                            NTStatus      = 0x00000104\n\tSTATUS_MORE_ENTRIES                                                       NTStatus      = 0x00000105\n\tSTATUS_NOT_ALL_ASSIGNED                                                   NTStatus      = 0x00000106\n\tSTATUS_SOME_NOT_MAPPED                                                    NTStatus      = 0x00000107\n\tSTATUS_OPLOCK_BREAK_IN_PROGRESS                                           NTStatus      = 0x00000108\n\tSTATUS_VOLUME_MOUNTED                                                     NTStatus      = 0x00000109\n\tSTATUS_RXACT_COMMITTED                                                    NTStatus      = 0x0000010A\n\tSTATUS_NOTIFY_CLEANUP                                                     NTStatus      = 0x0000010B\n\tSTATUS_NOTIFY_ENUM_DIR                                                    NTStatus      = 0x0000010C\n\tSTATUS_NO_QUOTAS_FOR_ACCOUNT                                              NTStatus      = 0x0000010D\n\tSTATUS_PRIMARY_TRANSPORT_CONNECT_FAILED                                   NTStatus      = 0x0000010E\n\tSTATUS_PAGE_FAULT_TRANSITION                                              NTStatus      = 0x00000110\n\tSTATUS_PAGE_FAULT_DEMAND_ZERO                                             NTStatus      = 0x00000111\n\tSTATUS_PAGE_FAULT_COPY_ON_WRITE                                           NTStatus      = 0x00000112\n\tSTATUS_PAGE_FAULT_GUARD_PAGE                                              NTStatus      = 0x00000113\n\tSTATUS_PAGE_FAULT_PAGING_FILE                                             NTStatus      = 0x00000114\n\tSTATUS_CACHE_PAGE_LOCKED                                                  NTStatus      = 0x00000115\n\tSTATUS_CRASH_DUMP                                                         NTStatus      = 0x00000116\n\tSTATUS_BUFFER_ALL_ZEROS                                                   NTStatus      = 0x00000117\n\tSTATUS_REPARSE_OBJECT                                                     NTStatus      = 0x00000118\n\tSTATUS_RESOURCE_REQUIREMENTS_CHANGED                                      NTStatus      = 0x00000119\n\tSTATUS_TRANSLATION_COMPLETE                                               NTStatus      = 0x00000120\n\tSTATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY                                    NTStatus      = 0x00000121\n\tSTATUS_NOTHING_TO_TERMINATE                                               NTStatus      = 0x00000122\n\tSTATUS_PROCESS_NOT_IN_JOB                                                 NTStatus      = 0x00000123\n\tSTATUS_PROCESS_IN_JOB                                                     NTStatus      = 0x00000124\n\tSTATUS_VOLSNAP_HIBERNATE_READY                                            NTStatus      = 0x00000125\n\tSTATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY                                 NTStatus      = 0x00000126\n\tSTATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED                                 NTStatus      = 0x00000127\n\tSTATUS_INTERRUPT_STILL_CONNECTED                                          NTStatus      = 0x00000128\n\tSTATUS_PROCESS_CLONED                                                     NTStatus      = 0x00000129\n\tSTATUS_FILE_LOCKED_WITH_ONLY_READERS                                      NTStatus      = 0x0000012A\n\tSTATUS_FILE_LOCKED_WITH_WRITERS                                           NTStatus      = 0x0000012B\n\tSTATUS_VALID_IMAGE_HASH                                                   NTStatus      = 0x0000012C\n\tSTATUS_VALID_CATALOG_HASH                                                 NTStatus      = 0x0000012D\n\tSTATUS_VALID_STRONG_CODE_HASH                                             NTStatus      = 0x0000012E\n\tSTATUS_GHOSTED                                                            NTStatus      = 0x0000012F\n\tSTATUS_DATA_OVERWRITTEN                                                   NTStatus      = 0x00000130\n\tSTATUS_RESOURCEMANAGER_READ_ONLY                                          NTStatus      = 0x00000202\n\tSTATUS_RING_PREVIOUSLY_EMPTY                                              NTStatus      = 0x00000210\n\tSTATUS_RING_PREVIOUSLY_FULL                                               NTStatus      = 0x00000211\n\tSTATUS_RING_PREVIOUSLY_ABOVE_QUOTA                                        NTStatus      = 0x00000212\n\tSTATUS_RING_NEWLY_EMPTY                                                   NTStatus      = 0x00000213\n\tSTATUS_RING_SIGNAL_OPPOSITE_ENDPOINT                                      NTStatus      = 0x00000214\n\tSTATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE                                      NTStatus      = 0x00000215\n\tSTATUS_OPLOCK_HANDLE_CLOSED                                               NTStatus      = 0x00000216\n\tSTATUS_WAIT_FOR_OPLOCK                                                    NTStatus      = 0x00000367\n\tSTATUS_REPARSE_GLOBAL                                                     NTStatus      = 0x00000368\n\tSTATUS_FLT_IO_COMPLETE                                                    NTStatus      = 0x001C0001\n\tSTATUS_OBJECT_NAME_EXISTS                                                 NTStatus      = 0x40000000\n\tSTATUS_THREAD_WAS_SUSPENDED                                               NTStatus      = 0x40000001\n\tSTATUS_WORKING_SET_LIMIT_RANGE                                            NTStatus      = 0x40000002\n\tSTATUS_IMAGE_NOT_AT_BASE                                                  NTStatus      = 0x40000003\n\tSTATUS_RXACT_STATE_CREATED                                                NTStatus      = 0x40000004\n\tSTATUS_SEGMENT_NOTIFICATION                                               NTStatus      = 0x40000005\n\tSTATUS_LOCAL_USER_SESSION_KEY                                             NTStatus      = 0x40000006\n\tSTATUS_BAD_CURRENT_DIRECTORY                                              NTStatus      = 0x40000007\n\tSTATUS_SERIAL_MORE_WRITES                                                 NTStatus      = 0x40000008\n\tSTATUS_REGISTRY_RECOVERED                                                 NTStatus      = 0x40000009\n\tSTATUS_FT_READ_RECOVERY_FROM_BACKUP                                       NTStatus      = 0x4000000A\n\tSTATUS_FT_WRITE_RECOVERY                                                  NTStatus      = 0x4000000B\n\tSTATUS_SERIAL_COUNTER_TIMEOUT                                             NTStatus      = 0x4000000C\n\tSTATUS_NULL_LM_PASSWORD                                                   NTStatus      = 0x4000000D\n\tSTATUS_IMAGE_MACHINE_TYPE_MISMATCH                                        NTStatus      = 0x4000000E\n\tSTATUS_RECEIVE_PARTIAL                                                    NTStatus      = 0x4000000F\n\tSTATUS_RECEIVE_EXPEDITED                                                  NTStatus      = 0x40000010\n\tSTATUS_RECEIVE_PARTIAL_EXPEDITED                                          NTStatus      = 0x40000011\n\tSTATUS_EVENT_DONE                                                         NTStatus      = 0x40000012\n\tSTATUS_EVENT_PENDING                                                      NTStatus      = 0x40000013\n\tSTATUS_CHECKING_FILE_SYSTEM                                               NTStatus      = 0x40000014\n\tSTATUS_FATAL_APP_EXIT                                                     NTStatus      = 0x40000015\n\tSTATUS_PREDEFINED_HANDLE                                                  NTStatus      = 0x40000016\n\tSTATUS_WAS_UNLOCKED                                                       NTStatus      = 0x40000017\n\tSTATUS_SERVICE_NOTIFICATION                                               NTStatus      = 0x40000018\n\tSTATUS_WAS_LOCKED                                                         NTStatus      = 0x40000019\n\tSTATUS_LOG_HARD_ERROR                                                     NTStatus      = 0x4000001A\n\tSTATUS_ALREADY_WIN32                                                      NTStatus      = 0x4000001B\n\tSTATUS_WX86_UNSIMULATE                                                    NTStatus      = 0x4000001C\n\tSTATUS_WX86_CONTINUE                                                      NTStatus      = 0x4000001D\n\tSTATUS_WX86_SINGLE_STEP                                                   NTStatus      = 0x4000001E\n\tSTATUS_WX86_BREAKPOINT                                                    NTStatus      = 0x4000001F\n\tSTATUS_WX86_EXCEPTION_CONTINUE                                            NTStatus      = 0x40000020\n\tSTATUS_WX86_EXCEPTION_LASTCHANCE                                          NTStatus      = 0x40000021\n\tSTATUS_WX86_EXCEPTION_CHAIN                                               NTStatus      = 0x40000022\n\tSTATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE                                    NTStatus      = 0x40000023\n\tSTATUS_NO_YIELD_PERFORMED                                                 NTStatus      = 0x40000024\n\tSTATUS_TIMER_RESUME_IGNORED                                               NTStatus      = 0x40000025\n\tSTATUS_ARBITRATION_UNHANDLED                                              NTStatus      = 0x40000026\n\tSTATUS_CARDBUS_NOT_SUPPORTED                                              NTStatus      = 0x40000027\n\tSTATUS_WX86_CREATEWX86TIB                                                 NTStatus      = 0x40000028\n\tSTATUS_MP_PROCESSOR_MISMATCH                                              NTStatus      = 0x40000029\n\tSTATUS_HIBERNATED                                                         NTStatus      = 0x4000002A\n\tSTATUS_RESUME_HIBERNATION                                                 NTStatus      = 0x4000002B\n\tSTATUS_FIRMWARE_UPDATED                                                   NTStatus      = 0x4000002C\n\tSTATUS_DRIVERS_LEAKING_LOCKED_PAGES                                       NTStatus      = 0x4000002D\n\tSTATUS_MESSAGE_RETRIEVED                                                  NTStatus      = 0x4000002E\n\tSTATUS_SYSTEM_POWERSTATE_TRANSITION                                       NTStatus      = 0x4000002F\n\tSTATUS_ALPC_CHECK_COMPLETION_LIST                                         NTStatus      = 0x40000030\n\tSTATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION                               NTStatus      = 0x40000031\n\tSTATUS_ACCESS_AUDIT_BY_POLICY                                             NTStatus      = 0x40000032\n\tSTATUS_ABANDON_HIBERFILE                                                  NTStatus      = 0x40000033\n\tSTATUS_BIZRULES_NOT_ENABLED                                               NTStatus      = 0x40000034\n\tSTATUS_FT_READ_FROM_COPY                                                  NTStatus      = 0x40000035\n\tSTATUS_IMAGE_AT_DIFFERENT_BASE                                            NTStatus      = 0x40000036\n\tSTATUS_PATCH_DEFERRED                                                     NTStatus      = 0x40000037\n\tSTATUS_HEURISTIC_DAMAGE_POSSIBLE                                          NTStatus      = 0x40190001\n\tSTATUS_GUARD_PAGE_VIOLATION                                               NTStatus      = 0x80000001\n\tSTATUS_DATATYPE_MISALIGNMENT                                              NTStatus      = 0x80000002\n\tSTATUS_BREAKPOINT                                                         NTStatus      = 0x80000003\n\tSTATUS_SINGLE_STEP                                                        NTStatus      = 0x80000004\n\tSTATUS_BUFFER_OVERFLOW                                                    NTStatus      = 0x80000005\n\tSTATUS_NO_MORE_FILES                                                      NTStatus      = 0x80000006\n\tSTATUS_WAKE_SYSTEM_DEBUGGER                                               NTStatus      = 0x80000007\n\tSTATUS_HANDLES_CLOSED                                                     NTStatus      = 0x8000000A\n\tSTATUS_NO_INHERITANCE                                                     NTStatus      = 0x8000000B\n\tSTATUS_GUID_SUBSTITUTION_MADE                                             NTStatus      = 0x8000000C\n\tSTATUS_PARTIAL_COPY                                                       NTStatus      = 0x8000000D\n\tSTATUS_DEVICE_PAPER_EMPTY                                                 NTStatus      = 0x8000000E\n\tSTATUS_DEVICE_POWERED_OFF                                                 NTStatus      = 0x8000000F\n\tSTATUS_DEVICE_OFF_LINE                                                    NTStatus      = 0x80000010\n\tSTATUS_DEVICE_BUSY                                                        NTStatus      = 0x80000011\n\tSTATUS_NO_MORE_EAS                                                        NTStatus      = 0x80000012\n\tSTATUS_INVALID_EA_NAME                                                    NTStatus      = 0x80000013\n\tSTATUS_EA_LIST_INCONSISTENT                                               NTStatus      = 0x80000014\n\tSTATUS_INVALID_EA_FLAG                                                    NTStatus      = 0x80000015\n\tSTATUS_VERIFY_REQUIRED                                                    NTStatus      = 0x80000016\n\tSTATUS_EXTRANEOUS_INFORMATION                                             NTStatus      = 0x80000017\n\tSTATUS_RXACT_COMMIT_NECESSARY                                             NTStatus      = 0x80000018\n\tSTATUS_NO_MORE_ENTRIES                                                    NTStatus      = 0x8000001A\n\tSTATUS_FILEMARK_DETECTED                                                  NTStatus      = 0x8000001B\n\tSTATUS_MEDIA_CHANGED                                                      NTStatus      = 0x8000001C\n\tSTATUS_BUS_RESET                                                          NTStatus      = 0x8000001D\n\tSTATUS_END_OF_MEDIA                                                       NTStatus      = 0x8000001E\n\tSTATUS_BEGINNING_OF_MEDIA                                                 NTStatus      = 0x8000001F\n\tSTATUS_MEDIA_CHECK                                                        NTStatus      = 0x80000020\n\tSTATUS_SETMARK_DETECTED                                                   NTStatus      = 0x80000021\n\tSTATUS_NO_DATA_DETECTED                                                   NTStatus      = 0x80000022\n\tSTATUS_REDIRECTOR_HAS_OPEN_HANDLES                                        NTStatus      = 0x80000023\n\tSTATUS_SERVER_HAS_OPEN_HANDLES                                            NTStatus      = 0x80000024\n\tSTATUS_ALREADY_DISCONNECTED                                               NTStatus      = 0x80000025\n\tSTATUS_LONGJUMP                                                           NTStatus      = 0x80000026\n\tSTATUS_CLEANER_CARTRIDGE_INSTALLED                                        NTStatus      = 0x80000027\n\tSTATUS_PLUGPLAY_QUERY_VETOED                                              NTStatus      = 0x80000028\n\tSTATUS_UNWIND_CONSOLIDATE                                                 NTStatus      = 0x80000029\n\tSTATUS_REGISTRY_HIVE_RECOVERED                                            NTStatus      = 0x8000002A\n\tSTATUS_DLL_MIGHT_BE_INSECURE                                              NTStatus      = 0x8000002B\n\tSTATUS_DLL_MIGHT_BE_INCOMPATIBLE                                          NTStatus      = 0x8000002C\n\tSTATUS_STOPPED_ON_SYMLINK                                                 NTStatus      = 0x8000002D\n\tSTATUS_CANNOT_GRANT_REQUESTED_OPLOCK                                      NTStatus      = 0x8000002E\n\tSTATUS_NO_ACE_CONDITION                                                   NTStatus      = 0x8000002F\n\tSTATUS_DEVICE_SUPPORT_IN_PROGRESS                                         NTStatus      = 0x80000030\n\tSTATUS_DEVICE_POWER_CYCLE_REQUIRED                                        NTStatus      = 0x80000031\n\tSTATUS_NO_WORK_DONE                                                       NTStatus      = 0x80000032\n\tSTATUS_CLUSTER_NODE_ALREADY_UP                                            NTStatus      = 0x80130001\n\tSTATUS_CLUSTER_NODE_ALREADY_DOWN                                          NTStatus      = 0x80130002\n\tSTATUS_CLUSTER_NETWORK_ALREADY_ONLINE                                     NTStatus      = 0x80130003\n\tSTATUS_CLUSTER_NETWORK_ALREADY_OFFLINE                                    NTStatus      = 0x80130004\n\tSTATUS_CLUSTER_NODE_ALREADY_MEMBER                                        NTStatus      = 0x80130005\n\tSTATUS_FLT_BUFFER_TOO_SMALL                                               NTStatus      = 0x801C0001\n\tSTATUS_FVE_PARTIAL_METADATA                                               NTStatus      = 0x80210001\n\tSTATUS_FVE_TRANSIENT_STATE                                                NTStatus      = 0x80210002\n\tSTATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH                         NTStatus      = 0x8000CF00\n\tSTATUS_UNSUCCESSFUL                                                       NTStatus      = 0xC0000001\n\tSTATUS_NOT_IMPLEMENTED                                                    NTStatus      = 0xC0000002\n\tSTATUS_INVALID_INFO_CLASS                                                 NTStatus      = 0xC0000003\n\tSTATUS_INFO_LENGTH_MISMATCH                                               NTStatus      = 0xC0000004\n\tSTATUS_ACCESS_VIOLATION                                                   NTStatus      = 0xC0000005\n\tSTATUS_IN_PAGE_ERROR                                                      NTStatus      = 0xC0000006\n\tSTATUS_PAGEFILE_QUOTA                                                     NTStatus      = 0xC0000007\n\tSTATUS_INVALID_HANDLE                                                     NTStatus      = 0xC0000008\n\tSTATUS_BAD_INITIAL_STACK                                                  NTStatus      = 0xC0000009\n\tSTATUS_BAD_INITIAL_PC                                                     NTStatus      = 0xC000000A\n\tSTATUS_INVALID_CID                                                        NTStatus      = 0xC000000B\n\tSTATUS_TIMER_NOT_CANCELED                                                 NTStatus      = 0xC000000C\n\tSTATUS_INVALID_PARAMETER                                                  NTStatus      = 0xC000000D\n\tSTATUS_NO_SUCH_DEVICE                                                     NTStatus      = 0xC000000E\n\tSTATUS_NO_SUCH_FILE                                                       NTStatus      = 0xC000000F\n\tSTATUS_INVALID_DEVICE_REQUEST                                             NTStatus      = 0xC0000010\n\tSTATUS_END_OF_FILE                                                        NTStatus      = 0xC0000011\n\tSTATUS_WRONG_VOLUME                                                       NTStatus      = 0xC0000012\n\tSTATUS_NO_MEDIA_IN_DEVICE                                                 NTStatus      = 0xC0000013\n\tSTATUS_UNRECOGNIZED_MEDIA                                                 NTStatus      = 0xC0000014\n\tSTATUS_NONEXISTENT_SECTOR                                                 NTStatus      = 0xC0000015\n\tSTATUS_MORE_PROCESSING_REQUIRED                                           NTStatus      = 0xC0000016\n\tSTATUS_NO_MEMORY                                                          NTStatus      = 0xC0000017\n\tSTATUS_CONFLICTING_ADDRESSES                                              NTStatus      = 0xC0000018\n\tSTATUS_NOT_MAPPED_VIEW                                                    NTStatus      = 0xC0000019\n\tSTATUS_UNABLE_TO_FREE_VM                                                  NTStatus      = 0xC000001A\n\tSTATUS_UNABLE_TO_DELETE_SECTION                                           NTStatus      = 0xC000001B\n\tSTATUS_INVALID_SYSTEM_SERVICE                                             NTStatus      = 0xC000001C\n\tSTATUS_ILLEGAL_INSTRUCTION                                                NTStatus      = 0xC000001D\n\tSTATUS_INVALID_LOCK_SEQUENCE                                              NTStatus      = 0xC000001E\n\tSTATUS_INVALID_VIEW_SIZE                                                  NTStatus      = 0xC000001F\n\tSTATUS_INVALID_FILE_FOR_SECTION                                           NTStatus      = 0xC0000020\n\tSTATUS_ALREADY_COMMITTED                                                  NTStatus      = 0xC0000021\n\tSTATUS_ACCESS_DENIED                                                      NTStatus      = 0xC0000022\n\tSTATUS_BUFFER_TOO_SMALL                                                   NTStatus      = 0xC0000023\n\tSTATUS_OBJECT_TYPE_MISMATCH                                               NTStatus      = 0xC0000024\n\tSTATUS_NONCONTINUABLE_EXCEPTION                                           NTStatus      = 0xC0000025\n\tSTATUS_INVALID_DISPOSITION                                                NTStatus      = 0xC0000026\n\tSTATUS_UNWIND                                                             NTStatus      = 0xC0000027\n\tSTATUS_BAD_STACK                                                          NTStatus      = 0xC0000028\n\tSTATUS_INVALID_UNWIND_TARGET                                              NTStatus      = 0xC0000029\n\tSTATUS_NOT_LOCKED                                                         NTStatus      = 0xC000002A\n\tSTATUS_PARITY_ERROR                                                       NTStatus      = 0xC000002B\n\tSTATUS_UNABLE_TO_DECOMMIT_VM                                              NTStatus      = 0xC000002C\n\tSTATUS_NOT_COMMITTED                                                      NTStatus      = 0xC000002D\n\tSTATUS_INVALID_PORT_ATTRIBUTES                                            NTStatus      = 0xC000002E\n\tSTATUS_PORT_MESSAGE_TOO_LONG                                              NTStatus      = 0xC000002F\n\tSTATUS_INVALID_PARAMETER_MIX                                              NTStatus      = 0xC0000030\n\tSTATUS_INVALID_QUOTA_LOWER                                                NTStatus      = 0xC0000031\n\tSTATUS_DISK_CORRUPT_ERROR                                                 NTStatus      = 0xC0000032\n\tSTATUS_OBJECT_NAME_INVALID                                                NTStatus      = 0xC0000033\n\tSTATUS_OBJECT_NAME_NOT_FOUND                                              NTStatus      = 0xC0000034\n\tSTATUS_OBJECT_NAME_COLLISION                                              NTStatus      = 0xC0000035\n\tSTATUS_PORT_DO_NOT_DISTURB                                                NTStatus      = 0xC0000036\n\tSTATUS_PORT_DISCONNECTED                                                  NTStatus      = 0xC0000037\n\tSTATUS_DEVICE_ALREADY_ATTACHED                                            NTStatus      = 0xC0000038\n\tSTATUS_OBJECT_PATH_INVALID                                                NTStatus      = 0xC0000039\n\tSTATUS_OBJECT_PATH_NOT_FOUND                                              NTStatus      = 0xC000003A\n\tSTATUS_OBJECT_PATH_SYNTAX_BAD                                             NTStatus      = 0xC000003B\n\tSTATUS_DATA_OVERRUN                                                       NTStatus      = 0xC000003C\n\tSTATUS_DATA_LATE_ERROR                                                    NTStatus      = 0xC000003D\n\tSTATUS_DATA_ERROR                                                         NTStatus      = 0xC000003E\n\tSTATUS_CRC_ERROR                                                          NTStatus      = 0xC000003F\n\tSTATUS_SECTION_TOO_BIG                                                    NTStatus      = 0xC0000040\n\tSTATUS_PORT_CONNECTION_REFUSED                                            NTStatus      = 0xC0000041\n\tSTATUS_INVALID_PORT_HANDLE                                                NTStatus      = 0xC0000042\n\tSTATUS_SHARING_VIOLATION                                                  NTStatus      = 0xC0000043\n\tSTATUS_QUOTA_EXCEEDED                                                     NTStatus      = 0xC0000044\n\tSTATUS_INVALID_PAGE_PROTECTION                                            NTStatus      = 0xC0000045\n\tSTATUS_MUTANT_NOT_OWNED                                                   NTStatus      = 0xC0000046\n\tSTATUS_SEMAPHORE_LIMIT_EXCEEDED                                           NTStatus      = 0xC0000047\n\tSTATUS_PORT_ALREADY_SET                                                   NTStatus      = 0xC0000048\n\tSTATUS_SECTION_NOT_IMAGE                                                  NTStatus      = 0xC0000049\n\tSTATUS_SUSPEND_COUNT_EXCEEDED                                             NTStatus      = 0xC000004A\n\tSTATUS_THREAD_IS_TERMINATING                                              NTStatus      = 0xC000004B\n\tSTATUS_BAD_WORKING_SET_LIMIT                                              NTStatus      = 0xC000004C\n\tSTATUS_INCOMPATIBLE_FILE_MAP                                              NTStatus      = 0xC000004D\n\tSTATUS_SECTION_PROTECTION                                                 NTStatus      = 0xC000004E\n\tSTATUS_EAS_NOT_SUPPORTED                                                  NTStatus      = 0xC000004F\n\tSTATUS_EA_TOO_LARGE                                                       NTStatus      = 0xC0000050\n\tSTATUS_NONEXISTENT_EA_ENTRY                                               NTStatus      = 0xC0000051\n\tSTATUS_NO_EAS_ON_FILE                                                     NTStatus      = 0xC0000052\n\tSTATUS_EA_CORRUPT_ERROR                                                   NTStatus      = 0xC0000053\n\tSTATUS_FILE_LOCK_CONFLICT                                                 NTStatus      = 0xC0000054\n\tSTATUS_LOCK_NOT_GRANTED                                                   NTStatus      = 0xC0000055\n\tSTATUS_DELETE_PENDING                                                     NTStatus      = 0xC0000056\n\tSTATUS_CTL_FILE_NOT_SUPPORTED                                             NTStatus      = 0xC0000057\n\tSTATUS_UNKNOWN_REVISION                                                   NTStatus      = 0xC0000058\n\tSTATUS_REVISION_MISMATCH                                                  NTStatus      = 0xC0000059\n\tSTATUS_INVALID_OWNER                                                      NTStatus      = 0xC000005A\n\tSTATUS_INVALID_PRIMARY_GROUP                                              NTStatus      = 0xC000005B\n\tSTATUS_NO_IMPERSONATION_TOKEN                                             NTStatus      = 0xC000005C\n\tSTATUS_CANT_DISABLE_MANDATORY                                             NTStatus      = 0xC000005D\n\tSTATUS_NO_LOGON_SERVERS                                                   NTStatus      = 0xC000005E\n\tSTATUS_NO_SUCH_LOGON_SESSION                                              NTStatus      = 0xC000005F\n\tSTATUS_NO_SUCH_PRIVILEGE                                                  NTStatus      = 0xC0000060\n\tSTATUS_PRIVILEGE_NOT_HELD                                                 NTStatus      = 0xC0000061\n\tSTATUS_INVALID_ACCOUNT_NAME                                               NTStatus      = 0xC0000062\n\tSTATUS_USER_EXISTS                                                        NTStatus      = 0xC0000063\n\tSTATUS_NO_SUCH_USER                                                       NTStatus      = 0xC0000064\n\tSTATUS_GROUP_EXISTS                                                       NTStatus      = 0xC0000065\n\tSTATUS_NO_SUCH_GROUP                                                      NTStatus      = 0xC0000066\n\tSTATUS_MEMBER_IN_GROUP                                                    NTStatus      = 0xC0000067\n\tSTATUS_MEMBER_NOT_IN_GROUP                                                NTStatus      = 0xC0000068\n\tSTATUS_LAST_ADMIN                                                         NTStatus      = 0xC0000069\n\tSTATUS_WRONG_PASSWORD                                                     NTStatus      = 0xC000006A\n\tSTATUS_ILL_FORMED_PASSWORD                                                NTStatus      = 0xC000006B\n\tSTATUS_PASSWORD_RESTRICTION                                               NTStatus      = 0xC000006C\n\tSTATUS_LOGON_FAILURE                                                      NTStatus      = 0xC000006D\n\tSTATUS_ACCOUNT_RESTRICTION                                                NTStatus      = 0xC000006E\n\tSTATUS_INVALID_LOGON_HOURS                                                NTStatus      = 0xC000006F\n\tSTATUS_INVALID_WORKSTATION                                                NTStatus      = 0xC0000070\n\tSTATUS_PASSWORD_EXPIRED                                                   NTStatus      = 0xC0000071\n\tSTATUS_ACCOUNT_DISABLED                                                   NTStatus      = 0xC0000072\n\tSTATUS_NONE_MAPPED                                                        NTStatus      = 0xC0000073\n\tSTATUS_TOO_MANY_LUIDS_REQUESTED                                           NTStatus      = 0xC0000074\n\tSTATUS_LUIDS_EXHAUSTED                                                    NTStatus      = 0xC0000075\n\tSTATUS_INVALID_SUB_AUTHORITY                                              NTStatus      = 0xC0000076\n\tSTATUS_INVALID_ACL                                                        NTStatus      = 0xC0000077\n\tSTATUS_INVALID_SID                                                        NTStatus      = 0xC0000078\n\tSTATUS_INVALID_SECURITY_DESCR                                             NTStatus      = 0xC0000079\n\tSTATUS_PROCEDURE_NOT_FOUND                                                NTStatus      = 0xC000007A\n\tSTATUS_INVALID_IMAGE_FORMAT                                               NTStatus      = 0xC000007B\n\tSTATUS_NO_TOKEN                                                           NTStatus      = 0xC000007C\n\tSTATUS_BAD_INHERITANCE_ACL                                                NTStatus      = 0xC000007D\n\tSTATUS_RANGE_NOT_LOCKED                                                   NTStatus      = 0xC000007E\n\tSTATUS_DISK_FULL                                                          NTStatus      = 0xC000007F\n\tSTATUS_SERVER_DISABLED                                                    NTStatus      = 0xC0000080\n\tSTATUS_SERVER_NOT_DISABLED                                                NTStatus      = 0xC0000081\n\tSTATUS_TOO_MANY_GUIDS_REQUESTED                                           NTStatus      = 0xC0000082\n\tSTATUS_GUIDS_EXHAUSTED                                                    NTStatus      = 0xC0000083\n\tSTATUS_INVALID_ID_AUTHORITY                                               NTStatus      = 0xC0000084\n\tSTATUS_AGENTS_EXHAUSTED                                                   NTStatus      = 0xC0000085\n\tSTATUS_INVALID_VOLUME_LABEL                                               NTStatus      = 0xC0000086\n\tSTATUS_SECTION_NOT_EXTENDED                                               NTStatus      = 0xC0000087\n\tSTATUS_NOT_MAPPED_DATA                                                    NTStatus      = 0xC0000088\n\tSTATUS_RESOURCE_DATA_NOT_FOUND                                            NTStatus      = 0xC0000089\n\tSTATUS_RESOURCE_TYPE_NOT_FOUND                                            NTStatus      = 0xC000008A\n\tSTATUS_RESOURCE_NAME_NOT_FOUND                                            NTStatus      = 0xC000008B\n\tSTATUS_ARRAY_BOUNDS_EXCEEDED                                              NTStatus      = 0xC000008C\n\tSTATUS_FLOAT_DENORMAL_OPERAND                                             NTStatus      = 0xC000008D\n\tSTATUS_FLOAT_DIVIDE_BY_ZERO                                               NTStatus      = 0xC000008E\n\tSTATUS_FLOAT_INEXACT_RESULT                                               NTStatus      = 0xC000008F\n\tSTATUS_FLOAT_INVALID_OPERATION                                            NTStatus      = 0xC0000090\n\tSTATUS_FLOAT_OVERFLOW                                                     NTStatus      = 0xC0000091\n\tSTATUS_FLOAT_STACK_CHECK                                                  NTStatus      = 0xC0000092\n\tSTATUS_FLOAT_UNDERFLOW                                                    NTStatus      = 0xC0000093\n\tSTATUS_INTEGER_DIVIDE_BY_ZERO                                             NTStatus      = 0xC0000094\n\tSTATUS_INTEGER_OVERFLOW                                                   NTStatus      = 0xC0000095\n\tSTATUS_PRIVILEGED_INSTRUCTION                                             NTStatus      = 0xC0000096\n\tSTATUS_TOO_MANY_PAGING_FILES                                              NTStatus      = 0xC0000097\n\tSTATUS_FILE_INVALID                                                       NTStatus      = 0xC0000098\n\tSTATUS_ALLOTTED_SPACE_EXCEEDED                                            NTStatus      = 0xC0000099\n\tSTATUS_INSUFFICIENT_RESOURCES                                             NTStatus      = 0xC000009A\n\tSTATUS_DFS_EXIT_PATH_FOUND                                                NTStatus      = 0xC000009B\n\tSTATUS_DEVICE_DATA_ERROR                                                  NTStatus      = 0xC000009C\n\tSTATUS_DEVICE_NOT_CONNECTED                                               NTStatus      = 0xC000009D\n\tSTATUS_DEVICE_POWER_FAILURE                                               NTStatus      = 0xC000009E\n\tSTATUS_FREE_VM_NOT_AT_BASE                                                NTStatus      = 0xC000009F\n\tSTATUS_MEMORY_NOT_ALLOCATED                                               NTStatus      = 0xC00000A0\n\tSTATUS_WORKING_SET_QUOTA                                                  NTStatus      = 0xC00000A1\n\tSTATUS_MEDIA_WRITE_PROTECTED                                              NTStatus      = 0xC00000A2\n\tSTATUS_DEVICE_NOT_READY                                                   NTStatus      = 0xC00000A3\n\tSTATUS_INVALID_GROUP_ATTRIBUTES                                           NTStatus      = 0xC00000A4\n\tSTATUS_BAD_IMPERSONATION_LEVEL                                            NTStatus      = 0xC00000A5\n\tSTATUS_CANT_OPEN_ANONYMOUS                                                NTStatus      = 0xC00000A6\n\tSTATUS_BAD_VALIDATION_CLASS                                               NTStatus      = 0xC00000A7\n\tSTATUS_BAD_TOKEN_TYPE                                                     NTStatus      = 0xC00000A8\n\tSTATUS_BAD_MASTER_BOOT_RECORD                                             NTStatus      = 0xC00000A9\n\tSTATUS_INSTRUCTION_MISALIGNMENT                                           NTStatus      = 0xC00000AA\n\tSTATUS_INSTANCE_NOT_AVAILABLE                                             NTStatus      = 0xC00000AB\n\tSTATUS_PIPE_NOT_AVAILABLE                                                 NTStatus      = 0xC00000AC\n\tSTATUS_INVALID_PIPE_STATE                                                 NTStatus      = 0xC00000AD\n\tSTATUS_PIPE_BUSY                                                          NTStatus      = 0xC00000AE\n\tSTATUS_ILLEGAL_FUNCTION                                                   NTStatus      = 0xC00000AF\n\tSTATUS_PIPE_DISCONNECTED                                                  NTStatus      = 0xC00000B0\n\tSTATUS_PIPE_CLOSING                                                       NTStatus      = 0xC00000B1\n\tSTATUS_PIPE_CONNECTED                                                     NTStatus      = 0xC00000B2\n\tSTATUS_PIPE_LISTENING                                                     NTStatus      = 0xC00000B3\n\tSTATUS_INVALID_READ_MODE                                                  NTStatus      = 0xC00000B4\n\tSTATUS_IO_TIMEOUT                                                         NTStatus      = 0xC00000B5\n\tSTATUS_FILE_FORCED_CLOSED                                                 NTStatus      = 0xC00000B6\n\tSTATUS_PROFILING_NOT_STARTED                                              NTStatus      = 0xC00000B7\n\tSTATUS_PROFILING_NOT_STOPPED                                              NTStatus      = 0xC00000B8\n\tSTATUS_COULD_NOT_INTERPRET                                                NTStatus      = 0xC00000B9\n\tSTATUS_FILE_IS_A_DIRECTORY                                                NTStatus      = 0xC00000BA\n\tSTATUS_NOT_SUPPORTED                                                      NTStatus      = 0xC00000BB\n\tSTATUS_REMOTE_NOT_LISTENING                                               NTStatus      = 0xC00000BC\n\tSTATUS_DUPLICATE_NAME                                                     NTStatus      = 0xC00000BD\n\tSTATUS_BAD_NETWORK_PATH                                                   NTStatus      = 0xC00000BE\n\tSTATUS_NETWORK_BUSY                                                       NTStatus      = 0xC00000BF\n\tSTATUS_DEVICE_DOES_NOT_EXIST                                              NTStatus      = 0xC00000C0\n\tSTATUS_TOO_MANY_COMMANDS                                                  NTStatus      = 0xC00000C1\n\tSTATUS_ADAPTER_HARDWARE_ERROR                                             NTStatus      = 0xC00000C2\n\tSTATUS_INVALID_NETWORK_RESPONSE                                           NTStatus      = 0xC00000C3\n\tSTATUS_UNEXPECTED_NETWORK_ERROR                                           NTStatus      = 0xC00000C4\n\tSTATUS_BAD_REMOTE_ADAPTER                                                 NTStatus      = 0xC00000C5\n\tSTATUS_PRINT_QUEUE_FULL                                                   NTStatus      = 0xC00000C6\n\tSTATUS_NO_SPOOL_SPACE                                                     NTStatus      = 0xC00000C7\n\tSTATUS_PRINT_CANCELLED                                                    NTStatus      = 0xC00000C8\n\tSTATUS_NETWORK_NAME_DELETED                                               NTStatus      = 0xC00000C9\n\tSTATUS_NETWORK_ACCESS_DENIED                                              NTStatus      = 0xC00000CA\n\tSTATUS_BAD_DEVICE_TYPE                                                    NTStatus      = 0xC00000CB\n\tSTATUS_BAD_NETWORK_NAME                                                   NTStatus      = 0xC00000CC\n\tSTATUS_TOO_MANY_NAMES                                                     NTStatus      = 0xC00000CD\n\tSTATUS_TOO_MANY_SESSIONS                                                  NTStatus      = 0xC00000CE\n\tSTATUS_SHARING_PAUSED                                                     NTStatus      = 0xC00000CF\n\tSTATUS_REQUEST_NOT_ACCEPTED                                               NTStatus      = 0xC00000D0\n\tSTATUS_REDIRECTOR_PAUSED                                                  NTStatus      = 0xC00000D1\n\tSTATUS_NET_WRITE_FAULT                                                    NTStatus      = 0xC00000D2\n\tSTATUS_PROFILING_AT_LIMIT                                                 NTStatus      = 0xC00000D3\n\tSTATUS_NOT_SAME_DEVICE                                                    NTStatus      = 0xC00000D4\n\tSTATUS_FILE_RENAMED                                                       NTStatus      = 0xC00000D5\n\tSTATUS_VIRTUAL_CIRCUIT_CLOSED                                             NTStatus      = 0xC00000D6\n\tSTATUS_NO_SECURITY_ON_OBJECT                                              NTStatus      = 0xC00000D7\n\tSTATUS_CANT_WAIT                                                          NTStatus      = 0xC00000D8\n\tSTATUS_PIPE_EMPTY                                                         NTStatus      = 0xC00000D9\n\tSTATUS_CANT_ACCESS_DOMAIN_INFO                                            NTStatus      = 0xC00000DA\n\tSTATUS_CANT_TERMINATE_SELF                                                NTStatus      = 0xC00000DB\n\tSTATUS_INVALID_SERVER_STATE                                               NTStatus      = 0xC00000DC\n\tSTATUS_INVALID_DOMAIN_STATE                                               NTStatus      = 0xC00000DD\n\tSTATUS_INVALID_DOMAIN_ROLE                                                NTStatus      = 0xC00000DE\n\tSTATUS_NO_SUCH_DOMAIN                                                     NTStatus      = 0xC00000DF\n\tSTATUS_DOMAIN_EXISTS                                                      NTStatus      = 0xC00000E0\n\tSTATUS_DOMAIN_LIMIT_EXCEEDED                                              NTStatus      = 0xC00000E1\n\tSTATUS_OPLOCK_NOT_GRANTED                                                 NTStatus      = 0xC00000E2\n\tSTATUS_INVALID_OPLOCK_PROTOCOL                                            NTStatus      = 0xC00000E3\n\tSTATUS_INTERNAL_DB_CORRUPTION                                             NTStatus      = 0xC00000E4\n\tSTATUS_INTERNAL_ERROR                                                     NTStatus      = 0xC00000E5\n\tSTATUS_GENERIC_NOT_MAPPED                                                 NTStatus      = 0xC00000E6\n\tSTATUS_BAD_DESCRIPTOR_FORMAT                                              NTStatus      = 0xC00000E7\n\tSTATUS_INVALID_USER_BUFFER                                                NTStatus      = 0xC00000E8\n\tSTATUS_UNEXPECTED_IO_ERROR                                                NTStatus      = 0xC00000E9\n\tSTATUS_UNEXPECTED_MM_CREATE_ERR                                           NTStatus      = 0xC00000EA\n\tSTATUS_UNEXPECTED_MM_MAP_ERROR                                            NTStatus      = 0xC00000EB\n\tSTATUS_UNEXPECTED_MM_EXTEND_ERR                                           NTStatus      = 0xC00000EC\n\tSTATUS_NOT_LOGON_PROCESS                                                  NTStatus      = 0xC00000ED\n\tSTATUS_LOGON_SESSION_EXISTS                                               NTStatus      = 0xC00000EE\n\tSTATUS_INVALID_PARAMETER_1                                                NTStatus      = 0xC00000EF\n\tSTATUS_INVALID_PARAMETER_2                                                NTStatus      = 0xC00000F0\n\tSTATUS_INVALID_PARAMETER_3                                                NTStatus      = 0xC00000F1\n\tSTATUS_INVALID_PARAMETER_4                                                NTStatus      = 0xC00000F2\n\tSTATUS_INVALID_PARAMETER_5                                                NTStatus      = 0xC00000F3\n\tSTATUS_INVALID_PARAMETER_6                                                NTStatus      = 0xC00000F4\n\tSTATUS_INVALID_PARAMETER_7                                                NTStatus      = 0xC00000F5\n\tSTATUS_INVALID_PARAMETER_8                                                NTStatus      = 0xC00000F6\n\tSTATUS_INVALID_PARAMETER_9                                                NTStatus      = 0xC00000F7\n\tSTATUS_INVALID_PARAMETER_10                                               NTStatus      = 0xC00000F8\n\tSTATUS_INVALID_PARAMETER_11                                               NTStatus      = 0xC00000F9\n\tSTATUS_INVALID_PARAMETER_12                                               NTStatus      = 0xC00000FA\n\tSTATUS_REDIRECTOR_NOT_STARTED                                             NTStatus      = 0xC00000FB\n\tSTATUS_REDIRECTOR_STARTED                                                 NTStatus      = 0xC00000FC\n\tSTATUS_STACK_OVERFLOW                                                     NTStatus      = 0xC00000FD\n\tSTATUS_NO_SUCH_PACKAGE                                                    NTStatus      = 0xC00000FE\n\tSTATUS_BAD_FUNCTION_TABLE                                                 NTStatus      = 0xC00000FF\n\tSTATUS_VARIABLE_NOT_FOUND                                                 NTStatus      = 0xC0000100\n\tSTATUS_DIRECTORY_NOT_EMPTY                                                NTStatus      = 0xC0000101\n\tSTATUS_FILE_CORRUPT_ERROR                                                 NTStatus      = 0xC0000102\n\tSTATUS_NOT_A_DIRECTORY                                                    NTStatus      = 0xC0000103\n\tSTATUS_BAD_LOGON_SESSION_STATE                                            NTStatus      = 0xC0000104\n\tSTATUS_LOGON_SESSION_COLLISION                                            NTStatus      = 0xC0000105\n\tSTATUS_NAME_TOO_LONG                                                      NTStatus      = 0xC0000106\n\tSTATUS_FILES_OPEN                                                         NTStatus      = 0xC0000107\n\tSTATUS_CONNECTION_IN_USE                                                  NTStatus      = 0xC0000108\n\tSTATUS_MESSAGE_NOT_FOUND                                                  NTStatus      = 0xC0000109\n\tSTATUS_PROCESS_IS_TERMINATING                                             NTStatus      = 0xC000010A\n\tSTATUS_INVALID_LOGON_TYPE                                                 NTStatus      = 0xC000010B\n\tSTATUS_NO_GUID_TRANSLATION                                                NTStatus      = 0xC000010C\n\tSTATUS_CANNOT_IMPERSONATE                                                 NTStatus      = 0xC000010D\n\tSTATUS_IMAGE_ALREADY_LOADED                                               NTStatus      = 0xC000010E\n\tSTATUS_ABIOS_NOT_PRESENT                                                  NTStatus      = 0xC000010F\n\tSTATUS_ABIOS_LID_NOT_EXIST                                                NTStatus      = 0xC0000110\n\tSTATUS_ABIOS_LID_ALREADY_OWNED                                            NTStatus      = 0xC0000111\n\tSTATUS_ABIOS_NOT_LID_OWNER                                                NTStatus      = 0xC0000112\n\tSTATUS_ABIOS_INVALID_COMMAND                                              NTStatus      = 0xC0000113\n\tSTATUS_ABIOS_INVALID_LID                                                  NTStatus      = 0xC0000114\n\tSTATUS_ABIOS_SELECTOR_NOT_AVAILABLE                                       NTStatus      = 0xC0000115\n\tSTATUS_ABIOS_INVALID_SELECTOR                                             NTStatus      = 0xC0000116\n\tSTATUS_NO_LDT                                                             NTStatus      = 0xC0000117\n\tSTATUS_INVALID_LDT_SIZE                                                   NTStatus      = 0xC0000118\n\tSTATUS_INVALID_LDT_OFFSET                                                 NTStatus      = 0xC0000119\n\tSTATUS_INVALID_LDT_DESCRIPTOR                                             NTStatus      = 0xC000011A\n\tSTATUS_INVALID_IMAGE_NE_FORMAT                                            NTStatus      = 0xC000011B\n\tSTATUS_RXACT_INVALID_STATE                                                NTStatus      = 0xC000011C\n\tSTATUS_RXACT_COMMIT_FAILURE                                               NTStatus      = 0xC000011D\n\tSTATUS_MAPPED_FILE_SIZE_ZERO                                              NTStatus      = 0xC000011E\n\tSTATUS_TOO_MANY_OPENED_FILES                                              NTStatus      = 0xC000011F\n\tSTATUS_CANCELLED                                                          NTStatus      = 0xC0000120\n\tSTATUS_CANNOT_DELETE                                                      NTStatus      = 0xC0000121\n\tSTATUS_INVALID_COMPUTER_NAME                                              NTStatus      = 0xC0000122\n\tSTATUS_FILE_DELETED                                                       NTStatus      = 0xC0000123\n\tSTATUS_SPECIAL_ACCOUNT                                                    NTStatus      = 0xC0000124\n\tSTATUS_SPECIAL_GROUP                                                      NTStatus      = 0xC0000125\n\tSTATUS_SPECIAL_USER                                                       NTStatus      = 0xC0000126\n\tSTATUS_MEMBERS_PRIMARY_GROUP                                              NTStatus      = 0xC0000127\n\tSTATUS_FILE_CLOSED                                                        NTStatus      = 0xC0000128\n\tSTATUS_TOO_MANY_THREADS                                                   NTStatus      = 0xC0000129\n\tSTATUS_THREAD_NOT_IN_PROCESS                                              NTStatus      = 0xC000012A\n\tSTATUS_TOKEN_ALREADY_IN_USE                                               NTStatus      = 0xC000012B\n\tSTATUS_PAGEFILE_QUOTA_EXCEEDED                                            NTStatus      = 0xC000012C\n\tSTATUS_COMMITMENT_LIMIT                                                   NTStatus      = 0xC000012D\n\tSTATUS_INVALID_IMAGE_LE_FORMAT                                            NTStatus      = 0xC000012E\n\tSTATUS_INVALID_IMAGE_NOT_MZ                                               NTStatus      = 0xC000012F\n\tSTATUS_INVALID_IMAGE_PROTECT                                              NTStatus      = 0xC0000130\n\tSTATUS_INVALID_IMAGE_WIN_16                                               NTStatus      = 0xC0000131\n\tSTATUS_LOGON_SERVER_CONFLICT                                              NTStatus      = 0xC0000132\n\tSTATUS_TIME_DIFFERENCE_AT_DC                                              NTStatus      = 0xC0000133\n\tSTATUS_SYNCHRONIZATION_REQUIRED                                           NTStatus      = 0xC0000134\n\tSTATUS_DLL_NOT_FOUND                                                      NTStatus      = 0xC0000135\n\tSTATUS_OPEN_FAILED                                                        NTStatus      = 0xC0000136\n\tSTATUS_IO_PRIVILEGE_FAILED                                                NTStatus      = 0xC0000137\n\tSTATUS_ORDINAL_NOT_FOUND                                                  NTStatus      = 0xC0000138\n\tSTATUS_ENTRYPOINT_NOT_FOUND                                               NTStatus      = 0xC0000139\n\tSTATUS_CONTROL_C_EXIT                                                     NTStatus      = 0xC000013A\n\tSTATUS_LOCAL_DISCONNECT                                                   NTStatus      = 0xC000013B\n\tSTATUS_REMOTE_DISCONNECT                                                  NTStatus      = 0xC000013C\n\tSTATUS_REMOTE_RESOURCES                                                   NTStatus      = 0xC000013D\n\tSTATUS_LINK_FAILED                                                        NTStatus      = 0xC000013E\n\tSTATUS_LINK_TIMEOUT                                                       NTStatus      = 0xC000013F\n\tSTATUS_INVALID_CONNECTION                                                 NTStatus      = 0xC0000140\n\tSTATUS_INVALID_ADDRESS                                                    NTStatus      = 0xC0000141\n\tSTATUS_DLL_INIT_FAILED                                                    NTStatus      = 0xC0000142\n\tSTATUS_MISSING_SYSTEMFILE                                                 NTStatus      = 0xC0000143\n\tSTATUS_UNHANDLED_EXCEPTION                                                NTStatus      = 0xC0000144\n\tSTATUS_APP_INIT_FAILURE                                                   NTStatus      = 0xC0000145\n\tSTATUS_PAGEFILE_CREATE_FAILED                                             NTStatus      = 0xC0000146\n\tSTATUS_NO_PAGEFILE                                                        NTStatus      = 0xC0000147\n\tSTATUS_INVALID_LEVEL                                                      NTStatus      = 0xC0000148\n\tSTATUS_WRONG_PASSWORD_CORE                                                NTStatus      = 0xC0000149\n\tSTATUS_ILLEGAL_FLOAT_CONTEXT                                              NTStatus      = 0xC000014A\n\tSTATUS_PIPE_BROKEN                                                        NTStatus      = 0xC000014B\n\tSTATUS_REGISTRY_CORRUPT                                                   NTStatus      = 0xC000014C\n\tSTATUS_REGISTRY_IO_FAILED                                                 NTStatus      = 0xC000014D\n\tSTATUS_NO_EVENT_PAIR                                                      NTStatus      = 0xC000014E\n\tSTATUS_UNRECOGNIZED_VOLUME                                                NTStatus      = 0xC000014F\n\tSTATUS_SERIAL_NO_DEVICE_INITED                                            NTStatus      = 0xC0000150\n\tSTATUS_NO_SUCH_ALIAS                                                      NTStatus      = 0xC0000151\n\tSTATUS_MEMBER_NOT_IN_ALIAS                                                NTStatus      = 0xC0000152\n\tSTATUS_MEMBER_IN_ALIAS                                                    NTStatus      = 0xC0000153\n\tSTATUS_ALIAS_EXISTS                                                       NTStatus      = 0xC0000154\n\tSTATUS_LOGON_NOT_GRANTED                                                  NTStatus      = 0xC0000155\n\tSTATUS_TOO_MANY_SECRETS                                                   NTStatus      = 0xC0000156\n\tSTATUS_SECRET_TOO_LONG                                                    NTStatus      = 0xC0000157\n\tSTATUS_INTERNAL_DB_ERROR                                                  NTStatus      = 0xC0000158\n\tSTATUS_FULLSCREEN_MODE                                                    NTStatus      = 0xC0000159\n\tSTATUS_TOO_MANY_CONTEXT_IDS                                               NTStatus      = 0xC000015A\n\tSTATUS_LOGON_TYPE_NOT_GRANTED                                             NTStatus      = 0xC000015B\n\tSTATUS_NOT_REGISTRY_FILE                                                  NTStatus      = 0xC000015C\n\tSTATUS_NT_CROSS_ENCRYPTION_REQUIRED                                       NTStatus      = 0xC000015D\n\tSTATUS_DOMAIN_CTRLR_CONFIG_ERROR                                          NTStatus      = 0xC000015E\n\tSTATUS_FT_MISSING_MEMBER                                                  NTStatus      = 0xC000015F\n\tSTATUS_ILL_FORMED_SERVICE_ENTRY                                           NTStatus      = 0xC0000160\n\tSTATUS_ILLEGAL_CHARACTER                                                  NTStatus      = 0xC0000161\n\tSTATUS_UNMAPPABLE_CHARACTER                                               NTStatus      = 0xC0000162\n\tSTATUS_UNDEFINED_CHARACTER                                                NTStatus      = 0xC0000163\n\tSTATUS_FLOPPY_VOLUME                                                      NTStatus      = 0xC0000164\n\tSTATUS_FLOPPY_ID_MARK_NOT_FOUND                                           NTStatus      = 0xC0000165\n\tSTATUS_FLOPPY_WRONG_CYLINDER                                              NTStatus      = 0xC0000166\n\tSTATUS_FLOPPY_UNKNOWN_ERROR                                               NTStatus      = 0xC0000167\n\tSTATUS_FLOPPY_BAD_REGISTERS                                               NTStatus      = 0xC0000168\n\tSTATUS_DISK_RECALIBRATE_FAILED                                            NTStatus      = 0xC0000169\n\tSTATUS_DISK_OPERATION_FAILED                                              NTStatus      = 0xC000016A\n\tSTATUS_DISK_RESET_FAILED                                                  NTStatus      = 0xC000016B\n\tSTATUS_SHARED_IRQ_BUSY                                                    NTStatus      = 0xC000016C\n\tSTATUS_FT_ORPHANING                                                       NTStatus      = 0xC000016D\n\tSTATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT                                   NTStatus      = 0xC000016E\n\tSTATUS_PARTITION_FAILURE                                                  NTStatus      = 0xC0000172\n\tSTATUS_INVALID_BLOCK_LENGTH                                               NTStatus      = 0xC0000173\n\tSTATUS_DEVICE_NOT_PARTITIONED                                             NTStatus      = 0xC0000174\n\tSTATUS_UNABLE_TO_LOCK_MEDIA                                               NTStatus      = 0xC0000175\n\tSTATUS_UNABLE_TO_UNLOAD_MEDIA                                             NTStatus      = 0xC0000176\n\tSTATUS_EOM_OVERFLOW                                                       NTStatus      = 0xC0000177\n\tSTATUS_NO_MEDIA                                                           NTStatus      = 0xC0000178\n\tSTATUS_NO_SUCH_MEMBER                                                     NTStatus      = 0xC000017A\n\tSTATUS_INVALID_MEMBER                                                     NTStatus      = 0xC000017B\n\tSTATUS_KEY_DELETED                                                        NTStatus      = 0xC000017C\n\tSTATUS_NO_LOG_SPACE                                                       NTStatus      = 0xC000017D\n\tSTATUS_TOO_MANY_SIDS                                                      NTStatus      = 0xC000017E\n\tSTATUS_LM_CROSS_ENCRYPTION_REQUIRED                                       NTStatus      = 0xC000017F\n\tSTATUS_KEY_HAS_CHILDREN                                                   NTStatus      = 0xC0000180\n\tSTATUS_CHILD_MUST_BE_VOLATILE                                             NTStatus      = 0xC0000181\n\tSTATUS_DEVICE_CONFIGURATION_ERROR                                         NTStatus      = 0xC0000182\n\tSTATUS_DRIVER_INTERNAL_ERROR                                              NTStatus      = 0xC0000183\n\tSTATUS_INVALID_DEVICE_STATE                                               NTStatus      = 0xC0000184\n\tSTATUS_IO_DEVICE_ERROR                                                    NTStatus      = 0xC0000185\n\tSTATUS_DEVICE_PROTOCOL_ERROR                                              NTStatus      = 0xC0000186\n\tSTATUS_BACKUP_CONTROLLER                                                  NTStatus      = 0xC0000187\n\tSTATUS_LOG_FILE_FULL                                                      NTStatus      = 0xC0000188\n\tSTATUS_TOO_LATE                                                           NTStatus      = 0xC0000189\n\tSTATUS_NO_TRUST_LSA_SECRET                                                NTStatus      = 0xC000018A\n\tSTATUS_NO_TRUST_SAM_ACCOUNT                                               NTStatus      = 0xC000018B\n\tSTATUS_TRUSTED_DOMAIN_FAILURE                                             NTStatus      = 0xC000018C\n\tSTATUS_TRUSTED_RELATIONSHIP_FAILURE                                       NTStatus      = 0xC000018D\n\tSTATUS_EVENTLOG_FILE_CORRUPT                                              NTStatus      = 0xC000018E\n\tSTATUS_EVENTLOG_CANT_START                                                NTStatus      = 0xC000018F\n\tSTATUS_TRUST_FAILURE                                                      NTStatus      = 0xC0000190\n\tSTATUS_MUTANT_LIMIT_EXCEEDED                                              NTStatus      = 0xC0000191\n\tSTATUS_NETLOGON_NOT_STARTED                                               NTStatus      = 0xC0000192\n\tSTATUS_ACCOUNT_EXPIRED                                                    NTStatus      = 0xC0000193\n\tSTATUS_POSSIBLE_DEADLOCK                                                  NTStatus      = 0xC0000194\n\tSTATUS_NETWORK_CREDENTIAL_CONFLICT                                        NTStatus      = 0xC0000195\n\tSTATUS_REMOTE_SESSION_LIMIT                                               NTStatus      = 0xC0000196\n\tSTATUS_EVENTLOG_FILE_CHANGED                                              NTStatus      = 0xC0000197\n\tSTATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT                                  NTStatus      = 0xC0000198\n\tSTATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT                                  NTStatus      = 0xC0000199\n\tSTATUS_NOLOGON_SERVER_TRUST_ACCOUNT                                       NTStatus      = 0xC000019A\n\tSTATUS_DOMAIN_TRUST_INCONSISTENT                                          NTStatus      = 0xC000019B\n\tSTATUS_FS_DRIVER_REQUIRED                                                 NTStatus      = 0xC000019C\n\tSTATUS_IMAGE_ALREADY_LOADED_AS_DLL                                        NTStatus      = 0xC000019D\n\tSTATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING               NTStatus      = 0xC000019E\n\tSTATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME                                  NTStatus      = 0xC000019F\n\tSTATUS_SECURITY_STREAM_IS_INCONSISTENT                                    NTStatus      = 0xC00001A0\n\tSTATUS_INVALID_LOCK_RANGE                                                 NTStatus      = 0xC00001A1\n\tSTATUS_INVALID_ACE_CONDITION                                              NTStatus      = 0xC00001A2\n\tSTATUS_IMAGE_SUBSYSTEM_NOT_PRESENT                                        NTStatus      = 0xC00001A3\n\tSTATUS_NOTIFICATION_GUID_ALREADY_DEFINED                                  NTStatus      = 0xC00001A4\n\tSTATUS_INVALID_EXCEPTION_HANDLER                                          NTStatus      = 0xC00001A5\n\tSTATUS_DUPLICATE_PRIVILEGES                                               NTStatus      = 0xC00001A6\n\tSTATUS_NOT_ALLOWED_ON_SYSTEM_FILE                                         NTStatus      = 0xC00001A7\n\tSTATUS_REPAIR_NEEDED                                                      NTStatus      = 0xC00001A8\n\tSTATUS_QUOTA_NOT_ENABLED                                                  NTStatus      = 0xC00001A9\n\tSTATUS_NO_APPLICATION_PACKAGE                                             NTStatus      = 0xC00001AA\n\tSTATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS                             NTStatus      = 0xC00001AB\n\tSTATUS_NOT_SAME_OBJECT                                                    NTStatus      = 0xC00001AC\n\tSTATUS_FATAL_MEMORY_EXHAUSTION                                            NTStatus      = 0xC00001AD\n\tSTATUS_ERROR_PROCESS_NOT_IN_JOB                                           NTStatus      = 0xC00001AE\n\tSTATUS_CPU_SET_INVALID                                                    NTStatus      = 0xC00001AF\n\tSTATUS_IO_DEVICE_INVALID_DATA                                             NTStatus      = 0xC00001B0\n\tSTATUS_IO_UNALIGNED_WRITE                                                 NTStatus      = 0xC00001B1\n\tSTATUS_NETWORK_OPEN_RESTRICTION                                           NTStatus      = 0xC0000201\n\tSTATUS_NO_USER_SESSION_KEY                                                NTStatus      = 0xC0000202\n\tSTATUS_USER_SESSION_DELETED                                               NTStatus      = 0xC0000203\n\tSTATUS_RESOURCE_LANG_NOT_FOUND                                            NTStatus      = 0xC0000204\n\tSTATUS_INSUFF_SERVER_RESOURCES                                            NTStatus      = 0xC0000205\n\tSTATUS_INVALID_BUFFER_SIZE                                                NTStatus      = 0xC0000206\n\tSTATUS_INVALID_ADDRESS_COMPONENT                                          NTStatus      = 0xC0000207\n\tSTATUS_INVALID_ADDRESS_WILDCARD                                           NTStatus      = 0xC0000208\n\tSTATUS_TOO_MANY_ADDRESSES                                                 NTStatus      = 0xC0000209\n\tSTATUS_ADDRESS_ALREADY_EXISTS                                             NTStatus      = 0xC000020A\n\tSTATUS_ADDRESS_CLOSED                                                     NTStatus      = 0xC000020B\n\tSTATUS_CONNECTION_DISCONNECTED                                            NTStatus      = 0xC000020C\n\tSTATUS_CONNECTION_RESET                                                   NTStatus      = 0xC000020D\n\tSTATUS_TOO_MANY_NODES                                                     NTStatus      = 0xC000020E\n\tSTATUS_TRANSACTION_ABORTED                                                NTStatus      = 0xC000020F\n\tSTATUS_TRANSACTION_TIMED_OUT                                              NTStatus      = 0xC0000210\n\tSTATUS_TRANSACTION_NO_RELEASE                                             NTStatus      = 0xC0000211\n\tSTATUS_TRANSACTION_NO_MATCH                                               NTStatus      = 0xC0000212\n\tSTATUS_TRANSACTION_RESPONDED                                              NTStatus      = 0xC0000213\n\tSTATUS_TRANSACTION_INVALID_ID                                             NTStatus      = 0xC0000214\n\tSTATUS_TRANSACTION_INVALID_TYPE                                           NTStatus      = 0xC0000215\n\tSTATUS_NOT_SERVER_SESSION                                                 NTStatus      = 0xC0000216\n\tSTATUS_NOT_CLIENT_SESSION                                                 NTStatus      = 0xC0000217\n\tSTATUS_CANNOT_LOAD_REGISTRY_FILE                                          NTStatus      = 0xC0000218\n\tSTATUS_DEBUG_ATTACH_FAILED                                                NTStatus      = 0xC0000219\n\tSTATUS_SYSTEM_PROCESS_TERMINATED                                          NTStatus      = 0xC000021A\n\tSTATUS_DATA_NOT_ACCEPTED                                                  NTStatus      = 0xC000021B\n\tSTATUS_NO_BROWSER_SERVERS_FOUND                                           NTStatus      = 0xC000021C\n\tSTATUS_VDM_HARD_ERROR                                                     NTStatus      = 0xC000021D\n\tSTATUS_DRIVER_CANCEL_TIMEOUT                                              NTStatus      = 0xC000021E\n\tSTATUS_REPLY_MESSAGE_MISMATCH                                             NTStatus      = 0xC000021F\n\tSTATUS_MAPPED_ALIGNMENT                                                   NTStatus      = 0xC0000220\n\tSTATUS_IMAGE_CHECKSUM_MISMATCH                                            NTStatus      = 0xC0000221\n\tSTATUS_LOST_WRITEBEHIND_DATA                                              NTStatus      = 0xC0000222\n\tSTATUS_CLIENT_SERVER_PARAMETERS_INVALID                                   NTStatus      = 0xC0000223\n\tSTATUS_PASSWORD_MUST_CHANGE                                               NTStatus      = 0xC0000224\n\tSTATUS_NOT_FOUND                                                          NTStatus      = 0xC0000225\n\tSTATUS_NOT_TINY_STREAM                                                    NTStatus      = 0xC0000226\n\tSTATUS_RECOVERY_FAILURE                                                   NTStatus      = 0xC0000227\n\tSTATUS_STACK_OVERFLOW_READ                                                NTStatus      = 0xC0000228\n\tSTATUS_FAIL_CHECK                                                         NTStatus      = 0xC0000229\n\tSTATUS_DUPLICATE_OBJECTID                                                 NTStatus      = 0xC000022A\n\tSTATUS_OBJECTID_EXISTS                                                    NTStatus      = 0xC000022B\n\tSTATUS_CONVERT_TO_LARGE                                                   NTStatus      = 0xC000022C\n\tSTATUS_RETRY                                                              NTStatus      = 0xC000022D\n\tSTATUS_FOUND_OUT_OF_SCOPE                                                 NTStatus      = 0xC000022E\n\tSTATUS_ALLOCATE_BUCKET                                                    NTStatus      = 0xC000022F\n\tSTATUS_PROPSET_NOT_FOUND                                                  NTStatus      = 0xC0000230\n\tSTATUS_MARSHALL_OVERFLOW                                                  NTStatus      = 0xC0000231\n\tSTATUS_INVALID_VARIANT                                                    NTStatus      = 0xC0000232\n\tSTATUS_DOMAIN_CONTROLLER_NOT_FOUND                                        NTStatus      = 0xC0000233\n\tSTATUS_ACCOUNT_LOCKED_OUT                                                 NTStatus      = 0xC0000234\n\tSTATUS_HANDLE_NOT_CLOSABLE                                                NTStatus      = 0xC0000235\n\tSTATUS_CONNECTION_REFUSED                                                 NTStatus      = 0xC0000236\n\tSTATUS_GRACEFUL_DISCONNECT                                                NTStatus      = 0xC0000237\n\tSTATUS_ADDRESS_ALREADY_ASSOCIATED                                         NTStatus      = 0xC0000238\n\tSTATUS_ADDRESS_NOT_ASSOCIATED                                             NTStatus      = 0xC0000239\n\tSTATUS_CONNECTION_INVALID                                                 NTStatus      = 0xC000023A\n\tSTATUS_CONNECTION_ACTIVE                                                  NTStatus      = 0xC000023B\n\tSTATUS_NETWORK_UNREACHABLE                                                NTStatus      = 0xC000023C\n\tSTATUS_HOST_UNREACHABLE                                                   NTStatus      = 0xC000023D\n\tSTATUS_PROTOCOL_UNREACHABLE                                               NTStatus      = 0xC000023E\n\tSTATUS_PORT_UNREACHABLE                                                   NTStatus      = 0xC000023F\n\tSTATUS_REQUEST_ABORTED                                                    NTStatus      = 0xC0000240\n\tSTATUS_CONNECTION_ABORTED                                                 NTStatus      = 0xC0000241\n\tSTATUS_BAD_COMPRESSION_BUFFER                                             NTStatus      = 0xC0000242\n\tSTATUS_USER_MAPPED_FILE                                                   NTStatus      = 0xC0000243\n\tSTATUS_AUDIT_FAILED                                                       NTStatus      = 0xC0000244\n\tSTATUS_TIMER_RESOLUTION_NOT_SET                                           NTStatus      = 0xC0000245\n\tSTATUS_CONNECTION_COUNT_LIMIT                                             NTStatus      = 0xC0000246\n\tSTATUS_LOGIN_TIME_RESTRICTION                                             NTStatus      = 0xC0000247\n\tSTATUS_LOGIN_WKSTA_RESTRICTION                                            NTStatus      = 0xC0000248\n\tSTATUS_IMAGE_MP_UP_MISMATCH                                               NTStatus      = 0xC0000249\n\tSTATUS_INSUFFICIENT_LOGON_INFO                                            NTStatus      = 0xC0000250\n\tSTATUS_BAD_DLL_ENTRYPOINT                                                 NTStatus      = 0xC0000251\n\tSTATUS_BAD_SERVICE_ENTRYPOINT                                             NTStatus      = 0xC0000252\n\tSTATUS_LPC_REPLY_LOST                                                     NTStatus      = 0xC0000253\n\tSTATUS_IP_ADDRESS_CONFLICT1                                               NTStatus      = 0xC0000254\n\tSTATUS_IP_ADDRESS_CONFLICT2                                               NTStatus      = 0xC0000255\n\tSTATUS_REGISTRY_QUOTA_LIMIT                                               NTStatus      = 0xC0000256\n\tSTATUS_PATH_NOT_COVERED                                                   NTStatus      = 0xC0000257\n\tSTATUS_NO_CALLBACK_ACTIVE                                                 NTStatus      = 0xC0000258\n\tSTATUS_LICENSE_QUOTA_EXCEEDED                                             NTStatus      = 0xC0000259\n\tSTATUS_PWD_TOO_SHORT                                                      NTStatus      = 0xC000025A\n\tSTATUS_PWD_TOO_RECENT                                                     NTStatus      = 0xC000025B\n\tSTATUS_PWD_HISTORY_CONFLICT                                               NTStatus      = 0xC000025C\n\tSTATUS_PLUGPLAY_NO_DEVICE                                                 NTStatus      = 0xC000025E\n\tSTATUS_UNSUPPORTED_COMPRESSION                                            NTStatus      = 0xC000025F\n\tSTATUS_INVALID_HW_PROFILE                                                 NTStatus      = 0xC0000260\n\tSTATUS_INVALID_PLUGPLAY_DEVICE_PATH                                       NTStatus      = 0xC0000261\n\tSTATUS_DRIVER_ORDINAL_NOT_FOUND                                           NTStatus      = 0xC0000262\n\tSTATUS_DRIVER_ENTRYPOINT_NOT_FOUND                                        NTStatus      = 0xC0000263\n\tSTATUS_RESOURCE_NOT_OWNED                                                 NTStatus      = 0xC0000264\n\tSTATUS_TOO_MANY_LINKS                                                     NTStatus      = 0xC0000265\n\tSTATUS_QUOTA_LIST_INCONSISTENT                                            NTStatus      = 0xC0000266\n\tSTATUS_FILE_IS_OFFLINE                                                    NTStatus      = 0xC0000267\n\tSTATUS_EVALUATION_EXPIRATION                                              NTStatus      = 0xC0000268\n\tSTATUS_ILLEGAL_DLL_RELOCATION                                             NTStatus      = 0xC0000269\n\tSTATUS_LICENSE_VIOLATION                                                  NTStatus      = 0xC000026A\n\tSTATUS_DLL_INIT_FAILED_LOGOFF                                             NTStatus      = 0xC000026B\n\tSTATUS_DRIVER_UNABLE_TO_LOAD                                              NTStatus      = 0xC000026C\n\tSTATUS_DFS_UNAVAILABLE                                                    NTStatus      = 0xC000026D\n\tSTATUS_VOLUME_DISMOUNTED                                                  NTStatus      = 0xC000026E\n\tSTATUS_WX86_INTERNAL_ERROR                                                NTStatus      = 0xC000026F\n\tSTATUS_WX86_FLOAT_STACK_CHECK                                             NTStatus      = 0xC0000270\n\tSTATUS_VALIDATE_CONTINUE                                                  NTStatus      = 0xC0000271\n\tSTATUS_NO_MATCH                                                           NTStatus      = 0xC0000272\n\tSTATUS_NO_MORE_MATCHES                                                    NTStatus      = 0xC0000273\n\tSTATUS_NOT_A_REPARSE_POINT                                                NTStatus      = 0xC0000275\n\tSTATUS_IO_REPARSE_TAG_INVALID                                             NTStatus      = 0xC0000276\n\tSTATUS_IO_REPARSE_TAG_MISMATCH                                            NTStatus      = 0xC0000277\n\tSTATUS_IO_REPARSE_DATA_INVALID                                            NTStatus      = 0xC0000278\n\tSTATUS_IO_REPARSE_TAG_NOT_HANDLED                                         NTStatus      = 0xC0000279\n\tSTATUS_PWD_TOO_LONG                                                       NTStatus      = 0xC000027A\n\tSTATUS_STOWED_EXCEPTION                                                   NTStatus      = 0xC000027B\n\tSTATUS_CONTEXT_STOWED_EXCEPTION                                           NTStatus      = 0xC000027C\n\tSTATUS_REPARSE_POINT_NOT_RESOLVED                                         NTStatus      = 0xC0000280\n\tSTATUS_DIRECTORY_IS_A_REPARSE_POINT                                       NTStatus      = 0xC0000281\n\tSTATUS_RANGE_LIST_CONFLICT                                                NTStatus      = 0xC0000282\n\tSTATUS_SOURCE_ELEMENT_EMPTY                                               NTStatus      = 0xC0000283\n\tSTATUS_DESTINATION_ELEMENT_FULL                                           NTStatus      = 0xC0000284\n\tSTATUS_ILLEGAL_ELEMENT_ADDRESS                                            NTStatus      = 0xC0000285\n\tSTATUS_MAGAZINE_NOT_PRESENT                                               NTStatus      = 0xC0000286\n\tSTATUS_REINITIALIZATION_NEEDED                                            NTStatus      = 0xC0000287\n\tSTATUS_DEVICE_REQUIRES_CLEANING                                           NTStatus      = 0x80000288\n\tSTATUS_DEVICE_DOOR_OPEN                                                   NTStatus      = 0x80000289\n\tSTATUS_ENCRYPTION_FAILED                                                  NTStatus      = 0xC000028A\n\tSTATUS_DECRYPTION_FAILED                                                  NTStatus      = 0xC000028B\n\tSTATUS_RANGE_NOT_FOUND                                                    NTStatus      = 0xC000028C\n\tSTATUS_NO_RECOVERY_POLICY                                                 NTStatus      = 0xC000028D\n\tSTATUS_NO_EFS                                                             NTStatus      = 0xC000028E\n\tSTATUS_WRONG_EFS                                                          NTStatus      = 0xC000028F\n\tSTATUS_NO_USER_KEYS                                                       NTStatus      = 0xC0000290\n\tSTATUS_FILE_NOT_ENCRYPTED                                                 NTStatus      = 0xC0000291\n\tSTATUS_NOT_EXPORT_FORMAT                                                  NTStatus      = 0xC0000292\n\tSTATUS_FILE_ENCRYPTED                                                     NTStatus      = 0xC0000293\n\tSTATUS_WAKE_SYSTEM                                                        NTStatus      = 0x40000294\n\tSTATUS_WMI_GUID_NOT_FOUND                                                 NTStatus      = 0xC0000295\n\tSTATUS_WMI_INSTANCE_NOT_FOUND                                             NTStatus      = 0xC0000296\n\tSTATUS_WMI_ITEMID_NOT_FOUND                                               NTStatus      = 0xC0000297\n\tSTATUS_WMI_TRY_AGAIN                                                      NTStatus      = 0xC0000298\n\tSTATUS_SHARED_POLICY                                                      NTStatus      = 0xC0000299\n\tSTATUS_POLICY_OBJECT_NOT_FOUND                                            NTStatus      = 0xC000029A\n\tSTATUS_POLICY_ONLY_IN_DS                                                  NTStatus      = 0xC000029B\n\tSTATUS_VOLUME_NOT_UPGRADED                                                NTStatus      = 0xC000029C\n\tSTATUS_REMOTE_STORAGE_NOT_ACTIVE                                          NTStatus      = 0xC000029D\n\tSTATUS_REMOTE_STORAGE_MEDIA_ERROR                                         NTStatus      = 0xC000029E\n\tSTATUS_NO_TRACKING_SERVICE                                                NTStatus      = 0xC000029F\n\tSTATUS_SERVER_SID_MISMATCH                                                NTStatus      = 0xC00002A0\n\tSTATUS_DS_NO_ATTRIBUTE_OR_VALUE                                           NTStatus      = 0xC00002A1\n\tSTATUS_DS_INVALID_ATTRIBUTE_SYNTAX                                        NTStatus      = 0xC00002A2\n\tSTATUS_DS_ATTRIBUTE_TYPE_UNDEFINED                                        NTStatus      = 0xC00002A3\n\tSTATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS                                       NTStatus      = 0xC00002A4\n\tSTATUS_DS_BUSY                                                            NTStatus      = 0xC00002A5\n\tSTATUS_DS_UNAVAILABLE                                                     NTStatus      = 0xC00002A6\n\tSTATUS_DS_NO_RIDS_ALLOCATED                                               NTStatus      = 0xC00002A7\n\tSTATUS_DS_NO_MORE_RIDS                                                    NTStatus      = 0xC00002A8\n\tSTATUS_DS_INCORRECT_ROLE_OWNER                                            NTStatus      = 0xC00002A9\n\tSTATUS_DS_RIDMGR_INIT_ERROR                                               NTStatus      = 0xC00002AA\n\tSTATUS_DS_OBJ_CLASS_VIOLATION                                             NTStatus      = 0xC00002AB\n\tSTATUS_DS_CANT_ON_NON_LEAF                                                NTStatus      = 0xC00002AC\n\tSTATUS_DS_CANT_ON_RDN                                                     NTStatus      = 0xC00002AD\n\tSTATUS_DS_CANT_MOD_OBJ_CLASS                                              NTStatus      = 0xC00002AE\n\tSTATUS_DS_CROSS_DOM_MOVE_FAILED                                           NTStatus      = 0xC00002AF\n\tSTATUS_DS_GC_NOT_AVAILABLE                                                NTStatus      = 0xC00002B0\n\tSTATUS_DIRECTORY_SERVICE_REQUIRED                                         NTStatus      = 0xC00002B1\n\tSTATUS_REPARSE_ATTRIBUTE_CONFLICT                                         NTStatus      = 0xC00002B2\n\tSTATUS_CANT_ENABLE_DENY_ONLY                                              NTStatus      = 0xC00002B3\n\tSTATUS_FLOAT_MULTIPLE_FAULTS                                              NTStatus      = 0xC00002B4\n\tSTATUS_FLOAT_MULTIPLE_TRAPS                                               NTStatus      = 0xC00002B5\n\tSTATUS_DEVICE_REMOVED                                                     NTStatus      = 0xC00002B6\n\tSTATUS_JOURNAL_DELETE_IN_PROGRESS                                         NTStatus      = 0xC00002B7\n\tSTATUS_JOURNAL_NOT_ACTIVE                                                 NTStatus      = 0xC00002B8\n\tSTATUS_NOINTERFACE                                                        NTStatus      = 0xC00002B9\n\tSTATUS_DS_RIDMGR_DISABLED                                                 NTStatus      = 0xC00002BA\n\tSTATUS_DS_ADMIN_LIMIT_EXCEEDED                                            NTStatus      = 0xC00002C1\n\tSTATUS_DRIVER_FAILED_SLEEP                                                NTStatus      = 0xC00002C2\n\tSTATUS_MUTUAL_AUTHENTICATION_FAILED                                       NTStatus      = 0xC00002C3\n\tSTATUS_CORRUPT_SYSTEM_FILE                                                NTStatus      = 0xC00002C4\n\tSTATUS_DATATYPE_MISALIGNMENT_ERROR                                        NTStatus      = 0xC00002C5\n\tSTATUS_WMI_READ_ONLY                                                      NTStatus      = 0xC00002C6\n\tSTATUS_WMI_SET_FAILURE                                                    NTStatus      = 0xC00002C7\n\tSTATUS_COMMITMENT_MINIMUM                                                 NTStatus      = 0xC00002C8\n\tSTATUS_REG_NAT_CONSUMPTION                                                NTStatus      = 0xC00002C9\n\tSTATUS_TRANSPORT_FULL                                                     NTStatus      = 0xC00002CA\n\tSTATUS_DS_SAM_INIT_FAILURE                                                NTStatus      = 0xC00002CB\n\tSTATUS_ONLY_IF_CONNECTED                                                  NTStatus      = 0xC00002CC\n\tSTATUS_DS_SENSITIVE_GROUP_VIOLATION                                       NTStatus      = 0xC00002CD\n\tSTATUS_PNP_RESTART_ENUMERATION                                            NTStatus      = 0xC00002CE\n\tSTATUS_JOURNAL_ENTRY_DELETED                                              NTStatus      = 0xC00002CF\n\tSTATUS_DS_CANT_MOD_PRIMARYGROUPID                                         NTStatus      = 0xC00002D0\n\tSTATUS_SYSTEM_IMAGE_BAD_SIGNATURE                                         NTStatus      = 0xC00002D1\n\tSTATUS_PNP_REBOOT_REQUIRED                                                NTStatus      = 0xC00002D2\n\tSTATUS_POWER_STATE_INVALID                                                NTStatus      = 0xC00002D3\n\tSTATUS_DS_INVALID_GROUP_TYPE                                              NTStatus      = 0xC00002D4\n\tSTATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN                              NTStatus      = 0xC00002D5\n\tSTATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN                               NTStatus      = 0xC00002D6\n\tSTATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER                                   NTStatus      = 0xC00002D7\n\tSTATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER                               NTStatus      = 0xC00002D8\n\tSTATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER                                NTStatus      = 0xC00002D9\n\tSTATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER                             NTStatus      = 0xC00002DA\n\tSTATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER                        NTStatus      = 0xC00002DB\n\tSTATUS_DS_HAVE_PRIMARY_MEMBERS                                            NTStatus      = 0xC00002DC\n\tSTATUS_WMI_NOT_SUPPORTED                                                  NTStatus      = 0xC00002DD\n\tSTATUS_INSUFFICIENT_POWER                                                 NTStatus      = 0xC00002DE\n\tSTATUS_SAM_NEED_BOOTKEY_PASSWORD                                          NTStatus      = 0xC00002DF\n\tSTATUS_SAM_NEED_BOOTKEY_FLOPPY                                            NTStatus      = 0xC00002E0\n\tSTATUS_DS_CANT_START                                                      NTStatus      = 0xC00002E1\n\tSTATUS_DS_INIT_FAILURE                                                    NTStatus      = 0xC00002E2\n\tSTATUS_SAM_INIT_FAILURE                                                   NTStatus      = 0xC00002E3\n\tSTATUS_DS_GC_REQUIRED                                                     NTStatus      = 0xC00002E4\n\tSTATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY                                      NTStatus      = 0xC00002E5\n\tSTATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS                                      NTStatus      = 0xC00002E6\n\tSTATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED                                  NTStatus      = 0xC00002E7\n\tSTATUS_MULTIPLE_FAULT_VIOLATION                                           NTStatus      = 0xC00002E8\n\tSTATUS_CURRENT_DOMAIN_NOT_ALLOWED                                         NTStatus      = 0xC00002E9\n\tSTATUS_CANNOT_MAKE                                                        NTStatus      = 0xC00002EA\n\tSTATUS_SYSTEM_SHUTDOWN                                                    NTStatus      = 0xC00002EB\n\tSTATUS_DS_INIT_FAILURE_CONSOLE                                            NTStatus      = 0xC00002EC\n\tSTATUS_DS_SAM_INIT_FAILURE_CONSOLE                                        NTStatus      = 0xC00002ED\n\tSTATUS_UNFINISHED_CONTEXT_DELETED                                         NTStatus      = 0xC00002EE\n\tSTATUS_NO_TGT_REPLY                                                       NTStatus      = 0xC00002EF\n\tSTATUS_OBJECTID_NOT_FOUND                                                 NTStatus      = 0xC00002F0\n\tSTATUS_NO_IP_ADDRESSES                                                    NTStatus      = 0xC00002F1\n\tSTATUS_WRONG_CREDENTIAL_HANDLE                                            NTStatus      = 0xC00002F2\n\tSTATUS_CRYPTO_SYSTEM_INVALID                                              NTStatus      = 0xC00002F3\n\tSTATUS_MAX_REFERRALS_EXCEEDED                                             NTStatus      = 0xC00002F4\n\tSTATUS_MUST_BE_KDC                                                        NTStatus      = 0xC00002F5\n\tSTATUS_STRONG_CRYPTO_NOT_SUPPORTED                                        NTStatus      = 0xC00002F6\n\tSTATUS_TOO_MANY_PRINCIPALS                                                NTStatus      = 0xC00002F7\n\tSTATUS_NO_PA_DATA                                                         NTStatus      = 0xC00002F8\n\tSTATUS_PKINIT_NAME_MISMATCH                                               NTStatus      = 0xC00002F9\n\tSTATUS_SMARTCARD_LOGON_REQUIRED                                           NTStatus      = 0xC00002FA\n\tSTATUS_KDC_INVALID_REQUEST                                                NTStatus      = 0xC00002FB\n\tSTATUS_KDC_UNABLE_TO_REFER                                                NTStatus      = 0xC00002FC\n\tSTATUS_KDC_UNKNOWN_ETYPE                                                  NTStatus      = 0xC00002FD\n\tSTATUS_SHUTDOWN_IN_PROGRESS                                               NTStatus      = 0xC00002FE\n\tSTATUS_SERVER_SHUTDOWN_IN_PROGRESS                                        NTStatus      = 0xC00002FF\n\tSTATUS_NOT_SUPPORTED_ON_SBS                                               NTStatus      = 0xC0000300\n\tSTATUS_WMI_GUID_DISCONNECTED                                              NTStatus      = 0xC0000301\n\tSTATUS_WMI_ALREADY_DISABLED                                               NTStatus      = 0xC0000302\n\tSTATUS_WMI_ALREADY_ENABLED                                                NTStatus      = 0xC0000303\n\tSTATUS_MFT_TOO_FRAGMENTED                                                 NTStatus      = 0xC0000304\n\tSTATUS_COPY_PROTECTION_FAILURE                                            NTStatus      = 0xC0000305\n\tSTATUS_CSS_AUTHENTICATION_FAILURE                                         NTStatus      = 0xC0000306\n\tSTATUS_CSS_KEY_NOT_PRESENT                                                NTStatus      = 0xC0000307\n\tSTATUS_CSS_KEY_NOT_ESTABLISHED                                            NTStatus      = 0xC0000308\n\tSTATUS_CSS_SCRAMBLED_SECTOR                                               NTStatus      = 0xC0000309\n\tSTATUS_CSS_REGION_MISMATCH                                                NTStatus      = 0xC000030A\n\tSTATUS_CSS_RESETS_EXHAUSTED                                               NTStatus      = 0xC000030B\n\tSTATUS_PASSWORD_CHANGE_REQUIRED                                           NTStatus      = 0xC000030C\n\tSTATUS_LOST_MODE_LOGON_RESTRICTION                                        NTStatus      = 0xC000030D\n\tSTATUS_PKINIT_FAILURE                                                     NTStatus      = 0xC0000320\n\tSTATUS_SMARTCARD_SUBSYSTEM_FAILURE                                        NTStatus      = 0xC0000321\n\tSTATUS_NO_KERB_KEY                                                        NTStatus      = 0xC0000322\n\tSTATUS_HOST_DOWN                                                          NTStatus      = 0xC0000350\n\tSTATUS_UNSUPPORTED_PREAUTH                                                NTStatus      = 0xC0000351\n\tSTATUS_EFS_ALG_BLOB_TOO_BIG                                               NTStatus      = 0xC0000352\n\tSTATUS_PORT_NOT_SET                                                       NTStatus      = 0xC0000353\n\tSTATUS_DEBUGGER_INACTIVE                                                  NTStatus      = 0xC0000354\n\tSTATUS_DS_VERSION_CHECK_FAILURE                                           NTStatus      = 0xC0000355\n\tSTATUS_AUDITING_DISABLED                                                  NTStatus      = 0xC0000356\n\tSTATUS_PRENT4_MACHINE_ACCOUNT                                             NTStatus      = 0xC0000357\n\tSTATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER                                   NTStatus      = 0xC0000358\n\tSTATUS_INVALID_IMAGE_WIN_32                                               NTStatus      = 0xC0000359\n\tSTATUS_INVALID_IMAGE_WIN_64                                               NTStatus      = 0xC000035A\n\tSTATUS_BAD_BINDINGS                                                       NTStatus      = 0xC000035B\n\tSTATUS_NETWORK_SESSION_EXPIRED                                            NTStatus      = 0xC000035C\n\tSTATUS_APPHELP_BLOCK                                                      NTStatus      = 0xC000035D\n\tSTATUS_ALL_SIDS_FILTERED                                                  NTStatus      = 0xC000035E\n\tSTATUS_NOT_SAFE_MODE_DRIVER                                               NTStatus      = 0xC000035F\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT                                  NTStatus      = 0xC0000361\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_PATH                                     NTStatus      = 0xC0000362\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER                                NTStatus      = 0xC0000363\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_OTHER                                    NTStatus      = 0xC0000364\n\tSTATUS_FAILED_DRIVER_ENTRY                                                NTStatus      = 0xC0000365\n\tSTATUS_DEVICE_ENUMERATION_ERROR                                           NTStatus      = 0xC0000366\n\tSTATUS_MOUNT_POINT_NOT_RESOLVED                                           NTStatus      = 0xC0000368\n\tSTATUS_INVALID_DEVICE_OBJECT_PARAMETER                                    NTStatus      = 0xC0000369\n\tSTATUS_MCA_OCCURED                                                        NTStatus      = 0xC000036A\n\tSTATUS_DRIVER_BLOCKED_CRITICAL                                            NTStatus      = 0xC000036B\n\tSTATUS_DRIVER_BLOCKED                                                     NTStatus      = 0xC000036C\n\tSTATUS_DRIVER_DATABASE_ERROR                                              NTStatus      = 0xC000036D\n\tSTATUS_SYSTEM_HIVE_TOO_LARGE                                              NTStatus      = 0xC000036E\n\tSTATUS_INVALID_IMPORT_OF_NON_DLL                                          NTStatus      = 0xC000036F\n\tSTATUS_DS_SHUTTING_DOWN                                                   NTStatus      = 0x40000370\n\tSTATUS_NO_SECRETS                                                         NTStatus      = 0xC0000371\n\tSTATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY                              NTStatus      = 0xC0000372\n\tSTATUS_FAILED_STACK_SWITCH                                                NTStatus      = 0xC0000373\n\tSTATUS_HEAP_CORRUPTION                                                    NTStatus      = 0xC0000374\n\tSTATUS_SMARTCARD_WRONG_PIN                                                NTStatus      = 0xC0000380\n\tSTATUS_SMARTCARD_CARD_BLOCKED                                             NTStatus      = 0xC0000381\n\tSTATUS_SMARTCARD_CARD_NOT_AUTHENTICATED                                   NTStatus      = 0xC0000382\n\tSTATUS_SMARTCARD_NO_CARD                                                  NTStatus      = 0xC0000383\n\tSTATUS_SMARTCARD_NO_KEY_CONTAINER                                         NTStatus      = 0xC0000384\n\tSTATUS_SMARTCARD_NO_CERTIFICATE                                           NTStatus      = 0xC0000385\n\tSTATUS_SMARTCARD_NO_KEYSET                                                NTStatus      = 0xC0000386\n\tSTATUS_SMARTCARD_IO_ERROR                                                 NTStatus      = 0xC0000387\n\tSTATUS_DOWNGRADE_DETECTED                                                 NTStatus      = 0xC0000388\n\tSTATUS_SMARTCARD_CERT_REVOKED                                             NTStatus      = 0xC0000389\n\tSTATUS_ISSUING_CA_UNTRUSTED                                               NTStatus      = 0xC000038A\n\tSTATUS_REVOCATION_OFFLINE_C                                               NTStatus      = 0xC000038B\n\tSTATUS_PKINIT_CLIENT_FAILURE                                              NTStatus      = 0xC000038C\n\tSTATUS_SMARTCARD_CERT_EXPIRED                                             NTStatus      = 0xC000038D\n\tSTATUS_DRIVER_FAILED_PRIOR_UNLOAD                                         NTStatus      = 0xC000038E\n\tSTATUS_SMARTCARD_SILENT_CONTEXT                                           NTStatus      = 0xC000038F\n\tSTATUS_PER_USER_TRUST_QUOTA_EXCEEDED                                      NTStatus      = 0xC0000401\n\tSTATUS_ALL_USER_TRUST_QUOTA_EXCEEDED                                      NTStatus      = 0xC0000402\n\tSTATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED                                   NTStatus      = 0xC0000403\n\tSTATUS_DS_NAME_NOT_UNIQUE                                                 NTStatus      = 0xC0000404\n\tSTATUS_DS_DUPLICATE_ID_FOUND                                              NTStatus      = 0xC0000405\n\tSTATUS_DS_GROUP_CONVERSION_ERROR                                          NTStatus      = 0xC0000406\n\tSTATUS_VOLSNAP_PREPARE_HIBERNATE                                          NTStatus      = 0xC0000407\n\tSTATUS_USER2USER_REQUIRED                                                 NTStatus      = 0xC0000408\n\tSTATUS_STACK_BUFFER_OVERRUN                                               NTStatus      = 0xC0000409\n\tSTATUS_NO_S4U_PROT_SUPPORT                                                NTStatus      = 0xC000040A\n\tSTATUS_CROSSREALM_DELEGATION_FAILURE                                      NTStatus      = 0xC000040B\n\tSTATUS_REVOCATION_OFFLINE_KDC                                             NTStatus      = 0xC000040C\n\tSTATUS_ISSUING_CA_UNTRUSTED_KDC                                           NTStatus      = 0xC000040D\n\tSTATUS_KDC_CERT_EXPIRED                                                   NTStatus      = 0xC000040E\n\tSTATUS_KDC_CERT_REVOKED                                                   NTStatus      = 0xC000040F\n\tSTATUS_PARAMETER_QUOTA_EXCEEDED                                           NTStatus      = 0xC0000410\n\tSTATUS_HIBERNATION_FAILURE                                                NTStatus      = 0xC0000411\n\tSTATUS_DELAY_LOAD_FAILED                                                  NTStatus      = 0xC0000412\n\tSTATUS_AUTHENTICATION_FIREWALL_FAILED                                     NTStatus      = 0xC0000413\n\tSTATUS_VDM_DISALLOWED                                                     NTStatus      = 0xC0000414\n\tSTATUS_HUNG_DISPLAY_DRIVER_THREAD                                         NTStatus      = 0xC0000415\n\tSTATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE            NTStatus      = 0xC0000416\n\tSTATUS_INVALID_CRUNTIME_PARAMETER                                         NTStatus      = 0xC0000417\n\tSTATUS_NTLM_BLOCKED                                                       NTStatus      = 0xC0000418\n\tSTATUS_DS_SRC_SID_EXISTS_IN_FOREST                                        NTStatus      = 0xC0000419\n\tSTATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST                                    NTStatus      = 0xC000041A\n\tSTATUS_DS_FLAT_NAME_EXISTS_IN_FOREST                                      NTStatus      = 0xC000041B\n\tSTATUS_INVALID_USER_PRINCIPAL_NAME                                        NTStatus      = 0xC000041C\n\tSTATUS_FATAL_USER_CALLBACK_EXCEPTION                                      NTStatus      = 0xC000041D\n\tSTATUS_ASSERTION_FAILURE                                                  NTStatus      = 0xC0000420\n\tSTATUS_VERIFIER_STOP                                                      NTStatus      = 0xC0000421\n\tSTATUS_CALLBACK_POP_STACK                                                 NTStatus      = 0xC0000423\n\tSTATUS_INCOMPATIBLE_DRIVER_BLOCKED                                        NTStatus      = 0xC0000424\n\tSTATUS_HIVE_UNLOADED                                                      NTStatus      = 0xC0000425\n\tSTATUS_COMPRESSION_DISABLED                                               NTStatus      = 0xC0000426\n\tSTATUS_FILE_SYSTEM_LIMITATION                                             NTStatus      = 0xC0000427\n\tSTATUS_INVALID_IMAGE_HASH                                                 NTStatus      = 0xC0000428\n\tSTATUS_NOT_CAPABLE                                                        NTStatus      = 0xC0000429\n\tSTATUS_REQUEST_OUT_OF_SEQUENCE                                            NTStatus      = 0xC000042A\n\tSTATUS_IMPLEMENTATION_LIMIT                                               NTStatus      = 0xC000042B\n\tSTATUS_ELEVATION_REQUIRED                                                 NTStatus      = 0xC000042C\n\tSTATUS_NO_SECURITY_CONTEXT                                                NTStatus      = 0xC000042D\n\tSTATUS_PKU2U_CERT_FAILURE                                                 NTStatus      = 0xC000042F\n\tSTATUS_BEYOND_VDL                                                         NTStatus      = 0xC0000432\n\tSTATUS_ENCOUNTERED_WRITE_IN_PROGRESS                                      NTStatus      = 0xC0000433\n\tSTATUS_PTE_CHANGED                                                        NTStatus      = 0xC0000434\n\tSTATUS_PURGE_FAILED                                                       NTStatus      = 0xC0000435\n\tSTATUS_CRED_REQUIRES_CONFIRMATION                                         NTStatus      = 0xC0000440\n\tSTATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE                              NTStatus      = 0xC0000441\n\tSTATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER                                   NTStatus      = 0xC0000442\n\tSTATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE                              NTStatus      = 0xC0000443\n\tSTATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE                                   NTStatus      = 0xC0000444\n\tSTATUS_CS_ENCRYPTION_FILE_NOT_CSE                                         NTStatus      = 0xC0000445\n\tSTATUS_INVALID_LABEL                                                      NTStatus      = 0xC0000446\n\tSTATUS_DRIVER_PROCESS_TERMINATED                                          NTStatus      = 0xC0000450\n\tSTATUS_AMBIGUOUS_SYSTEM_DEVICE                                            NTStatus      = 0xC0000451\n\tSTATUS_SYSTEM_DEVICE_NOT_FOUND                                            NTStatus      = 0xC0000452\n\tSTATUS_RESTART_BOOT_APPLICATION                                           NTStatus      = 0xC0000453\n\tSTATUS_INSUFFICIENT_NVRAM_RESOURCES                                       NTStatus      = 0xC0000454\n\tSTATUS_INVALID_SESSION                                                    NTStatus      = 0xC0000455\n\tSTATUS_THREAD_ALREADY_IN_SESSION                                          NTStatus      = 0xC0000456\n\tSTATUS_THREAD_NOT_IN_SESSION                                              NTStatus      = 0xC0000457\n\tSTATUS_INVALID_WEIGHT                                                     NTStatus      = 0xC0000458\n\tSTATUS_REQUEST_PAUSED                                                     NTStatus      = 0xC0000459\n\tSTATUS_NO_RANGES_PROCESSED                                                NTStatus      = 0xC0000460\n\tSTATUS_DISK_RESOURCES_EXHAUSTED                                           NTStatus      = 0xC0000461\n\tSTATUS_NEEDS_REMEDIATION                                                  NTStatus      = 0xC0000462\n\tSTATUS_DEVICE_FEATURE_NOT_SUPPORTED                                       NTStatus      = 0xC0000463\n\tSTATUS_DEVICE_UNREACHABLE                                                 NTStatus      = 0xC0000464\n\tSTATUS_INVALID_TOKEN                                                      NTStatus      = 0xC0000465\n\tSTATUS_SERVER_UNAVAILABLE                                                 NTStatus      = 0xC0000466\n\tSTATUS_FILE_NOT_AVAILABLE                                                 NTStatus      = 0xC0000467\n\tSTATUS_DEVICE_INSUFFICIENT_RESOURCES                                      NTStatus      = 0xC0000468\n\tSTATUS_PACKAGE_UPDATING                                                   NTStatus      = 0xC0000469\n\tSTATUS_NOT_READ_FROM_COPY                                                 NTStatus      = 0xC000046A\n\tSTATUS_FT_WRITE_FAILURE                                                   NTStatus      = 0xC000046B\n\tSTATUS_FT_DI_SCAN_REQUIRED                                                NTStatus      = 0xC000046C\n\tSTATUS_OBJECT_NOT_EXTERNALLY_BACKED                                       NTStatus      = 0xC000046D\n\tSTATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN                                  NTStatus      = 0xC000046E\n\tSTATUS_COMPRESSION_NOT_BENEFICIAL                                         NTStatus      = 0xC000046F\n\tSTATUS_DATA_CHECKSUM_ERROR                                                NTStatus      = 0xC0000470\n\tSTATUS_INTERMIXED_KERNEL_EA_OPERATION                                     NTStatus      = 0xC0000471\n\tSTATUS_TRIM_READ_ZERO_NOT_SUPPORTED                                       NTStatus      = 0xC0000472\n\tSTATUS_TOO_MANY_SEGMENT_DESCRIPTORS                                       NTStatus      = 0xC0000473\n\tSTATUS_INVALID_OFFSET_ALIGNMENT                                           NTStatus      = 0xC0000474\n\tSTATUS_INVALID_FIELD_IN_PARAMETER_LIST                                    NTStatus      = 0xC0000475\n\tSTATUS_OPERATION_IN_PROGRESS                                              NTStatus      = 0xC0000476\n\tSTATUS_INVALID_INITIATOR_TARGET_PATH                                      NTStatus      = 0xC0000477\n\tSTATUS_SCRUB_DATA_DISABLED                                                NTStatus      = 0xC0000478\n\tSTATUS_NOT_REDUNDANT_STORAGE                                              NTStatus      = 0xC0000479\n\tSTATUS_RESIDENT_FILE_NOT_SUPPORTED                                        NTStatus      = 0xC000047A\n\tSTATUS_COMPRESSED_FILE_NOT_SUPPORTED                                      NTStatus      = 0xC000047B\n\tSTATUS_DIRECTORY_NOT_SUPPORTED                                            NTStatus      = 0xC000047C\n\tSTATUS_IO_OPERATION_TIMEOUT                                               NTStatus      = 0xC000047D\n\tSTATUS_SYSTEM_NEEDS_REMEDIATION                                           NTStatus      = 0xC000047E\n\tSTATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN                                    NTStatus      = 0xC000047F\n\tSTATUS_SHARE_UNAVAILABLE                                                  NTStatus      = 0xC0000480\n\tSTATUS_APISET_NOT_HOSTED                                                  NTStatus      = 0xC0000481\n\tSTATUS_APISET_NOT_PRESENT                                                 NTStatus      = 0xC0000482\n\tSTATUS_DEVICE_HARDWARE_ERROR                                              NTStatus      = 0xC0000483\n\tSTATUS_FIRMWARE_SLOT_INVALID                                              NTStatus      = 0xC0000484\n\tSTATUS_FIRMWARE_IMAGE_INVALID                                             NTStatus      = 0xC0000485\n\tSTATUS_STORAGE_TOPOLOGY_ID_MISMATCH                                       NTStatus      = 0xC0000486\n\tSTATUS_WIM_NOT_BOOTABLE                                                   NTStatus      = 0xC0000487\n\tSTATUS_BLOCKED_BY_PARENTAL_CONTROLS                                       NTStatus      = 0xC0000488\n\tSTATUS_NEEDS_REGISTRATION                                                 NTStatus      = 0xC0000489\n\tSTATUS_QUOTA_ACTIVITY                                                     NTStatus      = 0xC000048A\n\tSTATUS_CALLBACK_INVOKE_INLINE                                             NTStatus      = 0xC000048B\n\tSTATUS_BLOCK_TOO_MANY_REFERENCES                                          NTStatus      = 0xC000048C\n\tSTATUS_MARKED_TO_DISALLOW_WRITES                                          NTStatus      = 0xC000048D\n\tSTATUS_NETWORK_ACCESS_DENIED_EDP                                          NTStatus      = 0xC000048E\n\tSTATUS_ENCLAVE_FAILURE                                                    NTStatus      = 0xC000048F\n\tSTATUS_PNP_NO_COMPAT_DRIVERS                                              NTStatus      = 0xC0000490\n\tSTATUS_PNP_DRIVER_PACKAGE_NOT_FOUND                                       NTStatus      = 0xC0000491\n\tSTATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND                                 NTStatus      = 0xC0000492\n\tSTATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE                                NTStatus      = 0xC0000493\n\tSTATUS_PNP_FUNCTION_DRIVER_REQUIRED                                       NTStatus      = 0xC0000494\n\tSTATUS_PNP_DEVICE_CONFIGURATION_PENDING                                   NTStatus      = 0xC0000495\n\tSTATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL                                  NTStatus      = 0xC0000496\n\tSTATUS_PACKAGE_NOT_AVAILABLE                                              NTStatus      = 0xC0000497\n\tSTATUS_DEVICE_IN_MAINTENANCE                                              NTStatus      = 0xC0000499\n\tSTATUS_NOT_SUPPORTED_ON_DAX                                               NTStatus      = 0xC000049A\n\tSTATUS_FREE_SPACE_TOO_FRAGMENTED                                          NTStatus      = 0xC000049B\n\tSTATUS_DAX_MAPPING_EXISTS                                                 NTStatus      = 0xC000049C\n\tSTATUS_CHILD_PROCESS_BLOCKED                                              NTStatus      = 0xC000049D\n\tSTATUS_STORAGE_LOST_DATA_PERSISTENCE                                      NTStatus      = 0xC000049E\n\tSTATUS_VRF_CFG_ENABLED                                                    NTStatus      = 0xC000049F\n\tSTATUS_PARTITION_TERMINATING                                              NTStatus      = 0xC00004A0\n\tSTATUS_EXTERNAL_SYSKEY_NOT_SUPPORTED                                      NTStatus      = 0xC00004A1\n\tSTATUS_ENCLAVE_VIOLATION                                                  NTStatus      = 0xC00004A2\n\tSTATUS_FILE_PROTECTED_UNDER_DPL                                           NTStatus      = 0xC00004A3\n\tSTATUS_VOLUME_NOT_CLUSTER_ALIGNED                                         NTStatus      = 0xC00004A4\n\tSTATUS_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND                             NTStatus      = 0xC00004A5\n\tSTATUS_APPX_FILE_NOT_ENCRYPTED                                            NTStatus      = 0xC00004A6\n\tSTATUS_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED                                 NTStatus      = 0xC00004A7\n\tSTATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET                       NTStatus      = 0xC00004A8\n\tSTATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE                        NTStatus      = 0xC00004A9\n\tSTATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER                        NTStatus      = 0xC00004AA\n\tSTATUS_FT_READ_FAILURE                                                    NTStatus      = 0xC00004AB\n\tSTATUS_PATCH_CONFLICT                                                     NTStatus      = 0xC00004AC\n\tSTATUS_STORAGE_RESERVE_ID_INVALID                                         NTStatus      = 0xC00004AD\n\tSTATUS_STORAGE_RESERVE_DOES_NOT_EXIST                                     NTStatus      = 0xC00004AE\n\tSTATUS_STORAGE_RESERVE_ALREADY_EXISTS                                     NTStatus      = 0xC00004AF\n\tSTATUS_STORAGE_RESERVE_NOT_EMPTY                                          NTStatus      = 0xC00004B0\n\tSTATUS_NOT_A_DAX_VOLUME                                                   NTStatus      = 0xC00004B1\n\tSTATUS_NOT_DAX_MAPPABLE                                                   NTStatus      = 0xC00004B2\n\tSTATUS_CASE_DIFFERING_NAMES_IN_DIR                                        NTStatus      = 0xC00004B3\n\tSTATUS_FILE_NOT_SUPPORTED                                                 NTStatus      = 0xC00004B4\n\tSTATUS_NOT_SUPPORTED_WITH_BTT                                             NTStatus      = 0xC00004B5\n\tSTATUS_ENCRYPTION_DISABLED                                                NTStatus      = 0xC00004B6\n\tSTATUS_ENCRYPTING_METADATA_DISALLOWED                                     NTStatus      = 0xC00004B7\n\tSTATUS_CANT_CLEAR_ENCRYPTION_FLAG                                         NTStatus      = 0xC00004B8\n\tSTATUS_INVALID_TASK_NAME                                                  NTStatus      = 0xC0000500\n\tSTATUS_INVALID_TASK_INDEX                                                 NTStatus      = 0xC0000501\n\tSTATUS_THREAD_ALREADY_IN_TASK                                             NTStatus      = 0xC0000502\n\tSTATUS_CALLBACK_BYPASS                                                    NTStatus      = 0xC0000503\n\tSTATUS_UNDEFINED_SCOPE                                                    NTStatus      = 0xC0000504\n\tSTATUS_INVALID_CAP                                                        NTStatus      = 0xC0000505\n\tSTATUS_NOT_GUI_PROCESS                                                    NTStatus      = 0xC0000506\n\tSTATUS_DEVICE_HUNG                                                        NTStatus      = 0xC0000507\n\tSTATUS_CONTAINER_ASSIGNED                                                 NTStatus      = 0xC0000508\n\tSTATUS_JOB_NO_CONTAINER                                                   NTStatus      = 0xC0000509\n\tSTATUS_DEVICE_UNRESPONSIVE                                                NTStatus      = 0xC000050A\n\tSTATUS_REPARSE_POINT_ENCOUNTERED                                          NTStatus      = 0xC000050B\n\tSTATUS_ATTRIBUTE_NOT_PRESENT                                              NTStatus      = 0xC000050C\n\tSTATUS_NOT_A_TIERED_VOLUME                                                NTStatus      = 0xC000050D\n\tSTATUS_ALREADY_HAS_STREAM_ID                                              NTStatus      = 0xC000050E\n\tSTATUS_JOB_NOT_EMPTY                                                      NTStatus      = 0xC000050F\n\tSTATUS_ALREADY_INITIALIZED                                                NTStatus      = 0xC0000510\n\tSTATUS_ENCLAVE_NOT_TERMINATED                                             NTStatus      = 0xC0000511\n\tSTATUS_ENCLAVE_IS_TERMINATING                                             NTStatus      = 0xC0000512\n\tSTATUS_SMB1_NOT_AVAILABLE                                                 NTStatus      = 0xC0000513\n\tSTATUS_SMR_GARBAGE_COLLECTION_REQUIRED                                    NTStatus      = 0xC0000514\n\tSTATUS_INTERRUPTED                                                        NTStatus      = 0xC0000515\n\tSTATUS_THREAD_NOT_RUNNING                                                 NTStatus      = 0xC0000516\n\tSTATUS_FAIL_FAST_EXCEPTION                                                NTStatus      = 0xC0000602\n\tSTATUS_IMAGE_CERT_REVOKED                                                 NTStatus      = 0xC0000603\n\tSTATUS_DYNAMIC_CODE_BLOCKED                                               NTStatus      = 0xC0000604\n\tSTATUS_IMAGE_CERT_EXPIRED                                                 NTStatus      = 0xC0000605\n\tSTATUS_STRICT_CFG_VIOLATION                                               NTStatus      = 0xC0000606\n\tSTATUS_SET_CONTEXT_DENIED                                                 NTStatus      = 0xC000060A\n\tSTATUS_CROSS_PARTITION_VIOLATION                                          NTStatus      = 0xC000060B\n\tSTATUS_PORT_CLOSED                                                        NTStatus      = 0xC0000700\n\tSTATUS_MESSAGE_LOST                                                       NTStatus      = 0xC0000701\n\tSTATUS_INVALID_MESSAGE                                                    NTStatus      = 0xC0000702\n\tSTATUS_REQUEST_CANCELED                                                   NTStatus      = 0xC0000703\n\tSTATUS_RECURSIVE_DISPATCH                                                 NTStatus      = 0xC0000704\n\tSTATUS_LPC_RECEIVE_BUFFER_EXPECTED                                        NTStatus      = 0xC0000705\n\tSTATUS_LPC_INVALID_CONNECTION_USAGE                                       NTStatus      = 0xC0000706\n\tSTATUS_LPC_REQUESTS_NOT_ALLOWED                                           NTStatus      = 0xC0000707\n\tSTATUS_RESOURCE_IN_USE                                                    NTStatus      = 0xC0000708\n\tSTATUS_HARDWARE_MEMORY_ERROR                                              NTStatus      = 0xC0000709\n\tSTATUS_THREADPOOL_HANDLE_EXCEPTION                                        NTStatus      = 0xC000070A\n\tSTATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED                          NTStatus      = 0xC000070B\n\tSTATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED                  NTStatus      = 0xC000070C\n\tSTATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED                      NTStatus      = 0xC000070D\n\tSTATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED                       NTStatus      = 0xC000070E\n\tSTATUS_THREADPOOL_RELEASED_DURING_OPERATION                               NTStatus      = 0xC000070F\n\tSTATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING                              NTStatus      = 0xC0000710\n\tSTATUS_APC_RETURNED_WHILE_IMPERSONATING                                   NTStatus      = 0xC0000711\n\tSTATUS_PROCESS_IS_PROTECTED                                               NTStatus      = 0xC0000712\n\tSTATUS_MCA_EXCEPTION                                                      NTStatus      = 0xC0000713\n\tSTATUS_CERTIFICATE_MAPPING_NOT_UNIQUE                                     NTStatus      = 0xC0000714\n\tSTATUS_SYMLINK_CLASS_DISABLED                                             NTStatus      = 0xC0000715\n\tSTATUS_INVALID_IDN_NORMALIZATION                                          NTStatus      = 0xC0000716\n\tSTATUS_NO_UNICODE_TRANSLATION                                             NTStatus      = 0xC0000717\n\tSTATUS_ALREADY_REGISTERED                                                 NTStatus      = 0xC0000718\n\tSTATUS_CONTEXT_MISMATCH                                                   NTStatus      = 0xC0000719\n\tSTATUS_PORT_ALREADY_HAS_COMPLETION_LIST                                   NTStatus      = 0xC000071A\n\tSTATUS_CALLBACK_RETURNED_THREAD_PRIORITY                                  NTStatus      = 0xC000071B\n\tSTATUS_INVALID_THREAD                                                     NTStatus      = 0xC000071C\n\tSTATUS_CALLBACK_RETURNED_TRANSACTION                                      NTStatus      = 0xC000071D\n\tSTATUS_CALLBACK_RETURNED_LDR_LOCK                                         NTStatus      = 0xC000071E\n\tSTATUS_CALLBACK_RETURNED_LANG                                             NTStatus      = 0xC000071F\n\tSTATUS_CALLBACK_RETURNED_PRI_BACK                                         NTStatus      = 0xC0000720\n\tSTATUS_CALLBACK_RETURNED_THREAD_AFFINITY                                  NTStatus      = 0xC0000721\n\tSTATUS_LPC_HANDLE_COUNT_EXCEEDED                                          NTStatus      = 0xC0000722\n\tSTATUS_EXECUTABLE_MEMORY_WRITE                                            NTStatus      = 0xC0000723\n\tSTATUS_KERNEL_EXECUTABLE_MEMORY_WRITE                                     NTStatus      = 0xC0000724\n\tSTATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE                                   NTStatus      = 0xC0000725\n\tSTATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE                                  NTStatus      = 0xC0000726\n\tSTATUS_DISK_REPAIR_DISABLED                                               NTStatus      = 0xC0000800\n\tSTATUS_DS_DOMAIN_RENAME_IN_PROGRESS                                       NTStatus      = 0xC0000801\n\tSTATUS_DISK_QUOTA_EXCEEDED                                                NTStatus      = 0xC0000802\n\tSTATUS_DATA_LOST_REPAIR                                                   NTStatus      = 0x80000803\n\tSTATUS_CONTENT_BLOCKED                                                    NTStatus      = 0xC0000804\n\tSTATUS_BAD_CLUSTERS                                                       NTStatus      = 0xC0000805\n\tSTATUS_VOLUME_DIRTY                                                       NTStatus      = 0xC0000806\n\tSTATUS_DISK_REPAIR_REDIRECTED                                             NTStatus      = 0x40000807\n\tSTATUS_DISK_REPAIR_UNSUCCESSFUL                                           NTStatus      = 0xC0000808\n\tSTATUS_CORRUPT_LOG_OVERFULL                                               NTStatus      = 0xC0000809\n\tSTATUS_CORRUPT_LOG_CORRUPTED                                              NTStatus      = 0xC000080A\n\tSTATUS_CORRUPT_LOG_UNAVAILABLE                                            NTStatus      = 0xC000080B\n\tSTATUS_CORRUPT_LOG_DELETED_FULL                                           NTStatus      = 0xC000080C\n\tSTATUS_CORRUPT_LOG_CLEARED                                                NTStatus      = 0xC000080D\n\tSTATUS_ORPHAN_NAME_EXHAUSTED                                              NTStatus      = 0xC000080E\n\tSTATUS_PROACTIVE_SCAN_IN_PROGRESS                                         NTStatus      = 0xC000080F\n\tSTATUS_ENCRYPTED_IO_NOT_POSSIBLE                                          NTStatus      = 0xC0000810\n\tSTATUS_CORRUPT_LOG_UPLEVEL_RECORDS                                        NTStatus      = 0xC0000811\n\tSTATUS_FILE_CHECKED_OUT                                                   NTStatus      = 0xC0000901\n\tSTATUS_CHECKOUT_REQUIRED                                                  NTStatus      = 0xC0000902\n\tSTATUS_BAD_FILE_TYPE                                                      NTStatus      = 0xC0000903\n\tSTATUS_FILE_TOO_LARGE                                                     NTStatus      = 0xC0000904\n\tSTATUS_FORMS_AUTH_REQUIRED                                                NTStatus      = 0xC0000905\n\tSTATUS_VIRUS_INFECTED                                                     NTStatus      = 0xC0000906\n\tSTATUS_VIRUS_DELETED                                                      NTStatus      = 0xC0000907\n\tSTATUS_BAD_MCFG_TABLE                                                     NTStatus      = 0xC0000908\n\tSTATUS_CANNOT_BREAK_OPLOCK                                                NTStatus      = 0xC0000909\n\tSTATUS_BAD_KEY                                                            NTStatus      = 0xC000090A\n\tSTATUS_BAD_DATA                                                           NTStatus      = 0xC000090B\n\tSTATUS_NO_KEY                                                             NTStatus      = 0xC000090C\n\tSTATUS_FILE_HANDLE_REVOKED                                                NTStatus      = 0xC0000910\n\tSTATUS_WOW_ASSERTION                                                      NTStatus      = 0xC0009898\n\tSTATUS_INVALID_SIGNATURE                                                  NTStatus      = 0xC000A000\n\tSTATUS_HMAC_NOT_SUPPORTED                                                 NTStatus      = 0xC000A001\n\tSTATUS_AUTH_TAG_MISMATCH                                                  NTStatus      = 0xC000A002\n\tSTATUS_INVALID_STATE_TRANSITION                                           NTStatus      = 0xC000A003\n\tSTATUS_INVALID_KERNEL_INFO_VERSION                                        NTStatus      = 0xC000A004\n\tSTATUS_INVALID_PEP_INFO_VERSION                                           NTStatus      = 0xC000A005\n\tSTATUS_HANDLE_REVOKED                                                     NTStatus      = 0xC000A006\n\tSTATUS_EOF_ON_GHOSTED_RANGE                                               NTStatus      = 0xC000A007\n\tSTATUS_IPSEC_QUEUE_OVERFLOW                                               NTStatus      = 0xC000A010\n\tSTATUS_ND_QUEUE_OVERFLOW                                                  NTStatus      = 0xC000A011\n\tSTATUS_HOPLIMIT_EXCEEDED                                                  NTStatus      = 0xC000A012\n\tSTATUS_PROTOCOL_NOT_SUPPORTED                                             NTStatus      = 0xC000A013\n\tSTATUS_FASTPATH_REJECTED                                                  NTStatus      = 0xC000A014\n\tSTATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED                         NTStatus      = 0xC000A080\n\tSTATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR                         NTStatus      = 0xC000A081\n\tSTATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR                             NTStatus      = 0xC000A082\n\tSTATUS_XML_PARSE_ERROR                                                    NTStatus      = 0xC000A083\n\tSTATUS_XMLDSIG_ERROR                                                      NTStatus      = 0xC000A084\n\tSTATUS_WRONG_COMPARTMENT                                                  NTStatus      = 0xC000A085\n\tSTATUS_AUTHIP_FAILURE                                                     NTStatus      = 0xC000A086\n\tSTATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS                              NTStatus      = 0xC000A087\n\tSTATUS_DS_OID_NOT_FOUND                                                   NTStatus      = 0xC000A088\n\tSTATUS_INCORRECT_ACCOUNT_TYPE                                             NTStatus      = 0xC000A089\n\tSTATUS_HASH_NOT_SUPPORTED                                                 NTStatus      = 0xC000A100\n\tSTATUS_HASH_NOT_PRESENT                                                   NTStatus      = 0xC000A101\n\tSTATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED                               NTStatus      = 0xC000A121\n\tSTATUS_GPIO_CLIENT_INFORMATION_INVALID                                    NTStatus      = 0xC000A122\n\tSTATUS_GPIO_VERSION_NOT_SUPPORTED                                         NTStatus      = 0xC000A123\n\tSTATUS_GPIO_INVALID_REGISTRATION_PACKET                                   NTStatus      = 0xC000A124\n\tSTATUS_GPIO_OPERATION_DENIED                                              NTStatus      = 0xC000A125\n\tSTATUS_GPIO_INCOMPATIBLE_CONNECT_MODE                                     NTStatus      = 0xC000A126\n\tSTATUS_GPIO_INTERRUPT_ALREADY_UNMASKED                                    NTStatus      = 0x8000A127\n\tSTATUS_CANNOT_SWITCH_RUNLEVEL                                             NTStatus      = 0xC000A141\n\tSTATUS_INVALID_RUNLEVEL_SETTING                                           NTStatus      = 0xC000A142\n\tSTATUS_RUNLEVEL_SWITCH_TIMEOUT                                            NTStatus      = 0xC000A143\n\tSTATUS_SERVICES_FAILED_AUTOSTART                                          NTStatus      = 0x4000A144\n\tSTATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT                                      NTStatus      = 0xC000A145\n\tSTATUS_RUNLEVEL_SWITCH_IN_PROGRESS                                        NTStatus      = 0xC000A146\n\tSTATUS_NOT_APPCONTAINER                                                   NTStatus      = 0xC000A200\n\tSTATUS_NOT_SUPPORTED_IN_APPCONTAINER                                      NTStatus      = 0xC000A201\n\tSTATUS_INVALID_PACKAGE_SID_LENGTH                                         NTStatus      = 0xC000A202\n\tSTATUS_LPAC_ACCESS_DENIED                                                 NTStatus      = 0xC000A203\n\tSTATUS_ADMINLESS_ACCESS_DENIED                                            NTStatus      = 0xC000A204\n\tSTATUS_APP_DATA_NOT_FOUND                                                 NTStatus      = 0xC000A281\n\tSTATUS_APP_DATA_EXPIRED                                                   NTStatus      = 0xC000A282\n\tSTATUS_APP_DATA_CORRUPT                                                   NTStatus      = 0xC000A283\n\tSTATUS_APP_DATA_LIMIT_EXCEEDED                                            NTStatus      = 0xC000A284\n\tSTATUS_APP_DATA_REBOOT_REQUIRED                                           NTStatus      = 0xC000A285\n\tSTATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED                                     NTStatus      = 0xC000A2A1\n\tSTATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED                                    NTStatus      = 0xC000A2A2\n\tSTATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED                                    NTStatus      = 0xC000A2A3\n\tSTATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED                                   NTStatus      = 0xC000A2A4\n\tSTATUS_WOF_WIM_HEADER_CORRUPT                                             NTStatus      = 0xC000A2A5\n\tSTATUS_WOF_WIM_RESOURCE_TABLE_CORRUPT                                     NTStatus      = 0xC000A2A6\n\tSTATUS_WOF_FILE_RESOURCE_TABLE_CORRUPT                                    NTStatus      = 0xC000A2A7\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE                             NTStatus      = 0xC000CE01\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT                        NTStatus      = 0xC000CE02\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_BUSY                                    NTStatus      = 0xC000CE03\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN                        NTStatus      = 0xC000CE04\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION                       NTStatus      = 0xC000CE05\n\tSTATUS_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT                              NTStatus      = 0xC000CF00\n\tSTATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING                                    NTStatus      = 0xC000CF01\n\tSTATUS_CLOUD_FILE_METADATA_CORRUPT                                        NTStatus      = 0xC000CF02\n\tSTATUS_CLOUD_FILE_METADATA_TOO_LARGE                                      NTStatus      = 0xC000CF03\n\tSTATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE                                 NTStatus      = 0x8000CF04\n\tSTATUS_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS                                 NTStatus      = 0x8000CF05\n\tSTATUS_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED                          NTStatus      = 0xC000CF06\n\tSTATUS_NOT_A_CLOUD_FILE                                                   NTStatus      = 0xC000CF07\n\tSTATUS_CLOUD_FILE_NOT_IN_SYNC                                             NTStatus      = 0xC000CF08\n\tSTATUS_CLOUD_FILE_ALREADY_CONNECTED                                       NTStatus      = 0xC000CF09\n\tSTATUS_CLOUD_FILE_NOT_SUPPORTED                                           NTStatus      = 0xC000CF0A\n\tSTATUS_CLOUD_FILE_INVALID_REQUEST                                         NTStatus      = 0xC000CF0B\n\tSTATUS_CLOUD_FILE_READ_ONLY_VOLUME                                        NTStatus      = 0xC000CF0C\n\tSTATUS_CLOUD_FILE_CONNECTED_PROVIDER_ONLY                                 NTStatus      = 0xC000CF0D\n\tSTATUS_CLOUD_FILE_VALIDATION_FAILED                                       NTStatus      = 0xC000CF0E\n\tSTATUS_CLOUD_FILE_AUTHENTICATION_FAILED                                   NTStatus      = 0xC000CF0F\n\tSTATUS_CLOUD_FILE_INSUFFICIENT_RESOURCES                                  NTStatus      = 0xC000CF10\n\tSTATUS_CLOUD_FILE_NETWORK_UNAVAILABLE                                     NTStatus      = 0xC000CF11\n\tSTATUS_CLOUD_FILE_UNSUCCESSFUL                                            NTStatus      = 0xC000CF12\n\tSTATUS_CLOUD_FILE_NOT_UNDER_SYNC_ROOT                                     NTStatus      = 0xC000CF13\n\tSTATUS_CLOUD_FILE_IN_USE                                                  NTStatus      = 0xC000CF14\n\tSTATUS_CLOUD_FILE_PINNED                                                  NTStatus      = 0xC000CF15\n\tSTATUS_CLOUD_FILE_REQUEST_ABORTED                                         NTStatus      = 0xC000CF16\n\tSTATUS_CLOUD_FILE_PROPERTY_CORRUPT                                        NTStatus      = 0xC000CF17\n\tSTATUS_CLOUD_FILE_ACCESS_DENIED                                           NTStatus      = 0xC000CF18\n\tSTATUS_CLOUD_FILE_INCOMPATIBLE_HARDLINKS                                  NTStatus      = 0xC000CF19\n\tSTATUS_CLOUD_FILE_PROPERTY_LOCK_CONFLICT                                  NTStatus      = 0xC000CF1A\n\tSTATUS_CLOUD_FILE_REQUEST_CANCELED                                        NTStatus      = 0xC000CF1B\n\tSTATUS_CLOUD_FILE_PROVIDER_TERMINATED                                     NTStatus      = 0xC000CF1D\n\tSTATUS_NOT_A_CLOUD_SYNC_ROOT                                              NTStatus      = 0xC000CF1E\n\tSTATUS_CLOUD_FILE_REQUEST_TIMEOUT                                         NTStatus      = 0xC000CF1F\n\tSTATUS_ACPI_INVALID_OPCODE                                                NTStatus      = 0xC0140001\n\tSTATUS_ACPI_STACK_OVERFLOW                                                NTStatus      = 0xC0140002\n\tSTATUS_ACPI_ASSERT_FAILED                                                 NTStatus      = 0xC0140003\n\tSTATUS_ACPI_INVALID_INDEX                                                 NTStatus      = 0xC0140004\n\tSTATUS_ACPI_INVALID_ARGUMENT                                              NTStatus      = 0xC0140005\n\tSTATUS_ACPI_FATAL                                                         NTStatus      = 0xC0140006\n\tSTATUS_ACPI_INVALID_SUPERNAME                                             NTStatus      = 0xC0140007\n\tSTATUS_ACPI_INVALID_ARGTYPE                                               NTStatus      = 0xC0140008\n\tSTATUS_ACPI_INVALID_OBJTYPE                                               NTStatus      = 0xC0140009\n\tSTATUS_ACPI_INVALID_TARGETTYPE                                            NTStatus      = 0xC014000A\n\tSTATUS_ACPI_INCORRECT_ARGUMENT_COUNT                                      NTStatus      = 0xC014000B\n\tSTATUS_ACPI_ADDRESS_NOT_MAPPED                                            NTStatus      = 0xC014000C\n\tSTATUS_ACPI_INVALID_EVENTTYPE                                             NTStatus      = 0xC014000D\n\tSTATUS_ACPI_HANDLER_COLLISION                                             NTStatus      = 0xC014000E\n\tSTATUS_ACPI_INVALID_DATA                                                  NTStatus      = 0xC014000F\n\tSTATUS_ACPI_INVALID_REGION                                                NTStatus      = 0xC0140010\n\tSTATUS_ACPI_INVALID_ACCESS_SIZE                                           NTStatus      = 0xC0140011\n\tSTATUS_ACPI_ACQUIRE_GLOBAL_LOCK                                           NTStatus      = 0xC0140012\n\tSTATUS_ACPI_ALREADY_INITIALIZED                                           NTStatus      = 0xC0140013\n\tSTATUS_ACPI_NOT_INITIALIZED                                               NTStatus      = 0xC0140014\n\tSTATUS_ACPI_INVALID_MUTEX_LEVEL                                           NTStatus      = 0xC0140015\n\tSTATUS_ACPI_MUTEX_NOT_OWNED                                               NTStatus      = 0xC0140016\n\tSTATUS_ACPI_MUTEX_NOT_OWNER                                               NTStatus      = 0xC0140017\n\tSTATUS_ACPI_RS_ACCESS                                                     NTStatus      = 0xC0140018\n\tSTATUS_ACPI_INVALID_TABLE                                                 NTStatus      = 0xC0140019\n\tSTATUS_ACPI_REG_HANDLER_FAILED                                            NTStatus      = 0xC0140020\n\tSTATUS_ACPI_POWER_REQUEST_FAILED                                          NTStatus      = 0xC0140021\n\tSTATUS_CTX_WINSTATION_NAME_INVALID                                        NTStatus      = 0xC00A0001\n\tSTATUS_CTX_INVALID_PD                                                     NTStatus      = 0xC00A0002\n\tSTATUS_CTX_PD_NOT_FOUND                                                   NTStatus      = 0xC00A0003\n\tSTATUS_CTX_CDM_CONNECT                                                    NTStatus      = 0x400A0004\n\tSTATUS_CTX_CDM_DISCONNECT                                                 NTStatus      = 0x400A0005\n\tSTATUS_CTX_CLOSE_PENDING                                                  NTStatus      = 0xC00A0006\n\tSTATUS_CTX_NO_OUTBUF                                                      NTStatus      = 0xC00A0007\n\tSTATUS_CTX_MODEM_INF_NOT_FOUND                                            NTStatus      = 0xC00A0008\n\tSTATUS_CTX_INVALID_MODEMNAME                                              NTStatus      = 0xC00A0009\n\tSTATUS_CTX_RESPONSE_ERROR                                                 NTStatus      = 0xC00A000A\n\tSTATUS_CTX_MODEM_RESPONSE_TIMEOUT                                         NTStatus      = 0xC00A000B\n\tSTATUS_CTX_MODEM_RESPONSE_NO_CARRIER                                      NTStatus      = 0xC00A000C\n\tSTATUS_CTX_MODEM_RESPONSE_NO_DIALTONE                                     NTStatus      = 0xC00A000D\n\tSTATUS_CTX_MODEM_RESPONSE_BUSY                                            NTStatus      = 0xC00A000E\n\tSTATUS_CTX_MODEM_RESPONSE_VOICE                                           NTStatus      = 0xC00A000F\n\tSTATUS_CTX_TD_ERROR                                                       NTStatus      = 0xC00A0010\n\tSTATUS_CTX_LICENSE_CLIENT_INVALID                                         NTStatus      = 0xC00A0012\n\tSTATUS_CTX_LICENSE_NOT_AVAILABLE                                          NTStatus      = 0xC00A0013\n\tSTATUS_CTX_LICENSE_EXPIRED                                                NTStatus      = 0xC00A0014\n\tSTATUS_CTX_WINSTATION_NOT_FOUND                                           NTStatus      = 0xC00A0015\n\tSTATUS_CTX_WINSTATION_NAME_COLLISION                                      NTStatus      = 0xC00A0016\n\tSTATUS_CTX_WINSTATION_BUSY                                                NTStatus      = 0xC00A0017\n\tSTATUS_CTX_BAD_VIDEO_MODE                                                 NTStatus      = 0xC00A0018\n\tSTATUS_CTX_GRAPHICS_INVALID                                               NTStatus      = 0xC00A0022\n\tSTATUS_CTX_NOT_CONSOLE                                                    NTStatus      = 0xC00A0024\n\tSTATUS_CTX_CLIENT_QUERY_TIMEOUT                                           NTStatus      = 0xC00A0026\n\tSTATUS_CTX_CONSOLE_DISCONNECT                                             NTStatus      = 0xC00A0027\n\tSTATUS_CTX_CONSOLE_CONNECT                                                NTStatus      = 0xC00A0028\n\tSTATUS_CTX_SHADOW_DENIED                                                  NTStatus      = 0xC00A002A\n\tSTATUS_CTX_WINSTATION_ACCESS_DENIED                                       NTStatus      = 0xC00A002B\n\tSTATUS_CTX_INVALID_WD                                                     NTStatus      = 0xC00A002E\n\tSTATUS_CTX_WD_NOT_FOUND                                                   NTStatus      = 0xC00A002F\n\tSTATUS_CTX_SHADOW_INVALID                                                 NTStatus      = 0xC00A0030\n\tSTATUS_CTX_SHADOW_DISABLED                                                NTStatus      = 0xC00A0031\n\tSTATUS_RDP_PROTOCOL_ERROR                                                 NTStatus      = 0xC00A0032\n\tSTATUS_CTX_CLIENT_LICENSE_NOT_SET                                         NTStatus      = 0xC00A0033\n\tSTATUS_CTX_CLIENT_LICENSE_IN_USE                                          NTStatus      = 0xC00A0034\n\tSTATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE                                    NTStatus      = 0xC00A0035\n\tSTATUS_CTX_SHADOW_NOT_RUNNING                                             NTStatus      = 0xC00A0036\n\tSTATUS_CTX_LOGON_DISABLED                                                 NTStatus      = 0xC00A0037\n\tSTATUS_CTX_SECURITY_LAYER_ERROR                                           NTStatus      = 0xC00A0038\n\tSTATUS_TS_INCOMPATIBLE_SESSIONS                                           NTStatus      = 0xC00A0039\n\tSTATUS_TS_VIDEO_SUBSYSTEM_ERROR                                           NTStatus      = 0xC00A003A\n\tSTATUS_PNP_BAD_MPS_TABLE                                                  NTStatus      = 0xC0040035\n\tSTATUS_PNP_TRANSLATION_FAILED                                             NTStatus      = 0xC0040036\n\tSTATUS_PNP_IRQ_TRANSLATION_FAILED                                         NTStatus      = 0xC0040037\n\tSTATUS_PNP_INVALID_ID                                                     NTStatus      = 0xC0040038\n\tSTATUS_IO_REISSUE_AS_CACHED                                               NTStatus      = 0xC0040039\n\tSTATUS_MUI_FILE_NOT_FOUND                                                 NTStatus      = 0xC00B0001\n\tSTATUS_MUI_INVALID_FILE                                                   NTStatus      = 0xC00B0002\n\tSTATUS_MUI_INVALID_RC_CONFIG                                              NTStatus      = 0xC00B0003\n\tSTATUS_MUI_INVALID_LOCALE_NAME                                            NTStatus      = 0xC00B0004\n\tSTATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME                                  NTStatus      = 0xC00B0005\n\tSTATUS_MUI_FILE_NOT_LOADED                                                NTStatus      = 0xC00B0006\n\tSTATUS_RESOURCE_ENUM_USER_STOP                                            NTStatus      = 0xC00B0007\n\tSTATUS_FLT_NO_HANDLER_DEFINED                                             NTStatus      = 0xC01C0001\n\tSTATUS_FLT_CONTEXT_ALREADY_DEFINED                                        NTStatus      = 0xC01C0002\n\tSTATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST                                   NTStatus      = 0xC01C0003\n\tSTATUS_FLT_DISALLOW_FAST_IO                                               NTStatus      = 0xC01C0004\n\tSTATUS_FLT_INVALID_NAME_REQUEST                                           NTStatus      = 0xC01C0005\n\tSTATUS_FLT_NOT_SAFE_TO_POST_OPERATION                                     NTStatus      = 0xC01C0006\n\tSTATUS_FLT_NOT_INITIALIZED                                                NTStatus      = 0xC01C0007\n\tSTATUS_FLT_FILTER_NOT_READY                                               NTStatus      = 0xC01C0008\n\tSTATUS_FLT_POST_OPERATION_CLEANUP                                         NTStatus      = 0xC01C0009\n\tSTATUS_FLT_INTERNAL_ERROR                                                 NTStatus      = 0xC01C000A\n\tSTATUS_FLT_DELETING_OBJECT                                                NTStatus      = 0xC01C000B\n\tSTATUS_FLT_MUST_BE_NONPAGED_POOL                                          NTStatus      = 0xC01C000C\n\tSTATUS_FLT_DUPLICATE_ENTRY                                                NTStatus      = 0xC01C000D\n\tSTATUS_FLT_CBDQ_DISABLED                                                  NTStatus      = 0xC01C000E\n\tSTATUS_FLT_DO_NOT_ATTACH                                                  NTStatus      = 0xC01C000F\n\tSTATUS_FLT_DO_NOT_DETACH                                                  NTStatus      = 0xC01C0010\n\tSTATUS_FLT_INSTANCE_ALTITUDE_COLLISION                                    NTStatus      = 0xC01C0011\n\tSTATUS_FLT_INSTANCE_NAME_COLLISION                                        NTStatus      = 0xC01C0012\n\tSTATUS_FLT_FILTER_NOT_FOUND                                               NTStatus      = 0xC01C0013\n\tSTATUS_FLT_VOLUME_NOT_FOUND                                               NTStatus      = 0xC01C0014\n\tSTATUS_FLT_INSTANCE_NOT_FOUND                                             NTStatus      = 0xC01C0015\n\tSTATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND                                   NTStatus      = 0xC01C0016\n\tSTATUS_FLT_INVALID_CONTEXT_REGISTRATION                                   NTStatus      = 0xC01C0017\n\tSTATUS_FLT_NAME_CACHE_MISS                                                NTStatus      = 0xC01C0018\n\tSTATUS_FLT_NO_DEVICE_OBJECT                                               NTStatus      = 0xC01C0019\n\tSTATUS_FLT_VOLUME_ALREADY_MOUNTED                                         NTStatus      = 0xC01C001A\n\tSTATUS_FLT_ALREADY_ENLISTED                                               NTStatus      = 0xC01C001B\n\tSTATUS_FLT_CONTEXT_ALREADY_LINKED                                         NTStatus      = 0xC01C001C\n\tSTATUS_FLT_NO_WAITER_FOR_REPLY                                            NTStatus      = 0xC01C0020\n\tSTATUS_FLT_REGISTRATION_BUSY                                              NTStatus      = 0xC01C0023\n\tSTATUS_SXS_SECTION_NOT_FOUND                                              NTStatus      = 0xC0150001\n\tSTATUS_SXS_CANT_GEN_ACTCTX                                                NTStatus      = 0xC0150002\n\tSTATUS_SXS_INVALID_ACTCTXDATA_FORMAT                                      NTStatus      = 0xC0150003\n\tSTATUS_SXS_ASSEMBLY_NOT_FOUND                                             NTStatus      = 0xC0150004\n\tSTATUS_SXS_MANIFEST_FORMAT_ERROR                                          NTStatus      = 0xC0150005\n\tSTATUS_SXS_MANIFEST_PARSE_ERROR                                           NTStatus      = 0xC0150006\n\tSTATUS_SXS_ACTIVATION_CONTEXT_DISABLED                                    NTStatus      = 0xC0150007\n\tSTATUS_SXS_KEY_NOT_FOUND                                                  NTStatus      = 0xC0150008\n\tSTATUS_SXS_VERSION_CONFLICT                                               NTStatus      = 0xC0150009\n\tSTATUS_SXS_WRONG_SECTION_TYPE                                             NTStatus      = 0xC015000A\n\tSTATUS_SXS_THREAD_QUERIES_DISABLED                                        NTStatus      = 0xC015000B\n\tSTATUS_SXS_ASSEMBLY_MISSING                                               NTStatus      = 0xC015000C\n\tSTATUS_SXS_RELEASE_ACTIVATION_CONTEXT                                     NTStatus      = 0x4015000D\n\tSTATUS_SXS_PROCESS_DEFAULT_ALREADY_SET                                    NTStatus      = 0xC015000E\n\tSTATUS_SXS_EARLY_DEACTIVATION                                             NTStatus      = 0xC015000F\n\tSTATUS_SXS_INVALID_DEACTIVATION                                           NTStatus      = 0xC0150010\n\tSTATUS_SXS_MULTIPLE_DEACTIVATION                                          NTStatus      = 0xC0150011\n\tSTATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY                        NTStatus      = 0xC0150012\n\tSTATUS_SXS_PROCESS_TERMINATION_REQUESTED                                  NTStatus      = 0xC0150013\n\tSTATUS_SXS_CORRUPT_ACTIVATION_STACK                                       NTStatus      = 0xC0150014\n\tSTATUS_SXS_CORRUPTION                                                     NTStatus      = 0xC0150015\n\tSTATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE                               NTStatus      = 0xC0150016\n\tSTATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME                                NTStatus      = 0xC0150017\n\tSTATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE                                   NTStatus      = 0xC0150018\n\tSTATUS_SXS_IDENTITY_PARSE_ERROR                                           NTStatus      = 0xC0150019\n\tSTATUS_SXS_COMPONENT_STORE_CORRUPT                                        NTStatus      = 0xC015001A\n\tSTATUS_SXS_FILE_HASH_MISMATCH                                             NTStatus      = 0xC015001B\n\tSTATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT                  NTStatus      = 0xC015001C\n\tSTATUS_SXS_IDENTITIES_DIFFERENT                                           NTStatus      = 0xC015001D\n\tSTATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT                                   NTStatus      = 0xC015001E\n\tSTATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY                                      NTStatus      = 0xC015001F\n\tSTATUS_ADVANCED_INSTALLER_FAILED                                          NTStatus      = 0xC0150020\n\tSTATUS_XML_ENCODING_MISMATCH                                              NTStatus      = 0xC0150021\n\tSTATUS_SXS_MANIFEST_TOO_BIG                                               NTStatus      = 0xC0150022\n\tSTATUS_SXS_SETTING_NOT_REGISTERED                                         NTStatus      = 0xC0150023\n\tSTATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE                                 NTStatus      = 0xC0150024\n\tSTATUS_SMI_PRIMITIVE_INSTALLER_FAILED                                     NTStatus      = 0xC0150025\n\tSTATUS_GENERIC_COMMAND_FAILED                                             NTStatus      = 0xC0150026\n\tSTATUS_SXS_FILE_HASH_MISSING                                              NTStatus      = 0xC0150027\n\tSTATUS_CLUSTER_INVALID_NODE                                               NTStatus      = 0xC0130001\n\tSTATUS_CLUSTER_NODE_EXISTS                                                NTStatus      = 0xC0130002\n\tSTATUS_CLUSTER_JOIN_IN_PROGRESS                                           NTStatus      = 0xC0130003\n\tSTATUS_CLUSTER_NODE_NOT_FOUND                                             NTStatus      = 0xC0130004\n\tSTATUS_CLUSTER_LOCAL_NODE_NOT_FOUND                                       NTStatus      = 0xC0130005\n\tSTATUS_CLUSTER_NETWORK_EXISTS                                             NTStatus      = 0xC0130006\n\tSTATUS_CLUSTER_NETWORK_NOT_FOUND                                          NTStatus      = 0xC0130007\n\tSTATUS_CLUSTER_NETINTERFACE_EXISTS                                        NTStatus      = 0xC0130008\n\tSTATUS_CLUSTER_NETINTERFACE_NOT_FOUND                                     NTStatus      = 0xC0130009\n\tSTATUS_CLUSTER_INVALID_REQUEST                                            NTStatus      = 0xC013000A\n\tSTATUS_CLUSTER_INVALID_NETWORK_PROVIDER                                   NTStatus      = 0xC013000B\n\tSTATUS_CLUSTER_NODE_DOWN                                                  NTStatus      = 0xC013000C\n\tSTATUS_CLUSTER_NODE_UNREACHABLE                                           NTStatus      = 0xC013000D\n\tSTATUS_CLUSTER_NODE_NOT_MEMBER                                            NTStatus      = 0xC013000E\n\tSTATUS_CLUSTER_JOIN_NOT_IN_PROGRESS                                       NTStatus      = 0xC013000F\n\tSTATUS_CLUSTER_INVALID_NETWORK                                            NTStatus      = 0xC0130010\n\tSTATUS_CLUSTER_NO_NET_ADAPTERS                                            NTStatus      = 0xC0130011\n\tSTATUS_CLUSTER_NODE_UP                                                    NTStatus      = 0xC0130012\n\tSTATUS_CLUSTER_NODE_PAUSED                                                NTStatus      = 0xC0130013\n\tSTATUS_CLUSTER_NODE_NOT_PAUSED                                            NTStatus      = 0xC0130014\n\tSTATUS_CLUSTER_NO_SECURITY_CONTEXT                                        NTStatus      = 0xC0130015\n\tSTATUS_CLUSTER_NETWORK_NOT_INTERNAL                                       NTStatus      = 0xC0130016\n\tSTATUS_CLUSTER_POISONED                                                   NTStatus      = 0xC0130017\n\tSTATUS_CLUSTER_NON_CSV_PATH                                               NTStatus      = 0xC0130018\n\tSTATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL                                       NTStatus      = 0xC0130019\n\tSTATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS                          NTStatus      = 0xC0130020\n\tSTATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR                                       NTStatus      = 0xC0130021\n\tSTATUS_CLUSTER_CSV_REDIRECTED                                             NTStatus      = 0xC0130022\n\tSTATUS_CLUSTER_CSV_NOT_REDIRECTED                                         NTStatus      = 0xC0130023\n\tSTATUS_CLUSTER_CSV_VOLUME_DRAINING                                        NTStatus      = 0xC0130024\n\tSTATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS                          NTStatus      = 0xC0130025\n\tSTATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL                    NTStatus      = 0xC0130026\n\tSTATUS_CLUSTER_CSV_NO_SNAPSHOTS                                           NTStatus      = 0xC0130027\n\tSTATUS_CSV_IO_PAUSE_TIMEOUT                                               NTStatus      = 0xC0130028\n\tSTATUS_CLUSTER_CSV_INVALID_HANDLE                                         NTStatus      = 0xC0130029\n\tSTATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR                          NTStatus      = 0xC0130030\n\tSTATUS_CLUSTER_CAM_TICKET_REPLAY_DETECTED                                 NTStatus      = 0xC0130031\n\tSTATUS_TRANSACTIONAL_CONFLICT                                             NTStatus      = 0xC0190001\n\tSTATUS_INVALID_TRANSACTION                                                NTStatus      = 0xC0190002\n\tSTATUS_TRANSACTION_NOT_ACTIVE                                             NTStatus      = 0xC0190003\n\tSTATUS_TM_INITIALIZATION_FAILED                                           NTStatus      = 0xC0190004\n\tSTATUS_RM_NOT_ACTIVE                                                      NTStatus      = 0xC0190005\n\tSTATUS_RM_METADATA_CORRUPT                                                NTStatus      = 0xC0190006\n\tSTATUS_TRANSACTION_NOT_JOINED                                             NTStatus      = 0xC0190007\n\tSTATUS_DIRECTORY_NOT_RM                                                   NTStatus      = 0xC0190008\n\tSTATUS_COULD_NOT_RESIZE_LOG                                               NTStatus      = 0x80190009\n\tSTATUS_TRANSACTIONS_UNSUPPORTED_REMOTE                                    NTStatus      = 0xC019000A\n\tSTATUS_LOG_RESIZE_INVALID_SIZE                                            NTStatus      = 0xC019000B\n\tSTATUS_REMOTE_FILE_VERSION_MISMATCH                                       NTStatus      = 0xC019000C\n\tSTATUS_CRM_PROTOCOL_ALREADY_EXISTS                                        NTStatus      = 0xC019000F\n\tSTATUS_TRANSACTION_PROPAGATION_FAILED                                     NTStatus      = 0xC0190010\n\tSTATUS_CRM_PROTOCOL_NOT_FOUND                                             NTStatus      = 0xC0190011\n\tSTATUS_TRANSACTION_SUPERIOR_EXISTS                                        NTStatus      = 0xC0190012\n\tSTATUS_TRANSACTION_REQUEST_NOT_VALID                                      NTStatus      = 0xC0190013\n\tSTATUS_TRANSACTION_NOT_REQUESTED                                          NTStatus      = 0xC0190014\n\tSTATUS_TRANSACTION_ALREADY_ABORTED                                        NTStatus      = 0xC0190015\n\tSTATUS_TRANSACTION_ALREADY_COMMITTED                                      NTStatus      = 0xC0190016\n\tSTATUS_TRANSACTION_INVALID_MARSHALL_BUFFER                                NTStatus      = 0xC0190017\n\tSTATUS_CURRENT_TRANSACTION_NOT_VALID                                      NTStatus      = 0xC0190018\n\tSTATUS_LOG_GROWTH_FAILED                                                  NTStatus      = 0xC0190019\n\tSTATUS_OBJECT_NO_LONGER_EXISTS                                            NTStatus      = 0xC0190021\n\tSTATUS_STREAM_MINIVERSION_NOT_FOUND                                       NTStatus      = 0xC0190022\n\tSTATUS_STREAM_MINIVERSION_NOT_VALID                                       NTStatus      = 0xC0190023\n\tSTATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION                NTStatus      = 0xC0190024\n\tSTATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT                           NTStatus      = 0xC0190025\n\tSTATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS                               NTStatus      = 0xC0190026\n\tSTATUS_HANDLE_NO_LONGER_VALID                                             NTStatus      = 0xC0190028\n\tSTATUS_NO_TXF_METADATA                                                    NTStatus      = 0x80190029\n\tSTATUS_LOG_CORRUPTION_DETECTED                                            NTStatus      = 0xC0190030\n\tSTATUS_CANT_RECOVER_WITH_HANDLE_OPEN                                      NTStatus      = 0x80190031\n\tSTATUS_RM_DISCONNECTED                                                    NTStatus      = 0xC0190032\n\tSTATUS_ENLISTMENT_NOT_SUPERIOR                                            NTStatus      = 0xC0190033\n\tSTATUS_RECOVERY_NOT_NEEDED                                                NTStatus      = 0x40190034\n\tSTATUS_RM_ALREADY_STARTED                                                 NTStatus      = 0x40190035\n\tSTATUS_FILE_IDENTITY_NOT_PERSISTENT                                       NTStatus      = 0xC0190036\n\tSTATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY                                NTStatus      = 0xC0190037\n\tSTATUS_CANT_CROSS_RM_BOUNDARY                                             NTStatus      = 0xC0190038\n\tSTATUS_TXF_DIR_NOT_EMPTY                                                  NTStatus      = 0xC0190039\n\tSTATUS_INDOUBT_TRANSACTIONS_EXIST                                         NTStatus      = 0xC019003A\n\tSTATUS_TM_VOLATILE                                                        NTStatus      = 0xC019003B\n\tSTATUS_ROLLBACK_TIMER_EXPIRED                                             NTStatus      = 0xC019003C\n\tSTATUS_TXF_ATTRIBUTE_CORRUPT                                              NTStatus      = 0xC019003D\n\tSTATUS_EFS_NOT_ALLOWED_IN_TRANSACTION                                     NTStatus      = 0xC019003E\n\tSTATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED                                     NTStatus      = 0xC019003F\n\tSTATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE                              NTStatus      = 0xC0190040\n\tSTATUS_TXF_METADATA_ALREADY_PRESENT                                       NTStatus      = 0x80190041\n\tSTATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET                                NTStatus      = 0x80190042\n\tSTATUS_TRANSACTION_REQUIRED_PROMOTION                                     NTStatus      = 0xC0190043\n\tSTATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION                                 NTStatus      = 0xC0190044\n\tSTATUS_TRANSACTIONS_NOT_FROZEN                                            NTStatus      = 0xC0190045\n\tSTATUS_TRANSACTION_FREEZE_IN_PROGRESS                                     NTStatus      = 0xC0190046\n\tSTATUS_NOT_SNAPSHOT_VOLUME                                                NTStatus      = 0xC0190047\n\tSTATUS_NO_SAVEPOINT_WITH_OPEN_FILES                                       NTStatus      = 0xC0190048\n\tSTATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION                                  NTStatus      = 0xC0190049\n\tSTATUS_TM_IDENTITY_MISMATCH                                               NTStatus      = 0xC019004A\n\tSTATUS_FLOATED_SECTION                                                    NTStatus      = 0xC019004B\n\tSTATUS_CANNOT_ACCEPT_TRANSACTED_WORK                                      NTStatus      = 0xC019004C\n\tSTATUS_CANNOT_ABORT_TRANSACTIONS                                          NTStatus      = 0xC019004D\n\tSTATUS_TRANSACTION_NOT_FOUND                                              NTStatus      = 0xC019004E\n\tSTATUS_RESOURCEMANAGER_NOT_FOUND                                          NTStatus      = 0xC019004F\n\tSTATUS_ENLISTMENT_NOT_FOUND                                               NTStatus      = 0xC0190050\n\tSTATUS_TRANSACTIONMANAGER_NOT_FOUND                                       NTStatus      = 0xC0190051\n\tSTATUS_TRANSACTIONMANAGER_NOT_ONLINE                                      NTStatus      = 0xC0190052\n\tSTATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION                         NTStatus      = 0xC0190053\n\tSTATUS_TRANSACTION_NOT_ROOT                                               NTStatus      = 0xC0190054\n\tSTATUS_TRANSACTION_OBJECT_EXPIRED                                         NTStatus      = 0xC0190055\n\tSTATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION                             NTStatus      = 0xC0190056\n\tSTATUS_TRANSACTION_RESPONSE_NOT_ENLISTED                                  NTStatus      = 0xC0190057\n\tSTATUS_TRANSACTION_RECORD_TOO_LONG                                        NTStatus      = 0xC0190058\n\tSTATUS_NO_LINK_TRACKING_IN_TRANSACTION                                    NTStatus      = 0xC0190059\n\tSTATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION                             NTStatus      = 0xC019005A\n\tSTATUS_TRANSACTION_INTEGRITY_VIOLATED                                     NTStatus      = 0xC019005B\n\tSTATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH                               NTStatus      = 0xC019005C\n\tSTATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT                                   NTStatus      = 0xC019005D\n\tSTATUS_TRANSACTION_MUST_WRITETHROUGH                                      NTStatus      = 0xC019005E\n\tSTATUS_TRANSACTION_NO_SUPERIOR                                            NTStatus      = 0xC019005F\n\tSTATUS_EXPIRED_HANDLE                                                     NTStatus      = 0xC0190060\n\tSTATUS_TRANSACTION_NOT_ENLISTED                                           NTStatus      = 0xC0190061\n\tSTATUS_LOG_SECTOR_INVALID                                                 NTStatus      = 0xC01A0001\n\tSTATUS_LOG_SECTOR_PARITY_INVALID                                          NTStatus      = 0xC01A0002\n\tSTATUS_LOG_SECTOR_REMAPPED                                                NTStatus      = 0xC01A0003\n\tSTATUS_LOG_BLOCK_INCOMPLETE                                               NTStatus      = 0xC01A0004\n\tSTATUS_LOG_INVALID_RANGE                                                  NTStatus      = 0xC01A0005\n\tSTATUS_LOG_BLOCKS_EXHAUSTED                                               NTStatus      = 0xC01A0006\n\tSTATUS_LOG_READ_CONTEXT_INVALID                                           NTStatus      = 0xC01A0007\n\tSTATUS_LOG_RESTART_INVALID                                                NTStatus      = 0xC01A0008\n\tSTATUS_LOG_BLOCK_VERSION                                                  NTStatus      = 0xC01A0009\n\tSTATUS_LOG_BLOCK_INVALID                                                  NTStatus      = 0xC01A000A\n\tSTATUS_LOG_READ_MODE_INVALID                                              NTStatus      = 0xC01A000B\n\tSTATUS_LOG_NO_RESTART                                                     NTStatus      = 0x401A000C\n\tSTATUS_LOG_METADATA_CORRUPT                                               NTStatus      = 0xC01A000D\n\tSTATUS_LOG_METADATA_INVALID                                               NTStatus      = 0xC01A000E\n\tSTATUS_LOG_METADATA_INCONSISTENT                                          NTStatus      = 0xC01A000F\n\tSTATUS_LOG_RESERVATION_INVALID                                            NTStatus      = 0xC01A0010\n\tSTATUS_LOG_CANT_DELETE                                                    NTStatus      = 0xC01A0011\n\tSTATUS_LOG_CONTAINER_LIMIT_EXCEEDED                                       NTStatus      = 0xC01A0012\n\tSTATUS_LOG_START_OF_LOG                                                   NTStatus      = 0xC01A0013\n\tSTATUS_LOG_POLICY_ALREADY_INSTALLED                                       NTStatus      = 0xC01A0014\n\tSTATUS_LOG_POLICY_NOT_INSTALLED                                           NTStatus      = 0xC01A0015\n\tSTATUS_LOG_POLICY_INVALID                                                 NTStatus      = 0xC01A0016\n\tSTATUS_LOG_POLICY_CONFLICT                                                NTStatus      = 0xC01A0017\n\tSTATUS_LOG_PINNED_ARCHIVE_TAIL                                            NTStatus      = 0xC01A0018\n\tSTATUS_LOG_RECORD_NONEXISTENT                                             NTStatus      = 0xC01A0019\n\tSTATUS_LOG_RECORDS_RESERVED_INVALID                                       NTStatus      = 0xC01A001A\n\tSTATUS_LOG_SPACE_RESERVED_INVALID                                         NTStatus      = 0xC01A001B\n\tSTATUS_LOG_TAIL_INVALID                                                   NTStatus      = 0xC01A001C\n\tSTATUS_LOG_FULL                                                           NTStatus      = 0xC01A001D\n\tSTATUS_LOG_MULTIPLEXED                                                    NTStatus      = 0xC01A001E\n\tSTATUS_LOG_DEDICATED                                                      NTStatus      = 0xC01A001F\n\tSTATUS_LOG_ARCHIVE_NOT_IN_PROGRESS                                        NTStatus      = 0xC01A0020\n\tSTATUS_LOG_ARCHIVE_IN_PROGRESS                                            NTStatus      = 0xC01A0021\n\tSTATUS_LOG_EPHEMERAL                                                      NTStatus      = 0xC01A0022\n\tSTATUS_LOG_NOT_ENOUGH_CONTAINERS                                          NTStatus      = 0xC01A0023\n\tSTATUS_LOG_CLIENT_ALREADY_REGISTERED                                      NTStatus      = 0xC01A0024\n\tSTATUS_LOG_CLIENT_NOT_REGISTERED                                          NTStatus      = 0xC01A0025\n\tSTATUS_LOG_FULL_HANDLER_IN_PROGRESS                                       NTStatus      = 0xC01A0026\n\tSTATUS_LOG_CONTAINER_READ_FAILED                                          NTStatus      = 0xC01A0027\n\tSTATUS_LOG_CONTAINER_WRITE_FAILED                                         NTStatus      = 0xC01A0028\n\tSTATUS_LOG_CONTAINER_OPEN_FAILED                                          NTStatus      = 0xC01A0029\n\tSTATUS_LOG_CONTAINER_STATE_INVALID                                        NTStatus      = 0xC01A002A\n\tSTATUS_LOG_STATE_INVALID                                                  NTStatus      = 0xC01A002B\n\tSTATUS_LOG_PINNED                                                         NTStatus      = 0xC01A002C\n\tSTATUS_LOG_METADATA_FLUSH_FAILED                                          NTStatus      = 0xC01A002D\n\tSTATUS_LOG_INCONSISTENT_SECURITY                                          NTStatus      = 0xC01A002E\n\tSTATUS_LOG_APPENDED_FLUSH_FAILED                                          NTStatus      = 0xC01A002F\n\tSTATUS_LOG_PINNED_RESERVATION                                             NTStatus      = 0xC01A0030\n\tSTATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD                                   NTStatus      = 0xC01B00EA\n\tSTATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED                         NTStatus      = 0x801B00EB\n\tSTATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST                                  NTStatus      = 0x401B00EC\n\tSTATUS_MONITOR_NO_DESCRIPTOR                                              NTStatus      = 0xC01D0001\n\tSTATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT                                  NTStatus      = 0xC01D0002\n\tSTATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM                                NTStatus      = 0xC01D0003\n\tSTATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK                              NTStatus      = 0xC01D0004\n\tSTATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED                          NTStatus      = 0xC01D0005\n\tSTATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK                         NTStatus      = 0xC01D0006\n\tSTATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK                         NTStatus      = 0xC01D0007\n\tSTATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA                                    NTStatus      = 0xC01D0008\n\tSTATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK                              NTStatus      = 0xC01D0009\n\tSTATUS_MONITOR_INVALID_MANUFACTURE_DATE                                   NTStatus      = 0xC01D000A\n\tSTATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER                                  NTStatus      = 0xC01E0000\n\tSTATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER                                   NTStatus      = 0xC01E0001\n\tSTATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER                                   NTStatus      = 0xC01E0002\n\tSTATUS_GRAPHICS_ADAPTER_WAS_RESET                                         NTStatus      = 0xC01E0003\n\tSTATUS_GRAPHICS_INVALID_DRIVER_MODEL                                      NTStatus      = 0xC01E0004\n\tSTATUS_GRAPHICS_PRESENT_MODE_CHANGED                                      NTStatus      = 0xC01E0005\n\tSTATUS_GRAPHICS_PRESENT_OCCLUDED                                          NTStatus      = 0xC01E0006\n\tSTATUS_GRAPHICS_PRESENT_DENIED                                            NTStatus      = 0xC01E0007\n\tSTATUS_GRAPHICS_CANNOTCOLORCONVERT                                        NTStatus      = 0xC01E0008\n\tSTATUS_GRAPHICS_DRIVER_MISMATCH                                           NTStatus      = 0xC01E0009\n\tSTATUS_GRAPHICS_PARTIAL_DATA_POPULATED                                    NTStatus      = 0x401E000A\n\tSTATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED                              NTStatus      = 0xC01E000B\n\tSTATUS_GRAPHICS_PRESENT_UNOCCLUDED                                        NTStatus      = 0xC01E000C\n\tSTATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE                                    NTStatus      = 0xC01E000D\n\tSTATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED                               NTStatus      = 0xC01E000E\n\tSTATUS_GRAPHICS_PRESENT_INVALID_WINDOW                                    NTStatus      = 0xC01E000F\n\tSTATUS_GRAPHICS_PRESENT_BUFFER_NOT_BOUND                                  NTStatus      = 0xC01E0010\n\tSTATUS_GRAPHICS_VAIL_STATE_CHANGED                                        NTStatus      = 0xC01E0011\n\tSTATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN                        NTStatus      = 0xC01E0012\n\tSTATUS_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED                           NTStatus      = 0xC01E0013\n\tSTATUS_GRAPHICS_NO_VIDEO_MEMORY                                           NTStatus      = 0xC01E0100\n\tSTATUS_GRAPHICS_CANT_LOCK_MEMORY                                          NTStatus      = 0xC01E0101\n\tSTATUS_GRAPHICS_ALLOCATION_BUSY                                           NTStatus      = 0xC01E0102\n\tSTATUS_GRAPHICS_TOO_MANY_REFERENCES                                       NTStatus      = 0xC01E0103\n\tSTATUS_GRAPHICS_TRY_AGAIN_LATER                                           NTStatus      = 0xC01E0104\n\tSTATUS_GRAPHICS_TRY_AGAIN_NOW                                             NTStatus      = 0xC01E0105\n\tSTATUS_GRAPHICS_ALLOCATION_INVALID                                        NTStatus      = 0xC01E0106\n\tSTATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE                          NTStatus      = 0xC01E0107\n\tSTATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED                          NTStatus      = 0xC01E0108\n\tSTATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION                              NTStatus      = 0xC01E0109\n\tSTATUS_GRAPHICS_INVALID_ALLOCATION_USAGE                                  NTStatus      = 0xC01E0110\n\tSTATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION                             NTStatus      = 0xC01E0111\n\tSTATUS_GRAPHICS_ALLOCATION_CLOSED                                         NTStatus      = 0xC01E0112\n\tSTATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE                               NTStatus      = 0xC01E0113\n\tSTATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE                                 NTStatus      = 0xC01E0114\n\tSTATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE                                   NTStatus      = 0xC01E0115\n\tSTATUS_GRAPHICS_ALLOCATION_CONTENT_LOST                                   NTStatus      = 0xC01E0116\n\tSTATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE                                   NTStatus      = 0xC01E0200\n\tSTATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION                               NTStatus      = 0x401E0201\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY                                    NTStatus      = 0xC01E0300\n\tSTATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED                              NTStatus      = 0xC01E0301\n\tSTATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED                    NTStatus      = 0xC01E0302\n\tSTATUS_GRAPHICS_INVALID_VIDPN                                             NTStatus      = 0xC01E0303\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE                              NTStatus      = 0xC01E0304\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET                              NTStatus      = 0xC01E0305\n\tSTATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED                              NTStatus      = 0xC01E0306\n\tSTATUS_GRAPHICS_MODE_NOT_PINNED                                           NTStatus      = 0x401E0307\n\tSTATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET                               NTStatus      = 0xC01E0308\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET                               NTStatus      = 0xC01E0309\n\tSTATUS_GRAPHICS_INVALID_FREQUENCY                                         NTStatus      = 0xC01E030A\n\tSTATUS_GRAPHICS_INVALID_ACTIVE_REGION                                     NTStatus      = 0xC01E030B\n\tSTATUS_GRAPHICS_INVALID_TOTAL_REGION                                      NTStatus      = 0xC01E030C\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE                         NTStatus      = 0xC01E0310\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE                         NTStatus      = 0xC01E0311\n\tSTATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET                            NTStatus      = 0xC01E0312\n\tSTATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY                                  NTStatus      = 0xC01E0313\n\tSTATUS_GRAPHICS_MODE_ALREADY_IN_MODESET                                   NTStatus      = 0xC01E0314\n\tSTATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET                             NTStatus      = 0xC01E0315\n\tSTATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET                             NTStatus      = 0xC01E0316\n\tSTATUS_GRAPHICS_SOURCE_ALREADY_IN_SET                                     NTStatus      = 0xC01E0317\n\tSTATUS_GRAPHICS_TARGET_ALREADY_IN_SET                                     NTStatus      = 0xC01E0318\n\tSTATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH                                NTStatus      = 0xC01E0319\n\tSTATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY                             NTStatus      = 0xC01E031A\n\tSTATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET                         NTStatus      = 0xC01E031B\n\tSTATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE                            NTStatus      = 0xC01E031C\n\tSTATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET                                 NTStatus      = 0xC01E031D\n\tSTATUS_GRAPHICS_NO_PREFERRED_MODE                                         NTStatus      = 0x401E031E\n\tSTATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET                             NTStatus      = 0xC01E031F\n\tSTATUS_GRAPHICS_STALE_MODESET                                             NTStatus      = 0xC01E0320\n\tSTATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET                             NTStatus      = 0xC01E0321\n\tSTATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE                               NTStatus      = 0xC01E0322\n\tSTATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN                           NTStatus      = 0xC01E0323\n\tSTATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE                                    NTStatus      = 0xC01E0324\n\tSTATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION           NTStatus      = 0xC01E0325\n\tSTATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES                   NTStatus      = 0xC01E0326\n\tSTATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY                                      NTStatus      = 0xC01E0327\n\tSTATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE                     NTStatus      = 0xC01E0328\n\tSTATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET                     NTStatus      = 0xC01E0329\n\tSTATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET                              NTStatus      = 0xC01E032A\n\tSTATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR                                 NTStatus      = 0xC01E032B\n\tSTATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET                              NTStatus      = 0xC01E032C\n\tSTATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET                          NTStatus      = 0xC01E032D\n\tSTATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE                       NTStatus      = 0xC01E032E\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE                          NTStatus      = 0xC01E032F\n\tSTATUS_GRAPHICS_RESOURCES_NOT_RELATED                                     NTStatus      = 0xC01E0330\n\tSTATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE                                  NTStatus      = 0xC01E0331\n\tSTATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE                                  NTStatus      = 0xC01E0332\n\tSTATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET                                 NTStatus      = 0xC01E0333\n\tSTATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER              NTStatus      = 0xC01E0334\n\tSTATUS_GRAPHICS_NO_VIDPNMGR                                               NTStatus      = 0xC01E0335\n\tSTATUS_GRAPHICS_NO_ACTIVE_VIDPN                                           NTStatus      = 0xC01E0336\n\tSTATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY                                      NTStatus      = 0xC01E0337\n\tSTATUS_GRAPHICS_MONITOR_NOT_CONNECTED                                     NTStatus      = 0xC01E0338\n\tSTATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY                                    NTStatus      = 0xC01E0339\n\tSTATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE                               NTStatus      = 0xC01E033A\n\tSTATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE                                NTStatus      = 0xC01E033B\n\tSTATUS_GRAPHICS_INVALID_STRIDE                                            NTStatus      = 0xC01E033C\n\tSTATUS_GRAPHICS_INVALID_PIXELFORMAT                                       NTStatus      = 0xC01E033D\n\tSTATUS_GRAPHICS_INVALID_COLORBASIS                                        NTStatus      = 0xC01E033E\n\tSTATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE                              NTStatus      = 0xC01E033F\n\tSTATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY                                    NTStatus      = 0xC01E0340\n\tSTATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT                        NTStatus      = 0xC01E0341\n\tSTATUS_GRAPHICS_VIDPN_SOURCE_IN_USE                                       NTStatus      = 0xC01E0342\n\tSTATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN                                  NTStatus      = 0xC01E0343\n\tSTATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL                           NTStatus      = 0xC01E0344\n\tSTATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION              NTStatus      = 0xC01E0345\n\tSTATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED        NTStatus      = 0xC01E0346\n\tSTATUS_GRAPHICS_INVALID_GAMMA_RAMP                                        NTStatus      = 0xC01E0347\n\tSTATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED                                  NTStatus      = 0xC01E0348\n\tSTATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED                               NTStatus      = 0xC01E0349\n\tSTATUS_GRAPHICS_MODE_NOT_IN_MODESET                                       NTStatus      = 0xC01E034A\n\tSTATUS_GRAPHICS_DATASET_IS_EMPTY                                          NTStatus      = 0x401E034B\n\tSTATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET                               NTStatus      = 0x401E034C\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON              NTStatus      = 0xC01E034D\n\tSTATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE                                 NTStatus      = 0xC01E034E\n\tSTATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE                               NTStatus      = 0xC01E034F\n\tSTATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS                         NTStatus      = 0xC01E0350\n\tSTATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED           NTStatus      = 0x401E0351\n\tSTATUS_GRAPHICS_INVALID_SCANLINE_ORDERING                                 NTStatus      = 0xC01E0352\n\tSTATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED                              NTStatus      = 0xC01E0353\n\tSTATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS                          NTStatus      = 0xC01E0354\n\tSTATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT                               NTStatus      = 0xC01E0355\n\tSTATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM                            NTStatus      = 0xC01E0356\n\tSTATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN                         NTStatus      = 0xC01E0357\n\tSTATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT                 NTStatus      = 0xC01E0358\n\tSTATUS_GRAPHICS_MAX_NUM_PATHS_REACHED                                     NTStatus      = 0xC01E0359\n\tSTATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION                        NTStatus      = 0xC01E035A\n\tSTATUS_GRAPHICS_INVALID_CLIENT_TYPE                                       NTStatus      = 0xC01E035B\n\tSTATUS_GRAPHICS_CLIENTVIDPN_NOT_SET                                       NTStatus      = 0xC01E035C\n\tSTATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED                         NTStatus      = 0xC01E0400\n\tSTATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED                            NTStatus      = 0xC01E0401\n\tSTATUS_GRAPHICS_UNKNOWN_CHILD_STATUS                                      NTStatus      = 0x401E042F\n\tSTATUS_GRAPHICS_NOT_A_LINKED_ADAPTER                                      NTStatus      = 0xC01E0430\n\tSTATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED                                   NTStatus      = 0xC01E0431\n\tSTATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED                                 NTStatus      = 0xC01E0432\n\tSTATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY                                   NTStatus      = 0xC01E0433\n\tSTATUS_GRAPHICS_CHAINLINKS_NOT_STARTED                                    NTStatus      = 0xC01E0434\n\tSTATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON                                 NTStatus      = 0xC01E0435\n\tSTATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE                            NTStatus      = 0xC01E0436\n\tSTATUS_GRAPHICS_LEADLINK_START_DEFERRED                                   NTStatus      = 0x401E0437\n\tSTATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER                                    NTStatus      = 0xC01E0438\n\tSTATUS_GRAPHICS_POLLING_TOO_FREQUENTLY                                    NTStatus      = 0x401E0439\n\tSTATUS_GRAPHICS_START_DEFERRED                                            NTStatus      = 0x401E043A\n\tSTATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED                               NTStatus      = 0xC01E043B\n\tSTATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS                                   NTStatus      = 0x401E043C\n\tSTATUS_GRAPHICS_OPM_NOT_SUPPORTED                                         NTStatus      = 0xC01E0500\n\tSTATUS_GRAPHICS_COPP_NOT_SUPPORTED                                        NTStatus      = 0xC01E0501\n\tSTATUS_GRAPHICS_UAB_NOT_SUPPORTED                                         NTStatus      = 0xC01E0502\n\tSTATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS                          NTStatus      = 0xC01E0503\n\tSTATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST                            NTStatus      = 0xC01E0505\n\tSTATUS_GRAPHICS_OPM_INTERNAL_ERROR                                        NTStatus      = 0xC01E050B\n\tSTATUS_GRAPHICS_OPM_INVALID_HANDLE                                        NTStatus      = 0xC01E050C\n\tSTATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH                            NTStatus      = 0xC01E050E\n\tSTATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED                                 NTStatus      = 0xC01E050F\n\tSTATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED                                  NTStatus      = 0xC01E0510\n\tSTATUS_GRAPHICS_PVP_HFS_FAILED                                            NTStatus      = 0xC01E0511\n\tSTATUS_GRAPHICS_OPM_INVALID_SRM                                           NTStatus      = 0xC01E0512\n\tSTATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP                          NTStatus      = 0xC01E0513\n\tSTATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP                           NTStatus      = 0xC01E0514\n\tSTATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA                         NTStatus      = 0xC01E0515\n\tSTATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET                                    NTStatus      = 0xC01E0516\n\tSTATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH                                   NTStatus      = 0xC01E0517\n\tSTATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE                      NTStatus      = 0xC01E0518\n\tSTATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS                     NTStatus      = 0xC01E051A\n\tSTATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS         NTStatus      = 0xC01E051C\n\tSTATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST                           NTStatus      = 0xC01E051D\n\tSTATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR                                 NTStatus      = 0xC01E051E\n\tSTATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS          NTStatus      = 0xC01E051F\n\tSTATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED                               NTStatus      = 0xC01E0520\n\tSTATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST                         NTStatus      = 0xC01E0521\n\tSTATUS_GRAPHICS_I2C_NOT_SUPPORTED                                         NTStatus      = 0xC01E0580\n\tSTATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST                                 NTStatus      = 0xC01E0581\n\tSTATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA                               NTStatus      = 0xC01E0582\n\tSTATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA                                  NTStatus      = 0xC01E0583\n\tSTATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED                                   NTStatus      = 0xC01E0584\n\tSTATUS_GRAPHICS_DDCCI_INVALID_DATA                                        NTStatus      = 0xC01E0585\n\tSTATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE         NTStatus      = 0xC01E0586\n\tSTATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING                         NTStatus      = 0xC01E0587\n\tSTATUS_GRAPHICS_MCA_INTERNAL_ERROR                                        NTStatus      = 0xC01E0588\n\tSTATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND                             NTStatus      = 0xC01E0589\n\tSTATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH                              NTStatus      = 0xC01E058A\n\tSTATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM                            NTStatus      = 0xC01E058B\n\tSTATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE                           NTStatus      = 0xC01E058C\n\tSTATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS                                  NTStatus      = 0xC01E058D\n\tSTATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED                            NTStatus      = 0xC01E05E0\n\tSTATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME                     NTStatus      = 0xC01E05E1\n\tSTATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP                    NTStatus      = 0xC01E05E2\n\tSTATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED                           NTStatus      = 0xC01E05E3\n\tSTATUS_GRAPHICS_INVALID_POINTER                                           NTStatus      = 0xC01E05E4\n\tSTATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE                  NTStatus      = 0xC01E05E5\n\tSTATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL                                 NTStatus      = 0xC01E05E6\n\tSTATUS_GRAPHICS_INTERNAL_ERROR                                            NTStatus      = 0xC01E05E7\n\tSTATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS                           NTStatus      = 0xC01E05E8\n\tSTATUS_FVE_LOCKED_VOLUME                                                  NTStatus      = 0xC0210000\n\tSTATUS_FVE_NOT_ENCRYPTED                                                  NTStatus      = 0xC0210001\n\tSTATUS_FVE_BAD_INFORMATION                                                NTStatus      = 0xC0210002\n\tSTATUS_FVE_TOO_SMALL                                                      NTStatus      = 0xC0210003\n\tSTATUS_FVE_FAILED_WRONG_FS                                                NTStatus      = 0xC0210004\n\tSTATUS_FVE_BAD_PARTITION_SIZE                                             NTStatus      = 0xC0210005\n\tSTATUS_FVE_FS_NOT_EXTENDED                                                NTStatus      = 0xC0210006\n\tSTATUS_FVE_FS_MOUNTED                                                     NTStatus      = 0xC0210007\n\tSTATUS_FVE_NO_LICENSE                                                     NTStatus      = 0xC0210008\n\tSTATUS_FVE_ACTION_NOT_ALLOWED                                             NTStatus      = 0xC0210009\n\tSTATUS_FVE_BAD_DATA                                                       NTStatus      = 0xC021000A\n\tSTATUS_FVE_VOLUME_NOT_BOUND                                               NTStatus      = 0xC021000B\n\tSTATUS_FVE_NOT_DATA_VOLUME                                                NTStatus      = 0xC021000C\n\tSTATUS_FVE_CONV_READ_ERROR                                                NTStatus      = 0xC021000D\n\tSTATUS_FVE_CONV_WRITE_ERROR                                               NTStatus      = 0xC021000E\n\tSTATUS_FVE_OVERLAPPED_UPDATE                                              NTStatus      = 0xC021000F\n\tSTATUS_FVE_FAILED_SECTOR_SIZE                                             NTStatus      = 0xC0210010\n\tSTATUS_FVE_FAILED_AUTHENTICATION                                          NTStatus      = 0xC0210011\n\tSTATUS_FVE_NOT_OS_VOLUME                                                  NTStatus      = 0xC0210012\n\tSTATUS_FVE_KEYFILE_NOT_FOUND                                              NTStatus      = 0xC0210013\n\tSTATUS_FVE_KEYFILE_INVALID                                                NTStatus      = 0xC0210014\n\tSTATUS_FVE_KEYFILE_NO_VMK                                                 NTStatus      = 0xC0210015\n\tSTATUS_FVE_TPM_DISABLED                                                   NTStatus      = 0xC0210016\n\tSTATUS_FVE_TPM_SRK_AUTH_NOT_ZERO                                          NTStatus      = 0xC0210017\n\tSTATUS_FVE_TPM_INVALID_PCR                                                NTStatus      = 0xC0210018\n\tSTATUS_FVE_TPM_NO_VMK                                                     NTStatus      = 0xC0210019\n\tSTATUS_FVE_PIN_INVALID                                                    NTStatus      = 0xC021001A\n\tSTATUS_FVE_AUTH_INVALID_APPLICATION                                       NTStatus      = 0xC021001B\n\tSTATUS_FVE_AUTH_INVALID_CONFIG                                            NTStatus      = 0xC021001C\n\tSTATUS_FVE_DEBUGGER_ENABLED                                               NTStatus      = 0xC021001D\n\tSTATUS_FVE_DRY_RUN_FAILED                                                 NTStatus      = 0xC021001E\n\tSTATUS_FVE_BAD_METADATA_POINTER                                           NTStatus      = 0xC021001F\n\tSTATUS_FVE_OLD_METADATA_COPY                                              NTStatus      = 0xC0210020\n\tSTATUS_FVE_REBOOT_REQUIRED                                                NTStatus      = 0xC0210021\n\tSTATUS_FVE_RAW_ACCESS                                                     NTStatus      = 0xC0210022\n\tSTATUS_FVE_RAW_BLOCKED                                                    NTStatus      = 0xC0210023\n\tSTATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY                                       NTStatus      = 0xC0210024\n\tSTATUS_FVE_MOR_FAILED                                                     NTStatus      = 0xC0210025\n\tSTATUS_FVE_NO_FEATURE_LICENSE                                             NTStatus      = 0xC0210026\n\tSTATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED                            NTStatus      = 0xC0210027\n\tSTATUS_FVE_CONV_RECOVERY_FAILED                                           NTStatus      = 0xC0210028\n\tSTATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG                                      NTStatus      = 0xC0210029\n\tSTATUS_FVE_INVALID_DATUM_TYPE                                             NTStatus      = 0xC021002A\n\tSTATUS_FVE_VOLUME_TOO_SMALL                                               NTStatus      = 0xC0210030\n\tSTATUS_FVE_ENH_PIN_INVALID                                                NTStatus      = 0xC0210031\n\tSTATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE                      NTStatus      = 0xC0210032\n\tSTATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE                                 NTStatus      = 0xC0210033\n\tSTATUS_FVE_NOT_ALLOWED_ON_CSV_STACK                                       NTStatus      = 0xC0210034\n\tSTATUS_FVE_NOT_ALLOWED_ON_CLUSTER                                         NTStatus      = 0xC0210035\n\tSTATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING                        NTStatus      = 0xC0210036\n\tSTATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE                                     NTStatus      = 0xC0210037\n\tSTATUS_FVE_EDRIVE_DRY_RUN_FAILED                                          NTStatus      = 0xC0210038\n\tSTATUS_FVE_SECUREBOOT_DISABLED                                            NTStatus      = 0xC0210039\n\tSTATUS_FVE_SECUREBOOT_CONFIG_CHANGE                                       NTStatus      = 0xC021003A\n\tSTATUS_FVE_DEVICE_LOCKEDOUT                                               NTStatus      = 0xC021003B\n\tSTATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT                             NTStatus      = 0xC021003C\n\tSTATUS_FVE_NOT_DE_VOLUME                                                  NTStatus      = 0xC021003D\n\tSTATUS_FVE_PROTECTION_DISABLED                                            NTStatus      = 0xC021003E\n\tSTATUS_FVE_PROTECTION_CANNOT_BE_DISABLED                                  NTStatus      = 0xC021003F\n\tSTATUS_FVE_OSV_KSR_NOT_ALLOWED                                            NTStatus      = 0xC0210040\n\tSTATUS_FWP_CALLOUT_NOT_FOUND                                              NTStatus      = 0xC0220001\n\tSTATUS_FWP_CONDITION_NOT_FOUND                                            NTStatus      = 0xC0220002\n\tSTATUS_FWP_FILTER_NOT_FOUND                                               NTStatus      = 0xC0220003\n\tSTATUS_FWP_LAYER_NOT_FOUND                                                NTStatus      = 0xC0220004\n\tSTATUS_FWP_PROVIDER_NOT_FOUND                                             NTStatus      = 0xC0220005\n\tSTATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND                                     NTStatus      = 0xC0220006\n\tSTATUS_FWP_SUBLAYER_NOT_FOUND                                             NTStatus      = 0xC0220007\n\tSTATUS_FWP_NOT_FOUND                                                      NTStatus      = 0xC0220008\n\tSTATUS_FWP_ALREADY_EXISTS                                                 NTStatus      = 0xC0220009\n\tSTATUS_FWP_IN_USE                                                         NTStatus      = 0xC022000A\n\tSTATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS                                    NTStatus      = 0xC022000B\n\tSTATUS_FWP_WRONG_SESSION                                                  NTStatus      = 0xC022000C\n\tSTATUS_FWP_NO_TXN_IN_PROGRESS                                             NTStatus      = 0xC022000D\n\tSTATUS_FWP_TXN_IN_PROGRESS                                                NTStatus      = 0xC022000E\n\tSTATUS_FWP_TXN_ABORTED                                                    NTStatus      = 0xC022000F\n\tSTATUS_FWP_SESSION_ABORTED                                                NTStatus      = 0xC0220010\n\tSTATUS_FWP_INCOMPATIBLE_TXN                                               NTStatus      = 0xC0220011\n\tSTATUS_FWP_TIMEOUT                                                        NTStatus      = 0xC0220012\n\tSTATUS_FWP_NET_EVENTS_DISABLED                                            NTStatus      = 0xC0220013\n\tSTATUS_FWP_INCOMPATIBLE_LAYER                                             NTStatus      = 0xC0220014\n\tSTATUS_FWP_KM_CLIENTS_ONLY                                                NTStatus      = 0xC0220015\n\tSTATUS_FWP_LIFETIME_MISMATCH                                              NTStatus      = 0xC0220016\n\tSTATUS_FWP_BUILTIN_OBJECT                                                 NTStatus      = 0xC0220017\n\tSTATUS_FWP_TOO_MANY_CALLOUTS                                              NTStatus      = 0xC0220018\n\tSTATUS_FWP_NOTIFICATION_DROPPED                                           NTStatus      = 0xC0220019\n\tSTATUS_FWP_TRAFFIC_MISMATCH                                               NTStatus      = 0xC022001A\n\tSTATUS_FWP_INCOMPATIBLE_SA_STATE                                          NTStatus      = 0xC022001B\n\tSTATUS_FWP_NULL_POINTER                                                   NTStatus      = 0xC022001C\n\tSTATUS_FWP_INVALID_ENUMERATOR                                             NTStatus      = 0xC022001D\n\tSTATUS_FWP_INVALID_FLAGS                                                  NTStatus      = 0xC022001E\n\tSTATUS_FWP_INVALID_NET_MASK                                               NTStatus      = 0xC022001F\n\tSTATUS_FWP_INVALID_RANGE                                                  NTStatus      = 0xC0220020\n\tSTATUS_FWP_INVALID_INTERVAL                                               NTStatus      = 0xC0220021\n\tSTATUS_FWP_ZERO_LENGTH_ARRAY                                              NTStatus      = 0xC0220022\n\tSTATUS_FWP_NULL_DISPLAY_NAME                                              NTStatus      = 0xC0220023\n\tSTATUS_FWP_INVALID_ACTION_TYPE                                            NTStatus      = 0xC0220024\n\tSTATUS_FWP_INVALID_WEIGHT                                                 NTStatus      = 0xC0220025\n\tSTATUS_FWP_MATCH_TYPE_MISMATCH                                            NTStatus      = 0xC0220026\n\tSTATUS_FWP_TYPE_MISMATCH                                                  NTStatus      = 0xC0220027\n\tSTATUS_FWP_OUT_OF_BOUNDS                                                  NTStatus      = 0xC0220028\n\tSTATUS_FWP_RESERVED                                                       NTStatus      = 0xC0220029\n\tSTATUS_FWP_DUPLICATE_CONDITION                                            NTStatus      = 0xC022002A\n\tSTATUS_FWP_DUPLICATE_KEYMOD                                               NTStatus      = 0xC022002B\n\tSTATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER                                 NTStatus      = 0xC022002C\n\tSTATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER                              NTStatus      = 0xC022002D\n\tSTATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER                                NTStatus      = 0xC022002E\n\tSTATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT                              NTStatus      = 0xC022002F\n\tSTATUS_FWP_INCOMPATIBLE_AUTH_METHOD                                       NTStatus      = 0xC0220030\n\tSTATUS_FWP_INCOMPATIBLE_DH_GROUP                                          NTStatus      = 0xC0220031\n\tSTATUS_FWP_EM_NOT_SUPPORTED                                               NTStatus      = 0xC0220032\n\tSTATUS_FWP_NEVER_MATCH                                                    NTStatus      = 0xC0220033\n\tSTATUS_FWP_PROVIDER_CONTEXT_MISMATCH                                      NTStatus      = 0xC0220034\n\tSTATUS_FWP_INVALID_PARAMETER                                              NTStatus      = 0xC0220035\n\tSTATUS_FWP_TOO_MANY_SUBLAYERS                                             NTStatus      = 0xC0220036\n\tSTATUS_FWP_CALLOUT_NOTIFICATION_FAILED                                    NTStatus      = 0xC0220037\n\tSTATUS_FWP_INVALID_AUTH_TRANSFORM                                         NTStatus      = 0xC0220038\n\tSTATUS_FWP_INVALID_CIPHER_TRANSFORM                                       NTStatus      = 0xC0220039\n\tSTATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM                                  NTStatus      = 0xC022003A\n\tSTATUS_FWP_INVALID_TRANSFORM_COMBINATION                                  NTStatus      = 0xC022003B\n\tSTATUS_FWP_DUPLICATE_AUTH_METHOD                                          NTStatus      = 0xC022003C\n\tSTATUS_FWP_INVALID_TUNNEL_ENDPOINT                                        NTStatus      = 0xC022003D\n\tSTATUS_FWP_L2_DRIVER_NOT_READY                                            NTStatus      = 0xC022003E\n\tSTATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED                                NTStatus      = 0xC022003F\n\tSTATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL                          NTStatus      = 0xC0220040\n\tSTATUS_FWP_CONNECTIONS_DISABLED                                           NTStatus      = 0xC0220041\n\tSTATUS_FWP_INVALID_DNS_NAME                                               NTStatus      = 0xC0220042\n\tSTATUS_FWP_STILL_ON                                                       NTStatus      = 0xC0220043\n\tSTATUS_FWP_IKEEXT_NOT_RUNNING                                             NTStatus      = 0xC0220044\n\tSTATUS_FWP_TCPIP_NOT_READY                                                NTStatus      = 0xC0220100\n\tSTATUS_FWP_INJECT_HANDLE_CLOSING                                          NTStatus      = 0xC0220101\n\tSTATUS_FWP_INJECT_HANDLE_STALE                                            NTStatus      = 0xC0220102\n\tSTATUS_FWP_CANNOT_PEND                                                    NTStatus      = 0xC0220103\n\tSTATUS_FWP_DROP_NOICMP                                                    NTStatus      = 0xC0220104\n\tSTATUS_NDIS_CLOSING                                                       NTStatus      = 0xC0230002\n\tSTATUS_NDIS_BAD_VERSION                                                   NTStatus      = 0xC0230004\n\tSTATUS_NDIS_BAD_CHARACTERISTICS                                           NTStatus      = 0xC0230005\n\tSTATUS_NDIS_ADAPTER_NOT_FOUND                                             NTStatus      = 0xC0230006\n\tSTATUS_NDIS_OPEN_FAILED                                                   NTStatus      = 0xC0230007\n\tSTATUS_NDIS_DEVICE_FAILED                                                 NTStatus      = 0xC0230008\n\tSTATUS_NDIS_MULTICAST_FULL                                                NTStatus      = 0xC0230009\n\tSTATUS_NDIS_MULTICAST_EXISTS                                              NTStatus      = 0xC023000A\n\tSTATUS_NDIS_MULTICAST_NOT_FOUND                                           NTStatus      = 0xC023000B\n\tSTATUS_NDIS_REQUEST_ABORTED                                               NTStatus      = 0xC023000C\n\tSTATUS_NDIS_RESET_IN_PROGRESS                                             NTStatus      = 0xC023000D\n\tSTATUS_NDIS_NOT_SUPPORTED                                                 NTStatus      = 0xC02300BB\n\tSTATUS_NDIS_INVALID_PACKET                                                NTStatus      = 0xC023000F\n\tSTATUS_NDIS_ADAPTER_NOT_READY                                             NTStatus      = 0xC0230011\n\tSTATUS_NDIS_INVALID_LENGTH                                                NTStatus      = 0xC0230014\n\tSTATUS_NDIS_INVALID_DATA                                                  NTStatus      = 0xC0230015\n\tSTATUS_NDIS_BUFFER_TOO_SHORT                                              NTStatus      = 0xC0230016\n\tSTATUS_NDIS_INVALID_OID                                                   NTStatus      = 0xC0230017\n\tSTATUS_NDIS_ADAPTER_REMOVED                                               NTStatus      = 0xC0230018\n\tSTATUS_NDIS_UNSUPPORTED_MEDIA                                             NTStatus      = 0xC0230019\n\tSTATUS_NDIS_GROUP_ADDRESS_IN_USE                                          NTStatus      = 0xC023001A\n\tSTATUS_NDIS_FILE_NOT_FOUND                                                NTStatus      = 0xC023001B\n\tSTATUS_NDIS_ERROR_READING_FILE                                            NTStatus      = 0xC023001C\n\tSTATUS_NDIS_ALREADY_MAPPED                                                NTStatus      = 0xC023001D\n\tSTATUS_NDIS_RESOURCE_CONFLICT                                             NTStatus      = 0xC023001E\n\tSTATUS_NDIS_MEDIA_DISCONNECTED                                            NTStatus      = 0xC023001F\n\tSTATUS_NDIS_INVALID_ADDRESS                                               NTStatus      = 0xC0230022\n\tSTATUS_NDIS_INVALID_DEVICE_REQUEST                                        NTStatus      = 0xC0230010\n\tSTATUS_NDIS_PAUSED                                                        NTStatus      = 0xC023002A\n\tSTATUS_NDIS_INTERFACE_NOT_FOUND                                           NTStatus      = 0xC023002B\n\tSTATUS_NDIS_UNSUPPORTED_REVISION                                          NTStatus      = 0xC023002C\n\tSTATUS_NDIS_INVALID_PORT                                                  NTStatus      = 0xC023002D\n\tSTATUS_NDIS_INVALID_PORT_STATE                                            NTStatus      = 0xC023002E\n\tSTATUS_NDIS_LOW_POWER_STATE                                               NTStatus      = 0xC023002F\n\tSTATUS_NDIS_REINIT_REQUIRED                                               NTStatus      = 0xC0230030\n\tSTATUS_NDIS_NO_QUEUES                                                     NTStatus      = 0xC0230031\n\tSTATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED                                     NTStatus      = 0xC0232000\n\tSTATUS_NDIS_DOT11_MEDIA_IN_USE                                            NTStatus      = 0xC0232001\n\tSTATUS_NDIS_DOT11_POWER_STATE_INVALID                                     NTStatus      = 0xC0232002\n\tSTATUS_NDIS_PM_WOL_PATTERN_LIST_FULL                                      NTStatus      = 0xC0232003\n\tSTATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL                                 NTStatus      = 0xC0232004\n\tSTATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE                      NTStatus      = 0xC0232005\n\tSTATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE                         NTStatus      = 0xC0232006\n\tSTATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED                                  NTStatus      = 0xC0232007\n\tSTATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED                                     NTStatus      = 0xC0232008\n\tSTATUS_NDIS_INDICATION_REQUIRED                                           NTStatus      = 0x40230001\n\tSTATUS_NDIS_OFFLOAD_POLICY                                                NTStatus      = 0xC023100F\n\tSTATUS_NDIS_OFFLOAD_CONNECTION_REJECTED                                   NTStatus      = 0xC0231012\n\tSTATUS_NDIS_OFFLOAD_PATH_REJECTED                                         NTStatus      = 0xC0231013\n\tSTATUS_TPM_ERROR_MASK                                                     NTStatus      = 0xC0290000\n\tSTATUS_TPM_AUTHFAIL                                                       NTStatus      = 0xC0290001\n\tSTATUS_TPM_BADINDEX                                                       NTStatus      = 0xC0290002\n\tSTATUS_TPM_BAD_PARAMETER                                                  NTStatus      = 0xC0290003\n\tSTATUS_TPM_AUDITFAILURE                                                   NTStatus      = 0xC0290004\n\tSTATUS_TPM_CLEAR_DISABLED                                                 NTStatus      = 0xC0290005\n\tSTATUS_TPM_DEACTIVATED                                                    NTStatus      = 0xC0290006\n\tSTATUS_TPM_DISABLED                                                       NTStatus      = 0xC0290007\n\tSTATUS_TPM_DISABLED_CMD                                                   NTStatus      = 0xC0290008\n\tSTATUS_TPM_FAIL                                                           NTStatus      = 0xC0290009\n\tSTATUS_TPM_BAD_ORDINAL                                                    NTStatus      = 0xC029000A\n\tSTATUS_TPM_INSTALL_DISABLED                                               NTStatus      = 0xC029000B\n\tSTATUS_TPM_INVALID_KEYHANDLE                                              NTStatus      = 0xC029000C\n\tSTATUS_TPM_KEYNOTFOUND                                                    NTStatus      = 0xC029000D\n\tSTATUS_TPM_INAPPROPRIATE_ENC                                              NTStatus      = 0xC029000E\n\tSTATUS_TPM_MIGRATEFAIL                                                    NTStatus      = 0xC029000F\n\tSTATUS_TPM_INVALID_PCR_INFO                                               NTStatus      = 0xC0290010\n\tSTATUS_TPM_NOSPACE                                                        NTStatus      = 0xC0290011\n\tSTATUS_TPM_NOSRK                                                          NTStatus      = 0xC0290012\n\tSTATUS_TPM_NOTSEALED_BLOB                                                 NTStatus      = 0xC0290013\n\tSTATUS_TPM_OWNER_SET                                                      NTStatus      = 0xC0290014\n\tSTATUS_TPM_RESOURCES                                                      NTStatus      = 0xC0290015\n\tSTATUS_TPM_SHORTRANDOM                                                    NTStatus      = 0xC0290016\n\tSTATUS_TPM_SIZE                                                           NTStatus      = 0xC0290017\n\tSTATUS_TPM_WRONGPCRVAL                                                    NTStatus      = 0xC0290018\n\tSTATUS_TPM_BAD_PARAM_SIZE                                                 NTStatus      = 0xC0290019\n\tSTATUS_TPM_SHA_THREAD                                                     NTStatus      = 0xC029001A\n\tSTATUS_TPM_SHA_ERROR                                                      NTStatus      = 0xC029001B\n\tSTATUS_TPM_FAILEDSELFTEST                                                 NTStatus      = 0xC029001C\n\tSTATUS_TPM_AUTH2FAIL                                                      NTStatus      = 0xC029001D\n\tSTATUS_TPM_BADTAG                                                         NTStatus      = 0xC029001E\n\tSTATUS_TPM_IOERROR                                                        NTStatus      = 0xC029001F\n\tSTATUS_TPM_ENCRYPT_ERROR                                                  NTStatus      = 0xC0290020\n\tSTATUS_TPM_DECRYPT_ERROR                                                  NTStatus      = 0xC0290021\n\tSTATUS_TPM_INVALID_AUTHHANDLE                                             NTStatus      = 0xC0290022\n\tSTATUS_TPM_NO_ENDORSEMENT                                                 NTStatus      = 0xC0290023\n\tSTATUS_TPM_INVALID_KEYUSAGE                                               NTStatus      = 0xC0290024\n\tSTATUS_TPM_WRONG_ENTITYTYPE                                               NTStatus      = 0xC0290025\n\tSTATUS_TPM_INVALID_POSTINIT                                               NTStatus      = 0xC0290026\n\tSTATUS_TPM_INAPPROPRIATE_SIG                                              NTStatus      = 0xC0290027\n\tSTATUS_TPM_BAD_KEY_PROPERTY                                               NTStatus      = 0xC0290028\n\tSTATUS_TPM_BAD_MIGRATION                                                  NTStatus      = 0xC0290029\n\tSTATUS_TPM_BAD_SCHEME                                                     NTStatus      = 0xC029002A\n\tSTATUS_TPM_BAD_DATASIZE                                                   NTStatus      = 0xC029002B\n\tSTATUS_TPM_BAD_MODE                                                       NTStatus      = 0xC029002C\n\tSTATUS_TPM_BAD_PRESENCE                                                   NTStatus      = 0xC029002D\n\tSTATUS_TPM_BAD_VERSION                                                    NTStatus      = 0xC029002E\n\tSTATUS_TPM_NO_WRAP_TRANSPORT                                              NTStatus      = 0xC029002F\n\tSTATUS_TPM_AUDITFAIL_UNSUCCESSFUL                                         NTStatus      = 0xC0290030\n\tSTATUS_TPM_AUDITFAIL_SUCCESSFUL                                           NTStatus      = 0xC0290031\n\tSTATUS_TPM_NOTRESETABLE                                                   NTStatus      = 0xC0290032\n\tSTATUS_TPM_NOTLOCAL                                                       NTStatus      = 0xC0290033\n\tSTATUS_TPM_BAD_TYPE                                                       NTStatus      = 0xC0290034\n\tSTATUS_TPM_INVALID_RESOURCE                                               NTStatus      = 0xC0290035\n\tSTATUS_TPM_NOTFIPS                                                        NTStatus      = 0xC0290036\n\tSTATUS_TPM_INVALID_FAMILY                                                 NTStatus      = 0xC0290037\n\tSTATUS_TPM_NO_NV_PERMISSION                                               NTStatus      = 0xC0290038\n\tSTATUS_TPM_REQUIRES_SIGN                                                  NTStatus      = 0xC0290039\n\tSTATUS_TPM_KEY_NOTSUPPORTED                                               NTStatus      = 0xC029003A\n\tSTATUS_TPM_AUTH_CONFLICT                                                  NTStatus      = 0xC029003B\n\tSTATUS_TPM_AREA_LOCKED                                                    NTStatus      = 0xC029003C\n\tSTATUS_TPM_BAD_LOCALITY                                                   NTStatus      = 0xC029003D\n\tSTATUS_TPM_READ_ONLY                                                      NTStatus      = 0xC029003E\n\tSTATUS_TPM_PER_NOWRITE                                                    NTStatus      = 0xC029003F\n\tSTATUS_TPM_FAMILYCOUNT                                                    NTStatus      = 0xC0290040\n\tSTATUS_TPM_WRITE_LOCKED                                                   NTStatus      = 0xC0290041\n\tSTATUS_TPM_BAD_ATTRIBUTES                                                 NTStatus      = 0xC0290042\n\tSTATUS_TPM_INVALID_STRUCTURE                                              NTStatus      = 0xC0290043\n\tSTATUS_TPM_KEY_OWNER_CONTROL                                              NTStatus      = 0xC0290044\n\tSTATUS_TPM_BAD_COUNTER                                                    NTStatus      = 0xC0290045\n\tSTATUS_TPM_NOT_FULLWRITE                                                  NTStatus      = 0xC0290046\n\tSTATUS_TPM_CONTEXT_GAP                                                    NTStatus      = 0xC0290047\n\tSTATUS_TPM_MAXNVWRITES                                                    NTStatus      = 0xC0290048\n\tSTATUS_TPM_NOOPERATOR                                                     NTStatus      = 0xC0290049\n\tSTATUS_TPM_RESOURCEMISSING                                                NTStatus      = 0xC029004A\n\tSTATUS_TPM_DELEGATE_LOCK                                                  NTStatus      = 0xC029004B\n\tSTATUS_TPM_DELEGATE_FAMILY                                                NTStatus      = 0xC029004C\n\tSTATUS_TPM_DELEGATE_ADMIN                                                 NTStatus      = 0xC029004D\n\tSTATUS_TPM_TRANSPORT_NOTEXCLUSIVE                                         NTStatus      = 0xC029004E\n\tSTATUS_TPM_OWNER_CONTROL                                                  NTStatus      = 0xC029004F\n\tSTATUS_TPM_DAA_RESOURCES                                                  NTStatus      = 0xC0290050\n\tSTATUS_TPM_DAA_INPUT_DATA0                                                NTStatus      = 0xC0290051\n\tSTATUS_TPM_DAA_INPUT_DATA1                                                NTStatus      = 0xC0290052\n\tSTATUS_TPM_DAA_ISSUER_SETTINGS                                            NTStatus      = 0xC0290053\n\tSTATUS_TPM_DAA_TPM_SETTINGS                                               NTStatus      = 0xC0290054\n\tSTATUS_TPM_DAA_STAGE                                                      NTStatus      = 0xC0290055\n\tSTATUS_TPM_DAA_ISSUER_VALIDITY                                            NTStatus      = 0xC0290056\n\tSTATUS_TPM_DAA_WRONG_W                                                    NTStatus      = 0xC0290057\n\tSTATUS_TPM_BAD_HANDLE                                                     NTStatus      = 0xC0290058\n\tSTATUS_TPM_BAD_DELEGATE                                                   NTStatus      = 0xC0290059\n\tSTATUS_TPM_BADCONTEXT                                                     NTStatus      = 0xC029005A\n\tSTATUS_TPM_TOOMANYCONTEXTS                                                NTStatus      = 0xC029005B\n\tSTATUS_TPM_MA_TICKET_SIGNATURE                                            NTStatus      = 0xC029005C\n\tSTATUS_TPM_MA_DESTINATION                                                 NTStatus      = 0xC029005D\n\tSTATUS_TPM_MA_SOURCE                                                      NTStatus      = 0xC029005E\n\tSTATUS_TPM_MA_AUTHORITY                                                   NTStatus      = 0xC029005F\n\tSTATUS_TPM_PERMANENTEK                                                    NTStatus      = 0xC0290061\n\tSTATUS_TPM_BAD_SIGNATURE                                                  NTStatus      = 0xC0290062\n\tSTATUS_TPM_NOCONTEXTSPACE                                                 NTStatus      = 0xC0290063\n\tSTATUS_TPM_20_E_ASYMMETRIC                                                NTStatus      = 0xC0290081\n\tSTATUS_TPM_20_E_ATTRIBUTES                                                NTStatus      = 0xC0290082\n\tSTATUS_TPM_20_E_HASH                                                      NTStatus      = 0xC0290083\n\tSTATUS_TPM_20_E_VALUE                                                     NTStatus      = 0xC0290084\n\tSTATUS_TPM_20_E_HIERARCHY                                                 NTStatus      = 0xC0290085\n\tSTATUS_TPM_20_E_KEY_SIZE                                                  NTStatus      = 0xC0290087\n\tSTATUS_TPM_20_E_MGF                                                       NTStatus      = 0xC0290088\n\tSTATUS_TPM_20_E_MODE                                                      NTStatus      = 0xC0290089\n\tSTATUS_TPM_20_E_TYPE                                                      NTStatus      = 0xC029008A\n\tSTATUS_TPM_20_E_HANDLE                                                    NTStatus      = 0xC029008B\n\tSTATUS_TPM_20_E_KDF                                                       NTStatus      = 0xC029008C\n\tSTATUS_TPM_20_E_RANGE                                                     NTStatus      = 0xC029008D\n\tSTATUS_TPM_20_E_AUTH_FAIL                                                 NTStatus      = 0xC029008E\n\tSTATUS_TPM_20_E_NONCE                                                     NTStatus      = 0xC029008F\n\tSTATUS_TPM_20_E_PP                                                        NTStatus      = 0xC0290090\n\tSTATUS_TPM_20_E_SCHEME                                                    NTStatus      = 0xC0290092\n\tSTATUS_TPM_20_E_SIZE                                                      NTStatus      = 0xC0290095\n\tSTATUS_TPM_20_E_SYMMETRIC                                                 NTStatus      = 0xC0290096\n\tSTATUS_TPM_20_E_TAG                                                       NTStatus      = 0xC0290097\n\tSTATUS_TPM_20_E_SELECTOR                                                  NTStatus      = 0xC0290098\n\tSTATUS_TPM_20_E_INSUFFICIENT                                              NTStatus      = 0xC029009A\n\tSTATUS_TPM_20_E_SIGNATURE                                                 NTStatus      = 0xC029009B\n\tSTATUS_TPM_20_E_KEY                                                       NTStatus      = 0xC029009C\n\tSTATUS_TPM_20_E_POLICY_FAIL                                               NTStatus      = 0xC029009D\n\tSTATUS_TPM_20_E_INTEGRITY                                                 NTStatus      = 0xC029009F\n\tSTATUS_TPM_20_E_TICKET                                                    NTStatus      = 0xC02900A0\n\tSTATUS_TPM_20_E_RESERVED_BITS                                             NTStatus      = 0xC02900A1\n\tSTATUS_TPM_20_E_BAD_AUTH                                                  NTStatus      = 0xC02900A2\n\tSTATUS_TPM_20_E_EXPIRED                                                   NTStatus      = 0xC02900A3\n\tSTATUS_TPM_20_E_POLICY_CC                                                 NTStatus      = 0xC02900A4\n\tSTATUS_TPM_20_E_BINDING                                                   NTStatus      = 0xC02900A5\n\tSTATUS_TPM_20_E_CURVE                                                     NTStatus      = 0xC02900A6\n\tSTATUS_TPM_20_E_ECC_POINT                                                 NTStatus      = 0xC02900A7\n\tSTATUS_TPM_20_E_INITIALIZE                                                NTStatus      = 0xC0290100\n\tSTATUS_TPM_20_E_FAILURE                                                   NTStatus      = 0xC0290101\n\tSTATUS_TPM_20_E_SEQUENCE                                                  NTStatus      = 0xC0290103\n\tSTATUS_TPM_20_E_PRIVATE                                                   NTStatus      = 0xC029010B\n\tSTATUS_TPM_20_E_HMAC                                                      NTStatus      = 0xC0290119\n\tSTATUS_TPM_20_E_DISABLED                                                  NTStatus      = 0xC0290120\n\tSTATUS_TPM_20_E_EXCLUSIVE                                                 NTStatus      = 0xC0290121\n\tSTATUS_TPM_20_E_ECC_CURVE                                                 NTStatus      = 0xC0290123\n\tSTATUS_TPM_20_E_AUTH_TYPE                                                 NTStatus      = 0xC0290124\n\tSTATUS_TPM_20_E_AUTH_MISSING                                              NTStatus      = 0xC0290125\n\tSTATUS_TPM_20_E_POLICY                                                    NTStatus      = 0xC0290126\n\tSTATUS_TPM_20_E_PCR                                                       NTStatus      = 0xC0290127\n\tSTATUS_TPM_20_E_PCR_CHANGED                                               NTStatus      = 0xC0290128\n\tSTATUS_TPM_20_E_UPGRADE                                                   NTStatus      = 0xC029012D\n\tSTATUS_TPM_20_E_TOO_MANY_CONTEXTS                                         NTStatus      = 0xC029012E\n\tSTATUS_TPM_20_E_AUTH_UNAVAILABLE                                          NTStatus      = 0xC029012F\n\tSTATUS_TPM_20_E_REBOOT                                                    NTStatus      = 0xC0290130\n\tSTATUS_TPM_20_E_UNBALANCED                                                NTStatus      = 0xC0290131\n\tSTATUS_TPM_20_E_COMMAND_SIZE                                              NTStatus      = 0xC0290142\n\tSTATUS_TPM_20_E_COMMAND_CODE                                              NTStatus      = 0xC0290143\n\tSTATUS_TPM_20_E_AUTHSIZE                                                  NTStatus      = 0xC0290144\n\tSTATUS_TPM_20_E_AUTH_CONTEXT                                              NTStatus      = 0xC0290145\n\tSTATUS_TPM_20_E_NV_RANGE                                                  NTStatus      = 0xC0290146\n\tSTATUS_TPM_20_E_NV_SIZE                                                   NTStatus      = 0xC0290147\n\tSTATUS_TPM_20_E_NV_LOCKED                                                 NTStatus      = 0xC0290148\n\tSTATUS_TPM_20_E_NV_AUTHORIZATION                                          NTStatus      = 0xC0290149\n\tSTATUS_TPM_20_E_NV_UNINITIALIZED                                          NTStatus      = 0xC029014A\n\tSTATUS_TPM_20_E_NV_SPACE                                                  NTStatus      = 0xC029014B\n\tSTATUS_TPM_20_E_NV_DEFINED                                                NTStatus      = 0xC029014C\n\tSTATUS_TPM_20_E_BAD_CONTEXT                                               NTStatus      = 0xC0290150\n\tSTATUS_TPM_20_E_CPHASH                                                    NTStatus      = 0xC0290151\n\tSTATUS_TPM_20_E_PARENT                                                    NTStatus      = 0xC0290152\n\tSTATUS_TPM_20_E_NEEDS_TEST                                                NTStatus      = 0xC0290153\n\tSTATUS_TPM_20_E_NO_RESULT                                                 NTStatus      = 0xC0290154\n\tSTATUS_TPM_20_E_SENSITIVE                                                 NTStatus      = 0xC0290155\n\tSTATUS_TPM_COMMAND_BLOCKED                                                NTStatus      = 0xC0290400\n\tSTATUS_TPM_INVALID_HANDLE                                                 NTStatus      = 0xC0290401\n\tSTATUS_TPM_DUPLICATE_VHANDLE                                              NTStatus      = 0xC0290402\n\tSTATUS_TPM_EMBEDDED_COMMAND_BLOCKED                                       NTStatus      = 0xC0290403\n\tSTATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED                                   NTStatus      = 0xC0290404\n\tSTATUS_TPM_RETRY                                                          NTStatus      = 0xC0290800\n\tSTATUS_TPM_NEEDS_SELFTEST                                                 NTStatus      = 0xC0290801\n\tSTATUS_TPM_DOING_SELFTEST                                                 NTStatus      = 0xC0290802\n\tSTATUS_TPM_DEFEND_LOCK_RUNNING                                            NTStatus      = 0xC0290803\n\tSTATUS_TPM_COMMAND_CANCELED                                               NTStatus      = 0xC0291001\n\tSTATUS_TPM_TOO_MANY_CONTEXTS                                              NTStatus      = 0xC0291002\n\tSTATUS_TPM_NOT_FOUND                                                      NTStatus      = 0xC0291003\n\tSTATUS_TPM_ACCESS_DENIED                                                  NTStatus      = 0xC0291004\n\tSTATUS_TPM_INSUFFICIENT_BUFFER                                            NTStatus      = 0xC0291005\n\tSTATUS_TPM_PPI_FUNCTION_UNSUPPORTED                                       NTStatus      = 0xC0291006\n\tSTATUS_PCP_ERROR_MASK                                                     NTStatus      = 0xC0292000\n\tSTATUS_PCP_DEVICE_NOT_READY                                               NTStatus      = 0xC0292001\n\tSTATUS_PCP_INVALID_HANDLE                                                 NTStatus      = 0xC0292002\n\tSTATUS_PCP_INVALID_PARAMETER                                              NTStatus      = 0xC0292003\n\tSTATUS_PCP_FLAG_NOT_SUPPORTED                                             NTStatus      = 0xC0292004\n\tSTATUS_PCP_NOT_SUPPORTED                                                  NTStatus      = 0xC0292005\n\tSTATUS_PCP_BUFFER_TOO_SMALL                                               NTStatus      = 0xC0292006\n\tSTATUS_PCP_INTERNAL_ERROR                                                 NTStatus      = 0xC0292007\n\tSTATUS_PCP_AUTHENTICATION_FAILED                                          NTStatus      = 0xC0292008\n\tSTATUS_PCP_AUTHENTICATION_IGNORED                                         NTStatus      = 0xC0292009\n\tSTATUS_PCP_POLICY_NOT_FOUND                                               NTStatus      = 0xC029200A\n\tSTATUS_PCP_PROFILE_NOT_FOUND                                              NTStatus      = 0xC029200B\n\tSTATUS_PCP_VALIDATION_FAILED                                              NTStatus      = 0xC029200C\n\tSTATUS_PCP_DEVICE_NOT_FOUND                                               NTStatus      = 0xC029200D\n\tSTATUS_PCP_WRONG_PARENT                                                   NTStatus      = 0xC029200E\n\tSTATUS_PCP_KEY_NOT_LOADED                                                 NTStatus      = 0xC029200F\n\tSTATUS_PCP_NO_KEY_CERTIFICATION                                           NTStatus      = 0xC0292010\n\tSTATUS_PCP_KEY_NOT_FINALIZED                                              NTStatus      = 0xC0292011\n\tSTATUS_PCP_ATTESTATION_CHALLENGE_NOT_SET                                  NTStatus      = 0xC0292012\n\tSTATUS_PCP_NOT_PCR_BOUND                                                  NTStatus      = 0xC0292013\n\tSTATUS_PCP_KEY_ALREADY_FINALIZED                                          NTStatus      = 0xC0292014\n\tSTATUS_PCP_KEY_USAGE_POLICY_NOT_SUPPORTED                                 NTStatus      = 0xC0292015\n\tSTATUS_PCP_KEY_USAGE_POLICY_INVALID                                       NTStatus      = 0xC0292016\n\tSTATUS_PCP_SOFT_KEY_ERROR                                                 NTStatus      = 0xC0292017\n\tSTATUS_PCP_KEY_NOT_AUTHENTICATED                                          NTStatus      = 0xC0292018\n\tSTATUS_PCP_KEY_NOT_AIK                                                    NTStatus      = 0xC0292019\n\tSTATUS_PCP_KEY_NOT_SIGNING_KEY                                            NTStatus      = 0xC029201A\n\tSTATUS_PCP_LOCKED_OUT                                                     NTStatus      = 0xC029201B\n\tSTATUS_PCP_CLAIM_TYPE_NOT_SUPPORTED                                       NTStatus      = 0xC029201C\n\tSTATUS_PCP_TPM_VERSION_NOT_SUPPORTED                                      NTStatus      = 0xC029201D\n\tSTATUS_PCP_BUFFER_LENGTH_MISMATCH                                         NTStatus      = 0xC029201E\n\tSTATUS_PCP_IFX_RSA_KEY_CREATION_BLOCKED                                   NTStatus      = 0xC029201F\n\tSTATUS_PCP_TICKET_MISSING                                                 NTStatus      = 0xC0292020\n\tSTATUS_PCP_RAW_POLICY_NOT_SUPPORTED                                       NTStatus      = 0xC0292021\n\tSTATUS_PCP_KEY_HANDLE_INVALIDATED                                         NTStatus      = 0xC0292022\n\tSTATUS_PCP_UNSUPPORTED_PSS_SALT                                           NTStatus      = 0x40292023\n\tSTATUS_RTPM_CONTEXT_CONTINUE                                              NTStatus      = 0x00293000\n\tSTATUS_RTPM_CONTEXT_COMPLETE                                              NTStatus      = 0x00293001\n\tSTATUS_RTPM_NO_RESULT                                                     NTStatus      = 0xC0293002\n\tSTATUS_RTPM_PCR_READ_INCOMPLETE                                           NTStatus      = 0xC0293003\n\tSTATUS_RTPM_INVALID_CONTEXT                                               NTStatus      = 0xC0293004\n\tSTATUS_RTPM_UNSUPPORTED_CMD                                               NTStatus      = 0xC0293005\n\tSTATUS_TPM_ZERO_EXHAUST_ENABLED                                           NTStatus      = 0xC0294000\n\tSTATUS_HV_INVALID_HYPERCALL_CODE                                          NTStatus      = 0xC0350002\n\tSTATUS_HV_INVALID_HYPERCALL_INPUT                                         NTStatus      = 0xC0350003\n\tSTATUS_HV_INVALID_ALIGNMENT                                               NTStatus      = 0xC0350004\n\tSTATUS_HV_INVALID_PARAMETER                                               NTStatus      = 0xC0350005\n\tSTATUS_HV_ACCESS_DENIED                                                   NTStatus      = 0xC0350006\n\tSTATUS_HV_INVALID_PARTITION_STATE                                         NTStatus      = 0xC0350007\n\tSTATUS_HV_OPERATION_DENIED                                                NTStatus      = 0xC0350008\n\tSTATUS_HV_UNKNOWN_PROPERTY                                                NTStatus      = 0xC0350009\n\tSTATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE                                     NTStatus      = 0xC035000A\n\tSTATUS_HV_INSUFFICIENT_MEMORY                                             NTStatus      = 0xC035000B\n\tSTATUS_HV_PARTITION_TOO_DEEP                                              NTStatus      = 0xC035000C\n\tSTATUS_HV_INVALID_PARTITION_ID                                            NTStatus      = 0xC035000D\n\tSTATUS_HV_INVALID_VP_INDEX                                                NTStatus      = 0xC035000E\n\tSTATUS_HV_INVALID_PORT_ID                                                 NTStatus      = 0xC0350011\n\tSTATUS_HV_INVALID_CONNECTION_ID                                           NTStatus      = 0xC0350012\n\tSTATUS_HV_INSUFFICIENT_BUFFERS                                            NTStatus      = 0xC0350013\n\tSTATUS_HV_NOT_ACKNOWLEDGED                                                NTStatus      = 0xC0350014\n\tSTATUS_HV_INVALID_VP_STATE                                                NTStatus      = 0xC0350015\n\tSTATUS_HV_ACKNOWLEDGED                                                    NTStatus      = 0xC0350016\n\tSTATUS_HV_INVALID_SAVE_RESTORE_STATE                                      NTStatus      = 0xC0350017\n\tSTATUS_HV_INVALID_SYNIC_STATE                                             NTStatus      = 0xC0350018\n\tSTATUS_HV_OBJECT_IN_USE                                                   NTStatus      = 0xC0350019\n\tSTATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO                                   NTStatus      = 0xC035001A\n\tSTATUS_HV_NO_DATA                                                         NTStatus      = 0xC035001B\n\tSTATUS_HV_INACTIVE                                                        NTStatus      = 0xC035001C\n\tSTATUS_HV_NO_RESOURCES                                                    NTStatus      = 0xC035001D\n\tSTATUS_HV_FEATURE_UNAVAILABLE                                             NTStatus      = 0xC035001E\n\tSTATUS_HV_INSUFFICIENT_BUFFER                                             NTStatus      = 0xC0350033\n\tSTATUS_HV_INSUFFICIENT_DEVICE_DOMAINS                                     NTStatus      = 0xC0350038\n\tSTATUS_HV_CPUID_FEATURE_VALIDATION_ERROR                                  NTStatus      = 0xC035003C\n\tSTATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR                            NTStatus      = 0xC035003D\n\tSTATUS_HV_PROCESSOR_STARTUP_TIMEOUT                                       NTStatus      = 0xC035003E\n\tSTATUS_HV_SMX_ENABLED                                                     NTStatus      = 0xC035003F\n\tSTATUS_HV_INVALID_LP_INDEX                                                NTStatus      = 0xC0350041\n\tSTATUS_HV_INVALID_REGISTER_VALUE                                          NTStatus      = 0xC0350050\n\tSTATUS_HV_INVALID_VTL_STATE                                               NTStatus      = 0xC0350051\n\tSTATUS_HV_NX_NOT_DETECTED                                                 NTStatus      = 0xC0350055\n\tSTATUS_HV_INVALID_DEVICE_ID                                               NTStatus      = 0xC0350057\n\tSTATUS_HV_INVALID_DEVICE_STATE                                            NTStatus      = 0xC0350058\n\tSTATUS_HV_PENDING_PAGE_REQUESTS                                           NTStatus      = 0x00350059\n\tSTATUS_HV_PAGE_REQUEST_INVALID                                            NTStatus      = 0xC0350060\n\tSTATUS_HV_INVALID_CPU_GROUP_ID                                            NTStatus      = 0xC035006F\n\tSTATUS_HV_INVALID_CPU_GROUP_STATE                                         NTStatus      = 0xC0350070\n\tSTATUS_HV_OPERATION_FAILED                                                NTStatus      = 0xC0350071\n\tSTATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE                             NTStatus      = 0xC0350072\n\tSTATUS_HV_INSUFFICIENT_ROOT_MEMORY                                        NTStatus      = 0xC0350073\n\tSTATUS_HV_NOT_PRESENT                                                     NTStatus      = 0xC0351000\n\tSTATUS_VID_DUPLICATE_HANDLER                                              NTStatus      = 0xC0370001\n\tSTATUS_VID_TOO_MANY_HANDLERS                                              NTStatus      = 0xC0370002\n\tSTATUS_VID_QUEUE_FULL                                                     NTStatus      = 0xC0370003\n\tSTATUS_VID_HANDLER_NOT_PRESENT                                            NTStatus      = 0xC0370004\n\tSTATUS_VID_INVALID_OBJECT_NAME                                            NTStatus      = 0xC0370005\n\tSTATUS_VID_PARTITION_NAME_TOO_LONG                                        NTStatus      = 0xC0370006\n\tSTATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG                                    NTStatus      = 0xC0370007\n\tSTATUS_VID_PARTITION_ALREADY_EXISTS                                       NTStatus      = 0xC0370008\n\tSTATUS_VID_PARTITION_DOES_NOT_EXIST                                       NTStatus      = 0xC0370009\n\tSTATUS_VID_PARTITION_NAME_NOT_FOUND                                       NTStatus      = 0xC037000A\n\tSTATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS                                   NTStatus      = 0xC037000B\n\tSTATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT                                   NTStatus      = 0xC037000C\n\tSTATUS_VID_MB_STILL_REFERENCED                                            NTStatus      = 0xC037000D\n\tSTATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED                                   NTStatus      = 0xC037000E\n\tSTATUS_VID_INVALID_NUMA_SETTINGS                                          NTStatus      = 0xC037000F\n\tSTATUS_VID_INVALID_NUMA_NODE_INDEX                                        NTStatus      = 0xC0370010\n\tSTATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED                          NTStatus      = 0xC0370011\n\tSTATUS_VID_INVALID_MEMORY_BLOCK_HANDLE                                    NTStatus      = 0xC0370012\n\tSTATUS_VID_PAGE_RANGE_OVERFLOW                                            NTStatus      = 0xC0370013\n\tSTATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE                                   NTStatus      = 0xC0370014\n\tSTATUS_VID_INVALID_GPA_RANGE_HANDLE                                       NTStatus      = 0xC0370015\n\tSTATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE                             NTStatus      = 0xC0370016\n\tSTATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED                               NTStatus      = 0xC0370017\n\tSTATUS_VID_INVALID_PPM_HANDLE                                             NTStatus      = 0xC0370018\n\tSTATUS_VID_MBPS_ARE_LOCKED                                                NTStatus      = 0xC0370019\n\tSTATUS_VID_MESSAGE_QUEUE_CLOSED                                           NTStatus      = 0xC037001A\n\tSTATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED                               NTStatus      = 0xC037001B\n\tSTATUS_VID_STOP_PENDING                                                   NTStatus      = 0xC037001C\n\tSTATUS_VID_INVALID_PROCESSOR_STATE                                        NTStatus      = 0xC037001D\n\tSTATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT                                NTStatus      = 0xC037001E\n\tSTATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED                               NTStatus      = 0xC037001F\n\tSTATUS_VID_MB_PROPERTY_ALREADY_SET_RESET                                  NTStatus      = 0xC0370020\n\tSTATUS_VID_MMIO_RANGE_DESTROYED                                           NTStatus      = 0xC0370021\n\tSTATUS_VID_INVALID_CHILD_GPA_PAGE_SET                                     NTStatus      = 0xC0370022\n\tSTATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED                                 NTStatus      = 0xC0370023\n\tSTATUS_VID_RESERVE_PAGE_SET_TOO_SMALL                                     NTStatus      = 0xC0370024\n\tSTATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE                         NTStatus      = 0xC0370025\n\tSTATUS_VID_MBP_COUNT_EXCEEDED_LIMIT                                       NTStatus      = 0xC0370026\n\tSTATUS_VID_SAVED_STATE_CORRUPT                                            NTStatus      = 0xC0370027\n\tSTATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM                                  NTStatus      = 0xC0370028\n\tSTATUS_VID_SAVED_STATE_INCOMPATIBLE                                       NTStatus      = 0xC0370029\n\tSTATUS_VID_VTL_ACCESS_DENIED                                              NTStatus      = 0xC037002A\n\tSTATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED                              NTStatus      = 0x80370001\n\tSTATUS_IPSEC_BAD_SPI                                                      NTStatus      = 0xC0360001\n\tSTATUS_IPSEC_SA_LIFETIME_EXPIRED                                          NTStatus      = 0xC0360002\n\tSTATUS_IPSEC_WRONG_SA                                                     NTStatus      = 0xC0360003\n\tSTATUS_IPSEC_REPLAY_CHECK_FAILED                                          NTStatus      = 0xC0360004\n\tSTATUS_IPSEC_INVALID_PACKET                                               NTStatus      = 0xC0360005\n\tSTATUS_IPSEC_INTEGRITY_CHECK_FAILED                                       NTStatus      = 0xC0360006\n\tSTATUS_IPSEC_CLEAR_TEXT_DROP                                              NTStatus      = 0xC0360007\n\tSTATUS_IPSEC_AUTH_FIREWALL_DROP                                           NTStatus      = 0xC0360008\n\tSTATUS_IPSEC_THROTTLE_DROP                                                NTStatus      = 0xC0360009\n\tSTATUS_IPSEC_DOSP_BLOCK                                                   NTStatus      = 0xC0368000\n\tSTATUS_IPSEC_DOSP_RECEIVED_MULTICAST                                      NTStatus      = 0xC0368001\n\tSTATUS_IPSEC_DOSP_INVALID_PACKET                                          NTStatus      = 0xC0368002\n\tSTATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED                                     NTStatus      = 0xC0368003\n\tSTATUS_IPSEC_DOSP_MAX_ENTRIES                                             NTStatus      = 0xC0368004\n\tSTATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED                                      NTStatus      = 0xC0368005\n\tSTATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES                             NTStatus      = 0xC0368006\n\tSTATUS_VOLMGR_INCOMPLETE_REGENERATION                                     NTStatus      = 0x80380001\n\tSTATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION                                   NTStatus      = 0x80380002\n\tSTATUS_VOLMGR_DATABASE_FULL                                               NTStatus      = 0xC0380001\n\tSTATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED                                NTStatus      = 0xC0380002\n\tSTATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC                              NTStatus      = 0xC0380003\n\tSTATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED                                   NTStatus      = 0xC0380004\n\tSTATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME                             NTStatus      = 0xC0380005\n\tSTATUS_VOLMGR_DISK_DUPLICATE                                              NTStatus      = 0xC0380006\n\tSTATUS_VOLMGR_DISK_DYNAMIC                                                NTStatus      = 0xC0380007\n\tSTATUS_VOLMGR_DISK_ID_INVALID                                             NTStatus      = 0xC0380008\n\tSTATUS_VOLMGR_DISK_INVALID                                                NTStatus      = 0xC0380009\n\tSTATUS_VOLMGR_DISK_LAST_VOTER                                             NTStatus      = 0xC038000A\n\tSTATUS_VOLMGR_DISK_LAYOUT_INVALID                                         NTStatus      = 0xC038000B\n\tSTATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS              NTStatus      = 0xC038000C\n\tSTATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED                            NTStatus      = 0xC038000D\n\tSTATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL                            NTStatus      = 0xC038000E\n\tSTATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS              NTStatus      = 0xC038000F\n\tSTATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS                             NTStatus      = 0xC0380010\n\tSTATUS_VOLMGR_DISK_MISSING                                                NTStatus      = 0xC0380011\n\tSTATUS_VOLMGR_DISK_NOT_EMPTY                                              NTStatus      = 0xC0380012\n\tSTATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE                                       NTStatus      = 0xC0380013\n\tSTATUS_VOLMGR_DISK_REVECTORING_FAILED                                     NTStatus      = 0xC0380014\n\tSTATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID                                    NTStatus      = 0xC0380015\n\tSTATUS_VOLMGR_DISK_SET_NOT_CONTAINED                                      NTStatus      = 0xC0380016\n\tSTATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS                               NTStatus      = 0xC0380017\n\tSTATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES                                NTStatus      = 0xC0380018\n\tSTATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED                                  NTStatus      = 0xC0380019\n\tSTATUS_VOLMGR_EXTENT_ALREADY_USED                                         NTStatus      = 0xC038001A\n\tSTATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS                                       NTStatus      = 0xC038001B\n\tSTATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION                                 NTStatus      = 0xC038001C\n\tSTATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED                                   NTStatus      = 0xC038001D\n\tSTATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION                               NTStatus      = 0xC038001E\n\tSTATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH                          NTStatus      = 0xC038001F\n\tSTATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED                                NTStatus      = 0xC0380020\n\tSTATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID                                   NTStatus      = 0xC0380021\n\tSTATUS_VOLMGR_MAXIMUM_REGISTERED_USERS                                    NTStatus      = 0xC0380022\n\tSTATUS_VOLMGR_MEMBER_IN_SYNC                                              NTStatus      = 0xC0380023\n\tSTATUS_VOLMGR_MEMBER_INDEX_DUPLICATE                                      NTStatus      = 0xC0380024\n\tSTATUS_VOLMGR_MEMBER_INDEX_INVALID                                        NTStatus      = 0xC0380025\n\tSTATUS_VOLMGR_MEMBER_MISSING                                              NTStatus      = 0xC0380026\n\tSTATUS_VOLMGR_MEMBER_NOT_DETACHED                                         NTStatus      = 0xC0380027\n\tSTATUS_VOLMGR_MEMBER_REGENERATING                                         NTStatus      = 0xC0380028\n\tSTATUS_VOLMGR_ALL_DISKS_FAILED                                            NTStatus      = 0xC0380029\n\tSTATUS_VOLMGR_NO_REGISTERED_USERS                                         NTStatus      = 0xC038002A\n\tSTATUS_VOLMGR_NO_SUCH_USER                                                NTStatus      = 0xC038002B\n\tSTATUS_VOLMGR_NOTIFICATION_RESET                                          NTStatus      = 0xC038002C\n\tSTATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID                                   NTStatus      = 0xC038002D\n\tSTATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID                                    NTStatus      = 0xC038002E\n\tSTATUS_VOLMGR_PACK_DUPLICATE                                              NTStatus      = 0xC038002F\n\tSTATUS_VOLMGR_PACK_ID_INVALID                                             NTStatus      = 0xC0380030\n\tSTATUS_VOLMGR_PACK_INVALID                                                NTStatus      = 0xC0380031\n\tSTATUS_VOLMGR_PACK_NAME_INVALID                                           NTStatus      = 0xC0380032\n\tSTATUS_VOLMGR_PACK_OFFLINE                                                NTStatus      = 0xC0380033\n\tSTATUS_VOLMGR_PACK_HAS_QUORUM                                             NTStatus      = 0xC0380034\n\tSTATUS_VOLMGR_PACK_WITHOUT_QUORUM                                         NTStatus      = 0xC0380035\n\tSTATUS_VOLMGR_PARTITION_STYLE_INVALID                                     NTStatus      = 0xC0380036\n\tSTATUS_VOLMGR_PARTITION_UPDATE_FAILED                                     NTStatus      = 0xC0380037\n\tSTATUS_VOLMGR_PLEX_IN_SYNC                                                NTStatus      = 0xC0380038\n\tSTATUS_VOLMGR_PLEX_INDEX_DUPLICATE                                        NTStatus      = 0xC0380039\n\tSTATUS_VOLMGR_PLEX_INDEX_INVALID                                          NTStatus      = 0xC038003A\n\tSTATUS_VOLMGR_PLEX_LAST_ACTIVE                                            NTStatus      = 0xC038003B\n\tSTATUS_VOLMGR_PLEX_MISSING                                                NTStatus      = 0xC038003C\n\tSTATUS_VOLMGR_PLEX_REGENERATING                                           NTStatus      = 0xC038003D\n\tSTATUS_VOLMGR_PLEX_TYPE_INVALID                                           NTStatus      = 0xC038003E\n\tSTATUS_VOLMGR_PLEX_NOT_RAID5                                              NTStatus      = 0xC038003F\n\tSTATUS_VOLMGR_PLEX_NOT_SIMPLE                                             NTStatus      = 0xC0380040\n\tSTATUS_VOLMGR_STRUCTURE_SIZE_INVALID                                      NTStatus      = 0xC0380041\n\tSTATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS                              NTStatus      = 0xC0380042\n\tSTATUS_VOLMGR_TRANSACTION_IN_PROGRESS                                     NTStatus      = 0xC0380043\n\tSTATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE                               NTStatus      = 0xC0380044\n\tSTATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK                                NTStatus      = 0xC0380045\n\tSTATUS_VOLMGR_VOLUME_ID_INVALID                                           NTStatus      = 0xC0380046\n\tSTATUS_VOLMGR_VOLUME_LENGTH_INVALID                                       NTStatus      = 0xC0380047\n\tSTATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE                      NTStatus      = 0xC0380048\n\tSTATUS_VOLMGR_VOLUME_NOT_MIRRORED                                         NTStatus      = 0xC0380049\n\tSTATUS_VOLMGR_VOLUME_NOT_RETAINED                                         NTStatus      = 0xC038004A\n\tSTATUS_VOLMGR_VOLUME_OFFLINE                                              NTStatus      = 0xC038004B\n\tSTATUS_VOLMGR_VOLUME_RETAINED                                             NTStatus      = 0xC038004C\n\tSTATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID                                   NTStatus      = 0xC038004D\n\tSTATUS_VOLMGR_DIFFERENT_SECTOR_SIZE                                       NTStatus      = 0xC038004E\n\tSTATUS_VOLMGR_BAD_BOOT_DISK                                               NTStatus      = 0xC038004F\n\tSTATUS_VOLMGR_PACK_CONFIG_OFFLINE                                         NTStatus      = 0xC0380050\n\tSTATUS_VOLMGR_PACK_CONFIG_ONLINE                                          NTStatus      = 0xC0380051\n\tSTATUS_VOLMGR_NOT_PRIMARY_PACK                                            NTStatus      = 0xC0380052\n\tSTATUS_VOLMGR_PACK_LOG_UPDATE_FAILED                                      NTStatus      = 0xC0380053\n\tSTATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID                             NTStatus      = 0xC0380054\n\tSTATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID                           NTStatus      = 0xC0380055\n\tSTATUS_VOLMGR_VOLUME_MIRRORED                                             NTStatus      = 0xC0380056\n\tSTATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED                                     NTStatus      = 0xC0380057\n\tSTATUS_VOLMGR_NO_VALID_LOG_COPIES                                         NTStatus      = 0xC0380058\n\tSTATUS_VOLMGR_PRIMARY_PACK_PRESENT                                        NTStatus      = 0xC0380059\n\tSTATUS_VOLMGR_NUMBER_OF_DISKS_INVALID                                     NTStatus      = 0xC038005A\n\tSTATUS_VOLMGR_MIRROR_NOT_SUPPORTED                                        NTStatus      = 0xC038005B\n\tSTATUS_VOLMGR_RAID5_NOT_SUPPORTED                                         NTStatus      = 0xC038005C\n\tSTATUS_BCD_NOT_ALL_ENTRIES_IMPORTED                                       NTStatus      = 0x80390001\n\tSTATUS_BCD_TOO_MANY_ELEMENTS                                              NTStatus      = 0xC0390002\n\tSTATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED                                   NTStatus      = 0x80390003\n\tSTATUS_VHD_DRIVE_FOOTER_MISSING                                           NTStatus      = 0xC03A0001\n\tSTATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH                                 NTStatus      = 0xC03A0002\n\tSTATUS_VHD_DRIVE_FOOTER_CORRUPT                                           NTStatus      = 0xC03A0003\n\tSTATUS_VHD_FORMAT_UNKNOWN                                                 NTStatus      = 0xC03A0004\n\tSTATUS_VHD_FORMAT_UNSUPPORTED_VERSION                                     NTStatus      = 0xC03A0005\n\tSTATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH                                NTStatus      = 0xC03A0006\n\tSTATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION                              NTStatus      = 0xC03A0007\n\tSTATUS_VHD_SPARSE_HEADER_CORRUPT                                          NTStatus      = 0xC03A0008\n\tSTATUS_VHD_BLOCK_ALLOCATION_FAILURE                                       NTStatus      = 0xC03A0009\n\tSTATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT                                 NTStatus      = 0xC03A000A\n\tSTATUS_VHD_INVALID_BLOCK_SIZE                                             NTStatus      = 0xC03A000B\n\tSTATUS_VHD_BITMAP_MISMATCH                                                NTStatus      = 0xC03A000C\n\tSTATUS_VHD_PARENT_VHD_NOT_FOUND                                           NTStatus      = 0xC03A000D\n\tSTATUS_VHD_CHILD_PARENT_ID_MISMATCH                                       NTStatus      = 0xC03A000E\n\tSTATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH                                NTStatus      = 0xC03A000F\n\tSTATUS_VHD_METADATA_READ_FAILURE                                          NTStatus      = 0xC03A0010\n\tSTATUS_VHD_METADATA_WRITE_FAILURE                                         NTStatus      = 0xC03A0011\n\tSTATUS_VHD_INVALID_SIZE                                                   NTStatus      = 0xC03A0012\n\tSTATUS_VHD_INVALID_FILE_SIZE                                              NTStatus      = 0xC03A0013\n\tSTATUS_VIRTDISK_PROVIDER_NOT_FOUND                                        NTStatus      = 0xC03A0014\n\tSTATUS_VIRTDISK_NOT_VIRTUAL_DISK                                          NTStatus      = 0xC03A0015\n\tSTATUS_VHD_PARENT_VHD_ACCESS_DENIED                                       NTStatus      = 0xC03A0016\n\tSTATUS_VHD_CHILD_PARENT_SIZE_MISMATCH                                     NTStatus      = 0xC03A0017\n\tSTATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED                              NTStatus      = 0xC03A0018\n\tSTATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT                             NTStatus      = 0xC03A0019\n\tSTATUS_VIRTUAL_DISK_LIMITATION                                            NTStatus      = 0xC03A001A\n\tSTATUS_VHD_INVALID_TYPE                                                   NTStatus      = 0xC03A001B\n\tSTATUS_VHD_INVALID_STATE                                                  NTStatus      = 0xC03A001C\n\tSTATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE                              NTStatus      = 0xC03A001D\n\tSTATUS_VIRTDISK_DISK_ALREADY_OWNED                                        NTStatus      = 0xC03A001E\n\tSTATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE                                  NTStatus      = 0xC03A001F\n\tSTATUS_CTLOG_TRACKING_NOT_INITIALIZED                                     NTStatus      = 0xC03A0020\n\tSTATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE                                NTStatus      = 0xC03A0021\n\tSTATUS_CTLOG_VHD_CHANGED_OFFLINE                                          NTStatus      = 0xC03A0022\n\tSTATUS_CTLOG_INVALID_TRACKING_STATE                                       NTStatus      = 0xC03A0023\n\tSTATUS_CTLOG_INCONSISTENT_TRACKING_FILE                                   NTStatus      = 0xC03A0024\n\tSTATUS_VHD_METADATA_FULL                                                  NTStatus      = 0xC03A0028\n\tSTATUS_VHD_INVALID_CHANGE_TRACKING_ID                                     NTStatus      = 0xC03A0029\n\tSTATUS_VHD_CHANGE_TRACKING_DISABLED                                       NTStatus      = 0xC03A002A\n\tSTATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION                            NTStatus      = 0xC03A0030\n\tSTATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA                                     NTStatus      = 0xC03A0031\n\tSTATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE                         NTStatus      = 0xC03A0032\n\tSTATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE                       NTStatus      = 0xC03A0033\n\tSTATUS_QUERY_STORAGE_ERROR                                                NTStatus      = 0x803A0001\n\tSTATUS_GDI_HANDLE_LEAK                                                    NTStatus      = 0x803F0001\n\tSTATUS_RKF_KEY_NOT_FOUND                                                  NTStatus      = 0xC0400001\n\tSTATUS_RKF_DUPLICATE_KEY                                                  NTStatus      = 0xC0400002\n\tSTATUS_RKF_BLOB_FULL                                                      NTStatus      = 0xC0400003\n\tSTATUS_RKF_STORE_FULL                                                     NTStatus      = 0xC0400004\n\tSTATUS_RKF_FILE_BLOCKED                                                   NTStatus      = 0xC0400005\n\tSTATUS_RKF_ACTIVE_KEY                                                     NTStatus      = 0xC0400006\n\tSTATUS_RDBSS_RESTART_OPERATION                                            NTStatus      = 0xC0410001\n\tSTATUS_RDBSS_CONTINUE_OPERATION                                           NTStatus      = 0xC0410002\n\tSTATUS_RDBSS_POST_OPERATION                                               NTStatus      = 0xC0410003\n\tSTATUS_RDBSS_RETRY_LOOKUP                                                 NTStatus      = 0xC0410004\n\tSTATUS_BTH_ATT_INVALID_HANDLE                                             NTStatus      = 0xC0420001\n\tSTATUS_BTH_ATT_READ_NOT_PERMITTED                                         NTStatus      = 0xC0420002\n\tSTATUS_BTH_ATT_WRITE_NOT_PERMITTED                                        NTStatus      = 0xC0420003\n\tSTATUS_BTH_ATT_INVALID_PDU                                                NTStatus      = 0xC0420004\n\tSTATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION                                NTStatus      = 0xC0420005\n\tSTATUS_BTH_ATT_REQUEST_NOT_SUPPORTED                                      NTStatus      = 0xC0420006\n\tSTATUS_BTH_ATT_INVALID_OFFSET                                             NTStatus      = 0xC0420007\n\tSTATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION                                 NTStatus      = 0xC0420008\n\tSTATUS_BTH_ATT_PREPARE_QUEUE_FULL                                         NTStatus      = 0xC0420009\n\tSTATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND                                        NTStatus      = 0xC042000A\n\tSTATUS_BTH_ATT_ATTRIBUTE_NOT_LONG                                         NTStatus      = 0xC042000B\n\tSTATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE                           NTStatus      = 0xC042000C\n\tSTATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH                             NTStatus      = 0xC042000D\n\tSTATUS_BTH_ATT_UNLIKELY                                                   NTStatus      = 0xC042000E\n\tSTATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION                                    NTStatus      = 0xC042000F\n\tSTATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE                                     NTStatus      = 0xC0420010\n\tSTATUS_BTH_ATT_INSUFFICIENT_RESOURCES                                     NTStatus      = 0xC0420011\n\tSTATUS_BTH_ATT_UNKNOWN_ERROR                                              NTStatus      = 0xC0421000\n\tSTATUS_SECUREBOOT_ROLLBACK_DETECTED                                       NTStatus      = 0xC0430001\n\tSTATUS_SECUREBOOT_POLICY_VIOLATION                                        NTStatus      = 0xC0430002\n\tSTATUS_SECUREBOOT_INVALID_POLICY                                          NTStatus      = 0xC0430003\n\tSTATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND                              NTStatus      = 0xC0430004\n\tSTATUS_SECUREBOOT_POLICY_NOT_SIGNED                                       NTStatus      = 0xC0430005\n\tSTATUS_SECUREBOOT_NOT_ENABLED                                             NTStatus      = 0x80430006\n\tSTATUS_SECUREBOOT_FILE_REPLACED                                           NTStatus      = 0xC0430007\n\tSTATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED                                   NTStatus      = 0xC0430008\n\tSTATUS_SECUREBOOT_POLICY_UNKNOWN                                          NTStatus      = 0xC0430009\n\tSTATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION                      NTStatus      = 0xC043000A\n\tSTATUS_SECUREBOOT_PLATFORM_ID_MISMATCH                                    NTStatus      = 0xC043000B\n\tSTATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED                                NTStatus      = 0xC043000C\n\tSTATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH                                 NTStatus      = 0xC043000D\n\tSTATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING                            NTStatus      = 0xC043000E\n\tSTATUS_SECUREBOOT_NOT_BASE_POLICY                                         NTStatus      = 0xC043000F\n\tSTATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY                                 NTStatus      = 0xC0430010\n\tSTATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED                                   NTStatus      = 0xC0EB0001\n\tSTATUS_PLATFORM_MANIFEST_INVALID                                          NTStatus      = 0xC0EB0002\n\tSTATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED                              NTStatus      = 0xC0EB0003\n\tSTATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED                           NTStatus      = 0xC0EB0004\n\tSTATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND                              NTStatus      = 0xC0EB0005\n\tSTATUS_PLATFORM_MANIFEST_NOT_ACTIVE                                       NTStatus      = 0xC0EB0006\n\tSTATUS_PLATFORM_MANIFEST_NOT_SIGNED                                       NTStatus      = 0xC0EB0007\n\tSTATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED                                 NTStatus      = 0xC0E90001\n\tSTATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION                                  NTStatus      = 0xC0E90002\n\tSTATUS_SYSTEM_INTEGRITY_INVALID_POLICY                                    NTStatus      = 0xC0E90003\n\tSTATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED                                 NTStatus      = 0xC0E90004\n\tSTATUS_SYSTEM_INTEGRITY_TOO_MANY_POLICIES                                 NTStatus      = 0xC0E90005\n\tSTATUS_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED                NTStatus      = 0xC0E90006\n\tSTATUS_NO_APPLICABLE_APP_LICENSES_FOUND                                   NTStatus      = 0xC0EA0001\n\tSTATUS_CLIP_LICENSE_NOT_FOUND                                             NTStatus      = 0xC0EA0002\n\tSTATUS_CLIP_DEVICE_LICENSE_MISSING                                        NTStatus      = 0xC0EA0003\n\tSTATUS_CLIP_LICENSE_INVALID_SIGNATURE                                     NTStatus      = 0xC0EA0004\n\tSTATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID                          NTStatus      = 0xC0EA0005\n\tSTATUS_CLIP_LICENSE_EXPIRED                                               NTStatus      = 0xC0EA0006\n\tSTATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE                              NTStatus      = 0xC0EA0007\n\tSTATUS_CLIP_LICENSE_NOT_SIGNED                                            NTStatus      = 0xC0EA0008\n\tSTATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE                          NTStatus      = 0xC0EA0009\n\tSTATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH                                    NTStatus      = 0xC0EA000A\n\tSTATUS_AUDIO_ENGINE_NODE_NOT_FOUND                                        NTStatus      = 0xC0440001\n\tSTATUS_HDAUDIO_EMPTY_CONNECTION_LIST                                      NTStatus      = 0xC0440002\n\tSTATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED                              NTStatus      = 0xC0440003\n\tSTATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED                                 NTStatus      = 0xC0440004\n\tSTATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY                                     NTStatus      = 0xC0440005\n\tSTATUS_SPACES_REPAIRED                                                    NTStatus      = 0x00E70000\n\tSTATUS_SPACES_PAUSE                                                       NTStatus      = 0x00E70001\n\tSTATUS_SPACES_COMPLETE                                                    NTStatus      = 0x00E70002\n\tSTATUS_SPACES_REDIRECT                                                    NTStatus      = 0x00E70003\n\tSTATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID                                   NTStatus      = 0xC0E70001\n\tSTATUS_SPACES_RESILIENCY_TYPE_INVALID                                     NTStatus      = 0xC0E70003\n\tSTATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID                                   NTStatus      = 0xC0E70004\n\tSTATUS_SPACES_DRIVE_REDUNDANCY_INVALID                                    NTStatus      = 0xC0E70006\n\tSTATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID                               NTStatus      = 0xC0E70007\n\tSTATUS_SPACES_INTERLEAVE_LENGTH_INVALID                                   NTStatus      = 0xC0E70009\n\tSTATUS_SPACES_NUMBER_OF_COLUMNS_INVALID                                   NTStatus      = 0xC0E7000A\n\tSTATUS_SPACES_NOT_ENOUGH_DRIVES                                           NTStatus      = 0xC0E7000B\n\tSTATUS_SPACES_EXTENDED_ERROR                                              NTStatus      = 0xC0E7000C\n\tSTATUS_SPACES_PROVISIONING_TYPE_INVALID                                   NTStatus      = 0xC0E7000D\n\tSTATUS_SPACES_ALLOCATION_SIZE_INVALID                                     NTStatus      = 0xC0E7000E\n\tSTATUS_SPACES_ENCLOSURE_AWARE_INVALID                                     NTStatus      = 0xC0E7000F\n\tSTATUS_SPACES_WRITE_CACHE_SIZE_INVALID                                    NTStatus      = 0xC0E70010\n\tSTATUS_SPACES_NUMBER_OF_GROUPS_INVALID                                    NTStatus      = 0xC0E70011\n\tSTATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID                             NTStatus      = 0xC0E70012\n\tSTATUS_SPACES_UPDATE_COLUMN_STATE                                         NTStatus      = 0xC0E70013\n\tSTATUS_SPACES_MAP_REQUIRED                                                NTStatus      = 0xC0E70014\n\tSTATUS_SPACES_UNSUPPORTED_VERSION                                         NTStatus      = 0xC0E70015\n\tSTATUS_SPACES_CORRUPT_METADATA                                            NTStatus      = 0xC0E70016\n\tSTATUS_SPACES_DRT_FULL                                                    NTStatus      = 0xC0E70017\n\tSTATUS_SPACES_INCONSISTENCY                                               NTStatus      = 0xC0E70018\n\tSTATUS_SPACES_LOG_NOT_READY                                               NTStatus      = 0xC0E70019\n\tSTATUS_SPACES_NO_REDUNDANCY                                               NTStatus      = 0xC0E7001A\n\tSTATUS_SPACES_DRIVE_NOT_READY                                             NTStatus      = 0xC0E7001B\n\tSTATUS_SPACES_DRIVE_SPLIT                                                 NTStatus      = 0xC0E7001C\n\tSTATUS_SPACES_DRIVE_LOST_DATA                                             NTStatus      = 0xC0E7001D\n\tSTATUS_SPACES_ENTRY_INCOMPLETE                                            NTStatus      = 0xC0E7001E\n\tSTATUS_SPACES_ENTRY_INVALID                                               NTStatus      = 0xC0E7001F\n\tSTATUS_SPACES_MARK_DIRTY                                                  NTStatus      = 0xC0E70020\n\tSTATUS_VOLSNAP_BOOTFILE_NOT_VALID                                         NTStatus      = 0xC0500003\n\tSTATUS_VOLSNAP_ACTIVATION_TIMEOUT                                         NTStatus      = 0xC0500004\n\tSTATUS_IO_PREEMPTED                                                       NTStatus      = 0xC0510001\n\tSTATUS_SVHDX_ERROR_STORED                                                 NTStatus      = 0xC05C0000\n\tSTATUS_SVHDX_ERROR_NOT_AVAILABLE                                          NTStatus      = 0xC05CFF00\n\tSTATUS_SVHDX_UNIT_ATTENTION_AVAILABLE                                     NTStatus      = 0xC05CFF01\n\tSTATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED                         NTStatus      = 0xC05CFF02\n\tSTATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED                        NTStatus      = 0xC05CFF03\n\tSTATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED                         NTStatus      = 0xC05CFF04\n\tSTATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED                       NTStatus      = 0xC05CFF05\n\tSTATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED                  NTStatus      = 0xC05CFF06\n\tSTATUS_SVHDX_RESERVATION_CONFLICT                                         NTStatus      = 0xC05CFF07\n\tSTATUS_SVHDX_WRONG_FILE_TYPE                                              NTStatus      = 0xC05CFF08\n\tSTATUS_SVHDX_VERSION_MISMATCH                                             NTStatus      = 0xC05CFF09\n\tSTATUS_VHD_SHARED                                                         NTStatus      = 0xC05CFF0A\n\tSTATUS_SVHDX_NO_INITIATOR                                                 NTStatus      = 0xC05CFF0B\n\tSTATUS_VHDSET_BACKING_STORAGE_NOT_FOUND                                   NTStatus      = 0xC05CFF0C\n\tSTATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP                              NTStatus      = 0xC05D0000\n\tSTATUS_SMB_BAD_CLUSTER_DIALECT                                            NTStatus      = 0xC05D0001\n\tSTATUS_SMB_GUEST_LOGON_BLOCKED                                            NTStatus      = 0xC05D0002\n\tSTATUS_SECCORE_INVALID_COMMAND                                            NTStatus      = 0xC0E80000\n\tSTATUS_VSM_NOT_INITIALIZED                                                NTStatus      = 0xC0450000\n\tSTATUS_VSM_DMA_PROTECTION_NOT_IN_USE                                      NTStatus      = 0xC0450001\n\tSTATUS_APPEXEC_CONDITION_NOT_SATISFIED                                    NTStatus      = 0xC0EC0000\n\tSTATUS_APPEXEC_HANDLE_INVALIDATED                                         NTStatus      = 0xC0EC0001\n\tSTATUS_APPEXEC_INVALID_HOST_GENERATION                                    NTStatus      = 0xC0EC0002\n\tSTATUS_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION                            NTStatus      = 0xC0EC0003\n\tSTATUS_APPEXEC_INVALID_HOST_STATE                                         NTStatus      = 0xC0EC0004\n\tSTATUS_APPEXEC_NO_DONOR                                                   NTStatus      = 0xC0EC0005\n\tSTATUS_APPEXEC_HOST_ID_MISMATCH                                           NTStatus      = 0xC0EC0006\n\tSTATUS_APPEXEC_UNKNOWN_USER                                               NTStatus      = 0xC0EC0007\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/zknownfolderids_windows.go",
    "content": "// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT.\n\npackage windows\n\ntype KNOWNFOLDERID GUID\n\nvar (\n\tFOLDERID_NetworkFolder          = &KNOWNFOLDERID{0xd20beec4, 0x5ca8, 0x4905, [8]byte{0xae, 0x3b, 0xbf, 0x25, 0x1e, 0xa0, 0x9b, 0x53}}\n\tFOLDERID_ComputerFolder         = &KNOWNFOLDERID{0x0ac0837c, 0xbbf8, 0x452a, [8]byte{0x85, 0x0d, 0x79, 0xd0, 0x8e, 0x66, 0x7c, 0xa7}}\n\tFOLDERID_InternetFolder         = &KNOWNFOLDERID{0x4d9f7874, 0x4e0c, 0x4904, [8]byte{0x96, 0x7b, 0x40, 0xb0, 0xd2, 0x0c, 0x3e, 0x4b}}\n\tFOLDERID_ControlPanelFolder     = &KNOWNFOLDERID{0x82a74aeb, 0xaeb4, 0x465c, [8]byte{0xa0, 0x14, 0xd0, 0x97, 0xee, 0x34, 0x6d, 0x63}}\n\tFOLDERID_PrintersFolder         = &KNOWNFOLDERID{0x76fc4e2d, 0xd6ad, 0x4519, [8]byte{0xa6, 0x63, 0x37, 0xbd, 0x56, 0x06, 0x81, 0x85}}\n\tFOLDERID_SyncManagerFolder      = &KNOWNFOLDERID{0x43668bf8, 0xc14e, 0x49b2, [8]byte{0x97, 0xc9, 0x74, 0x77, 0x84, 0xd7, 0x84, 0xb7}}\n\tFOLDERID_SyncSetupFolder        = &KNOWNFOLDERID{0x0f214138, 0xb1d3, 0x4a90, [8]byte{0xbb, 0xa9, 0x27, 0xcb, 0xc0, 0xc5, 0x38, 0x9a}}\n\tFOLDERID_ConflictFolder         = &KNOWNFOLDERID{0x4bfefb45, 0x347d, 0x4006, [8]byte{0xa5, 0xbe, 0xac, 0x0c, 0xb0, 0x56, 0x71, 0x92}}\n\tFOLDERID_SyncResultsFolder      = &KNOWNFOLDERID{0x289a9a43, 0xbe44, 0x4057, [8]byte{0xa4, 0x1b, 0x58, 0x7a, 0x76, 0xd7, 0xe7, 0xf9}}\n\tFOLDERID_RecycleBinFolder       = &KNOWNFOLDERID{0xb7534046, 0x3ecb, 0x4c18, [8]byte{0xbe, 0x4e, 0x64, 0xcd, 0x4c, 0xb7, 0xd6, 0xac}}\n\tFOLDERID_ConnectionsFolder      = &KNOWNFOLDERID{0x6f0cd92b, 0x2e97, 0x45d1, [8]byte{0x88, 0xff, 0xb0, 0xd1, 0x86, 0xb8, 0xde, 0xdd}}\n\tFOLDERID_Fonts                  = &KNOWNFOLDERID{0xfd228cb7, 0xae11, 0x4ae3, [8]byte{0x86, 0x4c, 0x16, 0xf3, 0x91, 0x0a, 0xb8, 0xfe}}\n\tFOLDERID_Desktop                = &KNOWNFOLDERID{0xb4bfcc3a, 0xdb2c, 0x424c, [8]byte{0xb0, 0x29, 0x7f, 0xe9, 0x9a, 0x87, 0xc6, 0x41}}\n\tFOLDERID_Startup                = &KNOWNFOLDERID{0xb97d20bb, 0xf46a, 0x4c97, [8]byte{0xba, 0x10, 0x5e, 0x36, 0x08, 0x43, 0x08, 0x54}}\n\tFOLDERID_Programs               = &KNOWNFOLDERID{0xa77f5d77, 0x2e2b, 0x44c3, [8]byte{0xa6, 0xa2, 0xab, 0xa6, 0x01, 0x05, 0x4a, 0x51}}\n\tFOLDERID_StartMenu              = &KNOWNFOLDERID{0x625b53c3, 0xab48, 0x4ec1, [8]byte{0xba, 0x1f, 0xa1, 0xef, 0x41, 0x46, 0xfc, 0x19}}\n\tFOLDERID_Recent                 = &KNOWNFOLDERID{0xae50c081, 0xebd2, 0x438a, [8]byte{0x86, 0x55, 0x8a, 0x09, 0x2e, 0x34, 0x98, 0x7a}}\n\tFOLDERID_SendTo                 = &KNOWNFOLDERID{0x8983036c, 0x27c0, 0x404b, [8]byte{0x8f, 0x08, 0x10, 0x2d, 0x10, 0xdc, 0xfd, 0x74}}\n\tFOLDERID_Documents              = &KNOWNFOLDERID{0xfdd39ad0, 0x238f, 0x46af, [8]byte{0xad, 0xb4, 0x6c, 0x85, 0x48, 0x03, 0x69, 0xc7}}\n\tFOLDERID_Favorites              = &KNOWNFOLDERID{0x1777f761, 0x68ad, 0x4d8a, [8]byte{0x87, 0xbd, 0x30, 0xb7, 0x59, 0xfa, 0x33, 0xdd}}\n\tFOLDERID_NetHood                = &KNOWNFOLDERID{0xc5abbf53, 0xe17f, 0x4121, [8]byte{0x89, 0x00, 0x86, 0x62, 0x6f, 0xc2, 0xc9, 0x73}}\n\tFOLDERID_PrintHood              = &KNOWNFOLDERID{0x9274bd8d, 0xcfd1, 0x41c3, [8]byte{0xb3, 0x5e, 0xb1, 0x3f, 0x55, 0xa7, 0x58, 0xf4}}\n\tFOLDERID_Templates              = &KNOWNFOLDERID{0xa63293e8, 0x664e, 0x48db, [8]byte{0xa0, 0x79, 0xdf, 0x75, 0x9e, 0x05, 0x09, 0xf7}}\n\tFOLDERID_CommonStartup          = &KNOWNFOLDERID{0x82a5ea35, 0xd9cd, 0x47c5, [8]byte{0x96, 0x29, 0xe1, 0x5d, 0x2f, 0x71, 0x4e, 0x6e}}\n\tFOLDERID_CommonPrograms         = &KNOWNFOLDERID{0x0139d44e, 0x6afe, 0x49f2, [8]byte{0x86, 0x90, 0x3d, 0xaf, 0xca, 0xe6, 0xff, 0xb8}}\n\tFOLDERID_CommonStartMenu        = &KNOWNFOLDERID{0xa4115719, 0xd62e, 0x491d, [8]byte{0xaa, 0x7c, 0xe7, 0x4b, 0x8b, 0xe3, 0xb0, 0x67}}\n\tFOLDERID_PublicDesktop          = &KNOWNFOLDERID{0xc4aa340d, 0xf20f, 0x4863, [8]byte{0xaf, 0xef, 0xf8, 0x7e, 0xf2, 0xe6, 0xba, 0x25}}\n\tFOLDERID_ProgramData            = &KNOWNFOLDERID{0x62ab5d82, 0xfdc1, 0x4dc3, [8]byte{0xa9, 0xdd, 0x07, 0x0d, 0x1d, 0x49, 0x5d, 0x97}}\n\tFOLDERID_CommonTemplates        = &KNOWNFOLDERID{0xb94237e7, 0x57ac, 0x4347, [8]byte{0x91, 0x51, 0xb0, 0x8c, 0x6c, 0x32, 0xd1, 0xf7}}\n\tFOLDERID_PublicDocuments        = &KNOWNFOLDERID{0xed4824af, 0xdce4, 0x45a8, [8]byte{0x81, 0xe2, 0xfc, 0x79, 0x65, 0x08, 0x36, 0x34}}\n\tFOLDERID_RoamingAppData         = &KNOWNFOLDERID{0x3eb685db, 0x65f9, 0x4cf6, [8]byte{0xa0, 0x3a, 0xe3, 0xef, 0x65, 0x72, 0x9f, 0x3d}}\n\tFOLDERID_LocalAppData           = &KNOWNFOLDERID{0xf1b32785, 0x6fba, 0x4fcf, [8]byte{0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91}}\n\tFOLDERID_LocalAppDataLow        = &KNOWNFOLDERID{0xa520a1a4, 0x1780, 0x4ff6, [8]byte{0xbd, 0x18, 0x16, 0x73, 0x43, 0xc5, 0xaf, 0x16}}\n\tFOLDERID_InternetCache          = &KNOWNFOLDERID{0x352481e8, 0x33be, 0x4251, [8]byte{0xba, 0x85, 0x60, 0x07, 0xca, 0xed, 0xcf, 0x9d}}\n\tFOLDERID_Cookies                = &KNOWNFOLDERID{0x2b0f765d, 0xc0e9, 0x4171, [8]byte{0x90, 0x8e, 0x08, 0xa6, 0x11, 0xb8, 0x4f, 0xf6}}\n\tFOLDERID_History                = &KNOWNFOLDERID{0xd9dc8a3b, 0xb784, 0x432e, [8]byte{0xa7, 0x81, 0x5a, 0x11, 0x30, 0xa7, 0x59, 0x63}}\n\tFOLDERID_System                 = &KNOWNFOLDERID{0x1ac14e77, 0x02e7, 0x4e5d, [8]byte{0xb7, 0x44, 0x2e, 0xb1, 0xae, 0x51, 0x98, 0xb7}}\n\tFOLDERID_SystemX86              = &KNOWNFOLDERID{0xd65231b0, 0xb2f1, 0x4857, [8]byte{0xa4, 0xce, 0xa8, 0xe7, 0xc6, 0xea, 0x7d, 0x27}}\n\tFOLDERID_Windows                = &KNOWNFOLDERID{0xf38bf404, 0x1d43, 0x42f2, [8]byte{0x93, 0x05, 0x67, 0xde, 0x0b, 0x28, 0xfc, 0x23}}\n\tFOLDERID_Profile                = &KNOWNFOLDERID{0x5e6c858f, 0x0e22, 0x4760, [8]byte{0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73}}\n\tFOLDERID_Pictures               = &KNOWNFOLDERID{0x33e28130, 0x4e1e, 0x4676, [8]byte{0x83, 0x5a, 0x98, 0x39, 0x5c, 0x3b, 0xc3, 0xbb}}\n\tFOLDERID_ProgramFilesX86        = &KNOWNFOLDERID{0x7c5a40ef, 0xa0fb, 0x4bfc, [8]byte{0x87, 0x4a, 0xc0, 0xf2, 0xe0, 0xb9, 0xfa, 0x8e}}\n\tFOLDERID_ProgramFilesCommonX86  = &KNOWNFOLDERID{0xde974d24, 0xd9c6, 0x4d3e, [8]byte{0xbf, 0x91, 0xf4, 0x45, 0x51, 0x20, 0xb9, 0x17}}\n\tFOLDERID_ProgramFilesX64        = &KNOWNFOLDERID{0x6d809377, 0x6af0, 0x444b, [8]byte{0x89, 0x57, 0xa3, 0x77, 0x3f, 0x02, 0x20, 0x0e}}\n\tFOLDERID_ProgramFilesCommonX64  = &KNOWNFOLDERID{0x6365d5a7, 0x0f0d, 0x45e5, [8]byte{0x87, 0xf6, 0x0d, 0xa5, 0x6b, 0x6a, 0x4f, 0x7d}}\n\tFOLDERID_ProgramFiles           = &KNOWNFOLDERID{0x905e63b6, 0xc1bf, 0x494e, [8]byte{0xb2, 0x9c, 0x65, 0xb7, 0x32, 0xd3, 0xd2, 0x1a}}\n\tFOLDERID_ProgramFilesCommon     = &KNOWNFOLDERID{0xf7f1ed05, 0x9f6d, 0x47a2, [8]byte{0xaa, 0xae, 0x29, 0xd3, 0x17, 0xc6, 0xf0, 0x66}}\n\tFOLDERID_UserProgramFiles       = &KNOWNFOLDERID{0x5cd7aee2, 0x2219, 0x4a67, [8]byte{0xb8, 0x5d, 0x6c, 0x9c, 0xe1, 0x56, 0x60, 0xcb}}\n\tFOLDERID_UserProgramFilesCommon = &KNOWNFOLDERID{0xbcbd3057, 0xca5c, 0x4622, [8]byte{0xb4, 0x2d, 0xbc, 0x56, 0xdb, 0x0a, 0xe5, 0x16}}\n\tFOLDERID_AdminTools             = &KNOWNFOLDERID{0x724ef170, 0xa42d, 0x4fef, [8]byte{0x9f, 0x26, 0xb6, 0x0e, 0x84, 0x6f, 0xba, 0x4f}}\n\tFOLDERID_CommonAdminTools       = &KNOWNFOLDERID{0xd0384e7d, 0xbac3, 0x4797, [8]byte{0x8f, 0x14, 0xcb, 0xa2, 0x29, 0xb3, 0x92, 0xb5}}\n\tFOLDERID_Music                  = &KNOWNFOLDERID{0x4bd8d571, 0x6d19, 0x48d3, [8]byte{0xbe, 0x97, 0x42, 0x22, 0x20, 0x08, 0x0e, 0x43}}\n\tFOLDERID_Videos                 = &KNOWNFOLDERID{0x18989b1d, 0x99b5, 0x455b, [8]byte{0x84, 0x1c, 0xab, 0x7c, 0x74, 0xe4, 0xdd, 0xfc}}\n\tFOLDERID_Ringtones              = &KNOWNFOLDERID{0xc870044b, 0xf49e, 0x4126, [8]byte{0xa9, 0xc3, 0xb5, 0x2a, 0x1f, 0xf4, 0x11, 0xe8}}\n\tFOLDERID_PublicPictures         = &KNOWNFOLDERID{0xb6ebfb86, 0x6907, 0x413c, [8]byte{0x9a, 0xf7, 0x4f, 0xc2, 0xab, 0xf0, 0x7c, 0xc5}}\n\tFOLDERID_PublicMusic            = &KNOWNFOLDERID{0x3214fab5, 0x9757, 0x4298, [8]byte{0xbb, 0x61, 0x92, 0xa9, 0xde, 0xaa, 0x44, 0xff}}\n\tFOLDERID_PublicVideos           = &KNOWNFOLDERID{0x2400183a, 0x6185, 0x49fb, [8]byte{0xa2, 0xd8, 0x4a, 0x39, 0x2a, 0x60, 0x2b, 0xa3}}\n\tFOLDERID_PublicRingtones        = &KNOWNFOLDERID{0xe555ab60, 0x153b, 0x4d17, [8]byte{0x9f, 0x04, 0xa5, 0xfe, 0x99, 0xfc, 0x15, 0xec}}\n\tFOLDERID_ResourceDir            = &KNOWNFOLDERID{0x8ad10c31, 0x2adb, 0x4296, [8]byte{0xa8, 0xf7, 0xe4, 0x70, 0x12, 0x32, 0xc9, 0x72}}\n\tFOLDERID_LocalizedResourcesDir  = &KNOWNFOLDERID{0x2a00375e, 0x224c, 0x49de, [8]byte{0xb8, 0xd1, 0x44, 0x0d, 0xf7, 0xef, 0x3d, 0xdc}}\n\tFOLDERID_CommonOEMLinks         = &KNOWNFOLDERID{0xc1bae2d0, 0x10df, 0x4334, [8]byte{0xbe, 0xdd, 0x7a, 0xa2, 0x0b, 0x22, 0x7a, 0x9d}}\n\tFOLDERID_CDBurning              = &KNOWNFOLDERID{0x9e52ab10, 0xf80d, 0x49df, [8]byte{0xac, 0xb8, 0x43, 0x30, 0xf5, 0x68, 0x78, 0x55}}\n\tFOLDERID_UserProfiles           = &KNOWNFOLDERID{0x0762d272, 0xc50a, 0x4bb0, [8]byte{0xa3, 0x82, 0x69, 0x7d, 0xcd, 0x72, 0x9b, 0x80}}\n\tFOLDERID_Playlists              = &KNOWNFOLDERID{0xde92c1c7, 0x837f, 0x4f69, [8]byte{0xa3, 0xbb, 0x86, 0xe6, 0x31, 0x20, 0x4a, 0x23}}\n\tFOLDERID_SamplePlaylists        = &KNOWNFOLDERID{0x15ca69b3, 0x30ee, 0x49c1, [8]byte{0xac, 0xe1, 0x6b, 0x5e, 0xc3, 0x72, 0xaf, 0xb5}}\n\tFOLDERID_SampleMusic            = &KNOWNFOLDERID{0xb250c668, 0xf57d, 0x4ee1, [8]byte{0xa6, 0x3c, 0x29, 0x0e, 0xe7, 0xd1, 0xaa, 0x1f}}\n\tFOLDERID_SamplePictures         = &KNOWNFOLDERID{0xc4900540, 0x2379, 0x4c75, [8]byte{0x84, 0x4b, 0x64, 0xe6, 0xfa, 0xf8, 0x71, 0x6b}}\n\tFOLDERID_SampleVideos           = &KNOWNFOLDERID{0x859ead94, 0x2e85, 0x48ad, [8]byte{0xa7, 0x1a, 0x09, 0x69, 0xcb, 0x56, 0xa6, 0xcd}}\n\tFOLDERID_PhotoAlbums            = &KNOWNFOLDERID{0x69d2cf90, 0xfc33, 0x4fb7, [8]byte{0x9a, 0x0c, 0xeb, 0xb0, 0xf0, 0xfc, 0xb4, 0x3c}}\n\tFOLDERID_Public                 = &KNOWNFOLDERID{0xdfdf76a2, 0xc82a, 0x4d63, [8]byte{0x90, 0x6a, 0x56, 0x44, 0xac, 0x45, 0x73, 0x85}}\n\tFOLDERID_ChangeRemovePrograms   = &KNOWNFOLDERID{0xdf7266ac, 0x9274, 0x4867, [8]byte{0x8d, 0x55, 0x3b, 0xd6, 0x61, 0xde, 0x87, 0x2d}}\n\tFOLDERID_AppUpdates             = &KNOWNFOLDERID{0xa305ce99, 0xf527, 0x492b, [8]byte{0x8b, 0x1a, 0x7e, 0x76, 0xfa, 0x98, 0xd6, 0xe4}}\n\tFOLDERID_AddNewPrograms         = &KNOWNFOLDERID{0xde61d971, 0x5ebc, 0x4f02, [8]byte{0xa3, 0xa9, 0x6c, 0x82, 0x89, 0x5e, 0x5c, 0x04}}\n\tFOLDERID_Downloads              = &KNOWNFOLDERID{0x374de290, 0x123f, 0x4565, [8]byte{0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b}}\n\tFOLDERID_PublicDownloads        = &KNOWNFOLDERID{0x3d644c9b, 0x1fb8, 0x4f30, [8]byte{0x9b, 0x45, 0xf6, 0x70, 0x23, 0x5f, 0x79, 0xc0}}\n\tFOLDERID_SavedSearches          = &KNOWNFOLDERID{0x7d1d3a04, 0xdebb, 0x4115, [8]byte{0x95, 0xcf, 0x2f, 0x29, 0xda, 0x29, 0x20, 0xda}}\n\tFOLDERID_QuickLaunch            = &KNOWNFOLDERID{0x52a4f021, 0x7b75, 0x48a9, [8]byte{0x9f, 0x6b, 0x4b, 0x87, 0xa2, 0x10, 0xbc, 0x8f}}\n\tFOLDERID_Contacts               = &KNOWNFOLDERID{0x56784854, 0xc6cb, 0x462b, [8]byte{0x81, 0x69, 0x88, 0xe3, 0x50, 0xac, 0xb8, 0x82}}\n\tFOLDERID_SidebarParts           = &KNOWNFOLDERID{0xa75d362e, 0x50fc, 0x4fb7, [8]byte{0xac, 0x2c, 0xa8, 0xbe, 0xaa, 0x31, 0x44, 0x93}}\n\tFOLDERID_SidebarDefaultParts    = &KNOWNFOLDERID{0x7b396e54, 0x9ec5, 0x4300, [8]byte{0xbe, 0x0a, 0x24, 0x82, 0xeb, 0xae, 0x1a, 0x26}}\n\tFOLDERID_PublicGameTasks        = &KNOWNFOLDERID{0xdebf2536, 0xe1a8, 0x4c59, [8]byte{0xb6, 0xa2, 0x41, 0x45, 0x86, 0x47, 0x6a, 0xea}}\n\tFOLDERID_GameTasks              = &KNOWNFOLDERID{0x054fae61, 0x4dd8, 0x4787, [8]byte{0x80, 0xb6, 0x09, 0x02, 0x20, 0xc4, 0xb7, 0x00}}\n\tFOLDERID_SavedGames             = &KNOWNFOLDERID{0x4c5c32ff, 0xbb9d, 0x43b0, [8]byte{0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4}}\n\tFOLDERID_Games                  = &KNOWNFOLDERID{0xcac52c1a, 0xb53d, 0x4edc, [8]byte{0x92, 0xd7, 0x6b, 0x2e, 0x8a, 0xc1, 0x94, 0x34}}\n\tFOLDERID_SEARCH_MAPI            = &KNOWNFOLDERID{0x98ec0e18, 0x2098, 0x4d44, [8]byte{0x86, 0x44, 0x66, 0x97, 0x93, 0x15, 0xa2, 0x81}}\n\tFOLDERID_SEARCH_CSC             = &KNOWNFOLDERID{0xee32e446, 0x31ca, 0x4aba, [8]byte{0x81, 0x4f, 0xa5, 0xeb, 0xd2, 0xfd, 0x6d, 0x5e}}\n\tFOLDERID_Links                  = &KNOWNFOLDERID{0xbfb9d5e0, 0xc6a9, 0x404c, [8]byte{0xb2, 0xb2, 0xae, 0x6d, 0xb6, 0xaf, 0x49, 0x68}}\n\tFOLDERID_UsersFiles             = &KNOWNFOLDERID{0xf3ce0f7c, 0x4901, 0x4acc, [8]byte{0x86, 0x48, 0xd5, 0xd4, 0x4b, 0x04, 0xef, 0x8f}}\n\tFOLDERID_UsersLibraries         = &KNOWNFOLDERID{0xa302545d, 0xdeff, 0x464b, [8]byte{0xab, 0xe8, 0x61, 0xc8, 0x64, 0x8d, 0x93, 0x9b}}\n\tFOLDERID_SearchHome             = &KNOWNFOLDERID{0x190337d1, 0xb8ca, 0x4121, [8]byte{0xa6, 0x39, 0x6d, 0x47, 0x2d, 0x16, 0x97, 0x2a}}\n\tFOLDERID_OriginalImages         = &KNOWNFOLDERID{0x2c36c0aa, 0x5812, 0x4b87, [8]byte{0xbf, 0xd0, 0x4c, 0xd0, 0xdf, 0xb1, 0x9b, 0x39}}\n\tFOLDERID_DocumentsLibrary       = &KNOWNFOLDERID{0x7b0db17d, 0x9cd2, 0x4a93, [8]byte{0x97, 0x33, 0x46, 0xcc, 0x89, 0x02, 0x2e, 0x7c}}\n\tFOLDERID_MusicLibrary           = &KNOWNFOLDERID{0x2112ab0a, 0xc86a, 0x4ffe, [8]byte{0xa3, 0x68, 0x0d, 0xe9, 0x6e, 0x47, 0x01, 0x2e}}\n\tFOLDERID_PicturesLibrary        = &KNOWNFOLDERID{0xa990ae9f, 0xa03b, 0x4e80, [8]byte{0x94, 0xbc, 0x99, 0x12, 0xd7, 0x50, 0x41, 0x04}}\n\tFOLDERID_VideosLibrary          = &KNOWNFOLDERID{0x491e922f, 0x5643, 0x4af4, [8]byte{0xa7, 0xeb, 0x4e, 0x7a, 0x13, 0x8d, 0x81, 0x74}}\n\tFOLDERID_RecordedTVLibrary      = &KNOWNFOLDERID{0x1a6fdba2, 0xf42d, 0x4358, [8]byte{0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5}}\n\tFOLDERID_HomeGroup              = &KNOWNFOLDERID{0x52528a6b, 0xb9e3, 0x4add, [8]byte{0xb6, 0x0d, 0x58, 0x8c, 0x2d, 0xba, 0x84, 0x2d}}\n\tFOLDERID_HomeGroupCurrentUser   = &KNOWNFOLDERID{0x9b74b6a3, 0x0dfd, 0x4f11, [8]byte{0x9e, 0x78, 0x5f, 0x78, 0x00, 0xf2, 0xe7, 0x72}}\n\tFOLDERID_DeviceMetadataStore    = &KNOWNFOLDERID{0x5ce4a5e9, 0xe4eb, 0x479d, [8]byte{0xb8, 0x9f, 0x13, 0x0c, 0x02, 0x88, 0x61, 0x55}}\n\tFOLDERID_Libraries              = &KNOWNFOLDERID{0x1b3ea5dc, 0xb587, 0x4786, [8]byte{0xb4, 0xef, 0xbd, 0x1d, 0xc3, 0x32, 0xae, 0xae}}\n\tFOLDERID_PublicLibraries        = &KNOWNFOLDERID{0x48daf80b, 0xe6cf, 0x4f4e, [8]byte{0xb8, 0x00, 0x0e, 0x69, 0xd8, 0x4e, 0xe3, 0x84}}\n\tFOLDERID_UserPinned             = &KNOWNFOLDERID{0x9e3995ab, 0x1f9c, 0x4f13, [8]byte{0xb8, 0x27, 0x48, 0xb2, 0x4b, 0x6c, 0x71, 0x74}}\n\tFOLDERID_ImplicitAppShortcuts   = &KNOWNFOLDERID{0xbcb5256f, 0x79f6, 0x4cee, [8]byte{0xb7, 0x25, 0xdc, 0x34, 0xe4, 0x02, 0xfd, 0x46}}\n\tFOLDERID_AccountPictures        = &KNOWNFOLDERID{0x008ca0b1, 0x55b4, 0x4c56, [8]byte{0xb8, 0xa8, 0x4d, 0xe4, 0xb2, 0x99, 0xd3, 0xbe}}\n\tFOLDERID_PublicUserTiles        = &KNOWNFOLDERID{0x0482af6c, 0x08f1, 0x4c34, [8]byte{0x8c, 0x90, 0xe1, 0x7e, 0xc9, 0x8b, 0x1e, 0x17}}\n\tFOLDERID_AppsFolder             = &KNOWNFOLDERID{0x1e87508d, 0x89c2, 0x42f0, [8]byte{0x8a, 0x7e, 0x64, 0x5a, 0x0f, 0x50, 0xca, 0x58}}\n\tFOLDERID_StartMenuAllPrograms   = &KNOWNFOLDERID{0xf26305ef, 0x6948, 0x40b9, [8]byte{0xb2, 0x55, 0x81, 0x45, 0x3d, 0x09, 0xc7, 0x85}}\n\tFOLDERID_CommonStartMenuPlaces  = &KNOWNFOLDERID{0xa440879f, 0x87a0, 0x4f7d, [8]byte{0xb7, 0x00, 0x02, 0x07, 0xb9, 0x66, 0x19, 0x4a}}\n\tFOLDERID_ApplicationShortcuts   = &KNOWNFOLDERID{0xa3918781, 0xe5f2, 0x4890, [8]byte{0xb3, 0xd9, 0xa7, 0xe5, 0x43, 0x32, 0x32, 0x8c}}\n\tFOLDERID_RoamingTiles           = &KNOWNFOLDERID{0x00bcfc5a, 0xed94, 0x4e48, [8]byte{0x96, 0xa1, 0x3f, 0x62, 0x17, 0xf2, 0x19, 0x90}}\n\tFOLDERID_RoamedTileImages       = &KNOWNFOLDERID{0xaaa8d5a5, 0xf1d6, 0x4259, [8]byte{0xba, 0xa8, 0x78, 0xe7, 0xef, 0x60, 0x83, 0x5e}}\n\tFOLDERID_Screenshots            = &KNOWNFOLDERID{0xb7bede81, 0xdf94, 0x4682, [8]byte{0xa7, 0xd8, 0x57, 0xa5, 0x26, 0x20, 0xb8, 0x6f}}\n\tFOLDERID_CameraRoll             = &KNOWNFOLDERID{0xab5fb87b, 0x7ce2, 0x4f83, [8]byte{0x91, 0x5d, 0x55, 0x08, 0x46, 0xc9, 0x53, 0x7b}}\n\tFOLDERID_SkyDrive               = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}}\n\tFOLDERID_OneDrive               = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}}\n\tFOLDERID_SkyDriveDocuments      = &KNOWNFOLDERID{0x24d89e24, 0x2f19, 0x4534, [8]byte{0x9d, 0xde, 0x6a, 0x66, 0x71, 0xfb, 0xb8, 0xfe}}\n\tFOLDERID_SkyDrivePictures       = &KNOWNFOLDERID{0x339719b5, 0x8c47, 0x4894, [8]byte{0x94, 0xc2, 0xd8, 0xf7, 0x7a, 0xdd, 0x44, 0xa6}}\n\tFOLDERID_SkyDriveMusic          = &KNOWNFOLDERID{0xc3f2459e, 0x80d6, 0x45dc, [8]byte{0xbf, 0xef, 0x1f, 0x76, 0x9f, 0x2b, 0xe7, 0x30}}\n\tFOLDERID_SkyDriveCameraRoll     = &KNOWNFOLDERID{0x767e6811, 0x49cb, 0x4273, [8]byte{0x87, 0xc2, 0x20, 0xf3, 0x55, 0xe1, 0x08, 0x5b}}\n\tFOLDERID_SearchHistory          = &KNOWNFOLDERID{0x0d4c3db6, 0x03a3, 0x462f, [8]byte{0xa0, 0xe6, 0x08, 0x92, 0x4c, 0x41, 0xb5, 0xd4}}\n\tFOLDERID_SearchTemplates        = &KNOWNFOLDERID{0x7e636bfe, 0xdfa9, 0x4d5e, [8]byte{0xb4, 0x56, 0xd7, 0xb3, 0x98, 0x51, 0xd8, 0xa9}}\n\tFOLDERID_CameraRollLibrary      = &KNOWNFOLDERID{0x2b20df75, 0x1eda, 0x4039, [8]byte{0x80, 0x97, 0x38, 0x79, 0x82, 0x27, 0xd5, 0xb7}}\n\tFOLDERID_SavedPictures          = &KNOWNFOLDERID{0x3b193882, 0xd3ad, 0x4eab, [8]byte{0x96, 0x5a, 0x69, 0x82, 0x9d, 0x1f, 0xb5, 0x9f}}\n\tFOLDERID_SavedPicturesLibrary   = &KNOWNFOLDERID{0xe25b5812, 0xbe88, 0x4bd9, [8]byte{0x94, 0xb0, 0x29, 0x23, 0x34, 0x77, 0xb6, 0xc3}}\n\tFOLDERID_RetailDemo             = &KNOWNFOLDERID{0x12d4c69e, 0x24ad, 0x4923, [8]byte{0xbe, 0x19, 0x31, 0x32, 0x1c, 0x43, 0xa7, 0x67}}\n\tFOLDERID_Device                 = &KNOWNFOLDERID{0x1c2ac1dc, 0x4358, 0x4b6c, [8]byte{0x97, 0x33, 0xaf, 0x21, 0x15, 0x65, 0x76, 0xf0}}\n\tFOLDERID_DevelopmentFiles       = &KNOWNFOLDERID{0xdbe8e08e, 0x3053, 0x4bbc, [8]byte{0xb1, 0x83, 0x2a, 0x7b, 0x2b, 0x19, 0x1e, 0x59}}\n\tFOLDERID_Objects3D              = &KNOWNFOLDERID{0x31c0dd25, 0x9439, 0x4f12, [8]byte{0xbf, 0x41, 0x7f, 0xf4, 0xed, 0xa3, 0x87, 0x22}}\n\tFOLDERID_AppCaptures            = &KNOWNFOLDERID{0xedc0fe71, 0x98d8, 0x4f4a, [8]byte{0xb9, 0x20, 0xc8, 0xdc, 0x13, 0x3c, 0xb1, 0x65}}\n\tFOLDERID_LocalDocuments         = &KNOWNFOLDERID{0xf42ee2d3, 0x909f, 0x4907, [8]byte{0x88, 0x71, 0x4c, 0x22, 0xfc, 0x0b, 0xf7, 0x56}}\n\tFOLDERID_LocalPictures          = &KNOWNFOLDERID{0x0ddd015d, 0xb06c, 0x45d5, [8]byte{0x8c, 0x4c, 0xf5, 0x97, 0x13, 0x85, 0x46, 0x39}}\n\tFOLDERID_LocalVideos            = &KNOWNFOLDERID{0x35286a68, 0x3c57, 0x41a1, [8]byte{0xbb, 0xb1, 0x0e, 0xae, 0x73, 0xd7, 0x6c, 0x95}}\n\tFOLDERID_LocalMusic             = &KNOWNFOLDERID{0xa0c69a99, 0x21c8, 0x4671, [8]byte{0x87, 0x03, 0x79, 0x34, 0x16, 0x2f, 0xcf, 0x1d}}\n\tFOLDERID_LocalDownloads         = &KNOWNFOLDERID{0x7d83ee9b, 0x2244, 0x4e70, [8]byte{0xb1, 0xf5, 0x53, 0x93, 0x04, 0x2a, 0xf1, 0xe4}}\n\tFOLDERID_RecordedCalls          = &KNOWNFOLDERID{0x2f8b40c2, 0x83ed, 0x48ee, [8]byte{0xb3, 0x83, 0xa1, 0xf1, 0x57, 0xec, 0x6f, 0x9a}}\n\tFOLDERID_AllAppMods             = &KNOWNFOLDERID{0x7ad67899, 0x66af, 0x43ba, [8]byte{0x91, 0x56, 0x6a, 0xad, 0x42, 0xe6, 0xc5, 0x96}}\n\tFOLDERID_CurrentAppMods         = &KNOWNFOLDERID{0x3db40b20, 0x2a30, 0x4dbe, [8]byte{0x91, 0x7e, 0x77, 0x1d, 0xd2, 0x1d, 0xd0, 0x99}}\n\tFOLDERID_AppDataDesktop         = &KNOWNFOLDERID{0xb2c5e279, 0x7add, 0x439f, [8]byte{0xb2, 0x8c, 0xc4, 0x1f, 0xe1, 0xbb, 0xf6, 0x72}}\n\tFOLDERID_AppDataDocuments       = &KNOWNFOLDERID{0x7be16610, 0x1f7f, 0x44ac, [8]byte{0xbf, 0xf0, 0x83, 0xe1, 0x5f, 0x2f, 0xfc, 0xa1}}\n\tFOLDERID_AppDataFavorites       = &KNOWNFOLDERID{0x7cfbefbc, 0xde1f, 0x45aa, [8]byte{0xb8, 0x43, 0xa5, 0x42, 0xac, 0x53, 0x6c, 0xc9}}\n\tFOLDERID_AppDataProgramData     = &KNOWNFOLDERID{0x559d40a3, 0xa036, 0x40fa, [8]byte{0xaf, 0x61, 0x84, 0xcb, 0x43, 0x0a, 0x4d, 0x34}}\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/zsyscall_windows.go",
    "content": "// Code generated by 'go generate'; DO NOT EDIT.\n\npackage windows\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ unsafe.Pointer\n\n// Do the interface allocations only once for common\n// Errno values.\nconst (\n\terrnoERROR_IO_PENDING = 997\n)\n\nvar (\n\terrERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)\n\terrERROR_EINVAL     error = syscall.EINVAL\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e syscall.Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn errERROR_EINVAL\n\tcase errnoERROR_IO_PENDING:\n\t\treturn errERROR_IO_PENDING\n\t}\n\t// TODO: add more here, after collecting data on the common\n\t// error values see on Windows. (perhaps when running\n\t// all.bat?)\n\treturn e\n}\n\nvar (\n\tmodCfgMgr32 = NewLazySystemDLL(\"CfgMgr32.dll\")\n\tmodadvapi32 = NewLazySystemDLL(\"advapi32.dll\")\n\tmodcrypt32  = NewLazySystemDLL(\"crypt32.dll\")\n\tmoddnsapi   = NewLazySystemDLL(\"dnsapi.dll\")\n\tmoddwmapi   = NewLazySystemDLL(\"dwmapi.dll\")\n\tmodiphlpapi = NewLazySystemDLL(\"iphlpapi.dll\")\n\tmodkernel32 = NewLazySystemDLL(\"kernel32.dll\")\n\tmodmswsock  = NewLazySystemDLL(\"mswsock.dll\")\n\tmodnetapi32 = NewLazySystemDLL(\"netapi32.dll\")\n\tmodntdll    = NewLazySystemDLL(\"ntdll.dll\")\n\tmodole32    = NewLazySystemDLL(\"ole32.dll\")\n\tmodpsapi    = NewLazySystemDLL(\"psapi.dll\")\n\tmodsechost  = NewLazySystemDLL(\"sechost.dll\")\n\tmodsecur32  = NewLazySystemDLL(\"secur32.dll\")\n\tmodsetupapi = NewLazySystemDLL(\"setupapi.dll\")\n\tmodshell32  = NewLazySystemDLL(\"shell32.dll\")\n\tmoduser32   = NewLazySystemDLL(\"user32.dll\")\n\tmoduserenv  = NewLazySystemDLL(\"userenv.dll\")\n\tmodversion  = NewLazySystemDLL(\"version.dll\")\n\tmodwinmm    = NewLazySystemDLL(\"winmm.dll\")\n\tmodwintrust = NewLazySystemDLL(\"wintrust.dll\")\n\tmodws2_32   = NewLazySystemDLL(\"ws2_32.dll\")\n\tmodwtsapi32 = NewLazySystemDLL(\"wtsapi32.dll\")\n\n\tprocCM_Get_DevNode_Status                                = modCfgMgr32.NewProc(\"CM_Get_DevNode_Status\")\n\tprocCM_Get_Device_Interface_ListW                        = modCfgMgr32.NewProc(\"CM_Get_Device_Interface_ListW\")\n\tprocCM_Get_Device_Interface_List_SizeW                   = modCfgMgr32.NewProc(\"CM_Get_Device_Interface_List_SizeW\")\n\tprocCM_MapCrToWin32Err                                   = modCfgMgr32.NewProc(\"CM_MapCrToWin32Err\")\n\tprocAdjustTokenGroups                                    = modadvapi32.NewProc(\"AdjustTokenGroups\")\n\tprocAdjustTokenPrivileges                                = modadvapi32.NewProc(\"AdjustTokenPrivileges\")\n\tprocAllocateAndInitializeSid                             = modadvapi32.NewProc(\"AllocateAndInitializeSid\")\n\tprocBuildSecurityDescriptorW                             = modadvapi32.NewProc(\"BuildSecurityDescriptorW\")\n\tprocChangeServiceConfig2W                                = modadvapi32.NewProc(\"ChangeServiceConfig2W\")\n\tprocChangeServiceConfigW                                 = modadvapi32.NewProc(\"ChangeServiceConfigW\")\n\tprocCheckTokenMembership                                 = modadvapi32.NewProc(\"CheckTokenMembership\")\n\tprocCloseServiceHandle                                   = modadvapi32.NewProc(\"CloseServiceHandle\")\n\tprocControlService                                       = modadvapi32.NewProc(\"ControlService\")\n\tprocConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc(\"ConvertSecurityDescriptorToStringSecurityDescriptorW\")\n\tprocConvertSidToStringSidW                               = modadvapi32.NewProc(\"ConvertSidToStringSidW\")\n\tprocConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc(\"ConvertStringSecurityDescriptorToSecurityDescriptorW\")\n\tprocConvertStringSidToSidW                               = modadvapi32.NewProc(\"ConvertStringSidToSidW\")\n\tprocCopySid                                              = modadvapi32.NewProc(\"CopySid\")\n\tprocCreateProcessAsUserW                                 = modadvapi32.NewProc(\"CreateProcessAsUserW\")\n\tprocCreateServiceW                                       = modadvapi32.NewProc(\"CreateServiceW\")\n\tprocCreateWellKnownSid                                   = modadvapi32.NewProc(\"CreateWellKnownSid\")\n\tprocCryptAcquireContextW                                 = modadvapi32.NewProc(\"CryptAcquireContextW\")\n\tprocCryptGenRandom                                       = modadvapi32.NewProc(\"CryptGenRandom\")\n\tprocCryptReleaseContext                                  = modadvapi32.NewProc(\"CryptReleaseContext\")\n\tprocDeleteService                                        = modadvapi32.NewProc(\"DeleteService\")\n\tprocDeregisterEventSource                                = modadvapi32.NewProc(\"DeregisterEventSource\")\n\tprocDuplicateTokenEx                                     = modadvapi32.NewProc(\"DuplicateTokenEx\")\n\tprocEnumDependentServicesW                               = modadvapi32.NewProc(\"EnumDependentServicesW\")\n\tprocEnumServicesStatusExW                                = modadvapi32.NewProc(\"EnumServicesStatusExW\")\n\tprocEqualSid                                             = modadvapi32.NewProc(\"EqualSid\")\n\tprocFreeSid                                              = modadvapi32.NewProc(\"FreeSid\")\n\tprocGetAce                                               = modadvapi32.NewProc(\"GetAce\")\n\tprocGetLengthSid                                         = modadvapi32.NewProc(\"GetLengthSid\")\n\tprocGetNamedSecurityInfoW                                = modadvapi32.NewProc(\"GetNamedSecurityInfoW\")\n\tprocGetSecurityDescriptorControl                         = modadvapi32.NewProc(\"GetSecurityDescriptorControl\")\n\tprocGetSecurityDescriptorDacl                            = modadvapi32.NewProc(\"GetSecurityDescriptorDacl\")\n\tprocGetSecurityDescriptorGroup                           = modadvapi32.NewProc(\"GetSecurityDescriptorGroup\")\n\tprocGetSecurityDescriptorLength                          = modadvapi32.NewProc(\"GetSecurityDescriptorLength\")\n\tprocGetSecurityDescriptorOwner                           = modadvapi32.NewProc(\"GetSecurityDescriptorOwner\")\n\tprocGetSecurityDescriptorRMControl                       = modadvapi32.NewProc(\"GetSecurityDescriptorRMControl\")\n\tprocGetSecurityDescriptorSacl                            = modadvapi32.NewProc(\"GetSecurityDescriptorSacl\")\n\tprocGetSecurityInfo                                      = modadvapi32.NewProc(\"GetSecurityInfo\")\n\tprocGetSidIdentifierAuthority                            = modadvapi32.NewProc(\"GetSidIdentifierAuthority\")\n\tprocGetSidSubAuthority                                   = modadvapi32.NewProc(\"GetSidSubAuthority\")\n\tprocGetSidSubAuthorityCount                              = modadvapi32.NewProc(\"GetSidSubAuthorityCount\")\n\tprocGetTokenInformation                                  = modadvapi32.NewProc(\"GetTokenInformation\")\n\tprocImpersonateSelf                                      = modadvapi32.NewProc(\"ImpersonateSelf\")\n\tprocInitializeSecurityDescriptor                         = modadvapi32.NewProc(\"InitializeSecurityDescriptor\")\n\tprocInitiateSystemShutdownExW                            = modadvapi32.NewProc(\"InitiateSystemShutdownExW\")\n\tprocIsTokenRestricted                                    = modadvapi32.NewProc(\"IsTokenRestricted\")\n\tprocIsValidSecurityDescriptor                            = modadvapi32.NewProc(\"IsValidSecurityDescriptor\")\n\tprocIsValidSid                                           = modadvapi32.NewProc(\"IsValidSid\")\n\tprocIsWellKnownSid                                       = modadvapi32.NewProc(\"IsWellKnownSid\")\n\tprocLookupAccountNameW                                   = modadvapi32.NewProc(\"LookupAccountNameW\")\n\tprocLookupAccountSidW                                    = modadvapi32.NewProc(\"LookupAccountSidW\")\n\tprocLookupPrivilegeValueW                                = modadvapi32.NewProc(\"LookupPrivilegeValueW\")\n\tprocMakeAbsoluteSD                                       = modadvapi32.NewProc(\"MakeAbsoluteSD\")\n\tprocMakeSelfRelativeSD                                   = modadvapi32.NewProc(\"MakeSelfRelativeSD\")\n\tprocNotifyServiceStatusChangeW                           = modadvapi32.NewProc(\"NotifyServiceStatusChangeW\")\n\tprocOpenProcessToken                                     = modadvapi32.NewProc(\"OpenProcessToken\")\n\tprocOpenSCManagerW                                       = modadvapi32.NewProc(\"OpenSCManagerW\")\n\tprocOpenServiceW                                         = modadvapi32.NewProc(\"OpenServiceW\")\n\tprocOpenThreadToken                                      = modadvapi32.NewProc(\"OpenThreadToken\")\n\tprocQueryServiceConfig2W                                 = modadvapi32.NewProc(\"QueryServiceConfig2W\")\n\tprocQueryServiceConfigW                                  = modadvapi32.NewProc(\"QueryServiceConfigW\")\n\tprocQueryServiceDynamicInformation                       = modadvapi32.NewProc(\"QueryServiceDynamicInformation\")\n\tprocQueryServiceLockStatusW                              = modadvapi32.NewProc(\"QueryServiceLockStatusW\")\n\tprocQueryServiceStatus                                   = modadvapi32.NewProc(\"QueryServiceStatus\")\n\tprocQueryServiceStatusEx                                 = modadvapi32.NewProc(\"QueryServiceStatusEx\")\n\tprocRegCloseKey                                          = modadvapi32.NewProc(\"RegCloseKey\")\n\tprocRegEnumKeyExW                                        = modadvapi32.NewProc(\"RegEnumKeyExW\")\n\tprocRegNotifyChangeKeyValue                              = modadvapi32.NewProc(\"RegNotifyChangeKeyValue\")\n\tprocRegOpenKeyExW                                        = modadvapi32.NewProc(\"RegOpenKeyExW\")\n\tprocRegQueryInfoKeyW                                     = modadvapi32.NewProc(\"RegQueryInfoKeyW\")\n\tprocRegQueryValueExW                                     = modadvapi32.NewProc(\"RegQueryValueExW\")\n\tprocRegisterEventSourceW                                 = modadvapi32.NewProc(\"RegisterEventSourceW\")\n\tprocRegisterServiceCtrlHandlerExW                        = modadvapi32.NewProc(\"RegisterServiceCtrlHandlerExW\")\n\tprocReportEventW                                         = modadvapi32.NewProc(\"ReportEventW\")\n\tprocRevertToSelf                                         = modadvapi32.NewProc(\"RevertToSelf\")\n\tprocSetEntriesInAclW                                     = modadvapi32.NewProc(\"SetEntriesInAclW\")\n\tprocSetKernelObjectSecurity                              = modadvapi32.NewProc(\"SetKernelObjectSecurity\")\n\tprocSetNamedSecurityInfoW                                = modadvapi32.NewProc(\"SetNamedSecurityInfoW\")\n\tprocSetSecurityDescriptorControl                         = modadvapi32.NewProc(\"SetSecurityDescriptorControl\")\n\tprocSetSecurityDescriptorDacl                            = modadvapi32.NewProc(\"SetSecurityDescriptorDacl\")\n\tprocSetSecurityDescriptorGroup                           = modadvapi32.NewProc(\"SetSecurityDescriptorGroup\")\n\tprocSetSecurityDescriptorOwner                           = modadvapi32.NewProc(\"SetSecurityDescriptorOwner\")\n\tprocSetSecurityDescriptorRMControl                       = modadvapi32.NewProc(\"SetSecurityDescriptorRMControl\")\n\tprocSetSecurityDescriptorSacl                            = modadvapi32.NewProc(\"SetSecurityDescriptorSacl\")\n\tprocSetSecurityInfo                                      = modadvapi32.NewProc(\"SetSecurityInfo\")\n\tprocSetServiceStatus                                     = modadvapi32.NewProc(\"SetServiceStatus\")\n\tprocSetThreadToken                                       = modadvapi32.NewProc(\"SetThreadToken\")\n\tprocSetTokenInformation                                  = modadvapi32.NewProc(\"SetTokenInformation\")\n\tprocStartServiceCtrlDispatcherW                          = modadvapi32.NewProc(\"StartServiceCtrlDispatcherW\")\n\tprocStartServiceW                                        = modadvapi32.NewProc(\"StartServiceW\")\n\tprocCertAddCertificateContextToStore                     = modcrypt32.NewProc(\"CertAddCertificateContextToStore\")\n\tprocCertCloseStore                                       = modcrypt32.NewProc(\"CertCloseStore\")\n\tprocCertCreateCertificateContext                         = modcrypt32.NewProc(\"CertCreateCertificateContext\")\n\tprocCertDeleteCertificateFromStore                       = modcrypt32.NewProc(\"CertDeleteCertificateFromStore\")\n\tprocCertDuplicateCertificateContext                      = modcrypt32.NewProc(\"CertDuplicateCertificateContext\")\n\tprocCertEnumCertificatesInStore                          = modcrypt32.NewProc(\"CertEnumCertificatesInStore\")\n\tprocCertFindCertificateInStore                           = modcrypt32.NewProc(\"CertFindCertificateInStore\")\n\tprocCertFindChainInStore                                 = modcrypt32.NewProc(\"CertFindChainInStore\")\n\tprocCertFindExtension                                    = modcrypt32.NewProc(\"CertFindExtension\")\n\tprocCertFreeCertificateChain                             = modcrypt32.NewProc(\"CertFreeCertificateChain\")\n\tprocCertFreeCertificateContext                           = modcrypt32.NewProc(\"CertFreeCertificateContext\")\n\tprocCertGetCertificateChain                              = modcrypt32.NewProc(\"CertGetCertificateChain\")\n\tprocCertGetNameStringW                                   = modcrypt32.NewProc(\"CertGetNameStringW\")\n\tprocCertOpenStore                                        = modcrypt32.NewProc(\"CertOpenStore\")\n\tprocCertOpenSystemStoreW                                 = modcrypt32.NewProc(\"CertOpenSystemStoreW\")\n\tprocCertVerifyCertificateChainPolicy                     = modcrypt32.NewProc(\"CertVerifyCertificateChainPolicy\")\n\tprocCryptAcquireCertificatePrivateKey                    = modcrypt32.NewProc(\"CryptAcquireCertificatePrivateKey\")\n\tprocCryptDecodeObject                                    = modcrypt32.NewProc(\"CryptDecodeObject\")\n\tprocCryptProtectData                                     = modcrypt32.NewProc(\"CryptProtectData\")\n\tprocCryptQueryObject                                     = modcrypt32.NewProc(\"CryptQueryObject\")\n\tprocCryptUnprotectData                                   = modcrypt32.NewProc(\"CryptUnprotectData\")\n\tprocPFXImportCertStore                                   = modcrypt32.NewProc(\"PFXImportCertStore\")\n\tprocDnsNameCompare_W                                     = moddnsapi.NewProc(\"DnsNameCompare_W\")\n\tprocDnsQuery_W                                           = moddnsapi.NewProc(\"DnsQuery_W\")\n\tprocDnsRecordListFree                                    = moddnsapi.NewProc(\"DnsRecordListFree\")\n\tprocDwmGetWindowAttribute                                = moddwmapi.NewProc(\"DwmGetWindowAttribute\")\n\tprocDwmSetWindowAttribute                                = moddwmapi.NewProc(\"DwmSetWindowAttribute\")\n\tprocGetAdaptersAddresses                                 = modiphlpapi.NewProc(\"GetAdaptersAddresses\")\n\tprocGetAdaptersInfo                                      = modiphlpapi.NewProc(\"GetAdaptersInfo\")\n\tprocGetBestInterfaceEx                                   = modiphlpapi.NewProc(\"GetBestInterfaceEx\")\n\tprocGetIfEntry                                           = modiphlpapi.NewProc(\"GetIfEntry\")\n\tprocAddDllDirectory                                      = modkernel32.NewProc(\"AddDllDirectory\")\n\tprocAssignProcessToJobObject                             = modkernel32.NewProc(\"AssignProcessToJobObject\")\n\tprocCancelIo                                             = modkernel32.NewProc(\"CancelIo\")\n\tprocCancelIoEx                                           = modkernel32.NewProc(\"CancelIoEx\")\n\tprocClearCommBreak                                       = modkernel32.NewProc(\"ClearCommBreak\")\n\tprocClearCommError                                       = modkernel32.NewProc(\"ClearCommError\")\n\tprocCloseHandle                                          = modkernel32.NewProc(\"CloseHandle\")\n\tprocClosePseudoConsole                                   = modkernel32.NewProc(\"ClosePseudoConsole\")\n\tprocConnectNamedPipe                                     = modkernel32.NewProc(\"ConnectNamedPipe\")\n\tprocCreateDirectoryW                                     = modkernel32.NewProc(\"CreateDirectoryW\")\n\tprocCreateEventExW                                       = modkernel32.NewProc(\"CreateEventExW\")\n\tprocCreateEventW                                         = modkernel32.NewProc(\"CreateEventW\")\n\tprocCreateFileMappingW                                   = modkernel32.NewProc(\"CreateFileMappingW\")\n\tprocCreateFileW                                          = modkernel32.NewProc(\"CreateFileW\")\n\tprocCreateHardLinkW                                      = modkernel32.NewProc(\"CreateHardLinkW\")\n\tprocCreateIoCompletionPort                               = modkernel32.NewProc(\"CreateIoCompletionPort\")\n\tprocCreateJobObjectW                                     = modkernel32.NewProc(\"CreateJobObjectW\")\n\tprocCreateMutexExW                                       = modkernel32.NewProc(\"CreateMutexExW\")\n\tprocCreateMutexW                                         = modkernel32.NewProc(\"CreateMutexW\")\n\tprocCreateNamedPipeW                                     = modkernel32.NewProc(\"CreateNamedPipeW\")\n\tprocCreatePipe                                           = modkernel32.NewProc(\"CreatePipe\")\n\tprocCreateProcessW                                       = modkernel32.NewProc(\"CreateProcessW\")\n\tprocCreatePseudoConsole                                  = modkernel32.NewProc(\"CreatePseudoConsole\")\n\tprocCreateSymbolicLinkW                                  = modkernel32.NewProc(\"CreateSymbolicLinkW\")\n\tprocCreateToolhelp32Snapshot                             = modkernel32.NewProc(\"CreateToolhelp32Snapshot\")\n\tprocDefineDosDeviceW                                     = modkernel32.NewProc(\"DefineDosDeviceW\")\n\tprocDeleteFileW                                          = modkernel32.NewProc(\"DeleteFileW\")\n\tprocDeleteProcThreadAttributeList                        = modkernel32.NewProc(\"DeleteProcThreadAttributeList\")\n\tprocDeleteVolumeMountPointW                              = modkernel32.NewProc(\"DeleteVolumeMountPointW\")\n\tprocDeviceIoControl                                      = modkernel32.NewProc(\"DeviceIoControl\")\n\tprocDisconnectNamedPipe                                  = modkernel32.NewProc(\"DisconnectNamedPipe\")\n\tprocDuplicateHandle                                      = modkernel32.NewProc(\"DuplicateHandle\")\n\tprocEscapeCommFunction                                   = modkernel32.NewProc(\"EscapeCommFunction\")\n\tprocExitProcess                                          = modkernel32.NewProc(\"ExitProcess\")\n\tprocExpandEnvironmentStringsW                            = modkernel32.NewProc(\"ExpandEnvironmentStringsW\")\n\tprocFindClose                                            = modkernel32.NewProc(\"FindClose\")\n\tprocFindCloseChangeNotification                          = modkernel32.NewProc(\"FindCloseChangeNotification\")\n\tprocFindFirstChangeNotificationW                         = modkernel32.NewProc(\"FindFirstChangeNotificationW\")\n\tprocFindFirstFileW                                       = modkernel32.NewProc(\"FindFirstFileW\")\n\tprocFindFirstVolumeMountPointW                           = modkernel32.NewProc(\"FindFirstVolumeMountPointW\")\n\tprocFindFirstVolumeW                                     = modkernel32.NewProc(\"FindFirstVolumeW\")\n\tprocFindNextChangeNotification                           = modkernel32.NewProc(\"FindNextChangeNotification\")\n\tprocFindNextFileW                                        = modkernel32.NewProc(\"FindNextFileW\")\n\tprocFindNextVolumeMountPointW                            = modkernel32.NewProc(\"FindNextVolumeMountPointW\")\n\tprocFindNextVolumeW                                      = modkernel32.NewProc(\"FindNextVolumeW\")\n\tprocFindResourceW                                        = modkernel32.NewProc(\"FindResourceW\")\n\tprocFindVolumeClose                                      = modkernel32.NewProc(\"FindVolumeClose\")\n\tprocFindVolumeMountPointClose                            = modkernel32.NewProc(\"FindVolumeMountPointClose\")\n\tprocFlushFileBuffers                                     = modkernel32.NewProc(\"FlushFileBuffers\")\n\tprocFlushViewOfFile                                      = modkernel32.NewProc(\"FlushViewOfFile\")\n\tprocFormatMessageW                                       = modkernel32.NewProc(\"FormatMessageW\")\n\tprocFreeEnvironmentStringsW                              = modkernel32.NewProc(\"FreeEnvironmentStringsW\")\n\tprocFreeLibrary                                          = modkernel32.NewProc(\"FreeLibrary\")\n\tprocGenerateConsoleCtrlEvent                             = modkernel32.NewProc(\"GenerateConsoleCtrlEvent\")\n\tprocGetACP                                               = modkernel32.NewProc(\"GetACP\")\n\tprocGetActiveProcessorCount                              = modkernel32.NewProc(\"GetActiveProcessorCount\")\n\tprocGetCommModemStatus                                   = modkernel32.NewProc(\"GetCommModemStatus\")\n\tprocGetCommState                                         = modkernel32.NewProc(\"GetCommState\")\n\tprocGetCommTimeouts                                      = modkernel32.NewProc(\"GetCommTimeouts\")\n\tprocGetCommandLineW                                      = modkernel32.NewProc(\"GetCommandLineW\")\n\tprocGetComputerNameExW                                   = modkernel32.NewProc(\"GetComputerNameExW\")\n\tprocGetComputerNameW                                     = modkernel32.NewProc(\"GetComputerNameW\")\n\tprocGetConsoleMode                                       = modkernel32.NewProc(\"GetConsoleMode\")\n\tprocGetConsoleScreenBufferInfo                           = modkernel32.NewProc(\"GetConsoleScreenBufferInfo\")\n\tprocGetCurrentDirectoryW                                 = modkernel32.NewProc(\"GetCurrentDirectoryW\")\n\tprocGetCurrentProcessId                                  = modkernel32.NewProc(\"GetCurrentProcessId\")\n\tprocGetCurrentThreadId                                   = modkernel32.NewProc(\"GetCurrentThreadId\")\n\tprocGetDiskFreeSpaceExW                                  = modkernel32.NewProc(\"GetDiskFreeSpaceExW\")\n\tprocGetDriveTypeW                                        = modkernel32.NewProc(\"GetDriveTypeW\")\n\tprocGetEnvironmentStringsW                               = modkernel32.NewProc(\"GetEnvironmentStringsW\")\n\tprocGetEnvironmentVariableW                              = modkernel32.NewProc(\"GetEnvironmentVariableW\")\n\tprocGetExitCodeProcess                                   = modkernel32.NewProc(\"GetExitCodeProcess\")\n\tprocGetFileAttributesExW                                 = modkernel32.NewProc(\"GetFileAttributesExW\")\n\tprocGetFileAttributesW                                   = modkernel32.NewProc(\"GetFileAttributesW\")\n\tprocGetFileInformationByHandle                           = modkernel32.NewProc(\"GetFileInformationByHandle\")\n\tprocGetFileInformationByHandleEx                         = modkernel32.NewProc(\"GetFileInformationByHandleEx\")\n\tprocGetFileTime                                          = modkernel32.NewProc(\"GetFileTime\")\n\tprocGetFileType                                          = modkernel32.NewProc(\"GetFileType\")\n\tprocGetFinalPathNameByHandleW                            = modkernel32.NewProc(\"GetFinalPathNameByHandleW\")\n\tprocGetFullPathNameW                                     = modkernel32.NewProc(\"GetFullPathNameW\")\n\tprocGetLargePageMinimum                                  = modkernel32.NewProc(\"GetLargePageMinimum\")\n\tprocGetLastError                                         = modkernel32.NewProc(\"GetLastError\")\n\tprocGetLogicalDriveStringsW                              = modkernel32.NewProc(\"GetLogicalDriveStringsW\")\n\tprocGetLogicalDrives                                     = modkernel32.NewProc(\"GetLogicalDrives\")\n\tprocGetLongPathNameW                                     = modkernel32.NewProc(\"GetLongPathNameW\")\n\tprocGetMaximumProcessorCount                             = modkernel32.NewProc(\"GetMaximumProcessorCount\")\n\tprocGetModuleFileNameW                                   = modkernel32.NewProc(\"GetModuleFileNameW\")\n\tprocGetModuleHandleExW                                   = modkernel32.NewProc(\"GetModuleHandleExW\")\n\tprocGetNamedPipeHandleStateW                             = modkernel32.NewProc(\"GetNamedPipeHandleStateW\")\n\tprocGetNamedPipeInfo                                     = modkernel32.NewProc(\"GetNamedPipeInfo\")\n\tprocGetOverlappedResult                                  = modkernel32.NewProc(\"GetOverlappedResult\")\n\tprocGetPriorityClass                                     = modkernel32.NewProc(\"GetPriorityClass\")\n\tprocGetProcAddress                                       = modkernel32.NewProc(\"GetProcAddress\")\n\tprocGetProcessId                                         = modkernel32.NewProc(\"GetProcessId\")\n\tprocGetProcessPreferredUILanguages                       = modkernel32.NewProc(\"GetProcessPreferredUILanguages\")\n\tprocGetProcessShutdownParameters                         = modkernel32.NewProc(\"GetProcessShutdownParameters\")\n\tprocGetProcessTimes                                      = modkernel32.NewProc(\"GetProcessTimes\")\n\tprocGetProcessWorkingSetSizeEx                           = modkernel32.NewProc(\"GetProcessWorkingSetSizeEx\")\n\tprocGetQueuedCompletionStatus                            = modkernel32.NewProc(\"GetQueuedCompletionStatus\")\n\tprocGetShortPathNameW                                    = modkernel32.NewProc(\"GetShortPathNameW\")\n\tprocGetStartupInfoW                                      = modkernel32.NewProc(\"GetStartupInfoW\")\n\tprocGetStdHandle                                         = modkernel32.NewProc(\"GetStdHandle\")\n\tprocGetSystemDirectoryW                                  = modkernel32.NewProc(\"GetSystemDirectoryW\")\n\tprocGetSystemPreferredUILanguages                        = modkernel32.NewProc(\"GetSystemPreferredUILanguages\")\n\tprocGetSystemTimeAsFileTime                              = modkernel32.NewProc(\"GetSystemTimeAsFileTime\")\n\tprocGetSystemTimePreciseAsFileTime                       = modkernel32.NewProc(\"GetSystemTimePreciseAsFileTime\")\n\tprocGetSystemWindowsDirectoryW                           = modkernel32.NewProc(\"GetSystemWindowsDirectoryW\")\n\tprocGetTempPathW                                         = modkernel32.NewProc(\"GetTempPathW\")\n\tprocGetThreadPreferredUILanguages                        = modkernel32.NewProc(\"GetThreadPreferredUILanguages\")\n\tprocGetTickCount64                                       = modkernel32.NewProc(\"GetTickCount64\")\n\tprocGetTimeZoneInformation                               = modkernel32.NewProc(\"GetTimeZoneInformation\")\n\tprocGetUserPreferredUILanguages                          = modkernel32.NewProc(\"GetUserPreferredUILanguages\")\n\tprocGetVersion                                           = modkernel32.NewProc(\"GetVersion\")\n\tprocGetVolumeInformationByHandleW                        = modkernel32.NewProc(\"GetVolumeInformationByHandleW\")\n\tprocGetVolumeInformationW                                = modkernel32.NewProc(\"GetVolumeInformationW\")\n\tprocGetVolumeNameForVolumeMountPointW                    = modkernel32.NewProc(\"GetVolumeNameForVolumeMountPointW\")\n\tprocGetVolumePathNameW                                   = modkernel32.NewProc(\"GetVolumePathNameW\")\n\tprocGetVolumePathNamesForVolumeNameW                     = modkernel32.NewProc(\"GetVolumePathNamesForVolumeNameW\")\n\tprocGetWindowsDirectoryW                                 = modkernel32.NewProc(\"GetWindowsDirectoryW\")\n\tprocInitializeProcThreadAttributeList                    = modkernel32.NewProc(\"InitializeProcThreadAttributeList\")\n\tprocIsWow64Process                                       = modkernel32.NewProc(\"IsWow64Process\")\n\tprocIsWow64Process2                                      = modkernel32.NewProc(\"IsWow64Process2\")\n\tprocLoadLibraryExW                                       = modkernel32.NewProc(\"LoadLibraryExW\")\n\tprocLoadLibraryW                                         = modkernel32.NewProc(\"LoadLibraryW\")\n\tprocLoadResource                                         = modkernel32.NewProc(\"LoadResource\")\n\tprocLocalAlloc                                           = modkernel32.NewProc(\"LocalAlloc\")\n\tprocLocalFree                                            = modkernel32.NewProc(\"LocalFree\")\n\tprocLockFileEx                                           = modkernel32.NewProc(\"LockFileEx\")\n\tprocLockResource                                         = modkernel32.NewProc(\"LockResource\")\n\tprocMapViewOfFile                                        = modkernel32.NewProc(\"MapViewOfFile\")\n\tprocModule32FirstW                                       = modkernel32.NewProc(\"Module32FirstW\")\n\tprocModule32NextW                                        = modkernel32.NewProc(\"Module32NextW\")\n\tprocMoveFileExW                                          = modkernel32.NewProc(\"MoveFileExW\")\n\tprocMoveFileW                                            = modkernel32.NewProc(\"MoveFileW\")\n\tprocMultiByteToWideChar                                  = modkernel32.NewProc(\"MultiByteToWideChar\")\n\tprocOpenEventW                                           = modkernel32.NewProc(\"OpenEventW\")\n\tprocOpenMutexW                                           = modkernel32.NewProc(\"OpenMutexW\")\n\tprocOpenProcess                                          = modkernel32.NewProc(\"OpenProcess\")\n\tprocOpenThread                                           = modkernel32.NewProc(\"OpenThread\")\n\tprocPostQueuedCompletionStatus                           = modkernel32.NewProc(\"PostQueuedCompletionStatus\")\n\tprocProcess32FirstW                                      = modkernel32.NewProc(\"Process32FirstW\")\n\tprocProcess32NextW                                       = modkernel32.NewProc(\"Process32NextW\")\n\tprocProcessIdToSessionId                                 = modkernel32.NewProc(\"ProcessIdToSessionId\")\n\tprocPulseEvent                                           = modkernel32.NewProc(\"PulseEvent\")\n\tprocPurgeComm                                            = modkernel32.NewProc(\"PurgeComm\")\n\tprocQueryDosDeviceW                                      = modkernel32.NewProc(\"QueryDosDeviceW\")\n\tprocQueryFullProcessImageNameW                           = modkernel32.NewProc(\"QueryFullProcessImageNameW\")\n\tprocQueryInformationJobObject                            = modkernel32.NewProc(\"QueryInformationJobObject\")\n\tprocReadConsoleW                                         = modkernel32.NewProc(\"ReadConsoleW\")\n\tprocReadDirectoryChangesW                                = modkernel32.NewProc(\"ReadDirectoryChangesW\")\n\tprocReadFile                                             = modkernel32.NewProc(\"ReadFile\")\n\tprocReadProcessMemory                                    = modkernel32.NewProc(\"ReadProcessMemory\")\n\tprocReleaseMutex                                         = modkernel32.NewProc(\"ReleaseMutex\")\n\tprocRemoveDirectoryW                                     = modkernel32.NewProc(\"RemoveDirectoryW\")\n\tprocRemoveDllDirectory                                   = modkernel32.NewProc(\"RemoveDllDirectory\")\n\tprocResetEvent                                           = modkernel32.NewProc(\"ResetEvent\")\n\tprocResizePseudoConsole                                  = modkernel32.NewProc(\"ResizePseudoConsole\")\n\tprocResumeThread                                         = modkernel32.NewProc(\"ResumeThread\")\n\tprocSetCommBreak                                         = modkernel32.NewProc(\"SetCommBreak\")\n\tprocSetCommMask                                          = modkernel32.NewProc(\"SetCommMask\")\n\tprocSetCommState                                         = modkernel32.NewProc(\"SetCommState\")\n\tprocSetCommTimeouts                                      = modkernel32.NewProc(\"SetCommTimeouts\")\n\tprocSetConsoleCursorPosition                             = modkernel32.NewProc(\"SetConsoleCursorPosition\")\n\tprocSetConsoleMode                                       = modkernel32.NewProc(\"SetConsoleMode\")\n\tprocSetCurrentDirectoryW                                 = modkernel32.NewProc(\"SetCurrentDirectoryW\")\n\tprocSetDefaultDllDirectories                             = modkernel32.NewProc(\"SetDefaultDllDirectories\")\n\tprocSetDllDirectoryW                                     = modkernel32.NewProc(\"SetDllDirectoryW\")\n\tprocSetEndOfFile                                         = modkernel32.NewProc(\"SetEndOfFile\")\n\tprocSetEnvironmentVariableW                              = modkernel32.NewProc(\"SetEnvironmentVariableW\")\n\tprocSetErrorMode                                         = modkernel32.NewProc(\"SetErrorMode\")\n\tprocSetEvent                                             = modkernel32.NewProc(\"SetEvent\")\n\tprocSetFileAttributesW                                   = modkernel32.NewProc(\"SetFileAttributesW\")\n\tprocSetFileCompletionNotificationModes                   = modkernel32.NewProc(\"SetFileCompletionNotificationModes\")\n\tprocSetFileInformationByHandle                           = modkernel32.NewProc(\"SetFileInformationByHandle\")\n\tprocSetFilePointer                                       = modkernel32.NewProc(\"SetFilePointer\")\n\tprocSetFileTime                                          = modkernel32.NewProc(\"SetFileTime\")\n\tprocSetFileValidData                                     = modkernel32.NewProc(\"SetFileValidData\")\n\tprocSetHandleInformation                                 = modkernel32.NewProc(\"SetHandleInformation\")\n\tprocSetInformationJobObject                              = modkernel32.NewProc(\"SetInformationJobObject\")\n\tprocSetNamedPipeHandleState                              = modkernel32.NewProc(\"SetNamedPipeHandleState\")\n\tprocSetPriorityClass                                     = modkernel32.NewProc(\"SetPriorityClass\")\n\tprocSetProcessPriorityBoost                              = modkernel32.NewProc(\"SetProcessPriorityBoost\")\n\tprocSetProcessShutdownParameters                         = modkernel32.NewProc(\"SetProcessShutdownParameters\")\n\tprocSetProcessWorkingSetSizeEx                           = modkernel32.NewProc(\"SetProcessWorkingSetSizeEx\")\n\tprocSetStdHandle                                         = modkernel32.NewProc(\"SetStdHandle\")\n\tprocSetVolumeLabelW                                      = modkernel32.NewProc(\"SetVolumeLabelW\")\n\tprocSetVolumeMountPointW                                 = modkernel32.NewProc(\"SetVolumeMountPointW\")\n\tprocSetupComm                                            = modkernel32.NewProc(\"SetupComm\")\n\tprocSizeofResource                                       = modkernel32.NewProc(\"SizeofResource\")\n\tprocSleepEx                                              = modkernel32.NewProc(\"SleepEx\")\n\tprocTerminateJobObject                                   = modkernel32.NewProc(\"TerminateJobObject\")\n\tprocTerminateProcess                                     = modkernel32.NewProc(\"TerminateProcess\")\n\tprocThread32First                                        = modkernel32.NewProc(\"Thread32First\")\n\tprocThread32Next                                         = modkernel32.NewProc(\"Thread32Next\")\n\tprocUnlockFileEx                                         = modkernel32.NewProc(\"UnlockFileEx\")\n\tprocUnmapViewOfFile                                      = modkernel32.NewProc(\"UnmapViewOfFile\")\n\tprocUpdateProcThreadAttribute                            = modkernel32.NewProc(\"UpdateProcThreadAttribute\")\n\tprocVirtualAlloc                                         = modkernel32.NewProc(\"VirtualAlloc\")\n\tprocVirtualFree                                          = modkernel32.NewProc(\"VirtualFree\")\n\tprocVirtualLock                                          = modkernel32.NewProc(\"VirtualLock\")\n\tprocVirtualProtect                                       = modkernel32.NewProc(\"VirtualProtect\")\n\tprocVirtualProtectEx                                     = modkernel32.NewProc(\"VirtualProtectEx\")\n\tprocVirtualQuery                                         = modkernel32.NewProc(\"VirtualQuery\")\n\tprocVirtualQueryEx                                       = modkernel32.NewProc(\"VirtualQueryEx\")\n\tprocVirtualUnlock                                        = modkernel32.NewProc(\"VirtualUnlock\")\n\tprocWTSGetActiveConsoleSessionId                         = modkernel32.NewProc(\"WTSGetActiveConsoleSessionId\")\n\tprocWaitCommEvent                                        = modkernel32.NewProc(\"WaitCommEvent\")\n\tprocWaitForMultipleObjects                               = modkernel32.NewProc(\"WaitForMultipleObjects\")\n\tprocWaitForSingleObject                                  = modkernel32.NewProc(\"WaitForSingleObject\")\n\tprocWriteConsoleW                                        = modkernel32.NewProc(\"WriteConsoleW\")\n\tprocWriteFile                                            = modkernel32.NewProc(\"WriteFile\")\n\tprocWriteProcessMemory                                   = modkernel32.NewProc(\"WriteProcessMemory\")\n\tprocAcceptEx                                             = modmswsock.NewProc(\"AcceptEx\")\n\tprocGetAcceptExSockaddrs                                 = modmswsock.NewProc(\"GetAcceptExSockaddrs\")\n\tprocTransmitFile                                         = modmswsock.NewProc(\"TransmitFile\")\n\tprocNetApiBufferFree                                     = modnetapi32.NewProc(\"NetApiBufferFree\")\n\tprocNetGetJoinInformation                                = modnetapi32.NewProc(\"NetGetJoinInformation\")\n\tprocNetUserEnum                                          = modnetapi32.NewProc(\"NetUserEnum\")\n\tprocNetUserGetInfo                                       = modnetapi32.NewProc(\"NetUserGetInfo\")\n\tprocNtCreateFile                                         = modntdll.NewProc(\"NtCreateFile\")\n\tprocNtCreateNamedPipeFile                                = modntdll.NewProc(\"NtCreateNamedPipeFile\")\n\tprocNtQueryInformationProcess                            = modntdll.NewProc(\"NtQueryInformationProcess\")\n\tprocNtQuerySystemInformation                             = modntdll.NewProc(\"NtQuerySystemInformation\")\n\tprocNtSetInformationFile                                 = modntdll.NewProc(\"NtSetInformationFile\")\n\tprocNtSetInformationProcess                              = modntdll.NewProc(\"NtSetInformationProcess\")\n\tprocNtSetSystemInformation                               = modntdll.NewProc(\"NtSetSystemInformation\")\n\tprocRtlAddFunctionTable                                  = modntdll.NewProc(\"RtlAddFunctionTable\")\n\tprocRtlDefaultNpAcl                                      = modntdll.NewProc(\"RtlDefaultNpAcl\")\n\tprocRtlDeleteFunctionTable                               = modntdll.NewProc(\"RtlDeleteFunctionTable\")\n\tprocRtlDosPathNameToNtPathName_U_WithStatus              = modntdll.NewProc(\"RtlDosPathNameToNtPathName_U_WithStatus\")\n\tprocRtlDosPathNameToRelativeNtPathName_U_WithStatus      = modntdll.NewProc(\"RtlDosPathNameToRelativeNtPathName_U_WithStatus\")\n\tprocRtlGetCurrentPeb                                     = modntdll.NewProc(\"RtlGetCurrentPeb\")\n\tprocRtlGetNtVersionNumbers                               = modntdll.NewProc(\"RtlGetNtVersionNumbers\")\n\tprocRtlGetVersion                                        = modntdll.NewProc(\"RtlGetVersion\")\n\tprocRtlInitString                                        = modntdll.NewProc(\"RtlInitString\")\n\tprocRtlInitUnicodeString                                 = modntdll.NewProc(\"RtlInitUnicodeString\")\n\tprocRtlNtStatusToDosErrorNoTeb                           = modntdll.NewProc(\"RtlNtStatusToDosErrorNoTeb\")\n\tprocCLSIDFromString                                      = modole32.NewProc(\"CLSIDFromString\")\n\tprocCoCreateGuid                                         = modole32.NewProc(\"CoCreateGuid\")\n\tprocCoGetObject                                          = modole32.NewProc(\"CoGetObject\")\n\tprocCoInitializeEx                                       = modole32.NewProc(\"CoInitializeEx\")\n\tprocCoTaskMemFree                                        = modole32.NewProc(\"CoTaskMemFree\")\n\tprocCoUninitialize                                       = modole32.NewProc(\"CoUninitialize\")\n\tprocStringFromGUID2                                      = modole32.NewProc(\"StringFromGUID2\")\n\tprocEnumProcessModules                                   = modpsapi.NewProc(\"EnumProcessModules\")\n\tprocEnumProcessModulesEx                                 = modpsapi.NewProc(\"EnumProcessModulesEx\")\n\tprocEnumProcesses                                        = modpsapi.NewProc(\"EnumProcesses\")\n\tprocGetModuleBaseNameW                                   = modpsapi.NewProc(\"GetModuleBaseNameW\")\n\tprocGetModuleFileNameExW                                 = modpsapi.NewProc(\"GetModuleFileNameExW\")\n\tprocGetModuleInformation                                 = modpsapi.NewProc(\"GetModuleInformation\")\n\tprocQueryWorkingSetEx                                    = modpsapi.NewProc(\"QueryWorkingSetEx\")\n\tprocSubscribeServiceChangeNotifications                  = modsechost.NewProc(\"SubscribeServiceChangeNotifications\")\n\tprocUnsubscribeServiceChangeNotifications                = modsechost.NewProc(\"UnsubscribeServiceChangeNotifications\")\n\tprocGetUserNameExW                                       = modsecur32.NewProc(\"GetUserNameExW\")\n\tprocTranslateNameW                                       = modsecur32.NewProc(\"TranslateNameW\")\n\tprocSetupDiBuildDriverInfoList                           = modsetupapi.NewProc(\"SetupDiBuildDriverInfoList\")\n\tprocSetupDiCallClassInstaller                            = modsetupapi.NewProc(\"SetupDiCallClassInstaller\")\n\tprocSetupDiCancelDriverInfoSearch                        = modsetupapi.NewProc(\"SetupDiCancelDriverInfoSearch\")\n\tprocSetupDiClassGuidsFromNameExW                         = modsetupapi.NewProc(\"SetupDiClassGuidsFromNameExW\")\n\tprocSetupDiClassNameFromGuidExW                          = modsetupapi.NewProc(\"SetupDiClassNameFromGuidExW\")\n\tprocSetupDiCreateDeviceInfoListExW                       = modsetupapi.NewProc(\"SetupDiCreateDeviceInfoListExW\")\n\tprocSetupDiCreateDeviceInfoW                             = modsetupapi.NewProc(\"SetupDiCreateDeviceInfoW\")\n\tprocSetupDiDestroyDeviceInfoList                         = modsetupapi.NewProc(\"SetupDiDestroyDeviceInfoList\")\n\tprocSetupDiDestroyDriverInfoList                         = modsetupapi.NewProc(\"SetupDiDestroyDriverInfoList\")\n\tprocSetupDiEnumDeviceInfo                                = modsetupapi.NewProc(\"SetupDiEnumDeviceInfo\")\n\tprocSetupDiEnumDriverInfoW                               = modsetupapi.NewProc(\"SetupDiEnumDriverInfoW\")\n\tprocSetupDiGetClassDevsExW                               = modsetupapi.NewProc(\"SetupDiGetClassDevsExW\")\n\tprocSetupDiGetClassInstallParamsW                        = modsetupapi.NewProc(\"SetupDiGetClassInstallParamsW\")\n\tprocSetupDiGetDeviceInfoListDetailW                      = modsetupapi.NewProc(\"SetupDiGetDeviceInfoListDetailW\")\n\tprocSetupDiGetDeviceInstallParamsW                       = modsetupapi.NewProc(\"SetupDiGetDeviceInstallParamsW\")\n\tprocSetupDiGetDeviceInstanceIdW                          = modsetupapi.NewProc(\"SetupDiGetDeviceInstanceIdW\")\n\tprocSetupDiGetDevicePropertyW                            = modsetupapi.NewProc(\"SetupDiGetDevicePropertyW\")\n\tprocSetupDiGetDeviceRegistryPropertyW                    = modsetupapi.NewProc(\"SetupDiGetDeviceRegistryPropertyW\")\n\tprocSetupDiGetDriverInfoDetailW                          = modsetupapi.NewProc(\"SetupDiGetDriverInfoDetailW\")\n\tprocSetupDiGetSelectedDevice                             = modsetupapi.NewProc(\"SetupDiGetSelectedDevice\")\n\tprocSetupDiGetSelectedDriverW                            = modsetupapi.NewProc(\"SetupDiGetSelectedDriverW\")\n\tprocSetupDiOpenDevRegKey                                 = modsetupapi.NewProc(\"SetupDiOpenDevRegKey\")\n\tprocSetupDiSetClassInstallParamsW                        = modsetupapi.NewProc(\"SetupDiSetClassInstallParamsW\")\n\tprocSetupDiSetDeviceInstallParamsW                       = modsetupapi.NewProc(\"SetupDiSetDeviceInstallParamsW\")\n\tprocSetupDiSetDeviceRegistryPropertyW                    = modsetupapi.NewProc(\"SetupDiSetDeviceRegistryPropertyW\")\n\tprocSetupDiSetSelectedDevice                             = modsetupapi.NewProc(\"SetupDiSetSelectedDevice\")\n\tprocSetupDiSetSelectedDriverW                            = modsetupapi.NewProc(\"SetupDiSetSelectedDriverW\")\n\tprocSetupUninstallOEMInfW                                = modsetupapi.NewProc(\"SetupUninstallOEMInfW\")\n\tprocCommandLineToArgvW                                   = modshell32.NewProc(\"CommandLineToArgvW\")\n\tprocSHGetKnownFolderPath                                 = modshell32.NewProc(\"SHGetKnownFolderPath\")\n\tprocShellExecuteW                                        = modshell32.NewProc(\"ShellExecuteW\")\n\tprocEnumChildWindows                                     = moduser32.NewProc(\"EnumChildWindows\")\n\tprocEnumWindows                                          = moduser32.NewProc(\"EnumWindows\")\n\tprocExitWindowsEx                                        = moduser32.NewProc(\"ExitWindowsEx\")\n\tprocGetClassNameW                                        = moduser32.NewProc(\"GetClassNameW\")\n\tprocGetDesktopWindow                                     = moduser32.NewProc(\"GetDesktopWindow\")\n\tprocGetForegroundWindow                                  = moduser32.NewProc(\"GetForegroundWindow\")\n\tprocGetGUIThreadInfo                                     = moduser32.NewProc(\"GetGUIThreadInfo\")\n\tprocGetKeyboardLayout                                    = moduser32.NewProc(\"GetKeyboardLayout\")\n\tprocGetShellWindow                                       = moduser32.NewProc(\"GetShellWindow\")\n\tprocGetWindowThreadProcessId                             = moduser32.NewProc(\"GetWindowThreadProcessId\")\n\tprocIsWindow                                             = moduser32.NewProc(\"IsWindow\")\n\tprocIsWindowUnicode                                      = moduser32.NewProc(\"IsWindowUnicode\")\n\tprocIsWindowVisible                                      = moduser32.NewProc(\"IsWindowVisible\")\n\tprocLoadKeyboardLayoutW                                  = moduser32.NewProc(\"LoadKeyboardLayoutW\")\n\tprocMessageBoxW                                          = moduser32.NewProc(\"MessageBoxW\")\n\tprocToUnicodeEx                                          = moduser32.NewProc(\"ToUnicodeEx\")\n\tprocUnloadKeyboardLayout                                 = moduser32.NewProc(\"UnloadKeyboardLayout\")\n\tprocCreateEnvironmentBlock                               = moduserenv.NewProc(\"CreateEnvironmentBlock\")\n\tprocDestroyEnvironmentBlock                              = moduserenv.NewProc(\"DestroyEnvironmentBlock\")\n\tprocGetUserProfileDirectoryW                             = moduserenv.NewProc(\"GetUserProfileDirectoryW\")\n\tprocGetFileVersionInfoSizeW                              = modversion.NewProc(\"GetFileVersionInfoSizeW\")\n\tprocGetFileVersionInfoW                                  = modversion.NewProc(\"GetFileVersionInfoW\")\n\tprocVerQueryValueW                                       = modversion.NewProc(\"VerQueryValueW\")\n\tproctimeBeginPeriod                                      = modwinmm.NewProc(\"timeBeginPeriod\")\n\tproctimeEndPeriod                                        = modwinmm.NewProc(\"timeEndPeriod\")\n\tprocWinVerifyTrustEx                                     = modwintrust.NewProc(\"WinVerifyTrustEx\")\n\tprocFreeAddrInfoW                                        = modws2_32.NewProc(\"FreeAddrInfoW\")\n\tprocGetAddrInfoW                                         = modws2_32.NewProc(\"GetAddrInfoW\")\n\tprocWSACleanup                                           = modws2_32.NewProc(\"WSACleanup\")\n\tprocWSAEnumProtocolsW                                    = modws2_32.NewProc(\"WSAEnumProtocolsW\")\n\tprocWSAGetOverlappedResult                               = modws2_32.NewProc(\"WSAGetOverlappedResult\")\n\tprocWSAIoctl                                             = modws2_32.NewProc(\"WSAIoctl\")\n\tprocWSALookupServiceBeginW                               = modws2_32.NewProc(\"WSALookupServiceBeginW\")\n\tprocWSALookupServiceEnd                                  = modws2_32.NewProc(\"WSALookupServiceEnd\")\n\tprocWSALookupServiceNextW                                = modws2_32.NewProc(\"WSALookupServiceNextW\")\n\tprocWSARecv                                              = modws2_32.NewProc(\"WSARecv\")\n\tprocWSARecvFrom                                          = modws2_32.NewProc(\"WSARecvFrom\")\n\tprocWSASend                                              = modws2_32.NewProc(\"WSASend\")\n\tprocWSASendTo                                            = modws2_32.NewProc(\"WSASendTo\")\n\tprocWSASocketW                                           = modws2_32.NewProc(\"WSASocketW\")\n\tprocWSAStartup                                           = modws2_32.NewProc(\"WSAStartup\")\n\tprocbind                                                 = modws2_32.NewProc(\"bind\")\n\tprocclosesocket                                          = modws2_32.NewProc(\"closesocket\")\n\tprocconnect                                              = modws2_32.NewProc(\"connect\")\n\tprocgethostbyname                                        = modws2_32.NewProc(\"gethostbyname\")\n\tprocgetpeername                                          = modws2_32.NewProc(\"getpeername\")\n\tprocgetprotobyname                                       = modws2_32.NewProc(\"getprotobyname\")\n\tprocgetservbyname                                        = modws2_32.NewProc(\"getservbyname\")\n\tprocgetsockname                                          = modws2_32.NewProc(\"getsockname\")\n\tprocgetsockopt                                           = modws2_32.NewProc(\"getsockopt\")\n\tproclisten                                               = modws2_32.NewProc(\"listen\")\n\tprocntohs                                                = modws2_32.NewProc(\"ntohs\")\n\tprocrecvfrom                                             = modws2_32.NewProc(\"recvfrom\")\n\tprocsendto                                               = modws2_32.NewProc(\"sendto\")\n\tprocsetsockopt                                           = modws2_32.NewProc(\"setsockopt\")\n\tprocshutdown                                             = modws2_32.NewProc(\"shutdown\")\n\tprocsocket                                               = modws2_32.NewProc(\"socket\")\n\tprocWTSEnumerateSessionsW                                = modwtsapi32.NewProc(\"WTSEnumerateSessionsW\")\n\tprocWTSFreeMemory                                        = modwtsapi32.NewProc(\"WTSFreeMemory\")\n\tprocWTSQueryUserToken                                    = modwtsapi32.NewProc(\"WTSQueryUserToken\")\n)\n\nfunc cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) {\n\tr0, _, _ := syscall.Syscall6(procCM_Get_DevNode_Status.Addr(), 4, uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags), 0, 0)\n\tret = CONFIGRET(r0)\n\treturn\n}\n\nfunc cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) {\n\tr0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_ListW.Addr(), 5, uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags), 0)\n\tret = CONFIGRET(r0)\n\treturn\n}\n\nfunc cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) {\n\tr0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_List_SizeW.Addr(), 4, uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags), 0, 0)\n\tret = CONFIGRET(r0)\n\treturn\n}\n\nfunc cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) {\n\tr0, _, _ := syscall.Syscall(procCM_MapCrToWin32Err.Addr(), 2, uintptr(configRet), uintptr(defaultWin32Error), 0)\n\tret = Errno(r0)\n\treturn\n}\n\nfunc AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) {\n\tvar _p0 uint32\n\tif resetToDefault {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) {\n\tvar _p0 uint32\n\tif disableAllPrivileges {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) {\n\tr1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) {\n\tr0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CloseServiceHandle(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) {\n\tr1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(str)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size)\n}\n\nfunc _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) {\n\tr1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) {\n\tvar _p0 uint32\n\tif inheritHandles {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall12(procCreateProcessAsUserW.Addr(), 11, uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptReleaseContext(provhandle Handle, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeleteService(service Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeregisterEventSource(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) {\n\tr0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0)\n\tisEqual = r0 != 0\n\treturn\n}\n\nfunc FreeSid(sid *SID) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)\n\tif r1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetAce.Addr(), 3, uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLengthSid(sid *SID) (len uint32) {\n\tr0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)\n\tlen = uint32(r0)\n\treturn\n}\n\nfunc getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {\n\tvar _p0 *uint16\n\t_p0, ret = syscall.UTF16PtrFromString(objectName)\n\tif ret != nil {\n\t\treturn\n\t}\n\treturn _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd)\n}\n\nfunc _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {\n\tr0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *daclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif *daclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0)\n\t*daclPresent = _p0 != 0\n\t*daclDefaulted = _p1 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *groupDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0)))\n\t*groupDefaulted = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) {\n\tr0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0)\n\tlen = uint32(r0)\n\treturn\n}\n\nfunc getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *ownerDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0)))\n\t*ownerDefaulted = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) {\n\tr0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *saclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif *saclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0)\n\t*saclPresent = _p0 != 0\n\t*saclDefaulted = _p1 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {\n\tr0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) {\n\tr0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)\n\tauthority = (*SidIdentifierAuthority)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) {\n\tr0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0)\n\tsubAuthority = (*uint32)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc getSidSubAuthorityCount(sid *SID) (count *uint8) {\n\tr0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)\n\tcount = (*uint8)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ImpersonateSelf(impersonationlevel uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) {\n\tvar _p0 uint32\n\tif forceAppsClosed {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif rebootAfterShutdown {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc isTokenRestricted(tokenHandle Token) (ret bool, err error) {\n\tr0, _, e1 := syscall.Syscall(procIsTokenRestricted.Addr(), 1, uintptr(tokenHandle), 0, 0)\n\tret = r0 != 0\n\tif !ret {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) {\n\tr0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0)\n\tisValid = r0 != 0\n\treturn\n}\n\nfunc isValidSid(sid *SID) (isValid bool) {\n\tr0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)\n\tisValid = r0 != 0\n\treturn\n}\n\nfunc isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) {\n\tr0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0)\n\tisWellKnown = r0 != 0\n\treturn\n}\n\nfunc LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) {\n\tr1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) {\n\tr0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc OpenProcessToken(process Handle, access uint32, token *Token) (err error) {\n\tr1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) {\n\tvar _p0 uint32\n\tif openAsSelf {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) {\n\terr = procQueryServiceDynamicInformation.Find()\n\tif err != nil {\n\t\treturn\n\t}\n\tr1, _, e1 := syscall.Syscall(procQueryServiceDynamicInformation.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) {\n\tr1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RegCloseKey(key Handle) (regerrno error) {\n\tr0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0)\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) {\n\tr0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0)\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) {\n\tvar _p0 uint32\n\tif watchSubtree {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif asynchronous {\n\t\t_p1 = 1\n\t}\n\tr0, _, _ := syscall.Syscall6(procRegNotifyChangeKeyValue.Addr(), 5, uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1), 0)\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) {\n\tr0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0)\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) {\n\tr0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) {\n\tr0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procRegisterServiceCtrlHandlerExW.Addr(), 3, uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RevertToSelf() (err error) {\n\tr1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) {\n\tr0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetKernelObjectSecurity.Addr(), 3, uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {\n\tvar _p0 *uint16\n\t_p0, ret = syscall.UTF16PtrFromString(objectName)\n\tif ret != nil {\n\t\treturn\n\t}\n\treturn _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl)\n}\n\nfunc _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {\n\tr0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif daclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif daclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif groupDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif ownerDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) {\n\tsyscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0)\n\treturn\n}\n\nfunc setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif saclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif saclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {\n\tr0, _, _ := syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetThreadToken(thread *Handle, token Token) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) {\n\tr1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertCloseStore(store Handle, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) {\n\tr0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen))\n\tcontext = (*CertContext)(unsafe.Pointer(r0))\n\tif context == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertDeleteCertificateFromStore(certContext *CertContext) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) {\n\tr0, _, _ := syscall.Syscall(procCertDuplicateCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0)\n\tdupContext = (*CertContext)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) {\n\tr0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0)\n\tcontext = (*CertContext)(unsafe.Pointer(r0))\n\tif context == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCertFindCertificateInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext)))\n\tcert = (*CertContext)(unsafe.Pointer(r0))\n\tif cert == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCertFindChainInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext)))\n\tcertchain = (*CertChainContext)(unsafe.Pointer(r0))\n\tif certchain == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) {\n\tr0, _, _ := syscall.Syscall(procCertFindExtension.Addr(), 3, uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions)))\n\tret = (*CertExtension)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc CertFreeCertificateChain(ctx *CertChainContext) {\n\tsyscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0)\n\treturn\n}\n\nfunc CertFreeCertificateContext(ctx *CertContext) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) {\n\tr0, _, _ := syscall.Syscall6(procCertGetNameStringW.Addr(), 6, uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size))\n\tchars = uint32(r0)\n\treturn\n}\n\nfunc CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0)\n\tstore = Handle(r0)\n\tif store == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) {\n\tvar _p0 uint32\n\tif *callerFreeProvOrNCryptKey {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0)))\n\t*callerFreeProvOrNCryptKey = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procCryptDecodeObject.Addr(), 7, uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procCryptProtectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) {\n\tr1, _, e1 := syscall.Syscall12(procCryptQueryObject.Addr(), 11, uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procCryptUnprotectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags))\n\tstore = Handle(r0)\n\tif store == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) {\n\tr0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0)\n\tsame = r0 != 0\n\treturn\n}\n\nfunc DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {\n\tvar _p0 *uint16\n\t_p0, status = syscall.UTF16PtrFromString(name)\n\tif status != nil {\n\t\treturn\n\t}\n\treturn _DnsQuery(_p0, qtype, options, extra, qrs, pr)\n}\n\nfunc _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {\n\tr0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr)))\n\tif r0 != 0 {\n\t\tstatus = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc DnsRecordListFree(rl *DNSRecord, freetype uint32) {\n\tsyscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0)\n\treturn\n}\n\nfunc DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) {\n\tr0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) {\n\tr0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) {\n\tr0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) {\n\tr0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) {\n\tr0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetIfEntry(pIfRow *MibIfRow) (errcode error) {\n\tr0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc AddDllDirectory(path *uint16) (cookie uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)\n\tcookie = uintptr(r0)\n\tif cookie == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AssignProcessToJobObject(job Handle, process Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CancelIo(s Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CancelIoEx(s Handle, o *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ClearCommBreak(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) {\n\tr1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CloseHandle(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ClosePseudoConsole(console Handle) {\n\tsyscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(console), 0, 0)\n\treturn\n}\n\nfunc ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved))\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif initialOwner {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) {\n\tvar _p0 uint32\n\tif inheritHandles {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) {\n\tr0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)), 0)\n\tif r0 != 0 {\n\t\thr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags))\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeleteFile(path *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) {\n\tsyscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0)\n\treturn\n}\n\nfunc DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DisconnectNamedPipe(pipe Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) {\n\tvar _p0 uint32\n\tif bInheritHandle {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EscapeCommFunction(handle Handle, dwFunc uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ExitProcess(exitcode uint32) {\n\tsyscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0)\n\treturn\n}\n\nfunc ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindClose(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindCloseChangeNotification(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter)\n}\n\nfunc _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) {\n\tvar _p1 uint32\n\tif watchSubtree {\n\t\t_p1 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procFindFirstChangeNotificationW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindNextChangeNotification(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc findNextFile1(handle Handle, data *win32finddata1) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procFindResourceW.Addr(), 3, uintptr(module), uintptr(name), uintptr(resType))\n\tresInfo = Handle(r0)\n\tif resInfo == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindVolumeClose(findVolume Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FlushFileBuffers(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FlushViewOfFile(addr uintptr, length uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) {\n\tvar _p0 *uint16\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FreeEnvironmentStrings(envs *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FreeLibrary(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetACP() (acp uint32) {\n\tr0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0)\n\tacp = uint32(r0)\n\treturn\n}\n\nfunc GetActiveProcessorCount(groupNumber uint16) (ret uint32) {\n\tr0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0)\n\tret = uint32(r0)\n\treturn\n}\n\nfunc GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCommState(handle Handle, lpDCB *DCB) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCommandLine() (cmd *uint16) {\n\tr0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0)\n\tcmd = (*uint16)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetComputerName(buf *uint16, n *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleMode(console Handle, mode *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCurrentProcessId() (pid uint32) {\n\tr0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0)\n\tpid = uint32(r0)\n\treturn\n}\n\nfunc GetCurrentThreadId() (id uint32) {\n\tr0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0)\n\tid = uint32(r0)\n\treturn\n}\n\nfunc GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetDriveType(rootPathName *uint16) (driveType uint32) {\n\tr0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0)\n\tdriveType = uint32(r0)\n\treturn\n}\n\nfunc GetEnvironmentStrings() (envs *uint16, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0)\n\tenvs = (*uint16)(unsafe.Pointer(r0))\n\tif envs == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileAttributes(name *uint16) (attrs uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)\n\tattrs = uint32(r0)\n\tif attrs == INVALID_FILE_ATTRIBUTES {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileType(filehandle Handle) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLargePageMinimum() (size uintptr) {\n\tr0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0)\n\tsize = uintptr(r0)\n\treturn\n}\n\nfunc GetLastError() (lasterr error) {\n\tr0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0)\n\tif r0 != 0 {\n\t\tlasterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLogicalDrives() (drivesBitMask uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0)\n\tdrivesBitMask = uint32(r0)\n\tif drivesBitMask == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetMaximumProcessorCount(groupNumber uint16) (ret uint32) {\n\tr0, _, _ := syscall.Syscall(procGetMaximumProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0)\n\tret = uint32(r0)\n\treturn\n}\n\nfunc GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) {\n\tvar _p0 uint32\n\tif wait {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetPriorityClass(process Handle) (ret uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0)\n\tret = uint32(r0)\n\tif ret == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcAddress(module Handle, procname string) (proc uintptr, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(procname)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetProcAddress(module, _p0)\n}\n\nfunc _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0)\n\tproc = uintptr(r0)\n\tif proc == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessId(process Handle) (id uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0)\n\tid = uint32(r0)\n\tif id == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) {\n\tsyscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0)\n\treturn\n}\n\nfunc GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getStartupInfo(startupInfo *StartupInfo) {\n\tsyscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0)\n\treturn\n}\n\nfunc GetStdHandle(stdhandle uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)\n\tlen = uint32(r0)\n\tif len == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetSystemTimeAsFileTime(time *Filetime) {\n\tsyscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0)\n\treturn\n}\n\nfunc GetSystemTimePreciseAsFileTime(time *Filetime) {\n\tsyscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0)\n\treturn\n}\n\nfunc getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)\n\tlen = uint32(r0)\n\tif len == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getTickCount64() (ms uint64) {\n\tr0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0)\n\tms = uint64(r0)\n\treturn\n}\n\nfunc GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0)\n\trc = uint32(r0)\n\tif rc == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVersion() (ver uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0)\n\tver = uint32(r0)\n\tif ver == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)\n\tlen = uint32(r0)\n\tif len == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procInitializeProcThreadAttributeList.Addr(), 4, uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc IsWow64Process(handle Handle, isWow64 *bool) (err error) {\n\tvar _p0 uint32\n\tif *isWow64 {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0)\n\t*isWow64 = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) {\n\terr = procIsWow64Process2.Find()\n\tif err != nil {\n\t\treturn\n\t}\n\tr1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(libname)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _LoadLibraryEx(_p0, zero, flags)\n}\n\nfunc _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LoadLibrary(libname string) (handle Handle, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(libname)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _LoadLibrary(_p0)\n}\n\nfunc _LoadLibrary(libname *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LoadResource(module Handle, resInfo Handle) (resData Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procLoadResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0)\n\tresData = Handle(r0)\n\tif resData == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(length), 0)\n\tptr = uintptr(r0)\n\tif ptr == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LocalFree(hmem Handle) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0)\n\thandle = Handle(r0)\n\tif handle != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LockResource(resData Handle) (addr uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall(procLockResource.Addr(), 1, uintptr(resData), 0, 0)\n\taddr = uintptr(r0)\n\tif addr == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0)\n\taddr = uintptr(r0)\n\tif addr == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procModule32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procModule32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MoveFile(from *uint16, to *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) {\n\tr0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar))\n\tnwrite = int32(r0)\n\tif nwrite == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PulseEvent(event Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PurgeComm(handle Handle, dwFlags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryFullProcessImageNameW.Addr(), 4, uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {\n\tvar _p0 uint32\n\tif watchSubTree {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procReadProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReleaseMutex(mutex Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RemoveDirectory(path *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RemoveDllDirectory(cookie uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procRemoveDllDirectory.Addr(), 1, uintptr(cookie), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ResetEvent(event Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc resizePseudoConsole(pconsole Handle, size uint32) (hr error) {\n\tr0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(pconsole), uintptr(size), 0)\n\tif r0 != 0 {\n\t\thr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc ResumeThread(thread Handle) (ret uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0)\n\tret = uint32(r0)\n\tif ret == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommBreak(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommMask(handle Handle, dwEvtMask uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommState(handle Handle, lpDCB *DCB) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setConsoleCursorPosition(console Handle, position uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetConsoleMode(console Handle, mode uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCurrentDirectory(path *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetDefaultDllDirectories(directoryFlags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetDllDirectory(path string) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _SetDllDirectory(_p0)\n}\n\nfunc _SetDllDirectory(path *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetEndOfFile(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetEnvironmentVariable(name *uint16, value *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetErrorMode(mode uint32) (ret uint32) {\n\tr0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0)\n\tret = uint32(r0)\n\treturn\n}\n\nfunc SetEvent(event Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileAttributes(name *uint16, attrs uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) {\n\tr0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0)\n\tnewlowoffset = uint32(r0)\n\tif newlowoffset == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileValidData(handle Handle, validDataLength int64) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) {\n\tr0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0)\n\tret = int(r0)\n\tif ret == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetNamedPipeHandleState.Addr(), 4, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetPriorityClass(process Handle, priorityClass uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetProcessPriorityBoost(process Handle, disable bool) (err error) {\n\tvar _p0 uint32\n\tif disable {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetProcessShutdownParameters(level uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetStdHandle(stdhandle uint32, handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SizeofResource(module Handle, resInfo Handle) (size uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0)\n\tsize = uint32(r0)\n\tif size == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SleepEx(milliseconds uint32, alertable bool) (ret uint32) {\n\tvar _p0 uint32\n\tif alertable {\n\t\t_p0 = 1\n\t}\n\tr0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0)\n\tret = uint32(r0)\n\treturn\n}\n\nfunc TerminateJobObject(job Handle, exitCode uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TerminateProcess(handle Handle, exitcode uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc UnmapViewOfFile(addr uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procUpdateProcThreadAttribute.Addr(), 7, uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0)\n\tvalue = uintptr(r0)\n\tif value == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualLock(addr uintptr, length uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procVirtualProtectEx.Addr(), 5, uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procVirtualQuery.Addr(), 3, uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procVirtualQueryEx.Addr(), 4, uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualUnlock(addr uintptr, length uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WTSGetActiveConsoleSessionId() (sessionID uint32) {\n\tr0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0)\n\tsessionID = uint32(r0)\n\treturn\n}\n\nfunc WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {\n\tvar _p0 uint32\n\tif waitAll {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0)\n\tevent = uint32(r0)\n\tif event == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0)\n\tevent = uint32(r0)\n\tif event == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procWriteProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) {\n\tsyscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0)\n\treturn\n}\n\nfunc TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc NetApiBufferFree(buf *byte) (neterr error) {\n\tr0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) {\n\tr0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType)))\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) {\n\tr0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0)\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) {\n\tr0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength), 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)), 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class), 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procNtSetInformationProcess.Addr(), 4, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall(procNtSetSystemInformation.Addr(), 3, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) {\n\tr0, _, _ := syscall.Syscall(procRtlAddFunctionTable.Addr(), 3, uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress))\n\tret = r0 != 0\n\treturn\n}\n\nfunc RtlDefaultNpAcl(acl **ACL) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(acl)), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) {\n\tr0, _, _ := syscall.Syscall(procRtlDeleteFunctionTable.Addr(), 1, uintptr(unsafe.Pointer(functionTable)), 0, 0)\n\tret = r0 != 0\n\treturn\n}\n\nfunc RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlGetCurrentPeb() (peb *PEB) {\n\tr0, _, _ := syscall.Syscall(procRtlGetCurrentPeb.Addr(), 0, 0, 0, 0)\n\tpeb = (*PEB)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) {\n\tsyscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber)))\n\treturn\n}\n\nfunc rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlInitString(destinationString *NTString, sourceString *byte) {\n\tsyscall.Syscall(procRtlInitString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0)\n\treturn\n}\n\nfunc RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) {\n\tsyscall.Syscall(procRtlInitUnicodeString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0)\n\treturn\n}\n\nfunc rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) {\n\tr0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(ntstatus), 0, 0)\n\tret = syscall.Errno(r0)\n\treturn\n}\n\nfunc clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) {\n\tr0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc coCreateGuid(pguid *GUID) (ret error) {\n\tr0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) {\n\tr0, _, _ := syscall.Syscall6(procCoGetObject.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CoInitializeEx(reserved uintptr, coInit uint32) (ret error) {\n\tr0, _, _ := syscall.Syscall(procCoInitializeEx.Addr(), 2, uintptr(reserved), uintptr(coInit), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CoTaskMemFree(address unsafe.Pointer) {\n\tsyscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0)\n\treturn\n}\n\nfunc CoUninitialize() {\n\tsyscall.Syscall(procCoUninitialize.Addr(), 0, 0, 0, 0)\n\treturn\n}\n\nfunc stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) {\n\tr0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax))\n\tchars = int32(r0)\n\treturn\n}\n\nfunc EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procEnumProcessModules.Addr(), 4, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procEnumProcessModulesEx.Addr(), 5, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetModuleBaseNameW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetModuleFileNameExW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetModuleInformation.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) {\n\tret = procSubscribeServiceChangeNotifications.Find()\n\tif ret != nil {\n\t\treturn\n\t}\n\tr0, _, _ := syscall.Syscall6(procSubscribeServiceChangeNotifications.Addr(), 5, uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) {\n\terr = procUnsubscribeServiceChangeNotifications.Find()\n\tif err != nil {\n\t\treturn\n\t}\n\tsyscall.Syscall(procUnsubscribeServiceChangeNotifications.Addr(), 1, uintptr(subscription), 0, 0)\n\treturn\n}\n\nfunc GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize)))\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0)\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiBuildDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiCallClassInstaller.Addr(), 3, uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiCancelDriverInfoSearch.Addr(), 1, uintptr(deviceInfoSet), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiClassGuidsFromNameExW.Addr(), 6, uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiClassNameFromGuidExW.Addr(), 6, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) {\n\tr0, _, e1 := syscall.Syscall6(procSetupDiCreateDeviceInfoListExW.Addr(), 4, uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0)\n\thandle = DevInfo(r0)\n\tif handle == DevInfo(InvalidHandle) {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procSetupDiCreateDeviceInfoW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiDestroyDeviceInfoList.Addr(), 1, uintptr(deviceInfoSet), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiDestroyDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiEnumDeviceInfo.Addr(), 3, uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiEnumDriverInfoW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) {\n\tr0, _, e1 := syscall.Syscall9(procSetupDiGetClassDevsExW.Addr(), 7, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0)\n\thandle = DevInfo(r0)\n\tif handle == DevInfo(InvalidHandle) {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiGetClassInstallParamsW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInfoListDetailW.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiGetDeviceInstanceIdW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procSetupDiGetDevicePropertyW.Addr(), 8, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procSetupDiGetDeviceRegistryPropertyW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiGetDriverInfoDetailW.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procSetupDiOpenDevRegKey.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired))\n\tkey = Handle(r0)\n\tif key == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiSetClassInstallParamsW.Addr(), 4, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiSetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiSetDeviceRegistryPropertyW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupUninstallOEMInfW.Addr(), 3, uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) {\n\tr0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0)\n\targv = (**uint16)(unsafe.Pointer(r0))\n\tif argv == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) {\n\tr0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd))\n\tif r1 <= 32 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) {\n\tsyscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param))\n\treturn\n}\n\nfunc EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) {\n\tr1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ExitWindowsEx(flags uint32, reason uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount))\n\tcopied = int32(r0)\n\tif copied == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetDesktopWindow() (hwnd HWND) {\n\tr0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0)\n\thwnd = HWND(r0)\n\treturn\n}\n\nfunc GetForegroundWindow() (hwnd HWND) {\n\tr0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0)\n\thwnd = HWND(r0)\n\treturn\n}\n\nfunc GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetKeyboardLayout(tid uint32) (hkl Handle) {\n\tr0, _, _ := syscall.Syscall(procGetKeyboardLayout.Addr(), 1, uintptr(tid), 0, 0)\n\thkl = Handle(r0)\n\treturn\n}\n\nfunc GetShellWindow() (shellWindow HWND) {\n\tr0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0)\n\tshellWindow = HWND(r0)\n\treturn\n}\n\nfunc GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0)\n\ttid = uint32(r0)\n\tif tid == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc IsWindow(hwnd HWND) (isWindow bool) {\n\tr0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0)\n\tisWindow = r0 != 0\n\treturn\n}\n\nfunc IsWindowUnicode(hwnd HWND) (isUnicode bool) {\n\tr0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0)\n\tisUnicode = r0 != 0\n\treturn\n}\n\nfunc IsWindowVisible(hwnd HWND) (isVisible bool) {\n\tr0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0)\n\tisVisible = r0 != 0\n\treturn\n}\n\nfunc LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procLoadKeyboardLayoutW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(flags), 0)\n\thkl = Handle(r0)\n\tif hkl == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) {\n\tr0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0)\n\tret = int32(r0)\n\tif ret == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) {\n\tr0, _, _ := syscall.Syscall9(procToUnicodeEx.Addr(), 7, uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl), 0, 0)\n\tret = int32(r0)\n\treturn\n}\n\nfunc UnloadKeyboardLayout(hkl Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procUnloadKeyboardLayout.Addr(), 1, uintptr(hkl), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) {\n\tvar _p0 uint32\n\tif inheritExisting {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DestroyEnvironmentBlock(block *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(filename)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetFileVersionInfoSize(_p0, zeroHandle)\n}\n\nfunc _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetFileVersionInfoSizeW.Addr(), 2, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)), 0)\n\tbufSize = uint32(r0)\n\tif bufSize == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(filename)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetFileVersionInfo(_p0, handle, bufSize, buffer)\n}\n\nfunc _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetFileVersionInfoW.Addr(), 4, uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(subBlock)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _VerQueryValue(block, _p0, pointerToBufferPointer, bufSize)\n}\n\nfunc _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procVerQueryValueW.Addr(), 4, uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TimeBeginPeriod(period uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(proctimeBeginPeriod.Addr(), 1, uintptr(period), 0, 0)\n\tif r1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TimeEndPeriod(period uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(proctimeEndPeriod.Addr(), 1, uintptr(period), 0, 0)\n\tif r1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) {\n\tr0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc FreeAddrInfoW(addrinfo *AddrinfoW) {\n\tsyscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0)\n\treturn\n}\n\nfunc GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) {\n\tr0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0)\n\tif r0 != 0 {\n\t\tsockerr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc WSACleanup() (err error) {\n\tr1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) {\n\tr0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength)))\n\tn = int32(r0)\n\tif n == -1 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) {\n\tvar _p0 uint32\n\tif wait {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSALookupServiceEnd(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)), 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAStartup(verreq uint32, data *WSAData) (sockerr error) {\n\tr0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0)\n\tif r0 != 0 {\n\t\tsockerr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc bind(s Handle, name unsafe.Pointer, namelen int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Closesocket(s Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc connect(s Handle, name unsafe.Pointer, namelen int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetHostByName(name string) (h *Hostent, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetHostByName(_p0)\n}\n\nfunc _GetHostByName(name *byte) (h *Hostent, err error) {\n\tr0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)\n\th = (*Hostent)(unsafe.Pointer(r0))\n\tif h == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProtoByName(name string) (p *Protoent, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetProtoByName(_p0)\n}\n\nfunc _GetProtoByName(name *byte) (p *Protoent, err error) {\n\tr0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)\n\tp = (*Protoent)(unsafe.Pointer(r0))\n\tif p == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetServByName(name string, proto string) (s *Servent, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = syscall.BytePtrFromString(proto)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetServByName(_p0, _p1)\n}\n\nfunc _GetServByName(name *byte, proto *byte) (s *Servent, err error) {\n\tr0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0)\n\ts = (*Servent)(unsafe.Pointer(r0))\n\tif s == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc listen(s Handle, backlog int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Ntohs(netshort uint16) (u uint16) {\n\tr0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0)\n\tu = uint16(r0)\n\treturn\n}\n\nfunc recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int32(r0)\n\tif n == -1 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc shutdown(s Handle, how int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc socket(af int32, typ int32, protocol int32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WTSFreeMemory(ptr uintptr) {\n\tsyscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0)\n\treturn\n}\n\nfunc WTSQueryUserToken(session uint32, token *Token) (err error) {\n\tr1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/CONTRIBUTING.md",
    "content": "# Contributing to Go\n\nGo is an open source project.\n\nIt is the work of hundreds of contributors. We appreciate your help!\n\n## Filing issues\n\nWhen [filing an issue](https://golang.org/issue/new), make sure to answer these five questions:\n\n1.  What version of Go are you using (`go version`)?\n2.  What operating system and processor architecture are you using?\n3.  What did you do?\n4.  What did you expect to see?\n5.  What did you see instead?\n\nGeneral questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker.\nThe gophers there will answer or ask you to file an issue if you've tripped over a bug.\n\n## Contributing code\n\nPlease read the [Contribution Guidelines](https://golang.org/doc/contribute.html)\nbefore sending patches.\n\nUnless otherwise noted, the Go source files are distributed under\nthe BSD-style license found in the LICENSE file.\n"
  },
  {
    "path": "vendor/golang.org/x/term/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/term/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/term/README.md",
    "content": "# Go terminal/console support\n\n[![Go Reference](https://pkg.go.dev/badge/golang.org/x/term.svg)](https://pkg.go.dev/golang.org/x/term)\n\nThis repository provides Go terminal and console support packages.\n\n## Download/Install\n\nThe easiest way to install is to run `go get -u golang.org/x/term`. You can\nalso manually git clone the repository to `$GOPATH/src/golang.org/x/term`.\n\n## Report Issues / Send Patches\n\nThis repository uses Gerrit for code changes. To learn how to submit changes to\nthis repository, see https://golang.org/doc/contribute.html.\n\nThe main issue tracker for the term repository is located at\nhttps://github.com/golang/go/issues. Prefix your issue with \"x/term:\" in the\nsubject line, so it is easy to find.\n"
  },
  {
    "path": "vendor/golang.org/x/term/codereview.cfg",
    "content": "issuerepo: golang/go\n"
  },
  {
    "path": "vendor/golang.org/x/term/term.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package term provides support functions for dealing with terminals, as\n// commonly found on UNIX systems.\n//\n// Putting a terminal into raw mode is the most common requirement:\n//\n//\toldState, err := term.MakeRaw(int(os.Stdin.Fd()))\n//\tif err != nil {\n//\t        panic(err)\n//\t}\n//\tdefer term.Restore(int(os.Stdin.Fd()), oldState)\n//\n// Note that on non-Unix systems os.Stdin.Fd() may not be 0.\npackage term\n\n// State contains the state of a terminal.\ntype State struct {\n\tstate\n}\n\n// IsTerminal returns whether the given file descriptor is a terminal.\nfunc IsTerminal(fd int) bool {\n\treturn isTerminal(fd)\n}\n\n// MakeRaw puts the terminal connected to the given file descriptor into raw\n// mode and returns the previous state of the terminal so that it can be\n// restored.\nfunc MakeRaw(fd int) (*State, error) {\n\treturn makeRaw(fd)\n}\n\n// GetState returns the current state of a terminal which may be useful to\n// restore the terminal after a signal.\nfunc GetState(fd int) (*State, error) {\n\treturn getState(fd)\n}\n\n// Restore restores the terminal connected to the given file descriptor to a\n// previous state.\nfunc Restore(fd int, oldState *State) error {\n\treturn restore(fd, oldState)\n}\n\n// GetSize returns the visible dimensions of the given terminal.\n//\n// These dimensions don't include any scrollback buffer height.\nfunc GetSize(fd int) (width, height int, err error) {\n\treturn getSize(fd)\n}\n\n// ReadPassword reads a line of input from a terminal without local echo.  This\n// is commonly used for inputting passwords and other sensitive data. The slice\n// returned does not include the \\n.\nfunc ReadPassword(fd int) ([]byte, error) {\n\treturn readPassword(fd)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_plan9.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage term\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n\n\t\"golang.org/x/sys/plan9\"\n)\n\ntype state struct{}\n\nfunc isTerminal(fd int) bool {\n\tpath, err := plan9.Fd2path(fd)\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn path == \"/dev/cons\" || path == \"/mnt/term/dev/cons\"\n}\n\nfunc makeRaw(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: MakeRaw not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getState(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: GetState not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc restore(fd int, state *State) error {\n\treturn fmt.Errorf(\"terminal: Restore not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\treturn 0, 0, fmt.Errorf(\"terminal: GetSize not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\treturn nil, fmt.Errorf(\"terminal: ReadPassword not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unix.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage term\n\nimport (\n\t\"golang.org/x/sys/unix\"\n)\n\ntype state struct {\n\ttermios unix.Termios\n}\n\nfunc isTerminal(fd int) bool {\n\t_, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\treturn err == nil\n}\n\nfunc makeRaw(fd int) (*State, error) {\n\ttermios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\toldState := State{state{termios: *termios}}\n\n\t// This attempts to replicate the behaviour documented for cfmakeraw in\n\t// the termios(3) manpage.\n\ttermios.Iflag &^= unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON\n\ttermios.Oflag &^= unix.OPOST\n\ttermios.Lflag &^= unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN\n\ttermios.Cflag &^= unix.CSIZE | unix.PARENB\n\ttermios.Cflag |= unix.CS8\n\ttermios.Cc[unix.VMIN] = 1\n\ttermios.Cc[unix.VTIME] = 0\n\tif err := unix.IoctlSetTermios(fd, ioctlWriteTermios, termios); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &oldState, nil\n}\n\nfunc getState(fd int) (*State, error) {\n\ttermios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &State{state{termios: *termios}}, nil\n}\n\nfunc restore(fd int, state *State) error {\n\treturn unix.IoctlSetTermios(fd, ioctlWriteTermios, &state.termios)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\tws, err := unix.IoctlGetWinsize(fd, unix.TIOCGWINSZ)\n\tif err != nil {\n\t\treturn 0, 0, err\n\t}\n\treturn int(ws.Col), int(ws.Row), nil\n}\n\n// passwordReader is an io.Reader that reads from a specific file descriptor.\ntype passwordReader int\n\nfunc (r passwordReader) Read(buf []byte) (int, error) {\n\treturn unix.Read(int(r), buf)\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\ttermios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnewState := *termios\n\tnewState.Lflag &^= unix.ECHO\n\tnewState.Lflag |= unix.ICANON | unix.ISIG\n\tnewState.Iflag |= unix.ICRNL\n\tif err := unix.IoctlSetTermios(fd, ioctlWriteTermios, &newState); err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer unix.IoctlSetTermios(fd, ioctlWriteTermios, termios)\n\n\treturn readPasswordLine(passwordReader(fd))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unix_bsd.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || dragonfly || freebsd || netbsd || openbsd\n\npackage term\n\nimport \"golang.org/x/sys/unix\"\n\nconst ioctlReadTermios = unix.TIOCGETA\nconst ioctlWriteTermios = unix.TIOCSETA\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unix_other.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || linux || solaris || zos\n\npackage term\n\nimport \"golang.org/x/sys/unix\"\n\nconst ioctlReadTermios = unix.TCGETS\nconst ioctlWriteTermios = unix.TCSETS\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unsupported.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !zos && !windows && !solaris && !plan9\n\npackage term\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n)\n\ntype state struct{}\n\nfunc isTerminal(fd int) bool {\n\treturn false\n}\n\nfunc makeRaw(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: MakeRaw not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getState(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: GetState not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc restore(fd int, state *State) error {\n\treturn fmt.Errorf(\"terminal: Restore not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\treturn 0, 0, fmt.Errorf(\"terminal: GetSize not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\treturn nil, fmt.Errorf(\"terminal: ReadPassword not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_windows.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage term\n\nimport (\n\t\"os\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\ntype state struct {\n\tmode uint32\n}\n\nfunc isTerminal(fd int) bool {\n\tvar st uint32\n\terr := windows.GetConsoleMode(windows.Handle(fd), &st)\n\treturn err == nil\n}\n\nfunc makeRaw(fd int) (*State, error) {\n\tvar st uint32\n\tif err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {\n\t\treturn nil, err\n\t}\n\traw := st &^ (windows.ENABLE_ECHO_INPUT | windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT)\n\tif err := windows.SetConsoleMode(windows.Handle(fd), raw); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &State{state{st}}, nil\n}\n\nfunc getState(fd int) (*State, error) {\n\tvar st uint32\n\tif err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &State{state{st}}, nil\n}\n\nfunc restore(fd int, state *State) error {\n\treturn windows.SetConsoleMode(windows.Handle(fd), state.mode)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\tvar info windows.ConsoleScreenBufferInfo\n\tif err := windows.GetConsoleScreenBufferInfo(windows.Handle(fd), &info); err != nil {\n\t\treturn 0, 0, err\n\t}\n\treturn int(info.Window.Right - info.Window.Left + 1), int(info.Window.Bottom - info.Window.Top + 1), nil\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\tvar st uint32\n\tif err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {\n\t\treturn nil, err\n\t}\n\told := st\n\n\tst &^= (windows.ENABLE_ECHO_INPUT | windows.ENABLE_LINE_INPUT)\n\tst |= (windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_PROCESSED_INPUT)\n\tif err := windows.SetConsoleMode(windows.Handle(fd), st); err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer windows.SetConsoleMode(windows.Handle(fd), old)\n\n\tvar h windows.Handle\n\tp, _ := windows.GetCurrentProcess()\n\tif err := windows.DuplicateHandle(p, windows.Handle(fd), p, &h, 0, false, windows.DUPLICATE_SAME_ACCESS); err != nil {\n\t\treturn nil, err\n\t}\n\n\tf := os.NewFile(uintptr(h), \"stdin\")\n\tdefer f.Close()\n\treturn readPasswordLine(f)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/terminal.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage term\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"sync\"\n\t\"unicode/utf8\"\n)\n\n// EscapeCodes contains escape sequences that can be written to the terminal in\n// order to achieve different styles of text.\ntype EscapeCodes struct {\n\t// Foreground colors\n\tBlack, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte\n\n\t// Reset all attributes\n\tReset []byte\n}\n\nvar vt100EscapeCodes = EscapeCodes{\n\tBlack:   []byte{keyEscape, '[', '3', '0', 'm'},\n\tRed:     []byte{keyEscape, '[', '3', '1', 'm'},\n\tGreen:   []byte{keyEscape, '[', '3', '2', 'm'},\n\tYellow:  []byte{keyEscape, '[', '3', '3', 'm'},\n\tBlue:    []byte{keyEscape, '[', '3', '4', 'm'},\n\tMagenta: []byte{keyEscape, '[', '3', '5', 'm'},\n\tCyan:    []byte{keyEscape, '[', '3', '6', 'm'},\n\tWhite:   []byte{keyEscape, '[', '3', '7', 'm'},\n\n\tReset: []byte{keyEscape, '[', '0', 'm'},\n}\n\n// Terminal contains the state for running a VT100 terminal that is capable of\n// reading lines of input.\ntype Terminal struct {\n\t// AutoCompleteCallback, if non-null, is called for each keypress with\n\t// the full input line and the current position of the cursor (in\n\t// bytes, as an index into |line|). If it returns ok=false, the key\n\t// press is processed normally. Otherwise it returns a replacement line\n\t// and the new cursor position.\n\tAutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool)\n\n\t// Escape contains a pointer to the escape codes for this terminal.\n\t// It's always a valid pointer, although the escape codes themselves\n\t// may be empty if the terminal doesn't support them.\n\tEscape *EscapeCodes\n\n\t// lock protects the terminal and the state in this object from\n\t// concurrent processing of a key press and a Write() call.\n\tlock sync.Mutex\n\n\tc      io.ReadWriter\n\tprompt []rune\n\n\t// line is the current line being entered.\n\tline []rune\n\t// pos is the logical position of the cursor in line\n\tpos int\n\t// echo is true if local echo is enabled\n\techo bool\n\t// pasteActive is true iff there is a bracketed paste operation in\n\t// progress.\n\tpasteActive bool\n\n\t// cursorX contains the current X value of the cursor where the left\n\t// edge is 0. cursorY contains the row number where the first row of\n\t// the current line is 0.\n\tcursorX, cursorY int\n\t// maxLine is the greatest value of cursorY so far.\n\tmaxLine int\n\n\ttermWidth, termHeight int\n\n\t// outBuf contains the terminal data to be sent.\n\toutBuf []byte\n\t// remainder contains the remainder of any partial key sequences after\n\t// a read. It aliases into inBuf.\n\tremainder []byte\n\tinBuf     [256]byte\n\n\t// history contains previously entered commands so that they can be\n\t// accessed with the up and down keys.\n\thistory stRingBuffer\n\t// historyIndex stores the currently accessed history entry, where zero\n\t// means the immediately previous entry.\n\thistoryIndex int\n\t// When navigating up and down the history it's possible to return to\n\t// the incomplete, initial line. That value is stored in\n\t// historyPending.\n\thistoryPending string\n}\n\n// NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is\n// a local terminal, that terminal must first have been put into raw mode.\n// prompt is a string that is written at the start of each input line (i.e.\n// \"> \").\nfunc NewTerminal(c io.ReadWriter, prompt string) *Terminal {\n\treturn &Terminal{\n\t\tEscape:       &vt100EscapeCodes,\n\t\tc:            c,\n\t\tprompt:       []rune(prompt),\n\t\ttermWidth:    80,\n\t\ttermHeight:   24,\n\t\techo:         true,\n\t\thistoryIndex: -1,\n\t}\n}\n\nconst (\n\tkeyCtrlC     = 3\n\tkeyCtrlD     = 4\n\tkeyCtrlU     = 21\n\tkeyEnter     = '\\r'\n\tkeyEscape    = 27\n\tkeyBackspace = 127\n\tkeyUnknown   = 0xd800 /* UTF-16 surrogate area */ + iota\n\tkeyUp\n\tkeyDown\n\tkeyLeft\n\tkeyRight\n\tkeyAltLeft\n\tkeyAltRight\n\tkeyHome\n\tkeyEnd\n\tkeyDeleteWord\n\tkeyDeleteLine\n\tkeyClearScreen\n\tkeyPasteStart\n\tkeyPasteEnd\n)\n\nvar (\n\tcrlf       = []byte{'\\r', '\\n'}\n\tpasteStart = []byte{keyEscape, '[', '2', '0', '0', '~'}\n\tpasteEnd   = []byte{keyEscape, '[', '2', '0', '1', '~'}\n)\n\n// bytesToKey tries to parse a key sequence from b. If successful, it returns\n// the key and the remainder of the input. Otherwise it returns utf8.RuneError.\nfunc bytesToKey(b []byte, pasteActive bool) (rune, []byte) {\n\tif len(b) == 0 {\n\t\treturn utf8.RuneError, nil\n\t}\n\n\tif !pasteActive {\n\t\tswitch b[0] {\n\t\tcase 1: // ^A\n\t\t\treturn keyHome, b[1:]\n\t\tcase 2: // ^B\n\t\t\treturn keyLeft, b[1:]\n\t\tcase 5: // ^E\n\t\t\treturn keyEnd, b[1:]\n\t\tcase 6: // ^F\n\t\t\treturn keyRight, b[1:]\n\t\tcase 8: // ^H\n\t\t\treturn keyBackspace, b[1:]\n\t\tcase 11: // ^K\n\t\t\treturn keyDeleteLine, b[1:]\n\t\tcase 12: // ^L\n\t\t\treturn keyClearScreen, b[1:]\n\t\tcase 23: // ^W\n\t\t\treturn keyDeleteWord, b[1:]\n\t\tcase 14: // ^N\n\t\t\treturn keyDown, b[1:]\n\t\tcase 16: // ^P\n\t\t\treturn keyUp, b[1:]\n\t\t}\n\t}\n\n\tif b[0] != keyEscape {\n\t\tif !utf8.FullRune(b) {\n\t\t\treturn utf8.RuneError, b\n\t\t}\n\t\tr, l := utf8.DecodeRune(b)\n\t\treturn r, b[l:]\n\t}\n\n\tif !pasteActive && len(b) >= 3 && b[0] == keyEscape && b[1] == '[' {\n\t\tswitch b[2] {\n\t\tcase 'A':\n\t\t\treturn keyUp, b[3:]\n\t\tcase 'B':\n\t\t\treturn keyDown, b[3:]\n\t\tcase 'C':\n\t\t\treturn keyRight, b[3:]\n\t\tcase 'D':\n\t\t\treturn keyLeft, b[3:]\n\t\tcase 'H':\n\t\t\treturn keyHome, b[3:]\n\t\tcase 'F':\n\t\t\treturn keyEnd, b[3:]\n\t\t}\n\t}\n\n\tif !pasteActive && len(b) >= 6 && b[0] == keyEscape && b[1] == '[' && b[2] == '1' && b[3] == ';' && b[4] == '3' {\n\t\tswitch b[5] {\n\t\tcase 'C':\n\t\t\treturn keyAltRight, b[6:]\n\t\tcase 'D':\n\t\t\treturn keyAltLeft, b[6:]\n\t\t}\n\t}\n\n\tif !pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteStart) {\n\t\treturn keyPasteStart, b[6:]\n\t}\n\n\tif pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteEnd) {\n\t\treturn keyPasteEnd, b[6:]\n\t}\n\n\t// If we get here then we have a key that we don't recognise, or a\n\t// partial sequence. It's not clear how one should find the end of a\n\t// sequence without knowing them all, but it seems that [a-zA-Z~] only\n\t// appears at the end of a sequence.\n\tfor i, c := range b[0:] {\n\t\tif c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '~' {\n\t\t\treturn keyUnknown, b[i+1:]\n\t\t}\n\t}\n\n\treturn utf8.RuneError, b\n}\n\n// queue appends data to the end of t.outBuf\nfunc (t *Terminal) queue(data []rune) {\n\tt.outBuf = append(t.outBuf, []byte(string(data))...)\n}\n\nvar space = []rune{' '}\n\nfunc isPrintable(key rune) bool {\n\tisInSurrogateArea := key >= 0xd800 && key <= 0xdbff\n\treturn key >= 32 && !isInSurrogateArea\n}\n\n// moveCursorToPos appends data to t.outBuf which will move the cursor to the\n// given, logical position in the text.\nfunc (t *Terminal) moveCursorToPos(pos int) {\n\tif !t.echo {\n\t\treturn\n\t}\n\n\tx := visualLength(t.prompt) + pos\n\ty := x / t.termWidth\n\tx = x % t.termWidth\n\n\tup := 0\n\tif y < t.cursorY {\n\t\tup = t.cursorY - y\n\t}\n\n\tdown := 0\n\tif y > t.cursorY {\n\t\tdown = y - t.cursorY\n\t}\n\n\tleft := 0\n\tif x < t.cursorX {\n\t\tleft = t.cursorX - x\n\t}\n\n\tright := 0\n\tif x > t.cursorX {\n\t\tright = x - t.cursorX\n\t}\n\n\tt.cursorX = x\n\tt.cursorY = y\n\tt.move(up, down, left, right)\n}\n\nfunc (t *Terminal) move(up, down, left, right int) {\n\tm := []rune{}\n\n\t// 1 unit up can be expressed as ^[[A or ^[A\n\t// 5 units up can be expressed as ^[[5A\n\n\tif up == 1 {\n\t\tm = append(m, keyEscape, '[', 'A')\n\t} else if up > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(up))...)\n\t\tm = append(m, 'A')\n\t}\n\n\tif down == 1 {\n\t\tm = append(m, keyEscape, '[', 'B')\n\t} else if down > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(down))...)\n\t\tm = append(m, 'B')\n\t}\n\n\tif right == 1 {\n\t\tm = append(m, keyEscape, '[', 'C')\n\t} else if right > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(right))...)\n\t\tm = append(m, 'C')\n\t}\n\n\tif left == 1 {\n\t\tm = append(m, keyEscape, '[', 'D')\n\t} else if left > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(left))...)\n\t\tm = append(m, 'D')\n\t}\n\n\tt.queue(m)\n}\n\nfunc (t *Terminal) clearLineToRight() {\n\top := []rune{keyEscape, '[', 'K'}\n\tt.queue(op)\n}\n\nconst maxLineLength = 4096\n\nfunc (t *Terminal) setLine(newLine []rune, newPos int) {\n\tif t.echo {\n\t\tt.moveCursorToPos(0)\n\t\tt.writeLine(newLine)\n\t\tfor i := len(newLine); i < len(t.line); i++ {\n\t\t\tt.writeLine(space)\n\t\t}\n\t\tt.moveCursorToPos(newPos)\n\t}\n\tt.line = newLine\n\tt.pos = newPos\n}\n\nfunc (t *Terminal) advanceCursor(places int) {\n\tt.cursorX += places\n\tt.cursorY += t.cursorX / t.termWidth\n\tif t.cursorY > t.maxLine {\n\t\tt.maxLine = t.cursorY\n\t}\n\tt.cursorX = t.cursorX % t.termWidth\n\n\tif places > 0 && t.cursorX == 0 {\n\t\t// Normally terminals will advance the current position\n\t\t// when writing a character. But that doesn't happen\n\t\t// for the last character in a line. However, when\n\t\t// writing a character (except a new line) that causes\n\t\t// a line wrap, the position will be advanced two\n\t\t// places.\n\t\t//\n\t\t// So, if we are stopping at the end of a line, we\n\t\t// need to write a newline so that our cursor can be\n\t\t// advanced to the next line.\n\t\tt.outBuf = append(t.outBuf, '\\r', '\\n')\n\t}\n}\n\nfunc (t *Terminal) eraseNPreviousChars(n int) {\n\tif n == 0 {\n\t\treturn\n\t}\n\n\tif t.pos < n {\n\t\tn = t.pos\n\t}\n\tt.pos -= n\n\tt.moveCursorToPos(t.pos)\n\n\tcopy(t.line[t.pos:], t.line[n+t.pos:])\n\tt.line = t.line[:len(t.line)-n]\n\tif t.echo {\n\t\tt.writeLine(t.line[t.pos:])\n\t\tfor i := 0; i < n; i++ {\n\t\t\tt.queue(space)\n\t\t}\n\t\tt.advanceCursor(n)\n\t\tt.moveCursorToPos(t.pos)\n\t}\n}\n\n// countToLeftWord returns then number of characters from the cursor to the\n// start of the previous word.\nfunc (t *Terminal) countToLeftWord() int {\n\tif t.pos == 0 {\n\t\treturn 0\n\t}\n\n\tpos := t.pos - 1\n\tfor pos > 0 {\n\t\tif t.line[pos] != ' ' {\n\t\t\tbreak\n\t\t}\n\t\tpos--\n\t}\n\tfor pos > 0 {\n\t\tif t.line[pos] == ' ' {\n\t\t\tpos++\n\t\t\tbreak\n\t\t}\n\t\tpos--\n\t}\n\n\treturn t.pos - pos\n}\n\n// countToRightWord returns then number of characters from the cursor to the\n// start of the next word.\nfunc (t *Terminal) countToRightWord() int {\n\tpos := t.pos\n\tfor pos < len(t.line) {\n\t\tif t.line[pos] == ' ' {\n\t\t\tbreak\n\t\t}\n\t\tpos++\n\t}\n\tfor pos < len(t.line) {\n\t\tif t.line[pos] != ' ' {\n\t\t\tbreak\n\t\t}\n\t\tpos++\n\t}\n\treturn pos - t.pos\n}\n\n// visualLength returns the number of visible glyphs in s.\nfunc visualLength(runes []rune) int {\n\tinEscapeSeq := false\n\tlength := 0\n\n\tfor _, r := range runes {\n\t\tswitch {\n\t\tcase inEscapeSeq:\n\t\t\tif (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') {\n\t\t\t\tinEscapeSeq = false\n\t\t\t}\n\t\tcase r == '\\x1b':\n\t\t\tinEscapeSeq = true\n\t\tdefault:\n\t\t\tlength++\n\t\t}\n\t}\n\n\treturn length\n}\n\n// handleKey processes the given key and, optionally, returns a line of text\n// that the user has entered.\nfunc (t *Terminal) handleKey(key rune) (line string, ok bool) {\n\tif t.pasteActive && key != keyEnter {\n\t\tt.addKeyToLine(key)\n\t\treturn\n\t}\n\n\tswitch key {\n\tcase keyBackspace:\n\t\tif t.pos == 0 {\n\t\t\treturn\n\t\t}\n\t\tt.eraseNPreviousChars(1)\n\tcase keyAltLeft:\n\t\t// move left by a word.\n\t\tt.pos -= t.countToLeftWord()\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyAltRight:\n\t\t// move right by a word.\n\t\tt.pos += t.countToRightWord()\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyLeft:\n\t\tif t.pos == 0 {\n\t\t\treturn\n\t\t}\n\t\tt.pos--\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyRight:\n\t\tif t.pos == len(t.line) {\n\t\t\treturn\n\t\t}\n\t\tt.pos++\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyHome:\n\t\tif t.pos == 0 {\n\t\t\treturn\n\t\t}\n\t\tt.pos = 0\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyEnd:\n\t\tif t.pos == len(t.line) {\n\t\t\treturn\n\t\t}\n\t\tt.pos = len(t.line)\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyUp:\n\t\tentry, ok := t.history.NthPreviousEntry(t.historyIndex + 1)\n\t\tif !ok {\n\t\t\treturn \"\", false\n\t\t}\n\t\tif t.historyIndex == -1 {\n\t\t\tt.historyPending = string(t.line)\n\t\t}\n\t\tt.historyIndex++\n\t\trunes := []rune(entry)\n\t\tt.setLine(runes, len(runes))\n\tcase keyDown:\n\t\tswitch t.historyIndex {\n\t\tcase -1:\n\t\t\treturn\n\t\tcase 0:\n\t\t\trunes := []rune(t.historyPending)\n\t\t\tt.setLine(runes, len(runes))\n\t\t\tt.historyIndex--\n\t\tdefault:\n\t\t\tentry, ok := t.history.NthPreviousEntry(t.historyIndex - 1)\n\t\t\tif ok {\n\t\t\t\tt.historyIndex--\n\t\t\t\trunes := []rune(entry)\n\t\t\t\tt.setLine(runes, len(runes))\n\t\t\t}\n\t\t}\n\tcase keyEnter:\n\t\tt.moveCursorToPos(len(t.line))\n\t\tt.queue([]rune(\"\\r\\n\"))\n\t\tline = string(t.line)\n\t\tok = true\n\t\tt.line = t.line[:0]\n\t\tt.pos = 0\n\t\tt.cursorX = 0\n\t\tt.cursorY = 0\n\t\tt.maxLine = 0\n\tcase keyDeleteWord:\n\t\t// Delete zero or more spaces and then one or more characters.\n\t\tt.eraseNPreviousChars(t.countToLeftWord())\n\tcase keyDeleteLine:\n\t\t// Delete everything from the current cursor position to the\n\t\t// end of line.\n\t\tfor i := t.pos; i < len(t.line); i++ {\n\t\t\tt.queue(space)\n\t\t\tt.advanceCursor(1)\n\t\t}\n\t\tt.line = t.line[:t.pos]\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyCtrlD:\n\t\t// Erase the character under the current position.\n\t\t// The EOF case when the line is empty is handled in\n\t\t// readLine().\n\t\tif t.pos < len(t.line) {\n\t\t\tt.pos++\n\t\t\tt.eraseNPreviousChars(1)\n\t\t}\n\tcase keyCtrlU:\n\t\tt.eraseNPreviousChars(t.pos)\n\tcase keyClearScreen:\n\t\t// Erases the screen and moves the cursor to the home position.\n\t\tt.queue([]rune(\"\\x1b[2J\\x1b[H\"))\n\t\tt.queue(t.prompt)\n\t\tt.cursorX, t.cursorY = 0, 0\n\t\tt.advanceCursor(visualLength(t.prompt))\n\t\tt.setLine(t.line, t.pos)\n\tdefault:\n\t\tif t.AutoCompleteCallback != nil {\n\t\t\tprefix := string(t.line[:t.pos])\n\t\t\tsuffix := string(t.line[t.pos:])\n\n\t\t\tt.lock.Unlock()\n\t\t\tnewLine, newPos, completeOk := t.AutoCompleteCallback(prefix+suffix, len(prefix), key)\n\t\t\tt.lock.Lock()\n\n\t\t\tif completeOk {\n\t\t\t\tt.setLine([]rune(newLine), utf8.RuneCount([]byte(newLine)[:newPos]))\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tif !isPrintable(key) {\n\t\t\treturn\n\t\t}\n\t\tif len(t.line) == maxLineLength {\n\t\t\treturn\n\t\t}\n\t\tt.addKeyToLine(key)\n\t}\n\treturn\n}\n\n// addKeyToLine inserts the given key at the current position in the current\n// line.\nfunc (t *Terminal) addKeyToLine(key rune) {\n\tif len(t.line) == cap(t.line) {\n\t\tnewLine := make([]rune, len(t.line), 2*(1+len(t.line)))\n\t\tcopy(newLine, t.line)\n\t\tt.line = newLine\n\t}\n\tt.line = t.line[:len(t.line)+1]\n\tcopy(t.line[t.pos+1:], t.line[t.pos:])\n\tt.line[t.pos] = key\n\tif t.echo {\n\t\tt.writeLine(t.line[t.pos:])\n\t}\n\tt.pos++\n\tt.moveCursorToPos(t.pos)\n}\n\nfunc (t *Terminal) writeLine(line []rune) {\n\tfor len(line) != 0 {\n\t\tremainingOnLine := t.termWidth - t.cursorX\n\t\ttodo := len(line)\n\t\tif todo > remainingOnLine {\n\t\t\ttodo = remainingOnLine\n\t\t}\n\t\tt.queue(line[:todo])\n\t\tt.advanceCursor(visualLength(line[:todo]))\n\t\tline = line[todo:]\n\t}\n}\n\n// writeWithCRLF writes buf to w but replaces all occurrences of \\n with \\r\\n.\nfunc writeWithCRLF(w io.Writer, buf []byte) (n int, err error) {\n\tfor len(buf) > 0 {\n\t\ti := bytes.IndexByte(buf, '\\n')\n\t\ttodo := len(buf)\n\t\tif i >= 0 {\n\t\t\ttodo = i\n\t\t}\n\n\t\tvar nn int\n\t\tnn, err = w.Write(buf[:todo])\n\t\tn += nn\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tbuf = buf[todo:]\n\n\t\tif i >= 0 {\n\t\t\tif _, err = w.Write(crlf); err != nil {\n\t\t\t\treturn n, err\n\t\t\t}\n\t\t\tn++\n\t\t\tbuf = buf[1:]\n\t\t}\n\t}\n\n\treturn n, nil\n}\n\nfunc (t *Terminal) Write(buf []byte) (n int, err error) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tif t.cursorX == 0 && t.cursorY == 0 {\n\t\t// This is the easy case: there's nothing on the screen that we\n\t\t// have to move out of the way.\n\t\treturn writeWithCRLF(t.c, buf)\n\t}\n\n\t// We have a prompt and possibly user input on the screen. We\n\t// have to clear it first.\n\tt.move(0 /* up */, 0 /* down */, t.cursorX /* left */, 0 /* right */)\n\tt.cursorX = 0\n\tt.clearLineToRight()\n\n\tfor t.cursorY > 0 {\n\t\tt.move(1 /* up */, 0, 0, 0)\n\t\tt.cursorY--\n\t\tt.clearLineToRight()\n\t}\n\n\tif _, err = t.c.Write(t.outBuf); err != nil {\n\t\treturn\n\t}\n\tt.outBuf = t.outBuf[:0]\n\n\tif n, err = writeWithCRLF(t.c, buf); err != nil {\n\t\treturn\n\t}\n\n\tt.writeLine(t.prompt)\n\tif t.echo {\n\t\tt.writeLine(t.line)\n\t}\n\n\tt.moveCursorToPos(t.pos)\n\n\tif _, err = t.c.Write(t.outBuf); err != nil {\n\t\treturn\n\t}\n\tt.outBuf = t.outBuf[:0]\n\treturn\n}\n\n// ReadPassword temporarily changes the prompt and reads a password, without\n// echo, from the terminal.\nfunc (t *Terminal) ReadPassword(prompt string) (line string, err error) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\toldPrompt := t.prompt\n\tt.prompt = []rune(prompt)\n\tt.echo = false\n\n\tline, err = t.readLine()\n\n\tt.prompt = oldPrompt\n\tt.echo = true\n\n\treturn\n}\n\n// ReadLine returns a line of input from the terminal.\nfunc (t *Terminal) ReadLine() (line string, err error) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\treturn t.readLine()\n}\n\nfunc (t *Terminal) readLine() (line string, err error) {\n\t// t.lock must be held at this point\n\n\tif t.cursorX == 0 && t.cursorY == 0 {\n\t\tt.writeLine(t.prompt)\n\t\tt.c.Write(t.outBuf)\n\t\tt.outBuf = t.outBuf[:0]\n\t}\n\n\tlineIsPasted := t.pasteActive\n\n\tfor {\n\t\trest := t.remainder\n\t\tlineOk := false\n\t\tfor !lineOk {\n\t\t\tvar key rune\n\t\t\tkey, rest = bytesToKey(rest, t.pasteActive)\n\t\t\tif key == utf8.RuneError {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif !t.pasteActive {\n\t\t\t\tif key == keyCtrlD {\n\t\t\t\t\tif len(t.line) == 0 {\n\t\t\t\t\t\treturn \"\", io.EOF\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif key == keyCtrlC {\n\t\t\t\t\treturn \"\", io.EOF\n\t\t\t\t}\n\t\t\t\tif key == keyPasteStart {\n\t\t\t\t\tt.pasteActive = true\n\t\t\t\t\tif len(t.line) == 0 {\n\t\t\t\t\t\tlineIsPasted = true\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else if key == keyPasteEnd {\n\t\t\t\tt.pasteActive = false\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !t.pasteActive {\n\t\t\t\tlineIsPasted = false\n\t\t\t}\n\t\t\tline, lineOk = t.handleKey(key)\n\t\t}\n\t\tif len(rest) > 0 {\n\t\t\tn := copy(t.inBuf[:], rest)\n\t\t\tt.remainder = t.inBuf[:n]\n\t\t} else {\n\t\t\tt.remainder = nil\n\t\t}\n\t\tt.c.Write(t.outBuf)\n\t\tt.outBuf = t.outBuf[:0]\n\t\tif lineOk {\n\t\t\tif t.echo {\n\t\t\t\tt.historyIndex = -1\n\t\t\t\tt.history.Add(line)\n\t\t\t}\n\t\t\tif lineIsPasted {\n\t\t\t\terr = ErrPasteIndicator\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// t.remainder is a slice at the beginning of t.inBuf\n\t\t// containing a partial key sequence\n\t\treadBuf := t.inBuf[len(t.remainder):]\n\t\tvar n int\n\n\t\tt.lock.Unlock()\n\t\tn, err = t.c.Read(readBuf)\n\t\tt.lock.Lock()\n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\n\t\tt.remainder = t.inBuf[:n+len(t.remainder)]\n\t}\n}\n\n// SetPrompt sets the prompt to be used when reading subsequent lines.\nfunc (t *Terminal) SetPrompt(prompt string) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tt.prompt = []rune(prompt)\n}\n\nfunc (t *Terminal) clearAndRepaintLinePlusNPrevious(numPrevLines int) {\n\t// Move cursor to column zero at the start of the line.\n\tt.move(t.cursorY, 0, t.cursorX, 0)\n\tt.cursorX, t.cursorY = 0, 0\n\tt.clearLineToRight()\n\tfor t.cursorY < numPrevLines {\n\t\t// Move down a line\n\t\tt.move(0, 1, 0, 0)\n\t\tt.cursorY++\n\t\tt.clearLineToRight()\n\t}\n\t// Move back to beginning.\n\tt.move(t.cursorY, 0, 0, 0)\n\tt.cursorX, t.cursorY = 0, 0\n\n\tt.queue(t.prompt)\n\tt.advanceCursor(visualLength(t.prompt))\n\tt.writeLine(t.line)\n\tt.moveCursorToPos(t.pos)\n}\n\nfunc (t *Terminal) SetSize(width, height int) error {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tif width == 0 {\n\t\twidth = 1\n\t}\n\n\toldWidth := t.termWidth\n\tt.termWidth, t.termHeight = width, height\n\n\tswitch {\n\tcase width == oldWidth:\n\t\t// If the width didn't change then nothing else needs to be\n\t\t// done.\n\t\treturn nil\n\tcase len(t.line) == 0 && t.cursorX == 0 && t.cursorY == 0:\n\t\t// If there is nothing on current line and no prompt printed,\n\t\t// just do nothing\n\t\treturn nil\n\tcase width < oldWidth:\n\t\t// Some terminals (e.g. xterm) will truncate lines that were\n\t\t// too long when shinking. Others, (e.g. gnome-terminal) will\n\t\t// attempt to wrap them. For the former, repainting t.maxLine\n\t\t// works great, but that behaviour goes badly wrong in the case\n\t\t// of the latter because they have doubled every full line.\n\n\t\t// We assume that we are working on a terminal that wraps lines\n\t\t// and adjust the cursor position based on every previous line\n\t\t// wrapping and turning into two. This causes the prompt on\n\t\t// xterms to move upwards, which isn't great, but it avoids a\n\t\t// huge mess with gnome-terminal.\n\t\tif t.cursorX >= t.termWidth {\n\t\t\tt.cursorX = t.termWidth - 1\n\t\t}\n\t\tt.cursorY *= 2\n\t\tt.clearAndRepaintLinePlusNPrevious(t.maxLine * 2)\n\tcase width > oldWidth:\n\t\t// If the terminal expands then our position calculations will\n\t\t// be wrong in the future because we think the cursor is\n\t\t// |t.pos| chars into the string, but there will be a gap at\n\t\t// the end of any wrapped line.\n\t\t//\n\t\t// But the position will actually be correct until we move, so\n\t\t// we can move back to the beginning and repaint everything.\n\t\tt.clearAndRepaintLinePlusNPrevious(t.maxLine)\n\t}\n\n\t_, err := t.c.Write(t.outBuf)\n\tt.outBuf = t.outBuf[:0]\n\treturn err\n}\n\ntype pasteIndicatorError struct{}\n\nfunc (pasteIndicatorError) Error() string {\n\treturn \"terminal: ErrPasteIndicator not correctly handled\"\n}\n\n// ErrPasteIndicator may be returned from ReadLine as the error, in addition\n// to valid line data. It indicates that bracketed paste mode is enabled and\n// that the returned line consists only of pasted data. Programs may wish to\n// interpret pasted data more literally than typed data.\nvar ErrPasteIndicator = pasteIndicatorError{}\n\n// SetBracketedPasteMode requests that the terminal bracket paste operations\n// with markers. Not all terminals support this but, if it is supported, then\n// enabling this mode will stop any autocomplete callback from running due to\n// pastes. Additionally, any lines that are completely pasted will be returned\n// from ReadLine with the error set to ErrPasteIndicator.\nfunc (t *Terminal) SetBracketedPasteMode(on bool) {\n\tif on {\n\t\tio.WriteString(t.c, \"\\x1b[?2004h\")\n\t} else {\n\t\tio.WriteString(t.c, \"\\x1b[?2004l\")\n\t}\n}\n\n// stRingBuffer is a ring buffer of strings.\ntype stRingBuffer struct {\n\t// entries contains max elements.\n\tentries []string\n\tmax     int\n\t// head contains the index of the element most recently added to the ring.\n\thead int\n\t// size contains the number of elements in the ring.\n\tsize int\n}\n\nfunc (s *stRingBuffer) Add(a string) {\n\tif s.entries == nil {\n\t\tconst defaultNumEntries = 100\n\t\ts.entries = make([]string, defaultNumEntries)\n\t\ts.max = defaultNumEntries\n\t}\n\n\ts.head = (s.head + 1) % s.max\n\ts.entries[s.head] = a\n\tif s.size < s.max {\n\t\ts.size++\n\t}\n}\n\n// NthPreviousEntry returns the value passed to the nth previous call to Add.\n// If n is zero then the immediately prior value is returned, if one, then the\n// next most recent, and so on. If such an element doesn't exist then ok is\n// false.\nfunc (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) {\n\tif n < 0 || n >= s.size {\n\t\treturn \"\", false\n\t}\n\tindex := s.head - n\n\tif index < 0 {\n\t\tindex += s.max\n\t}\n\treturn s.entries[index], true\n}\n\n// readPasswordLine reads from reader until it finds \\n or io.EOF.\n// The slice returned does not include the \\n.\n// readPasswordLine also ignores any \\r it finds.\n// Windows uses \\r as end of line. So, on Windows, readPasswordLine\n// reads until it finds \\r and ignores any \\n it finds during processing.\nfunc readPasswordLine(reader io.Reader) ([]byte, error) {\n\tvar buf [1]byte\n\tvar ret []byte\n\n\tfor {\n\t\tn, err := reader.Read(buf[:])\n\t\tif n > 0 {\n\t\t\tswitch buf[0] {\n\t\t\tcase '\\b':\n\t\t\t\tif len(ret) > 0 {\n\t\t\t\t\tret = ret[:len(ret)-1]\n\t\t\t\t}\n\t\t\tcase '\\n':\n\t\t\t\tif runtime.GOOS != \"windows\" {\n\t\t\t\t\treturn ret, nil\n\t\t\t\t}\n\t\t\t\t// otherwise ignore \\n\n\t\t\tcase '\\r':\n\t\t\t\tif runtime.GOOS == \"windows\" {\n\t\t\t\t\treturn ret, nil\n\t\t\t\t}\n\t\t\t\t// otherwise ignore \\r\n\t\t\tdefault:\n\t\t\t\tret = append(ret, buf[0])\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\tif err == io.EOF && len(ret) > 0 {\n\t\t\t\treturn ret, nil\n\t\t\t}\n\t\t\treturn ret, err\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/text/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/text/encoding/encoding.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package encoding defines an interface for character encodings, such as Shift\n// JIS and Windows 1252, that can convert to and from UTF-8.\n//\n// Encoding implementations are provided in other packages, such as\n// golang.org/x/text/encoding/charmap and\n// golang.org/x/text/encoding/japanese.\npackage encoding // import \"golang.org/x/text/encoding\"\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"strconv\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/encoding/internal/identifier\"\n\t\"golang.org/x/text/transform\"\n)\n\n// TODO:\n// - There seems to be some inconsistency in when decoders return errors\n//   and when not. Also documentation seems to suggest they shouldn't return\n//   errors at all (except for UTF-16).\n// - Encoders seem to rely on or at least benefit from the input being in NFC\n//   normal form. Perhaps add an example how users could prepare their output.\n\n// Encoding is a character set encoding that can be transformed to and from\n// UTF-8.\ntype Encoding interface {\n\t// NewDecoder returns a Decoder.\n\tNewDecoder() *Decoder\n\n\t// NewEncoder returns an Encoder.\n\tNewEncoder() *Encoder\n}\n\n// A Decoder converts bytes to UTF-8. It implements transform.Transformer.\n//\n// Transforming source bytes that are not of that encoding will not result in an\n// error per se. Each byte that cannot be transcoded will be represented in the\n// output by the UTF-8 encoding of '\\uFFFD', the replacement rune.\ntype Decoder struct {\n\ttransform.Transformer\n\n\t// This forces external creators of Decoders to use names in struct\n\t// initializers, allowing for future extendibility without having to break\n\t// code.\n\t_ struct{}\n}\n\n// Bytes converts the given encoded bytes to UTF-8. It returns the converted\n// bytes or nil, err if any error occurred.\nfunc (d *Decoder) Bytes(b []byte) ([]byte, error) {\n\tb, _, err := transform.Bytes(d, b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b, nil\n}\n\n// String converts the given encoded string to UTF-8. It returns the converted\n// string or \"\", err if any error occurred.\nfunc (d *Decoder) String(s string) (string, error) {\n\ts, _, err := transform.String(d, s)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn s, nil\n}\n\n// Reader wraps another Reader to decode its bytes.\n//\n// The Decoder may not be used for any other operation as long as the returned\n// Reader is in use.\nfunc (d *Decoder) Reader(r io.Reader) io.Reader {\n\treturn transform.NewReader(r, d)\n}\n\n// An Encoder converts bytes from UTF-8. It implements transform.Transformer.\n//\n// Each rune that cannot be transcoded will result in an error. In this case,\n// the transform will consume all source byte up to, not including the offending\n// rune. Transforming source bytes that are not valid UTF-8 will be replaced by\n// `\\uFFFD`. To return early with an error instead, use transform.Chain to\n// preprocess the data with a UTF8Validator.\ntype Encoder struct {\n\ttransform.Transformer\n\n\t// This forces external creators of Encoders to use names in struct\n\t// initializers, allowing for future extendibility without having to break\n\t// code.\n\t_ struct{}\n}\n\n// Bytes converts bytes from UTF-8. It returns the converted bytes or nil, err if\n// any error occurred.\nfunc (e *Encoder) Bytes(b []byte) ([]byte, error) {\n\tb, _, err := transform.Bytes(e, b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b, nil\n}\n\n// String converts a string from UTF-8. It returns the converted string or\n// \"\", err if any error occurred.\nfunc (e *Encoder) String(s string) (string, error) {\n\ts, _, err := transform.String(e, s)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn s, nil\n}\n\n// Writer wraps another Writer to encode its UTF-8 output.\n//\n// The Encoder may not be used for any other operation as long as the returned\n// Writer is in use.\nfunc (e *Encoder) Writer(w io.Writer) io.Writer {\n\treturn transform.NewWriter(w, e)\n}\n\n// ASCIISub is the ASCII substitute character, as recommended by\n// https://unicode.org/reports/tr36/#Text_Comparison\nconst ASCIISub = '\\x1a'\n\n// Nop is the nop encoding. Its transformed bytes are the same as the source\n// bytes; it does not replace invalid UTF-8 sequences.\nvar Nop Encoding = nop{}\n\ntype nop struct{}\n\nfunc (nop) NewDecoder() *Decoder {\n\treturn &Decoder{Transformer: transform.Nop}\n}\nfunc (nop) NewEncoder() *Encoder {\n\treturn &Encoder{Transformer: transform.Nop}\n}\n\n// Replacement is the replacement encoding. Decoding from the replacement\n// encoding yields a single '\\uFFFD' replacement rune. Encoding from UTF-8 to\n// the replacement encoding yields the same as the source bytes except that\n// invalid UTF-8 is converted to '\\uFFFD'.\n//\n// It is defined at http://encoding.spec.whatwg.org/#replacement\nvar Replacement Encoding = replacement{}\n\ntype replacement struct{}\n\nfunc (replacement) NewDecoder() *Decoder {\n\treturn &Decoder{Transformer: replacementDecoder{}}\n}\n\nfunc (replacement) NewEncoder() *Encoder {\n\treturn &Encoder{Transformer: replacementEncoder{}}\n}\n\nfunc (replacement) ID() (mib identifier.MIB, other string) {\n\treturn identifier.Replacement, \"\"\n}\n\ntype replacementDecoder struct{ transform.NopResetter }\n\nfunc (replacementDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tif len(dst) < 3 {\n\t\treturn 0, 0, transform.ErrShortDst\n\t}\n\tif atEOF {\n\t\tconst fffd = \"\\ufffd\"\n\t\tdst[0] = fffd[0]\n\t\tdst[1] = fffd[1]\n\t\tdst[2] = fffd[2]\n\t\tnDst = 3\n\t}\n\treturn nDst, len(src), nil\n}\n\ntype replacementEncoder struct{ transform.NopResetter }\n\nfunc (replacementEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tr, size := rune(0), 0\n\n\tfor ; nSrc < len(src); nSrc += size {\n\t\tr = rune(src[nSrc])\n\n\t\t// Decode a 1-byte rune.\n\t\tif r < utf8.RuneSelf {\n\t\t\tsize = 1\n\n\t\t} else {\n\t\t\t// Decode a multi-byte rune.\n\t\t\tr, size = utf8.DecodeRune(src[nSrc:])\n\t\t\tif size == 1 {\n\t\t\t\t// All valid runes of size 1 (those below utf8.RuneSelf) were\n\t\t\t\t// handled above. We have invalid UTF-8 or we haven't seen the\n\t\t\t\t// full character yet.\n\t\t\t\tif !atEOF && !utf8.FullRune(src[nSrc:]) {\n\t\t\t\t\terr = transform.ErrShortSrc\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tr = '\\ufffd'\n\t\t\t}\n\t\t}\n\n\t\tif nDst+utf8.RuneLen(r) > len(dst) {\n\t\t\terr = transform.ErrShortDst\n\t\t\tbreak\n\t\t}\n\t\tnDst += utf8.EncodeRune(dst[nDst:], r)\n\t}\n\treturn nDst, nSrc, err\n}\n\n// HTMLEscapeUnsupported wraps encoders to replace source runes outside the\n// repertoire of the destination encoding with HTML escape sequences.\n//\n// This wrapper exists to comply to URL and HTML forms requiring a\n// non-terminating legacy encoder. The produced sequences may lead to data\n// loss as they are indistinguishable from legitimate input. To avoid this\n// issue, use UTF-8 encodings whenever possible.\nfunc HTMLEscapeUnsupported(e *Encoder) *Encoder {\n\treturn &Encoder{Transformer: &errorHandler{e, errorToHTML}}\n}\n\n// ReplaceUnsupported wraps encoders to replace source runes outside the\n// repertoire of the destination encoding with an encoding-specific\n// replacement.\n//\n// This wrapper is only provided for backwards compatibility and legacy\n// handling. Its use is strongly discouraged. Use UTF-8 whenever possible.\nfunc ReplaceUnsupported(e *Encoder) *Encoder {\n\treturn &Encoder{Transformer: &errorHandler{e, errorToReplacement}}\n}\n\ntype errorHandler struct {\n\t*Encoder\n\thandler func(dst []byte, r rune, err repertoireError) (n int, ok bool)\n}\n\n// TODO: consider making this error public in some form.\ntype repertoireError interface {\n\tReplacement() byte\n}\n\nfunc (h errorHandler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tnDst, nSrc, err = h.Transformer.Transform(dst, src, atEOF)\n\tfor err != nil {\n\t\trerr, ok := err.(repertoireError)\n\t\tif !ok {\n\t\t\treturn nDst, nSrc, err\n\t\t}\n\t\tr, sz := utf8.DecodeRune(src[nSrc:])\n\t\tn, ok := h.handler(dst[nDst:], r, rerr)\n\t\tif !ok {\n\t\t\treturn nDst, nSrc, transform.ErrShortDst\n\t\t}\n\t\terr = nil\n\t\tnDst += n\n\t\tif nSrc += sz; nSrc < len(src) {\n\t\t\tvar dn, sn int\n\t\t\tdn, sn, err = h.Transformer.Transform(dst[nDst:], src[nSrc:], atEOF)\n\t\t\tnDst += dn\n\t\t\tnSrc += sn\n\t\t}\n\t}\n\treturn nDst, nSrc, err\n}\n\nfunc errorToHTML(dst []byte, r rune, err repertoireError) (n int, ok bool) {\n\tbuf := [8]byte{}\n\tb := strconv.AppendUint(buf[:0], uint64(r), 10)\n\tif n = len(b) + len(\"&#;\"); n >= len(dst) {\n\t\treturn 0, false\n\t}\n\tdst[0] = '&'\n\tdst[1] = '#'\n\tdst[copy(dst[2:], b)+2] = ';'\n\treturn n, true\n}\n\nfunc errorToReplacement(dst []byte, r rune, err repertoireError) (n int, ok bool) {\n\tif len(dst) == 0 {\n\t\treturn 0, false\n\t}\n\tdst[0] = err.Replacement()\n\treturn 1, true\n}\n\n// ErrInvalidUTF8 means that a transformer encountered invalid UTF-8.\nvar ErrInvalidUTF8 = errors.New(\"encoding: invalid UTF-8\")\n\n// UTF8Validator is a transformer that returns ErrInvalidUTF8 on the first\n// input byte that is not valid UTF-8.\nvar UTF8Validator transform.Transformer = utf8Validator{}\n\ntype utf8Validator struct{ transform.NopResetter }\n\nfunc (utf8Validator) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tn := len(src)\n\tif n > len(dst) {\n\t\tn = len(dst)\n\t}\n\tfor i := 0; i < n; {\n\t\tif c := src[i]; c < utf8.RuneSelf {\n\t\t\tdst[i] = c\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\t_, size := utf8.DecodeRune(src[i:])\n\t\tif size == 1 {\n\t\t\t// All valid runes of size 1 (those below utf8.RuneSelf) were\n\t\t\t// handled above. We have invalid UTF-8 or we haven't seen the\n\t\t\t// full character yet.\n\t\t\terr = ErrInvalidUTF8\n\t\t\tif !atEOF && !utf8.FullRune(src[i:]) {\n\t\t\t\terr = transform.ErrShortSrc\n\t\t\t}\n\t\t\treturn i, i, err\n\t\t}\n\t\tif i+size > len(dst) {\n\t\t\treturn i, i, transform.ErrShortDst\n\t\t}\n\t\tfor ; size > 0; size-- {\n\t\t\tdst[i] = src[i]\n\t\t\ti++\n\t\t}\n\t}\n\tif len(src) > len(dst) {\n\t\terr = transform.ErrShortDst\n\t}\n\treturn n, n, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/encoding/internal/identifier/identifier.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:generate go run gen.go\n\n// Package identifier defines the contract between implementations of Encoding\n// and Index by defining identifiers that uniquely identify standardized coded\n// character sets (CCS) and character encoding schemes (CES), which we will\n// together refer to as encodings, for which Encoding implementations provide\n// converters to and from UTF-8. This package is typically only of concern to\n// implementers of Indexes and Encodings.\n//\n// One part of the identifier is the MIB code, which is defined by IANA and\n// uniquely identifies a CCS or CES. Each code is associated with data that\n// references authorities, official documentation as well as aliases and MIME\n// names.\n//\n// Not all CESs are covered by the IANA registry. The \"other\" string that is\n// returned by ID can be used to identify other character sets or versions of\n// existing ones.\n//\n// It is recommended that each package that provides a set of Encodings provide\n// the All and Common variables to reference all supported encodings and\n// commonly used subset. This allows Index implementations to include all\n// available encodings without explicitly referencing or knowing about them.\npackage identifier\n\n// Note: this package is internal, but could be made public if there is a need\n// for writing third-party Indexes and Encodings.\n\n// References:\n// - http://source.icu-project.org/repos/icu/icu/trunk/source/data/mappings/convrtrs.txt\n// - http://www.iana.org/assignments/character-sets/character-sets.xhtml\n// - http://www.iana.org/assignments/ianacharset-mib/ianacharset-mib\n// - http://www.ietf.org/rfc/rfc2978.txt\n// - https://www.unicode.org/reports/tr22/\n// - http://www.w3.org/TR/encoding/\n// - https://encoding.spec.whatwg.org/\n// - https://encoding.spec.whatwg.org/encodings.json\n// - https://tools.ietf.org/html/rfc6657#section-5\n\n// Interface can be implemented by Encodings to define the CCS or CES for which\n// it implements conversions.\ntype Interface interface {\n\t// ID returns an encoding identifier. Exactly one of the mib and other\n\t// values should be non-zero.\n\t//\n\t// In the usual case it is only necessary to indicate the MIB code. The\n\t// other string can be used to specify encodings for which there is no MIB,\n\t// such as \"x-mac-dingbat\".\n\t//\n\t// The other string may only contain the characters a-z, A-Z, 0-9, - and _.\n\tID() (mib MIB, other string)\n\n\t// NOTE: the restrictions on the encoding are to allow extending the syntax\n\t// with additional information such as versions, vendors and other variants.\n}\n\n// A MIB identifies an encoding. It is derived from the IANA MIB codes and adds\n// some identifiers for some encodings that are not covered by the IANA\n// standard.\n//\n// See http://www.iana.org/assignments/ianacharset-mib.\ntype MIB uint16\n\n// These additional MIB types are not defined in IANA. They are added because\n// they are common and defined within the text repo.\nconst (\n\t// Unofficial marks the start of encodings not registered by IANA.\n\tUnofficial MIB = 10000 + iota\n\n\t// Replacement is the WhatWG replacement encoding.\n\tReplacement\n\n\t// XUserDefined is the code for x-user-defined.\n\tXUserDefined\n\n\t// MacintoshCyrillic is the code for x-mac-cyrillic.\n\tMacintoshCyrillic\n)\n"
  },
  {
    "path": "vendor/golang.org/x/text/encoding/internal/identifier/mib.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage identifier\n\nconst (\n\t// ASCII is the MIB identifier with IANA name US-ASCII (MIME: US-ASCII).\n\t//\n\t// ANSI X3.4-1986\n\t// Reference: RFC2046\n\tASCII MIB = 3\n\n\t// ISOLatin1 is the MIB identifier with IANA name ISO_8859-1:1987 (MIME: ISO-8859-1).\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISOLatin1 MIB = 4\n\n\t// ISOLatin2 is the MIB identifier with IANA name ISO_8859-2:1987 (MIME: ISO-8859-2).\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISOLatin2 MIB = 5\n\n\t// ISOLatin3 is the MIB identifier with IANA name ISO_8859-3:1988 (MIME: ISO-8859-3).\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISOLatin3 MIB = 6\n\n\t// ISOLatin4 is the MIB identifier with IANA name ISO_8859-4:1988 (MIME: ISO-8859-4).\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISOLatin4 MIB = 7\n\n\t// ISOLatinCyrillic is the MIB identifier with IANA name ISO_8859-5:1988 (MIME: ISO-8859-5).\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISOLatinCyrillic MIB = 8\n\n\t// ISOLatinArabic is the MIB identifier with IANA name ISO_8859-6:1987 (MIME: ISO-8859-6).\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISOLatinArabic MIB = 9\n\n\t// ISOLatinGreek is the MIB identifier with IANA name ISO_8859-7:1987 (MIME: ISO-8859-7).\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1947\n\t// Reference: RFC1345\n\tISOLatinGreek MIB = 10\n\n\t// ISOLatinHebrew is the MIB identifier with IANA name ISO_8859-8:1988 (MIME: ISO-8859-8).\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISOLatinHebrew MIB = 11\n\n\t// ISOLatin5 is the MIB identifier with IANA name ISO_8859-9:1989 (MIME: ISO-8859-9).\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISOLatin5 MIB = 12\n\n\t// ISOLatin6 is the MIB identifier with IANA name ISO-8859-10 (MIME: ISO-8859-10).\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISOLatin6 MIB = 13\n\n\t// ISOTextComm is the MIB identifier with IANA name ISO_6937-2-add.\n\t//\n\t// ISO-IR: International Register of Escape Sequences and ISO 6937-2:1983\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISOTextComm MIB = 14\n\n\t// HalfWidthKatakana is the MIB identifier with IANA name JIS_X0201.\n\t//\n\t// JIS X 0201-1976.   One byte only, this is equivalent to\n\t// JIS/Roman (similar to ASCII) plus eight-bit half-width\n\t// Katakana\n\t// Reference: RFC1345\n\tHalfWidthKatakana MIB = 15\n\n\t// JISEncoding is the MIB identifier with IANA name JIS_Encoding.\n\t//\n\t// JIS X 0202-1991.  Uses ISO 2022 escape sequences to\n\t// shift code sets as documented in JIS X 0202-1991.\n\tJISEncoding MIB = 16\n\n\t// ShiftJIS is the MIB identifier with IANA name Shift_JIS (MIME: Shift_JIS).\n\t//\n\t// This charset is an extension of csHalfWidthKatakana by\n\t// adding graphic characters in JIS X 0208.  The CCS's are\n\t// JIS X0201:1997 and JIS X0208:1997.  The\n\t// complete definition is shown in Appendix 1 of JIS\n\t// X0208:1997.\n\t// This charset can be used for the top-level media type \"text\".\n\tShiftJIS MIB = 17\n\n\t// EUCPkdFmtJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Packed_Format_for_Japanese (MIME: EUC-JP).\n\t//\n\t// Standardized by OSF, UNIX International, and UNIX Systems\n\t// Laboratories Pacific.  Uses ISO 2022 rules to select\n\t// code set 0: US-ASCII (a single 7-bit byte set)\n\t// code set 1: JIS X0208-1990 (a double 8-bit byte set)\n\t// restricted to A0-FF in both bytes\n\t// code set 2: Half Width Katakana (a single 7-bit byte set)\n\t// requiring SS2 as the character prefix\n\t// code set 3: JIS X0212-1990 (a double 7-bit byte set)\n\t// restricted to A0-FF in both bytes\n\t// requiring SS3 as the character prefix\n\tEUCPkdFmtJapanese MIB = 18\n\n\t// EUCFixWidJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Fixed_Width_for_Japanese.\n\t//\n\t// Used in Japan.  Each character is 2 octets.\n\t// code set 0: US-ASCII (a single 7-bit byte set)\n\t// 1st byte = 00\n\t// 2nd byte = 20-7E\n\t// code set 1: JIS X0208-1990 (a double 7-bit byte set)\n\t// restricted  to A0-FF in both bytes\n\t// code set 2: Half Width Katakana (a single 7-bit byte set)\n\t// 1st byte = 00\n\t// 2nd byte = A0-FF\n\t// code set 3: JIS X0212-1990 (a double 7-bit byte set)\n\t// restricted to A0-FF in\n\t// the first byte\n\t// and 21-7E in the second byte\n\tEUCFixWidJapanese MIB = 19\n\n\t// ISO4UnitedKingdom is the MIB identifier with IANA name BS_4730.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO4UnitedKingdom MIB = 20\n\n\t// ISO11SwedishForNames is the MIB identifier with IANA name SEN_850200_C.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO11SwedishForNames MIB = 21\n\n\t// ISO15Italian is the MIB identifier with IANA name IT.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO15Italian MIB = 22\n\n\t// ISO17Spanish is the MIB identifier with IANA name ES.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO17Spanish MIB = 23\n\n\t// ISO21German is the MIB identifier with IANA name DIN_66003.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO21German MIB = 24\n\n\t// ISO60Norwegian1 is the MIB identifier with IANA name NS_4551-1.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO60Norwegian1 MIB = 25\n\n\t// ISO69French is the MIB identifier with IANA name NF_Z_62-010.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO69French MIB = 26\n\n\t// ISO10646UTF1 is the MIB identifier with IANA name ISO-10646-UTF-1.\n\t//\n\t// Universal Transfer Format (1), this is the multibyte\n\t// encoding, that subsets ASCII-7. It does not have byte\n\t// ordering issues.\n\tISO10646UTF1 MIB = 27\n\n\t// ISO646basic1983 is the MIB identifier with IANA name ISO_646.basic:1983.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO646basic1983 MIB = 28\n\n\t// INVARIANT is the MIB identifier with IANA name INVARIANT.\n\t//\n\t// Reference: RFC1345\n\tINVARIANT MIB = 29\n\n\t// ISO2IntlRefVersion is the MIB identifier with IANA name ISO_646.irv:1983.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO2IntlRefVersion MIB = 30\n\n\t// NATSSEFI is the MIB identifier with IANA name NATS-SEFI.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tNATSSEFI MIB = 31\n\n\t// NATSSEFIADD is the MIB identifier with IANA name NATS-SEFI-ADD.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tNATSSEFIADD MIB = 32\n\n\t// NATSDANO is the MIB identifier with IANA name NATS-DANO.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tNATSDANO MIB = 33\n\n\t// NATSDANOADD is the MIB identifier with IANA name NATS-DANO-ADD.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tNATSDANOADD MIB = 34\n\n\t// ISO10Swedish is the MIB identifier with IANA name SEN_850200_B.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO10Swedish MIB = 35\n\n\t// KSC56011987 is the MIB identifier with IANA name KS_C_5601-1987.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tKSC56011987 MIB = 36\n\n\t// ISO2022KR is the MIB identifier with IANA name ISO-2022-KR (MIME: ISO-2022-KR).\n\t//\n\t// rfc1557 (see also KS_C_5601-1987)\n\t// Reference: RFC1557\n\tISO2022KR MIB = 37\n\n\t// EUCKR is the MIB identifier with IANA name EUC-KR (MIME: EUC-KR).\n\t//\n\t// rfc1557 (see also KS_C_5861-1992)\n\t// Reference: RFC1557\n\tEUCKR MIB = 38\n\n\t// ISO2022JP is the MIB identifier with IANA name ISO-2022-JP (MIME: ISO-2022-JP).\n\t//\n\t// rfc1468 (see also rfc2237 )\n\t// Reference: RFC1468\n\tISO2022JP MIB = 39\n\n\t// ISO2022JP2 is the MIB identifier with IANA name ISO-2022-JP-2 (MIME: ISO-2022-JP-2).\n\t//\n\t// rfc1554\n\t// Reference: RFC1554\n\tISO2022JP2 MIB = 40\n\n\t// ISO13JISC6220jp is the MIB identifier with IANA name JIS_C6220-1969-jp.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO13JISC6220jp MIB = 41\n\n\t// ISO14JISC6220ro is the MIB identifier with IANA name JIS_C6220-1969-ro.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO14JISC6220ro MIB = 42\n\n\t// ISO16Portuguese is the MIB identifier with IANA name PT.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO16Portuguese MIB = 43\n\n\t// ISO18Greek7Old is the MIB identifier with IANA name greek7-old.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO18Greek7Old MIB = 44\n\n\t// ISO19LatinGreek is the MIB identifier with IANA name latin-greek.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO19LatinGreek MIB = 45\n\n\t// ISO25French is the MIB identifier with IANA name NF_Z_62-010_(1973).\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO25French MIB = 46\n\n\t// ISO27LatinGreek1 is the MIB identifier with IANA name Latin-greek-1.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO27LatinGreek1 MIB = 47\n\n\t// ISO5427Cyrillic is the MIB identifier with IANA name ISO_5427.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO5427Cyrillic MIB = 48\n\n\t// ISO42JISC62261978 is the MIB identifier with IANA name JIS_C6226-1978.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO42JISC62261978 MIB = 49\n\n\t// ISO47BSViewdata is the MIB identifier with IANA name BS_viewdata.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO47BSViewdata MIB = 50\n\n\t// ISO49INIS is the MIB identifier with IANA name INIS.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO49INIS MIB = 51\n\n\t// ISO50INIS8 is the MIB identifier with IANA name INIS-8.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO50INIS8 MIB = 52\n\n\t// ISO51INISCyrillic is the MIB identifier with IANA name INIS-cyrillic.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO51INISCyrillic MIB = 53\n\n\t// ISO54271981 is the MIB identifier with IANA name ISO_5427:1981.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO54271981 MIB = 54\n\n\t// ISO5428Greek is the MIB identifier with IANA name ISO_5428:1980.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO5428Greek MIB = 55\n\n\t// ISO57GB1988 is the MIB identifier with IANA name GB_1988-80.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO57GB1988 MIB = 56\n\n\t// ISO58GB231280 is the MIB identifier with IANA name GB_2312-80.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO58GB231280 MIB = 57\n\n\t// ISO61Norwegian2 is the MIB identifier with IANA name NS_4551-2.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO61Norwegian2 MIB = 58\n\n\t// ISO70VideotexSupp1 is the MIB identifier with IANA name videotex-suppl.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO70VideotexSupp1 MIB = 59\n\n\t// ISO84Portuguese2 is the MIB identifier with IANA name PT2.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO84Portuguese2 MIB = 60\n\n\t// ISO85Spanish2 is the MIB identifier with IANA name ES2.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO85Spanish2 MIB = 61\n\n\t// ISO86Hungarian is the MIB identifier with IANA name MSZ_7795.3.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO86Hungarian MIB = 62\n\n\t// ISO87JISX0208 is the MIB identifier with IANA name JIS_C6226-1983.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO87JISX0208 MIB = 63\n\n\t// ISO88Greek7 is the MIB identifier with IANA name greek7.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO88Greek7 MIB = 64\n\n\t// ISO89ASMO449 is the MIB identifier with IANA name ASMO_449.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO89ASMO449 MIB = 65\n\n\t// ISO90 is the MIB identifier with IANA name iso-ir-90.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO90 MIB = 66\n\n\t// ISO91JISC62291984a is the MIB identifier with IANA name JIS_C6229-1984-a.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO91JISC62291984a MIB = 67\n\n\t// ISO92JISC62991984b is the MIB identifier with IANA name JIS_C6229-1984-b.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO92JISC62991984b MIB = 68\n\n\t// ISO93JIS62291984badd is the MIB identifier with IANA name JIS_C6229-1984-b-add.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO93JIS62291984badd MIB = 69\n\n\t// ISO94JIS62291984hand is the MIB identifier with IANA name JIS_C6229-1984-hand.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO94JIS62291984hand MIB = 70\n\n\t// ISO95JIS62291984handadd is the MIB identifier with IANA name JIS_C6229-1984-hand-add.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO95JIS62291984handadd MIB = 71\n\n\t// ISO96JISC62291984kana is the MIB identifier with IANA name JIS_C6229-1984-kana.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO96JISC62291984kana MIB = 72\n\n\t// ISO2033 is the MIB identifier with IANA name ISO_2033-1983.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO2033 MIB = 73\n\n\t// ISO99NAPLPS is the MIB identifier with IANA name ANSI_X3.110-1983.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO99NAPLPS MIB = 74\n\n\t// ISO102T617bit is the MIB identifier with IANA name T.61-7bit.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO102T617bit MIB = 75\n\n\t// ISO103T618bit is the MIB identifier with IANA name T.61-8bit.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO103T618bit MIB = 76\n\n\t// ISO111ECMACyrillic is the MIB identifier with IANA name ECMA-cyrillic.\n\t//\n\t// ISO registry\n\tISO111ECMACyrillic MIB = 77\n\n\t// ISO121Canadian1 is the MIB identifier with IANA name CSA_Z243.4-1985-1.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO121Canadian1 MIB = 78\n\n\t// ISO122Canadian2 is the MIB identifier with IANA name CSA_Z243.4-1985-2.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO122Canadian2 MIB = 79\n\n\t// ISO123CSAZ24341985gr is the MIB identifier with IANA name CSA_Z243.4-1985-gr.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO123CSAZ24341985gr MIB = 80\n\n\t// ISO88596E is the MIB identifier with IANA name ISO_8859-6-E (MIME: ISO-8859-6-E).\n\t//\n\t// rfc1556\n\t// Reference: RFC1556\n\tISO88596E MIB = 81\n\n\t// ISO88596I is the MIB identifier with IANA name ISO_8859-6-I (MIME: ISO-8859-6-I).\n\t//\n\t// rfc1556\n\t// Reference: RFC1556\n\tISO88596I MIB = 82\n\n\t// ISO128T101G2 is the MIB identifier with IANA name T.101-G2.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO128T101G2 MIB = 83\n\n\t// ISO88598E is the MIB identifier with IANA name ISO_8859-8-E (MIME: ISO-8859-8-E).\n\t//\n\t// rfc1556\n\t// Reference: RFC1556\n\tISO88598E MIB = 84\n\n\t// ISO88598I is the MIB identifier with IANA name ISO_8859-8-I (MIME: ISO-8859-8-I).\n\t//\n\t// rfc1556\n\t// Reference: RFC1556\n\tISO88598I MIB = 85\n\n\t// ISO139CSN369103 is the MIB identifier with IANA name CSN_369103.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO139CSN369103 MIB = 86\n\n\t// ISO141JUSIB1002 is the MIB identifier with IANA name JUS_I.B1.002.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO141JUSIB1002 MIB = 87\n\n\t// ISO143IECP271 is the MIB identifier with IANA name IEC_P27-1.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO143IECP271 MIB = 88\n\n\t// ISO146Serbian is the MIB identifier with IANA name JUS_I.B1.003-serb.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO146Serbian MIB = 89\n\n\t// ISO147Macedonian is the MIB identifier with IANA name JUS_I.B1.003-mac.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO147Macedonian MIB = 90\n\n\t// ISO150GreekCCITT is the MIB identifier with IANA name greek-ccitt.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO150GreekCCITT MIB = 91\n\n\t// ISO151Cuba is the MIB identifier with IANA name NC_NC00-10:81.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO151Cuba MIB = 92\n\n\t// ISO6937Add is the MIB identifier with IANA name ISO_6937-2-25.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO6937Add MIB = 93\n\n\t// ISO153GOST1976874 is the MIB identifier with IANA name GOST_19768-74.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO153GOST1976874 MIB = 94\n\n\t// ISO8859Supp is the MIB identifier with IANA name ISO_8859-supp.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO8859Supp MIB = 95\n\n\t// ISO10367Box is the MIB identifier with IANA name ISO_10367-box.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO10367Box MIB = 96\n\n\t// ISO158Lap is the MIB identifier with IANA name latin-lap.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO158Lap MIB = 97\n\n\t// ISO159JISX02121990 is the MIB identifier with IANA name JIS_X0212-1990.\n\t//\n\t// ISO-IR: International Register of Escape Sequences\n\t// Note: The current registration authority is IPSJ/ITSCJ, Japan.\n\t// Reference: RFC1345\n\tISO159JISX02121990 MIB = 98\n\n\t// ISO646Danish is the MIB identifier with IANA name DS_2089.\n\t//\n\t// Danish Standard, DS 2089, February 1974\n\t// Reference: RFC1345\n\tISO646Danish MIB = 99\n\n\t// USDK is the MIB identifier with IANA name us-dk.\n\t//\n\t// Reference: RFC1345\n\tUSDK MIB = 100\n\n\t// DKUS is the MIB identifier with IANA name dk-us.\n\t//\n\t// Reference: RFC1345\n\tDKUS MIB = 101\n\n\t// KSC5636 is the MIB identifier with IANA name KSC5636.\n\t//\n\t// Reference: RFC1345\n\tKSC5636 MIB = 102\n\n\t// Unicode11UTF7 is the MIB identifier with IANA name UNICODE-1-1-UTF-7.\n\t//\n\t// rfc1642\n\t// Reference: RFC1642\n\tUnicode11UTF7 MIB = 103\n\n\t// ISO2022CN is the MIB identifier with IANA name ISO-2022-CN.\n\t//\n\t// rfc1922\n\t// Reference: RFC1922\n\tISO2022CN MIB = 104\n\n\t// ISO2022CNEXT is the MIB identifier with IANA name ISO-2022-CN-EXT.\n\t//\n\t// rfc1922\n\t// Reference: RFC1922\n\tISO2022CNEXT MIB = 105\n\n\t// UTF8 is the MIB identifier with IANA name UTF-8.\n\t//\n\t// rfc3629\n\t// Reference: RFC3629\n\tUTF8 MIB = 106\n\n\t// ISO885913 is the MIB identifier with IANA name ISO-8859-13.\n\t//\n\t// ISO See https://www.iana.org/assignments/charset-reg/ISO-8859-13 https://www.iana.org/assignments/charset-reg/ISO-8859-13\n\tISO885913 MIB = 109\n\n\t// ISO885914 is the MIB identifier with IANA name ISO-8859-14.\n\t//\n\t// ISO See https://www.iana.org/assignments/charset-reg/ISO-8859-14\n\tISO885914 MIB = 110\n\n\t// ISO885915 is the MIB identifier with IANA name ISO-8859-15.\n\t//\n\t// ISO\n\t// Please see: https://www.iana.org/assignments/charset-reg/ISO-8859-15\n\tISO885915 MIB = 111\n\n\t// ISO885916 is the MIB identifier with IANA name ISO-8859-16.\n\t//\n\t// ISO\n\tISO885916 MIB = 112\n\n\t// GBK is the MIB identifier with IANA name GBK.\n\t//\n\t// Chinese IT Standardization Technical Committee\n\t// Please see: https://www.iana.org/assignments/charset-reg/GBK\n\tGBK MIB = 113\n\n\t// GB18030 is the MIB identifier with IANA name GB18030.\n\t//\n\t// Chinese IT Standardization Technical Committee\n\t// Please see: https://www.iana.org/assignments/charset-reg/GB18030\n\tGB18030 MIB = 114\n\n\t// OSDEBCDICDF0415 is the MIB identifier with IANA name OSD_EBCDIC_DF04_15.\n\t//\n\t// Fujitsu-Siemens standard mainframe EBCDIC encoding\n\t// Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15\n\tOSDEBCDICDF0415 MIB = 115\n\n\t// OSDEBCDICDF03IRV is the MIB identifier with IANA name OSD_EBCDIC_DF03_IRV.\n\t//\n\t// Fujitsu-Siemens standard mainframe EBCDIC encoding\n\t// Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV\n\tOSDEBCDICDF03IRV MIB = 116\n\n\t// OSDEBCDICDF041 is the MIB identifier with IANA name OSD_EBCDIC_DF04_1.\n\t//\n\t// Fujitsu-Siemens standard mainframe EBCDIC encoding\n\t// Please see: https://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1\n\tOSDEBCDICDF041 MIB = 117\n\n\t// ISO115481 is the MIB identifier with IANA name ISO-11548-1.\n\t//\n\t// See https://www.iana.org/assignments/charset-reg/ISO-11548-1\n\tISO115481 MIB = 118\n\n\t// KZ1048 is the MIB identifier with IANA name KZ-1048.\n\t//\n\t// See https://www.iana.org/assignments/charset-reg/KZ-1048\n\tKZ1048 MIB = 119\n\n\t// Unicode is the MIB identifier with IANA name ISO-10646-UCS-2.\n\t//\n\t// the 2-octet Basic Multilingual Plane, aka Unicode\n\t// this needs to specify network byte order: the standard\n\t// does not specify (it is a 16-bit integer space)\n\tUnicode MIB = 1000\n\n\t// UCS4 is the MIB identifier with IANA name ISO-10646-UCS-4.\n\t//\n\t// the full code space. (same comment about byte order,\n\t// these are 31-bit numbers.\n\tUCS4 MIB = 1001\n\n\t// UnicodeASCII is the MIB identifier with IANA name ISO-10646-UCS-Basic.\n\t//\n\t// ASCII subset of Unicode.  Basic Latin = collection 1\n\t// See ISO 10646, Appendix A\n\tUnicodeASCII MIB = 1002\n\n\t// UnicodeLatin1 is the MIB identifier with IANA name ISO-10646-Unicode-Latin1.\n\t//\n\t// ISO Latin-1 subset of Unicode. Basic Latin and Latin-1\n\t// Supplement  = collections 1 and 2.  See ISO 10646,\n\t// Appendix A.  See rfc1815 .\n\tUnicodeLatin1 MIB = 1003\n\n\t// UnicodeJapanese is the MIB identifier with IANA name ISO-10646-J-1.\n\t//\n\t// ISO 10646 Japanese, see rfc1815 .\n\tUnicodeJapanese MIB = 1004\n\n\t// UnicodeIBM1261 is the MIB identifier with IANA name ISO-Unicode-IBM-1261.\n\t//\n\t// IBM Latin-2, -3, -5, Extended Presentation Set, GCSGID: 1261\n\tUnicodeIBM1261 MIB = 1005\n\n\t// UnicodeIBM1268 is the MIB identifier with IANA name ISO-Unicode-IBM-1268.\n\t//\n\t// IBM Latin-4 Extended Presentation Set, GCSGID: 1268\n\tUnicodeIBM1268 MIB = 1006\n\n\t// UnicodeIBM1276 is the MIB identifier with IANA name ISO-Unicode-IBM-1276.\n\t//\n\t// IBM Cyrillic Greek Extended Presentation Set, GCSGID: 1276\n\tUnicodeIBM1276 MIB = 1007\n\n\t// UnicodeIBM1264 is the MIB identifier with IANA name ISO-Unicode-IBM-1264.\n\t//\n\t// IBM Arabic Presentation Set, GCSGID: 1264\n\tUnicodeIBM1264 MIB = 1008\n\n\t// UnicodeIBM1265 is the MIB identifier with IANA name ISO-Unicode-IBM-1265.\n\t//\n\t// IBM Hebrew Presentation Set, GCSGID: 1265\n\tUnicodeIBM1265 MIB = 1009\n\n\t// Unicode11 is the MIB identifier with IANA name UNICODE-1-1.\n\t//\n\t// rfc1641\n\t// Reference: RFC1641\n\tUnicode11 MIB = 1010\n\n\t// SCSU is the MIB identifier with IANA name SCSU.\n\t//\n\t// SCSU See https://www.iana.org/assignments/charset-reg/SCSU\n\tSCSU MIB = 1011\n\n\t// UTF7 is the MIB identifier with IANA name UTF-7.\n\t//\n\t// rfc2152\n\t// Reference: RFC2152\n\tUTF7 MIB = 1012\n\n\t// UTF16BE is the MIB identifier with IANA name UTF-16BE.\n\t//\n\t// rfc2781\n\t// Reference: RFC2781\n\tUTF16BE MIB = 1013\n\n\t// UTF16LE is the MIB identifier with IANA name UTF-16LE.\n\t//\n\t// rfc2781\n\t// Reference: RFC2781\n\tUTF16LE MIB = 1014\n\n\t// UTF16 is the MIB identifier with IANA name UTF-16.\n\t//\n\t// rfc2781\n\t// Reference: RFC2781\n\tUTF16 MIB = 1015\n\n\t// CESU8 is the MIB identifier with IANA name CESU-8.\n\t//\n\t// https://www.unicode.org/reports/tr26\n\tCESU8 MIB = 1016\n\n\t// UTF32 is the MIB identifier with IANA name UTF-32.\n\t//\n\t// https://www.unicode.org/reports/tr19/\n\tUTF32 MIB = 1017\n\n\t// UTF32BE is the MIB identifier with IANA name UTF-32BE.\n\t//\n\t// https://www.unicode.org/reports/tr19/\n\tUTF32BE MIB = 1018\n\n\t// UTF32LE is the MIB identifier with IANA name UTF-32LE.\n\t//\n\t// https://www.unicode.org/reports/tr19/\n\tUTF32LE MIB = 1019\n\n\t// BOCU1 is the MIB identifier with IANA name BOCU-1.\n\t//\n\t// https://www.unicode.org/notes/tn6/\n\tBOCU1 MIB = 1020\n\n\t// UTF7IMAP is the MIB identifier with IANA name UTF-7-IMAP.\n\t//\n\t// Note: This charset is used to encode Unicode in IMAP mailbox names;\n\t// see section 5.1.3 of rfc3501 . It should never be used\n\t// outside this context. A name has been assigned so that charset processing\n\t// implementations can refer to it in a consistent way.\n\tUTF7IMAP MIB = 1021\n\n\t// Windows30Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.0-Latin-1.\n\t//\n\t// Extended ISO 8859-1 Latin-1 for Windows 3.0.\n\t// PCL Symbol Set id: 9U\n\tWindows30Latin1 MIB = 2000\n\n\t// Windows31Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.1-Latin-1.\n\t//\n\t// Extended ISO 8859-1 Latin-1 for Windows 3.1.\n\t// PCL Symbol Set id: 19U\n\tWindows31Latin1 MIB = 2001\n\n\t// Windows31Latin2 is the MIB identifier with IANA name ISO-8859-2-Windows-Latin-2.\n\t//\n\t// Extended ISO 8859-2.  Latin-2 for Windows 3.1.\n\t// PCL Symbol Set id: 9E\n\tWindows31Latin2 MIB = 2002\n\n\t// Windows31Latin5 is the MIB identifier with IANA name ISO-8859-9-Windows-Latin-5.\n\t//\n\t// Extended ISO 8859-9.  Latin-5 for Windows 3.1\n\t// PCL Symbol Set id: 5T\n\tWindows31Latin5 MIB = 2003\n\n\t// HPRoman8 is the MIB identifier with IANA name hp-roman8.\n\t//\n\t// LaserJet IIP Printer User's Manual,\n\t// HP part no 33471-90901, Hewlet-Packard, June 1989.\n\t// Reference: RFC1345\n\tHPRoman8 MIB = 2004\n\n\t// AdobeStandardEncoding is the MIB identifier with IANA name Adobe-Standard-Encoding.\n\t//\n\t// PostScript Language Reference Manual\n\t// PCL Symbol Set id: 10J\n\tAdobeStandardEncoding MIB = 2005\n\n\t// VenturaUS is the MIB identifier with IANA name Ventura-US.\n\t//\n\t// Ventura US.  ASCII plus characters typically used in\n\t// publishing, like pilcrow, copyright, registered, trade mark,\n\t// section, dagger, and double dagger in the range A0 (hex)\n\t// to FF (hex).\n\t// PCL Symbol Set id: 14J\n\tVenturaUS MIB = 2006\n\n\t// VenturaInternational is the MIB identifier with IANA name Ventura-International.\n\t//\n\t// Ventura International.  ASCII plus coded characters similar\n\t// to Roman8.\n\t// PCL Symbol Set id: 13J\n\tVenturaInternational MIB = 2007\n\n\t// DECMCS is the MIB identifier with IANA name DEC-MCS.\n\t//\n\t// VAX/VMS User's Manual,\n\t// Order Number: AI-Y517A-TE, April 1986.\n\t// Reference: RFC1345\n\tDECMCS MIB = 2008\n\n\t// PC850Multilingual is the MIB identifier with IANA name IBM850.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tPC850Multilingual MIB = 2009\n\n\t// PC8DanishNorwegian is the MIB identifier with IANA name PC8-Danish-Norwegian.\n\t//\n\t// PC Danish Norwegian\n\t// 8-bit PC set for Danish Norwegian\n\t// PCL Symbol Set id: 11U\n\tPC8DanishNorwegian MIB = 2012\n\n\t// PC862LatinHebrew is the MIB identifier with IANA name IBM862.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tPC862LatinHebrew MIB = 2013\n\n\t// PC8Turkish is the MIB identifier with IANA name PC8-Turkish.\n\t//\n\t// PC Latin Turkish.  PCL Symbol Set id: 9T\n\tPC8Turkish MIB = 2014\n\n\t// IBMSymbols is the MIB identifier with IANA name IBM-Symbols.\n\t//\n\t// Presentation Set, CPGID: 259\n\tIBMSymbols MIB = 2015\n\n\t// IBMThai is the MIB identifier with IANA name IBM-Thai.\n\t//\n\t// Presentation Set, CPGID: 838\n\tIBMThai MIB = 2016\n\n\t// HPLegal is the MIB identifier with IANA name HP-Legal.\n\t//\n\t// PCL 5 Comparison Guide, Hewlett-Packard,\n\t// HP part number 5961-0510, October 1992\n\t// PCL Symbol Set id: 1U\n\tHPLegal MIB = 2017\n\n\t// HPPiFont is the MIB identifier with IANA name HP-Pi-font.\n\t//\n\t// PCL 5 Comparison Guide, Hewlett-Packard,\n\t// HP part number 5961-0510, October 1992\n\t// PCL Symbol Set id: 15U\n\tHPPiFont MIB = 2018\n\n\t// HPMath8 is the MIB identifier with IANA name HP-Math8.\n\t//\n\t// PCL 5 Comparison Guide, Hewlett-Packard,\n\t// HP part number 5961-0510, October 1992\n\t// PCL Symbol Set id: 8M\n\tHPMath8 MIB = 2019\n\n\t// HPPSMath is the MIB identifier with IANA name Adobe-Symbol-Encoding.\n\t//\n\t// PostScript Language Reference Manual\n\t// PCL Symbol Set id: 5M\n\tHPPSMath MIB = 2020\n\n\t// HPDesktop is the MIB identifier with IANA name HP-DeskTop.\n\t//\n\t// PCL 5 Comparison Guide, Hewlett-Packard,\n\t// HP part number 5961-0510, October 1992\n\t// PCL Symbol Set id: 7J\n\tHPDesktop MIB = 2021\n\n\t// VenturaMath is the MIB identifier with IANA name Ventura-Math.\n\t//\n\t// PCL 5 Comparison Guide, Hewlett-Packard,\n\t// HP part number 5961-0510, October 1992\n\t// PCL Symbol Set id: 6M\n\tVenturaMath MIB = 2022\n\n\t// MicrosoftPublishing is the MIB identifier with IANA name Microsoft-Publishing.\n\t//\n\t// PCL 5 Comparison Guide, Hewlett-Packard,\n\t// HP part number 5961-0510, October 1992\n\t// PCL Symbol Set id: 6J\n\tMicrosoftPublishing MIB = 2023\n\n\t// Windows31J is the MIB identifier with IANA name Windows-31J.\n\t//\n\t// Windows Japanese.  A further extension of Shift_JIS\n\t// to include NEC special characters (Row 13), NEC\n\t// selection of IBM extensions (Rows 89 to 92), and IBM\n\t// extensions (Rows 115 to 119).  The CCS's are\n\t// JIS X0201:1997, JIS X0208:1997, and these extensions.\n\t// This charset can be used for the top-level media type \"text\",\n\t// but it is of limited or specialized use (see rfc2278 ).\n\t// PCL Symbol Set id: 19K\n\tWindows31J MIB = 2024\n\n\t// GB2312 is the MIB identifier with IANA name GB2312 (MIME: GB2312).\n\t//\n\t// Chinese for People's Republic of China (PRC) mixed one byte,\n\t// two byte set:\n\t// 20-7E = one byte ASCII\n\t// A1-FE = two byte PRC Kanji\n\t// See GB 2312-80\n\t// PCL Symbol Set Id: 18C\n\tGB2312 MIB = 2025\n\n\t// Big5 is the MIB identifier with IANA name Big5 (MIME: Big5).\n\t//\n\t// Chinese for Taiwan Multi-byte set.\n\t// PCL Symbol Set Id: 18T\n\tBig5 MIB = 2026\n\n\t// Macintosh is the MIB identifier with IANA name macintosh.\n\t//\n\t// The Unicode Standard ver1.0, ISBN 0-201-56788-1, Oct 1991\n\t// Reference: RFC1345\n\tMacintosh MIB = 2027\n\n\t// IBM037 is the MIB identifier with IANA name IBM037.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM037 MIB = 2028\n\n\t// IBM038 is the MIB identifier with IANA name IBM038.\n\t//\n\t// IBM 3174 Character Set Ref, GA27-3831-02, March 1990\n\t// Reference: RFC1345\n\tIBM038 MIB = 2029\n\n\t// IBM273 is the MIB identifier with IANA name IBM273.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM273 MIB = 2030\n\n\t// IBM274 is the MIB identifier with IANA name IBM274.\n\t//\n\t// IBM 3174 Character Set Ref, GA27-3831-02, March 1990\n\t// Reference: RFC1345\n\tIBM274 MIB = 2031\n\n\t// IBM275 is the MIB identifier with IANA name IBM275.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM275 MIB = 2032\n\n\t// IBM277 is the MIB identifier with IANA name IBM277.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM277 MIB = 2033\n\n\t// IBM278 is the MIB identifier with IANA name IBM278.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM278 MIB = 2034\n\n\t// IBM280 is the MIB identifier with IANA name IBM280.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM280 MIB = 2035\n\n\t// IBM281 is the MIB identifier with IANA name IBM281.\n\t//\n\t// IBM 3174 Character Set Ref, GA27-3831-02, March 1990\n\t// Reference: RFC1345\n\tIBM281 MIB = 2036\n\n\t// IBM284 is the MIB identifier with IANA name IBM284.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM284 MIB = 2037\n\n\t// IBM285 is the MIB identifier with IANA name IBM285.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM285 MIB = 2038\n\n\t// IBM290 is the MIB identifier with IANA name IBM290.\n\t//\n\t// IBM 3174 Character Set Ref, GA27-3831-02, March 1990\n\t// Reference: RFC1345\n\tIBM290 MIB = 2039\n\n\t// IBM297 is the MIB identifier with IANA name IBM297.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM297 MIB = 2040\n\n\t// IBM420 is the MIB identifier with IANA name IBM420.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990,\n\t// IBM NLS RM p 11-11\n\t// Reference: RFC1345\n\tIBM420 MIB = 2041\n\n\t// IBM423 is the MIB identifier with IANA name IBM423.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM423 MIB = 2042\n\n\t// IBM424 is the MIB identifier with IANA name IBM424.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM424 MIB = 2043\n\n\t// PC8CodePage437 is the MIB identifier with IANA name IBM437.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tPC8CodePage437 MIB = 2011\n\n\t// IBM500 is the MIB identifier with IANA name IBM500.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM500 MIB = 2044\n\n\t// IBM851 is the MIB identifier with IANA name IBM851.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM851 MIB = 2045\n\n\t// PCp852 is the MIB identifier with IANA name IBM852.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tPCp852 MIB = 2010\n\n\t// IBM855 is the MIB identifier with IANA name IBM855.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM855 MIB = 2046\n\n\t// IBM857 is the MIB identifier with IANA name IBM857.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM857 MIB = 2047\n\n\t// IBM860 is the MIB identifier with IANA name IBM860.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM860 MIB = 2048\n\n\t// IBM861 is the MIB identifier with IANA name IBM861.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM861 MIB = 2049\n\n\t// IBM863 is the MIB identifier with IANA name IBM863.\n\t//\n\t// IBM Keyboard layouts and code pages, PN 07G4586 June 1991\n\t// Reference: RFC1345\n\tIBM863 MIB = 2050\n\n\t// IBM864 is the MIB identifier with IANA name IBM864.\n\t//\n\t// IBM Keyboard layouts and code pages, PN 07G4586 June 1991\n\t// Reference: RFC1345\n\tIBM864 MIB = 2051\n\n\t// IBM865 is the MIB identifier with IANA name IBM865.\n\t//\n\t// IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987)\n\t// Reference: RFC1345\n\tIBM865 MIB = 2052\n\n\t// IBM868 is the MIB identifier with IANA name IBM868.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM868 MIB = 2053\n\n\t// IBM869 is the MIB identifier with IANA name IBM869.\n\t//\n\t// IBM Keyboard layouts and code pages, PN 07G4586 June 1991\n\t// Reference: RFC1345\n\tIBM869 MIB = 2054\n\n\t// IBM870 is the MIB identifier with IANA name IBM870.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM870 MIB = 2055\n\n\t// IBM871 is the MIB identifier with IANA name IBM871.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM871 MIB = 2056\n\n\t// IBM880 is the MIB identifier with IANA name IBM880.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM880 MIB = 2057\n\n\t// IBM891 is the MIB identifier with IANA name IBM891.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM891 MIB = 2058\n\n\t// IBM903 is the MIB identifier with IANA name IBM903.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM903 MIB = 2059\n\n\t// IBBM904 is the MIB identifier with IANA name IBM904.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBBM904 MIB = 2060\n\n\t// IBM905 is the MIB identifier with IANA name IBM905.\n\t//\n\t// IBM 3174 Character Set Ref, GA27-3831-02, March 1990\n\t// Reference: RFC1345\n\tIBM905 MIB = 2061\n\n\t// IBM918 is the MIB identifier with IANA name IBM918.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM918 MIB = 2062\n\n\t// IBM1026 is the MIB identifier with IANA name IBM1026.\n\t//\n\t// IBM NLS RM Vol2 SE09-8002-01, March 1990\n\t// Reference: RFC1345\n\tIBM1026 MIB = 2063\n\n\t// IBMEBCDICATDE is the MIB identifier with IANA name EBCDIC-AT-DE.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tIBMEBCDICATDE MIB = 2064\n\n\t// EBCDICATDEA is the MIB identifier with IANA name EBCDIC-AT-DE-A.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICATDEA MIB = 2065\n\n\t// EBCDICCAFR is the MIB identifier with IANA name EBCDIC-CA-FR.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICCAFR MIB = 2066\n\n\t// EBCDICDKNO is the MIB identifier with IANA name EBCDIC-DK-NO.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICDKNO MIB = 2067\n\n\t// EBCDICDKNOA is the MIB identifier with IANA name EBCDIC-DK-NO-A.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICDKNOA MIB = 2068\n\n\t// EBCDICFISE is the MIB identifier with IANA name EBCDIC-FI-SE.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICFISE MIB = 2069\n\n\t// EBCDICFISEA is the MIB identifier with IANA name EBCDIC-FI-SE-A.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICFISEA MIB = 2070\n\n\t// EBCDICFR is the MIB identifier with IANA name EBCDIC-FR.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICFR MIB = 2071\n\n\t// EBCDICIT is the MIB identifier with IANA name EBCDIC-IT.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICIT MIB = 2072\n\n\t// EBCDICPT is the MIB identifier with IANA name EBCDIC-PT.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICPT MIB = 2073\n\n\t// EBCDICES is the MIB identifier with IANA name EBCDIC-ES.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICES MIB = 2074\n\n\t// EBCDICESA is the MIB identifier with IANA name EBCDIC-ES-A.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICESA MIB = 2075\n\n\t// EBCDICESS is the MIB identifier with IANA name EBCDIC-ES-S.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICESS MIB = 2076\n\n\t// EBCDICUK is the MIB identifier with IANA name EBCDIC-UK.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICUK MIB = 2077\n\n\t// EBCDICUS is the MIB identifier with IANA name EBCDIC-US.\n\t//\n\t// IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987\n\t// Reference: RFC1345\n\tEBCDICUS MIB = 2078\n\n\t// Unknown8BiT is the MIB identifier with IANA name UNKNOWN-8BIT.\n\t//\n\t// Reference: RFC1428\n\tUnknown8BiT MIB = 2079\n\n\t// Mnemonic is the MIB identifier with IANA name MNEMONIC.\n\t//\n\t// rfc1345 , also known as \"mnemonic+ascii+38\"\n\t// Reference: RFC1345\n\tMnemonic MIB = 2080\n\n\t// Mnem is the MIB identifier with IANA name MNEM.\n\t//\n\t// rfc1345 , also known as \"mnemonic+ascii+8200\"\n\t// Reference: RFC1345\n\tMnem MIB = 2081\n\n\t// VISCII is the MIB identifier with IANA name VISCII.\n\t//\n\t// rfc1456\n\t// Reference: RFC1456\n\tVISCII MIB = 2082\n\n\t// VIQR is the MIB identifier with IANA name VIQR.\n\t//\n\t// rfc1456\n\t// Reference: RFC1456\n\tVIQR MIB = 2083\n\n\t// KOI8R is the MIB identifier with IANA name KOI8-R (MIME: KOI8-R).\n\t//\n\t// rfc1489 , based on GOST-19768-74, ISO-6937/8,\n\t// INIS-Cyrillic, ISO-5427.\n\t// Reference: RFC1489\n\tKOI8R MIB = 2084\n\n\t// HZGB2312 is the MIB identifier with IANA name HZ-GB-2312.\n\t//\n\t// rfc1842 , rfc1843 rfc1843 rfc1842\n\tHZGB2312 MIB = 2085\n\n\t// IBM866 is the MIB identifier with IANA name IBM866.\n\t//\n\t// IBM NLDG Volume 2 (SE09-8002-03) August 1994\n\tIBM866 MIB = 2086\n\n\t// PC775Baltic is the MIB identifier with IANA name IBM775.\n\t//\n\t// HP PCL 5 Comparison Guide (P/N 5021-0329) pp B-13, 1996\n\tPC775Baltic MIB = 2087\n\n\t// KOI8U is the MIB identifier with IANA name KOI8-U.\n\t//\n\t// rfc2319\n\t// Reference: RFC2319\n\tKOI8U MIB = 2088\n\n\t// IBM00858 is the MIB identifier with IANA name IBM00858.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM00858\n\tIBM00858 MIB = 2089\n\n\t// IBM00924 is the MIB identifier with IANA name IBM00924.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM00924\n\tIBM00924 MIB = 2090\n\n\t// IBM01140 is the MIB identifier with IANA name IBM01140.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM01140\n\tIBM01140 MIB = 2091\n\n\t// IBM01141 is the MIB identifier with IANA name IBM01141.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM01141\n\tIBM01141 MIB = 2092\n\n\t// IBM01142 is the MIB identifier with IANA name IBM01142.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM01142\n\tIBM01142 MIB = 2093\n\n\t// IBM01143 is the MIB identifier with IANA name IBM01143.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM01143\n\tIBM01143 MIB = 2094\n\n\t// IBM01144 is the MIB identifier with IANA name IBM01144.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM01144\n\tIBM01144 MIB = 2095\n\n\t// IBM01145 is the MIB identifier with IANA name IBM01145.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM01145\n\tIBM01145 MIB = 2096\n\n\t// IBM01146 is the MIB identifier with IANA name IBM01146.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM01146\n\tIBM01146 MIB = 2097\n\n\t// IBM01147 is the MIB identifier with IANA name IBM01147.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM01147\n\tIBM01147 MIB = 2098\n\n\t// IBM01148 is the MIB identifier with IANA name IBM01148.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM01148\n\tIBM01148 MIB = 2099\n\n\t// IBM01149 is the MIB identifier with IANA name IBM01149.\n\t//\n\t// IBM See https://www.iana.org/assignments/charset-reg/IBM01149\n\tIBM01149 MIB = 2100\n\n\t// Big5HKSCS is the MIB identifier with IANA name Big5-HKSCS.\n\t//\n\t// See https://www.iana.org/assignments/charset-reg/Big5-HKSCS\n\tBig5HKSCS MIB = 2101\n\n\t// IBM1047 is the MIB identifier with IANA name IBM1047.\n\t//\n\t// IBM1047 (EBCDIC Latin 1/Open Systems) https://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf\n\tIBM1047 MIB = 2102\n\n\t// PTCP154 is the MIB identifier with IANA name PTCP154.\n\t//\n\t// See https://www.iana.org/assignments/charset-reg/PTCP154\n\tPTCP154 MIB = 2103\n\n\t// Amiga1251 is the MIB identifier with IANA name Amiga-1251.\n\t//\n\t// See https://www.amiga.ultranet.ru/Amiga-1251.html\n\tAmiga1251 MIB = 2104\n\n\t// KOI7switched is the MIB identifier with IANA name KOI7-switched.\n\t//\n\t// See https://www.iana.org/assignments/charset-reg/KOI7-switched\n\tKOI7switched MIB = 2105\n\n\t// BRF is the MIB identifier with IANA name BRF.\n\t//\n\t// See https://www.iana.org/assignments/charset-reg/BRF\n\tBRF MIB = 2106\n\n\t// TSCII is the MIB identifier with IANA name TSCII.\n\t//\n\t// See https://www.iana.org/assignments/charset-reg/TSCII\n\tTSCII MIB = 2107\n\n\t// CP51932 is the MIB identifier with IANA name CP51932.\n\t//\n\t// See https://www.iana.org/assignments/charset-reg/CP51932\n\tCP51932 MIB = 2108\n\n\t// Windows874 is the MIB identifier with IANA name windows-874.\n\t//\n\t// See https://www.iana.org/assignments/charset-reg/windows-874\n\tWindows874 MIB = 2109\n\n\t// Windows1250 is the MIB identifier with IANA name windows-1250.\n\t//\n\t// Microsoft https://www.iana.org/assignments/charset-reg/windows-1250\n\tWindows1250 MIB = 2250\n\n\t// Windows1251 is the MIB identifier with IANA name windows-1251.\n\t//\n\t// Microsoft https://www.iana.org/assignments/charset-reg/windows-1251\n\tWindows1251 MIB = 2251\n\n\t// Windows1252 is the MIB identifier with IANA name windows-1252.\n\t//\n\t// Microsoft https://www.iana.org/assignments/charset-reg/windows-1252\n\tWindows1252 MIB = 2252\n\n\t// Windows1253 is the MIB identifier with IANA name windows-1253.\n\t//\n\t// Microsoft https://www.iana.org/assignments/charset-reg/windows-1253\n\tWindows1253 MIB = 2253\n\n\t// Windows1254 is the MIB identifier with IANA name windows-1254.\n\t//\n\t// Microsoft https://www.iana.org/assignments/charset-reg/windows-1254\n\tWindows1254 MIB = 2254\n\n\t// Windows1255 is the MIB identifier with IANA name windows-1255.\n\t//\n\t// Microsoft https://www.iana.org/assignments/charset-reg/windows-1255\n\tWindows1255 MIB = 2255\n\n\t// Windows1256 is the MIB identifier with IANA name windows-1256.\n\t//\n\t// Microsoft https://www.iana.org/assignments/charset-reg/windows-1256\n\tWindows1256 MIB = 2256\n\n\t// Windows1257 is the MIB identifier with IANA name windows-1257.\n\t//\n\t// Microsoft https://www.iana.org/assignments/charset-reg/windows-1257\n\tWindows1257 MIB = 2257\n\n\t// Windows1258 is the MIB identifier with IANA name windows-1258.\n\t//\n\t// Microsoft https://www.iana.org/assignments/charset-reg/windows-1258\n\tWindows1258 MIB = 2258\n\n\t// TIS620 is the MIB identifier with IANA name TIS-620.\n\t//\n\t// Thai Industrial Standards Institute (TISI)\n\tTIS620 MIB = 2259\n\n\t// CP50220 is the MIB identifier with IANA name CP50220.\n\t//\n\t// See https://www.iana.org/assignments/charset-reg/CP50220\n\tCP50220 MIB = 2260\n)\n"
  },
  {
    "path": "vendor/golang.org/x/text/transform/transform.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package transform provides reader and writer wrappers that transform the\n// bytes passing through as well as various transformations. Example\n// transformations provided by other packages include normalization and\n// conversion between character sets.\npackage transform // import \"golang.org/x/text/transform\"\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"unicode/utf8\"\n)\n\nvar (\n\t// ErrShortDst means that the destination buffer was too short to\n\t// receive all of the transformed bytes.\n\tErrShortDst = errors.New(\"transform: short destination buffer\")\n\n\t// ErrShortSrc means that the source buffer has insufficient data to\n\t// complete the transformation.\n\tErrShortSrc = errors.New(\"transform: short source buffer\")\n\n\t// ErrEndOfSpan means that the input and output (the transformed input)\n\t// are not identical.\n\tErrEndOfSpan = errors.New(\"transform: input and output are not identical\")\n\n\t// errInconsistentByteCount means that Transform returned success (nil\n\t// error) but also returned nSrc inconsistent with the src argument.\n\terrInconsistentByteCount = errors.New(\"transform: inconsistent byte count returned\")\n\n\t// errShortInternal means that an internal buffer is not large enough\n\t// to make progress and the Transform operation must be aborted.\n\terrShortInternal = errors.New(\"transform: short internal buffer\")\n)\n\n// Transformer transforms bytes.\ntype Transformer interface {\n\t// Transform writes to dst the transformed bytes read from src, and\n\t// returns the number of dst bytes written and src bytes read. The\n\t// atEOF argument tells whether src represents the last bytes of the\n\t// input.\n\t//\n\t// Callers should always process the nDst bytes produced and account\n\t// for the nSrc bytes consumed before considering the error err.\n\t//\n\t// A nil error means that all of the transformed bytes (whether freshly\n\t// transformed from src or left over from previous Transform calls)\n\t// were written to dst. A nil error can be returned regardless of\n\t// whether atEOF is true. If err is nil then nSrc must equal len(src);\n\t// the converse is not necessarily true.\n\t//\n\t// ErrShortDst means that dst was too short to receive all of the\n\t// transformed bytes. ErrShortSrc means that src had insufficient data\n\t// to complete the transformation. If both conditions apply, then\n\t// either error may be returned. Other than the error conditions listed\n\t// here, implementations are free to report other errors that arise.\n\tTransform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error)\n\n\t// Reset resets the state and allows a Transformer to be reused.\n\tReset()\n}\n\n// SpanningTransformer extends the Transformer interface with a Span method\n// that determines how much of the input already conforms to the Transformer.\ntype SpanningTransformer interface {\n\tTransformer\n\n\t// Span returns a position in src such that transforming src[:n] results in\n\t// identical output src[:n] for these bytes. It does not necessarily return\n\t// the largest such n. The atEOF argument tells whether src represents the\n\t// last bytes of the input.\n\t//\n\t// Callers should always account for the n bytes consumed before\n\t// considering the error err.\n\t//\n\t// A nil error means that all input bytes are known to be identical to the\n\t// output produced by the Transformer. A nil error can be returned\n\t// regardless of whether atEOF is true. If err is nil, then n must\n\t// equal len(src); the converse is not necessarily true.\n\t//\n\t// ErrEndOfSpan means that the Transformer output may differ from the\n\t// input after n bytes. Note that n may be len(src), meaning that the output\n\t// would contain additional bytes after otherwise identical output.\n\t// ErrShortSrc means that src had insufficient data to determine whether the\n\t// remaining bytes would change. Other than the error conditions listed\n\t// here, implementations are free to report other errors that arise.\n\t//\n\t// Calling Span can modify the Transformer state as a side effect. In\n\t// effect, it does the transformation just as calling Transform would, only\n\t// without copying to a destination buffer and only up to a point it can\n\t// determine the input and output bytes are the same. This is obviously more\n\t// limited than calling Transform, but can be more efficient in terms of\n\t// copying and allocating buffers. Calls to Span and Transform may be\n\t// interleaved.\n\tSpan(src []byte, atEOF bool) (n int, err error)\n}\n\n// NopResetter can be embedded by implementations of Transformer to add a nop\n// Reset method.\ntype NopResetter struct{}\n\n// Reset implements the Reset method of the Transformer interface.\nfunc (NopResetter) Reset() {}\n\n// Reader wraps another io.Reader by transforming the bytes read.\ntype Reader struct {\n\tr   io.Reader\n\tt   Transformer\n\terr error\n\n\t// dst[dst0:dst1] contains bytes that have been transformed by t but\n\t// not yet copied out via Read.\n\tdst        []byte\n\tdst0, dst1 int\n\n\t// src[src0:src1] contains bytes that have been read from r but not\n\t// yet transformed through t.\n\tsrc        []byte\n\tsrc0, src1 int\n\n\t// transformComplete is whether the transformation is complete,\n\t// regardless of whether or not it was successful.\n\ttransformComplete bool\n}\n\nconst defaultBufSize = 4096\n\n// NewReader returns a new Reader that wraps r by transforming the bytes read\n// via t. It calls Reset on t.\nfunc NewReader(r io.Reader, t Transformer) *Reader {\n\tt.Reset()\n\treturn &Reader{\n\t\tr:   r,\n\t\tt:   t,\n\t\tdst: make([]byte, defaultBufSize),\n\t\tsrc: make([]byte, defaultBufSize),\n\t}\n}\n\n// Read implements the io.Reader interface.\nfunc (r *Reader) Read(p []byte) (int, error) {\n\tn, err := 0, error(nil)\n\tfor {\n\t\t// Copy out any transformed bytes and return the final error if we are done.\n\t\tif r.dst0 != r.dst1 {\n\t\t\tn = copy(p, r.dst[r.dst0:r.dst1])\n\t\t\tr.dst0 += n\n\t\t\tif r.dst0 == r.dst1 && r.transformComplete {\n\t\t\t\treturn n, r.err\n\t\t\t}\n\t\t\treturn n, nil\n\t\t} else if r.transformComplete {\n\t\t\treturn 0, r.err\n\t\t}\n\n\t\t// Try to transform some source bytes, or to flush the transformer if we\n\t\t// are out of source bytes. We do this even if r.r.Read returned an error.\n\t\t// As the io.Reader documentation says, \"process the n > 0 bytes returned\n\t\t// before considering the error\".\n\t\tif r.src0 != r.src1 || r.err != nil {\n\t\t\tr.dst0 = 0\n\t\t\tr.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF)\n\t\t\tr.src0 += n\n\n\t\t\tswitch {\n\t\t\tcase err == nil:\n\t\t\t\tif r.src0 != r.src1 {\n\t\t\t\t\tr.err = errInconsistentByteCount\n\t\t\t\t}\n\t\t\t\t// The Transform call was successful; we are complete if we\n\t\t\t\t// cannot read more bytes into src.\n\t\t\t\tr.transformComplete = r.err != nil\n\t\t\t\tcontinue\n\t\t\tcase err == ErrShortDst && (r.dst1 != 0 || n != 0):\n\t\t\t\t// Make room in dst by copying out, and try again.\n\t\t\t\tcontinue\n\t\t\tcase err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil:\n\t\t\t\t// Read more bytes into src via the code below, and try again.\n\t\t\tdefault:\n\t\t\t\tr.transformComplete = true\n\t\t\t\t// The reader error (r.err) takes precedence over the\n\t\t\t\t// transformer error (err) unless r.err is nil or io.EOF.\n\t\t\t\tif r.err == nil || r.err == io.EOF {\n\t\t\t\t\tr.err = err\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// Move any untransformed source bytes to the start of the buffer\n\t\t// and read more bytes.\n\t\tif r.src0 != 0 {\n\t\t\tr.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1])\n\t\t}\n\t\tn, r.err = r.r.Read(r.src[r.src1:])\n\t\tr.src1 += n\n\t}\n}\n\n// TODO: implement ReadByte (and ReadRune??).\n\n// Writer wraps another io.Writer by transforming the bytes read.\n// The user needs to call Close to flush unwritten bytes that may\n// be buffered.\ntype Writer struct {\n\tw   io.Writer\n\tt   Transformer\n\tdst []byte\n\n\t// src[:n] contains bytes that have not yet passed through t.\n\tsrc []byte\n\tn   int\n}\n\n// NewWriter returns a new Writer that wraps w by transforming the bytes written\n// via t. It calls Reset on t.\nfunc NewWriter(w io.Writer, t Transformer) *Writer {\n\tt.Reset()\n\treturn &Writer{\n\t\tw:   w,\n\t\tt:   t,\n\t\tdst: make([]byte, defaultBufSize),\n\t\tsrc: make([]byte, defaultBufSize),\n\t}\n}\n\n// Write implements the io.Writer interface. If there are not enough\n// bytes available to complete a Transform, the bytes will be buffered\n// for the next write. Call Close to convert the remaining bytes.\nfunc (w *Writer) Write(data []byte) (n int, err error) {\n\tsrc := data\n\tif w.n > 0 {\n\t\t// Append bytes from data to the last remainder.\n\t\t// TODO: limit the amount copied on first try.\n\t\tn = copy(w.src[w.n:], data)\n\t\tw.n += n\n\t\tsrc = w.src[:w.n]\n\t}\n\tfor {\n\t\tnDst, nSrc, err := w.t.Transform(w.dst, src, false)\n\t\tif _, werr := w.w.Write(w.dst[:nDst]); werr != nil {\n\t\t\treturn n, werr\n\t\t}\n\t\tsrc = src[nSrc:]\n\t\tif w.n == 0 {\n\t\t\tn += nSrc\n\t\t} else if len(src) <= n {\n\t\t\t// Enough bytes from w.src have been consumed. We make src point\n\t\t\t// to data instead to reduce the copying.\n\t\t\tw.n = 0\n\t\t\tn -= len(src)\n\t\t\tsrc = data[n:]\n\t\t\tif n < len(data) && (err == nil || err == ErrShortSrc) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tswitch err {\n\t\tcase ErrShortDst:\n\t\t\t// This error is okay as long as we are making progress.\n\t\t\tif nDst > 0 || nSrc > 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase ErrShortSrc:\n\t\t\tif len(src) < len(w.src) {\n\t\t\t\tm := copy(w.src, src)\n\t\t\t\t// If w.n > 0, bytes from data were already copied to w.src and n\n\t\t\t\t// was already set to the number of bytes consumed.\n\t\t\t\tif w.n == 0 {\n\t\t\t\t\tn += m\n\t\t\t\t}\n\t\t\t\tw.n = m\n\t\t\t\terr = nil\n\t\t\t} else if nDst > 0 || nSrc > 0 {\n\t\t\t\t// Not enough buffer to store the remainder. Keep processing as\n\t\t\t\t// long as there is progress. Without this case, transforms that\n\t\t\t\t// require a lookahead larger than the buffer may result in an\n\t\t\t\t// error. This is not something one may expect to be common in\n\t\t\t\t// practice, but it may occur when buffers are set to small\n\t\t\t\t// sizes during testing.\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase nil:\n\t\t\tif w.n > 0 {\n\t\t\t\terr = errInconsistentByteCount\n\t\t\t}\n\t\t}\n\t\treturn n, err\n\t}\n}\n\n// Close implements the io.Closer interface.\nfunc (w *Writer) Close() error {\n\tsrc := w.src[:w.n]\n\tfor {\n\t\tnDst, nSrc, err := w.t.Transform(w.dst, src, true)\n\t\tif _, werr := w.w.Write(w.dst[:nDst]); werr != nil {\n\t\t\treturn werr\n\t\t}\n\t\tif err != ErrShortDst {\n\t\t\treturn err\n\t\t}\n\t\tsrc = src[nSrc:]\n\t}\n}\n\ntype nop struct{ NopResetter }\n\nfunc (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tn := copy(dst, src)\n\tif n < len(src) {\n\t\terr = ErrShortDst\n\t}\n\treturn n, n, err\n}\n\nfunc (nop) Span(src []byte, atEOF bool) (n int, err error) {\n\treturn len(src), nil\n}\n\ntype discard struct{ NopResetter }\n\nfunc (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\treturn 0, len(src), nil\n}\n\nvar (\n\t// Discard is a Transformer for which all Transform calls succeed\n\t// by consuming all bytes and writing nothing.\n\tDiscard Transformer = discard{}\n\n\t// Nop is a SpanningTransformer that copies src to dst.\n\tNop SpanningTransformer = nop{}\n)\n\n// chain is a sequence of links. A chain with N Transformers has N+1 links and\n// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst\n// buffers given to chain.Transform and the middle N-1 buffers are intermediate\n// buffers owned by the chain. The i'th link transforms bytes from the i'th\n// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer\n// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N).\ntype chain struct {\n\tlink []link\n\terr  error\n\t// errStart is the index at which the error occurred plus 1. Processing\n\t// errStart at this level at the next call to Transform. As long as\n\t// errStart > 0, chain will not consume any more source bytes.\n\terrStart int\n}\n\nfunc (c *chain) fatalError(errIndex int, err error) {\n\tif i := errIndex + 1; i > c.errStart {\n\t\tc.errStart = i\n\t\tc.err = err\n\t}\n}\n\ntype link struct {\n\tt Transformer\n\t// b[p:n] holds the bytes to be transformed by t.\n\tb []byte\n\tp int\n\tn int\n}\n\nfunc (l *link) src() []byte {\n\treturn l.b[l.p:l.n]\n}\n\nfunc (l *link) dst() []byte {\n\treturn l.b[l.n:]\n}\n\n// Chain returns a Transformer that applies t in sequence.\nfunc Chain(t ...Transformer) Transformer {\n\tif len(t) == 0 {\n\t\treturn nop{}\n\t}\n\tc := &chain{link: make([]link, len(t)+1)}\n\tfor i, tt := range t {\n\t\tc.link[i].t = tt\n\t}\n\t// Allocate intermediate buffers.\n\tb := make([][defaultBufSize]byte, len(t)-1)\n\tfor i := range b {\n\t\tc.link[i+1].b = b[i][:]\n\t}\n\treturn c\n}\n\n// Reset resets the state of Chain. It calls Reset on all the Transformers.\nfunc (c *chain) Reset() {\n\tfor i, l := range c.link {\n\t\tif l.t != nil {\n\t\t\tl.t.Reset()\n\t\t}\n\t\tc.link[i].p, c.link[i].n = 0, 0\n\t}\n}\n\n// TODO: make chain use Span (is going to be fun to implement!)\n\n// Transform applies the transformers of c in sequence.\nfunc (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\t// Set up src and dst in the chain.\n\tsrcL := &c.link[0]\n\tdstL := &c.link[len(c.link)-1]\n\tsrcL.b, srcL.p, srcL.n = src, 0, len(src)\n\tdstL.b, dstL.n = dst, 0\n\tvar lastFull, needProgress bool // for detecting progress\n\n\t// i is the index of the next Transformer to apply, for i in [low, high].\n\t// low is the lowest index for which c.link[low] may still produce bytes.\n\t// high is the highest index for which c.link[high] has a Transformer.\n\t// The error returned by Transform determines whether to increase or\n\t// decrease i. We try to completely fill a buffer before converting it.\n\tfor low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; {\n\t\tin, out := &c.link[i], &c.link[i+1]\n\t\tnDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i)\n\t\tout.n += nDst\n\t\tin.p += nSrc\n\t\tif i > 0 && in.p == in.n {\n\t\t\tin.p, in.n = 0, 0\n\t\t}\n\t\tneedProgress, lastFull = lastFull, false\n\t\tswitch err0 {\n\t\tcase ErrShortDst:\n\t\t\t// Process the destination buffer next. Return if we are already\n\t\t\t// at the high index.\n\t\t\tif i == high {\n\t\t\t\treturn dstL.n, srcL.p, ErrShortDst\n\t\t\t}\n\t\t\tif out.n != 0 {\n\t\t\t\ti++\n\t\t\t\t// If the Transformer at the next index is not able to process any\n\t\t\t\t// source bytes there is nothing that can be done to make progress\n\t\t\t\t// and the bytes will remain unprocessed. lastFull is used to\n\t\t\t\t// detect this and break out of the loop with a fatal error.\n\t\t\t\tlastFull = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// The destination buffer was too small, but is completely empty.\n\t\t\t// Return a fatal error as this transformation can never complete.\n\t\t\tc.fatalError(i, errShortInternal)\n\t\tcase ErrShortSrc:\n\t\t\tif i == 0 {\n\t\t\t\t// Save ErrShortSrc in err. All other errors take precedence.\n\t\t\t\terr = ErrShortSrc\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Source bytes were depleted before filling up the destination buffer.\n\t\t\t// Verify we made some progress, move the remaining bytes to the errStart\n\t\t\t// and try to get more source bytes.\n\t\t\tif needProgress && nSrc == 0 || in.n-in.p == len(in.b) {\n\t\t\t\t// There were not enough source bytes to proceed while the source\n\t\t\t\t// buffer cannot hold any more bytes. Return a fatal error as this\n\t\t\t\t// transformation can never complete.\n\t\t\t\tc.fatalError(i, errShortInternal)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// in.b is an internal buffer and we can make progress.\n\t\t\tin.p, in.n = 0, copy(in.b, in.src())\n\t\t\tfallthrough\n\t\tcase nil:\n\t\t\t// if i == low, we have depleted the bytes at index i or any lower levels.\n\t\t\t// In that case we increase low and i. In all other cases we decrease i to\n\t\t\t// fetch more bytes before proceeding to the next index.\n\t\t\tif i > low {\n\t\t\t\ti--\n\t\t\t\tcontinue\n\t\t\t}\n\t\tdefault:\n\t\t\tc.fatalError(i, err0)\n\t\t}\n\t\t// Exhausted level low or fatal error: increase low and continue\n\t\t// to process the bytes accepted so far.\n\t\ti++\n\t\tlow = i\n\t}\n\n\t// If c.errStart > 0, this means we found a fatal error.  We will clear\n\t// all upstream buffers. At this point, no more progress can be made\n\t// downstream, as Transform would have bailed while handling ErrShortDst.\n\tif c.errStart > 0 {\n\t\tfor i := 1; i < c.errStart; i++ {\n\t\t\tc.link[i].p, c.link[i].n = 0, 0\n\t\t}\n\t\terr, c.errStart, c.err = c.err, 0, nil\n\t}\n\treturn dstL.n, srcL.p, err\n}\n\n// Deprecated: Use runes.Remove instead.\nfunc RemoveFunc(f func(r rune) bool) Transformer {\n\treturn removeF(f)\n}\n\ntype removeF func(r rune) bool\n\nfunc (removeF) Reset() {}\n\n// Transform implements the Transformer interface.\nfunc (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tfor r, sz := rune(0), 0; len(src) > 0; src = src[sz:] {\n\n\t\tif r = rune(src[0]); r < utf8.RuneSelf {\n\t\t\tsz = 1\n\t\t} else {\n\t\t\tr, sz = utf8.DecodeRune(src)\n\n\t\t\tif sz == 1 {\n\t\t\t\t// Invalid rune.\n\t\t\t\tif !atEOF && !utf8.FullRune(src) {\n\t\t\t\t\terr = ErrShortSrc\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// We replace illegal bytes with RuneError. Not doing so might\n\t\t\t\t// otherwise turn a sequence of invalid UTF-8 into valid UTF-8.\n\t\t\t\t// The resulting byte sequence may subsequently contain runes\n\t\t\t\t// for which t(r) is true that were passed unnoticed.\n\t\t\t\tif !t(r) {\n\t\t\t\t\tif nDst+3 > len(dst) {\n\t\t\t\t\t\terr = ErrShortDst\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tnDst += copy(dst[nDst:], \"\\uFFFD\")\n\t\t\t\t}\n\t\t\t\tnSrc++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif !t(r) {\n\t\t\tif nDst+sz > len(dst) {\n\t\t\t\terr = ErrShortDst\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tnDst += copy(dst[nDst:], src[:sz])\n\t\t}\n\t\tnSrc += sz\n\t}\n\treturn\n}\n\n// grow returns a new []byte that is longer than b, and copies the first n bytes\n// of b to the start of the new slice.\nfunc grow(b []byte, n int) []byte {\n\tm := len(b)\n\tif m <= 32 {\n\t\tm = 64\n\t} else if m <= 256 {\n\t\tm *= 2\n\t} else {\n\t\tm += m >> 1\n\t}\n\tbuf := make([]byte, m)\n\tcopy(buf, b[:n])\n\treturn buf\n}\n\nconst initialBufSize = 128\n\n// String returns a string with the result of converting s[:n] using t, where\n// n <= len(s). If err == nil, n will be len(s). It calls Reset on t.\nfunc String(t Transformer, s string) (result string, n int, err error) {\n\tt.Reset()\n\tif s == \"\" {\n\t\t// Fast path for the common case for empty input. Results in about a\n\t\t// 86% reduction of running time for BenchmarkStringLowerEmpty.\n\t\tif _, _, err := t.Transform(nil, nil, true); err == nil {\n\t\t\treturn \"\", 0, nil\n\t\t}\n\t}\n\n\t// Allocate only once. Note that both dst and src escape when passed to\n\t// Transform.\n\tbuf := [2 * initialBufSize]byte{}\n\tdst := buf[:initialBufSize:initialBufSize]\n\tsrc := buf[initialBufSize : 2*initialBufSize]\n\n\t// The input string s is transformed in multiple chunks (starting with a\n\t// chunk size of initialBufSize). nDst and nSrc are per-chunk (or\n\t// per-Transform-call) indexes, pDst and pSrc are overall indexes.\n\tnDst, nSrc := 0, 0\n\tpDst, pSrc := 0, 0\n\n\t// pPrefix is the length of a common prefix: the first pPrefix bytes of the\n\t// result will equal the first pPrefix bytes of s. It is not guaranteed to\n\t// be the largest such value, but if pPrefix, len(result) and len(s) are\n\t// all equal after the final transform (i.e. calling Transform with atEOF\n\t// being true returned nil error) then we don't need to allocate a new\n\t// result string.\n\tpPrefix := 0\n\tfor {\n\t\t// Invariant: pDst == pPrefix && pSrc == pPrefix.\n\n\t\tn := copy(src, s[pSrc:])\n\t\tnDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s))\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\n\t\t// TODO:  let transformers implement an optional Spanner interface, akin\n\t\t// to norm's QuickSpan. This would even allow us to avoid any allocation.\n\t\tif !bytes.Equal(dst[:nDst], src[:nSrc]) {\n\t\t\tbreak\n\t\t}\n\t\tpPrefix = pSrc\n\t\tif err == ErrShortDst {\n\t\t\t// A buffer can only be short if a transformer modifies its input.\n\t\t\tbreak\n\t\t} else if err == ErrShortSrc {\n\t\t\tif nSrc == 0 {\n\t\t\t\t// No progress was made.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Equal so far and !atEOF, so continue checking.\n\t\t} else if err != nil || pPrefix == len(s) {\n\t\t\treturn string(s[:pPrefix]), pPrefix, err\n\t\t}\n\t}\n\t// Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc.\n\n\t// We have transformed the first pSrc bytes of the input s to become pDst\n\t// transformed bytes. Those transformed bytes are discontiguous: the first\n\t// pPrefix of them equal s[:pPrefix] and the last nDst of them equal\n\t// dst[:nDst]. We copy them around, into a new dst buffer if necessary, so\n\t// that they become one contiguous slice: dst[:pDst].\n\tif pPrefix != 0 {\n\t\tnewDst := dst\n\t\tif pDst > len(newDst) {\n\t\t\tnewDst = make([]byte, len(s)+nDst-nSrc)\n\t\t}\n\t\tcopy(newDst[pPrefix:pDst], dst[:nDst])\n\t\tcopy(newDst[:pPrefix], s[:pPrefix])\n\t\tdst = newDst\n\t}\n\n\t// Prevent duplicate Transform calls with atEOF being true at the end of\n\t// the input. Also return if we have an unrecoverable error.\n\tif (err == nil && pSrc == len(s)) ||\n\t\t(err != nil && err != ErrShortDst && err != ErrShortSrc) {\n\t\treturn string(dst[:pDst]), pSrc, err\n\t}\n\n\t// Transform the remaining input, growing dst and src buffers as necessary.\n\tfor {\n\t\tn := copy(src, s[pSrc:])\n\t\tatEOF := pSrc+n == len(s)\n\t\tnDst, nSrc, err := t.Transform(dst[pDst:], src[:n], atEOF)\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\n\t\t// If we got ErrShortDst or ErrShortSrc, do not grow as long as we can\n\t\t// make progress. This may avoid excessive allocations.\n\t\tif err == ErrShortDst {\n\t\t\tif nDst == 0 {\n\t\t\t\tdst = grow(dst, pDst)\n\t\t\t}\n\t\t} else if err == ErrShortSrc {\n\t\t\tif atEOF {\n\t\t\t\treturn string(dst[:pDst]), pSrc, err\n\t\t\t}\n\t\t\tif nSrc == 0 {\n\t\t\t\tsrc = grow(src, 0)\n\t\t\t}\n\t\t} else if err != nil || pSrc == len(s) {\n\t\t\treturn string(dst[:pDst]), pSrc, err\n\t\t}\n\t}\n}\n\n// Bytes returns a new byte slice with the result of converting b[:n] using t,\n// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t.\nfunc Bytes(t Transformer, b []byte) (result []byte, n int, err error) {\n\treturn doAppend(t, 0, make([]byte, len(b)), b)\n}\n\n// Append appends the result of converting src[:n] using t to dst, where\n// n <= len(src), If err == nil, n will be len(src). It calls Reset on t.\nfunc Append(t Transformer, dst, src []byte) (result []byte, n int, err error) {\n\tif len(dst) == cap(dst) {\n\t\tn := len(src) + len(dst) // It is okay for this to be 0.\n\t\tb := make([]byte, n)\n\t\tdst = b[:copy(b, dst)]\n\t}\n\treturn doAppend(t, len(dst), dst[:cap(dst)], src)\n}\n\nfunc doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) {\n\tt.Reset()\n\tpSrc := 0\n\tfor {\n\t\tnDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true)\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\t\tif err != ErrShortDst {\n\t\t\treturn dst[:pDst], pSrc, err\n\t\t}\n\n\t\t// Grow the destination buffer, but do not grow as long as we can make\n\t\t// progress. This may avoid excessive allocations.\n\t\tif nDst == 0 {\n\t\t\tdst = grow(dst, pDst)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/LICENSE",
    "content": "Copyright (c) 2019 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/README",
    "content": "This repository holds the transition packages for the new Go 1.13 error values.\nSee golang.org/design/29934-error-values.\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/adaptor.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xerrors\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strconv\"\n)\n\n// FormatError calls the FormatError method of f with an errors.Printer\n// configured according to s and verb, and writes the result to s.\nfunc FormatError(f Formatter, s fmt.State, verb rune) {\n\t// Assuming this function is only called from the Format method, and given\n\t// that FormatError takes precedence over Format, it cannot be called from\n\t// any package that supports errors.Formatter. It is therefore safe to\n\t// disregard that State may be a specific printer implementation and use one\n\t// of our choice instead.\n\n\t// limitations: does not support printing error as Go struct.\n\n\tvar (\n\t\tsep    = \" \" // separator before next error\n\t\tp      = &state{State: s}\n\t\tdirect = true\n\t)\n\n\tvar err error = f\n\n\tswitch verb {\n\t// Note that this switch must match the preference order\n\t// for ordinary string printing (%#v before %+v, and so on).\n\n\tcase 'v':\n\t\tif s.Flag('#') {\n\t\t\tif stringer, ok := err.(fmt.GoStringer); ok {\n\t\t\t\tio.WriteString(&p.buf, stringer.GoString())\n\t\t\t\tgoto exit\n\t\t\t}\n\t\t\t// proceed as if it were %v\n\t\t} else if s.Flag('+') {\n\t\t\tp.printDetail = true\n\t\t\tsep = \"\\n  - \"\n\t\t}\n\tcase 's':\n\tcase 'q', 'x', 'X':\n\t\t// Use an intermediate buffer in the rare cases that precision,\n\t\t// truncation, or one of the alternative verbs (q, x, and X) are\n\t\t// specified.\n\t\tdirect = false\n\n\tdefault:\n\t\tp.buf.WriteString(\"%!\")\n\t\tp.buf.WriteRune(verb)\n\t\tp.buf.WriteByte('(')\n\t\tswitch {\n\t\tcase err != nil:\n\t\t\tp.buf.WriteString(reflect.TypeOf(f).String())\n\t\tdefault:\n\t\t\tp.buf.WriteString(\"<nil>\")\n\t\t}\n\t\tp.buf.WriteByte(')')\n\t\tio.Copy(s, &p.buf)\n\t\treturn\n\t}\n\nloop:\n\tfor {\n\t\tswitch v := err.(type) {\n\t\tcase Formatter:\n\t\t\terr = v.FormatError((*printer)(p))\n\t\tcase fmt.Formatter:\n\t\t\tv.Format(p, 'v')\n\t\t\tbreak loop\n\t\tdefault:\n\t\t\tio.WriteString(&p.buf, v.Error())\n\t\t\tbreak loop\n\t\t}\n\t\tif err == nil {\n\t\t\tbreak\n\t\t}\n\t\tif p.needColon || !p.printDetail {\n\t\t\tp.buf.WriteByte(':')\n\t\t\tp.needColon = false\n\t\t}\n\t\tp.buf.WriteString(sep)\n\t\tp.inDetail = false\n\t\tp.needNewline = false\n\t}\n\nexit:\n\twidth, okW := s.Width()\n\tprec, okP := s.Precision()\n\n\tif !direct || (okW && width > 0) || okP {\n\t\t// Construct format string from State s.\n\t\tformat := []byte{'%'}\n\t\tif s.Flag('-') {\n\t\t\tformat = append(format, '-')\n\t\t}\n\t\tif s.Flag('+') {\n\t\t\tformat = append(format, '+')\n\t\t}\n\t\tif s.Flag(' ') {\n\t\t\tformat = append(format, ' ')\n\t\t}\n\t\tif okW {\n\t\t\tformat = strconv.AppendInt(format, int64(width), 10)\n\t\t}\n\t\tif okP {\n\t\t\tformat = append(format, '.')\n\t\t\tformat = strconv.AppendInt(format, int64(prec), 10)\n\t\t}\n\t\tformat = append(format, string(verb)...)\n\t\tfmt.Fprintf(s, string(format), p.buf.String())\n\t} else {\n\t\tio.Copy(s, &p.buf)\n\t}\n}\n\nvar detailSep = []byte(\"\\n    \")\n\n// state tracks error printing state. It implements fmt.State.\ntype state struct {\n\tfmt.State\n\tbuf bytes.Buffer\n\n\tprintDetail bool\n\tinDetail    bool\n\tneedColon   bool\n\tneedNewline bool\n}\n\nfunc (s *state) Write(b []byte) (n int, err error) {\n\tif s.printDetail {\n\t\tif len(b) == 0 {\n\t\t\treturn 0, nil\n\t\t}\n\t\tif s.inDetail && s.needColon {\n\t\t\ts.needNewline = true\n\t\t\tif b[0] == '\\n' {\n\t\t\t\tb = b[1:]\n\t\t\t}\n\t\t}\n\t\tk := 0\n\t\tfor i, c := range b {\n\t\t\tif s.needNewline {\n\t\t\t\tif s.inDetail && s.needColon {\n\t\t\t\t\ts.buf.WriteByte(':')\n\t\t\t\t\ts.needColon = false\n\t\t\t\t}\n\t\t\t\ts.buf.Write(detailSep)\n\t\t\t\ts.needNewline = false\n\t\t\t}\n\t\t\tif c == '\\n' {\n\t\t\t\ts.buf.Write(b[k:i])\n\t\t\t\tk = i + 1\n\t\t\t\ts.needNewline = true\n\t\t\t}\n\t\t}\n\t\ts.buf.Write(b[k:])\n\t\tif !s.inDetail {\n\t\t\ts.needColon = true\n\t\t}\n\t} else if !s.inDetail {\n\t\ts.buf.Write(b)\n\t}\n\treturn len(b), nil\n}\n\n// printer wraps a state to implement an xerrors.Printer.\ntype printer state\n\nfunc (s *printer) Print(args ...interface{}) {\n\tif !s.inDetail || s.printDetail {\n\t\tfmt.Fprint((*state)(s), args...)\n\t}\n}\n\nfunc (s *printer) Printf(format string, args ...interface{}) {\n\tif !s.inDetail || s.printDetail {\n\t\tfmt.Fprintf((*state)(s), format, args...)\n\t}\n}\n\nfunc (s *printer) Detail() bool {\n\ts.inDetail = true\n\treturn s.printDetail\n}\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/codereview.cfg",
    "content": "issuerepo: golang/go\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/doc.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package xerrors implements functions to manipulate errors.\n//\n// This package is based on the Go 2 proposal for error values:\n//   https://golang.org/design/29934-error-values\n//\n// These functions were incorporated into the standard library's errors package\n// in Go 1.13:\n// - Is\n// - As\n// - Unwrap\n//\n// Also, Errorf's %w verb was incorporated into fmt.Errorf.\n//\n// Use this package to get equivalent behavior in all supported Go versions.\n//\n// No other features of this package were included in Go 1.13, and at present\n// there are no plans to include any of them.\npackage xerrors // import \"golang.org/x/xerrors\"\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/errors.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xerrors\n\nimport \"fmt\"\n\n// errorString is a trivial implementation of error.\ntype errorString struct {\n\ts     string\n\tframe Frame\n}\n\n// New returns an error that formats as the given text.\n//\n// The returned error contains a Frame set to the caller's location and\n// implements Formatter to show this information when printed with details.\nfunc New(text string) error {\n\treturn &errorString{text, Caller(1)}\n}\n\nfunc (e *errorString) Error() string {\n\treturn e.s\n}\n\nfunc (e *errorString) Format(s fmt.State, v rune) { FormatError(e, s, v) }\n\nfunc (e *errorString) FormatError(p Printer) (next error) {\n\tp.Print(e.s)\n\te.frame.Format(p)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/fmt.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xerrors\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/xerrors/internal\"\n)\n\nconst percentBangString = \"%!\"\n\n// Errorf formats according to a format specifier and returns the string as a\n// value that satisfies error.\n//\n// The returned error includes the file and line number of the caller when\n// formatted with additional detail enabled. If the last argument is an error\n// the returned error's Format method will return it if the format string ends\n// with \": %s\", \": %v\", or \": %w\". If the last argument is an error and the\n// format string ends with \": %w\", the returned error implements an Unwrap\n// method returning it.\n//\n// If the format specifier includes a %w verb with an error operand in a\n// position other than at the end, the returned error will still implement an\n// Unwrap method returning the operand, but the error's Format method will not\n// return the wrapped error.\n//\n// It is invalid to include more than one %w verb or to supply it with an\n// operand that does not implement the error interface. The %w verb is otherwise\n// a synonym for %v.\nfunc Errorf(format string, a ...interface{}) error {\n\tformat = formatPlusW(format)\n\t// Support a \": %[wsv]\" suffix, which works well with xerrors.Formatter.\n\twrap := strings.HasSuffix(format, \": %w\")\n\tidx, format2, ok := parsePercentW(format)\n\tpercentWElsewhere := !wrap && idx >= 0\n\tif !percentWElsewhere && (wrap || strings.HasSuffix(format, \": %s\") || strings.HasSuffix(format, \": %v\")) {\n\t\terr := errorAt(a, len(a)-1)\n\t\tif err == nil {\n\t\t\treturn &noWrapError{fmt.Sprintf(format, a...), nil, Caller(1)}\n\t\t}\n\t\t// TODO: this is not entirely correct. The error value could be\n\t\t// printed elsewhere in format if it mixes numbered with unnumbered\n\t\t// substitutions. With relatively small changes to doPrintf we can\n\t\t// have it optionally ignore extra arguments and pass the argument\n\t\t// list in its entirety.\n\t\tmsg := fmt.Sprintf(format[:len(format)-len(\": %s\")], a[:len(a)-1]...)\n\t\tframe := Frame{}\n\t\tif internal.EnableTrace {\n\t\t\tframe = Caller(1)\n\t\t}\n\t\tif wrap {\n\t\t\treturn &wrapError{msg, err, frame}\n\t\t}\n\t\treturn &noWrapError{msg, err, frame}\n\t}\n\t// Support %w anywhere.\n\t// TODO: don't repeat the wrapped error's message when %w occurs in the middle.\n\tmsg := fmt.Sprintf(format2, a...)\n\tif idx < 0 {\n\t\treturn &noWrapError{msg, nil, Caller(1)}\n\t}\n\terr := errorAt(a, idx)\n\tif !ok || err == nil {\n\t\t// Too many %ws or argument of %w is not an error. Approximate the Go\n\t\t// 1.13 fmt.Errorf message.\n\t\treturn &noWrapError{fmt.Sprintf(\"%sw(%s)\", percentBangString, msg), nil, Caller(1)}\n\t}\n\tframe := Frame{}\n\tif internal.EnableTrace {\n\t\tframe = Caller(1)\n\t}\n\treturn &wrapError{msg, err, frame}\n}\n\nfunc errorAt(args []interface{}, i int) error {\n\tif i < 0 || i >= len(args) {\n\t\treturn nil\n\t}\n\terr, ok := args[i].(error)\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn err\n}\n\n// formatPlusW is used to avoid the vet check that will barf at %w.\nfunc formatPlusW(s string) string {\n\treturn s\n}\n\n// Return the index of the only %w in format, or -1 if none.\n// Also return a rewritten format string with %w replaced by %v, and\n// false if there is more than one %w.\n// TODO: handle \"%[N]w\".\nfunc parsePercentW(format string) (idx int, newFormat string, ok bool) {\n\t// Loosely copied from golang.org/x/tools/go/analysis/passes/printf/printf.go.\n\tidx = -1\n\tok = true\n\tn := 0\n\tsz := 0\n\tvar isW bool\n\tfor i := 0; i < len(format); i += sz {\n\t\tif format[i] != '%' {\n\t\t\tsz = 1\n\t\t\tcontinue\n\t\t}\n\t\t// \"%%\" is not a format directive.\n\t\tif i+1 < len(format) && format[i+1] == '%' {\n\t\t\tsz = 2\n\t\t\tcontinue\n\t\t}\n\t\tsz, isW = parsePrintfVerb(format[i:])\n\t\tif isW {\n\t\t\tif idx >= 0 {\n\t\t\t\tok = false\n\t\t\t} else {\n\t\t\t\tidx = n\n\t\t\t}\n\t\t\t// \"Replace\" the last character, the 'w', with a 'v'.\n\t\t\tp := i + sz - 1\n\t\t\tformat = format[:p] + \"v\" + format[p+1:]\n\t\t}\n\t\tn++\n\t}\n\treturn idx, format, ok\n}\n\n// Parse the printf verb starting with a % at s[0].\n// Return how many bytes it occupies and whether the verb is 'w'.\nfunc parsePrintfVerb(s string) (int, bool) {\n\t// Assume only that the directive is a sequence of non-letters followed by a single letter.\n\tsz := 0\n\tvar r rune\n\tfor i := 1; i < len(s); i += sz {\n\t\tr, sz = utf8.DecodeRuneInString(s[i:])\n\t\tif unicode.IsLetter(r) {\n\t\t\treturn i + sz, r == 'w'\n\t\t}\n\t}\n\treturn len(s), false\n}\n\ntype noWrapError struct {\n\tmsg   string\n\terr   error\n\tframe Frame\n}\n\nfunc (e *noWrapError) Error() string {\n\treturn fmt.Sprint(e)\n}\n\nfunc (e *noWrapError) Format(s fmt.State, v rune) { FormatError(e, s, v) }\n\nfunc (e *noWrapError) FormatError(p Printer) (next error) {\n\tp.Print(e.msg)\n\te.frame.Format(p)\n\treturn e.err\n}\n\ntype wrapError struct {\n\tmsg   string\n\terr   error\n\tframe Frame\n}\n\nfunc (e *wrapError) Error() string {\n\treturn fmt.Sprint(e)\n}\n\nfunc (e *wrapError) Format(s fmt.State, v rune) { FormatError(e, s, v) }\n\nfunc (e *wrapError) FormatError(p Printer) (next error) {\n\tp.Print(e.msg)\n\te.frame.Format(p)\n\treturn e.err\n}\n\nfunc (e *wrapError) Unwrap() error {\n\treturn e.err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/format.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xerrors\n\n// A Formatter formats error messages.\ntype Formatter interface {\n\terror\n\n\t// FormatError prints the receiver's first error and returns the next error in\n\t// the error chain, if any.\n\tFormatError(p Printer) (next error)\n}\n\n// A Printer formats error messages.\n//\n// The most common implementation of Printer is the one provided by package fmt\n// during Printf (as of Go 1.13). Localization packages such as golang.org/x/text/message\n// typically provide their own implementations.\ntype Printer interface {\n\t// Print appends args to the message output.\n\tPrint(args ...interface{})\n\n\t// Printf writes a formatted string.\n\tPrintf(format string, args ...interface{})\n\n\t// Detail reports whether error detail is requested.\n\t// After the first call to Detail, all text written to the Printer\n\t// is formatted as additional detail, or ignored when\n\t// detail has not been requested.\n\t// If Detail returns false, the caller can avoid printing the detail at all.\n\tDetail() bool\n}\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/frame.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xerrors\n\nimport (\n\t\"runtime\"\n)\n\n// A Frame contains part of a call stack.\ntype Frame struct {\n\t// Make room for three PCs: the one we were asked for, what it called,\n\t// and possibly a PC for skipPleaseUseCallersFrames. See:\n\t// https://go.googlesource.com/go/+/032678e0fb/src/runtime/extern.go#169\n\tframes [3]uintptr\n}\n\n// Caller returns a Frame that describes a frame on the caller's stack.\n// The argument skip is the number of frames to skip over.\n// Caller(0) returns the frame for the caller of Caller.\nfunc Caller(skip int) Frame {\n\tvar s Frame\n\truntime.Callers(skip+1, s.frames[:])\n\treturn s\n}\n\n// location reports the file, line, and function of a frame.\n//\n// The returned function may be \"\" even if file and line are not.\nfunc (f Frame) location() (function, file string, line int) {\n\tframes := runtime.CallersFrames(f.frames[:])\n\tif _, ok := frames.Next(); !ok {\n\t\treturn \"\", \"\", 0\n\t}\n\tfr, ok := frames.Next()\n\tif !ok {\n\t\treturn \"\", \"\", 0\n\t}\n\treturn fr.Function, fr.File, fr.Line\n}\n\n// Format prints the stack as error detail.\n// It should be called from an error's Format implementation\n// after printing any other error detail.\nfunc (f Frame) Format(p Printer) {\n\tif p.Detail() {\n\t\tfunction, file, line := f.location()\n\t\tif function != \"\" {\n\t\t\tp.Printf(\"%s\\n    \", function)\n\t\t}\n\t\tif file != \"\" {\n\t\t\tp.Printf(\"%s:%d\\n\", file, line)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/internal/internal.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage internal\n\n// EnableTrace indicates whether stack information should be recorded in errors.\nvar EnableTrace = true\n"
  },
  {
    "path": "vendor/golang.org/x/xerrors/wrap.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage xerrors\n\nimport (\n\t\"reflect\"\n)\n\n// A Wrapper provides context around another error.\ntype Wrapper interface {\n\t// Unwrap returns the next error in the error chain.\n\t// If there is no next error, Unwrap returns nil.\n\tUnwrap() error\n}\n\n// Opaque returns an error with the same error formatting as err\n// but that does not match err and cannot be unwrapped.\nfunc Opaque(err error) error {\n\treturn noWrapper{err}\n}\n\ntype noWrapper struct {\n\terror\n}\n\nfunc (e noWrapper) FormatError(p Printer) (next error) {\n\tif f, ok := e.error.(Formatter); ok {\n\t\treturn f.FormatError(p)\n\t}\n\tp.Print(e.error)\n\treturn nil\n}\n\n// Unwrap returns the result of calling the Unwrap method on err, if err implements\n// Unwrap. Otherwise, Unwrap returns nil.\nfunc Unwrap(err error) error {\n\tu, ok := err.(Wrapper)\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn u.Unwrap()\n}\n\n// Is reports whether any error in err's chain matches target.\n//\n// An error is considered to match a target if it is equal to that target or if\n// it implements a method Is(error) bool such that Is(target) returns true.\nfunc Is(err, target error) bool {\n\tif target == nil {\n\t\treturn err == target\n\t}\n\n\tisComparable := reflect.TypeOf(target).Comparable()\n\tfor {\n\t\tif isComparable && err == target {\n\t\t\treturn true\n\t\t}\n\t\tif x, ok := err.(interface{ Is(error) bool }); ok && x.Is(target) {\n\t\t\treturn true\n\t\t}\n\t\t// TODO: consider supporing target.Is(err). This would allow\n\t\t// user-definable predicates, but also may allow for coping with sloppy\n\t\t// APIs, thereby making it easier to get away with them.\n\t\tif err = Unwrap(err); err == nil {\n\t\t\treturn false\n\t\t}\n\t}\n}\n\n// As finds the first error in err's chain that matches the type to which target\n// points, and if so, sets the target to its value and returns true. An error\n// matches a type if it is assignable to the target type, or if it has a method\n// As(interface{}) bool such that As(target) returns true. As will panic if target\n// is not a non-nil pointer to a type which implements error or is of interface type.\n//\n// The As method should set the target to its value and return true if err\n// matches the type to which target points.\nfunc As(err error, target interface{}) bool {\n\tif target == nil {\n\t\tpanic(\"errors: target cannot be nil\")\n\t}\n\tval := reflect.ValueOf(target)\n\ttyp := val.Type()\n\tif typ.Kind() != reflect.Ptr || val.IsNil() {\n\t\tpanic(\"errors: target must be a non-nil pointer\")\n\t}\n\tif e := typ.Elem(); e.Kind() != reflect.Interface && !e.Implements(errorType) {\n\t\tpanic(\"errors: *target must be interface or implement error\")\n\t}\n\ttargetType := typ.Elem()\n\tfor err != nil {\n\t\tif reflect.TypeOf(err).AssignableTo(targetType) {\n\t\t\tval.Elem().Set(reflect.ValueOf(err))\n\t\t\treturn true\n\t\t}\n\t\tif x, ok := err.(interface{ As(interface{}) bool }); ok && x.As(target) {\n\t\t\treturn true\n\t\t}\n\t\terr = Unwrap(err)\n\t}\n\treturn false\n}\n\nvar errorType = reflect.TypeOf((*error)(nil)).Elem()\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/LICENSE",
    "content": "\nThis project is covered by two different licenses: MIT and Apache.\n\n#### MIT License ####\n\nThe following files were ported to Go from C files of libyaml, and thus\nare still covered by their original MIT license, with the additional\ncopyright staring in 2011 when the project was ported over:\n\n    apic.go emitterc.go parserc.go readerc.go scannerc.go\n    writerc.go yamlh.go yamlprivateh.go\n\nCopyright (c) 2006-2010 Kirill Simonov\nCopyright (c) 2006-2011 Kirill Simonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n### Apache License ###\n\nAll the remaining project files are covered by the Apache license:\n\nCopyright (c) 2011-2019 Canonical Ltd\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/NOTICE",
    "content": "Copyright 2011-2016 Canonical Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/README.md",
    "content": "# YAML support for the Go language\n\nIntroduction\n------------\n\nThe yaml package enables Go programs to comfortably encode and decode YAML\nvalues. It was developed within [Canonical](https://www.canonical.com) as\npart of the [juju](https://juju.ubuntu.com) project, and is based on a\npure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML)\nC library to parse and generate YAML data quickly and reliably.\n\nCompatibility\n-------------\n\nThe yaml package supports most of YAML 1.2, but preserves some behavior\nfrom 1.1 for backwards compatibility.\n\nSpecifically, as of v3 of the yaml package:\n\n - YAML 1.1 bools (_yes/no, on/off_) are supported as long as they are being\n   decoded into a typed bool value. Otherwise they behave as a string. Booleans\n   in YAML 1.2 are _true/false_ only.\n - Octals encode and decode as _0777_ per YAML 1.1, rather than _0o777_\n   as specified in YAML 1.2, because most parsers still use the old format.\n   Octals in the  _0o777_ format are supported though, so new files work.\n - Does not support base-60 floats. These are gone from YAML 1.2, and were\n   actually never supported by this package as it's clearly a poor choice.\n\nand offers backwards\ncompatibility with YAML 1.1 in some cases.\n1.2, including support for\nanchors, tags, map merging, etc. Multi-document unmarshalling is not yet\nimplemented, and base-60 floats from YAML 1.1 are purposefully not\nsupported since they're a poor design and are gone in YAML 1.2.\n\nInstallation and usage\n----------------------\n\nThe import path for the package is *gopkg.in/yaml.v3*.\n\nTo install it, run:\n\n    go get gopkg.in/yaml.v3\n\nAPI documentation\n-----------------\n\nIf opened in a browser, the import path itself leads to the API documentation:\n\n  - [https://gopkg.in/yaml.v3](https://gopkg.in/yaml.v3)\n\nAPI stability\n-------------\n\nThe package API for yaml v3 will remain stable as described in [gopkg.in](https://gopkg.in).\n\n\nLicense\n-------\n\nThe yaml package is licensed under the MIT and Apache License 2.0 licenses.\nPlease see the LICENSE file for details.\n\n\nExample\n-------\n\n```Go\npackage main\n\nimport (\n        \"fmt\"\n        \"log\"\n\n        \"gopkg.in/yaml.v3\"\n)\n\nvar data = `\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n`\n\n// Note: struct fields must be public in order for unmarshal to\n// correctly populate the data.\ntype T struct {\n        A string\n        B struct {\n                RenamedC int   `yaml:\"c\"`\n                D        []int `yaml:\",flow\"`\n        }\n}\n\nfunc main() {\n        t := T{}\n    \n        err := yaml.Unmarshal([]byte(data), &t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t:\\n%v\\n\\n\", t)\n    \n        d, err := yaml.Marshal(&t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t dump:\\n%s\\n\\n\", string(d))\n    \n        m := make(map[interface{}]interface{})\n    \n        err = yaml.Unmarshal([]byte(data), &m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m:\\n%v\\n\\n\", m)\n    \n        d, err = yaml.Marshal(&m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m dump:\\n%s\\n\\n\", string(d))\n}\n```\n\nThis example will generate the following output:\n\n```\n--- t:\n{Easy! {2 [3 4]}}\n\n--- t dump:\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n\n\n--- m:\nmap[a:Easy! b:map[c:2 d:[3 4]]]\n\n--- m dump:\na: Easy!\nb:\n  c: 2\n  d:\n  - 3\n  - 4\n```\n\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/apic.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"io\"\n)\n\nfunc yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) {\n\t//fmt.Println(\"yaml_insert_token\", \"pos:\", pos, \"typ:\", token.typ, \"head:\", parser.tokens_head, \"len:\", len(parser.tokens))\n\n\t// Check if we can move the queue at the beginning of the buffer.\n\tif parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\tcopy(parser.tokens, parser.tokens[parser.tokens_head:])\n\t\t}\n\t\tparser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head]\n\t\tparser.tokens_head = 0\n\t}\n\tparser.tokens = append(parser.tokens, *token)\n\tif pos < 0 {\n\t\treturn\n\t}\n\tcopy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:])\n\tparser.tokens[parser.tokens_head+pos] = *token\n}\n\n// Create a new parser object.\nfunc yaml_parser_initialize(parser *yaml_parser_t) bool {\n\t*parser = yaml_parser_t{\n\t\traw_buffer: make([]byte, 0, input_raw_buffer_size),\n\t\tbuffer:     make([]byte, 0, input_buffer_size),\n\t}\n\treturn true\n}\n\n// Destroy a parser object.\nfunc yaml_parser_delete(parser *yaml_parser_t) {\n\t*parser = yaml_parser_t{}\n}\n\n// String read handler.\nfunc yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\tif parser.input_pos == len(parser.input) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(buffer, parser.input[parser.input_pos:])\n\tparser.input_pos += n\n\treturn n, nil\n}\n\n// Reader read handler.\nfunc yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\treturn parser.input_reader.Read(buffer)\n}\n\n// Set a string input.\nfunc yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_string_read_handler\n\tparser.input = input\n\tparser.input_pos = 0\n}\n\n// Set a file input.\nfunc yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_reader_read_handler\n\tparser.input_reader = r\n}\n\n// Set the source encoding.\nfunc yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) {\n\tif parser.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the encoding only once\")\n\t}\n\tparser.encoding = encoding\n}\n\n// Create a new emitter object.\nfunc yaml_emitter_initialize(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{\n\t\tbuffer:     make([]byte, output_buffer_size),\n\t\traw_buffer: make([]byte, 0, output_raw_buffer_size),\n\t\tstates:     make([]yaml_emitter_state_t, 0, initial_stack_size),\n\t\tevents:     make([]yaml_event_t, 0, initial_queue_size),\n\t\tbest_width: -1,\n\t}\n}\n\n// Destroy an emitter object.\nfunc yaml_emitter_delete(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{}\n}\n\n// String write handler.\nfunc yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t*emitter.output_buffer = append(*emitter.output_buffer, buffer...)\n\treturn nil\n}\n\n// yaml_writer_write_handler uses emitter.output_writer to write the\n// emitted text.\nfunc yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t_, err := emitter.output_writer.Write(buffer)\n\treturn err\n}\n\n// Set a string output.\nfunc yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_string_write_handler\n\temitter.output_buffer = output_buffer\n}\n\n// Set a file output.\nfunc yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_writer_write_handler\n\temitter.output_writer = w\n}\n\n// Set the output encoding.\nfunc yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) {\n\tif emitter.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the output encoding only once\")\n\t}\n\temitter.encoding = encoding\n}\n\n// Set the canonical output style.\nfunc yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) {\n\temitter.canonical = canonical\n}\n\n// Set the indentation increment.\nfunc yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) {\n\tif indent < 2 || indent > 9 {\n\t\tindent = 2\n\t}\n\temitter.best_indent = indent\n}\n\n// Set the preferred line width.\nfunc yaml_emitter_set_width(emitter *yaml_emitter_t, width int) {\n\tif width < 0 {\n\t\twidth = -1\n\t}\n\temitter.best_width = width\n}\n\n// Set if unescaped non-ASCII characters are allowed.\nfunc yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) {\n\temitter.unicode = unicode\n}\n\n// Set the preferred line break character.\nfunc yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) {\n\temitter.line_break = line_break\n}\n\n///*\n// * Destroy a token object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_token_delete(yaml_token_t *token)\n//{\n//    assert(token);  // Non-NULL token object expected.\n//\n//    switch (token.type)\n//    {\n//        case YAML_TAG_DIRECTIVE_TOKEN:\n//            yaml_free(token.data.tag_directive.handle);\n//            yaml_free(token.data.tag_directive.prefix);\n//            break;\n//\n//        case YAML_ALIAS_TOKEN:\n//            yaml_free(token.data.alias.value);\n//            break;\n//\n//        case YAML_ANCHOR_TOKEN:\n//            yaml_free(token.data.anchor.value);\n//            break;\n//\n//        case YAML_TAG_TOKEN:\n//            yaml_free(token.data.tag.handle);\n//            yaml_free(token.data.tag.suffix);\n//            break;\n//\n//        case YAML_SCALAR_TOKEN:\n//            yaml_free(token.data.scalar.value);\n//            break;\n//\n//        default:\n//            break;\n//    }\n//\n//    memset(token, 0, sizeof(yaml_token_t));\n//}\n//\n///*\n// * Check if a string is a valid UTF-8 sequence.\n// *\n// * Check 'reader.c' for more details on UTF-8 encoding.\n// */\n//\n//static int\n//yaml_check_utf8(yaml_char_t *start, size_t length)\n//{\n//    yaml_char_t *end = start+length;\n//    yaml_char_t *pointer = start;\n//\n//    while (pointer < end) {\n//        unsigned char octet;\n//        unsigned int width;\n//        unsigned int value;\n//        size_t k;\n//\n//        octet = pointer[0];\n//        width = (octet & 0x80) == 0x00 ? 1 :\n//                (octet & 0xE0) == 0xC0 ? 2 :\n//                (octet & 0xF0) == 0xE0 ? 3 :\n//                (octet & 0xF8) == 0xF0 ? 4 : 0;\n//        value = (octet & 0x80) == 0x00 ? octet & 0x7F :\n//                (octet & 0xE0) == 0xC0 ? octet & 0x1F :\n//                (octet & 0xF0) == 0xE0 ? octet & 0x0F :\n//                (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0;\n//        if (!width) return 0;\n//        if (pointer+width > end) return 0;\n//        for (k = 1; k < width; k ++) {\n//            octet = pointer[k];\n//            if ((octet & 0xC0) != 0x80) return 0;\n//            value = (value << 6) + (octet & 0x3F);\n//        }\n//        if (!((width == 1) ||\n//            (width == 2 && value >= 0x80) ||\n//            (width == 3 && value >= 0x800) ||\n//            (width == 4 && value >= 0x10000))) return 0;\n//\n//        pointer += width;\n//    }\n//\n//    return 1;\n//}\n//\n\n// Create STREAM-START.\nfunc yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_STREAM_START_EVENT,\n\t\tencoding: encoding,\n\t}\n}\n\n// Create STREAM-END.\nfunc yaml_stream_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_STREAM_END_EVENT,\n\t}\n}\n\n// Create DOCUMENT-START.\nfunc yaml_document_start_event_initialize(\n\tevent *yaml_event_t,\n\tversion_directive *yaml_version_directive_t,\n\ttag_directives []yaml_tag_directive_t,\n\timplicit bool,\n) {\n\t*event = yaml_event_t{\n\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\tversion_directive: version_directive,\n\t\ttag_directives:    tag_directives,\n\t\timplicit:          implicit,\n\t}\n}\n\n// Create DOCUMENT-END.\nfunc yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_DOCUMENT_END_EVENT,\n\t\timplicit: implicit,\n\t}\n}\n\n// Create ALIAS.\nfunc yaml_alias_event_initialize(event *yaml_event_t, anchor []byte) bool {\n\t*event = yaml_event_t{\n\t\ttyp:    yaml_ALIAS_EVENT,\n\t\tanchor: anchor,\n\t}\n\treturn true\n}\n\n// Create SCALAR.\nfunc yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:             yaml_SCALAR_EVENT,\n\t\tanchor:          anchor,\n\t\ttag:             tag,\n\t\tvalue:           value,\n\t\timplicit:        plain_implicit,\n\t\tquoted_implicit: quoted_implicit,\n\t\tstyle:           yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-START.\nfunc yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_SEQUENCE_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-END.\nfunc yaml_sequence_end_event_initialize(event *yaml_event_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_SEQUENCE_END_EVENT,\n\t}\n\treturn true\n}\n\n// Create MAPPING-START.\nfunc yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_MAPPING_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n}\n\n// Create MAPPING-END.\nfunc yaml_mapping_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_MAPPING_END_EVENT,\n\t}\n}\n\n// Destroy an event object.\nfunc yaml_event_delete(event *yaml_event_t) {\n\t*event = yaml_event_t{}\n}\n\n///*\n// * Create a document object.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_initialize(document *yaml_document_t,\n//        version_directive *yaml_version_directive_t,\n//        tag_directives_start *yaml_tag_directive_t,\n//        tag_directives_end *yaml_tag_directive_t,\n//        start_implicit int, end_implicit int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    struct {\n//        start *yaml_node_t\n//        end *yaml_node_t\n//        top *yaml_node_t\n//    } nodes = { NULL, NULL, NULL }\n//    version_directive_copy *yaml_version_directive_t = NULL\n//    struct {\n//        start *yaml_tag_directive_t\n//        end *yaml_tag_directive_t\n//        top *yaml_tag_directive_t\n//    } tag_directives_copy = { NULL, NULL, NULL }\n//    value yaml_tag_directive_t = { NULL, NULL }\n//    mark yaml_mark_t = { 0, 0, 0 }\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert((tag_directives_start && tag_directives_end) ||\n//            (tag_directives_start == tag_directives_end))\n//                            // Valid tag directives are expected.\n//\n//    if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error\n//\n//    if (version_directive) {\n//        version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t))\n//        if (!version_directive_copy) goto error\n//        version_directive_copy.major = version_directive.major\n//        version_directive_copy.minor = version_directive.minor\n//    }\n//\n//    if (tag_directives_start != tag_directives_end) {\n//        tag_directive *yaml_tag_directive_t\n//        if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE))\n//            goto error\n//        for (tag_directive = tag_directives_start\n//                tag_directive != tag_directives_end; tag_directive ++) {\n//            assert(tag_directive.handle)\n//            assert(tag_directive.prefix)\n//            if (!yaml_check_utf8(tag_directive.handle,\n//                        strlen((char *)tag_directive.handle)))\n//                goto error\n//            if (!yaml_check_utf8(tag_directive.prefix,\n//                        strlen((char *)tag_directive.prefix)))\n//                goto error\n//            value.handle = yaml_strdup(tag_directive.handle)\n//            value.prefix = yaml_strdup(tag_directive.prefix)\n//            if (!value.handle || !value.prefix) goto error\n//            if (!PUSH(&context, tag_directives_copy, value))\n//                goto error\n//            value.handle = NULL\n//            value.prefix = NULL\n//        }\n//    }\n//\n//    DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy,\n//            tag_directives_copy.start, tag_directives_copy.top,\n//            start_implicit, end_implicit, mark, mark)\n//\n//    return 1\n//\n//error:\n//    STACK_DEL(&context, nodes)\n//    yaml_free(version_directive_copy)\n//    while (!STACK_EMPTY(&context, tag_directives_copy)) {\n//        value yaml_tag_directive_t = POP(&context, tag_directives_copy)\n//        yaml_free(value.handle)\n//        yaml_free(value.prefix)\n//    }\n//    STACK_DEL(&context, tag_directives_copy)\n//    yaml_free(value.handle)\n//    yaml_free(value.prefix)\n//\n//    return 0\n//}\n//\n///*\n// * Destroy a document object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_document_delete(document *yaml_document_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    tag_directive *yaml_tag_directive_t\n//\n//    context.error = YAML_NO_ERROR // Eliminate a compiler warning.\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    while (!STACK_EMPTY(&context, document.nodes)) {\n//        node yaml_node_t = POP(&context, document.nodes)\n//        yaml_free(node.tag)\n//        switch (node.type) {\n//            case YAML_SCALAR_NODE:\n//                yaml_free(node.data.scalar.value)\n//                break\n//            case YAML_SEQUENCE_NODE:\n//                STACK_DEL(&context, node.data.sequence.items)\n//                break\n//            case YAML_MAPPING_NODE:\n//                STACK_DEL(&context, node.data.mapping.pairs)\n//                break\n//            default:\n//                assert(0) // Should not happen.\n//        }\n//    }\n//    STACK_DEL(&context, document.nodes)\n//\n//    yaml_free(document.version_directive)\n//    for (tag_directive = document.tag_directives.start\n//            tag_directive != document.tag_directives.end\n//            tag_directive++) {\n//        yaml_free(tag_directive.handle)\n//        yaml_free(tag_directive.prefix)\n//    }\n//    yaml_free(document.tag_directives.start)\n//\n//    memset(document, 0, sizeof(yaml_document_t))\n//}\n//\n///**\n// * Get a document node.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_node(document *yaml_document_t, index int)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (index > 0 && document.nodes.start + index <= document.nodes.top) {\n//        return document.nodes.start + index - 1\n//    }\n//    return NULL\n//}\n//\n///**\n// * Get the root object.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_root_node(document *yaml_document_t)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (document.nodes.top != document.nodes.start) {\n//        return document.nodes.start\n//    }\n//    return NULL\n//}\n//\n///*\n// * Add a scalar node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_scalar(document *yaml_document_t,\n//        tag *yaml_char_t, value *yaml_char_t, length int,\n//        style yaml_scalar_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    value_copy *yaml_char_t = NULL\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert(value) // Non-NULL value is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (length < 0) {\n//        length = strlen((char *)value)\n//    }\n//\n//    if (!yaml_check_utf8(value, length)) goto error\n//    value_copy = yaml_malloc(length+1)\n//    if (!value_copy) goto error\n//    memcpy(value_copy, value, length)\n//    value_copy[length] = '\\0'\n//\n//    SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    yaml_free(tag_copy)\n//    yaml_free(value_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a sequence node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_sequence(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_sequence_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_item_t\n//        end *yaml_node_item_t\n//        top *yaml_node_item_t\n//    } items = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error\n//\n//    SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, items)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a mapping node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_mapping(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_mapping_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_pair_t\n//        end *yaml_node_pair_t\n//        top *yaml_node_pair_t\n//    } pairs = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error\n//\n//    MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, pairs)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Append an item to a sequence node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_sequence_item(document *yaml_document_t,\n//        sequence int, item int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(sequence > 0\n//            && document.nodes.start + sequence <= document.nodes.top)\n//                            // Valid sequence id is required.\n//    assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE)\n//                            // A sequence node is required.\n//    assert(item > 0 && document.nodes.start + item <= document.nodes.top)\n//                            // Valid item id is required.\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[sequence-1].data.sequence.items, item))\n//        return 0\n//\n//    return 1\n//}\n//\n///*\n// * Append a pair of a key and a value to a mapping node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_mapping_pair(document *yaml_document_t,\n//        mapping int, key int, value int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    pair yaml_node_pair_t\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(mapping > 0\n//            && document.nodes.start + mapping <= document.nodes.top)\n//                            // Valid mapping id is required.\n//    assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE)\n//                            // A mapping node is required.\n//    assert(key > 0 && document.nodes.start + key <= document.nodes.top)\n//                            // Valid key id is required.\n//    assert(value > 0 && document.nodes.start + value <= document.nodes.top)\n//                            // Valid value id is required.\n//\n//    pair.key = key\n//    pair.value = value\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[mapping-1].data.mapping.pairs, pair))\n//        return 0\n//\n//    return 1\n//}\n//\n//\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/decode.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// ----------------------------------------------------------------------------\n// Parser, produces a node tree out of a libyaml event stream.\n\ntype parser struct {\n\tparser   yaml_parser_t\n\tevent    yaml_event_t\n\tdoc      *Node\n\tanchors  map[string]*Node\n\tdoneInit bool\n\ttextless bool\n}\n\nfunc newParser(b []byte) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tif len(b) == 0 {\n\t\tb = []byte{'\\n'}\n\t}\n\tyaml_parser_set_input_string(&p.parser, b)\n\treturn &p\n}\n\nfunc newParserFromReader(r io.Reader) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tyaml_parser_set_input_reader(&p.parser, r)\n\treturn &p\n}\n\nfunc (p *parser) init() {\n\tif p.doneInit {\n\t\treturn\n\t}\n\tp.anchors = make(map[string]*Node)\n\tp.expect(yaml_STREAM_START_EVENT)\n\tp.doneInit = true\n}\n\nfunc (p *parser) destroy() {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\tyaml_event_delete(&p.event)\n\t}\n\tyaml_parser_delete(&p.parser)\n}\n\n// expect consumes an event from the event stream and\n// checks that it's of the expected type.\nfunc (p *parser) expect(e yaml_event_type_t) {\n\tif p.event.typ == yaml_NO_EVENT {\n\t\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\t\tp.fail()\n\t\t}\n\t}\n\tif p.event.typ == yaml_STREAM_END_EVENT {\n\t\tfailf(\"attempted to go past the end of stream; corrupted value?\")\n\t}\n\tif p.event.typ != e {\n\t\tp.parser.problem = fmt.Sprintf(\"expected %s event but got %s\", e, p.event.typ)\n\t\tp.fail()\n\t}\n\tyaml_event_delete(&p.event)\n\tp.event.typ = yaml_NO_EVENT\n}\n\n// peek peeks at the next event in the event stream,\n// puts the results into p.event and returns the event type.\nfunc (p *parser) peek() yaml_event_type_t {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\treturn p.event.typ\n\t}\n\t// It's curious choice from the underlying API to generally return a\n\t// positive result on success, but on this case return true in an error\n\t// scenario. This was the source of bugs in the past (issue #666).\n\tif !yaml_parser_parse(&p.parser, &p.event) || p.parser.error != yaml_NO_ERROR {\n\t\tp.fail()\n\t}\n\treturn p.event.typ\n}\n\nfunc (p *parser) fail() {\n\tvar where string\n\tvar line int\n\tif p.parser.context_mark.line != 0 {\n\t\tline = p.parser.context_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t} else if p.parser.problem_mark.line != 0 {\n\t\tline = p.parser.problem_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t}\n\tif line != 0 {\n\t\twhere = \"line \" + strconv.Itoa(line) + \": \"\n\t}\n\tvar msg string\n\tif len(p.parser.problem) > 0 {\n\t\tmsg = p.parser.problem\n\t} else {\n\t\tmsg = \"unknown problem parsing YAML content\"\n\t}\n\tfailf(\"%s%s\", where, msg)\n}\n\nfunc (p *parser) anchor(n *Node, anchor []byte) {\n\tif anchor != nil {\n\t\tn.Anchor = string(anchor)\n\t\tp.anchors[n.Anchor] = n\n\t}\n}\n\nfunc (p *parser) parse() *Node {\n\tp.init()\n\tswitch p.peek() {\n\tcase yaml_SCALAR_EVENT:\n\t\treturn p.scalar()\n\tcase yaml_ALIAS_EVENT:\n\t\treturn p.alias()\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn p.mapping()\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn p.sequence()\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\treturn p.document()\n\tcase yaml_STREAM_END_EVENT:\n\t\t// Happens when attempting to decode an empty buffer.\n\t\treturn nil\n\tcase yaml_TAIL_COMMENT_EVENT:\n\t\tpanic(\"internal error: unexpected tail comment event (please report)\")\n\tdefault:\n\t\tpanic(\"internal error: attempted to parse unknown event (please report): \" + p.event.typ.String())\n\t}\n}\n\nfunc (p *parser) node(kind Kind, defaultTag, tag, value string) *Node {\n\tvar style Style\n\tif tag != \"\" && tag != \"!\" {\n\t\ttag = shortTag(tag)\n\t\tstyle = TaggedStyle\n\t} else if defaultTag != \"\" {\n\t\ttag = defaultTag\n\t} else if kind == ScalarNode {\n\t\ttag, _ = resolve(\"\", value)\n\t}\n\tn := &Node{\n\t\tKind:  kind,\n\t\tTag:   tag,\n\t\tValue: value,\n\t\tStyle: style,\n\t}\n\tif !p.textless {\n\t\tn.Line = p.event.start_mark.line + 1\n\t\tn.Column = p.event.start_mark.column + 1\n\t\tn.HeadComment = string(p.event.head_comment)\n\t\tn.LineComment = string(p.event.line_comment)\n\t\tn.FootComment = string(p.event.foot_comment)\n\t}\n\treturn n\n}\n\nfunc (p *parser) parseChild(parent *Node) *Node {\n\tchild := p.parse()\n\tparent.Content = append(parent.Content, child)\n\treturn child\n}\n\nfunc (p *parser) document() *Node {\n\tn := p.node(DocumentNode, \"\", \"\", \"\")\n\tp.doc = n\n\tp.expect(yaml_DOCUMENT_START_EVENT)\n\tp.parseChild(n)\n\tif p.peek() == yaml_DOCUMENT_END_EVENT {\n\t\tn.FootComment = string(p.event.foot_comment)\n\t}\n\tp.expect(yaml_DOCUMENT_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) alias() *Node {\n\tn := p.node(AliasNode, \"\", \"\", string(p.event.anchor))\n\tn.Alias = p.anchors[n.Value]\n\tif n.Alias == nil {\n\t\tfailf(\"unknown anchor '%s' referenced\", n.Value)\n\t}\n\tp.expect(yaml_ALIAS_EVENT)\n\treturn n\n}\n\nfunc (p *parser) scalar() *Node {\n\tvar parsedStyle = p.event.scalar_style()\n\tvar nodeStyle Style\n\tswitch {\n\tcase parsedStyle&yaml_DOUBLE_QUOTED_SCALAR_STYLE != 0:\n\t\tnodeStyle = DoubleQuotedStyle\n\tcase parsedStyle&yaml_SINGLE_QUOTED_SCALAR_STYLE != 0:\n\t\tnodeStyle = SingleQuotedStyle\n\tcase parsedStyle&yaml_LITERAL_SCALAR_STYLE != 0:\n\t\tnodeStyle = LiteralStyle\n\tcase parsedStyle&yaml_FOLDED_SCALAR_STYLE != 0:\n\t\tnodeStyle = FoldedStyle\n\t}\n\tvar nodeValue = string(p.event.value)\n\tvar nodeTag = string(p.event.tag)\n\tvar defaultTag string\n\tif nodeStyle == 0 {\n\t\tif nodeValue == \"<<\" {\n\t\t\tdefaultTag = mergeTag\n\t\t}\n\t} else {\n\t\tdefaultTag = strTag\n\t}\n\tn := p.node(ScalarNode, defaultTag, nodeTag, nodeValue)\n\tn.Style |= nodeStyle\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SCALAR_EVENT)\n\treturn n\n}\n\nfunc (p *parser) sequence() *Node {\n\tn := p.node(SequenceNode, seqTag, string(p.event.tag), \"\")\n\tif p.event.sequence_style()&yaml_FLOW_SEQUENCE_STYLE != 0 {\n\t\tn.Style |= FlowStyle\n\t}\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SEQUENCE_START_EVENT)\n\tfor p.peek() != yaml_SEQUENCE_END_EVENT {\n\t\tp.parseChild(n)\n\t}\n\tn.LineComment = string(p.event.line_comment)\n\tn.FootComment = string(p.event.foot_comment)\n\tp.expect(yaml_SEQUENCE_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) mapping() *Node {\n\tn := p.node(MappingNode, mapTag, string(p.event.tag), \"\")\n\tblock := true\n\tif p.event.mapping_style()&yaml_FLOW_MAPPING_STYLE != 0 {\n\t\tblock = false\n\t\tn.Style |= FlowStyle\n\t}\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_MAPPING_START_EVENT)\n\tfor p.peek() != yaml_MAPPING_END_EVENT {\n\t\tk := p.parseChild(n)\n\t\tif block && k.FootComment != \"\" {\n\t\t\t// Must be a foot comment for the prior value when being dedented.\n\t\t\tif len(n.Content) > 2 {\n\t\t\t\tn.Content[len(n.Content)-3].FootComment = k.FootComment\n\t\t\t\tk.FootComment = \"\"\n\t\t\t}\n\t\t}\n\t\tv := p.parseChild(n)\n\t\tif k.FootComment == \"\" && v.FootComment != \"\" {\n\t\t\tk.FootComment = v.FootComment\n\t\t\tv.FootComment = \"\"\n\t\t}\n\t\tif p.peek() == yaml_TAIL_COMMENT_EVENT {\n\t\t\tif k.FootComment == \"\" {\n\t\t\t\tk.FootComment = string(p.event.foot_comment)\n\t\t\t}\n\t\t\tp.expect(yaml_TAIL_COMMENT_EVENT)\n\t\t}\n\t}\n\tn.LineComment = string(p.event.line_comment)\n\tn.FootComment = string(p.event.foot_comment)\n\tif n.Style&FlowStyle == 0 && n.FootComment != \"\" && len(n.Content) > 1 {\n\t\tn.Content[len(n.Content)-2].FootComment = n.FootComment\n\t\tn.FootComment = \"\"\n\t}\n\tp.expect(yaml_MAPPING_END_EVENT)\n\treturn n\n}\n\n// ----------------------------------------------------------------------------\n// Decoder, unmarshals a node into a provided value.\n\ntype decoder struct {\n\tdoc     *Node\n\taliases map[*Node]bool\n\tterrors []string\n\n\tstringMapType  reflect.Type\n\tgeneralMapType reflect.Type\n\n\tknownFields bool\n\tuniqueKeys  bool\n\tdecodeCount int\n\taliasCount  int\n\taliasDepth  int\n\n\tmergedFields map[interface{}]bool\n}\n\nvar (\n\tnodeType       = reflect.TypeOf(Node{})\n\tdurationType   = reflect.TypeOf(time.Duration(0))\n\tstringMapType  = reflect.TypeOf(map[string]interface{}{})\n\tgeneralMapType = reflect.TypeOf(map[interface{}]interface{}{})\n\tifaceType      = generalMapType.Elem()\n\ttimeType       = reflect.TypeOf(time.Time{})\n\tptrTimeType    = reflect.TypeOf(&time.Time{})\n)\n\nfunc newDecoder() *decoder {\n\td := &decoder{\n\t\tstringMapType:  stringMapType,\n\t\tgeneralMapType: generalMapType,\n\t\tuniqueKeys:     true,\n\t}\n\td.aliases = make(map[*Node]bool)\n\treturn d\n}\n\nfunc (d *decoder) terror(n *Node, tag string, out reflect.Value) {\n\tif n.Tag != \"\" {\n\t\ttag = n.Tag\n\t}\n\tvalue := n.Value\n\tif tag != seqTag && tag != mapTag {\n\t\tif len(value) > 10 {\n\t\t\tvalue = \" `\" + value[:7] + \"...`\"\n\t\t} else {\n\t\t\tvalue = \" `\" + value + \"`\"\n\t\t}\n\t}\n\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: cannot unmarshal %s%s into %s\", n.Line, shortTag(tag), value, out.Type()))\n}\n\nfunc (d *decoder) callUnmarshaler(n *Node, u Unmarshaler) (good bool) {\n\terr := u.UnmarshalYAML(n)\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) callObsoleteUnmarshaler(n *Node, u obsoleteUnmarshaler) (good bool) {\n\tterrlen := len(d.terrors)\n\terr := u.UnmarshalYAML(func(v interface{}) (err error) {\n\t\tdefer handleErr(&err)\n\t\td.unmarshal(n, reflect.ValueOf(v))\n\t\tif len(d.terrors) > terrlen {\n\t\t\tissues := d.terrors[terrlen:]\n\t\t\td.terrors = d.terrors[:terrlen]\n\t\t\treturn &TypeError{issues}\n\t\t}\n\t\treturn nil\n\t})\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\n// d.prepare initializes and dereferences pointers and calls UnmarshalYAML\n// if a value is found to implement it.\n// It returns the initialized and dereferenced out value, whether\n// unmarshalling was already done by UnmarshalYAML, and if so whether\n// its types unmarshalled appropriately.\n//\n// If n holds a null value, prepare returns before doing anything.\nfunc (d *decoder) prepare(n *Node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) {\n\tif n.ShortTag() == nullTag {\n\t\treturn out, false, false\n\t}\n\tagain := true\n\tfor again {\n\t\tagain = false\n\t\tif out.Kind() == reflect.Ptr {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.New(out.Type().Elem()))\n\t\t\t}\n\t\t\tout = out.Elem()\n\t\t\tagain = true\n\t\t}\n\t\tif out.CanAddr() {\n\t\t\touti := out.Addr().Interface()\n\t\t\tif u, ok := outi.(Unmarshaler); ok {\n\t\t\t\tgood = d.callUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t\tif u, ok := outi.(obsoleteUnmarshaler); ok {\n\t\t\t\tgood = d.callObsoleteUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t}\n\t}\n\treturn out, false, false\n}\n\nfunc (d *decoder) fieldByIndex(n *Node, v reflect.Value, index []int) (field reflect.Value) {\n\tif n.ShortTag() == nullTag {\n\t\treturn reflect.Value{}\n\t}\n\tfor _, num := range index {\n\t\tfor {\n\t\t\tif v.Kind() == reflect.Ptr {\n\t\t\t\tif v.IsNil() {\n\t\t\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t\t\t}\n\t\t\t\tv = v.Elem()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tv = v.Field(num)\n\t}\n\treturn v\n}\n\nconst (\n\t// 400,000 decode operations is ~500kb of dense object declarations, or\n\t// ~5kb of dense object declarations with 10000% alias expansion\n\talias_ratio_range_low = 400000\n\n\t// 4,000,000 decode operations is ~5MB of dense object declarations, or\n\t// ~4.5MB of dense object declarations with 10% alias expansion\n\talias_ratio_range_high = 4000000\n\n\t// alias_ratio_range is the range over which we scale allowed alias ratios\n\talias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low)\n)\n\nfunc allowedAliasRatio(decodeCount int) float64 {\n\tswitch {\n\tcase decodeCount <= alias_ratio_range_low:\n\t\t// allow 99% to come from alias expansion for small-to-medium documents\n\t\treturn 0.99\n\tcase decodeCount >= alias_ratio_range_high:\n\t\t// allow 10% to come from alias expansion for very large documents\n\t\treturn 0.10\n\tdefault:\n\t\t// scale smoothly from 99% down to 10% over the range.\n\t\t// this maps to 396,000 - 400,000 allowed alias-driven decodes over the range.\n\t\t// 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps).\n\t\treturn 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range)\n\t}\n}\n\nfunc (d *decoder) unmarshal(n *Node, out reflect.Value) (good bool) {\n\td.decodeCount++\n\tif d.aliasDepth > 0 {\n\t\td.aliasCount++\n\t}\n\tif d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) {\n\t\tfailf(\"document contains excessive aliasing\")\n\t}\n\tif out.Type() == nodeType {\n\t\tout.Set(reflect.ValueOf(n).Elem())\n\t\treturn true\n\t}\n\tswitch n.Kind {\n\tcase DocumentNode:\n\t\treturn d.document(n, out)\n\tcase AliasNode:\n\t\treturn d.alias(n, out)\n\t}\n\tout, unmarshaled, good := d.prepare(n, out)\n\tif unmarshaled {\n\t\treturn good\n\t}\n\tswitch n.Kind {\n\tcase ScalarNode:\n\t\tgood = d.scalar(n, out)\n\tcase MappingNode:\n\t\tgood = d.mapping(n, out)\n\tcase SequenceNode:\n\t\tgood = d.sequence(n, out)\n\tcase 0:\n\t\tif n.IsZero() {\n\t\t\treturn d.null(out)\n\t\t}\n\t\tfallthrough\n\tdefault:\n\t\tfailf(\"cannot decode node with unknown kind %d\", n.Kind)\n\t}\n\treturn good\n}\n\nfunc (d *decoder) document(n *Node, out reflect.Value) (good bool) {\n\tif len(n.Content) == 1 {\n\t\td.doc = n\n\t\td.unmarshal(n.Content[0], out)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *decoder) alias(n *Node, out reflect.Value) (good bool) {\n\tif d.aliases[n] {\n\t\t// TODO this could actually be allowed in some circumstances.\n\t\tfailf(\"anchor '%s' value contains itself\", n.Value)\n\t}\n\td.aliases[n] = true\n\td.aliasDepth++\n\tgood = d.unmarshal(n.Alias, out)\n\td.aliasDepth--\n\tdelete(d.aliases, n)\n\treturn good\n}\n\nvar zeroValue reflect.Value\n\nfunc resetMap(out reflect.Value) {\n\tfor _, k := range out.MapKeys() {\n\t\tout.SetMapIndex(k, zeroValue)\n\t}\n}\n\nfunc (d *decoder) null(out reflect.Value) bool {\n\tif out.CanAddr() {\n\t\tswitch out.Kind() {\n\t\tcase reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice:\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (d *decoder) scalar(n *Node, out reflect.Value) bool {\n\tvar tag string\n\tvar resolved interface{}\n\tif n.indicatedString() {\n\t\ttag = strTag\n\t\tresolved = n.Value\n\t} else {\n\t\ttag, resolved = resolve(n.Tag, n.Value)\n\t\tif tag == binaryTag {\n\t\t\tdata, err := base64.StdEncoding.DecodeString(resolved.(string))\n\t\t\tif err != nil {\n\t\t\t\tfailf(\"!!binary value contains invalid base64 data\")\n\t\t\t}\n\t\t\tresolved = string(data)\n\t\t}\n\t}\n\tif resolved == nil {\n\t\treturn d.null(out)\n\t}\n\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t// We've resolved to exactly the type we want, so use that.\n\t\tout.Set(resolvedv)\n\t\treturn true\n\t}\n\t// Perhaps we can use the value as a TextUnmarshaler to\n\t// set its value.\n\tif out.CanAddr() {\n\t\tu, ok := out.Addr().Interface().(encoding.TextUnmarshaler)\n\t\tif ok {\n\t\t\tvar text []byte\n\t\t\tif tag == binaryTag {\n\t\t\t\ttext = []byte(resolved.(string))\n\t\t\t} else {\n\t\t\t\t// We let any value be unmarshaled into TextUnmarshaler.\n\t\t\t\t// That might be more lax than we'd like, but the\n\t\t\t\t// TextUnmarshaler itself should bowl out any dubious values.\n\t\t\t\ttext = []byte(n.Value)\n\t\t\t}\n\t\t\terr := u.UnmarshalText(text)\n\t\t\tif err != nil {\n\t\t\t\tfail(err)\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.String:\n\t\tif tag == binaryTag {\n\t\t\tout.SetString(resolved.(string))\n\t\t\treturn true\n\t\t}\n\t\tout.SetString(n.Value)\n\t\treturn true\n\tcase reflect.Interface:\n\t\tout.Set(reflect.ValueOf(resolved))\n\t\treturn true\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t// This used to work in v2, but it's very unfriendly.\n\t\tisDuration := out.Type() == durationType\n\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif !isDuration && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif !isDuration && !out.OverflowInt(resolved) {\n\t\t\t\tout.SetInt(resolved)\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase string:\n\t\t\tif out.Type() == durationType {\n\t\t\t\td, err := time.ParseDuration(resolved)\n\t\t\t\tif err == nil {\n\t\t\t\t\tout.SetInt(int64(d))\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Bool:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase bool:\n\t\t\tout.SetBool(resolved)\n\t\t\treturn true\n\t\tcase string:\n\t\t\t// This offers some compatibility with the 1.1 spec (https://yaml.org/type/bool.html).\n\t\t\t// It only works if explicitly attempting to unmarshal into a typed bool value.\n\t\t\tswitch resolved {\n\t\t\tcase \"y\", \"Y\", \"yes\", \"Yes\", \"YES\", \"on\", \"On\", \"ON\":\n\t\t\t\tout.SetBool(true)\n\t\t\t\treturn true\n\t\t\tcase \"n\", \"N\", \"no\", \"No\", \"NO\", \"off\", \"Off\", \"OFF\":\n\t\t\t\tout.SetBool(false)\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase int64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase uint64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase float64:\n\t\t\tout.SetFloat(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Struct:\n\t\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t\tout.Set(resolvedv)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Ptr:\n\t\tpanic(\"yaml internal error: please report the issue\")\n\t}\n\td.terror(n, tag, out)\n\treturn false\n}\n\nfunc settableValueOf(i interface{}) reflect.Value {\n\tv := reflect.ValueOf(i)\n\tsv := reflect.New(v.Type()).Elem()\n\tsv.Set(v)\n\treturn sv\n}\n\nfunc (d *decoder) sequence(n *Node, out reflect.Value) (good bool) {\n\tl := len(n.Content)\n\n\tvar iface reflect.Value\n\tswitch out.Kind() {\n\tcase reflect.Slice:\n\t\tout.Set(reflect.MakeSlice(out.Type(), l, l))\n\tcase reflect.Array:\n\t\tif l != out.Len() {\n\t\t\tfailf(\"invalid array: want %d elements but got %d\", out.Len(), l)\n\t\t}\n\tcase reflect.Interface:\n\t\t// No type hints. Will have to use a generic sequence.\n\t\tiface = out\n\t\tout = settableValueOf(make([]interface{}, l))\n\tdefault:\n\t\td.terror(n, seqTag, out)\n\t\treturn false\n\t}\n\tet := out.Type().Elem()\n\n\tj := 0\n\tfor i := 0; i < l; i++ {\n\t\te := reflect.New(et).Elem()\n\t\tif ok := d.unmarshal(n.Content[i], e); ok {\n\t\t\tout.Index(j).Set(e)\n\t\t\tj++\n\t\t}\n\t}\n\tif out.Kind() != reflect.Array {\n\t\tout.Set(out.Slice(0, j))\n\t}\n\tif iface.IsValid() {\n\t\tiface.Set(out)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mapping(n *Node, out reflect.Value) (good bool) {\n\tl := len(n.Content)\n\tif d.uniqueKeys {\n\t\tnerrs := len(d.terrors)\n\t\tfor i := 0; i < l; i += 2 {\n\t\t\tni := n.Content[i]\n\t\t\tfor j := i + 2; j < l; j += 2 {\n\t\t\t\tnj := n.Content[j]\n\t\t\t\tif ni.Kind == nj.Kind && ni.Value == nj.Value {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: mapping key %#v already defined at line %d\", nj.Line, nj.Value, ni.Line))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif len(d.terrors) > nerrs {\n\t\t\treturn false\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.Struct:\n\t\treturn d.mappingStruct(n, out)\n\tcase reflect.Map:\n\t\t// okay\n\tcase reflect.Interface:\n\t\tiface := out\n\t\tif isStringMap(n) {\n\t\t\tout = reflect.MakeMap(d.stringMapType)\n\t\t} else {\n\t\t\tout = reflect.MakeMap(d.generalMapType)\n\t\t}\n\t\tiface.Set(out)\n\tdefault:\n\t\td.terror(n, mapTag, out)\n\t\treturn false\n\t}\n\n\toutt := out.Type()\n\tkt := outt.Key()\n\tet := outt.Elem()\n\n\tstringMapType := d.stringMapType\n\tgeneralMapType := d.generalMapType\n\tif outt.Elem() == ifaceType {\n\t\tif outt.Key().Kind() == reflect.String {\n\t\t\td.stringMapType = outt\n\t\t} else if outt.Key() == ifaceType {\n\t\t\td.generalMapType = outt\n\t\t}\n\t}\n\n\tmergedFields := d.mergedFields\n\td.mergedFields = nil\n\n\tvar mergeNode *Node\n\n\tmapIsNew := false\n\tif out.IsNil() {\n\t\tout.Set(reflect.MakeMap(outt))\n\t\tmapIsNew = true\n\t}\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.Content[i]) {\n\t\t\tmergeNode = n.Content[i+1]\n\t\t\tcontinue\n\t\t}\n\t\tk := reflect.New(kt).Elem()\n\t\tif d.unmarshal(n.Content[i], k) {\n\t\t\tif mergedFields != nil {\n\t\t\t\tki := k.Interface()\n\t\t\t\tif mergedFields[ki] {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tmergedFields[ki] = true\n\t\t\t}\n\t\t\tkkind := k.Kind()\n\t\t\tif kkind == reflect.Interface {\n\t\t\t\tkkind = k.Elem().Kind()\n\t\t\t}\n\t\t\tif kkind == reflect.Map || kkind == reflect.Slice {\n\t\t\t\tfailf(\"invalid map key: %#v\", k.Interface())\n\t\t\t}\n\t\t\te := reflect.New(et).Elem()\n\t\t\tif d.unmarshal(n.Content[i+1], e) || n.Content[i+1].ShortTag() == nullTag && (mapIsNew || !out.MapIndex(k).IsValid()) {\n\t\t\t\tout.SetMapIndex(k, e)\n\t\t\t}\n\t\t}\n\t}\n\n\td.mergedFields = mergedFields\n\tif mergeNode != nil {\n\t\td.merge(n, mergeNode, out)\n\t}\n\n\td.stringMapType = stringMapType\n\td.generalMapType = generalMapType\n\treturn true\n}\n\nfunc isStringMap(n *Node) bool {\n\tif n.Kind != MappingNode {\n\t\treturn false\n\t}\n\tl := len(n.Content)\n\tfor i := 0; i < l; i += 2 {\n\t\tshortTag := n.Content[i].ShortTag()\n\t\tif shortTag != strTag && shortTag != mergeTag {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mappingStruct(n *Node, out reflect.Value) (good bool) {\n\tsinfo, err := getStructInfo(out.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tvar inlineMap reflect.Value\n\tvar elemType reflect.Type\n\tif sinfo.InlineMap != -1 {\n\t\tinlineMap = out.Field(sinfo.InlineMap)\n\t\telemType = inlineMap.Type().Elem()\n\t}\n\n\tfor _, index := range sinfo.InlineUnmarshalers {\n\t\tfield := d.fieldByIndex(n, out, index)\n\t\td.prepare(n, field)\n\t}\n\n\tmergedFields := d.mergedFields\n\td.mergedFields = nil\n\tvar mergeNode *Node\n\tvar doneFields []bool\n\tif d.uniqueKeys {\n\t\tdoneFields = make([]bool, len(sinfo.FieldsList))\n\t}\n\tname := settableValueOf(\"\")\n\tl := len(n.Content)\n\tfor i := 0; i < l; i += 2 {\n\t\tni := n.Content[i]\n\t\tif isMerge(ni) {\n\t\t\tmergeNode = n.Content[i+1]\n\t\t\tcontinue\n\t\t}\n\t\tif !d.unmarshal(ni, name) {\n\t\t\tcontinue\n\t\t}\n\t\tsname := name.String()\n\t\tif mergedFields != nil {\n\t\t\tif mergedFields[sname] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmergedFields[sname] = true\n\t\t}\n\t\tif info, ok := sinfo.FieldsMap[sname]; ok {\n\t\t\tif d.uniqueKeys {\n\t\t\t\tif doneFields[info.Id] {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s already set in type %s\", ni.Line, name.String(), out.Type()))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdoneFields[info.Id] = true\n\t\t\t}\n\t\t\tvar field reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tfield = out.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tfield = d.fieldByIndex(n, out, info.Inline)\n\t\t\t}\n\t\t\td.unmarshal(n.Content[i+1], field)\n\t\t} else if sinfo.InlineMap != -1 {\n\t\t\tif inlineMap.IsNil() {\n\t\t\t\tinlineMap.Set(reflect.MakeMap(inlineMap.Type()))\n\t\t\t}\n\t\t\tvalue := reflect.New(elemType).Elem()\n\t\t\td.unmarshal(n.Content[i+1], value)\n\t\t\tinlineMap.SetMapIndex(name, value)\n\t\t} else if d.knownFields {\n\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s not found in type %s\", ni.Line, name.String(), out.Type()))\n\t\t}\n\t}\n\n\td.mergedFields = mergedFields\n\tif mergeNode != nil {\n\t\td.merge(n, mergeNode, out)\n\t}\n\treturn true\n}\n\nfunc failWantMap() {\n\tfailf(\"map merge requires map or sequence of maps as the value\")\n}\n\nfunc (d *decoder) merge(parent *Node, merge *Node, out reflect.Value) {\n\tmergedFields := d.mergedFields\n\tif mergedFields == nil {\n\t\td.mergedFields = make(map[interface{}]bool)\n\t\tfor i := 0; i < len(parent.Content); i += 2 {\n\t\t\tk := reflect.New(ifaceType).Elem()\n\t\t\tif d.unmarshal(parent.Content[i], k) {\n\t\t\t\td.mergedFields[k.Interface()] = true\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch merge.Kind {\n\tcase MappingNode:\n\t\td.unmarshal(merge, out)\n\tcase AliasNode:\n\t\tif merge.Alias != nil && merge.Alias.Kind != MappingNode {\n\t\t\tfailWantMap()\n\t\t}\n\t\td.unmarshal(merge, out)\n\tcase SequenceNode:\n\t\tfor i := 0; i < len(merge.Content); i++ {\n\t\t\tni := merge.Content[i]\n\t\t\tif ni.Kind == AliasNode {\n\t\t\t\tif ni.Alias != nil && ni.Alias.Kind != MappingNode {\n\t\t\t\t\tfailWantMap()\n\t\t\t\t}\n\t\t\t} else if ni.Kind != MappingNode {\n\t\t\t\tfailWantMap()\n\t\t\t}\n\t\t\td.unmarshal(ni, out)\n\t\t}\n\tdefault:\n\t\tfailWantMap()\n\t}\n\n\td.mergedFields = mergedFields\n}\n\nfunc isMerge(n *Node) bool {\n\treturn n.Kind == ScalarNode && n.Value == \"<<\" && (n.Tag == \"\" || n.Tag == \"!\" || shortTag(n.Tag) == mergeTag)\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/emitterc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Flush the buffer if needed.\nfunc flush(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) {\n\t\treturn yaml_emitter_flush(emitter)\n\t}\n\treturn true\n}\n\n// Put a character to the output buffer.\nfunc put(emitter *yaml_emitter_t, value byte) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.buffer[emitter.buffer_pos] = value\n\temitter.buffer_pos++\n\temitter.column++\n\treturn true\n}\n\n// Put a line break to the output buffer.\nfunc put_break(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tswitch emitter.line_break {\n\tcase yaml_CR_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\r'\n\t\temitter.buffer_pos += 1\n\tcase yaml_LN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\n'\n\t\temitter.buffer_pos += 1\n\tcase yaml_CRLN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos+0] = '\\r'\n\t\temitter.buffer[emitter.buffer_pos+1] = '\\n'\n\t\temitter.buffer_pos += 2\n\tdefault:\n\t\tpanic(\"unknown line break setting\")\n\t}\n\tif emitter.column == 0 {\n\t\temitter.space_above = true\n\t}\n\temitter.column = 0\n\temitter.line++\n\t// [Go] Do this here and below and drop from everywhere else (see commented lines).\n\temitter.indention = true\n\treturn true\n}\n\n// Copy a character from a string into buffer.\nfunc write(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tp := emitter.buffer_pos\n\tw := width(s[*i])\n\tswitch w {\n\tcase 4:\n\t\temitter.buffer[p+3] = s[*i+3]\n\t\tfallthrough\n\tcase 3:\n\t\temitter.buffer[p+2] = s[*i+2]\n\t\tfallthrough\n\tcase 2:\n\t\temitter.buffer[p+1] = s[*i+1]\n\t\tfallthrough\n\tcase 1:\n\t\temitter.buffer[p+0] = s[*i+0]\n\tdefault:\n\t\tpanic(\"unknown character width\")\n\t}\n\temitter.column++\n\temitter.buffer_pos += w\n\t*i += w\n\treturn true\n}\n\n// Write a whole string into buffer.\nfunc write_all(emitter *yaml_emitter_t, s []byte) bool {\n\tfor i := 0; i < len(s); {\n\t\tif !write(emitter, s, &i) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Copy a line break character from a string into buffer.\nfunc write_break(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif s[*i] == '\\n' {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t\t*i++\n\t} else {\n\t\tif !write(emitter, s, i) {\n\t\t\treturn false\n\t\t}\n\t\tif emitter.column == 0 {\n\t\t\temitter.space_above = true\n\t\t}\n\t\temitter.column = 0\n\t\temitter.line++\n\t\t// [Go] Do this here and above and drop from everywhere else (see commented lines).\n\t\temitter.indention = true\n\t}\n\treturn true\n}\n\n// Set an emitter error and return false.\nfunc yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_EMITTER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Emit an event.\nfunc yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.events = append(emitter.events, *event)\n\tfor !yaml_emitter_need_more_events(emitter) {\n\t\tevent := &emitter.events[emitter.events_head]\n\t\tif !yaml_emitter_analyze_event(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_state_machine(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tyaml_event_delete(event)\n\t\temitter.events_head++\n\t}\n\treturn true\n}\n\n// Check if we need to accumulate more events before emitting.\n//\n// We accumulate extra\n//  - 1 event for DOCUMENT-START\n//  - 2 events for SEQUENCE-START\n//  - 3 events for MAPPING-START\n//\nfunc yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool {\n\tif emitter.events_head == len(emitter.events) {\n\t\treturn true\n\t}\n\tvar accumulate int\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\taccumulate = 1\n\t\tbreak\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\taccumulate = 2\n\t\tbreak\n\tcase yaml_MAPPING_START_EVENT:\n\t\taccumulate = 3\n\t\tbreak\n\tdefault:\n\t\treturn false\n\t}\n\tif len(emitter.events)-emitter.events_head > accumulate {\n\t\treturn false\n\t}\n\tvar level int\n\tfor i := emitter.events_head; i < len(emitter.events); i++ {\n\t\tswitch emitter.events[i].typ {\n\t\tcase yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT:\n\t\t\tlevel++\n\t\tcase yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT:\n\t\t\tlevel--\n\t\t}\n\t\tif level == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Append a directive to the directives stack.\nfunc yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool {\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\tif bytes.Equal(value.handle, emitter.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"duplicate %TAG directive\")\n\t\t}\n\t}\n\n\t// [Go] Do we actually need to copy this given garbage collection\n\t// and the lack of deallocating destructors?\n\ttag_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(tag_copy.handle, value.handle)\n\tcopy(tag_copy.prefix, value.prefix)\n\temitter.tag_directives = append(emitter.tag_directives, tag_copy)\n\treturn true\n}\n\n// Increase the indentation level.\nfunc yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool {\n\temitter.indents = append(emitter.indents, emitter.indent)\n\tif emitter.indent < 0 {\n\t\tif flow {\n\t\t\temitter.indent = emitter.best_indent\n\t\t} else {\n\t\t\temitter.indent = 0\n\t\t}\n\t} else if !indentless {\n\t\t// [Go] This was changed so that indentations are more regular.\n\t\tif emitter.states[len(emitter.states)-1] == yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE {\n\t\t\t// The first indent inside a sequence will just skip the \"- \" indicator.\n\t\t\temitter.indent += 2\n\t\t} else {\n\t\t\t// Everything else aligns to the chosen indentation.\n\t\t\temitter.indent = emitter.best_indent*((emitter.indent+emitter.best_indent)/emitter.best_indent)\n\t\t}\n\t}\n\treturn true\n}\n\n// State dispatcher.\nfunc yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tswitch emitter.state {\n\tdefault:\n\tcase yaml_EMIT_STREAM_START_STATE:\n\t\treturn yaml_emitter_emit_stream_start(emitter, event)\n\n\tcase yaml_EMIT_FIRST_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, true)\n\n\tcase yaml_EMIT_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, false)\n\n\tcase yaml_EMIT_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_emitter_emit_document_content(emitter, event)\n\n\tcase yaml_EMIT_DOCUMENT_END_STATE:\n\t\treturn yaml_emitter_emit_document_end(emitter, event)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, true, false)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false, true)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, true, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_END_STATE:\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected nothing after STREAM-END\")\n\t}\n\tpanic(\"invalid emitter state\")\n}\n\n// Expect STREAM-START.\nfunc yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_STREAM_START_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected STREAM-START\")\n\t}\n\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\temitter.encoding = event.encoding\n\t\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\t\temitter.encoding = yaml_UTF8_ENCODING\n\t\t}\n\t}\n\tif emitter.best_indent < 2 || emitter.best_indent > 9 {\n\t\temitter.best_indent = 2\n\t}\n\tif emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 {\n\t\temitter.best_width = 80\n\t}\n\tif emitter.best_width < 0 {\n\t\temitter.best_width = 1<<31 - 1\n\t}\n\tif emitter.line_break == yaml_ANY_BREAK {\n\t\temitter.line_break = yaml_LN_BREAK\n\t}\n\n\temitter.indent = -1\n\temitter.line = 0\n\temitter.column = 0\n\temitter.whitespace = true\n\temitter.indention = true\n\temitter.space_above = true\n\temitter.foot_indent = -1\n\n\tif emitter.encoding != yaml_UTF8_ENCODING {\n\t\tif !yaml_emitter_write_bom(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE\n\treturn true\n}\n\n// Expect DOCUMENT-START or STREAM-END.\nfunc yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\n\tif event.typ == yaml_DOCUMENT_START_EVENT {\n\n\t\tif event.version_directive != nil {\n\t\t\tif !yaml_emitter_analyze_version_directive(emitter, event.version_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\tif !yaml_emitter_analyze_tag_directive(emitter, tag_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(default_tag_directives); i++ {\n\t\t\ttag_directive := &default_tag_directives[i]\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, true) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\timplicit := event.implicit\n\t\tif !first || emitter.canonical {\n\t\t\timplicit = false\n\t\t}\n\n\t\tif emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif event.version_directive != nil {\n\t\t\timplicit = false\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%YAML\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"1.1\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif len(event.tag_directives) > 0 {\n\t\t\timplicit = false\n\t\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%TAG\"), true, false, false) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif yaml_emitter_check_empty_document(emitter) {\n\t\t\timplicit = false\n\t\t}\n\t\tif !implicit {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"---\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif emitter.canonical || true {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif len(emitter.head_comment) > 0 {\n\t\t\tif !yaml_emitter_process_head_comment(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !put_break(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\temitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE\n\t\treturn true\n\t}\n\n\tif event.typ == yaml_STREAM_END_EVENT {\n\t\tif emitter.open_ended {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_flush(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = yaml_EMIT_END_STATE\n\t\treturn true\n\t}\n\n\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-START or STREAM-END\")\n}\n\n// Expect the root node.\nfunc yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE)\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, true, false, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect DOCUMENT-END.\nfunc yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_DOCUMENT_END_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-END\")\n\t}\n\t// [Go] Force document foot separation.\n\temitter.foot_indent = 0\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\temitter.foot_indent = -1\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !event.implicit {\n\t\t// [Go] Allocate the slice elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.state = yaml_EMIT_DOCUMENT_START_STATE\n\temitter.tag_directives = emitter.tag_directives[:0]\n\treturn true\n}\n\n// Expect a flow item node.\nfunc yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\tif emitter.canonical && !first && !trail {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.column == 0 || emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\n\t\treturn true\n\t}\n\n\tif !first && !trail {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif emitter.column == 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE)\n\t} else {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE)\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, false, true, false, false) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a flow key node.\nfunc yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\tif (emitter.canonical || len(emitter.head_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0) && !first && !trail {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_process_head_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\n\tif !first && !trail {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\n\tif emitter.column == 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !emitter.canonical && yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a flow value node.\nfunc yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE)\n\t} else {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE)\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, false, false, true, false) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a block item node.\nfunc yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE)\n\tif !yaml_emitter_emit_node(emitter, event, false, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a block key node.\nfunc yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment) > 0 {\n\t\t// [Go] A line comment was provided for the key. That's unusual as the\n\t\t//      scanner associates line comments with the value. Either way,\n\t\t//      save the line comment and render it appropriately later.\n\t\temitter.key_line_comment = emitter.line_comment\n\t\temitter.line_comment = nil\n\t}\n\tif yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block value node.\nfunc yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.key_line_comment) > 0 {\n\t\t// [Go] Line comments are generally associated with the value, but when there's\n\t\t//      no value on the same line as a mapping key they end up attached to the\n\t\t//      key itself.\n\t\tif event.typ == yaml_SCALAR_EVENT {\n\t\t\tif len(emitter.line_comment) == 0 {\n\t\t\t\t// A scalar is coming and it has no line comments by itself yet,\n\t\t\t\t// so just let it handle the line comment as usual. If it has a\n\t\t\t\t// line comment, we can't have both so the one from the key is lost.\n\t\t\t\temitter.line_comment = emitter.key_line_comment\n\t\t\t\temitter.key_line_comment = nil\n\t\t\t}\n\t\t} else if event.sequence_style() != yaml_FLOW_SEQUENCE_STYLE && (event.typ == yaml_MAPPING_START_EVENT || event.typ == yaml_SEQUENCE_START_EVENT) {\n\t\t\t// An indented block follows, so write the comment right now.\n\t\t\temitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment\n\t\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE)\n\tif !yaml_emitter_emit_node(emitter, event, false, false, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_silent_nil_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\treturn event.typ == yaml_SCALAR_EVENT && event.implicit && !emitter.canonical && len(emitter.scalar_data.value) == 0\n}\n\n// Expect a node.\nfunc yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t,\n\troot bool, sequence bool, mapping bool, simple_key bool) bool {\n\n\temitter.root_context = root\n\temitter.sequence_context = sequence\n\temitter.mapping_context = mapping\n\temitter.simple_key_context = simple_key\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\treturn yaml_emitter_emit_alias(emitter, event)\n\tcase yaml_SCALAR_EVENT:\n\t\treturn yaml_emitter_emit_scalar(emitter, event)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn yaml_emitter_emit_sequence_start(emitter, event)\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn yaml_emitter_emit_mapping_start(emitter, event)\n\tdefault:\n\t\treturn yaml_emitter_set_emitter_error(emitter,\n\t\t\tfmt.Sprintf(\"expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v\", event.typ))\n\t}\n}\n\n// Expect ALIAS.\nfunc yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SCALAR.\nfunc yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_select_scalar_style(emitter, event) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_scalar(emitter) {\n\t\treturn false\n\t}\n\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SEQUENCE-START.\nfunc yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE ||\n\t\tyaml_emitter_check_empty_sequence(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE\n\t}\n\treturn true\n}\n\n// Expect MAPPING-START.\nfunc yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE ||\n\t\tyaml_emitter_check_empty_mapping(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE\n\t}\n\treturn true\n}\n\n// Check if the document content is an empty scalar.\nfunc yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool {\n\treturn false // [Go] Huh?\n}\n\n// Check if the next events represent an empty sequence.\nfunc yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT\n}\n\n// Check if the next events represent an empty mapping.\nfunc yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT\n}\n\n// Check if the next node can be expressed as a simple key.\nfunc yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool {\n\tlength := 0\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tlength += len(emitter.anchor_data.anchor)\n\tcase yaml_SCALAR_EVENT:\n\t\tif emitter.scalar_data.multiline {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix) +\n\t\t\tlen(emitter.scalar_data.value)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif !yaml_emitter_check_empty_sequence(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif !yaml_emitter_check_empty_mapping(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tdefault:\n\t\treturn false\n\t}\n\treturn length <= 128\n}\n\n// Determine an acceptable scalar style.\nfunc yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\tno_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0\n\tif no_tag && !event.implicit && !event.quoted_implicit {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"neither tag nor implicit flags are specified\")\n\t}\n\n\tstyle := event.scalar_style()\n\tif style == yaml_ANY_SCALAR_STYLE {\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\t}\n\tif emitter.canonical {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\tif emitter.simple_key_context && emitter.scalar_data.multiline {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\n\tif style == yaml_PLAIN_SCALAR_STYLE {\n\t\tif emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed ||\n\t\t\temitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif no_tag && !event.implicit {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_SINGLE_QUOTED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.single_quoted_allowed {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\n\tif no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE {\n\t\temitter.tag_data.handle = []byte{'!'}\n\t}\n\temitter.scalar_data.style = style\n\treturn true\n}\n\n// Write an anchor.\nfunc yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool {\n\tif emitter.anchor_data.anchor == nil {\n\t\treturn true\n\t}\n\tc := []byte{'&'}\n\tif emitter.anchor_data.alias {\n\t\tc[0] = '*'\n\t}\n\tif !yaml_emitter_write_indicator(emitter, c, true, false, false) {\n\t\treturn false\n\t}\n\treturn yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor)\n}\n\n// Write a tag.\nfunc yaml_emitter_process_tag(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 {\n\t\treturn true\n\t}\n\tif len(emitter.tag_data.handle) > 0 {\n\t\tif !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) {\n\t\t\treturn false\n\t\t}\n\t\tif len(emitter.tag_data.suffix) > 0 {\n\t\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// [Go] Allocate these slices elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"!<\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Write a scalar.\nfunc yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool {\n\tswitch emitter.scalar_data.style {\n\tcase yaml_PLAIN_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_SINGLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_DOUBLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_LITERAL_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value)\n\n\tcase yaml_FOLDED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value)\n\t}\n\tpanic(\"unknown scalar style\")\n}\n\n// Write a head comment.\nfunc yaml_emitter_process_head_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_comment(emitter, emitter.tail_comment) {\n\t\t\treturn false\n\t\t}\n\t\temitter.tail_comment = emitter.tail_comment[:0]\n\t\temitter.foot_indent = emitter.indent\n\t\tif emitter.foot_indent < 0 {\n\t\t\temitter.foot_indent = 0\n\t\t}\n\t}\n\n\tif len(emitter.head_comment) == 0 {\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.head_comment) {\n\t\treturn false\n\t}\n\temitter.head_comment = emitter.head_comment[:0]\n\treturn true\n}\n\n// Write an line comment.\nfunc yaml_emitter_process_line_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.line_comment) == 0 {\n\t\treturn true\n\t}\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.line_comment) {\n\t\treturn false\n\t}\n\temitter.line_comment = emitter.line_comment[:0]\n\treturn true\n}\n\n// Write a foot comment.\nfunc yaml_emitter_process_foot_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.foot_comment) == 0 {\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.foot_comment) {\n\t\treturn false\n\t}\n\temitter.foot_comment = emitter.foot_comment[:0]\n\temitter.foot_indent = emitter.indent\n\tif emitter.foot_indent < 0 {\n\t\temitter.foot_indent = 0\n\t}\n\treturn true\n}\n\n// Check if a %YAML directive is valid.\nfunc yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool {\n\tif version_directive.major != 1 || version_directive.minor != 1 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"incompatible %YAML directive\")\n\t}\n\treturn true\n}\n\n// Check if a %TAG directive is valid.\nfunc yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool {\n\thandle := tag_directive.handle\n\tprefix := tag_directive.prefix\n\tif len(handle) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must not be empty\")\n\t}\n\tif handle[0] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must start with '!'\")\n\t}\n\tif handle[len(handle)-1] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must end with '!'\")\n\t}\n\tfor i := 1; i < len(handle)-1; i += width(handle[i]) {\n\t\tif !is_alpha(handle, i) {\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must contain alphanumerical characters only\")\n\t\t}\n\t}\n\tif len(prefix) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag prefix must not be empty\")\n\t}\n\treturn true\n}\n\n// Check if an anchor is valid.\nfunc yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool {\n\tif len(anchor) == 0 {\n\t\tproblem := \"anchor value must not be empty\"\n\t\tif alias {\n\t\t\tproblem = \"alias value must not be empty\"\n\t\t}\n\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t}\n\tfor i := 0; i < len(anchor); i += width(anchor[i]) {\n\t\tif !is_alpha(anchor, i) {\n\t\t\tproblem := \"anchor value must contain alphanumerical characters only\"\n\t\t\tif alias {\n\t\t\t\tproblem = \"alias value must contain alphanumerical characters only\"\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t\t}\n\t}\n\temitter.anchor_data.anchor = anchor\n\temitter.anchor_data.alias = alias\n\treturn true\n}\n\n// Check if a tag is valid.\nfunc yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool {\n\tif len(tag) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag value must not be empty\")\n\t}\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\ttag_directive := &emitter.tag_directives[i]\n\t\tif bytes.HasPrefix(tag, tag_directive.prefix) {\n\t\t\temitter.tag_data.handle = tag_directive.handle\n\t\t\temitter.tag_data.suffix = tag[len(tag_directive.prefix):]\n\t\t\treturn true\n\t\t}\n\t}\n\temitter.tag_data.suffix = tag\n\treturn true\n}\n\n// Check if a scalar is valid.\nfunc yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tvar (\n\t\tblock_indicators   = false\n\t\tflow_indicators    = false\n\t\tline_breaks        = false\n\t\tspecial_characters = false\n\t\ttab_characters     = false\n\n\t\tleading_space  = false\n\t\tleading_break  = false\n\t\ttrailing_space = false\n\t\ttrailing_break = false\n\t\tbreak_space    = false\n\t\tspace_break    = false\n\n\t\tpreceded_by_whitespace = false\n\t\tfollowed_by_whitespace = false\n\t\tprevious_space         = false\n\t\tprevious_break         = false\n\t)\n\n\temitter.scalar_data.value = value\n\n\tif len(value) == 0 {\n\t\temitter.scalar_data.multiline = false\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = true\n\t\temitter.scalar_data.single_quoted_allowed = true\n\t\temitter.scalar_data.block_allowed = false\n\t\treturn true\n\t}\n\n\tif len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) {\n\t\tblock_indicators = true\n\t\tflow_indicators = true\n\t}\n\n\tpreceded_by_whitespace = true\n\tfor i, w := 0, 0; i < len(value); i += w {\n\t\tw = width(value[i])\n\t\tfollowed_by_whitespace = i+w >= len(value) || is_blank(value, i+w)\n\n\t\tif i == 0 {\n\t\t\tswitch value[i] {\n\t\t\tcase '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\\'', '\"', '%', '@', '`':\n\t\t\t\tflow_indicators = true\n\t\t\t\tblock_indicators = true\n\t\t\tcase '?', ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '-':\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tswitch value[i] {\n\t\t\tcase ',', '?', '[', ']', '{', '}':\n\t\t\t\tflow_indicators = true\n\t\t\tcase ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '#':\n\t\t\t\tif preceded_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif value[i] == '\\t' {\n\t\t\ttab_characters = true\n\t\t} else if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode {\n\t\t\tspecial_characters = true\n\t\t}\n\t\tif is_space(value, i) {\n\t\t\tif i == 0 {\n\t\t\t\tleading_space = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_space = true\n\t\t\t}\n\t\t\tif previous_break {\n\t\t\t\tbreak_space = true\n\t\t\t}\n\t\t\tprevious_space = true\n\t\t\tprevious_break = false\n\t\t} else if is_break(value, i) {\n\t\t\tline_breaks = true\n\t\t\tif i == 0 {\n\t\t\t\tleading_break = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_break = true\n\t\t\t}\n\t\t\tif previous_space {\n\t\t\t\tspace_break = true\n\t\t\t}\n\t\t\tprevious_space = false\n\t\t\tprevious_break = true\n\t\t} else {\n\t\t\tprevious_space = false\n\t\t\tprevious_break = false\n\t\t}\n\n\t\t// [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition.\n\t\tpreceded_by_whitespace = is_blankz(value, i)\n\t}\n\n\temitter.scalar_data.multiline = line_breaks\n\temitter.scalar_data.flow_plain_allowed = true\n\temitter.scalar_data.block_plain_allowed = true\n\temitter.scalar_data.single_quoted_allowed = true\n\temitter.scalar_data.block_allowed = true\n\n\tif leading_space || leading_break || trailing_space || trailing_break {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif trailing_space {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif break_space {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || tab_characters || special_characters {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || special_characters {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif line_breaks {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif flow_indicators {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t}\n\tif block_indicators {\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\treturn true\n}\n\n// Check if the event data is valid.\nfunc yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\temitter.anchor_data.anchor = nil\n\temitter.tag_data.handle = nil\n\temitter.tag_data.suffix = nil\n\temitter.scalar_data.value = nil\n\n\tif len(event.head_comment) > 0 {\n\t\temitter.head_comment = event.head_comment\n\t}\n\tif len(event.line_comment) > 0 {\n\t\temitter.line_comment = event.line_comment\n\t}\n\tif len(event.foot_comment) > 0 {\n\t\temitter.foot_comment = event.foot_comment\n\t}\n\tif len(event.tail_comment) > 0 {\n\t\temitter.tail_comment = event.tail_comment\n\t}\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, true) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SCALAR_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_analyze_scalar(emitter, event.value) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// Write the BOM character.\nfunc yaml_emitter_write_bom(emitter *yaml_emitter_t) bool {\n\tif !flush(emitter) {\n\t\treturn false\n\t}\n\tpos := emitter.buffer_pos\n\temitter.buffer[pos+0] = '\\xEF'\n\temitter.buffer[pos+1] = '\\xBB'\n\temitter.buffer[pos+2] = '\\xBF'\n\temitter.buffer_pos += 3\n\treturn true\n}\n\nfunc yaml_emitter_write_indent(emitter *yaml_emitter_t) bool {\n\tindent := emitter.indent\n\tif indent < 0 {\n\t\tindent = 0\n\t}\n\tif !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif emitter.foot_indent == indent {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor emitter.column < indent {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.whitespace = true\n\t//emitter.indention = true\n\temitter.space_above = false\n\temitter.foot_indent = -1\n\treturn true\n}\n\nfunc yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, indicator) {\n\t\treturn false\n\t}\n\temitter.whitespace = is_whitespace\n\temitter.indention = (emitter.indention && is_indention)\n\temitter.open_ended = false\n\treturn true\n}\n\nfunc yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool {\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor i := 0; i < len(value); {\n\t\tvar must_write bool\n\t\tswitch value[i] {\n\t\tcase ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\\'', '(', ')', '[', ']':\n\t\t\tmust_write = true\n\t\tdefault:\n\t\t\tmust_write = is_alpha(value, i)\n\t\t}\n\t\tif must_write {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\tw := width(value[i])\n\t\t\tfor k := 0; k < w; k++ {\n\t\t\t\toctet := value[i]\n\t\t\t\ti++\n\t\t\t\tif !put(emitter, '%') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc := octet >> 4\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc = octet & 0x0f\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tif len(value) > 0 && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\tif len(value) > 0 {\n\t\temitter.whitespace = false\n\t}\n\temitter.indention = false\n\tif emitter.root_context {\n\t\temitter.open_ended = true\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, true, false, false) {\n\t\treturn false\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif value[i] == '\\'' {\n\t\t\t\tif !put(emitter, '\\'') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tspaces := false\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, true, false, false) {\n\t\treturn false\n\t}\n\n\tfor i := 0; i < len(value); {\n\t\tif !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) ||\n\t\t\tis_bom(value, i) || is_break(value, i) ||\n\t\t\tvalue[i] == '\"' || value[i] == '\\\\' {\n\n\t\t\toctet := value[i]\n\n\t\t\tvar w int\n\t\t\tvar v rune\n\t\t\tswitch {\n\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\tw, v = 1, rune(octet&0x7F)\n\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\tw, v = 2, rune(octet&0x1F)\n\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\tw, v = 3, rune(octet&0x0F)\n\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\tw, v = 4, rune(octet&0x07)\n\t\t\t}\n\t\t\tfor k := 1; k < w; k++ {\n\t\t\t\toctet = value[i+k]\n\t\t\t\tv = (v << 6) + (rune(octet) & 0x3F)\n\t\t\t}\n\t\t\ti += w\n\n\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tvar ok bool\n\t\t\tswitch v {\n\t\t\tcase 0x00:\n\t\t\t\tok = put(emitter, '0')\n\t\t\tcase 0x07:\n\t\t\t\tok = put(emitter, 'a')\n\t\t\tcase 0x08:\n\t\t\t\tok = put(emitter, 'b')\n\t\t\tcase 0x09:\n\t\t\t\tok = put(emitter, 't')\n\t\t\tcase 0x0A:\n\t\t\t\tok = put(emitter, 'n')\n\t\t\tcase 0x0b:\n\t\t\t\tok = put(emitter, 'v')\n\t\t\tcase 0x0c:\n\t\t\t\tok = put(emitter, 'f')\n\t\t\tcase 0x0d:\n\t\t\t\tok = put(emitter, 'r')\n\t\t\tcase 0x1b:\n\t\t\t\tok = put(emitter, 'e')\n\t\t\tcase 0x22:\n\t\t\t\tok = put(emitter, '\"')\n\t\t\tcase 0x5c:\n\t\t\t\tok = put(emitter, '\\\\')\n\t\t\tcase 0x85:\n\t\t\t\tok = put(emitter, 'N')\n\t\t\tcase 0xA0:\n\t\t\t\tok = put(emitter, '_')\n\t\t\tcase 0x2028:\n\t\t\t\tok = put(emitter, 'L')\n\t\t\tcase 0x2029:\n\t\t\t\tok = put(emitter, 'P')\n\t\t\tdefault:\n\t\t\t\tif v <= 0xFF {\n\t\t\t\t\tok = put(emitter, 'x')\n\t\t\t\t\tw = 2\n\t\t\t\t} else if v <= 0xFFFF {\n\t\t\t\t\tok = put(emitter, 'u')\n\t\t\t\t\tw = 4\n\t\t\t\t} else {\n\t\t\t\t\tok = put(emitter, 'U')\n\t\t\t\t\tw = 8\n\t\t\t\t}\n\t\t\t\tfor k := (w - 1) * 4; ok && k >= 0; k -= 4 {\n\t\t\t\t\tdigit := byte((v >> uint(k)) & 0x0F)\n\t\t\t\t\tif digit < 10 {\n\t\t\t\t\t\tok = put(emitter, digit+'0')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tok = put(emitter, digit+'A'-10)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t} else if is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_space(value, i+1) {\n\t\t\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else if !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool {\n\tif is_space(value, 0) || is_break(value, 0) {\n\t\tindent_hint := []byte{'0' + byte(emitter.best_indent)}\n\t\tif !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\temitter.open_ended = false\n\n\tvar chomp_hint [1]byte\n\tif len(value) == 0 {\n\t\tchomp_hint[0] = '-'\n\t} else {\n\t\ti := len(value) - 1\n\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\ti--\n\t\t}\n\t\tif !is_break(value, i) {\n\t\t\tchomp_hint[0] = '-'\n\t\t} else if i == 0 {\n\t\t\tchomp_hint[0] = '+'\n\t\t\temitter.open_ended = true\n\t\t} else {\n\t\t\ti--\n\t\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\t\ti--\n\t\t\t}\n\t\t\tif is_break(value, i) {\n\t\t\t\tchomp_hint[0] = '+'\n\t\t\t\temitter.open_ended = true\n\t\t\t}\n\t\t}\n\t}\n\tif chomp_hint[0] != 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\t//emitter.indention = true\n\temitter.whitespace = true\n\tbreaks := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\n\t//emitter.indention = true\n\temitter.whitespace = true\n\n\tbreaks := true\n\tleading_spaces := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !breaks && !leading_spaces && value[i] == '\\n' {\n\t\t\t\tk := 0\n\t\t\t\tfor is_break(value, k) {\n\t\t\t\t\tk += width(value[k])\n\t\t\t\t}\n\t\t\t\tif !is_blankz(value, k) {\n\t\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tleading_spaces = is_blank(value, i)\n\t\t\t}\n\t\t\tif !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_comment(emitter *yaml_emitter_t, comment []byte) bool {\n\tbreaks := false\n\tpound := false\n\tfor i := 0; i < len(comment); {\n\t\tif is_break(comment, i) {\n\t\t\tif !write_break(emitter, comment, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t\tpound = false\n\t\t} else {\n\t\t\tif breaks && !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !pound {\n\t\t\t\tif comment[i] != '#' && (!put(emitter, '#') || !put(emitter, ' ')) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tpound = true\n\t\t\t}\n\t\t\tif !write(emitter, comment, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !breaks && !put_break(emitter) {\n\t\treturn false\n\t}\n\n\temitter.whitespace = true\n\t//emitter.indention = true\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/encode.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\ntype encoder struct {\n\temitter  yaml_emitter_t\n\tevent    yaml_event_t\n\tout      []byte\n\tflow     bool\n\tindent   int\n\tdoneInit bool\n}\n\nfunc newEncoder() *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_string(&e.emitter, &e.out)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc newEncoderWithWriter(w io.Writer) *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_writer(&e.emitter, w)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc (e *encoder) init() {\n\tif e.doneInit {\n\t\treturn\n\t}\n\tif e.indent == 0 {\n\t\te.indent = 4\n\t}\n\te.emitter.best_indent = e.indent\n\tyaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)\n\te.emit()\n\te.doneInit = true\n}\n\nfunc (e *encoder) finish() {\n\te.emitter.open_ended = false\n\tyaml_stream_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) destroy() {\n\tyaml_emitter_delete(&e.emitter)\n}\n\nfunc (e *encoder) emit() {\n\t// This will internally delete the e.event value.\n\te.must(yaml_emitter_emit(&e.emitter, &e.event))\n}\n\nfunc (e *encoder) must(ok bool) {\n\tif !ok {\n\t\tmsg := e.emitter.problem\n\t\tif msg == \"\" {\n\t\t\tmsg = \"unknown problem generating YAML content\"\n\t\t}\n\t\tfailf(\"%s\", msg)\n\t}\n}\n\nfunc (e *encoder) marshalDoc(tag string, in reflect.Value) {\n\te.init()\n\tvar node *Node\n\tif in.IsValid() {\n\t\tnode, _ = in.Interface().(*Node)\n\t}\n\tif node != nil && node.Kind == DocumentNode {\n\t\te.nodev(in)\n\t} else {\n\t\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\t\te.emit()\n\t\te.marshal(tag, in)\n\t\tyaml_document_end_event_initialize(&e.event, true)\n\t\te.emit()\n\t}\n}\n\nfunc (e *encoder) marshal(tag string, in reflect.Value) {\n\ttag = shortTag(tag)\n\tif !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() {\n\t\te.nilv()\n\t\treturn\n\t}\n\tiface := in.Interface()\n\tswitch value := iface.(type) {\n\tcase *Node:\n\t\te.nodev(in)\n\t\treturn\n\tcase Node:\n\t\tif !in.CanAddr() {\n\t\t\tvar n = reflect.New(in.Type()).Elem()\n\t\t\tn.Set(in)\n\t\t\tin = n\n\t\t}\n\t\te.nodev(in.Addr())\n\t\treturn\n\tcase time.Time:\n\t\te.timev(tag, in)\n\t\treturn\n\tcase *time.Time:\n\t\te.timev(tag, in.Elem())\n\t\treturn\n\tcase time.Duration:\n\t\te.stringv(tag, reflect.ValueOf(value.String()))\n\t\treturn\n\tcase Marshaler:\n\t\tv, err := value.MarshalYAML()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tif v == nil {\n\t\t\te.nilv()\n\t\t\treturn\n\t\t}\n\t\te.marshal(tag, reflect.ValueOf(v))\n\t\treturn\n\tcase encoding.TextMarshaler:\n\t\ttext, err := value.MarshalText()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tin = reflect.ValueOf(string(text))\n\tcase nil:\n\t\te.nilv()\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Interface:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Map:\n\t\te.mapv(tag, in)\n\tcase reflect.Ptr:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Struct:\n\t\te.structv(tag, in)\n\tcase reflect.Slice, reflect.Array:\n\t\te.slicev(tag, in)\n\tcase reflect.String:\n\t\te.stringv(tag, in)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\te.intv(tag, in)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\te.uintv(tag, in)\n\tcase reflect.Float32, reflect.Float64:\n\t\te.floatv(tag, in)\n\tcase reflect.Bool:\n\t\te.boolv(tag, in)\n\tdefault:\n\t\tpanic(\"cannot marshal type: \" + in.Type().String())\n\t}\n}\n\nfunc (e *encoder) mapv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tkeys := keyList(in.MapKeys())\n\t\tsort.Sort(keys)\n\t\tfor _, k := range keys {\n\t\t\te.marshal(\"\", k)\n\t\t\te.marshal(\"\", in.MapIndex(k))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) fieldByIndex(v reflect.Value, index []int) (field reflect.Value) {\n\tfor _, num := range index {\n\t\tfor {\n\t\t\tif v.Kind() == reflect.Ptr {\n\t\t\t\tif v.IsNil() {\n\t\t\t\t\treturn reflect.Value{}\n\t\t\t\t}\n\t\t\t\tv = v.Elem()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tv = v.Field(num)\n\t}\n\treturn v\n}\n\nfunc (e *encoder) structv(tag string, in reflect.Value) {\n\tsinfo, err := getStructInfo(in.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\te.mappingv(tag, func() {\n\t\tfor _, info := range sinfo.FieldsList {\n\t\t\tvar value reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tvalue = in.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tvalue = e.fieldByIndex(in, info.Inline)\n\t\t\t\tif !value.IsValid() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tif info.OmitEmpty && isZero(value) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\te.marshal(\"\", reflect.ValueOf(info.Key))\n\t\t\te.flow = info.Flow\n\t\t\te.marshal(\"\", value)\n\t\t}\n\t\tif sinfo.InlineMap >= 0 {\n\t\t\tm := in.Field(sinfo.InlineMap)\n\t\t\tif m.Len() > 0 {\n\t\t\t\te.flow = false\n\t\t\t\tkeys := keyList(m.MapKeys())\n\t\t\t\tsort.Sort(keys)\n\t\t\t\tfor _, k := range keys {\n\t\t\t\t\tif _, found := sinfo.FieldsMap[k.String()]; found {\n\t\t\t\t\t\tpanic(fmt.Sprintf(\"cannot have key %q in inlined map: conflicts with struct field\", k.String()))\n\t\t\t\t\t}\n\t\t\t\t\te.marshal(\"\", k)\n\t\t\t\t\te.flow = false\n\t\t\t\t\te.marshal(\"\", m.MapIndex(k))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc (e *encoder) mappingv(tag string, f func()) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_MAPPING_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t}\n\tyaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)\n\te.emit()\n\tf()\n\tyaml_mapping_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) slicev(tag string, in reflect.Value) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t}\n\te.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style))\n\te.emit()\n\tn := in.Len()\n\tfor i := 0; i < n; i++ {\n\t\te.marshal(\"\", in.Index(i))\n\t}\n\te.must(yaml_sequence_end_event_initialize(&e.event))\n\te.emit()\n}\n\n// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1.\n//\n// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported\n// in YAML 1.2 and by this package, but these should be marshalled quoted for\n// the time being for compatibility with other parsers.\nfunc isBase60Float(s string) (result bool) {\n\t// Fast path.\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tc := s[0]\n\tif !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 {\n\t\treturn false\n\t}\n\t// Do the full match.\n\treturn base60float.MatchString(s)\n}\n\n// From http://yaml.org/type/float.html, except the regular expression there\n// is bogus. In practice parsers do not enforce the \"\\.[0-9_]*\" suffix.\nvar base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\\.[0-9_]*)?$`)\n\n// isOldBool returns whether s is bool notation as defined in YAML 1.1.\n//\n// We continue to force strings that YAML 1.1 would interpret as booleans to be\n// rendered as quotes strings so that the marshalled output valid for YAML 1.1\n// parsing.\nfunc isOldBool(s string) (result bool) {\n\tswitch s {\n\tcase \"y\", \"Y\", \"yes\", \"Yes\", \"YES\", \"on\", \"On\", \"ON\",\n\t\t\"n\", \"N\", \"no\", \"No\", \"NO\", \"off\", \"Off\", \"OFF\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (e *encoder) stringv(tag string, in reflect.Value) {\n\tvar style yaml_scalar_style_t\n\ts := in.String()\n\tcanUsePlain := true\n\tswitch {\n\tcase !utf8.ValidString(s):\n\t\tif tag == binaryTag {\n\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t}\n\t\tif tag != \"\" {\n\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", shortTag(tag))\n\t\t}\n\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t// and encode it as base64.\n\t\ttag = binaryTag\n\t\ts = encodeBase64(s)\n\tcase tag == \"\":\n\t\t// Check to see if it would resolve to a specific\n\t\t// tag when encoded unquoted. If it doesn't,\n\t\t// there's no need to quote it.\n\t\trtag, _ := resolve(\"\", s)\n\t\tcanUsePlain = rtag == strTag && !(isBase60Float(s) || isOldBool(s))\n\t}\n\t// Note: it's possible for user code to emit invalid YAML\n\t// if they explicitly specify a tag and a string containing\n\t// text that's incompatible with that tag.\n\tswitch {\n\tcase strings.Contains(s, \"\\n\"):\n\t\tif e.flow {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t} else {\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\t}\n\tcase canUsePlain:\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\tdefault:\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\te.emitScalar(s, \"\", tag, style, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) boolv(tag string, in reflect.Value) {\n\tvar s string\n\tif in.Bool() {\n\t\ts = \"true\"\n\t} else {\n\t\ts = \"false\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) intv(tag string, in reflect.Value) {\n\ts := strconv.FormatInt(in.Int(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) uintv(tag string, in reflect.Value) {\n\ts := strconv.FormatUint(in.Uint(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) timev(tag string, in reflect.Value) {\n\tt := in.Interface().(time.Time)\n\ts := t.Format(time.RFC3339Nano)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) floatv(tag string, in reflect.Value) {\n\t// Issue #352: When formatting, use the precision of the underlying value\n\tprecision := 64\n\tif in.Kind() == reflect.Float32 {\n\t\tprecision = 32\n\t}\n\n\ts := strconv.FormatFloat(in.Float(), 'g', -1, precision)\n\tswitch s {\n\tcase \"+Inf\":\n\t\ts = \".inf\"\n\tcase \"-Inf\":\n\t\ts = \"-.inf\"\n\tcase \"NaN\":\n\t\ts = \".nan\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) nilv() {\n\te.emitScalar(\"null\", \"\", \"\", yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t, head, line, foot, tail []byte) {\n\t// TODO Kill this function. Replace all initialize calls by their underlining Go literals.\n\timplicit := tag == \"\"\n\tif !implicit {\n\t\ttag = longTag(tag)\n\t}\n\te.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style))\n\te.event.head_comment = head\n\te.event.line_comment = line\n\te.event.foot_comment = foot\n\te.event.tail_comment = tail\n\te.emit()\n}\n\nfunc (e *encoder) nodev(in reflect.Value) {\n\te.node(in.Interface().(*Node), \"\")\n}\n\nfunc (e *encoder) node(node *Node, tail string) {\n\t// Zero nodes behave as nil.\n\tif node.Kind == 0 && node.IsZero() {\n\t\te.nilv()\n\t\treturn\n\t}\n\n\t// If the tag was not explicitly requested, and dropping it won't change the\n\t// implicit tag of the value, don't include it in the presentation.\n\tvar tag = node.Tag\n\tvar stag = shortTag(tag)\n\tvar forceQuoting bool\n\tif tag != \"\" && node.Style&TaggedStyle == 0 {\n\t\tif node.Kind == ScalarNode {\n\t\t\tif stag == strTag && node.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0 {\n\t\t\t\ttag = \"\"\n\t\t\t} else {\n\t\t\t\trtag, _ := resolve(\"\", node.Value)\n\t\t\t\tif rtag == stag {\n\t\t\t\t\ttag = \"\"\n\t\t\t\t} else if stag == strTag {\n\t\t\t\t\ttag = \"\"\n\t\t\t\t\tforceQuoting = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar rtag string\n\t\t\tswitch node.Kind {\n\t\t\tcase MappingNode:\n\t\t\t\trtag = mapTag\n\t\t\tcase SequenceNode:\n\t\t\t\trtag = seqTag\n\t\t\t}\n\t\t\tif rtag == stag {\n\t\t\t\ttag = \"\"\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch node.Kind {\n\tcase DocumentNode:\n\t\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\t\tfor _, node := range node.Content {\n\t\t\te.node(node, \"\")\n\t\t}\n\t\tyaml_document_end_event_initialize(&e.event, true)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase SequenceNode:\n\t\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\t\tif node.Style&FlowStyle != 0 {\n\t\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t\t}\n\t\te.must(yaml_sequence_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == \"\", style))\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\t\tfor _, node := range node.Content {\n\t\t\te.node(node, \"\")\n\t\t}\n\t\te.must(yaml_sequence_end_event_initialize(&e.event))\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase MappingNode:\n\t\tstyle := yaml_BLOCK_MAPPING_STYLE\n\t\tif node.Style&FlowStyle != 0 {\n\t\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t\t}\n\t\tyaml_mapping_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == \"\", style)\n\t\te.event.tail_comment = []byte(tail)\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\n\t\t// The tail logic below moves the foot comment of prior keys to the following key,\n\t\t// since the value for each key may be a nested structure and the foot needs to be\n\t\t// processed only the entirety of the value is streamed. The last tail is processed\n\t\t// with the mapping end event.\n\t\tvar tail string\n\t\tfor i := 0; i+1 < len(node.Content); i += 2 {\n\t\t\tk := node.Content[i]\n\t\t\tfoot := k.FootComment\n\t\t\tif foot != \"\" {\n\t\t\t\tkopy := *k\n\t\t\t\tkopy.FootComment = \"\"\n\t\t\t\tk = &kopy\n\t\t\t}\n\t\t\te.node(k, tail)\n\t\t\ttail = foot\n\n\t\t\tv := node.Content[i+1]\n\t\t\te.node(v, \"\")\n\t\t}\n\n\t\tyaml_mapping_end_event_initialize(&e.event)\n\t\te.event.tail_comment = []byte(tail)\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase AliasNode:\n\t\tyaml_alias_event_initialize(&e.event, []byte(node.Value))\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase ScalarNode:\n\t\tvalue := node.Value\n\t\tif !utf8.ValidString(value) {\n\t\t\tif stag == binaryTag {\n\t\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t\t}\n\t\t\tif stag != \"\" {\n\t\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", stag)\n\t\t\t}\n\t\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t\t// and encode it as base64.\n\t\t\ttag = binaryTag\n\t\t\tvalue = encodeBase64(value)\n\t\t}\n\n\t\tstyle := yaml_PLAIN_SCALAR_STYLE\n\t\tswitch {\n\t\tcase node.Style&DoubleQuotedStyle != 0:\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\tcase node.Style&SingleQuotedStyle != 0:\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\tcase node.Style&LiteralStyle != 0:\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\tcase node.Style&FoldedStyle != 0:\n\t\t\tstyle = yaml_FOLDED_SCALAR_STYLE\n\t\tcase strings.Contains(value, \"\\n\"):\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\tcase forceQuoting:\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\n\t\te.emitScalar(value, node.Anchor, tag, style, []byte(node.HeadComment), []byte(node.LineComment), []byte(node.FootComment), []byte(tail))\n\tdefault:\n\t\tfailf(\"cannot encode node with unknown kind %d\", node.Kind)\n\t}\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/parserc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n)\n\n// The parser implements the following grammar:\n//\n// stream               ::= STREAM-START implicit_document? explicit_document* STREAM-END\n// implicit_document    ::= block_node DOCUMENT-END*\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          | properties (block_content | indentless_block_sequence)?\n//                          | block_content\n//                          | indentless_block_sequence\n// block_node           ::= ALIAS\n//                          | properties block_content?\n//                          | block_content\n// flow_node            ::= ALIAS\n//                          | properties flow_content?\n//                          | flow_content\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n// block_content        ::= block_collection | flow_collection | SCALAR\n// flow_content         ::= flow_collection | SCALAR\n// block_collection     ::= block_sequence | block_mapping\n// flow_collection      ::= flow_sequence | flow_mapping\n// block_sequence       ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                          BLOCK-END\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                          flow_sequence_entry?\n//                          FLOW-SEQUENCE-END\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                          flow_mapping_entry?\n//                          FLOW-MAPPING-END\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n\n// Peek the next token in the token queue.\nfunc peek_token(parser *yaml_parser_t) *yaml_token_t {\n\tif parser.token_available || yaml_parser_fetch_more_tokens(parser) {\n\t\ttoken := &parser.tokens[parser.tokens_head]\n\t\tyaml_parser_unfold_comments(parser, token)\n\t\treturn token\n\t}\n\treturn nil\n}\n\n// yaml_parser_unfold_comments walks through the comments queue and joins all\n// comments behind the position of the provided token into the respective\n// top-level comment slices in the parser.\nfunc yaml_parser_unfold_comments(parser *yaml_parser_t, token *yaml_token_t) {\n\tfor parser.comments_head < len(parser.comments) && token.start_mark.index >= parser.comments[parser.comments_head].token_mark.index {\n\t\tcomment := &parser.comments[parser.comments_head]\n\t\tif len(comment.head) > 0 {\n\t\t\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\t\t\t// No heads on ends, so keep comment.head for a follow up token.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif len(parser.head_comment) > 0 {\n\t\t\t\tparser.head_comment = append(parser.head_comment, '\\n')\n\t\t\t}\n\t\t\tparser.head_comment = append(parser.head_comment, comment.head...)\n\t\t}\n\t\tif len(comment.foot) > 0 {\n\t\t\tif len(parser.foot_comment) > 0 {\n\t\t\t\tparser.foot_comment = append(parser.foot_comment, '\\n')\n\t\t\t}\n\t\t\tparser.foot_comment = append(parser.foot_comment, comment.foot...)\n\t\t}\n\t\tif len(comment.line) > 0 {\n\t\t\tif len(parser.line_comment) > 0 {\n\t\t\t\tparser.line_comment = append(parser.line_comment, '\\n')\n\t\t\t}\n\t\t\tparser.line_comment = append(parser.line_comment, comment.line...)\n\t\t}\n\t\t*comment = yaml_comment_t{}\n\t\tparser.comments_head++\n\t}\n}\n\n// Remove the next token from the queue (must be called after peek_token).\nfunc skip_token(parser *yaml_parser_t) {\n\tparser.token_available = false\n\tparser.tokens_parsed++\n\tparser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN\n\tparser.tokens_head++\n}\n\n// Get the next event.\nfunc yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t// Erase the event object.\n\t*event = yaml_event_t{}\n\n\t// No events after the end of the stream or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE {\n\t\treturn true\n\t}\n\n\t// Generate the next event.\n\treturn yaml_parser_state_machine(parser, event)\n}\n\n// Set parser error.\nfunc yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\nfunc yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\n// State dispatcher.\nfunc yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t//trace(\"yaml_parser_state_machine\", \"state:\", parser.state.String())\n\n\tswitch parser.state {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn yaml_parser_parse_stream_start(parser, event)\n\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, true)\n\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, false)\n\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_parser_parse_document_content(parser, event)\n\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn yaml_parser_parse_document_end(parser, event)\n\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_indentless_sequence_entry(parser, event)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_block_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event)\n\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, true)\n\n\tdefault:\n\t\tpanic(\"invalid parser state\")\n\t}\n}\n\n// Parse the production:\n// stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END\n//              ************\nfunc yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_STREAM_START_TOKEN {\n\t\treturn yaml_parser_set_parser_error(parser, \"did not find expected <stream-start>\", token.start_mark)\n\t}\n\tparser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_STREAM_START_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t\tencoding:   token.encoding,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                          *\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                          *************************\nfunc yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool {\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// Parse extra document end indicators.\n\tif !implicit {\n\t\tfor token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tif implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_TAG_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_DOCUMENT_START_TOKEN &&\n\t\ttoken.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an implicit document.\n\t\tif !yaml_parser_process_directives(parser, nil, nil) {\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_BLOCK_NODE_STATE\n\n\t\tvar head_comment []byte\n\t\tif len(parser.head_comment) > 0 {\n\t\t\t// [Go] Scan the header comment backwards, and if an empty line is found, break\n\t\t\t//      the header so the part before the last empty line goes into the\n\t\t\t//      document header, while the bottom of it goes into a follow up event.\n\t\t\tfor i := len(parser.head_comment) - 1; i > 0; i-- {\n\t\t\t\tif parser.head_comment[i] == '\\n' {\n\t\t\t\t\tif i == len(parser.head_comment)-1 {\n\t\t\t\t\t\thead_comment = parser.head_comment[:i]\n\t\t\t\t\t\tparser.head_comment = parser.head_comment[i+1:]\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else if parser.head_comment[i-1] == '\\n' {\n\t\t\t\t\t\thead_comment = parser.head_comment[:i-1]\n\t\t\t\t\t\tparser.head_comment = parser.head_comment[i+1:]\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\n\t\t\thead_comment: head_comment,\n\t\t}\n\n\t} else if token.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an explicit document.\n\t\tvar version_directive *yaml_version_directive_t\n\t\tvar tag_directives []yaml_tag_directive_t\n\t\tstart_mark := token.start_mark\n\t\tif !yaml_parser_process_directives(parser, &version_directive, &tag_directives) {\n\t\t\treturn false\n\t\t}\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_DOCUMENT_START_TOKEN {\n\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\"did not find expected <document start>\", token.start_mark)\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE\n\t\tend_mark := token.end_mark\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark:        start_mark,\n\t\t\tend_mark:          end_mark,\n\t\t\tversion_directive: version_directive,\n\t\t\ttag_directives:    tag_directives,\n\t\t\timplicit:          false,\n\t\t}\n\t\tskip_token(parser)\n\n\t} else {\n\t\t// Parse the stream end.\n\t\tparser.state = yaml_PARSE_END_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_STREAM_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t}\n\n\treturn true\n}\n\n// Parse the productions:\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                                                    ***********\n//\nfunc yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_TAG_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_START_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_END_TOKEN ||\n\t\ttoken.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\treturn yaml_parser_process_empty_scalar(parser, event,\n\t\t\ttoken.start_mark)\n\t}\n\treturn yaml_parser_parse_node(parser, event, true, false)\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                                     *************\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//\nfunc yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\timplicit := true\n\tif token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\timplicit = false\n\t}\n\n\tparser.tag_directives = parser.tag_directives[:0]\n\n\tparser.state = yaml_PARSE_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_DOCUMENT_END_EVENT,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\timplicit:   implicit,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\tif len(event.head_comment) > 0 && len(event.foot_comment) == 0 {\n\t\tevent.foot_comment = event.head_comment\n\t\tevent.head_comment = nil\n\t}\n\treturn true\n}\n\nfunc yaml_parser_set_event_comments(parser *yaml_parser_t, event *yaml_event_t) {\n\tevent.head_comment = parser.head_comment\n\tevent.line_comment = parser.line_comment\n\tevent.foot_comment = parser.foot_comment\n\tparser.head_comment = nil\n\tparser.line_comment = nil\n\tparser.foot_comment = nil\n\tparser.tail_comment = nil\n\tparser.stem_comment = nil\n}\n\n// Parse the productions:\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          *****\n//                          | properties (block_content | indentless_block_sequence)?\n//                            **********  *\n//                          | block_content | indentless_block_sequence\n//                            *\n// block_node           ::= ALIAS\n//                          *****\n//                          | properties block_content?\n//                            ********** *\n//                          | block_content\n//                            *\n// flow_node            ::= ALIAS\n//                          *****\n//                          | properties flow_content?\n//                            ********** *\n//                          | flow_content\n//                            *\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n//                          *************************\n// block_content        ::= block_collection | flow_collection | SCALAR\n//                                                               ******\n// flow_content         ::= flow_collection | SCALAR\n//                                            ******\nfunc yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool {\n\t//defer trace(\"yaml_parser_parse_node\", \"block:\", block, \"indentless_sequence:\", indentless_sequence)()\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_ALIAS_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_ALIAS_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t\tanchor:     token.value,\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\tvar tag_token bool\n\tvar tag_handle, tag_suffix, anchor []byte\n\tvar tag_mark yaml_mark_t\n\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\tanchor = token.value\n\t\tstart_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_TAG_TOKEN {\n\t\t\ttag_token = true\n\t\t\ttag_handle = token.value\n\t\t\ttag_suffix = token.suffix\n\t\t\ttag_mark = token.start_mark\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else if token.typ == yaml_TAG_TOKEN {\n\t\ttag_token = true\n\t\ttag_handle = token.value\n\t\ttag_suffix = token.suffix\n\t\tstart_mark = token.start_mark\n\t\ttag_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\t\tanchor = token.value\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tvar tag []byte\n\tif tag_token {\n\t\tif len(tag_handle) == 0 {\n\t\t\ttag = tag_suffix\n\t\t\ttag_suffix = nil\n\t\t} else {\n\t\t\tfor i := range parser.tag_directives {\n\t\t\t\tif bytes.Equal(parser.tag_directives[i].handle, tag_handle) {\n\t\t\t\t\ttag = append([]byte(nil), parser.tag_directives[i].prefix...)\n\t\t\t\t\ttag = append(tag, tag_suffix...)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(tag) == 0 {\n\t\t\t\tyaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a node\", start_mark,\n\t\t\t\t\t\"found undefined tag handle\", tag_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\timplicit := len(tag) == 0\n\tif indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_SCALAR_TOKEN {\n\t\tvar plain_implicit, quoted_implicit bool\n\t\tend_mark = token.end_mark\n\t\tif (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') {\n\t\t\tplain_implicit = true\n\t\t} else if len(tag) == 0 {\n\t\t\tquoted_implicit = true\n\t\t}\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\tvalue:           token.value,\n\t\t\timplicit:        plain_implicit,\n\t\t\tquoted_implicit: quoted_implicit,\n\t\t\tstyle:           yaml_style_t(token.style),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_SEQUENCE_START_TOKEN {\n\t\t// [Go] Some of the events below can be merged as they differ only on style.\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_SEQUENCE_STYLE),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\tif parser.stem_comment != nil {\n\t\t\tevent.head_comment = parser.stem_comment\n\t\t\tparser.stem_comment = nil\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_MAPPING_STYLE),\n\t\t}\n\t\tif parser.stem_comment != nil {\n\t\t\tevent.head_comment = parser.stem_comment\n\t\t\tparser.stem_comment = nil\n\t\t}\n\t\treturn true\n\t}\n\tif len(anchor) > 0 || len(tag) > 0 {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\timplicit:        implicit,\n\t\t\tquoted_implicit: false,\n\t\t\tstyle:           yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\n\tcontext := \"while parsing a flow node\"\n\tif block {\n\t\tcontext = \"while parsing a block node\"\n\t}\n\tyaml_parser_set_parser_error_context(parser, context, start_mark,\n\t\t\"did not find expected node content\", token.start_mark)\n\treturn false\n}\n\n// Parse the productions:\n// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n//                    ********************  *********** *             *********\n//\nfunc yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tprior_head_len := len(parser.head_comment)\n\t\tskip_token(parser)\n\t\tyaml_parser_split_stem_comment(parser, prior_head_len)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t}\n\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block collection\", context_mark,\n\t\t\"did not find expected '-' indicator\", token.start_mark)\n}\n\n// Parse the productions:\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n//                           *********** *\nfunc yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tprior_head_len := len(parser.head_comment)\n\t\tskip_token(parser)\n\t\tyaml_parser_split_stem_comment(parser, prior_head_len)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN &&\n\t\t\ttoken.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t}\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be token.end_mark?\n\t}\n\treturn true\n}\n\n// Split stem comment from head comment.\n//\n// When a sequence or map is found under a sequence entry, the former head comment\n// is assigned to the underlying sequence or map as a whole, not the individual\n// sequence or map entry as would be expected otherwise. To handle this case the\n// previous head comment is moved aside as the stem comment.\nfunc yaml_parser_split_stem_comment(parser *yaml_parser_t, stem_len int) {\n\tif stem_len == 0 {\n\t\treturn\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil || token.typ != yaml_BLOCK_SEQUENCE_START_TOKEN && token.typ != yaml_BLOCK_MAPPING_START_TOKEN {\n\t\treturn\n\t}\n\n\tparser.stem_comment = parser.head_comment[:stem_len]\n\tif len(parser.head_comment) == stem_len {\n\t\tparser.head_comment = nil\n\t} else {\n\t\t// Copy suffix to prevent very strange bugs if someone ever appends\n\t\t// further bytes to the prefix in the stem_comment slice above.\n\t\tparser.head_comment = append([]byte(nil), parser.head_comment[stem_len+1:]...)\n\t}\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          *******************\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                            *** *\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//\n//                          BLOCK-END\n//                          *********\n//\nfunc yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// [Go] A tail comment was left from the prior mapping value processed. Emit an event\n\t//      as it needs to be processed with that value and not the following key.\n\tif len(parser.tail_comment) > 0 {\n\t\t*event = yaml_event_t{\n\t\t\ttyp:          yaml_TAIL_COMMENT_EVENT,\n\t\t\tstart_mark:   token.start_mark,\n\t\t\tend_mark:     token.end_mark,\n\t\t\tfoot_comment: parser.tail_comment,\n\t\t}\n\t\tparser.tail_comment = nil\n\t\treturn true\n\t}\n\n\tif token.typ == yaml_KEY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t} else if token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block mapping\", context_mark,\n\t\t\"did not find expected key\", token.start_mark)\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//\n//                          ((KEY block_node_or_indentless_sequence?)?\n//\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                           ***** *\n//                          BLOCK-END\n//\n//\nfunc yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t}\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          *******************\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                           *                   **********\n//                          flow_sequence_entry?\n//                          *\n//                          FLOW-SEQUENCE-END\n//                          *****************\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *\n//\nfunc yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow sequence\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or ']'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\n\t\t\t*event = yaml_event_t{\n\t\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\t\tstart_mark: token.start_mark,\n\t\t\t\tend_mark:   token.end_mark,\n\t\t\t\timplicit:   true,\n\t\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t\t}\n\t\t\tskip_token(parser)\n\t\t\treturn true\n\t\t} else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\n\tskip_token(parser)\n\treturn true\n}\n\n//\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                      *** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_VALUE_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE)\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t}\n\tmark := token.end_mark\n\tskip_token(parser)\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                      ***** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                                      *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          ******************\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                           *                  **********\n//                          flow_mapping_entry?\n//                          ******************\n//                          FLOW-MAPPING-END\n//                          ****************\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *           *** *\n//\nfunc yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow mapping\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or '}'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.typ != yaml_VALUE_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE)\n\t\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t\t} else {\n\t\t\t\tparser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE\n\t\t\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t\t\t}\n\t\t} else if token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                   *                  ***** *\n//\nfunc yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif empty {\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Generate an empty scalar event.\nfunc yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SCALAR_EVENT,\n\t\tstart_mark: mark,\n\t\tend_mark:   mark,\n\t\tvalue:      nil, // Empty\n\t\timplicit:   true,\n\t\tstyle:      yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t}\n\treturn true\n}\n\nvar default_tag_directives = []yaml_tag_directive_t{\n\t{[]byte(\"!\"), []byte(\"!\")},\n\t{[]byte(\"!!\"), []byte(\"tag:yaml.org,2002:\")},\n}\n\n// Parse directives.\nfunc yaml_parser_process_directives(parser *yaml_parser_t,\n\tversion_directive_ref **yaml_version_directive_t,\n\ttag_directives_ref *[]yaml_tag_directive_t) bool {\n\n\tvar version_directive *yaml_version_directive_t\n\tvar tag_directives []yaml_tag_directive_t\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tfor token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN {\n\t\t\tif version_directive != nil {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found duplicate %YAML directive\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.major != 1 || token.minor != 1 {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found incompatible YAML document\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tversion_directive = &yaml_version_directive_t{\n\t\t\t\tmajor: token.major,\n\t\t\t\tminor: token.minor,\n\t\t\t}\n\t\t} else if token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\t\tvalue := yaml_tag_directive_t{\n\t\t\t\thandle: token.value,\n\t\t\t\tprefix: token.prefix,\n\t\t\t}\n\t\t\tif !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\ttag_directives = append(tag_directives, value)\n\t\t}\n\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tfor i := range default_tag_directives {\n\t\tif !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif version_directive_ref != nil {\n\t\t*version_directive_ref = version_directive\n\t}\n\tif tag_directives_ref != nil {\n\t\t*tag_directives_ref = tag_directives\n\t}\n\treturn true\n}\n\n// Append a tag directive to the directives stack.\nfunc yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool {\n\tfor i := range parser.tag_directives {\n\t\tif bytes.Equal(value.handle, parser.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_parser_set_parser_error(parser, \"found duplicate %TAG directive\", mark)\n\t\t}\n\t}\n\n\t// [Go] I suspect the copy is unnecessary. This was likely done\n\t// because there was no way to track ownership of the data.\n\tvalue_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(value_copy.handle, value.handle)\n\tcopy(value_copy.prefix, value.prefix)\n\tparser.tag_directives = append(parser.tag_directives, value_copy)\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/readerc.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"io\"\n)\n\n// Set the reader error and return 0.\nfunc yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool {\n\tparser.error = yaml_READER_ERROR\n\tparser.problem = problem\n\tparser.problem_offset = offset\n\tparser.problem_value = value\n\treturn false\n}\n\n// Byte order marks.\nconst (\n\tbom_UTF8    = \"\\xef\\xbb\\xbf\"\n\tbom_UTF16LE = \"\\xff\\xfe\"\n\tbom_UTF16BE = \"\\xfe\\xff\"\n)\n\n// Determine the input stream encoding by checking the BOM symbol. If no BOM is\n// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure.\nfunc yaml_parser_determine_encoding(parser *yaml_parser_t) bool {\n\t// Ensure that we had enough bytes in the raw buffer.\n\tfor !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 {\n\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Determine the encoding.\n\tbuf := parser.raw_buffer\n\tpos := parser.raw_buffer_pos\n\tavail := len(buf) - pos\n\tif avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] {\n\t\tparser.encoding = yaml_UTF16LE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] {\n\t\tparser.encoding = yaml_UTF16BE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t\tparser.raw_buffer_pos += 3\n\t\tparser.offset += 3\n\t} else {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t}\n\treturn true\n}\n\n// Update the raw buffer.\nfunc yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool {\n\tsize_read := 0\n\n\t// Return if the raw buffer is full.\n\tif parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) {\n\t\treturn true\n\t}\n\n\t// Return on EOF.\n\tif parser.eof {\n\t\treturn true\n\t}\n\n\t// Move the remaining bytes in the raw buffer to the beginning.\n\tif parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) {\n\t\tcopy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:])\n\t}\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos]\n\tparser.raw_buffer_pos = 0\n\n\t// Call the read handler to fill the buffer.\n\tsize_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)])\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read]\n\tif err == io.EOF {\n\t\tparser.eof = true\n\t} else if err != nil {\n\t\treturn yaml_parser_set_reader_error(parser, \"input error: \"+err.Error(), parser.offset, -1)\n\t}\n\treturn true\n}\n\n// Ensure that the buffer contains at least `length` characters.\n// Return true on success, false on failure.\n//\n// The length is supposed to be significantly less that the buffer size.\nfunc yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {\n\tif parser.read_handler == nil {\n\t\tpanic(\"read handler must be set\")\n\t}\n\n\t// [Go] This function was changed to guarantee the requested length size at EOF.\n\t// The fact we need to do this is pretty awful, but the description above implies\n\t// for that to be the case, and there are tests\n\n\t// If the EOF flag is set and the raw buffer is empty, do nothing.\n\tif parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t// [Go] ACTUALLY! Read the documentation of this function above.\n\t\t// This is just broken. To return true, we need to have the\n\t\t// given length in the buffer. Not doing that means every single\n\t\t// check that calls this function to make sure the buffer has a\n\t\t// given length is Go) panicking; or C) accessing invalid memory.\n\t\t//return true\n\t}\n\n\t// Return if the buffer contains enough characters.\n\tif parser.unread >= length {\n\t\treturn true\n\t}\n\n\t// Determine the input encoding if it is not known yet.\n\tif parser.encoding == yaml_ANY_ENCODING {\n\t\tif !yaml_parser_determine_encoding(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Move the unread characters to the beginning of the buffer.\n\tbuffer_len := len(parser.buffer)\n\tif parser.buffer_pos > 0 && parser.buffer_pos < buffer_len {\n\t\tcopy(parser.buffer, parser.buffer[parser.buffer_pos:])\n\t\tbuffer_len -= parser.buffer_pos\n\t\tparser.buffer_pos = 0\n\t} else if parser.buffer_pos == buffer_len {\n\t\tbuffer_len = 0\n\t\tparser.buffer_pos = 0\n\t}\n\n\t// Open the whole buffer for writing, and cut it before returning.\n\tparser.buffer = parser.buffer[:cap(parser.buffer)]\n\n\t// Fill the buffer until it has enough characters.\n\tfirst := true\n\tfor parser.unread < length {\n\n\t\t// Fill the raw buffer if necessary.\n\t\tif !first || parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\t\tparser.buffer = parser.buffer[:buffer_len]\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tfirst = false\n\n\t\t// Decode the raw buffer.\n\tinner:\n\t\tfor parser.raw_buffer_pos != len(parser.raw_buffer) {\n\t\t\tvar value rune\n\t\t\tvar width int\n\n\t\t\traw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos\n\n\t\t\t// Decode the next character.\n\t\t\tswitch parser.encoding {\n\t\t\tcase yaml_UTF8_ENCODING:\n\t\t\t\t// Decode a UTF-8 character.  Check RFC 3629\n\t\t\t\t// (http://www.ietf.org/rfc/rfc3629.txt) for more details.\n\t\t\t\t//\n\t\t\t\t// The following table (taken from the RFC) is used for\n\t\t\t\t// decoding.\n\t\t\t\t//\n\t\t\t\t//    Char. number range |        UTF-8 octet sequence\n\t\t\t\t//      (hexadecimal)    |              (binary)\n\t\t\t\t//   --------------------+------------------------------------\n\t\t\t\t//   0000 0000-0000 007F | 0xxxxxxx\n\t\t\t\t//   0000 0080-0000 07FF | 110xxxxx 10xxxxxx\n\t\t\t\t//   0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//   0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//\n\t\t\t\t// Additionally, the characters in the range 0xD800-0xDFFF\n\t\t\t\t// are prohibited as they are reserved for use with UTF-16\n\t\t\t\t// surrogate pairs.\n\n\t\t\t\t// Determine the length of the UTF-8 sequence.\n\t\t\t\toctet := parser.raw_buffer[parser.raw_buffer_pos]\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\twidth = 1\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\twidth = 2\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\twidth = 3\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\twidth = 4\n\t\t\t\tdefault:\n\t\t\t\t\t// The leading octet is invalid.\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid leading UTF-8 octet\",\n\t\t\t\t\t\tparser.offset, int(octet))\n\t\t\t\t}\n\n\t\t\t\t// Check if the raw buffer contains an incomplete character.\n\t\t\t\tif width > raw_unread {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-8 octet sequence\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Decode the leading octet.\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\tvalue = rune(octet & 0x7F)\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\tvalue = rune(octet & 0x1F)\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\tvalue = rune(octet & 0x0F)\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\tvalue = rune(octet & 0x07)\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = 0\n\t\t\t\t}\n\n\t\t\t\t// Check and decode the trailing octets.\n\t\t\t\tfor k := 1; k < width; k++ {\n\t\t\t\t\toctet = parser.raw_buffer[parser.raw_buffer_pos+k]\n\n\t\t\t\t\t// Check if the octet is valid.\n\t\t\t\t\tif (octet & 0xC0) != 0x80 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"invalid trailing UTF-8 octet\",\n\t\t\t\t\t\t\tparser.offset+k, int(octet))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Decode the octet.\n\t\t\t\t\tvalue = (value << 6) + rune(octet&0x3F)\n\t\t\t\t}\n\n\t\t\t\t// Check the length of the sequence against the value.\n\t\t\t\tswitch {\n\t\t\t\tcase width == 1:\n\t\t\t\tcase width == 2 && value >= 0x80:\n\t\t\t\tcase width == 3 && value >= 0x800:\n\t\t\t\tcase width == 4 && value >= 0x10000:\n\t\t\t\tdefault:\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid length of a UTF-8 sequence\",\n\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t}\n\n\t\t\t\t// Check the range of the value.\n\t\t\t\tif value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid Unicode character\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\tcase yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING:\n\t\t\t\tvar low, high int\n\t\t\t\tif parser.encoding == yaml_UTF16LE_ENCODING {\n\t\t\t\t\tlow, high = 0, 1\n\t\t\t\t} else {\n\t\t\t\t\tlow, high = 1, 0\n\t\t\t\t}\n\n\t\t\t\t// The UTF-16 encoding is not as simple as one might\n\t\t\t\t// naively think.  Check RFC 2781\n\t\t\t\t// (http://www.ietf.org/rfc/rfc2781.txt).\n\t\t\t\t//\n\t\t\t\t// Normally, two subsequent bytes describe a Unicode\n\t\t\t\t// character.  However a special technique (called a\n\t\t\t\t// surrogate pair) is used for specifying character\n\t\t\t\t// values larger than 0xFFFF.\n\t\t\t\t//\n\t\t\t\t// A surrogate pair consists of two pseudo-characters:\n\t\t\t\t//      high surrogate area (0xD800-0xDBFF)\n\t\t\t\t//      low surrogate area (0xDC00-0xDFFF)\n\t\t\t\t//\n\t\t\t\t// The following formulas are used for decoding\n\t\t\t\t// and encoding characters using surrogate pairs:\n\t\t\t\t//\n\t\t\t\t//  U  = U' + 0x10000   (0x01 00 00 <= U <= 0x10 FF FF)\n\t\t\t\t//  U' = yyyyyyyyyyxxxxxxxxxx   (0 <= U' <= 0x0F FF FF)\n\t\t\t\t//  W1 = 110110yyyyyyyyyy\n\t\t\t\t//  W2 = 110111xxxxxxxxxx\n\t\t\t\t//\n\t\t\t\t// where U is the character value, W1 is the high surrogate\n\t\t\t\t// area, W2 is the low surrogate area.\n\n\t\t\t\t// Check for incomplete UTF-16 character.\n\t\t\t\tif raw_unread < 2 {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-16 character\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Get the character.\n\t\t\t\tvalue = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) +\n\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8)\n\n\t\t\t\t// Check for unexpected low surrogate area.\n\t\t\t\tif value&0xFC00 == 0xDC00 {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"unexpected low surrogate area\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\t\t// Check for a high surrogate area.\n\t\t\t\tif value&0xFC00 == 0xD800 {\n\t\t\t\t\twidth = 4\n\n\t\t\t\t\t// Check for incomplete surrogate pair.\n\t\t\t\t\tif raw_unread < 4 {\n\t\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\t\"incomplete UTF-16 surrogate pair\",\n\t\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak inner\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get the next character.\n\t\t\t\t\tvalue2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) +\n\t\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8)\n\n\t\t\t\t\t// Check for a low surrogate area.\n\t\t\t\t\tif value2&0xFC00 != 0xDC00 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"expected low surrogate area\",\n\t\t\t\t\t\t\tparser.offset+2, int(value2))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Generate the value of the surrogate pair.\n\t\t\t\t\tvalue = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF)\n\t\t\t\t} else {\n\t\t\t\t\twidth = 2\n\t\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tpanic(\"impossible\")\n\t\t\t}\n\n\t\t\t// Check if the character is in the allowed range:\n\t\t\t//      #x9 | #xA | #xD | [#x20-#x7E]               (8 bit)\n\t\t\t//      | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD]    (16 bit)\n\t\t\t//      | [#x10000-#x10FFFF]                        (32 bit)\n\t\t\tswitch {\n\t\t\tcase value == 0x09:\n\t\t\tcase value == 0x0A:\n\t\t\tcase value == 0x0D:\n\t\t\tcase value >= 0x20 && value <= 0x7E:\n\t\t\tcase value == 0x85:\n\t\t\tcase value >= 0xA0 && value <= 0xD7FF:\n\t\t\tcase value >= 0xE000 && value <= 0xFFFD:\n\t\t\tcase value >= 0x10000 && value <= 0x10FFFF:\n\t\t\tdefault:\n\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\"control characters are not allowed\",\n\t\t\t\t\tparser.offset, int(value))\n\t\t\t}\n\n\t\t\t// Move the raw pointers.\n\t\t\tparser.raw_buffer_pos += width\n\t\t\tparser.offset += width\n\n\t\t\t// Finally put the character into the buffer.\n\t\t\tif value <= 0x7F {\n\t\t\t\t// 0000 0000-0000 007F . 0xxxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(value)\n\t\t\t\tbuffer_len += 1\n\t\t\t} else if value <= 0x7FF {\n\t\t\t\t// 0000 0080-0000 07FF . 110xxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 2\n\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t// 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 3\n\t\t\t} else {\n\t\t\t\t// 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 4\n\t\t\t}\n\n\t\t\tparser.unread++\n\t\t}\n\n\t\t// On EOF, put NUL into the buffer and return.\n\t\tif parser.eof {\n\t\t\tparser.buffer[buffer_len] = 0\n\t\t\tbuffer_len++\n\t\t\tparser.unread++\n\t\t\tbreak\n\t\t}\n\t}\n\t// [Go] Read the documentation of this function above. To return true,\n\t// we need to have the given length in the buffer. Not doing that means\n\t// every single check that calls this function to make sure the buffer\n\t// has a given length is Go) panicking; or C) accessing invalid memory.\n\t// This happens here due to the EOF above breaking early.\n\tfor buffer_len < length {\n\t\tparser.buffer[buffer_len] = 0\n\t\tbuffer_len++\n\t}\n\tparser.buffer = parser.buffer[:buffer_len]\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/resolve.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding/base64\"\n\t\"math\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype resolveMapItem struct {\n\tvalue interface{}\n\ttag   string\n}\n\nvar resolveTable = make([]byte, 256)\nvar resolveMap = make(map[string]resolveMapItem)\n\nfunc init() {\n\tt := resolveTable\n\tt[int('+')] = 'S' // Sign\n\tt[int('-')] = 'S'\n\tfor _, c := range \"0123456789\" {\n\t\tt[int(c)] = 'D' // Digit\n\t}\n\tfor _, c := range \"yYnNtTfFoO~\" {\n\t\tt[int(c)] = 'M' // In map\n\t}\n\tt[int('.')] = '.' // Float (potentially in map)\n\n\tvar resolveMapList = []struct {\n\t\tv   interface{}\n\t\ttag string\n\t\tl   []string\n\t}{\n\t\t{true, boolTag, []string{\"true\", \"True\", \"TRUE\"}},\n\t\t{false, boolTag, []string{\"false\", \"False\", \"FALSE\"}},\n\t\t{nil, nullTag, []string{\"\", \"~\", \"null\", \"Null\", \"NULL\"}},\n\t\t{math.NaN(), floatTag, []string{\".nan\", \".NaN\", \".NAN\"}},\n\t\t{math.Inf(+1), floatTag, []string{\".inf\", \".Inf\", \".INF\"}},\n\t\t{math.Inf(+1), floatTag, []string{\"+.inf\", \"+.Inf\", \"+.INF\"}},\n\t\t{math.Inf(-1), floatTag, []string{\"-.inf\", \"-.Inf\", \"-.INF\"}},\n\t\t{\"<<\", mergeTag, []string{\"<<\"}},\n\t}\n\n\tm := resolveMap\n\tfor _, item := range resolveMapList {\n\t\tfor _, s := range item.l {\n\t\t\tm[s] = resolveMapItem{item.v, item.tag}\n\t\t}\n\t}\n}\n\nconst (\n\tnullTag      = \"!!null\"\n\tboolTag      = \"!!bool\"\n\tstrTag       = \"!!str\"\n\tintTag       = \"!!int\"\n\tfloatTag     = \"!!float\"\n\ttimestampTag = \"!!timestamp\"\n\tseqTag       = \"!!seq\"\n\tmapTag       = \"!!map\"\n\tbinaryTag    = \"!!binary\"\n\tmergeTag     = \"!!merge\"\n)\n\nvar longTags = make(map[string]string)\nvar shortTags = make(map[string]string)\n\nfunc init() {\n\tfor _, stag := range []string{nullTag, boolTag, strTag, intTag, floatTag, timestampTag, seqTag, mapTag, binaryTag, mergeTag} {\n\t\tltag := longTag(stag)\n\t\tlongTags[stag] = ltag\n\t\tshortTags[ltag] = stag\n\t}\n}\n\nconst longTagPrefix = \"tag:yaml.org,2002:\"\n\nfunc shortTag(tag string) string {\n\tif strings.HasPrefix(tag, longTagPrefix) {\n\t\tif stag, ok := shortTags[tag]; ok {\n\t\t\treturn stag\n\t\t}\n\t\treturn \"!!\" + tag[len(longTagPrefix):]\n\t}\n\treturn tag\n}\n\nfunc longTag(tag string) string {\n\tif strings.HasPrefix(tag, \"!!\") {\n\t\tif ltag, ok := longTags[tag]; ok {\n\t\t\treturn ltag\n\t\t}\n\t\treturn longTagPrefix + tag[2:]\n\t}\n\treturn tag\n}\n\nfunc resolvableTag(tag string) bool {\n\tswitch tag {\n\tcase \"\", strTag, boolTag, intTag, floatTag, nullTag, timestampTag:\n\t\treturn true\n\t}\n\treturn false\n}\n\nvar yamlStyleFloat = regexp.MustCompile(`^[-+]?(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)([eE][-+]?[0-9]+)?$`)\n\nfunc resolve(tag string, in string) (rtag string, out interface{}) {\n\ttag = shortTag(tag)\n\tif !resolvableTag(tag) {\n\t\treturn tag, in\n\t}\n\n\tdefer func() {\n\t\tswitch tag {\n\t\tcase \"\", rtag, strTag, binaryTag:\n\t\t\treturn\n\t\tcase floatTag:\n\t\t\tif rtag == intTag {\n\t\t\t\tswitch v := out.(type) {\n\t\t\t\tcase int64:\n\t\t\t\t\trtag = floatTag\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\tcase int:\n\t\t\t\t\trtag = floatTag\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfailf(\"cannot decode %s `%s` as a %s\", shortTag(rtag), in, shortTag(tag))\n\t}()\n\n\t// Any data is accepted as a !!str or !!binary.\n\t// Otherwise, the prefix is enough of a hint about what it might be.\n\thint := byte('N')\n\tif in != \"\" {\n\t\thint = resolveTable[in[0]]\n\t}\n\tif hint != 0 && tag != strTag && tag != binaryTag {\n\t\t// Handle things we can lookup in a map.\n\t\tif item, ok := resolveMap[in]; ok {\n\t\t\treturn item.tag, item.value\n\t\t}\n\n\t\t// Base 60 floats are a bad idea, were dropped in YAML 1.2, and\n\t\t// are purposefully unsupported here. They're still quoted on\n\t\t// the way out for compatibility with other parser, though.\n\n\t\tswitch hint {\n\t\tcase 'M':\n\t\t\t// We've already checked the map above.\n\n\t\tcase '.':\n\t\t\t// Not in the map, so maybe a normal float.\n\t\t\tfloatv, err := strconv.ParseFloat(in, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn floatTag, floatv\n\t\t\t}\n\n\t\tcase 'D', 'S':\n\t\t\t// Int, float, or timestamp.\n\t\t\t// Only try values as a timestamp if the value is unquoted or there's an explicit\n\t\t\t// !!timestamp tag.\n\t\t\tif tag == \"\" || tag == timestampTag {\n\t\t\t\tt, ok := parseTimestamp(in)\n\t\t\t\tif ok {\n\t\t\t\t\treturn timestampTag, t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tplain := strings.Replace(in, \"_\", \"\", -1)\n\t\t\tintv, err := strconv.ParseInt(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t} else {\n\t\t\t\t\treturn intTag, intv\n\t\t\t\t}\n\t\t\t}\n\t\t\tuintv, err := strconv.ParseUint(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn intTag, uintv\n\t\t\t}\n\t\t\tif yamlStyleFloat.MatchString(plain) {\n\t\t\t\tfloatv, err := strconv.ParseFloat(plain, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn floatTag, floatv\n\t\t\t\t}\n\t\t\t}\n\t\t\tif strings.HasPrefix(plain, \"0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn intTag, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\"+plain[3:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Octals as introduced in version 1.2 of the spec.\n\t\t\t// Octals from the 1.1 spec, spelled as 0777, are still\n\t\t\t// decoded by default in v3 as well for compatibility.\n\t\t\t// May be dropped in v4 depending on how usage evolves.\n\t\t\tif strings.HasPrefix(plain, \"0o\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn intTag, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0o\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\"+plain[3:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"internal error: missing handler for resolver table: \" + string(rune(hint)) + \" (with \" + in + \")\")\n\t\t}\n\t}\n\treturn strTag, in\n}\n\n// encodeBase64 encodes s as base64 that is broken up into multiple lines\n// as appropriate for the resulting length.\nfunc encodeBase64(s string) string {\n\tconst lineLen = 70\n\tencLen := base64.StdEncoding.EncodedLen(len(s))\n\tlines := encLen/lineLen + 1\n\tbuf := make([]byte, encLen*2+lines)\n\tin := buf[0:encLen]\n\tout := buf[encLen:]\n\tbase64.StdEncoding.Encode(in, []byte(s))\n\tk := 0\n\tfor i := 0; i < len(in); i += lineLen {\n\t\tj := i + lineLen\n\t\tif j > len(in) {\n\t\t\tj = len(in)\n\t\t}\n\t\tk += copy(out[k:], in[i:j])\n\t\tif lines > 1 {\n\t\t\tout[k] = '\\n'\n\t\t\tk++\n\t\t}\n\t}\n\treturn string(out[:k])\n}\n\n// This is a subset of the formats allowed by the regular expression\n// defined at http://yaml.org/type/timestamp.html.\nvar allowedTimestampFormats = []string{\n\t\"2006-1-2T15:4:5.999999999Z07:00\", // RCF3339Nano with short date fields.\n\t\"2006-1-2t15:4:5.999999999Z07:00\", // RFC3339Nano with short date fields and lower-case \"t\".\n\t\"2006-1-2 15:4:5.999999999\",       // space separated with no time zone\n\t\"2006-1-2\",                        // date only\n\t// Notable exception: time.Parse cannot handle: \"2001-12-14 21:59:43.10 -5\"\n\t// from the set of examples.\n}\n\n// parseTimestamp parses s as a timestamp string and\n// returns the timestamp and reports whether it succeeded.\n// Timestamp formats are defined at http://yaml.org/type/timestamp.html\nfunc parseTimestamp(s string) (time.Time, bool) {\n\t// TODO write code to check all the formats supported by\n\t// http://yaml.org/type/timestamp.html instead of using time.Parse.\n\n\t// Quick check: all date formats start with YYYY-.\n\ti := 0\n\tfor ; i < len(s); i++ {\n\t\tif c := s[i]; c < '0' || c > '9' {\n\t\t\tbreak\n\t\t}\n\t}\n\tif i != 4 || i == len(s) || s[i] != '-' {\n\t\treturn time.Time{}, false\n\t}\n\tfor _, format := range allowedTimestampFormats {\n\t\tif t, err := time.Parse(format, s); err == nil {\n\t\t\treturn t, true\n\t\t}\n\t}\n\treturn time.Time{}, false\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/scannerc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Introduction\n// ************\n//\n// The following notes assume that you are familiar with the YAML specification\n// (http://yaml.org/spec/1.2/spec.html).  We mostly follow it, although in\n// some cases we are less restrictive that it requires.\n//\n// The process of transforming a YAML stream into a sequence of events is\n// divided on two steps: Scanning and Parsing.\n//\n// The Scanner transforms the input stream into a sequence of tokens, while the\n// parser transform the sequence of tokens produced by the Scanner into a\n// sequence of parsing events.\n//\n// The Scanner is rather clever and complicated. The Parser, on the contrary,\n// is a straightforward implementation of a recursive-descendant parser (or,\n// LL(1) parser, as it is usually called).\n//\n// Actually there are two issues of Scanning that might be called \"clever\", the\n// rest is quite straightforward.  The issues are \"block collection start\" and\n// \"simple keys\".  Both issues are explained below in details.\n//\n// Here the Scanning step is explained and implemented.  We start with the list\n// of all the tokens produced by the Scanner together with short descriptions.\n//\n// Now, tokens:\n//\n//      STREAM-START(encoding)          # The stream start.\n//      STREAM-END                      # The stream end.\n//      VERSION-DIRECTIVE(major,minor)  # The '%YAML' directive.\n//      TAG-DIRECTIVE(handle,prefix)    # The '%TAG' directive.\n//      DOCUMENT-START                  # '---'\n//      DOCUMENT-END                    # '...'\n//      BLOCK-SEQUENCE-START            # Indentation increase denoting a block\n//      BLOCK-MAPPING-START             # sequence or a block mapping.\n//      BLOCK-END                       # Indentation decrease.\n//      FLOW-SEQUENCE-START             # '['\n//      FLOW-SEQUENCE-END               # ']'\n//      BLOCK-SEQUENCE-START            # '{'\n//      BLOCK-SEQUENCE-END              # '}'\n//      BLOCK-ENTRY                     # '-'\n//      FLOW-ENTRY                      # ','\n//      KEY                             # '?' or nothing (simple keys).\n//      VALUE                           # ':'\n//      ALIAS(anchor)                   # '*anchor'\n//      ANCHOR(anchor)                  # '&anchor'\n//      TAG(handle,suffix)              # '!handle!suffix'\n//      SCALAR(value,style)             # A scalar.\n//\n// The following two tokens are \"virtual\" tokens denoting the beginning and the\n// end of the stream:\n//\n//      STREAM-START(encoding)\n//      STREAM-END\n//\n// We pass the information about the input stream encoding with the\n// STREAM-START token.\n//\n// The next two tokens are responsible for tags:\n//\n//      VERSION-DIRECTIVE(major,minor)\n//      TAG-DIRECTIVE(handle,prefix)\n//\n// Example:\n//\n//      %YAML   1.1\n//      %TAG    !   !foo\n//      %TAG    !yaml!  tag:yaml.org,2002:\n//      ---\n//\n// The correspoding sequence of tokens:\n//\n//      STREAM-START(utf-8)\n//      VERSION-DIRECTIVE(1,1)\n//      TAG-DIRECTIVE(\"!\",\"!foo\")\n//      TAG-DIRECTIVE(\"!yaml\",\"tag:yaml.org,2002:\")\n//      DOCUMENT-START\n//      STREAM-END\n//\n// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole\n// line.\n//\n// The document start and end indicators are represented by:\n//\n//      DOCUMENT-START\n//      DOCUMENT-END\n//\n// Note that if a YAML stream contains an implicit document (without '---'\n// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be\n// produced.\n//\n// In the following examples, we present whole documents together with the\n// produced tokens.\n//\n//      1. An implicit document:\n//\n//          'a scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          STREAM-END\n//\n//      2. An explicit document:\n//\n//          ---\n//          'a scalar'\n//          ...\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-END\n//          STREAM-END\n//\n//      3. Several documents in a stream:\n//\n//          'a scalar'\n//          ---\n//          'another scalar'\n//          ---\n//          'yet another scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"another scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"yet another scalar\",single-quoted)\n//          STREAM-END\n//\n// We have already introduced the SCALAR token above.  The following tokens are\n// used to describe aliases, anchors, tag, and scalars:\n//\n//      ALIAS(anchor)\n//      ANCHOR(anchor)\n//      TAG(handle,suffix)\n//      SCALAR(value,style)\n//\n// The following series of examples illustrate the usage of these tokens:\n//\n//      1. A recursive sequence:\n//\n//          &A [ *A ]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          ANCHOR(\"A\")\n//          FLOW-SEQUENCE-START\n//          ALIAS(\"A\")\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A tagged scalar:\n//\n//          !!float \"3.14\"  # A good approximation.\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          TAG(\"!!\",\"float\")\n//          SCALAR(\"3.14\",double-quoted)\n//          STREAM-END\n//\n//      3. Various scalar styles:\n//\n//          --- # Implicit empty plain scalars do not produce tokens.\n//          --- a plain scalar\n//          --- 'a single-quoted scalar'\n//          --- \"a double-quoted scalar\"\n//          --- |-\n//            a literal scalar\n//          --- >-\n//            a folded\n//            scalar\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          DOCUMENT-START\n//          SCALAR(\"a plain scalar\",plain)\n//          DOCUMENT-START\n//          SCALAR(\"a single-quoted scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a double-quoted scalar\",double-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a literal scalar\",literal)\n//          DOCUMENT-START\n//          SCALAR(\"a folded scalar\",folded)\n//          STREAM-END\n//\n// Now it's time to review collection-related tokens. We will start with\n// flow collections:\n//\n//      FLOW-SEQUENCE-START\n//      FLOW-SEQUENCE-END\n//      FLOW-MAPPING-START\n//      FLOW-MAPPING-END\n//      FLOW-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and\n// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}'\n// correspondingly.  FLOW-ENTRY represent the ',' indicator.  Finally the\n// indicators '?' and ':', which are used for denoting mapping keys and values,\n// are represented by the KEY and VALUE tokens.\n//\n// The following examples show flow collections:\n//\n//      1. A flow sequence:\n//\n//          [item 1, item 2, item 3]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-SEQUENCE-START\n//          SCALAR(\"item 1\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 3\",plain)\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A flow mapping:\n//\n//          {\n//              a simple key: a value,  # Note that the KEY token is produced.\n//              ? a complex key: another value,\n//          }\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          FLOW-ENTRY\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          FLOW-ENTRY\n//          FLOW-MAPPING-END\n//          STREAM-END\n//\n// A simple key is a key which is not denoted by the '?' indicator.  Note that\n// the Scanner still produce the KEY token whenever it encounters a simple key.\n//\n// For scanning block collections, the following tokens are used (note that we\n// repeat KEY and VALUE here):\n//\n//      BLOCK-SEQUENCE-START\n//      BLOCK-MAPPING-START\n//      BLOCK-END\n//      BLOCK-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation\n// increase that precedes a block collection (cf. the INDENT token in Python).\n// The token BLOCK-END denote indentation decrease that ends a block collection\n// (cf. the DEDENT token in Python).  However YAML has some syntax pecularities\n// that makes detections of these tokens more complex.\n//\n// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators\n// '-', '?', and ':' correspondingly.\n//\n// The following examples show how the tokens BLOCK-SEQUENCE-START,\n// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner:\n//\n//      1. Block sequences:\n//\n//          - item 1\n//          - item 2\n//          -\n//            - item 3.1\n//            - item 3.2\n//          -\n//            key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Block mappings:\n//\n//          a simple key: a value   # The KEY token is produced here.\n//          ? a complex key\n//          : another value\n//          a mapping:\n//            key 1: value 1\n//            key 2: value 2\n//          a sequence:\n//            - item 1\n//            - item 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML does not always require to start a new block collection from a new\n// line.  If the current line contains only '-', '?', and ':' indicators, a new\n// block collection may start at the current line.  The following examples\n// illustrate this case:\n//\n//      1. Collections in a sequence:\n//\n//          - - item 1\n//            - item 2\n//          - key 1: value 1\n//            key 2: value 2\n//          - ? complex key\n//            : complex value\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"complex key\")\n//          VALUE\n//          SCALAR(\"complex value\")\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Collections in a mapping:\n//\n//          ? a sequence\n//          : - item 1\n//            - item 2\n//          ? a mapping\n//          : key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          VALUE\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML also permits non-indented sequences if they are included into a block\n// mapping.  In this case, the token BLOCK-SEQUENCE-START is not produced:\n//\n//      key:\n//      - item 1    # BLOCK-SEQUENCE-START is NOT produced here.\n//      - item 2\n//\n// Tokens:\n//\n//      STREAM-START(utf-8)\n//      BLOCK-MAPPING-START\n//      KEY\n//      SCALAR(\"key\",plain)\n//      VALUE\n//      BLOCK-ENTRY\n//      SCALAR(\"item 1\",plain)\n//      BLOCK-ENTRY\n//      SCALAR(\"item 2\",plain)\n//      BLOCK-END\n//\n\n// Ensure that the buffer contains the required number of characters.\n// Return true on success, false on failure (reader error or memory error).\nfunc cache(parser *yaml_parser_t, length int) bool {\n\t// [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B)\n\treturn parser.unread >= length || yaml_parser_update_buffer(parser, length)\n}\n\n// Advance the buffer pointer.\nfunc skip(parser *yaml_parser_t) {\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tparser.newlines = 0\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n}\n\nfunc skip_line(parser *yaml_parser_t) {\n\tif is_crlf(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index += 2\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread -= 2\n\t\tparser.buffer_pos += 2\n\t\tparser.newlines++\n\t} else if is_break(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index++\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread--\n\t\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n\t\tparser.newlines++\n\t}\n}\n\n// Copy a character to a string buffer and advance pointers.\nfunc read(parser *yaml_parser_t, s []byte) []byte {\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tparser.newlines = 0\n\t}\n\tw := width(parser.buffer[parser.buffer_pos])\n\tif w == 0 {\n\t\tpanic(\"invalid character sequence\")\n\t}\n\tif len(s) == 0 {\n\t\ts = make([]byte, 0, 32)\n\t}\n\tif w == 1 && len(s)+w <= cap(s) {\n\t\ts = s[:len(s)+1]\n\t\ts[len(s)-1] = parser.buffer[parser.buffer_pos]\n\t\tparser.buffer_pos++\n\t} else {\n\t\ts = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...)\n\t\tparser.buffer_pos += w\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\treturn s\n}\n\n// Copy a line break character to a string buffer and advance pointers.\nfunc read_line(parser *yaml_parser_t, s []byte) []byte {\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\tswitch {\n\tcase buf[pos] == '\\r' && buf[pos+1] == '\\n':\n\t\t// CR LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\t\tparser.mark.index++\n\t\tparser.unread--\n\tcase buf[pos] == '\\r' || buf[pos] == '\\n':\n\t\t// CR|LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 1\n\tcase buf[pos] == '\\xC2' && buf[pos+1] == '\\x85':\n\t\t// NEL . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\tcase buf[pos] == '\\xE2' && buf[pos+1] == '\\x80' && (buf[pos+2] == '\\xA8' || buf[pos+2] == '\\xA9'):\n\t\t// LS|PS . LS|PS\n\t\ts = append(s, buf[parser.buffer_pos:pos+3]...)\n\t\tparser.buffer_pos += 3\n\tdefault:\n\t\treturn s\n\t}\n\tparser.mark.index++\n\tparser.mark.column = 0\n\tparser.mark.line++\n\tparser.unread--\n\tparser.newlines++\n\treturn s\n}\n\n// Get the next token.\nfunc yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Erase the token object.\n\t*token = yaml_token_t{} // [Go] Is this necessary?\n\n\t// No tokens after STREAM-END or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR {\n\t\treturn true\n\t}\n\n\t// Ensure that the tokens queue contains enough tokens.\n\tif !parser.token_available {\n\t\tif !yaml_parser_fetch_more_tokens(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Fetch the next token from the queue.\n\t*token = parser.tokens[parser.tokens_head]\n\tparser.tokens_head++\n\tparser.tokens_parsed++\n\tparser.token_available = false\n\n\tif token.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.stream_end_produced = true\n\t}\n\treturn true\n}\n\n// Set the scanner error and return false.\nfunc yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool {\n\tparser.error = yaml_SCANNER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = parser.mark\n\treturn false\n}\n\nfunc yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool {\n\tcontext := \"while parsing a tag\"\n\tif directive {\n\t\tcontext = \"while parsing a %TAG directive\"\n\t}\n\treturn yaml_parser_set_scanner_error(parser, context, context_mark, problem)\n}\n\nfunc trace(args ...interface{}) func() {\n\tpargs := append([]interface{}{\"+++\"}, args...)\n\tfmt.Println(pargs...)\n\tpargs = append([]interface{}{\"---\"}, args...)\n\treturn func() { fmt.Println(pargs...) }\n}\n\n// Ensure that the tokens queue contains at least one token which can be\n// returned to the Parser.\nfunc yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {\n\t// While we need more tokens to fetch, do it.\n\tfor {\n\t\t// [Go] The comment parsing logic requires a lookahead of two tokens\n\t\t// so that foot comments may be parsed in time of associating them\n\t\t// with the tokens that are parsed before them, and also for line\n\t\t// comments to be transformed into head comments in some edge cases.\n\t\tif parser.tokens_head < len(parser.tokens)-2 {\n\t\t\t// If a potential simple key is at the head position, we need to fetch\n\t\t\t// the next token to disambiguate it.\n\t\t\thead_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed]\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t} else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok {\n\t\t\t\treturn false\n\t\t\t} else if !valid {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Fetch the next token.\n\t\tif !yaml_parser_fetch_next_token(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tparser.token_available = true\n\treturn true\n}\n\n// The dispatcher for token fetchers.\nfunc yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) {\n\t// Ensure that the buffer is initialized.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check if we just started scanning.  Fetch STREAM-START then.\n\tif !parser.stream_start_produced {\n\t\treturn yaml_parser_fetch_stream_start(parser)\n\t}\n\n\tscan_mark := parser.mark\n\n\t// Eat whitespaces and comments until we reach the next token.\n\tif !yaml_parser_scan_to_next_token(parser) {\n\t\treturn false\n\t}\n\n\t// [Go] While unrolling indents, transform the head comments of prior\n\t// indentation levels observed after scan_start into foot comments at\n\t// the respective indexes.\n\n\t// Check the indentation level against the current column.\n\tif !yaml_parser_unroll_indent(parser, parser.mark.column, scan_mark) {\n\t\treturn false\n\t}\n\n\t// Ensure that the buffer contains at least 4 characters.  4 is the length\n\t// of the longest indicators ('--- ' and '... ').\n\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\treturn false\n\t}\n\n\t// Is it the end of the stream?\n\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\treturn yaml_parser_fetch_stream_end(parser)\n\t}\n\n\t// Is it a directive?\n\tif parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' {\n\t\treturn yaml_parser_fetch_directive(parser)\n\t}\n\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\n\t// Is it the document start indicator?\n\tif parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN)\n\t}\n\n\t// Is it the document end indicator?\n\tif parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN)\n\t}\n\n\tcomment_mark := parser.mark\n\tif len(parser.tokens) > 0 && (parser.flow_level == 0 && buf[pos] == ':' || parser.flow_level > 0 && buf[pos] == ',') {\n\t\t// Associate any following comments with the prior token.\n\t\tcomment_mark = parser.tokens[len(parser.tokens)-1].start_mark\n\t}\n\tdefer func() {\n\t\tif !ok {\n\t\t\treturn\n\t\t}\n\t\tif len(parser.tokens) > 0 && parser.tokens[len(parser.tokens)-1].typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\t\t// Sequence indicators alone have no line comments. It becomes\n\t\t\t// a head comment for whatever follows.\n\t\t\treturn\n\t\t}\n\t\tif !yaml_parser_scan_line_comment(parser, comment_mark) {\n\t\t\tok = false\n\t\t\treturn\n\t\t}\n\t}()\n\n\t// Is it the flow sequence start indicator?\n\tif buf[pos] == '[' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN)\n\t}\n\n\t// Is it the flow mapping start indicator?\n\tif parser.buffer[parser.buffer_pos] == '{' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN)\n\t}\n\n\t// Is it the flow sequence end indicator?\n\tif parser.buffer[parser.buffer_pos] == ']' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_SEQUENCE_END_TOKEN)\n\t}\n\n\t// Is it the flow mapping end indicator?\n\tif parser.buffer[parser.buffer_pos] == '}' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_MAPPING_END_TOKEN)\n\t}\n\n\t// Is it the flow entry indicator?\n\tif parser.buffer[parser.buffer_pos] == ',' {\n\t\treturn yaml_parser_fetch_flow_entry(parser)\n\t}\n\n\t// Is it the block entry indicator?\n\tif parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) {\n\t\treturn yaml_parser_fetch_block_entry(parser)\n\t}\n\n\t// Is it the key indicator?\n\tif parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_key(parser)\n\t}\n\n\t// Is it the value indicator?\n\tif parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_value(parser)\n\t}\n\n\t// Is it an alias?\n\tif parser.buffer[parser.buffer_pos] == '*' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN)\n\t}\n\n\t// Is it an anchor?\n\tif parser.buffer[parser.buffer_pos] == '&' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN)\n\t}\n\n\t// Is it a tag?\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\treturn yaml_parser_fetch_tag(parser)\n\t}\n\n\t// Is it a literal scalar?\n\tif parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, true)\n\t}\n\n\t// Is it a folded scalar?\n\tif parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, false)\n\t}\n\n\t// Is it a single-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, true)\n\t}\n\n\t// Is it a double-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, false)\n\t}\n\n\t// Is it a plain scalar?\n\t//\n\t// A plain scalar may start with any non-blank characters except\n\t//\n\t//      '-', '?', ':', ',', '[', ']', '{', '}',\n\t//      '#', '&', '*', '!', '|', '>', '\\'', '\\\"',\n\t//      '%', '@', '`'.\n\t//\n\t// In the block context (and, for the '-' indicator, in the flow context\n\t// too), it may also start with the characters\n\t//\n\t//      '-', '?', ':'\n\t//\n\t// if it is followed by a non-space character.\n\t//\n\t// The last rule is more restrictive than the specification requires.\n\t// [Go] TODO Make this logic more reasonable.\n\t//switch parser.buffer[parser.buffer_pos] {\n\t//case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '\"', '\\'', '@', '%', '-', '`':\n\t//}\n\tif !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' ||\n\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\tparser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' ||\n\t\tparser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '\"' || parser.buffer[parser.buffer_pos] == '%' ||\n\t\tparser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') ||\n\t\t(parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) ||\n\t\t(parser.flow_level == 0 &&\n\t\t\t(parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') &&\n\t\t\t!is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_plain_scalar(parser)\n\t}\n\n\t// If we don't determine the token type so far, it is an error.\n\treturn yaml_parser_set_scanner_error(parser,\n\t\t\"while scanning for the next token\", parser.mark,\n\t\t\"found character that cannot start any token\")\n}\n\nfunc yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) {\n\tif !simple_key.possible {\n\t\treturn false, true\n\t}\n\n\t// The 1.2 specification says:\n\t//\n\t//     \"If the ? indicator is omitted, parsing needs to see past the\n\t//     implicit key to recognize it as such. To limit the amount of\n\t//     lookahead required, the “:” indicator must appear at most 1024\n\t//     Unicode characters beyond the start of the key. In addition, the key\n\t//     is restricted to a single line.\"\n\t//\n\tif simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index {\n\t\t// Check if the potential simple key to be removed is required.\n\t\tif simple_key.required {\n\t\t\treturn false, yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", simple_key.mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\tsimple_key.possible = false\n\t\treturn false, true\n\t}\n\treturn true, true\n}\n\n// Check if a simple key may start at the current position and add it if\n// needed.\nfunc yaml_parser_save_simple_key(parser *yaml_parser_t) bool {\n\t// A simple key is required at the current position if the scanner is in\n\t// the block context and the current column coincides with the indentation\n\t// level.\n\n\trequired := parser.flow_level == 0 && parser.indent == parser.mark.column\n\n\t//\n\t// If the current position may start a simple key, save it.\n\t//\n\tif parser.simple_key_allowed {\n\t\tsimple_key := yaml_simple_key_t{\n\t\t\tpossible:     true,\n\t\t\trequired:     required,\n\t\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\t\tmark:         parser.mark,\n\t\t}\n\n\t\tif !yaml_parser_remove_simple_key(parser) {\n\t\t\treturn false\n\t\t}\n\t\tparser.simple_keys[len(parser.simple_keys)-1] = simple_key\n\t\tparser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1\n\t}\n\treturn true\n}\n\n// Remove a potential simple key at the current flow level.\nfunc yaml_parser_remove_simple_key(parser *yaml_parser_t) bool {\n\ti := len(parser.simple_keys) - 1\n\tif parser.simple_keys[i].possible {\n\t\t// If the key is required, it is an error.\n\t\tif parser.simple_keys[i].required {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", parser.simple_keys[i].mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\t// Remove the key from the stack.\n\t\tparser.simple_keys[i].possible = false\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number)\n\t}\n\treturn true\n}\n\n// max_flow_level limits the flow_level\nconst max_flow_level = 10000\n\n// Increase the flow level and resize the simple key list if needed.\nfunc yaml_parser_increase_flow_level(parser *yaml_parser_t) bool {\n\t// Reset the simple key on the next level.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{\n\t\tpossible:     false,\n\t\trequired:     false,\n\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\tmark:         parser.mark,\n\t})\n\n\t// Increase the flow level.\n\tparser.flow_level++\n\tif parser.flow_level > max_flow_level {\n\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\"while increasing flow level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_flow_level))\n\t}\n\treturn true\n}\n\n// Decrease the flow level.\nfunc yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool {\n\tif parser.flow_level > 0 {\n\t\tparser.flow_level--\n\t\tlast := len(parser.simple_keys) - 1\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number)\n\t\tparser.simple_keys = parser.simple_keys[:last]\n\t}\n\treturn true\n}\n\n// max_indents limits the indents stack size\nconst max_indents = 10000\n\n// Push the current indentation level to the stack and set the new level\n// the current column is greater than the indentation level.  In this case,\n// append or insert the specified token into the token queue.\nfunc yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tif parser.indent < column {\n\t\t// Push the current indentation level to the stack and set the new\n\t\t// indentation level.\n\t\tparser.indents = append(parser.indents, parser.indent)\n\t\tparser.indent = column\n\t\tif len(parser.indents) > max_indents {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while increasing indent level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_indents))\n\t\t}\n\n\t\t// Create a token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        typ,\n\t\t\tstart_mark: mark,\n\t\t\tend_mark:   mark,\n\t\t}\n\t\tif number > -1 {\n\t\t\tnumber -= parser.tokens_parsed\n\t\t}\n\t\tyaml_insert_token(parser, number, &token)\n\t}\n\treturn true\n}\n\n// Pop indentation levels from the indents stack until the current level\n// becomes less or equal to the column.  For each indentation level, append\n// the BLOCK-END token.\nfunc yaml_parser_unroll_indent(parser *yaml_parser_t, column int, scan_mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tblock_mark := scan_mark\n\tblock_mark.index--\n\n\t// Loop through the indentation levels in the stack.\n\tfor parser.indent > column {\n\n\t\t// [Go] Reposition the end token before potential following\n\t\t//      foot comments of parent blocks. For that, search\n\t\t//      backwards for recent comments that were at the same\n\t\t//      indent as the block that is ending now.\n\t\tstop_index := block_mark.index\n\t\tfor i := len(parser.comments) - 1; i >= 0; i-- {\n\t\t\tcomment := &parser.comments[i]\n\n\t\t\tif comment.end_mark.index < stop_index {\n\t\t\t\t// Don't go back beyond the start of the comment/whitespace scan, unless column < 0.\n\t\t\t\t// If requested indent column is < 0, then the document is over and everything else\n\t\t\t\t// is a foot anyway.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif comment.start_mark.column == parser.indent+1 {\n\t\t\t\t// This is a good match. But maybe there's a former comment\n\t\t\t\t// at that same indent level, so keep searching.\n\t\t\t\tblock_mark = comment.start_mark\n\t\t\t}\n\n\t\t\t// While the end of the former comment matches with\n\t\t\t// the start of the following one, we know there's\n\t\t\t// nothing in between and scanning is still safe.\n\t\t\tstop_index = comment.scan_mark.index\n\t\t}\n\n\t\t// Create a token and append it to the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_BLOCK_END_TOKEN,\n\t\t\tstart_mark: block_mark,\n\t\t\tend_mark:   block_mark,\n\t\t}\n\t\tyaml_insert_token(parser, -1, &token)\n\n\t\t// Pop the indentation level.\n\t\tparser.indent = parser.indents[len(parser.indents)-1]\n\t\tparser.indents = parser.indents[:len(parser.indents)-1]\n\t}\n\treturn true\n}\n\n// Initialize the scanner and produce the STREAM-START token.\nfunc yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool {\n\n\t// Set the initial indentation.\n\tparser.indent = -1\n\n\t// Initialize the simple key stack.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})\n\n\tparser.simple_keys_by_tok = make(map[int]int)\n\n\t// A simple key is allowed at the beginning of the stream.\n\tparser.simple_key_allowed = true\n\n\t// We have started.\n\tparser.stream_start_produced = true\n\n\t// Create the STREAM-START token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_START_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t\tencoding:   parser.encoding,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the STREAM-END token and shut down the scanner.\nfunc yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool {\n\n\t// Force new line.\n\tif parser.mark.column != 0 {\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t}\n\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the STREAM-END token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_END_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token.\nfunc yaml_parser_fetch_directive(parser *yaml_parser_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the YAML-DIRECTIVE or TAG-DIRECTIVE token.\n\ttoken := yaml_token_t{}\n\tif !yaml_parser_scan_directive(parser, &token) {\n\t\treturn false\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the DOCUMENT-START or DOCUMENT-END token.\nfunc yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\n\tskip(parser)\n\tskip(parser)\n\tskip(parser)\n\n\tend_mark := parser.mark\n\n\t// Create the DOCUMENT-START or DOCUMENT-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token.\nfunc yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\n\t// The indicators '[' and '{' may start a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Increase the flow level.\n\tif !yaml_parser_increase_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow the indicators '[' and '{'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token.\nfunc yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset any potential simple key on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Decrease the flow level.\n\tif !yaml_parser_decrease_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// No simple keys after the indicators ']' and '}'.\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-ENTRY token.\nfunc yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool {\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after ','.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_FLOW_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the BLOCK-ENTRY token.\nfunc yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool {\n\t// Check if the scanner is in the block context.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new entry.\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"block sequence entries are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-SEQUENCE-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\t// It is an error for the '-' indicator to occur in the flow context,\n\t\t// but we let the Parser detect and report about it because the Parser\n\t\t// is able to point to the context.\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '-'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the BLOCK-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_BLOCK_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the KEY token.\nfunc yaml_parser_fetch_key(parser *yaml_parser_t) bool {\n\n\t// In the block context, additional checks are required.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new key (not nessesary simple).\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"mapping keys are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '?' in the block context.\n\tparser.simple_key_allowed = parser.flow_level == 0\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the KEY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_KEY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the VALUE token.\nfunc yaml_parser_fetch_value(parser *yaml_parser_t) bool {\n\n\tsimple_key := &parser.simple_keys[len(parser.simple_keys)-1]\n\n\t// Have we found a simple key?\n\tif valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok {\n\t\treturn false\n\n\t} else if valid {\n\n\t\t// Create the KEY token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_KEY_TOKEN,\n\t\t\tstart_mark: simple_key.mark,\n\t\t\tend_mark:   simple_key.mark,\n\t\t}\n\t\tyaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token)\n\n\t\t// In the block context, we may need to add the BLOCK-MAPPING-START token.\n\t\tif !yaml_parser_roll_indent(parser, simple_key.mark.column,\n\t\t\tsimple_key.token_number,\n\t\t\tyaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Remove the simple key.\n\t\tsimple_key.possible = false\n\t\tdelete(parser.simple_keys_by_tok, simple_key.token_number)\n\n\t\t// A simple key cannot follow another simple key.\n\t\tparser.simple_key_allowed = false\n\n\t} else {\n\t\t// The ':' indicator follows a complex key.\n\n\t\t// In the block context, extra checks are required.\n\t\tif parser.flow_level == 0 {\n\n\t\t\t// Check if we are allowed to start a complex value.\n\t\t\tif !parser.simple_key_allowed {\n\t\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\t\"mapping values are not allowed in this context\")\n\t\t\t}\n\n\t\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Simple keys after ':' are allowed in the block context.\n\t\tparser.simple_key_allowed = parser.flow_level == 0\n\t}\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the VALUE token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_VALUE_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the ALIAS or ANCHOR token.\nfunc yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// An anchor or an alias could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow an anchor or an alias.\n\tparser.simple_key_allowed = false\n\n\t// Create the ALIAS or ANCHOR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_anchor(parser, &token, typ) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the TAG token.\nfunc yaml_parser_fetch_tag(parser *yaml_parser_t) bool {\n\t// A tag could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a tag.\n\tparser.simple_key_allowed = false\n\n\t// Create the TAG token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_tag(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens.\nfunc yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool {\n\t// Remove any potential simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow a block scalar.\n\tparser.simple_key_allowed = true\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_block_scalar(parser, &token, literal) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens.\nfunc yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_flow_scalar(parser, &token, single) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,plain) token.\nfunc yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_plain_scalar(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Eat whitespaces and comments until the next token is found.\nfunc yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool {\n\n\tscan_mark := parser.mark\n\n\t// Until the next token is not found.\n\tfor {\n\t\t// Allow the BOM mark to start a line.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t}\n\n\t\t// Eat whitespaces.\n\t\t// Tabs are allowed:\n\t\t//  - in the flow context\n\t\t//  - in the block context, but not at the beginning of the line or\n\t\t//  after '-', '?', or ':' (complex value).\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\\t') {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check if we just had a line comment under a sequence entry that\n\t\t// looks more like a header to the following content. Similar to this:\n\t\t//\n\t\t// - # The comment\n\t\t//   - Some data\n\t\t//\n\t\t// If so, transform the line comment to a head comment and reposition.\n\t\tif len(parser.comments) > 0 && len(parser.tokens) > 1 {\n\t\t\ttokenA := parser.tokens[len(parser.tokens)-2]\n\t\t\ttokenB := parser.tokens[len(parser.tokens)-1]\n\t\t\tcomment := &parser.comments[len(parser.comments)-1]\n\t\t\tif tokenA.typ == yaml_BLOCK_SEQUENCE_START_TOKEN && tokenB.typ == yaml_BLOCK_ENTRY_TOKEN && len(comment.line) > 0 && !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// If it was in the prior line, reposition so it becomes a\n\t\t\t\t// header of the follow up token. Otherwise, keep it in place\n\t\t\t\t// so it becomes a header of the former.\n\t\t\t\tcomment.head = comment.line\n\t\t\t\tcomment.line = nil\n\t\t\t\tif comment.start_mark.line == parser.mark.line-1 {\n\t\t\t\t\tcomment.token_mark = parser.mark\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Eat a comment until a line break.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tif !yaml_parser_scan_comments(parser, scan_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// If it is a line break, eat it.\n\t\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tskip_line(parser)\n\n\t\t\t// In the block context, a new line may start a simple key.\n\t\t\tif parser.flow_level == 0 {\n\t\t\t\tparser.simple_key_allowed = true\n\t\t\t}\n\t\t} else {\n\t\t\tbreak // We have found a token.\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token.\n//\n// Scope:\n//      %YAML    1.1    # a comment \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Eat '%'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the directive name.\n\tvar name []byte\n\tif !yaml_parser_scan_directive_name(parser, start_mark, &name) {\n\t\treturn false\n\t}\n\n\t// Is it a YAML directive?\n\tif bytes.Equal(name, []byte(\"YAML\")) {\n\t\t// Scan the VERSION directive value.\n\t\tvar major, minor int8\n\t\tif !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a VERSION-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_VERSION_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tmajor:      major,\n\t\t\tminor:      minor,\n\t\t}\n\n\t\t// Is it a TAG directive?\n\t} else if bytes.Equal(name, []byte(\"TAG\")) {\n\t\t// Scan the TAG directive value.\n\t\tvar handle, prefix []byte\n\t\tif !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a TAG-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_TAG_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tvalue:      handle,\n\t\t\tprefix:     prefix,\n\t\t}\n\n\t\t// Unknown directive.\n\t} else {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unknown directive name\")\n\t\treturn false\n\t}\n\n\t// Eat the rest of the line including any comments.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t// [Go] Discard this inline comment for the time being.\n\t\t//if !yaml_parser_scan_line_comment(parser, start_mark) {\n\t\t//\treturn false\n\t\t//}\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\treturn true\n}\n\n// Scan the directive name.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//       ^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//       ^^^\n//\nfunc yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool {\n\t// Consume the directive name.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tvar s []byte\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the name is empty.\n\tif len(s) == 0 {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"could not find expected directive name\")\n\t\treturn false\n\t}\n\n\t// Check for an blank character after the name.\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unexpected non-alphabetical character\")\n\t\treturn false\n\t}\n\t*name = s\n\treturn true\n}\n\n// Scan the value of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//           ^^^^^^\nfunc yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool {\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Consume the major version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, major) {\n\t\treturn false\n\t}\n\n\t// Eat '.'.\n\tif parser.buffer[parser.buffer_pos] != '.' {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected digit or '.' character\")\n\t}\n\n\tskip(parser)\n\n\t// Consume the minor version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, minor) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nconst max_number_length = 2\n\n// Scan the version number of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//              ^\n//      %YAML   1.1     # a comment \\n\n//                ^\nfunc yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool {\n\n\t// Repeat while the next character is digit.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar value, length int8\n\tfor is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Check if the number is too long.\n\t\tlength++\n\t\tif length > max_number_length {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\t\tstart_mark, \"found extremely long version number\")\n\t\t}\n\t\tvalue = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos))\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the number was present.\n\tif length == 0 {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected version number\")\n\t}\n\t*number = value\n\treturn true\n}\n\n// Scan the value of a TAG-DIRECTIVE token.\n//\n// Scope:\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool {\n\tvar handle_value, prefix_value []byte\n\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a handle.\n\tif !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace\")\n\t\treturn false\n\t}\n\n\t// Eat whitespaces.\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a prefix.\n\tif !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace or line break.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\t*handle = handle_value\n\t*prefix = prefix_value\n\treturn true\n}\n\nfunc yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool {\n\tvar s []byte\n\n\t// Eat the indicator character.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the value.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tend_mark := parser.mark\n\n\t/*\n\t * Check if length of the anchor is greater than 0 and it is followed by\n\t * a whitespace character or one of the indicators:\n\t *\n\t *      '?', ':', ',', ']', '}', '%', '@', '`'.\n\t */\n\n\tif len(s) == 0 ||\n\t\t!(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '`') {\n\t\tcontext := \"while scanning an alias\"\n\t\tif typ == yaml_ANCHOR_TOKEN {\n\t\t\tcontext = \"while scanning an anchor\"\n\t\t}\n\t\tyaml_parser_set_scanner_error(parser, context, start_mark,\n\t\t\t\"did not find expected alphabetic or numeric character\")\n\t\treturn false\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t}\n\n\treturn true\n}\n\n/*\n * Scan a TAG token.\n */\n\nfunc yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool {\n\tvar handle, suffix []byte\n\n\tstart_mark := parser.mark\n\n\t// Check if the tag is in the canonical form.\n\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\treturn false\n\t}\n\n\tif parser.buffer[parser.buffer_pos+1] == '<' {\n\t\t// Keep the handle as ''\n\n\t\t// Eat '!<'\n\t\tskip(parser)\n\t\tskip(parser)\n\n\t\t// Consume the tag value.\n\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for '>' and eat it.\n\t\tif parser.buffer[parser.buffer_pos] != '>' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\t\tstart_mark, \"did not find the expected '>'\")\n\t\t\treturn false\n\t\t}\n\n\t\tskip(parser)\n\t} else {\n\t\t// The tag has either the '!suffix' or the '!handle!suffix' form.\n\n\t\t// First, try to scan a handle.\n\t\tif !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if it is, indeed, handle.\n\t\tif handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' {\n\t\t\t// Scan the suffix now.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\t// It wasn't a handle after all.  Scan the rest of the tag.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Set the handle to '!'.\n\t\t\thandle = []byte{'!'}\n\n\t\t\t// A special case: the '!' tag.  Set the handle to '' and the\n\t\t\t// suffix to '!'.\n\t\t\tif len(suffix) == 0 {\n\t\t\t\thandle, suffix = suffix, handle\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check the character which ends the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_TAG_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      handle,\n\t\tsuffix:     suffix,\n\t}\n\treturn true\n}\n\n// Scan a tag handle.\nfunc yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool {\n\t// Check the initial '!' character.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif parser.buffer[parser.buffer_pos] != '!' {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected '!'\")\n\t\treturn false\n\t}\n\n\tvar s []byte\n\n\t// Copy the '!' character.\n\ts = read(parser, s)\n\n\t// Copy all subsequent alphabetical and numerical characters.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the trailing character is '!' and copy it.\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\ts = read(parser, s)\n\t} else {\n\t\t// It's either the '!' tag or not really a tag handle.  If it's a %TAG\n\t\t// directive, it's an error.  If it's a tag token, it must be a part of URI.\n\t\tif directive && string(s) != \"!\" {\n\t\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find expected '!'\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\t*handle = s\n\treturn true\n}\n\n// Scan a tag.\nfunc yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool {\n\t//size_t length = head ? strlen((char *)head) : 0\n\tvar s []byte\n\thasTag := len(head) > 0\n\n\t// Copy the head if needed.\n\t//\n\t// Note that we don't copy the leading '!' character.\n\tif len(head) > 1 {\n\t\ts = append(s, head[1:]...)\n\t}\n\n\t// Scan the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// The set of characters that may appear in URI is as follows:\n\t//\n\t//      '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&',\n\t//      '=', '+', '$', ',', '.', '!', '~', '*', '\\'', '(', ')', '[', ']',\n\t//      '%'.\n\t// [Go] TODO Convert this into more reasonable logic.\n\tfor is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' ||\n\t\tparser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' ||\n\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' ||\n\t\tparser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' ||\n\t\tparser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' ||\n\t\tparser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' ||\n\t\tparser.buffer[parser.buffer_pos] == '%' {\n\t\t// Check if it is a URI-escape sequence.\n\t\tif parser.buffer[parser.buffer_pos] == '%' {\n\t\t\tif !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\ts = read(parser, s)\n\t\t}\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\thasTag = true\n\t}\n\n\tif !hasTag {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected tag URI\")\n\t\treturn false\n\t}\n\t*uri = s\n\treturn true\n}\n\n// Decode an URI-escape sequence corresponding to a single UTF-8 character.\nfunc yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool {\n\n\t// Decode the required number of characters.\n\tw := 1024\n\tfor w > 0 {\n\t\t// Check for a URI-escaped octet.\n\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\treturn false\n\t\t}\n\n\t\tif !(parser.buffer[parser.buffer_pos] == '%' &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+1) &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+2)) {\n\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find URI escaped octet\")\n\t\t}\n\n\t\t// Get the octet.\n\t\toctet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2))\n\n\t\t// If it is the leading octet, determine the length of the UTF-8 sequence.\n\t\tif w == 1024 {\n\t\t\tw = width(octet)\n\t\t\tif w == 0 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect leading UTF-8 octet\")\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if the trailing octet is correct.\n\t\t\tif octet&0xC0 != 0x80 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect trailing UTF-8 octet\")\n\t\t\t}\n\t\t}\n\n\t\t// Copy the octet and move the pointers.\n\t\t*s = append(*s, octet)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tw--\n\t}\n\treturn true\n}\n\n// Scan a block scalar.\nfunc yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool {\n\t// Eat the indicator '|' or '>'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the additional block scalar indicators.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check for a chomping indicator.\n\tvar chomping, increment int\n\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t// Set the chomping method and eat the indicator.\n\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\tchomping = +1\n\t\t} else {\n\t\t\tchomping = -1\n\t\t}\n\t\tskip(parser)\n\n\t\t// Check for an indentation indicator.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif is_digit(parser.buffer, parser.buffer_pos) {\n\t\t\t// Check that the indentation is greater than 0.\n\t\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Get the indentation level and eat the indicator.\n\t\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\t\tskip(parser)\n\t\t}\n\n\t} else if is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Do the same as above, but in the opposite order.\n\n\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\treturn false\n\t\t}\n\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\tskip(parser)\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\t\tchomping = +1\n\t\t\t} else {\n\t\t\t\tchomping = -1\n\t\t\t}\n\t\t\tskip(parser)\n\t\t}\n\t}\n\n\t// Eat whitespaces and comments to the end of the line.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tif !yaml_parser_scan_line_comment(parser, start_mark) {\n\t\t\treturn false\n\t\t}\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\tend_mark := parser.mark\n\n\t// Set the indentation level if it was specified.\n\tvar indent int\n\tif increment > 0 {\n\t\tif parser.indent >= 0 {\n\t\t\tindent = parser.indent + increment\n\t\t} else {\n\t\t\tindent = increment\n\t\t}\n\t}\n\n\t// Scan the leading line breaks and determine the indentation level if needed.\n\tvar s, leading_break, trailing_breaks []byte\n\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\treturn false\n\t}\n\n\t// Scan the block scalar content.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar leading_blank, trailing_blank bool\n\tfor parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) {\n\t\t// We are at the beginning of a non-empty line.\n\n\t\t// Is it a trailing whitespace?\n\t\ttrailing_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Check if we need to fold the leading line break.\n\t\tif !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t// Do we need to join the lines by space?\n\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\ts = append(s, ' ')\n\t\t\t}\n\t\t} else {\n\t\t\ts = append(s, leading_break...)\n\t\t}\n\t\tleading_break = leading_break[:0]\n\n\t\t// Append the remaining line breaks.\n\t\ts = append(s, trailing_breaks...)\n\t\ttrailing_breaks = trailing_breaks[:0]\n\n\t\t// Is it a leading whitespace?\n\t\tleading_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Consume the current line.\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\ts = read(parser, s)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\n\t\tleading_break = read_line(parser, leading_break)\n\n\t\t// Eat the following indentation spaces and line breaks.\n\t\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Chomp the tail.\n\tif chomping != -1 {\n\t\ts = append(s, leading_break...)\n\t}\n\tif chomping == 1 {\n\t\ts = append(s, trailing_breaks...)\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_LITERAL_SCALAR_STYLE,\n\t}\n\tif !literal {\n\t\ttoken.style = yaml_FOLDED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan indentation spaces and line breaks for a block scalar.  Determine the\n// indentation level if needed.\nfunc yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool {\n\t*end_mark = parser.mark\n\n\t// Eat the indentation spaces and line breaks.\n\tmax_indent := 0\n\tfor {\n\t\t// Eat the indentation spaces.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tfor (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif parser.mark.column > max_indent {\n\t\t\tmax_indent = parser.mark.column\n\t\t}\n\n\t\t// Check for a tab character messing the indentation.\n\t\tif (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found a tab character where an indentation space is expected\")\n\t\t}\n\n\t\t// Have we found a non-empty line?\n\t\tif !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\t// [Go] Should really be returning breaks instead.\n\t\t*breaks = read_line(parser, *breaks)\n\t\t*end_mark = parser.mark\n\t}\n\n\t// Determine the indentation level if needed.\n\tif *indent == 0 {\n\t\t*indent = max_indent\n\t\tif *indent < parser.indent+1 {\n\t\t\t*indent = parser.indent + 1\n\t\t}\n\t\tif *indent < 1 {\n\t\t\t*indent = 1\n\t\t}\n\t}\n\treturn true\n}\n\n// Scan a quoted scalar.\nfunc yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool {\n\t// Eat the left quote.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the content of the quoted scalar.\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tfor {\n\t\t// Check that there are no document indicators at the beginning of the line.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected document indicator\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for EOF.\n\t\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected end of stream\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tleading_blanks := false\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\t\tif single && parser.buffer[parser.buffer_pos] == '\\'' && parser.buffer[parser.buffer_pos+1] == '\\'' {\n\t\t\t\t// Is is an escaped single quote.\n\t\t\t\ts = append(s, '\\'')\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t} else if single && parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\t// It is a right single quote.\n\t\t\t\tbreak\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\t// It is a right double quote.\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' && is_break(parser.buffer, parser.buffer_pos+1) {\n\t\t\t\t// It is an escaped line break.\n\t\t\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip(parser)\n\t\t\t\tskip_line(parser)\n\t\t\t\tleading_blanks = true\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' {\n\t\t\t\t// It is an escape sequence.\n\t\t\t\tcode_length := 0\n\n\t\t\t\t// Check the escape character.\n\t\t\t\tswitch parser.buffer[parser.buffer_pos+1] {\n\t\t\t\tcase '0':\n\t\t\t\t\ts = append(s, 0)\n\t\t\t\tcase 'a':\n\t\t\t\t\ts = append(s, '\\x07')\n\t\t\t\tcase 'b':\n\t\t\t\t\ts = append(s, '\\x08')\n\t\t\t\tcase 't', '\\t':\n\t\t\t\t\ts = append(s, '\\x09')\n\t\t\t\tcase 'n':\n\t\t\t\t\ts = append(s, '\\x0A')\n\t\t\t\tcase 'v':\n\t\t\t\t\ts = append(s, '\\x0B')\n\t\t\t\tcase 'f':\n\t\t\t\t\ts = append(s, '\\x0C')\n\t\t\t\tcase 'r':\n\t\t\t\t\ts = append(s, '\\x0D')\n\t\t\t\tcase 'e':\n\t\t\t\t\ts = append(s, '\\x1B')\n\t\t\t\tcase ' ':\n\t\t\t\t\ts = append(s, '\\x20')\n\t\t\t\tcase '\"':\n\t\t\t\t\ts = append(s, '\"')\n\t\t\t\tcase '\\'':\n\t\t\t\t\ts = append(s, '\\'')\n\t\t\t\tcase '\\\\':\n\t\t\t\t\ts = append(s, '\\\\')\n\t\t\t\tcase 'N': // NEL (#x85)\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\x85')\n\t\t\t\tcase '_': // #xA0\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\xA0')\n\t\t\t\tcase 'L': // LS (#x2028)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA8')\n\t\t\t\tcase 'P': // PS (#x2029)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA9')\n\t\t\t\tcase 'x':\n\t\t\t\t\tcode_length = 2\n\t\t\t\tcase 'u':\n\t\t\t\t\tcode_length = 4\n\t\t\t\tcase 'U':\n\t\t\t\t\tcode_length = 8\n\t\t\t\tdefault:\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\tstart_mark, \"found unknown escape character\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t\t// Consume an arbitrary escape code.\n\t\t\t\tif code_length > 0 {\n\t\t\t\t\tvar value int\n\n\t\t\t\t\t// Scan the character value.\n\t\t\t\t\tif parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tif !is_hex(parser.buffer, parser.buffer_pos+k) {\n\t\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\t\tstart_mark, \"did not find expected hexdecimal number\")\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check the value and write the character.\n\t\t\t\t\tif (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF {\n\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\tstart_mark, \"found invalid Unicode character escape code\")\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tif value <= 0x7F {\n\t\t\t\t\t\ts = append(s, byte(value))\n\t\t\t\t\t} else if value <= 0x7FF {\n\t\t\t\t\t\ts = append(s, byte(0xC0+(value>>6)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t\t\ts = append(s, byte(0xE0+(value>>12)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, byte(0xF0+(value>>18)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>12)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Advance the pointer.\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tskip(parser)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// It is a non-escaped non-blank character.\n\t\t\t\ts = read(parser, s)\n\t\t\t}\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if we are at the end of the scalar.\n\t\tif single {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Join the whitespaces or fold line breaks.\n\t\tif leading_blanks {\n\t\t\t// Do we need to fold line breaks?\n\t\t\tif len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts = append(s, leading_break...)\n\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t}\n\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\tleading_break = leading_break[:0]\n\t\t} else {\n\t\t\ts = append(s, whitespaces...)\n\t\t\twhitespaces = whitespaces[:0]\n\t\t}\n\t}\n\n\t// Eat the right quote.\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_SINGLE_QUOTED_SCALAR_STYLE,\n\t}\n\tif !single {\n\t\ttoken.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan a plain scalar.\nfunc yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool {\n\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tvar leading_blanks bool\n\tvar indent = parser.indent + 1\n\n\tstart_mark := parser.mark\n\tend_mark := parser.mark\n\n\t// Consume the content of the plain scalar.\n\tfor {\n\t\t// Check for a document indicator.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for a comment.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\n\t\t\t// Check for indicators that may end a plain scalar.\n\t\t\tif (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) ||\n\t\t\t\t(parser.flow_level > 0 &&\n\t\t\t\t\t(parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '}')) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we need to join whitespaces and breaks.\n\t\t\tif leading_blanks || len(whitespaces) > 0 {\n\t\t\t\tif leading_blanks {\n\t\t\t\t\t// Do we need to fold line breaks?\n\t\t\t\t\tif leading_break[0] == '\\n' {\n\t\t\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, leading_break...)\n\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t}\n\t\t\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\t\t\tleading_break = leading_break[:0]\n\t\t\t\t\tleading_blanks = false\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, whitespaces...)\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Copy the character.\n\t\t\ts = read(parser, s)\n\n\t\t\tend_mark = parser.mark\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Is it the end?\n\t\tif !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\n\t\t\t\t// Check for tab characters that abuse indentation.\n\t\t\t\tif leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a plain scalar\",\n\t\t\t\t\t\tstart_mark, \"found a tab character that violates indentation\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check indentation level.\n\t\tif parser.flow_level == 0 && parser.mark.column < indent {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_PLAIN_SCALAR_STYLE,\n\t}\n\n\t// Note that we change the 'simple_key_allowed' flag.\n\tif leading_blanks {\n\t\tparser.simple_key_allowed = true\n\t}\n\treturn true\n}\n\nfunc yaml_parser_scan_line_comment(parser *yaml_parser_t, token_mark yaml_mark_t) bool {\n\tif parser.newlines > 0 {\n\t\treturn true\n\t}\n\n\tvar start_mark yaml_mark_t\n\tvar text []byte\n\n\tfor peek := 0; peek < 512; peek++ {\n\t\tif parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) {\n\t\t\tbreak\n\t\t}\n\t\tif is_blank(parser.buffer, parser.buffer_pos+peek) {\n\t\t\tcontinue\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos+peek] == '#' {\n\t\t\tseen := parser.mark.index+peek\n\t\t\tfor {\n\t\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tif parser.mark.index >= seen {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tskip_line(parser)\n\t\t\t\t} else if parser.mark.index >= seen {\n\t\t\t\t\tif len(text) == 0 {\n\t\t\t\t\t\tstart_mark = parser.mark\n\t\t\t\t\t}\n\t\t\t\t\ttext = read(parser, text)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbreak\n\t}\n\tif len(text) > 0 {\n\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\ttoken_mark: token_mark,\n\t\t\tstart_mark: start_mark,\n\t\t\tline: text,\n\t\t})\n\t}\n\treturn true\n}\n\nfunc yaml_parser_scan_comments(parser *yaml_parser_t, scan_mark yaml_mark_t) bool {\n\ttoken := parser.tokens[len(parser.tokens)-1]\n\n\tif token.typ == yaml_FLOW_ENTRY_TOKEN && len(parser.tokens) > 1 {\n\t\ttoken = parser.tokens[len(parser.tokens)-2]\n\t}\n\n\tvar token_mark = token.start_mark\n\tvar start_mark yaml_mark_t\n\tvar next_indent = parser.indent\n\tif next_indent < 0 {\n\t\tnext_indent = 0\n\t}\n\n\tvar recent_empty = false\n\tvar first_empty = parser.newlines <= 1\n\n\tvar line = parser.mark.line\n\tvar column = parser.mark.column\n\n\tvar text []byte\n\n\t// The foot line is the place where a comment must start to\n\t// still be considered as a foot of the prior content.\n\t// If there's some content in the currently parsed line, then\n\t// the foot is the line below it.\n\tvar foot_line = -1\n\tif scan_mark.line > 0 {\n\t\tfoot_line = parser.mark.line-parser.newlines+1\n\t\tif parser.newlines == 0 && parser.mark.column > 1 {\n\t\t\tfoot_line++\n\t\t}\n\t}\n\n\tvar peek = 0\n\tfor ; peek < 512; peek++ {\n\t\tif parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) {\n\t\t\tbreak\n\t\t}\n\t\tcolumn++\n\t\tif is_blank(parser.buffer, parser.buffer_pos+peek) {\n\t\t\tcontinue\n\t\t}\n\t\tc := parser.buffer[parser.buffer_pos+peek]\n\t\tvar close_flow = parser.flow_level > 0 && (c == ']' || c == '}')\n\t\tif close_flow || is_breakz(parser.buffer, parser.buffer_pos+peek) {\n\t\t\t// Got line break or terminator.\n\t\t\tif close_flow || !recent_empty {\n\t\t\t\tif close_flow || first_empty && (start_mark.line == foot_line && token.typ != yaml_VALUE_TOKEN || start_mark.column-1 < next_indent) {\n\t\t\t\t\t// This is the first empty line and there were no empty lines before,\n\t\t\t\t\t// so this initial part of the comment is a foot of the prior token\n\t\t\t\t\t// instead of being a head for the following one. Split it up.\n\t\t\t\t\t// Alternatively, this might also be the last comment inside a flow\n\t\t\t\t\t// scope, so it must be a footer.\n\t\t\t\t\tif len(text) > 0 {\n\t\t\t\t\t\tif start_mark.column-1 < next_indent {\n\t\t\t\t\t\t\t// If dedented it's unrelated to the prior token.\n\t\t\t\t\t\t\ttoken_mark = start_mark\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\t\t\t\t\tscan_mark:  scan_mark,\n\t\t\t\t\t\t\ttoken_mark: token_mark,\n\t\t\t\t\t\t\tstart_mark: start_mark,\n\t\t\t\t\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek, line, column},\n\t\t\t\t\t\t\tfoot:       text,\n\t\t\t\t\t\t})\n\t\t\t\t\t\tscan_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t\t\t\t\ttoken_mark = scan_mark\n\t\t\t\t\t\ttext = nil\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif len(text) > 0 && parser.buffer[parser.buffer_pos+peek] != 0 {\n\t\t\t\t\t\ttext = append(text, '\\n')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !is_break(parser.buffer, parser.buffer_pos+peek) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tfirst_empty = false\n\t\t\trecent_empty = true\n\t\t\tcolumn = 0\n\t\t\tline++\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(text) > 0 && (close_flow || column-1 < next_indent && column != start_mark.column) {\n\t\t\t// The comment at the different indentation is a foot of the\n\t\t\t// preceding data rather than a head of the upcoming one.\n\t\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\t\tscan_mark:  scan_mark,\n\t\t\t\ttoken_mark: token_mark,\n\t\t\t\tstart_mark: start_mark,\n\t\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek, line, column},\n\t\t\t\tfoot:       text,\n\t\t\t})\n\t\t\tscan_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t\ttoken_mark = scan_mark\n\t\t\ttext = nil\n\t\t}\n\n\t\tif parser.buffer[parser.buffer_pos+peek] != '#' {\n\t\t\tbreak\n\t\t}\n\n\t\tif len(text) == 0 {\n\t\t\tstart_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t} else {\n\t\t\ttext = append(text, '\\n')\n\t\t}\n\n\t\trecent_empty = false\n\n\t\t// Consume until after the consumed comment line.\n\t\tseen := parser.mark.index+peek\n\t\tfor {\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\tif parser.mark.index >= seen {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip_line(parser)\n\t\t\t} else if parser.mark.index >= seen {\n\t\t\t\ttext = read(parser, text)\n\t\t\t} else {\n\t\t\t\tskip(parser)\n\t\t\t}\n\t\t}\n\n\t\tpeek = 0\n\t\tcolumn = 0\n\t\tline = parser.mark.line\n\t\tnext_indent = parser.indent\n\t\tif next_indent < 0 {\n\t\t\tnext_indent = 0\n\t\t}\n\t}\n\n\tif len(text) > 0 {\n\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\tscan_mark:  scan_mark,\n\t\t\ttoken_mark: start_mark,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek - 1, line, column},\n\t\t\thead:       text,\n\t\t})\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/sorter.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"reflect\"\n\t\"unicode\"\n)\n\ntype keyList []reflect.Value\n\nfunc (l keyList) Len() int      { return len(l) }\nfunc (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] }\nfunc (l keyList) Less(i, j int) bool {\n\ta := l[i]\n\tb := l[j]\n\tak := a.Kind()\n\tbk := b.Kind()\n\tfor (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() {\n\t\ta = a.Elem()\n\t\tak = a.Kind()\n\t}\n\tfor (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() {\n\t\tb = b.Elem()\n\t\tbk = b.Kind()\n\t}\n\taf, aok := keyFloat(a)\n\tbf, bok := keyFloat(b)\n\tif aok && bok {\n\t\tif af != bf {\n\t\t\treturn af < bf\n\t\t}\n\t\tif ak != bk {\n\t\t\treturn ak < bk\n\t\t}\n\t\treturn numLess(a, b)\n\t}\n\tif ak != reflect.String || bk != reflect.String {\n\t\treturn ak < bk\n\t}\n\tar, br := []rune(a.String()), []rune(b.String())\n\tdigits := false\n\tfor i := 0; i < len(ar) && i < len(br); i++ {\n\t\tif ar[i] == br[i] {\n\t\t\tdigits = unicode.IsDigit(ar[i])\n\t\t\tcontinue\n\t\t}\n\t\tal := unicode.IsLetter(ar[i])\n\t\tbl := unicode.IsLetter(br[i])\n\t\tif al && bl {\n\t\t\treturn ar[i] < br[i]\n\t\t}\n\t\tif al || bl {\n\t\t\tif digits {\n\t\t\t\treturn al\n\t\t\t} else {\n\t\t\t\treturn bl\n\t\t\t}\n\t\t}\n\t\tvar ai, bi int\n\t\tvar an, bn int64\n\t\tif ar[i] == '0' || br[i] == '0' {\n\t\t\tfor j := i - 1; j >= 0 && unicode.IsDigit(ar[j]); j-- {\n\t\t\t\tif ar[j] != '0' {\n\t\t\t\t\tan = 1\n\t\t\t\t\tbn = 1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ {\n\t\t\tan = an*10 + int64(ar[ai]-'0')\n\t\t}\n\t\tfor bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ {\n\t\t\tbn = bn*10 + int64(br[bi]-'0')\n\t\t}\n\t\tif an != bn {\n\t\t\treturn an < bn\n\t\t}\n\t\tif ai != bi {\n\t\t\treturn ai < bi\n\t\t}\n\t\treturn ar[i] < br[i]\n\t}\n\treturn len(ar) < len(br)\n}\n\n// keyFloat returns a float value for v if it is a number/bool\n// and whether it is a number/bool or not.\nfunc keyFloat(v reflect.Value) (f float64, ok bool) {\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn float64(v.Int()), true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float(), true\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn float64(v.Uint()), true\n\tcase reflect.Bool:\n\t\tif v.Bool() {\n\t\t\treturn 1, true\n\t\t}\n\t\treturn 0, true\n\t}\n\treturn 0, false\n}\n\n// numLess returns whether a < b.\n// a and b must necessarily have the same kind.\nfunc numLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\t}\n\tpanic(\"not a number\")\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/writerc.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\n// Set the writer error and return false.\nfunc yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_WRITER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Flush the output buffer.\nfunc yaml_emitter_flush(emitter *yaml_emitter_t) bool {\n\tif emitter.write_handler == nil {\n\t\tpanic(\"write handler not set\")\n\t}\n\n\t// Check if the buffer is empty.\n\tif emitter.buffer_pos == 0 {\n\t\treturn true\n\t}\n\n\tif err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {\n\t\treturn yaml_emitter_set_writer_error(emitter, \"write error: \"+err.Error())\n\t}\n\temitter.buffer_pos = 0\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yaml.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package yaml implements YAML support for the Go language.\n//\n// Source code and other details for the project are available at GitHub:\n//\n//   https://github.com/go-yaml/yaml\n//\npackage yaml\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode/utf8\"\n)\n\n// The Unmarshaler interface may be implemented by types to customize their\n// behavior when being unmarshaled from a YAML document.\ntype Unmarshaler interface {\n\tUnmarshalYAML(value *Node) error\n}\n\ntype obsoleteUnmarshaler interface {\n\tUnmarshalYAML(unmarshal func(interface{}) error) error\n}\n\n// The Marshaler interface may be implemented by types to customize their\n// behavior when being marshaled into a YAML document. The returned value\n// is marshaled in place of the original value implementing Marshaler.\n//\n// If an error is returned by MarshalYAML, the marshaling procedure stops\n// and returns with the provided error.\ntype Marshaler interface {\n\tMarshalYAML() (interface{}, error)\n}\n\n// Unmarshal decodes the first document found within the in byte slice\n// and assigns decoded values into the out value.\n//\n// Maps and pointers (to a struct, string, int, etc) are accepted as out\n// values. If an internal pointer within a struct is not initialized,\n// the yaml package will initialize it if necessary for unmarshalling\n// the provided data. The out parameter must not be nil.\n//\n// The type of the decoded values should be compatible with the respective\n// values in out. If one or more values cannot be decoded due to a type\n// mismatches, decoding continues partially until the end of the YAML\n// content, and a *yaml.TypeError is returned with details for all\n// missed values.\n//\n// Struct fields are only unmarshalled if they are exported (have an\n// upper case first letter), and are unmarshalled using the field name\n// lowercased as the default key. Custom keys may be defined via the\n// \"yaml\" name in the field tag: the content preceding the first comma\n// is used as the key, and the following comma-separated options are\n// used to tweak the marshalling process (see Marshal).\n// Conflicting names result in a runtime error.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     var t T\n//     yaml.Unmarshal([]byte(\"a: 1\\nb: 2\"), &t)\n//\n// See the documentation of Marshal for the format of tags and a list of\n// supported tag options.\n//\nfunc Unmarshal(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, false)\n}\n\n// A Decoder reads and decodes YAML values from an input stream.\ntype Decoder struct {\n\tparser      *parser\n\tknownFields bool\n}\n\n// NewDecoder returns a new decoder that reads from r.\n//\n// The decoder introduces its own buffering and may read\n// data from r beyond the YAML values requested.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{\n\t\tparser: newParserFromReader(r),\n\t}\n}\n\n// KnownFields ensures that the keys in decoded mappings to\n// exist as fields in the struct being decoded into.\nfunc (dec *Decoder) KnownFields(enable bool) {\n\tdec.knownFields = enable\n}\n\n// Decode reads the next YAML-encoded value from its input\n// and stores it in the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (dec *Decoder) Decode(v interface{}) (err error) {\n\td := newDecoder()\n\td.knownFields = dec.knownFields\n\tdefer handleErr(&err)\n\tnode := dec.parser.parse()\n\tif node == nil {\n\t\treturn io.EOF\n\t}\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(node, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Decode decodes the node and stores its data into the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (n *Node) Decode(v interface{}) (err error) {\n\td := newDecoder()\n\tdefer handleErr(&err)\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(n, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\nfunc unmarshal(in []byte, out interface{}, strict bool) (err error) {\n\tdefer handleErr(&err)\n\td := newDecoder()\n\tp := newParser(in)\n\tdefer p.destroy()\n\tnode := p.parse()\n\tif node != nil {\n\t\tv := reflect.ValueOf(out)\n\t\tif v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t\td.unmarshal(node, v)\n\t}\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Marshal serializes the value provided into a YAML document. The structure\n// of the generated document will reflect the structure of the value itself.\n// Maps and pointers (to struct, string, int, etc) are accepted as the in value.\n//\n// Struct fields are only marshalled if they are exported (have an upper case\n// first letter), and are marshalled using the field name lowercased as the\n// default key. Custom keys may be defined via the \"yaml\" name in the field\n// tag: the content preceding the first comma is used as the key, and the\n// following comma-separated options are used to tweak the marshalling process.\n// Conflicting names result in a runtime error.\n//\n// The field tag format accepted is:\n//\n//     `(...) yaml:\"[<key>][,<flag1>[,<flag2>]]\" (...)`\n//\n// The following flags are currently supported:\n//\n//     omitempty    Only include the field if it's not set to the zero\n//                  value for the type or to empty slices or maps.\n//                  Zero valued structs will be omitted if all their public\n//                  fields are zero, unless they implement an IsZero\n//                  method (see the IsZeroer interface type), in which\n//                  case the field will be excluded if IsZero returns true.\n//\n//     flow         Marshal using a flow style (useful for structs,\n//                  sequences and maps).\n//\n//     inline       Inline the field, which must be a struct or a map,\n//                  causing all of its fields or keys to be processed as if\n//                  they were part of the outer struct. For maps, keys must\n//                  not conflict with the yaml keys of other struct fields.\n//\n// In addition, if the key is \"-\", the field is ignored.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     yaml.Marshal(&T{B: 2}) // Returns \"b: 2\\n\"\n//     yaml.Marshal(&T{F: 1}} // Returns \"a: 1\\nb: 0\\n\"\n//\nfunc Marshal(in interface{}) (out []byte, err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(in))\n\te.finish()\n\tout = e.out\n\treturn\n}\n\n// An Encoder writes YAML values to an output stream.\ntype Encoder struct {\n\tencoder *encoder\n}\n\n// NewEncoder returns a new encoder that writes to w.\n// The Encoder should be closed after use to flush all data\n// to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn &Encoder{\n\t\tencoder: newEncoderWithWriter(w),\n\t}\n}\n\n// Encode writes the YAML encoding of v to the stream.\n// If multiple items are encoded to the stream, the\n// second and subsequent document will be preceded\n// with a \"---\" document separator, but the first will not.\n//\n// See the documentation for Marshal for details about the conversion of Go\n// values to YAML.\nfunc (e *Encoder) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te.encoder.marshalDoc(\"\", reflect.ValueOf(v))\n\treturn nil\n}\n\n// Encode encodes value v and stores its representation in n.\n//\n// See the documentation for Marshal for details about the\n// conversion of Go values into YAML.\nfunc (n *Node) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(v))\n\te.finish()\n\tp := newParser(e.out)\n\tp.textless = true\n\tdefer p.destroy()\n\tdoc := p.parse()\n\t*n = *doc.Content[0]\n\treturn nil\n}\n\n// SetIndent changes the used indentation used when encoding.\nfunc (e *Encoder) SetIndent(spaces int) {\n\tif spaces < 0 {\n\t\tpanic(\"yaml: cannot indent to a negative number of spaces\")\n\t}\n\te.encoder.indent = spaces\n}\n\n// Close closes the encoder by writing any remaining data.\n// It does not write a stream terminating string \"...\".\nfunc (e *Encoder) Close() (err error) {\n\tdefer handleErr(&err)\n\te.encoder.finish()\n\treturn nil\n}\n\nfunc handleErr(err *error) {\n\tif v := recover(); v != nil {\n\t\tif e, ok := v.(yamlError); ok {\n\t\t\t*err = e.err\n\t\t} else {\n\t\t\tpanic(v)\n\t\t}\n\t}\n}\n\ntype yamlError struct {\n\terr error\n}\n\nfunc fail(err error) {\n\tpanic(yamlError{err})\n}\n\nfunc failf(format string, args ...interface{}) {\n\tpanic(yamlError{fmt.Errorf(\"yaml: \"+format, args...)})\n}\n\n// A TypeError is returned by Unmarshal when one or more fields in\n// the YAML document cannot be properly decoded into the requested\n// types. When this error is returned, the value is still\n// unmarshaled partially.\ntype TypeError struct {\n\tErrors []string\n}\n\nfunc (e *TypeError) Error() string {\n\treturn fmt.Sprintf(\"yaml: unmarshal errors:\\n  %s\", strings.Join(e.Errors, \"\\n  \"))\n}\n\ntype Kind uint32\n\nconst (\n\tDocumentNode Kind = 1 << iota\n\tSequenceNode\n\tMappingNode\n\tScalarNode\n\tAliasNode\n)\n\ntype Style uint32\n\nconst (\n\tTaggedStyle Style = 1 << iota\n\tDoubleQuotedStyle\n\tSingleQuotedStyle\n\tLiteralStyle\n\tFoldedStyle\n\tFlowStyle\n)\n\n// Node represents an element in the YAML document hierarchy. While documents\n// are typically encoded and decoded into higher level types, such as structs\n// and maps, Node is an intermediate representation that allows detailed\n// control over the content being decoded or encoded.\n//\n// It's worth noting that although Node offers access into details such as\n// line numbers, colums, and comments, the content when re-encoded will not\n// have its original textual representation preserved. An effort is made to\n// render the data plesantly, and to preserve comments near the data they\n// describe, though.\n//\n// Values that make use of the Node type interact with the yaml package in the\n// same way any other type would do, by encoding and decoding yaml data\n// directly or indirectly into them.\n//\n// For example:\n//\n//     var person struct {\n//             Name    string\n//             Address yaml.Node\n//     }\n//     err := yaml.Unmarshal(data, &person)\n// \n// Or by itself:\n//\n//     var person Node\n//     err := yaml.Unmarshal(data, &person)\n//\ntype Node struct {\n\t// Kind defines whether the node is a document, a mapping, a sequence,\n\t// a scalar value, or an alias to another node. The specific data type of\n\t// scalar nodes may be obtained via the ShortTag and LongTag methods.\n\tKind  Kind\n\n\t// Style allows customizing the apperance of the node in the tree.\n\tStyle Style\n\n\t// Tag holds the YAML tag defining the data type for the value.\n\t// When decoding, this field will always be set to the resolved tag,\n\t// even when it wasn't explicitly provided in the YAML content.\n\t// When encoding, if this field is unset the value type will be\n\t// implied from the node properties, and if it is set, it will only\n\t// be serialized into the representation if TaggedStyle is used or\n\t// the implicit tag diverges from the provided one.\n\tTag string\n\n\t// Value holds the unescaped and unquoted represenation of the value.\n\tValue string\n\n\t// Anchor holds the anchor name for this node, which allows aliases to point to it.\n\tAnchor string\n\n\t// Alias holds the node that this alias points to. Only valid when Kind is AliasNode.\n\tAlias *Node\n\n\t// Content holds contained nodes for documents, mappings, and sequences.\n\tContent []*Node\n\n\t// HeadComment holds any comments in the lines preceding the node and\n\t// not separated by an empty line.\n\tHeadComment string\n\n\t// LineComment holds any comments at the end of the line where the node is in.\n\tLineComment string\n\n\t// FootComment holds any comments following the node and before empty lines.\n\tFootComment string\n\n\t// Line and Column hold the node position in the decoded YAML text.\n\t// These fields are not respected when encoding the node.\n\tLine   int\n\tColumn int\n}\n\n// IsZero returns whether the node has all of its fields unset.\nfunc (n *Node) IsZero() bool {\n\treturn n.Kind == 0 && n.Style == 0 && n.Tag == \"\" && n.Value == \"\" && n.Anchor == \"\" && n.Alias == nil && n.Content == nil &&\n\t\tn.HeadComment == \"\" && n.LineComment == \"\" && n.FootComment == \"\" && n.Line == 0 && n.Column == 0\n}\n\n\n// LongTag returns the long form of the tag that indicates the data type for\n// the node. If the Tag field isn't explicitly defined, one will be computed\n// based on the node properties.\nfunc (n *Node) LongTag() string {\n\treturn longTag(n.ShortTag())\n}\n\n// ShortTag returns the short form of the YAML tag that indicates data type for\n// the node. If the Tag field isn't explicitly defined, one will be computed\n// based on the node properties.\nfunc (n *Node) ShortTag() string {\n\tif n.indicatedString() {\n\t\treturn strTag\n\t}\n\tif n.Tag == \"\" || n.Tag == \"!\" {\n\t\tswitch n.Kind {\n\t\tcase MappingNode:\n\t\t\treturn mapTag\n\t\tcase SequenceNode:\n\t\t\treturn seqTag\n\t\tcase AliasNode:\n\t\t\tif n.Alias != nil {\n\t\t\t\treturn n.Alias.ShortTag()\n\t\t\t}\n\t\tcase ScalarNode:\n\t\t\ttag, _ := resolve(\"\", n.Value)\n\t\t\treturn tag\n\t\tcase 0:\n\t\t\t// Special case to make the zero value convenient.\n\t\t\tif n.IsZero() {\n\t\t\t\treturn nullTag\n\t\t\t}\n\t\t}\n\t\treturn \"\"\n\t}\n\treturn shortTag(n.Tag)\n}\n\nfunc (n *Node) indicatedString() bool {\n\treturn n.Kind == ScalarNode &&\n\t\t(shortTag(n.Tag) == strTag ||\n\t\t\t(n.Tag == \"\" || n.Tag == \"!\") && n.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0)\n}\n\n// SetString is a convenience function that sets the node to a string value\n// and defines its style in a pleasant way depending on its content.\nfunc (n *Node) SetString(s string) {\n\tn.Kind = ScalarNode\n\tif utf8.ValidString(s) {\n\t\tn.Value = s\n\t\tn.Tag = strTag\n\t} else {\n\t\tn.Value = encodeBase64(s)\n\t\tn.Tag = binaryTag\n\t}\n\tif strings.Contains(n.Value, \"\\n\") {\n\t\tn.Style = LiteralStyle\n\t}\n}\n\n// --------------------------------------------------------------------------\n// Maintain a mapping of keys to structure field indexes\n\n// The code in this section was copied from mgo/bson.\n\n// structInfo holds details for the serialization of fields of\n// a given struct.\ntype structInfo struct {\n\tFieldsMap  map[string]fieldInfo\n\tFieldsList []fieldInfo\n\n\t// InlineMap is the number of the field in the struct that\n\t// contains an ,inline map, or -1 if there's none.\n\tInlineMap int\n\n\t// InlineUnmarshalers holds indexes to inlined fields that\n\t// contain unmarshaler values.\n\tInlineUnmarshalers [][]int\n}\n\ntype fieldInfo struct {\n\tKey       string\n\tNum       int\n\tOmitEmpty bool\n\tFlow      bool\n\t// Id holds the unique field identifier, so we can cheaply\n\t// check for field duplicates without maintaining an extra map.\n\tId int\n\n\t// Inline holds the field index if the field is part of an inlined struct.\n\tInline []int\n}\n\nvar structMap = make(map[reflect.Type]*structInfo)\nvar fieldMapMutex sync.RWMutex\nvar unmarshalerType reflect.Type\n\nfunc init() {\n\tvar v Unmarshaler\n\tunmarshalerType = reflect.ValueOf(&v).Elem().Type()\n}\n\nfunc getStructInfo(st reflect.Type) (*structInfo, error) {\n\tfieldMapMutex.RLock()\n\tsinfo, found := structMap[st]\n\tfieldMapMutex.RUnlock()\n\tif found {\n\t\treturn sinfo, nil\n\t}\n\n\tn := st.NumField()\n\tfieldsMap := make(map[string]fieldInfo)\n\tfieldsList := make([]fieldInfo, 0, n)\n\tinlineMap := -1\n\tinlineUnmarshalers := [][]int(nil)\n\tfor i := 0; i != n; i++ {\n\t\tfield := st.Field(i)\n\t\tif field.PkgPath != \"\" && !field.Anonymous {\n\t\t\tcontinue // Private field\n\t\t}\n\n\t\tinfo := fieldInfo{Num: i}\n\n\t\ttag := field.Tag.Get(\"yaml\")\n\t\tif tag == \"\" && strings.Index(string(field.Tag), \":\") < 0 {\n\t\t\ttag = string(field.Tag)\n\t\t}\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tinline := false\n\t\tfields := strings.Split(tag, \",\")\n\t\tif len(fields) > 1 {\n\t\t\tfor _, flag := range fields[1:] {\n\t\t\t\tswitch flag {\n\t\t\t\tcase \"omitempty\":\n\t\t\t\t\tinfo.OmitEmpty = true\n\t\t\t\tcase \"flow\":\n\t\t\t\t\tinfo.Flow = true\n\t\t\t\tcase \"inline\":\n\t\t\t\t\tinline = true\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, errors.New(fmt.Sprintf(\"unsupported flag %q in tag %q of type %s\", flag, tag, st))\n\t\t\t\t}\n\t\t\t}\n\t\t\ttag = fields[0]\n\t\t}\n\n\t\tif inline {\n\t\t\tswitch field.Type.Kind() {\n\t\t\tcase reflect.Map:\n\t\t\t\tif inlineMap >= 0 {\n\t\t\t\t\treturn nil, errors.New(\"multiple ,inline maps in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tif field.Type.Key() != reflect.TypeOf(\"\") {\n\t\t\t\t\treturn nil, errors.New(\"option ,inline needs a map with string keys in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tinlineMap = info.Num\n\t\t\tcase reflect.Struct, reflect.Ptr:\n\t\t\t\tftype := field.Type\n\t\t\t\tfor ftype.Kind() == reflect.Ptr {\n\t\t\t\t\tftype = ftype.Elem()\n\t\t\t\t}\n\t\t\t\tif ftype.Kind() != reflect.Struct {\n\t\t\t\t\treturn nil, errors.New(\"option ,inline may only be used on a struct or map field\")\n\t\t\t\t}\n\t\t\t\tif reflect.PtrTo(ftype).Implements(unmarshalerType) {\n\t\t\t\t\tinlineUnmarshalers = append(inlineUnmarshalers, []int{i})\n\t\t\t\t} else {\n\t\t\t\t\tsinfo, err := getStructInfo(ftype)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t\tfor _, index := range sinfo.InlineUnmarshalers {\n\t\t\t\t\t\tinlineUnmarshalers = append(inlineUnmarshalers, append([]int{i}, index...))\n\t\t\t\t\t}\n\t\t\t\t\tfor _, finfo := range sinfo.FieldsList {\n\t\t\t\t\t\tif _, found := fieldsMap[finfo.Key]; found {\n\t\t\t\t\t\t\tmsg := \"duplicated key '\" + finfo.Key + \"' in struct \" + st.String()\n\t\t\t\t\t\t\treturn nil, errors.New(msg)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif finfo.Inline == nil {\n\t\t\t\t\t\t\tfinfo.Inline = []int{i, finfo.Num}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfinfo.Inline = append([]int{i}, finfo.Inline...)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfinfo.Id = len(fieldsList)\n\t\t\t\t\t\tfieldsMap[finfo.Key] = finfo\n\t\t\t\t\t\tfieldsList = append(fieldsList, finfo)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn nil, errors.New(\"option ,inline may only be used on a struct or map field\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif tag != \"\" {\n\t\t\tinfo.Key = tag\n\t\t} else {\n\t\t\tinfo.Key = strings.ToLower(field.Name)\n\t\t}\n\n\t\tif _, found = fieldsMap[info.Key]; found {\n\t\t\tmsg := \"duplicated key '\" + info.Key + \"' in struct \" + st.String()\n\t\t\treturn nil, errors.New(msg)\n\t\t}\n\n\t\tinfo.Id = len(fieldsList)\n\t\tfieldsList = append(fieldsList, info)\n\t\tfieldsMap[info.Key] = info\n\t}\n\n\tsinfo = &structInfo{\n\t\tFieldsMap:          fieldsMap,\n\t\tFieldsList:         fieldsList,\n\t\tInlineMap:          inlineMap,\n\t\tInlineUnmarshalers: inlineUnmarshalers,\n\t}\n\n\tfieldMapMutex.Lock()\n\tstructMap[st] = sinfo\n\tfieldMapMutex.Unlock()\n\treturn sinfo, nil\n}\n\n// IsZeroer is used to check whether an object is zero to\n// determine whether it should be omitted when marshaling\n// with the omitempty flag. One notable implementation\n// is time.Time.\ntype IsZeroer interface {\n\tIsZero() bool\n}\n\nfunc isZero(v reflect.Value) bool {\n\tkind := v.Kind()\n\tif z, ok := v.Interface().(IsZeroer); ok {\n\t\tif (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn z.IsZero()\n\t}\n\tswitch kind {\n\tcase reflect.String:\n\t\treturn len(v.String()) == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Slice:\n\t\treturn v.Len() == 0\n\tcase reflect.Map:\n\t\treturn v.Len() == 0\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Struct:\n\t\tvt := v.Type()\n\t\tfor i := v.NumField() - 1; i >= 0; i-- {\n\t\t\tif vt.Field(i).PkgPath != \"\" {\n\t\t\t\tcontinue // Private field\n\t\t\t}\n\t\t\tif !isZero(v.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yamlh.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// The version directive data.\ntype yaml_version_directive_t struct {\n\tmajor int8 // The major version number.\n\tminor int8 // The minor version number.\n}\n\n// The tag directive data.\ntype yaml_tag_directive_t struct {\n\thandle []byte // The tag handle.\n\tprefix []byte // The tag prefix.\n}\n\ntype yaml_encoding_t int\n\n// The stream encoding.\nconst (\n\t// Let the parser choose the encoding.\n\tyaml_ANY_ENCODING yaml_encoding_t = iota\n\n\tyaml_UTF8_ENCODING    // The default UTF-8 encoding.\n\tyaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM.\n\tyaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM.\n)\n\ntype yaml_break_t int\n\n// Line break types.\nconst (\n\t// Let the parser choose the break type.\n\tyaml_ANY_BREAK yaml_break_t = iota\n\n\tyaml_CR_BREAK   // Use CR for line breaks (Mac style).\n\tyaml_LN_BREAK   // Use LN for line breaks (Unix style).\n\tyaml_CRLN_BREAK // Use CR LN for line breaks (DOS style).\n)\n\ntype yaml_error_type_t int\n\n// Many bad things could happen with the parser and emitter.\nconst (\n\t// No error is produced.\n\tyaml_NO_ERROR yaml_error_type_t = iota\n\n\tyaml_MEMORY_ERROR   // Cannot allocate or reallocate a block of memory.\n\tyaml_READER_ERROR   // Cannot read or decode the input stream.\n\tyaml_SCANNER_ERROR  // Cannot scan the input stream.\n\tyaml_PARSER_ERROR   // Cannot parse the input stream.\n\tyaml_COMPOSER_ERROR // Cannot compose a YAML document.\n\tyaml_WRITER_ERROR   // Cannot write to the output stream.\n\tyaml_EMITTER_ERROR  // Cannot emit a YAML stream.\n)\n\n// The pointer position.\ntype yaml_mark_t struct {\n\tindex  int // The position index.\n\tline   int // The position line.\n\tcolumn int // The position column.\n}\n\n// Node Styles\n\ntype yaml_style_t int8\n\ntype yaml_scalar_style_t yaml_style_t\n\n// Scalar styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SCALAR_STYLE yaml_scalar_style_t = 0\n\n\tyaml_PLAIN_SCALAR_STYLE         yaml_scalar_style_t = 1 << iota // The plain scalar style.\n\tyaml_SINGLE_QUOTED_SCALAR_STYLE                                 // The single-quoted scalar style.\n\tyaml_DOUBLE_QUOTED_SCALAR_STYLE                                 // The double-quoted scalar style.\n\tyaml_LITERAL_SCALAR_STYLE                                       // The literal scalar style.\n\tyaml_FOLDED_SCALAR_STYLE                                        // The folded scalar style.\n)\n\ntype yaml_sequence_style_t yaml_style_t\n\n// Sequence styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota\n\n\tyaml_BLOCK_SEQUENCE_STYLE // The block sequence style.\n\tyaml_FLOW_SEQUENCE_STYLE  // The flow sequence style.\n)\n\ntype yaml_mapping_style_t yaml_style_t\n\n// Mapping styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota\n\n\tyaml_BLOCK_MAPPING_STYLE // The block mapping style.\n\tyaml_FLOW_MAPPING_STYLE  // The flow mapping style.\n)\n\n// Tokens\n\ntype yaml_token_type_t int\n\n// Token types.\nconst (\n\t// An empty token.\n\tyaml_NO_TOKEN yaml_token_type_t = iota\n\n\tyaml_STREAM_START_TOKEN // A STREAM-START token.\n\tyaml_STREAM_END_TOKEN   // A STREAM-END token.\n\n\tyaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token.\n\tyaml_TAG_DIRECTIVE_TOKEN     // A TAG-DIRECTIVE token.\n\tyaml_DOCUMENT_START_TOKEN    // A DOCUMENT-START token.\n\tyaml_DOCUMENT_END_TOKEN      // A DOCUMENT-END token.\n\n\tyaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token.\n\tyaml_BLOCK_MAPPING_START_TOKEN  // A BLOCK-SEQUENCE-END token.\n\tyaml_BLOCK_END_TOKEN            // A BLOCK-END token.\n\n\tyaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token.\n\tyaml_FLOW_SEQUENCE_END_TOKEN   // A FLOW-SEQUENCE-END token.\n\tyaml_FLOW_MAPPING_START_TOKEN  // A FLOW-MAPPING-START token.\n\tyaml_FLOW_MAPPING_END_TOKEN    // A FLOW-MAPPING-END token.\n\n\tyaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token.\n\tyaml_FLOW_ENTRY_TOKEN  // A FLOW-ENTRY token.\n\tyaml_KEY_TOKEN         // A KEY token.\n\tyaml_VALUE_TOKEN       // A VALUE token.\n\n\tyaml_ALIAS_TOKEN  // An ALIAS token.\n\tyaml_ANCHOR_TOKEN // An ANCHOR token.\n\tyaml_TAG_TOKEN    // A TAG token.\n\tyaml_SCALAR_TOKEN // A SCALAR token.\n)\n\nfunc (tt yaml_token_type_t) String() string {\n\tswitch tt {\n\tcase yaml_NO_TOKEN:\n\t\treturn \"yaml_NO_TOKEN\"\n\tcase yaml_STREAM_START_TOKEN:\n\t\treturn \"yaml_STREAM_START_TOKEN\"\n\tcase yaml_STREAM_END_TOKEN:\n\t\treturn \"yaml_STREAM_END_TOKEN\"\n\tcase yaml_VERSION_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_VERSION_DIRECTIVE_TOKEN\"\n\tcase yaml_TAG_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_TAG_DIRECTIVE_TOKEN\"\n\tcase yaml_DOCUMENT_START_TOKEN:\n\t\treturn \"yaml_DOCUMENT_START_TOKEN\"\n\tcase yaml_DOCUMENT_END_TOKEN:\n\t\treturn \"yaml_DOCUMENT_END_TOKEN\"\n\tcase yaml_BLOCK_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_BLOCK_SEQUENCE_START_TOKEN\"\n\tcase yaml_BLOCK_MAPPING_START_TOKEN:\n\t\treturn \"yaml_BLOCK_MAPPING_START_TOKEN\"\n\tcase yaml_BLOCK_END_TOKEN:\n\t\treturn \"yaml_BLOCK_END_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_START_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_END_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_END_TOKEN\"\n\tcase yaml_FLOW_MAPPING_START_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_START_TOKEN\"\n\tcase yaml_FLOW_MAPPING_END_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_END_TOKEN\"\n\tcase yaml_BLOCK_ENTRY_TOKEN:\n\t\treturn \"yaml_BLOCK_ENTRY_TOKEN\"\n\tcase yaml_FLOW_ENTRY_TOKEN:\n\t\treturn \"yaml_FLOW_ENTRY_TOKEN\"\n\tcase yaml_KEY_TOKEN:\n\t\treturn \"yaml_KEY_TOKEN\"\n\tcase yaml_VALUE_TOKEN:\n\t\treturn \"yaml_VALUE_TOKEN\"\n\tcase yaml_ALIAS_TOKEN:\n\t\treturn \"yaml_ALIAS_TOKEN\"\n\tcase yaml_ANCHOR_TOKEN:\n\t\treturn \"yaml_ANCHOR_TOKEN\"\n\tcase yaml_TAG_TOKEN:\n\t\treturn \"yaml_TAG_TOKEN\"\n\tcase yaml_SCALAR_TOKEN:\n\t\treturn \"yaml_SCALAR_TOKEN\"\n\t}\n\treturn \"<unknown token>\"\n}\n\n// The token structure.\ntype yaml_token_t struct {\n\t// The token type.\n\ttyp yaml_token_type_t\n\n\t// The start/end of the token.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The stream encoding (for yaml_STREAM_START_TOKEN).\n\tencoding yaml_encoding_t\n\n\t// The alias/anchor/scalar value or tag/tag directive handle\n\t// (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN).\n\tvalue []byte\n\n\t// The tag suffix (for yaml_TAG_TOKEN).\n\tsuffix []byte\n\n\t// The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN).\n\tprefix []byte\n\n\t// The scalar style (for yaml_SCALAR_TOKEN).\n\tstyle yaml_scalar_style_t\n\n\t// The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN).\n\tmajor, minor int8\n}\n\n// Events\n\ntype yaml_event_type_t int8\n\n// Event types.\nconst (\n\t// An empty event.\n\tyaml_NO_EVENT yaml_event_type_t = iota\n\n\tyaml_STREAM_START_EVENT   // A STREAM-START event.\n\tyaml_STREAM_END_EVENT     // A STREAM-END event.\n\tyaml_DOCUMENT_START_EVENT // A DOCUMENT-START event.\n\tyaml_DOCUMENT_END_EVENT   // A DOCUMENT-END event.\n\tyaml_ALIAS_EVENT          // An ALIAS event.\n\tyaml_SCALAR_EVENT         // A SCALAR event.\n\tyaml_SEQUENCE_START_EVENT // A SEQUENCE-START event.\n\tyaml_SEQUENCE_END_EVENT   // A SEQUENCE-END event.\n\tyaml_MAPPING_START_EVENT  // A MAPPING-START event.\n\tyaml_MAPPING_END_EVENT    // A MAPPING-END event.\n\tyaml_TAIL_COMMENT_EVENT\n)\n\nvar eventStrings = []string{\n\tyaml_NO_EVENT:             \"none\",\n\tyaml_STREAM_START_EVENT:   \"stream start\",\n\tyaml_STREAM_END_EVENT:     \"stream end\",\n\tyaml_DOCUMENT_START_EVENT: \"document start\",\n\tyaml_DOCUMENT_END_EVENT:   \"document end\",\n\tyaml_ALIAS_EVENT:          \"alias\",\n\tyaml_SCALAR_EVENT:         \"scalar\",\n\tyaml_SEQUENCE_START_EVENT: \"sequence start\",\n\tyaml_SEQUENCE_END_EVENT:   \"sequence end\",\n\tyaml_MAPPING_START_EVENT:  \"mapping start\",\n\tyaml_MAPPING_END_EVENT:    \"mapping end\",\n\tyaml_TAIL_COMMENT_EVENT:   \"tail comment\",\n}\n\nfunc (e yaml_event_type_t) String() string {\n\tif e < 0 || int(e) >= len(eventStrings) {\n\t\treturn fmt.Sprintf(\"unknown event %d\", e)\n\t}\n\treturn eventStrings[e]\n}\n\n// The event structure.\ntype yaml_event_t struct {\n\n\t// The event type.\n\ttyp yaml_event_type_t\n\n\t// The start and end of the event.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The document encoding (for yaml_STREAM_START_EVENT).\n\tencoding yaml_encoding_t\n\n\t// The version directive (for yaml_DOCUMENT_START_EVENT).\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives (for yaml_DOCUMENT_START_EVENT).\n\ttag_directives []yaml_tag_directive_t\n\n\t// The comments\n\thead_comment []byte\n\tline_comment []byte\n\tfoot_comment []byte\n\ttail_comment []byte\n\n\t// The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT).\n\tanchor []byte\n\n\t// The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\ttag []byte\n\n\t// The scalar value (for yaml_SCALAR_EVENT).\n\tvalue []byte\n\n\t// Is the document start/end indicator implicit, or the tag optional?\n\t// (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT).\n\timplicit bool\n\n\t// Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT).\n\tquoted_implicit bool\n\n\t// The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\tstyle yaml_style_t\n}\n\nfunc (e *yaml_event_t) scalar_style() yaml_scalar_style_t     { return yaml_scalar_style_t(e.style) }\nfunc (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) }\nfunc (e *yaml_event_t) mapping_style() yaml_mapping_style_t   { return yaml_mapping_style_t(e.style) }\n\n// Nodes\n\nconst (\n\tyaml_NULL_TAG      = \"tag:yaml.org,2002:null\"      // The tag !!null with the only possible value: null.\n\tyaml_BOOL_TAG      = \"tag:yaml.org,2002:bool\"      // The tag !!bool with the values: true and false.\n\tyaml_STR_TAG       = \"tag:yaml.org,2002:str\"       // The tag !!str for string values.\n\tyaml_INT_TAG       = \"tag:yaml.org,2002:int\"       // The tag !!int for integer values.\n\tyaml_FLOAT_TAG     = \"tag:yaml.org,2002:float\"     // The tag !!float for float values.\n\tyaml_TIMESTAMP_TAG = \"tag:yaml.org,2002:timestamp\" // The tag !!timestamp for date and time values.\n\n\tyaml_SEQ_TAG = \"tag:yaml.org,2002:seq\" // The tag !!seq is used to denote sequences.\n\tyaml_MAP_TAG = \"tag:yaml.org,2002:map\" // The tag !!map is used to denote mapping.\n\n\t// Not in original libyaml.\n\tyaml_BINARY_TAG = \"tag:yaml.org,2002:binary\"\n\tyaml_MERGE_TAG  = \"tag:yaml.org,2002:merge\"\n\n\tyaml_DEFAULT_SCALAR_TAG   = yaml_STR_TAG // The default scalar tag is !!str.\n\tyaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq.\n\tyaml_DEFAULT_MAPPING_TAG  = yaml_MAP_TAG // The default mapping tag is !!map.\n)\n\ntype yaml_node_type_t int\n\n// Node types.\nconst (\n\t// An empty node.\n\tyaml_NO_NODE yaml_node_type_t = iota\n\n\tyaml_SCALAR_NODE   // A scalar node.\n\tyaml_SEQUENCE_NODE // A sequence node.\n\tyaml_MAPPING_NODE  // A mapping node.\n)\n\n// An element of a sequence node.\ntype yaml_node_item_t int\n\n// An element of a mapping node.\ntype yaml_node_pair_t struct {\n\tkey   int // The key of the element.\n\tvalue int // The value of the element.\n}\n\n// The node structure.\ntype yaml_node_t struct {\n\ttyp yaml_node_type_t // The node type.\n\ttag []byte           // The node tag.\n\n\t// The node data.\n\n\t// The scalar parameters (for yaml_SCALAR_NODE).\n\tscalar struct {\n\t\tvalue  []byte              // The scalar value.\n\t\tlength int                 // The length of the scalar value.\n\t\tstyle  yaml_scalar_style_t // The scalar style.\n\t}\n\n\t// The sequence parameters (for YAML_SEQUENCE_NODE).\n\tsequence struct {\n\t\titems_data []yaml_node_item_t    // The stack of sequence items.\n\t\tstyle      yaml_sequence_style_t // The sequence style.\n\t}\n\n\t// The mapping parameters (for yaml_MAPPING_NODE).\n\tmapping struct {\n\t\tpairs_data  []yaml_node_pair_t   // The stack of mapping pairs (key, value).\n\t\tpairs_start *yaml_node_pair_t    // The beginning of the stack.\n\t\tpairs_end   *yaml_node_pair_t    // The end of the stack.\n\t\tpairs_top   *yaml_node_pair_t    // The top of the stack.\n\t\tstyle       yaml_mapping_style_t // The mapping style.\n\t}\n\n\tstart_mark yaml_mark_t // The beginning of the node.\n\tend_mark   yaml_mark_t // The end of the node.\n\n}\n\n// The document structure.\ntype yaml_document_t struct {\n\n\t// The document nodes.\n\tnodes []yaml_node_t\n\n\t// The version directive.\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives.\n\ttag_directives_data  []yaml_tag_directive_t\n\ttag_directives_start int // The beginning of the tag directives list.\n\ttag_directives_end   int // The end of the tag directives list.\n\n\tstart_implicit int // Is the document start indicator implicit?\n\tend_implicit   int // Is the document end indicator implicit?\n\n\t// The start/end of the document.\n\tstart_mark, end_mark yaml_mark_t\n}\n\n// The prototype of a read handler.\n//\n// The read handler is called when the parser needs to read more bytes from the\n// source. The handler should write not more than size bytes to the buffer.\n// The number of written bytes should be set to the size_read variable.\n//\n// [in,out]   data        A pointer to an application data specified by\n//                        yaml_parser_set_input().\n// [out]      buffer      The buffer to write the data from the source.\n// [in]       size        The size of the buffer.\n// [out]      size_read   The actual number of bytes read from the source.\n//\n// On success, the handler should return 1.  If the handler failed,\n// the returned value should be 0. On EOF, the handler should set the\n// size_read to 0 and return 1.\ntype yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error)\n\n// This structure holds information about a potential simple key.\ntype yaml_simple_key_t struct {\n\tpossible     bool        // Is a simple key possible?\n\trequired     bool        // Is a simple key required?\n\ttoken_number int         // The number of the token.\n\tmark         yaml_mark_t // The position mark.\n}\n\n// The states of the parser.\ntype yaml_parser_state_t int\n\nconst (\n\tyaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota\n\n\tyaml_PARSE_IMPLICIT_DOCUMENT_START_STATE           // Expect the beginning of an implicit document.\n\tyaml_PARSE_DOCUMENT_START_STATE                    // Expect DOCUMENT-START.\n\tyaml_PARSE_DOCUMENT_CONTENT_STATE                  // Expect the content of a document.\n\tyaml_PARSE_DOCUMENT_END_STATE                      // Expect DOCUMENT-END.\n\tyaml_PARSE_BLOCK_NODE_STATE                        // Expect a block node.\n\tyaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence.\n\tyaml_PARSE_FLOW_NODE_STATE                         // Expect a flow node.\n\tyaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE        // Expect the first entry of a block sequence.\n\tyaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE              // Expect an entry of a block sequence.\n\tyaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE         // Expect an entry of an indentless sequence.\n\tyaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE           // Expect the first key of a block mapping.\n\tyaml_PARSE_BLOCK_MAPPING_KEY_STATE                 // Expect a block mapping key.\n\tyaml_PARSE_BLOCK_MAPPING_VALUE_STATE               // Expect a block mapping value.\n\tyaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE         // Expect the first entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE               // Expect an entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE   // Expect a key of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE   // Expect the and of an ordered mapping entry.\n\tyaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE            // Expect the first key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_KEY_STATE                  // Expect a key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_VALUE_STATE                // Expect a value of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE          // Expect an empty value of a flow mapping.\n\tyaml_PARSE_END_STATE                               // Expect nothing.\n)\n\nfunc (ps yaml_parser_state_t) String() string {\n\tswitch ps {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn \"yaml_PARSE_STREAM_START_STATE\"\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_CONTENT_STATE\"\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_END_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE\"\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE\"\n\tcase yaml_PARSE_END_STATE:\n\t\treturn \"yaml_PARSE_END_STATE\"\n\t}\n\treturn \"<unknown parser state>\"\n}\n\n// This structure holds aliases data.\ntype yaml_alias_data_t struct {\n\tanchor []byte      // The anchor.\n\tindex  int         // The node id.\n\tmark   yaml_mark_t // The anchor mark.\n}\n\n// The parser structure.\n//\n// All members are internal. Manage the structure using the\n// yaml_parser_ family of functions.\ntype yaml_parser_t struct {\n\n\t// Error handling\n\n\terror yaml_error_type_t // Error type.\n\n\tproblem string // Error description.\n\n\t// The byte about which the problem occurred.\n\tproblem_offset int\n\tproblem_value  int\n\tproblem_mark   yaml_mark_t\n\n\t// The error context.\n\tcontext      string\n\tcontext_mark yaml_mark_t\n\n\t// Reader stuff\n\n\tread_handler yaml_read_handler_t // Read handler.\n\n\tinput_reader io.Reader // File input data.\n\tinput        []byte    // String input data.\n\tinput_pos    int\n\n\teof bool // EOF flag\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\tunread int // The number of unread characters in the buffer.\n\n\tnewlines int // The number of line breaks since last non-break/non-blank character\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The input encoding.\n\n\toffset int         // The offset of the current position (in bytes).\n\tmark   yaml_mark_t // The mark of the current position.\n\n\t// Comments\n\n\thead_comment []byte // The current head comments\n\tline_comment []byte // The current line comments\n\tfoot_comment []byte // The current foot comments\n\ttail_comment []byte // Foot comment that happens at the end of a block.\n\tstem_comment []byte // Comment in item preceding a nested structure (list inside list item, etc)\n\n\tcomments      []yaml_comment_t // The folded comments for all parsed tokens\n\tcomments_head int\n\n\t// Scanner stuff\n\n\tstream_start_produced bool // Have we started to scan the input stream?\n\tstream_end_produced   bool // Have we reached the end of the input stream?\n\n\tflow_level int // The number of unclosed '[' and '{' indicators.\n\n\ttokens          []yaml_token_t // The tokens queue.\n\ttokens_head     int            // The head of the tokens queue.\n\ttokens_parsed   int            // The number of tokens fetched from the queue.\n\ttoken_available bool           // Does the tokens queue contain a token ready for dequeueing.\n\n\tindent  int   // The current indentation level.\n\tindents []int // The indentation levels stack.\n\n\tsimple_key_allowed bool                // May a simple key occur at the current position?\n\tsimple_keys        []yaml_simple_key_t // The stack of simple keys.\n\tsimple_keys_by_tok map[int]int         // possible simple_key indexes indexed by token_number\n\n\t// Parser stuff\n\n\tstate          yaml_parser_state_t    // The current parser state.\n\tstates         []yaml_parser_state_t  // The parser states stack.\n\tmarks          []yaml_mark_t          // The stack of marks.\n\ttag_directives []yaml_tag_directive_t // The list of TAG directives.\n\n\t// Dumper stuff\n\n\taliases []yaml_alias_data_t // The alias data.\n\n\tdocument *yaml_document_t // The currently parsed document.\n}\n\ntype yaml_comment_t struct {\n\n\tscan_mark  yaml_mark_t // Position where scanning for comments started\n\ttoken_mark yaml_mark_t // Position after which tokens will be associated with this comment\n\tstart_mark yaml_mark_t // Position of '#' comment mark\n\tend_mark   yaml_mark_t // Position where comment terminated\n\n\thead []byte\n\tline []byte\n\tfoot []byte\n}\n\n// Emitter Definitions\n\n// The prototype of a write handler.\n//\n// The write handler is called when the emitter needs to flush the accumulated\n// characters to the output.  The handler should write @a size bytes of the\n// @a buffer to the output.\n//\n// @param[in,out]   data        A pointer to an application data specified by\n//                              yaml_emitter_set_output().\n// @param[in]       buffer      The buffer with bytes to be written.\n// @param[in]       size        The size of the buffer.\n//\n// @returns On success, the handler should return @c 1.  If the handler failed,\n// the returned value should be @c 0.\n//\ntype yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error\n\ntype yaml_emitter_state_t int\n\n// The emitter states.\nconst (\n\t// Expect STREAM-START.\n\tyaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota\n\n\tyaml_EMIT_FIRST_DOCUMENT_START_STATE       // Expect the first DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_START_STATE             // Expect DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_CONTENT_STATE           // Expect the content of a document.\n\tyaml_EMIT_DOCUMENT_END_STATE               // Expect DOCUMENT-END.\n\tyaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE   // Expect the first item of a flow sequence.\n\tyaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE   // Expect the next item of a flow sequence, with the comma already written out\n\tyaml_EMIT_FLOW_SEQUENCE_ITEM_STATE         // Expect an item of a flow sequence.\n\tyaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE     // Expect the first key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE     // Expect the next key of a flow mapping, with the comma already written out\n\tyaml_EMIT_FLOW_MAPPING_KEY_STATE           // Expect a key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE  // Expect a value for a simple key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_VALUE_STATE         // Expect a value of a flow mapping.\n\tyaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE  // Expect the first item of a block sequence.\n\tyaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE        // Expect an item of a block sequence.\n\tyaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE    // Expect the first key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_KEY_STATE          // Expect the key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_VALUE_STATE        // Expect a value of a block mapping.\n\tyaml_EMIT_END_STATE                        // Expect nothing.\n)\n\n// The emitter structure.\n//\n// All members are internal.  Manage the structure using the @c yaml_emitter_\n// family of functions.\ntype yaml_emitter_t struct {\n\n\t// Error handling\n\n\terror   yaml_error_type_t // Error type.\n\tproblem string            // Error description.\n\n\t// Writer stuff\n\n\twrite_handler yaml_write_handler_t // Write handler.\n\n\toutput_buffer *[]byte   // String output data.\n\toutput_writer io.Writer // File output data.\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The stream encoding.\n\n\t// Emitter stuff\n\n\tcanonical   bool         // If the output is in the canonical style?\n\tbest_indent int          // The number of indentation spaces.\n\tbest_width  int          // The preferred width of the output lines.\n\tunicode     bool         // Allow unescaped non-ASCII characters?\n\tline_break  yaml_break_t // The preferred line break.\n\n\tstate  yaml_emitter_state_t   // The current emitter state.\n\tstates []yaml_emitter_state_t // The stack of states.\n\n\tevents      []yaml_event_t // The event queue.\n\tevents_head int            // The head of the event queue.\n\n\tindents []int // The stack of indentation levels.\n\n\ttag_directives []yaml_tag_directive_t // The list of tag directives.\n\n\tindent int // The current indentation level.\n\n\tflow_level int // The current flow level.\n\n\troot_context       bool // Is it the document root context?\n\tsequence_context   bool // Is it a sequence context?\n\tmapping_context    bool // Is it a mapping context?\n\tsimple_key_context bool // Is it a simple mapping key context?\n\n\tline       int  // The current line.\n\tcolumn     int  // The current column.\n\twhitespace bool // If the last character was a whitespace?\n\tindention  bool // If the last character was an indentation character (' ', '-', '?', ':')?\n\topen_ended bool // If an explicit document end is required?\n\n\tspace_above bool // Is there's an empty line above?\n\tfoot_indent int  // The indent used to write the foot comment above, or -1 if none.\n\n\t// Anchor analysis.\n\tanchor_data struct {\n\t\tanchor []byte // The anchor value.\n\t\talias  bool   // Is it an alias?\n\t}\n\n\t// Tag analysis.\n\ttag_data struct {\n\t\thandle []byte // The tag handle.\n\t\tsuffix []byte // The tag suffix.\n\t}\n\n\t// Scalar analysis.\n\tscalar_data struct {\n\t\tvalue                 []byte              // The scalar value.\n\t\tmultiline             bool                // Does the scalar contain line breaks?\n\t\tflow_plain_allowed    bool                // Can the scalar be expessed in the flow plain style?\n\t\tblock_plain_allowed   bool                // Can the scalar be expressed in the block plain style?\n\t\tsingle_quoted_allowed bool                // Can the scalar be expressed in the single quoted style?\n\t\tblock_allowed         bool                // Can the scalar be expressed in the literal or folded styles?\n\t\tstyle                 yaml_scalar_style_t // The output style.\n\t}\n\n\t// Comments\n\thead_comment []byte\n\tline_comment []byte\n\tfoot_comment []byte\n\ttail_comment []byte\n\n\tkey_line_comment []byte\n\n\t// Dumper stuff\n\n\topened bool // If the stream was already opened?\n\tclosed bool // If the stream was already closed?\n\n\t// The information associated with the document nodes.\n\tanchors *struct {\n\t\treferences int  // The number of references.\n\t\tanchor     int  // The anchor id.\n\t\tserialized bool // If the node has been emitted?\n\t}\n\n\tlast_anchor_id int // The last assigned anchor id.\n\n\tdocument *yaml_document_t // The currently emitted document.\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yamlprivateh.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nconst (\n\t// The size of the input raw buffer.\n\tinput_raw_buffer_size = 512\n\n\t// The size of the input buffer.\n\t// It should be possible to decode the whole raw buffer.\n\tinput_buffer_size = input_raw_buffer_size * 3\n\n\t// The size of the output buffer.\n\toutput_buffer_size = 128\n\n\t// The size of the output raw buffer.\n\t// It should be possible to encode the whole output buffer.\n\toutput_raw_buffer_size = (output_buffer_size*2 + 2)\n\n\t// The size of other stacks and queues.\n\tinitial_stack_size  = 16\n\tinitial_queue_size  = 16\n\tinitial_string_size = 16\n)\n\n// Check if the character at the specified position is an alphabetical\n// character, a digit, '_', or '-'.\nfunc is_alpha(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-'\n}\n\n// Check if the character at the specified position is a digit.\nfunc is_digit(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9'\n}\n\n// Get the value of a digit.\nfunc as_digit(b []byte, i int) int {\n\treturn int(b[i]) - '0'\n}\n\n// Check if the character at the specified position is a hex-digit.\nfunc is_hex(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f'\n}\n\n// Get the value of a hex-digit.\nfunc as_hex(b []byte, i int) int {\n\tbi := b[i]\n\tif bi >= 'A' && bi <= 'F' {\n\t\treturn int(bi) - 'A' + 10\n\t}\n\tif bi >= 'a' && bi <= 'f' {\n\t\treturn int(bi) - 'a' + 10\n\t}\n\treturn int(bi) - '0'\n}\n\n// Check if the character is ASCII.\nfunc is_ascii(b []byte, i int) bool {\n\treturn b[i] <= 0x7F\n}\n\n// Check if the character at the start of the buffer can be printed unescaped.\nfunc is_printable(b []byte, i int) bool {\n\treturn ((b[i] == 0x0A) || // . == #x0A\n\t\t(b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E\n\t\t(b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF\n\t\t(b[i] > 0xC2 && b[i] < 0xED) ||\n\t\t(b[i] == 0xED && b[i+1] < 0xA0) ||\n\t\t(b[i] == 0xEE) ||\n\t\t(b[i] == 0xEF && // #xE000 <= . <= #xFFFD\n\t\t\t!(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF\n\t\t\t!(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF))))\n}\n\n// Check if the character at the specified position is NUL.\nfunc is_z(b []byte, i int) bool {\n\treturn b[i] == 0x00\n}\n\n// Check if the beginning of the buffer is a BOM.\nfunc is_bom(b []byte, i int) bool {\n\treturn b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF\n}\n\n// Check if the character at the specified position is space.\nfunc is_space(b []byte, i int) bool {\n\treturn b[i] == ' '\n}\n\n// Check if the character at the specified position is tab.\nfunc is_tab(b []byte, i int) bool {\n\treturn b[i] == '\\t'\n}\n\n// Check if the character at the specified position is blank (space or tab).\nfunc is_blank(b []byte, i int) bool {\n\t//return is_space(b, i) || is_tab(b, i)\n\treturn b[i] == ' ' || b[i] == '\\t'\n}\n\n// Check if the character at the specified position is a line break.\nfunc is_break(b []byte, i int) bool {\n\treturn (b[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029)\n}\n\nfunc is_crlf(b []byte, i int) bool {\n\treturn b[i] == '\\r' && b[i+1] == '\\n'\n}\n\n// Check if the character is a line break or NUL.\nfunc is_breakz(b []byte, i int) bool {\n\t//return is_break(b, i) || is_z(b, i)\n\treturn (\n\t\t// is_break:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\t// is_z:\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, or NUL.\nfunc is_spacez(b []byte, i int) bool {\n\t//return is_space(b, i) || is_breakz(b, i)\n\treturn (\n\t\t// is_space:\n\t\tb[i] == ' ' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, tab, or NUL.\nfunc is_blankz(b []byte, i int) bool {\n\t//return is_blank(b, i) || is_breakz(b, i)\n\treturn (\n\t\t// is_blank:\n\t\tb[i] == ' ' || b[i] == '\\t' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Determine the width of the character.\nfunc width(b byte) int {\n\t// Don't replace these by a switch without first\n\t// confirming that it is being inlined.\n\tif b&0x80 == 0x00 {\n\t\treturn 1\n\t}\n\tif b&0xE0 == 0xC0 {\n\t\treturn 2\n\t}\n\tif b&0xF0 == 0xE0 {\n\t\treturn 3\n\t}\n\tif b&0xF8 == 0xF0 {\n\t\treturn 4\n\t}\n\treturn 0\n\n}\n"
  },
  {
    "path": "vendor/modules.txt",
    "content": "# github.com/Microsoft/go-winio v0.6.2\n## explicit; go 1.21\ngithub.com/Microsoft/go-winio\ngithub.com/Microsoft/go-winio/internal/fs\ngithub.com/Microsoft/go-winio/internal/socket\ngithub.com/Microsoft/go-winio/internal/stringbuffer\ngithub.com/Microsoft/go-winio/pkg/guid\n# github.com/OpenPeeDeeP/xdg v0.2.1-0.20190312153938-4ba9e1eb294c\n## explicit\ngithub.com/OpenPeeDeeP/xdg\n# github.com/boz/go-throttle v0.0.0-20160922054636-fdc4eab740c1\n## explicit\ngithub.com/boz/go-throttle\n# github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21\n## explicit\ngithub.com/cloudfoundry/jibber_jabber\n# github.com/containerd/errdefs v1.0.0\n## explicit; go 1.20\ngithub.com/containerd/errdefs\n# github.com/containerd/errdefs/pkg v0.3.0\n## explicit; go 1.22\ngithub.com/containerd/errdefs/pkg/errhttp\ngithub.com/containerd/errdefs/pkg/internal/cause\n# github.com/containerd/log v0.1.0\n## explicit; go 1.20\ngithub.com/containerd/log\n# github.com/davecgh/go-spew v1.1.1\n## explicit\ngithub.com/davecgh/go-spew/spew\n# github.com/distribution/reference v0.6.0\n## explicit; go 1.20\ngithub.com/distribution/reference\n# github.com/docker/cli v27.1.1+incompatible\n## explicit\ngithub.com/docker/cli/cli/config\ngithub.com/docker/cli/cli/config/configfile\ngithub.com/docker/cli/cli/config/credentials\ngithub.com/docker/cli/cli/config/types\ngithub.com/docker/cli/cli/connhelper\ngithub.com/docker/cli/cli/connhelper/commandconn\ngithub.com/docker/cli/cli/connhelper/ssh\ngithub.com/docker/cli/cli/context\ngithub.com/docker/cli/cli/context/docker\ngithub.com/docker/cli/cli/context/store\n# github.com/docker/docker v28.5.2+incompatible\n## explicit\ngithub.com/docker/docker/api\ngithub.com/docker/docker/api/types\ngithub.com/docker/docker/api/types/blkiodev\ngithub.com/docker/docker/api/types/build\ngithub.com/docker/docker/api/types/checkpoint\ngithub.com/docker/docker/api/types/common\ngithub.com/docker/docker/api/types/container\ngithub.com/docker/docker/api/types/events\ngithub.com/docker/docker/api/types/filters\ngithub.com/docker/docker/api/types/image\ngithub.com/docker/docker/api/types/mount\ngithub.com/docker/docker/api/types/network\ngithub.com/docker/docker/api/types/registry\ngithub.com/docker/docker/api/types/storage\ngithub.com/docker/docker/api/types/strslice\ngithub.com/docker/docker/api/types/swarm\ngithub.com/docker/docker/api/types/swarm/runtime\ngithub.com/docker/docker/api/types/system\ngithub.com/docker/docker/api/types/time\ngithub.com/docker/docker/api/types/versions\ngithub.com/docker/docker/api/types/volume\ngithub.com/docker/docker/client\ngithub.com/docker/docker/errdefs\ngithub.com/docker/docker/pkg/ioutils\ngithub.com/docker/docker/pkg/stdcopy\n# github.com/docker/docker-credential-helpers v0.8.2\n## explicit; go 1.19\ngithub.com/docker/docker-credential-helpers/client\ngithub.com/docker/docker-credential-helpers/credentials\n# github.com/docker/go-connections v0.5.0\n## explicit; go 1.18\ngithub.com/docker/go-connections/nat\ngithub.com/docker/go-connections/sockets\ngithub.com/docker/go-connections/tlsconfig\n# github.com/docker/go-units v0.5.0\n## explicit\ngithub.com/docker/go-units\n# github.com/fatih/color v1.10.0\n## explicit; go 1.13\ngithub.com/fatih/color\n# github.com/felixge/httpsnoop v1.0.4\n## explicit; go 1.13\ngithub.com/felixge/httpsnoop\n# github.com/fvbommel/sortorder v1.1.0\n## explicit; go 1.13\ngithub.com/fvbommel/sortorder\n# github.com/gdamore/encoding v1.0.1\n## explicit; go 1.9\ngithub.com/gdamore/encoding\n# github.com/gdamore/tcell/v2 v2.7.4\n## explicit; go 1.12\ngithub.com/gdamore/tcell/v2\ngithub.com/gdamore/tcell/v2/terminfo\ngithub.com/gdamore/tcell/v2/terminfo/a/aixterm\ngithub.com/gdamore/tcell/v2/terminfo/a/alacritty\ngithub.com/gdamore/tcell/v2/terminfo/a/ansi\ngithub.com/gdamore/tcell/v2/terminfo/b/beterm\ngithub.com/gdamore/tcell/v2/terminfo/base\ngithub.com/gdamore/tcell/v2/terminfo/c/cygwin\ngithub.com/gdamore/tcell/v2/terminfo/d/dtterm\ngithub.com/gdamore/tcell/v2/terminfo/dynamic\ngithub.com/gdamore/tcell/v2/terminfo/e/emacs\ngithub.com/gdamore/tcell/v2/terminfo/extended\ngithub.com/gdamore/tcell/v2/terminfo/f/foot\ngithub.com/gdamore/tcell/v2/terminfo/g/gnome\ngithub.com/gdamore/tcell/v2/terminfo/h/hpterm\ngithub.com/gdamore/tcell/v2/terminfo/k/konsole\ngithub.com/gdamore/tcell/v2/terminfo/k/kterm\ngithub.com/gdamore/tcell/v2/terminfo/l/linux\ngithub.com/gdamore/tcell/v2/terminfo/p/pcansi\ngithub.com/gdamore/tcell/v2/terminfo/r/rxvt\ngithub.com/gdamore/tcell/v2/terminfo/s/screen\ngithub.com/gdamore/tcell/v2/terminfo/s/simpleterm\ngithub.com/gdamore/tcell/v2/terminfo/s/sun\ngithub.com/gdamore/tcell/v2/terminfo/t/tmux\ngithub.com/gdamore/tcell/v2/terminfo/v/vt100\ngithub.com/gdamore/tcell/v2/terminfo/v/vt102\ngithub.com/gdamore/tcell/v2/terminfo/v/vt220\ngithub.com/gdamore/tcell/v2/terminfo/v/vt320\ngithub.com/gdamore/tcell/v2/terminfo/v/vt400\ngithub.com/gdamore/tcell/v2/terminfo/v/vt420\ngithub.com/gdamore/tcell/v2/terminfo/v/vt52\ngithub.com/gdamore/tcell/v2/terminfo/w/wy50\ngithub.com/gdamore/tcell/v2/terminfo/w/wy60\ngithub.com/gdamore/tcell/v2/terminfo/w/wy99_ansi\ngithub.com/gdamore/tcell/v2/terminfo/x/xfce\ngithub.com/gdamore/tcell/v2/terminfo/x/xterm\ngithub.com/gdamore/tcell/v2/terminfo/x/xterm_kitty\n# github.com/go-errors/errors v1.5.1\n## explicit; go 1.14\ngithub.com/go-errors/errors\n# github.com/go-logr/logr v1.4.2\n## explicit; go 1.18\ngithub.com/go-logr/logr\ngithub.com/go-logr/logr/funcr\n# github.com/go-logr/stdr v1.2.2\n## explicit; go 1.16\ngithub.com/go-logr/stdr\n# github.com/goccy/go-yaml v1.11.0\n## explicit; go 1.18\ngithub.com/goccy/go-yaml\ngithub.com/goccy/go-yaml/ast\ngithub.com/goccy/go-yaml/internal/errors\ngithub.com/goccy/go-yaml/lexer\ngithub.com/goccy/go-yaml/parser\ngithub.com/goccy/go-yaml/printer\ngithub.com/goccy/go-yaml/scanner\ngithub.com/goccy/go-yaml/token\n# github.com/gookit/color v1.5.0\n## explicit; go 1.13\ngithub.com/gookit/color\n# github.com/imdario/mergo v0.3.16\n## explicit; go 1.13\ngithub.com/imdario/mergo\n# github.com/integrii/flaggy v1.4.0\n## explicit; go 1.12\ngithub.com/integrii/flaggy\n# github.com/jesseduffield/asciigraph v0.0.0-20190605104717-6d88e39309ee\n## explicit\ngithub.com/jesseduffield/asciigraph\n# github.com/jesseduffield/gocui v0.3.1-0.20240418080333-8cd33929c513\n## explicit; go 1.12\ngithub.com/jesseduffield/gocui\n# github.com/jesseduffield/kill v0.0.0-20220618033138-bfbe04675d10\n## explicit; go 1.18\ngithub.com/jesseduffield/kill\n# github.com/jesseduffield/lazycore v0.0.0-20221023210126-718a4caea996\n## explicit; go 1.18\ngithub.com/jesseduffield/lazycore/pkg/boxlayout\ngithub.com/jesseduffield/lazycore/pkg/utils\n# github.com/jesseduffield/yaml v0.0.0-20190702115811-b900b7e08b56\n## explicit\ngithub.com/jesseduffield/yaml\n# github.com/lucasb-eyer/go-colorful v1.2.0\n## explicit; go 1.12\ngithub.com/lucasb-eyer/go-colorful\n# github.com/mattn/go-colorable v0.1.8\n## explicit; go 1.13\ngithub.com/mattn/go-colorable\n# github.com/mattn/go-isatty v0.0.12\n## explicit; go 1.12\ngithub.com/mattn/go-isatty\n# github.com/mattn/go-runewidth v0.0.15\n## explicit; go 1.9\ngithub.com/mattn/go-runewidth\n# github.com/mcuadros/go-lookup v0.0.0-20171110082742-5650f26be767\n## explicit\ngithub.com/mcuadros/go-lookup\n# github.com/mgutz/str v1.2.0\n## explicit\ngithub.com/mgutz/str\n# github.com/moby/docker-image-spec v1.3.1\n## explicit; go 1.18\ngithub.com/moby/docker-image-spec/specs-go/v1\n# github.com/moby/sys/atomicwriter v0.1.0\n## explicit; go 1.18\ngithub.com/moby/sys/atomicwriter\n# github.com/moby/sys/sequential v0.6.0\n## explicit; go 1.17\ngithub.com/moby/sys/sequential\n# github.com/moby/term v0.5.0\n## explicit; go 1.18\n# github.com/morikuni/aec v1.0.0\n## explicit\n# github.com/onsi/ginkgo v1.8.0\n## explicit\n# github.com/onsi/gomega v1.5.0\n## explicit\n# github.com/opencontainers/go-digest v1.0.0\n## explicit; go 1.13\ngithub.com/opencontainers/go-digest\n# github.com/opencontainers/image-spec v1.1.0\n## explicit; go 1.18\ngithub.com/opencontainers/image-spec/specs-go\ngithub.com/opencontainers/image-spec/specs-go/v1\n# github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5\n## explicit\ngithub.com/petermattis/goid\n# github.com/pkg/errors v0.9.1\n## explicit\ngithub.com/pkg/errors\n# github.com/pmezard/go-difflib v1.0.0\n## explicit\ngithub.com/pmezard/go-difflib/difflib\n# github.com/rivo/uniseg v0.4.7\n## explicit; go 1.18\ngithub.com/rivo/uniseg\n# github.com/samber/lo v1.31.0\n## explicit; go 1.18\ngithub.com/samber/lo\n# github.com/sasha-s/go-deadlock v0.3.1\n## explicit\ngithub.com/sasha-s/go-deadlock\n# github.com/sirupsen/logrus v1.9.3\n## explicit; go 1.13\ngithub.com/sirupsen/logrus\n# github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad\n## explicit\ngithub.com/spkg/bom\n# github.com/stretchr/testify v1.9.0\n## explicit; go 1.17\ngithub.com/stretchr/testify/assert\n# github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778\n## explicit; go 1.15\ngithub.com/xo/terminfo\n# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0\n## explicit; go 1.21\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil\n# go.opentelemetry.io/otel v1.28.0\n## explicit; go 1.21\ngo.opentelemetry.io/otel\ngo.opentelemetry.io/otel/attribute\ngo.opentelemetry.io/otel/baggage\ngo.opentelemetry.io/otel/codes\ngo.opentelemetry.io/otel/internal\ngo.opentelemetry.io/otel/internal/attribute\ngo.opentelemetry.io/otel/internal/baggage\ngo.opentelemetry.io/otel/internal/global\ngo.opentelemetry.io/otel/propagation\ngo.opentelemetry.io/otel/semconv/v1.20.0\ngo.opentelemetry.io/otel/semconv/v1.24.0\n# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.28.0\n## explicit; go 1.21\n# go.opentelemetry.io/otel/metric v1.28.0\n## explicit; go 1.21\ngo.opentelemetry.io/otel/metric\ngo.opentelemetry.io/otel/metric/embedded\n# go.opentelemetry.io/otel/sdk v1.28.0\n## explicit; go 1.21\n# go.opentelemetry.io/otel/trace v1.28.0\n## explicit; go 1.21\ngo.opentelemetry.io/otel/trace\ngo.opentelemetry.io/otel/trace/embedded\n# golang.org/x/crypto v0.24.0\n## explicit; go 1.18\n# golang.org/x/exp v0.0.0-20231006140011-7918f672742d\n## explicit; go 1.20\ngolang.org/x/exp/constraints\n# golang.org/x/sys v0.24.0\n## explicit; go 1.18\ngolang.org/x/sys/plan9\ngolang.org/x/sys/unix\ngolang.org/x/sys/windows\n# golang.org/x/term v0.21.0\n## explicit; go 1.18\ngolang.org/x/term\n# golang.org/x/text v0.16.0\n## explicit; go 1.18\ngolang.org/x/text/encoding\ngolang.org/x/text/encoding/internal/identifier\ngolang.org/x/text/transform\n# golang.org/x/time v0.5.0\n## explicit; go 1.18\n# golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1\n## explicit; go 1.11\ngolang.org/x/xerrors\ngolang.org/x/xerrors/internal\n# gopkg.in/yaml.v3 v3.0.1\n## explicit\ngopkg.in/yaml.v3\n# gotest.tools/v3 v3.5.1\n## explicit; go 1.17\n"
  }
]